diff options
Diffstat (limited to 'src')
-rw-r--r-- | src/bard_music.c | 185 | ||||
-rw-r--r-- | src/battle/anim/battle_intro.c | 2 | ||||
-rw-r--r-- | src/battle/anim/current.c | 236 | ||||
-rw-r--r-- | src/battle/anim/dark.c | 16 | ||||
-rw-r--r-- | src/battle/anim/dragon.c | 8 | ||||
-rw-r--r-- | src/battle/anim/fight.c | 14 | ||||
-rw-r--r-- | src/battle/anim/ghost.c | 6 | ||||
-rw-r--r-- | src/battle/anim/ground.c | 4 | ||||
-rw-r--r-- | src/battle/anim/ice.c | 4 | ||||
-rw-r--r-- | src/battle/anim/lunge.c | 14 | ||||
-rw-r--r-- | src/battle/anim/normal.c | 56 | ||||
-rw-r--r-- | src/battle/anim/psychic.c | 6 | ||||
-rw-r--r-- | src/battle/anim/ring.c | 14 | ||||
-rw-r--r-- | src/battle/anim/roots.c | 6 | ||||
-rw-r--r-- | src/battle/anim/tile.c | 8 | ||||
-rw-r--r-- | src/battle/anim/unused_7.c | 4 | ||||
-rw-r--r-- | src/battle/anim/water.c | 23 | ||||
-rw-r--r-- | src/battle/anim/wisp_fire.c | 4 | ||||
-rw-r--r-- | src/battle/anim/withdraw.c | 6 | ||||
-rw-r--r-- | src/battle/battle_anim_80CA710.c | 18 | ||||
-rw-r--r-- | src/battle_ai_script_commands.c (renamed from src/battle/battle_ai.c) | 212 | ||||
-rw-r--r-- | src/battle_ai_switch_items.c (renamed from src/battle/battle_ai_switch_items.c) | 21 | ||||
-rw-r--r-- | src/battle_anim.c (renamed from src/battle/battle_anim.c) | 58 | ||||
-rw-r--r-- | src/battle_anim_effects_3.c (renamed from src/battle/battle_anim_812C144.c) | 22 | ||||
-rw-r--r-- | src/battle_anim_mon_movement.c (renamed from src/battle/battle_anim_80A7E7C.c) | 20 | ||||
-rwxr-xr-x | src/battle_anim_special.c (renamed from src/battle/battle_anim_813F0F4.c) | 76 | ||||
-rw-r--r-- | src/battle_anim_status_effects.c (renamed from src/battle/battle_anim_807B69C.c) | 4 | ||||
-rw-r--r-- | src/battle_bg.c (renamed from src/battle/battle_bg.c) | 327 | ||||
-rw-r--r-- | src/battle_controller_link_opponent.c (renamed from src/battle/battle_controller_linkopponent.c) | 222 | ||||
-rw-r--r-- | src/battle_controller_link_partner.c (renamed from src/battle/battle_controller_linkpartner.c) | 220 | ||||
-rw-r--r-- | src/battle_controller_opponent.c (renamed from src/battle/battle_controller_opponent.c) | 518 | ||||
-rw-r--r-- | src/battle_controller_player.c (renamed from src/battle/battle_controller_player.c) | 392 | ||||
-rw-r--r-- | src/battle_controller_safari.c (renamed from src/battle/battle_controller_safari.c) | 64 | ||||
-rw-r--r-- | src/battle_controller_wally.c (renamed from src/battle/battle_controller_wally.c) | 208 | ||||
-rw-r--r-- | src/battle_gfx_sfx_util.c (renamed from src/battle/battle_7.c) | 62 | ||||
-rw-r--r-- | src/battle_interface.c (renamed from src/battle/battle_interface.c) | 128 | ||||
-rw-r--r-- | src/battle_main.c (renamed from src/battle/battle_2.c) | 598 | ||||
-rw-r--r-- | src/battle_message.c (renamed from src/battle/battle_message.c) | 106 | ||||
-rw-r--r-- | src/battle_party_menu.c (renamed from src/battle/battle_party_menu.c) | 0 | ||||
-rw-r--r-- | src/battle_records.c (renamed from src/battle/battle_records.c) | 0 | ||||
-rw-r--r-- | src/battle_script_commands.c (renamed from src/battle/battle_4.c) | 4331 | ||||
-rw-r--r-- | src/battle_setup.c (renamed from src/battle/battle_setup.c) | 4 | ||||
-rw-r--r-- | src/battle_tower.c | 2 | ||||
-rw-r--r-- | src/battle_transition.c (renamed from src/battle/battle_transition.c) | 0 | ||||
-rw-r--r-- | src/battle_util.c (renamed from src/battle/battle_util.c) | 514 | ||||
-rw-r--r-- | src/berry_blender.c | 14 | ||||
-rw-r--r-- | src/cable_club.c | 2 | ||||
-rw-r--r-- | src/calculate_base_damage.c (renamed from src/battle/calculate_base_damage.c) | 0 | ||||
-rw-r--r-- | src/contest.c | 37 | ||||
-rw-r--r-- | src/contest_link_80C2020.c (renamed from src/battle/contest_link_80C2020.c) | 74 | ||||
-rw-r--r-- | src/contest_link_80C857C.c (renamed from src/battle/contest_link_80C857C.c) | 0 | ||||
-rw-r--r-- | src/contest_painting.c | 4 | ||||
-rw-r--r-- | src/credits.c | 2 | ||||
-rw-r--r-- | src/data/.gitignore | 1 | ||||
-rw-r--r-- | src/data/bard_music/actions.h | 326 | ||||
-rw-r--r-- | src/data/bard_music/adjectives.h | 158 | ||||
-rw-r--r-- | src/data/bard_music/bard_sounds.h | 53 | ||||
-rw-r--r-- | src/data/bard_music/battle.h | 266 | ||||
-rw-r--r-- | src/data/bard_music/conditions.h | 290 | ||||
-rw-r--r-- | src/data/bard_music/endings.h | 290 | ||||
-rw-r--r-- | src/data/bard_music/events.h | 102 | ||||
-rw-r--r-- | src/data/bard_music/feelings.h | 290 | ||||
-rw-r--r-- | src/data/bard_music/greetings.h | 182 | ||||
-rw-r--r-- | src/data/bard_music/hobbies.h | 230 | ||||
-rw-r--r-- | src/data/bard_music/length_table.h | 21 | ||||
-rw-r--r-- | src/data/bard_music/lifestyle.h | 194 | ||||
-rw-r--r-- | src/data/bard_music/misc.h | 182 | ||||
-rw-r--r-- | src/data/bard_music/moves.h | 1410 | ||||
-rw-r--r-- | src/data/bard_music/people.h | 314 | ||||
-rw-r--r-- | src/data/bard_music/pokemon.h | 823 | ||||
-rw-r--r-- | src/data/bard_music/pokemon_2.h | 1018 | ||||
-rw-r--r-- | src/data/bard_music/speech.h | 254 | ||||
-rw-r--r-- | src/data/bard_music/status.h | 450 | ||||
-rw-r--r-- | src/data/bard_music/time.h | 194 | ||||
-rw-r--r-- | src/data/bard_music/trainer.h | 90 | ||||
-rw-r--r-- | src/data/bard_music/trendysaying.h | 146 | ||||
-rw-r--r-- | src/data/bard_music/voices.h | 266 | ||||
-rw-r--r-- | src/data/bard_music/word_pitch.h | 183 | ||||
-rw-r--r-- | src/data/bard_music_de.h | 3699 | ||||
-rw-r--r-- | src/data/bard_music_en.h | 3678 | ||||
-rw-r--r-- | src/data/field_event_obj/event_object_graphics_info_pointers.h | 440 | ||||
-rw-r--r-- | src/data/graphics.c | 17 | ||||
-rw-r--r-- | src/data/graphics/berries.h (renamed from src/data/berry_gfx.h) | 0 | ||||
-rw-r--r-- | src/data/graphics/pokemon.h (renamed from src/data/pokemon_gfx.h) | 0 | ||||
-rw-r--r-- | src/data/graphics/trainers.h (renamed from src/data/trainer_gfx.h) | 0 | ||||
-rw-r--r-- | src/data/wild_encounters.json | 18912 | ||||
-rw-r--r-- | src/data/wild_encounters.json.txt | 84 | ||||
-rw-r--r-- | src/debug/sound_check_menu.c | 4 | ||||
-rw-r--r-- | src/evolution_scene.c | 58 | ||||
-rw-r--r-- | src/field_door.c | 6 | ||||
-rw-r--r-- | src/fieldmap.c | 4 | ||||
-rw-r--r-- | src/fldeff_flash.c | 8 | ||||
-rw-r--r-- | src/hall_of_fame.c | 10 | ||||
-rw-r--r-- | src/intro.c | 6 | ||||
-rw-r--r-- | src/link.c | 2 | ||||
-rw-r--r-- | src/main_menu.c | 3 | ||||
-rw-r--r-- | src/mauville_man.c | 14 | ||||
-rw-r--r-- | src/option_menu.c | 2 | ||||
-rw-r--r-- | src/overworld.c | 10 | ||||
-rw-r--r-- | src/pokeball.c (renamed from src/battle/pokeball.c) | 68 | ||||
-rw-r--r-- | src/pokeblock_feed.c | 6 | ||||
-rw-r--r-- | src/pokedex.c | 38 | ||||
-rw-r--r-- | src/pokedex_cry_screen.c | 4 | ||||
-rw-r--r-- | src/pokemon_2.c | 8 | ||||
-rw-r--r-- | src/pokemon_3.c | 30 | ||||
-rw-r--r-- | src/pokemon_icon.c | 880 | ||||
-rw-r--r-- | src/pokemon_item_effect.c | 10 | ||||
-rw-r--r-- | src/pokemon_size_record.c | 14 | ||||
-rw-r--r-- | src/pokemon_storage_system_4.c | 8 | ||||
-rw-r--r-- | src/pokemon_summary_screen.c | 6 | ||||
-rw-r--r-- | src/post_battle_event_funcs.c (renamed from src/battle/post_battle_event_funcs.c) | 0 | ||||
-rw-r--r-- | src/record_mixing.c | 607 | ||||
-rw-r--r-- | src/reshow_battle_screen.c (renamed from src/battle/reshow_battle_screen.c) | 58 | ||||
-rw-r--r-- | src/rom3.c | 317 | ||||
-rw-r--r-- | src/rom_8077ABC.c | 12 | ||||
-rw-r--r-- | src/roulette.c | 6 | ||||
-rw-r--r-- | src/roulette_gfx.c | 8 | ||||
-rw-r--r-- | src/smokescreen.c (renamed from src/battle/smokescreen.c) | 0 | ||||
-rw-r--r-- | src/sound.c | 74 | ||||
-rw-r--r-- | src/sprite.c | 124 | ||||
-rw-r--r-- | src/task.c | 56 | ||||
-rw-r--r-- | src/title_screen.c | 4 | ||||
-rw-r--r-- | src/trade.c | 4 | ||||
-rw-r--r-- | src/wild_encounter.c | 3728 |
124 files changed, 31509 insertions, 18127 deletions
diff --git a/src/bard_music.c b/src/bard_music.c index 4518cf09b..80fde68be 100644 --- a/src/bard_music.c +++ b/src/bard_music.c @@ -2,198 +2,33 @@ #include "bard_music.h" #include "easy_chat.h" -struct BardSound -{ - /*0x00*/ u8 var00; - /*0x01*/ s8 var01; - /*0x02*/ u16 var02; - /*0x04*/ u16 volume; - /*0x06*/ u16 var06; -}; - -static const s16 Unknown_8416F08[] = {-768, 6144}; -static const s16 Unknown_8416F0C[] = {2304, 6144}; -static const s16 Unknown_8416F10[] = {256, 6144}; -static const s16 Unknown_8416F14[] = {1024, 6144}; -static const s16 Unknown_8416F18[] = {2816, 6144}; -static const s16 Unknown_8416F1C[] = {-768, -256, 6144}; -static const s16 Unknown_8416F22[] = {-768, 512, 6144}; -static const s16 Unknown_8416F28[] = {512, 1024, 6144}; -static const s16 Unknown_8416F2E[] = {1536, 2048, 6144}; -static const s16 Unknown_8416F34[] = {2304, 2048, 6144}; -static const s16 Unknown_8416F3A[] = {-768, -256, -768, 6144}; -static const s16 Unknown_8416F42[] = {1024, -768, 1024, 6144}; -static const s16 Unknown_8416F4A[] = {2304, 2048, 1536, 6144}; -static const s16 Unknown_8416F52[] = {256, 512, 1024, 6144}; -static const s16 Unknown_8416F5A[] = {1536, 4096, 3328, 6144}; -static const s16 Unknown_8416F62[] = {1024, 2304, 1024, 2304, 6144}; -static const s16 Unknown_8416F6C[] = {2304, 1024, 3328, 1024, 6144}; -static const s16 Unknown_8416F76[] = {256, 512, 1024, 1536, 6144}; -static const s16 Unknown_8416F80[] = {2048, 1536, 1024, 512, 6144}; -static const s16 Unknown_8416F8A[] = {3840, 3328, 2816, 2560, 6144}; -static const s16 Unknown_8416F94[] = {-768, -256, 256, 512, 1024, 6144}; -static const s16 Unknown_8416FA0[] = {2304, 2048, 1536, 1024, 512, 6144}; -static const s16 Unknown_8416FAC[] = {256, 1024, 2304, 1024, 256, 6144}; -static const s16 Unknown_8416FB8[] = {2304, 1024, 2304, 1024, -768, 6144}; -static const s16 Unknown_8416FC4[] = {2816, 2048, 1024, 1024, 1536, 6144}; -static const s16 Unknown_8416FD0[] = {-768, -256, 256, 512, 1024, 1536, 6144}; -static const s16 Unknown_8416FDE[] = {2048, 1536, 1024, 512, 256, -256, 6144}; -static const s16 Unknown_8416FEC[] = {256, 512, 1024, 256, 512, 4096, 6144}; -static const s16 Unknown_8416FFA[] = {1024, -768, 2304, 1024, 2304, 1024, 6144}; -static const s16 Unknown_8417008[] = {2048, 2304, 2048, 2304, 2048, 2304, 6144}; -static const s16 Unknown_8417016[] = {512, 256, 512, 256, 512, 1024, 512, 6144}; -static const s16 Unknown_8417026[] = {256, 256, -256, -256, -768, 1024, -768, 6144}; -static const s16 Unknown_8417036[] = {2048, 2304, 2816, 3328, 3584, 3328, 2816, 6144}; -static const s16 Unknown_8417046[] = {2048, 1536, 1024, 512, 3328, 2816, 2304, 6144}; -static const s16 Unknown_8417056[] = {768, 1024, 1536, 2048, 1792, 2048, 1024, 6144}; - -static const s16 *const sWordPitches[] = { - Unknown_8416F08, - Unknown_8416F0C, - Unknown_8416F10, - Unknown_8416F14, - Unknown_8416F18, - Unknown_8416F1C, - Unknown_8416F22, - Unknown_8416F28, - Unknown_8416F2E, - Unknown_8416F34, - Unknown_8416F3A, - Unknown_8416F42, - Unknown_8416F4A, - Unknown_8416F52, - Unknown_8416F5A, - Unknown_8416F62, - Unknown_8416F6C, - Unknown_8416F76, - Unknown_8416F80, - Unknown_8416F8A, - Unknown_8416F94, - Unknown_8416FA0, - Unknown_8416FAC, - Unknown_8416FB8, - Unknown_8416FC4, - Unknown_8416FD0, - Unknown_8416FDE, - Unknown_8416FEC, - Unknown_8416FFA, - Unknown_8417008, - Unknown_8417016, - Unknown_8417026, - Unknown_8417036, - Unknown_8417046, - Unknown_8417056 -}; - -static const u32 sBardSoundLengthDeltas[] = { - 9, - 22, - 15, - 16, - 39, - 21, - 9, - 30, - 24, - 15, - 25, - 12, - 22, - 45, - 24, - 15, - 40, - 9, - 21, - 42, - 18, - 9, - 22, - 15, - 27, - 48, - 18, - 27, - 33, - 24, - 25, - 39, - 19, - 16, - 54, - 18, - 9, - 45, - 15, - 12, - 39, - 23, - 5, - 45, - 12, - 21, - 48, - 12, - 21, - 69, - 18, - 15 -}; - -#if ENGLISH -#include "data/bard_music_en.h" -#elif GERMAN -#include "data/bard_music_de.h" -#endif // ENGLISH/GERMAN - -static const struct BardSound (*const gBardMusicTable[])[6] = { - BardMusic_POKEMON, - BardMusic_TRAINER, - BardMusic_STATUS, - BardMusic_BATTLE, - BardMusic_GREETINGS, - BardMusic_PEOPLE, - BardMusic_VOICES, - BardMusic_SPEECH, - BardMusic_ENDINGS, - BardMusic_FEELINGS, - BardMusic_CONDITIONS, - BardMusic_ACTIONS, - BardMusic_LIFESTYLE, - BardMusic_HOBBIES, - BardMusic_TIME, - BardMusic_MISC, - BardMusic_ADJECTIVES, - BardMusic_EVENTS, - BardMusic_MOVE_1, - BardMusic_MOVE_2, - BardMusic_TRENDY_SAYING, - BardMusic_POKEMON_2 -}; +#include "data/bard_music/word_pitch.h" +#include "data/bard_music/length_table.h" +#include "data/bard_music/bard_sounds.h" -static s16 CalcWordPitch(u32 arg0, u32 songPos) +s16 CalcWordPitch(int arg0, int songPos) { - return sWordPitches[arg0][songPos]; + return gBardSoundPitchTables[arg0][songPos]; } #if ENGLISH const struct BardSound *GetWordSounds(u16 group, u16 word) { - const struct BardSound (*sounds)[6] = gBardMusicTable[group]; + const struct BardSound (*sounds)[6] = gBardSoundsTable[group]; return sounds[word]; } #elif GERMAN const struct BardSound *GetWordSounds(u16 group, u16 word) { - const struct BardSound (*sounds)[6] = gBardMusicTable[group]; + const struct BardSound (*sounds)[6] = gBardSoundsTable[group]; u32 index = de_sub_80EB748(group, word); return sounds[index]; } #endif -s32 GetWordPhonemes(struct BardSong *song, const struct BardSound *src, u16 arg2) +s32 GetWordPhonemes(struct BardSong *song, const struct BardSound *src, u16 word) { s32 i; s32 j; @@ -204,7 +39,7 @@ s32 GetWordPhonemes(struct BardSong *song, const struct BardSound *src, u16 arg2 song->phonemes[i].sound = src[i].var00; if (src[i].var00 != 0xFF) { - s32 length = src[i].var01 + sBardSoundLengthDeltas[src[i].var00]; + s32 length = src[i].var01 + gBardSoundLengthTable[src[i].var00]; song->phonemes[i].length = length; song->phonemes[i].volume = src[i].volume; @@ -213,7 +48,7 @@ s32 GetWordPhonemes(struct BardSong *song, const struct BardSound *src, u16 arg2 } for (j = 0, thirty = 30; j < i; j++) - song->phonemes[j].pitch = CalcWordPitch(thirty + arg2, j); + song->phonemes[j].pitch = CalcWordPitch(thirty + word, j); song->currWord++; song->currPhoneme = 0; diff --git a/src/battle/anim/battle_intro.c b/src/battle/anim/battle_intro.c index a189b1425..c18f5790c 100644 --- a/src/battle/anim/battle_intro.c +++ b/src/battle/anim/battle_intro.c @@ -1,5 +1,5 @@ #include "global.h" -#include "constants/battle_constants.h" +#include "constants/battle.h" #include "battle.h" #include "battle_anim.h" #include "battle_anim_80CA710.h" diff --git a/src/battle/anim/current.c b/src/battle/anim/current.c index 9b447ce5a..165bded09 100644 --- a/src/battle/anim/current.c +++ b/src/battle/anim/current.c @@ -4,7 +4,7 @@ #include "rom_8077ABC.h" #include "sound.h" #include "trig.h" -#include "constants/battle_constants.h" +#include "constants/battle.h" #include "constants/songs.h" extern s16 gBattleAnimArgs[]; @@ -484,12 +484,11 @@ void sub_80D681C(u8 taskId) gTasks[taskId].func = sub_80D6874; } -#ifdef NONMATCHING // couldn't get the proper tail merging in the "CreateSprite" switch cases. static void sub_80D6874(u8 taskId) { u16 r8; + u16 r2; s16 r12; - s16 r2; u8 spriteId = 0; u8 r7 = 0; u8 sp = gTasks[taskId].data[2]; @@ -512,27 +511,31 @@ static void sub_80D6874(u8 taskId) switch (gTasks[taskId].data[10]) { case 0: - r8 += r2 * 0; - spriteId = CreateSprite(&gSpriteTemplate_83D9938, r4, r6 + (r12 * 1), 2); + r12 *= 1; + spriteId = CreateSprite(&gSpriteTemplate_83D9938, r4, r6 + r12, 2); r7++; break; case 2: + r12 *= 2; r8 += r2; - spriteId = CreateSprite(&gSpriteTemplate_83D9938, r4, r6 + (r12 * 2), 2); + spriteId = CreateSprite(&gSpriteTemplate_83D9938, r4, r6 + r12, 2); r7++; break; case 4: + r12 *= 3; r8 += r2 * 2; - spriteId = CreateSprite(&gSpriteTemplate_83D9938, r4, r6 + (r12 * 3), 2); + spriteId = CreateSprite(&gSpriteTemplate_83D9938, r4, r6 + r12, 2); r7++; break; case 6: + r12 *= 4; r8 += r2 * 3; - spriteId = CreateSprite(&gSpriteTemplate_83D9938, r4, r6 + (r12 * 4), 2); + spriteId = CreateSprite(&gSpriteTemplate_83D9938, r4, r6 + r12, 2); r7++; break; case 8: - spriteId = CreateSprite(&gSpriteTemplate_83D9938, r4, r6 + (r12 * 5), 2); + r12 *= 5; + spriteId = CreateSprite(&gSpriteTemplate_83D9938, r4, r6 + r12, 2); r7++; break; case 10: @@ -549,221 +552,6 @@ static void sub_80D6874(u8 taskId) gTasks[taskId].data[10]++; } -#else -NAKED -static void sub_80D6874(u8 taskId) -{ - asm(".syntax unified\n\ - push {r4-r7,lr}\n\ - mov r7, r10\n\ - mov r6, r9\n\ - mov r5, r8\n\ - push {r5-r7}\n\ - sub sp, 0x4\n\ - lsls r0, 24\n\ - lsrs r0, 24\n\ - mov r9, r0\n\ - movs r5, 0\n\ - movs r7, 0\n\ - ldr r1, _080D68B4 @ =gTasks\n\ - lsls r0, 2\n\ - add r0, r9\n\ - lsls r0, 3\n\ - adds r0, r1\n\ - ldrb r2, [r0, 0xC]\n\ - str r2, [sp]\n\ - ldrh r4, [r0, 0x8]\n\ - ldrh r6, [r0, 0xA]\n\ - movs r3, 0xC\n\ - ldrsh r0, [r0, r3]\n\ - mov r10, r1\n\ - cmp r0, 0\n\ - bne _080D68B8\n\ - movs r0, 0\n\ - mov r8, r0\n\ - movs r2, 0x1\n\ - movs r1, 0x10\n\ - mov r12, r1\n\ - b _080D68C2\n\ - .align 2, 0\n\ -_080D68B4: .4byte gTasks\n\ -_080D68B8:\n\ - movs r2, 0x10\n\ - mov r12, r2\n\ - movs r3, 0x8\n\ - mov r8, r3\n\ - movs r2, 0x4\n\ -_080D68C2:\n\ - mov r0, r9\n\ - lsls r1, r0, 2\n\ - adds r0, r1, r0\n\ - lsls r0, 3\n\ - add r0, r10\n\ - movs r3, 0x1C\n\ - ldrsh r0, [r0, r3]\n\ - mov r10, r1\n\ - cmp r0, 0xA\n\ - bhi _080D69B8\n\ - lsls r0, 2\n\ - ldr r1, _080D68E0 @ =_080D68E4\n\ - adds r0, r1\n\ - ldr r0, [r0]\n\ - mov pc, r0\n\ - .align 2, 0\n\ -_080D68E0: .4byte _080D68E4\n\ - .align 2, 0\n\ -_080D68E4:\n\ - .4byte _080D6910\n\ - .4byte _080D69B8\n\ - .4byte _080D6924\n\ - .4byte _080D69B8\n\ - .4byte _080D6944\n\ - .4byte _080D69B8\n\ - .4byte _080D695A\n\ - .4byte _080D69B8\n\ - .4byte _080D697C\n\ - .4byte _080D69B8\n\ - .4byte _080D69B0\n\ -_080D6910:\n\ - ldr r0, _080D6920 @ =gSpriteTemplate_83D9938\n\ - lsls r1, r4, 16\n\ - asrs r1, 16\n\ - lsls r2, r6, 16\n\ - asrs r2, 16\n\ - mov r4, r12\n\ - lsls r3, r4, 16\n\ - b _080D6992\n\ - .align 2, 0\n\ -_080D6920: .4byte gSpriteTemplate_83D9938\n\ -_080D6924:\n\ - mov r0, r12\n\ - lsls r3, r0, 17\n\ - mov r1, r8\n\ - adds r0, r1, r2\n\ - lsls r0, 16\n\ - lsrs r0, 16\n\ - mov r8, r0\n\ - ldr r0, _080D6940 @ =gSpriteTemplate_83D9938\n\ - lsls r1, r4, 16\n\ - asrs r1, 16\n\ - lsls r2, r6, 16\n\ - asrs r2, 16\n\ - b _080D6992\n\ - .align 2, 0\n\ -_080D6940: .4byte gSpriteTemplate_83D9938\n\ -_080D6944:\n\ - mov r3, r12\n\ - lsls r0, r3, 16\n\ - asrs r0, 16\n\ - lsls r3, r0, 1\n\ - adds r3, r0\n\ - lsls r0, r2, 1\n\ - add r0, r8\n\ - lsls r0, 16\n\ - lsrs r0, 16\n\ - mov r8, r0\n\ - b _080D6986\n\ -_080D695A:\n\ - mov r0, r12\n\ - lsls r3, r0, 18\n\ - lsls r0, r2, 1\n\ - adds r0, r2\n\ - add r0, r8\n\ - lsls r0, 16\n\ - lsrs r0, 16\n\ - mov r8, r0\n\ - ldr r0, _080D6978 @ =gSpriteTemplate_83D9938\n\ - lsls r1, r4, 16\n\ - asrs r1, 16\n\ - lsls r2, r6, 16\n\ - asrs r2, 16\n\ - b _080D6992\n\ - .align 2, 0\n\ -_080D6978: .4byte gSpriteTemplate_83D9938\n\ -_080D697C:\n\ - mov r1, r12\n\ - lsls r0, r1, 16\n\ - asrs r0, 16\n\ - lsls r3, r0, 2\n\ - adds r3, r0\n\ -_080D6986:\n\ - ldr r0, _080D69AC @ =gSpriteTemplate_83D9938\n\ - lsls r1, r4, 16\n\ - asrs r1, 16\n\ - lsls r2, r6, 16\n\ - asrs r2, 16\n\ - lsls r3, 16\n\ -_080D6992:\n\ - asrs r3, 16\n\ - adds r2, r3\n\ - lsls r2, 16\n\ - asrs r2, 16\n\ - movs r3, 0x2\n\ - bl CreateSprite\n\ - lsls r0, 24\n\ - lsrs r5, r0, 24\n\ - adds r0, r7, 0x1\n\ - lsls r0, 24\n\ - lsrs r7, r0, 24\n\ - b _080D69B8\n\ - .align 2, 0\n\ -_080D69AC: .4byte gSpriteTemplate_83D9938\n\ -_080D69B0:\n\ - mov r0, r9\n\ - bl DestroyAnimVisualTask\n\ - b _080D69FC\n\ -_080D69B8:\n\ - cmp r7, 0\n\ - beq _080D69EC\n\ - ldr r4, _080D6A0C @ =gSprites\n\ - lsls r3, r5, 4\n\ - adds r3, r5\n\ - lsls r3, 2\n\ - adds r0, r3, r4\n\ - ldrh r5, [r0, 0x4]\n\ - lsls r2, r5, 22\n\ - lsrs r2, 22\n\ - add r2, r8\n\ - ldr r6, _080D6A10 @ =0x000003ff\n\ - adds r1, r6, 0\n\ - ands r2, r1\n\ - ldr r1, _080D6A14 @ =0xfffffc00\n\ - ands r1, r5\n\ - orrs r1, r2\n\ - strh r1, [r0, 0x4]\n\ - mov r1, sp\n\ - ldrh r1, [r1]\n\ - strh r1, [r0, 0x2E]\n\ - adds r4, 0x1C\n\ - adds r3, r4\n\ - ldr r1, [r3]\n\ - bl _call_via_r1\n\ -_080D69EC:\n\ - ldr r0, _080D6A18 @ =gTasks\n\ - mov r1, r10\n\ - add r1, r9\n\ - lsls r1, 3\n\ - adds r1, r0\n\ - ldrh r0, [r1, 0x1C]\n\ - adds r0, 0x1\n\ - strh r0, [r1, 0x1C]\n\ -_080D69FC:\n\ - add sp, 0x4\n\ - pop {r3-r5}\n\ - mov r8, r3\n\ - mov r9, r4\n\ - mov r10, r5\n\ - pop {r4-r7}\n\ - pop {r0}\n\ - bx r0\n\ - .align 2, 0\n\ -_080D6A0C: .4byte gSprites\n\ -_080D6A10: .4byte 0x000003ff\n\ -_080D6A14: .4byte 0xfffffc00\n\ -_080D6A18: .4byte gTasks\n\ - .syntax divided\n"); -} -#endif void sub_80D6A1C(struct Sprite *sprite) { diff --git a/src/battle/anim/dark.c b/src/battle/anim/dark.c index 47f86b744..d3d992bda 100644 --- a/src/battle/anim/dark.c +++ b/src/battle/anim/dark.c @@ -9,12 +9,12 @@ #include "sound.h" #include "sprite.h" #include "trig.h" -#include "constants/battle_constants.h" +#include "constants/battle.h" extern s16 gBattleAnimArgs[]; extern u8 gBattleAnimAttacker; extern u8 gBattleAnimTarget; -extern u8 gBankSpriteIds[]; +extern u8 gBattlerSpriteIds[]; extern u16 gBattle_BG1_X; extern u16 gBattle_BG1_Y; extern u16 gBattle_BG2_X; @@ -233,7 +233,7 @@ static void sub_80DFC9C(u8 taskId) gTasks[taskId].data[2] = 0; if (r2 == 16) { - gSprites[gBankSpriteIds[gBattleAnimAttacker]].invisible = 1; + gSprites[gBattlerSpriteIds[gBattleAnimAttacker]].invisible = 1; DestroyAnimVisualTask(taskId); } } @@ -957,12 +957,12 @@ void sub_80E0918(u8 taskId) { u8 toBG2 = GetBattlerPosition_permutated(gBattleAnimAttacker) ^ 1 ? 1 : 0; MoveBattlerSpriteToBG(gBattleAnimAttacker, toBG2); - gSprites[gBankSpriteIds[gBattleAnimAttacker]].invisible = 0; + gSprites[gBattlerSpriteIds[gBattleAnimAttacker]].invisible = 0; if (IsAnimBankSpriteVisible(gBattleAnimAttacker ^ 2)) { MoveBattlerSpriteToBG(gBattleAnimAttacker ^ 2, toBG2 ^ 1); - gSprites[gBankSpriteIds[gBattleAnimAttacker ^ 2]].invisible = 0; + gSprites[gBattlerSpriteIds[gBattleAnimAttacker ^ 2]].invisible = 0; } DestroyAnimVisualTask(taskId); @@ -1015,7 +1015,7 @@ void sub_80E0A4C(u8 taskId) { if (IsAnimBankSpriteVisible(gBattleAnimAttacker ^ 2) == TRUE) { - gSprites[gBankSpriteIds[gBattleAnimAttacker ^ 2]].oam.priority--; + gSprites[gBattlerSpriteIds[gBattleAnimAttacker ^ 2]].oam.priority--; REG_BG1CNT_BITFIELD.priority = 1; var0 = 1; } @@ -1101,7 +1101,7 @@ static void sub_80E0CD0(u8 taskId) if (gTasks[taskIdCopy].data[6] == 1) { - gSprites[gBankSpriteIds[gBattleAnimAttacker ^ 2]].oam.priority++; + gSprites[gBattlerSpriteIds[gBattleAnimAttacker ^ 2]].oam.priority++; } DestroyAnimVisualTask(taskIdCopy); @@ -1149,7 +1149,7 @@ void sub_80E0E24(u8 taskId) { bank = GetBattlerAtPosition(identity); if (IsAnimBankSpriteVisible(bank)) - spriteId = gBankSpriteIds[bank]; + spriteId = gBattlerSpriteIds[bank]; else spriteId = 0xFF; } diff --git a/src/battle/anim/dragon.c b/src/battle/anim/dragon.c index b59e8aff4..6ac0746a3 100644 --- a/src/battle/anim/dragon.c +++ b/src/battle/anim/dragon.c @@ -8,11 +8,11 @@ extern s16 gBattleAnimArgs[]; extern u8 gBattleAnimAttacker; extern u8 gBattleAnimTarget; -extern u8 gBankAttacker; +extern u8 gBattlerAttacker; extern u16 gBattle_BG1_X; extern u16 gBattle_BG2_X; extern u16 gUnknown_03000730[]; -extern u8 gBankSpriteIds[]; +extern u8 gBattlerSpriteIds[]; void sub_80DF5A0(struct Sprite *sprite); void sub_80DF760(struct Sprite *sprite); @@ -286,8 +286,8 @@ void sub_80DF78C(struct Sprite *sprite) sprite->data[4] = 0; sprite->data[5] = 1; sprite->data[6] = gBattleAnimArgs[0]; - r5 = GetBattlerSpriteCoordAttr(gBankAttacker, 0); - r0 = GetBattlerSpriteCoordAttr(gBankAttacker, 1); + r5 = GetBattlerSpriteCoordAttr(gBattlerAttacker, 0); + r0 = GetBattlerSpriteCoordAttr(gBattlerAttacker, 1); if (r5 > r0) sprite->data[7] = r5 / 2; else diff --git a/src/battle/anim/fight.c b/src/battle/anim/fight.c index f51a5c56c..8d045c42d 100644 --- a/src/battle/anim/fight.c +++ b/src/battle/anim/fight.c @@ -5,13 +5,13 @@ #include "sprite.h" #include "task.h" #include "trig.h" -#include "constants/battle_constants.h" +#include "constants/battle.h" extern s16 gBattleAnimArgs[]; -extern u8 gBankAttacker; +extern u8 gBattlerAttacker; extern u8 gBattleAnimAttacker; extern u8 gBattleAnimTarget; -extern u8 gBankSpriteIds[]; +extern u8 gBattlerSpriteIds[]; extern u8 gBanksBySide[]; extern u16 gBattle_BG1_X; extern u16 gBattle_BG1_Y; @@ -817,8 +817,8 @@ void sub_80D97CC(struct Sprite *sprite) { if (gBattleAnimArgs[0] == 0) { - sprite->pos1.x = GetBattlerSpriteCoord(gBankAttacker, 2); - sprite->pos1.y = GetBattlerSpriteCoord(gBankAttacker, 3); + sprite->pos1.x = GetBattlerSpriteCoord(gBattlerAttacker, 2); + sprite->pos1.y = GetBattlerSpriteCoord(gBattlerAttacker, 3); sprite->oam.priority = GetBattlerSpriteBGPriority(gBattleAnimAttacker); sprite->data[7] = gBattleAnimTarget; } @@ -919,8 +919,8 @@ void sub_80D9A38(struct Sprite *sprite) if (gBattleAnimArgs[0] == 0) { - sprite->pos1.x = GetBattlerSpriteCoord(gBankAttacker, 2); - sprite->pos1.y = GetBattlerSpriteCoord(gBankAttacker, 3); + sprite->pos1.x = GetBattlerSpriteCoord(gBattlerAttacker, 2); + sprite->pos1.y = GetBattlerSpriteCoord(gBattlerAttacker, 3); bank = gBattleAnimTarget; sprite->oam.priority = GetBattlerSpriteBGPriority(gBattleAnimAttacker); } diff --git a/src/battle/anim/ghost.c b/src/battle/anim/ghost.c index 52911f366..2b7ff8d95 100644 --- a/src/battle/anim/ghost.c +++ b/src/battle/anim/ghost.c @@ -7,11 +7,11 @@ #include "scanline_effect.h" #include "sound.h" #include "trig.h" -#include "constants/battle_constants.h" +#include "constants/battle.h" #include "constants/songs.h" extern s16 gBattleAnimArgs[]; -extern u8 gBankSpriteIds[]; +extern u8 gBattlerSpriteIds[]; extern u8 gBattleAnimAttacker; extern u8 gBattleAnimTarget; extern u8 gUnknown_0202F7D2; @@ -1301,7 +1301,7 @@ static void sub_80DF3D8(struct Sprite *sprite) static void sub_80DF49C(struct Sprite *sprite) { sprite->invisible = 1; - sprite->data[5] = gBankSpriteIds[gBattleAnimAttacker]; + sprite->data[5] = gBattlerSpriteIds[gBattleAnimAttacker]; sprite->data[0] = 128; sprite->data[1] = 10; sprite->data[2] = gBattleAnimArgs[0]; diff --git a/src/battle/anim/ground.c b/src/battle/anim/ground.c index 2828be7be..8d342a2f6 100644 --- a/src/battle/anim/ground.c +++ b/src/battle/anim/ground.c @@ -17,7 +17,7 @@ extern u16 gBattle_BG2_Y; extern u16 gBattle_BG3_X; extern u16 gBattle_BG3_Y; extern u16 gAnimMovePower; -extern u8 gBankSpriteIds[]; +extern u8 gBattlerSpriteIds[]; static void AnimBonemerangProjectile(struct Sprite *sprite); static void AnimBonemerangProjectileStep(struct Sprite *sprite); @@ -593,7 +593,7 @@ void sub_80E1864(u8 taskId) { if (IsAnimBankSpriteVisible(i)) { - task->data[task->data[13] + 9] = gBankSpriteIds[i]; + task->data[task->data[13] + 9] = gBattlerSpriteIds[i]; task->data[13]++; } } diff --git a/src/battle/anim/ice.c b/src/battle/anim/ice.c index fed21ebe9..4002ceec1 100644 --- a/src/battle/anim/ice.c +++ b/src/battle/anim/ice.c @@ -4,7 +4,7 @@ #include "rom_8077ABC.h" #include "battle.h" #include "battle_anim.h" -#include "constants/battle_constants.h" +#include "constants/battle.h" #include "task.h" #include "decompress.h" #include "palette.h" @@ -15,7 +15,7 @@ extern u8 gBattleAnimAttacker; extern u8 gBattleAnimTarget; extern u8 gAnimVisualTaskCount; extern u8 gBanksBySide[]; -extern u8 gBankSpriteIds[]; +extern u8 gBattlerSpriteIds[]; extern u16 gBattle_BG1_X; extern u16 gBattle_BG1_Y; diff --git a/src/battle/anim/lunge.c b/src/battle/anim/lunge.c index 381392e71..f23b34efc 100644 --- a/src/battle/anim/lunge.c +++ b/src/battle/anim/lunge.c @@ -8,7 +8,7 @@ extern s16 gBattleAnimArgs[]; extern u8 gBattleAnimAttacker; extern u8 gBattleAnimTarget; -extern u8 gBankSpriteIds[]; +extern u8 gBattlerSpriteIds[]; void sub_80CD774(struct Sprite* sprite); void sub_80CD9C4(struct Sprite* sprite); @@ -73,7 +73,7 @@ static void sub_80CD7CC(struct Sprite* sprite) sprite->data[0] = 6; sprite->data[1] = (GetBattlerSide(gBattleAnimAttacker)) ? 2 : -2; sprite->data[2] = 0; - sprite->data[3] = gBankSpriteIds[gBattleAnimAttacker]; + sprite->data[3] = gBattlerSpriteIds[gBattleAnimAttacker]; StoreSpriteCallbackInData(sprite, sub_80CD81C); sprite->callback = TranslateMonBGUntil; } @@ -82,7 +82,7 @@ static void sub_80CD81C(struct Sprite* sprite) { if (sprite->data[0] == 0) { - sprite->data[3] = gBankSpriteIds[gBattleAnimAttacker]; + sprite->data[3] = gBattlerSpriteIds[gBattleAnimAttacker]; PrepareBattlerSpriteForRotScale(sprite->data[3], 0); sprite->data[4] = (sprite->data[6] = GetBattlerSide(gBattleAnimAttacker)) ? 0x300 : 0xFFFFFD00; sprite->data[5] = 0; @@ -103,7 +103,7 @@ static void sub_80CD8A8(struct Sprite* sprite) sprite->data[0] = 4; sprite->data[1] = (GetBattlerSide(gBattleAnimAttacker)) ? -3 : 3; sprite->data[2] = 0; - sprite->data[3] = gBankSpriteIds[gBattleAnimAttacker]; + sprite->data[3] = gBattlerSpriteIds[gBattleAnimAttacker]; StoreSpriteCallbackInData(sprite, sub_80CD9B8); sprite->callback = TranslateMonBGUntil; } @@ -121,7 +121,7 @@ static void sub_80CD91C(struct Sprite* sprite) { if (sprite->data[0] == 0) { - sprite->data[3] = gBankSpriteIds[gBattleAnimAttacker]; + sprite->data[3] = gBattlerSpriteIds[gBattleAnimAttacker]; sprite->data[6] = GetBattlerSide(gBattleAnimAttacker); if (GetBattlerSide(gBattleAnimAttacker)) { @@ -162,7 +162,7 @@ static void sub_80CD9D4(struct Sprite* sprite) { case 0: sprite->data[1] = 0; - sprite->data[2] = gBankSpriteIds[gBattleAnimAttacker]; + sprite->data[2] = gBattlerSpriteIds[gBattleAnimAttacker]; sprite->data[3] = GetBattlerSide(gBattleAnimAttacker); sprite->data[4] = (sprite->data[3] != 0) ? 0x200 : -0x200; sprite->data[5] = 0; @@ -196,7 +196,7 @@ void sub_80CDAC8(u8 taskId) { u8 a; - gTasks[taskId].data[0] = gBankSpriteIds[gBattleAnimAttacker]; + gTasks[taskId].data[0] = gBattlerSpriteIds[gBattleAnimAttacker]; a = GetBattlerSide(gBattleAnimAttacker); gTasks[taskId].data[1] = a; gTasks[taskId].data[2] = 0; diff --git a/src/battle/anim/normal.c b/src/battle/anim/normal.c index 4ac8737ad..ef7f50f00 100644 --- a/src/battle/anim/normal.c +++ b/src/battle/anim/normal.c @@ -10,20 +10,20 @@ #include "sound.h" #include "task.h" #include "trig.h" -#include "constants/battle_constants.h" +#include "constants/battle.h" #include "constants/songs.h" extern s16 gBattleAnimArgs[]; extern u8 gBattleAnimAttacker; extern u8 gBattleAnimTarget; -extern u8 gHealthboxIDs[]; +extern u8 gHealthboxSpriteIds[]; extern u8 gBattlersCount; -extern u8 gBankSpriteIds[]; +extern u8 gBattlerSpriteIds[]; extern u8 gBattleTerrain; extern u16 gBattlerPartyIndexes[]; -extern u8 gBankTarget; -extern u8 gEffectBank; -extern u8 gBankAttacker; +extern u8 gBattlerTarget; +extern u8 gEffectBattler; +extern u8 gBattlerAttacker; extern u8 gAnimVisualTaskCount; extern const u8 gUnknown_08D20A14[]; @@ -702,7 +702,7 @@ void unref_sub_80E23A8(u8 taskId) if (gTasks[taskId].data[2] & 0x1) { - paletteIndex = IndexOfSpritePaletteTag(gSprites[gHealthboxIDs[attackerBattler]].template->paletteTag); + paletteIndex = IndexOfSpritePaletteTag(gSprites[gHealthboxSpriteIds[attackerBattler]].template->paletteTag); selectedPalettes |= ((1 << paletteIndex) << 16); } @@ -781,7 +781,7 @@ static void sub_80E255C(struct Sprite *sprite) if (var0 < 2) { for (i = 0; i < gBattlersCount; i++) - gSprites[gBankSpriteIds[i]].coordOffsetEnabled = 0; + gSprites[gBattlerSpriteIds[i]].coordOffsetEnabled = 0; } DestroyAnimSprite(sprite); @@ -790,20 +790,20 @@ static void sub_80E255C(struct Sprite *sprite) static void sub_80E260C(void) { - gSprites[gBankSpriteIds[gBattleAnimAttacker]].coordOffsetEnabled = 0; - gSprites[gBankSpriteIds[gBattleAnimTarget]].coordOffsetEnabled = 0; + gSprites[gBattlerSpriteIds[gBattleAnimAttacker]].coordOffsetEnabled = 0; + gSprites[gBattlerSpriteIds[gBattleAnimTarget]].coordOffsetEnabled = 0; if (gBattleAnimArgs[4] == 2) { - gSprites[gBankSpriteIds[gBattleAnimAttacker]].coordOffsetEnabled = 1; - gSprites[gBankSpriteIds[gBattleAnimTarget]].coordOffsetEnabled = 1; + gSprites[gBattlerSpriteIds[gBattleAnimAttacker]].coordOffsetEnabled = 1; + gSprites[gBattlerSpriteIds[gBattleAnimTarget]].coordOffsetEnabled = 1; } else { if (gBattleAnimArgs[4] == 0) - gSprites[gBankSpriteIds[gBattleAnimAttacker]].coordOffsetEnabled = 1; + gSprites[gBattlerSpriteIds[gBattleAnimAttacker]].coordOffsetEnabled = 1; else - gSprites[gBankSpriteIds[gBattleAnimTarget]].coordOffsetEnabled = 1; + gSprites[gBattlerSpriteIds[gBattleAnimTarget]].coordOffsetEnabled = 1; } } @@ -1206,7 +1206,7 @@ void sub_80E2F2C(u8 taskId) { if (IsAnimBankSpriteVisible(gBattleAnimAttacker ^ 2) == TRUE) { - gSprites[gBankSpriteIds[gBattleAnimAttacker ^ 2]].oam.priority -= 1; + gSprites[gBattlerSpriteIds[gBattleAnimAttacker ^ 2]].oam.priority -= 1; REG_BG1CNT_BITFIELD.priority = 1; var0 = 1; } @@ -1275,7 +1275,7 @@ static void sub_80E3194(u8 taskId) sub_8078914(&subStruct); DmaFill32Defvars(3, 0, subStruct.field_4, 0x800); if (gTasks[taskId].data[6] == 1) - gSprites[gBankSpriteIds[gBattleAnimAttacker ^ 2]].oam.priority++; + gSprites[gBattlerSpriteIds[gBattleAnimAttacker ^ 2]].oam.priority++; REG_BG1CNT_BITFIELD.areaOverflowMode = 0; do {} while(0); // needed to match. perhaps part of a debug macro @@ -1343,7 +1343,7 @@ static void sub_80E3338(u8 taskId) { if (IsAnimBankSpriteVisible(battler2) == TRUE) { - gSprites[gBankSpriteIds[battler2]].oam.priority -= 1; + gSprites[gBattlerSpriteIds[battler2]].oam.priority -= 1; REG_BG1CNT_BITFIELD.priority = 1; var0 = 1; } @@ -1362,9 +1362,9 @@ static void sub_80E3338(u8 taskId) species = GetMonData(&gPlayerParty[gBattlerPartyIndexes[battler1]], MON_DATA_SPECIES); } - spriteId = sub_807A4A0(battler1, gBankSpriteIds[battler1], species); + spriteId = sub_807A4A0(battler1, gBattlerSpriteIds[battler1], species); if (taskData[3]) - spriteId2 = sub_807A4A0(battler2, gBankSpriteIds[battler2], species); + spriteId2 = sub_807A4A0(battler2, gBattlerSpriteIds[battler2], species); sub_8078914(&subStruct); if (taskData[0] == 0) @@ -1422,7 +1422,7 @@ static void sub_80E3338(u8 taskId) gTasks[taskId].data[2] = taskData[3]; gTasks[taskId].data[3] = spriteId2; gTasks[taskId].data[6] = var0; - gTasks[taskId].data[7] = gBankSpriteIds[battler2]; + gTasks[taskId].data[7] = gBattlerSpriteIds[battler2]; gTasks[taskId].func = sub_80E3704; if (taskData[0] == 0) @@ -1648,7 +1648,7 @@ void sub_80E3BDC(u8 taskId) for (i = 0; i < 4; i++) { if (i != gBattleAnimAttacker && IsAnimBankSpriteVisible(i)) - gSprites[gBankSpriteIds[i]].invisible = gBattleAnimArgs[0]; + gSprites[gBattlerSpriteIds[i]].invisible = gBattleAnimArgs[0]; } DestroyAnimVisualTask(taskId); @@ -1692,9 +1692,9 @@ void sub_80E3C4C(u8 taskId, int unused, u16 arg2, u8 battler1, u8 arg4, u8 arg5, species = GetMonData(&gPlayerParty[gBattlerPartyIndexes[battler1]], MON_DATA_SPECIES); } - spriteId = sub_807A4A0(battler1, gBankSpriteIds[battler1], species); + spriteId = sub_807A4A0(battler1, gBattlerSpriteIds[battler1], species); if (arg4) - spriteId2 = sub_807A4A0(battler2, gBankSpriteIds[battler2], species); + spriteId2 = sub_807A4A0(battler2, gBattlerSpriteIds[battler2], species); sub_8078914(&subStruct); LZDecompressVram(arg9, subStruct.field_4); @@ -1884,8 +1884,8 @@ void sub_80E4200(u8 taskId) void sub_80E4234(u8 taskId) { - gBattleAnimAttacker = gBankTarget; - gBattleAnimTarget = gEffectBank; + gBattleAnimAttacker = gBattlerTarget; + gBattleAnimTarget = gEffectBattler; DestroyAnimVisualTask(taskId); } @@ -1901,14 +1901,14 @@ void sub_80E4264(u8 taskId) void sub_80E42B0(u8 taskId) { - gBattleAnimTarget = gBankTarget; + gBattleAnimTarget = gBattlerTarget; DestroyAnimVisualTask(taskId); } void sub_80E42D0(u8 taskId) { - gBattleAnimAttacker = gBankAttacker; - gBattleAnimTarget = gEffectBank; + gBattleAnimAttacker = gBattlerAttacker; + gBattleAnimTarget = gEffectBattler; DestroyAnimVisualTask(taskId); } diff --git a/src/battle/anim/psychic.c b/src/battle/anim/psychic.c index 84673097e..84a7741e1 100644 --- a/src/battle/anim/psychic.c +++ b/src/battle/anim/psychic.c @@ -14,7 +14,7 @@ extern u8 gBattleAnimAttacker; extern u8 gBattleAnimTarget; extern u16 gBattle_BG1_X; extern u16 gBattle_BG2_X; -extern u8 gBankSpriteIds[]; +extern u8 gBattlerSpriteIds[]; void sub_80DB74C(struct Sprite *sprite); void sub_80DBA4C(struct Sprite *sprite); @@ -524,11 +524,11 @@ static void sub_80DB92C(struct Sprite *sprite) u8 bank = bankCopy = GetBattlerAtPosition(B_POSITION_OPPONENT_LEFT); if (IsAnimBankSpriteVisible(bank)) - gSprites[gBankSpriteIds[bank]].invisible = 0; + gSprites[gBattlerSpriteIds[bank]].invisible = 0; bank = bankCopy ^ 2; if (IsAnimBankSpriteVisible(bank)) - gSprites[gBankSpriteIds[bank]].invisible = 0; + gSprites[gBattlerSpriteIds[bank]].invisible = 0; } sprite->invisible = 1; diff --git a/src/battle/anim/ring.c b/src/battle/anim/ring.c index 398671249..69e903921 100644 --- a/src/battle/anim/ring.c +++ b/src/battle/anim/ring.c @@ -10,7 +10,7 @@ extern s16 gBattleAnimArgs[]; extern u8 gBattleAnimAttacker; extern u8 gBattleAnimTarget; -extern u8 gBankSpriteIds[]; +extern u8 gBattlerSpriteIds[]; void sub_80D0FD8(struct Sprite* sprite); void sub_80D10B8(struct Sprite* sprite); @@ -284,23 +284,23 @@ void sub_80D10B8(struct Sprite* sprite) { r9 = GetBattlerSpriteCoord(bankr7, r10) + gBattleAnimArgs[0]; if (IsAnimBankSpriteVisible(bankr8 ^ 2)) - sprite->subpriority = gSprites[gBankSpriteIds[bankr8 ^ 2]].subpriority - 1; + sprite->subpriority = gSprites[gBattlerSpriteIds[bankr8 ^ 2]].subpriority - 1; else - sprite->subpriority = gSprites[gBankSpriteIds[bankr8]].subpriority - 1; + sprite->subpriority = gSprites[gBattlerSpriteIds[bankr8]].subpriority - 1; } else { r9 = GetBattlerSpriteCoord(bankr7, r10) - gBattleAnimArgs[0]; if (gMain.inBattle && IsAnimBankSpriteVisible(bankr7 ^ 2)) { - if (gSprites[gBankSpriteIds[bankr7]].pos1.x < gSprites[gBankSpriteIds[bankr7 ^ 2]].pos1.x) - sprite->subpriority = gSprites[gBankSpriteIds[bankr7 ^ 2]].subpriority + 1; + if (gSprites[gBattlerSpriteIds[bankr7]].pos1.x < gSprites[gBattlerSpriteIds[bankr7 ^ 2]].pos1.x) + sprite->subpriority = gSprites[gBattlerSpriteIds[bankr7 ^ 2]].subpriority + 1; else - sprite->subpriority = gSprites[gBankSpriteIds[bankr7]].subpriority - 1; + sprite->subpriority = gSprites[gBattlerSpriteIds[bankr7]].subpriority - 1; } else { - sprite->subpriority = gSprites[gBankSpriteIds[bankr7]].subpriority - 1; + sprite->subpriority = gSprites[gBattlerSpriteIds[bankr7]].subpriority - 1; } } diff --git a/src/battle/anim/roots.c b/src/battle/anim/roots.c index e2dd4a2af..e0cc441aa 100644 --- a/src/battle/anim/roots.c +++ b/src/battle/anim/roots.c @@ -6,7 +6,11 @@ extern s16 gBattleAnimArgs[]; extern u8 gBattleAnimAttacker; extern u8 gBattleAnimTarget; -extern s16 gUnknown_03000728[]; + +IWRAM_DATA u32 filler_03000724; +IWRAM_DATA u16 gUnknown_03000728[4]; +IWRAM_DATA u16 gUnknown_03000730[6]; +IWRAM_DATA u32 filler_0300073c; void sub_80CB59C(struct Sprite* sprite); void sub_80CB620(struct Sprite *sprite); diff --git a/src/battle/anim/tile.c b/src/battle/anim/tile.c index 34695ecf4..2775eba97 100644 --- a/src/battle/anim/tile.c +++ b/src/battle/anim/tile.c @@ -9,7 +9,7 @@ extern s16 gBattleAnimArgs[]; extern u8 gBattleAnimAttacker; extern u8 gBattleAnimTarget; extern u8 gBattlersCount; -extern u8 gHealthboxIDs[]; +extern u8 gHealthboxSpriteIds[]; void sub_80CE09C(struct Sprite* sprite); void sub_80CE17C(struct Sprite* sprite); @@ -198,10 +198,10 @@ void unref_sub_80CE260(u8 taskId) for (i = 0; i < gBattlersCount; i++) { if (gBattleAnimArgs[0] == 1 && GetBattlerSide(i) == 0) - sub_8043DB0(gHealthboxIDs[i]); + sub_8043DB0(gHealthboxSpriteIds[i]); if (gBattleAnimArgs[1] == 1 && GetBattlerSide(i) == 1) - sub_8043DB0(gHealthboxIDs[i]); + sub_8043DB0(gHealthboxSpriteIds[i]); } DestroyAnimVisualTask(taskId); @@ -212,7 +212,7 @@ void unref_sub_80CE2D4(u8 taskId) u8 i; for (i = 0; i < gBattlersCount; i++) { - sub_8043DFC(gHealthboxIDs[i]); + sub_8043DFC(gHealthboxSpriteIds[i]); } DestroyAnimVisualTask(taskId); diff --git a/src/battle/anim/unused_7.c b/src/battle/anim/unused_7.c index f4acbbf7e..1ab6663f1 100644 --- a/src/battle/anim/unused_7.c +++ b/src/battle/anim/unused_7.c @@ -8,7 +8,7 @@ extern s16 gBattleAnimArgs[]; extern u8 gBattleAnimAttacker; extern u8 gBattleAnimTarget; -extern u8 gBankSpriteIds[]; +extern u8 gBattlerSpriteIds[]; void sub_80CF3C4(struct Sprite* sprite); @@ -45,7 +45,7 @@ void sub_80CF3C4(struct Sprite* sprite) u8 a; sprite->pos1.x = GetBattlerSpriteCoord(gBattleAnimAttacker, 2); sprite->pos1.y = GetBattlerSpriteCoord(gBattleAnimAttacker, 3); - a = gBankSpriteIds[gBattleAnimTarget]; + a = gBattlerSpriteIds[gBattleAnimTarget]; if (GetBattlerSide(gBattleAnimAttacker) != 0) { sprite->pos1.x -= gBattleAnimArgs[0]; diff --git a/src/battle/anim/water.c b/src/battle/anim/water.c index b7074bceb..98e50f17f 100644 --- a/src/battle/anim/water.c +++ b/src/battle/anim/water.c @@ -6,6 +6,8 @@ #include "sprite.h" #include "trig.h" #include "util.h" +#include "scanline_effect.h" +#include "palette.h" #include "constants/battle_anim.h" extern u8 gAnimVisualTaskCount; @@ -23,6 +25,7 @@ void sub_8078F40(u8); void sub_8079A64(u8); void sub_80D37FC(struct Sprite *sprite); void sub_80D3838(struct Sprite *sprite); +void sub_80D3D68(u8 taskId); void sub_80D4044(struct Sprite *sprite); void sub_80D40A8(struct Sprite *); void sub_80D4150(u8); @@ -579,7 +582,7 @@ _080D3B5C: .4byte sub_80D3B60\n\ #ifdef NONMATCHING void sub_80D3B60(u8 taskId) { - struct UnknownAnimStruct2 unk; + struct Struct_sub_8078914 unk; u8 i; u16 rgbBuffer; u16 *BGptrX = &gBattle_BG1_X; @@ -590,18 +593,18 @@ void sub_80D3B60(u8 taskId) *BGptrX += gTasks[taskId].data[0]; *BGptrY += gTasks[taskId].data[1]; - sub_80A6B30(&unk); + sub_8078914(&unk); gTasks[taskId].data[2] += gTasks[taskId].data[1]; if (++gTasks[taskId].data[5] == 4) { - rgbBuffer = gPlttBufferFaded[unk.unk8 * 16 + 7]; + rgbBuffer = gPlttBufferFaded[unk.field_8 * 16 + 7]; for (i = 6; i != 0; i--) { - palNum = unk.unk8 * 16; + palNum = unk.field_8 * 16; palOffset = 1 + i; gPlttBufferFaded[palNum + palOffset] = gPlttBufferFaded[palNum + palOffset - 1]; } - gPlttBufferFaded[unk.unk8 * 16 + 1] = rgbBuffer; + gPlttBufferFaded[unk.field_8 * 16 + 1] = rgbBuffer; gTasks[taskId].data[5] = 0; } if (++gTasks[taskId].data[6] > 1) @@ -622,7 +625,7 @@ void sub_80D3B60(u8 taskId) if (!(gTasks[gTasks[taskId].data[15]].data[1] & 0x1F)) { gTasks[taskId].data[0] = gTasks[gTasks[taskId].data[15]].data[1] & 0x1F; - gTasks[taskId].func = sub_8107CC4; + gTasks[taskId].func = sub_80D3D68; } } #else @@ -1895,14 +1898,14 @@ void sub_80D4D64(struct Sprite *sprite, int xDiff, int yDiff) s16 something = sprite->data[0] / 2; s16 combinedX = sprite->pos1.x + sprite->pos2.x; s16 combinedY = sprite->pos1.y + sprite->pos2.y; - s16 randomSomethingY = yDiff + (Random2() % 10) - 5; - s16 randomSomethingX = -xDiff + (Random2() % 10) - 5; + s16 randomSomethingY = yDiff + (Random() % 10) - 5; + s16 randomSomethingX = -xDiff + (Random() % 10) - 5; s16 i; u8 spriteId; for (i = 0; i <= 0; i++) { - spriteId = CreateSprite(&gUnknown_08595310, combinedX, combinedY + something, 130); + spriteId = CreateSprite(&gSpriteTemplate_83D9420, combinedX, combinedY + something, 130); gSprites[spriteId].data[0] = 20; gSprites[spriteId].data[1] = randomSomethingY; gSprites[spriteId].subpriority = GetBattlerSubpriority(gBattleAnimAttacker) - 1; @@ -1913,7 +1916,7 @@ void sub_80D4D64(struct Sprite *sprite, int xDiff, int yDiff) } for (i = 0; i <= 0; i++) { - spriteId = CreateSprite(&gUnknown_08595310, combinedX, combinedY - something, 130); + spriteId = CreateSprite(&gSpriteTemplate_83D9420, combinedX, combinedY - something, 130); gSprites[spriteId].data[0] = 20; gSprites[spriteId].data[1] = randomSomethingY; gSprites[spriteId].subpriority = GetBattlerSubpriority(gBattleAnimAttacker) - 1; diff --git a/src/battle/anim/wisp_fire.c b/src/battle/anim/wisp_fire.c index f089c799a..9c7f62c12 100644 --- a/src/battle/anim/wisp_fire.c +++ b/src/battle/anim/wisp_fire.c @@ -9,7 +9,7 @@ extern s16 gBattleAnimArgs[]; extern u8 gBattleAnimTarget; extern u8 gBattleAnimAttacker; -extern u8 gBankSpriteIds[]; +extern u8 gBattlerSpriteIds[]; void sub_80D5CC0(struct Sprite *sprite); static void sub_80D5E4C(u8 taskId); @@ -211,7 +211,7 @@ void sub_80D60B4(u8 taskId) } gTasks[taskId].data[0]++; - spriteId = gBankSpriteIds[gBattleAnimTarget]; + spriteId = gBattlerSpriteIds[gBattleAnimTarget]; if (!gTasks[taskId].data[4]) unk = gUnknown_083D9794[gTasks[taskId].data[0] % 10]; diff --git a/src/battle/anim/withdraw.c b/src/battle/anim/withdraw.c index f5babd361..6c26fb891 100644 --- a/src/battle/anim/withdraw.c +++ b/src/battle/anim/withdraw.c @@ -8,7 +8,7 @@ extern s16 gBattleAnimArgs[]; extern u8 gBattleAnimAttacker; extern u8 gBattleAnimTarget; -extern u8 gBankSpriteIds[]; +extern u8 gBattlerSpriteIds[]; static void sub_80CF514(u8 taskId); @@ -17,13 +17,13 @@ static void sub_80CF514(u8 taskId); void sub_80CF4D8(u8 taskId) { - PrepareBattlerSpriteForRotScale(gBankSpriteIds[gBattleAnimAttacker], 0); + PrepareBattlerSpriteForRotScale(gBattlerSpriteIds[gBattleAnimAttacker], 0); gTasks[taskId].func = sub_80CF514; } void sub_80CF514(u8 taskId) { - u8 a = gBankSpriteIds[gBattleAnimAttacker]; + u8 a = gBattlerSpriteIds[gBattleAnimAttacker]; s16 b; if (GetBattlerSide(gBattleAnimAttacker) == 0) { diff --git a/src/battle/battle_anim_80CA710.c b/src/battle/battle_anim_80CA710.c deleted file mode 100644 index 65ccd7c21..000000000 --- a/src/battle/battle_anim_80CA710.c +++ /dev/null @@ -1,18 +0,0 @@ - -// Includes -#include "global.h" - -// Static type declarations - -// Static RAM declarations - -IWRAM_DATA u32 filler_03000724; -IWRAM_DATA u16 gUnknown_03000728[4]; -IWRAM_DATA u16 gUnknown_03000730[6]; -IWRAM_DATA u32 filler_0300073c; - -// Static ROM declarations - -// .rodata - -// .text diff --git a/src/battle/battle_ai.c b/src/battle_ai_script_commands.c index e192251d0..0c8b8fb1b 100644 --- a/src/battle/battle_ai.c +++ b/src/battle_ai_script_commands.c @@ -1,5 +1,5 @@ #include "global.h" -#include "battle_ai.h" +#include "battle_ai_script_commands.h" #include "constants/abilities.h" #include "battle.h" #include "constants/battle_move_effects.h" @@ -21,8 +21,8 @@ extern u8 gActiveBattler; extern u16 gBattlerPartyIndexes[MAX_BATTLERS_COUNT]; extern u16 gCurrentMove; extern int gBattleMoveDamage; -extern u8 gBankAttacker; -extern u8 gBankTarget; +extern u8 gBattlerAttacker; +extern u8 gBattlerTarget; extern u8 gAbsentBattlerFlags; extern u8 gMoveResultFlags; extern u16 gDynamicBasePower; @@ -318,17 +318,17 @@ void BattleAI_SetupAIData(void) // clear AI stack. AI_STACK->size = 0; - gBankAttacker = gActiveBattler; + gBattlerAttacker = gActiveBattler; if (gBattleTypeFlags & BATTLE_TYPE_DOUBLE) { - gBankTarget = Random() & 2; // just pick somebody to target. + gBattlerTarget = Random() & 2; // just pick somebody to target. - if (gAbsentBattlerFlags & gBitTable[gBankTarget]) - gBankTarget ^= 2; + if (gAbsentBattlerFlags & gBitTable[gBattlerTarget]) + gBattlerTarget ^= 2; } else - gBankTarget = gActiveBattler ^ 1; + gBattlerTarget = gActiveBattler ^ 1; // special AI flag cases. if (gBattleTypeFlags & BATTLE_TYPE_SAFARI) @@ -407,13 +407,13 @@ void BattleAI_DoAIProcessing(void) break; case BATTLEAI_SETTING_UP: gAIScriptPtr = BattleAIs[AI_THINKING_STRUCT->aiLogicId]; // set the AI ptr. - if (gBattleMons[gBankAttacker].pp[AI_THINKING_STRUCT->movesetIndex] == 0) + if (gBattleMons[gBattlerAttacker].pp[AI_THINKING_STRUCT->movesetIndex] == 0) { AI_THINKING_STRUCT->moveConsidered = MOVE_NONE; // don't consider a move you have 0 PP for, idiot. } else { - AI_THINKING_STRUCT->moveConsidered = gBattleMons[gBankAttacker].moves[AI_THINKING_STRUCT->movesetIndex]; + AI_THINKING_STRUCT->moveConsidered = gBattleMons[gBattlerAttacker].moves[AI_THINKING_STRUCT->movesetIndex]; } AI_THINKING_STRUCT->aiState++; break; @@ -446,9 +446,9 @@ void sub_810745C(void) for (i = 0; i < 8; i++) { - if (AI_BATTLE_HISTORY->usedMoves[gBankTarget >> 1][i] == 0) + if (AI_BATTLE_HISTORY->usedMoves[gBattlerTarget >> 1][i] == 0) { - AI_BATTLE_HISTORY->usedMoves[gBankTarget >> 1][i] = gLastUsedMove[gBankTarget]; + AI_BATTLE_HISTORY->usedMoves[gBattlerTarget >> 1][i] = gLastUsedMove[gBattlerTarget]; return; } } @@ -521,9 +521,9 @@ static void BattleAICmd_if_hp_less_than(void) u16 index; if (gAIScriptPtr[1] == USER) - index = gBankAttacker; + index = gBattlerAttacker; else - index = gBankTarget; + index = gBattlerTarget; if ((u32)(100 * gBattleMons[index].hp / gBattleMons[index].maxHP) < gAIScriptPtr[2]) gAIScriptPtr = T1_READ_PTR(gAIScriptPtr + 3); @@ -536,9 +536,9 @@ static void BattleAICmd_if_hp_more_than(void) u16 index; if (gAIScriptPtr[1] == USER) - index = gBankAttacker; + index = gBattlerAttacker; else - index = gBankTarget; + index = gBattlerTarget; if ((u32)(100 * gBattleMons[index].hp / gBattleMons[index].maxHP) > gAIScriptPtr[2]) gAIScriptPtr = T1_READ_PTR(gAIScriptPtr + 3); @@ -551,9 +551,9 @@ static void BattleAICmd_if_hp_equal(void) u16 index; if (gAIScriptPtr[1] == USER) - index = gBankAttacker; + index = gBattlerAttacker; else - index = gBankTarget; + index = gBattlerTarget; if ((u32)(100 * gBattleMons[index].hp / gBattleMons[index].maxHP) == gAIScriptPtr[2]) gAIScriptPtr = T1_READ_PTR(gAIScriptPtr + 3); @@ -566,9 +566,9 @@ static void BattleAICmd_if_hp_not_equal(void) u16 index; if (gAIScriptPtr[1] == USER) - index = gBankAttacker; + index = gBattlerAttacker; else - index = gBankTarget; + index = gBattlerTarget; if ((u32)(100 * gBattleMons[index].hp / gBattleMons[index].maxHP) != gAIScriptPtr[2]) gAIScriptPtr = T1_READ_PTR(gAIScriptPtr + 3); @@ -582,9 +582,9 @@ static void BattleAICmd_if_status(void) u32 arg; if (gAIScriptPtr[1] == USER) - index = gBankAttacker; + index = gBattlerAttacker; else - index = gBankTarget; + index = gBattlerTarget; arg = T1_READ_32(gAIScriptPtr + 2); @@ -600,9 +600,9 @@ static void BattleAICmd_if_not_status(void) u32 arg; if (gAIScriptPtr[1] == USER) - index = gBankAttacker; + index = gBattlerAttacker; else - index = gBankTarget; + index = gBattlerTarget; arg = T1_READ_32(gAIScriptPtr + 2); @@ -618,9 +618,9 @@ static void BattleAICmd_if_status2(void) u32 arg; if (gAIScriptPtr[1] == USER) - index = gBankAttacker; + index = gBattlerAttacker; else - index = gBankTarget; + index = gBattlerTarget; arg = T1_READ_32(gAIScriptPtr + 2); @@ -636,9 +636,9 @@ static void BattleAICmd_if_not_status2(void) u32 arg; if (gAIScriptPtr[1] == USER) - index = gBankAttacker; + index = gBattlerAttacker; else - index = gBankTarget; + index = gBattlerTarget; arg = T1_READ_32(gAIScriptPtr + 2); @@ -654,9 +654,9 @@ static void BattleAICmd_if_status3(void) u32 arg; if (gAIScriptPtr[1] == USER) - index = gBankAttacker; + index = gBattlerAttacker; else - index = gBankTarget; + index = gBattlerTarget; arg = T1_READ_32(gAIScriptPtr + 2); @@ -672,9 +672,9 @@ static void BattleAICmd_if_not_status3(void) u32 arg; if (gAIScriptPtr[1] == USER) - index = gBankAttacker; + index = gBattlerAttacker; else - index = gBankTarget; + index = gBattlerTarget; arg = T1_READ_32(gAIScriptPtr + 2); @@ -690,9 +690,9 @@ static void BattleAICmd_if_status4(void) u32 arg1, arg2; if (gAIScriptPtr[1] == USER) - index = gBankAttacker; + index = gBattlerAttacker; else - index = gBankTarget; + index = gBattlerTarget; arg1 = GetBattlerPosition(index) & 1; arg2 = T1_READ_32(gAIScriptPtr + 2); @@ -709,9 +709,9 @@ static void BattleAICmd_if_not_status4(void) u32 arg1, arg2; if (gAIScriptPtr[1] == USER) - index = gBankAttacker; + index = gBattlerAttacker; else - index = gBankTarget; + index = gBattlerTarget; arg1 = GetBattlerPosition(index) & 1; arg2 = T1_READ_32(gAIScriptPtr + 2); @@ -884,8 +884,8 @@ static void BattleAICmd_if_user_can_damage(void) for (i = 0; i < MAX_MON_MOVES; i++) { - if (gBattleMons[gBankAttacker].moves[i] != 0 - && gBattleMoves[gBattleMons[gBankAttacker].moves[i]].power != 0) + if (gBattleMons[gBattlerAttacker].moves[i] != 0 + && gBattleMoves[gBattleMons[gBattlerAttacker].moves[i]].power != 0) break; } if (i == MAX_MON_MOVES) @@ -900,8 +900,8 @@ static void BattleAICmd_if_user_cant_damage(void) for (i = 0; i < MAX_MON_MOVES; i++) { - if (gBattleMons[gBankAttacker].moves[i] != 0 - && gBattleMoves[gBattleMons[gBankAttacker].moves[i]].power != 0) + if (gBattleMons[gBattlerAttacker].moves[i] != 0 + && gBattleMoves[gBattleMons[gBattlerAttacker].moves[i]].power != 0) break; } if (i != MAX_MON_MOVES) @@ -921,16 +921,16 @@ static void BattleAICmd_get_type(void) switch (gAIScriptPtr[1]) { case 1: // player primary type - AI_THINKING_STRUCT->funcResult = gBattleMons[gBankAttacker].type1; + AI_THINKING_STRUCT->funcResult = gBattleMons[gBattlerAttacker].type1; break; case 0: // enemy primary type - AI_THINKING_STRUCT->funcResult = gBattleMons[gBankTarget].type1; + AI_THINKING_STRUCT->funcResult = gBattleMons[gBattlerTarget].type1; break; case 3: // player secondary type - AI_THINKING_STRUCT->funcResult = gBattleMons[gBankAttacker].type2; + AI_THINKING_STRUCT->funcResult = gBattleMons[gBattlerAttacker].type2; break; case 2: // enemy secondary type - AI_THINKING_STRUCT->funcResult = gBattleMons[gBankTarget].type2; + AI_THINKING_STRUCT->funcResult = gBattleMons[gBattlerTarget].type2; break; case 4: // type of move being pointed to AI_THINKING_STRUCT->funcResult = gBattleMoves[AI_THINKING_STRUCT->moveConsidered].type; @@ -968,18 +968,18 @@ static void BattleAICmd_is_most_powerful_move(void) { for (j = 0; sDiscouragedPowerfulMoveEffects[j] != 0xFFFF; j++) { // _08108276 - if (gBattleMoves[gBattleMons[gBankAttacker].moves[i]].effect == sDiscouragedPowerfulMoveEffects[j]) + if (gBattleMoves[gBattleMons[gBattlerAttacker].moves[i]].effect == sDiscouragedPowerfulMoveEffects[j]) break; } // _081082BA - if (gBattleMons[gBankAttacker].moves[i] + if (gBattleMons[gBattlerAttacker].moves[i] && sDiscouragedPowerfulMoveEffects[j] == 0xFFFF - && gBattleMoves[gBattleMons[gBankAttacker].moves[i]].power > 1) + && gBattleMoves[gBattleMons[gBattlerAttacker].moves[i]].power > 1) { - gCurrentMove = gBattleMons[gBankAttacker].moves[i]; - AI_CalcDmg(gBankAttacker, gBankTarget); - TypeCalc(gCurrentMove, gBankAttacker, gBankTarget); + gCurrentMove = gBattleMons[gBattlerAttacker].moves[i]; + AI_CalcDmg(gBattlerAttacker, gBattlerTarget); + TypeCalc(gCurrentMove, gBattlerAttacker, gBattlerTarget); damages[i] = (gBattleMoveDamage * AI_THINKING_STRUCT->simulatedRNG[i]) / 100; if (damages[i] == 0) // moves always do at least 1 damage. @@ -1085,7 +1085,7 @@ _08108276:\n\ movs r3, 0\n\ ldr r5, _08108348 @ =gBattleMons\n\ lsls r4, r6, 1\n\ - ldr r7, _0810834C @ =gBankAttacker\n\ + ldr r7, _0810834C @ =gBattlerAttacker\n\ lsls r1, r6, 2\n\ mov r8, r1\n\ adds r2, r6, 0x1\n\ @@ -1146,7 +1146,7 @@ _081082BA:\n\ ldr r5, _08108350 @ =gCurrentMove\n\ strh r2, [r5]\n\ ldrb r0, [r7]\n\ - ldr r4, _08108354 @ =gBankTarget\n\ + ldr r4, _08108354 @ =gBattlerTarget\n\ ldrb r1, [r4]\n\ bl AI_CalcDmg\n\ ldrh r0, [r5]\n\ @@ -1180,9 +1180,9 @@ _0810833C: .4byte 0xfffff81c\n\ _08108340: .4byte gMoveResultFlags\n\ _08108344: .4byte gCritMultiplier\n\ _08108348: .4byte gBattleMons\n\ -_0810834C: .4byte gBankAttacker\n\ +_0810834C: .4byte gBattlerAttacker\n\ _08108350: .4byte gCurrentMove\n\ -_08108354: .4byte gBankTarget\n\ +_08108354: .4byte gBattlerTarget\n\ _08108358: .4byte gBattleMoveDamage\n\ _0810835C:\n\ mov r1, sp\n\ @@ -1256,9 +1256,9 @@ _081083D0: .4byte gAIScriptPtr\n\ static void BattleAICmd_get_move(void) { if (gAIScriptPtr[1] == USER) - AI_THINKING_STRUCT->funcResult = gLastUsedMove[gBankAttacker]; + AI_THINKING_STRUCT->funcResult = gLastUsedMove[gBattlerAttacker]; else - AI_THINKING_STRUCT->funcResult = gLastUsedMove[gBankTarget]; + AI_THINKING_STRUCT->funcResult = gLastUsedMove[gBattlerTarget]; gAIScriptPtr += 2; } @@ -1281,7 +1281,7 @@ static void BattleAICmd_if_arg_not_equal(void) static void BattleAICmd_if_would_go_first(void) { - if (GetWhoStrikesFirst(gBankAttacker, gBankTarget, TRUE) == gAIScriptPtr[1]) + if (GetWhoStrikesFirst(gBattlerAttacker, gBattlerTarget, TRUE) == gAIScriptPtr[1]) gAIScriptPtr = T1_READ_PTR(gAIScriptPtr + 2); else gAIScriptPtr += 6; @@ -1289,7 +1289,7 @@ static void BattleAICmd_if_would_go_first(void) static void BattleAICmd_if_would_not_go_first(void) { - if (GetWhoStrikesFirst(gBankAttacker, gBankTarget, TRUE) != gAIScriptPtr[1]) + if (GetWhoStrikesFirst(gBattlerAttacker, gBattlerTarget, TRUE) != gAIScriptPtr[1]) gAIScriptPtr = T1_READ_PTR(gAIScriptPtr + 2); else gAIScriptPtr += 6; @@ -1313,9 +1313,9 @@ static void BattleAICmd_count_alive_pokemon(void) AI_THINKING_STRUCT->funcResult = 0; if (gAIScriptPtr[1] == USER) - index = gBankAttacker; + index = gBattlerAttacker; else - index = gBankTarget; + index = gBattlerTarget; if (GetBattlerSide(index) == 0) party = gPlayerParty; @@ -1366,9 +1366,9 @@ static void BattleAICmd_get_ability(void) u8 index; if (gAIScriptPtr[1] == USER) - index = gBankAttacker; + index = gBattlerAttacker; else - index = gBankTarget; + index = gBattlerTarget; if (GetBattlerSide(index) == TARGET) { @@ -1437,11 +1437,11 @@ static void BattleAICmd_get_highest_possible_damage(void) for (i = 0; i < MAX_MON_MOVES; i++) { gBattleMoveDamage = 40; - gCurrentMove = gBattleMons[gBankAttacker].moves[i]; + gCurrentMove = gBattleMons[gBattlerAttacker].moves[i]; if (gCurrentMove) { - TypeCalc(gCurrentMove, gBankAttacker, gBankTarget); + TypeCalc(gCurrentMove, gBattlerAttacker, gBattlerTarget); // reduce by 1/3. if (gBattleMoveDamage == 120) @@ -1476,7 +1476,7 @@ static void BattleAICmd_if_damage_bonus(void) gBattleMoveDamage = 40; gCurrentMove = AI_THINKING_STRUCT->moveConsidered; - TypeCalc(gCurrentMove, gBankAttacker, gBankTarget); + TypeCalc(gCurrentMove, gBattlerAttacker, gBattlerTarget); if (gBattleMoveDamage == 120) gBattleMoveDamage = 80; @@ -1611,9 +1611,9 @@ static void BattleAICmd_if_stat_level_less_than(void) u32 party; if (gAIScriptPtr[1] == USER) - party = gBankAttacker; + party = gBattlerAttacker; else - party = gBankTarget; + party = gBattlerTarget; if (gBattleMons[party].statStages[gAIScriptPtr[2]] < gAIScriptPtr[3]) gAIScriptPtr = T1_READ_PTR(gAIScriptPtr + 4); @@ -1626,9 +1626,9 @@ static void BattleAICmd_if_stat_level_more_than(void) u32 party; if (gAIScriptPtr[1] == USER) - party = gBankAttacker; + party = gBattlerAttacker; else - party = gBankTarget; + party = gBattlerTarget; if (gBattleMons[party].statStages[gAIScriptPtr[2]] > gAIScriptPtr[3]) gAIScriptPtr = T1_READ_PTR(gAIScriptPtr + 4); @@ -1641,9 +1641,9 @@ static void BattleAICmd_if_stat_level_equal(void) u32 party; if (gAIScriptPtr[1] == USER) - party = gBankAttacker; + party = gBattlerAttacker; else - party = gBankTarget; + party = gBattlerTarget; if (gBattleMons[party].statStages[gAIScriptPtr[2]] == gAIScriptPtr[3]) gAIScriptPtr = T1_READ_PTR(gAIScriptPtr + 4); @@ -1656,9 +1656,9 @@ static void BattleAICmd_if_stat_level_not_equal(void) u32 party; if (gAIScriptPtr[1] == USER) - party = gBankAttacker; + party = gBattlerAttacker; else - party = gBankTarget; + party = gBattlerTarget; if (gBattleMons[party].statStages[gAIScriptPtr[2]] != gAIScriptPtr[3]) gAIScriptPtr = T1_READ_PTR(gAIScriptPtr + 4); @@ -1680,8 +1680,8 @@ static void BattleAICmd_if_can_faint(void) gMoveResultFlags = 0; gCritMultiplier = 1; gCurrentMove = AI_THINKING_STRUCT->moveConsidered; - AI_CalcDmg(gBankAttacker, gBankTarget); - TypeCalc(gCurrentMove, gBankAttacker, gBankTarget); + AI_CalcDmg(gBattlerAttacker, gBattlerTarget); + TypeCalc(gCurrentMove, gBattlerAttacker, gBattlerTarget); gBattleMoveDamage = gBattleMoveDamage * AI_THINKING_STRUCT->simulatedRNG[AI_THINKING_STRUCT->movesetIndex] / 100; @@ -1689,7 +1689,7 @@ static void BattleAICmd_if_can_faint(void) if (gBattleMoveDamage == 0) gBattleMoveDamage = 1; - if (gBattleMons[gBankTarget].hp <= gBattleMoveDamage) + if (gBattleMons[gBattlerTarget].hp <= gBattleMoveDamage) gAIScriptPtr = T1_READ_PTR(gAIScriptPtr + 1); else gAIScriptPtr += 5; @@ -1709,14 +1709,14 @@ static void BattleAICmd_if_cant_faint(void) gMoveResultFlags = 0; gCritMultiplier = 1; gCurrentMove = AI_THINKING_STRUCT->moveConsidered; - AI_CalcDmg(gBankAttacker, gBankTarget); - TypeCalc(gCurrentMove, gBankAttacker, gBankTarget); + AI_CalcDmg(gBattlerAttacker, gBattlerTarget); + TypeCalc(gCurrentMove, gBattlerAttacker, gBattlerTarget); gBattleMoveDamage = gBattleMoveDamage * AI_THINKING_STRUCT->simulatedRNG[AI_THINKING_STRUCT->movesetIndex] / 100; // this macro is missing the damage 0 = 1 assumption. - if (gBattleMons[gBankTarget].hp > gBattleMoveDamage) + if (gBattleMons[gBattlerTarget].hp > gBattleMoveDamage) gAIScriptPtr = T1_READ_PTR(gAIScriptPtr + 1); else gAIScriptPtr += 5; @@ -1733,7 +1733,7 @@ static void BattleAICmd_if_has_move(void) case 3: for (i = 0; i < MAX_MON_MOVES; i++) { - if (gBattleMons[gBankAttacker].moves[i] == *temp_ptr) + if (gBattleMons[gBattlerAttacker].moves[i] == *temp_ptr) break; } if (i == MAX_MON_MOVES) @@ -1745,7 +1745,7 @@ static void BattleAICmd_if_has_move(void) case 2: for (i = 0; i < 8; i++) { - if (AI_BATTLE_HISTORY->usedMoves[gBankTarget >> 1][i] == *temp_ptr) + if (AI_BATTLE_HISTORY->usedMoves[gBattlerTarget >> 1][i] == *temp_ptr) break; } if (i == 8) @@ -1767,7 +1767,7 @@ static void BattleAICmd_if_dont_have_move(void) case 3: for (i = 0; i < MAX_MON_MOVES; i++) { - if (gBattleMons[gBankAttacker].moves[i] == *temp_ptr) + if (gBattleMons[gBattlerAttacker].moves[i] == *temp_ptr) break; } if (i != MAX_MON_MOVES) @@ -1779,7 +1779,7 @@ static void BattleAICmd_if_dont_have_move(void) case 2: for (i = 0; i < 8; i++) { - if (AI_BATTLE_HISTORY->usedMoves[gBankTarget >> 1][i] == *temp_ptr) + if (AI_BATTLE_HISTORY->usedMoves[gBattlerTarget >> 1][i] == *temp_ptr) break; } if (i != 8) @@ -1800,7 +1800,7 @@ static void BattleAICmd_if_move_effect(void) case 3: for (i = 0; i < MAX_MON_MOVES; i++) { - if (gBattleMons[gBankAttacker].moves[i] != 0 && gBattleMoves[gBattleMons[gBankAttacker].moves[i]].effect == gAIScriptPtr[2]) + if (gBattleMons[gBattlerAttacker].moves[i] != 0 && gBattleMoves[gBattleMons[gBattlerAttacker].moves[i]].effect == gAIScriptPtr[2]) break; } if (i != MAX_MON_MOVES) @@ -1812,7 +1812,7 @@ static void BattleAICmd_if_move_effect(void) case 2: for (i = 0; i < 8; i++) { - if (gBattleMons[gBankAttacker].moves[i] != 0 && gBattleMoves[AI_BATTLE_HISTORY->usedMoves[gBankTarget >> 1][i]].effect == gAIScriptPtr[2]) + if (gBattleMons[gBattlerAttacker].moves[i] != 0 && gBattleMoves[AI_BATTLE_HISTORY->usedMoves[gBattlerTarget >> 1][i]].effect == gAIScriptPtr[2]) break; } gAIScriptPtr = T1_READ_PTR(gAIScriptPtr + 3); @@ -1829,7 +1829,7 @@ static void BattleAICmd_if_not_move_effect(void) case 3: for (i = 0; i < MAX_MON_MOVES; i++) { - if (gBattleMons[gBankAttacker].moves[i] != 0 && gBattleMoves[gBattleMons[gBankAttacker].moves[i]].effect == gAIScriptPtr[2]) + if (gBattleMons[gBattlerAttacker].moves[i] != 0 && gBattleMoves[gBattleMons[gBattlerAttacker].moves[i]].effect == gAIScriptPtr[2]) break; } if (i != MAX_MON_MOVES) @@ -1841,7 +1841,7 @@ static void BattleAICmd_if_not_move_effect(void) case 2: for (i = 0; i < 8; i++) { - if (AI_BATTLE_HISTORY->usedMoves[gBankTarget >> 1][i] != 0 && gBattleMoves[AI_BATTLE_HISTORY->usedMoves[gBankTarget >> 1][i]].effect == gAIScriptPtr[2]) + if (AI_BATTLE_HISTORY->usedMoves[gBattlerTarget >> 1][i] != 0 && gBattleMoves[AI_BATTLE_HISTORY->usedMoves[gBattlerTarget >> 1][i]].effect == gAIScriptPtr[2]) break; } gAIScriptPtr += 7; @@ -1853,9 +1853,9 @@ static void BattleAICmd_if_last_move_did_damage(void) u8 index; if (gAIScriptPtr[1] == USER) - index = gBankAttacker; + index = gBattlerAttacker; else - index = gBankTarget; + index = gBattlerTarget; if (gAIScriptPtr[2] == 0) { @@ -1932,9 +1932,9 @@ static void BattleAICmd_get_hold_effect(void) u16 side; if (gAIScriptPtr[1] == USER) - index = gBankAttacker; + index = gBattlerAttacker; else - index = gBankTarget; + index = gBattlerTarget; if (GetBattlerSide(index) == 0) { @@ -1952,9 +1952,9 @@ static void BattleAICmd_get_gender(void) u8 index; if (gAIScriptPtr[1] == USER) - index = gBankAttacker; + index = gBattlerAttacker; else - index = gBankTarget; + index = gBattlerTarget; AI_THINKING_STRUCT->funcResult = GetGenderFromSpeciesAndPersonality(gBattleMons[index].species, gBattleMons[index].personality); @@ -1966,9 +1966,9 @@ static void BattleAICmd_is_first_turn(void) u8 index; if (gAIScriptPtr[1] == USER) - index = gBankAttacker; + index = gBattlerAttacker; else - index = gBankTarget; + index = gBattlerTarget; AI_THINKING_STRUCT->funcResult = gDisableStructs[index].isFirstTurn; @@ -1980,9 +1980,9 @@ static void BattleAICmd_get_stockpile_count(void) u8 index; if (gAIScriptPtr[1] == USER) - index = gBankAttacker; + index = gBattlerAttacker; else - index = gBankTarget; + index = gBattlerTarget; AI_THINKING_STRUCT->funcResult = gDisableStructs[index].stockpileCounter; @@ -2001,9 +2001,9 @@ static void BattleAICmd_get_used_item(void) u8 index; if (gAIScriptPtr[1] == USER) - index = gBankAttacker; + index = gBattlerAttacker; else - index = gBankTarget; + index = gBattlerTarget; AI_THINKING_STRUCT->funcResult = AI_ARRAY_160CC(index); @@ -2036,9 +2036,9 @@ static void BattleAICmd_get_protect_count(void) u8 index; if (gAIScriptPtr[1] == USER) - index = gBankAttacker; + index = gBattlerAttacker; else - index = gBankTarget; + index = gBattlerTarget; AI_THINKING_STRUCT->funcResult = gDisableStructs[index].protectUses; @@ -2091,7 +2091,7 @@ static void BattleAICmd_if_level_compare(void) switch (gAIScriptPtr[1]) { case 0: // greater than - if (gBattleMons[gBankAttacker].level > gBattleMons[gBankTarget].level) + if (gBattleMons[gBattlerAttacker].level > gBattleMons[gBattlerTarget].level) { gAIScriptPtr = T1_READ_PTR(gAIScriptPtr + 2); return; @@ -2099,7 +2099,7 @@ static void BattleAICmd_if_level_compare(void) gAIScriptPtr += 6; return; case 1: // less than - if (gBattleMons[gBankAttacker].level < gBattleMons[gBankTarget].level) + if (gBattleMons[gBattlerAttacker].level < gBattleMons[gBattlerTarget].level) { gAIScriptPtr = T1_READ_PTR(gAIScriptPtr + 2); return; @@ -2107,7 +2107,7 @@ static void BattleAICmd_if_level_compare(void) gAIScriptPtr += 6; return; case 2: // equal - if (gBattleMons[gBankAttacker].level == gBattleMons[gBankTarget].level) + if (gBattleMons[gBattlerAttacker].level == gBattleMons[gBattlerTarget].level) { gAIScriptPtr = T1_READ_PTR(gAIScriptPtr + 2); return; @@ -2119,7 +2119,7 @@ static void BattleAICmd_if_level_compare(void) static void BattleAICmd_if_taunted(void) { - if (gDisableStructs[gBankTarget].tauntTimer1 != 0) + if (gDisableStructs[gBattlerTarget].tauntTimer1 != 0) gAIScriptPtr = T1_READ_PTR(gAIScriptPtr + 1); else gAIScriptPtr += 5; @@ -2127,7 +2127,7 @@ static void BattleAICmd_if_taunted(void) static void BattleAICmd_if_not_taunted(void) { - if (gDisableStructs[gBankTarget].tauntTimer1 == 0) + if (gDisableStructs[gBattlerTarget].tauntTimer1 == 0) gAIScriptPtr = T1_READ_PTR(gAIScriptPtr + 1); else gAIScriptPtr += 5; diff --git a/src/battle/battle_ai_switch_items.c b/src/battle_ai_switch_items.c index 4dd7614bf..9da56a220 100644 --- a/src/battle/battle_ai_switch_items.c +++ b/src/battle_ai_switch_items.c @@ -16,7 +16,6 @@ extern u8 gUnknown_02023A14_50; -extern u8 gLastHitBy[]; extern u8 gActiveBattler; extern u16 gBattleTypeFlags; extern u8 gAbsentBattlerFlags; @@ -41,7 +40,7 @@ static bool8 ShouldSwitchIfPerishSong(void) && gDisableStructs[gActiveBattler].perishSongTimer1 == 0) { ewram160C8arr(GetBattlerPosition(gActiveBattler)) = 6; // gBattleStruct->AI_monToSwitchIntoId[GetBattlerPosition(gActiveBattler)] = 6; - Emitcmd33(1, 2, 0); + BtlController_EmitTwoReturnValues(1, 2, 0); return TRUE; } @@ -98,7 +97,7 @@ static bool8 ShouldSwitchIfWonderGuard(void) { // we found a mon ewram160C8arr(GetBattlerPosition(gActiveBattler)) = i; // gBattleStruct->AI_monToSwitchIntoId[GetBattlerPosition(gActiveBattler)] = i; - Emitcmd33(1, B_ACTION_SWITCH, 0); + BtlController_EmitTwoReturnValues(1, B_ACTION_SWITCH, 0); return TRUE; } } @@ -138,7 +137,7 @@ _08036070:\n\ movs r0, 0x1\n\ movs r1, 0x2\n\ movs r2, 0\n\ - bl Emitcmd33\n\ + bl BtlController_EmitTwoReturnValues\n\ movs r0, 0x1\n\ b _080361CA\n\ .align 2, 0\n\ @@ -377,7 +376,7 @@ static bool8 FindMonThatAbsorbsOpponentsMove(void) { // we found a mon ewram160C8arr(GetBattlerPosition(gActiveBattler)) = i; - Emitcmd33(1, B_ACTION_SWITCH, 0); + BtlController_EmitTwoReturnValues(1, B_ACTION_SWITCH, 0); return TRUE; } } @@ -397,13 +396,13 @@ static bool8 ShouldSwitchIfNaturalCure(void) if ((gLastLandedMoves[gActiveBattler] == 0 || gLastLandedMoves[gActiveBattler] == 0xFFFF) && Random() & 1) { ewram160C8arr(GetBattlerPosition(gActiveBattler)) = 6; - Emitcmd33(1, B_ACTION_SWITCH, 0); + BtlController_EmitTwoReturnValues(1, B_ACTION_SWITCH, 0); return TRUE; } else if (gBattleMoves[gLastLandedMoves[gActiveBattler]].power == 0 && Random() & 1) { ewram160C8arr(GetBattlerPosition(gActiveBattler)) = 6; - Emitcmd33(1, B_ACTION_SWITCH, 0); + BtlController_EmitTwoReturnValues(1, B_ACTION_SWITCH, 0); return TRUE; } @@ -414,7 +413,7 @@ static bool8 ShouldSwitchIfNaturalCure(void) if (Random() & 1) { ewram160C8arr(GetBattlerPosition(gActiveBattler)) = 6; - Emitcmd33(1, B_ACTION_SWITCH, 0); + BtlController_EmitTwoReturnValues(1, B_ACTION_SWITCH, 0); return TRUE; } @@ -558,7 +557,7 @@ static bool8 FindMonWithFlagsAndSuperEffective(u8 flags, u8 moduloPercent) if (moveFlags & MOVE_RESULT_SUPER_EFFECTIVE && Random() % moduloPercent == 0) { ewram160C8arr(GetBattlerPosition(gActiveBattler)) = i; - Emitcmd33(1, B_ACTION_SWITCH, 0); + BtlController_EmitTwoReturnValues(1, B_ACTION_SWITCH, 0); return TRUE; } } @@ -705,7 +704,7 @@ void AI_TrySwitchOrUseItem(void) } } - Emitcmd33(1, B_ACTION_USE_MOVE, (gActiveBattler ^ BIT_SIDE) << 8); + BtlController_EmitTwoReturnValues(1, B_ACTION_USE_MOVE, (gActiveBattler ^ BIT_SIDE) << 8); } static void ModulateByTypeEffectiveness(u8 attackType, u8 defenseType1, u8 defenseType2, u8 *var) @@ -997,7 +996,7 @@ static bool8 ShouldUseItem(void) if (shouldUse) { - Emitcmd33(1, B_ACTION_USE_ITEM, 0); + BtlController_EmitTwoReturnValues(1, B_ACTION_USE_ITEM, 0); ewram160D4(gActiveBattler) = item; AI_BATTLE_HISTORY->trainerItems[i] = 0; return shouldUse; diff --git a/src/battle/battle_anim.c b/src/battle_anim.c index 287d80ab1..3be28dd77 100644 --- a/src/battle/battle_anim.c +++ b/src/battle_anim.c @@ -1283,9 +1283,9 @@ const struct BattleAnimBackground gBattleAnimBackgroundTable[] = }; extern u16 gBattlerPartyIndexes[4]; -extern u8 gBankSpriteIds[]; -extern u8 gBankAttacker; -extern u8 gBankTarget; +extern u8 gBattlerSpriteIds[]; +extern u8 gBattlerAttacker; +extern u8 gBattlerTarget; // sBattleAnimScriptPtr is a pointer to the next set of battle script commands. EWRAM_DATA const u8 *sBattleAnimScriptPtr = NULL; @@ -1313,9 +1313,9 @@ u16 gSoundAnimFramesToWait; s16 gBattleAnimArgs[ANIM_ARGS_COUNT]; u16 gAnimSpriteIndexArray[ANIM_SPRITE_INDEX_COUNT]; -extern struct MusicPlayerInfo gMPlay_BGM; -extern struct MusicPlayerInfo gMPlay_SE1; -extern struct MusicPlayerInfo gMPlay_SE2; +extern struct MusicPlayerInfo gMPlayInfo_BGM; +extern struct MusicPlayerInfo gMPlayInfo_SE1; +extern struct MusicPlayerInfo gMPlayInfo_SE2; extern const u16 gSingingMoves[]; extern const u8 *const gBattleAnims_Moves[]; @@ -1464,8 +1464,8 @@ void ClearBattleAnimationVars(void) void DoMoveAnim(u16 move) { - gBattleAnimAttacker = gBankAttacker; - gBattleAnimTarget = gBankTarget; + gBattleAnimAttacker = gBattlerAttacker; + gBattleAnimTarget = gBattlerTarget; LaunchBattleAnimation(gBattleAnims_Moves, move, TRUE); } @@ -1516,7 +1516,7 @@ void LaunchBattleAnimation(const u8 *const moveAnims[], u16 move, u8 isMoveAnim) if (move == gSingingMoves[i]) { // Lower the volume for the short song that gets played. - m4aMPlayVolumeControl(&gMPlay_BGM, 0xFFFF, 128); + m4aMPlayVolumeControl(&gMPlayInfo_BGM, 0xFFFF, 128); break; } } @@ -1772,8 +1772,8 @@ static void ScriptCmd_end(void) } else { - m4aMPlayStop(&gMPlay_SE1); - m4aMPlayStop(&gMPlay_SE2); + m4aMPlayStop(&gMPlayInfo_SE1); + m4aMPlayStop(&gMPlayInfo_SE2); } } @@ -1792,7 +1792,7 @@ static void ScriptCmd_end(void) if (!continuousAnim) // may have been used for debug? { - m4aMPlayVolumeControl(&gMPlay_BGM, 0xFFFF, 256); + m4aMPlayVolumeControl(&gMPlayInfo_BGM, 0xFFFF, 256); if (IsContest() == 0) { UpdateBattlerSpritePriorities(); @@ -1844,7 +1844,7 @@ static void ScriptCmd_monbg(void) toBG_2 = 1; MoveBattlerSpriteToBG(bank, toBG_2); - spriteId = gBankSpriteIds[bank]; + spriteId = gBattlerSpriteIds[bank]; taskId = CreateTask(task_pA_ma0A_obj_to_bg_pal, 10); gTasks[taskId].data[0] = spriteId; gTasks[taskId].data[1] = gSprites[spriteId].pos1.x + gSprites[spriteId].pos2.x; @@ -1875,7 +1875,7 @@ static void ScriptCmd_monbg(void) else toBG_2 = 1; MoveBattlerSpriteToBG(bank, toBG_2); - spriteId = gBankSpriteIds[bank]; + spriteId = gBattlerSpriteIds[bank]; taskId = CreateTask(task_pA_ma0A_obj_to_bg_pal, 10); gTasks[taskId].data[0] = spriteId; gTasks[taskId].data[1] = gSprites[spriteId].pos1.x + gSprites[spriteId].pos2.x; @@ -1912,7 +1912,7 @@ bool8 IsAnimBankSpriteVisible(u8 bank) return FALSE; if (IsContest()) return TRUE; // this line wont ever be reached. - if (!(EWRAM_17800[bank].unk0 & 1) || !gSprites[gBankSpriteIds[bank]].invisible) + if (!(EWRAM_17800[bank].unk0 & 1) || !gSprites[gBattlerSpriteIds[bank]].invisible) return TRUE; return FALSE; @@ -1938,12 +1938,12 @@ void MoveBattlerSpriteToBG(u8 bank, u8 toBG_2) REG_BG1CNT_BITFIELD.screenSize = 1; REG_BG1CNT_BITFIELD.areaOverflowMode = 0; - spriteId = gBankSpriteIds[bank]; + spriteId = gBattlerSpriteIds[bank]; gBattle_BG1_X = -(gSprites[spriteId].pos1.x + gSprites[spriteId].pos2.x) + 32; if (IsContest() != 0 && IsSpeciesNotUnown(EWRAM_19348[0]) != 0) gBattle_BG1_X--; gBattle_BG1_Y = -(gSprites[spriteId].pos1.y + gSprites[spriteId].pos2.y) + 32; - gSprites[gBankSpriteIds[bank]].invisible = TRUE; + gSprites[gBattlerSpriteIds[bank]].invisible = TRUE; REG_BG1HOFS = gBattle_BG1_X; REG_BG1VOFS = gBattle_BG1_Y; @@ -1972,10 +1972,10 @@ void MoveBattlerSpriteToBG(u8 bank, u8 toBG_2) REG_BG2CNT_BITFIELD.screenSize = 1; REG_BG2CNT_BITFIELD.areaOverflowMode = 0; - spriteId = gBankSpriteIds[bank]; + spriteId = gBattlerSpriteIds[bank]; gBattle_BG2_X = -(gSprites[spriteId].pos1.x + gSprites[spriteId].pos2.x) + 32; gBattle_BG2_Y = -(gSprites[spriteId].pos1.y + gSprites[spriteId].pos2.y) + 32; - gSprites[gBankSpriteIds[bank]].invisible = TRUE; + gSprites[gBattlerSpriteIds[bank]].invisible = TRUE; REG_BG2HOFS = gBattle_BG2_X; REG_BG2VOFS = gBattle_BG2_Y; @@ -2106,9 +2106,9 @@ static void ScriptCmd_clearmonbg(void) bank = gBattleAnimTarget; if (gMonAnimTaskIdArray[0] != 0xFF) - gSprites[gBankSpriteIds[bank]].invisible = FALSE; + gSprites[gBattlerSpriteIds[bank]].invisible = FALSE; if (animBankId > 1 && gMonAnimTaskIdArray[1] != 0xFF) - gSprites[gBankSpriteIds[bank ^ 2]].invisible = FALSE; + gSprites[gBattlerSpriteIds[bank ^ 2]].invisible = FALSE; else animBankId = 0; @@ -2177,7 +2177,7 @@ static void ScriptCmd_monbg_22(void) else r1 = 1; MoveBattlerSpriteToBG(bank, r1); - gSprites[gBankSpriteIds[bank]].invisible = FALSE; + gSprites[gBattlerSpriteIds[bank]].invisible = FALSE; } bank ^= 2; @@ -2190,7 +2190,7 @@ static void ScriptCmd_monbg_22(void) else r1 = 1; MoveBattlerSpriteToBG(bank, r1); - gSprites[gBankSpriteIds[bank]].invisible = FALSE; + gSprites[gBattlerSpriteIds[bank]].invisible = FALSE; } sBattleAnimScriptPtr++; } @@ -2215,9 +2215,9 @@ static void ScriptCmd_clearmonbg_23(void) bank = gBattleAnimTarget; if (IsAnimBankSpriteVisible(bank)) - gSprites[gBankSpriteIds[bank]].invisible = FALSE; + gSprites[gBattlerSpriteIds[bank]].invisible = FALSE; if (animBankId > 1 && IsAnimBankSpriteVisible(bank ^ 2)) - gSprites[gBankSpriteIds[bank ^ 2]].invisible = FALSE; + gSprites[gBattlerSpriteIds[bank ^ 2]].invisible = FALSE; else animBankId = 0; @@ -3037,8 +3037,8 @@ static void ScriptCmd_waitsound(void) { if (++gSoundAnimFramesToWait > 90) { - m4aMPlayStop(&gMPlay_SE1); - m4aMPlayStop(&gMPlay_SE2); + m4aMPlayStop(&gMPlayInfo_SE1); + m4aMPlayStop(&gMPlayInfo_SE2); gSoundAnimFramesToWait = 0; } else @@ -3230,7 +3230,7 @@ static void ScriptCmd_doublebattle_2E(void) // Cease playing sounds. static void ScriptCmd_stopsound(void) { - m4aMPlayStop(&gMPlay_SE1); - m4aMPlayStop(&gMPlay_SE2); + m4aMPlayStop(&gMPlayInfo_SE1); + m4aMPlayStop(&gMPlayInfo_SE2); sBattleAnimScriptPtr++; } diff --git a/src/battle/battle_anim_812C144.c b/src/battle_anim_effects_3.c index 90e7d8e2c..2d187f8d3 100644 --- a/src/battle/battle_anim_812C144.c +++ b/src/battle_anim_effects_3.c @@ -41,7 +41,7 @@ extern const u8 gUnknown_08D2E014[]; extern const u8 gUnknown_08D2E170[]; extern const u16 gUnknown_08D2E150[]; extern u8 gBattleMonForms[]; -extern u8 gBankSpriteIds[]; +extern u8 gBattlerSpriteIds[]; extern u16 gBattlerPartyIndexes[]; extern u8 sub_8046234(s16 x, s16 y, u8 a3); @@ -2327,11 +2327,11 @@ void sub_812D7E8(u8 taskId) ptr = EWRAM_19348; if (IsSpeciesNotUnown(ptr[1])) - gSprites[gBankSpriteIds[gBattleAnimAttacker]].affineAnims = gSpriteAffineAnimTable_81E7C18; + gSprites[gBattlerSpriteIds[gBattleAnimAttacker]].affineAnims = gSpriteAffineAnimTable_81E7C18; else - gSprites[gBankSpriteIds[gBattleAnimAttacker]].affineAnims = gSpriteAffineAnimTable_81E7BEC; + gSprites[gBattlerSpriteIds[gBattleAnimAttacker]].affineAnims = gSpriteAffineAnimTable_81E7BEC; - StartSpriteAffineAnim(&gSprites[gBankSpriteIds[gBattleAnimAttacker]], 0); + StartSpriteAffineAnim(&gSprites[gBattlerSpriteIds[gBattleAnimAttacker]], 0); } gTasks[taskId].data[0]++; @@ -2371,7 +2371,7 @@ void sub_812D7E8(u8 taskId) void c3_80DFBE4(u8 taskId) { - gBattleAnimArgs[7] = gSprites[gBankSpriteIds[gBattleAnimAttacker]].invisible; + gBattleAnimArgs[7] = gSprites[gBattlerSpriteIds[gBattleAnimAttacker]].invisible; DestroyAnimVisualTask(taskId); } @@ -3673,7 +3673,7 @@ static void sub_812FAF8(u8 taskId) void sub_812FC68(u8 taskId) { - gTasks[taskId].data[15] = gBankSpriteIds[gBattleAnimAttacker]; + gTasks[taskId].data[15] = gBattlerSpriteIds[gBattleAnimAttacker]; gTasks[taskId].data[14] = gBattleAnimArgs[0]; gTasks[taskId].data[0] = gBattleAnimArgs[0]; gTasks[taskId].data[13] = gBattleAnimArgs[6]; @@ -4675,8 +4675,8 @@ void sub_81312E4(u8 taskId) refresh_graphics_maybe(gBattleAnimAttacker, 0, spriteId); if (IsContest()) { - gSprites[gBankSpriteIds[gBattleAnimAttacker]].affineAnims = gSpriteAffineAnimTable_81E7C18; - StartSpriteAffineAnim(&gSprites[gBankSpriteIds[gBattleAnimAttacker]], 0); + gSprites[gBattlerSpriteIds[gBattleAnimAttacker]].affineAnims = gSpriteAffineAnimTable_81E7C18; + StartSpriteAffineAnim(&gSprites[gBattlerSpriteIds[gBattleAnimAttacker]], 0); } for (i = 0; i < 16; i++) @@ -5801,7 +5801,7 @@ void AnimTask_SnatchPartnerMove(u8 taskId) gTasks[taskId].data[15]++; break; case 1: - spriteId = gBankSpriteIds[gBattleAnimAttacker]; + spriteId = gBattlerSpriteIds[gBattleAnimAttacker]; gSprites[spriteId].pos2.x += gTasks[taskId].data[0]; if (gTasks[taskId].data[0] > 0) { @@ -5819,7 +5819,7 @@ void AnimTask_SnatchPartnerMove(u8 taskId) gTasks[taskId].data[15]++; break; case 3: - spriteId = gBankSpriteIds[gBattleAnimAttacker]; + spriteId = gBattlerSpriteIds[gBattleAnimAttacker]; gSprites[spriteId].pos2.x += gTasks[taskId].data[0]; if (gTasks[taskId].data[0] < 0) { @@ -5834,7 +5834,7 @@ void AnimTask_SnatchPartnerMove(u8 taskId) break; case 4: default: - spriteId = gBankSpriteIds[gBattleAnimAttacker]; + spriteId = gBattlerSpriteIds[gBattleAnimAttacker]; gSprites[spriteId].pos2.x = 0; DestroyAnimVisualTask(taskId); break; diff --git a/src/battle/battle_anim_80A7E7C.c b/src/battle_anim_mon_movement.c index 5e713a3a7..23aea3218 100644 --- a/src/battle/battle_anim_80A7E7C.c +++ b/src/battle_anim_mon_movement.c @@ -10,7 +10,7 @@ extern s16 gBattleAnimArgs[8]; -extern u8 gBankSpriteIds[]; +extern u8 gBattlerSpriteIds[]; extern s32 gAnimMoveDmg; extern u16 gAnimMovePower; extern u8 gBattleAnimAttacker; @@ -199,11 +199,11 @@ void AnimTask_ShakeMon2(u8 taskId) if (IsAnimBankSpriteVisible(side) == FALSE) destroy = TRUE; - sprite = gBankSpriteIds[side]; + sprite = gBattlerSpriteIds[side]; } else { - sprite = gBankSpriteIds[gBattleAnimAttacker]; + sprite = gBattlerSpriteIds[gBattleAnimAttacker]; } if (destroy) @@ -447,7 +447,7 @@ static void DoHorizontalLunge(struct Sprite *sprite) sprite->data[0] = gBattleAnimArgs[0]; sprite->data[2] = 0; - sprite->data[3] = gBankSpriteIds[gBattleAnimAttacker]; + sprite->data[3] = gBattlerSpriteIds[gBattleAnimAttacker]; sprite->data[4] = gBattleAnimArgs[0]; StoreSpriteCallbackInData(sprite, ReverseHorizontalLungeDirection); sprite->callback = TranslateMonBGUntil; @@ -498,9 +498,9 @@ static void SlideMonToOriginalPos(struct Sprite *sprite) int something; int monSpriteId; if (!gBattleAnimArgs[0]) - monSpriteId = gBankSpriteIds[gBattleAnimAttacker]; + monSpriteId = gBattlerSpriteIds[gBattleAnimAttacker]; else - monSpriteId = gBankSpriteIds[gBattleAnimTarget]; + monSpriteId = gBattlerSpriteIds[gBattleAnimTarget]; sprite->data[0] = gBattleAnimArgs[2]; sprite->data[1] = gSprites[monSpriteId].pos1.x + gSprites[monSpriteId].pos2.x; @@ -571,7 +571,7 @@ static void SlideMonToOffset(struct Sprite *sprite) else battler = gBattleAnimTarget; - monSpriteId = gBankSpriteIds[battler]; + monSpriteId = gBattlerSpriteIds[battler]; if (GetBattlerSide(battler) != B_SIDE_PLAYER) { gBattleAnimArgs[1] = -gBattleAnimArgs[1]; @@ -608,7 +608,7 @@ static void sub_80A8818(struct Sprite *sprite) { v1 = gBattleAnimTarget; } - spriteId = gBankSpriteIds[v1]; + spriteId = gBattlerSpriteIds[v1]; if (GetBattlerSide(v1)) { gBattleAnimArgs[1] = -gBattleAnimArgs[1]; @@ -726,7 +726,7 @@ void sub_80A8A80(u8 taskId) DestroyAnimVisualTask(taskId); return; } - spriteId = gBankSpriteIds[gBattleAnimAttacker ^ 2]; + spriteId = gBattlerSpriteIds[gBattleAnimAttacker ^ 2]; break; case 3: if (!IsAnimBankSpriteVisible(gBattleAnimTarget ^ 2)) @@ -734,7 +734,7 @@ void sub_80A8A80(u8 taskId) DestroyAnimVisualTask(taskId); return; } - spriteId = gBankSpriteIds[gBattleAnimTarget ^ 2]; + spriteId = gBattlerSpriteIds[gBattleAnimTarget ^ 2]; break; default: DestroyAnimVisualTask(taskId); diff --git a/src/battle/battle_anim_813F0F4.c b/src/battle_anim_special.c index 9ea0585d1..d8cf71be6 100755 --- a/src/battle/battle_anim_813F0F4.c +++ b/src/battle_anim_special.c @@ -1,7 +1,7 @@ #include "global.h" #include "battle.h" #include "battle_anim.h" -#include "battle_anim_813F0F4.h" +#include "battle_anim_special.h" #include "battle_interface.h" #include "blend_palette.h" #include "decompress.h" @@ -26,12 +26,12 @@ extern u16 gUnknown_03005F14; extern s16 gBattleAnimArgs[]; extern u8 gBattleAnimAttacker; extern u8 gBattleAnimTarget; -extern u8 gHealthboxIDs[]; -extern u8 gBankSpriteIds[]; +extern u8 gHealthboxSpriteIds[]; +extern u8 gBattlerSpriteIds[]; extern u16 gBattlerPartyIndexes[]; extern u16 gLastUsedItem; extern u8 gDoingBattleAnim; -extern u8 gEffectBank; +extern u8 gEffectBattler; extern const u8 gUnknown_08D2EE48[]; extern const u8 gUnknown_08D2EDFC[]; @@ -380,7 +380,7 @@ void unref_sub_813F0F4(u8 taskId) REG_BG1CNT_BITFIELD.areaOverflowMode = 1; REG_BG1CNT_BITFIELD.charBaseBlock = 1; - healthBoxSpriteId = gHealthboxIDs[battler]; + healthBoxSpriteId = gHealthboxSpriteIds[battler]; spriteId1 = gSprites[healthBoxSpriteId].oam.affineParam; spriteId2 = gSprites[healthBoxSpriteId].data[5]; spriteId3 = CreateInvisibleSpriteWithCallback(SpriteCallbackDummy); @@ -460,9 +460,9 @@ static void sub_813F300(u8 taskId) sub_8078914(&subStruct); DmaFill32Defvars(3, 0, subStruct.field_4, 0x800); REG_BG1CNT_BITFIELD.areaOverflowMode = 0; - spriteId1 = gSprites[gHealthboxIDs[battler]].oam.affineParam; - spriteId2 = gSprites[gHealthboxIDs[battler]].data[5]; - gSprites[gHealthboxIDs[battler]].oam.priority = 1; + spriteId1 = gSprites[gHealthboxSpriteIds[battler]].oam.affineParam; + spriteId2 = gSprites[gHealthboxSpriteIds[battler]].data[5]; + gSprites[gHealthboxSpriteIds[battler]].oam.priority = 1; gSprites[spriteId1].oam.priority = 1; gSprites[spriteId2].oam.priority = 1; DestroyAnimVisualTask(taskId); @@ -479,7 +479,7 @@ void sub_813F4EC(u8 taskId) u8 paletteNum1, paletteNum2; u16 offset1, offset2; - healthBoxSpriteId = gHealthboxIDs[gBattleAnimAttacker]; + healthBoxSpriteId = gHealthboxSpriteIds[gBattleAnimAttacker]; spriteId1 = gSprites[healthBoxSpriteId].oam.affineParam; spriteId2 = gSprites[healthBoxSpriteId].data[5]; paletteNum1 = AllocSpritePalette(0xD709); @@ -502,7 +502,7 @@ void sub_813F5E8(u8 taskId) u8 spriteId1, spriteId2; u8 paletteIndex1, paletteIndex2; - healthBoxSpriteId = gHealthboxIDs[gBattleAnimAttacker]; + healthBoxSpriteId = gHealthboxSpriteIds[gBattleAnimAttacker]; spriteId1 = gSprites[healthBoxSpriteId].oam.affineParam; spriteId2 = gSprites[healthBoxSpriteId].data[5]; @@ -565,7 +565,7 @@ void sub_813F798(u8 taskId) { u8 spriteId; - spriteId = gBankSpriteIds[gBattleAnimAttacker]; + spriteId = gBattlerSpriteIds[gBattleAnimAttacker]; switch (gTasks[taskId].data[0]) { case 0: @@ -597,7 +597,7 @@ void sub_813F844(u8 taskId) u8 priority, subpriority; u32 selectedPalettes; - spriteId = gBankSpriteIds[gBattleAnimAttacker]; + spriteId = gBattlerSpriteIds[gBattleAnimAttacker]; if (GetBattlerSide(gBattleAnimAttacker) == B_SIDE_PLAYER) ball = GetMonData(&gPlayerParty[gBattlerPartyIndexes[gBattleAnimAttacker]], MON_DATA_POKEBALL); else @@ -690,7 +690,7 @@ void sub_813FA94(u8 taskId) gSprites[spriteId].data[1] = GetBattlerSpriteCoord(gBattleAnimTarget, 0); gSprites[spriteId].data[2] = GetBattlerSpriteCoord(gBattleAnimTarget, 1) - 16; gSprites[spriteId].callback = sub_813FD90; - ewram17840.unk9_1 = gSprites[gBankSpriteIds[gBattleAnimTarget]].invisible; + ewram17840.unk9_1 = gSprites[gBattlerSpriteIds[gBattleAnimTarget]].invisible; gTasks[taskId].data[0] = spriteId; gTasks[taskId].func = sub_813FB7C; } @@ -727,14 +727,14 @@ void sub_813FBB8(u8 taskId) gSprites[spriteId].data[1] = GetBattlerSpriteCoord(gBattleAnimTarget, 0); gSprites[spriteId].data[2] = GetBattlerSpriteCoord(gBattleAnimTarget, 1) - 16; gSprites[spriteId].callback = SpriteCallbackDummy; - StartSpriteAnim(&gSprites[gBankSpriteIds[GetBattlerAtPosition(B_POSITION_PLAYER_LEFT)]], 1); + StartSpriteAnim(&gSprites[gBattlerSpriteIds[GetBattlerAtPosition(B_POSITION_PLAYER_LEFT)]], 1); gTasks[taskId].data[0] = spriteId; gTasks[taskId].func = sub_813FCBC; } static void sub_813FCBC(u8 taskId) { - if (gSprites[gBankSpriteIds[GetBattlerAtPosition(B_POSITION_PLAYER_LEFT)]].animCmdIndex == 1) + if (gSprites[gBattlerSpriteIds[GetBattlerAtPosition(B_POSITION_PLAYER_LEFT)]].animCmdIndex == 1) { PlaySE12WithPanning(SE_NAGERU, 0); gSprites[gTasks[taskId].data[0]].callback = sub_813FD90; @@ -745,9 +745,9 @@ static void sub_813FCBC(u8 taskId) static void sub_813FD34(u8 taskId) { - if (gSprites[gBankSpriteIds[GetBattlerAtPosition(B_POSITION_PLAYER_LEFT)]].animEnded) + if (gSprites[gBattlerSpriteIds[GetBattlerAtPosition(B_POSITION_PLAYER_LEFT)]].animEnded) { - StartSpriteAnim(&gSprites[gBankSpriteIds[GetBattlerAtPosition(B_POSITION_PLAYER_LEFT)]], 0); + StartSpriteAnim(&gSprites[gBattlerSpriteIds[GetBattlerAtPosition(B_POSITION_PLAYER_LEFT)]], 0); DestroyTask(taskId); } } @@ -811,7 +811,7 @@ static void sub_813FE70(struct Sprite *sprite) { sprite->data[5] = CreateTask(TaskDummy, 50); sprite->callback = sub_813FEC8; - gSprites[gBankSpriteIds[gBattleAnimTarget]].data[1] = 0; + gSprites[gBattlerSpriteIds[gBattleAnimTarget]].data[1] = 0; } } @@ -820,7 +820,7 @@ static void sub_813FEC8(struct Sprite *sprite) u8 spriteId; u8 taskId; - spriteId = gBankSpriteIds[gBattleAnimTarget]; + spriteId = gBattlerSpriteIds[gBattleAnimTarget]; taskId = sprite->data[5]; if (++gTasks[taskId].data[1] == 11) @@ -1139,8 +1139,8 @@ static void sub_8140454(struct Sprite *sprite) } else if (sprite->data[4] == 315) { - FreeOamMatrix(gSprites[gBankSpriteIds[*battler]].oam.matrixNum); - DestroySprite(&gSprites[gBankSpriteIds[*battler]]); + FreeOamMatrix(gSprites[gBattlerSpriteIds[*battler]].oam.matrixNum); + DestroySprite(&gSprites[gBattlerSpriteIds[*battler]]); sprite->data[0] = 0; sprite->callback = sub_81404E4; } @@ -1223,10 +1223,10 @@ static void sub_81405F4(struct Sprite *sprite) sub_8141314(1, gBattleAnimTarget, 14, ballIndex); LABEL: - gSprites[gBankSpriteIds[gBattleAnimTarget]].invisible = 0; - StartSpriteAffineAnim(&gSprites[gBankSpriteIds[gBattleAnimTarget]], 1); - AnimateSprite(&gSprites[gBankSpriteIds[gBattleAnimTarget]]); - gSprites[gBankSpriteIds[gBattleAnimTarget]].data[1] = 0x1000; + gSprites[gBattlerSpriteIds[gBattleAnimTarget]].invisible = 0; + StartSpriteAffineAnim(&gSprites[gBattlerSpriteIds[gBattleAnimTarget]], 1); + AnimateSprite(&gSprites[gBattlerSpriteIds[gBattleAnimTarget]]); + gSprites[gBattlerSpriteIds[gBattleAnimTarget]].data[1] = 0x1000; } static void sub_81406BC(struct Sprite *sprite) @@ -1236,21 +1236,21 @@ static void sub_81406BC(struct Sprite *sprite) if (sprite->animEnded) sprite->invisible = 1; - if (gSprites[gBankSpriteIds[gBattleAnimTarget]].affineAnimEnded) + if (gSprites[gBattlerSpriteIds[gBattleAnimTarget]].affineAnimEnded) { - StartSpriteAffineAnim(&gSprites[gBankSpriteIds[gBattleAnimTarget]], 0); + StartSpriteAffineAnim(&gSprites[gBattlerSpriteIds[gBattleAnimTarget]], 0); next = TRUE; } else { - gSprites[gBankSpriteIds[gBattleAnimTarget]].data[1] -= 288; - gSprites[gBankSpriteIds[gBattleAnimTarget]].pos2.y = gSprites[gBankSpriteIds[gBattleAnimTarget]].data[1] >> 8; + gSprites[gBattlerSpriteIds[gBattleAnimTarget]].data[1] -= 288; + gSprites[gBattlerSpriteIds[gBattleAnimTarget]].pos2.y = gSprites[gBattlerSpriteIds[gBattleAnimTarget]].data[1] >> 8; } if (sprite->animEnded && next) { - gSprites[gBankSpriteIds[gBattleAnimTarget]].pos2.y = 0; - gSprites[gBankSpriteIds[gBattleAnimTarget]].invisible = ewram17840.unk9_1; + gSprites[gBattlerSpriteIds[gBattleAnimTarget]].pos2.y = 0; + gSprites[gBattlerSpriteIds[gBattleAnimTarget]].invisible = ewram17840.unk9_1; sprite->data[0] = 0; sprite->callback = sub_81405C8; gDoingBattleAnim = 0; @@ -1824,7 +1824,7 @@ void sub_814151C(u8 taskId) u32 done; done = FALSE; - spriteId = gBankSpriteIds[gBattleAnimAttacker]; + spriteId = gBattlerSpriteIds[gBattleAnimAttacker]; switch (gTasks[taskId].data[10]) { case 0: @@ -1905,7 +1905,7 @@ void sub_81416C4(u8 taskId) } break; case 2: - spriteId = gBankSpriteIds[gBattleAnimAttacker]; + spriteId = gBattlerSpriteIds[gBattleAnimAttacker]; DmaClear32(3, (void *)OBJ_VRAM0 + gSprites[spriteId].oam.tileNum * TILE_SIZE_4BPP, 0x800); sub_80324E0(gBattleAnimAttacker); DestroyAnimVisualTask(taskId); @@ -1921,7 +1921,7 @@ void sub_81417D8(u8 taskId) void sub_8141808(u8 taskId) { - gBattleAnimTarget = gEffectBank; + gBattleAnimTarget = gEffectBattler; DestroyAnimVisualTask(taskId); } @@ -2107,13 +2107,13 @@ static void sub_8141C30(struct Sprite *sprite) sprite->data[4] = GetBattlerSpriteCoord(GetBattlerAtPosition(B_POSITION_OPPONENT_LEFT), 1) + gBattleAnimArgs[3]; sprite->data[5] = -32; InitAnimArcTranslation(sprite); - StartSpriteAnim(&gSprites[gBankSpriteIds[gBattleAnimAttacker]], 1); + StartSpriteAnim(&gSprites[gBattlerSpriteIds[gBattleAnimAttacker]], 1); sprite->callback = sub_8141CBC; } static void sub_8141CBC(struct Sprite *sprite) { - if (gSprites[gBankSpriteIds[gBattleAnimAttacker]].animCmdIndex == 1) + if (gSprites[gBattlerSpriteIds[gBattleAnimAttacker]].animCmdIndex == 1) sprite->callback = sub_8141CF4; } @@ -2129,11 +2129,11 @@ static void sub_8141CF4(struct Sprite *sprite) static void sub_8141D20(struct Sprite *sprite) { - if (gSprites[gBankSpriteIds[gBattleAnimAttacker]].animEnded) + if (gSprites[gBattlerSpriteIds[gBattleAnimAttacker]].animEnded) { if (++sprite->data[0] > 0) { - StartSpriteAnim(&gSprites[gBankSpriteIds[gBattleAnimAttacker]], 0); + StartSpriteAnim(&gSprites[gBattlerSpriteIds[gBattleAnimAttacker]], 0); DestroyAnimSprite(sprite); } } diff --git a/src/battle/battle_anim_807B69C.c b/src/battle_anim_status_effects.c index 90e6ce38c..c51c0f8d3 100644 --- a/src/battle/battle_anim_807B69C.c +++ b/src/battle_anim_status_effects.c @@ -15,7 +15,7 @@ extern bool8 gAnimScriptActive; extern void (*gAnimScriptCallback)(void); extern s16 gBattleAnimArgs[]; extern u8 gBattleAnimTarget; -extern u8 gBankSpriteIds[]; +extern u8 gBattlerSpriteIds[]; extern const struct CompressedSpriteSheet gBattleAnimPicTable[]; extern const struct CompressedSpritePalette gBattleAnimPaletteTable[]; extern const u8 *const gBattleAnims_StatusConditions[]; @@ -72,7 +72,7 @@ static void sub_807BDAC(u8); u8 unref_sub_807B69C(u8 a, u8 b) { - u8 spriteId1 = gBankSpriteIds[a]; + u8 spriteId1 = gBattlerSpriteIds[a]; u8 taskId = CreateTask(sub_807B7E0, 10); u8 spriteId2; u8 i; diff --git a/src/battle/battle_bg.c b/src/battle_bg.c index 4928708e0..29369958c 100644 --- a/src/battle/battle_bg.c +++ b/src/battle_bg.c @@ -262,22 +262,22 @@ void DrawMainBattleBackground(void) { if (gBattleTypeFlags & (BATTLE_TYPE_LINK | BATTLE_TYPE_BATTLE_TOWER | BATTLE_TYPE_EREADER_TRAINER /*| BATTLE_TYPE_x2000000*/)) { - LZDecompressVram(gBattleTerrainTiles_Building, (void*)(VRAM + 0x8000)); - LZDecompressVram(gBattleTerrainTilemap_Building, (void*)(VRAM + 0xD000)); + LZDecompressVram(gBattleTerrainTiles_Building, (void*)(BG_CHAR_ADDR(2))); + LZDecompressVram(gBattleTerrainTilemap_Building, (void*)(BG_SCREEN_ADDR(26))); LoadCompressedPalette(gBattleTerrainPalette_BattleTower, 0x20, 0x60); } else if (gBattleTypeFlags & BATTLE_TYPE_KYOGRE_GROUDON) { if (gGameVersion == VERSION_RUBY) { - LZDecompressVram(gBattleTerrainTiles_Cave, (void*)(VRAM + 0x8000)); - LZDecompressVram(gBattleTerrainTilemap_Cave, (void*)(VRAM + 0xD000)); + LZDecompressVram(gBattleTerrainTiles_Cave, (void*)(BG_CHAR_ADDR(2))); + LZDecompressVram(gBattleTerrainTilemap_Cave, (void*)(BG_SCREEN_ADDR(26))); LoadCompressedPalette(gBattleTerrainPalette_Groudon, 0x20, 0x60); } else { - LZDecompressVram(gBattleTerrainTiles_Water, (void*)(VRAM + 0x8000)); - LZDecompressVram(gBattleTerrainTilemap_Water, (void*)(VRAM + 0xD000)); + LZDecompressVram(gBattleTerrainTiles_Water, (void*)(BG_CHAR_ADDR(2))); + LZDecompressVram(gBattleTerrainTilemap_Water, (void*)(BG_SCREEN_ADDR(26))); LoadCompressedPalette(gBattleTerrainPalette_Kyogre, 0x20, 0x60); } } @@ -288,15 +288,15 @@ void DrawMainBattleBackground(void) u8 trainerClass = gTrainers[gTrainerBattleOpponent].trainerClass; if (trainerClass == TRAINER_CLASS_LEADER) { - LZDecompressVram(gBattleTerrainTiles_Building, (void*)(VRAM + 0x8000)); - LZDecompressVram(gBattleTerrainTilemap_Building, (void*)(VRAM + 0xD000)); + LZDecompressVram(gBattleTerrainTiles_Building, (void*)(BG_CHAR_ADDR(2))); + LZDecompressVram(gBattleTerrainTilemap_Building, (void*)(BG_SCREEN_ADDR(26))); LoadCompressedPalette(gBattleTerrainPalette_BuildingLeader, 0x20, 0x60); return; } else if (trainerClass == TRAINER_CLASS_CHAMPION) { - LZDecompressVram(gBattleTerrainTiles_Stadium, (void*)(VRAM + 0x8000)); - LZDecompressVram(gBattleTerrainTilemap_Stadium, (void*)(VRAM + 0xD000)); + LZDecompressVram(gBattleTerrainTiles_Stadium, (void*)(BG_CHAR_ADDR(2))); + LZDecompressVram(gBattleTerrainTilemap_Stadium, (void*)(BG_SCREEN_ADDR(26))); LoadCompressedPalette(gBattleTerrainPalette_StadiumSteven, 0x20, 0x60); return; } @@ -305,48 +305,48 @@ void DrawMainBattleBackground(void) switch (GetCurrentMapBattleScene()) { case MAP_BATTLE_SCENE_NORMAL: - LZDecompressVram(gBattleTerrainTable[gBattleTerrain].tileset, (void*)(VRAM + 0x8000)); - LZDecompressVram(gBattleTerrainTable[gBattleTerrain].tilemap, (void*)(VRAM + 0xD000)); + LZDecompressVram(gBattleTerrainTable[gBattleTerrain].tileset, (void*)(BG_CHAR_ADDR(2))); + LZDecompressVram(gBattleTerrainTable[gBattleTerrain].tilemap, (void*)(BG_SCREEN_ADDR(26))); LoadCompressedPalette(gBattleTerrainTable[gBattleTerrain].palette, 0x20, 0x60); break; case MAP_BATTLE_SCENE_GYM: - LZDecompressVram(gBattleTerrainTiles_Building, (void*)(VRAM + 0x8000)); - LZDecompressVram(gBattleTerrainTilemap_Building, (void*)(VRAM + 0xD000)); + LZDecompressVram(gBattleTerrainTiles_Building, (void*)(BG_CHAR_ADDR(2))); + LZDecompressVram(gBattleTerrainTilemap_Building, (void*)(BG_SCREEN_ADDR(26))); LoadCompressedPalette(gBattleTerrainPalette_BuildingGym, 0x20, 0x60); break; case MAP_BATTLE_SCENE_MAGMA: - LZDecompressVram(gBattleTerrainTiles_Stadium, (void*)(VRAM + 0x8000)); - LZDecompressVram(gBattleTerrainTilemap_Stadium, (void*)(VRAM + 0xD000)); + LZDecompressVram(gBattleTerrainTiles_Stadium, (void*)(BG_CHAR_ADDR(2))); + LZDecompressVram(gBattleTerrainTilemap_Stadium, (void*)(BG_SCREEN_ADDR(26))); LoadCompressedPalette(gBattleTerrainPalette_StadiumMagma, 0x20, 0x60); break; case MAP_BATTLE_SCENE_AQUA: - LZDecompressVram(gBattleTerrainTiles_Stadium, (void*)(VRAM + 0x8000)); - LZDecompressVram(gBattleTerrainTilemap_Stadium, (void*)(VRAM + 0xD000)); + LZDecompressVram(gBattleTerrainTiles_Stadium, (void*)(BG_CHAR_ADDR(2))); + LZDecompressVram(gBattleTerrainTilemap_Stadium, (void*)(BG_SCREEN_ADDR(26))); LoadCompressedPalette(gBattleTerrainPalette_StadiumAqua, 0x20, 0x60); break; case MAP_BATTLE_SCENE_SIDNEY: - LZDecompressVram(gBattleTerrainTiles_Stadium, (void*)(VRAM + 0x8000)); - LZDecompressVram(gBattleTerrainTilemap_Stadium, (void*)(VRAM + 0xD000)); + LZDecompressVram(gBattleTerrainTiles_Stadium, (void*)(BG_CHAR_ADDR(2))); + LZDecompressVram(gBattleTerrainTilemap_Stadium, (void*)(BG_SCREEN_ADDR(26))); LoadCompressedPalette(gBattleTerrainPalette_StadiumSidney, 0x20, 0x60); break; case MAP_BATTLE_SCENE_PHOEBE: - LZDecompressVram(gBattleTerrainTiles_Stadium, (void*)(VRAM + 0x8000)); - LZDecompressVram(gBattleTerrainTilemap_Stadium, (void*)(VRAM + 0xD000)); + LZDecompressVram(gBattleTerrainTiles_Stadium, (void*)(BG_CHAR_ADDR(2))); + LZDecompressVram(gBattleTerrainTilemap_Stadium, (void*)(BG_SCREEN_ADDR(26))); LoadCompressedPalette(gBattleTerrainPalette_StadiumPhoebe, 0x20, 0x60); break; case MAP_BATTLE_SCENE_GLACIA: - LZDecompressVram(gBattleTerrainTiles_Stadium, (void*)(VRAM + 0x8000)); - LZDecompressVram(gBattleTerrainTilemap_Stadium, (void*)(VRAM + 0xD000)); + LZDecompressVram(gBattleTerrainTiles_Stadium, (void*)(BG_CHAR_ADDR(2))); + LZDecompressVram(gBattleTerrainTilemap_Stadium, (void*)(BG_SCREEN_ADDR(26))); LoadCompressedPalette(gBattleTerrainPalette_StadiumGlacia, 0x20, 0x60); break; case MAP_BATTLE_SCENE_DRAKE: - LZDecompressVram(gBattleTerrainTiles_Stadium, (void*)(VRAM + 0x8000)); - LZDecompressVram(gBattleTerrainTilemap_Stadium, (void*)(VRAM + 0xD000)); + LZDecompressVram(gBattleTerrainTiles_Stadium, (void*)(BG_CHAR_ADDR(2))); + LZDecompressVram(gBattleTerrainTilemap_Stadium, (void*)(BG_SCREEN_ADDR(26))); LoadCompressedPalette(gBattleTerrainPalette_StadiumDrake, 0x20, 0x60); break; case MAP_BATTLE_SCENE_BATTLE_TOWER: - LZDecompressVram(gBattleTerrainTiles_Building, (void*)(VRAM + 0x8000)); - LZDecompressVram(gBattleTerrainTilemap_Building, (void*)(VRAM + 0xD000)); + LZDecompressVram(gBattleTerrainTiles_Building, (void*)(BG_CHAR_ADDR(2))); + LZDecompressVram(gBattleTerrainTilemap_Building, (void*)(BG_SCREEN_ADDR(26))); LoadCompressedPalette(gBattleTerrainPalette_BattleTower, 0x20, 0x60); break; } @@ -359,6 +359,7 @@ void LoadBattleTextboxAndBackground(void) CpuSet(gBattleTextboxTilemap, (void *)(VRAM + 0xC000), 0x800); LoadCompressedPalette(gBattleTextboxPalette, 0, 0x40); ApplyPlayerChosenFrameToBattleMenu(); + DrawMainBattleBackground(); #if DEBUG @@ -466,8 +467,8 @@ static void PrintLinkBattleWinLossTie(void) if (gBattleOutcome == 1) { - // lp_field_18 = player position? - switch (gLinkPlayers[gBattleStruct->linkPlayerIndex].lp_field_18) + // id = player position? + switch (gLinkPlayers[gBattleStruct->linkPlayerIndex].id) { case 0: case 2: @@ -485,7 +486,7 @@ static void PrintLinkBattleWinLossTie(void) else { - switch (gLinkPlayers[gBattleStruct->linkPlayerIndex].lp_field_18) + switch (gLinkPlayers[gBattleStruct->linkPlayerIndex].id) { case 1: case 3: @@ -507,7 +508,7 @@ static void PrintLinkBattleWinLossTie(void) if (gBattleOutcome == 1) { - if (gLinkPlayers[gBattleStruct->linkPlayerIndex].lp_field_18 != 0) + if (gLinkPlayers[gBattleStruct->linkPlayerIndex].id != 0) { PRINT_MESSAGE_RIGHT(BattleText_Win, TILE_OFFSET_WIN); PRINT_MESSAGE_LEFT(BattleText_Loss, TILE_OFFSET_LOSS); @@ -520,7 +521,7 @@ static void PrintLinkBattleWinLossTie(void) } else { - if (gLinkPlayers[gBattleStruct->linkPlayerIndex].lp_field_18 != 0) + if (gLinkPlayers[gBattleStruct->linkPlayerIndex].id != 0) { PRINT_MESSAGE_LEFT(BattleText_Win, TILE_OFFSET_WIN); PRINT_MESSAGE_RIGHT(BattleText_Loss, TILE_OFFSET_LOSS); @@ -544,7 +545,7 @@ void sub_800DE30(u8 taskId) case 0: if (gBattleTypeFlags & BATTLE_TYPE_MULTI) { for (i = 0; i < 4; i++) { - u8 windowId = (gLinkPlayers[i].lp_field_18 & 3); + u8 windowId = (gLinkPlayers[i].id & 3); Text_InitWindow8002E4C( gLinkResultWindows[windowId].window, gLinkPlayers[i].name, @@ -560,7 +561,7 @@ void sub_800DE30(u8 taskId) u8 playerId = gBattleStruct->linkPlayerIndex; u8 opponentId = gBattleStruct->linkPlayerIndex ^ 1; - if (gLinkPlayers[playerId].lp_field_18) { + if (gLinkPlayers[playerId].id) { opponentId = gBattleStruct->linkPlayerIndex; playerId = gBattleStruct->linkPlayerIndex ^ 1; } @@ -633,12 +634,14 @@ void sub_800DE30(u8 taskId) } } -void LoadBattleEntryBackground(void) { - if (gBattleTypeFlags & BATTLE_TYPE_LINK) { - LZDecompressVram(gVersusFrameGfx, (void *)0x6004000); - LZDecompressVram(gVersusFrameTilemap, (void *)0x600e000); - LZDecompressVram(gVersusFrameTilemap, (void *)0x600f000); - LZDecompressVram(gUnknown_08E5DC2C, (void *)0x6010000); +void DrawBattleEntryBackground(void) +{ + if (gBattleTypeFlags & BATTLE_TYPE_LINK) + { + LZDecompressVram(gVersusFrameGfx, (void *)(VRAM + 0x4000)); + LZDecompressVram(gVersusFrameTilemap, (void *)(VRAM + 0xE000)); + LZDecompressVram(gVersusFrameTilemap, (void *)(VRAM + 0xF000)); + LZDecompressVram(gUnknown_08E5DC2C, (void *)(VRAM + 0x10000)); LoadCompressedPalette(gVersusFramePal, 0x60, 0x20); REG_BG1CNT = 0x5c04; REG_WININ = 0x36; @@ -646,180 +649,237 @@ void LoadBattleEntryBackground(void) { gBattle_BG1_Y = 0xff5c; gBattle_BG2_Y = 0xff5c; LoadCompressedObjectPic(gUnknown_081F95A4); - return; - } else if (gBattleTypeFlags & (BATTLE_TYPE_EREADER_TRAINER | BATTLE_TYPE_BATTLE_TOWER | BATTLE_TYPE_LINK)) { - LZDecompressVram(gBattleTerrainAnimTiles_Building, (void *)0x6004000); - LZDecompressVram(gBattleTerrainAnimTilemap_Building, (void *)0x600e000); - return; - } else if (gBattleTypeFlags & BATTLE_TYPE_KYOGRE_GROUDON) { - if (gGameVersion == VERSION_RUBY) { - LZDecompressVram(gBattleTerrainAnimTiles_Cave, (void *)0x6004000); - LZDecompressVram(gBattleTerrainAnimTilemap_Cave, (void *)0x600e000); - return; - } else { - LZDecompressVram(gBattleTerrainAnimTiles_Underwater, (void *)0x6004000); - LZDecompressVram(gBattleTerrainAnimTilemap_Underwater, (void *)0x600e000); - return; + } + else if (gBattleTypeFlags & (BATTLE_TYPE_EREADER_TRAINER | BATTLE_TYPE_BATTLE_TOWER | BATTLE_TYPE_LINK)) + { + LZDecompressVram(gBattleTerrainAnimTiles_Building, (void *)(VRAM + 0x4000)); + LZDecompressVram(gBattleTerrainAnimTilemap_Building, (void *)(VRAM + 0xE000)); + } + else if (gBattleTypeFlags & BATTLE_TYPE_KYOGRE_GROUDON) + { + if (gGameVersion == VERSION_RUBY) + { + LZDecompressVram(gBattleTerrainAnimTiles_Cave, (void *)(VRAM + 0x4000)); + LZDecompressVram(gBattleTerrainAnimTilemap_Cave, (void *)(VRAM + 0xE000)); } - } else if (gBattleTypeFlags & BATTLE_TYPE_TRAINER) { - if (gTrainers[gTrainerBattleOpponent].trainerClass == 0x19) { - LZDecompressVram(gBattleTerrainAnimTiles_Building, (void *)0x6004000); - LZDecompressVram(gBattleTerrainAnimTilemap_Building, (void *)0x600e000); - return; - } else if (gTrainers[gTrainerBattleOpponent].trainerClass == 0x20) { - LZDecompressVram(gBattleTerrainAnimTiles_Building, (void *)0x6004000); - LZDecompressVram(gBattleTerrainAnimTilemap_Building, (void *)0x600e000); - return; + else + { + LZDecompressVram(gBattleTerrainAnimTiles_Underwater, (void *)(VRAM + 0x4000)); + LZDecompressVram(gBattleTerrainAnimTilemap_Underwater, (void *)(VRAM + 0xE000)); } } - if (sav1_map_get_battletype() == 0) { - LZDecompressVram(gBattleTerrainTable[gBattleTerrain].entryTileset, (void *)0x6004000); - LZDecompressVram(gBattleTerrainTable[gBattleTerrain].entryTilemap, (void *)0x600e000); - return; + else + { + if (gBattleTypeFlags & BATTLE_TYPE_TRAINER) + { + if (gTrainers[gTrainerBattleOpponent].trainerClass == 0x19) + { + LZDecompressVram(gBattleTerrainAnimTiles_Building, (void *)(VRAM + 0x4000)); + LZDecompressVram(gBattleTerrainAnimTilemap_Building, (void *)(VRAM + 0xE000)); + return; + } + else if (gTrainers[gTrainerBattleOpponent].trainerClass == 0x20) + { + LZDecompressVram(gBattleTerrainAnimTiles_Building, (void *)(VRAM + 0x4000)); + LZDecompressVram(gBattleTerrainAnimTilemap_Building, (void *)(VRAM + 0xE000)); + return; + } + } + if (sav1_map_get_battletype() == 0) + { + LZDecompressVram(gBattleTerrainTable[gBattleTerrain].entryTileset, (void *)(VRAM + 0x4000)); + LZDecompressVram(gBattleTerrainTable[gBattleTerrain].entryTilemap, (void *)(VRAM + 0xE000)); + } + else + { + LZDecompressVram(gBattleTerrainAnimTiles_Building, (void *)(VRAM + 0x4000)); + LZDecompressVram(gBattleTerrainAnimTilemap_Building, (void *)(VRAM + 0xE000)); + } } - LZDecompressVram(gBattleTerrainAnimTiles_Building, (void *)0x6004000); - LZDecompressVram(gBattleTerrainAnimTilemap_Building, (void *)0x600e000); } -int LoadChosenBattleElement(u8 type) { - int ret = 0; - switch (type) { +int LoadChosenBattleElement(u8 caseId) +{ + int ret = FALSE; + + switch (caseId) + { case 0: - LZDecompressVram(&gBattleTextboxTiles, (void *)0x6000000); + LZDecompressVram(&gBattleTextboxTiles, (void *)VRAM); break; case 1: - CpuCopy16(gBattleTextboxTilemap, (void *)0x600c000, 0x1000); + CpuCopy16(gBattleTextboxTilemap, (void *)(VRAM + 0xC000), 0x1000); break; case 2: LoadCompressedPalette(gBattleTextboxPalette, 0, 0x40); break; case 3: // tiles - if (!(gBattleTypeFlags & (BATTLE_TYPE_EREADER_TRAINER | BATTLE_TYPE_BATTLE_TOWER | BATTLE_TYPE_LINK))) { - if (gBattleTypeFlags & BATTLE_TYPE_KYOGRE_GROUDON) { - if (gGameVersion == VERSION_RUBY) { - LZDecompressVram(gBattleTerrainTiles_Cave, (void *)0x6008000); + if (!(gBattleTypeFlags & (BATTLE_TYPE_EREADER_TRAINER | BATTLE_TYPE_BATTLE_TOWER | BATTLE_TYPE_LINK))) + { + if (gBattleTypeFlags & BATTLE_TYPE_KYOGRE_GROUDON) + { + if (gGameVersion == VERSION_RUBY) + { + LZDecompressVram(gBattleTerrainTiles_Cave, (void *)(BG_CHAR_ADDR(2))); break; - } else { - LZDecompressVram(gBattleTerrainTiles_Water, (void *)0x6008000); + } + else + { + LZDecompressVram(gBattleTerrainTiles_Water, (void *)(BG_CHAR_ADDR(2))); break; } - } else { - if (gBattleTypeFlags & BATTLE_TYPE_TRAINER) { - if (gTrainers[gTrainerBattleOpponent].trainerClass == 0x19) { - LZDecompressVram(gBattleTerrainTiles_Building, (void *)0x6008000); + } + else + { + if (gBattleTypeFlags & BATTLE_TYPE_TRAINER) + { + if (gTrainers[gTrainerBattleOpponent].trainerClass == 0x19) + { + LZDecompressVram(gBattleTerrainTiles_Building, (void *)(BG_CHAR_ADDR(2))); break; - } else if (gTrainers[gTrainerBattleOpponent].trainerClass == 0x20) { - LZDecompressVram(gBattleTerrainTiles_Stadium, (void *)0x6008000); + } + else if (gTrainers[gTrainerBattleOpponent].trainerClass == 0x20) + { + LZDecompressVram(gBattleTerrainTiles_Stadium, (void *)(BG_CHAR_ADDR(2))); break; } } - switch (sav1_map_get_battletype()) { + switch (sav1_map_get_battletype()) + { case 0: - LZDecompressVram(gBattleTerrainTable[gBattleTerrain].tileset, (void *)0x6008000); + LZDecompressVram(gBattleTerrainTable[gBattleTerrain].tileset, (void *)(BG_CHAR_ADDR(2))); break; case 2: - LZDecompressVram(gBattleTerrainTiles_Stadium, (void *)0x6008000); + LZDecompressVram(gBattleTerrainTiles_Stadium, (void *)(BG_CHAR_ADDR(2))); break; case 3: - LZDecompressVram(gBattleTerrainTiles_Stadium, (void *)0x6008000); + LZDecompressVram(gBattleTerrainTiles_Stadium, (void *)(BG_CHAR_ADDR(2))); break; case 4: - LZDecompressVram(gBattleTerrainTiles_Stadium, (void *)0x6008000); + LZDecompressVram(gBattleTerrainTiles_Stadium, (void *)(BG_CHAR_ADDR(2))); break; case 5: - LZDecompressVram(gBattleTerrainTiles_Stadium, (void *)0x6008000); + LZDecompressVram(gBattleTerrainTiles_Stadium, (void *)(BG_CHAR_ADDR(2))); break; case 6: - LZDecompressVram(gBattleTerrainTiles_Stadium, (void *)0x6008000); + LZDecompressVram(gBattleTerrainTiles_Stadium, (void *)(BG_CHAR_ADDR(2))); break; case 7: - LZDecompressVram(gBattleTerrainTiles_Stadium, (void *)0x6008000); + LZDecompressVram(gBattleTerrainTiles_Stadium, (void *)(BG_CHAR_ADDR(2))); break; case 1: case 8: - LZDecompressVram(gBattleTerrainTiles_Building, (void *)0x6008000); + LZDecompressVram(gBattleTerrainTiles_Building, (void *)(BG_CHAR_ADDR(2))); break; } break; } - } else { - LZDecompressVram(gBattleTerrainTiles_Building, (void *)0x6008000); + } + else + { + LZDecompressVram(gBattleTerrainTiles_Building, (void *)(BG_CHAR_ADDR(2))); break; } case 4: // tilemap - if (!(gBattleTypeFlags & (BATTLE_TYPE_EREADER_TRAINER | BATTLE_TYPE_BATTLE_TOWER | BATTLE_TYPE_LINK))) { - if (gBattleTypeFlags & BATTLE_TYPE_KYOGRE_GROUDON) { - if (gGameVersion == 2) { - LZDecompressVram(gBattleTerrainTilemap_Cave, (void *)0x600d000); + if (!(gBattleTypeFlags & (BATTLE_TYPE_EREADER_TRAINER | BATTLE_TYPE_BATTLE_TOWER | BATTLE_TYPE_LINK))) + { + if (gBattleTypeFlags & BATTLE_TYPE_KYOGRE_GROUDON) + { + if (gGameVersion == 2) + { + LZDecompressVram(gBattleTerrainTilemap_Cave, (void *)(BG_SCREEN_ADDR(26))); break; - } else { - LZDecompressVram(gBattleTerrainTilemap_Water, (void *)0x600d000); + } + else + { + LZDecompressVram(gBattleTerrainTilemap_Water, (void *)(BG_SCREEN_ADDR(26))); break; } - } else { - if (gBattleTypeFlags & BATTLE_TYPE_TRAINER) { - if (gTrainers[gTrainerBattleOpponent].trainerClass == 0x19) { - LZDecompressVram(gBattleTerrainTilemap_Building, (void *)0x600d000); + } + else + { + if (gBattleTypeFlags & BATTLE_TYPE_TRAINER) + { + if (gTrainers[gTrainerBattleOpponent].trainerClass == 0x19) + { + LZDecompressVram(gBattleTerrainTilemap_Building, (void *)(BG_SCREEN_ADDR(26))); break; - } else if (gTrainers[gTrainerBattleOpponent].trainerClass == 0x20) { - LZDecompressVram(gBattleTerrainTilemap_Stadium, (void *)0x600d000); + } + else if (gTrainers[gTrainerBattleOpponent].trainerClass == 0x20) + { + LZDecompressVram(gBattleTerrainTilemap_Stadium, (void *)(BG_SCREEN_ADDR(26))); break; } } - switch (sav1_map_get_battletype()) { + switch (sav1_map_get_battletype()) + { case 0: - LZDecompressVram(gBattleTerrainTable[gBattleTerrain].tilemap, (void *)0x600d000); + LZDecompressVram(gBattleTerrainTable[gBattleTerrain].tilemap, (void *)(BG_SCREEN_ADDR(26))); break; case 2: - LZDecompressVram(gBattleTerrainTilemap_Stadium, (void *)0x600d000); + LZDecompressVram(gBattleTerrainTilemap_Stadium, (void *)(BG_SCREEN_ADDR(26))); break; case 3: - LZDecompressVram(gBattleTerrainTilemap_Stadium, (void *)0x600d000); + LZDecompressVram(gBattleTerrainTilemap_Stadium, (void *)(BG_SCREEN_ADDR(26))); break; case 4: - LZDecompressVram(gBattleTerrainTilemap_Stadium, (void *)0x600d000); + LZDecompressVram(gBattleTerrainTilemap_Stadium, (void *)(BG_SCREEN_ADDR(26))); break; case 5: - LZDecompressVram(gBattleTerrainTilemap_Stadium, (void *)0x600d000); + LZDecompressVram(gBattleTerrainTilemap_Stadium, (void *)(BG_SCREEN_ADDR(26))); break; case 6: - LZDecompressVram(gBattleTerrainTilemap_Stadium, (void *)0x600d000); + LZDecompressVram(gBattleTerrainTilemap_Stadium, (void *)(BG_SCREEN_ADDR(26))); break; case 7: - LZDecompressVram(gBattleTerrainTilemap_Stadium, (void *)0x600d000); + LZDecompressVram(gBattleTerrainTilemap_Stadium, (void *)(BG_SCREEN_ADDR(26))); break; case 1: case 8: - LZDecompressVram(gBattleTerrainTilemap_Building, (void *)0x600d000); + LZDecompressVram(gBattleTerrainTilemap_Building, (void *)(BG_SCREEN_ADDR(26))); break; } break; } - } else { - LZDecompressVram(gBattleTerrainTilemap_Building, (void *)0x600d000); + } + else + { + LZDecompressVram(gBattleTerrainTilemap_Building, (void *)(BG_SCREEN_ADDR(26))); break; } case 5: // palette - if (!(gBattleTypeFlags & (BATTLE_TYPE_EREADER_TRAINER | BATTLE_TYPE_BATTLE_TOWER | BATTLE_TYPE_LINK))) { - if (gBattleTypeFlags & BATTLE_TYPE_KYOGRE_GROUDON) { - if (gGameVersion == 2) { + if (!(gBattleTypeFlags & (BATTLE_TYPE_EREADER_TRAINER | BATTLE_TYPE_BATTLE_TOWER | BATTLE_TYPE_LINK))) + { + if (gBattleTypeFlags & BATTLE_TYPE_KYOGRE_GROUDON) + { + if (gGameVersion == 2) + { LoadCompressedPalette(gBattleTerrainPalette_Groudon, 0x20, 0x60); break; - } else { + } + else + { LoadCompressedPalette(gBattleTerrainPalette_Kyogre, 0x20, 0x60); break; } - } else { - if (gBattleTypeFlags & BATTLE_TYPE_TRAINER) { - if (gTrainers[gTrainerBattleOpponent].trainerClass == 0x19) { + } + else + { + if (gBattleTypeFlags & BATTLE_TYPE_TRAINER) + { + if (gTrainers[gTrainerBattleOpponent].trainerClass == 0x19) + { LoadCompressedPalette(gBattleTerrainPalette_BuildingLeader, 0x20, 0x60); break; - } else if (gTrainers[gTrainerBattleOpponent].trainerClass == 0x20) { + } + else if (gTrainers[gTrainerBattleOpponent].trainerClass == 0x20) + { LoadCompressedPalette(gBattleTerrainPalette_StadiumSteven, 0x20, 0x60); break; } } - switch (sav1_map_get_battletype()) { + switch (sav1_map_get_battletype()) + { case 0: LoadCompressedPalette(gBattleTerrainTable[gBattleTerrain].palette, 0x20, 0x60); break; @@ -850,7 +910,9 @@ int LoadChosenBattleElement(u8 type) { } break; } - } else { + } + else + { LoadCompressedPalette(gBattleTerrainPalette_BattleTower, 0x20, 0x60); break; } @@ -858,7 +920,8 @@ int LoadChosenBattleElement(u8 type) { ApplyPlayerChosenFrameToBattleMenu(); break; default: - ret = 1; + ret = TRUE; + break; } return ret; } diff --git a/src/battle/battle_controller_linkopponent.c b/src/battle_controller_link_opponent.c index 117aeb932..d99b4fe27 100644 --- a/src/battle/battle_controller_linkopponent.c +++ b/src/battle_controller_link_opponent.c @@ -1,7 +1,7 @@ #include "global.h" #include "battle.h" #include "battle_anim.h" -#include "battle_anim_813F0F4.h" +#include "battle_anim_special.h" #include "battle_interface.h" #include "data2.h" #include "link.h" @@ -28,12 +28,12 @@ struct MovePpInfo extern u8 gActiveBattler; extern u8 gBattleBufferA[][0x200]; -extern u8 gBankSpriteIds[]; +extern u8 gBattlerSpriteIds[]; extern u16 gBattlerPartyIndexes[]; -extern u8 gHealthboxIDs[]; +extern u8 gHealthboxSpriteIds[]; extern u16 gBattleTypeFlags; extern u8 gBattleMonForms[]; -extern void (*gBattleBankFunc[])(void); +extern void (*gBattlerControllerFuncs[])(void); extern s32 gAnimMoveDmg; extern u16 gAnimMovePower; extern u8 gAnimFriendship; @@ -50,9 +50,9 @@ extern struct SpriteTemplate gUnknown_02024E8C; extern u8 gAnimMoveTurn; extern struct Window gUnknown_03004210; extern u8 gUnknown_0300434C[]; -extern u32 gBattleExecBuffer; +extern u32 gBattleControllerExecFlags; extern MainCallback gPreBattleCallback1; -extern struct MusicPlayerInfo gMPlay_BGM; +extern struct MusicPlayerInfo gMPlayInfo_BGM; extern u8 sub_8077F68(); extern u8 GetBattlerSubpriority(); @@ -76,7 +76,7 @@ extern void StartAnimLinearTranslation(struct Sprite *); extern void sub_80375B4(void); extern void sub_8010384(struct Sprite *); extern void sub_8037B78(void); -extern u8 sub_8031720(); +extern u8 IsMoveWithoutAnimation(); extern bool8 mplay_80342A4(u8); extern void DoMoveAnim(); extern void sub_80326EC(); @@ -248,12 +248,12 @@ void nullsub_47(void) void SetBankFuncToLinkOpponentBufferRunCommand(void) { - gBattleBankFunc[gActiveBattler] = sub_803752C; + gBattlerControllerFuncs[gActiveBattler] = sub_803752C; } void sub_803752C(void) { - if (gBattleExecBuffer & gBitTable[gActiveBattler]) + if (gBattleControllerExecFlags & gBitTable[gActiveBattler]) { if (gBattleBufferA[gActiveBattler][0] <= 0x38) gLinkOpponentBufferCommands[gBattleBufferA[gActiveBattler][0]](); @@ -264,18 +264,18 @@ void sub_803752C(void) void sub_803757C(void) { - if (gSprites[gBankSpriteIds[gActiveBattler]].callback == SpriteCallbackDummy) + if (gSprites[gBattlerSpriteIds[gActiveBattler]].callback == SpriteCallbackDummy) LinkOpponentBufferExecCompleted(); } void sub_80375B4(void) { - if (gSprites[gBankSpriteIds[gActiveBattler]].callback == SpriteCallbackDummy) + if (gSprites[gBattlerSpriteIds[gActiveBattler]].callback == SpriteCallbackDummy) { - sub_8031B74(gSprites[gBankSpriteIds[gActiveBattler]].oam.affineParam); - gSprites[gBankSpriteIds[gActiveBattler]].oam.tileNum = gSprites[gBankSpriteIds[gActiveBattler]].data[5]; - FreeSpriteOamMatrix(&gSprites[gBankSpriteIds[gActiveBattler]]); - DestroySprite(&gSprites[gBankSpriteIds[gActiveBattler]]); + sub_8031B74(gSprites[gBattlerSpriteIds[gActiveBattler]].oam.affineParam); + gSprites[gBattlerSpriteIds[gActiveBattler]].oam.tileNum = gSprites[gBattlerSpriteIds[gActiveBattler]].data[5]; + FreeSpriteOamMatrix(&gSprites[gBattlerSpriteIds[gActiveBattler]]); + DestroySprite(&gSprites[gBattlerSpriteIds[gActiveBattler]]); LinkOpponentBufferExecCompleted(); } } @@ -295,13 +295,13 @@ void sub_8037680(void) if (!IsDoubleBattle() || (IsDoubleBattle() && (gBattleTypeFlags & BATTLE_TYPE_MULTI))) { - if (gSprites[gHealthboxIDs[gActiveBattler]].callback == SpriteCallbackDummy) + if (gSprites[gHealthboxSpriteIds[gActiveBattler]].callback == SpriteCallbackDummy) r6 = TRUE; } else { - if (gSprites[gHealthboxIDs[gActiveBattler]].callback == SpriteCallbackDummy - && gSprites[gHealthboxIDs[gActiveBattler ^ 2]].callback == SpriteCallbackDummy) + if (gSprites[gHealthboxSpriteIds[gActiveBattler]].callback == SpriteCallbackDummy + && gSprites[gHealthboxSpriteIds[gActiveBattler ^ 2]].callback == SpriteCallbackDummy) r6 = TRUE; } if (IsCryPlayingOrClearCrySongs()) @@ -323,14 +323,14 @@ void sub_8037680(void) if (gBattleTypeFlags & BATTLE_TYPE_MULTI) { if (GetBattlerPosition(gActiveBattler) == 1) - m4aMPlayContinue(&gMPlay_BGM); + m4aMPlayContinue(&gMPlayInfo_BGM); } else { - m4aMPlayVolumeControl(&gMPlay_BGM, 0xFFFF, 256); + m4aMPlayVolumeControl(&gMPlayInfo_BGM, 0xFFFF, 256); } ewram17810[gActiveBattler].unk9 = 3; - gBattleBankFunc[gActiveBattler] = sub_8037644; + gBattlerControllerFuncs[gActiveBattler] = sub_8037644; } } @@ -352,35 +352,35 @@ void sub_8037840(void) { DestroySprite(&gSprites[gUnknown_0300434C[gActiveBattler ^ 2]]); sub_8045A5C( - gHealthboxIDs[gActiveBattler ^ 2], + gHealthboxSpriteIds[gActiveBattler ^ 2], &gEnemyParty[gBattlerPartyIndexes[gActiveBattler ^ 2]], 0); sub_804777C(gActiveBattler ^ 2); - sub_8043DFC(gHealthboxIDs[gActiveBattler ^ 2]); + sub_8043DFC(gHealthboxSpriteIds[gActiveBattler ^ 2]); sub_8032984( gActiveBattler ^ 2, GetMonData(&gEnemyParty[gBattlerPartyIndexes[gActiveBattler ^ 2]], MON_DATA_SPECIES)); } DestroySprite(&gSprites[gUnknown_0300434C[gActiveBattler]]); sub_8045A5C( - gHealthboxIDs[gActiveBattler], + gHealthboxSpriteIds[gActiveBattler], &gEnemyParty[gBattlerPartyIndexes[gActiveBattler]], 0); sub_804777C(gActiveBattler); - sub_8043DFC(gHealthboxIDs[gActiveBattler]); + sub_8043DFC(gHealthboxSpriteIds[gActiveBattler]); sub_8032984( gActiveBattler, GetMonData(&gEnemyParty[gBattlerPartyIndexes[gActiveBattler]], MON_DATA_SPECIES)); ewram17840.unk9_0 = 0; - gBattleBankFunc[gActiveBattler] = sub_8037680; + gBattlerControllerFuncs[gActiveBattler] = sub_8037680; } } void sub_8037A74(void) { - if (gSprites[gBankSpriteIds[gActiveBattler]].animEnded == TRUE - && gSprites[gBankSpriteIds[gActiveBattler]].pos2.x == 0) + if (gSprites[gBattlerSpriteIds[gActiveBattler]].animEnded == TRUE + && gSprites[gBattlerSpriteIds[gActiveBattler]].pos2.x == 0) { if (!ewram17810[gActiveBattler].unk0_7) { @@ -401,20 +401,20 @@ void sub_8037A74(void) void sub_8037B24(void) { - s16 r4 = sub_8045C78(gActiveBattler, gHealthboxIDs[gActiveBattler], 0, 0); + s16 r4 = sub_8045C78(gActiveBattler, gHealthboxSpriteIds[gActiveBattler], 0, 0); - sub_8043DFC(gHealthboxIDs[gActiveBattler]); + sub_8043DFC(gHealthboxSpriteIds[gActiveBattler]); if (r4 != -1) - sub_80440EC(gHealthboxIDs[gActiveBattler], r4, 0); + sub_80440EC(gHealthboxSpriteIds[gActiveBattler], r4, 0); else LinkOpponentBufferExecCompleted(); } void sub_8037B78(void) { - if (!gSprites[gBankSpriteIds[gActiveBattler]].inUse) + if (!gSprites[gBattlerSpriteIds[gActiveBattler]].inUse) { - sub_8043DB0(gHealthboxIDs[gActiveBattler]); + sub_8043DB0(gHealthboxSpriteIds[gActiveBattler]); LinkOpponentBufferExecCompleted(); } } @@ -423,10 +423,10 @@ void sub_8037BBC(void) { if (!ewram17810[gActiveBattler].unk0_6) { - FreeSpriteOamMatrix(&gSprites[gBankSpriteIds[gActiveBattler]]); - DestroySprite(&gSprites[gBankSpriteIds[gActiveBattler]]); + FreeSpriteOamMatrix(&gSprites[gBattlerSpriteIds[gActiveBattler]]); + DestroySprite(&gSprites[gBattlerSpriteIds[gActiveBattler]]); sub_8032A08(gActiveBattler); - sub_8043DB0(gHealthboxIDs[gActiveBattler]); + sub_8043DB0(gHealthboxSpriteIds[gActiveBattler]); LinkOpponentBufferExecCompleted(); } } @@ -439,7 +439,7 @@ void sub_8037C2C(void) void dp01t_0F_4_move_anim(void) { - u8 spriteId = gBankSpriteIds[gActiveBattler]; + u8 spriteId = gBattlerSpriteIds[gActiveBattler]; if (gSprites[spriteId].data[1] == 32) { @@ -458,11 +458,11 @@ void dp01t_0F_4_move_anim(void) void sub_8037CC0(void) { - if (gSprites[gHealthboxIDs[gActiveBattler]].callback == SpriteCallbackDummy) + if (gSprites[gHealthboxSpriteIds[gActiveBattler]].callback == SpriteCallbackDummy) { if (ewram17800[gActiveBattler].substituteSprite) move_anim_start_t4(gActiveBattler, gActiveBattler, gActiveBattler, 6); - gBattleBankFunc[gActiveBattler] = sub_8037D2C; + gBattlerControllerFuncs[gActiveBattler] = sub_8037D2C; } } @@ -483,15 +483,15 @@ void sub_8037D64(void) ewram17810[gActiveBattler].unk1_0 = 0; FreeSpriteTilesByTag(0x27F9); FreeSpritePaletteByTag(0x27F9); - StartSpriteAnim(&gSprites[gBankSpriteIds[gActiveBattler]], 0); + StartSpriteAnim(&gSprites[gBattlerSpriteIds[gActiveBattler]], 0); sub_8045A5C( - gHealthboxIDs[gActiveBattler], + gHealthboxSpriteIds[gActiveBattler], &gEnemyParty[gBattlerPartyIndexes[gActiveBattler]], 0); sub_804777C(gActiveBattler); - sub_8043DFC(gHealthboxIDs[gActiveBattler]); + sub_8043DFC(gHealthboxSpriteIds[gActiveBattler]); sub_8031F88(gActiveBattler); - gBattleBankFunc[gActiveBattler] = sub_8037CC0; + gBattlerControllerFuncs[gActiveBattler] = sub_8037CC0; } } @@ -504,7 +504,7 @@ void sub_8037E30(void) { DestroySprite(&gSprites[gUnknown_0300434C[gActiveBattler]]); sub_8032984(gActiveBattler, GetMonData(&gEnemyParty[gBattlerPartyIndexes[gActiveBattler]], MON_DATA_SPECIES)); - gBattleBankFunc[gActiveBattler] = sub_8037D64; + gBattlerControllerFuncs[gActiveBattler] = sub_8037D64; } } @@ -526,7 +526,7 @@ void sub_8037F34(void) if (gBattleTypeFlags & BATTLE_TYPE_LINK) { sub_800832C(); - gBattleBankFunc[gActiveBattler] = sub_8037EF0; + gBattlerControllerFuncs[gActiveBattler] = sub_8037EF0; } else { @@ -552,7 +552,7 @@ void sub_8037FD8(void) void LinkOpponentBufferExecCompleted(void) { - gBattleBankFunc[gActiveBattler] = sub_803752C; + gBattlerControllerFuncs[gActiveBattler] = sub_803752C; if (gBattleTypeFlags & BATTLE_TYPE_LINK) { u8 playerId = GetMultiplayerId(); @@ -562,7 +562,7 @@ void LinkOpponentBufferExecCompleted(void) } else { - gBattleExecBuffer &= ~gBitTable[gActiveBattler]; + gBattleControllerExecFlags &= ~gBitTable[gActiveBattler]; } } @@ -587,7 +587,7 @@ void LinkOpponentHandleGetAttributes(void) r4 >>= 1; } } - Emitcmd29(1, r6, buffer); + BtlController_EmitDataTransfer(1, r6, buffer); LinkOpponentBufferExecCompleted(); } @@ -1153,24 +1153,24 @@ void LinkOpponentHandleLoadPokeSprite(void) BattleLoadOpponentMonSprite(&gEnemyParty[gBattlerPartyIndexes[gActiveBattler]], gActiveBattler); GetMonSpriteTemplate_803C56C(species, GetBattlerPosition(gActiveBattler)); - gBankSpriteIds[gActiveBattler] = CreateSprite( + gBattlerSpriteIds[gActiveBattler] = CreateSprite( &gUnknown_02024E8C, GetBattlerSpriteCoord(gActiveBattler, 2), sub_8077F68(gActiveBattler), GetBattlerSubpriority(gActiveBattler)); - gSprites[gBankSpriteIds[gActiveBattler]].pos2.x = -240; - gSprites[gBankSpriteIds[gActiveBattler]].data[0] = gActiveBattler; - gSprites[gBankSpriteIds[gActiveBattler]].oam.paletteNum = gActiveBattler; - StartSpriteAnim(&gSprites[gBankSpriteIds[gActiveBattler]], gBattleMonForms[gActiveBattler]); + gSprites[gBattlerSpriteIds[gActiveBattler]].pos2.x = -240; + gSprites[gBattlerSpriteIds[gActiveBattler]].data[0] = gActiveBattler; + gSprites[gBattlerSpriteIds[gActiveBattler]].oam.paletteNum = gActiveBattler; + StartSpriteAnim(&gSprites[gBattlerSpriteIds[gActiveBattler]], gBattleMonForms[gActiveBattler]); sub_8032984(gActiveBattler, GetMonData(&gEnemyParty[gBattlerPartyIndexes[gActiveBattler]], MON_DATA_SPECIES)); - gBattleBankFunc[gActiveBattler] = sub_8037A74; + gBattlerControllerFuncs[gActiveBattler] = sub_8037A74; } void LinkOpponentHandleSendOutPoke(void) { gBattlerPartyIndexes[gActiveBattler] = gBattleBufferA[gActiveBattler][1]; sub_8039430(gActiveBattler, gBattleBufferA[gActiveBattler][2]); - gBattleBankFunc[gActiveBattler] = sub_8037E30; + gBattlerControllerFuncs[gActiveBattler] = sub_8037E30; } void sub_8039430(u8 a, u8 b) @@ -1183,18 +1183,18 @@ void sub_8039430(u8 a, u8 b) gUnknown_0300434C[a] = CreateInvisibleSpriteWithCallback(sub_80312F0); BattleLoadOpponentMonSprite(&gEnemyParty[gBattlerPartyIndexes[a]], a); GetMonSpriteTemplate_803C56C(species, GetBattlerPosition(a)); - gBankSpriteIds[a] = CreateSprite( + gBattlerSpriteIds[a] = CreateSprite( &gUnknown_02024E8C, GetBattlerSpriteCoord(a, 2), sub_8077F68(a), GetBattlerSubpriority(a)); - gSprites[gUnknown_0300434C[a]].data[1] = gBankSpriteIds[a]; - gSprites[gBankSpriteIds[a]].data[0] = a; - gSprites[gBankSpriteIds[a]].data[2] = species; - gSprites[gBankSpriteIds[a]].oam.paletteNum = a; - StartSpriteAnim(&gSprites[gBankSpriteIds[a]], gBattleMonForms[a]); - gSprites[gBankSpriteIds[a]].invisible = TRUE; - gSprites[gBankSpriteIds[a]].callback = SpriteCallbackDummy; + gSprites[gUnknown_0300434C[a]].data[1] = gBattlerSpriteIds[a]; + gSprites[gBattlerSpriteIds[a]].data[0] = a; + gSprites[gBattlerSpriteIds[a]].data[2] = species; + gSprites[gBattlerSpriteIds[a]].oam.paletteNum = a; + StartSpriteAnim(&gSprites[gBattlerSpriteIds[a]], gBattleMonForms[a]); + gSprites[gBattlerSpriteIds[a]].invisible = TRUE; + gSprites[gBattlerSpriteIds[a]].callback = SpriteCallbackDummy; gSprites[gUnknown_0300434C[a]].data[0] = StartSendOutMonAnimation(0, 0xFE); } @@ -1203,14 +1203,14 @@ void LinkOpponentHandleReturnPokeToBall(void) if (gBattleBufferA[gActiveBattler][1] == 0) { ewram17810[gActiveBattler].unk4 = 0; - gBattleBankFunc[gActiveBattler] = sub_8039648; + gBattlerControllerFuncs[gActiveBattler] = sub_8039648; } else { - FreeSpriteOamMatrix(&gSprites[gBankSpriteIds[gActiveBattler]]); - DestroySprite(&gSprites[gBankSpriteIds[gActiveBattler]]); + FreeSpriteOamMatrix(&gSprites[gBattlerSpriteIds[gActiveBattler]]); + DestroySprite(&gSprites[gBattlerSpriteIds[gActiveBattler]]); sub_8032A08(gActiveBattler); - sub_8043DB0(gHealthboxIDs[gActiveBattler]); + sub_8043DB0(gHealthboxSpriteIds[gActiveBattler]); LinkOpponentBufferExecCompleted(); } } @@ -1229,7 +1229,7 @@ void sub_8039648(void) { ewram17810[gActiveBattler].unk4 = 0; move_anim_start_t4(gActiveBattler, gActiveBattler, gActiveBattler, 2); - gBattleBankFunc[gActiveBattler] = sub_8037BBC; + gBattlerControllerFuncs[gActiveBattler] = sub_8037BBC; } break; } @@ -1255,18 +1255,18 @@ void LinkOpponentHandleTrainerThrow(void) } sub_8031A6C(gender, gActiveBattler); GetMonSpriteTemplate_803C5A0(gender, GetBattlerPosition(gActiveBattler)); - gBankSpriteIds[gActiveBattler] = CreateSprite( + gBattlerSpriteIds[gActiveBattler] = CreateSprite( &gUnknown_02024E8C, 176 + xOffset, 40 + 4 * (8 - gTrainerFrontPicCoords[gender].coords), GetBattlerSubpriority(gActiveBattler)); - gSprites[gBankSpriteIds[gActiveBattler]].pos2.x = -240; - gSprites[gBankSpriteIds[gActiveBattler]].data[0] = 2; - gSprites[gBankSpriteIds[gActiveBattler]].oam.paletteNum = IndexOfSpritePaletteTag(gTrainerFrontPicPaletteTable[gender].tag); - gSprites[gBankSpriteIds[gActiveBattler]].data[5] = gSprites[gBankSpriteIds[gActiveBattler]].oam.tileNum; - gSprites[gBankSpriteIds[gActiveBattler]].oam.tileNum = GetSpriteTileStartByTag(gTrainerFrontPicTable[gender].tag); - gSprites[gBankSpriteIds[gActiveBattler]].oam.affineParam = gender; - gSprites[gBankSpriteIds[gActiveBattler]].callback = sub_80313A0; - gBattleBankFunc[gActiveBattler] = sub_803757C; + gSprites[gBattlerSpriteIds[gActiveBattler]].pos2.x = -240; + gSprites[gBattlerSpriteIds[gActiveBattler]].data[0] = 2; + gSprites[gBattlerSpriteIds[gActiveBattler]].oam.paletteNum = IndexOfSpritePaletteTag(gTrainerFrontPicPaletteTable[gender].tag); + gSprites[gBattlerSpriteIds[gActiveBattler]].data[5] = gSprites[gBattlerSpriteIds[gActiveBattler]].oam.tileNum; + gSprites[gBattlerSpriteIds[gActiveBattler]].oam.tileNum = GetSpriteTileStartByTag(gTrainerFrontPicTable[gender].tag); + gSprites[gBattlerSpriteIds[gActiveBattler]].oam.affineParam = gender; + gSprites[gBattlerSpriteIds[gActiveBattler]].callback = sub_80313A0; + gBattlerControllerFuncs[gActiveBattler] = sub_803757C; } void LinkOpponentHandleTrainerSlide(void) @@ -1276,13 +1276,13 @@ void LinkOpponentHandleTrainerSlide(void) void LinkOpponentHandleTrainerSlideBack(void) { - oamt_add_pos2_onto_pos1(&gSprites[gBankSpriteIds[gActiveBattler]]); - gSprites[gBankSpriteIds[gActiveBattler]].data[0] = 35; - gSprites[gBankSpriteIds[gActiveBattler]].data[2] = 280; - gSprites[gBankSpriteIds[gActiveBattler]].data[4] = gSprites[gBankSpriteIds[gActiveBattler]].pos1.y; - gSprites[gBankSpriteIds[gActiveBattler]].callback = StartAnimLinearTranslation; - StoreSpriteCallbackInData(&gSprites[gBankSpriteIds[gActiveBattler]], SpriteCallbackDummy); - gBattleBankFunc[gActiveBattler] = sub_80375B4; + oamt_add_pos2_onto_pos1(&gSprites[gBattlerSpriteIds[gActiveBattler]]); + gSprites[gBattlerSpriteIds[gActiveBattler]].data[0] = 35; + gSprites[gBattlerSpriteIds[gActiveBattler]].data[2] = 280; + gSprites[gBattlerSpriteIds[gActiveBattler]].data[4] = gSprites[gBattlerSpriteIds[gActiveBattler]].pos1.y; + gSprites[gBattlerSpriteIds[gActiveBattler]].callback = StartAnimLinearTranslation; + StoreSpriteCallbackInData(&gSprites[gBattlerSpriteIds[gActiveBattler]], SpriteCallbackDummy); + gBattlerControllerFuncs[gActiveBattler] = sub_80375B4; } void LinkOpponentHandlecmd10(void) @@ -1297,8 +1297,8 @@ void LinkOpponentHandlecmd10(void) { ewram17810[gActiveBattler].unk4 = 0; PlaySE12WithPanning(SE_POKE_DEAD, 63); - gSprites[gBankSpriteIds[gActiveBattler]].callback = sub_8010384; - gBattleBankFunc[gActiveBattler] = sub_8037B78; + gSprites[gBattlerSpriteIds[gActiveBattler]].callback = sub_8010384; + gBattlerControllerFuncs[gActiveBattler] = sub_8037B78; } } @@ -1342,15 +1342,15 @@ void LinkOpponentHandleMoveAnimation(void) gAnimDisableStructPtr = (struct DisableStruct *)&gBattleBufferA[gActiveBattler][16]; gTransformedPersonalities[gActiveBattler] = gAnimDisableStructPtr->transformedMonPersonality; - // Dead code. sub_8031720 always returns 0. - if (sub_8031720(r0, gAnimMoveTurn) != 0) + // Dead code. IsMoveWithoutAnimation always returns 0. + if (IsMoveWithoutAnimation(r0, gAnimMoveTurn) != 0) { LinkOpponentBufferExecCompleted(); } else { ewram17810[gActiveBattler].unk4 = 0; - gBattleBankFunc[gActiveBattler] = sub_8039B64; + gBattlerControllerFuncs[gActiveBattler] = sub_8039B64; } } } @@ -1412,7 +1412,7 @@ void LinkOpponentHandlePrintString(void) gBattle_BG0_Y = 0; BufferStringBattle(*(u16 *)&gBattleBufferA[gActiveBattler][2]); Text_InitWindow8002EB0(&gUnknown_03004210, gDisplayedStringBattle, 144, 2, 15); - gBattleBankFunc[gActiveBattler] = sub_8037C2C; + gBattlerControllerFuncs[gActiveBattler] = sub_8037C2C; } void LinkOpponentHandlePrintStringPlayerOnly(void) @@ -1461,15 +1461,15 @@ void LinkOpponentHandleHealthBarUpdate(void) u32 maxHP = GetMonData(&gEnemyParty[gBattlerPartyIndexes[gActiveBattler]], MON_DATA_MAX_HP); u32 hp = GetMonData(&gEnemyParty[gBattlerPartyIndexes[gActiveBattler]], MON_DATA_HP); - sub_8043D84(gActiveBattler, gHealthboxIDs[gActiveBattler], maxHP, hp, r7); + sub_8043D84(gActiveBattler, gHealthboxSpriteIds[gActiveBattler], maxHP, hp, r7); } else { u32 maxHP = GetMonData(&gEnemyParty[gBattlerPartyIndexes[gActiveBattler]], MON_DATA_MAX_HP); - sub_8043D84(gActiveBattler, gHealthboxIDs[gActiveBattler], maxHP, 0, r7); + sub_8043D84(gActiveBattler, gHealthboxSpriteIds[gActiveBattler], maxHP, 0, r7); } - gBattleBankFunc[gActiveBattler] = sub_8037B24; + gBattlerControllerFuncs[gActiveBattler] = sub_8037B24; } void LinkOpponentHandleExpBarUpdate(void) @@ -1481,9 +1481,9 @@ void LinkOpponentHandleStatusIconUpdate(void) { if (mplay_80342A4(gActiveBattler) == 0) { - sub_8045A5C(gHealthboxIDs[gActiveBattler], &gEnemyParty[gBattlerPartyIndexes[gActiveBattler]], 9); + sub_8045A5C(gHealthboxSpriteIds[gActiveBattler], &gEnemyParty[gBattlerPartyIndexes[gActiveBattler]], 9); ewram17810[gActiveBattler].unk0_4 = 0; - gBattleBankFunc[gActiveBattler] = sub_8037FAC; + gBattlerControllerFuncs[gActiveBattler] = sub_8037FAC; } } @@ -1497,7 +1497,7 @@ void LinkOpponentHandleStatusAnimation(void) | (gBattleBufferA[gActiveBattler][3] << 8) | (gBattleBufferA[gActiveBattler][4] << 16) | (gBattleBufferA[gActiveBattler][5] << 24)); - gBattleBankFunc[gActiveBattler] = sub_8037FAC; + gBattlerControllerFuncs[gActiveBattler] = sub_8037FAC; } } @@ -1572,16 +1572,16 @@ void LinkOpponentHandlecmd40(void) void LinkOpponentHandleHitAnimation(void) { - if (gSprites[gBankSpriteIds[gActiveBattler]].invisible == TRUE) + if (gSprites[gBattlerSpriteIds[gActiveBattler]].invisible == TRUE) { LinkOpponentBufferExecCompleted(); } else { gDoingBattleAnim = TRUE; - gSprites[gBankSpriteIds[gActiveBattler]].data[1] = 0; + gSprites[gBattlerSpriteIds[gActiveBattler]].data[1] = 0; sub_8047858(gActiveBattler); - gBattleBankFunc[gActiveBattler] = dp01t_0F_4_move_anim; + gBattlerControllerFuncs[gActiveBattler] = dp01t_0F_4_move_anim; } } @@ -1627,18 +1627,18 @@ void LinkOpponentHandleTrainerBallThrow(void) { u8 taskId; - oamt_add_pos2_onto_pos1(&gSprites[gBankSpriteIds[gActiveBattler]]); - gSprites[gBankSpriteIds[gActiveBattler]].data[0] = 35; - gSprites[gBankSpriteIds[gActiveBattler]].data[2] = 280; - gSprites[gBankSpriteIds[gActiveBattler]].data[4] = gSprites[gBankSpriteIds[gActiveBattler]].pos1.y; - gSprites[gBankSpriteIds[gActiveBattler]].callback = StartAnimLinearTranslation; - StoreSpriteCallbackInData(&gSprites[gBankSpriteIds[gActiveBattler]], sub_803A3A8); + oamt_add_pos2_onto_pos1(&gSprites[gBattlerSpriteIds[gActiveBattler]]); + gSprites[gBattlerSpriteIds[gActiveBattler]].data[0] = 35; + gSprites[gBattlerSpriteIds[gActiveBattler]].data[2] = 280; + gSprites[gBattlerSpriteIds[gActiveBattler]].data[4] = gSprites[gBattlerSpriteIds[gActiveBattler]].pos1.y; + gSprites[gBattlerSpriteIds[gActiveBattler]].callback = StartAnimLinearTranslation; + StoreSpriteCallbackInData(&gSprites[gBattlerSpriteIds[gActiveBattler]], sub_803A3A8); taskId = CreateTask(sub_803A2C4, 5); gTasks[taskId].data[0] = gActiveBattler; if (ewram17810[gActiveBattler].unk0_0) gTasks[gUnknown_02024E68[gActiveBattler]].func = sub_8044CA0; ewram17840.unk9_0 = 1; - gBattleBankFunc[gActiveBattler] = nullsub_47; + gBattlerControllerFuncs[gActiveBattler] = nullsub_47; } void sub_803A2C4(u8 taskId) @@ -1661,7 +1661,7 @@ void sub_803A2C4(u8 taskId) sub_8039430(gActiveBattler, 0); gActiveBattler ^= 2; } - gBattleBankFunc[gActiveBattler] = sub_8037840; + gBattlerControllerFuncs[gActiveBattler] = sub_8037840; gActiveBattler = r9; DestroyTask(taskId); } @@ -1703,7 +1703,7 @@ void LinkOpponentHandlecmd48(void) ewram17810[gActiveBattler].unk5 = 0; if (gBattleBufferA[gActiveBattler][2] != 0) ewram17810[gActiveBattler].unk5 = 0x5D; - gBattleBankFunc[gActiveBattler] = sub_803A4E0; + gBattlerControllerFuncs[gActiveBattler] = sub_803A4E0; } void sub_803A4E0(void) @@ -1731,7 +1731,7 @@ void LinkOpponentHandleSpriteInvisibility(void) { if (IsBankSpritePresent(gActiveBattler) != 0) { - gSprites[gBankSpriteIds[gActiveBattler]].invisible = gBattleBufferA[gActiveBattler][1]; + gSprites[gBattlerSpriteIds[gActiveBattler]].invisible = gBattleBufferA[gActiveBattler][1]; sub_8031F88(gActiveBattler); } LinkOpponentBufferExecCompleted(); @@ -1747,7 +1747,7 @@ void LinkOpponentHandleBattleAnimation(void) if (move_anim_start_t3(gActiveBattler, gActiveBattler, gActiveBattler, r3, r4) != 0) LinkOpponentBufferExecCompleted(); else - gBattleBankFunc[gActiveBattler] = sub_8037FD8; + gBattlerControllerFuncs[gActiveBattler] = sub_8037FD8; } } @@ -1770,7 +1770,7 @@ void LinkOpponentHandlecmd55(void) FadeOutMapMusic(5); BeginFastPaletteFade(3); LinkOpponentBufferExecCompleted(); - gBattleBankFunc[gActiveBattler] = sub_8037F34; + gBattlerControllerFuncs[gActiveBattler] = sub_8037F34; } void LinkOpponentHandlecmd56(void) diff --git a/src/battle/battle_controller_linkpartner.c b/src/battle_controller_link_partner.c index 0db2f54b4..a5b24815f 100644 --- a/src/battle/battle_controller_linkpartner.c +++ b/src/battle_controller_link_partner.c @@ -1,11 +1,11 @@ #include "global.h" #include "battle.h" #include "battle_anim.h" -#include "battle_anim_813F0F4.h" +#include "battle_anim_special.h" #include "battle_interface.h" #include "data2.h" #include "battle_811DA74.h" -#include "battle_anim_813F0F4.h" +#include "battle_anim_special.h" #include "link.h" #include "m4a.h" #include "main.h" @@ -34,9 +34,9 @@ extern u16 gBattleTypeFlags; extern u8 gDisplayedStringBattle[]; extern u8 gBattleBufferA[][0x200]; extern u8 gActiveBattler; -extern u32 gBattleExecBuffer; +extern u32 gBattleControllerExecFlags; extern u16 gBattlerPartyIndexes[]; -extern u8 gBankSpriteIds[]; +extern u8 gBattlerSpriteIds[]; extern u8 gBattleOutcome; extern u16 gUnknown_02024DE8; extern u8 gUnknown_02024E68[]; @@ -50,8 +50,8 @@ extern u16 gWeatherMoveAnim; extern u8 gAnimMoveTurn; extern struct Window gUnknown_03004210; extern MainCallback gPreBattleCallback1; -extern void (*gBattleBankFunc[])(void); -extern u8 gHealthboxIDs[]; +extern void (*gBattlerControllerFuncs[])(void); +extern u8 gHealthboxSpriteIds[]; extern u8 gUnknown_0300434C[]; extern u8 gBattleMonForms[]; extern u8 gAnimScriptActive; @@ -70,7 +70,7 @@ extern void sub_8031F24(void); extern void sub_80326EC(); extern void DoMoveAnim(); extern void sub_80324BC(); -extern u8 sub_8031720(); +extern u8 IsMoveWithoutAnimation(); extern u8 mplay_80342A4(); extern void oamt_add_pos2_onto_pos1(); extern void StoreSpriteCallbackInData(); @@ -241,12 +241,12 @@ void nullsub_74(void) void SetBankFuncToLinkPartnerBufferRunCommand(void) { - gBattleBankFunc[gActiveBattler] = LinkPartnerBufferRunCommand; + gBattlerControllerFuncs[gActiveBattler] = LinkPartnerBufferRunCommand; } void LinkPartnerBufferRunCommand(void) { - if (gBattleExecBuffer & gBitTable[gActiveBattler]) + if (gBattleControllerExecFlags & gBitTable[gActiveBattler]) { if (gBattleBufferA[gActiveBattler][0] <= 0x38) gLinkPartnerBufferCommands[gBattleBufferA[gActiveBattler][0]](); @@ -257,17 +257,17 @@ void LinkPartnerBufferRunCommand(void) void sub_811DAE4(void) { - if (gSprites[gBankSpriteIds[gActiveBattler]].callback == SpriteCallbackDummy) + if (gSprites[gBattlerSpriteIds[gActiveBattler]].callback == SpriteCallbackDummy) LinkPartnerBufferExecCompleted(); } void sub_811DB1C(void) { - if (gSprites[gBankSpriteIds[gActiveBattler]].callback == SpriteCallbackDummy) + if (gSprites[gBattlerSpriteIds[gActiveBattler]].callback == SpriteCallbackDummy) { nullsub_10(0); - FreeSpriteOamMatrix(&gSprites[gBankSpriteIds[gActiveBattler]]); - DestroySprite(&gSprites[gBankSpriteIds[gActiveBattler]]); + FreeSpriteOamMatrix(&gSprites[gBattlerSpriteIds[gActiveBattler]]); + DestroySprite(&gSprites[gBattlerSpriteIds[gActiveBattler]]); LinkPartnerBufferExecCompleted(); } } @@ -287,13 +287,13 @@ void sub_811DBC0(void) if (!IsDoubleBattle() || (IsDoubleBattle() && (gBattleTypeFlags & 0x40))) { - if (gSprites[gHealthboxIDs[gActiveBattler]].callback == SpriteCallbackDummy) + if (gSprites[gHealthboxSpriteIds[gActiveBattler]].callback == SpriteCallbackDummy) r6 = TRUE; } else { - if (gSprites[gHealthboxIDs[gActiveBattler]].callback == SpriteCallbackDummy - && gSprites[gHealthboxIDs[gActiveBattler ^ 2]].callback == SpriteCallbackDummy) + if (gSprites[gHealthboxSpriteIds[gActiveBattler]].callback == SpriteCallbackDummy + && gSprites[gHealthboxSpriteIds[gActiveBattler ^ 2]].callback == SpriteCallbackDummy) r6 = TRUE; } if (IsCryPlayingOrClearCrySongs()) @@ -301,7 +301,7 @@ void sub_811DBC0(void) if (r6) { ewram17810[gActiveBattler].unk9 = 3; - gBattleBankFunc[gActiveBattler] = sub_811DB84; + gBattlerControllerFuncs[gActiveBattler] = sub_811DB84; } } @@ -319,24 +319,24 @@ void sub_811DCA0(void) if (IsDoubleBattle() && !(gBattleTypeFlags & 0x40)) { DestroySprite(&gSprites[gUnknown_0300434C[gActiveBattler ^ 2]]); - sub_8045A5C(gHealthboxIDs[gActiveBattler ^ 2], &gPlayerParty[gBattlerPartyIndexes[gActiveBattler ^ 2]], 0); + sub_8045A5C(gHealthboxSpriteIds[gActiveBattler ^ 2], &gPlayerParty[gBattlerPartyIndexes[gActiveBattler ^ 2]], 0); sub_804777C(gActiveBattler ^ 2); - sub_8043DFC(gHealthboxIDs[gActiveBattler ^ 2]); + sub_8043DFC(gHealthboxSpriteIds[gActiveBattler ^ 2]); } DestroySprite(&gSprites[gUnknown_0300434C[gActiveBattler]]); - sub_8045A5C(gHealthboxIDs[gActiveBattler], &gPlayerParty[gBattlerPartyIndexes[gActiveBattler]], 0); + sub_8045A5C(gHealthboxSpriteIds[gActiveBattler], &gPlayerParty[gBattlerPartyIndexes[gActiveBattler]], 0); sub_804777C(gActiveBattler); - sub_8043DFC(gHealthboxIDs[gActiveBattler]); + sub_8043DFC(gHealthboxSpriteIds[gActiveBattler]); (s8)ewram17810[4].unk9 &= ~1; - gBattleBankFunc[gActiveBattler] = sub_811DBC0; + gBattlerControllerFuncs[gActiveBattler] = sub_811DBC0; } } } void sub_811DDE8(void) { - if (gSprites[gBankSpriteIds[gActiveBattler]].animEnded - && gSprites[gBankSpriteIds[gActiveBattler]].pos2.x == 0) + if (gSprites[gBattlerSpriteIds[gActiveBattler]].animEnded + && gSprites[gBattlerSpriteIds[gActiveBattler]].pos2.x == 0) LinkPartnerBufferExecCompleted(); } @@ -344,11 +344,11 @@ void bx_t3_healthbar_update(void) { s16 r4; - r4 = sub_8045C78(gActiveBattler, gHealthboxIDs[gActiveBattler], 0, 0); - sub_8043DFC(gHealthboxIDs[gActiveBattler]); + r4 = sub_8045C78(gActiveBattler, gHealthboxSpriteIds[gActiveBattler], 0, 0); + sub_8043DFC(gHealthboxSpriteIds[gActiveBattler]); if (r4 != -1) { - sub_80440EC(gHealthboxIDs[gActiveBattler], r4, 0); + sub_80440EC(gHealthboxSpriteIds[gActiveBattler], r4, 0); } else { @@ -359,12 +359,12 @@ void bx_t3_healthbar_update(void) void sub_811DE98(void) { - if (gSprites[gBankSpriteIds[gActiveBattler]].pos1.y + gSprites[gBankSpriteIds[gActiveBattler]].pos2.y > 160) + if (gSprites[gBattlerSpriteIds[gActiveBattler]].pos1.y + gSprites[gBattlerSpriteIds[gActiveBattler]].pos2.y > 160) { nullsub_9(GetMonData(&gPlayerParty[gBattlerPartyIndexes[gActiveBattler]], MON_DATA_SPECIES)); - FreeOamMatrix(gSprites[gBankSpriteIds[gActiveBattler]].oam.matrixNum); - DestroySprite(&gSprites[gBankSpriteIds[gActiveBattler]]); - sub_8043DB0(gHealthboxIDs[gActiveBattler]); + FreeOamMatrix(gSprites[gBattlerSpriteIds[gActiveBattler]].oam.matrixNum); + DestroySprite(&gSprites[gBattlerSpriteIds[gActiveBattler]]); + sub_8043DB0(gHealthboxSpriteIds[gActiveBattler]); LinkPartnerBufferExecCompleted(); } } @@ -373,9 +373,9 @@ void sub_811DF34(void) { if (!ewram17810[gActiveBattler].unk0_6) { - FreeSpriteOamMatrix(&gSprites[gBankSpriteIds[gActiveBattler]]); - DestroySprite(&gSprites[gBankSpriteIds[gActiveBattler]]); - sub_8043DB0(gHealthboxIDs[gActiveBattler]); + FreeSpriteOamMatrix(&gSprites[gBattlerSpriteIds[gActiveBattler]]); + DestroySprite(&gSprites[gBattlerSpriteIds[gActiveBattler]]); + sub_8043DB0(gHealthboxSpriteIds[gActiveBattler]); LinkPartnerBufferExecCompleted(); } } @@ -388,7 +388,7 @@ void sub_811DFA0(void) void bx_blink_t3(void) { - u8 spriteId = gBankSpriteIds[gActiveBattler]; + u8 spriteId = gBattlerSpriteIds[gActiveBattler]; if (gSprites[spriteId].data[1] == 32) { gSprites[spriteId].data[1] = 0; @@ -408,11 +408,11 @@ void bx_blink_t3(void) void sub_811E034(void) { - if (gSprites[gHealthboxIDs[gActiveBattler]].callback == SpriteCallbackDummy) + if (gSprites[gHealthboxSpriteIds[gActiveBattler]].callback == SpriteCallbackDummy) { if (ewram17800[gActiveBattler].substituteSprite) move_anim_start_t4(gActiveBattler, gActiveBattler, gActiveBattler, 6); - gBattleBankFunc[gActiveBattler] = sub_811E0A0; + gBattlerControllerFuncs[gActiveBattler] = sub_811E0A0; } } @@ -432,12 +432,12 @@ void sub_811E0CC(void) FreeSpritePaletteByTag(0x27F9); CreateTask(c3_0802FDF4, 10); HandleLowHpMusicChange(&gPlayerParty[gBattlerPartyIndexes[gActiveBattler]], gActiveBattler); - StartSpriteAnim(&gSprites[gBankSpriteIds[gActiveBattler]], 0); - sub_8045A5C(gHealthboxIDs[gActiveBattler], &gPlayerParty[gBattlerPartyIndexes[gActiveBattler]], 0); + StartSpriteAnim(&gSprites[gBattlerSpriteIds[gActiveBattler]], 0); + sub_8045A5C(gHealthboxSpriteIds[gActiveBattler], &gPlayerParty[gBattlerPartyIndexes[gActiveBattler]], 0); sub_804777C(gActiveBattler); - sub_8043DFC(gHealthboxIDs[gActiveBattler]); + sub_8043DFC(gHealthboxSpriteIds[gActiveBattler]); sub_8031F88(gActiveBattler); - gBattleBankFunc[gActiveBattler] = sub_811E034; + gBattlerControllerFuncs[gActiveBattler] = sub_811E034; } } @@ -449,7 +449,7 @@ void sub_811E1BC(void) && !ewram17810[gActiveBattler].unk0_3) { DestroySprite(&gSprites[gUnknown_0300434C[gActiveBattler]]); - gBattleBankFunc[gActiveBattler] = sub_811E0CC; + gBattlerControllerFuncs[gActiveBattler] = sub_811E0CC; } } @@ -471,7 +471,7 @@ void sub_811E29C(void) if (gBattleTypeFlags & 2) { sub_800832C(); - gBattleBankFunc[gActiveBattler] = sub_811E258; + gBattlerControllerFuncs[gActiveBattler] = sub_811E258; } else { @@ -487,7 +487,7 @@ void LinkPartnerBufferExecCompleted(void) { u8 multiplayerId; - gBattleBankFunc[gActiveBattler] = LinkPartnerBufferRunCommand; + gBattlerControllerFuncs[gActiveBattler] = LinkPartnerBufferRunCommand; if (gBattleTypeFlags & 2) { multiplayerId = GetMultiplayerId(); @@ -496,7 +496,7 @@ void LinkPartnerBufferExecCompleted(void) } else { - gBattleExecBuffer &= ~gBitTable[gActiveBattler]; + gBattleControllerExecFlags &= ~gBitTable[gActiveBattler]; } } @@ -533,7 +533,7 @@ void LinkPartnerHandleGetAttributes(void) r4 >>= 1; } } - Emitcmd29(1, r6, unk); + BtlController_EmitDataTransfer(1, r6, unk); LinkPartnerBufferExecCompleted(); } @@ -1101,16 +1101,16 @@ void LinkPartnerHandleLoadPokeSprite(void) GetMonSpriteTemplate_803C56C( GetMonData(&gPlayerParty[gBattlerPartyIndexes[gActiveBattler]], MON_DATA_SPECIES), GetBattlerPosition(gActiveBattler)); - gBankSpriteIds[gActiveBattler] = CreateSprite( + gBattlerSpriteIds[gActiveBattler] = CreateSprite( &gUnknown_02024E8C, GetBattlerSpriteCoord(gActiveBattler, 2), sub_8077F68(gActiveBattler), GetBattlerSubpriority(gActiveBattler)); - gSprites[gBankSpriteIds[gActiveBattler]].pos2.x = -240; - gSprites[gBankSpriteIds[gActiveBattler]].data[0] = gActiveBattler; - gSprites[gBankSpriteIds[gActiveBattler]].oam.paletteNum = gActiveBattler; - StartSpriteAnim(&gSprites[gBankSpriteIds[gActiveBattler]], gBattleMonForms[gActiveBattler]); - gBattleBankFunc[gActiveBattler] = sub_811DDE8; + gSprites[gBattlerSpriteIds[gActiveBattler]].pos2.x = -240; + gSprites[gBattlerSpriteIds[gActiveBattler]].data[0] = gActiveBattler; + gSprites[gBattlerSpriteIds[gActiveBattler]].oam.paletteNum = gActiveBattler; + StartSpriteAnim(&gSprites[gBattlerSpriteIds[gActiveBattler]], gBattleMonForms[gActiveBattler]); + gBattlerControllerFuncs[gActiveBattler] = sub_811DDE8; } void LinkPartnerHandleSendOutPoke(void) @@ -1119,7 +1119,7 @@ void LinkPartnerHandleSendOutPoke(void) gBattlerPartyIndexes[gActiveBattler] = gBattleBufferA[gActiveBattler][1]; BattleLoadPlayerMonSprite(&gPlayerParty[gBattlerPartyIndexes[gActiveBattler]], gActiveBattler); sub_811F864(gActiveBattler, gBattleBufferA[gActiveBattler][2]); - gBattleBankFunc[gActiveBattler] = sub_811E1BC; + gBattlerControllerFuncs[gActiveBattler] = sub_811E1BC; } void sub_811F864(u8 a, u8 b) @@ -1131,18 +1131,18 @@ void sub_811F864(u8 a, u8 b) species = GetMonData(&gPlayerParty[gBattlerPartyIndexes[a]], MON_DATA_SPECIES); gUnknown_0300434C[a] = CreateInvisibleSpriteWithCallback(sub_80312F0); GetMonSpriteTemplate_803C56C(species, GetBattlerPosition(a)); - gBankSpriteIds[a] = CreateSprite( + gBattlerSpriteIds[a] = CreateSprite( &gUnknown_02024E8C, GetBattlerSpriteCoord(a, 2), sub_8077F68(a), GetBattlerSubpriority(a)); - gSprites[gUnknown_0300434C[a]].data[1] = gBankSpriteIds[a]; - gSprites[gBankSpriteIds[a]].data[0] = a; - gSprites[gBankSpriteIds[a]].data[2] = species; - gSprites[gBankSpriteIds[a]].oam.paletteNum = a; - StartSpriteAnim(&gSprites[gBankSpriteIds[a]], gBattleMonForms[a]); - gSprites[gBankSpriteIds[a]].invisible = TRUE; - gSprites[gBankSpriteIds[a]].callback = SpriteCallbackDummy; + gSprites[gUnknown_0300434C[a]].data[1] = gBattlerSpriteIds[a]; + gSprites[gBattlerSpriteIds[a]].data[0] = a; + gSprites[gBattlerSpriteIds[a]].data[2] = species; + gSprites[gBattlerSpriteIds[a]].oam.paletteNum = a; + StartSpriteAnim(&gSprites[gBattlerSpriteIds[a]], gBattleMonForms[a]); + gSprites[gBattlerSpriteIds[a]].invisible = TRUE; + gSprites[gBattlerSpriteIds[a]].callback = SpriteCallbackDummy; gSprites[gUnknown_0300434C[a]].data[0] = StartSendOutMonAnimation(0, 0xFF); } @@ -1151,13 +1151,13 @@ void LinkPartnerHandleReturnPokeToBall(void) if (gBattleBufferA[gActiveBattler][1] == 0) { ewram17810[gActiveBattler].unk4 = 0; - gBattleBankFunc[gActiveBattler] = sub_811FA5C; + gBattlerControllerFuncs[gActiveBattler] = sub_811FA5C; } else { - FreeSpriteOamMatrix(&gSprites[gBankSpriteIds[gActiveBattler]]); - DestroySprite(&gSprites[gBankSpriteIds[gActiveBattler]]); - sub_8043DB0(gHealthboxIDs[gActiveBattler]); + FreeSpriteOamMatrix(&gSprites[gBattlerSpriteIds[gActiveBattler]]); + DestroySprite(&gSprites[gBattlerSpriteIds[gActiveBattler]]); + sub_8043DB0(gHealthboxSpriteIds[gActiveBattler]); LinkPartnerBufferExecCompleted(); } } @@ -1176,7 +1176,7 @@ void sub_811FA5C(void) { ewram17810[gActiveBattler].unk4 = 0; move_anim_start_t4(gActiveBattler, gActiveBattler, gActiveBattler, 1); - gBattleBankFunc[gActiveBattler] = sub_811DF34; + gBattlerControllerFuncs[gActiveBattler] = sub_811DF34; } break; } @@ -1202,15 +1202,15 @@ void LinkPartnerHandleTrainerThrow(void) } LoadPlayerTrainerBankSprite(gender, gActiveBattler); GetMonSpriteTemplate_803C5A0(gender, GetBattlerPosition(gActiveBattler)); - gBankSpriteIds[gActiveBattler] = CreateSprite( + gBattlerSpriteIds[gActiveBattler] = CreateSprite( &gUnknown_02024E8C, 80 + xOffset, 80 + 4 * (8 - gTrainerBackPicCoords[gender].coords), GetBattlerSubpriority(gActiveBattler)); - gSprites[gBankSpriteIds[gActiveBattler]].oam.paletteNum = gActiveBattler; - gSprites[gBankSpriteIds[gActiveBattler]].pos2.x = 240; - gSprites[gBankSpriteIds[gActiveBattler]].data[0] = -2; - gSprites[gBankSpriteIds[gActiveBattler]].callback = sub_80313A0; - gBattleBankFunc[gActiveBattler] = sub_811DAE4; + gSprites[gBattlerSpriteIds[gActiveBattler]].oam.paletteNum = gActiveBattler; + gSprites[gBattlerSpriteIds[gActiveBattler]].pos2.x = 240; + gSprites[gBattlerSpriteIds[gActiveBattler]].data[0] = -2; + gSprites[gBattlerSpriteIds[gActiveBattler]].callback = sub_80313A0; + gBattlerControllerFuncs[gActiveBattler] = sub_811DAE4; } void LinkPartnerHandleTrainerSlide(void) @@ -1220,13 +1220,13 @@ void LinkPartnerHandleTrainerSlide(void) void LinkPartnerHandleTrainerSlideBack(void) { - oamt_add_pos2_onto_pos1(&gSprites[gBankSpriteIds[gActiveBattler]]); - gSprites[gBankSpriteIds[gActiveBattler]].data[0] = 35; - gSprites[gBankSpriteIds[gActiveBattler]].data[2] = -40; - gSprites[gBankSpriteIds[gActiveBattler]].data[4] = gSprites[gBankSpriteIds[gActiveBattler]].pos1.y; - gSprites[gBankSpriteIds[gActiveBattler]].callback = StartAnimLinearTranslation; - StoreSpriteCallbackInData(&gSprites[gBankSpriteIds[gActiveBattler]], SpriteCallbackDummy); - gBattleBankFunc[gActiveBattler] = sub_811DB1C; + oamt_add_pos2_onto_pos1(&gSprites[gBattlerSpriteIds[gActiveBattler]]); + gSprites[gBattlerSpriteIds[gActiveBattler]].data[0] = 35; + gSprites[gBattlerSpriteIds[gActiveBattler]].data[2] = -40; + gSprites[gBattlerSpriteIds[gActiveBattler]].data[4] = gSprites[gBattlerSpriteIds[gActiveBattler]].pos1.y; + gSprites[gBattlerSpriteIds[gActiveBattler]].callback = StartAnimLinearTranslation; + StoreSpriteCallbackInData(&gSprites[gBattlerSpriteIds[gActiveBattler]], SpriteCallbackDummy); + gBattlerControllerFuncs[gActiveBattler] = sub_811DB1C; } void LinkPartnerHandlecmd10(void) @@ -1242,10 +1242,10 @@ void LinkPartnerHandlecmd10(void) ewram17810[gActiveBattler].unk4 = 0; HandleLowHpMusicChange(&gPlayerParty[gBattlerPartyIndexes[gActiveBattler]], gActiveBattler); PlaySE12WithPanning(SE_POKE_DEAD, -64); - gSprites[gBankSpriteIds[gActiveBattler]].data[1] = 0; - gSprites[gBankSpriteIds[gActiveBattler]].data[2] = 5; - gSprites[gBankSpriteIds[gActiveBattler]].callback = sub_80105EC; - gBattleBankFunc[gActiveBattler] = sub_811DE98; + gSprites[gBattlerSpriteIds[gActiveBattler]].data[1] = 0; + gSprites[gBattlerSpriteIds[gActiveBattler]].data[2] = 5; + gSprites[gBattlerSpriteIds[gActiveBattler]].callback = sub_80105EC; + gBattlerControllerFuncs[gActiveBattler] = sub_811DE98; } } @@ -1289,12 +1289,12 @@ void LinkPartnerHandleMoveAnimation(void) gAnimDisableStructPtr = (struct DisableStruct *)&gBattleBufferA[gActiveBattler][16]; gTransformedPersonalities[gActiveBattler] = gAnimDisableStructPtr->transformedMonPersonality; - if (sub_8031720(r0, gAnimMoveTurn) != 0) + if (IsMoveWithoutAnimation(r0, gAnimMoveTurn) != 0) LinkPartnerBufferExecCompleted(); else { ewram17810[gActiveBattler].unk4 = 0; - gBattleBankFunc[gActiveBattler] = sub_811FF30; + gBattlerControllerFuncs[gActiveBattler] = sub_811FF30; } } } @@ -1356,7 +1356,7 @@ void LinkPartnerHandlePrintString(void) gBattle_BG0_Y = 0; BufferStringBattle(*(u16 *)&gBattleBufferA[gActiveBattler][2]); Text_InitWindow8002EB0(&gUnknown_03004210, gDisplayedStringBattle, 144, 2, 15); - gBattleBankFunc[gActiveBattler] = sub_811DFA0; + gBattlerControllerFuncs[gActiveBattler] = sub_811DFA0; } void LinkPartnerHandlePrintStringPlayerOnly(void) @@ -1405,15 +1405,15 @@ void LinkPartnerHandleHealthBarUpdate(void) u32 maxHP = GetMonData(&gPlayerParty[gBattlerPartyIndexes[gActiveBattler]], MON_DATA_MAX_HP); u32 hp = GetMonData(&gPlayerParty[gBattlerPartyIndexes[gActiveBattler]], MON_DATA_HP); - sub_8043D84(gActiveBattler, gHealthboxIDs[gActiveBattler], maxHP, hp, r7); + sub_8043D84(gActiveBattler, gHealthboxSpriteIds[gActiveBattler], maxHP, hp, r7); } else { u32 maxHP = GetMonData(&gPlayerParty[gBattlerPartyIndexes[gActiveBattler]], MON_DATA_MAX_HP); - sub_8043D84(gActiveBattler, gHealthboxIDs[gActiveBattler], maxHP, 0, r7); + sub_8043D84(gActiveBattler, gHealthboxSpriteIds[gActiveBattler], maxHP, 0, r7); } - gBattleBankFunc[gActiveBattler] = bx_t3_healthbar_update; + gBattlerControllerFuncs[gActiveBattler] = bx_t3_healthbar_update; } void LinkPartnerHandleExpBarUpdate(void) @@ -1425,9 +1425,9 @@ void LinkPartnerHandleStatusIconUpdate(void) { if (mplay_80342A4(gActiveBattler) == 0) { - sub_8045A5C(gHealthboxIDs[gActiveBattler], &gPlayerParty[gBattlerPartyIndexes[gActiveBattler]], 9); + sub_8045A5C(gHealthboxSpriteIds[gActiveBattler], &gPlayerParty[gBattlerPartyIndexes[gActiveBattler]], 9); ewram17810[gActiveBattler].unk0_4 = 0; - gBattleBankFunc[gActiveBattler] = sub_811E38C; + gBattlerControllerFuncs[gActiveBattler] = sub_811E38C; } } @@ -1441,7 +1441,7 @@ void LinkPartnerHandleStatusAnimation(void) | (gBattleBufferA[gActiveBattler][3] << 8) | (gBattleBufferA[gActiveBattler][4] << 16) | (gBattleBufferA[gActiveBattler][5] << 24)); - gBattleBankFunc[gActiveBattler] = sub_811E38C; + gBattlerControllerFuncs[gActiveBattler] = sub_811E38C; } } @@ -1516,16 +1516,16 @@ void LinkPartnerHandlecmd40(void) void LinkPartnerHandleHitAnimation(void) { - if (gSprites[gBankSpriteIds[gActiveBattler]].invisible == TRUE) + if (gSprites[gBattlerSpriteIds[gActiveBattler]].invisible == TRUE) { LinkPartnerBufferExecCompleted(); } else { gDoingBattleAnim = TRUE; - gSprites[gBankSpriteIds[gActiveBattler]].data[1] = 0; + gSprites[gBattlerSpriteIds[gActiveBattler]].data[1] = 0; sub_8047858(gActiveBattler); - gBattleBankFunc[gActiveBattler] = bx_blink_t3; + gBattlerControllerFuncs[gActiveBattler] = bx_blink_t3; } } @@ -1572,25 +1572,25 @@ void LinkPartnerHandleTrainerBallThrow(void) u8 r4; u8 taskId; - oamt_add_pos2_onto_pos1(&gSprites[gBankSpriteIds[gActiveBattler]]); - gSprites[gBankSpriteIds[gActiveBattler]].data[0] = 50; - gSprites[gBankSpriteIds[gActiveBattler]].data[2] = -40; - gSprites[gBankSpriteIds[gActiveBattler]].data[4] = gSprites[gBankSpriteIds[gActiveBattler]].pos1.y; - gSprites[gBankSpriteIds[gActiveBattler]].callback = StartAnimLinearTranslation; - gSprites[gBankSpriteIds[gActiveBattler]].data[5] = gActiveBattler; - StoreSpriteCallbackInData(&gSprites[gBankSpriteIds[gActiveBattler]], sub_8030E38); - StartSpriteAnim(&gSprites[gBankSpriteIds[gActiveBattler]], 1); + oamt_add_pos2_onto_pos1(&gSprites[gBattlerSpriteIds[gActiveBattler]]); + gSprites[gBattlerSpriteIds[gActiveBattler]].data[0] = 50; + gSprites[gBattlerSpriteIds[gActiveBattler]].data[2] = -40; + gSprites[gBattlerSpriteIds[gActiveBattler]].data[4] = gSprites[gBattlerSpriteIds[gActiveBattler]].pos1.y; + gSprites[gBattlerSpriteIds[gActiveBattler]].callback = StartAnimLinearTranslation; + gSprites[gBattlerSpriteIds[gActiveBattler]].data[5] = gActiveBattler; + StoreSpriteCallbackInData(&gSprites[gBattlerSpriteIds[gActiveBattler]], sub_8030E38); + StartSpriteAnim(&gSprites[gBattlerSpriteIds[gActiveBattler]], 1); r4 = AllocSpritePalette(0xD6F9); LoadCompressedPalette( gTrainerBackPicPaletteTable[gLinkPlayers[sub_803FC34(gActiveBattler)].gender].data, 0x100 + r4 * 16, 0x20); - gSprites[gBankSpriteIds[gActiveBattler]].oam.paletteNum = r4; + gSprites[gBattlerSpriteIds[gActiveBattler]].oam.paletteNum = r4; taskId = CreateTask(sub_812071C, 5); gTasks[taskId].data[0] = gActiveBattler; if (ewram17810[gActiveBattler].unk0_0) gTasks[gUnknown_02024E68[gActiveBattler]].func = sub_8044CA0; ewram17840.unk9_0 = 1; - gBattleBankFunc[gActiveBattler] = nullsub_74; + gBattlerControllerFuncs[gActiveBattler] = nullsub_74; } void sub_812071C(u8 taskId) @@ -1620,7 +1620,7 @@ void sub_812071C(u8 taskId) sub_811F864(gActiveBattler, 0); gActiveBattler ^= 2; } - gBattleBankFunc[gActiveBattler] = sub_811DCA0; + gBattlerControllerFuncs[gActiveBattler] = sub_811DCA0; gActiveBattler = r9; DestroyTask(taskId); } @@ -1642,7 +1642,7 @@ void LinkPartnerHandlecmd48(void) ewram17810[gActiveBattler].unk5 = 0; if (gBattleBufferA[gActiveBattler][2] != 0) ewram17810[gActiveBattler].unk5 = 0x5D; - gBattleBankFunc[gActiveBattler] = sub_81208E0; + gBattlerControllerFuncs[gActiveBattler] = sub_81208E0; } void sub_81208E0(void) @@ -1670,7 +1670,7 @@ void LinkPartnerHandleSpriteInvisibility(void) { if (IsBankSpritePresent(gActiveBattler) != 0) { - gSprites[gBankSpriteIds[gActiveBattler]].invisible = gBattleBufferA[gActiveBattler][1]; + gSprites[gBattlerSpriteIds[gActiveBattler]].invisible = gBattleBufferA[gActiveBattler][1]; sub_8031F88(gActiveBattler); } LinkPartnerBufferExecCompleted(); @@ -1686,7 +1686,7 @@ void LinkPartnerHandleBattleAnimation(void) if (move_anim_start_t3(gActiveBattler, gActiveBattler, gActiveBattler, r3, r4) != 0) LinkPartnerBufferExecCompleted(); else - gBattleBankFunc[gActiveBattler] = sub_811E3B8; + gBattlerControllerFuncs[gActiveBattler] = sub_811E3B8; } } @@ -1706,7 +1706,7 @@ void LinkPartnerHandlecmd55(void) FadeOutMapMusic(5); BeginFastPaletteFade(3); LinkPartnerBufferExecCompleted(); - gBattleBankFunc[gActiveBattler] = sub_811E29C; + gBattlerControllerFuncs[gActiveBattler] = sub_811E29C; } void LinkPartnerHandlecmd56(void) diff --git a/src/battle/battle_controller_opponent.c b/src/battle_controller_opponent.c index 15e077e92..2faaf5fea 100644 --- a/src/battle/battle_controller_opponent.c +++ b/src/battle_controller_opponent.c @@ -1,11 +1,12 @@ #include "global.h" #include "battle.h" +#include "battle_ai_script_commands.h" #include "battle_ai_switch_items.h" #include "battle_anim.h" #include "battle_interface.h" #include "data2.h" #include "battle_811DA74.h" -#include "battle_anim_813F0F4.h" +#include "battle_anim_special.h" #include "battle_tower.h" #include "link.h" #include "m4a.h" @@ -13,6 +14,7 @@ #include "palette.h" #include "pokeball.h" #include "pokemon.h" +#include "random.h" #include "rom3.h" #include "rom_8077ABC.h" #include "sound.h" @@ -35,12 +37,12 @@ extern u8 gUnknown_02023A14_50; extern u8 gActiveBattler; extern u8 gBattleBufferA[][0x200]; extern u16 gBattlerPartyIndexes[]; -extern u8 gBankSpriteIds[]; +extern u8 gBattlerSpriteIds[]; extern u8 gBattleMonForms[]; extern struct SpriteTemplate gUnknown_02024E8C; -extern void (*gBattleBankFunc[])(void); +extern void (*gBattlerControllerFuncs[])(void); extern u8 gUnknown_0300434C[]; -extern u8 gHealthboxIDs[]; +extern u8 gHealthboxSpriteIds[]; extern u16 gBattleTypeFlags; extern u16 gTrainerBattleOpponent; extern s32 gAnimMoveDmg; @@ -53,17 +55,17 @@ extern u8 gAnimScriptActive; extern void (*gAnimScriptCallback)(void); extern struct Window gUnknown_03004210; extern u8 gDisplayedStringBattle[]; -extern u8 gBankTarget; +extern u8 gBattlerTarget; extern u8 gAbsentBattlerFlags; extern bool8 gDoingBattleAnim; extern u16 gUnknown_02024DE8; extern u8 gUnknown_02024E68[]; extern MainCallback gPreBattleCallback1; extern void (*const gOpponentBufferCommands[])(void); -extern struct MusicPlayerInfo gMPlay_SE1; -extern struct MusicPlayerInfo gMPlay_SE2; -extern struct MusicPlayerInfo gMPlay_BGM; -extern u32 gBattleExecBuffer; +extern struct MusicPlayerInfo gMPlayInfo_SE1; +extern struct MusicPlayerInfo gMPlayInfo_SE2; +extern struct MusicPlayerInfo gMPlayInfo_BGM; +extern u32 gBattleControllerExecFlags; extern u8 GetBattlerSpriteCoord(); extern u8 sub_8077F68(); @@ -90,7 +92,7 @@ extern void StoreSpriteCallbackInData(); extern void sub_803311C(void); extern void sub_8010384(struct Sprite *); extern bool8 mplay_80342A4(u8); -extern u8 sub_8031720(); +extern u8 IsMoveWithoutAnimation(); extern void DoMoveAnim(); extern void sub_80326EC(); extern void sub_8031F24(void); @@ -262,12 +264,12 @@ void nullsub_45(void) void SetBankFuncToOpponentBufferRunCommand(void) { - gBattleBankFunc[gActiveBattler] = OpponentBufferRunCommand; + gBattlerControllerFuncs[gActiveBattler] = OpponentBufferRunCommand; } void OpponentBufferRunCommand(void) { - if (gBattleExecBuffer & gBitTable[gActiveBattler]) + if (gBattleControllerExecFlags & gBitTable[gActiveBattler]) { if (gBattleBufferA[gActiveBattler][0] <= 0x38) gOpponentBufferCommands[gBattleBufferA[gActiveBattler][0]](); @@ -278,25 +280,25 @@ void OpponentBufferRunCommand(void) void sub_8032B4C(void) { - if (gSprites[gBankSpriteIds[gActiveBattler]].callback == SpriteCallbackDummy) + if (gSprites[gBattlerSpriteIds[gActiveBattler]].callback == SpriteCallbackDummy) OpponentBufferExecCompleted(); } // Duplicate of sub_8032B4C void sub_8032B84(void) { - if (gSprites[gBankSpriteIds[gActiveBattler]].callback == SpriteCallbackDummy) + if (gSprites[gBattlerSpriteIds[gActiveBattler]].callback == SpriteCallbackDummy) OpponentBufferExecCompleted(); } void sub_8032BBC(void) { - if (gSprites[gBankSpriteIds[gActiveBattler]].callback == SpriteCallbackDummy) + if (gSprites[gBattlerSpriteIds[gActiveBattler]].callback == SpriteCallbackDummy) { - sub_8031B74(gSprites[gBankSpriteIds[gActiveBattler]].oam.affineParam); - gSprites[gBankSpriteIds[gActiveBattler]].oam.tileNum = gSprites[gBankSpriteIds[gActiveBattler]].data[5]; - FreeSpriteOamMatrix(&gSprites[gBankSpriteIds[gActiveBattler]]); - DestroySprite(&gSprites[gBankSpriteIds[gActiveBattler]]); + sub_8031B74(gSprites[gBattlerSpriteIds[gActiveBattler]].oam.affineParam); + gSprites[gBattlerSpriteIds[gActiveBattler]].oam.tileNum = gSprites[gBattlerSpriteIds[gActiveBattler]].data[5]; + FreeSpriteOamMatrix(&gSprites[gBattlerSpriteIds[gActiveBattler]]); + DestroySprite(&gSprites[gBattlerSpriteIds[gActiveBattler]]); OpponentBufferExecCompleted(); } } @@ -316,13 +318,13 @@ void sub_8032C88(void) if (!IsDoubleBattle() || (IsDoubleBattle() && (gBattleTypeFlags & BATTLE_TYPE_MULTI))) { - if (gSprites[gHealthboxIDs[gActiveBattler]].callback == SpriteCallbackDummy) + if (gSprites[gHealthboxSpriteIds[gActiveBattler]].callback == SpriteCallbackDummy) r6 = TRUE; } else { - if (gSprites[gHealthboxIDs[gActiveBattler]].callback == SpriteCallbackDummy - && gSprites[gHealthboxIDs[gActiveBattler ^ 2]].callback == SpriteCallbackDummy) + if (gSprites[gHealthboxSpriteIds[gActiveBattler]].callback == SpriteCallbackDummy + && gSprites[gHealthboxSpriteIds[gActiveBattler ^ 2]].callback == SpriteCallbackDummy) r6 = TRUE; } if (IsCryPlayingOrClearCrySongs()) @@ -337,11 +339,11 @@ void sub_8032C88(void) FreeSpriteTilesByTag(0x27F9); FreeSpritePaletteByTag(0x27F9); if (gBattleTypeFlags & BATTLE_TYPE_MULTI) - m4aMPlayContinue(&gMPlay_BGM); + m4aMPlayContinue(&gMPlayInfo_BGM); else - m4aMPlayVolumeControl(&gMPlay_BGM, 0xFFFF, 256); + m4aMPlayVolumeControl(&gMPlayInfo_BGM, 0xFFFF, 256); ewram17810[gActiveBattler].unk9 = 3; - gBattleBankFunc[gActiveBattler] = sub_8032C4C; + gBattlerControllerFuncs[gActiveBattler] = sub_8032C4C; } } @@ -357,35 +359,35 @@ void sub_8032E2C(void) { DestroySprite(&gSprites[gUnknown_0300434C[gActiveBattler ^ 2]]); sub_8045A5C( - gHealthboxIDs[gActiveBattler ^ 2], + gHealthboxSpriteIds[gActiveBattler ^ 2], &gEnemyParty[gBattlerPartyIndexes[gActiveBattler ^ 2]], 0); sub_804777C(gActiveBattler ^ 2); - sub_8043DFC(gHealthboxIDs[gActiveBattler ^ 2]); + sub_8043DFC(gHealthboxSpriteIds[gActiveBattler ^ 2]); sub_8032984( gActiveBattler ^ 2, GetMonData(&gEnemyParty[gBattlerPartyIndexes[gActiveBattler ^ 2]], MON_DATA_SPECIES)); } DestroySprite(&gSprites[gUnknown_0300434C[gActiveBattler]]); sub_8045A5C( - gHealthboxIDs[gActiveBattler], + gHealthboxSpriteIds[gActiveBattler], &gEnemyParty[gBattlerPartyIndexes[gActiveBattler]], 0); sub_804777C(gActiveBattler); - sub_8043DFC(gHealthboxIDs[gActiveBattler]); + sub_8043DFC(gHealthboxSpriteIds[gActiveBattler]); sub_8032984( gActiveBattler, GetMonData(&gEnemyParty[gBattlerPartyIndexes[gActiveBattler]], MON_DATA_SPECIES)); ewram17840.unk9_0 = 0; - gBattleBankFunc[gActiveBattler] = sub_8032C88; + gBattlerControllerFuncs[gActiveBattler] = sub_8032C88; } } void sub_8033018(void) { - if (gSprites[gBankSpriteIds[gActiveBattler]].animEnded == TRUE - && gSprites[gBankSpriteIds[gActiveBattler]].pos2.x == 0) + if (gSprites[gBattlerSpriteIds[gActiveBattler]].animEnded == TRUE + && gSprites[gBattlerSpriteIds[gActiveBattler]].pos2.x == 0) { if (!ewram17810[gActiveBattler].unk0_7) { @@ -406,20 +408,20 @@ void sub_8033018(void) void sub_80330C8(void) { - s16 r4 = sub_8045C78(gActiveBattler, gHealthboxIDs[gActiveBattler], 0, 0); + s16 r4 = sub_8045C78(gActiveBattler, gHealthboxSpriteIds[gActiveBattler], 0, 0); - sub_8043DFC(gHealthboxIDs[gActiveBattler]); + sub_8043DFC(gHealthboxSpriteIds[gActiveBattler]); if (r4 != -1) - sub_80440EC(gHealthboxIDs[gActiveBattler], r4, 0); + sub_80440EC(gHealthboxSpriteIds[gActiveBattler], r4, 0); else OpponentBufferExecCompleted(); } void sub_803311C(void) { - if (!gSprites[gBankSpriteIds[gActiveBattler]].inUse) + if (!gSprites[gBattlerSpriteIds[gActiveBattler]].inUse) { - sub_8043DB0(gHealthboxIDs[gActiveBattler]); + sub_8043DB0(gHealthboxSpriteIds[gActiveBattler]); OpponentBufferExecCompleted(); } } @@ -428,10 +430,10 @@ void sub_8033160(void) { if (!ewram17810[gActiveBattler].unk0_6) { - FreeSpriteOamMatrix(&gSprites[gBankSpriteIds[gActiveBattler]]); - DestroySprite(&gSprites[gBankSpriteIds[gActiveBattler]]); + FreeSpriteOamMatrix(&gSprites[gBattlerSpriteIds[gActiveBattler]]); + DestroySprite(&gSprites[gBattlerSpriteIds[gActiveBattler]]); sub_8032A08(gActiveBattler); - sub_8043DB0(gHealthboxIDs[gActiveBattler]); + sub_8043DB0(gHealthboxSpriteIds[gActiveBattler]); OpponentBufferExecCompleted(); } } @@ -444,7 +446,7 @@ void sub_80331D0(void) void bx_blink_t7(void) { - u8 spriteId = gBankSpriteIds[gActiveBattler]; + u8 spriteId = gBattlerSpriteIds[gActiveBattler]; if (gSprites[spriteId].data[1] == 32) { @@ -463,11 +465,11 @@ void bx_blink_t7(void) void sub_8033264(void) { - if (gSprites[gHealthboxIDs[gActiveBattler]].callback == SpriteCallbackDummy) + if (gSprites[gHealthboxSpriteIds[gActiveBattler]].callback == SpriteCallbackDummy) { if (ewram17800[gActiveBattler].substituteSprite) move_anim_start_t4(gActiveBattler, gActiveBattler, gActiveBattler, 6); - gBattleBankFunc[gActiveBattler] = sub_80332D0; + gBattlerControllerFuncs[gActiveBattler] = sub_80332D0; } } @@ -488,15 +490,15 @@ void sub_8033308(void) ewram17810[gActiveBattler].unk1_0 = 0; FreeSpriteTilesByTag(0x27F9); FreeSpritePaletteByTag(0x27F9); - StartSpriteAnim(&gSprites[gBankSpriteIds[gActiveBattler]], 0); + StartSpriteAnim(&gSprites[gBattlerSpriteIds[gActiveBattler]], 0); sub_8045A5C( - gHealthboxIDs[gActiveBattler], + gHealthboxSpriteIds[gActiveBattler], &gEnemyParty[gBattlerPartyIndexes[gActiveBattler]], 0); sub_804777C(gActiveBattler); - sub_8043DFC(gHealthboxIDs[gActiveBattler]); + sub_8043DFC(gHealthboxSpriteIds[gActiveBattler]); sub_8031F88(gActiveBattler); - gBattleBankFunc[gActiveBattler] = sub_8033264; + gBattlerControllerFuncs[gActiveBattler] = sub_8033264; } } @@ -509,7 +511,7 @@ void sub_80333D4(void) { DestroySprite(&gSprites[gUnknown_0300434C[gActiveBattler]]); sub_8032984(gActiveBattler, GetMonData(&gEnemyParty[gBattlerPartyIndexes[gActiveBattler]], MON_DATA_SPECIES)); - gBattleBankFunc[gActiveBattler] = sub_8033308; + gBattlerControllerFuncs[gActiveBattler] = sub_8033308; } } @@ -527,8 +529,8 @@ void sub_80334C0(void) void OpponentBufferExecCompleted(void) { - gBattleBankFunc[gActiveBattler] = OpponentBufferRunCommand; - gBattleExecBuffer &= ~gBitTable[gActiveBattler]; + gBattlerControllerFuncs[gActiveBattler] = OpponentBufferRunCommand; + gBattleControllerExecFlags &= ~gBitTable[gActiveBattler]; } void OpponentHandleGetAttributes(void) @@ -552,7 +554,7 @@ void OpponentHandleGetAttributes(void) r4 >>= 1; } } - Emitcmd29(1, r6, buffer); + BtlController_EmitDataTransfer(1, r6, buffer); OpponentBufferExecCompleted(); } @@ -866,7 +868,7 @@ void OpponentHandlecmd1(void) u8 *dst; MEMSET_ALT(&buffer + gBattleBufferA[gActiveBattler][1], src[i], gBattleBufferA[gActiveBattler][2], i, dst); - Emitcmd29(1, gBattleBufferA[gActiveBattler][2], dst); + BtlController_EmitDataTransfer(1, gBattleBufferA[gActiveBattler][2], dst); OpponentBufferExecCompleted(); } @@ -1124,18 +1126,18 @@ void OpponentHandleLoadPokeSprite(void) BattleLoadOpponentMonSprite(&gEnemyParty[gBattlerPartyIndexes[gActiveBattler]], gActiveBattler); GetMonSpriteTemplate_803C56C(species, GetBattlerPosition(gActiveBattler)); - gBankSpriteIds[gActiveBattler] = CreateSprite( + gBattlerSpriteIds[gActiveBattler] = CreateSprite( &gUnknown_02024E8C, GetBattlerSpriteCoord(gActiveBattler, 2), sub_8077F68(gActiveBattler), GetBattlerSubpriority(gActiveBattler)); - gSprites[gBankSpriteIds[gActiveBattler]].pos2.x = -240; - gSprites[gBankSpriteIds[gActiveBattler]].data[0] = gActiveBattler; - gSprites[gBankSpriteIds[gActiveBattler]].data[2] = species; - gSprites[gBankSpriteIds[gActiveBattler]].oam.paletteNum = gActiveBattler; - StartSpriteAnim(&gSprites[gBankSpriteIds[gActiveBattler]], gBattleMonForms[gActiveBattler]); + gSprites[gBattlerSpriteIds[gActiveBattler]].pos2.x = -240; + gSprites[gBattlerSpriteIds[gActiveBattler]].data[0] = gActiveBattler; + gSprites[gBattlerSpriteIds[gActiveBattler]].data[2] = species; + gSprites[gBattlerSpriteIds[gActiveBattler]].oam.paletteNum = gActiveBattler; + StartSpriteAnim(&gSprites[gBattlerSpriteIds[gActiveBattler]], gBattleMonForms[gActiveBattler]); sub_8032984(gActiveBattler, GetMonData(&gEnemyParty[gBattlerPartyIndexes[gActiveBattler]], MON_DATA_SPECIES)); - gBattleBankFunc[gActiveBattler] = sub_8033018; + gBattlerControllerFuncs[gActiveBattler] = sub_8033018; } void OpponentHandleSendOutPoke(void) @@ -1143,7 +1145,7 @@ void OpponentHandleSendOutPoke(void) gBattlerPartyIndexes[gActiveBattler] = gBattleBufferA[gActiveBattler][1]; sub_803495C(gActiveBattler, gBattleBufferA[gActiveBattler][2]); - gBattleBankFunc[gActiveBattler] = sub_80333D4; + gBattlerControllerFuncs[gActiveBattler] = sub_80333D4; } void sub_803495C(u8 a, u8 b) @@ -1156,18 +1158,18 @@ void sub_803495C(u8 a, u8 b) gUnknown_0300434C[a] = CreateInvisibleSpriteWithCallback(sub_80312F0); BattleLoadOpponentMonSprite(&gEnemyParty[gBattlerPartyIndexes[a]], a); GetMonSpriteTemplate_803C56C(species, GetBattlerPosition(a)); - gBankSpriteIds[a] = CreateSprite( + gBattlerSpriteIds[a] = CreateSprite( &gUnknown_02024E8C, GetBattlerSpriteCoord(a, 2), sub_8077F68(a), GetBattlerSubpriority(a)); - gSprites[gBankSpriteIds[a]].data[0] = a; - gSprites[gBankSpriteIds[a]].data[2] = species; - gSprites[gUnknown_0300434C[a]].data[1] = gBankSpriteIds[a]; - gSprites[gBankSpriteIds[a]].oam.paletteNum = a; - StartSpriteAnim(&gSprites[gBankSpriteIds[a]], gBattleMonForms[a]); - gSprites[gBankSpriteIds[a]].invisible = TRUE; - gSprites[gBankSpriteIds[a]].callback = SpriteCallbackDummy; + gSprites[gBattlerSpriteIds[a]].data[0] = a; + gSprites[gBattlerSpriteIds[a]].data[2] = species; + gSprites[gUnknown_0300434C[a]].data[1] = gBattlerSpriteIds[a]; + gSprites[gBattlerSpriteIds[a]].oam.paletteNum = a; + StartSpriteAnim(&gSprites[gBattlerSpriteIds[a]], gBattleMonForms[a]); + gSprites[gBattlerSpriteIds[a]].invisible = TRUE; + gSprites[gBattlerSpriteIds[a]].callback = SpriteCallbackDummy; gSprites[gUnknown_0300434C[a]].data[0] = StartSendOutMonAnimation(0, 0xFE); } @@ -1176,14 +1178,14 @@ void OpponentHandleReturnPokeToBall(void) if (gBattleBufferA[gActiveBattler][1] == 0) { ewram17810[gActiveBattler].unk4 = 0; - gBattleBankFunc[gActiveBattler] = sub_8034B74; + gBattlerControllerFuncs[gActiveBattler] = sub_8034B74; } else { - FreeSpriteOamMatrix(&gSprites[gBankSpriteIds[gActiveBattler]]); - DestroySprite(&gSprites[gBankSpriteIds[gActiveBattler]]); + FreeSpriteOamMatrix(&gSprites[gBattlerSpriteIds[gActiveBattler]]); + DestroySprite(&gSprites[gBattlerSpriteIds[gActiveBattler]]); sub_8032A08(gActiveBattler); - sub_8043DB0(gHealthboxIDs[gActiveBattler]); + sub_8043DB0(gHealthboxSpriteIds[gActiveBattler]); OpponentBufferExecCompleted(); } } @@ -1202,7 +1204,7 @@ void sub_8034B74(void) { ewram17810[gActiveBattler].unk4 = 0; move_anim_start_t4(gActiveBattler, gActiveBattler, gActiveBattler, 2); - gBattleBankFunc[gActiveBattler] = sub_8033160; + gBattlerControllerFuncs[gActiveBattler] = sub_8033160; } break; } @@ -1232,19 +1234,19 @@ void OpponentHandleTrainerThrow(void) sub_8031A6C(trainerPicIndex, gActiveBattler); GetMonSpriteTemplate_803C5A0(trainerPicIndex, GetBattlerPosition(gActiveBattler)); - gBankSpriteIds[gActiveBattler] = CreateSprite( + gBattlerSpriteIds[gActiveBattler] = CreateSprite( &gUnknown_02024E8C, 0xB0, 40 + 4 * (8 - gTrainerFrontPicCoords[trainerPicIndex].coords), GetBattlerSubpriority(gActiveBattler)); - gSprites[gBankSpriteIds[gActiveBattler]].pos2.x = -240; - gSprites[gBankSpriteIds[gActiveBattler]].data[0] = 2; - gSprites[gBankSpriteIds[gActiveBattler]].oam.paletteNum = IndexOfSpritePaletteTag(gTrainerFrontPicPaletteTable[trainerPicIndex].tag); - gSprites[gBankSpriteIds[gActiveBattler]].data[5] = gSprites[gBankSpriteIds[gActiveBattler]].oam.tileNum; - gSprites[gBankSpriteIds[gActiveBattler]].oam.tileNum = GetSpriteTileStartByTag(gTrainerFrontPicTable[trainerPicIndex].tag); - gSprites[gBankSpriteIds[gActiveBattler]].oam.affineParam = trainerPicIndex; - gSprites[gBankSpriteIds[gActiveBattler]].callback = sub_80313A0; - gBattleBankFunc[gActiveBattler] = sub_8032B4C; + gSprites[gBattlerSpriteIds[gActiveBattler]].pos2.x = -240; + gSprites[gBattlerSpriteIds[gActiveBattler]].data[0] = 2; + gSprites[gBattlerSpriteIds[gActiveBattler]].oam.paletteNum = IndexOfSpritePaletteTag(gTrainerFrontPicPaletteTable[trainerPicIndex].tag); + gSprites[gBattlerSpriteIds[gActiveBattler]].data[5] = gSprites[gBattlerSpriteIds[gActiveBattler]].oam.tileNum; + gSprites[gBattlerSpriteIds[gActiveBattler]].oam.tileNum = GetSpriteTileStartByTag(gTrainerFrontPicTable[trainerPicIndex].tag); + gSprites[gBattlerSpriteIds[gActiveBattler]].oam.affineParam = trainerPicIndex; + gSprites[gBattlerSpriteIds[gActiveBattler]].callback = sub_80313A0; + gBattlerControllerFuncs[gActiveBattler] = sub_8032B4C; } void OpponentHandleTrainerSlide(void) @@ -1262,31 +1264,31 @@ void OpponentHandleTrainerSlide(void) sub_8031A6C(trainerPicIndex, gActiveBattler); GetMonSpriteTemplate_803C5A0(trainerPicIndex, GetBattlerPosition(gActiveBattler)); - gBankSpriteIds[gActiveBattler] = CreateSprite( + gBattlerSpriteIds[gActiveBattler] = CreateSprite( &gUnknown_02024E8C, 0xB0, 40 + 4 * (8 - gTrainerFrontPicCoords[trainerPicIndex].coords), 0x1E); - gSprites[gBankSpriteIds[gActiveBattler]].pos2.x = 96; - gSprites[gBankSpriteIds[gActiveBattler]].pos1.x += 32; - gSprites[gBankSpriteIds[gActiveBattler]].data[0] = -2; - gSprites[gBankSpriteIds[gActiveBattler]].oam.paletteNum = IndexOfSpritePaletteTag(gTrainerFrontPicPaletteTable[trainerPicIndex].tag); - gSprites[gBankSpriteIds[gActiveBattler]].data[5] = gSprites[gBankSpriteIds[gActiveBattler]].oam.tileNum; - gSprites[gBankSpriteIds[gActiveBattler]].oam.tileNum = GetSpriteTileStartByTag(gTrainerFrontPicTable[trainerPicIndex].tag); - gSprites[gBankSpriteIds[gActiveBattler]].oam.affineParam = trainerPicIndex; - gSprites[gBankSpriteIds[gActiveBattler]].callback = sub_80313A0; - gBattleBankFunc[gActiveBattler] = sub_8032B84; + gSprites[gBattlerSpriteIds[gActiveBattler]].pos2.x = 96; + gSprites[gBattlerSpriteIds[gActiveBattler]].pos1.x += 32; + gSprites[gBattlerSpriteIds[gActiveBattler]].data[0] = -2; + gSprites[gBattlerSpriteIds[gActiveBattler]].oam.paletteNum = IndexOfSpritePaletteTag(gTrainerFrontPicPaletteTable[trainerPicIndex].tag); + gSprites[gBattlerSpriteIds[gActiveBattler]].data[5] = gSprites[gBattlerSpriteIds[gActiveBattler]].oam.tileNum; + gSprites[gBattlerSpriteIds[gActiveBattler]].oam.tileNum = GetSpriteTileStartByTag(gTrainerFrontPicTable[trainerPicIndex].tag); + gSprites[gBattlerSpriteIds[gActiveBattler]].oam.affineParam = trainerPicIndex; + gSprites[gBattlerSpriteIds[gActiveBattler]].callback = sub_80313A0; + gBattlerControllerFuncs[gActiveBattler] = sub_8032B84; } void OpponentHandleTrainerSlideBack(void) { - oamt_add_pos2_onto_pos1(&gSprites[gBankSpriteIds[gActiveBattler]]); - gSprites[gBankSpriteIds[gActiveBattler]].data[0] = 35; - gSprites[gBankSpriteIds[gActiveBattler]].data[2] = 280; - gSprites[gBankSpriteIds[gActiveBattler]].data[4] = gSprites[gBankSpriteIds[gActiveBattler]].pos1.y; - gSprites[gBankSpriteIds[gActiveBattler]].callback = StartAnimLinearTranslation; - StoreSpriteCallbackInData(&gSprites[gBankSpriteIds[gActiveBattler]], SpriteCallbackDummy); - gBattleBankFunc[gActiveBattler] = sub_8032BBC; + oamt_add_pos2_onto_pos1(&gSprites[gBattlerSpriteIds[gActiveBattler]]); + gSprites[gBattlerSpriteIds[gActiveBattler]].data[0] = 35; + gSprites[gBattlerSpriteIds[gActiveBattler]].data[2] = 280; + gSprites[gBattlerSpriteIds[gActiveBattler]].data[4] = gSprites[gBattlerSpriteIds[gActiveBattler]].pos1.y; + gSprites[gBattlerSpriteIds[gActiveBattler]].callback = StartAnimLinearTranslation; + StoreSpriteCallbackInData(&gSprites[gBattlerSpriteIds[gActiveBattler]], SpriteCallbackDummy); + gBattlerControllerFuncs[gActiveBattler] = sub_8032BBC; } void OpponentHandlecmd10(void) @@ -1301,8 +1303,8 @@ void OpponentHandlecmd10(void) { ewram17810[gActiveBattler].unk4 = 0; PlaySE12WithPanning(SE_POKE_DEAD, 63); - gSprites[gBankSpriteIds[gActiveBattler]].callback = sub_8010384; - gBattleBankFunc[gActiveBattler] = sub_803311C; + gSprites[gBattlerSpriteIds[gActiveBattler]].callback = sub_8010384; + gBattlerControllerFuncs[gActiveBattler] = sub_803311C; } } @@ -1346,15 +1348,15 @@ void OpponentHandleMoveAnimation(void) gAnimDisableStructPtr = (struct DisableStruct *)&gBattleBufferA[gActiveBattler][16]; gTransformedPersonalities[gActiveBattler] = gAnimDisableStructPtr->transformedMonPersonality; - // Dead code. sub_8031720 always returns 0. - if (sub_8031720(r0, gAnimMoveTurn) != 0) + // Dead code. IsMoveWithoutAnimation always returns 0. + if (IsMoveWithoutAnimation(r0, gAnimMoveTurn) != 0) { OpponentBufferExecCompleted(); } else { ewram17810[gActiveBattler].unk4 = 0; - gBattleBankFunc[gActiveBattler] = sub_8035238; + gBattlerControllerFuncs[gActiveBattler] = sub_8035238; } } } @@ -1416,7 +1418,7 @@ void OpponentHandlePrintString(void) gBattle_BG0_Y = 0; BufferStringBattle(*(u16 *)&gBattleBufferA[gActiveBattler][2]); Text_InitWindow8002EB0(&gUnknown_03004210, gDisplayedStringBattle, 144, 2, 15); - gBattleBankFunc[gActiveBattler] = sub_80331D0; + gBattlerControllerFuncs[gActiveBattler] = sub_80331D0; } void OpponentHandlePrintStringPlayerOnly(void) @@ -1435,6 +1437,11 @@ void OpponentHandlecmd19(void) OpponentBufferExecCompleted(); } +struct ChooseMoveStruct +{ + u16 moves[4]; +}; + #if DEBUG NAKED void OpponentHandlecmd20(void) @@ -1571,7 +1578,7 @@ void OpponentHandlecmd20(void) mov r0, #0x1\n\ mov r1, #0xa\n\ ._569:\n\ - bl Emitcmd33\n\ + bl BtlController_EmitTwoReturnValues\n\ ._573:\n\ bl OpponentBufferExecCompleted\n\ b ._562\n\ @@ -1618,7 +1625,7 @@ void OpponentHandlecmd20(void) and r0, r0, r1\n\ cmp r0, #0\n\ beq ._570 @cond_branch\n\ - ldr r1, ._574 + 4 @ gBankTarget\n\ + ldr r1, ._574 + 4 @ gBattlerTarget\n\ ldrb r0, [r6]\n\ strb r0, [r1]\n\ ._570:\n\ @@ -1634,7 +1641,7 @@ void OpponentHandlecmd20(void) beq ._572 @cond_branch\n\ mov r0, #0x0\n\ bl GetBattlerAtPosition\n\ - ldr r5, ._574 + 4 @ gBankTarget\n\ + ldr r5, ._574 + 4 @ gBattlerTarget\n\ strb r0, [r5]\n\ ldr r0, ._574 + 8 @ gAbsentBattlerFlags\n\ ldrb r1, [r0]\n\ @@ -1650,19 +1657,19 @@ void OpponentHandlecmd20(void) bl GetBattlerAtPosition\n\ strb r0, [r5]\n\ ._572:\n\ - ldr r0, ._574 + 4 @ gBankTarget\n\ + ldr r0, ._574 + 4 @ gBattlerTarget\n\ ldrb r2, [r0]\n\ lsl r2, r2, #0x8\n\ orr r2, r2, r4\n\ mov r0, #0x1\n\ mov r1, #0xa\n\ - bl Emitcmd33\n\ + bl BtlController_EmitTwoReturnValues\n\ b ._573\n\ ._575:\n\ .align 2, 0\n\ ._574:\n\ .word gBattleMoves\n\ - .word gBankTarget\n\ + .word gBattlerTarget\n\ .word gAbsentBattlerFlags\n\ .word gBitTable\n\ ._563:\n\ @@ -1716,7 +1723,7 @@ void OpponentHandlecmd20(void) orr r2, r2, r4\n\ mov r0, #0x1\n\ mov r1, #0xa\n\ - bl Emitcmd33\n\ + bl BtlController_EmitTwoReturnValues\n\ b ._582\n\ ._584:\n\ .align 2, 0\n\ @@ -1731,7 +1738,7 @@ void OpponentHandlecmd20(void) orr r2, r2, r4\n\ mov r0, #0x1\n\ mov r1, #0xa\n\ - bl Emitcmd33\n\ + bl BtlController_EmitTwoReturnValues\n\ ._582:\n\ bl OpponentBufferExecCompleted\n\ ._562:\n\ @@ -1744,255 +1751,64 @@ void OpponentHandlecmd20(void) bx r0"); } #else -#ifdef NONMATCHING void OpponentHandlecmd20(void) { - u16 r4; - // Needed to match closer - struct {u16 moves[4];} *r5 = (void *)&gBattleBufferA[gActiveBattler][4]; + u8 chosenMoveId; + struct ChooseMoveStruct *moveInfo = (struct ChooseMoveStruct *)&gBattleBufferA[gActiveBattler][4]; - if (gBattleTypeFlags & 0x498) + if (gBattleTypeFlags & (BATTLE_TYPE_TRAINER | BATTLE_TYPE_FIRST_BATTLE | BATTLE_TYPE_SAFARI | BATTLE_TYPE_ROAMER)) { BattleAI_SetupAIData(); - r4 = BattleAI_GetAIActionToUse(); - switch (r4) + chosenMoveId = BattleAI_GetAIActionToUse(); + + switch (chosenMoveId) { - case 5: - Emitcmd33(1, 4, 0); + case 5: // AI_CHOICE_WATCH + BtlController_EmitTwoReturnValues(1, B_ACTION_SAFARI_WATCH_CAREFULLY, 0); break; - case 4: - Emitcmd33(1, 3, 0); + case 4: // AI_CHOICE_FLEE + BtlController_EmitTwoReturnValues(1, B_ACTION_RUN, 0); break; default: - if (gBattleMoves[r5->moves[r4]].target & 0x12) - gBankTarget = gActiveBattler; - if (gBattleMoves[r5->moves[r4]].target & 8) + if (gBattleMoves[moveInfo->moves[chosenMoveId]].target & (MOVE_TARGET_USER_OR_SELECTED | MOVE_TARGET_USER)) + gBattlerTarget = gActiveBattler; + if (gBattleMoves[moveInfo->moves[chosenMoveId]].target & 8) { - gBankTarget = GetBattlerAtPosition(0); - if (gAbsentBattlerFlags & gBitTable[gBankTarget]) - gBankTarget = GetBattlerAtPosition(2); + gBattlerTarget = GetBattlerAtPosition(0); + if (gAbsentBattlerFlags & gBitTable[gBattlerTarget]) + gBattlerTarget = GetBattlerAtPosition(2); } - r4 |= gBankTarget << 8; - Emitcmd33(1, 10, r4); + BtlController_EmitTwoReturnValues(1, B_ACTION_EXEC_SCRIPT, chosenMoveId | (gBattlerTarget << 8)); break; } OpponentBufferExecCompleted(); } else { - u16 r2; + u16 move; do { // Can't for the life of me get this to match. - r4 = Random() % 4; - r2 = r5->moves[r4]; - } while (r2 == 0); + chosenMoveId = Random() & 3; + move = moveInfo->moves[chosenMoveId]; + } while (move == 0); - if (gBattleMoves[r2].target & 0x12) - { - r4 |= gActiveBattler << 8; - Emitcmd33(1, 10, r4); - } + if (gBattleMoves[move].target & (MOVE_TARGET_USER_OR_SELECTED | MOVE_TARGET_USER)) + BtlController_EmitTwoReturnValues(1, B_ACTION_EXEC_SCRIPT, chosenMoveId | (gActiveBattler << 8)); else if (gBattleTypeFlags & BATTLE_TYPE_DOUBLE) - { - u16 r2 = GetBattlerAtPosition(Random() & 2) << 8; - - Emitcmd33(1, 10, r4 | r2); - } + BtlController_EmitTwoReturnValues(1, B_ACTION_EXEC_SCRIPT, chosenMoveId | (GetBattlerAtPosition(Random() & 2) << 8)); else - { - u16 r2 = GetBattlerAtPosition(0) << 8; - - Emitcmd33(1, 10, r4 | r2); - } + BtlController_EmitTwoReturnValues(1, B_ACTION_EXEC_SCRIPT, chosenMoveId | (GetBattlerAtPosition(0) << 8)); OpponentBufferExecCompleted(); } } -#else -NAKED -void OpponentHandlecmd20(void) -{ - asm(".syntax unified\n\ - push {r4-r6,lr}\n\ - ldr r6, _0803545C @ =gActiveBattler\n\ - ldrb r0, [r6]\n\ - lsls r0, 9\n\ - ldr r1, _08035460 @ =gBattleBufferA+4\n\ - adds r5, r0, r1\n\ - ldr r0, _08035464 @ =gBattleTypeFlags\n\ - ldrh r1, [r0]\n\ - movs r0, 0x93\n\ - lsls r0, 3\n\ - ands r0, r1\n\ - cmp r0, 0\n\ - beq _080354F8\n\ - bl BattleAI_SetupAIData\n\ - bl BattleAI_GetAIActionToUse\n\ - lsls r0, 24\n\ - lsrs r4, r0, 24\n\ - cmp r4, 0x4\n\ - beq _08035468\n\ - cmp r4, 0x5\n\ - bne _08035474\n\ - movs r0, 0x1\n\ - movs r1, 0x4\n\ - b _0803546C\n\ - .align 2, 0\n\ -_0803545C: .4byte gActiveBattler\n\ -_08035460: .4byte gBattleBufferA+4\n\ -_08035464: .4byte gBattleTypeFlags\n\ -_08035468:\n\ - movs r0, 0x1\n\ - movs r1, 0x3\n\ -_0803546C:\n\ - movs r2, 0\n\ - bl Emitcmd33\n\ - b _080354E0\n\ -_08035474:\n\ - ldr r3, _080354E8 @ =gBattleMoves\n\ - lsls r0, r4, 1\n\ - adds r2, r5, r0\n\ - ldrh r1, [r2]\n\ - lsls r0, r1, 1\n\ - adds r0, r1\n\ - lsls r0, 2\n\ - adds r0, r3\n\ - ldrb r1, [r0, 0x6]\n\ - movs r0, 0x12\n\ - ands r0, r1\n\ - cmp r0, 0\n\ - beq _08035494\n\ - ldr r1, _080354EC @ =gBankTarget\n\ - ldrb r0, [r6]\n\ - strb r0, [r1]\n\ -_08035494:\n\ - ldrh r1, [r2]\n\ - lsls r0, r1, 1\n\ - adds r0, r1\n\ - lsls r0, 2\n\ - adds r0, r3\n\ - ldrb r1, [r0, 0x6]\n\ - movs r0, 0x8\n\ - ands r0, r1\n\ - cmp r0, 0\n\ - beq _080354CE\n\ - movs r0, 0\n\ - bl GetBattlerAtPosition\n\ - ldr r5, _080354EC @ =gBankTarget\n\ - strb r0, [r5]\n\ - ldr r0, _080354F0 @ =gAbsentBattlerFlags\n\ - ldrb r1, [r0]\n\ - ldr r2, _080354F4 @ =gBitTable\n\ - ldrb r0, [r5]\n\ - lsls r0, 2\n\ - adds r0, r2\n\ - ldr r0, [r0]\n\ - ands r1, r0\n\ - cmp r1, 0\n\ - beq _080354CE\n\ - movs r0, 0x2\n\ - bl GetBattlerAtPosition\n\ - strb r0, [r5]\n\ -_080354CE:\n\ - ldr r0, _080354EC @ =gBankTarget\n\ - ldrb r0, [r0]\n\ - lsls r0, 8\n\ - orrs r4, r0\n\ - movs r0, 0x1\n\ - movs r1, 0xA\n\ - adds r2, r4, 0\n\ - bl Emitcmd33\n\ -_080354E0:\n\ - bl OpponentBufferExecCompleted\n\ - b _0803558A\n\ - .align 2, 0\n\ -_080354E8: .4byte gBattleMoves\n\ -_080354EC: .4byte gBankTarget\n\ -_080354F0: .4byte gAbsentBattlerFlags\n\ -_080354F4: .4byte gBitTable\n\ -_080354F8:\n\ - movs r6, 0x3\n\ -_080354FA:\n\ - bl Random\n\ - adds r4, r0, 0\n\ - ands r4, r6\n\ - lsls r0, r4, 1\n\ - adds r0, r5, r0\n\ - ldrh r2, [r0]\n\ - cmp r2, 0\n\ - beq _080354FA\n\ - ldr r1, _08035534 @ =gBattleMoves\n\ - lsls r0, r2, 1\n\ - adds r0, r2\n\ - lsls r0, 2\n\ - adds r0, r1\n\ - ldrb r1, [r0, 0x6]\n\ - movs r0, 0x12\n\ - ands r0, r1\n\ - cmp r0, 0\n\ - beq _0803553C\n\ - ldr r0, _08035538 @ =gActiveBattler\n\ - ldrb r0, [r0]\n\ - lsls r0, 8\n\ - orrs r4, r0\n\ - movs r0, 0x1\n\ - movs r1, 0xA\n\ - adds r2, r4, 0\n\ - bl Emitcmd33\n\ - b _08035586\n\ - .align 2, 0\n\ -_08035534: .4byte gBattleMoves\n\ -_08035538: .4byte gActiveBattler\n\ -_0803553C:\n\ - ldr r0, _0803556C @ =gBattleTypeFlags\n\ - ldrh r1, [r0]\n\ - movs r0, 0x1\n\ - ands r0, r1\n\ - cmp r0, 0\n\ - beq _08035570\n\ - bl Random\n\ - movs r1, 0x2\n\ - ands r1, r0\n\ - lsls r1, 24\n\ - lsrs r1, 24\n\ - adds r0, r1, 0\n\ - bl GetBattlerAtPosition\n\ - adds r2, r0, 0\n\ - lsls r2, 24\n\ - lsrs r2, 16\n\ - orrs r2, r4\n\ - movs r0, 0x1\n\ - movs r1, 0xA\n\ - bl Emitcmd33\n\ - b _08035586\n\ - .align 2, 0\n\ -_0803556C: .4byte gBattleTypeFlags\n\ -_08035570:\n\ - movs r0, 0\n\ - bl GetBattlerAtPosition\n\ - adds r2, r0, 0\n\ - lsls r2, 24\n\ - lsrs r2, 16\n\ - orrs r2, r4\n\ - movs r0, 0x1\n\ - movs r1, 0xA\n\ - bl Emitcmd33\n\ -_08035586:\n\ - bl OpponentBufferExecCompleted\n\ -_0803558A:\n\ - pop {r4-r6}\n\ - pop {r0}\n\ - bx r0\n\ - .syntax divided\n"); -} -#endif #endif void OpponentHandleOpenBag(void) { // What is this? - Emitcmd35(1, ewram160D4(gActiveBattler)); + BtlController_EmitOneReturnValue(1, ewram160D4(gActiveBattler)); OpponentBufferExecCompleted(); } @@ -2033,7 +1849,7 @@ void OpponentHandlecmd22(void) ewram160C8arr(GetBattlerPosition(gActiveBattler)) = 6; } ewram16068arr(gActiveBattler) = r4; - Emitcmd34(1, r4, 0); + BtlController_EmitChosenMonReturnValue(1, r4, 0); OpponentBufferExecCompleted(); } @@ -2053,15 +1869,15 @@ void OpponentHandleHealthBarUpdate(void) u32 maxHP = GetMonData(&gEnemyParty[gBattlerPartyIndexes[gActiveBattler]], MON_DATA_MAX_HP); u32 hp = GetMonData(&gEnemyParty[gBattlerPartyIndexes[gActiveBattler]], MON_DATA_HP); - sub_8043D84(gActiveBattler, gHealthboxIDs[gActiveBattler], maxHP, hp, r7); + sub_8043D84(gActiveBattler, gHealthboxSpriteIds[gActiveBattler], maxHP, hp, r7); } else { u32 maxHP = GetMonData(&gEnemyParty[gBattlerPartyIndexes[gActiveBattler]], MON_DATA_MAX_HP); - sub_8043D84(gActiveBattler, gHealthboxIDs[gActiveBattler], maxHP, 0, r7); + sub_8043D84(gActiveBattler, gHealthboxSpriteIds[gActiveBattler], maxHP, 0, r7); } - gBattleBankFunc[gActiveBattler] = sub_80330C8; + gBattlerControllerFuncs[gActiveBattler] = sub_80330C8; } void OpponentHandleExpBarUpdate(void) @@ -2073,9 +1889,9 @@ void OpponentHandleStatusIconUpdate(void) { if (mplay_80342A4(gActiveBattler) == 0) { - sub_8045A5C(gHealthboxIDs[gActiveBattler], &gEnemyParty[gBattlerPartyIndexes[gActiveBattler]], 9); + sub_8045A5C(gHealthboxSpriteIds[gActiveBattler], &gEnemyParty[gBattlerPartyIndexes[gActiveBattler]], 9); ewram17810[gActiveBattler].unk0_4 = 0; - gBattleBankFunc[gActiveBattler] = sub_8033494; + gBattlerControllerFuncs[gActiveBattler] = sub_8033494; } } @@ -2089,7 +1905,7 @@ void OpponentHandleStatusAnimation(void) | (gBattleBufferA[gActiveBattler][3] << 8) | (gBattleBufferA[gActiveBattler][4] << 16) | (gBattleBufferA[gActiveBattler][5] << 24)); - gBattleBankFunc[gActiveBattler] = sub_8033494; + gBattlerControllerFuncs[gActiveBattler] = sub_8033494; } } @@ -2164,16 +1980,16 @@ void OpponentHandlecmd40(void) void OpponentHandleHitAnimation(void) { - if (gSprites[gBankSpriteIds[gActiveBattler]].invisible == TRUE) + if (gSprites[gBattlerSpriteIds[gActiveBattler]].invisible == TRUE) { OpponentBufferExecCompleted(); } else { gDoingBattleAnim = TRUE; - gSprites[gBankSpriteIds[gActiveBattler]].data[1] = 0; + gSprites[gBattlerSpriteIds[gActiveBattler]].data[1] = 0; sub_8047858(gActiveBattler); - gBattleBankFunc[gActiveBattler] = bx_blink_t7; + gBattlerControllerFuncs[gActiveBattler] = bx_blink_t7; } } @@ -2219,18 +2035,18 @@ void OpponentHandleTrainerBallThrow(void) { u8 taskId; - oamt_add_pos2_onto_pos1(&gSprites[gBankSpriteIds[gActiveBattler]]); - gSprites[gBankSpriteIds[gActiveBattler]].data[0] = 35; - gSprites[gBankSpriteIds[gActiveBattler]].data[2] = 280; - gSprites[gBankSpriteIds[gActiveBattler]].data[4] = gSprites[gBankSpriteIds[gActiveBattler]].pos1.y; - gSprites[gBankSpriteIds[gActiveBattler]].callback = StartAnimLinearTranslation; - StoreSpriteCallbackInData(&gSprites[gBankSpriteIds[gActiveBattler]], sub_8035C10); + oamt_add_pos2_onto_pos1(&gSprites[gBattlerSpriteIds[gActiveBattler]]); + gSprites[gBattlerSpriteIds[gActiveBattler]].data[0] = 35; + gSprites[gBattlerSpriteIds[gActiveBattler]].data[2] = 280; + gSprites[gBattlerSpriteIds[gActiveBattler]].data[4] = gSprites[gBattlerSpriteIds[gActiveBattler]].pos1.y; + gSprites[gBattlerSpriteIds[gActiveBattler]].callback = StartAnimLinearTranslation; + StoreSpriteCallbackInData(&gSprites[gBattlerSpriteIds[gActiveBattler]], sub_8035C10); taskId = CreateTask(sub_8035C44, 5); gTasks[taskId].data[0] = gActiveBattler; if (ewram17810[gActiveBattler].unk0_0) gTasks[gUnknown_02024E68[gActiveBattler]].func = sub_8044CA0; ewram17840.unk9_0 = 1; - gBattleBankFunc[gActiveBattler] = nullsub_45; + gBattlerControllerFuncs[gActiveBattler] = nullsub_45; } void sub_8035C10(struct Sprite *sprite) @@ -2261,7 +2077,7 @@ void sub_8035C44(u8 taskId) sub_803495C(gActiveBattler, 0); gActiveBattler ^= 2; } - gBattleBankFunc[gActiveBattler] = sub_8032E2C; + gBattlerControllerFuncs[gActiveBattler] = sub_8032E2C; gActiveBattler = r9; DestroyTask(taskId); } @@ -2295,7 +2111,7 @@ void OpponentHandlecmd48(void) ewram17810[gActiveBattler].unk5 = 0; if (gBattleBufferA[gActiveBattler][2] != 0) ewram17810[gActiveBattler].unk5 = 0x5D; - gBattleBankFunc[gActiveBattler] = sub_8035E2C; + gBattlerControllerFuncs[gActiveBattler] = sub_8035E2C; } void sub_8035E2C(void) @@ -2323,7 +2139,7 @@ void OpponentHandleSpriteInvisibility(void) { if (IsBankSpritePresent(gActiveBattler) != 0) { - gSprites[gBankSpriteIds[gActiveBattler]].invisible = gBattleBufferA[gActiveBattler][1]; + gSprites[gBattlerSpriteIds[gActiveBattler]].invisible = gBattleBufferA[gActiveBattler][1]; sub_8031F88(gActiveBattler); } OpponentBufferExecCompleted(); @@ -2339,7 +2155,7 @@ void OpponentHandleBattleAnimation(void) if (move_anim_start_t3(gActiveBattler, gActiveBattler, gActiveBattler, r3, r4) != 0) OpponentBufferExecCompleted(); else - gBattleBankFunc[gActiveBattler] = sub_80334C0; + gBattlerControllerFuncs[gActiveBattler] = sub_80334C0; } } diff --git a/src/battle/battle_controller_player.c b/src/battle_controller_player.c index 5d7a8955c..7de3ada41 100644 --- a/src/battle/battle_controller_player.c +++ b/src/battle_controller_player.c @@ -2,7 +2,7 @@ #include "data2.h" #include "battle.h" #include "battle_anim.h" -#include "battle_anim_813F0F4.h" +#include "battle_anim_special.h" #include "battle_interface.h" #include "battle_message.h" #include "item.h" @@ -38,10 +38,10 @@ struct MovePpInfo extern struct Window gUnknown_03004210; -extern void (*gBattleBankFunc[])(void); +extern void (*gBattlerControllerFuncs[])(void); -extern u8 gBankAttacker; -extern u8 gBankTarget; +extern u8 gBattlerAttacker; +extern u8 gBattlerTarget; extern u32 gOamMatrixAllocBitmap; extern u8 gUnknown_020297ED; extern u8 gActiveBattler; @@ -51,9 +51,9 @@ extern u8 gMoveSelectionCursor[]; extern u8 gBattleBufferA[][0x200]; extern u8 gBankInMenu; extern u16 gBattlerPartyIndexes[]; -extern u8 gHealthboxIDs[]; +extern u8 gHealthboxSpriteIds[]; extern u8 gDoingBattleAnim; -extern u8 gBankSpriteIds[]; +extern u8 gBattlerSpriteIds[]; extern u16 gBattleTypeFlags; extern u8 gBattleOutcome; extern void (*gAnimScriptCallback)(void); @@ -110,7 +110,7 @@ extern void BufferStringBattle(); extern void sub_80326EC(); extern void sub_8031F24(void); extern void sub_80324BC(); -extern u8 sub_8031720(); +extern u8 IsMoveWithoutAnimation(); extern void bx_wait_t1(void); extern u8 GetBattlerAtPosition(u8); extern void sub_802DE10(void); @@ -130,12 +130,12 @@ extern u8 StartSendOutMonAnimation(); extern void sub_802D798(void); extern void bx_0802E404(void); extern u8 gActiveBattler; -extern void (*gBattleBankFunc[])(void); +extern void (*gBattlerControllerFuncs[])(void); extern bool8 gDoingBattleAnim; extern u16 gBattleTypeFlags; -extern u32 gBattleExecBuffer; +extern u32 gBattleControllerExecFlags; extern u8 gBattleBufferA[][0x200]; -extern u8 gBankSpriteIds[]; +extern u8 gBattlerSpriteIds[]; extern u8 gActionSelectionCursor[]; extern u8 gMoveSelectionCursor[]; extern u8 gAbsentBattlerFlags; @@ -147,8 +147,8 @@ extern const u8 BattleText_SwitchWhich[]; extern u8 gUnknown_03004348; extern struct BattlePokemon gBattleMons[]; extern MainCallback gPreBattleCallback1; -extern u8 gHealthboxIDs[]; -extern struct MusicPlayerInfo gMPlay_BGM; +extern u8 gHealthboxSpriteIds[]; +extern struct MusicPlayerInfo gMPlayInfo_BGM; extern u8 gUnknown_0300434C[]; extern u8 gUnknown_0202E8F4; extern u8 gUnknown_0202E8F5; @@ -326,13 +326,13 @@ void nullsub_91(void) void SetBankFuncToPlayerBufferRunCommand(void) { - gBattleBankFunc[gActiveBattler] = PlayerBufferRunCommand; + gBattlerControllerFuncs[gActiveBattler] = PlayerBufferRunCommand; gDoingBattleAnim = FALSE; } void PlayerBufferExecCompleted(void) { - gBattleBankFunc[gActiveBattler] = PlayerBufferRunCommand; + gBattlerControllerFuncs[gActiveBattler] = PlayerBufferRunCommand; if (gBattleTypeFlags & BATTLE_TYPE_LINK) { u8 playerId = GetMultiplayerId(); @@ -342,13 +342,13 @@ void PlayerBufferExecCompleted(void) } else { - gBattleExecBuffer &= ~gBitTable[gActiveBattler]; + gBattleControllerExecFlags &= ~gBitTable[gActiveBattler]; } } void PlayerBufferRunCommand(void) { - if (gBattleExecBuffer & gBitTable[gActiveBattler]) + if (gBattleControllerExecFlags & gBitTable[gActiveBattler]) { if (gBattleBufferA[gActiveBattler][0] < 0x39) gPlayerBufferCommands[gBattleBufferA[gActiveBattler][0]](); @@ -359,7 +359,7 @@ void PlayerBufferRunCommand(void) void bx_0802E404(void) { - if (gSprites[gBankSpriteIds[gActiveBattler]].pos2.x == 0) + if (gSprites[gBattlerSpriteIds[gActiveBattler]].pos2.x == 0) PlayerBufferExecCompleted(); } @@ -378,16 +378,16 @@ void sub_802C098(void) switch (gActionSelectionCursor[gActiveBattler]) { case 0: - Emitcmd33(1, 0, 0); + BtlController_EmitTwoReturnValues(1, 0, 0); break; case 1: - Emitcmd33(1, 1, 0); + BtlController_EmitTwoReturnValues(1, 1, 0); break; case 2: - Emitcmd33(1, 2, 0); + BtlController_EmitTwoReturnValues(1, 2, 0); break; case 3: - Emitcmd33(1, 3, 0); + BtlController_EmitTwoReturnValues(1, 3, 0); break; } PlayerBufferExecCompleted(); @@ -448,7 +448,7 @@ void sub_802C098(void) return; } PlaySE(SE_SELECT); - Emitcmd33(1, 12, 0); + BtlController_EmitTwoReturnValues(1, 12, 0); PlayerBufferExecCompleted(); DestroyMenuCursor(); } @@ -463,7 +463,7 @@ void unref_sub_802C2B8(void) { dp11b_obj_free(gActiveBattler, 1); dp11b_obj_free(gActiveBattler, 0); - gBattleBankFunc[gActiveBattler] = sub_802C2EC; + gBattlerControllerFuncs[gActiveBattler] = sub_802C2EC; } // TODO: fix this function @@ -487,8 +487,8 @@ void sub_802C2EC(void) { DestroyMenuCursor(); PlaySE(SE_SELECT); - gSprites[gBankSpriteIds[gUnknown_03004344]].callback = sub_8010574; - Emitcmd33(1, 10, gMoveSelectionCursor[gActiveBattler] | (gUnknown_03004344 << 8)); + gSprites[gBattlerSpriteIds[gUnknown_03004344]].callback = sub_8010574; + BtlController_EmitTwoReturnValues(1, 10, gMoveSelectionCursor[gActiveBattler] | (gUnknown_03004344 << 8)); dp11b_obj_free(gUnknown_03004344, 1); PlayerBufferExecCompleted(); } @@ -496,8 +496,8 @@ void sub_802C2EC(void) else if (gMain.newKeys & B_BUTTON) { PlaySE(SE_SELECT); - gSprites[gBankSpriteIds[gUnknown_03004344]].callback = sub_8010574; - gBattleBankFunc[gActiveBattler] = sub_802C68C; + gSprites[gBattlerSpriteIds[gUnknown_03004344]].callback = sub_8010574; + gBattlerControllerFuncs[gActiveBattler] = sub_802C68C; dp11b_obj_instanciate(gActiveBattler, 1, 7, 1); dp11b_obj_instanciate(gActiveBattler, 0, 7, 1); dp11b_obj_free(gUnknown_03004344, 1); @@ -505,7 +505,7 @@ void sub_802C2EC(void) else if (gMain.newKeys & 0x60) { PlaySE(SE_SELECT); - gSprites[gBankSpriteIds[gUnknown_03004344]].callback = sub_8010574; + gSprites[gBattlerSpriteIds[gUnknown_03004344]].callback = sub_8010574; do { u8 var = GetBattlerPosition(gUnknown_03004344); @@ -546,13 +546,13 @@ void sub_802C2EC(void) if (gAbsentBattlerFlags & gBitTable[gUnknown_03004344]) i = 0; } while (i == 0); - gSprites[gBankSpriteIds[gUnknown_03004344]].callback = sub_8010520; + gSprites[gBattlerSpriteIds[gUnknown_03004344]].callback = sub_8010520; } //_0802C540 else if (gMain.newKeys & 0x90) { PlaySE(SE_SELECT); - gSprites[gBankSpriteIds[gUnknown_03004344]].callback = sub_8010574; + gSprites[gBattlerSpriteIds[gUnknown_03004344]].callback = sub_8010574; do { u8 var = GetBattlerPosition(gUnknown_03004344); @@ -592,7 +592,7 @@ void sub_802C2EC(void) if (gAbsentBattlerFlags & gBitTable[gUnknown_03004344]) i = 0; } while (i == 0); - gSprites[gBankSpriteIds[gUnknown_03004344]].callback = sub_8010520; + gSprites[gBattlerSpriteIds[gUnknown_03004344]].callback = sub_8010520; } } @@ -656,19 +656,19 @@ void sub_802C68C(void) if (r8 == 0) { DestroyMenuCursor(); - Emitcmd33(1, 10, gMoveSelectionCursor[gActiveBattler] | (gUnknown_03004344 << 8)); + BtlController_EmitTwoReturnValues(1, 10, gMoveSelectionCursor[gActiveBattler] | (gUnknown_03004344 << 8)); PlayerBufferExecCompleted(); } else { - gBattleBankFunc[gActiveBattler] = sub_802C2EC; + gBattlerControllerFuncs[gActiveBattler] = sub_802C2EC; if (r4 & 0x12) gUnknown_03004344 = gActiveBattler; else if (gAbsentBattlerFlags & gBitTable[GetBattlerAtPosition(1)]) gUnknown_03004344 = GetBattlerAtPosition(3); else gUnknown_03004344 = GetBattlerAtPosition(1); - gSprites[gBankSpriteIds[gUnknown_03004344]].callback = sub_8010520; + gSprites[gBattlerSpriteIds[gUnknown_03004344]].callback = sub_8010520; } } else if (gMain.newKeys & B_BUTTON) @@ -677,7 +677,7 @@ void sub_802C68C(void) PlaySE(SE_SELECT); gBattle_BG0_X = 0; gBattle_BG0_Y = 320; - Emitcmd33(1, 10, 0xFFFF); + BtlController_EmitTwoReturnValues(1, 10, 0xFFFF); PlayerBufferExecCompleted(); } else if (gMain.newKeys & DPAD_LEFT) @@ -743,7 +743,7 @@ void sub_802C68C(void) Text_FillWindowRect(&gUnknown_03004210, 0x1016, 0x17, 0x37, 0x1C, 0x3A); Text_InitWindow(&gUnknown_03004210, BattleText_SwitchWhich, 0x290, 0x17, 0x37); Text_PrintWindow8002F44(&gUnknown_03004210); - gBattleBankFunc[gActiveBattler] = sub_802CA60; + gBattlerControllerFuncs[gActiveBattler] = sub_802CA60; } } #if DEBUG @@ -780,7 +780,7 @@ void sub_802C68C(void) } ConvertIntToDecimalStringN(gDisplayedStringBattle, count, 2, 2); Text_InitWindowAndPrintText(&gUnknown_03004210, gDisplayedStringBattle, 0x12A, 14, 0x39); - gBattleBankFunc[gActiveBattler] = debug_sub_8030C24; + gBattlerControllerFuncs[gActiveBattler] = debug_sub_8030C24; } #endif } @@ -883,7 +883,7 @@ void sub_802CA60(void) { sub_802E12C(gUnknown_03004344, BattleText_Format); } - gBattleBankFunc[gActiveBattler] = sub_802C68C; + gBattlerControllerFuncs[gActiveBattler] = sub_802C68C; gMoveSelectionCursor[gActiveBattler] = gUnknown_03004344; sub_802E3B4(gMoveSelectionCursor[gActiveBattler], 0); Text_FillWindowRect(&gUnknown_03004210, 0x1016, 0x17, 0x37, 0x1C, 0x3A); @@ -898,7 +898,7 @@ void sub_802CA60(void) nullsub_7(gUnknown_03004344); sub_802E3B4(gMoveSelectionCursor[gActiveBattler], 0); sub_802E12C(gMoveSelectionCursor[gActiveBattler], BattleText_Format); - gBattleBankFunc[gActiveBattler] = sub_802C68C; + gBattlerControllerFuncs[gActiveBattler] = sub_802C68C; Text_FillWindowRect(&gUnknown_03004210, 0x1016, 0x17, 0x37, 0x1C, 0x3A); Text_InitWindow(&gUnknown_03004210, BattleText_PP, 0x290, 0x17, 0x37); Text_PrintWindow8002F44(&gUnknown_03004210); @@ -977,7 +977,7 @@ void sub_802D18C(void) if (gBattleTypeFlags & BATTLE_TYPE_LINK) { sub_800832C(); - gBattleBankFunc[gActiveBattler] = sub_802D148; + gBattlerControllerFuncs[gActiveBattler] = sub_802D148; } else { @@ -1002,41 +1002,41 @@ void debug_sub_8030C24(void) case START_BUTTON: dp11b_obj_free(gActiveBattler, 1); dp11b_obj_free(gActiveBattler, 0); - gBankAttacker = gActiveBattler; + gBattlerAttacker = gActiveBattler; if ((gMain.heldKeysRaw & B_BUTTON) && (gBattleTypeFlags & BATTLE_TYPE_DOUBLE)) - gBankTarget = gBankAttacker ^ 2; + gBattlerTarget = gBattlerAttacker ^ 2; else if ((gMain.heldKeysRaw & A_BUTTON) && (gBattleTypeFlags & BATTLE_TYPE_DOUBLE)) - gBankTarget = GetBattlerAtPosition(3); + gBattlerTarget = GetBattlerAtPosition(3); else - gBankTarget = GetBattlerAtPosition(1); + gBattlerTarget = GetBattlerAtPosition(1); sub_80326EC(0); DoMoveAnim(move); - gBattleBankFunc[gActiveBattler] = debug_sub_803107C; + gBattlerControllerFuncs[gActiveBattler] = debug_sub_803107C; break; case SELECT_BUTTON: dp11b_obj_free(gActiveBattler, 1); dp11b_obj_free(gActiveBattler, 0); - gBankTarget = gActiveBattler; + gBattlerTarget = gActiveBattler; if ((gMain.heldKeysRaw & B_BUTTON) && (gBattleTypeFlags & BATTLE_TYPE_DOUBLE)) - gBankAttacker = gBankTarget ^ 2; + gBattlerAttacker = gBattlerTarget ^ 2; else if ((gMain.heldKeysRaw & A_BUTTON) && (gBattleTypeFlags & BATTLE_TYPE_DOUBLE)) - gBankAttacker = GetBattlerAtPosition(3); + gBattlerAttacker = GetBattlerAtPosition(3); else - gBankAttacker = GetBattlerAtPosition(1); + gBattlerAttacker = GetBattlerAtPosition(1); sub_80326EC(0); DoMoveAnim(move); - gBattleBankFunc[gActiveBattler] = debug_sub_803107C; + gBattlerControllerFuncs[gActiveBattler] = debug_sub_803107C; break; case R_BUTTON: if ((gMain.heldKeysRaw & B_BUTTON) && (gBattleTypeFlags & BATTLE_TYPE_DOUBLE)) { dp11b_obj_free(gActiveBattler, 1); dp11b_obj_free(gActiveBattler, 0); - gBankAttacker = GetBattlerAtPosition(3); - gBankTarget = GetBattlerAtPosition(1); + gBattlerAttacker = GetBattlerAtPosition(3); + gBattlerTarget = GetBattlerAtPosition(1); sub_80326EC(0); DoMoveAnim(move); - gBattleBankFunc[gActiveBattler] = debug_sub_803107C; + gBattlerControllerFuncs[gActiveBattler] = debug_sub_803107C; } else { @@ -1057,11 +1057,11 @@ void debug_sub_8030C24(void) { dp11b_obj_free(gActiveBattler, 1); dp11b_obj_free(gActiveBattler, 0); - gBankAttacker = GetBattlerAtPosition(1); - gBankTarget = GetBattlerAtPosition(3); + gBattlerAttacker = GetBattlerAtPosition(1); + gBattlerTarget = GetBattlerAtPosition(3); sub_80326EC(0); DoMoveAnim(move); - gBattleBankFunc[gActiveBattler] = debug_sub_803107C; + gBattlerControllerFuncs[gActiveBattler] = debug_sub_803107C; } else { @@ -1106,7 +1106,7 @@ void debug_sub_8030C24(void) (i < 2) ? 0x37 : 0x39); Text_PrintWindow8002F44(&gUnknown_03004210); } - gBattleBankFunc[gActiveBattler] = sub_802C68C; + gBattlerControllerFuncs[gActiveBattler] = sub_802C68C; } } @@ -1143,7 +1143,7 @@ void debug_sub_803107C(void) ConvertIntToDecimalStringN(gDisplayedStringBattle, count, 2, 2); Text_InitWindowAndPrintText(&gUnknown_03004210, gDisplayedStringBattle, 298, 14, 0x39); - gBattleBankFunc[gActiveBattler] = debug_sub_8030C24; + gBattlerControllerFuncs[gActiveBattler] = debug_sub_8030C24; } } @@ -1151,24 +1151,24 @@ void debug_sub_803107C(void) void sub_802D204(void) { - if (gSprites[gBankSpriteIds[gActiveBattler]].callback == SpriteCallbackDummy) + if (gSprites[gBattlerSpriteIds[gActiveBattler]].callback == SpriteCallbackDummy) PlayerBufferExecCompleted(); } // duplicate of sub_802D204 void sub_802D23C(void) { - if (gSprites[gBankSpriteIds[gActiveBattler]].callback == SpriteCallbackDummy) + if (gSprites[gBattlerSpriteIds[gActiveBattler]].callback == SpriteCallbackDummy) PlayerBufferExecCompleted(); } void sub_802D274(void) { - if (gSprites[gBankSpriteIds[gActiveBattler]].callback == SpriteCallbackDummy) + if (gSprites[gBattlerSpriteIds[gActiveBattler]].callback == SpriteCallbackDummy) { nullsub_10(gSaveBlock2.playerGender); - FreeSpriteOamMatrix(&gSprites[gBankSpriteIds[gActiveBattler]]); - DestroySprite(&gSprites[gBankSpriteIds[gActiveBattler]]); + FreeSpriteOamMatrix(&gSprites[gBattlerSpriteIds[gActiveBattler]]); + DestroySprite(&gSprites[gBattlerSpriteIds[gActiveBattler]]); PlayerBufferExecCompleted(); } } @@ -1188,13 +1188,13 @@ void sub_802D31C(void) if (!IsDoubleBattle() || (IsDoubleBattle() && (gBattleTypeFlags & BATTLE_TYPE_MULTI))) { - if (gSprites[gHealthboxIDs[gActiveBattler]].callback == SpriteCallbackDummy) + if (gSprites[gHealthboxSpriteIds[gActiveBattler]].callback == SpriteCallbackDummy) r6 = TRUE; } else { - if (gSprites[gHealthboxIDs[gActiveBattler]].callback == SpriteCallbackDummy - && gSprites[gHealthboxIDs[gActiveBattler ^ 2]].callback == SpriteCallbackDummy) + if (gSprites[gHealthboxSpriteIds[gActiveBattler]].callback == SpriteCallbackDummy + && gSprites[gHealthboxSpriteIds[gActiveBattler ^ 2]].callback == SpriteCallbackDummy) r6 = TRUE; } if (IsCryPlayingOrClearCrySongs()) @@ -1209,14 +1209,14 @@ void sub_802D31C(void) FreeSpriteTilesByTag(0x27F9); FreeSpritePaletteByTag(0x27F9); if (gBattleTypeFlags & BATTLE_TYPE_MULTI) - m4aMPlayContinue(&gMPlay_BGM); + m4aMPlayContinue(&gMPlayInfo_BGM); else - m4aMPlayVolumeControl(&gMPlay_BGM, 0xFFFF, 256); + m4aMPlayVolumeControl(&gMPlayInfo_BGM, 0xFFFF, 256); HandleLowHpMusicChange(&gPlayerParty[gBattlerPartyIndexes[gActiveBattler]], gActiveBattler); if (IsDoubleBattle()) HandleLowHpMusicChange(&gPlayerParty[gBattlerPartyIndexes[gActiveBattler ^ 2]], gActiveBattler ^ 2); ewram17810[gActiveBattler].unk9 = 3; - gBattleBankFunc[gActiveBattler] = sub_802D2E0; + gBattlerControllerFuncs[gActiveBattler] = sub_802D2E0; } } @@ -1232,27 +1232,27 @@ void sub_802D500(void) { DestroySprite(&gSprites[gUnknown_0300434C[gActiveBattler ^ 2]]); sub_8045A5C( - gHealthboxIDs[gActiveBattler ^ 2], + gHealthboxSpriteIds[gActiveBattler ^ 2], &gPlayerParty[gBattlerPartyIndexes[gActiveBattler ^ 2]], 0); sub_804777C(gActiveBattler ^ 2); - sub_8043DFC(gHealthboxIDs[gActiveBattler ^ 2]); + sub_8043DFC(gHealthboxSpriteIds[gActiveBattler ^ 2]); } DestroySprite(&gSprites[gUnknown_0300434C[gActiveBattler]]); sub_8045A5C( - gHealthboxIDs[gActiveBattler], + gHealthboxSpriteIds[gActiveBattler], &gPlayerParty[gBattlerPartyIndexes[gActiveBattler]], 0); sub_804777C(gActiveBattler); - sub_8043DFC(gHealthboxIDs[gActiveBattler]); + sub_8043DFC(gHealthboxSpriteIds[gActiveBattler]); ewram17840.unk9_0 = 0; - gBattleBankFunc[gActiveBattler] = sub_802D31C; + gBattlerControllerFuncs[gActiveBattler] = sub_802D31C; } } void sub_802D680(void) { - if (gSprites[gHealthboxIDs[gActiveBattler]].callback == SpriteCallbackDummy + if (gSprites[gHealthboxSpriteIds[gActiveBattler]].callback == SpriteCallbackDummy && ewram17810[gActiveBattler].unk1_0) { ewram17810[gActiveBattler].unk0_7 = 0; @@ -1261,7 +1261,7 @@ void sub_802D680(void) FreeSpritePaletteByTag(0x27F9); if (ewram17800[gActiveBattler].substituteSprite) move_anim_start_t4(gActiveBattler, gActiveBattler, gActiveBattler, 6); - gBattleBankFunc[gActiveBattler] = sub_802D730; + gBattlerControllerFuncs[gActiveBattler] = sub_802D730; } } @@ -1269,7 +1269,7 @@ void sub_802D730(void) { if (!ewram17810[gActiveBattler].unk0_6 && !IsCryPlayingOrClearCrySongs()) { - m4aMPlayVolumeControl(&gMPlay_BGM, 0xFFFF, 0x100); + m4aMPlayVolumeControl(&gMPlayInfo_BGM, 0xFFFF, 0x100); HandleLowHpMusicChange(&gPlayerParty[gBattlerPartyIndexes[gActiveBattler]], gActiveBattler); PlayerBufferExecCompleted(); } @@ -1283,11 +1283,11 @@ void sub_802D798(void) && !ewram17810[gActiveBattler].unk0_3) { DestroySprite(&gSprites[gUnknown_0300434C[gActiveBattler]]); - sub_8045A5C(gHealthboxIDs[gActiveBattler], &gPlayerParty[gBattlerPartyIndexes[gActiveBattler]], 0); + sub_8045A5C(gHealthboxSpriteIds[gActiveBattler], &gPlayerParty[gBattlerPartyIndexes[gActiveBattler]], 0); sub_804777C(gActiveBattler); - sub_8043DFC(gHealthboxIDs[gActiveBattler]); + sub_8043DFC(gHealthboxSpriteIds[gActiveBattler]); sub_8031F88(gActiveBattler); - gBattleBankFunc[gActiveBattler] = sub_802D680; + gBattlerControllerFuncs[gActiveBattler] = sub_802D680; } } @@ -1295,19 +1295,19 @@ void c3_0802FDF4(u8 taskId) { if (!IsCryPlayingOrClearCrySongs()) { - m4aMPlayVolumeControl(&gMPlay_BGM, 0xFFFF, 0x100); + m4aMPlayVolumeControl(&gMPlayInfo_BGM, 0xFFFF, 0x100); DestroyTask(taskId); } } void bx_t1_healthbar_update(void) { - s16 r4 = sub_8045C78(gActiveBattler, gHealthboxIDs[gActiveBattler], 0, 0); + s16 r4 = sub_8045C78(gActiveBattler, gHealthboxSpriteIds[gActiveBattler], 0, 0); - sub_8043DFC(gHealthboxIDs[gActiveBattler]); + sub_8043DFC(gHealthboxSpriteIds[gActiveBattler]); if (r4 != -1) { - sub_80440EC(gHealthboxIDs[gActiveBattler], r4, 0); + sub_80440EC(gHealthboxSpriteIds[gActiveBattler], r4, 0); } else { @@ -1346,7 +1346,7 @@ void sub_802D924(u8 taskId) gainedExp -= nextLvlExp - currExp; savedActiveBank = gActiveBattler; gActiveBattler = bank; - Emitcmd33(1, 11, gainedExp); + BtlController_EmitTwoReturnValues(1, 11, gainedExp); gActiveBattler = savedActiveBank; if (IsDoubleBattle() == TRUE @@ -1359,7 +1359,7 @@ void sub_802D924(u8 taskId) { currExp += gainedExp; SetMonData(pkmn, MON_DATA_EXP, &currExp); - gBattleBankFunc[bank] = sub_802D90C; + gBattlerControllerFuncs[bank] = sub_802D90C; DestroyTask(taskId); } } @@ -1383,7 +1383,7 @@ void sub_802DA9C(u8 taskId) exp -= currLvlExp; expToNextLvl = gExperienceTables[gBaseStats[species].growthRate][level + 1] - currLvlExp; - sub_8043D84(bank, gHealthboxIDs[bank], expToNextLvl, exp, -r9); + sub_8043D84(bank, gHealthboxSpriteIds[bank], expToNextLvl, exp, -r9); PlaySE(SE_EXP); gTasks[taskId].func = sub_802DB6C; } @@ -1402,8 +1402,8 @@ void sub_802DB6C(u8 taskId) u8 r7 = gTasks[taskId].data[2]; s16 r4; - r4 = sub_8045C78(r7, gHealthboxIDs[r7], 1, 0); - sub_8043DFC(gHealthboxIDs[r7]); + r4 = sub_8045C78(r7, gHealthboxSpriteIds[r7], 1, 0); + sub_8043DFC(gHealthboxSpriteIds[r7]); if (r4 == -1) { struct Pokemon *pkmn; @@ -1431,7 +1431,7 @@ void sub_802DB6C(u8 taskId) r10 -= asdf; r5 = gActiveBattler; gActiveBattler = r7; - Emitcmd33(1, 11, r10); + BtlController_EmitTwoReturnValues(1, 11, r10); gActiveBattler = r5; gTasks[taskId].func = sub_802DCB0; } @@ -1440,7 +1440,7 @@ void sub_802DB6C(u8 taskId) //u32 asdf = sp4 + r10; sp4 += r10; SetMonData(pkmn, MON_DATA_EXP, &sp4); - gBattleBankFunc[r7] = sub_802D90C; + gBattlerControllerFuncs[r7] = sub_802D90C; DestroyTask(taskId); } } @@ -1480,7 +1480,7 @@ _0802DB9C:\n\ ldrh r2, [r6, 0xA]\n\ mov r10, r2\n\ ldrb r7, [r6, 0xC]\n\ - ldr r5, _0802DC64 @ =gHealthboxIDs\n\ + ldr r5, _0802DC64 @ =gHealthboxSpriteIds\n\ adds r5, r7, r5\n\ ldrb r1, [r5]\n\ adds r0, r7, 0\n\ @@ -1561,13 +1561,13 @@ _0802DB9C:\n\ lsrs r2, 16\n\ movs r0, 0x1\n\ movs r1, 0xB\n\ - bl Emitcmd33\n\ + bl BtlController_EmitTwoReturnValues\n\ strb r5, [r4]\n\ ldr r0, _0802DC78 @ =sub_802DCB0\n\ str r0, [r6]\n\ b _0802DC98\n\ .align 2, 0\n\ -_0802DC64: .4byte gHealthboxIDs\n\ +_0802DC64: .4byte gHealthboxSpriteIds\n\ _0802DC68: .4byte gPlayerParty\n\ _0802DC6C: .4byte gExperienceTables\n\ _0802DC70: .4byte gBaseStats\n\ @@ -1579,7 +1579,7 @@ _0802DC7C:\n\ adds r0, r5, 0\n\ movs r1, 0x19\n\ bl SetMonData\n\ - ldr r1, _0802DCA8 @ =gBattleBankFunc\n\ + ldr r1, _0802DCA8 @ =gBattlerControllerFuncs\n\ lsls r0, r7, 2\n\ adds r0, r1\n\ ldr r1, _0802DCAC @ =sub_802D90C\n\ @@ -1596,7 +1596,7 @@ _0802DC98:\n\ pop {r0}\n\ bx r0\n\ .align 2, 0\n\ -_0802DCA8: .4byte gBattleBankFunc\n\ +_0802DCA8: .4byte gBattlerControllerFuncs\n\ _0802DCAC: .4byte sub_802D90C\n"); } #endif @@ -1622,9 +1622,9 @@ void sub_802DD10(u8 taskId) GetMonData(&gPlayerParty[pkmnIndex], MON_DATA_LEVEL); // Unused return value if (IsDoubleBattle() == TRUE && pkmnIndex == gBattlerPartyIndexes[bank ^ 2]) - sub_8045A5C(gHealthboxIDs[bank ^ 2], &gPlayerParty[pkmnIndex], 0); + sub_8045A5C(gHealthboxSpriteIds[bank ^ 2], &gPlayerParty[pkmnIndex], 0); else - sub_8045A5C(gHealthboxIDs[bank], &gPlayerParty[pkmnIndex], 0); + sub_8045A5C(gHealthboxSpriteIds[bank], &gPlayerParty[pkmnIndex], 0); gTasks[taskId].func = sub_802DDC4; } } @@ -1637,20 +1637,20 @@ void sub_802DDC4(u8 taskId) pkmnIndex = gTasks[taskId].data[0]; GetMonData(&gPlayerParty[pkmnIndex], MON_DATA_LEVEL); // Unused return value bank = gTasks[taskId].data[2]; - gBattleBankFunc[bank] = sub_802D90C; + gBattlerControllerFuncs[bank] = sub_802D90C; DestroyTask(taskId); } void sub_802DE10(void) { - if (gSprites[gBankSpriteIds[gActiveBattler]].pos1.y + gSprites[gBankSpriteIds[gActiveBattler]].pos2.y > DISPLAY_HEIGHT) + if (gSprites[gBattlerSpriteIds[gActiveBattler]].pos1.y + gSprites[gBattlerSpriteIds[gActiveBattler]].pos2.y > DISPLAY_HEIGHT) { u16 species = GetMonData(&gPlayerParty[gBattlerPartyIndexes[gActiveBattler]], MON_DATA_SPECIES); nullsub_9(species); - FreeOamMatrix(gSprites[gBankSpriteIds[gActiveBattler]].oam.matrixNum); - DestroySprite(&gSprites[gBankSpriteIds[gActiveBattler]]); - sub_8043DB0(gHealthboxIDs[gActiveBattler]); + FreeOamMatrix(gSprites[gBattlerSpriteIds[gActiveBattler]].oam.matrixNum); + DestroySprite(&gSprites[gBattlerSpriteIds[gActiveBattler]]); + sub_8043DB0(gHealthboxSpriteIds[gActiveBattler]); PlayerBufferExecCompleted(); } } @@ -1659,9 +1659,9 @@ void sub_802DEAC(void) { if (!ewram17810[gActiveBattler].unk0_6) { - FreeSpriteOamMatrix(&gSprites[gBankSpriteIds[gActiveBattler]]); - DestroySprite(&gSprites[gBankSpriteIds[gActiveBattler]]); - sub_8043DB0(gHealthboxIDs[gActiveBattler]); + FreeSpriteOamMatrix(&gSprites[gBattlerSpriteIds[gActiveBattler]]); + DestroySprite(&gSprites[gBattlerSpriteIds[gActiveBattler]]); + sub_8043DB0(gHealthboxSpriteIds[gActiveBattler]); PlayerBufferExecCompleted(); } } @@ -1679,7 +1679,7 @@ void sub_802DF30(void) { u8 r4; - gBattleBankFunc[gActiveBattler] = sub_802DF88; + gBattlerControllerFuncs[gActiveBattler] = sub_802DF88; r4 = gTasks[gUnknown_0300434C[gActiveBattler]].data[0]; DestroyTask(gUnknown_0300434C[gActiveBattler]); sub_8094E20(r4); @@ -1691,9 +1691,9 @@ void sub_802DF88(void) if (gMain.callback2 == BattleMainCB2 && !gPaletteFade.active) { if (gUnknown_0202E8F4 == 1) - Emitcmd34(1, gUnknown_0202E8F5, gUnknown_02038470); + BtlController_EmitChosenMonReturnValue(1, gUnknown_0202E8F5, gUnknown_02038470); else - Emitcmd34(1, 6, NULL); + BtlController_EmitChosenMonReturnValue(1, 6, NULL); if ((gBattleBufferA[gActiveBattler][1] & 0xF) == 1) b_link_standby_message(); PlayerBufferExecCompleted(); @@ -1704,7 +1704,7 @@ void sub_802E004(void) { if (!gPaletteFade.active) { - gBattleBankFunc[gActiveBattler] = sub_802E03C; + gBattlerControllerFuncs[gActiveBattler] = sub_802E03C; nullsub_14(); sub_80A6DCC(); } @@ -1714,7 +1714,7 @@ void sub_802E03C(void) { if (gMain.callback2 == BattleMainCB2 && !gPaletteFade.active) { - Emitcmd35(1, gSpecialVar_ItemId); + BtlController_EmitOneReturnValue(1, gSpecialVar_ItemId); PlayerBufferExecCompleted(); } } @@ -1727,7 +1727,7 @@ void bx_wait_t1(void) void bx_blink_t1(void) { - u8 spriteId = gBankSpriteIds[gActiveBattler]; + u8 spriteId = gBattlerSpriteIds[gActiveBattler]; if (gSprites[spriteId].data[1] == 32) { @@ -1915,7 +1915,7 @@ void PlayerHandleGetAttributes(void) r4 >>= 1; } } - Emitcmd29(1, offset, unkData); + BtlController_EmitDataTransfer(1, offset, unkData); PlayerBufferExecCompleted(); } @@ -2230,7 +2230,7 @@ void PlayerHandlecmd1(void) u8 *dst; MEMSET_ALT(&battleMon + gBattleBufferA[gActiveBattler][1], src[i], gBattleBufferA[gActiveBattler][2], i, dst); - Emitcmd29(1, gBattleBufferA[gActiveBattler][2], dst); + BtlController_EmitDataTransfer(1, gBattleBufferA[gActiveBattler][2], dst); PlayerBufferExecCompleted(); } @@ -2487,8 +2487,8 @@ void PlayerHandlecmd3(void) void PlayerHandleLoadPokeSprite(void) { BattleLoadPlayerMonSprite(&gPlayerParty[gBattlerPartyIndexes[gActiveBattler]], gActiveBattler); - gSprites[gBankSpriteIds[gActiveBattler]].oam.paletteNum = gActiveBattler; - gBattleBankFunc[gActiveBattler] = bx_0802E404; + gSprites[gBattlerSpriteIds[gActiveBattler]].oam.paletteNum = gActiveBattler; + gBattlerControllerFuncs[gActiveBattler] = bx_0802E404; } void PlayerHandleSendOutPoke(void) @@ -2499,7 +2499,7 @@ void PlayerHandleSendOutPoke(void) gActionSelectionCursor[gActiveBattler] = 0; gMoveSelectionCursor[gActiveBattler] = 0; sub_802F934(gActiveBattler, gBattleBufferA[gActiveBattler][2]); - gBattleBankFunc[gActiveBattler] = sub_802D798; + gBattlerControllerFuncs[gActiveBattler] = sub_802D798; } void sub_802F934(u8 bank, u8 b) @@ -2511,18 +2511,18 @@ void sub_802F934(u8 bank, u8 b) species = GetMonData(&gPlayerParty[gBattlerPartyIndexes[bank]], MON_DATA_SPECIES); gUnknown_0300434C[bank] = CreateInvisibleSpriteWithCallback(sub_80312F0); GetMonSpriteTemplate_803C56C(species, GetBattlerPosition(bank)); - gBankSpriteIds[bank] = CreateSprite( + gBattlerSpriteIds[bank] = CreateSprite( &gUnknown_02024E8C, GetBattlerSpriteCoord(bank, 2), sub_8077F68(bank), GetBattlerSubpriority(bank)); - gSprites[gUnknown_0300434C[bank]].data[1] = gBankSpriteIds[bank]; - gSprites[gBankSpriteIds[bank]].data[0] = bank; - gSprites[gBankSpriteIds[bank]].data[2] = species; - gSprites[gBankSpriteIds[bank]].oam.paletteNum = bank; - StartSpriteAnim(&gSprites[gBankSpriteIds[bank]], gBattleMonForms[bank]); - gSprites[gBankSpriteIds[bank]].invisible = TRUE; - gSprites[gBankSpriteIds[bank]].callback = SpriteCallbackDummy; + gSprites[gUnknown_0300434C[bank]].data[1] = gBattlerSpriteIds[bank]; + gSprites[gBattlerSpriteIds[bank]].data[0] = bank; + gSprites[gBattlerSpriteIds[bank]].data[2] = species; + gSprites[gBattlerSpriteIds[bank]].oam.paletteNum = bank; + StartSpriteAnim(&gSprites[gBattlerSpriteIds[bank]], gBattleMonForms[bank]); + gSprites[gBattlerSpriteIds[bank]].invisible = TRUE; + gSprites[gBattlerSpriteIds[bank]].callback = SpriteCallbackDummy; gSprites[gUnknown_0300434C[bank]].data[0] = StartSendOutMonAnimation(0, 0xFF); } @@ -2531,13 +2531,13 @@ void PlayerHandleReturnPokeToBall(void) if (gBattleBufferA[gActiveBattler][1] == 0) { ewram17810[gActiveBattler].unk4 = 0; - gBattleBankFunc[gActiveBattler] = sub_802FB2C; + gBattlerControllerFuncs[gActiveBattler] = sub_802FB2C; } else { - FreeSpriteOamMatrix(&gSprites[gBankSpriteIds[gActiveBattler]]); - DestroySprite(&gSprites[gBankSpriteIds[gActiveBattler]]); - sub_8043DB0(gHealthboxIDs[gActiveBattler]); + FreeSpriteOamMatrix(&gSprites[gBattlerSpriteIds[gActiveBattler]]); + DestroySprite(&gSprites[gBattlerSpriteIds[gActiveBattler]]); + sub_8043DB0(gHealthboxSpriteIds[gActiveBattler]); PlayerBufferExecCompleted(); } } @@ -2556,7 +2556,7 @@ void sub_802FB2C(void) { ewram17810[gActiveBattler].unk4 = 0; move_anim_start_t4(gActiveBattler, gActiveBattler, gActiveBattler, 1); - gBattleBankFunc[gActiveBattler] = sub_802DEAC; + gBattlerControllerFuncs[gActiveBattler] = sub_802DEAC; } } } @@ -2578,44 +2578,44 @@ void PlayerHandleTrainerThrow(void) } LoadPlayerTrainerBankSprite(gSaveBlock2.playerGender, gActiveBattler); GetMonSpriteTemplate_803C5A0(gSaveBlock2.playerGender, GetBattlerPosition(gActiveBattler)); - gBankSpriteIds[gActiveBattler] = CreateSprite( + gBattlerSpriteIds[gActiveBattler] = CreateSprite( &gUnknown_02024E8C, r7 + 80, (8 - gTrainerBackPicCoords[gSaveBlock2.playerGender].coords) * 4 + 80, GetBattlerSubpriority(gActiveBattler)); - gSprites[gBankSpriteIds[gActiveBattler]].oam.paletteNum = gActiveBattler; - gSprites[gBankSpriteIds[gActiveBattler]].pos2.x = 240; - gSprites[gBankSpriteIds[gActiveBattler]].data[0] = -2; - gSprites[gBankSpriteIds[gActiveBattler]].callback = sub_80313A0; - gBattleBankFunc[gActiveBattler] = sub_802D204; + gSprites[gBattlerSpriteIds[gActiveBattler]].oam.paletteNum = gActiveBattler; + gSprites[gBattlerSpriteIds[gActiveBattler]].pos2.x = 240; + gSprites[gBattlerSpriteIds[gActiveBattler]].data[0] = -2; + gSprites[gBattlerSpriteIds[gActiveBattler]].callback = sub_80313A0; + gBattlerControllerFuncs[gActiveBattler] = sub_802D204; } void PlayerHandleTrainerSlide(void) { LoadPlayerTrainerBankSprite(gSaveBlock2.playerGender, gActiveBattler); GetMonSpriteTemplate_803C5A0(gSaveBlock2.playerGender, GetBattlerPosition(gActiveBattler)); - gBankSpriteIds[gActiveBattler] = CreateSprite( + gBattlerSpriteIds[gActiveBattler] = CreateSprite( &gUnknown_02024E8C, 80, (8 - gTrainerBackPicCoords[gSaveBlock2.playerGender].coords) * 4 + 80, 30); - gSprites[gBankSpriteIds[gActiveBattler]].oam.paletteNum = gActiveBattler; - gSprites[gBankSpriteIds[gActiveBattler]].pos2.x = -96; - gSprites[gBankSpriteIds[gActiveBattler]].data[0] = 2; - gSprites[gBankSpriteIds[gActiveBattler]].callback = sub_80313A0; - gBattleBankFunc[gActiveBattler] = sub_802D23C; + gSprites[gBattlerSpriteIds[gActiveBattler]].oam.paletteNum = gActiveBattler; + gSprites[gBattlerSpriteIds[gActiveBattler]].pos2.x = -96; + gSprites[gBattlerSpriteIds[gActiveBattler]].data[0] = 2; + gSprites[gBattlerSpriteIds[gActiveBattler]].callback = sub_80313A0; + gBattlerControllerFuncs[gActiveBattler] = sub_802D23C; } void PlayerHandleTrainerSlideBack(void) { - oamt_add_pos2_onto_pos1(&gSprites[gBankSpriteIds[gActiveBattler]]); - gSprites[gBankSpriteIds[gActiveBattler]].data[0] = 50; - gSprites[gBankSpriteIds[gActiveBattler]].data[2] = -40; - gSprites[gBankSpriteIds[gActiveBattler]].data[4] = gSprites[gBankSpriteIds[gActiveBattler]].pos1.y; - gSprites[gBankSpriteIds[gActiveBattler]].callback = StartAnimLinearTranslation; - StoreSpriteCallbackInData(&gSprites[gBankSpriteIds[gActiveBattler]], SpriteCallbackDummy); - StartSpriteAnim(&gSprites[gBankSpriteIds[gActiveBattler]], 1); - gBattleBankFunc[gActiveBattler] = sub_802D274; + oamt_add_pos2_onto_pos1(&gSprites[gBattlerSpriteIds[gActiveBattler]]); + gSprites[gBattlerSpriteIds[gActiveBattler]].data[0] = 50; + gSprites[gBattlerSpriteIds[gActiveBattler]].data[2] = -40; + gSprites[gBattlerSpriteIds[gActiveBattler]].data[4] = gSprites[gBattlerSpriteIds[gActiveBattler]].pos1.y; + gSprites[gBattlerSpriteIds[gActiveBattler]].callback = StartAnimLinearTranslation; + StoreSpriteCallbackInData(&gSprites[gBattlerSpriteIds[gActiveBattler]], SpriteCallbackDummy); + StartSpriteAnim(&gSprites[gBattlerSpriteIds[gActiveBattler]], 1); + gBattlerControllerFuncs[gActiveBattler] = sub_802D274; } void PlayerHandlecmd10(void) @@ -2633,10 +2633,10 @@ void PlayerHandlecmd10(void) ewram17810[gActiveBattler].unk4 = 0; HandleLowHpMusicChange(&gPlayerParty[gBattlerPartyIndexes[gActiveBattler]], gActiveBattler); PlaySE12WithPanning(SE_POKE_DEAD, -64); - gSprites[gBankSpriteIds[gActiveBattler]].data[1] = 0; - gSprites[gBankSpriteIds[gActiveBattler]].data[2] = 5; - gSprites[gBankSpriteIds[gActiveBattler]].callback = sub_80105EC; - gBattleBankFunc[gActiveBattler] = sub_802DE10; + gSprites[gBattlerSpriteIds[gActiveBattler]].data[1] = 0; + gSprites[gBattlerSpriteIds[gActiveBattler]].data[2] = 5; + gSprites[gBattlerSpriteIds[gActiveBattler]].callback = sub_80105EC; + gBattlerControllerFuncs[gActiveBattler] = sub_802DE10; } } } @@ -2652,7 +2652,7 @@ void PlayerHandlecmd12(void) ewram17840.unk8 = 4; gDoingBattleAnim = 1; move_anim_start_t4(gActiveBattler, gActiveBattler, GetBattlerAtPosition(1), 3); - gBattleBankFunc[gActiveBattler] = bx_wait_t1; + gBattlerControllerFuncs[gActiveBattler] = bx_wait_t1; } void PlayerHandleBallThrow(void) @@ -2662,7 +2662,7 @@ void PlayerHandleBallThrow(void) ewram17840.unk8 = var; gDoingBattleAnim = 1; move_anim_start_t4(gActiveBattler, gActiveBattler, GetBattlerAtPosition(1), 3); - gBattleBankFunc[gActiveBattler] = bx_wait_t1; + gBattlerControllerFuncs[gActiveBattler] = bx_wait_t1; } void PlayerHandlePuase(void) @@ -2689,15 +2689,15 @@ void PlayerHandleMoveAnimation(void) gWeatherMoveAnim = gBattleBufferA[gActiveBattler][12] | (gBattleBufferA[gActiveBattler][13] << 8); gAnimDisableStructPtr = (struct DisableStruct *)&gBattleBufferA[gActiveBattler][16]; gTransformedPersonalities[gActiveBattler] = gAnimDisableStructPtr->transformedMonPersonality; - if (sub_8031720(r0, gAnimMoveTurn) != 0) + if (IsMoveWithoutAnimation(r0, gAnimMoveTurn) != 0) { - // Dead code. sub_8031720 always returns 0. + // Dead code. IsMoveWithoutAnimation always returns 0. PlayerBufferExecCompleted(); } else { ewram17810[gActiveBattler].unk4 = 0; - gBattleBankFunc[gActiveBattler] = sub_8030190; + gBattlerControllerFuncs[gActiveBattler] = sub_8030190; } } } @@ -2756,7 +2756,7 @@ void PlayerHandlePrintString(void) gBattle_BG0_Y = 0; BufferStringBattle(*(u16 *)&gBattleBufferA[gActiveBattler][2]); Text_InitWindow8002EB0(&gUnknown_03004210, gDisplayedStringBattle, 0x90, 2, 15); - gBattleBankFunc[gActiveBattler] = sub_802DF18; + gBattlerControllerFuncs[gActiveBattler] = sub_802DF18; } void PlayerHandlePrintStringPlayerOnly(void) @@ -2776,7 +2776,7 @@ void PlayerHandlecmd18(void) Text_FillWindowRect(&gUnknown_03004210, 10, 2, 15, 27, 18); Text_FillWindowRect(&gUnknown_03004210, 10, 2, 35, 16, 38); - gBattleBankFunc[gActiveBattler] = sub_802C098; + gBattlerControllerFuncs[gActiveBattler] = sub_802C098; Text_InitWindow(&gUnknown_03004210, BattleText_MenuOptions, 400, 18, 35); Text_PrintWindow8002F44(&gUnknown_03004210); @@ -2787,7 +2787,7 @@ void PlayerHandlecmd18(void) sub_802E3E4(gActionSelectionCursor[gActiveBattler], 0); - StrCpyDecodeToDisplayedStringBattle(BattleText_OtherMenu); + BattleStringExpandPlaceholdersToDisplayedString(BattleText_OtherMenu); Text_InitWindow(&gUnknown_03004210, gDisplayedStringBattle, SUB_803037C_TILE_DATA_OFFSET, 2, 35); Text_PrintWindow8002F44(&gUnknown_03004210); } @@ -2800,7 +2800,7 @@ void PlayerHandlecmd20(void) { MenuCursor_Create814A5C0(0, 0xFFFF, 12, 0x2D9F, 0); sub_80304A8(); - gBattleBankFunc[gActiveBattler] = sub_802C68C; + gBattlerControllerFuncs[gActiveBattler] = sub_802C68C; } void sub_80304A8(void) @@ -2824,7 +2824,7 @@ void PlayerHandleOpenBag(void) s32 i; BeginNormalPaletteFade(0xFFFFFFFF, 0, 0, 16, RGB(0, 0, 0)); - gBattleBankFunc[gActiveBattler] = sub_802E004; + gBattlerControllerFuncs[gActiveBattler] = sub_802E004; gBankInMenu = gActiveBattler; for (i = 0; i < 3; i++) gUnknown_02038470[i] = gBattleBufferA[gActiveBattler][1 + i]; @@ -2842,7 +2842,7 @@ void PlayerHandlecmd22(void) for (i = 0; i < 3; i++) gUnknown_02038470[i] = gBattleBufferA[gActiveBattler][4 + i]; BeginNormalPaletteFade(0xFFFFFFFF, 0, 0, 16, RGB(0, 0, 0)); - gBattleBankFunc[gActiveBattler] = sub_802DF30; + gBattlerControllerFuncs[gActiveBattler] = sub_802DF30; gBankInMenu = gActiveBattler; } @@ -2864,16 +2864,16 @@ void PlayerHandleHealthBarUpdate(void) u32 maxHP = GetMonData(&gPlayerParty[gBattlerPartyIndexes[gActiveBattler]], MON_DATA_MAX_HP); u32 curHP = GetMonData(&gPlayerParty[gBattlerPartyIndexes[gActiveBattler]], MON_DATA_HP); - sub_8043D84(gActiveBattler, gHealthboxIDs[gActiveBattler], maxHP, curHP, r7); + sub_8043D84(gActiveBattler, gHealthboxSpriteIds[gActiveBattler], maxHP, curHP, r7); } else { u32 maxHP = GetMonData(&gPlayerParty[gBattlerPartyIndexes[gActiveBattler]], MON_DATA_MAX_HP); - sub_8043D84(gActiveBattler, gHealthboxIDs[gActiveBattler], maxHP, 0, r7); - sub_80440EC(gHealthboxIDs[gActiveBattler], 0, 0); + sub_8043D84(gActiveBattler, gHealthboxSpriteIds[gActiveBattler], maxHP, 0, r7); + sub_80440EC(gHealthboxSpriteIds[gActiveBattler], 0, 0); } - gBattleBankFunc[gActiveBattler] = bx_t1_healthbar_update; + gBattlerControllerFuncs[gActiveBattler] = bx_t1_healthbar_update; } void PlayerHandleExpBarUpdate(void) @@ -2896,7 +2896,7 @@ void PlayerHandleExpBarUpdate(void) gTasks[taskId].data[0] = r7; gTasks[taskId].data[1] = r4; gTasks[taskId].data[2] = gActiveBattler; - gBattleBankFunc[gActiveBattler] = nullsub_91; + gBattlerControllerFuncs[gActiveBattler] = nullsub_91; } } @@ -2904,9 +2904,9 @@ void PlayerHandleStatusIconUpdate(void) { if (!mplay_80342A4(gActiveBattler)) { - sub_8045A5C(gHealthboxIDs[gActiveBattler], &gPlayerParty[gBattlerPartyIndexes[gActiveBattler]], 9); + sub_8045A5C(gHealthboxSpriteIds[gActiveBattler], &gPlayerParty[gBattlerPartyIndexes[gActiveBattler]], 9); ewram17810[gActiveBattler].unk0_4 = 0; - gBattleBankFunc[gActiveBattler] = sub_802E434; + gBattlerControllerFuncs[gActiveBattler] = sub_802E434; } } @@ -2917,7 +2917,7 @@ void PlayerHandleStatusAnimation(void) move_anim_start_t2_for_situation( gBattleBufferA[gActiveBattler][1], gBattleBufferA[gActiveBattler][2] | (gBattleBufferA[gActiveBattler][3] << 8) | (gBattleBufferA[gActiveBattler][4] << 16) | (gBattleBufferA[gActiveBattler][5] << 24)); - gBattleBankFunc[gActiveBattler] = sub_802E434; + gBattlerControllerFuncs[gActiveBattler] = sub_802E434; } } @@ -2959,25 +2959,25 @@ void PlayerHandlecmd32(void) void PlayerHandlecmd33(void) { - Emitcmd33(1, 0, 0); + BtlController_EmitTwoReturnValues(1, 0, 0); PlayerBufferExecCompleted(); } void PlayerHandlecmd34(void) { - Emitcmd34(1, 0, 0); + BtlController_EmitChosenMonReturnValue(1, 0, 0); PlayerBufferExecCompleted(); } void PlayerHandlecmd35(void) { - Emitcmd35(1, 0); + BtlController_EmitOneReturnValue(1, 0); PlayerBufferExecCompleted(); } void PlayerHandlecmd36(void) { - Emitcmd36(1, 0); + BtlController_EmitOneReturnValue_Duplicate(1, 0); PlayerBufferExecCompleted(); } @@ -3007,16 +3007,16 @@ void PlayerHandlecmd40(void) void PlayerHandleHitAnimation(void) { - if (gSprites[gBankSpriteIds[gActiveBattler]].invisible == TRUE) + if (gSprites[gBattlerSpriteIds[gActiveBattler]].invisible == TRUE) { PlayerBufferExecCompleted(); } else { gDoingBattleAnim = 1; - gSprites[gBankSpriteIds[gActiveBattler]].data[1] = 0; + gSprites[gBattlerSpriteIds[gActiveBattler]].data[1] = 0; sub_8047858(gActiveBattler); - gBattleBankFunc[gActiveBattler] = bx_blink_t1; + gBattlerControllerFuncs[gActiveBattler] = bx_blink_t1; } } @@ -3063,23 +3063,23 @@ void PlayerHandleTrainerBallThrow(void) u8 paletteNum; u8 taskId; - oamt_add_pos2_onto_pos1(&gSprites[gBankSpriteIds[gActiveBattler]]); - gSprites[gBankSpriteIds[gActiveBattler]].data[0] = 50; - gSprites[gBankSpriteIds[gActiveBattler]].data[2] = -40; - gSprites[gBankSpriteIds[gActiveBattler]].data[4] = gSprites[gBankSpriteIds[gActiveBattler]].pos1.y; - gSprites[gBankSpriteIds[gActiveBattler]].callback = StartAnimLinearTranslation; - gSprites[gBankSpriteIds[gActiveBattler]].data[5] = gActiveBattler; - StoreSpriteCallbackInData(&gSprites[gBankSpriteIds[gActiveBattler]], sub_8030E38); - StartSpriteAnim(&gSprites[gBankSpriteIds[gActiveBattler]], 1); + oamt_add_pos2_onto_pos1(&gSprites[gBattlerSpriteIds[gActiveBattler]]); + gSprites[gBattlerSpriteIds[gActiveBattler]].data[0] = 50; + gSprites[gBattlerSpriteIds[gActiveBattler]].data[2] = -40; + gSprites[gBattlerSpriteIds[gActiveBattler]].data[4] = gSprites[gBattlerSpriteIds[gActiveBattler]].pos1.y; + gSprites[gBattlerSpriteIds[gActiveBattler]].callback = StartAnimLinearTranslation; + gSprites[gBattlerSpriteIds[gActiveBattler]].data[5] = gActiveBattler; + StoreSpriteCallbackInData(&gSprites[gBattlerSpriteIds[gActiveBattler]], sub_8030E38); + StartSpriteAnim(&gSprites[gBattlerSpriteIds[gActiveBattler]], 1); paletteNum = AllocSpritePalette(0xD6F8); LoadCompressedPalette(gTrainerBackPicPaletteTable[gSaveBlock2.playerGender].data, 0x100 + paletteNum * 16, 32); - gSprites[gBankSpriteIds[gActiveBattler]].oam.paletteNum = paletteNum; + gSprites[gBattlerSpriteIds[gActiveBattler]].oam.paletteNum = paletteNum; taskId = CreateTask(task05_08033660, 5); gTasks[taskId].data[0] = gActiveBattler; if (ewram17810[gActiveBattler].unk0_0) gTasks[gUnknown_02024E68[gActiveBattler]].func = sub_8044CA0; ewram17810[4].unk9 |= 1; - gBattleBankFunc[gActiveBattler] = nullsub_91; + gBattlerControllerFuncs[gActiveBattler] = nullsub_91; } void sub_8030E38(struct Sprite *sprite) @@ -3090,7 +3090,7 @@ void sub_8030E38(struct Sprite *sprite) FreeSpritePaletteByTag(GetSpritePaletteTagByPaletteNum(sprite->oam.paletteNum)); DestroySprite(sprite); BattleLoadPlayerMonSprite(&gPlayerParty[gBattlerPartyIndexes[r4]], r4); - StartSpriteAnim(&gSprites[gBankSpriteIds[r4]], 0); + StartSpriteAnim(&gSprites[gBattlerSpriteIds[r4]], 0); } void task05_08033660(u8 taskId) @@ -3119,7 +3119,7 @@ void task05_08033660(u8 taskId) sub_802F934(gActiveBattler, 0); gActiveBattler ^= 2; } - gBattleBankFunc[gActiveBattler] = sub_802D500; + gBattlerControllerFuncs[gActiveBattler] = sub_802D500; gActiveBattler = savedActiveBank; DestroyTask(taskId); } @@ -3138,7 +3138,7 @@ void PlayerHandlecmd48(void) ewram17810[gActiveBattler].unk5 = 0; if (gBattleBufferA[gActiveBattler][2] != 0) ewram17810[gActiveBattler].unk5 = 0x5D; - gBattleBankFunc[gActiveBattler] = sub_8031064; + gBattlerControllerFuncs[gActiveBattler] = sub_8031064; } } @@ -3169,7 +3169,7 @@ void PlayerHandleSpriteInvisibility(void) { if (IsBankSpritePresent(gActiveBattler)) { - gSprites[gBankSpriteIds[gActiveBattler]].invisible = gBattleBufferA[gActiveBattler][1]; + gSprites[gBattlerSpriteIds[gActiveBattler]].invisible = gBattleBufferA[gActiveBattler][1]; sub_8031F88(gActiveBattler); } PlayerBufferExecCompleted(); @@ -3185,7 +3185,7 @@ void PlayerHandleBattleAnimation(void) if (move_anim_start_t3(gActiveBattler, gActiveBattler, gActiveBattler, val2, val)) PlayerBufferExecCompleted(); else - gBattleBankFunc[gActiveBattler] = sub_802E460; + gBattlerControllerFuncs[gActiveBattler] = sub_802E460; } } @@ -3231,7 +3231,7 @@ void PlayerHandlecmd55(void) FadeOutMapMusic(5); BeginFastPaletteFade(3); PlayerBufferExecCompleted(); - gBattleBankFunc[gActiveBattler] = sub_802D18C; + gBattlerControllerFuncs[gActiveBattler] = sub_802D18C; } void PlayerHandlecmd56(void) diff --git a/src/battle/battle_controller_safari.c b/src/battle_controller_safari.c index e547c4a3c..28418531f 100644 --- a/src/battle/battle_controller_safari.c +++ b/src/battle_controller_safari.c @@ -23,17 +23,17 @@ extern const u8 BattleText_PlayerMenu[]; extern u8 gActiveBattler; extern const u8 BattleText_MenuOptionsSafari[]; -extern void *gBattleBankFunc[]; +extern void *gBattlerControllerFuncs[]; extern u8 gBattleBufferA[][0x200]; extern bool8 gDoingBattleAnim; -extern u8 gBankSpriteIds[]; +extern u8 gBattlerSpriteIds[]; extern struct SpriteTemplate gUnknown_02024E8C; extern u16 gBattleTypeFlags; -extern u32 gBattleExecBuffer; +extern u32 gBattleControllerExecFlags; extern u16 gSpecialVar_ItemId; extern MainCallback gPreBattleCallback1; extern u8 gBankInMenu; -extern u8 gHealthboxIDs[]; +extern u8 gHealthboxSpriteIds[]; extern u16 gBattlerPartyIndexes[]; extern u16 gUnknown_02024DE8; extern u8 gBattleOutcome; @@ -192,12 +192,12 @@ void unref_sub_812B464(void) void SetBankFuncToSafariBufferRunCommand(void) { - gBattleBankFunc[gActiveBattler] = SafariBufferRunCommand; + gBattlerControllerFuncs[gActiveBattler] = SafariBufferRunCommand; } void SafariBufferRunCommand(void) { - if (gBattleExecBuffer & gBitTable[gActiveBattler]) + if (gBattleControllerExecFlags & gBitTable[gActiveBattler]) { if (gBattleBufferA[gActiveBattler][0] < 0x39) gSafariBufferCommands[gBattleBufferA[gActiveBattler][0]](); @@ -217,16 +217,16 @@ void bx_battle_menu_t6_2(void) switch (gActionSelectionCursor[gActiveBattler]) { case 0: - Emitcmd33(1, 5, 0); + BtlController_EmitTwoReturnValues(1, 5, 0); break; case 1: - Emitcmd33(1, 6, 0); + BtlController_EmitTwoReturnValues(1, 6, 0); break; case 2: - Emitcmd33(1, 7, 0); + BtlController_EmitTwoReturnValues(1, 7, 0); break; case 3: - Emitcmd33(1, 8, 0); + BtlController_EmitTwoReturnValues(1, 8, 0); break; } SafariBufferExecCompleted(); @@ -286,7 +286,7 @@ void bx_battle_menu_t6_2(void) void sub_812B65C(void) { - if (gSprites[gBankSpriteIds[gActiveBattler]].callback == SpriteCallbackDummy) + if (gSprites[gBattlerSpriteIds[gActiveBattler]].callback == SpriteCallbackDummy) SafariBufferExecCompleted(); } @@ -316,7 +316,7 @@ void sub_812B724(void) { if (!gPaletteFade.active) { - gBattleBankFunc[gActiveBattler] = sub_812B758; + gBattlerControllerFuncs[gActiveBattler] = sub_812B758; sub_810BADC(); } } @@ -325,7 +325,7 @@ void sub_812B758(void) { if (gMain.callback2 == BattleMainCB2 && !gPaletteFade.active) { - Emitcmd35(1, gSpecialVar_ItemId); + BtlController_EmitOneReturnValue(1, gSpecialVar_ItemId); SafariBufferExecCompleted(); } } @@ -338,7 +338,7 @@ void sub_812B794(void) void SafariBufferExecCompleted(void) { - gBattleBankFunc[gActiveBattler] = SafariBufferRunCommand; + gBattlerControllerFuncs[gActiveBattler] = SafariBufferRunCommand; if (gBattleTypeFlags & BATTLE_TYPE_LINK) { u8 playerId = GetMultiplayerId(); @@ -348,7 +348,7 @@ void SafariBufferExecCompleted(void) } else { - gBattleExecBuffer &= ~gBitTable[gActiveBattler]; + gBattleControllerExecFlags &= ~gBitTable[gActiveBattler]; } } @@ -397,16 +397,16 @@ void SafariHandleTrainerThrow(void) { LoadPlayerTrainerBankSprite(gSaveBlock2.playerGender, gActiveBattler); GetMonSpriteTemplate_803C5A0(gSaveBlock2.playerGender, GetBattlerPosition(gActiveBattler)); - gBankSpriteIds[gActiveBattler] = CreateSprite( + gBattlerSpriteIds[gActiveBattler] = CreateSprite( &gUnknown_02024E8C, 80, (8 - gTrainerBackPicCoords[gSaveBlock2.playerGender].coords) * 4 + 80, 30); - gSprites[gBankSpriteIds[gActiveBattler]].oam.paletteNum = gActiveBattler; - gSprites[gBankSpriteIds[gActiveBattler]].pos2.x = 240; - gSprites[gBankSpriteIds[gActiveBattler]].data[0] = -2; - gSprites[gBankSpriteIds[gActiveBattler]].callback = sub_80313A0; - gBattleBankFunc[gActiveBattler] = sub_812B65C; + gSprites[gBattlerSpriteIds[gActiveBattler]].oam.paletteNum = gActiveBattler; + gSprites[gBattlerSpriteIds[gActiveBattler]].pos2.x = 240; + gSprites[gBattlerSpriteIds[gActiveBattler]].data[0] = -2; + gSprites[gBattlerSpriteIds[gActiveBattler]].callback = sub_80313A0; + gBattlerControllerFuncs[gActiveBattler] = sub_812B65C; } void SafariHandleTrainerSlide(void) @@ -434,7 +434,7 @@ void SafariHandlecmd12(void) ewram17840.unk8 = 4; gDoingBattleAnim = 1; move_anim_start_t4(gActiveBattler, gActiveBattler, GetBattlerAtPosition(1), 4); - gBattleBankFunc[gActiveBattler] = bx_wait_t6; + gBattlerControllerFuncs[gActiveBattler] = bx_wait_t6; } void SafariHandleBallThrow(void) @@ -444,7 +444,7 @@ void SafariHandleBallThrow(void) ewram17840.unk8 = var; gDoingBattleAnim = 1; move_anim_start_t4(gActiveBattler, gActiveBattler, GetBattlerAtPosition(1), 4); - gBattleBankFunc[gActiveBattler] = bx_wait_t6; + gBattlerControllerFuncs[gActiveBattler] = bx_wait_t6; } // TODO: spell Pause correctly @@ -464,7 +464,7 @@ void SafariHandlePrintString(void) gBattle_BG0_Y = 0; BufferStringBattle(*(u16 *)&gBattleBufferA[gActiveBattler][2]); Text_InitWindow8002EB0(&gUnknown_03004210, gDisplayedStringBattle, 144, 2, 15); - gBattleBankFunc[gActiveBattler] = sub_812B694; + gBattlerControllerFuncs[gActiveBattler] = sub_812B694; } void SafariHandlePrintStringPlayerOnly(void) @@ -484,7 +484,7 @@ void SafariHandlecmd18(void) gUnknown_03004210.paletteNum = 0; Text_FillWindowRectDefPalette(&gUnknown_03004210, 10, 2, 15, 27, 18); Text_FillWindowRectDefPalette(&gUnknown_03004210, 10, 2, 35, 16, 36); - gBattleBankFunc[gActiveBattler] = bx_battle_menu_t6_2; + gBattlerControllerFuncs[gActiveBattler] = bx_battle_menu_t6_2; Text_InitWindow(&gUnknown_03004210, BattleText_MenuOptionsSafari, 400, 18, 35); Text_PrintWindow8002F44(&gUnknown_03004210); @@ -494,7 +494,7 @@ void SafariHandlecmd18(void) nullsub_8(i); sub_802E3E4(gActionSelectionCursor[gActiveBattler], 0); - StrCpyDecodeToDisplayedStringBattle(BattleText_PlayerMenu); + BattleStringExpandPlaceholdersToDisplayedString(BattleText_PlayerMenu); Text_InitWindow(&gUnknown_03004210, gDisplayedStringBattle, SUB_812BB10_TILE_DATA_OFFSET, 2, 35); Text_PrintWindow8002F44(&gUnknown_03004210); @@ -513,7 +513,7 @@ void SafariHandlecmd20(void) void SafariHandleOpenBag(void) { BeginNormalPaletteFade(0xFFFFFFFF, 0, 0, 16, RGB(0, 0, 0)); - gBattleBankFunc[gActiveBattler] = sub_812B724; + gBattlerControllerFuncs[gActiveBattler] = sub_812B724; gBankInMenu = gActiveBattler; } @@ -539,7 +539,7 @@ void SafariHandleExpBarUpdate(void) void SafariHandleStatusIconUpdate(void) { - sub_8045A5C(gHealthboxIDs[gActiveBattler], &gPlayerParty[gBattlerPartyIndexes[gActiveBattler]], 11); + sub_8045A5C(gHealthboxSpriteIds[gActiveBattler], &gPlayerParty[gBattlerPartyIndexes[gActiveBattler]], 11); SafariBufferExecCompleted(); } @@ -658,9 +658,9 @@ void SafariHandleIntroSlide(void) void SafariHandleTrainerBallThrow(void) { - sub_8045A5C(gHealthboxIDs[gActiveBattler], &gPlayerParty[gBattlerPartyIndexes[gActiveBattler]], 10); + sub_8045A5C(gHealthboxSpriteIds[gActiveBattler], &gPlayerParty[gBattlerPartyIndexes[gActiveBattler]], 10); sub_804777C(gActiveBattler); - sub_8043DFC(gHealthboxIDs[gActiveBattler]); + sub_8043DFC(gHealthboxSpriteIds[gActiveBattler]); SafariBufferExecCompleted(); } @@ -692,7 +692,7 @@ void SafariHandleBattleAnimation(void) if (move_anim_start_t3(gActiveBattler, gActiveBattler, gActiveBattler, r3, r4) != 0) SafariBufferExecCompleted(); else - gBattleBankFunc[gActiveBattler] = sub_812B794; + gBattlerControllerFuncs[gActiveBattler] = sub_812B794; } void SafariHandleLinkStandbyMsg(void) @@ -712,7 +712,7 @@ void SafariHandlecmd55(void) BeginFastPaletteFade(3); SafariBufferExecCompleted(); if ((gBattleTypeFlags & BATTLE_TYPE_LINK) && !(gBattleTypeFlags & BATTLE_TYPE_WILD)) - gBattleBankFunc[gActiveBattler] = sub_812B6AC; + gBattlerControllerFuncs[gActiveBattler] = sub_812B6AC; } void SafariHandlecmd56(void) diff --git a/src/battle/battle_controller_wally.c b/src/battle_controller_wally.c index fa8b2a63b..a16fe26cc 100644 --- a/src/battle/battle_controller_wally.c +++ b/src/battle_controller_wally.c @@ -1,7 +1,7 @@ #include "global.h" #include "battle.h" #include "battle_anim.h" -#include "battle_anim_813F0F4.h" +#include "battle_anim_special.h" #include "battle_interface.h" #include "battle_message.h" #include "data2.h" @@ -29,14 +29,14 @@ struct MovePpInfo }; extern u8 gActiveBattler; -extern void (*gBattleBankFunc[])(void); -extern u32 gBattleExecBuffer; +extern void (*gBattlerControllerFuncs[])(void); +extern u32 gBattleControllerExecFlags; extern u8 gBattleBufferA[][0x200]; -extern u8 gBankSpriteIds[]; +extern u8 gBattlerSpriteIds[]; extern MainCallback gPreBattleCallback1; extern bool8 gDoingBattleAnim; extern u16 gBattlerPartyIndexes[]; -extern u8 gHealthboxIDs[]; +extern u8 gHealthboxSpriteIds[]; extern u16 gBattleTypeFlags; extern u16 gAnimMovePower; extern s32 gAnimMoveDmg; @@ -59,8 +59,8 @@ extern const u8 BattleText_WallyMenu[]; extern const u8 BattleText_MenuOptions[]; // TODO: include rom3.h when my other PR gets merged -extern void Emitcmd33(u8, u8, u16); -extern void Emitcmd35(u8, u16); +extern void BtlController_EmitTwoReturnValues(u8, u8, u16); +extern void BtlController_EmitOneReturnValue(u8, u16); extern void nullsub_14(void); extern void PrepareBagForWallyTutorial(void); @@ -74,7 +74,7 @@ extern void LoadPlayerTrainerBankSprite(); extern u8 GetBattlerPosition(u8); extern void sub_80313A0(struct Sprite *); extern u8 GetBattlerAtPosition(u8); -extern u8 sub_8031720(); +extern u8 IsMoveWithoutAnimation(); extern void DoMoveAnim(); extern void sub_80326EC(); extern void sub_8031F24(void); @@ -116,10 +116,10 @@ void WallyHandleReturnPokeToBall(void); void WallyHandleTrainerThrow(void); void WallyHandleTrainerSlide(void); void WallyHandleTrainerSlideBack(void); -void WallyHandlecmd10(void); -void WallyHandlecmd11(void); -void WallyHandlecmd12(void); -void WallyHandleBallThrow(void); +void WallyHandleFaintAnimation(void); +void WallyHandlePaletteFade(void); +void WallyHandleSuccessBallThrowAnim(void); +void WallyHandleBallThrowAnim(void); void WallyHandlePuase(void); void WallyHandleMoveAnimation(void); void WallyHandlePrintString(void); @@ -179,10 +179,10 @@ static const BattleBufferCmd gWallyBufferCommands[] = WallyHandleTrainerThrow, WallyHandleTrainerSlide, WallyHandleTrainerSlideBack, - WallyHandlecmd10, - WallyHandlecmd11, - WallyHandlecmd12, - WallyHandleBallThrow, + WallyHandleFaintAnimation, + WallyHandlePaletteFade, + WallyHandleSuccessBallThrowAnim, + WallyHandleBallThrowAnim, WallyHandlePuase, WallyHandleMoveAnimation, WallyHandlePrintString, @@ -236,7 +236,7 @@ void unref_sub_8137220(void) void SetBankFuncToWallyBufferRunCommand(void) { - gBattleBankFunc[gActiveBattler] = WallyBufferRunCommand; + gBattlerControllerFuncs[gActiveBattler] = WallyBufferRunCommand; ewram160A8 = 0; ewram160A9 = 0; ewram160AA = 0; @@ -245,7 +245,7 @@ void SetBankFuncToWallyBufferRunCommand(void) void WallyBufferRunCommand(void) { - if (gBattleExecBuffer & gBitTable[gActiveBattler]) + if (gBattleControllerExecFlags & gBitTable[gActiveBattler]) { if (gBattleBufferA[gActiveBattler][0] < 0x39) gWallyBufferCommands[gBattleBufferA[gActiveBattler][0]](); @@ -269,7 +269,7 @@ void sub_81372BC(void) if (r4 == 0) { PlaySE(SE_SELECT); - Emitcmd33(1, 0, 0); + BtlController_EmitTwoReturnValues(1, 0, 0); WallyBufferExecCompleted(); ewram160A8++; ewram160A9 = r4; @@ -281,7 +281,7 @@ void sub_81372BC(void) if (r4 == 0) { PlaySE(SE_SELECT); - Emitcmd33(1, 0, 0); + BtlController_EmitTwoReturnValues(1, 0, 0); WallyBufferExecCompleted(); ewram160A8++; ewram160A9 = r4; @@ -292,7 +292,7 @@ void sub_81372BC(void) r4 = --ewram160AA; if (r4 == 0) { - Emitcmd33(1, 9, 0); + BtlController_EmitTwoReturnValues(1, 9, 0); WallyBufferExecCompleted(); ewram160A8++; ewram160A9 = r4; @@ -314,7 +314,7 @@ void sub_81372BC(void) { PlaySE(SE_SELECT); DestroyMenuCursor(); - Emitcmd33(1, 1, 0); + BtlController_EmitTwoReturnValues(1, 1, 0); WallyBufferExecCompleted(); } break; @@ -323,7 +323,7 @@ void sub_81372BC(void) void sub_813741C(void) { - if (gSprites[gBankSpriteIds[gActiveBattler]].callback == SpriteCallbackDummy) + if (gSprites[gBattlerSpriteIds[gActiveBattler]].callback == SpriteCallbackDummy) WallyBufferExecCompleted(); } @@ -343,7 +343,7 @@ void sub_813746C(void) } } -void bx_wait_t5(void) +void CompleteOnFinishedAnimation(void) { if (!gDoingBattleAnim) WallyBufferExecCompleted(); @@ -353,7 +353,7 @@ void sub_81374C4(void) { if (!gPaletteFade.active) { - gBattleBankFunc[gActiveBattler] = sub_81374FC; + gBattlerControllerFuncs[gActiveBattler] = sub_81374FC; nullsub_14(); PrepareBagForWallyTutorial(); } @@ -364,7 +364,7 @@ void sub_81374FC(void) if (gMain.callback2 == BattleMainCB2 && !gPaletteFade.active) { - Emitcmd35(1, gSpecialVar_ItemId); + BtlController_EmitOneReturnValue(1, gSpecialVar_ItemId); WallyBufferExecCompleted(); } } @@ -382,16 +382,16 @@ void sub_8137538(void) if (IsDoubleBattle() && !(gBattleTypeFlags & BATTLE_TYPE_MULTI)) { DestroySprite(&gSprites[gUnknown_0300434C[gActiveBattler ^ 2]]); - sub_8045A5C(gHealthboxIDs[gActiveBattler ^ 2], &gPlayerParty[gBattlerPartyIndexes[gActiveBattler ^ 2]], 0); + sub_8045A5C(gHealthboxSpriteIds[gActiveBattler ^ 2], &gPlayerParty[gBattlerPartyIndexes[gActiveBattler ^ 2]], 0); sub_804777C(gActiveBattler ^ 2); - sub_8043DFC(gHealthboxIDs[gActiveBattler ^ 2]); + sub_8043DFC(gHealthboxSpriteIds[gActiveBattler ^ 2]); } DestroySprite(&gSprites[gUnknown_0300434C[gActiveBattler]]); - sub_8045A5C(gHealthboxIDs[gActiveBattler], &gPlayerParty[gBattlerPartyIndexes[gActiveBattler]], 0); + sub_8045A5C(gHealthboxSpriteIds[gActiveBattler], &gPlayerParty[gBattlerPartyIndexes[gActiveBattler]], 0); sub_804777C(gActiveBattler); - sub_8043DFC(gHealthboxIDs[gActiveBattler]); + sub_8043DFC(gHealthboxSpriteIds[gActiveBattler]); ewram17840.unk9_0 = 0; - gBattleBankFunc[gActiveBattler] = sub_81376B8; + gBattlerControllerFuncs[gActiveBattler] = sub_81376B8; } } @@ -399,7 +399,7 @@ void sub_81376B8(void) { bool8 r4 = FALSE; - if (gSprites[gHealthboxIDs[gActiveBattler]].callback == SpriteCallbackDummy) + if (gSprites[gHealthboxSpriteIds[gActiveBattler]].callback == SpriteCallbackDummy) r4 = TRUE; if (r4 && ewram17810[gActiveBattler].unk1_0 && ewram17810[gActiveBattler ^ 2].unk1_0) { @@ -419,11 +419,11 @@ void sub_81377B0(void) { s16 r4; - r4 = sub_8045C78(gActiveBattler, gHealthboxIDs[gActiveBattler], 0, 0); - sub_8043DFC(gHealthboxIDs[gActiveBattler]); + r4 = sub_8045C78(gActiveBattler, gHealthboxSpriteIds[gActiveBattler], 0, 0); + sub_8043DFC(gHealthboxSpriteIds[gActiveBattler]); if (r4 != -1) { - sub_80440EC(gHealthboxIDs[gActiveBattler], r4, 0); + sub_80440EC(gHealthboxSpriteIds[gActiveBattler], r4, 0); } else { @@ -434,7 +434,7 @@ void sub_81377B0(void) void bx_blink_t5(void) { - u8 spriteId = gBankSpriteIds[gActiveBattler]; + u8 spriteId = gBattlerSpriteIds[gActiveBattler]; if (gSprites[spriteId].data[1] == 32) { @@ -455,17 +455,17 @@ void sub_813789C(void) { if (!ewram17810[gActiveBattler].unk0_6) { - FreeSpriteOamMatrix(&gSprites[gBankSpriteIds[gActiveBattler]]); - DestroySprite(&gSprites[gBankSpriteIds[gActiveBattler]]); - sub_8043DB0(gHealthboxIDs[gActiveBattler]); + FreeSpriteOamMatrix(&gSprites[gBattlerSpriteIds[gActiveBattler]]); + DestroySprite(&gSprites[gBattlerSpriteIds[gActiveBattler]]); + sub_8043DB0(gHealthboxSpriteIds[gActiveBattler]); WallyBufferExecCompleted(); } } // Duplicate of sub_813741C -void sub_8137908(void) +void CompleteOnBankSpriteCallbackDummy2(void) { - if (gSprites[gBankSpriteIds[gActiveBattler]].callback == SpriteCallbackDummy) + if (gSprites[gBattlerSpriteIds[gActiveBattler]].callback == SpriteCallbackDummy) WallyBufferExecCompleted(); } @@ -477,7 +477,7 @@ void sub_8137940(void) void WallyBufferExecCompleted(void) { - gBattleBankFunc[gActiveBattler] = WallyBufferRunCommand; + gBattlerControllerFuncs[gActiveBattler] = WallyBufferRunCommand; if (gBattleTypeFlags & BATTLE_TYPE_LINK) { u8 multiplayerId = GetMultiplayerId(); @@ -487,7 +487,7 @@ void WallyBufferExecCompleted(void) } else { - gBattleExecBuffer &= ~gBitTable[gActiveBattler]; + gBattleControllerExecFlags &= ~gBitTable[gActiveBattler]; } } @@ -518,7 +518,7 @@ void WallyHandleGetAttributes(void) r4 >>= 1; } } - Emitcmd29(1, r6, arr); + BtlController_EmitDataTransfer(1, r6, arr); WallyBufferExecCompleted(); } @@ -1087,13 +1087,13 @@ void WallyHandleReturnPokeToBall(void) if (gBattleBufferA[gActiveBattler][1] == 0) { move_anim_start_t4(gActiveBattler, gActiveBattler, gActiveBattler, 1); - gBattleBankFunc[gActiveBattler] = sub_813789C; + gBattlerControllerFuncs[gActiveBattler] = sub_813789C; } else { - FreeSpriteOamMatrix(&gSprites[gBankSpriteIds[gActiveBattler]]); - DestroySprite(&gSprites[gBankSpriteIds[gActiveBattler]]); - sub_8043DB0(gHealthboxIDs[gActiveBattler]); + FreeSpriteOamMatrix(&gSprites[gBattlerSpriteIds[gActiveBattler]]); + DestroySprite(&gSprites[gBattlerSpriteIds[gActiveBattler]]); + sub_8043DB0(gHealthboxSpriteIds[gActiveBattler]); WallyBufferExecCompleted(); } } @@ -1102,30 +1102,30 @@ void WallyHandleTrainerThrow(void) { LoadPlayerTrainerBankSprite(2, gActiveBattler); GetMonSpriteTemplate_803C5A0(2, GetBattlerPosition(gActiveBattler)); - gBankSpriteIds[gActiveBattler] = CreateSprite( + gBattlerSpriteIds[gActiveBattler] = CreateSprite( &gUnknown_02024E8C, 80, 80 + 4 * (8 - gTrainerBackPicCoords[2].coords), 30); - gSprites[gBankSpriteIds[gActiveBattler]].oam.paletteNum = gActiveBattler; - gSprites[gBankSpriteIds[gActiveBattler]].pos2.x = 240; - gSprites[gBankSpriteIds[gActiveBattler]].data[0] = -2; - gSprites[gBankSpriteIds[gActiveBattler]].callback = sub_80313A0; - gBattleBankFunc[gActiveBattler] = sub_813741C; + gSprites[gBattlerSpriteIds[gActiveBattler]].oam.paletteNum = gActiveBattler; + gSprites[gBattlerSpriteIds[gActiveBattler]].pos2.x = 240; + gSprites[gBattlerSpriteIds[gActiveBattler]].data[0] = -2; + gSprites[gBattlerSpriteIds[gActiveBattler]].callback = sub_80313A0; + gBattlerControllerFuncs[gActiveBattler] = sub_813741C; } void WallyHandleTrainerSlide(void) { LoadPlayerTrainerBankSprite(2, gActiveBattler); GetMonSpriteTemplate_803C5A0(2, GetBattlerPosition(gActiveBattler)); - gBankSpriteIds[gActiveBattler] = CreateSprite( + gBattlerSpriteIds[gActiveBattler] = CreateSprite( &gUnknown_02024E8C, 80, 80 + 4 * (8 - gTrainerBackPicCoords[2].coords), 30); - gSprites[gBankSpriteIds[gActiveBattler]].oam.paletteNum = gActiveBattler; - gSprites[gBankSpriteIds[gActiveBattler]].pos2.x = -96; - gSprites[gBankSpriteIds[gActiveBattler]].data[0] = 2; - gSprites[gBankSpriteIds[gActiveBattler]].callback = sub_80313A0; - gBattleBankFunc[gActiveBattler] = sub_8137908; + gSprites[gBattlerSpriteIds[gActiveBattler]].oam.paletteNum = gActiveBattler; + gSprites[gBattlerSpriteIds[gActiveBattler]].pos2.x = -96; + gSprites[gBattlerSpriteIds[gActiveBattler]].data[0] = 2; + gSprites[gBattlerSpriteIds[gActiveBattler]].callback = sub_80313A0; + gBattlerControllerFuncs[gActiveBattler] = CompleteOnBankSpriteCallbackDummy2; } void WallyHandleTrainerSlideBack(void) @@ -1133,32 +1133,32 @@ void WallyHandleTrainerSlideBack(void) WallyBufferExecCompleted(); } -void WallyHandlecmd10(void) +void WallyHandleFaintAnimation(void) { WallyBufferExecCompleted(); } -void WallyHandlecmd11(void) +void WallyHandlePaletteFade(void) { WallyBufferExecCompleted(); } -void WallyHandlecmd12(void) +void WallyHandleSuccessBallThrowAnim(void) { ewram17840.unk8 = 4; gDoingBattleAnim = TRUE; move_anim_start_t4(gActiveBattler, gActiveBattler, GetBattlerAtPosition(1), 4); - gBattleBankFunc[gActiveBattler] = bx_wait_t5; + gBattlerControllerFuncs[gActiveBattler] = CompleteOnFinishedAnimation; } -void WallyHandleBallThrow(void) +void WallyHandleBallThrowAnim(void) { - u8 val = gBattleBufferA[gActiveBattler][1]; + u8 ballThrowCaseId = gBattleBufferA[gActiveBattler][1]; - ewram17840.unk8 = val; + ewram17840.unk8 = ballThrowCaseId; gDoingBattleAnim = TRUE; move_anim_start_t4(gActiveBattler, gActiveBattler, GetBattlerAtPosition(1), 4); - gBattleBankFunc[gActiveBattler] = bx_wait_t5; + gBattlerControllerFuncs[gActiveBattler] = CompleteOnFinishedAnimation; } void WallyHandlePuase(void) @@ -1177,15 +1177,15 @@ void WallyHandleMoveAnimation(void) gWeatherMoveAnim = gBattleBufferA[gActiveBattler][12] | (gBattleBufferA[gActiveBattler][13] << 8); gAnimDisableStructPtr = (struct DisableStruct *)&gBattleBufferA[gActiveBattler][16]; gTransformedPersonalities[gActiveBattler] = gAnimDisableStructPtr->transformedMonPersonality; - if (sub_8031720(move, gAnimMoveTurn) != 0) + if (IsMoveWithoutAnimation(move, gAnimMoveTurn) != 0) { - // Dead code. sub_8031720 always returns 0. + // Dead code. IsMoveWithoutAnimation always returns 0. WallyBufferExecCompleted(); } else { ewram17810[gActiveBattler].unk4 = 0; - gBattleBankFunc[gActiveBattler] = sub_81390D0; + gBattlerControllerFuncs[gActiveBattler] = sub_81390D0; } } @@ -1245,7 +1245,7 @@ void WallyHandlePrintString(void) DestroyMenuCursor(); BufferStringBattle(*ptr); Text_InitWindow8002EB0(&gUnknown_03004210, gDisplayedStringBattle, 0x90, 2, 15); - gBattleBankFunc[gActiveBattler] = sub_8137454; + gBattlerControllerFuncs[gActiveBattler] = sub_8137454; } void WallyHandlePrintStringPlayerOnly(void) @@ -1265,14 +1265,14 @@ void WallyHandlecmd18(void) gUnknown_03004210.paletteNum = 0; Text_FillWindowRectDefPalette(&gUnknown_03004210, 10, 2, 15, 27, 18); Text_FillWindowRectDefPalette(&gUnknown_03004210, 10, 2, 35, 16, 36); - gBattleBankFunc[gActiveBattler] = sub_81372BC; + gBattlerControllerFuncs[gActiveBattler] = sub_81372BC; Text_InitWindow(&gUnknown_03004210, BattleText_MenuOptions, 400, 18, 35); Text_PrintWindow8002F44(&gUnknown_03004210); MenuCursor_Create814A5C0(0, 0xFFFF, 12, 0x2D9F, 0); for (i = 0; i < 4; i++) nullsub_8(i); sub_802E3E4(0, 0); - StrCpyDecodeToDisplayedStringBattle(BattleText_WallyMenu); + BattleStringExpandPlaceholdersToDisplayedString(BattleText_WallyMenu); #ifdef ENGLISH Text_InitWindow(&gUnknown_03004210, gDisplayedStringBattle, 440, 2, 35); #else @@ -1301,7 +1301,7 @@ void WallyHandlecmd20(void) { DestroyMenuCursor(); PlaySE(SE_SELECT); - Emitcmd33(1, 10, 256); + BtlController_EmitTwoReturnValues(1, 10, 256); WallyBufferExecCompleted(); } break; @@ -1311,7 +1311,7 @@ void WallyHandlecmd20(void) void WallyHandleOpenBag(void) { BeginNormalPaletteFade(0xFFFFFFFF, 0, 0, 16, RGB(0, 0, 0)); - gBattleBankFunc[gActiveBattler] = sub_81374C4; + gBattlerControllerFuncs[gActiveBattler] = sub_81374C4; gBankInMenu = gActiveBattler; } @@ -1336,16 +1336,16 @@ void WallyHandleHealthBarUpdate(void) u32 maxHP = GetMonData(&gPlayerParty[gBattlerPartyIndexes[gActiveBattler]], MON_DATA_MAX_HP); u32 curHP = GetMonData(&gPlayerParty[gBattlerPartyIndexes[gActiveBattler]], MON_DATA_HP); - sub_8043D84(gActiveBattler, gHealthboxIDs[gActiveBattler], maxHP, curHP, r7); + sub_8043D84(gActiveBattler, gHealthboxSpriteIds[gActiveBattler], maxHP, curHP, r7); } else { u32 maxHP = GetMonData(&gPlayerParty[gBattlerPartyIndexes[gActiveBattler]], MON_DATA_MAX_HP); - sub_8043D84(gActiveBattler, gHealthboxIDs[gActiveBattler], maxHP, 0, r7); - sub_80440EC(gHealthboxIDs[gActiveBattler], 0, 0); + sub_8043D84(gActiveBattler, gHealthboxSpriteIds[gActiveBattler], maxHP, 0, r7); + sub_80440EC(gHealthboxSpriteIds[gActiveBattler], 0, 0); } - gBattleBankFunc[gActiveBattler] = sub_81377B0; + gBattlerControllerFuncs[gActiveBattler] = sub_81377B0; } void WallyHandleExpBarUpdate(void) @@ -1430,16 +1430,16 @@ void WallyHandlecmd40(void) void WallyHandleHitAnimation(void) { - if (gSprites[gBankSpriteIds[gActiveBattler]].invisible == TRUE) + if (gSprites[gBattlerSpriteIds[gActiveBattler]].invisible == TRUE) { WallyBufferExecCompleted(); } else { gDoingBattleAnim = 1; - gSprites[gBankSpriteIds[gActiveBattler]].data[1] = 0; + gSprites[gBattlerSpriteIds[gActiveBattler]].data[1] = 0; sub_8047858(gActiveBattler); - gBattleBankFunc[gActiveBattler] = bx_blink_t5; + gBattlerControllerFuncs[gActiveBattler] = bx_blink_t5; } } @@ -1478,23 +1478,23 @@ void WallyHandleTrainerBallThrow(void) u8 paletteNum; u8 taskId; - oamt_add_pos2_onto_pos1(&gSprites[gBankSpriteIds[gActiveBattler]]); - gSprites[gBankSpriteIds[gActiveBattler]].data[0] = 50; - gSprites[gBankSpriteIds[gActiveBattler]].data[2] = -40; - gSprites[gBankSpriteIds[gActiveBattler]].data[4] = gSprites[gBankSpriteIds[gActiveBattler]].pos1.y; - gSprites[gBankSpriteIds[gActiveBattler]].callback = StartAnimLinearTranslation; - gSprites[gBankSpriteIds[gActiveBattler]].data[5] = gActiveBattler; - StoreSpriteCallbackInData(&gSprites[gBankSpriteIds[gActiveBattler]], sub_8030E38); - StartSpriteAnim(&gSprites[gBankSpriteIds[gActiveBattler]], 1); + oamt_add_pos2_onto_pos1(&gSprites[gBattlerSpriteIds[gActiveBattler]]); + gSprites[gBattlerSpriteIds[gActiveBattler]].data[0] = 50; + gSprites[gBattlerSpriteIds[gActiveBattler]].data[2] = -40; + gSprites[gBattlerSpriteIds[gActiveBattler]].data[4] = gSprites[gBattlerSpriteIds[gActiveBattler]].pos1.y; + gSprites[gBattlerSpriteIds[gActiveBattler]].callback = StartAnimLinearTranslation; + gSprites[gBattlerSpriteIds[gActiveBattler]].data[5] = gActiveBattler; + StoreSpriteCallbackInData(&gSprites[gBattlerSpriteIds[gActiveBattler]], sub_8030E38); + StartSpriteAnim(&gSprites[gBattlerSpriteIds[gActiveBattler]], 1); paletteNum = AllocSpritePalette(0xD6F8); LoadCompressedPalette(gTrainerBackPicPaletteTable[2].data, 0x100 + paletteNum * 16, 32); - gSprites[gBankSpriteIds[gActiveBattler]].oam.paletteNum = paletteNum; + gSprites[gBattlerSpriteIds[gActiveBattler]].oam.paletteNum = paletteNum; taskId = CreateTask(sub_8139A2C, 5); gTasks[taskId].data[0] = gActiveBattler; if (ewram17810[gActiveBattler].unk0_0) gTasks[gUnknown_02024E68[gActiveBattler]].func = sub_8044CA0; ewram17810[4].unk9 |= 1; - gBattleBankFunc[gActiveBattler] = nullsub_91; + gBattlerControllerFuncs[gActiveBattler] = nullsub_91; } void sub_81398BC(u8 bank) @@ -1506,18 +1506,18 @@ void sub_81398BC(u8 bank) species = GetMonData(&gPlayerParty[gBattlerPartyIndexes[bank]], MON_DATA_SPECIES); gUnknown_0300434C[bank] = CreateInvisibleSpriteWithCallback(sub_80312F0); GetMonSpriteTemplate_803C56C(species, GetBattlerPosition(bank)); - gBankSpriteIds[bank] = CreateSprite( + gBattlerSpriteIds[bank] = CreateSprite( &gUnknown_02024E8C, GetBattlerSpriteCoord(bank, 2), sub_8077F68(bank), GetBattlerSubpriority(bank)); - gSprites[gUnknown_0300434C[bank]].data[1] = gBankSpriteIds[bank]; - gSprites[gBankSpriteIds[bank]].data[0] = bank; - gSprites[gBankSpriteIds[bank]].data[2] = species; - gSprites[gBankSpriteIds[bank]].oam.paletteNum = bank; - StartSpriteAnim(&gSprites[gBankSpriteIds[bank]], gBattleMonForms[bank]); - gSprites[gBankSpriteIds[bank]].invisible = TRUE; - gSprites[gBankSpriteIds[bank]].callback = SpriteCallbackDummy; + gSprites[gUnknown_0300434C[bank]].data[1] = gBattlerSpriteIds[bank]; + gSprites[gBattlerSpriteIds[bank]].data[0] = bank; + gSprites[gBattlerSpriteIds[bank]].data[2] = species; + gSprites[gBattlerSpriteIds[bank]].oam.paletteNum = bank; + StartSpriteAnim(&gSprites[gBattlerSpriteIds[bank]], gBattleMonForms[bank]); + gSprites[gBattlerSpriteIds[bank]].invisible = TRUE; + gSprites[gBattlerSpriteIds[bank]].callback = SpriteCallbackDummy; gSprites[gUnknown_0300434C[bank]].data[0] = StartSendOutMonAnimation(0, 0xFF); } @@ -1534,7 +1534,7 @@ void sub_8139A2C(u8 taskId) gActiveBattler = gTasks[taskId].data[0]; gBattleBufferA[gActiveBattler][1] = gBattlerPartyIndexes[gActiveBattler]; sub_81398BC(gActiveBattler); - gBattleBankFunc[gActiveBattler] = sub_8137538; + gBattlerControllerFuncs[gActiveBattler] = sub_8137538; gActiveBattler = savedActiveBank; DestroyTask(taskId); } @@ -1577,7 +1577,7 @@ void WallyHandleBattleAnimation(void) if (move_anim_start_t3(gActiveBattler, gActiveBattler, gActiveBattler, val2, val)) WallyBufferExecCompleted(); else - gBattleBankFunc[gActiveBattler] = sub_8137940; + gBattlerControllerFuncs[gActiveBattler] = sub_8137940; } void WallyHandleLinkStandbyMsg(void) @@ -1597,7 +1597,7 @@ void WallyHandlecmd55(void) BeginFastPaletteFade(3); WallyBufferExecCompleted(); if ((gBattleTypeFlags & BATTLE_TYPE_LINK) && !(gBattleTypeFlags & BATTLE_TYPE_WILD)) - gBattleBankFunc[gActiveBattler] = sub_813746C; + gBattlerControllerFuncs[gActiveBattler] = sub_813746C; } void WallyHandlecmd56(void) diff --git a/src/battle/battle_7.c b/src/battle_gfx_sfx_util.c index 6e1ddceaf..45f2c30c0 100644 --- a/src/battle/battle_7.c +++ b/src/battle_gfx_sfx_util.c @@ -1,7 +1,7 @@ #include "global.h" #include "battle.h" #include "battle_anim.h" -#include "battle_anim_813F0F4.h" +#include "battle_anim_special.h" #include "battle_interface.h" #include "blend_palette.h" #include "contest.h" @@ -28,17 +28,17 @@ extern u8 gActiveBattler; extern u8 gBattlersCount; extern u16 gBattlerPartyIndexes[]; extern u8 gBanksBySide[]; -extern u8 gBankSpriteIds[]; +extern u8 gBattlerSpriteIds[]; extern u16 gUnknown_02024DE8; extern u8 gDoingBattleAnim; extern u32 gTransformedPersonalities[]; extern struct Window gUnknown_03004210; -extern void (*gBattleBankFunc[])(void); -extern u8 gHealthboxIDs[]; +extern void (*gBattlerControllerFuncs[])(void); +extern u8 gHealthboxSpriteIds[]; extern u8 gUnknown_0300434C[]; -extern struct MusicPlayerInfo gMPlay_SE1; -extern struct MusicPlayerInfo gMPlay_SE2; -extern struct MusicPlayerInfo gMPlay_BGM; +extern struct MusicPlayerInfo gMPlayInfo_SE1; +extern struct MusicPlayerInfo gMPlayInfo_SE2; +extern struct MusicPlayerInfo gMPlayInfo_BGM; extern u32 gBitTable[]; extern u16 gBattleTypeFlags; extern u8 gBattleMonForms[]; @@ -198,9 +198,9 @@ bool8 move_anim_start_t3(u8 a, u8 b, u8 c, u8 d, u16 e) } if (ewram17800[a].substituteSprite && sub_803163C(d) == 0) return TRUE; - if (ewram17800[a].substituteSprite && d == 2 && gSprites[gBankSpriteIds[a]].invisible) + if (ewram17800[a].substituteSprite && d == 2 && gSprites[gBattlerSpriteIds[a]].invisible) { - refresh_graphics_maybe(a, 1, gBankSpriteIds[a]); + refresh_graphics_maybe(a, 1, gBattlerSpriteIds[a]); sub_80324E0(a); return TRUE; } @@ -262,7 +262,7 @@ void sub_80316CC(u8 taskId) } } -u8 sub_8031720(int unused1, int unused2) +u8 IsMoveWithoutAnimation(int unused1, int unused2) { return 0; } @@ -276,8 +276,8 @@ bool8 mplay_80342A4(u8 a) ewram17810[a].unk8++; if (ewram17810[gActiveBattler].unk8 < 30) return TRUE; - m4aMPlayStop(&gMPlay_SE1); - m4aMPlayStop(&gMPlay_SE2); + m4aMPlayStop(&gMPlayInfo_SE1); + m4aMPlayStop(&gMPlayInfo_SE2); } if (zero == 0) { @@ -554,9 +554,9 @@ u8 battle_load_something(u8 *pState, u8 *b) break; case 3: if ((gBattleTypeFlags & 0x80) && *b == 0) - gHealthboxIDs[*b] = battle_make_oam_safari_battle(); + gHealthboxSpriteIds[*b] = battle_make_oam_safari_battle(); else - gHealthboxIDs[*b] = battle_make_oam_normal_battle(*b); + gHealthboxSpriteIds[*b] = battle_make_oam_normal_battle(*b); (*b)++; if (*b == gBattlersCount) { @@ -567,9 +567,9 @@ u8 battle_load_something(u8 *pState, u8 *b) case 4: sub_8043F44(*b); if (gBanksBySide[*b] <= 1) - nullsub_11(gHealthboxIDs[*b], 0); + nullsub_11(gHealthboxSpriteIds[*b], 0); else - nullsub_11(gHealthboxIDs[*b], 1); + nullsub_11(gHealthboxSpriteIds[*b], 1); (*b)++; if (*b == gBattlersCount) { @@ -581,13 +581,13 @@ u8 battle_load_something(u8 *pState, u8 *b) if (GetBattlerSide(*b) == 0) { if (!(gBattleTypeFlags & 0x80)) - sub_8045A5C(gHealthboxIDs[*b], &gPlayerParty[gBattlerPartyIndexes[*b]], 0); + sub_8045A5C(gHealthboxSpriteIds[*b], &gPlayerParty[gBattlerPartyIndexes[*b]], 0); } else { - sub_8045A5C(gHealthboxIDs[*b], &gEnemyParty[gBattlerPartyIndexes[*b]], 0); + sub_8045A5C(gHealthboxSpriteIds[*b], &gEnemyParty[gBattlerPartyIndexes[*b]], 0); } - sub_8043DB0(gHealthboxIDs[*b]); + sub_8043DB0(gHealthboxSpriteIds[*b]); (*b)++; if (*b == gBattlersCount) { @@ -621,12 +621,12 @@ void sub_8031F24(void) s32 i; for (i = 0; i < gBattlersCount; i++) - ewram17800[i].invisible = gSprites[gBankSpriteIds[i]].invisible; + ewram17800[i].invisible = gSprites[gBattlerSpriteIds[i]].invisible; } void sub_8031F88(u8 a) { - ewram17800[a].invisible = gSprites[gBankSpriteIds[a]].invisible; + ewram17800[a].invisible = gSprites[gBattlerSpriteIds[a]].invisible; } void sub_8031FC4(u8 a, u8 b, bool8 c) @@ -640,7 +640,7 @@ void sub_8031FC4(u8 a, u8 b, bool8 c) if (c) { - StartSpriteAnim(&gSprites[gBankSpriteIds[a]], ewram17840.unk0); + StartSpriteAnim(&gSprites[gBattlerSpriteIds[a]], ewram17840.unk0); paletteOffset = 0x100 + a * 16; LoadPalette(ewram16400 + ewram17840.unk0 * 32, paletteOffset, 32); gBattleMonForms[a] = ewram17840.unk0; @@ -649,7 +649,7 @@ void sub_8031FC4(u8 a, u8 b, bool8 c) BlendPalette(paletteOffset, 16, 6, RGB(31, 31, 31)); CpuCopy32(gPlttBufferFaded + paletteOffset, gPlttBufferUnfaded + paletteOffset, 32); } - gSprites[gBankSpriteIds[a]].pos1.y = sub_8077F68(a); + gSprites[gBattlerSpriteIds[a]].pos1.y = sub_8077F68(a); } else { @@ -702,7 +702,7 @@ void sub_8031FC4(u8 a, u8 b, bool8 c) gTransformedPersonalities[a]); } } - DmaCopy32Defvars(3, gUnknown_081FAF4C[r10], (void *)(VRAM + 0x10000 + gSprites[gBankSpriteIds[a]].oam.tileNum * 32), 0x800); + DmaCopy32Defvars(3, gUnknown_081FAF4C[r10], (void *)(VRAM + 0x10000 + gSprites[gBattlerSpriteIds[a]].oam.tileNum * 32), 0x800); paletteOffset = 0x100 + a * 16; lzPaletteData = GetMonSpritePalFromOtIdPersonality(species, otId, personalityValue); LZDecompressWram(lzPaletteData, gSharedMem); @@ -721,8 +721,8 @@ void sub_8031FC4(u8 a, u8 b, bool8 c) ewram17800[a].transformedSpecies = species; gBattleMonForms[a] = gBattleMonForms[b]; } - gSprites[gBankSpriteIds[a]].pos1.y = sub_8077F68(a); - StartSpriteAnim(&gSprites[gBankSpriteIds[a]], gBattleMonForms[a]); + gSprites[gBattlerSpriteIds[a]].pos1.y = sub_8077F68(a); + StartSpriteAnim(&gSprites[gBattlerSpriteIds[a]], gBattleMonForms[a]); } } @@ -862,15 +862,15 @@ void sub_80326EC(u8 a) { if (IsBankSpritePresent(i) != 0) { - gSprites[gBankSpriteIds[i]].oam.affineMode = a; + gSprites[gBattlerSpriteIds[i]].oam.affineMode = a; if (a == 0) { - ewram17810[i].unk6 = gSprites[gBankSpriteIds[i]].oam.matrixNum; - gSprites[gBankSpriteIds[i]].oam.matrixNum = 0; + ewram17810[i].unk6 = gSprites[gBattlerSpriteIds[i]].oam.matrixNum; + gSprites[gBattlerSpriteIds[i]].oam.matrixNum = 0; } else { - gSprites[gBankSpriteIds[i]].oam.matrixNum = ewram17810[i].unk6; + gSprites[gBattlerSpriteIds[i]].oam.matrixNum = ewram17810[i].unk6; } } } @@ -896,7 +896,7 @@ void sub_80328A4(struct Sprite *sprite) { bool8 invisible = FALSE; u8 r4 = sprite->data[0]; - struct Sprite *r7 = &gSprites[gBankSpriteIds[r4]]; + struct Sprite *r7 = &gSprites[gBattlerSpriteIds[r4]]; if (!r7->inUse || IsBankSpritePresent(r4) == 0) { diff --git a/src/battle/battle_interface.c b/src/battle_interface.c index dedde2cb3..992fcd7ae 100644 --- a/src/battle/battle_interface.c +++ b/src/battle_interface.c @@ -15,6 +15,7 @@ #include "text.h" #include "ewram.h" #include "graphics.h" +#include "pokemon_summary_screen.h" struct UnknownStruct5 { @@ -249,7 +250,7 @@ const struct SpritePalette gUnknown_0820A774[] = { gUnknown_08D1214C, 0xd713 }, }; -const struct CompressedSpriteSheet gUnknown_0820A784[] = +const struct SpriteSheet gUnknown_0820A784[] = { { Tiles_D129AC, 0x80, 0xd714 }, { Tiles_D129AC, 0x80, 0xd715 }, @@ -269,48 +270,45 @@ const struct OamData gOamData_820A79C = .priority = 1, }; -const struct SpriteTemplate gSpriteTemplate_820A7A4 = +const struct SpriteTemplate gSpriteTemplate_820A7A4[] = { - .tileTag = 55052, - .paletteTag = 55056, - .oam = &gOamData_820A4E4, - .anims = gDummySpriteAnimTable, - .images = NULL, - .affineAnims = gDummySpriteAffineAnimTable, - .callback = sub_8045030, -}; - -const struct SpriteTemplate gSpriteTemplate_820A7BC = -{ - .tileTag = 55053, - .paletteTag = 55057, - .oam = &gOamData_820A4E4, - .anims = gDummySpriteAnimTable, - .images = NULL, - .affineAnims = gDummySpriteAffineAnimTable, - .callback = sub_8045030, -}; - -const struct SpriteTemplate gSpriteTemplate_820A7D4 = -{ - .tileTag = 55060, - .paletteTag = 55058, - .oam = &gOamData_820A79C, - .anims = gDummySpriteAnimTable, - .images = NULL, - .affineAnims = gDummySpriteAffineAnimTable, - .callback = sub_804507C, + { + .tileTag = 55052, + .paletteTag = 55056, + .oam = &gOamData_820A4E4, + .anims = gDummySpriteAnimTable, + .images = NULL, + .affineAnims = gDummySpriteAffineAnimTable, + .callback = sub_8045030, + }, { + .tileTag = 55053, + .paletteTag = 55057, + .oam = &gOamData_820A4E4, + .anims = gDummySpriteAnimTable, + .images = NULL, + .affineAnims = gDummySpriteAffineAnimTable, + .callback = sub_8045030, + } }; -const struct SpriteTemplate gSpriteTemplate_820A7EC = -{ - .tileTag = 55061, - .paletteTag = 55059, - .oam = &gOamData_820A79C, - .anims = gDummySpriteAnimTable, - .images = NULL, - .affineAnims = gDummySpriteAffineAnimTable, - .callback = sub_804507C, +const struct SpriteTemplate gSpriteTemplate_820A7D4[] = { + { + .tileTag = 55060, + .paletteTag = 55058, + .oam = &gOamData_820A79C, + .anims = gDummySpriteAnimTable, + .images = NULL, + .affineAnims = gDummySpriteAffineAnimTable, + .callback = sub_804507C, + }, { + .tileTag = 55061, + .paletteTag = 55059, + .oam = &gOamData_820A79C, + .anims = gDummySpriteAnimTable, + .images = NULL, + .affineAnims = gDummySpriteAffineAnimTable, + .callback = sub_804507C, + } }; u8 *const gUnknown_0820A804[2] = @@ -426,7 +424,7 @@ extern u8 gDisplayedStringBattle[]; extern u8 gBattlersCount; extern u16 gBattlerPartyIndexes[]; extern u8 gBanksBySide[]; -extern u8 gHealthboxIDs[]; +extern u8 gHealthboxSpriteIds[]; extern u16 gBattleTypeFlags; @@ -957,7 +955,7 @@ void UpdateOamPriorityInAllHealthboxes(u8 priority) u8 spriteId2; u8 spriteId3; - spriteId1 = gHealthboxIDs[i]; + spriteId1 = gHealthboxSpriteIds[i]; spriteId2 = gSprites[spriteId1].oam.affineParam; spriteId3 = gSprites[spriteId1].data[5]; gSprites[spriteId1].oam.priority = priority; @@ -1006,7 +1004,7 @@ void sub_8043F44(u8 a) break; } } - sub_8043E50(gHealthboxIDs[a], x, y); + sub_8043E50(gHealthboxSpriteIds[a], x, y); } #if ENGLISH @@ -1350,11 +1348,11 @@ void sub_8044338(u8 a, struct Pokemon *pkmn) int foo; foo = gSprites[a].oam.tileNum + MACRO1(r7); - CpuCopy32(r6, (u8 *)0x06010000 + foo * 32, 32); + CpuCopy32(r6, (u8 *)(VRAM + 0x10000) + foo * 32, 32); r6 += 32; foo = gSprites[a].oam.tileNum + 8 + MACRO1(r7); - CpuCopy32(r6, (u8 *)0x06010000 + foo * 32, 32); + CpuCopy32(r6, (u8 *)(VRAM + 0x10000) + foo * 32, 32); r6 += 32; } //_08044486 @@ -1370,12 +1368,12 @@ void sub_8044338(u8 a, struct Pokemon *pkmn) if (r7 <= 1) { int foo = (gSprites[r5].oam.tileNum + 2 + r7); - CpuCopy32(ewram0_9(1) + r7 * 0x40, (u8 *)0x06010000 + foo * 32, 32); + CpuCopy32(ewram0_9(1) + r7 * 0x40, (u8 *)(VRAM + 0x10000) + foo * 32, 32); } else { int foo = (r7 + gSprites[r5].oam.tileNum); - CpuCopy32(ewram0_9(1) + r7 * 0x40, (u8 *)0x060100C0 + foo * 32, 32); + CpuCopy32(ewram0_9(1) + r7 * 0x40, (u8 *)(VRAM + 0x100C0) + foo * 32, 32); } } } @@ -1524,7 +1522,7 @@ _08044446:\n\ lsls r5, 6\n\ adds r0, r5\n\ lsls r0, 5\n\ - ldr r2, _08044500 @ =0x06010000\n\ + ldr r2, _08044500 @ =(VRAM + 0x10000)\n\ adds r1, r0, r2\n\ adds r0, r6, 0\n\ mov r2, r10\n\ @@ -1538,7 +1536,7 @@ _08044446:\n\ adds r0, r4\n\ adds r0, r5\n\ lsls r0, 5\n\ - ldr r2, _08044500 @ =0x06010000\n\ + ldr r2, _08044500 @ =(VRAM + 0x10000)\n\ adds r1, r0, r2\n\ adds r0, r6, 0\n\ mov r2, r10\n\ @@ -1596,7 +1594,7 @@ _080444DA:\n\ adds r0, r7, 0x2\n\ adds r1, r0\n\ lsls r1, 5\n\ - ldr r0, _08044500 @ =0x06010000\n\ + ldr r0, _08044500 @ =(VRAM + 0x10000)\n\ adds r1, r0\n\ adds r0, r4, 0\n\ ldr r2, _080444F8 @ =REG_BG0CNT\n\ @@ -1650,7 +1648,7 @@ void sub_804454C(void) for (i = 0; i < gBattlersCount; i++) { - if (gSprites[gHealthboxIDs[i]].callback == SpriteCallbackDummy + if (gSprites[gHealthboxSpriteIds[i]].callback == SpriteCallbackDummy #if DEBUG && (gUnknown_020297ED != 0 || GetBattlerSide(i) != 1) #else @@ -1672,17 +1670,17 @@ void sub_804454C(void) if (r6 == 1) { - spriteId = gSprites[gHealthboxIDs[i]].data[5]; + spriteId = gSprites[gHealthboxSpriteIds[i]].data[5]; CpuFill32(0, OBJ_VRAM0 + gSprites[spriteId].oam.tileNum * 32, 0x100); - sub_8044210(gHealthboxIDs[i], GetMonData(&gPlayerParty[gBattlerPartyIndexes[i]], MON_DATA_HP), 0); - sub_8044210(gHealthboxIDs[i], GetMonData(&gPlayerParty[gBattlerPartyIndexes[i]], MON_DATA_MAX_HP), 1); + sub_8044210(gHealthboxSpriteIds[i], GetMonData(&gPlayerParty[gBattlerPartyIndexes[i]], MON_DATA_HP), 0); + sub_8044210(gHealthboxSpriteIds[i], GetMonData(&gPlayerParty[gBattlerPartyIndexes[i]], MON_DATA_MAX_HP), 1); } else { - draw_status_ailment_maybe(gHealthboxIDs[i]); - sub_8045A5C(gHealthboxIDs[i], &gPlayerParty[gBattlerPartyIndexes[i]], 5); - CpuCopy32(sub_8043CDC(0x75), OBJ_VRAM0 + 0x680 + gSprites[gHealthboxIDs[i]].oam.tileNum * 32, 32); + draw_status_ailment_maybe(gHealthboxSpriteIds[i]); + sub_8045A5C(gHealthboxSpriteIds[i], &gPlayerParty[gBattlerPartyIndexes[i]], 5); + CpuCopy32(sub_8043CDC(0x75), OBJ_VRAM0 + 0x680 + gSprites[gHealthboxSpriteIds[i]].oam.tileNum * 32, 32); } } else @@ -1691,26 +1689,26 @@ void sub_804454C(void) { if (gBattleTypeFlags & BATTLE_TYPE_SAFARI) { - sub_8044338(gHealthboxIDs[i], &gEnemyParty[gBattlerPartyIndexes[i]]); + sub_8044338(gHealthboxSpriteIds[i], &gEnemyParty[gBattlerPartyIndexes[i]]); } else { - spriteId = gSprites[gHealthboxIDs[i]].data[5]; + spriteId = gSprites[gHealthboxSpriteIds[i]].data[5]; CpuFill32(0, OBJ_VRAM0 + gSprites[spriteId].oam.tileNum * 32, 0x100); - sub_8044210(gHealthboxIDs[i], GetMonData(&gEnemyParty[gBattlerPartyIndexes[i]], MON_DATA_HP), 0); - sub_8044210(gHealthboxIDs[i], GetMonData(&gEnemyParty[gBattlerPartyIndexes[i]], MON_DATA_MAX_HP), 1); + sub_8044210(gHealthboxSpriteIds[i], GetMonData(&gEnemyParty[gBattlerPartyIndexes[i]], MON_DATA_HP), 0); + sub_8044210(gHealthboxSpriteIds[i], GetMonData(&gEnemyParty[gBattlerPartyIndexes[i]], MON_DATA_MAX_HP), 1); } } else { - draw_status_ailment_maybe(gHealthboxIDs[i]); - sub_8045A5C(gHealthboxIDs[i], &gEnemyParty[gBattlerPartyIndexes[i]], 5); + draw_status_ailment_maybe(gHealthboxSpriteIds[i]); + sub_8045A5C(gHealthboxSpriteIds[i], &gEnemyParty[gBattlerPartyIndexes[i]], 5); if (gBattleTypeFlags & BATTLE_TYPE_SAFARI) - sub_8045A5C(gHealthboxIDs[i], &gEnemyParty[gBattlerPartyIndexes[i]], 4); + sub_8045A5C(gHealthboxSpriteIds[i], &gEnemyParty[gBattlerPartyIndexes[i]], 4); } } - gSprites[gHealthboxIDs[i]].data[7] ^= 1; + gSprites[gHealthboxSpriteIds[i]].data[7] ^= 1; } } } diff --git a/src/battle/battle_2.c b/src/battle_main.c index 411a1ae46..56eabd515 100644 --- a/src/battle/battle_2.c +++ b/src/battle_main.c @@ -8,7 +8,7 @@ #include "constants/species.h" #include "gba/flash_internal.h" #include "battle.h" -#include "battle_ai.h" +#include "battle_ai_script_commands.h" #include "battle_interface.h" #include "battle_message.h" #include "battle_setup.h" @@ -79,15 +79,15 @@ extern u8 gActionsByTurnOrder[4]; extern struct UnknownPokemonStruct2 gMultiPartnerParty[]; extern u8 gBattleBufferB[][0x200]; extern u8 gActiveBattler; -extern u32 gBattleExecBuffer; +extern u32 gBattleControllerExecFlags; extern u8 gBattlersCount; extern u16 gBattlerPartyIndexes[]; extern u8 gCurrentActionFuncId; extern u8 gBanksByTurnOrder[]; -extern u8 gBankSpriteIds[]; +extern u8 gBattlerSpriteIds[]; extern u16 gCurrentMove; // This is mis-named. It is a species, not a move ID. extern u8 gLastUsedAbility; -extern u8 gStringBank; +extern u8 gPotentialItemEffectBattler; extern u8 gAbsentBattlerFlags; extern u8 gMultiHitCounter; extern u8 gActionForBanks[]; @@ -97,7 +97,6 @@ extern u16 gLastLandedMoves[]; extern u16 gLastHitByType[]; extern u16 gUnknown_02024C4C[]; extern u16 gLockedMoves[]; -extern u8 gLastHitBy[]; extern u16 gChosenMovesByBanks[]; extern u32 gHitMarker; extern u8 gUnknown_02024C70[]; @@ -114,24 +113,19 @@ extern u16 gUnknown_02024DE8; extern u8 gActionSelectionCursor[]; extern u8 gMoveSelectionCursor[]; extern u8 gUnknown_02038470[]; -extern struct Window gUnknown_030041D0; -extern struct Window gUnknown_03004210; -extern struct Window gUnknown_03004250; -extern u32 gUnknown_03004284; extern MainCallback gPreBattleCallback1; extern void (*gBattleMainFunc)(void); extern u8 gLeveledUpInBattle; -extern void (*gBattleBankFunc[])(void); -extern u8 gHealthboxIDs[]; +extern void (*gBattlerControllerFuncs[])(void); +extern u8 gHealthboxSpriteIds[]; extern u16 gBattleTypeFlags; -extern s8 gBattleTerrain; // I'm not sure if this is supposed to be s8 or u8. Regardless, it must have the same type as the return value of BattleSetup_GetTerrain. extern u8 gReservedSpritePaletteCount; extern u16 gTrainerBattleOpponent; extern struct BattleEnigmaBerry gEnigmaBerries[]; extern u16 gBlockRecvBuffer[MAX_LINK_PLAYERS][BLOCK_BUFFER_SIZE / 2]; extern u8 gBattleMonForms[]; -extern u8 gBankAttacker; -extern u8 gBankTarget; +extern u8 gBattlerAttacker; +extern u8 gBattlerTarget; extern u16 gBattleWeather; extern s32 gBattleMoveDamage; extern struct BattlePokemon gBattleMons[]; @@ -170,7 +164,7 @@ extern u8 gUnknown_081FA70C[][3]; extern u8 gUnknown_081FA71B[]; extern u8 gUnknown_081FA71F[]; -void sub_8010824(void); +void BattleMainCB1(void); static void BattlePrepIntroSlide(void); void CheckFocusPunch_ClearVarsBeforeTurnStarts(void); void SetActionsAndBanksTurnOrder(void); @@ -183,7 +177,34 @@ void TryEvolvePokemon(void); static void ReturnFromBattleToOverworld(void); static void WaitForEvoSceneToFinish(void); -void sub_800E7C4(void) + +u16 gBattle_BG0_X; +u16 gBattle_BG0_Y; +u16 gBattle_BG1_X; +u16 gBattle_BG1_Y; +u16 gBattle_BG2_X; +u16 gBattle_BG2_Y; +u16 gBattle_BG3_X; +u16 gBattle_BG3_Y; +u16 gBattle_WIN0H; +u16 gBattle_WIN0V; +u16 gBattle_WIN1H; +u16 gBattle_WIN1V; + +u8 gBattleTextBuff1[TEXT_BUFF_ARRAY_COUNT]; +u8 gBattleTextBuff2[TEXT_BUFF_ARRAY_COUNT]; +u8 gBattleTextBuff3[TEXT_BUFF_ARRAY_COUNT]; + +s8 gBattleTerrain; + +void (*gBattleMainFunc)(void); + +u32 gUnknown_03004284; +struct Window gUnknown_03004210; +struct Window gUnknown_030041D0; +struct Window gUnknown_03004250; + +void CB2_InitBattle(void) { if (gBattleTypeFlags & BATTLE_TYPE_MULTI) { @@ -193,11 +214,11 @@ void sub_800E7C4(void) } else { - InitBattle(); + CB2_InitBattleInternal(); } } -void InitBattle(void) +void CB2_InitBattleInternal(void) { s32 i; @@ -253,15 +274,15 @@ void InitBattle(void) LoadBattleTextboxAndBackground(); ResetSpriteData(); ResetTasks(); - LoadBattleEntryBackground(); + DrawBattleEntryBackground(); FreeAllSpritePalettes(); gReservedSpritePaletteCount = 4; SetVBlankCallback(sub_800FCFC); - setup_poochyena_battle(); + SetUpBattleVarsAndBirchPoochyena(); if (gBattleTypeFlags & BATTLE_TYPE_MULTI) SetMainCallback2(sub_800F298); else - SetMainCallback2(sub_800EC9C); + SetMainCallback2(CB2_HandleStartBattle); if (!(gBattleTypeFlags & BATTLE_TYPE_LINK) #if DEBUG && !(gUnknown_02023A14_50 & 8) @@ -291,17 +312,17 @@ void sub_800E9EC(void) hp = GetMonData(&gPlayerParty[i], MON_DATA_HP); status = GetMonData(&gPlayerParty[i], MON_DATA_STATUS); - if (species == 0) + if (species == SPECIES_NONE) continue; if (species != SPECIES_EGG && hp != 0 && status == 0) r6 |= 1 << i * 2; - if (species == 0) + if (species == SPECIES_NONE) continue; if (hp != 0 && (species == SPECIES_EGG || status != 0)) r6 |= 2 << i * 2; - if (species == 0) + if (species == SPECIES_NONE) continue; if (species != SPECIES_EGG && hp == 0) r6 |= 3 << i * 2; @@ -310,7 +331,7 @@ void sub_800E9EC(void) gBattleStruct->unk3 = r6 >> 8; } -void sub_800EAAC(void) +static void SetPlayerBerryDataInBattleStruct(void) { s32 i; struct UnknownStruct8 *_ewram4 = &ewram4; @@ -323,7 +344,7 @@ void sub_800EAAC(void) _ewram4->unk1A = gSaveBlock1.enigmaBerry.holdEffectParam; } -void sub_800EB08(void) +void SetAllPlayersBerryData(void) { s32 i; s32 j; @@ -358,7 +379,7 @@ void sub_800EB08(void) for (i = 0; i < numPlayers; i++) { src = (struct BattleEnigmaBerry *)(gBlockRecvBuffer[i] + 2); - r4 = gLinkPlayers[i].lp_field_18; + r4 = gLinkPlayers[i].id; for (j = 0; j < 7; j++) gEnigmaBerries[r4].name[j] = src->name[j]; @@ -370,7 +391,7 @@ void sub_800EB08(void) } } -void shedinja_something(struct Pokemon *pkmn) +void TryCorrectShedinjaLanguage(struct Pokemon *pkmn) { u8 nickname[POKEMON_NAME_LENGTH + 1]; u8 language = 1; @@ -384,7 +405,7 @@ void shedinja_something(struct Pokemon *pkmn) } } -void sub_800EC9C(void) +void CB2_HandleStartBattle(void) { u8 playerId; u8 enemyId; @@ -393,6 +414,7 @@ void sub_800EC9C(void) RunTasks(); AnimateSprites(); BuildOamBuffer(); + playerId = GetMultiplayerId(); ewram160CB = playerId; enemyId = playerId ^ 1; @@ -407,13 +429,13 @@ void sub_800EC9C(void) gBattleStruct->unk0 = 1; gBattleStruct->unk1 = 1; sub_800E9EC(); - sub_800EAAC(); + SetPlayerBerryDataInBattleStruct(); #if DEBUG if (gUnknown_02023A14_50 & 8) { for (id = 0; id < 2; id++) // Why < 2 here? { - gLinkPlayers[id].lp_field_18 = id; + gLinkPlayers[id].id = id; gLinkPlayers[id].linkType = 0x2211; } } @@ -426,7 +448,7 @@ void sub_800EC9C(void) { gBattleTypeFlags |= BATTLE_TYPE_WILD; gBattleCommunication[0] = 8; - sub_800EB08(); + SetAllPlayersBerryData(); } break; case 1: @@ -468,7 +490,7 @@ void sub_800EC9C(void) gBattleTypeFlags |= 8; } } - sub_800EB08(); + SetAllPlayersBerryData(); taskId = CreateTask(sub_800DE30, 0); gTasks[taskId].data[1] = 0x10E; gTasks[taskId].data[2] = 0x5A; @@ -520,12 +542,12 @@ void sub_800EC9C(void) { ResetBlockReceivedFlags(); memcpy(gEnemyParty + 4, gBlockRecvBuffer[enemyId], sizeof(*gEnemyParty) * 2); - shedinja_something(&gEnemyParty[0]); - shedinja_something(&gEnemyParty[1]); - shedinja_something(&gEnemyParty[2]); - shedinja_something(&gEnemyParty[3]); - shedinja_something(&gEnemyParty[4]); - shedinja_something(&gEnemyParty[5]); + TryCorrectShedinjaLanguage(&gEnemyParty[0]); + TryCorrectShedinjaLanguage(&gEnemyParty[1]); + TryCorrectShedinjaLanguage(&gEnemyParty[2]); + TryCorrectShedinjaLanguage(&gEnemyParty[3]); + TryCorrectShedinjaLanguage(&gEnemyParty[4]); + TryCorrectShedinjaLanguage(&gEnemyParty[5]); gBattleCommunication[0]++; } break; @@ -539,7 +561,7 @@ void sub_800EC9C(void) if (battle_load_something(gUnknown_02024D1F, gUnknown_02024D1F + 1) != 0) { gPreBattleCallback1 = gMain.callback1; - gMain.callback1 = sub_8010824; + gMain.callback1 = BattleMainCB1; SetMainCallback2(BattleMainCB2); if (gBattleTypeFlags & BATTLE_TYPE_LINK) { @@ -602,7 +624,7 @@ void sub_800F104(void) { for (i = 0; i < 4; i++) { - gLinkPlayers[i].lp_field_18 = i; + gLinkPlayers[i].id = i; gLinkPlayers[i].linkType = 0x2211; } } @@ -625,8 +647,8 @@ void sub_800F104(void) { if (i != playerId) { - if ((!(gLinkPlayers[i].lp_field_18 & 1) && !(gLinkPlayers[playerId].lp_field_18 & 1)) - || ((gLinkPlayers[i].lp_field_18 & 1) && (gLinkPlayers[playerId].lp_field_18 & 1))) + if ((!(gLinkPlayers[i].id & 1) && !(gLinkPlayers[playerId].id & 1)) + || ((gLinkPlayers[i].id & 1) && (gLinkPlayers[playerId].id & 1))) memcpy(gMultiPartnerParty, gBlockRecvBuffer[i], 0x60); } } @@ -649,7 +671,7 @@ void sub_800F104(void) { gBattleTypeFlags = *pSavedBattleTypeFlags; gMain.savedCallback = *pSavedCallback; - SetMainCallback2(InitBattle); + SetMainCallback2(CB2_InitBattleInternal); } break; } @@ -675,7 +697,7 @@ void sub_800F298(void) { for (id = 0; id < 4; id++) { - gLinkPlayers[id].lp_field_18 = id; + gLinkPlayers[id].id = id; gLinkPlayers[id].linkType = 0x2211; } } @@ -685,7 +707,7 @@ void sub_800F298(void) gBattleStruct->unk0 = 1; gBattleStruct->unk1 = 1; sub_800E9EC(); - sub_800EAAC(); + SetPlayerBerryDataInBattleStruct(); SendBlock(bitmask_all_link_players_but_self(), gSharedMem, 0x20); gBattleCommunication[0]++; } @@ -740,7 +762,7 @@ void sub_800F298(void) gBattleTypeFlags |= 8; } } - sub_800EB08(); + SetAllPlayersBerryData(); memcpy(ewram1D000, gPlayerParty, sizeof(struct Pokemon) * 3); taskId = CreateTask(sub_800DE30, 0); gTasks[taskId].data[1] = 0x10E; @@ -750,7 +772,7 @@ void sub_800F298(void) gTasks[taskId].data[4] = 0; for (id = 0; id < MAX_LINK_PLAYERS; id++) { - switch (gLinkPlayers[id].lp_field_18) + switch (gLinkPlayers[id].id) { case 0: gTasks[taskId].data[3] |= gBlockRecvBuffer[id][1] & 0x3F; @@ -786,7 +808,7 @@ void sub_800F298(void) { if (id == playerId) { - switch (gLinkPlayers[id].lp_field_18) + switch (gLinkPlayers[id].id) { case 0: case 3: @@ -800,10 +822,10 @@ void sub_800F298(void) } else { - if ((!(gLinkPlayers[id].lp_field_18 & 1) && !(gLinkPlayers[playerId].lp_field_18 & 1)) - || ((gLinkPlayers[id].lp_field_18 & 1) && (gLinkPlayers[playerId].lp_field_18 & 1))) + if ((!(gLinkPlayers[id].id & 1) && !(gLinkPlayers[playerId].id & 1)) + || ((gLinkPlayers[id].id & 1) && (gLinkPlayers[playerId].id & 1))) { - switch (gLinkPlayers[id].lp_field_18) + switch (gLinkPlayers[id].id) { case 0: case 3: @@ -817,7 +839,7 @@ void sub_800F298(void) } else { - switch (gLinkPlayers[id].lp_field_18) + switch (gLinkPlayers[id].id) { case 0: case 3: @@ -849,7 +871,7 @@ void sub_800F298(void) { if (id == playerId) { - switch (gLinkPlayers[id].lp_field_18) + switch (gLinkPlayers[id].id) { case 0: case 3: @@ -863,10 +885,10 @@ void sub_800F298(void) } else { - if ((!(gLinkPlayers[id].lp_field_18 & 1) && !(gLinkPlayers[playerId].lp_field_18 & 1)) - || ((gLinkPlayers[id].lp_field_18 & 1) && (gLinkPlayers[playerId].lp_field_18 & 1))) + if ((!(gLinkPlayers[id].id & 1) && !(gLinkPlayers[playerId].id & 1)) + || ((gLinkPlayers[id].id & 1) && (gLinkPlayers[playerId].id & 1))) { - switch (gLinkPlayers[id].lp_field_18) + switch (gLinkPlayers[id].id) { case 0: case 3: @@ -880,7 +902,7 @@ void sub_800F298(void) } else { - switch (gLinkPlayers[id].lp_field_18) + switch (gLinkPlayers[id].id) { case 0: case 3: @@ -895,19 +917,19 @@ void sub_800F298(void) } } - shedinja_something(&gPlayerParty[0]); - shedinja_something(&gPlayerParty[1]); - shedinja_something(&gPlayerParty[2]); - shedinja_something(&gPlayerParty[3]); - shedinja_something(&gPlayerParty[4]); - shedinja_something(&gPlayerParty[5]); + TryCorrectShedinjaLanguage(&gPlayerParty[0]); + TryCorrectShedinjaLanguage(&gPlayerParty[1]); + TryCorrectShedinjaLanguage(&gPlayerParty[2]); + TryCorrectShedinjaLanguage(&gPlayerParty[3]); + TryCorrectShedinjaLanguage(&gPlayerParty[4]); + TryCorrectShedinjaLanguage(&gPlayerParty[5]); - shedinja_something(&gEnemyParty[0]); - shedinja_something(&gEnemyParty[1]); - shedinja_something(&gEnemyParty[2]); - shedinja_something(&gEnemyParty[3]); - shedinja_something(&gEnemyParty[4]); - shedinja_something(&gEnemyParty[5]); + TryCorrectShedinjaLanguage(&gEnemyParty[0]); + TryCorrectShedinjaLanguage(&gEnemyParty[1]); + TryCorrectShedinjaLanguage(&gEnemyParty[2]); + TryCorrectShedinjaLanguage(&gEnemyParty[3]); + TryCorrectShedinjaLanguage(&gEnemyParty[4]); + TryCorrectShedinjaLanguage(&gEnemyParty[5]); gBattleCommunication[0]++; } @@ -922,7 +944,7 @@ void sub_800F298(void) if (battle_load_something(gUnknown_02024D1F, gUnknown_02024D1F + 1) != 0) { gPreBattleCallback1 = gMain.callback1; - gMain.callback1 = sub_8010824; + gMain.callback1 = BattleMainCB1; SetMainCallback2(BattleMainCB2); if (gBattleTypeFlags & BATTLE_TYPE_LINK) { @@ -1012,7 +1034,7 @@ void sub_800F838(struct Sprite *sprite) case 2: sprite->data[1]--; if (sprite->data[1] == 20) - SetMainCallback2(sub_800E7C4); + SetMainCallback2(CB2_InitBattle); break; } } @@ -1176,7 +1198,7 @@ void sub_800FE40(u8 taskId) if (gBattleTypeFlags & BATTLE_TYPE_MULTI) { - switch (gLinkPlayers[r2].lp_field_18) + switch (gLinkPlayers[r2].id) { case 0: case 2: @@ -1292,7 +1314,7 @@ void c2_8011A1C(void) ApplyPlayerChosenFrameToBattleMenu(); ResetSpriteData(); ResetTasks(); - LoadBattleEntryBackground(); + DrawBattleEntryBackground(); REG_WINOUT = 0x37; FreeAllSpritePalettes(); gReservedSpritePaletteCount = 4; @@ -2514,7 +2536,7 @@ void debug_sub_8012688(void) &gMonFrontPicTable[gCurrentMove], gMonFrontPicCoords[gCurrentMove].coords, gMonFrontPicCoords[gCurrentMove].y_offset, - (void *)0x02000000, + (void *)EWRAM, gUnknown_081FAF4C[1], gCurrentMove); LoadCompressedPalette(gMonPaletteTable[gCurrentMove].data, 272, 32); @@ -2574,7 +2596,7 @@ void debug_sub_80129F8(u8 taskId) &gMonFrontPicTable[gCurrentMove], gMonFrontPicCoords[gCurrentMove].coords, gMonFrontPicCoords[gCurrentMove].y_offset, - (void *)0x02000000, + (void *)EWRAM, gUnknown_081FAF4C[1], gCurrentMove); LoadCompressedPalette(gMonPaletteTable[gCurrentMove].data, 272, 32); @@ -2973,7 +2995,7 @@ void sub_80102AC(struct Sprite *sprite) if (sprite->animEnded) { sub_804777C(sprite->data[0]); - sub_8043DFC(gHealthboxIDs[sprite->data[0]]); + sub_8043DFC(gHealthboxSpriteIds[sprite->data[0]]); sprite->callback = nullsub_37; StartSpriteAnimIfDifferent(sprite, 0); BeginNormalPaletteFade(0x00020000, 0, 10, 0, RGB(15, 15, 15)); @@ -3158,14 +3180,14 @@ void dp11b_obj_instanciate(u8 bank, u8 b, s8 c, s8 d) spriteId = CreateInvisibleSpriteWithCallback(objc_dp11b_pingpong); if (b == TRUE) { - objectID = gHealthboxIDs[bank]; + objectID = gHealthboxSpriteIds[bank]; ewram17810[bank].unk2 = spriteId; ewram17810[bank].unk0_1 = 1; gSprites[spriteId].data[0] = 0x80; } else { - objectID = gBankSpriteIds[bank]; + objectID = gBattlerSpriteIds[bank]; ewram17810[bank].unk3 = spriteId; ewram17810[bank].unk0_2 = 1; gSprites[spriteId].data[0] = 0xC0; @@ -3235,7 +3257,7 @@ void debug_sub_80138CC(void) switch (gSharedMem[0x160FD]) { case 0: - if (gBattleBankFunc[gActiveBattler] == sub_802C098) + if (gBattlerControllerFuncs[gActiveBattler] == sub_802C098) gSharedMem[0x160FD]++; break; case 1: @@ -3271,7 +3293,7 @@ void debug_sub_80138CC(void) } #endif -void sub_8010824(void) +void BattleMainCB1(void) { #if DEBUG if (gUnknown_02023A14_50 & 0x80) @@ -3280,14 +3302,14 @@ void sub_8010824(void) debug_sub_80138CC(); gBattleMainFunc(); for (gActiveBattler = 0; gActiveBattler < gBattlersCount; gActiveBattler++) - gBattleBankFunc[gActiveBattler](); + gBattlerControllerFuncs[gActiveBattler](); } else #endif { gBattleMainFunc(); for (gActiveBattler = 0; gActiveBattler < gBattlersCount; gActiveBattler++) - gBattleBankFunc[gActiveBattler](); + gBattlerControllerFuncs[gActiveBattler](); } } @@ -3323,8 +3345,8 @@ void sub_8010874(void) MEMSET_ALT(&gSideTimers[i], 0, 12, j, r4); } - gBankAttacker = 0; - gBankTarget = 0; + gBattlerAttacker = 0; + gBattlerTarget = 0; gBattleWeather = 0; MEMSET_ALT(&gWishFutureKnock, 0, 0x2C, i, r4); @@ -3335,7 +3357,7 @@ void sub_8010874(void) ewram16084 = gSaveBlock2.optionsBattleStyle; gMultiHitCounter = 0; gBattleOutcome = 0; - gBattleExecBuffer = 0; + gBattleControllerExecFlags = 0; gPaydayMoney = 0; ewram17130 = 0; ewram17160 = 0; @@ -3507,17 +3529,17 @@ void UndoEffectsAfterFainting(void) MEMSET_ALT(&gDisableStructs[gActiveBattler], 0, 0x1C, i, ptr); gProtectStructs[gActiveBattler].protected = 0; gProtectStructs[gActiveBattler].endured = 0; - gProtectStructs[gActiveBattler].onlyStruggle = 0; + gProtectStructs[gActiveBattler].noValidMoves = 0; gProtectStructs[gActiveBattler].helpingHand = 0; gProtectStructs[gActiveBattler].bounceMove = 0; gProtectStructs[gActiveBattler].stealMove = 0; gProtectStructs[gActiveBattler].flag0Unknown = 0; gProtectStructs[gActiveBattler].prlzImmobility = 0; gProtectStructs[gActiveBattler].confusionSelfDmg = 0; - gProtectStructs[gActiveBattler].notEffective = 0; + gProtectStructs[gActiveBattler].targetNotAffected = 0; gProtectStructs[gActiveBattler].chargingTurn = 0; gProtectStructs[gActiveBattler].fleeFlag = 0; - gProtectStructs[gActiveBattler].usedImprisionedMove = 0; + gProtectStructs[gActiveBattler].usedImprisonedMove = 0; gProtectStructs[gActiveBattler].loveImmobility = 0; gProtectStructs[gActiveBattler].usedDisabledMove = 0; gProtectStructs[gActiveBattler].usedTauntedMove = 0; @@ -3554,12 +3576,12 @@ void bc_8012FAC(void) { case 0: gActiveBattler = gBattleCommunication[1]; - EmitGetAttributes(0, 0, 0); - MarkBufferBankForExecution(gActiveBattler); + BtlController_EmitGetMonData(0, 0, 0); + MarkBattlerForControllerExec(gActiveBattler); gBattleCommunication[0]++; break; case 1: - if (gBattleExecBuffer == 0) + if (gBattleControllerExecFlags == 0) { gBattleCommunication[1]++; if (gBattleCommunication[1] == gBattlersCount) @@ -3573,11 +3595,11 @@ void bc_8012FAC(void) static void BattlePrepIntroSlide(void) { - if (gBattleExecBuffer == 0) + if (gBattleControllerExecFlags == 0) { gActiveBattler = GetBattlerAtPosition(0); - EmitIntroSlide(0, gBattleTerrain); - MarkBufferBankForExecution(gActiveBattler); + BtlController_EmitIntroSlide(0, gBattleTerrain); + MarkBattlerForControllerExec(gActiveBattler); gBattleMainFunc = sub_8011384; gBattleCommunication[0] = 0; gBattleCommunication[1] = 0; @@ -3589,7 +3611,7 @@ void sub_8011384(void) u8 *ptr; s32 i; - if (gBattleExecBuffer == 0) + if (gBattleControllerExecFlags == 0) { for (gActiveBattler = 0; gActiveBattler < gBattlersCount; gActiveBattler++) { @@ -3615,16 +3637,16 @@ void sub_8011384(void) if (GetBattlerPosition(gActiveBattler) == 0) { - EmitTrainerThrow(0); - MarkBufferBankForExecution(gActiveBattler); + BtlController_EmitDrawTrainerPic(0); + MarkBattlerForControllerExec(gActiveBattler); } if (gBattleTypeFlags & BATTLE_TYPE_TRAINER) { if (GetBattlerPosition(gActiveBattler) == 1) { - EmitTrainerThrow(0); - MarkBufferBankForExecution(gActiveBattler); + BtlController_EmitDrawTrainerPic(0); + MarkBattlerForControllerExec(gActiveBattler); } if (GetBattlerSide(gActiveBattler) == 1 && !(gBattleTypeFlags & (BATTLE_TYPE_EREADER_TRAINER | BATTLE_TYPE_BATTLE_TOWER | BATTLE_TYPE_LINK))) @@ -3636,8 +3658,8 @@ void sub_8011384(void) && !(gBattleTypeFlags & (BATTLE_TYPE_EREADER_TRAINER | BATTLE_TYPE_BATTLE_TOWER | BATTLE_TYPE_LINK))) { GetSetPokedexFlag(SpeciesToNationalPokedexNum(gBattleMons[gActiveBattler].species), 2); - EmitLoadPokeSprite(0); - MarkBufferBankForExecution(gActiveBattler); + BtlController_EmitLoadMonSprite(0); + MarkBattlerForControllerExec(gActiveBattler); } } @@ -3646,8 +3668,8 @@ void sub_8011384(void) if (GetBattlerPosition(gActiveBattler) == 2 || GetBattlerPosition(gActiveBattler) == 3) { - EmitTrainerThrow(0); - MarkBufferBankForExecution(gActiveBattler); + BtlController_EmitDrawTrainerPic(0); + MarkBattlerForControllerExec(gActiveBattler); } } } @@ -3659,7 +3681,7 @@ void bc_801333C(void) { s32 i; - if (gBattleExecBuffer == 0) + if (gBattleControllerExecFlags == 0) { struct HpAndStatus hpStatus[6]; @@ -3680,8 +3702,8 @@ void bc_801333C(void) } } gActiveBattler = GetBattlerAtPosition(1); - EmitDrawPartyStatusSummary(0, hpStatus, 0x80); - MarkBufferBankForExecution(gActiveBattler); + BtlController_EmitDrawPartyStatusSummary(0, hpStatus, 0x80); + MarkBattlerForControllerExec(gActiveBattler); for (i = 0; i < 6; i++) { @@ -3698,8 +3720,8 @@ void bc_801333C(void) } } gActiveBattler = GetBattlerAtPosition(0); - EmitDrawPartyStatusSummary(0, hpStatus, 0x80); - MarkBufferBankForExecution(gActiveBattler); + BtlController_EmitDrawPartyStatusSummary(0, hpStatus, 0x80); + MarkBattlerForControllerExec(gActiveBattler); gBattleMainFunc = bc_battle_begin_message; } @@ -3730,7 +3752,7 @@ void bc_801333C(void) void bc_battle_begin_message(void) { - if (gBattleExecBuffer == 0) + if (gBattleControllerExecFlags == 0) { gActiveBattler = GetBattlerAtPosition(1); PrepareStringBattle(0, gActiveBattler); @@ -3740,7 +3762,7 @@ void bc_battle_begin_message(void) void bc_8013568(void) { - if (gBattleExecBuffer == 0) + if (gBattleControllerExecFlags == 0) { gBattleMainFunc = sub_8011970; PrepareStringBattle(0, 0); @@ -3749,7 +3771,7 @@ void bc_8013568(void) void sub_8011800(void) { - if (gBattleExecBuffer == 0) + if (gBattleControllerExecFlags == 0) { PrepareStringBattle(1, GetBattlerAtPosition(1)); gBattleMainFunc = sub_8011834; @@ -3758,20 +3780,20 @@ void sub_8011800(void) void sub_8011834(void) { - if (gBattleExecBuffer == 0) + if (gBattleControllerExecFlags == 0) { for (gActiveBattler = 0; gActiveBattler < gBattlersCount; gActiveBattler++) { if (GetBattlerPosition(gActiveBattler) == 1) { - EmitTrainerBallThrow(0); - MarkBufferBankForExecution(gActiveBattler); + BtlController_EmitIntroTrainerBallThrow(0); + MarkBattlerForControllerExec(gActiveBattler); } if ((gBattleTypeFlags & BATTLE_TYPE_MULTI) && GetBattlerPosition(gActiveBattler) == 3) { - EmitTrainerBallThrow(0); - MarkBufferBankForExecution(gActiveBattler); + BtlController_EmitIntroTrainerBallThrow(0); + MarkBattlerForControllerExec(gActiveBattler); } } gBattleMainFunc = bc_801362C; @@ -3780,7 +3802,7 @@ void sub_8011834(void) void bc_801362C(void) { - if (gBattleExecBuffer == 0) + if (gBattleControllerExecFlags == 0) { for (gActiveBattler = 0; gActiveBattler < gBattlersCount; gActiveBattler++) { @@ -3794,13 +3816,13 @@ void bc_801362C(void) void unref_sub_8011950(void) { - if (gBattleExecBuffer == 0) + if (gBattleControllerExecFlags == 0) gBattleMainFunc = sub_8011970; } void sub_8011970(void) { - if (gBattleExecBuffer == 0) + if (gBattleControllerExecFlags == 0) { if (!(gBattleTypeFlags & BATTLE_TYPE_SAFARI)) PrepareStringBattle(1, GetBattlerAtPosition(0)); @@ -3810,20 +3832,20 @@ void sub_8011970(void) void sub_80119B4(void) { - if (gBattleExecBuffer == 0) + if (gBattleControllerExecFlags == 0) { for (gActiveBattler = 0; gActiveBattler < gBattlersCount; gActiveBattler++) { if (GetBattlerPosition(gActiveBattler) == 0) { - EmitTrainerBallThrow(0); - MarkBufferBankForExecution(gActiveBattler); + BtlController_EmitIntroTrainerBallThrow(0); + MarkBattlerForControllerExec(gActiveBattler); } if ((gBattleTypeFlags & BATTLE_TYPE_MULTI) && GetBattlerPosition(gActiveBattler) == 2) { - EmitTrainerBallThrow(0); - MarkBufferBankForExecution(gActiveBattler); + BtlController_EmitIntroTrainerBallThrow(0); + MarkBattlerForControllerExec(gActiveBattler); } } ewram16058 = 0; @@ -3835,14 +3857,14 @@ void sub_80119B4(void) void unref_sub_8011A68(void) { - if (gBattleExecBuffer == 0) + if (gBattleControllerExecFlags == 0) { for (gActiveBattler = 0; gActiveBattler < gBattlersCount; gActiveBattler++) { if (GetBattlerSide(gActiveBattler) == 0) { - EmitSendOutPoke(0, gBattlerPartyIndexes[gActiveBattler], 0); - MarkBufferBankForExecution(gActiveBattler); + BtlController_EmitSwitchInAnim(0, gBattlerPartyIndexes[gActiveBattler], 0); + MarkBattlerForControllerExec(gActiveBattler); } } ewram16058 = 0; @@ -3858,7 +3880,7 @@ void BattleBeginFirstTurn(void) s32 j; u8 r9 = 0; - if (gBattleExecBuffer == 0) + if (gBattleControllerExecFlags == 0) { if (ewram16058 == 0) { @@ -3932,7 +3954,7 @@ void bc_8013B1C(void) { s32 i; - if (gBattleExecBuffer == 0) + if (gBattleControllerExecFlags == 0) { gBattleMainFunc = BattleTurnPassed; for (i = 0; i < 8; i++) @@ -4011,7 +4033,7 @@ u8 CanRunFromBattle(void) r2 = gEnigmaBerries[gActiveBattler].holdEffect; else r2 = ItemId_GetHoldEffect(gBattleMons[gActiveBattler].item); - gStringBank = gActiveBattler; + gPotentialItemEffectBattler = gActiveBattler; if (r2 == HOLD_EFFECT_CAN_ALWAYS_RUN) return 0; if (gBattleTypeFlags & BATTLE_TYPE_LINK) @@ -4148,13 +4170,13 @@ void sub_8012324(void) } else { - Emitcmd18(0, gActionForBanks[0], gBattleBufferB[0][1] | (gBattleBufferB[0][2] << 8)); - MarkBufferBankForExecution(gActiveBattler); + BtlController_EmitChooseAction(0, gActionForBanks[0], gBattleBufferB[0][1] | (gBattleBufferB[0][2] << 8)); + MarkBattlerForControllerExec(gActiveBattler); gBattleCommunication[gActiveBattler]++; } break; case STATE_WAIT_ACTION_CHOSEN: - if (!(gBattleExecBuffer & ((gBitTable[gActiveBattler]) | (0xF0000000) | (gBitTable[gActiveBattler] << 4) | (gBitTable[gActiveBattler] << 8) | (gBitTable[gActiveBattler] << 0xC)))) + if (!(gBattleControllerExecFlags & ((gBitTable[gActiveBattler]) | (0xF0000000) | (gBitTable[gActiveBattler] << 4) | (gBitTable[gActiveBattler] << 8) | (gBitTable[gActiveBattler] << 0xC)))) { gActionForBanks[gActiveBattler] = gBattleBufferB[gActiveBattler][1]; switch (gBattleBufferB[gActiveBattler][1]) @@ -4199,8 +4221,8 @@ void sub_8012324(void) i); } - Emitcmd20(0, (gBattleTypeFlags & BATTLE_TYPE_DOUBLE) != 0, FALSE, (u8 *)&moveInfo); - MarkBufferBankForExecution(gActiveBattler); + BtlController_EmitChooseMove(0, (gBattleTypeFlags & BATTLE_TYPE_DOUBLE) != 0, FALSE, (u8 *)&moveInfo); + MarkBattlerForControllerExec(gActiveBattler); } break; case B_ACTION_USE_ITEM: @@ -4216,8 +4238,8 @@ void sub_8012324(void) } else { - EmitOpenBag(0, &ewram1606Carr(0, gActiveBattler)); - MarkBufferBankForExecution(gActiveBattler); + BtlController_EmitChooseItem(0, &ewram1606Carr(0, gActiveBattler)); + MarkBattlerForControllerExec(gActiveBattler); } break; case B_ACTION_SWITCH: @@ -4225,7 +4247,7 @@ void sub_8012324(void) if (gBattleMons[gActiveBattler].status2 & (STATUS2_WRAPPED | STATUS2_ESCAPE_PREVENTION) || gStatuses3[gActiveBattler] & STATUS3_ROOTED) { - EmitChoosePokemon(0, 2, 6, ABILITY_NONE, &ewram1606Carr(0, gActiveBattler)); + BtlController_EmitChoosePokemon(0, 2, 6, ABILITY_NONE, &ewram1606Carr(0, gActiveBattler)); } else if ((i = ABILITY_ON_OPPOSING_FIELD(gActiveBattler, ABILITY_SHADOW_TAG)) || ((i = ABILITY_ON_OPPOSING_FIELD(gActiveBattler, ABILITY_ARENA_TRAP)) @@ -4234,18 +4256,18 @@ void sub_8012324(void) || ((i = AbilityBattleEffects(ABILITYEFFECT_CHECK_FIELD_EXCEPT_BATTLER, gActiveBattler, ABILITY_MAGNET_PULL, 0, 0)) && IS_BATTLER_OF_TYPE(gActiveBattler, TYPE_STEEL))) { - EmitChoosePokemon(0, ((i - 1) << 4) | PARTY_ABILITY_PREVENTS, 6, gLastUsedAbility, &ewram1606Carr(0, gActiveBattler)); + BtlController_EmitChoosePokemon(0, ((i - 1) << 4) | PARTY_ABILITY_PREVENTS, 6, gLastUsedAbility, &ewram1606Carr(0, gActiveBattler)); } else { if (gActiveBattler == 2 && gActionForBanks[0] == B_ACTION_SWITCH) - EmitChoosePokemon(0, PARTY_CHOOSE_MON, ewram16068arr(0), ABILITY_NONE, &ewram1606Carr(0, gActiveBattler)); + BtlController_EmitChoosePokemon(0, PARTY_CHOOSE_MON, ewram16068arr(0), ABILITY_NONE, &ewram1606Carr(0, gActiveBattler)); else if (gActiveBattler == 3 && gActionForBanks[1] == B_ACTION_SWITCH) - EmitChoosePokemon(0, PARTY_CHOOSE_MON, ewram16068arr(1), ABILITY_NONE, &ewram1606Carr(0, gActiveBattler)); + BtlController_EmitChoosePokemon(0, PARTY_CHOOSE_MON, ewram16068arr(1), ABILITY_NONE, &ewram1606Carr(0, gActiveBattler)); else - EmitChoosePokemon(0, PARTY_CHOOSE_MON, 6, ABILITY_NONE, &ewram1606Carr(0, gActiveBattler)); + BtlController_EmitChoosePokemon(0, PARTY_CHOOSE_MON, 6, ABILITY_NONE, &ewram1606Carr(0, gActiveBattler)); } - MarkBufferBankForExecution(gActiveBattler); + MarkBattlerForControllerExec(gActiveBattler); break; case B_ACTION_SAFARI_BALL: if (PlayerPartyAndPokemonStorageFull()) @@ -4258,14 +4280,14 @@ void sub_8012324(void) } break; case B_ACTION_SAFARI_POKEBLOCK: - EmitOpenBag(0, &ewram1606Carr(0, gActiveBattler)); - MarkBufferBankForExecution(gActiveBattler); + BtlController_EmitChooseItem(0, &ewram1606Carr(0, gActiveBattler)); + MarkBattlerForControllerExec(gActiveBattler); break; case B_ACTION_CANCEL_PARTNER: gBattleCommunication[gActiveBattler] = STATE_WAIT_SET_BEFORE_ACTION; gBattleCommunication[GetBattlerAtPosition(BATTLE_PARTNER(GetBattlerPosition(gActiveBattler)))] = STATE_BEFORE_ACTION_CHOSEN; - Emitcmd50(0); - MarkBufferBankForExecution(gActiveBattler); + BtlController_EmitEndBounceEffect(0); + MarkBattlerForControllerExec(gActiveBattler); return; } @@ -4292,7 +4314,7 @@ void sub_8012324(void) } break; case STATE_WAIT_ACTION_CASE_CHOSEN: - if (!(gBattleExecBuffer & ((gBitTable[gActiveBattler]) | (0xF0000000) | (gBitTable[gActiveBattler] << 4) | (gBitTable[gActiveBattler] << 8) | (gBitTable[gActiveBattler] << 0xC)))) + if (!(gBattleControllerExecFlags & ((gBitTable[gActiveBattler]) | (0xF0000000) | (gBitTable[gActiveBattler] << 4) | (gBitTable[gActiveBattler] << 8) | (gBitTable[gActiveBattler] << 0xC)))) { switch (gActionForBanks[gActiveBattler]) { @@ -4398,24 +4420,24 @@ void sub_8012324(void) } break; case STATE_WAIT_ACTION_CONFIRMED_STANDBY: - if (!(gBattleExecBuffer & ((gBitTable[gActiveBattler]) | (0xF0000000) | (gBitTable[gActiveBattler] << 4) | (gBitTable[gActiveBattler] << 8) | (gBitTable[gActiveBattler] << 0xC)))) + if (!(gBattleControllerExecFlags & ((gBitTable[gActiveBattler]) | (0xF0000000) | (gBitTable[gActiveBattler] << 4) | (gBitTable[gActiveBattler] << 8) | (gBitTable[gActiveBattler] << 0xC)))) { if (((gBattleTypeFlags & (BATTLE_TYPE_MULTI | BATTLE_TYPE_DOUBLE)) != BATTLE_TYPE_DOUBLE) || (position & BIT_FLANK) != B_FLANK_LEFT || (ewram160A6 & gBitTable[GetBattlerAtPosition(position ^ BIT_FLANK)])) { - EmitLinkStandbyMsg(0, 0); + BtlController_EmitLinkStandbyMsg(0, 0); } else { - EmitLinkStandbyMsg(0, 1); + BtlController_EmitLinkStandbyMsg(0, 1); } - MarkBufferBankForExecution(gActiveBattler); + MarkBattlerForControllerExec(gActiveBattler); gBattleCommunication[gActiveBattler]++; } break; case STATE_WAIT_ACTION_CONFIRMED: - if (!(gBattleExecBuffer & ((gBitTable[gActiveBattler]) | (0xF0000000) | (gBitTable[gActiveBattler] << 4) | (gBitTable[gActiveBattler] << 8) | (gBitTable[gActiveBattler] << 0xC)))) + if (!(gBattleControllerExecFlags & ((gBitTable[gActiveBattler]) | (0xF0000000) | (gBitTable[gActiveBattler] << 4) | (gBitTable[gActiveBattler] << 8) | (gBitTable[gActiveBattler] << 0xC)))) { gBattleCommunication[ACTIONS_CONFIRMED_COUNT]++; } @@ -4427,9 +4449,9 @@ void sub_8012324(void) } else { - gBankAttacker = gActiveBattler; + gBattlerAttacker = gActiveBattler; gBattlescriptCurrInstr = gSelectionBattleScripts[gActiveBattler]; - if (!(gBattleExecBuffer & ((gBitTable[gActiveBattler]) | (0xF0000000) | (gBitTable[gActiveBattler] << 4) | (gBitTable[gActiveBattler] << 8) | (gBitTable[gActiveBattler] << 0xC)))) + if (!(gBattleControllerExecFlags & ((gBitTable[gActiveBattler]) | (0xF0000000) | (gBitTable[gActiveBattler] << 4) | (gBitTable[gActiveBattler] << 8) | (gBitTable[gActiveBattler] << 0xC)))) { gBattleScriptingCommandsTable[gBattlescriptCurrInstr[0]](); } @@ -4437,7 +4459,7 @@ void sub_8012324(void) } break; case STATE_WAIT_SET_BEFORE_ACTION: - if (!(gBattleExecBuffer & ((gBitTable[gActiveBattler]) | (0xF0000000) | (gBitTable[gActiveBattler] << 4) | (gBitTable[gActiveBattler] << 8) | (gBitTable[gActiveBattler] << 0xC)))) + if (!(gBattleControllerExecFlags & ((gBitTable[gActiveBattler]) | (0xF0000000) | (gBitTable[gActiveBattler] << 4) | (gBitTable[gActiveBattler] << 8) | (gBitTable[gActiveBattler] << 0xC)))) { gBattleCommunication[gActiveBattler] = STATE_BEFORE_ACTION_CHOSEN; } @@ -4568,7 +4590,7 @@ u8 GetWhoStrikesFirst(u8 bank1, u8 bank2, bool8 ignoreMovePriorities) { if (gActionForBanks[bank1] == 0) { - if (gProtectStructs[bank1].onlyStruggle) + if (gProtectStructs[bank1].noValidMoves) bank1Move = MOVE_STRUGGLE; else bank1Move = gBattleMons[bank1].moves[ewram1608Carr(bank1)]; @@ -4578,7 +4600,7 @@ u8 GetWhoStrikesFirst(u8 bank1, u8 bank2, bool8 ignoreMovePriorities) if (gActionForBanks[bank2] == 0) { - if (gProtectStructs[bank2].onlyStruggle) + if (gProtectStructs[bank2].noValidMoves) bank2Move = MOVE_STRUGGLE; else bank2Move = gBattleMons[bank2].moves[ewram1608Carr(bank2)]; @@ -4630,7 +4652,7 @@ void SetActionsAndBanksTurnOrder(void) { for (gActiveBattler = 0; gActiveBattler < gBattlersCount; gActiveBattler++) { - if (gActionForBanks[gActiveBattler] == ACTION_RUN) + if (gActionForBanks[gActiveBattler] == B_ACTION_RUN) { var = 5; break; @@ -4639,7 +4661,7 @@ void SetActionsAndBanksTurnOrder(void) } else { - if (gActionForBanks[0] == ACTION_RUN) + if (gActionForBanks[0] == B_ACTION_RUN) { gActiveBattler = 0; var = 5; @@ -4668,7 +4690,7 @@ void SetActionsAndBanksTurnOrder(void) { for (gActiveBattler = 0; gActiveBattler < gBattlersCount; gActiveBattler++) { - if (gActionForBanks[gActiveBattler] == ACTION_USE_ITEM || gActionForBanks[gActiveBattler] == ACTION_SWITCH) + if (gActionForBanks[gActiveBattler] == B_ACTION_USE_ITEM || gActionForBanks[gActiveBattler] == B_ACTION_SWITCH) { gActionsByTurnOrder[var] = gActionForBanks[gActiveBattler]; gBanksByTurnOrder[var] = gActiveBattler; @@ -4677,7 +4699,7 @@ void SetActionsAndBanksTurnOrder(void) } for (gActiveBattler = 0; gActiveBattler < gBattlersCount; gActiveBattler++) { - if (gActionForBanks[gActiveBattler] != ACTION_USE_ITEM && gActionForBanks[gActiveBattler] != ACTION_SWITCH) + if (gActionForBanks[gActiveBattler] != B_ACTION_USE_ITEM && gActionForBanks[gActiveBattler] != B_ACTION_SWITCH) { gActionsByTurnOrder[var] = gActionForBanks[gActiveBattler]; gBanksByTurnOrder[var] = gActiveBattler; @@ -4690,10 +4712,10 @@ void SetActionsAndBanksTurnOrder(void) { u8 bank1 = gBanksByTurnOrder[i]; u8 bank2 = gBanksByTurnOrder[j]; - if (gActionsByTurnOrder[i] != ACTION_USE_ITEM - && gActionsByTurnOrder[j] != ACTION_USE_ITEM - && gActionsByTurnOrder[i] != ACTION_SWITCH - && gActionsByTurnOrder[j] != ACTION_SWITCH) + if (gActionsByTurnOrder[i] != B_ACTION_USE_ITEM + && gActionsByTurnOrder[j] != B_ACTION_USE_ITEM + && gActionsByTurnOrder[i] != B_ACTION_SWITCH + && gActionsByTurnOrder[j] != B_ACTION_SWITCH) { if (GetWhoStrikesFirst(bank1, bank2, FALSE)) SwapTurnOrder(i, j); @@ -4762,12 +4784,12 @@ void CheckFocusPunch_ClearVarsBeforeTurnStarts(void) { while (eFocusPunchBattler < gBattlersCount) { - gActiveBattler = gBankAttacker = eFocusPunchBattler; + gActiveBattler = gBattlerAttacker = eFocusPunchBattler; eFocusPunchBattler++; if (gChosenMovesByBanks[gActiveBattler] == MOVE_FOCUS_PUNCH && !(gBattleMons[gActiveBattler].status1 & STATUS_SLEEP) - && !(gDisableStructs[gBankAttacker].truantCounter) - && !(gProtectStructs[gActiveBattler].onlyStruggle)) + && !(gDisableStructs[gBattlerAttacker].truantCounter) + && !(gProtectStructs[gActiveBattler].noValidMoves)) { BattleScriptExecute(BattleScript_FocusPunchSetUp); return; @@ -4822,7 +4844,7 @@ void HandleEndTurn_BattleWon(void) if (gBattleTypeFlags & BATTLE_TYPE_LINK) { gBattleTextBuff1[0] = gBattleOutcome; - gBankAttacker = GetBattlerAtPosition(B_POSITION_PLAYER_LEFT); + gBattlerAttacker = GetBattlerAtPosition(B_POSITION_PLAYER_LEFT); gBattlescriptCurrInstr = BattleScript_LinkBattleWonOrLost; gBattleOutcome &= ~(OUTCOME_LINK_BATTLE_RUN); } @@ -4872,7 +4894,7 @@ void HandleEndTurn_BattleLost(void) if (gBattleTypeFlags & BATTLE_TYPE_LINK) { gBattleTextBuff1[0] = gBattleOutcome; - gBankAttacker = GetBattlerAtPosition(B_POSITION_PLAYER_LEFT); + gBattlerAttacker = GetBattlerAtPosition(B_POSITION_PLAYER_LEFT); gBattlescriptCurrInstr = BattleScript_LinkBattleWonOrLost; gBattleOutcome &= ~(OUTCOME_LINK_BATTLE_RUN); } @@ -4888,7 +4910,7 @@ void HandleEndTurn_RanFromBattle(void) { gCurrentActionFuncId = 0; - switch (gProtectStructs[gBankAttacker].fleeFlag) + switch (gProtectStructs[gBattlerAttacker].fleeFlag) { default: gBattlescriptCurrInstr = BattleScript_GotAwaySafely; @@ -4908,7 +4930,7 @@ void HandleEndTurn_MonFled(void) { gCurrentActionFuncId = 0; - PREPARE_MON_NICK_BUFFER(gBattleTextBuff1, gBankAttacker, gBattlerPartyIndexes[gBankAttacker]); + PREPARE_MON_NICK_BUFFER(gBattleTextBuff1, gBattlerAttacker, gBattlerPartyIndexes[gBattlerAttacker]); gBattlescriptCurrInstr = BattleScript_WildMonFled; gBattleMainFunc = HandleEndTurn_FinishBattle; @@ -4951,7 +4973,7 @@ void HandleEndTurn_FinishBattle(void) } else { - if (gBattleExecBuffer == 0) + if (gBattleControllerExecFlags == 0) gBattleScriptingCommandsTable[gBattlescriptCurrInstr[0]](); } } @@ -5045,14 +5067,14 @@ void RunBattleScriptCommands_PopCallbacksStack(void) } else { - if (gBattleExecBuffer == 0) + if (gBattleControllerExecFlags == 0) gBattleScriptingCommandsTable[gBattlescriptCurrInstr[0]](); } } void RunBattleScriptCommands(void) { - if (gBattleExecBuffer == 0) + if (gBattleControllerExecFlags == 0) gBattleScriptingCommandsTable[gBattlescriptCurrInstr[0]](); } @@ -5061,11 +5083,11 @@ void HandleAction_UseMove(void) u8 side; u8 var = 4; - gBankAttacker = gBanksByTurnOrder[gCurrentTurnActionNumber]; + gBattlerAttacker = gBanksByTurnOrder[gCurrentTurnActionNumber]; - if (ewram160A6 & gBitTable[gBankAttacker]) + if (ewram160A6 & gBitTable[gBattlerAttacker]) { - gCurrentActionFuncId = ACTION_FINISHED; + gCurrentActionFuncId = B_ACTION_FINISHED; return; } @@ -5075,75 +5097,75 @@ void HandleAction_UseMove(void) gMoveResultFlags = 0; gMultiHitCounter = 0; gBattleCommunication[6] = 0; - gCurrMovePos = gUnknown_02024BE5 = ewram1608Carr(gBankAttacker); + gCurrMovePos = gUnknown_02024BE5 = ewram1608Carr(gBattlerAttacker); // choose move - if (gProtectStructs[gBankAttacker].onlyStruggle) + if (gProtectStructs[gBattlerAttacker].noValidMoves) { - gProtectStructs[gBankAttacker].onlyStruggle = 0; + gProtectStructs[gBattlerAttacker].noValidMoves = 0; gCurrentMove = gChosenMove = MOVE_STRUGGLE; gHitMarker |= HITMARKER_NO_PPDEDUCT; - ewram16010arr(gBankAttacker) = GetMoveTarget(MOVE_STRUGGLE, 0); + ewram16010arr(gBattlerAttacker) = GetMoveTarget(MOVE_STRUGGLE, 0); } - else if (gBattleMons[gBankAttacker].status2 & STATUS2_MULTIPLETURNS || gBattleMons[gBankAttacker].status2 & STATUS2_RECHARGE) + else if (gBattleMons[gBattlerAttacker].status2 & STATUS2_MULTIPLETURNS || gBattleMons[gBattlerAttacker].status2 & STATUS2_RECHARGE) { - gCurrentMove = gChosenMove = gLockedMoves[gBankAttacker]; + gCurrentMove = gChosenMove = gLockedMoves[gBattlerAttacker]; } // encore forces you to use the same move - else if (gDisableStructs[gBankAttacker].encoredMove != MOVE_NONE - && gDisableStructs[gBankAttacker].encoredMove == gBattleMons[gBankAttacker].moves[gDisableStructs[gBankAttacker].encoredMovePos]) + else if (gDisableStructs[gBattlerAttacker].encoredMove != MOVE_NONE + && gDisableStructs[gBattlerAttacker].encoredMove == gBattleMons[gBattlerAttacker].moves[gDisableStructs[gBattlerAttacker].encoredMovePos]) { - gCurrentMove = gChosenMove = gDisableStructs[gBankAttacker].encoredMove; - gCurrMovePos = gUnknown_02024BE5 = gDisableStructs[gBankAttacker].encoredMovePos; - ewram16010arr(gBankAttacker) = GetMoveTarget(gCurrentMove, 0); + gCurrentMove = gChosenMove = gDisableStructs[gBattlerAttacker].encoredMove; + gCurrMovePos = gUnknown_02024BE5 = gDisableStructs[gBattlerAttacker].encoredMovePos; + ewram16010arr(gBattlerAttacker) = GetMoveTarget(gCurrentMove, 0); } // check if the encored move wasn't overwritten - else if (gDisableStructs[gBankAttacker].encoredMove != MOVE_NONE - && gDisableStructs[gBankAttacker].encoredMove != gBattleMons[gBankAttacker].moves[gDisableStructs[gBankAttacker].encoredMovePos]) + else if (gDisableStructs[gBattlerAttacker].encoredMove != MOVE_NONE + && gDisableStructs[gBattlerAttacker].encoredMove != gBattleMons[gBattlerAttacker].moves[gDisableStructs[gBattlerAttacker].encoredMovePos]) { - gCurrMovePos = gUnknown_02024BE5 = gDisableStructs[gBankAttacker].encoredMovePos; - gCurrentMove = gChosenMove = gBattleMons[gBankAttacker].moves[gCurrMovePos]; - gDisableStructs[gBankAttacker].encoredMove = MOVE_NONE; - gDisableStructs[gBankAttacker].encoredMovePos = 0; - gDisableStructs[gBankAttacker].encoreTimer1 = 0; - ewram16010arr(gBankAttacker) = GetMoveTarget(gCurrentMove, 0); + gCurrMovePos = gUnknown_02024BE5 = gDisableStructs[gBattlerAttacker].encoredMovePos; + gCurrentMove = gChosenMove = gBattleMons[gBattlerAttacker].moves[gCurrMovePos]; + gDisableStructs[gBattlerAttacker].encoredMove = MOVE_NONE; + gDisableStructs[gBattlerAttacker].encoredMovePos = 0; + gDisableStructs[gBattlerAttacker].encoreTimer1 = 0; + ewram16010arr(gBattlerAttacker) = GetMoveTarget(gCurrentMove, 0); } - else if (gBattleMons[gBankAttacker].moves[gCurrMovePos] != gChosenMovesByBanks[gBankAttacker]) + else if (gBattleMons[gBattlerAttacker].moves[gCurrMovePos] != gChosenMovesByBanks[gBattlerAttacker]) { - gCurrentMove = gChosenMove = gBattleMons[gBankAttacker].moves[gCurrMovePos]; - ewram16010arr(gBankAttacker) = GetMoveTarget(gCurrentMove, 0); + gCurrentMove = gChosenMove = gBattleMons[gBattlerAttacker].moves[gCurrMovePos]; + ewram16010arr(gBattlerAttacker) = GetMoveTarget(gCurrentMove, 0); } else { - gCurrentMove = gChosenMove = gBattleMons[gBankAttacker].moves[gCurrMovePos]; + gCurrentMove = gChosenMove = gBattleMons[gBattlerAttacker].moves[gCurrMovePos]; } - if (GetBattlerSide(gBankAttacker) == B_SIDE_PLAYER) + if (GetBattlerSide(gBattlerAttacker) == B_SIDE_PLAYER) gBattleResults.lastUsedMove = gCurrentMove; else gBattleResults.opponentMove = gCurrentMove; // choose target - side = GetBattlerSide(gBankAttacker) ^ BIT_SIDE; + side = GetBattlerSide(gBattlerAttacker) ^ BIT_SIDE; if (gSideTimers[side].followmeTimer != 0 && gBattleMoves[gCurrentMove].target == MOVE_TARGET_SELECTED - && GetBattlerSide(gBankAttacker) != GetBattlerSide(gSideTimers[side].followmeTarget) + && GetBattlerSide(gBattlerAttacker) != GetBattlerSide(gSideTimers[side].followmeTarget) && gBattleMons[gSideTimers[side].followmeTarget].hp != 0) { - gBankTarget = gSideTimers[side].followmeTarget; + gBattlerTarget = gSideTimers[side].followmeTarget; } else if ((gBattleTypeFlags & BATTLE_TYPE_DOUBLE) && gSideTimers[side].followmeTimer == 0 && (gBattleMoves[gCurrentMove].power != 0 - || gBattleMoves[gCurrentMove].target != MOVE_TARGET_x10) - && gBattleMons[ewram16010arr(gBankAttacker)].ability != ABILITY_LIGHTNING_ROD + || gBattleMoves[gCurrentMove].target != MOVE_TARGET_USER) + && gBattleMons[ewram16010arr(gBattlerAttacker)].ability != ABILITY_LIGHTNING_ROD && gBattleMoves[gCurrentMove].type == TYPE_ELECTRIC) { - side = GetBattlerSide(gBankAttacker); + side = GetBattlerSide(gBattlerAttacker); for (gActiveBattler = 0; gActiveBattler < gBattlersCount; gActiveBattler++) { if (side != GetBattlerSide(gActiveBattler) - && ewram16010arr(gBankAttacker) != gActiveBattler + && ewram16010arr(gBattlerAttacker) != gActiveBattler && gBattleMons[gActiveBattler].ability == ABILITY_LIGHTNING_ROD && BankGetTurnOrder(gActiveBattler) < var) { @@ -5154,37 +5176,37 @@ void HandleAction_UseMove(void) { if (gBattleMoves[gChosenMove].target & MOVE_TARGET_RANDOM) { - if (GetBattlerSide(gBankAttacker) == B_SIDE_PLAYER) + if (GetBattlerSide(gBattlerAttacker) == B_SIDE_PLAYER) { if (Random() & 1) - gBankTarget = GetBattlerAtPosition(B_POSITION_OPPONENT_LEFT); + gBattlerTarget = GetBattlerAtPosition(B_POSITION_OPPONENT_LEFT); else - gBankTarget = GetBattlerAtPosition(B_POSITION_OPPONENT_RIGHT); + gBattlerTarget = GetBattlerAtPosition(B_POSITION_OPPONENT_RIGHT); } else { if (Random() & 1) - gBankTarget = GetBattlerAtPosition(B_POSITION_PLAYER_LEFT); + gBattlerTarget = GetBattlerAtPosition(B_POSITION_PLAYER_LEFT); else - gBankTarget = GetBattlerAtPosition(B_POSITION_PLAYER_RIGHT); + gBattlerTarget = GetBattlerAtPosition(B_POSITION_PLAYER_RIGHT); } } else { - gBankTarget = ewram16010arr(gBankAttacker); + gBattlerTarget = ewram16010arr(gBattlerAttacker); } - if (gAbsentBattlerFlags & gBitTable[gBankTarget]) + if (gAbsentBattlerFlags & gBitTable[gBattlerTarget]) { - if (GetBattlerSide(gBankAttacker) != GetBattlerSide(gBankTarget)) + if (GetBattlerSide(gBattlerAttacker) != GetBattlerSide(gBattlerTarget)) { - gBankTarget = GetBattlerAtPosition(GetBattlerPosition(gBankTarget) ^ BIT_FLANK); + gBattlerTarget = GetBattlerAtPosition(GetBattlerPosition(gBattlerTarget) ^ BIT_FLANK); } else { - gBankTarget = GetBattlerAtPosition(GetBattlerPosition(gBankAttacker) ^ BIT_SIDE); - if (gAbsentBattlerFlags & gBitTable[gBankTarget]) - gBankTarget = GetBattlerAtPosition(GetBattlerPosition(gBankTarget) ^ BIT_FLANK); + gBattlerTarget = GetBattlerAtPosition(GetBattlerPosition(gBattlerAttacker) ^ BIT_SIDE); + if (gAbsentBattlerFlags & gBitTable[gBattlerTarget]) + gBattlerTarget = GetBattlerAtPosition(GetBattlerPosition(gBattlerTarget) ^ BIT_FLANK); } } } @@ -5193,68 +5215,68 @@ void HandleAction_UseMove(void) gActiveBattler = gBanksByTurnOrder[var]; RecordAbilityBattle(gActiveBattler, gBattleMons[gActiveBattler].ability); gSpecialStatuses[gActiveBattler].lightningRodRedirected = 1; - gBankTarget = gActiveBattler; + gBattlerTarget = gActiveBattler; } } else if (gBattleTypeFlags & BATTLE_TYPE_DOUBLE && gBattleMoves[gChosenMove].target & MOVE_TARGET_RANDOM) { - if (GetBattlerSide(gBankAttacker) == B_SIDE_PLAYER) + if (GetBattlerSide(gBattlerAttacker) == B_SIDE_PLAYER) { if (Random() & 1) - gBankTarget = GetBattlerAtPosition(B_POSITION_OPPONENT_LEFT); + gBattlerTarget = GetBattlerAtPosition(B_POSITION_OPPONENT_LEFT); else - gBankTarget = GetBattlerAtPosition(B_POSITION_OPPONENT_RIGHT); + gBattlerTarget = GetBattlerAtPosition(B_POSITION_OPPONENT_RIGHT); } else { if (Random() & 1) - gBankTarget = GetBattlerAtPosition(B_POSITION_PLAYER_LEFT); + gBattlerTarget = GetBattlerAtPosition(B_POSITION_PLAYER_LEFT); else - gBankTarget = GetBattlerAtPosition(B_POSITION_PLAYER_RIGHT); + gBattlerTarget = GetBattlerAtPosition(B_POSITION_PLAYER_RIGHT); } - if (gAbsentBattlerFlags & gBitTable[gBankTarget] - && GetBattlerSide(gBankAttacker) != GetBattlerSide(gBankTarget)) + if (gAbsentBattlerFlags & gBitTable[gBattlerTarget] + && GetBattlerSide(gBattlerAttacker) != GetBattlerSide(gBattlerTarget)) { - gBankTarget = GetBattlerAtPosition(GetBattlerPosition(gBankTarget) ^ BIT_FLANK); + gBattlerTarget = GetBattlerAtPosition(GetBattlerPosition(gBattlerTarget) ^ BIT_FLANK); } } else { - gBankTarget = ewram16010arr(gBankAttacker); - if (gAbsentBattlerFlags & gBitTable[gBankTarget]) + gBattlerTarget = ewram16010arr(gBattlerAttacker); + if (gAbsentBattlerFlags & gBitTable[gBattlerTarget]) { - if (GetBattlerSide(gBankAttacker) != GetBattlerSide(gBankTarget)) + if (GetBattlerSide(gBattlerAttacker) != GetBattlerSide(gBattlerTarget)) { - gBankTarget = GetBattlerAtPosition(GetBattlerPosition(gBankTarget) ^ BIT_FLANK); + gBattlerTarget = GetBattlerAtPosition(GetBattlerPosition(gBattlerTarget) ^ BIT_FLANK); } else { - gBankTarget = GetBattlerAtPosition(GetBattlerPosition(gBankAttacker) ^ BIT_SIDE); - if (gAbsentBattlerFlags & gBitTable[gBankTarget]) - gBankTarget = GetBattlerAtPosition(GetBattlerPosition(gBankTarget) ^ BIT_FLANK); + gBattlerTarget = GetBattlerAtPosition(GetBattlerPosition(gBattlerAttacker) ^ BIT_SIDE); + if (gAbsentBattlerFlags & gBitTable[gBattlerTarget]) + gBattlerTarget = GetBattlerAtPosition(GetBattlerPosition(gBattlerTarget) ^ BIT_FLANK); } } } gBattlescriptCurrInstr = gBattleScriptsForMoveEffects[gBattleMoves[gCurrentMove].effect]; - gCurrentActionFuncId = ACTION_RUN_BATTLESCRIPT; + gCurrentActionFuncId = B_ACTION_EXEC_SCRIPT; } void HandleAction_Switch(void) { - gBankAttacker = gBanksByTurnOrder[gCurrentTurnActionNumber]; + gBattlerAttacker = gBanksByTurnOrder[gCurrentTurnActionNumber]; gBattle_BG0_X = 0; gBattle_BG0_Y = 0; - gActionSelectionCursor[gBankAttacker] = 0; - gMoveSelectionCursor[gBankAttacker] = 0; + gActionSelectionCursor[gBattlerAttacker] = 0; + gMoveSelectionCursor[gBattlerAttacker] = 0; - PREPARE_MON_NICK_BUFFER(gBattleTextBuff1, gBankAttacker, ewram16064arr(gBankAttacker)) + PREPARE_MON_NICK_BUFFER(gBattleTextBuff1, gBattlerAttacker, ewram16064arr(gBattlerAttacker)) - ewram16003 = gBankAttacker; + ewram16003 = gBattlerAttacker; gBattlescriptCurrInstr = BattleScript_ActionSwitch; - gCurrentActionFuncId = ACTION_RUN_BATTLESCRIPT; + gCurrentActionFuncId = B_ACTION_EXEC_SCRIPT; if (gBattleResults.unk2 < 255) gBattleResults.unk2++; @@ -5262,11 +5284,11 @@ void HandleAction_Switch(void) void HandleAction_UseItem(void) { - gBankAttacker = gBankTarget = gBanksByTurnOrder[gCurrentTurnActionNumber]; + gBattlerAttacker = gBattlerTarget = gBanksByTurnOrder[gCurrentTurnActionNumber]; gBattle_BG0_X = 0; gBattle_BG0_Y = 0; - gDisableStructs[gBankAttacker].furyCutterCounter = 0; - gLastUsedItem = gBattleBufferB[gBankAttacker][1] | (gBattleBufferB[gBankAttacker][2] << 8); + gDisableStructs[gBattlerAttacker].furyCutterCounter = 0; + gLastUsedItem = gBattleBufferB[gBattlerAttacker][1] | (gBattleBufferB[gBattlerAttacker][2] << 8); if (gLastUsedItem <= ITEM_PREMIER_BALL) // is ball { @@ -5276,37 +5298,37 @@ void HandleAction_UseItem(void) { gBattlescriptCurrInstr = gBattlescriptsForRunningByItem[0]; } - else if (GetBattlerSide(gBankAttacker) == B_SIDE_PLAYER) + else if (GetBattlerSide(gBattlerAttacker) == B_SIDE_PLAYER) { gBattlescriptCurrInstr = gBattlescriptsForUsingItem[0]; } else { - switch (ewram160D8((ewram16003 = gBankAttacker))) + switch (ewram160D8((ewram16003 = gBattlerAttacker))) { case AI_ITEM_FULL_RESTORE: case AI_ITEM_HEAL_HP: break; case AI_ITEM_CURE_CONDITION: gBattleCommunication[MULTISTRING_CHOOSER] = 0; - if (ewram160DA(gBankAttacker) & 1) + if (ewram160DA(gBattlerAttacker) & 1) { - if (ewram160DA(gBankAttacker) & 0x3E) + if (ewram160DA(gBattlerAttacker) & 0x3E) gBattleCommunication[MULTISTRING_CHOOSER] = 5; } else { - while (!(ewram160DA(gBankAttacker) & 1)) + while (!(ewram160DA(gBattlerAttacker) & 1)) { - ewram160DA(gBankAttacker) >>= 1; + ewram160DA(gBattlerAttacker) >>= 1; gBattleCommunication[MULTISTRING_CHOOSER]++; } } break; case AI_ITEM_X_STAT: gBattleCommunication[MULTISTRING_CHOOSER] = 4; - if (ewram160DA(gBankAttacker) & 0x80) + if (ewram160DA(gBattlerAttacker) & 0x80) { gBattleCommunication[MULTISTRING_CHOOSER] = 5; } @@ -5315,9 +5337,9 @@ void HandleAction_UseItem(void) PREPARE_STAT_BUFFER(gBattleTextBuff1, STAT_ATK) PREPARE_STRING_BUFFER(gBattleTextBuff2, 0xD2) - while (!(ewram160DA(gBankAttacker) & 1)) + while (!(ewram160DA(gBattlerAttacker) & 1)) { - ewram160DA(gBankAttacker) >>= 1; + ewram160DA(gBattlerAttacker) >>= 1; gBattleTextBuff1[2]++; } @@ -5333,9 +5355,9 @@ void HandleAction_UseItem(void) break; } - gBattlescriptCurrInstr = gBattlescriptsForUsingItem[ewram160D8(gBankAttacker)]; + gBattlescriptCurrInstr = gBattlescriptsForUsingItem[ewram160D8(gBattlerAttacker)]; } - gCurrentActionFuncId = ACTION_RUN_BATTLESCRIPT; + gCurrentActionFuncId = B_ACTION_EXEC_SCRIPT; } bool8 TryRunFromBattle(u8 bank) @@ -5349,7 +5371,7 @@ bool8 TryRunFromBattle(u8 bank) else holdEffect = ItemId_GetHoldEffect(gBattleMons[bank].item); - gStringBank = bank; + gPotentialItemEffectBattler = bank; if (holdEffect == HOLD_EFFECT_CAN_ALWAYS_RUN) { @@ -5393,7 +5415,7 @@ bool8 TryRunFromBattle(u8 bank) void HandleAction_Run(void) { - gBankAttacker = gBanksByTurnOrder[gCurrentTurnActionNumber]; + gBattlerAttacker = gBanksByTurnOrder[gCurrentTurnActionNumber]; if (gBattleTypeFlags & BATTLE_TYPE_LINK) { @@ -5403,12 +5425,12 @@ void HandleAction_Run(void) { if (GetBattlerSide(gActiveBattler) == B_SIDE_PLAYER) { - if (gActionForBanks[gActiveBattler] == ACTION_RUN) + if (gActionForBanks[gActiveBattler] == B_ACTION_RUN) gBattleOutcome |= BATTLE_LOST; } else { - if (gActionForBanks[gActiveBattler] == ACTION_RUN) + if (gActionForBanks[gActiveBattler] == B_ACTION_RUN) gBattleOutcome |= BATTLE_WON; } } @@ -5417,23 +5439,23 @@ void HandleAction_Run(void) } else { - if (GetBattlerSide(gBankAttacker) == B_SIDE_PLAYER) + if (GetBattlerSide(gBattlerAttacker) == B_SIDE_PLAYER) { - if (!TryRunFromBattle(gBankAttacker)) // failed to run away + if (!TryRunFromBattle(gBattlerAttacker)) // failed to run away { - gBattleMons[gBankAttacker].status2 &= ~STATUS2_DESTINY_BOND; + gBattleMons[gBattlerAttacker].status2 &= ~STATUS2_DESTINY_BOND; gBattleCommunication[MULTISTRING_CHOOSER] = 3; gBattlescriptCurrInstr = BattleScript_PrintFailedToRunString; - gCurrentActionFuncId = ACTION_RUN_BATTLESCRIPT; + gCurrentActionFuncId = B_ACTION_EXEC_SCRIPT; } } else { - if (gBattleMons[gBankAttacker].status2 & (STATUS2_WRAPPED | STATUS2_ESCAPE_PREVENTION)) + if (gBattleMons[gBattlerAttacker].status2 & (STATUS2_WRAPPED | STATUS2_ESCAPE_PREVENTION)) { gBattleCommunication[MULTISTRING_CHOOSER] = 4; gBattlescriptCurrInstr = BattleScript_PrintFailedToRunString; - gCurrentActionFuncId = ACTION_RUN_BATTLESCRIPT; + gCurrentActionFuncId = B_ACTION_EXEC_SCRIPT; } else { @@ -5446,31 +5468,31 @@ void HandleAction_Run(void) void HandleAction_WatchesCarefully(void) { - gBankAttacker = gBanksByTurnOrder[gCurrentTurnActionNumber]; + gBattlerAttacker = gBanksByTurnOrder[gCurrentTurnActionNumber]; gBattle_BG0_X = 0; gBattle_BG0_Y = 0; gBattlescriptCurrInstr = gBattlescriptsForSafariActions[0]; - gCurrentActionFuncId = ACTION_RUN_BATTLESCRIPT; + gCurrentActionFuncId = B_ACTION_EXEC_SCRIPT; } void HandleAction_SafariZoneBallThrow(void) { - gBankAttacker = gBanksByTurnOrder[gCurrentTurnActionNumber]; + gBattlerAttacker = gBanksByTurnOrder[gCurrentTurnActionNumber]; gBattle_BG0_X = 0; gBattle_BG0_Y = 0; gNumSafariBalls--; gLastUsedItem = ITEM_SAFARI_BALL; gBattlescriptCurrInstr = gBattlescriptsForBallThrow[ITEM_SAFARI_BALL]; - gCurrentActionFuncId = ACTION_RUN_BATTLESCRIPT; + gCurrentActionFuncId = B_ACTION_EXEC_SCRIPT; } void HandleAction_ThrowPokeblock(void) { - gBankAttacker = gBanksByTurnOrder[gCurrentTurnActionNumber]; + gBattlerAttacker = gBanksByTurnOrder[gCurrentTurnActionNumber]; gBattle_BG0_X = 0; gBattle_BG0_Y = 0; - gBattleCommunication[MULTISTRING_CHOOSER] = gBattleBufferB[gBankAttacker][1] - 1; - gLastUsedItem = gBattleBufferB[gBankAttacker][2]; + gBattleCommunication[MULTISTRING_CHOOSER] = gBattleBufferB[gBattlerAttacker][1] - 1; + gLastUsedItem = gBattleBufferB[gBattlerAttacker][2]; if (ewram16087 < 3) ewram16087++; @@ -5483,12 +5505,12 @@ void HandleAction_ThrowPokeblock(void) } gBattlescriptCurrInstr = gBattlescriptsForSafariActions[2]; - gCurrentActionFuncId = ACTION_RUN_BATTLESCRIPT; + gCurrentActionFuncId = B_ACTION_EXEC_SCRIPT; } void HandleAction_GoNear(void) { - gBankAttacker = gBanksByTurnOrder[gCurrentTurnActionNumber]; + gBattlerAttacker = gBanksByTurnOrder[gCurrentTurnActionNumber]; gBattle_BG0_X = 0; gBattle_BG0_Y = 0; @@ -5510,12 +5532,12 @@ void HandleAction_GoNear(void) gBattleCommunication[MULTISTRING_CHOOSER] = 1; } gBattlescriptCurrInstr = gBattlescriptsForSafariActions[1]; - gCurrentActionFuncId = ACTION_RUN_BATTLESCRIPT; + gCurrentActionFuncId = B_ACTION_EXEC_SCRIPT; } void HandleAction_SafriZoneRun(void) { - gBankAttacker = gBanksByTurnOrder[gCurrentTurnActionNumber]; + gBattlerAttacker = gBanksByTurnOrder[gCurrentTurnActionNumber]; PlaySE(SE_NIGERU); gCurrentTurnActionNumber = gBattlersCount; gBattleOutcome = BATTLE_RAN; @@ -5523,15 +5545,15 @@ void HandleAction_SafriZoneRun(void) void HandleAction_Action9(void) { - gBankAttacker = gBanksByTurnOrder[gCurrentTurnActionNumber]; + gBattlerAttacker = gBanksByTurnOrder[gCurrentTurnActionNumber]; gBattle_BG0_X = 0; gBattle_BG0_Y = 0; - PREPARE_MON_NICK_BUFFER(gBattleTextBuff1, gBankAttacker, gBattlerPartyIndexes[gBankAttacker]) + PREPARE_MON_NICK_BUFFER(gBattleTextBuff1, gBattlerAttacker, gBattlerPartyIndexes[gBattlerAttacker]) gBattlescriptCurrInstr = gBattlescriptsForSafariActions[3]; - gCurrentActionFuncId = ACTION_RUN_BATTLESCRIPT; - gActionsByTurnOrder[1] = ACTION_FINISHED; + gCurrentActionFuncId = B_ACTION_EXEC_SCRIPT; + gActionsByTurnOrder[1] = B_ACTION_FINISHED; } void HandleAction_Action11(void) @@ -5539,7 +5561,7 @@ void HandleAction_Action11(void) if (!HandleFaintedMonActions()) { ewram16059 = 0; - gCurrentActionFuncId = ACTION_FINISHED; + gCurrentActionFuncId = B_ACTION_FINISHED; } } @@ -5568,8 +5590,8 @@ void HandleAction_ActionFinished(void) gBattleMoveDamage = 0; ewram16002 = 0; ewram160A1 = 0; - gLastLandedMoves[gBankAttacker] = 0; - gLastHitByType[gBankAttacker] = 0; + gLastLandedMoves[gBattlerAttacker] = 0; + gLastHitByType[gBattlerAttacker] = 0; eDynamicMoveType = 0; gDynamicBasePower = 0; ewram1600C = 0; diff --git a/src/battle/battle_message.c b/src/battle_message.c index 30d127be3..b218c2b8d 100644 --- a/src/battle/battle_message.c +++ b/src/battle_message.c @@ -20,13 +20,13 @@ #define BATTLESTRINGS_MAX BATTLESTRINGS_NO + BATTLESTRING_TO_SUB #ifdef GERMAN -#include "../data/battle_strings_de.h" // TODO: German +#include "data/battle_strings_de.h" // TODO: German #else -#include "../data/battle_strings_en.h" +#include "data/battle_strings_en.h" #endif // This is four lists of moves which use a different attack string in Japanese -// to the default. See the documentation for sub_8121D74 for more detail. +// to the default. See the documentation for ChooseTypeOfMoveUsedString for more detail. const u16 gUnknown_084016BC[] = { MOVE_SWORDS_DANCE, @@ -156,10 +156,10 @@ extern const u8* const gBattleStringsTable[BATTLESTRINGS_NO]; extern u16 gLastUsedItem; extern u8 gLastUsedAbility; extern u8 gActiveBattler; -extern u8 gBankAttacker; -extern u8 gBankTarget; -extern u8 gStringBank; -extern u8 gEffectBank; +extern u8 gBattlerAttacker; +extern u8 gBattlerTarget; +extern u8 gPotentialItemEffectBattler; +extern u8 gEffectBattler; extern u8 gBattleTextBuff1[]; extern u8 gBattleTextBuff2[]; extern u8 gBattleTextBuff3[]; @@ -193,9 +193,9 @@ extern const struct StatusFlagString gUnknown_081FA6D4[7]; // status flag/text extern struct StringInfoBattle* gSelectedOrderFromParty; #define gStringInfo gSelectedOrderFromParty -void sub_8121D1C(u8* textBuff); -void sub_8121D74(u8* textBuff); -void StrCpyDecodeBattleTextBuff(u8* src, u8* dst); +void ChooseMoveUsedParticle(u8* textBuff); +void ChooseTypeOfMoveUsedString(u8* textBuff); +void ExpandBattleTextBuffPlaceholders(u8* src, u8* dst); u8 GetBattlerSide(u8 bank); s32 sub_803FC34(u16); @@ -220,7 +220,7 @@ void BufferStringBattle(u16 stringID) gBattleStruct->scriptingActive = gStringInfo->scrActive; gBattleStruct->unk1605E = gStringInfo->unk1605E; gBattleStruct->hpScale = gStringInfo->hpScale; - gStringBank = gStringInfo->StringBank; + gPotentialItemEffectBattler = gStringInfo->StringBank; gBattleStruct->stringMoveType = gStringInfo->moveType; for (i = 0; i < 4; i++) { @@ -365,12 +365,12 @@ void BufferStringBattle(u16 stringID) } break; case 4: // pokemon used a move msg - sub_8121D1C(gBattleTextBuff1); + ChooseMoveUsedParticle(gBattleTextBuff1); if (gStringInfo->currentMove > 0x162) StringCopy(gBattleTextBuff2, gUnknown_08401674[gBattleStruct->stringMoveType]); else StringCopy(gBattleTextBuff2, gMoveNames[gStringInfo->currentMove]); - sub_8121D74(gBattleTextBuff2); + ChooseTypeOfMoveUsedString(gBattleTextBuff2); stringPtr = BattleText_OpponentUsedMove; break; case 5: // battle end @@ -440,15 +440,15 @@ void BufferStringBattle(u16 stringID) } break; } - StrCpyDecodeToDisplayedStringBattle(stringPtr); + BattleStringExpandPlaceholdersToDisplayedString(stringPtr); } -u32 StrCpyDecodeToDisplayedStringBattle(const u8* src) +u32 BattleStringExpandPlaceholdersToDisplayedString(const u8* src) { - StrCpyDecodeBattle(src, gDisplayedStringBattle); + BattleStringExpandPlaceholders(src, gDisplayedStringBattle); } -const u8* AppendStatusString(u8* src) +const u8* TryGetStatusString(u8* src) { u32 i; u8 status[8]; @@ -529,7 +529,7 @@ extern u8 *de_sub_8041024(s32, u32); } #endif -u32 StrCpyDecodeBattle(const u8* src, u8* dst) +u32 BattleStringExpandPlaceholders(const u8* src, u8* dst) { u32 dstID = 0; // if they used dstID, why not use srcID as well? const u8* toCpy = NULL; @@ -546,12 +546,12 @@ u32 StrCpyDecodeBattle(const u8* src, u8* dst) case 0: if (gBattleTextBuff1[0] == 0xFD) { - StrCpyDecodeBattleTextBuff(gBattleTextBuff1, gStringVar1); + ExpandBattleTextBuffPlaceholders(gBattleTextBuff1, gStringVar1); toCpy = gStringVar1; } else { - toCpy = AppendStatusString(gBattleTextBuff1); + toCpy = TryGetStatusString(gBattleTextBuff1); if (toCpy == 0) toCpy = gBattleTextBuff1; } @@ -559,7 +559,7 @@ u32 StrCpyDecodeBattle(const u8* src, u8* dst) case 1: if (gBattleTextBuff2[0] == 0xFD) { - StrCpyDecodeBattleTextBuff(gBattleTextBuff2, gStringVar2); + ExpandBattleTextBuffPlaceholders(gBattleTextBuff2, gStringVar2); toCpy = gStringVar2; } else @@ -568,7 +568,7 @@ u32 StrCpyDecodeBattle(const u8* src, u8* dst) case 42: if (gBattleTextBuff3[0] == 0xFD) { - StrCpyDecodeBattleTextBuff(gBattleTextBuff3, gStringVar3); + ExpandBattleTextBuffPlaceholders(gBattleTextBuff3, gStringVar3); toCpy = gStringVar3; } else @@ -595,45 +595,45 @@ u32 StrCpyDecodeBattle(const u8* src, u8* dst) toCpy = text; break; case 6: // link first player poke name - GetMonData(&gPlayerParty[gBattlerPartyIndexes[gLinkPlayers[multiplayerID].lp_field_18]], MON_DATA_NICKNAME, text); + GetMonData(&gPlayerParty[gBattlerPartyIndexes[gLinkPlayers[multiplayerID].id]], MON_DATA_NICKNAME, text); StringGetEnd10(text); toCpy = text; break; case 7: // link first opponent poke name - GetMonData(&gEnemyParty[gBattlerPartyIndexes[gLinkPlayers[multiplayerID].lp_field_18 ^ 1]], MON_DATA_NICKNAME, text); + GetMonData(&gEnemyParty[gBattlerPartyIndexes[gLinkPlayers[multiplayerID].id ^ 1]], MON_DATA_NICKNAME, text); StringGetEnd10(text); toCpy = text; break; case 8: // link second player poke name - GetMonData(&gPlayerParty[gBattlerPartyIndexes[gLinkPlayers[multiplayerID].lp_field_18 ^ 2]], MON_DATA_NICKNAME, text); + GetMonData(&gPlayerParty[gBattlerPartyIndexes[gLinkPlayers[multiplayerID].id ^ 2]], MON_DATA_NICKNAME, text); StringGetEnd10(text); toCpy = text; break; case 9: // link second opponent poke name - GetMonData(&gEnemyParty[gBattlerPartyIndexes[gLinkPlayers[multiplayerID].lp_field_18 ^ 3]], MON_DATA_NICKNAME, text); + GetMonData(&gEnemyParty[gBattlerPartyIndexes[gLinkPlayers[multiplayerID].id ^ 3]], MON_DATA_NICKNAME, text); StringGetEnd10(text); toCpy = text; break; case 10: // attacker name with prefix, only bank 0/1 - HANDLE_NICKNAME_STRING_CASE(gBankAttacker, gBattlerPartyIndexes[GetBattlerAtPosition(GetBattlerPosition(gBankAttacker) & 1)]) + HANDLE_NICKNAME_STRING_CASE(gBattlerAttacker, gBattlerPartyIndexes[GetBattlerAtPosition(GetBattlerPosition(gBattlerAttacker) & 1)]) break; case 11: // attacker partner name, only bank 0/1 - if (GetBattlerSide(gBankAttacker) == 0) - GetMonData(&gPlayerParty[gBattlerPartyIndexes[GetBattlerAtPosition(GetBattlerPosition(gBankAttacker) & 1) + 2]], MON_DATA_NICKNAME, text); + if (GetBattlerSide(gBattlerAttacker) == 0) + GetMonData(&gPlayerParty[gBattlerPartyIndexes[GetBattlerAtPosition(GetBattlerPosition(gBattlerAttacker) & 1) + 2]], MON_DATA_NICKNAME, text); else - GetMonData(&gEnemyParty[gBattlerPartyIndexes[GetBattlerAtPosition(GetBattlerPosition(gBankAttacker) & 1) + 2]], MON_DATA_NICKNAME, text); + GetMonData(&gEnemyParty[gBattlerPartyIndexes[GetBattlerAtPosition(GetBattlerPosition(gBattlerAttacker) & 1) + 2]], MON_DATA_NICKNAME, text); StringGetEnd10(text); toCpy = text; break; case 12: // attacker name with prefix - HANDLE_NICKNAME_STRING_CASE(gBankAttacker, gBattlerPartyIndexes[gBankAttacker]) + HANDLE_NICKNAME_STRING_CASE(gBattlerAttacker, gBattlerPartyIndexes[gBattlerAttacker]) break; case 13: // target name with prefix - HANDLE_NICKNAME_STRING_CASE(gBankTarget, gBattlerPartyIndexes[gBankTarget]) + HANDLE_NICKNAME_STRING_CASE(gBattlerTarget, gBattlerPartyIndexes[gBattlerTarget]) break; case 14: // effect bank name with prefix - HANDLE_NICKNAME_STRING_CASE(gEffectBank, gBattlerPartyIndexes[gEffectBank]) + HANDLE_NICKNAME_STRING_CASE(gEffectBattler, gBattlerPartyIndexes[gEffectBattler]) break; case 15: // active bank name with prefix HANDLE_NICKNAME_STRING_CASE(gActiveBattler, gBattlerPartyIndexes[gActiveBattler]) @@ -658,9 +658,9 @@ u32 StrCpyDecodeBattle(const u8* src, u8* dst) { if (gLastUsedItem == ITEM_ENIGMA_BERRY) { - if (gLinkPlayers[gBattleStruct->linkPlayerIndex].lp_field_18 == gStringBank) + if (gLinkPlayers[gBattleStruct->linkPlayerIndex].id == gPotentialItemEffectBattler) { - StringCopy(text, gEnigmaBerries[gStringBank].name); + StringCopy(text, gEnigmaBerries[gPotentialItemEffectBattler].name); #ifdef ENGLISH StringAppend(text, BattleText_Berry); #else @@ -687,16 +687,16 @@ u32 StrCpyDecodeBattle(const u8* src, u8* dst) toCpy = gAbilityNames[gLastUsedAbility]; break; case 21: // attacker ability - toCpy = gAbilityNames[gAbilitiesPerBank[gBankAttacker]]; + toCpy = gAbilityNames[gAbilitiesPerBank[gBattlerAttacker]]; break; case 22: // target ability - toCpy = gAbilityNames[gAbilitiesPerBank[gBankTarget]]; + toCpy = gAbilityNames[gAbilitiesPerBank[gBattlerTarget]]; break; case 23: // scripting active ability toCpy = gAbilityNames[gAbilitiesPerBank[gBattleStruct->scriptingActive]]; break; case 24: // effect bank ability - toCpy = gAbilityNames[gAbilitiesPerBank[gEffectBank]]; + toCpy = gAbilityNames[gAbilitiesPerBank[gEffectBattler]]; break; case 25: // trainer class name #ifdef ENGLISH @@ -744,13 +744,13 @@ u32 StrCpyDecodeBattle(const u8* src, u8* dst) toCpy = gLinkPlayers[multiplayerID].name; break; case 28: // link partner name? - toCpy = gLinkPlayers[sub_803FC34(2 ^ gLinkPlayers[multiplayerID].lp_field_18)].name; + toCpy = gLinkPlayers[sub_803FC34(2 ^ gLinkPlayers[multiplayerID].id)].name; break; case 29: // link opponent 1 name? - toCpy = gLinkPlayers[sub_803FC34(1 ^ gLinkPlayers[multiplayerID].lp_field_18)].name; + toCpy = gLinkPlayers[sub_803FC34(1 ^ gLinkPlayers[multiplayerID].id)].name; break; case 30: // link opponent 2 name? - toCpy = gLinkPlayers[sub_803FC34(3 ^ gLinkPlayers[multiplayerID].lp_field_18)].name; + toCpy = gLinkPlayers[sub_803FC34(3 ^ gLinkPlayers[multiplayerID].id)].name; break; case 31: // link scripting active name toCpy = gLinkPlayers[sub_803FC34(gBattleStruct->scriptingActive)].name; @@ -771,37 +771,37 @@ u32 StrCpyDecodeBattle(const u8* src, u8* dst) toCpy = BattleText_Someone; break; case 38: - if (GetBattlerSide(gBankAttacker) == 0) + if (GetBattlerSide(gBattlerAttacker) == 0) toCpy = BattleText_Ally2; else toCpy = BattleText_Foe3; break; case 39: - if (GetBattlerSide(gBankTarget) == 0) + if (GetBattlerSide(gBattlerTarget) == 0) toCpy = BattleText_Ally2; else toCpy = BattleText_Foe3; break; case 36: - if (GetBattlerSide(gBankAttacker) == 0) + if (GetBattlerSide(gBattlerAttacker) == 0) toCpy = BattleText_Ally; else toCpy = BattleText_Foe2; break; case 37: - if (GetBattlerSide(gBankTarget) == 0) + if (GetBattlerSide(gBattlerTarget) == 0) toCpy = BattleText_Ally; else toCpy = BattleText_Foe2; break; case 40: - if (GetBattlerSide(gBankAttacker) == 0) + if (GetBattlerSide(gBattlerAttacker) == 0) toCpy = BattleText_Ally3; else toCpy = BattleText_Foe4; break; case 41: - if (GetBattlerSide(gBankTarget) == 0) + if (GetBattlerSide(gBattlerTarget) == 0) toCpy = BattleText_Ally3; else toCpy = BattleText_Foe4; @@ -837,7 +837,7 @@ u32 StrCpyDecodeBattle(const u8* src, u8* dst) #define ByteRead16(ptr) ((ptr)[0] | ((ptr)[1] << 8)) #define ByteRead32(ptr) ((ptr)[0] | (ptr)[1] << 8 | (ptr)[2] << 16 | (ptr)[3] << 24) -void StrCpyDecodeBattleTextBuff(u8* src, u8* dst) +void ExpandBattleTextBuffPlaceholders(u8* src, u8* dst) { u32 srcID = 1; u32 value = 0; @@ -949,9 +949,9 @@ void StrCpyDecodeBattleTextBuff(u8* src, u8* dst) { if (hword == ITEM_ENIGMA_BERRY) { - if (gLinkPlayers[gBattleStruct->linkPlayerIndex].lp_field_18 == gStringBank) + if (gLinkPlayers[gBattleStruct->linkPlayerIndex].id == gPotentialItemEffectBattler) { - StringCopy(dst, gEnigmaBerries[gStringBank].name); + StringCopy(dst, gEnigmaBerries[gPotentialItemEffectBattler].name); #ifdef ENGLISH StringAppend(dst, BattleText_Berry); #else @@ -975,9 +975,9 @@ void StrCpyDecodeBattleTextBuff(u8* src, u8* dst) // Loads one of two text strings into the provided buffer. This is functionally // unused, since the value loaded into the buffer is not read; it loaded one of -// two particles (either "は" or "の") which works in tandem with sub_8121D74 +// two particles (either "は" or "の") which works in tandem with ChooseTypeOfMoveUsedString // below to effect changes in the meaning of the line. -void sub_8121D1C(u8* textBuff) +void ChooseMoveUsedParticle(u8* textBuff) { s32 counter = 0; u32 i = 0; @@ -1017,7 +1017,7 @@ void sub_8121D1C(u8* textBuff) // // BattleText_Exclamation5 was " こうげき!" This resulted in a translation of // "<NAME>'s <ATTACK> attack!". -void sub_8121D74(u8* dst) +void ChooseTypeOfMoveUsedString(u8* dst) { s32 counter = 0; s32 i = 0; diff --git a/src/battle/battle_party_menu.c b/src/battle_party_menu.c index e758b7957..e758b7957 100644 --- a/src/battle/battle_party_menu.c +++ b/src/battle_party_menu.c diff --git a/src/battle/battle_records.c b/src/battle_records.c index d94d88032..d94d88032 100644 --- a/src/battle/battle_records.c +++ b/src/battle_records.c diff --git a/src/battle/battle_4.c b/src/battle_script_commands.c index a84e16116..577a8149a 100644 --- a/src/battle/battle_4.c +++ b/src/battle_script_commands.c @@ -22,6 +22,7 @@ #include "sound.h" #include "task.h" #include "decompress.h" +#include "string_util.h" #include "pokemon_summary_screen.h" #include "naming_screen.h" #include "ewram.h" @@ -104,7 +105,7 @@ extern const struct BaseStats gBaseStats[]; extern struct BattleEnigmaBerry gEnigmaBerries[MAX_BATTLERS_COUNT]; extern struct BattlePokemon gBattleMons[MAX_BATTLERS_COUNT]; extern u8 gActiveBattler; -extern u32 gBattleExecBuffer; +extern u32 gBattleControllerExecFlags; extern u8 gBattlersCount; extern u16 gBattlerPartyIndexes[MAX_BATTLERS_COUNT]; extern u8 gBanksByTurnOrder[MAX_BATTLERS_COUNT]; @@ -112,8 +113,8 @@ extern u8 gActionsByTurnOrder[MAX_BATTLERS_COUNT]; extern u16 gCurrentMove; extern u8 gLastUsedAbility; extern u16 gBattleWeather; -extern u8 gStringBank; -extern u8 gEffectBank; +extern u8 gPotentialItemEffectBattler; +extern u8 gEffectBattler; extern u8 gAbsentBattlerFlags; extern u8 gMultiHitCounter; extern u16 gLastUsedMove[4]; @@ -126,8 +127,8 @@ extern u16 gRandomTurnNumber; extern u8 gBattleOutcome; extern u8 gBattleTerrain; extern u16 gTrainerBattleOpponent; -extern u8 gBankAttacker; -extern u8 gBankTarget; +extern u8 gBattlerAttacker; +extern u8 gBattlerTarget; extern const u8* gBattlescriptCurrInstr; extern u8 gCurrMovePos; extern u8 gCurrentActionFuncId; @@ -136,7 +137,7 @@ extern u8 gMoveResultFlags; extern u8 gBattleCommunication[]; extern u16 gLastLandedMoves[4]; extern u16 gLastHitByType[4]; -extern u8 gStringBank; +extern u8 gPotentialItemEffectBattler; extern u16 gDynamicBasePower; extern const u8 gTypeEffectiveness[]; extern u16 gLastUsedItem; @@ -205,7 +206,6 @@ void HandleLowHpMusicChange(struct Pokemon*, u8 bank); bool8 IsTradedMon(struct Pokemon*); void BattleScriptPop(void); void SwitchInClearSetData(void); -u8* ConvertIntToDecimalStringN(u8*, s32, u8, u8); u8 GetSetPokedexFlag(u16 nationalNum, u8 caseID); u16 SpeciesToNationalPokedexNum(u16 species); u8 sub_803FC34(u8 bank); @@ -306,7 +306,7 @@ extern u8 BattleScript_SelectingImprisionedMoveInPalace[]; #define BS2ScriptRead16(ptr) ((ptr)[0] + ((ptr)[1] << 8)) #define BS2ScriptReadPtr(ptr) ((void *)BS2ScriptRead32(ptr)) -#define TARGET_PROTECT_AFFECTED ((gProtectStructs[gBankTarget].protected && gBattleMoves[gCurrentMove].flags & F_AFFECTED_BY_PROTECT)) +#define TARGET_PROTECT_AFFECTED ((gProtectStructs[gBattlerTarget].protected && gBattleMoves[gCurrentMove].flags & F_AFFECTED_BY_PROTECT)) //array entries for battle communication #define MOVE_EFFECT_BYTE 0x3 @@ -346,9 +346,7 @@ extern u8 BattleScript_SelectingImprisionedMoveInPalace[]; #define sBYTE3_32(value)(( (u8) (((s32)(value) & (0xFF000000)) >> 0x18))) #define RecordAbilitySetField6(ability, fieldValue) \ -(gLastUsedAbility = ability, gBattleCommunication[6] = fieldValue, RecordAbilityBattle(gBankTarget, ability)) - -#define TARGET_TURN_DAMAGED (((gSpecialStatuses[gBankTarget].moveturnLostHP_physical || gSpecialStatuses[gBankTarget].moveturnLostHP_special))) +(gLastUsedAbility = ability, gBattleCommunication[6] = fieldValue, RecordAbilityBattle(gBattlerTarget, ability)) #define HP_ON_SWITCHOUT (((u16*)(ewram_addr + 0x160BC))) @@ -1100,10 +1098,10 @@ static void atk00_attackcanceler(void) if (gBattleOutcome != 0) { - gCurrentActionFuncId = ACTION_FINISHED; + gCurrentActionFuncId = B_ACTION_FINISHED; return; } - if (gBattleMons[gBankAttacker].hp == 0 && !(gHitMarker & HITMARKER_NO_ATTACKSTRING)) + if (gBattleMons[gBattlerAttacker].hp == 0 && !(gHitMarker & HITMARKER_NO_ATTACKSTRING)) { gHitMarker |= HITMARKER_UNABLE_TO_USE_MOVE; gBattlescriptCurrInstr = BattleScript_MoveEnd; @@ -1111,10 +1109,10 @@ static void atk00_attackcanceler(void) } if (AtkCanceller_UnableToUseMove()) return; - if (AbilityBattleEffects(ABILITYEFFECT_MOVES_BLOCK, gBankTarget, 0, 0, 0)) + if (AbilityBattleEffects(ABILITYEFFECT_MOVES_BLOCK, gBattlerTarget, 0, 0, 0)) return; - if (!gBattleMons[gBankAttacker].pp[gCurrMovePos] && gCurrentMove != MOVE_STRUGGLE && !(gHitMarker & 0x800200) - && !(gBattleMons[gBankAttacker].status2 & STATUS2_MULTIPLETURNS)) + if (!gBattleMons[gBattlerAttacker].pp[gCurrMovePos] && gCurrentMove != MOVE_STRUGGLE && !(gHitMarker & 0x800200) + && !(gBattleMons[gBattlerAttacker].status2 & STATUS2_MULTIPLETURNS)) { gBattlescriptCurrInstr = BattleScript_NoPPForMove; gMoveResultFlags |= MOVE_RESULT_MISSED; @@ -1123,7 +1121,7 @@ static void atk00_attackcanceler(void) gHitMarker &= ~(HITMARKER_x800000); - if (!(gHitMarker & HITMARKER_OBEYS) && !(gBattleMons[gBankAttacker].status2 & STATUS2_MULTIPLETURNS)) + if (!(gHitMarker & HITMARKER_OBEYS) && !(gBattleMons[gBattlerAttacker].status2 & STATUS2_MULTIPLETURNS)) { i = IsMonDisobedient(); // why use the 'i' variable...? switch (i) @@ -1141,10 +1139,10 @@ static void atk00_attackcanceler(void) gHitMarker |= HITMARKER_OBEYS; - if (gProtectStructs[gBankTarget].bounceMove && gBattleMoves[gCurrentMove].flags & F_AFFECTED_BY_MAGIC_COAT) + if (gProtectStructs[gBattlerTarget].bounceMove && gBattleMoves[gCurrentMove].flags & F_AFFECTED_BY_MAGIC_COAT) { - PressurePPLose(gBankAttacker, gBankTarget, MOVE_MAGIC_COAT); - gProtectStructs[gBankTarget].bounceMove = 0; + PressurePPLose(gBattlerAttacker, gBattlerTarget, MOVE_MAGIC_COAT); + gProtectStructs[gBattlerTarget].bounceMove = 0; BattleScriptPushCursor(); gBattlescriptCurrInstr = BattleScript_MagicCoatBounce; return; @@ -1154,7 +1152,7 @@ static void atk00_attackcanceler(void) { if ((gProtectStructs[gBanksByTurnOrder[i]].stealMove) && gBattleMoves[gCurrentMove].flags & F_AFFECTED_BY_SNATCH) { - PressurePPLose(gBankAttacker, gBanksByTurnOrder[i], MOVE_SNATCH); + PressurePPLose(gBattlerAttacker, gBanksByTurnOrder[i], MOVE_SNATCH); gProtectStructs[gBanksByTurnOrder[i]].stealMove = 0; gBattleStruct->scriptingActive = gBanksByTurnOrder[i]; BattleScriptPushCursor(); @@ -1163,22 +1161,22 @@ static void atk00_attackcanceler(void) } } - if (gSpecialStatuses[gBankTarget].lightningRodRedirected) + if (gSpecialStatuses[gBattlerTarget].lightningRodRedirected) { - gSpecialStatuses[gBankTarget].lightningRodRedirected = 0; + gSpecialStatuses[gBattlerTarget].lightningRodRedirected = 0; gLastUsedAbility = ABILITY_LIGHTNING_ROD; BattleScriptPushCursor(); gBattlescriptCurrInstr = BattleScript_TookAttack; - RecordAbilityBattle(gBankTarget, gLastUsedAbility); + RecordAbilityBattle(gBattlerTarget, gLastUsedAbility); } else if (TARGET_PROTECT_AFFECTED - && (gCurrentMove != MOVE_CURSE || (gBattleMons[gBankAttacker].type1 == TYPE_GHOST || gBattleMons[gBankAttacker].type2 == TYPE_GHOST)) - && ((!IsTwoTurnsMove(gCurrentMove) || (gBattleMons[gBankAttacker].status2 & STATUS2_MULTIPLETURNS)))) + && (gCurrentMove != MOVE_CURSE || (gBattleMons[gBattlerAttacker].type1 == TYPE_GHOST || gBattleMons[gBattlerAttacker].type2 == TYPE_GHOST)) + && ((!IsTwoTurnsMove(gCurrentMove) || (gBattleMons[gBattlerAttacker].status2 & STATUS2_MULTIPLETURNS)))) { - CancelMultiTurnMoves(gBankAttacker); + CancelMultiTurnMoves(gBattlerAttacker); gMoveResultFlags |= MOVE_RESULT_MISSED; - gLastLandedMoves[gBankTarget] = 0; - gLastHitByType[gBankTarget] = 0; + gLastLandedMoves[gBattlerTarget] = 0; + gLastHitByType[gBattlerTarget] = 0; gBattleCommunication[6] = 1; gBattlescriptCurrInstr++; } @@ -1193,14 +1191,14 @@ static void JumpIfMoveFailed(u8 adder, u16 move) const u8 *BS_ptr = gBattlescriptCurrInstr + adder; if (gMoveResultFlags & MOVE_RESULT_NO_EFFECT) { - gLastLandedMoves[gBankTarget] = 0; - gLastHitByType[gBankTarget] = 0; + gLastLandedMoves[gBattlerTarget] = 0; + gLastHitByType[gBattlerTarget] = 0; BS_ptr = T1_READ_PTR(gBattlescriptCurrInstr + 1); } else { TrySetDestinyBondToHappen(); - if (AbilityBattleEffects(ABILITYEFFECT_ABSORBING, gBankTarget, 0, 0, move)) + if (AbilityBattleEffects(ABILITYEFFECT_ABSORBING, gBattlerTarget, 0, 0, move)) return; } gBattlescriptCurrInstr = BS_ptr; @@ -1235,13 +1233,13 @@ static bool8 JumpIfMoveAffectedByProtect(u16 move) static bool8 AccuracyCalcHelper(u16 move) { - if (gStatuses3[gBankTarget] & STATUS3_ALWAYS_HITS && gDisableStructs[gBankTarget].bankWithSureHit == gBankAttacker) + if (gStatuses3[gBattlerTarget] & STATUS3_ALWAYS_HITS && gDisableStructs[gBattlerTarget].bankWithSureHit == gBattlerAttacker) { JumpIfMoveFailed(7, move); return TRUE; } - if (!(gHitMarker & HITMARKER_IGNORE_ON_AIR) && gStatuses3[gBankTarget] & STATUS3_ON_AIR) + if (!(gHitMarker & HITMARKER_IGNORE_ON_AIR) && gStatuses3[gBattlerTarget] & STATUS3_ON_AIR) { gMoveResultFlags |= MOVE_RESULT_MISSED; JumpIfMoveFailed(7, move); @@ -1250,7 +1248,7 @@ static bool8 AccuracyCalcHelper(u16 move) gHitMarker &= ~HITMARKER_IGNORE_ON_AIR; - if (!(gHitMarker & HITMARKER_IGNORE_UNDERGROUND) && gStatuses3[gBankTarget] & STATUS3_UNDERGROUND) + if (!(gHitMarker & HITMARKER_IGNORE_UNDERGROUND) && gStatuses3[gBattlerTarget] & STATUS3_UNDERGROUND) { gMoveResultFlags |= MOVE_RESULT_MISSED; JumpIfMoveFailed(7, move); @@ -1259,7 +1257,7 @@ static bool8 AccuracyCalcHelper(u16 move) gHitMarker &= ~HITMARKER_IGNORE_UNDERGROUND; - if (!(gHitMarker & HITMARKER_IGNORE_UNDERWATER) && gStatuses3[gBankTarget] & STATUS3_UNDERWATER) + if (!(gHitMarker & HITMARKER_IGNORE_UNDERWATER) && gStatuses3[gBattlerTarget] & STATUS3_UNDERWATER) { gMoveResultFlags |= MOVE_RESULT_MISSED; JumpIfMoveFailed(7, move); @@ -1284,9 +1282,9 @@ static void atk01_accuracycheck(void) if (move == 0xFFFE || move == 0xFFFF) { - if (gStatuses3[gBankTarget] & STATUS3_ALWAYS_HITS && move == 0xFFFF && gDisableStructs[gBankTarget].bankWithSureHit == gBankAttacker) + if (gStatuses3[gBattlerTarget] & STATUS3_ALWAYS_HITS && move == 0xFFFF && gDisableStructs[gBattlerTarget].bankWithSureHit == gBattlerAttacker) gBattlescriptCurrInstr += 7; - else if (gStatuses3[gBankTarget] & (STATUS3_ON_AIR | STATUS3_UNDERGROUND | STATUS3_UNDERWATER)) + else if (gStatuses3[gBattlerTarget] & (STATUS3_ON_AIR | STATUS3_UNDERGROUND | STATUS3_UNDERWATER)) gBattlescriptCurrInstr = T1_READ_PTR(gBattlescriptCurrInstr + 1); else if (!JumpIfMoveAffectedByProtect(0)) gBattlescriptCurrInstr += 7; @@ -1307,15 +1305,15 @@ static void atk01_accuracycheck(void) if (AccuracyCalcHelper(move)) return; - if (gBattleMons[gBankTarget].status2 & STATUS2_FORESIGHT) + if (gBattleMons[gBattlerTarget].status2 & STATUS2_FORESIGHT) { - u8 acc = gBattleMons[gBankAttacker].statStages[STAT_STAGE_ACC]; + u8 acc = gBattleMons[gBattlerAttacker].statStages[STAT_STAGE_ACC]; buff = acc; } else { - u8 acc = gBattleMons[gBankAttacker].statStages[STAT_STAGE_ACC]; - buff = acc + 6 - gBattleMons[gBankTarget].statStages[STAT_STAGE_EVASION]; + u8 acc = gBattleMons[gBattlerAttacker].statStages[STAT_STAGE_ACC]; + buff = acc + 6 - gBattleMons[gBattlerTarget].statStages[STAT_STAGE_EVASION]; } if (buff < 0) @@ -1331,25 +1329,25 @@ static void atk01_accuracycheck(void) calc = gAccuracyStageRatios[buff].dividend * moveAcc; calc /= gAccuracyStageRatios[buff].divisor; - if (gBattleMons[gBankAttacker].ability == ABILITY_COMPOUND_EYES) + if (gBattleMons[gBattlerAttacker].ability == ABILITY_COMPOUND_EYES) calc = (calc * 130) / 100; // 1.3 compound eyes boost - if (WEATHER_HAS_EFFECT && gBattleMons[gBankTarget].ability == ABILITY_SAND_VEIL && gBattleWeather & WEATHER_SANDSTORM_ANY) + if (WEATHER_HAS_EFFECT && gBattleMons[gBattlerTarget].ability == ABILITY_SAND_VEIL && gBattleWeather & WEATHER_SANDSTORM_ANY) calc = (calc * 80) / 100; // 1.2 sand veil loss; - if (gBattleMons[gBankAttacker].ability == ABILITY_HUSTLE && type < 9) + if (gBattleMons[gBattlerAttacker].ability == ABILITY_HUSTLE && type < 9) calc = (calc * 80) / 100; // 1.2 hustle loss; - if (gBattleMons[gBankTarget].item == ITEM_ENIGMA_BERRY) + if (gBattleMons[gBattlerTarget].item == ITEM_ENIGMA_BERRY) { - holdEffect = gEnigmaBerries[gBankTarget].holdEffect; - quality = gEnigmaBerries[gBankTarget].holdEffectParam; + holdEffect = gEnigmaBerries[gBattlerTarget].holdEffect; + quality = gEnigmaBerries[gBattlerTarget].holdEffectParam; } else { - holdEffect = ItemId_GetHoldEffect(gBattleMons[gBankTarget].item); - quality = ItemId_GetHoldEffectParam(gBattleMons[gBankTarget].item); + holdEffect = ItemId_GetHoldEffect(gBattleMons[gBattlerTarget].item); + quality = ItemId_GetHoldEffectParam(gBattleMons[gBattlerTarget].item); } - gStringBank = gBankTarget; + gPotentialItemEffectBattler = gBattlerTarget; if (holdEffect == HOLD_EFFECT_EVASION_UP) calc = (calc * (100 - quality)) / 100; @@ -1371,11 +1369,11 @@ static void atk01_accuracycheck(void) static void atk02_attackstring(void) { - if (gBattleExecBuffer) + if (gBattleControllerExecFlags) return; if (!(gHitMarker & (HITMARKER_NO_ATTACKSTRING | HITMARKER_ATTACKSTRING_PRINTED))) { - PrepareStringBattle(4, gBankAttacker); + PrepareStringBattle(4, gBattlerAttacker); gHitMarker |= HITMARKER_ATTACKSTRING_PRINTED; } gBattlescriptCurrInstr++; @@ -1386,42 +1384,42 @@ static void atk03_ppreduce(void) { s32 ppToDeduct = 1; - if (gBattleExecBuffer) + if (gBattleControllerExecFlags) return; - if (!gSpecialStatuses[gBankAttacker].flag20) + if (!gSpecialStatuses[gBattlerAttacker].ppNotAffectedByPressure) { switch (gBattleMoves[gCurrentMove].target) { case TARGET_FOES_AND_ALLY: - ppToDeduct += AbilityBattleEffects(ABILITYEFFECT_COUNT_ON_FIELD, gBankAttacker, ABILITY_PRESSURE, 0, 0); + ppToDeduct += AbilityBattleEffects(ABILITYEFFECT_COUNT_ON_FIELD, gBattlerAttacker, ABILITY_PRESSURE, 0, 0); break; case TARGET_BOTH: case TARGET_OPPONENTS_FIELD: - ppToDeduct += AbilityBattleEffects(ABILITYEFFECT_COUNT_OTHER_SIZE, gBankAttacker, ABILITY_PRESSURE, 0, 0); + ppToDeduct += AbilityBattleEffects(ABILITYEFFECT_COUNT_OTHER_SIZE, gBattlerAttacker, ABILITY_PRESSURE, 0, 0); break; default: - if (gBankAttacker != gBankTarget && gBattleMons[gBankTarget].ability == ABILITY_PRESSURE) + if (gBattlerAttacker != gBattlerTarget && gBattleMons[gBattlerTarget].ability == ABILITY_PRESSURE) ppToDeduct++; break; } } - if (!(gHitMarker & (HITMARKER_NO_PPDEDUCT | HITMARKER_NO_ATTACKSTRING)) && gBattleMons[gBankAttacker].pp[gCurrMovePos]) + if (!(gHitMarker & (HITMARKER_NO_PPDEDUCT | HITMARKER_NO_ATTACKSTRING)) && gBattleMons[gBattlerAttacker].pp[gCurrMovePos]) { - gProtectStructs[gBankAttacker].notFirstStrike = 1; + gProtectStructs[gBattlerAttacker].notFirstStrike = 1; - if (gBattleMons[gBankAttacker].pp[gCurrMovePos] > ppToDeduct) - gBattleMons[gBankAttacker].pp[gCurrMovePos] -= ppToDeduct; + if (gBattleMons[gBattlerAttacker].pp[gCurrMovePos] > ppToDeduct) + gBattleMons[gBattlerAttacker].pp[gCurrMovePos] -= ppToDeduct; else - gBattleMons[gBankAttacker].pp[gCurrMovePos] = 0; + gBattleMons[gBattlerAttacker].pp[gCurrMovePos] = 0; - if (!(gBattleMons[gBankAttacker].status2 & STATUS2_TRANSFORMED) - && !((gDisableStructs[gBankAttacker].unk18_b) & gBitTable[gCurrMovePos])) + if (!(gBattleMons[gBattlerAttacker].status2 & STATUS2_TRANSFORMED) + && !((gDisableStructs[gBattlerAttacker].unk18_b) & gBitTable[gCurrMovePos])) { - gActiveBattler = gBankAttacker; - EmitSetMonData(0, REQUEST_PPMOVE1_BATTLE + gCurrMovePos, 0, 1, &gBattleMons[gBankAttacker].pp[gCurrMovePos]); - MarkBufferBankForExecution(gBankAttacker); + gActiveBattler = gBattlerAttacker; + BtlController_EmitSetMonData(0, REQUEST_PPMOVE1_BATTLE + gCurrMovePos, 0, 1, &gBattleMons[gBattlerAttacker].pp[gCurrMovePos]); + MarkBattlerForControllerExec(gBattlerAttacker); } } @@ -1434,29 +1432,29 @@ static void atk04_critcalc(void) u8 holdEffect; u16 item, critChance; - item = gBattleMons[gBankAttacker].item; + item = gBattleMons[gBattlerAttacker].item; if (item == ITEM_ENIGMA_BERRY) - holdEffect = gEnigmaBerries[gBankAttacker].holdEffect; + holdEffect = gEnigmaBerries[gBattlerAttacker].holdEffect; else holdEffect = ItemId_GetHoldEffect(item); - gStringBank = gBankAttacker; + gPotentialItemEffectBattler = gBattlerAttacker; - critChance = 2 * ((gBattleMons[gBankAttacker].status2 & STATUS2_FOCUS_ENERGY) != 0) + critChance = 2 * ((gBattleMons[gBattlerAttacker].status2 & STATUS2_FOCUS_ENERGY) != 0) + (gBattleMoves[gCurrentMove].effect == EFFECT_HIGH_CRITICAL) + (gBattleMoves[gCurrentMove].effect == EFFECT_SKY_ATTACK) + (gBattleMoves[gCurrentMove].effect == EFFECT_BLAZE_KICK) + (gBattleMoves[gCurrentMove].effect == EFFECT_POISON_TAIL) + (holdEffect == HOLD_EFFECT_SCOPE_LENS) - + 2 * (holdEffect == HOLD_EFFECT_LUCKY_PUNCH && gBattleMons[gBankAttacker].species == SPECIES_CHANSEY) - + 2 * (holdEffect == HOLD_EFFECT_STICK && gBattleMons[gBankAttacker].species == SPECIES_FARFETCHD); + + 2 * (holdEffect == HOLD_EFFECT_LUCKY_PUNCH && gBattleMons[gBattlerAttacker].species == SPECIES_CHANSEY) + + 2 * (holdEffect == HOLD_EFFECT_STICK && gBattleMons[gBattlerAttacker].species == SPECIES_FARFETCHD); if (critChance > 4) critChance = 4; - if ((gBattleMons[gBankTarget].ability != ABILITY_BATTLE_ARMOR && gBattleMons[gBankTarget].ability != ABILITY_SHELL_ARMOR) - && !(gStatuses3[gBankAttacker] & STATUS3_CANT_SCORE_A_CRIT) + if ((gBattleMons[gBattlerTarget].ability != ABILITY_BATTLE_ARMOR && gBattleMons[gBattlerTarget].ability != ABILITY_SHELL_ARMOR) + && !(gStatuses3[gBattlerAttacker] & STATUS3_CANT_SCORE_A_CRIT) && !(gBattleTypeFlags & (BATTLE_TYPE_WALLY_TUTORIAL | BATTLE_TYPE_FIRST_BATTLE)) && !(Random() % sCriticalHitChance[critChance])) gCritMultiplier = 2; @@ -1468,15 +1466,15 @@ static void atk04_critcalc(void) static void atk05_damagecalc(void) { - u16 side_hword = gSideAffecting[GetBattlerPosition(gBankTarget) & 1]; - gBattleMoveDamage = CalculateBaseDamage(&gBattleMons[gBankAttacker], &gBattleMons[gBankTarget], gCurrentMove, + u16 side_hword = gSideAffecting[GetBattlerPosition(gBattlerTarget) & 1]; + gBattleMoveDamage = CalculateBaseDamage(&gBattleMons[gBattlerAttacker], &gBattleMons[gBattlerTarget], gCurrentMove, side_hword, gDynamicBasePower, - gBattleStruct->dynamicMoveType, gBankAttacker, gBankTarget); + gBattleStruct->dynamicMoveType, gBattlerAttacker, gBattlerTarget); gBattleMoveDamage = gBattleMoveDamage * gCritMultiplier * gBattleStruct->dmgMultiplier; - if (gStatuses3[gBankAttacker] & STATUS3_CHARGED_UP && gBattleMoves[gCurrentMove].type == TYPE_ELECTRIC) + if (gStatuses3[gBattlerAttacker] & STATUS3_CHARGED_UP && gBattleMoves[gCurrentMove].type == TYPE_ELECTRIC) gBattleMoveDamage *= 2; - if (gProtectStructs[gBankAttacker].helpingHand) + if (gProtectStructs[gBattlerAttacker].helpingHand) gBattleMoveDamage = gBattleMoveDamage * 15 / 10; gBattlescriptCurrInstr++; @@ -1543,20 +1541,20 @@ static void atk06_typecalc(void) move_type = gBattleMoves[gCurrentMove].type; //check stab - if (gBattleMons[gBankAttacker].type1 == move_type || gBattleMons[gBankAttacker].type2 == move_type) + if (gBattleMons[gBattlerAttacker].type1 == move_type || gBattleMons[gBattlerAttacker].type2 == move_type) { gBattleMoveDamage = gBattleMoveDamage * 15; gBattleMoveDamage = gBattleMoveDamage / 10; } - if (gBattleMons[gBankTarget].ability == ABILITY_LEVITATE && move_type == TYPE_GROUND) + if (gBattleMons[gBattlerTarget].ability == ABILITY_LEVITATE && move_type == TYPE_GROUND) { - gLastUsedAbility = gBattleMons[gBankTarget].ability; + gLastUsedAbility = gBattleMons[gBattlerTarget].ability; gMoveResultFlags |= (MOVE_RESULT_MISSED | MOVE_RESULT_DOESNT_AFFECT_FOE); - gLastLandedMoves[gBankTarget] = 0; - gLastHitByType[gBankTarget] = 0; + gLastLandedMoves[gBattlerTarget] = 0; + gLastHitByType[gBattlerTarget] = 0; gBattleCommunication[6] = move_type; - RecordAbilityBattle(gBankTarget, gLastUsedAbility); + RecordAbilityBattle(gBattlerTarget, gLastUsedAbility); } else { @@ -1564,7 +1562,7 @@ static void atk06_typecalc(void) { if (gTypeEffectiveness[i] == TYPE_FORESIGHT) { - if (gBattleMons[gBankTarget].status2 & STATUS2_FORESIGHT) + if (gBattleMons[gBattlerTarget].status2 & STATUS2_FORESIGHT) break; i += 3; continue; @@ -1573,30 +1571,30 @@ static void atk06_typecalc(void) else if (gTypeEffectiveness[i] == move_type) { //check type1 - if (gTypeEffectiveness[i + 1] == gBattleMons[gBankTarget].type1) + if (gTypeEffectiveness[i + 1] == gBattleMons[gBattlerTarget].type1) ModulateDmgByType(gTypeEffectiveness[i + 2]); //check type2 - if (gTypeEffectiveness[i + 1] == gBattleMons[gBankTarget].type2 && - gBattleMons[gBankTarget].type1 != gBattleMons[gBankTarget].type2) + if (gTypeEffectiveness[i + 1] == gBattleMons[gBattlerTarget].type2 && + gBattleMons[gBattlerTarget].type1 != gBattleMons[gBattlerTarget].type2) ModulateDmgByType(gTypeEffectiveness[i + 2]); } i += 3; } } - if (gBattleMons[gBankTarget].ability == ABILITY_WONDER_GUARD && AttacksThisTurn(gBankAttacker, gCurrentMove) == 2 + if (gBattleMons[gBattlerTarget].ability == ABILITY_WONDER_GUARD && AttacksThisTurn(gBattlerAttacker, gCurrentMove) == 2 && (!(gMoveResultFlags & MOVE_RESULT_SUPER_EFFECTIVE) || ((gMoveResultFlags & (MOVE_RESULT_SUPER_EFFECTIVE | MOVE_RESULT_NOT_VERY_EFFECTIVE)) == (MOVE_RESULT_SUPER_EFFECTIVE | MOVE_RESULT_NOT_VERY_EFFECTIVE))) && gBattleMoves[gCurrentMove].power) { gLastUsedAbility = ABILITY_WONDER_GUARD; gMoveResultFlags |= MOVE_RESULT_MISSED; - gLastLandedMoves[gBankTarget] = 0; - gLastHitByType[gBankTarget] = 0; + gLastLandedMoves[gBattlerTarget] = 0; + gLastHitByType[gBattlerTarget] = 0; gBattleCommunication[6] = 3; - RecordAbilityBattle(gBankTarget, gLastUsedAbility); + RecordAbilityBattle(gBattlerTarget, gLastUsedAbility); } if (gMoveResultFlags & MOVE_RESULT_DOESNT_AFFECT_FOE) - gProtectStructs[gBankAttacker].notEffective = 1; + gProtectStructs[gBattlerAttacker].targetNotAffected = 1; } gBattlescriptCurrInstr++; } @@ -1614,7 +1612,7 @@ static void CheckWonderGuardAndLevitate(void) else move_type = gBattleMoves[gCurrentMove].type; - if (gBattleMons[gBankTarget].ability == ABILITY_LEVITATE && move_type == TYPE_GROUND) + if (gBattleMons[gBattlerTarget].ability == ABILITY_LEVITATE && move_type == TYPE_GROUND) { RecordAbilitySetField6(ABILITY_LEVITATE, move_type); return; @@ -1624,7 +1622,7 @@ static void CheckWonderGuardAndLevitate(void) { if (gTypeEffectiveness[i] == TYPE_FORESIGHT) { - if (gBattleMons[gBankTarget].status2 & STATUS2_FORESIGHT) + if (gBattleMons[gBattlerTarget].status2 & STATUS2_FORESIGHT) break; i += 3; continue; @@ -1633,39 +1631,39 @@ static void CheckWonderGuardAndLevitate(void) if (gTypeEffectiveness[i] == move_type) { //check no effect - if (gTypeEffectiveness[i + 1] == gBattleMons[gBankTarget].type1 && gTypeEffectiveness[i + 2] == 0) + if (gTypeEffectiveness[i + 1] == gBattleMons[gBattlerTarget].type1 && gTypeEffectiveness[i + 2] == 0) { gMoveResultFlags |= MOVE_RESULT_DOESNT_AFFECT_FOE; - gProtectStructs[gBankAttacker].notEffective = 1; + gProtectStructs[gBattlerAttacker].targetNotAffected = 1; } - if (gTypeEffectiveness[i + 1] == gBattleMons[gBankTarget].type2 && - gBattleMons[gBankTarget].type1 != gBattleMons[gBankTarget].type2 && + if (gTypeEffectiveness[i + 1] == gBattleMons[gBattlerTarget].type2 && + gBattleMons[gBattlerTarget].type1 != gBattleMons[gBattlerTarget].type2 && gTypeEffectiveness[i + 2] == 0) { gMoveResultFlags |= MOVE_RESULT_DOESNT_AFFECT_FOE; - gProtectStructs[gBankAttacker].notEffective = 1; + gProtectStructs[gBattlerAttacker].targetNotAffected = 1; } //check super effective - if (gTypeEffectiveness[i + 1] == gBattleMons[gBankTarget].type1 && gTypeEffectiveness[i + 2] == 20) + if (gTypeEffectiveness[i + 1] == gBattleMons[gBattlerTarget].type1 && gTypeEffectiveness[i + 2] == 20) flags |= 1; - if (gTypeEffectiveness[i + 1] == gBattleMons[gBankTarget].type2 - && gBattleMons[gBankTarget].type1 != gBattleMons[gBankTarget].type2 + if (gTypeEffectiveness[i + 1] == gBattleMons[gBattlerTarget].type2 + && gBattleMons[gBattlerTarget].type1 != gBattleMons[gBattlerTarget].type2 && gTypeEffectiveness[i + 2] == 20) flags |= 1; //check not very effective - if (gTypeEffectiveness[i + 1] == gBattleMons[gBankTarget].type1 && gTypeEffectiveness[i + 2] == 5) + if (gTypeEffectiveness[i + 1] == gBattleMons[gBattlerTarget].type1 && gTypeEffectiveness[i + 2] == 5) flags |= 2; - if (gTypeEffectiveness[i + 1] == gBattleMons[gBankTarget].type2 - && gBattleMons[gBankTarget].type1 != gBattleMons[gBankTarget].type2 + if (gTypeEffectiveness[i + 1] == gBattleMons[gBattlerTarget].type2 + && gBattleMons[gBattlerTarget].type1 != gBattleMons[gBattlerTarget].type2 && gTypeEffectiveness[i + 2] == 5) flags |= 2; } i += 3; } - if (gBattleMons[gBankTarget].ability == ABILITY_WONDER_GUARD && AttacksThisTurn(gBankAttacker, gCurrentMove) == 2) + if (gBattleMons[gBattlerTarget].ability == ABILITY_WONDER_GUARD && AttacksThisTurn(gBattlerAttacker, gCurrentMove) == 2) { if (((flags & 2) || !(flags & 1)) && gBattleMoves[gCurrentMove].power) { @@ -1749,7 +1747,7 @@ u8 TypeCalc(u16 move, u8 bank_atk, u8 bank_def) ModulateDmgByType2(gTypeEffectiveness[i + 2], move, &flags); //check type2 if (gTypeEffectiveness[i + 1] == gBattleMons[bank_def].type2 && - gBattleMons[gBankTarget /* what the christ */].type1 != gBattleMons[bank_def].type2) + gBattleMons[gBattlerTarget /* what the christ */].type1 != gBattleMons[bank_def].type2) ModulateDmgByType2(gTypeEffectiveness[i + 2], move, &flags); } i += 3; @@ -1794,7 +1792,7 @@ u8 AI_TypeCalc(u16 move, u16 species, u8 ability) if (gTypeEffectiveness[i + 1] == type1) ModulateDmgByType2(gTypeEffectiveness[i + 2], move, &flags); //check type2 - if (gTypeEffectiveness[i + 1] == type2 && gBattleMons[gBankTarget].type1 != type2) //gf you morons, you should check if (type1 != type2)... + if (gTypeEffectiveness[i + 1] == type2 && gBattleMons[gBattlerTarget].type1 != type2) //gf you morons, you should check if (type1 != type2)... ModulateDmgByType2(gTypeEffectiveness[i + 2], move, &flags); } i += 3; @@ -1831,43 +1829,43 @@ static void atk07_adjustnormaldamage(void) { u8 hold_effect, quality; ApplyRandomDmgMultiplier(); - if (gBattleMons[gBankTarget].item == ITEM_ENIGMA_BERRY) + if (gBattleMons[gBattlerTarget].item == ITEM_ENIGMA_BERRY) { - hold_effect = gEnigmaBerries[gBankTarget].holdEffect, quality = gEnigmaBerries[gBankTarget].holdEffectParam; + hold_effect = gEnigmaBerries[gBattlerTarget].holdEffect, quality = gEnigmaBerries[gBattlerTarget].holdEffectParam; } else { - hold_effect = ItemId_GetHoldEffect(gBattleMons[gBankTarget].item); - quality = ItemId_GetHoldEffectParam(gBattleMons[gBankTarget].item); + hold_effect = ItemId_GetHoldEffect(gBattleMons[gBattlerTarget].item); + quality = ItemId_GetHoldEffectParam(gBattleMons[gBattlerTarget].item); } - gStringBank = gBankTarget; + gPotentialItemEffectBattler = gBattlerTarget; if (hold_effect == HOLD_EFFECT_FOCUS_BAND && (Random() % 100) < quality) { - RecordItemBattle(gBankTarget, hold_effect); - gSpecialStatuses[gBankTarget].focusBanded = 1; + RecordItemBattle(gBattlerTarget, hold_effect); + gSpecialStatuses[gBattlerTarget].focusBanded = 1; } - if (gBattleMons[gBankTarget].status2 & STATUS2_SUBSTITUTE) + if (gBattleMons[gBattlerTarget].status2 & STATUS2_SUBSTITUTE) goto END; - if (gBattleMoves[gCurrentMove].effect != EFFECT_FALSE_SWIPE && !gProtectStructs[gBankTarget].endured - && !gSpecialStatuses[gBankTarget].focusBanded) + if (gBattleMoves[gCurrentMove].effect != EFFECT_FALSE_SWIPE && !gProtectStructs[gBattlerTarget].endured + && !gSpecialStatuses[gBattlerTarget].focusBanded) goto END; - if (gBattleMons[gBankTarget].hp > gBattleMoveDamage) + if (gBattleMons[gBattlerTarget].hp > gBattleMoveDamage) goto END; - gBattleMoveDamage = gBattleMons[gBankTarget].hp - 1; + gBattleMoveDamage = gBattleMons[gBattlerTarget].hp - 1; - if (gProtectStructs[gBankTarget].endured) + if (gProtectStructs[gBattlerTarget].endured) { gMoveResultFlags |= MOVE_RESULT_FOE_ENDURED; goto END; } - if (gSpecialStatuses[gBankTarget].focusBanded) + if (gSpecialStatuses[gBattlerTarget].focusBanded) { gMoveResultFlags |= MOVE_RESULT_FOE_HUNG_ON; - gLastUsedItem = gBattleMons[gBankTarget].item; + gLastUsedItem = gBattleMons[gBattlerTarget].item; } END: @@ -1878,43 +1876,43 @@ static void atk08_adjustnormaldamage2(void) //literally the same as 0x7 except i { u8 hold_effect, quality; ApplyRandomDmgMultiplier(); - if (gBattleMons[gBankTarget].item == ITEM_ENIGMA_BERRY) + if (gBattleMons[gBattlerTarget].item == ITEM_ENIGMA_BERRY) { - hold_effect = gEnigmaBerries[gBankTarget].holdEffect, quality = gEnigmaBerries[gBankTarget].holdEffectParam; + hold_effect = gEnigmaBerries[gBattlerTarget].holdEffect, quality = gEnigmaBerries[gBattlerTarget].holdEffectParam; } else { - hold_effect = ItemId_GetHoldEffect(gBattleMons[gBankTarget].item); - quality = ItemId_GetHoldEffectParam(gBattleMons[gBankTarget].item); + hold_effect = ItemId_GetHoldEffect(gBattleMons[gBattlerTarget].item); + quality = ItemId_GetHoldEffectParam(gBattleMons[gBattlerTarget].item); } - gStringBank = gBankTarget; + gPotentialItemEffectBattler = gBattlerTarget; if (hold_effect == HOLD_EFFECT_FOCUS_BAND && (Random() % 100) < quality) { - RecordItemBattle(gBankTarget, hold_effect); - gSpecialStatuses[gBankTarget].focusBanded = 1; + RecordItemBattle(gBattlerTarget, hold_effect); + gSpecialStatuses[gBattlerTarget].focusBanded = 1; } - if (gBattleMons[gBankTarget].status2 & STATUS2_SUBSTITUTE) + if (gBattleMons[gBattlerTarget].status2 & STATUS2_SUBSTITUTE) goto END; - if (!gProtectStructs[gBankTarget].endured - && !gSpecialStatuses[gBankTarget].focusBanded) + if (!gProtectStructs[gBattlerTarget].endured + && !gSpecialStatuses[gBattlerTarget].focusBanded) goto END; - if (gBattleMons[gBankTarget].hp > gBattleMoveDamage) + if (gBattleMons[gBattlerTarget].hp > gBattleMoveDamage) goto END; - gBattleMoveDamage = gBattleMons[gBankTarget].hp - 1; + gBattleMoveDamage = gBattleMons[gBattlerTarget].hp - 1; - if (gProtectStructs[gBankTarget].endured) + if (gProtectStructs[gBattlerTarget].endured) { gMoveResultFlags |= MOVE_RESULT_FOE_ENDURED; goto END; } - if (gSpecialStatuses[gBankTarget].focusBanded) + if (gSpecialStatuses[gBattlerTarget].focusBanded) { gMoveResultFlags |= MOVE_RESULT_FOE_HUNG_ON; - gLastUsedItem = gBattleMons[gBankTarget].item; + gLastUsedItem = gBattleMons[gBattlerTarget].item; } END: @@ -1923,7 +1921,7 @@ static void atk08_adjustnormaldamage2(void) //literally the same as 0x7 except i static void atk09_attackanimation(void) { - if (gBattleExecBuffer) + if (gBattleControllerExecFlags) return; if ((gHitMarker & HITMARKER_NO_ANIMATIONS) && (gCurrentMove != MOVE_TRANSFORM && gCurrentMove != MOVE_SUBSTITUTE)) @@ -1942,12 +1940,12 @@ static void atk09_attackanimation(void) } if (!(gMoveResultFlags & MOVE_RESULT_NO_EFFECT)) { - gActiveBattler = gBankAttacker; + gActiveBattler = gBattlerAttacker; - EmitMoveAnimation(0, gCurrentMove, gBattleStruct->animTurn, gBattleMovePower, gBattleMoveDamage, gBattleMons[gBankAttacker].friendship, &gDisableStructs[gBankAttacker]); + BtlController_EmitMoveAnimation(0, gCurrentMove, gBattleStruct->animTurn, gBattleMovePower, gBattleMoveDamage, gBattleMons[gBattlerAttacker].friendship, &gDisableStructs[gBattlerAttacker]); gBattleStruct->animTurn += 1; gBattleStruct->animTargetsHit += 1; - MarkBufferBankForExecution(gBankAttacker); + MarkBattlerForControllerExec(gBattlerAttacker); gBattlescriptCurrInstr++; } else @@ -1960,13 +1958,13 @@ static void atk09_attackanimation(void) static void atk0A_waitanimation(void) { - if (gBattleExecBuffer == 0) + if (gBattleControllerExecFlags == 0) gBattlescriptCurrInstr++; } static void atk0B_healthbarupdate(void) { - if (gBattleExecBuffer) + if (gBattleControllerExecFlags) return; if (!(gMoveResultFlags & MOVE_RESULT_NO_EFFECT)) @@ -1991,11 +1989,11 @@ static void atk0B_healthbarupdate(void) else healthValue = maxPossibleDmgValue; - EmitHealthBarUpdate(0, healthValue); + BtlController_EmitHealthBarUpdate(0, healthValue); */ - EmitHealthBarUpdate(0, gBattleMoveDamage); - MarkBufferBankForExecution(gActiveBattler); + BtlController_EmitHealthBarUpdate(0, gBattleMoveDamage); + MarkBattlerForControllerExec(gActiveBattler); if (GetBattlerSide(gActiveBattler) == B_SIDE_PLAYER && gBattleMoveDamage > 0) gBattleResults.unk5_0 = 1; @@ -2009,7 +2007,7 @@ static void atk0C_datahpupdate(void) { u32 moveType; - if (gBattleExecBuffer) + if (gBattleControllerExecFlags) return; if (gBattleStruct->dynamicMoveType == 0) @@ -2026,15 +2024,15 @@ static void atk0C_datahpupdate(void) { if (gDisableStructs[gActiveBattler].substituteHP >= gBattleMoveDamage) { - if (gSpecialStatuses[gActiveBattler].moveturnLostHP == 0) - gSpecialStatuses[gActiveBattler].moveturnLostHP = gBattleMoveDamage; + if (gSpecialStatuses[gActiveBattler].dmg == 0) + gSpecialStatuses[gActiveBattler].dmg = gBattleMoveDamage; gDisableStructs[gActiveBattler].substituteHP -= gBattleMoveDamage; gHpDealt = gBattleMoveDamage; } else { - if (gSpecialStatuses[gActiveBattler].moveturnLostHP == 0) - gSpecialStatuses[gActiveBattler].moveturnLostHP = gDisableStructs[gActiveBattler].substituteHP; + if (gSpecialStatuses[gActiveBattler].dmg == 0) + gSpecialStatuses[gActiveBattler].dmg = gDisableStructs[gActiveBattler].substituteHP; gHpDealt = gDisableStructs[gActiveBattler].substituteHP; gDisableStructs[gActiveBattler].substituteHP = 0; } @@ -2067,9 +2065,9 @@ static void atk0C_datahpupdate(void) { gTakenDmg[gActiveBattler] += gBattleMoveDamage; if (gBattlescriptCurrInstr[1] == BS_GET_TARGET) - gTakenDmgBanks[gActiveBattler] = gBankAttacker; + gTakenDmgBanks[gActiveBattler] = gBattlerAttacker; else - gTakenDmgBanks[gActiveBattler] = gBankTarget; + gTakenDmgBanks[gActiveBattler] = gBattlerTarget; } if (gBattleMons[gActiveBattler].hp > gBattleMoveDamage) @@ -2083,61 +2081,61 @@ static void atk0C_datahpupdate(void) gBattleMons[gActiveBattler].hp = 0; } - if (!gSpecialStatuses[gActiveBattler].moveturnLostHP && !(gHitMarker & HITMARKER_x100000)) - gSpecialStatuses[gActiveBattler].moveturnLostHP = gHpDealt; + if (!gSpecialStatuses[gActiveBattler].dmg && !(gHitMarker & HITMARKER_x100000)) + gSpecialStatuses[gActiveBattler].dmg = gHpDealt; if (TYPE_IS_PHYSICAL(moveType) && !(gHitMarker & HITMARKER_x100000) && gCurrentMove != MOVE_PAIN_SPLIT) { gProtectStructs[gActiveBattler].physicalDmg = gHpDealt; - gSpecialStatuses[gActiveBattler].moveturnLostHP_physical = gHpDealt; + gSpecialStatuses[gActiveBattler].physicalDmg = gHpDealt; if (gBattlescriptCurrInstr[1] == BS_GET_TARGET) { - gProtectStructs[gActiveBattler].physicalBank = gBankAttacker; - gSpecialStatuses[gActiveBattler].moveturnPhysicalBank = gBankAttacker; + gProtectStructs[gActiveBattler].physicalBattlerId = gBattlerAttacker; + gSpecialStatuses[gActiveBattler].physicalBattlerId = gBattlerAttacker; } else { - gProtectStructs[gActiveBattler].physicalBank = gBankTarget; - gSpecialStatuses[gActiveBattler].moveturnPhysicalBank = gBankTarget; + gProtectStructs[gActiveBattler].physicalBattlerId = gBattlerTarget; + gSpecialStatuses[gActiveBattler].physicalBattlerId = gBattlerTarget; } } else if (!TYPE_IS_PHYSICAL(moveType) && !(gHitMarker & HITMARKER_x100000)) { gProtectStructs[gActiveBattler].specialDmg = gHpDealt; - gSpecialStatuses[gActiveBattler].moveturnLostHP_special = gHpDealt; + gSpecialStatuses[gActiveBattler].specialDmg = gHpDealt; if (gBattlescriptCurrInstr[1] == BS_GET_TARGET) { - gProtectStructs[gActiveBattler].specialBank = gBankAttacker; - gSpecialStatuses[gActiveBattler].moveturnSpecialBank = gBankAttacker; + gProtectStructs[gActiveBattler].specialBattlerId = gBattlerAttacker; + gSpecialStatuses[gActiveBattler].specialBattlerId = gBattlerAttacker; } else { - gProtectStructs[gActiveBattler].specialBank = gBankTarget; - gSpecialStatuses[gActiveBattler].moveturnSpecialBank = gBankTarget; + gProtectStructs[gActiveBattler].specialBattlerId = gBattlerTarget; + gSpecialStatuses[gActiveBattler].specialBattlerId = gBattlerTarget; } } } gHitMarker &= ~(HITMARKER_x100000); - EmitSetMonData(0, REQUEST_HP_BATTLE, 0, 2, &gBattleMons[gActiveBattler].hp); - MarkBufferBankForExecution(gActiveBattler); + BtlController_EmitSetMonData(0, REQUEST_HP_BATTLE, 0, 2, &gBattleMons[gActiveBattler].hp); + MarkBattlerForControllerExec(gActiveBattler); } } else { gActiveBattler = GetBattleBank(gBattlescriptCurrInstr[1]); - if (gSpecialStatuses[gActiveBattler].moveturnLostHP == 0) - gSpecialStatuses[gActiveBattler].moveturnLostHP = 0xFFFF; + if (gSpecialStatuses[gActiveBattler].dmg == 0) + gSpecialStatuses[gActiveBattler].dmg = 0xFFFF; } gBattlescriptCurrInstr += 2; } static void atk0D_critmessage(void) { - if (gBattleExecBuffer == 0) + if (gBattleControllerExecFlags == 0) { if (gCritMultiplier == 2 && !(gMoveResultFlags & MOVE_RESULT_NO_EFFECT)) { - PrepareStringBattle(0xD9, gBankAttacker); + PrepareStringBattle(0xD9, gBattlerAttacker); gBattleCommunication[MSG_DISPLAY] = 1; } gBattlescriptCurrInstr++; @@ -2146,22 +2144,22 @@ static void atk0D_critmessage(void) static void atk0E_effectivenesssound(void) { - if (gBattleExecBuffer) + if (gBattleControllerExecFlags) return; - gActiveBattler = gBankTarget; + gActiveBattler = gBattlerTarget; if (!(gMoveResultFlags & MOVE_RESULT_MISSED)) { u8 flag = ~MOVE_RESULT_MISSED; switch (gMoveResultFlags & flag) { case MOVE_RESULT_SUPER_EFFECTIVE: - EmitEffectivenessSound(0, 14); - MarkBufferBankForExecution(gActiveBattler); + BtlController_EmitPlaySE(0, 14); + MarkBattlerForControllerExec(gActiveBattler); break; case MOVE_RESULT_NOT_VERY_EFFECTIVE: - EmitEffectivenessSound(0, 12); - MarkBufferBankForExecution(gActiveBattler); + BtlController_EmitPlaySE(0, 12); + MarkBattlerForControllerExec(gActiveBattler); break; case MOVE_RESULT_DOESNT_AFFECT_FOE: case MOVE_RESULT_FAILED: @@ -2172,18 +2170,18 @@ static void atk0E_effectivenesssound(void) default: if (gMoveResultFlags & MOVE_RESULT_SUPER_EFFECTIVE) { - EmitEffectivenessSound(0, 14); - MarkBufferBankForExecution(gActiveBattler); + BtlController_EmitPlaySE(0, 14); + MarkBattlerForControllerExec(gActiveBattler); } else if (gMoveResultFlags & MOVE_RESULT_NOT_VERY_EFFECTIVE) { - EmitEffectivenessSound(0, 12); - MarkBufferBankForExecution(gActiveBattler); + BtlController_EmitPlaySE(0, 12); + MarkBattlerForControllerExec(gActiveBattler); } else if (!(gMoveResultFlags & (MOVE_RESULT_DOESNT_AFFECT_FOE | MOVE_RESULT_FAILED))) { - EmitEffectivenessSound(0, 13); - MarkBufferBankForExecution(gActiveBattler); + BtlController_EmitPlaySE(0, 13); + MarkBattlerForControllerExec(gActiveBattler); } break; } @@ -2195,7 +2193,7 @@ static void atk0F_resultmessage(void) { u32 stringId = 0; - if (gBattleExecBuffer) + if (gBattleControllerExecFlags) return; if (gMoveResultFlags & MOVE_RESULT_MISSED && (!(gMoveResultFlags & MOVE_RESULT_DOESNT_AFFECT_FOE) || gBattleCommunication[6] > 2)) @@ -2227,8 +2225,8 @@ static void atk0F_resultmessage(void) stringId = STRINGID_ITDOESNTAFFECT; break; case MOVE_RESULT_FOE_HUNG_ON: - gLastUsedItem = gBattleMons[gBankTarget].item; - gStringBank = gBankTarget; + gLastUsedItem = gBattleMons[gBattlerTarget].item; + gPotentialItemEffectBattler = gBattlerTarget; gMoveResultFlags &= ~(MOVE_RESULT_FOE_ENDURED | MOVE_RESULT_FOE_HUNG_ON); BattleScriptPushCursor(); gBattlescriptCurrInstr = BattleScript_HangedOnMsg; @@ -2256,8 +2254,8 @@ static void atk0F_resultmessage(void) } else if (gMoveResultFlags & MOVE_RESULT_FOE_HUNG_ON) { - gLastUsedItem = gBattleMons[gBankTarget].item; - gStringBank = gBankTarget; + gLastUsedItem = gBattleMons[gBattlerTarget].item; + gPotentialItemEffectBattler = gBattlerTarget; gMoveResultFlags &= ~(MOVE_RESULT_FOE_ENDURED | MOVE_RESULT_FOE_HUNG_ON); BattleScriptPushCursor(); gBattlescriptCurrInstr = BattleScript_HangedOnMsg; @@ -2275,17 +2273,17 @@ static void atk0F_resultmessage(void) } if (stringId) - PrepareStringBattle(stringId, gBankAttacker); + PrepareStringBattle(stringId, gBattlerAttacker); gBattlescriptCurrInstr++; } static void atk10_printstring(void) { - if (gBattleExecBuffer == 0) + if (gBattleControllerExecFlags == 0) { u16 var = T2_READ_16(gBattlescriptCurrInstr + 1); - PrepareStringBattle(var, gBankAttacker); + PrepareStringBattle(var, gBattlerAttacker); gBattlescriptCurrInstr += 3; gBattleCommunication[MSG_DISPLAY] = 1; } @@ -2293,16 +2291,16 @@ static void atk10_printstring(void) static void atk11_printselectionstring(void) { - gActiveBattler = gBankAttacker; - EmitPrintStringPlayerOnly(0, T2_READ_16(gBattlescriptCurrInstr + 1)); - MarkBufferBankForExecution(gActiveBattler); + gActiveBattler = gBattlerAttacker; + BtlController_EmitPrintSelectionString(0, T2_READ_16(gBattlescriptCurrInstr + 1)); + MarkBattlerForControllerExec(gActiveBattler); gBattlescriptCurrInstr += 3; gBattleCommunication[MSG_DISPLAY] = 1; } static void atk12_waitmessage(void) { - if (gBattleExecBuffer == 0) + if (gBattleControllerExecFlags == 0) { if (!gBattleCommunication[MSG_DISPLAY]) { @@ -2323,11 +2321,11 @@ static void atk12_waitmessage(void) static void atk13_printfromtable(void) { - if (gBattleExecBuffer == 0) + if (gBattleControllerExecFlags == 0) { u16 *ptr = (u16 *)T1_READ_PTR(gBattlescriptCurrInstr + 1); ptr += gBattleCommunication[MULTISTRING_CHOOSER]; - PrepareStringBattle(*(u16*)ptr, gBankAttacker); + PrepareStringBattle(*(u16*)ptr, gBattlerAttacker); gBattlescriptCurrInstr += 5; gBattleCommunication[MSG_DISPLAY] = 1; } @@ -2335,13 +2333,13 @@ static void atk13_printfromtable(void) static void atk14_printselectionstringfromtable(void) { - if (gBattleExecBuffer == 0) + if (gBattleControllerExecFlags == 0) { u16 *ptr = (u16 *)T1_READ_PTR(gBattlescriptCurrInstr + 1); // FIXME ptr += gBattleCommunication[MULTISTRING_CHOOSER]; - gActiveBattler = gBankAttacker; - EmitPrintStringPlayerOnly(0, *(u16*)ptr); - MarkBufferBankForExecution(gActiveBattler); + gActiveBattler = gBattlerAttacker; + BtlController_EmitPrintSelectionString(0, *(u16*)ptr); + MarkBattlerForControllerExec(gActiveBattler); gBattlescriptCurrInstr += 5; gBattleCommunication[MSG_DISPLAY] = 1; } @@ -2358,7 +2356,7 @@ u8 BankGetTurnOrder(u8 bank) return i; } -//Someone please decompile this monstrosity below... +//TODO Someone please decompile this monstrosity below... #ifdef NONMATCHING void SetMoveEffect(bool8 primary, u8 certainArg) { @@ -2370,30 +2368,30 @@ void SetMoveEffect(bool8 primary, u8 certainArg) if (gBattleCommunication[MOVE_EFFECT_BYTE] & EffectAffectsUser) { - gEffectBank = gBankAttacker; //bank that effects get applied on + gEffectBattler = gBattlerAttacker; //bank that effects get applied on gBattleCommunication[MOVE_EFFECT_BYTE] &= ~(EffectAffectsUser); AffectsUser = EffectAffectsUser; - gBattleStruct->scriptingActive = gBankTarget; //theoretically the attacker + gBattleStruct->scriptingActive = gBattlerTarget; //theoretically the attacker } else { - gEffectBank = gBankTarget; - gBattleStruct->scriptingActive = gBankAttacker; + gEffectBattler = gBattlerTarget; + gBattleStruct->scriptingActive = gBattlerAttacker; } - if (gBattleMons[gEffectBank].ability == ABILITY_SHIELD_DUST && !(gHitMarker & HITMARKER_IGNORE_SAFEGUARD) && + if (gBattleMons[gEffectBattler].ability == ABILITY_SHIELD_DUST && !(gHitMarker & HITMARKER_IGNORE_SAFEGUARD) && !primary && gBattleCommunication[MOVE_EFFECT_BYTE] <= 9) {gBattlescriptCurrInstr++; return;} - if (gSideAffecting[GetBattlerPosition(gEffectBank) & 1] & SIDE_STATUS_SAFEGUARD && !(gHitMarker & HITMARKER_IGNORE_SAFEGUARD) && + if (gSideAffecting[GetBattlerPosition(gEffectBattler) & 1] & SIDE_STATUS_SAFEGUARD && !(gHitMarker & HITMARKER_IGNORE_SAFEGUARD) && !primary && gBattleCommunication[MOVE_EFFECT_BYTE] <= 7) {gBattlescriptCurrInstr++; return;} //make sure at least ONE HP except payday and thief - if (gBattleMons[gEffectBank].hp == 0 && gBattleCommunication[MOVE_EFFECT_BYTE] != 0xB && gBattleCommunication[MOVE_EFFECT_BYTE] != 0x1F) + if (gBattleMons[gEffectBattler].hp == 0 && gBattleCommunication[MOVE_EFFECT_BYTE] != 0xB && gBattleCommunication[MOVE_EFFECT_BYTE] != 0x1F) {gBattlescriptCurrInstr++; return;} - if (gBattleMons[gEffectBank].status2 & STATUS2_SUBSTITUTE && AffectsUser != EffectAffectsUser) + if (gBattleMons[gEffectBattler].status2 & STATUS2_SUBSTITUTE && AffectsUser != EffectAffectsUser) {gBattlescriptCurrInstr++; return;} if (gBattleCommunication[MOVE_EFFECT_BYTE] <= 6) //status change @@ -2402,25 +2400,25 @@ void SetMoveEffect(bool8 primary, u8 certainArg) { case STATUS_SLEEP: //check active uproar - if (gBattleMons[gEffectBank].ability != ABILITY_SOUNDPROOF) + if (gBattleMons[gEffectBattler].ability != ABILITY_SOUNDPROOF) { for (gActiveBattler = 0; gActiveBattler < gBattlersCount && !(gBattleMons[gActiveBattler].status2 & STATUS2_UPROAR); gActiveBattler++) {} } else gActiveBattler = gBattlersCount; - if (gBattleMons[gEffectBank].status1) {break;} + if (gBattleMons[gEffectBattler].status1) {break;} if (gActiveBattler != gBattlersCount) {break;} //nice way of checking uproar... - if (gBattleMons[gEffectBank].ability == ABILITY_VITAL_SPIRIT) {break;} - if (gBattleMons[gEffectBank].ability == ABILITY_INSOMNIA) {break;} + if (gBattleMons[gEffectBattler].ability == ABILITY_VITAL_SPIRIT) {break;} + if (gBattleMons[gEffectBattler].ability == ABILITY_INSOMNIA) {break;} - CancelMultiTurnMoves(gEffectBank); + CancelMultiTurnMoves(gEffectBattler); StatusChanged = 1; break; case STATUS_POISON: - if (gBattleMons[gEffectBank].ability == ABILITY_IMMUNITY && (primary == 1 || certain == 0x80)) + if (gBattleMons[gEffectBattler].ability == ABILITY_IMMUNITY && (primary == 1 || certain == 0x80)) { gLastUsedAbility = ABILITY_IMMUNITY; - RecordAbilityBattle(gEffectBank, ABILITY_IMMUNITY); + RecordAbilityBattle(gEffectBattler, ABILITY_IMMUNITY); BattleScriptPush(gBattlescriptCurrInstr + 1); //_0801E664: gBattlescriptCurrInstr = BattleScript_PSNPrevention; @@ -2433,7 +2431,7 @@ void SetMoveEffect(bool8 primary, u8 certainArg) else {gBattleCommunication[MULTISTRING_CHOOSER] = 0; return;} } - if ((gBattleMons[gEffectBank].type1 == TYPE_POISON || gBattleMons[gEffectBank].type2 == TYPE_POISON || gBattleMons[gEffectBank].type1 == TYPE_STEEL || gBattleMons[gEffectBank].type2 == TYPE_STEEL) + if ((gBattleMons[gEffectBattler].type1 == TYPE_POISON || gBattleMons[gEffectBattler].type2 == TYPE_POISON || gBattleMons[gEffectBattler].type1 == TYPE_STEEL || gBattleMons[gEffectBattler].type2 == TYPE_STEEL) && !(gHitMarker & HITMARKER_IGNORE_SAFEGUARD) && (primary == 1 || certain == 0x80)) { BattleScriptPush(gBattlescriptCurrInstr + 1); @@ -2441,20 +2439,20 @@ void SetMoveEffect(bool8 primary, u8 certainArg) gBattleCommunication[MULTISTRING_CHOOSER] = 2; return; } - if (gBattleMons[gEffectBank].type1 == TYPE_POISON) {break;} - if (gBattleMons[gEffectBank].type2 == TYPE_POISON) {break;} - if (gBattleMons[gEffectBank].type1 == TYPE_STEEL) {break;} - if (gBattleMons[gEffectBank].type2 == TYPE_STEEL) {break;} - if (gBattleMons[gEffectBank].status1) {break;} - if (gBattleMons[gEffectBank].ability == ABILITY_IMMUNITY) {break;} + if (gBattleMons[gEffectBattler].type1 == TYPE_POISON) {break;} + if (gBattleMons[gEffectBattler].type2 == TYPE_POISON) {break;} + if (gBattleMons[gEffectBattler].type1 == TYPE_STEEL) {break;} + if (gBattleMons[gEffectBattler].type2 == TYPE_STEEL) {break;} + if (gBattleMons[gEffectBattler].status1) {break;} + if (gBattleMons[gEffectBattler].ability == ABILITY_IMMUNITY) {break;} StatusChanged = 1; break; case STATUS_BURN: - if (gBattleMons[gEffectBank].ability == ABILITY_WATER_VEIL && (primary == 1 || certain == 0x80)) + if (gBattleMons[gEffectBattler].ability == ABILITY_WATER_VEIL && (primary == 1 || certain == 0x80)) { gLastUsedAbility = ABILITY_WATER_VEIL; - RecordAbilityBattle(gEffectBank, ABILITY_WATER_VEIL); + RecordAbilityBattle(gEffectBattler, ABILITY_WATER_VEIL); BattleScriptPush(gBattlescriptCurrInstr + 1); //_0801E664: gBattlescriptCurrInstr = BattleScript_BRNPrevention; @@ -2467,7 +2465,7 @@ void SetMoveEffect(bool8 primary, u8 certainArg) else {gBattleCommunication[MULTISTRING_CHOOSER] = 0; return;} } - if ((gBattleMons[gEffectBank].type1 == TYPE_FIRE || gBattleMons[gEffectBank].type2 == TYPE_FIRE) + if ((gBattleMons[gEffectBattler].type1 == TYPE_FIRE || gBattleMons[gEffectBattler].type2 == TYPE_FIRE) && !(gHitMarker & HITMARKER_IGNORE_SAFEGUARD) && (primary == 1 || certain == 0x80)) { BattleScriptPush(gBattlescriptCurrInstr + 1); @@ -2475,30 +2473,30 @@ void SetMoveEffect(bool8 primary, u8 certainArg) gBattleCommunication[MULTISTRING_CHOOSER] = 2; return; } - if (gBattleMons[gEffectBank].type1 == TYPE_FIRE) {break;} - if (gBattleMons[gEffectBank].type2 == TYPE_FIRE) {break;} - if (gBattleMons[gEffectBank].ability == ABILITY_WATER_VEIL) {break;} - if (gBattleMons[gEffectBank].status1 == 0) {break;} + if (gBattleMons[gEffectBattler].type1 == TYPE_FIRE) {break;} + if (gBattleMons[gEffectBattler].type2 == TYPE_FIRE) {break;} + if (gBattleMons[gEffectBattler].ability == ABILITY_WATER_VEIL) {break;} + if (gBattleMons[gEffectBattler].status1 == 0) {break;} StatusChanged = 1; break; case STATUS_FREEZE: if (WEATHER_HAS_EFFECT && gBattleWeather & WEATHER_SUN_ANY) {NoSunCanFreeze = 0;} - if (gBattleMons[gEffectBank].type1 == TYPE_ICE) {break;} - if (gBattleMons[gEffectBank].type2 == TYPE_ICE) {break;} - if (gBattleMons[gEffectBank].status1) {break;} + if (gBattleMons[gEffectBattler].type1 == TYPE_ICE) {break;} + if (gBattleMons[gEffectBattler].type2 == TYPE_ICE) {break;} + if (gBattleMons[gEffectBattler].status1) {break;} if (NoSunCanFreeze == 0) {break;} - if (gBattleMons[gEffectBank].ability == ABILITY_MAGMA_ARMOR) {break;} + if (gBattleMons[gEffectBattler].ability == ABILITY_MAGMA_ARMOR) {break;} - CancelMultiTurnMoves(gEffectBank); + CancelMultiTurnMoves(gEffectBattler); StatusChanged = 1; break; case STATUS_PARALYSIS: - if (gBattleMons[gEffectBank].ability == ABILITY_LIMBER) + if (gBattleMons[gEffectBattler].ability == ABILITY_LIMBER) { if ((primary == 1 || certain == 0x80)) { gLastUsedAbility = ABILITY_LIMBER; - RecordAbilityBattle(gEffectBank, ABILITY_LIMBER); + RecordAbilityBattle(gEffectBattler, ABILITY_LIMBER); BattleScriptPush(gBattlescriptCurrInstr + 1); //_0801E664: gBattlescriptCurrInstr = BattleScript_PRLZPrevention; @@ -2513,14 +2511,14 @@ void SetMoveEffect(bool8 primary, u8 certainArg) } else {break;} } - if (gBattleMons[gEffectBank].status1) {break;} + if (gBattleMons[gEffectBattler].status1) {break;} StatusChanged = 1; break; case STATUS_TOXIC_POISON: - if (gBattleMons[gEffectBank].ability == ABILITY_IMMUNITY && (primary == 1 || certain == 0x80)) + if (gBattleMons[gEffectBattler].ability == ABILITY_IMMUNITY && (primary == 1 || certain == 0x80)) { gLastUsedAbility = ABILITY_IMMUNITY; - RecordAbilityBattle(gEffectBank, ABILITY_IMMUNITY); + RecordAbilityBattle(gEffectBattler, ABILITY_IMMUNITY); BattleScriptPush(gBattlescriptCurrInstr + 1); //_0801E664: gBattlescriptCurrInstr = BattleScript_PSNPrevention; @@ -2533,7 +2531,7 @@ void SetMoveEffect(bool8 primary, u8 certainArg) else {gBattleCommunication[MULTISTRING_CHOOSER] = 0; return;} } - if ((gBattleMons[gEffectBank].type1 == TYPE_POISON || gBattleMons[gEffectBank].type2 == TYPE_POISON || gBattleMons[gEffectBank].type1 == TYPE_STEEL || gBattleMons[gEffectBank].type2 == TYPE_STEEL) + if ((gBattleMons[gEffectBattler].type1 == TYPE_POISON || gBattleMons[gEffectBattler].type2 == TYPE_POISON || gBattleMons[gEffectBattler].type1 == TYPE_STEEL || gBattleMons[gEffectBattler].type2 == TYPE_STEEL) && !(gHitMarker & HITMARKER_IGNORE_SAFEGUARD) && (primary == 1 || certain == 0x80)) { BattleScriptPush(gBattlescriptCurrInstr + 1); @@ -2541,14 +2539,14 @@ void SetMoveEffect(bool8 primary, u8 certainArg) gBattleCommunication[MULTISTRING_CHOOSER] = 2; return; } - if (gBattleMons[gEffectBank].status1) {break;} - if (gBattleMons[gEffectBank].type1 != TYPE_POISON && - gBattleMons[gEffectBank].type2 != TYPE_POISON && - gBattleMons[gEffectBank].type1 != TYPE_STEEL && - gBattleMons[gEffectBank].type2 != TYPE_STEEL) + if (gBattleMons[gEffectBattler].status1) {break;} + if (gBattleMons[gEffectBattler].type1 != TYPE_POISON && + gBattleMons[gEffectBattler].type2 != TYPE_POISON && + gBattleMons[gEffectBattler].type1 != TYPE_STEEL && + gBattleMons[gEffectBattler].type2 != TYPE_STEEL) { - if (gBattleMons[gEffectBank].ability == ABILITY_IMMUNITY) {break;} - gBattleMons[gEffectBank].status1 &= ~(0x9); //This gets (correctly) optimized out... + if (gBattleMons[gEffectBattler].ability == ABILITY_IMMUNITY) {break;} + gBattleMons[gEffectBattler].status1 &= ~(0x9); //This gets (correctly) optimized out... StatusChanged = 1; break; } @@ -2560,13 +2558,13 @@ void SetMoveEffect(bool8 primary, u8 certainArg) { BattleScriptPush(gBattlescriptCurrInstr + 1); if (sStatusFlagsForMoveEffects[gBattleCommunication[MOVE_EFFECT_BYTE]] == STATUS_SLEEP) - gBattleMons[gEffectBank].status1 |= ((Random() & 3) + 2); + gBattleMons[gEffectBattler].status1 |= ((Random() & 3) + 2); else - gBattleMons[gEffectBank].status1 |= sStatusFlagsForMoveEffects[gBattleCommunication[MOVE_EFFECT_BYTE]]; + gBattleMons[gEffectBattler].status1 |= sStatusFlagsForMoveEffects[gBattleCommunication[MOVE_EFFECT_BYTE]]; gBattlescriptCurrInstr = gMoveEffectBS_Ptrs[gBattleCommunication[MOVE_EFFECT_BYTE]]; - gActiveBattler = gEffectBank; - EmitSetMonData(0, REQUEST_STATUS_BATTLE, 0, 4, &gBattleMons[gEffectBank].status1); - MarkBufferBankForExecution(gActiveBattler); + gActiveBattler = gEffectBattler; + BtlController_EmitSetMonData(0, REQUEST_STATUS_BATTLE, 0, 4, &gBattleMons[gEffectBattler].status1); + MarkBattlerForControllerExec(gActiveBattler); if (gHitMarker & HITMARKER_IGNORE_SAFEGUARD) { gBattleCommunication[MULTISTRING_CHOOSER] = 1; @@ -2586,7 +2584,7 @@ void SetMoveEffect(bool8 primary, u8 certainArg) } else { - if (gBattleMons[gEffectBank].status2 & sStatusFlagsForMoveEffects[gBattleCommunication[MOVE_EFFECT_BYTE]]) + if (gBattleMons[gEffectBattler].status2 & sStatusFlagsForMoveEffects[gBattleCommunication[MOVE_EFFECT_BYTE]]) { gBattlescriptCurrInstr++; return; @@ -2594,21 +2592,21 @@ void SetMoveEffect(bool8 primary, u8 certainArg) switch (sStatusFlagsForMoveEffects[gBattleCommunication[MOVE_EFFECT_BYTE]]) { case 7: //confusion - if (gBattleMons[gEffectBank].ability == ABILITY_OWN_TEMPO) + if (gBattleMons[gEffectBattler].ability == ABILITY_OWN_TEMPO) {gBattlescriptCurrInstr++; return;} - if (gBattleMons[gEffectBank].status2 & STATUS2_CONFUSION) + if (gBattleMons[gEffectBattler].status2 & STATUS2_CONFUSION) {gBattlescriptCurrInstr++; return;} - gBattleMons[gEffectBank].status2 |= (((Random()) % 0x4)) + 2; + gBattleMons[gEffectBattler].status2 |= (((Random()) % 0x4)) + 2; BattleScriptPush(gBattlescriptCurrInstr + 1); gBattlescriptCurrInstr = gMoveEffectBS_Ptrs[gBattleCommunication[MOVE_EFFECT_BYTE]]; break; case 8: //flinch - if (gBattleMons[gEffectBank].ability == ABILITY_INNER_FOCUS) + if (gBattleMons[gEffectBattler].ability == ABILITY_INNER_FOCUS) { if (primary == 1 || certain == 0x80) { gLastUsedAbility = ABILITY_INNER_FOCUS; - RecordAbilityBattle(gEffectBank, ABILITY_INNER_FOCUS); + RecordAbilityBattle(gEffectBattler, ABILITY_INNER_FOCUS); gBattlescriptCurrInstr = BattleScript_FlinchPrevention; return; } @@ -2617,25 +2615,25 @@ void SetMoveEffect(bool8 primary, u8 certainArg) } else { - if (BankGetTurnOrder(gEffectBank) > gCurrentTurnActionNumber) - gBattleMons[gEffectBank].status2 |= sStatusFlagsForMoveEffects[gBattleCommunication[MOVE_EFFECT_BYTE]]; + if (BankGetTurnOrder(gEffectBattler) > gCurrentTurnActionNumber) + gBattleMons[gEffectBattler].status2 |= sStatusFlagsForMoveEffects[gBattleCommunication[MOVE_EFFECT_BYTE]]; gBattlescriptCurrInstr++; return; } break; case 10: //uproar - if (gBattleMons[gEffectBank].status2 & STATUS2_UPROAR) + if (gBattleMons[gEffectBattler].status2 & STATUS2_UPROAR) {gBattlescriptCurrInstr++; return;} - gBattleMons[gEffectBank].status2 |= STATUS2_MULTIPLETURNS; - gLockedMoves[gEffectBank] = gCurrentMove; - gBattleMons[gEffectBank].status2 |= ((Random() & 3) + 2) << 4; + gBattleMons[gEffectBattler].status2 |= STATUS2_MULTIPLETURNS; + gLockedMoves[gEffectBattler] = gCurrentMove; + gBattleMons[gEffectBattler].status2 |= ((Random() & 3) + 2) << 4; BattleScriptPush(gBattlescriptCurrInstr + 1); gBattlescriptCurrInstr = gMoveEffectBS_Ptrs[gBattleCommunication[MOVE_EFFECT_BYTE]]; break; case 11: //pay day - if (!(GetBattlerPosition(gBankAttacker) & 1)) + if (!(GetBattlerPosition(gBattlerAttacker) & 1)) { u16 PayDay = gPaydayMoney; - gPaydayMoney += (gBattleMons[gBankAttacker].level * 5); + gPaydayMoney += (gBattleMons[gBattlerAttacker].level * 5); if (PayDay > gPaydayMoney) gPaydayMoney = 0xFFFF; } @@ -2643,24 +2641,24 @@ void SetMoveEffect(bool8 primary, u8 certainArg) gBattlescriptCurrInstr = gMoveEffectBS_Ptrs[gBattleCommunication[MOVE_EFFECT_BYTE]]; break; case 9: //tri attack - if (gBattleMons[gEffectBank].status1) + if (gBattleMons[gEffectBattler].status1) {gBattlescriptCurrInstr++; return;} gBattleCommunication[MOVE_EFFECT_BYTE] = Random() % 3 + 3; SetMoveEffect(0, 0); break; case 12: //charging move - gBattleMons[gEffectBank].status2 |= STATUS2_MULTIPLETURNS; - gLockedMoves[gEffectBank] = gCurrentMove; - gProtectStructs[gEffectBank].chargingTurn = 1; + gBattleMons[gEffectBattler].status2 |= STATUS2_MULTIPLETURNS; + gLockedMoves[gEffectBattler] = gCurrentMove; + gProtectStructs[gEffectBattler].chargingTurn = 1; gBattlescriptCurrInstr++; break; case 13: //wrap - if (gBattleMons[gEffectBank].status2 & STATUS2_WRAPPED) + if (gBattleMons[gEffectBattler].status2 & STATUS2_WRAPPED) {gBattlescriptCurrInstr++; return;} - gBattleMons[gEffectBank].status2 |= ((Random() & 3) + 2) << 0xD; - gBattleStruct->wrappedMove[gEffectBank*2] = (u8)gCurrentMove; - (1 + gBattleStruct->wrappedMove)[gEffectBank*2] = gCurrentMove >> 8; //don't ask. - gBattleStruct->wrappedBy[gEffectBank] = gBankAttacker; + gBattleMons[gEffectBattler].status2 |= ((Random() & 3) + 2) << 0xD; + gBattleStruct->wrappedMove[gEffectBattler*2] = (u8)gCurrentMove; + (1 + gBattleStruct->wrappedMove)[gEffectBattler*2] = gCurrentMove >> 8; //don't ask. + gBattleStruct->wrappedBy[gEffectBattler] = gBattlerAttacker; BattleScriptPush(gBattlescriptCurrInstr + 1); gBattlescriptCurrInstr = gMoveEffectBS_Ptrs[gBattleCommunication[MOVE_EFFECT_BYTE]]; gBattleCommunication[MULTISTRING_CHOOSER] = 0; @@ -2716,62 +2714,62 @@ void SetMoveEffect(bool8 primary, u8 certainArg) } break; case 29: //recharge - gBattleMons[gEffectBank].status2 |= STATUS2_RECHARGE; - gDisableStructs[gEffectBank].rechargeCounter = 2; - gLockedMoves[gEffectBank] = gCurrentMove; + gBattleMons[gEffectBattler].status2 |= STATUS2_RECHARGE; + gDisableStructs[gEffectBattler].rechargeCounter = 2; + gLockedMoves[gEffectBattler] = gCurrentMove; gBattlescriptCurrInstr++; break; case 30: //rage - gBattleMons[gBankAttacker].status2 |= STATUS2_RAGE; + gBattleMons[gBattlerAttacker].status2 |= STATUS2_RAGE; gBattlescriptCurrInstr++; break; case 31: //item steal { - u8 side = GetBattlerSide(gBankAttacker); - if (GetBattlerSide(gBankAttacker) == 1 && !(gBattleTypeFlags & (BATTLE_TYPE_EREADER_TRAINER | BATTLE_TYPE_BATTLE_TOWER | BATTLE_TYPE_LINK)) && gTrainerBattleOpponent != 0x400) + u8 side = GetBattlerSide(gBattlerAttacker); + if (GetBattlerSide(gBattlerAttacker) == 1 && !(gBattleTypeFlags & (BATTLE_TYPE_EREADER_TRAINER | BATTLE_TYPE_BATTLE_TOWER | BATTLE_TYPE_LINK)) && gTrainerBattleOpponent != 0x400) {gBattlescriptCurrInstr++; return;} - if (!(gBattleTypeFlags & (BATTLE_TYPE_EREADER_TRAINER | BATTLE_TYPE_BATTLE_TOWER | BATTLE_TYPE_LINK)) && gTrainerBattleOpponent != 0x400 && (gWishFutureKnock.knockedOffPokes[side] & gBitTable[gBattlerPartyIndexes[gBankAttacker]])) + if (!(gBattleTypeFlags & (BATTLE_TYPE_EREADER_TRAINER | BATTLE_TYPE_BATTLE_TOWER | BATTLE_TYPE_LINK)) && gTrainerBattleOpponent != 0x400 && (gWishFutureKnock.knockedOffPokes[side] & gBitTable[gBattlerPartyIndexes[gBattlerAttacker]])) {gBattlescriptCurrInstr++; return;} - if (gBattleMons[gBankTarget].item && gBattleMons[gBankTarget].ability == ABILITY_STICKY_HOLD) + if (gBattleMons[gBattlerTarget].item && gBattleMons[gBattlerTarget].ability == ABILITY_STICKY_HOLD) { BattleScriptPushCursor(); gBattlescriptCurrInstr = BattleScript_NoItemSteal; - gLastUsedAbility = gBattleMons[gBankTarget].ability; - RecordAbilityBattle(gBankTarget, gLastUsedAbility); + gLastUsedAbility = gBattleMons[gBattlerTarget].ability; + RecordAbilityBattle(gBattlerTarget, gLastUsedAbility); return; } - if (gBattleMons[gBankAttacker].item) + if (gBattleMons[gBattlerAttacker].item) {gBattlescriptCurrInstr++; return;} - if (gBattleMons[gBankTarget].item == ITEM_ENIGMA_BERRY) + if (gBattleMons[gBattlerTarget].item == ITEM_ENIGMA_BERRY) {gBattlescriptCurrInstr++; return;} - if (gBattleMons[gBankTarget].item == 0) + if (gBattleMons[gBattlerTarget].item == 0) {gBattlescriptCurrInstr++; return;} - gLastUsedItem = gBattleMons[gBankTarget].item; - USED_HELD_ITEM(bank) = gLastUsedItem; - gBattleMons[gBankTarget].item = 0; + gLastUsedItem = gBattleMons[gBattlerTarget].item; + *USED_HELD_ITEM(gBattlerTarget) = gLastUsedItem; + gBattleMons[gBattlerTarget].item = 0; - gActiveBattler = gBankAttacker; - EmitSetMonData(0, REQUEST_HELDITEM_BATTLE, 0, 2, &gLastUsedItem); - MarkBufferBankForExecution(gBankAttacker); + gActiveBattler = gBattlerAttacker; + BtlController_EmitSetMonData(0, REQUEST_HELDITEM_BATTLE, 0, 2, &gLastUsedItem); + MarkBattlerForControllerExec(gBattlerAttacker); - gActiveBattler = gBankTarget; - EmitSetMonData(0, REQUEST_HELDITEM_BATTLE, 0, 2, &gBattleMons[gBankTarget].item); - MarkBufferBankForExecution(gBankTarget); + gActiveBattler = gBattlerTarget; + BtlController_EmitSetMonData(0, REQUEST_HELDITEM_BATTLE, 0, 2, &gBattleMons[gBattlerTarget].item); + MarkBattlerForControllerExec(gBattlerTarget); BattleScriptPush(gBattlescriptCurrInstr + 1); gBattlescriptCurrInstr = BattleScript_ItemSteal; - CHOICED_MOVE(gBankTarget) = 0; + *CHOICED_MOVE(gBattlerTarget) = 0; } break; case 32: //escape prevention - gBattleMons[gBankTarget].status2 |= STATUS2_RECHARGE; - gDisableStructs[gBankTarget].bankPreventingEscape = gBankAttacker; + gBattleMons[gBattlerTarget].status2 |= STATUS2_RECHARGE; + gDisableStructs[gBattlerTarget].bankPreventingEscape = gBattlerAttacker; gBattlescriptCurrInstr++; break; case 33: //nightmare - gBattleMons[gBankTarget].status2 |= STATUS2_NIGHTMARE; + gBattleMons[gBattlerTarget].status2 |= STATUS2_NIGHTMARE; gBattlescriptCurrInstr++; break; case 34: //ancientpower @@ -2783,12 +2781,12 @@ void SetMoveEffect(bool8 primary, u8 certainArg) gBattlescriptCurrInstr = BattleScript_RapidSpinAway; return; case 36: //paralysis removal - if (gBattleMons[gBankTarget].status1 & STATUS_PARALYSIS) + if (gBattleMons[gBattlerTarget].status1 & STATUS_PARALYSIS) { - gBattleMons[gBankTarget].status1 &= ~(STATUS_PARALYSIS); - gActiveBattler = gBankTarget; - EmitSetMonData(0, REQUEST_STATUS_BATTLE, 0, 4, &gBattleMons[gBankTarget].status1); - MarkBufferBankForExecution(gActiveBattler); + gBattleMons[gBattlerTarget].status1 &= ~(STATUS_PARALYSIS); + gActiveBattler = gBattlerTarget; + BtlController_EmitSetMonData(0, REQUEST_STATUS_BATTLE, 0, 4, &gBattleMons[gBattlerTarget].status1); + MarkBattlerForControllerExec(gActiveBattler); BattleScriptPush(gBattlescriptCurrInstr + 1); gBattlescriptCurrInstr = BattleScript_TargetPRLZHeal; } @@ -2807,37 +2805,37 @@ void SetMoveEffect(bool8 primary, u8 certainArg) gBattlescriptCurrInstr = gMoveEffectBS_Ptrs[gBattleCommunication[MOVE_EFFECT_BYTE]]; break; case 53: //thrash - if (!(gBattleMons[gEffectBank].status2 & STATUS2_LOCK_CONFUSE)) + if (!(gBattleMons[gEffectBattler].status2 & STATUS2_LOCK_CONFUSE)) { - gBattleMons[gEffectBank].status2 |= STATUS2_MULTIPLETURNS; - gLockedMoves[gEffectBank] = gCurrentMove; - gBattleMons[gEffectBank].status2 |= (((Random() & 1) + 2) << 0xA); + gBattleMons[gEffectBattler].status2 |= STATUS2_MULTIPLETURNS; + gLockedMoves[gEffectBattler] = gCurrentMove; + gBattleMons[gEffectBattler].status2 |= (((Random() & 1) + 2) << 0xA); } else {gBattlescriptCurrInstr++; return;} break; case 54: //knock off - if (gBattleMons[gEffectBank].ability == ABILITY_STICKY_HOLD) + if (gBattleMons[gEffectBattler].ability == ABILITY_STICKY_HOLD) { - if (gBattleMons[gEffectBank].item == 0) + if (gBattleMons[gEffectBattler].item == 0) {gBattlescriptCurrInstr++; return;} gLastUsedAbility = ABILITY_STICKY_HOLD; gBattlescriptCurrInstr = BattleScript_NoItemSteal; - RecordAbilityBattle(gEffectBank, ABILITY_STICKY_HOLD); + RecordAbilityBattle(gEffectBattler, ABILITY_STICKY_HOLD); return; } - if (gBattleMons[gEffectBank].item == 0) + if (gBattleMons[gEffectBattler].item == 0) {gBattlescriptCurrInstr++; return;} else { - u8 side = GetBattlerSide(gEffectBank); - gLastUsedItem = gBattleMons[gEffectBank].item; - gBattleMons[gEffectBank].item = 0; - gWishFutureKnock.knockedOffPokes[side] |= gBitTable[gBattlerPartyIndexes[gEffectBank]]; + u8 side = GetBattlerSide(gEffectBattler); + gLastUsedItem = gBattleMons[gEffectBattler].item; + gBattleMons[gEffectBattler].item = 0; + gWishFutureKnock.knockedOffPokes[side] |= gBitTable[gBattlerPartyIndexes[gEffectBattler]]; BattleScriptPush(gBattlescriptCurrInstr + 1); gBattlescriptCurrInstr = BattleScript_KnockedOff; - CHOICED_MOVE(gEffectBank) = 0; + *CHOICED_MOVE(gEffectBattler) = 0; } break; case 59: //overheat @@ -2874,8 +2872,8 @@ void SetMoveEffect(bool8 primary, u8 certainArg) adds r7, r1, 0\n\ cmp r0, 0\n\ beq _0801E444\n\ - ldr r2, _0801E434 @ =gEffectBank\n\ - ldr r0, _0801E438 @ =gBankAttacker\n\ + ldr r2, _0801E434 @ =gEffectBattler\n\ + ldr r0, _0801E438 @ =gBattlerAttacker\n\ ldrb r0, [r0]\n\ strb r0, [r2]\n\ movs r0, 0xBF\n\ @@ -2883,21 +2881,21 @@ void SetMoveEffect(bool8 primary, u8 certainArg) strb r0, [r7, 0x3]\n\ movs r6, 0x40\n\ ldr r0, _0801E43C @ =gSharedMem\n\ - ldr r1, _0801E440 @ =gBankTarget\n\ + ldr r1, _0801E440 @ =gBattlerTarget\n\ b _0801E450\n\ .align 2, 0\n\ _0801E430: .4byte gBattleCommunication\n\ -_0801E434: .4byte gEffectBank\n\ -_0801E438: .4byte gBankAttacker\n\ +_0801E434: .4byte gEffectBattler\n\ +_0801E438: .4byte gBattlerAttacker\n\ _0801E43C: .4byte gSharedMem\n\ -_0801E440: .4byte gBankTarget\n\ +_0801E440: .4byte gBattlerTarget\n\ _0801E444:\n\ - ldr r2, _0801E538 @ =gEffectBank\n\ - ldr r0, _0801E53C @ =gBankTarget\n\ + ldr r2, _0801E538 @ =gEffectBattler\n\ + ldr r0, _0801E53C @ =gBattlerTarget\n\ ldrb r0, [r0]\n\ strb r0, [r2]\n\ ldr r0, _0801E540 @ =gSharedMem\n\ - ldr r1, _0801E544 @ =gBankAttacker\n\ + ldr r1, _0801E544 @ =gBattlerAttacker\n\ _0801E450:\n\ ldrb r1, [r1]\n\ ldr r3, _0801E548 @ =0x00016003\n\ @@ -2957,7 +2955,7 @@ _0801E48A:\n\ bl _0801F5DC\n\ _0801E4C4:\n\ ldr r3, _0801E54C @ =gBattleMons\n\ - ldr r2, _0801E538 @ =gEffectBank\n\ + ldr r2, _0801E538 @ =gEffectBattler\n\ ldrb r1, [r2]\n\ movs r0, 0x58\n\ muls r0, r1\n\ @@ -3018,10 +3016,10 @@ _0801E528:\n\ _0801E536:\n\ b _0801EA14\n\ .align 2, 0\n\ -_0801E538: .4byte gEffectBank\n\ -_0801E53C: .4byte gBankTarget\n\ +_0801E538: .4byte gEffectBattler\n\ +_0801E53C: .4byte gBattlerTarget\n\ _0801E540: .4byte gSharedMem\n\ -_0801E544: .4byte gBankAttacker\n\ +_0801E544: .4byte gBattlerAttacker\n\ _0801E548: .4byte 0x00016003\n\ _0801E54C: .4byte gBattleMons\n\ _0801E550: .4byte gHitMarker\n\ @@ -3404,7 +3402,7 @@ _0801E7EA:\n\ str r1, [sp, 0x4]\n\ _0801E826:\n\ ldr r4, _0801E880 @ =gBattleMons\n\ - ldr r0, _0801E884 @ =gEffectBank\n\ + ldr r0, _0801E884 @ =gEffectBattler\n\ ldrb r3, [r0]\n\ movs r0, 0x58\n\ adds r2, r3, 0\n\ @@ -3452,7 +3450,7 @@ _0801E86E:\n\ .align 2, 0\n\ _0801E87C: .4byte gBattleWeather\n\ _0801E880: .4byte gBattleMons\n\ -_0801E884: .4byte gEffectBank\n\ +_0801E884: .4byte gEffectBattler\n\ _0801E888:\n\ mov r0, r8\n\ ldrb r1, [r0]\n\ @@ -3667,7 +3665,7 @@ _0801EA1C:\n\ bne _0801EA70\n\ bl Random\n\ ldr r2, _0801EA68 @ =gBattleMons\n\ - ldr r1, _0801EA6C @ =gEffectBank\n\ + ldr r1, _0801EA6C @ =gEffectBattler\n\ ldrb r3, [r1]\n\ movs r1, 0x58\n\ muls r3, r1\n\ @@ -3686,10 +3684,10 @@ _0801EA5C: .4byte gBattlescriptCurrInstr\n\ _0801EA60: .4byte sStatusFlagsForMoveEffects\n\ _0801EA64: .4byte gBattleCommunication\n\ _0801EA68: .4byte gBattleMons\n\ -_0801EA6C: .4byte gEffectBank\n\ +_0801EA6C: .4byte gEffectBattler\n\ _0801EA70:\n\ ldr r2, _0801EAD4 @ =gBattleMons\n\ - ldr r0, _0801EAD8 @ =gEffectBank\n\ + ldr r0, _0801EAD8 @ =gEffectBattler\n\ ldrb r1, [r0]\n\ movs r0, 0x58\n\ muls r1, r0\n\ @@ -3708,7 +3706,7 @@ _0801EA84:\n\ ldr r0, [r0]\n\ str r0, [r2]\n\ ldr r4, _0801EAE8 @ =gActiveBattler\n\ - ldr r1, _0801EAD8 @ =gEffectBank\n\ + ldr r1, _0801EAD8 @ =gEffectBattler\n\ ldrb r0, [r1]\n\ strb r0, [r4]\n\ ldrb r1, [r1]\n\ @@ -3721,9 +3719,9 @@ _0801EA84:\n\ movs r1, 0x28\n\ movs r2, 0\n\ movs r3, 0x4\n\ - bl EmitSetMonData\n\ + bl BtlController_EmitSetMonData\n\ ldrb r0, [r4]\n\ - bl MarkBufferBankForExecution\n\ + bl MarkBattlerForControllerExec\n\ ldr r2, _0801EAF0 @ =gHitMarker\n\ ldr r1, [r2]\n\ movs r0, 0x80\n\ @@ -3739,7 +3737,7 @@ _0801EA84:\n\ b _0801EAFA\n\ .align 2, 0\n\ _0801EAD4: .4byte gBattleMons\n\ -_0801EAD8: .4byte gEffectBank\n\ +_0801EAD8: .4byte gEffectBattler\n\ _0801EADC: .4byte gBattlescriptCurrInstr\n\ _0801EAE0: .4byte gMoveEffectBS_Ptrs\n\ _0801EAE4: .4byte gBattleCommunication\n\ @@ -4046,7 +4044,7 @@ _0801EDD0: .4byte gBattlescriptCurrInstr\n\ _0801EDD4: .4byte gMoveEffectBS_Ptrs\n\ _0801EDD8: .4byte gBattleCommunication\n\ _0801EDDC:\n\ - ldr r5, _0801EE30 @ =gBankAttacker\n\ + ldr r5, _0801EE30 @ =gBattlerAttacker\n\ ldrb r0, [r5]\n\ bl GetBattlerPosition\n\ movs r1, 0x1\n\ @@ -4086,7 +4084,7 @@ _0801EE14:\n\ ldr r0, [r0]\n\ bl _0801F5F8\n\ .align 2, 0\n\ -_0801EE30: .4byte gBankAttacker\n\ +_0801EE30: .4byte gBattlerAttacker\n\ _0801EE34: .4byte gPaydayMoney\n\ _0801EE38: .4byte gBattleMons\n\ _0801EE3C: .4byte 0x0000ffff\n\ @@ -4206,7 +4204,7 @@ _0801EEE8:\n\ ldr r3, _0801EF90 @ =0x00016020\n\ adds r0, r3\n\ adds r0, r2\n\ - ldr r1, _0801EF94 @ =gBankAttacker\n\ + ldr r1, _0801EF94 @ =gBattlerAttacker\n\ ldrb r1, [r1]\n\ strb r1, [r0]\n\ ldr r4, _0801EF98 @ =gBattlescriptCurrInstr\n\ @@ -4254,7 +4252,7 @@ _0801EF84: .4byte 0x00016004\n\ _0801EF88: .4byte gCurrentMove\n\ _0801EF8C: .4byte 0x00016005\n\ _0801EF90: .4byte 0x00016020\n\ -_0801EF94: .4byte gBankAttacker\n\ +_0801EF94: .4byte gBattlerAttacker\n\ _0801EF98: .4byte gBattlescriptCurrInstr\n\ _0801EF9C: .4byte gMoveEffectBS_Ptrs\n\ _0801EFA0: .4byte gBattleCommunication\n\ @@ -4477,7 +4475,7 @@ _0801F178: .4byte gDisableStructs\n\ _0801F17C: .4byte gLockedMoves\n\ _0801F180: .4byte gCurrentMove\n\ _0801F184:\n\ - ldr r0, _0801F1A0 @ =gBankAttacker\n\ + ldr r0, _0801F1A0 @ =gBattlerAttacker\n\ ldrb r1, [r0]\n\ movs r0, 0x58\n\ adds r2, r1, 0\n\ @@ -4493,9 +4491,9 @@ _0801F19A:\n\ str r0, [r2]\n\ b _0801F5DC\n\ .align 2, 0\n\ -_0801F1A0: .4byte gBankAttacker\n\ +_0801F1A0: .4byte gBattlerAttacker\n\ _0801F1A4:\n\ - ldr r4, _0801F254 @ =gBankAttacker\n\ + ldr r4, _0801F254 @ =gBattlerAttacker\n\ ldrb r0, [r4]\n\ bl GetBattlerSide\n\ lsls r0, 24\n\ @@ -4538,7 +4536,7 @@ _0801F1D8:\n\ ldrb r1, [r0]\n\ ldr r3, _0801F268 @ =gBitTable\n\ ldr r2, _0801F26C @ =gBattlerPartyIndexes\n\ - ldr r0, _0801F254 @ =gBankAttacker\n\ + ldr r0, _0801F254 @ =gBattlerAttacker\n\ ldrb r0, [r0]\n\ lsls r0, 1\n\ adds r0, r2\n\ @@ -4552,7 +4550,7 @@ _0801F1D8:\n\ b _0801F5DC\n\ _0801F214:\n\ ldr r2, _0801F270 @ =gBattleMons\n\ - ldr r1, _0801F274 @ =gBankTarget\n\ + ldr r1, _0801F274 @ =gBattlerTarget\n\ ldrb r0, [r1]\n\ movs r3, 0x58\n\ muls r0, r3\n\ @@ -4582,7 +4580,7 @@ _0801F214:\n\ bl RecordAbilityBattle\n\ b _0801F5FA\n\ .align 2, 0\n\ -_0801F254: .4byte gBankAttacker\n\ +_0801F254: .4byte gBattlerAttacker\n\ _0801F258: .4byte gBattleTypeFlags\n\ _0801F25C: .4byte 0x00000902\n\ _0801F260: .4byte gTrainerBattleOpponent\n\ @@ -4590,12 +4588,12 @@ _0801F264: .4byte gWishFutureKnock\n\ _0801F268: .4byte gBitTable\n\ _0801F26C: .4byte gBattlerPartyIndexes\n\ _0801F270: .4byte gBattleMons\n\ -_0801F274: .4byte gBankTarget\n\ +_0801F274: .4byte gBattlerTarget\n\ _0801F278: .4byte gBattlescriptCurrInstr\n\ _0801F27C: .4byte BattleScript_NoItemSteal\n\ _0801F280: .4byte gLastUsedAbility\n\ _0801F284:\n\ - ldr r4, _0801F340 @ =gBankAttacker\n\ + ldr r4, _0801F340 @ =gBattlerAttacker\n\ mov r10, r4\n\ ldrb r1, [r4]\n\ movs r0, 0x58\n\ @@ -4645,10 +4643,10 @@ _0801F2B6:\n\ movs r1, 0x2\n\ movs r2, 0\n\ movs r3, 0x2\n\ - bl EmitSetMonData\n\ + bl BtlController_EmitSetMonData\n\ mov r3, r10\n\ ldrb r0, [r3]\n\ - bl MarkBufferBankForExecution\n\ + bl MarkBattlerForControllerExec\n\ ldrb r0, [r7]\n\ strb r0, [r4]\n\ ldrb r0, [r7]\n\ @@ -4663,9 +4661,9 @@ _0801F2B6:\n\ movs r1, 0x2\n\ movs r2, 0\n\ movs r3, 0x2\n\ - bl EmitSetMonData\n\ + bl BtlController_EmitSetMonData\n\ ldrb r0, [r7]\n\ - bl MarkBufferBankForExecution\n\ + bl MarkBattlerForControllerExec\n\ ldr r4, _0801F350 @ =gBattlescriptCurrInstr\n\ ldr r0, [r4]\n\ adds r0, 0x1\n\ @@ -4688,7 +4686,7 @@ _0801F2B6:\n\ strb r6, [r0]\n\ b _0801F5FA\n\ .align 2, 0\n\ -_0801F340: .4byte gBankAttacker\n\ +_0801F340: .4byte gBattlerAttacker\n\ _0801F344: .4byte gSharedMem + 0x160F0\n\ _0801F348: .4byte gLastUsedItem\n\ _0801F34C: .4byte gActiveBattler\n\ @@ -4698,7 +4696,7 @@ _0801F358: .4byte 0xfffe9f10\n\ _0801F35C: .4byte 0x000160e8\n\ _0801F360: .4byte 0x000160e9\n\ _0801F364:\n\ - ldr r3, _0801F394 @ =gBankTarget\n\ + ldr r3, _0801F394 @ =gBattlerTarget\n\ ldrb r1, [r3]\n\ movs r0, 0x58\n\ adds r2, r1, 0\n\ @@ -4717,16 +4715,16 @@ _0801F364:\n\ subs r0, r1\n\ lsls r0, 2\n\ adds r0, r2\n\ - ldr r1, _0801F39C @ =gBankAttacker\n\ + ldr r1, _0801F39C @ =gBattlerAttacker\n\ ldrb r1, [r1]\n\ strb r1, [r0, 0x14]\n\ b _0801F5DC\n\ .align 2, 0\n\ -_0801F394: .4byte gBankTarget\n\ +_0801F394: .4byte gBattlerTarget\n\ _0801F398: .4byte gDisableStructs\n\ -_0801F39C: .4byte gBankAttacker\n\ +_0801F39C: .4byte gBattlerAttacker\n\ _0801F3A0:\n\ - ldr r0, _0801F3B8 @ =gBankTarget\n\ + ldr r0, _0801F3B8 @ =gBattlerTarget\n\ ldrb r1, [r0]\n\ movs r0, 0x58\n\ adds r2, r1, 0\n\ @@ -4739,7 +4737,7 @@ _0801F3A0:\n\ lsls r1, 20\n\ b _0801F19A\n\ .align 2, 0\n\ -_0801F3B8: .4byte gBankTarget\n\ +_0801F3B8: .4byte gBattlerTarget\n\ _0801F3BC:\n\ ldr r4, _0801F3CC @ =gBattlescriptCurrInstr\n\ ldr r0, [r4]\n\ @@ -4761,7 +4759,7 @@ _0801F3D4:\n\ _0801F3E4: .4byte gBattlescriptCurrInstr\n\ _0801F3E8: .4byte BattleScript_RapidSpinAway\n\ _0801F3EC:\n\ - ldr r6, _0801F43C @ =gBankTarget\n\ + ldr r6, _0801F43C @ =gBattlerTarget\n\ ldrb r0, [r6]\n\ movs r2, 0x58\n\ muls r0, r2\n\ @@ -4790,9 +4788,9 @@ _0801F406:\n\ movs r1, 0x28\n\ movs r2, 0\n\ movs r3, 0x4\n\ - bl EmitSetMonData\n\ + bl BtlController_EmitSetMonData\n\ ldrb r0, [r4]\n\ - bl MarkBufferBankForExecution\n\ + bl MarkBattlerForControllerExec\n\ ldr r4, _0801F444 @ =gBattlescriptCurrInstr\n\ ldr r0, [r4]\n\ adds r0, 0x1\n\ @@ -4800,7 +4798,7 @@ _0801F406:\n\ ldr r0, _0801F448 @ =BattleScript_TargetPRLZHeal\n\ b _0801F5F8\n\ .align 2, 0\n\ -_0801F43C: .4byte gBankTarget\n\ +_0801F43C: .4byte gBattlerTarget\n\ _0801F440: .4byte gActiveBattler\n\ _0801F444: .4byte gBattlescriptCurrInstr\n\ _0801F448: .4byte BattleScript_TargetPRLZHeal\n\ @@ -5021,7 +5019,7 @@ static void atk15_seteffectwithchance(void) { u32 PercentChance; - if (gBattleMons[gBankAttacker].ability == ABILITY_SERENE_GRACE) + if (gBattleMons[gBattlerAttacker].ability == ABILITY_SERENE_GRACE) PercentChance = gBattleMoves[gCurrentMove].secondaryEffectChance * 2; else PercentChance = gBattleMoves[gCurrentMove].secondaryEffectChance; @@ -5101,14 +5099,14 @@ static void atk19_tryfaintmon(void) if (gBattlescriptCurrInstr[1] == 1) { - gActiveBattler = gBankAttacker; - bank = gBankTarget; + gActiveBattler = gBattlerAttacker; + bank = gBattlerTarget; r4 = BattleScript_FaintAttacker; } else { - gActiveBattler = gBankTarget; - bank = gBankAttacker; + gActiveBattler = gBattlerTarget; + bank = gBattlerAttacker; r4 = BattleScript_FaintTarget; } if (!(gAbsentBattlerFlags & gBitTable[gActiveBattler]) @@ -5143,31 +5141,31 @@ static void atk19_tryfaintmon(void) gBattleResults.opponentFaintCounter++; gBattleResults.lastOpponentSpecies = gBattleMons[gActiveBattler].species; } - if ((gHitMarker & HITMARKER_DESTINYBOND) && gBattleMons[gBankAttacker].hp != 0) + if ((gHitMarker & HITMARKER_DESTINYBOND) && gBattleMons[gBattlerAttacker].hp != 0) { BattleScriptPush(gBattlescriptCurrInstr); gBattleMoveDamage = gBattleMons[bank].hp; gBattlescriptCurrInstr = BattleScript_DestinyBondTakesLife; } - if ((gStatuses3[gBankTarget] & STATUS3_GRUDGE) + if ((gStatuses3[gBattlerTarget] & STATUS3_GRUDGE) && !(gHitMarker & HITMARKER_GRUDGE) - && GetBattlerSide(gBankAttacker) != GetBattlerSide(gBankTarget) - && gBattleMons[gBankAttacker].hp != 0 + && GetBattlerSide(gBattlerAttacker) != GetBattlerSide(gBattlerTarget) + && gBattleMons[gBattlerAttacker].hp != 0 && gCurrentMove != MOVE_STRUGGLE) { - u8 moveIndex = ewram1608Carr(gBankAttacker); + u8 moveIndex = ewram1608Carr(gBattlerAttacker); - gBattleMons[gBankAttacker].pp[moveIndex] = 0; + gBattleMons[gBattlerAttacker].pp[moveIndex] = 0; BattleScriptPush(gBattlescriptCurrInstr); gBattlescriptCurrInstr = BattleScript_SelectingImprisionedMoveInPalace; - gActiveBattler = gBankAttacker; - EmitSetMonData(0, moveIndex + 9, 0, 1, &gBattleMons[gActiveBattler].pp[moveIndex]); - MarkBufferBankForExecution(gActiveBattler); + gActiveBattler = gBattlerAttacker; + BtlController_EmitSetMonData(0, moveIndex + 9, 0, 1, &gBattleMons[gActiveBattler].pp[moveIndex]); + MarkBattlerForControllerExec(gActiveBattler); gBattleTextBuff1[0] = 0xFD; gBattleTextBuff1[1] = 2; - gBattleTextBuff1[2] = gBattleMons[gBankAttacker].moves[moveIndex]; - gBattleTextBuff1[3] = gBattleMons[gBankAttacker].moves[moveIndex] >> 8; + gBattleTextBuff1[2] = gBattleMons[gBattlerAttacker].moves[moveIndex]; + gBattleTextBuff1[3] = gBattleMons[gBattlerAttacker].moves[moveIndex] >> 8; gBattleTextBuff1[4] = EOS; } } @@ -5180,11 +5178,11 @@ static void atk19_tryfaintmon(void) static void atk1A_dofaintanimation(void) { - if (gBattleExecBuffer == 0) + if (gBattleControllerExecFlags == 0) { gActiveBattler = GetBattleBank(T2_READ_8(gBattlescriptCurrInstr + 1)); - Emitcmd10(0); - MarkBufferBankForExecution(gActiveBattler); + BtlController_EmitFaintAnimation(0); + MarkBattlerForControllerExec(gActiveBattler); gBattlescriptCurrInstr += 2; } } @@ -5192,12 +5190,12 @@ static void atk1A_dofaintanimation(void) static void atk1B_cleareffectsonfaint(void) { //Clears things like attraction or trapping to other banks - if (gBattleExecBuffer == 0) + if (gBattleControllerExecFlags == 0) { gActiveBattler = GetBattleBank(T2_READ_8(gBattlescriptCurrInstr + 1)); gBattleMons[gActiveBattler].status1 = 0; - EmitSetMonData(0, REQUEST_STATUS_BATTLE, 0, 0x4, &gBattleMons[gActiveBattler].status1); - MarkBufferBankForExecution(gActiveBattler); + BtlController_EmitSetMonData(0, REQUEST_STATUS_BATTLE, 0, 0x4, &gBattleMons[gActiveBattler].status1); + MarkBattlerForControllerExec(gActiveBattler); UndoEffectsAfterFainting(); gBattlescriptCurrInstr += 2; } @@ -5232,7 +5230,7 @@ static void atk1E_jumpifability(void) void* jump_loc = T2_READ_PTR(gBattlescriptCurrInstr + 3); if (T2_READ_8(gBattlescriptCurrInstr + 1) == 8) { - bank = AbilityBattleEffects(ABILITYEFFECT_CHECK_BANK_SIDE, gBankAttacker, ability, 0, 0); + bank = AbilityBattleEffects(ABILITYEFFECT_CHECK_BANK_SIDE, gBattlerAttacker, ability, 0, 0); if (bank) { gLastUsedAbility = ability; @@ -5245,7 +5243,7 @@ static void atk1E_jumpifability(void) } else if (T2_READ_8(gBattlescriptCurrInstr + 1) == 9) { - bank = AbilityBattleEffects(ABILITYEFFECT_CHECK_OTHER_SIDE, gBankAttacker, ability, 0, 0); + bank = AbilityBattleEffects(ABILITYEFFECT_CHECK_OTHER_SIDE, gBattlerAttacker, ability, 0, 0); if (bank) { gLastUsedAbility = ability; @@ -5277,9 +5275,9 @@ static void atk1F_jumpifsideaffecting(void) u16 flags; void* jump_loc; if (T2_READ_8(gBattlescriptCurrInstr + 1) == 1) - side = GetBattlerPosition(gBankAttacker) & 1; + side = GetBattlerPosition(gBattlerAttacker) & 1; else - side = GetBattlerPosition(gBankTarget) & 1; + side = GetBattlerPosition(gBattlerTarget) & 1; flags = T2_READ_16(gBattlescriptCurrInstr + 2); jump_loc = T2_READ_PTR(gBattlescriptCurrInstr + 4); @@ -5443,7 +5441,7 @@ static void atk23_getexp(void) } // fall through case 2: // set exp value to the poke in expgetter_id and print message - if (gBattleExecBuffer == 0) + if (gBattleControllerExecFlags == 0) { item = GetMonData(&gPlayerParty[gBattleStruct->expGetterID], MON_DATA_HELD_ITEM); @@ -5530,7 +5528,7 @@ static void atk23_getexp(void) } break; case 3: // Set stats and give exp - if (gBattleExecBuffer == 0) + if (gBattleControllerExecFlags == 0) { gBattleBufferB[gBattleStruct->expGetterBank][0] = 0; if (GetMonData(&gPlayerParty[gBattleStruct->expGetterID], MON_DATA_HP) && GetMonData(&gPlayerParty[gBattleStruct->expGetterID], MON_DATA_LEVEL) != 100) @@ -5541,17 +5539,17 @@ static void atk23_getexp(void) gBattleResources_statsBeforeLvlUp->spd = GetMonData(&gPlayerParty[gBattleStruct->expGetterID], MON_DATA_SPEED); gBattleResources_statsBeforeLvlUp->spAtk = GetMonData(&gPlayerParty[gBattleStruct->expGetterID], MON_DATA_SPATK); gBattleResources_statsBeforeLvlUp->spDef = GetMonData(&gPlayerParty[gBattleStruct->expGetterID], MON_DATA_SPDEF); - + gActiveBattler = gBattleStruct->expGetterBank; - EmitExpBarUpdate(0, gBattleStruct->expGetterID, gBattleMoveDamage); - MarkBufferBankForExecution(gActiveBattler); + BtlController_EmitExpUpdate(0, gBattleStruct->expGetterID, gBattleMoveDamage); + MarkBattlerForControllerExec(gActiveBattler); } gBattleStruct->getexpStateTracker++; } break; case 4: // lvl up if necessary - if (gBattleExecBuffer == 0) + if (gBattleControllerExecFlags == 0) { gActiveBattler = gBattleStruct->expGetterBank; if (gBattleBufferB[gActiveBattler][0] == CONTROLLER_TWORETURNVALUES @@ -5618,7 +5616,7 @@ static void atk23_getexp(void) } break; case 6: // increment instruction - if (gBattleExecBuffer == 0) + if (gBattleControllerExecFlags == 0) { // not sure why gf clears the item and ability here gBattleMons[gBank1].item = 0; @@ -5634,7 +5632,7 @@ static void atk24(void) { u16 HP_count = 0; int i; - if (gBattleExecBuffer) {return;} + if (gBattleControllerExecFlags) {return;} for (i = 0; i < 6; i++) { @@ -5701,7 +5699,7 @@ static void atk24(void) mov r7, r8\n\ push {r7}\n\ movs r6, 0\n\ - ldr r0, _08020AF0 @ =gBattleExecBuffer\n\ + ldr r0, _08020AF0 @ =gBattleControllerExecFlags\n\ ldr r0, [r0]\n\ cmp r0, 0\n\ beq _080209C6\n\ @@ -5862,7 +5860,7 @@ _08020ADA:\n\ bgt _08020B1C\n\ b _08020B36\n\ .align 2, 0\n\ -_08020AF0: .4byte gBattleExecBuffer\n\ +_08020AF0: .4byte gBattleControllerExecFlags\n\ _08020AF4: .4byte gPlayerParty\n\ _08020AF8: .4byte gBattleOutcome\n\ _08020AFC: .4byte gEnemyParty\n\ @@ -5910,7 +5908,7 @@ _08020B46:\n\ _08020B50: .4byte gBattlescriptCurrInstr\n\ .syntax divided\n"); } -#endif +#endif // NONMATCHING static void MoveValuesCleanUp(void) { @@ -6209,7 +6207,7 @@ static void atk38_bicword(void) static void atk39_pause(void) { - if (gBattleExecBuffer == 0) + if (gBattleControllerExecFlags == 0) { u16 value = T2_READ_16(gBattlescriptCurrInstr + 1); if (++gPauseCounterBattle >= value) @@ -6222,19 +6220,19 @@ static void atk39_pause(void) static void atk3A_waitstate(void) { - if (gBattleExecBuffer == 0) + if (gBattleControllerExecFlags == 0) gBattlescriptCurrInstr++; } static void atk3B_healthbar_update(void) { if (!T2_READ_8(gBattlescriptCurrInstr + 1)) - gActiveBattler = gBankTarget; + gActiveBattler = gBattlerTarget; else - gActiveBattler = gBankAttacker; + gActiveBattler = gBattlerAttacker; - EmitHealthBarUpdate(0, gBattleMoveDamage); - MarkBufferBankForExecution(gActiveBattler); + BtlController_EmitHealthBarUpdate(0, gBattleMoveDamage); + MarkBattlerForControllerExec(gActiveBattler); gBattlescriptCurrInstr += 2; } @@ -6291,7 +6289,7 @@ static void atk43_jumpifabilitypresent(void) static void atk44_endselectionscript(void) { - ewram16060(gBankAttacker) = 1; + ewram16060(gBattlerAttacker) = 1; } static void atk45_playanimation(void) @@ -6305,8 +6303,8 @@ static void atk45_playanimation(void) || gBattlescriptCurrInstr[2] == B_ANIM_SNATCH_MOVE || gBattlescriptCurrInstr[2] == B_ANIM_SUBSTITUTE_FADE) { - EmitBattleAnimation(0, gBattlescriptCurrInstr[2], *argumentPtr); - MarkBufferBankForExecution(gActiveBattler); + BtlController_EmitBattleAnimation(0, gBattlescriptCurrInstr[2], *argumentPtr); + MarkBattlerForControllerExec(gActiveBattler); gBattlescriptCurrInstr += 7; } else if (gHitMarker & HITMARKER_NO_ANIMATIONS) @@ -6319,8 +6317,8 @@ static void atk45_playanimation(void) || gBattlescriptCurrInstr[2] == B_ANIM_SANDSTORM_CONTINUES || gBattlescriptCurrInstr[2] == B_ANIM_HAIL_CONTINUES) { - EmitBattleAnimation(0, gBattlescriptCurrInstr[2], *argumentPtr); - MarkBufferBankForExecution(gActiveBattler); + BtlController_EmitBattleAnimation(0, gBattlescriptCurrInstr[2], *argumentPtr); + MarkBattlerForControllerExec(gActiveBattler); gBattlescriptCurrInstr += 7; } else if (gStatuses3[gActiveBattler] & STATUS3_SEMI_INVULNERABLE) @@ -6329,8 +6327,8 @@ static void atk45_playanimation(void) } else { - EmitBattleAnimation(0, gBattlescriptCurrInstr[2], *argumentPtr); - MarkBufferBankForExecution(gActiveBattler); + BtlController_EmitBattleAnimation(0, gBattlescriptCurrInstr[2], *argumentPtr); + MarkBattlerForControllerExec(gActiveBattler); gBattlescriptCurrInstr += 7; } } @@ -6348,8 +6346,8 @@ static void atk46_playanimation2(void) // animation Id is stored in the first po || *animationIdPtr == B_ANIM_SNATCH_MOVE || *animationIdPtr == B_ANIM_SUBSTITUTE_FADE) { - EmitBattleAnimation(0, *animationIdPtr, *argumentPtr); - MarkBufferBankForExecution(gActiveBattler); + BtlController_EmitBattleAnimation(0, *animationIdPtr, *argumentPtr); + MarkBattlerForControllerExec(gActiveBattler); gBattlescriptCurrInstr += 10; } else if (gHitMarker & HITMARKER_NO_ANIMATIONS) @@ -6361,8 +6359,8 @@ static void atk46_playanimation2(void) // animation Id is stored in the first po || *animationIdPtr == B_ANIM_SANDSTORM_CONTINUES || *animationIdPtr == B_ANIM_HAIL_CONTINUES) { - EmitBattleAnimation(0, *animationIdPtr, *argumentPtr); - MarkBufferBankForExecution(gActiveBattler); + BtlController_EmitBattleAnimation(0, *animationIdPtr, *argumentPtr); + MarkBattlerForControllerExec(gActiveBattler); gBattlescriptCurrInstr += 10; } else if (gStatuses3[gActiveBattler] & STATUS3_SEMI_INVULNERABLE) @@ -6371,8 +6369,8 @@ static void atk46_playanimation2(void) // animation Id is stored in the first po } else { - EmitBattleAnimation(0, *animationIdPtr, *argumentPtr); - MarkBufferBankForExecution(gActiveBattler); + BtlController_EmitBattleAnimation(0, *animationIdPtr, *argumentPtr); + MarkBattlerForControllerExec(gActiveBattler); gBattlescriptCurrInstr += 10; } } @@ -6470,14 +6468,14 @@ static void atk48_playstatchangeanimation(void) stat_animID = 0x38; } if ((T2_READ_8(gBattlescriptCurrInstr + 3) & 2 && changeable_stats <= 1) - || changeable_stats == 0 || gBattleStruct->filler2[0] != 0) + || changeable_stats == 0 || gBattleStruct->unk160DC != 0) gBattlescriptCurrInstr += 4; else { - EmitBattleAnimation(0, 1, stat_animID); - MarkBufferBankForExecution(gActiveBattler); + BtlController_EmitBattleAnimation(0, 1, stat_animID); + MarkBattlerForControllerExec(gActiveBattler); if ((T2_READ_8(gBattlescriptCurrInstr + 3) & 4) && changeable_stats > 1) - gBattleStruct->filler2[0] = 1; + gBattleStruct->unk160DC = 1; gBattlescriptCurrInstr += 4; } } @@ -6708,10 +6706,10 @@ _08021790:\n\ movs r1, 0x1\n\ mov r2, r8\n\ str r3, [sp]\n\ - bl EmitBattleAnimation\n\ + bl BtlController_EmitBattleAnimation\n\ ldr r0, _080217D8 @ =gActiveBattler\n\ ldrb r0, [r0]\n\ - bl MarkBufferBankForExecution\n\ + bl MarkBattlerForControllerExec\n\ ldr r0, _080217DC @ =gBattlescriptCurrInstr\n\ ldr r0, [r0]\n\ ldrb r1, [r0, 0x3]\n\ @@ -6752,1456 +6750,304 @@ _080217E6:\n\ #endif // NONMATCHING -#ifdef NONMATCHING -static void atk49_moveend(void) +#define BattleScript_FlushMessageBox gUnknown_081D9B2D + +extern u8 BattleScript_RageIsBuilding[]; +extern u8 BattleScript_DefrostedViaFireMove[]; +extern u8 BattleScript_FlushMessageBox[]; + +// atk49, moveend cases +#define ATK49_RAGE 0 +#define ATK49_DEFROST 1 +#define ATK49_SYNCHRONIZE_TARGET 2 +#define ATK49_MOVE_END_ABILITIES 3 +#define ATK49_STATUS_IMMUNITY_ABILITIES 4 +#define ATK49_SYNCHRONIZE_ATTACKER 5 +#define ATK49_CHOICE_MOVE 6 +#define ATK49_CHANGED_ITEMS 7 +#define ATK49_ATTACKER_INVISIBLE 8 +#define ATK49_ATTACKER_VISIBLE 9 +#define ATK49_TARGET_VISIBLE 10 +#define ATK49_ITEM_EFFECTS_ALL 11 +#define ATK49_KINGSROCK_SHELLBELL 12 +#define ATK49_SUBSTITUTE 13 +#define ATK49_UPDATE_LAST_MOVES 14 +#define ATK49_MIRROR_MOVE 15 +#define ATK49_NEXT_TARGET 16 +#define ATK49_COUNT 17 + +void atk49_moveend(void) { int i; - int effect = 0; - u16 last_move = 0, *choiced_move_atk; - int arg1, arg2, hold_effect_atk, move_type; - if (gLastUsedMove != 0xFFFF) - last_move = gLastUsedMove; + bool32 effect = FALSE; + u16 moveType; + u8 holdEffectAtk; + u16 *choicedMoveAtk; + u8 arg1, arg2; arg1 = T2_READ_8(gBattlescriptCurrInstr + 1); arg2 = T2_READ_8(gBattlescriptCurrInstr + 2); - if (gBattleMons[gBankTarget].item == ITEM_ENIGMA_BERRY) - hold_effect_atk = gEnigmaBerries[gBankAttacker].holdEffect; - else - hold_effect_atk = ItemId_GetHoldEffect(gBattleMons[gBankTarget].item); - choiced_move_atk = (u16*)(gBankAttacker * (ewram_addr + 0x160E8)); - if (gBattleStruct->dynamicMoveType) - move_type = gBattleStruct->dynamicMoveType & 0x3F; + if (gBattleMons[gBattlerAttacker].item == ITEM_ENIGMA_BERRY) + holdEffectAtk = gEnigmaBerries[gBattlerAttacker].holdEffect; else - move_type = gBattleMoves[gCurrentMove].type; + holdEffectAtk = ItemId_GetHoldEffect(gBattleMons[gBattlerAttacker].item); + + choicedMoveAtk = &((u16*)(gSharedMem + 0x160E8))[gBattlerAttacker]; + GET_MOVE_TYPE(gCurrentMove, moveType); do { switch (gBattleStruct->cmd49StateTracker) { - case 0: //rage check - if (gBattleMons[gBankTarget].status2 & STATUS2_RAGE - && gBattleMons[gBankTarget].hp && gBankAttacker != gBankTarget - && GetBattlerSide(gBankAttacker) != GetBattlerSide(gBankTarget) - && !(gMoveResultFlags & MOVE_RESULT_NO_EFFECT) && TARGET_TURN_DAMAGED - && gBattleMoves[gCurrentMove].power && gBattleMons[gBankTarget].statStages[STAT_STAGE_ATK] <= 0xB) + case ATK49_RAGE: // rage check + if (gBattleMons[gBattlerTarget].status2 & STATUS2_RAGE + && gBattleMons[gBattlerTarget].hp != 0 && gBattlerAttacker != gBattlerTarget + && GetBattlerSide(gBattlerAttacker) != GetBattlerSide(gBattlerTarget) + && !(gMoveResultFlags & MOVE_RESULT_NO_EFFECT) && (gProtectStructs[gBattlerTarget].physicalDmg != 0 || gProtectStructs[gBattlerTarget].specialDmg != 0) + && gBattleMoves[gCurrentMove].power && gBattleMons[gBattlerTarget].statStages[STAT_STAGE_ATK] <= 0xB) { - gBattleMons[gBankTarget].statStages[STAT_STAGE_ATK]++; + gBattleMons[gBattlerTarget].statStages[STAT_STAGE_ATK]++; BattleScriptPushCursor(); gBattlescriptCurrInstr = BattleScript_RageIsBuilding; - effect = 1; + effect = TRUE; } gBattleStruct->cmd49StateTracker++; break; - case 1: //defrosting check - if (gBattleMons[gBankTarget].status1 & STATUS_FREEZE - && gBattleMons[gBankTarget].hp && gBankAttacker != gBankTarget - && gSpecialStatuses[gBankTarget].moveturnLostHP - && !(gMoveResultFlags & MOVE_RESULT_NO_EFFECT) && move_type == TYPE_FIRE) - { - gBattleMons[gBankTarget].status1 &= ~(STATUS_FREEZE); - gActiveBattler = gBankTarget; - EmitSetMonData(0, REQUEST_STATUS_BATTLE, 0, 4, &gBattleMons[gBankTarget].status1); - MarkBufferBankForExecution(gActiveBattler); + case ATK49_DEFROST: // defrosting check + if (gBattleMons[gBattlerTarget].status1 & STATUS_FREEZE + && gBattleMons[gBattlerTarget].hp && gBattlerAttacker != gBattlerTarget + && gSpecialStatuses[gBattlerTarget].specialDmg + && !(gMoveResultFlags & MOVE_RESULT_NO_EFFECT) && moveType == TYPE_FIRE) + { + gBattleMons[gBattlerTarget].status1 &= ~(STATUS_FREEZE); + gActiveBattler = gBattlerTarget; + BtlController_EmitSetMonData(0, REQUEST_STATUS_BATTLE, 0, 4, &gBattleMons[gBattlerTarget].status1); + MarkBattlerForControllerExec(gActiveBattler); BattleScriptPushCursor(); gBattlescriptCurrInstr = BattleScript_DefrostedViaFireMove; - effect = 1; + effect = TRUE; } gBattleStruct->cmd49StateTracker++; break; - case 2: //target synchronize - if (AbilityBattleEffects(ABILITYEFFECT_SYNCHRONIZE, gBankTarget, 0, 0, 0)) - effect = 1; + case ATK49_SYNCHRONIZE_TARGET: // target synchronize + if (AbilityBattleEffects(ABILITYEFFECT_SYNCHRONIZE, gBattlerTarget, 0, 0, 0)) + effect = TRUE; gBattleStruct->cmd49StateTracker++; break; - case 3: //contact abilities - if (AbilityBattleEffects(ABILITYEFFECT_CONTACT, gBankTarget, 0, 0, 0)) - effect = 1; + case ATK49_MOVE_END_ABILITIES: // Such as abilities activating on contact(Poison Spore, Rough Skin, etc.). + if (AbilityBattleEffects(ABILITYEFFECT_MOVE_END, gBattlerTarget, 0, 0, 0)) + effect = TRUE; gBattleStruct->cmd49StateTracker++; break; - case 4: //status immunities + case ATK49_STATUS_IMMUNITY_ABILITIES: //status immunities if (AbilityBattleEffects(ABILITYEFFECT_IMMUNITY, 0, 0, 0, 0)) - effect = 1; //it loops through 4 banks, so we increment after its done with all banks + effect = TRUE; //it loops through 4 banks, so we increment after its done with all banks else gBattleStruct->cmd49StateTracker++; break; - case 5: //attacker synchronize - if (AbilityBattleEffects(ABILITYEFFECT_ATK_SYNCHRONIZE, gBankAttacker, 0, 0, 0)) - effect = 1; + case ATK49_SYNCHRONIZE_ATTACKER: //attacker synchronize + if (AbilityBattleEffects(ABILITYEFFECT_ATK_SYNCHRONIZE, gBattlerAttacker, 0, 0, 0)) + effect = TRUE; gBattleStruct->cmd49StateTracker++; break; - case 6: //update choice band move - if (gHitMarker & HITMARKER_OBEYS && hold_effect_atk == HOLD_EFFECT_CHOICE_BAND - && gLastUsedMove != MOVE_STRUGGLE && (*choiced_move_atk == 0 || *choiced_move_atk == 0xFFF) - && gLastUsedMove != MOVE_BATON_PASS && !(gMoveResultFlags & MOVE_RESULT_NO_EFFECT)) + case ATK49_CHOICE_MOVE: //update choice band move + if (!(gHitMarker & HITMARKER_OBEYS) || holdEffectAtk != HOLD_EFFECT_CHOICE_BAND + || gChosenMove == MOVE_STRUGGLE || (*choicedMoveAtk != 0 && *choicedMoveAtk != 0xFFFF)) + goto LOOP; + if (gChosenMove == MOVE_BATON_PASS && !(gMoveResultFlags & MOVE_RESULT_FAILED)) { - *choiced_move_atk = gLastUsedMove; - for (i = 0; i < 4 && gBattleMons[gBankAttacker].moves[i] != *choiced_move_atk; i++){} + gBattleStruct->cmd49StateTracker++; + break; + } + *choicedMoveAtk = gChosenMove; + LOOP: + { + for (i = 0; i < 4; i++) + { + if (gBattleMons[gBattlerAttacker].moves[i] == *choicedMoveAtk) + break; + } if (i == 4) - *choiced_move_atk = 0; + *choicedMoveAtk = 0; + gBattleStruct->cmd49StateTracker++; + } + break; + case ATK49_CHANGED_ITEMS: // changed held items + for (i = 0; i < gBattlersCount; i++) + { + #define CHANGED_ITEM ((u16 *)(gSharedMem + 0x160F0)) + if (CHANGED_ITEM[i] != 0) + { + gBattleMons[i].item = CHANGED_ITEM[i]; + CHANGED_ITEM[i] = 0; + } + #undef CHANGED_ITEM + } + gBattleStruct->cmd49StateTracker++; + break; + case ATK49_ATTACKER_INVISIBLE: // make attacker sprite invisible + if (ItemBattleEffects(ITEMEFFECT_MOVE_END, 0, FALSE)) + effect = TRUE; + else + gBattleStruct->cmd49StateTracker++; + break; + case ATK49_ATTACKER_VISIBLE: // make attacker sprite visible + if (ItemBattleEffects(ITEMEFFECT_KINGSROCK_SHELLBELL, 0, FALSE)) + effect = TRUE; + gBattleStruct->cmd49StateTracker++; + break; + case ATK49_TARGET_VISIBLE: // make target sprite visible + if ((gStatuses3[gBattlerAttacker] & 0x400C0) && (gHitMarker & HITMARKER_NO_ANIMATIONS)) + { + gActiveBattler = gBattlerAttacker; + BtlController_EmitSpriteInvisibility(0, 1); + MarkBattlerForControllerExec(gActiveBattler); + } + gBattleStruct->cmd49StateTracker++; + break; + case ATK49_ITEM_EFFECTS_ALL: // item effects for all battlers + if (gMoveResultFlags & MOVE_RESULT_NO_EFFECT + || !(gStatuses3[gBattlerAttacker] & (STATUS3_SEMI_INVULNERABLE)) + || WasUnableToUseMove(gBattlerAttacker)) + { + gActiveBattler = gBattlerAttacker; + BtlController_EmitSpriteInvisibility(0, FALSE); + MarkBattlerForControllerExec(gActiveBattler); + gStatuses3[gBattlerAttacker] &= ~(STATUS3_SEMI_INVULNERABLE); + gSpecialStatuses[gBattlerAttacker].restoredBattlerSprite = 1; + } + gBattleStruct->cmd49StateTracker++; + break; + case ATK49_KINGSROCK_SHELLBELL: // king's rock and shell bell + if (!gSpecialStatuses[gBattlerTarget].restoredBattlerSprite && gBattlerTarget < gBattlersCount + && !(gStatuses3[gBattlerTarget] & STATUS3_SEMI_INVULNERABLE)) + { + gActiveBattler = gBattlerTarget; + BtlController_EmitSpriteInvisibility(0, FALSE); + MarkBattlerForControllerExec(gActiveBattler); + gStatuses3[gBattlerTarget] &= ~(STATUS3_SEMI_INVULNERABLE); } gBattleStruct->cmd49StateTracker++; break; - case 7: //changed held items + case ATK49_SUBSTITUTE: // update substitute for (i = 0; i < gBattlersCount; i++) { - #define CHANGED_ITEM (((*u16)(gSharedMem + 0x160F0))) - if (CHANGED_ITEM(i)) - gBattleMons[i].item = CHANGED_ITEM(i); + if (gDisableStructs[i].substituteHP == 0) + gBattleMons[i].status2 &= ~(STATUS2_SUBSTITUTE); } gBattleStruct->cmd49StateTracker++; break; - case 8: //make sprite invisible - if (gStatuses3[gBankAttacker] & (STATUS3_ON_AIR | STATUS3_UNDERGROUND | STATUS3_UNDERWATER) - && !(gHitMarker & HITMARKER_NO_ANIMATIONS)) + case ATK49_UPDATE_LAST_MOVES: + if (gHitMarker & HITMARKER_PURSUIT_TRAP) { - gActiveBattler = gBankAttacker; - EmitSpriteInvisibility(0, 1); - MarkBufferBankForExecution(gActiveBattler); + gActiveBattler = gBattlerAttacker; + gBattlerAttacker = gBattlerTarget; + gBattlerTarget = gActiveBattler; + gHitMarker &= ~(HITMARKER_PURSUIT_TRAP); + } + + if (gBattleMoves[gChosenMove].effect != 0x7F || (gMoveResultFlags & 0x29)) + gUnknown_02024C2C[gBattlerAttacker] = gChosenMove; + + if (!(gAbsentBattlerFlags & gBitTable[gBattlerAttacker]) + && !(gSharedMem[0x160A6] & gBitTable[gBattlerAttacker]) + && gBattleMoves[gChosenMove].effect != EFFECT_BATON_PASS) + { + if (gHitMarker & HITMARKER_OBEYS) + { + gLastUsedMove[gBattlerAttacker] = gChosenMove; + gUnknown_02024C4C[gBattlerAttacker] = gCurrentMove; + } + else + { + gLastUsedMove[gBattlerAttacker] = 0xFFFF; + gUnknown_02024C4C[gBattlerAttacker] = 0xFFFF; + } + + if (!(gHitMarker & HITMARKER_FAINTED(gBattlerTarget))) + gLastHitBy[gBattlerTarget] = gBattlerAttacker; + + if (gHitMarker & HITMARKER_OBEYS && !(gMoveResultFlags & MOVE_RESULT_NO_EFFECT)) + { + if (gChosenMove == 0xFFFF) + { + gLastLandedMoves[gBattlerTarget] = gChosenMove; + } + else + { + gLastLandedMoves[gBattlerTarget] = gCurrentMove; + GET_MOVE_TYPE(gCurrentMove, gLastHitByType[gBattlerTarget]); + } + } + else + { + gLastLandedMoves[gBattlerTarget] = 0xFFFF; + } } gBattleStruct->cmd49StateTracker++; break; - case 9: //semi-invlurneable attacker make visible - if (!(gMoveResultFlags & MOVE_RESULT_NO_EFFECT) || !(gStatuses3[gBankAttacker] & (STATUS3_ON_AIR | STATUS3_UNDERGROUND | STATUS3_UNDERWATER)) - || WasUnableToUseMove(gBankAttacker)) + case ATK49_MIRROR_MOVE: + if (!(gAbsentBattlerFlags & gBitTable[gBattlerAttacker]) && !(gSharedMem[0x160A6] & gBitTable[gBattlerAttacker])) + { + if (gBattleMoves[gChosenMove].flags & 0x10 && gHitMarker & HITMARKER_OBEYS + && gBattlerAttacker != gBattlerTarget && !(gHitMarker & HITMARKER_FAINTED(gBattlerTarget)) + && !(gMoveResultFlags & MOVE_RESULT_NO_EFFECT)) { - gActiveBattler = gBankAttacker; - EmitSpriteInvisibility(0, 0); - MarkBufferBankForExecution(gActiveBattler); - gStatuses3 &= ~(STATUS3_ON_AIR | STATUS3_UNDERGROUND | STATUS3_UNDERWATER); - gSpecialStatuses[gBankAttacker].restored_bank_sprite = 1; + gSharedMem[0x160AC + gBattlerTarget * 2 + 0] = gChosenMove; + gSharedMem[0x160AC + gBattlerTarget * 2 + 1] = gChosenMove >> 8; + + gSharedMem[0x16100 + gBattlerTarget * 4 + 0 + (gBattlerAttacker / 2) * 2] = gChosenMove; + gSharedMem[0x16100 + gBattlerTarget * 4 + 1 + (gBattlerAttacker / 2) * 2] = gChosenMove >> 8; + } + else if (gBattlerAttacker != gBattlerTarget) + { + gSharedMem[0x160AC + gBattlerTarget * 2 + 0] = 0; + gSharedMem[0x160AC + gBattlerTarget * 2 + 1] = 0; + + gSharedMem[0x16100 + gBattlerTarget * 4 + 0 + (gBattlerAttacker / 2) * 2] = 0; + gSharedMem[0x16100 + gBattlerTarget * 4 + 1 + (gBattlerAttacker / 2) * 2] = 0; } + } gBattleStruct->cmd49StateTracker++; break; - case 10: //semi-invlurneable target make visible - if (!(gMoveResultFlags & MOVE_RESULT_NO_EFFECT) || !(gStatuses3[gBankTarget] & (STATUS3_ON_AIR | STATUS3_UNDERGROUND | STATUS3_UNDERWATER)) - || WasUnableToUseMove(gBankTarget)) + case ATK49_NEXT_TARGET: + if (!(gHitMarker & HITMARKER_UNABLE_TO_USE_MOVE) && gBattleTypeFlags & BATTLE_TYPE_DOUBLE + && !gProtectStructs[gBattlerAttacker].chargingTurn && gBattleMoves[gCurrentMove].target == MOVE_TARGET_BOTH + && !(gHitMarker & HITMARKER_NO_ATTACKSTRING)) + { + u8 battlerId = GetBattlerAtPosition(BATTLE_PARTNER(GetBattlerPosition(gBattlerTarget))); + if (gBattleMons[battlerId].hp != 0) { - gActiveBattler = gBankTarget; - EmitSpriteInvisibility(0, 0); - MarkBufferBankForExecution(gActiveBattler); - gStatuses3 &= ~(STATUS3_ON_AIR | STATUS3_UNDERGROUND | STATUS3_UNDERWATER); - gSpecialStatuses[gBankTarget].restored_bank_sprite = 1; + gBattlerTarget = battlerId; + gHitMarker |= HITMARKER_NO_ATTACKSTRING; + gBattleStruct->cmd49StateTracker = 0; + MoveValuesCleanUp(); + BattleScriptPush(gBattleScriptsForMoveEffects[gBattleMoves[gCurrentMove].effect]); + gBattlescriptCurrInstr = BattleScript_FlushMessageBox; + return; } + else + { + gHitMarker |= HITMARKER_NO_ATTACKSTRING; + } + } gBattleStruct->cmd49StateTracker++; break; - case 11: // + case ATK49_COUNT: + break; } - } while (effect == 0) -} -#else -NAKED -void atk49_moveend(void) -{ - asm(".syntax unified\n\ - push {r4-r7,lr}\n\ - mov r7, r10\n\ - mov r6, r9\n\ - mov r5, r8\n\ - push {r5-r7}\n\ - sub sp, 0x18\n\ - movs r0, 0\n\ - mov r10, r0\n\ - ldr r0, _08021834 @ =gBattlescriptCurrInstr\n\ - ldr r0, [r0]\n\ - ldrb r1, [r0, 0x1]\n\ - str r1, [sp, 0x10]\n\ - ldrb r0, [r0, 0x2]\n\ - str r0, [sp, 0x14]\n\ - ldr r1, _08021838 @ =gBattleMons\n\ - ldr r0, _0802183C @ =gBankAttacker\n\ - ldrb r2, [r0]\n\ - movs r0, 0x58\n\ - muls r0, r2\n\ - adds r1, r0, r1\n\ - ldrh r0, [r1, 0x2E]\n\ - cmp r0, 0xAF\n\ - bne _08021844\n\ - ldr r1, _08021840 @ =gEnigmaBerries\n\ - lsls r0, r2, 3\n\ - subs r0, r2\n\ - lsls r0, 2\n\ - adds r0, r1\n\ - ldrb r0, [r0, 0x7]\n\ - b _0802184E\n\ - .align 2, 0\n\ -_08021834: .4byte gBattlescriptCurrInstr\n\ -_08021838: .4byte gBattleMons\n\ -_0802183C: .4byte gBankAttacker\n\ -_08021840: .4byte gEnigmaBerries\n\ -_08021844:\n\ - ldrh r0, [r1, 0x2E]\n\ - bl ItemId_GetHoldEffect\n\ - lsls r0, 24\n\ - lsrs r0, 24\n\ -_0802184E:\n\ - str r0, [sp, 0x8]\n\ - ldr r0, _0802186C @ =gBankAttacker\n\ - ldrb r1, [r0]\n\ - lsls r1, 1\n\ - ldr r0, _08021870 @ =gSharedMem + 0x160E8\n\ - adds r1, r0\n\ - str r1, [sp, 0xC]\n\ - subs r0, 0xCC\n\ - ldrb r0, [r0]\n\ - cmp r0, 0\n\ - beq _080218C0\n\ - movs r2, 0x3F\n\ - ands r2, r0\n\ - str r2, [sp, 0x4]\n\ - b _080218D2\n\ - .align 2, 0\n\ -_0802186C: .4byte gBankAttacker\n\ -_08021870: .4byte gSharedMem + 0x160E8\n\ -_08021874:\n\ - strb r2, [r7]\n\ - ldr r0, [r5]\n\ - orrs r0, r6\n\ - str r0, [r5]\n\ - ldr r0, _080218AC @ =gSharedMem\n\ - ldr r3, _080218B0 @ =0x0001600c\n\ - adds r0, r3\n\ - strb r4, [r0]\n\ - bl MoveValuesCleanUp\n\ - ldr r2, _080218B4 @ =gBattleScriptsForMoveEffects\n\ - mov r4, r8\n\ - ldrh r1, [r4]\n\ - lsls r0, r1, 1\n\ - adds r0, r1\n\ - lsls r0, 2\n\ - add r0, r9\n\ - ldrb r0, [r0]\n\ - lsls r0, 2\n\ - adds r0, r2\n\ - ldr r0, [r0]\n\ - bl BattleScriptPush\n\ - ldr r1, _080218B8 @ =gBattlescriptCurrInstr\n\ - ldr r0, _080218BC @ =gUnknown_081D9B2D\n\ - bl _0802229C\n\ - .align 2, 0\n\ -_080218AC: .4byte gSharedMem\n\ -_080218B0: .4byte 0x0001600c\n\ -_080218B4: .4byte gBattleScriptsForMoveEffects\n\ -_080218B8: .4byte gBattlescriptCurrInstr\n\ -_080218BC: .4byte gUnknown_081D9B2D\n\ -_080218C0:\n\ - ldr r2, _080218D8 @ =gBattleMoves\n\ - ldr r0, _080218DC @ =gCurrentMove\n\ - ldrh r1, [r0]\n\ - lsls r0, r1, 1\n\ - adds r0, r1\n\ - lsls r0, 2\n\ - adds r0, r2\n\ - ldrb r0, [r0, 0x2]\n\ - str r0, [sp, 0x4]\n\ -_080218D2:\n\ - ldr r5, _080218E0 @ =gSharedMem\n\ - mov r12, r5\n\ - b _080218EE\n\ - .align 2, 0\n\ -_080218D8: .4byte gBattleMoves\n\ -_080218DC: .4byte gCurrentMove\n\ -_080218E0: .4byte gSharedMem\n\ -_080218E4:\n\ - mov r0, r10\n\ - cmp r0, 0\n\ - beq _080218EE\n\ - bl _08022286\n\ -_080218EE:\n\ - ldr r0, _08021908 @ =0x0001600c\n\ - add r0, r12\n\ - ldrb r0, [r0]\n\ - cmp r0, 0x11\n\ - bls _080218FC\n\ - bl _0802224E\n\ -_080218FC:\n\ - lsls r0, 2\n\ - ldr r1, _0802190C @ =_08021910\n\ - adds r0, r1\n\ - ldr r0, [r0]\n\ - mov pc, r0\n\ - .align 2, 0\n\ -_08021908: .4byte 0x0001600c\n\ -_0802190C: .4byte _08021910\n\ - .align 2, 0\n\ -_08021910:\n\ - .4byte _08021958\n\ - .4byte _08021A34\n\ - .4byte _08021AF0\n\ - .4byte _08021B20\n\ - .4byte _08021B44\n\ - .4byte _08021B78\n\ - .4byte _08021B9C\n\ - .4byte _08021C40\n\ - .4byte _08021C78\n\ - .4byte _08021CA8\n\ - .4byte _08021CCC\n\ - .4byte _08021D18\n\ - .4byte _08021DAC\n\ - .4byte _08021E30\n\ - .4byte _08021E70\n\ - .4byte _08022068\n\ - .4byte _080221C0\n\ - .4byte _0802224E\n\ -_08021958:\n\ - ldr r5, _08021A08 @ =gBattleMons\n\ - ldr r2, _08021A0C @ =gBankTarget\n\ - ldrb r4, [r2]\n\ - movs r6, 0x58\n\ - adds r3, r4, 0\n\ - muls r3, r6\n\ - adds r0, r5, 0\n\ - adds r0, 0x50\n\ - adds r0, r3, r0\n\ - ldr r1, [r0]\n\ - movs r0, 0x80\n\ - lsls r0, 16\n\ - ands r1, r0\n\ - cmp r1, 0\n\ - beq _080219FE\n\ - adds r0, r3, r5\n\ - ldrh r0, [r0, 0x28]\n\ - cmp r0, 0\n\ - beq _080219FE\n\ - ldr r0, _08021A10 @ =gBankAttacker\n\ - ldrb r1, [r0]\n\ - cmp r1, r4\n\ - beq _080219FE\n\ - adds r0, r1, 0\n\ - bl GetBattlerSide\n\ - adds r4, r0, 0\n\ - ldr r1, _08021A0C @ =gBankTarget\n\ - ldrb r0, [r1]\n\ - bl GetBattlerSide\n\ - lsls r4, 24\n\ - lsls r0, 24\n\ - cmp r4, r0\n\ - beq _080219FE\n\ - ldr r0, _08021A14 @ =gMoveResultFlags\n\ - ldrb r1, [r0]\n\ - movs r0, 0x29\n\ - ands r0, r1\n\ - cmp r0, 0\n\ - bne _080219FE\n\ - ldr r2, _08021A18 @ =gProtectStructs\n\ - ldr r4, _08021A0C @ =gBankTarget\n\ - ldrb r3, [r4]\n\ - lsls r1, r3, 4\n\ - adds r0, r2, 0x4\n\ - adds r0, r1, r0\n\ - ldr r0, [r0]\n\ - cmp r0, 0\n\ - bne _080219C8\n\ - adds r0, r2, 0\n\ - adds r0, 0x8\n\ - adds r0, r1, r0\n\ - ldr r0, [r0]\n\ - cmp r0, 0\n\ - beq _080219FE\n\ -_080219C8:\n\ - ldr r2, _08021A1C @ =gBattleMoves\n\ - ldr r0, _08021A20 @ =gCurrentMove\n\ - ldrh r1, [r0]\n\ - lsls r0, r1, 1\n\ - adds r0, r1\n\ - lsls r0, 2\n\ - adds r0, r2\n\ - ldrb r0, [r0, 0x1]\n\ - cmp r0, 0\n\ - beq _080219FE\n\ - adds r0, r3, 0\n\ - muls r0, r6\n\ - adds r1, r0, r5\n\ - ldrb r2, [r1, 0x19]\n\ - movs r0, 0x19\n\ - ldrsb r0, [r1, r0]\n\ - cmp r0, 0xB\n\ - bgt _080219FE\n\ - adds r0, r2, 0x1\n\ - strb r0, [r1, 0x19]\n\ - bl BattleScriptPushCursor\n\ - ldr r1, _08021A24 @ =gBattlescriptCurrInstr\n\ - ldr r0, _08021A28 @ =BattleScript_RageIsBuilding\n\ - str r0, [r1]\n\ - movs r5, 0x1\n\ - mov r10, r5\n\ -_080219FE:\n\ - ldr r2, _08021A2C @ =gSharedMem\n\ - ldr r0, _08021A30 @ =0x0001600c\n\ - adds r1, r2, r0\n\ - b _08021E00\n\ - .align 2, 0\n\ -_08021A08: .4byte gBattleMons\n\ -_08021A0C: .4byte gBankTarget\n\ -_08021A10: .4byte gBankAttacker\n\ -_08021A14: .4byte gMoveResultFlags\n\ -_08021A18: .4byte gProtectStructs\n\ -_08021A1C: .4byte gBattleMoves\n\ -_08021A20: .4byte gCurrentMove\n\ -_08021A24: .4byte gBattlescriptCurrInstr\n\ -_08021A28: .4byte BattleScript_RageIsBuilding\n\ -_08021A2C: .4byte gSharedMem\n\ -_08021A30: .4byte 0x0001600c\n\ -_08021A34:\n\ - ldr r2, _08021AD0 @ =gBattleMons\n\ - ldr r1, _08021AD4 @ =gBankTarget\n\ - ldrb r4, [r1]\n\ - movs r3, 0x58\n\ - mov r12, r3\n\ - mov r3, r12\n\ - muls r3, r4\n\ - adds r7, r2, 0\n\ - adds r7, 0x4C\n\ - adds r6, r3, r7\n\ - ldr r5, [r6]\n\ - movs r0, 0x20\n\ - ands r0, r5\n\ - cmp r0, 0\n\ - bne _08021A54\n\ - b _08021DFA\n\ -_08021A54:\n\ - adds r0, r3, r2\n\ - ldrh r0, [r0, 0x28]\n\ - cmp r0, 0\n\ - bne _08021A5E\n\ - b _08021DFA\n\ -_08021A5E:\n\ - ldr r0, _08021AD8 @ =gBankAttacker\n\ - ldrb r0, [r0]\n\ - cmp r0, r4\n\ - bne _08021A68\n\ - b _08021DFA\n\ -_08021A68:\n\ - ldr r0, _08021ADC @ =gSpecialStatuses\n\ - lsls r1, r4, 2\n\ - adds r1, r4\n\ - lsls r1, 2\n\ - adds r0, 0xC\n\ - adds r1, r0\n\ - ldr r0, [r1]\n\ - cmp r0, 0\n\ - bne _08021A7C\n\ - b _08021DFA\n\ -_08021A7C:\n\ - ldr r0, _08021AE0 @ =gMoveResultFlags\n\ - ldrb r1, [r0]\n\ - movs r0, 0x29\n\ - ands r0, r1\n\ - cmp r0, 0\n\ - beq _08021A8A\n\ - b _08021DFA\n\ -_08021A8A:\n\ - ldr r4, [sp, 0x4]\n\ - cmp r4, 0xA\n\ - beq _08021A92\n\ - b _08021DFA\n\ -_08021A92:\n\ - movs r0, 0x21\n\ - negs r0, r0\n\ - ands r5, r0\n\ - str r5, [r6]\n\ - ldr r4, _08021AE4 @ =gActiveBattler\n\ - ldr r5, _08021AD4 @ =gBankTarget\n\ - ldrb r0, [r5]\n\ - strb r0, [r4]\n\ - ldrb r0, [r5]\n\ - mov r1, r12\n\ - muls r1, r0\n\ - adds r0, r1, 0\n\ - adds r0, r7\n\ - str r0, [sp]\n\ - movs r0, 0\n\ - movs r1, 0x28\n\ - movs r2, 0\n\ - movs r3, 0x4\n\ - bl EmitSetMonData\n\ - ldrb r0, [r4]\n\ - bl MarkBufferBankForExecution\n\ - bl BattleScriptPushCursor\n\ - ldr r1, _08021AE8 @ =gBattlescriptCurrInstr\n\ - ldr r0, _08021AEC @ =BattleScript_DefrostedViaFireMove\n\ - str r0, [r1]\n\ - movs r2, 0x1\n\ - mov r10, r2\n\ - b _08021DFA\n\ - .align 2, 0\n\ -_08021AD0: .4byte gBattleMons\n\ -_08021AD4: .4byte gBankTarget\n\ -_08021AD8: .4byte gBankAttacker\n\ -_08021ADC: .4byte gSpecialStatuses\n\ -_08021AE0: .4byte gMoveResultFlags\n\ -_08021AE4: .4byte gActiveBattler\n\ -_08021AE8: .4byte gBattlescriptCurrInstr\n\ -_08021AEC: .4byte BattleScript_DefrostedViaFireMove\n\ -_08021AF0:\n\ - ldr r0, _08021B14 @ =gBankTarget\n\ - ldrb r1, [r0]\n\ - movs r0, 0\n\ - str r0, [sp]\n\ - movs r0, 0x7\n\ - movs r2, 0\n\ - movs r3, 0\n\ - bl AbilityBattleEffects\n\ - lsls r0, 24\n\ - cmp r0, 0\n\ - beq _08021B0C\n\ - movs r4, 0x1\n\ - mov r10, r4\n\ -_08021B0C:\n\ - ldr r2, _08021B18 @ =gSharedMem\n\ - ldr r5, _08021B1C @ =0x0001600c\n\ - adds r1, r2, r5\n\ - b _08021E00\n\ - .align 2, 0\n\ -_08021B14: .4byte gBankTarget\n\ -_08021B18: .4byte gSharedMem\n\ -_08021B1C: .4byte 0x0001600c\n\ -_08021B20:\n\ - ldr r0, _08021B40 @ =gBankTarget\n\ - ldrb r1, [r0]\n\ - movs r0, 0\n\ - str r0, [sp]\n\ - movs r0, 0x4\n\ - movs r2, 0\n\ - movs r3, 0\n\ - bl AbilityBattleEffects\n\ - lsls r0, 24\n\ - cmp r0, 0\n\ - bne _08021B3A\n\ - b _08021DFA\n\ -_08021B3A:\n\ - movs r0, 0x1\n\ - mov r10, r0\n\ - b _08021DFA\n\ - .align 2, 0\n\ -_08021B40: .4byte gBankTarget\n\ -_08021B44:\n\ - movs r0, 0\n\ - str r0, [sp]\n\ - movs r0, 0x5\n\ - movs r1, 0\n\ - movs r2, 0\n\ - movs r3, 0\n\ - bl AbilityBattleEffects\n\ - lsls r0, 24\n\ - cmp r0, 0\n\ - beq _08021B68\n\ - movs r4, 0x1\n\ - mov r10, r4\n\ - ldr r5, _08021B64 @ =gSharedMem\n\ - mov r12, r5\n\ - b _0802224E\n\ - .align 2, 0\n\ -_08021B64: .4byte gSharedMem\n\ -_08021B68:\n\ - ldr r2, _08021B70 @ =gSharedMem\n\ - ldr r0, _08021B74 @ =0x0001600c\n\ - adds r1, r2, r0\n\ - b _08021E00\n\ - .align 2, 0\n\ -_08021B70: .4byte gSharedMem\n\ -_08021B74: .4byte 0x0001600c\n\ -_08021B78:\n\ - ldr r0, _08021B98 @ =gBankAttacker\n\ - ldrb r1, [r0]\n\ - movs r0, 0\n\ - str r0, [sp]\n\ - movs r0, 0x8\n\ - movs r2, 0\n\ - movs r3, 0\n\ - bl AbilityBattleEffects\n\ - lsls r0, 24\n\ - cmp r0, 0\n\ - bne _08021B92\n\ - b _08021DFA\n\ -_08021B92:\n\ - movs r1, 0x1\n\ - mov r10, r1\n\ - b _08021DFA\n\ - .align 2, 0\n\ -_08021B98: .4byte gBankAttacker\n\ -_08021B9C:\n\ - ldr r0, _08021C28 @ =gHitMarker\n\ - ldr r0, [r0]\n\ - movs r1, 0x80\n\ - lsls r1, 18\n\ - ands r0, r1\n\ - cmp r0, 0\n\ - beq _08021BE0\n\ - ldr r4, [sp, 0x8]\n\ - cmp r4, 0x1D\n\ - bne _08021BE0\n\ - ldr r0, _08021C2C @ =gChosenMove\n\ - ldrh r2, [r0]\n\ - adds r7, r0, 0\n\ - cmp r2, 0xA5\n\ - beq _08021BE0\n\ - ldr r5, [sp, 0xC]\n\ - ldrh r1, [r5]\n\ - cmp r1, 0\n\ - beq _08021BC8\n\ - ldr r0, _08021C30 @ =0x0000ffff\n\ - cmp r1, r0\n\ - bne _08021BE0\n\ -_08021BC8:\n\ - cmp r2, 0xE2\n\ - bne _08021BDA\n\ - ldr r0, _08021C34 @ =gMoveResultFlags\n\ - ldrb r1, [r0]\n\ - movs r0, 0x20\n\ - ands r0, r1\n\ - cmp r0, 0\n\ - bne _08021BDA\n\ - b _08022244\n\ -_08021BDA:\n\ - ldrh r0, [r7]\n\ - ldr r1, [sp, 0xC]\n\ - strh r0, [r1]\n\ -_08021BE0:\n\ - movs r4, 0\n\ - ldr r2, _08021C38 @ =gBattleMons\n\ - ldr r3, _08021C3C @ =gBankAttacker\n\ - ldrb r1, [r3]\n\ - movs r0, 0x58\n\ - muls r0, r1\n\ - adds r2, 0xC\n\ - adds r0, r2\n\ - ldrh r0, [r0]\n\ - ldr r5, [sp, 0xC]\n\ - ldrh r1, [r5]\n\ - mov r9, r3\n\ - cmp r0, r1\n\ - beq _08021C18\n\ - mov r6, r9\n\ - movs r3, 0x58\n\ - adds r5, r1, 0\n\ -_08021C02:\n\ - adds r4, 0x1\n\ - cmp r4, 0x3\n\ - bgt _08021C18\n\ - lsls r0, r4, 1\n\ - ldrb r1, [r6]\n\ - muls r1, r3\n\ - adds r0, r1\n\ - adds r0, r2\n\ - ldrh r0, [r0]\n\ - cmp r0, r5\n\ - bne _08021C02\n\ -_08021C18:\n\ - cmp r4, 0x4\n\ - beq _08021C1E\n\ - b _08022244\n\ -_08021C1E:\n\ - movs r0, 0\n\ - ldr r1, [sp, 0xC]\n\ -_08021C22:\n\ - strh r0, [r1]\n\ - b _08022244\n\ - .align 2, 0\n\ -_08021C28: .4byte gHitMarker\n\ -_08021C2C: .4byte gChosenMove\n\ -_08021C30: .4byte 0x0000ffff\n\ -_08021C34: .4byte gMoveResultFlags\n\ -_08021C38: .4byte gBattleMons\n\ -_08021C3C: .4byte gBankAttacker\n\ -_08021C40:\n\ - movs r4, 0\n\ - ldr r0, _08021C6C @ =gBattlersCount\n\ - ldrb r2, [r0]\n\ - cmp r4, r2\n\ - blt _08021C4C\n\ - b _08022244\n\ -_08021C4C:\n\ - movs r5, 0\n\ - ldr r2, _08021C70 @ =gSharedMem + 0x160F0\n\ - ldr r3, _08021C74 @ =gBattleMons\n\ -_08021C52:\n\ - ldrh r1, [r2]\n\ - cmp r1, 0\n\ - beq _08021C5C\n\ - strh r1, [r3, 0x2E]\n\ - strh r5, [r2]\n\ -_08021C5C:\n\ - adds r2, 0x2\n\ - adds r3, 0x58\n\ - adds r4, 0x1\n\ - ldrb r1, [r0]\n\ - cmp r4, r1\n\ - blt _08021C52\n\ - b _08022244\n\ - .align 2, 0\n\ -_08021C6C: .4byte gBattlersCount\n\ -_08021C70: .4byte gSharedMem + 0x160F0\n\ -_08021C74: .4byte gBattleMons\n\ -_08021C78:\n\ - movs r0, 0x3\n\ - movs r1, 0\n\ - movs r2, 0\n\ - bl ItemBattleEffects\n\ - lsls r0, 24\n\ - cmp r0, 0\n\ - beq _08021C98\n\ - movs r2, 0x1\n\ - mov r10, r2\n\ - ldr r3, _08021C94 @ =gSharedMem\n\ - mov r12, r3\n\ - b _0802224E\n\ - .align 2, 0\n\ -_08021C94: .4byte gSharedMem\n\ -_08021C98:\n\ - ldr r2, _08021CA0 @ =gSharedMem\n\ - ldr r4, _08021CA4 @ =0x0001600c\n\ - adds r1, r2, r4\n\ - b _08021E00\n\ - .align 2, 0\n\ -_08021CA0: .4byte gSharedMem\n\ -_08021CA4: .4byte 0x0001600c\n\ -_08021CA8:\n\ - movs r0, 0x4\n\ - movs r1, 0\n\ - movs r2, 0\n\ - bl ItemBattleEffects\n\ - lsls r0, 24\n\ - cmp r0, 0\n\ - beq _08021CBC\n\ - movs r5, 0x1\n\ - mov r10, r5\n\ -_08021CBC:\n\ - ldr r2, _08021CC4 @ =gSharedMem\n\ - ldr r0, _08021CC8 @ =0x0001600c\n\ - adds r1, r2, r0\n\ - b _08021E00\n\ - .align 2, 0\n\ -_08021CC4: .4byte gSharedMem\n\ -_08021CC8: .4byte 0x0001600c\n\ -_08021CCC:\n\ - ldr r1, _08021D04 @ =gStatuses3\n\ - ldr r0, _08021D08 @ =gBankAttacker\n\ - ldrb r2, [r0]\n\ - lsls r0, r2, 2\n\ - adds r0, r1\n\ - ldr r0, [r0]\n\ - ldr r1, _08021D0C @ =0x000400c0\n\ - ands r0, r1\n\ - cmp r0, 0\n\ - bne _08021CE2\n\ - b _08021DFA\n\ -_08021CE2:\n\ - ldr r0, _08021D10 @ =gHitMarker\n\ - ldr r0, [r0]\n\ - movs r1, 0x80\n\ - ands r0, r1\n\ - cmp r0, 0\n\ - bne _08021CF0\n\ - b _08021DFA\n\ -_08021CF0:\n\ - ldr r4, _08021D14 @ =gActiveBattler\n\ - strb r2, [r4]\n\ - movs r0, 0\n\ - movs r1, 0x1\n\ - bl EmitSpriteInvisibility\n\ - ldrb r0, [r4]\n\ - bl MarkBufferBankForExecution\n\ - b _08021DFA\n\ - .align 2, 0\n\ -_08021D04: .4byte gStatuses3\n\ -_08021D08: .4byte gBankAttacker\n\ -_08021D0C: .4byte 0x000400c0\n\ -_08021D10: .4byte gHitMarker\n\ -_08021D14: .4byte gActiveBattler\n\ -_08021D18:\n\ - ldr r0, _08021D88 @ =gMoveResultFlags\n\ - ldrb r1, [r0]\n\ - movs r0, 0x29\n\ - ands r0, r1\n\ - cmp r0, 0\n\ - bne _08021D44\n\ - ldr r1, _08021D8C @ =gStatuses3\n\ - ldr r0, _08021D90 @ =gBankAttacker\n\ - ldrb r2, [r0]\n\ - lsls r0, r2, 2\n\ - adds r0, r1\n\ - ldr r0, [r0]\n\ - ldr r1, _08021D94 @ =0x000400c0\n\ - ands r0, r1\n\ - cmp r0, 0\n\ - beq _08021D44\n\ - adds r0, r2, 0\n\ - bl WasUnableToUseMove\n\ - lsls r0, 24\n\ - cmp r0, 0\n\ - beq _08021D7E\n\ -_08021D44:\n\ - ldr r4, _08021D98 @ =gActiveBattler\n\ - ldr r5, _08021D90 @ =gBankAttacker\n\ - ldrb r0, [r5]\n\ - strb r0, [r4]\n\ - movs r0, 0\n\ - movs r1, 0\n\ - bl EmitSpriteInvisibility\n\ - ldrb r0, [r4]\n\ - bl MarkBufferBankForExecution\n\ - ldr r0, _08021D8C @ =gStatuses3\n\ - ldrb r2, [r5]\n\ - lsls r2, 2\n\ - adds r2, r0\n\ - ldr r0, [r2]\n\ - ldr r1, _08021D9C @ =0xfffbff3f\n\ - ands r0, r1\n\ - str r0, [r2]\n\ - ldr r2, _08021DA0 @ =gSpecialStatuses\n\ - ldrb r1, [r5]\n\ - lsls r0, r1, 2\n\ - adds r0, r1\n\ - lsls r0, 2\n\ - adds r0, r2\n\ - ldrb r1, [r0]\n\ - movs r2, 0x4\n\ - orrs r1, r2\n\ - strb r1, [r0]\n\ -_08021D7E:\n\ - ldr r2, _08021DA4 @ =gSharedMem\n\ - ldr r4, _08021DA8 @ =0x0001600c\n\ - adds r1, r2, r4\n\ - b _08021E00\n\ - .align 2, 0\n\ -_08021D88: .4byte gMoveResultFlags\n\ -_08021D8C: .4byte gStatuses3\n\ -_08021D90: .4byte gBankAttacker\n\ -_08021D94: .4byte 0x000400c0\n\ -_08021D98: .4byte gActiveBattler\n\ -_08021D9C: .4byte 0xfffbff3f\n\ -_08021DA0: .4byte gSpecialStatuses\n\ -_08021DA4: .4byte gSharedMem\n\ -_08021DA8: .4byte 0x0001600c\n\ -_08021DAC:\n\ - ldr r2, _08021E0C @ =gSpecialStatuses\n\ - ldr r1, _08021E10 @ =gBankTarget\n\ - ldrb r3, [r1]\n\ - lsls r4, r3, 2\n\ - adds r0, r4, r3\n\ - lsls r0, 2\n\ - adds r0, r2\n\ - ldrb r0, [r0]\n\ - lsls r0, 29\n\ - cmp r0, 0\n\ - blt _08021DFA\n\ - ldr r0, _08021E14 @ =gBattlersCount\n\ - ldrb r0, [r0]\n\ - cmp r3, r0\n\ - bcs _08021DFA\n\ - ldr r5, _08021E18 @ =gStatuses3\n\ - adds r0, r4, r5\n\ - ldr r0, [r0]\n\ - ldr r1, _08021E1C @ =0x000400c0\n\ - ands r0, r1\n\ - cmp r0, 0\n\ - bne _08021DFA\n\ - ldr r4, _08021E20 @ =gActiveBattler\n\ - strb r3, [r4]\n\ - movs r0, 0\n\ - movs r1, 0\n\ - bl EmitSpriteInvisibility\n\ - ldrb r0, [r4]\n\ - bl MarkBufferBankForExecution\n\ - ldr r0, _08021E10 @ =gBankTarget\n\ - ldrb r2, [r0]\n\ - lsls r2, 2\n\ - adds r2, r5\n\ - ldr r0, [r2]\n\ - ldr r1, _08021E24 @ =0xfffbff3f\n\ - ands r0, r1\n\ - str r0, [r2]\n\ -_08021DFA:\n\ - ldr r2, _08021E28 @ =gSharedMem\n\ - ldr r3, _08021E2C @ =0x0001600c\n\ - adds r1, r2, r3\n\ -_08021E00:\n\ - ldrb r0, [r1]\n\ - adds r0, 0x1\n\ - strb r0, [r1]\n\ - mov r12, r2\n\ - b _0802224E\n\ - .align 2, 0\n\ -_08021E0C: .4byte gSpecialStatuses\n\ -_08021E10: .4byte gBankTarget\n\ -_08021E14: .4byte gBattlersCount\n\ -_08021E18: .4byte gStatuses3\n\ -_08021E1C: .4byte 0x000400c0\n\ -_08021E20: .4byte gActiveBattler\n\ -_08021E24: .4byte 0xfffbff3f\n\ -_08021E28: .4byte gSharedMem\n\ -_08021E2C: .4byte 0x0001600c\n\ -_08021E30:\n\ - movs r4, 0\n\ - ldr r0, _08021E60 @ =gBattlersCount\n\ - ldrb r5, [r0]\n\ - cmp r4, r5\n\ - blt _08021E3C\n\ - b _08022244\n\ -_08021E3C:\n\ - ldr r2, _08021E64 @ =gDisableStructs\n\ - ldr r5, _08021E68 @ =0xfeffffff\n\ - adds r3, r0, 0\n\ - ldr r1, _08021E6C @ =gBattleMons+0x50\n\ -_08021E44:\n\ - ldrb r0, [r2, 0xA]\n\ - cmp r0, 0\n\ - bne _08021E50\n\ - ldr r0, [r1]\n\ - ands r0, r5\n\ - str r0, [r1]\n\ -_08021E50:\n\ - adds r2, 0x1C\n\ - adds r1, 0x58\n\ - adds r4, 0x1\n\ - ldrb r0, [r3]\n\ - cmp r4, r0\n\ - blt _08021E44\n\ - b _08022244\n\ - .align 2, 0\n\ -_08021E60: .4byte gBattlersCount\n\ -_08021E64: .4byte gDisableStructs\n\ -_08021E68: .4byte 0xfeffffff\n\ -_08021E6C: .4byte gBattleMons+0x50\n\ -_08021E70:\n\ - ldr r1, _08021F2C @ =gHitMarker\n\ - ldr r3, [r1]\n\ - movs r0, 0x80\n\ - lsls r0, 5\n\ - ands r0, r3\n\ - ldr r2, _08021F30 @ =gBankAttacker\n\ - mov r9, r2\n\ - adds r5, r1, 0\n\ - cmp r0, 0\n\ - beq _08021E9A\n\ - ldr r0, _08021F34 @ =gActiveBattler\n\ - ldrb r2, [r2]\n\ - strb r2, [r0]\n\ - ldr r1, _08021F38 @ =gBankTarget\n\ - ldrb r0, [r1]\n\ - mov r4, r9\n\ - strb r0, [r4]\n\ - strb r2, [r1]\n\ - ldr r0, _08021F3C @ =0xffffefff\n\ - ands r3, r0\n\ - str r3, [r5]\n\ -_08021E9A:\n\ - ldr r1, _08021F40 @ =gBattleMoves\n\ - ldr r2, _08021F44 @ =gChosenMove\n\ - ldrh r3, [r2]\n\ - lsls r0, r3, 1\n\ - adds r0, r3\n\ - lsls r0, 2\n\ - adds r0, r1\n\ - ldrb r0, [r0]\n\ - mov r8, r1\n\ - adds r7, r2, 0\n\ - cmp r0, 0x7F\n\ - bne _08021EBE\n\ - ldr r0, _08021F48 @ =gMoveResultFlags\n\ - ldrb r1, [r0]\n\ - movs r0, 0x29\n\ - ands r0, r1\n\ - cmp r0, 0\n\ - beq _08021ECA\n\ -_08021EBE:\n\ - ldr r1, _08021F4C @ =gUnknown_02024C2C\n\ - mov r2, r9\n\ - ldrb r0, [r2]\n\ - lsls r0, 1\n\ - adds r0, r1\n\ - strh r3, [r0]\n\ -_08021ECA:\n\ - ldr r0, _08021F50 @ =gAbsentBattlerFlags\n\ - ldrb r1, [r0]\n\ - ldr r2, _08021F54 @ =gBitTable\n\ - mov r3, r9\n\ - ldrb r4, [r3]\n\ - lsls r0, r4, 2\n\ - adds r0, r2\n\ - ldr r3, [r0]\n\ - ands r1, r3\n\ - adds r6, r2, 0\n\ - cmp r1, 0\n\ - beq _08021EE4\n\ - b _08022244\n\ -_08021EE4:\n\ - ldr r0, _08021F58 @ =0x000160a6\n\ - add r0, r12\n\ - ldrb r0, [r0]\n\ - ands r0, r3\n\ - cmp r0, 0\n\ - beq _08021EF2\n\ - b _08022244\n\ -_08021EF2:\n\ - ldrh r2, [r7]\n\ - lsls r0, r2, 1\n\ - adds r0, r2\n\ - lsls r0, 2\n\ - add r0, r8\n\ - ldrb r0, [r0]\n\ - cmp r0, 0x7F\n\ - bne _08021F04\n\ - b _08022244\n\ -_08021F04:\n\ - ldr r0, [r5]\n\ - movs r1, 0x80\n\ - lsls r1, 18\n\ - ands r0, r1\n\ - cmp r0, 0\n\ - beq _08021F68\n\ - ldr r1, _08021F5C @ =gLastUsedMove\n\ - lsls r0, r4, 1\n\ - adds r0, r1\n\ - strh r2, [r0]\n\ - ldr r0, _08021F60 @ =gUnknown_02024C4C\n\ - mov r4, r9\n\ - ldrb r1, [r4]\n\ - lsls r1, 1\n\ - adds r1, r0\n\ - ldr r0, _08021F64 @ =gCurrentMove\n\ - ldrh r0, [r0]\n\ - strh r0, [r1]\n\ - b _08021F82\n\ - .align 2, 0\n\ -_08021F2C: .4byte gHitMarker\n\ -_08021F30: .4byte gBankAttacker\n\ -_08021F34: .4byte gActiveBattler\n\ -_08021F38: .4byte gBankTarget\n\ -_08021F3C: .4byte 0xffffefff\n\ -_08021F40: .4byte gBattleMoves\n\ -_08021F44: .4byte gChosenMove\n\ -_08021F48: .4byte gMoveResultFlags\n\ -_08021F4C: .4byte gUnknown_02024C2C\n\ -_08021F50: .4byte gAbsentBattlerFlags\n\ -_08021F54: .4byte gBitTable\n\ -_08021F58: .4byte 0x000160a6\n\ -_08021F5C: .4byte gLastUsedMove\n\ -_08021F60: .4byte gUnknown_02024C4C\n\ -_08021F64: .4byte gCurrentMove\n\ -_08021F68:\n\ - ldr r1, _08021FD0 @ =gLastUsedMove\n\ - lsls r0, r4, 1\n\ - adds r0, r1\n\ - ldr r1, _08021FD4 @ =0x0000ffff\n\ - strh r1, [r0]\n\ - ldr r1, _08021FD8 @ =gUnknown_02024C4C\n\ - mov r2, r9\n\ - ldrb r0, [r2]\n\ - lsls r0, 1\n\ - adds r0, r1\n\ - movs r1, 0x1\n\ - negs r1, r1\n\ - strh r1, [r0]\n\ -_08021F82:\n\ - ldr r2, _08021FDC @ =gBankTarget\n\ - ldrb r3, [r2]\n\ - lsls r0, r3, 2\n\ - adds r0, r6\n\ - ldr r0, [r0]\n\ - lsls r0, 28\n\ - ldr r1, [r5]\n\ - ands r1, r0\n\ - cmp r1, 0\n\ - bne _08021FA0\n\ - ldr r0, _08021FE0 @ =gLastHitBy\n\ - adds r0, r3, r0\n\ - mov r3, r9\n\ - ldrb r1, [r3]\n\ - strb r1, [r0]\n\ -_08021FA0:\n\ - ldr r0, [r5]\n\ - movs r1, 0x80\n\ - lsls r1, 18\n\ - ands r0, r1\n\ - cmp r0, 0\n\ - beq _0802204C\n\ - ldr r0, _08021FE4 @ =gMoveResultFlags\n\ - ldrb r1, [r0]\n\ - movs r0, 0x29\n\ - ands r0, r1\n\ - cmp r0, 0\n\ - bne _0802204C\n\ - ldrh r2, [r7]\n\ - ldr r0, _08021FD4 @ =0x0000ffff\n\ - cmp r2, r0\n\ - bne _08021FEC\n\ - ldr r1, _08021FE8 @ =gLastLandedMoves\n\ - ldr r4, _08021FDC @ =gBankTarget\n\ - ldrb r0, [r4]\n\ - lsls r0, 1\n\ - adds r0, r1\n\ - strh r2, [r0]\n\ - b _08022244\n\ - .align 2, 0\n\ -_08021FD0: .4byte gLastUsedMove\n\ -_08021FD4: .4byte 0x0000ffff\n\ -_08021FD8: .4byte gUnknown_02024C4C\n\ -_08021FDC: .4byte gBankTarget\n\ -_08021FE0: .4byte gLastHitBy\n\ -_08021FE4: .4byte gMoveResultFlags\n\ -_08021FE8: .4byte gLastLandedMoves\n\ -_08021FEC:\n\ - ldr r0, _08022014 @ =gLastLandedMoves\n\ - ldr r5, _08022018 @ =gBankTarget\n\ - ldrb r1, [r5]\n\ - lsls r1, 1\n\ - adds r1, r0\n\ - ldr r4, _0802201C @ =gCurrentMove\n\ - ldrh r0, [r4]\n\ - strh r0, [r1]\n\ - ldr r0, _08022020 @ =0x0001601c\n\ - add r0, r12\n\ - ldrb r3, [r0]\n\ - cmp r3, 0\n\ - beq _08022028\n\ - ldr r0, _08022024 @ =gLastHitByType\n\ - ldrb r1, [r5]\n\ - lsls r1, 1\n\ - adds r1, r0\n\ - movs r0, 0x3F\n\ - ands r0, r3\n\ - b _08021C22\n\ - .align 2, 0\n\ -_08022014: .4byte gLastLandedMoves\n\ -_08022018: .4byte gBankTarget\n\ -_0802201C: .4byte gCurrentMove\n\ -_08022020: .4byte 0x0001601c\n\ -_08022024: .4byte gLastHitByType\n\ -_08022028:\n\ - ldr r0, _08022044 @ =gLastHitByType\n\ - ldr r1, _08022048 @ =gBankTarget\n\ - ldrb r2, [r1]\n\ - lsls r2, 1\n\ - adds r2, r0\n\ - ldrh r1, [r4]\n\ - lsls r0, r1, 1\n\ - adds r0, r1\n\ - lsls r0, 2\n\ - add r0, r8\n\ - ldrb r0, [r0, 0x2]\n\ - strh r0, [r2]\n\ - b _08022244\n\ - .align 2, 0\n\ -_08022044: .4byte gLastHitByType\n\ -_08022048: .4byte gBankTarget\n\ -_0802204C:\n\ - ldr r0, _0802205C @ =gLastLandedMoves\n\ - ldr r2, _08022060 @ =gBankTarget\n\ - ldrb r1, [r2]\n\ - lsls r1, 1\n\ - adds r1, r0\n\ - ldr r0, _08022064 @ =0x0000ffff\n\ - b _08021C22\n\ - .align 2, 0\n\ -_0802205C: .4byte gLastLandedMoves\n\ -_08022060: .4byte gBankTarget\n\ -_08022064: .4byte 0x0000ffff\n\ -_08022068:\n\ - ldr r0, _0802212C @ =gAbsentBattlerFlags\n\ - ldrb r1, [r0]\n\ - ldr r6, _08022130 @ =gBitTable\n\ - ldr r2, _08022134 @ =gBankAttacker\n\ - ldrb r5, [r2]\n\ - lsls r0, r5, 2\n\ - adds r0, r6\n\ - ldr r4, [r0]\n\ - ands r1, r4\n\ - mov r9, r2\n\ - cmp r1, 0\n\ - beq _08022082\n\ - b _08022244\n\ -_08022082:\n\ - ldr r0, _08022138 @ =0x000160a6\n\ - add r0, r12\n\ - ldrb r0, [r0]\n\ - ands r0, r4\n\ - cmp r0, 0\n\ - beq _08022090\n\ - b _08022244\n\ -_08022090:\n\ - ldr r1, _0802213C @ =gBattleMoves\n\ - ldr r4, _08022140 @ =gChosenMove\n\ - ldrh r3, [r4]\n\ - lsls r0, r3, 1\n\ - adds r0, r3\n\ - lsls r0, 2\n\ - adds r0, r1\n\ - ldrb r1, [r0, 0x8]\n\ - movs r0, 0x10\n\ - ands r0, r1\n\ - cmp r0, 0\n\ - beq _0802215C\n\ - ldr r0, _08022144 @ =gHitMarker\n\ - ldr r1, [r0]\n\ - movs r0, 0x80\n\ - lsls r0, 18\n\ - ands r0, r1\n\ - cmp r0, 0\n\ - beq _0802215C\n\ - ldr r2, _08022148 @ =gBankTarget\n\ - ldrb r0, [r2]\n\ - cmp r5, r0\n\ - bne _080220C0\n\ - b _08022244\n\ -_080220C0:\n\ - adds r2, r0, 0\n\ - lsls r0, r2, 2\n\ - adds r0, r6\n\ - ldr r0, [r0]\n\ - lsls r0, 28\n\ - ands r1, r0\n\ - cmp r1, 0\n\ - bne _0802215C\n\ - ldr r0, _0802214C @ =gMoveResultFlags\n\ - ldrb r1, [r0]\n\ - movs r0, 0x29\n\ - ands r0, r1\n\ - cmp r0, 0\n\ - bne _0802215C\n\ - lsls r0, r2, 1\n\ - ldr r5, _08022150 @ =0x000160ac\n\ - adds r0, r5\n\ - add r0, r12\n\ - strb r3, [r0]\n\ - ldr r0, _08022148 @ =gBankTarget\n\ - ldrb r1, [r0]\n\ - lsls r1, 1\n\ - ldr r2, _08022154 @ =0x000160ad\n\ - adds r1, r2\n\ - add r1, r12\n\ - ldrh r0, [r4]\n\ - lsrs r0, 8\n\ - strb r0, [r1]\n\ - ldr r3, _08022148 @ =gBankTarget\n\ - ldrb r2, [r3]\n\ - lsls r2, 2\n\ - mov r5, r9\n\ - ldrb r0, [r5]\n\ - lsrs r0, 1\n\ - lsls r0, 1\n\ - ldr r1, _08022158 @ =0x00016100\n\ - adds r0, r1\n\ - adds r2, r0\n\ - add r2, r12\n\ - ldrh r0, [r4]\n\ - strb r0, [r2]\n\ - ldrb r2, [r3]\n\ - lsls r2, 2\n\ - ldrb r0, [r5]\n\ - lsrs r0, 1\n\ - lsls r0, 1\n\ - adds r1, 0x1\n\ - adds r0, r1\n\ - adds r2, r0\n\ - add r2, r12\n\ - ldrh r0, [r4]\n\ - lsrs r0, 8\n\ - strb r0, [r2]\n\ - b _08022244\n\ - .align 2, 0\n\ -_0802212C: .4byte gAbsentBattlerFlags\n\ -_08022130: .4byte gBitTable\n\ -_08022134: .4byte gBankAttacker\n\ -_08022138: .4byte 0x000160a6\n\ -_0802213C: .4byte gBattleMoves\n\ -_08022140: .4byte gChosenMove\n\ -_08022144: .4byte gHitMarker\n\ -_08022148: .4byte gBankTarget\n\ -_0802214C: .4byte gMoveResultFlags\n\ -_08022150: .4byte 0x000160ac\n\ -_08022154: .4byte 0x000160ad\n\ -_08022158: .4byte 0x00016100\n\ -_0802215C:\n\ - mov r1, r9\n\ - ldrb r0, [r1]\n\ - ldr r2, _080221B4 @ =gBankTarget\n\ - ldrb r2, [r2]\n\ - cmp r0, r2\n\ - beq _08022244\n\ - ldr r3, _080221B4 @ =gBankTarget\n\ - ldrb r0, [r3]\n\ - lsls r0, 1\n\ - ldr r4, _080221B8 @ =0x000160ac\n\ - adds r0, r4\n\ - add r0, r12\n\ - movs r3, 0\n\ - strb r3, [r0]\n\ - ldr r5, _080221B4 @ =gBankTarget\n\ - ldrb r0, [r5]\n\ - lsls r0, 1\n\ - ldr r1, _080221BC @ =0x000160ad\n\ - adds r0, r1\n\ - add r0, r12\n\ - strb r3, [r0]\n\ - ldrb r2, [r5]\n\ - lsls r2, 2\n\ - mov r4, r9\n\ - ldrb r0, [r4]\n\ - lsrs r0, 1\n\ - lsls r0, 1\n\ - adds r1, 0x53\n\ - adds r0, r1\n\ - adds r2, r0\n\ - add r2, r12\n\ - strb r3, [r2]\n\ - ldrb r2, [r5]\n\ - lsls r2, 2\n\ - ldrb r0, [r4]\n\ - lsrs r0, 1\n\ - lsls r0, 1\n\ - adds r1, 0x1\n\ - adds r0, r1\n\ - adds r2, r0\n\ - add r2, r12\n\ - strb r3, [r2]\n\ - b _08022244\n\ - .align 2, 0\n\ -_080221B4: .4byte gBankTarget\n\ -_080221B8: .4byte 0x000160ac\n\ -_080221BC: .4byte 0x000160ad\n\ -_080221C0:\n\ - ldr r5, _080222B0 @ =gHitMarker\n\ - ldr r2, [r5]\n\ - movs r0, 0x80\n\ - lsls r0, 12\n\ - ands r0, r2\n\ - cmp r0, 0\n\ - bne _08022244\n\ - ldr r0, _080222B4 @ =gBattleTypeFlags\n\ - ldrh r1, [r0]\n\ - movs r0, 0x1\n\ - ands r0, r1\n\ - cmp r0, 0\n\ - beq _08022244\n\ - ldr r1, _080222B8 @ =gProtectStructs\n\ - ldr r0, _080222BC @ =gBankAttacker\n\ - ldrb r0, [r0]\n\ - lsls r0, 4\n\ - adds r0, r1\n\ - ldrb r0, [r0, 0x1]\n\ - lsls r0, 29\n\ - cmp r0, 0\n\ - blt _08022244\n\ - ldr r0, _080222C0 @ =gBattleMoves\n\ - mov r9, r0\n\ - ldr r1, _080222C4 @ =gCurrentMove\n\ - mov r8, r1\n\ - ldrh r0, [r1]\n\ - lsls r1, r0, 1\n\ - adds r1, r0\n\ - lsls r1, 2\n\ - add r1, r9\n\ - ldrb r0, [r1, 0x6]\n\ - cmp r0, 0x8\n\ - bne _08022244\n\ - movs r6, 0x80\n\ - lsls r6, 2\n\ - adds r4, r6, 0\n\ - ands r4, r2\n\ - cmp r4, 0\n\ - bne _08022244\n\ - ldr r7, _080222C8 @ =gBankTarget\n\ - ldrb r0, [r7]\n\ - bl GetBattlerPosition\n\ - movs r1, 0x2\n\ - eors r0, r1\n\ - lsls r0, 24\n\ - lsrs r0, 24\n\ - bl GetBattlerAtPosition\n\ - lsls r0, 24\n\ - lsrs r2, r0, 24\n\ - ldr r1, _080222CC @ =gBattleMons\n\ - movs r0, 0x58\n\ - muls r0, r2\n\ - adds r0, r1\n\ - ldrh r0, [r0, 0x28]\n\ - cmp r0, 0\n\ - beq _0802223A\n\ - bl _08021874\n\ -_0802223A:\n\ - ldr r0, [r5]\n\ - orrs r0, r6\n\ - str r0, [r5]\n\ - ldr r2, _080222D0 @ =gSharedMem\n\ - mov r12, r2\n\ -_08022244:\n\ - ldr r1, _080222D4 @ =0x0001600c\n\ - add r1, r12\n\ - ldrb r0, [r1]\n\ - adds r0, 0x1\n\ - strb r0, [r1]\n\ -_0802224E:\n\ - ldr r3, [sp, 0x10]\n\ - cmp r3, 0x1\n\ - bne _08022262\n\ - mov r4, r10\n\ - cmp r4, 0\n\ - bne _08022262\n\ - ldr r1, _080222D4 @ =0x0001600c\n\ - add r1, r12\n\ - movs r0, 0x11\n\ - strb r0, [r1]\n\ -_08022262:\n\ - ldr r5, [sp, 0x10]\n\ - cmp r5, 0x2\n\ - bne _08022278\n\ - ldr r1, _080222D4 @ =0x0001600c\n\ - add r1, r12\n\ - ldr r0, [sp, 0x14]\n\ - ldrb r2, [r1]\n\ - cmp r0, r2\n\ - bne _08022278\n\ - movs r0, 0x11\n\ - strb r0, [r1]\n\ -_08022278:\n\ - ldr r0, _080222D4 @ =0x0001600c\n\ - add r0, r12\n\ - ldrb r0, [r0]\n\ - cmp r0, 0x11\n\ - beq _08022286\n\ - bl _080218E4\n\ -_08022286:\n\ - ldr r0, _080222D4 @ =0x0001600c\n\ - add r0, r12\n\ - ldrb r0, [r0]\n\ - cmp r0, 0x11\n\ - bne _0802229E\n\ - mov r3, r10\n\ - cmp r3, 0\n\ - bne _0802229E\n\ - ldr r1, _080222D8 @ =gBattlescriptCurrInstr\n\ - ldr r0, [r1]\n\ - adds r0, 0x3\n\ -_0802229C:\n\ - str r0, [r1]\n\ -_0802229E:\n\ - add sp, 0x18\n\ - pop {r3-r5}\n\ - mov r8, r3\n\ - mov r9, r4\n\ - mov r10, r5\n\ - pop {r4-r7}\n\ - pop {r0}\n\ - bx r0\n\ - .align 2, 0\n\ -_080222B0: .4byte gHitMarker\n\ -_080222B4: .4byte gBattleTypeFlags\n\ -_080222B8: .4byte gProtectStructs\n\ -_080222BC: .4byte gBankAttacker\n\ -_080222C0: .4byte gBattleMoves\n\ -_080222C4: .4byte gCurrentMove\n\ -_080222C8: .4byte gBankTarget\n\ -_080222CC: .4byte gBattleMons\n\ -_080222D0: .4byte gSharedMem\n\ -_080222D4: .4byte 0x0001600c\n\ -_080222D8: .4byte gBattlescriptCurrInstr\n\ - .syntax divided" - ); + if (arg1 == 1 && effect == FALSE) + gBattleStruct->cmd49StateTracker = ATK49_COUNT; + if (arg1 == 2 && arg2 == gBattleStruct->cmd49StateTracker) + gBattleStruct->cmd49StateTracker = ATK49_COUNT; + + } while (gBattleStruct->cmd49StateTracker != ATK49_COUNT && effect == FALSE); + + if (gBattleStruct->cmd49StateTracker == ATK49_COUNT && effect == FALSE) + gBattlescriptCurrInstr += 3; } -#endif // NONMATCHING static void atk4A_typecalc2(void) { @@ -8209,13 +7055,13 @@ static void atk4A_typecalc2(void) int i = 0; u8 move_type = gBattleMoves[gCurrentMove].type; - if (gBattleMons[gBankTarget].ability == ABILITY_LEVITATE && move_type == TYPE_GROUND) + if (gBattleMons[gBattlerTarget].ability == ABILITY_LEVITATE && move_type == TYPE_GROUND) { - gLastUsedAbility = gBattleMons[gBankTarget].ability; + gLastUsedAbility = gBattleMons[gBattlerTarget].ability; gMoveResultFlags |= (MOVE_RESULT_MISSED | MOVE_RESULT_DOESNT_AFFECT_FOE); - gLastLandedMoves[gBankTarget] = 0; + gLastLandedMoves[gBattlerTarget] = 0; gBattleCommunication[6] = move_type; - RecordAbilityBattle(gBankTarget, gLastUsedAbility); + RecordAbilityBattle(gBattlerTarget, gLastUsedAbility); } else { @@ -8223,14 +7069,14 @@ static void atk4A_typecalc2(void) { if (gTypeEffectiveness[i] == TYPE_FORESIGHT) { - if (gBattleMons[gBankTarget].status2 & STATUS2_FORESIGHT) {break;} + if (gBattleMons[gBattlerTarget].status2 & STATUS2_FORESIGHT) {break;} else {i += 3; continue;} } if (gTypeEffectiveness[i] == move_type) { //check type1 - if (gTypeEffectiveness[i + 1] == gBattleMons[gBankTarget].type1) + if (gTypeEffectiveness[i + 1] == gBattleMons[gBattlerTarget].type1) { if (gTypeEffectiveness[i + 2] == 0) { @@ -8243,18 +7089,18 @@ static void atk4A_typecalc2(void) flags |= MOVE_RESULT_SUPER_EFFECTIVE; } //check type2 - if (gTypeEffectiveness[i + 1] == gBattleMons[gBankTarget].type2) + if (gTypeEffectiveness[i + 1] == gBattleMons[gBattlerTarget].type2) { - if (gBattleMons[gBankTarget].type1 != gBattleMons[gBankTarget].type2 + if (gBattleMons[gBattlerTarget].type1 != gBattleMons[gBattlerTarget].type2 && gTypeEffectiveness[i + 2] == 0) { gMoveResultFlags |= MOVE_RESULT_DOESNT_AFFECT_FOE; break; } - if (gTypeEffectiveness[i + 1] == gBattleMons[gBankTarget].type2 && gBattleMons[gBankTarget].type1 != gBattleMons[gBankTarget].type2 && gTypeEffectiveness[i + 2] == 5) + if (gTypeEffectiveness[i + 1] == gBattleMons[gBattlerTarget].type2 && gBattleMons[gBattlerTarget].type1 != gBattleMons[gBattlerTarget].type2 && gTypeEffectiveness[i + 2] == 5) flags |= MOVE_RESULT_NOT_VERY_EFFECTIVE; - if (gTypeEffectiveness[i + 1] == gBattleMons[gBankTarget].type2 - && gBattleMons[gBankTarget].type1 != gBattleMons[gBankTarget].type2 && gTypeEffectiveness[i + 2] == 20) + if (gTypeEffectiveness[i + 1] == gBattleMons[gBattlerTarget].type2 + && gBattleMons[gBattlerTarget].type1 != gBattleMons[gBattlerTarget].type2 && gTypeEffectiveness[i + 2] == 20) flags |= MOVE_RESULT_SUPER_EFFECTIVE; } } @@ -8262,44 +7108,44 @@ static void atk4A_typecalc2(void) } } - if (gBattleMons[gBankTarget].ability == ABILITY_WONDER_GUARD && !(flags & MOVE_RESULT_NO_EFFECT) && AttacksThisTurn(gBankAttacker, gCurrentMove) == 2 && + if (gBattleMons[gBattlerTarget].ability == ABILITY_WONDER_GUARD && !(flags & MOVE_RESULT_NO_EFFECT) && AttacksThisTurn(gBattlerAttacker, gCurrentMove) == 2 && (!(flags & MOVE_RESULT_SUPER_EFFECTIVE) || ((flags & (MOVE_RESULT_SUPER_EFFECTIVE | MOVE_RESULT_NOT_VERY_EFFECTIVE)) == (MOVE_RESULT_SUPER_EFFECTIVE | MOVE_RESULT_NOT_VERY_EFFECTIVE))) && gBattleMoves[gCurrentMove].power) { gLastUsedAbility = ABILITY_WONDER_GUARD; gMoveResultFlags |= MOVE_RESULT_MISSED; - gLastLandedMoves[gBankTarget] = 0; + gLastLandedMoves[gBattlerTarget] = 0; gBattleCommunication[6] = 3; - RecordAbilityBattle(gBankTarget, gLastUsedAbility); + RecordAbilityBattle(gBattlerTarget, gLastUsedAbility); } if (gMoveResultFlags & MOVE_RESULT_DOESNT_AFFECT_FOE) - gProtectStructs[gBankAttacker].notEffective = 1; + gProtectStructs[gBattlerAttacker].targetNotAffected = 1; gBattlescriptCurrInstr++; } static void atk4B_returnatktoball(void) { - gActiveBattler = gBankAttacker; + gActiveBattler = gBattlerAttacker; if (!(gHitMarker & HITMARKER_FAINTED(gActiveBattler))) { - EmitReturnPokeToBall(0, 0); - MarkBufferBankForExecution(gActiveBattler); + BtlController_EmitReturnMonToBall(0, 0); + MarkBattlerForControllerExec(gActiveBattler); } gBattlescriptCurrInstr++; } static void atk4C_getswitchedmondata(void) { - if (gBattleExecBuffer) + if (gBattleControllerExecFlags) return; gActiveBattler = GetBattleBank(T2_READ_8(gBattlescriptCurrInstr + 1)); gBattlerPartyIndexes[gActiveBattler] = ewram16068arr(gActiveBattler); - EmitGetAttributes(0, 0, gBitTable[gBattlerPartyIndexes[gActiveBattler]]); - MarkBufferBankForExecution(gActiveBattler); + BtlController_EmitGetMonData(0, 0, gBitTable[gBattlerPartyIndexes[gActiveBattler]]); + MarkBattlerForControllerExec(gActiveBattler); gBattlescriptCurrInstr += 2; } @@ -8309,7 +7155,7 @@ static void atk4D_switchindataupdate(void) s32 i; u8 *monData; - if (gBattleExecBuffer) + if (gBattleControllerExecFlags) return; gActiveBattler = GetBattleBank(gBattlescriptCurrInstr[1]); @@ -8352,7 +7198,7 @@ static void atk4D_switchindataupdate(void) static void atk4E_switchinanim(void) { - if (gBattleExecBuffer) + if (gBattleControllerExecFlags) return; gActiveBattler = GetBattleBank(T2_READ_8(gBattlescriptCurrInstr + 1)); @@ -8361,8 +7207,8 @@ static void atk4E_switchinanim(void) GetSetPokedexFlag(SpeciesToNationalPokedexNum(gBattleMons[gActiveBattler].species), 2); } gAbsentBattlerFlags &= ~(gBitTable[gActiveBattler]); - EmitSendOutPoke(0, gBattlerPartyIndexes[gActiveBattler], T2_READ_8(gBattlescriptCurrInstr + 2)); - MarkBufferBankForExecution(gActiveBattler); + BtlController_EmitSwitchInAnim(0, gBattlerPartyIndexes[gActiveBattler], T2_READ_8(gBattlescriptCurrInstr + 2)); + MarkBattlerForControllerExec(gActiveBattler); gBattlescriptCurrInstr += 3; } @@ -8440,8 +7286,8 @@ static void atk4F_jumpifcantswitch(void) void sub_8022A3C(u8 unkown) { BATTLE_PARTY_ID(gActiveBattler) = gBattlerPartyIndexes[gActiveBattler]; - EmitChoosePokemon(0, 1, unkown, 0, gBattleStruct->unk1606C[gActiveBattler]); - MarkBufferBankForExecution(gActiveBattler); + BtlController_EmitChoosePokemon(0, 1, unkown, 0, gBattleStruct->unk1606C[gActiveBattler]); + MarkBattlerForControllerExec(gActiveBattler); } /* @@ -8459,8 +7305,8 @@ static void atk50_openpartyscreen(void) { if (!(gHitMarker & HITMARKER_FAINTED(gActiveBattler))) { - EmitLinkStandbyMsg(0, 2); - MarkBufferBankForExecution(gActiveBattler); + BtlController_EmitLinkStandbyMsg(0, 2); + MarkBattlerForControllerExec(gActiveBattler); } else if (sub_8018018(gActiveBattler, 6, 6) == 0 && !gSpecialStatuses[gActiveBattler].flag40) @@ -8472,8 +7318,8 @@ static void atk50_openpartyscreen(void) { gAbsentBattlerFlags |= gBitTable[gActiveBattler]; gHitMarker &= (~HITMARKER_FAINTED(gActiveBattler)); - EmitLinkStandbyMsg(0, 2); - MarkBufferBankForExecution(gActiveBattler); + BtlController_EmitLinkStandbyMsg(0, 2); + MarkBattlerForControllerExec(gActiveBattler); } } } @@ -8583,9 +7429,9 @@ _08022AF2:\n\ str r0, [r7]\n\ movs r0, 0\n\ movs r1, 0x2\n\ - bl EmitLinkStandbyMsg\n\ + bl BtlController_EmitLinkStandbyMsg\n\ ldrb r0, [r4]\n\ - bl MarkBufferBankForExecution\n\ + bl MarkBattlerForControllerExec\n\ b _08022BA2\n\ .align 2, 0\n\ _08022B44: .4byte gBattlescriptCurrInstr\n\ @@ -8623,9 +7469,9 @@ _08022B90: .4byte gSpecialStatuses\n\ _08022B94:\n\ movs r0, 0\n\ movs r1, 0x2\n\ - bl EmitLinkStandbyMsg\n\ + bl BtlController_EmitLinkStandbyMsg\n\ ldrb r0, [r4]\n\ - bl MarkBufferBankForExecution\n\ + bl MarkBattlerForControllerExec\n\ _08022BA2:\n\ ldrb r0, [r4]\n\ adds r0, 0x1\n\ @@ -8681,9 +7527,9 @@ _08022BC4:\n\ bics r0, r1\n\ str r0, [r2]\n\ movs r0, 0\n\ - bl Emitcmd42\n\ + bl BtlController_EmitCmd42\n\ ldrb r0, [r4]\n\ - bl MarkBufferBankForExecution\n\ + bl MarkBattlerForControllerExec\n\ b _08022C7E\n\ .align 2, 0\n\ _08022C1C: .4byte gHitMarker\n\ @@ -8723,9 +7569,9 @@ _08022C68: .4byte 0x0001606a\n\ _08022C6C:\n\ movs r0, 0\n\ movs r1, 0x2\n\ - bl EmitLinkStandbyMsg\n\ + bl BtlController_EmitLinkStandbyMsg\n\ ldrb r0, [r4]\n\ - bl MarkBufferBankForExecution\n\ + bl MarkBattlerForControllerExec\n\ movs r2, 0x1\n\ mov r9, r2\n\ _08022C7E:\n\ @@ -8766,9 +7612,9 @@ _08022C7E:\n\ bics r0, r1\n\ str r0, [r2]\n\ movs r0, 0\n\ - bl Emitcmd42\n\ + bl BtlController_EmitCmd42\n\ ldrb r0, [r4]\n\ - bl MarkBufferBankForExecution\n\ + bl MarkBattlerForControllerExec\n\ b _08022D40\n\ .align 2, 0\n\ _08022CD8: .4byte gBitTable\n\ @@ -8813,9 +7659,9 @@ _08022D28:\n\ bne _08022D40\n\ movs r0, 0\n\ movs r1, 0x2\n\ - bl EmitLinkStandbyMsg\n\ + bl BtlController_EmitLinkStandbyMsg\n\ ldrb r0, [r4]\n\ - bl MarkBufferBankForExecution\n\ + bl MarkBattlerForControllerExec\n\ _08022D40:\n\ ldr r6, _08022D90 @ =gBitTable\n\ ldr r0, [r6, 0x4]\n\ @@ -8850,9 +7696,9 @@ _08022D40:\n\ bics r0, r1\n\ str r0, [r2]\n\ movs r0, 0\n\ - bl Emitcmd42\n\ + bl BtlController_EmitCmd42\n\ ldrb r0, [r4]\n\ - bl MarkBufferBankForExecution\n\ + bl MarkBattlerForControllerExec\n\ b _08022DF6\n\ .align 2, 0\n\ _08022D90: .4byte gBitTable\n\ @@ -8892,9 +7738,9 @@ _08022DDC: .4byte 0x0001606b\n\ _08022DE0:\n\ movs r0, 0\n\ movs r1, 0x2\n\ - bl EmitLinkStandbyMsg\n\ + bl BtlController_EmitLinkStandbyMsg\n\ ldrb r0, [r4]\n\ - bl MarkBufferBankForExecution\n\ + bl MarkBattlerForControllerExec\n\ movs r0, 0x2\n\ mov r2, r9\n\ orrs r2, r0\n\ @@ -8937,9 +7783,9 @@ _08022DF6:\n\ bics r0, r1\n\ str r0, [r2]\n\ movs r0, 0\n\ - bl Emitcmd42\n\ + bl BtlController_EmitCmd42\n\ ldrb r0, [r4]\n\ - bl MarkBufferBankForExecution\n\ + bl MarkBattlerForControllerExec\n\ b _08022EB8\n\ .align 2, 0\n\ _08022E50: .4byte gBitTable\n\ @@ -8984,9 +7830,9 @@ _08022EA0:\n\ bne _08022EB8\n\ movs r0, 0\n\ movs r1, 0x2\n\ - bl EmitLinkStandbyMsg\n\ + bl BtlController_EmitLinkStandbyMsg\n\ ldrb r0, [r4]\n\ - bl MarkBufferBankForExecution\n\ + bl MarkBattlerForControllerExec\n\ _08022EB8:\n\ ldr r1, _08022EE8 @ =gSpecialStatuses\n\ ldrb r0, [r1]\n\ @@ -9023,10 +7869,10 @@ _08022EF8:\n\ _08022EFC:\n\ movs r0, 0\n\ movs r1, 0x2\n\ - bl EmitLinkStandbyMsg\n\ + bl BtlController_EmitLinkStandbyMsg\n\ ldr r0, _08022F3C @ =gActiveBattler\n\ ldrb r0, [r0]\n\ - bl MarkBufferBankForExecution\n\ + bl MarkBattlerForControllerExec\n\ _08022F0C:\n\ ldr r1, _08022F40 @ =gSpecialStatuses\n\ ldrb r0, [r1, 0x14]\n\ @@ -9063,10 +7909,10 @@ _08022F50:\n\ strb r0, [r1]\n\ movs r0, 0\n\ movs r1, 0x2\n\ - bl EmitLinkStandbyMsg\n\ + bl BtlController_EmitLinkStandbyMsg\n\ ldr r0, _08022F6C @ =gActiveBattler\n\ ldrb r0, [r0]\n\ - bl MarkBufferBankForExecution\n\ + bl MarkBattlerForControllerExec\n\ _08022F62:\n\ ldr r1, _08022F70 @ =gBattlescriptCurrInstr\n\ ldr r0, [r1]\n\ @@ -9135,9 +7981,9 @@ _08022F92:\n\ bics r0, r1\n\ str r0, [r7]\n\ movs r0, 0\n\ - bl Emitcmd42\n\ + bl BtlController_EmitCmd42\n\ ldrb r0, [r6]\n\ - bl MarkBufferBankForExecution\n\ + bl MarkBattlerForControllerExec\n\ b _0802303A\n\ .align 2, 0\n\ _08022FF0: .4byte gBattleTypeFlags\n\ @@ -9212,9 +8058,9 @@ _0802303A:\n\ bics r0, r1\n\ str r0, [r2]\n\ movs r0, 0\n\ - bl Emitcmd42\n\ + bl BtlController_EmitCmd42\n\ ldrb r0, [r5]\n\ - bl MarkBufferBankForExecution\n\ + bl MarkBattlerForControllerExec\n\ b _080230EE\n\ .align 2, 0\n\ _08023098: .4byte gSpecialStatuses\n\ @@ -9408,9 +8254,9 @@ _080231F8:\n\ movs r0, 0\n\ adds r1, r5, 0\n\ movs r3, 0\n\ - bl EmitChoosePokemon\n\ + bl BtlController_EmitChoosePokemon\n\ ldrb r0, [r4]\n\ - bl MarkBufferBankForExecution\n\ + bl MarkBattlerForControllerExec\n\ ldr r0, [r6]\n\ adds r0, 0x6\n\ str r0, [r6]\n\ @@ -9446,9 +8292,9 @@ _08023276:\n\ beq _0802328A\n\ movs r0, 0\n\ movs r1, 0x2\n\ - bl EmitLinkStandbyMsg\n\ + bl BtlController_EmitLinkStandbyMsg\n\ ldrb r0, [r4]\n\ - bl MarkBufferBankForExecution\n\ + bl MarkBattlerForControllerExec\n\ _0802328A:\n\ ldrb r0, [r4]\n\ adds r0, 0x1\n\ @@ -9496,9 +8342,9 @@ _080232C4:\n\ _080232F4:\n\ movs r0, 0\n\ movs r1, 0x2\n\ - bl EmitLinkStandbyMsg\n\ + bl BtlController_EmitLinkStandbyMsg\n\ ldrb r0, [r4]\n\ - bl MarkBufferBankForExecution\n\ + bl MarkBattlerForControllerExec\n\ _08023302:\n\ add sp, 0x4\n\ pop {r3,r4}\n\ @@ -9517,7 +8363,7 @@ _08023318: .4byte gBitTable\n\ static void atk51_switchhandleorder(void) { int i; - if (gBattleExecBuffer) + if (gBattleControllerExecFlags) return; gActiveBattler = GetBattleBank(T2_READ_8(gBattlescriptCurrInstr + 1)); @@ -9551,8 +8397,8 @@ static void atk51_switchhandleorder(void) gBattleTextBuff1[0] = 0xFD; gBattleTextBuff1[1] = 6; - gBattleTextBuff1[2] = gBattleMons[gBankAttacker].species; - gBattleTextBuff1[3] = gBattleMons[gBankAttacker].species >> 8; + gBattleTextBuff1[2] = gBattleMons[gBattlerAttacker].species; + gBattleTextBuff1[3] = gBattleMons[gBattlerAttacker].species >> 8; gBattleTextBuff1[4] = 0xFF; gBattleTextBuff2[0] = 0xFD; @@ -9643,48 +8489,48 @@ static void atk53_trainerslidein(void) else gActiveBattler = GetBattlerAtPosition(1); - EmitTrainerSlide(0); - MarkBufferBankForExecution(gActiveBattler); + BtlController_EmitTrainerSlide(0); + MarkBattlerForControllerExec(gActiveBattler); gBattlescriptCurrInstr += 2; } static void atk54_playse(void) { - gActiveBattler = gBankAttacker; - EmitEffectivenessSound(0, T2_READ_16(gBattlescriptCurrInstr + 1)); - MarkBufferBankForExecution(gActiveBattler); + gActiveBattler = gBattlerAttacker; + BtlController_EmitPlaySE(0, T2_READ_16(gBattlescriptCurrInstr + 1)); + MarkBattlerForControllerExec(gActiveBattler); gBattlescriptCurrInstr += 3; } static void atk55_fanfare(void) { - gActiveBattler = gBankAttacker; - Emitcmd44(0, T2_READ_16(gBattlescriptCurrInstr + 1)); - MarkBufferBankForExecution(gActiveBattler); + gActiveBattler = gBattlerAttacker; + BtlController_EmitPlayFanfareOrBGM(0, T2_READ_16(gBattlescriptCurrInstr + 1)); + MarkBattlerForControllerExec(gActiveBattler); gBattlescriptCurrInstr += 3; } static void atk56_playfaintcry(void) { gActiveBattler = GetBattleBank(T2_READ_8(gBattlescriptCurrInstr + 1)); - EmitFaintingCry(0); - MarkBufferBankForExecution(gActiveBattler); + BtlController_EmitFaintingCry(0); + MarkBattlerForControllerExec(gActiveBattler); gBattlescriptCurrInstr += 2; } static void atk57(void) { gActiveBattler = GetBattlerAtPosition(0); - Emitcmd55(0, gBattleOutcome); - MarkBufferBankForExecution(gActiveBattler); + BtlController_EmitCmd55(0, gBattleOutcome); + MarkBattlerForControllerExec(gActiveBattler); gBattlescriptCurrInstr += 1; } static void atk58_returntoball(void) { gActiveBattler = GetBattleBank(T2_READ_8(gBattlescriptCurrInstr + 1)); - EmitReturnPokeToBall(0, 1); - MarkBufferBankForExecution(gActiveBattler); + BtlController_EmitReturnMonToBall(0, 1); + MarkBattlerForControllerExec(gActiveBattler); gBattlescriptCurrInstr += 2; } @@ -9839,7 +8685,7 @@ static void atk5A_yesnoboxlearnmove(void) gBattlescriptCurrInstr += 5; break; case 5: - if (gBattleExecBuffer == 0) + if (gBattleControllerExecFlags == 0) { gBattleStruct->atk5A_StateTracker = 2; } @@ -9897,8 +8743,8 @@ static void atk5C_hitanimation(void) gBattlescriptCurrInstr += 2; else if (!(gHitMarker & HITMARKER_IGNORE_SUBSTITUTE) || !(gBattleMons[gActiveBattler].status2 & STATUS2_SUBSTITUTE) || gDisableStructs[gActiveBattler].substituteHP == 0) { - EmitHitAnimation(0); - MarkBufferBankForExecution(gActiveBattler); + BtlController_EmitHitAnimation(0); + MarkBattlerForControllerExec(gActiveBattler); gBattlescriptCurrInstr += 2; } else @@ -9923,21 +8769,21 @@ static void atk5D_getmoneyreward(void) { case 0: { - const struct PokeTrainerData1 *data = &gTrainers[gTrainerBattleOpponent].party->noItemNoMoves; - r5 = data[gTrainers[gTrainerBattleOpponent].partySize - 1].lvl; + const struct TrainerMonNoItemDefaultMoves *data = gTrainers[gTrainerBattleOpponent].party.NoItemDefaultMoves; + r5 = data[gTrainers[gTrainerBattleOpponent].partySize - 1].level; } break; case 2: { - const struct PokeTrainerData2 *data = &gTrainers[gTrainerBattleOpponent].party->itemNoMoves; - r5 = data[gTrainers[gTrainerBattleOpponent].partySize - 1].lvl; + const struct TrainerMonItemDefaultMoves *data = gTrainers[gTrainerBattleOpponent].party.ItemDefaultMoves; + r5 = data[gTrainers[gTrainerBattleOpponent].partySize - 1].level; } break; case 1: case 3: { - const struct PokeTrainerData3 *data = &gTrainers[gTrainerBattleOpponent].party->itemMoves; - r5 = data[gTrainers[gTrainerBattleOpponent].partySize - 1].lvl; + const struct TrainerMonItemCustomMoves *data = gTrainers[gTrainerBattleOpponent].party.ItemCustomMoves; + r5 = data[gTrainers[gTrainerBattleOpponent].partySize - 1].level; } break; } @@ -9955,10 +8801,7 @@ static void atk5D_getmoneyreward(void) gBattleTextBuff1[1] = 1; gBattleTextBuff1[2] = 4; gBattleTextBuff1[3] = 5; - gBattleTextBuff1[4] = BYTE0(money_to_give); - gBattleTextBuff1[5] = BYTE1(money_to_give); - gBattleTextBuff1[6] = BYTE2(money_to_give); - gBattleTextBuff1[7] = BYTE3(money_to_give); + T2_WRITE_32(&gBattleTextBuff1[4], money_to_give); gBattleTextBuff1[8] = 0xFF; gBattlescriptCurrInstr += 1; @@ -10239,12 +9082,12 @@ static void atk5E_8025A70(void) switch (gBattleCommunication[0]) { case 0: - EmitGetAttributes(0, REQUEST_ALL_BATTLE, 0); - MarkBufferBankForExecution(gActiveBattler); + BtlController_EmitGetMonData(0, REQUEST_ALL_BATTLE, 0); + MarkBattlerForControllerExec(gActiveBattler); gBattleCommunication[0]++; break; case 1: - if (gBattleExecBuffer == 0) + if (gBattleControllerExecFlags == 0) { int i; struct BattlePokemon* bufferPoke = (struct BattlePokemon*) &gBattleBufferB[gActiveBattler][4]; @@ -10261,9 +9104,9 @@ static void atk5E_8025A70(void) static void atk5F_8025B24(void) { - gActiveBattler = gBankAttacker; - gBankAttacker = gBankTarget; - gBankTarget = gActiveBattler; + gActiveBattler = gBattlerAttacker; + gBattlerAttacker = gBattlerTarget; + gBattlerTarget = gActiveBattler; //what is xor... if (gHitMarker & HITMARKER_PURSUIT_TRAP) gHitMarker &= ~(HITMARKER_PURSUIT_TRAP); @@ -10274,7 +9117,7 @@ static void atk5F_8025B24(void) static void atk60_incrementgamestat(void) { - if (GetBattlerSide(gBankAttacker) == 0) + if (GetBattlerSide(gBattlerAttacker) == 0) { IncrementGameStat(T2_READ_8(gBattlescriptCurrInstr + 1)); } @@ -10286,7 +9129,7 @@ static void atk61_drawpartystatussummary(void) int i; struct Pokemon* party; struct HpAndStatus hpStatus[6]; - if (gBattleExecBuffer) + if (gBattleControllerExecFlags) return; gActiveBattler = GetBattleBank(T2_READ_8(gBattlescriptCurrInstr + 1)); @@ -10308,16 +9151,16 @@ static void atk61_drawpartystatussummary(void) hpStatus[i].status = GetMonData(&party[i], MON_DATA_STATUS); } } - EmitDrawPartyStatusSummary(0, hpStatus, 1); - MarkBufferBankForExecution(gActiveBattler); + BtlController_EmitDrawPartyStatusSummary(0, hpStatus, 1); + MarkBattlerForControllerExec(gActiveBattler); gBattlescriptCurrInstr += 2; } static void atk62_08025C6C(void) { gActiveBattler = GetBattleBank(T2_READ_8(gBattlescriptCurrInstr + 1)); - Emitcmd49(0); - MarkBufferBankForExecution(gActiveBattler); + BtlController_EmitHidePartyStatusSummary(0); + MarkBattlerForControllerExec(gActiveBattler); gBattlescriptCurrInstr += 2; } @@ -10332,13 +9175,13 @@ static void atk63_jumptorandomattack(void) static void atk64_statusanimation(void) { - if (gBattleExecBuffer == 0) + if (gBattleControllerExecFlags == 0) { gActiveBattler = GetBattleBank(T2_READ_8(gBattlescriptCurrInstr + 1)); if (!(gStatuses3[gActiveBattler] & STATUS3_SEMI_INVULNERABLE) && gDisableStructs[gActiveBattler].substituteHP == 0 && !(gHitMarker & HITMARKER_NO_ANIMATIONS)) { - EmitStatusAnimation(0, 0, gBattleMons[gActiveBattler].status1); - MarkBufferBankForExecution(gActiveBattler); + BtlController_EmitStatusAnimation(0, 0, gBattleMons[gActiveBattler].status1); + MarkBattlerForControllerExec(gActiveBattler); } gBattlescriptCurrInstr += 2; } @@ -10346,15 +9189,15 @@ static void atk64_statusanimation(void) static void atk65_status2animation(void) { - if (gBattleExecBuffer == 0) + if (gBattleControllerExecFlags == 0) { u32 possible_to_anim; gActiveBattler = GetBattleBank(T1_READ_8(gBattlescriptCurrInstr + 1)); possible_to_anim = T1_READ_32(gBattlescriptCurrInstr + 2); if (!(gStatuses3[gActiveBattler] & STATUS3_SEMI_INVULNERABLE) && gDisableStructs[gActiveBattler].substituteHP == 0 && !(gHitMarker & HITMARKER_NO_ANIMATIONS)) { - EmitStatusAnimation(0, 1, gBattleMons[gActiveBattler].status2 & possible_to_anim); - MarkBufferBankForExecution(gActiveBattler); + BtlController_EmitStatusAnimation(0, 1, gBattleMons[gActiveBattler].status2 & possible_to_anim); + MarkBattlerForControllerExec(gActiveBattler); } gBattlescriptCurrInstr += 6; } @@ -10362,15 +9205,15 @@ static void atk65_status2animation(void) static void atk66_chosenstatusanimation(void) { - if (gBattleExecBuffer == 0) + if (gBattleControllerExecFlags == 0) { u32 status; gActiveBattler = GetBattleBank(T1_READ_8(gBattlescriptCurrInstr + 1)); status = T1_READ_32(gBattlescriptCurrInstr + 3); if (!(gStatuses3[gActiveBattler] & STATUS3_SEMI_INVULNERABLE) && gDisableStructs[gActiveBattler].substituteHP == 0 && !(gHitMarker & HITMARKER_NO_ANIMATIONS)) { - EmitStatusAnimation(0, T1_READ_8(gBattlescriptCurrInstr + 2), status); - MarkBufferBankForExecution(gActiveBattler); + BtlController_EmitStatusAnimation(0, T1_READ_8(gBattlescriptCurrInstr + 2), status); + MarkBattlerForControllerExec(gActiveBattler); } gBattlescriptCurrInstr += 7; } @@ -10431,40 +9274,40 @@ static void atk68_cancelallactions(void) static void atk69_adjustsetdamage(void) //literally a copy of atk07 except theres no rand dmg modifier... { u8 hold_effect, quality; - if (gBattleMons[gBankTarget].item == ITEM_ENIGMA_BERRY) - hold_effect = gEnigmaBerries[gBankTarget].holdEffect, quality = gEnigmaBerries[gBankTarget].holdEffectParam; + if (gBattleMons[gBattlerTarget].item == ITEM_ENIGMA_BERRY) + hold_effect = gEnigmaBerries[gBattlerTarget].holdEffect, quality = gEnigmaBerries[gBattlerTarget].holdEffectParam; else { - hold_effect = ItemId_GetHoldEffect(gBattleMons[gBankTarget].item); - quality = ItemId_GetHoldEffectParam(gBattleMons[gBankTarget].item); + hold_effect = ItemId_GetHoldEffect(gBattleMons[gBattlerTarget].item); + quality = ItemId_GetHoldEffectParam(gBattleMons[gBattlerTarget].item); } - gStringBank = gBankTarget; + gPotentialItemEffectBattler = gBattlerTarget; if (hold_effect == HOLD_EFFECT_FOCUS_BAND && (Random() % 100) < quality) { - RecordItemBattle(gBankTarget, hold_effect); - gSpecialStatuses[gBankTarget].focusBanded = 1; + RecordItemBattle(gBattlerTarget, hold_effect); + gSpecialStatuses[gBattlerTarget].focusBanded = 1; } - if (gBattleMons[gBankTarget].status2 & STATUS2_SUBSTITUTE) + if (gBattleMons[gBattlerTarget].status2 & STATUS2_SUBSTITUTE) goto END; - if (gBattleMoves[gCurrentMove].effect != EFFECT_FALSE_SWIPE && !gProtectStructs[gBankTarget].endured - && !gSpecialStatuses[gBankTarget].focusBanded) + if (gBattleMoves[gCurrentMove].effect != EFFECT_FALSE_SWIPE && !gProtectStructs[gBattlerTarget].endured + && !gSpecialStatuses[gBattlerTarget].focusBanded) goto END; - if (gBattleMons[gBankTarget].hp > gBattleMoveDamage) + if (gBattleMons[gBattlerTarget].hp > gBattleMoveDamage) goto END; - gBattleMoveDamage = gBattleMons[gBankTarget].hp - 1; + gBattleMoveDamage = gBattleMons[gBattlerTarget].hp - 1; - if (gProtectStructs[gBankTarget].endured) + if (gProtectStructs[gBattlerTarget].endured) { gMoveResultFlags |= MOVE_RESULT_FOE_ENDURED; goto END; } - if (gSpecialStatuses[gBankTarget].focusBanded) + if (gSpecialStatuses[gBattlerTarget].focusBanded) { gMoveResultFlags |= MOVE_RESULT_FOE_HUNG_ON; - gLastUsedItem = gBattleMons[gBankTarget].item; + gLastUsedItem = gBattleMons[gBattlerTarget].item; } END: @@ -10477,8 +9320,8 @@ void atk6A_removeitem(void) USED_HELD_ITEMS(gActiveBattler) = gBattleMons[gActiveBattler].item; gBattleMons[gActiveBattler].item = 0; - EmitSetMonData(0, REQUEST_HELDITEM_BATTLE, 0, 2, &gBattleMons[gActiveBattler].item); - MarkBufferBankForExecution(gActiveBattler); + BtlController_EmitSetMonData(0, REQUEST_HELDITEM_BATTLE, 0, 2, &gBattleMons[gActiveBattler].item); + MarkBattlerForControllerExec(gActiveBattler); gBattlescriptCurrInstr += 2; } @@ -10486,17 +9329,20 @@ static void atk6B_atknameinbuff1(void) { gBattleTextBuff1[0] = 0xFD; gBattleTextBuff1[1] = 7; - gBattleTextBuff1[2] = gBankAttacker; - gBattleTextBuff1[3] = gBattlerPartyIndexes[gBankAttacker]; + gBattleTextBuff1[2] = gBattlerAttacker; + gBattleTextBuff1[3] = gBattlerPartyIndexes[gBattlerAttacker]; gBattleTextBuff1[4] = 0xFF; gBattlescriptCurrInstr++; } #ifdef NONMATCHING +extern const u8 BattleText_Format2[]; + +// TODO: finish static void atk6C_drawlvlupbox(void) { - u8 r1 = 0; - u8 r7 = 0; + UNUSED u8 r1 = 0; + UNUSED u8 r7 = 0; switch (gBattleStruct->atk6C_statetracker) { case 0: @@ -10916,7 +9762,7 @@ _08024C48: .4byte gBattlescriptCurrInstr\n\ .syntax divided"); } -#endif +#endif // NONMATCHING static void atk6D_resetsentmonsvalue(void) { @@ -10926,15 +9772,15 @@ static void atk6D_resetsentmonsvalue(void) static void atk6E_setatktoplayer0(void) { - gBankAttacker = GetBattlerAtPosition(0); + gBattlerAttacker = GetBattlerAtPosition(0); gBattlescriptCurrInstr++; } static void atk6F_makevisible(void) { gActiveBattler = GetBattleBank(T2_READ_8(gBattlescriptCurrInstr + 1)); - EmitSpriteInvisibility(0, 0); - MarkBufferBankForExecution(gActiveBattler); + BtlController_EmitSpriteInvisibility(0, 0); + MarkBattlerForControllerExec(gActiveBattler); gBattlescriptCurrInstr += 2; } @@ -11021,8 +9867,8 @@ static void atk74_hpthresholds2(void) static void atk75_useitemonopponent(void) { - gBankInMenu = gBankAttacker; - PokemonUseItemEffects(&gEnemyParty[gBattlerPartyIndexes[gBankAttacker]], gLastUsedItem, gBattlerPartyIndexes[gBankAttacker], 0, 1); + gBankInMenu = gBattlerAttacker; + PokemonUseItemEffects(&gEnemyParty[gBattlerPartyIndexes[gBattlerAttacker]], gLastUsedItem, gBattlerPartyIndexes[gBattlerAttacker], 0, 1); gBattlescriptCurrInstr += 1; } @@ -11037,19 +9883,19 @@ static void atk76_various(void) case 1: { u8 side; - gBankAttacker = gBankTarget; - side = GetBattlerSide(gBankAttacker) ^ 1; + gBattlerAttacker = gBattlerTarget; + side = GetBattlerSide(gBattlerAttacker) ^ 1; if (gSideTimers[side].followmeTimer && gBattleMons[gSideTimers[side].followmeTarget].hp) - gBankTarget = gSideTimers[side].followmeTarget; + gBattlerTarget = gSideTimers[side].followmeTarget; else - gBankTarget = gActiveBattler; + gBattlerTarget = gActiveBattler; } break; case 2: gBattleCommunication[0] = CanRunFromBattle(); break; case 3: - gBankTarget = GetMoveTarget(gCurrentMove, 0); + gBattlerTarget = GetMoveTarget(gCurrentMove, 0); break; case 4: if (gHitMarker & HITMARKER_FAINTED(gActiveBattler)) @@ -11058,7 +9904,7 @@ static void atk76_various(void) gBattleCommunication[0] = 0; break; case 5: - gSpecialStatuses[gActiveBattler].intimidatedPoke = 0; + gSpecialStatuses[gActiveBattler].intimidatedMon = 0; gSpecialStatuses[gActiveBattler].traced = 0; break; case 6: @@ -11095,30 +9941,30 @@ static void atk76_various(void) static void atk77_setprotectlike(void) //protect and endure { bool8 not_last_turn = 1; - u16 last_move = gUnknown_02024C4C[gBankAttacker]; + u16 last_move = gUnknown_02024C4C[gBattlerAttacker]; if (last_move != MOVE_PROTECT && last_move != MOVE_DETECT && last_move != MOVE_ENDURE) - gDisableStructs[gBankAttacker].protectUses = 0; + gDisableStructs[gBattlerAttacker].protectUses = 0; if (gCurrentTurnActionNumber == (gBattlersCount - 1)) not_last_turn = 0; - if (sProtectSuccessRates[gDisableStructs[gBankAttacker].protectUses] > Random() && not_last_turn) + if (sProtectSuccessRates[gDisableStructs[gBattlerAttacker].protectUses] > Random() && not_last_turn) { if (gBattleMoves[gCurrentMove].effect == EFFECT_PROTECT) { - gProtectStructs[gBankAttacker].protected = 1; + gProtectStructs[gBattlerAttacker].protected = 1; gBattleCommunication[MULTISTRING_CHOOSER] = 0; } if (gBattleMoves[gCurrentMove].effect == EFFECT_ENDURE) //what is else if { - gProtectStructs[gBankAttacker].endured = 1; + gProtectStructs[gBattlerAttacker].endured = 1; gBattleCommunication[MULTISTRING_CHOOSER] = 1; } - gDisableStructs[gBankAttacker].protectUses++; + gDisableStructs[gBattlerAttacker].protectUses++; } else { - gDisableStructs[gBankAttacker].protectUses = 0; + gDisableStructs[gBattlerAttacker].protectUses = 0; gBattleCommunication[MULTISTRING_CHOOSER] = 2; gMoveResultFlags |= MOVE_RESULT_MISSED; } @@ -11128,48 +9974,48 @@ static void atk77_setprotectlike(void) //protect and endure static void atk78_faintifabilitynotdamp(void) { - if (gBattleExecBuffer) + if (gBattleControllerExecFlags) return; - for (gBankTarget = 0; gBankTarget < gBattlersCount; gBankTarget++) + for (gBattlerTarget = 0; gBattlerTarget < gBattlersCount; gBattlerTarget++) { - if (gBattleMons[gBankTarget].ability == ABILITY_DAMP) + if (gBattleMons[gBattlerTarget].ability == ABILITY_DAMP) break; } - if (gBankTarget == gBattlersCount) + if (gBattlerTarget == gBattlersCount) { - gActiveBattler = gBankAttacker; + gActiveBattler = gBattlerAttacker; gBattleMoveDamage = gBattleMons[gActiveBattler].hp; - EmitHealthBarUpdate(0, 0x7FFF); - MarkBufferBankForExecution(gActiveBattler); + BtlController_EmitHealthBarUpdate(0, 0x7FFF); + MarkBattlerForControllerExec(gActiveBattler); gBattlescriptCurrInstr++; - for (gBankTarget = 0; gBankTarget < gBattlersCount; gBankTarget++) + for (gBattlerTarget = 0; gBattlerTarget < gBattlersCount; gBattlerTarget++) { - if (gBankTarget == gBankAttacker) + if (gBattlerTarget == gBattlerAttacker) continue; - if (!(gAbsentBattlerFlags & gBitTable[gBankTarget])) + if (!(gAbsentBattlerFlags & gBitTable[gBattlerTarget])) break; } } else { gLastUsedAbility = ABILITY_DAMP; - RecordAbilityBattle(gBankTarget, gBattleMons[gBankTarget].ability); + RecordAbilityBattle(gBattlerTarget, gBattleMons[gBattlerTarget].ability); gBattlescriptCurrInstr = BattleScript_DampStopsExplosion; } } static void atk79_setatkhptozero(void) { - if (gBattleExecBuffer) + if (gBattleControllerExecFlags) return; - gActiveBattler = gBankAttacker; + gActiveBattler = gBattlerAttacker; gBattleMons[gActiveBattler].hp = 0; - EmitSetMonData(0, REQUEST_HP_BATTLE, 0, 2, &gBattleMons[gActiveBattler].hp); - MarkBufferBankForExecution(gActiveBattler); + BtlController_EmitSetMonData(0, REQUEST_HP_BATTLE, 0, 2, &gBattleMons[gActiveBattler].hp); + MarkBattlerForControllerExec(gActiveBattler); gBattlescriptCurrInstr++; } @@ -11180,15 +10026,15 @@ static void atk7A_jumpifnexttargetvalid(void) //used by intimidate to loop throu if (gBattleTypeFlags & BATTLE_TYPE_DOUBLE) { - for (gBankTarget++; ; gBankTarget++) + for (gBattlerTarget++; ; gBattlerTarget++) { - if (gBankTarget == gBankAttacker) + if (gBattlerTarget == gBattlerAttacker) continue; - if (!(gAbsentBattlerFlags & gBitTable[gBankTarget])) + if (!(gAbsentBattlerFlags & gBitTable[gBattlerTarget])) break; } - if (gBankTarget >= gBattlersCount) + if (gBattlerTarget >= gBattlersCount) gBattlescriptCurrInstr += 5; else gBattlescriptCurrInstr = jump_loc; @@ -11202,14 +10048,14 @@ static void atk7B_tryhealhalfhealth(void) u8* fail_loc = T1_READ_PTR(gBattlescriptCurrInstr + 1); if (T2_READ_8(gBattlescriptCurrInstr + 5) == 1) - gBankTarget = gBankAttacker; + gBattlerTarget = gBattlerAttacker; - gBattleMoveDamage = gBattleMons[gBankTarget].maxHP / 2; + gBattleMoveDamage = gBattleMons[gBattlerTarget].maxHP / 2; if (gBattleMoveDamage == 0) gBattleMoveDamage = 1; gBattleMoveDamage *= -1; - if (gBattleMons[gBankTarget].hp == gBattleMons[gBankTarget].maxHP) + if (gBattleMons[gBattlerTarget].hp == gBattleMons[gBattlerTarget].maxHP) gBattlescriptCurrInstr = fail_loc; else gBattlescriptCurrInstr += 6; @@ -11217,15 +10063,15 @@ static void atk7B_tryhealhalfhealth(void) static void atk7C_trymirrormove(void) { - u16 r7 = ewram160ACarr2(0, gBankAttacker) | (ewram160ACarr2(1, gBankAttacker) << 8); - u16 r6 = ewram16100arr2(0, gBankAttacker) | (ewram16100arr2(1, gBankAttacker) << 8); - u16 r5 = ewram16100arr2(2, gBankAttacker) | (ewram16100arr2(3, gBankAttacker) << 8); + u16 r7 = ewram160ACarr2(0, gBattlerAttacker) | (ewram160ACarr2(1, gBattlerAttacker) << 8); + u16 r6 = ewram16100arr2(0, gBattlerAttacker) | (ewram16100arr2(1, gBattlerAttacker) << 8); + u16 r5 = ewram16100arr2(2, gBattlerAttacker) | (ewram16100arr2(3, gBattlerAttacker) << 8); if (r7 != 0 && r7 != 0xFFFF) { gHitMarker &= ~(HITMARKER_ATTACKSTRING_PRINTED); gCurrentMove = r7; - gBankTarget = GetMoveTarget(gCurrentMove, 0); + gBattlerTarget = GetMoveTarget(gCurrentMove, 0); gBattlescriptCurrInstr = gBattleScriptsForMoveEffects[gBattleMoves[gCurrentMove].effect]; } else if (r6 != 0 && r5 != 0 && r6 != 0xFFFF && r5 != 0xFFFF) @@ -11235,26 +10081,26 @@ static void atk7C_trymirrormove(void) gCurrentMove = r6; else gCurrentMove = r5; - gBankTarget = GetMoveTarget(gCurrentMove, 0); + gBattlerTarget = GetMoveTarget(gCurrentMove, 0); gBattlescriptCurrInstr = gBattleScriptsForMoveEffects[gBattleMoves[gCurrentMove].effect]; } else if (r6 != 0 && r6 != 0xFFFF) { gHitMarker &= ~(HITMARKER_ATTACKSTRING_PRINTED); gCurrentMove = r6; - gBankTarget = GetMoveTarget(gCurrentMove, 0); + gBattlerTarget = GetMoveTarget(gCurrentMove, 0); gBattlescriptCurrInstr = gBattleScriptsForMoveEffects[gBattleMoves[gCurrentMove].effect]; } else if (r5 != 0 && r5 != 0xFFFF) { gHitMarker &= ~(HITMARKER_ATTACKSTRING_PRINTED); gCurrentMove = r5; - gBankTarget = GetMoveTarget(gCurrentMove, 0); + gBattlerTarget = GetMoveTarget(gCurrentMove, 0); gBattlescriptCurrInstr = gBattleScriptsForMoveEffects[gBattleMoves[gCurrentMove].effect]; } else { - gSpecialStatuses[gBankAttacker].flag20 = 1; + gSpecialStatuses[gBattlerAttacker].ppNotAffectedByPressure = 1; gBattlescriptCurrInstr++; } } @@ -11277,15 +10123,15 @@ static void atk7D_setrain(void) static void atk7E_setreflect(void) { - if (gSideAffecting[GetBattlerPosition(gBankAttacker) & 1] & SIDE_STATUS_REFLECT) + if (gSideAffecting[GetBattlerPosition(gBattlerAttacker) & 1] & SIDE_STATUS_REFLECT) { gMoveResultFlags |= MOVE_RESULT_MISSED; gBattleCommunication[MULTISTRING_CHOOSER] = 0; } else { - gSideAffecting[GetBattlerPosition(gBankAttacker) & 1] |= SIDE_STATUS_REFLECT; - gSideTimers[GetBattlerPosition(gBankAttacker) & 1].reflectTimer = 5; + gSideAffecting[GetBattlerPosition(gBattlerAttacker) & 1] |= SIDE_STATUS_REFLECT; + gSideTimers[GetBattlerPosition(gBattlerAttacker) & 1].reflectTimer = 5; if (gBattleTypeFlags & BATTLE_TYPE_DOUBLE && CountAliveMons(1) == 2) gBattleCommunication[MULTISTRING_CHOOSER] = 2; else @@ -11296,20 +10142,20 @@ static void atk7E_setreflect(void) static void atk7F_setseeded(void) { - if (gMoveResultFlags & MOVE_RESULT_NO_EFFECT || gStatuses3[gBankTarget] & STATUS3_LEECHSEED) + if (gMoveResultFlags & MOVE_RESULT_NO_EFFECT || gStatuses3[gBattlerTarget] & STATUS3_LEECHSEED) { gMoveResultFlags |= MOVE_RESULT_MISSED; gBattleCommunication[MULTISTRING_CHOOSER] = 1; } - else if (gBattleMons[gBankTarget].type1 == TYPE_GRASS || gBattleMons[gBankTarget].type2 == TYPE_GRASS) + else if (gBattleMons[gBattlerTarget].type1 == TYPE_GRASS || gBattleMons[gBattlerTarget].type2 == TYPE_GRASS) { gMoveResultFlags |= MOVE_RESULT_MISSED; gBattleCommunication[MULTISTRING_CHOOSER] = 2; } else { - gStatuses3[gBankTarget] |= gBankAttacker; - gStatuses3[gBankTarget] |= STATUS3_LEECHSEED; + gStatuses3[gBattlerTarget] |= gBattlerAttacker; + gStatuses3[gBattlerTarget] |= STATUS3_LEECHSEED; gBattleCommunication[MULTISTRING_CHOOSER] = 0; } @@ -11327,8 +10173,8 @@ static void atk80_manipulatedamage(void) gBattleMoveDamage /= 2; if (gBattleMoveDamage == 0) gBattleMoveDamage = 1; - if ((gBattleMons[gBankTarget].maxHP / 2) < gBattleMoveDamage) - gBattleMoveDamage = gBattleMons[gBankTarget].maxHP / 2; + if ((gBattleMons[gBattlerTarget].maxHP / 2) < gBattleMoveDamage) + gBattleMoveDamage = gBattleMons[gBattlerTarget].maxHP / 2; break; case 2: gBattleMoveDamage *= 2; @@ -11341,20 +10187,20 @@ static void atk80_manipulatedamage(void) static void atk81_trysetrest(void) { u8* fail_loc = T1_READ_PTR(gBattlescriptCurrInstr + 1); - gActiveBattler = gBankTarget = gBankAttacker; - gBattleMoveDamage = gBattleMons[gBankTarget].maxHP * (-1); - if (gBattleMons[gBankTarget].hp == gBattleMons[gBankTarget].maxHP) + gActiveBattler = gBattlerTarget = gBattlerAttacker; + gBattleMoveDamage = gBattleMons[gBattlerTarget].maxHP * (-1); + if (gBattleMons[gBattlerTarget].hp == gBattleMons[gBattlerTarget].maxHP) gBattlescriptCurrInstr = fail_loc; else { - if (gBattleMons[gBankTarget].status1 & ((u8)(~STATUS_SLEEP))) + if (gBattleMons[gBattlerTarget].status1 & ((u8)(~STATUS_SLEEP))) gBattleCommunication[MULTISTRING_CHOOSER] = 1; else gBattleCommunication[MULTISTRING_CHOOSER] = 0; - gBattleMons[gBankTarget].status1 = 3; - EmitSetMonData(0, REQUEST_STATUS_BATTLE, 0, 4, &gBattleMons[gActiveBattler].status1); - MarkBufferBankForExecution(gActiveBattler); + gBattleMons[gBattlerTarget].status1 = 3; + BtlController_EmitSetMonData(0, REQUEST_STATUS_BATTLE, 0, 4, &gBattleMons[gActiveBattler].status1); + MarkBattlerForControllerExec(gActiveBattler); gBattlescriptCurrInstr += 5; } } @@ -11363,7 +10209,7 @@ static void atk82_jumpifnotfirstturn(void) { u8* jump_loc = T1_READ_PTR(gBattlescriptCurrInstr + 1); - if (gDisableStructs[gBankAttacker].isFirstTurn) + if (gDisableStructs[gBattlerAttacker].isFirstTurn) gBattlescriptCurrInstr += 5; else gBattlescriptCurrInstr = jump_loc; @@ -11382,9 +10228,9 @@ bool8 UproarWakeUpCheck(u8 bank) if (!(gBattleMons[i].status2 & STATUS2_UPROAR) || gBattleMons[bank].ability == ABILITY_SOUNDPROOF) //wtf gamefreak, you should check this only once, not every time in a loop... continue; gBattleStruct->scriptingActive = i; - if (gBankTarget == 0xFF) - gBankTarget = i; - else if (gBankTarget == i) + if (gBattlerTarget == 0xFF) + gBattlerTarget = i; + else if (gBattlerTarget == i) gBattleCommunication[MULTISTRING_CHOOSER] = 0; else gBattleCommunication[MULTISTRING_CHOOSER] = 1; @@ -11399,14 +10245,14 @@ bool8 UproarWakeUpCheck(u8 bank) static void atk84_jumpifcantmakeasleep(void) { u8* jump_loc = T1_READ_PTR(gBattlescriptCurrInstr + 1); - if (UproarWakeUpCheck(gBankTarget)) + if (UproarWakeUpCheck(gBattlerTarget)) gBattlescriptCurrInstr = jump_loc; - else if (gBattleMons[gBankTarget].ability == ABILITY_INSOMNIA || gBattleMons[gBankTarget].ability == ABILITY_VITAL_SPIRIT) + else if (gBattleMons[gBattlerTarget].ability == ABILITY_INSOMNIA || gBattleMons[gBattlerTarget].ability == ABILITY_VITAL_SPIRIT) { - gLastUsedAbility = gBattleMons[gBankTarget].ability; + gLastUsedAbility = gBattleMons[gBattlerTarget].ability; gBattleCommunication[MULTISTRING_CHOOSER] = 2; gBattlescriptCurrInstr = jump_loc; - RecordAbilityBattle(gBankTarget, gLastUsedAbility); + RecordAbilityBattle(gBattlerTarget, gLastUsedAbility); } else { @@ -11416,19 +10262,19 @@ static void atk84_jumpifcantmakeasleep(void) static void atk85_stockpile(void) { - if (gDisableStructs[gBankAttacker].stockpileCounter == 3) + if (gDisableStructs[gBattlerAttacker].stockpileCounter == 3) { gMoveResultFlags |= MOVE_RESULT_MISSED; gBattleCommunication[MULTISTRING_CHOOSER] = 1; } else { - gDisableStructs[gBankAttacker].stockpileCounter++; + gDisableStructs[gBattlerAttacker].stockpileCounter++; gBattleTextBuff1[0] = 0xFD; gBattleTextBuff1[1] = 1; gBattleTextBuff1[2] = 1; gBattleTextBuff1[3] = 1; - gBattleTextBuff1[4] = gDisableStructs[gBankAttacker].stockpileCounter; + gBattleTextBuff1[4] = gDisableStructs[gBattlerAttacker].stockpileCounter; gBattleTextBuff1[5] = 0xFF; gBattleCommunication[MULTISTRING_CHOOSER] = 0; } @@ -11438,7 +10284,7 @@ static void atk85_stockpile(void) static void atk86_stockpiletobasedamage(void) { u8* jump_loc = T1_READ_PTR(gBattlescriptCurrInstr + 1); - if (gDisableStructs[gBankAttacker].stockpileCounter == 0) + if (gDisableStructs[gBattlerAttacker].stockpileCounter == 0) { gBattlescriptCurrInstr = jump_loc; } @@ -11446,16 +10292,16 @@ static void atk86_stockpiletobasedamage(void) { if (gBattleCommunication[6] != 1) { - gBattleMoveDamage = CalculateBaseDamage(&gBattleMons[gBankAttacker], &gBattleMons[gBankTarget], gCurrentMove, - gSideAffecting[GetBattlerPosition(gBankTarget) & 1], 0, - 0, gBankAttacker, gBankTarget) - * gDisableStructs[gBankAttacker].stockpileCounter; - gBattleStruct->animTurn = gDisableStructs[gBankAttacker].stockpileCounter; + gBattleMoveDamage = CalculateBaseDamage(&gBattleMons[gBattlerAttacker], &gBattleMons[gBattlerTarget], gCurrentMove, + gSideAffecting[GetBattlerPosition(gBattlerTarget) & 1], 0, + 0, gBattlerAttacker, gBattlerTarget) + * gDisableStructs[gBattlerAttacker].stockpileCounter; + gBattleStruct->animTurn = gDisableStructs[gBattlerAttacker].stockpileCounter; - if (gProtectStructs[gBankAttacker].helpingHand) + if (gProtectStructs[gBattlerAttacker].helpingHand) gBattleMoveDamage = gBattleMoveDamage * 15 / 10; } - gDisableStructs[gBankAttacker].stockpileCounter = 0; + gDisableStructs[gBattlerAttacker].stockpileCounter = 0; gBattlescriptCurrInstr += 5; } } @@ -11463,28 +10309,28 @@ static void atk86_stockpiletobasedamage(void) static void atk87_stockpiletohpheal(void) { u8* jump_loc = T1_READ_PTR(gBattlescriptCurrInstr + 1); - if (gDisableStructs[gBankAttacker].stockpileCounter == 0) + if (gDisableStructs[gBattlerAttacker].stockpileCounter == 0) { gBattlescriptCurrInstr = jump_loc; gBattleCommunication[MULTISTRING_CHOOSER] = 0; } - else if (gBattleMons[gBankAttacker].maxHP == gBattleMons[gBankAttacker].hp) + else if (gBattleMons[gBattlerAttacker].maxHP == gBattleMons[gBattlerAttacker].hp) { - gDisableStructs[gBankAttacker].stockpileCounter = 0; + gDisableStructs[gBattlerAttacker].stockpileCounter = 0; gBattlescriptCurrInstr = jump_loc; - gBankTarget = gBankAttacker; + gBattlerTarget = gBattlerAttacker; gBattleCommunication[MULTISTRING_CHOOSER] = 1; } else { - gBattleMoveDamage = gBattleMons[gBankAttacker].maxHP / (1 << (3 - gDisableStructs[gBankAttacker].stockpileCounter)); + gBattleMoveDamage = gBattleMons[gBattlerAttacker].maxHP / (1 << (3 - gDisableStructs[gBattlerAttacker].stockpileCounter)); if (gBattleMoveDamage == 0) gBattleMoveDamage = 1; gBattleMoveDamage *= -1; - gBattleStruct->animTurn = gDisableStructs[gBankAttacker].stockpileCounter; - gDisableStructs[gBankAttacker].stockpileCounter = 0; + gBattleStruct->animTurn = gDisableStructs[gBattlerAttacker].stockpileCounter; + gDisableStructs[gBattlerAttacker].stockpileCounter = 0; gBattlescriptCurrInstr += 5; - gBankTarget = gBankAttacker; + gBattlerTarget = gBattlerAttacker; } } @@ -11503,9 +10349,9 @@ static u8 ChangeStatBuffs(s8 statValue, u8 statId, u8 flags, const u8 *BS_ptr) u32 index; if (flags & MOVE_EFFECT_AFFECTS_USER) - gActiveBattler = gBankAttacker; + gActiveBattler = gBattlerAttacker; else - gActiveBattler = gBankTarget; + gActiveBattler = gBattlerTarget; flags &= ~(MOVE_EFFECT_AFFECTS_USER); @@ -11621,7 +10467,7 @@ static u8 ChangeStatBuffs(s8 statValue, u8 statId, u8 flags, const u8 *BS_ptr) if (gBattleMons[gActiveBattler].statStages[statId] == 0) gBattleCommunication[MULTISTRING_CHOOSER] = 2; else - gBattleCommunication[MULTISTRING_CHOOSER] = (gBankTarget == gActiveBattler); + gBattleCommunication[MULTISTRING_CHOOSER] = (gBattlerTarget == gActiveBattler); } } @@ -11648,7 +10494,7 @@ static u8 ChangeStatBuffs(s8 statValue, u8 statId, u8 flags, const u8 *BS_ptr) if (gBattleMons[gActiveBattler].statStages[statId] == 0xC) gBattleCommunication[MULTISTRING_CHOOSER] = 2; else - gBattleCommunication[MULTISTRING_CHOOSER] = (gBankTarget == gActiveBattler); + gBattleCommunication[MULTISTRING_CHOOSER] = (gBattlerTarget == gActiveBattler); } gBattleMons[gActiveBattler].statStages[statId] += statValue; @@ -11688,16 +10534,16 @@ static void atk8A_normalisebuffs(void) //haze static void atk8B_setbide(void) { - gBattleMons[gBankAttacker].status2 |= STATUS2_MULTIPLETURNS; - gLockedMoves[gBankAttacker] = gCurrentMove; - gTakenDmg[gBankAttacker] = 0; - gBattleMons[gBankAttacker].status2 |= (STATUS2_BIDE - 0x100); //2 turns + gBattleMons[gBattlerAttacker].status2 |= STATUS2_MULTIPLETURNS; + gLockedMoves[gBattlerAttacker] = gCurrentMove; + gTakenDmg[gBattlerAttacker] = 0; + gBattleMons[gBattlerAttacker].status2 |= (STATUS2_BIDE - 0x100); //2 turns gBattlescriptCurrInstr++; } static void atk8C_confuseifrepeatingattackends(void) { - if (!(gBattleMons[gBankAttacker].status2 & STATUS2_LOCK_CONFUSE)) + if (!(gBattleMons[gBattlerAttacker].status2 & STATUS2_LOCK_CONFUSE)) gBattleCommunication[MOVE_EFFECT_BYTE] = 0x75; gBattlescriptCurrInstr++; } @@ -11730,19 +10576,19 @@ static void atk8E_initmultihitstring(void) static bool8 sub_80264C0(void) { - if (gBattleMons[gBankAttacker].level >= gBattleMons[gBankTarget].level) + if (gBattleMons[gBattlerAttacker].level >= gBattleMons[gBattlerTarget].level) { - ewram16064arr(gBankTarget) = gBattlerPartyIndexes[gBankTarget]; + ewram16064arr(gBattlerTarget) = gBattlerPartyIndexes[gBattlerTarget]; } else { u16 random = Random() & 0xFF; - if ((u32)((random * (gBattleMons[gBankAttacker].level + gBattleMons[gBankTarget].level) >> 8) + 1) <= (gBattleMons[gBankTarget].level / 4)) + if ((u32)((random * (gBattleMons[gBattlerAttacker].level + gBattleMons[gBattlerTarget].level) >> 8) + 1) <= (gBattleMons[gBattlerTarget].level / 4)) { gBattlescriptCurrInstr = T1_READ_PTR(gBattlescriptCurrInstr + 1); return 0; } - ewram16064arr(gBankTarget) = gBattlerPartyIndexes[gBankTarget]; + ewram16064arr(gBattlerTarget) = gBattlerPartyIndexes[gBattlerTarget]; } gBattlescriptCurrInstr = BattleScript_SuccessForceOut; return 1; @@ -11756,7 +10602,7 @@ static void atk8F_forcerandomswitch(void) struct Pokemon* party; u8 valid; u8 val; - if (!GetBattlerSide(gBankTarget)) + if (!GetBattlerSide(gBattlerTarget)) party = gPlayerParty; else party = gEnemyParty; @@ -11765,7 +10611,7 @@ static void atk8F_forcerandomswitch(void) { valid = 0; val = 0; - if (sub_803FBFC(sub_803FC34(gBankTarget)) == 1) + if (sub_803FBFC(sub_803FC34(gBattlerTarget)) == 1) val = 3; for (i = val; i < val + 3; i++) { @@ -11800,11 +10646,11 @@ static void atk8F_forcerandomswitch(void) do { val = Random() % 3; - if (sub_803FBFC(sub_803FC34(gBankTarget)) == 1) + if (sub_803FBFC(sub_803FC34(gBattlerTarget)) == 1) i = val + 3; else i = val; - } while (i == gBattlerPartyIndexes[gBankTarget] || i == gBattlerPartyIndexes[gBankTarget ^ 2] || !MON_CAN_BATTLE(&party[i])); + } while (i == gBattlerPartyIndexes[gBattlerTarget] || i == gBattlerPartyIndexes[gBattlerTarget ^ 2] || !MON_CAN_BATTLE(&party[i])); } else { @@ -11813,21 +10659,21 @@ static void atk8F_forcerandomswitch(void) do { i = Random() % 6; - } while (i == gBattlerPartyIndexes[gBankTarget] || i == gBattlerPartyIndexes[gBankTarget ^ 2] || !MON_CAN_BATTLE(&party[i])); + } while (i == gBattlerPartyIndexes[gBattlerTarget] || i == gBattlerPartyIndexes[gBattlerTarget ^ 2] || !MON_CAN_BATTLE(&party[i])); } else { do { i = Random() % 6; - } while (i == gBattlerPartyIndexes[gBankTarget] || !MON_CAN_BATTLE(&party[i])); + } while (i == gBattlerPartyIndexes[gBattlerTarget] || !MON_CAN_BATTLE(&party[i])); } } - ewram16068arr(gBankTarget) = i; + ewram16068arr(gBattlerTarget) = i; if (!IsLinkDoubleBattle()) - sub_8012258(gBankTarget); - sub_8094B6C(gBankTarget, i, 0); - sub_8094B6C(gBankTarget ^ 2, i, 1); + sub_8012258(gBattlerTarget); + sub_8094B6C(gBattlerTarget, i, 0); + sub_8094B6C(gBattlerTarget ^ 2, i, 1); #undef MON_CAN_BATTLE } } @@ -11845,22 +10691,22 @@ static void atk90_tryconversiontypechange(void) u8 move_type; while (valid_moves < 4) { - if (gBattleMons[gBankAttacker].moves[valid_moves] == 0) + if (gBattleMons[gBattlerAttacker].moves[valid_moves] == 0) break; valid_moves++; } for (checked_move = 0; checked_move < valid_moves; checked_move++) { - move_type = gBattleMoves[gBattleMons[gBankAttacker].moves[checked_move]].type; + move_type = gBattleMoves[gBattleMons[gBattlerAttacker].moves[checked_move]].type; if (move_type == TYPE_MYSTERY) { - if (gBattleMons[gBankAttacker].type1 == TYPE_GHOST || gBattleMons[gBankAttacker].type2 == TYPE_GHOST) + if (gBattleMons[gBattlerAttacker].type1 == TYPE_GHOST || gBattleMons[gBattlerAttacker].type2 == TYPE_GHOST) move_type = TYPE_GHOST; else move_type = TYPE_NORMAL; } - if (move_type != gBattleMons[gBankAttacker].type1 && move_type != gBattleMons[gBankAttacker].type2) + if (move_type != gBattleMons[gBattlerAttacker].type1 && move_type != gBattleMons[gBattlerAttacker].type2) break; } @@ -11875,18 +10721,18 @@ static void atk90_tryconversiontypechange(void) while ((checked_move = Random() & 3) >= valid_moves); - move_type = gBattleMoves[gBattleMons[gBankAttacker].moves[checked_move]].type; + move_type = gBattleMoves[gBattleMons[gBattlerAttacker].moves[checked_move]].type; if (move_type == TYPE_MYSTERY) { - if (gBattleMons[gBankAttacker].type1 == TYPE_GHOST || gBattleMons[gBankAttacker].type2 == TYPE_GHOST) + if (gBattleMons[gBattlerAttacker].type1 == TYPE_GHOST || gBattleMons[gBattlerAttacker].type2 == TYPE_GHOST) move_type = TYPE_GHOST; else move_type = TYPE_NORMAL; } - } while (move_type == gBattleMons[gBankAttacker].type1 || move_type == gBattleMons[gBankAttacker].type2); + } while (move_type == gBattleMons[gBattlerAttacker].type1 || move_type == gBattleMons[gBattlerAttacker].type2); - gBattleMons[gBankAttacker].type1 = move_type; - gBattleMons[gBankAttacker].type2 = move_type; + gBattleMons[gBattlerAttacker].type1 = move_type; + gBattleMons[gBattlerAttacker].type2 = move_type; gBattleTextBuff1[0] = 0xFD; gBattleTextBuff1[1] = 3; @@ -11918,15 +10764,15 @@ static void atk91_givepaydaymoney(void) static void atk92_setlightscreen(void) { - if (gSideAffecting[GetBattlerPosition(gBankAttacker) & 1] & SIDE_STATUS_LIGHTSCREEN) + if (gSideAffecting[GetBattlerPosition(gBattlerAttacker) & 1] & SIDE_STATUS_LIGHTSCREEN) { gMoveResultFlags |= MOVE_RESULT_MISSED; gBattleCommunication[MULTISTRING_CHOOSER] = 0; } else { - gSideAffecting[GetBattlerPosition(gBankAttacker) & 1] |= SIDE_STATUS_LIGHTSCREEN; - gSideTimers[GetBattlerPosition(gBankAttacker) & 1].lightscreenTimer = 5; + gSideAffecting[GetBattlerPosition(gBattlerAttacker) & 1] |= SIDE_STATUS_LIGHTSCREEN; + gSideTimers[GetBattlerPosition(gBattlerAttacker) & 1].lightscreenTimer = 5; if (gBattleTypeFlags & BATTLE_TYPE_DOUBLE && CountAliveMons(1) == 2) gBattleCommunication[MULTISTRING_CHOOSER] = 4; else @@ -11938,42 +10784,42 @@ static void atk92_setlightscreen(void) #ifdef NOTMATCHING static void atk93_tryKO(void) { - if (gBattleMons[gBankTarget].item == ITEM_ENIGMA_BERRY) - hold_effect = gEnigmaBerries[gBankTarget].holdEffect, quality = gEnigmaBerries[gBankTarget].holdEffectParam; + if (gBattleMons[gBattlerTarget].item == ITEM_ENIGMA_BERRY) + hold_effect = gEnigmaBerries[gBattlerTarget].holdEffect, quality = gEnigmaBerries[gBattlerTarget].holdEffectParam; else { - hold_effect = ItemId_GetHoldEffect(gBattleMons[gBankTarget].item); - quality = ItemId_GetHoldEffectParam(gBattleMons[gBankTarget].item); + hold_effect = ItemId_GetHoldEffect(gBattleMons[gBattlerTarget].item); + quality = ItemId_GetHoldEffectParam(gBattleMons[gBattlerTarget].item); } - gStringBank = gBankTarget; + gPotentialItemEffectBattler = gBattlerTarget; if (hold_effect == HOLD_EFFECT_FOCUS_BAND && (Random() % 100) < quality) { - RecordItemBattle(gBankTarget, hold_effect); - gSpecialStatuses[gBankTarget].focusBanded = 1; + RecordItemBattle(gBattlerTarget, hold_effect); + gSpecialStatuses[gBattlerTarget].focusBanded = 1; } - if (gBattleMons[gBankTarget].ability == ABILITY_STURDY) + if (gBattleMons[gBattlerTarget].ability == ABILITY_STURDY) { gMoveResultFlags |= MOVE_RESULT_MISSED; gLastUsedAbility = ABILITY_STURDY; gBattlescriptCurrInstr = x; - RecordAbilityBattle(gBankTarget, ABILITY_STURDY); + RecordAbilityBattle(gBattlerTarget, ABILITY_STURDY); return; } - if (!(gStatuses3[gBankTarget] & STATUS3_ALWAYS_HITS)) + if (!(gStatuses3[gBattlerTarget] & STATUS3_ALWAYS_HITS)) { - u16 to_cmp = gBattleMons[gBankAttacker].level - gBattleMons[gBankTarget].level + gBattleMoves[gCurrentMove].accuracy; - if (Random() % 0x64 + 1 < to_cmp || gBattleMons[gBankAttacker].level < gBattleMons[gBankTarget].level) + u16 to_cmp = gBattleMons[gBattlerAttacker].level - gBattleMons[gBattlerTarget].level + gBattleMoves[gCurrentMove].accuracy; + if (Random() % 0x64 + 1 < to_cmp || gBattleMons[gBattlerAttacker].level < gBattleMons[gBattlerTarget].level) { goto MOVE_RESULT_MISSED_LABEL; } } else { - if (gDisableStructs[gBankTarget].bankWithSureHit != gBankAttacker || gBattleMons[gBankAttacker].level < gBattleMons[gBankTarget].level) + if (gDisableStructs[gBattlerTarget].bankWithSureHit != gBattlerAttacker || gBattleMons[gBattlerAttacker].level < gBattleMons[gBattlerTarget].level) { } @@ -11981,7 +10827,7 @@ static void atk93_tryKO(void) MOVE_RESULT_MISSED_LABEL: gBattleTypeFlags |= MOVE_RESULT_MISSED; - if (gBattleMons[gBankAttacker].level < gBattleMons[gBankTarget].level) + if (gBattleMons[gBattlerAttacker].level < gBattleMons[gBattlerTarget].level) gBattleCommunication[MULTISTRING_CHOOSER] = 1; else gBattleCommunication[MULTISTRING_CHOOSER] = 0; @@ -11999,7 +10845,7 @@ static void atk93_tryKO(void) mov r5, r8\n\ push {r5-r7}\n\ ldr r7, _08026BA8 @ =gBattleMons\n\ - ldr r6, _08026BAC @ =gBankTarget\n\ + ldr r6, _08026BAC @ =gBattlerTarget\n\ ldrb r2, [r6]\n\ movs r5, 0x58\n\ adds r0, r2, 0\n\ @@ -12018,7 +10864,7 @@ static void atk93_tryKO(void) b _08026BCE\n\ .align 2, 0\n\ _08026BA8: .4byte gBattleMons\n\ -_08026BAC: .4byte gBankTarget\n\ +_08026BAC: .4byte gBattlerTarget\n\ _08026BB0: .4byte gEnigmaBerries\n\ _08026BB4:\n\ ldrh r0, [r1, 0x2E]\n\ @@ -12033,8 +10879,8 @@ _08026BB4:\n\ lsls r0, 24\n\ lsrs r6, r0, 24\n\ _08026BCE:\n\ - ldr r1, _08026C4C @ =gStringBank\n\ - ldr r5, _08026C50 @ =gBankTarget\n\ + ldr r1, _08026C4C @ =gPotentialItemEffectBattler\n\ + ldr r5, _08026C50 @ =gBattlerTarget\n\ ldrb r0, [r5]\n\ strb r0, [r1]\n\ cmp r4, 0x27\n\ @@ -12064,7 +10910,7 @@ _08026BCE:\n\ _08026C0C:\n\ ldr r0, _08026C58 @ =gBattleMons\n\ mov r8, r0\n\ - ldr r1, _08026C50 @ =gBankTarget\n\ + ldr r1, _08026C50 @ =gBattlerTarget\n\ ldrb r2, [r1]\n\ movs r6, 0x58\n\ adds r0, r2, 0\n\ @@ -12087,14 +10933,14 @@ _08026C0C:\n\ ldr r1, _08026C64 @ =gBattlescriptCurrInstr\n\ ldr r0, _08026C68 @ =BattleScript_SturdyPreventsOHKO\n\ str r0, [r1]\n\ - ldr r1, _08026C50 @ =gBankTarget\n\ + ldr r1, _08026C50 @ =gBattlerTarget\n\ ldrb r0, [r1]\n\ movs r1, 0x5\n\ bl RecordAbilityBattle\n\ b _08026E40\n\ .align 2, 0\n\ -_08026C4C: .4byte gStringBank\n\ -_08026C50: .4byte gBankTarget\n\ +_08026C4C: .4byte gPotentialItemEffectBattler\n\ +_08026C50: .4byte gBattlerTarget\n\ _08026C54: .4byte gSpecialStatuses\n\ _08026C58: .4byte gBattleMons\n\ _08026C5C: .4byte gMoveResultFlags\n\ @@ -12117,7 +10963,7 @@ _08026C6C:\n\ adds r2, r0\n\ lsls r2, 2\n\ adds r2, r1\n\ - ldr r7, _08026CEC @ =gBankAttacker\n\ + ldr r7, _08026CEC @ =gBattlerAttacker\n\ ldrb r0, [r7]\n\ muls r0, r6\n\ add r0, r10\n\ @@ -12146,7 +10992,7 @@ _08026C6C:\n\ muls r1, r6\n\ add r1, r10\n\ adds r1, 0x2A\n\ - ldr r2, _08026CF0 @ =gBankTarget\n\ + ldr r2, _08026CF0 @ =gBattlerTarget\n\ ldrb r0, [r2]\n\ muls r0, r6\n\ add r0, r10\n\ @@ -12163,15 +11009,15 @@ _08026CDC:\n\ _08026CE0: .4byte gStatuses3\n\ _08026CE4: .4byte gBattleMoves\n\ _08026CE8: .4byte gCurrentMove\n\ -_08026CEC: .4byte gBankAttacker\n\ -_08026CF0: .4byte gBankTarget\n\ +_08026CEC: .4byte gBattlerAttacker\n\ +_08026CF0: .4byte gBattlerTarget\n\ _08026CF4:\n\ ldr r0, _08026D4C @ =gDisableStructs\n\ lsls r1, r2, 3\n\ subs r1, r2\n\ lsls r1, 2\n\ adds r1, r0\n\ - ldr r2, _08026D50 @ =gBankAttacker\n\ + ldr r2, _08026D50 @ =gBattlerAttacker\n\ ldrb r0, [r1, 0x15]\n\ movs r4, 0\n\ ldrb r3, [r2]\n\ @@ -12192,7 +11038,7 @@ _08026D20:\n\ cmp r4, 0\n\ beq _08026DE0\n\ ldr r0, _08026D54 @ =gProtectStructs\n\ - ldr r1, _08026D58 @ =gBankTarget\n\ + ldr r1, _08026D58 @ =gBattlerTarget\n\ ldrb r2, [r1]\n\ lsls r1, r2, 4\n\ adds r1, r0\n\ @@ -12213,9 +11059,9 @@ _08026D20:\n\ b _08026DC6\n\ .align 2, 0\n\ _08026D4C: .4byte gDisableStructs\n\ -_08026D50: .4byte gBankAttacker\n\ +_08026D50: .4byte gBattlerAttacker\n\ _08026D54: .4byte gProtectStructs\n\ -_08026D58: .4byte gBankTarget\n\ +_08026D58: .4byte gBattlerTarget\n\ _08026D5C: .4byte gBattleMoveDamage\n\ _08026D60: .4byte gMoveResultFlags\n\ _08026D64:\n\ @@ -12242,7 +11088,7 @@ _08026D64:\n\ orrs r0, r1\n\ strb r0, [r2]\n\ ldr r1, _08026DAC @ =gLastUsedItem\n\ - ldr r2, _08026DB0 @ =gBankTarget\n\ + ldr r2, _08026DB0 @ =gBattlerTarget\n\ ldrb r0, [r2]\n\ muls r0, r3\n\ add r0, r10\n\ @@ -12254,7 +11100,7 @@ _08026DA0: .4byte gSpecialStatuses\n\ _08026DA4: .4byte gBattleMoveDamage\n\ _08026DA8: .4byte gMoveResultFlags\n\ _08026DAC: .4byte gLastUsedItem\n\ -_08026DB0: .4byte gBankTarget\n\ +_08026DB0: .4byte gBattlerTarget\n\ _08026DB4:\n\ ldr r1, _08026DD4 @ =gBattleMoveDamage\n\ movs r0, 0x58\n\ @@ -12284,14 +11130,14 @@ _08026DE0:\n\ movs r1, 0x1\n\ orrs r0, r1\n\ strb r0, [r2]\n\ - ldr r0, _08026E14 @ =gBankAttacker\n\ + ldr r0, _08026E14 @ =gBattlerAttacker\n\ ldrb r0, [r0]\n\ movs r2, 0x58\n\ adds r1, r0, 0\n\ muls r1, r2\n\ add r1, r10\n\ adds r1, 0x2A\n\ - ldr r3, _08026E18 @ =gBankTarget\n\ + ldr r3, _08026E18 @ =gBattlerTarget\n\ ldrb r0, [r3]\n\ muls r0, r2\n\ add r0, r10\n\ @@ -12305,8 +11151,8 @@ _08026DE0:\n\ b _08026E24\n\ .align 2, 0\n\ _08026E10: .4byte gMoveResultFlags\n\ -_08026E14: .4byte gBankAttacker\n\ -_08026E18: .4byte gBankTarget\n\ +_08026E14: .4byte gBattlerAttacker\n\ +_08026E18: .4byte gBattlerTarget\n\ _08026E1C: .4byte gBattleCommunication\n\ _08026E20:\n\ ldr r1, _08026E50 @ =gBattleCommunication\n\ @@ -12343,7 +11189,7 @@ _08026E54: .4byte gBattlescriptCurrInstr\n\ static void atk94_damagetohalftargethp(void) //super fang { - gBattleMoveDamage = gBattleMons[gBankTarget].hp / 2; + gBattleMoveDamage = gBattleMons[gBattlerTarget].hp / 2; if (gBattleMoveDamage == 0) gBattleMoveDamage = 1; gBattlescriptCurrInstr++; @@ -12371,11 +11217,11 @@ static void atk96_weatherdamage(void) { if (gBattleWeather & WEATHER_SANDSTORM_ANY) { - if (gBattleMons[gBankAttacker].type1 != TYPE_ROCK && gBattleMons[gBankAttacker].type1 != TYPE_STEEL && gBattleMons[gBankAttacker].type1 != TYPE_GROUND - && gBattleMons[gBankAttacker].type2 != TYPE_ROCK && gBattleMons[gBankAttacker].type2 != TYPE_STEEL && gBattleMons[gBankAttacker].type2 != TYPE_GROUND - && gBattleMons[gBankAttacker].ability != ABILITY_SAND_VEIL && !(gStatuses3[gBankAttacker] & STATUS3_UNDERGROUND) && !(gStatuses3[gBankAttacker] & STATUS3_UNDERWATER)) + if (gBattleMons[gBattlerAttacker].type1 != TYPE_ROCK && gBattleMons[gBattlerAttacker].type1 != TYPE_STEEL && gBattleMons[gBattlerAttacker].type1 != TYPE_GROUND + && gBattleMons[gBattlerAttacker].type2 != TYPE_ROCK && gBattleMons[gBattlerAttacker].type2 != TYPE_STEEL && gBattleMons[gBattlerAttacker].type2 != TYPE_GROUND + && gBattleMons[gBattlerAttacker].ability != ABILITY_SAND_VEIL && !(gStatuses3[gBattlerAttacker] & STATUS3_UNDERGROUND) && !(gStatuses3[gBattlerAttacker] & STATUS3_UNDERWATER)) { - gBattleMoveDamage = gBattleMons[gBankAttacker].maxHP / 16; + gBattleMoveDamage = gBattleMons[gBattlerAttacker].maxHP / 16; if (gBattleMoveDamage == 0) gBattleMoveDamage = 1; } @@ -12386,9 +11232,9 @@ static void atk96_weatherdamage(void) } if (gBattleWeather & WEATHER_HAIL) { - if (gBattleMons[gBankAttacker].type1 != TYPE_ICE && gBattleMons[gBankAttacker].type2 != TYPE_ICE && !(gStatuses3[gBankAttacker] & STATUS3_UNDERGROUND) && !(gStatuses3[gBankAttacker] & STATUS3_UNDERWATER)) + if (gBattleMons[gBattlerAttacker].type1 != TYPE_ICE && gBattleMons[gBattlerAttacker].type2 != TYPE_ICE && !(gStatuses3[gBattlerAttacker] & STATUS3_UNDERGROUND) && !(gStatuses3[gBattlerAttacker] & STATUS3_UNDERWATER)) { - gBattleMoveDamage = gBattleMons[gBankAttacker].maxHP / 16; + gBattleMoveDamage = gBattleMons[gBattlerAttacker].maxHP / 16; if (gBattleMoveDamage == 0) gBattleMoveDamage = 1; } @@ -12401,7 +11247,7 @@ static void atk96_weatherdamage(void) else gBattleMoveDamage = 0; - if (gAbsentBattlerFlags & gBitTable[gBankAttacker]) + if (gAbsentBattlerFlags & gBitTable[gBattlerAttacker]) gBattleMoveDamage = 0; gBattlescriptCurrInstr++; @@ -12412,15 +11258,15 @@ static void atk97_tryinfatuating(void) struct Pokemon *attacker, *target; u16 atk_species, def_species; u32 atk_pid, def_pid; - if (!GetBattlerSide(gBankAttacker)) - attacker = &gPlayerParty[gBattlerPartyIndexes[gBankAttacker]]; + if (!GetBattlerSide(gBattlerAttacker)) + attacker = &gPlayerParty[gBattlerPartyIndexes[gBattlerAttacker]]; else - attacker = &gEnemyParty[gBattlerPartyIndexes[gBankAttacker]]; + attacker = &gEnemyParty[gBattlerPartyIndexes[gBattlerAttacker]]; - if (!GetBattlerSide(gBankTarget)) - target = &gPlayerParty[gBattlerPartyIndexes[gBankTarget]]; + if (!GetBattlerSide(gBattlerTarget)) + target = &gPlayerParty[gBattlerPartyIndexes[gBattlerTarget]]; else - target = &gEnemyParty[gBattlerPartyIndexes[gBankTarget]]; + target = &gEnemyParty[gBattlerPartyIndexes[gBattlerTarget]]; atk_species = GetMonData(attacker, MON_DATA_SPECIES); atk_pid = GetMonData(attacker, MON_DATA_PERSONALITY); @@ -12428,23 +11274,23 @@ static void atk97_tryinfatuating(void) def_species = GetMonData(target, MON_DATA_SPECIES); def_pid = GetMonData(target, MON_DATA_PERSONALITY); - if (gBattleMons[gBankTarget].ability == ABILITY_OBLIVIOUS) + if (gBattleMons[gBattlerTarget].ability == ABILITY_OBLIVIOUS) { gBattlescriptCurrInstr = BattleScript_ObliviousPreventsAttraction; gLastUsedAbility = ABILITY_OBLIVIOUS; - RecordAbilityBattle(gBankTarget, ABILITY_OBLIVIOUS); + RecordAbilityBattle(gBattlerTarget, ABILITY_OBLIVIOUS); } else { if (GetGenderFromSpeciesAndPersonality(atk_species, atk_pid) == GetGenderFromSpeciesAndPersonality(def_species, def_pid) - || gStatuses3[gBankTarget] & STATUS3_SEMI_INVULNERABLE || gBattleMons[gBankTarget].status2 & STATUS2_INFATUATION || GetGenderFromSpeciesAndPersonality(atk_species, atk_pid) == 0xFF + || gStatuses3[gBattlerTarget] & STATUS3_SEMI_INVULNERABLE || gBattleMons[gBattlerTarget].status2 & STATUS2_INFATUATION || GetGenderFromSpeciesAndPersonality(atk_species, atk_pid) == 0xFF || GetGenderFromSpeciesAndPersonality(def_species, def_pid) == 0xFF) { gBattlescriptCurrInstr = T1_READ_PTR(gBattlescriptCurrInstr + 1); } else { - gBattleMons[gBankTarget].status2 |= (gBitTable[gBankAttacker] << 16); + gBattleMons[gBattlerTarget].status2 |= (gBitTable[gBattlerAttacker] << 16); gBattlescriptCurrInstr += 5; } } @@ -12452,31 +11298,31 @@ static void atk97_tryinfatuating(void) static void atk98_updatestatusicon(void) { - if (gBattleExecBuffer) + if (gBattleControllerExecFlags) return; if (T2_READ_8(gBattlescriptCurrInstr + 1) != 4) { gActiveBattler = GetBattleBank(T2_READ_8(gBattlescriptCurrInstr + 1)); - EmitStatusIconUpdate(0, gBattleMons[gActiveBattler].status1, gBattleMons[gActiveBattler].status2); - MarkBufferBankForExecution(gActiveBattler); + BtlController_EmitStatusIconUpdate(0, gBattleMons[gActiveBattler].status1, gBattleMons[gActiveBattler].status2); + MarkBattlerForControllerExec(gActiveBattler); gBattlescriptCurrInstr += 2; } else { - gActiveBattler = gBankAttacker; + gActiveBattler = gBattlerAttacker; if (!(gAbsentBattlerFlags & gBitTable[gActiveBattler])) { - EmitStatusIconUpdate(0, gBattleMons[gActiveBattler].status1, gBattleMons[gActiveBattler].status2); - MarkBufferBankForExecution(gActiveBattler); + BtlController_EmitStatusIconUpdate(0, gBattleMons[gActiveBattler].status1, gBattleMons[gActiveBattler].status2); + MarkBattlerForControllerExec(gActiveBattler); } if ((gBattleTypeFlags & BATTLE_TYPE_DOUBLE)) { - gActiveBattler = GetBattlerAtPosition(GetBattlerPosition(gBankAttacker) ^ 2); + gActiveBattler = GetBattlerAtPosition(GetBattlerPosition(gBattlerAttacker) ^ 2); if (!(gAbsentBattlerFlags & gBitTable[gActiveBattler])) { - EmitStatusIconUpdate(0, gBattleMons[gActiveBattler].status1, gBattleMons[gActiveBattler].status2); - MarkBufferBankForExecution(gActiveBattler); + BtlController_EmitStatusIconUpdate(0, gBattleMons[gActiveBattler].status1, gBattleMons[gActiveBattler].status2); + MarkBattlerForControllerExec(gActiveBattler); } } gBattlescriptCurrInstr += 2; @@ -12485,15 +11331,15 @@ static void atk98_updatestatusicon(void) static void atk99_setmist(void) { - if (gSideTimers[GetBattlerPosition(gBankAttacker) & 1].mistTimer) + if (gSideTimers[GetBattlerPosition(gBattlerAttacker) & 1].mistTimer) { gMoveResultFlags |= MOVE_RESULT_FAILED; gBattleCommunication[MULTISTRING_CHOOSER] = 1; } else { - gSideTimers[GetBattlerPosition(gBankAttacker) & 1].mistTimer = 5; - gSideAffecting[GetBattlerPosition(gBankAttacker) & 1] |= SIDE_STATUS_MIST; + gSideTimers[GetBattlerPosition(gBattlerAttacker) & 1].mistTimer = 5; + gSideAffecting[GetBattlerPosition(gBattlerAttacker) & 1] |= SIDE_STATUS_MIST; gBattleCommunication[MULTISTRING_CHOOSER] = 0; } gBattlescriptCurrInstr++; @@ -12501,14 +11347,14 @@ static void atk99_setmist(void) static void atk9A_setfocusenergy(void) { - if (gBattleMons[gBankAttacker].status2 & STATUS2_FOCUS_ENERGY) + if (gBattleMons[gBattlerAttacker].status2 & STATUS2_FOCUS_ENERGY) { gMoveResultFlags |= MOVE_RESULT_FAILED; gBattleCommunication[MULTISTRING_CHOOSER] = 1; } else { - gBattleMons[gBankAttacker].status2 |= STATUS2_FOCUS_ENERGY; + gBattleMons[gBattlerAttacker].status2 |= STATUS2_FOCUS_ENERGY; gBattleCommunication[MULTISTRING_CHOOSER] = 0; } gBattlescriptCurrInstr++; @@ -12518,7 +11364,7 @@ static void atk9B_transformdataexecution(void) { gChosenMove = 0xFFFF; gBattlescriptCurrInstr++; - if (gBattleMons[gBankTarget].status2 & STATUS2_TRANSFORMED || gStatuses3[gBankTarget] & STATUS3_SEMI_INVULNERABLE) + if (gBattleMons[gBattlerTarget].status2 & STATUS2_TRANSFORMED || gStatuses3[gBattlerTarget] & STATUS3_SEMI_INVULNERABLE) { gMoveResultFlags |= MOVE_RESULT_FAILED; gBattleCommunication[MULTISTRING_CHOOSER] = 1; @@ -12527,57 +11373,57 @@ static void atk9B_transformdataexecution(void) { u32 i; s32 j; u8 *atk_data, *def_data; - gBattleMons[gBankAttacker].status2 |= STATUS2_TRANSFORMED; - gDisableStructs[gBankAttacker].disabledMove = 0; - gDisableStructs[gBankAttacker].disableTimer1 = 0; - gDisableStructs[gBankAttacker].transformedMonPersonality = gBattleMons[gBankTarget].personality; - gDisableStructs[gBankAttacker].unk18_b = 0; + gBattleMons[gBattlerAttacker].status2 |= STATUS2_TRANSFORMED; + gDisableStructs[gBattlerAttacker].disabledMove = 0; + gDisableStructs[gBattlerAttacker].disableTimer1 = 0; + gDisableStructs[gBattlerAttacker].transformedMonPersonality = gBattleMons[gBattlerTarget].personality; + gDisableStructs[gBattlerAttacker].unk18_b = 0; gBattleTextBuff1[0] = 0xFD; gBattleTextBuff1[1] = 6; - gBattleTextBuff1[2] = (gBattleMons[gBankTarget].species); - gBattleTextBuff1[3] = uBYTE1_16(gBattleMons[gBankTarget].species); + gBattleTextBuff1[2] = (gBattleMons[gBattlerTarget].species); + gBattleTextBuff1[3] = uBYTE1_16(gBattleMons[gBattlerTarget].species); gBattleTextBuff1[4] = 0xFF; - atk_data = (u8*)(&gBattleMons[gBankAttacker]); - def_data = (u8*)(&gBattleMons[gBankTarget]); + atk_data = (u8*)(&gBattleMons[gBattlerAttacker]); + def_data = (u8*)(&gBattleMons[gBattlerTarget]); for (i = 0; i < 0x24; i++) atk_data[i] = def_data[i]; for (j = 0; j < 4; j++) { - if (gBattleMoves[gBattleMons[gBankAttacker].moves[j]].pp < 5) - gBattleMons[gBankAttacker].pp[j] = gBattleMoves[gBattleMons[gBankAttacker].moves[j]].pp; + if (gBattleMoves[gBattleMons[gBattlerAttacker].moves[j]].pp < 5) + gBattleMons[gBattlerAttacker].pp[j] = gBattleMoves[gBattleMons[gBattlerAttacker].moves[j]].pp; else - gBattleMons[gBankAttacker].pp[j] = 5; + gBattleMons[gBattlerAttacker].pp[j] = 5; } - gActiveBattler = gBankAttacker; - EmitResetActionMoveSelection(0, 2); - MarkBufferBankForExecution(gActiveBattler); + gActiveBattler = gBattlerAttacker; + BtlController_EmitResetActionMoveSelection(0, 2); + MarkBattlerForControllerExec(gActiveBattler); gBattleCommunication[MULTISTRING_CHOOSER] = 0; } } static void atk9C_setsubstitute(void) { - u32 hp = gBattleMons[gBankAttacker].maxHP / 4; - if (gBattleMons[gBankAttacker].maxHP / 4 == 0) + u32 hp = gBattleMons[gBattlerAttacker].maxHP / 4; + if (gBattleMons[gBattlerAttacker].maxHP / 4 == 0) hp = 1; - if (gBattleMons[gBankAttacker].hp <= hp) + if (gBattleMons[gBattlerAttacker].hp <= hp) { gBattleMoveDamage = 0; gBattleCommunication[MULTISTRING_CHOOSER] = 1; } else { - gBattleMoveDamage = gBattleMons[gBankAttacker].maxHP / 4; + gBattleMoveDamage = gBattleMons[gBattlerAttacker].maxHP / 4; if (gBattleMoveDamage == 0) gBattleMoveDamage = 1; - gBattleMons[gBankAttacker].status2 |= STATUS2_SUBSTITUTE; - gBattleMons[gBankAttacker].status2 &= ~(STATUS2_WRAPPED); - gDisableStructs[gBankAttacker].substituteHP = gBattleMoveDamage; + gBattleMons[gBattlerAttacker].status2 |= STATUS2_SUBSTITUTE; + gBattleMons[gBattlerAttacker].status2 &= ~(STATUS2_WRAPPED); + gDisableStructs[gBattlerAttacker].substituteHP = gBattleMoveDamage; gBattleCommunication[MULTISTRING_CHOOSER] = 0; gHitMarker |= HITMARKER_IGNORE_SUBSTITUTE; } @@ -12594,8 +11440,8 @@ static bool8 IsMoveUncopyable(u16 move) static void atk9D_mimicattackcopy(void) { gChosenMove = 0xFFFF; - if (IsMoveUncopyable(gLastUsedMove[gBankTarget]) || gBattleMons[gBankAttacker].status2 & STATUS2_TRANSFORMED - || gLastUsedMove[gBankTarget] == 0 || gLastUsedMove[gBankTarget] == 0xFFFF) + if (IsMoveUncopyable(gLastUsedMove[gBattlerTarget]) || gBattleMons[gBattlerAttacker].status2 & STATUS2_TRANSFORMED + || gLastUsedMove[gBattlerTarget] == 0 || gLastUsedMove[gBattlerTarget] == 0xFFFF) { gBattlescriptCurrInstr = T1_READ_PTR(gBattlescriptCurrInstr + 1); } @@ -12604,24 +11450,24 @@ static void atk9D_mimicattackcopy(void) int i; for (i = 0; i < 4; i++) { - if (gBattleMons[gBankAttacker].moves[i] == gLastUsedMove[gBankTarget]) + if (gBattleMons[gBattlerAttacker].moves[i] == gLastUsedMove[gBattlerTarget]) break; } if (i == 4) { - gBattleMons[gBankAttacker].moves[gCurrMovePos] = gLastUsedMove[gBankTarget]; - if (gBattleMoves[gLastUsedMove[gBankTarget]].pp < 5) - gBattleMons[gBankAttacker].pp[gCurrMovePos] = gBattleMoves[gLastUsedMove[gBankTarget]].pp; + gBattleMons[gBattlerAttacker].moves[gCurrMovePos] = gLastUsedMove[gBattlerTarget]; + if (gBattleMoves[gLastUsedMove[gBattlerTarget]].pp < 5) + gBattleMons[gBattlerAttacker].pp[gCurrMovePos] = gBattleMoves[gLastUsedMove[gBattlerTarget]].pp; else - gBattleMons[gBankAttacker].pp[gCurrMovePos] = 5; + gBattleMons[gBattlerAttacker].pp[gCurrMovePos] = 5; gBattleTextBuff1[0] = 0xFD; gBattleTextBuff1[1] = 2; - gBattleTextBuff1[2] = gLastUsedMove[gBankTarget]; - gBattleTextBuff1[3] = uBYTE1_16(gLastUsedMove[gBankTarget]); + gBattleTextBuff1[2] = gLastUsedMove[gBattlerTarget]; + gBattleTextBuff1[3] = uBYTE1_16(gLastUsedMove[gBattlerTarget]); gBattleTextBuff1[4] = 0xFF; - gDisableStructs[gBankAttacker].unk18_b |= gBitTable[gCurrMovePos]; + gDisableStructs[gBattlerAttacker].unk18_b |= gBitTable[gCurrMovePos]; gBattlescriptCurrInstr += 5; } else @@ -12637,7 +11483,7 @@ static void atk9E_metronome(void) push {r4, r5, r6, r7, lr}\n\ mov r7, r8\n\ push {r7}\n\ - ldr r6, ._3076 @ gBankAttacker\n\ + ldr r6, ._3076 @ gBattlerAttacker\n\ ldrb r2, [r6]\n\ lsl r1, r2, #0x1\n\ ldr r0, ._3076 + 4 @ \n\ @@ -12680,7 +11526,7 @@ static void atk9E_metronome(void) ._3077:\n\ .align 2, 0\n\ ._3076:\n\ - .word gBankAttacker\n\ + .word gBattlerAttacker\n\ .word +0x20160b4\n\ .word gBattleMons\n\ .word gCurrentMove\n\ @@ -12794,7 +11640,7 @@ static void atk9E_metronome(void) ._3082:\n\ mov r1, #0x0\n\ bl GetMoveTarget\n\ - ldr r1, ._3090 + 36 @ gBankTarget\n\ + ldr r1, ._3090 + 36 @ gBattlerTarget\n\ strb r0, [r1]\n\ pop {r3}\n\ mov r8, r3\n\ @@ -12813,7 +11659,7 @@ static void atk9E_metronome(void) .word 0xfffffbff\n\ .word gBattleScriptsForMoveEffects\n\ .word gBattleMoves\n\ - .word gBankTarget"); + .word gBattlerTarget"); } #else #ifdef NONMATCHING @@ -12829,7 +11675,7 @@ static void atk9E_metronome(void) gHitMarker &= ~(HITMARKER_ATTACKSTRING_PRINTED); gBattlescriptCurrInstr = gBattleScriptsForMoveEffects[gBattleMoves[gCurrentMove].effect]; - gBankTarget = GetMoveTarget(gCurrentMove, 0); + gBattlerTarget = GetMoveTarget(gCurrentMove, 0); } #else @@ -12896,7 +11742,7 @@ _080278F8:\n\ ldrh r0, [r4]\n\ movs r1, 0\n\ bl GetMoveTarget\n\ - ldr r1, _0802795C @ =gBankTarget\n\ + ldr r1, _0802795C @ =gBattlerTarget\n\ strb r0, [r1]\n\ pop {r3}\n\ mov r8, r3\n\ @@ -12913,7 +11759,7 @@ _0802794C: .4byte gHitMarker\n\ _08027950: .4byte 0xfffffbff\n\ _08027954: .4byte gBattleScriptsForMoveEffects\n\ _08027958: .4byte gBattleMoves\n\ -_0802795C: .4byte gBankTarget\n\ +_0802795C: .4byte gBattlerTarget\n\ .syntax divided"); } #endif // NONMATCHING @@ -12921,7 +11767,7 @@ _0802795C: .4byte gBankTarget\n\ static void atk9F_dmgtolevel(void) { - gBattleMoveDamage = gBattleMons[gBankAttacker].level; + gBattleMoveDamage = gBattleMons[gBattlerAttacker].level; gBattlescriptCurrInstr++; } @@ -12930,46 +11776,46 @@ static void atkA0_psywavedamageeffect(void) s32 rand_dmg; while ((rand_dmg = (Random() & 0xF)) > 0xA); rand_dmg *= 10; - gBattleMoveDamage = gBattleMons[gBankAttacker].level * (rand_dmg + 50) / 100; + gBattleMoveDamage = gBattleMons[gBattlerAttacker].level * (rand_dmg + 50) / 100; gBattlescriptCurrInstr++; } static void atkA1_counterdamagecalculator(void) { - u8 atk_side = GetBattlerSide(gBankAttacker); - u8 def_side = GetBattlerSide(gProtectStructs[gBankAttacker].physicalBank); - if (gProtectStructs[gBankAttacker].physicalDmg && atk_side != def_side && gBattleMons[gProtectStructs[gBankAttacker].physicalBank].hp) + u8 atk_side = GetBattlerSide(gBattlerAttacker); + u8 def_side = GetBattlerSide(gProtectStructs[gBattlerAttacker].physicalBattlerId); + if (gProtectStructs[gBattlerAttacker].physicalDmg && atk_side != def_side && gBattleMons[gProtectStructs[gBattlerAttacker].physicalBattlerId].hp) { - gBattleMoveDamage = gProtectStructs[gBankAttacker].physicalDmg * 2; + gBattleMoveDamage = gProtectStructs[gBattlerAttacker].physicalDmg * 2; if (gSideTimers[def_side].followmeTimer && gBattleMons[gSideTimers[def_side].followmeTarget].hp) - gBankTarget = gSideTimers[def_side].followmeTarget; + gBattlerTarget = gSideTimers[def_side].followmeTarget; else - gBankTarget = gProtectStructs[gBankAttacker].physicalBank; + gBattlerTarget = gProtectStructs[gBattlerAttacker].physicalBattlerId; gBattlescriptCurrInstr += 5; } else { - gSpecialStatuses[gBankAttacker].flag20 = 1; + gSpecialStatuses[gBattlerAttacker].ppNotAffectedByPressure = 1; gBattlescriptCurrInstr = T1_READ_PTR(gBattlescriptCurrInstr + 1); } } static void atkA2_mirrorcoatdamagecalculator(void) //a copy of atkA1 with the physical -> special field changes { - u8 atk_side = GetBattlerSide(gBankAttacker); - u8 def_side = GetBattlerSide(gProtectStructs[gBankAttacker].specialBank); - if (gProtectStructs[gBankAttacker].specialDmg && atk_side != def_side && gBattleMons[gProtectStructs[gBankAttacker].specialBank].hp) + u8 atk_side = GetBattlerSide(gBattlerAttacker); + u8 def_side = GetBattlerSide(gProtectStructs[gBattlerAttacker].specialBattlerId); + if (gProtectStructs[gBattlerAttacker].specialDmg && atk_side != def_side && gBattleMons[gProtectStructs[gBattlerAttacker].specialBattlerId].hp) { - gBattleMoveDamage = gProtectStructs[gBankAttacker].specialDmg * 2; + gBattleMoveDamage = gProtectStructs[gBattlerAttacker].specialDmg * 2; if (gSideTimers[def_side].followmeTimer && gBattleMons[gSideTimers[def_side].followmeTarget].hp) - gBankTarget = gSideTimers[def_side].followmeTarget; + gBattlerTarget = gSideTimers[def_side].followmeTarget; else - gBankTarget = gProtectStructs[gBankAttacker].specialBank; + gBattlerTarget = gProtectStructs[gBattlerAttacker].specialBattlerId; gBattlescriptCurrInstr += 5; } else { - gSpecialStatuses[gBankAttacker].flag20 = 1; + gSpecialStatuses[gBattlerAttacker].ppNotAffectedByPressure = 1; gBattlescriptCurrInstr = T1_READ_PTR(gBattlescriptCurrInstr + 1); } } @@ -12979,20 +11825,20 @@ static void atkA3_disablelastusedattack(void) int i; for (i = 0; i < 4; i++) { - if (gBattleMons[gBankTarget].moves[i] == gLastUsedMove[gBankTarget]) + if (gBattleMons[gBattlerTarget].moves[i] == gLastUsedMove[gBattlerTarget]) break; } - if (gDisableStructs[gBankTarget].disabledMove == 0 && i != 4 && gBattleMons[gBankTarget].pp[i] != 0) + if (gDisableStructs[gBattlerTarget].disabledMove == 0 && i != 4 && gBattleMons[gBattlerTarget].pp[i] != 0) { gBattleTextBuff1[0] = 0xFD; gBattleTextBuff1[1] = 2; - gBattleTextBuff1[2] = gBattleMons[gBankTarget].moves[i]; - gBattleTextBuff1[3] = uBYTE1_16(gBattleMons[gBankTarget].moves[i]); + gBattleTextBuff1[2] = gBattleMons[gBattlerTarget].moves[i]; + gBattleTextBuff1[3] = uBYTE1_16(gBattleMons[gBattlerTarget].moves[i]); gBattleTextBuff1[4] = 0xFF; - gDisableStructs[gBankTarget].disabledMove = gBattleMons[gBankTarget].moves[i]; - gDisableStructs[gBankTarget].disableTimer1 = (Random() & 3) + 2; - gDisableStructs[gBankTarget].disableTimer2 = gDisableStructs[gBankTarget].disableTimer1; //that's interesting + gDisableStructs[gBattlerTarget].disabledMove = gBattleMons[gBattlerTarget].moves[i]; + gDisableStructs[gBattlerTarget].disableTimer1 = (Random() & 3) + 2; + gDisableStructs[gBattlerTarget].disableTimer2 = gDisableStructs[gBattlerTarget].disableTimer1; //that's interesting gBattlescriptCurrInstr += 5; } else @@ -13006,17 +11852,17 @@ static void atkA4_trysetencore(void) int i; for (i = 0; i < 4; i++) { - if (gBattleMons[gBankTarget].moves[i] == gLastUsedMove[gBankTarget]) + if (gBattleMons[gBattlerTarget].moves[i] == gLastUsedMove[gBattlerTarget]) break; } - if (gLastUsedMove[gBankTarget] == MOVE_STRUGGLE || gLastUsedMove[gBankTarget] == MOVE_ENCORE || gLastUsedMove[gBankTarget] == MOVE_MIRROR_MOVE) + if (gLastUsedMove[gBattlerTarget] == MOVE_STRUGGLE || gLastUsedMove[gBattlerTarget] == MOVE_ENCORE || gLastUsedMove[gBattlerTarget] == MOVE_MIRROR_MOVE) i = 4; - if (gDisableStructs[gBankTarget].encoredMove == 0 && i != 4 && gBattleMons[gBankTarget].pp[i] != 0) + if (gDisableStructs[gBattlerTarget].encoredMove == 0 && i != 4 && gBattleMons[gBattlerTarget].pp[i] != 0) { - gDisableStructs[gBankTarget].encoredMove = gBattleMons[gBankTarget].moves[i]; - gDisableStructs[gBankTarget].encoredMovePos = i; - gDisableStructs[gBankTarget].encoreTimer1 = (Random() & 3) + 3; - gDisableStructs[gBankTarget].encoreTimer2 = gDisableStructs[gBankTarget].encoreTimer1; + gDisableStructs[gBattlerTarget].encoredMove = gBattleMons[gBattlerTarget].moves[i]; + gDisableStructs[gBattlerTarget].encoredMovePos = i; + gDisableStructs[gBattlerTarget].encoreTimer1 = (Random() & 3) + 3; + gDisableStructs[gBattlerTarget].encoreTimer2 = gDisableStructs[gBattlerTarget].encoreTimer1; gBattlescriptCurrInstr += 5; } else @@ -13027,17 +11873,17 @@ static void atkA4_trysetencore(void) static void atkA5_painsplitdmgcalc(void) { - if (!(gBattleMons[gBankTarget].status2 & STATUS2_SUBSTITUTE)) + if (!(gBattleMons[gBattlerTarget].status2 & STATUS2_SUBSTITUTE)) { - s32 hp_diff = (gBattleMons[gBankAttacker].hp + gBattleMons[gBankTarget].hp) / 2; - s32 to_store = gBattleMoveDamage = gBattleMons[gBankTarget].hp - hp_diff; + s32 hp_diff = (gBattleMons[gBattlerAttacker].hp + gBattleMons[gBattlerTarget].hp) / 2; + s32 to_store = gBattleMoveDamage = gBattleMons[gBattlerTarget].hp - hp_diff; gBattleStruct->unk16014 = sBYTE0_32(to_store); gBattleStruct->unk16015 = sBYTE1_32(to_store); gBattleStruct->unk16016 = sBYTE2_32(to_store); gBattleStruct->unk16017 = sBYTE3_32(to_store); - gBattleMoveDamage = gBattleMons[gBankAttacker].hp - hp_diff; - gSpecialStatuses[gBankTarget].moveturnLostHP = 0xFFFF; + gBattleMoveDamage = gBattleMons[gBattlerAttacker].hp - hp_diff; + gSpecialStatuses[gBattlerTarget].dmg = 0xFFFF; gBattlescriptCurrInstr += 5; } @@ -13048,7 +11894,7 @@ static void atkA5_painsplitdmgcalc(void) #ifdef NONMATCHING static void atkA6_settypetorandomresistance(void) { - if (gLastLandedMoves[gBankAttacker] == 0 || gLastLandedMoves[gBankAttacker] == 0xFFFF || (IsTwoTurnsMove(gLastLandedMoves[gBankAttacker]) && !gProtectStructs[gBankAttacker].physicalDmg && !gProtectStructs[gBankAttacker].specialDmg)) + if (gLastLandedMoves[gBattlerAttacker] == 0 || gLastLandedMoves[gBattlerAttacker] == 0xFFFF || (IsTwoTurnsMove(gLastLandedMoves[gBattlerAttacker]) && !gProtectStructs[gBattlerAttacker].physicalDmg && !gProtectStructs[gBattlerAttacker].specialDmg)) gBattlescriptCurrInstr = T1_READ_PTR(gBattlescriptCurrInstr + 1); else { @@ -13057,10 +11903,10 @@ static void atkA6_settypetorandomresistance(void) { while (((type = (Random() & 0x7F)) > 0x70)); type *= 3; - if (gTypeEffectiveness[type] == gLastHitByType[gBankAttacker] && gTypeEffectiveness[type + 2] <= 5 && gBattleMons[gBankAttacker].type1 != gTypeEffectiveness[type + 1] && gBattleMons[gBankAttacker].type2 != gTypeEffectiveness[type + 1]) + if (gTypeEffectiveness[type] == gLastHitByType[gBattlerAttacker] && gTypeEffectiveness[type + 2] <= 5 && gBattleMons[gBattlerAttacker].type1 != gTypeEffectiveness[type + 1] && gBattleMons[gBattlerAttacker].type2 != gTypeEffectiveness[type + 1]) { - gBattleMons[gBankAttacker].type1 = type; - gBattleMons[gBankAttacker].type2 = type; + gBattleMons[gBattlerAttacker].type1 = type; + gBattleMons[gBattlerAttacker].type2 = type; gBattleTextBuff1[0] = 0xFD; gBattleTextBuff1[1] = 3; gBattleTextBuff1[2] = type; @@ -13076,10 +11922,10 @@ static void atkA6_settypetorandomresistance(void) { if (gTypeEffectiveness[type] == 0xFE || gTypeEffectiveness[type] != 0xFF) { - if (gTypeEffectiveness[type] == gLastHitByType[gBankAttacker] && gTypeEffectiveness[type + 2] <= 5 && gBattleMons[gBankAttacker].type1 != gTypeEffectiveness[type + 1] && gBattleMons[gBankAttacker].type2 != gTypeEffectiveness[type + 1]) + if (gTypeEffectiveness[type] == gLastHitByType[gBattlerAttacker] && gTypeEffectiveness[type + 2] <= 5 && gBattleMons[gBattlerAttacker].type1 != gTypeEffectiveness[type + 1] && gBattleMons[gBattlerAttacker].type2 != gTypeEffectiveness[type + 1]) { - gBattleMons[gBankAttacker].type1 = gTypeEffectiveness[rands + 1]; - gBattleMons[gBankAttacker].type2 = gTypeEffectiveness[rands + 1]; + gBattleMons[gBattlerAttacker].type1 = gTypeEffectiveness[rands + 1]; + gBattleMons[gBattlerAttacker].type2 = gTypeEffectiveness[rands + 1]; gBattleTextBuff1[0] = 0xFD; gBattleTextBuff1[1] = 3; gBattleTextBuff1[2] = gTypeEffectiveness[rands + 1]; @@ -13106,7 +11952,7 @@ static void atkA6_settypetorandomresistance(void) mov r5, r8\n\ push {r5-r7}\n\ ldr r1, _08027FA8 @ =gLastLandedMoves\n\ - ldr r4, _08027FAC @ =gBankAttacker\n\ + ldr r4, _08027FAC @ =gBattlerAttacker\n\ ldrb r0, [r4]\n\ lsls r0, 1\n\ adds r2, r0, r1\n\ @@ -13152,7 +11998,7 @@ _08027F8C:\n\ b _08028110\n\ .align 2, 0\n\ _08027FA8: .4byte gLastLandedMoves\n\ -_08027FAC: .4byte gBankAttacker\n\ +_08027FAC: .4byte gBattlerAttacker\n\ _08027FB0: .4byte 0x0000ffff\n\ _08027FB4: .4byte gProtectStructs\n\ _08027FB8: .4byte gBattlescriptCurrInstr\n\ @@ -13224,7 +12070,7 @@ _0802802C:\n\ ldr r6, _08028120 @ =gTypeEffectiveness\n\ adds r3, r4, r6\n\ ldr r1, _08028124 @ =gLastHitByType\n\ - ldr r2, _08028128 @ =gBankAttacker\n\ + ldr r2, _08028128 @ =gBattlerAttacker\n\ ldrb r5, [r2]\n\ lsls r0, r5, 1\n\ adds r0, r1\n\ @@ -13342,7 +12188,7 @@ _08028110:\n\ .align 2, 0\n\ _08028120: .4byte gTypeEffectiveness\n\ _08028124: .4byte gLastHitByType\n\ -_08028128: .4byte gBankAttacker\n\ +_08028128: .4byte gBattlerAttacker\n\ _0802812C: .4byte gBattleMons\n\ _08028130: .4byte 0x000003e7\n\ _08028134: .4byte gBattlescriptCurrInstr\n\ @@ -13353,9 +12199,9 @@ _08028138: .4byte 0x0000014f\n\ static void atkA7_setalwayshitflag(void) { - gStatuses3[gBankTarget] &= ~(STATUS3_ALWAYS_HITS); - gStatuses3[gBankTarget] |= 0x10; - gDisableStructs[gBankTarget].bankWithSureHit = gBankAttacker; + gStatuses3[gBattlerTarget] &= ~(STATUS3_ALWAYS_HITS); + gStatuses3[gBattlerTarget] |= 0x10; + gDisableStructs[gBattlerTarget].bankWithSureHit = gBattlerAttacker; gBattlescriptCurrInstr++; } @@ -13369,14 +12215,14 @@ struct move_pp static void atkA8_copymovepermanently(void) { gChosenMove = 0xFFFF; - if (!(gBattleMons[gBankAttacker].status2 & STATUS2_TRANSFORMED) && gUnknown_02024C2C[gBankTarget] != MOVE_STRUGGLE && gUnknown_02024C2C[gBankTarget] != 0 && gUnknown_02024C2C[gBankTarget] != 0xFFFF && gUnknown_02024C2C[gBankTarget] != MOVE_SKETCH) + if (!(gBattleMons[gBattlerAttacker].status2 & STATUS2_TRANSFORMED) && gUnknown_02024C2C[gBattlerTarget] != MOVE_STRUGGLE && gUnknown_02024C2C[gBattlerTarget] != 0 && gUnknown_02024C2C[gBattlerTarget] != 0xFFFF && gUnknown_02024C2C[gBattlerTarget] != MOVE_SKETCH) { int i; for (i = 0; i < 4; i++) { - if (gBattleMons[gBankAttacker].moves[i] == MOVE_SKETCH) + if (gBattleMons[gBattlerAttacker].moves[i] == MOVE_SKETCH) continue; - if (gBattleMons[gBankAttacker].moves[i] == gUnknown_02024C2C[gBankTarget]) + if (gBattleMons[gBattlerAttacker].moves[i] == gUnknown_02024C2C[gBattlerTarget]) break; } if (i != 4) //sketch fail @@ -13384,21 +12230,21 @@ static void atkA8_copymovepermanently(void) else //sketch worked { struct move_pp moves_data; - gBattleMons[gBankAttacker].moves[gCurrMovePos] = gUnknown_02024C2C[gBankTarget]; - gBattleMons[gBankAttacker].pp[gCurrMovePos] = gBattleMoves[gUnknown_02024C2C[gBankTarget]].pp; - gActiveBattler = gBankAttacker; + gBattleMons[gBattlerAttacker].moves[gCurrMovePos] = gUnknown_02024C2C[gBattlerTarget]; + gBattleMons[gBattlerAttacker].pp[gCurrMovePos] = gBattleMoves[gUnknown_02024C2C[gBattlerTarget]].pp; + gActiveBattler = gBattlerAttacker; for (i = 0; i < 4; i++) { - moves_data.move[i] = gBattleMons[gBankAttacker].moves[i]; - moves_data.pp[i] = gBattleMons[gBankAttacker].pp[i]; + moves_data.move[i] = gBattleMons[gBattlerAttacker].moves[i]; + moves_data.pp[i] = gBattleMons[gBattlerAttacker].pp[i]; } - moves_data.ppBonuses = gBattleMons[gBankAttacker].ppBonuses; - EmitSetMonData(0, REQUEST_MOVES_PP_BATTLE, 0, sizeof(struct move_pp), &moves_data); - MarkBufferBankForExecution(gActiveBattler); + moves_data.ppBonuses = gBattleMons[gBattlerAttacker].ppBonuses; + BtlController_EmitSetMonData(0, REQUEST_MOVES_PP_BATTLE, 0, sizeof(struct move_pp), &moves_data); + MarkBattlerForControllerExec(gActiveBattler); gBattleTextBuff1[0] = 0xFD; gBattleTextBuff1[1] = 2; - gBattleTextBuff1[2] = gUnknown_02024C2C[gBankTarget]; - gBattleTextBuff1[3] = gUnknown_02024C2C[gBankTarget] >> 8; + gBattleTextBuff1[2] = gUnknown_02024C2C[gBattlerTarget]; + gBattleTextBuff1[3] = gUnknown_02024C2C[gBattlerTarget] >> 8; gBattleTextBuff1[4] = 0xFF; gBattlescriptCurrInstr += 5; } @@ -13446,11 +12292,11 @@ static void atkA9_trychoosesleeptalkmove(void) for (i = 0; i < 4; i++) { - if (IsMoveUnchoosable(gBattleMons[gBankAttacker].moves[i]) || gBattleMons[gBankAttacker].moves[i] == MOVE_FOCUS_PUNCH - || gBattleMons[gBankAttacker].moves[i] == MOVE_UPROAR || IsTwoTurnsMove(gBattleMons[gBankAttacker].moves[i])) + if (IsMoveUnchoosable(gBattleMons[gBattlerAttacker].moves[i]) || gBattleMons[gBattlerAttacker].moves[i] == MOVE_FOCUS_PUNCH + || gBattleMons[gBattlerAttacker].moves[i] == MOVE_UPROAR || IsTwoTurnsMove(gBattleMons[gBattlerAttacker].moves[i])) unusable_moves |= gBitTable[i]; } - unusable_moves = CheckMoveLimitations(gBankAttacker, unusable_moves, 0xFD); + unusable_moves = CheckMoveLimitations(gBattlerAttacker, unusable_moves, 0xFD); if (unusable_moves == 0xF) //all 4 moves cannot be chosen gBattlescriptCurrInstr += 5; else //at least one move can be chosen @@ -13461,25 +12307,25 @@ static void atkA9_trychoosesleeptalkmove(void) random_pos = Random() & 3; } while ((gBitTable[random_pos] & unusable_moves)); - gRandomMove = gBattleMons[gBankAttacker].moves[random_pos]; + gRandomMove = gBattleMons[gBattlerAttacker].moves[random_pos]; gCurrMovePos = random_pos; gHitMarker &= ~(HITMARKER_ATTACKSTRING_PRINTED); - gBankTarget = GetMoveTarget(gRandomMove, 0); + gBattlerTarget = GetMoveTarget(gRandomMove, 0); gBattlescriptCurrInstr = T1_READ_PTR(gBattlescriptCurrInstr + 1); } } static void atkAA_setdestinybond(void) { - gBattleMons[gBankAttacker].status2 |= STATUS2_DESTINY_BOND; + gBattleMons[gBattlerAttacker].status2 |= STATUS2_DESTINY_BOND; gBattlescriptCurrInstr++; } static void TrySetDestinyBondToHappen(void) { - u8 atk_side = GetBattlerSide(gBankAttacker); - u8 def_side = GetBattlerSide(gBankTarget); - if (gBattleMons[gBankTarget].status2 & STATUS2_DESTINY_BOND && atk_side != def_side && !(gHitMarker & HITMARKER_GRUDGE)) + u8 atk_side = GetBattlerSide(gBattlerAttacker); + u8 def_side = GetBattlerSide(gBattlerTarget); + if (gBattleMons[gBattlerTarget].status2 & STATUS2_DESTINY_BOND && atk_side != def_side && !(gHitMarker & HITMARKER_GRUDGE)) gHitMarker |= HITMARKER_DESTINYBOND; } @@ -13491,7 +12337,7 @@ static void atkAB_trysetdestinybondtohappen(void) static void atkAC_remaininghptopower(void) { - s32 hp_fraction = GetScaledHPFraction(gBattleMons[gBankAttacker].hp, gBattleMons[gBankAttacker].maxHP, 48); + s32 hp_fraction = GetScaledHPFraction(gBattleMons[gBattlerAttacker].hp, gBattleMons[gBattlerAttacker].maxHP, 48); int i; for (i = 0; i < 12; i += 2) { @@ -13504,24 +12350,24 @@ static void atkAC_remaininghptopower(void) static void atkAD_tryspiteppreduce(void) { - if (gLastUsedMove[gBankTarget] != 0 && gLastUsedMove[gBankTarget] != 0xFFFF && !(gStatuses3[gBankTarget] & STATUS3_SEMI_INVULNERABLE)) + if (gLastUsedMove[gBattlerTarget] != 0 && gLastUsedMove[gBattlerTarget] != 0xFFFF && !(gStatuses3[gBattlerTarget] & STATUS3_SEMI_INVULNERABLE)) { int i; for (i = 0; i < 4; i++) { - if (gLastUsedMove[gBankTarget] == gBattleMons[gBankTarget].moves[i]) + if (gLastUsedMove[gBattlerTarget] == gBattleMons[gBattlerTarget].moves[i]) break; } - if (i != 4 && gBattleMons[gBankTarget].pp[i] > 1) + if (i != 4 && gBattleMons[gBattlerTarget].pp[i] > 1) { s32 lost_pp = (Random() & 3) + 2; - if (gBattleMons[gBankTarget].pp[i] < lost_pp) - lost_pp = gBattleMons[gBankTarget].pp[i]; + if (gBattleMons[gBattlerTarget].pp[i] < lost_pp) + lost_pp = gBattleMons[gBattlerTarget].pp[i]; gBattleTextBuff1[0] = 0xFD; gBattleTextBuff1[1] = 2; - gBattleTextBuff1[2] = gLastUsedMove[gBankTarget]; - gBattleTextBuff1[3] = gLastUsedMove[gBankTarget] >> 8; + gBattleTextBuff1[2] = gLastUsedMove[gBattlerTarget]; + gBattleTextBuff1[3] = gLastUsedMove[gBattlerTarget] >> 8; gBattleTextBuff1[4] = 0xFF; ConvertIntToDecimalStringN(gBattleTextBuff2, lost_pp, 0, 1); gBattleTextBuff2[0] = 0xFD; @@ -13531,17 +12377,17 @@ static void atkAD_tryspiteppreduce(void) gBattleTextBuff2[4] = lost_pp; gBattleTextBuff2[5] = 0xFF; - gBattleMons[gBankTarget].pp[i] -= lost_pp; - gActiveBattler = gBankTarget; + gBattleMons[gBattlerTarget].pp[i] -= lost_pp; + gActiveBattler = gBattlerTarget; if (!(gDisableStructs[gActiveBattler].unk18_b & gBitTable[i]) && !(gBattleMons[gActiveBattler].status2 & STATUS2_TRANSFORMED)) { - EmitSetMonData(0, REQUEST_PPMOVE1_BATTLE + i, 0, 1, &gBattleMons[gActiveBattler].pp[i]); - MarkBufferBankForExecution(gActiveBattler); + BtlController_EmitSetMonData(0, REQUEST_PPMOVE1_BATTLE + i, 0, 1, &gBattleMons[gActiveBattler].pp[i]); + MarkBattlerForControllerExec(gActiveBattler); } gBattlescriptCurrInstr += 5; - if (gBattleMons[gBankTarget].pp[i] == 0) - CancelMultiTurnMoves(gBankTarget); + if (gBattleMons[gBattlerTarget].pp[i] == 0) + CancelMultiTurnMoves(gBattlerTarget); return; } } @@ -13559,22 +12405,22 @@ static void atkAE_healpartystatus(void) int i; gBattleCommunication[MULTISTRING_CHOOSER] = 0; - if (GetBattlerSide(gBankAttacker) == 0) + if (GetBattlerSide(gBattlerAttacker) == 0) party = gPlayerParty; else party = gEnemyParty; - if (gBattleMons[gBankAttacker].ability != ABILITY_SOUNDPROOF) + if (gBattleMons[gBattlerAttacker].ability != ABILITY_SOUNDPROOF) { - gBattleMons[gBankAttacker].status1 = 0; + gBattleMons[gBattlerAttacker].status1 = 0; } else { - RecordAbilityBattle(gBankAttacker, gBattleMons[gBankAttacker].ability); + RecordAbilityBattle(gBattlerAttacker, gBattleMons[gBattlerAttacker].ability); gBattleCommunication[MULTISTRING_CHOOSER] |= 1; } - gActiveBattler = gBattleStruct->scriptingActive = GetBattlerAtPosition(GetBattlerPosition(gBankAttacker) ^ 2); + gActiveBattler = gBattleStruct->scriptingActive = GetBattlerAtPosition(GetBattlerPosition(gBattlerAttacker) ^ 2); if (gBattleTypeFlags & BATTLE_TYPE_DOUBLE && !(gAbsentBattlerFlags & gBitTable[gActiveBattler])) { if (gBattleMons[gActiveBattler].ability != ABILITY_SOUNDPROOF) @@ -13595,8 +12441,8 @@ static void atkAE_healpartystatus(void) if (species != 0 && species != SPECIES_EGG) { u8 ability; - if (gBattlerPartyIndexes[gBankAttacker] == i) - ability = gBattleMons[gBankAttacker].ability; + if (gBattlerPartyIndexes[gBattlerAttacker] == i) + ability = gBattleMons[gBattlerAttacker].ability; else if (gBattleTypeFlags & BATTLE_TYPE_DOUBLE && gBattlerPartyIndexes[gActiveBattler] == i && !(gAbsentBattlerFlags & gBitTable[gActiveBattler])) ability = gBattleMons[gActiveBattler].ability; else @@ -13610,31 +12456,31 @@ static void atkAE_healpartystatus(void) { gBattleCommunication[MULTISTRING_CHOOSER] = 4; to_heal = 0x3F; - gBattleMons[gBankAttacker].status1 = zero2; + gBattleMons[gBattlerAttacker].status1 = zero2; - gActiveBattler = GetBattlerAtPosition(GetBattlerPosition(gBankAttacker) ^ 2); + gActiveBattler = GetBattlerAtPosition(GetBattlerPosition(gBattlerAttacker) ^ 2); if (gBattleTypeFlags & BATTLE_TYPE_DOUBLE && !(gAbsentBattlerFlags & gBitTable[gActiveBattler])) gBattleMons[gActiveBattler].status1 = 0; } //missing check? - gActiveBattler = gBankAttacker; - EmitSetMonData(0, REQUEST_STATUS_BATTLE, to_heal, 4, &zero); - MarkBufferBankForExecution(gActiveBattler); + gActiveBattler = gBattlerAttacker; + BtlController_EmitSetMonData(0, REQUEST_STATUS_BATTLE, to_heal, 4, &zero); + MarkBattlerForControllerExec(gActiveBattler); gBattlescriptCurrInstr++; } static void atkAF_cursetarget(void) { - if (gBattleMons[gBankTarget].status2 & STATUS2_CURSED || gStatuses3[gBankTarget] & STATUS3_SEMI_INVULNERABLE) + if (gBattleMons[gBattlerTarget].status2 & STATUS2_CURSED || gStatuses3[gBattlerTarget] & STATUS3_SEMI_INVULNERABLE) { gBattlescriptCurrInstr = T1_READ_PTR(gBattlescriptCurrInstr + 1); } else { - gBattleMons[gBankTarget].status2 |= STATUS2_CURSED; - gBattleMoveDamage = gBattleMons[gBankAttacker].maxHP / 2; + gBattleMons[gBattlerTarget].status2 |= STATUS2_CURSED; + gBattleMoveDamage = gBattleMons[gBattlerAttacker].maxHP / 2; if (gBattleMoveDamage == 0) gBattleMoveDamage = 1; gBattlescriptCurrInstr += 5; @@ -13643,10 +12489,10 @@ static void atkAF_cursetarget(void) static void atkB0_trysetspikes(void) { - u8 side = GetBattlerSide(gBankAttacker) ^ 1; + u8 side = GetBattlerSide(gBattlerAttacker) ^ 1; if (gSideTimers[side].spikesAmount == 3) { - gSpecialStatuses[gBankAttacker].flag20 = 1; + gSpecialStatuses[gBattlerAttacker].ppNotAffectedByPressure = 1; gBattlescriptCurrInstr = T1_READ_PTR(gBattlescriptCurrInstr + 1); } else @@ -13659,7 +12505,7 @@ static void atkB0_trysetspikes(void) static void atkB1_setforesight(void) { - gBattleMons[gBankTarget].status2 |= STATUS2_FORESIGHT; + gBattleMons[gBattlerTarget].status2 |= STATUS2_FORESIGHT; gBattlescriptCurrInstr++; } @@ -13679,7 +12525,7 @@ static void atkB2_trysetperishsong(void) } } - PressurePPLoseOnUsingPerishSong(gBankAttacker); + PressurePPLoseOnUsingPerishSong(gBattlerAttacker); if (not_affected_pokes == gBattlersCount) gBattlescriptCurrInstr = T1_READ_PTR(gBattlescriptCurrInstr + 1); else @@ -13690,27 +12536,27 @@ static void atkB3_rolloutdamagecalculation(void) { if (gMoveResultFlags & MOVE_RESULT_NO_EFFECT) { - CancelMultiTurnMoves(gBankAttacker); + CancelMultiTurnMoves(gBattlerAttacker); gBattlescriptCurrInstr = BattleScript_MoveMissedPause; } else { int i; - if (!(gBattleMons[gBankAttacker].status2 & STATUS2_MULTIPLETURNS)) //first hit + if (!(gBattleMons[gBattlerAttacker].status2 & STATUS2_MULTIPLETURNS)) //first hit { - gDisableStructs[gBankAttacker].rolloutTimer1 = 5; - gDisableStructs[gBankAttacker].rolloutTimer2 = 5; - gBattleMons[gBankAttacker].status2 |= STATUS2_MULTIPLETURNS; - gLockedMoves[gBankAttacker] = gCurrentMove; + gDisableStructs[gBattlerAttacker].rolloutTimer1 = 5; + gDisableStructs[gBattlerAttacker].rolloutTimer2 = 5; + gBattleMons[gBattlerAttacker].status2 |= STATUS2_MULTIPLETURNS; + gLockedMoves[gBattlerAttacker] = gCurrentMove; } - if (--gDisableStructs[gBankAttacker].rolloutTimer1 == 0) - gBattleMons[gBankAttacker].status2 &= ~(STATUS2_MULTIPLETURNS); + if (--gDisableStructs[gBattlerAttacker].rolloutTimer1 == 0) + gBattleMons[gBattlerAttacker].status2 &= ~(STATUS2_MULTIPLETURNS); gDynamicBasePower = gBattleMoves[gCurrentMove].power; - for (i = 1; i < (5 - gDisableStructs[gBankAttacker].rolloutTimer1); i++) + for (i = 1; i < (5 - gDisableStructs[gBattlerAttacker].rolloutTimer1); i++) gDynamicBasePower *= 2; - if (gBattleMons[gBankAttacker].status2 & STATUS2_DEFENSE_CURL) + if (gBattleMons[gBattlerAttacker].status2 & STATUS2_DEFENSE_CURL) gDynamicBasePower *= 2; gBattlescriptCurrInstr++; @@ -13719,7 +12565,7 @@ static void atkB3_rolloutdamagecalculation(void) static void atkB4_jumpifconfusedandstatmaxed(void) { - if (gBattleMons[gBankTarget].status2 & STATUS2_CONFUSION && gBattleMons[gBankTarget].statStages[T2_READ_8(gBattlescriptCurrInstr + 1)] == 0xC) + if (gBattleMons[gBattlerTarget].status2 & STATUS2_CONFUSION && gBattleMons[gBattlerTarget].statStages[T2_READ_8(gBattlescriptCurrInstr + 1)] == 0xC) gBattlescriptCurrInstr = T1_READ_PTR(gBattlescriptCurrInstr + 2); else gBattlescriptCurrInstr += 6; @@ -13729,18 +12575,18 @@ static void atkB5_furycuttercalc(void) { if (gMoveResultFlags & MOVE_RESULT_NO_EFFECT) { - gDisableStructs[gBankAttacker].furyCutterCounter = 0; + gDisableStructs[gBattlerAttacker].furyCutterCounter = 0; gBattlescriptCurrInstr = BattleScript_MoveMissedPause; } else { int i; - if (gDisableStructs[gBankAttacker].furyCutterCounter != 5) - gDisableStructs[gBankAttacker].furyCutterCounter++; + if (gDisableStructs[gBattlerAttacker].furyCutterCounter != 5) + gDisableStructs[gBattlerAttacker].furyCutterCounter++; gDynamicBasePower = gBattleMoves[gCurrentMove].power; - for (i = 1; i < gDisableStructs[gBankAttacker].furyCutterCounter; i++) + for (i = 1; i < gDisableStructs[gBattlerAttacker].furyCutterCounter; i++) gDynamicBasePower *= 2; gBattlescriptCurrInstr++; @@ -13750,9 +12596,9 @@ static void atkB5_furycuttercalc(void) static void atkB6_happinesstodamagecalculation(void) { if (gBattleMoves[gCurrentMove].effect == EFFECT_RETURN) - gDynamicBasePower = 10 * (gBattleMons[gBankAttacker].friendship) / 25; + gDynamicBasePower = 10 * (gBattleMons[gBattlerAttacker].friendship) / 25; else //EFFECT_FRUSTRATION - gDynamicBasePower = 10 * (255 - gBattleMons[gBankAttacker].friendship) / 25; + gDynamicBasePower = 10 * (255 - gBattleMons[gBattlerAttacker].friendship) / 25; gBattlescriptCurrInstr++; } @@ -13767,14 +12613,14 @@ static void atkB7_presentdamagecalculation(void) gDynamicBasePower = 120; else { - gBattleMoveDamage = gBattleMons[gBankTarget].maxHP / 4; + gBattleMoveDamage = gBattleMons[gBattlerTarget].maxHP / 4; if (gBattleMoveDamage == 0) gBattleMoveDamage = 1; gBattleMoveDamage *= -1; } if (rand < 204) gBattlescriptCurrInstr = BattleScript_HitFromCritCalc; - else if (gBattleMons[gBankTarget].maxHP == gBattleMons[gBankTarget].hp) + else if (gBattleMons[gBattlerTarget].maxHP == gBattleMons[gBattlerTarget].hp) gBattlescriptCurrInstr = BattleScript_AlreadyAtFullHp; else { @@ -13785,15 +12631,15 @@ static void atkB7_presentdamagecalculation(void) static void atkB8_setsafeguard(void) { - if (gSideAffecting[GetBattlerPosition(gBankAttacker) & 1] & SIDE_STATUS_SAFEGUARD) + if (gSideAffecting[GetBattlerPosition(gBattlerAttacker) & 1] & SIDE_STATUS_SAFEGUARD) { gMoveResultFlags |= MOVE_RESULT_MISSED; gBattleCommunication[MULTISTRING_CHOOSER] = 0; } else { - gSideAffecting[GetBattlerPosition(gBankAttacker) & 1] |= SIDE_STATUS_SAFEGUARD; - gSideTimers[GetBattlerPosition(gBankAttacker) & 1].safeguardTimer = 5; + gSideAffecting[GetBattlerPosition(gBattlerAttacker) & 1] |= SIDE_STATUS_SAFEGUARD; + gSideTimers[GetBattlerPosition(gBattlerAttacker) & 1].safeguardTimer = 5; gBattleCommunication[MULTISTRING_CHOOSER] = 5; } gBattlescriptCurrInstr++; @@ -13845,11 +12691,11 @@ static void atkB9_magnitudedamagecalculation(void) gBattleTextBuff1[4] = magnitude; gBattleTextBuff1[5] = 0xFF; - for (gBankTarget = 0; gBankTarget < gBattlersCount; gBankTarget++) + for (gBattlerTarget = 0; gBattlerTarget < gBattlersCount; gBattlerTarget++) { - if (gBankTarget == gBankAttacker) + if (gBattlerTarget == gBattlerAttacker) continue; - if (!(gAbsentBattlerFlags & gBitTable[gBankTarget])) //a valid target was found + if (!(gAbsentBattlerFlags & gBitTable[gBattlerTarget])) //a valid target was found break; } gBattlescriptCurrInstr++; @@ -13859,26 +12705,26 @@ static void atkBA_jumpifnopursuitswitchdmg(void) { if (gMultiHitCounter == 1) { - if (GetBattlerSide(gBankAttacker) == 0) - gBankTarget = GetBattlerAtPosition(1); + if (GetBattlerSide(gBattlerAttacker) == 0) + gBattlerTarget = GetBattlerAtPosition(1); else - gBankTarget = GetBattlerAtPosition(0); + gBattlerTarget = GetBattlerAtPosition(0); } else { - if (GetBattlerSide(gBankAttacker) == 0) - gBankTarget = GetBattlerAtPosition(3); + if (GetBattlerSide(gBattlerAttacker) == 0) + gBattlerTarget = GetBattlerAtPosition(3); else - gBankTarget = GetBattlerAtPosition(2); + gBattlerTarget = GetBattlerAtPosition(2); } - if (gActionForBanks[gBankTarget] == 0 && gBankAttacker == ewram16010arr(gBankTarget) && !(gBattleMons[gBankTarget].status1 & (STATUS_SLEEP | STATUS_FREEZE)) - && gBattleMons[gBankAttacker].hp && !gDisableStructs[gBankTarget].truantCounter && gChosenMovesByBanks[gBankTarget] == MOVE_PURSUIT) + if (gActionForBanks[gBattlerTarget] == 0 && gBattlerAttacker == ewram16010arr(gBattlerTarget) && !(gBattleMons[gBattlerTarget].status1 & (STATUS_SLEEP | STATUS_FREEZE)) + && gBattleMons[gBattlerAttacker].hp && !gDisableStructs[gBattlerTarget].truantCounter && gChosenMovesByBanks[gBattlerTarget] == MOVE_PURSUIT) { int i; for (i = 0; i < gBattlersCount; i++) { - if (gBanksByTurnOrder[i] == gBankTarget) + if (gBanksByTurnOrder[i] == gBattlerTarget) gActionsByTurnOrder[i] = 11; } gCurrentMove = MOVE_PURSUIT; @@ -13908,14 +12754,14 @@ static void atkBB_setsunny(void) static void atkBC_maxattackhalvehp(void) //belly drum { - u32 half_hp = gBattleMons[gBankAttacker].maxHP / 2; - if (!(gBattleMons[gBankAttacker].maxHP / 2)) + u32 half_hp = gBattleMons[gBattlerAttacker].maxHP / 2; + if (!(gBattleMons[gBattlerAttacker].maxHP / 2)) half_hp = 1; - if (gBattleMons[gBankAttacker].statStages[STAT_STAGE_ATK] < 12 && gBattleMons[gBankAttacker].hp > half_hp) + if (gBattleMons[gBattlerAttacker].statStages[STAT_STAGE_ATK] < 12 && gBattleMons[gBattlerAttacker].hp > half_hp) { - gBattleMons[gBankAttacker].statStages[STAT_STAGE_ATK] = 12; - gBattleMoveDamage = gBattleMons[gBankAttacker].maxHP / 2; + gBattleMons[gBattlerAttacker].statStages[STAT_STAGE_ATK] = 12; + gBattleMoveDamage = gBattleMons[gBattlerAttacker].maxHP / 2; if (gBattleMoveDamage == 0) gBattleMoveDamage = 1; gBattlescriptCurrInstr += 5; @@ -13931,36 +12777,36 @@ static void atkBD_copyfoestats(void) //psych up int i; for (i = 0; i < 8; i++) { - gBattleMons[gBankAttacker].statStages[i] = gBattleMons[gBankTarget].statStages[i]; + gBattleMons[gBattlerAttacker].statStages[i] = gBattleMons[gBattlerTarget].statStages[i]; } gBattlescriptCurrInstr += 5; //why not 1? possible unused fail possibility? } static void atkBE_rapidspinfree(void) //rapid spin { - if (gBattleMons[gBankAttacker].status2 & STATUS2_WRAPPED) + if (gBattleMons[gBattlerAttacker].status2 & STATUS2_WRAPPED) { - gBattleMons[gBankAttacker].status2 &= ~(STATUS2_WRAPPED); - gBankTarget = ewram16020arr(gBankAttacker); + gBattleMons[gBattlerAttacker].status2 &= ~(STATUS2_WRAPPED); + gBattlerTarget = ewram16020arr(gBattlerAttacker); gBattleTextBuff1[0] = 0xFD; gBattleTextBuff1[1] = 2; - gBattleTextBuff1[2] = ewram16004arr(0, gBankAttacker); - gBattleTextBuff1[3] = ewram16004arr(1, gBankAttacker); + gBattleTextBuff1[2] = ewram16004arr(0, gBattlerAttacker); + gBattleTextBuff1[3] = ewram16004arr(1, gBattlerAttacker); gBattleTextBuff1[4] = 0xFF; BattleScriptPushCursor(); gBattlescriptCurrInstr = BattleScript_WrapFree; } - else if (gStatuses3[gBankAttacker] & STATUS3_LEECHSEED) + else if (gStatuses3[gBattlerAttacker] & STATUS3_LEECHSEED) { - gStatuses3[gBankAttacker] &= ~(STATUS3_LEECHSEED); - gStatuses3[gBankAttacker] &= ~(STATUS3_LEECHSEED_BANK); + gStatuses3[gBattlerAttacker] &= ~(STATUS3_LEECHSEED); + gStatuses3[gBattlerAttacker] &= ~(STATUS3_LEECHSEED_BANK); BattleScriptPushCursor(); gBattlescriptCurrInstr = BattleScript_LeechSeedFree; } - else if (gSideAffecting[GetBattlerSide(gBankAttacker)] & SIDE_STATUS_SPIKES) + else if (gSideAffecting[GetBattlerSide(gBattlerAttacker)] & SIDE_STATUS_SPIKES) { - gSideAffecting[GetBattlerSide(gBankAttacker)] &= ~(SIDE_STATUS_SPIKES); - gSideTimers[GetBattlerSide(gBankAttacker)].spikesAmount = 0; + gSideAffecting[GetBattlerSide(gBattlerAttacker)] &= ~(SIDE_STATUS_SPIKES); + gSideTimers[GetBattlerSide(gBattlerAttacker)].spikesAmount = 0; BattleScriptPushCursor(); gBattlescriptCurrInstr = BattleScript_SpikesFree; } @@ -13970,21 +12816,21 @@ static void atkBE_rapidspinfree(void) //rapid spin static void atkBF_setdefensecurlbit(void) { - gBattleMons[gBankAttacker].status2 |= STATUS2_DEFENSE_CURL; + gBattleMons[gBattlerAttacker].status2 |= STATUS2_DEFENSE_CURL; gBattlescriptCurrInstr++; } static void atkC0_recoverbasedonsunlight(void) { - gBankTarget = gBankAttacker; - if (gBattleMons[gBankAttacker].hp != gBattleMons[gBankAttacker].maxHP) + gBattlerTarget = gBattlerAttacker; + if (gBattleMons[gBattlerAttacker].hp != gBattleMons[gBattlerAttacker].maxHP) { if (!gBattleWeather || !WEATHER_HAS_EFFECT) - gBattleMoveDamage = gBattleMons[gBankAttacker].maxHP / 2; + gBattleMoveDamage = gBattleMons[gBattlerAttacker].maxHP / 2; else if (gBattleWeather & WEATHER_SUN_ANY) - gBattleMoveDamage = 20 * gBattleMons[gBankAttacker].maxHP / 30; + gBattleMoveDamage = 20 * gBattleMons[gBattlerAttacker].maxHP / 30; else //not sunny weather - gBattleMoveDamage = gBattleMons[gBankAttacker].maxHP / 4; + gBattleMoveDamage = gBattleMons[gBattlerAttacker].maxHP / 4; if (gBattleMoveDamage == 0) gBattleMoveDamage = 1; gBattleMoveDamage *= -1; @@ -13998,37 +12844,37 @@ static void atkC0_recoverbasedonsunlight(void) static void atkC1_hiddenpowercalc(void) { - u8 power = ((gBattleMons[gBankAttacker].hpIV & 2) >> 1) | - ((gBattleMons[gBankAttacker].attackIV & 2)) | - ((gBattleMons[gBankAttacker].defenseIV & 2) << 1) | - ((gBattleMons[gBankAttacker].speedIV & 2) << 2) | - ((gBattleMons[gBankAttacker].spAttackIV & 2) << 3) | - ((gBattleMons[gBankAttacker].spDefenseIV & 2) << 4); - u8 type = ((gBattleMons[gBankAttacker].hpIV & 1)) | - ((gBattleMons[gBankAttacker].attackIV & 1) << 1) | - ((gBattleMons[gBankAttacker].defenseIV & 1) << 2) | - ((gBattleMons[gBankAttacker].speedIV & 1) << 3) | - ((gBattleMons[gBankAttacker].spAttackIV & 1) << 4) | - ((gBattleMons[gBankAttacker].spDefenseIV & 1) << 5); - + u8 power = ((gBattleMons[gBattlerAttacker].hpIV & 2) >> 1) | + ((gBattleMons[gBattlerAttacker].attackIV & 2)) | + ((gBattleMons[gBattlerAttacker].defenseIV & 2) << 1) | + ((gBattleMons[gBattlerAttacker].speedIV & 2) << 2) | + ((gBattleMons[gBattlerAttacker].spAttackIV & 2) << 3) | + ((gBattleMons[gBattlerAttacker].spDefenseIV & 2) << 4); + u8 type = ((gBattleMons[gBattlerAttacker].hpIV & 1)) | + ((gBattleMons[gBattlerAttacker].attackIV & 1) << 1) | + ((gBattleMons[gBattlerAttacker].defenseIV & 1) << 2) | + ((gBattleMons[gBattlerAttacker].speedIV & 1) << 3) | + ((gBattleMons[gBattlerAttacker].spAttackIV & 1) << 4) | + ((gBattleMons[gBattlerAttacker].spDefenseIV & 1) << 5); + gDynamicBasePower = 30 + (power * 40 / 63); - + gBattleStruct->dynamicMoveType = ((type * 15) / 63) + 1; if (gBattleStruct->dynamicMoveType >= TYPE_MYSTERY) gBattleStruct->dynamicMoveType++; - + gBattleStruct->dynamicMoveType |= 0xC0; - + gBattlescriptCurrInstr++; } static void atkC2_selectfirstvalidtarget(void) { - for (gBankTarget = 0; gBankTarget < gBattlersCount; gBankTarget++) + for (gBattlerTarget = 0; gBattlerTarget < gBattlersCount; gBattlerTarget++) { - if (gBankTarget == gBankAttacker) + if (gBattlerTarget == gBattlerAttacker) continue; - if (!(gAbsentBattlerFlags & gBitTable[gBankTarget])) + if (!(gAbsentBattlerFlags & gBitTable[gBattlerTarget])) break; } gBattlescriptCurrInstr++; @@ -14036,21 +12882,21 @@ static void atkC2_selectfirstvalidtarget(void) static void atkC3_trysetfutureattack(void) { - if (gWishFutureKnock.futureSightCounter[gBankTarget] != 0) + if (gWishFutureKnock.futureSightCounter[gBattlerTarget] != 0) { gBattlescriptCurrInstr = T1_READ_PTR(gBattlescriptCurrInstr + 1); } else { - gWishFutureKnock.futureSightMove[gBankTarget] = gCurrentMove; - gWishFutureKnock.futureSightAttacker[gBankTarget] = gBankAttacker; - gWishFutureKnock.futureSightCounter[gBankTarget] = 3; - gWishFutureKnock.futureSightDmg[gBankTarget] = CalculateBaseDamage(&gBattleMons[gBankAttacker], &gBattleMons[gBankTarget], gCurrentMove, - gSideAffecting[GetBattlerPosition(gBankTarget) & 1], 0, - 0, gBankAttacker, gBankTarget); + gWishFutureKnock.futureSightMove[gBattlerTarget] = gCurrentMove; + gWishFutureKnock.futureSightAttacker[gBattlerTarget] = gBattlerAttacker; + gWishFutureKnock.futureSightCounter[gBattlerTarget] = 3; + gWishFutureKnock.futureSightDmg[gBattlerTarget] = CalculateBaseDamage(&gBattleMons[gBattlerAttacker], &gBattleMons[gBattlerTarget], gCurrentMove, + gSideAffecting[GetBattlerPosition(gBattlerTarget) & 1], 0, + 0, gBattlerAttacker, gBattlerTarget); - if (gProtectStructs[gBankAttacker].helpingHand) - gWishFutureKnock.futureSightDmg[gBankTarget] = gWishFutureKnock.futureSightDmg[gBankTarget] * 15 / 10; + if (gProtectStructs[gBattlerAttacker].helpingHand) + gWishFutureKnock.futureSightDmg[gBattlerTarget] = gWishFutureKnock.futureSightDmg[gBattlerTarget] * 15 / 10; if (gCurrentMove == MOVE_DOOM_DESIRE) gBattleCommunication[MULTISTRING_CHOOSER] = 1; @@ -14065,12 +12911,12 @@ static void atkC3_trysetfutureattack(void) static void atkC4_trydobeatup(void) { register struct Pokemon* party asm("r7"); - if (GetBattlerSide(gBankAttacker) == 0) + if (GetBattlerSide(gBattlerAttacker) == 0) party = gPlayerParty; else party = gEnemyParty; - if (gBattleMons[gBankTarget].hp == 0) + if (gBattleMons[gBattlerTarget].hp == 0) gBattlescriptCurrInstr = T1_READ_PTR(gBattlescriptCurrInstr + 1); else { @@ -14085,7 +12931,7 @@ static void atkC4_trydobeatup(void) { gBattleTextBuff1[0] = 0xFD; gBattleTextBuff1[1] = 4; - gBattleTextBuff1[2] = gBankAttacker; + gBattleTextBuff1[2] = gBattlerAttacker; gBattleTextBuff1[3] = gBattleCommunication[0]; gBattleTextBuff1[4] = 0xFF; gBattlescriptCurrInstr += 9; @@ -14093,9 +12939,9 @@ static void atkC4_trydobeatup(void) gBattleMoveDamage = gBaseStats[GetMonData(&party[gBattleCommunication[0]], MON_DATA_SPECIES)].baseAttack; gBattleMoveDamage *= gBattleMoves[gCurrentMove].power; gBattleMoveDamage *= (GetMonData(&party[gBattleCommunication[0]], MON_DATA_LEVEL) * 2 / 5 + 2); - gBattleMoveDamage /= gBaseStats[gBattleMons[gBankTarget].species].baseDefense; + gBattleMoveDamage /= gBaseStats[gBattleMons[gBattlerTarget].species].baseDefense; gBattleMoveDamage = (gBattleMoveDamage / 50) + 2; - if (gProtectStructs[gBankAttacker].helpingHand) + if (gProtectStructs[gBattlerAttacker].helpingHand) gBattleMoveDamage = gBattleMoveDamage * 15 / 10; gBattleCommunication[0]++; @@ -14115,7 +12961,7 @@ static void atkC4_trydobeatup(void) mov r7, r9\n\ mov r6, r8\n\ push {r6,r7}\n\ - ldr r0, _08029A8C @ =gBankAttacker\n\ + ldr r0, _08029A8C @ =gBattlerAttacker\n\ ldrb r0, [r0]\n\ bl GetBattlerSide\n\ lsls r0, 24\n\ @@ -14125,7 +12971,7 @@ static void atkC4_trydobeatup(void) ldr r7, _08029A94 @ =gPlayerParty\n\ _08029A62:\n\ ldr r2, _08029A98 @ =gBattleMons\n\ - ldr r0, _08029A9C @ =gBankTarget\n\ + ldr r0, _08029A9C @ =gBattlerTarget\n\ ldrb r1, [r0]\n\ movs r0, 0x58\n\ muls r0, r1\n\ @@ -14145,11 +12991,11 @@ _08029A62:\n\ ldrb r0, [r2, 0x4]\n\ b _08029C40\n\ .align 2, 0\n\ -_08029A8C: .4byte gBankAttacker\n\ +_08029A8C: .4byte gBattlerAttacker\n\ _08029A90: .4byte gEnemyParty\n\ _08029A94: .4byte gPlayerParty\n\ _08029A98: .4byte gBattleMons\n\ -_08029A9C: .4byte gBankTarget\n\ +_08029A9C: .4byte gBattlerTarget\n\ _08029AA0: .4byte gBattlescriptCurrInstr\n\ _08029AA4:\n\ ldr r6, _08029BE0 @ =gBattleCommunication\n\ @@ -14212,7 +13058,7 @@ _08029B08:\n\ strb r0, [r1]\n\ movs r0, 0x4\n\ strb r0, [r1, 0x1]\n\ - ldr r6, _08029BE8 @ =gBankAttacker\n\ + ldr r6, _08029BE8 @ =gBattlerAttacker\n\ ldrb r0, [r6]\n\ strb r0, [r1, 0x2]\n\ strb r2, [r1, 0x3]\n\ @@ -14265,7 +13111,7 @@ _08029B08:\n\ muls r0, r1\n\ str r0, [r2]\n\ ldr r3, _08029C00 @ =gBattleMons\n\ - ldr r1, _08029C04 @ =gBankTarget\n\ + ldr r1, _08029C04 @ =gBattlerTarget\n\ ldrb r2, [r1]\n\ movs r1, 0x58\n\ muls r1, r2\n\ @@ -14307,14 +13153,14 @@ _08029BD4:\n\ .align 2, 0\n\ _08029BE0: .4byte gBattleCommunication\n\ _08029BE4: .4byte gBattleTextBuff1\n\ -_08029BE8: .4byte gBankAttacker\n\ +_08029BE8: .4byte gBattlerAttacker\n\ _08029BEC: .4byte gBattlescriptCurrInstr\n\ _08029BF0: .4byte gBattleMoveDamage\n\ _08029BF4: .4byte gBaseStats\n\ _08029BF8: .4byte gBattleMoves\n\ _08029BFC: .4byte gCurrentMove\n\ _08029C00: .4byte gBattleMons\n\ -_08029C04: .4byte gBankTarget\n\ +_08029C04: .4byte gBattlerTarget\n\ _08029C08: .4byte gProtectStructs\n\ _08029C0C:\n\ mov r0, r8\n\ @@ -14367,13 +13213,13 @@ static void atkC5_setsemiinvulnerablebit(void) { case MOVE_FLY: case MOVE_BOUNCE: - gStatuses3[gBankAttacker] |= STATUS3_ON_AIR; + gStatuses3[gBattlerAttacker] |= STATUS3_ON_AIR; break; case MOVE_DIG: - gStatuses3[gBankAttacker] |= STATUS3_UNDERGROUND; + gStatuses3[gBattlerAttacker] |= STATUS3_UNDERGROUND; break; case MOVE_DIVE: - gStatuses3[gBankAttacker] |= STATUS3_UNDERWATER; + gStatuses3[gBattlerAttacker] |= STATUS3_UNDERWATER; break; } gBattlescriptCurrInstr++; @@ -14385,13 +13231,13 @@ static void atkC6_clearsemiinvulnerablebit(void) { case MOVE_FLY: case MOVE_BOUNCE: - gStatuses3[gBankAttacker] &= ~STATUS3_ON_AIR; + gStatuses3[gBattlerAttacker] &= ~STATUS3_ON_AIR; break; case MOVE_DIG: - gStatuses3[gBankAttacker] &= ~STATUS3_UNDERGROUND; + gStatuses3[gBattlerAttacker] &= ~STATUS3_UNDERGROUND; break; case MOVE_DIVE: - gStatuses3[gBankAttacker] &= ~STATUS3_UNDERWATER; + gStatuses3[gBattlerAttacker] &= ~STATUS3_UNDERWATER; break; } gBattlescriptCurrInstr++; @@ -14400,7 +13246,7 @@ static void atkC6_clearsemiinvulnerablebit(void) static void atkC7_setminimize(void) { if (gHitMarker & HITMARKER_OBEYS) - gStatuses3[gBankAttacker] |= STATUS3_MINIMIZED; + gStatuses3[gBattlerAttacker] |= STATUS3_MINIMIZED; gBattlescriptCurrInstr++; } @@ -14422,32 +13268,32 @@ static void atkC8_sethail(void) static void atkC9_jumpifattackandspecialattackcannotfall(void) //memento { - if (gBattleMons[gBankTarget].statStages[STAT_STAGE_ATK] == 0 - && gBattleMons[gBankTarget].statStages[STAT_STAGE_SPATK] == 0 + if (gBattleMons[gBattlerTarget].statStages[STAT_STAGE_ATK] == 0 + && gBattleMons[gBattlerTarget].statStages[STAT_STAGE_SPATK] == 0 && gBattleCommunication[6] != 1) gBattlescriptCurrInstr = T1_READ_PTR(gBattlescriptCurrInstr + 1); else { - gActiveBattler = gBankAttacker; + gActiveBattler = gBattlerAttacker; gBattleMoveDamage = gBattleMons[gActiveBattler].hp; - EmitHealthBarUpdate(0, 0x7FFF); - MarkBufferBankForExecution(gActiveBattler); + BtlController_EmitHealthBarUpdate(0, 0x7FFF); + MarkBattlerForControllerExec(gActiveBattler); gBattlescriptCurrInstr += 5; } } static void atkCA_setforcedtarget(void) //follow me { - gSideTimers[GetBattlerSide(gBankAttacker)].followmeTimer = 1; - gSideTimers[GetBattlerSide(gBankAttacker)].followmeTarget = gBankAttacker; + gSideTimers[GetBattlerSide(gBattlerAttacker)].followmeTimer = 1; + gSideTimers[GetBattlerSide(gBattlerAttacker)].followmeTarget = gBattlerAttacker; gBattlescriptCurrInstr++; } static void atkCB_setcharge(void) { - gStatuses3[gBankAttacker] |= STATUS3_CHARGED_UP; - gDisableStructs[gBankAttacker].chargeTimer1 = 2; - gDisableStructs[gBankAttacker].chargeTimer2 = 2; + gStatuses3[gBattlerAttacker] |= STATUS3_CHARGED_UP; + gDisableStructs[gBattlerAttacker].chargeTimer1 = 2; + gDisableStructs[gBattlerAttacker].chargeTimer2 = 2; gBattlescriptCurrInstr++; } @@ -14455,20 +13301,20 @@ static void atkCC_callterrainattack(void) //nature power { gHitMarker &= ~(HITMARKER_ATTACKSTRING_PRINTED); gCurrentMove = sNaturePowerMoves[gBattleTerrain]; - gBankTarget = GetMoveTarget(gCurrentMove, 0); + gBattlerTarget = GetMoveTarget(gCurrentMove, 0); BattleScriptPush(gBattleScriptsForMoveEffects[gBattleMoves[gCurrentMove].effect]); gBattlescriptCurrInstr++; } static void atkCD_cureifburnedparalysedorpoisoned(void) //refresh { - if (gBattleMons[gBankAttacker].status1 & (STATUS_POISON | STATUS_BURN | STATUS_PARALYSIS | STATUS_TOXIC_POISON)) + if (gBattleMons[gBattlerAttacker].status1 & (STATUS_POISON | STATUS_BURN | STATUS_PARALYSIS | STATUS_TOXIC_POISON)) { - gBattleMons[gBankAttacker].status1 = 0; + gBattleMons[gBattlerAttacker].status1 = 0; gBattlescriptCurrInstr += 5; - gActiveBattler = gBankAttacker; - EmitSetMonData(0, REQUEST_STATUS_BATTLE, 0, 4, &gBattleMons[gActiveBattler].status1); - MarkBufferBankForExecution(gActiveBattler); + gActiveBattler = gBattlerAttacker; + BtlController_EmitSetMonData(0, REQUEST_STATUS_BATTLE, 0, 4, &gBattleMons[gActiveBattler].status1); + MarkBattlerForControllerExec(gActiveBattler); } else gBattlescriptCurrInstr = T1_READ_PTR(gBattlescriptCurrInstr + 1); @@ -14476,18 +13322,18 @@ static void atkCD_cureifburnedparalysedorpoisoned(void) //refresh static void atkCE_settorment(void) { - if (gBattleMons[gBankTarget].status2 & STATUS2_TORMENT) + if (gBattleMons[gBattlerTarget].status2 & STATUS2_TORMENT) gBattlescriptCurrInstr = T1_READ_PTR(gBattlescriptCurrInstr + 1); else { - gBattleMons[gBankTarget].status2 |= STATUS2_TORMENT; + gBattleMons[gBattlerTarget].status2 |= STATUS2_TORMENT; gBattlescriptCurrInstr += 5; } } static void atkCF_jumpifnodamage(void) { - if (gProtectStructs[gBankAttacker].physicalDmg || gProtectStructs[gBankAttacker].specialDmg) + if (gProtectStructs[gBattlerAttacker].physicalDmg || gProtectStructs[gBattlerAttacker].specialDmg) gBattlescriptCurrInstr += 5; else gBattlescriptCurrInstr = T1_READ_PTR(gBattlescriptCurrInstr + 1); @@ -14495,10 +13341,10 @@ static void atkCF_jumpifnodamage(void) static void atkD0_settaunt(void) { - if (gDisableStructs[gBankTarget].tauntTimer1 == 0) + if (gDisableStructs[gBattlerTarget].tauntTimer1 == 0) { - gDisableStructs[gBankTarget].tauntTimer1 = 2; - gDisableStructs[gBankTarget].tauntTimer2 = 2; + gDisableStructs[gBattlerTarget].tauntTimer1 = 2; + gDisableStructs[gBattlerTarget].tauntTimer2 = 2; gBattlescriptCurrInstr += 5; } else @@ -14507,356 +13353,99 @@ static void atkD0_settaunt(void) static void atkD1_trysethelpinghand(void) { - gBankTarget = GetBattlerAtPosition(GetBattlerPosition(gBankAttacker) ^ 2); - if (gBattleTypeFlags & BATTLE_TYPE_DOUBLE && !(gAbsentBattlerFlags & gBitTable[gBankTarget]) - && !gProtectStructs[gBankAttacker].helpingHand && !gProtectStructs[gBankTarget].helpingHand) + gBattlerTarget = GetBattlerAtPosition(GetBattlerPosition(gBattlerAttacker) ^ 2); + if (gBattleTypeFlags & BATTLE_TYPE_DOUBLE && !(gAbsentBattlerFlags & gBitTable[gBattlerTarget]) + && !gProtectStructs[gBattlerAttacker].helpingHand && !gProtectStructs[gBattlerTarget].helpingHand) { - gProtectStructs[gBankTarget].helpingHand = 1; + gProtectStructs[gBattlerTarget].helpingHand = 1; gBattlescriptCurrInstr += 5; } else gBattlescriptCurrInstr = T1_READ_PTR(gBattlescriptCurrInstr + 1); } -#ifdef NONMATCHING static void atkD2_tryswapitems(void) { - if ((GetBattlerSide(gBankAttacker) != 1 || gBattleTypeFlags & (BATTLE_TYPE_BATTLE_TOWER | BATTLE_TYPE_LINK | BATTLE_TYPE_EREADER_TRAINER) || gTrainerBattleOpponent == SECRET_BASE_OPPONENT)) - { - u8 side = GetBattlerSide(gBankAttacker); - if (gBattleTypeFlags) + // opponent can't swap items with player in regular battles + if ((GetBattlerSide(gBattlerAttacker) == B_SIDE_OPPONENT + && !(gBattleTypeFlags & (BATTLE_TYPE_LINK + | BATTLE_TYPE_EREADER_TRAINER + | BATTLE_TYPE_BATTLE_TOWER)) + && gTrainerBattleOpponent != SECRET_BASE_OPPONENT)) { + gBattlescriptCurrInstr = T1_READ_PTR(gBattlescriptCurrInstr + 1); } + else { + u8 sideAttacker = GetBattlerSide(gBattlerAttacker); - gBattlescriptCurrInstr = T1_READ_PTR(gBattlescriptCurrInstr + 1); -} + // you can't swap items if they were knocked off in regular battles + if (!(gBattleTypeFlags & (BATTLE_TYPE_LINK + | BATTLE_TYPE_EREADER_TRAINER + | BATTLE_TYPE_BATTLE_TOWER)) + && gTrainerBattleOpponent != SECRET_BASE_OPPONENT + && (gWishFutureKnock.knockedOffPokes[sideAttacker] & gBitTable[gBattlerPartyIndexes[gBattlerAttacker]] + )) { + gBattlescriptCurrInstr = T1_READ_PTR(gBattlescriptCurrInstr + 1); + } + // can't swap if two pokemon don't have an item + // or if either of them is an enigma berry or a mail + else if ((gBattleMons[gBattlerAttacker].item == 0 && gBattleMons[gBattlerTarget].item == 0) + || gBattleMons[gBattlerAttacker].item == ITEM_ENIGMA_BERRY + || gBattleMons[gBattlerTarget].item == ITEM_ENIGMA_BERRY + || IS_ITEM_MAIL(gBattleMons[gBattlerAttacker].item) + || IS_ITEM_MAIL(gBattleMons[gBattlerTarget].item)) { + gBattlescriptCurrInstr = T1_READ_PTR(gBattlescriptCurrInstr + 1); + } + // check if ability prevents swapping + else if (gBattleMons[gBattlerTarget].ability == ABILITY_STICKY_HOLD) { + gBattlescriptCurrInstr = BattleScript_NoItemSteal; + gLastUsedAbility = gBattleMons[gBattlerTarget].ability; + RecordAbilityBattle(gBattlerTarget, gLastUsedAbility); + } + // took a while, but all checks passed and items can be safely swapped + else { + u16 oldItemAtk, *newItemAtk; -#else -NAKED -static void atkD2_tryswapitems(void) -{ - asm(".syntax unified\n\ - push {r4-r7,lr}\n\ - mov r7, r10\n\ - mov r6, r9\n\ - mov r5, r8\n\ - push {r5-r7}\n\ - sub sp, 0x4\n\ - ldr r0, _0802A30C @ =gBankAttacker\n\ - ldrb r0, [r0]\n\ - bl GetBattlerSide\n\ - lsls r0, 24\n\ - lsrs r0, 24\n\ - cmp r0, 0x1\n\ - bne _0802A24C\n\ - ldr r0, _0802A310 @ =gBattleTypeFlags\n\ - ldrh r1, [r0]\n\ - ldr r0, _0802A314 @ =0x00000902\n\ - ands r0, r1\n\ - cmp r0, 0\n\ - bne _0802A24C\n\ - ldr r0, _0802A318 @ =gTrainerBattleOpponent\n\ - ldrh r1, [r0]\n\ - movs r0, 0x80\n\ - lsls r0, 3\n\ - cmp r1, r0\n\ - bne _0802A2EE\n\ -_0802A24C:\n\ - ldr r4, _0802A30C @ =gBankAttacker\n\ - ldrb r0, [r4]\n\ - bl GetBattlerSide\n\ - lsls r0, 24\n\ - lsrs r2, r0, 24\n\ - ldr r0, _0802A310 @ =gBattleTypeFlags\n\ - ldrh r1, [r0]\n\ - ldr r0, _0802A314 @ =0x00000902\n\ - ands r0, r1\n\ - cmp r0, 0\n\ - bne _0802A290\n\ - ldr r0, _0802A318 @ =gTrainerBattleOpponent\n\ - ldrh r1, [r0]\n\ - movs r0, 0x80\n\ - lsls r0, 3\n\ - cmp r1, r0\n\ - beq _0802A290\n\ - ldr r0, _0802A31C @ =gWishFutureKnock\n\ - adds r0, 0x29\n\ - adds r0, r2, r0\n\ - ldrb r1, [r0]\n\ - ldr r3, _0802A320 @ =gBitTable\n\ - ldr r2, _0802A324 @ =gBattlerPartyIndexes\n\ - ldrb r0, [r4]\n\ - lsls r0, 1\n\ - adds r0, r2\n\ - ldrh r0, [r0]\n\ - lsls r0, 2\n\ - adds r0, r3\n\ - ldr r0, [r0]\n\ - ands r1, r0\n\ - cmp r1, 0\n\ - bne _0802A2EE\n\ -_0802A290:\n\ - ldr r0, _0802A328 @ =gBattleMons\n\ - mov r9, r0\n\ - ldr r1, _0802A30C @ =gBankAttacker\n\ - ldrb r4, [r1]\n\ - movs r2, 0x58\n\ - mov r8, r2\n\ - mov r0, r8\n\ - muls r0, r4\n\ - mov r3, r9\n\ - adds r5, r0, r3\n\ - ldrh r3, [r5, 0x2E]\n\ - adds r1, r3, 0\n\ - cmp r1, 0\n\ - bne _0802A2BE\n\ - ldr r0, _0802A32C @ =gBankTarget\n\ - ldrb r0, [r0]\n\ - mov r2, r8\n\ - muls r2, r0\n\ - adds r0, r2, 0\n\ - add r0, r9\n\ - ldrh r0, [r0, 0x2E]\n\ - cmp r0, 0\n\ - beq _0802A2EE\n\ -_0802A2BE:\n\ - cmp r1, 0xAF\n\ - beq _0802A2EE\n\ - ldr r7, _0802A32C @ =gBankTarget\n\ - ldrb r0, [r7]\n\ - mov r1, r8\n\ - muls r1, r0\n\ - adds r0, r1, 0\n\ - mov r1, r9\n\ - adds r2, r0, r1\n\ - ldrh r1, [r2, 0x2E]\n\ - cmp r1, 0xAF\n\ - beq _0802A2EE\n\ - adds r0, r3, 0\n\ - subs r0, 0x79\n\ - lsls r0, 16\n\ - lsrs r0, 16\n\ - cmp r0, 0xB\n\ - bls _0802A2EE\n\ - adds r0, r1, 0\n\ - subs r0, 0x79\n\ - lsls r0, 16\n\ - lsrs r0, 16\n\ - cmp r0, 0xB\n\ - bhi _0802A334\n\ -_0802A2EE:\n\ - ldr r3, _0802A330 @ =gBattlescriptCurrInstr\n\ - ldr r2, [r3]\n\ - ldrb r1, [r2, 0x1]\n\ - ldrb r0, [r2, 0x2]\n\ - lsls r0, 8\n\ - orrs r1, r0\n\ - ldrb r0, [r2, 0x3]\n\ - lsls r0, 16\n\ - orrs r1, r0\n\ - ldrb r0, [r2, 0x4]\n\ - lsls r0, 24\n\ - orrs r1, r0\n\ - str r1, [r3]\n\ - b _0802A49A\n\ - .align 2, 0\n\ -_0802A30C: .4byte gBankAttacker\n\ -_0802A310: .4byte gBattleTypeFlags\n\ -_0802A314: .4byte 0x00000902\n\ -_0802A318: .4byte gTrainerBattleOpponent\n\ -_0802A31C: .4byte gWishFutureKnock\n\ -_0802A320: .4byte gBitTable\n\ -_0802A324: .4byte gBattlerPartyIndexes\n\ -_0802A328: .4byte gBattleMons\n\ -_0802A32C: .4byte gBankTarget\n\ -_0802A330: .4byte gBattlescriptCurrInstr\n\ -_0802A334:\n\ - adds r0, r2, 0\n\ - adds r0, 0x20\n\ - ldrb r0, [r0]\n\ - cmp r0, 0x3C\n\ - bne _0802A36C\n\ - ldr r1, _0802A360 @ =gBattlescriptCurrInstr\n\ - ldr r0, _0802A364 @ =BattleScript_NoItemSteal\n\ - str r0, [r1]\n\ - ldr r1, _0802A368 @ =gLastUsedAbility\n\ - ldrb r0, [r7]\n\ - mov r2, r8\n\ - muls r2, r0\n\ - adds r0, r2, 0\n\ - add r0, r9\n\ - adds r0, 0x20\n\ - ldrb r0, [r0]\n\ - strb r0, [r1]\n\ - ldrb r0, [r7]\n\ - ldrb r1, [r1]\n\ - bl RecordAbilityBattle\n\ - b _0802A49A\n\ - .align 2, 0\n\ -_0802A360: .4byte gBattlescriptCurrInstr\n\ -_0802A364: .4byte BattleScript_NoItemSteal\n\ -_0802A368: .4byte gLastUsedAbility\n\ -_0802A36C:\n\ - lsls r0, r4, 1\n\ - ldr r4, _0802A458 @ =gSharedMem + 0x160F0\n\ - adds r6, r0, r4\n\ - ldrh r5, [r5, 0x2E]\n\ - mov r10, r5\n\ - strh r1, [r6]\n\ - ldr r3, _0802A45C @ =gBankAttacker\n\ - ldrb r0, [r3]\n\ - mov r1, r8\n\ - muls r1, r0\n\ - adds r0, r1, 0\n\ - add r0, r9\n\ - movs r1, 0\n\ - strh r1, [r0, 0x2E]\n\ - ldrb r0, [r7]\n\ - mov r2, r8\n\ - muls r2, r0\n\ - adds r0, r2, 0\n\ - add r0, r9\n\ - mov r3, r10\n\ - strh r3, [r0, 0x2E]\n\ - ldr r5, _0802A460 @ =gActiveBattler\n\ - ldr r1, _0802A45C @ =gBankAttacker\n\ - ldrb r0, [r1]\n\ - strb r0, [r5]\n\ - str r6, [sp]\n\ - movs r0, 0\n\ - movs r1, 0x2\n\ - movs r2, 0\n\ - movs r3, 0x2\n\ - bl EmitSetMonData\n\ - ldr r2, _0802A45C @ =gBankAttacker\n\ - ldrb r0, [r2]\n\ - bl MarkBufferBankForExecution\n\ - ldrb r0, [r7]\n\ - strb r0, [r5]\n\ - ldrb r0, [r7]\n\ - mov r3, r8\n\ - muls r3, r0\n\ - adds r0, r3, 0\n\ - mov r1, r9\n\ - adds r1, 0x2E\n\ - adds r0, r1\n\ - str r0, [sp]\n\ - movs r0, 0\n\ - movs r1, 0x2\n\ - movs r2, 0\n\ - movs r3, 0x2\n\ - bl EmitSetMonData\n\ - ldrb r0, [r7]\n\ - bl MarkBufferBankForExecution\n\ - ldr r0, _0802A464 @ =0xfffe9f10\n\ - adds r4, r0\n\ - ldrb r0, [r7]\n\ - lsls r0, 1\n\ - ldr r2, _0802A468 @ =0x000160e8\n\ - adds r0, r2\n\ - adds r0, r4\n\ - movs r1, 0\n\ - strb r1, [r0]\n\ - ldrb r0, [r7]\n\ - lsls r0, 1\n\ - ldr r1, _0802A46C @ =0x000160e9\n\ - adds r0, r1\n\ - adds r0, r4\n\ - movs r3, 0\n\ - strb r3, [r0]\n\ - ldr r3, _0802A45C @ =gBankAttacker\n\ - ldrb r0, [r3]\n\ - lsls r0, 1\n\ - adds r0, r2\n\ - adds r0, r4\n\ - movs r2, 0\n\ - strb r2, [r0]\n\ - ldrb r0, [r3]\n\ - lsls r0, 1\n\ - adds r0, r1\n\ - adds r0, r4\n\ - strb r2, [r0]\n\ - ldr r1, _0802A470 @ =gBattlescriptCurrInstr\n\ - ldr r0, [r1]\n\ - adds r0, 0x5\n\ - str r0, [r1]\n\ - ldr r1, _0802A474 @ =gBattleTextBuff1\n\ - movs r3, 0xFD\n\ - strb r3, [r1]\n\ - movs r2, 0xA\n\ - strb r2, [r1, 0x1]\n\ - ldrh r0, [r6]\n\ - strb r0, [r1, 0x2]\n\ - ldrh r0, [r6]\n\ - lsrs r0, 8\n\ - strb r0, [r1, 0x3]\n\ - movs r0, 0xFF\n\ - strb r0, [r1, 0x4]\n\ - ldr r1, _0802A478 @ =gBattleTextBuff2\n\ - strb r3, [r1]\n\ - strb r2, [r1, 0x1]\n\ - mov r3, r10\n\ - strb r3, [r1, 0x2]\n\ - mov r2, r10\n\ - lsrs r0, r2, 8\n\ - strb r0, [r1, 0x3]\n\ - movs r0, 0x1\n\ - negs r0, r0\n\ - strb r0, [r1, 0x4]\n\ - cmp r2, 0\n\ - beq _0802A480\n\ - ldrh r0, [r6]\n\ - cmp r0, 0\n\ - beq _0802A494\n\ - ldr r1, _0802A47C @ =gBattleCommunication\n\ - movs r0, 0x2\n\ - b _0802A498\n\ - .align 2, 0\n\ -_0802A458: .4byte gSharedMem + 0x160F0\n\ -_0802A45C: .4byte gBankAttacker\n\ -_0802A460: .4byte gActiveBattler\n\ -_0802A464: .4byte 0xfffe9f10\n\ -_0802A468: .4byte 0x000160e8\n\ -_0802A46C: .4byte 0x000160e9\n\ -_0802A470: .4byte gBattlescriptCurrInstr\n\ -_0802A474: .4byte gBattleTextBuff1\n\ -_0802A478: .4byte gBattleTextBuff2\n\ -_0802A47C: .4byte gBattleCommunication\n\ -_0802A480:\n\ - ldrh r0, [r6]\n\ - cmp r0, 0\n\ - beq _0802A494\n\ - ldr r0, _0802A490 @ =gBattleCommunication\n\ - movs r3, 0\n\ - strb r3, [r0, 0x5]\n\ - b _0802A49A\n\ - .align 2, 0\n\ -_0802A490: .4byte gBattleCommunication\n\ -_0802A494:\n\ - ldr r1, _0802A4AC @ =gBattleCommunication\n\ - movs r0, 0x1\n\ -_0802A498:\n\ - strb r0, [r1, 0x5]\n\ -_0802A49A:\n\ - add sp, 0x4\n\ - pop {r3-r5}\n\ - mov r8, r3\n\ - mov r9, r4\n\ - mov r10, r5\n\ - pop {r4-r7}\n\ - pop {r0}\n\ - bx r0\n\ - .align 2, 0\n\ -_0802A4AC: .4byte gBattleCommunication\n\ - .syntax divided"); + newItemAtk = (u16 *)(ewram160F0 + 2 * gBattlerAttacker); + oldItemAtk = gBattleMons[gBattlerAttacker].item; + *newItemAtk = gBattleMons[gBattlerTarget].item; + + gBattleMons[gBattlerAttacker].item = 0; + gBattleMons[gBattlerTarget].item = oldItemAtk; + + gActiveBattler = gBattlerAttacker; + BtlController_EmitSetMonData(0, REQUEST_HELDITEM_BATTLE, 0, 2, newItemAtk); + MarkBattlerForControllerExec(gBattlerAttacker); + + gActiveBattler = gBattlerTarget; + BtlController_EmitSetMonData(0, REQUEST_HELDITEM_BATTLE, 0, 2, &gBattleMons[gBattlerTarget].item); + MarkBattlerForControllerExec(gBattlerTarget); + + ewram160E8arr2(0, gBattlerTarget) = 0; + ewram160E8arr2(1, gBattlerTarget) = 0; + ewram160E8arr2(0, gBattlerAttacker) = 0; + ewram160E8arr2(1, gBattlerAttacker) = 0; + + gBattlescriptCurrInstr += 5; + + PREPARE_ITEM_BUFFER(gBattleTextBuff1, *newItemAtk) + PREPARE_ITEM_BUFFER(gBattleTextBuff2, oldItemAtk) + + if (oldItemAtk != 0 && *newItemAtk != 0) + gBattleCommunication[MULTISTRING_CHOOSER] = 2; // attacker's item -> <- target's item + else if (oldItemAtk == 0 && *newItemAtk != 0) + gBattleCommunication[MULTISTRING_CHOOSER] = 0; // nothing -> <- target's item + else + gBattleCommunication[MULTISTRING_CHOOSER] = 1; // attacker's item -> <- nothing + } + } } -#endif // NONMATCHING static void atkD3_trycopyability(void) //role play { - if (gBattleMons[gBankTarget].ability != 0 && gBattleMons[gBankTarget].ability != ABILITY_WONDER_GUARD) + if (gBattleMons[gBattlerTarget].ability != 0 && gBattleMons[gBattlerTarget].ability != ABILITY_WONDER_GUARD) { - gBattleMons[gBankAttacker].ability = gBattleMons[gBankTarget].ability; - gLastUsedAbility = gBattleMons[gBankTarget].ability; + gBattleMons[gBattlerAttacker].ability = gBattleMons[gBattlerTarget].ability; + gLastUsedAbility = gBattleMons[gBattlerTarget].ability; gBattlescriptCurrInstr += 5; } else @@ -14868,10 +13457,10 @@ static void atkD4_trywish(void) switch (T2_READ_8(gBattlescriptCurrInstr + 1)) { case 0: //use wish - if (gWishFutureKnock.wishCounter[gBankAttacker] == 0) + if (gWishFutureKnock.wishCounter[gBattlerAttacker] == 0) { - gWishFutureKnock.wishCounter[gBankAttacker] = 2; - gWishFutureKnock.wishUserID[gBankAttacker] = gBattlerPartyIndexes[gBankAttacker]; + gWishFutureKnock.wishCounter[gBattlerAttacker] = 2; + gWishFutureKnock.wishMonId[gBattlerAttacker] = gBattlerPartyIndexes[gBattlerAttacker]; gBattlescriptCurrInstr += 6; } else @@ -14880,14 +13469,14 @@ static void atkD4_trywish(void) case 1: //heal effect gBattleTextBuff1[0] = 0xFD; gBattleTextBuff1[1] = 4; - gBattleTextBuff1[2] = gBankTarget; - gBattleTextBuff1[3] = gWishFutureKnock.wishUserID[gBankTarget]; + gBattleTextBuff1[2] = gBattlerTarget; + gBattleTextBuff1[3] = gWishFutureKnock.wishMonId[gBattlerTarget]; gBattleTextBuff1[4] = 0xFF; - gBattleMoveDamage = gBattleMons[gBankTarget].maxHP / 2; + gBattleMoveDamage = gBattleMons[gBattlerTarget].maxHP / 2; if (gBattleMoveDamage == 0) gBattleMoveDamage = 1; gBattleMoveDamage *= -1; - if (gBattleMons[gBankTarget].hp == gBattleMons[gBankTarget].maxHP) + if (gBattleMons[gBattlerTarget].hp == gBattleMons[gBattlerTarget].maxHP) gBattlescriptCurrInstr = T1_READ_PTR(gBattlescriptCurrInstr + 2); else gBattlescriptCurrInstr += 6; @@ -14897,43 +13486,43 @@ static void atkD4_trywish(void) static void atkD5_trysetroots(void) //ingrain { - if (gStatuses3[gBankAttacker] & STATUS3_ROOTED) + if (gStatuses3[gBattlerAttacker] & STATUS3_ROOTED) gBattlescriptCurrInstr = T1_READ_PTR(gBattlescriptCurrInstr + 1); else { - gStatuses3[gBankAttacker] |= STATUS3_ROOTED; + gStatuses3[gBattlerAttacker] |= STATUS3_ROOTED; gBattlescriptCurrInstr += 5; } } static void atkD6_doubledamagedealtifdamaged(void) { - if ((gProtectStructs[gBankAttacker].physicalDmg && gProtectStructs[gBankAttacker].physicalBank == gBankTarget) - || (gProtectStructs[gBankAttacker].specialDmg && gProtectStructs[gBankAttacker].specialBank == gBankTarget)) + if ((gProtectStructs[gBattlerAttacker].physicalDmg && gProtectStructs[gBattlerAttacker].physicalBattlerId == gBattlerTarget) + || (gProtectStructs[gBattlerAttacker].specialDmg && gProtectStructs[gBattlerAttacker].specialBattlerId == gBattlerTarget)) gBattleStruct->dmgMultiplier = 2; gBattlescriptCurrInstr++; } static void atkD7_setyawn(void) { - if (gStatuses3[gBankTarget] & STATUS3_YAWN || (u8) gBattleMons[gBankTarget].status1) + if (gStatuses3[gBattlerTarget] & STATUS3_YAWN || (u8) gBattleMons[gBattlerTarget].status1) gBattlescriptCurrInstr = T1_READ_PTR(gBattlescriptCurrInstr + 1); else { - gStatuses3[gBankTarget] |= 0x1000; + gStatuses3[gBattlerTarget] |= 0x1000; gBattlescriptCurrInstr += 5; } } static void atkD8_setdamagetohealthdifference(void) { - if (gBattleMons[gBankTarget].hp <= gBattleMons[gBankAttacker].hp) + if (gBattleMons[gBattlerTarget].hp <= gBattleMons[gBattlerAttacker].hp) { gBattlescriptCurrInstr = T1_READ_PTR(gBattlescriptCurrInstr + 1); } else { - gBattleMoveDamage = gBattleMons[gBankTarget].hp - gBattleMons[gBankAttacker].hp; + gBattleMoveDamage = gBattleMons[gBattlerTarget].hp - gBattleMons[gBattlerAttacker].hp; gBattlescriptCurrInstr += 5; } } @@ -14943,7 +13532,7 @@ static void atkD9_scaledamagebyhealthratio(void) if (gDynamicBasePower == 0) { u8 power = gBattleMoves[gCurrentMove].power; - gDynamicBasePower = gBattleMons[gBankAttacker].hp * power / gBattleMons[gBankAttacker].maxHP; + gDynamicBasePower = gBattleMons[gBattlerAttacker].hp * power / gBattleMons[gBattlerAttacker].maxHP; if (gDynamicBasePower == 0) gDynamicBasePower = 1; } @@ -14952,15 +13541,15 @@ static void atkD9_scaledamagebyhealthratio(void) static void atkDA_tryswapabilities(void) { - if ((gBattleMons[gBankAttacker].ability == 0 && gBattleMons[gBankTarget].ability == 0) - || gBattleMons[gBankAttacker].ability == ABILITY_WONDER_GUARD || gBattleMons[gBankTarget].ability == ABILITY_WONDER_GUARD + if ((gBattleMons[gBattlerAttacker].ability == 0 && gBattleMons[gBattlerTarget].ability == 0) + || gBattleMons[gBattlerAttacker].ability == ABILITY_WONDER_GUARD || gBattleMons[gBattlerTarget].ability == ABILITY_WONDER_GUARD || gMoveResultFlags & MOVE_RESULT_NO_EFFECT) gBattlescriptCurrInstr = T1_READ_PTR(gBattlescriptCurrInstr + 1); else { - u8 atk_ability = gBattleMons[gBankAttacker].ability; - gBattleMons[gBankAttacker].ability = gBattleMons[gBankTarget].ability; - gBattleMons[gBankTarget].ability = atk_ability; + u8 atk_ability = gBattleMons[gBattlerAttacker].ability; + gBattleMons[gBattlerAttacker].ability = gBattleMons[gBattlerTarget].ability; + gBattleMons[gBattlerTarget].ability = atk_ability; gBattlescriptCurrInstr += 5; } } @@ -14968,14 +13557,14 @@ static void atkDA_tryswapabilities(void) static void atkDB_tryimprision(void) { u8 r8 = 0; - if ((gStatuses3[gBankAttacker] & STATUS3_IMPRISIONED)) + if ((gStatuses3[gBattlerAttacker] & STATUS3_IMPRISIONED)) { gBattlescriptCurrInstr = T1_READ_PTR(gBattlescriptCurrInstr + 1); } else { u8 bank; - PressurePPLoseOnUsingImprision(gBankAttacker); + PressurePPLoseOnUsingImprision(gBattlerAttacker); for (bank = 0; bank < gBattlersCount; bank++) { if (r8 != GetBattlerSide(bank)) @@ -14986,7 +13575,7 @@ static void atkDB_tryimprision(void) int k; for (k = 0; k < 4; k++) { - if (gBattleMons[gBankAttacker].moves[j] == gBattleMons[bank].moves[k] && gBattleMons[gBankAttacker].moves[j]) + if (gBattleMons[gBattlerAttacker].moves[j] == gBattleMons[bank].moves[k] && gBattleMons[gBattlerAttacker].moves[j]) break; } if (k != 4) @@ -14994,7 +13583,7 @@ static void atkDB_tryimprision(void) } if (j != 4) { - gStatuses3[gBankAttacker] |= STATUS3_IMPRISIONED; + gStatuses3[gBattlerAttacker] |= STATUS3_IMPRISIONED; gBattlescriptCurrInstr += 5; break; } @@ -15007,11 +13596,11 @@ static void atkDB_tryimprision(void) static void atkDC_trysetgrudge(void) { - if (gStatuses3[gBankAttacker] & STATUS3_GRUDGE) + if (gStatuses3[gBattlerAttacker] & STATUS3_GRUDGE) gBattlescriptCurrInstr = T1_READ_PTR(gBattlescriptCurrInstr + 1); else { - gStatuses3[gBankAttacker] |= STATUS3_GRUDGE; + gStatuses3[gBattlerAttacker] |= STATUS3_GRUDGE; gBattlescriptCurrInstr += 5; } } @@ -15021,7 +13610,7 @@ static void atkDD_weightdamagecalculation(void) int i; for (i = 0; sWeightToDamageTable[i] != 0xFFFF; i += 2) { - if (sWeightToDamageTable[i] > GetPokedexHeightWeight(SpeciesToNationalPokedexNum(gBattleMons[gBankTarget].species), 1)) + if (sWeightToDamageTable[i] > GetPokedexHeightWeight(SpeciesToNationalPokedexNum(gBattleMons[gBattlerTarget].species), 1)) break; } if (sWeightToDamageTable[i] != 0xFFFF) @@ -15038,14 +13627,14 @@ static void atkDE_asistattackselect(void) struct Pokemon* party; int i, j; u16* chooseable_moves; - if (GetBattlerPosition(gBankAttacker) & 1) + if (GetBattlerPosition(gBattlerAttacker) & 1) party = gEnemyParty; else party = gPlayerParty; for (i = 0; i < 6; i++) { - if (i == gBattlerPartyIndexes[gBankAttacker]) + if (i == gBattlerPartyIndexes[gBattlerAttacker]) break; if (!GetMonData(&party[i], MON_DATA_SPECIES2) || GetMonData(&party[i], MON_DATA_SPECIES2) == SPECIES_EGG) break; @@ -15078,7 +13667,7 @@ static void atkDE_asistattackselect(void) { gHitMarker &= ~(HITMARKER_ATTACKSTRING_PRINTED); gRandomMove = gBattleStruct->assistMove[Random() % chooseable_moves_no]; - gBankTarget = GetMoveTarget(gRandomMove, 0); + gBattlerTarget = GetMoveTarget(gRandomMove, 0); gBattlescriptCurrInstr += 5; } else @@ -15098,7 +13687,7 @@ static void atkDE_asistattackselect(void) sub sp, 0x8\n\ movs r0, 0\n\ mov r10, r0\n\ - ldr r0, _0802AB9C @ =gBankAttacker\n\ + ldr r0, _0802AB9C @ =gBattlerAttacker\n\ ldrb r0, [r0]\n\ bl GetBattlerPosition\n\ movs r1, 0x1\n\ @@ -15113,7 +13702,7 @@ _0802AAAC:\n\ movs r2, 0\n\ _0802AAAE:\n\ ldr r1, _0802ABA8 @ =gBattlerPartyIndexes\n\ - ldr r0, _0802AB9C @ =gBankAttacker\n\ + ldr r0, _0802AB9C @ =gBattlerAttacker\n\ ldrb r0, [r0]\n\ lsls r0, 1\n\ adds r0, r1\n\ @@ -15223,7 +13812,7 @@ _0802AB54:\n\ ldrh r0, [r4]\n\ movs r1, 0\n\ bl GetMoveTarget\n\ - ldr r1, _0802ABC4 @ =gBankTarget\n\ + ldr r1, _0802ABC4 @ =gBattlerTarget\n\ strb r0, [r1]\n\ ldr r1, _0802ABC8 @ =gBattlescriptCurrInstr\n\ ldr r0, [r1]\n\ @@ -15231,7 +13820,7 @@ _0802AB54:\n\ str r0, [r1]\n\ b _0802ABE6\n\ .align 2, 0\n\ -_0802AB9C: .4byte gBankAttacker\n\ +_0802AB9C: .4byte gBattlerAttacker\n\ _0802ABA0: .4byte gPlayerParty\n\ _0802ABA4: .4byte gEnemyParty\n\ _0802ABA8: .4byte gBattlerPartyIndexes\n\ @@ -15241,7 +13830,7 @@ _0802ABB4: .4byte sMovesForbiddenToCopy\n\ _0802ABB8: .4byte gHitMarker\n\ _0802ABBC: .4byte 0xfffffbff\n\ _0802ABC0: .4byte gRandomMove\n\ -_0802ABC4: .4byte gBankTarget\n\ +_0802ABC4: .4byte gBattlerTarget\n\ _0802ABC8: .4byte gBattlescriptCurrInstr\n\ _0802ABCC:\n\ ldr r3, _0802ABF8 @ =gBattlescriptCurrInstr\n\ @@ -15275,25 +13864,25 @@ _0802ABF8: .4byte gBattlescriptCurrInstr\n\ static void atkDF_trysetmagiccoat(void) { - gBankTarget = gBankAttacker; - gSpecialStatuses[gBankAttacker].flag20 = 1; + gBattlerTarget = gBattlerAttacker; + gSpecialStatuses[gBattlerAttacker].ppNotAffectedByPressure = 1; if (gCurrentTurnActionNumber == gBattlersCount - 1) //last turn gBattlescriptCurrInstr = T1_READ_PTR(gBattlescriptCurrInstr + 1); else { - gProtectStructs[gBankAttacker].bounceMove = 1; + gProtectStructs[gBattlerAttacker].bounceMove = 1; gBattlescriptCurrInstr += 5; } } static void atkE0_trysetsnatch(void) { - gSpecialStatuses[gBankAttacker].flag20 = 1; + gSpecialStatuses[gBattlerAttacker].ppNotAffectedByPressure = 1; if (gCurrentTurnActionNumber == gBattlersCount - 1) //last turn gBattlescriptCurrInstr = T1_READ_PTR(gBattlescriptCurrInstr + 1); else { - gProtectStructs[gBankAttacker].stealMove = 1; + gProtectStructs[gBattlerAttacker].stealMove = 1; gBattlescriptCurrInstr += 5; } } @@ -15309,15 +13898,15 @@ static void atkE1_trygetintimidatetarget(void) gBattleTextBuff1[2] = gBattleMons[gBattleStruct->scriptingActive].ability; gBattleTextBuff1[3] = 0xFF; - for (;gBankTarget < gBattlersCount; gBankTarget++) + for (;gBattlerTarget < gBattlersCount; gBattlerTarget++) { - if (GetBattlerSide(gBankTarget) == side) + if (GetBattlerSide(gBattlerTarget) == side) continue; - if (!(gAbsentBattlerFlags & gBitTable[gBankTarget])) + if (!(gAbsentBattlerFlags & gBitTable[gBattlerTarget])) break; } - if (gBankTarget >= gBattlersCount) + if (gBattlerTarget >= gBattlersCount) gBattlescriptCurrInstr = T1_READ_PTR(gBattlescriptCurrInstr + 1); else gBattlescriptCurrInstr += 5; @@ -15330,8 +13919,8 @@ static void atkE2_switchoutabilities(void) { case ABILITY_NATURAL_CURE: gBattleMons[gActiveBattler].status1 = 0; - EmitSetMonData(0, REQUEST_STATUS_BATTLE, gBitTable[ewram16064arr(gActiveBattler)], 4, &gBattleMons[gActiveBattler].status1); - MarkBufferBankForExecution(gActiveBattler); + BtlController_EmitSetMonData(0, REQUEST_STATUS_BATTLE, gBitTable[ewram16064arr(gActiveBattler)], 4, &gBattleMons[gActiveBattler].status1); + MarkBattlerForControllerExec(gActiveBattler); break; } gBattlescriptCurrInstr += 2; @@ -15414,8 +14003,8 @@ static void atkE6_docastformchangeanimation(void) gActiveBattler = gBattleStruct->scriptingActive; if (gBattleMons[gActiveBattler].status2 & STATUS2_SUBSTITUTE) gBattleStruct->castformToChangeInto |= 0x80; - EmitBattleAnimation(0, B_ANIM_CASTFORM_CHANGE, gBattleStruct->castformToChangeInto); - MarkBufferBankForExecution(gActiveBattler); + BtlController_EmitBattleAnimation(0, B_ANIM_CASTFORM_CHANGE, gBattleStruct->castformToChangeInto); + MarkBattlerForControllerExec(gActiveBattler); gBattlescriptCurrInstr++; } @@ -15436,18 +14025,18 @@ static void atkE8_settypebasedhalvers(void) //water/mud sport bool8 worked = FALSE; if (gBattleMoves[gCurrentMove].effect == EFFECT_MUD_SPORT) { - if (!(gStatuses3[gBankAttacker] & STATUS3_MUDSPORT)) + if (!(gStatuses3[gBattlerAttacker] & STATUS3_MUDSPORT)) { - gStatuses3[gBankAttacker] |= STATUS3_MUDSPORT; + gStatuses3[gBattlerAttacker] |= STATUS3_MUDSPORT; gBattleCommunication[MULTISTRING_CHOOSER] = 0; worked = TRUE; } } else //water sport { - if (!(gStatuses3[gBankAttacker] & STATUS3_WATERSPORT)) + if (!(gStatuses3[gBattlerAttacker] & STATUS3_WATERSPORT)) { - gStatuses3[gBankAttacker] |= STATUS3_WATERSPORT; + gStatuses3[gBattlerAttacker] |= STATUS3_WATERSPORT; gBattleCommunication[MULTISTRING_CHOOSER] = 1; worked = TRUE; } @@ -15481,15 +14070,15 @@ static void atkE9_setweatherballtype(void) static void atkEA_tryrecycleitem(void) { u16* used_item; - gActiveBattler = gBankAttacker; + gActiveBattler = gBattlerAttacker; used_item = USED_HELD_ITEM(gActiveBattler); if (*used_item && gBattleMons[gActiveBattler].item == 0) { gLastUsedItem = *used_item; *used_item = 0; gBattleMons[gActiveBattler].item = gLastUsedItem; - EmitSetMonData(0, REQUEST_HELDITEM_BATTLE, 0, 2, &gBattleMons[gActiveBattler].item); - MarkBufferBankForExecution(gActiveBattler); + BtlController_EmitSetMonData(0, REQUEST_HELDITEM_BATTLE, 0, 2, &gBattleMons[gActiveBattler].item); + MarkBattlerForControllerExec(gActiveBattler); gBattlescriptCurrInstr += 5; } else @@ -15498,10 +14087,10 @@ static void atkEA_tryrecycleitem(void) static void atkEB_settypetoterrain(void) { - if (gBattleMons[gBankAttacker].type1 != sTerrainToType[gBattleTerrain] && gBattleMons[gBankAttacker].type2 != sTerrainToType[gBattleTerrain]) + if (gBattleMons[gBattlerAttacker].type1 != sTerrainToType[gBattleTerrain] && gBattleMons[gBattlerAttacker].type2 != sTerrainToType[gBattleTerrain]) { - gBattleMons[gBankAttacker].type1 = sTerrainToType[gBattleTerrain]; - gBattleMons[gBankAttacker].type2 = sTerrainToType[gBattleTerrain]; + gBattleMons[gBattlerAttacker].type1 = sTerrainToType[gBattleTerrain]; + gBattleMons[gBattlerAttacker].type2 = sTerrainToType[gBattleTerrain]; gBattleTextBuff1[0] = 0xFD; gBattleTextBuff1[1] = 3; gBattleTextBuff1[2] = sTerrainToType[gBattleTerrain]; @@ -15514,15 +14103,15 @@ static void atkEB_settypetoterrain(void) static void atkEC_pursuitrelated(void) { - gActiveBattler = GetBattlerAtPosition(GetBattlerPosition(gBankAttacker) ^ 2); + gActiveBattler = GetBattlerAtPosition(GetBattlerPosition(gBattlerAttacker) ^ 2); if (gBattleTypeFlags & BATTLE_TYPE_DOUBLE && !(gAbsentBattlerFlags & gBitTable[gActiveBattler]) && gActionForBanks[gActiveBattler] == 0 && gChosenMovesByBanks[gActiveBattler] == MOVE_PURSUIT) { gActionsByTurnOrder[gActiveBattler] = 11; gCurrentMove = MOVE_PURSUIT; gBattlescriptCurrInstr += 5; gBattleStruct->animTurn = 1; - gBattleStruct->unk160A7 = gBankAttacker; - gBankAttacker = gActiveBattler; + gBattleStruct->unk160A7 = gBattlerAttacker; + gBattlerAttacker = gActiveBattler; } else gBattlescriptCurrInstr = T1_READ_PTR(gBattlescriptCurrInstr + 1); @@ -15530,18 +14119,18 @@ static void atkEC_pursuitrelated(void) static void atkED_snatchsetbanks(void) { - gEffectBank = gBankAttacker; - if (gBankAttacker == gBankTarget) - gBankAttacker = gBankTarget = gBattleStruct->scriptingActive; + gEffectBattler = gBattlerAttacker; + if (gBattlerAttacker == gBattlerTarget) + gBattlerAttacker = gBattlerTarget = gBattleStruct->scriptingActive; else - gBankTarget = gBattleStruct->scriptingActive; - gBattleStruct->scriptingActive = gEffectBank; + gBattlerTarget = gBattleStruct->scriptingActive; + gBattleStruct->scriptingActive = gEffectBattler; gBattlescriptCurrInstr++; } static void atkEE_removelightscreenreflect(void) //brick break { - u8 side = GetBattlerSide(gBankAttacker) ^ 1; + u8 side = GetBattlerSide(gBattlerAttacker) ^ 1; if (gSideTimers[side].reflectTimer || gSideTimers[side].lightscreenTimer) { gSideAffecting[side] &= ~(SIDE_STATUS_REFLECT); @@ -15562,21 +14151,21 @@ static void atkEE_removelightscreenreflect(void) //brick break void atkEF_handleballthrow(void) { u8 ball_multiplier = 0; - if (gBattleExecBuffer) + if (gBattleControllerExecFlags) return; - gActiveBattler = gBankAttacker; - gBankTarget = gBankAttacker ^ 1; + gActiveBattler = gBattlerAttacker; + gBattlerTarget = gBattlerAttacker ^ 1; if (gBattleTypeFlags & BATTLE_TYPE_TRAINER) { - EmitBallThrow(0, 5); - MarkBufferBankForExecution(gActiveBattler); + BtlController_EmitBallThrowAnim(0, 5); + MarkBattlerForControllerExec(gActiveBattler); gBattlescriptCurrInstr = BattleScript_TrainerBallBlock; } else if (gBattleTypeFlags & BATTLE_TYPE_WALLY_TUTORIAL) { - EmitBallThrow(0, 4); - MarkBufferBankForExecution(gActiveBattler); + BtlController_EmitBallThrowAnim(0, 4); + MarkBattlerForControllerExec(gActiveBattler); gBattlescriptCurrInstr = BattleScript_WallyBallThrow; } else @@ -15586,13 +14175,13 @@ void atkEF_handleballthrow(void) if (gLastUsedItem == ITEM_SAFARI_BALL) catch_rate = gBattleStruct->unk16089 * 1275 / 100; //correct the name to safariFleeRate else - catch_rate = gBaseStats[gBattleMons[gBankTarget].species].catchRate; + catch_rate = gBaseStats[gBattleMons[gBattlerTarget].species].catchRate; if (gLastUsedItem > 5) { switch (gLastUsedItem) { case ITEM_NET_BALL: - if (gBattleMons[gBankTarget].type1 == TYPE_WATER || gBattleMons[gBankTarget].type2 == TYPE_WATER || gBattleMons[gBankTarget].type1 == TYPE_BUG || gBattleMons[gBankTarget].type2 == TYPE_BUG) + if (gBattleMons[gBattlerTarget].type1 == TYPE_WATER || gBattleMons[gBattlerTarget].type2 == TYPE_WATER || gBattleMons[gBattlerTarget].type1 == TYPE_BUG || gBattleMons[gBattlerTarget].type2 == TYPE_BUG) ball_multiplier = 30; else ball_multiplier = 10; @@ -15604,9 +14193,9 @@ void atkEF_handleballthrow(void) ball_multiplier = 10; break; case ITEM_NEST_BALL: - if (gBattleMons[gBankTarget].level <= 39) + if (gBattleMons[gBattlerTarget].level <= 39) { - ball_multiplier = 40 - gBattleMons[gBankTarget].level; + ball_multiplier = 40 - gBattleMons[gBattlerTarget].level; if (ball_multiplier <= 9) ball_multiplier = 10; } @@ -15614,7 +14203,7 @@ void atkEF_handleballthrow(void) ball_multiplier = 10; break; case ITEM_REPEAT_BALL: - if (GetSetPokedexFlag(SpeciesToNationalPokedexNum(gBattleMons[gBankTarget].species), 1)) + if (GetSetPokedexFlag(SpeciesToNationalPokedexNum(gBattleMons[gBattlerTarget].species), 1)) ball_multiplier = 30; else ball_multiplier = 10; @@ -15633,10 +14222,10 @@ void atkEF_handleballthrow(void) else ball_multiplier = sBallCatchBonuses[gLastUsedItem - 2]; - odds = (catch_rate * ball_multiplier / 10) * (gBattleMons[gBankTarget].maxHP * 3 - gBattleMons[gBankTarget].hp * 2) / (3 * gBattleMons[gBankTarget].maxHP); - if (gBattleMons[gBankTarget].status1 & (STATUS_SLEEP | STATUS_FREEZE)) + odds = (catch_rate * ball_multiplier / 10) * (gBattleMons[gBattlerTarget].maxHP * 3 - gBattleMons[gBattlerTarget].hp * 2) / (3 * gBattleMons[gBattlerTarget].maxHP); + if (gBattleMons[gBattlerTarget].status1 & (STATUS_SLEEP | STATUS_FREEZE)) odds *= 2; - if (gBattleMons[gBankTarget].status1 & (STATUS_POISON | STATUS_BURN | STATUS_PARALYSIS /*| STATUS_TOXIC_POISON */)) //nice one gf + if (gBattleMons[gBattlerTarget].status1 & (STATUS_POISON | STATUS_BURN | STATUS_PARALYSIS /*| STATUS_TOXIC_POISON */)) //nice one gf odds = (odds * 15) / 10; if (gLastUsedItem != ITEM_SAFARI_BALL) @@ -15653,10 +14242,10 @@ void atkEF_handleballthrow(void) } if (odds > 254) //poke caught { - EmitBallThrow(0, 4); - MarkBufferBankForExecution(gActiveBattler); + BtlController_EmitBallThrowAnim(0, 4); + MarkBattlerForControllerExec(gActiveBattler); gBattlescriptCurrInstr = BattleScript_SuccessBallThrow; - SetMonData(&gEnemyParty[gBattlerPartyIndexes[gBankTarget]], MON_DATA_POKEBALL, (const void*) &gLastUsedItem); + SetMonData(&gEnemyParty[gBattlerPartyIndexes[gBattlerTarget]], MON_DATA_POKEBALL, (const void*) &gLastUsedItem); if (CalculatePlayerPartyCount() == 6) gBattleCommunication[MULTISTRING_CHOOSER] = 0; else @@ -15670,12 +14259,12 @@ void atkEF_handleballthrow(void) for (shakes = 0; shakes < 4 && Random() < odds; shakes++) {} if (gLastUsedItem == ITEM_MASTER_BALL) shakes = 4; //why calculate the shakes before that check? - EmitBallThrow(0, shakes); - MarkBufferBankForExecution(gActiveBattler); + BtlController_EmitBallThrowAnim(0, shakes); + MarkBattlerForControllerExec(gActiveBattler); if (shakes == 4) //poke caught, copy of the code above { gBattlescriptCurrInstr = BattleScript_SuccessBallThrow; - SetMonData(&gEnemyParty[gBattlerPartyIndexes[gBankTarget]], MON_DATA_POKEBALL, (const void*) &gLastUsedItem); + SetMonData(&gEnemyParty[gBattlerPartyIndexes[gBattlerTarget]], MON_DATA_POKEBALL, (const void*) &gLastUsedItem); if (CalculatePlayerPartyCount() == 6) gBattleCommunication[MULTISTRING_CHOOSER] = 0; else @@ -15692,23 +14281,23 @@ void atkEF_handleballthrow(void) static void atkF0_givecaughtmon(void) { - GiveMonToPlayer(&gEnemyParty[gBattlerPartyIndexes[gBankAttacker ^ 1]]); - gBattleResults.caughtPoke = gBattleMons[gBankAttacker ^ 1].species; - GetMonData(&gEnemyParty[gBattlerPartyIndexes[gBankAttacker ^ 1]], MON_DATA_NICKNAME, gBattleResults.caughtNick); + GiveMonToPlayer(&gEnemyParty[gBattlerPartyIndexes[gBattlerAttacker ^ 1]]); + gBattleResults.caughtPoke = gBattleMons[gBattlerAttacker ^ 1].species; + GetMonData(&gEnemyParty[gBattlerPartyIndexes[gBattlerAttacker ^ 1]], MON_DATA_NICKNAME, gBattleResults.caughtNick); gBattlescriptCurrInstr++; } static void atkF1_trysetcaughtmondexflags(void) { - if (GetSetPokedexFlag(SpeciesToNationalPokedexNum(gBattleMons[gBankTarget].species), 1)) + if (GetSetPokedexFlag(SpeciesToNationalPokedexNum(gBattleMons[gBattlerTarget].species), 1)) gBattlescriptCurrInstr = T1_READ_PTR(gBattlescriptCurrInstr + 1); else { - GetSetPokedexFlag(SpeciesToNationalPokedexNum(gBattleMons[gBankTarget].species), 3); - if (gBattleMons[gBankTarget].species == SPECIES_UNOWN) - gSaveBlock2.pokedex.unownPersonality = gBattleMons[gBankTarget].personality; - if (gBattleMons[gBankTarget].species == SPECIES_SPINDA) //else if - gSaveBlock2.pokedex.spindaPersonality = gBattleMons[gBankTarget].personality; + GetSetPokedexFlag(SpeciesToNationalPokedexNum(gBattleMons[gBattlerTarget].species), 3); + if (gBattleMons[gBattlerTarget].species == SPECIES_UNOWN) + gSaveBlock2.pokedex.unownPersonality = gBattleMons[gBattlerTarget].personality; + if (gBattleMons[gBattlerTarget].species == SPECIES_SPINDA) //else if + gSaveBlock2.pokedex.spindaPersonality = gBattleMons[gBattlerTarget].personality; gBattlescriptCurrInstr += 5; } } @@ -15728,15 +14317,15 @@ static void atkF2_displaydexinfo(void) case 1: if (!gPaletteFade.active) { - gBattleCommunication[1] = sub_809070C(SpeciesToNationalPokedexNum(gBattleMons[gBankTarget].species), gBattleMons[gBankTarget].otId, gBattleMons[gBankTarget].personality); + gBattleCommunication[1] = sub_809070C(SpeciesToNationalPokedexNum(gBattleMons[gBattlerTarget].species), gBattleMons[gBattlerTarget].otId, gBattleMons[gBattlerTarget].personality); gBattleCommunication[0]++; } break; case 2: if (!gPaletteFade.active && gMain.callback2 == BattleMainCB2 && !gTasks[gBattleCommunication[1]].isActive) { - LZDecompressVram(gBattleTerrainTiles_Building, (void*)(0x06008000)); - LZDecompressVram(gBattleTerrainTilemap_Building, (void*)(0x0600d000)); + LZDecompressVram(gBattleTerrainTiles_Building, (void*)(VRAM + 0x8000)); + LZDecompressVram(gBattleTerrainTilemap_Building, (void*)(VRAM + 0xD000)); LoadCompressedPalette(gBattleTerrainPalette_BattleTower, 0x20, 0x60); REG_BG3CNT = 0x5a0b; gBattle_BG3_X = 0x100; @@ -15896,15 +14485,15 @@ static void atkF3_trygivecaughtmonnick(void) case 2: if (!gPaletteFade.active) { - GetMonData(&gEnemyParty[gBattlerPartyIndexes[gBankAttacker ^ 1]], MON_DATA_NICKNAME, gBattleStruct->caughtNick); - DoNamingScreen(2, gBattleStruct->caughtNick, GetMonData(&gEnemyParty[gBattlerPartyIndexes[gBankAttacker ^ 1]], MON_DATA_SPECIES), GetMonGender(&gEnemyParty[gBattlerPartyIndexes[gBankAttacker ^ 1]]), GetMonData(&gEnemyParty[gBattlerPartyIndexes[gBankAttacker ^ 1]], MON_DATA_PERSONALITY, 0), BattleMainCB2); + GetMonData(&gEnemyParty[gBattlerPartyIndexes[gBattlerAttacker ^ 1]], MON_DATA_NICKNAME, gBattleStruct->caughtNick); + DoNamingScreen(2, gBattleStruct->caughtNick, GetMonData(&gEnemyParty[gBattlerPartyIndexes[gBattlerAttacker ^ 1]], MON_DATA_SPECIES), GetMonGender(&gEnemyParty[gBattlerPartyIndexes[gBattlerAttacker ^ 1]]), GetMonData(&gEnemyParty[gBattlerPartyIndexes[gBattlerAttacker ^ 1]], MON_DATA_PERSONALITY, 0), BattleMainCB2); gBattleCommunication[0]++; } break; case 3: if (gMain.callback2 == BattleMainCB2 && !gPaletteFade.active ) { - SetMonData(&gEnemyParty[gBattlerPartyIndexes[gBankAttacker ^ 1]], MON_DATA_NICKNAME, gBattleStruct->caughtNick); + SetMonData(&gEnemyParty[gBattlerPartyIndexes[gBattlerAttacker ^ 1]], MON_DATA_NICKNAME, gBattleStruct->caughtNick); gBattlescriptCurrInstr = T1_READ_PTR(gBattlescriptCurrInstr + 1); } break; @@ -15919,13 +14508,13 @@ static void atkF3_trygivecaughtmonnick(void) static void atkF4_subattackerhpbydmg(void) { - gBattleMons[gBankAttacker].hp -= gBattleMoveDamage; + gBattleMons[gBattlerAttacker].hp -= gBattleMoveDamage; gBattlescriptCurrInstr++; } static void atkF5_removeattackerstatus1(void) { - gBattleMons[gBankAttacker].status1 = 0; + gBattleMons[gBattlerAttacker].status1 = 0; gBattlescriptCurrInstr++; } diff --git a/src/battle/battle_setup.c b/src/battle_setup.c index c457cc8ec..2ad57e961 100644 --- a/src/battle/battle_setup.c +++ b/src/battle_setup.c @@ -484,7 +484,7 @@ static void Task_BattleStart(u8 taskId) case 1: if (IsBattleTransitionDone() == TRUE) { - SetMainCallback2(sub_800E7C4); + SetMainCallback2(CB2_InitBattle); RestartWildEncounterImmunitySteps(); ClearPoisonStepCounter(); DestroyTask(taskId); @@ -887,7 +887,7 @@ static void CB2_StartFirstBattle(void) { gBattleTypeFlags = BATTLE_TYPE_FIRST_BATTLE; gMain.savedCallback = CB2_EndFirstBattle; - SetMainCallback2(sub_800E7C4); + SetMainCallback2(CB2_InitBattle); RestartWildEncounterImmunitySteps(); ClearPoisonStepCounter(); IncrementGameStat(GAME_STAT_TOTAL_BATTLES); diff --git a/src/battle_tower.c b/src/battle_tower.c index 7adfc6f7c..8449b7e42 100644 --- a/src/battle_tower.c +++ b/src/battle_tower.c @@ -1290,7 +1290,7 @@ void sub_8135534(u8 taskId) if (IsBattleTransitionDone() == TRUE) { gMain.savedCallback = sub_81354CC; - SetMainCallback2(sub_800E7C4); + SetMainCallback2(CB2_InitBattle); DestroyTask(taskId); } } diff --git a/src/battle/battle_transition.c b/src/battle_transition.c index a0c94f713..a0c94f713 100644 --- a/src/battle/battle_transition.c +++ b/src/battle_transition.c diff --git a/src/battle/battle_util.c b/src/battle_util.c index 3d1770239..1825d7a2c 100644 --- a/src/battle/battle_util.c +++ b/src/battle_util.c @@ -31,15 +31,15 @@ extern u8* gSelectionBattleScripts[4]; //battlescript location when you try to c extern u16 gLastUsedMove[4]; extern struct BattlePokemon gBattleMons[4]; extern struct BattleEnigmaBerry gEnigmaBerries[4]; -extern u8 gStringBank; +extern u8 gPotentialItemEffectBattler; extern u16 gLastUsedItem; extern u16 gCurrentMove; extern const u32 gBitTable[]; extern u16 gBattleTypeFlags; extern u8 gBattlersCount; extern u32 gStatuses3[4]; -extern u8 gBankAttacker; -extern u8 gBankTarget; +extern u8 gBattlerAttacker; +extern u8 gBattlerTarget; extern u8 gBanksByTurnOrder[4]; extern u16 gSideAffecting[2]; extern u16 gBattleWeather; @@ -47,7 +47,7 @@ extern void (*gBattleMainFunc)(void); extern u8 gAbsentBattlerFlags; extern u8 gBattleCommunication[]; extern u32 gHitMarker; -extern u8 gEffectBank; +extern u8 gEffectBattler; extern u8 gBank1; extern s32 gBattleMoveDamage; extern u16 gBattlerPartyIndexes[4]; @@ -64,7 +64,7 @@ extern u8 gCurrMovePos; extern u16 gRandomMove; extern s32 gBattleMoveDamage; extern u16 gDynamicBasePower; -extern u32 gBattleExecBuffer; +extern u32 gBattleControllerExecFlags; extern u8 gSentPokesToOpponent[2]; extern const u16 gSoundMovesTable[]; extern const u8 gStatusConditionString_PoisonJpn[]; @@ -213,13 +213,13 @@ u8 GetBattleBank(u8 caseId) switch (caseId) { case BS_GET_TARGET: - ret = gBankTarget; + ret = gBattlerTarget; break; case BS_GET_ATTACKER: - ret = gBankAttacker; + ret = gBattlerAttacker; break; case BS_GET_EFFECT_BANK: - ret = gEffectBank; + ret = gEffectBattler; break; case BS_GET_BANK_0: ret = 0; @@ -260,8 +260,8 @@ void PressurePPLose(u8 bankDef, u8 bankAtk, u16 move) && !(gDisableStructs[bankAtk].unk18_b & gBitTable[i])) { gActiveBattler = bankAtk; - EmitSetMonData(0, REQUEST_PPMOVE1_BATTLE + i, 0, 1, &gBattleMons[gActiveBattler].pp[i]); - MarkBufferBankForExecution(gActiveBattler); + BtlController_EmitSetMonData(0, REQUEST_PPMOVE1_BATTLE + i, 0, 1, &gBattleMons[gActiveBattler].pp[i]); + MarkBattlerForControllerExec(gActiveBattler); } } @@ -294,8 +294,8 @@ void PressurePPLoseOnUsingImprision(u8 bankAtk) && !(gDisableStructs[bankAtk].unk18_b & gBitTable[imprisionPos])) { gActiveBattler = bankAtk; - EmitSetMonData(0, REQUEST_PPMOVE1_BATTLE + imprisionPos, 0, 1, &gBattleMons[gActiveBattler].pp[imprisionPos]); - MarkBufferBankForExecution(gActiveBattler); + BtlController_EmitSetMonData(0, REQUEST_PPMOVE1_BATTLE + imprisionPos, 0, 1, &gBattleMons[gActiveBattler].pp[imprisionPos]); + MarkBattlerForControllerExec(gActiveBattler); } } @@ -327,8 +327,8 @@ void PressurePPLoseOnUsingPerishSong(u8 bankAtk) && !(gDisableStructs[bankAtk].unk18_b & gBitTable[perishSongPos])) { gActiveBattler = bankAtk; - EmitSetMonData(0, REQUEST_PPMOVE1_BATTLE + perishSongPos, 0, 1, &gBattleMons[gActiveBattler].pp[perishSongPos]); - MarkBufferBankForExecution(gActiveBattler); + BtlController_EmitSetMonData(0, REQUEST_PPMOVE1_BATTLE + perishSongPos, 0, 1, &gBattleMons[gActiveBattler].pp[perishSongPos]); + MarkBattlerForControllerExec(gActiveBattler); } } @@ -340,25 +340,21 @@ void MarkAllBufferBanksForExecution(void) // unused if (gBattleTypeFlags & BATTLE_TYPE_LINK) { for (i = 0; i < gBattlersCount; i++) - gBattleExecBuffer |= gBitTable[i] << 0x1C; + gBattleControllerExecFlags |= gBitTable[i] << 0x1C; } else { for (i = 0; i < gBattlersCount; i++) - gBattleExecBuffer |= gBitTable[i]; + gBattleControllerExecFlags |= gBitTable[i]; } } -void MarkBufferBankForExecution(u8 bank) +void MarkBattlerForControllerExec(u8 bank) { if (gBattleTypeFlags & BATTLE_TYPE_LINK) - { - gBattleExecBuffer |= gBitTable[bank] << 0x1C; - } + gBattleControllerExecFlags |= gBitTable[bank] << 0x1C; else - { - gBattleExecBuffer |= gBitTable[bank]; - } + gBattleControllerExecFlags |= gBitTable[bank]; } void sub_80155A4(u8 arg0) @@ -366,9 +362,9 @@ void sub_80155A4(u8 arg0) s32 i; for (i = 0; i < GetLinkPlayerCount(); i++) - gBattleExecBuffer |= gBitTable[arg0] << (i << 2); + gBattleControllerExecFlags |= gBitTable[arg0] << (i << 2); - gBattleExecBuffer &= ~(0x10000000 << arg0); + gBattleControllerExecFlags &= ~(0x10000000 << arg0); } void CancelMultiTurnMoves(u8 bank) @@ -387,8 +383,8 @@ void CancelMultiTurnMoves(u8 bank) bool8 WasUnableToUseMove(u8 bank) { if (gProtectStructs[bank].prlzImmobility - || gProtectStructs[bank].notEffective - || gProtectStructs[bank].usedImprisionedMove + || gProtectStructs[bank].targetNotAffected + || gProtectStructs[bank].usedImprisonedMove || gProtectStructs[bank].loveImmobility || gProtectStructs[bank].usedDisabledMove || gProtectStructs[bank].usedTauntedMove @@ -403,8 +399,8 @@ bool8 WasUnableToUseMove(u8 bank) void PrepareStringBattle(u16 stringId, u8 bank) { gActiveBattler = bank; - EmitPrintString(0, stringId); - MarkBufferBankForExecution(gActiveBattler); + BtlController_EmitPrintString(0, stringId); + MarkBattlerForControllerExec(gActiveBattler); } void ResetSentPokesToOpponentValue(void) @@ -477,6 +473,7 @@ u8 TrySetCantSelectMoveBattleScript(void) //msg can't select a move u16 move = gBattleMons[gActiveBattler].moves[gBattleBufferB[gActiveBattler][2]]; u8 holdEffect; u16* choicedMove = CHOICED_MOVE(gActiveBattler); + if (gDisableStructs[gActiveBattler].disabledMove == move && move) { gBattleStruct->scriptingActive = gActiveBattler; @@ -502,11 +499,14 @@ u8 TrySetCantSelectMoveBattleScript(void) //msg can't select a move gSelectionBattleScripts[gActiveBattler] = BattleScript_MoveSelectionImprisoned; limitations++; } + if (gBattleMons[gActiveBattler].item == ITEM_ENIGMA_BERRY) holdEffect = gEnigmaBerries[gActiveBattler].holdEffect; else holdEffect = ItemId_GetHoldEffect(gBattleMons[gActiveBattler].item); - gStringBank = gActiveBattler; + + gPotentialItemEffectBattler = gActiveBattler; + if (holdEffect == HOLD_EFFECT_CHOICE_BAND && *choicedMove != 0 && *choicedMove != 0xFFFF && *choicedMove != move) { gCurrentMove = *choicedMove; @@ -538,7 +538,7 @@ u8 CheckMoveLimitations(u8 bank, u8 unusableMoves, u8 check) holdEffect = gEnigmaBerries[bank].holdEffect; else holdEffect = ItemId_GetHoldEffect(gBattleMons[bank].item); - gStringBank = bank; + gPotentialItemEffectBattler = bank; for (i = 0; i < 4; i++) { if (gBattleMons[bank].moves[i] == 0 && check & MOVE_LIMITATION_ZEROMOVE) @@ -567,7 +567,7 @@ bool8 AreAllMovesUnusable(void) unusable = CheckMoveLimitations(gActiveBattler, 0, 0xFF); if (unusable == 0xF) //all moves are unusable { - gProtectStructs[gActiveBattler].onlyStruggle = 1; + gProtectStructs[gActiveBattler].noValidMoves = 1; gSelectionBattleScripts[gActiveBattler] = BattleScript_NoMovesLeft; if (gBattleTypeFlags & BATTLE_TYPE_DOUBLE) gBattleBufferB[gActiveBattler][3] = GetBattlerAtPosition((GetBattlerPosition(gActiveBattler) ^ 1) | (Random() & 2)); @@ -575,7 +575,7 @@ bool8 AreAllMovesUnusable(void) gBattleBufferB[gActiveBattler][3] = GetBattlerAtPosition(GetBattlerPosition(gActiveBattler) ^ 1); } else - gProtectStructs[gActiveBattler].onlyStruggle = 0; + gProtectStructs[gActiveBattler].noValidMoves = 0; return (unusable == 0xF); } @@ -606,10 +606,10 @@ u8 UpdateTurnCounters(void) u8 effect = 0; s32 i; - for (gBankAttacker = 0; gBankAttacker < gBattlersCount && gAbsentBattlerFlags & gBitTable[gBankAttacker]; gBankAttacker++) + for (gBattlerAttacker = 0; gBattlerAttacker < gBattlersCount && gAbsentBattlerFlags & gBitTable[gBattlerAttacker]; gBattlerAttacker++) { } - for (gBankTarget = 0; gBankTarget < gBattlersCount && gAbsentBattlerFlags & gBitTable[gBankTarget]; gBankTarget++) + for (gBattlerTarget = 0; gBattlerTarget < gBattlersCount && gAbsentBattlerFlags & gBitTable[gBattlerTarget]; gBattlerTarget++) { } @@ -638,7 +638,7 @@ u8 UpdateTurnCounters(void) case 1: while (gBattleStruct->turnSideTracker < 2) { - gActiveBattler = gBankAttacker = sideBank = gBattleStruct->turnSideTracker; + gActiveBattler = gBattlerAttacker = sideBank = gBattleStruct->turnSideTracker; if (gSideAffecting[sideBank] & SIDE_STATUS_REFLECT) { @@ -668,7 +668,7 @@ u8 UpdateTurnCounters(void) case 2: while (gBattleStruct->turnSideTracker < 2) { - gActiveBattler = gBankAttacker = sideBank = gBattleStruct->turnSideTracker; + gActiveBattler = gBattlerAttacker = sideBank = gBattleStruct->turnSideTracker; if (gSideAffecting[sideBank] & SIDE_STATUS_LIGHTSCREEN) { if (--gSideTimers[sideBank].lightscreenTimer == 0) @@ -697,7 +697,7 @@ u8 UpdateTurnCounters(void) case 3: while (gBattleStruct->turnSideTracker < 2) { - gActiveBattler = gBankAttacker = sideBank = gBattleStruct->turnSideTracker; + gActiveBattler = gBattlerAttacker = sideBank = gBattleStruct->turnSideTracker; if (gSideTimers[sideBank].mistTimer && --gSideTimers[sideBank].mistTimer == 0) { gSideAffecting[sideBank] &= ~SIDE_STATUS_MIST; @@ -723,7 +723,7 @@ u8 UpdateTurnCounters(void) case 4: while (gBattleStruct->turnSideTracker < 2) { - gActiveBattler = gBankAttacker = sideBank = gBattleStruct->turnSideTracker; + gActiveBattler = gBattlerAttacker = sideBank = gBattleStruct->turnSideTracker; if (gSideAffecting[sideBank] & SIDE_STATUS_SAFEGUARD) { if (--gSideTimers[sideBank].safeguardTimer == 0) @@ -749,7 +749,7 @@ u8 UpdateTurnCounters(void) gActiveBattler = gBanksByTurnOrder[gBattleStruct->turnSideTracker]; if (gWishFutureKnock.wishCounter[gActiveBattler] && --gWishFutureKnock.wishCounter[gActiveBattler] == 0 && gBattleMons[gActiveBattler].hp) { - gBankTarget = gActiveBattler; + gBattlerTarget = gActiveBattler; BattleScriptExecute(BattleScript_WishComesTrue); effect++; } @@ -856,7 +856,7 @@ u8 TurnBasedEffects(void) gHitMarker |= (HITMARKER_GRUDGE | HITMARKER_x20); while (gBattleStruct->turnEffectsBank < gBattlersCount && gBattleStruct->turnEffectsTracker <= TURNBASED_MAX_CASE) { - gActiveBattler = gBankAttacker = gBanksByTurnOrder[gBattleStruct->turnEffectsBank]; + gActiveBattler = gBattlerAttacker = gBanksByTurnOrder[gBattleStruct->turnEffectsBank]; if (gAbsentBattlerFlags & gBitTable[gActiveBattler]) { gBattleStruct->turnEffectsBank++; @@ -897,12 +897,12 @@ u8 TurnBasedEffects(void) case 3: // leech seed if (gStatuses3[gActiveBattler] & STATUS3_LEECHSEED && gBattleMons[gStatuses3[gActiveBattler] & STATUS3_LEECHSEED_BANK].hp != 0 && gBattleMons[gActiveBattler].hp != 0) { - gBankTarget = gStatuses3[gActiveBattler] & STATUS3_LEECHSEED_BANK; //funny how the 'target' is actually the bank that receives HP + gBattlerTarget = gStatuses3[gActiveBattler] & STATUS3_LEECHSEED_BANK; //funny how the 'target' is actually the bank that receives HP gBattleMoveDamage = gBattleMons[gActiveBattler].maxHP / 8; if (gBattleMoveDamage == 0) gBattleMoveDamage = 1; - gBattleStruct->animArg1 = gBankTarget; - gBattleStruct->animArg2 = gBankAttacker; + gBattleStruct->animArg1 = gBattlerTarget; + gBattleStruct->animArg2 = gBattlerAttacker; BattleScriptExecute(BattleScript_LeechSeedTurnDrain); effect++; } @@ -1002,29 +1002,29 @@ u8 TurnBasedEffects(void) case 10: // uproar if (gBattleMons[gActiveBattler].status2 & STATUS2_UPROAR) { - for (gBankAttacker = 0; gBankAttacker < gBattlersCount; gBankAttacker++) + for (gBattlerAttacker = 0; gBattlerAttacker < gBattlersCount; gBattlerAttacker++) { - if ((gBattleMons[gBankAttacker].status1 & STATUS_SLEEP) - && gBattleMons[gBankAttacker].ability != ABILITY_SOUNDPROOF) + if ((gBattleMons[gBattlerAttacker].status1 & STATUS_SLEEP) + && gBattleMons[gBattlerAttacker].ability != ABILITY_SOUNDPROOF) { - gBattleMons[gBankAttacker].status1 &= ~(STATUS_SLEEP); - gBattleMons[gBankAttacker].status2 &= ~(STATUS2_NIGHTMARE); + gBattleMons[gBattlerAttacker].status1 &= ~(STATUS_SLEEP); + gBattleMons[gBattlerAttacker].status2 &= ~(STATUS2_NIGHTMARE); gBattleCommunication[MULTISTRING_CHOOSER] = 1; BattleScriptExecute(BattleScript_MonWokeUpInUproar); - gActiveBattler = gBankAttacker; - EmitSetMonData(0, REQUEST_STATUS_BATTLE, 0, 4, &gBattleMons[gActiveBattler].status1); - MarkBufferBankForExecution(gActiveBattler); + gActiveBattler = gBattlerAttacker; + BtlController_EmitSetMonData(0, REQUEST_STATUS_BATTLE, 0, 4, &gBattleMons[gActiveBattler].status1); + MarkBattlerForControllerExec(gActiveBattler); break; } } - if (gBankAttacker != gBattlersCount) + if (gBattlerAttacker != gBattlersCount) { effect = 2; // a pokemon was awaken break; } else { - gBankAttacker = gActiveBattler; + gBattlerAttacker = gActiveBattler; gBattleMons[gActiveBattler].status2 -= 0x10; // uproar timer goes down if (WasUnableToUseMove(gActiveBattler)) { @@ -1137,9 +1137,9 @@ u8 TurnBasedEffects(void) { CancelMultiTurnMoves(gActiveBattler); gBattleMons[gActiveBattler].status1 |= (Random() & 3) + 2; - EmitSetMonData(0, REQUEST_STATUS_BATTLE, 0, 4, &gBattleMons[gActiveBattler].status1); - MarkBufferBankForExecution(gActiveBattler); - gEffectBank = gActiveBattler; + BtlController_EmitSetMonData(0, REQUEST_STATUS_BATTLE, 0, 4, &gBattleMons[gActiveBattler].status1); + MarkBattlerForControllerExec(gActiveBattler); + gEffectBattler = gActiveBattler; BattleScriptExecute(BattleScript_YawnMakesAsleep); effect++; } @@ -1184,10 +1184,10 @@ bool8 HandleWishPerishSongOnTurnEnd(void) gBattleTextBuff1[2] = gWishFutureKnock.futureSightMove[gActiveBattler]; gBattleTextBuff1[3] = gWishFutureKnock.futureSightMove[gActiveBattler] >> 8; gBattleTextBuff1[4] = 0xFF; - gBankTarget = gActiveBattler; - gBankAttacker = gWishFutureKnock.futureSightAttacker[gActiveBattler]; + gBattlerTarget = gActiveBattler; + gBattlerAttacker = gWishFutureKnock.futureSightAttacker[gActiveBattler]; gBattleMoveDamage = gWishFutureKnock.futureSightDmg[gActiveBattler]; - gSpecialStatuses[gBankTarget].moveturnLostHP = 0xFFFF; + gSpecialStatuses[gBattlerTarget].dmg = 0xFFFF; BattleScriptExecute(BattleScript_MonTookFutureAttack); return 1; } @@ -1198,7 +1198,7 @@ bool8 HandleWishPerishSongOnTurnEnd(void) case 1: // perish song while (gBattleStruct->sub80170DC_Bank < gBattlersCount) { - gActiveBattler = gBankAttacker = gBanksByTurnOrder[gBattleStruct->sub80170DC_Bank]; + gActiveBattler = gBattlerAttacker = gBanksByTurnOrder[gBattleStruct->sub80170DC_Bank]; if (gAbsentBattlerFlags & gBitTable[gActiveBattler]) gBattleStruct->sub80170DC_Bank++; else @@ -1256,7 +1256,7 @@ bool8 HandleFaintedMonActions(void) case 1: do { - gBank1 = gBankTarget = gBattleStruct->unk1605A; + gBank1 = gBattlerTarget = gBattleStruct->unk1605A; if (gBattleMons[gBattleStruct->unk1605A].hp == 0 && !(gBattleStruct->unk16113 & gBitTable[gBattlerPartyIndexes[gBattleStruct->unk1605A]]) && !(gAbsentBattlerFlags & gBitTable[gBattleStruct->unk1605A])) { BattleScriptExecute(BattleScript_GiveExp); @@ -1279,7 +1279,7 @@ bool8 HandleFaintedMonActions(void) case 4: do { - gBank1 = gBankTarget = gBattleStruct->unk1605A; //or should banks be switched? + gBank1 = gBattlerTarget = gBattleStruct->unk1605A; //or should banks be switched? if (gBattleMons[gBattleStruct->unk1605A].hp == 0 && !(gAbsentBattlerFlags & gBitTable[gBattleStruct->unk1605A])) { BattleScriptExecute(BattleScript_HandleFaintedMon); @@ -1328,17 +1328,17 @@ u8 AtkCanceller_UnableToUseMove(void) switch (gBattleStruct->atkCancellerTracker) { case 0: // flags clear - gBattleMons[gBankAttacker].status2 &= ~(STATUS2_DESTINY_BOND); - gStatuses3[gBankAttacker] &= ~(STATUS3_GRUDGE); + gBattleMons[gBattlerAttacker].status2 &= ~(STATUS2_DESTINY_BOND); + gStatuses3[gBattlerAttacker] &= ~(STATUS3_GRUDGE); gBattleStruct->atkCancellerTracker++; break; case 1: // check being asleep - if (gBattleMons[gBankAttacker].status1 & STATUS_SLEEP) + if (gBattleMons[gBattlerAttacker].status1 & STATUS_SLEEP) { - if (UproarWakeUpCheck(gBankAttacker)) + if (UproarWakeUpCheck(gBattlerAttacker)) { - gBattleMons[gBankAttacker].status1 &= ~(STATUS_SLEEP); - gBattleMons[gBankAttacker].status2 &= ~(STATUS2_NIGHTMARE); + gBattleMons[gBattlerAttacker].status1 &= ~(STATUS_SLEEP); + gBattleMons[gBattlerAttacker].status2 &= ~(STATUS2_NIGHTMARE); BattleScriptPushCursor(); gBattleCommunication[MULTISTRING_CHOOSER] = 1; gBattlescriptCurrInstr = BattleScript_MoveUsedWokeUp; @@ -1347,15 +1347,15 @@ u8 AtkCanceller_UnableToUseMove(void) else { u8 toSub; - if (gBattleMons[gBankAttacker].ability == ABILITY_EARLY_BIRD) + if (gBattleMons[gBattlerAttacker].ability == ABILITY_EARLY_BIRD) toSub = 2; else toSub = 1; - if ((gBattleMons[gBankAttacker].status1 & STATUS_SLEEP) < toSub) - gBattleMons[gBankAttacker].status1 &= ~(STATUS_SLEEP); + if ((gBattleMons[gBattlerAttacker].status1 & STATUS_SLEEP) < toSub) + gBattleMons[gBattlerAttacker].status1 &= ~(STATUS_SLEEP); else - gBattleMons[gBankAttacker].status1 -= toSub; - if (gBattleMons[gBankAttacker].status1 & STATUS_SLEEP) + gBattleMons[gBattlerAttacker].status1 -= toSub; + if (gBattleMons[gBattlerAttacker].status1 & STATUS_SLEEP) { if (gCurrentMove != MOVE_SNORE && gCurrentMove != MOVE_SLEEP_TALK) { @@ -1366,7 +1366,7 @@ u8 AtkCanceller_UnableToUseMove(void) } else { - gBattleMons[gBankAttacker].status2 &= ~(STATUS2_NIGHTMARE); + gBattleMons[gBattlerAttacker].status2 &= ~(STATUS2_NIGHTMARE); BattleScriptPushCursor(); gBattleCommunication[MULTISTRING_CHOOSER] = 0; gBattlescriptCurrInstr = BattleScript_MoveUsedWokeUp; @@ -1377,7 +1377,7 @@ u8 AtkCanceller_UnableToUseMove(void) gBattleStruct->atkCancellerTracker++; break; case 2: // check being frozen - if (gBattleMons[gBankAttacker].status1 & STATUS_FREEZE) + if (gBattleMons[gBattlerAttacker].status1 & STATUS_FREEZE) { if (Random() % 5) { @@ -1394,7 +1394,7 @@ u8 AtkCanceller_UnableToUseMove(void) } else // unfreeze { - gBattleMons[gBankAttacker].status1 &= ~(STATUS_FREEZE); + gBattleMons[gBattlerAttacker].status1 &= ~(STATUS_FREEZE); BattleScriptPushCursor(); gBattlescriptCurrInstr = BattleScript_MoveUsedUnfroze; gBattleCommunication[MULTISTRING_CHOOSER] = 0; @@ -1404,9 +1404,9 @@ u8 AtkCanceller_UnableToUseMove(void) gBattleStruct->atkCancellerTracker++; break; case 3: // truant - if (gBattleMons[gBankAttacker].ability == ABILITY_TRUANT && gDisableStructs[gBankAttacker].truantCounter) + if (gBattleMons[gBattlerAttacker].ability == ABILITY_TRUANT && gDisableStructs[gBattlerAttacker].truantCounter) { - CancelMultiTurnMoves(gBankAttacker); + CancelMultiTurnMoves(gBattlerAttacker); gHitMarker |= HITMARKER_UNABLE_TO_USE_MOVE; gBattleCommunication[MULTISTRING_CHOOSER] = 0; gBattlescriptCurrInstr = BattleScript_MoveUsedLoafingAround; @@ -1416,11 +1416,11 @@ u8 AtkCanceller_UnableToUseMove(void) gBattleStruct->atkCancellerTracker++; break; case 4: // recharge - if (gBattleMons[gBankAttacker].status2 & STATUS2_RECHARGE) + if (gBattleMons[gBattlerAttacker].status2 & STATUS2_RECHARGE) { - gBattleMons[gBankAttacker].status2 &= ~(STATUS2_RECHARGE); - gDisableStructs[gBankAttacker].rechargeCounter = 0; - CancelMultiTurnMoves(gBankAttacker); + gBattleMons[gBattlerAttacker].status2 &= ~(STATUS2_RECHARGE); + gDisableStructs[gBattlerAttacker].rechargeCounter = 0; + CancelMultiTurnMoves(gBattlerAttacker); gBattlescriptCurrInstr = BattleScript_MoveUsedMustRecharge; gHitMarker |= HITMARKER_UNABLE_TO_USE_MOVE; effect = 1; @@ -1428,11 +1428,11 @@ u8 AtkCanceller_UnableToUseMove(void) gBattleStruct->atkCancellerTracker++; break; case 5: // flinch - if (gBattleMons[gBankAttacker].status2 & STATUS2_FLINCHED) + if (gBattleMons[gBattlerAttacker].status2 & STATUS2_FLINCHED) { - gBattleMons[gBankAttacker].status2 &= ~(STATUS2_FLINCHED); - gProtectStructs[gBankAttacker].flinchImmobility = 1; - CancelMultiTurnMoves(gBankAttacker); + gBattleMons[gBattlerAttacker].status2 &= ~(STATUS2_FLINCHED); + gProtectStructs[gBattlerAttacker].flinchImmobility = 1; + CancelMultiTurnMoves(gBattlerAttacker); gBattlescriptCurrInstr = BattleScript_MoveUsedFlinched; gHitMarker |= HITMARKER_UNABLE_TO_USE_MOVE; effect = 1; @@ -1440,11 +1440,11 @@ u8 AtkCanceller_UnableToUseMove(void) gBattleStruct->atkCancellerTracker++; break; case 6: // disabled move - if (gDisableStructs[gBankAttacker].disabledMove == gCurrentMove && gDisableStructs[gBankAttacker].disabledMove != 0) + if (gDisableStructs[gBattlerAttacker].disabledMove == gCurrentMove && gDisableStructs[gBattlerAttacker].disabledMove != 0) { - gProtectStructs[gBankAttacker].usedDisabledMove = 1; - gBattleStruct->scriptingActive = gBankAttacker; - CancelMultiTurnMoves(gBankAttacker); + gProtectStructs[gBattlerAttacker].usedDisabledMove = 1; + gBattleStruct->scriptingActive = gBattlerAttacker; + CancelMultiTurnMoves(gBattlerAttacker); gBattlescriptCurrInstr = BattleScript_MoveUsedIsDisabled; gHitMarker |= HITMARKER_UNABLE_TO_USE_MOVE; effect = 1; @@ -1452,10 +1452,10 @@ u8 AtkCanceller_UnableToUseMove(void) gBattleStruct->atkCancellerTracker++; break; case 7: // taunt - if (gDisableStructs[gBankAttacker].tauntTimer1 && gBattleMoves[gCurrentMove].power == 0) + if (gDisableStructs[gBattlerAttacker].tauntTimer1 && gBattleMoves[gCurrentMove].power == 0) { - gProtectStructs[gBankAttacker].usedTauntedMove = 1; - CancelMultiTurnMoves(gBankAttacker); + gProtectStructs[gBattlerAttacker].usedTauntedMove = 1; + CancelMultiTurnMoves(gBattlerAttacker); gBattlescriptCurrInstr = BattleScript_MoveUsedIsTaunted; gHitMarker |= HITMARKER_UNABLE_TO_USE_MOVE; effect = 1; @@ -1463,10 +1463,10 @@ u8 AtkCanceller_UnableToUseMove(void) gBattleStruct->atkCancellerTracker++; break; case 8: // imprisoned - if (IsImprisoned(gBankAttacker, gCurrentMove)) + if (IsImprisoned(gBattlerAttacker, gCurrentMove)) { - gProtectStructs[gBankAttacker].usedImprisionedMove = 1; - CancelMultiTurnMoves(gBankAttacker); + gProtectStructs[gBattlerAttacker].usedImprisonedMove = 1; + CancelMultiTurnMoves(gBattlerAttacker); gBattlescriptCurrInstr = BattleScript_MoveUsedIsImprisoned; gHitMarker |= HITMARKER_UNABLE_TO_USE_MOVE; effect = 1; @@ -1474,10 +1474,10 @@ u8 AtkCanceller_UnableToUseMove(void) gBattleStruct->atkCancellerTracker++; break; case 9: // confusion - if (gBattleMons[gBankAttacker].status2 & STATUS2_CONFUSION) + if (gBattleMons[gBattlerAttacker].status2 & STATUS2_CONFUSION) { - gBattleMons[gBankAttacker].status2--; - if (gBattleMons[gBankAttacker].status2 & STATUS2_CONFUSION) + gBattleMons[gBattlerAttacker].status2--; + if (gBattleMons[gBattlerAttacker].status2 & STATUS2_CONFUSION) { if (Random() & 1) { @@ -1487,9 +1487,9 @@ u8 AtkCanceller_UnableToUseMove(void) else // confusion dmg { gBattleCommunication[MULTISTRING_CHOOSER] = 1; - gBankTarget = gBankAttacker; - gBattleMoveDamage = CalculateBaseDamage(&gBattleMons[gBankAttacker], &gBattleMons[gBankAttacker], MOVE_POUND, 0, 40, 0, gBankAttacker, gBankAttacker); - gProtectStructs[gBankAttacker].confusionSelfDmg = 1; + gBattlerTarget = gBattlerAttacker; + gBattleMoveDamage = CalculateBaseDamage(&gBattleMons[gBattlerAttacker], &gBattleMons[gBattlerAttacker], MOVE_POUND, 0, 40, 0, gBattlerAttacker, gBattlerAttacker); + gProtectStructs[gBattlerAttacker].confusionSelfDmg = 1; gHitMarker |= HITMARKER_UNABLE_TO_USE_MOVE; } gBattlescriptCurrInstr = BattleScript_MoveUsedIsConfused; @@ -1504,10 +1504,10 @@ u8 AtkCanceller_UnableToUseMove(void) gBattleStruct->atkCancellerTracker++; break; case 10: // paralysis - if (gBattleMons[gBankAttacker].status1 & STATUS_PARALYSIS && (Random() % 4) == 0) + if (gBattleMons[gBattlerAttacker].status1 & STATUS_PARALYSIS && (Random() % 4) == 0) { - gProtectStructs[gBankAttacker].prlzImmobility = 1; - CancelMultiTurnMoves(gBankAttacker); + gProtectStructs[gBattlerAttacker].prlzImmobility = 1; + CancelMultiTurnMoves(gBattlerAttacker); gBattlescriptCurrInstr = BattleScript_MoveUsedIsParalyzed; gHitMarker |= HITMARKER_UNABLE_TO_USE_MOVE; effect = 1; @@ -1515,17 +1515,17 @@ u8 AtkCanceller_UnableToUseMove(void) gBattleStruct->atkCancellerTracker++; break; case 11: // infatuation - if (gBattleMons[gBankAttacker].status2 & STATUS2_INFATUATION) + if (gBattleMons[gBattlerAttacker].status2 & STATUS2_INFATUATION) { - gBattleStruct->scriptingActive = CountTrailingZeroBits((gBattleMons[gBankAttacker].status2 & STATUS2_INFATUATION) >> 0x10); + gBattleStruct->scriptingActive = CountTrailingZeroBits((gBattleMons[gBattlerAttacker].status2 & STATUS2_INFATUATION) >> 0x10); if (Random() & 1) BattleScriptPushCursor(); else { BattleScriptPush(BattleScript_MoveUsedIsParalyzedCantAttack); gHitMarker |= HITMARKER_UNABLE_TO_USE_MOVE; - gProtectStructs[gBankAttacker].loveImmobility = 1; - CancelMultiTurnMoves(gBankAttacker); + gProtectStructs[gBattlerAttacker].loveImmobility = 1; + CancelMultiTurnMoves(gBattlerAttacker); } gBattlescriptCurrInstr = BattleScript_MoveUsedIsInLove; effect = 1; @@ -1533,21 +1533,21 @@ u8 AtkCanceller_UnableToUseMove(void) gBattleStruct->atkCancellerTracker++; break; case 12: // bide - if (gBattleMons[gBankAttacker].status2 & STATUS2_BIDE) + if (gBattleMons[gBattlerAttacker].status2 & STATUS2_BIDE) { - gBattleMons[gBankAttacker].status2 -= 0x100; - if (gBattleMons[gBankAttacker].status2 & STATUS2_BIDE) + gBattleMons[gBattlerAttacker].status2 -= 0x100; + if (gBattleMons[gBattlerAttacker].status2 & STATUS2_BIDE) gBattlescriptCurrInstr = BattleScript_BideStoringEnergy; else { - gBattleMons[gBankAttacker].status2 &= ~(STATUS2_MULTIPLETURNS); - if (gTakenDmg[gBankAttacker]) + gBattleMons[gBattlerAttacker].status2 &= ~(STATUS2_MULTIPLETURNS); + if (gTakenDmg[gBattlerAttacker]) { gCurrentMove = MOVE_BIDE; - *bideDmg = gTakenDmg[gBankAttacker] * 2; - gBankTarget = gTakenDmgBanks[gBankAttacker]; - if (gAbsentBattlerFlags & gBitTable[gBankTarget]) - gBankTarget = GetMoveTarget(MOVE_BIDE, 1); + *bideDmg = gTakenDmg[gBattlerAttacker] * 2; + gBattlerTarget = gTakenDmgBanks[gBattlerAttacker]; + if (gAbsentBattlerFlags & gBitTable[gBattlerTarget]) + gBattlerTarget = GetMoveTarget(MOVE_BIDE, 1); gBattlescriptCurrInstr = BattleScript_BideAttack; } else @@ -1558,11 +1558,11 @@ u8 AtkCanceller_UnableToUseMove(void) gBattleStruct->atkCancellerTracker++; break; case 13: // move thawing - if (gBattleMons[gBankAttacker].status1 & STATUS_FREEZE) + if (gBattleMons[gBattlerAttacker].status1 & STATUS_FREEZE) { if (gBattleMoves[gCurrentMove].effect == EFFECT_THAW_HIT) { - gBattleMons[gBankAttacker].status1 &= ~(STATUS_FREEZE); + gBattleMons[gBattlerAttacker].status1 &= ~(STATUS_FREEZE); BattleScriptPushCursor(); gBattlescriptCurrInstr = BattleScript_MoveUsedUnfroze; gBattleCommunication[MULTISTRING_CHOOSER] = 1; @@ -1579,9 +1579,9 @@ u8 AtkCanceller_UnableToUseMove(void) if (effect == 2) { - gActiveBattler = gBankAttacker; - EmitSetMonData(0, REQUEST_STATUS_BATTLE, 0, 4, &gBattleMons[gActiveBattler].status1); - MarkBufferBankForExecution(gActiveBattler); + gActiveBattler = gBattlerAttacker; + BtlController_EmitSetMonData(0, REQUEST_STATUS_BATTLE, 0, 4, &gBattleMons[gActiveBattler].status1); + MarkBattlerForControllerExec(gActiveBattler); } return effect; } @@ -1695,19 +1695,19 @@ u8 AbilityBattleEffects(u8 caseID, u8 bank, u8 ability, u8 special, u16 moveArg) u32 pidAtk; u32 pidDef; - if (gBankAttacker >= gBattlersCount) - gBankAttacker = bank; - if (GetBattlerSide(gBankAttacker) == 0) - pokeAtk = &gPlayerParty[gBattlerPartyIndexes[gBankAttacker]]; + if (gBattlerAttacker >= gBattlersCount) + gBattlerAttacker = bank; + if (GetBattlerSide(gBattlerAttacker) == 0) + pokeAtk = &gPlayerParty[gBattlerPartyIndexes[gBattlerAttacker]]; else - pokeAtk = &gEnemyParty[gBattlerPartyIndexes[gBankAttacker]]; + pokeAtk = &gEnemyParty[gBattlerPartyIndexes[gBattlerAttacker]]; - if (gBankTarget >= gBattlersCount) - gBankTarget = bank; - if (GetBattlerSide(gBankTarget) == 0) - pokeDef = &gPlayerParty[gBattlerPartyIndexes[gBankTarget]]; + if (gBattlerTarget >= gBattlersCount) + gBattlerTarget = bank; + if (GetBattlerSide(gBattlerTarget) == 0) + pokeDef = &gPlayerParty[gBattlerPartyIndexes[gBattlerTarget]]; else - pokeDef = &gEnemyParty[gBattlerPartyIndexes[gBankTarget]]; + pokeDef = &gEnemyParty[gBattlerPartyIndexes[gBattlerTarget]]; speciesAtk = GetMonData(pokeAtk, MON_DATA_SPECIES); pidAtk = GetMonData(pokeAtk, MON_DATA_PERSONALITY); @@ -1741,8 +1741,8 @@ u8 AbilityBattleEffects(u8 caseID, u8 bank, u8 ability, u8 special, u16 moveArg) switch (caseID) { case ABILITYEFFECT_ON_SWITCHIN: // 0 - if (gBankAttacker >= gBattlersCount) - gBankAttacker = bank; + if (gBattlerAttacker >= gBattlersCount) + gBattlerAttacker = bank; switch (gLastUsedAbility) { case 0xFF: //weather from overworld @@ -1812,10 +1812,10 @@ u8 AbilityBattleEffects(u8 caseID, u8 bank, u8 ability, u8 special, u16 moveArg) } break; case ABILITY_INTIMIDATE: - if (!(gSpecialStatuses[bank].intimidatedPoke)) + if (!(gSpecialStatuses[bank].intimidatedMon)) { gStatuses3[bank] |= STATUS3_INTIMIDATE_POKES; - gSpecialStatuses[bank].intimidatedPoke = 1; + gSpecialStatuses[bank].intimidatedMon = 1; } break; case ABILITY_FORECAST: @@ -1856,7 +1856,7 @@ u8 AbilityBattleEffects(u8 caseID, u8 bank, u8 ability, u8 special, u16 moveArg) case ABILITYEFFECT_ENDTURN: // 1 if (gBattleMons[bank].hp != 0) { - gBankAttacker = bank; + gBattlerAttacker = bank; switch (gLastUsedAbility) { case ABILITY_RAIN_DISH: @@ -1890,8 +1890,8 @@ u8 AbilityBattleEffects(u8 caseID, u8 bank, u8 ability, u8 special, u16 moveArg) //gBattleMons[bank].status2 &= ~(STATUS2_NIGHTMARE); gBattleStruct->scriptingActive = gActiveBattler = bank; BattleScriptPushCursorAndCallback(BattleScript_ShedSkinActivates); - EmitSetMonData(0, REQUEST_STATUS_BATTLE, 0, 4, &gBattleMons[bank].status1); - MarkBufferBankForExecution(gActiveBattler); + BtlController_EmitSetMonData(0, REQUEST_STATUS_BATTLE, 0, 4, &gBattleMons[bank].status1); + MarkBattlerForControllerExec(gActiveBattler); effect++; } break; @@ -1907,7 +1907,7 @@ u8 AbilityBattleEffects(u8 caseID, u8 bank, u8 ability, u8 special, u16 moveArg) } break; case ABILITY_TRUANT: - gDisableStructs[gBankAttacker].truantCounter ^= 1; + gDisableStructs[gBattlerAttacker].truantCounter ^= 1; break; } } @@ -1922,7 +1922,7 @@ u8 AbilityBattleEffects(u8 caseID, u8 bank, u8 ability, u8 special, u16 moveArg) } if (gSoundMovesTable[i] != 0xFFFF) { - if (gBattleMons[gBankAttacker].status2 & STATUS2_MULTIPLETURNS) + if (gBattleMons[gBattlerAttacker].status2 & STATUS2_MULTIPLETURNS) gHitMarker |= HITMARKER_NO_PPDEDUCT; gBattlescriptCurrInstr = BattleScript_SoundproofProtected; effect = 1; @@ -1937,7 +1937,7 @@ u8 AbilityBattleEffects(u8 caseID, u8 bank, u8 ability, u8 special, u16 moveArg) case ABILITY_VOLT_ABSORB: if (moveType == TYPE_ELECTRIC && gBattleMoves[move].power != 0) { - if (gProtectStructs[gBankAttacker].notFirstStrike) + if (gProtectStructs[gBattlerAttacker].notFirstStrike) gBattlescriptCurrInstr = BattleScript_MoveHPDrain; else gBattlescriptCurrInstr = BattleScript_MoveHPDrain_PPLoss; @@ -1947,7 +1947,7 @@ u8 AbilityBattleEffects(u8 caseID, u8 bank, u8 ability, u8 special, u16 moveArg) case ABILITY_WATER_ABSORB: if (moveType == TYPE_WATER && gBattleMoves[move].power != 0) { - if (gProtectStructs[gBankAttacker].notFirstStrike) + if (gProtectStructs[gBattlerAttacker].notFirstStrike) gBattlescriptCurrInstr = BattleScript_MoveHPDrain; else gBattlescriptCurrInstr = BattleScript_MoveHPDrain_PPLoss; @@ -1960,7 +1960,7 @@ u8 AbilityBattleEffects(u8 caseID, u8 bank, u8 ability, u8 special, u16 moveArg) if (!(eFlashFireArr.arr[bank] & 1)) { gBattleCommunication[MULTISTRING_CHOOSER] = 0; - if (gProtectStructs[gBankAttacker].notFirstStrike) + if (gProtectStructs[gBattlerAttacker].notFirstStrike) gBattlescriptCurrInstr = BattleScript_FlashFireBoost; else gBattlescriptCurrInstr = BattleScript_FlashFireBoost_PPLoss; @@ -1970,7 +1970,7 @@ u8 AbilityBattleEffects(u8 caseID, u8 bank, u8 ability, u8 special, u16 moveArg) else { gBattleCommunication[MULTISTRING_CHOOSER] = 1; - if (gProtectStructs[gBankAttacker].notFirstStrike) + if (gProtectStructs[gBattlerAttacker].notFirstStrike) gBattlescriptCurrInstr = BattleScript_FlashFireBoost; else gBattlescriptCurrInstr = BattleScript_FlashFireBoost_PPLoss; @@ -1983,7 +1983,7 @@ u8 AbilityBattleEffects(u8 caseID, u8 bank, u8 ability, u8 special, u16 moveArg) { if (gBattleMons[bank].maxHP == gBattleMons[bank].hp) { - if ((gProtectStructs[gBankAttacker].notFirstStrike)) + if ((gProtectStructs[gBattlerAttacker].notFirstStrike)) gBattlescriptCurrInstr = BattleScript_MoveHPDrain_FullHP; else gBattlescriptCurrInstr = BattleScript_MoveHPDrain_FullHP_PPLoss; @@ -2005,7 +2005,7 @@ u8 AbilityBattleEffects(u8 caseID, u8 bank, u8 ability, u8 special, u16 moveArg) if (!(gMoveResultFlags & MOVE_RESULT_NO_EFFECT) && move != MOVE_STRUGGLE && gBattleMoves[move].power != 0 - && (gSpecialStatuses[gBankTarget].moveturnLostHP_physical || gSpecialStatuses[gBankTarget].moveturnLostHP_special) + && (gSpecialStatuses[gBattlerTarget].physicalDmg || gSpecialStatuses[gBattlerTarget].specialDmg) && gBattleMons[bank].type1 != moveType && gBattleMons[bank].type2 != moveType && gBattleMons[bank].hp != 0) @@ -2023,12 +2023,12 @@ u8 AbilityBattleEffects(u8 caseID, u8 bank, u8 ability, u8 special, u16 moveArg) break; case ABILITY_ROUGH_SKIN: if (!(gMoveResultFlags & MOVE_RESULT_NO_EFFECT) - && gBattleMons[gBankAttacker].hp != 0 - && !gProtectStructs[gBankAttacker].confusionSelfDmg - && (gSpecialStatuses[gBankTarget].moveturnLostHP_physical || gSpecialStatuses[gBankTarget].moveturnLostHP_special) + && gBattleMons[gBattlerAttacker].hp != 0 + && !gProtectStructs[gBattlerAttacker].confusionSelfDmg + && (gSpecialStatuses[gBattlerTarget].physicalDmg || gSpecialStatuses[gBattlerTarget].specialDmg) && (gBattleMoves[move].flags & F_MAKES_CONTACT)) { - gBattleMoveDamage = gBattleMons[gBankAttacker].maxHP / 16; + gBattleMoveDamage = gBattleMons[gBattlerAttacker].maxHP / 16; if (gBattleMoveDamage == 0) gBattleMoveDamage = 1; BattleScriptPushCursor(); @@ -2040,9 +2040,9 @@ u8 AbilityBattleEffects(u8 caseID, u8 bank, u8 ability, u8 special, u16 moveArg) if (DEBUG && (gUnknown_02023A14_50 & 4)) { if (!(gMoveResultFlags & MOVE_RESULT_NO_EFFECT) - && gBattleMons[gBankAttacker].hp != 0 - && !gProtectStructs[gBankAttacker].confusionSelfDmg - && (gSpecialStatuses[gBankTarget].moveturnLostHP_physical || gSpecialStatuses[gBankTarget].moveturnLostHP_special) + && gBattleMons[gBattlerAttacker].hp != 0 + && !gProtectStructs[gBattlerAttacker].confusionSelfDmg + && (gSpecialStatuses[gBattlerTarget].physicalDmg || gSpecialStatuses[gBattlerTarget].specialDmg) && (gBattleMoves[move].flags & F_MAKES_CONTACT)) { do @@ -2061,9 +2061,9 @@ u8 AbilityBattleEffects(u8 caseID, u8 bank, u8 ability, u8 special, u16 moveArg) else { if (!(gMoveResultFlags & MOVE_RESULT_NO_EFFECT) - && gBattleMons[gBankAttacker].hp != 0 - && !gProtectStructs[gBankAttacker].confusionSelfDmg - && (gSpecialStatuses[gBankTarget].moveturnLostHP_physical || gSpecialStatuses[gBankTarget].moveturnLostHP_special) + && gBattleMons[gBattlerAttacker].hp != 0 + && !gProtectStructs[gBattlerAttacker].confusionSelfDmg + && (gSpecialStatuses[gBattlerTarget].physicalDmg || gSpecialStatuses[gBattlerTarget].specialDmg) && (gBattleMoves[move].flags & F_MAKES_CONTACT) && (Random() % 10) == 0) { @@ -2085,9 +2085,9 @@ u8 AbilityBattleEffects(u8 caseID, u8 bank, u8 ability, u8 special, u16 moveArg) if (DEBUG && (gUnknown_02023A14_50 & 4)) { if (!(gMoveResultFlags & MOVE_RESULT_NO_EFFECT) - && gBattleMons[gBankAttacker].hp != 0 - && !gProtectStructs[gBankAttacker].confusionSelfDmg - && (gSpecialStatuses[gBankTarget].moveturnLostHP_physical || gSpecialStatuses[gBankTarget].moveturnLostHP_special) + && gBattleMons[gBattlerAttacker].hp != 0 + && !gProtectStructs[gBattlerAttacker].confusionSelfDmg + && (gSpecialStatuses[gBattlerTarget].physicalDmg || gSpecialStatuses[gBattlerTarget].specialDmg) && (gBattleMoves[move].flags & F_MAKES_CONTACT)) { gBattleCommunication[MOVE_EFFECT_BYTE] = 0x42; @@ -2100,9 +2100,9 @@ u8 AbilityBattleEffects(u8 caseID, u8 bank, u8 ability, u8 special, u16 moveArg) else { if (!(gMoveResultFlags & MOVE_RESULT_NO_EFFECT) - && gBattleMons[gBankAttacker].hp != 0 - && !gProtectStructs[gBankAttacker].confusionSelfDmg - && (gSpecialStatuses[gBankTarget].moveturnLostHP_physical || gSpecialStatuses[gBankTarget].moveturnLostHP_special) + && gBattleMons[gBattlerAttacker].hp != 0 + && !gProtectStructs[gBattlerAttacker].confusionSelfDmg + && (gSpecialStatuses[gBattlerTarget].physicalDmg || gSpecialStatuses[gBattlerTarget].specialDmg) && (gBattleMoves[move].flags & F_MAKES_CONTACT) && (Random() % 3) == 0) { @@ -2118,9 +2118,9 @@ u8 AbilityBattleEffects(u8 caseID, u8 bank, u8 ability, u8 special, u16 moveArg) if (DEBUG && (gUnknown_02023A14_50 & 4)) { if (!(gMoveResultFlags & MOVE_RESULT_NO_EFFECT) - && gBattleMons[gBankAttacker].hp != 0 - && !gProtectStructs[gBankAttacker].confusionSelfDmg - && (gSpecialStatuses[gBankTarget].moveturnLostHP_physical || gSpecialStatuses[gBankTarget].moveturnLostHP_special) + && gBattleMons[gBattlerAttacker].hp != 0 + && !gProtectStructs[gBattlerAttacker].confusionSelfDmg + && (gSpecialStatuses[gBattlerTarget].physicalDmg || gSpecialStatuses[gBattlerTarget].specialDmg) && (gBattleMoves[move].flags & F_MAKES_CONTACT)) { gBattleCommunication[MOVE_EFFECT_BYTE] = 0x45; @@ -2133,9 +2133,9 @@ u8 AbilityBattleEffects(u8 caseID, u8 bank, u8 ability, u8 special, u16 moveArg) else { if (!(gMoveResultFlags & MOVE_RESULT_NO_EFFECT) - && gBattleMons[gBankAttacker].hp != 0 - && !gProtectStructs[gBankAttacker].confusionSelfDmg - && (gSpecialStatuses[gBankTarget].moveturnLostHP_physical || gSpecialStatuses[gBankTarget].moveturnLostHP_special) + && gBattleMons[gBattlerAttacker].hp != 0 + && !gProtectStructs[gBattlerAttacker].confusionSelfDmg + && (gSpecialStatuses[gBattlerTarget].physicalDmg || gSpecialStatuses[gBattlerTarget].specialDmg) && (gBattleMoves[move].flags & F_MAKES_CONTACT) && (Random() % 3) == 0) { @@ -2151,10 +2151,10 @@ u8 AbilityBattleEffects(u8 caseID, u8 bank, u8 ability, u8 special, u16 moveArg) if (DEBUG && (gUnknown_02023A14_50 & 4)) { if (!(gMoveResultFlags & MOVE_RESULT_NO_EFFECT) - && gBattleMons[gBankAttacker].hp != 0 - && !gProtectStructs[gBankAttacker].confusionSelfDmg + && gBattleMons[gBattlerAttacker].hp != 0 + && !gProtectStructs[gBattlerAttacker].confusionSelfDmg && (gBattleMoves[move].flags & F_MAKES_CONTACT) - && (gSpecialStatuses[gBankTarget].moveturnLostHP_physical || gSpecialStatuses[gBankTarget].moveturnLostHP_special)) + && (gSpecialStatuses[gBattlerTarget].physicalDmg || gSpecialStatuses[gBattlerTarget].specialDmg)) { gBattleCommunication[MOVE_EFFECT_BYTE] = 0x43; BattleScriptPushCursor(); @@ -2166,10 +2166,10 @@ u8 AbilityBattleEffects(u8 caseID, u8 bank, u8 ability, u8 special, u16 moveArg) else { if (!(gMoveResultFlags & MOVE_RESULT_NO_EFFECT) - && gBattleMons[gBankAttacker].hp != 0 - && !gProtectStructs[gBankAttacker].confusionSelfDmg + && gBattleMons[gBattlerAttacker].hp != 0 + && !gProtectStructs[gBattlerAttacker].confusionSelfDmg && (gBattleMoves[move].flags & F_MAKES_CONTACT) - && (gSpecialStatuses[gBankTarget].moveturnLostHP_physical || gSpecialStatuses[gBankTarget].moveturnLostHP_special) + && (gSpecialStatuses[gBattlerTarget].physicalDmg || gSpecialStatuses[gBattlerTarget].specialDmg) && (Random() % 3) == 0) { gBattleCommunication[MOVE_EFFECT_BYTE] = 0x43; @@ -2184,18 +2184,18 @@ u8 AbilityBattleEffects(u8 caseID, u8 bank, u8 ability, u8 special, u16 moveArg) if (DEBUG && (gUnknown_02023A14_50 & 4)) { if (!(gMoveResultFlags & MOVE_RESULT_NO_EFFECT) - && gBattleMons[gBankAttacker].hp != 0 - && !gProtectStructs[gBankAttacker].confusionSelfDmg + && gBattleMons[gBattlerAttacker].hp != 0 + && !gProtectStructs[gBattlerAttacker].confusionSelfDmg && (gBattleMoves[move].flags & F_MAKES_CONTACT) - && (gSpecialStatuses[gBankTarget].moveturnLostHP_physical || gSpecialStatuses[gBankTarget].moveturnLostHP_special) - && gBattleMons[gBankTarget].hp != 0 - && gBattleMons[gBankAttacker].ability != ABILITY_OBLIVIOUS + && (gSpecialStatuses[gBattlerTarget].physicalDmg || gSpecialStatuses[gBattlerTarget].specialDmg) + && gBattleMons[gBattlerTarget].hp != 0 + && gBattleMons[gBattlerAttacker].ability != ABILITY_OBLIVIOUS && GetGenderFromSpeciesAndPersonality(speciesAtk, pidAtk) != GetGenderFromSpeciesAndPersonality(speciesDef, pidDef) - && !(gBattleMons[gBankAttacker].status2 & STATUS2_INFATUATION) + && !(gBattleMons[gBattlerAttacker].status2 & STATUS2_INFATUATION) && GetGenderFromSpeciesAndPersonality(speciesAtk, pidAtk) != 0xFF && GetGenderFromSpeciesAndPersonality(speciesDef, pidDef) != 0xFF) { - gBattleMons[gBankAttacker].status2 |= (gBitTable[gBankTarget] << 0x10); + gBattleMons[gBattlerAttacker].status2 |= (gBitTable[gBattlerTarget] << 0x10); BattleScriptPushCursor(); gBattlescriptCurrInstr = BattleScript_CuteCharmActivates; effect++; @@ -2204,19 +2204,19 @@ u8 AbilityBattleEffects(u8 caseID, u8 bank, u8 ability, u8 special, u16 moveArg) else { if (!(gMoveResultFlags & MOVE_RESULT_NO_EFFECT) - && gBattleMons[gBankAttacker].hp != 0 - && !gProtectStructs[gBankAttacker].confusionSelfDmg + && gBattleMons[gBattlerAttacker].hp != 0 + && !gProtectStructs[gBattlerAttacker].confusionSelfDmg && (gBattleMoves[move].flags & F_MAKES_CONTACT) - && (gSpecialStatuses[gBankTarget].moveturnLostHP_physical || gSpecialStatuses[gBankTarget].moveturnLostHP_special) - && gBattleMons[gBankTarget].hp != 0 + && (gSpecialStatuses[gBattlerTarget].physicalDmg || gSpecialStatuses[gBattlerTarget].specialDmg) + && gBattleMons[gBattlerTarget].hp != 0 && (Random() % 3) == 0 - && gBattleMons[gBankAttacker].ability != ABILITY_OBLIVIOUS + && gBattleMons[gBattlerAttacker].ability != ABILITY_OBLIVIOUS && GetGenderFromSpeciesAndPersonality(speciesAtk, pidAtk) != GetGenderFromSpeciesAndPersonality(speciesDef, pidDef) - && !(gBattleMons[gBankAttacker].status2 & STATUS2_INFATUATION) + && !(gBattleMons[gBattlerAttacker].status2 & STATUS2_INFATUATION) && GetGenderFromSpeciesAndPersonality(speciesAtk, pidAtk) != 0xFF && GetGenderFromSpeciesAndPersonality(speciesDef, pidDef) != 0xFF) { - gBattleMons[gBankAttacker].status2 |= (gBitTable[gBankTarget] << 0x10); + gBattleMons[gBattlerAttacker].status2 |= (gBitTable[gBattlerTarget] << 0x10); BattleScriptPushCursor(); gBattlescriptCurrInstr = BattleScript_CuteCharmActivates; effect++; @@ -2301,8 +2301,8 @@ u8 AbilityBattleEffects(u8 caseID, u8 bank, u8 ability, u8 special, u16 moveArg) gBattlescriptCurrInstr = BattleScript_AbilityCuredStatus; gBattleStruct->scriptingActive = bank; gActiveBattler = bank; - EmitSetMonData(0, REQUEST_STATUS_BATTLE, 0, 4, &gBattleMons[gActiveBattler].status1); - MarkBufferBankForExecution(gActiveBattler); + BtlController_EmitSetMonData(0, REQUEST_STATUS_BATTLE, 0, 4, &gBattleMons[gActiveBattler].status1); + MarkBattlerForControllerExec(gActiveBattler); return effect; } } @@ -2334,7 +2334,7 @@ u8 AbilityBattleEffects(u8 caseID, u8 bank, u8 ability, u8 special, u16 moveArg) if (gBattleStruct->synchroniseEffect == 6) gBattleStruct->synchroniseEffect = 2; gBattleCommunication[MOVE_EFFECT_BYTE] = gBattleStruct->synchroniseEffect + 0x40; - gBattleStruct->scriptingActive = gBankTarget; + gBattleStruct->scriptingActive = gBattlerTarget; BattleScriptPushCursor(); gBattlescriptCurrInstr = BattleScript_SynchronizeActivates; gHitMarker |= HITMARKER_IGNORE_SAFEGUARD; @@ -2349,7 +2349,7 @@ u8 AbilityBattleEffects(u8 caseID, u8 bank, u8 ability, u8 special, u16 moveArg) if (gBattleStruct->synchroniseEffect == 6) gBattleStruct->synchroniseEffect = 2; gBattleCommunication[MOVE_EFFECT_BYTE] = gBattleStruct->synchroniseEffect; - gBattleStruct->scriptingActive = gBankAttacker; + gBattleStruct->scriptingActive = gBattlerAttacker; BattleScriptPushCursor(); gBattlescriptCurrInstr = BattleScript_SynchronizeActivates; gHitMarker |= HITMARKER_IGNORE_SAFEGUARD; @@ -2617,11 +2617,11 @@ u8 ItemBattleEffects(u8 caseID, u8 bank, bool8 moveTurn) bankQuality = ItemId_GetHoldEffectParam(gLastUsedItem); } - atkItem = gBattleMons[gBankAttacker].item; + atkItem = gBattleMons[gBattlerAttacker].item; if (atkItem == ITEM_ENIGMA_BERRY) { - atkHoldEffect = gEnigmaBerries[gBankAttacker].holdEffect; - atkQuality = gEnigmaBerries[gBankAttacker].holdEffectParam; + atkHoldEffect = gEnigmaBerries[gBattlerAttacker].holdEffect; + atkQuality = gEnigmaBerries[gBattlerAttacker].holdEffectParam; } else { @@ -2630,11 +2630,11 @@ u8 ItemBattleEffects(u8 caseID, u8 bank, bool8 moveTurn) } // def variables are unused - defItem = gBattleMons[gBankTarget].item; + defItem = gBattleMons[gBattlerTarget].item; if (defItem == ITEM_ENIGMA_BERRY) { - defHoldEffect = gEnigmaBerries[gBankTarget].holdEffect; - defQuality = gEnigmaBerries[gBankTarget].holdEffectParam; + defHoldEffect = gEnigmaBerries[gBattlerTarget].holdEffect; + defQuality = gEnigmaBerries[gBattlerTarget].holdEffectParam; } else { @@ -2662,8 +2662,8 @@ u8 ItemBattleEffects(u8 caseID, u8 bank, bool8 moveTurn) if (effect) { gBattleStruct->scriptingActive = bank; - gStringBank = bank; - gActiveBattler = gBankAttacker = bank; + gPotentialItemEffectBattler = bank; + gActiveBattler = gBattlerAttacker = bank; BattleScriptExecute(BattleScript_WhiteHerbEnd2); } break; @@ -2717,8 +2717,8 @@ u8 ItemBattleEffects(u8 caseID, u8 bank, bool8 moveTurn) gBattleTextBuff1[3] = move >> 8; gBattleTextBuff1[4] = 0xFF; BattleScriptExecute(BattleScript_BerryPPHealEnd2); - EmitSetMonData(0, i + REQUEST_PPMOVE1_BATTLE, 0, 1, &changedPP); - MarkBufferBankForExecution(gActiveBattler); + BtlController_EmitSetMonData(0, i + REQUEST_PPMOVE1_BATTLE, 0, 1, &changedPP); + MarkBattlerForControllerExec(gActiveBattler); effect = ITEM_PP_CHANGE; } } @@ -2735,8 +2735,8 @@ u8 ItemBattleEffects(u8 caseID, u8 bank, bool8 moveTurn) if (effect) { gBattleStruct->scriptingActive = bank; - gStringBank = bank; - gActiveBattler = gBankAttacker = bank; + gPotentialItemEffectBattler = bank; + gActiveBattler = gBattlerAttacker = bank; BattleScriptExecute(BattleScript_WhiteHerbEnd2); } break; @@ -2870,7 +2870,7 @@ u8 ItemBattleEffects(u8 caseID, u8 bank, bool8 moveTurn) gBattleTextBuff2[3] = 0xD2 >> 8; gBattleTextBuff2[4] = EOS; - gEffectBank = bank; + gEffectBattler = bank; gBattleStruct->statChanger = 0x10 + STAT_STAGE_ATK; gBattleStruct->animArg1 = 0xE + STAT_STAGE_ATK; gBattleStruct->animArg2 = 0; @@ -2886,7 +2886,7 @@ u8 ItemBattleEffects(u8 caseID, u8 bank, bool8 moveTurn) gBattleTextBuff1[2] = STAT_STAGE_DEF; gBattleTextBuff1[3] = EOS; - gEffectBank = bank; + gEffectBattler = bank; gBattleStruct->statChanger = 0x10 + STAT_STAGE_DEF; gBattleStruct->animArg1 = 0xE + STAT_STAGE_DEF; gBattleStruct->animArg2 = 0; @@ -2902,7 +2902,7 @@ u8 ItemBattleEffects(u8 caseID, u8 bank, bool8 moveTurn) gBattleTextBuff1[2] = STAT_STAGE_SPEED; gBattleTextBuff1[3] = EOS; - gEffectBank = bank; + gEffectBattler = bank; gBattleStruct->statChanger = 0x10 + STAT_STAGE_SPEED; gBattleStruct->animArg1 = 0xE + STAT_STAGE_SPEED; gBattleStruct->animArg2 = 0; @@ -2918,7 +2918,7 @@ u8 ItemBattleEffects(u8 caseID, u8 bank, bool8 moveTurn) gBattleTextBuff1[2] = STAT_STAGE_SPATK; gBattleTextBuff1[3] = EOS; - gEffectBank = bank; + gEffectBattler = bank; gBattleStruct->statChanger = 0x10 + STAT_STAGE_SPATK; gBattleStruct->animArg1 = 0xE + STAT_STAGE_SPATK; gBattleStruct->animArg2 = 0; @@ -2934,7 +2934,7 @@ u8 ItemBattleEffects(u8 caseID, u8 bank, bool8 moveTurn) gBattleTextBuff1[2] = STAT_STAGE_SPDEF; gBattleTextBuff1[3] = EOS; - gEffectBank = bank; + gEffectBattler = bank; gBattleStruct->statChanger = 0x10 + STAT_STAGE_SPDEF; gBattleStruct->animArg1 = 0xE + STAT_STAGE_SPDEF; gBattleStruct->animArg2 = 0; @@ -2979,7 +2979,7 @@ u8 ItemBattleEffects(u8 caseID, u8 bank, bool8 moveTurn) gBattleTextBuff2[6] = 0xD2 >> 8; gBattleTextBuff2[7] = EOS; - gEffectBank = bank; + gEffectBattler = bank; gBattleStruct->statChanger = 0x21 + i; gBattleStruct->animArg1 = 0x21 + i + 6; gBattleStruct->animArg2 = 0; @@ -3096,13 +3096,13 @@ u8 ItemBattleEffects(u8 caseID, u8 bank, bool8 moveTurn) if (effect) { gBattleStruct->scriptingActive = bank; - gStringBank = bank; - gActiveBattler = gBankAttacker = bank; + gPotentialItemEffectBattler = bank; + gActiveBattler = gBattlerAttacker = bank; switch (effect) { case ITEM_STATUS_CHANGE: - EmitSetMonData(0, REQUEST_STATUS_BATTLE, 0, 4, &gBattleMons[bank].status1); - MarkBufferBankForExecution(gActiveBattler); + BtlController_EmitSetMonData(0, REQUEST_STATUS_BATTLE, 0, 4, &gBattleMons[bank].status1); + MarkBattlerForControllerExec(gActiveBattler); break; case ITEM_PP_CHANGE: if (!(gBattleMons[bank].status2 & STATUS2_TRANSFORMED) && !(gDisableStructs[bank].unk18_b & gBitTable[i])) @@ -3244,7 +3244,7 @@ u8 ItemBattleEffects(u8 caseID, u8 bank, bool8 moveTurn) if (effect) { gBattleStruct->scriptingActive = bank; - gStringBank = bank; + gPotentialItemEffectBattler = bank; BattleScriptPushCursor(); gBattlescriptCurrInstr = BattleScript_WhiteHerbRet; return effect; // unnecessary return @@ -3254,10 +3254,10 @@ u8 ItemBattleEffects(u8 caseID, u8 bank, bool8 moveTurn) if (effect) { gBattleStruct->scriptingActive = bank; - gStringBank = bank; + gPotentialItemEffectBattler = bank; gActiveBattler = bank; - EmitSetMonData(0, REQUEST_STATUS_BATTLE, 0, 4, &gBattleMons[gActiveBattler].status1); - MarkBufferBankForExecution(gActiveBattler); + BtlController_EmitSetMonData(0, REQUEST_STATUS_BATTLE, 0, 4, &gBattleMons[gActiveBattler].status1); + MarkBattlerForControllerExec(gActiveBattler); break; } } @@ -3269,10 +3269,10 @@ u8 ItemBattleEffects(u8 caseID, u8 bank, bool8 moveTurn) { case HOLD_EFFECT_FLINCH: if (!(gMoveResultFlags & MOVE_RESULT_NO_EFFECT) - && (gSpecialStatuses[gBankTarget].moveturnLostHP_physical || gSpecialStatuses[gBankTarget].moveturnLostHP_special) + && (gSpecialStatuses[gBattlerTarget].physicalDmg || gSpecialStatuses[gBattlerTarget].specialDmg) && (Random() % 100) < bankQuality && gBattleMoves[gCurrentMove].flags & F_AFFECTED_BY_KINGS_ROCK - && gBattleMons[gBankTarget].hp) + && gBattleMons[gBattlerTarget].hp) { gBattleCommunication[MOVE_EFFECT_BYTE] = 8; BattleScriptPushCursor(); @@ -3282,19 +3282,19 @@ u8 ItemBattleEffects(u8 caseID, u8 bank, bool8 moveTurn) break; case HOLD_EFFECT_SHELL_BELL: if (!(gMoveResultFlags & MOVE_RESULT_NO_EFFECT) - && gSpecialStatuses[gBankTarget].moveturnLostHP != 0 - && gSpecialStatuses[gBankTarget].moveturnLostHP != 0xFFFF - && gBankAttacker != gBankTarget - && gBattleMons[gBankAttacker].hp != gBattleMons[gBankAttacker].maxHP - && gBattleMons[gBankAttacker].hp != 0) + && gSpecialStatuses[gBattlerTarget].dmg != 0 + && gSpecialStatuses[gBattlerTarget].dmg != 0xFFFF + && gBattlerAttacker != gBattlerTarget + && gBattleMons[gBattlerAttacker].hp != gBattleMons[gBattlerAttacker].maxHP + && gBattleMons[gBattlerAttacker].hp != 0) { gLastUsedItem = atkItem; - gStringBank = gBankAttacker; - gBattleStruct->scriptingActive = gBankAttacker; - gBattleMoveDamage = (gSpecialStatuses[gBankTarget].moveturnLostHP / atkQuality) * -1; + gPotentialItemEffectBattler = gBattlerAttacker; + gBattleStruct->scriptingActive = gBattlerAttacker; + gBattleMoveDamage = (gSpecialStatuses[gBattlerTarget].dmg / atkQuality) * -1; if (gBattleMoveDamage == 0) gBattleMoveDamage = -1; - gSpecialStatuses[gBankTarget].moveturnLostHP = 0; + gSpecialStatuses[gBattlerTarget].dmg = 0; BattleScriptPushCursor(); gBattlescriptCurrInstr = BattleScript_ItemHealHP_Ret; effect++; @@ -3358,7 +3358,7 @@ void unref_sub_801B40C(void) void sub_801B594(void) { - if (gBattleExecBuffer == 0) + if (gBattleControllerExecFlags == 0) gBattleScriptingCommandsTable[*gBattlescriptCurrInstr](); } @@ -3376,18 +3376,18 @@ u8 GetMoveTarget(u16 move, u8 useMoveTarget) //get move target switch (moveTarget) { case 0: - side = GetBattlerSide(gBankAttacker) ^ 1; + side = GetBattlerSide(gBattlerAttacker) ^ 1; if (gSideTimers[side].followmeTimer && gBattleMons[gSideTimers[side].followmeTarget].hp) targetBank = gSideTimers[side].followmeTarget; else { - side = GetBattlerSide(gBankAttacker); + side = GetBattlerSide(gBattlerAttacker); do { targetBank = Random() % gBattlersCount; - } while (targetBank == gBankAttacker || side == GetBattlerSide(targetBank) || gAbsentBattlerFlags & gBitTable[targetBank]); + } while (targetBank == gBattlerAttacker || side == GetBattlerSide(targetBank) || gAbsentBattlerFlags & gBitTable[targetBank]); if (gBattleMoves[move].type == TYPE_ELECTRIC - && AbilityBattleEffects(ABILITYEFFECT_COUNT_OTHER_SIZE, gBankAttacker, ABILITY_LIGHTNING_ROD, 0, 0) + && AbilityBattleEffects(ABILITYEFFECT_COUNT_OTHER_SIZE, gBattlerAttacker, ABILITY_LIGHTNING_ROD, 0, 0) && gBattleMons[targetBank].ability != ABILITY_LIGHTNING_ROD) { targetBank ^= 2; @@ -3400,17 +3400,17 @@ u8 GetMoveTarget(u16 move, u8 useMoveTarget) //get move target case 8: case 32: case 64: - targetBank = GetBattlerAtPosition((GetBattlerPosition(gBankAttacker) & 1) ^ 1); + targetBank = GetBattlerAtPosition((GetBattlerPosition(gBattlerAttacker) & 1) ^ 1); if (gAbsentBattlerFlags & gBitTable[targetBank]) targetBank ^= 2; break; case 4: - side = GetBattlerSide(gBankAttacker) ^ 1; + side = GetBattlerSide(gBattlerAttacker) ^ 1; if (gSideTimers[side].followmeTimer && gBattleMons[gSideTimers[side].followmeTarget].hp) targetBank = gSideTimers[side].followmeTarget; else if (gBattleTypeFlags & BATTLE_TYPE_DOUBLE && moveTarget & 4) { - if (GetBattlerSide(gBankAttacker) == 0) + if (GetBattlerSide(gBattlerAttacker) == 0) { if (Random() & 1) targetBank = GetBattlerAtPosition(1); @@ -3428,14 +3428,14 @@ u8 GetMoveTarget(u16 move, u8 useMoveTarget) //get move target targetBank ^= 2; } else - targetBank = GetBattlerAtPosition((GetBattlerPosition(gBankAttacker) & 1) ^ 1); + targetBank = GetBattlerAtPosition((GetBattlerPosition(gBattlerAttacker) & 1) ^ 1); break; case 2: case 16: - targetBank = gBankAttacker; + targetBank = gBattlerAttacker; break; } - ewram16010arr(gBankAttacker) = targetBank; + ewram16010arr(gBattlerAttacker) = targetBank; return targetBank; } @@ -3446,8 +3446,8 @@ u8 IsMonDisobedient(void) s32 calc; if (gBattleTypeFlags & BATTLE_TYPE_LINK - || GetBattlerSide(gBankAttacker) == 1 - || !IsOtherTrainer(gBattleMons[gBankAttacker].otId, gBattleMons[gBankAttacker].otName)) + || GetBattlerSide(gBattlerAttacker) == 1 + || !IsOtherTrainer(gBattleMons[gBattlerAttacker].otId, gBattleMons[gBattlerAttacker].otName)) return 0; if (DEBUG && (gUnknown_02023A14_50 & 0x40)) @@ -3467,27 +3467,27 @@ u8 IsMonDisobedient(void) obedienceLevel = 70; } - if (gBattleMons[gBankAttacker].level <= obedienceLevel) + if (gBattleMons[gBattlerAttacker].level <= obedienceLevel) return 0; rnd = (Random() & 255); - calc = (gBattleMons[gBankAttacker].level + obedienceLevel) * rnd >> 8; + calc = (gBattleMons[gBattlerAttacker].level + obedienceLevel) * rnd >> 8; if (calc < obedienceLevel) return 0; // is not obedient if (gCurrentMove == MOVE_RAGE) - gBattleMons[gBankAttacker].status2 &= ~(STATUS2_RAGE); - if (gBattleMons[gBankAttacker].status1 & STATUS_SLEEP && (gCurrentMove == MOVE_SNORE || gCurrentMove == MOVE_SLEEP_TALK)) + gBattleMons[gBattlerAttacker].status2 &= ~(STATUS2_RAGE); + if (gBattleMons[gBattlerAttacker].status1 & STATUS_SLEEP && (gCurrentMove == MOVE_SNORE || gCurrentMove == MOVE_SLEEP_TALK)) { gBattlescriptCurrInstr = gUnknown_081D995F; return 1; } rnd = (Random() & 255); - calc = (gBattleMons[gBankAttacker].level + obedienceLevel) * rnd >> 8; + calc = (gBattleMons[gBattlerAttacker].level + obedienceLevel) * rnd >> 8; if (calc < obedienceLevel) { - calc = CheckMoveLimitations(gBankAttacker, gBitTable[gCurrMovePos], 0xFF); + calc = CheckMoveLimitations(gBattlerAttacker, gBitTable[gCurrMovePos], 0xFF); if (calc == 0xF) // all moves cannot be used { gBattleCommunication[MULTISTRING_CHOOSER] = Random() & 3; @@ -3500,22 +3500,22 @@ u8 IsMonDisobedient(void) { gCurrMovePos = gUnknown_02024BE5 = Random() & 3; } while (gBitTable[gCurrMovePos] & calc); - gRandomMove = gBattleMons[gBankAttacker].moves[gCurrMovePos]; + gRandomMove = gBattleMons[gBattlerAttacker].moves[gCurrMovePos]; gBattleCommunication[3] = 0; gDynamicBasePower = 0; gBattleStruct->dynamicMoveType = 0; gBattlescriptCurrInstr = BattleScript_IgnoresAndUsesRandomMove; - gBankTarget = GetMoveTarget(gRandomMove, 0); + gBattlerTarget = GetMoveTarget(gRandomMove, 0); gHitMarker |= HITMARKER_x200000; return 2; } } else { - obedienceLevel = gBattleMons[gBankAttacker].level - obedienceLevel; + obedienceLevel = gBattleMons[gBattlerAttacker].level - obedienceLevel; calc = (Random() & 255); - if (calc < obedienceLevel && !(gBattleMons[gBankAttacker].status1 & STATUS_ANY) && gBattleMons[gBankAttacker].ability != ABILITY_VITAL_SPIRIT && gBattleMons[gBankAttacker].ability != ABILITY_INSOMNIA) + if (calc < obedienceLevel && !(gBattleMons[gBattlerAttacker].status1 & STATUS_ANY) && gBattleMons[gBattlerAttacker].ability != ABILITY_VITAL_SPIRIT && gBattleMons[gBattlerAttacker].ability != ABILITY_INSOMNIA) { // try putting asleep int i; @@ -3533,8 +3533,8 @@ u8 IsMonDisobedient(void) calc -= obedienceLevel; if (calc < obedienceLevel) { - gBattleMoveDamage = CalculateBaseDamage(&gBattleMons[gBankAttacker], &gBattleMons[gBankAttacker], MOVE_POUND, 0, 40, 0, gBankAttacker, gBankAttacker); - gBankTarget = gBankAttacker; + gBattleMoveDamage = CalculateBaseDamage(&gBattleMons[gBattlerAttacker], &gBattleMons[gBattlerAttacker], MOVE_POUND, 0, 40, 0, gBattlerAttacker, gBattlerAttacker); + gBattlerTarget = gBattlerAttacker; gBattlescriptCurrInstr = gUnknown_081D99A0; gHitMarker |= HITMARKER_UNABLE_TO_USE_MOVE; return 2; diff --git a/src/berry_blender.c b/src/berry_blender.c index 85c992d8d..70cb34809 100644 --- a/src/berry_blender.c +++ b/src/berry_blender.c @@ -180,8 +180,8 @@ s8 GetFirstFreePokeblockSlot(void); extern void de_sub_8073110(); #endif -extern struct MusicPlayerInfo gMPlay_SE2; -extern struct MusicPlayerInfo gMPlay_BGM; +extern struct MusicPlayerInfo gMPlayInfo_SE2; +extern struct MusicPlayerInfo gMPlayInfo_BGM; extern u16 gSpecialVar_ItemId; extern u8 gUnknown_020297ED; extern u8 byte_3002A68; @@ -778,7 +778,7 @@ static const u8 sNewLineString_2[] = _("\n"); static void Blender_ControlHitPitch(void) { - m4aMPlayPitchControl(&gMPlay_SE2, 0xFFFF, (gBerryBlenderData->field_56 - 128) * 2); + m4aMPlayPitchControl(&gMPlayInfo_SE2, 0xFFFF, (gBerryBlenderData->field_56 - 128) * 2); } static void VBlankCB0_BerryBlender(void) @@ -1793,9 +1793,9 @@ static void sub_804FE70(void) if (gRecvCmds[2][i] == 0x2345 || gRecvCmds[2][i] == 0x4523 || gRecvCmds[2][i] == 0x5432) { if (gBerryBlenderData->field_56 > 1500) - m4aMPlayTempoControl(&gMPlay_BGM, ((gBerryBlenderData->field_56 - 750) / 20) + 256); + m4aMPlayTempoControl(&gMPlayInfo_BGM, ((gBerryBlenderData->field_56 - 750) / 20) + 256); else - m4aMPlayTempoControl(&gMPlay_BGM, 256); + m4aMPlayTempoControl(&gMPlayInfo_BGM, 256); } } } @@ -2164,7 +2164,7 @@ static void sub_8050954(void) { case 1: ClearLinkCallback(); - m4aMPlayTempoControl(&gMPlay_BGM, 256); + m4aMPlayTempoControl(&gMPlayInfo_BGM, 256); for (i = 0; i < gSpecialVar_0x8004; i++) { DestroyTask(gBerryBlenderData->field_148[i]); @@ -2181,7 +2181,7 @@ static void sub_8050954(void) else gBerryBlenderData->field_6F = 5; gBerryBlenderData->field_0 = 0; - m4aMPlayStop(&gMPlay_SE2); + m4aMPlayStop(&gMPlayInfo_SE2); } Blender_ControlHitPitch(); break; diff --git a/src/cable_club.c b/src/cable_club.c index 39027fc08..b030d8cc2 100644 --- a/src/cable_club.c +++ b/src/cable_club.c @@ -784,7 +784,7 @@ static void sub_808382C(u8 taskId) break; } - SetMainCallback2(sub_800E7C4); + SetMainCallback2(CB2_InitBattle); gMain.savedCallback = sub_8083958; DestroyTask(taskId); break; diff --git a/src/battle/calculate_base_damage.c b/src/calculate_base_damage.c index e4ae70c0b..e4ae70c0b 100644 --- a/src/battle/calculate_base_damage.c +++ b/src/calculate_base_damage.c diff --git a/src/contest.c b/src/contest.c index 9652e999e..54294fdfa 100644 --- a/src/contest.c +++ b/src/contest.c @@ -40,14 +40,14 @@ extern void sub_80C8A38(u8); extern void sub_80C8AD0(u8); extern void sub_80C8C80(u8); -extern struct MusicPlayerInfo gMPlay_SE1; +extern struct MusicPlayerInfo gMPlayInfo_SE1; extern u8 gBattleMonForms[]; extern u8 gDisplayedStringBattle[]; extern u16 gBattleTypeFlags; -extern u8 gBankAttacker; -extern u8 gBankTarget; +extern u8 gBattlerAttacker; +extern u8 gBattlerTarget; extern u8 gBanksBySide[]; -extern u8 gBankSpriteIds[]; +extern u8 gBattlerSpriteIds[]; extern struct Window gUnknown_03004210; extern u32 gContestRngValue; @@ -533,9 +533,9 @@ u8 sub_80AB70C(u8 *a) gBanksBySide[2] = 3; gBanksBySide[3] = 2; gBattleTypeFlags = 0; - gBankAttacker = 2; - gBankTarget = 3; - gBankSpriteIds[gBankAttacker] = CreateJudgeSprite(); + gBattlerAttacker = 2; + gBattlerTarget = 3; + gBattlerSpriteIds[gBattlerAttacker] = CreateJudgeSprite(); sub_80B292C(); break; default: @@ -912,7 +912,7 @@ void debug_sub_80BA054(u8 taskId) gSprites[r6].pos2.x = 120; gSprites[r6].callback = sub_80AD8FC; gTasks[taskId].data[2] = r6; - gBankSpriteIds[gBankAttacker] = r6; + gBattlerSpriteIds[gBattlerAttacker] = r6; gTasks[taskId].data[3] = 0; gTasks[taskId].data[0]++; sContest.unk1925E = 0; @@ -1124,7 +1124,7 @@ void sub_80AC2CC(u8 taskId) gSprites[spriteId].pos2.x = 120; gSprites[spriteId].callback = sub_80AD8FC; gTasks[taskId].data[2] = spriteId; - gBankSpriteIds[gBankAttacker] = spriteId; + gBattlerSpriteIds[gBattlerAttacker] = spriteId; sub_80B0BC4(sub_80B09E4(sContest.unk19215), FALSE); gTasks[taskId].data[0] = 4; return; @@ -2459,7 +2459,7 @@ u8 unref_sub_80AE908(void) &gMonFrontPicTable[species], gMonFrontPicCoords[species].coords, gMonFrontPicCoords[species].y_offset, - (void *)0x02000000, + (void *)EWRAM, gUnknown_081FAF4C[1], species); LoadCompressedPalette(gMonPaletteTable[species].data, 0x110, 32); @@ -2485,7 +2485,7 @@ u8 sub_80AE9FC(u16 species, u32 otId, u32 personality) &gMonBackPicTable[species], gMonBackPicCoords[species].coords, gMonBackPicCoords[species].y_offset, - 0x02000000, + EWRAM, gUnknown_081FAF4C[0], species, personality); @@ -3366,8 +3366,8 @@ void sub_80AFC74(u8 taskId) if (r1 > 0) { PlaySE(SE_C_GAJI); - m4aMPlayImmInit(&gMPlay_SE1); - m4aMPlayPitchControl(&gMPlay_SE1, 0xFFFF, r10 * 256); + m4aMPlayImmInit(&gMPlayInfo_SE1); + m4aMPlayPitchControl(&gMPlayInfo_SE1, 0xFFFF, r10 * 256); } else { @@ -3758,6 +3758,7 @@ u8 unref_sub_80B06E0(u8 *a) void sub_80B0748(u8 taskId) { u8 i; + u8 r4; u8 r4_2; u8 r1; u8 r7; @@ -5393,14 +5394,14 @@ void sub_80B28F0(u8 a) void sub_80B292C(void) { - gBankSpriteIds[3] = CreateInvisibleSpriteWithCallback(SpriteCallbackDummy); - InitSpriteAffineAnim(&gSprites[gBankSpriteIds[gBankTarget]]); + gBattlerSpriteIds[3] = CreateInvisibleSpriteWithCallback(SpriteCallbackDummy); + InitSpriteAffineAnim(&gSprites[gBattlerSpriteIds[gBattlerTarget]]); sub_80B2968(); } void sub_80B2968(void) { - struct Sprite *sprite = &gSprites[gBankSpriteIds[3]]; + struct Sprite *sprite = &gSprites[gBattlerSpriteIds[3]]; sprite->pos2.x = 0; sprite->pos2.y = 0; @@ -5415,14 +5416,14 @@ void SelectContestMoveBankTarget(u16 move) { case TARGET_UNK2: case TARGET_USER: - gBankTarget = 2; + gBattlerTarget = 2; break; case TARGET_SELECTED_POKEMON: case TARGET_RANDOM: case TARGET_BOTH_ENEMIES: case TARGET_ALL_EXCEPT_USER: default: - gBankTarget = 3; + gBattlerTarget = 3; break; } } diff --git a/src/battle/contest_link_80C2020.c b/src/contest_link_80C2020.c index 2dde3895c..8269f424b 100644 --- a/src/battle/contest_link_80C2020.c +++ b/src/contest_link_80C2020.c @@ -891,10 +891,10 @@ void sub_80C3158(const u8 *string, u8 spriteId) sub_80034D4(eContestLink80C2020Struct2018068, gDisplayedStringBattle); - CpuCopy32(&gUnknown_083D1624[0x0], (void *)0x6010000 + 32 * sp00[0], 32); - CpuCopy32(&gUnknown_083D1624[0x40], (void *)0x6010000 + 32 * sp00[0] + 0x100, 32); - CpuCopy32(&gUnknown_083D1624[0x40], (void *)0x6010000 + 32 * sp00[0] + 0x200, 32); - CpuCopy32(&gUnknown_083D1624[0x20], (void *)0x6010000 + 32 * sp00[0] + 0x300, 32); + CpuCopy32(&gUnknown_083D1624[0x0], (void *)(VRAM + 0x10000) + 32 * sp00[0], 32); + CpuCopy32(&gUnknown_083D1624[0x40], (void *)(VRAM + 0x10000) + 32 * sp00[0] + 0x100, 32); + CpuCopy32(&gUnknown_083D1624[0x40], (void *)(VRAM + 0x10000) + 32 * sp00[0] + 0x200, 32); + CpuCopy32(&gUnknown_083D1624[0x20], (void *)(VRAM + 0x10000) + 32 * sp00[0] + 0x300, 32); w = width / 8; j = 0; @@ -1415,27 +1415,27 @@ static inline s32 de_sub_80C39A8(s32 a0) s32 result = 0; if (gIsLinkContest & 0x1) { - sub_809D104((void *)0x0600E000, a0, 1, gUnknown_08E964B8, 9, 2, 8, 2); + sub_809D104((void *)(VRAM + 0xE000), a0, 1, gUnknown_08E964B8, 9, 2, 8, 2); result = 8; } else if (gSpecialVar_ContestRank == 0) { - sub_809D104((void *)0x0600E000, a0, 1, gUnknown_08E964B8, 0, 0, 9, 2); + sub_809D104((void *)(VRAM + 0xE000), a0, 1, gUnknown_08E964B8, 0, 0, 9, 2); result = 9; } else if (gSpecialVar_ContestRank == 1) { - sub_809D104((void *)0x0600E000, a0, 1, gUnknown_08E964B8, 9, 0, 8, 2); + sub_809D104((void *)(VRAM + 0xE000), a0, 1, gUnknown_08E964B8, 9, 0, 8, 2); result = 8; } else if (gSpecialVar_ContestRank == 2) { - sub_809D104((void *)0x0600E000, a0, 1, gUnknown_08E964B8, 17, 0, 8, 2); + sub_809D104((void *)(VRAM + 0xE000), a0, 1, gUnknown_08E964B8, 17, 0, 8, 2); result = 8; } else { - sub_809D104((void *)0x0600E000, a0, 1, gUnknown_08E964B8, 0, 2, 9, 2); + sub_809D104((void *)(VRAM + 0xE000), a0, 1, gUnknown_08E964B8, 0, 2, 9, 2); result = 9; } return result; @@ -1447,31 +1447,31 @@ static inline s32 de_sub_80C3A84(s32 a0, s32 * a1) if (gSpecialVar_ContestCategory == 0) { *a1 = 0; - sub_809D104((void *)0x0600E000, a0, 1, gUnknown_08E964B8, 17, 2, 10, 2); + sub_809D104((void *)(VRAM + 0xE000), a0, 1, gUnknown_08E964B8, 17, 2, 10, 2); result = 10; } else if (gSpecialVar_ContestCategory == 1) { *a1 = 1; - sub_809D104((void *)0x0600E000, a0, 1, gUnknown_08E964B8, 0, 4, 11, 2); + sub_809D104((void *)(VRAM + 0xE000), a0, 1, gUnknown_08E964B8, 0, 4, 11, 2); result = 11; } else if (gSpecialVar_ContestCategory == 2) { *a1 = 2; - sub_809D104((void *)0x0600E000, a0, 1, gUnknown_08E964B8, 11, 4, 10, 2); + sub_809D104((void *)(VRAM + 0xE000), a0, 1, gUnknown_08E964B8, 11, 4, 10, 2); result = 10; } else if (gSpecialVar_ContestCategory == 3) { *a1 = 3; - sub_809D104((void *)0x0600E000, a0, 1, gUnknown_08E964B8, 21, 4, 10, 2); + sub_809D104((void *)(VRAM + 0xE000), a0, 1, gUnknown_08E964B8, 21, 4, 10, 2); result = 10; } else { *a1 = 4; - sub_809D104((void *)0x0600E000, a0, 1, gUnknown_08E964B8, 0, 6, 10, 2); + sub_809D104((void *)(VRAM + 0xE000), a0, 1, gUnknown_08E964B8, 0, 6, 10, 2); result = 10; } return result; @@ -1484,8 +1484,8 @@ void sub_80C37E4(void) de_sub_80C3A84(de_sub_80C39A8(5) + 5, &sp0); for (i = 0; i < 0x80; i++) { - ((vu16 *)0x0600E000)[i] &= 0xFFF; - ((vu16 *)0x0600E000)[i] |= sp0 << 12;; + ((vu16 *)(VRAM + 0xE000))[i] &= 0xFFF; + ((vu16 *)(VRAM + 0xE000))[i] |= sp0 << 12;; } } #else @@ -1707,27 +1707,27 @@ s16 de_sub_80C39A8(s32 a0) s16 result; if (gIsLinkContest & 1) { - sub_809D104((void *)0x0600E000, a0, 0, gUnknown_08E964B8, 11, 3, 8, 3); + sub_809D104((void *)(VRAM + 0xE000), a0, 0, gUnknown_08E964B8, 11, 3, 8, 3); result = 8; } else if (gSpecialVar_ContestRank == 0) { - sub_809D104((void *)0x0600E000, a0, 0, gUnknown_08E964B8, 0, 0, 11, 3); + sub_809D104((void *)(VRAM + 0xE000), a0, 0, gUnknown_08E964B8, 0, 0, 11, 3); result = 11; } else if (gSpecialVar_ContestRank == 1) { - sub_809D104((void *)0x0600E000, a0, 0, gUnknown_08E964B8, 11, 0, 10, 3); + sub_809D104((void *)(VRAM + 0xE000), a0, 0, gUnknown_08E964B8, 11, 0, 10, 3); result = 10; } else if (gSpecialVar_ContestRank == 2) { - sub_809D104((void *)0x0600E000, a0, 0, gUnknown_08E964B8, 21, 0, 10, 3); + sub_809D104((void *)(VRAM + 0xE000), a0, 0, gUnknown_08E964B8, 21, 0, 10, 3); result = 10; } else { - sub_809D104((void *)0x0600E000, a0, 0, gUnknown_08E964B8, 0, 3, 11, 3); + sub_809D104((void *)(VRAM + 0xE000), a0, 0, gUnknown_08E964B8, 0, 3, 11, 3); result = 11; } return result; @@ -1739,31 +1739,31 @@ s16 de_sub_80C3A84(s32 a0, s32 * a1) if (gSpecialVar_ContestCategory == 0) { *a1 = 0; - sub_809D104((void *)0x0600E000, a0, 0, gUnknown_08E964B8, 19, 3, 7, 3); + sub_809D104((void *)(VRAM + 0xE000), a0, 0, gUnknown_08E964B8, 19, 3, 7, 3); result = 7; } else if (gSpecialVar_ContestCategory == 1) { *a1 = 1; - sub_809D104((void *)0x0600E000, a0, 0, gUnknown_08E964B8, 0, 6, 7, 3); + sub_809D104((void *)(VRAM + 0xE000), a0, 0, gUnknown_08E964B8, 0, 6, 7, 3); result = 7; } else if (gSpecialVar_ContestCategory == 2) { *a1 = 2; - sub_809D104((void *)0x0600E000, a0, 0, gUnknown_08E964B8, 7, 6, 4, 3); + sub_809D104((void *)(VRAM + 0xE000), a0, 0, gUnknown_08E964B8, 7, 6, 4, 3); result = 4; } else if (gSpecialVar_ContestCategory == 3) { *a1 = 3; - sub_809D104((void *)0x0600E000, a0, 0, gUnknown_08E964B8, 11, 6, 6, 3); + sub_809D104((void *)(VRAM + 0xE000), a0, 0, gUnknown_08E964B8, 11, 6, 6, 3); result = 6; } else { *a1 = 4; - sub_809D104((void *)0x0600E000, a0, 0, gUnknown_08E964B8, 17, 6, 5, 3); + sub_809D104((void *)(VRAM + 0xE000), a0, 0, gUnknown_08E964B8, 17, 6, 5, 3); result = 5; } return result; @@ -1776,8 +1776,8 @@ void sub_80C37E4(void) de_sub_80C3A84(de_sub_80C39A8(6) + 6, &sp0); for (i = 0; i < 0x80; i++) { - ((vu16 *)0x0600E000)[i] &= 0xFFF; - ((vu16 *)0x0600E000)[i] |= sp0 << 12;; + ((vu16 *)(VRAM + 0xE000))[i] &= 0xFFF; + ((vu16 *)(VRAM + 0xE000))[i] |= sp0 << 12;; } } #endif @@ -1848,10 +1848,10 @@ void sub_80C3A5C(u8 taskId) if (--gTasks[taskId].data[11] == -1) { firstTileNum = gTasks[taskId].data[0] * 2 + 0x5043; - *(vu16 *)(0x0600E142 + gTasks[taskId].data[1] * 192) = firstTileNum + 0x00; - *(vu16 *)(0x0600E144 + gTasks[taskId].data[1] * 192) = firstTileNum + 0x01; - *(vu16 *)(0x0600E182 + gTasks[taskId].data[1] * 192) = firstTileNum + 0x10; - *(vu16 *)(0x0600E184 + gTasks[taskId].data[1] * 192) = firstTileNum + 0x11; + *(vu16 *)((VRAM + 0xE142) + gTasks[taskId].data[1] * 192) = firstTileNum + 0x00; + *(vu16 *)((VRAM + 0xE144) + gTasks[taskId].data[1] * 192) = firstTileNum + 0x01; + *(vu16 *)((VRAM + 0xE182) + gTasks[taskId].data[1] * 192) = firstTileNum + 0x10; + *(vu16 *)((VRAM + 0xE184) + gTasks[taskId].data[1] * 192) = firstTileNum + 0x11; eContestLink80C2020Struct2018000.unk_05++; DestroyTask(taskId); PlaySE(SE_JYUNI); @@ -1871,8 +1871,8 @@ void sub_80C3B30(u8 taskId) { for (k = 0; k < 30; k++) { - ((u16 *)(0x0600E100 + 2 * (96 * i + 32 * j)))[k] &= 0x0FFF; - ((u16 *)(0x0600E100 + 2 * (96 * i + 32 * j)))[k] |= 0x9000; + ((u16 *)((VRAM + 0xE100) + 2 * (96 * i + 32 * j)))[k] &= 0x0FFF; + ((u16 *)((VRAM + 0xE100) + 2 * (96 * i + 32 * j)))[k] |= 0x9000; } } gTasks[taskId].data[10] = i; @@ -2182,7 +2182,7 @@ void sub_80C40D4(u8 arg0, u8 arg1) x += 32 * (i * 3 + 5); x -= arg1; x--; - *(vu16 *)(0x0600C000 + 2 * x) = 0x60B3; + *(vu16 *)((VRAM + 0xC000) + 2 * x) = 0x60B3; taskId = CreateTask(sub_80C42C0, 10); var0 = ((eContestLink80C2020Struct2018018[i].unk_08 << 16) / eContestLink80C2020Struct2018018[i].unk_11) * (arg1 + 1); if ((var0 % 0x10000) >= 0x8000) @@ -2209,7 +2209,7 @@ void sub_80C40D4(u8 arg0, u8 arg1) x += 32 * (i * 3 + 6); x -= arg1; x--; - *(vu16 *)(0x0600C000 + 2 * x) = tile; + *(vu16 *)((VRAM + 0xC000) + 2 * x) = tile; taskId = CreateTask(sub_80C42C0, 10); var0 = ((eContestLink80C2020Struct2018018[i].unk_0c << 16) / eContestLink80C2020Struct2018018[i].unk_12) * (arg1 + 1); if ((var0 % 0x10000) >= 0x8000) @@ -2551,7 +2551,7 @@ void sub_80C42C0(u8 taskId /*r12*/) tile = 0x504C + r0; else tile = 0x5057 + r0; - *(vu16 *)(0x0600E18E + 2 * (96 * r5 + i)) = tile; + *(vu16 *)((VRAM + 0xE18E) + 2 * (96 * r5 + i)) = tile; } } } diff --git a/src/battle/contest_link_80C857C.c b/src/contest_link_80C857C.c index a694380df..a694380df 100644 --- a/src/battle/contest_link_80C857C.c +++ b/src/contest_link_80C857C.c diff --git a/src/contest_painting.c b/src/contest_painting.c index 0c5cdcd49..e3cc6cdae 100644 --- a/src/contest_painting.c +++ b/src/contest_painting.c @@ -341,7 +341,7 @@ static void sub_8106AC4(u16 species, u8 arg1) &gMonFrontPicTable[species], gMonFrontPicCoords[species].coords, gMonFrontPicCoords[species].y_offset, - 0x2000000, + EWRAM, gUnknown_081FAF4C[1], species, (u32)gUnknown_03005E8C->personality @@ -354,7 +354,7 @@ static void sub_8106AC4(u16 species, u8 arg1) &gMonBackPicTable[species], gMonBackPicCoords[species].coords, gMonBackPicCoords[species].y_offset, - 0x2000000, + EWRAM, gUnknown_081FAF4C[0], species, (u32)gUnknown_03005E8C->personality diff --git a/src/credits.c b/src/credits.c index c0c53505d..daf6d2b5c 100644 --- a/src/credits.c +++ b/src/credits.c @@ -1561,7 +1561,7 @@ static u8 sub_81456B4(u16 species, u16 x, u16 y, u16 position) &gMonFrontPicTable[species], gMonFrontPicCoords[species].coords, gMonFrontPicCoords[species].y_offset, - 0x2000000, + EWRAM, gUnknown_0840B5A0[position], species, personality, diff --git a/src/data/.gitignore b/src/data/.gitignore new file mode 100644 index 000000000..eaf9e1f6d --- /dev/null +++ b/src/data/.gitignore @@ -0,0 +1 @@ +wild_encounters.h diff --git a/src/data/bard_music/actions.h b/src/data/bard_music/actions.h new file mode 100644 index 000000000..e5b6c67ee --- /dev/null +++ b/src/data/bard_music/actions.h @@ -0,0 +1,326 @@ +#ifndef GUARD_DATA_BARD_MUSIC_ACTIONS_H +#define GUARD_DATA_BARD_MUSIC_ACTIONS_H + +#if ENGLISH +const struct BardSound gBardSounds_Actions[][6] = { + { // MEETS + {0x0E}, {0x33}, {0x33}, {0xFF}, {0xFF}, {0xFF} + }, { // CONCEDE + {0x2C}, {0x0E}, {0x33}, {0xFF}, {0xFF}, {0xFF} + }, { // GIVE + {0x10}, {0x33}, {0x33}, {0xFF}, {0xFF}, {0xFF} + }, { // GIVES + {0x10}, {0x33}, {0x33}, {0xFF}, {0xFF}, {0xFF} + }, { // PLAYED + {0x04}, {0x33}, {0x33}, {0xFF}, {0xFF}, {0xFF} + }, { // PLAYS + {0x05}, {0x33}, {0x33}, {0xFF}, {0xFF}, {0xFF} + }, { // COLLECT + {0x2C}, {0x0B}, {0x33}, {0xFF}, {0xFF}, {0xFF} + }, { // WALKING + {0x06}, {0x0E}, {0x33}, {0xFF}, {0xFF}, {0xFF} + }, { // WALKS + {0x08}, {0x33}, {0x33}, {0xFF}, {0xFF}, {0xFF} + }, { // SAYS + {0x0B}, {0x33}, {0x33}, {0xFF}, {0xFF}, {0xFF} + }, { // WENT + {0x09}, {0x33}, {0x33}, {0xFF}, {0xFF}, {0xFF} + }, { // SAID + {0x09}, {0x33}, {0x33}, {0xFF}, {0xFF}, {0xFF} + }, { // WAKE UP + {0x05}, {0x2C}, {0x33}, {0xFF}, {0xFF}, {0xFF} + }, { // WAKES UP + {0x05}, {0x2C}, {0x33}, {0xFF}, {0xFF}, {0xFF} + }, { // ANGERS + {0x03}, {0x32}, {0x33}, {0xFF}, {0xFF}, {0xFF} + }, { // TEACH + {0x0D}, {0xFF}, {0x33}, {0xFF}, {0xFF}, {0xFF} + }, { // TEACHES + {0x0C}, {0x0B}, {0x33}, {0xFF}, {0xFF}, {0xFF} + }, { // PLEASE + {0x0D}, {0x33}, {0x33}, {0xFF}, {0xFF}, {0xFF} + }, { // LEARN + {0x30}, {0x33}, {0x33}, {0xFF}, {0xFF}, {0xFF} + }, { // CHANGE + {0x03}, {0x33}, {0x33}, {0xFF}, {0xFF}, {0xFF} + }, { // STORY + {0x1A}, {0x0E}, {0x33}, {0xFF}, {0xFF}, {0xFF} + }, { // TRUST + {0x0B}, {0x32}, {0x33}, {0xFF}, {0xFF}, {0xFF} + }, { // LAVISH + {0x01}, {0x11}, {0x33}, {0xFF}, {0xFF}, {0xFF} + }, { // LISTENS + {0x11}, {0x0B}, {0x33}, {0xFF}, {0xFF}, {0xFF} + }, { // HEARING + {0x11}, {0x0E}, {0x33}, {0xFF}, {0xFF}, {0xFF} + }, { // TRAINS + {0x03}, {0x33}, {0x33}, {0xFF}, {0xFF}, {0xFF} + }, { // CHOOSE + {0x27}, {0x33}, {0x33}, {0xFF}, {0xFF}, {0xFF} + }, { // COME + {0x2C}, {0x33}, {0x33}, {0xFF}, {0xFF}, {0xFF} + }, { // CAME + {0x03}, {0x33}, {0x33}, {0xFF}, {0xFF}, {0xFF} + }, { // SEARCH + {0x32}, {0x33}, {0x33}, {0xFF}, {0xFF}, {0xFF} + }, { // MAKE + {0x05}, {0x33}, {0x33}, {0xFF}, {0xFF}, {0xFF} + }, { // CAUSE + {0x1D}, {0x33}, {0x33}, {0xFF}, {0xFF}, {0xFF} + }, { // KNOW + {0x1A}, {0x33}, {0x33}, {0xFF}, {0xFF}, {0xFF} + }, { // KNOWS + {0x18}, {0x33}, {0x33}, {0xFF}, {0xFF}, {0xFF} + }, { // REFUSE + {0x0C}, {0x2F}, {0x33}, {0xFF}, {0xFF}, {0xFF} + }, { // STORES + {0x1A}, {0x30}, {0x33}, {0xFF}, {0xFF}, {0xFF} + }, { // BRAG + {0x02}, {0x33}, {0x33}, {0xFF}, {0xFF}, {0xFF} + }, { // IGNORANT + {0x11}, {0x1A}, {0x02}, {0xFF}, {0xFF}, {0xFF} + }, { // THINKS + {0x0E}, {0x33}, {0x33}, {0xFF}, {0xFF}, {0xFF} + }, { // BELIEVE + {0x0C}, {0x0E}, {0x33}, {0xFF}, {0xFF}, {0xFF} + }, { // SLIDE + {0x14}, {0x33}, {0x33}, {0xFF}, {0xFF}, {0xFF} + }, { // EATS + {0x0E}, {0x33}, {0x33}, {0xFF}, {0xFF}, {0xFF} + }, { // USE + {0x2F}, {0x33}, {0x33}, {0xFF}, {0xFF}, {0xFF} + }, { // USES + {0x2F}, {0x0A}, {0x33}, {0xFF}, {0xFF}, {0xFF} + }, { // USING + {0x2F}, {0x0C}, {0x33}, {0xFF}, {0xFF}, {0xFF} + }, { // COULDN'T + {0x26}, {0x09}, {0x33}, {0xFF}, {0xFF}, {0xFF} + }, { // CAPABLE + {0x05}, {0x2C}, {0x1A}, {0xFF}, {0xFF}, {0xFF} + }, { // DISAPPEAR + {0x11}, {0x2C}, {0x30}, {0x33}, {0xFF}, {0xFF} + }, { // APPEAR + {0x2C}, {0x32}, {0x33}, {0xFF}, {0xFF}, {0xFF} + }, { // THROW + {0x1A}, {0x33}, {0x33}, {0xFF}, {0xFF}, {0xFF} + }, { // WORRY + {0x32}, {0x0E}, {0x33}, {0xFF}, {0xFF}, {0xFF} + }, { // SLEPT + {0x0B}, {0x33}, {0x33}, {0xFF}, {0xFF}, {0xFF} + }, { // SLEEP + {0x0E}, {0x33}, {0x33}, {0xFF}, {0xFF}, {0xFF} + }, { // RELEASE + {0x0C}, {0x0E}, {0x33}, {0xFF}, {0xFF}, {0xFF} + }, { // DRINKS + {0x0E}, {0x33}, {0x33}, {0xFF}, {0xFF}, {0xFF} + }, { // RUNS + {0x2C}, {0x33}, {0x33}, {0xFF}, {0xFF}, {0xFF} + }, { // RUN + {0x2C}, {0x33}, {0x33}, {0xFF}, {0xFF}, {0xFF} + }, { // WORKS + {0x32}, {0x33}, {0x33}, {0xFF}, {0xFF}, {0xFF} + }, { // WORKING + {0x32}, {0x0D}, {0x33}, {0xFF}, {0xFF}, {0xFF} + }, { // TALKING + {0x1B}, {0x0E}, {0x33}, {0xFF}, {0xFF}, {0xFF} + }, { // TALK + {0x1B}, {0xFF}, {0x33}, {0xFF}, {0xFF}, {0xFF} + }, { // SINK + {0x0E}, {0x33}, {0x33}, {0xFF}, {0xFF}, {0xFF} + }, { // SMACK + {0x01}, {0x33}, {0x33}, {0xFF}, {0xFF}, {0xFF} + }, { // PRETEND + {0x0E}, {0x0B}, {0x33}, {0xFF}, {0xFF}, {0xFF} + }, { // PRAISE + {0x05}, {0x33}, {0x33}, {0xFF}, {0xFF}, {0xFF} + }, { // OVERDO + {0x18}, {0x30}, {0x29}, {0xFF}, {0xFF}, {0xFF} + }, { // SHOW + {0x1A}, {0x33}, {0x33}, {0xFF}, {0xFF}, {0xFF} + }, { // LOOKS + {0x26}, {0x33}, {0x33}, {0xFF}, {0xFF}, {0xFF} + }, { // SEES + {0x0E}, {0x33}, {0x33}, {0xFF}, {0xFF}, {0xFF} + }, { // SEEK + {0x0E}, {0x33}, {0x33}, {0xFF}, {0xFF}, {0xFF} + }, { // OWN + {0x1A}, {0x33}, {0x33}, {0xFF}, {0xFF}, {0xFF} + }, { // TAKE + {0x05}, {0x33}, {0x33}, {0xFF}, {0xFF}, {0xFF} + }, { // ALLOW + {0x2C}, {0x23}, {0x33}, {0xFF}, {0xFF}, {0xFF} + }, { // FORGET + {0x1A}, {0x0B}, {0x33}, {0xFF}, {0xFF}, {0xFF} + }, { // FORGETS + {0x1A}, {0x0A}, {0x33}, {0xFF}, {0xFF}, {0xFF} + }, { // APPEARS + {0x2C}, {0x0D}, {0x33}, {0x33}, {0xFF}, {0xFF} + }, { // FAINT + {0x03}, {0x33}, {0x33}, {0xFF}, {0xFF}, {0xFF} + }, { // FAINTED + {0x03}, {0x0A}, {0x33}, {0xFF}, {0xFF}, {0xFF} + } +}; +#elif GERMAN +const struct BardSound gBardSounds_Actions[][6] = { + { // MEETS + {0x11}, {0xFF}, {0xFF}, {0xFF}, {0xFF}, {0xFF} + }, { // CONCEDE + {0x0B}, {0x11}, {0x11}, {0x0B}, {0xFF}, {0xFF} + }, { // GIVE + {0x0B}, {0x0B}, {0xFF}, {0xFF}, {0xFF}, {0xFF} + }, { // GIVES + {0x11}, {0xFF}, {0xFF}, {0xFF}, {0xFF}, {0xFF} + }, { // PLAYED + {0x11}, {0x0B}, {0xFF}, {0xFF}, {0xFF}, {0xFF} + }, { // PLAYS + {0x11}, {0xFF}, {0xFF}, {0xFF}, {0xFF}, {0xFF} + }, { // COLLECT + {0x02}, {0x0B}, {0xFF}, {0xFF}, {0xFF}, {0xFF} + }, { // WALKING + {0x02}, {0x0B}, {0xFF}, {0xFF}, {0xFF}, {0xFF} + }, { // WALKS + {0x02}, {0x0B}, {0xFF}, {0xFF}, {0xFF}, {0xFF} + }, { // SAYS + {0x02}, {0xFF}, {0xFF}, {0xFF}, {0xFF}, {0xFF} + }, { // WENT + {0x11}, {0xFF}, {0xFF}, {0xFF}, {0xFF}, {0xFF} + }, { // SAID + {0x02}, {0x0B}, {0xFF}, {0xFF}, {0xFF}, {0xFF} + }, { // WAKE UP + {0x02}, {0x02}, {0x0B}, {0xFF}, {0xFF}, {0xFF} + }, { // WAKES UP + {0x02}, {0x02}, {0x29}, {0xFF}, {0xFF}, {0xFF} + }, { // ANGERS + {0x0B}, {0x0B}, {0xFF}, {0xFF}, {0xFF}, {0xFF} + }, { // TEACH + {0x0B}, {0x0B}, {0xFF}, {0xFF}, {0xFF}, {0xFF} + }, { // TEACHES + {0x0B}, {0xFF}, {0xFF}, {0xFF}, {0xFF}, {0xFF} + }, { // PLEASE + {0x11}, {0x0B}, {0xFF}, {0xFF}, {0xFF}, {0xFF} + }, { // LEARN + {0x0B}, {0x0B}, {0xFF}, {0xFF}, {0xFF}, {0xFF} + }, { // CHANGE + {0x0B}, {0x0B}, {0xFF}, {0xFF}, {0xFF}, {0xFF} + }, { // STORY + {0x1A}, {0x11}, {0xFF}, {0xFF}, {0xFF}, {0xFF} + }, { // TRUST + {0x0B}, {0x02}, {0x29}, {0x0B}, {0xFF}, {0xFF} + }, { // LAVISH + {0x1A}, {0x11}, {0x11}, {0xFF}, {0xFF}, {0xFF} + }, { // LISTENS + {0x0B}, {0xFF}, {0xFF}, {0xFF}, {0xFF}, {0xFF} + }, { // HEARING + {0x0B}, {0x0B}, {0xFF}, {0xFF}, {0xFF}, {0xFF} + }, { // TRAINS + {0x02}, {0x11}, {0x11}, {0xFF}, {0xFF}, {0xFF} + }, { // CHOOSE + {0x0B}, {0x0B}, {0xFF}, {0xFF}, {0xFF}, {0xFF} + }, { // COME + {0x1A}, {0x0B}, {0xFF}, {0xFF}, {0xFF}, {0xFF} + }, { // CAME + {0x02}, {0xFF}, {0xFF}, {0xFF}, {0xFF}, {0xFF} + }, { // SEARCH + {0x29}, {0x0B}, {0xFF}, {0xFF}, {0xFF}, {0xFF} + }, { // MAKE + {0x02}, {0x0B}, {0xFF}, {0xFF}, {0xFF}, {0xFF} + }, { // CAUSE + {0x29}, {0xFF}, {0xFF}, {0xFF}, {0xFF}, {0xFF} + }, { // KNOW + {0x11}, {0x0B}, {0xFF}, {0xFF}, {0xFF}, {0xFF} + }, { // KNOWS + {0x0B}, {0x11}, {0xFF}, {0xFF}, {0xFF}, {0xFF} + }, { // REFUSE + {0x0B}, {0x11}, {0x0B}, {0xFF}, {0xFF}, {0xFF} + }, { // STORES + {0x02}, {0x0B}, {0xFF}, {0xFF}, {0xFF}, {0xFF} + }, { // BRAG + {0x02}, {0x0B}, {0x0B}, {0xFF}, {0xFF}, {0xFF} + }, { // IGNORANT + {0x11}, {0x1A}, {0x02}, {0xFF}, {0xFF}, {0xFF} + }, { // THINKS + {0x0B}, {0xFF}, {0xFF}, {0xFF}, {0xFF}, {0xFF} + }, { // BELIEVE + {0x02}, {0x29}, {0x0B}, {0xFF}, {0xFF}, {0xFF} + }, { // SLIDE + {0x0B}, {0x11}, {0x0B}, {0xFF}, {0xFF}, {0xFF} + }, { // EATS + {0x11}, {0xFF}, {0xFF}, {0xFF}, {0xFF}, {0xFF} + }, { // USE + {0x0B}, {0x02}, {0x29}, {0x0B}, {0xFF}, {0xFF} + }, { // USES + {0x0B}, {0x02}, {0x29}, {0xFF}, {0xFF}, {0xFF} + }, { // USING + {0x0B}, {0x0B}, {0x0B}, {0xFF}, {0xFF}, {0xFF} + }, { // COULDN'T + {0x0B}, {0x0B}, {0x11}, {0xFF}, {0xFF}, {0xFF} + }, { // CAPABLE + {0x0B}, {0x11}, {0xFF}, {0xFF}, {0xFF}, {0xFF} + }, { // DISAPPEAR + {0x0B}, {0x11}, {0x0B}, {0xFF}, {0xFF}, {0xFF} + }, { // APPEAR + {0x0B}, {0x0B}, {0x11}, {0x0B}, {0xFF}, {0xFF} + }, { // THROW + {0x0B}, {0x0B}, {0xFF}, {0xFF}, {0xFF}, {0xFF} + }, { // WORRY + {0x1A}, {0x0B}, {0xFF}, {0xFF}, {0xFF}, {0xFF} + }, { // SLEPT + {0x11}, {0x0B}, {0xFF}, {0xFF}, {0xFF}, {0xFF} + }, { // SLEEP + {0x02}, {0xFF}, {0xFF}, {0xFF}, {0xFF}, {0xFF} + }, { // RELEASE + {0x0B}, {0x11}, {0x02}, {0x0B}, {0xFF}, {0xFF} + }, { // DRINKS + {0x11}, {0xFF}, {0xFF}, {0xFF}, {0xFF}, {0xFF} + }, { // RUNS + {0x0B}, {0xFF}, {0xFF}, {0xFF}, {0xFF}, {0xFF} + }, { // RUN + {0x0B}, {0x0B}, {0xFF}, {0xFF}, {0xFF}, {0xFF} + }, { // WORKS + {0x0B}, {0x0B}, {0xFF}, {0xFF}, {0xFF}, {0xFF} + }, { // WORKING + {0x02}, {0x0B}, {0x11}, {0x0B}, {0xFF}, {0xFF} + }, { // TALKING + {0x0B}, {0x0B}, {0xFF}, {0xFF}, {0xFF}, {0xFF} + }, { // TALK + {0x0B}, {0x0B}, {0xFF}, {0xFF}, {0xFF}, {0xFF} + }, { // SINK + {0x0B}, {0x0B}, {0x0B}, {0xFF}, {0xFF}, {0xFF} + }, { // SMACK + {0x02}, {0xFF}, {0xFF}, {0xFF}, {0xFF}, {0xFF} + }, { // PRETEND + {0x1A}, {0x0B}, {0x29}, {0x0B}, {0xFF}, {0xFF} + }, { // PRAISE + {0x1A}, {0x0B}, {0xFF}, {0xFF}, {0xFF}, {0xFF} + }, { // OVERDO + {0x11}, {0x0B}, {0x11}, {0x0B}, {0xFF}, {0xFF} + }, { // SHOW + {0x0B}, {0x11}, {0x0B}, {0xFF}, {0xFF}, {0xFF} + }, { // LOOKS + {0x02}, {0x29}, {0xFF}, {0xFF}, {0xFF}, {0xFF} + }, { // SEES + {0x11}, {0xFF}, {0xFF}, {0xFF}, {0xFF}, {0xFF} + }, { // SEEK + {0x0B}, {0x0B}, {0x02}, {0xFF}, {0xFF}, {0xFF} + }, { // OWN + {0x0B}, {0x11}, {0x0B}, {0xFF}, {0xFF}, {0xFF} + }, { // TAKE + {0x0B}, {0x02}, {0x0B}, {0xFF}, {0xFF}, {0xFF} + }, { // ALLOW + {0x0B}, {0x02}, {0x0B}, {0xFF}, {0xFF}, {0xFF} + }, { // FORGET + {0x0B}, {0x0B}, {0x0B}, {0xFF}, {0xFF}, {0xFF} + }, { // FORGETS + {0x0B}, {0x11}, {0xFF}, {0xFF}, {0xFF}, {0xFF} + }, { // APPEARS + {0x0B}, {0x0B}, {0x11}, {0xFF}, {0xFF}, {0xFF} + }, { // FAINT + {0x0B}, {0x11}, {0x0B}, {0xFF}, {0xFF}, {0xFF} + }, { // FAINTED + {0x02}, {0x29}, {0x0B}, {0x11}, {0xFF}, {0xFF} + } +}; +#endif // ENGLISH/GERMAN + +#endif // GUARD_DATA_BARD_MUSIC_ACTIONS_H diff --git a/src/data/bard_music/adjectives.h b/src/data/bard_music/adjectives.h new file mode 100644 index 000000000..ebf919552 --- /dev/null +++ b/src/data/bard_music/adjectives.h @@ -0,0 +1,158 @@ +#ifndef GUARD_DATA_BARD_MUSIC_ADJECTIVES_H +#define GUARD_DATA_BARD_MUSIC_ADJECTIVES_H + +#if ENGLISH +const struct BardSound gBardSounds_Adjectives[][6] = { + { // WANDERING + {0x1D}, {0x32}, {0x0C}, {0xFF}, {0xFF}, {0xFF} + }, { // RICKETY + {0x11}, {0x09}, {0x0E}, {0xFF}, {0xFF}, {0xFF} + }, { // ROCK-SOLID + {0x1B}, {0x1B}, {0x11}, {0xFF}, {0xFF}, {0xFF} + }, { // HUNGRY + {0x2A}, {0x30}, {0x0E}, {0xFF}, {0xFF}, {0xFF} + }, { // TIGHT + {0x12}, {0x33}, {0x33}, {0xFF}, {0xFF}, {0xFF} + }, { // TICKLISH + {0x11}, {0x24}, {0x11}, {0xFF}, {0xFF}, {0xFF} + }, { // TWIRLING + {0x30}, {0x0C}, {0x33}, {0xFF}, {0xFF}, {0xFF} + }, { // SPIRALING + {0x12}, {0x08}, {0x0E}, {0x33}, {0xFF}, {0xFF} + }, { // THIRSTY + {0x30}, {0x0E}, {0x33}, {0xFF}, {0xFF}, {0xFF} + }, { // LOLLING + {0x2C}, {0x0E}, {0x33}, {0xFF}, {0xFF}, {0xFF} + }, { // SILKY + {0x11}, {0x0E}, {0x33}, {0xFF}, {0xFF}, {0xFF} + }, { // SADLY + {0x00}, {0x0E}, {0x33}, {0xFF}, {0xFF}, {0xFF} + }, { // HOPELESS + {0x18}, {0x09}, {0x33}, {0xFF}, {0xFF}, {0xFF} + }, { // USELESS + {0x2D}, {0x09}, {0x33}, {0xFF}, {0xFF}, {0xFF} + }, { // DROOLING + {0x27}, {0x0C}, {0x33}, {0xFF}, {0xFF}, {0xFF} + }, { // EXCITING + {0x09}, {0x12}, {0x0C}, {0xFF}, {0xFF}, {0xFF} + }, { // THICK + {0x11}, {0x33}, {0x33}, {0xFF}, {0xFF}, {0xFF} + }, { // SMOOTH + {0x27}, {0x33}, {0x33}, {0xFF}, {0xFF}, {0xFF} + }, { // SLIMY + {0x12}, {0x0C}, {0x33}, {0xFF}, {0xFF}, {0xFF} + }, { // THIN + {0x0F}, {0x33}, {0x33}, {0xFF}, {0xFF}, {0xFF} + }, { // BREAK + {0x05}, {0x33}, {0x33}, {0xFF}, {0xFF}, {0xFF} + }, { // VORACIOUS + {0x32}, {0x05}, {0x2C}, {0x33}, {0xFF}, {0xFF} + }, { // SCATTER + {0x00}, {0x30}, {0x33}, {0xFF}, {0xFF}, {0xFF} + }, { // AWESOME + {0x1B}, {0x2C}, {0x33}, {0x33}, {0xFF}, {0xFF} + }, { // WIMPY + {0x11}, {0x0C}, {0x33}, {0xFF}, {0xFF}, {0xFF} + }, { // WOBBLY + {0x1D}, {0x0E}, {0x33}, {0xFF}, {0xFF}, {0xFF} + }, { // SHAKY + {0x03}, {0x0C}, {0x33}, {0xFF}, {0xFF}, {0xFF} + }, { // RIPPED + {0x11}, {0x33}, {0x33}, {0xFF}, {0xFF}, {0xFF} + }, { // SHREDDED + {0x09}, {0x0B}, {0x33}, {0xFF}, {0xFF}, {0xFF} + }, { // INCREASING + {0x0F}, {0x0C}, {0x0C}, {0xFF}, {0xFF}, {0xFF} + }, { // YET + {0x09}, {0x33}, {0x33}, {0xFF}, {0xFF}, {0xFF} + }, { // DESTROYED + {0x0C}, {0x1E}, {0x33}, {0xFF}, {0xFF}, {0xFF} + }, { // FIERY + {0x14}, {0x32}, {0x0E}, {0xFF}, {0xFF}, {0xFF} + }, { // LOVEY-DOVEY + {0x2C}, {0x0E}, {0x2C}, {0x0E}, {0xFF}, {0xFF} + }, { // HAPPILY + {0x00}, {0x2C}, {0x0E}, {0xFF}, {0xFF}, {0xFF} + }, { // ANTICIPATION + {0x00}, {0x11}, {0x11}, {0x03}, {0x1D}, {0x33} + } +}; +#elif GERMAN +const struct BardSound gBardSounds_Adjectives[][6] = { + { // WANDERING + {0x02}, {0xFF}, {0xFF}, {0xFF}, {0xFF}, {0xFF} + }, { // RICKETY + {0x02}, {0x0B}, {0xFF}, {0xFF}, {0xFF}, {0xFF} + }, { // ROCK-SOLID + {0x0B}, {0x11}, {0x02}, {0xFF}, {0xFF}, {0xFF} + }, { // HUNGRY + {0x02}, {0x0B}, {0x29}, {0xFF}, {0xFF}, {0xFF} + }, { // TIGHT + {0x29}, {0xFF}, {0xFF}, {0xFF}, {0xFF}, {0xFF} + }, { // TICKLISH + {0x11}, {0x0B}, {0x11}, {0x0B}, {0xFF}, {0xFF} + }, { // TWIRLING + {0x0B}, {0x29}, {0x0B}, {0xFF}, {0xFF}, {0xFF} + }, { // SPIRALING + {0x11}, {0x0B}, {0xFF}, {0xFF}, {0xFF}, {0xFF} + }, { // THIRSTY + {0x0B}, {0xFF}, {0xFF}, {0xFF}, {0xFF}, {0xFF} + }, { // LOLLING + {0x11}, {0x0B}, {0xFF}, {0xFF}, {0xFF}, {0xFF} + }, { // SILKY + {0x29}, {0x0B}, {0xFF}, {0xFF}, {0xFF}, {0xFF} + }, { // SADLY + {0x11}, {0xFF}, {0xFF}, {0xFF}, {0xFF}, {0xFF} + }, { // HOPELESS + {0x1A}, {0x1A}, {0xFF}, {0xFF}, {0xFF}, {0xFF} + }, { // USELESS + {0x11}, {0xFF}, {0xFF}, {0xFF}, {0xFF}, {0xFF} + }, { // DROOLING + {0x02}, {0x0B}, {0xFF}, {0xFF}, {0xFF}, {0xFF} + }, { // EXCITING + {0x11}, {0x11}, {0xFF}, {0xFF}, {0xFF}, {0xFF} + }, { // THICK + {0x02}, {0x0B}, {0xFF}, {0xFF}, {0xFF}, {0xFF} + }, { // SMOOTH + {0x02}, {0xFF}, {0xFF}, {0xFF}, {0xFF}, {0xFF} + }, { // SLIMY + {0x11}, {0x0B}, {0xFF}, {0xFF}, {0xFF}, {0xFF} + }, { // THIN + {0x02}, {0x0B}, {0xFF}, {0xFF}, {0xFF}, {0xFF} + }, { // BREAK + {0x0B}, {0x0B}, {0xFF}, {0xFF}, {0xFF}, {0xFF} + }, { // VORACIOUS + {0x02}, {0x0B}, {0xFF}, {0xFF}, {0xFF}, {0xFF} + }, { // SCATTER + {0x0B}, {0x11}, {0xFF}, {0xFF}, {0xFF}, {0xFF} + }, { // AWESOME + {0x11}, {0x0B}, {0xFF}, {0xFF}, {0xFF}, {0xFF} + }, { // WIMPY + {0x02}, {0x11}, {0x0B}, {0xFF}, {0xFF}, {0xFF} + }, { // WOBBLY + {0x11}, {0x0B}, {0xFF}, {0xFF}, {0xFF}, {0xFF} + }, { // SHAKY + {0x11}, {0x0B}, {0xFF}, {0xFF}, {0xFF}, {0xFF} + }, { // RIPPED + {0x02}, {0xFF}, {0xFF}, {0xFF}, {0xFF}, {0xFF} + }, { // SHREDDED + {0x0B}, {0xFF}, {0xFF}, {0xFF}, {0xFF}, {0xFF} + }, { // INCREASING + {0x29}, {0xFF}, {0xFF}, {0xFF}, {0xFF}, {0xFF} + }, { // YET + {0x0B}, {0x0B}, {0x0B}, {0xFF}, {0xFF}, {0xFF} + }, { // DESTROYED + {0x29}, {0x0B}, {0xFF}, {0xFF}, {0xFF}, {0xFF} + }, { // FIERY + {0x11}, {0x02}, {0x0B}, {0xFF}, {0xFF}, {0xFF} + }, { // LOVEY-DOVEY + {0x29}, {0x0B}, {0x11}, {0xFF}, {0xFF}, {0xFF} + }, { // HAPPILY + {0x0B}, {0x02}, {0x11}, {0xFF}, {0xFF}, {0xFF} + }, { // ANTICIPATION + {0x11}, {0x1A}, {0xFF}, {0xFF}, {0xFF}, {0xFF} + } +}; +#endif // ENGLISH/GERMAN + +#endif // GUARD_DATA_BARD_MUSIC_ADJECTIVES_H diff --git a/src/data/bard_music/bard_sounds.h b/src/data/bard_music/bard_sounds.h new file mode 100644 index 000000000..8fe9cc998 --- /dev/null +++ b/src/data/bard_music/bard_sounds.h @@ -0,0 +1,53 @@ +#ifndef GUARD_BARD_SOUNDS_TABLE_H +#define GUARD_BARD_SOUNDS_TABLE_H + +#define NULL_BARD_SOUND { 0xff } + +#include "pokemon.h" +#include "trainer.h" +#include "status.h" +#include "battle.h" +#include "greetings.h" +#include "people.h" +#include "voices.h" +#include "speech.h" +#include "endings.h" +#include "feelings.h" +#include "conditions.h" +#include "actions.h" +#include "lifestyle.h" +#include "hobbies.h" +#include "time.h" +#include "misc.h" +#include "adjectives.h" +#include "events.h" +#include "moves.h" +#include "trendysaying.h" +#include "pokemon_2.h" + +const struct BardSound (*const gBardSoundsTable[])[6] = { + gBardSounds_Pokemon, + gBardSounds_Trainer, + gBardSounds_Status, + gBardSounds_Battle, + gBardSounds_Greetings, + gBardSounds_People, + gBardSounds_Voices, + gBardSounds_Speech, + gBardSounds_Endings, + gBardSounds_Feelings, + gBardSounds_Conditions, + gBardSounds_Actions, + gBardSounds_Lifestyle, + gBardSounds_Hobbies, + gBardSounds_Time, + gBardSounds_Misc, + gBardSounds_Adjectives, + gBardSounds_Events, + gBardSounds_Moves1, + gBardSounds_Moves2, + gBardSounds_TrendySaying, + gBardSounds_Pokemon2 +}; + +#endif //GUARD_BARD_SOUNDS_TABLE_H
\ No newline at end of file diff --git a/src/data/bard_music/battle.h b/src/data/bard_music/battle.h new file mode 100644 index 000000000..0cf536d55 --- /dev/null +++ b/src/data/bard_music/battle.h @@ -0,0 +1,266 @@ +#ifndef GUARD_DATA_BARD_MUSIC_BATTLE_H +#define GUARD_DATA_BARD_MUSIC_BATTLE_H + +#if ENGLISH +const struct BardSound gBardSounds_Battle[][6] = { + { // MATCH UP + {0x02}, {0x2A}, {0x33}, {0xFF}, {0xFF}, {0xFF} + }, { // GO + {0x18}, {0x33}, {0x33}, {0xFF}, {0xFF}, {0xFF} + }, { // NO. 1 + {0x2A}, {0x30}, {0x2C}, {0xFF}, {0xFF}, {0xFF} + }, { // DECIDE + {0x0C}, {0x12}, {0x33}, {0xFF}, {0xFF}, {0xFF} + }, { // LET ME WIN + {0x09}, {0x0C}, {0x0F}, {0xFF}, {0xFF}, {0xFF} + }, { // WINS + {0x0F}, {0x33}, {0x33}, {0xFF}, {0xFF}, {0xFF} + }, { // WIN + {0x0F}, {0x33}, {0x33}, {0xFF}, {0xFF}, {0xFF} + }, { // WON + {0x17}, {0x33}, {0x33}, {0xFF}, {0xFF}, {0xFF} + }, { // IF I WIN + {0x0F}, {0x12}, {0x0F}, {0xFF}, {0xFF}, {0xFF} + }, { // WHEN I WIN + {0x0F}, {0x12}, {0x0F}, {0xFF}, {0xFF}, {0xFF} + }, { // CAN'T WIN + {0x02}, {0x0F}, {0x33}, {0xFF}, {0xFF}, {0xFF} + }, { // CAN WIN + {0x00}, {0x0F}, {0x33}, {0xFF}, {0xFF}, {0xFF} + }, { // NO MATCH + {0x18}, {0x00}, {0x33}, {0xFF}, {0xFF}, {0xFF} + }, { // SPIRIT + {0x09}, {0x11}, {0x33}, {0xFF}, {0xFF}, {0xFF} + }, { // DECIDED + {0x0C}, {0x12}, {0x0B}, {0xFF}, {0xFF}, {0xFF} + }, { // TRUMP CARD + {0x2C}, {0x08}, {0x33}, {0xFF}, {0xFF}, {0xFF} + }, { // TAKE THAT + {0x05}, {0x01}, {0x33}, {0xFF}, {0xFF}, {0xFF} + }, { // COME ON + {0x2C}, {0x17}, {0x33}, {0xFF}, {0xFF}, {0xFF} + }, { // ATTACK + {0x2A}, {0x02}, {0x33}, {0xFF}, {0xFF}, {0xFF} + }, { // SURRENDER + {0x30}, {0x09}, {0x30}, {0xFF}, {0xFF}, {0xFF} + }, { // GUTSY + {0x2C}, {0x33}, {0x33}, {0xFF}, {0xFF}, {0xFF} + }, { // TALENT + {0x01}, {0x0B}, {0x33}, {0xFF}, {0xFF}, {0xFF} + }, { // STRATEGY + {0x00}, {0x0B}, {0x0C}, {0xFF}, {0xFF}, {0xFF} + }, { // SMITE + {0x12}, {0x33}, {0x33}, {0xFF}, {0xFF}, {0xFF} + }, { // MATCH + {0x00}, {0x33}, {0x33}, {0xFF}, {0xFF}, {0xFF} + }, { // VICTORY + {0x11}, {0x32}, {0x0E}, {0xFF}, {0xFF}, {0xFF} + }, { // OFFENSIVE + {0x15}, {0x0B}, {0x11}, {0x33}, {0xFF}, {0xFF} + }, { // SENSE + {0x0B}, {0x33}, {0x33}, {0xFF}, {0xFF}, {0xFF} + }, { // VERSUS + {0x30}, {0x2C}, {0x33}, {0xFF}, {0xFF}, {0xFF} + }, { // FIGHTS + {0x12}, {0x33}, {0x33}, {0xFF}, {0xFF}, {0xFF} + }, { // POWER + {0x23}, {0x30}, {0x33}, {0xFF}, {0xFF}, {0xFF} + }, { // CHALLENGE + {0x01}, {0x0A}, {0x33}, {0xFF}, {0xFF}, {0xFF} + }, { // STRONG + {0x1B}, {0x33}, {0x33}, {0xFF}, {0xFF}, {0xFF} + }, { // TOO STRONG + {0x29}, {0x1D}, {0x33}, {0xFF}, {0xFF}, {0xFF} + }, { // GO EASY + {0x18}, {0x0C}, {0x0E}, {0xFF}, {0xFF}, {0xFF} + }, { // FOE + {0x1A}, {0x33}, {0x33}, {0xFF}, {0xFF}, {0xFF} + }, { // GENIUS + {0x0E}, {0x0E}, {0x2C}, {0xFF}, {0xFF}, {0xFF} + }, { // LEGEND + {0x09}, {0x09}, {0x33}, {0xFF}, {0xFF}, {0xFF} + }, { // ESCAPE + {0x09}, {0x05}, {0x33}, {0xFF}, {0xFF}, {0xFF} + }, { // AIM + {0x03}, {0x33}, {0x33}, {0xFF}, {0xFF}, {0xFF} + }, { // BATTLE + {0x00}, {0x26}, {0x33}, {0xFF}, {0xFF}, {0xFF} + }, { // FIGHT + {0x12}, {0x33}, {0x33}, {0xFF}, {0xFF}, {0xFF} + }, { // RESUSCITATE + {0x0C}, {0x09}, {0x11}, {0x05}, {0xFF}, {0xFF} + }, { // POINTS + {0x1E}, {0x33}, {0x33}, {0xFF}, {0xFF}, {0xFF} + }, { // SERIOUS + {0x0C}, {0x0E}, {0x2C}, {0xFF}, {0xFF}, {0xFF} + }, { // GIVE UP + {0x11}, {0x2C}, {0x33}, {0xFF}, {0xFF}, {0xFF} + }, { // LOSS + {0x17}, {0x33}, {0x33}, {0xFF}, {0xFF}, {0xFF} + }, { // IF I LOSE + {0x0F}, {0x12}, {0x27}, {0xFF}, {0xFF}, {0xFF} + }, { // LOST + {0x16}, {0x33}, {0x33}, {0xFF}, {0xFF}, {0xFF} + }, { // LOSE + {0x27}, {0x33}, {0x33}, {0xFF}, {0xFF}, {0xFF} + }, { // GUARD + {0x08}, {0x33}, {0x33}, {0xFF}, {0xFF}, {0xFF} + }, { // PARTNER + {0x15}, {0x32}, {0x33}, {0xFF}, {0xFF}, {0xFF} + }, { // REJECT + {0x0C}, {0x0B}, {0x33}, {0xFF}, {0xFF}, {0xFF} + }, { // ACCEPT + {0x00}, {0x0B}, {0x33}, {0xFF}, {0xFF}, {0xFF} + }, { // INVINCIBLE + {0x0F}, {0x11}, {0x2C}, {0x24}, {0xFF}, {0xFF} + }, { // RECEIVED + {0x0C}, {0x0E}, {0x33}, {0xFF}, {0xFF}, {0xFF} + }, { // EASY + {0x0C}, {0x0E}, {0x33}, {0xFF}, {0xFF}, {0xFF} + }, { // WEAK + {0x0C}, {0x33}, {0x33}, {0xFF}, {0xFF}, {0xFF} + }, { // TOO WEAK + {0x27}, {0x0E}, {0x33}, {0xFF}, {0xFF}, {0xFF} + }, { // PUSHOVER + {0x29}, {0x1A}, {0x30}, {0xFF}, {0xFF}, {0xFF} + }, { // LEADER + {0x0C}, {0x32}, {0x33}, {0xFF}, {0xFF}, {0xFF} + }, { // RULE + {0x26}, {0x33}, {0x33}, {0xFF}, {0xFF}, {0xFF} + }, { // MOVE + {0x29}, {0x33}, {0x33}, {0xFF}, {0xFF}, {0xFF} + } +}; +#elif GERMAN +const struct BardSound gBardSounds_Battle[][6] = { + { // MATCH UP + {0x02}, {0x1A}, {0x11}, {0x0B}, {0xFF}, {0xFF} + }, { // GO + {0x1A}, {0xFF}, {0xFF}, {0xFF}, {0xFF}, {0xFF} + }, { // NO. 1 + {0x29}, {0x0B}, {0x0B}, {0x11}, {0xFF}, {0xFF} + }, { // DECIDE + {0x0B}, {0x0B}, {0x11}, {0x0B}, {0xFF}, {0xFF} + }, { // LET ME WIN + {0x11}, {0x11}, {0x0B}, {0xFF}, {0xFF}, {0xFF} + }, { // WINS + {0x0B}, {0x11}, {0x0B}, {0xFF}, {0xFF}, {0xFF} + }, { // WIN + {0x0B}, {0x11}, {0x0B}, {0xFF}, {0xFF}, {0xFF} + }, { // WON + {0x0B}, {0x1A}, {0x0B}, {0xFF}, {0xFF}, {0xFF} + }, { // IF I WIN + {0x0B}, {0x11}, {0x0B}, {0x11}, {0xFF}, {0xFF} + }, { // WHEN I WIN + {0x11}, {0x0B}, {0x0B}, {0x11}, {0xFF}, {0xFF} + }, { // CAN'T WIN + {0x11}, {0x0B}, {0x29}, {0x0B}, {0x11}, {0xFF} + }, { // CAN WIN + {0x02}, {0x11}, {0x0B}, {0xFF}, {0xFF}, {0xFF} + }, { // NO MATCH + {0x29}, {0x0B}, {0x0B}, {0x0B}, {0xFF}, {0xFF} + }, { // SPIRIT + {0x0B}, {0x0B}, {0x0B}, {0xFF}, {0xFF}, {0xFF} + }, { // DECIDED + {0x0B}, {0x11}, {0x0B}, {0xFF}, {0xFF}, {0xFF} + }, { // TRUMP CARD + {0x29}, {0x02}, {0x0B}, {0xFF}, {0xFF}, {0xFF} + }, { // TAKE THAT + {0x11}, {0x02}, {0xFF}, {0xFF}, {0xFF}, {0xFF} + }, { // COME ON + {0x1A}, {0x1A}, {0xFF}, {0xFF}, {0xFF}, {0xFF} + }, { // ATTACK + {0x02}, {0x11}, {0xFF}, {0xFF}, {0xFF}, {0xFF} + }, { // SURRENDER + {0x0B}, {0x0B}, {0x0B}, {0xFF}, {0xFF}, {0xFF} + }, { // GUTSY + {0x02}, {0x0B}, {0x02}, {0x11}, {0xFF}, {0xFF} + }, { // TALENT + {0x02}, {0x0B}, {0x11}, {0xFF}, {0xFF}, {0xFF} + }, { // STRATEGY + {0x02}, {0x0B}, {0x11}, {0xFF}, {0xFF}, {0xFF} + }, { // SMITE + {0x02}, {0x0B}, {0xFF}, {0xFF}, {0xFF}, {0xFF} + }, { // MATCH + {0x02}, {0x11}, {0xFF}, {0xFF}, {0xFF}, {0xFF} + }, { // VICTORY + {0x11}, {0xFF}, {0xFF}, {0xFF}, {0xFF}, {0xFF} + }, { // OFFENSIVE + {0x1A}, {0x0B}, {0x11}, {0xFF}, {0xFF}, {0xFF} + }, { // SENSE + {0x11}, {0xFF}, {0xFF}, {0xFF}, {0xFF}, {0xFF} + }, { // VERSUS + {0x0B}, {0x0B}, {0xFF}, {0xFF}, {0xFF}, {0xFF} + }, { // FIGHTS + {0x0B}, {0x11}, {0x0B}, {0xFF}, {0xFF}, {0xFF} + }, { // POWER + {0x02}, {0xFF}, {0xFF}, {0xFF}, {0xFF}, {0xFF} + }, { // CHALLENGE + {0x0B}, {0x02}, {0x29}, {0x1A}, {0x0B}, {0x29} + }, { // STRONG + {0x02}, {0x0B}, {0xFF}, {0xFF}, {0xFF}, {0xFF} + }, { // TOO STRONG + {0x29}, {0x02}, {0xFF}, {0xFF}, {0xFF}, {0xFF} + }, { // GO EASY + {0x1A}, {0x0B}, {0xFF}, {0xFF}, {0xFF}, {0xFF} + }, { // FOE + {0x0B}, {0x0B}, {0xFF}, {0xFF}, {0xFF}, {0xFF} + }, { // GENIUS + {0x0B}, {0x11}, {0xFF}, {0xFF}, {0xFF}, {0xFF} + }, { // LEGEND + {0x0B}, {0x0B}, {0x0B}, {0xFF}, {0xFF}, {0xFF} + }, { // ESCAPE + {0x29}, {0xFF}, {0xFF}, {0xFF}, {0xFF}, {0xFF} + }, { // AIM + {0x11}, {0xFF}, {0xFF}, {0xFF}, {0xFF}, {0xFF} + }, { // BATTLE + {0x0B}, {0x0B}, {0xFF}, {0xFF}, {0xFF}, {0xFF} + }, { // FIGHT + {0x0B}, {0x0B}, {0xFF}, {0xFF}, {0xFF}, {0xFF} + }, { // RESUSCITATE + {0x0B}, {0x0B}, {0x0B}, {0xFF}, {0xFF}, {0xFF} + }, { // POINTS + {0x29}, {0x0B}, {0xFF}, {0xFF}, {0xFF}, {0xFF} + }, { // SERIOUS + {0x0B}, {0x02}, {0xFF}, {0xFF}, {0xFF}, {0xFF} + }, { // GIVE UP + {0x02}, {0x0B}, {0x0B}, {0xFF}, {0xFF}, {0xFF} + }, { // LOSS + {0x0B}, {0x29}, {0xFF}, {0xFF}, {0xFF}, {0xFF} + }, { // IF I LOSE + {0x0B}, {0x11}, {0x0B}, {0x11}, {0xFF}, {0xFF} + }, { // LOST + {0x0B}, {0x1A}, {0xFF}, {0xFF}, {0xFF}, {0xFF} + }, { // LOSE + {0x0B}, {0x11}, {0x0B}, {0xFF}, {0xFF}, {0xFF} + }, { // GUARD + {0x02}, {0x0B}, {0xFF}, {0xFF}, {0xFF}, {0xFF} + }, { // PARTNER + {0x02}, {0x0B}, {0xFF}, {0xFF}, {0xFF}, {0xFF} + }, { // REJECT + {0x02}, {0x0B}, {0x0B}, {0xFF}, {0xFF}, {0xFF} + }, { // ACCEPT + {0x02}, {0x0B}, {0x11}, {0x0B}, {0xFF}, {0xFF} + }, { // INVINCIBLE + {0x29}, {0x02}, {0x02}, {0xFF}, {0xFF}, {0xFF} + }, { // RECEIVED + {0x0B}, {0x02}, {0x0B}, {0xFF}, {0xFF}, {0xFF} + }, { // EASY + {0x0B}, {0x11}, {0xFF}, {0xFF}, {0xFF}, {0xFF} + }, { // WEAK + {0x02}, {0xFF}, {0xFF}, {0xFF}, {0xFF}, {0xFF} + }, { // TOO WEAK + {0x29}, {0x02}, {0xFF}, {0xFF}, {0xFF}, {0xFF} + }, { // PUSHOVER + {0x02}, {0x02}, {0x11}, {0xFF}, {0xFF}, {0xFF} + }, { // LEADER + {0x0B}, {0x11}, {0x0B}, {0xFF}, {0xFF}, {0xFF} + }, { // RULE + {0x0B}, {0x0B}, {0xFF}, {0xFF}, {0xFF}, {0xFF} + }, { // MOVE + {0x02}, {0x02}, {0x0B}, {0xFF}, {0xFF}, {0xFF} + } +}; +#endif // ENGLISH/GERMAN + +#endif // GUARD_DATA_BARD_MUSIC_BATTLE_H diff --git a/src/data/bard_music/conditions.h b/src/data/bard_music/conditions.h new file mode 100644 index 000000000..64e4fa904 --- /dev/null +++ b/src/data/bard_music/conditions.h @@ -0,0 +1,290 @@ +#ifndef GUARD_DATA_BARD_MUSIC_CONDITIONS_H +#define GUARD_DATA_BARD_MUSIC_CONDITIONS_H + +#if ENGLISH +const struct BardSound gBardSounds_Conditions[][6] = { + { // HOT + {0x15}, {0x33}, {0x33}, {0xFF}, {0xFF}, {0xFF} + }, { // EXISTS + {0x0B}, {0x11}, {0x33}, {0xFF}, {0xFF}, {0xFF} + }, { // EXCESS + {0x0B}, {0x0B}, {0x33}, {0xFF}, {0xFF}, {0xFF} + }, { // APPROVED + {0x06}, {0x29}, {0x33}, {0xFF}, {0xFF}, {0xFF} + }, { // HAS + {0x01}, {0x33}, {0x33}, {0xFF}, {0xFF}, {0xFF} + }, { // GOOD + {0x26}, {0x33}, {0x33}, {0xFF}, {0xFF}, {0xFF} + }, { // LESS + {0x0B}, {0x33}, {0x33}, {0xFF}, {0xFF}, {0xFF} + }, { // MOMENTUM + {0x1A}, {0x0B}, {0x2C}, {0x33}, {0xFF}, {0xFF} + }, { // GOING + {0x1A}, {0x11}, {0x33}, {0xFF}, {0xFF}, {0xFF} + }, { // WEIRD + {0x18}, {0x30}, {0x33}, {0xFF}, {0xFF}, {0xFF} + }, { // BUSY + {0x11}, {0x0E}, {0x33}, {0xFF}, {0xFF}, {0xFF} + }, { // TOGETHER + {0x29}, {0x0A}, {0x32}, {0xFF}, {0xFF}, {0xFF} + }, { // FULL + {0x26}, {0x33}, {0x33}, {0xFF}, {0xFF}, {0xFF} + }, { // ABSENT + {0x02}, {0x0B}, {0x33}, {0xFF}, {0xFF}, {0xFF} + }, { // BEING + {0x0F}, {0x12}, {0x33}, {0xFF}, {0xFF}, {0xFF} + }, { // NEED + {0x0E}, {0x33}, {0x33}, {0xFF}, {0xFF}, {0xFF} + }, { // TASTY + {0x05}, {0x0E}, {0x33}, {0xFF}, {0xFF}, {0xFF} + }, { // SKILLED + {0x11}, {0x0B}, {0x33}, {0xFF}, {0xFF}, {0xFF} + }, { // NOISY + {0x20}, {0x0E}, {0x33}, {0xFF}, {0xFF}, {0xFF} + }, { // BIG + {0x11}, {0x33}, {0x33}, {0xFF}, {0xFF}, {0xFF} + }, { // LATE + {0x05}, {0x33}, {0x33}, {0xFF}, {0xFF}, {0xFF} + }, { // CLOSE + {0x19}, {0x33}, {0x33}, {0xFF}, {0xFF}, {0xFF} + }, { // DOCILE + {0x17}, {0x14}, {0x33}, {0xFF}, {0xFF}, {0xFF} + }, { // AMUSING + {0x2C}, {0x27}, {0x11}, {0xFF}, {0xFF}, {0xFF} + }, { // ENTERTAINING + {0x09}, {0x30}, {0x03}, {0x11}, {0x33}, {0xFF} + }, { // PERFECTION + {0x32}, {0x0B}, {0x2C}, {0x33}, {0xFF}, {0xFF} + }, { // PRETTY + {0x11}, {0x0E}, {0x33}, {0xFF}, {0xFF}, {0xFF} + }, { // HEALTHY + {0x0A}, {0x0E}, {0x33}, {0xFF}, {0xFF}, {0xFF} + }, { // EXCELLENT + {0x09}, {0x2C}, {0x0B}, {0xFF}, {0xFF}, {0xFF} + }, { // UPSIDE DOWN + {0x2C}, {0x14}, {0x23}, {0xFF}, {0xFF}, {0xFF} + }, { // COLD + {0x18}, {0x33}, {0x33}, {0xFF}, {0xFF}, {0xFF} + }, { // REFRESHING + {0x0E}, {0x0A}, {0x11}, {0xFF}, {0xFF}, {0xFF} + }, { // UNAVOIDABLE + {0x2C}, {0x2A}, {0x1E}, {0x2C}, {0x26}, {0xFF} + }, { // MUCH + {0x2C}, {0x33}, {0x33}, {0xFF}, {0xFF}, {0xFF} + }, { // OVERWHELMING + {0x1A}, {0x32}, {0x0B}, {0x11}, {0x33}, {0xFF} + }, { // FABULOUS + {0x00}, {0x27}, {0x2C}, {0xFF}, {0xFF}, {0xFF} + }, { // ELSE + {0x0A}, {0x33}, {0x33}, {0xFF}, {0xFF}, {0xFF} + }, { // EXPENSIVE + {0x09}, {0x0A}, {0x11}, {0xFF}, {0xFF}, {0xFF} + }, { // CORRECT + {0x1A}, {0x0B}, {0x33}, {0xFF}, {0xFF}, {0xFF} + }, { // IMPOSSIBLE + {0x0F}, {0x1D}, {0x2A}, {0x26}, {0xFF}, {0xFF} + }, { // SMALL + {0x1D}, {0x33}, {0x33}, {0xFF}, {0xFF}, {0xFF} + }, { // DIFFERENT + {0x11}, {0x30}, {0x0B}, {0xFF}, {0xFF}, {0xFF} + }, { // TIRED + {0x14}, {0x32}, {0x33}, {0xFF}, {0xFF}, {0xFF} + }, { // SKILL + {0x11}, {0x33}, {0x33}, {0xFF}, {0xFF}, {0xFF} + }, { // TOP + {0x17}, {0x33}, {0x33}, {0xFF}, {0xFF}, {0xFF} + }, { // NON-STOP + {0x17}, {0x16}, {0x33}, {0xFF}, {0xFF}, {0xFF} + }, { // PREPOSTEROUS + {0x2A}, {0x16}, {0x32}, {0x2C}, {0x33}, {0xFF} + }, { // NONE + {0x2C}, {0x33}, {0x33}, {0xFF}, {0xFF}, {0xFF} + }, { // NOTHING + {0x2C}, {0x11}, {0x33}, {0xFF}, {0xFF}, {0xFF} + }, { // NATURAL + {0x02}, {0x32}, {0x26}, {0xFF}, {0xFF}, {0xFF} + }, { // BECOMES + {0x0E}, {0x2C}, {0x33}, {0xFF}, {0xFF}, {0xFF} + }, { // LUKEWARM + {0x29}, {0x1C}, {0x33}, {0xFF}, {0xFF}, {0xFF} + }, { // FAST + {0x02}, {0x33}, {0x33}, {0xFF}, {0xFF}, {0xFF} + }, { // LOW + {0x1A}, {0x33}, {0x33}, {0xFF}, {0xFF}, {0xFF} + }, { // AWFUL + {0x08}, {0x26}, {0x33}, {0xFF}, {0xFF}, {0xFF} + }, { // ALONE + {0x2C}, {0x18}, {0x33}, {0xFF}, {0xFF}, {0xFF} + }, { // BORED + {0x1A}, {0x2A}, {0x33}, {0xFF}, {0xFF}, {0xFF} + }, { // SECRET + {0x0E}, {0x0B}, {0x33}, {0xFF}, {0xFF}, {0xFF} + }, { // MYSTERY + {0x11}, {0x30}, {0x0E}, {0xFF}, {0xFF}, {0xFF} + }, { // LACKS + {0x02}, {0x33}, {0x33}, {0xFF}, {0xFF}, {0xFF} + }, { // BEST + {0x0B}, {0x33}, {0x33}, {0xFF}, {0xFF}, {0xFF} + }, { // LOUSY + {0x21}, {0x0E}, {0x33}, {0xFF}, {0xFF}, {0xFF} + }, { // MISTAKE + {0x11}, {0x05}, {0x33}, {0xFF}, {0xFF}, {0xFF} + }, { // KIND + {0x12}, {0x33}, {0x33}, {0xFF}, {0xFF}, {0xFF} + }, { // WELL + {0x0B}, {0x33}, {0x33}, {0xFF}, {0xFF}, {0xFF} + }, { // WEAKENED + {0x0E}, {0x0B}, {0xFF}, {0xFF}, {0xFF}, {0xFF} + }, { // SIMPLE + {0x0F}, {0x26}, {0x33}, {0xFF}, {0xFF}, {0xFF} + }, { // SEEMS + {0x0D}, {0x33}, {0x33}, {0xFF}, {0xFF}, {0xFF} + }, { // BADLY + {0x00}, {0x0C}, {0x33}, {0xFF}, {0xFF}, {0xFF} + } +}; +#elif GERMAN +const struct BardSound gBardSounds_Conditions[][6] = { + { // HOT + {0x0B}, {0x11}, {0xFF}, {0xFF}, {0xFF}, {0xFF} + }, { // EXISTS + {0x0B}, {0x11}, {0x11}, {0xFF}, {0xFF}, {0xFF} + }, { // EXCESS + {0x11}, {0x0B}, {0x0B}, {0x11}, {0xFF}, {0xFF} + }, { // APPROVED + {0x0B}, {0x0B}, {0x11}, {0xFF}, {0xFF}, {0xFF} + }, { // HAS + {0x02}, {0xFF}, {0xFF}, {0xFF}, {0xFF}, {0xFF} + }, { // GOOD + {0x0B}, {0x11}, {0xFF}, {0xFF}, {0xFF}, {0xFF} + }, { // LESS + {0x0B}, {0x11}, {0x0B}, {0xFF}, {0xFF}, {0xFF} + }, { // MOMENTUM + {0x29}, {0xFF}, {0xFF}, {0xFF}, {0xFF}, {0xFF} + }, { // GOING + {0x0B}, {0x0B}, {0xFF}, {0xFF}, {0xFF}, {0xFF} + }, { // WEIRD + {0x0B}, {0x11}, {0xFF}, {0xFF}, {0xFF}, {0xFF} + }, { // BUSY + {0x0B}, {0x0B}, {0x11}, {0xFF}, {0xFF}, {0xFF} + }, { // TOGETHER + {0x29}, {0x02}, {0x0B}, {0xFF}, {0xFF}, {0xFF} + }, { // FULL + {0x1A}, {0xFF}, {0xFF}, {0xFF}, {0xFF}, {0xFF} + }, { // ABSENT + {0x02}, {0x0B}, {0x0B}, {0xFF}, {0xFF}, {0xFF} + }, { // BEING + {0x0B}, {0x11}, {0x0B}, {0xFF}, {0xFF}, {0xFF} + }, { // NEED + {0x02}, {0x29}, {0x0B}, {0xFF}, {0xFF}, {0xFF} + }, { // TASTY + {0x0B}, {0x0B}, {0xFF}, {0xFF}, {0xFF}, {0xFF} + }, { // SKILLED + {0x0B}, {0x11}, {0xFF}, {0xFF}, {0xFF}, {0xFF} + }, { // NOISY + {0x02}, {0x29}, {0xFF}, {0xFF}, {0xFF}, {0xFF} + }, { // BIG + {0x1A}, {0xFF}, {0xFF}, {0xFF}, {0xFF}, {0xFF} + }, { // LATE + {0x0B}, {0xFF}, {0xFF}, {0xFF}, {0xFF}, {0xFF} + }, { // CLOSE + {0x02}, {0x0B}, {0x0B}, {0x11}, {0xFF}, {0xFF} + }, { // DOCILE + {0x02}, {0x11}, {0x11}, {0xFF}, {0xFF}, {0xFF} + }, { // AMUSING + {0x02}, {0x11}, {0x02}, {0xFF}, {0xFF}, {0xFF} + }, { // ENTERTAINING + {0x29}, {0x0B}, {0x02}, {0x02}, {0xFF}, {0xFF} + }, { // PERFECTION + {0x0B}, {0x0B}, {0x11}, {0x1A}, {0xFF}, {0xFF} + }, { // PRETTY + {0x11}, {0xFF}, {0xFF}, {0xFF}, {0xFF}, {0xFF} + }, { // HEALTHY + {0x0B}, {0x29}, {0xFF}, {0xFF}, {0xFF}, {0xFF} + }, { // EXCELLENT + {0x0B}, {0x0B}, {0x0B}, {0xFF}, {0xFF}, {0xFF} + }, { // UPSIDE DOWN + {0x29}, {0x0B}, {0x0B}, {0xFF}, {0xFF}, {0xFF} + }, { // COLD + {0x02}, {0xFF}, {0xFF}, {0xFF}, {0xFF}, {0xFF} + }, { // REFRESHING + {0x0B}, {0x11}, {0x0B}, {0xFF}, {0xFF}, {0xFF} + }, { // UNAVOIDABLE + {0x29}, {0x0B}, {0x0B}, {0x11}, {0x02}, {0xFF} + }, { // MUCH + {0x11}, {0x0B}, {0x0B}, {0xFF}, {0xFF}, {0xFF} + }, { // OVERWHELMING + {0x11}, {0x0B}, {0x11}, {0x0B}, {0xFF}, {0xFF} + }, { // FABULOUS + {0x02}, {0x0B}, {0x02}, {0xFF}, {0xFF}, {0xFF} + }, { // ELSE + {0x02}, {0x0B}, {0x0B}, {0xFF}, {0xFF}, {0xFF} + }, { // EXPENSIVE + {0x0B}, {0x29}, {0x0B}, {0xFF}, {0xFF}, {0xFF} + }, { // CORRECT + {0x11}, {0x11}, {0xFF}, {0xFF}, {0xFF}, {0xFF} + }, { // IMPOSSIBLE + {0x29}, {0x0B}, {0x11}, {0xFF}, {0xFF}, {0xFF} + }, { // SMALL + {0x0B}, {0x11}, {0xFF}, {0xFF}, {0xFF}, {0xFF} + }, { // DIFFERENT + {0x0B}, {0x11}, {0x0B}, {0x0B}, {0xFF}, {0xFF} + }, { // TIRED + {0x11}, {0x0B}, {0xFF}, {0xFF}, {0xFF}, {0xFF} + }, { // SKILL + {0x0B}, {0x11}, {0xFF}, {0xFF}, {0xFF}, {0xFF} + }, { // TOP + {0x1A}, {0xFF}, {0xFF}, {0xFF}, {0xFF}, {0xFF} + }, { // NON-STOP + {0x1A}, {0x1A}, {0xFF}, {0xFF}, {0xFF}, {0xFF} + }, { // PREPOSTEROUS + {0x02}, {0x29}, {0xFF}, {0xFF}, {0xFF}, {0xFF} + }, { // NONE + {0x0B}, {0x11}, {0xFF}, {0xFF}, {0xFF}, {0xFF} + }, { // NOTHING + {0x11}, {0xFF}, {0xFF}, {0xFF}, {0xFF}, {0xFF} + }, { // NATURAL + {0x02}, {0x11}, {0x11}, {0xFF}, {0xFF}, {0xFF} + }, { // BECOMES + {0x11}, {0xFF}, {0xFF}, {0xFF}, {0xFF}, {0xFF} + }, { // LUKEWARM + {0x02}, {0x29}, {0x02}, {0xFF}, {0xFF}, {0xFF} + }, { // FAST + {0x0B}, {0xFF}, {0xFF}, {0xFF}, {0xFF}, {0xFF} + }, { // LOW + {0x11}, {0x11}, {0xFF}, {0xFF}, {0xFF}, {0xFF} + }, { // AWFUL + {0x11}, {0xFF}, {0xFF}, {0xFF}, {0xFF}, {0xFF} + }, { // ALONE + {0x02}, {0x0B}, {0x11}, {0x0B}, {0xFF}, {0xFF} + }, { // BORED + {0x0B}, {0x02}, {0x0B}, {0x11}, {0xFF}, {0xFF} + }, { // SECRET + {0x0B}, {0x0B}, {0x11}, {0x11}, {0xFF}, {0xFF} + }, { // MYSTERY + {0x0B}, {0x0B}, {0x11}, {0xFF}, {0xFF}, {0xFF} + }, { // LACKS + {0x0B}, {0xFF}, {0xFF}, {0xFF}, {0xFF}, {0xFF} + }, { // BEST + {0x0B}, {0x0B}, {0xFF}, {0xFF}, {0xFF}, {0xFF} + }, { // LOUSY + {0x02}, {0x29}, {0x11}, {0xFF}, {0xFF}, {0xFF} + }, { // MISTAKE + {0x0B}, {0x0B}, {0xFF}, {0xFF}, {0xFF}, {0xFF} + }, { // KIND + {0x0B}, {0x11}, {0xFF}, {0xFF}, {0xFF}, {0xFF} + }, { // WELL + {0x0B}, {0xFF}, {0xFF}, {0xFF}, {0xFF}, {0xFF} + }, { // WEAKENED + {0x0B}, {0x0B}, {0xFF}, {0xFF}, {0xFF}, {0xFF} + }, { // SIMPLE + {0x0B}, {0x02}, {0xFF}, {0xFF}, {0xFF}, {0xFF} + }, { // SEEMS + {0x0B}, {0x02}, {0xFF}, {0xFF}, {0xFF}, {0xFF} + }, { // BADLY + {0x11}, {0xFF}, {0xFF}, {0xFF}, {0xFF}, {0xFF} + } +}; +#endif // ENGLISH/GERMAN + +#endif // GUARD_DATA_BARD_MUSIC_CONDITIONS_H diff --git a/src/data/bard_music/endings.h b/src/data/bard_music/endings.h new file mode 100644 index 000000000..640eaa7ae --- /dev/null +++ b/src/data/bard_music/endings.h @@ -0,0 +1,290 @@ +#ifndef GUARD_DATA_BARD_MUSIC_ENDINGS_H +#define GUARD_DATA_BARD_MUSIC_ENDINGS_H + +#if ENGLISH +const struct BardSound gBardSounds_Endings[][6] = { + { // WILL + {0x10}, {0x33}, {0x33}, {0xFF}, {0xFF}, {0xFF} + }, { // WILL BE HERE + {0x10}, {0x0C}, {0x30}, {0xFF}, {0xFF}, {0xFF} + }, { // OR + {0x1A}, {0x33}, {0x33}, {0xFF}, {0xFF}, {0xFF} + }, { // TIMES + {0x14}, {0x33}, {0x33}, {0xFF}, {0xFF}, {0xFF} + }, { // WONDER + {0x2C}, {0x32}, {0x33}, {0xFF}, {0xFF}, {0xFF} + }, { // IS IT? + {0x11}, {0x09}, {0x33}, {0xFF}, {0xFF}, {0xFF} + }, { // BE + {0x0E}, {0x33}, {0x33}, {0xFF}, {0xFF}, {0xFF} + }, { // GIMME + {0x11}, {0x0E}, {0x33}, {0xFF}, {0xFF}, {0xFF} + }, { // COULD + {0x26}, {0x33}, {0x33}, {0xFF}, {0xFF}, {0xFF} + }, { // LIKELY TO + {0x14}, {0x0E}, {0x27}, {0x33}, {0xFF}, {0xFF} + }, { // WOULD + {0x26}, {0x33}, {0x33}, {0xFF}, {0xFF}, {0xFF} + }, { // IS + {0x10}, {0x33}, {0x33}, {0xFF}, {0xFF}, {0xFF} + }, { // ISN'T IT? + {0x11}, {0x09}, {0x11}, {0xFF}, {0xFF}, {0xFF} + }, { // LET'S + {0x0B}, {0xFF}, {0x33}, {0xFF}, {0xFF}, {0xFF} + }, { // OTHER + {0x2C}, {0x32}, {0x33}, {0xFF}, {0xFF}, {0xFF} + }, { // ARE + {0x1C}, {0x33}, {0x33}, {0xFF}, {0xFF}, {0xFF} + }, { // WAS + {0x2C}, {0x33}, {0x33}, {0xFF}, {0xFF}, {0xFF} + }, { // WERE + {0x32}, {0x33}, {0x33}, {0xFF}, {0xFF}, {0xFF} + }, { // THOSE + {0x18}, {0x33}, {0x33}, {0xFF}, {0xFF}, {0xFF} + }, { // ISN'T + {0x0F}, {0x09}, {0x33}, {0xFF}, {0xFF}, {0xFF} + }, { // WON'T + {0x1A}, {0x33}, {0x33}, {0xFF}, {0xFF}, {0xFF} + }, { // CAN'T + {0x00}, {0x33}, {0x33}, {0xFF}, {0xFF}, {0xFF} + }, { // CAN + {0x00}, {0x33}, {0x33}, {0xFF}, {0xFF}, {0xFF} + }, { // DON'T + {0x1A}, {0x33}, {0x33}, {0xFF}, {0xFF}, {0xFF} + }, { // DO + {0x27}, {0xFF}, {0x33}, {0xFF}, {0xFF}, {0xFF} + }, { // DOES + {0x2C}, {0x33}, {0x33}, {0xFF}, {0xFF}, {0xFF} + }, { // WHOM + {0x27}, {0x33}, {0x33}, {0xFF}, {0xFF}, {0xFF} + }, { // WHICH + {0x11}, {0x33}, {0x33}, {0xFF}, {0xFF}, {0xFF} + }, { // WASN'T + {0x2C}, {0x0F}, {0x33}, {0xFF}, {0xFF}, {0xFF} + }, { // WEREN'T + {0x32}, {0x0F}, {0x33}, {0xFF}, {0xFF}, {0xFF} + }, { // HAVE + {0x00}, {0x33}, {0x33}, {0xFF}, {0xFF}, {0xFF} + }, { // HAVEN'T + {0x00}, {0x0F}, {0x33}, {0xFF}, {0xFF}, {0xFF} + }, { // A + {0x03}, {0x33}, {0x33}, {0xFF}, {0xFF}, {0xFF} + }, { // AN + {0x02}, {0x33}, {0x33}, {0xFF}, {0xFF}, {0xFF} + }, { // NOT + {0x17}, {0x33}, {0x33}, {0xFF}, {0xFF}, {0xFF} + }, { // THERE + {0x0B}, {0x32}, {0x33}, {0xFF}, {0xFF}, {0xFF} + }, { // OK? + {0x1A}, {0x04}, {0x33}, {0xFF}, {0xFF}, {0xFF} + }, { // SO + {0x1A}, {0x33}, {0x33}, {0xFF}, {0xFF}, {0xFF} + }, { // MAYBE + {0x03}, {0x0E}, {0x33}, {0xFF}, {0xFF}, {0xFF} + }, { // ABOUT + {0x2A}, {0x23}, {0x33}, {0xFF}, {0xFF}, {0xFF} + }, { // OVER + {0x18}, {0x32}, {0x33}, {0xFF}, {0xFF}, {0xFF} + }, { // IT + {0x11}, {0x33}, {0x33}, {0xFF}, {0xFF}, {0xFF} + }, { // ALL + {0x06}, {0x33}, {0x33}, {0xFF}, {0xFF}, {0xFF} + }, { // FOR + {0x26}, {0x33}, {0x33}, {0xFF}, {0xFF}, {0xFF} + }, { // ON + {0x1C}, {0x33}, {0x33}, {0xFF}, {0xFF}, {0xFF} + }, { // OFF + {0x1D}, {0xFF}, {0x33}, {0xFF}, {0xFF}, {0xFF} + }, { // AS + {0x01}, {0x33}, {0x33}, {0xFF}, {0xFF}, {0xFF} + }, { // TO + {0x27}, {0x33}, {0x33}, {0xFF}, {0xFF}, {0xFF} + }, { // WITH + {0x11}, {0x33}, {0x33}, {0xFF}, {0xFF}, {0xFF} + }, { // BETTER + {0x09}, {0x32}, {0x33}, {0xFF}, {0xFF}, {0xFF} + }, { // EVER + {0x09}, {0x32}, {0x33}, {0xFF}, {0xFF}, {0xFF} + }, { // SINCE + {0x0F}, {0x33}, {0x33}, {0xFF}, {0xFF}, {0xFF} + }, { // OF + {0x2A}, {0x33}, {0x33}, {0xFF}, {0xFF}, {0xFF} + }, { // BELONGS TO + {0x27}, {0x33}, {0x33}, {0xFF}, {0xFF}, {0xFF} + }, { // AT + {0x02}, {0x33}, {0x33}, {0xFF}, {0xFF}, {0xFF} + }, { // IN + {0x0F}, {0x33}, {0x33}, {0xFF}, {0xFF}, {0xFF} + }, { // OUT + {0x21}, {0xFF}, {0x33}, {0xFF}, {0xFF}, {0xFF} + }, { // TOO + {0x27}, {0x33}, {0x33}, {0xFF}, {0xFF}, {0xFF} + }, { // LIKE + {0x14}, {0x33}, {0x33}, {0xFF}, {0xFF}, {0xFF} + }, { // DID + {0x11}, {0x33}, {0x33}, {0xFF}, {0xFF}, {0xFF} + }, { // DIDN'T + {0x11}, {0x0F}, {0x33}, {0xFF}, {0xFF}, {0xFF} + }, { // DOESN'T + {0x2C}, {0x0F}, {0x33}, {0xFF}, {0xFF}, {0xFF} + }, { // WITHOUT + {0x11}, {0x23}, {0xFF}, {0xFF}, {0xFF}, {0xFF} + }, { // AFTER + {0x00}, {0x32}, {0x33}, {0xFF}, {0xFF}, {0xFF} + }, { // BEFORE + {0x0C}, {0x26}, {0x33}, {0xFF}, {0xFF}, {0xFF} + }, { // WHILE + {0x14}, {0x33}, {0x33}, {0xFF}, {0xFF}, {0xFF} + }, { // THAN + {0x02}, {0x33}, {0x33}, {0xFF}, {0xFF}, {0xFF} + }, { // ONCE + {0x2C}, {0x33}, {0x33}, {0xFF}, {0xFF}, {0xFF} + }, { // ANYWHERE + {0x0E}, {0x33}, {0x33}, {0xFF}, {0xFF}, {0xFF} + } +}; +#elif GERMAN +const struct BardSound gBardSounds_Endings[][6] = { + { // WILL + {0x0B}, {0x0B}, {0xFF}, {0xFF}, {0xFF}, {0xFF} + }, { // WILL BE HERE + {0x11}, {0x02}, {0x0B}, {0x11}, {0xFF}, {0xFF} + }, { // OR + {0x1A}, {0x0B}, {0xFF}, {0xFF}, {0xFF}, {0xFF} + }, { // TIMES + {0x0B}, {0x11}, {0x0B}, {0xFF}, {0xFF}, {0xFF} + }, { // WONDER + {0x29}, {0x0B}, {0xFF}, {0xFF}, {0xFF}, {0xFF} + }, { // IS IT? + {0x0B}, {0x11}, {0xFF}, {0xFF}, {0xFF}, {0xFF} + }, { // BE + {0x0B}, {0x11}, {0xFF}, {0xFF}, {0xFF}, {0xFF} + }, { // GIMME + {0x11}, {0x11}, {0xFF}, {0xFF}, {0xFF}, {0xFF} + }, { // COULD + {0x0B}, {0x0B}, {0xFF}, {0xFF}, {0xFF}, {0xFF} + }, { // LIKELY TO + {0x0B}, {0x29}, {0x11}, {0xFF}, {0xFF}, {0xFF} + }, { // WOULD + {0x11}, {0x0B}, {0xFF}, {0xFF}, {0xFF}, {0xFF} + }, { // IS + {0x11}, {0xFF}, {0xFF}, {0xFF}, {0xFF}, {0xFF} + }, { // ISN'T IT? + {0x11}, {0x02}, {0xFF}, {0xFF}, {0xFF}, {0xFF} + }, { // LET'S + {0x02}, {0x29}, {0xFF}, {0xFF}, {0xFF}, {0xFF} + }, { // OTHER + {0x02}, {0x0B}, {0x0B}, {0xFF}, {0xFF}, {0xFF} + }, { // ARE + {0x11}, {0xFF}, {0xFF}, {0xFF}, {0xFF}, {0xFF} + }, { // WAS + {0x02}, {0xFF}, {0xFF}, {0xFF}, {0xFF}, {0xFF} + }, { // WERE + {0x29}, {0x0B}, {0xFF}, {0xFF}, {0xFF}, {0xFF} + }, { // THOSE + {0x11}, {0xFF}, {0xFF}, {0xFF}, {0xFF}, {0xFF} + }, { // ISN'T + {0x11}, {0x0B}, {0x11}, {0xFF}, {0xFF}, {0xFF} + }, { // WON'T + {0x0B}, {0x0B}, {0x11}, {0xFF}, {0xFF}, {0xFF} + }, { // CAN'T + {0x02}, {0xFF}, {0xFF}, {0xFF}, {0xFF}, {0xFF} + }, { // CAN + {0x0B}, {0x0B}, {0xFF}, {0xFF}, {0xFF}, {0xFF} + }, { // DON'T + {0x11}, {0xFF}, {0xFF}, {0xFF}, {0xFF}, {0xFF} + }, { // DO + {0x02}, {0x0B}, {0xFF}, {0xFF}, {0xFF}, {0xFF} + }, { // DOES + {0x29}, {0xFF}, {0xFF}, {0xFF}, {0xFF}, {0xFF} + }, { // WHOM + {0x0B}, {0xFF}, {0xFF}, {0xFF}, {0xFF}, {0xFF} + }, { // WHICH + {0x0B}, {0x0B}, {0xFF}, {0xFF}, {0xFF}, {0xFF} + }, { // WASN'T + {0x02}, {0x11}, {0xFF}, {0xFF}, {0xFF}, {0xFF} + }, { // WEREN'T + {0x1A}, {0x0B}, {0xFF}, {0xFF}, {0xFF}, {0xFF} + }, { // HAVE + {0x02}, {0x0B}, {0xFF}, {0xFF}, {0xFF}, {0xFF} + }, { // HAVEN'T + {0x02}, {0x0B}, {0x11}, {0xFF}, {0xFF}, {0xFF} + }, { // A + {0x0B}, {0x11}, {0xFF}, {0xFF}, {0xFF}, {0xFF} + }, { // AN + {0x0B}, {0x11}, {0x0B}, {0xFF}, {0xFF}, {0xFF} + }, { // NOT + {0x11}, {0x29}, {0xFF}, {0xFF}, {0xFF}, {0xFF} + }, { // THERE + {0x02}, {0xFF}, {0xFF}, {0xFF}, {0xFF}, {0xFF} + }, { // OK? + {0x1A}, {0x0B}, {0xFF}, {0xFF}, {0xFF}, {0xFF} + }, { // SO + {0x1A}, {0xFF}, {0xFF}, {0xFF}, {0xFF}, {0xFF} + }, { // MAYBE + {0x11}, {0x0B}, {0x11}, {0xFF}, {0xFF}, {0xFF} + }, { // ABOUT + {0x29}, {0x0B}, {0xFF}, {0xFF}, {0xFF}, {0xFF} + }, { // OVER + {0x11}, {0x0B}, {0xFF}, {0xFF}, {0xFF}, {0xFF} + }, { // IT + {0x0B}, {0xFF}, {0xFF}, {0xFF}, {0xFF}, {0xFF} + }, { // ALL + {0x02}, {0x0B}, {0xFF}, {0xFF}, {0xFF}, {0xFF} + }, { // FOR + {0x11}, {0xFF}, {0xFF}, {0xFF}, {0xFF}, {0xFF} + }, { // ON + {0x02}, {0xFF}, {0xFF}, {0xFF}, {0xFF}, {0xFF} + }, { // OFF + {0x02}, {0xFF}, {0xFF}, {0xFF}, {0xFF}, {0xFF} + }, { // AS + {0x0B}, {0x02}, {0x29}, {0x1A}, {0xFF}, {0xFF} + }, { // TO + {0x29}, {0xFF}, {0xFF}, {0xFF}, {0xFF}, {0xFF} + }, { // WITH + {0x11}, {0xFF}, {0xFF}, {0xFF}, {0xFF}, {0xFF} + }, { // BETTER + {0x0B}, {0x0B}, {0xFF}, {0xFF}, {0xFF}, {0xFF} + }, { // EVER + {0x0B}, {0x02}, {0xFF}, {0xFF}, {0xFF}, {0xFF} + }, { // SINCE + {0x0B}, {0x11}, {0xFF}, {0xFF}, {0xFF}, {0xFF} + }, { // OF + {0x0B}, {0x11}, {0x0B}, {0xFF}, {0xFF}, {0xFF} + }, { // BELONGS TO + {0x0B}, {0x0B}, {0xFF}, {0xFF}, {0xFF}, {0xFF} + }, { // AT + {0x0B}, {0x11}, {0xFF}, {0xFF}, {0xFF}, {0xFF} + }, { // IN + {0x11}, {0xFF}, {0xFF}, {0xFF}, {0xFF}, {0xFF} + }, { // OUT + {0x02}, {0x29}, {0xFF}, {0xFF}, {0xFF}, {0xFF} + }, { // TOO + {0x02}, {0x29}, {0xFF}, {0xFF}, {0xFF}, {0xFF} + }, { // LIKE + {0x0B}, {0x11}, {0xFF}, {0xFF}, {0xFF}, {0xFF} + }, { // DID + {0x0B}, {0x02}, {0xFF}, {0xFF}, {0xFF}, {0xFF} + }, { // DIDN'T + {0x11}, {0x0B}, {0x02}, {0xFF}, {0xFF}, {0xFF} + }, { // DOESN'T + {0x02}, {0xFF}, {0xFF}, {0xFF}, {0xFF}, {0xFF} + }, { // WITHOUT + {0x1A}, {0x0B}, {0xFF}, {0xFF}, {0xFF}, {0xFF} + }, { // AFTER + {0x02}, {0xFF}, {0xFF}, {0xFF}, {0xFF}, {0xFF} + }, { // BEFORE + {0x1A}, {0x0B}, {0xFF}, {0xFF}, {0xFF}, {0xFF} + }, { // WHILE + {0x0B}, {0x0B}, {0xFF}, {0xFF}, {0xFF}, {0xFF} + }, { // THAN + {0x02}, {0xFF}, {0xFF}, {0xFF}, {0xFF}, {0xFF} + }, { // ONCE + {0x0B}, {0x11}, {0x02}, {0xFF}, {0xFF}, {0xFF} + }, { // ANYWHERE + {0x11}, {0x0B}, {0x1A}, {0xFF}, {0xFF}, {0xFF} + } +}; +#endif // ENGLISH/GERMAN + +#endif // GUARD_DATA_BARD_MUSIC_ENDINGS_H diff --git a/src/data/bard_music/events.h b/src/data/bard_music/events.h new file mode 100644 index 000000000..38059020b --- /dev/null +++ b/src/data/bard_music/events.h @@ -0,0 +1,102 @@ +#ifndef GUARD_DATA_BARD_MUSIC_EVENTS_H +#define GUARD_DATA_BARD_MUSIC_EVENTS_H + +#if ENGLISH +const struct BardSound gBardSounds_Events[][6] = { + { // APPEAL + {0x2C}, {0x0C}, {0x33}, {0xFF}, {0xFF}, {0xFF} + }, { // EVENTS + {0x0C}, {0x0B}, {0x33}, {0xFF}, {0xFF}, {0xFF} + }, { // STAY-AT-HOME + {0x03}, {0x00}, {0x18}, {0x33}, {0x33}, {0xFF} + }, { // BERRY + {0x09}, {0x0C}, {0x33}, {0xFF}, {0xFF}, {0xFF} + }, { // CONTEST + {0x1D}, {0x0B}, {0x33}, {0xFF}, {0xFF}, {0xFF} + }, { // MC + {0x09}, {0x0E}, {0x33}, {0xFF}, {0xFF}, {0xFF} + }, { // JUDGE + {0x2B}, {0x33}, {0x33}, {0xFF}, {0xFF}, {0xFF} + }, { // SUPER + {0x27}, {0x32}, {0x33}, {0xFF}, {0xFF}, {0xFF} + }, { // STAGE + {0x05}, {0x33}, {0x33}, {0xFF}, {0xFF}, {0xFF} + }, { // HALL OF FAME + {0x15}, {0x2C}, {0x04}, {0x33}, {0xFF}, {0xFF} + }, { // EVOLUTION + {0x1A}, {0x2C}, {0x33}, {0xFF}, {0xFF}, {0xFF} + }, { // HYPER + {0x12}, {0x30}, {0x33}, {0xFF}, {0xFF}, {0xFF} + }, { // BATTLE TOWER + {0x02}, {0x2C}, {0x21}, {0x30}, {0xFF}, {0xFF} + }, { // LEADERS + {0x0C}, {0x30}, {0x33}, {0xFF}, {0xFF}, {0xFF} + }, { // BATTLE ROOM + {0x00}, {0x2C}, {0x27}, {0xFF}, {0xFF}, {0xFF} + }, { // HIDDEN + {0x11}, {0x09}, {0x33}, {0xFF}, {0xFF}, {0xFF} + }, { // SECRET BASE + {0x0C}, {0x09}, {0x04}, {0x33}, {0xFF}, {0xFF} + }, { // BLEND + {0x0A}, {0x33}, {0x33}, {0xFF}, {0xFF}, {0xFF} + }, { // POKEBLOCK + {0x18}, {0x0C}, {0x1D}, {0x33}, {0xFF}, {0xFF} + }, { // MASTER + {0x00}, {0x30}, {0x33}, {0xFF}, {0xFF}, {0xFF} + }, { // RANK + {0x03}, {0x33}, {0x33}, {0xFF}, {0xFF}, {0xFF} + }, { // RIBBON + {0x11}, {0x2C}, {0x33}, {0xFF}, {0xFF}, {0xFF} + } +}; +#elif GERMAN +const struct BardSound gBardSounds_Events[][6] = { + { // APPEAL + {0x02}, {0x29}, {0x29}, {0xFF}, {0xFF}, {0xFF} + }, { // EVENTS + {0x0B}, {0x0B}, {0xFF}, {0xFF}, {0xFF}, {0xFF} + }, { // STAY-AT-HOME + {0x02}, {0x11}, {0x11}, {0x0B}, {0xFF}, {0xFF} + }, { // BERRY + {0x0B}, {0x0B}, {0x0B}, {0xFF}, {0xFF}, {0xFF} + }, { // CONTEST + {0x0B}, {0x0B}, {0x0B}, {0xFF}, {0xFF}, {0xFF} + }, { // MC + {0x0B}, {0x11}, {0xFF}, {0xFF}, {0xFF}, {0xFF} + }, { // JUDGE + {0x29}, {0x1A}, {0xFF}, {0xFF}, {0xFF}, {0xFF} + }, { // SUPER + {0x29}, {0x0B}, {0xFF}, {0xFF}, {0xFF}, {0xFF} + }, { // STAGE + {0x11}, {0x0B}, {0xFF}, {0xFF}, {0xFF}, {0xFF} + }, { // HALL OF FAME + {0x29}, {0x0B}, {0x02}, {0x0B}, {0xFF}, {0xFF} + }, { // EVOLUTION + {0x1A}, {0x02}, {0xFF}, {0xFF}, {0xFF}, {0xFF} + }, { // HYPER + {0x11}, {0x0B}, {0xFF}, {0xFF}, {0xFF}, {0xFF} + }, { // BATTLE TOWER + {0x29}, {0x0B}, {0x29}, {0xFF}, {0xFF}, {0xFF} + }, { // LEADERS + {0x0B}, {0x11}, {0x0B}, {0xFF}, {0xFF}, {0xFF} + }, { // BATTLE ROOM + {0x02}, {0x02}, {0x29}, {0xFF}, {0xFF}, {0xFF} + }, { // HIDDEN + {0x0B}, {0x0B}, {0x0B}, {0xFF}, {0xFF}, {0xFF} + }, { // SECRET BASE + {0x0B}, {0x0B}, {0x11}, {0x02}, {0x11}, {0xFF} + }, { // BLEND + {0x11}, {0x0B}, {0xFF}, {0xFF}, {0xFF}, {0xFF} + }, { // POKEBLOCK + {0x11}, {0x0B}, {0xFF}, {0xFF}, {0xFF}, {0xFF} + }, { // MASTER + {0x0B}, {0x11}, {0x0B}, {0xFF}, {0xFF}, {0xFF} + }, { // RANK + {0x02}, {0x0B}, {0xFF}, {0xFF}, {0xFF}, {0xFF} + }, { // RIBBON + {0x02}, {0xFF}, {0xFF}, {0xFF}, {0xFF}, {0xFF} + } +}; +#endif // ENGLISH/GERMAN + +#endif // GUARD_DATA_BARD_MUSIC_EVENTS_H diff --git a/src/data/bard_music/feelings.h b/src/data/bard_music/feelings.h new file mode 100644 index 000000000..7801a9551 --- /dev/null +++ b/src/data/bard_music/feelings.h @@ -0,0 +1,290 @@ +#ifndef GUARD_DATA_BARD_MUSIC_FEELINGS_H +#define GUARD_DATA_BARD_MUSIC_FEELINGS_H + +#if ENGLISH +const struct BardSound gBardSounds_Feelings[][6] = { + { // MEET + {0x0C}, {0x33}, {0x33}, {0xFF}, {0xFF}, {0xFF} + }, { // PLAY + {0x04}, {0x33}, {0x33}, {0xFF}, {0xFF}, {0xFF} + }, { // HURRIED + {0x32}, {0x0E}, {0x33}, {0xFF}, {0xFF}, {0xFF} + }, { // GOES + {0x19}, {0x33}, {0x33}, {0xFF}, {0xFF}, {0xFF} + }, { // GIDDY + {0x11}, {0x0E}, {0x33}, {0xFF}, {0xFF}, {0xFF} + }, { // HAPPY + {0x00}, {0x0C}, {0x33}, {0xFF}, {0xFF}, {0xFF} + }, { // HAPPINESS + {0x00}, {0x0C}, {0x0B}, {0xFF}, {0xFF}, {0xFF} + }, { // EXCITE + {0x0B}, {0x14}, {0x33}, {0xFF}, {0xFF}, {0xFF} + }, { // IMPORTANT + {0x0F}, {0x1A}, {0x00}, {0xFF}, {0xFF}, {0xFF} + }, { // FUNNY + {0x2C}, {0x0E}, {0x33}, {0xFF}, {0xFF}, {0xFF} + }, { // GOT + {0x17}, {0x33}, {0x33}, {0xFF}, {0xFF}, {0xFF} + }, { // GO HOME + {0x18}, {0x1A}, {0x33}, {0xFF}, {0xFF}, {0xFF} + }, { // DISAPPOINTED + {0x11}, {0x00}, {0x1E}, {0x0B}, {0xFF}, {0xFF} + }, { // DISAPPOINTS + {0x11}, {0x00}, {0x20}, {0xFF}, {0xFF}, {0xFF} + }, { // SAD + {0x02}, {0x33}, {0x33}, {0xFF}, {0xFF}, {0xFF} + }, { // TRY + {0x12}, {0x33}, {0x33}, {0xFF}, {0xFF}, {0xFF} + }, { // TRIES + {0x14}, {0x33}, {0x33}, {0xFF}, {0xFF}, {0xFF} + }, { // HEARS + {0x31}, {0x33}, {0x33}, {0xFF}, {0xFF}, {0xFF} + }, { // THINK + {0x0D}, {0x33}, {0x33}, {0xFF}, {0xFF}, {0xFF} + }, { // HEAR + {0x31}, {0x33}, {0x33}, {0xFF}, {0xFF}, {0xFF} + }, { // WANTS + {0x08}, {0xFF}, {0x33}, {0xFF}, {0xFF}, {0xFF} + }, { // MISHEARD + {0x11}, {0x32}, {0x33}, {0xFF}, {0xFF}, {0xFF} + }, { // DISLIKE + {0x11}, {0x14}, {0x33}, {0xFF}, {0xFF}, {0xFF} + }, { // ANGRY + {0x05}, {0x0E}, {0x33}, {0xFF}, {0xFF}, {0xFF} + }, { // ANGER + {0x05}, {0x32}, {0x33}, {0xFF}, {0xFF}, {0xFF} + }, { // SCARY + {0x0B}, {0x0E}, {0x33}, {0xFF}, {0xFF}, {0xFF} + }, { // LONESOME + {0x18}, {0x2C}, {0x33}, {0xFF}, {0xFF}, {0xFF} + }, { // DISAPPOINT + {0x11}, {0x2A}, {0x20}, {0xFF}, {0xFF}, {0xFF} + }, { // JOY + {0x20}, {0x33}, {0x33}, {0xFF}, {0xFF}, {0xFF} + }, { // GETS + {0x11}, {0x33}, {0x33}, {0xFF}, {0xFF}, {0xFF} + }, { // NEVER + {0x0B}, {0x32}, {0x33}, {0xFF}, {0xFF}, {0xFF} + }, { // DARN + {0x08}, {0x33}, {0x33}, {0xFF}, {0xFF}, {0xFF} + }, { // DOWNCAST + {0x21}, {0x02}, {0x33}, {0xFF}, {0xFF}, {0xFF} + }, { // INCREDIBLE + {0x0F}, {0x0B}, {0x11}, {0x26}, {0xFF}, {0xFF} + }, { // LIKES + {0x14}, {0x33}, {0x33}, {0xFF}, {0xFF}, {0xFF} + }, { // DISLIKES + {0x11}, {0x12}, {0x33}, {0xFF}, {0xFF}, {0xFF} + }, { // BORING + {0x1A}, {0x11}, {0x33}, {0x33}, {0xFF}, {0xFF} + }, { // CARE + {0x31}, {0x33}, {0x33}, {0xFF}, {0xFF}, {0xFF} + }, { // CARES + {0x31}, {0x33}, {0x33}, {0xFF}, {0xFF}, {0xFF} + }, { // ALL RIGHT + {0x06}, {0x14}, {0x33}, {0xFF}, {0xFF}, {0xFF} + }, { // ADORE + {0x2C}, {0x1A}, {0x33}, {0xFF}, {0xFF}, {0xFF} + }, { // DISASTER + {0x11}, {0x00}, {0x32}, {0xFF}, {0xFF}, {0xFF} + }, { // ENJOY + {0x11}, {0x20}, {0x33}, {0xFF}, {0xFF}, {0xFF} + }, { // ENJOYS + {0x11}, {0x20}, {0x33}, {0xFF}, {0xFF}, {0xFF} + }, { // EAT + {0x0E}, {0x33}, {0x33}, {0xFF}, {0xFF}, {0xFF} + }, { // LACKING + {0x02}, {0x11}, {0x33}, {0xFF}, {0xFF}, {0xFF} + }, { // BAD + {0x02}, {0x33}, {0x33}, {0xFF}, {0xFF}, {0xFF} + }, { // HARD + {0x1D}, {0x33}, {0x33}, {0xFF}, {0xFF}, {0xFF} + }, { // TERRIBLE + {0x0B}, {0x2A}, {0x1A}, {0xFF}, {0xFF}, {0xFF} + }, { // SHOULD + {0x29}, {0x33}, {0x33}, {0xFF}, {0xFF}, {0xFF} + }, { // NICE + {0x14}, {0x33}, {0x33}, {0xFF}, {0xFF}, {0xFF} + }, { // DRINK + {0x11}, {0x33}, {0x33}, {0xFF}, {0xFF}, {0xFF} + }, { // SURPRISE + {0x32}, {0x14}, {0x33}, {0xFF}, {0xFF}, {0xFF} + }, { // FEAR + {0x32}, {0x33}, {0x33}, {0xFF}, {0xFF}, {0xFF} + }, { // WANT + {0x2C}, {0x33}, {0x33}, {0xFF}, {0xFF}, {0xFF} + }, { // WAIT + {0x03}, {0x33}, {0x33}, {0xFF}, {0xFF}, {0xFF} + }, { // SATISFIED + {0x00}, {0x11}, {0x14}, {0x33}, {0xFF}, {0xFF} + }, { // SEE + {0x0C}, {0x33}, {0x33}, {0xFF}, {0xFF}, {0xFF} + }, { // RARE + {0x32}, {0x33}, {0x33}, {0xFF}, {0xFF}, {0xFF} + }, { // NEGATIVE + {0x0B}, {0x2C}, {0x11}, {0xFF}, {0xFF}, {0xFF} + }, { // DONE + {0x2C}, {0x33}, {0x33}, {0xFF}, {0xFF}, {0xFF} + }, { // DANGER + {0x03}, {0x32}, {0x33}, {0xFF}, {0xFF}, {0xFF} + }, { // DEFEATED + {0x0E}, {0x0E}, {0x0B}, {0xFF}, {0xFF}, {0xFF} + }, { // BEAT + {0x0E}, {0x33}, {0x33}, {0xFF}, {0xFF}, {0xFF} + }, { // GREAT + {0x04}, {0x33}, {0x33}, {0xFF}, {0xFF}, {0xFF} + }, { // ROMANTIC + {0x1A}, {0x00}, {0x11}, {0xFF}, {0xFF}, {0xFF} + }, { // QUESTION + {0x0B}, {0x2C}, {0x33}, {0xFF}, {0xFF}, {0xFF} + }, { // UNDERSTAND + {0x2C}, {0x32}, {0x02}, {0xFF}, {0xFF}, {0xFF} + }, { // UNDERSTANDS + {0x2C}, {0x32}, {0x02}, {0x33}, {0xFF}, {0xFF} + } +}; +#elif GERMAN +const struct BardSound gBardSounds_Feelings[][6] = { + { // MEET + {0x0B}, {0x11}, {0x0B}, {0xFF}, {0xFF}, {0xFF} + }, { // PLAY + {0x11}, {0x0B}, {0xFF}, {0xFF}, {0xFF}, {0xFF} + }, { // HURRIED + {0x0B}, {0x11}, {0x11}, {0xFF}, {0xFF}, {0xFF} + }, { // GOES + {0x0B}, {0xFF}, {0xFF}, {0xFF}, {0xFF}, {0xFF} + }, { // GIDDY + {0x11}, {0x0B}, {0x11}, {0xFF}, {0xFF}, {0xFF} + }, { // HAPPY + {0x11}, {0x11}, {0xFF}, {0xFF}, {0xFF}, {0xFF} + }, { // HAPPINESS + {0x11}, {0xFF}, {0xFF}, {0xFF}, {0xFF}, {0xFF} + }, { // EXCITE + {0x0B}, {0x0B}, {0x11}, {0x0B}, {0xFF}, {0xFF} + }, { // IMPORTANT + {0x11}, {0x11}, {0xFF}, {0xFF}, {0xFF}, {0xFF} + }, { // FUNNY + {0x29}, {0x11}, {0xFF}, {0xFF}, {0xFF}, {0xFF} + }, { // GOT + {0x02}, {0x0B}, {0xFF}, {0xFF}, {0xFF}, {0xFF} + }, { // GO HOME + {0x0B}, {0x11}, {0x0B}, {0x0B}, {0xFF}, {0xFF} + }, { // DISAPPOINTED + {0x0B}, {0x0B}, {0x29}, {0xFF}, {0xFF}, {0xFF} + }, { // DISAPPOINTS + {0x0B}, {0x0B}, {0x29}, {0x0B}, {0xFF}, {0xFF} + }, { // SAD + {0x02}, {0x29}, {0x11}, {0xFF}, {0xFF}, {0xFF} + }, { // TRY + {0x29}, {0x29}, {0x11}, {0x0B}, {0xFF}, {0xFF} + }, { // TRIES + {0x0B}, {0x29}, {0xFF}, {0xFF}, {0xFF}, {0xFF} + }, { // HEARS + {0x29}, {0x0B}, {0x02}, {0x29}, {0x0B}, {0xFF} + }, { // THINK + {0x0B}, {0x11}, {0xFF}, {0xFF}, {0xFF}, {0xFF} + }, { // HEAR + {0x0B}, {0x0B}, {0xFF}, {0xFF}, {0xFF}, {0xFF} + }, { // WANTS + {0x11}, {0xFF}, {0xFF}, {0xFF}, {0xFF}, {0xFF} + }, { // MISHEARD + {0x0B}, {0x0B}, {0xFF}, {0xFF}, {0xFF}, {0xFF} + }, { // DISLIKE + {0x11}, {0x0B}, {0x0B}, {0xFF}, {0xFF}, {0xFF} + }, { // ANGRY + {0x0B}, {0x0B}, {0xFF}, {0xFF}, {0xFF}, {0xFF} + }, { // ANGER + {0x29}, {0xFF}, {0xFF}, {0xFF}, {0xFF}, {0xFF} + }, { // SCARY + {0x29}, {0x0B}, {0x11}, {0x11}, {0xFF}, {0xFF} + }, { // LONESOME + {0x0B}, {0x11}, {0x02}, {0xFF}, {0xFF}, {0xFF} + }, { // DISAPPOINT + {0x29}, {0x11}, {0xFF}, {0xFF}, {0xFF}, {0xFF} + }, { // JOY + {0x0B}, {0x29}, {0x0B}, {0xFF}, {0xFF}, {0xFF} + }, { // GETS + {0x0B}, {0x1A}, {0xFF}, {0xFF}, {0xFF}, {0xFF} + }, { // NEVER + {0x11}, {0xFF}, {0xFF}, {0xFF}, {0xFF}, {0xFF} + }, { // DARN + {0x0B}, {0x02}, {0xFF}, {0xFF}, {0xFF}, {0xFF} + }, { // DOWNCAST + {0x0B}, {0x29}, {0x11}, {0xFF}, {0xFF}, {0xFF} + }, { // INCREDIBLE + {0x02}, {0x0B}, {0x02}, {0xFF}, {0xFF}, {0xFF} + }, { // LIKES + {0x1A}, {0x11}, {0x0B}, {0xFF}, {0xFF}, {0xFF} + }, { // DISLIKES + {0x02}, {0x0B}, {0x11}, {0x29}, {0xFF}, {0xFF} + }, { // BORING + {0x02}, {0x0B}, {0x11}, {0x11}, {0xFF}, {0xFF} + }, { // CARE + {0x1A}, {0x0B}, {0xFF}, {0xFF}, {0xFF}, {0xFF} + }, { // CARES + {0x1A}, {0xFF}, {0xFF}, {0xFF}, {0xFF}, {0xFF} + }, { // ALL RIGHT + {0x29}, {0xFF}, {0xFF}, {0xFF}, {0xFF}, {0xFF} + }, { // ADORE + {0x0B}, {0x0B}, {0x0B}, {0xFF}, {0xFF}, {0xFF} + }, { // DISASTER + {0x0B}, {0x02}, {0x0B}, {0xFF}, {0xFF}, {0xFF} + }, { // ENJOY + {0x0B}, {0x11}, {0x0B}, {0xFF}, {0xFF}, {0xFF} + }, { // ENJOYS + {0x0B}, {0x11}, {0xFF}, {0xFF}, {0xFF}, {0xFF} + }, { // EAT + {0x0B}, {0x0B}, {0xFF}, {0xFF}, {0xFF}, {0xFF} + }, { // LACKING + {0x29}, {0x29}, {0x0B}, {0x11}, {0x0B}, {0xFF} + }, { // BAD + {0x0B}, {0x0B}, {0xFF}, {0xFF}, {0xFF}, {0xFF} + }, { // HARD + {0x0B}, {0xFF}, {0xFF}, {0xFF}, {0xFF}, {0xFF} + }, { // TERRIBLE + {0x0B}, {0x11}, {0xFF}, {0xFF}, {0xFF}, {0xFF} + }, { // SHOULD + {0x11}, {0x0B}, {0x02}, {0x29}, {0x0B}, {0xFF} + }, { // NICE + {0x0B}, {0xFF}, {0xFF}, {0xFF}, {0xFF}, {0xFF} + }, { // DRINK + {0x11}, {0xFF}, {0xFF}, {0xFF}, {0xFF}, {0xFF} + }, { // SURPRISE + {0x11}, {0x0B}, {0x02}, {0x29}, {0xFF}, {0xFF} + }, { // FEAR + {0x29}, {0xFF}, {0xFF}, {0xFF}, {0xFF}, {0xFF} + }, { // WANT + {0x0B}, {0x0B}, {0xFF}, {0xFF}, {0xFF}, {0xFF} + }, { // WAIT + {0x02}, {0x0B}, {0x0B}, {0x11}, {0x0B}, {0xFF} + }, { // SATISFIED + {0x29}, {0x11}, {0x0B}, {0xFF}, {0xFF}, {0xFF} + }, { // SEE + {0x02}, {0x0B}, {0xFF}, {0xFF}, {0xFF}, {0xFF} + }, { // RARE + {0x0B}, {0x0B}, {0xFF}, {0xFF}, {0xFF}, {0xFF} + }, { // NEGATIVE + {0x0B}, {0x02}, {0x11}, {0xFF}, {0xFF}, {0xFF} + }, { // DONE + {0x0B}, {0x11}, {0xFF}, {0xFF}, {0xFF}, {0xFF} + }, { // DANGER + {0x0B}, {0x02}, {0xFF}, {0xFF}, {0xFF}, {0xFF} + }, { // DEFEATED + {0x0B}, {0x11}, {0xFF}, {0xFF}, {0xFF}, {0xFF} + }, { // BEAT + {0x29}, {0xFF}, {0xFF}, {0xFF}, {0xFF}, {0xFF} + }, { // GREAT + {0x1A}, {0x02}, {0x11}, {0xFF}, {0xFF}, {0xFF} + }, { // ROMANTIC + {0x1A}, {0x02}, {0x11}, {0xFF}, {0xFF}, {0xFF} + }, { // QUESTION + {0x02}, {0x0B}, {0xFF}, {0xFF}, {0xFF}, {0xFF} + }, { // UNDERSTAND + {0x0B}, {0x0B}, {0x0B}, {0xFF}, {0xFF}, {0xFF} + }, { // UNDERSTANDS + {0x0B}, {0x0B}, {0xFF}, {0xFF}, {0xFF}, {0xFF} + } +}; +#endif // ENGLISH/GERMAN + +#endif // GUARD_DATA_BARD_MUSIC_FEELINGS_H diff --git a/src/data/bard_music/greetings.h b/src/data/bard_music/greetings.h new file mode 100644 index 000000000..9763f3d36 --- /dev/null +++ b/src/data/bard_music/greetings.h @@ -0,0 +1,182 @@ +#ifndef GUARD_DATA_BARD_MUSIC_GREETINGS_H +#define GUARD_DATA_BARD_MUSIC_GREETINGS_H + +#if ENGLISH +const struct BardSound gBardSounds_Greetings[][6] = { + { // THANKS + {0x03}, {0x33}, {0x33}, {0xFF}, {0xFF}, {0xFF} + }, { // YES + {0x0B}, {0x33}, {0x33}, {0xFF}, {0xFF}, {0xFF} + }, { // HERE GOES + {0x30}, {0x18}, {0x33}, {0xFF}, {0xFF}, {0xFF} + }, { // HERE I COME + {0x30}, {0x12}, {0x17}, {0x33}, {0xFF}, {0xFF} + }, { // HERE IT IS + {0x30}, {0x11}, {0x11}, {0xFF}, {0xFF}, {0xFF} + }, { // YEAH + {0x02}, {0x33}, {0x33}, {0xFF}, {0xFF}, {0xFF} + }, { // WELCOME + {0x09}, {0x17}, {0x33}, {0xFF}, {0xFF}, {0xFF} + }, { // OI + {0x1E}, {0x33}, {0x33}, {0xFF}, {0xFF}, {0xFF} + }, { // HOW DO + {0x21}, {0x27}, {0x33}, {0xFF}, {0xFF}, {0xFF} + }, { // CONGRATS + {0x2C}, {0x02}, {0x33}, {0xFF}, {0xFF}, {0xFF} + }, { // GIVE ME + {0x11}, {0x0E}, {0x33}, {0xFF}, {0xFF}, {0xFF} + }, { // SORRY + {0x1B}, {0x0C}, {0x33}, {0xFF}, {0xFF}, {0xFF} + }, { // APOLOGIZE + {0x2C}, {0x06}, {0x17}, {0x12}, {0x33}, {0xFF} + }, { // FORGIVE + {0x1A}, {0x10}, {0x33}, {0xFF}, {0xFF}, {0xFF} + }, { // HEY, THERE + {0x04}, {0x0B}, {0x33}, {0xFF}, {0xFF}, {0xFF} + }, { // HELLO + {0x09}, {0x18}, {0x33}, {0xFF}, {0xFF}, {0xFF} + }, { // GOOD-BYE + {0x26}, {0x14}, {0x33}, {0xFF}, {0xFF}, {0xFF} + }, { // THANK YOU + {0x03}, {0x27}, {0x33}, {0xFF}, {0xFF}, {0xFF} + }, { // I'VE ARRIVED + {0x12}, {0x06}, {0x12}, {0x33}, {0xFF}, {0xFF} + }, { // PARDON + {0x1D}, {0x2A}, {0x33}, {0xFF}, {0xFF}, {0xFF} + }, { // EXCUSE + {0x09}, {0x27}, {0x33}, {0xFF}, {0xFF}, {0xFF} + }, { // SEE YA + {0x0E}, {0x2C}, {0x33}, {0xFF}, {0xFF}, {0xFF} + }, { // EXCUSE ME + {0x0B}, {0x28}, {0x0D}, {0xFF}, {0xFF}, {0xFF} + }, { // WELL, THEN + {0x09}, {0x09}, {0x33}, {0xFF}, {0xFF}, {0xFF} + }, { // GO AHEAD + {0x1A}, {0x2C}, {0x0B}, {0xFF}, {0xFF}, {0xFF} + }, { // APPRECIATE + {0x00}, {0x0C}, {0x0E}, {0x05}, {0xFF}, {0xFF} + }, { // HEY? + {0x04}, {0x33}, {0x33}, {0xFF}, {0xFF}, {0xFF} + }, { // WHAT'S UP? + {0x2C}, {0x2B}, {0x33}, {0xFF}, {0xFF}, {0xFF} + }, { // HUH? + {0x2C}, {0x33}, {0x33}, {0xFF}, {0xFF}, {0xFF} + }, { // NO + {0x18}, {0x33}, {0x33}, {0xFF}, {0xFF}, {0xFF} + }, { // HI + {0x12}, {0x33}, {0x33}, {0xFF}, {0xFF}, {0xFF} + }, { // YEAH, YEAH + {0x0A}, {0x0A}, {0x33}, {0xFF}, {0xFF}, {0xFF} + }, { // BYE-BYE + {0x14}, {0x12}, {0x33}, {0xFF}, {0xFF}, {0xFF} + }, { // MEET YOU + {0x0E}, {0x27}, {0x33}, {0xFF}, {0xFF}, {0xFF} + }, { // HEY + {0x05}, {0x33}, {0x33}, {0xFF}, {0xFF}, {0xFF} + }, { // SMELL + {0x0D}, {0x33}, {0x33}, {0xFF}, {0xFF}, {0xFF} + }, { // LISTENING + {0x11}, {0x0B}, {0x11}, {0xFF}, {0xFF}, {0xFF} + }, { // HOO-HAH + {0x27}, {0x01}, {0x33}, {0xFF}, {0xFF}, {0xFF} + }, { // YAHOO + {0x00}, {0x27}, {0x33}, {0xFF}, {0xFF}, {0xFF} + }, { // YO + {0x18}, {0x33}, {0x33}, {0xFF}, {0xFF}, {0xFF} + }, { // COME OVER + {0x2C}, {0x18}, {0x32}, {0xFF}, {0xFF}, {0xFF} + }, { // COUNT ON + {0x23}, {0x17}, {0x33}, {0xFF}, {0xFF}, {0xFF} + } +}; +#elif GERMAN +const struct BardSound gBardSounds_Greetings[][6] = { + { // THANKS + {0x02}, {0xFF}, {0xFF}, {0xFF}, {0xFF}, {0xFF} + }, { // YES + {0x02}, {0xFF}, {0xFF}, {0xFF}, {0xFF}, {0xFF} + }, { // HERE GOES + {0x11}, {0x1A}, {0xFF}, {0xFF}, {0xFF}, {0xFF} + }, { // HERE I COME + {0x11}, {0x11}, {0x11}, {0xFF}, {0xFF}, {0xFF} + }, { // HERE IT IS + {0x11}, {0x11}, {0x0B}, {0xFF}, {0xFF}, {0xFF} + }, { // YEAH + {0x0B}, {0x02}, {0xFF}, {0xFF}, {0xFF}, {0xFF} + }, { // WELCOME + {0x11}, {0x1A}, {0x0B}, {0xFF}, {0xFF}, {0xFF} + }, { // OI + {0x02}, {0x29}, {0xFF}, {0xFF}, {0xFF}, {0xFF} + }, { // HOW DO + {0x11}, {0xFF}, {0xFF}, {0xFF}, {0xFF}, {0xFF} + }, { // CONGRATS + {0x11}, {0x29}, {0xFF}, {0xFF}, {0xFF}, {0xFF} + }, { // GIVE ME + {0x11}, {0xFF}, {0xFF}, {0xFF}, {0xFF}, {0xFF} + }, { // SORRY + {0x1A}, {0x11}, {0xFF}, {0xFF}, {0xFF}, {0xFF} + }, { // APOLOGIZE + {0x0B}, {0x0B}, {0x11}, {0x29}, {0xFF}, {0xFF} + }, { // FORGIVE + {0x1A}, {0x29}, {0xFF}, {0xFF}, {0xFF}, {0xFF} + }, { // HEY, THERE + {0x1A}, {0x29}, {0xFF}, {0xFF}, {0xFF}, {0xFF} + }, { // HELLO + {0x02}, {0x1A}, {0xFF}, {0xFF}, {0xFF}, {0xFF} + }, { // GOOD-BYE + {0x11}, {0xFF}, {0xFF}, {0xFF}, {0xFF}, {0xFF} + }, { // THANK YOU + {0x02}, {0x0B}, {0xFF}, {0xFF}, {0xFF}, {0xFF} + }, { // I'VE ARRIVED + {0x11}, {0x11}, {0x02}, {0xFF}, {0xFF}, {0xFF} + }, { // PARDON + {0x02}, {0x1A}, {0xFF}, {0xFF}, {0xFF}, {0xFF} + }, { // EXCUSE + {0x02}, {0x0B}, {0xFF}, {0xFF}, {0xFF}, {0xFF} + }, { // SEE YA + {0x11}, {0x02}, {0xFF}, {0xFF}, {0xFF}, {0xFF} + }, { // EXCUSE ME + {0x0B}, {0x29}, {0x11}, {0x0B}, {0xFF}, {0xFF} + }, { // WELL, THEN + {0x29}, {0x02}, {0xFF}, {0xFF}, {0xFF}, {0xFF} + }, { // GO AHEAD + {0x0B}, {0x11}, {0x1A}, {0xFF}, {0xFF}, {0xFF} + }, { // APPRECIATE + {0x0B}, {0x0B}, {0xFF}, {0xFF}, {0xFF}, {0xFF} + }, { // HEY? + {0x0B}, {0x0B}, {0xFF}, {0xFF}, {0xFF}, {0xFF} + }, { // WHAT'S UP? + {0x02}, {0x11}, {0x1A}, {0xFF}, {0xFF}, {0xFF} + }, { // HUH? + {0x11}, {0x0B}, {0xFF}, {0xFF}, {0xFF}, {0xFF} + }, { // NO + {0x0B}, {0x11}, {0xFF}, {0xFF}, {0xFF}, {0xFF} + }, { // HI + {0x02}, {0x02}, {0x29}, {0xFF}, {0xFF}, {0xFF} + }, { // YEAH, YEAH + {0x0B}, {0x02}, {0x0B}, {0x02}, {0xFF}, {0xFF} + }, { // BYE-BYE + {0x02}, {0x29}, {0xFF}, {0xFF}, {0xFF}, {0xFF} + }, { // MEET YOU + {0x11}, {0x02}, {0xFF}, {0xFF}, {0xFF}, {0xFF} + }, { // HEY + {0x0B}, {0x0B}, {0xFF}, {0xFF}, {0xFF}, {0xFF} + }, { // SMELL + {0x0B}, {0x29}, {0xFF}, {0xFF}, {0xFF}, {0xFF} + }, { // LISTENING + {0x0B}, {0x29}, {0xFF}, {0xFF}, {0xFF}, {0xFF} + }, { // HOO-HAH + {0x29}, {0x02}, {0xFF}, {0xFF}, {0xFF}, {0xFF} + }, { // YAHOO + {0x29}, {0x29}, {0x29}, {0xFF}, {0xFF}, {0xFF} + }, { // YO + {0x0B}, {0xFF}, {0xFF}, {0xFF}, {0xFF}, {0xFF} + }, { // COME OVER + {0x02}, {0x1A}, {0xFF}, {0xFF}, {0xFF}, {0xFF} + }, { // COUNT ON + {0x0B}, {0x0B}, {0x02}, {0x29}, {0xFF}, {0xFF} + } +}; +#endif // ENGLISH/GERMAN + +#endif // GUARD_DATA_BARD_MUSIC_GREETINGS_H diff --git a/src/data/bard_music/hobbies.h b/src/data/bard_music/hobbies.h new file mode 100644 index 000000000..078ddcd92 --- /dev/null +++ b/src/data/bard_music/hobbies.h @@ -0,0 +1,230 @@ +#ifndef GUARD_DATA_BARD_MUSIC_HOBBIES_H +#define GUARD_DATA_BARD_MUSIC_HOBBIES_H + +#if ENGLISH +const struct BardSound gBardSounds_Hobbies[][6] = { + { // IDOL + {0x14}, {0x1A}, {0x33}, {0xFF}, {0xFF}, {0xFF} + }, { // ANIME + {0x00}, {0x2C}, {0x05}, {0xFF}, {0xFF}, {0xFF} + }, { // SONG + {0x17}, {0x33}, {0x33}, {0xFF}, {0xFF}, {0xFF} + }, { // MOVIE + {0x27}, {0x0E}, {0x33}, {0xFF}, {0xFF}, {0xFF} + }, { // SWEETS + {0x0E}, {0x33}, {0x33}, {0xFF}, {0xFF}, {0xFF} + }, { // CHAT + {0x01}, {0x33}, {0x33}, {0xFF}, {0xFF}, {0xFF} + }, { // CHILD'S PLAY + {0x14}, {0x26}, {0x04}, {0xFF}, {0xFF}, {0xFF} + }, { // TOYS + {0x1E}, {0x33}, {0x33}, {0xFF}, {0xFF}, {0xFF} + }, { // MUSIC + {0x2F}, {0x11}, {0x33}, {0xFF}, {0xFF}, {0xFF} + }, { // CARDS + {0x17}, {0x2A}, {0x33}, {0xFF}, {0xFF}, {0xFF} + }, { // SHOPPING + {0x15}, {0x0C}, {0x33}, {0xFF}, {0xFF}, {0xFF} + }, { // CAMERA + {0x00}, {0x32}, {0x2C}, {0xFF}, {0xFF}, {0xFF} + }, { // VIEWING + {0x2F}, {0x0C}, {0x33}, {0x33}, {0xFF}, {0xFF} + }, { // SPECTATOR + {0x0B}, {0x05}, {0x30}, {0xFF}, {0xFF}, {0xFF} + }, { // GOURMET + {0x26}, {0x05}, {0x33}, {0xFF}, {0xFF}, {0xFF} + }, { // GAME + {0x03}, {0x33}, {0x33}, {0xFF}, {0xFF}, {0xFF} + }, { // RPG + {0x1B}, {0x0C}, {0x0C}, {0xFF}, {0xFF}, {0xFF} + }, { // COLLECTION + {0x2C}, {0x0B}, {0x1B}, {0x33}, {0x33}, {0xFF} + }, { // COMPLETE + {0x2C}, {0x0E}, {0x33}, {0xFF}, {0xFF}, {0xFF} + }, { // MAGAZINE + {0x02}, {0x2C}, {0x0C}, {0x33}, {0xFF}, {0xFF} + }, { // WALK + {0x1B}, {0x33}, {0x33}, {0xFF}, {0xFF}, {0xFF} + }, { // BIKE + {0x12}, {0x33}, {0x33}, {0xFF}, {0xFF}, {0xFF} + }, { // HOBBY + {0x15}, {0x0E}, {0x33}, {0xFF}, {0xFF}, {0xFF} + }, { // SPORTS + {0x1A}, {0x33}, {0x33}, {0xFF}, {0xFF}, {0xFF} + }, { // SOFTWARE + {0x17}, {0x0B}, {0x33}, {0xFF}, {0xFF}, {0xFF} + }, { // SONGS + {0x17}, {0x33}, {0x33}, {0xFF}, {0xFF}, {0xFF} + }, { // DIET + {0x14}, {0x0B}, {0x33}, {0xFF}, {0xFF}, {0xFF} + }, { // TREASURE + {0x0A}, {0x32}, {0x33}, {0xFF}, {0xFF}, {0xFF} + }, { // TRAVEL + {0x00}, {0x26}, {0x33}, {0xFF}, {0xFF}, {0xFF} + }, { // DANCE + {0x00}, {0x33}, {0x33}, {0xFF}, {0xFF}, {0xFF} + }, { // CHANNEL + {0x00}, {0x26}, {0x33}, {0xFF}, {0xFF}, {0xFF} + }, { // MAKING + {0x05}, {0x0E}, {0x33}, {0xFF}, {0xFF}, {0xFF} + }, { // FISHING + {0x11}, {0x0C}, {0x33}, {0xFF}, {0xFF}, {0xFF} + }, { // DATE + {0x05}, {0x33}, {0x33}, {0xFF}, {0xFF}, {0xFF} + }, { // DESIGN + {0x0E}, {0x12}, {0x33}, {0xFF}, {0xFF}, {0xFF} + }, { // LOCOMOTIVE + {0x1A}, {0x2C}, {0x1A}, {0x11}, {0xFF}, {0xFF} + }, { // PLUSH DOLL + {0x2C}, {0x1D}, {0x33}, {0x33}, {0xFF}, {0xFF} + }, { // PC + {0x0E}, {0x0C}, {0x33}, {0xFF}, {0xFF}, {0xFF} + }, { // FLOWERS + {0x21}, {0x30}, {0x33}, {0xFF}, {0xFF}, {0xFF} + }, { // HERO + {0x0C}, {0x1A}, {0x33}, {0xFF}, {0xFF}, {0xFF} + }, { // NAP + {0x02}, {0x33}, {0x33}, {0xFF}, {0xFF}, {0xFF} + }, { // HEROINE + {0x0C}, {0x1A}, {0x0F}, {0x33}, {0xFF}, {0xFF} + }, { // FASHION + {0x01}, {0x2C}, {0x33}, {0xFF}, {0xFF}, {0xFF} + }, { // ADVENTURE + {0x00}, {0x0B}, {0x32}, {0xFF}, {0xFF}, {0xFF} + }, { // BOARD + {0x1A}, {0x2A}, {0x33}, {0xFF}, {0xFF}, {0xFF} + }, { // BALL + {0x1B}, {0x33}, {0x33}, {0xFF}, {0xFF}, {0xFF} + }, { // BOOK + {0x26}, {0x33}, {0x33}, {0xFF}, {0xFF}, {0xFF} + }, { // FESTIVAL + {0x0B}, {0x0E}, {0x08}, {0xFF}, {0xFF}, {0xFF} + }, { // COMICS + {0x1B}, {0x11}, {0x33}, {0xFF}, {0xFF}, {0xFF} + }, { // HOLIDAY + {0x1D}, {0x11}, {0x05}, {0xFF}, {0xFF}, {0xFF} + }, { // PLANS + {0x02}, {0x33}, {0x33}, {0xFF}, {0xFF}, {0xFF} + }, { // TRENDY + {0x09}, {0x0E}, {0x33}, {0xFF}, {0xFF}, {0xFF} + }, { // VACATION + {0x03}, {0x05}, {0x1D}, {0x33}, {0xFF}, {0xFF} + }, { // LOOK + {0x26}, {0x33}, {0x33}, {0xFF}, {0xFF}, {0xFF} + } +}; +#elif GERMAN +const struct BardSound gBardSounds_Hobbies[][6] = { + { // IDOL + {0x11}, {0x1A}, {0xFF}, {0xFF}, {0xFF}, {0xFF} + }, { // ANIME + {0x02}, {0x11}, {0x0B}, {0xFF}, {0xFF}, {0xFF} + }, { // SONG + {0x1A}, {0xFF}, {0xFF}, {0xFF}, {0xFF}, {0xFF} + }, { // MOVIE + {0x11}, {0xFF}, {0xFF}, {0xFF}, {0xFF}, {0xFF} + }, { // SWEETS + {0x02}, {0x0B}, {0xFF}, {0xFF}, {0xFF}, {0xFF} + }, { // CHAT + {0x02}, {0x29}, {0x0B}, {0xFF}, {0xFF}, {0xFF} + }, { // CHILD'S PLAY + {0x11}, {0x0B}, {0x11}, {0xFF}, {0xFF}, {0xFF} + }, { // TOYS + {0x11}, {0x0B}, {0x29}, {0xFF}, {0xFF}, {0xFF} + }, { // MUSIC + {0x29}, {0x11}, {0xFF}, {0xFF}, {0xFF}, {0xFF} + }, { // CARDS + {0x02}, {0x0B}, {0x11}, {0x0B}, {0xFF}, {0xFF} + }, { // SHOPPING + {0x0B}, {0x11}, {0x02}, {0x29}, {0x0B}, {0xFF} + }, { // CAMERA + {0x1A}, {0x1A}, {0xFF}, {0xFF}, {0xFF}, {0xFF} + }, { // VIEWING + {0x0B}, {0x11}, {0x11}, {0x29}, {0xFF}, {0xFF} + }, { // SPECTATOR + {0x29}, {0x02}, {0x29}, {0x0B}, {0xFF}, {0xFF} + }, { // GOURMET + {0x29}, {0x0B}, {0xFF}, {0xFF}, {0xFF}, {0xFF} + }, { // GAME + {0x11}, {0xFF}, {0xFF}, {0xFF}, {0xFF}, {0xFF} + }, { // RPG + {0x0B}, {0x0B}, {0x0B}, {0xFF}, {0xFF}, {0xFF} + }, { // COLLECTION + {0x02}, {0x29}, {0xFF}, {0xFF}, {0xFF}, {0xFF} + }, { // COMPLETE + {0x1A}, {0x0B}, {0xFF}, {0xFF}, {0xFF}, {0xFF} + }, { // MAGAZINE + {0x02}, {0x02}, {0x11}, {0xFF}, {0xFF}, {0xFF} + }, { // WALK + {0x02}, {0x11}, {0x0B}, {0xFF}, {0xFF}, {0xFF} + }, { // BIKE + {0x02}, {0x02}, {0xFF}, {0xFF}, {0xFF}, {0xFF} + }, { // HOBBY + {0x1A}, {0x11}, {0xFF}, {0xFF}, {0xFF}, {0xFF} + }, { // SPORTS + {0x1A}, {0xFF}, {0xFF}, {0xFF}, {0xFF}, {0xFF} + }, { // SOFTWARE + {0x1A}, {0x0B}, {0x0B}, {0xFF}, {0xFF}, {0xFF} + }, { // SONGS + {0x1A}, {0xFF}, {0xFF}, {0xFF}, {0xFF}, {0xFF} + }, { // DIET + {0x02}, {0x29}, {0xFF}, {0xFF}, {0xFF}, {0xFF} + }, { // TREASURE + {0x1A}, {0x02}, {0x0B}, {0x11}, {0xFF}, {0xFF} + }, { // TRAVEL + {0x0B}, {0x11}, {0x0B}, {0xFF}, {0xFF}, {0xFF} + }, { // DANCE + {0x02}, {0x0B}, {0xFF}, {0xFF}, {0xFF}, {0xFF} + }, { // CHANNEL + {0x02}, {0x0B}, {0x1A}, {0xFF}, {0xFF}, {0xFF} + }, { // MAKING + {0x0B}, {0x0B}, {0x29}, {0xFF}, {0xFF}, {0xFF} + }, { // FISHING + {0x02}, {0x0B}, {0xFF}, {0xFF}, {0xFF}, {0xFF} + }, { // DATE + {0x0B}, {0x02}, {0x0B}, {0x29}, {0xFF}, {0xFF} + }, { // DESIGN + {0x0B}, {0x0B}, {0x11}, {0xFF}, {0xFF}, {0xFF} + }, { // LOCOMOTIVE + {0x1A}, {0x1A}, {0x1A}, {0x11}, {0x0B}, {0xFF} + }, { // PLUSH DOLL + {0x11}, {0x29}, {0x0B}, {0xFF}, {0xFF}, {0xFF} + }, { // PC + {0x0B}, {0x0B}, {0xFF}, {0xFF}, {0xFF}, {0xFF} + }, { // FLOWERS + {0x29}, {0x0B}, {0xFF}, {0xFF}, {0xFF}, {0xFF} + }, { // HERO + {0x0B}, {0xFF}, {0xFF}, {0xFF}, {0xFF}, {0xFF} + }, { // NAP + {0x11}, {0x0B}, {0x0B}, {0xFF}, {0xFF}, {0xFF} + }, { // HEROINE + {0x0B}, {0x11}, {0xFF}, {0xFF}, {0xFF}, {0xFF} + }, { // FASHION + {0x1A}, {0x0B}, {0xFF}, {0xFF}, {0xFF}, {0xFF} + }, { // ADVENTURE + {0x02}, {0x0B}, {0x0B}, {0x29}, {0x0B}, {0xFF} + }, { // BOARD + {0x0B}, {0x11}, {0x0B}, {0xFF}, {0xFF}, {0xFF} + }, { // BALL + {0x02}, {0xFF}, {0xFF}, {0xFF}, {0xFF}, {0xFF} + }, { // BOOK + {0x11}, {0x0B}, {0xFF}, {0xFF}, {0xFF}, {0xFF} + }, { // FESTIVAL + {0x0B}, {0x11}, {0x02}, {0xFF}, {0xFF}, {0xFF} + }, { // COMICS + {0x1A}, {0x11}, {0xFF}, {0xFF}, {0xFF}, {0xFF} + }, { // HOLIDAY + {0x0B}, {0x11}, {0x0B}, {0xFF}, {0xFF}, {0xFF} + }, { // PLANS + {0x0B}, {0x02}, {0x02}, {0x0B}, {0xFF}, {0xFF} + }, { // TRENDY + {0x11}, {0x11}, {0x11}, {0x11}, {0xFF}, {0xFF} + }, { // VACATION + {0x29}, {0x02}, {0x29}, {0xFF}, {0xFF}, {0xFF} + }, { // LOOK + {0x02}, {0x29}, {0x0B}, {0x0B}, {0xFF}, {0xFF} + } +}; +#endif // ENGLISH/GERMAN + +#endif // GUARD_DATA_BARD_MUSIC_HOBBIES_H diff --git a/src/data/bard_music/length_table.h b/src/data/bard_music/length_table.h new file mode 100644 index 000000000..144c70dfc --- /dev/null +++ b/src/data/bard_music/length_table.h @@ -0,0 +1,21 @@ +#ifndef GUARD_LENGTH_TABLE_H +#define GUARD_LENGTH_TABLE_H + +const int gBardSoundLengthTable[] = { + 0x09, 0x16, 0x0f, 0x10, + 0x27, 0x15, 0x09, 0x1e, + 0x18, 0x0f, 0x19, 0x0c, + 0x16, 0x2d, 0x18, 0x0f, + 0x28, 0x09, 0x15, 0x2a, + 0x12, 0x09, 0x16, 0x0f, + 0x1b, 0x30, 0x12, 0x1b, + 0x21, 0x18, 0x19, 0x27, + 0x13, 0x10, 0x36, 0x12, + 0x09, 0x2d, 0x0f, 0x0c, + 0x27, 0x17, 0x05, 0x2d, + 0x0c, 0x15, 0x30, 0x0c, + 0x15, 0x45, 0x12, 0x0f +}; + + +#endif //GUARD_LENGTH_TABLE_H diff --git a/src/data/bard_music/lifestyle.h b/src/data/bard_music/lifestyle.h new file mode 100644 index 000000000..dd8fb5819 --- /dev/null +++ b/src/data/bard_music/lifestyle.h @@ -0,0 +1,194 @@ +#ifndef GUARD_DATA_BARD_MUSIC_LIFESTYLE_H +#define GUARD_DATA_BARD_MUSIC_LIFESTYLE_H + +#if ENGLISH +const struct BardSound gBardSounds_Lifestyle[][6] = { + { // CHORES + {0x31}, {0x33}, {0x33}, {0xFF}, {0xFF}, {0xFF} + }, { // HOME + {0x1A}, {0x33}, {0x33}, {0xFF}, {0xFF}, {0xFF} + }, { // MONEY + {0x2C}, {0x0E}, {0x33}, {0xFF}, {0xFF}, {0xFF} + }, { // ALLOWANCE + {0x2A}, {0x23}, {0x02}, {0x33}, {0xFF}, {0xFF} + }, { // BATH + {0x02}, {0x33}, {0x33}, {0xFF}, {0xFF}, {0xFF} + }, { // CONVERSATION + {0x2A}, {0x32}, {0x03}, {0x2C}, {0x33}, {0xFF} + }, { // SCHOOL + {0x29}, {0x33}, {0x33}, {0xFF}, {0xFF}, {0xFF} + }, { // COMMEMORATE + {0x2C}, {0x0B}, {0x32}, {0x05}, {0xFF}, {0xFF} + }, { // HABIT + {0x00}, {0x11}, {0x33}, {0xFF}, {0xFF}, {0xFF} + }, { // GROUP + {0x27}, {0x33}, {0x33}, {0xFF}, {0xFF}, {0xFF} + }, { // WORD + {0x30}, {0x33}, {0x33}, {0xFF}, {0xFF}, {0xFF} + }, { // STORE + {0x18}, {0x33}, {0x33}, {0xFF}, {0xFF}, {0xFF} + }, { // SERVICE + {0x32}, {0x11}, {0x33}, {0xFF}, {0xFF}, {0xFF} + }, { // WORK + {0x32}, {0x33}, {0x33}, {0xFF}, {0xFF}, {0xFF} + }, { // SYSTEM + {0x11}, {0x2C}, {0x33}, {0xFF}, {0xFF}, {0xFF} + }, { // TRAIN + {0x30}, {0x03}, {0x33}, {0xFF}, {0xFF}, {0xFF} + }, { // CLASS + {0x02}, {0x33}, {0x33}, {0xFF}, {0xFF}, {0xFF} + }, { // LESSONS + {0x09}, {0x1D}, {0x33}, {0xFF}, {0xFF}, {0xFF} + }, { // INFORMATION + {0x0F}, {0x30}, {0x05}, {0x2C}, {0x33}, {0xFF} + }, { // LIVING + {0x11}, {0x0E}, {0x33}, {0xFF}, {0xFF}, {0xFF} + }, { // TEACHER + {0x0C}, {0x30}, {0x33}, {0xFF}, {0xFF}, {0xFF} + }, { // TOURNAMENT + {0x32}, {0x2A}, {0x0B}, {0xFF}, {0xFF}, {0xFF} + }, { // LETTER + {0x0B}, {0x32}, {0x33}, {0xFF}, {0xFF}, {0xFF} + }, { // EVENT + {0x0C}, {0x09}, {0x33}, {0xFF}, {0xFF}, {0xFF} + }, { // DIGITAL + {0x11}, {0x11}, {0x2C}, {0xFF}, {0xFF}, {0xFF} + }, { // TEST + {0x0B}, {0x33}, {0x33}, {0xFF}, {0xFF}, {0xFF} + }, { // DEPT. STORE + {0x0C}, {0x1B}, {0x0B}, {0x1A}, {0xFF}, {0xFF} + }, { // TELEVISION + {0x09}, {0x2C}, {0x11}, {0x1B}, {0x33}, {0xFF} + }, { // PHONE + {0x18}, {0x33}, {0x33}, {0xFF}, {0xFF}, {0xFF} + }, { // ITEM + {0x12}, {0x2A}, {0x33}, {0xFF}, {0xFF}, {0xFF} + }, { // NAME + {0x03}, {0x33}, {0x33}, {0xFF}, {0xFF}, {0xFF} + }, { // NEWS + {0x27}, {0x33}, {0x33}, {0xFF}, {0xFF}, {0xFF} + }, { // POPULAR + {0x1D}, {0x27}, {0x32}, {0xFF}, {0xFF}, {0xFF} + }, { // PARTY + {0x1C}, {0x0E}, {0x33}, {0xFF}, {0xFF}, {0xFF} + }, { // STUDY + {0x2C}, {0x0E}, {0x33}, {0xFF}, {0xFF}, {0xFF} + }, { // MACHINE + {0x2C}, {0x0E}, {0x33}, {0xFF}, {0xFF}, {0xFF} + }, { // MAIL + {0x03}, {0x24}, {0x33}, {0xFF}, {0xFF}, {0xFF} + }, { // MESSAGE + {0x0B}, {0x2C}, {0x33}, {0xFF}, {0xFF}, {0xFF} + }, { // PROMISE + {0x1D}, {0x11}, {0x33}, {0xFF}, {0xFF}, {0xFF} + }, { // DREAM + {0x0E}, {0x33}, {0xFF}, {0xFF}, {0xFF}, {0xFF} + }, { // KINDERGARTEN + {0x0F}, {0x32}, {0x17}, {0x0F}, {0x33}, {0xFF} + }, { // LIFE + {0x12}, {0x33}, {0x33}, {0xFF}, {0xFF}, {0xFF} + }, { // RADIO + {0x03}, {0x0C}, {0x18}, {0xFF}, {0xFF}, {0xFF} + }, { // RENTAL + {0x0B}, {0x26}, {0x33}, {0xFF}, {0xFF}, {0xFF} + }, { // WORLD + {0x32}, {0x24}, {0x33}, {0xFF}, {0xFF}, {0xFF} + } +}; +#elif GERMAN +const struct BardSound gBardSounds_Lifestyle[][6] = { + { // CHORES + {0x11}, {0x0B}, {0xFF}, {0xFF}, {0xFF}, {0xFF} + }, { // HOME + {0x0B}, {0x11}, {0xFF}, {0xFF}, {0xFF}, {0xFF} + }, { // MONEY + {0x0B}, {0xFF}, {0xFF}, {0xFF}, {0xFF}, {0xFF} + }, { // ALLOWANCE + {0x02}, {0x0B}, {0x0B}, {0xFF}, {0xFF}, {0xFF} + }, { // BATH + {0x02}, {0xFF}, {0xFF}, {0xFF}, {0xFF}, {0xFF} + }, { // CONVERSATION + {0x0B}, {0x0B}, {0xFF}, {0xFF}, {0xFF}, {0xFF} + }, { // SCHOOL + {0x29}, {0x0B}, {0xFF}, {0xFF}, {0xFF}, {0xFF} + }, { // COMMEMORATE + {0x0B}, {0x0B}, {0x0B}, {0xFF}, {0xFF}, {0xFF} + }, { // HABIT + {0x0B}, {0x1A}, {0x0B}, {0x11}, {0xFF}, {0xFF} + }, { // GROUP + {0x29}, {0x0B}, {0xFF}, {0xFF}, {0xFF}, {0xFF} + }, { // WORD + {0x1A}, {0xFF}, {0xFF}, {0xFF}, {0xFF}, {0xFF} + }, { // STORE + {0x02}, {0x0B}, {0xFF}, {0xFF}, {0xFF}, {0xFF} + }, { // SERVICE + {0x0B}, {0x11}, {0xFF}, {0xFF}, {0xFF}, {0xFF} + }, { // WORK + {0x02}, {0x0B}, {0x11}, {0xFF}, {0xFF}, {0xFF} + }, { // SYSTEM + {0x11}, {0x0B}, {0xFF}, {0xFF}, {0xFF}, {0xFF} + }, { // TRAIN + {0x02}, {0x11}, {0x11}, {0x0B}, {0x0B}, {0xFF} + }, { // CLASS + {0x0B}, {0x11}, {0x1A}, {0xFF}, {0xFF}, {0xFF} + }, { // LESSONS + {0x29}, {0x0B}, {0x11}, {0xFF}, {0xFF}, {0xFF} + }, { // INFORMATION + {0x11}, {0x1A}, {0x02}, {0x11}, {0x1A}, {0xFF} + }, { // LIVING + {0x0B}, {0x0B}, {0x11}, {0xFF}, {0xFF}, {0xFF} + }, { // TEACHER + {0x0B}, {0x0B}, {0xFF}, {0xFF}, {0xFF}, {0xFF} + }, { // TOURNAMENT + {0x29}, {0x11}, {0xFF}, {0xFF}, {0xFF}, {0xFF} + }, { // LETTER + {0x11}, {0xFF}, {0xFF}, {0xFF}, {0xFF}, {0xFF} + }, { // EVENT + {0x0B}, {0x0B}, {0x0B}, {0xFF}, {0xFF}, {0xFF} + }, { // DIGITAL + {0x11}, {0x11}, {0x02}, {0x0B}, {0xFF}, {0xFF} + }, { // TEST + {0x0B}, {0xFF}, {0xFF}, {0xFF}, {0xFF}, {0xFF} + }, { // DEPT. STORE + {0x02}, {0x29}, {0x02}, {0x29}, {0xFF}, {0xFF} + }, { // TELEVISION + {0x0B}, {0x0B}, {0x0B}, {0xFF}, {0xFF}, {0xFF} + }, { // PHONE + {0x0B}, {0x0B}, {0x1A}, {0xFF}, {0xFF}, {0xFF} + }, { // ITEM + {0x11}, {0x0B}, {0xFF}, {0xFF}, {0xFF}, {0xFF} + }, { // NAME + {0x02}, {0x0B}, {0xFF}, {0xFF}, {0xFF}, {0xFF} + }, { // NEWS + {0x0B}, {0x29}, {0x11}, {0x0B}, {0x11}, {0x0B} + }, { // POPULAR + {0x1A}, {0x29}, {0x0B}, {0xFF}, {0xFF}, {0xFF} + }, { // PARTY + {0x02}, {0x11}, {0xFF}, {0xFF}, {0xFF}, {0xFF} + }, { // STUDY + {0x0B}, {0x0B}, {0xFF}, {0xFF}, {0xFF}, {0xFF} + }, { // MACHINE + {0x02}, {0x11}, {0x0B}, {0xFF}, {0xFF}, {0xFF} + }, { // MAIL + {0x1A}, {0xFF}, {0xFF}, {0xFF}, {0xFF}, {0xFF} + }, { // MESSAGE + {0x11}, {0x0B}, {0x11}, {0x29}, {0xFF}, {0xFF} + }, { // PROMISE + {0x0B}, {0x0B}, {0x0B}, {0xFF}, {0xFF}, {0xFF} + }, { // DREAM + {0x02}, {0x29}, {0xFF}, {0xFF}, {0xFF}, {0xFF} + }, { // KINDERGARTEN + {0x11}, {0x0B}, {0x02}, {0x0B}, {0xFF}, {0xFF} + }, { // LIFE + {0x0B}, {0x0B}, {0xFF}, {0xFF}, {0xFF}, {0xFF} + }, { // RADIO + {0x02}, {0x11}, {0x1A}, {0xFF}, {0xFF}, {0xFF} + }, { // RENTAL + {0x11}, {0x0B}, {0xFF}, {0xFF}, {0xFF}, {0xFF} + }, { // WORLD + {0x0B}, {0xFF}, {0xFF}, {0xFF}, {0xFF}, {0xFF} + } +}; +#endif // ENGLISH/GERMAN + +#endif // GUARD_DATA_BARD_MUSIC_LIFESTYLE_H diff --git a/src/data/bard_music/misc.h b/src/data/bard_music/misc.h new file mode 100644 index 000000000..ef7ab33e4 --- /dev/null +++ b/src/data/bard_music/misc.h @@ -0,0 +1,182 @@ +#ifndef GUARD_DATA_BARD_MUSIC_MISC_H +#define GUARD_DATA_BARD_MUSIC_MISC_H + +#if ENGLISH +const struct BardSound gBardSounds_Misc[][6] = { + { // HIGHS + {0x14}, {0x33}, {0x33}, {0xFF}, {0xFF}, {0xFF} + }, { // LOWS + {0x18}, {0x33}, {0x33}, {0xFF}, {0xFF}, {0xFF} + }, { // UM + {0x2B}, {0x33}, {0x33}, {0xFF}, {0xFF}, {0xFF} + }, { // REAR + {0x2A}, {0x33}, {0x33}, {0xFF}, {0xFF}, {0xFF} + }, { // THINGS + {0x0C}, {0x33}, {0x33}, {0xFF}, {0xFF}, {0xFF} + }, { // THING + {0x0C}, {0x33}, {0x33}, {0xFF}, {0xFF}, {0xFF} + }, { // BELOW + {0x0C}, {0x18}, {0x33}, {0xFF}, {0xFF}, {0xFF} + }, { // ABOVE + {0x2A}, {0x2C}, {0x33}, {0xFF}, {0xFF}, {0xFF} + }, { // BACK + {0x00}, {0x33}, {0x33}, {0xFF}, {0xFF}, {0xFF} + }, { // HIGH + {0x12}, {0x33}, {0x33}, {0xFF}, {0xFF}, {0xFF} + }, { // HERE + {0x0C}, {0x30}, {0x33}, {0xFF}, {0xFF}, {0xFF} + }, { // INSIDE + {0x0F}, {0x12}, {0x33}, {0xFF}, {0xFF}, {0xFF} + }, { // OUTSIDE + {0x21}, {0x12}, {0x33}, {0xFF}, {0xFF}, {0xFF} + }, { // BESIDE + {0x0E}, {0x12}, {0x33}, {0xFF}, {0xFF}, {0xFF} + }, { // THIS IS IT! + {0x11}, {0x11}, {0x11}, {0xFF}, {0xFF}, {0xFF} + }, { // THIS + {0x11}, {0x33}, {0x33}, {0xFF}, {0xFF}, {0xFF} + }, { // EVERY + {0x09}, {0x30}, {0x0E}, {0xFF}, {0xFF}, {0xFF} + }, { // THESE + {0x0C}, {0x33}, {0x33}, {0xFF}, {0xFF}, {0xFF} + }, { // THESE WERE + {0x0E}, {0x32}, {0x33}, {0xFF}, {0xFF}, {0xFF} + }, { // DOWN + {0x21}, {0x33}, {0x33}, {0xFF}, {0xFF}, {0xFF} + }, { // THAT + {0x02}, {0x33}, {0x33}, {0xFF}, {0xFF}, {0xFF} + }, { // THOSE ARE + {0x18}, {0x1B}, {0x33}, {0xFF}, {0xFF}, {0xFF} + }, { // THOSE WERE + {0x18}, {0x30}, {0x33}, {0xFF}, {0xFF}, {0xFF} + }, { // THAT'S IT! + {0x01}, {0x11}, {0x33}, {0xFF}, {0xFF}, {0xFF} + }, { // AM + {0x00}, {0x10}, {0x33}, {0xFF}, {0xFF}, {0xFF} + }, { // THAT WAS + {0x00}, {0x2C}, {0x33}, {0xFF}, {0xFF}, {0xFF} + }, { // FRONT + {0x2B}, {0x33}, {0x33}, {0xFF}, {0xFF}, {0xFF} + }, { // UP + {0x2A}, {0x33}, {0x33}, {0xFF}, {0xFF}, {0xFF} + }, { // CHOICE + {0x0F}, {0x33}, {0x33}, {0xFF}, {0xFF}, {0xFF} + }, { // FAR + {0x1B}, {0x33}, {0x33}, {0xFF}, {0xFF}, {0xFF} + }, { // AWAY + {0x2C}, {0x04}, {0x33}, {0xFF}, {0xFF}, {0xFF} + }, { // NEAR + {0x0C}, {0x30}, {0x33}, {0xFF}, {0xFF}, {0xFF} + }, { // WHERE + {0x09}, {0x32}, {0x33}, {0xFF}, {0xFF}, {0xFF} + }, { // WHEN + {0x10}, {0x33}, {0x33}, {0xFF}, {0xFF}, {0xFF} + }, { // WHAT + {0x2C}, {0x33}, {0x33}, {0xFF}, {0xFF}, {0xFF} + }, { // DEEP + {0x0E}, {0x33}, {0xFF}, {0xFF}, {0xFF}, {0xFF} + }, { // SHALLOW + {0x01}, {0x1A}, {0x33}, {0xFF}, {0xFF}, {0xFF} + }, { // WHY + {0x14}, {0x33}, {0x33}, {0xFF}, {0xFF}, {0xFF} + }, { // CONFUSED + {0x2A}, {0x2E}, {0x33}, {0xFF}, {0xFF}, {0xFF} + }, { // OPPOSITE + {0x1D}, {0x1A}, {0x11}, {0xFF}, {0xFF}, {0xFF} + }, { // LEFT + {0x09}, {0x33}, {0x33}, {0xFF}, {0xFF}, {0xFF} + }, { // RIGHT + {0x12}, {0x33}, {0x33}, {0xFF}, {0xFF}, {0xFF} + } +}; +#elif GERMAN +const struct BardSound gBardSounds_Misc[][6] = { + { // HIGHS + {0x0B}, {0x0B}, {0xFF}, {0xFF}, {0xFF}, {0xFF} + }, { // LOWS + {0x11}, {0x0B}, {0xFF}, {0xFF}, {0xFF}, {0xFF} + }, { // UM + {0x0B}, {0xFF}, {0xFF}, {0xFF}, {0xFF}, {0xFF} + }, { // REAR + {0x11}, {0x0B}, {0xFF}, {0xFF}, {0xFF}, {0xFF} + }, { // THINGS + {0x02}, {0x0B}, {0xFF}, {0xFF}, {0xFF}, {0xFF} + }, { // THING + {0x11}, {0xFF}, {0xFF}, {0xFF}, {0xFF}, {0xFF} + }, { // BELOW + {0x29}, {0x0B}, {0x02}, {0xFF}, {0xFF}, {0xFF} + }, { // ABOVE + {0x1A}, {0x0B}, {0x02}, {0xFF}, {0xFF}, {0xFF} + }, { // BACK + {0x29}, {0x11}, {0xFF}, {0xFF}, {0xFF}, {0xFF} + }, { // HIGH + {0x1A}, {0xFF}, {0xFF}, {0xFF}, {0xFF}, {0xFF} + }, { // HERE + {0x11}, {0xFF}, {0xFF}, {0xFF}, {0xFF}, {0xFF} + }, { // INSIDE + {0x11}, {0x0B}, {0xFF}, {0xFF}, {0xFF}, {0xFF} + }, { // OUTSIDE + {0x02}, {0x29}, {0x0B}, {0xFF}, {0xFF}, {0xFF} + }, { // BESIDE + {0x0B}, {0x0B}, {0xFF}, {0xFF}, {0xFF}, {0xFF} + }, { // THIS IS IT! + {0x02}, {0x11}, {0x0B}, {0xFF}, {0xFF}, {0xFF} + }, { // THIS + {0x11}, {0xFF}, {0xFF}, {0xFF}, {0xFF}, {0xFF} + }, { // EVERY + {0x02}, {0x0B}, {0xFF}, {0xFF}, {0xFF}, {0xFF} + }, { // THESE + {0x11}, {0x0B}, {0x0B}, {0xFF}, {0xFF}, {0xFF} + }, { // THESE WERE + {0x11}, {0x0B}, {0x02}, {0x0B}, {0xFF}, {0xFF} + }, { // DOWN + {0x11}, {0x29}, {0x0B}, {0xFF}, {0xFF}, {0xFF} + }, { // THAT + {0x02}, {0xFF}, {0xFF}, {0xFF}, {0xFF}, {0xFF} + }, { // THOSE ARE + {0x1A}, {0xFF}, {0xFF}, {0xFF}, {0xFF}, {0xFF} + }, { // THOSE WERE + {0x0B}, {0x29}, {0xFF}, {0xFF}, {0xFF}, {0xFF} + }, { // THAT'S IT! + {0x02}, {0x11}, {0xFF}, {0xFF}, {0xFF}, {0xFF} + }, { // AM + {0x02}, {0x11}, {0xFF}, {0xFF}, {0xFF}, {0xFF} + }, { // THAT WAS + {0x02}, {0x02}, {0xFF}, {0xFF}, {0xFF}, {0xFF} + }, { // FRONT + {0x1A}, {0x0B}, {0xFF}, {0xFF}, {0xFF}, {0xFF} + }, { // UP + {0x1A}, {0x0B}, {0xFF}, {0xFF}, {0xFF}, {0xFF} + }, { // CHOICE + {0x02}, {0xFF}, {0xFF}, {0xFF}, {0xFF}, {0xFF} + }, { // FAR + {0x0B}, {0x11}, {0xFF}, {0xFF}, {0xFF}, {0xFF} + }, { // AWAY + {0x1A}, {0xFF}, {0xFF}, {0xFF}, {0xFF}, {0xFF} + }, { // NEAR + {0x02}, {0x0B}, {0xFF}, {0xFF}, {0xFF}, {0xFF} + }, { // WHERE + {0x1A}, {0xFF}, {0xFF}, {0xFF}, {0xFF}, {0xFF} + }, { // WHEN + {0x0B}, {0x11}, {0xFF}, {0xFF}, {0xFF}, {0xFF} + }, { // WHAT + {0x02}, {0xFF}, {0xFF}, {0xFF}, {0xFF}, {0xFF} + }, { // DEEP + {0x11}, {0xFF}, {0xFF}, {0xFF}, {0xFF}, {0xFF} + }, { // SHALLOW + {0x0B}, {0x11}, {0xFF}, {0xFF}, {0xFF}, {0xFF} + }, { // WHY + {0x02}, {0x29}, {0xFF}, {0xFF}, {0xFF}, {0xFF} + }, { // CONFUSED + {0x0B}, {0x11}, {0xFF}, {0xFF}, {0xFF}, {0xFF} + }, { // OPPOSITE + {0x0B}, {0x0B}, {0x11}, {0x0B}, {0xFF}, {0xFF} + }, { // LEFT + {0x11}, {0xFF}, {0xFF}, {0xFF}, {0xFF}, {0xFF} + }, { // RIGHT + {0x0B}, {0xFF}, {0xFF}, {0xFF}, {0xFF}, {0xFF} + } +}; +#endif // ENGLISH/GERMAN + +#endif // GUARD_DATA_BARD_MUSIC_MISC_H diff --git a/src/data/bard_music/moves.h b/src/data/bard_music/moves.h new file mode 100644 index 000000000..d8b7bb025 --- /dev/null +++ b/src/data/bard_music/moves.h @@ -0,0 +1,1410 @@ +#ifndef GUARD_DATA_BARD_MUSIC_MOVES_H +#define GUARD_DATA_BARD_MUSIC_MOVES_H + +#if ENGLISH +const struct BardSound gBardSounds_Moves1[][6] = { + { // THUNDERBOLT + {0x2A}, {0x30}, {0x1A}, {0xFF}, {0xFF}, {0xFF} + }, { // IRON_TAIL + {0x12}, {0x1B}, {0x05}, {0x33}, {0xFF}, {0xFF} + }, { // ICE_BALL + {0x12}, {0x1B}, {0x33}, {0x33}, {0xFF}, {0xFF} + }, { // YAWN + {0x1B}, {0x33}, {0x33}, {0xFF}, {0xFF}, {0xFF} + }, { // LOVELY_KISS + {0x2C}, {0x2C}, {0x0C}, {0x11}, {0x33}, {0xFF} + }, { // NIGHTMARE + {0x12}, {0x05}, {0x33}, {0xFF}, {0xFF}, {0xFF} + }, { // MORNING_SUN + {0x1A}, {0x0E}, {0x2C}, {0x33}, {0xFF}, {0xFF} + }, { // VITAL_THROW + {0x12}, {0x24}, {0x18}, {0x33}, {0xFF}, {0xFF} + }, { // DIG + {0x11}, {0x33}, {0x33}, {0xFF}, {0xFF}, {0xFF} + }, { // THRASH + {0x30}, {0x02}, {0x33}, {0xFF}, {0xFF}, {0xFF} + }, { // SWEET_SCENT + {0x0E}, {0x0B}, {0x33}, {0x33}, {0xFF}, {0xFF} + }, { // CHARM + {0x15}, {0x33}, {0x33}, {0xFF}, {0xFF}, {0xFF} + }, { // RAIN_DANCE + {0x03}, {0x00}, {0x33}, {0xFF}, {0xFF}, {0xFF} + }, { // CONFUSE_RAY + {0x1B}, {0x2D}, {0x03}, {0x33}, {0xFF}, {0xFF} + }, { // HAIL + {0x05}, {0x33}, {0x33}, {0xFF}, {0xFF}, {0xFF} + }, { // AROMATHERAPY + {0x2A}, {0x18}, {0x2C}, {0x00}, {0x1B}, {0x0E} + }, { // BUBBLE + {0x2C}, {0x24}, {0x33}, {0xFF}, {0xFF}, {0xFF} + }, { // ENCORE + {0x1B}, {0x18}, {0x33}, {0xFF}, {0xFF}, {0xFF} + }, { // CUT + {0x2A}, {0x33}, {0x33}, {0xFF}, {0xFF}, {0xFF} + }, { // RAGE + {0x03}, {0x33}, {0x33}, {0xFF}, {0xFF}, {0xFF} + }, { // SUPER_FANG + {0x27}, {0x30}, {0x01}, {0x33}, {0xFF}, {0xFF} + }, { // PAIN_SPLIT + {0x03}, {0x0F}, {0x33}, {0xFF}, {0xFF}, {0xFF} + }, { // TORMENT + {0x18}, {0x09}, {0x33}, {0xFF}, {0xFF}, {0xFF} + }, { // STRING_SHOT + {0x32}, {0x0C}, {0x1B}, {0xFF}, {0xFF}, {0xFF} + }, { // SWAGGER + {0x02}, {0x30}, {0x33}, {0xFF}, {0xFF}, {0xFF} + }, { // SNORE + {0x18}, {0x33}, {0x33}, {0xFF}, {0xFF}, {0xFF} + }, { // HEAL_BELL + {0x0E}, {0x0A}, {0x33}, {0x33}, {0xFF}, {0xFF} + }, { // SCREECH + {0x30}, {0x0D}, {0x33}, {0xFF}, {0xFF}, {0xFF} + }, { // ROCK_THROW + {0x1B}, {0x18}, {0x33}, {0xFF}, {0xFF}, {0xFF} + }, { // ROCK_SMASH + {0x1B}, {0x00}, {0x33}, {0xFF}, {0xFF}, {0xFF} + }, { // ROCK_SLIDE + {0x1B}, {0x12}, {0x33}, {0xFF}, {0xFF}, {0xFF} + }, { // WEATHER_BALL + {0x09}, {0x30}, {0x1B}, {0x33}, {0xFF}, {0xFF} + }, { // WHIRLPOOL + {0x30}, {0x27}, {0x33}, {0xFF}, {0xFF}, {0xFF} + }, { // FAKE_TEARS + {0x03}, {0x0E}, {0x33}, {0xFF}, {0xFF}, {0xFF} + }, { // SING + {0x0C}, {0x33}, {0x33}, {0xFF}, {0xFF}, {0xFF} + }, { // SPITE + {0x12}, {0x33}, {0x33}, {0xFF}, {0xFF}, {0xFF} + }, { // AIR_CUTTER + {0x05}, {0x2A}, {0x30}, {0x33}, {0xFF}, {0xFF} + }, { // AEROBLAST + {0x05}, {0x18}, {0x00}, {0x33}, {0xFF}, {0xFF} + }, { // SMOKESCREEN + {0x1A}, {0x0E}, {0x33}, {0xFF}, {0xFF}, {0xFF} + }, { // PURSUIT + {0x30}, {0x27}, {0x33}, {0xFF}, {0xFF}, {0xFF} + }, { // DOUBLE_SLAP + {0x2A}, {0x0A}, {0x02}, {0xFF}, {0xFF}, {0xFF} + }, { // MIRROR_MOVE + {0x0C}, {0x32}, {0x29}, {0xFF}, {0xFF}, {0xFF} + }, { // OVERHEAT + {0x18}, {0x30}, {0x0C}, {0xFF}, {0xFF}, {0xFF} + }, { // AURORA_BEAM + {0x1B}, {0x1A}, {0x2C}, {0x0C}, {0x33}, {0xFF} + }, { // MEMENTO + {0x2A}, {0x09}, {0x18}, {0xFF}, {0xFF}, {0xFF} + }, { // OCTAZOOKA + {0x1B}, {0x2C}, {0x28}, {0x2C}, {0xFF}, {0xFF} + }, { // FLATTER + {0x00}, {0x30}, {0x33}, {0xFF}, {0xFF}, {0xFF} + }, { // ASTONISH + {0x2A}, {0x1B}, {0x11}, {0xFF}, {0xFF}, {0xFF} + }, { // WILL_O_WISP + {0x11}, {0x18}, {0x11}, {0xFF}, {0xFF}, {0xFF} + }, { // RETURN + {0x0C}, {0x30}, {0x33}, {0xFF}, {0xFF}, {0xFF} + }, { // GRUDGE + {0x2B}, {0x33}, {0x33}, {0xFF}, {0xFF}, {0xFF} + }, { // STRENGTH + {0x32}, {0x03}, {0x33}, {0xFF}, {0xFF}, {0xFF} + }, { // COUNTER + {0x21}, {0x30}, {0x33}, {0xFF}, {0xFF}, {0xFF} + }, { // FLAME_WHEEL + {0x03}, {0x0E}, {0x33}, {0x33}, {0xFF}, {0xFF} + }, { // FLAMETHROWER + {0x00}, {0x1A}, {0x30}, {0xFF}, {0xFF}, {0xFF} + }, { // ODOR_SLEUTH + {0x18}, {0x30}, {0x27}, {0x33}, {0xFF}, {0xFF} + }, { // SHARPEN + {0x1B}, {0x09}, {0x33}, {0xFF}, {0xFF}, {0xFF} + }, { // DOUBLE_TEAM + {0x2C}, {0x2C}, {0x0C}, {0xFF}, {0xFF}, {0xFF} + }, { // GUST + {0x2C}, {0x33}, {0x33}, {0xFF}, {0xFF}, {0xFF} + }, { // HARDEN + {0x1B}, {0x09}, {0x33}, {0xFF}, {0xFF}, {0xFF} + }, { // DISABLE + {0x11}, {0x03}, {0x24}, {0xFF}, {0xFF}, {0xFF} + }, { // RAZOR_WIND + {0x05}, {0x30}, {0x0F}, {0x33}, {0xFF}, {0xFF} + }, { // BIDE + {0x0B}, {0x32}, {0x33}, {0xFF}, {0xFF}, {0xFF} + }, { // CRUNCH + {0x30}, {0x2A}, {0x33}, {0xFF}, {0xFF}, {0xFF} + }, { // BITE + {0x12}, {0x33}, {0x33}, {0xFF}, {0xFF}, {0xFF} + }, { // THUNDER + {0x2A}, {0x30}, {0x33}, {0xFF}, {0xFF}, {0xFF} + }, { // THUNDER_PUNCH + {0x2A}, {0x30}, {0x2C}, {0xFF}, {0xFF}, {0xFF} + }, { // ENDEAVOR + {0x09}, {0x09}, {0x30}, {0xFF}, {0xFF}, {0xFF} + }, { // FACADE + {0x2C}, {0x1B}, {0x33}, {0xFF}, {0xFF}, {0xFF} + }, { // KARATE_CHOP + {0x2C}, {0x1D}, {0x0E}, {0x1D}, {0xFF}, {0xFF} + }, { // CLAMP + {0x00}, {0x33}, {0x33}, {0xFF}, {0xFF}, {0xFF} + }, { // WITHDRAW + {0x11}, {0x1B}, {0x33}, {0xFF}, {0xFF}, {0xFF} + }, { // CONSTRICT + {0x1B}, {0x11}, {0x33}, {0xFF}, {0xFF}, {0xFF} + }, { // BRICK_BREAK + {0x11}, {0x05}, {0x33}, {0xFF}, {0xFF}, {0xFF} + }, { // ROCK_TOMB + {0x1B}, {0x27}, {0x33}, {0xFF}, {0xFF}, {0xFF} + }, { // FOCUS_ENERGY + {0x1A}, {0x2C}, {0x0B}, {0x30}, {0x0C}, {0xFF} + }, { // FOCUS_PUNCH + {0x18}, {0x2C}, {0x2C}, {0xFF}, {0xFF}, {0xFF} + }, { // GIGA_DRAIN + {0x11}, {0x2A}, {0x03}, {0x33}, {0xFF}, {0xFF} + }, { // REVERSAL + {0x0C}, {0x30}, {0x24}, {0xFF}, {0xFF}, {0xFF} + }, { // SMELLING_SALT + {0x09}, {0x0C}, {0x1B}, {0xFF}, {0xFF}, {0xFF} + }, { // SPORE + {0x1A}, {0x33}, {0x33}, {0xFF}, {0xFF}, {0xFF} + }, { // LEECH_LIFE + {0x0C}, {0x12}, {0x33}, {0x33}, {0xFF}, {0xFF} + }, { // SLASH + {0x00}, {0x33}, {0x33}, {0xFF}, {0xFF}, {0xFF} + }, { // SILVER_WIND + {0x11}, {0x30}, {0x0F}, {0xFF}, {0xFF}, {0xFF} + }, { // METAL_SOUND + {0x09}, {0x1B}, {0x21}, {0xFF}, {0xFF}, {0xFF} + }, { // GRASS_WHISTLE + {0x00}, {0x11}, {0x24}, {0xFF}, {0xFF}, {0xFF} + }, { // TICKLE + {0x11}, {0x24}, {0x33}, {0xFF}, {0xFF}, {0xFF} + }, { // SPIDER_WEB + {0x12}, {0x30}, {0x09}, {0xFF}, {0xFF}, {0xFF} + }, { // CRABHAMMER + {0x02}, {0x00}, {0x30}, {0x33}, {0xFF}, {0xFF} + }, { // HAZE + {0x03}, {0x33}, {0x33}, {0xFF}, {0xFF}, {0xFF} + }, { // MEAN_LOOK + {0x0C}, {0x24}, {0x33}, {0xFF}, {0xFF}, {0xFF} + }, { // CROSS_CHOP + {0x1B}, {0x1D}, {0x33}, {0xFF}, {0xFF}, {0xFF} + }, { // OUTRAGE + {0x21}, {0x03}, {0x33}, {0xFF}, {0xFF}, {0xFF} + }, { // LOW_KICK + {0x18}, {0x11}, {0x33}, {0xFF}, {0xFF}, {0xFF} + }, { // ANCIENT_POWER + {0x03}, {0x0C}, {0x21}, {0x32}, {0x33}, {0xFF} + }, { // SYNTHESIS + {0x0F}, {0x2A}, {0x0F}, {0xFF}, {0xFF}, {0xFF} + }, { // AGILITY + {0x2A}, {0x11}, {0x11}, {0x0E}, {0xFF}, {0xFF} + }, { // RAPID_SPIN + {0x00}, {0x0F}, {0x0F}, {0xFF}, {0xFF}, {0xFF} + }, { // ICY_WIND + {0x12}, {0x0C}, {0x0F}, {0xFF}, {0xFF}, {0xFF} + }, { // MIND_READER + {0x12}, {0x0C}, {0x30}, {0xFF}, {0xFF}, {0xFF} + }, { // COSMIC_POWER + {0x1B}, {0x11}, {0x21}, {0x30}, {0xFF}, {0xFF} + }, { // SKY_ATTACK + {0x12}, {0x2A}, {0x00}, {0xFF}, {0xFF}, {0xFF} + }, { // POWDER_SNOW + {0x21}, {0x30}, {0x18}, {0xFF}, {0xFF}, {0xFF} + }, { // FOLLOW_ME + {0x15}, {0x18}, {0x0C}, {0x33}, {0xFF}, {0xFF} + }, { // METEOR_MASH + {0x0C}, {0x0C}, {0x18}, {0x00}, {0x33}, {0x33} + }, { // ENDURE + {0x09}, {0x30}, {0x33}, {0xFF}, {0xFF}, {0xFF} + }, { // ROLLOUT + {0x1A}, {0x21}, {0x33}, {0xFF}, {0xFF}, {0xFF} + }, { // SCARY_FACE + {0x03}, {0x0C}, {0x03}, {0xFF}, {0xFF}, {0xFF} + }, { // PSYBEAM + {0x12}, {0x0C}, {0x33}, {0xFF}, {0xFF}, {0xFF} + }, { // PSYWAVE + {0x12}, {0x03}, {0x33}, {0xFF}, {0xFF}, {0xFF} + }, { // PSYCHIC + {0x12}, {0x0F}, {0x33}, {0xFF}, {0xFF}, {0xFF} + }, { // HYPNOSIS + {0x11}, {0x18}, {0x11}, {0xFF}, {0xFF}, {0xFF} + }, { // UPROAR + {0x2C}, {0x1A}, {0x33}, {0xFF}, {0xFF}, {0xFF} + }, { // WATER_SPOUT + {0x1B}, {0x30}, {0x21}, {0xFF}, {0xFF}, {0xFF} + }, { // SIGNAL_BEAM + {0x11}, {0x1B}, {0x0C}, {0x33}, {0xFF}, {0xFF} + }, { // PSYCH_UP + {0x12}, {0x2A}, {0x33}, {0xFF}, {0xFF}, {0xFF} + }, { // SUBMISSION + {0x2A}, {0x11}, {0x0B}, {0xFF}, {0xFF}, {0xFF} + }, { // RECOVER + {0x0C}, {0x2C}, {0x30}, {0xFF}, {0xFF}, {0xFF} + }, { // EARTHQUAKE + {0x30}, {0x05}, {0x33}, {0xFF}, {0xFF}, {0xFF} + }, { // NATURE_POWER + {0x03}, {0x30}, {0x21}, {0x30}, {0xFF}, {0xFF} + }, { // LICK + {0x11}, {0x33}, {0x33}, {0xFF}, {0xFF}, {0xFF} + }, { // FLAIL + {0x05}, {0x2A}, {0x33}, {0xFF}, {0xFF}, {0xFF} + }, { // TAIL_WHIP + {0x05}, {0x11}, {0x33}, {0xFF}, {0xFF}, {0xFF} + }, { // SELF_DESTRUCT + {0x09}, {0x0C}, {0x2A}, {0x33}, {0xFF}, {0xFF} + }, { // STUN_SPORE + {0x2C}, {0x1A}, {0x33}, {0x33}, {0xFF}, {0xFF} + }, { // BIND + {0x14}, {0x33}, {0x33}, {0xFF}, {0xFF}, {0xFF} + }, { // SHADOW_PUNCH + {0x00}, {0x18}, {0x2C}, {0xFF}, {0xFF}, {0xFF} + }, { // SHADOW_BALL + {0x00}, {0x18}, {0x1B}, {0xFF}, {0xFF}, {0xFF} + }, { // CHARGE + {0x1B}, {0x33}, {0x33}, {0xFF}, {0xFF}, {0xFF} + }, { // MIST + {0x11}, {0x33}, {0x33}, {0xFF}, {0xFF}, {0xFF} + }, { // FISSURE + {0x11}, {0x32}, {0x33}, {0xFF}, {0xFF}, {0xFF} + }, { // EXTREME_SPEED + {0x09}, {0x0C}, {0x0C}, {0x33}, {0xFF}, {0xFF} + }, { // EXTRASENSORY + {0x09}, {0x2A}, {0x09}, {0x18}, {0x0C}, {0xFF} + }, { // SAFEGUARD + {0x03}, {0x1B}, {0x33}, {0x33}, {0xFF}, {0xFF} + }, { // ABSORB + {0x2A}, {0x1A}, {0x33}, {0xFF}, {0xFF}, {0xFF} + }, { // SKY_UPPERCUT + {0x12}, {0x2C}, {0x30}, {0x2A}, {0xFF}, {0xFF} + }, { // SKILL_SWAP + {0x11}, {0x1B}, {0x33}, {0xFF}, {0xFF}, {0xFF} + }, { // SKETCH + {0x09}, {0x33}, {0x33}, {0xFF}, {0xFF}, {0xFF} + }, { // HEADBUTT + {0x09}, {0x2A}, {0x33}, {0xFF}, {0xFF}, {0xFF} + }, { // DOUBLE_EDGE + {0x2C}, {0x24}, {0x0A}, {0xFF}, {0xFF}, {0xFF} + }, { // SANDSTORM + {0x00}, {0x1A}, {0x33}, {0xFF}, {0xFF}, {0xFF} + }, { // SAND_ATTACK + {0x00}, {0x2A}, {0x00}, {0xFF}, {0xFF}, {0xFF} + }, { // SAND_TOMB + {0x00}, {0x27}, {0x33}, {0xFF}, {0xFF}, {0xFF} + }, { // SPARK + {0x1B}, {0x33}, {0x33}, {0xFF}, {0xFF}, {0xFF} + }, { // SWIFT + {0x11}, {0x33}, {0x33}, {0xFF}, {0xFF}, {0xFF} + }, { // KINESIS + {0x0F}, {0x0C}, {0x11}, {0xFF}, {0xFF}, {0xFF} + }, { // SMOG + {0x1B}, {0x33}, {0x33}, {0xFF}, {0xFF}, {0xFF} + }, { // GROWTH + {0x30}, {0x18}, {0x33}, {0xFF}, {0xFF}, {0xFF} + }, { // SACRED_FIRE + {0x03}, {0x11}, {0x12}, {0x30}, {0x33}, {0xFF} + }, { // SHEER_COLD + {0x0E}, {0x30}, {0x18}, {0xFF}, {0xFF}, {0xFF} + }, { // SOLAR_BEAM + {0x18}, {0x30}, {0x0C}, {0x33}, {0xFF}, {0xFF} + }, { // SONIC_BOOM + {0x1B}, {0x11}, {0x27}, {0x33}, {0xFF}, {0xFF} + }, { // FLY + {0x12}, {0x33}, {0x33}, {0xFF}, {0xFF}, {0xFF} + } +}; + +const struct BardSound gBardSounds_Moves2[][6] = { + { // TACKLE + {0x00}, {0x24}, {0x33}, {0xFF}, {0xFF}, {0xFF} + }, { // EXPLOSION + {0x09}, {0x18}, {0x2C}, {0x33}, {0x33}, {0xFF} + }, { // DIVE + {0x12}, {0x33}, {0x33}, {0xFF}, {0xFF}, {0xFF} + }, { // FIRE_BLAST + {0x12}, {0x30}, {0x00}, {0x33}, {0xFF}, {0xFF} + }, { // WATERFALL + {0x1D}, {0x30}, {0x1D}, {0x33}, {0xFF}, {0xFF} + }, { // MUDDY_WATER + {0x2A}, {0x0C}, {0x1B}, {0x30}, {0xFF}, {0xFF} + }, { // STOCKPILE + {0x1B}, {0x14}, {0x33}, {0xFF}, {0xFF}, {0xFF} + }, { // SLAM + {0x00}, {0x33}, {0x33}, {0xFF}, {0xFF}, {0xFF} + }, { // TWISTER + {0x11}, {0x30}, {0x33}, {0xFF}, {0xFF}, {0xFF} + }, { // BULLET_SEED + {0x2A}, {0x09}, {0x0C}, {0x33}, {0xFF}, {0xFF} + }, { // TWINEEDLE + {0x0F}, {0x0C}, {0x24}, {0xFF}, {0xFF}, {0xFF} + }, { // SOFT_BOILED + {0x1B}, {0x1E}, {0x0B}, {0x33}, {0xFF}, {0xFF} + }, { // EGG_BOMB + {0x09}, {0x1B}, {0x33}, {0xFF}, {0xFF}, {0xFF} + }, { // FAINT_ATTACK + {0x03}, {0x2A}, {0x00}, {0xFF}, {0xFF}, {0xFF} + }, { // BARRAGE + {0x30}, {0x1B}, {0x33}, {0xFF}, {0xFF}, {0xFF} + }, { // MINIMIZE + {0x0F}, {0x0F}, {0x12}, {0x33}, {0xFF}, {0xFF} + }, { // SEISMIC_TOSS + {0x12}, {0x11}, {0x1B}, {0x33}, {0xFF}, {0xFF} + }, { // SUPERSONIC + {0x27}, {0x30}, {0x1B}, {0x11}, {0xFF}, {0xFF} + }, { // TAUNT + {0x1B}, {0x33}, {0x33}, {0xFF}, {0xFF}, {0xFF} + }, { // MOONLIGHT + {0x27}, {0x12}, {0x33}, {0xFF}, {0xFF}, {0xFF} + }, { // PECK + {0x09}, {0x33}, {0x33}, {0xFF}, {0xFF}, {0xFF} + }, { // ARM_THRUST + {0x1B}, {0x2C}, {0x33}, {0xFF}, {0xFF}, {0xFF} + }, { // HORN_ATTACK + {0x18}, {0x2A}, {0x00}, {0xFF}, {0xFF}, {0xFF} + }, { // HORN_DRILL + {0x18}, {0x11}, {0x33}, {0xFF}, {0xFF}, {0xFF} + }, { // WING_ATTACK + {0x0C}, {0x2A}, {0x00}, {0xFF}, {0xFF}, {0xFF} + }, { // AERIAL_ACE + {0x03}, {0x0C}, {0x2A}, {0x03}, {0xFF}, {0xFF} + }, { // SWORDS_DANCE + {0x1A}, {0x30}, {0x01}, {0x33}, {0xFF}, {0xFF} + }, { // VINE_WHIP + {0x12}, {0x11}, {0x33}, {0xFF}, {0xFF}, {0xFF} + }, { // CONVERSION + {0x2A}, {0x30}, {0x2C}, {0x33}, {0xFF}, {0xFF} + }, { // CONVERSION_2 + {0x2A}, {0x30}, {0x2C}, {0x27}, {0x33}, {0xFF} + }, { // HELPING_HAND + {0x09}, {0x0C}, {0x00}, {0x33}, {0xFF}, {0xFF} + }, { // IRON_DEFENSE + {0x12}, {0x1B}, {0x0C}, {0x09}, {0xFF}, {0xFF} + }, { // TELEPORT + {0x09}, {0x0C}, {0x1A}, {0x33}, {0xFF}, {0xFF} + }, { // THUNDER_SHOCK + {0x2A}, {0x30}, {0x1B}, {0xFF}, {0xFF}, {0xFF} + }, { // SHOCK_WAVE + {0x1B}, {0x03}, {0x33}, {0xFF}, {0xFF}, {0xFF} + }, { // QUICK_ATTACK + {0x27}, {0x11}, {0x2A}, {0x00}, {0xFF}, {0xFF} + }, { // SWEET_KISS + {0x0E}, {0x11}, {0x33}, {0x33}, {0xFF}, {0xFF} + }, { // THUNDER_WAVE + {0x2A}, {0x30}, {0x05}, {0x33}, {0xFF}, {0xFF} + }, { // ZAP_CANNON + {0x00}, {0x01}, {0x2C}, {0x33}, {0xFF}, {0xFF} + }, { // BLOCK + {0x1B}, {0x33}, {0x33}, {0xFF}, {0xFF}, {0xFF} + }, { // HOWL + {0x21}, {0x33}, {0x33}, {0xFF}, {0xFF}, {0xFF} + }, { // POISON_GAS + {0x1E}, {0x1B}, {0x00}, {0x33}, {0xFF}, {0xFF} + }, { // TOXIC + {0x1B}, {0x11}, {0x33}, {0xFF}, {0xFF}, {0xFF} + }, { // POISON_FANG + {0x1E}, {0x2A}, {0x00}, {0xFF}, {0xFF}, {0xFF} + }, { // POISON_POWDER + {0x1E}, {0x2C}, {0x21}, {0x30}, {0xFF}, {0xFF} + }, { // POISON_STING + {0x1E}, {0x2C}, {0x0E}, {0x33}, {0xFF}, {0xFF} + }, { // SPIKE_CANNON + {0x14}, {0x00}, {0x1D}, {0xFF}, {0xFF}, {0xFF} + }, { // ACID_ARMOR + {0x00}, {0x11}, {0x1B}, {0x30}, {0xFF}, {0xFF} + }, { // TAKE_DOWN + {0x03}, {0x23}, {0x33}, {0xFF}, {0xFF}, {0xFF} + }, { // JUMP_KICK + {0x2C}, {0x11}, {0x33}, {0xFF}, {0xFF}, {0xFF} + }, { // BOUNCE + {0x21}, {0x33}, {0x33}, {0xFF}, {0xFF}, {0xFF} + }, { // HI_JUMP_KICK + {0x12}, {0x2C}, {0x11}, {0x33}, {0xFF}, {0xFF} + }, { // TRI_ATTACK + {0x12}, {0x2A}, {0x00}, {0xFF}, {0xFF}, {0xFF} + }, { // DRAGON_CLAW + {0x00}, {0x1B}, {0x1D}, {0xFF}, {0xFF}, {0xFF} + }, { // TRICK + {0x11}, {0x33}, {0x33}, {0xFF}, {0xFF}, {0xFF} + }, { // TRIPLE_KICK + {0x11}, {0x24}, {0x11}, {0xFF}, {0xFF}, {0xFF} + }, { // DRILL_PECK + {0x11}, {0x0B}, {0x33}, {0xFF}, {0xFF}, {0xFF} + }, { // MUD_SPORT + {0x2A}, {0x18}, {0x30}, {0xFF}, {0xFF}, {0xFF} + }, { // MUD_SLAP + {0x2C}, {0x00}, {0x33}, {0xFF}, {0xFF}, {0xFF} + }, { // THIEF + {0x0C}, {0x33}, {0x33}, {0xFF}, {0xFF}, {0xFF} + }, { // AMNESIA + {0x02}, {0x0E}, {0x2C}, {0x33}, {0xFF}, {0xFF} + }, { // NIGHT_SHADE + {0x12}, {0x05}, {0x33}, {0xFF}, {0xFF}, {0xFF} + }, { // GROWL + {0x21}, {0x33}, {0x33}, {0xFF}, {0xFF}, {0xFF} + }, { // SLACK_OFF + {0x00}, {0x1B}, {0x33}, {0xFF}, {0xFF}, {0xFF} + }, { // SURF + {0x30}, {0x33}, {0x33}, {0xFF}, {0xFF}, {0xFF} + }, { // ROLE_PLAY + {0x18}, {0x03}, {0x33}, {0xFF}, {0xFF}, {0xFF} + }, { // NEEDLE_ARM + {0x0C}, {0x2A}, {0x1D}, {0xFF}, {0xFF}, {0xFF} + }, { // DOUBLE_KICK + {0x2A}, {0x2C}, {0x11}, {0xFF}, {0xFF}, {0xFF} + }, { // SUNNY_DAY + {0x2A}, {0x0E}, {0x05}, {0xFF}, {0xFF}, {0xFF} + }, { // LEER + {0x0E}, {0x30}, {0x33}, {0xFF}, {0xFF}, {0xFF} + }, { // WISH + {0x0F}, {0x33}, {0x33}, {0xFF}, {0xFF}, {0xFF} + }, { // FAKE_OUT + {0x03}, {0x21}, {0x33}, {0xFF}, {0xFF}, {0xFF} + }, { // SLEEP_TALK + {0x0E}, {0x1D}, {0x33}, {0x33}, {0xFF}, {0xFF} + }, { // PAY_DAY + {0x05}, {0x05}, {0x33}, {0xFF}, {0xFF}, {0xFF} + }, { // ASSIST + {0x2A}, {0x11}, {0x33}, {0xFF}, {0xFF}, {0xFF} + }, { // HEAT_WAVE + {0x0C}, {0x03}, {0x33}, {0xFF}, {0xFF}, {0xFF} + }, { // SLEEP_POWDER + {0x0C}, {0x21}, {0x30}, {0xFF}, {0xFF}, {0xFF} + }, { // REST + {0x09}, {0x33}, {0x33}, {0xFF}, {0xFF}, {0xFF} + }, { // INGRAIN + {0x0F}, {0x03}, {0x33}, {0xFF}, {0xFF}, {0xFF} + }, { // CONFUSION + {0x2C}, {0x29}, {0x2C}, {0x33}, {0xFF}, {0xFF} + }, { // BODY_SLAM + {0x1D}, {0x0C}, {0x02}, {0xFF}, {0xFF}, {0xFF} + }, { // SWALLOW + {0x1B}, {0x18}, {0x33}, {0xFF}, {0xFF}, {0xFF} + }, { // CURSE + {0x30}, {0x33}, {0x33}, {0xFF}, {0xFF}, {0xFF} + }, { // HYDRO_PUMP + {0x12}, {0x18}, {0x2A}, {0xFF}, {0xFF}, {0xFF} + }, { // HYPER_VOICE + {0x12}, {0x30}, {0x1E}, {0xFF}, {0xFF}, {0xFF} + }, { // HYPER_BEAM + {0x12}, {0x30}, {0x0C}, {0x33}, {0xFF}, {0xFF} + }, { // SUPERPOWER + {0x27}, {0x30}, {0x21}, {0x30}, {0xFF}, {0xFF} + }, { // STEEL_WING + {0x0E}, {0x0D}, {0x33}, {0xFF}, {0xFF}, {0xFF} + }, { // SPIT_UP + {0x11}, {0x2A}, {0x33}, {0xFF}, {0xFF}, {0xFF} + }, { // DYNAMIC_PUNCH + {0x12}, {0x00}, {0x11}, {0x2C}, {0xFF}, {0xFF} + }, { // GUILLOTINE + {0x0C}, {0x2C}, {0x0E}, {0x33}, {0xFF}, {0xFF} + }, { // VICE_GRIP + {0x14}, {0x11}, {0x33}, {0xFF}, {0xFF}, {0xFF} + }, { // KNOCK_OFF + {0x1B}, {0x1D}, {0x33}, {0xFF}, {0xFF}, {0xFF} + }, { // POUND + {0x21}, {0x33}, {0x33}, {0xFF}, {0xFF}, {0xFF} + }, { // RAZOR_LEAF + {0x05}, {0x30}, {0x0C}, {0xFF}, {0xFF}, {0xFF} + }, { // BATON_PASS + {0x2A}, {0x1B}, {0x00}, {0x33}, {0xFF}, {0xFF} + }, { // PETAL_DANCE + {0x09}, {0x2C}, {0x02}, {0x33}, {0xFF}, {0xFF} + }, { // SPLASH + {0x00}, {0x33}, {0x33}, {0xFF}, {0xFF}, {0xFF} + }, { // BUBBLE_BEAM + {0x2A}, {0x24}, {0x0C}, {0x33}, {0xFF}, {0xFF} + }, { // BELLY_DRUM + {0x09}, {0x0C}, {0x2A}, {0x33}, {0xFF}, {0xFF} + }, { // BARRIER + {0x05}, {0x0E}, {0x30}, {0xFF}, {0xFF}, {0xFF} + }, { // LIGHT_SCREEN + {0x12}, {0x0C}, {0x33}, {0x33}, {0xFF}, {0xFF} + }, { // SCRATCH + {0x00}, {0x33}, {0x33}, {0xFF}, {0xFF}, {0xFF} + }, { // HYPER_FANG + {0x12}, {0x30}, {0x00}, {0xFF}, {0xFF}, {0xFF} + }, { // EMBER + {0x09}, {0x30}, {0x33}, {0xFF}, {0xFF}, {0xFF} + }, { // SECRET_POWER + {0x0C}, {0x09}, {0x21}, {0x30}, {0xFF}, {0xFF} + }, { // DIZZY_PUNCH + {0x11}, {0x0E}, {0x2C}, {0xFF}, {0xFF}, {0xFF} + }, { // BULK_UP + {0x2C}, {0x2C}, {0x33}, {0xFF}, {0xFF}, {0xFF} + }, { // IMPRISON + {0x0F}, {0x0F}, {0x2C}, {0x33}, {0xFF}, {0xFF} + }, { // FEATHER_DANCE + {0x09}, {0x30}, {0x00}, {0xFF}, {0xFF}, {0xFF} + }, { // WHIRLWIND + {0x2C}, {0x1D}, {0x0E}, {0x1D}, {0xFF}, {0xFF} + }, { // BEAT_UP + {0x0C}, {0x2C}, {0x33}, {0xFF}, {0xFF}, {0xFF} + }, { // BLIZZARD + {0x0F}, {0x32}, {0x33}, {0xFF}, {0xFF}, {0xFF} + }, { // STOMP + {0x1D}, {0x33}, {0x33}, {0xFF}, {0xFF}, {0xFF} + }, { // FLASH + {0x00}, {0x33}, {0x33}, {0xFF}, {0xFF}, {0xFF} + }, { // TEETER_DANCE + {0x0C}, {0x30}, {0x00}, {0xFF}, {0xFF}, {0xFF} + }, { // CRUSH_CLAW + {0x2C}, {0x1B}, {0x33}, {0xFF}, {0xFF}, {0xFF} + }, { // BLAZE_KICK + {0x05}, {0x11}, {0x33}, {0xFF}, {0xFF}, {0xFF} + }, { // PRESENT + {0x09}, {0x09}, {0x33}, {0xFF}, {0xFF}, {0xFF} + }, { // ERUPTION + {0x0C}, {0x2C}, {0x1D}, {0x33}, {0xFF}, {0xFF} + }, { // SLUDGE + {0x2C}, {0x33}, {0x33}, {0xFF}, {0xFF}, {0xFF} + }, { // SLUDGE_BOMB + {0x2B}, {0x1B}, {0x33}, {0xFF}, {0xFF}, {0xFF} + }, { // GLARE + {0x05}, {0x30}, {0x33}, {0xFF}, {0xFF}, {0xFF} + }, { // TRANSFORM + {0x00}, {0x1A}, {0x33}, {0x33}, {0xFF}, {0xFF} + }, { // POISON_TAIL + {0x1E}, {0x2C}, {0x05}, {0x33}, {0xFF}, {0xFF} + }, { // ROAR + {0x1A}, {0x30}, {0x33}, {0xFF}, {0xFF}, {0xFF} + }, { // BONE_RUSH + {0x18}, {0x2C}, {0x33}, {0xFF}, {0xFF}, {0xFF} + }, { // CAMOUFLAGE + {0x00}, {0x18}, {0x1B}, {0x33}, {0xFF}, {0xFF} + }, { // COVET + {0x2A}, {0x09}, {0x33}, {0xFF}, {0xFF}, {0xFF} + }, { // TAIL_GLOW + {0x04}, {0x1A}, {0x33}, {0x33}, {0xFF}, {0xFF} + }, { // BONE_CLUB + {0x18}, {0x2C}, {0x33}, {0xFF}, {0xFF}, {0xFF} + }, { // BONEMERANG + {0x18}, {0x30}, {0x00}, {0x33}, {0xFF}, {0xFF} + }, { // FIRE_SPIN + {0x12}, {0x30}, {0x0F}, {0x33}, {0xFF}, {0xFF} + }, { // FIRE_PUNCH + {0x12}, {0x30}, {0x2A}, {0xFF}, {0xFF}, {0xFF} + }, { // PERISH_SONG + {0x09}, {0x11}, {0x1B}, {0x33}, {0xFF}, {0xFF} + }, { // WRAP + {0x00}, {0x33}, {0x33}, {0xFF}, {0xFF}, {0xFF} + }, { // SPIKES + {0x12}, {0x33}, {0x33}, {0xFF}, {0xFF}, {0xFF} + }, { // MAGNITUDE + {0x00}, {0x0F}, {0x27}, {0xFF}, {0xFF}, {0xFF} + }, { // MAGICAL_LEAF + {0x00}, {0x11}, {0x24}, {0x0C}, {0x33}, {0xFF} + }, { // MAGIC_COAT + {0x00}, {0x11}, {0x18}, {0xFF}, {0xFF}, {0xFF} + }, { // MUD_SHOT + {0x2C}, {0x1D}, {0x33}, {0xFF}, {0xFF}, {0xFF} + }, { // MACH_PUNCH + {0x1B}, {0x2C}, {0x33}, {0xFF}, {0xFF}, {0xFF} + }, { // PROTECT + {0x18}, {0x09}, {0x33}, {0xFF}, {0xFF}, {0xFF} + }, { // DEFENSE_CURL + {0x0E}, {0x0B}, {0x32}, {0xFF}, {0xFF}, {0xFF} + }, { // ROLLING_KICK + {0x18}, {0x0C}, {0x11}, {0xFF}, {0xFF}, {0xFF} + }, { // SUBSTITUTE + {0x2A}, {0x11}, {0x27}, {0xFF}, {0xFF}, {0xFF} + }, { // DETECT + {0x0C}, {0x09}, {0x33}, {0xFF}, {0xFF}, {0xFF} + }, { // PIN_MISSILE + {0x0F}, {0x11}, {0x24}, {0xFF}, {0xFF}, {0xFF} + }, { // WATER_SPORT + {0x1B}, {0x30}, {0x1A}, {0x33}, {0xFF}, {0xFF} + }, { // WATER_GUN + {0x1D}, {0x32}, {0x2C}, {0xFF}, {0xFF}, {0xFF} + }, { // MIST_BALL + {0x11}, {0x1B}, {0x33}, {0xFF}, {0xFF}, {0xFF} + }, { // WATER_PULSE + {0x1B}, {0x30}, {0x2C}, {0x33}, {0xFF}, {0xFF} + }, { // FURY_ATTACK + {0x30}, {0x0C}, {0x2A}, {0x02}, {0xFF}, {0xFF} + }, { // FURY_SWIPES + {0x30}, {0x0C}, {0x12}, {0x33}, {0xFF}, {0xFF} + }, { // DESTINY_BOND + {0x09}, {0x0F}, {0x0C}, {0x1B}, {0xFF}, {0xFF} + }, { // FALSE_SWIPE + {0x1B}, {0x12}, {0x33}, {0xFF}, {0xFF}, {0xFF} + }, { // FORESIGHT + {0x1A}, {0x14}, {0x33}, {0x33}, {0xFF}, {0xFF} + }, { // MIRROR_COAT + {0x09}, {0x30}, {0x18}, {0xFF}, {0xFF}, {0xFF} + }, { // FUTURE_SIGHT + {0x27}, {0x30}, {0x12}, {0x33}, {0xFF}, {0xFF} + }, { // MILK_DRINK + {0x11}, {0x0E}, {0x33}, {0xFF}, {0xFF}, {0xFF} + }, { // CALM_MIND + {0x1B}, {0x12}, {0x33}, {0xFF}, {0xFF}, {0xFF} + }, { // MEGA_DRAIN + {0x03}, {0x2C}, {0x03}, {0x33}, {0xFF}, {0xFF} + }, { // MEGA_KICK + {0x03}, {0x2A}, {0x11}, {0xFF}, {0xFF}, {0xFF} + }, { // MEGA_PUNCH + {0x03}, {0x2A}, {0x2C}, {0xFF}, {0xFF}, {0xFF} + }, { // MEGAHORN + {0x03}, {0x2A}, {0x1A}, {0x33}, {0xFF}, {0xFF} + }, { // HIDDEN_POWER + {0x0F}, {0x09}, {0x21}, {0x30}, {0xFF}, {0xFF} + }, { // METAL_CLAW + {0x09}, {0x24}, {0x1B}, {0x33}, {0xFF}, {0xFF} + }, { // ATTRACT + {0x2A}, {0x00}, {0x33}, {0xFF}, {0xFF}, {0xFF} + }, { // MIMIC + {0x11}, {0x11}, {0x33}, {0xFF}, {0xFF}, {0xFF} + }, { // FRUSTRATION + {0x2C}, {0x03}, {0x1B}, {0x33}, {0xFF}, {0xFF} + }, { // LEECH_SEED + {0x0C}, {0x0E}, {0x33}, {0xFF}, {0xFF}, {0xFF} + }, { // METRONOME + {0x09}, {0x18}, {0x18}, {0xFF}, {0xFF}, {0xFF} + }, { // DREAM_EATER + {0x0E}, {0x0C}, {0x30}, {0x33}, {0xFF}, {0xFF} + }, { // ACID + {0x00}, {0x11}, {0x33}, {0xFF}, {0xFF}, {0xFF} + }, { // MEDITATE + {0x09}, {0x11}, {0x03}, {0x33}, {0xFF}, {0xFF} + }, { // SNATCH + {0x00}, {0xFF}, {0x33}, {0xFF}, {0xFF}, {0xFF} + }, { // LUSTER_PURGE + {0x2A}, {0x30}, {0x32}, {0xFF}, {0xFF}, {0xFF} + }, { // LEAF_BLADE + {0x0C}, {0x05}, {0x33}, {0xFF}, {0xFF}, {0xFF} + }, { // RECYCLE + {0x0C}, {0x12}, {0x24}, {0xFF}, {0xFF}, {0xFF} + }, { // REFLECT + {0x0C}, {0x09}, {0x33}, {0xFF}, {0xFF}, {0xFF} + }, { // REFRESH + {0x0C}, {0x09}, {0x33}, {0xFF}, {0xFF}, {0xFF} + }, { // REVENGE + {0x0C}, {0x09}, {0x33}, {0xFF}, {0xFF}, {0xFF} + }, { // DRAGON_RAGE + {0x00}, {0x1B}, {0x05}, {0x33}, {0x33}, {0xFF} + }, { // DRAGON_BREATH + {0x00}, {0x1B}, {0x0B}, {0x33}, {0x33}, {0xFF} + }, { // DRAGON_DANCE + {0x00}, {0x1B}, {0x00}, {0x33}, {0xFF}, {0xFF} + }, { // ICE_PUNCH + {0x2C}, {0x1D}, {0x0E}, {0x1D}, {0xFF}, {0xFF} + }, { // ICE_BEAM + {0x12}, {0x0C}, {0x33}, {0xFF}, {0xFF}, {0xFF} + }, { // FURY_CUTTER + {0x30}, {0x0C}, {0x2A}, {0x30}, {0xFF}, {0xFF} + }, { // COMET_PUNCH + {0x1D}, {0x0B}, {0x2C}, {0x33}, {0xFF}, {0xFF} + }, { // SKULL_BASH + {0x2A}, {0x33}, {0x00}, {0xFF}, {0xFF}, {0xFF} + }, { // LOCK_ON + {0x1B}, {0x1D}, {0x33}, {0xFF}, {0xFF}, {0xFF} + }, { // ROCK_BLAST + {0x1B}, {0x00}, {0x33}, {0xFF}, {0xFF}, {0xFF} + }, { // COTTON_SPORE + {0x1D}, {0x1D}, {0x1A}, {0x33}, {0xFF}, {0xFF} + }, { // STRUGGLE + {0x2A}, {0x24}, {0x33}, {0xFF}, {0xFF}, {0xFF} + } +}; +#elif GERMAN +const struct BardSound gBardSounds_Moves1[][6] = { + { // THUNDERBOLT + {0x1A}, {0x0B}, {0x11}, {0xFF}, {0xFF}, {0xFF} + }, { // IRON_TAIL + {0x0B}, {0x0B}, {0x0B}, {0x11}, {0xFF}, {0xFF} + }, { // ICE_BALL + {0x1A}, {0x0B}, {0x29}, {0x0B}, {0xFF}, {0xFF} + }, { // YAWN + {0x0B}, {0x0B}, {0xFF}, {0xFF}, {0xFF}, {0xFF} + }, { // LOVELY_KISS + {0x1A}, {0x0B}, {0x29}, {0xFF}, {0xFF}, {0xFF} + }, { // NIGHTMARE + {0x02}, {0x02}, {0xFF}, {0xFF}, {0xFF}, {0xFF} + }, { // MORNING_SUN + {0x1A}, {0x0B}, {0x02}, {0x29}, {0x0B}, {0xFF} + }, { // VITAL_THROW + {0x11}, {0x0B}, {0x29}, {0xFF}, {0xFF}, {0xFF} + }, { // DIG + {0x02}, {0x29}, {0x0B}, {0xFF}, {0xFF}, {0xFF} + }, { // THRASH + {0x29}, {0x0B}, {0xFF}, {0xFF}, {0xFF}, {0xFF} + }, { // SWEET_SCENT + {0x1A}, {0x29}, {0xFF}, {0xFF}, {0xFF}, {0xFF} + }, { // CHARM + {0x02}, {0x0B}, {0xFF}, {0xFF}, {0xFF}, {0xFF} + }, { // RAIN_DANCE + {0x0B}, {0x0B}, {0x02}, {0xFF}, {0xFF}, {0xFF} + }, { // CONFUSE_RAY + {0x1A}, {0x29}, {0x02}, {0xFF}, {0xFF}, {0xFF} + }, { // HAIL + {0x02}, {0x0B}, {0x29}, {0xFF}, {0xFF}, {0xFF} + }, { // AROMATHERAPY + {0x02}, {0x1A}, {0x02}, {0x29}, {0xFF}, {0xFF} + }, { // BUBBLE + {0x29}, {0x0B}, {0xFF}, {0xFF}, {0xFF}, {0xFF} + }, { // ENCORE + {0x29}, {0x02}, {0xFF}, {0xFF}, {0xFF}, {0xFF} + }, { // CUT + {0x0B}, {0x0B}, {0x11}, {0x0B}, {0xFF}, {0xFF} + }, { // RAGE + {0x02}, {0x0B}, {0x0B}, {0x11}, {0xFF}, {0xFF} + }, { // SUPER_FANG + {0x29}, {0x0B}, {0x02}, {0x02}, {0xFF}, {0xFF} + }, { // PAIN_SPLIT + {0x0B}, {0x11}, {0x0B}, {0x11}, {0x0B}, {0xFF} + }, { // TORMENT + {0x1A}, {0x0B}, {0x0B}, {0xFF}, {0xFF}, {0xFF} + }, { // STRING_SHOT + {0x02}, {0x0B}, {0x29}, {0xFF}, {0xFF}, {0xFF} + }, { // SWAGGER + {0x02}, {0x0B}, {0x0B}, {0x0B}, {0x11}, {0xFF} + }, { // SNORE + {0x02}, {0x0B}, {0xFF}, {0xFF}, {0xFF}, {0xFF} + }, { // HEAL_BELL + {0x11}, {0x02}, {0x1A}, {0x0B}, {0xFF}, {0xFF} + }, { // SCREECH + {0x0B}, {0x11}, {0x0B}, {0x0B}, {0x11}, {0xFF} + }, { // ROCK_THROW + {0x0B}, {0x11}, {0x29}, {0xFF}, {0xFF}, {0xFF} + }, { // ROCK_SMASH + {0x0B}, {0x11}, {0x0B}, {0x0B}, {0xFF}, {0xFF} + }, { // ROCK_SLIDE + {0x0B}, {0x11}, {0x02}, {0x0B}, {0xFF}, {0xFF} + }, { // WEATHER_BALL + {0x0B}, {0x0B}, {0x1A}, {0x1A}, {0x1A}, {0x0B} + }, { // WHIRLPOOL + {0x11}, {0x29}, {0x29}, {0xFF}, {0xFF}, {0xFF} + }, { // FAKE_TEARS + {0x29}, {0x0B}, {0x0B}, {0xFF}, {0xFF}, {0xFF} + }, { // SING + {0x0B}, {0x02}, {0xFF}, {0xFF}, {0xFF}, {0xFF} + }, { // SPITE + {0x1A}, {0xFF}, {0xFF}, {0xFF}, {0xFF}, {0xFF} + }, { // AIR_CUTTER + {0x11}, {0x11}, {0xFF}, {0xFF}, {0xFF}, {0xFF} + }, { // AEROBLAST + {0x29}, {0x1A}, {0xFF}, {0xFF}, {0xFF}, {0xFF} + }, { // SMOKESCREEN + {0x02}, {0x29}, {0x1A}, {0x0B}, {0xFF}, {0xFF} + }, { // PURSUIT + {0x0B}, {0x1A}, {0x29}, {0xFF}, {0xFF}, {0xFF} + }, { // DOUBLE_SLAP + {0x29}, {0x0B}, {0x11}, {0xFF}, {0xFF}, {0xFF} + }, { // MIRROR_MOVE + {0x11}, {0x0B}, {0x11}, {0xFF}, {0xFF}, {0xFF} + }, { // OVERHEAT + {0x11}, {0x0B}, {0x1A}, {0x0B}, {0xFF}, {0xFF} + }, { // AURORA_BEAM + {0x02}, {0x29}, {0x1A}, {0x02}, {0x02}, {0xFF} + }, { // MEMENTO + {0x0B}, {0x0B}, {0x1A}, {0x1A}, {0x11}, {0xFF} + }, { // OCTAZOOKA + {0x1A}, {0x02}, {0x29}, {0x29}, {0x02}, {0xFF} + }, { // FLATTER + {0x0B}, {0x11}, {0x0B}, {0xFF}, {0xFF}, {0xFF} + }, { // ASTONISH + {0x0B}, {0x02}, {0x29}, {0xFF}, {0xFF}, {0xFF} + }, { // WILL_O_WISP + {0x11}, {0x11}, {0xFF}, {0xFF}, {0xFF}, {0xFF} + }, { // RETURN + {0x11}, {0x0B}, {0xFF}, {0xFF}, {0xFF}, {0xFF} + }, { // GRUDGE + {0x02}, {0x11}, {0xFF}, {0xFF}, {0xFF}, {0xFF} + }, { // STRENGTH + {0x0B}, {0x0B}, {0xFF}, {0xFF}, {0xFF}, {0xFF} + }, { // COUNTER + {0x1A}, {0x0B}, {0xFF}, {0xFF}, {0xFF}, {0xFF} + }, { // FLAME_WHEEL + {0x02}, {0x0B}, {0x02}, {0xFF}, {0xFF}, {0xFF} + }, { // FLAMETHROWER + {0x02}, {0x0B}, {0x29}, {0xFF}, {0xFF}, {0xFF} + }, { // ODOR_SLEUTH + {0x11}, {0x0B}, {0xFF}, {0xFF}, {0xFF}, {0xFF} + }, { // SHARPEN + {0x0B}, {0x0B}, {0xFF}, {0xFF}, {0xFF}, {0xFF} + }, { // DOUBLE_TEAM + {0x1A}, {0x0B}, {0x11}, {0xFF}, {0xFF}, {0xFF} + }, { // GUST + {0x11}, {0x1A}, {0xFF}, {0xFF}, {0xFF}, {0xFF} + }, { // HARDEN + {0x0B}, {0x0B}, {0xFF}, {0xFF}, {0xFF}, {0xFF} + }, { // DISABLE + {0x02}, {0x29}, {0x0B}, {0x0B}, {0xFF}, {0xFF} + }, { // RAZOR_WIND + {0x11}, {0x0B}, {0x29}, {0xFF}, {0xFF}, {0xFF} + }, { // BIDE + {0x0B}, {0x02}, {0x29}, {0x0B}, {0xFF}, {0xFF} + }, { // CRUNCH + {0x11}, {0x0B}, {0xFF}, {0xFF}, {0xFF}, {0xFF} + }, { // BITE + {0x11}, {0xFF}, {0xFF}, {0xFF}, {0xFF}, {0xFF} + }, { // THUNDER + {0x1A}, {0x0B}, {0xFF}, {0xFF}, {0xFF}, {0xFF} + }, { // THUNDER_PUNCH + {0x1A}, {0x0B}, {0x02}, {0xFF}, {0xFF}, {0xFF} + }, { // ENDEAVOR + {0x1A}, {0x11}, {0x29}, {0x02}, {0x11}, {0x1A} + }, { // FACADE + {0x02}, {0x02}, {0x0B}, {0xFF}, {0xFF}, {0xFF} + }, { // KARATE_CHOP + {0x02}, {0x02}, {0x0B}, {0x02}, {0xFF}, {0xFF} + }, { // CLAMP + {0x02}, {0x0B}, {0xFF}, {0xFF}, {0xFF}, {0xFF} + }, { // WITHDRAW + {0x02}, {0x0B}, {0x29}, {0xFF}, {0xFF}, {0xFF} + }, { // CONSTRICT + {0x29}, {0x02}, {0x0B}, {0x29}, {0xFF}, {0xFF} + }, { // BRICK_BREAK + {0x29}, {0x29}, {0xFF}, {0xFF}, {0xFF}, {0xFF} + }, { // ROCK_TOMB + {0x0B}, {0x02}, {0xFF}, {0xFF}, {0xFF}, {0xFF} + }, { // FOCUS_ENERGY + {0x0B}, {0x0B}, {0x11}, {0x1A}, {0x29}, {0xFF} + }, { // FOCUS_PUNCH + {0x02}, {0x29}, {0x0B}, {0x02}, {0xFF}, {0xFF} + }, { // GIGA_DRAIN + {0x11}, {0x02}, {0x02}, {0x29}, {0x0B}, {0xFF} + }, { // REVERSAL + {0x0B}, {0x0B}, {0x02}, {0xFF}, {0xFF}, {0xFF} + }, { // SMELLING_SALT + {0x11}, {0x02}, {0xFF}, {0xFF}, {0xFF}, {0xFF} + }, { // SPORE + {0x11}, {0x1A}, {0xFF}, {0xFF}, {0xFF}, {0xFF} + }, { // LEECH_LIFE + {0x29}, {0x02}, {0x29}, {0x0B}, {0xFF}, {0xFF} + }, { // SLASH + {0x11}, {0x0B}, {0xFF}, {0xFF}, {0xFF}, {0xFF} + }, { // SILVER_WIND + {0x11}, {0x0B}, {0x02}, {0x29}, {0xFF}, {0xFF} + }, { // METAL_SOUND + {0x0B}, {0x02}, {0x02}, {0x29}, {0xFF}, {0xFF} + }, { // GRASS_WHISTLE + {0x02}, {0x0B}, {0x0B}, {0xFF}, {0xFF}, {0xFF} + }, { // TICKLE + {0x02}, {0x02}, {0x1A}, {0x0B}, {0xFF}, {0xFF} + }, { // SPIDER_WEB + {0x11}, {0x0B}, {0x0B}, {0xFF}, {0xFF}, {0xFF} + }, { // CRABHAMMER + {0x02}, {0x02}, {0x0B}, {0xFF}, {0xFF}, {0xFF} + }, { // HAZE + {0x29}, {0x0B}, {0x0B}, {0x0B}, {0xFF}, {0xFF} + }, { // MEAN_LOOK + {0x1A}, {0x1A}, {0x11}, {0xFF}, {0xFF}, {0xFF} + }, { // CROSS_CHOP + {0x0B}, {0x29}, {0x11}, {0xFF}, {0xFF}, {0xFF} + }, { // OUTRAGE + {0x29}, {0x02}, {0x02}, {0xFF}, {0xFF}, {0xFF} + }, { // LOW_KICK + {0x29}, {0x11}, {0xFF}, {0xFF}, {0xFF}, {0xFF} + }, { // ANCIENT_POWER + {0x02}, {0x11}, {0x02}, {0xFF}, {0xFF}, {0xFF} + }, { // SYNTHESIS + {0x11}, {0x0B}, {0x0B}, {0xFF}, {0xFF}, {0xFF} + }, { // AGILITY + {0x02}, {0x11}, {0x11}, {0x0B}, {0xFF}, {0xFF} + }, { // RAPID_SPIN + {0x29}, {0x1A}, {0x0B}, {0x0B}, {0xFF}, {0xFF} + }, { // ICY_WIND + {0x0B}, {0x11}, {0x29}, {0xFF}, {0xFF}, {0xFF} + }, { // MIND_READER + {0x11}, {0x0B}, {0x0B}, {0x0B}, {0xFF}, {0xFF} + }, { // COSMIC_POWER + {0x1A}, {0x11}, {0x02}, {0xFF}, {0xFF}, {0xFF} + }, { // SKY_ATTACK + {0x11}, {0x0B}, {0x0B}, {0x0B}, {0xFF}, {0xFF} + }, { // POWDER_SNOW + {0x29}, {0x0B}, {0x0B}, {0x0B}, {0xFF}, {0xFF} + }, { // FOLLOW_ME + {0x1A}, {0x0B}, {0x11}, {0xFF}, {0xFF}, {0xFF} + }, { // METEOR_MASH + {0x0B}, {0x0B}, {0x11}, {0xFF}, {0xFF}, {0xFF} + }, { // ENDURE + {0x02}, {0x29}, {0x02}, {0x29}, {0xFF}, {0xFF} + }, { // ROLLOUT + {0x02}, {0x0B}, {0xFF}, {0xFF}, {0xFF}, {0xFF} + }, { // SCARY_FACE + {0x11}, {0x02}, {0x0B}, {0xFF}, {0xFF}, {0xFF} + }, { // PSYBEAM + {0x11}, {0x02}, {0xFF}, {0xFF}, {0xFF}, {0xFF} + }, { // PSYWAVE + {0x11}, {0x0B}, {0x0B}, {0xFF}, {0xFF}, {0xFF} + }, { // PSYCHIC + {0x11}, {0x1A}, {0x11}, {0x0B}, {0x0B}, {0xFF} + }, { // HYPNOSIS + {0x11}, {0x1A}, {0x0B}, {0xFF}, {0xFF}, {0xFF} + }, { // UPROAR + {0x02}, {0x29}, {0x29}, {0xFF}, {0xFF}, {0xFF} + }, { // WATER_SPOUT + {0x1A}, {0x0B}, {0x0B}, {0xFF}, {0xFF}, {0xFF} + }, { // SIGNAL_BEAM + {0x02}, {0x0B}, {0x0B}, {0x29}, {0x0B}, {0xFF} + }, { // PSYCH_UP + {0x11}, {0x1A}, {0x29}, {0xFF}, {0xFF}, {0xFF} + }, { // SUBMISSION + {0x11}, {0x0B}, {0x1A}, {0x0B}, {0xFF}, {0xFF} + }, { // RECOVER + {0x0B}, {0x0B}, {0x29}, {0xFF}, {0xFF}, {0xFF} + }, { // EARTHQUAKE + {0x0B}, {0x0B}, {0x0B}, {0xFF}, {0xFF}, {0xFF} + }, { // NATURE_POWER + {0x02}, {0x29}, {0x02}, {0xFF}, {0xFF}, {0xFF} + }, { // LICK + {0x0B}, {0x0B}, {0xFF}, {0xFF}, {0xFF}, {0xFF} + }, { // FLAIL + {0x0B}, {0x0B}, {0x0B}, {0xFF}, {0xFF}, {0xFF} + }, { // TAIL_WHIP + {0x29}, {0x0B}, {0x02}, {0xFF}, {0xFF}, {0xFF} + }, { // SELF_DESTRUCT + {0x11}, {0x02}, {0x0B}, {0xFF}, {0xFF}, {0xFF} + }, { // STUN_SPORE + {0x02}, {0x0B}, {0x1A}, {0x0B}, {0xFF}, {0xFF} + }, { // BIND + {0x02}, {0x0B}, {0x11}, {0xFF}, {0xFF}, {0xFF} + }, { // SHADOW_PUNCH + {0x11}, {0x0B}, {0x02}, {0x29}, {0xFF}, {0xFF} + }, { // SHADOW_BALL + {0x29}, {0x02}, {0xFF}, {0xFF}, {0xFF}, {0xFF} + }, { // CHARGE + {0x02}, {0x0B}, {0x1A}, {0x02}, {0xFF}, {0xFF} + }, { // MIST + {0x0B}, {0x11}, {0x0B}, {0x0B}, {0xFF}, {0xFF} + }, { // FISSURE + {0x0B}, {0x1A}, {0x11}, {0x29}, {0xFF}, {0xFF} + }, { // EXTREME_SPEED + {0x29}, {0x1A}, {0x0B}, {0x1A}, {0xFF}, {0xFF} + }, { // EXTRASENSORY + {0x1A}, {0x0B}, {0x0B}, {0x1A}, {0xFF}, {0xFF} + }, { // SAFEGUARD + {0x1A}, {0x11}, {0x02}, {0xFF}, {0xFF}, {0xFF} + }, { // ABSORB + {0x02}, {0x1A}, {0x0B}, {0xFF}, {0xFF}, {0xFF} + }, { // SKY_UPPERCUT + {0x11}, {0x0B}, {0x11}, {0xFF}, {0xFF}, {0xFF} + }, { // SKILL_SWAP + {0x0B}, {0x0B}, {0x0B}, {0x0B}, {0xFF}, {0xFF} + }, { // SKETCH + {0x02}, {0x02}, {0x0B}, {0xFF}, {0xFF}, {0xFF} + }, { // HEADBUTT + {0x1A}, {0x29}, {0xFF}, {0xFF}, {0xFF}, {0xFF} + }, { // DOUBLE_EDGE + {0x11}, {0x11}, {0x1A}, {0x02}, {0x0B}, {0xFF} + }, { // SANDSTORM + {0x02}, {0x29}, {0xFF}, {0xFF}, {0xFF}, {0xFF} + }, { // SAND_ATTACK + {0x02}, {0x11}, {0x0B}, {0xFF}, {0xFF}, {0xFF} + }, { // SAND_TOMB + {0x02}, {0x02}, {0xFF}, {0xFF}, {0xFF}, {0xFF} + }, { // SPARK + {0x29}, {0x0B}, {0x29}, {0xFF}, {0xFF}, {0xFF} + }, { // SWIFT + {0x0B}, {0x02}, {0x29}, {0x0B}, {0xFF}, {0xFF} + }, { // KINESIS + {0x11}, {0x02}, {0xFF}, {0xFF}, {0xFF}, {0xFF} + }, { // SMOG + {0x1A}, {0xFF}, {0xFF}, {0xFF}, {0xFF}, {0xFF} + }, { // GROWTH + {0x02}, {0x29}, {0xFF}, {0xFF}, {0xFF}, {0xFF} + }, { // SACRED_FIRE + {0x0B}, {0x29}, {0x0B}, {0x0B}, {0x29}, {0x0B} + }, { // SHEER_COLD + {0x0B}, {0x11}, {0x0B}, {0x0B}, {0x0B}, {0xFF} + }, { // SOLAR_BEAM + {0x1A}, {0x02}, {0x02}, {0xFF}, {0xFF}, {0xFF} + }, { // SONIC_BOOM + {0x29}, {0x02}, {0x02}, {0xFF}, {0xFF}, {0xFF} + }, { // FLY + {0x11}, {0x0B}, {0xFF}, {0xFF}, {0xFF}, {0xFF} + } +}; + +const struct BardSound gBardSounds_Moves2[][6] = { + { // TACKLE + {0x02}, {0x0B}, {0xFF}, {0xFF}, {0xFF}, {0xFF} + }, { // EXPLOSION + {0x0B}, {0x1A}, {0x11}, {0x1A}, {0xFF}, {0xFF} + }, { // DIVE + {0x02}, {0x29}, {0x0B}, {0xFF}, {0xFF}, {0xFF} + }, { // FIRE_BLAST + {0x0B}, {0x29}, {0x0B}, {0x29}, {0xFF}, {0xFF} + }, { // WATERFALL + {0x02}, {0x02}, {0x0B}, {0xFF}, {0xFF}, {0xFF} + }, { // MUDDY_WATER + {0x0B}, {0x11}, {0x0B}, {0xFF}, {0xFF}, {0xFF} + }, { // STOCKPILE + {0x1A}, {0x0B}, {0xFF}, {0xFF}, {0xFF}, {0xFF} + }, { // SLAM + {0x02}, {0xFF}, {0xFF}, {0xFF}, {0xFF}, {0xFF} + }, { // TWISTER + {0x11}, {0x1A}, {0x0B}, {0xFF}, {0xFF}, {0xFF} + }, { // BULLET_SEED + {0x29}, {0x0B}, {0x02}, {0x02}, {0xFF}, {0xFF} + }, { // TWINEEDLE + {0x29}, {0x1A}, {0x02}, {0x0B}, {0xFF}, {0xFF} + }, { // SOFT_BOILED + {0x0B}, {0x11}, {0x0B}, {0x11}, {0xFF}, {0xFF} + }, { // EGG_BOMB + {0x0B}, {0x11}, {0x0B}, {0x1A}, {0x0B}, {0xFF} + }, { // FAINT_ATTACK + {0x11}, {0x0B}, {0xFF}, {0xFF}, {0xFF}, {0xFF} + }, { // BARRAGE + {0x02}, {0x02}, {0x1A}, {0xFF}, {0xFF}, {0xFF} + }, { // MINIMIZE + {0x1A}, {0x11}, {0x02}, {0x1A}, {0xFF}, {0xFF} + }, { // SEISMIC_TOSS + {0x0B}, {0x1A}, {0x29}, {0xFF}, {0xFF}, {0xFF} + }, { // SUPERSONIC + {0x29}, {0x0B}, {0x02}, {0xFF}, {0xFF}, {0xFF} + }, { // TAUNT + {0x0B}, {0x0B}, {0x0B}, {0xFF}, {0xFF}, {0xFF} + }, { // MOONLIGHT + {0x1A}, {0x0B}, {0x11}, {0xFF}, {0xFF}, {0xFF} + }, { // PECK + {0x02}, {0x0B}, {0xFF}, {0xFF}, {0xFF}, {0xFF} + }, { // ARM_THRUST + {0x02}, {0x1A}, {0xFF}, {0xFF}, {0xFF}, {0xFF} + }, { // HORN_ATTACK + {0x1A}, {0x02}, {0x02}, {0x0B}, {0xFF}, {0xFF} + }, { // HORN_DRILL + {0x1A}, {0x1A}, {0x0B}, {0xFF}, {0xFF}, {0xFF} + }, { // WING_ATTACK + {0x11}, {0x0B}, {0x02}, {0xFF}, {0xFF}, {0xFF} + }, { // AERIAL_ACE + {0x02}, {0x0B}, {0x1A}, {0x02}, {0xFF}, {0xFF} + }, { // SWORDS_DANCE + {0x0B}, {0x02}, {0xFF}, {0xFF}, {0xFF}, {0xFF} + }, { // VINE_WHIP + {0x02}, {0x0B}, {0x11}, {0xFF}, {0xFF}, {0xFF} + }, { // CONVERSION + {0x29}, {0x02}, {0x29}, {0xFF}, {0xFF}, {0xFF} + }, { // CONVERSION_2 + {0x29}, {0x02}, {0x29}, {0x0B}, {0x11}, {0xFF} + }, { // HELPING_HAND + {0x0B}, {0x0B}, {0x02}, {0xFF}, {0xFF}, {0xFF} + }, { // IRON_DEFENSE + {0x0B}, {0x11}, {0x0B}, {0x02}, {0x0B}, {0xFF} + }, { // TELEPORT + {0x0B}, {0x0B}, {0x1A}, {0xFF}, {0xFF}, {0xFF} + }, { // THUNDER_SHOCK + {0x1A}, {0x0B}, {0x1A}, {0xFF}, {0xFF}, {0xFF} + }, { // SHOCK_WAVE + {0x1A}, {0x0B}, {0x0B}, {0xFF}, {0xFF}, {0xFF} + }, { // QUICK_ATTACK + {0x29}, {0x29}, {0x11}, {0xFF}, {0xFF}, {0xFF} + }, { // SWEET_KISS + {0x11}, {0x0B}, {0x29}, {0xFF}, {0xFF}, {0xFF} + }, { // THUNDER_WAVE + {0x1A}, {0x0B}, {0x0B}, {0x0B}, {0xFF}, {0xFF} + }, { // ZAP_CANNON + {0x11}, {0x02}, {0x1A}, {0x0B}, {0xFF}, {0xFF} + }, { // BLOCK + {0x11}, {0x0B}, {0x29}, {0xFF}, {0xFF}, {0xFF} + }, { // HOWL + {0x02}, {0x29}, {0x0B}, {0xFF}, {0xFF}, {0xFF} + }, { // POISON_GAS + {0x11}, {0x1A}, {0x0B}, {0xFF}, {0xFF}, {0xFF} + }, { // TOXIC + {0x1A}, {0x11}, {0xFF}, {0xFF}, {0xFF}, {0xFF} + }, { // POISON_FANG + {0x11}, {0x02}, {0x02}, {0xFF}, {0xFF}, {0xFF} + }, { // POISON_POWDER + {0x11}, {0x29}, {0x0B}, {0xFF}, {0xFF}, {0xFF} + }, { // POISON_STING + {0x11}, {0x02}, {0x0B}, {0xFF}, {0xFF}, {0xFF} + }, { // SPIKE_CANNON + {0x1A}, {0x02}, {0x1A}, {0x0B}, {0xFF}, {0xFF} + }, { // ACID_ARMOR + {0x0B}, {0x29}, {0x0B}, {0x02}, {0x0B}, {0xFF} + }, { // TAKE_DOWN + {0x1A}, {0x11}, {0x0B}, {0xFF}, {0xFF}, {0xFF} + }, { // JUMP_KICK + {0x29}, {0x11}, {0xFF}, {0xFF}, {0xFF}, {0xFF} + }, { // BOUNCE + {0x29}, {0x0B}, {0x0B}, {0xFF}, {0xFF}, {0xFF} + }, { // HI_JUMP_KICK + {0x29}, {0x11}, {0xFF}, {0xFF}, {0xFF}, {0xFF} + }, { // TRI_ATTACK + {0x11}, {0x0B}, {0x0B}, {0xFF}, {0xFF}, {0xFF} + }, { // DRAGON_CLAW + {0x02}, {0x0B}, {0x02}, {0x29}, {0x0B}, {0xFF} + }, { // TRICK + {0x11}, {0x0B}, {0x29}, {0xFF}, {0xFF}, {0xFF} + }, { // TRIPLE_KICK + {0x0B}, {0x11}, {0x02}, {0x11}, {0xFF}, {0xFF} + }, { // DRILL_PECK + {0x1A}, {0x02}, {0x0B}, {0xFF}, {0xFF}, {0xFF} + }, { // MUD_SPORT + {0x0B}, {0x29}, {0x0B}, {0xFF}, {0xFF}, {0xFF} + }, { // MUD_SLAP + {0x0B}, {0x0B}, {0x0B}, {0xFF}, {0xFF}, {0xFF} + }, { // THIEF + {0x02}, {0x29}, {0xFF}, {0xFF}, {0xFF}, {0xFF} + }, { // AMNESIA + {0x02}, {0x0B}, {0x11}, {0xFF}, {0xFF}, {0xFF} + }, { // NIGHT_SHADE + {0x02}, {0x0B}, {0x0B}, {0xFF}, {0xFF}, {0xFF} + }, { // GROWL + {0x0B}, {0x29}, {0x0B}, {0xFF}, {0xFF}, {0xFF} + }, { // SLACK_OFF + {0x02}, {0x0B}, {0x11}, {0xFF}, {0xFF}, {0xFF} + }, { // SURF + {0x0B}, {0x0B}, {0xFF}, {0xFF}, {0xFF}, {0xFF} + }, { // ROLE_PLAY + {0x1A}, {0x0B}, {0x02}, {0x29}, {0xFF}, {0xFF} + }, { // NEEDLE_ARM + {0x11}, {0x0B}, {0x02}, {0x0B}, {0xFF}, {0xFF} + }, { // DOUBLE_KICK + {0x1A}, {0x0B}, {0x11}, {0xFF}, {0xFF}, {0xFF} + }, { // SUNNY_DAY + {0x1A}, {0x0B}, {0x02}, {0xFF}, {0xFF}, {0xFF} + }, { // LEER + {0x11}, {0x0B}, {0x11}, {0xFF}, {0xFF}, {0xFF} + }, { // WISH + {0x29}, {0x02}, {0x29}, {0xFF}, {0xFF}, {0xFF} + }, { // FAKE_OUT + {0x1A}, {0x0B}, {0x11}, {0xFF}, {0xFF}, {0xFF} + }, { // SLEEP_TALK + {0x02}, {0x0B}, {0x0B}, {0xFF}, {0xFF}, {0xFF} + }, { // PAY_DAY + {0x02}, {0x02}, {0xFF}, {0xFF}, {0xFF}, {0xFF} + }, { // ASSIST + {0x29}, {0x29}, {0xFF}, {0xFF}, {0xFF}, {0xFF} + }, { // HEAT_WAVE + {0x11}, {0x0B}, {0x0B}, {0x0B}, {0xFF}, {0xFF} + }, { // SLEEP_POWDER + {0x02}, {0x29}, {0xFF}, {0xFF}, {0xFF}, {0xFF} + }, { // REST + {0x0B}, {0x1A}, {0x29}, {0xFF}, {0xFF}, {0xFF} + }, { // INGRAIN + {0x0B}, {0x29}, {0x0B}, {0xFF}, {0xFF}, {0xFF} + }, { // CONFUSION + {0x1A}, {0x29}, {0x11}, {0x1A}, {0xFF}, {0xFF} + }, { // BODY_SLAM + {0x1A}, {0x11}, {0x02}, {0xFF}, {0xFF}, {0xFF} + }, { // SWALLOW + {0x0B}, {0x0B}, {0x0B}, {0xFF}, {0xFF}, {0xFF} + }, { // CURSE + {0x29}, {0xFF}, {0xFF}, {0xFF}, {0xFF}, {0xFF} + }, { // HYDRO_PUMP + {0x11}, {0x1A}, {0x29}, {0x0B}, {0xFF}, {0xFF} + }, { // HYPER_VOICE + {0x02}, {0x0B}, {0x0B}, {0xFF}, {0xFF}, {0xFF} + }, { // HYPER_BEAM + {0x11}, {0x0B}, {0x02}, {0xFF}, {0xFF}, {0xFF} + }, { // SUPERPOWER + {0x02}, {0x1A}, {0x1A}, {0xFF}, {0xFF}, {0xFF} + }, { // STEEL_WING + {0x02}, {0x11}, {0x0B}, {0xFF}, {0xFF}, {0xFF} + }, { // SPIT_UP + {0x0B}, {0x0B}, {0x0B}, {0xFF}, {0xFF}, {0xFF} + }, { // DYNAMIC_PUNCH + {0x29}, {0x02}, {0xFF}, {0xFF}, {0xFF}, {0xFF} + }, { // GUILLOTINE + {0x11}, {0x1A}, {0x11}, {0x0B}, {0xFF}, {0xFF} + }, { // VICE_GRIP + {0x02}, {0x0B}, {0xFF}, {0xFF}, {0xFF}, {0xFF} + }, { // KNOCK_OFF + {0x02}, {0x02}, {0xFF}, {0xFF}, {0xFF}, {0xFF} + }, { // POUND + {0x29}, {0xFF}, {0xFF}, {0xFF}, {0xFF}, {0xFF} + }, { // RAZOR_LEAF + {0x02}, {0x11}, {0x02}, {0xFF}, {0xFF}, {0xFF} + }, { // BATON_PASS + {0x02}, {0x0B}, {0x0B}, {0xFF}, {0xFF}, {0xFF} + }, { // PETAL_DANCE + {0x0B}, {0x0B}, {0x02}, {0xFF}, {0xFF}, {0xFF} + }, { // SPLASH + {0x02}, {0x0B}, {0xFF}, {0xFF}, {0xFF}, {0xFF} + }, { // BUBBLE_BEAM + {0x29}, {0x02}, {0xFF}, {0xFF}, {0xFF}, {0xFF} + }, { // BELLY_DRUM + {0x02}, {0x29}, {0x1A}, {0x0B}, {0xFF}, {0xFF} + }, { // BARRIER + {0x02}, {0x11}, {0x0B}, {0x0B}, {0xFF}, {0xFF} + }, { // LIGHT_SCREEN + {0x11}, {0x11}, {0xFF}, {0xFF}, {0xFF}, {0xFF} + }, { // SCRATCH + {0x02}, {0x0B}, {0xFF}, {0xFF}, {0xFF}, {0xFF} + }, { // HYPER_FANG + {0x11}, {0x0B}, {0x02}, {0x02}, {0xFF}, {0xFF} + }, { // EMBER + {0x29}, {0xFF}, {0xFF}, {0xFF}, {0xFF}, {0xFF} + }, { // SECRET_POWER + {0x0B}, {0x0B}, {0x11}, {0x02}, {0x29}, {0x0B} + }, { // DIZZY_PUNCH + {0x11}, {0x02}, {0xFF}, {0xFF}, {0xFF}, {0xFF} + }, { // BULK_UP + {0x1A}, {0x0B}, {0xFF}, {0xFF}, {0xFF}, {0xFF} + }, { // IMPRISON + {0x0B}, {0x0B}, {0x0B}, {0xFF}, {0xFF}, {0xFF} + }, { // FEATHER_DANCE + {0x02}, {0x29}, {0x0B}, {0x0B}, {0x11}, {0x0B} + }, { // WHIRLWIND + {0x11}, {0x0B}, {0x11}, {0xFF}, {0xFF}, {0xFF} + }, { // BEAT_UP + {0x11}, {0x0B}, {0xFF}, {0xFF}, {0xFF}, {0xFF} + }, { // BLIZZARD + {0x11}, {0x02}, {0xFF}, {0xFF}, {0xFF}, {0xFF} + }, { // STOMP + {0x02}, {0x0B}, {0xFF}, {0xFF}, {0xFF}, {0xFF} + }, { // FLASH + {0x11}, {0xFF}, {0xFF}, {0xFF}, {0xFF}, {0xFF} + }, { // TEETER_DANCE + {0x02}, {0x29}, {0x0B}, {0x02}, {0xFF}, {0xFF} + }, { // CRUSH_CLAW + {0x0B}, {0x02}, {0x02}, {0x29}, {0x0B}, {0xFF} + }, { // BLAZE_KICK + {0x0B}, {0x29}, {0x0B}, {0x0B}, {0x0B}, {0xFF} + }, { // PRESENT + {0x0B}, {0x0B}, {0xFF}, {0xFF}, {0xFF}, {0xFF} + }, { // ERUPTION + {0x0B}, {0x29}, {0x11}, {0x1A}, {0xFF}, {0xFF} + }, { // SLUDGE + {0x02}, {0x02}, {0xFF}, {0xFF}, {0xFF}, {0xFF} + }, { // SLUDGE_BOMB + {0x02}, {0x1A}, {0x0B}, {0xFF}, {0xFF}, {0xFF} + }, { // GLARE + {0x11}, {0x11}, {0xFF}, {0xFF}, {0xFF}, {0xFF} + }, { // TRANSFORM + {0x02}, {0x0B}, {0xFF}, {0xFF}, {0xFF}, {0xFF} + }, { // POISON_TAIL + {0x11}, {0x0B}, {0x11}, {0xFF}, {0xFF}, {0xFF} + }, { // ROAR + {0x11}, {0x0B}, {0xFF}, {0xFF}, {0xFF}, {0xFF} + }, { // BONE_RUSH + {0x1A}, {0x0B}, {0x02}, {0xFF}, {0xFF}, {0xFF} + }, { // CAMOUFLAGE + {0x02}, {0x29}, {0xFF}, {0xFF}, {0xFF}, {0xFF} + }, { // COVET + {0x0B}, {0x11}, {0x0B}, {0xFF}, {0xFF}, {0xFF} + }, { // TAIL_GLOW + {0x0B}, {0x11}, {0x02}, {0xFF}, {0xFF}, {0xFF} + }, { // BONE_CLUB + {0x1A}, {0x0B}, {0x0B}, {0x29}, {0x0B}, {0xFF} + }, { // BONEMERANG + {0x1A}, {0x0B}, {0x02}, {0xFF}, {0xFF}, {0xFF} + }, { // FIRE_SPIN + {0x0B}, {0x29}, {0x0B}, {0x11}, {0x0B}, {0xFF} + }, { // FIRE_PUNCH + {0x0B}, {0x29}, {0x0B}, {0x02}, {0xFF}, {0xFF} + }, { // PERISH_SONG + {0x02}, {0x0B}, {0x02}, {0xFF}, {0xFF}, {0xFF} + }, { // WRAP + {0x11}, {0x0B}, {0xFF}, {0xFF}, {0xFF}, {0xFF} + }, { // SPIKES + {0x02}, {0x0B}, {0xFF}, {0xFF}, {0xFF}, {0xFF} + }, { // MAGNITUDE + {0x11}, {0x0B}, {0x11}, {0x0B}, {0xFF}, {0xFF} + }, { // MAGICAL_LEAF + {0x02}, {0x29}, {0x0B}, {0x02}, {0xFF}, {0xFF} + }, { // MAGIC_COAT + {0x02}, {0x11}, {0x02}, {0x0B}, {0xFF}, {0xFF} + }, { // MUD_SHOT + {0x0B}, {0x29}, {0xFF}, {0xFF}, {0xFF}, {0xFF} + }, { // MACH_PUNCH + {0x0B}, {0x1A}, {0x11}, {0xFF}, {0xFF}, {0xFF} + }, { // PROTECT + {0x29}, {0x11}, {0xFF}, {0xFF}, {0xFF}, {0xFF} + }, { // DEFENSE_CURL + {0x0B}, {0x11}, {0x11}, {0x0B}, {0xFF}, {0xFF} + }, { // ROLLING_KICK + {0x0B}, {0x0B}, {0x11}, {0xFF}, {0xFF}, {0xFF} + }, { // SUBSTITUTE + {0x0B}, {0x0B}, {0x02}, {0x1A}, {0xFF}, {0xFF} + }, { // DETECT + {0x0B}, {0x0B}, {0xFF}, {0xFF}, {0xFF}, {0xFF} + }, { // PIN_MISSILE + {0x02}, {0x0B}, {0x02}, {0x0B}, {0x0B}, {0xFF} + }, { // WATER_SPORT + {0x02}, {0x02}, {0x0B}, {0xFF}, {0xFF}, {0xFF} + }, { // WATER_GUN + {0x02}, {0x02}, {0x02}, {0x0B}, {0xFF}, {0xFF} + }, { // MIST_BALL + {0x0B}, {0x0B}, {0x02}, {0xFF}, {0xFF}, {0xFF} + }, { // WATER_PULSE + {0x02}, {0x02}, {0x0B}, {0x0B}, {0xFF}, {0xFF} + }, { // FURY_ATTACK + {0x29}, {0x11}, {0x0B}, {0x02}, {0xFF}, {0xFF} + }, { // FURY_SWIPES + {0x02}, {0x29}, {0x11}, {0x0B}, {0xFF}, {0xFF} + }, { // DESTINY_BOND + {0x02}, {0x02}, {0x29}, {0xFF}, {0xFF}, {0xFF} + }, { // FALSE_SWIPE + {0x29}, {0x02}, {0xFF}, {0xFF}, {0xFF}, {0xFF} + }, { // FORESIGHT + {0x0B}, {0x11}, {0x0B}, {0xFF}, {0xFF}, {0xFF} + }, { // MIRROR_COAT + {0x11}, {0x0B}, {0x02}, {0xFF}, {0xFF}, {0xFF} + }, { // FUTURE_SIGHT + {0x0B}, {0x0B}, {0xFF}, {0xFF}, {0xFF}, {0xFF} + }, { // MILK_DRINK + {0x11}, {0x0B}, {0x0B}, {0xFF}, {0xFF}, {0xFF} + }, { // CALM_MIND + {0x0B}, {0x02}, {0x0B}, {0x29}, {0xFF}, {0xFF} + }, { // MEGA_DRAIN + {0x0B}, {0x02}, {0x02}, {0x29}, {0x0B}, {0xFF} + }, { // MEGA_KICK + {0x0B}, {0x02}, {0x11}, {0xFF}, {0xFF}, {0xFF} + }, { // MEGA_PUNCH + {0x0B}, {0x02}, {0x11}, {0xFF}, {0xFF}, {0xFF} + }, { // MEGAHORN + {0x11}, {0x0B}, {0x0B}, {0xFF}, {0xFF}, {0xFF} + }, { // HIDDEN_POWER + {0x02}, {0x0B}, {0x0B}, {0x0B}, {0xFF}, {0xFF} + }, { // METAL_CLAW + {0x0B}, {0x02}, {0x02}, {0x29}, {0x0B}, {0xFF} + }, { // ATTRACT + {0x02}, {0x11}, {0x29}, {0xFF}, {0xFF}, {0xFF} + }, { // MIMIC + {0x11}, {0x11}, {0x11}, {0xFF}, {0xFF}, {0xFF} + }, { // FRUSTRATION + {0x29}, {0x02}, {0x11}, {0x1A}, {0xFF}, {0xFF} + }, { // LEECH_SEED + {0x0B}, {0x0B}, {0x02}, {0x0B}, {0xFF}, {0xFF} + }, { // METRONOME + {0x0B}, {0x1A}, {0x1A}, {0xFF}, {0xFF}, {0xFF} + }, { // DREAM_EATER + {0x02}, {0x29}, {0x0B}, {0x0B}, {0xFF}, {0xFF} + }, { // ACID + {0x0B}, {0x29}, {0x0B}, {0xFF}, {0xFF}, {0xFF} + }, { // MEDITATE + {0x0B}, {0x11}, {0x02}, {0x11}, {0x1A}, {0xFF} + }, { // SNATCH + {0x11}, {0x0B}, {0x02}, {0x0B}, {0xFF}, {0xFF} + }, { // LUSTER_PURGE + {0x0B}, {0x11}, {0x0B}, {0x0B}, {0xFF}, {0xFF} + }, { // LEAF_BLADE + {0x02}, {0x29}, {0x11}, {0x0B}, {0xFF}, {0xFF} + }, { // RECYCLE + {0x02}, {0x29}, {0x0B}, {0x0B}, {0x11}, {0x29} + }, { // REFLECT + {0x0B}, {0x0B}, {0x1A}, {0xFF}, {0xFF}, {0xFF} + }, { // REFRESH + {0x0B}, {0x11}, {0x29}, {0xFF}, {0xFF}, {0xFF} + }, { // REVENGE + {0x0B}, {0x0B}, {0x29}, {0xFF}, {0xFF}, {0xFF} + }, { // DRAGON_RAGE + {0x02}, {0x0B}, {0x29}, {0xFF}, {0xFF}, {0xFF} + }, { // DRAGON_BREATH + {0x0B}, {0x29}, {0x1A}, {0x0B}, {0xFF}, {0xFF} + }, { // DRAGON_DANCE + {0x02}, {0x0B}, {0x02}, {0xFF}, {0xFF}, {0xFF} + }, { // ICE_PUNCH + {0x0B}, {0x11}, {0x11}, {0xFF}, {0xFF}, {0xFF} + }, { // ICE_BEAM + {0x0B}, {0x11}, {0x02}, {0xFF}, {0xFF}, {0xFF} + }, { // FURY_CUTTER + {0x1A}, {0x11}, {0x0B}, {0xFF}, {0xFF}, {0xFF} + }, { // COMET_PUNCH + {0x1A}, {0x0B}, {0x0B}, {0x11}, {0xFF}, {0xFF} + }, { // SKULL_BASH + {0x0B}, {0x0B}, {0x29}, {0x0B}, {0xFF}, {0xFF} + }, { // LOCK_ON + {0x11}, {0x29}, {0xFF}, {0xFF}, {0xFF}, {0xFF} + }, { // ROCK_BLAST + {0x0B}, {0x29}, {0xFF}, {0xFF}, {0xFF}, {0xFF} + }, { // COTTON_SPORE + {0x02}, {0x29}, {0x1A}, {0x02}, {0x02}, {0xFF} + }, { // STRUGGLE + {0x0B}, {0x0B}, {0x11}, {0x0B}, {0xFF}, {0xFF} + } +}; +#endif // ENGLISH/GERMAN + +#endif //GUARD_DATA_BARD_MUSIC_MOVES_H diff --git a/src/data/bard_music/people.h b/src/data/bard_music/people.h new file mode 100644 index 000000000..5b2ed24d7 --- /dev/null +++ b/src/data/bard_music/people.h @@ -0,0 +1,314 @@ +#ifndef GUARD_DATA_BARD_MUSIC_PEOPLE_H +#define GUARD_DATA_BARD_MUSIC_PEOPLE_H + +#if ENGLISH +const struct BardSound gBardSounds_People[][6] = { + { // OPPONENT + {0x2C}, {0x1A}, {0x0B}, {0xFF}, {0xFF}, {0xFF} + }, { // I + {0x13}, {0x33}, {0x33}, {0xFF}, {0xFF}, {0xFF} + }, { // YOU + {0x2D}, {0x33}, {0x33}, {0xFF}, {0xFF}, {0xFF} + }, { // YOURS + {0x1A}, {0x33}, {0x33}, {0xFF}, {0xFF}, {0xFF} + }, { // SON + {0x27}, {0x33}, {0x33}, {0xFF}, {0xFF}, {0xFF} + }, { // YOUR + {0x1A, 0xF7}, {0x33}, {0x33}, {0xFF}, {0xFF}, {0xFF} + }, { // YOU'RE + {0x26}, {0x32}, {0x33}, {0xFF}, {0xFF}, {0xFF} + }, { // YOU'VE + {0x2D}, {0x33}, {0x33}, {0xFF}, {0xFF}, {0xFF} + }, { // MOTHER + {0x2C}, {0x32}, {0x33}, {0xFF}, {0xFF}, {0xFF} + }, { // GRANDFATHER + {0x01}, {0x08}, {0x32}, {0x33}, {0xFF}, {0xFF} + }, { // UNCLE + {0x2C}, {0x26}, {0x33}, {0xFF}, {0xFF}, {0xFF} + }, { // FATHER + {0x08}, {0x30}, {0x33}, {0xFF}, {0xFF}, {0xFF} + }, { // BOY + {0x1E}, {0x33}, {0x33}, {0xFF}, {0xFF}, {0xFF} + }, { // ADULT + {0x00}, {0x24}, {0x33}, {0xFF}, {0xFF}, {0xFF} + }, { // BROTHER + {0x15}, {0x30}, {0x33}, {0xFF}, {0xFF}, {0xFF} + }, { // SISTER + {0x11}, {0x30}, {0x33}, {0xFF}, {0xFF}, {0xFF} + }, { // GRANDMOTHER + {0x01}, {0x2C}, {0x32}, {0x33}, {0xFF}, {0xFF} + }, { // AUNT + {0x07}, {0x33}, {0x33}, {0xFF}, {0xFF}, {0xFF} + }, { // PARENT + {0x09}, {0x0B}, {0x33}, {0xFF}, {0xFF}, {0xFF} + }, { // MAN + {0x00}, {0x33}, {0x33}, {0xFF}, {0xFF}, {0xFF} + }, { // ME + {0x0D}, {0x33}, {0x33}, {0xFF}, {0xFF}, {0xFF} + }, { // GIRL + {0x30}, {0x33}, {0x33}, {0xFF}, {0xFF}, {0xFF} + }, { // BABE + {0x04}, {0x33}, {0x33}, {0xFF}, {0xFF}, {0xFF} + }, { // FAMILY + {0x00}, {0x11}, {0x0E}, {0xFF}, {0xFF}, {0xFF} + }, { // HER + {0x32}, {0x33}, {0x33}, {0xFF}, {0xFF}, {0xFF} + }, { // HIM + {0x0F}, {0x33}, {0x33}, {0xFF}, {0xFF}, {0xFF} + }, { // HE + {0x0C}, {0x33}, {0x33}, {0xFF}, {0xFF}, {0xFF} + }, { // PLACE + {0x03}, {0x33}, {0x33}, {0xFF}, {0xFF}, {0xFF} + }, { // DAUGHTER + {0x27}, {0x33}, {0x33}, {0xFF}, {0xFF}, {0xFF} + }, { // HIS + {0x10}, {0x33}, {0x33}, {0xFF}, {0xFF}, {0xFF} + }, { // HE'S + {0x0C}, {0x33}, {0x33}, {0xFF}, {0xFF}, {0xFF} + }, { // AREN'T + {0x1C}, {0x33}, {0x33}, {0xFF}, {0xFF}, {0xFF} + }, { // SIBLINGS + {0x11}, {0x0E}, {0x33}, {0xFF}, {0xFF}, {0xFF} + }, { // KID + {0x11}, {0x33}, {0x33}, {0xFF}, {0xFF}, {0xFF} + }, { // CHILDREN + {0x11}, {0x0A}, {0x33}, {0xFF}, {0xFF}, {0xFF} + }, { // MR. + {0x11}, {0x30}, {0x33}, {0xFF}, {0xFF}, {0xFF} + }, { // MRS. + {0x11}, {0x09}, {0x33}, {0xFF}, {0xFF}, {0xFF} + }, { // MYSELF + {0x12}, {0x0B}, {0x33}, {0xFF}, {0xFF}, {0xFF} + }, { // I WAS + {0x12}, {0x2C}, {0x33}, {0xFF}, {0xFF}, {0xFF} + }, { // TO ME + {0x27}, {0x0D}, {0x33}, {0xFF}, {0xFF}, {0xFF} + }, { // MY + {0x12}, {0x33}, {0x33}, {0xFF}, {0xFF}, {0xFF} + }, { // I AM + {0x12}, {0x02}, {0x33}, {0xFF}, {0xFF}, {0xFF} + }, { // I'VE + {0x14}, {0x33}, {0x33}, {0xFF}, {0xFF}, {0xFF} + }, { // WHO + {0x29}, {0x33}, {0x33}, {0xFF}, {0xFF}, {0xFF} + }, { // SOMEONE + {0x2A}, {0x2C}, {0x33}, {0xFF}, {0xFF}, {0xFF} + }, { // WHO WAS + {0x27}, {0x2C}, {0x33}, {0xFF}, {0xFF}, {0xFF} + }, { // TO WHOM + {0x27}, {0x29}, {0x33}, {0xFF}, {0xFF}, {0xFF} + }, { // WHOSE + {0x27}, {0x33}, {0x33}, {0xFF}, {0xFF}, {0xFF} + }, { // WHO IS + {0x27}, {0x10}, {0x33}, {0xFF}, {0xFF}, {0xFF} + }, { // IT'S + {0x10}, {0x33}, {0x33}, {0xFF}, {0xFF}, {0xFF} + }, { // LADY + {0x05}, {0x0E}, {0x33}, {0xFF}, {0xFF}, {0xFF} + }, { // FRIEND + {0x09}, {0x33}, {0x33}, {0xFF}, {0xFF}, {0xFF} + }, { // ALLY + {0x00}, {0x14}, {0x33}, {0xFF}, {0xFF}, {0xFF} + }, { // PERSON + {0x32}, {0x1D}, {0x33}, {0xFF}, {0xFF}, {0xFF} + }, { // DUDE + {0x28}, {0x33}, {0x33}, {0xFF}, {0xFF}, {0xFF} + }, { // THEY + {0x05}, {0x33}, {0x33}, {0xFF}, {0xFF}, {0xFF} + }, { // THEY WERE + {0x05}, {0x30}, {0x33}, {0xFF}, {0xFF}, {0xFF} + }, { // TO THEM + {0x27}, {0x09}, {0x33}, {0xFF}, {0xFF}, {0xFF} + }, { // THEIR + {0x31}, {0x33}, {0x33}, {0xFF}, {0xFF}, {0xFF} + }, { // THEY'RE + {0x31}, {0x33}, {0x33}, {0xFF}, {0xFF}, {0xFF} + }, { // THEY'VE + {0x03}, {0x0B}, {0x33}, {0xFF}, {0xFF}, {0xFF} + }, { // WE + {0x0C}, {0x33}, {0x33}, {0xFF}, {0xFF}, {0xFF} + }, { // BEEN + {0x0F}, {0x33}, {0x33}, {0xFF}, {0xFF}, {0xFF} + }, { // TO US + {0x27}, {0x2C}, {0x33}, {0xFF}, {0xFF}, {0xFF} + }, { // OUR + {0x21}, {0x32}, {0x33}, {0xFF}, {0xFF}, {0xFF} + }, { // WE'RE + {0x0C}, {0x32}, {0x33}, {0xFF}, {0xFF}, {0xFF} + }, { // RIVAL + {0x12}, {0x24}, {0x33}, {0xFF}, {0xFF}, {0xFF} + }, { // WE'VE + {0x0C}, {0x33}, {0x33}, {0xFF}, {0xFF}, {0xFF} + }, { // WOMAN + {0x26}, {0x02}, {0x33}, {0xFF}, {0xFF}, {0xFF} + }, { // SHE + {0x0C}, {0x33}, {0x33}, {0xFF}, {0xFF}, {0xFF} + }, { // SHE WAS + {0x0C}, {0x2B}, {0x33}, {0xFF}, {0xFF}, {0xFF} + }, { // TO HER + {0x27}, {0x30}, {0x33}, {0xFF}, {0xFF}, {0xFF} + }, { // HER'S + {0x30}, {0x33}, {0x33}, {0xFF}, {0xFF}, {0xFF} + }, { // SHE IS + {0x0C}, {0x10}, {0x33}, {0xFF}, {0xFF}, {0xFF} + }, { // SOME + {0x0C}, {0x01}, {0x33}, {0xFF}, {0xFF}, {0xFF} + } +}; +#elif GERMAN +const struct BardSound gBardSounds_People[][6] = { + { // OPPONENT + {0x0B}, {0x11}, {0xFF}, {0xFF}, {0xFF}, {0xFF} + }, { // I + {0x11}, {0xFF}, {0xFF}, {0xFF}, {0xFF}, {0xFF} + }, { // YOU + {0x29}, {0xFF}, {0xFF}, {0xFF}, {0xFF}, {0xFF} + }, { // YOURS + {0x0B}, {0x11}, {0x0B}, {0xFF}, {0xFF}, {0xFF} + }, { // SON + {0x0B}, {0x11}, {0xFF}, {0xFF}, {0xFF}, {0xFF} + }, { // YOUR + {0x0B, 0xF7}, {0x11}, {0x0B}, {0xFF}, {0xFF}, {0xFF} + }, { // YOU'RE + {0x29}, {0x11}, {0xFF}, {0xFF}, {0xFF}, {0xFF} + }, { // YOU'VE + {0x29}, {0x02}, {0xFF}, {0xFF}, {0xFF}, {0xFF} + }, { // MOTHER + {0x29}, {0x0B}, {0xFF}, {0xFF}, {0xFF}, {0xFF} + }, { // GRANDFATHER + {0x1A}, {0x02}, {0x0B}, {0xFF}, {0xFF}, {0xFF} + }, { // UNCLE + {0x1A}, {0x0B}, {0xFF}, {0xFF}, {0xFF}, {0xFF} + }, { // FATHER + {0x02}, {0x0B}, {0xFF}, {0xFF}, {0xFF}, {0xFF} + }, { // BOY + {0x29}, {0x0B}, {0xFF}, {0xFF}, {0xFF}, {0xFF} + }, { // ADULT + {0x0B}, {0x02}, {0x0B}, {0x0B}, {0xFF}, {0xFF} + }, { // BROTHER + {0x29}, {0x0B}, {0xFF}, {0xFF}, {0xFF}, {0xFF} + }, { // SISTER + {0x0B}, {0x0B}, {0xFF}, {0xFF}, {0xFF}, {0xFF} + }, { // GRANDMOTHER + {0x1A}, {0x29}, {0x0B}, {0xFF}, {0xFF}, {0xFF} + }, { // AUNT + {0x02}, {0x0B}, {0xFF}, {0xFF}, {0xFF}, {0xFF} + }, { // PARENT + {0x0B}, {0x0B}, {0xFF}, {0xFF}, {0xFF}, {0xFF} + }, { // MAN + {0x02}, {0xFF}, {0xFF}, {0xFF}, {0xFF}, {0xFF} + }, { // ME + {0x11}, {0xFF}, {0xFF}, {0xFF}, {0xFF}, {0xFF} + }, { // GIRL + {0x0B}, {0x0B}, {0xFF}, {0xFF}, {0xFF}, {0xFF} + }, { // BABE + {0x11}, {0xFF}, {0xFF}, {0xFF}, {0xFF}, {0xFF} + }, { // FAMILY + {0x02}, {0x11}, {0x11}, {0x0B}, {0xFF}, {0xFF} + }, { // HER + {0x11}, {0xFF}, {0xFF}, {0xFF}, {0xFF}, {0xFF} + }, { // HIM + {0x11}, {0xFF}, {0xFF}, {0xFF}, {0xFF}, {0xFF} + }, { // HE + {0x0B}, {0xFF}, {0xFF}, {0xFF}, {0xFF}, {0xFF} + }, { // PLACE + {0x1A}, {0xFF}, {0xFF}, {0xFF}, {0xFF}, {0xFF} + }, { // DAUGHTER + {0x1A}, {0x0B}, {0x0B}, {0xFF}, {0xFF}, {0xFF} + }, { // HIS + {0x0B}, {0x11}, {0xFF}, {0xFF}, {0xFF}, {0xFF} + }, { // HE'S + {0x0B}, {0x11}, {0xFF}, {0xFF}, {0xFF}, {0xFF} + }, { // AREN'T + {0x11}, {0x11}, {0xFF}, {0xFF}, {0xFF}, {0xFF} + }, { // SIBLINGS + {0x0B}, {0x11}, {0x0B}, {0xFF}, {0xFF}, {0xFF} + }, { // KID + {0x11}, {0x0B}, {0xFF}, {0xFF}, {0xFF}, {0xFF} + }, { // CHILDREN + {0x11}, {0x0B}, {0xFF}, {0xFF}, {0xFF}, {0xFF} + }, { // MR. + {0x0B}, {0xFF}, {0xFF}, {0xFF}, {0xFF}, {0xFF} + }, { // MRS. + {0x02}, {0x29}, {0xFF}, {0xFF}, {0xFF}, {0xFF} + }, { // MYSELF + {0x11}, {0xFF}, {0xFF}, {0xFF}, {0xFF}, {0xFF} + }, { // I WAS + {0x11}, {0x02}, {0xFF}, {0xFF}, {0xFF}, {0xFF} + }, { // TO ME + {0x29}, {0x11}, {0xFF}, {0xFF}, {0xFF}, {0xFF} + }, { // MY + {0x0B}, {0x11}, {0xFF}, {0xFF}, {0xFF}, {0xFF} + }, { // I AM + {0x11}, {0x02}, {0xFF}, {0xFF}, {0xFF}, {0xFF} + }, { // I'VE + {0x11}, {0x02}, {0xFF}, {0xFF}, {0xFF}, {0xFF} + }, { // WHO + {0x0B}, {0xFF}, {0xFF}, {0xFF}, {0xFF}, {0xFF} + }, { // SOMEONE + {0x0B}, {0x02}, {0xFF}, {0xFF}, {0xFF}, {0xFF} + }, { // WHO WAS + {0x0B}, {0x11}, {0x0B}, {0xFF}, {0xFF}, {0xFF} + }, { // TO WHOM + {0x0B}, {0x0B}, {0xFF}, {0xFF}, {0xFF}, {0xFF} + }, { // WHOSE + {0x0B}, {0x0B}, {0xFF}, {0xFF}, {0xFF}, {0xFF} + }, { // WHO IS + {0x0B}, {0x11}, {0xFF}, {0xFF}, {0xFF}, {0xFF} + }, { // IT'S + {0x02}, {0x11}, {0xFF}, {0xFF}, {0xFF}, {0xFF} + }, { // LADY + {0x02}, {0x0B}, {0xFF}, {0xFF}, {0xFF}, {0xFF} + }, { // FRIEND + {0x0B}, {0x29}, {0xFF}, {0xFF}, {0xFF}, {0xFF} + }, { // ALLY + {0x0B}, {0x11}, {0x0B}, {0x0B}, {0xFF}, {0xFF} + }, { // PERSON + {0x0B}, {0x1A}, {0xFF}, {0xFF}, {0xFF}, {0xFF} + }, { // DUDE + {0x11}, {0x0B}, {0xFF}, {0xFF}, {0xFF}, {0xFF} + }, { // THEY + {0x11}, {0x0B}, {0xFF}, {0xFF}, {0xFF}, {0xFF} + }, { // THEY WERE + {0x11}, {0x02}, {0xFF}, {0xFF}, {0xFF}, {0xFF} + }, { // TO THEM + {0x11}, {0x11}, {0xFF}, {0xFF}, {0xFF}, {0xFF} + }, { // THEIR + {0x0B}, {0x29}, {0xFF}, {0xFF}, {0xFF}, {0xFF} + }, { // THEY'RE + {0x11}, {0x11}, {0xFF}, {0xFF}, {0xFF}, {0xFF} + }, { // THEY'VE + {0x11}, {0x02}, {0xFF}, {0xFF}, {0xFF}, {0xFF} + }, { // WE + {0x11}, {0xFF}, {0xFF}, {0xFF}, {0xFF}, {0xFF} + }, { // BEEN + {0x02}, {0x0B}, {0xFF}, {0xFF}, {0xFF}, {0xFF} + }, { // TO US + {0x11}, {0x29}, {0xFF}, {0xFF}, {0xFF}, {0xFF} + }, { // OUR + {0x29}, {0x0B}, {0xFF}, {0xFF}, {0xFF}, {0xFF} + }, { // WE'RE + {0x11}, {0x11}, {0xFF}, {0xFF}, {0xFF}, {0xFF} + }, { // RIVAL + {0x11}, {0x02}, {0x0B}, {0xFF}, {0xFF}, {0xFF} + }, { // WE'VE + {0x11}, {0x02}, {0x0B}, {0xFF}, {0xFF}, {0xFF} + }, { // WOMAN + {0x11}, {0x1A}, {0xFF}, {0xFF}, {0xFF}, {0xFF} + }, { // SHE + {0x11}, {0xFF}, {0xFF}, {0xFF}, {0xFF}, {0xFF} + }, { // SHE WAS + {0x11}, {0x02}, {0xFF}, {0xFF}, {0xFF}, {0xFF} + }, { // TO HER + {0x11}, {0x02}, {0xFF}, {0xFF}, {0xFF}, {0xFF} + }, { // HER'S + {0x0B}, {0x29}, {0x0B}, {0xFF}, {0xFF}, {0xFF} + }, { // SHE IS + {0x11}, {0x11}, {0xFF}, {0xFF}, {0xFF}, {0xFF} + }, { // SOME + {0x11}, {0x02}, {0x0B}, {0xFF}, {0xFF}, {0xFF} + } +}; +#endif // ENGLISH/GERMAN + +#endif // GUARD_DATA_BARD_MUSIC_PEOPLE_H diff --git a/src/data/bard_music/pokemon.h b/src/data/bard_music/pokemon.h new file mode 100644 index 000000000..89144a129 --- /dev/null +++ b/src/data/bard_music/pokemon.h @@ -0,0 +1,823 @@ +#ifndef GUARD_DATA_BARD_MUSIC_POKEMON_H +#define GUARD_DATA_BARD_MUSIC_POKEMON_H + +#if ENGLISH +const struct BardSound gBardSounds_Pokemon[][6] = { + { // ARMALDO + {0x1B}, {0x1B}, {0x18}, {0x33}, {0xFF}, {0xFF} + }, { // BEAUTIFLY + {0x2D}, {0x09}, {0x12}, {0x33}, {0xFF}, {0xFF} + }, { // MEDITITE + {0x09}, {0x11}, {0x12}, {0x33}, {0xFF}, {0xFF} + }, { // SEAKING + {0x0C}, {0x0C}, {0x33}, {0xFF}, {0xFF}, {0xFF} + }, { // TORCHIC + {0x18}, {0x11}, {0x33}, {0xFF}, {0xFF}, {0xFF} + }, { // ANORITH + {0x00}, {0x18}, {0x11}, {0xFF}, {0xFF}, {0xFF} + }, { // ABSOL + {0x00}, {0x18}, {0x33}, {0xFF}, {0xFF}, {0xFF} + }, { // SURSKIT + {0x30}, {0x11}, {0x33}, {0xFF}, {0xFF}, {0xFF} + }, { // MASQUERAIN + {0x00}, {0x30}, {0x03}, {0x33}, {0xFF}, {0xFF} + }, { // GEODUDE + {0x0C}, {0x18}, {0x27}, {0xFF}, {0xFF}, {0xFF} + }, { // ILLUMISE + {0x0C}, {0x27}, {0x0C}, {0x03}, {0xFF}, {0xFF} + }, { // SKARMORY + {0x1B}, {0x1A}, {0x0C}, {0xFF}, {0xFF}, {0xFF} + }, { // SKITTY + {0x11}, {0x0C}, {0x33}, {0xFF}, {0xFF}, {0xFF} + }, { // DELCATTY + {0x09}, {0x00}, {0x0C}, {0xFF}, {0xFF}, {0xFF} + }, { // SWELLOW + {0x09}, {0x18}, {0x33}, {0xFF}, {0xFF}, {0xFF} + }, { // GLALIE + {0x05}, {0x0C}, {0x33}, {0xFF}, {0xFF}, {0xFF} + }, { // KYOGRE + {0x12}, {0x18}, {0x30}, {0xFF}, {0xFF}, {0xFF} + }, { // MACHAMP + {0x2A}, {0x00}, {0x33}, {0xFF}, {0xFF}, {0xFF} + }, { // PINSIR + {0x11}, {0x30}, {0x33}, {0xFF}, {0xFF}, {0xFF} + }, { // KECLEON + {0x09}, {0x0C}, {0x1B}, {0x33}, {0xFF}, {0xFF} + }, { // SHUPPET + {0x2A}, {0x11}, {0x33}, {0xFF}, {0xFF}, {0xFF} + }, { // SILCOON + {0x11}, {0x28}, {0x33}, {0xFF}, {0xFF}, {0xFF} + }, { // BRELOOM + {0x09}, {0x27}, {0x33}, {0xFF}, {0xFF}, {0xFF} + }, { // SHROOMISH + {0x27}, {0x11}, {0x33}, {0xFF}, {0xFF}, {0xFF} + }, { // CARVANHA + {0x1B}, {0x01}, {0x2A}, {0xFF}, {0xFF}, {0xFF} + }, { // TREECKO + {0x0C}, {0x18}, {0x33}, {0xFF}, {0xFF}, {0xFF} + }, { // WINGULL + {0x0F}, {0x24}, {0x33}, {0xFF}, {0xFF}, {0xFF} + }, { // GYARADOS + {0x1D}, {0x09}, {0x11}, {0x1D}, {0xFF}, {0xFF} + }, { // NINETALES + {0x12}, {0x05}, {0x33}, {0xFF}, {0xFF}, {0xFF} + }, { // GIRAFARIG + {0x30}, {0x00}, {0x2A}, {0x11}, {0xFF}, {0xFF} + }, { // KIRLIA + {0x30}, {0x0C}, {0x2A}, {0xFF}, {0xFF}, {0xFF} + }, { // BELLOSSOM + {0x09}, {0x1B}, {0x2C}, {0x33}, {0xFF}, {0xFF} + }, { // KINGDRA + {0x0C}, {0x2A}, {0x33}, {0xFF}, {0xFF}, {0xFF} + }, { // GLOOM + {0x27}, {0x33}, {0x33}, {0xFF}, {0xFF}, {0xFF} + }, { // MAWILE + {0x1B}, {0x12}, {0x33}, {0xFF}, {0xFF}, {0xFF} + }, { // GROUDON + {0x21}, {0x1B}, {0x33}, {0xFF}, {0xFF}, {0xFF} + }, { // MIGHTYENA + {0x12}, {0x0C}, {0x09}, {0x2C}, {0xFF}, {0xFF} + }, { // CROBAT + {0x18}, {0x00}, {0x33}, {0xFF}, {0xFF}, {0xFF} + }, { // ABRA + {0x00}, {0x2A}, {0x33}, {0xFF}, {0xFF}, {0xFF} + }, { // SLAKING + {0x00}, {0x0C}, {0x33}, {0xFF}, {0xFF}, {0xFF} + }, { // WURMPLE + {0x30}, {0x24}, {0x33}, {0xFF}, {0xFF}, {0xFF} + }, { // MAGIKARP + {0x00}, {0x11}, {0x1B}, {0xFF}, {0xFF}, {0xFF} + }, { // MAGNEMITE + {0x00}, {0x09}, {0x12}, {0xFF}, {0xFF}, {0xFF} + }, { // TORKOAL + {0x18}, {0x1A}, {0x33}, {0xFF}, {0xFF}, {0xFF} + }, { // MACHOKE + {0x2A}, {0x1A}, {0x33}, {0xFF}, {0xFF}, {0xFF} + }, { // GULPIN + {0x24}, {0x0F}, {0x33}, {0xFF}, {0xFF}, {0xFF} + }, { // ARON + {0x1B}, {0x1D}, {0x33}, {0xFF}, {0xFF}, {0xFF} + }, { // PSYDUCK + {0x12}, {0x2A}, {0x33}, {0xFF}, {0xFF}, {0xFF} + }, { // LAIRON + {0x05}, {0x1B}, {0x33}, {0xFF}, {0xFF}, {0xFF} + }, { // WHISMUR + {0x11}, {0x30}, {0x33}, {0xFF}, {0xFF}, {0xFF} + }, { // NUZLEAF + {0x2C}, {0x0E}, {0x33}, {0xFF}, {0xFF}, {0xFF} + }, { // PHANPY + {0x00}, {0x0C}, {0x33}, {0xFF}, {0xFF}, {0xFF} + }, { // SHELGON + {0x09}, {0x1B}, {0x33}, {0xFF}, {0xFF}, {0xFF} + }, { // GOLDUCK + {0x18}, {0x2A}, {0x33}, {0xFF}, {0xFF}, {0xFF} + }, { // GOLBAT + {0x1A}, {0x00}, {0x33}, {0xFF}, {0xFF}, {0xFF} + }, { // GOLEM + {0x18}, {0x09}, {0x33}, {0xFF}, {0xFF}, {0xFF} + }, { // GRAVELER + {0x00}, {0x09}, {0x30}, {0xFF}, {0xFF}, {0xFF} + }, { // GARDEVOIR + {0x1B}, {0x09}, {0x1B}, {0x33}, {0xFF}, {0xFF} + }, { // RHYDON + {0x12}, {0x15}, {0x33}, {0xFF}, {0xFF}, {0xFF} + }, { // RHYHORN + {0x14}, {0x1A}, {0x33}, {0xFF}, {0xFF}, {0xFF} + }, { // GOREBYSS + {0x1A}, {0x2C}, {0x11}, {0x33}, {0xFF}, {0xFF} + }, { // CORSOLA + {0x18}, {0x18}, {0x2A}, {0xFF}, {0xFF}, {0xFF} + }, { // CACNEA + {0x00}, {0x0C}, {0x2A}, {0xFF}, {0xFF}, {0xFF} + }, { // DUSCLOPS + {0x2A}, {0x1B}, {0x33}, {0xFF}, {0xFF}, {0xFF} + }, { // SHARPEDO + {0x1D}, {0x0C}, {0x18}, {0xFF}, {0xFF}, {0xFF} + }, { // ZANGOOSE + {0x03}, {0x27}, {0x33}, {0xFF}, {0xFF}, {0xFF} + }, { // SANDSHREW + {0x00}, {0x27}, {0x33}, {0xFF}, {0xFF}, {0xFF} + }, { // SANDSLASH + {0x00}, {0x00}, {0x33}, {0xFF}, {0xFF}, {0xFF} + }, { // SEADRA + {0x0C}, {0x2A}, {0x33}, {0xFF}, {0xFF}, {0xFF} + }, { // RELICANTH + {0x09}, {0x11}, {0x00}, {0x33}, {0xFF}, {0xFF} + }, { // ZIGZAGOON + {0x11}, {0x00}, {0x27}, {0xFF}, {0xFF}, {0xFF} + }, { // CRAWDAUNT + {0x1B}, {0x1B}, {0x33}, {0xFF}, {0xFF}, {0xFF} + }, { // SCEPTILE + {0x09}, {0x12}, {0x33}, {0xFF}, {0xFF}, {0xFF} + }, { // GROVYLE + {0x18}, {0x12}, {0x33}, {0xFF}, {0xFF}, {0xFF} + }, { // BANETTE + {0x03}, {0x09}, {0x33}, {0xFF}, {0xFF}, {0xFF} + }, { // JIRACHI + {0x30}, {0x1B}, {0x0C}, {0x33}, {0xFF}, {0xFF} + }, { // STARMIE + {0x1B}, {0x0C}, {0x33}, {0xFF}, {0xFF}, {0xFF} + }, { // ZUBAT + {0x27}, {0x00}, {0x33}, {0xFF}, {0xFF}, {0xFF} + }, { // TAILLOW + {0x03}, {0x1A}, {0x33}, {0xFF}, {0xFF}, {0xFF} + }, { // WYNAUT + {0x12}, {0x1B}, {0x33}, {0xFF}, {0xFF}, {0xFF} + }, { // WOBBUFFET + {0x1D}, {0x2C}, {0x09}, {0xFF}, {0xFF}, {0xFF} + }, { // SOLROCK + {0x18}, {0x1B}, {0x33}, {0xFF}, {0xFF}, {0xFF} + }, { // SHIFTRY + {0x11}, {0x0C}, {0x33}, {0xFF}, {0xFF}, {0xFF} + }, { // HORSEA + {0x1A}, {0x0C}, {0x33}, {0xFF}, {0xFF}, {0xFF} + }, { // BAGON + {0x05}, {0x1B}, {0x33}, {0xFF}, {0xFF}, {0xFF} + }, { // SEEDOT + {0x0C}, {0x1B}, {0x33}, {0xFF}, {0xFF}, {0xFF} + }, { // SPHEAL + {0x0E}, {0x33}, {0x33}, {0xFF}, {0xFF}, {0xFF} + }, { // BELDUM + {0x09}, {0x2A}, {0x33}, {0xFF}, {0xFF}, {0xFF} + }, { // MEDICHAM + {0x09}, {0x11}, {0x00}, {0xFF}, {0xFF}, {0xFF} + }, { // CHINCHOU + {0x0F}, {0x21}, {0x33}, {0xFF}, {0xFF}, {0xFF} + }, { // CHIMECHO + {0x12}, {0x09}, {0x18}, {0x33}, {0xFF}, {0xFF} + }, { // ALTARIA + {0x06}, {0x1B}, {0x0C}, {0x2A}, {0xFF}, {0xFF} + }, { // SWABLU + {0x1B}, {0x27}, {0x33}, {0xFF}, {0xFF}, {0xFF} + }, { // NINCADA + {0x0F}, {0x06}, {0x06}, {0xFF}, {0xFF}, {0xFF} + }, { // DEOXYS + {0x0C}, {0x1B}, {0x11}, {0x33}, {0xFF}, {0xFF} + }, { // NINJASK + {0x0F}, {0x00}, {0x33}, {0xFF}, {0xFF}, {0xFF} + }, { // DODUO + {0x1A}, {0x27}, {0x18}, {0xFF}, {0xFF}, {0xFF} + }, { // DODRIO + {0x1A}, {0x0C}, {0x18}, {0xFF}, {0xFF}, {0xFF} + }, { // KOFFING + {0x15}, {0x0C}, {0x33}, {0xFF}, {0xFF}, {0xFF} + }, { // TENTACRUEL + {0x09}, {0x2A}, {0x27}, {0x33}, {0xFF}, {0xFF} + }, { // DUSTOX + {0x2C}, {0x17}, {0x33}, {0xFF}, {0xFF}, {0xFF} + }, { // LOUDRED + {0x21}, {0x09}, {0x33}, {0xFF}, {0xFF}, {0xFF} + }, { // GOLDEEN + {0x1A}, {0x0C}, {0x33}, {0xFF}, {0xFF}, {0xFF} + }, { // BARBOACH + {0x1B}, {0x18}, {0x33}, {0xFF}, {0xFF}, {0xFF} + }, { // SEALEO + {0x0C}, {0x0C}, {0x18}, {0xFF}, {0xFF}, {0xFF} + }, { // WALREIN + {0x1B}, {0x03}, {0x33}, {0xFF}, {0xFF}, {0xFF} + }, { // TROPIUS + {0x18}, {0x0C}, {0x2A}, {0x33}, {0xFF}, {0xFF} + }, { // DONPHAN + {0x1B}, {0x00}, {0x33}, {0xFF}, {0xFF}, {0xFF} + }, { // NUMEL + {0x2C}, {0x0B}, {0x33}, {0xFF}, {0xFF}, {0xFF} + }, { // ODDISH + {0x15}, {0x11}, {0x33}, {0xFF}, {0xFF}, {0xFF} + }, { // TRAPINCH + {0x00}, {0x0F}, {0x33}, {0xFF}, {0xFF}, {0xFF} + }, { // SLAKOTH + {0x00}, {0x1B}, {0x33}, {0xFF}, {0xFF}, {0xFF} + }, { // WHISCASH + {0x11}, {0x00}, {0x33}, {0xFF}, {0xFF}, {0xFF} + }, { // SHEDINJA + {0x09}, {0x0F}, {0x2A}, {0xFF}, {0xFF}, {0xFF} + }, { // MARSHTOMP + {0x1B}, {0x1D}, {0x33}, {0xFF}, {0xFF}, {0xFF} + }, { // NATU + {0x00}, {0x27}, {0x33}, {0xFF}, {0xFF}, {0xFF} + }, { // XATU + {0x00}, {0x27}, {0x33}, {0xFF}, {0xFF}, {0xFF} + }, { // CLAYDOL + {0x03}, {0x1B}, {0x33}, {0xFF}, {0xFF}, {0xFF} + }, { // CACTURNE + {0x00}, {0x30}, {0x33}, {0xFF}, {0xFF}, {0xFF} + }, { // NOSEPASS + {0x18}, {0x00}, {0x33}, {0xFF}, {0xFF}, {0xFF} + }, { // CLAMPERL + {0x00}, {0x32}, {0x33}, {0xFF}, {0xFF}, {0xFF} + }, { // CAMERUPT + {0x00}, {0x30}, {0x2A}, {0x33}, {0xFF}, {0xFF} + }, { // EXPLOUD + {0x09}, {0x21}, {0x33}, {0xFF}, {0xFF}, {0xFF} + }, { // BLAZIKEN + {0x03}, {0x11}, {0x0F}, {0x33}, {0xFF}, {0xFF} + }, { // LOMBRE + {0x18}, {0x03}, {0x33}, {0xFF}, {0xFF}, {0xFF} + }, { // LOTAD + {0x18}, {0x00}, {0x33}, {0xFF}, {0xFF}, {0xFF} + }, { // SPINDA + {0x0F}, {0x2A}, {0x33}, {0xFF}, {0xFF}, {0xFF} + }, { // SPOINK + {0x1E}, {0x33}, {0x33}, {0xFF}, {0xFF}, {0xFF} + }, { // SEVIPER + {0x09}, {0x12}, {0x30}, {0xFF}, {0xFF}, {0xFF} + }, { // HARIYAMA + {0x1B}, {0x0C}, {0x1B}, {0x2A}, {0xFF}, {0xFF} + }, { // VOLBEAT + {0x18}, {0x0C}, {0x33}, {0xFF}, {0xFF}, {0xFF} + }, { // HUNTAIL + {0x2A}, {0x05}, {0x33}, {0xFF}, {0xFF}, {0xFF} + }, { // PIKACHU + {0x0C}, {0x2A}, {0x27}, {0xFF}, {0xFF}, {0xFF} + }, { // PICHU + {0x0C}, {0x27}, {0x33}, {0xFF}, {0xFF}, {0xFF} + }, { // STARYU + {0x1B}, {0x27}, {0x33}, {0xFF}, {0xFF}, {0xFF} + }, { // VIBRAVA + {0x11}, {0x1B}, {0x2A}, {0xFF}, {0xFF}, {0xFF} + }, { // VOLTORB + {0x1A}, {0x18}, {0x33}, {0xFF}, {0xFF}, {0xFF} + }, { // FEEBAS + {0x0E}, {0x00}, {0x33}, {0x33}, {0xFF}, {0xFF} + }, { // ALAKAZAM + {0x00}, {0x2C}, {0x2C}, {0x00}, {0xFF}, {0xFF} + }, { // GRUMPIG + {0x2C}, {0x11}, {0x33}, {0xFF}, {0xFF}, {0xFF} + }, { // WIGGLYTUFF + {0x11}, {0x27}, {0x0C}, {0x2A}, {0x33}, {0xFF} + }, { // IGGLYBUFF + {0x11}, {0x2A}, {0x0C}, {0x2A}, {0xFF}, {0xFF} + }, { // FLYGON + {0x12}, {0x1B}, {0x33}, {0xFF}, {0xFF}, {0xFF} + }, { // PLUSLE + {0x2A}, {0x24}, {0x33}, {0xFF}, {0xFF}, {0xFF} + }, { // JIGGLYPUFF + {0x11}, {0x27}, {0x0C}, {0x2A}, {0x33}, {0xFF} + }, { // CORPHISH + {0x18}, {0x11}, {0x33}, {0xFF}, {0xFF}, {0xFF} + }, { // GRIMER + {0x12}, {0x30}, {0x33}, {0xFF}, {0xFF}, {0xFF} + }, { // MUK + {0x2A}, {0x33}, {0x33}, {0xFF}, {0xFF}, {0xFF} + }, { // HERACROSS + {0x09}, {0x2A}, {0x1B}, {0x33}, {0xFF}, {0xFF} + }, { // PELIPPER + {0x09}, {0x0C}, {0x30}, {0xFF}, {0xFF}, {0xFF} + }, { // WAILORD + {0x03}, {0x1A}, {0x33}, {0x33}, {0xFF}, {0xFF} + }, { // WAILMER + {0x05}, {0x30}, {0x33}, {0xFF}, {0xFF}, {0xFF} + }, { // SALAMENCE + {0x00}, {0x00}, {0x09}, {0x33}, {0xFF}, {0xFF} + }, { // AGGRON + {0x00}, {0x1B}, {0x33}, {0xFF}, {0xFF}, {0xFF} + }, { // POOCHYENA + {0x27}, {0x0C}, {0x09}, {0x2C}, {0xFF}, {0xFF} + }, { // CASTFORM + {0x00}, {0x1A}, {0x33}, {0xFF}, {0xFF}, {0xFF} + }, { // MINUN + {0x12}, {0x2A}, {0x33}, {0xFF}, {0xFF}, {0xFF} + }, { // MAGCARGO + {0x00}, {0x1B}, {0x18}, {0xFF}, {0xFF}, {0xFF} + }, { // MAKUHITA + {0x1B}, {0x27}, {0x0C}, {0x2A}, {0xFF}, {0xFF} + }, { // SLUGMA + {0x2C}, {0x2C}, {0x33}, {0xFF}, {0xFF}, {0xFF} + }, { // WEEZING + {0x0C}, {0x0C}, {0x33}, {0xFF}, {0xFF}, {0xFF} + }, { // LINOONE + {0x14}, {0x27}, {0x33}, {0xFF}, {0xFF}, {0xFF} + }, { // CASCOON + {0x00}, {0x27}, {0x33}, {0xFF}, {0xFF}, {0xFF} + }, { // MARILL + {0x08}, {0x10}, {0x33}, {0xFF}, {0xFF}, {0xFF} + }, { // AZUMARILL + {0x08}, {0x27}, {0x2C}, {0x10}, {0xFF}, {0xFF} + }, { // SWALOT + {0x1B}, {0x1B}, {0x33}, {0xFF}, {0xFF}, {0xFF} + }, { // ELECTRODE + {0x0C}, {0x09}, {0x18}, {0xFF}, {0xFF}, {0xFF} + }, { // MUDKIP + {0x2C}, {0x11}, {0x33}, {0xFF}, {0xFF}, {0xFF} + }, { // MILOTIC + {0x12}, {0x18}, {0x11}, {0x33}, {0xFF}, {0xFF} + }, { // METAGROSS + {0x09}, {0x2A}, {0x18}, {0x33}, {0xFF}, {0xFF} + }, { // METANG + {0x09}, {0x00}, {0x33}, {0xFF}, {0xFF}, {0xFF} + }, { // TENTACOOL + {0x09}, {0x2A}, {0x27}, {0x33}, {0xFF}, {0xFF} + }, { // BALTOY + {0x01}, {0x1E}, {0x33}, {0xFF}, {0xFF}, {0xFF} + }, { // SABLEYE + {0x03}, {0x0B}, {0x12}, {0xFF}, {0xFF}, {0xFF} + }, { // VIGOROTH + {0x11}, {0x30}, {0x1B}, {0xFF}, {0xFF}, {0xFF} + }, { // SNORUNT + {0x18}, {0x2C}, {0x33}, {0xFF}, {0xFF}, {0xFF} + }, { // CRADILY + {0x03}, {0x11}, {0x0C}, {0xFF}, {0xFF}, {0xFF} + }, { // KADABRA + {0x2C}, {0x00}, {0x2C}, {0xFF}, {0xFF}, {0xFF} + }, { // DUSKULL + {0x2A}, {0x26}, {0x33}, {0xFF}, {0xFF}, {0xFF} + }, { // RAICHU + {0x12}, {0x27}, {0x33}, {0xFF}, {0xFF}, {0xFF} + }, { // MANECTRIC + {0x00}, {0x09}, {0x11}, {0x33}, {0xFF}, {0xFF} + }, { // SWAMPERT + {0x1B}, {0x30}, {0x33}, {0xFF}, {0xFF}, {0xFF} + }, { // ELECTRIKE + {0x0C}, {0x09}, {0x12}, {0x33}, {0xFF}, {0xFF} + }, { // LATIAS + {0x00}, {0x0C}, {0x00}, {0x33}, {0xFF}, {0xFF} + }, { // LATIOS + {0x00}, {0x0C}, {0x18}, {0x33}, {0xFF}, {0xFF} + }, { // LUVDISC + {0x2C}, {0x11}, {0x33}, {0xFF}, {0xFF}, {0xFF} + }, { // VILEPLUME + {0x14}, {0x27}, {0x33}, {0xFF}, {0xFF}, {0xFF} + }, { // RALTS + {0x07}, {0x33}, {0x33}, {0xFF}, {0xFF}, {0xFF} + }, { // LANTURN + {0x00}, {0x30}, {0x33}, {0xFF}, {0xFF}, {0xFF} + }, { // LILEEP + {0x11}, {0x0C}, {0x33}, {0xFF}, {0xFF}, {0xFF} + }, { // LUNATONE + {0x27}, {0x2C}, {0x18}, {0x33}, {0xFF}, {0xFF} + }, { // AZURILL + {0x06}, {0x27}, {0x0F}, {0x33}, {0xFF}, {0xFF} + }, { // LUDICOLO + {0x27}, {0x09}, {0x1A}, {0x1A}, {0xFF}, {0xFF} + }, { // MAGNETON + {0x00}, {0x09}, {0x2A}, {0xFF}, {0xFF}, {0xFF} + }, { // REGICE + {0x09}, {0x0C}, {0x12}, {0x33}, {0xFF}, {0xFF} + }, { // REGISTEEL + {0x09}, {0x0C}, {0x0E}, {0x33}, {0xFF}, {0xFF} + }, { // REGIROCK + {0x09}, {0x0C}, {0x1B}, {0xFF}, {0xFF}, {0xFF} + }, { // RAYQUAZA + {0x03}, {0x03}, {0x2A}, {0x33}, {0xFF}, {0xFF} + }, { // VULPIX + {0x24}, {0x11}, {0x33}, {0xFF}, {0xFF}, {0xFF} + }, { // ROSELIA + {0x18}, {0x09}, {0x0C}, {0x2A}, {0xFF}, {0xFF} + }, { // COMBUSKEN + {0x2C}, {0x2C}, {0x0F}, {0x33}, {0xFF}, {0xFF} + }, { // MACHOP + {0x2A}, {0x15}, {0x33}, {0xFF}, {0xFF}, {0xFF} + } +}; + +#elif GERMAN +const struct BardSound gBardSounds_Pokemon[][6] = { + { // ARMALDO + {0x02}, {0x02}, {0x1A}, {0xFF}, {0xFF}, {0xFF} + }, { // BEAUTIFLY + {0x02}, {0x11}, {0x0B}, {0x02}, {0xFF}, {0xFF} + }, { // MEDITITE + {0x0B}, {0x11}, {0x11}, {0xFF}, {0xFF}, {0xFF} + }, { // SEAKING + {0x1A}, {0x11}, {0xFF}, {0xFF}, {0xFF}, {0xFF} + }, { // TORCHIC + {0x0B}, {0x11}, {0xFF}, {0xFF}, {0xFF}, {0xFF} + }, { // ANORITH + {0x02}, {0x1A}, {0x11}, {0xFF}, {0xFF}, {0xFF} + }, { // ABSOL + {0x02}, {0x1A}, {0xFF}, {0xFF}, {0xFF}, {0xFF} + }, { // SURSKIT + {0x0B}, {0x11}, {0x0B}, {0xFF}, {0xFF}, {0xFF} + }, { // MASQUERAIN + {0x02}, {0x0B}, {0x0B}, {0x0B}, {0xFF}, {0xFF} + }, { // GEODUDE + {0x0B}, {0x11}, {0x0B}, {0x11}, {0xFF}, {0xFF} + }, { // ILLUMISE + {0x11}, {0x29}, {0x11}, {0x0B}, {0xFF}, {0xFF} + }, { // SKARMORY + {0x02}, {0x02}, {0x0B}, {0x1A}, {0xFF}, {0xFF} + }, { // SKITTY + {0x0B}, {0x0B}, {0x1A}, {0xFF}, {0xFF}, {0xFF} + }, { // DELCATTY + {0x0B}, {0x0B}, {0x1A}, {0x1A}, {0xFF}, {0xFF} + }, { // SWELLOW + {0x02}, {0x1A}, {0xFF}, {0xFF}, {0xFF}, {0xFF} + }, { // GLALIE + {0x11}, {0x1A}, {0x1A}, {0xFF}, {0xFF}, {0xFF} + }, { // KYOGRE + {0x11}, {0x1A}, {0x0B}, {0xFF}, {0xFF}, {0xFF} + }, { // MACHAMP + {0x02}, {0x1A}, {0x0B}, {0x11}, {0xFF}, {0xFF} + }, { // PINSIR + {0x11}, {0x11}, {0xFF}, {0xFF}, {0xFF}, {0xFF} + }, { // KECLEON + {0x0B}, {0x0B}, {0x1A}, {0xFF}, {0xFF}, {0xFF} + }, { // SHUPPET + {0x29}, {0x0B}, {0xFF}, {0xFF}, {0xFF}, {0xFF} + }, { // SILCOON + {0x02}, {0x1A}, {0x1A}, {0xFF}, {0xFF}, {0xFF} + }, { // BRELOOM + {0x02}, {0x11}, {0xFF}, {0xFF}, {0xFF}, {0xFF} + }, { // SHROOMISH + {0x11}, {0xFF}, {0xFF}, {0xFF}, {0xFF}, {0xFF} + }, { // CARVANHA + {0x02}, {0x11}, {0x02}, {0x02}, {0xFF}, {0xFF} + }, { // TREECKO + {0x0B}, {0x02}, {0x1A}, {0xFF}, {0xFF}, {0xFF} + }, { // WINGULL + {0x11}, {0x29}, {0xFF}, {0xFF}, {0xFF}, {0xFF} + }, { // GYARADOS + {0x02}, {0x02}, {0x1A}, {0xFF}, {0xFF}, {0xFF} + }, { // NINETALES + {0x29}, {0x1A}, {0x02}, {0xFF}, {0xFF}, {0xFF} + }, { // GIRAFARIG + {0x11}, {0x02}, {0x02}, {0x11}, {0xFF}, {0xFF} + }, { // KIRLIA + {0x11}, {0x11}, {0x02}, {0xFF}, {0xFF}, {0xFF} + }, { // BELLOSSOM + {0x29}, {0x0B}, {0x02}, {0xFF}, {0xFF}, {0xFF} + }, { // KINGDRA + {0x0B}, {0x0B}, {0x02}, {0x11}, {0xFF}, {0xFF} + }, { // GLOOM + {0x29}, {0x1A}, {0xFF}, {0xFF}, {0xFF}, {0xFF} + }, { // MAWILE + {0x29}, {0x11}, {0x0B}, {0xFF}, {0xFF}, {0xFF} + }, { // GROUDON + {0x1A}, {0x29}, {0x1A}, {0xFF}, {0xFF}, {0xFF} + }, { // MIGHTYENA + {0x02}, {0x02}, {0x0B}, {0xFF}, {0xFF}, {0xFF} + }, { // CROBAT + {0x11}, {0x02}, {0xFF}, {0xFF}, {0xFF}, {0xFF} + }, { // ABRA + {0x02}, {0x02}, {0xFF}, {0xFF}, {0xFF}, {0xFF} + }, { // SLAKING + {0x0B}, {0x02}, {0x11}, {0xFF}, {0xFF}, {0xFF} + }, { // WURMPLE + {0x02}, {0x29}, {0x0B}, {0xFF}, {0xFF}, {0xFF} + }, { // MAGIKARP + {0x02}, {0x02}, {0x1A}, {0xFF}, {0xFF}, {0xFF} + }, { // MAGNEMITE + {0x02}, {0x0B}, {0x11}, {0x1A}, {0xFF}, {0xFF} + }, { // TORKOAL + {0x29}, {0x0B}, {0xFF}, {0xFF}, {0xFF}, {0xFF} + }, { // MACHOKE + {0x02}, {0x1A}, {0xFF}, {0xFF}, {0xFF}, {0xFF} + }, { // GULPIN + {0x29}, {0x29}, {0xFF}, {0xFF}, {0xFF}, {0xFF} + }, { // ARON + {0x1A}, {0x29}, {0x11}, {0x1A}, {0xFF}, {0xFF} + }, { // PSYDUCK + {0x0B}, {0x1A}, {0xFF}, {0xFF}, {0xFF}, {0xFF} + }, { // LAIRON + {0x1A}, {0x02}, {0xFF}, {0xFF}, {0xFF}, {0xFF} + }, { // WHISMUR + {0x29}, {0x0B}, {0xFF}, {0xFF}, {0xFF}, {0xFF} + }, { // NUZLEAF + {0x02}, {0x02}, {0xFF}, {0xFF}, {0xFF}, {0xFF} + }, { // PHANPY + {0x02}, {0x11}, {0xFF}, {0xFF}, {0xFF}, {0xFF} + }, { // SHELGON + {0x02}, {0x0B}, {0xFF}, {0xFF}, {0xFF}, {0xFF} + }, { // GOLDUCK + {0x0B}, {0x1A}, {0x1A}, {0xFF}, {0xFF}, {0xFF} + }, { // GOLBAT + {0x1A}, {0x02}, {0xFF}, {0xFF}, {0xFF}, {0xFF} + }, { // GOLEM + {0x0B}, {0x1A}, {0x02}, {0xFF}, {0xFF}, {0xFF} + }, { // GRAVELER + {0x0B}, {0x1A}, {0x1A}, {0xFF}, {0xFF}, {0xFF} + }, { // GARDEVOIR + {0x02}, {0x1A}, {0xFF}, {0xFF}, {0xFF}, {0xFF} + }, { // RHYDON + {0x11}, {0x0B}, {0x1A}, {0xFF}, {0xFF}, {0xFF} + }, { // RHYHORN + {0x11}, {0x1A}, {0xFF}, {0xFF}, {0xFF}, {0xFF} + }, { // GOREBYSS + {0x02}, {0x02}, {0x02}, {0x11}, {0xFF}, {0xFF} + }, { // CORSOLA + {0x1A}, {0x02}, {0x1A}, {0xFF}, {0xFF}, {0xFF} + }, { // CACNEA + {0x29}, {0x02}, {0xFF}, {0xFF}, {0xFF}, {0xFF} + }, { // DUSCLOPS + {0x11}, {0x1A}, {0xFF}, {0xFF}, {0xFF}, {0xFF} + }, { // SHARPEDO + {0x1A}, {0x02}, {0x11}, {0x1A}, {0xFF}, {0xFF} + }, { // ZANGOOSE + {0x0B}, {0x1A}, {0xFF}, {0xFF}, {0xFF}, {0xFF} + }, { // SANDSHREW + {0x02}, {0x02}, {0xFF}, {0xFF}, {0xFF}, {0xFF} + }, { // SANDSLASH + {0x02}, {0x02}, {0x0B}, {0xFF}, {0xFF}, {0xFF} + }, { // SEADRA + {0x0B}, {0x0B}, {0x1A}, {0xFF}, {0xFF}, {0xFF} + }, { // RELICANTH + {0x0B}, {0x11}, {0x02}, {0xFF}, {0xFF}, {0xFF} + }, { // ZIGZAGOON + {0x11}, {0x02}, {0xFF}, {0xFF}, {0xFF}, {0xFF} + }, { // CRAWDAUNT + {0x0B}, {0x29}, {0x02}, {0xFF}, {0xFF}, {0xFF} + }, { // SCEPTILE + {0x0B}, {0x02}, {0x1A}, {0xFF}, {0xFF}, {0xFF} + }, { // GROVYLE + {0x0B}, {0x02}, {0x11}, {0xFF}, {0xFF}, {0xFF} + }, { // BANETTE + {0x02}, {0x0B}, {0x0B}, {0xFF}, {0xFF}, {0xFF} + }, { // JIRACHI + {0x11}, {0x02}, {0x11}, {0xFF}, {0xFF}, {0xFF} + }, { // STARMIE + {0x02}, {0x11}, {0x0B}, {0xFF}, {0xFF}, {0xFF} + }, { // ZUBAT + {0x29}, {0x02}, {0xFF}, {0xFF}, {0xFF}, {0xFF} + }, { // TAILLOW + {0x02}, {0x11}, {0x11}, {0xFF}, {0xFF}, {0xFF} + }, { // WYNAUT + {0x11}, {0x1A}, {0xFF}, {0xFF}, {0xFF}, {0xFF} + }, { // WOBBUFFET + {0x1A}, {0x11}, {0x0B}, {0x02}, {0x29}, {0xFF} + }, { // SOLROCK + {0x1A}, {0x0B}, {0xFF}, {0xFF}, {0xFF}, {0xFF} + }, { // SHIFTRY + {0x0B}, {0x29}, {0x11}, {0xFF}, {0xFF}, {0xFF} + }, { // HORSEA + {0x0B}, {0x0B}, {0x0B}, {0xFF}, {0xFF}, {0xFF} + }, { // BAGON + {0x11}, {0x29}, {0xFF}, {0xFF}, {0xFF}, {0xFF} + }, { // SEEDOT + {0x02}, {0x29}, {0x0B}, {0xFF}, {0xFF}, {0xFF} + }, { // SPHEAL + {0x0B}, {0x0B}, {0x1A}, {0xFF}, {0xFF}, {0xFF} + }, { // BELDUM + {0x02}, {0x0B}, {0xFF}, {0xFF}, {0xFF}, {0xFF} + }, { // MEDICHAM + {0x0B}, {0x11}, {0x02}, {0x11}, {0xFF}, {0xFF} + }, { // CHINCHOU + {0x02}, {0x11}, {0xFF}, {0xFF}, {0xFF}, {0xFF} + }, { // CHIMECHO + {0x02}, {0x11}, {0x02}, {0x11}, {0xFF}, {0xFF} + }, { // ALTARIA + {0x02}, {0x02}, {0x11}, {0x02}, {0xFF}, {0xFF} + }, { // SWABLU + {0x02}, {0x29}, {0xFF}, {0xFF}, {0xFF}, {0xFF} + }, { // NINCADA + {0x11}, {0x02}, {0x02}, {0xFF}, {0xFF}, {0xFF} + }, { // DEOXYS + {0x0B}, {0x1A}, {0x11}, {0xFF}, {0xFF}, {0xFF} + }, { // NINJASK + {0x11}, {0x02}, {0xFF}, {0xFF}, {0xFF}, {0xFF} + }, { // DODUO + {0x1A}, {0x29}, {0xFF}, {0xFF}, {0xFF}, {0xFF} + }, { // DODRIO + {0x1A}, {0x11}, {0xFF}, {0xFF}, {0xFF}, {0xFF} + }, { // KOFFING + {0x1A}, {0x1A}, {0xFF}, {0xFF}, {0xFF}, {0xFF} + }, { // TENTACRUEL + {0x0B}, {0x1A}, {0x02}, {0xFF}, {0xFF}, {0xFF} + }, { // DUSTOX + {0x29}, {0x1A}, {0xFF}, {0xFF}, {0xFF}, {0xFF} + }, { // LOUDRED + {0x02}, {0x0B}, {0x0B}, {0x1A}, {0xFF}, {0xFF} + }, { // GOLDEEN + {0x1A}, {0x11}, {0x11}, {0xFF}, {0xFF}, {0xFF} + }, { // BARBOACH + {0x0B}, {0x0B}, {0xFF}, {0xFF}, {0xFF}, {0xFF} + }, { // SEALEO + {0x0B}, {0x0B}, {0x1A}, {0xFF}, {0xFF}, {0xFF} + }, { // WALREIN + {0x02}, {0x02}, {0x11}, {0x02}, {0xFF}, {0xFF} + }, { // TROPIUS + {0x1A}, {0x11}, {0x29}, {0xFF}, {0xFF}, {0xFF} + }, { // DONPHAN + {0x1A}, {0x02}, {0xFF}, {0xFF}, {0xFF}, {0xFF} + }, { // NUMEL + {0x02}, {0x02}, {0x29}, {0xFF}, {0xFF}, {0xFF} + }, { // ODDISH + {0x11}, {0x02}, {0x02}, {0xFF}, {0xFF}, {0xFF} + }, { // TRAPINCH + {0x02}, {0x11}, {0x1A}, {0xFF}, {0xFF}, {0xFF} + }, { // SLAKOTH + {0x29}, {0x0B}, {0xFF}, {0xFF}, {0xFF}, {0xFF} + }, { // WHISCASH + {0x0B}, {0x02}, {0xFF}, {0xFF}, {0xFF}, {0xFF} + }, { // SHEDINJA + {0x11}, {0x02}, {0x1A}, {0xFF}, {0xFF}, {0xFF} + }, { // MARSHTOMP + {0x1A}, {0x1A}, {0x02}, {0x0B}, {0xFF}, {0xFF} + }, { // NATU + {0x02}, {0x29}, {0xFF}, {0xFF}, {0xFF}, {0xFF} + }, { // XATU + {0x02}, {0x29}, {0xFF}, {0xFF}, {0xFF}, {0xFF} + }, { // CLAYDOL + {0x0B}, {0x29}, {0x0B}, {0x02}, {0xFF}, {0xFF} + }, { // CACTURNE + {0x1A}, {0x29}, {0x02}, {0xFF}, {0xFF}, {0xFF} + }, { // NOSEPASS + {0x02}, {0x0B}, {0xFF}, {0xFF}, {0xFF}, {0xFF} + }, { // CLAMPERL + {0x0B}, {0x29}, {0xFF}, {0xFF}, {0xFF}, {0xFF} + }, { // CAMERUPT + {0x02}, {0x0B}, {0x29}, {0xFF}, {0xFF}, {0xFF} + }, { // EXPLOUD + {0x02}, {0x29}, {0xFF}, {0xFF}, {0xFF}, {0xFF} + }, { // BLAZIKEN + {0x1A}, {0x1A}, {0xFF}, {0xFF}, {0xFF}, {0xFF} + }, { // LOMBRE + {0x1A}, {0x0B}, {0x1A}, {0xFF}, {0xFF}, {0xFF} + }, { // LOTAD + {0x1A}, {0x29}, {0xFF}, {0xFF}, {0xFF}, {0xFF} + }, { // SPINDA + {0x02}, {0x11}, {0xFF}, {0xFF}, {0xFF}, {0xFF} + }, { // SPOINK + {0x1A}, {0x11}, {0xFF}, {0xFF}, {0xFF}, {0xFF} + }, { // SEVIPER + {0x11}, {0x11}, {0x11}, {0xFF}, {0xFF}, {0xFF} + }, { // HARIYAMA + {0x02}, {0x11}, {0x02}, {0x02}, {0xFF}, {0xFF} + }, { // VOLBEAT + {0x1A}, {0x0B}, {0x02}, {0xFF}, {0xFF}, {0xFF} + }, { // HUNTAIL + {0x02}, {0x02}, {0x02}, {0x11}, {0xFF}, {0xFF} + }, { // PIKACHU + {0x11}, {0x02}, {0x29}, {0xFF}, {0xFF}, {0xFF} + }, { // PICHU + {0x11}, {0x29}, {0xFF}, {0xFF}, {0xFF}, {0xFF} + }, { // STARYU + {0x0B}, {0x29}, {0xFF}, {0xFF}, {0xFF}, {0xFF} + }, { // VIBRAVA + {0x11}, {0x02}, {0x02}, {0xFF}, {0xFF}, {0xFF} + }, { // VOLTORB + {0x1A}, {0x1A}, {0x02}, {0xFF}, {0xFF}, {0xFF} + }, { // FEEBAS + {0x02}, {0x02}, {0xFF}, {0xFF}, {0xFF}, {0xFF} + }, { // ALAKAZAM + {0x11}, {0x02}, {0x02}, {0xFF}, {0xFF}, {0xFF} + }, { // GRUMPIG + {0x1A}, {0x11}, {0xFF}, {0xFF}, {0xFF}, {0xFF} + }, { // WIGGLYTUFF + {0x29}, {0x0B}, {0x29}, {0xFF}, {0xFF}, {0xFF} + }, { // IGGLYBUFF + {0x29}, {0x0B}, {0x29}, {0xFF}, {0xFF}, {0xFF} + }, { // FLYGON + {0x11}, {0x0B}, {0x02}, {0xFF}, {0xFF}, {0xFF} + }, { // PLUSLE + {0x29}, {0x0B}, {0xFF}, {0xFF}, {0xFF}, {0xFF} + }, { // JIGGLYPUFF + {0x29}, {0x0B}, {0x29}, {0xFF}, {0xFF}, {0xFF} + }, { // CORPHISH + {0x0B}, {0x1A}, {0xFF}, {0xFF}, {0xFF}, {0xFF} + }, { // GRIMER + {0x0B}, {0x11}, {0x02}, {0xFF}, {0xFF}, {0xFF} + }, { // MUK + {0x0B}, {0x11}, {0x1A}, {0xFF}, {0xFF}, {0xFF} + }, { // HERACROSS + {0x02}, {0x02}, {0x1A}, {0xFF}, {0xFF}, {0xFF} + }, { // PELIPPER + {0x0B}, {0x11}, {0x0B}, {0xFF}, {0xFF}, {0xFF} + }, { // WAILORD + {0x02}, {0x11}, {0x1A}, {0xFF}, {0xFF}, {0xFF} + }, { // WAILMER + {0x02}, {0x11}, {0x0B}, {0xFF}, {0xFF}, {0xFF} + }, { // SALAMENCE + {0x29}, {0x02}, {0x02}, {0x02}, {0xFF}, {0xFF} + }, { // AGGRON + {0x1A}, {0x1A}, {0xFF}, {0xFF}, {0xFF}, {0xFF} + }, { // POOCHYENA + {0x11}, {0x11}, {0x0B}, {0xFF}, {0xFF}, {0xFF} + }, { // CASTFORM + {0x1A}, {0x0B}, {0x1A}, {0xFF}, {0xFF}, {0xFF} + }, { // MINUN + {0x11}, {0x29}, {0xFF}, {0xFF}, {0xFF}, {0xFF} + }, { // MAGCARGO + {0x02}, {0x02}, {0x1A}, {0xFF}, {0xFF}, {0xFF} + }, { // MAKUHITA + {0x02}, {0x29}, {0x11}, {0x02}, {0xFF}, {0xFF} + }, { // SLUGMA + {0x0B}, {0x02}, {0xFF}, {0xFF}, {0xFF}, {0xFF} + }, { // WEEZING + {0x1A}, {0x1A}, {0xFF}, {0xFF}, {0xFF}, {0xFF} + }, { // LINOONE + {0x0B}, {0x02}, {0x02}, {0xFF}, {0xFF}, {0xFF} + }, { // CASCOON + {0x02}, {0x0B}, {0x1A}, {0xFF}, {0xFF}, {0xFF} + }, { // MARILL + {0x02}, {0x11}, {0xFF}, {0xFF}, {0xFF}, {0xFF} + }, { // AZUMARILL + {0x02}, {0x29}, {0x02}, {0x11}, {0xFF}, {0xFF} + }, { // SWALOT + {0x29}, {0x0B}, {0xFF}, {0xFF}, {0xFF}, {0xFF} + }, { // ELECTRODE + {0x0B}, {0x1A}, {0x02}, {0xFF}, {0xFF}, {0xFF} + }, { // MUDKIP + {0x11}, {0x1A}, {0x11}, {0xFF}, {0xFF}, {0xFF} + }, { // MILOTIC + {0x11}, {0x1A}, {0x11}, {0xFF}, {0xFF}, {0xFF} + }, { // METAGROSS + {0x0B}, {0x02}, {0x1A}, {0xFF}, {0xFF}, {0xFF} + }, { // METANG + {0x0B}, {0x02}, {0xFF}, {0xFF}, {0xFF}, {0xFF} + }, { // TENTACOOL + {0x0B}, {0x02}, {0x02}, {0xFF}, {0xFF}, {0xFF} + }, { // BALTOY + {0x29}, {0x02}, {0x0B}, {0xFF}, {0xFF}, {0xFF} + }, { // SABLEYE + {0x1A}, {0x11}, {0x11}, {0xFF}, {0xFF}, {0xFF} + }, { // VIGOROTH + {0x29}, {0x11}, {0xFF}, {0xFF}, {0xFF}, {0xFF} + }, { // SNORUNT + {0x0B}, {0x0B}, {0xFF}, {0xFF}, {0xFF}, {0xFF} + }, { // CRADILY + {0x11}, {0x11}, {0x0B}, {0xFF}, {0xFF}, {0xFF} + }, { // KADABRA + {0x02}, {0x02}, {0x02}, {0xFF}, {0xFF}, {0xFF} + }, { // DUSKULL + {0x11}, {0x11}, {0xFF}, {0xFF}, {0xFF}, {0xFF} + }, { // RAICHU + {0x02}, {0x11}, {0x29}, {0xFF}, {0xFF}, {0xFF} + }, { // MANECTRIC + {0x1A}, {0x0B}, {0x1A}, {0xFF}, {0xFF}, {0xFF} + }, { // SWAMPERT + {0x29}, {0x0B}, {0xFF}, {0xFF}, {0xFF}, {0xFF} + }, { // ELECTRIKE + {0x11}, {0x0B}, {0x11}, {0xFF}, {0xFF}, {0xFF} + }, { // LATIAS + {0x02}, {0x11}, {0x02}, {0xFF}, {0xFF}, {0xFF} + }, { // LATIOS + {0x02}, {0x11}, {0x1A}, {0xFF}, {0xFF}, {0xFF} + }, { // LUVDISC + {0x11}, {0x11}, {0x29}, {0xFF}, {0xFF}, {0xFF} + }, { // VILEPLUME + {0x11}, {0x1A}, {0xFF}, {0xFF}, {0xFF}, {0xFF} + }, { // RALTS + {0x02}, {0x02}, {0xFF}, {0xFF}, {0xFF}, {0xFF} + }, { // LANTURN + {0x02}, {0x29}, {0xFF}, {0xFF}, {0xFF}, {0xFF} + }, { // LILEEP + {0x11}, {0x11}, {0xFF}, {0xFF}, {0xFF}, {0xFF} + }, { // LUNATONE + {0x29}, {0x02}, {0x0B}, {0x11}, {0xFF}, {0xFF} + }, { // AZURILL + {0x02}, {0x29}, {0x11}, {0xFF}, {0xFF}, {0xFF} + }, { // LUDICOLO + {0x02}, {0x02}, {0x1A}, {0x0B}, {0xFF}, {0xFF} + }, { // MAGNETON + {0x02}, {0x0B}, {0x1A}, {0xFF}, {0xFF}, {0xFF} + }, { // REGICE + {0x0B}, {0x11}, {0x0B}, {0xFF}, {0xFF}, {0xFF} + }, { // REGISTEEL + {0x0B}, {0x11}, {0x0B}, {0x0B}, {0xFF}, {0xFF} + }, { // REGIROCK + {0x0B}, {0x11}, {0x1A}, {0xFF}, {0xFF}, {0xFF} + }, { // RAYQUAZA + {0x02}, {0x11}, {0x02}, {0x02}, {0xFF}, {0xFF} + }, { // VULPIX + {0x29}, {0x11}, {0xFF}, {0xFF}, {0xFF}, {0xFF} + }, { // ROSELIA + {0x1A}, {0x0B}, {0x11}, {0x02}, {0xFF}, {0xFF} + }, { // COMBUSKEN + {0x29}, {0x29}, {0xFF}, {0xFF}, {0xFF}, {0xFF} + }, { // MACHOP + {0x02}, {0x1A}, {0x1A}, {0xFF}, {0xFF}, {0xFF} + } +}; +#endif // ENGLISH/GERMAN + +#endif //GUARD_DATA_BARD_MUSIC_POKEMON_H diff --git a/src/data/bard_music/pokemon_2.h b/src/data/bard_music/pokemon_2.h new file mode 100644 index 000000000..d7e51ea36 --- /dev/null +++ b/src/data/bard_music/pokemon_2.h @@ -0,0 +1,1018 @@ +#ifndef GUARD_DATA_BARD_MUSIC_POKEMON_2_H +#define GUARD_DATA_BARD_MUSIC_POKEMON_2_H + +#if ENGLISH +const struct BardSound gBardSounds_Pokemon2[][6] = { + { // EKANS + {0x09}, {0x00}, {0x33}, {0xFF}, {0xFF}, {0xFF} + }, { // ARBOK + {0x06}, {0x17}, {0x33}, {0xFF}, {0xFF}, {0xFF} + }, { // SEAKING + {0x0C}, {0x0C}, {0x33}, {0xFF}, {0xFF}, {0xFF} + }, { // ARIADOS + {0x1B}, {0x0C}, {0x2A}, {0x18}, {0xFF}, {0xFF} + }, { // CROCONAW + {0x1B}, {0x18}, {0x1B}, {0xFF}, {0xFF}, {0xFF} + }, { // UNOWN + {0x2A}, {0x1A}, {0x33}, {0xFF}, {0xFF}, {0xFF} + }, { // EEVEE + {0x0C}, {0x0C}, {0x33}, {0xFF}, {0xFF}, {0xFF} + }, { // GEODUDE + {0x0C}, {0x18}, {0x27}, {0xFF}, {0xFF}, {0xFF} + }, { // SPINARAK + {0x0F}, {0x30}, {0x00}, {0xFF}, {0xFF}, {0xFF} + }, { // PILOSWINE + {0x11}, {0x1A}, {0x12}, {0x33}, {0xFF}, {0xFF} + }, { // ONIX + {0x15}, {0x11}, {0x33}, {0xFF}, {0xFF}, {0xFF} + }, { // ARCANINE + {0x06}, {0x03}, {0x12}, {0x33}, {0xFF}, {0xFF} + }, { // SUDOWOODO + {0x27}, {0x18}, {0x27}, {0x18}, {0xFF}, {0xFF} + }, { // WEEPINBELL + {0x0C}, {0x0F}, {0x0B}, {0x33}, {0xFF}, {0xFF} + }, { // VICTREEBEL + {0x11}, {0x0C}, {0x09}, {0x33}, {0xFF}, {0xFF} + }, { // WOOPER + {0x27}, {0x30}, {0x33}, {0xFF}, {0xFF}, {0xFF} + }, { // SWINUB + {0x11}, {0x2C}, {0x33}, {0xFF}, {0xFF}, {0xFF} + }, { // SKARMORY + {0x1B}, {0x1A}, {0x0C}, {0xFF}, {0xFF}, {0xFF} + }, { // AIPOM + {0x03}, {0x1B}, {0x33}, {0xFF}, {0xFF}, {0xFF} + }, { // ESPEON + {0x09}, {0x0C}, {0x1B}, {0x33}, {0xFF}, {0xFF} + }, { // HITMONCHAN + {0x11}, {0x15}, {0x00}, {0xFF}, {0xFF}, {0xFF} + }, { // ELEKID + {0x0B}, {0x0B}, {0x11}, {0x33}, {0xFF}, {0xFF} + }, { // ELECTABUZZ + {0x0C}, {0x09}, {0x2C}, {0x2C}, {0xFF}, {0xFF} + }, { // ENTEI + {0x09}, {0x03}, {0x33}, {0xFF}, {0xFF}, {0xFF} + }, { // FERALIGATR + {0x30}, {0x00}, {0x0F}, {0x03}, {0x30}, {0xFF} + }, { // FURRET + {0x30}, {0x09}, {0x33}, {0xFF}, {0xFF}, {0xFF} + }, { // OCTILLERY + {0x1B}, {0x11}, {0x30}, {0x0C}, {0xFF}, {0xFF} + }, { // PRIMEAPE + {0x12}, {0x03}, {0x33}, {0xFF}, {0xFF}, {0xFF} + }, { // SENTRET + {0x09}, {0x09}, {0x33}, {0xFF}, {0xFF}, {0xFF} + }, { // STANTLER + {0x00}, {0x30}, {0x33}, {0xFF}, {0xFF}, {0xFF} + }, { // SPEAROW + {0x0C}, {0x18}, {0x33}, {0xFF}, {0xFF}, {0xFF} + }, { // FEAROW + {0x0C}, {0x18}, {0x33}, {0xFF}, {0xFF}, {0xFF} + }, { // OMASTAR + {0x18}, {0x00}, {0x15}, {0x33}, {0xFF}, {0xFF} + }, { // OMANYTE + {0x18}, {0x00}, {0x12}, {0x33}, {0xFF}, {0xFF} + }, { // GROWLITHE + {0x21}, {0x0F}, {0x33}, {0xFF}, {0xFF}, {0xFF} + }, { // MACHAMP + {0x2A}, {0x00}, {0x33}, {0xFF}, {0xFF}, {0xFF} + }, { // DRAGONITE + {0x00}, {0x15}, {0x12}, {0xFF}, {0xFF}, {0xFF} + }, { // PINSIR + {0x11}, {0x30}, {0x33}, {0xFF}, {0xFF}, {0xFF} + }, { // SNORLAX + {0x18}, {0x00}, {0x33}, {0xFF}, {0xFF}, {0xFF} + }, { // KABUTO + {0x2A}, {0x27}, {0x1A}, {0xFF}, {0xFF}, {0xFF} + }, { // KABUTOPS + {0x2A}, {0x27}, {0x15}, {0x33}, {0xFF}, {0xFF} + }, { // HITMONTOP + {0x11}, {0x15}, {0x1D}, {0x33}, {0xFF}, {0xFF} + }, { // WARTORTLE + {0x08}, {0x30}, {0x24}, {0x33}, {0xFF}, {0xFF} + }, { // BLASTOISE + {0x00}, {0x1E}, {0x33}, {0xFF}, {0xFF}, {0xFF} + }, { // FARFETCHD + {0x06}, {0x0B}, {0x33}, {0xFF}, {0xFF}, {0xFF} + }, { // CUBONE + {0x2D}, {0x18}, {0x33}, {0xFF}, {0xFF}, {0xFF} + }, { // MAROWAK + {0x00}, {0x1A}, {0x00}, {0xFF}, {0xFF}, {0xFF} + }, { // KANGASKHAN + {0x00}, {0x00}, {0x1B}, {0x33}, {0xFF}, {0xFF} + }, { // SUNFLORA + {0x2C}, {0x18}, {0x2C}, {0xFF}, {0xFF}, {0xFF} + }, { // CATERPIE + {0x00}, {0x30}, {0x0C}, {0xFF}, {0xFF}, {0xFF} + }, { // GYARADOS + {0x1D}, {0x09}, {0x11}, {0x1D}, {0xFF}, {0xFF} + }, { // RAPIDASH + {0x00}, {0x11}, {0x00}, {0xFF}, {0xFF}, {0xFF} + }, { // NINETALES + {0x12}, {0x05}, {0x33}, {0xFF}, {0xFF}, {0xFF} + }, { // GIRAFARIG + {0x30}, {0x00}, {0x2A}, {0x11}, {0xFF}, {0xFF} + }, { // BELLOSSOM + {0x09}, {0x1B}, {0x2C}, {0x33}, {0xFF}, {0xFF} + }, { // KINGDRA + {0x0C}, {0x2A}, {0x33}, {0xFF}, {0xFF}, {0xFF} + }, { // KINGLER + {0x0C}, {0x30}, {0x33}, {0xFF}, {0xFF}, {0xFF} + }, { // GLOOM + {0x27}, {0x33}, {0x33}, {0xFF}, {0xFF}, {0xFF} + }, { // PINECO + {0x12}, {0x18}, {0x33}, {0xFF}, {0xFF}, {0xFF} + }, { // GLIGAR + {0x12}, {0x1B}, {0x33}, {0xFF}, {0xFF}, {0xFF} + }, { // KRABBY + {0x00}, {0x0C}, {0x33}, {0xFF}, {0xFF}, {0xFF} + }, { // GRANBULL + {0x02}, {0x2C}, {0x33}, {0xFF}, {0xFF}, {0xFF} + }, { // CROBAT + {0x18}, {0x00}, {0x33}, {0xFF}, {0xFF}, {0xFF} + }, { // ABRA + {0x00}, {0x2A}, {0x33}, {0xFF}, {0xFF}, {0xFF} + }, { // GENGAR + {0x09}, {0x08}, {0x33}, {0xFF}, {0xFF}, {0xFF} + }, { // TAUROS + {0x1D}, {0x1A}, {0x33}, {0xFF}, {0xFF}, {0xFF} + }, { // MAGIKARP + {0x00}, {0x11}, {0x1B}, {0xFF}, {0xFF}, {0xFF} + }, { // MAGNEMITE + {0x00}, {0x09}, {0x12}, {0xFF}, {0xFF}, {0xFF} + }, { // GASTLY + {0x00}, {0x0E}, {0x33}, {0xFF}, {0xFF}, {0xFF} + }, { // HAUNTER + {0x15}, {0x30}, {0x33}, {0xFF}, {0xFF}, {0xFF} + }, { // MACHOKE + {0x2A}, {0x1A}, {0x33}, {0xFF}, {0xFF}, {0xFF} + }, { // KAKUNA + {0x2A}, {0x27}, {0x2A}, {0xFF}, {0xFF}, {0xFF} + }, { // PSYDUCK + {0x12}, {0x2A}, {0x33}, {0xFF}, {0xFF}, {0xFF} + }, { // PHANPY + {0x00}, {0x0C}, {0x33}, {0xFF}, {0xFF}, {0xFF} + }, { // RATTATA + {0x00}, {0x00}, {0x2C}, {0xFF}, {0xFF}, {0xFF} + }, { // GOLDUCK + {0x18}, {0x2A}, {0x33}, {0xFF}, {0xFF}, {0xFF} + }, { // GOLBAT + {0x1A}, {0x00}, {0x33}, {0xFF}, {0xFF}, {0xFF} + }, { // GOLEM + {0x18}, {0x09}, {0x33}, {0xFF}, {0xFF}, {0xFF} + }, { // GRAVELER + {0x00}, {0x09}, {0x30}, {0xFF}, {0xFF}, {0xFF} + }, { // VENONAT + {0x09}, {0x1A}, {0x00}, {0xFF}, {0xFF}, {0xFF} + }, { // RHYDON + {0x12}, {0x15}, {0x33}, {0xFF}, {0xFF}, {0xFF} + }, { // RHYHORN + {0x14}, {0x1A}, {0x33}, {0xFF}, {0xFF}, {0xFF} + }, { // PUPITAR + {0x27}, {0x11}, {0x1B}, {0x33}, {0xFF}, {0xFF} + }, { // CORSOLA + {0x18}, {0x18}, {0x2A}, {0xFF}, {0xFF}, {0xFF} + }, { // HITMONLEE + {0x11}, {0x15}, {0x0C}, {0xFF}, {0xFF}, {0xFF} + }, { // ZAPDOS + {0x00}, {0x18}, {0x33}, {0xFF}, {0xFF}, {0xFF} + }, { // JOLTEON + {0x1A}, {0x0C}, {0x15}, {0xFF}, {0xFF}, {0xFF} + }, { // SANDSHREW + {0x00}, {0x27}, {0x33}, {0xFF}, {0xFF}, {0xFF} + }, { // SANDSLASH + {0x00}, {0x00}, {0x33}, {0xFF}, {0xFF}, {0xFF} + }, { // SEADRA + {0x0C}, {0x2A}, {0x33}, {0xFF}, {0xFF}, {0xFF} + }, { // SHELLDER + {0x09}, {0x30}, {0x33}, {0xFF}, {0xFF}, {0xFF} + }, { // VAPOREON + {0x03}, {0x18}, {0x0C}, {0x15}, {0xFF}, {0xFF} + }, { // DEWGONG + {0x27}, {0x15}, {0x33}, {0xFF}, {0xFF}, {0xFF} + }, { // SUICUNE + {0x0C}, {0x27}, {0x33}, {0xFF}, {0xFF}, {0xFF} + }, { // STARMIE + {0x1B}, {0x0C}, {0x33}, {0xFF}, {0xFF}, {0xFF} + }, { // SCYTHER + {0x12}, {0x30}, {0x33}, {0xFF}, {0xFF}, {0xFF} + }, { // ZUBAT + {0x27}, {0x00}, {0x33}, {0xFF}, {0xFF}, {0xFF} + }, { // BEEDRILL + {0x0C}, {0x11}, {0x33}, {0xFF}, {0xFF}, {0xFF} + }, { // HYPNO + {0x11}, {0x18}, {0x33}, {0xFF}, {0xFF}, {0xFF} + }, { // DROWZEE + {0x21}, {0x0C}, {0x33}, {0xFF}, {0xFF}, {0xFF} + }, { // SQUIRTLE + {0x30}, {0x24}, {0x33}, {0xFF}, {0xFF}, {0xFF} + }, { // CELEBI + {0x09}, {0x09}, {0x0C}, {0xFF}, {0xFF}, {0xFF} + }, { // WOBBUFFET + {0x1D}, {0x2C}, {0x09}, {0xFF}, {0xFF}, {0xFF} + }, { // DUGTRIO + {0x2C}, {0x0C}, {0x18}, {0xFF}, {0xFF}, {0xFF} + }, { // HORSEA + {0x1A}, {0x0C}, {0x33}, {0xFF}, {0xFF}, {0xFF} + }, { // EXEGGCUTE + {0x09}, {0x2C}, {0x27}, {0x33}, {0xFF}, {0xFF} + }, { // CHIKORITA + {0x11}, {0x18}, {0x0C}, {0x2A}, {0xFF}, {0xFF} + }, { // CHINCHOU + {0x0F}, {0x21}, {0x33}, {0xFF}, {0xFF}, {0xFF} + }, { // SHUCKLE + {0x2A}, {0x26}, {0x33}, {0xFF}, {0xFF}, {0xFF} + }, { // DIGLETT + {0x11}, {0x09}, {0x33}, {0xFF}, {0xFF}, {0xFF} + }, { // REMORAID + {0x09}, {0x18}, {0x03}, {0xFF}, {0xFF}, {0xFF} + }, { // DELIBIRD + {0x09}, {0x0C}, {0x30}, {0xFF}, {0xFF}, {0xFF} + }, { // HOUNDOUR + {0x23}, {0x1A}, {0x33}, {0xFF}, {0xFF}, {0xFF} + }, { // AMPHAROS + {0x00}, {0x06}, {0x18}, {0x33}, {0xFF}, {0xFF} + }, { // DODUO + {0x1A}, {0x27}, {0x18}, {0xFF}, {0xFF}, {0xFF} + }, { // DODRIO + {0x1A}, {0x0C}, {0x18}, {0xFF}, {0xFF}, {0xFF} + }, { // SMEARGLE + {0x30}, {0x26}, {0x33}, {0xFF}, {0xFF}, {0xFF} + }, { // KOFFING + {0x15}, {0x0C}, {0x33}, {0xFF}, {0xFF}, {0xFF} + }, { // TENTACRUEL + {0x09}, {0x2A}, {0x27}, {0x33}, {0xFF}, {0xFF} + }, { // TOGETIC + {0x18}, {0x09}, {0x11}, {0xFF}, {0xFF}, {0xFF} + }, { // TOGEPI + {0x18}, {0x09}, {0x0C}, {0xFF}, {0xFF}, {0xFF} + }, { // GOLDEEN + {0x1A}, {0x0C}, {0x33}, {0xFF}, {0xFF}, {0xFF} + }, { // METAPOD + {0x09}, {0x2A}, {0x15}, {0xFF}, {0xFF}, {0xFF} + }, { // DONPHAN + {0x1B}, {0x00}, {0x33}, {0xFF}, {0xFF}, {0xFF} + }, { // ODDISH + {0x15}, {0x11}, {0x33}, {0xFF}, {0xFF}, {0xFF} + }, { // EXEGGUTOR + {0x09}, {0x2C}, {0x09}, {0x32}, {0x33}, {0xFF} + }, { // NIDOKING + {0x12}, {0x18}, {0x0C}, {0xFF}, {0xFF}, {0xFF} + }, { // NIDOQUEEN + {0x12}, {0x18}, {0x0C}, {0xFF}, {0xFF}, {0xFF} + }, { // NIDORAN_F + {0x12}, {0x18}, {0x00}, {0xFF}, {0xFF}, {0xFF} + }, { // NIDORAN_M + {0x12}, {0x18}, {0x00}, {0xFF}, {0xFF}, {0xFF} + }, { // NIDORINA + {0x12}, {0x18}, {0x0C}, {0x2A}, {0xFF}, {0xFF} + }, { // NIDORINO + {0x12}, {0x18}, {0x0C}, {0x18}, {0xFF}, {0xFF} + }, { // MEOWTH + {0x0C}, {0x21}, {0x11}, {0xFF}, {0xFF}, {0xFF} + }, { // SNEASEL + {0x0C}, {0x26}, {0x33}, {0xFF}, {0xFF}, {0xFF} + }, { // POLIWHIRL + {0x15}, {0x0C}, {0x30}, {0xFF}, {0xFF}, {0xFF} + }, { // POLITOED + {0x1B}, {0x0C}, {0x18}, {0x33}, {0xFF}, {0xFF} + }, { // POLIWRATH + {0x15}, {0x0C}, {0x00}, {0xFF}, {0xFF}, {0xFF} + }, { // POLIWAG + {0x15}, {0x0C}, {0x00}, {0xFF}, {0xFF}, {0xFF} + }, { // QUAGSIRE + {0x00}, {0x12}, {0x32}, {0xFF}, {0xFF}, {0xFF} + }, { // NATU + {0x00}, {0x27}, {0x33}, {0xFF}, {0xFF}, {0xFF} + }, { // XATU + {0x00}, {0x27}, {0x33}, {0xFF}, {0xFF}, {0xFF} + }, { // DUNSPARCE + {0x2A}, {0x1C}, {0x33}, {0xFF}, {0xFF}, {0xFF} + }, { // SEEL + {0x0E}, {0x33}, {0x33}, {0xFF}, {0xFF}, {0xFF} + }, { // STEELIX + {0x0C}, {0x11}, {0x33}, {0xFF}, {0xFF}, {0xFF} + }, { // TYPHLOSION + {0x12}, {0x18}, {0x1B}, {0x33}, {0x33}, {0xFF} + }, { // DRAGONAIR + {0x00}, {0x15}, {0x0B}, {0x33}, {0xFF}, {0xFF} + }, { // BUTTERFREE + {0x2A}, {0x30}, {0x0C}, {0xFF}, {0xFF}, {0xFF} + }, { // SCIZOR + {0x11}, {0x32}, {0x33}, {0xFF}, {0xFF}, {0xFF} + }, { // HOPPIP + {0x1D}, {0x11}, {0x33}, {0xFF}, {0xFF}, {0xFF} + }, { // BLISSEY + {0x11}, {0x0E}, {0x33}, {0xFF}, {0xFF}, {0xFF} + }, { // PARAS + {0x09}, {0x00}, {0x33}, {0xFF}, {0xFF}, {0xFF} + }, { // PARASECT + {0x09}, {0x00}, {0x09}, {0xFF}, {0xFF}, {0xFF} + }, { // QWILFISH + {0x11}, {0x11}, {0x33}, {0xFF}, {0xFF}, {0xFF} + }, { // MR_MIME + {0x11}, {0x30}, {0x12}, {0xFF}, {0xFF}, {0xFF} + }, { // TYROGUE + {0x12}, {0x18}, {0x33}, {0xFF}, {0xFF}, {0xFF} + }, { // CLOYSTER + {0x1E}, {0x30}, {0x33}, {0xFF}, {0xFF}, {0xFF} + }, { // TYRANITAR + {0x12}, {0x00}, {0x11}, {0x1B}, {0xFF}, {0xFF} + }, { // CLEFFA + {0x09}, {0x2A}, {0x33}, {0xFF}, {0xFF}, {0xFF} + }, { // WEEDLE + {0x0E}, {0x26}, {0x33}, {0xFF}, {0xFF}, {0xFF} + }, { // PIKACHU + {0x0C}, {0x2A}, {0x27}, {0xFF}, {0xFF}, {0xFF} + }, { // CLEFABLE + {0x09}, {0x2A}, {0x24}, {0xFF}, {0xFF}, {0xFF} + }, { // PIDGEOT + {0x11}, {0x0C}, {0x15}, {0xFF}, {0xFF}, {0xFF} + }, { // PIDGEOTTO + {0x11}, {0x0C}, {0x18}, {0x18}, {0xFF}, {0xFF} + }, { // PICHU + {0x0C}, {0x27}, {0x33}, {0xFF}, {0xFF}, {0xFF} + }, { // CLEFAIRY + {0x09}, {0x0B}, {0x0C}, {0xFF}, {0xFF}, {0xFF} + }, { // CHARMANDER + {0x06}, {0x02}, {0x32}, {0x33}, {0xFF}, {0xFF} + }, { // STARYU + {0x1B}, {0x27}, {0x33}, {0xFF}, {0xFF}, {0xFF} + }, { // CYNDAQUIL + {0x0F}, {0x2A}, {0x09}, {0x33}, {0xFF}, {0xFF} + }, { // SUNKERN + {0x2C}, {0x30}, {0x33}, {0xFF}, {0xFF}, {0xFF} + }, { // TEDDIURSA + {0x09}, {0x0C}, {0x30}, {0x2C}, {0xFF}, {0xFF} + }, { // VOLTORB + {0x1A}, {0x18}, {0x33}, {0xFF}, {0xFF}, {0xFF} + }, { // MOLTRES + {0x1A}, {0x09}, {0x33}, {0xFF}, {0xFF}, {0xFF} + }, { // FLAREON + {0x03}, {0x0C}, {0x15}, {0xFF}, {0xFF}, {0xFF} + }, { // ALAKAZAM + {0x00}, {0x2C}, {0x2C}, {0x00}, {0xFF}, {0xFF} + }, { // MAGMAR + {0x00}, {0x1D}, {0x33}, {0xFF}, {0xFF}, {0xFF} + }, { // FORRETRESS + {0x1A}, {0x09}, {0x09}, {0x33}, {0xFF}, {0xFF} + }, { // WIGGLYTUFF + {0x11}, {0x27}, {0x0C}, {0x2A}, {0x33}, {0xFF} + }, { // IVYSAUR + {0x14}, {0x0C}, {0x32}, {0x33}, {0xFF}, {0xFF} + }, { // BULBASAUR + {0x24}, {0x2A}, {0x30}, {0x33}, {0xFF}, {0xFF} + }, { // VENUSAUR + {0x0C}, {0x2C}, {0x30}, {0x33}, {0xFF}, {0xFF} + }, { // AERODACTYL + {0x03}, {0x18}, {0x00}, {0x18}, {0xFF}, {0xFF} + }, { // MAGBY + {0x00}, {0x0C}, {0x33}, {0xFF}, {0xFF}, {0xFF} + }, { // IGGLYBUFF + {0x11}, {0x2A}, {0x0C}, {0x2A}, {0xFF}, {0xFF} + }, { // UMBREON + {0x2A}, {0x0C}, {0x1B}, {0x33}, {0xFF}, {0xFF} + }, { // ARTICUNO + {0x06}, {0x11}, {0x27}, {0x18}, {0xFF}, {0xFF} + }, { // JIGGLYPUFF + {0x11}, {0x27}, {0x0C}, {0x2A}, {0x33}, {0xFF} + }, { // SNUBBULL + {0x2C}, {0x2C}, {0x33}, {0xFF}, {0xFF}, {0xFF} + }, { // BAYLEEF + {0x03}, {0x0C}, {0x33}, {0xFF}, {0xFF}, {0xFF} + }, { // GRIMER + {0x12}, {0x30}, {0x33}, {0xFF}, {0xFF}, {0xFF} + }, { // MUK + {0x2A}, {0x33}, {0x33}, {0xFF}, {0xFF}, {0xFF} + }, { // HERACROSS + {0x09}, {0x2A}, {0x1B}, {0x33}, {0xFF}, {0xFF} + }, { // HOUNDOOM + {0x21}, {0x27}, {0x33}, {0xFF}, {0xFF}, {0xFF} + }, { // PERSIAN + {0x32}, {0x11}, {0x00}, {0xFF}, {0xFF}, {0xFF} + }, { // LICKITUNG + {0x11}, {0x0C}, {0x2A}, {0xFF}, {0xFF}, {0xFF} + }, { // HO_OH + {0x18}, {0x18}, {0x33}, {0xFF}, {0xFF}, {0xFF} + }, { // HOOTHOOT + {0x27}, {0x27}, {0x33}, {0xFF}, {0xFF}, {0xFF} + }, { // PIDGEY + {0x11}, {0x0C}, {0x33}, {0xFF}, {0xFF}, {0xFF} + }, { // PONYTA + {0x1A}, {0x0C}, {0x2A}, {0xFF}, {0xFF}, {0xFF} + }, { // SKIPLOOM + {0x11}, {0x27}, {0x33}, {0xFF}, {0xFF}, {0xFF} + }, { // PORYGON + {0x18}, {0x0C}, {0x15}, {0xFF}, {0xFF}, {0xFF} + }, { // PORYGON2 + {0x1A}, {0x0C}, {0x1B}, {0x27}, {0xFF}, {0xFF} + }, { // MAGCARGO + {0x00}, {0x1B}, {0x18}, {0xFF}, {0xFF}, {0xFF} + }, { // SLUGMA + {0x2C}, {0x2C}, {0x33}, {0xFF}, {0xFF}, {0xFF} + }, { // QUILAVA + {0x11}, {0x06}, {0x08}, {0xFF}, {0xFF}, {0xFF} + }, { // BELLSPROUT + {0x0B}, {0x21}, {0x33}, {0xFF}, {0xFF}, {0xFF} + }, { // WEEZING + {0x0C}, {0x0C}, {0x33}, {0xFF}, {0xFF}, {0xFF} + }, { // MARILL + {0x08}, {0x10}, {0x33}, {0xFF}, {0xFF}, {0xFF} + }, { // AZUMARILL + {0x08}, {0x27}, {0x2C}, {0x10}, {0xFF}, {0xFF} + }, { // ELECTRODE + {0x0C}, {0x09}, {0x18}, {0xFF}, {0xFF}, {0xFF} + }, { // MANKEY + {0x00}, {0x0C}, {0x33}, {0xFF}, {0xFF}, {0xFF} + }, { // MANTINE + {0x00}, {0x0C}, {0x33}, {0xFF}, {0xFF}, {0xFF} + }, { // DRATINI + {0x00}, {0x0C}, {0x0C}, {0xFF}, {0xFF}, {0xFF} + }, { // MEW + {0x2D}, {0xFF}, {0x33}, {0xFF}, {0xFF}, {0xFF} + }, { // MEWTWO + {0x2D}, {0x27}, {0xFF}, {0xFF}, {0xFF}, {0xFF} + }, { // MILTANK + {0x11}, {0x03}, {0x33}, {0xFF}, {0xFF}, {0xFF} + }, { // MISDREAVUS + {0x11}, {0x0C}, {0x2C}, {0x33}, {0xFF}, {0xFF} + }, { // SMOOCHUM + {0x27}, {0x2C}, {0x33}, {0xFF}, {0xFF}, {0xFF} + }, { // MEGANIUM + {0x03}, {0x09}, {0x0C}, {0x2A}, {0xFF}, {0xFF} + }, { // DITTO + {0x11}, {0x18}, {0x33}, {0xFF}, {0xFF}, {0xFF} + }, { // TENTACOOL + {0x09}, {0x2A}, {0x27}, {0x33}, {0xFF}, {0xFF} + }, { // MAREEP + {0x1D}, {0x0E}, {0x33}, {0xFF}, {0xFF}, {0xFF} + }, { // FLAAFFY + {0x00}, {0x0C}, {0x33}, {0xFF}, {0xFF}, {0xFF} + }, { // VENOMOTH + {0x09}, {0x1A}, {0x15}, {0xFF}, {0xFF}, {0xFF} + }, { // TANGELA + {0x02}, {0x09}, {0x2A}, {0xFF}, {0xFF}, {0xFF} + }, { // SLOWKING + {0x18}, {0x0C}, {0x33}, {0xFF}, {0xFF}, {0xFF} + }, { // SLOWBRO + {0x18}, {0x18}, {0x33}, {0xFF}, {0xFF}, {0xFF} + }, { // SLOWPOKE + {0x18}, {0x18}, {0x33}, {0xFF}, {0xFF}, {0xFF} + }, { // MURKROW + {0x30}, {0x18}, {0x33}, {0xFF}, {0xFF}, {0xFF} + }, { // YANMA + {0x00}, {0x2A}, {0x33}, {0xFF}, {0xFF}, {0xFF} + }, { // KADABRA + {0x2C}, {0x00}, {0x2C}, {0xFF}, {0xFF}, {0xFF} + }, { // LARVITAR + {0x15}, {0x11}, {0x15}, {0x33}, {0xFF}, {0xFF} + }, { // NOCTOWL + {0x1B}, {0x21}, {0x33}, {0xFF}, {0xFF}, {0xFF} + }, { // RAIKOU + {0x12}, {0x27}, {0x33}, {0xFF}, {0xFF}, {0xFF} + }, { // RAICHU + {0x12}, {0x27}, {0x33}, {0xFF}, {0xFF}, {0xFF} + }, { // CHANSEY + {0x00}, {0x0C}, {0x33}, {0xFF}, {0xFF}, {0xFF} + }, { // RATICATE + {0x00}, {0x0C}, {0x03}, {0xFF}, {0xFF}, {0xFF} + }, { // LAPRAS + {0x2C}, {0x00}, {0x33}, {0xFF}, {0xFF}, {0xFF} + }, { // VILEPLUME + {0x14}, {0x27}, {0x33}, {0xFF}, {0xFF}, {0xFF} + }, { // LANTURN + {0x00}, {0x30}, {0x33}, {0xFF}, {0xFF}, {0xFF} + }, { // CHARMELEON + {0x06}, {0x0C}, {0x0C}, {0x15}, {0x33}, {0xFF} + }, { // CHARIZARD + {0x06}, {0x11}, {0x32}, {0x33}, {0x33}, {0xFF} + }, { // URSARING + {0x30}, {0x2C}, {0x0C}, {0x33}, {0xFF}, {0xFF} + }, { // JYNX + {0x0C}, {0x33}, {0x33}, {0xFF}, {0xFF}, {0xFF} + }, { // LUGIA + {0x27}, {0x0C}, {0x2A}, {0xFF}, {0xFF}, {0xFF} + }, { // MAGNETON + {0x00}, {0x09}, {0x2A}, {0xFF}, {0xFF}, {0xFF} + }, { // LEDIAN + {0x09}, {0x0C}, {0x00}, {0xFF}, {0xFF}, {0xFF} + }, { // LEDYBA + {0x09}, {0x0C}, {0x2A}, {0xFF}, {0xFF}, {0xFF} + }, { // VULPIX + {0x24}, {0x11}, {0x33}, {0xFF}, {0xFF}, {0xFF} + }, { // JUMPLUFF + {0x2C}, {0x2C}, {0x33}, {0xFF}, {0xFF}, {0xFF} + }, { // TOTODILE + {0x18}, {0x18}, {0x12}, {0xFF}, {0xFF}, {0xFF} + }, { // MACHOP + {0x2A}, {0x15}, {0x33}, {0xFF}, {0xFF}, {0xFF} + } +}; +#elif GERMAN +const struct BardSound gBardSounds_Pokemon2[][6] = { + { // EKANS + {0x0B}, {0x02}, {0xFF}, {0xFF}, {0xFF}, {0xFF} + }, { // ARBOK + {0x02}, {0x1A}, {0xFF}, {0xFF}, {0xFF}, {0xFF} + }, { // SEAKING + {0x1A}, {0x11}, {0xFF}, {0xFF}, {0xFF}, {0xFF} + }, { // ARIADOS + {0x02}, {0x11}, {0x02}, {0x1A}, {0xFF}, {0xFF} + }, { // CROCONAW + {0x11}, {0x02}, {0x1A}, {0xFF}, {0xFF}, {0xFF} + }, { // UNOWN + {0x11}, {0x1A}, {0x11}, {0x1A}, {0xFF}, {0xFF} + }, { // EEVEE + {0x0B}, {0x1A}, {0x11}, {0xFF}, {0xFF}, {0xFF} + }, { // GEODUDE + {0x0B}, {0x11}, {0x0B}, {0x11}, {0xFF}, {0xFF} + }, { // SPINARAK + {0x0B}, {0x02}, {0x02}, {0xFF}, {0xFF}, {0xFF} + }, { // PILOSWINE + {0x0B}, {0x11}, {0x0B}, {0xFF}, {0xFF}, {0xFF} + }, { // ONIX + {0x1A}, {0x11}, {0xFF}, {0xFF}, {0xFF}, {0xFF} + }, { // ARCANINE + {0x02}, {0x02}, {0x11}, {0xFF}, {0xFF}, {0xFF} + }, { // SUDOWOODO + {0x1A}, {0x0B}, {0x02}, {0x29}, {0xFF}, {0xFF} + }, { // WEEPINBELL + {0x29}, {0x11}, {0x02}, {0x11}, {0x02}, {0xFF} + }, { // VICTREEBEL + {0x02}, {0x0B}, {0x11}, {0x02}, {0xFF}, {0xFF} + }, { // WOOPER + {0x0B}, {0x11}, {0x1A}, {0xFF}, {0xFF}, {0xFF} + }, { // SWINUB + {0x11}, {0x0B}, {0xFF}, {0xFF}, {0xFF}, {0xFF} + }, { // SKARMORY + {0x02}, {0x02}, {0x0B}, {0x1A}, {0xFF}, {0xFF} + }, { // AIPOM + {0x11}, {0x0B}, {0xFF}, {0xFF}, {0xFF}, {0xFF} + }, { // ESPEON + {0x11}, {0x02}, {0x02}, {0xFF}, {0xFF}, {0xFF} + }, { // HITMONCHAN + {0x1A}, {0x02}, {0xFF}, {0xFF}, {0xFF}, {0xFF} + }, { // ELEKID + {0x0B}, {0x0B}, {0x11}, {0xFF}, {0xFF}, {0xFF} + }, { // ELECTABUZZ + {0x0B}, {0x0B}, {0x0B}, {0xFF}, {0xFF}, {0xFF} + }, { // ENTEI + {0x0B}, {0x0B}, {0x11}, {0xFF}, {0xFF}, {0xFF} + }, { // FERALIGATR + {0x11}, {0x0B}, {0x02}, {0x1A}, {0xFF}, {0xFF} + }, { // FURRET + {0x11}, {0x0B}, {0x11}, {0x1A}, {0xFF}, {0xFF} + }, { // OCTILLERY + {0x1A}, {0x11}, {0x0B}, {0x11}, {0xFF}, {0xFF} + }, { // PRIMEAPE + {0x02}, {0x02}, {0xFF}, {0xFF}, {0xFF}, {0xFF} + }, { // SENTRET + {0x11}, {0x1A}, {0xFF}, {0xFF}, {0xFF}, {0xFF} + }, { // STANTLER + {0x02}, {0x11}, {0x0B}, {0xFF}, {0xFF}, {0xFF} + }, { // SPEAROW + {0x02}, {0x11}, {0x02}, {0xFF}, {0xFF}, {0xFF} + }, { // FEAROW + {0x11}, {0x11}, {0x02}, {0xFF}, {0xFF}, {0xFF} + }, { // OMASTAR + {0x02}, {0x1A}, {0x1A}, {0x1A}, {0xFF}, {0xFF} + }, { // OMANYTE + {0x02}, {0x1A}, {0x11}, {0x02}, {0xFF}, {0xFF} + }, { // GROWLITHE + {0x29}, {0x02}, {0x1A}, {0xFF}, {0xFF}, {0xFF} + }, { // MACHAMP + {0x02}, {0x1A}, {0x0B}, {0x11}, {0xFF}, {0xFF} + }, { // DRAGONITE + {0x02}, {0x1A}, {0x02}, {0xFF}, {0xFF}, {0xFF} + }, { // PINSIR + {0x11}, {0x11}, {0xFF}, {0xFF}, {0xFF}, {0xFF} + }, { // SNORLAX + {0x0B}, {0x02}, {0x1A}, {0xFF}, {0xFF}, {0xFF} + }, { // KABUTO + {0x02}, {0x29}, {0x1A}, {0xFF}, {0xFF}, {0xFF} + }, { // KABUTOPS + {0x02}, {0x29}, {0x1A}, {0xFF}, {0xFF}, {0xFF} + }, { // HITMONTOP + {0x02}, {0x1A}, {0x0B}, {0x02}, {0xFF}, {0xFF} + }, { // WARTORTLE + {0x11}, {0x1A}, {0xFF}, {0xFF}, {0xFF}, {0xFF} + }, { // BLASTOISE + {0x29}, {0x1A}, {0xFF}, {0xFF}, {0xFF}, {0xFF} + }, { // FARFETCHD + {0x1A}, {0x0B}, {0x02}, {0xFF}, {0xFF}, {0xFF} + }, { // CUBONE + {0x02}, {0x1A}, {0x1A}, {0xFF}, {0xFF}, {0xFF} + }, { // MAROWAK + {0x1A}, {0x02}, {0xFF}, {0xFF}, {0xFF}, {0xFF} + }, { // KANGASKHAN + {0x02}, {0x02}, {0x02}, {0xFF}, {0xFF}, {0xFF} + }, { // SUNFLORA + {0x1A}, {0x1A}, {0x02}, {0xFF}, {0xFF}, {0xFF} + }, { // CATERPIE + {0x02}, {0x29}, {0x11}, {0xFF}, {0xFF}, {0xFF} + }, { // GYARADOS + {0x02}, {0x02}, {0x1A}, {0xFF}, {0xFF}, {0xFF} + }, { // RAPIDASH + {0x02}, {0x1A}, {0x02}, {0xFF}, {0xFF}, {0xFF} + }, { // NINETALES + {0x29}, {0x1A}, {0x02}, {0xFF}, {0xFF}, {0xFF} + }, { // GIRAFARIG + {0x11}, {0x02}, {0x02}, {0x11}, {0xFF}, {0xFF} + }, { // BELLOSSOM + {0x29}, {0x0B}, {0x02}, {0xFF}, {0xFF}, {0xFF} + }, { // KINGDRA + {0x0B}, {0x0B}, {0x02}, {0x11}, {0xFF}, {0xFF} + }, { // KINGLER + {0x11}, {0x0B}, {0xFF}, {0xFF}, {0xFF}, {0xFF} + }, { // GLOOM + {0x29}, {0x1A}, {0xFF}, {0xFF}, {0xFF}, {0xFF} + }, { // PINECO + {0x02}, {0x02}, {0xFF}, {0xFF}, {0xFF}, {0xFF} + }, { // GLIGAR + {0x1A}, {0x02}, {0xFF}, {0xFF}, {0xFF}, {0xFF} + }, { // KRABBY + {0x02}, {0x11}, {0xFF}, {0xFF}, {0xFF}, {0xFF} + }, { // GRANBULL + {0x02}, {0x29}, {0xFF}, {0xFF}, {0xFF}, {0xFF} + }, { // CROBAT + {0x11}, {0x02}, {0xFF}, {0xFF}, {0xFF}, {0xFF} + }, { // ABRA + {0x02}, {0x02}, {0xFF}, {0xFF}, {0xFF}, {0xFF} + }, { // GENGAR + {0x0B}, {0x02}, {0xFF}, {0xFF}, {0xFF}, {0xFF} + }, { // TAUROS + {0x02}, {0x29}, {0x1A}, {0xFF}, {0xFF}, {0xFF} + }, { // MAGIKARP + {0x02}, {0x02}, {0x1A}, {0xFF}, {0xFF}, {0xFF} + }, { // MAGNEMITE + {0x02}, {0x0B}, {0x11}, {0x1A}, {0xFF}, {0xFF} + }, { // GASTLY + {0x0B}, {0x29}, {0x02}, {0xFF}, {0xFF}, {0xFF} + }, { // HAUNTER + {0x02}, {0x1A}, {0x1A}, {0xFF}, {0xFF}, {0xFF} + }, { // MACHOKE + {0x02}, {0x1A}, {0xFF}, {0xFF}, {0xFF}, {0xFF} + }, { // KAKUNA + {0x1A}, {0x29}, {0x02}, {0xFF}, {0xFF}, {0xFF} + }, { // PSYDUCK + {0x0B}, {0x1A}, {0xFF}, {0xFF}, {0xFF}, {0xFF} + }, { // PHANPY + {0x02}, {0x11}, {0xFF}, {0xFF}, {0xFF}, {0xFF} + }, { // RATTATA + {0x02}, {0x02}, {0xFF}, {0xFF}, {0xFF}, {0xFF} + }, { // GOLDUCK + {0x0B}, {0x1A}, {0x1A}, {0xFF}, {0xFF}, {0xFF} + }, { // GOLBAT + {0x1A}, {0x02}, {0xFF}, {0xFF}, {0xFF}, {0xFF} + }, { // GOLEM + {0x0B}, {0x1A}, {0x02}, {0xFF}, {0xFF}, {0xFF} + }, { // GRAVELER + {0x0B}, {0x1A}, {0x1A}, {0xFF}, {0xFF}, {0xFF} + }, { // VENONAT + {0x29}, {0x29}, {0xFF}, {0xFF}, {0xFF}, {0xFF} + }, { // RHYDON + {0x11}, {0x0B}, {0x1A}, {0xFF}, {0xFF}, {0xFF} + }, { // RHYHORN + {0x11}, {0x1A}, {0xFF}, {0xFF}, {0xFF}, {0xFF} + }, { // PUPITAR + {0x29}, {0x11}, {0x02}, {0xFF}, {0xFF}, {0xFF} + }, { // CORSOLA + {0x1A}, {0x02}, {0x1A}, {0xFF}, {0xFF}, {0xFF} + }, { // HITMONLEE + {0x11}, {0x11}, {0x11}, {0xFF}, {0xFF}, {0xFF} + }, { // ZAPDOS + {0x02}, {0x1A}, {0xFF}, {0xFF}, {0xFF}, {0xFF} + }, { // JOLTEON + {0x11}, {0x02}, {0xFF}, {0xFF}, {0xFF}, {0xFF} + }, { // SANDSHREW + {0x02}, {0x02}, {0xFF}, {0xFF}, {0xFF}, {0xFF} + }, { // SANDSLASH + {0x02}, {0x02}, {0x0B}, {0xFF}, {0xFF}, {0xFF} + }, { // SEADRA + {0x0B}, {0x0B}, {0x1A}, {0xFF}, {0xFF}, {0xFF} + }, { // SHELLDER + {0x29}, {0x02}, {0xFF}, {0xFF}, {0xFF}, {0xFF} + }, { // VAPOREON + {0x02}, {0x02}, {0x02}, {0xFF}, {0xFF}, {0xFF} + }, { // DEWGONG + {0x29}, {0x1A}, {0xFF}, {0xFF}, {0xFF}, {0xFF} + }, { // SUICUNE + {0x29}, {0x11}, {0x29}, {0x0B}, {0xFF}, {0xFF} + }, { // STARMIE + {0x02}, {0x11}, {0x0B}, {0xFF}, {0xFF}, {0xFF} + }, { // SCYTHER + {0x11}, {0x1A}, {0xFF}, {0xFF}, {0xFF}, {0xFF} + }, { // ZUBAT + {0x29}, {0x02}, {0xFF}, {0xFF}, {0xFF}, {0xFF} + }, { // BEEDRILL + {0x11}, {0x1A}, {0xFF}, {0xFF}, {0xFF}, {0xFF} + }, { // HYPNO + {0x11}, {0x1A}, {0xFF}, {0xFF}, {0xFF}, {0xFF} + }, { // DROWZEE + {0x02}, {0x29}, {0x02}, {0x1A}, {0xFF}, {0xFF} + }, { // SQUIRTLE + {0x11}, {0x11}, {0xFF}, {0xFF}, {0xFF}, {0xFF} + }, { // CELEBI + {0x0B}, {0x0B}, {0x11}, {0xFF}, {0xFF}, {0xFF} + }, { // WOBBUFFET + {0x1A}, {0x11}, {0x0B}, {0x02}, {0x29}, {0xFF} + }, { // DUGTRIO + {0x11}, {0x11}, {0xFF}, {0xFF}, {0xFF}, {0xFF} + }, { // HORSEA + {0x0B}, {0x0B}, {0x0B}, {0xFF}, {0xFF}, {0xFF} + }, { // EXEGGCUTE + {0x1A}, {0x0B}, {0x11}, {0xFF}, {0xFF}, {0xFF} + }, { // CHIKORITA + {0x0B}, {0x11}, {0x11}, {0x0B}, {0xFF}, {0xFF} + }, { // CHINCHOU + {0x02}, {0x11}, {0xFF}, {0xFF}, {0xFF}, {0xFF} + }, { // SHUCKLE + {0x1A}, {0x1A}, {0xFF}, {0xFF}, {0xFF}, {0xFF} + }, { // DIGLETT + {0x11}, {0x02}, {0xFF}, {0xFF}, {0xFF}, {0xFF} + }, { // REMORAID + {0x0B}, {0x1A}, {0x02}, {0x11}, {0xFF}, {0xFF} + }, { // DELIBIRD + {0x1A}, {0x1A}, {0x0B}, {0xFF}, {0xFF}, {0xFF} + }, { // HOUNDOUR + {0x29}, {0x29}, {0x0B}, {0xFF}, {0xFF}, {0xFF} + }, { // AMPHAROS + {0x02}, {0x02}, {0x1A}, {0xFF}, {0xFF}, {0xFF} + }, { // DODUO + {0x1A}, {0x29}, {0xFF}, {0xFF}, {0xFF}, {0xFF} + }, { // DODRIO + {0x1A}, {0x11}, {0xFF}, {0xFF}, {0xFF}, {0xFF} + }, { // SMEARGLE + {0x02}, {0x11}, {0x0B}, {0xFF}, {0xFF}, {0xFF} + }, { // KOFFING + {0x1A}, {0x1A}, {0xFF}, {0xFF}, {0xFF}, {0xFF} + }, { // TENTACRUEL + {0x0B}, {0x1A}, {0x02}, {0xFF}, {0xFF}, {0xFF} + }, { // TOGETIC + {0x1A}, {0x0B}, {0x11}, {0xFF}, {0xFF}, {0xFF} + }, { // TOGEPI + {0x1A}, {0x0B}, {0x11}, {0xFF}, {0xFF}, {0xFF} + }, { // GOLDEEN + {0x1A}, {0x11}, {0x11}, {0xFF}, {0xFF}, {0xFF} + }, { // METAPOD + {0x02}, {0x1A}, {0xFF}, {0xFF}, {0xFF}, {0xFF} + }, { // DONPHAN + {0x1A}, {0x02}, {0xFF}, {0xFF}, {0xFF}, {0xFF} + }, { // ODDISH + {0x11}, {0x02}, {0x02}, {0xFF}, {0xFF}, {0xFF} + }, { // EXEGGUTOR + {0x1A}, {0x1A}, {0x0B}, {0x11}, {0xFF}, {0xFF} + }, { // NIDOKING + {0x11}, {0x1A}, {0x11}, {0xFF}, {0xFF}, {0xFF} + }, { // NIDOQUEEN + {0x11}, {0x1A}, {0x11}, {0xFF}, {0xFF}, {0xFF} + }, { // NIDORAN_F + {0x11}, {0x1A}, {0x02}, {0xFF}, {0xFF}, {0xFF} + }, { // NIDORAN_M + {0x11}, {0x1A}, {0x02}, {0xFF}, {0xFF}, {0xFF} + }, { // NIDORINA + {0x11}, {0x1A}, {0x11}, {0x02}, {0xFF}, {0xFF} + }, { // NIDORINO + {0x11}, {0x1A}, {0x11}, {0x1A}, {0xFF}, {0xFF} + }, { // MEOWTH + {0x02}, {0x29}, {0x11}, {0xFF}, {0xFF}, {0xFF} + }, { // SNEASEL + {0x11}, {0x0B}, {0xFF}, {0xFF}, {0xFF}, {0xFF} + }, { // POLIWHIRL + {0x02}, {0x29}, {0x11}, {0xFF}, {0xFF}, {0xFF} + }, { // POLITOED + {0x02}, {0x1A}, {0xFF}, {0xFF}, {0xFF}, {0xFF} + }, { // POLIWRATH + {0x02}, {0x1A}, {0xFF}, {0xFF}, {0xFF}, {0xFF} + }, { // POLIWAG + {0x02}, {0x0B}, {0xFF}, {0xFF}, {0xFF}, {0xFF} + }, { // QUAGSIRE + {0x1A}, {0x1A}, {0xFF}, {0xFF}, {0xFF}, {0xFF} + }, { // NATU + {0x02}, {0x29}, {0xFF}, {0xFF}, {0xFF}, {0xFF} + }, { // XATU + {0x02}, {0x29}, {0xFF}, {0xFF}, {0xFF}, {0xFF} + }, { // DUNSPARCE + {0x29}, {0x11}, {0x0B}, {0xFF}, {0xFF}, {0xFF} + }, { // SEEL + {0x29}, {0x1A}, {0xFF}, {0xFF}, {0xFF}, {0xFF} + }, { // STEELIX + {0x02}, {0x1A}, {0xFF}, {0xFF}, {0xFF}, {0xFF} + }, { // TYPHLOSION + {0x1A}, {0x29}, {0x1A}, {0xFF}, {0xFF}, {0xFF} + }, { // DRAGONAIR + {0x02}, {0x1A}, {0x11}, {0xFF}, {0xFF}, {0xFF} + }, { // BUTTERFREE + {0x0B}, {0x1A}, {0xFF}, {0xFF}, {0xFF}, {0xFF} + }, { // SCIZOR + {0x0B}, {0x1A}, {0xFF}, {0xFF}, {0xFF}, {0xFF} + }, { // HOPPIP + {0x1A}, {0x1A}, {0xFF}, {0xFF}, {0xFF}, {0xFF} + }, { // BLISSEY + {0x0B}, {0x11}, {0x0B}, {0x11}, {0x02}, {0xFF} + }, { // PARAS + {0x02}, {0x02}, {0xFF}, {0xFF}, {0xFF}, {0xFF} + }, { // PARASECT + {0x02}, {0x02}, {0x0B}, {0xFF}, {0xFF}, {0xFF} + }, { // QWILFISH + {0x02}, {0x1A}, {0x11}, {0xFF}, {0xFF}, {0xFF} + }, { // MR_MIME + {0x02}, {0x11}, {0x1A}, {0xFF}, {0xFF}, {0xFF} + }, { // TYROGUE + {0x02}, {0x02}, {0x29}, {0xFF}, {0xFF}, {0xFF} + }, { // CLOYSTER + {0x02}, {0x29}, {0x1A}, {0xFF}, {0xFF}, {0xFF} + }, { // TYRANITAR + {0x0B}, {0x1A}, {0x02}, {0xFF}, {0xFF}, {0xFF} + }, { // CLEFFA + {0x11}, {0x11}, {0xFF}, {0xFF}, {0xFF}, {0xFF} + }, { // WEEDLE + {0x1A}, {0x11}, {0x29}, {0xFF}, {0xFF}, {0xFF} + }, { // PIKACHU + {0x11}, {0x02}, {0x29}, {0xFF}, {0xFF}, {0xFF} + }, { // CLEFABLE + {0x11}, {0x11}, {0xFF}, {0xFF}, {0xFF}, {0xFF} + }, { // PIDGEOT + {0x02}, {0x29}, {0x1A}, {0xFF}, {0xFF}, {0xFF} + }, { // PIDGEOTTO + {0x02}, {0x29}, {0x1A}, {0x02}, {0xFF}, {0xFF} + }, { // PICHU + {0x11}, {0x29}, {0xFF}, {0xFF}, {0xFF}, {0xFF} + }, { // CLEFAIRY + {0x11}, {0x11}, {0xFF}, {0xFF}, {0xFF}, {0xFF} + }, { // CHARMANDER + {0x29}, {0x02}, {0x02}, {0xFF}, {0xFF}, {0xFF} + }, { // STARYU + {0x0B}, {0x29}, {0xFF}, {0xFF}, {0xFF}, {0xFF} + }, { // CYNDAQUIL + {0x0B}, {0x29}, {0x11}, {0x0B}, {0xFF}, {0xFF} + }, { // SUNKERN + {0x1A}, {0x0B}, {0xFF}, {0xFF}, {0xFF}, {0xFF} + }, { // TEDDIURSA + {0x0B}, {0x11}, {0x29}, {0x02}, {0xFF}, {0xFF} + }, { // VOLTORB + {0x1A}, {0x1A}, {0x02}, {0xFF}, {0xFF}, {0xFF} + }, { // MOLTRES + {0x02}, {0x02}, {0x1A}, {0xFF}, {0xFF}, {0xFF} + }, { // FLAREON + {0x02}, {0x02}, {0x02}, {0xFF}, {0xFF}, {0xFF} + }, { // ALAKAZAM + {0x11}, {0x02}, {0x02}, {0xFF}, {0xFF}, {0xFF} + }, { // MAGMAR + {0x02}, {0x02}, {0xFF}, {0xFF}, {0xFF}, {0xFF} + }, { // FORRETRESS + {0x1A}, {0x0B}, {0x02}, {0xFF}, {0xFF}, {0xFF} + }, { // WIGGLYTUFF + {0x29}, {0x0B}, {0x29}, {0xFF}, {0xFF}, {0xFF} + }, { // IVYSAUR + {0x11}, {0x02}, {0x1A}, {0xFF}, {0xFF}, {0xFF} + }, { // BULBASAUR + {0x11}, {0x02}, {0x02}, {0xFF}, {0xFF}, {0xFF} + }, { // VENUSAUR + {0x11}, {0x02}, {0x1A}, {0xFF}, {0xFF}, {0xFF} + }, { // AERODACTYL + {0x02}, {0x0B}, {0x1A}, {0x02}, {0x11}, {0xFF} + }, { // MAGBY + {0x02}, {0x11}, {0xFF}, {0xFF}, {0xFF}, {0xFF} + }, { // IGGLYBUFF + {0x29}, {0x0B}, {0x29}, {0xFF}, {0xFF}, {0xFF} + }, { // UMBREON + {0x02}, {0x02}, {0x02}, {0xFF}, {0xFF}, {0xFF} + }, { // ARTICUNO + {0x02}, {0x1A}, {0xFF}, {0xFF}, {0xFF}, {0xFF} + }, { // JIGGLYPUFF + {0x29}, {0x0B}, {0x29}, {0xFF}, {0xFF}, {0xFF} + }, { // SNUBBULL + {0x29}, {0x29}, {0xFF}, {0xFF}, {0xFF}, {0xFF} + }, { // BAYLEEF + {0x1A}, {0x02}, {0xFF}, {0xFF}, {0xFF}, {0xFF} + }, { // GRIMER + {0x0B}, {0x11}, {0x02}, {0xFF}, {0xFF}, {0xFF} + }, { // MUK + {0x0B}, {0x11}, {0x1A}, {0xFF}, {0xFF}, {0xFF} + }, { // HERACROSS + {0x02}, {0x02}, {0x1A}, {0xFF}, {0xFF}, {0xFF} + }, { // HOUNDOOM + {0x29}, {0x0B}, {0x1A}, {0xFF}, {0xFF}, {0xFF} + }, { // PERSIAN + {0x1A}, {0x11}, {0x11}, {0x02}, {0xFF}, {0xFF} + }, { // LICKITUNG + {0x29}, {0xFF}, {0xFF}, {0xFF}, {0xFF}, {0xFF} + }, { // HO_OH + {0x1A}, {0x1A}, {0xFF}, {0xFF}, {0xFF}, {0xFF} + }, { // HOOTHOOT + {0x1A}, {0x1A}, {0x1A}, {0x1A}, {0xFF}, {0xFF} + }, { // PIDGEY + {0x02}, {0x29}, {0x11}, {0xFF}, {0xFF}, {0xFF} + }, { // PONYTA + {0x1A}, {0x11}, {0x02}, {0xFF}, {0xFF}, {0xFF} + }, { // SKIPLOOM + {0x29}, {0x0B}, {0x29}, {0xFF}, {0xFF}, {0xFF} + }, { // PORYGON + {0x1A}, {0x11}, {0x1A}, {0xFF}, {0xFF}, {0xFF} + }, { // PORYGON2 + {0x1A}, {0x11}, {0x1A}, {0x0B}, {0x11}, {0xFF} + }, { // MAGCARGO + {0x02}, {0x02}, {0x1A}, {0xFF}, {0xFF}, {0xFF} + }, { // SLUGMA + {0x0B}, {0x02}, {0xFF}, {0xFF}, {0xFF}, {0xFF} + }, { // QUILAVA + {0x11}, {0x0B}, {0x02}, {0x02}, {0xFF}, {0xFF} + }, { // BELLSPROUT + {0x1A}, {0x0B}, {0x02}, {0xFF}, {0xFF}, {0xFF} + }, { // WEEZING + {0x1A}, {0x1A}, {0xFF}, {0xFF}, {0xFF}, {0xFF} + }, { // MARILL + {0x02}, {0x11}, {0xFF}, {0xFF}, {0xFF}, {0xFF} + }, { // AZUMARILL + {0x02}, {0x29}, {0x02}, {0x11}, {0xFF}, {0xFF} + }, { // ELECTRODE + {0x0B}, {0x1A}, {0x02}, {0xFF}, {0xFF}, {0xFF} + }, { // MANKEY + {0x0B}, {0x11}, {0xFF}, {0xFF}, {0xFF}, {0xFF} + }, { // MANTINE + {0x02}, {0x02}, {0xFF}, {0xFF}, {0xFF}, {0xFF} + }, { // DRATINI + {0x02}, {0x11}, {0x11}, {0xFF}, {0xFF}, {0xFF} + }, { // MEW + {0x11}, {0x29}, {0xFF}, {0xFF}, {0xFF}, {0xFF} + }, { // MEWTWO + {0x11}, {0x29}, {0x29}, {0x29}, {0xFF}, {0xFF} + }, { // MILTANK + {0x11}, {0x02}, {0xFF}, {0xFF}, {0xFF}, {0xFF} + }, { // MISDREAVUS + {0x02}, {0x29}, {0x29}, {0x11}, {0xFF}, {0xFF} + }, { // SMOOCHUM + {0x29}, {0x11}, {0x02}, {0xFF}, {0xFF}, {0xFF} + }, { // MEGANIUM + {0x0B}, {0x02}, {0x11}, {0x0B}, {0xFF}, {0xFF} + }, { // DITTO + {0x11}, {0x1A}, {0xFF}, {0xFF}, {0xFF}, {0xFF} + }, { // TENTACOOL + {0x0B}, {0x02}, {0x02}, {0xFF}, {0xFF}, {0xFF} + }, { // MAREEP + {0x1A}, {0x11}, {0x02}, {0xFF}, {0xFF}, {0xFF} + }, { // FLAAFFY + {0x02}, {0x02}, {0x11}, {0xFF}, {0xFF}, {0xFF} + }, { // VENOMOTH + {0x1A}, {0x1A}, {0xFF}, {0xFF}, {0xFF}, {0xFF} + }, { // TANGELA + {0x02}, {0x0B}, {0x02}, {0xFF}, {0xFF}, {0xFF} + }, { // SLOWKING + {0x02}, {0x1A}, {0x11}, {0xFF}, {0xFF}, {0xFF} + }, { // SLOWBRO + {0x02}, {0x29}, {0xFF}, {0xFF}, {0xFF}, {0xFF} + }, { // SLOWPOKE + {0x0B}, {0x1A}, {0xFF}, {0xFF}, {0xFF}, {0xFF} + }, { // MURKROW + {0x02}, {0x29}, {0xFF}, {0xFF}, {0xFF}, {0xFF} + }, { // YANMA + {0x02}, {0x02}, {0xFF}, {0xFF}, {0xFF}, {0xFF} + }, { // KADABRA + {0x02}, {0x02}, {0x02}, {0xFF}, {0xFF}, {0xFF} + }, { // LARVITAR + {0x02}, {0x11}, {0x02}, {0xFF}, {0xFF}, {0xFF} + }, { // NOCTOWL + {0x1A}, {0x29}, {0xFF}, {0xFF}, {0xFF}, {0xFF} + }, { // RAIKOU + {0x02}, {0x11}, {0x29}, {0xFF}, {0xFF}, {0xFF} + }, { // RAICHU + {0x02}, {0x11}, {0x29}, {0xFF}, {0xFF}, {0xFF} + }, { // CHANSEY + {0x02}, {0x0B}, {0x11}, {0x02}, {0xFF}, {0xFF} + }, { // RATICATE + {0x02}, {0x02}, {0xFF}, {0xFF}, {0xFF}, {0xFF} + }, { // LAPRAS + {0x02}, {0x02}, {0xFF}, {0xFF}, {0xFF}, {0xFF} + }, { // VILEPLUME + {0x11}, {0x1A}, {0xFF}, {0xFF}, {0xFF}, {0xFF} + }, { // LANTURN + {0x02}, {0x29}, {0xFF}, {0xFF}, {0xFF}, {0xFF} + }, { // CHARMELEON + {0x29}, {0x0B}, {0x1A}, {0xFF}, {0xFF}, {0xFF} + }, { // CHARIZARD + {0x29}, {0x02}, {0xFF}, {0xFF}, {0xFF}, {0xFF} + }, { // URSARING + {0x29}, {0x02}, {0x11}, {0xFF}, {0xFF}, {0xFF} + }, { // JYNX + {0x1A}, {0x02}, {0x02}, {0xFF}, {0xFF}, {0xFF} + }, { // LUGIA + {0x29}, {0x11}, {0x02}, {0xFF}, {0xFF}, {0xFF} + }, { // MAGNETON + {0x02}, {0x0B}, {0x1A}, {0xFF}, {0xFF}, {0xFF} + }, { // LEDIAN + {0x0B}, {0x11}, {0x02}, {0xFF}, {0xFF}, {0xFF} + }, { // LEDYBA + {0x0B}, {0x11}, {0x02}, {0xFF}, {0xFF}, {0xFF} + }, { // VULPIX + {0x29}, {0x11}, {0xFF}, {0xFF}, {0xFF}, {0xFF} + }, { // JUMPLUFF + {0x02}, {0x29}, {0x02}, {0xFF}, {0xFF}, {0xFF} + }, { // TOTODILE + {0x02}, {0x11}, {0x02}, {0x11}, {0xFF}, {0xFF} + }, { // MACHOP + {0x02}, {0x1A}, {0x1A}, {0xFF}, {0xFF}, {0xFF} + } +}; +#endif // ENGLISH/GERMAN + +#endif //GUARD_DATA_BARD_MUSIC_POKEMON_2_H diff --git a/src/data/bard_music/speech.h b/src/data/bard_music/speech.h new file mode 100644 index 000000000..4d4bb1cfd --- /dev/null +++ b/src/data/bard_music/speech.h @@ -0,0 +1,254 @@ +#ifndef GUARD_DATA_BARD_MUSIC_SPEECH_H +#define GUARD_DATA_BARD_MUSIC_SPEECH_H + +#if ENGLISH +const struct BardSound gBardSounds_Speech[][6] = { + { // LISTEN + {0x09}, {0x10}, {0x33}, {0xFF}, {0xFF}, {0xFF} + }, { // NOT VERY + {0x15}, {0x09}, {0x0C}, {0xFF}, {0xFF}, {0xFF} + }, { // MEAN + {0x0E}, {0x33}, {0x33}, {0xFF}, {0xFF}, {0xFF} + }, { // LIE + {0x12}, {0x33}, {0x33}, {0xFF}, {0xFF}, {0xFF} + }, { // LAY + {0x05}, {0x33}, {0x33}, {0xFF}, {0xFF}, {0xFF} + }, { // RECOMMEND + {0x09}, {0x2C}, {0x0A}, {0xFF}, {0xFF}, {0xFF} + }, { // NITWIT + {0x0F}, {0x0F}, {0x33}, {0xFF}, {0xFF}, {0xFF} + }, { // QUITE + {0x14}, {0x0B}, {0x33}, {0xFF}, {0xFF}, {0xFF} + }, { // FROM + {0x2B}, {0x33}, {0x33}, {0xFF}, {0xFF}, {0xFF} + }, { // FEELING + {0x0C}, {0x0E}, {0x33}, {0xFF}, {0xFF}, {0xFF} + }, { // BUT + {0x2C}, {0x33}, {0x33}, {0xFF}, {0xFF}, {0xFF} + }, { // HOWEVER + {0x21}, {0x09}, {0x30}, {0xFF}, {0xFF}, {0xFF} + }, { // CASE + {0x0C}, {0x0B}, {0x33}, {0xFF}, {0xFF}, {0xFF} + }, { // THE + {0x2B}, {0x33}, {0x33}, {0xFF}, {0xFF}, {0xFF} + }, { // MISS + {0x11}, {0xFF}, {0x33}, {0xFF}, {0xFF}, {0xFF} + }, { // HOW + {0x21}, {0x33}, {0x33}, {0xFF}, {0xFF}, {0xFF} + }, { // HIT + {0x11}, {0x33}, {0x33}, {0xFF}, {0xFF}, {0xFF} + }, { // ENOUGH + {0x0E}, {0x2C}, {0x33}, {0xFF}, {0xFF}, {0xFF} + }, { // A LOT + {0x03}, {0x17}, {0xFF}, {0xFF}, {0xFF}, {0xFF} + }, { // A LITTLE + {0x03}, {0x11}, {0x26}, {0x33}, {0xFF}, {0xFF} + }, { // ABSOLUTELY + {0x00}, {0x2C}, {0x2D}, {0x0E}, {0x33}, {0xFF} + }, { // AND + {0x00}, {0xFF}, {0x33}, {0xFF}, {0xFF}, {0xFF} + }, { // ONLY + {0x1A}, {0x0E}, {0x33}, {0xFF}, {0xFF}, {0xFF} + }, { // AROUND + {0x0A}, {0xFF}, {0x33}, {0xFF}, {0xFF}, {0xFF} + }, { // PROBABLY + {0x15}, {0x2C}, {0x0E}, {0x33}, {0xFF}, {0xFF} + }, { // IF + {0x11}, {0x33}, {0x33}, {0xFF}, {0xFF}, {0xFF} + }, { // VERY + {0x0A}, {0x0E}, {0x33}, {0xFF}, {0xFF}, {0xFF} + }, { // A TINY BIT + {0x2C}, {0x14}, {0x0C}, {0x11}, {0xFF}, {0xFF} + }, { // WILD + {0x12}, {0x0B}, {0x33}, {0xFF}, {0xFF}, {0xFF} + }, { // THAT'S + {0x00}, {0x0B}, {0xFF}, {0xFF}, {0xFF}, {0xFF} + }, { // JUST + {0x2C}, {0xFF}, {0x33}, {0xFF}, {0xFF}, {0xFF} + }, { // EVEN SO, + {0x0C}, {0x0B}, {0x1A}, {0x33}, {0xFF}, {0xFF} + }, { // MUST BE + {0x2C}, {0x0E}, {0x33}, {0xFF}, {0xFF}, {0xFF} + }, { // NATURALLY + {0x01}, {0x30}, {0x06}, {0x0E}, {0x33}, {0xFF} + }, { // FOR NOW, + {0x1A}, {0x23}, {0xFF}, {0x33}, {0xFF}, {0xFF} + }, { // UNDERSTOOD + {0x2C}, {0x32}, {0x27}, {0xFF}, {0xFF}, {0xFF} + }, { // JOKING + {0x18}, {0x0E}, {0x33}, {0xFF}, {0xFF}, {0xFF} + }, { // READY + {0x09}, {0x0E}, {0x33}, {0xFF}, {0xFF}, {0xFF} + }, { // SOMETHING + {0x1B}, {0x0E}, {0xFF}, {0xFF}, {0xFF}, {0xFF} + }, { // SOMEHOW + {0x1B}, {0x23}, {0x33}, {0xFF}, {0xFF}, {0xFF} + }, { // ALTHOUGH + {0x06}, {0x1A}, {0x33}, {0xFF}, {0xFF}, {0xFF} + }, { // ALSO + {0x06}, {0x1A}, {0x33}, {0xFF}, {0xFF}, {0xFF} + }, { // PERFECT + {0x32}, {0x0B}, {0x33}, {0xFF}, {0xFF}, {0xFF} + }, { // AS MUCH AS + {0x01}, {0x2C}, {0x01}, {0xFF}, {0xFF}, {0xFF} + }, { // REALLY + {0x0C}, {0x0A}, {0x0E}, {0xFF}, {0xFF}, {0xFF} + }, { // TRULY + {0x27}, {0x0C}, {0x33}, {0xFF}, {0xFF}, {0xFF} + }, { // SERIOUSLY + {0x11}, {0x0E}, {0x26}, {0x0E}, {0x33}, {0xFF} + }, { // TOTALLY + {0x18}, {0x07}, {0x0E}, {0x33}, {0xFF}, {0xFF} + }, { // UNTIL + {0x2C}, {0x10}, {0x33}, {0xFF}, {0xFF}, {0xFF} + }, { // AS IF + {0x01}, {0x11}, {0x33}, {0xFF}, {0xFF}, {0xFF} + }, { // MOOD + {0x28}, {0x33}, {0x33}, {0xFF}, {0xFF}, {0xFF} + }, { // RATHER + {0x00}, {0x32}, {0x33}, {0xFF}, {0xFF}, {0xFF} + }, { // AWFULLY + {0x06}, {0x26}, {0x0E}, {0x33}, {0xFF}, {0xFF} + }, { // MODE + {0x1A}, {0xFF}, {0x33}, {0xFF}, {0xFF}, {0xFF} + }, { // MORE + {0x1A}, {0x33}, {0x33}, {0xFF}, {0xFF}, {0xFF} + }, { // TOO LATE + {0x27}, {0x05}, {0x33}, {0xFF}, {0xFF}, {0xFF} + }, { // FINALLY + {0x12}, {0x06}, {0x0E}, {0x33}, {0xFF}, {0xFF} + }, { // ANY + {0x08}, {0x33}, {0x33}, {0xFF}, {0xFF}, {0xFF} + }, { // INSTEAD + {0x0F}, {0x0B}, {0x33}, {0xFF}, {0xFF}, {0xFF} + }, { // FANTASTIC + {0x2B}, {0x33}, {0x33}, {0xFF}, {0xFF}, {0xFF} + } +}; +#elif GERMAN +const struct BardSound gBardSounds_Speech[][6] = { + { // LISTEN + {0x29}, {0x0B}, {0x0B}, {0xFF}, {0xFF}, {0xFF} + }, { // NOT VERY + {0x11}, {0x0B}, {0xFF}, {0xFF}, {0xFF}, {0xFF} + }, { // MEAN + {0x0B}, {0x0B}, {0x11}, {0xFF}, {0xFF}, {0xFF} + }, { // LIE + {0x11}, {0x0B}, {0xFF}, {0xFF}, {0xFF}, {0xFF} + }, { // LAY + {0x0B}, {0x1A}, {0x0B}, {0xFF}, {0xFF}, {0xFF} + }, { // RECOMMEND + {0x0B}, {0x1A}, {0x0B}, {0xFF}, {0xFF}, {0xFF} + }, { // NITWIT + {0x0B}, {0x1A}, {0xFF}, {0xFF}, {0xFF}, {0xFF} + }, { // QUITE + {0x11}, {0x11}, {0xFF}, {0xFF}, {0xFF}, {0xFF} + }, { // FROM + {0x1A}, {0xFF}, {0xFF}, {0xFF}, {0xFF}, {0xFF} + }, { // FEELING + {0x11}, {0x0B}, {0xFF}, {0xFF}, {0xFF}, {0xFF} + }, { // BUT + {0x02}, {0x0B}, {0xFF}, {0xFF}, {0xFF}, {0xFF} + }, { // HOWEVER + {0x0B}, {0x1A}, {0xFF}, {0xFF}, {0xFF}, {0xFF} + }, { // CASE + {0x02}, {0xFF}, {0xFF}, {0xFF}, {0xFF}, {0xFF} + }, { // THE + {0x0B}, {0xFF}, {0xFF}, {0xFF}, {0xFF}, {0xFF} + }, { // MISS + {0x02}, {0x0B}, {0x0B}, {0xFF}, {0xFF}, {0xFF} + }, { // HOW + {0x0B}, {0x02}, {0x29}, {0x11}, {0xFF}, {0xFF} + }, { // HIT + {0x0B}, {0x0B}, {0xFF}, {0xFF}, {0xFF}, {0xFF} + }, { // ENOUGH + {0x0B}, {0x11}, {0x02}, {0x29}, {0xFF}, {0xFF} + }, { // A LOT + {0x11}, {0x0B}, {0xFF}, {0xFF}, {0xFF}, {0xFF} + }, { // A LITTLE + {0x0B}, {0x11}, {0x11}, {0x0B}, {0xFF}, {0xFF} + }, { // ABSOLUTELY + {0x11}, {0x0B}, {0xFF}, {0xFF}, {0xFF}, {0xFF} + }, { // AND + {0x29}, {0xFF}, {0xFF}, {0xFF}, {0xFF}, {0xFF} + }, { // ONLY + {0x29}, {0xFF}, {0xFF}, {0xFF}, {0xFF}, {0xFF} + }, { // AROUND + {0x0B}, {0x02}, {0xFF}, {0xFF}, {0xFF}, {0xFF} + }, { // PROBABLY + {0x0B}, {0x0B}, {0x29}, {0x0B}, {0xFF}, {0xFF} + }, { // IF + {0x0B}, {0xFF}, {0xFF}, {0xFF}, {0xFF}, {0xFF} + }, { // VERY + {0x0B}, {0xFF}, {0xFF}, {0xFF}, {0xFF}, {0xFF} + }, { // A TINY BIT + {0x0B}, {0x11}, {0xFF}, {0xFF}, {0xFF}, {0xFF} + }, { // WILD + {0x11}, {0xFF}, {0xFF}, {0xFF}, {0xFF}, {0xFF} + }, { // THAT'S + {0x1A}, {0x02}, {0xFF}, {0xFF}, {0xFF}, {0xFF} + }, { // JUST + {0x1A}, {0xFF}, {0xFF}, {0xFF}, {0xFF}, {0xFF} + }, { // EVEN SO, {0x0C}, {0x0B}, {0x1A}, {0x33}, {0xFF}, {0xFF} + {0x1A}, {0x0B}, {0xFF}, {0xFF}, {0xFF}, {0xFF} + }, { // MUST BE + {0x29}, {0xFF}, {0xFF}, {0xFF}, {0xFF}, {0xFF} + }, { // NATURALLY + {0x0B}, {0x0B}, {0x11}, {0xFF}, {0xFF}, {0xFF} + }, { // FOR NOW, {0x1A}, {0x23}, {0xFF}, {0x33}, {0xFF}, {0xFF} + {0x11}, {0x29}, {0xFF}, {0xFF}, {0xFF}, {0xFF} + }, { // UNDERSTOOD + {0x0B}, {0x02}, {0x0B}, {0xFF}, {0xFF}, {0xFF} + }, { // JOKING + {0x0B}, {0x0B}, {0xFF}, {0xFF}, {0xFF}, {0xFF} + }, { // READY + {0x0B}, {0x0B}, {0x11}, {0xFF}, {0xFF}, {0xFF} + }, { // SOMETHING + {0x0B}, {0x02}, {0xFF}, {0xFF}, {0xFF}, {0xFF} + }, { // SOMEHOW + {0x11}, {0x0B}, {0x11}, {0x0B}, {0xFF}, {0xFF} + }, { // ALTHOUGH + {0x1A}, {0x1A}, {0xFF}, {0xFF}, {0xFF}, {0xFF} + }, { // ALSO + {0x02}, {0x1A}, {0xFF}, {0xFF}, {0xFF}, {0xFF} + }, { // PERFECT + {0x0B}, {0x0B}, {0xFF}, {0xFF}, {0xFF}, {0xFF} + }, { // AS MUCH AS + {0x1A}, {0x11}, {0x11}, {0xFF}, {0xFF}, {0xFF} + }, { // REALLY + {0x0B}, {0x11}, {0xFF}, {0xFF}, {0xFF}, {0xFF} + }, { // TRULY + {0x02}, {0x02}, {0x11}, {0xFF}, {0xFF}, {0xFF} + }, { // SERIOUSLY + {0x0B}, {0xFF}, {0xFF}, {0xFF}, {0xFF}, {0xFF} + }, { // TOTALLY + {0x1A}, {0xFF}, {0xFF}, {0xFF}, {0xFF}, {0xFF} + }, { // UNTIL + {0x11}, {0xFF}, {0xFF}, {0xFF}, {0xFF}, {0xFF} + }, { // AS IF + {0x02}, {0x1A}, {0xFF}, {0xFF}, {0xFF}, {0xFF} + }, { // MOOD + {0x02}, {0x29}, {0x0B}, {0xFF}, {0xFF}, {0xFF} + }, { // RATHER + {0x0B}, {0x0B}, {0xFF}, {0xFF}, {0xFF}, {0xFF} + }, { // AWFULLY + {0x29}, {0x02}, {0xFF}, {0xFF}, {0xFF}, {0xFF} + }, { // MODE + {0x0B}, {0x0B}, {0xFF}, {0xFF}, {0xFF}, {0xFF} + }, { // MORE + {0x0B}, {0xFF}, {0xFF}, {0xFF}, {0xFF}, {0xFF} + }, { // TOO LATE + {0x29}, {0x0B}, {0xFF}, {0xFF}, {0xFF}, {0xFF} + }, { // FINALLY + {0x0B}, {0x11}, {0xFF}, {0xFF}, {0xFF}, {0xFF} + }, { // ANY + {0x11}, {0x0B}, {0x0B}, {0x11}, {0xFF}, {0xFF} + }, { // INSTEAD + {0x02}, {0xFF}, {0xFF}, {0xFF}, {0xFF}, {0xFF} + }, { // FANTASTIC + {0x02}, {0x02}, {0x11}, {0xFF}, {0xFF}, {0xFF} + } +}; +#endif // ENGLISH/GERMAN + +#endif // GUARD_DATA_BARD_MUSIC_SPEECH_H diff --git a/src/data/bard_music/status.h b/src/data/bard_music/status.h new file mode 100644 index 000000000..62408c75f --- /dev/null +++ b/src/data/bard_music/status.h @@ -0,0 +1,450 @@ +#ifndef GUARD_DATA_BARD_MUSIC_STATUS_H +#define GUARD_DATA_BARD_MUSIC_STATUS_H + +#if ENGLISH +const struct BardSound gBardSounds_Status[][6] = { + { // DARK + {0x08}, {0x33}, {0x33}, {0xFF}, {0xFF}, {0xFF} + }, { // STENCH + {0x09}, {0x33}, {0x33}, {0xFF}, {0xFF}, {0xFF} + }, { // THICK FAT + {0x11}, {0x00}, {0x33}, {0xFF}, {0xFF}, {0xFF} + }, { // RAIN DISH + {0x03}, {0x11}, {0x33}, {0xFF}, {0xFF}, {0xFF} + }, { // DRIZZLE + {0x11}, {0x09}, {0x33}, {0xFF}, {0xFF}, {0xFF} + }, { // ARENA TRAP + {0x06}, {0x0C}, {0x06}, {0x00}, {0xFF}, {0xFF} + }, { // INTIMIDATE + {0x0F}, {0x11}, {0x2C}, {0x03}, {0xFF}, {0xFF} + }, { // ROCK HEAD + {0x15}, {0x09}, {0x33}, {0xFF}, {0xFF}, {0xFF} + }, { // COLOR + {0x2C}, {0x30}, {0x33}, {0xFF}, {0xFF}, {0xFF} + }, { // ALT. COLOR + {0x1B}, {0x32}, {0x01}, {0x2C}, {0x30}, {0xFF} + }, { // ROCK + {0x15}, {0x33}, {0x33}, {0xFF}, {0xFF}, {0xFF} + }, { // BEAUTIFUL + {0x27}, {0x0C}, {0x24}, {0xFF}, {0xFF}, {0xFF} + }, { // BEAUTY + {0x27}, {0x0C}, {0x33}, {0xFF}, {0xFF}, {0xFF} + }, { // AIR LOCK + {0x09}, {0x15}, {0x33}, {0xFF}, {0xFF}, {0xFF} + }, { // PSYCHIC + {0x12}, {0x11}, {0x33}, {0xFF}, {0xFF}, {0xFF} + }, { // HYPER CUTTER + {0x12}, {0x30}, {0x2C}, {0x30}, {0xFF}, {0xFF} + }, { // FIGHTING + {0x12}, {0x0C}, {0x33}, {0xFF}, {0xFF}, {0xFF} + }, { // SHADOW TAG + {0x00}, {0x18}, {0x00}, {0xFF}, {0xFF}, {0xFF} + }, { // SMART + {0x06}, {0x32}, {0x33}, {0xFF}, {0xFF}, {0xFF} + }, { // SMARTNESS + {0x06}, {0x32}, {0x09}, {0xFF}, {0xFF}, {0xFF} + }, { // SPEED BOOST + {0x0C}, {0x27}, {0x33}, {0xFF}, {0xFF}, {0xFF} + }, { // COOL + {0x29}, {0x33}, {0x33}, {0xFF}, {0xFF}, {0xFF} + }, { // COOLNESS + {0x29}, {0x09}, {0x33}, {0xFF}, {0xFF}, {0xFF} + }, { // BATTLE ARMOR + {0x00}, {0x09}, {0x06}, {0x30}, {0xFF}, {0xFF} + }, { // CUTE + {0x2D}, {0x33}, {0x33}, {0xFF}, {0xFF}, {0xFF} + }, { // CUTENESS + {0x2D}, {0x09}, {0x33}, {0xFF}, {0xFF}, {0xFF} + }, { // STURDY + {0x30}, {0x0C}, {0x33}, {0xFF}, {0xFF}, {0xFF} + }, { // SUCTION CUPS + {0x2A}, {0x0F}, {0x2A}, {0x33}, {0x33}, {0xFF} + }, { // GRASS + {0x00}, {0x33}, {0x33}, {0xFF}, {0xFF}, {0xFF} + }, { // CLEAR BODY + {0x0E}, {0x17}, {0x0C}, {0xFF}, {0xFF}, {0xFF} + }, { // TORRENT + {0x1A}, {0x09}, {0x33}, {0xFF}, {0xFF}, {0xFF} + }, { // GHOST + {0x15}, {0x30}, {0x33}, {0xFF}, {0xFF}, {0xFF} + }, { // ICE + {0x12}, {0x33}, {0x33}, {0xFF}, {0xFF}, {0xFF} + }, { // GUTS + {0x2C}, {0x33}, {0x33}, {0xFF}, {0xFF}, {0xFF} + }, { // ROUGH SKIN + {0x2C}, {0x0F}, {0x33}, {0xFF}, {0xFF}, {0xFF} + }, { // SHELL ARMOR + {0x09}, {0x06}, {0x30}, {0x33}, {0xFF}, {0xFF} + }, { // NATURAL CURE + {0x00}, {0x32}, {0x08}, {0x30}, {0x33}, {0xFF} + }, { // DAMP + {0x00}, {0x33}, {0x33}, {0xFF}, {0xFF}, {0xFF} + }, { // GROUND + {0x21}, {0x33}, {0x33}, {0xFF}, {0xFF}, {0xFF} + }, { // LIMBER + {0x0F}, {0x30}, {0x33}, {0xFF}, {0xFF}, {0xFF} + }, { // MAGNET PULL + {0x00}, {0x09}, {0x2C}, {0x33}, {0xFF}, {0xFF} + }, { // WHITE SMOKE + {0x12}, {0x18}, {0x33}, {0xFF}, {0xFF}, {0xFF} + }, { // SYNCHRONIZE + {0x0F}, {0x18}, {0x12}, {0x33}, {0xFF}, {0xFF} + }, { // OVERGROW + {0x18}, {0x30}, {0x18}, {0xFF}, {0xFF}, {0xFF} + }, { // SWIFT SWIM + {0x11}, {0x0F}, {0x33}, {0xFF}, {0xFF}, {0xFF} + }, { // SAND STREAM + {0x02}, {0x0E}, {0x33}, {0xFF}, {0xFF}, {0xFF} + }, { // SAND VEIL + {0x02}, {0x03}, {0x33}, {0xFF}, {0xFF}, {0xFF} + }, { // KEEN EYE + {0x0C}, {0x12}, {0x33}, {0xFF}, {0xFF}, {0xFF} + }, { // INNERFOCUS + {0x0F}, {0x30}, {0x18}, {0x2A}, {0xFF}, {0xFF} + }, { // STATIC + {0x00}, {0x11}, {0x33}, {0xFF}, {0xFF}, {0xFF} + }, { // TYPE + {0x12}, {0x33}, {0x33}, {0xFF}, {0xFF}, {0xFF} + }, { // TOUGH + {0x2C}, {0x33}, {0x33}, {0xFF}, {0xFF}, {0xFF} + }, { // TOUGHNESS + {0x2C}, {0x0B}, {0x33}, {0xFF}, {0xFF}, {0xFF} + }, { // SHED SKIN + {0x09}, {0x0F}, {0x33}, {0xFF}, {0xFF}, {0xFF} + }, { // HUGE POWER + {0x2D}, {0x21}, {0x30}, {0xFF}, {0xFF}, {0xFF} + }, { // VOLT ABSORB + {0x24}, {0x2C}, {0x1A}, {0xFF}, {0xFF}, {0xFF} + }, { // WATER ABSORB + {0x06}, {0x30}, {0x2C}, {0x1A}, {0xFF}, {0xFF} + }, { // ELECTRIC + {0x0B}, {0x09}, {0x11}, {0xFF}, {0xFF}, {0xFF} + }, { // FORECAST + {0x1A}, {0x02}, {0x33}, {0xFF}, {0xFF}, {0xFF} + }, { // SERENE GRACE + {0x30}, {0x0E}, {0x03}, {0x33}, {0xFF}, {0xFF} + }, { // POISON + {0x20}, {0x1B}, {0x33}, {0xFF}, {0xFF}, {0xFF} + }, { // POISON POINT + {0x20}, {0x1B}, {0x1E}, {0xFF}, {0xFF}, {0xFF} + }, { // DRAGON + {0x01}, {0x1B}, {0x33}, {0xFF}, {0xFF}, {0xFF} + }, { // TRACE + {0x04}, {0x33}, {0x33}, {0xFF}, {0xFF}, {0xFF} + }, { // OBLIVIOUS + {0x2C}, {0x11}, {0x0C}, {0x2C}, {0x33}, {0xFF} + }, { // TRUANT + {0x27}, {0x00}, {0x33}, {0xFF}, {0xFF}, {0xFF} + }, { // RUN AWAY + {0x2A}, {0x08}, {0x05}, {0xFF}, {0xFF}, {0xFF} + }, { // STICKY HOLD + {0x11}, {0x0C}, {0x18}, {0xFF}, {0xFF}, {0xFF} + }, { // CLOUD NINE + {0x21}, {0x12}, {0x33}, {0xFF}, {0xFF}, {0xFF} + }, { // NORMAL + {0x1A}, {0x2C}, {0x33}, {0xFF}, {0xFF}, {0xFF} + }, { // STEEL + {0x0E}, {0x33}, {0x33}, {0xFF}, {0xFF}, {0xFF} + }, { // ILLUMINATE + {0x11}, {0x27}, {0x0F}, {0x03}, {0xFF}, {0xFF} + }, { // EARLY BIRD + {0x30}, {0x0C}, {0x30}, {0xFF}, {0xFF}, {0xFF} + }, { // HUSTLE + {0x2A}, {0x26}, {0xFF}, {0xFF}, {0xFF}, {0xFF} + }, { // SHINE + {0x12}, {0x33}, {0x33}, {0xFF}, {0xFF}, {0xFF} + }, { // FLYING + {0x12}, {0x0E}, {0x33}, {0xFF}, {0xFF}, {0xFF} + }, { // DROUGHT + {0x21}, {0x33}, {0x33}, {0xFF}, {0xFF}, {0xFF} + }, { // LIGHTNINGROD + {0x12}, {0x11}, {0x15}, {0xFF}, {0xFF}, {0xFF} + }, { // COMPOUNDEYES + {0x15}, {0x21}, {0x12}, {0x33}, {0xFF}, {0xFF} + }, { // MARVEL SCALE + {0x06}, {0x24}, {0x05}, {0xFF}, {0xFF}, {0xFF} + }, { // WONDER GUARD + {0x2A}, {0x30}, {0x06}, {0xFF}, {0xFF}, {0xFF} + }, { // INSOMNIA + {0x0F}, {0x15}, {0x0C}, {0x06}, {0xFF}, {0xFF} + }, { // LEVITATE + {0x09}, {0x0C}, {0x03}, {0xFF}, {0xFF}, {0xFF} + }, { // PLUS + {0x2A}, {0x33}, {0x33}, {0xFF}, {0xFF}, {0xFF} + }, { // PRESSURE + {0x09}, {0x30}, {0x33}, {0xFF}, {0xFF}, {0xFF} + }, { // LIQUID OOZE + {0x11}, {0x09}, {0x27}, {0xFF}, {0xFF}, {0xFF} + }, { // COLOR CHANGE + {0x17}, {0x30}, {0x03}, {0x33}, {0xFF}, {0xFF} + }, { // SOUNDPROOF + {0x21}, {0x27}, {0x33}, {0xFF}, {0xFF}, {0xFF} + }, { // EFFECT SPORE + {0x0C}, {0x09}, {0x1A}, {0x33}, {0xFF}, {0xFF} + }, { // PKRS + {0x18}, {0x0C}, {0x2A}, {0xFF}, {0xFF}, {0xFF} + }, { // FIRE + {0x14}, {0x30}, {0x33}, {0xFF}, {0xFF}, {0xFF} + }, { // FLAME BODY + {0x03}, {0x15}, {0x0C}, {0xFF}, {0xFF}, {0xFF} + }, { // MINUS + {0x12}, {0x2A}, {0x33}, {0xFF}, {0xFF}, {0xFF} + }, { // OWN TEMPO + {0x18}, {0x09}, {0x18}, {0xFF}, {0xFF}, {0xFF} + }, { // MAGMA ARMOR + {0x01}, {0x2C}, {0x1B}, {0x30}, {0xFF}, {0xFF} + }, { // WATER + {0x06}, {0x30}, {0x33}, {0xFF}, {0xFF}, {0xFF} + }, { // WATER VEIL + {0x06}, {0x30}, {0x04}, {0x33}, {0xFF}, {0xFF} + }, { // BUG + {0x2A}, {0x33}, {0x33}, {0xFF}, {0xFF}, {0xFF} + }, { // SWARM + {0x07}, {0x33}, {0x33}, {0xFF}, {0xFF}, {0xFF} + }, { // CUTE CHARM + {0x2D}, {0x07}, {0x33}, {0xFF}, {0xFF}, {0xFF} + }, { // IMMUNITY + {0x11}, {0x27}, {0x11}, {0x0C}, {0xFF}, {0xFF} + }, { // BLAZE + {0x03}, {0x33}, {0x33}, {0xFF}, {0xFF}, {0xFF} + }, { // PICKUP + {0x11}, {0x2A}, {0x33}, {0xFF}, {0xFF}, {0xFF} + }, { // PATTERN + {0x00}, {0x30}, {0x33}, {0xFF}, {0xFF}, {0xFF} + }, { // FLASH FIRE + {0x00}, {0x14}, {0x30}, {0xFF}, {0xFF}, {0xFF} + }, { // VITAL SPIRIT + {0x12}, {0x1B}, {0x30}, {0x11}, {0xFF}, {0xFF} + }, { // CHLOROPHYLL + {0x1A}, {0x2C}, {0x11}, {0x33}, {0xFF}, {0xFF} + }, { // PURE POWER + {0x2D}, {0x21}, {0x30}, {0x33}, {0xFF}, {0xFF} + }, { // SHIELD DUST + {0x0E}, {0x2B}, {0x33}, {0xFF}, {0xFF}, {0xFF} + } +}; +#elif GERMAN +const struct BardSound gBardSounds_Status[][6] = { + { // DARK + {0x29}, {0x11}, {0xFF}, {0xFF}, {0xFF}, {0xFF} + }, { // STENCH + {0x29}, {0x1A}, {0x0B}, {0xFF}, {0xFF}, {0xFF} + }, { // THICK FAT + {0x0B}, {0x11}, {0xFF}, {0xFF}, {0xFF}, {0xFF} + }, { // RAIN DISH + {0x0B}, {0x0B}, {0x0B}, {0xFF}, {0xFF}, {0xFF} + }, { // DRIZZLE + {0x11}, {0x0B}, {0x0B}, {0xFF}, {0xFF}, {0xFF} + }, { // ARENA TRAP + {0x02}, {0x0B}, {0x1A}, {0xFF}, {0xFF}, {0xFF} + }, { // INTIMIDATE + {0x0B}, {0x1A}, {0x0B}, {0xFF}, {0xFF}, {0xFF} + }, { // ROCK HEAD + {0x0B}, {0x11}, {0x02}, {0x29}, {0xFF}, {0xFF} + }, { // COLOR + {0x02}, {0x0B}, {0xFF}, {0xFF}, {0xFF}, {0xFF} + }, { // ALT. COLOR + {0x02}, {0x0B}, {0x02}, {0x0B}, {0xFF}, {0xFF} + }, { // ROCK + {0x0B}, {0x0B}, {0x11}, {0xFF}, {0xFF}, {0xFF} + }, { // BEAUTIFUL + {0x0B}, {0xFF}, {0xFF}, {0xFF}, {0xFF}, {0xFF} + }, { // BEAUTY + {0x0B}, {0x0B}, {0x11}, {0xFF}, {0xFF}, {0xFF} + }, { // AIR LOCK + {0x11}, {0x02}, {0x29}, {0xFF}, {0xFF}, {0xFF} + }, { // PSYCHIC + {0x11}, {0x1A}, {0xFF}, {0xFF}, {0xFF}, {0xFF} + }, { // HYPER CUTTER + {0x0B}, {0x0B}, {0x02}, {0xFF}, {0xFF}, {0xFF} + }, { // FIGHTING + {0x02}, {0xFF}, {0xFF}, {0xFF}, {0xFF}, {0xFF} + }, { // SHADOW TAG + {0x0B}, {0x0B}, {0x0B}, {0xFF}, {0xFF}, {0xFF} + }, { // SMART + {0x29}, {0xFF}, {0xFF}, {0xFF}, {0xFF}, {0xFF} + }, { // SMARTNESS + {0x29}, {0x0B}, {0x11}, {0xFF}, {0xFF}, {0xFF} + }, { // SPEED BOOST + {0x0B}, {0x1A}, {0x29}, {0xFF}, {0xFF}, {0xFF} + }, { // COOL + {0x29}, {0x29}, {0xFF}, {0xFF}, {0xFF}, {0xFF} + }, { // COOLNESS + {0x29}, {0x29}, {0x0B}, {0xFF}, {0xFF}, {0xFF} + }, { // BATTLE ARMOR + {0x02}, {0x02}, {0x0B}, {0xFF}, {0xFF}, {0xFF} + }, { // CUTE + {0x02}, {0x29}, {0x11}, {0xFF}, {0xFF}, {0xFF} + }, { // CUTENESS + {0x02}, {0x29}, {0xFF}, {0xFF}, {0xFF}, {0xFF} + }, { // STURDY + {0x1A}, {0x29}, {0x0B}, {0x11}, {0xFF}, {0xFF} + }, { // SUCTION CUPS + {0x02}, {0x29}, {0x02}, {0xFF}, {0xFF}, {0xFF} + }, { // GRASS + {0x02}, {0x0B}, {0xFF}, {0xFF}, {0xFF}, {0xFF} + }, { // CLEAR BODY + {0x0B}, {0x29}, {0x02}, {0x1A}, {0x1A}, {0xFF} + }, { // TORRENT + {0x29}, {0x02}, {0xFF}, {0xFF}, {0xFF}, {0xFF} + }, { // GHOST + {0x02}, {0x1A}, {0x1A}, {0xFF}, {0xFF}, {0xFF} + }, { // ICE + {0x0B}, {0x11}, {0xFF}, {0xFF}, {0xFF}, {0xFF} + }, { // GUTS + {0x02}, {0x0B}, {0x02}, {0x11}, {0xFF}, {0xFF} + }, { // ROUGH SKIN + {0x02}, {0x29}, {0x02}, {0x29}, {0xFF}, {0xFF} + }, { // SHELL ARMOR + {0x02}, {0x0B}, {0x02}, {0x29}, {0xFF}, {0xFF} + }, { // NATURAL CURE + {0x11}, {0x0B}, {0x0B}, {0x02}, {0xFF}, {0xFF} + }, { // DAMP + {0x0B}, {0x29}, {0x11}, {0x0B}, {0x11}, {0xFF} + }, { // GROUND + {0x1A}, {0xFF}, {0xFF}, {0xFF}, {0xFF}, {0xFF} + }, { // LIMBER + {0x0B}, {0x11}, {0x11}, {0x11}, {0x0B}, {0xFF} + }, { // MAGNET PULL + {0x02}, {0x0B}, {0x0B}, {0x0B}, {0xFF}, {0xFF} + }, { // WHITE SMOKE + {0x29}, {0x0B}, {0x02}, {0x29}, {0xFF}, {0xFF} + }, { // SYNCHRONIZE + {0x11}, {0x1A}, {0xFF}, {0xFF}, {0xFF}, {0xFF} + }, { // OVERGROW + {0x1A}, {0x11}, {0xFF}, {0xFF}, {0xFF}, {0xFF} + }, { // SWIFT SWIM + {0x02}, {0x0B}, {0x0B}, {0x1A}, {0xFF}, {0xFF} + }, { // SAND STREAM + {0x02}, {0x29}, {0xFF}, {0xFF}, {0xFF}, {0xFF} + }, { // SAND VEIL + {0x02}, {0x0B}, {0x11}, {0x0B}, {0xFF}, {0xFF} + }, { // KEEN EYE + {0x02}, {0x0B}, {0x02}, {0x29}, {0x0B}, {0xFF} + }, { // INNERFOCUS + {0x1A}, {0x0B}, {0x02}, {0x1A}, {0xFF}, {0xFF} + }, { // STATIC + {0x02}, {0x11}, {0xFF}, {0xFF}, {0xFF}, {0xFF} + }, { // TYPE + {0x11}, {0xFF}, {0xFF}, {0xFF}, {0xFF}, {0xFF} + }, { // TOUGH + {0x02}, {0xFF}, {0xFF}, {0xFF}, {0xFF}, {0xFF} + }, { // TOUGHNESS + {0x0B}, {0x0B}, {0xFF}, {0xFF}, {0xFF}, {0xFF} + }, { // SHED SKIN + {0x0B}, {0x11}, {0x0B}, {0x11}, {0xFF}, {0xFF} + }, { // HUGE POWER + {0x02}, {0x1A}, {0x1A}, {0xFF}, {0xFF}, {0xFF} + }, { // VOLT ABSORB + {0x1A}, {0x02}, {0x1A}, {0x0B}, {0xFF}, {0xFF} + }, { // WATER ABSORB + {0x02}, {0x0B}, {0x11}, {0x1A}, {0x02}, {0x1A} + }, { // ELECTRIC + {0x0B}, {0x0B}, {0x1A}, {0xFF}, {0xFF}, {0xFF} + }, { // FORECAST + {0x1A}, {0x1A}, {0x0B}, {0xFF}, {0xFF}, {0xFF} + }, { // SERENE GRACE + {0x0B}, {0x0B}, {0x29}, {0xFF}, {0xFF}, {0xFF} + }, { // POISON + {0x11}, {0xFF}, {0xFF}, {0xFF}, {0xFF}, {0xFF} + }, { // POISON POINT + {0x11}, {0x1A}, {0xFF}, {0xFF}, {0xFF}, {0xFF} + }, { // DRAGON + {0x02}, {0x0B}, {0xFF}, {0xFF}, {0xFF}, {0xFF} + }, { // TRACE + {0x0B}, {0x0B}, {0xFF}, {0xFF}, {0xFF}, {0xFF} + }, { // OBLIVIOUS + {0x0B}, {0x11}, {0x0B}, {0x11}, {0xFF}, {0xFF} + }, { // TRUANT + {0x02}, {0x02}, {0x0B}, {0xFF}, {0xFF}, {0xFF} + }, { // RUN AWAY + {0x02}, {0x02}, {0x0B}, {0xFF}, {0xFF}, {0xFF} + }, { // STICKY HOLD + {0x0B}, {0x0B}, {0x02}, {0x0B}, {0xFF}, {0xFF} + }, { // CLOUD NINE + {0x1A}, {0x0B}, {0x11}, {0x0B}, {0xFF}, {0xFF} + }, { // NORMAL + {0x1A}, {0x02}, {0xFF}, {0xFF}, {0xFF}, {0xFF} + }, { // STEEL + {0x02}, {0x02}, {0xFF}, {0xFF}, {0xFF}, {0xFF} + }, { // ILLUMINATE + {0x0B}, {0x0B}, {0x29}, {0x29}, {0xFF}, {0xFF} + }, { // EARLY BIRD + {0x11}, {0x0B}, {0x0B}, {0xFF}, {0xFF}, {0xFF} + }, { // HUSTLE + {0x11}, {0x0B}, {0x0B}, {0x11}, {0x0B}, {0xFF} + }, { // SHINE + {0x0B}, {0x11}, {0x0B}, {0xFF}, {0xFF}, {0xFF} + }, { // FLYING + {0x11}, {0x0B}, {0x0B}, {0xFF}, {0xFF}, {0xFF} + }, { // DROUGHT + {0x11}, {0x0B}, {0xFF}, {0xFF}, {0xFF}, {0xFF} + }, { // LIGHTNINGROD + {0x11}, {0x0B}, {0x0B}, {0xFF}, {0xFF}, {0xFF} + }, { // COMPOUNDEYES + {0x02}, {0x0B}, {0x0B}, {0x02}, {0x29}, {0xFF} + }, { // MARVEL SCALE + {0x1A}, {0x29}, {0xFF}, {0xFF}, {0xFF}, {0xFF} + }, { // WONDER GUARD + {0x29}, {0x0B}, {0x02}, {0x0B}, {0xFF}, {0xFF} + }, { // INSOMNIA + {0x11}, {0x1A}, {0x11}, {0x02}, {0xFF}, {0xFF} + }, { // LEVITATE + {0x0B}, {0x0B}, {0xFF}, {0xFF}, {0xFF}, {0xFF} + }, { // PLUS + {0x29}, {0xFF}, {0xFF}, {0xFF}, {0xFF}, {0xFF} + }, { // PRESSURE + {0x0B}, {0x11}, {0x0B}, {0xFF}, {0xFF}, {0xFF} + }, { // LIQUID OOZE + {0x1A}, {0x02}, {0x0B}, {0x1A}, {0x0B}, {0xFF} + }, { // COLOR CHANGE + {0x02}, {0x0B}, {0x0B}, {0xFF}, {0xFF}, {0xFF} + }, { // SOUNDPROOF + {0x0B}, {0x29}, {0xFF}, {0xFF}, {0xFF}, {0xFF} + }, { // EFFECT SPORE + {0x1A}, {0x0B}, {0x11}, {0xFF}, {0xFF}, {0xFF} + }, { // PKRS + {0x1A}, {0x0B}, {0x29}, {0xFF}, {0xFF}, {0xFF} + }, { // FIRE + {0x0B}, {0x29}, {0x0B}, {0xFF}, {0xFF}, {0xFF} + }, { // FLAME BODY + {0x02}, {0x0B}, {0x0B}, {0xFF}, {0xFF}, {0xFF} + }, { // MINUS + {0x11}, {0x29}, {0xFF}, {0xFF}, {0xFF}, {0xFF} + }, { // OWN TEMPO + {0x0B}, {0x1A}, {0x02}, {0x0B}, {0xFF}, {0xFF} + }, { // MAGMA ARMOR + {0x02}, {0x02}, {0x02}, {0x0B}, {0xFF}, {0xFF} + }, { // WATER + {0x02}, {0x0B}, {0xFF}, {0xFF}, {0xFF}, {0xFF} + }, { // WATER VEIL + {0x02}, {0x02}, {0x11}, {0x0B}, {0xFF}, {0xFF} + }, { // BUG + {0x0B}, {0x0B}, {0xFF}, {0xFF}, {0xFF}, {0xFF} + }, { // SWARM + {0x0B}, {0x02}, {0x02}, {0x02}, {0xFF}, {0xFF} + }, { // CUTE CHARM + {0x02}, {0x1A}, {0x0B}, {0xFF}, {0xFF}, {0xFF} + }, { // IMMUNITY + {0x11}, {0x29}, {0x11}, {0x0B}, {0xFF}, {0xFF} + }, { // BLAZE + {0x1A}, {0x02}, {0xFF}, {0xFF}, {0xFF}, {0xFF} + }, { // PICKUP + {0x11}, {0x02}, {0x0B}, {0xFF}, {0xFF}, {0xFF} + }, { // PATTERN + {0x29}, {0x0B}, {0xFF}, {0xFF}, {0xFF}, {0xFF} + }, { // FLASH FIRE + {0x0B}, {0x29}, {0x0B}, {0x0B}, {0xFF}, {0xFF} + }, { // VITAL SPIRIT + {0x29}, {0x0B}, {0x0B}, {0x11}, {0xFF}, {0xFF} + }, { // CHLOROPHYLL + {0x1A}, {0x1A}, {0x11}, {0xFF}, {0xFF}, {0xFF} + }, { // PURE POWER + {0x0B}, {0x02}, {0x02}, {0xFF}, {0xFF}, {0xFF} + }, { // SHIELD DUST + {0x29}, {0x0B}, {0x02}, {0x0B}, {0xFF}, {0xFF} + } +}; +#endif // ENGLISH/GERMAN + +#endif // GUARD_DATA_BARD_MUSIC_STATUS_H diff --git a/src/data/bard_music/time.h b/src/data/bard_music/time.h new file mode 100644 index 000000000..b1d1cdbac --- /dev/null +++ b/src/data/bard_music/time.h @@ -0,0 +1,194 @@ +#ifndef GUARD_DATA_BARD_MUSIC_TIME_H +#define GUARD_DATA_BARD_MUSIC_TIME_H + +#if ENGLISH +const struct BardSound gBardSounds_Time[][6] = { + { // FALL + {0x1B}, {0x33}, {0x33}, {0xFF}, {0xFF}, {0xFF} + }, { // MORNING + {0x1A}, {0x0C}, {0x33}, {0xFF}, {0xFF}, {0xFF} + }, { // TOMORROW + {0x27}, {0x1C}, {0x1A}, {0xFF}, {0xFF}, {0xFF} + }, { // LAST + {0x02}, {0x33}, {0x33}, {0xFF}, {0xFF}, {0xFF} + }, { // DAY + {0x05}, {0x33}, {0x33}, {0xFF}, {0xFF}, {0xFF} + }, { // SOMETIME + {0x2C}, {0x14}, {0x33}, {0xFF}, {0xFF}, {0xFF} + }, { // ALWAYS + {0x1B}, {0x0C}, {0x33}, {0xFF}, {0xFF}, {0xFF} + }, { // CURRENT + {0x09}, {0x0F}, {0x33}, {0xFF}, {0xFF}, {0xFF} + }, { // FOREVER + {0x18}, {0x09}, {0x2C}, {0xFF}, {0xFF}, {0xFF} + }, { // DAYS + {0x05}, {0x33}, {0x33}, {0xFF}, {0xFF}, {0xFF} + }, { // END + {0x0B}, {0x33}, {0x33}, {0xFF}, {0xFF}, {0xFF} + }, { // TUESDAY + {0x27}, {0x05}, {0x33}, {0xFF}, {0xFF}, {0xFF} + }, { // YESTERDAY + {0x0B}, {0x32}, {0x05}, {0xFF}, {0xFF}, {0xFF} + }, { // TODAY + {0x27}, {0x05}, {0x33}, {0xFF}, {0xFF}, {0xFF} + }, { // FRIDAY + {0x12}, {0x05}, {0x33}, {0xFF}, {0xFF}, {0xFF} + }, { // MONDAY + {0x2C}, {0x05}, {0x33}, {0xFF}, {0xFF}, {0xFF} + }, { // LATER + {0x05}, {0x32}, {0x33}, {0xFF}, {0xFF}, {0xFF} + }, { // EARLIER + {0x30}, {0x0C}, {0x32}, {0xFF}, {0xFF}, {0xFF} + }, { // ANOTHER + {0x2A}, {0x2C}, {0x32}, {0xFF}, {0xFF}, {0xFF} + }, { // TIME + {0x14}, {0x33}, {0x33}, {0xFF}, {0xFF}, {0xFF} + }, { // FINISH + {0x0F}, {0x11}, {0x33}, {0xFF}, {0xFF}, {0xFF} + }, { // WEDNESDAY + {0x0A}, {0x05}, {0x33}, {0xFF}, {0xFF}, {0xFF} + }, { // SOON + {0x28}, {0x33}, {0x33}, {0xFF}, {0xFF}, {0xFF} + }, { // START + {0x17}, {0x2A}, {0x33}, {0xFF}, {0xFF}, {0xFF} + }, { // MONTH + {0x2C}, {0x33}, {0x33}, {0xFF}, {0xFF}, {0xFF} + }, { // STOP + {0x1D}, {0x33}, {0x33}, {0xFF}, {0xFF}, {0xFF} + }, { // NOW + {0x21}, {0x33}, {0x33}, {0xFF}, {0xFF}, {0xFF} + }, { // FINAL + {0x12}, {0x24}, {0x33}, {0xFF}, {0xFF}, {0xFF} + }, { // NEXT + {0x09}, {0x33}, {0x33}, {0xFF}, {0xFF}, {0xFF} + }, { // AGE + {0x05}, {0x33}, {0x33}, {0xFF}, {0xFF}, {0xFF} + }, { // SATURDAY + {0x00}, {0x30}, {0x05}, {0xFF}, {0xFF}, {0xFF} + }, { // SUMMER + {0x2C}, {0x30}, {0x33}, {0xFF}, {0xFF}, {0xFF} + }, { // SUNDAY + {0x2C}, {0x05}, {0x33}, {0xFF}, {0xFF}, {0xFF} + }, { // BEGINNING + {0x0E}, {0x0F}, {0x0C}, {0x33}, {0xFF}, {0xFF} + }, { // SPRING + {0x0C}, {0x33}, {0x33}, {0xFF}, {0xFF}, {0xFF} + }, { // DAYTIME + {0x05}, {0x12}, {0x33}, {0xFF}, {0xFF}, {0xFF} + }, { // WINTER + {0x0F}, {0x32}, {0x33}, {0xFF}, {0xFF}, {0xFF} + }, { // DAILY + {0x05}, {0x0E}, {0x33}, {0xFF}, {0xFF}, {0xFF} + }, { // OLDEN + {0x1A}, {0x0A}, {0x33}, {0xFF}, {0xFF}, {0xFF} + }, { // ALMOST + {0x1B}, {0x1A}, {0x33}, {0xFF}, {0xFF}, {0xFF} + }, { // NEARLY + {0x0E}, {0x0E}, {0x33}, {0xFF}, {0xFF}, {0xFF} + }, { // THURSDAY + {0x30}, {0x05}, {0x33}, {0xFF}, {0xFF}, {0xFF} + }, { // NIGHTTIME + {0x14}, {0x12}, {0x33}, {0xFF}, {0xFF}, {0xFF} + }, { // NIGHT + {0x14}, {0x33}, {0x33}, {0xFF}, {0xFF}, {0xFF} + }, { // WEEK + {0x0E}, {0x33}, {0x33}, {0xFF}, {0xFF}, {0xFF} + } +}; +#elif GERMAN +const struct BardSound gBardSounds_Time[][6] = { + { // FALL + {0x0B}, {0xFF}, {0xFF}, {0xFF}, {0xFF}, {0xFF} + }, { // MORNING + {0x1A}, {0x0B}, {0xFF}, {0xFF}, {0xFF}, {0xFF} + }, { // TOMORROW + {0x11}, {0x0B}, {0x1A}, {0x0B}, {0xFF}, {0xFF} + }, { // LAST + {0x0B}, {0x0B}, {0xFF}, {0xFF}, {0xFF}, {0xFF} + }, { // DAY + {0x02}, {0xFF}, {0xFF}, {0xFF}, {0xFF}, {0xFF} + }, { // SOMETIME + {0x11}, {0x0B}, {0x02}, {0xFF}, {0xFF}, {0xFF} + }, { // ALWAYS + {0x11}, {0x0B}, {0xFF}, {0xFF}, {0xFF}, {0xFF} + }, { // CURRENT + {0x1A}, {0x0B}, {0x02}, {0xFF}, {0xFF}, {0xFF} + }, { // FOREVER + {0x0B}, {0x11}, {0xFF}, {0xFF}, {0xFF}, {0xFF} + }, { // DAYS + {0x02}, {0x0B}, {0xFF}, {0xFF}, {0xFF}, {0xFF} + }, { // END + {0x0B}, {0x0B}, {0xFF}, {0xFF}, {0xFF}, {0xFF} + }, { // TUESDAY + {0x11}, {0x02}, {0xFF}, {0xFF}, {0xFF}, {0xFF} + }, { // YESTERDAY + {0x0B}, {0x0B}, {0xFF}, {0xFF}, {0xFF}, {0xFF} + }, { // TODAY + {0x0B}, {0x29}, {0x0B}, {0xFF}, {0xFF}, {0xFF} + }, { // FRIDAY + {0x0B}, {0x11}, {0x02}, {0xFF}, {0xFF}, {0xFF} + }, { // MONDAY + {0x1A}, {0x02}, {0xFF}, {0xFF}, {0xFF}, {0xFF} + }, { // LATER + {0x0B}, {0x0B}, {0xFF}, {0xFF}, {0xFF}, {0xFF} + }, { // EARLIER + {0x11}, {0x0B}, {0xFF}, {0xFF}, {0xFF}, {0xFF} + }, { // ANOTHER + {0x02}, {0x02}, {0x0B}, {0x0B}, {0xFF}, {0xFF} + }, { // TIME + {0x0B}, {0x11}, {0xFF}, {0xFF}, {0xFF}, {0xFF} + }, { // FINISH + {0x29}, {0xFF}, {0xFF}, {0xFF}, {0xFF}, {0xFF} + }, { // WEDNESDAY + {0x11}, {0x1A}, {0xFF}, {0xFF}, {0xFF}, {0xFF} + }, { // SOON + {0x02}, {0xFF}, {0xFF}, {0xFF}, {0xFF}, {0xFF} + }, { // START + {0x02}, {0xFF}, {0xFF}, {0xFF}, {0xFF}, {0xFF} + }, { // MONTH + {0x1A}, {0x02}, {0xFF}, {0xFF}, {0xFF}, {0xFF} + }, { // STOP + {0x1A}, {0xFF}, {0xFF}, {0xFF}, {0xFF}, {0xFF} + }, { // NOW + {0x0B}, {0xFF}, {0xFF}, {0xFF}, {0xFF}, {0xFF} + }, { // FINAL + {0x0B}, {0x0B}, {0xFF}, {0xFF}, {0xFF}, {0xFF} + }, { // NEXT + {0x0B}, {0x0B}, {0xFF}, {0xFF}, {0xFF}, {0xFF} + }, { // AGE + {0x02}, {0x0B}, {0xFF}, {0xFF}, {0xFF}, {0xFF} + }, { // SATURDAY + {0x02}, {0x02}, {0xFF}, {0xFF}, {0xFF}, {0xFF} + }, { // SUMMER + {0x1A}, {0x0B}, {0xFF}, {0xFF}, {0xFF}, {0xFF} + }, { // SUNDAY + {0x1A}, {0x02}, {0xFF}, {0xFF}, {0xFF}, {0xFF} + }, { // BEGINNING + {0x02}, {0x02}, {0xFF}, {0xFF}, {0xFF}, {0xFF} + }, { // SPRING + {0x11}, {0x11}, {0xFF}, {0xFF}, {0xFF}, {0xFF} + }, { // DAYTIME + {0x02}, {0x0B}, {0x0B}, {0x11}, {0xFF}, {0xFF} + }, { // WINTER + {0x11}, {0x0B}, {0xFF}, {0xFF}, {0xFF}, {0xFF} + }, { // DAILY + {0x0B}, {0x11}, {0xFF}, {0xFF}, {0xFF}, {0xFF} + }, { // OLDEN + {0x02}, {0x02}, {0xFF}, {0xFF}, {0xFF}, {0xFF} + }, { // ALMOST + {0x02}, {0xFF}, {0xFF}, {0xFF}, {0xFF}, {0xFF} + }, { // NEARLY + {0x0B}, {0x11}, {0x02}, {0x0B}, {0xFF}, {0xFF} + }, { // THURSDAY + {0x1A}, {0x0B}, {0x02}, {0xFF}, {0xFF}, {0xFF} + }, { // NIGHTTIME + {0x0B}, {0x0B}, {0x11}, {0xFF}, {0xFF}, {0xFF} + }, { // NIGHT + {0x02}, {0xFF}, {0xFF}, {0xFF}, {0xFF}, {0xFF} + }, { // WEEK + {0x1A}, {0x0B}, {0xFF}, {0xFF}, {0xFF}, {0xFF} + } +}; +#endif // ENGLISH/GERMAN + +#endif // GUARD_DATA_BARD_MUSIC_TIME_H diff --git a/src/data/bard_music/trainer.h b/src/data/bard_music/trainer.h new file mode 100644 index 000000000..c77bffecb --- /dev/null +++ b/src/data/bard_music/trainer.h @@ -0,0 +1,90 @@ +#ifndef GUARD_DATA_BARD_MUSIC_TRAINER_H +#define GUARD_DATA_BARD_MUSIC_TRAINER_H + +#if ENGLISH +const struct BardSound gBardSounds_Trainer[][6] = { + { // I CHOOSE YOU + {0x12}, {0x27}, {0x2D}, {0xFF}, {0xFF}, {0xFF} + }, { // GOTCHA + {0x15}, {0x2A}, {0x33}, {0xFF}, {0xFF}, {0xFF} + }, { // TRADE + {0x03}, {0x33}, {0x33}, {0xFF}, {0xFF}, {0xFF} + }, { // SAPPHIRE + {0x00}, {0x12}, {0x32}, {0xFF}, {0xFF}, {0xFF} + }, { // EVOLVE + {0x0C}, {0x1B}, {0x33}, {0xFF}, {0xFF}, {0xFF} + }, { // ENCYCLOPEDIA + {0x09}, {0x12}, {0x18}, {0x0C}, {0x0C}, {0x06} + }, { // NATURE + {0x03}, {0x30}, {0xFF}, {0xFF}, {0xFF}, {0xFF} + }, { // CENTER + {0x09}, {0x30}, {0x33}, {0xFF}, {0xFF}, {0xFF} + }, { // EGG + {0x09}, {0x33}, {0x33}, {0xFF}, {0xFF}, {0xFF} + }, { // LINK + {0x0C}, {0x33}, {0x33}, {0xFF}, {0xFF}, {0xFF} + }, { // SP. ABILITY + {0x09}, {0x08}, {0x06}, {0x11}, {0x11}, {0x0C} + }, { // TRAINER + {0x03}, {0x30}, {0x33}, {0xFF}, {0xFF}, {0xFF} + }, { // VERSION + {0x32}, {0x0F}, {0x33}, {0xFF}, {0xFF}, {0xFF} + }, { // POKéNAV + {0x18}, {0x0C}, {0x00}, {0xFF}, {0xFF}, {0xFF} + }, { // POKéMON + {0x18}, {0x0C}, {0x1B}, {0xFF}, {0xFF}, {0xFF} + }, { // GET + {0x09}, {0x33}, {0x33}, {0xFF}, {0xFF}, {0xFF} + }, { // POKéDEX + {0x18}, {0x0C}, {0x09}, {0xFF}, {0xFF}, {0xFF} + }, { // RUBY + {0x27}, {0x0C}, {0x33}, {0xFF}, {0xFF}, {0xFF} + }, { // LEVEL + {0x09}, {0x09}, {0x33}, {0xFF}, {0xFF}, {0xFF} + } +}; +#elif GERMAN +const struct BardSound gBardSounds_Trainer[][6] = { + { // I CHOOSE YOU + {0x29}, {0x11}, {0x02}, {0xFF}, {0xFF}, {0xFF} + }, { // GOTCHA + {0x02}, {0x11}, {0xFF}, {0xFF}, {0xFF}, {0xFF} + }, { // TRADE + {0x02}, {0x29}, {0xFF}, {0xFF}, {0xFF}, {0xFF} + }, { // SAPPHIRE + {0x02}, {0x11}, {0xFF}, {0xFF}, {0xFF}, {0xFF} + }, { // EVOLVE + {0x0B}, {0x11}, {0x0B}, {0xFF}, {0xFF}, {0xFF} + }, { // ENCYCLOPEDIA + {0x0B}, {0x11}, {0x1A}, {0x0B}, {0x11}, {0xFF} + }, { // NATURE + {0x0B}, {0x0B}, {0xFF}, {0xFF}, {0xFF}, {0xFF} + }, { // CENTER + {0x0B}, {0x0B}, {0xFF}, {0xFF}, {0xFF}, {0xFF} + }, { // EGG + {0x0B}, {0x11}, {0xFF}, {0xFF}, {0xFF}, {0xFF} + }, { // LINK + {0x11}, {0xFF}, {0xFF}, {0xFF}, {0xFF}, {0xFF} + }, { // SP. ABILITY + {0x0B}, {0x11}, {0x0B}, {0x11}, {0xFF}, {0xFF} + }, { // TRAINER + {0x02}, {0x11}, {0x0B}, {0xFF}, {0xFF}, {0xFF} + }, { // VERSION + {0x0B}, {0x11}, {0x1A}, {0xFF}, {0xFF}, {0xFF} + }, { // POKéNAV + {0x1A}, {0x0B}, {0x02}, {0xFF}, {0xFF}, {0xFF} + }, { // POKéMON + {0x1A}, {0x0B}, {0x1A}, {0xFF}, {0xFF}, {0xFF} + }, { // GET + {0x0B}, {0x1A}, {0x0B}, {0xFF}, {0xFF}, {0xFF} + }, { // POKéDEX + {0x1A}, {0x0B}, {0x0B}, {0xFF}, {0xFF}, {0xFF} + }, { // RUBY + {0x29}, {0x11}, {0xFF}, {0xFF}, {0xFF}, {0xFF} + }, { // LEVEL + {0x0B}, {0x0B}, {0xFF}, {0xFF}, {0xFF}, {0xFF} + } +}; +#endif // ENGLISH/GERMAN + +#endif // GUARD_DATA_BARD_MUSIC_TRAINER_H diff --git a/src/data/bard_music/trendysaying.h b/src/data/bard_music/trendysaying.h new file mode 100644 index 000000000..3bd1c7585 --- /dev/null +++ b/src/data/bard_music/trendysaying.h @@ -0,0 +1,146 @@ +#ifndef GUARD_DATA_BARD_MUSIC_TRENDYSAYING_H +#define GUARD_DATA_BARD_MUSIC_TRENDYSAYING_H + +#if ENGLISH +const struct BardSound gBardSounds_TrendySaying[][6] = { + { // KTHX, BYE. + {0x05}, {0x02}, {0x14}, {0x33}, {0xFF}, {0xFF} + }, { // YES, SIR! + {0x0B}, {0x30}, {0x33}, {0xFF}, {0xFF}, {0xFF} + }, { // AVANT GARDE + {0x1B}, {0x1B}, {0x17}, {0xFF}, {0xFF}, {0xFF} + }, { // COUPLE + {0x2C}, {0x26}, {0x33}, {0xFF}, {0xFF}, {0xFF} + }, { // MUCH OBLIGED + {0x2C}, {0x2C}, {0x12}, {0xFF}, {0xFF}, {0xFF} + }, { // YEEHAW! + {0x0D}, {0x1D}, {0x33}, {0x33}, {0xFF}, {0xFF} + }, { // MEGA + {0x05}, {0x2C}, {0x33}, {0xFF}, {0xFF}, {0xFF} + }, { // 1-HIT KO! + {0x2C}, {0x11}, {0x03}, {0x1A}, {0xFF}, {0xFF} + }, { // DESTINY + {0x0B}, {0x11}, {0x0E}, {0xFF}, {0xFF}, {0xFF} + }, { // CANCEL + {0x00}, {0x0B}, {0x33}, {0xFF}, {0xFF}, {0xFF} + }, { // NEW + {0x27}, {0x33}, {0x33}, {0xFF}, {0xFF}, {0xFF} + }, { // FLATTEN + {0x00}, {0x09}, {0x33}, {0xFF}, {0xFF}, {0xFF} + }, { // KIDDING + {0x11}, {0x0C}, {0x33}, {0xFF}, {0xFF}, {0xFF} + }, { // LOSER + {0x27}, {0x30}, {0x33}, {0xFF}, {0xFF}, {0xFF} + }, { // LOSING + {0x27}, {0x0C}, {0x33}, {0xFF}, {0xFF}, {0xFF} + }, { // HAPPENING + {0x00}, {0x2C}, {0x0E}, {0x33}, {0xFF}, {0xFF} + }, { // HIP AND + {0x11}, {0x01}, {0x33}, {0xFF}, {0xFF}, {0xFF} + }, { // SHAKE + {0x05}, {0x33}, {0x33}, {0xFF}, {0xFF}, {0xFF} + }, { // SHADY + {0x05}, {0x0C}, {0x33}, {0xFF}, {0xFF}, {0xFF} + }, { // UPBEAT + {0x2C}, {0x0E}, {0x33}, {0xFF}, {0xFF}, {0xFF} + }, { // MODERN + {0x1D}, {0x30}, {0x33}, {0xFF}, {0xFF}, {0xFF} + }, { // SMELL YA + {0x0A}, {0x2C}, {0x33}, {0xFF}, {0xFF}, {0xFF} + }, { // BANG + {0x03}, {0x33}, {0x33}, {0xFF}, {0xFF}, {0xFF} + }, { // KNOCKOUT + {0x1D}, {0x23}, {0x33}, {0xFF}, {0xFF}, {0xFF} + }, { // HASSLE + {0x2A}, {0x24}, {0x33}, {0xFF}, {0xFF}, {0xFF} + }, { // WINNER + {0x0F}, {0x30}, {0x33}, {0xFF}, {0xFF}, {0xFF} + }, { // FEVER + {0x0C}, {0x30}, {0x33}, {0xFF}, {0xFF}, {0xFF} + }, { // WANNABE + {0x1D}, {0x2C}, {0x0C}, {0xFF}, {0xFF}, {0xFF} + }, { // BABY + {0x05}, {0x0E}, {0x33}, {0xFF}, {0xFF}, {0xFF} + }, { // HEART + {0x1C}, {0x33}, {0x33}, {0xFF}, {0xFF}, {0xFF} + }, { // OLD + {0x18}, {0x33}, {0x33}, {0xFF}, {0xFF}, {0xFF} + }, { // YOUNG + {0x2B}, {0x33}, {0x33}, {0xFF}, {0xFF}, {0xFF} + }, { // UGLY + {0x2A}, {0x0E}, {0x33}, {0xFF}, {0xFF}, {0xFF} + } +}; +#elif GERMAN +const struct BardSound gBardSounds_TrendySaying[][6] = { + { // KTHX, BYE. + {0x1A}, {0x29}, {0x11}, {0x02}, {0xFF}, {0xFF} + }, { // YES, SIR! + {0x0B}, {0x11}, {0x0B}, {0x11}, {0xFF}, {0xFF} + }, { // AVANT GARDE + {0x02}, {0x02}, {0x02}, {0xFF}, {0xFF}, {0xFF} + }, { // COUPLE + {0x29}, {0x11}, {0xFF}, {0xFF}, {0xFF}, {0xFF} + }, { // MUCH OBLIGED + {0x11}, {0x11}, {0x0B}, {0xFF}, {0xFF}, {0xFF} + }, { // YEEHAW! + {0x11}, {0x02}, {0x02}, {0xFF}, {0xFF}, {0xFF} + }, { // MEGA + {0x0B}, {0x02}, {0xFF}, {0xFF}, {0xFF}, {0xFF} + }, { // 1-HIT KO! + {0x29}, {0x11}, {0x29}, {0xFF}, {0xFF}, {0xFF} + }, { // DESTINY + {0x02}, {0x02}, {0xFF}, {0xFF}, {0xFF}, {0xFF} + }, { // CANCEL + {0x0B}, {0x0B}, {0x0B}, {0xFF}, {0xFF}, {0xFF} + }, { // NEW + {0x1A}, {0x0B}, {0xFF}, {0xFF}, {0xFF}, {0xFF} + }, { // FLATTEN + {0x0B}, {0x0B}, {0x0B}, {0x0B}, {0x0B}, {0xFF} + }, { // KIDDING + {0x1A}, {0x0B}, {0xFF}, {0xFF}, {0xFF}, {0xFF} + }, { // LOSER + {0x29}, {0x29}, {0x0B}, {0xFF}, {0xFF}, {0xFF} + }, { // LOSING + {0x1A}, {0xFF}, {0xFF}, {0xFF}, {0xFF}, {0xFF} + }, { // HAPPENING + {0x11}, {0x11}, {0xFF}, {0xFF}, {0xFF}, {0xFF} + }, { // HIP AND + {0x11}, {0x29}, {0xFF}, {0xFF}, {0xFF}, {0xFF} + }, { // SHAKE + {0x02}, {0x02}, {0x0B}, {0x02}, {0xFF}, {0xFF} + }, { // SHADY + {0x1A}, {0x02}, {0x1A}, {0xFF}, {0xFF}, {0xFF} + }, { // UPBEAT + {0x29}, {0x0B}, {0xFF}, {0xFF}, {0xFF}, {0xFF} + }, { // MODERN + {0x1A}, {0x0B}, {0xFF}, {0xFF}, {0xFF}, {0xFF} + }, { // SMELL YA + {0x11}, {0x0B}, {0x02}, {0x0B}, {0xFF}, {0xFF} + }, { // BANG + {0x29}, {0x0B}, {0xFF}, {0xFF}, {0xFF}, {0xFF} + }, { // KNOCKOUT + {0x11}, {0x02}, {0x29}, {0xFF}, {0xFF}, {0xFF} + }, { // HASSLE + {0x02}, {0x29}, {0x02}, {0xFF}, {0xFF}, {0xFF} + }, { // WINNER + {0x0B}, {0x29}, {0x0B}, {0x11}, {0xFF}, {0xFF} + }, { // FEVER + {0x0B}, {0x0B}, {0x11}, {0x0B}, {0xFF}, {0xFF} + }, { // WANNABE + {0x0B}, {0x0B}, {0x1A}, {0xFF}, {0xFF}, {0xFF} + }, { // BABY + {0x02}, {0x11}, {0xFF}, {0xFF}, {0xFF}, {0xFF} + }, { // HEART + {0x1A}, {0x0B}, {0xFF}, {0xFF}, {0xFF}, {0xFF} + }, { // OLD + {0x1A}, {0xFF}, {0xFF}, {0xFF}, {0xFF}, {0xFF} + }, { // YOUNG + {0x29}, {0xFF}, {0xFF}, {0xFF}, {0xFF}, {0xFF} + }, { // UGLY + {0x0B}, {0x0B}, {0xFF}, {0xFF}, {0xFF}, {0xFF} + } +}; +#endif // ENGLISH/GERMAN + +#endif // GUARD_DATA_BARD_MUSIC_TRENDYSAYING_H diff --git a/src/data/bard_music/voices.h b/src/data/bard_music/voices.h new file mode 100644 index 000000000..30c4187f0 --- /dev/null +++ b/src/data/bard_music/voices.h @@ -0,0 +1,266 @@ +#ifndef GUARD_DATA_BARD_MUSIC_VOICES_H +#define GUARD_DATA_BARD_MUSIC_VOICES_H + +#if ENGLISH +const struct BardSound gBardSounds_Voices[][6] = { + { // ! + {0x12}, {0x33}, {0x33}, {0xFF}, {0xFF}, {0xFF} + }, { // !! + {0x12}, {0x33}, {0x33}, {0xFF}, {0xFF}, {0xFF} + }, { // ?! + {0x12}, {0x33}, {0x33}, {0xFF}, {0xFF}, {0xFF} + }, { // ? + {0x12}, {0x33}, {0x33}, {0xFF}, {0xFF}, {0xFF} + }, { // … + {0x0C}, {0x30}, {0x33}, {0xFF}, {0xFF}, {0xFF} + }, { // …! + {0x0C}, {0x30}, {0x33}, {0xFF}, {0xFF}, {0xFF} + }, { // ……… + {0x0C}, {0x30}, {0x33}, {0x0C}, {0x30}, {0xFF} + }, { // - + {0x12}, {0x33}, {0x33}, {0xFF}, {0xFF}, {0xFF} + }, { // - - - + {0x12}, {0x33}, {0x33}, {0xFF}, {0xFF}, {0xFF} + }, { // UH-OH + {0x2C}, {0x1A}, {0x33}, {0xFF}, {0xFF}, {0xFF} + }, { // WAAAH + {0x1B, 0x05, 0x08}, {0x33}, {0x33}, {0xFF}, {0xFF}, {0xFF} + }, { // AHAHA + {0x06}, {0x06}, {0x06}, {0x33}, {0x33}, {0xFF} + }, { // OH? + {0x18}, {0x33}, {0x33}, {0xFF}, {0xFF}, {0xFF} + }, { // NOPE + {0x18}, {0x33}, {0x33}, {0xFF}, {0xFF}, {0xFF} + }, { // URGH + {0x31}, {0x33}, {0x33}, {0xFF}, {0xFF}, {0xFF} + }, { // HMM + {0x28}, {0x33}, {0x33}, {0xFF}, {0xFF}, {0xFF} + }, { // WHOAH + {0x19}, {0x33}, {0x33}, {0xFF}, {0xFF}, {0xFF} + }, { // WROOOAAR! + {0x1C}, {0x31}, {0x33}, {0x33}, {0xFF}, {0xFF} + }, { // WOW + {0x23}, {0x33}, {0x33}, {0xFF}, {0xFF}, {0xFF} + }, { // GIGGLE + {0x11}, {0x11}, {0x11}, {0xFF}, {0xFF}, {0xFF} + }, { // SIGH + {0x0A}, {0x33}, {0x33}, {0xFF}, {0xFF}, {0xFF} + }, { // UNBELIEVABLE + {0x2C}, {0x0E}, {0x0C}, {0x02}, {0x24}, {0xFF} + }, { // CRIES + {0x13}, {0x33}, {0x33}, {0xFF}, {0xFF}, {0xFF} + }, { // AGREE + {0x06}, {0x0E}, {0x33}, {0xFF}, {0xFF}, {0xFF} + }, { // EH? + {0x2A}, {0x33}, {0x33}, {0xFF}, {0xFF}, {0xFF} + }, { // CRY + {0x12}, {0x33}, {0x33}, {0xFF}, {0xFF}, {0xFF} + }, { // EHEHE + {0x0C}, {0x0C}, {0x0C}, {0xFF}, {0xFF}, {0xFF} + }, { // OI, OI, OI + {0x1E}, {0x1E}, {0x1E}, {0xFF}, {0xFF}, {0xFF} + }, { // OH, YEAH + {0x18}, {0x01}, {0x33}, {0xFF}, {0xFF}, {0xFF} + }, { // OH + {0x18}, {0x33}, {0x33}, {0xFF}, {0xFF}, {0xFF} + }, { // OOPS + {0x27}, {0x33}, {0x33}, {0xFF}, {0xFF}, {0xFF} + }, { // SHOCKED + {0x17}, {0x0B}, {0x33}, {0xFF}, {0xFF}, {0xFF} + }, { // EEK + {0x0D}, {0x33}, {0x33}, {0xFF}, {0xFF}, {0xFF} + }, { // GRAAAH + {0x06}, {0x33}, {0x33}, {0xFF}, {0xFF}, {0xFF} + }, { // GWAHAHAHA + {0x06}, {0x06}, {0x06}, {0x17}, {0xFF}, {0xFF} + }, { // WAY + {0x05}, {0x33}, {0x33}, {0xFF}, {0xFF}, {0xFF} + }, { // TCH + {0x09}, {0x33}, {0x33}, {0xFF}, {0xFF}, {0xFF} + }, { // HEHE + {0x0C}, {0x0C}, {0x33}, {0xFF}, {0xFF}, {0xFF} + }, { // HAH + {0x06}, {0x33}, {0x33}, {0xFF}, {0xFF}, {0xFF} + }, { // YUP + {0x2C}, {0x33}, {0x33}, {0xFF}, {0xFF}, {0xFF} + }, { // HAHAHA + {0x06}, {0x06}, {0x06}, {0xFF}, {0xFF}, {0xFF} + }, { // AIYEEH + {0x13}, {0x0D}, {0x33}, {0xFF}, {0xFF}, {0xFF} + }, { // HIYAH + {0x0C}, {0x07}, {0x33}, {0xFF}, {0xFF}, {0xFF} + }, { // FUFUFU + {0x27}, {0x27}, {0x27}, {0xFF}, {0xFF}, {0xFF} + }, { // LOL + {0x18}, {0x1A}, {0x18}, {0xFF}, {0xFF}, {0xFF} + }, { // SNORT + {0x1A}, {0x33}, {0x33}, {0xFF}, {0xFF}, {0xFF} + }, { // HUMPH + {0x2A}, {0x33}, {0x33}, {0xFF}, {0xFF}, {0xFF} + }, { // HEHEHE + {0x0C}, {0x0C}, {0x0C}, {0xFF}, {0xFF}, {0xFF} + }, { // HEH + {0x09}, {0x33}, {0x33}, {0xFF}, {0xFF}, {0xFF} + }, { // HOHOHO + {0x18}, {0x18}, {0x18}, {0xFF}, {0xFF}, {0xFF} + }, { // UH-HUH + {0x2A}, {0x2C}, {0x33}, {0xFF}, {0xFF}, {0xFF} + }, { // OH, DEAR + {0x18}, {0x0E}, {0x30}, {0xFF}, {0xFF}, {0xFF} + }, { // ARRGH + {0x1C}, {0x33}, {0x33}, {0xFF}, {0xFF}, {0xFF} + }, { // MUFUFU + {0x27}, {0x27}, {0x27}, {0xFF}, {0xFF}, {0xFF} + }, { // MMM + {0x0F}, {0x33}, {0x33}, {0xFF}, {0xFF}, {0xFF} + }, { // OH-KAY + {0x18}, {0x04}, {0x33}, {0xFF}, {0xFF}, {0xFF} + }, { // OKAY + {0x18}, {0x04}, {0x33}, {0xFF}, {0xFF}, {0xFF} + }, { // LALALA + {0x06}, {0x06}, {0x06}, {0xFF}, {0xFF}, {0xFF} + }, { // YAY + {0x04}, {0x33}, {0x33}, {0xFF}, {0xFF}, {0xFF} + }, { // AWW + {0x07}, {0x33}, {0x33}, {0xFF}, {0xFF}, {0xFF} + }, { // WOWEE + {0x22}, {0x0D}, {0x33}, {0xFF}, {0xFF}, {0xFF} + }, { // GWAH + {0x07}, {0x33}, {0x33}, {0xFF}, {0xFF}, {0xFF} + }, { // WAHAHAHA + {0x06}, {0x06}, {0x06}, {0x06}, {0xFF}, {0xFF} + } +}; +#elif GERMAN +const struct BardSound gBardSounds_Voices[][6] = { + { // ! + {0xFF}, {0xFF}, {0xFF}, {0xFF}, {0xFF}, {0xFF} + }, { // !! + {0xFF}, {0xFF}, {0xFF}, {0xFF}, {0xFF}, {0xFF} + }, { // ?! + {0xFF}, {0xFF}, {0xFF}, {0xFF}, {0xFF}, {0xFF} + }, { // ? + {0x29}, {0xFF}, {0xFF}, {0xFF}, {0xFF}, {0xFF} + }, { // … + {0x0B}, {0x11}, {0x0B}, {0xFF}, {0xFF}, {0xFF} + }, { // …! + {0x0B}, {0x11}, {0x0B}, {0xFF}, {0xFF}, {0xFF} + }, { // ……… + {0x0B}, {0x11}, {0x0B}, {0xFF}, {0xFF}, {0xFF} + }, { // - + {0xFF}, {0xFF}, {0xFF}, {0xFF}, {0xFF}, {0xFF} + }, { // - - - + {0xFF}, {0xFF}, {0xFF}, {0xFF}, {0xFF}, {0xFF} + }, { // UH-OH + {0x1A}, {0x1A}, {0xFF}, {0xFF}, {0xFF}, {0xFF} + }, { // WAAAH + {0x02, 0x05, 0x08}, {0x02}, {0x02}, {0xFF}, {0xFF}, {0xFF} + }, { // AHAHA + {0x02}, {0x02}, {0x02}, {0xFF}, {0xFF}, {0xFF} + }, { // OH? + {0x1A}, {0xFF}, {0xFF}, {0xFF}, {0xFF}, {0xFF} + }, { // NOPE + {0x0B}, {0xFF}, {0xFF}, {0xFF}, {0xFF}, {0xFF} + }, { // URGH + {0x02}, {0xFF}, {0xFF}, {0xFF}, {0xFF}, {0xFF} + }, { // HMM + {0x02}, {0xFF}, {0xFF}, {0xFF}, {0xFF}, {0xFF} + }, { // WHOAH + {0x1A}, {0x1A}, {0x1A}, {0xFF}, {0xFF}, {0xFF} + }, { // WROOOAAR! + {0x1A}, {0x1A}, {0x1A}, {0x02}, {0xFF}, {0xFF} + }, { // WOW + {0x1A}, {0xFF}, {0xFF}, {0xFF}, {0xFF}, {0xFF} + }, { // GIGGLE + {0x11}, {0x0B}, {0xFF}, {0xFF}, {0xFF}, {0xFF} + }, { // SIGH + {0x0B}, {0x29}, {0xFF}, {0xFF}, {0xFF}, {0xFF} + }, { // UNBELIEVABLE + {0x29}, {0x02}, {0x29}, {0x11}, {0xFF}, {0xFF} + }, { // CRIES + {0x0B}, {0x11}, {0xFF}, {0xFF}, {0xFF}, {0xFF} + }, { // AGREE + {0x11}, {0x11}, {0xFF}, {0xFF}, {0xFF}, {0xFF} + }, { // EH? + {0x0B}, {0xFF}, {0xFF}, {0xFF}, {0xFF}, {0xFF} + }, { // CRY + {0x0B}, {0x11}, {0xFF}, {0xFF}, {0xFF}, {0xFF} + }, { // EHEHE + {0x0B}, {0x0B}, {0x0B}, {0xFF}, {0xFF}, {0xFF} + }, { // OI, OI, OI + {0x1A}, {0x0B}, {0x1A}, {0x0B}, {0x1A}, {0x0B} + }, { // OH, YEAH + {0x1A}, {0x0B}, {0x02}, {0xFF}, {0xFF}, {0xFF} + }, { // OH + {0x1A}, {0xFF}, {0xFF}, {0xFF}, {0xFF}, {0xFF} + }, { // OOPS + {0x29}, {0xFF}, {0xFF}, {0xFF}, {0xFF}, {0xFF} + }, { // SHOCKED + {0x0B}, {0x1A}, {0xFF}, {0xFF}, {0xFF}, {0xFF} + }, { // EEK + {0x11}, {0x11}, {0xFF}, {0xFF}, {0xFF}, {0xFF} + }, { // GRAAAH + {0x02}, {0x02}, {0x02}, {0xFF}, {0xFF}, {0xFF} + }, { // GWAHAHAHA + {0x02}, {0x02}, {0x02}, {0x02}, {0xFF}, {0xFF} + }, { // WAY + {0x02}, {0xFF}, {0xFF}, {0xFF}, {0xFF}, {0xFF} + }, { // TCH + {0x0B}, {0xFF}, {0xFF}, {0xFF}, {0xFF}, {0xFF} + }, { // HEHE + {0x0B}, {0x0B}, {0xFF}, {0xFF}, {0xFF}, {0xFF} + }, { // HAH + {0x02}, {0xFF}, {0xFF}, {0xFF}, {0xFF}, {0xFF} + }, { // YUP + {0x02}, {0x02}, {0x02}, {0xFF}, {0xFF}, {0xFF} + }, { // HAHAHA + {0x02}, {0x02}, {0x02}, {0xFF}, {0xFF}, {0xFF} + }, { // AIYEEH + {0x02}, {0x11}, {0x11}, {0x0B}, {0x0B}, {0xFF} + }, { // HIYAH + {0x11}, {0x11}, {0x02}, {0xFF}, {0xFF}, {0xFF} + }, { // FUFUFU + {0x0B}, {0x0B}, {0x0B}, {0xFF}, {0xFF}, {0xFF} + }, { // LOL + {0x11}, {0x02}, {0xFF}, {0xFF}, {0xFF}, {0xFF} + }, { // SNORT + {0x29}, {0xFF}, {0xFF}, {0xFF}, {0xFF}, {0xFF} + }, { // HUMPH + {0x02}, {0xFF}, {0xFF}, {0xFF}, {0xFF}, {0xFF} + }, { // HEHEHE + {0x0B}, {0x0B}, {0x0B}, {0xFF}, {0xFF}, {0xFF} + }, { // HEH + {0x0B}, {0xFF}, {0xFF}, {0xFF}, {0xFF}, {0xFF} + }, { // HOHOHO + {0x1A}, {0x1A}, {0x1A}, {0xFF}, {0xFF}, {0xFF} + }, { // UH-HUH + {0x29}, {0x11}, {0x29}, {0x11}, {0xFF}, {0xFF} + }, { // OH, DEAR + {0x0B}, {0x11}, {0x0B}, {0x11}, {0x0B}, {0xFF} + }, { // ARRGH + {0x02}, {0x02}, {0x02}, {0xFF}, {0xFF}, {0xFF} + }, { // MUFUFU + {0x11}, {0x11}, {0x11}, {0xFF}, {0xFF}, {0xFF} + }, { // MMM + {0x0B}, {0xFF}, {0xFF}, {0xFF}, {0xFF}, {0xFF} + }, { // OH-KAY + {0x1A}, {0x02}, {0x11}, {0xFF}, {0xFF}, {0xFF} + }, { // OKAY + {0x29}, {0x11}, {0xFF}, {0xFF}, {0xFF}, {0xFF} + }, { // LALALA + {0x02}, {0x02}, {0x02}, {0xFF}, {0xFF}, {0xFF} + }, { // YAY + {0x02}, {0x02}, {0xFF}, {0xFF}, {0xFF}, {0xFF} + }, { // AWW + {0x29}, {0xFF}, {0xFF}, {0xFF}, {0xFF}, {0xFF} + }, { // WOWEE + {0x29}, {0x0B}, {0x0B}, {0xFF}, {0xFF}, {0xFF} + }, { // GWAH + {0x0B}, {0xFF}, {0xFF}, {0xFF}, {0xFF}, {0xFF} + }, { // WAHAHAHA + {0x02}, {0x02}, {0x02}, {0x02}, {0xFF}, {0xFF} + } +}; +#endif // ENGLISH/GERMAN + +#endif // GUARD_DATA_BARD_MUSIC_VOICES_H diff --git a/src/data/bard_music/word_pitch.h b/src/data/bard_music/word_pitch.h new file mode 100644 index 000000000..b8cb86f87 --- /dev/null +++ b/src/data/bard_music/word_pitch.h @@ -0,0 +1,183 @@ +#ifndef GUARD_WORD_PITCH_H +#define GUARD_WORD_PITCH_H + +const s16 gUnknown_08416F08[] = { + -0x300, 0x1800 +}; + +const s16 gUnknown_08416F0C[] = { + 0x0900, 0x1800 +}; + +const s16 gUnknown_08416F10[] = { + 0x0100, 0x1800 +}; + +const s16 gUnknown_08416F14[] = { + 0x0400, 0x1800 +}; + +const s16 gUnknown_08416F18[] = { + 0x0b00, 0x1800 +}; + +const s16 gUnknown_08416F1C[] = { + -0x300, -0x100, 0x1800 +}; + +const s16 gUnknown_08416F22[] = { + -0x300, 0x0200, 0x1800 +}; + +const s16 gUnknown_08416F28[] = { + 0x0200, 0x0400, 0x1800 +}; + +const s16 gUnknown_08416F2E[] = { + 0x0600, 0x0800, 0x1800 +}; + +const s16 gUnknown_08416F34[] = { + 0x0900, 0x0800, 0x1800 +}; + +const s16 gUnknown_08416F3A[] = { + -0x300, -0x100, -0x300, 0x1800 +}; + +const s16 gUnknown_08416F42[] = { + 0x0400, -0x300, 0x0400, 0x1800 +}; + +const s16 gUnknown_08416F4A[] = { + 0x0900, 0x0800, 0x0600, 0x1800 +}; + +const s16 gUnknown_08416F52[] = { + 0x0100, 0x0200, 0x0400, 0x1800 +}; + +const s16 gUnknown_08416F5A[] = { + 0x0600, 0x1000, 0x0d00, 0x1800 +}; + +const s16 gUnknown_08416F62[] = { + 0x0400, 0x0900, 0x0400, 0x0900, 0x1800 +}; + +const s16 gUnknown_08416F6C[] = { + 0x0900, 0x0400, 0x0d00, 0x0400, 0x1800 +}; + +const s16 gUnknown_08416F76[] = { + 0x0100, 0x0200, 0x0400, 0x0600, 0x1800 +}; + +const s16 gUnknown_08416F80[] = { + 0x0800, 0x0600, 0x0400, 0x0200, 0x1800 +}; + +const s16 gUnknown_08416F8A[] = { + 0x0f00, 0x0d00, 0x0b00, 0x0a00, 0x1800 +}; + +const s16 gUnknown_08416F94[] = { + -0x300, -0x100, 0x0100, 0x0200, 0x0400, 0x1800 +}; + +const s16 gUnknown_08416FA0[] = { + 0x0900, 0x0800, 0x0600, 0x0400, 0x0200, 0x1800 +}; + +const s16 gUnknown_08416FAC[] = { + 0x0100, 0x0400, 0x0900, 0x0400, 0x0100, 0x1800 +}; + +const s16 gUnknown_08416FB8[] = { + 0x0900, 0x0400, 0x0900, 0x0400, -0x300, 0x1800 +}; + +const s16 gUnknown_08416FC4[] = { + 0x0b00, 0x0800, 0x0400, 0x0400, 0x0600, 0x1800 +}; + +const s16 gUnknown_08416FD0[] = { + -0x300, -0x100, 0x0100, 0x0200, 0x0400, 0x0600, 0x1800 +}; + +const s16 gUnknown_08416FDE[] = { + 0x0800, 0x0600, 0x0400, 0x0200, 0x0100, -0x100, 0x1800 +}; + +const s16 gUnknown_08416FEC[] = { + 0x0100, 0x0200, 0x0400, 0x0100, 0x0200, 0x1000, 0x1800 +}; + +const s16 gUnknown_08416FFA[] = { + 0x0400, -0x300, 0x0900, 0x0400, 0x0900, 0x0400, 0x1800 +}; + +const s16 gUnknown_08417008[] = { + 0x0800, 0x0900, 0x0800, 0x0900, 0x0800, 0x0900, 0x1800 +}; + +const s16 gUnknown_08417016[] = { + 0x0200, 0x0100, 0x0200, 0x0100, 0x0200, 0x0400, 0x0200, 0x1800 +}; + +const s16 gUnknown_08417026[] = { + 0x0100, 0x0100, -0x100, -0x100, -0x300, 0x0400, -0x300, 0x1800 +}; + +const s16 gUnknown_08417036[] = { + 0x0800, 0x0900, 0x0b00, 0x0d00, 0x0e00, 0x0d00, 0x0b00, 0x1800 +}; + +const s16 gUnknown_08417046[] = { + 0x0800, 0x0600, 0x0400, 0x0200, 0x0d00, 0x0b00, 0x0900, 0x1800 +}; + +const s16 gUnknown_08417056[] = { + 0x0300, 0x0400, 0x0600, 0x0800, 0x0700, 0x0800, 0x0400, 0x1800 +}; + +const s16 *const gBardSoundPitchTables[] = { + gUnknown_08416F08, + gUnknown_08416F0C, + gUnknown_08416F10, + gUnknown_08416F14, + gUnknown_08416F18, + gUnknown_08416F1C, + gUnknown_08416F22, + gUnknown_08416F28, + gUnknown_08416F2E, + gUnknown_08416F34, + gUnknown_08416F3A, + gUnknown_08416F42, + gUnknown_08416F4A, + gUnknown_08416F52, + gUnknown_08416F5A, + gUnknown_08416F62, + gUnknown_08416F6C, + gUnknown_08416F76, + gUnknown_08416F80, + gUnknown_08416F8A, + gUnknown_08416F94, + gUnknown_08416FA0, + gUnknown_08416FAC, + gUnknown_08416FB8, + gUnknown_08416FC4, + gUnknown_08416FD0, + gUnknown_08416FDE, + gUnknown_08416FEC, + gUnknown_08416FFA, + gUnknown_08417008, + gUnknown_08417016, + gUnknown_08417026, + gUnknown_08417036, + gUnknown_08417046, + gUnknown_08417056 +}; + + +#endif //GUARD_WORD_PITCH_H diff --git a/src/data/bard_music_de.h b/src/data/bard_music_de.h deleted file mode 100644 index 90880582e..000000000 --- a/src/data/bard_music_de.h +++ /dev/null @@ -1,3699 +0,0 @@ -#ifndef GUARD_DATA_BARD_MUSIC_H -#define GUARD_DATA_BARD_MUSIC_H - -static const struct BardSound BardMusic_POKEMON[][6] = { - { // ARMALDO - {0x02}, {0x02}, {0x1A}, {0xFF}, {0xFF}, {0xFF} - }, { // BEAUTIFLY - {0x02}, {0x11}, {0x0B}, {0x02}, {0xFF}, {0xFF} - }, { // MEDITITE - {0x0B}, {0x11}, {0x11}, {0xFF}, {0xFF}, {0xFF} - }, { // SEAKING - {0x1A}, {0x11}, {0xFF}, {0xFF}, {0xFF}, {0xFF} - }, { // TORCHIC - {0x0B}, {0x11}, {0xFF}, {0xFF}, {0xFF}, {0xFF} - }, { // ANORITH - {0x02}, {0x1A}, {0x11}, {0xFF}, {0xFF}, {0xFF} - }, { // ABSOL - {0x02}, {0x1A}, {0xFF}, {0xFF}, {0xFF}, {0xFF} - }, { // SURSKIT - {0x0B}, {0x11}, {0x0B}, {0xFF}, {0xFF}, {0xFF} - }, { // MASQUERAIN - {0x02}, {0x0B}, {0x0B}, {0x0B}, {0xFF}, {0xFF} - }, { // GEODUDE - {0x0B}, {0x11}, {0x0B}, {0x11}, {0xFF}, {0xFF} - }, { // ILLUMISE - {0x11}, {0x29}, {0x11}, {0x0B}, {0xFF}, {0xFF} - }, { // SKARMORY - {0x02}, {0x02}, {0x0B}, {0x1A}, {0xFF}, {0xFF} - }, { // SKITTY - {0x0B}, {0x0B}, {0x1A}, {0xFF}, {0xFF}, {0xFF} - }, { // DELCATTY - {0x0B}, {0x0B}, {0x1A}, {0x1A}, {0xFF}, {0xFF} - }, { // SWELLOW - {0x02}, {0x1A}, {0xFF}, {0xFF}, {0xFF}, {0xFF} - }, { // GLALIE - {0x11}, {0x1A}, {0x1A}, {0xFF}, {0xFF}, {0xFF} - }, { // KYOGRE - {0x11}, {0x1A}, {0x0B}, {0xFF}, {0xFF}, {0xFF} - }, { // MACHAMP - {0x02}, {0x1A}, {0x0B}, {0x11}, {0xFF}, {0xFF} - }, { // PINSIR - {0x11}, {0x11}, {0xFF}, {0xFF}, {0xFF}, {0xFF} - }, { // KECLEON - {0x0B}, {0x0B}, {0x1A}, {0xFF}, {0xFF}, {0xFF} - }, { // SHUPPET - {0x29}, {0x0B}, {0xFF}, {0xFF}, {0xFF}, {0xFF} - }, { // SILCOON - {0x02}, {0x1A}, {0x1A}, {0xFF}, {0xFF}, {0xFF} - }, { // BRELOOM - {0x02}, {0x11}, {0xFF}, {0xFF}, {0xFF}, {0xFF} - }, { // SHROOMISH - {0x11}, {0xFF}, {0xFF}, {0xFF}, {0xFF}, {0xFF} - }, { // CARVANHA - {0x02}, {0x11}, {0x02}, {0x02}, {0xFF}, {0xFF} - }, { // TREECKO - {0x0B}, {0x02}, {0x1A}, {0xFF}, {0xFF}, {0xFF} - }, { // WINGULL - {0x11}, {0x29}, {0xFF}, {0xFF}, {0xFF}, {0xFF} - }, { // GYARADOS - {0x02}, {0x02}, {0x1A}, {0xFF}, {0xFF}, {0xFF} - }, { // NINETALES - {0x29}, {0x1A}, {0x02}, {0xFF}, {0xFF}, {0xFF} - }, { // GIRAFARIG - {0x11}, {0x02}, {0x02}, {0x11}, {0xFF}, {0xFF} - }, { // KIRLIA - {0x11}, {0x11}, {0x02}, {0xFF}, {0xFF}, {0xFF} - }, { // BELLOSSOM - {0x29}, {0x0B}, {0x02}, {0xFF}, {0xFF}, {0xFF} - }, { // KINGDRA - {0x0B}, {0x0B}, {0x02}, {0x11}, {0xFF}, {0xFF} - }, { // GLOOM - {0x29}, {0x1A}, {0xFF}, {0xFF}, {0xFF}, {0xFF} - }, { // MAWILE - {0x29}, {0x11}, {0x0B}, {0xFF}, {0xFF}, {0xFF} - }, { // GROUDON - {0x1A}, {0x29}, {0x1A}, {0xFF}, {0xFF}, {0xFF} - }, { // MIGHTYENA - {0x02}, {0x02}, {0x0B}, {0xFF}, {0xFF}, {0xFF} - }, { // CROBAT - {0x11}, {0x02}, {0xFF}, {0xFF}, {0xFF}, {0xFF} - }, { // ABRA - {0x02}, {0x02}, {0xFF}, {0xFF}, {0xFF}, {0xFF} - }, { // SLAKING - {0x0B}, {0x02}, {0x11}, {0xFF}, {0xFF}, {0xFF} - }, { // WURMPLE - {0x02}, {0x29}, {0x0B}, {0xFF}, {0xFF}, {0xFF} - }, { // MAGIKARP - {0x02}, {0x02}, {0x1A}, {0xFF}, {0xFF}, {0xFF} - }, { // MAGNEMITE - {0x02}, {0x0B}, {0x11}, {0x1A}, {0xFF}, {0xFF} - }, { // TORKOAL - {0x29}, {0x0B}, {0xFF}, {0xFF}, {0xFF}, {0xFF} - }, { // MACHOKE - {0x02}, {0x1A}, {0xFF}, {0xFF}, {0xFF}, {0xFF} - }, { // GULPIN - {0x29}, {0x29}, {0xFF}, {0xFF}, {0xFF}, {0xFF} - }, { // ARON - {0x1A}, {0x29}, {0x11}, {0x1A}, {0xFF}, {0xFF} - }, { // PSYDUCK - {0x0B}, {0x1A}, {0xFF}, {0xFF}, {0xFF}, {0xFF} - }, { // LAIRON - {0x1A}, {0x02}, {0xFF}, {0xFF}, {0xFF}, {0xFF} - }, { // WHISMUR - {0x29}, {0x0B}, {0xFF}, {0xFF}, {0xFF}, {0xFF} - }, { // NUZLEAF - {0x02}, {0x02}, {0xFF}, {0xFF}, {0xFF}, {0xFF} - }, { // PHANPY - {0x02}, {0x11}, {0xFF}, {0xFF}, {0xFF}, {0xFF} - }, { // SHELGON - {0x02}, {0x0B}, {0xFF}, {0xFF}, {0xFF}, {0xFF} - }, { // GOLDUCK - {0x0B}, {0x1A}, {0x1A}, {0xFF}, {0xFF}, {0xFF} - }, { // GOLBAT - {0x1A}, {0x02}, {0xFF}, {0xFF}, {0xFF}, {0xFF} - }, { // GOLEM - {0x0B}, {0x1A}, {0x02}, {0xFF}, {0xFF}, {0xFF} - }, { // GRAVELER - {0x0B}, {0x1A}, {0x1A}, {0xFF}, {0xFF}, {0xFF} - }, { // GARDEVOIR - {0x02}, {0x1A}, {0xFF}, {0xFF}, {0xFF}, {0xFF} - }, { // RHYDON - {0x11}, {0x0B}, {0x1A}, {0xFF}, {0xFF}, {0xFF} - }, { // RHYHORN - {0x11}, {0x1A}, {0xFF}, {0xFF}, {0xFF}, {0xFF} - }, { // GOREBYSS - {0x02}, {0x02}, {0x02}, {0x11}, {0xFF}, {0xFF} - }, { // CORSOLA - {0x1A}, {0x02}, {0x1A}, {0xFF}, {0xFF}, {0xFF} - }, { // CACNEA - {0x29}, {0x02}, {0xFF}, {0xFF}, {0xFF}, {0xFF} - }, { // DUSCLOPS - {0x11}, {0x1A}, {0xFF}, {0xFF}, {0xFF}, {0xFF} - }, { // SHARPEDO - {0x1A}, {0x02}, {0x11}, {0x1A}, {0xFF}, {0xFF} - }, { // ZANGOOSE - {0x0B}, {0x1A}, {0xFF}, {0xFF}, {0xFF}, {0xFF} - }, { // SANDSHREW - {0x02}, {0x02}, {0xFF}, {0xFF}, {0xFF}, {0xFF} - }, { // SANDSLASH - {0x02}, {0x02}, {0x0B}, {0xFF}, {0xFF}, {0xFF} - }, { // SEADRA - {0x0B}, {0x0B}, {0x1A}, {0xFF}, {0xFF}, {0xFF} - }, { // RELICANTH - {0x0B}, {0x11}, {0x02}, {0xFF}, {0xFF}, {0xFF} - }, { // ZIGZAGOON - {0x11}, {0x02}, {0xFF}, {0xFF}, {0xFF}, {0xFF} - }, { // CRAWDAUNT - {0x0B}, {0x29}, {0x02}, {0xFF}, {0xFF}, {0xFF} - }, { // SCEPTILE - {0x0B}, {0x02}, {0x1A}, {0xFF}, {0xFF}, {0xFF} - }, { // GROVYLE - {0x0B}, {0x02}, {0x11}, {0xFF}, {0xFF}, {0xFF} - }, { // BANETTE - {0x02}, {0x0B}, {0x0B}, {0xFF}, {0xFF}, {0xFF} - }, { // JIRACHI - {0x11}, {0x02}, {0x11}, {0xFF}, {0xFF}, {0xFF} - }, { // STARMIE - {0x02}, {0x11}, {0x0B}, {0xFF}, {0xFF}, {0xFF} - }, { // ZUBAT - {0x29}, {0x02}, {0xFF}, {0xFF}, {0xFF}, {0xFF} - }, { // TAILLOW - {0x02}, {0x11}, {0x11}, {0xFF}, {0xFF}, {0xFF} - }, { // WYNAUT - {0x11}, {0x1A}, {0xFF}, {0xFF}, {0xFF}, {0xFF} - }, { // WOBBUFFET - {0x1A}, {0x11}, {0x0B}, {0x02}, {0x29}, {0xFF} - }, { // SOLROCK - {0x1A}, {0x0B}, {0xFF}, {0xFF}, {0xFF}, {0xFF} - }, { // SHIFTRY - {0x0B}, {0x29}, {0x11}, {0xFF}, {0xFF}, {0xFF} - }, { // HORSEA - {0x0B}, {0x0B}, {0x0B}, {0xFF}, {0xFF}, {0xFF} - }, { // BAGON - {0x11}, {0x29}, {0xFF}, {0xFF}, {0xFF}, {0xFF} - }, { // SEEDOT - {0x02}, {0x29}, {0x0B}, {0xFF}, {0xFF}, {0xFF} - }, { // SPHEAL - {0x0B}, {0x0B}, {0x1A}, {0xFF}, {0xFF}, {0xFF} - }, { // BELDUM - {0x02}, {0x0B}, {0xFF}, {0xFF}, {0xFF}, {0xFF} - }, { // MEDICHAM - {0x0B}, {0x11}, {0x02}, {0x11}, {0xFF}, {0xFF} - }, { // CHINCHOU - {0x02}, {0x11}, {0xFF}, {0xFF}, {0xFF}, {0xFF} - }, { // CHIMECHO - {0x02}, {0x11}, {0x02}, {0x11}, {0xFF}, {0xFF} - }, { // ALTARIA - {0x02}, {0x02}, {0x11}, {0x02}, {0xFF}, {0xFF} - }, { // SWABLU - {0x02}, {0x29}, {0xFF}, {0xFF}, {0xFF}, {0xFF} - }, { // NINCADA - {0x11}, {0x02}, {0x02}, {0xFF}, {0xFF}, {0xFF} - }, { // DEOXYS - {0x0B}, {0x1A}, {0x11}, {0xFF}, {0xFF}, {0xFF} - }, { // NINJASK - {0x11}, {0x02}, {0xFF}, {0xFF}, {0xFF}, {0xFF} - }, { // DODUO - {0x1A}, {0x29}, {0xFF}, {0xFF}, {0xFF}, {0xFF} - }, { // DODRIO - {0x1A}, {0x11}, {0xFF}, {0xFF}, {0xFF}, {0xFF} - }, { // KOFFING - {0x1A}, {0x1A}, {0xFF}, {0xFF}, {0xFF}, {0xFF} - }, { // TENTACRUEL - {0x0B}, {0x1A}, {0x02}, {0xFF}, {0xFF}, {0xFF} - }, { // DUSTOX - {0x29}, {0x1A}, {0xFF}, {0xFF}, {0xFF}, {0xFF} - }, { // LOUDRED - {0x02}, {0x0B}, {0x0B}, {0x1A}, {0xFF}, {0xFF} - }, { // GOLDEEN - {0x1A}, {0x11}, {0x11}, {0xFF}, {0xFF}, {0xFF} - }, { // BARBOACH - {0x0B}, {0x0B}, {0xFF}, {0xFF}, {0xFF}, {0xFF} - }, { // SEALEO - {0x0B}, {0x0B}, {0x1A}, {0xFF}, {0xFF}, {0xFF} - }, { // WALREIN - {0x02}, {0x02}, {0x11}, {0x02}, {0xFF}, {0xFF} - }, { // TROPIUS - {0x1A}, {0x11}, {0x29}, {0xFF}, {0xFF}, {0xFF} - }, { // DONPHAN - {0x1A}, {0x02}, {0xFF}, {0xFF}, {0xFF}, {0xFF} - }, { // NUMEL - {0x02}, {0x02}, {0x29}, {0xFF}, {0xFF}, {0xFF} - }, { // ODDISH - {0x11}, {0x02}, {0x02}, {0xFF}, {0xFF}, {0xFF} - }, { // TRAPINCH - {0x02}, {0x11}, {0x1A}, {0xFF}, {0xFF}, {0xFF} - }, { // SLAKOTH - {0x29}, {0x0B}, {0xFF}, {0xFF}, {0xFF}, {0xFF} - }, { // WHISCASH - {0x0B}, {0x02}, {0xFF}, {0xFF}, {0xFF}, {0xFF} - }, { // SHEDINJA - {0x11}, {0x02}, {0x1A}, {0xFF}, {0xFF}, {0xFF} - }, { // MARSHTOMP - {0x1A}, {0x1A}, {0x02}, {0x0B}, {0xFF}, {0xFF} - }, { // NATU - {0x02}, {0x29}, {0xFF}, {0xFF}, {0xFF}, {0xFF} - }, { // XATU - {0x02}, {0x29}, {0xFF}, {0xFF}, {0xFF}, {0xFF} - }, { // CLAYDOL - {0x0B}, {0x29}, {0x0B}, {0x02}, {0xFF}, {0xFF} - }, { // CACTURNE - {0x1A}, {0x29}, {0x02}, {0xFF}, {0xFF}, {0xFF} - }, { // NOSEPASS - {0x02}, {0x0B}, {0xFF}, {0xFF}, {0xFF}, {0xFF} - }, { // CLAMPERL - {0x0B}, {0x29}, {0xFF}, {0xFF}, {0xFF}, {0xFF} - }, { // CAMERUPT - {0x02}, {0x0B}, {0x29}, {0xFF}, {0xFF}, {0xFF} - }, { // EXPLOUD - {0x02}, {0x29}, {0xFF}, {0xFF}, {0xFF}, {0xFF} - }, { // BLAZIKEN - {0x1A}, {0x1A}, {0xFF}, {0xFF}, {0xFF}, {0xFF} - }, { // LOMBRE - {0x1A}, {0x0B}, {0x1A}, {0xFF}, {0xFF}, {0xFF} - }, { // LOTAD - {0x1A}, {0x29}, {0xFF}, {0xFF}, {0xFF}, {0xFF} - }, { // SPINDA - {0x02}, {0x11}, {0xFF}, {0xFF}, {0xFF}, {0xFF} - }, { // SPOINK - {0x1A}, {0x11}, {0xFF}, {0xFF}, {0xFF}, {0xFF} - }, { // SEVIPER - {0x11}, {0x11}, {0x11}, {0xFF}, {0xFF}, {0xFF} - }, { // HARIYAMA - {0x02}, {0x11}, {0x02}, {0x02}, {0xFF}, {0xFF} - }, { // VOLBEAT - {0x1A}, {0x0B}, {0x02}, {0xFF}, {0xFF}, {0xFF} - }, { // HUNTAIL - {0x02}, {0x02}, {0x02}, {0x11}, {0xFF}, {0xFF} - }, { // PIKACHU - {0x11}, {0x02}, {0x29}, {0xFF}, {0xFF}, {0xFF} - }, { // PICHU - {0x11}, {0x29}, {0xFF}, {0xFF}, {0xFF}, {0xFF} - }, { // STARYU - {0x0B}, {0x29}, {0xFF}, {0xFF}, {0xFF}, {0xFF} - }, { // VIBRAVA - {0x11}, {0x02}, {0x02}, {0xFF}, {0xFF}, {0xFF} - }, { // VOLTORB - {0x1A}, {0x1A}, {0x02}, {0xFF}, {0xFF}, {0xFF} - }, { // FEEBAS - {0x02}, {0x02}, {0xFF}, {0xFF}, {0xFF}, {0xFF} - }, { // ALAKAZAM - {0x11}, {0x02}, {0x02}, {0xFF}, {0xFF}, {0xFF} - }, { // GRUMPIG - {0x1A}, {0x11}, {0xFF}, {0xFF}, {0xFF}, {0xFF} - }, { // WIGGLYTUFF - {0x29}, {0x0B}, {0x29}, {0xFF}, {0xFF}, {0xFF} - }, { // IGGLYBUFF - {0x29}, {0x0B}, {0x29}, {0xFF}, {0xFF}, {0xFF} - }, { // FLYGON - {0x11}, {0x0B}, {0x02}, {0xFF}, {0xFF}, {0xFF} - }, { // PLUSLE - {0x29}, {0x0B}, {0xFF}, {0xFF}, {0xFF}, {0xFF} - }, { // JIGGLYPUFF - {0x29}, {0x0B}, {0x29}, {0xFF}, {0xFF}, {0xFF} - }, { // CORPHISH - {0x0B}, {0x1A}, {0xFF}, {0xFF}, {0xFF}, {0xFF} - }, { // GRIMER - {0x0B}, {0x11}, {0x02}, {0xFF}, {0xFF}, {0xFF} - }, { // MUK - {0x0B}, {0x11}, {0x1A}, {0xFF}, {0xFF}, {0xFF} - }, { // HERACROSS - {0x02}, {0x02}, {0x1A}, {0xFF}, {0xFF}, {0xFF} - }, { // PELIPPER - {0x0B}, {0x11}, {0x0B}, {0xFF}, {0xFF}, {0xFF} - }, { // WAILORD - {0x02}, {0x11}, {0x1A}, {0xFF}, {0xFF}, {0xFF} - }, { // WAILMER - {0x02}, {0x11}, {0x0B}, {0xFF}, {0xFF}, {0xFF} - }, { // SALAMENCE - {0x29}, {0x02}, {0x02}, {0x02}, {0xFF}, {0xFF} - }, { // AGGRON - {0x1A}, {0x1A}, {0xFF}, {0xFF}, {0xFF}, {0xFF} - }, { // POOCHYENA - {0x11}, {0x11}, {0x0B}, {0xFF}, {0xFF}, {0xFF} - }, { // CASTFORM - {0x1A}, {0x0B}, {0x1A}, {0xFF}, {0xFF}, {0xFF} - }, { // MINUN - {0x11}, {0x29}, {0xFF}, {0xFF}, {0xFF}, {0xFF} - }, { // MAGCARGO - {0x02}, {0x02}, {0x1A}, {0xFF}, {0xFF}, {0xFF} - }, { // MAKUHITA - {0x02}, {0x29}, {0x11}, {0x02}, {0xFF}, {0xFF} - }, { // SLUGMA - {0x0B}, {0x02}, {0xFF}, {0xFF}, {0xFF}, {0xFF} - }, { // WEEZING - {0x1A}, {0x1A}, {0xFF}, {0xFF}, {0xFF}, {0xFF} - }, { // LINOONE - {0x0B}, {0x02}, {0x02}, {0xFF}, {0xFF}, {0xFF} - }, { // CASCOON - {0x02}, {0x0B}, {0x1A}, {0xFF}, {0xFF}, {0xFF} - }, { // MARILL - {0x02}, {0x11}, {0xFF}, {0xFF}, {0xFF}, {0xFF} - }, { // AZUMARILL - {0x02}, {0x29}, {0x02}, {0x11}, {0xFF}, {0xFF} - }, { // SWALOT - {0x29}, {0x0B}, {0xFF}, {0xFF}, {0xFF}, {0xFF} - }, { // ELECTRODE - {0x0B}, {0x1A}, {0x02}, {0xFF}, {0xFF}, {0xFF} - }, { // MUDKIP - {0x11}, {0x1A}, {0x11}, {0xFF}, {0xFF}, {0xFF} - }, { // MILOTIC - {0x11}, {0x1A}, {0x11}, {0xFF}, {0xFF}, {0xFF} - }, { // METAGROSS - {0x0B}, {0x02}, {0x1A}, {0xFF}, {0xFF}, {0xFF} - }, { // METANG - {0x0B}, {0x02}, {0xFF}, {0xFF}, {0xFF}, {0xFF} - }, { // TENTACOOL - {0x0B}, {0x02}, {0x02}, {0xFF}, {0xFF}, {0xFF} - }, { // BALTOY - {0x29}, {0x02}, {0x0B}, {0xFF}, {0xFF}, {0xFF} - }, { // SABLEYE - {0x1A}, {0x11}, {0x11}, {0xFF}, {0xFF}, {0xFF} - }, { // VIGOROTH - {0x29}, {0x11}, {0xFF}, {0xFF}, {0xFF}, {0xFF} - }, { // SNORUNT - {0x0B}, {0x0B}, {0xFF}, {0xFF}, {0xFF}, {0xFF} - }, { // CRADILY - {0x11}, {0x11}, {0x0B}, {0xFF}, {0xFF}, {0xFF} - }, { // KADABRA - {0x02}, {0x02}, {0x02}, {0xFF}, {0xFF}, {0xFF} - }, { // DUSKULL - {0x11}, {0x11}, {0xFF}, {0xFF}, {0xFF}, {0xFF} - }, { // RAICHU - {0x02}, {0x11}, {0x29}, {0xFF}, {0xFF}, {0xFF} - }, { // MANECTRIC - {0x1A}, {0x0B}, {0x1A}, {0xFF}, {0xFF}, {0xFF} - }, { // SWAMPERT - {0x29}, {0x0B}, {0xFF}, {0xFF}, {0xFF}, {0xFF} - }, { // ELECTRIKE - {0x11}, {0x0B}, {0x11}, {0xFF}, {0xFF}, {0xFF} - }, { // LATIAS - {0x02}, {0x11}, {0x02}, {0xFF}, {0xFF}, {0xFF} - }, { // LATIOS - {0x02}, {0x11}, {0x1A}, {0xFF}, {0xFF}, {0xFF} - }, { // LUVDISC - {0x11}, {0x11}, {0x29}, {0xFF}, {0xFF}, {0xFF} - }, { // VILEPLUME - {0x11}, {0x1A}, {0xFF}, {0xFF}, {0xFF}, {0xFF} - }, { // RALTS - {0x02}, {0x02}, {0xFF}, {0xFF}, {0xFF}, {0xFF} - }, { // LANTURN - {0x02}, {0x29}, {0xFF}, {0xFF}, {0xFF}, {0xFF} - }, { // LILEEP - {0x11}, {0x11}, {0xFF}, {0xFF}, {0xFF}, {0xFF} - }, { // LUNATONE - {0x29}, {0x02}, {0x0B}, {0x11}, {0xFF}, {0xFF} - }, { // AZURILL - {0x02}, {0x29}, {0x11}, {0xFF}, {0xFF}, {0xFF} - }, { // LUDICOLO - {0x02}, {0x02}, {0x1A}, {0x0B}, {0xFF}, {0xFF} - }, { // MAGNETON - {0x02}, {0x0B}, {0x1A}, {0xFF}, {0xFF}, {0xFF} - }, { // REGICE - {0x0B}, {0x11}, {0x0B}, {0xFF}, {0xFF}, {0xFF} - }, { // REGISTEEL - {0x0B}, {0x11}, {0x0B}, {0x0B}, {0xFF}, {0xFF} - }, { // REGIROCK - {0x0B}, {0x11}, {0x1A}, {0xFF}, {0xFF}, {0xFF} - }, { // RAYQUAZA - {0x02}, {0x11}, {0x02}, {0x02}, {0xFF}, {0xFF} - }, { // VULPIX - {0x29}, {0x11}, {0xFF}, {0xFF}, {0xFF}, {0xFF} - }, { // ROSELIA - {0x1A}, {0x0B}, {0x11}, {0x02}, {0xFF}, {0xFF} - }, { // COMBUSKEN - {0x29}, {0x29}, {0xFF}, {0xFF}, {0xFF}, {0xFF} - }, { // MACHOP - {0x02}, {0x1A}, {0x1A}, {0xFF}, {0xFF}, {0xFF} - } -}; - - -static const struct BardSound BardMusic_TRAINER[][6] = { - { // I CHOOSE YOU - {0x29}, {0x11}, {0x02}, {0xFF}, {0xFF}, {0xFF} - }, { // GOTCHA - {0x02}, {0x11}, {0xFF}, {0xFF}, {0xFF}, {0xFF} - }, { // TRADE - {0x02}, {0x29}, {0xFF}, {0xFF}, {0xFF}, {0xFF} - }, { // SAPPHIRE - {0x02}, {0x11}, {0xFF}, {0xFF}, {0xFF}, {0xFF} - }, { // EVOLVE - {0x0B}, {0x11}, {0x0B}, {0xFF}, {0xFF}, {0xFF} - }, { // ENCYCLOPEDIA - {0x0B}, {0x11}, {0x1A}, {0x0B}, {0x11}, {0xFF} - }, { // NATURE - {0x0B}, {0x0B}, {0xFF}, {0xFF}, {0xFF}, {0xFF} - }, { // CENTER - {0x0B}, {0x0B}, {0xFF}, {0xFF}, {0xFF}, {0xFF} - }, { // EGG - {0x0B}, {0x11}, {0xFF}, {0xFF}, {0xFF}, {0xFF} - }, { // LINK - {0x11}, {0xFF}, {0xFF}, {0xFF}, {0xFF}, {0xFF} - }, { // SP. ABILITY - {0x0B}, {0x11}, {0x0B}, {0x11}, {0xFF}, {0xFF} - }, { // TRAINER - {0x02}, {0x11}, {0x0B}, {0xFF}, {0xFF}, {0xFF} - }, { // VERSION - {0x0B}, {0x11}, {0x1A}, {0xFF}, {0xFF}, {0xFF} - }, { // POKéNAV - {0x1A}, {0x0B}, {0x02}, {0xFF}, {0xFF}, {0xFF} - }, { // POKéMON - {0x1A}, {0x0B}, {0x1A}, {0xFF}, {0xFF}, {0xFF} - }, { // GET - {0x0B}, {0x1A}, {0x0B}, {0xFF}, {0xFF}, {0xFF} - }, { // POKéDEX - {0x1A}, {0x0B}, {0x0B}, {0xFF}, {0xFF}, {0xFF} - }, { // RUBY - {0x29}, {0x11}, {0xFF}, {0xFF}, {0xFF}, {0xFF} - }, { // LEVEL - {0x0B}, {0x0B}, {0xFF}, {0xFF}, {0xFF}, {0xFF} - } -}; - - -static const struct BardSound BardMusic_STATUS[][6] = { - { // DARK - {0x29}, {0x11}, {0xFF}, {0xFF}, {0xFF}, {0xFF} - }, { // STENCH - {0x29}, {0x1A}, {0x0B}, {0xFF}, {0xFF}, {0xFF} - }, { // THICK FAT - {0x0B}, {0x11}, {0xFF}, {0xFF}, {0xFF}, {0xFF} - }, { // RAIN DISH - {0x0B}, {0x0B}, {0x0B}, {0xFF}, {0xFF}, {0xFF} - }, { // DRIZZLE - {0x11}, {0x0B}, {0x0B}, {0xFF}, {0xFF}, {0xFF} - }, { // ARENA TRAP - {0x02}, {0x0B}, {0x1A}, {0xFF}, {0xFF}, {0xFF} - }, { // INTIMIDATE - {0x0B}, {0x1A}, {0x0B}, {0xFF}, {0xFF}, {0xFF} - }, { // ROCK HEAD - {0x0B}, {0x11}, {0x02}, {0x29}, {0xFF}, {0xFF} - }, { // COLOR - {0x02}, {0x0B}, {0xFF}, {0xFF}, {0xFF}, {0xFF} - }, { // ALT. COLOR - {0x02}, {0x0B}, {0x02}, {0x0B}, {0xFF}, {0xFF} - }, { // ROCK - {0x0B}, {0x0B}, {0x11}, {0xFF}, {0xFF}, {0xFF} - }, { // BEAUTIFUL - {0x0B}, {0xFF}, {0xFF}, {0xFF}, {0xFF}, {0xFF} - }, { // BEAUTY - {0x0B}, {0x0B}, {0x11}, {0xFF}, {0xFF}, {0xFF} - }, { // AIR LOCK - {0x11}, {0x02}, {0x29}, {0xFF}, {0xFF}, {0xFF} - }, { // PSYCHIC - {0x11}, {0x1A}, {0xFF}, {0xFF}, {0xFF}, {0xFF} - }, { // HYPER CUTTER - {0x0B}, {0x0B}, {0x02}, {0xFF}, {0xFF}, {0xFF} - }, { // FIGHTING - {0x02}, {0xFF}, {0xFF}, {0xFF}, {0xFF}, {0xFF} - }, { // SHADOW TAG - {0x0B}, {0x0B}, {0x0B}, {0xFF}, {0xFF}, {0xFF} - }, { // SMART - {0x29}, {0xFF}, {0xFF}, {0xFF}, {0xFF}, {0xFF} - }, { // SMARTNESS - {0x29}, {0x0B}, {0x11}, {0xFF}, {0xFF}, {0xFF} - }, { // SPEED BOOST - {0x0B}, {0x1A}, {0x29}, {0xFF}, {0xFF}, {0xFF} - }, { // COOL - {0x29}, {0x29}, {0xFF}, {0xFF}, {0xFF}, {0xFF} - }, { // COOLNESS - {0x29}, {0x29}, {0x0B}, {0xFF}, {0xFF}, {0xFF} - }, { // BATTLE ARMOR - {0x02}, {0x02}, {0x0B}, {0xFF}, {0xFF}, {0xFF} - }, { // CUTE - {0x02}, {0x29}, {0x11}, {0xFF}, {0xFF}, {0xFF} - }, { // CUTENESS - {0x02}, {0x29}, {0xFF}, {0xFF}, {0xFF}, {0xFF} - }, { // STURDY - {0x1A}, {0x29}, {0x0B}, {0x11}, {0xFF}, {0xFF} - }, { // SUCTION CUPS - {0x02}, {0x29}, {0x02}, {0xFF}, {0xFF}, {0xFF} - }, { // GRASS - {0x02}, {0x0B}, {0xFF}, {0xFF}, {0xFF}, {0xFF} - }, { // CLEAR BODY - {0x0B}, {0x29}, {0x02}, {0x1A}, {0x1A}, {0xFF} - }, { // TORRENT - {0x29}, {0x02}, {0xFF}, {0xFF}, {0xFF}, {0xFF} - }, { // GHOST - {0x02}, {0x1A}, {0x1A}, {0xFF}, {0xFF}, {0xFF} - }, { // ICE - {0x0B}, {0x11}, {0xFF}, {0xFF}, {0xFF}, {0xFF} - }, { // GUTS - {0x02}, {0x0B}, {0x02}, {0x11}, {0xFF}, {0xFF} - }, { // ROUGH SKIN - {0x02}, {0x29}, {0x02}, {0x29}, {0xFF}, {0xFF} - }, { // SHELL ARMOR - {0x02}, {0x0B}, {0x02}, {0x29}, {0xFF}, {0xFF} - }, { // NATURAL CURE - {0x11}, {0x0B}, {0x0B}, {0x02}, {0xFF}, {0xFF} - }, { // DAMP - {0x0B}, {0x29}, {0x11}, {0x0B}, {0x11}, {0xFF} - }, { // GROUND - {0x1A}, {0xFF}, {0xFF}, {0xFF}, {0xFF}, {0xFF} - }, { // LIMBER - {0x0B}, {0x11}, {0x11}, {0x11}, {0x0B}, {0xFF} - }, { // MAGNET PULL - {0x02}, {0x0B}, {0x0B}, {0x0B}, {0xFF}, {0xFF} - }, { // WHITE SMOKE - {0x29}, {0x0B}, {0x02}, {0x29}, {0xFF}, {0xFF} - }, { // SYNCHRONIZE - {0x11}, {0x1A}, {0xFF}, {0xFF}, {0xFF}, {0xFF} - }, { // OVERGROW - {0x1A}, {0x11}, {0xFF}, {0xFF}, {0xFF}, {0xFF} - }, { // SWIFT SWIM - {0x02}, {0x0B}, {0x0B}, {0x1A}, {0xFF}, {0xFF} - }, { // SAND STREAM - {0x02}, {0x29}, {0xFF}, {0xFF}, {0xFF}, {0xFF} - }, { // SAND VEIL - {0x02}, {0x0B}, {0x11}, {0x0B}, {0xFF}, {0xFF} - }, { // KEEN EYE - {0x02}, {0x0B}, {0x02}, {0x29}, {0x0B}, {0xFF} - }, { // INNERFOCUS - {0x1A}, {0x0B}, {0x02}, {0x1A}, {0xFF}, {0xFF} - }, { // STATIC - {0x02}, {0x11}, {0xFF}, {0xFF}, {0xFF}, {0xFF} - }, { // TYPE - {0x11}, {0xFF}, {0xFF}, {0xFF}, {0xFF}, {0xFF} - }, { // TOUGH - {0x02}, {0xFF}, {0xFF}, {0xFF}, {0xFF}, {0xFF} - }, { // TOUGHNESS - {0x0B}, {0x0B}, {0xFF}, {0xFF}, {0xFF}, {0xFF} - }, { // SHED SKIN - {0x0B}, {0x11}, {0x0B}, {0x11}, {0xFF}, {0xFF} - }, { // HUGE POWER - {0x02}, {0x1A}, {0x1A}, {0xFF}, {0xFF}, {0xFF} - }, { // VOLT ABSORB - {0x1A}, {0x02}, {0x1A}, {0x0B}, {0xFF}, {0xFF} - }, { // WATER ABSORB - {0x02}, {0x0B}, {0x11}, {0x1A}, {0x02}, {0x1A} - }, { // ELECTRIC - {0x0B}, {0x0B}, {0x1A}, {0xFF}, {0xFF}, {0xFF} - }, { // FORECAST - {0x1A}, {0x1A}, {0x0B}, {0xFF}, {0xFF}, {0xFF} - }, { // SERENE GRACE - {0x0B}, {0x0B}, {0x29}, {0xFF}, {0xFF}, {0xFF} - }, { // POISON - {0x11}, {0xFF}, {0xFF}, {0xFF}, {0xFF}, {0xFF} - }, { // POISON POINT - {0x11}, {0x1A}, {0xFF}, {0xFF}, {0xFF}, {0xFF} - }, { // DRAGON - {0x02}, {0x0B}, {0xFF}, {0xFF}, {0xFF}, {0xFF} - }, { // TRACE - {0x0B}, {0x0B}, {0xFF}, {0xFF}, {0xFF}, {0xFF} - }, { // OBLIVIOUS - {0x0B}, {0x11}, {0x0B}, {0x11}, {0xFF}, {0xFF} - }, { // TRUANT - {0x02}, {0x02}, {0x0B}, {0xFF}, {0xFF}, {0xFF} - }, { // RUN AWAY - {0x02}, {0x02}, {0x0B}, {0xFF}, {0xFF}, {0xFF} - }, { // STICKY HOLD - {0x0B}, {0x0B}, {0x02}, {0x0B}, {0xFF}, {0xFF} - }, { // CLOUD NINE - {0x1A}, {0x0B}, {0x11}, {0x0B}, {0xFF}, {0xFF} - }, { // NORMAL - {0x1A}, {0x02}, {0xFF}, {0xFF}, {0xFF}, {0xFF} - }, { // STEEL - {0x02}, {0x02}, {0xFF}, {0xFF}, {0xFF}, {0xFF} - }, { // ILLUMINATE - {0x0B}, {0x0B}, {0x29}, {0x29}, {0xFF}, {0xFF} - }, { // EARLY BIRD - {0x11}, {0x0B}, {0x0B}, {0xFF}, {0xFF}, {0xFF} - }, { // HUSTLE - {0x11}, {0x0B}, {0x0B}, {0x11}, {0x0B}, {0xFF} - }, { // SHINE - {0x0B}, {0x11}, {0x0B}, {0xFF}, {0xFF}, {0xFF} - }, { // FLYING - {0x11}, {0x0B}, {0x0B}, {0xFF}, {0xFF}, {0xFF} - }, { // DROUGHT - {0x11}, {0x0B}, {0xFF}, {0xFF}, {0xFF}, {0xFF} - }, { // LIGHTNINGROD - {0x11}, {0x0B}, {0x0B}, {0xFF}, {0xFF}, {0xFF} - }, { // COMPOUNDEYES - {0x02}, {0x0B}, {0x0B}, {0x02}, {0x29}, {0xFF} - }, { // MARVEL SCALE - {0x1A}, {0x29}, {0xFF}, {0xFF}, {0xFF}, {0xFF} - }, { // WONDER GUARD - {0x29}, {0x0B}, {0x02}, {0x0B}, {0xFF}, {0xFF} - }, { // INSOMNIA - {0x11}, {0x1A}, {0x11}, {0x02}, {0xFF}, {0xFF} - }, { // LEVITATE - {0x0B}, {0x0B}, {0xFF}, {0xFF}, {0xFF}, {0xFF} - }, { // PLUS - {0x29}, {0xFF}, {0xFF}, {0xFF}, {0xFF}, {0xFF} - }, { // PRESSURE - {0x0B}, {0x11}, {0x0B}, {0xFF}, {0xFF}, {0xFF} - }, { // LIQUID OOZE - {0x1A}, {0x02}, {0x0B}, {0x1A}, {0x0B}, {0xFF} - }, { // COLOR CHANGE - {0x02}, {0x0B}, {0x0B}, {0xFF}, {0xFF}, {0xFF} - }, { // SOUNDPROOF - {0x0B}, {0x29}, {0xFF}, {0xFF}, {0xFF}, {0xFF} - }, { // EFFECT SPORE - {0x1A}, {0x0B}, {0x11}, {0xFF}, {0xFF}, {0xFF} - }, { // PKRS - {0x1A}, {0x0B}, {0x29}, {0xFF}, {0xFF}, {0xFF} - }, { // FIRE - {0x0B}, {0x29}, {0x0B}, {0xFF}, {0xFF}, {0xFF} - }, { // FLAME BODY - {0x02}, {0x0B}, {0x0B}, {0xFF}, {0xFF}, {0xFF} - }, { // MINUS - {0x11}, {0x29}, {0xFF}, {0xFF}, {0xFF}, {0xFF} - }, { // OWN TEMPO - {0x0B}, {0x1A}, {0x02}, {0x0B}, {0xFF}, {0xFF} - }, { // MAGMA ARMOR - {0x02}, {0x02}, {0x02}, {0x0B}, {0xFF}, {0xFF} - }, { // WATER - {0x02}, {0x0B}, {0xFF}, {0xFF}, {0xFF}, {0xFF} - }, { // WATER VEIL - {0x02}, {0x02}, {0x11}, {0x0B}, {0xFF}, {0xFF} - }, { // BUG - {0x0B}, {0x0B}, {0xFF}, {0xFF}, {0xFF}, {0xFF} - }, { // SWARM - {0x0B}, {0x02}, {0x02}, {0x02}, {0xFF}, {0xFF} - }, { // CUTE CHARM - {0x02}, {0x1A}, {0x0B}, {0xFF}, {0xFF}, {0xFF} - }, { // IMMUNITY - {0x11}, {0x29}, {0x11}, {0x0B}, {0xFF}, {0xFF} - }, { // BLAZE - {0x1A}, {0x02}, {0xFF}, {0xFF}, {0xFF}, {0xFF} - }, { // PICKUP - {0x11}, {0x02}, {0x0B}, {0xFF}, {0xFF}, {0xFF} - }, { // PATTERN - {0x29}, {0x0B}, {0xFF}, {0xFF}, {0xFF}, {0xFF} - }, { // FLASH FIRE - {0x0B}, {0x29}, {0x0B}, {0x0B}, {0xFF}, {0xFF} - }, { // VITAL SPIRIT - {0x29}, {0x0B}, {0x0B}, {0x11}, {0xFF}, {0xFF} - }, { // CHLOROPHYLL - {0x1A}, {0x1A}, {0x11}, {0xFF}, {0xFF}, {0xFF} - }, { // PURE POWER - {0x0B}, {0x02}, {0x02}, {0xFF}, {0xFF}, {0xFF} - }, { // SHIELD DUST - {0x29}, {0x0B}, {0x02}, {0x0B}, {0xFF}, {0xFF} - } -}; - - -static const struct BardSound BardMusic_BATTLE[][6] = { - { // MATCH UP - {0x02}, {0x1A}, {0x11}, {0x0B}, {0xFF}, {0xFF} - }, { // GO - {0x1A}, {0xFF}, {0xFF}, {0xFF}, {0xFF}, {0xFF} - }, { // NO. 1 - {0x29}, {0x0B}, {0x0B}, {0x11}, {0xFF}, {0xFF} - }, { // DECIDE - {0x0B}, {0x0B}, {0x11}, {0x0B}, {0xFF}, {0xFF} - }, { // LET ME WIN - {0x11}, {0x11}, {0x0B}, {0xFF}, {0xFF}, {0xFF} - }, { // WINS - {0x0B}, {0x11}, {0x0B}, {0xFF}, {0xFF}, {0xFF} - }, { // WIN - {0x0B}, {0x11}, {0x0B}, {0xFF}, {0xFF}, {0xFF} - }, { // WON - {0x0B}, {0x1A}, {0x0B}, {0xFF}, {0xFF}, {0xFF} - }, { // IF I WIN - {0x0B}, {0x11}, {0x0B}, {0x11}, {0xFF}, {0xFF} - }, { // WHEN I WIN - {0x11}, {0x0B}, {0x0B}, {0x11}, {0xFF}, {0xFF} - }, { // CAN'T WIN - {0x11}, {0x0B}, {0x29}, {0x0B}, {0x11}, {0xFF} - }, { // CAN WIN - {0x02}, {0x11}, {0x0B}, {0xFF}, {0xFF}, {0xFF} - }, { // NO MATCH - {0x29}, {0x0B}, {0x0B}, {0x0B}, {0xFF}, {0xFF} - }, { // SPIRIT - {0x0B}, {0x0B}, {0x0B}, {0xFF}, {0xFF}, {0xFF} - }, { // DECIDED - {0x0B}, {0x11}, {0x0B}, {0xFF}, {0xFF}, {0xFF} - }, { // TRUMP CARD - {0x29}, {0x02}, {0x0B}, {0xFF}, {0xFF}, {0xFF} - }, { // TAKE THAT - {0x11}, {0x02}, {0xFF}, {0xFF}, {0xFF}, {0xFF} - }, { // COME ON - {0x1A}, {0x1A}, {0xFF}, {0xFF}, {0xFF}, {0xFF} - }, { // ATTACK - {0x02}, {0x11}, {0xFF}, {0xFF}, {0xFF}, {0xFF} - }, { // SURRENDER - {0x0B}, {0x0B}, {0x0B}, {0xFF}, {0xFF}, {0xFF} - }, { // GUTSY - {0x02}, {0x0B}, {0x02}, {0x11}, {0xFF}, {0xFF} - }, { // TALENT - {0x02}, {0x0B}, {0x11}, {0xFF}, {0xFF}, {0xFF} - }, { // STRATEGY - {0x02}, {0x0B}, {0x11}, {0xFF}, {0xFF}, {0xFF} - }, { // SMITE - {0x02}, {0x0B}, {0xFF}, {0xFF}, {0xFF}, {0xFF} - }, { // MATCH - {0x02}, {0x11}, {0xFF}, {0xFF}, {0xFF}, {0xFF} - }, { // VICTORY - {0x11}, {0xFF}, {0xFF}, {0xFF}, {0xFF}, {0xFF} - }, { // OFFENSIVE - {0x1A}, {0x0B}, {0x11}, {0xFF}, {0xFF}, {0xFF} - }, { // SENSE - {0x11}, {0xFF}, {0xFF}, {0xFF}, {0xFF}, {0xFF} - }, { // VERSUS - {0x0B}, {0x0B}, {0xFF}, {0xFF}, {0xFF}, {0xFF} - }, { // FIGHTS - {0x0B}, {0x11}, {0x0B}, {0xFF}, {0xFF}, {0xFF} - }, { // POWER - {0x02}, {0xFF}, {0xFF}, {0xFF}, {0xFF}, {0xFF} - }, { // CHALLENGE - {0x0B}, {0x02}, {0x29}, {0x1A}, {0x0B}, {0x29} - }, { // STRONG - {0x02}, {0x0B}, {0xFF}, {0xFF}, {0xFF}, {0xFF} - }, { // TOO STRONG - {0x29}, {0x02}, {0xFF}, {0xFF}, {0xFF}, {0xFF} - }, { // GO EASY - {0x1A}, {0x0B}, {0xFF}, {0xFF}, {0xFF}, {0xFF} - }, { // FOE - {0x0B}, {0x0B}, {0xFF}, {0xFF}, {0xFF}, {0xFF} - }, { // GENIUS - {0x0B}, {0x11}, {0xFF}, {0xFF}, {0xFF}, {0xFF} - }, { // LEGEND - {0x0B}, {0x0B}, {0x0B}, {0xFF}, {0xFF}, {0xFF} - }, { // ESCAPE - {0x29}, {0xFF}, {0xFF}, {0xFF}, {0xFF}, {0xFF} - }, { // AIM - {0x11}, {0xFF}, {0xFF}, {0xFF}, {0xFF}, {0xFF} - }, { // BATTLE - {0x0B}, {0x0B}, {0xFF}, {0xFF}, {0xFF}, {0xFF} - }, { // FIGHT - {0x0B}, {0x0B}, {0xFF}, {0xFF}, {0xFF}, {0xFF} - }, { // RESUSCITATE - {0x0B}, {0x0B}, {0x0B}, {0xFF}, {0xFF}, {0xFF} - }, { // POINTS - {0x29}, {0x0B}, {0xFF}, {0xFF}, {0xFF}, {0xFF} - }, { // SERIOUS - {0x0B}, {0x02}, {0xFF}, {0xFF}, {0xFF}, {0xFF} - }, { // GIVE UP - {0x02}, {0x0B}, {0x0B}, {0xFF}, {0xFF}, {0xFF} - }, { // LOSS - {0x0B}, {0x29}, {0xFF}, {0xFF}, {0xFF}, {0xFF} - }, { // IF I LOSE - {0x0B}, {0x11}, {0x0B}, {0x11}, {0xFF}, {0xFF} - }, { // LOST - {0x0B}, {0x1A}, {0xFF}, {0xFF}, {0xFF}, {0xFF} - }, { // LOSE - {0x0B}, {0x11}, {0x0B}, {0xFF}, {0xFF}, {0xFF} - }, { // GUARD - {0x02}, {0x0B}, {0xFF}, {0xFF}, {0xFF}, {0xFF} - }, { // PARTNER - {0x02}, {0x0B}, {0xFF}, {0xFF}, {0xFF}, {0xFF} - }, { // REJECT - {0x02}, {0x0B}, {0x0B}, {0xFF}, {0xFF}, {0xFF} - }, { // ACCEPT - {0x02}, {0x0B}, {0x11}, {0x0B}, {0xFF}, {0xFF} - }, { // INVINCIBLE - {0x29}, {0x02}, {0x02}, {0xFF}, {0xFF}, {0xFF} - }, { // RECEIVED - {0x0B}, {0x02}, {0x0B}, {0xFF}, {0xFF}, {0xFF} - }, { // EASY - {0x0B}, {0x11}, {0xFF}, {0xFF}, {0xFF}, {0xFF} - }, { // WEAK - {0x02}, {0xFF}, {0xFF}, {0xFF}, {0xFF}, {0xFF} - }, { // TOO WEAK - {0x29}, {0x02}, {0xFF}, {0xFF}, {0xFF}, {0xFF} - }, { // PUSHOVER - {0x02}, {0x02}, {0x11}, {0xFF}, {0xFF}, {0xFF} - }, { // LEADER - {0x0B}, {0x11}, {0x0B}, {0xFF}, {0xFF}, {0xFF} - }, { // RULE - {0x0B}, {0x0B}, {0xFF}, {0xFF}, {0xFF}, {0xFF} - }, { // MOVE - {0x02}, {0x02}, {0x0B}, {0xFF}, {0xFF}, {0xFF} - } -}; - - -static const struct BardSound BardMusic_GREETINGS[][6] = { - { // THANKS - {0x02}, {0xFF}, {0xFF}, {0xFF}, {0xFF}, {0xFF} - }, { // YES - {0x02}, {0xFF}, {0xFF}, {0xFF}, {0xFF}, {0xFF} - }, { // HERE GOES - {0x11}, {0x1A}, {0xFF}, {0xFF}, {0xFF}, {0xFF} - }, { // HERE I COME - {0x11}, {0x11}, {0x11}, {0xFF}, {0xFF}, {0xFF} - }, { // HERE IT IS - {0x11}, {0x11}, {0x0B}, {0xFF}, {0xFF}, {0xFF} - }, { // YEAH - {0x0B}, {0x02}, {0xFF}, {0xFF}, {0xFF}, {0xFF} - }, { // WELCOME - {0x11}, {0x1A}, {0x0B}, {0xFF}, {0xFF}, {0xFF} - }, { // OI - {0x02}, {0x29}, {0xFF}, {0xFF}, {0xFF}, {0xFF} - }, { // HOW DO - {0x11}, {0xFF}, {0xFF}, {0xFF}, {0xFF}, {0xFF} - }, { // CONGRATS - {0x11}, {0x29}, {0xFF}, {0xFF}, {0xFF}, {0xFF} - }, { // GIVE ME - {0x11}, {0xFF}, {0xFF}, {0xFF}, {0xFF}, {0xFF} - }, { // SORRY - {0x1A}, {0x11}, {0xFF}, {0xFF}, {0xFF}, {0xFF} - }, { // APOLOGIZE - {0x0B}, {0x0B}, {0x11}, {0x29}, {0xFF}, {0xFF} - }, { // FORGIVE - {0x1A}, {0x29}, {0xFF}, {0xFF}, {0xFF}, {0xFF} - }, { // HEY, THERE - {0x1A}, {0x29}, {0xFF}, {0xFF}, {0xFF}, {0xFF} - }, { // HELLO - {0x02}, {0x1A}, {0xFF}, {0xFF}, {0xFF}, {0xFF} - }, { // GOOD-BYE - {0x11}, {0xFF}, {0xFF}, {0xFF}, {0xFF}, {0xFF} - }, { // THANK YOU - {0x02}, {0x0B}, {0xFF}, {0xFF}, {0xFF}, {0xFF} - }, { // I'VE ARRIVED - {0x11}, {0x11}, {0x02}, {0xFF}, {0xFF}, {0xFF} - }, { // PARDON - {0x02}, {0x1A}, {0xFF}, {0xFF}, {0xFF}, {0xFF} - }, { // EXCUSE - {0x02}, {0x0B}, {0xFF}, {0xFF}, {0xFF}, {0xFF} - }, { // SEE YA - {0x11}, {0x02}, {0xFF}, {0xFF}, {0xFF}, {0xFF} - }, { // EXCUSE ME - {0x0B}, {0x29}, {0x11}, {0x0B}, {0xFF}, {0xFF} - }, { // WELL, THEN - {0x29}, {0x02}, {0xFF}, {0xFF}, {0xFF}, {0xFF} - }, { // GO AHEAD - {0x0B}, {0x11}, {0x1A}, {0xFF}, {0xFF}, {0xFF} - }, { // APPRECIATE - {0x0B}, {0x0B}, {0xFF}, {0xFF}, {0xFF}, {0xFF} - }, { // HEY? - {0x0B}, {0x0B}, {0xFF}, {0xFF}, {0xFF}, {0xFF} - }, { // WHAT'S UP? - {0x02}, {0x11}, {0x1A}, {0xFF}, {0xFF}, {0xFF} - }, { // HUH? - {0x11}, {0x0B}, {0xFF}, {0xFF}, {0xFF}, {0xFF} - }, { // NO - {0x0B}, {0x11}, {0xFF}, {0xFF}, {0xFF}, {0xFF} - }, { // HI - {0x02}, {0x02}, {0x29}, {0xFF}, {0xFF}, {0xFF} - }, { // YEAH, YEAH - {0x0B}, {0x02}, {0x0B}, {0x02}, {0xFF}, {0xFF} - }, { // BYE-BYE - {0x02}, {0x29}, {0xFF}, {0xFF}, {0xFF}, {0xFF} - }, { // MEET YOU - {0x11}, {0x02}, {0xFF}, {0xFF}, {0xFF}, {0xFF} - }, { // HEY - {0x0B}, {0x0B}, {0xFF}, {0xFF}, {0xFF}, {0xFF} - }, { // SMELL - {0x0B}, {0x29}, {0xFF}, {0xFF}, {0xFF}, {0xFF} - }, { // LISTENING - {0x0B}, {0x29}, {0xFF}, {0xFF}, {0xFF}, {0xFF} - }, { // HOO-HAH - {0x29}, {0x02}, {0xFF}, {0xFF}, {0xFF}, {0xFF} - }, { // YAHOO - {0x29}, {0x29}, {0x29}, {0xFF}, {0xFF}, {0xFF} - }, { // YO - {0x0B}, {0xFF}, {0xFF}, {0xFF}, {0xFF}, {0xFF} - }, { // COME OVER - {0x02}, {0x1A}, {0xFF}, {0xFF}, {0xFF}, {0xFF} - }, { // COUNT ON - {0x0B}, {0x0B}, {0x02}, {0x29}, {0xFF}, {0xFF} - } -}; - - -static const struct BardSound BardMusic_PEOPLE[][6] = { - { // OPPONENT - {0x0B}, {0x11}, {0xFF}, {0xFF}, {0xFF}, {0xFF} - }, { // I - {0x11}, {0xFF}, {0xFF}, {0xFF}, {0xFF}, {0xFF} - }, { // YOU - {0x29}, {0xFF}, {0xFF}, {0xFF}, {0xFF}, {0xFF} - }, { // YOURS - {0x0B}, {0x11}, {0x0B}, {0xFF}, {0xFF}, {0xFF} - }, { // SON - {0x0B}, {0x11}, {0xFF}, {0xFF}, {0xFF}, {0xFF} - }, { // YOUR - {0x0B, 0xF7}, {0x11}, {0x0B}, {0xFF}, {0xFF}, {0xFF} - }, { // YOU'RE - {0x29}, {0x11}, {0xFF}, {0xFF}, {0xFF}, {0xFF} - }, { // YOU'VE - {0x29}, {0x02}, {0xFF}, {0xFF}, {0xFF}, {0xFF} - }, { // MOTHER - {0x29}, {0x0B}, {0xFF}, {0xFF}, {0xFF}, {0xFF} - }, { // GRANDFATHER - {0x1A}, {0x02}, {0x0B}, {0xFF}, {0xFF}, {0xFF} - }, { // UNCLE - {0x1A}, {0x0B}, {0xFF}, {0xFF}, {0xFF}, {0xFF} - }, { // FATHER - {0x02}, {0x0B}, {0xFF}, {0xFF}, {0xFF}, {0xFF} - }, { // BOY - {0x29}, {0x0B}, {0xFF}, {0xFF}, {0xFF}, {0xFF} - }, { // ADULT - {0x0B}, {0x02}, {0x0B}, {0x0B}, {0xFF}, {0xFF} - }, { // BROTHER - {0x29}, {0x0B}, {0xFF}, {0xFF}, {0xFF}, {0xFF} - }, { // SISTER - {0x0B}, {0x0B}, {0xFF}, {0xFF}, {0xFF}, {0xFF} - }, { // GRANDMOTHER - {0x1A}, {0x29}, {0x0B}, {0xFF}, {0xFF}, {0xFF} - }, { // AUNT - {0x02}, {0x0B}, {0xFF}, {0xFF}, {0xFF}, {0xFF} - }, { // PARENT - {0x0B}, {0x0B}, {0xFF}, {0xFF}, {0xFF}, {0xFF} - }, { // MAN - {0x02}, {0xFF}, {0xFF}, {0xFF}, {0xFF}, {0xFF} - }, { // ME - {0x11}, {0xFF}, {0xFF}, {0xFF}, {0xFF}, {0xFF} - }, { // GIRL - {0x0B}, {0x0B}, {0xFF}, {0xFF}, {0xFF}, {0xFF} - }, { // BABE - {0x11}, {0xFF}, {0xFF}, {0xFF}, {0xFF}, {0xFF} - }, { // FAMILY - {0x02}, {0x11}, {0x11}, {0x0B}, {0xFF}, {0xFF} - }, { // HER - {0x11}, {0xFF}, {0xFF}, {0xFF}, {0xFF}, {0xFF} - }, { // HIM - {0x11}, {0xFF}, {0xFF}, {0xFF}, {0xFF}, {0xFF} - }, { // HE - {0x0B}, {0xFF}, {0xFF}, {0xFF}, {0xFF}, {0xFF} - }, { // PLACE - {0x1A}, {0xFF}, {0xFF}, {0xFF}, {0xFF}, {0xFF} - }, { // DAUGHTER - {0x1A}, {0x0B}, {0x0B}, {0xFF}, {0xFF}, {0xFF} - }, { // HIS - {0x0B}, {0x11}, {0xFF}, {0xFF}, {0xFF}, {0xFF} - }, { // HE'S - {0x0B}, {0x11}, {0xFF}, {0xFF}, {0xFF}, {0xFF} - }, { // AREN'T - {0x11}, {0x11}, {0xFF}, {0xFF}, {0xFF}, {0xFF} - }, { // SIBLINGS - {0x0B}, {0x11}, {0x0B}, {0xFF}, {0xFF}, {0xFF} - }, { // KID - {0x11}, {0x0B}, {0xFF}, {0xFF}, {0xFF}, {0xFF} - }, { // CHILDREN - {0x11}, {0x0B}, {0xFF}, {0xFF}, {0xFF}, {0xFF} - }, { // MR. - {0x0B}, {0xFF}, {0xFF}, {0xFF}, {0xFF}, {0xFF} - }, { // MRS. - {0x02}, {0x29}, {0xFF}, {0xFF}, {0xFF}, {0xFF} - }, { // MYSELF - {0x11}, {0xFF}, {0xFF}, {0xFF}, {0xFF}, {0xFF} - }, { // I WAS - {0x11}, {0x02}, {0xFF}, {0xFF}, {0xFF}, {0xFF} - }, { // TO ME - {0x29}, {0x11}, {0xFF}, {0xFF}, {0xFF}, {0xFF} - }, { // MY - {0x0B}, {0x11}, {0xFF}, {0xFF}, {0xFF}, {0xFF} - }, { // I AM - {0x11}, {0x02}, {0xFF}, {0xFF}, {0xFF}, {0xFF} - }, { // I'VE - {0x11}, {0x02}, {0xFF}, {0xFF}, {0xFF}, {0xFF} - }, { // WHO - {0x0B}, {0xFF}, {0xFF}, {0xFF}, {0xFF}, {0xFF} - }, { // SOMEONE - {0x0B}, {0x02}, {0xFF}, {0xFF}, {0xFF}, {0xFF} - }, { // WHO WAS - {0x0B}, {0x11}, {0x0B}, {0xFF}, {0xFF}, {0xFF} - }, { // TO WHOM - {0x0B}, {0x0B}, {0xFF}, {0xFF}, {0xFF}, {0xFF} - }, { // WHOSE - {0x0B}, {0x0B}, {0xFF}, {0xFF}, {0xFF}, {0xFF} - }, { // WHO IS - {0x0B}, {0x11}, {0xFF}, {0xFF}, {0xFF}, {0xFF} - }, { // IT'S - {0x02}, {0x11}, {0xFF}, {0xFF}, {0xFF}, {0xFF} - }, { // LADY - {0x02}, {0x0B}, {0xFF}, {0xFF}, {0xFF}, {0xFF} - }, { // FRIEND - {0x0B}, {0x29}, {0xFF}, {0xFF}, {0xFF}, {0xFF} - }, { // ALLY - {0x0B}, {0x11}, {0x0B}, {0x0B}, {0xFF}, {0xFF} - }, { // PERSON - {0x0B}, {0x1A}, {0xFF}, {0xFF}, {0xFF}, {0xFF} - }, { // DUDE - {0x11}, {0x0B}, {0xFF}, {0xFF}, {0xFF}, {0xFF} - }, { // THEY - {0x11}, {0x0B}, {0xFF}, {0xFF}, {0xFF}, {0xFF} - }, { // THEY WERE - {0x11}, {0x02}, {0xFF}, {0xFF}, {0xFF}, {0xFF} - }, { // TO THEM - {0x11}, {0x11}, {0xFF}, {0xFF}, {0xFF}, {0xFF} - }, { // THEIR - {0x0B}, {0x29}, {0xFF}, {0xFF}, {0xFF}, {0xFF} - }, { // THEY'RE - {0x11}, {0x11}, {0xFF}, {0xFF}, {0xFF}, {0xFF} - }, { // THEY'VE - {0x11}, {0x02}, {0xFF}, {0xFF}, {0xFF}, {0xFF} - }, { // WE - {0x11}, {0xFF}, {0xFF}, {0xFF}, {0xFF}, {0xFF} - }, { // BEEN - {0x02}, {0x0B}, {0xFF}, {0xFF}, {0xFF}, {0xFF} - }, { // TO US - {0x11}, {0x29}, {0xFF}, {0xFF}, {0xFF}, {0xFF} - }, { // OUR - {0x29}, {0x0B}, {0xFF}, {0xFF}, {0xFF}, {0xFF} - }, { // WE'RE - {0x11}, {0x11}, {0xFF}, {0xFF}, {0xFF}, {0xFF} - }, { // RIVAL - {0x11}, {0x02}, {0x0B}, {0xFF}, {0xFF}, {0xFF} - }, { // WE'VE - {0x11}, {0x02}, {0x0B}, {0xFF}, {0xFF}, {0xFF} - }, { // WOMAN - {0x11}, {0x1A}, {0xFF}, {0xFF}, {0xFF}, {0xFF} - }, { // SHE - {0x11}, {0xFF}, {0xFF}, {0xFF}, {0xFF}, {0xFF} - }, { // SHE WAS - {0x11}, {0x02}, {0xFF}, {0xFF}, {0xFF}, {0xFF} - }, { // TO HER - {0x11}, {0x02}, {0xFF}, {0xFF}, {0xFF}, {0xFF} - }, { // HER'S - {0x0B}, {0x29}, {0x0B}, {0xFF}, {0xFF}, {0xFF} - }, { // SHE IS - {0x11}, {0x11}, {0xFF}, {0xFF}, {0xFF}, {0xFF} - }, { // SOME - {0x11}, {0x02}, {0x0B}, {0xFF}, {0xFF}, {0xFF} - } -}; - - -static const struct BardSound BardMusic_VOICES[][6] = { - { // ! - {0xFF}, {0xFF}, {0xFF}, {0xFF}, {0xFF}, {0xFF} - }, { // !! - {0xFF}, {0xFF}, {0xFF}, {0xFF}, {0xFF}, {0xFF} - }, { // ?! - {0xFF}, {0xFF}, {0xFF}, {0xFF}, {0xFF}, {0xFF} - }, { // ? - {0x29}, {0xFF}, {0xFF}, {0xFF}, {0xFF}, {0xFF} - }, { // … - {0x0B}, {0x11}, {0x0B}, {0xFF}, {0xFF}, {0xFF} - }, { // …! - {0x0B}, {0x11}, {0x0B}, {0xFF}, {0xFF}, {0xFF} - }, { // ……… - {0x0B}, {0x11}, {0x0B}, {0xFF}, {0xFF}, {0xFF} - }, { // - - {0xFF}, {0xFF}, {0xFF}, {0xFF}, {0xFF}, {0xFF} - }, { // - - - - {0xFF}, {0xFF}, {0xFF}, {0xFF}, {0xFF}, {0xFF} - }, { // UH-OH - {0x1A}, {0x1A}, {0xFF}, {0xFF}, {0xFF}, {0xFF} - }, { // WAAAH - {0x02, 0x05, 0x08}, {0x02}, {0x02}, {0xFF}, {0xFF}, {0xFF} - }, { // AHAHA - {0x02}, {0x02}, {0x02}, {0xFF}, {0xFF}, {0xFF} - }, { // OH? - {0x1A}, {0xFF}, {0xFF}, {0xFF}, {0xFF}, {0xFF} - }, { // NOPE - {0x0B}, {0xFF}, {0xFF}, {0xFF}, {0xFF}, {0xFF} - }, { // URGH - {0x02}, {0xFF}, {0xFF}, {0xFF}, {0xFF}, {0xFF} - }, { // HMM - {0x02}, {0xFF}, {0xFF}, {0xFF}, {0xFF}, {0xFF} - }, { // WHOAH - {0x1A}, {0x1A}, {0x1A}, {0xFF}, {0xFF}, {0xFF} - }, { // WROOOAAR! - {0x1A}, {0x1A}, {0x1A}, {0x02}, {0xFF}, {0xFF} - }, { // WOW - {0x1A}, {0xFF}, {0xFF}, {0xFF}, {0xFF}, {0xFF} - }, { // GIGGLE - {0x11}, {0x0B}, {0xFF}, {0xFF}, {0xFF}, {0xFF} - }, { // SIGH - {0x0B}, {0x29}, {0xFF}, {0xFF}, {0xFF}, {0xFF} - }, { // UNBELIEVABLE - {0x29}, {0x02}, {0x29}, {0x11}, {0xFF}, {0xFF} - }, { // CRIES - {0x0B}, {0x11}, {0xFF}, {0xFF}, {0xFF}, {0xFF} - }, { // AGREE - {0x11}, {0x11}, {0xFF}, {0xFF}, {0xFF}, {0xFF} - }, { // EH? - {0x0B}, {0xFF}, {0xFF}, {0xFF}, {0xFF}, {0xFF} - }, { // CRY - {0x0B}, {0x11}, {0xFF}, {0xFF}, {0xFF}, {0xFF} - }, { // EHEHE - {0x0B}, {0x0B}, {0x0B}, {0xFF}, {0xFF}, {0xFF} - }, { // OI, OI, OI - {0x1A}, {0x0B}, {0x1A}, {0x0B}, {0x1A}, {0x0B} - }, { // OH, YEAH - {0x1A}, {0x0B}, {0x02}, {0xFF}, {0xFF}, {0xFF} - }, { // OH - {0x1A}, {0xFF}, {0xFF}, {0xFF}, {0xFF}, {0xFF} - }, { // OOPS - {0x29}, {0xFF}, {0xFF}, {0xFF}, {0xFF}, {0xFF} - }, { // SHOCKED - {0x0B}, {0x1A}, {0xFF}, {0xFF}, {0xFF}, {0xFF} - }, { // EEK - {0x11}, {0x11}, {0xFF}, {0xFF}, {0xFF}, {0xFF} - }, { // GRAAAH - {0x02}, {0x02}, {0x02}, {0xFF}, {0xFF}, {0xFF} - }, { // GWAHAHAHA - {0x02}, {0x02}, {0x02}, {0x02}, {0xFF}, {0xFF} - }, { // WAY - {0x02}, {0xFF}, {0xFF}, {0xFF}, {0xFF}, {0xFF} - }, { // TCH - {0x0B}, {0xFF}, {0xFF}, {0xFF}, {0xFF}, {0xFF} - }, { // HEHE - {0x0B}, {0x0B}, {0xFF}, {0xFF}, {0xFF}, {0xFF} - }, { // HAH - {0x02}, {0xFF}, {0xFF}, {0xFF}, {0xFF}, {0xFF} - }, { // YUP - {0x02}, {0x02}, {0x02}, {0xFF}, {0xFF}, {0xFF} - }, { // HAHAHA - {0x02}, {0x02}, {0x02}, {0xFF}, {0xFF}, {0xFF} - }, { // AIYEEH - {0x02}, {0x11}, {0x11}, {0x0B}, {0x0B}, {0xFF} - }, { // HIYAH - {0x11}, {0x11}, {0x02}, {0xFF}, {0xFF}, {0xFF} - }, { // FUFUFU - {0x0B}, {0x0B}, {0x0B}, {0xFF}, {0xFF}, {0xFF} - }, { // LOL - {0x11}, {0x02}, {0xFF}, {0xFF}, {0xFF}, {0xFF} - }, { // SNORT - {0x29}, {0xFF}, {0xFF}, {0xFF}, {0xFF}, {0xFF} - }, { // HUMPH - {0x02}, {0xFF}, {0xFF}, {0xFF}, {0xFF}, {0xFF} - }, { // HEHEHE - {0x0B}, {0x0B}, {0x0B}, {0xFF}, {0xFF}, {0xFF} - }, { // HEH - {0x0B}, {0xFF}, {0xFF}, {0xFF}, {0xFF}, {0xFF} - }, { // HOHOHO - {0x1A}, {0x1A}, {0x1A}, {0xFF}, {0xFF}, {0xFF} - }, { // UH-HUH - {0x29}, {0x11}, {0x29}, {0x11}, {0xFF}, {0xFF} - }, { // OH, DEAR - {0x0B}, {0x11}, {0x0B}, {0x11}, {0x0B}, {0xFF} - }, { // ARRGH - {0x02}, {0x02}, {0x02}, {0xFF}, {0xFF}, {0xFF} - }, { // MUFUFU - {0x11}, {0x11}, {0x11}, {0xFF}, {0xFF}, {0xFF} - }, { // MMM - {0x0B}, {0xFF}, {0xFF}, {0xFF}, {0xFF}, {0xFF} - }, { // OH-KAY - {0x1A}, {0x02}, {0x11}, {0xFF}, {0xFF}, {0xFF} - }, { // OKAY - {0x29}, {0x11}, {0xFF}, {0xFF}, {0xFF}, {0xFF} - }, { // LALALA - {0x02}, {0x02}, {0x02}, {0xFF}, {0xFF}, {0xFF} - }, { // YAY - {0x02}, {0x02}, {0xFF}, {0xFF}, {0xFF}, {0xFF} - }, { // AWW - {0x29}, {0xFF}, {0xFF}, {0xFF}, {0xFF}, {0xFF} - }, { // WOWEE - {0x29}, {0x0B}, {0x0B}, {0xFF}, {0xFF}, {0xFF} - }, { // GWAH - {0x0B}, {0xFF}, {0xFF}, {0xFF}, {0xFF}, {0xFF} - }, { // WAHAHAHA - {0x02}, {0x02}, {0x02}, {0x02}, {0xFF}, {0xFF} - } -}; - - -static const struct BardSound BardMusic_SPEECH[][6] = { - { // LISTEN - {0x29}, {0x0B}, {0x0B}, {0xFF}, {0xFF}, {0xFF} - }, { // NOT VERY - {0x11}, {0x0B}, {0xFF}, {0xFF}, {0xFF}, {0xFF} - }, { // MEAN - {0x0B}, {0x0B}, {0x11}, {0xFF}, {0xFF}, {0xFF} - }, { // LIE - {0x11}, {0x0B}, {0xFF}, {0xFF}, {0xFF}, {0xFF} - }, { // LAY - {0x0B}, {0x1A}, {0x0B}, {0xFF}, {0xFF}, {0xFF} - }, { // RECOMMEND - {0x0B}, {0x1A}, {0x0B}, {0xFF}, {0xFF}, {0xFF} - }, { // NITWIT - {0x0B}, {0x1A}, {0xFF}, {0xFF}, {0xFF}, {0xFF} - }, { // QUITE - {0x11}, {0x11}, {0xFF}, {0xFF}, {0xFF}, {0xFF} - }, { // FROM - {0x1A}, {0xFF}, {0xFF}, {0xFF}, {0xFF}, {0xFF} - }, { // FEELING - {0x11}, {0x0B}, {0xFF}, {0xFF}, {0xFF}, {0xFF} - }, { // BUT - {0x02}, {0x0B}, {0xFF}, {0xFF}, {0xFF}, {0xFF} - }, { // HOWEVER - {0x0B}, {0x1A}, {0xFF}, {0xFF}, {0xFF}, {0xFF} - }, { // CASE - {0x02}, {0xFF}, {0xFF}, {0xFF}, {0xFF}, {0xFF} - }, { // THE - {0x0B}, {0xFF}, {0xFF}, {0xFF}, {0xFF}, {0xFF} - }, { // MISS - {0x02}, {0x0B}, {0x0B}, {0xFF}, {0xFF}, {0xFF} - }, { // HOW - {0x0B}, {0x02}, {0x29}, {0x11}, {0xFF}, {0xFF} - }, { // HIT - {0x0B}, {0x0B}, {0xFF}, {0xFF}, {0xFF}, {0xFF} - }, { // ENOUGH - {0x0B}, {0x11}, {0x02}, {0x29}, {0xFF}, {0xFF} - }, { // A LOT - {0x11}, {0x0B}, {0xFF}, {0xFF}, {0xFF}, {0xFF} - }, { // A LITTLE - {0x0B}, {0x11}, {0x11}, {0x0B}, {0xFF}, {0xFF} - }, { // ABSOLUTELY - {0x11}, {0x0B}, {0xFF}, {0xFF}, {0xFF}, {0xFF} - }, { // AND - {0x29}, {0xFF}, {0xFF}, {0xFF}, {0xFF}, {0xFF} - }, { // ONLY - {0x29}, {0xFF}, {0xFF}, {0xFF}, {0xFF}, {0xFF} - }, { // AROUND - {0x0B}, {0x02}, {0xFF}, {0xFF}, {0xFF}, {0xFF} - }, { // PROBABLY - {0x0B}, {0x0B}, {0x29}, {0x0B}, {0xFF}, {0xFF} - }, { // IF - {0x0B}, {0xFF}, {0xFF}, {0xFF}, {0xFF}, {0xFF} - }, { // VERY - {0x0B}, {0xFF}, {0xFF}, {0xFF}, {0xFF}, {0xFF} - }, { // A TINY BIT - {0x0B}, {0x11}, {0xFF}, {0xFF}, {0xFF}, {0xFF} - }, { // WILD - {0x11}, {0xFF}, {0xFF}, {0xFF}, {0xFF}, {0xFF} - }, { // THAT'S - {0x1A}, {0x02}, {0xFF}, {0xFF}, {0xFF}, {0xFF} - }, { // JUST - {0x1A}, {0xFF}, {0xFF}, {0xFF}, {0xFF}, {0xFF} - }, { // EVEN SO, {0x0C}, {0x0B}, {0x1A}, {0x33}, {0xFF}, {0xFF} - {0x1A}, {0x0B}, {0xFF}, {0xFF}, {0xFF}, {0xFF} - }, { // MUST BE - {0x29}, {0xFF}, {0xFF}, {0xFF}, {0xFF}, {0xFF} - }, { // NATURALLY - {0x0B}, {0x0B}, {0x11}, {0xFF}, {0xFF}, {0xFF} - }, { // FOR NOW, {0x1A}, {0x23}, {0xFF}, {0x33}, {0xFF}, {0xFF} - {0x11}, {0x29}, {0xFF}, {0xFF}, {0xFF}, {0xFF} - }, { // UNDERSTOOD - {0x0B}, {0x02}, {0x0B}, {0xFF}, {0xFF}, {0xFF} - }, { // JOKING - {0x0B}, {0x0B}, {0xFF}, {0xFF}, {0xFF}, {0xFF} - }, { // READY - {0x0B}, {0x0B}, {0x11}, {0xFF}, {0xFF}, {0xFF} - }, { // SOMETHING - {0x0B}, {0x02}, {0xFF}, {0xFF}, {0xFF}, {0xFF} - }, { // SOMEHOW - {0x11}, {0x0B}, {0x11}, {0x0B}, {0xFF}, {0xFF} - }, { // ALTHOUGH - {0x1A}, {0x1A}, {0xFF}, {0xFF}, {0xFF}, {0xFF} - }, { // ALSO - {0x02}, {0x1A}, {0xFF}, {0xFF}, {0xFF}, {0xFF} - }, { // PERFECT - {0x0B}, {0x0B}, {0xFF}, {0xFF}, {0xFF}, {0xFF} - }, { // AS MUCH AS - {0x1A}, {0x11}, {0x11}, {0xFF}, {0xFF}, {0xFF} - }, { // REALLY - {0x0B}, {0x11}, {0xFF}, {0xFF}, {0xFF}, {0xFF} - }, { // TRULY - {0x02}, {0x02}, {0x11}, {0xFF}, {0xFF}, {0xFF} - }, { // SERIOUSLY - {0x0B}, {0xFF}, {0xFF}, {0xFF}, {0xFF}, {0xFF} - }, { // TOTALLY - {0x1A}, {0xFF}, {0xFF}, {0xFF}, {0xFF}, {0xFF} - }, { // UNTIL - {0x11}, {0xFF}, {0xFF}, {0xFF}, {0xFF}, {0xFF} - }, { // AS IF - {0x02}, {0x1A}, {0xFF}, {0xFF}, {0xFF}, {0xFF} - }, { // MOOD - {0x02}, {0x29}, {0x0B}, {0xFF}, {0xFF}, {0xFF} - }, { // RATHER - {0x0B}, {0x0B}, {0xFF}, {0xFF}, {0xFF}, {0xFF} - }, { // AWFULLY - {0x29}, {0x02}, {0xFF}, {0xFF}, {0xFF}, {0xFF} - }, { // MODE - {0x0B}, {0x0B}, {0xFF}, {0xFF}, {0xFF}, {0xFF} - }, { // MORE - {0x0B}, {0xFF}, {0xFF}, {0xFF}, {0xFF}, {0xFF} - }, { // TOO LATE - {0x29}, {0x0B}, {0xFF}, {0xFF}, {0xFF}, {0xFF} - }, { // FINALLY - {0x0B}, {0x11}, {0xFF}, {0xFF}, {0xFF}, {0xFF} - }, { // ANY - {0x11}, {0x0B}, {0x0B}, {0x11}, {0xFF}, {0xFF} - }, { // INSTEAD - {0x02}, {0xFF}, {0xFF}, {0xFF}, {0xFF}, {0xFF} - }, { // FANTASTIC - {0x02}, {0x02}, {0x11}, {0xFF}, {0xFF}, {0xFF} - } -}; - - -static const struct BardSound BardMusic_ENDINGS[][6] = { - { // WILL - {0x0B}, {0x0B}, {0xFF}, {0xFF}, {0xFF}, {0xFF} - }, { // WILL BE HERE - {0x11}, {0x02}, {0x0B}, {0x11}, {0xFF}, {0xFF} - }, { // OR - {0x1A}, {0x0B}, {0xFF}, {0xFF}, {0xFF}, {0xFF} - }, { // TIMES - {0x0B}, {0x11}, {0x0B}, {0xFF}, {0xFF}, {0xFF} - }, { // WONDER - {0x29}, {0x0B}, {0xFF}, {0xFF}, {0xFF}, {0xFF} - }, { // IS IT? - {0x0B}, {0x11}, {0xFF}, {0xFF}, {0xFF}, {0xFF} - }, { // BE - {0x0B}, {0x11}, {0xFF}, {0xFF}, {0xFF}, {0xFF} - }, { // GIMME - {0x11}, {0x11}, {0xFF}, {0xFF}, {0xFF}, {0xFF} - }, { // COULD - {0x0B}, {0x0B}, {0xFF}, {0xFF}, {0xFF}, {0xFF} - }, { // LIKELY TO - {0x0B}, {0x29}, {0x11}, {0xFF}, {0xFF}, {0xFF} - }, { // WOULD - {0x11}, {0x0B}, {0xFF}, {0xFF}, {0xFF}, {0xFF} - }, { // IS - {0x11}, {0xFF}, {0xFF}, {0xFF}, {0xFF}, {0xFF} - }, { // ISN'T IT? - {0x11}, {0x02}, {0xFF}, {0xFF}, {0xFF}, {0xFF} - }, { // LET'S - {0x02}, {0x29}, {0xFF}, {0xFF}, {0xFF}, {0xFF} - }, { // OTHER - {0x02}, {0x0B}, {0x0B}, {0xFF}, {0xFF}, {0xFF} - }, { // ARE - {0x11}, {0xFF}, {0xFF}, {0xFF}, {0xFF}, {0xFF} - }, { // WAS - {0x02}, {0xFF}, {0xFF}, {0xFF}, {0xFF}, {0xFF} - }, { // WERE - {0x29}, {0x0B}, {0xFF}, {0xFF}, {0xFF}, {0xFF} - }, { // THOSE - {0x11}, {0xFF}, {0xFF}, {0xFF}, {0xFF}, {0xFF} - }, { // ISN'T - {0x11}, {0x0B}, {0x11}, {0xFF}, {0xFF}, {0xFF} - }, { // WON'T - {0x0B}, {0x0B}, {0x11}, {0xFF}, {0xFF}, {0xFF} - }, { // CAN'T - {0x02}, {0xFF}, {0xFF}, {0xFF}, {0xFF}, {0xFF} - }, { // CAN - {0x0B}, {0x0B}, {0xFF}, {0xFF}, {0xFF}, {0xFF} - }, { // DON'T - {0x11}, {0xFF}, {0xFF}, {0xFF}, {0xFF}, {0xFF} - }, { // DO - {0x02}, {0x0B}, {0xFF}, {0xFF}, {0xFF}, {0xFF} - }, { // DOES - {0x29}, {0xFF}, {0xFF}, {0xFF}, {0xFF}, {0xFF} - }, { // WHOM - {0x0B}, {0xFF}, {0xFF}, {0xFF}, {0xFF}, {0xFF} - }, { // WHICH - {0x0B}, {0x0B}, {0xFF}, {0xFF}, {0xFF}, {0xFF} - }, { // WASN'T - {0x02}, {0x11}, {0xFF}, {0xFF}, {0xFF}, {0xFF} - }, { // WEREN'T - {0x1A}, {0x0B}, {0xFF}, {0xFF}, {0xFF}, {0xFF} - }, { // HAVE - {0x02}, {0x0B}, {0xFF}, {0xFF}, {0xFF}, {0xFF} - }, { // HAVEN'T - {0x02}, {0x0B}, {0x11}, {0xFF}, {0xFF}, {0xFF} - }, { // A - {0x0B}, {0x11}, {0xFF}, {0xFF}, {0xFF}, {0xFF} - }, { // AN - {0x0B}, {0x11}, {0x0B}, {0xFF}, {0xFF}, {0xFF} - }, { // NOT - {0x11}, {0x29}, {0xFF}, {0xFF}, {0xFF}, {0xFF} - }, { // THERE - {0x02}, {0xFF}, {0xFF}, {0xFF}, {0xFF}, {0xFF} - }, { // OK? - {0x1A}, {0x0B}, {0xFF}, {0xFF}, {0xFF}, {0xFF} - }, { // SO - {0x1A}, {0xFF}, {0xFF}, {0xFF}, {0xFF}, {0xFF} - }, { // MAYBE - {0x11}, {0x0B}, {0x11}, {0xFF}, {0xFF}, {0xFF} - }, { // ABOUT - {0x29}, {0x0B}, {0xFF}, {0xFF}, {0xFF}, {0xFF} - }, { // OVER - {0x11}, {0x0B}, {0xFF}, {0xFF}, {0xFF}, {0xFF} - }, { // IT - {0x0B}, {0xFF}, {0xFF}, {0xFF}, {0xFF}, {0xFF} - }, { // ALL - {0x02}, {0x0B}, {0xFF}, {0xFF}, {0xFF}, {0xFF} - }, { // FOR - {0x11}, {0xFF}, {0xFF}, {0xFF}, {0xFF}, {0xFF} - }, { // ON - {0x02}, {0xFF}, {0xFF}, {0xFF}, {0xFF}, {0xFF} - }, { // OFF - {0x02}, {0xFF}, {0xFF}, {0xFF}, {0xFF}, {0xFF} - }, { // AS - {0x0B}, {0x02}, {0x29}, {0x1A}, {0xFF}, {0xFF} - }, { // TO - {0x29}, {0xFF}, {0xFF}, {0xFF}, {0xFF}, {0xFF} - }, { // WITH - {0x11}, {0xFF}, {0xFF}, {0xFF}, {0xFF}, {0xFF} - }, { // BETTER - {0x0B}, {0x0B}, {0xFF}, {0xFF}, {0xFF}, {0xFF} - }, { // EVER - {0x0B}, {0x02}, {0xFF}, {0xFF}, {0xFF}, {0xFF} - }, { // SINCE - {0x0B}, {0x11}, {0xFF}, {0xFF}, {0xFF}, {0xFF} - }, { // OF - {0x0B}, {0x11}, {0x0B}, {0xFF}, {0xFF}, {0xFF} - }, { // BELONGS TO - {0x0B}, {0x0B}, {0xFF}, {0xFF}, {0xFF}, {0xFF} - }, { // AT - {0x0B}, {0x11}, {0xFF}, {0xFF}, {0xFF}, {0xFF} - }, { // IN - {0x11}, {0xFF}, {0xFF}, {0xFF}, {0xFF}, {0xFF} - }, { // OUT - {0x02}, {0x29}, {0xFF}, {0xFF}, {0xFF}, {0xFF} - }, { // TOO - {0x02}, {0x29}, {0xFF}, {0xFF}, {0xFF}, {0xFF} - }, { // LIKE - {0x0B}, {0x11}, {0xFF}, {0xFF}, {0xFF}, {0xFF} - }, { // DID - {0x0B}, {0x02}, {0xFF}, {0xFF}, {0xFF}, {0xFF} - }, { // DIDN'T - {0x11}, {0x0B}, {0x02}, {0xFF}, {0xFF}, {0xFF} - }, { // DOESN'T - {0x02}, {0xFF}, {0xFF}, {0xFF}, {0xFF}, {0xFF} - }, { // WITHOUT - {0x1A}, {0x0B}, {0xFF}, {0xFF}, {0xFF}, {0xFF} - }, { // AFTER - {0x02}, {0xFF}, {0xFF}, {0xFF}, {0xFF}, {0xFF} - }, { // BEFORE - {0x1A}, {0x0B}, {0xFF}, {0xFF}, {0xFF}, {0xFF} - }, { // WHILE - {0x0B}, {0x0B}, {0xFF}, {0xFF}, {0xFF}, {0xFF} - }, { // THAN - {0x02}, {0xFF}, {0xFF}, {0xFF}, {0xFF}, {0xFF} - }, { // ONCE - {0x0B}, {0x11}, {0x02}, {0xFF}, {0xFF}, {0xFF} - }, { // ANYWHERE - {0x11}, {0x0B}, {0x1A}, {0xFF}, {0xFF}, {0xFF} - } -}; - - -static const struct BardSound BardMusic_FEELINGS[][6] = { - { // MEET - {0x0B}, {0x11}, {0x0B}, {0xFF}, {0xFF}, {0xFF} - }, { // PLAY - {0x11}, {0x0B}, {0xFF}, {0xFF}, {0xFF}, {0xFF} - }, { // HURRIED - {0x0B}, {0x11}, {0x11}, {0xFF}, {0xFF}, {0xFF} - }, { // GOES - {0x0B}, {0xFF}, {0xFF}, {0xFF}, {0xFF}, {0xFF} - }, { // GIDDY - {0x11}, {0x0B}, {0x11}, {0xFF}, {0xFF}, {0xFF} - }, { // HAPPY - {0x11}, {0x11}, {0xFF}, {0xFF}, {0xFF}, {0xFF} - }, { // HAPPINESS - {0x11}, {0xFF}, {0xFF}, {0xFF}, {0xFF}, {0xFF} - }, { // EXCITE - {0x0B}, {0x0B}, {0x11}, {0x0B}, {0xFF}, {0xFF} - }, { // IMPORTANT - {0x11}, {0x11}, {0xFF}, {0xFF}, {0xFF}, {0xFF} - }, { // FUNNY - {0x29}, {0x11}, {0xFF}, {0xFF}, {0xFF}, {0xFF} - }, { // GOT - {0x02}, {0x0B}, {0xFF}, {0xFF}, {0xFF}, {0xFF} - }, { // GO HOME - {0x0B}, {0x11}, {0x0B}, {0x0B}, {0xFF}, {0xFF} - }, { // DISAPPOINTED - {0x0B}, {0x0B}, {0x29}, {0xFF}, {0xFF}, {0xFF} - }, { // DISAPPOINTS - {0x0B}, {0x0B}, {0x29}, {0x0B}, {0xFF}, {0xFF} - }, { // SAD - {0x02}, {0x29}, {0x11}, {0xFF}, {0xFF}, {0xFF} - }, { // TRY - {0x29}, {0x29}, {0x11}, {0x0B}, {0xFF}, {0xFF} - }, { // TRIES - {0x0B}, {0x29}, {0xFF}, {0xFF}, {0xFF}, {0xFF} - }, { // HEARS - {0x29}, {0x0B}, {0x02}, {0x29}, {0x0B}, {0xFF} - }, { // THINK - {0x0B}, {0x11}, {0xFF}, {0xFF}, {0xFF}, {0xFF} - }, { // HEAR - {0x0B}, {0x0B}, {0xFF}, {0xFF}, {0xFF}, {0xFF} - }, { // WANTS - {0x11}, {0xFF}, {0xFF}, {0xFF}, {0xFF}, {0xFF} - }, { // MISHEARD - {0x0B}, {0x0B}, {0xFF}, {0xFF}, {0xFF}, {0xFF} - }, { // DISLIKE - {0x11}, {0x0B}, {0x0B}, {0xFF}, {0xFF}, {0xFF} - }, { // ANGRY - {0x0B}, {0x0B}, {0xFF}, {0xFF}, {0xFF}, {0xFF} - }, { // ANGER - {0x29}, {0xFF}, {0xFF}, {0xFF}, {0xFF}, {0xFF} - }, { // SCARY - {0x29}, {0x0B}, {0x11}, {0x11}, {0xFF}, {0xFF} - }, { // LONESOME - {0x0B}, {0x11}, {0x02}, {0xFF}, {0xFF}, {0xFF} - }, { // DISAPPOINT - {0x29}, {0x11}, {0xFF}, {0xFF}, {0xFF}, {0xFF} - }, { // JOY - {0x0B}, {0x29}, {0x0B}, {0xFF}, {0xFF}, {0xFF} - }, { // GETS - {0x0B}, {0x1A}, {0xFF}, {0xFF}, {0xFF}, {0xFF} - }, { // NEVER - {0x11}, {0xFF}, {0xFF}, {0xFF}, {0xFF}, {0xFF} - }, { // DARN - {0x0B}, {0x02}, {0xFF}, {0xFF}, {0xFF}, {0xFF} - }, { // DOWNCAST - {0x0B}, {0x29}, {0x11}, {0xFF}, {0xFF}, {0xFF} - }, { // INCREDIBLE - {0x02}, {0x0B}, {0x02}, {0xFF}, {0xFF}, {0xFF} - }, { // LIKES - {0x1A}, {0x11}, {0x0B}, {0xFF}, {0xFF}, {0xFF} - }, { // DISLIKES - {0x02}, {0x0B}, {0x11}, {0x29}, {0xFF}, {0xFF} - }, { // BORING - {0x02}, {0x0B}, {0x11}, {0x11}, {0xFF}, {0xFF} - }, { // CARE - {0x1A}, {0x0B}, {0xFF}, {0xFF}, {0xFF}, {0xFF} - }, { // CARES - {0x1A}, {0xFF}, {0xFF}, {0xFF}, {0xFF}, {0xFF} - }, { // ALL RIGHT - {0x29}, {0xFF}, {0xFF}, {0xFF}, {0xFF}, {0xFF} - }, { // ADORE - {0x0B}, {0x0B}, {0x0B}, {0xFF}, {0xFF}, {0xFF} - }, { // DISASTER - {0x0B}, {0x02}, {0x0B}, {0xFF}, {0xFF}, {0xFF} - }, { // ENJOY - {0x0B}, {0x11}, {0x0B}, {0xFF}, {0xFF}, {0xFF} - }, { // ENJOYS - {0x0B}, {0x11}, {0xFF}, {0xFF}, {0xFF}, {0xFF} - }, { // EAT - {0x0B}, {0x0B}, {0xFF}, {0xFF}, {0xFF}, {0xFF} - }, { // LACKING - {0x29}, {0x29}, {0x0B}, {0x11}, {0x0B}, {0xFF} - }, { // BAD - {0x0B}, {0x0B}, {0xFF}, {0xFF}, {0xFF}, {0xFF} - }, { // HARD - {0x0B}, {0xFF}, {0xFF}, {0xFF}, {0xFF}, {0xFF} - }, { // TERRIBLE - {0x0B}, {0x11}, {0xFF}, {0xFF}, {0xFF}, {0xFF} - }, { // SHOULD - {0x11}, {0x0B}, {0x02}, {0x29}, {0x0B}, {0xFF} - }, { // NICE - {0x0B}, {0xFF}, {0xFF}, {0xFF}, {0xFF}, {0xFF} - }, { // DRINK - {0x11}, {0xFF}, {0xFF}, {0xFF}, {0xFF}, {0xFF} - }, { // SURPRISE - {0x11}, {0x0B}, {0x02}, {0x29}, {0xFF}, {0xFF} - }, { // FEAR - {0x29}, {0xFF}, {0xFF}, {0xFF}, {0xFF}, {0xFF} - }, { // WANT - {0x0B}, {0x0B}, {0xFF}, {0xFF}, {0xFF}, {0xFF} - }, { // WAIT - {0x02}, {0x0B}, {0x0B}, {0x11}, {0x0B}, {0xFF} - }, { // SATISFIED - {0x29}, {0x11}, {0x0B}, {0xFF}, {0xFF}, {0xFF} - }, { // SEE - {0x02}, {0x0B}, {0xFF}, {0xFF}, {0xFF}, {0xFF} - }, { // RARE - {0x0B}, {0x0B}, {0xFF}, {0xFF}, {0xFF}, {0xFF} - }, { // NEGATIVE - {0x0B}, {0x02}, {0x11}, {0xFF}, {0xFF}, {0xFF} - }, { // DONE - {0x0B}, {0x11}, {0xFF}, {0xFF}, {0xFF}, {0xFF} - }, { // DANGER - {0x0B}, {0x02}, {0xFF}, {0xFF}, {0xFF}, {0xFF} - }, { // DEFEATED - {0x0B}, {0x11}, {0xFF}, {0xFF}, {0xFF}, {0xFF} - }, { // BEAT - {0x29}, {0xFF}, {0xFF}, {0xFF}, {0xFF}, {0xFF} - }, { // GREAT - {0x1A}, {0x02}, {0x11}, {0xFF}, {0xFF}, {0xFF} - }, { // ROMANTIC - {0x1A}, {0x02}, {0x11}, {0xFF}, {0xFF}, {0xFF} - }, { // QUESTION - {0x02}, {0x0B}, {0xFF}, {0xFF}, {0xFF}, {0xFF} - }, { // UNDERSTAND - {0x0B}, {0x0B}, {0x0B}, {0xFF}, {0xFF}, {0xFF} - }, { // UNDERSTANDS - {0x0B}, {0x0B}, {0xFF}, {0xFF}, {0xFF}, {0xFF} - } -}; - - -static const struct BardSound BardMusic_CONDITIONS[][6] = { - { // HOT - {0x0B}, {0x11}, {0xFF}, {0xFF}, {0xFF}, {0xFF} - }, { // EXISTS - {0x0B}, {0x11}, {0x11}, {0xFF}, {0xFF}, {0xFF} - }, { // EXCESS - {0x11}, {0x0B}, {0x0B}, {0x11}, {0xFF}, {0xFF} - }, { // APPROVED - {0x0B}, {0x0B}, {0x11}, {0xFF}, {0xFF}, {0xFF} - }, { // HAS - {0x02}, {0xFF}, {0xFF}, {0xFF}, {0xFF}, {0xFF} - }, { // GOOD - {0x0B}, {0x11}, {0xFF}, {0xFF}, {0xFF}, {0xFF} - }, { // LESS - {0x0B}, {0x11}, {0x0B}, {0xFF}, {0xFF}, {0xFF} - }, { // MOMENTUM - {0x29}, {0xFF}, {0xFF}, {0xFF}, {0xFF}, {0xFF} - }, { // GOING - {0x0B}, {0x0B}, {0xFF}, {0xFF}, {0xFF}, {0xFF} - }, { // WEIRD - {0x0B}, {0x11}, {0xFF}, {0xFF}, {0xFF}, {0xFF} - }, { // BUSY - {0x0B}, {0x0B}, {0x11}, {0xFF}, {0xFF}, {0xFF} - }, { // TOGETHER - {0x29}, {0x02}, {0x0B}, {0xFF}, {0xFF}, {0xFF} - }, { // FULL - {0x1A}, {0xFF}, {0xFF}, {0xFF}, {0xFF}, {0xFF} - }, { // ABSENT - {0x02}, {0x0B}, {0x0B}, {0xFF}, {0xFF}, {0xFF} - }, { // BEING - {0x0B}, {0x11}, {0x0B}, {0xFF}, {0xFF}, {0xFF} - }, { // NEED - {0x02}, {0x29}, {0x0B}, {0xFF}, {0xFF}, {0xFF} - }, { // TASTY - {0x0B}, {0x0B}, {0xFF}, {0xFF}, {0xFF}, {0xFF} - }, { // SKILLED - {0x0B}, {0x11}, {0xFF}, {0xFF}, {0xFF}, {0xFF} - }, { // NOISY - {0x02}, {0x29}, {0xFF}, {0xFF}, {0xFF}, {0xFF} - }, { // BIG - {0x1A}, {0xFF}, {0xFF}, {0xFF}, {0xFF}, {0xFF} - }, { // LATE - {0x0B}, {0xFF}, {0xFF}, {0xFF}, {0xFF}, {0xFF} - }, { // CLOSE - {0x02}, {0x0B}, {0x0B}, {0x11}, {0xFF}, {0xFF} - }, { // DOCILE - {0x02}, {0x11}, {0x11}, {0xFF}, {0xFF}, {0xFF} - }, { // AMUSING - {0x02}, {0x11}, {0x02}, {0xFF}, {0xFF}, {0xFF} - }, { // ENTERTAINING - {0x29}, {0x0B}, {0x02}, {0x02}, {0xFF}, {0xFF} - }, { // PERFECTION - {0x0B}, {0x0B}, {0x11}, {0x1A}, {0xFF}, {0xFF} - }, { // PRETTY - {0x11}, {0xFF}, {0xFF}, {0xFF}, {0xFF}, {0xFF} - }, { // HEALTHY - {0x0B}, {0x29}, {0xFF}, {0xFF}, {0xFF}, {0xFF} - }, { // EXCELLENT - {0x0B}, {0x0B}, {0x0B}, {0xFF}, {0xFF}, {0xFF} - }, { // UPSIDE DOWN - {0x29}, {0x0B}, {0x0B}, {0xFF}, {0xFF}, {0xFF} - }, { // COLD - {0x02}, {0xFF}, {0xFF}, {0xFF}, {0xFF}, {0xFF} - }, { // REFRESHING - {0x0B}, {0x11}, {0x0B}, {0xFF}, {0xFF}, {0xFF} - }, { // UNAVOIDABLE - {0x29}, {0x0B}, {0x0B}, {0x11}, {0x02}, {0xFF} - }, { // MUCH - {0x11}, {0x0B}, {0x0B}, {0xFF}, {0xFF}, {0xFF} - }, { // OVERWHELMING - {0x11}, {0x0B}, {0x11}, {0x0B}, {0xFF}, {0xFF} - }, { // FABULOUS - {0x02}, {0x0B}, {0x02}, {0xFF}, {0xFF}, {0xFF} - }, { // ELSE - {0x02}, {0x0B}, {0x0B}, {0xFF}, {0xFF}, {0xFF} - }, { // EXPENSIVE - {0x0B}, {0x29}, {0x0B}, {0xFF}, {0xFF}, {0xFF} - }, { // CORRECT - {0x11}, {0x11}, {0xFF}, {0xFF}, {0xFF}, {0xFF} - }, { // IMPOSSIBLE - {0x29}, {0x0B}, {0x11}, {0xFF}, {0xFF}, {0xFF} - }, { // SMALL - {0x0B}, {0x11}, {0xFF}, {0xFF}, {0xFF}, {0xFF} - }, { // DIFFERENT - {0x0B}, {0x11}, {0x0B}, {0x0B}, {0xFF}, {0xFF} - }, { // TIRED - {0x11}, {0x0B}, {0xFF}, {0xFF}, {0xFF}, {0xFF} - }, { // SKILL - {0x0B}, {0x11}, {0xFF}, {0xFF}, {0xFF}, {0xFF} - }, { // TOP - {0x1A}, {0xFF}, {0xFF}, {0xFF}, {0xFF}, {0xFF} - }, { // NON-STOP - {0x1A}, {0x1A}, {0xFF}, {0xFF}, {0xFF}, {0xFF} - }, { // PREPOSTEROUS - {0x02}, {0x29}, {0xFF}, {0xFF}, {0xFF}, {0xFF} - }, { // NONE - {0x0B}, {0x11}, {0xFF}, {0xFF}, {0xFF}, {0xFF} - }, { // NOTHING - {0x11}, {0xFF}, {0xFF}, {0xFF}, {0xFF}, {0xFF} - }, { // NATURAL - {0x02}, {0x11}, {0x11}, {0xFF}, {0xFF}, {0xFF} - }, { // BECOMES - {0x11}, {0xFF}, {0xFF}, {0xFF}, {0xFF}, {0xFF} - }, { // LUKEWARM - {0x02}, {0x29}, {0x02}, {0xFF}, {0xFF}, {0xFF} - }, { // FAST - {0x0B}, {0xFF}, {0xFF}, {0xFF}, {0xFF}, {0xFF} - }, { // LOW - {0x11}, {0x11}, {0xFF}, {0xFF}, {0xFF}, {0xFF} - }, { // AWFUL - {0x11}, {0xFF}, {0xFF}, {0xFF}, {0xFF}, {0xFF} - }, { // ALONE - {0x02}, {0x0B}, {0x11}, {0x0B}, {0xFF}, {0xFF} - }, { // BORED - {0x0B}, {0x02}, {0x0B}, {0x11}, {0xFF}, {0xFF} - }, { // SECRET - {0x0B}, {0x0B}, {0x11}, {0x11}, {0xFF}, {0xFF} - }, { // MYSTERY - {0x0B}, {0x0B}, {0x11}, {0xFF}, {0xFF}, {0xFF} - }, { // LACKS - {0x0B}, {0xFF}, {0xFF}, {0xFF}, {0xFF}, {0xFF} - }, { // BEST - {0x0B}, {0x0B}, {0xFF}, {0xFF}, {0xFF}, {0xFF} - }, { // LOUSY - {0x02}, {0x29}, {0x11}, {0xFF}, {0xFF}, {0xFF} - }, { // MISTAKE - {0x0B}, {0x0B}, {0xFF}, {0xFF}, {0xFF}, {0xFF} - }, { // KIND - {0x0B}, {0x11}, {0xFF}, {0xFF}, {0xFF}, {0xFF} - }, { // WELL - {0x0B}, {0xFF}, {0xFF}, {0xFF}, {0xFF}, {0xFF} - }, { // WEAKENED - {0x0B}, {0x0B}, {0xFF}, {0xFF}, {0xFF}, {0xFF} - }, { // SIMPLE - {0x0B}, {0x02}, {0xFF}, {0xFF}, {0xFF}, {0xFF} - }, { // SEEMS - {0x0B}, {0x02}, {0xFF}, {0xFF}, {0xFF}, {0xFF} - }, { // BADLY - {0x11}, {0xFF}, {0xFF}, {0xFF}, {0xFF}, {0xFF} - } -}; - - -static const struct BardSound BardMusic_ACTIONS[][6] = { - { // MEETS - {0x11}, {0xFF}, {0xFF}, {0xFF}, {0xFF}, {0xFF} - }, { // CONCEDE - {0x0B}, {0x11}, {0x11}, {0x0B}, {0xFF}, {0xFF} - }, { // GIVE - {0x0B}, {0x0B}, {0xFF}, {0xFF}, {0xFF}, {0xFF} - }, { // GIVES - {0x11}, {0xFF}, {0xFF}, {0xFF}, {0xFF}, {0xFF} - }, { // PLAYED - {0x11}, {0x0B}, {0xFF}, {0xFF}, {0xFF}, {0xFF} - }, { // PLAYS - {0x11}, {0xFF}, {0xFF}, {0xFF}, {0xFF}, {0xFF} - }, { // COLLECT - {0x02}, {0x0B}, {0xFF}, {0xFF}, {0xFF}, {0xFF} - }, { // WALKING - {0x02}, {0x0B}, {0xFF}, {0xFF}, {0xFF}, {0xFF} - }, { // WALKS - {0x02}, {0x0B}, {0xFF}, {0xFF}, {0xFF}, {0xFF} - }, { // SAYS - {0x02}, {0xFF}, {0xFF}, {0xFF}, {0xFF}, {0xFF} - }, { // WENT - {0x11}, {0xFF}, {0xFF}, {0xFF}, {0xFF}, {0xFF} - }, { // SAID - {0x02}, {0x0B}, {0xFF}, {0xFF}, {0xFF}, {0xFF} - }, { // WAKE UP - {0x02}, {0x02}, {0x0B}, {0xFF}, {0xFF}, {0xFF} - }, { // WAKES UP - {0x02}, {0x02}, {0x29}, {0xFF}, {0xFF}, {0xFF} - }, { // ANGERS - {0x0B}, {0x0B}, {0xFF}, {0xFF}, {0xFF}, {0xFF} - }, { // TEACH - {0x0B}, {0x0B}, {0xFF}, {0xFF}, {0xFF}, {0xFF} - }, { // TEACHES - {0x0B}, {0xFF}, {0xFF}, {0xFF}, {0xFF}, {0xFF} - }, { // PLEASE - {0x11}, {0x0B}, {0xFF}, {0xFF}, {0xFF}, {0xFF} - }, { // LEARN - {0x0B}, {0x0B}, {0xFF}, {0xFF}, {0xFF}, {0xFF} - }, { // CHANGE - {0x0B}, {0x0B}, {0xFF}, {0xFF}, {0xFF}, {0xFF} - }, { // STORY - {0x1A}, {0x11}, {0xFF}, {0xFF}, {0xFF}, {0xFF} - }, { // TRUST - {0x0B}, {0x02}, {0x29}, {0x0B}, {0xFF}, {0xFF} - }, { // LAVISH - {0x1A}, {0x11}, {0x11}, {0xFF}, {0xFF}, {0xFF} - }, { // LISTENS - {0x0B}, {0xFF}, {0xFF}, {0xFF}, {0xFF}, {0xFF} - }, { // HEARING - {0x0B}, {0x0B}, {0xFF}, {0xFF}, {0xFF}, {0xFF} - }, { // TRAINS - {0x02}, {0x11}, {0x11}, {0xFF}, {0xFF}, {0xFF} - }, { // CHOOSE - {0x0B}, {0x0B}, {0xFF}, {0xFF}, {0xFF}, {0xFF} - }, { // COME - {0x1A}, {0x0B}, {0xFF}, {0xFF}, {0xFF}, {0xFF} - }, { // CAME - {0x02}, {0xFF}, {0xFF}, {0xFF}, {0xFF}, {0xFF} - }, { // SEARCH - {0x29}, {0x0B}, {0xFF}, {0xFF}, {0xFF}, {0xFF} - }, { // MAKE - {0x02}, {0x0B}, {0xFF}, {0xFF}, {0xFF}, {0xFF} - }, { // CAUSE - {0x29}, {0xFF}, {0xFF}, {0xFF}, {0xFF}, {0xFF} - }, { // KNOW - {0x11}, {0x0B}, {0xFF}, {0xFF}, {0xFF}, {0xFF} - }, { // KNOWS - {0x0B}, {0x11}, {0xFF}, {0xFF}, {0xFF}, {0xFF} - }, { // REFUSE - {0x0B}, {0x11}, {0x0B}, {0xFF}, {0xFF}, {0xFF} - }, { // STORES - {0x02}, {0x0B}, {0xFF}, {0xFF}, {0xFF}, {0xFF} - }, { // BRAG - {0x02}, {0x0B}, {0x0B}, {0xFF}, {0xFF}, {0xFF} - }, { // IGNORANT - {0x11}, {0x1A}, {0x02}, {0xFF}, {0xFF}, {0xFF} - }, { // THINKS - {0x0B}, {0xFF}, {0xFF}, {0xFF}, {0xFF}, {0xFF} - }, { // BELIEVE - {0x02}, {0x29}, {0x0B}, {0xFF}, {0xFF}, {0xFF} - }, { // SLIDE - {0x0B}, {0x11}, {0x0B}, {0xFF}, {0xFF}, {0xFF} - }, { // EATS - {0x11}, {0xFF}, {0xFF}, {0xFF}, {0xFF}, {0xFF} - }, { // USE - {0x0B}, {0x02}, {0x29}, {0x0B}, {0xFF}, {0xFF} - }, { // USES - {0x0B}, {0x02}, {0x29}, {0xFF}, {0xFF}, {0xFF} - }, { // USING - {0x0B}, {0x0B}, {0x0B}, {0xFF}, {0xFF}, {0xFF} - }, { // COULDN'T - {0x0B}, {0x0B}, {0x11}, {0xFF}, {0xFF}, {0xFF} - }, { // CAPABLE - {0x0B}, {0x11}, {0xFF}, {0xFF}, {0xFF}, {0xFF} - }, { // DISAPPEAR - {0x0B}, {0x11}, {0x0B}, {0xFF}, {0xFF}, {0xFF} - }, { // APPEAR - {0x0B}, {0x0B}, {0x11}, {0x0B}, {0xFF}, {0xFF} - }, { // THROW - {0x0B}, {0x0B}, {0xFF}, {0xFF}, {0xFF}, {0xFF} - }, { // WORRY - {0x1A}, {0x0B}, {0xFF}, {0xFF}, {0xFF}, {0xFF} - }, { // SLEPT - {0x11}, {0x0B}, {0xFF}, {0xFF}, {0xFF}, {0xFF} - }, { // SLEEP - {0x02}, {0xFF}, {0xFF}, {0xFF}, {0xFF}, {0xFF} - }, { // RELEASE - {0x0B}, {0x11}, {0x02}, {0x0B}, {0xFF}, {0xFF} - }, { // DRINKS - {0x11}, {0xFF}, {0xFF}, {0xFF}, {0xFF}, {0xFF} - }, { // RUNS - {0x0B}, {0xFF}, {0xFF}, {0xFF}, {0xFF}, {0xFF} - }, { // RUN - {0x0B}, {0x0B}, {0xFF}, {0xFF}, {0xFF}, {0xFF} - }, { // WORKS - {0x0B}, {0x0B}, {0xFF}, {0xFF}, {0xFF}, {0xFF} - }, { // WORKING - {0x02}, {0x0B}, {0x11}, {0x0B}, {0xFF}, {0xFF} - }, { // TALKING - {0x0B}, {0x0B}, {0xFF}, {0xFF}, {0xFF}, {0xFF} - }, { // TALK - {0x0B}, {0x0B}, {0xFF}, {0xFF}, {0xFF}, {0xFF} - }, { // SINK - {0x0B}, {0x0B}, {0x0B}, {0xFF}, {0xFF}, {0xFF} - }, { // SMACK - {0x02}, {0xFF}, {0xFF}, {0xFF}, {0xFF}, {0xFF} - }, { // PRETEND - {0x1A}, {0x0B}, {0x29}, {0x0B}, {0xFF}, {0xFF} - }, { // PRAISE - {0x1A}, {0x0B}, {0xFF}, {0xFF}, {0xFF}, {0xFF} - }, { // OVERDO - {0x11}, {0x0B}, {0x11}, {0x0B}, {0xFF}, {0xFF} - }, { // SHOW - {0x0B}, {0x11}, {0x0B}, {0xFF}, {0xFF}, {0xFF} - }, { // LOOKS - {0x02}, {0x29}, {0xFF}, {0xFF}, {0xFF}, {0xFF} - }, { // SEES - {0x11}, {0xFF}, {0xFF}, {0xFF}, {0xFF}, {0xFF} - }, { // SEEK - {0x0B}, {0x0B}, {0x02}, {0xFF}, {0xFF}, {0xFF} - }, { // OWN - {0x0B}, {0x11}, {0x0B}, {0xFF}, {0xFF}, {0xFF} - }, { // TAKE - {0x0B}, {0x02}, {0x0B}, {0xFF}, {0xFF}, {0xFF} - }, { // ALLOW - {0x0B}, {0x02}, {0x0B}, {0xFF}, {0xFF}, {0xFF} - }, { // FORGET - {0x0B}, {0x0B}, {0x0B}, {0xFF}, {0xFF}, {0xFF} - }, { // FORGETS - {0x0B}, {0x11}, {0xFF}, {0xFF}, {0xFF}, {0xFF} - }, { // APPEARS - {0x0B}, {0x0B}, {0x11}, {0xFF}, {0xFF}, {0xFF} - }, { // FAINT - {0x0B}, {0x11}, {0x0B}, {0xFF}, {0xFF}, {0xFF} - }, { // FAINTED - {0x02}, {0x29}, {0x0B}, {0x11}, {0xFF}, {0xFF} - } -}; - - -static const struct BardSound BardMusic_LIFESTYLE[][6] = { - { // CHORES - {0x11}, {0x0B}, {0xFF}, {0xFF}, {0xFF}, {0xFF} - }, { // HOME - {0x0B}, {0x11}, {0xFF}, {0xFF}, {0xFF}, {0xFF} - }, { // MONEY - {0x0B}, {0xFF}, {0xFF}, {0xFF}, {0xFF}, {0xFF} - }, { // ALLOWANCE - {0x02}, {0x0B}, {0x0B}, {0xFF}, {0xFF}, {0xFF} - }, { // BATH - {0x02}, {0xFF}, {0xFF}, {0xFF}, {0xFF}, {0xFF} - }, { // CONVERSATION - {0x0B}, {0x0B}, {0xFF}, {0xFF}, {0xFF}, {0xFF} - }, { // SCHOOL - {0x29}, {0x0B}, {0xFF}, {0xFF}, {0xFF}, {0xFF} - }, { // COMMEMORATE - {0x0B}, {0x0B}, {0x0B}, {0xFF}, {0xFF}, {0xFF} - }, { // HABIT - {0x0B}, {0x1A}, {0x0B}, {0x11}, {0xFF}, {0xFF} - }, { // GROUP - {0x29}, {0x0B}, {0xFF}, {0xFF}, {0xFF}, {0xFF} - }, { // WORD - {0x1A}, {0xFF}, {0xFF}, {0xFF}, {0xFF}, {0xFF} - }, { // STORE - {0x02}, {0x0B}, {0xFF}, {0xFF}, {0xFF}, {0xFF} - }, { // SERVICE - {0x0B}, {0x11}, {0xFF}, {0xFF}, {0xFF}, {0xFF} - }, { // WORK - {0x02}, {0x0B}, {0x11}, {0xFF}, {0xFF}, {0xFF} - }, { // SYSTEM - {0x11}, {0x0B}, {0xFF}, {0xFF}, {0xFF}, {0xFF} - }, { // TRAIN - {0x02}, {0x11}, {0x11}, {0x0B}, {0x0B}, {0xFF} - }, { // CLASS - {0x0B}, {0x11}, {0x1A}, {0xFF}, {0xFF}, {0xFF} - }, { // LESSONS - {0x29}, {0x0B}, {0x11}, {0xFF}, {0xFF}, {0xFF} - }, { // INFORMATION - {0x11}, {0x1A}, {0x02}, {0x11}, {0x1A}, {0xFF} - }, { // LIVING - {0x0B}, {0x0B}, {0x11}, {0xFF}, {0xFF}, {0xFF} - }, { // TEACHER - {0x0B}, {0x0B}, {0xFF}, {0xFF}, {0xFF}, {0xFF} - }, { // TOURNAMENT - {0x29}, {0x11}, {0xFF}, {0xFF}, {0xFF}, {0xFF} - }, { // LETTER - {0x11}, {0xFF}, {0xFF}, {0xFF}, {0xFF}, {0xFF} - }, { // EVENT - {0x0B}, {0x0B}, {0x0B}, {0xFF}, {0xFF}, {0xFF} - }, { // DIGITAL - {0x11}, {0x11}, {0x02}, {0x0B}, {0xFF}, {0xFF} - }, { // TEST - {0x0B}, {0xFF}, {0xFF}, {0xFF}, {0xFF}, {0xFF} - }, { // DEPT. STORE - {0x02}, {0x29}, {0x02}, {0x29}, {0xFF}, {0xFF} - }, { // TELEVISION - {0x0B}, {0x0B}, {0x0B}, {0xFF}, {0xFF}, {0xFF} - }, { // PHONE - {0x0B}, {0x0B}, {0x1A}, {0xFF}, {0xFF}, {0xFF} - }, { // ITEM - {0x11}, {0x0B}, {0xFF}, {0xFF}, {0xFF}, {0xFF} - }, { // NAME - {0x02}, {0x0B}, {0xFF}, {0xFF}, {0xFF}, {0xFF} - }, { // NEWS - {0x0B}, {0x29}, {0x11}, {0x0B}, {0x11}, {0x0B} - }, { // POPULAR - {0x1A}, {0x29}, {0x0B}, {0xFF}, {0xFF}, {0xFF} - }, { // PARTY - {0x02}, {0x11}, {0xFF}, {0xFF}, {0xFF}, {0xFF} - }, { // STUDY - {0x0B}, {0x0B}, {0xFF}, {0xFF}, {0xFF}, {0xFF} - }, { // MACHINE - {0x02}, {0x11}, {0x0B}, {0xFF}, {0xFF}, {0xFF} - }, { // MAIL - {0x1A}, {0xFF}, {0xFF}, {0xFF}, {0xFF}, {0xFF} - }, { // MESSAGE - {0x11}, {0x0B}, {0x11}, {0x29}, {0xFF}, {0xFF} - }, { // PROMISE - {0x0B}, {0x0B}, {0x0B}, {0xFF}, {0xFF}, {0xFF} - }, { // DREAM - {0x02}, {0x29}, {0xFF}, {0xFF}, {0xFF}, {0xFF} - }, { // KINDERGARTEN - {0x11}, {0x0B}, {0x02}, {0x0B}, {0xFF}, {0xFF} - }, { // LIFE - {0x0B}, {0x0B}, {0xFF}, {0xFF}, {0xFF}, {0xFF} - }, { // RADIO - {0x02}, {0x11}, {0x1A}, {0xFF}, {0xFF}, {0xFF} - }, { // RENTAL - {0x11}, {0x0B}, {0xFF}, {0xFF}, {0xFF}, {0xFF} - }, { // WORLD - {0x0B}, {0xFF}, {0xFF}, {0xFF}, {0xFF}, {0xFF} - } -}; - - -static const struct BardSound BardMusic_HOBBIES[][6] = { - { // IDOL - {0x11}, {0x1A}, {0xFF}, {0xFF}, {0xFF}, {0xFF} - }, { // ANIME - {0x02}, {0x11}, {0x0B}, {0xFF}, {0xFF}, {0xFF} - }, { // SONG - {0x1A}, {0xFF}, {0xFF}, {0xFF}, {0xFF}, {0xFF} - }, { // MOVIE - {0x11}, {0xFF}, {0xFF}, {0xFF}, {0xFF}, {0xFF} - }, { // SWEETS - {0x02}, {0x0B}, {0xFF}, {0xFF}, {0xFF}, {0xFF} - }, { // CHAT - {0x02}, {0x29}, {0x0B}, {0xFF}, {0xFF}, {0xFF} - }, { // CHILD'S PLAY - {0x11}, {0x0B}, {0x11}, {0xFF}, {0xFF}, {0xFF} - }, { // TOYS - {0x11}, {0x0B}, {0x29}, {0xFF}, {0xFF}, {0xFF} - }, { // MUSIC - {0x29}, {0x11}, {0xFF}, {0xFF}, {0xFF}, {0xFF} - }, { // CARDS - {0x02}, {0x0B}, {0x11}, {0x0B}, {0xFF}, {0xFF} - }, { // SHOPPING - {0x0B}, {0x11}, {0x02}, {0x29}, {0x0B}, {0xFF} - }, { // CAMERA - {0x1A}, {0x1A}, {0xFF}, {0xFF}, {0xFF}, {0xFF} - }, { // VIEWING - {0x0B}, {0x11}, {0x11}, {0x29}, {0xFF}, {0xFF} - }, { // SPECTATOR - {0x29}, {0x02}, {0x29}, {0x0B}, {0xFF}, {0xFF} - }, { // GOURMET - {0x29}, {0x0B}, {0xFF}, {0xFF}, {0xFF}, {0xFF} - }, { // GAME - {0x11}, {0xFF}, {0xFF}, {0xFF}, {0xFF}, {0xFF} - }, { // RPG - {0x0B}, {0x0B}, {0x0B}, {0xFF}, {0xFF}, {0xFF} - }, { // COLLECTION - {0x02}, {0x29}, {0xFF}, {0xFF}, {0xFF}, {0xFF} - }, { // COMPLETE - {0x1A}, {0x0B}, {0xFF}, {0xFF}, {0xFF}, {0xFF} - }, { // MAGAZINE - {0x02}, {0x02}, {0x11}, {0xFF}, {0xFF}, {0xFF} - }, { // WALK - {0x02}, {0x11}, {0x0B}, {0xFF}, {0xFF}, {0xFF} - }, { // BIKE - {0x02}, {0x02}, {0xFF}, {0xFF}, {0xFF}, {0xFF} - }, { // HOBBY - {0x1A}, {0x11}, {0xFF}, {0xFF}, {0xFF}, {0xFF} - }, { // SPORTS - {0x1A}, {0xFF}, {0xFF}, {0xFF}, {0xFF}, {0xFF} - }, { // SOFTWARE - {0x1A}, {0x0B}, {0x0B}, {0xFF}, {0xFF}, {0xFF} - }, { // SONGS - {0x1A}, {0xFF}, {0xFF}, {0xFF}, {0xFF}, {0xFF} - }, { // DIET - {0x02}, {0x29}, {0xFF}, {0xFF}, {0xFF}, {0xFF} - }, { // TREASURE - {0x1A}, {0x02}, {0x0B}, {0x11}, {0xFF}, {0xFF} - }, { // TRAVEL - {0x0B}, {0x11}, {0x0B}, {0xFF}, {0xFF}, {0xFF} - }, { // DANCE - {0x02}, {0x0B}, {0xFF}, {0xFF}, {0xFF}, {0xFF} - }, { // CHANNEL - {0x02}, {0x0B}, {0x1A}, {0xFF}, {0xFF}, {0xFF} - }, { // MAKING - {0x0B}, {0x0B}, {0x29}, {0xFF}, {0xFF}, {0xFF} - }, { // FISHING - {0x02}, {0x0B}, {0xFF}, {0xFF}, {0xFF}, {0xFF} - }, { // DATE - {0x0B}, {0x02}, {0x0B}, {0x29}, {0xFF}, {0xFF} - }, { // DESIGN - {0x0B}, {0x0B}, {0x11}, {0xFF}, {0xFF}, {0xFF} - }, { // LOCOMOTIVE - {0x1A}, {0x1A}, {0x1A}, {0x11}, {0x0B}, {0xFF} - }, { // PLUSH DOLL - {0x11}, {0x29}, {0x0B}, {0xFF}, {0xFF}, {0xFF} - }, { // PC - {0x0B}, {0x0B}, {0xFF}, {0xFF}, {0xFF}, {0xFF} - }, { // FLOWERS - {0x29}, {0x0B}, {0xFF}, {0xFF}, {0xFF}, {0xFF} - }, { // HERO - {0x0B}, {0xFF}, {0xFF}, {0xFF}, {0xFF}, {0xFF} - }, { // NAP - {0x11}, {0x0B}, {0x0B}, {0xFF}, {0xFF}, {0xFF} - }, { // HEROINE - {0x0B}, {0x11}, {0xFF}, {0xFF}, {0xFF}, {0xFF} - }, { // FASHION - {0x1A}, {0x0B}, {0xFF}, {0xFF}, {0xFF}, {0xFF} - }, { // ADVENTURE - {0x02}, {0x0B}, {0x0B}, {0x29}, {0x0B}, {0xFF} - }, { // BOARD - {0x0B}, {0x11}, {0x0B}, {0xFF}, {0xFF}, {0xFF} - }, { // BALL - {0x02}, {0xFF}, {0xFF}, {0xFF}, {0xFF}, {0xFF} - }, { // BOOK - {0x11}, {0x0B}, {0xFF}, {0xFF}, {0xFF}, {0xFF} - }, { // FESTIVAL - {0x0B}, {0x11}, {0x02}, {0xFF}, {0xFF}, {0xFF} - }, { // COMICS - {0x1A}, {0x11}, {0xFF}, {0xFF}, {0xFF}, {0xFF} - }, { // HOLIDAY - {0x0B}, {0x11}, {0x0B}, {0xFF}, {0xFF}, {0xFF} - }, { // PLANS - {0x0B}, {0x02}, {0x02}, {0x0B}, {0xFF}, {0xFF} - }, { // TRENDY - {0x11}, {0x11}, {0x11}, {0x11}, {0xFF}, {0xFF} - }, { // VACATION - {0x29}, {0x02}, {0x29}, {0xFF}, {0xFF}, {0xFF} - }, { // LOOK - {0x02}, {0x29}, {0x0B}, {0x0B}, {0xFF}, {0xFF} - } -}; - - -static const struct BardSound BardMusic_TIME[][6] = { - { // FALL - {0x0B}, {0xFF}, {0xFF}, {0xFF}, {0xFF}, {0xFF} - }, { // MORNING - {0x1A}, {0x0B}, {0xFF}, {0xFF}, {0xFF}, {0xFF} - }, { // TOMORROW - {0x11}, {0x0B}, {0x1A}, {0x0B}, {0xFF}, {0xFF} - }, { // LAST - {0x0B}, {0x0B}, {0xFF}, {0xFF}, {0xFF}, {0xFF} - }, { // DAY - {0x02}, {0xFF}, {0xFF}, {0xFF}, {0xFF}, {0xFF} - }, { // SOMETIME - {0x11}, {0x0B}, {0x02}, {0xFF}, {0xFF}, {0xFF} - }, { // ALWAYS - {0x11}, {0x0B}, {0xFF}, {0xFF}, {0xFF}, {0xFF} - }, { // CURRENT - {0x1A}, {0x0B}, {0x02}, {0xFF}, {0xFF}, {0xFF} - }, { // FOREVER - {0x0B}, {0x11}, {0xFF}, {0xFF}, {0xFF}, {0xFF} - }, { // DAYS - {0x02}, {0x0B}, {0xFF}, {0xFF}, {0xFF}, {0xFF} - }, { // END - {0x0B}, {0x0B}, {0xFF}, {0xFF}, {0xFF}, {0xFF} - }, { // TUESDAY - {0x11}, {0x02}, {0xFF}, {0xFF}, {0xFF}, {0xFF} - }, { // YESTERDAY - {0x0B}, {0x0B}, {0xFF}, {0xFF}, {0xFF}, {0xFF} - }, { // TODAY - {0x0B}, {0x29}, {0x0B}, {0xFF}, {0xFF}, {0xFF} - }, { // FRIDAY - {0x0B}, {0x11}, {0x02}, {0xFF}, {0xFF}, {0xFF} - }, { // MONDAY - {0x1A}, {0x02}, {0xFF}, {0xFF}, {0xFF}, {0xFF} - }, { // LATER - {0x0B}, {0x0B}, {0xFF}, {0xFF}, {0xFF}, {0xFF} - }, { // EARLIER - {0x11}, {0x0B}, {0xFF}, {0xFF}, {0xFF}, {0xFF} - }, { // ANOTHER - {0x02}, {0x02}, {0x0B}, {0x0B}, {0xFF}, {0xFF} - }, { // TIME - {0x0B}, {0x11}, {0xFF}, {0xFF}, {0xFF}, {0xFF} - }, { // FINISH - {0x29}, {0xFF}, {0xFF}, {0xFF}, {0xFF}, {0xFF} - }, { // WEDNESDAY - {0x11}, {0x1A}, {0xFF}, {0xFF}, {0xFF}, {0xFF} - }, { // SOON - {0x02}, {0xFF}, {0xFF}, {0xFF}, {0xFF}, {0xFF} - }, { // START - {0x02}, {0xFF}, {0xFF}, {0xFF}, {0xFF}, {0xFF} - }, { // MONTH - {0x1A}, {0x02}, {0xFF}, {0xFF}, {0xFF}, {0xFF} - }, { // STOP - {0x1A}, {0xFF}, {0xFF}, {0xFF}, {0xFF}, {0xFF} - }, { // NOW - {0x0B}, {0xFF}, {0xFF}, {0xFF}, {0xFF}, {0xFF} - }, { // FINAL - {0x0B}, {0x0B}, {0xFF}, {0xFF}, {0xFF}, {0xFF} - }, { // NEXT - {0x0B}, {0x0B}, {0xFF}, {0xFF}, {0xFF}, {0xFF} - }, { // AGE - {0x02}, {0x0B}, {0xFF}, {0xFF}, {0xFF}, {0xFF} - }, { // SATURDAY - {0x02}, {0x02}, {0xFF}, {0xFF}, {0xFF}, {0xFF} - }, { // SUMMER - {0x1A}, {0x0B}, {0xFF}, {0xFF}, {0xFF}, {0xFF} - }, { // SUNDAY - {0x1A}, {0x02}, {0xFF}, {0xFF}, {0xFF}, {0xFF} - }, { // BEGINNING - {0x02}, {0x02}, {0xFF}, {0xFF}, {0xFF}, {0xFF} - }, { // SPRING - {0x11}, {0x11}, {0xFF}, {0xFF}, {0xFF}, {0xFF} - }, { // DAYTIME - {0x02}, {0x0B}, {0x0B}, {0x11}, {0xFF}, {0xFF} - }, { // WINTER - {0x11}, {0x0B}, {0xFF}, {0xFF}, {0xFF}, {0xFF} - }, { // DAILY - {0x0B}, {0x11}, {0xFF}, {0xFF}, {0xFF}, {0xFF} - }, { // OLDEN - {0x02}, {0x02}, {0xFF}, {0xFF}, {0xFF}, {0xFF} - }, { // ALMOST - {0x02}, {0xFF}, {0xFF}, {0xFF}, {0xFF}, {0xFF} - }, { // NEARLY - {0x0B}, {0x11}, {0x02}, {0x0B}, {0xFF}, {0xFF} - }, { // THURSDAY - {0x1A}, {0x0B}, {0x02}, {0xFF}, {0xFF}, {0xFF} - }, { // NIGHTTIME - {0x0B}, {0x0B}, {0x11}, {0xFF}, {0xFF}, {0xFF} - }, { // NIGHT - {0x02}, {0xFF}, {0xFF}, {0xFF}, {0xFF}, {0xFF} - }, { // WEEK - {0x1A}, {0x0B}, {0xFF}, {0xFF}, {0xFF}, {0xFF} - } -}; - - -static const struct BardSound BardMusic_MISC[][6] = { - { // HIGHS - {0x0B}, {0x0B}, {0xFF}, {0xFF}, {0xFF}, {0xFF} - }, { // LOWS - {0x11}, {0x0B}, {0xFF}, {0xFF}, {0xFF}, {0xFF} - }, { // UM - {0x0B}, {0xFF}, {0xFF}, {0xFF}, {0xFF}, {0xFF} - }, { // REAR - {0x11}, {0x0B}, {0xFF}, {0xFF}, {0xFF}, {0xFF} - }, { // THINGS - {0x02}, {0x0B}, {0xFF}, {0xFF}, {0xFF}, {0xFF} - }, { // THING - {0x11}, {0xFF}, {0xFF}, {0xFF}, {0xFF}, {0xFF} - }, { // BELOW - {0x29}, {0x0B}, {0x02}, {0xFF}, {0xFF}, {0xFF} - }, { // ABOVE - {0x1A}, {0x0B}, {0x02}, {0xFF}, {0xFF}, {0xFF} - }, { // BACK - {0x29}, {0x11}, {0xFF}, {0xFF}, {0xFF}, {0xFF} - }, { // HIGH - {0x1A}, {0xFF}, {0xFF}, {0xFF}, {0xFF}, {0xFF} - }, { // HERE - {0x11}, {0xFF}, {0xFF}, {0xFF}, {0xFF}, {0xFF} - }, { // INSIDE - {0x11}, {0x0B}, {0xFF}, {0xFF}, {0xFF}, {0xFF} - }, { // OUTSIDE - {0x02}, {0x29}, {0x0B}, {0xFF}, {0xFF}, {0xFF} - }, { // BESIDE - {0x0B}, {0x0B}, {0xFF}, {0xFF}, {0xFF}, {0xFF} - }, { // THIS IS IT! - {0x02}, {0x11}, {0x0B}, {0xFF}, {0xFF}, {0xFF} - }, { // THIS - {0x11}, {0xFF}, {0xFF}, {0xFF}, {0xFF}, {0xFF} - }, { // EVERY - {0x02}, {0x0B}, {0xFF}, {0xFF}, {0xFF}, {0xFF} - }, { // THESE - {0x11}, {0x0B}, {0x0B}, {0xFF}, {0xFF}, {0xFF} - }, { // THESE WERE - {0x11}, {0x0B}, {0x02}, {0x0B}, {0xFF}, {0xFF} - }, { // DOWN - {0x11}, {0x29}, {0x0B}, {0xFF}, {0xFF}, {0xFF} - }, { // THAT - {0x02}, {0xFF}, {0xFF}, {0xFF}, {0xFF}, {0xFF} - }, { // THOSE ARE - {0x1A}, {0xFF}, {0xFF}, {0xFF}, {0xFF}, {0xFF} - }, { // THOSE WERE - {0x0B}, {0x29}, {0xFF}, {0xFF}, {0xFF}, {0xFF} - }, { // THAT'S IT! - {0x02}, {0x11}, {0xFF}, {0xFF}, {0xFF}, {0xFF} - }, { // AM - {0x02}, {0x11}, {0xFF}, {0xFF}, {0xFF}, {0xFF} - }, { // THAT WAS - {0x02}, {0x02}, {0xFF}, {0xFF}, {0xFF}, {0xFF} - }, { // FRONT - {0x1A}, {0x0B}, {0xFF}, {0xFF}, {0xFF}, {0xFF} - }, { // UP - {0x1A}, {0x0B}, {0xFF}, {0xFF}, {0xFF}, {0xFF} - }, { // CHOICE - {0x02}, {0xFF}, {0xFF}, {0xFF}, {0xFF}, {0xFF} - }, { // FAR - {0x0B}, {0x11}, {0xFF}, {0xFF}, {0xFF}, {0xFF} - }, { // AWAY - {0x1A}, {0xFF}, {0xFF}, {0xFF}, {0xFF}, {0xFF} - }, { // NEAR - {0x02}, {0x0B}, {0xFF}, {0xFF}, {0xFF}, {0xFF} - }, { // WHERE - {0x1A}, {0xFF}, {0xFF}, {0xFF}, {0xFF}, {0xFF} - }, { // WHEN - {0x0B}, {0x11}, {0xFF}, {0xFF}, {0xFF}, {0xFF} - }, { // WHAT - {0x02}, {0xFF}, {0xFF}, {0xFF}, {0xFF}, {0xFF} - }, { // DEEP - {0x11}, {0xFF}, {0xFF}, {0xFF}, {0xFF}, {0xFF} - }, { // SHALLOW - {0x0B}, {0x11}, {0xFF}, {0xFF}, {0xFF}, {0xFF} - }, { // WHY - {0x02}, {0x29}, {0xFF}, {0xFF}, {0xFF}, {0xFF} - }, { // CONFUSED - {0x0B}, {0x11}, {0xFF}, {0xFF}, {0xFF}, {0xFF} - }, { // OPPOSITE - {0x0B}, {0x0B}, {0x11}, {0x0B}, {0xFF}, {0xFF} - }, { // LEFT - {0x11}, {0xFF}, {0xFF}, {0xFF}, {0xFF}, {0xFF} - }, { // RIGHT - {0x0B}, {0xFF}, {0xFF}, {0xFF}, {0xFF}, {0xFF} - } -}; - - -static const struct BardSound BardMusic_ADJECTIVES[][6] = { - { // WANDERING - {0x02}, {0xFF}, {0xFF}, {0xFF}, {0xFF}, {0xFF} - }, { // RICKETY - {0x02}, {0x0B}, {0xFF}, {0xFF}, {0xFF}, {0xFF} - }, { // ROCK-SOLID - {0x0B}, {0x11}, {0x02}, {0xFF}, {0xFF}, {0xFF} - }, { // HUNGRY - {0x02}, {0x0B}, {0x29}, {0xFF}, {0xFF}, {0xFF} - }, { // TIGHT - {0x29}, {0xFF}, {0xFF}, {0xFF}, {0xFF}, {0xFF} - }, { // TICKLISH - {0x11}, {0x0B}, {0x11}, {0x0B}, {0xFF}, {0xFF} - }, { // TWIRLING - {0x0B}, {0x29}, {0x0B}, {0xFF}, {0xFF}, {0xFF} - }, { // SPIRALING - {0x11}, {0x0B}, {0xFF}, {0xFF}, {0xFF}, {0xFF} - }, { // THIRSTY - {0x0B}, {0xFF}, {0xFF}, {0xFF}, {0xFF}, {0xFF} - }, { // LOLLING - {0x11}, {0x0B}, {0xFF}, {0xFF}, {0xFF}, {0xFF} - }, { // SILKY - {0x29}, {0x0B}, {0xFF}, {0xFF}, {0xFF}, {0xFF} - }, { // SADLY - {0x11}, {0xFF}, {0xFF}, {0xFF}, {0xFF}, {0xFF} - }, { // HOPELESS - {0x1A}, {0x1A}, {0xFF}, {0xFF}, {0xFF}, {0xFF} - }, { // USELESS - {0x11}, {0xFF}, {0xFF}, {0xFF}, {0xFF}, {0xFF} - }, { // DROOLING - {0x02}, {0x0B}, {0xFF}, {0xFF}, {0xFF}, {0xFF} - }, { // EXCITING - {0x11}, {0x11}, {0xFF}, {0xFF}, {0xFF}, {0xFF} - }, { // THICK - {0x02}, {0x0B}, {0xFF}, {0xFF}, {0xFF}, {0xFF} - }, { // SMOOTH - {0x02}, {0xFF}, {0xFF}, {0xFF}, {0xFF}, {0xFF} - }, { // SLIMY - {0x11}, {0x0B}, {0xFF}, {0xFF}, {0xFF}, {0xFF} - }, { // THIN - {0x02}, {0x0B}, {0xFF}, {0xFF}, {0xFF}, {0xFF} - }, { // BREAK - {0x0B}, {0x0B}, {0xFF}, {0xFF}, {0xFF}, {0xFF} - }, { // VORACIOUS - {0x02}, {0x0B}, {0xFF}, {0xFF}, {0xFF}, {0xFF} - }, { // SCATTER - {0x0B}, {0x11}, {0xFF}, {0xFF}, {0xFF}, {0xFF} - }, { // AWESOME - {0x11}, {0x0B}, {0xFF}, {0xFF}, {0xFF}, {0xFF} - }, { // WIMPY - {0x02}, {0x11}, {0x0B}, {0xFF}, {0xFF}, {0xFF} - }, { // WOBBLY - {0x11}, {0x0B}, {0xFF}, {0xFF}, {0xFF}, {0xFF} - }, { // SHAKY - {0x11}, {0x0B}, {0xFF}, {0xFF}, {0xFF}, {0xFF} - }, { // RIPPED - {0x02}, {0xFF}, {0xFF}, {0xFF}, {0xFF}, {0xFF} - }, { // SHREDDED - {0x0B}, {0xFF}, {0xFF}, {0xFF}, {0xFF}, {0xFF} - }, { // INCREASING - {0x29}, {0xFF}, {0xFF}, {0xFF}, {0xFF}, {0xFF} - }, { // YET - {0x0B}, {0x0B}, {0x0B}, {0xFF}, {0xFF}, {0xFF} - }, { // DESTROYED - {0x29}, {0x0B}, {0xFF}, {0xFF}, {0xFF}, {0xFF} - }, { // FIERY - {0x11}, {0x02}, {0x0B}, {0xFF}, {0xFF}, {0xFF} - }, { // LOVEY-DOVEY - {0x29}, {0x0B}, {0x11}, {0xFF}, {0xFF}, {0xFF} - }, { // HAPPILY - {0x0B}, {0x02}, {0x11}, {0xFF}, {0xFF}, {0xFF} - }, { // ANTICIPATION - {0x11}, {0x1A}, {0xFF}, {0xFF}, {0xFF}, {0xFF} - } -}; - - -static const struct BardSound BardMusic_EVENTS[][6] = { - { // APPEAL - {0x02}, {0x29}, {0x29}, {0xFF}, {0xFF}, {0xFF} - }, { // EVENTS - {0x0B}, {0x0B}, {0xFF}, {0xFF}, {0xFF}, {0xFF} - }, { // STAY-AT-HOME - {0x02}, {0x11}, {0x11}, {0x0B}, {0xFF}, {0xFF} - }, { // BERRY - {0x0B}, {0x0B}, {0x0B}, {0xFF}, {0xFF}, {0xFF} - }, { // CONTEST - {0x0B}, {0x0B}, {0x0B}, {0xFF}, {0xFF}, {0xFF} - }, { // MC - {0x0B}, {0x11}, {0xFF}, {0xFF}, {0xFF}, {0xFF} - }, { // JUDGE - {0x29}, {0x1A}, {0xFF}, {0xFF}, {0xFF}, {0xFF} - }, { // SUPER - {0x29}, {0x0B}, {0xFF}, {0xFF}, {0xFF}, {0xFF} - }, { // STAGE - {0x11}, {0x0B}, {0xFF}, {0xFF}, {0xFF}, {0xFF} - }, { // HALL OF FAME - {0x29}, {0x0B}, {0x02}, {0x0B}, {0xFF}, {0xFF} - }, { // EVOLUTION - {0x1A}, {0x02}, {0xFF}, {0xFF}, {0xFF}, {0xFF} - }, { // HYPER - {0x11}, {0x0B}, {0xFF}, {0xFF}, {0xFF}, {0xFF} - }, { // BATTLE TOWER - {0x29}, {0x0B}, {0x29}, {0xFF}, {0xFF}, {0xFF} - }, { // LEADERS - {0x0B}, {0x11}, {0x0B}, {0xFF}, {0xFF}, {0xFF} - }, { // BATTLE ROOM - {0x02}, {0x02}, {0x29}, {0xFF}, {0xFF}, {0xFF} - }, { // HIDDEN - {0x0B}, {0x0B}, {0x0B}, {0xFF}, {0xFF}, {0xFF} - }, { // SECRET BASE - {0x0B}, {0x0B}, {0x11}, {0x02}, {0x11}, {0xFF} - }, { // BLEND - {0x11}, {0x0B}, {0xFF}, {0xFF}, {0xFF}, {0xFF} - }, { // POKEBLOCK - {0x11}, {0x0B}, {0xFF}, {0xFF}, {0xFF}, {0xFF} - }, { // MASTER - {0x0B}, {0x11}, {0x0B}, {0xFF}, {0xFF}, {0xFF} - }, { // RANK - {0x02}, {0x0B}, {0xFF}, {0xFF}, {0xFF}, {0xFF} - }, { // RIBBON - {0x02}, {0xFF}, {0xFF}, {0xFF}, {0xFF}, {0xFF} - } -}; - - -static const struct BardSound BardMusic_MOVE_1[][6] = { - { // THUNDERBOLT - {0x1A}, {0x0B}, {0x11}, {0xFF}, {0xFF}, {0xFF} - }, { // IRON_TAIL - {0x0B}, {0x0B}, {0x0B}, {0x11}, {0xFF}, {0xFF} - }, { // ICE_BALL - {0x1A}, {0x0B}, {0x29}, {0x0B}, {0xFF}, {0xFF} - }, { // YAWN - {0x0B}, {0x0B}, {0xFF}, {0xFF}, {0xFF}, {0xFF} - }, { // LOVELY_KISS - {0x1A}, {0x0B}, {0x29}, {0xFF}, {0xFF}, {0xFF} - }, { // NIGHTMARE - {0x02}, {0x02}, {0xFF}, {0xFF}, {0xFF}, {0xFF} - }, { // MORNING_SUN - {0x1A}, {0x0B}, {0x02}, {0x29}, {0x0B}, {0xFF} - }, { // VITAL_THROW - {0x11}, {0x0B}, {0x29}, {0xFF}, {0xFF}, {0xFF} - }, { // DIG - {0x02}, {0x29}, {0x0B}, {0xFF}, {0xFF}, {0xFF} - }, { // THRASH - {0x29}, {0x0B}, {0xFF}, {0xFF}, {0xFF}, {0xFF} - }, { // SWEET_SCENT - {0x1A}, {0x29}, {0xFF}, {0xFF}, {0xFF}, {0xFF} - }, { // CHARM - {0x02}, {0x0B}, {0xFF}, {0xFF}, {0xFF}, {0xFF} - }, { // RAIN_DANCE - {0x0B}, {0x0B}, {0x02}, {0xFF}, {0xFF}, {0xFF} - }, { // CONFUSE_RAY - {0x1A}, {0x29}, {0x02}, {0xFF}, {0xFF}, {0xFF} - }, { // HAIL - {0x02}, {0x0B}, {0x29}, {0xFF}, {0xFF}, {0xFF} - }, { // AROMATHERAPY - {0x02}, {0x1A}, {0x02}, {0x29}, {0xFF}, {0xFF} - }, { // BUBBLE - {0x29}, {0x0B}, {0xFF}, {0xFF}, {0xFF}, {0xFF} - }, { // ENCORE - {0x29}, {0x02}, {0xFF}, {0xFF}, {0xFF}, {0xFF} - }, { // CUT - {0x0B}, {0x0B}, {0x11}, {0x0B}, {0xFF}, {0xFF} - }, { // RAGE - {0x02}, {0x0B}, {0x0B}, {0x11}, {0xFF}, {0xFF} - }, { // SUPER_FANG - {0x29}, {0x0B}, {0x02}, {0x02}, {0xFF}, {0xFF} - }, { // PAIN_SPLIT - {0x0B}, {0x11}, {0x0B}, {0x11}, {0x0B}, {0xFF} - }, { // TORMENT - {0x1A}, {0x0B}, {0x0B}, {0xFF}, {0xFF}, {0xFF} - }, { // STRING_SHOT - {0x02}, {0x0B}, {0x29}, {0xFF}, {0xFF}, {0xFF} - }, { // SWAGGER - {0x02}, {0x0B}, {0x0B}, {0x0B}, {0x11}, {0xFF} - }, { // SNORE - {0x02}, {0x0B}, {0xFF}, {0xFF}, {0xFF}, {0xFF} - }, { // HEAL_BELL - {0x11}, {0x02}, {0x1A}, {0x0B}, {0xFF}, {0xFF} - }, { // SCREECH - {0x0B}, {0x11}, {0x0B}, {0x0B}, {0x11}, {0xFF} - }, { // ROCK_THROW - {0x0B}, {0x11}, {0x29}, {0xFF}, {0xFF}, {0xFF} - }, { // ROCK_SMASH - {0x0B}, {0x11}, {0x0B}, {0x0B}, {0xFF}, {0xFF} - }, { // ROCK_SLIDE - {0x0B}, {0x11}, {0x02}, {0x0B}, {0xFF}, {0xFF} - }, { // WEATHER_BALL - {0x0B}, {0x0B}, {0x1A}, {0x1A}, {0x1A}, {0x0B} - }, { // WHIRLPOOL - {0x11}, {0x29}, {0x29}, {0xFF}, {0xFF}, {0xFF} - }, { // FAKE_TEARS - {0x29}, {0x0B}, {0x0B}, {0xFF}, {0xFF}, {0xFF} - }, { // SING - {0x0B}, {0x02}, {0xFF}, {0xFF}, {0xFF}, {0xFF} - }, { // SPITE - {0x1A}, {0xFF}, {0xFF}, {0xFF}, {0xFF}, {0xFF} - }, { // AIR_CUTTER - {0x11}, {0x11}, {0xFF}, {0xFF}, {0xFF}, {0xFF} - }, { // AEROBLAST - {0x29}, {0x1A}, {0xFF}, {0xFF}, {0xFF}, {0xFF} - }, { // SMOKESCREEN - {0x02}, {0x29}, {0x1A}, {0x0B}, {0xFF}, {0xFF} - }, { // PURSUIT - {0x0B}, {0x1A}, {0x29}, {0xFF}, {0xFF}, {0xFF} - }, { // DOUBLE_SLAP - {0x29}, {0x0B}, {0x11}, {0xFF}, {0xFF}, {0xFF} - }, { // MIRROR_MOVE - {0x11}, {0x0B}, {0x11}, {0xFF}, {0xFF}, {0xFF} - }, { // OVERHEAT - {0x11}, {0x0B}, {0x1A}, {0x0B}, {0xFF}, {0xFF} - }, { // AURORA_BEAM - {0x02}, {0x29}, {0x1A}, {0x02}, {0x02}, {0xFF} - }, { // MEMENTO - {0x0B}, {0x0B}, {0x1A}, {0x1A}, {0x11}, {0xFF} - }, { // OCTAZOOKA - {0x1A}, {0x02}, {0x29}, {0x29}, {0x02}, {0xFF} - }, { // FLATTER - {0x0B}, {0x11}, {0x0B}, {0xFF}, {0xFF}, {0xFF} - }, { // ASTONISH - {0x0B}, {0x02}, {0x29}, {0xFF}, {0xFF}, {0xFF} - }, { // WILL_O_WISP - {0x11}, {0x11}, {0xFF}, {0xFF}, {0xFF}, {0xFF} - }, { // RETURN - {0x11}, {0x0B}, {0xFF}, {0xFF}, {0xFF}, {0xFF} - }, { // GRUDGE - {0x02}, {0x11}, {0xFF}, {0xFF}, {0xFF}, {0xFF} - }, { // STRENGTH - {0x0B}, {0x0B}, {0xFF}, {0xFF}, {0xFF}, {0xFF} - }, { // COUNTER - {0x1A}, {0x0B}, {0xFF}, {0xFF}, {0xFF}, {0xFF} - }, { // FLAME_WHEEL - {0x02}, {0x0B}, {0x02}, {0xFF}, {0xFF}, {0xFF} - }, { // FLAMETHROWER - {0x02}, {0x0B}, {0x29}, {0xFF}, {0xFF}, {0xFF} - }, { // ODOR_SLEUTH - {0x11}, {0x0B}, {0xFF}, {0xFF}, {0xFF}, {0xFF} - }, { // SHARPEN - {0x0B}, {0x0B}, {0xFF}, {0xFF}, {0xFF}, {0xFF} - }, { // DOUBLE_TEAM - {0x1A}, {0x0B}, {0x11}, {0xFF}, {0xFF}, {0xFF} - }, { // GUST - {0x11}, {0x1A}, {0xFF}, {0xFF}, {0xFF}, {0xFF} - }, { // HARDEN - {0x0B}, {0x0B}, {0xFF}, {0xFF}, {0xFF}, {0xFF} - }, { // DISABLE - {0x02}, {0x29}, {0x0B}, {0x0B}, {0xFF}, {0xFF} - }, { // RAZOR_WIND - {0x11}, {0x0B}, {0x29}, {0xFF}, {0xFF}, {0xFF} - }, { // BIDE - {0x0B}, {0x02}, {0x29}, {0x0B}, {0xFF}, {0xFF} - }, { // CRUNCH - {0x11}, {0x0B}, {0xFF}, {0xFF}, {0xFF}, {0xFF} - }, { // BITE - {0x11}, {0xFF}, {0xFF}, {0xFF}, {0xFF}, {0xFF} - }, { // THUNDER - {0x1A}, {0x0B}, {0xFF}, {0xFF}, {0xFF}, {0xFF} - }, { // THUNDER_PUNCH - {0x1A}, {0x0B}, {0x02}, {0xFF}, {0xFF}, {0xFF} - }, { // ENDEAVOR - {0x1A}, {0x11}, {0x29}, {0x02}, {0x11}, {0x1A} - }, { // FACADE - {0x02}, {0x02}, {0x0B}, {0xFF}, {0xFF}, {0xFF} - }, { // KARATE_CHOP - {0x02}, {0x02}, {0x0B}, {0x02}, {0xFF}, {0xFF} - }, { // CLAMP - {0x02}, {0x0B}, {0xFF}, {0xFF}, {0xFF}, {0xFF} - }, { // WITHDRAW - {0x02}, {0x0B}, {0x29}, {0xFF}, {0xFF}, {0xFF} - }, { // CONSTRICT - {0x29}, {0x02}, {0x0B}, {0x29}, {0xFF}, {0xFF} - }, { // BRICK_BREAK - {0x29}, {0x29}, {0xFF}, {0xFF}, {0xFF}, {0xFF} - }, { // ROCK_TOMB - {0x0B}, {0x02}, {0xFF}, {0xFF}, {0xFF}, {0xFF} - }, { // FOCUS_ENERGY - {0x0B}, {0x0B}, {0x11}, {0x1A}, {0x29}, {0xFF} - }, { // FOCUS_PUNCH - {0x02}, {0x29}, {0x0B}, {0x02}, {0xFF}, {0xFF} - }, { // GIGA_DRAIN - {0x11}, {0x02}, {0x02}, {0x29}, {0x0B}, {0xFF} - }, { // REVERSAL - {0x0B}, {0x0B}, {0x02}, {0xFF}, {0xFF}, {0xFF} - }, { // SMELLING_SALT - {0x11}, {0x02}, {0xFF}, {0xFF}, {0xFF}, {0xFF} - }, { // SPORE - {0x11}, {0x1A}, {0xFF}, {0xFF}, {0xFF}, {0xFF} - }, { // LEECH_LIFE - {0x29}, {0x02}, {0x29}, {0x0B}, {0xFF}, {0xFF} - }, { // SLASH - {0x11}, {0x0B}, {0xFF}, {0xFF}, {0xFF}, {0xFF} - }, { // SILVER_WIND - {0x11}, {0x0B}, {0x02}, {0x29}, {0xFF}, {0xFF} - }, { // METAL_SOUND - {0x0B}, {0x02}, {0x02}, {0x29}, {0xFF}, {0xFF} - }, { // GRASS_WHISTLE - {0x02}, {0x0B}, {0x0B}, {0xFF}, {0xFF}, {0xFF} - }, { // TICKLE - {0x02}, {0x02}, {0x1A}, {0x0B}, {0xFF}, {0xFF} - }, { // SPIDER_WEB - {0x11}, {0x0B}, {0x0B}, {0xFF}, {0xFF}, {0xFF} - }, { // CRABHAMMER - {0x02}, {0x02}, {0x0B}, {0xFF}, {0xFF}, {0xFF} - }, { // HAZE - {0x29}, {0x0B}, {0x0B}, {0x0B}, {0xFF}, {0xFF} - }, { // MEAN_LOOK - {0x1A}, {0x1A}, {0x11}, {0xFF}, {0xFF}, {0xFF} - }, { // CROSS_CHOP - {0x0B}, {0x29}, {0x11}, {0xFF}, {0xFF}, {0xFF} - }, { // OUTRAGE - {0x29}, {0x02}, {0x02}, {0xFF}, {0xFF}, {0xFF} - }, { // LOW_KICK - {0x29}, {0x11}, {0xFF}, {0xFF}, {0xFF}, {0xFF} - }, { // ANCIENT_POWER - {0x02}, {0x11}, {0x02}, {0xFF}, {0xFF}, {0xFF} - }, { // SYNTHESIS - {0x11}, {0x0B}, {0x0B}, {0xFF}, {0xFF}, {0xFF} - }, { // AGILITY - {0x02}, {0x11}, {0x11}, {0x0B}, {0xFF}, {0xFF} - }, { // RAPID_SPIN - {0x29}, {0x1A}, {0x0B}, {0x0B}, {0xFF}, {0xFF} - }, { // ICY_WIND - {0x0B}, {0x11}, {0x29}, {0xFF}, {0xFF}, {0xFF} - }, { // MIND_READER - {0x11}, {0x0B}, {0x0B}, {0x0B}, {0xFF}, {0xFF} - }, { // COSMIC_POWER - {0x1A}, {0x11}, {0x02}, {0xFF}, {0xFF}, {0xFF} - }, { // SKY_ATTACK - {0x11}, {0x0B}, {0x0B}, {0x0B}, {0xFF}, {0xFF} - }, { // POWDER_SNOW - {0x29}, {0x0B}, {0x0B}, {0x0B}, {0xFF}, {0xFF} - }, { // FOLLOW_ME - {0x1A}, {0x0B}, {0x11}, {0xFF}, {0xFF}, {0xFF} - }, { // METEOR_MASH - {0x0B}, {0x0B}, {0x11}, {0xFF}, {0xFF}, {0xFF} - }, { // ENDURE - {0x02}, {0x29}, {0x02}, {0x29}, {0xFF}, {0xFF} - }, { // ROLLOUT - {0x02}, {0x0B}, {0xFF}, {0xFF}, {0xFF}, {0xFF} - }, { // SCARY_FACE - {0x11}, {0x02}, {0x0B}, {0xFF}, {0xFF}, {0xFF} - }, { // PSYBEAM - {0x11}, {0x02}, {0xFF}, {0xFF}, {0xFF}, {0xFF} - }, { // PSYWAVE - {0x11}, {0x0B}, {0x0B}, {0xFF}, {0xFF}, {0xFF} - }, { // PSYCHIC - {0x11}, {0x1A}, {0x11}, {0x0B}, {0x0B}, {0xFF} - }, { // HYPNOSIS - {0x11}, {0x1A}, {0x0B}, {0xFF}, {0xFF}, {0xFF} - }, { // UPROAR - {0x02}, {0x29}, {0x29}, {0xFF}, {0xFF}, {0xFF} - }, { // WATER_SPOUT - {0x1A}, {0x0B}, {0x0B}, {0xFF}, {0xFF}, {0xFF} - }, { // SIGNAL_BEAM - {0x02}, {0x0B}, {0x0B}, {0x29}, {0x0B}, {0xFF} - }, { // PSYCH_UP - {0x11}, {0x1A}, {0x29}, {0xFF}, {0xFF}, {0xFF} - }, { // SUBMISSION - {0x11}, {0x0B}, {0x1A}, {0x0B}, {0xFF}, {0xFF} - }, { // RECOVER - {0x0B}, {0x0B}, {0x29}, {0xFF}, {0xFF}, {0xFF} - }, { // EARTHQUAKE - {0x0B}, {0x0B}, {0x0B}, {0xFF}, {0xFF}, {0xFF} - }, { // NATURE_POWER - {0x02}, {0x29}, {0x02}, {0xFF}, {0xFF}, {0xFF} - }, { // LICK - {0x0B}, {0x0B}, {0xFF}, {0xFF}, {0xFF}, {0xFF} - }, { // FLAIL - {0x0B}, {0x0B}, {0x0B}, {0xFF}, {0xFF}, {0xFF} - }, { // TAIL_WHIP - {0x29}, {0x0B}, {0x02}, {0xFF}, {0xFF}, {0xFF} - }, { // SELF_DESTRUCT - {0x11}, {0x02}, {0x0B}, {0xFF}, {0xFF}, {0xFF} - }, { // STUN_SPORE - {0x02}, {0x0B}, {0x1A}, {0x0B}, {0xFF}, {0xFF} - }, { // BIND - {0x02}, {0x0B}, {0x11}, {0xFF}, {0xFF}, {0xFF} - }, { // SHADOW_PUNCH - {0x11}, {0x0B}, {0x02}, {0x29}, {0xFF}, {0xFF} - }, { // SHADOW_BALL - {0x29}, {0x02}, {0xFF}, {0xFF}, {0xFF}, {0xFF} - }, { // CHARGE - {0x02}, {0x0B}, {0x1A}, {0x02}, {0xFF}, {0xFF} - }, { // MIST - {0x0B}, {0x11}, {0x0B}, {0x0B}, {0xFF}, {0xFF} - }, { // FISSURE - {0x0B}, {0x1A}, {0x11}, {0x29}, {0xFF}, {0xFF} - }, { // EXTREME_SPEED - {0x29}, {0x1A}, {0x0B}, {0x1A}, {0xFF}, {0xFF} - }, { // EXTRASENSORY - {0x1A}, {0x0B}, {0x0B}, {0x1A}, {0xFF}, {0xFF} - }, { // SAFEGUARD - {0x1A}, {0x11}, {0x02}, {0xFF}, {0xFF}, {0xFF} - }, { // ABSORB - {0x02}, {0x1A}, {0x0B}, {0xFF}, {0xFF}, {0xFF} - }, { // SKY_UPPERCUT - {0x11}, {0x0B}, {0x11}, {0xFF}, {0xFF}, {0xFF} - }, { // SKILL_SWAP - {0x0B}, {0x0B}, {0x0B}, {0x0B}, {0xFF}, {0xFF} - }, { // SKETCH - {0x02}, {0x02}, {0x0B}, {0xFF}, {0xFF}, {0xFF} - }, { // HEADBUTT - {0x1A}, {0x29}, {0xFF}, {0xFF}, {0xFF}, {0xFF} - }, { // DOUBLE_EDGE - {0x11}, {0x11}, {0x1A}, {0x02}, {0x0B}, {0xFF} - }, { // SANDSTORM - {0x02}, {0x29}, {0xFF}, {0xFF}, {0xFF}, {0xFF} - }, { // SAND_ATTACK - {0x02}, {0x11}, {0x0B}, {0xFF}, {0xFF}, {0xFF} - }, { // SAND_TOMB - {0x02}, {0x02}, {0xFF}, {0xFF}, {0xFF}, {0xFF} - }, { // SPARK - {0x29}, {0x0B}, {0x29}, {0xFF}, {0xFF}, {0xFF} - }, { // SWIFT - {0x0B}, {0x02}, {0x29}, {0x0B}, {0xFF}, {0xFF} - }, { // KINESIS - {0x11}, {0x02}, {0xFF}, {0xFF}, {0xFF}, {0xFF} - }, { // SMOG - {0x1A}, {0xFF}, {0xFF}, {0xFF}, {0xFF}, {0xFF} - }, { // GROWTH - {0x02}, {0x29}, {0xFF}, {0xFF}, {0xFF}, {0xFF} - }, { // SACRED_FIRE - {0x0B}, {0x29}, {0x0B}, {0x0B}, {0x29}, {0x0B} - }, { // SHEER_COLD - {0x0B}, {0x11}, {0x0B}, {0x0B}, {0x0B}, {0xFF} - }, { // SOLAR_BEAM - {0x1A}, {0x02}, {0x02}, {0xFF}, {0xFF}, {0xFF} - }, { // SONIC_BOOM - {0x29}, {0x02}, {0x02}, {0xFF}, {0xFF}, {0xFF} - }, { // FLY - {0x11}, {0x0B}, {0xFF}, {0xFF}, {0xFF}, {0xFF} - } -}; - - -static const struct BardSound BardMusic_MOVE_2[][6] = { - { // TACKLE - {0x02}, {0x0B}, {0xFF}, {0xFF}, {0xFF}, {0xFF} - }, { // EXPLOSION - {0x0B}, {0x1A}, {0x11}, {0x1A}, {0xFF}, {0xFF} - }, { // DIVE - {0x02}, {0x29}, {0x0B}, {0xFF}, {0xFF}, {0xFF} - }, { // FIRE_BLAST - {0x0B}, {0x29}, {0x0B}, {0x29}, {0xFF}, {0xFF} - }, { // WATERFALL - {0x02}, {0x02}, {0x0B}, {0xFF}, {0xFF}, {0xFF} - }, { // MUDDY_WATER - {0x0B}, {0x11}, {0x0B}, {0xFF}, {0xFF}, {0xFF} - }, { // STOCKPILE - {0x1A}, {0x0B}, {0xFF}, {0xFF}, {0xFF}, {0xFF} - }, { // SLAM - {0x02}, {0xFF}, {0xFF}, {0xFF}, {0xFF}, {0xFF} - }, { // TWISTER - {0x11}, {0x1A}, {0x0B}, {0xFF}, {0xFF}, {0xFF} - }, { // BULLET_SEED - {0x29}, {0x0B}, {0x02}, {0x02}, {0xFF}, {0xFF} - }, { // TWINEEDLE - {0x29}, {0x1A}, {0x02}, {0x0B}, {0xFF}, {0xFF} - }, { // SOFT_BOILED - {0x0B}, {0x11}, {0x0B}, {0x11}, {0xFF}, {0xFF} - }, { // EGG_BOMB - {0x0B}, {0x11}, {0x0B}, {0x1A}, {0x0B}, {0xFF} - }, { // FAINT_ATTACK - {0x11}, {0x0B}, {0xFF}, {0xFF}, {0xFF}, {0xFF} - }, { // BARRAGE - {0x02}, {0x02}, {0x1A}, {0xFF}, {0xFF}, {0xFF} - }, { // MINIMIZE - {0x1A}, {0x11}, {0x02}, {0x1A}, {0xFF}, {0xFF} - }, { // SEISMIC_TOSS - {0x0B}, {0x1A}, {0x29}, {0xFF}, {0xFF}, {0xFF} - }, { // SUPERSONIC - {0x29}, {0x0B}, {0x02}, {0xFF}, {0xFF}, {0xFF} - }, { // TAUNT - {0x0B}, {0x0B}, {0x0B}, {0xFF}, {0xFF}, {0xFF} - }, { // MOONLIGHT - {0x1A}, {0x0B}, {0x11}, {0xFF}, {0xFF}, {0xFF} - }, { // PECK - {0x02}, {0x0B}, {0xFF}, {0xFF}, {0xFF}, {0xFF} - }, { // ARM_THRUST - {0x02}, {0x1A}, {0xFF}, {0xFF}, {0xFF}, {0xFF} - }, { // HORN_ATTACK - {0x1A}, {0x02}, {0x02}, {0x0B}, {0xFF}, {0xFF} - }, { // HORN_DRILL - {0x1A}, {0x1A}, {0x0B}, {0xFF}, {0xFF}, {0xFF} - }, { // WING_ATTACK - {0x11}, {0x0B}, {0x02}, {0xFF}, {0xFF}, {0xFF} - }, { // AERIAL_ACE - {0x02}, {0x0B}, {0x1A}, {0x02}, {0xFF}, {0xFF} - }, { // SWORDS_DANCE - {0x0B}, {0x02}, {0xFF}, {0xFF}, {0xFF}, {0xFF} - }, { // VINE_WHIP - {0x02}, {0x0B}, {0x11}, {0xFF}, {0xFF}, {0xFF} - }, { // CONVERSION - {0x29}, {0x02}, {0x29}, {0xFF}, {0xFF}, {0xFF} - }, { // CONVERSION_2 - {0x29}, {0x02}, {0x29}, {0x0B}, {0x11}, {0xFF} - }, { // HELPING_HAND - {0x0B}, {0x0B}, {0x02}, {0xFF}, {0xFF}, {0xFF} - }, { // IRON_DEFENSE - {0x0B}, {0x11}, {0x0B}, {0x02}, {0x0B}, {0xFF} - }, { // TELEPORT - {0x0B}, {0x0B}, {0x1A}, {0xFF}, {0xFF}, {0xFF} - }, { // THUNDER_SHOCK - {0x1A}, {0x0B}, {0x1A}, {0xFF}, {0xFF}, {0xFF} - }, { // SHOCK_WAVE - {0x1A}, {0x0B}, {0x0B}, {0xFF}, {0xFF}, {0xFF} - }, { // QUICK_ATTACK - {0x29}, {0x29}, {0x11}, {0xFF}, {0xFF}, {0xFF} - }, { // SWEET_KISS - {0x11}, {0x0B}, {0x29}, {0xFF}, {0xFF}, {0xFF} - }, { // THUNDER_WAVE - {0x1A}, {0x0B}, {0x0B}, {0x0B}, {0xFF}, {0xFF} - }, { // ZAP_CANNON - {0x11}, {0x02}, {0x1A}, {0x0B}, {0xFF}, {0xFF} - }, { // BLOCK - {0x11}, {0x0B}, {0x29}, {0xFF}, {0xFF}, {0xFF} - }, { // HOWL - {0x02}, {0x29}, {0x0B}, {0xFF}, {0xFF}, {0xFF} - }, { // POISON_GAS - {0x11}, {0x1A}, {0x0B}, {0xFF}, {0xFF}, {0xFF} - }, { // TOXIC - {0x1A}, {0x11}, {0xFF}, {0xFF}, {0xFF}, {0xFF} - }, { // POISON_FANG - {0x11}, {0x02}, {0x02}, {0xFF}, {0xFF}, {0xFF} - }, { // POISON_POWDER - {0x11}, {0x29}, {0x0B}, {0xFF}, {0xFF}, {0xFF} - }, { // POISON_STING - {0x11}, {0x02}, {0x0B}, {0xFF}, {0xFF}, {0xFF} - }, { // SPIKE_CANNON - {0x1A}, {0x02}, {0x1A}, {0x0B}, {0xFF}, {0xFF} - }, { // ACID_ARMOR - {0x0B}, {0x29}, {0x0B}, {0x02}, {0x0B}, {0xFF} - }, { // TAKE_DOWN - {0x1A}, {0x11}, {0x0B}, {0xFF}, {0xFF}, {0xFF} - }, { // JUMP_KICK - {0x29}, {0x11}, {0xFF}, {0xFF}, {0xFF}, {0xFF} - }, { // BOUNCE - {0x29}, {0x0B}, {0x0B}, {0xFF}, {0xFF}, {0xFF} - }, { // HI_JUMP_KICK - {0x29}, {0x11}, {0xFF}, {0xFF}, {0xFF}, {0xFF} - }, { // TRI_ATTACK - {0x11}, {0x0B}, {0x0B}, {0xFF}, {0xFF}, {0xFF} - }, { // DRAGON_CLAW - {0x02}, {0x0B}, {0x02}, {0x29}, {0x0B}, {0xFF} - }, { // TRICK - {0x11}, {0x0B}, {0x29}, {0xFF}, {0xFF}, {0xFF} - }, { // TRIPLE_KICK - {0x0B}, {0x11}, {0x02}, {0x11}, {0xFF}, {0xFF} - }, { // DRILL_PECK - {0x1A}, {0x02}, {0x0B}, {0xFF}, {0xFF}, {0xFF} - }, { // MUD_SPORT - {0x0B}, {0x29}, {0x0B}, {0xFF}, {0xFF}, {0xFF} - }, { // MUD_SLAP - {0x0B}, {0x0B}, {0x0B}, {0xFF}, {0xFF}, {0xFF} - }, { // THIEF - {0x02}, {0x29}, {0xFF}, {0xFF}, {0xFF}, {0xFF} - }, { // AMNESIA - {0x02}, {0x0B}, {0x11}, {0xFF}, {0xFF}, {0xFF} - }, { // NIGHT_SHADE - {0x02}, {0x0B}, {0x0B}, {0xFF}, {0xFF}, {0xFF} - }, { // GROWL - {0x0B}, {0x29}, {0x0B}, {0xFF}, {0xFF}, {0xFF} - }, { // SLACK_OFF - {0x02}, {0x0B}, {0x11}, {0xFF}, {0xFF}, {0xFF} - }, { // SURF - {0x0B}, {0x0B}, {0xFF}, {0xFF}, {0xFF}, {0xFF} - }, { // ROLE_PLAY - {0x1A}, {0x0B}, {0x02}, {0x29}, {0xFF}, {0xFF} - }, { // NEEDLE_ARM - {0x11}, {0x0B}, {0x02}, {0x0B}, {0xFF}, {0xFF} - }, { // DOUBLE_KICK - {0x1A}, {0x0B}, {0x11}, {0xFF}, {0xFF}, {0xFF} - }, { // SUNNY_DAY - {0x1A}, {0x0B}, {0x02}, {0xFF}, {0xFF}, {0xFF} - }, { // LEER - {0x11}, {0x0B}, {0x11}, {0xFF}, {0xFF}, {0xFF} - }, { // WISH - {0x29}, {0x02}, {0x29}, {0xFF}, {0xFF}, {0xFF} - }, { // FAKE_OUT - {0x1A}, {0x0B}, {0x11}, {0xFF}, {0xFF}, {0xFF} - }, { // SLEEP_TALK - {0x02}, {0x0B}, {0x0B}, {0xFF}, {0xFF}, {0xFF} - }, { // PAY_DAY - {0x02}, {0x02}, {0xFF}, {0xFF}, {0xFF}, {0xFF} - }, { // ASSIST - {0x29}, {0x29}, {0xFF}, {0xFF}, {0xFF}, {0xFF} - }, { // HEAT_WAVE - {0x11}, {0x0B}, {0x0B}, {0x0B}, {0xFF}, {0xFF} - }, { // SLEEP_POWDER - {0x02}, {0x29}, {0xFF}, {0xFF}, {0xFF}, {0xFF} - }, { // REST - {0x0B}, {0x1A}, {0x29}, {0xFF}, {0xFF}, {0xFF} - }, { // INGRAIN - {0x0B}, {0x29}, {0x0B}, {0xFF}, {0xFF}, {0xFF} - }, { // CONFUSION - {0x1A}, {0x29}, {0x11}, {0x1A}, {0xFF}, {0xFF} - }, { // BODY_SLAM - {0x1A}, {0x11}, {0x02}, {0xFF}, {0xFF}, {0xFF} - }, { // SWALLOW - {0x0B}, {0x0B}, {0x0B}, {0xFF}, {0xFF}, {0xFF} - }, { // CURSE - {0x29}, {0xFF}, {0xFF}, {0xFF}, {0xFF}, {0xFF} - }, { // HYDRO_PUMP - {0x11}, {0x1A}, {0x29}, {0x0B}, {0xFF}, {0xFF} - }, { // HYPER_VOICE - {0x02}, {0x0B}, {0x0B}, {0xFF}, {0xFF}, {0xFF} - }, { // HYPER_BEAM - {0x11}, {0x0B}, {0x02}, {0xFF}, {0xFF}, {0xFF} - }, { // SUPERPOWER - {0x02}, {0x1A}, {0x1A}, {0xFF}, {0xFF}, {0xFF} - }, { // STEEL_WING - {0x02}, {0x11}, {0x0B}, {0xFF}, {0xFF}, {0xFF} - }, { // SPIT_UP - {0x0B}, {0x0B}, {0x0B}, {0xFF}, {0xFF}, {0xFF} - }, { // DYNAMIC_PUNCH - {0x29}, {0x02}, {0xFF}, {0xFF}, {0xFF}, {0xFF} - }, { // GUILLOTINE - {0x11}, {0x1A}, {0x11}, {0x0B}, {0xFF}, {0xFF} - }, { // VICE_GRIP - {0x02}, {0x0B}, {0xFF}, {0xFF}, {0xFF}, {0xFF} - }, { // KNOCK_OFF - {0x02}, {0x02}, {0xFF}, {0xFF}, {0xFF}, {0xFF} - }, { // POUND - {0x29}, {0xFF}, {0xFF}, {0xFF}, {0xFF}, {0xFF} - }, { // RAZOR_LEAF - {0x02}, {0x11}, {0x02}, {0xFF}, {0xFF}, {0xFF} - }, { // BATON_PASS - {0x02}, {0x0B}, {0x0B}, {0xFF}, {0xFF}, {0xFF} - }, { // PETAL_DANCE - {0x0B}, {0x0B}, {0x02}, {0xFF}, {0xFF}, {0xFF} - }, { // SPLASH - {0x02}, {0x0B}, {0xFF}, {0xFF}, {0xFF}, {0xFF} - }, { // BUBBLE_BEAM - {0x29}, {0x02}, {0xFF}, {0xFF}, {0xFF}, {0xFF} - }, { // BELLY_DRUM - {0x02}, {0x29}, {0x1A}, {0x0B}, {0xFF}, {0xFF} - }, { // BARRIER - {0x02}, {0x11}, {0x0B}, {0x0B}, {0xFF}, {0xFF} - }, { // LIGHT_SCREEN - {0x11}, {0x11}, {0xFF}, {0xFF}, {0xFF}, {0xFF} - }, { // SCRATCH - {0x02}, {0x0B}, {0xFF}, {0xFF}, {0xFF}, {0xFF} - }, { // HYPER_FANG - {0x11}, {0x0B}, {0x02}, {0x02}, {0xFF}, {0xFF} - }, { // EMBER - {0x29}, {0xFF}, {0xFF}, {0xFF}, {0xFF}, {0xFF} - }, { // SECRET_POWER - {0x0B}, {0x0B}, {0x11}, {0x02}, {0x29}, {0x0B} - }, { // DIZZY_PUNCH - {0x11}, {0x02}, {0xFF}, {0xFF}, {0xFF}, {0xFF} - }, { // BULK_UP - {0x1A}, {0x0B}, {0xFF}, {0xFF}, {0xFF}, {0xFF} - }, { // IMPRISON - {0x0B}, {0x0B}, {0x0B}, {0xFF}, {0xFF}, {0xFF} - }, { // FEATHER_DANCE - {0x02}, {0x29}, {0x0B}, {0x0B}, {0x11}, {0x0B} - }, { // WHIRLWIND - {0x11}, {0x0B}, {0x11}, {0xFF}, {0xFF}, {0xFF} - }, { // BEAT_UP - {0x11}, {0x0B}, {0xFF}, {0xFF}, {0xFF}, {0xFF} - }, { // BLIZZARD - {0x11}, {0x02}, {0xFF}, {0xFF}, {0xFF}, {0xFF} - }, { // STOMP - {0x02}, {0x0B}, {0xFF}, {0xFF}, {0xFF}, {0xFF} - }, { // FLASH - {0x11}, {0xFF}, {0xFF}, {0xFF}, {0xFF}, {0xFF} - }, { // TEETER_DANCE - {0x02}, {0x29}, {0x0B}, {0x02}, {0xFF}, {0xFF} - }, { // CRUSH_CLAW - {0x0B}, {0x02}, {0x02}, {0x29}, {0x0B}, {0xFF} - }, { // BLAZE_KICK - {0x0B}, {0x29}, {0x0B}, {0x0B}, {0x0B}, {0xFF} - }, { // PRESENT - {0x0B}, {0x0B}, {0xFF}, {0xFF}, {0xFF}, {0xFF} - }, { // ERUPTION - {0x0B}, {0x29}, {0x11}, {0x1A}, {0xFF}, {0xFF} - }, { // SLUDGE - {0x02}, {0x02}, {0xFF}, {0xFF}, {0xFF}, {0xFF} - }, { // SLUDGE_BOMB - {0x02}, {0x1A}, {0x0B}, {0xFF}, {0xFF}, {0xFF} - }, { // GLARE - {0x11}, {0x11}, {0xFF}, {0xFF}, {0xFF}, {0xFF} - }, { // TRANSFORM - {0x02}, {0x0B}, {0xFF}, {0xFF}, {0xFF}, {0xFF} - }, { // POISON_TAIL - {0x11}, {0x0B}, {0x11}, {0xFF}, {0xFF}, {0xFF} - }, { // ROAR - {0x11}, {0x0B}, {0xFF}, {0xFF}, {0xFF}, {0xFF} - }, { // BONE_RUSH - {0x1A}, {0x0B}, {0x02}, {0xFF}, {0xFF}, {0xFF} - }, { // CAMOUFLAGE - {0x02}, {0x29}, {0xFF}, {0xFF}, {0xFF}, {0xFF} - }, { // COVET - {0x0B}, {0x11}, {0x0B}, {0xFF}, {0xFF}, {0xFF} - }, { // TAIL_GLOW - {0x0B}, {0x11}, {0x02}, {0xFF}, {0xFF}, {0xFF} - }, { // BONE_CLUB - {0x1A}, {0x0B}, {0x0B}, {0x29}, {0x0B}, {0xFF} - }, { // BONEMERANG - {0x1A}, {0x0B}, {0x02}, {0xFF}, {0xFF}, {0xFF} - }, { // FIRE_SPIN - {0x0B}, {0x29}, {0x0B}, {0x11}, {0x0B}, {0xFF} - }, { // FIRE_PUNCH - {0x0B}, {0x29}, {0x0B}, {0x02}, {0xFF}, {0xFF} - }, { // PERISH_SONG - {0x02}, {0x0B}, {0x02}, {0xFF}, {0xFF}, {0xFF} - }, { // WRAP - {0x11}, {0x0B}, {0xFF}, {0xFF}, {0xFF}, {0xFF} - }, { // SPIKES - {0x02}, {0x0B}, {0xFF}, {0xFF}, {0xFF}, {0xFF} - }, { // MAGNITUDE - {0x11}, {0x0B}, {0x11}, {0x0B}, {0xFF}, {0xFF} - }, { // MAGICAL_LEAF - {0x02}, {0x29}, {0x0B}, {0x02}, {0xFF}, {0xFF} - }, { // MAGIC_COAT - {0x02}, {0x11}, {0x02}, {0x0B}, {0xFF}, {0xFF} - }, { // MUD_SHOT - {0x0B}, {0x29}, {0xFF}, {0xFF}, {0xFF}, {0xFF} - }, { // MACH_PUNCH - {0x0B}, {0x1A}, {0x11}, {0xFF}, {0xFF}, {0xFF} - }, { // PROTECT - {0x29}, {0x11}, {0xFF}, {0xFF}, {0xFF}, {0xFF} - }, { // DEFENSE_CURL - {0x0B}, {0x11}, {0x11}, {0x0B}, {0xFF}, {0xFF} - }, { // ROLLING_KICK - {0x0B}, {0x0B}, {0x11}, {0xFF}, {0xFF}, {0xFF} - }, { // SUBSTITUTE - {0x0B}, {0x0B}, {0x02}, {0x1A}, {0xFF}, {0xFF} - }, { // DETECT - {0x0B}, {0x0B}, {0xFF}, {0xFF}, {0xFF}, {0xFF} - }, { // PIN_MISSILE - {0x02}, {0x0B}, {0x02}, {0x0B}, {0x0B}, {0xFF} - }, { // WATER_SPORT - {0x02}, {0x02}, {0x0B}, {0xFF}, {0xFF}, {0xFF} - }, { // WATER_GUN - {0x02}, {0x02}, {0x02}, {0x0B}, {0xFF}, {0xFF} - }, { // MIST_BALL - {0x0B}, {0x0B}, {0x02}, {0xFF}, {0xFF}, {0xFF} - }, { // WATER_PULSE - {0x02}, {0x02}, {0x0B}, {0x0B}, {0xFF}, {0xFF} - }, { // FURY_ATTACK - {0x29}, {0x11}, {0x0B}, {0x02}, {0xFF}, {0xFF} - }, { // FURY_SWIPES - {0x02}, {0x29}, {0x11}, {0x0B}, {0xFF}, {0xFF} - }, { // DESTINY_BOND - {0x02}, {0x02}, {0x29}, {0xFF}, {0xFF}, {0xFF} - }, { // FALSE_SWIPE - {0x29}, {0x02}, {0xFF}, {0xFF}, {0xFF}, {0xFF} - }, { // FORESIGHT - {0x0B}, {0x11}, {0x0B}, {0xFF}, {0xFF}, {0xFF} - }, { // MIRROR_COAT - {0x11}, {0x0B}, {0x02}, {0xFF}, {0xFF}, {0xFF} - }, { // FUTURE_SIGHT - {0x0B}, {0x0B}, {0xFF}, {0xFF}, {0xFF}, {0xFF} - }, { // MILK_DRINK - {0x11}, {0x0B}, {0x0B}, {0xFF}, {0xFF}, {0xFF} - }, { // CALM_MIND - {0x0B}, {0x02}, {0x0B}, {0x29}, {0xFF}, {0xFF} - }, { // MEGA_DRAIN - {0x0B}, {0x02}, {0x02}, {0x29}, {0x0B}, {0xFF} - }, { // MEGA_KICK - {0x0B}, {0x02}, {0x11}, {0xFF}, {0xFF}, {0xFF} - }, { // MEGA_PUNCH - {0x0B}, {0x02}, {0x11}, {0xFF}, {0xFF}, {0xFF} - }, { // MEGAHORN - {0x11}, {0x0B}, {0x0B}, {0xFF}, {0xFF}, {0xFF} - }, { // HIDDEN_POWER - {0x02}, {0x0B}, {0x0B}, {0x0B}, {0xFF}, {0xFF} - }, { // METAL_CLAW - {0x0B}, {0x02}, {0x02}, {0x29}, {0x0B}, {0xFF} - }, { // ATTRACT - {0x02}, {0x11}, {0x29}, {0xFF}, {0xFF}, {0xFF} - }, { // MIMIC - {0x11}, {0x11}, {0x11}, {0xFF}, {0xFF}, {0xFF} - }, { // FRUSTRATION - {0x29}, {0x02}, {0x11}, {0x1A}, {0xFF}, {0xFF} - }, { // LEECH_SEED - {0x0B}, {0x0B}, {0x02}, {0x0B}, {0xFF}, {0xFF} - }, { // METRONOME - {0x0B}, {0x1A}, {0x1A}, {0xFF}, {0xFF}, {0xFF} - }, { // DREAM_EATER - {0x02}, {0x29}, {0x0B}, {0x0B}, {0xFF}, {0xFF} - }, { // ACID - {0x0B}, {0x29}, {0x0B}, {0xFF}, {0xFF}, {0xFF} - }, { // MEDITATE - {0x0B}, {0x11}, {0x02}, {0x11}, {0x1A}, {0xFF} - }, { // SNATCH - {0x11}, {0x0B}, {0x02}, {0x0B}, {0xFF}, {0xFF} - }, { // LUSTER_PURGE - {0x0B}, {0x11}, {0x0B}, {0x0B}, {0xFF}, {0xFF} - }, { // LEAF_BLADE - {0x02}, {0x29}, {0x11}, {0x0B}, {0xFF}, {0xFF} - }, { // RECYCLE - {0x02}, {0x29}, {0x0B}, {0x0B}, {0x11}, {0x29} - }, { // REFLECT - {0x0B}, {0x0B}, {0x1A}, {0xFF}, {0xFF}, {0xFF} - }, { // REFRESH - {0x0B}, {0x11}, {0x29}, {0xFF}, {0xFF}, {0xFF} - }, { // REVENGE - {0x0B}, {0x0B}, {0x29}, {0xFF}, {0xFF}, {0xFF} - }, { // DRAGON_RAGE - {0x02}, {0x0B}, {0x29}, {0xFF}, {0xFF}, {0xFF} - }, { // DRAGON_BREATH - {0x0B}, {0x29}, {0x1A}, {0x0B}, {0xFF}, {0xFF} - }, { // DRAGON_DANCE - {0x02}, {0x0B}, {0x02}, {0xFF}, {0xFF}, {0xFF} - }, { // ICE_PUNCH - {0x0B}, {0x11}, {0x11}, {0xFF}, {0xFF}, {0xFF} - }, { // ICE_BEAM - {0x0B}, {0x11}, {0x02}, {0xFF}, {0xFF}, {0xFF} - }, { // FURY_CUTTER - {0x1A}, {0x11}, {0x0B}, {0xFF}, {0xFF}, {0xFF} - }, { // COMET_PUNCH - {0x1A}, {0x0B}, {0x0B}, {0x11}, {0xFF}, {0xFF} - }, { // SKULL_BASH - {0x0B}, {0x0B}, {0x29}, {0x0B}, {0xFF}, {0xFF} - }, { // LOCK_ON - {0x11}, {0x29}, {0xFF}, {0xFF}, {0xFF}, {0xFF} - }, { // ROCK_BLAST - {0x0B}, {0x29}, {0xFF}, {0xFF}, {0xFF}, {0xFF} - }, { // COTTON_SPORE - {0x02}, {0x29}, {0x1A}, {0x02}, {0x02}, {0xFF} - }, { // STRUGGLE - {0x0B}, {0x0B}, {0x11}, {0x0B}, {0xFF}, {0xFF} - } -}; - - -static const struct BardSound BardMusic_TRENDY_SAYING[][6] = { - { // KTHX, BYE. - {0x1A}, {0x29}, {0x11}, {0x02}, {0xFF}, {0xFF} - }, { // YES, SIR! - {0x0B}, {0x11}, {0x0B}, {0x11}, {0xFF}, {0xFF} - }, { // AVANT GARDE - {0x02}, {0x02}, {0x02}, {0xFF}, {0xFF}, {0xFF} - }, { // COUPLE - {0x29}, {0x11}, {0xFF}, {0xFF}, {0xFF}, {0xFF} - }, { // MUCH OBLIGED - {0x11}, {0x11}, {0x0B}, {0xFF}, {0xFF}, {0xFF} - }, { // YEEHAW! - {0x11}, {0x02}, {0x02}, {0xFF}, {0xFF}, {0xFF} - }, { // MEGA - {0x0B}, {0x02}, {0xFF}, {0xFF}, {0xFF}, {0xFF} - }, { // 1-HIT KO! - {0x29}, {0x11}, {0x29}, {0xFF}, {0xFF}, {0xFF} - }, { // DESTINY - {0x02}, {0x02}, {0xFF}, {0xFF}, {0xFF}, {0xFF} - }, { // CANCEL - {0x0B}, {0x0B}, {0x0B}, {0xFF}, {0xFF}, {0xFF} - }, { // NEW - {0x1A}, {0x0B}, {0xFF}, {0xFF}, {0xFF}, {0xFF} - }, { // FLATTEN - {0x0B}, {0x0B}, {0x0B}, {0x0B}, {0x0B}, {0xFF} - }, { // KIDDING - {0x1A}, {0x0B}, {0xFF}, {0xFF}, {0xFF}, {0xFF} - }, { // LOSER - {0x29}, {0x29}, {0x0B}, {0xFF}, {0xFF}, {0xFF} - }, { // LOSING - {0x1A}, {0xFF}, {0xFF}, {0xFF}, {0xFF}, {0xFF} - }, { // HAPPENING - {0x11}, {0x11}, {0xFF}, {0xFF}, {0xFF}, {0xFF} - }, { // HIP AND - {0x11}, {0x29}, {0xFF}, {0xFF}, {0xFF}, {0xFF} - }, { // SHAKE - {0x02}, {0x02}, {0x0B}, {0x02}, {0xFF}, {0xFF} - }, { // SHADY - {0x1A}, {0x02}, {0x1A}, {0xFF}, {0xFF}, {0xFF} - }, { // UPBEAT - {0x29}, {0x0B}, {0xFF}, {0xFF}, {0xFF}, {0xFF} - }, { // MODERN - {0x1A}, {0x0B}, {0xFF}, {0xFF}, {0xFF}, {0xFF} - }, { // SMELL YA - {0x11}, {0x0B}, {0x02}, {0x0B}, {0xFF}, {0xFF} - }, { // BANG - {0x29}, {0x0B}, {0xFF}, {0xFF}, {0xFF}, {0xFF} - }, { // KNOCKOUT - {0x11}, {0x02}, {0x29}, {0xFF}, {0xFF}, {0xFF} - }, { // HASSLE - {0x02}, {0x29}, {0x02}, {0xFF}, {0xFF}, {0xFF} - }, { // WINNER - {0x0B}, {0x29}, {0x0B}, {0x11}, {0xFF}, {0xFF} - }, { // FEVER - {0x0B}, {0x0B}, {0x11}, {0x0B}, {0xFF}, {0xFF} - }, { // WANNABE - {0x0B}, {0x0B}, {0x1A}, {0xFF}, {0xFF}, {0xFF} - }, { // BABY - {0x02}, {0x11}, {0xFF}, {0xFF}, {0xFF}, {0xFF} - }, { // HEART - {0x1A}, {0x0B}, {0xFF}, {0xFF}, {0xFF}, {0xFF} - }, { // OLD - {0x1A}, {0xFF}, {0xFF}, {0xFF}, {0xFF}, {0xFF} - }, { // YOUNG - {0x29}, {0xFF}, {0xFF}, {0xFF}, {0xFF}, {0xFF} - }, { // UGLY - {0x0B}, {0x0B}, {0xFF}, {0xFF}, {0xFF}, {0xFF} - } -}; - - -static const struct BardSound BardMusic_POKEMON_2[][6] = { - { // EKANS - {0x0B}, {0x02}, {0xFF}, {0xFF}, {0xFF}, {0xFF} - }, { // ARBOK - {0x02}, {0x1A}, {0xFF}, {0xFF}, {0xFF}, {0xFF} - }, { // SEAKING - {0x1A}, {0x11}, {0xFF}, {0xFF}, {0xFF}, {0xFF} - }, { // ARIADOS - {0x02}, {0x11}, {0x02}, {0x1A}, {0xFF}, {0xFF} - }, { // CROCONAW - {0x11}, {0x02}, {0x1A}, {0xFF}, {0xFF}, {0xFF} - }, { // UNOWN - {0x11}, {0x1A}, {0x11}, {0x1A}, {0xFF}, {0xFF} - }, { // EEVEE - {0x0B}, {0x1A}, {0x11}, {0xFF}, {0xFF}, {0xFF} - }, { // GEODUDE - {0x0B}, {0x11}, {0x0B}, {0x11}, {0xFF}, {0xFF} - }, { // SPINARAK - {0x0B}, {0x02}, {0x02}, {0xFF}, {0xFF}, {0xFF} - }, { // PILOSWINE - {0x0B}, {0x11}, {0x0B}, {0xFF}, {0xFF}, {0xFF} - }, { // ONIX - {0x1A}, {0x11}, {0xFF}, {0xFF}, {0xFF}, {0xFF} - }, { // ARCANINE - {0x02}, {0x02}, {0x11}, {0xFF}, {0xFF}, {0xFF} - }, { // SUDOWOODO - {0x1A}, {0x0B}, {0x02}, {0x29}, {0xFF}, {0xFF} - }, { // WEEPINBELL - {0x29}, {0x11}, {0x02}, {0x11}, {0x02}, {0xFF} - }, { // VICTREEBEL - {0x02}, {0x0B}, {0x11}, {0x02}, {0xFF}, {0xFF} - }, { // WOOPER - {0x0B}, {0x11}, {0x1A}, {0xFF}, {0xFF}, {0xFF} - }, { // SWINUB - {0x11}, {0x0B}, {0xFF}, {0xFF}, {0xFF}, {0xFF} - }, { // SKARMORY - {0x02}, {0x02}, {0x0B}, {0x1A}, {0xFF}, {0xFF} - }, { // AIPOM - {0x11}, {0x0B}, {0xFF}, {0xFF}, {0xFF}, {0xFF} - }, { // ESPEON - {0x11}, {0x02}, {0x02}, {0xFF}, {0xFF}, {0xFF} - }, { // HITMONCHAN - {0x1A}, {0x02}, {0xFF}, {0xFF}, {0xFF}, {0xFF} - }, { // ELEKID - {0x0B}, {0x0B}, {0x11}, {0xFF}, {0xFF}, {0xFF} - }, { // ELECTABUZZ - {0x0B}, {0x0B}, {0x0B}, {0xFF}, {0xFF}, {0xFF} - }, { // ENTEI - {0x0B}, {0x0B}, {0x11}, {0xFF}, {0xFF}, {0xFF} - }, { // FERALIGATR - {0x11}, {0x0B}, {0x02}, {0x1A}, {0xFF}, {0xFF} - }, { // FURRET - {0x11}, {0x0B}, {0x11}, {0x1A}, {0xFF}, {0xFF} - }, { // OCTILLERY - {0x1A}, {0x11}, {0x0B}, {0x11}, {0xFF}, {0xFF} - }, { // PRIMEAPE - {0x02}, {0x02}, {0xFF}, {0xFF}, {0xFF}, {0xFF} - }, { // SENTRET - {0x11}, {0x1A}, {0xFF}, {0xFF}, {0xFF}, {0xFF} - }, { // STANTLER - {0x02}, {0x11}, {0x0B}, {0xFF}, {0xFF}, {0xFF} - }, { // SPEAROW - {0x02}, {0x11}, {0x02}, {0xFF}, {0xFF}, {0xFF} - }, { // FEAROW - {0x11}, {0x11}, {0x02}, {0xFF}, {0xFF}, {0xFF} - }, { // OMASTAR - {0x02}, {0x1A}, {0x1A}, {0x1A}, {0xFF}, {0xFF} - }, { // OMANYTE - {0x02}, {0x1A}, {0x11}, {0x02}, {0xFF}, {0xFF} - }, { // GROWLITHE - {0x29}, {0x02}, {0x1A}, {0xFF}, {0xFF}, {0xFF} - }, { // MACHAMP - {0x02}, {0x1A}, {0x0B}, {0x11}, {0xFF}, {0xFF} - }, { // DRAGONITE - {0x02}, {0x1A}, {0x02}, {0xFF}, {0xFF}, {0xFF} - }, { // PINSIR - {0x11}, {0x11}, {0xFF}, {0xFF}, {0xFF}, {0xFF} - }, { // SNORLAX - {0x0B}, {0x02}, {0x1A}, {0xFF}, {0xFF}, {0xFF} - }, { // KABUTO - {0x02}, {0x29}, {0x1A}, {0xFF}, {0xFF}, {0xFF} - }, { // KABUTOPS - {0x02}, {0x29}, {0x1A}, {0xFF}, {0xFF}, {0xFF} - }, { // HITMONTOP - {0x02}, {0x1A}, {0x0B}, {0x02}, {0xFF}, {0xFF} - }, { // WARTORTLE - {0x11}, {0x1A}, {0xFF}, {0xFF}, {0xFF}, {0xFF} - }, { // BLASTOISE - {0x29}, {0x1A}, {0xFF}, {0xFF}, {0xFF}, {0xFF} - }, { // FARFETCHD - {0x1A}, {0x0B}, {0x02}, {0xFF}, {0xFF}, {0xFF} - }, { // CUBONE - {0x02}, {0x1A}, {0x1A}, {0xFF}, {0xFF}, {0xFF} - }, { // MAROWAK - {0x1A}, {0x02}, {0xFF}, {0xFF}, {0xFF}, {0xFF} - }, { // KANGASKHAN - {0x02}, {0x02}, {0x02}, {0xFF}, {0xFF}, {0xFF} - }, { // SUNFLORA - {0x1A}, {0x1A}, {0x02}, {0xFF}, {0xFF}, {0xFF} - }, { // CATERPIE - {0x02}, {0x29}, {0x11}, {0xFF}, {0xFF}, {0xFF} - }, { // GYARADOS - {0x02}, {0x02}, {0x1A}, {0xFF}, {0xFF}, {0xFF} - }, { // RAPIDASH - {0x02}, {0x1A}, {0x02}, {0xFF}, {0xFF}, {0xFF} - }, { // NINETALES - {0x29}, {0x1A}, {0x02}, {0xFF}, {0xFF}, {0xFF} - }, { // GIRAFARIG - {0x11}, {0x02}, {0x02}, {0x11}, {0xFF}, {0xFF} - }, { // BELLOSSOM - {0x29}, {0x0B}, {0x02}, {0xFF}, {0xFF}, {0xFF} - }, { // KINGDRA - {0x0B}, {0x0B}, {0x02}, {0x11}, {0xFF}, {0xFF} - }, { // KINGLER - {0x11}, {0x0B}, {0xFF}, {0xFF}, {0xFF}, {0xFF} - }, { // GLOOM - {0x29}, {0x1A}, {0xFF}, {0xFF}, {0xFF}, {0xFF} - }, { // PINECO - {0x02}, {0x02}, {0xFF}, {0xFF}, {0xFF}, {0xFF} - }, { // GLIGAR - {0x1A}, {0x02}, {0xFF}, {0xFF}, {0xFF}, {0xFF} - }, { // KRABBY - {0x02}, {0x11}, {0xFF}, {0xFF}, {0xFF}, {0xFF} - }, { // GRANBULL - {0x02}, {0x29}, {0xFF}, {0xFF}, {0xFF}, {0xFF} - }, { // CROBAT - {0x11}, {0x02}, {0xFF}, {0xFF}, {0xFF}, {0xFF} - }, { // ABRA - {0x02}, {0x02}, {0xFF}, {0xFF}, {0xFF}, {0xFF} - }, { // GENGAR - {0x0B}, {0x02}, {0xFF}, {0xFF}, {0xFF}, {0xFF} - }, { // TAUROS - {0x02}, {0x29}, {0x1A}, {0xFF}, {0xFF}, {0xFF} - }, { // MAGIKARP - {0x02}, {0x02}, {0x1A}, {0xFF}, {0xFF}, {0xFF} - }, { // MAGNEMITE - {0x02}, {0x0B}, {0x11}, {0x1A}, {0xFF}, {0xFF} - }, { // GASTLY - {0x0B}, {0x29}, {0x02}, {0xFF}, {0xFF}, {0xFF} - }, { // HAUNTER - {0x02}, {0x1A}, {0x1A}, {0xFF}, {0xFF}, {0xFF} - }, { // MACHOKE - {0x02}, {0x1A}, {0xFF}, {0xFF}, {0xFF}, {0xFF} - }, { // KAKUNA - {0x1A}, {0x29}, {0x02}, {0xFF}, {0xFF}, {0xFF} - }, { // PSYDUCK - {0x0B}, {0x1A}, {0xFF}, {0xFF}, {0xFF}, {0xFF} - }, { // PHANPY - {0x02}, {0x11}, {0xFF}, {0xFF}, {0xFF}, {0xFF} - }, { // RATTATA - {0x02}, {0x02}, {0xFF}, {0xFF}, {0xFF}, {0xFF} - }, { // GOLDUCK - {0x0B}, {0x1A}, {0x1A}, {0xFF}, {0xFF}, {0xFF} - }, { // GOLBAT - {0x1A}, {0x02}, {0xFF}, {0xFF}, {0xFF}, {0xFF} - }, { // GOLEM - {0x0B}, {0x1A}, {0x02}, {0xFF}, {0xFF}, {0xFF} - }, { // GRAVELER - {0x0B}, {0x1A}, {0x1A}, {0xFF}, {0xFF}, {0xFF} - }, { // VENONAT - {0x29}, {0x29}, {0xFF}, {0xFF}, {0xFF}, {0xFF} - }, { // RHYDON - {0x11}, {0x0B}, {0x1A}, {0xFF}, {0xFF}, {0xFF} - }, { // RHYHORN - {0x11}, {0x1A}, {0xFF}, {0xFF}, {0xFF}, {0xFF} - }, { // PUPITAR - {0x29}, {0x11}, {0x02}, {0xFF}, {0xFF}, {0xFF} - }, { // CORSOLA - {0x1A}, {0x02}, {0x1A}, {0xFF}, {0xFF}, {0xFF} - }, { // HITMONLEE - {0x11}, {0x11}, {0x11}, {0xFF}, {0xFF}, {0xFF} - }, { // ZAPDOS - {0x02}, {0x1A}, {0xFF}, {0xFF}, {0xFF}, {0xFF} - }, { // JOLTEON - {0x11}, {0x02}, {0xFF}, {0xFF}, {0xFF}, {0xFF} - }, { // SANDSHREW - {0x02}, {0x02}, {0xFF}, {0xFF}, {0xFF}, {0xFF} - }, { // SANDSLASH - {0x02}, {0x02}, {0x0B}, {0xFF}, {0xFF}, {0xFF} - }, { // SEADRA - {0x0B}, {0x0B}, {0x1A}, {0xFF}, {0xFF}, {0xFF} - }, { // SHELLDER - {0x29}, {0x02}, {0xFF}, {0xFF}, {0xFF}, {0xFF} - }, { // VAPOREON - {0x02}, {0x02}, {0x02}, {0xFF}, {0xFF}, {0xFF} - }, { // DEWGONG - {0x29}, {0x1A}, {0xFF}, {0xFF}, {0xFF}, {0xFF} - }, { // SUICUNE - {0x29}, {0x11}, {0x29}, {0x0B}, {0xFF}, {0xFF} - }, { // STARMIE - {0x02}, {0x11}, {0x0B}, {0xFF}, {0xFF}, {0xFF} - }, { // SCYTHER - {0x11}, {0x1A}, {0xFF}, {0xFF}, {0xFF}, {0xFF} - }, { // ZUBAT - {0x29}, {0x02}, {0xFF}, {0xFF}, {0xFF}, {0xFF} - }, { // BEEDRILL - {0x11}, {0x1A}, {0xFF}, {0xFF}, {0xFF}, {0xFF} - }, { // HYPNO - {0x11}, {0x1A}, {0xFF}, {0xFF}, {0xFF}, {0xFF} - }, { // DROWZEE - {0x02}, {0x29}, {0x02}, {0x1A}, {0xFF}, {0xFF} - }, { // SQUIRTLE - {0x11}, {0x11}, {0xFF}, {0xFF}, {0xFF}, {0xFF} - }, { // CELEBI - {0x0B}, {0x0B}, {0x11}, {0xFF}, {0xFF}, {0xFF} - }, { // WOBBUFFET - {0x1A}, {0x11}, {0x0B}, {0x02}, {0x29}, {0xFF} - }, { // DUGTRIO - {0x11}, {0x11}, {0xFF}, {0xFF}, {0xFF}, {0xFF} - }, { // HORSEA - {0x0B}, {0x0B}, {0x0B}, {0xFF}, {0xFF}, {0xFF} - }, { // EXEGGCUTE - {0x1A}, {0x0B}, {0x11}, {0xFF}, {0xFF}, {0xFF} - }, { // CHIKORITA - {0x0B}, {0x11}, {0x11}, {0x0B}, {0xFF}, {0xFF} - }, { // CHINCHOU - {0x02}, {0x11}, {0xFF}, {0xFF}, {0xFF}, {0xFF} - }, { // SHUCKLE - {0x1A}, {0x1A}, {0xFF}, {0xFF}, {0xFF}, {0xFF} - }, { // DIGLETT - {0x11}, {0x02}, {0xFF}, {0xFF}, {0xFF}, {0xFF} - }, { // REMORAID - {0x0B}, {0x1A}, {0x02}, {0x11}, {0xFF}, {0xFF} - }, { // DELIBIRD - {0x1A}, {0x1A}, {0x0B}, {0xFF}, {0xFF}, {0xFF} - }, { // HOUNDOUR - {0x29}, {0x29}, {0x0B}, {0xFF}, {0xFF}, {0xFF} - }, { // AMPHAROS - {0x02}, {0x02}, {0x1A}, {0xFF}, {0xFF}, {0xFF} - }, { // DODUO - {0x1A}, {0x29}, {0xFF}, {0xFF}, {0xFF}, {0xFF} - }, { // DODRIO - {0x1A}, {0x11}, {0xFF}, {0xFF}, {0xFF}, {0xFF} - }, { // SMEARGLE - {0x02}, {0x11}, {0x0B}, {0xFF}, {0xFF}, {0xFF} - }, { // KOFFING - {0x1A}, {0x1A}, {0xFF}, {0xFF}, {0xFF}, {0xFF} - }, { // TENTACRUEL - {0x0B}, {0x1A}, {0x02}, {0xFF}, {0xFF}, {0xFF} - }, { // TOGETIC - {0x1A}, {0x0B}, {0x11}, {0xFF}, {0xFF}, {0xFF} - }, { // TOGEPI - {0x1A}, {0x0B}, {0x11}, {0xFF}, {0xFF}, {0xFF} - }, { // GOLDEEN - {0x1A}, {0x11}, {0x11}, {0xFF}, {0xFF}, {0xFF} - }, { // METAPOD - {0x02}, {0x1A}, {0xFF}, {0xFF}, {0xFF}, {0xFF} - }, { // DONPHAN - {0x1A}, {0x02}, {0xFF}, {0xFF}, {0xFF}, {0xFF} - }, { // ODDISH - {0x11}, {0x02}, {0x02}, {0xFF}, {0xFF}, {0xFF} - }, { // EXEGGUTOR - {0x1A}, {0x1A}, {0x0B}, {0x11}, {0xFF}, {0xFF} - }, { // NIDOKING - {0x11}, {0x1A}, {0x11}, {0xFF}, {0xFF}, {0xFF} - }, { // NIDOQUEEN - {0x11}, {0x1A}, {0x11}, {0xFF}, {0xFF}, {0xFF} - }, { // NIDORAN_F - {0x11}, {0x1A}, {0x02}, {0xFF}, {0xFF}, {0xFF} - }, { // NIDORAN_M - {0x11}, {0x1A}, {0x02}, {0xFF}, {0xFF}, {0xFF} - }, { // NIDORINA - {0x11}, {0x1A}, {0x11}, {0x02}, {0xFF}, {0xFF} - }, { // NIDORINO - {0x11}, {0x1A}, {0x11}, {0x1A}, {0xFF}, {0xFF} - }, { // MEOWTH - {0x02}, {0x29}, {0x11}, {0xFF}, {0xFF}, {0xFF} - }, { // SNEASEL - {0x11}, {0x0B}, {0xFF}, {0xFF}, {0xFF}, {0xFF} - }, { // POLIWHIRL - {0x02}, {0x29}, {0x11}, {0xFF}, {0xFF}, {0xFF} - }, { // POLITOED - {0x02}, {0x1A}, {0xFF}, {0xFF}, {0xFF}, {0xFF} - }, { // POLIWRATH - {0x02}, {0x1A}, {0xFF}, {0xFF}, {0xFF}, {0xFF} - }, { // POLIWAG - {0x02}, {0x0B}, {0xFF}, {0xFF}, {0xFF}, {0xFF} - }, { // QUAGSIRE - {0x1A}, {0x1A}, {0xFF}, {0xFF}, {0xFF}, {0xFF} - }, { // NATU - {0x02}, {0x29}, {0xFF}, {0xFF}, {0xFF}, {0xFF} - }, { // XATU - {0x02}, {0x29}, {0xFF}, {0xFF}, {0xFF}, {0xFF} - }, { // DUNSPARCE - {0x29}, {0x11}, {0x0B}, {0xFF}, {0xFF}, {0xFF} - }, { // SEEL - {0x29}, {0x1A}, {0xFF}, {0xFF}, {0xFF}, {0xFF} - }, { // STEELIX - {0x02}, {0x1A}, {0xFF}, {0xFF}, {0xFF}, {0xFF} - }, { // TYPHLOSION - {0x1A}, {0x29}, {0x1A}, {0xFF}, {0xFF}, {0xFF} - }, { // DRAGONAIR - {0x02}, {0x1A}, {0x11}, {0xFF}, {0xFF}, {0xFF} - }, { // BUTTERFREE - {0x0B}, {0x1A}, {0xFF}, {0xFF}, {0xFF}, {0xFF} - }, { // SCIZOR - {0x0B}, {0x1A}, {0xFF}, {0xFF}, {0xFF}, {0xFF} - }, { // HOPPIP - {0x1A}, {0x1A}, {0xFF}, {0xFF}, {0xFF}, {0xFF} - }, { // BLISSEY - {0x0B}, {0x11}, {0x0B}, {0x11}, {0x02}, {0xFF} - }, { // PARAS - {0x02}, {0x02}, {0xFF}, {0xFF}, {0xFF}, {0xFF} - }, { // PARASECT - {0x02}, {0x02}, {0x0B}, {0xFF}, {0xFF}, {0xFF} - }, { // QWILFISH - {0x02}, {0x1A}, {0x11}, {0xFF}, {0xFF}, {0xFF} - }, { // MR_MIME - {0x02}, {0x11}, {0x1A}, {0xFF}, {0xFF}, {0xFF} - }, { // TYROGUE - {0x02}, {0x02}, {0x29}, {0xFF}, {0xFF}, {0xFF} - }, { // CLOYSTER - {0x02}, {0x29}, {0x1A}, {0xFF}, {0xFF}, {0xFF} - }, { // TYRANITAR - {0x0B}, {0x1A}, {0x02}, {0xFF}, {0xFF}, {0xFF} - }, { // CLEFFA - {0x11}, {0x11}, {0xFF}, {0xFF}, {0xFF}, {0xFF} - }, { // WEEDLE - {0x1A}, {0x11}, {0x29}, {0xFF}, {0xFF}, {0xFF} - }, { // PIKACHU - {0x11}, {0x02}, {0x29}, {0xFF}, {0xFF}, {0xFF} - }, { // CLEFABLE - {0x11}, {0x11}, {0xFF}, {0xFF}, {0xFF}, {0xFF} - }, { // PIDGEOT - {0x02}, {0x29}, {0x1A}, {0xFF}, {0xFF}, {0xFF} - }, { // PIDGEOTTO - {0x02}, {0x29}, {0x1A}, {0x02}, {0xFF}, {0xFF} - }, { // PICHU - {0x11}, {0x29}, {0xFF}, {0xFF}, {0xFF}, {0xFF} - }, { // CLEFAIRY - {0x11}, {0x11}, {0xFF}, {0xFF}, {0xFF}, {0xFF} - }, { // CHARMANDER - {0x29}, {0x02}, {0x02}, {0xFF}, {0xFF}, {0xFF} - }, { // STARYU - {0x0B}, {0x29}, {0xFF}, {0xFF}, {0xFF}, {0xFF} - }, { // CYNDAQUIL - {0x0B}, {0x29}, {0x11}, {0x0B}, {0xFF}, {0xFF} - }, { // SUNKERN - {0x1A}, {0x0B}, {0xFF}, {0xFF}, {0xFF}, {0xFF} - }, { // TEDDIURSA - {0x0B}, {0x11}, {0x29}, {0x02}, {0xFF}, {0xFF} - }, { // VOLTORB - {0x1A}, {0x1A}, {0x02}, {0xFF}, {0xFF}, {0xFF} - }, { // MOLTRES - {0x02}, {0x02}, {0x1A}, {0xFF}, {0xFF}, {0xFF} - }, { // FLAREON - {0x02}, {0x02}, {0x02}, {0xFF}, {0xFF}, {0xFF} - }, { // ALAKAZAM - {0x11}, {0x02}, {0x02}, {0xFF}, {0xFF}, {0xFF} - }, { // MAGMAR - {0x02}, {0x02}, {0xFF}, {0xFF}, {0xFF}, {0xFF} - }, { // FORRETRESS - {0x1A}, {0x0B}, {0x02}, {0xFF}, {0xFF}, {0xFF} - }, { // WIGGLYTUFF - {0x29}, {0x0B}, {0x29}, {0xFF}, {0xFF}, {0xFF} - }, { // IVYSAUR - {0x11}, {0x02}, {0x1A}, {0xFF}, {0xFF}, {0xFF} - }, { // BULBASAUR - {0x11}, {0x02}, {0x02}, {0xFF}, {0xFF}, {0xFF} - }, { // VENUSAUR - {0x11}, {0x02}, {0x1A}, {0xFF}, {0xFF}, {0xFF} - }, { // AERODACTYL - {0x02}, {0x0B}, {0x1A}, {0x02}, {0x11}, {0xFF} - }, { // MAGBY - {0x02}, {0x11}, {0xFF}, {0xFF}, {0xFF}, {0xFF} - }, { // IGGLYBUFF - {0x29}, {0x0B}, {0x29}, {0xFF}, {0xFF}, {0xFF} - }, { // UMBREON - {0x02}, {0x02}, {0x02}, {0xFF}, {0xFF}, {0xFF} - }, { // ARTICUNO - {0x02}, {0x1A}, {0xFF}, {0xFF}, {0xFF}, {0xFF} - }, { // JIGGLYPUFF - {0x29}, {0x0B}, {0x29}, {0xFF}, {0xFF}, {0xFF} - }, { // SNUBBULL - {0x29}, {0x29}, {0xFF}, {0xFF}, {0xFF}, {0xFF} - }, { // BAYLEEF - {0x1A}, {0x02}, {0xFF}, {0xFF}, {0xFF}, {0xFF} - }, { // GRIMER - {0x0B}, {0x11}, {0x02}, {0xFF}, {0xFF}, {0xFF} - }, { // MUK - {0x0B}, {0x11}, {0x1A}, {0xFF}, {0xFF}, {0xFF} - }, { // HERACROSS - {0x02}, {0x02}, {0x1A}, {0xFF}, {0xFF}, {0xFF} - }, { // HOUNDOOM - {0x29}, {0x0B}, {0x1A}, {0xFF}, {0xFF}, {0xFF} - }, { // PERSIAN - {0x1A}, {0x11}, {0x11}, {0x02}, {0xFF}, {0xFF} - }, { // LICKITUNG - {0x29}, {0xFF}, {0xFF}, {0xFF}, {0xFF}, {0xFF} - }, { // HO_OH - {0x1A}, {0x1A}, {0xFF}, {0xFF}, {0xFF}, {0xFF} - }, { // HOOTHOOT - {0x1A}, {0x1A}, {0x1A}, {0x1A}, {0xFF}, {0xFF} - }, { // PIDGEY - {0x02}, {0x29}, {0x11}, {0xFF}, {0xFF}, {0xFF} - }, { // PONYTA - {0x1A}, {0x11}, {0x02}, {0xFF}, {0xFF}, {0xFF} - }, { // SKIPLOOM - {0x29}, {0x0B}, {0x29}, {0xFF}, {0xFF}, {0xFF} - }, { // PORYGON - {0x1A}, {0x11}, {0x1A}, {0xFF}, {0xFF}, {0xFF} - }, { // PORYGON2 - {0x1A}, {0x11}, {0x1A}, {0x0B}, {0x11}, {0xFF} - }, { // MAGCARGO - {0x02}, {0x02}, {0x1A}, {0xFF}, {0xFF}, {0xFF} - }, { // SLUGMA - {0x0B}, {0x02}, {0xFF}, {0xFF}, {0xFF}, {0xFF} - }, { // QUILAVA - {0x11}, {0x0B}, {0x02}, {0x02}, {0xFF}, {0xFF} - }, { // BELLSPROUT - {0x1A}, {0x0B}, {0x02}, {0xFF}, {0xFF}, {0xFF} - }, { // WEEZING - {0x1A}, {0x1A}, {0xFF}, {0xFF}, {0xFF}, {0xFF} - }, { // MARILL - {0x02}, {0x11}, {0xFF}, {0xFF}, {0xFF}, {0xFF} - }, { // AZUMARILL - {0x02}, {0x29}, {0x02}, {0x11}, {0xFF}, {0xFF} - }, { // ELECTRODE - {0x0B}, {0x1A}, {0x02}, {0xFF}, {0xFF}, {0xFF} - }, { // MANKEY - {0x0B}, {0x11}, {0xFF}, {0xFF}, {0xFF}, {0xFF} - }, { // MANTINE - {0x02}, {0x02}, {0xFF}, {0xFF}, {0xFF}, {0xFF} - }, { // DRATINI - {0x02}, {0x11}, {0x11}, {0xFF}, {0xFF}, {0xFF} - }, { // MEW - {0x11}, {0x29}, {0xFF}, {0xFF}, {0xFF}, {0xFF} - }, { // MEWTWO - {0x11}, {0x29}, {0x29}, {0x29}, {0xFF}, {0xFF} - }, { // MILTANK - {0x11}, {0x02}, {0xFF}, {0xFF}, {0xFF}, {0xFF} - }, { // MISDREAVUS - {0x02}, {0x29}, {0x29}, {0x11}, {0xFF}, {0xFF} - }, { // SMOOCHUM - {0x29}, {0x11}, {0x02}, {0xFF}, {0xFF}, {0xFF} - }, { // MEGANIUM - {0x0B}, {0x02}, {0x11}, {0x0B}, {0xFF}, {0xFF} - }, { // DITTO - {0x11}, {0x1A}, {0xFF}, {0xFF}, {0xFF}, {0xFF} - }, { // TENTACOOL - {0x0B}, {0x02}, {0x02}, {0xFF}, {0xFF}, {0xFF} - }, { // MAREEP - {0x1A}, {0x11}, {0x02}, {0xFF}, {0xFF}, {0xFF} - }, { // FLAAFFY - {0x02}, {0x02}, {0x11}, {0xFF}, {0xFF}, {0xFF} - }, { // VENOMOTH - {0x1A}, {0x1A}, {0xFF}, {0xFF}, {0xFF}, {0xFF} - }, { // TANGELA - {0x02}, {0x0B}, {0x02}, {0xFF}, {0xFF}, {0xFF} - }, { // SLOWKING - {0x02}, {0x1A}, {0x11}, {0xFF}, {0xFF}, {0xFF} - }, { // SLOWBRO - {0x02}, {0x29}, {0xFF}, {0xFF}, {0xFF}, {0xFF} - }, { // SLOWPOKE - {0x0B}, {0x1A}, {0xFF}, {0xFF}, {0xFF}, {0xFF} - }, { // MURKROW - {0x02}, {0x29}, {0xFF}, {0xFF}, {0xFF}, {0xFF} - }, { // YANMA - {0x02}, {0x02}, {0xFF}, {0xFF}, {0xFF}, {0xFF} - }, { // KADABRA - {0x02}, {0x02}, {0x02}, {0xFF}, {0xFF}, {0xFF} - }, { // LARVITAR - {0x02}, {0x11}, {0x02}, {0xFF}, {0xFF}, {0xFF} - }, { // NOCTOWL - {0x1A}, {0x29}, {0xFF}, {0xFF}, {0xFF}, {0xFF} - }, { // RAIKOU - {0x02}, {0x11}, {0x29}, {0xFF}, {0xFF}, {0xFF} - }, { // RAICHU - {0x02}, {0x11}, {0x29}, {0xFF}, {0xFF}, {0xFF} - }, { // CHANSEY - {0x02}, {0x0B}, {0x11}, {0x02}, {0xFF}, {0xFF} - }, { // RATICATE - {0x02}, {0x02}, {0xFF}, {0xFF}, {0xFF}, {0xFF} - }, { // LAPRAS - {0x02}, {0x02}, {0xFF}, {0xFF}, {0xFF}, {0xFF} - }, { // VILEPLUME - {0x11}, {0x1A}, {0xFF}, {0xFF}, {0xFF}, {0xFF} - }, { // LANTURN - {0x02}, {0x29}, {0xFF}, {0xFF}, {0xFF}, {0xFF} - }, { // CHARMELEON - {0x29}, {0x0B}, {0x1A}, {0xFF}, {0xFF}, {0xFF} - }, { // CHARIZARD - {0x29}, {0x02}, {0xFF}, {0xFF}, {0xFF}, {0xFF} - }, { // URSARING - {0x29}, {0x02}, {0x11}, {0xFF}, {0xFF}, {0xFF} - }, { // JYNX - {0x1A}, {0x02}, {0x02}, {0xFF}, {0xFF}, {0xFF} - }, { // LUGIA - {0x29}, {0x11}, {0x02}, {0xFF}, {0xFF}, {0xFF} - }, { // MAGNETON - {0x02}, {0x0B}, {0x1A}, {0xFF}, {0xFF}, {0xFF} - }, { // LEDIAN - {0x0B}, {0x11}, {0x02}, {0xFF}, {0xFF}, {0xFF} - }, { // LEDYBA - {0x0B}, {0x11}, {0x02}, {0xFF}, {0xFF}, {0xFF} - }, { // VULPIX - {0x29}, {0x11}, {0xFF}, {0xFF}, {0xFF}, {0xFF} - }, { // JUMPLUFF - {0x02}, {0x29}, {0x02}, {0xFF}, {0xFF}, {0xFF} - }, { // TOTODILE - {0x02}, {0x11}, {0x02}, {0x11}, {0xFF}, {0xFF} - }, { // MACHOP - {0x02}, {0x1A}, {0x1A}, {0xFF}, {0xFF}, {0xFF} - } -}; - -#endif //GUARD_DATA_BARD_MUSIC_H diff --git a/src/data/bard_music_en.h b/src/data/bard_music_en.h deleted file mode 100644 index d346d4ea2..000000000 --- a/src/data/bard_music_en.h +++ /dev/null @@ -1,3678 +0,0 @@ -#ifndef GUARD_DATA_BARD_MUSIC_H -#define GUARD_DATA_BARD_MUSIC_H - -/*static*/ const struct BardSound BardMusic_POKEMON[][6] = { - { // ARMALDO - {0x1B}, {0x1B}, {0x18}, {0x33}, {0xFF}, {0xFF} - }, { // BEAUTIFLY - {0x2D}, {0x09}, {0x12}, {0x33}, {0xFF}, {0xFF} - }, { // MEDITITE - {0x09}, {0x11}, {0x12}, {0x33}, {0xFF}, {0xFF} - }, { // SEAKING - {0x0C}, {0x0C}, {0x33}, {0xFF}, {0xFF}, {0xFF} - }, { // TORCHIC - {0x18}, {0x11}, {0x33}, {0xFF}, {0xFF}, {0xFF} - }, { // ANORITH - {0x00}, {0x18}, {0x11}, {0xFF}, {0xFF}, {0xFF} - }, { // ABSOL - {0x00}, {0x18}, {0x33}, {0xFF}, {0xFF}, {0xFF} - }, { // SURSKIT - {0x30}, {0x11}, {0x33}, {0xFF}, {0xFF}, {0xFF} - }, { // MASQUERAIN - {0x00}, {0x30}, {0x03}, {0x33}, {0xFF}, {0xFF} - }, { // GEODUDE - {0x0C}, {0x18}, {0x27}, {0xFF}, {0xFF}, {0xFF} - }, { // ILLUMISE - {0x0C}, {0x27}, {0x0C}, {0x03}, {0xFF}, {0xFF} - }, { // SKARMORY - {0x1B}, {0x1A}, {0x0C}, {0xFF}, {0xFF}, {0xFF} - }, { // SKITTY - {0x11}, {0x0C}, {0x33}, {0xFF}, {0xFF}, {0xFF} - }, { // DELCATTY - {0x09}, {0x00}, {0x0C}, {0xFF}, {0xFF}, {0xFF} - }, { // SWELLOW - {0x09}, {0x18}, {0x33}, {0xFF}, {0xFF}, {0xFF} - }, { // GLALIE - {0x05}, {0x0C}, {0x33}, {0xFF}, {0xFF}, {0xFF} - }, { // KYOGRE - {0x12}, {0x18}, {0x30}, {0xFF}, {0xFF}, {0xFF} - }, { // MACHAMP - {0x2A}, {0x00}, {0x33}, {0xFF}, {0xFF}, {0xFF} - }, { // PINSIR - {0x11}, {0x30}, {0x33}, {0xFF}, {0xFF}, {0xFF} - }, { // KECLEON - {0x09}, {0x0C}, {0x1B}, {0x33}, {0xFF}, {0xFF} - }, { // SHUPPET - {0x2A}, {0x11}, {0x33}, {0xFF}, {0xFF}, {0xFF} - }, { // SILCOON - {0x11}, {0x28}, {0x33}, {0xFF}, {0xFF}, {0xFF} - }, { // BRELOOM - {0x09}, {0x27}, {0x33}, {0xFF}, {0xFF}, {0xFF} - }, { // SHROOMISH - {0x27}, {0x11}, {0x33}, {0xFF}, {0xFF}, {0xFF} - }, { // CARVANHA - {0x1B}, {0x01}, {0x2A}, {0xFF}, {0xFF}, {0xFF} - }, { // TREECKO - {0x0C}, {0x18}, {0x33}, {0xFF}, {0xFF}, {0xFF} - }, { // WINGULL - {0x0F}, {0x24}, {0x33}, {0xFF}, {0xFF}, {0xFF} - }, { // GYARADOS - {0x1D}, {0x09}, {0x11}, {0x1D}, {0xFF}, {0xFF} - }, { // NINETALES - {0x12}, {0x05}, {0x33}, {0xFF}, {0xFF}, {0xFF} - }, { // GIRAFARIG - {0x30}, {0x00}, {0x2A}, {0x11}, {0xFF}, {0xFF} - }, { // KIRLIA - {0x30}, {0x0C}, {0x2A}, {0xFF}, {0xFF}, {0xFF} - }, { // BELLOSSOM - {0x09}, {0x1B}, {0x2C}, {0x33}, {0xFF}, {0xFF} - }, { // KINGDRA - {0x0C}, {0x2A}, {0x33}, {0xFF}, {0xFF}, {0xFF} - }, { // GLOOM - {0x27}, {0x33}, {0x33}, {0xFF}, {0xFF}, {0xFF} - }, { // MAWILE - {0x1B}, {0x12}, {0x33}, {0xFF}, {0xFF}, {0xFF} - }, { // GROUDON - {0x21}, {0x1B}, {0x33}, {0xFF}, {0xFF}, {0xFF} - }, { // MIGHTYENA - {0x12}, {0x0C}, {0x09}, {0x2C}, {0xFF}, {0xFF} - }, { // CROBAT - {0x18}, {0x00}, {0x33}, {0xFF}, {0xFF}, {0xFF} - }, { // ABRA - {0x00}, {0x2A}, {0x33}, {0xFF}, {0xFF}, {0xFF} - }, { // SLAKING - {0x00}, {0x0C}, {0x33}, {0xFF}, {0xFF}, {0xFF} - }, { // WURMPLE - {0x30}, {0x24}, {0x33}, {0xFF}, {0xFF}, {0xFF} - }, { // MAGIKARP - {0x00}, {0x11}, {0x1B}, {0xFF}, {0xFF}, {0xFF} - }, { // MAGNEMITE - {0x00}, {0x09}, {0x12}, {0xFF}, {0xFF}, {0xFF} - }, { // TORKOAL - {0x18}, {0x1A}, {0x33}, {0xFF}, {0xFF}, {0xFF} - }, { // MACHOKE - {0x2A}, {0x1A}, {0x33}, {0xFF}, {0xFF}, {0xFF} - }, { // GULPIN - {0x24}, {0x0F}, {0x33}, {0xFF}, {0xFF}, {0xFF} - }, { // ARON - {0x1B}, {0x1D}, {0x33}, {0xFF}, {0xFF}, {0xFF} - }, { // PSYDUCK - {0x12}, {0x2A}, {0x33}, {0xFF}, {0xFF}, {0xFF} - }, { // LAIRON - {0x05}, {0x1B}, {0x33}, {0xFF}, {0xFF}, {0xFF} - }, { // WHISMUR - {0x11}, {0x30}, {0x33}, {0xFF}, {0xFF}, {0xFF} - }, { // NUZLEAF - {0x2C}, {0x0E}, {0x33}, {0xFF}, {0xFF}, {0xFF} - }, { // PHANPY - {0x00}, {0x0C}, {0x33}, {0xFF}, {0xFF}, {0xFF} - }, { // SHELGON - {0x09}, {0x1B}, {0x33}, {0xFF}, {0xFF}, {0xFF} - }, { // GOLDUCK - {0x18}, {0x2A}, {0x33}, {0xFF}, {0xFF}, {0xFF} - }, { // GOLBAT - {0x1A}, {0x00}, {0x33}, {0xFF}, {0xFF}, {0xFF} - }, { // GOLEM - {0x18}, {0x09}, {0x33}, {0xFF}, {0xFF}, {0xFF} - }, { // GRAVELER - {0x00}, {0x09}, {0x30}, {0xFF}, {0xFF}, {0xFF} - }, { // GARDEVOIR - {0x1B}, {0x09}, {0x1B}, {0x33}, {0xFF}, {0xFF} - }, { // RHYDON - {0x12}, {0x15}, {0x33}, {0xFF}, {0xFF}, {0xFF} - }, { // RHYHORN - {0x14}, {0x1A}, {0x33}, {0xFF}, {0xFF}, {0xFF} - }, { // GOREBYSS - {0x1A}, {0x2C}, {0x11}, {0x33}, {0xFF}, {0xFF} - }, { // CORSOLA - {0x18}, {0x18}, {0x2A}, {0xFF}, {0xFF}, {0xFF} - }, { // CACNEA - {0x00}, {0x0C}, {0x2A}, {0xFF}, {0xFF}, {0xFF} - }, { // DUSCLOPS - {0x2A}, {0x1B}, {0x33}, {0xFF}, {0xFF}, {0xFF} - }, { // SHARPEDO - {0x1D}, {0x0C}, {0x18}, {0xFF}, {0xFF}, {0xFF} - }, { // ZANGOOSE - {0x03}, {0x27}, {0x33}, {0xFF}, {0xFF}, {0xFF} - }, { // SANDSHREW - {0x00}, {0x27}, {0x33}, {0xFF}, {0xFF}, {0xFF} - }, { // SANDSLASH - {0x00}, {0x00}, {0x33}, {0xFF}, {0xFF}, {0xFF} - }, { // SEADRA - {0x0C}, {0x2A}, {0x33}, {0xFF}, {0xFF}, {0xFF} - }, { // RELICANTH - {0x09}, {0x11}, {0x00}, {0x33}, {0xFF}, {0xFF} - }, { // ZIGZAGOON - {0x11}, {0x00}, {0x27}, {0xFF}, {0xFF}, {0xFF} - }, { // CRAWDAUNT - {0x1B}, {0x1B}, {0x33}, {0xFF}, {0xFF}, {0xFF} - }, { // SCEPTILE - {0x09}, {0x12}, {0x33}, {0xFF}, {0xFF}, {0xFF} - }, { // GROVYLE - {0x18}, {0x12}, {0x33}, {0xFF}, {0xFF}, {0xFF} - }, { // BANETTE - {0x03}, {0x09}, {0x33}, {0xFF}, {0xFF}, {0xFF} - }, { // JIRACHI - {0x30}, {0x1B}, {0x0C}, {0x33}, {0xFF}, {0xFF} - }, { // STARMIE - {0x1B}, {0x0C}, {0x33}, {0xFF}, {0xFF}, {0xFF} - }, { // ZUBAT - {0x27}, {0x00}, {0x33}, {0xFF}, {0xFF}, {0xFF} - }, { // TAILLOW - {0x03}, {0x1A}, {0x33}, {0xFF}, {0xFF}, {0xFF} - }, { // WYNAUT - {0x12}, {0x1B}, {0x33}, {0xFF}, {0xFF}, {0xFF} - }, { // WOBBUFFET - {0x1D}, {0x2C}, {0x09}, {0xFF}, {0xFF}, {0xFF} - }, { // SOLROCK - {0x18}, {0x1B}, {0x33}, {0xFF}, {0xFF}, {0xFF} - }, { // SHIFTRY - {0x11}, {0x0C}, {0x33}, {0xFF}, {0xFF}, {0xFF} - }, { // HORSEA - {0x1A}, {0x0C}, {0x33}, {0xFF}, {0xFF}, {0xFF} - }, { // BAGON - {0x05}, {0x1B}, {0x33}, {0xFF}, {0xFF}, {0xFF} - }, { // SEEDOT - {0x0C}, {0x1B}, {0x33}, {0xFF}, {0xFF}, {0xFF} - }, { // SPHEAL - {0x0E}, {0x33}, {0x33}, {0xFF}, {0xFF}, {0xFF} - }, { // BELDUM - {0x09}, {0x2A}, {0x33}, {0xFF}, {0xFF}, {0xFF} - }, { // MEDICHAM - {0x09}, {0x11}, {0x00}, {0xFF}, {0xFF}, {0xFF} - }, { // CHINCHOU - {0x0F}, {0x21}, {0x33}, {0xFF}, {0xFF}, {0xFF} - }, { // CHIMECHO - {0x12}, {0x09}, {0x18}, {0x33}, {0xFF}, {0xFF} - }, { // ALTARIA - {0x06}, {0x1B}, {0x0C}, {0x2A}, {0xFF}, {0xFF} - }, { // SWABLU - {0x1B}, {0x27}, {0x33}, {0xFF}, {0xFF}, {0xFF} - }, { // NINCADA - {0x0F}, {0x06}, {0x06}, {0xFF}, {0xFF}, {0xFF} - }, { // DEOXYS - {0x0C}, {0x1B}, {0x11}, {0x33}, {0xFF}, {0xFF} - }, { // NINJASK - {0x0F}, {0x00}, {0x33}, {0xFF}, {0xFF}, {0xFF} - }, { // DODUO - {0x1A}, {0x27}, {0x18}, {0xFF}, {0xFF}, {0xFF} - }, { // DODRIO - {0x1A}, {0x0C}, {0x18}, {0xFF}, {0xFF}, {0xFF} - }, { // KOFFING - {0x15}, {0x0C}, {0x33}, {0xFF}, {0xFF}, {0xFF} - }, { // TENTACRUEL - {0x09}, {0x2A}, {0x27}, {0x33}, {0xFF}, {0xFF} - }, { // DUSTOX - {0x2C}, {0x17}, {0x33}, {0xFF}, {0xFF}, {0xFF} - }, { // LOUDRED - {0x21}, {0x09}, {0x33}, {0xFF}, {0xFF}, {0xFF} - }, { // GOLDEEN - {0x1A}, {0x0C}, {0x33}, {0xFF}, {0xFF}, {0xFF} - }, { // BARBOACH - {0x1B}, {0x18}, {0x33}, {0xFF}, {0xFF}, {0xFF} - }, { // SEALEO - {0x0C}, {0x0C}, {0x18}, {0xFF}, {0xFF}, {0xFF} - }, { // WALREIN - {0x1B}, {0x03}, {0x33}, {0xFF}, {0xFF}, {0xFF} - }, { // TROPIUS - {0x18}, {0x0C}, {0x2A}, {0x33}, {0xFF}, {0xFF} - }, { // DONPHAN - {0x1B}, {0x00}, {0x33}, {0xFF}, {0xFF}, {0xFF} - }, { // NUMEL - {0x2C}, {0x0B}, {0x33}, {0xFF}, {0xFF}, {0xFF} - }, { // ODDISH - {0x15}, {0x11}, {0x33}, {0xFF}, {0xFF}, {0xFF} - }, { // TRAPINCH - {0x00}, {0x0F}, {0x33}, {0xFF}, {0xFF}, {0xFF} - }, { // SLAKOTH - {0x00}, {0x1B}, {0x33}, {0xFF}, {0xFF}, {0xFF} - }, { // WHISCASH - {0x11}, {0x00}, {0x33}, {0xFF}, {0xFF}, {0xFF} - }, { // SHEDINJA - {0x09}, {0x0F}, {0x2A}, {0xFF}, {0xFF}, {0xFF} - }, { // MARSHTOMP - {0x1B}, {0x1D}, {0x33}, {0xFF}, {0xFF}, {0xFF} - }, { // NATU - {0x00}, {0x27}, {0x33}, {0xFF}, {0xFF}, {0xFF} - }, { // XATU - {0x00}, {0x27}, {0x33}, {0xFF}, {0xFF}, {0xFF} - }, { // CLAYDOL - {0x03}, {0x1B}, {0x33}, {0xFF}, {0xFF}, {0xFF} - }, { // CACTURNE - {0x00}, {0x30}, {0x33}, {0xFF}, {0xFF}, {0xFF} - }, { // NOSEPASS - {0x18}, {0x00}, {0x33}, {0xFF}, {0xFF}, {0xFF} - }, { // CLAMPERL - {0x00}, {0x32}, {0x33}, {0xFF}, {0xFF}, {0xFF} - }, { // CAMERUPT - {0x00}, {0x30}, {0x2A}, {0x33}, {0xFF}, {0xFF} - }, { // EXPLOUD - {0x09}, {0x21}, {0x33}, {0xFF}, {0xFF}, {0xFF} - }, { // BLAZIKEN - {0x03}, {0x11}, {0x0F}, {0x33}, {0xFF}, {0xFF} - }, { // LOMBRE - {0x18}, {0x03}, {0x33}, {0xFF}, {0xFF}, {0xFF} - }, { // LOTAD - {0x18}, {0x00}, {0x33}, {0xFF}, {0xFF}, {0xFF} - }, { // SPINDA - {0x0F}, {0x2A}, {0x33}, {0xFF}, {0xFF}, {0xFF} - }, { // SPOINK - {0x1E}, {0x33}, {0x33}, {0xFF}, {0xFF}, {0xFF} - }, { // SEVIPER - {0x09}, {0x12}, {0x30}, {0xFF}, {0xFF}, {0xFF} - }, { // HARIYAMA - {0x1B}, {0x0C}, {0x1B}, {0x2A}, {0xFF}, {0xFF} - }, { // VOLBEAT - {0x18}, {0x0C}, {0x33}, {0xFF}, {0xFF}, {0xFF} - }, { // HUNTAIL - {0x2A}, {0x05}, {0x33}, {0xFF}, {0xFF}, {0xFF} - }, { // PIKACHU - {0x0C}, {0x2A}, {0x27}, {0xFF}, {0xFF}, {0xFF} - }, { // PICHU - {0x0C}, {0x27}, {0x33}, {0xFF}, {0xFF}, {0xFF} - }, { // STARYU - {0x1B}, {0x27}, {0x33}, {0xFF}, {0xFF}, {0xFF} - }, { // VIBRAVA - {0x11}, {0x1B}, {0x2A}, {0xFF}, {0xFF}, {0xFF} - }, { // VOLTORB - {0x1A}, {0x18}, {0x33}, {0xFF}, {0xFF}, {0xFF} - }, { // FEEBAS - {0x0E}, {0x00}, {0x33}, {0x33}, {0xFF}, {0xFF} - }, { // ALAKAZAM - {0x00}, {0x2C}, {0x2C}, {0x00}, {0xFF}, {0xFF} - }, { // GRUMPIG - {0x2C}, {0x11}, {0x33}, {0xFF}, {0xFF}, {0xFF} - }, { // WIGGLYTUFF - {0x11}, {0x27}, {0x0C}, {0x2A}, {0x33}, {0xFF} - }, { // IGGLYBUFF - {0x11}, {0x2A}, {0x0C}, {0x2A}, {0xFF}, {0xFF} - }, { // FLYGON - {0x12}, {0x1B}, {0x33}, {0xFF}, {0xFF}, {0xFF} - }, { // PLUSLE - {0x2A}, {0x24}, {0x33}, {0xFF}, {0xFF}, {0xFF} - }, { // JIGGLYPUFF - {0x11}, {0x27}, {0x0C}, {0x2A}, {0x33}, {0xFF} - }, { // CORPHISH - {0x18}, {0x11}, {0x33}, {0xFF}, {0xFF}, {0xFF} - }, { // GRIMER - {0x12}, {0x30}, {0x33}, {0xFF}, {0xFF}, {0xFF} - }, { // MUK - {0x2A}, {0x33}, {0x33}, {0xFF}, {0xFF}, {0xFF} - }, { // HERACROSS - {0x09}, {0x2A}, {0x1B}, {0x33}, {0xFF}, {0xFF} - }, { // PELIPPER - {0x09}, {0x0C}, {0x30}, {0xFF}, {0xFF}, {0xFF} - }, { // WAILORD - {0x03}, {0x1A}, {0x33}, {0x33}, {0xFF}, {0xFF} - }, { // WAILMER - {0x05}, {0x30}, {0x33}, {0xFF}, {0xFF}, {0xFF} - }, { // SALAMENCE - {0x00}, {0x00}, {0x09}, {0x33}, {0xFF}, {0xFF} - }, { // AGGRON - {0x00}, {0x1B}, {0x33}, {0xFF}, {0xFF}, {0xFF} - }, { // POOCHYENA - {0x27}, {0x0C}, {0x09}, {0x2C}, {0xFF}, {0xFF} - }, { // CASTFORM - {0x00}, {0x1A}, {0x33}, {0xFF}, {0xFF}, {0xFF} - }, { // MINUN - {0x12}, {0x2A}, {0x33}, {0xFF}, {0xFF}, {0xFF} - }, { // MAGCARGO - {0x00}, {0x1B}, {0x18}, {0xFF}, {0xFF}, {0xFF} - }, { // MAKUHITA - {0x1B}, {0x27}, {0x0C}, {0x2A}, {0xFF}, {0xFF} - }, { // SLUGMA - {0x2C}, {0x2C}, {0x33}, {0xFF}, {0xFF}, {0xFF} - }, { // WEEZING - {0x0C}, {0x0C}, {0x33}, {0xFF}, {0xFF}, {0xFF} - }, { // LINOONE - {0x14}, {0x27}, {0x33}, {0xFF}, {0xFF}, {0xFF} - }, { // CASCOON - {0x00}, {0x27}, {0x33}, {0xFF}, {0xFF}, {0xFF} - }, { // MARILL - {0x08}, {0x10}, {0x33}, {0xFF}, {0xFF}, {0xFF} - }, { // AZUMARILL - {0x08}, {0x27}, {0x2C}, {0x10}, {0xFF}, {0xFF} - }, { // SWALOT - {0x1B}, {0x1B}, {0x33}, {0xFF}, {0xFF}, {0xFF} - }, { // ELECTRODE - {0x0C}, {0x09}, {0x18}, {0xFF}, {0xFF}, {0xFF} - }, { // MUDKIP - {0x2C}, {0x11}, {0x33}, {0xFF}, {0xFF}, {0xFF} - }, { // MILOTIC - {0x12}, {0x18}, {0x11}, {0x33}, {0xFF}, {0xFF} - }, { // METAGROSS - {0x09}, {0x2A}, {0x18}, {0x33}, {0xFF}, {0xFF} - }, { // METANG - {0x09}, {0x00}, {0x33}, {0xFF}, {0xFF}, {0xFF} - }, { // TENTACOOL - {0x09}, {0x2A}, {0x27}, {0x33}, {0xFF}, {0xFF} - }, { // BALTOY - {0x01}, {0x1E}, {0x33}, {0xFF}, {0xFF}, {0xFF} - }, { // SABLEYE - {0x03}, {0x0B}, {0x12}, {0xFF}, {0xFF}, {0xFF} - }, { // VIGOROTH - {0x11}, {0x30}, {0x1B}, {0xFF}, {0xFF}, {0xFF} - }, { // SNORUNT - {0x18}, {0x2C}, {0x33}, {0xFF}, {0xFF}, {0xFF} - }, { // CRADILY - {0x03}, {0x11}, {0x0C}, {0xFF}, {0xFF}, {0xFF} - }, { // KADABRA - {0x2C}, {0x00}, {0x2C}, {0xFF}, {0xFF}, {0xFF} - }, { // DUSKULL - {0x2A}, {0x26}, {0x33}, {0xFF}, {0xFF}, {0xFF} - }, { // RAICHU - {0x12}, {0x27}, {0x33}, {0xFF}, {0xFF}, {0xFF} - }, { // MANECTRIC - {0x00}, {0x09}, {0x11}, {0x33}, {0xFF}, {0xFF} - }, { // SWAMPERT - {0x1B}, {0x30}, {0x33}, {0xFF}, {0xFF}, {0xFF} - }, { // ELECTRIKE - {0x0C}, {0x09}, {0x12}, {0x33}, {0xFF}, {0xFF} - }, { // LATIAS - {0x00}, {0x0C}, {0x00}, {0x33}, {0xFF}, {0xFF} - }, { // LATIOS - {0x00}, {0x0C}, {0x18}, {0x33}, {0xFF}, {0xFF} - }, { // LUVDISC - {0x2C}, {0x11}, {0x33}, {0xFF}, {0xFF}, {0xFF} - }, { // VILEPLUME - {0x14}, {0x27}, {0x33}, {0xFF}, {0xFF}, {0xFF} - }, { // RALTS - {0x07}, {0x33}, {0x33}, {0xFF}, {0xFF}, {0xFF} - }, { // LANTURN - {0x00}, {0x30}, {0x33}, {0xFF}, {0xFF}, {0xFF} - }, { // LILEEP - {0x11}, {0x0C}, {0x33}, {0xFF}, {0xFF}, {0xFF} - }, { // LUNATONE - {0x27}, {0x2C}, {0x18}, {0x33}, {0xFF}, {0xFF} - }, { // AZURILL - {0x06}, {0x27}, {0x0F}, {0x33}, {0xFF}, {0xFF} - }, { // LUDICOLO - {0x27}, {0x09}, {0x1A}, {0x1A}, {0xFF}, {0xFF} - }, { // MAGNETON - {0x00}, {0x09}, {0x2A}, {0xFF}, {0xFF}, {0xFF} - }, { // REGICE - {0x09}, {0x0C}, {0x12}, {0x33}, {0xFF}, {0xFF} - }, { // REGISTEEL - {0x09}, {0x0C}, {0x0E}, {0x33}, {0xFF}, {0xFF} - }, { // REGIROCK - {0x09}, {0x0C}, {0x1B}, {0xFF}, {0xFF}, {0xFF} - }, { // RAYQUAZA - {0x03}, {0x03}, {0x2A}, {0x33}, {0xFF}, {0xFF} - }, { // VULPIX - {0x24}, {0x11}, {0x33}, {0xFF}, {0xFF}, {0xFF} - }, { // ROSELIA - {0x18}, {0x09}, {0x0C}, {0x2A}, {0xFF}, {0xFF} - }, { // COMBUSKEN - {0x2C}, {0x2C}, {0x0F}, {0x33}, {0xFF}, {0xFF} - }, { // MACHOP - {0x2A}, {0x15}, {0x33}, {0xFF}, {0xFF}, {0xFF} - } -}; - -/*static*/ const struct BardSound BardMusic_TRAINER[][6] = { - { // I CHOOSE YOU - {0x12}, {0x27}, {0x2D}, {0xFF}, {0xFF}, {0xFF} - }, { // GOTCHA - {0x15}, {0x2A}, {0x33}, {0xFF}, {0xFF}, {0xFF} - }, { // TRADE - {0x03}, {0x33}, {0x33}, {0xFF}, {0xFF}, {0xFF} - }, { // SAPPHIRE - {0x00}, {0x12}, {0x32}, {0xFF}, {0xFF}, {0xFF} - }, { // EVOLVE - {0x0C}, {0x1B}, {0x33}, {0xFF}, {0xFF}, {0xFF} - }, { // ENCYCLOPEDIA - {0x09}, {0x12}, {0x18}, {0x0C}, {0x0C}, {0x06} - }, { // NATURE - {0x03}, {0x30}, {0xFF}, {0xFF}, {0xFF}, {0xFF} - }, { // CENTER - {0x09}, {0x30}, {0x33}, {0xFF}, {0xFF}, {0xFF} - }, { // EGG - {0x09}, {0x33}, {0x33}, {0xFF}, {0xFF}, {0xFF} - }, { // LINK - {0x0C}, {0x33}, {0x33}, {0xFF}, {0xFF}, {0xFF} - }, { // SP. ABILITY - {0x09}, {0x08}, {0x06}, {0x11}, {0x11}, {0x0C} - }, { // TRAINER - {0x03}, {0x30}, {0x33}, {0xFF}, {0xFF}, {0xFF} - }, { // VERSION - {0x32}, {0x0F}, {0x33}, {0xFF}, {0xFF}, {0xFF} - }, { // POKéNAV - {0x18}, {0x0C}, {0x00}, {0xFF}, {0xFF}, {0xFF} - }, { // POKéMON - {0x18}, {0x0C}, {0x1B}, {0xFF}, {0xFF}, {0xFF} - }, { // GET - {0x09}, {0x33}, {0x33}, {0xFF}, {0xFF}, {0xFF} - }, { // POKéDEX - {0x18}, {0x0C}, {0x09}, {0xFF}, {0xFF}, {0xFF} - }, { // RUBY - {0x27}, {0x0C}, {0x33}, {0xFF}, {0xFF}, {0xFF} - }, { // LEVEL - {0x09}, {0x09}, {0x33}, {0xFF}, {0xFF}, {0xFF} - } -}; - -/*static*/ const struct BardSound BardMusic_STATUS[][6] = { - { // DARK - {0x08}, {0x33}, {0x33}, {0xFF}, {0xFF}, {0xFF} - }, { // STENCH - {0x09}, {0x33}, {0x33}, {0xFF}, {0xFF}, {0xFF} - }, { // THICK FAT - {0x11}, {0x00}, {0x33}, {0xFF}, {0xFF}, {0xFF} - }, { // RAIN DISH - {0x03}, {0x11}, {0x33}, {0xFF}, {0xFF}, {0xFF} - }, { // DRIZZLE - {0x11}, {0x09}, {0x33}, {0xFF}, {0xFF}, {0xFF} - }, { // ARENA TRAP - {0x06}, {0x0C}, {0x06}, {0x00}, {0xFF}, {0xFF} - }, { // INTIMIDATE - {0x0F}, {0x11}, {0x2C}, {0x03}, {0xFF}, {0xFF} - }, { // ROCK HEAD - {0x15}, {0x09}, {0x33}, {0xFF}, {0xFF}, {0xFF} - }, { // COLOR - {0x2C}, {0x30}, {0x33}, {0xFF}, {0xFF}, {0xFF} - }, { // ALT. COLOR - {0x1B}, {0x32}, {0x01}, {0x2C}, {0x30}, {0xFF} - }, { // ROCK - {0x15}, {0x33}, {0x33}, {0xFF}, {0xFF}, {0xFF} - }, { // BEAUTIFUL - {0x27}, {0x0C}, {0x24}, {0xFF}, {0xFF}, {0xFF} - }, { // BEAUTY - {0x27}, {0x0C}, {0x33}, {0xFF}, {0xFF}, {0xFF} - }, { // AIR LOCK - {0x09}, {0x15}, {0x33}, {0xFF}, {0xFF}, {0xFF} - }, { // PSYCHIC - {0x12}, {0x11}, {0x33}, {0xFF}, {0xFF}, {0xFF} - }, { // HYPER CUTTER - {0x12}, {0x30}, {0x2C}, {0x30}, {0xFF}, {0xFF} - }, { // FIGHTING - {0x12}, {0x0C}, {0x33}, {0xFF}, {0xFF}, {0xFF} - }, { // SHADOW TAG - {0x00}, {0x18}, {0x00}, {0xFF}, {0xFF}, {0xFF} - }, { // SMART - {0x06}, {0x32}, {0x33}, {0xFF}, {0xFF}, {0xFF} - }, { // SMARTNESS - {0x06}, {0x32}, {0x09}, {0xFF}, {0xFF}, {0xFF} - }, { // SPEED BOOST - {0x0C}, {0x27}, {0x33}, {0xFF}, {0xFF}, {0xFF} - }, { // COOL - {0x29}, {0x33}, {0x33}, {0xFF}, {0xFF}, {0xFF} - }, { // COOLNESS - {0x29}, {0x09}, {0x33}, {0xFF}, {0xFF}, {0xFF} - }, { // BATTLE ARMOR - {0x00}, {0x09}, {0x06}, {0x30}, {0xFF}, {0xFF} - }, { // CUTE - {0x2D}, {0x33}, {0x33}, {0xFF}, {0xFF}, {0xFF} - }, { // CUTENESS - {0x2D}, {0x09}, {0x33}, {0xFF}, {0xFF}, {0xFF} - }, { // STURDY - {0x30}, {0x0C}, {0x33}, {0xFF}, {0xFF}, {0xFF} - }, { // SUCTION CUPS - {0x2A}, {0x0F}, {0x2A}, {0x33}, {0x33}, {0xFF} - }, { // GRASS - {0x00}, {0x33}, {0x33}, {0xFF}, {0xFF}, {0xFF} - }, { // CLEAR BODY - {0x0E}, {0x17}, {0x0C}, {0xFF}, {0xFF}, {0xFF} - }, { // TORRENT - {0x1A}, {0x09}, {0x33}, {0xFF}, {0xFF}, {0xFF} - }, { // GHOST - {0x15}, {0x30}, {0x33}, {0xFF}, {0xFF}, {0xFF} - }, { // ICE - {0x12}, {0x33}, {0x33}, {0xFF}, {0xFF}, {0xFF} - }, { // GUTS - {0x2C}, {0x33}, {0x33}, {0xFF}, {0xFF}, {0xFF} - }, { // ROUGH SKIN - {0x2C}, {0x0F}, {0x33}, {0xFF}, {0xFF}, {0xFF} - }, { // SHELL ARMOR - {0x09}, {0x06}, {0x30}, {0x33}, {0xFF}, {0xFF} - }, { // NATURAL CURE - {0x00}, {0x32}, {0x08}, {0x30}, {0x33}, {0xFF} - }, { // DAMP - {0x00}, {0x33}, {0x33}, {0xFF}, {0xFF}, {0xFF} - }, { // GROUND - {0x21}, {0x33}, {0x33}, {0xFF}, {0xFF}, {0xFF} - }, { // LIMBER - {0x0F}, {0x30}, {0x33}, {0xFF}, {0xFF}, {0xFF} - }, { // MAGNET PULL - {0x00}, {0x09}, {0x2C}, {0x33}, {0xFF}, {0xFF} - }, { // WHITE SMOKE - {0x12}, {0x18}, {0x33}, {0xFF}, {0xFF}, {0xFF} - }, { // SYNCHRONIZE - {0x0F}, {0x18}, {0x12}, {0x33}, {0xFF}, {0xFF} - }, { // OVERGROW - {0x18}, {0x30}, {0x18}, {0xFF}, {0xFF}, {0xFF} - }, { // SWIFT SWIM - {0x11}, {0x0F}, {0x33}, {0xFF}, {0xFF}, {0xFF} - }, { // SAND STREAM - {0x02}, {0x0E}, {0x33}, {0xFF}, {0xFF}, {0xFF} - }, { // SAND VEIL - {0x02}, {0x03}, {0x33}, {0xFF}, {0xFF}, {0xFF} - }, { // KEEN EYE - {0x0C}, {0x12}, {0x33}, {0xFF}, {0xFF}, {0xFF} - }, { // INNERFOCUS - {0x0F}, {0x30}, {0x18}, {0x2A}, {0xFF}, {0xFF} - }, { // STATIC - {0x00}, {0x11}, {0x33}, {0xFF}, {0xFF}, {0xFF} - }, { // TYPE - {0x12}, {0x33}, {0x33}, {0xFF}, {0xFF}, {0xFF} - }, { // TOUGH - {0x2C}, {0x33}, {0x33}, {0xFF}, {0xFF}, {0xFF} - }, { // TOUGHNESS - {0x2C}, {0x0B}, {0x33}, {0xFF}, {0xFF}, {0xFF} - }, { // SHED SKIN - {0x09}, {0x0F}, {0x33}, {0xFF}, {0xFF}, {0xFF} - }, { // HUGE POWER - {0x2D}, {0x21}, {0x30}, {0xFF}, {0xFF}, {0xFF} - }, { // VOLT ABSORB - {0x24}, {0x2C}, {0x1A}, {0xFF}, {0xFF}, {0xFF} - }, { // WATER ABSORB - {0x06}, {0x30}, {0x2C}, {0x1A}, {0xFF}, {0xFF} - }, { // ELECTRIC - {0x0B}, {0x09}, {0x11}, {0xFF}, {0xFF}, {0xFF} - }, { // FORECAST - {0x1A}, {0x02}, {0x33}, {0xFF}, {0xFF}, {0xFF} - }, { // SERENE GRACE - {0x30}, {0x0E}, {0x03}, {0x33}, {0xFF}, {0xFF} - }, { // POISON - {0x20}, {0x1B}, {0x33}, {0xFF}, {0xFF}, {0xFF} - }, { // POISON POINT - {0x20}, {0x1B}, {0x1E}, {0xFF}, {0xFF}, {0xFF} - }, { // DRAGON - {0x01}, {0x1B}, {0x33}, {0xFF}, {0xFF}, {0xFF} - }, { // TRACE - {0x04}, {0x33}, {0x33}, {0xFF}, {0xFF}, {0xFF} - }, { // OBLIVIOUS - {0x2C}, {0x11}, {0x0C}, {0x2C}, {0x33}, {0xFF} - }, { // TRUANT - {0x27}, {0x00}, {0x33}, {0xFF}, {0xFF}, {0xFF} - }, { // RUN AWAY - {0x2A}, {0x08}, {0x05}, {0xFF}, {0xFF}, {0xFF} - }, { // STICKY HOLD - {0x11}, {0x0C}, {0x18}, {0xFF}, {0xFF}, {0xFF} - }, { // CLOUD NINE - {0x21}, {0x12}, {0x33}, {0xFF}, {0xFF}, {0xFF} - }, { // NORMAL - {0x1A}, {0x2C}, {0x33}, {0xFF}, {0xFF}, {0xFF} - }, { // STEEL - {0x0E}, {0x33}, {0x33}, {0xFF}, {0xFF}, {0xFF} - }, { // ILLUMINATE - {0x11}, {0x27}, {0x0F}, {0x03}, {0xFF}, {0xFF} - }, { // EARLY BIRD - {0x30}, {0x0C}, {0x30}, {0xFF}, {0xFF}, {0xFF} - }, { // HUSTLE - {0x2A}, {0x26}, {0xFF}, {0xFF}, {0xFF}, {0xFF} - }, { // SHINE - {0x12}, {0x33}, {0x33}, {0xFF}, {0xFF}, {0xFF} - }, { // FLYING - {0x12}, {0x0E}, {0x33}, {0xFF}, {0xFF}, {0xFF} - }, { // DROUGHT - {0x21}, {0x33}, {0x33}, {0xFF}, {0xFF}, {0xFF} - }, { // LIGHTNINGROD - {0x12}, {0x11}, {0x15}, {0xFF}, {0xFF}, {0xFF} - }, { // COMPOUNDEYES - {0x15}, {0x21}, {0x12}, {0x33}, {0xFF}, {0xFF} - }, { // MARVEL SCALE - {0x06}, {0x24}, {0x05}, {0xFF}, {0xFF}, {0xFF} - }, { // WONDER GUARD - {0x2A}, {0x30}, {0x06}, {0xFF}, {0xFF}, {0xFF} - }, { // INSOMNIA - {0x0F}, {0x15}, {0x0C}, {0x06}, {0xFF}, {0xFF} - }, { // LEVITATE - {0x09}, {0x0C}, {0x03}, {0xFF}, {0xFF}, {0xFF} - }, { // PLUS - {0x2A}, {0x33}, {0x33}, {0xFF}, {0xFF}, {0xFF} - }, { // PRESSURE - {0x09}, {0x30}, {0x33}, {0xFF}, {0xFF}, {0xFF} - }, { // LIQUID OOZE - {0x11}, {0x09}, {0x27}, {0xFF}, {0xFF}, {0xFF} - }, { // COLOR CHANGE - {0x17}, {0x30}, {0x03}, {0x33}, {0xFF}, {0xFF} - }, { // SOUNDPROOF - {0x21}, {0x27}, {0x33}, {0xFF}, {0xFF}, {0xFF} - }, { // EFFECT SPORE - {0x0C}, {0x09}, {0x1A}, {0x33}, {0xFF}, {0xFF} - }, { // PKRS - {0x18}, {0x0C}, {0x2A}, {0xFF}, {0xFF}, {0xFF} - }, { // FIRE - {0x14}, {0x30}, {0x33}, {0xFF}, {0xFF}, {0xFF} - }, { // FLAME BODY - {0x03}, {0x15}, {0x0C}, {0xFF}, {0xFF}, {0xFF} - }, { // MINUS - {0x12}, {0x2A}, {0x33}, {0xFF}, {0xFF}, {0xFF} - }, { // OWN TEMPO - {0x18}, {0x09}, {0x18}, {0xFF}, {0xFF}, {0xFF} - }, { // MAGMA ARMOR - {0x01}, {0x2C}, {0x1B}, {0x30}, {0xFF}, {0xFF} - }, { // WATER - {0x06}, {0x30}, {0x33}, {0xFF}, {0xFF}, {0xFF} - }, { // WATER VEIL - {0x06}, {0x30}, {0x04}, {0x33}, {0xFF}, {0xFF} - }, { // BUG - {0x2A}, {0x33}, {0x33}, {0xFF}, {0xFF}, {0xFF} - }, { // SWARM - {0x07}, {0x33}, {0x33}, {0xFF}, {0xFF}, {0xFF} - }, { // CUTE CHARM - {0x2D}, {0x07}, {0x33}, {0xFF}, {0xFF}, {0xFF} - }, { // IMMUNITY - {0x11}, {0x27}, {0x11}, {0x0C}, {0xFF}, {0xFF} - }, { // BLAZE - {0x03}, {0x33}, {0x33}, {0xFF}, {0xFF}, {0xFF} - }, { // PICKUP - {0x11}, {0x2A}, {0x33}, {0xFF}, {0xFF}, {0xFF} - }, { // PATTERN - {0x00}, {0x30}, {0x33}, {0xFF}, {0xFF}, {0xFF} - }, { // FLASH FIRE - {0x00}, {0x14}, {0x30}, {0xFF}, {0xFF}, {0xFF} - }, { // VITAL SPIRIT - {0x12}, {0x1B}, {0x30}, {0x11}, {0xFF}, {0xFF} - }, { // CHLOROPHYLL - {0x1A}, {0x2C}, {0x11}, {0x33}, {0xFF}, {0xFF} - }, { // PURE POWER - {0x2D}, {0x21}, {0x30}, {0x33}, {0xFF}, {0xFF} - }, { // SHIELD DUST - {0x0E}, {0x2B}, {0x33}, {0xFF}, {0xFF}, {0xFF} - } -}; - -/*static*/ const struct BardSound BardMusic_BATTLE[][6] = { - { // MATCH UP - {0x02}, {0x2A}, {0x33}, {0xFF}, {0xFF}, {0xFF} - }, { // GO - {0x18}, {0x33}, {0x33}, {0xFF}, {0xFF}, {0xFF} - }, { // NO. 1 - {0x2A}, {0x30}, {0x2C}, {0xFF}, {0xFF}, {0xFF} - }, { // DECIDE - {0x0C}, {0x12}, {0x33}, {0xFF}, {0xFF}, {0xFF} - }, { // LET ME WIN - {0x09}, {0x0C}, {0x0F}, {0xFF}, {0xFF}, {0xFF} - }, { // WINS - {0x0F}, {0x33}, {0x33}, {0xFF}, {0xFF}, {0xFF} - }, { // WIN - {0x0F}, {0x33}, {0x33}, {0xFF}, {0xFF}, {0xFF} - }, { // WON - {0x17}, {0x33}, {0x33}, {0xFF}, {0xFF}, {0xFF} - }, { // IF I WIN - {0x0F}, {0x12}, {0x0F}, {0xFF}, {0xFF}, {0xFF} - }, { // WHEN I WIN - {0x0F}, {0x12}, {0x0F}, {0xFF}, {0xFF}, {0xFF} - }, { // CAN'T WIN - {0x02}, {0x0F}, {0x33}, {0xFF}, {0xFF}, {0xFF} - }, { // CAN WIN - {0x00}, {0x0F}, {0x33}, {0xFF}, {0xFF}, {0xFF} - }, { // NO MATCH - {0x18}, {0x00}, {0x33}, {0xFF}, {0xFF}, {0xFF} - }, { // SPIRIT - {0x09}, {0x11}, {0x33}, {0xFF}, {0xFF}, {0xFF} - }, { // DECIDED - {0x0C}, {0x12}, {0x0B}, {0xFF}, {0xFF}, {0xFF} - }, { // TRUMP CARD - {0x2C}, {0x08}, {0x33}, {0xFF}, {0xFF}, {0xFF} - }, { // TAKE THAT - {0x05}, {0x01}, {0x33}, {0xFF}, {0xFF}, {0xFF} - }, { // COME ON - {0x2C}, {0x17}, {0x33}, {0xFF}, {0xFF}, {0xFF} - }, { // ATTACK - {0x2A}, {0x02}, {0x33}, {0xFF}, {0xFF}, {0xFF} - }, { // SURRENDER - {0x30}, {0x09}, {0x30}, {0xFF}, {0xFF}, {0xFF} - }, { // GUTSY - {0x2C}, {0x33}, {0x33}, {0xFF}, {0xFF}, {0xFF} - }, { // TALENT - {0x01}, {0x0B}, {0x33}, {0xFF}, {0xFF}, {0xFF} - }, { // STRATEGY - {0x00}, {0x0B}, {0x0C}, {0xFF}, {0xFF}, {0xFF} - }, { // SMITE - {0x12}, {0x33}, {0x33}, {0xFF}, {0xFF}, {0xFF} - }, { // MATCH - {0x00}, {0x33}, {0x33}, {0xFF}, {0xFF}, {0xFF} - }, { // VICTORY - {0x11}, {0x32}, {0x0E}, {0xFF}, {0xFF}, {0xFF} - }, { // OFFENSIVE - {0x15}, {0x0B}, {0x11}, {0x33}, {0xFF}, {0xFF} - }, { // SENSE - {0x0B}, {0x33}, {0x33}, {0xFF}, {0xFF}, {0xFF} - }, { // VERSUS - {0x30}, {0x2C}, {0x33}, {0xFF}, {0xFF}, {0xFF} - }, { // FIGHTS - {0x12}, {0x33}, {0x33}, {0xFF}, {0xFF}, {0xFF} - }, { // POWER - {0x23}, {0x30}, {0x33}, {0xFF}, {0xFF}, {0xFF} - }, { // CHALLENGE - {0x01}, {0x0A}, {0x33}, {0xFF}, {0xFF}, {0xFF} - }, { // STRONG - {0x1B}, {0x33}, {0x33}, {0xFF}, {0xFF}, {0xFF} - }, { // TOO STRONG - {0x29}, {0x1D}, {0x33}, {0xFF}, {0xFF}, {0xFF} - }, { // GO EASY - {0x18}, {0x0C}, {0x0E}, {0xFF}, {0xFF}, {0xFF} - }, { // FOE - {0x1A}, {0x33}, {0x33}, {0xFF}, {0xFF}, {0xFF} - }, { // GENIUS - {0x0E}, {0x0E}, {0x2C}, {0xFF}, {0xFF}, {0xFF} - }, { // LEGEND - {0x09}, {0x09}, {0x33}, {0xFF}, {0xFF}, {0xFF} - }, { // ESCAPE - {0x09}, {0x05}, {0x33}, {0xFF}, {0xFF}, {0xFF} - }, { // AIM - {0x03}, {0x33}, {0x33}, {0xFF}, {0xFF}, {0xFF} - }, { // BATTLE - {0x00}, {0x26}, {0x33}, {0xFF}, {0xFF}, {0xFF} - }, { // FIGHT - {0x12}, {0x33}, {0x33}, {0xFF}, {0xFF}, {0xFF} - }, { // RESUSCITATE - {0x0C}, {0x09}, {0x11}, {0x05}, {0xFF}, {0xFF} - }, { // POINTS - {0x1E}, {0x33}, {0x33}, {0xFF}, {0xFF}, {0xFF} - }, { // SERIOUS - {0x0C}, {0x0E}, {0x2C}, {0xFF}, {0xFF}, {0xFF} - }, { // GIVE UP - {0x11}, {0x2C}, {0x33}, {0xFF}, {0xFF}, {0xFF} - }, { // LOSS - {0x17}, {0x33}, {0x33}, {0xFF}, {0xFF}, {0xFF} - }, { // IF I LOSE - {0x0F}, {0x12}, {0x27}, {0xFF}, {0xFF}, {0xFF} - }, { // LOST - {0x16}, {0x33}, {0x33}, {0xFF}, {0xFF}, {0xFF} - }, { // LOSE - {0x27}, {0x33}, {0x33}, {0xFF}, {0xFF}, {0xFF} - }, { // GUARD - {0x08}, {0x33}, {0x33}, {0xFF}, {0xFF}, {0xFF} - }, { // PARTNER - {0x15}, {0x32}, {0x33}, {0xFF}, {0xFF}, {0xFF} - }, { // REJECT - {0x0C}, {0x0B}, {0x33}, {0xFF}, {0xFF}, {0xFF} - }, { // ACCEPT - {0x00}, {0x0B}, {0x33}, {0xFF}, {0xFF}, {0xFF} - }, { // INVINCIBLE - {0x0F}, {0x11}, {0x2C}, {0x24}, {0xFF}, {0xFF} - }, { // RECEIVED - {0x0C}, {0x0E}, {0x33}, {0xFF}, {0xFF}, {0xFF} - }, { // EASY - {0x0C}, {0x0E}, {0x33}, {0xFF}, {0xFF}, {0xFF} - }, { // WEAK - {0x0C}, {0x33}, {0x33}, {0xFF}, {0xFF}, {0xFF} - }, { // TOO WEAK - {0x27}, {0x0E}, {0x33}, {0xFF}, {0xFF}, {0xFF} - }, { // PUSHOVER - {0x29}, {0x1A}, {0x30}, {0xFF}, {0xFF}, {0xFF} - }, { // LEADER - {0x0C}, {0x32}, {0x33}, {0xFF}, {0xFF}, {0xFF} - }, { // RULE - {0x26}, {0x33}, {0x33}, {0xFF}, {0xFF}, {0xFF} - }, { // MOVE - {0x29}, {0x33}, {0x33}, {0xFF}, {0xFF}, {0xFF} - } -}; - -/*static*/ const struct BardSound BardMusic_GREETINGS[][6] = { - { // THANKS - {0x03}, {0x33}, {0x33}, {0xFF}, {0xFF}, {0xFF} - }, { // YES - {0x0B}, {0x33}, {0x33}, {0xFF}, {0xFF}, {0xFF} - }, { // HERE GOES - {0x30}, {0x18}, {0x33}, {0xFF}, {0xFF}, {0xFF} - }, { // HERE I COME - {0x30}, {0x12}, {0x17}, {0x33}, {0xFF}, {0xFF} - }, { // HERE IT IS - {0x30}, {0x11}, {0x11}, {0xFF}, {0xFF}, {0xFF} - }, { // YEAH - {0x02}, {0x33}, {0x33}, {0xFF}, {0xFF}, {0xFF} - }, { // WELCOME - {0x09}, {0x17}, {0x33}, {0xFF}, {0xFF}, {0xFF} - }, { // OI - {0x1E}, {0x33}, {0x33}, {0xFF}, {0xFF}, {0xFF} - }, { // HOW DO - {0x21}, {0x27}, {0x33}, {0xFF}, {0xFF}, {0xFF} - }, { // CONGRATS - {0x2C}, {0x02}, {0x33}, {0xFF}, {0xFF}, {0xFF} - }, { // GIVE ME - {0x11}, {0x0E}, {0x33}, {0xFF}, {0xFF}, {0xFF} - }, { // SORRY - {0x1B}, {0x0C}, {0x33}, {0xFF}, {0xFF}, {0xFF} - }, { // APOLOGIZE - {0x2C}, {0x06}, {0x17}, {0x12}, {0x33}, {0xFF} - }, { // FORGIVE - {0x1A}, {0x10}, {0x33}, {0xFF}, {0xFF}, {0xFF} - }, { // HEY, THERE - {0x04}, {0x0B}, {0x33}, {0xFF}, {0xFF}, {0xFF} - }, { // HELLO - {0x09}, {0x18}, {0x33}, {0xFF}, {0xFF}, {0xFF} - }, { // GOOD-BYE - {0x26}, {0x14}, {0x33}, {0xFF}, {0xFF}, {0xFF} - }, { // THANK YOU - {0x03}, {0x27}, {0x33}, {0xFF}, {0xFF}, {0xFF} - }, { // I'VE ARRIVED - {0x12}, {0x06}, {0x12}, {0x33}, {0xFF}, {0xFF} - }, { // PARDON - {0x1D}, {0x2A}, {0x33}, {0xFF}, {0xFF}, {0xFF} - }, { // EXCUSE - {0x09}, {0x27}, {0x33}, {0xFF}, {0xFF}, {0xFF} - }, { // SEE YA - {0x0E}, {0x2C}, {0x33}, {0xFF}, {0xFF}, {0xFF} - }, { // EXCUSE ME - {0x0B}, {0x28}, {0x0D}, {0xFF}, {0xFF}, {0xFF} - }, { // WELL, THEN - {0x09}, {0x09}, {0x33}, {0xFF}, {0xFF}, {0xFF} - }, { // GO AHEAD - {0x1A}, {0x2C}, {0x0B}, {0xFF}, {0xFF}, {0xFF} - }, { // APPRECIATE - {0x00}, {0x0C}, {0x0E}, {0x05}, {0xFF}, {0xFF} - }, { // HEY? - {0x04}, {0x33}, {0x33}, {0xFF}, {0xFF}, {0xFF} - }, { // WHAT'S UP? - {0x2C}, {0x2B}, {0x33}, {0xFF}, {0xFF}, {0xFF} - }, { // HUH? - {0x2C}, {0x33}, {0x33}, {0xFF}, {0xFF}, {0xFF} - }, { // NO - {0x18}, {0x33}, {0x33}, {0xFF}, {0xFF}, {0xFF} - }, { // HI - {0x12}, {0x33}, {0x33}, {0xFF}, {0xFF}, {0xFF} - }, { // YEAH, YEAH - {0x0A}, {0x0A}, {0x33}, {0xFF}, {0xFF}, {0xFF} - }, { // BYE-BYE - {0x14}, {0x12}, {0x33}, {0xFF}, {0xFF}, {0xFF} - }, { // MEET YOU - {0x0E}, {0x27}, {0x33}, {0xFF}, {0xFF}, {0xFF} - }, { // HEY - {0x05}, {0x33}, {0x33}, {0xFF}, {0xFF}, {0xFF} - }, { // SMELL - {0x0D}, {0x33}, {0x33}, {0xFF}, {0xFF}, {0xFF} - }, { // LISTENING - {0x11}, {0x0B}, {0x11}, {0xFF}, {0xFF}, {0xFF} - }, { // HOO-HAH - {0x27}, {0x01}, {0x33}, {0xFF}, {0xFF}, {0xFF} - }, { // YAHOO - {0x00}, {0x27}, {0x33}, {0xFF}, {0xFF}, {0xFF} - }, { // YO - {0x18}, {0x33}, {0x33}, {0xFF}, {0xFF}, {0xFF} - }, { // COME OVER - {0x2C}, {0x18}, {0x32}, {0xFF}, {0xFF}, {0xFF} - }, { // COUNT ON - {0x23}, {0x17}, {0x33}, {0xFF}, {0xFF}, {0xFF} - } -}; - -/*static*/ const struct BardSound BardMusic_PEOPLE[][6] = { - { // OPPONENT - {0x2C}, {0x1A}, {0x0B}, {0xFF}, {0xFF}, {0xFF} - }, { // I - {0x13}, {0x33}, {0x33}, {0xFF}, {0xFF}, {0xFF} - }, { // YOU - {0x2D}, {0x33}, {0x33}, {0xFF}, {0xFF}, {0xFF} - }, { // YOURS - {0x1A}, {0x33}, {0x33}, {0xFF}, {0xFF}, {0xFF} - }, { // SON - {0x27}, {0x33}, {0x33}, {0xFF}, {0xFF}, {0xFF} - }, { // YOUR - {0x1A, 0xF7}, {0x33}, {0x33}, {0xFF}, {0xFF}, {0xFF} - }, { // YOU'RE - {0x26}, {0x32}, {0x33}, {0xFF}, {0xFF}, {0xFF} - }, { // YOU'VE - {0x2D}, {0x33}, {0x33}, {0xFF}, {0xFF}, {0xFF} - }, { // MOTHER - {0x2C}, {0x32}, {0x33}, {0xFF}, {0xFF}, {0xFF} - }, { // GRANDFATHER - {0x01}, {0x08}, {0x32}, {0x33}, {0xFF}, {0xFF} - }, { // UNCLE - {0x2C}, {0x26}, {0x33}, {0xFF}, {0xFF}, {0xFF} - }, { // FATHER - {0x08}, {0x30}, {0x33}, {0xFF}, {0xFF}, {0xFF} - }, { // BOY - {0x1E}, {0x33}, {0x33}, {0xFF}, {0xFF}, {0xFF} - }, { // ADULT - {0x00}, {0x24}, {0x33}, {0xFF}, {0xFF}, {0xFF} - }, { // BROTHER - {0x15}, {0x30}, {0x33}, {0xFF}, {0xFF}, {0xFF} - }, { // SISTER - {0x11}, {0x30}, {0x33}, {0xFF}, {0xFF}, {0xFF} - }, { // GRANDMOTHER - {0x01}, {0x2C}, {0x32}, {0x33}, {0xFF}, {0xFF} - }, { // AUNT - {0x07}, {0x33}, {0x33}, {0xFF}, {0xFF}, {0xFF} - }, { // PARENT - {0x09}, {0x0B}, {0x33}, {0xFF}, {0xFF}, {0xFF} - }, { // MAN - {0x00}, {0x33}, {0x33}, {0xFF}, {0xFF}, {0xFF} - }, { // ME - {0x0D}, {0x33}, {0x33}, {0xFF}, {0xFF}, {0xFF} - }, { // GIRL - {0x30}, {0x33}, {0x33}, {0xFF}, {0xFF}, {0xFF} - }, { // BABE - {0x04}, {0x33}, {0x33}, {0xFF}, {0xFF}, {0xFF} - }, { // FAMILY - {0x00}, {0x11}, {0x0E}, {0xFF}, {0xFF}, {0xFF} - }, { // HER - {0x32}, {0x33}, {0x33}, {0xFF}, {0xFF}, {0xFF} - }, { // HIM - {0x0F}, {0x33}, {0x33}, {0xFF}, {0xFF}, {0xFF} - }, { // HE - {0x0C}, {0x33}, {0x33}, {0xFF}, {0xFF}, {0xFF} - }, { // PLACE - {0x03}, {0x33}, {0x33}, {0xFF}, {0xFF}, {0xFF} - }, { // DAUGHTER - {0x27}, {0x33}, {0x33}, {0xFF}, {0xFF}, {0xFF} - }, { // HIS - {0x10}, {0x33}, {0x33}, {0xFF}, {0xFF}, {0xFF} - }, { // HE'S - {0x0C}, {0x33}, {0x33}, {0xFF}, {0xFF}, {0xFF} - }, { // AREN'T - {0x1C}, {0x33}, {0x33}, {0xFF}, {0xFF}, {0xFF} - }, { // SIBLINGS - {0x11}, {0x0E}, {0x33}, {0xFF}, {0xFF}, {0xFF} - }, { // KID - {0x11}, {0x33}, {0x33}, {0xFF}, {0xFF}, {0xFF} - }, { // CHILDREN - {0x11}, {0x0A}, {0x33}, {0xFF}, {0xFF}, {0xFF} - }, { // MR. - {0x11}, {0x30}, {0x33}, {0xFF}, {0xFF}, {0xFF} - }, { // MRS. - {0x11}, {0x09}, {0x33}, {0xFF}, {0xFF}, {0xFF} - }, { // MYSELF - {0x12}, {0x0B}, {0x33}, {0xFF}, {0xFF}, {0xFF} - }, { // I WAS - {0x12}, {0x2C}, {0x33}, {0xFF}, {0xFF}, {0xFF} - }, { // TO ME - {0x27}, {0x0D}, {0x33}, {0xFF}, {0xFF}, {0xFF} - }, { // MY - {0x12}, {0x33}, {0x33}, {0xFF}, {0xFF}, {0xFF} - }, { // I AM - {0x12}, {0x02}, {0x33}, {0xFF}, {0xFF}, {0xFF} - }, { // I'VE - {0x14}, {0x33}, {0x33}, {0xFF}, {0xFF}, {0xFF} - }, { // WHO - {0x29}, {0x33}, {0x33}, {0xFF}, {0xFF}, {0xFF} - }, { // SOMEONE - {0x2A}, {0x2C}, {0x33}, {0xFF}, {0xFF}, {0xFF} - }, { // WHO WAS - {0x27}, {0x2C}, {0x33}, {0xFF}, {0xFF}, {0xFF} - }, { // TO WHOM - {0x27}, {0x29}, {0x33}, {0xFF}, {0xFF}, {0xFF} - }, { // WHOSE - {0x27}, {0x33}, {0x33}, {0xFF}, {0xFF}, {0xFF} - }, { // WHO IS - {0x27}, {0x10}, {0x33}, {0xFF}, {0xFF}, {0xFF} - }, { // IT'S - {0x10}, {0x33}, {0x33}, {0xFF}, {0xFF}, {0xFF} - }, { // LADY - {0x05}, {0x0E}, {0x33}, {0xFF}, {0xFF}, {0xFF} - }, { // FRIEND - {0x09}, {0x33}, {0x33}, {0xFF}, {0xFF}, {0xFF} - }, { // ALLY - {0x00}, {0x14}, {0x33}, {0xFF}, {0xFF}, {0xFF} - }, { // PERSON - {0x32}, {0x1D}, {0x33}, {0xFF}, {0xFF}, {0xFF} - }, { // DUDE - {0x28}, {0x33}, {0x33}, {0xFF}, {0xFF}, {0xFF} - }, { // THEY - {0x05}, {0x33}, {0x33}, {0xFF}, {0xFF}, {0xFF} - }, { // THEY WERE - {0x05}, {0x30}, {0x33}, {0xFF}, {0xFF}, {0xFF} - }, { // TO THEM - {0x27}, {0x09}, {0x33}, {0xFF}, {0xFF}, {0xFF} - }, { // THEIR - {0x31}, {0x33}, {0x33}, {0xFF}, {0xFF}, {0xFF} - }, { // THEY'RE - {0x31}, {0x33}, {0x33}, {0xFF}, {0xFF}, {0xFF} - }, { // THEY'VE - {0x03}, {0x0B}, {0x33}, {0xFF}, {0xFF}, {0xFF} - }, { // WE - {0x0C}, {0x33}, {0x33}, {0xFF}, {0xFF}, {0xFF} - }, { // BEEN - {0x0F}, {0x33}, {0x33}, {0xFF}, {0xFF}, {0xFF} - }, { // TO US - {0x27}, {0x2C}, {0x33}, {0xFF}, {0xFF}, {0xFF} - }, { // OUR - {0x21}, {0x32}, {0x33}, {0xFF}, {0xFF}, {0xFF} - }, { // WE'RE - {0x0C}, {0x32}, {0x33}, {0xFF}, {0xFF}, {0xFF} - }, { // RIVAL - {0x12}, {0x24}, {0x33}, {0xFF}, {0xFF}, {0xFF} - }, { // WE'VE - {0x0C}, {0x33}, {0x33}, {0xFF}, {0xFF}, {0xFF} - }, { // WOMAN - {0x26}, {0x02}, {0x33}, {0xFF}, {0xFF}, {0xFF} - }, { // SHE - {0x0C}, {0x33}, {0x33}, {0xFF}, {0xFF}, {0xFF} - }, { // SHE WAS - {0x0C}, {0x2B}, {0x33}, {0xFF}, {0xFF}, {0xFF} - }, { // TO HER - {0x27}, {0x30}, {0x33}, {0xFF}, {0xFF}, {0xFF} - }, { // HER'S - {0x30}, {0x33}, {0x33}, {0xFF}, {0xFF}, {0xFF} - }, { // SHE IS - {0x0C}, {0x10}, {0x33}, {0xFF}, {0xFF}, {0xFF} - }, { // SOME - {0x0C}, {0x01}, {0x33}, {0xFF}, {0xFF}, {0xFF} - } -}; - -/*static*/ const struct BardSound BardMusic_VOICES[][6] = { - { // ! - {0x12}, {0x33}, {0x33}, {0xFF}, {0xFF}, {0xFF} - }, { // !! - {0x12}, {0x33}, {0x33}, {0xFF}, {0xFF}, {0xFF} - }, { // ?! - {0x12}, {0x33}, {0x33}, {0xFF}, {0xFF}, {0xFF} - }, { // ? - {0x12}, {0x33}, {0x33}, {0xFF}, {0xFF}, {0xFF} - }, { // … - {0x0C}, {0x30}, {0x33}, {0xFF}, {0xFF}, {0xFF} - }, { // …! - {0x0C}, {0x30}, {0x33}, {0xFF}, {0xFF}, {0xFF} - }, { // ……… - {0x0C}, {0x30}, {0x33}, {0x0C}, {0x30}, {0xFF} - }, { // - - {0x12}, {0x33}, {0x33}, {0xFF}, {0xFF}, {0xFF} - }, { // - - - - {0x12}, {0x33}, {0x33}, {0xFF}, {0xFF}, {0xFF} - }, { // UH-OH - {0x2C}, {0x1A}, {0x33}, {0xFF}, {0xFF}, {0xFF} - }, { // WAAAH - {0x1B, 0x05, 0x08}, {0x33}, {0x33}, {0xFF}, {0xFF}, {0xFF} - }, { // AHAHA - {0x06}, {0x06}, {0x06}, {0x33}, {0x33}, {0xFF} - }, { // OH? - {0x18}, {0x33}, {0x33}, {0xFF}, {0xFF}, {0xFF} - }, { // NOPE - {0x18}, {0x33}, {0x33}, {0xFF}, {0xFF}, {0xFF} - }, { // URGH - {0x31}, {0x33}, {0x33}, {0xFF}, {0xFF}, {0xFF} - }, { // HMM - {0x28}, {0x33}, {0x33}, {0xFF}, {0xFF}, {0xFF} - }, { // WHOAH - {0x19}, {0x33}, {0x33}, {0xFF}, {0xFF}, {0xFF} - }, { // WROOOAAR! - {0x1C}, {0x31}, {0x33}, {0x33}, {0xFF}, {0xFF} - }, { // WOW - {0x23}, {0x33}, {0x33}, {0xFF}, {0xFF}, {0xFF} - }, { // GIGGLE - {0x11}, {0x11}, {0x11}, {0xFF}, {0xFF}, {0xFF} - }, { // SIGH - {0x0A}, {0x33}, {0x33}, {0xFF}, {0xFF}, {0xFF} - }, { // UNBELIEVABLE - {0x2C}, {0x0E}, {0x0C}, {0x02}, {0x24}, {0xFF} - }, { // CRIES - {0x13}, {0x33}, {0x33}, {0xFF}, {0xFF}, {0xFF} - }, { // AGREE - {0x06}, {0x0E}, {0x33}, {0xFF}, {0xFF}, {0xFF} - }, { // EH? - {0x2A}, {0x33}, {0x33}, {0xFF}, {0xFF}, {0xFF} - }, { // CRY - {0x12}, {0x33}, {0x33}, {0xFF}, {0xFF}, {0xFF} - }, { // EHEHE - {0x0C}, {0x0C}, {0x0C}, {0xFF}, {0xFF}, {0xFF} - }, { // OI, OI, OI - {0x1E}, {0x1E}, {0x1E}, {0xFF}, {0xFF}, {0xFF} - }, { // OH, YEAH - {0x18}, {0x01}, {0x33}, {0xFF}, {0xFF}, {0xFF} - }, { // OH - {0x18}, {0x33}, {0x33}, {0xFF}, {0xFF}, {0xFF} - }, { // OOPS - {0x27}, {0x33}, {0x33}, {0xFF}, {0xFF}, {0xFF} - }, { // SHOCKED - {0x17}, {0x0B}, {0x33}, {0xFF}, {0xFF}, {0xFF} - }, { // EEK - {0x0D}, {0x33}, {0x33}, {0xFF}, {0xFF}, {0xFF} - }, { // GRAAAH - {0x06}, {0x33}, {0x33}, {0xFF}, {0xFF}, {0xFF} - }, { // GWAHAHAHA - {0x06}, {0x06}, {0x06}, {0x17}, {0xFF}, {0xFF} - }, { // WAY - {0x05}, {0x33}, {0x33}, {0xFF}, {0xFF}, {0xFF} - }, { // TCH - {0x09}, {0x33}, {0x33}, {0xFF}, {0xFF}, {0xFF} - }, { // HEHE - {0x0C}, {0x0C}, {0x33}, {0xFF}, {0xFF}, {0xFF} - }, { // HAH - {0x06}, {0x33}, {0x33}, {0xFF}, {0xFF}, {0xFF} - }, { // YUP - {0x2C}, {0x33}, {0x33}, {0xFF}, {0xFF}, {0xFF} - }, { // HAHAHA - {0x06}, {0x06}, {0x06}, {0xFF}, {0xFF}, {0xFF} - }, { // AIYEEH - {0x13}, {0x0D}, {0x33}, {0xFF}, {0xFF}, {0xFF} - }, { // HIYAH - {0x0C}, {0x07}, {0x33}, {0xFF}, {0xFF}, {0xFF} - }, { // FUFUFU - {0x27}, {0x27}, {0x27}, {0xFF}, {0xFF}, {0xFF} - }, { // LOL - {0x18}, {0x1A}, {0x18}, {0xFF}, {0xFF}, {0xFF} - }, { // SNORT - {0x1A}, {0x33}, {0x33}, {0xFF}, {0xFF}, {0xFF} - }, { // HUMPH - {0x2A}, {0x33}, {0x33}, {0xFF}, {0xFF}, {0xFF} - }, { // HEHEHE - {0x0C}, {0x0C}, {0x0C}, {0xFF}, {0xFF}, {0xFF} - }, { // HEH - {0x09}, {0x33}, {0x33}, {0xFF}, {0xFF}, {0xFF} - }, { // HOHOHO - {0x18}, {0x18}, {0x18}, {0xFF}, {0xFF}, {0xFF} - }, { // UH-HUH - {0x2A}, {0x2C}, {0x33}, {0xFF}, {0xFF}, {0xFF} - }, { // OH, DEAR - {0x18}, {0x0E}, {0x30}, {0xFF}, {0xFF}, {0xFF} - }, { // ARRGH - {0x1C}, {0x33}, {0x33}, {0xFF}, {0xFF}, {0xFF} - }, { // MUFUFU - {0x27}, {0x27}, {0x27}, {0xFF}, {0xFF}, {0xFF} - }, { // MMM - {0x0F}, {0x33}, {0x33}, {0xFF}, {0xFF}, {0xFF} - }, { // OH-KAY - {0x18}, {0x04}, {0x33}, {0xFF}, {0xFF}, {0xFF} - }, { // OKAY - {0x18}, {0x04}, {0x33}, {0xFF}, {0xFF}, {0xFF} - }, { // LALALA - {0x06}, {0x06}, {0x06}, {0xFF}, {0xFF}, {0xFF} - }, { // YAY - {0x04}, {0x33}, {0x33}, {0xFF}, {0xFF}, {0xFF} - }, { // AWW - {0x07}, {0x33}, {0x33}, {0xFF}, {0xFF}, {0xFF} - }, { // WOWEE - {0x22}, {0x0D}, {0x33}, {0xFF}, {0xFF}, {0xFF} - }, { // GWAH - {0x07}, {0x33}, {0x33}, {0xFF}, {0xFF}, {0xFF} - }, { // WAHAHAHA - {0x06}, {0x06}, {0x06}, {0x06}, {0xFF}, {0xFF} - } -}; - -/*static*/ const struct BardSound BardMusic_SPEECH[][6] = { - { // LISTEN - {0x09}, {0x10}, {0x33}, {0xFF}, {0xFF}, {0xFF} - }, { // NOT VERY - {0x15}, {0x09}, {0x0C}, {0xFF}, {0xFF}, {0xFF} - }, { // MEAN - {0x0E}, {0x33}, {0x33}, {0xFF}, {0xFF}, {0xFF} - }, { // LIE - {0x12}, {0x33}, {0x33}, {0xFF}, {0xFF}, {0xFF} - }, { // LAY - {0x05}, {0x33}, {0x33}, {0xFF}, {0xFF}, {0xFF} - }, { // RECOMMEND - {0x09}, {0x2C}, {0x0A}, {0xFF}, {0xFF}, {0xFF} - }, { // NITWIT - {0x0F}, {0x0F}, {0x33}, {0xFF}, {0xFF}, {0xFF} - }, { // QUITE - {0x14}, {0x0B}, {0x33}, {0xFF}, {0xFF}, {0xFF} - }, { // FROM - {0x2B}, {0x33}, {0x33}, {0xFF}, {0xFF}, {0xFF} - }, { // FEELING - {0x0C}, {0x0E}, {0x33}, {0xFF}, {0xFF}, {0xFF} - }, { // BUT - {0x2C}, {0x33}, {0x33}, {0xFF}, {0xFF}, {0xFF} - }, { // HOWEVER - {0x21}, {0x09}, {0x30}, {0xFF}, {0xFF}, {0xFF} - }, { // CASE - {0x0C}, {0x0B}, {0x33}, {0xFF}, {0xFF}, {0xFF} - }, { // THE - {0x2B}, {0x33}, {0x33}, {0xFF}, {0xFF}, {0xFF} - }, { // MISS - {0x11}, {0xFF}, {0x33}, {0xFF}, {0xFF}, {0xFF} - }, { // HOW - {0x21}, {0x33}, {0x33}, {0xFF}, {0xFF}, {0xFF} - }, { // HIT - {0x11}, {0x33}, {0x33}, {0xFF}, {0xFF}, {0xFF} - }, { // ENOUGH - {0x0E}, {0x2C}, {0x33}, {0xFF}, {0xFF}, {0xFF} - }, { // A LOT - {0x03}, {0x17}, {0xFF}, {0xFF}, {0xFF}, {0xFF} - }, { // A LITTLE - {0x03}, {0x11}, {0x26}, {0x33}, {0xFF}, {0xFF} - }, { // ABSOLUTELY - {0x00}, {0x2C}, {0x2D}, {0x0E}, {0x33}, {0xFF} - }, { // AND - {0x00}, {0xFF}, {0x33}, {0xFF}, {0xFF}, {0xFF} - }, { // ONLY - {0x1A}, {0x0E}, {0x33}, {0xFF}, {0xFF}, {0xFF} - }, { // AROUND - {0x0A}, {0xFF}, {0x33}, {0xFF}, {0xFF}, {0xFF} - }, { // PROBABLY - {0x15}, {0x2C}, {0x0E}, {0x33}, {0xFF}, {0xFF} - }, { // IF - {0x11}, {0x33}, {0x33}, {0xFF}, {0xFF}, {0xFF} - }, { // VERY - {0x0A}, {0x0E}, {0x33}, {0xFF}, {0xFF}, {0xFF} - }, { // A TINY BIT - {0x2C}, {0x14}, {0x0C}, {0x11}, {0xFF}, {0xFF} - }, { // WILD - {0x12}, {0x0B}, {0x33}, {0xFF}, {0xFF}, {0xFF} - }, { // THAT'S - {0x00}, {0x0B}, {0xFF}, {0xFF}, {0xFF}, {0xFF} - }, { // JUST - {0x2C}, {0xFF}, {0x33}, {0xFF}, {0xFF}, {0xFF} - }, { // EVEN SO, - {0x0C}, {0x0B}, {0x1A}, {0x33}, {0xFF}, {0xFF} - }, { // MUST BE - {0x2C}, {0x0E}, {0x33}, {0xFF}, {0xFF}, {0xFF} - }, { // NATURALLY - {0x01}, {0x30}, {0x06}, {0x0E}, {0x33}, {0xFF} - }, { // FOR NOW, - {0x1A}, {0x23}, {0xFF}, {0x33}, {0xFF}, {0xFF} - }, { // UNDERSTOOD - {0x2C}, {0x32}, {0x27}, {0xFF}, {0xFF}, {0xFF} - }, { // JOKING - {0x18}, {0x0E}, {0x33}, {0xFF}, {0xFF}, {0xFF} - }, { // READY - {0x09}, {0x0E}, {0x33}, {0xFF}, {0xFF}, {0xFF} - }, { // SOMETHING - {0x1B}, {0x0E}, {0xFF}, {0xFF}, {0xFF}, {0xFF} - }, { // SOMEHOW - {0x1B}, {0x23}, {0x33}, {0xFF}, {0xFF}, {0xFF} - }, { // ALTHOUGH - {0x06}, {0x1A}, {0x33}, {0xFF}, {0xFF}, {0xFF} - }, { // ALSO - {0x06}, {0x1A}, {0x33}, {0xFF}, {0xFF}, {0xFF} - }, { // PERFECT - {0x32}, {0x0B}, {0x33}, {0xFF}, {0xFF}, {0xFF} - }, { // AS MUCH AS - {0x01}, {0x2C}, {0x01}, {0xFF}, {0xFF}, {0xFF} - }, { // REALLY - {0x0C}, {0x0A}, {0x0E}, {0xFF}, {0xFF}, {0xFF} - }, { // TRULY - {0x27}, {0x0C}, {0x33}, {0xFF}, {0xFF}, {0xFF} - }, { // SERIOUSLY - {0x11}, {0x0E}, {0x26}, {0x0E}, {0x33}, {0xFF} - }, { // TOTALLY - {0x18}, {0x07}, {0x0E}, {0x33}, {0xFF}, {0xFF} - }, { // UNTIL - {0x2C}, {0x10}, {0x33}, {0xFF}, {0xFF}, {0xFF} - }, { // AS IF - {0x01}, {0x11}, {0x33}, {0xFF}, {0xFF}, {0xFF} - }, { // MOOD - {0x28}, {0x33}, {0x33}, {0xFF}, {0xFF}, {0xFF} - }, { // RATHER - {0x00}, {0x32}, {0x33}, {0xFF}, {0xFF}, {0xFF} - }, { // AWFULLY - {0x06}, {0x26}, {0x0E}, {0x33}, {0xFF}, {0xFF} - }, { // MODE - {0x1A}, {0xFF}, {0x33}, {0xFF}, {0xFF}, {0xFF} - }, { // MORE - {0x1A}, {0x33}, {0x33}, {0xFF}, {0xFF}, {0xFF} - }, { // TOO LATE - {0x27}, {0x05}, {0x33}, {0xFF}, {0xFF}, {0xFF} - }, { // FINALLY - {0x12}, {0x06}, {0x0E}, {0x33}, {0xFF}, {0xFF} - }, { // ANY - {0x08}, {0x33}, {0x33}, {0xFF}, {0xFF}, {0xFF} - }, { // INSTEAD - {0x0F}, {0x0B}, {0x33}, {0xFF}, {0xFF}, {0xFF} - }, { // FANTASTIC - {0x2B}, {0x33}, {0x33}, {0xFF}, {0xFF}, {0xFF} - } -}; - -/*static*/ const struct BardSound BardMusic_ENDINGS[][6] = { - { // WILL - {0x10}, {0x33}, {0x33}, {0xFF}, {0xFF}, {0xFF} - }, { // WILL BE HERE - {0x10}, {0x0C}, {0x30}, {0xFF}, {0xFF}, {0xFF} - }, { // OR - {0x1A}, {0x33}, {0x33}, {0xFF}, {0xFF}, {0xFF} - }, { // TIMES - {0x14}, {0x33}, {0x33}, {0xFF}, {0xFF}, {0xFF} - }, { // WONDER - {0x2C}, {0x32}, {0x33}, {0xFF}, {0xFF}, {0xFF} - }, { // IS IT? - {0x11}, {0x09}, {0x33}, {0xFF}, {0xFF}, {0xFF} - }, { // BE - {0x0E}, {0x33}, {0x33}, {0xFF}, {0xFF}, {0xFF} - }, { // GIMME - {0x11}, {0x0E}, {0x33}, {0xFF}, {0xFF}, {0xFF} - }, { // COULD - {0x26}, {0x33}, {0x33}, {0xFF}, {0xFF}, {0xFF} - }, { // LIKELY TO - {0x14}, {0x0E}, {0x27}, {0x33}, {0xFF}, {0xFF} - }, { // WOULD - {0x26}, {0x33}, {0x33}, {0xFF}, {0xFF}, {0xFF} - }, { // IS - {0x10}, {0x33}, {0x33}, {0xFF}, {0xFF}, {0xFF} - }, { // ISN'T IT? - {0x11}, {0x09}, {0x11}, {0xFF}, {0xFF}, {0xFF} - }, { // LET'S - {0x0B}, {0xFF}, {0x33}, {0xFF}, {0xFF}, {0xFF} - }, { // OTHER - {0x2C}, {0x32}, {0x33}, {0xFF}, {0xFF}, {0xFF} - }, { // ARE - {0x1C}, {0x33}, {0x33}, {0xFF}, {0xFF}, {0xFF} - }, { // WAS - {0x2C}, {0x33}, {0x33}, {0xFF}, {0xFF}, {0xFF} - }, { // WERE - {0x32}, {0x33}, {0x33}, {0xFF}, {0xFF}, {0xFF} - }, { // THOSE - {0x18}, {0x33}, {0x33}, {0xFF}, {0xFF}, {0xFF} - }, { // ISN'T - {0x0F}, {0x09}, {0x33}, {0xFF}, {0xFF}, {0xFF} - }, { // WON'T - {0x1A}, {0x33}, {0x33}, {0xFF}, {0xFF}, {0xFF} - }, { // CAN'T - {0x00}, {0x33}, {0x33}, {0xFF}, {0xFF}, {0xFF} - }, { // CAN - {0x00}, {0x33}, {0x33}, {0xFF}, {0xFF}, {0xFF} - }, { // DON'T - {0x1A}, {0x33}, {0x33}, {0xFF}, {0xFF}, {0xFF} - }, { // DO - {0x27}, {0xFF}, {0x33}, {0xFF}, {0xFF}, {0xFF} - }, { // DOES - {0x2C}, {0x33}, {0x33}, {0xFF}, {0xFF}, {0xFF} - }, { // WHOM - {0x27}, {0x33}, {0x33}, {0xFF}, {0xFF}, {0xFF} - }, { // WHICH - {0x11}, {0x33}, {0x33}, {0xFF}, {0xFF}, {0xFF} - }, { // WASN'T - {0x2C}, {0x0F}, {0x33}, {0xFF}, {0xFF}, {0xFF} - }, { // WEREN'T - {0x32}, {0x0F}, {0x33}, {0xFF}, {0xFF}, {0xFF} - }, { // HAVE - {0x00}, {0x33}, {0x33}, {0xFF}, {0xFF}, {0xFF} - }, { // HAVEN'T - {0x00}, {0x0F}, {0x33}, {0xFF}, {0xFF}, {0xFF} - }, { // A - {0x03}, {0x33}, {0x33}, {0xFF}, {0xFF}, {0xFF} - }, { // AN - {0x02}, {0x33}, {0x33}, {0xFF}, {0xFF}, {0xFF} - }, { // NOT - {0x17}, {0x33}, {0x33}, {0xFF}, {0xFF}, {0xFF} - }, { // THERE - {0x0B}, {0x32}, {0x33}, {0xFF}, {0xFF}, {0xFF} - }, { // OK? - {0x1A}, {0x04}, {0x33}, {0xFF}, {0xFF}, {0xFF} - }, { // SO - {0x1A}, {0x33}, {0x33}, {0xFF}, {0xFF}, {0xFF} - }, { // MAYBE - {0x03}, {0x0E}, {0x33}, {0xFF}, {0xFF}, {0xFF} - }, { // ABOUT - {0x2A}, {0x23}, {0x33}, {0xFF}, {0xFF}, {0xFF} - }, { // OVER - {0x18}, {0x32}, {0x33}, {0xFF}, {0xFF}, {0xFF} - }, { // IT - {0x11}, {0x33}, {0x33}, {0xFF}, {0xFF}, {0xFF} - }, { // ALL - {0x06}, {0x33}, {0x33}, {0xFF}, {0xFF}, {0xFF} - }, { // FOR - {0x26}, {0x33}, {0x33}, {0xFF}, {0xFF}, {0xFF} - }, { // ON - {0x1C}, {0x33}, {0x33}, {0xFF}, {0xFF}, {0xFF} - }, { // OFF - {0x1D}, {0xFF}, {0x33}, {0xFF}, {0xFF}, {0xFF} - }, { // AS - {0x01}, {0x33}, {0x33}, {0xFF}, {0xFF}, {0xFF} - }, { // TO - {0x27}, {0x33}, {0x33}, {0xFF}, {0xFF}, {0xFF} - }, { // WITH - {0x11}, {0x33}, {0x33}, {0xFF}, {0xFF}, {0xFF} - }, { // BETTER - {0x09}, {0x32}, {0x33}, {0xFF}, {0xFF}, {0xFF} - }, { // EVER - {0x09}, {0x32}, {0x33}, {0xFF}, {0xFF}, {0xFF} - }, { // SINCE - {0x0F}, {0x33}, {0x33}, {0xFF}, {0xFF}, {0xFF} - }, { // OF - {0x2A}, {0x33}, {0x33}, {0xFF}, {0xFF}, {0xFF} - }, { // BELONGS TO - {0x27}, {0x33}, {0x33}, {0xFF}, {0xFF}, {0xFF} - }, { // AT - {0x02}, {0x33}, {0x33}, {0xFF}, {0xFF}, {0xFF} - }, { // IN - {0x0F}, {0x33}, {0x33}, {0xFF}, {0xFF}, {0xFF} - }, { // OUT - {0x21}, {0xFF}, {0x33}, {0xFF}, {0xFF}, {0xFF} - }, { // TOO - {0x27}, {0x33}, {0x33}, {0xFF}, {0xFF}, {0xFF} - }, { // LIKE - {0x14}, {0x33}, {0x33}, {0xFF}, {0xFF}, {0xFF} - }, { // DID - {0x11}, {0x33}, {0x33}, {0xFF}, {0xFF}, {0xFF} - }, { // DIDN'T - {0x11}, {0x0F}, {0x33}, {0xFF}, {0xFF}, {0xFF} - }, { // DOESN'T - {0x2C}, {0x0F}, {0x33}, {0xFF}, {0xFF}, {0xFF} - }, { // WITHOUT - {0x11}, {0x23}, {0xFF}, {0xFF}, {0xFF}, {0xFF} - }, { // AFTER - {0x00}, {0x32}, {0x33}, {0xFF}, {0xFF}, {0xFF} - }, { // BEFORE - {0x0C}, {0x26}, {0x33}, {0xFF}, {0xFF}, {0xFF} - }, { // WHILE - {0x14}, {0x33}, {0x33}, {0xFF}, {0xFF}, {0xFF} - }, { // THAN - {0x02}, {0x33}, {0x33}, {0xFF}, {0xFF}, {0xFF} - }, { // ONCE - {0x2C}, {0x33}, {0x33}, {0xFF}, {0xFF}, {0xFF} - }, { // ANYWHERE - {0x0E}, {0x33}, {0x33}, {0xFF}, {0xFF}, {0xFF} - } -}; - -/*static*/ const struct BardSound BardMusic_FEELINGS[][6] = { - { // MEET - {0x0C}, {0x33}, {0x33}, {0xFF}, {0xFF}, {0xFF} - }, { // PLAY - {0x04}, {0x33}, {0x33}, {0xFF}, {0xFF}, {0xFF} - }, { // HURRIED - {0x32}, {0x0E}, {0x33}, {0xFF}, {0xFF}, {0xFF} - }, { // GOES - {0x19}, {0x33}, {0x33}, {0xFF}, {0xFF}, {0xFF} - }, { // GIDDY - {0x11}, {0x0E}, {0x33}, {0xFF}, {0xFF}, {0xFF} - }, { // HAPPY - {0x00}, {0x0C}, {0x33}, {0xFF}, {0xFF}, {0xFF} - }, { // HAPPINESS - {0x00}, {0x0C}, {0x0B}, {0xFF}, {0xFF}, {0xFF} - }, { // EXCITE - {0x0B}, {0x14}, {0x33}, {0xFF}, {0xFF}, {0xFF} - }, { // IMPORTANT - {0x0F}, {0x1A}, {0x00}, {0xFF}, {0xFF}, {0xFF} - }, { // FUNNY - {0x2C}, {0x0E}, {0x33}, {0xFF}, {0xFF}, {0xFF} - }, { // GOT - {0x17}, {0x33}, {0x33}, {0xFF}, {0xFF}, {0xFF} - }, { // GO HOME - {0x18}, {0x1A}, {0x33}, {0xFF}, {0xFF}, {0xFF} - }, { // DISAPPOINTED - {0x11}, {0x00}, {0x1E}, {0x0B}, {0xFF}, {0xFF} - }, { // DISAPPOINTS - {0x11}, {0x00}, {0x20}, {0xFF}, {0xFF}, {0xFF} - }, { // SAD - {0x02}, {0x33}, {0x33}, {0xFF}, {0xFF}, {0xFF} - }, { // TRY - {0x12}, {0x33}, {0x33}, {0xFF}, {0xFF}, {0xFF} - }, { // TRIES - {0x14}, {0x33}, {0x33}, {0xFF}, {0xFF}, {0xFF} - }, { // HEARS - {0x31}, {0x33}, {0x33}, {0xFF}, {0xFF}, {0xFF} - }, { // THINK - {0x0D}, {0x33}, {0x33}, {0xFF}, {0xFF}, {0xFF} - }, { // HEAR - {0x31}, {0x33}, {0x33}, {0xFF}, {0xFF}, {0xFF} - }, { // WANTS - {0x08}, {0xFF}, {0x33}, {0xFF}, {0xFF}, {0xFF} - }, { // MISHEARD - {0x11}, {0x32}, {0x33}, {0xFF}, {0xFF}, {0xFF} - }, { // DISLIKE - {0x11}, {0x14}, {0x33}, {0xFF}, {0xFF}, {0xFF} - }, { // ANGRY - {0x05}, {0x0E}, {0x33}, {0xFF}, {0xFF}, {0xFF} - }, { // ANGER - {0x05}, {0x32}, {0x33}, {0xFF}, {0xFF}, {0xFF} - }, { // SCARY - {0x0B}, {0x0E}, {0x33}, {0xFF}, {0xFF}, {0xFF} - }, { // LONESOME - {0x18}, {0x2C}, {0x33}, {0xFF}, {0xFF}, {0xFF} - }, { // DISAPPOINT - {0x11}, {0x2A}, {0x20}, {0xFF}, {0xFF}, {0xFF} - }, { // JOY - {0x20}, {0x33}, {0x33}, {0xFF}, {0xFF}, {0xFF} - }, { // GETS - {0x11}, {0x33}, {0x33}, {0xFF}, {0xFF}, {0xFF} - }, { // NEVER - {0x0B}, {0x32}, {0x33}, {0xFF}, {0xFF}, {0xFF} - }, { // DARN - {0x08}, {0x33}, {0x33}, {0xFF}, {0xFF}, {0xFF} - }, { // DOWNCAST - {0x21}, {0x02}, {0x33}, {0xFF}, {0xFF}, {0xFF} - }, { // INCREDIBLE - {0x0F}, {0x0B}, {0x11}, {0x26}, {0xFF}, {0xFF} - }, { // LIKES - {0x14}, {0x33}, {0x33}, {0xFF}, {0xFF}, {0xFF} - }, { // DISLIKES - {0x11}, {0x12}, {0x33}, {0xFF}, {0xFF}, {0xFF} - }, { // BORING - {0x1A}, {0x11}, {0x33}, {0x33}, {0xFF}, {0xFF} - }, { // CARE - {0x31}, {0x33}, {0x33}, {0xFF}, {0xFF}, {0xFF} - }, { // CARES - {0x31}, {0x33}, {0x33}, {0xFF}, {0xFF}, {0xFF} - }, { // ALL RIGHT - {0x06}, {0x14}, {0x33}, {0xFF}, {0xFF}, {0xFF} - }, { // ADORE - {0x2C}, {0x1A}, {0x33}, {0xFF}, {0xFF}, {0xFF} - }, { // DISASTER - {0x11}, {0x00}, {0x32}, {0xFF}, {0xFF}, {0xFF} - }, { // ENJOY - {0x11}, {0x20}, {0x33}, {0xFF}, {0xFF}, {0xFF} - }, { // ENJOYS - {0x11}, {0x20}, {0x33}, {0xFF}, {0xFF}, {0xFF} - }, { // EAT - {0x0E}, {0x33}, {0x33}, {0xFF}, {0xFF}, {0xFF} - }, { // LACKING - {0x02}, {0x11}, {0x33}, {0xFF}, {0xFF}, {0xFF} - }, { // BAD - {0x02}, {0x33}, {0x33}, {0xFF}, {0xFF}, {0xFF} - }, { // HARD - {0x1D}, {0x33}, {0x33}, {0xFF}, {0xFF}, {0xFF} - }, { // TERRIBLE - {0x0B}, {0x2A}, {0x1A}, {0xFF}, {0xFF}, {0xFF} - }, { // SHOULD - {0x29}, {0x33}, {0x33}, {0xFF}, {0xFF}, {0xFF} - }, { // NICE - {0x14}, {0x33}, {0x33}, {0xFF}, {0xFF}, {0xFF} - }, { // DRINK - {0x11}, {0x33}, {0x33}, {0xFF}, {0xFF}, {0xFF} - }, { // SURPRISE - {0x32}, {0x14}, {0x33}, {0xFF}, {0xFF}, {0xFF} - }, { // FEAR - {0x32}, {0x33}, {0x33}, {0xFF}, {0xFF}, {0xFF} - }, { // WANT - {0x2C}, {0x33}, {0x33}, {0xFF}, {0xFF}, {0xFF} - }, { // WAIT - {0x03}, {0x33}, {0x33}, {0xFF}, {0xFF}, {0xFF} - }, { // SATISFIED - {0x00}, {0x11}, {0x14}, {0x33}, {0xFF}, {0xFF} - }, { // SEE - {0x0C}, {0x33}, {0x33}, {0xFF}, {0xFF}, {0xFF} - }, { // RARE - {0x32}, {0x33}, {0x33}, {0xFF}, {0xFF}, {0xFF} - }, { // NEGATIVE - {0x0B}, {0x2C}, {0x11}, {0xFF}, {0xFF}, {0xFF} - }, { // DONE - {0x2C}, {0x33}, {0x33}, {0xFF}, {0xFF}, {0xFF} - }, { // DANGER - {0x03}, {0x32}, {0x33}, {0xFF}, {0xFF}, {0xFF} - }, { // DEFEATED - {0x0E}, {0x0E}, {0x0B}, {0xFF}, {0xFF}, {0xFF} - }, { // BEAT - {0x0E}, {0x33}, {0x33}, {0xFF}, {0xFF}, {0xFF} - }, { // GREAT - {0x04}, {0x33}, {0x33}, {0xFF}, {0xFF}, {0xFF} - }, { // ROMANTIC - {0x1A}, {0x00}, {0x11}, {0xFF}, {0xFF}, {0xFF} - }, { // QUESTION - {0x0B}, {0x2C}, {0x33}, {0xFF}, {0xFF}, {0xFF} - }, { // UNDERSTAND - {0x2C}, {0x32}, {0x02}, {0xFF}, {0xFF}, {0xFF} - }, { // UNDERSTANDS - {0x2C}, {0x32}, {0x02}, {0x33}, {0xFF}, {0xFF} - } -}; - -/*static*/ const struct BardSound BardMusic_CONDITIONS[][6] = { - { // HOT - {0x15}, {0x33}, {0x33}, {0xFF}, {0xFF}, {0xFF} - }, { // EXISTS - {0x0B}, {0x11}, {0x33}, {0xFF}, {0xFF}, {0xFF} - }, { // EXCESS - {0x0B}, {0x0B}, {0x33}, {0xFF}, {0xFF}, {0xFF} - }, { // APPROVED - {0x06}, {0x29}, {0x33}, {0xFF}, {0xFF}, {0xFF} - }, { // HAS - {0x01}, {0x33}, {0x33}, {0xFF}, {0xFF}, {0xFF} - }, { // GOOD - {0x26}, {0x33}, {0x33}, {0xFF}, {0xFF}, {0xFF} - }, { // LESS - {0x0B}, {0x33}, {0x33}, {0xFF}, {0xFF}, {0xFF} - }, { // MOMENTUM - {0x1A}, {0x0B}, {0x2C}, {0x33}, {0xFF}, {0xFF} - }, { // GOING - {0x1A}, {0x11}, {0x33}, {0xFF}, {0xFF}, {0xFF} - }, { // WEIRD - {0x18}, {0x30}, {0x33}, {0xFF}, {0xFF}, {0xFF} - }, { // BUSY - {0x11}, {0x0E}, {0x33}, {0xFF}, {0xFF}, {0xFF} - }, { // TOGETHER - {0x29}, {0x0A}, {0x32}, {0xFF}, {0xFF}, {0xFF} - }, { // FULL - {0x26}, {0x33}, {0x33}, {0xFF}, {0xFF}, {0xFF} - }, { // ABSENT - {0x02}, {0x0B}, {0x33}, {0xFF}, {0xFF}, {0xFF} - }, { // BEING - {0x0F}, {0x12}, {0x33}, {0xFF}, {0xFF}, {0xFF} - }, { // NEED - {0x0E}, {0x33}, {0x33}, {0xFF}, {0xFF}, {0xFF} - }, { // TASTY - {0x05}, {0x0E}, {0x33}, {0xFF}, {0xFF}, {0xFF} - }, { // SKILLED - {0x11}, {0x0B}, {0x33}, {0xFF}, {0xFF}, {0xFF} - }, { // NOISY - {0x20}, {0x0E}, {0x33}, {0xFF}, {0xFF}, {0xFF} - }, { // BIG - {0x11}, {0x33}, {0x33}, {0xFF}, {0xFF}, {0xFF} - }, { // LATE - {0x05}, {0x33}, {0x33}, {0xFF}, {0xFF}, {0xFF} - }, { // CLOSE - {0x19}, {0x33}, {0x33}, {0xFF}, {0xFF}, {0xFF} - }, { // DOCILE - {0x17}, {0x14}, {0x33}, {0xFF}, {0xFF}, {0xFF} - }, { // AMUSING - {0x2C}, {0x27}, {0x11}, {0xFF}, {0xFF}, {0xFF} - }, { // ENTERTAINING - {0x09}, {0x30}, {0x03}, {0x11}, {0x33}, {0xFF} - }, { // PERFECTION - {0x32}, {0x0B}, {0x2C}, {0x33}, {0xFF}, {0xFF} - }, { // PRETTY - {0x11}, {0x0E}, {0x33}, {0xFF}, {0xFF}, {0xFF} - }, { // HEALTHY - {0x0A}, {0x0E}, {0x33}, {0xFF}, {0xFF}, {0xFF} - }, { // EXCELLENT - {0x09}, {0x2C}, {0x0B}, {0xFF}, {0xFF}, {0xFF} - }, { // UPSIDE DOWN - {0x2C}, {0x14}, {0x23}, {0xFF}, {0xFF}, {0xFF} - }, { // COLD - {0x18}, {0x33}, {0x33}, {0xFF}, {0xFF}, {0xFF} - }, { // REFRESHING - {0x0E}, {0x0A}, {0x11}, {0xFF}, {0xFF}, {0xFF} - }, { // UNAVOIDABLE - {0x2C}, {0x2A}, {0x1E}, {0x2C}, {0x26}, {0xFF} - }, { // MUCH - {0x2C}, {0x33}, {0x33}, {0xFF}, {0xFF}, {0xFF} - }, { // OVERWHELMING - {0x1A}, {0x32}, {0x0B}, {0x11}, {0x33}, {0xFF} - }, { // FABULOUS - {0x00}, {0x27}, {0x2C}, {0xFF}, {0xFF}, {0xFF} - }, { // ELSE - {0x0A}, {0x33}, {0x33}, {0xFF}, {0xFF}, {0xFF} - }, { // EXPENSIVE - {0x09}, {0x0A}, {0x11}, {0xFF}, {0xFF}, {0xFF} - }, { // CORRECT - {0x1A}, {0x0B}, {0x33}, {0xFF}, {0xFF}, {0xFF} - }, { // IMPOSSIBLE - {0x0F}, {0x1D}, {0x2A}, {0x26}, {0xFF}, {0xFF} - }, { // SMALL - {0x1D}, {0x33}, {0x33}, {0xFF}, {0xFF}, {0xFF} - }, { // DIFFERENT - {0x11}, {0x30}, {0x0B}, {0xFF}, {0xFF}, {0xFF} - }, { // TIRED - {0x14}, {0x32}, {0x33}, {0xFF}, {0xFF}, {0xFF} - }, { // SKILL - {0x11}, {0x33}, {0x33}, {0xFF}, {0xFF}, {0xFF} - }, { // TOP - {0x17}, {0x33}, {0x33}, {0xFF}, {0xFF}, {0xFF} - }, { // NON-STOP - {0x17}, {0x16}, {0x33}, {0xFF}, {0xFF}, {0xFF} - }, { // PREPOSTEROUS - {0x2A}, {0x16}, {0x32}, {0x2C}, {0x33}, {0xFF} - }, { // NONE - {0x2C}, {0x33}, {0x33}, {0xFF}, {0xFF}, {0xFF} - }, { // NOTHING - {0x2C}, {0x11}, {0x33}, {0xFF}, {0xFF}, {0xFF} - }, { // NATURAL - {0x02}, {0x32}, {0x26}, {0xFF}, {0xFF}, {0xFF} - }, { // BECOMES - {0x0E}, {0x2C}, {0x33}, {0xFF}, {0xFF}, {0xFF} - }, { // LUKEWARM - {0x29}, {0x1C}, {0x33}, {0xFF}, {0xFF}, {0xFF} - }, { // FAST - {0x02}, {0x33}, {0x33}, {0xFF}, {0xFF}, {0xFF} - }, { // LOW - {0x1A}, {0x33}, {0x33}, {0xFF}, {0xFF}, {0xFF} - }, { // AWFUL - {0x08}, {0x26}, {0x33}, {0xFF}, {0xFF}, {0xFF} - }, { // ALONE - {0x2C}, {0x18}, {0x33}, {0xFF}, {0xFF}, {0xFF} - }, { // BORED - {0x1A}, {0x2A}, {0x33}, {0xFF}, {0xFF}, {0xFF} - }, { // SECRET - {0x0E}, {0x0B}, {0x33}, {0xFF}, {0xFF}, {0xFF} - }, { // MYSTERY - {0x11}, {0x30}, {0x0E}, {0xFF}, {0xFF}, {0xFF} - }, { // LACKS - {0x02}, {0x33}, {0x33}, {0xFF}, {0xFF}, {0xFF} - }, { // BEST - {0x0B}, {0x33}, {0x33}, {0xFF}, {0xFF}, {0xFF} - }, { // LOUSY - {0x21}, {0x0E}, {0x33}, {0xFF}, {0xFF}, {0xFF} - }, { // MISTAKE - {0x11}, {0x05}, {0x33}, {0xFF}, {0xFF}, {0xFF} - }, { // KIND - {0x12}, {0x33}, {0x33}, {0xFF}, {0xFF}, {0xFF} - }, { // WELL - {0x0B}, {0x33}, {0x33}, {0xFF}, {0xFF}, {0xFF} - }, { // WEAKENED - {0x0E}, {0x0B}, {0xFF}, {0xFF}, {0xFF}, {0xFF} - }, { // SIMPLE - {0x0F}, {0x26}, {0x33}, {0xFF}, {0xFF}, {0xFF} - }, { // SEEMS - {0x0D}, {0x33}, {0x33}, {0xFF}, {0xFF}, {0xFF} - }, { // BADLY - {0x00}, {0x0C}, {0x33}, {0xFF}, {0xFF}, {0xFF} - } -}; - -/*static*/ const struct BardSound BardMusic_ACTIONS[][6] = { - { // MEETS - {0x0E}, {0x33}, {0x33}, {0xFF}, {0xFF}, {0xFF} - }, { // CONCEDE - {0x2C}, {0x0E}, {0x33}, {0xFF}, {0xFF}, {0xFF} - }, { // GIVE - {0x10}, {0x33}, {0x33}, {0xFF}, {0xFF}, {0xFF} - }, { // GIVES - {0x10}, {0x33}, {0x33}, {0xFF}, {0xFF}, {0xFF} - }, { // PLAYED - {0x04}, {0x33}, {0x33}, {0xFF}, {0xFF}, {0xFF} - }, { // PLAYS - {0x05}, {0x33}, {0x33}, {0xFF}, {0xFF}, {0xFF} - }, { // COLLECT - {0x2C}, {0x0B}, {0x33}, {0xFF}, {0xFF}, {0xFF} - }, { // WALKING - {0x06}, {0x0E}, {0x33}, {0xFF}, {0xFF}, {0xFF} - }, { // WALKS - {0x08}, {0x33}, {0x33}, {0xFF}, {0xFF}, {0xFF} - }, { // SAYS - {0x0B}, {0x33}, {0x33}, {0xFF}, {0xFF}, {0xFF} - }, { // WENT - {0x09}, {0x33}, {0x33}, {0xFF}, {0xFF}, {0xFF} - }, { // SAID - {0x09}, {0x33}, {0x33}, {0xFF}, {0xFF}, {0xFF} - }, { // WAKE UP - {0x05}, {0x2C}, {0x33}, {0xFF}, {0xFF}, {0xFF} - }, { // WAKES UP - {0x05}, {0x2C}, {0x33}, {0xFF}, {0xFF}, {0xFF} - }, { // ANGERS - {0x03}, {0x32}, {0x33}, {0xFF}, {0xFF}, {0xFF} - }, { // TEACH - {0x0D}, {0xFF}, {0x33}, {0xFF}, {0xFF}, {0xFF} - }, { // TEACHES - {0x0C}, {0x0B}, {0x33}, {0xFF}, {0xFF}, {0xFF} - }, { // PLEASE - {0x0D}, {0x33}, {0x33}, {0xFF}, {0xFF}, {0xFF} - }, { // LEARN - {0x30}, {0x33}, {0x33}, {0xFF}, {0xFF}, {0xFF} - }, { // CHANGE - {0x03}, {0x33}, {0x33}, {0xFF}, {0xFF}, {0xFF} - }, { // STORY - {0x1A}, {0x0E}, {0x33}, {0xFF}, {0xFF}, {0xFF} - }, { // TRUST - {0x0B}, {0x32}, {0x33}, {0xFF}, {0xFF}, {0xFF} - }, { // LAVISH - {0x01}, {0x11}, {0x33}, {0xFF}, {0xFF}, {0xFF} - }, { // LISTENS - {0x11}, {0x0B}, {0x33}, {0xFF}, {0xFF}, {0xFF} - }, { // HEARING - {0x11}, {0x0E}, {0x33}, {0xFF}, {0xFF}, {0xFF} - }, { // TRAINS - {0x03}, {0x33}, {0x33}, {0xFF}, {0xFF}, {0xFF} - }, { // CHOOSE - {0x27}, {0x33}, {0x33}, {0xFF}, {0xFF}, {0xFF} - }, { // COME - {0x2C}, {0x33}, {0x33}, {0xFF}, {0xFF}, {0xFF} - }, { // CAME - {0x03}, {0x33}, {0x33}, {0xFF}, {0xFF}, {0xFF} - }, { // SEARCH - {0x32}, {0x33}, {0x33}, {0xFF}, {0xFF}, {0xFF} - }, { // MAKE - {0x05}, {0x33}, {0x33}, {0xFF}, {0xFF}, {0xFF} - }, { // CAUSE - {0x1D}, {0x33}, {0x33}, {0xFF}, {0xFF}, {0xFF} - }, { // KNOW - {0x1A}, {0x33}, {0x33}, {0xFF}, {0xFF}, {0xFF} - }, { // KNOWS - {0x18}, {0x33}, {0x33}, {0xFF}, {0xFF}, {0xFF} - }, { // REFUSE - {0x0C}, {0x2F}, {0x33}, {0xFF}, {0xFF}, {0xFF} - }, { // STORES - {0x1A}, {0x30}, {0x33}, {0xFF}, {0xFF}, {0xFF} - }, { // BRAG - {0x02}, {0x33}, {0x33}, {0xFF}, {0xFF}, {0xFF} - }, { // IGNORANT - {0x11}, {0x1A}, {0x02}, {0xFF}, {0xFF}, {0xFF} - }, { // THINKS - {0x0E}, {0x33}, {0x33}, {0xFF}, {0xFF}, {0xFF} - }, { // BELIEVE - {0x0C}, {0x0E}, {0x33}, {0xFF}, {0xFF}, {0xFF} - }, { // SLIDE - {0x14}, {0x33}, {0x33}, {0xFF}, {0xFF}, {0xFF} - }, { // EATS - {0x0E}, {0x33}, {0x33}, {0xFF}, {0xFF}, {0xFF} - }, { // USE - {0x2F}, {0x33}, {0x33}, {0xFF}, {0xFF}, {0xFF} - }, { // USES - {0x2F}, {0x0A}, {0x33}, {0xFF}, {0xFF}, {0xFF} - }, { // USING - {0x2F}, {0x0C}, {0x33}, {0xFF}, {0xFF}, {0xFF} - }, { // COULDN'T - {0x26}, {0x09}, {0x33}, {0xFF}, {0xFF}, {0xFF} - }, { // CAPABLE - {0x05}, {0x2C}, {0x1A}, {0xFF}, {0xFF}, {0xFF} - }, { // DISAPPEAR - {0x11}, {0x2C}, {0x30}, {0x33}, {0xFF}, {0xFF} - }, { // APPEAR - {0x2C}, {0x32}, {0x33}, {0xFF}, {0xFF}, {0xFF} - }, { // THROW - {0x1A}, {0x33}, {0x33}, {0xFF}, {0xFF}, {0xFF} - }, { // WORRY - {0x32}, {0x0E}, {0x33}, {0xFF}, {0xFF}, {0xFF} - }, { // SLEPT - {0x0B}, {0x33}, {0x33}, {0xFF}, {0xFF}, {0xFF} - }, { // SLEEP - {0x0E}, {0x33}, {0x33}, {0xFF}, {0xFF}, {0xFF} - }, { // RELEASE - {0x0C}, {0x0E}, {0x33}, {0xFF}, {0xFF}, {0xFF} - }, { // DRINKS - {0x0E}, {0x33}, {0x33}, {0xFF}, {0xFF}, {0xFF} - }, { // RUNS - {0x2C}, {0x33}, {0x33}, {0xFF}, {0xFF}, {0xFF} - }, { // RUN - {0x2C}, {0x33}, {0x33}, {0xFF}, {0xFF}, {0xFF} - }, { // WORKS - {0x32}, {0x33}, {0x33}, {0xFF}, {0xFF}, {0xFF} - }, { // WORKING - {0x32}, {0x0D}, {0x33}, {0xFF}, {0xFF}, {0xFF} - }, { // TALKING - {0x1B}, {0x0E}, {0x33}, {0xFF}, {0xFF}, {0xFF} - }, { // TALK - {0x1B}, {0xFF}, {0x33}, {0xFF}, {0xFF}, {0xFF} - }, { // SINK - {0x0E}, {0x33}, {0x33}, {0xFF}, {0xFF}, {0xFF} - }, { // SMACK - {0x01}, {0x33}, {0x33}, {0xFF}, {0xFF}, {0xFF} - }, { // PRETEND - {0x0E}, {0x0B}, {0x33}, {0xFF}, {0xFF}, {0xFF} - }, { // PRAISE - {0x05}, {0x33}, {0x33}, {0xFF}, {0xFF}, {0xFF} - }, { // OVERDO - {0x18}, {0x30}, {0x29}, {0xFF}, {0xFF}, {0xFF} - }, { // SHOW - {0x1A}, {0x33}, {0x33}, {0xFF}, {0xFF}, {0xFF} - }, { // LOOKS - {0x26}, {0x33}, {0x33}, {0xFF}, {0xFF}, {0xFF} - }, { // SEES - {0x0E}, {0x33}, {0x33}, {0xFF}, {0xFF}, {0xFF} - }, { // SEEK - {0x0E}, {0x33}, {0x33}, {0xFF}, {0xFF}, {0xFF} - }, { // OWN - {0x1A}, {0x33}, {0x33}, {0xFF}, {0xFF}, {0xFF} - }, { // TAKE - {0x05}, {0x33}, {0x33}, {0xFF}, {0xFF}, {0xFF} - }, { // ALLOW - {0x2C}, {0x23}, {0x33}, {0xFF}, {0xFF}, {0xFF} - }, { // FORGET - {0x1A}, {0x0B}, {0x33}, {0xFF}, {0xFF}, {0xFF} - }, { // FORGETS - {0x1A}, {0x0A}, {0x33}, {0xFF}, {0xFF}, {0xFF} - }, { // APPEARS - {0x2C}, {0x0D}, {0x33}, {0x33}, {0xFF}, {0xFF} - }, { // FAINT - {0x03}, {0x33}, {0x33}, {0xFF}, {0xFF}, {0xFF} - }, { // FAINTED - {0x03}, {0x0A}, {0x33}, {0xFF}, {0xFF}, {0xFF} - } -}; - -/*static*/ const struct BardSound BardMusic_LIFESTYLE[][6] = { - { // CHORES - {0x31}, {0x33}, {0x33}, {0xFF}, {0xFF}, {0xFF} - }, { // HOME - {0x1A}, {0x33}, {0x33}, {0xFF}, {0xFF}, {0xFF} - }, { // MONEY - {0x2C}, {0x0E}, {0x33}, {0xFF}, {0xFF}, {0xFF} - }, { // ALLOWANCE - {0x2A}, {0x23}, {0x02}, {0x33}, {0xFF}, {0xFF} - }, { // BATH - {0x02}, {0x33}, {0x33}, {0xFF}, {0xFF}, {0xFF} - }, { // CONVERSATION - {0x2A}, {0x32}, {0x03}, {0x2C}, {0x33}, {0xFF} - }, { // SCHOOL - {0x29}, {0x33}, {0x33}, {0xFF}, {0xFF}, {0xFF} - }, { // COMMEMORATE - {0x2C}, {0x0B}, {0x32}, {0x05}, {0xFF}, {0xFF} - }, { // HABIT - {0x00}, {0x11}, {0x33}, {0xFF}, {0xFF}, {0xFF} - }, { // GROUP - {0x27}, {0x33}, {0x33}, {0xFF}, {0xFF}, {0xFF} - }, { // WORD - {0x30}, {0x33}, {0x33}, {0xFF}, {0xFF}, {0xFF} - }, { // STORE - {0x18}, {0x33}, {0x33}, {0xFF}, {0xFF}, {0xFF} - }, { // SERVICE - {0x32}, {0x11}, {0x33}, {0xFF}, {0xFF}, {0xFF} - }, { // WORK - {0x32}, {0x33}, {0x33}, {0xFF}, {0xFF}, {0xFF} - }, { // SYSTEM - {0x11}, {0x2C}, {0x33}, {0xFF}, {0xFF}, {0xFF} - }, { // TRAIN - {0x30}, {0x03}, {0x33}, {0xFF}, {0xFF}, {0xFF} - }, { // CLASS - {0x02}, {0x33}, {0x33}, {0xFF}, {0xFF}, {0xFF} - }, { // LESSONS - {0x09}, {0x1D}, {0x33}, {0xFF}, {0xFF}, {0xFF} - }, { // INFORMATION - {0x0F}, {0x30}, {0x05}, {0x2C}, {0x33}, {0xFF} - }, { // LIVING - {0x11}, {0x0E}, {0x33}, {0xFF}, {0xFF}, {0xFF} - }, { // TEACHER - {0x0C}, {0x30}, {0x33}, {0xFF}, {0xFF}, {0xFF} - }, { // TOURNAMENT - {0x32}, {0x2A}, {0x0B}, {0xFF}, {0xFF}, {0xFF} - }, { // LETTER - {0x0B}, {0x32}, {0x33}, {0xFF}, {0xFF}, {0xFF} - }, { // EVENT - {0x0C}, {0x09}, {0x33}, {0xFF}, {0xFF}, {0xFF} - }, { // DIGITAL - {0x11}, {0x11}, {0x2C}, {0xFF}, {0xFF}, {0xFF} - }, { // TEST - {0x0B}, {0x33}, {0x33}, {0xFF}, {0xFF}, {0xFF} - }, { // DEPT. STORE - {0x0C}, {0x1B}, {0x0B}, {0x1A}, {0xFF}, {0xFF} - }, { // TELEVISION - {0x09}, {0x2C}, {0x11}, {0x1B}, {0x33}, {0xFF} - }, { // PHONE - {0x18}, {0x33}, {0x33}, {0xFF}, {0xFF}, {0xFF} - }, { // ITEM - {0x12}, {0x2A}, {0x33}, {0xFF}, {0xFF}, {0xFF} - }, { // NAME - {0x03}, {0x33}, {0x33}, {0xFF}, {0xFF}, {0xFF} - }, { // NEWS - {0x27}, {0x33}, {0x33}, {0xFF}, {0xFF}, {0xFF} - }, { // POPULAR - {0x1D}, {0x27}, {0x32}, {0xFF}, {0xFF}, {0xFF} - }, { // PARTY - {0x1C}, {0x0E}, {0x33}, {0xFF}, {0xFF}, {0xFF} - }, { // STUDY - {0x2C}, {0x0E}, {0x33}, {0xFF}, {0xFF}, {0xFF} - }, { // MACHINE - {0x2C}, {0x0E}, {0x33}, {0xFF}, {0xFF}, {0xFF} - }, { // MAIL - {0x03}, {0x24}, {0x33}, {0xFF}, {0xFF}, {0xFF} - }, { // MESSAGE - {0x0B}, {0x2C}, {0x33}, {0xFF}, {0xFF}, {0xFF} - }, { // PROMISE - {0x1D}, {0x11}, {0x33}, {0xFF}, {0xFF}, {0xFF} - }, { // DREAM - {0x0E}, {0x33}, {0xFF}, {0xFF}, {0xFF}, {0xFF} - }, { // KINDERGARTEN - {0x0F}, {0x32}, {0x17}, {0x0F}, {0x33}, {0xFF} - }, { // LIFE - {0x12}, {0x33}, {0x33}, {0xFF}, {0xFF}, {0xFF} - }, { // RADIO - {0x03}, {0x0C}, {0x18}, {0xFF}, {0xFF}, {0xFF} - }, { // RENTAL - {0x0B}, {0x26}, {0x33}, {0xFF}, {0xFF}, {0xFF} - }, { // WORLD - {0x32}, {0x24}, {0x33}, {0xFF}, {0xFF}, {0xFF} - } -}; - -/*static*/ const struct BardSound BardMusic_HOBBIES[][6] = { - { // IDOL - {0x14}, {0x1A}, {0x33}, {0xFF}, {0xFF}, {0xFF} - }, { // ANIME - {0x00}, {0x2C}, {0x05}, {0xFF}, {0xFF}, {0xFF} - }, { // SONG - {0x17}, {0x33}, {0x33}, {0xFF}, {0xFF}, {0xFF} - }, { // MOVIE - {0x27}, {0x0E}, {0x33}, {0xFF}, {0xFF}, {0xFF} - }, { // SWEETS - {0x0E}, {0x33}, {0x33}, {0xFF}, {0xFF}, {0xFF} - }, { // CHAT - {0x01}, {0x33}, {0x33}, {0xFF}, {0xFF}, {0xFF} - }, { // CHILD'S PLAY - {0x14}, {0x26}, {0x04}, {0xFF}, {0xFF}, {0xFF} - }, { // TOYS - {0x1E}, {0x33}, {0x33}, {0xFF}, {0xFF}, {0xFF} - }, { // MUSIC - {0x2F}, {0x11}, {0x33}, {0xFF}, {0xFF}, {0xFF} - }, { // CARDS - {0x17}, {0x2A}, {0x33}, {0xFF}, {0xFF}, {0xFF} - }, { // SHOPPING - {0x15}, {0x0C}, {0x33}, {0xFF}, {0xFF}, {0xFF} - }, { // CAMERA - {0x00}, {0x32}, {0x2C}, {0xFF}, {0xFF}, {0xFF} - }, { // VIEWING - {0x2F}, {0x0C}, {0x33}, {0x33}, {0xFF}, {0xFF} - }, { // SPECTATOR - {0x0B}, {0x05}, {0x30}, {0xFF}, {0xFF}, {0xFF} - }, { // GOURMET - {0x26}, {0x05}, {0x33}, {0xFF}, {0xFF}, {0xFF} - }, { // GAME - {0x03}, {0x33}, {0x33}, {0xFF}, {0xFF}, {0xFF} - }, { // RPG - {0x1B}, {0x0C}, {0x0C}, {0xFF}, {0xFF}, {0xFF} - }, { // COLLECTION - {0x2C}, {0x0B}, {0x1B}, {0x33}, {0x33}, {0xFF} - }, { // COMPLETE - {0x2C}, {0x0E}, {0x33}, {0xFF}, {0xFF}, {0xFF} - }, { // MAGAZINE - {0x02}, {0x2C}, {0x0C}, {0x33}, {0xFF}, {0xFF} - }, { // WALK - {0x1B}, {0x33}, {0x33}, {0xFF}, {0xFF}, {0xFF} - }, { // BIKE - {0x12}, {0x33}, {0x33}, {0xFF}, {0xFF}, {0xFF} - }, { // HOBBY - {0x15}, {0x0E}, {0x33}, {0xFF}, {0xFF}, {0xFF} - }, { // SPORTS - {0x1A}, {0x33}, {0x33}, {0xFF}, {0xFF}, {0xFF} - }, { // SOFTWARE - {0x17}, {0x0B}, {0x33}, {0xFF}, {0xFF}, {0xFF} - }, { // SONGS - {0x17}, {0x33}, {0x33}, {0xFF}, {0xFF}, {0xFF} - }, { // DIET - {0x14}, {0x0B}, {0x33}, {0xFF}, {0xFF}, {0xFF} - }, { // TREASURE - {0x0A}, {0x32}, {0x33}, {0xFF}, {0xFF}, {0xFF} - }, { // TRAVEL - {0x00}, {0x26}, {0x33}, {0xFF}, {0xFF}, {0xFF} - }, { // DANCE - {0x00}, {0x33}, {0x33}, {0xFF}, {0xFF}, {0xFF} - }, { // CHANNEL - {0x00}, {0x26}, {0x33}, {0xFF}, {0xFF}, {0xFF} - }, { // MAKING - {0x05}, {0x0E}, {0x33}, {0xFF}, {0xFF}, {0xFF} - }, { // FISHING - {0x11}, {0x0C}, {0x33}, {0xFF}, {0xFF}, {0xFF} - }, { // DATE - {0x05}, {0x33}, {0x33}, {0xFF}, {0xFF}, {0xFF} - }, { // DESIGN - {0x0E}, {0x12}, {0x33}, {0xFF}, {0xFF}, {0xFF} - }, { // LOCOMOTIVE - {0x1A}, {0x2C}, {0x1A}, {0x11}, {0xFF}, {0xFF} - }, { // PLUSH DOLL - {0x2C}, {0x1D}, {0x33}, {0x33}, {0xFF}, {0xFF} - }, { // PC - {0x0E}, {0x0C}, {0x33}, {0xFF}, {0xFF}, {0xFF} - }, { // FLOWERS - {0x21}, {0x30}, {0x33}, {0xFF}, {0xFF}, {0xFF} - }, { // HERO - {0x0C}, {0x1A}, {0x33}, {0xFF}, {0xFF}, {0xFF} - }, { // NAP - {0x02}, {0x33}, {0x33}, {0xFF}, {0xFF}, {0xFF} - }, { // HEROINE - {0x0C}, {0x1A}, {0x0F}, {0x33}, {0xFF}, {0xFF} - }, { // FASHION - {0x01}, {0x2C}, {0x33}, {0xFF}, {0xFF}, {0xFF} - }, { // ADVENTURE - {0x00}, {0x0B}, {0x32}, {0xFF}, {0xFF}, {0xFF} - }, { // BOARD - {0x1A}, {0x2A}, {0x33}, {0xFF}, {0xFF}, {0xFF} - }, { // BALL - {0x1B}, {0x33}, {0x33}, {0xFF}, {0xFF}, {0xFF} - }, { // BOOK - {0x26}, {0x33}, {0x33}, {0xFF}, {0xFF}, {0xFF} - }, { // FESTIVAL - {0x0B}, {0x0E}, {0x08}, {0xFF}, {0xFF}, {0xFF} - }, { // COMICS - {0x1B}, {0x11}, {0x33}, {0xFF}, {0xFF}, {0xFF} - }, { // HOLIDAY - {0x1D}, {0x11}, {0x05}, {0xFF}, {0xFF}, {0xFF} - }, { // PLANS - {0x02}, {0x33}, {0x33}, {0xFF}, {0xFF}, {0xFF} - }, { // TRENDY - {0x09}, {0x0E}, {0x33}, {0xFF}, {0xFF}, {0xFF} - }, { // VACATION - {0x03}, {0x05}, {0x1D}, {0x33}, {0xFF}, {0xFF} - }, { // LOOK - {0x26}, {0x33}, {0x33}, {0xFF}, {0xFF}, {0xFF} - } -}; - -/*static*/ const struct BardSound BardMusic_TIME[][6] = { - { // FALL - {0x1B}, {0x33}, {0x33}, {0xFF}, {0xFF}, {0xFF} - }, { // MORNING - {0x1A}, {0x0C}, {0x33}, {0xFF}, {0xFF}, {0xFF} - }, { // TOMORROW - {0x27}, {0x1C}, {0x1A}, {0xFF}, {0xFF}, {0xFF} - }, { // LAST - {0x02}, {0x33}, {0x33}, {0xFF}, {0xFF}, {0xFF} - }, { // DAY - {0x05}, {0x33}, {0x33}, {0xFF}, {0xFF}, {0xFF} - }, { // SOMETIME - {0x2C}, {0x14}, {0x33}, {0xFF}, {0xFF}, {0xFF} - }, { // ALWAYS - {0x1B}, {0x0C}, {0x33}, {0xFF}, {0xFF}, {0xFF} - }, { // CURRENT - {0x09}, {0x0F}, {0x33}, {0xFF}, {0xFF}, {0xFF} - }, { // FOREVER - {0x18}, {0x09}, {0x2C}, {0xFF}, {0xFF}, {0xFF} - }, { // DAYS - {0x05}, {0x33}, {0x33}, {0xFF}, {0xFF}, {0xFF} - }, { // END - {0x0B}, {0x33}, {0x33}, {0xFF}, {0xFF}, {0xFF} - }, { // TUESDAY - {0x27}, {0x05}, {0x33}, {0xFF}, {0xFF}, {0xFF} - }, { // YESTERDAY - {0x0B}, {0x32}, {0x05}, {0xFF}, {0xFF}, {0xFF} - }, { // TODAY - {0x27}, {0x05}, {0x33}, {0xFF}, {0xFF}, {0xFF} - }, { // FRIDAY - {0x12}, {0x05}, {0x33}, {0xFF}, {0xFF}, {0xFF} - }, { // MONDAY - {0x2C}, {0x05}, {0x33}, {0xFF}, {0xFF}, {0xFF} - }, { // LATER - {0x05}, {0x32}, {0x33}, {0xFF}, {0xFF}, {0xFF} - }, { // EARLIER - {0x30}, {0x0C}, {0x32}, {0xFF}, {0xFF}, {0xFF} - }, { // ANOTHER - {0x2A}, {0x2C}, {0x32}, {0xFF}, {0xFF}, {0xFF} - }, { // TIME - {0x14}, {0x33}, {0x33}, {0xFF}, {0xFF}, {0xFF} - }, { // FINISH - {0x0F}, {0x11}, {0x33}, {0xFF}, {0xFF}, {0xFF} - }, { // WEDNESDAY - {0x0A}, {0x05}, {0x33}, {0xFF}, {0xFF}, {0xFF} - }, { // SOON - {0x28}, {0x33}, {0x33}, {0xFF}, {0xFF}, {0xFF} - }, { // START - {0x17}, {0x2A}, {0x33}, {0xFF}, {0xFF}, {0xFF} - }, { // MONTH - {0x2C}, {0x33}, {0x33}, {0xFF}, {0xFF}, {0xFF} - }, { // STOP - {0x1D}, {0x33}, {0x33}, {0xFF}, {0xFF}, {0xFF} - }, { // NOW - {0x21}, {0x33}, {0x33}, {0xFF}, {0xFF}, {0xFF} - }, { // FINAL - {0x12}, {0x24}, {0x33}, {0xFF}, {0xFF}, {0xFF} - }, { // NEXT - {0x09}, {0x33}, {0x33}, {0xFF}, {0xFF}, {0xFF} - }, { // AGE - {0x05}, {0x33}, {0x33}, {0xFF}, {0xFF}, {0xFF} - }, { // SATURDAY - {0x00}, {0x30}, {0x05}, {0xFF}, {0xFF}, {0xFF} - }, { // SUMMER - {0x2C}, {0x30}, {0x33}, {0xFF}, {0xFF}, {0xFF} - }, { // SUNDAY - {0x2C}, {0x05}, {0x33}, {0xFF}, {0xFF}, {0xFF} - }, { // BEGINNING - {0x0E}, {0x0F}, {0x0C}, {0x33}, {0xFF}, {0xFF} - }, { // SPRING - {0x0C}, {0x33}, {0x33}, {0xFF}, {0xFF}, {0xFF} - }, { // DAYTIME - {0x05}, {0x12}, {0x33}, {0xFF}, {0xFF}, {0xFF} - }, { // WINTER - {0x0F}, {0x32}, {0x33}, {0xFF}, {0xFF}, {0xFF} - }, { // DAILY - {0x05}, {0x0E}, {0x33}, {0xFF}, {0xFF}, {0xFF} - }, { // OLDEN - {0x1A}, {0x0A}, {0x33}, {0xFF}, {0xFF}, {0xFF} - }, { // ALMOST - {0x1B}, {0x1A}, {0x33}, {0xFF}, {0xFF}, {0xFF} - }, { // NEARLY - {0x0E}, {0x0E}, {0x33}, {0xFF}, {0xFF}, {0xFF} - }, { // THURSDAY - {0x30}, {0x05}, {0x33}, {0xFF}, {0xFF}, {0xFF} - }, { // NIGHTTIME - {0x14}, {0x12}, {0x33}, {0xFF}, {0xFF}, {0xFF} - }, { // NIGHT - {0x14}, {0x33}, {0x33}, {0xFF}, {0xFF}, {0xFF} - }, { // WEEK - {0x0E}, {0x33}, {0x33}, {0xFF}, {0xFF}, {0xFF} - } -}; - -/*static*/ const struct BardSound BardMusic_MISC[][6] = { - { // HIGHS - {0x14}, {0x33}, {0x33}, {0xFF}, {0xFF}, {0xFF} - }, { // LOWS - {0x18}, {0x33}, {0x33}, {0xFF}, {0xFF}, {0xFF} - }, { // UM - {0x2B}, {0x33}, {0x33}, {0xFF}, {0xFF}, {0xFF} - }, { // REAR - {0x2A}, {0x33}, {0x33}, {0xFF}, {0xFF}, {0xFF} - }, { // THINGS - {0x0C}, {0x33}, {0x33}, {0xFF}, {0xFF}, {0xFF} - }, { // THING - {0x0C}, {0x33}, {0x33}, {0xFF}, {0xFF}, {0xFF} - }, { // BELOW - {0x0C}, {0x18}, {0x33}, {0xFF}, {0xFF}, {0xFF} - }, { // ABOVE - {0x2A}, {0x2C}, {0x33}, {0xFF}, {0xFF}, {0xFF} - }, { // BACK - {0x00}, {0x33}, {0x33}, {0xFF}, {0xFF}, {0xFF} - }, { // HIGH - {0x12}, {0x33}, {0x33}, {0xFF}, {0xFF}, {0xFF} - }, { // HERE - {0x0C}, {0x30}, {0x33}, {0xFF}, {0xFF}, {0xFF} - }, { // INSIDE - {0x0F}, {0x12}, {0x33}, {0xFF}, {0xFF}, {0xFF} - }, { // OUTSIDE - {0x21}, {0x12}, {0x33}, {0xFF}, {0xFF}, {0xFF} - }, { // BESIDE - {0x0E}, {0x12}, {0x33}, {0xFF}, {0xFF}, {0xFF} - }, { // THIS IS IT! - {0x11}, {0x11}, {0x11}, {0xFF}, {0xFF}, {0xFF} - }, { // THIS - {0x11}, {0x33}, {0x33}, {0xFF}, {0xFF}, {0xFF} - }, { // EVERY - {0x09}, {0x30}, {0x0E}, {0xFF}, {0xFF}, {0xFF} - }, { // THESE - {0x0C}, {0x33}, {0x33}, {0xFF}, {0xFF}, {0xFF} - }, { // THESE WERE - {0x0E}, {0x32}, {0x33}, {0xFF}, {0xFF}, {0xFF} - }, { // DOWN - {0x21}, {0x33}, {0x33}, {0xFF}, {0xFF}, {0xFF} - }, { // THAT - {0x02}, {0x33}, {0x33}, {0xFF}, {0xFF}, {0xFF} - }, { // THOSE ARE - {0x18}, {0x1B}, {0x33}, {0xFF}, {0xFF}, {0xFF} - }, { // THOSE WERE - {0x18}, {0x30}, {0x33}, {0xFF}, {0xFF}, {0xFF} - }, { // THAT'S IT! - {0x01}, {0x11}, {0x33}, {0xFF}, {0xFF}, {0xFF} - }, { // AM - {0x00}, {0x10}, {0x33}, {0xFF}, {0xFF}, {0xFF} - }, { // THAT WAS - {0x00}, {0x2C}, {0x33}, {0xFF}, {0xFF}, {0xFF} - }, { // FRONT - {0x2B}, {0x33}, {0x33}, {0xFF}, {0xFF}, {0xFF} - }, { // UP - {0x2A}, {0x33}, {0x33}, {0xFF}, {0xFF}, {0xFF} - }, { // CHOICE - {0x0F}, {0x33}, {0x33}, {0xFF}, {0xFF}, {0xFF} - }, { // FAR - {0x1B}, {0x33}, {0x33}, {0xFF}, {0xFF}, {0xFF} - }, { // AWAY - {0x2C}, {0x04}, {0x33}, {0xFF}, {0xFF}, {0xFF} - }, { // NEAR - {0x0C}, {0x30}, {0x33}, {0xFF}, {0xFF}, {0xFF} - }, { // WHERE - {0x09}, {0x32}, {0x33}, {0xFF}, {0xFF}, {0xFF} - }, { // WHEN - {0x10}, {0x33}, {0x33}, {0xFF}, {0xFF}, {0xFF} - }, { // WHAT - {0x2C}, {0x33}, {0x33}, {0xFF}, {0xFF}, {0xFF} - }, { // DEEP - {0x0E}, {0x33}, {0xFF}, {0xFF}, {0xFF}, {0xFF} - }, { // SHALLOW - {0x01}, {0x1A}, {0x33}, {0xFF}, {0xFF}, {0xFF} - }, { // WHY - {0x14}, {0x33}, {0x33}, {0xFF}, {0xFF}, {0xFF} - }, { // CONFUSED - {0x2A}, {0x2E}, {0x33}, {0xFF}, {0xFF}, {0xFF} - }, { // OPPOSITE - {0x1D}, {0x1A}, {0x11}, {0xFF}, {0xFF}, {0xFF} - }, { // LEFT - {0x09}, {0x33}, {0x33}, {0xFF}, {0xFF}, {0xFF} - }, { // RIGHT - {0x12}, {0x33}, {0x33}, {0xFF}, {0xFF}, {0xFF} - } -}; - -/*static*/ const struct BardSound BardMusic_ADJECTIVES[][6] = { - { // WANDERING - {0x1D}, {0x32}, {0x0C}, {0xFF}, {0xFF}, {0xFF} - }, { // RICKETY - {0x11}, {0x09}, {0x0E}, {0xFF}, {0xFF}, {0xFF} - }, { // ROCK-SOLID - {0x1B}, {0x1B}, {0x11}, {0xFF}, {0xFF}, {0xFF} - }, { // HUNGRY - {0x2A}, {0x30}, {0x0E}, {0xFF}, {0xFF}, {0xFF} - }, { // TIGHT - {0x12}, {0x33}, {0x33}, {0xFF}, {0xFF}, {0xFF} - }, { // TICKLISH - {0x11}, {0x24}, {0x11}, {0xFF}, {0xFF}, {0xFF} - }, { // TWIRLING - {0x30}, {0x0C}, {0x33}, {0xFF}, {0xFF}, {0xFF} - }, { // SPIRALING - {0x12}, {0x08}, {0x0E}, {0x33}, {0xFF}, {0xFF} - }, { // THIRSTY - {0x30}, {0x0E}, {0x33}, {0xFF}, {0xFF}, {0xFF} - }, { // LOLLING - {0x2C}, {0x0E}, {0x33}, {0xFF}, {0xFF}, {0xFF} - }, { // SILKY - {0x11}, {0x0E}, {0x33}, {0xFF}, {0xFF}, {0xFF} - }, { // SADLY - {0x00}, {0x0E}, {0x33}, {0xFF}, {0xFF}, {0xFF} - }, { // HOPELESS - {0x18}, {0x09}, {0x33}, {0xFF}, {0xFF}, {0xFF} - }, { // USELESS - {0x2D}, {0x09}, {0x33}, {0xFF}, {0xFF}, {0xFF} - }, { // DROOLING - {0x27}, {0x0C}, {0x33}, {0xFF}, {0xFF}, {0xFF} - }, { // EXCITING - {0x09}, {0x12}, {0x0C}, {0xFF}, {0xFF}, {0xFF} - }, { // THICK - {0x11}, {0x33}, {0x33}, {0xFF}, {0xFF}, {0xFF} - }, { // SMOOTH - {0x27}, {0x33}, {0x33}, {0xFF}, {0xFF}, {0xFF} - }, { // SLIMY - {0x12}, {0x0C}, {0x33}, {0xFF}, {0xFF}, {0xFF} - }, { // THIN - {0x0F}, {0x33}, {0x33}, {0xFF}, {0xFF}, {0xFF} - }, { // BREAK - {0x05}, {0x33}, {0x33}, {0xFF}, {0xFF}, {0xFF} - }, { // VORACIOUS - {0x32}, {0x05}, {0x2C}, {0x33}, {0xFF}, {0xFF} - }, { // SCATTER - {0x00}, {0x30}, {0x33}, {0xFF}, {0xFF}, {0xFF} - }, { // AWESOME - {0x1B}, {0x2C}, {0x33}, {0x33}, {0xFF}, {0xFF} - }, { // WIMPY - {0x11}, {0x0C}, {0x33}, {0xFF}, {0xFF}, {0xFF} - }, { // WOBBLY - {0x1D}, {0x0E}, {0x33}, {0xFF}, {0xFF}, {0xFF} - }, { // SHAKY - {0x03}, {0x0C}, {0x33}, {0xFF}, {0xFF}, {0xFF} - }, { // RIPPED - {0x11}, {0x33}, {0x33}, {0xFF}, {0xFF}, {0xFF} - }, { // SHREDDED - {0x09}, {0x0B}, {0x33}, {0xFF}, {0xFF}, {0xFF} - }, { // INCREASING - {0x0F}, {0x0C}, {0x0C}, {0xFF}, {0xFF}, {0xFF} - }, { // YET - {0x09}, {0x33}, {0x33}, {0xFF}, {0xFF}, {0xFF} - }, { // DESTROYED - {0x0C}, {0x1E}, {0x33}, {0xFF}, {0xFF}, {0xFF} - }, { // FIERY - {0x14}, {0x32}, {0x0E}, {0xFF}, {0xFF}, {0xFF} - }, { // LOVEY-DOVEY - {0x2C}, {0x0E}, {0x2C}, {0x0E}, {0xFF}, {0xFF} - }, { // HAPPILY - {0x00}, {0x2C}, {0x0E}, {0xFF}, {0xFF}, {0xFF} - }, { // ANTICIPATION - {0x00}, {0x11}, {0x11}, {0x03}, {0x1D}, {0x33} - } -}; - -/*static*/ const struct BardSound BardMusic_EVENTS[][6] = { - { // APPEAL - {0x2C}, {0x0C}, {0x33}, {0xFF}, {0xFF}, {0xFF} - }, { // EVENTS - {0x0C}, {0x0B}, {0x33}, {0xFF}, {0xFF}, {0xFF} - }, { // STAY-AT-HOME - {0x03}, {0x00}, {0x18}, {0x33}, {0x33}, {0xFF} - }, { // BERRY - {0x09}, {0x0C}, {0x33}, {0xFF}, {0xFF}, {0xFF} - }, { // CONTEST - {0x1D}, {0x0B}, {0x33}, {0xFF}, {0xFF}, {0xFF} - }, { // MC - {0x09}, {0x0E}, {0x33}, {0xFF}, {0xFF}, {0xFF} - }, { // JUDGE - {0x2B}, {0x33}, {0x33}, {0xFF}, {0xFF}, {0xFF} - }, { // SUPER - {0x27}, {0x32}, {0x33}, {0xFF}, {0xFF}, {0xFF} - }, { // STAGE - {0x05}, {0x33}, {0x33}, {0xFF}, {0xFF}, {0xFF} - }, { // HALL OF FAME - {0x15}, {0x2C}, {0x04}, {0x33}, {0xFF}, {0xFF} - }, { // EVOLUTION - {0x1A}, {0x2C}, {0x33}, {0xFF}, {0xFF}, {0xFF} - }, { // HYPER - {0x12}, {0x30}, {0x33}, {0xFF}, {0xFF}, {0xFF} - }, { // BATTLE TOWER - {0x02}, {0x2C}, {0x21}, {0x30}, {0xFF}, {0xFF} - }, { // LEADERS - {0x0C}, {0x30}, {0x33}, {0xFF}, {0xFF}, {0xFF} - }, { // BATTLE ROOM - {0x00}, {0x2C}, {0x27}, {0xFF}, {0xFF}, {0xFF} - }, { // HIDDEN - {0x11}, {0x09}, {0x33}, {0xFF}, {0xFF}, {0xFF} - }, { // SECRET BASE - {0x0C}, {0x09}, {0x04}, {0x33}, {0xFF}, {0xFF} - }, { // BLEND - {0x0A}, {0x33}, {0x33}, {0xFF}, {0xFF}, {0xFF} - }, { // POKEBLOCK - {0x18}, {0x0C}, {0x1D}, {0x33}, {0xFF}, {0xFF} - }, { // MASTER - {0x00}, {0x30}, {0x33}, {0xFF}, {0xFF}, {0xFF} - }, { // RANK - {0x03}, {0x33}, {0x33}, {0xFF}, {0xFF}, {0xFF} - }, { // RIBBON - {0x11}, {0x2C}, {0x33}, {0xFF}, {0xFF}, {0xFF} - } -}; - -/*static*/ const struct BardSound BardMusic_MOVE_1[][6] = { - { // THUNDERBOLT - {0x2A}, {0x30}, {0x1A}, {0xFF}, {0xFF}, {0xFF} - }, { // IRON_TAIL - {0x12}, {0x1B}, {0x05}, {0x33}, {0xFF}, {0xFF} - }, { // ICE_BALL - {0x12}, {0x1B}, {0x33}, {0x33}, {0xFF}, {0xFF} - }, { // YAWN - {0x1B}, {0x33}, {0x33}, {0xFF}, {0xFF}, {0xFF} - }, { // LOVELY_KISS - {0x2C}, {0x2C}, {0x0C}, {0x11}, {0x33}, {0xFF} - }, { // NIGHTMARE - {0x12}, {0x05}, {0x33}, {0xFF}, {0xFF}, {0xFF} - }, { // MORNING_SUN - {0x1A}, {0x0E}, {0x2C}, {0x33}, {0xFF}, {0xFF} - }, { // VITAL_THROW - {0x12}, {0x24}, {0x18}, {0x33}, {0xFF}, {0xFF} - }, { // DIG - {0x11}, {0x33}, {0x33}, {0xFF}, {0xFF}, {0xFF} - }, { // THRASH - {0x30}, {0x02}, {0x33}, {0xFF}, {0xFF}, {0xFF} - }, { // SWEET_SCENT - {0x0E}, {0x0B}, {0x33}, {0x33}, {0xFF}, {0xFF} - }, { // CHARM - {0x15}, {0x33}, {0x33}, {0xFF}, {0xFF}, {0xFF} - }, { // RAIN_DANCE - {0x03}, {0x00}, {0x33}, {0xFF}, {0xFF}, {0xFF} - }, { // CONFUSE_RAY - {0x1B}, {0x2D}, {0x03}, {0x33}, {0xFF}, {0xFF} - }, { // HAIL - {0x05}, {0x33}, {0x33}, {0xFF}, {0xFF}, {0xFF} - }, { // AROMATHERAPY - {0x2A}, {0x18}, {0x2C}, {0x00}, {0x1B}, {0x0E} - }, { // BUBBLE - {0x2C}, {0x24}, {0x33}, {0xFF}, {0xFF}, {0xFF} - }, { // ENCORE - {0x1B}, {0x18}, {0x33}, {0xFF}, {0xFF}, {0xFF} - }, { // CUT - {0x2A}, {0x33}, {0x33}, {0xFF}, {0xFF}, {0xFF} - }, { // RAGE - {0x03}, {0x33}, {0x33}, {0xFF}, {0xFF}, {0xFF} - }, { // SUPER_FANG - {0x27}, {0x30}, {0x01}, {0x33}, {0xFF}, {0xFF} - }, { // PAIN_SPLIT - {0x03}, {0x0F}, {0x33}, {0xFF}, {0xFF}, {0xFF} - }, { // TORMENT - {0x18}, {0x09}, {0x33}, {0xFF}, {0xFF}, {0xFF} - }, { // STRING_SHOT - {0x32}, {0x0C}, {0x1B}, {0xFF}, {0xFF}, {0xFF} - }, { // SWAGGER - {0x02}, {0x30}, {0x33}, {0xFF}, {0xFF}, {0xFF} - }, { // SNORE - {0x18}, {0x33}, {0x33}, {0xFF}, {0xFF}, {0xFF} - }, { // HEAL_BELL - {0x0E}, {0x0A}, {0x33}, {0x33}, {0xFF}, {0xFF} - }, { // SCREECH - {0x30}, {0x0D}, {0x33}, {0xFF}, {0xFF}, {0xFF} - }, { // ROCK_THROW - {0x1B}, {0x18}, {0x33}, {0xFF}, {0xFF}, {0xFF} - }, { // ROCK_SMASH - {0x1B}, {0x00}, {0x33}, {0xFF}, {0xFF}, {0xFF} - }, { // ROCK_SLIDE - {0x1B}, {0x12}, {0x33}, {0xFF}, {0xFF}, {0xFF} - }, { // WEATHER_BALL - {0x09}, {0x30}, {0x1B}, {0x33}, {0xFF}, {0xFF} - }, { // WHIRLPOOL - {0x30}, {0x27}, {0x33}, {0xFF}, {0xFF}, {0xFF} - }, { // FAKE_TEARS - {0x03}, {0x0E}, {0x33}, {0xFF}, {0xFF}, {0xFF} - }, { // SING - {0x0C}, {0x33}, {0x33}, {0xFF}, {0xFF}, {0xFF} - }, { // SPITE - {0x12}, {0x33}, {0x33}, {0xFF}, {0xFF}, {0xFF} - }, { // AIR_CUTTER - {0x05}, {0x2A}, {0x30}, {0x33}, {0xFF}, {0xFF} - }, { // AEROBLAST - {0x05}, {0x18}, {0x00}, {0x33}, {0xFF}, {0xFF} - }, { // SMOKESCREEN - {0x1A}, {0x0E}, {0x33}, {0xFF}, {0xFF}, {0xFF} - }, { // PURSUIT - {0x30}, {0x27}, {0x33}, {0xFF}, {0xFF}, {0xFF} - }, { // DOUBLE_SLAP - {0x2A}, {0x0A}, {0x02}, {0xFF}, {0xFF}, {0xFF} - }, { // MIRROR_MOVE - {0x0C}, {0x32}, {0x29}, {0xFF}, {0xFF}, {0xFF} - }, { // OVERHEAT - {0x18}, {0x30}, {0x0C}, {0xFF}, {0xFF}, {0xFF} - }, { // AURORA_BEAM - {0x1B}, {0x1A}, {0x2C}, {0x0C}, {0x33}, {0xFF} - }, { // MEMENTO - {0x2A}, {0x09}, {0x18}, {0xFF}, {0xFF}, {0xFF} - }, { // OCTAZOOKA - {0x1B}, {0x2C}, {0x28}, {0x2C}, {0xFF}, {0xFF} - }, { // FLATTER - {0x00}, {0x30}, {0x33}, {0xFF}, {0xFF}, {0xFF} - }, { // ASTONISH - {0x2A}, {0x1B}, {0x11}, {0xFF}, {0xFF}, {0xFF} - }, { // WILL_O_WISP - {0x11}, {0x18}, {0x11}, {0xFF}, {0xFF}, {0xFF} - }, { // RETURN - {0x0C}, {0x30}, {0x33}, {0xFF}, {0xFF}, {0xFF} - }, { // GRUDGE - {0x2B}, {0x33}, {0x33}, {0xFF}, {0xFF}, {0xFF} - }, { // STRENGTH - {0x32}, {0x03}, {0x33}, {0xFF}, {0xFF}, {0xFF} - }, { // COUNTER - {0x21}, {0x30}, {0x33}, {0xFF}, {0xFF}, {0xFF} - }, { // FLAME_WHEEL - {0x03}, {0x0E}, {0x33}, {0x33}, {0xFF}, {0xFF} - }, { // FLAMETHROWER - {0x00}, {0x1A}, {0x30}, {0xFF}, {0xFF}, {0xFF} - }, { // ODOR_SLEUTH - {0x18}, {0x30}, {0x27}, {0x33}, {0xFF}, {0xFF} - }, { // SHARPEN - {0x1B}, {0x09}, {0x33}, {0xFF}, {0xFF}, {0xFF} - }, { // DOUBLE_TEAM - {0x2C}, {0x2C}, {0x0C}, {0xFF}, {0xFF}, {0xFF} - }, { // GUST - {0x2C}, {0x33}, {0x33}, {0xFF}, {0xFF}, {0xFF} - }, { // HARDEN - {0x1B}, {0x09}, {0x33}, {0xFF}, {0xFF}, {0xFF} - }, { // DISABLE - {0x11}, {0x03}, {0x24}, {0xFF}, {0xFF}, {0xFF} - }, { // RAZOR_WIND - {0x05}, {0x30}, {0x0F}, {0x33}, {0xFF}, {0xFF} - }, { // BIDE - {0x0B}, {0x32}, {0x33}, {0xFF}, {0xFF}, {0xFF} - }, { // CRUNCH - {0x30}, {0x2A}, {0x33}, {0xFF}, {0xFF}, {0xFF} - }, { // BITE - {0x12}, {0x33}, {0x33}, {0xFF}, {0xFF}, {0xFF} - }, { // THUNDER - {0x2A}, {0x30}, {0x33}, {0xFF}, {0xFF}, {0xFF} - }, { // THUNDER_PUNCH - {0x2A}, {0x30}, {0x2C}, {0xFF}, {0xFF}, {0xFF} - }, { // ENDEAVOR - {0x09}, {0x09}, {0x30}, {0xFF}, {0xFF}, {0xFF} - }, { // FACADE - {0x2C}, {0x1B}, {0x33}, {0xFF}, {0xFF}, {0xFF} - }, { // KARATE_CHOP - {0x2C}, {0x1D}, {0x0E}, {0x1D}, {0xFF}, {0xFF} - }, { // CLAMP - {0x00}, {0x33}, {0x33}, {0xFF}, {0xFF}, {0xFF} - }, { // WITHDRAW - {0x11}, {0x1B}, {0x33}, {0xFF}, {0xFF}, {0xFF} - }, { // CONSTRICT - {0x1B}, {0x11}, {0x33}, {0xFF}, {0xFF}, {0xFF} - }, { // BRICK_BREAK - {0x11}, {0x05}, {0x33}, {0xFF}, {0xFF}, {0xFF} - }, { // ROCK_TOMB - {0x1B}, {0x27}, {0x33}, {0xFF}, {0xFF}, {0xFF} - }, { // FOCUS_ENERGY - {0x1A}, {0x2C}, {0x0B}, {0x30}, {0x0C}, {0xFF} - }, { // FOCUS_PUNCH - {0x18}, {0x2C}, {0x2C}, {0xFF}, {0xFF}, {0xFF} - }, { // GIGA_DRAIN - {0x11}, {0x2A}, {0x03}, {0x33}, {0xFF}, {0xFF} - }, { // REVERSAL - {0x0C}, {0x30}, {0x24}, {0xFF}, {0xFF}, {0xFF} - }, { // SMELLING_SALT - {0x09}, {0x0C}, {0x1B}, {0xFF}, {0xFF}, {0xFF} - }, { // SPORE - {0x1A}, {0x33}, {0x33}, {0xFF}, {0xFF}, {0xFF} - }, { // LEECH_LIFE - {0x0C}, {0x12}, {0x33}, {0x33}, {0xFF}, {0xFF} - }, { // SLASH - {0x00}, {0x33}, {0x33}, {0xFF}, {0xFF}, {0xFF} - }, { // SILVER_WIND - {0x11}, {0x30}, {0x0F}, {0xFF}, {0xFF}, {0xFF} - }, { // METAL_SOUND - {0x09}, {0x1B}, {0x21}, {0xFF}, {0xFF}, {0xFF} - }, { // GRASS_WHISTLE - {0x00}, {0x11}, {0x24}, {0xFF}, {0xFF}, {0xFF} - }, { // TICKLE - {0x11}, {0x24}, {0x33}, {0xFF}, {0xFF}, {0xFF} - }, { // SPIDER_WEB - {0x12}, {0x30}, {0x09}, {0xFF}, {0xFF}, {0xFF} - }, { // CRABHAMMER - {0x02}, {0x00}, {0x30}, {0x33}, {0xFF}, {0xFF} - }, { // HAZE - {0x03}, {0x33}, {0x33}, {0xFF}, {0xFF}, {0xFF} - }, { // MEAN_LOOK - {0x0C}, {0x24}, {0x33}, {0xFF}, {0xFF}, {0xFF} - }, { // CROSS_CHOP - {0x1B}, {0x1D}, {0x33}, {0xFF}, {0xFF}, {0xFF} - }, { // OUTRAGE - {0x21}, {0x03}, {0x33}, {0xFF}, {0xFF}, {0xFF} - }, { // LOW_KICK - {0x18}, {0x11}, {0x33}, {0xFF}, {0xFF}, {0xFF} - }, { // ANCIENT_POWER - {0x03}, {0x0C}, {0x21}, {0x32}, {0x33}, {0xFF} - }, { // SYNTHESIS - {0x0F}, {0x2A}, {0x0F}, {0xFF}, {0xFF}, {0xFF} - }, { // AGILITY - {0x2A}, {0x11}, {0x11}, {0x0E}, {0xFF}, {0xFF} - }, { // RAPID_SPIN - {0x00}, {0x0F}, {0x0F}, {0xFF}, {0xFF}, {0xFF} - }, { // ICY_WIND - {0x12}, {0x0C}, {0x0F}, {0xFF}, {0xFF}, {0xFF} - }, { // MIND_READER - {0x12}, {0x0C}, {0x30}, {0xFF}, {0xFF}, {0xFF} - }, { // COSMIC_POWER - {0x1B}, {0x11}, {0x21}, {0x30}, {0xFF}, {0xFF} - }, { // SKY_ATTACK - {0x12}, {0x2A}, {0x00}, {0xFF}, {0xFF}, {0xFF} - }, { // POWDER_SNOW - {0x21}, {0x30}, {0x18}, {0xFF}, {0xFF}, {0xFF} - }, { // FOLLOW_ME - {0x15}, {0x18}, {0x0C}, {0x33}, {0xFF}, {0xFF} - }, { // METEOR_MASH - {0x0C}, {0x0C}, {0x18}, {0x00}, {0x33}, {0x33} - }, { // ENDURE - {0x09}, {0x30}, {0x33}, {0xFF}, {0xFF}, {0xFF} - }, { // ROLLOUT - {0x1A}, {0x21}, {0x33}, {0xFF}, {0xFF}, {0xFF} - }, { // SCARY_FACE - {0x03}, {0x0C}, {0x03}, {0xFF}, {0xFF}, {0xFF} - }, { // PSYBEAM - {0x12}, {0x0C}, {0x33}, {0xFF}, {0xFF}, {0xFF} - }, { // PSYWAVE - {0x12}, {0x03}, {0x33}, {0xFF}, {0xFF}, {0xFF} - }, { // PSYCHIC - {0x12}, {0x0F}, {0x33}, {0xFF}, {0xFF}, {0xFF} - }, { // HYPNOSIS - {0x11}, {0x18}, {0x11}, {0xFF}, {0xFF}, {0xFF} - }, { // UPROAR - {0x2C}, {0x1A}, {0x33}, {0xFF}, {0xFF}, {0xFF} - }, { // WATER_SPOUT - {0x1B}, {0x30}, {0x21}, {0xFF}, {0xFF}, {0xFF} - }, { // SIGNAL_BEAM - {0x11}, {0x1B}, {0x0C}, {0x33}, {0xFF}, {0xFF} - }, { // PSYCH_UP - {0x12}, {0x2A}, {0x33}, {0xFF}, {0xFF}, {0xFF} - }, { // SUBMISSION - {0x2A}, {0x11}, {0x0B}, {0xFF}, {0xFF}, {0xFF} - }, { // RECOVER - {0x0C}, {0x2C}, {0x30}, {0xFF}, {0xFF}, {0xFF} - }, { // EARTHQUAKE - {0x30}, {0x05}, {0x33}, {0xFF}, {0xFF}, {0xFF} - }, { // NATURE_POWER - {0x03}, {0x30}, {0x21}, {0x30}, {0xFF}, {0xFF} - }, { // LICK - {0x11}, {0x33}, {0x33}, {0xFF}, {0xFF}, {0xFF} - }, { // FLAIL - {0x05}, {0x2A}, {0x33}, {0xFF}, {0xFF}, {0xFF} - }, { // TAIL_WHIP - {0x05}, {0x11}, {0x33}, {0xFF}, {0xFF}, {0xFF} - }, { // SELF_DESTRUCT - {0x09}, {0x0C}, {0x2A}, {0x33}, {0xFF}, {0xFF} - }, { // STUN_SPORE - {0x2C}, {0x1A}, {0x33}, {0x33}, {0xFF}, {0xFF} - }, { // BIND - {0x14}, {0x33}, {0x33}, {0xFF}, {0xFF}, {0xFF} - }, { // SHADOW_PUNCH - {0x00}, {0x18}, {0x2C}, {0xFF}, {0xFF}, {0xFF} - }, { // SHADOW_BALL - {0x00}, {0x18}, {0x1B}, {0xFF}, {0xFF}, {0xFF} - }, { // CHARGE - {0x1B}, {0x33}, {0x33}, {0xFF}, {0xFF}, {0xFF} - }, { // MIST - {0x11}, {0x33}, {0x33}, {0xFF}, {0xFF}, {0xFF} - }, { // FISSURE - {0x11}, {0x32}, {0x33}, {0xFF}, {0xFF}, {0xFF} - }, { // EXTREME_SPEED - {0x09}, {0x0C}, {0x0C}, {0x33}, {0xFF}, {0xFF} - }, { // EXTRASENSORY - {0x09}, {0x2A}, {0x09}, {0x18}, {0x0C}, {0xFF} - }, { // SAFEGUARD - {0x03}, {0x1B}, {0x33}, {0x33}, {0xFF}, {0xFF} - }, { // ABSORB - {0x2A}, {0x1A}, {0x33}, {0xFF}, {0xFF}, {0xFF} - }, { // SKY_UPPERCUT - {0x12}, {0x2C}, {0x30}, {0x2A}, {0xFF}, {0xFF} - }, { // SKILL_SWAP - {0x11}, {0x1B}, {0x33}, {0xFF}, {0xFF}, {0xFF} - }, { // SKETCH - {0x09}, {0x33}, {0x33}, {0xFF}, {0xFF}, {0xFF} - }, { // HEADBUTT - {0x09}, {0x2A}, {0x33}, {0xFF}, {0xFF}, {0xFF} - }, { // DOUBLE_EDGE - {0x2C}, {0x24}, {0x0A}, {0xFF}, {0xFF}, {0xFF} - }, { // SANDSTORM - {0x00}, {0x1A}, {0x33}, {0xFF}, {0xFF}, {0xFF} - }, { // SAND_ATTACK - {0x00}, {0x2A}, {0x00}, {0xFF}, {0xFF}, {0xFF} - }, { // SAND_TOMB - {0x00}, {0x27}, {0x33}, {0xFF}, {0xFF}, {0xFF} - }, { // SPARK - {0x1B}, {0x33}, {0x33}, {0xFF}, {0xFF}, {0xFF} - }, { // SWIFT - {0x11}, {0x33}, {0x33}, {0xFF}, {0xFF}, {0xFF} - }, { // KINESIS - {0x0F}, {0x0C}, {0x11}, {0xFF}, {0xFF}, {0xFF} - }, { // SMOG - {0x1B}, {0x33}, {0x33}, {0xFF}, {0xFF}, {0xFF} - }, { // GROWTH - {0x30}, {0x18}, {0x33}, {0xFF}, {0xFF}, {0xFF} - }, { // SACRED_FIRE - {0x03}, {0x11}, {0x12}, {0x30}, {0x33}, {0xFF} - }, { // SHEER_COLD - {0x0E}, {0x30}, {0x18}, {0xFF}, {0xFF}, {0xFF} - }, { // SOLAR_BEAM - {0x18}, {0x30}, {0x0C}, {0x33}, {0xFF}, {0xFF} - }, { // SONIC_BOOM - {0x1B}, {0x11}, {0x27}, {0x33}, {0xFF}, {0xFF} - }, { // FLY - {0x12}, {0x33}, {0x33}, {0xFF}, {0xFF}, {0xFF} - } -}; - -/*static*/ const struct BardSound BardMusic_MOVE_2[][6] = { - { // TACKLE - {0x00}, {0x24}, {0x33}, {0xFF}, {0xFF}, {0xFF} - }, { // EXPLOSION - {0x09}, {0x18}, {0x2C}, {0x33}, {0x33}, {0xFF} - }, { // DIVE - {0x12}, {0x33}, {0x33}, {0xFF}, {0xFF}, {0xFF} - }, { // FIRE_BLAST - {0x12}, {0x30}, {0x00}, {0x33}, {0xFF}, {0xFF} - }, { // WATERFALL - {0x1D}, {0x30}, {0x1D}, {0x33}, {0xFF}, {0xFF} - }, { // MUDDY_WATER - {0x2A}, {0x0C}, {0x1B}, {0x30}, {0xFF}, {0xFF} - }, { // STOCKPILE - {0x1B}, {0x14}, {0x33}, {0xFF}, {0xFF}, {0xFF} - }, { // SLAM - {0x00}, {0x33}, {0x33}, {0xFF}, {0xFF}, {0xFF} - }, { // TWISTER - {0x11}, {0x30}, {0x33}, {0xFF}, {0xFF}, {0xFF} - }, { // BULLET_SEED - {0x2A}, {0x09}, {0x0C}, {0x33}, {0xFF}, {0xFF} - }, { // TWINEEDLE - {0x0F}, {0x0C}, {0x24}, {0xFF}, {0xFF}, {0xFF} - }, { // SOFT_BOILED - {0x1B}, {0x1E}, {0x0B}, {0x33}, {0xFF}, {0xFF} - }, { // EGG_BOMB - {0x09}, {0x1B}, {0x33}, {0xFF}, {0xFF}, {0xFF} - }, { // FAINT_ATTACK - {0x03}, {0x2A}, {0x00}, {0xFF}, {0xFF}, {0xFF} - }, { // BARRAGE - {0x30}, {0x1B}, {0x33}, {0xFF}, {0xFF}, {0xFF} - }, { // MINIMIZE - {0x0F}, {0x0F}, {0x12}, {0x33}, {0xFF}, {0xFF} - }, { // SEISMIC_TOSS - {0x12}, {0x11}, {0x1B}, {0x33}, {0xFF}, {0xFF} - }, { // SUPERSONIC - {0x27}, {0x30}, {0x1B}, {0x11}, {0xFF}, {0xFF} - }, { // TAUNT - {0x1B}, {0x33}, {0x33}, {0xFF}, {0xFF}, {0xFF} - }, { // MOONLIGHT - {0x27}, {0x12}, {0x33}, {0xFF}, {0xFF}, {0xFF} - }, { // PECK - {0x09}, {0x33}, {0x33}, {0xFF}, {0xFF}, {0xFF} - }, { // ARM_THRUST - {0x1B}, {0x2C}, {0x33}, {0xFF}, {0xFF}, {0xFF} - }, { // HORN_ATTACK - {0x18}, {0x2A}, {0x00}, {0xFF}, {0xFF}, {0xFF} - }, { // HORN_DRILL - {0x18}, {0x11}, {0x33}, {0xFF}, {0xFF}, {0xFF} - }, { // WING_ATTACK - {0x0C}, {0x2A}, {0x00}, {0xFF}, {0xFF}, {0xFF} - }, { // AERIAL_ACE - {0x03}, {0x0C}, {0x2A}, {0x03}, {0xFF}, {0xFF} - }, { // SWORDS_DANCE - {0x1A}, {0x30}, {0x01}, {0x33}, {0xFF}, {0xFF} - }, { // VINE_WHIP - {0x12}, {0x11}, {0x33}, {0xFF}, {0xFF}, {0xFF} - }, { // CONVERSION - {0x2A}, {0x30}, {0x2C}, {0x33}, {0xFF}, {0xFF} - }, { // CONVERSION_2 - {0x2A}, {0x30}, {0x2C}, {0x27}, {0x33}, {0xFF} - }, { // HELPING_HAND - {0x09}, {0x0C}, {0x00}, {0x33}, {0xFF}, {0xFF} - }, { // IRON_DEFENSE - {0x12}, {0x1B}, {0x0C}, {0x09}, {0xFF}, {0xFF} - }, { // TELEPORT - {0x09}, {0x0C}, {0x1A}, {0x33}, {0xFF}, {0xFF} - }, { // THUNDER_SHOCK - {0x2A}, {0x30}, {0x1B}, {0xFF}, {0xFF}, {0xFF} - }, { // SHOCK_WAVE - {0x1B}, {0x03}, {0x33}, {0xFF}, {0xFF}, {0xFF} - }, { // QUICK_ATTACK - {0x27}, {0x11}, {0x2A}, {0x00}, {0xFF}, {0xFF} - }, { // SWEET_KISS - {0x0E}, {0x11}, {0x33}, {0x33}, {0xFF}, {0xFF} - }, { // THUNDER_WAVE - {0x2A}, {0x30}, {0x05}, {0x33}, {0xFF}, {0xFF} - }, { // ZAP_CANNON - {0x00}, {0x01}, {0x2C}, {0x33}, {0xFF}, {0xFF} - }, { // BLOCK - {0x1B}, {0x33}, {0x33}, {0xFF}, {0xFF}, {0xFF} - }, { // HOWL - {0x21}, {0x33}, {0x33}, {0xFF}, {0xFF}, {0xFF} - }, { // POISON_GAS - {0x1E}, {0x1B}, {0x00}, {0x33}, {0xFF}, {0xFF} - }, { // TOXIC - {0x1B}, {0x11}, {0x33}, {0xFF}, {0xFF}, {0xFF} - }, { // POISON_FANG - {0x1E}, {0x2A}, {0x00}, {0xFF}, {0xFF}, {0xFF} - }, { // POISON_POWDER - {0x1E}, {0x2C}, {0x21}, {0x30}, {0xFF}, {0xFF} - }, { // POISON_STING - {0x1E}, {0x2C}, {0x0E}, {0x33}, {0xFF}, {0xFF} - }, { // SPIKE_CANNON - {0x14}, {0x00}, {0x1D}, {0xFF}, {0xFF}, {0xFF} - }, { // ACID_ARMOR - {0x00}, {0x11}, {0x1B}, {0x30}, {0xFF}, {0xFF} - }, { // TAKE_DOWN - {0x03}, {0x23}, {0x33}, {0xFF}, {0xFF}, {0xFF} - }, { // JUMP_KICK - {0x2C}, {0x11}, {0x33}, {0xFF}, {0xFF}, {0xFF} - }, { // BOUNCE - {0x21}, {0x33}, {0x33}, {0xFF}, {0xFF}, {0xFF} - }, { // HI_JUMP_KICK - {0x12}, {0x2C}, {0x11}, {0x33}, {0xFF}, {0xFF} - }, { // TRI_ATTACK - {0x12}, {0x2A}, {0x00}, {0xFF}, {0xFF}, {0xFF} - }, { // DRAGON_CLAW - {0x00}, {0x1B}, {0x1D}, {0xFF}, {0xFF}, {0xFF} - }, { // TRICK - {0x11}, {0x33}, {0x33}, {0xFF}, {0xFF}, {0xFF} - }, { // TRIPLE_KICK - {0x11}, {0x24}, {0x11}, {0xFF}, {0xFF}, {0xFF} - }, { // DRILL_PECK - {0x11}, {0x0B}, {0x33}, {0xFF}, {0xFF}, {0xFF} - }, { // MUD_SPORT - {0x2A}, {0x18}, {0x30}, {0xFF}, {0xFF}, {0xFF} - }, { // MUD_SLAP - {0x2C}, {0x00}, {0x33}, {0xFF}, {0xFF}, {0xFF} - }, { // THIEF - {0x0C}, {0x33}, {0x33}, {0xFF}, {0xFF}, {0xFF} - }, { // AMNESIA - {0x02}, {0x0E}, {0x2C}, {0x33}, {0xFF}, {0xFF} - }, { // NIGHT_SHADE - {0x12}, {0x05}, {0x33}, {0xFF}, {0xFF}, {0xFF} - }, { // GROWL - {0x21}, {0x33}, {0x33}, {0xFF}, {0xFF}, {0xFF} - }, { // SLACK_OFF - {0x00}, {0x1B}, {0x33}, {0xFF}, {0xFF}, {0xFF} - }, { // SURF - {0x30}, {0x33}, {0x33}, {0xFF}, {0xFF}, {0xFF} - }, { // ROLE_PLAY - {0x18}, {0x03}, {0x33}, {0xFF}, {0xFF}, {0xFF} - }, { // NEEDLE_ARM - {0x0C}, {0x2A}, {0x1D}, {0xFF}, {0xFF}, {0xFF} - }, { // DOUBLE_KICK - {0x2A}, {0x2C}, {0x11}, {0xFF}, {0xFF}, {0xFF} - }, { // SUNNY_DAY - {0x2A}, {0x0E}, {0x05}, {0xFF}, {0xFF}, {0xFF} - }, { // LEER - {0x0E}, {0x30}, {0x33}, {0xFF}, {0xFF}, {0xFF} - }, { // WISH - {0x0F}, {0x33}, {0x33}, {0xFF}, {0xFF}, {0xFF} - }, { // FAKE_OUT - {0x03}, {0x21}, {0x33}, {0xFF}, {0xFF}, {0xFF} - }, { // SLEEP_TALK - {0x0E}, {0x1D}, {0x33}, {0x33}, {0xFF}, {0xFF} - }, { // PAY_DAY - {0x05}, {0x05}, {0x33}, {0xFF}, {0xFF}, {0xFF} - }, { // ASSIST - {0x2A}, {0x11}, {0x33}, {0xFF}, {0xFF}, {0xFF} - }, { // HEAT_WAVE - {0x0C}, {0x03}, {0x33}, {0xFF}, {0xFF}, {0xFF} - }, { // SLEEP_POWDER - {0x0C}, {0x21}, {0x30}, {0xFF}, {0xFF}, {0xFF} - }, { // REST - {0x09}, {0x33}, {0x33}, {0xFF}, {0xFF}, {0xFF} - }, { // INGRAIN - {0x0F}, {0x03}, {0x33}, {0xFF}, {0xFF}, {0xFF} - }, { // CONFUSION - {0x2C}, {0x29}, {0x2C}, {0x33}, {0xFF}, {0xFF} - }, { // BODY_SLAM - {0x1D}, {0x0C}, {0x02}, {0xFF}, {0xFF}, {0xFF} - }, { // SWALLOW - {0x1B}, {0x18}, {0x33}, {0xFF}, {0xFF}, {0xFF} - }, { // CURSE - {0x30}, {0x33}, {0x33}, {0xFF}, {0xFF}, {0xFF} - }, { // HYDRO_PUMP - {0x12}, {0x18}, {0x2A}, {0xFF}, {0xFF}, {0xFF} - }, { // HYPER_VOICE - {0x12}, {0x30}, {0x1E}, {0xFF}, {0xFF}, {0xFF} - }, { // HYPER_BEAM - {0x12}, {0x30}, {0x0C}, {0x33}, {0xFF}, {0xFF} - }, { // SUPERPOWER - {0x27}, {0x30}, {0x21}, {0x30}, {0xFF}, {0xFF} - }, { // STEEL_WING - {0x0E}, {0x0D}, {0x33}, {0xFF}, {0xFF}, {0xFF} - }, { // SPIT_UP - {0x11}, {0x2A}, {0x33}, {0xFF}, {0xFF}, {0xFF} - }, { // DYNAMIC_PUNCH - {0x12}, {0x00}, {0x11}, {0x2C}, {0xFF}, {0xFF} - }, { // GUILLOTINE - {0x0C}, {0x2C}, {0x0E}, {0x33}, {0xFF}, {0xFF} - }, { // VICE_GRIP - {0x14}, {0x11}, {0x33}, {0xFF}, {0xFF}, {0xFF} - }, { // KNOCK_OFF - {0x1B}, {0x1D}, {0x33}, {0xFF}, {0xFF}, {0xFF} - }, { // POUND - {0x21}, {0x33}, {0x33}, {0xFF}, {0xFF}, {0xFF} - }, { // RAZOR_LEAF - {0x05}, {0x30}, {0x0C}, {0xFF}, {0xFF}, {0xFF} - }, { // BATON_PASS - {0x2A}, {0x1B}, {0x00}, {0x33}, {0xFF}, {0xFF} - }, { // PETAL_DANCE - {0x09}, {0x2C}, {0x02}, {0x33}, {0xFF}, {0xFF} - }, { // SPLASH - {0x00}, {0x33}, {0x33}, {0xFF}, {0xFF}, {0xFF} - }, { // BUBBLE_BEAM - {0x2A}, {0x24}, {0x0C}, {0x33}, {0xFF}, {0xFF} - }, { // BELLY_DRUM - {0x09}, {0x0C}, {0x2A}, {0x33}, {0xFF}, {0xFF} - }, { // BARRIER - {0x05}, {0x0E}, {0x30}, {0xFF}, {0xFF}, {0xFF} - }, { // LIGHT_SCREEN - {0x12}, {0x0C}, {0x33}, {0x33}, {0xFF}, {0xFF} - }, { // SCRATCH - {0x00}, {0x33}, {0x33}, {0xFF}, {0xFF}, {0xFF} - }, { // HYPER_FANG - {0x12}, {0x30}, {0x00}, {0xFF}, {0xFF}, {0xFF} - }, { // EMBER - {0x09}, {0x30}, {0x33}, {0xFF}, {0xFF}, {0xFF} - }, { // SECRET_POWER - {0x0C}, {0x09}, {0x21}, {0x30}, {0xFF}, {0xFF} - }, { // DIZZY_PUNCH - {0x11}, {0x0E}, {0x2C}, {0xFF}, {0xFF}, {0xFF} - }, { // BULK_UP - {0x2C}, {0x2C}, {0x33}, {0xFF}, {0xFF}, {0xFF} - }, { // IMPRISON - {0x0F}, {0x0F}, {0x2C}, {0x33}, {0xFF}, {0xFF} - }, { // FEATHER_DANCE - {0x09}, {0x30}, {0x00}, {0xFF}, {0xFF}, {0xFF} - }, { // WHIRLWIND - {0x2C}, {0x1D}, {0x0E}, {0x1D}, {0xFF}, {0xFF} - }, { // BEAT_UP - {0x0C}, {0x2C}, {0x33}, {0xFF}, {0xFF}, {0xFF} - }, { // BLIZZARD - {0x0F}, {0x32}, {0x33}, {0xFF}, {0xFF}, {0xFF} - }, { // STOMP - {0x1D}, {0x33}, {0x33}, {0xFF}, {0xFF}, {0xFF} - }, { // FLASH - {0x00}, {0x33}, {0x33}, {0xFF}, {0xFF}, {0xFF} - }, { // TEETER_DANCE - {0x0C}, {0x30}, {0x00}, {0xFF}, {0xFF}, {0xFF} - }, { // CRUSH_CLAW - {0x2C}, {0x1B}, {0x33}, {0xFF}, {0xFF}, {0xFF} - }, { // BLAZE_KICK - {0x05}, {0x11}, {0x33}, {0xFF}, {0xFF}, {0xFF} - }, { // PRESENT - {0x09}, {0x09}, {0x33}, {0xFF}, {0xFF}, {0xFF} - }, { // ERUPTION - {0x0C}, {0x2C}, {0x1D}, {0x33}, {0xFF}, {0xFF} - }, { // SLUDGE - {0x2C}, {0x33}, {0x33}, {0xFF}, {0xFF}, {0xFF} - }, { // SLUDGE_BOMB - {0x2B}, {0x1B}, {0x33}, {0xFF}, {0xFF}, {0xFF} - }, { // GLARE - {0x05}, {0x30}, {0x33}, {0xFF}, {0xFF}, {0xFF} - }, { // TRANSFORM - {0x00}, {0x1A}, {0x33}, {0x33}, {0xFF}, {0xFF} - }, { // POISON_TAIL - {0x1E}, {0x2C}, {0x05}, {0x33}, {0xFF}, {0xFF} - }, { // ROAR - {0x1A}, {0x30}, {0x33}, {0xFF}, {0xFF}, {0xFF} - }, { // BONE_RUSH - {0x18}, {0x2C}, {0x33}, {0xFF}, {0xFF}, {0xFF} - }, { // CAMOUFLAGE - {0x00}, {0x18}, {0x1B}, {0x33}, {0xFF}, {0xFF} - }, { // COVET - {0x2A}, {0x09}, {0x33}, {0xFF}, {0xFF}, {0xFF} - }, { // TAIL_GLOW - {0x04}, {0x1A}, {0x33}, {0x33}, {0xFF}, {0xFF} - }, { // BONE_CLUB - {0x18}, {0x2C}, {0x33}, {0xFF}, {0xFF}, {0xFF} - }, { // BONEMERANG - {0x18}, {0x30}, {0x00}, {0x33}, {0xFF}, {0xFF} - }, { // FIRE_SPIN - {0x12}, {0x30}, {0x0F}, {0x33}, {0xFF}, {0xFF} - }, { // FIRE_PUNCH - {0x12}, {0x30}, {0x2A}, {0xFF}, {0xFF}, {0xFF} - }, { // PERISH_SONG - {0x09}, {0x11}, {0x1B}, {0x33}, {0xFF}, {0xFF} - }, { // WRAP - {0x00}, {0x33}, {0x33}, {0xFF}, {0xFF}, {0xFF} - }, { // SPIKES - {0x12}, {0x33}, {0x33}, {0xFF}, {0xFF}, {0xFF} - }, { // MAGNITUDE - {0x00}, {0x0F}, {0x27}, {0xFF}, {0xFF}, {0xFF} - }, { // MAGICAL_LEAF - {0x00}, {0x11}, {0x24}, {0x0C}, {0x33}, {0xFF} - }, { // MAGIC_COAT - {0x00}, {0x11}, {0x18}, {0xFF}, {0xFF}, {0xFF} - }, { // MUD_SHOT - {0x2C}, {0x1D}, {0x33}, {0xFF}, {0xFF}, {0xFF} - }, { // MACH_PUNCH - {0x1B}, {0x2C}, {0x33}, {0xFF}, {0xFF}, {0xFF} - }, { // PROTECT - {0x18}, {0x09}, {0x33}, {0xFF}, {0xFF}, {0xFF} - }, { // DEFENSE_CURL - {0x0E}, {0x0B}, {0x32}, {0xFF}, {0xFF}, {0xFF} - }, { // ROLLING_KICK - {0x18}, {0x0C}, {0x11}, {0xFF}, {0xFF}, {0xFF} - }, { // SUBSTITUTE - {0x2A}, {0x11}, {0x27}, {0xFF}, {0xFF}, {0xFF} - }, { // DETECT - {0x0C}, {0x09}, {0x33}, {0xFF}, {0xFF}, {0xFF} - }, { // PIN_MISSILE - {0x0F}, {0x11}, {0x24}, {0xFF}, {0xFF}, {0xFF} - }, { // WATER_SPORT - {0x1B}, {0x30}, {0x1A}, {0x33}, {0xFF}, {0xFF} - }, { // WATER_GUN - {0x1D}, {0x32}, {0x2C}, {0xFF}, {0xFF}, {0xFF} - }, { // MIST_BALL - {0x11}, {0x1B}, {0x33}, {0xFF}, {0xFF}, {0xFF} - }, { // WATER_PULSE - {0x1B}, {0x30}, {0x2C}, {0x33}, {0xFF}, {0xFF} - }, { // FURY_ATTACK - {0x30}, {0x0C}, {0x2A}, {0x02}, {0xFF}, {0xFF} - }, { // FURY_SWIPES - {0x30}, {0x0C}, {0x12}, {0x33}, {0xFF}, {0xFF} - }, { // DESTINY_BOND - {0x09}, {0x0F}, {0x0C}, {0x1B}, {0xFF}, {0xFF} - }, { // FALSE_SWIPE - {0x1B}, {0x12}, {0x33}, {0xFF}, {0xFF}, {0xFF} - }, { // FORESIGHT - {0x1A}, {0x14}, {0x33}, {0x33}, {0xFF}, {0xFF} - }, { // MIRROR_COAT - {0x09}, {0x30}, {0x18}, {0xFF}, {0xFF}, {0xFF} - }, { // FUTURE_SIGHT - {0x27}, {0x30}, {0x12}, {0x33}, {0xFF}, {0xFF} - }, { // MILK_DRINK - {0x11}, {0x0E}, {0x33}, {0xFF}, {0xFF}, {0xFF} - }, { // CALM_MIND - {0x1B}, {0x12}, {0x33}, {0xFF}, {0xFF}, {0xFF} - }, { // MEGA_DRAIN - {0x03}, {0x2C}, {0x03}, {0x33}, {0xFF}, {0xFF} - }, { // MEGA_KICK - {0x03}, {0x2A}, {0x11}, {0xFF}, {0xFF}, {0xFF} - }, { // MEGA_PUNCH - {0x03}, {0x2A}, {0x2C}, {0xFF}, {0xFF}, {0xFF} - }, { // MEGAHORN - {0x03}, {0x2A}, {0x1A}, {0x33}, {0xFF}, {0xFF} - }, { // HIDDEN_POWER - {0x0F}, {0x09}, {0x21}, {0x30}, {0xFF}, {0xFF} - }, { // METAL_CLAW - {0x09}, {0x24}, {0x1B}, {0x33}, {0xFF}, {0xFF} - }, { // ATTRACT - {0x2A}, {0x00}, {0x33}, {0xFF}, {0xFF}, {0xFF} - }, { // MIMIC - {0x11}, {0x11}, {0x33}, {0xFF}, {0xFF}, {0xFF} - }, { // FRUSTRATION - {0x2C}, {0x03}, {0x1B}, {0x33}, {0xFF}, {0xFF} - }, { // LEECH_SEED - {0x0C}, {0x0E}, {0x33}, {0xFF}, {0xFF}, {0xFF} - }, { // METRONOME - {0x09}, {0x18}, {0x18}, {0xFF}, {0xFF}, {0xFF} - }, { // DREAM_EATER - {0x0E}, {0x0C}, {0x30}, {0x33}, {0xFF}, {0xFF} - }, { // ACID - {0x00}, {0x11}, {0x33}, {0xFF}, {0xFF}, {0xFF} - }, { // MEDITATE - {0x09}, {0x11}, {0x03}, {0x33}, {0xFF}, {0xFF} - }, { // SNATCH - {0x00}, {0xFF}, {0x33}, {0xFF}, {0xFF}, {0xFF} - }, { // LUSTER_PURGE - {0x2A}, {0x30}, {0x32}, {0xFF}, {0xFF}, {0xFF} - }, { // LEAF_BLADE - {0x0C}, {0x05}, {0x33}, {0xFF}, {0xFF}, {0xFF} - }, { // RECYCLE - {0x0C}, {0x12}, {0x24}, {0xFF}, {0xFF}, {0xFF} - }, { // REFLECT - {0x0C}, {0x09}, {0x33}, {0xFF}, {0xFF}, {0xFF} - }, { // REFRESH - {0x0C}, {0x09}, {0x33}, {0xFF}, {0xFF}, {0xFF} - }, { // REVENGE - {0x0C}, {0x09}, {0x33}, {0xFF}, {0xFF}, {0xFF} - }, { // DRAGON_RAGE - {0x00}, {0x1B}, {0x05}, {0x33}, {0x33}, {0xFF} - }, { // DRAGON_BREATH - {0x00}, {0x1B}, {0x0B}, {0x33}, {0x33}, {0xFF} - }, { // DRAGON_DANCE - {0x00}, {0x1B}, {0x00}, {0x33}, {0xFF}, {0xFF} - }, { // ICE_PUNCH - {0x2C}, {0x1D}, {0x0E}, {0x1D}, {0xFF}, {0xFF} - }, { // ICE_BEAM - {0x12}, {0x0C}, {0x33}, {0xFF}, {0xFF}, {0xFF} - }, { // FURY_CUTTER - {0x30}, {0x0C}, {0x2A}, {0x30}, {0xFF}, {0xFF} - }, { // COMET_PUNCH - {0x1D}, {0x0B}, {0x2C}, {0x33}, {0xFF}, {0xFF} - }, { // SKULL_BASH - {0x2A}, {0x33}, {0x00}, {0xFF}, {0xFF}, {0xFF} - }, { // LOCK_ON - {0x1B}, {0x1D}, {0x33}, {0xFF}, {0xFF}, {0xFF} - }, { // ROCK_BLAST - {0x1B}, {0x00}, {0x33}, {0xFF}, {0xFF}, {0xFF} - }, { // COTTON_SPORE - {0x1D}, {0x1D}, {0x1A}, {0x33}, {0xFF}, {0xFF} - }, { // STRUGGLE - {0x2A}, {0x24}, {0x33}, {0xFF}, {0xFF}, {0xFF} - } -}; - -/*static*/ const struct BardSound BardMusic_TRENDY_SAYING[][6] = { - { // KTHX, BYE. - {0x05}, {0x02}, {0x14}, {0x33}, {0xFF}, {0xFF} - }, { // YES, SIR! - {0x0B}, {0x30}, {0x33}, {0xFF}, {0xFF}, {0xFF} - }, { // AVANT GARDE - {0x1B}, {0x1B}, {0x17}, {0xFF}, {0xFF}, {0xFF} - }, { // COUPLE - {0x2C}, {0x26}, {0x33}, {0xFF}, {0xFF}, {0xFF} - }, { // MUCH OBLIGED - {0x2C}, {0x2C}, {0x12}, {0xFF}, {0xFF}, {0xFF} - }, { // YEEHAW! - {0x0D}, {0x1D}, {0x33}, {0x33}, {0xFF}, {0xFF} - }, { // MEGA - {0x05}, {0x2C}, {0x33}, {0xFF}, {0xFF}, {0xFF} - }, { // 1-HIT KO! - {0x2C}, {0x11}, {0x03}, {0x1A}, {0xFF}, {0xFF} - }, { // DESTINY - {0x0B}, {0x11}, {0x0E}, {0xFF}, {0xFF}, {0xFF} - }, { // CANCEL - {0x00}, {0x0B}, {0x33}, {0xFF}, {0xFF}, {0xFF} - }, { // NEW - {0x27}, {0x33}, {0x33}, {0xFF}, {0xFF}, {0xFF} - }, { // FLATTEN - {0x00}, {0x09}, {0x33}, {0xFF}, {0xFF}, {0xFF} - }, { // KIDDING - {0x11}, {0x0C}, {0x33}, {0xFF}, {0xFF}, {0xFF} - }, { // LOSER - {0x27}, {0x30}, {0x33}, {0xFF}, {0xFF}, {0xFF} - }, { // LOSING - {0x27}, {0x0C}, {0x33}, {0xFF}, {0xFF}, {0xFF} - }, { // HAPPENING - {0x00}, {0x2C}, {0x0E}, {0x33}, {0xFF}, {0xFF} - }, { // HIP AND - {0x11}, {0x01}, {0x33}, {0xFF}, {0xFF}, {0xFF} - }, { // SHAKE - {0x05}, {0x33}, {0x33}, {0xFF}, {0xFF}, {0xFF} - }, { // SHADY - {0x05}, {0x0C}, {0x33}, {0xFF}, {0xFF}, {0xFF} - }, { // UPBEAT - {0x2C}, {0x0E}, {0x33}, {0xFF}, {0xFF}, {0xFF} - }, { // MODERN - {0x1D}, {0x30}, {0x33}, {0xFF}, {0xFF}, {0xFF} - }, { // SMELL YA - {0x0A}, {0x2C}, {0x33}, {0xFF}, {0xFF}, {0xFF} - }, { // BANG - {0x03}, {0x33}, {0x33}, {0xFF}, {0xFF}, {0xFF} - }, { // KNOCKOUT - {0x1D}, {0x23}, {0x33}, {0xFF}, {0xFF}, {0xFF} - }, { // HASSLE - {0x2A}, {0x24}, {0x33}, {0xFF}, {0xFF}, {0xFF} - }, { // WINNER - {0x0F}, {0x30}, {0x33}, {0xFF}, {0xFF}, {0xFF} - }, { // FEVER - {0x0C}, {0x30}, {0x33}, {0xFF}, {0xFF}, {0xFF} - }, { // WANNABE - {0x1D}, {0x2C}, {0x0C}, {0xFF}, {0xFF}, {0xFF} - }, { // BABY - {0x05}, {0x0E}, {0x33}, {0xFF}, {0xFF}, {0xFF} - }, { // HEART - {0x1C}, {0x33}, {0x33}, {0xFF}, {0xFF}, {0xFF} - }, { // OLD - {0x18}, {0x33}, {0x33}, {0xFF}, {0xFF}, {0xFF} - }, { // YOUNG - {0x2B}, {0x33}, {0x33}, {0xFF}, {0xFF}, {0xFF} - }, { // UGLY - {0x2A}, {0x0E}, {0x33}, {0xFF}, {0xFF}, {0xFF} - } -}; - -/*static*/ const struct BardSound BardMusic_POKEMON_2[][6] = { - { // EKANS - {0x09}, {0x00}, {0x33}, {0xFF}, {0xFF}, {0xFF} - }, { // ARBOK - {0x06}, {0x17}, {0x33}, {0xFF}, {0xFF}, {0xFF} - }, { // SEAKING - {0x0C}, {0x0C}, {0x33}, {0xFF}, {0xFF}, {0xFF} - }, { // ARIADOS - {0x1B}, {0x0C}, {0x2A}, {0x18}, {0xFF}, {0xFF} - }, { // CROCONAW - {0x1B}, {0x18}, {0x1B}, {0xFF}, {0xFF}, {0xFF} - }, { // UNOWN - {0x2A}, {0x1A}, {0x33}, {0xFF}, {0xFF}, {0xFF} - }, { // EEVEE - {0x0C}, {0x0C}, {0x33}, {0xFF}, {0xFF}, {0xFF} - }, { // GEODUDE - {0x0C}, {0x18}, {0x27}, {0xFF}, {0xFF}, {0xFF} - }, { // SPINARAK - {0x0F}, {0x30}, {0x00}, {0xFF}, {0xFF}, {0xFF} - }, { // PILOSWINE - {0x11}, {0x1A}, {0x12}, {0x33}, {0xFF}, {0xFF} - }, { // ONIX - {0x15}, {0x11}, {0x33}, {0xFF}, {0xFF}, {0xFF} - }, { // ARCANINE - {0x06}, {0x03}, {0x12}, {0x33}, {0xFF}, {0xFF} - }, { // SUDOWOODO - {0x27}, {0x18}, {0x27}, {0x18}, {0xFF}, {0xFF} - }, { // WEEPINBELL - {0x0C}, {0x0F}, {0x0B}, {0x33}, {0xFF}, {0xFF} - }, { // VICTREEBEL - {0x11}, {0x0C}, {0x09}, {0x33}, {0xFF}, {0xFF} - }, { // WOOPER - {0x27}, {0x30}, {0x33}, {0xFF}, {0xFF}, {0xFF} - }, { // SWINUB - {0x11}, {0x2C}, {0x33}, {0xFF}, {0xFF}, {0xFF} - }, { // SKARMORY - {0x1B}, {0x1A}, {0x0C}, {0xFF}, {0xFF}, {0xFF} - }, { // AIPOM - {0x03}, {0x1B}, {0x33}, {0xFF}, {0xFF}, {0xFF} - }, { // ESPEON - {0x09}, {0x0C}, {0x1B}, {0x33}, {0xFF}, {0xFF} - }, { // HITMONCHAN - {0x11}, {0x15}, {0x00}, {0xFF}, {0xFF}, {0xFF} - }, { // ELEKID - {0x0B}, {0x0B}, {0x11}, {0x33}, {0xFF}, {0xFF} - }, { // ELECTABUZZ - {0x0C}, {0x09}, {0x2C}, {0x2C}, {0xFF}, {0xFF} - }, { // ENTEI - {0x09}, {0x03}, {0x33}, {0xFF}, {0xFF}, {0xFF} - }, { // FERALIGATR - {0x30}, {0x00}, {0x0F}, {0x03}, {0x30}, {0xFF} - }, { // FURRET - {0x30}, {0x09}, {0x33}, {0xFF}, {0xFF}, {0xFF} - }, { // OCTILLERY - {0x1B}, {0x11}, {0x30}, {0x0C}, {0xFF}, {0xFF} - }, { // PRIMEAPE - {0x12}, {0x03}, {0x33}, {0xFF}, {0xFF}, {0xFF} - }, { // SENTRET - {0x09}, {0x09}, {0x33}, {0xFF}, {0xFF}, {0xFF} - }, { // STANTLER - {0x00}, {0x30}, {0x33}, {0xFF}, {0xFF}, {0xFF} - }, { // SPEAROW - {0x0C}, {0x18}, {0x33}, {0xFF}, {0xFF}, {0xFF} - }, { // FEAROW - {0x0C}, {0x18}, {0x33}, {0xFF}, {0xFF}, {0xFF} - }, { // OMASTAR - {0x18}, {0x00}, {0x15}, {0x33}, {0xFF}, {0xFF} - }, { // OMANYTE - {0x18}, {0x00}, {0x12}, {0x33}, {0xFF}, {0xFF} - }, { // GROWLITHE - {0x21}, {0x0F}, {0x33}, {0xFF}, {0xFF}, {0xFF} - }, { // MACHAMP - {0x2A}, {0x00}, {0x33}, {0xFF}, {0xFF}, {0xFF} - }, { // DRAGONITE - {0x00}, {0x15}, {0x12}, {0xFF}, {0xFF}, {0xFF} - }, { // PINSIR - {0x11}, {0x30}, {0x33}, {0xFF}, {0xFF}, {0xFF} - }, { // SNORLAX - {0x18}, {0x00}, {0x33}, {0xFF}, {0xFF}, {0xFF} - }, { // KABUTO - {0x2A}, {0x27}, {0x1A}, {0xFF}, {0xFF}, {0xFF} - }, { // KABUTOPS - {0x2A}, {0x27}, {0x15}, {0x33}, {0xFF}, {0xFF} - }, { // HITMONTOP - {0x11}, {0x15}, {0x1D}, {0x33}, {0xFF}, {0xFF} - }, { // WARTORTLE - {0x08}, {0x30}, {0x24}, {0x33}, {0xFF}, {0xFF} - }, { // BLASTOISE - {0x00}, {0x1E}, {0x33}, {0xFF}, {0xFF}, {0xFF} - }, { // FARFETCHD - {0x06}, {0x0B}, {0x33}, {0xFF}, {0xFF}, {0xFF} - }, { // CUBONE - {0x2D}, {0x18}, {0x33}, {0xFF}, {0xFF}, {0xFF} - }, { // MAROWAK - {0x00}, {0x1A}, {0x00}, {0xFF}, {0xFF}, {0xFF} - }, { // KANGASKHAN - {0x00}, {0x00}, {0x1B}, {0x33}, {0xFF}, {0xFF} - }, { // SUNFLORA - {0x2C}, {0x18}, {0x2C}, {0xFF}, {0xFF}, {0xFF} - }, { // CATERPIE - {0x00}, {0x30}, {0x0C}, {0xFF}, {0xFF}, {0xFF} - }, { // GYARADOS - {0x1D}, {0x09}, {0x11}, {0x1D}, {0xFF}, {0xFF} - }, { // RAPIDASH - {0x00}, {0x11}, {0x00}, {0xFF}, {0xFF}, {0xFF} - }, { // NINETALES - {0x12}, {0x05}, {0x33}, {0xFF}, {0xFF}, {0xFF} - }, { // GIRAFARIG - {0x30}, {0x00}, {0x2A}, {0x11}, {0xFF}, {0xFF} - }, { // BELLOSSOM - {0x09}, {0x1B}, {0x2C}, {0x33}, {0xFF}, {0xFF} - }, { // KINGDRA - {0x0C}, {0x2A}, {0x33}, {0xFF}, {0xFF}, {0xFF} - }, { // KINGLER - {0x0C}, {0x30}, {0x33}, {0xFF}, {0xFF}, {0xFF} - }, { // GLOOM - {0x27}, {0x33}, {0x33}, {0xFF}, {0xFF}, {0xFF} - }, { // PINECO - {0x12}, {0x18}, {0x33}, {0xFF}, {0xFF}, {0xFF} - }, { // GLIGAR - {0x12}, {0x1B}, {0x33}, {0xFF}, {0xFF}, {0xFF} - }, { // KRABBY - {0x00}, {0x0C}, {0x33}, {0xFF}, {0xFF}, {0xFF} - }, { // GRANBULL - {0x02}, {0x2C}, {0x33}, {0xFF}, {0xFF}, {0xFF} - }, { // CROBAT - {0x18}, {0x00}, {0x33}, {0xFF}, {0xFF}, {0xFF} - }, { // ABRA - {0x00}, {0x2A}, {0x33}, {0xFF}, {0xFF}, {0xFF} - }, { // GENGAR - {0x09}, {0x08}, {0x33}, {0xFF}, {0xFF}, {0xFF} - }, { // TAUROS - {0x1D}, {0x1A}, {0x33}, {0xFF}, {0xFF}, {0xFF} - }, { // MAGIKARP - {0x00}, {0x11}, {0x1B}, {0xFF}, {0xFF}, {0xFF} - }, { // MAGNEMITE - {0x00}, {0x09}, {0x12}, {0xFF}, {0xFF}, {0xFF} - }, { // GASTLY - {0x00}, {0x0E}, {0x33}, {0xFF}, {0xFF}, {0xFF} - }, { // HAUNTER - {0x15}, {0x30}, {0x33}, {0xFF}, {0xFF}, {0xFF} - }, { // MACHOKE - {0x2A}, {0x1A}, {0x33}, {0xFF}, {0xFF}, {0xFF} - }, { // KAKUNA - {0x2A}, {0x27}, {0x2A}, {0xFF}, {0xFF}, {0xFF} - }, { // PSYDUCK - {0x12}, {0x2A}, {0x33}, {0xFF}, {0xFF}, {0xFF} - }, { // PHANPY - {0x00}, {0x0C}, {0x33}, {0xFF}, {0xFF}, {0xFF} - }, { // RATTATA - {0x00}, {0x00}, {0x2C}, {0xFF}, {0xFF}, {0xFF} - }, { // GOLDUCK - {0x18}, {0x2A}, {0x33}, {0xFF}, {0xFF}, {0xFF} - }, { // GOLBAT - {0x1A}, {0x00}, {0x33}, {0xFF}, {0xFF}, {0xFF} - }, { // GOLEM - {0x18}, {0x09}, {0x33}, {0xFF}, {0xFF}, {0xFF} - }, { // GRAVELER - {0x00}, {0x09}, {0x30}, {0xFF}, {0xFF}, {0xFF} - }, { // VENONAT - {0x09}, {0x1A}, {0x00}, {0xFF}, {0xFF}, {0xFF} - }, { // RHYDON - {0x12}, {0x15}, {0x33}, {0xFF}, {0xFF}, {0xFF} - }, { // RHYHORN - {0x14}, {0x1A}, {0x33}, {0xFF}, {0xFF}, {0xFF} - }, { // PUPITAR - {0x27}, {0x11}, {0x1B}, {0x33}, {0xFF}, {0xFF} - }, { // CORSOLA - {0x18}, {0x18}, {0x2A}, {0xFF}, {0xFF}, {0xFF} - }, { // HITMONLEE - {0x11}, {0x15}, {0x0C}, {0xFF}, {0xFF}, {0xFF} - }, { // ZAPDOS - {0x00}, {0x18}, {0x33}, {0xFF}, {0xFF}, {0xFF} - }, { // JOLTEON - {0x1A}, {0x0C}, {0x15}, {0xFF}, {0xFF}, {0xFF} - }, { // SANDSHREW - {0x00}, {0x27}, {0x33}, {0xFF}, {0xFF}, {0xFF} - }, { // SANDSLASH - {0x00}, {0x00}, {0x33}, {0xFF}, {0xFF}, {0xFF} - }, { // SEADRA - {0x0C}, {0x2A}, {0x33}, {0xFF}, {0xFF}, {0xFF} - }, { // SHELLDER - {0x09}, {0x30}, {0x33}, {0xFF}, {0xFF}, {0xFF} - }, { // VAPOREON - {0x03}, {0x18}, {0x0C}, {0x15}, {0xFF}, {0xFF} - }, { // DEWGONG - {0x27}, {0x15}, {0x33}, {0xFF}, {0xFF}, {0xFF} - }, { // SUICUNE - {0x0C}, {0x27}, {0x33}, {0xFF}, {0xFF}, {0xFF} - }, { // STARMIE - {0x1B}, {0x0C}, {0x33}, {0xFF}, {0xFF}, {0xFF} - }, { // SCYTHER - {0x12}, {0x30}, {0x33}, {0xFF}, {0xFF}, {0xFF} - }, { // ZUBAT - {0x27}, {0x00}, {0x33}, {0xFF}, {0xFF}, {0xFF} - }, { // BEEDRILL - {0x0C}, {0x11}, {0x33}, {0xFF}, {0xFF}, {0xFF} - }, { // HYPNO - {0x11}, {0x18}, {0x33}, {0xFF}, {0xFF}, {0xFF} - }, { // DROWZEE - {0x21}, {0x0C}, {0x33}, {0xFF}, {0xFF}, {0xFF} - }, { // SQUIRTLE - {0x30}, {0x24}, {0x33}, {0xFF}, {0xFF}, {0xFF} - }, { // CELEBI - {0x09}, {0x09}, {0x0C}, {0xFF}, {0xFF}, {0xFF} - }, { // WOBBUFFET - {0x1D}, {0x2C}, {0x09}, {0xFF}, {0xFF}, {0xFF} - }, { // DUGTRIO - {0x2C}, {0x0C}, {0x18}, {0xFF}, {0xFF}, {0xFF} - }, { // HORSEA - {0x1A}, {0x0C}, {0x33}, {0xFF}, {0xFF}, {0xFF} - }, { // EXEGGCUTE - {0x09}, {0x2C}, {0x27}, {0x33}, {0xFF}, {0xFF} - }, { // CHIKORITA - {0x11}, {0x18}, {0x0C}, {0x2A}, {0xFF}, {0xFF} - }, { // CHINCHOU - {0x0F}, {0x21}, {0x33}, {0xFF}, {0xFF}, {0xFF} - }, { // SHUCKLE - {0x2A}, {0x26}, {0x33}, {0xFF}, {0xFF}, {0xFF} - }, { // DIGLETT - {0x11}, {0x09}, {0x33}, {0xFF}, {0xFF}, {0xFF} - }, { // REMORAID - {0x09}, {0x18}, {0x03}, {0xFF}, {0xFF}, {0xFF} - }, { // DELIBIRD - {0x09}, {0x0C}, {0x30}, {0xFF}, {0xFF}, {0xFF} - }, { // HOUNDOUR - {0x23}, {0x1A}, {0x33}, {0xFF}, {0xFF}, {0xFF} - }, { // AMPHAROS - {0x00}, {0x06}, {0x18}, {0x33}, {0xFF}, {0xFF} - }, { // DODUO - {0x1A}, {0x27}, {0x18}, {0xFF}, {0xFF}, {0xFF} - }, { // DODRIO - {0x1A}, {0x0C}, {0x18}, {0xFF}, {0xFF}, {0xFF} - }, { // SMEARGLE - {0x30}, {0x26}, {0x33}, {0xFF}, {0xFF}, {0xFF} - }, { // KOFFING - {0x15}, {0x0C}, {0x33}, {0xFF}, {0xFF}, {0xFF} - }, { // TENTACRUEL - {0x09}, {0x2A}, {0x27}, {0x33}, {0xFF}, {0xFF} - }, { // TOGETIC - {0x18}, {0x09}, {0x11}, {0xFF}, {0xFF}, {0xFF} - }, { // TOGEPI - {0x18}, {0x09}, {0x0C}, {0xFF}, {0xFF}, {0xFF} - }, { // GOLDEEN - {0x1A}, {0x0C}, {0x33}, {0xFF}, {0xFF}, {0xFF} - }, { // METAPOD - {0x09}, {0x2A}, {0x15}, {0xFF}, {0xFF}, {0xFF} - }, { // DONPHAN - {0x1B}, {0x00}, {0x33}, {0xFF}, {0xFF}, {0xFF} - }, { // ODDISH - {0x15}, {0x11}, {0x33}, {0xFF}, {0xFF}, {0xFF} - }, { // EXEGGUTOR - {0x09}, {0x2C}, {0x09}, {0x32}, {0x33}, {0xFF} - }, { // NIDOKING - {0x12}, {0x18}, {0x0C}, {0xFF}, {0xFF}, {0xFF} - }, { // NIDOQUEEN - {0x12}, {0x18}, {0x0C}, {0xFF}, {0xFF}, {0xFF} - }, { // NIDORAN_F - {0x12}, {0x18}, {0x00}, {0xFF}, {0xFF}, {0xFF} - }, { // NIDORAN_M - {0x12}, {0x18}, {0x00}, {0xFF}, {0xFF}, {0xFF} - }, { // NIDORINA - {0x12}, {0x18}, {0x0C}, {0x2A}, {0xFF}, {0xFF} - }, { // NIDORINO - {0x12}, {0x18}, {0x0C}, {0x18}, {0xFF}, {0xFF} - }, { // MEOWTH - {0x0C}, {0x21}, {0x11}, {0xFF}, {0xFF}, {0xFF} - }, { // SNEASEL - {0x0C}, {0x26}, {0x33}, {0xFF}, {0xFF}, {0xFF} - }, { // POLIWHIRL - {0x15}, {0x0C}, {0x30}, {0xFF}, {0xFF}, {0xFF} - }, { // POLITOED - {0x1B}, {0x0C}, {0x18}, {0x33}, {0xFF}, {0xFF} - }, { // POLIWRATH - {0x15}, {0x0C}, {0x00}, {0xFF}, {0xFF}, {0xFF} - }, { // POLIWAG - {0x15}, {0x0C}, {0x00}, {0xFF}, {0xFF}, {0xFF} - }, { // QUAGSIRE - {0x00}, {0x12}, {0x32}, {0xFF}, {0xFF}, {0xFF} - }, { // NATU - {0x00}, {0x27}, {0x33}, {0xFF}, {0xFF}, {0xFF} - }, { // XATU - {0x00}, {0x27}, {0x33}, {0xFF}, {0xFF}, {0xFF} - }, { // DUNSPARCE - {0x2A}, {0x1C}, {0x33}, {0xFF}, {0xFF}, {0xFF} - }, { // SEEL - {0x0E}, {0x33}, {0x33}, {0xFF}, {0xFF}, {0xFF} - }, { // STEELIX - {0x0C}, {0x11}, {0x33}, {0xFF}, {0xFF}, {0xFF} - }, { // TYPHLOSION - {0x12}, {0x18}, {0x1B}, {0x33}, {0x33}, {0xFF} - }, { // DRAGONAIR - {0x00}, {0x15}, {0x0B}, {0x33}, {0xFF}, {0xFF} - }, { // BUTTERFREE - {0x2A}, {0x30}, {0x0C}, {0xFF}, {0xFF}, {0xFF} - }, { // SCIZOR - {0x11}, {0x32}, {0x33}, {0xFF}, {0xFF}, {0xFF} - }, { // HOPPIP - {0x1D}, {0x11}, {0x33}, {0xFF}, {0xFF}, {0xFF} - }, { // BLISSEY - {0x11}, {0x0E}, {0x33}, {0xFF}, {0xFF}, {0xFF} - }, { // PARAS - {0x09}, {0x00}, {0x33}, {0xFF}, {0xFF}, {0xFF} - }, { // PARASECT - {0x09}, {0x00}, {0x09}, {0xFF}, {0xFF}, {0xFF} - }, { // QWILFISH - {0x11}, {0x11}, {0x33}, {0xFF}, {0xFF}, {0xFF} - }, { // MR_MIME - {0x11}, {0x30}, {0x12}, {0xFF}, {0xFF}, {0xFF} - }, { // TYROGUE - {0x12}, {0x18}, {0x33}, {0xFF}, {0xFF}, {0xFF} - }, { // CLOYSTER - {0x1E}, {0x30}, {0x33}, {0xFF}, {0xFF}, {0xFF} - }, { // TYRANITAR - {0x12}, {0x00}, {0x11}, {0x1B}, {0xFF}, {0xFF} - }, { // CLEFFA - {0x09}, {0x2A}, {0x33}, {0xFF}, {0xFF}, {0xFF} - }, { // WEEDLE - {0x0E}, {0x26}, {0x33}, {0xFF}, {0xFF}, {0xFF} - }, { // PIKACHU - {0x0C}, {0x2A}, {0x27}, {0xFF}, {0xFF}, {0xFF} - }, { // CLEFABLE - {0x09}, {0x2A}, {0x24}, {0xFF}, {0xFF}, {0xFF} - }, { // PIDGEOT - {0x11}, {0x0C}, {0x15}, {0xFF}, {0xFF}, {0xFF} - }, { // PIDGEOTTO - {0x11}, {0x0C}, {0x18}, {0x18}, {0xFF}, {0xFF} - }, { // PICHU - {0x0C}, {0x27}, {0x33}, {0xFF}, {0xFF}, {0xFF} - }, { // CLEFAIRY - {0x09}, {0x0B}, {0x0C}, {0xFF}, {0xFF}, {0xFF} - }, { // CHARMANDER - {0x06}, {0x02}, {0x32}, {0x33}, {0xFF}, {0xFF} - }, { // STARYU - {0x1B}, {0x27}, {0x33}, {0xFF}, {0xFF}, {0xFF} - }, { // CYNDAQUIL - {0x0F}, {0x2A}, {0x09}, {0x33}, {0xFF}, {0xFF} - }, { // SUNKERN - {0x2C}, {0x30}, {0x33}, {0xFF}, {0xFF}, {0xFF} - }, { // TEDDIURSA - {0x09}, {0x0C}, {0x30}, {0x2C}, {0xFF}, {0xFF} - }, { // VOLTORB - {0x1A}, {0x18}, {0x33}, {0xFF}, {0xFF}, {0xFF} - }, { // MOLTRES - {0x1A}, {0x09}, {0x33}, {0xFF}, {0xFF}, {0xFF} - }, { // FLAREON - {0x03}, {0x0C}, {0x15}, {0xFF}, {0xFF}, {0xFF} - }, { // ALAKAZAM - {0x00}, {0x2C}, {0x2C}, {0x00}, {0xFF}, {0xFF} - }, { // MAGMAR - {0x00}, {0x1D}, {0x33}, {0xFF}, {0xFF}, {0xFF} - }, { // FORRETRESS - {0x1A}, {0x09}, {0x09}, {0x33}, {0xFF}, {0xFF} - }, { // WIGGLYTUFF - {0x11}, {0x27}, {0x0C}, {0x2A}, {0x33}, {0xFF} - }, { // IVYSAUR - {0x14}, {0x0C}, {0x32}, {0x33}, {0xFF}, {0xFF} - }, { // BULBASAUR - {0x24}, {0x2A}, {0x30}, {0x33}, {0xFF}, {0xFF} - }, { // VENUSAUR - {0x0C}, {0x2C}, {0x30}, {0x33}, {0xFF}, {0xFF} - }, { // AERODACTYL - {0x03}, {0x18}, {0x00}, {0x18}, {0xFF}, {0xFF} - }, { // MAGBY - {0x00}, {0x0C}, {0x33}, {0xFF}, {0xFF}, {0xFF} - }, { // IGGLYBUFF - {0x11}, {0x2A}, {0x0C}, {0x2A}, {0xFF}, {0xFF} - }, { // UMBREON - {0x2A}, {0x0C}, {0x1B}, {0x33}, {0xFF}, {0xFF} - }, { // ARTICUNO - {0x06}, {0x11}, {0x27}, {0x18}, {0xFF}, {0xFF} - }, { // JIGGLYPUFF - {0x11}, {0x27}, {0x0C}, {0x2A}, {0x33}, {0xFF} - }, { // SNUBBULL - {0x2C}, {0x2C}, {0x33}, {0xFF}, {0xFF}, {0xFF} - }, { // BAYLEEF - {0x03}, {0x0C}, {0x33}, {0xFF}, {0xFF}, {0xFF} - }, { // GRIMER - {0x12}, {0x30}, {0x33}, {0xFF}, {0xFF}, {0xFF} - }, { // MUK - {0x2A}, {0x33}, {0x33}, {0xFF}, {0xFF}, {0xFF} - }, { // HERACROSS - {0x09}, {0x2A}, {0x1B}, {0x33}, {0xFF}, {0xFF} - }, { // HOUNDOOM - {0x21}, {0x27}, {0x33}, {0xFF}, {0xFF}, {0xFF} - }, { // PERSIAN - {0x32}, {0x11}, {0x00}, {0xFF}, {0xFF}, {0xFF} - }, { // LICKITUNG - {0x11}, {0x0C}, {0x2A}, {0xFF}, {0xFF}, {0xFF} - }, { // HO_OH - {0x18}, {0x18}, {0x33}, {0xFF}, {0xFF}, {0xFF} - }, { // HOOTHOOT - {0x27}, {0x27}, {0x33}, {0xFF}, {0xFF}, {0xFF} - }, { // PIDGEY - {0x11}, {0x0C}, {0x33}, {0xFF}, {0xFF}, {0xFF} - }, { // PONYTA - {0x1A}, {0x0C}, {0x2A}, {0xFF}, {0xFF}, {0xFF} - }, { // SKIPLOOM - {0x11}, {0x27}, {0x33}, {0xFF}, {0xFF}, {0xFF} - }, { // PORYGON - {0x18}, {0x0C}, {0x15}, {0xFF}, {0xFF}, {0xFF} - }, { // PORYGON2 - {0x1A}, {0x0C}, {0x1B}, {0x27}, {0xFF}, {0xFF} - }, { // MAGCARGO - {0x00}, {0x1B}, {0x18}, {0xFF}, {0xFF}, {0xFF} - }, { // SLUGMA - {0x2C}, {0x2C}, {0x33}, {0xFF}, {0xFF}, {0xFF} - }, { // QUILAVA - {0x11}, {0x06}, {0x08}, {0xFF}, {0xFF}, {0xFF} - }, { // BELLSPROUT - {0x0B}, {0x21}, {0x33}, {0xFF}, {0xFF}, {0xFF} - }, { // WEEZING - {0x0C}, {0x0C}, {0x33}, {0xFF}, {0xFF}, {0xFF} - }, { // MARILL - {0x08}, {0x10}, {0x33}, {0xFF}, {0xFF}, {0xFF} - }, { // AZUMARILL - {0x08}, {0x27}, {0x2C}, {0x10}, {0xFF}, {0xFF} - }, { // ELECTRODE - {0x0C}, {0x09}, {0x18}, {0xFF}, {0xFF}, {0xFF} - }, { // MANKEY - {0x00}, {0x0C}, {0x33}, {0xFF}, {0xFF}, {0xFF} - }, { // MANTINE - {0x00}, {0x0C}, {0x33}, {0xFF}, {0xFF}, {0xFF} - }, { // DRATINI - {0x00}, {0x0C}, {0x0C}, {0xFF}, {0xFF}, {0xFF} - }, { // MEW - {0x2D}, {0xFF}, {0x33}, {0xFF}, {0xFF}, {0xFF} - }, { // MEWTWO - {0x2D}, {0x27}, {0xFF}, {0xFF}, {0xFF}, {0xFF} - }, { // MILTANK - {0x11}, {0x03}, {0x33}, {0xFF}, {0xFF}, {0xFF} - }, { // MISDREAVUS - {0x11}, {0x0C}, {0x2C}, {0x33}, {0xFF}, {0xFF} - }, { // SMOOCHUM - {0x27}, {0x2C}, {0x33}, {0xFF}, {0xFF}, {0xFF} - }, { // MEGANIUM - {0x03}, {0x09}, {0x0C}, {0x2A}, {0xFF}, {0xFF} - }, { // DITTO - {0x11}, {0x18}, {0x33}, {0xFF}, {0xFF}, {0xFF} - }, { // TENTACOOL - {0x09}, {0x2A}, {0x27}, {0x33}, {0xFF}, {0xFF} - }, { // MAREEP - {0x1D}, {0x0E}, {0x33}, {0xFF}, {0xFF}, {0xFF} - }, { // FLAAFFY - {0x00}, {0x0C}, {0x33}, {0xFF}, {0xFF}, {0xFF} - }, { // VENOMOTH - {0x09}, {0x1A}, {0x15}, {0xFF}, {0xFF}, {0xFF} - }, { // TANGELA - {0x02}, {0x09}, {0x2A}, {0xFF}, {0xFF}, {0xFF} - }, { // SLOWKING - {0x18}, {0x0C}, {0x33}, {0xFF}, {0xFF}, {0xFF} - }, { // SLOWBRO - {0x18}, {0x18}, {0x33}, {0xFF}, {0xFF}, {0xFF} - }, { // SLOWPOKE - {0x18}, {0x18}, {0x33}, {0xFF}, {0xFF}, {0xFF} - }, { // MURKROW - {0x30}, {0x18}, {0x33}, {0xFF}, {0xFF}, {0xFF} - }, { // YANMA - {0x00}, {0x2A}, {0x33}, {0xFF}, {0xFF}, {0xFF} - }, { // KADABRA - {0x2C}, {0x00}, {0x2C}, {0xFF}, {0xFF}, {0xFF} - }, { // LARVITAR - {0x15}, {0x11}, {0x15}, {0x33}, {0xFF}, {0xFF} - }, { // NOCTOWL - {0x1B}, {0x21}, {0x33}, {0xFF}, {0xFF}, {0xFF} - }, { // RAIKOU - {0x12}, {0x27}, {0x33}, {0xFF}, {0xFF}, {0xFF} - }, { // RAICHU - {0x12}, {0x27}, {0x33}, {0xFF}, {0xFF}, {0xFF} - }, { // CHANSEY - {0x00}, {0x0C}, {0x33}, {0xFF}, {0xFF}, {0xFF} - }, { // RATICATE - {0x00}, {0x0C}, {0x03}, {0xFF}, {0xFF}, {0xFF} - }, { // LAPRAS - {0x2C}, {0x00}, {0x33}, {0xFF}, {0xFF}, {0xFF} - }, { // VILEPLUME - {0x14}, {0x27}, {0x33}, {0xFF}, {0xFF}, {0xFF} - }, { // LANTURN - {0x00}, {0x30}, {0x33}, {0xFF}, {0xFF}, {0xFF} - }, { // CHARMELEON - {0x06}, {0x0C}, {0x0C}, {0x15}, {0x33}, {0xFF} - }, { // CHARIZARD - {0x06}, {0x11}, {0x32}, {0x33}, {0x33}, {0xFF} - }, { // URSARING - {0x30}, {0x2C}, {0x0C}, {0x33}, {0xFF}, {0xFF} - }, { // JYNX - {0x0C}, {0x33}, {0x33}, {0xFF}, {0xFF}, {0xFF} - }, { // LUGIA - {0x27}, {0x0C}, {0x2A}, {0xFF}, {0xFF}, {0xFF} - }, { // MAGNETON - {0x00}, {0x09}, {0x2A}, {0xFF}, {0xFF}, {0xFF} - }, { // LEDIAN - {0x09}, {0x0C}, {0x00}, {0xFF}, {0xFF}, {0xFF} - }, { // LEDYBA - {0x09}, {0x0C}, {0x2A}, {0xFF}, {0xFF}, {0xFF} - }, { // VULPIX - {0x24}, {0x11}, {0x33}, {0xFF}, {0xFF}, {0xFF} - }, { // JUMPLUFF - {0x2C}, {0x2C}, {0x33}, {0xFF}, {0xFF}, {0xFF} - }, { // TOTODILE - {0x18}, {0x18}, {0x12}, {0xFF}, {0xFF}, {0xFF} - }, { // MACHOP - {0x2A}, {0x15}, {0x33}, {0xFF}, {0xFF}, {0xFF} - } -}; - -#endif //GUARD_DATA_BARD_MUSIC_H diff --git a/src/data/field_event_obj/event_object_graphics_info_pointers.h b/src/data/field_event_obj/event_object_graphics_info_pointers.h index 87b7c85a6..d221534ad 100644 --- a/src/data/field_event_obj/event_object_graphics_info_pointers.h +++ b/src/data/field_event_obj/event_object_graphics_info_pointers.h @@ -1,7 +1,3 @@ -// - -// - #ifndef POKERUBY_EVENT_OBJECT_GRAPHICS_INFO_POINTERS_H #define POKERUBY_EVENT_OBJECT_GRAPHICS_INFO_POINTERS_H @@ -225,224 +221,224 @@ const struct EventObjectGraphicsInfo gEventObjectGraphicsInfo_LinkBrendan; const struct EventObjectGraphicsInfo gEventObjectGraphicsInfo_LinkMay; const struct EventObjectGraphicsInfo *const gEventObjectGraphicsInfoPointers[] = { - &gEventObjectGraphicsInfo_BrendanNormal, - &gEventObjectGraphicsInfo_BrendanMachBike, - &gEventObjectGraphicsInfo_BrendanSurfing, - &gEventObjectGraphicsInfo_BrendanFieldMove, - &gEventObjectGraphicsInfo_QuintyPlump, - &gEventObjectGraphicsInfo_LittleBoy1, - &gEventObjectGraphicsInfo_LittleGirl1, - &gEventObjectGraphicsInfo_Boy1, - &gEventObjectGraphicsInfo_Girl1, - &gEventObjectGraphicsInfo_Boy2, - &gEventObjectGraphicsInfo_Girl2, - &gEventObjectGraphicsInfo_LittleBoy2, - &gEventObjectGraphicsInfo_LittleGirl2, - &gEventObjectGraphicsInfo_Boy3, - &gEventObjectGraphicsInfo_Girl3, - &gEventObjectGraphicsInfo_Boy4, - &gEventObjectGraphicsInfo_Woman1, - &gEventObjectGraphicsInfo_FatMan, - &gEventObjectGraphicsInfo_Woman2, - &gEventObjectGraphicsInfo_Man1, - &gEventObjectGraphicsInfo_Woman3, - &gEventObjectGraphicsInfo_OldMan1, - &gEventObjectGraphicsInfo_OldWoman1, - &gEventObjectGraphicsInfo_Man2, - &gEventObjectGraphicsInfo_Woman4, - &gEventObjectGraphicsInfo_Man3, - &gEventObjectGraphicsInfo_Woman5, - &gEventObjectGraphicsInfo_Cook, - &gEventObjectGraphicsInfo_Woman6, - &gEventObjectGraphicsInfo_OldMan2, - &gEventObjectGraphicsInfo_OldWoman2, - &gEventObjectGraphicsInfo_Camper, - &gEventObjectGraphicsInfo_Picnicker, - &gEventObjectGraphicsInfo_Man4, - &gEventObjectGraphicsInfo_Woman7, - &gEventObjectGraphicsInfo_Youngster, - &gEventObjectGraphicsInfo_BugCatcher, - &gEventObjectGraphicsInfo_PsychicM, - &gEventObjectGraphicsInfo_SchoolKidM, - &gEventObjectGraphicsInfo_Maniac, - &gEventObjectGraphicsInfo_HexManiac, - &gEventObjectGraphicsInfo_Woman8, - &gEventObjectGraphicsInfo_SwimmerM, - &gEventObjectGraphicsInfo_SwimmerF, - &gEventObjectGraphicsInfo_BlackBelt, - &gEventObjectGraphicsInfo_Beauty, - &gEventObjectGraphicsInfo_Scientist1, - &gEventObjectGraphicsInfo_Lass, - &gEventObjectGraphicsInfo_Gentleman, - &gEventObjectGraphicsInfo_Sailor, - &gEventObjectGraphicsInfo_Fisherman, - &gEventObjectGraphicsInfo_RunningTriathleteM, - &gEventObjectGraphicsInfo_RunningTriathleteF, - &gEventObjectGraphicsInfo_TuberF, - &gEventObjectGraphicsInfo_TuberM, - &gEventObjectGraphicsInfo_Hiker, - &gEventObjectGraphicsInfo_CyclingTriathleteM, - &gEventObjectGraphicsInfo_CyclingTriathleteF, - &gEventObjectGraphicsInfo_Nurse, - &gEventObjectGraphicsInfo_ItemBall, - &gEventObjectGraphicsInfo_BerryTree, - &gEventObjectGraphicsInfo_BerryTreeEarlyStages, - &gEventObjectGraphicsInfo_BerryTreeLateStages, - &gEventObjectGraphicsInfo_BrendanAcroBike, - &gEventObjectGraphicsInfo_ProfBirch, - &gEventObjectGraphicsInfo_Man5, - &gEventObjectGraphicsInfo_Man6, - &gEventObjectGraphicsInfo_ReporterM, - &gEventObjectGraphicsInfo_ReporterF, - &gEventObjectGraphicsInfo_Bard, - &gEventObjectGraphicsInfo_Hipster, - &gEventObjectGraphicsInfo_Trader, - &gEventObjectGraphicsInfo_Storyteller, - &gEventObjectGraphicsInfo_Giddy, - &gEventObjectGraphicsInfo_UnusedMauvilleOldMan1, - &gEventObjectGraphicsInfo_UnusedMauvilleOldMan2, - &gEventObjectGraphicsInfo_UnusedNatuDoll, - &gEventObjectGraphicsInfo_UnusedMagnemiteDoll, - &gEventObjectGraphicsInfo_UnusedSquirtleDoll, - &gEventObjectGraphicsInfo_UnusedWooperDoll, - &gEventObjectGraphicsInfo_UnusedPikachuDoll, - &gEventObjectGraphicsInfo_UnusedPorygon2Doll, - &gEventObjectGraphicsInfo_CuttableTree, - &gEventObjectGraphicsInfo_MartEmployee, - &gEventObjectGraphicsInfo_RooftopSaleWoman, - &gEventObjectGraphicsInfo_Teala, - &gEventObjectGraphicsInfo_BreakableRock, - &gEventObjectGraphicsInfo_PushableBoulder, - &gEventObjectGraphicsInfo_MrBrineysBoat, - &gEventObjectGraphicsInfo_MayNormal, - &gEventObjectGraphicsInfo_MayMachBike, - &gEventObjectGraphicsInfo_MayAcroBike, - &gEventObjectGraphicsInfo_MaySurfing, - &gEventObjectGraphicsInfo_MayFieldMove, - &gEventObjectGraphicsInfo_Truck, - &gEventObjectGraphicsInfo_MachokeCarryingBox, - &gEventObjectGraphicsInfo_MachokeFacingAway, - &gEventObjectGraphicsInfo_BirchsBag, - &gEventObjectGraphicsInfo_Poochyena, - &gEventObjectGraphicsInfo_Artist, - &gEventObjectGraphicsInfo_RivalBrendanNormal, - &gEventObjectGraphicsInfo_RivalBrendanMachBike, - &gEventObjectGraphicsInfo_RivalBrendanAcroBike, - &gEventObjectGraphicsInfo_RivalBrendanSurfing, - &gEventObjectGraphicsInfo_RivalBrendanFieldMove, - &gEventObjectGraphicsInfo_RivalMayNormal, - &gEventObjectGraphicsInfo_RivalMayMachBike, - &gEventObjectGraphicsInfo_RivalMayAcroBike, - &gEventObjectGraphicsInfo_RivalMaySurfing, - &gEventObjectGraphicsInfo_RivalMayFieldMove, - &gEventObjectGraphicsInfo_Cameraman, - &gEventObjectGraphicsInfo_BrendanUnderwater, - &gEventObjectGraphicsInfo_MayUnderwater, - &gEventObjectGraphicsInfo_MovingBox, - &gEventObjectGraphicsInfo_CableCar, - &gEventObjectGraphicsInfo_Scientist2, - &gEventObjectGraphicsInfo_Man7, - &gEventObjectGraphicsInfo_AquaMemberM, - &gEventObjectGraphicsInfo_AquaMemberF, - &gEventObjectGraphicsInfo_MagmaMemberM, - &gEventObjectGraphicsInfo_MagmaMemberF, - &gEventObjectGraphicsInfo_Sidney, - &gEventObjectGraphicsInfo_Phoebe, - &gEventObjectGraphicsInfo_Glacia, - &gEventObjectGraphicsInfo_Drake, - &gEventObjectGraphicsInfo_Roxanne, - &gEventObjectGraphicsInfo_Brawly, - &gEventObjectGraphicsInfo_Wattson, - &gEventObjectGraphicsInfo_Flannery, - &gEventObjectGraphicsInfo_Norman, - &gEventObjectGraphicsInfo_Winona, - &gEventObjectGraphicsInfo_Liza, - &gEventObjectGraphicsInfo_Tate, - &gEventObjectGraphicsInfo_Wallace, - &gEventObjectGraphicsInfo_Steven, - &gEventObjectGraphicsInfo_Wally, - &gEventObjectGraphicsInfo_LittleBoy3, - &gEventObjectGraphicsInfo_BrendanFishing, - &gEventObjectGraphicsInfo_MayFishing, - &gEventObjectGraphicsInfo_HotSpringsOldWoman, - &gEventObjectGraphicsInfo_SSTidal, - &gEventObjectGraphicsInfo_SubmarineShadow, - &gEventObjectGraphicsInfo_PichuDoll, - &gEventObjectGraphicsInfo_PikachuDoll, - &gEventObjectGraphicsInfo_MarillDoll, - &gEventObjectGraphicsInfo_TogepiDoll, - &gEventObjectGraphicsInfo_CyndaquilDoll, - &gEventObjectGraphicsInfo_ChikoritaDoll, - &gEventObjectGraphicsInfo_TotodileDoll, - &gEventObjectGraphicsInfo_JigglypuffDoll, - &gEventObjectGraphicsInfo_MeowthDoll, - &gEventObjectGraphicsInfo_ClefairyDoll, - &gEventObjectGraphicsInfo_DittoDoll, - &gEventObjectGraphicsInfo_SmoochumDoll, - &gEventObjectGraphicsInfo_TreeckoDoll, - &gEventObjectGraphicsInfo_TorchicDoll, - &gEventObjectGraphicsInfo_MudkipDoll, - &gEventObjectGraphicsInfo_DuskullDoll, - &gEventObjectGraphicsInfo_WynautDoll, - &gEventObjectGraphicsInfo_BaltoyDoll, - &gEventObjectGraphicsInfo_KecleonDoll, - &gEventObjectGraphicsInfo_AzurillDoll, - &gEventObjectGraphicsInfo_SkittyDoll, - &gEventObjectGraphicsInfo_SwabluDoll, - &gEventObjectGraphicsInfo_GulpinDoll, - &gEventObjectGraphicsInfo_LotadDoll, - &gEventObjectGraphicsInfo_SeedotDoll, - &gEventObjectGraphicsInfo_PikaCushion, - &gEventObjectGraphicsInfo_RoundCushion, - &gEventObjectGraphicsInfo_KissCushion, - &gEventObjectGraphicsInfo_ZigzagCushion, - &gEventObjectGraphicsInfo_SpinCushion, - &gEventObjectGraphicsInfo_DiamondCushion, - &gEventObjectGraphicsInfo_BallCushion, - &gEventObjectGraphicsInfo_GrassCushion, - &gEventObjectGraphicsInfo_FireCushion, - &gEventObjectGraphicsInfo_WaterCushion, - &gEventObjectGraphicsInfo_BigSnorlaxDoll, - &gEventObjectGraphicsInfo_BigRhydonDoll, - &gEventObjectGraphicsInfo_BigLaprasDoll, - &gEventObjectGraphicsInfo_BigVenusaurDoll, - &gEventObjectGraphicsInfo_BigCharizardDoll, - &gEventObjectGraphicsInfo_BigBlastoiseDoll, - &gEventObjectGraphicsInfo_BigWailmerDoll, - &gEventObjectGraphicsInfo_BigRegirockDoll, - &gEventObjectGraphicsInfo_BigRegiceDoll, - &gEventObjectGraphicsInfo_BigRegisteelDoll, - &gEventObjectGraphicsInfo_Latias, - &gEventObjectGraphicsInfo_Latios, - &gEventObjectGraphicsInfo_Boy5, - &gEventObjectGraphicsInfo_ContestJudge, - &gEventObjectGraphicsInfo_BrendanWatering, - &gEventObjectGraphicsInfo_MayWatering, - &gEventObjectGraphicsInfo_BrendanDecorating, - &gEventObjectGraphicsInfo_MayDecorating, - &gEventObjectGraphicsInfo_Archie, - &gEventObjectGraphicsInfo_Maxie, - &gEventObjectGraphicsInfo_Kyogre1, - &gEventObjectGraphicsInfo_Groudon1, - &gEventObjectGraphicsInfo_Fossil, - &gEventObjectGraphicsInfo_Regirock, - &gEventObjectGraphicsInfo_Regice, - &gEventObjectGraphicsInfo_Registeel, - &gEventObjectGraphicsInfo_Skitty, - &gEventObjectGraphicsInfo_Kecleon1, - &gEventObjectGraphicsInfo_Kyogre2, - &gEventObjectGraphicsInfo_Groudon2, - &gEventObjectGraphicsInfo_Rayquaza, - &gEventObjectGraphicsInfo_Zigzagoon, - &gEventObjectGraphicsInfo_Pikachu, - &gEventObjectGraphicsInfo_Azumarill, - &gEventObjectGraphicsInfo_Wingull, - &gEventObjectGraphicsInfo_Kecleon2, - &gEventObjectGraphicsInfo_TuberMSwimming, - &gEventObjectGraphicsInfo_Azurill, - &gEventObjectGraphicsInfo_Mom, - &gEventObjectGraphicsInfo_LinkBrendan, - &gEventObjectGraphicsInfo_LinkMay + [EVENT_OBJ_GFX_BRENDAN_NORMAL] = &gEventObjectGraphicsInfo_BrendanNormal, + [EVENT_OBJ_GFX_BRENDAN_MACH_BIKE] = &gEventObjectGraphicsInfo_BrendanMachBike, + [EVENT_OBJ_GFX_BRENDAN_SURFING] = &gEventObjectGraphicsInfo_BrendanSurfing, + [EVENT_OBJ_GFX_BRENDAN_FIELD_MOVE] = &gEventObjectGraphicsInfo_BrendanFieldMove, + [EVENT_OBJ_GFX_QUINTY_PLUMP] = &gEventObjectGraphicsInfo_QuintyPlump, + [EVENT_OBJ_GFX_LITTLE_BOY_1] = &gEventObjectGraphicsInfo_LittleBoy1, + [EVENT_OBJ_GFX_LITTLE_GIRL_1] = &gEventObjectGraphicsInfo_LittleGirl1, + [EVENT_OBJ_GFX_BOY_1] = &gEventObjectGraphicsInfo_Boy1, + [EVENT_OBJ_GFX_GIRL_1] = &gEventObjectGraphicsInfo_Girl1, + [EVENT_OBJ_GFX_BOY_2] = &gEventObjectGraphicsInfo_Boy2, + [EVENT_OBJ_GFX_GIRL_2] = &gEventObjectGraphicsInfo_Girl2, + [EVENT_OBJ_GFX_LITTLE_BOY_2] = &gEventObjectGraphicsInfo_LittleBoy2, + [EVENT_OBJ_GFX_LITTLE_GIRL_2] = &gEventObjectGraphicsInfo_LittleGirl2, + [EVENT_OBJ_GFX_BOY_3] = &gEventObjectGraphicsInfo_Boy3, + [EVENT_OBJ_GFX_GIRL_3] = &gEventObjectGraphicsInfo_Girl3, + [EVENT_OBJ_GFX_BOY_4] = &gEventObjectGraphicsInfo_Boy4, + [EVENT_OBJ_GFX_WOMAN_1] = &gEventObjectGraphicsInfo_Woman1, + [EVENT_OBJ_GFX_FAT_MAN] = &gEventObjectGraphicsInfo_FatMan, + [EVENT_OBJ_GFX_WOMAN_2] = &gEventObjectGraphicsInfo_Woman2, + [EVENT_OBJ_GFX_MAN_1] = &gEventObjectGraphicsInfo_Man1, + [EVENT_OBJ_GFX_WOMAN_3] = &gEventObjectGraphicsInfo_Woman3, + [EVENT_OBJ_GFX_OLD_MAN_1] = &gEventObjectGraphicsInfo_OldMan1, + [EVENT_OBJ_GFX_OLD_WOMAN_1] = &gEventObjectGraphicsInfo_OldWoman1, + [EVENT_OBJ_GFX_MAN_2] = &gEventObjectGraphicsInfo_Man2, + [EVENT_OBJ_GFX_WOMAN_4] = &gEventObjectGraphicsInfo_Woman4, + [EVENT_OBJ_GFX_MAN_3] = &gEventObjectGraphicsInfo_Man3, + [EVENT_OBJ_GFX_WOMAN_5] = &gEventObjectGraphicsInfo_Woman5, + [EVENT_OBJ_GFX_COOK] = &gEventObjectGraphicsInfo_Cook, + [EVENT_OBJ_GFX_WOMAN_6] = &gEventObjectGraphicsInfo_Woman6, + [EVENT_OBJ_GFX_OLD_MAN_2] = &gEventObjectGraphicsInfo_OldMan2, + [EVENT_OBJ_GFX_OLD_WOMAN_2] = &gEventObjectGraphicsInfo_OldWoman2, + [EVENT_OBJ_GFX_CAMPER] = &gEventObjectGraphicsInfo_Camper, + [EVENT_OBJ_GFX_PICNICKER] = &gEventObjectGraphicsInfo_Picnicker, + [EVENT_OBJ_GFX_MAN_4] = &gEventObjectGraphicsInfo_Man4, + [EVENT_OBJ_GFX_WOMAN_7] = &gEventObjectGraphicsInfo_Woman7, + [EVENT_OBJ_GFX_YOUNGSTER] = &gEventObjectGraphicsInfo_Youngster, + [EVENT_OBJ_GFX_BUG_CATCHER] = &gEventObjectGraphicsInfo_BugCatcher, + [EVENT_OBJ_GFX_PSYCHIC_M] = &gEventObjectGraphicsInfo_PsychicM, + [EVENT_OBJ_GFX_SCHOOL_KID_M] = &gEventObjectGraphicsInfo_SchoolKidM, + [EVENT_OBJ_GFX_MANIAC] = &gEventObjectGraphicsInfo_Maniac, + [EVENT_OBJ_GFX_HEX_MANIAC] = &gEventObjectGraphicsInfo_HexManiac, + [EVENT_OBJ_GFX_WOMAN_8] = &gEventObjectGraphicsInfo_Woman8, + [EVENT_OBJ_GFX_SWIMMER_M] = &gEventObjectGraphicsInfo_SwimmerM, + [EVENT_OBJ_GFX_SWIMMER_F] = &gEventObjectGraphicsInfo_SwimmerF, + [EVENT_OBJ_GFX_BLACK_BELT] = &gEventObjectGraphicsInfo_BlackBelt, + [EVENT_OBJ_GFX_BEAUTY] = &gEventObjectGraphicsInfo_Beauty, + [EVENT_OBJ_GFX_SCIENTIST_1] = &gEventObjectGraphicsInfo_Scientist1, + [EVENT_OBJ_GFX_LASS] = &gEventObjectGraphicsInfo_Lass, + [EVENT_OBJ_GFX_GENTLEMAN] = &gEventObjectGraphicsInfo_Gentleman, + [EVENT_OBJ_GFX_SAILOR] = &gEventObjectGraphicsInfo_Sailor, + [EVENT_OBJ_GFX_FISHERMAN] = &gEventObjectGraphicsInfo_Fisherman, + [EVENT_OBJ_GFX_RUNNING_TRIATHLETE_M] = &gEventObjectGraphicsInfo_RunningTriathleteM, + [EVENT_OBJ_GFX_RUNNING_TRIATHLETE_F] = &gEventObjectGraphicsInfo_RunningTriathleteF, + [EVENT_OBJ_GFX_TUBER_F] = &gEventObjectGraphicsInfo_TuberF, + [EVENT_OBJ_GFX_TUBER_M] = &gEventObjectGraphicsInfo_TuberM, + [EVENT_OBJ_GFX_HIKER] = &gEventObjectGraphicsInfo_Hiker, + [EVENT_OBJ_GFX_CYCLING_TRIATHLETE_M] = &gEventObjectGraphicsInfo_CyclingTriathleteM, + [EVENT_OBJ_GFX_CYCLING_TRIATHLETE_F] = &gEventObjectGraphicsInfo_CyclingTriathleteF, + [EVENT_OBJ_GFX_NURSE] = &gEventObjectGraphicsInfo_Nurse, + [EVENT_OBJ_GFX_ITEM_BALL] = &gEventObjectGraphicsInfo_ItemBall, + [EVENT_OBJ_GFX_BERRY_TREE] = &gEventObjectGraphicsInfo_BerryTree, + [EVENT_OBJ_GFX_BERRY_TREE_EARLY_STAGES] = &gEventObjectGraphicsInfo_BerryTreeEarlyStages, + [EVENT_OBJ_GFX_BERRY_TREE_LATE_STAGES] = &gEventObjectGraphicsInfo_BerryTreeLateStages, + [EVENT_OBJ_GFX_BRENDAN_ACRO_BIKE] = &gEventObjectGraphicsInfo_BrendanAcroBike, + [EVENT_OBJ_GFX_PROF_BIRCH] = &gEventObjectGraphicsInfo_ProfBirch, + [EVENT_OBJ_GFX_MAN_5] = &gEventObjectGraphicsInfo_Man5, + [EVENT_OBJ_GFX_MAN_6] = &gEventObjectGraphicsInfo_Man6, + [EVENT_OBJ_GFX_REPORTER_M] = &gEventObjectGraphicsInfo_ReporterM, + [EVENT_OBJ_GFX_REPORTER_F] = &gEventObjectGraphicsInfo_ReporterF, + [EVENT_OBJ_GFX_BARD] = &gEventObjectGraphicsInfo_Bard, + [EVENT_OBJ_GFX_HIPSTER] = &gEventObjectGraphicsInfo_Hipster, + [EVENT_OBJ_GFX_TRADER] = &gEventObjectGraphicsInfo_Trader, + [EVENT_OBJ_GFX_STORYTELLER] = &gEventObjectGraphicsInfo_Storyteller, + [EVENT_OBJ_GFX_GIDDY] = &gEventObjectGraphicsInfo_Giddy, + [EVENT_OBJ_GFX_UNUSED_MAUVILLE_OLD_MAN_1] = &gEventObjectGraphicsInfo_UnusedMauvilleOldMan1, + [EVENT_OBJ_GFX_UNUSED_MAUVILLE_OLD_MAN_2] = &gEventObjectGraphicsInfo_UnusedMauvilleOldMan2, + [EVENT_OBJ_GFX_UNUSED_NATU_DOLL] = &gEventObjectGraphicsInfo_UnusedNatuDoll, + [EVENT_OBJ_GFX_UNUSED_MAGNEMITE_DOLL] = &gEventObjectGraphicsInfo_UnusedMagnemiteDoll, + [EVENT_OBJ_GFX_UNUSED_SQUIRTLE_DOLL] = &gEventObjectGraphicsInfo_UnusedSquirtleDoll, + [EVENT_OBJ_GFX_UNUSED_WOOPER_DOLL] = &gEventObjectGraphicsInfo_UnusedWooperDoll, + [EVENT_OBJ_GFX_UNUSED_PIKACHU_DOLL] = &gEventObjectGraphicsInfo_UnusedPikachuDoll, + [EVENT_OBJ_GFX_UNUSED_PORYGON2_DOLL] = &gEventObjectGraphicsInfo_UnusedPorygon2Doll, + [EVENT_OBJ_GFX_CUTTABLE_TREE] = &gEventObjectGraphicsInfo_CuttableTree, + [EVENT_OBJ_GFX_MART_EMPLOYEE] = &gEventObjectGraphicsInfo_MartEmployee, + [EVENT_OBJ_GFX_ROOFTOP_SALE_WOMAN] = &gEventObjectGraphicsInfo_RooftopSaleWoman, + [EVENT_OBJ_GFX_TEALA] = &gEventObjectGraphicsInfo_Teala, + [EVENT_OBJ_GFX_BREAKABLE_ROCK] = &gEventObjectGraphicsInfo_BreakableRock, + [EVENT_OBJ_GFX_PUSHABLE_BOULDER] = &gEventObjectGraphicsInfo_PushableBoulder, + [EVENT_OBJ_GFX_MR_BRINEYS_BOAT] = &gEventObjectGraphicsInfo_MrBrineysBoat, + [EVENT_OBJ_GFX_MAY_NORMAL] = &gEventObjectGraphicsInfo_MayNormal, + [EVENT_OBJ_GFX_MAY_MACH_BIKE] = &gEventObjectGraphicsInfo_MayMachBike, + [EVENT_OBJ_GFX_MAY_ACRO_BIKE] = &gEventObjectGraphicsInfo_MayAcroBike, + [EVENT_OBJ_GFX_MAY_SURFING] = &gEventObjectGraphicsInfo_MaySurfing, + [EVENT_OBJ_GFX_MAY_FIELD_MOVE] = &gEventObjectGraphicsInfo_MayFieldMove, + [EVENT_OBJ_GFX_TRUCK] = &gEventObjectGraphicsInfo_Truck, + [EVENT_OBJ_GFX_MACHOKE_CARRYING_BOX] = &gEventObjectGraphicsInfo_MachokeCarryingBox, + [EVENT_OBJ_GFX_MACHOKE_FACING_AWAY] = &gEventObjectGraphicsInfo_MachokeFacingAway, + [EVENT_OBJ_GFX_BIRCHS_BAG] = &gEventObjectGraphicsInfo_BirchsBag, + [EVENT_OBJ_GFX_POOCHYENA] = &gEventObjectGraphicsInfo_Poochyena, + [EVENT_OBJ_GFX_ARTIST] = &gEventObjectGraphicsInfo_Artist, + [EVENT_OBJ_GFX_RIVAL_BRENDAN_NORMAL] = &gEventObjectGraphicsInfo_RivalBrendanNormal, + [EVENT_OBJ_GFX_RIVAL_BRENDAN_MACH_BIKE] = &gEventObjectGraphicsInfo_RivalBrendanMachBike, + [EVENT_OBJ_GFX_RIVAL_BRENDAN_ACRO_BIKE] = &gEventObjectGraphicsInfo_RivalBrendanAcroBike, + [EVENT_OBJ_GFX_RIVAL_BRENDAN_SURFING] = &gEventObjectGraphicsInfo_RivalBrendanSurfing, + [EVENT_OBJ_GFX_RIVAL_BRENDAN_FIELD_MOVE] = &gEventObjectGraphicsInfo_RivalBrendanFieldMove, + [EVENT_OBJ_GFX_RIVAL_MAY_NORMAL] = &gEventObjectGraphicsInfo_RivalMayNormal, + [EVENT_OBJ_GFX_RIVAL_MAY_MACH_BIKE] = &gEventObjectGraphicsInfo_RivalMayMachBike, + [EVENT_OBJ_GFX_RIVAL_MAY_ACRO_BIKE] = &gEventObjectGraphicsInfo_RivalMayAcroBike, + [EVENT_OBJ_GFX_RIVAL_MAY_SURFING] = &gEventObjectGraphicsInfo_RivalMaySurfing, + [EVENT_OBJ_GFX_RIVAL_MAY_FIELD_MOVE] = &gEventObjectGraphicsInfo_RivalMayFieldMove, + [EVENT_OBJ_GFX_CAMERAMAN] = &gEventObjectGraphicsInfo_Cameraman, + [EVENT_OBJ_GFX_BRENDAN_UNDERWATER] = &gEventObjectGraphicsInfo_BrendanUnderwater, + [EVENT_OBJ_GFX_MAY_UNDERWATER] = &gEventObjectGraphicsInfo_MayUnderwater, + [EVENT_OBJ_GFX_MOVING_BOX] = &gEventObjectGraphicsInfo_MovingBox, + [EVENT_OBJ_GFX_CABLE_CAR] = &gEventObjectGraphicsInfo_CableCar, + [EVENT_OBJ_GFX_SCIENTIST_2] = &gEventObjectGraphicsInfo_Scientist2, + [EVENT_OBJ_GFX_MAN_7] = &gEventObjectGraphicsInfo_Man7, + [EVENT_OBJ_GFX_AQUA_MEMBER_M] = &gEventObjectGraphicsInfo_AquaMemberM, + [EVENT_OBJ_GFX_AQUA_MEMBER_F] = &gEventObjectGraphicsInfo_AquaMemberF, + [EVENT_OBJ_GFX_MAGMA_MEMBER_M] = &gEventObjectGraphicsInfo_MagmaMemberM, + [EVENT_OBJ_GFX_MAGMA_MEMBER_F] = &gEventObjectGraphicsInfo_MagmaMemberF, + [EVENT_OBJ_GFX_SIDNEY] = &gEventObjectGraphicsInfo_Sidney, + [EVENT_OBJ_GFX_PHOEBE] = &gEventObjectGraphicsInfo_Phoebe, + [EVENT_OBJ_GFX_GLACIA] = &gEventObjectGraphicsInfo_Glacia, + [EVENT_OBJ_GFX_DRAKE] = &gEventObjectGraphicsInfo_Drake, + [EVENT_OBJ_GFX_ROXANNE] = &gEventObjectGraphicsInfo_Roxanne, + [EVENT_OBJ_GFX_BRAWLY] = &gEventObjectGraphicsInfo_Brawly, + [EVENT_OBJ_GFX_WATTSON] = &gEventObjectGraphicsInfo_Wattson, + [EVENT_OBJ_GFX_FLANNERY] = &gEventObjectGraphicsInfo_Flannery, + [EVENT_OBJ_GFX_NORMAN] = &gEventObjectGraphicsInfo_Norman, + [EVENT_OBJ_GFX_WINONA] = &gEventObjectGraphicsInfo_Winona, + [EVENT_OBJ_GFX_LIZA] = &gEventObjectGraphicsInfo_Liza, + [EVENT_OBJ_GFX_TATE] = &gEventObjectGraphicsInfo_Tate, + [EVENT_OBJ_GFX_WALLACE] = &gEventObjectGraphicsInfo_Wallace, + [EVENT_OBJ_GFX_STEVEN] = &gEventObjectGraphicsInfo_Steven, + [EVENT_OBJ_GFX_WALLY] = &gEventObjectGraphicsInfo_Wally, + [EVENT_OBJ_GFX_LITTLE_BOY_3] = &gEventObjectGraphicsInfo_LittleBoy3, + [EVENT_OBJ_GFX_BRENDAN_FISHING] = &gEventObjectGraphicsInfo_BrendanFishing, + [EVENT_OBJ_GFX_MAY_FISHING] = &gEventObjectGraphicsInfo_MayFishing, + [EVENT_OBJ_GFX_HOT_SPRINGS_OLD_WOMAN] = &gEventObjectGraphicsInfo_HotSpringsOldWoman, + [EVENT_OBJ_GFX_SS_TIDAL] = &gEventObjectGraphicsInfo_SSTidal, + [EVENT_OBJ_GFX_SUBMARINE_SHADOW] = &gEventObjectGraphicsInfo_SubmarineShadow, + [EVENT_OBJ_GFX_PICHU_DOLL] = &gEventObjectGraphicsInfo_PichuDoll, + [EVENT_OBJ_GFX_PIKACHU_DOLL] = &gEventObjectGraphicsInfo_PikachuDoll, + [EVENT_OBJ_GFX_MARILL_DOLL] = &gEventObjectGraphicsInfo_MarillDoll, + [EVENT_OBJ_GFX_TOGEPI_DOLL] = &gEventObjectGraphicsInfo_TogepiDoll, + [EVENT_OBJ_GFX_CYNDAQUIL_DOLL] = &gEventObjectGraphicsInfo_CyndaquilDoll, + [EVENT_OBJ_GFX_CHIKORITA_DOLL] = &gEventObjectGraphicsInfo_ChikoritaDoll, + [EVENT_OBJ_GFX_TOTODILE_DOLL] = &gEventObjectGraphicsInfo_TotodileDoll, + [EVENT_OBJ_GFX_JIGGLYPUFF_DOLL] = &gEventObjectGraphicsInfo_JigglypuffDoll, + [EVENT_OBJ_GFX_MEOWTH_DOLL] = &gEventObjectGraphicsInfo_MeowthDoll, + [EVENT_OBJ_GFX_CLEFAIRY_DOLL] = &gEventObjectGraphicsInfo_ClefairyDoll, + [EVENT_OBJ_GFX_DITTO_DOLL] = &gEventObjectGraphicsInfo_DittoDoll, + [EVENT_OBJ_GFX_SMOOCHUM_DOLL] = &gEventObjectGraphicsInfo_SmoochumDoll, + [EVENT_OBJ_GFX_TREECKO_DOLL] = &gEventObjectGraphicsInfo_TreeckoDoll, + [EVENT_OBJ_GFX_TORCHIC_DOLL] = &gEventObjectGraphicsInfo_TorchicDoll, + [EVENT_OBJ_GFX_MUDKIP_DOLL] = &gEventObjectGraphicsInfo_MudkipDoll, + [EVENT_OBJ_GFX_DUSKULL_DOLL] = &gEventObjectGraphicsInfo_DuskullDoll, + [EVENT_OBJ_GFX_WYNAUT_DOLL] = &gEventObjectGraphicsInfo_WynautDoll, + [EVENT_OBJ_GFX_BALTOY_DOLL] = &gEventObjectGraphicsInfo_BaltoyDoll, + [EVENT_OBJ_GFX_KECLEON_DOLL] = &gEventObjectGraphicsInfo_KecleonDoll, + [EVENT_OBJ_GFX_AZURILL_DOLL] = &gEventObjectGraphicsInfo_AzurillDoll, + [EVENT_OBJ_GFX_SKITTY_DOLL] = &gEventObjectGraphicsInfo_SkittyDoll, + [EVENT_OBJ_GFX_SWABLU_DOLL] = &gEventObjectGraphicsInfo_SwabluDoll, + [EVENT_OBJ_GFX_GULPIN_DOLL] = &gEventObjectGraphicsInfo_GulpinDoll, + [EVENT_OBJ_GFX_LOTAD_DOLL] = &gEventObjectGraphicsInfo_LotadDoll, + [EVENT_OBJ_GFX_SEEDOT_DOLL] = &gEventObjectGraphicsInfo_SeedotDoll, + [EVENT_OBJ_GFX_PIKA_CUSHION] = &gEventObjectGraphicsInfo_PikaCushion, + [EVENT_OBJ_GFX_ROUND_CUSHION] = &gEventObjectGraphicsInfo_RoundCushion, + [EVENT_OBJ_GFX_KISS_CUSHION] = &gEventObjectGraphicsInfo_KissCushion, + [EVENT_OBJ_GFX_ZIGZAG_CUSHION] = &gEventObjectGraphicsInfo_ZigzagCushion, + [EVENT_OBJ_GFX_SPIN_CUSHION] = &gEventObjectGraphicsInfo_SpinCushion, + [EVENT_OBJ_GFX_DIAMOND_CUSHION] = &gEventObjectGraphicsInfo_DiamondCushion, + [EVENT_OBJ_GFX_BALL_CUSHION] = &gEventObjectGraphicsInfo_BallCushion, + [EVENT_OBJ_GFX_GRASS_CUSHION] = &gEventObjectGraphicsInfo_GrassCushion, + [EVENT_OBJ_GFX_FIRE_CUSHION] = &gEventObjectGraphicsInfo_FireCushion, + [EVENT_OBJ_GFX_WATER_CUSHION] = &gEventObjectGraphicsInfo_WaterCushion, + [EVENT_OBJ_GFX_BIG_SNORLAX_DOLL] = &gEventObjectGraphicsInfo_BigSnorlaxDoll, + [EVENT_OBJ_GFX_BIG_RHYDON_DOLL] = &gEventObjectGraphicsInfo_BigRhydonDoll, + [EVENT_OBJ_GFX_BIG_LAPRAS_DOLL] = &gEventObjectGraphicsInfo_BigLaprasDoll, + [EVENT_OBJ_GFX_BIG_VENUSAUR_DOLL] = &gEventObjectGraphicsInfo_BigVenusaurDoll, + [EVENT_OBJ_GFX_BIG_CHARIZARD_DOLL] = &gEventObjectGraphicsInfo_BigCharizardDoll, + [EVENT_OBJ_GFX_BIG_BLASTOISE_DOLL] = &gEventObjectGraphicsInfo_BigBlastoiseDoll, + [EVENT_OBJ_GFX_BIG_WAILMER_DOLL] = &gEventObjectGraphicsInfo_BigWailmerDoll, + [EVENT_OBJ_GFX_BIG_REGIROCK_DOLL] = &gEventObjectGraphicsInfo_BigRegirockDoll, + [EVENT_OBJ_GFX_BIG_REGICE_DOLL] = &gEventObjectGraphicsInfo_BigRegiceDoll, + [EVENT_OBJ_GFX_BIG_REGISTEEL_DOLL] = &gEventObjectGraphicsInfo_BigRegisteelDoll, + [EVENT_OBJ_GFX_LATIAS] = &gEventObjectGraphicsInfo_Latias, + [EVENT_OBJ_GFX_LATIOS] = &gEventObjectGraphicsInfo_Latios, + [EVENT_OBJ_GFX_BOY_5] = &gEventObjectGraphicsInfo_Boy5, + [EVENT_OBJ_GFX_CONTEST_JUDGE] = &gEventObjectGraphicsInfo_ContestJudge, + [EVENT_OBJ_GFX_BRENDAN_WATERING] = &gEventObjectGraphicsInfo_BrendanWatering, + [EVENT_OBJ_GFX_MAY_WATERING] = &gEventObjectGraphicsInfo_MayWatering, + [EVENT_OBJ_GFX_BRENDAN_DECORATING] = &gEventObjectGraphicsInfo_BrendanDecorating, + [EVENT_OBJ_GFX_MAY_DECORATING] = &gEventObjectGraphicsInfo_MayDecorating, + [EVENT_OBJ_GFX_ARCHIE] = &gEventObjectGraphicsInfo_Archie, + [EVENT_OBJ_GFX_MAXIE] = &gEventObjectGraphicsInfo_Maxie, + [EVENT_OBJ_GFX_KYOGRE_1] = &gEventObjectGraphicsInfo_Kyogre1, + [EVENT_OBJ_GFX_GROUDON_1] = &gEventObjectGraphicsInfo_Groudon1, + [EVENT_OBJ_GFX_FOSSIL] = &gEventObjectGraphicsInfo_Fossil, + [EVENT_OBJ_GFX_REGIROCK] = &gEventObjectGraphicsInfo_Regirock, + [EVENT_OBJ_GFX_REGICE] = &gEventObjectGraphicsInfo_Regice, + [EVENT_OBJ_GFX_REGISTEEL] = &gEventObjectGraphicsInfo_Registeel, + [EVENT_OBJ_GFX_SKITTY] = &gEventObjectGraphicsInfo_Skitty, + [EVENT_OBJ_GFX_KECLEON_1] = &gEventObjectGraphicsInfo_Kecleon1, + [EVENT_OBJ_GFX_KYOGRE_2] = &gEventObjectGraphicsInfo_Kyogre2, + [EVENT_OBJ_GFX_GROUDON_2] = &gEventObjectGraphicsInfo_Groudon2, + [EVENT_OBJ_GFX_RAYQUAZA] = &gEventObjectGraphicsInfo_Rayquaza, + [EVENT_OBJ_GFX_ZIGZAGOON] = &gEventObjectGraphicsInfo_Zigzagoon, + [EVENT_OBJ_GFX_PIKACHU] = &gEventObjectGraphicsInfo_Pikachu, + [EVENT_OBJ_GFX_AZUMARILL] = &gEventObjectGraphicsInfo_Azumarill, + [EVENT_OBJ_GFX_WINGULL] = &gEventObjectGraphicsInfo_Wingull, + [EVENT_OBJ_GFX_KECLEON_2] = &gEventObjectGraphicsInfo_Kecleon2, + [EVENT_OBJ_GFX_TUBER_M_SWIMMING] = &gEventObjectGraphicsInfo_TuberMSwimming, + [EVENT_OBJ_GFX_AZURILL] = &gEventObjectGraphicsInfo_Azurill, + [EVENT_OBJ_GFX_MOM] = &gEventObjectGraphicsInfo_Mom, + [EVENT_OBJ_GFX_LINK_BRENDAN] = &gEventObjectGraphicsInfo_LinkBrendan, + [EVENT_OBJ_GFX_LINK_MAY] = &gEventObjectGraphicsInfo_LinkMay }; #endif //POKERUBY_EVENT_OBJECT_GRAPHICS_INFO_POINTERS_H diff --git a/src/data/graphics.c b/src/data/graphics.c index 7aa3a4384..20d8f91d0 100644 --- a/src/data/graphics.c +++ b/src/data/graphics.c @@ -289,16 +289,7 @@ const u8 unused_basic_frame_bin[] = INCBIN_U8("graphics/unused/basic_frame.bin.l const u8 gUnknown_08D1212C[] = INCBIN_U8("graphics/battle_interface/window.gbapal"); const u8 gUnknown_08D1214C[] = INCBIN_U8("graphics/battle_interface/hpbar.gbapal"); -const u8 gHealthboxElementsGfxTable[] = INCBIN_U8("graphics/battle_interface/hpbar.4bpp"); -const u8 gHealthboxElementsGfxTable_ExpBar[] = INCBIN_U8("graphics/battle_interface/expbar.4bpp"); -const u8 gHealthboxElementsGfxTable_StatusPsn[] = INCBIN_U8("graphics/battle_interface/status_psn.4bpp"); -const u8 gHealthboxElementsGfxTable_StatusPar[] = INCBIN_U8("graphics/battle_interface/status_par.4bpp"); -const u8 gHealthboxElementsGfxTable_StatusSlp[] = INCBIN_U8("graphics/battle_interface/status_slp.4bpp"); -const u8 gHealthboxElementsGfxTable_StatusFrz[] = INCBIN_U8("graphics/battle_interface/status_frz.4bpp"); -const u8 gHealthboxElementsGfxTable_StatusBrn[] = INCBIN_U8("graphics/battle_interface/status_brn.4bpp"); -const u8 gHealthboxElementsGfxTable_Misc[] = INCBIN_U8("graphics/battle_interface/misc.4bpp"); -const u8 gHealthboxElementsGfxTable_HpBarAnim[] = INCBIN_U8("graphics/battle_interface/hpbar_anim.4bpp"); -const u8 gHealthboxElementsGfxTable_MiscFrameEnd[] = INCBIN_U8("graphics/battle_interface/misc_frameend.4bpp"); +const u8 gHealthboxElementsGfxTable[][32] = INCBIN_U8("graphics/battle_interface/healthbox_elements.4bpp"); const u8 Tiles_D129AC[] = INCBIN_U8("graphics/battle_interface/ball_display.4bpp"); @@ -722,7 +713,7 @@ const u8 gBattleAnimSpritePalette_256[] = INCBIN_U8("graphics/battle_anims/sprit const u8 gBattleAnimSpriteSheet_257[] = INCBIN_U8("graphics/battle_anims/sprites/257.4bpp.lz"); const u8 gBattleAnimSpritePalette_257[] = INCBIN_U8("graphics/battle_anims/sprites/257.gbapal.lz"); -#include "pokemon_gfx.h" +#include "graphics/pokemon.h" const u8 gMonFrontPic_UnownExclamationMark[] = INCBIN_U8("graphics/pokemon/unown/front_exclamation_mark.4bpp.lz"); const u8 gMonBackPic_UnownExclamationMark[] = INCBIN_U8("graphics/pokemon/unown/back_exclamation_mark.4bpp.lz"); @@ -731,7 +722,7 @@ const u8 gMonFrontPic_UnownQuestionMark[] = INCBIN_U8("graphics/pokemon/unown/fr const u8 gMonBackPic_UnownQuestionMark[] = INCBIN_U8("graphics/pokemon/unown/back_question_mark.4bpp.lz"); const u8 gMonIcon_UnownQuestionMark[] = INCBIN_U8("graphics/pokemon/unown/icon_question_mark.4bpp"); -#include "trainer_gfx.h" +#include "graphics/trainers.h" const u8 gMonIcon_QuestionMark[] = INCBIN_U8("graphics/pokemon/question_mark/icon.4bpp"); const u8 gMonFootprint_QuestionMark[] = INCBIN_U8("graphics/pokemon/question_mark/footprint.1bpp"); @@ -945,7 +936,7 @@ const u8 gUnknown_08E788E4[] = INCBIN_U8("graphics/interface/berry_tag.bin.lz"); const u8 gUnknown_08E78A84[] = INCBIN_U8("graphics/interface/berry_tag_title.bin.lz"); const u8 gBerryCheckCircle_Gfx[] = INCBIN_U8("graphics/interface/check_berry_circle.4bpp.lz"); -#include "berry_gfx.h" +#include "graphics/berries.h" const u8 gBattleAnimSpritePalette_282[] = INCBIN_U8("graphics/battle_anims/sprites/282.gbapal.lz"); const u8 gBattleAnimSpriteSheet_282[] = INCBIN_U8("graphics/battle_anims/sprites/282.4bpp.lz"); diff --git a/src/data/berry_gfx.h b/src/data/graphics/berries.h index 9970c4ba9..9970c4ba9 100644 --- a/src/data/berry_gfx.h +++ b/src/data/graphics/berries.h diff --git a/src/data/pokemon_gfx.h b/src/data/graphics/pokemon.h index ea68afa2f..ea68afa2f 100644 --- a/src/data/pokemon_gfx.h +++ b/src/data/graphics/pokemon.h diff --git a/src/data/trainer_gfx.h b/src/data/graphics/trainers.h index 9c0a95fe2..9c0a95fe2 100644 --- a/src/data/trainer_gfx.h +++ b/src/data/graphics/trainers.h diff --git a/src/data/wild_encounters.json b/src/data/wild_encounters.json new file mode 100644 index 000000000..9adbc28de --- /dev/null +++ b/src/data/wild_encounters.json @@ -0,0 +1,18912 @@ +{ + "wild_encounter_groups": [ + { + "label": "gWildMonHeaders", + "for_maps": true, + "fields": [ + { + "type": "land_mons", + "encounter_rates": [ + 20, 20, 10, 10, 10, 10, 5, 5, 4, 4, 1, 1 + ] + }, + { + "type": "water_mons", + "encounter_rates": [ + 60, 30, 5, 4, 1 + ] + }, + { + "type": "rock_smash_mons", + "encounter_rates": [ + 60, 30, 5, 4, 1 + ] + }, + { + "type": "fishing_mons", + "encounter_rates": [ + 70, 30, 60, 20, 20, 40, 40, 15, 4, 1 + ] + } + ], + "encounters": [ + { + "map": "MAP_PETALBURG_CITY", + "base_label": "PetalburgCity_Ruby", + "water_mons": { + "encounter_rate": 1, + "mons": [ + { + "min_level": 20, + "max_level": 30, + "species": "SPECIES_MARILL" + }, + { + "min_level": 10, + "max_level": 20, + "species": "SPECIES_MARILL" + }, + { + "min_level": 30, + "max_level": 35, + "species": "SPECIES_MARILL" + }, + { + "min_level": 5, + "max_level": 10, + "species": "SPECIES_MARILL" + }, + { + "min_level": 5, + "max_level": 10, + "species": "SPECIES_MARILL" + } + ] + }, + "fishing_mons": { + "encounter_rate": 10, + "mons": [ + { + "min_level": 5, + "max_level": 10, + "species": "SPECIES_MAGIKARP" + }, + { + "min_level": 5, + "max_level": 10, + "species": "SPECIES_GOLDEEN" + }, + { + "min_level": 10, + "max_level": 30, + "species": "SPECIES_MAGIKARP" + }, + { + "min_level": 10, + "max_level": 30, + "species": "SPECIES_GOLDEEN" + }, + { + "min_level": 10, + "max_level": 30, + "species": "SPECIES_CORPHISH" + }, + { + "min_level": 25, + "max_level": 30, + "species": "SPECIES_CORPHISH" + }, + { + "min_level": 30, + "max_level": 35, + "species": "SPECIES_CORPHISH" + }, + { + "min_level": 20, + "max_level": 25, + "species": "SPECIES_CORPHISH" + }, + { + "min_level": 35, + "max_level": 40, + "species": "SPECIES_CORPHISH" + }, + { + "min_level": 40, + "max_level": 45, + "species": "SPECIES_CORPHISH" + } + ] + } + }, + { + "map": "MAP_SLATEPORT_CITY", + "base_label": "SlateportCity_Ruby", + "water_mons": { + "encounter_rate": 4, + "mons": [ + { + "min_level": 5, + "max_level": 35, + "species": "SPECIES_TENTACOOL" + }, + { + "min_level": 10, + "max_level": 30, + "species": "SPECIES_WINGULL" + }, + { + "min_level": 15, + "max_level": 25, + "species": "SPECIES_WINGULL" + }, + { + "min_level": 25, + "max_level": 30, + "species": "SPECIES_PELIPPER" + }, + { + "min_level": 25, + "max_level": 30, + "species": "SPECIES_PELIPPER" + } + ] + }, + "fishing_mons": { + "encounter_rate": 10, + "mons": [ + { + "min_level": 5, + "max_level": 10, + "species": "SPECIES_MAGIKARP" + }, + { + "min_level": 5, + "max_level": 10, + "species": "SPECIES_TENTACOOL" + }, + { + "min_level": 10, + "max_level": 30, + "species": "SPECIES_MAGIKARP" + }, + { + "min_level": 10, + "max_level": 30, + "species": "SPECIES_TENTACOOL" + }, + { + "min_level": 10, + "max_level": 30, + "species": "SPECIES_WAILMER" + }, + { + "min_level": 25, + "max_level": 30, + "species": "SPECIES_WAILMER" + }, + { + "min_level": 30, + "max_level": 35, + "species": "SPECIES_WAILMER" + }, + { + "min_level": 20, + "max_level": 25, + "species": "SPECIES_WAILMER" + }, + { + "min_level": 35, + "max_level": 40, + "species": "SPECIES_WAILMER" + }, + { + "min_level": 40, + "max_level": 45, + "species": "SPECIES_WAILMER" + } + ] + } + }, + { + "map": "MAP_LILYCOVE_CITY", + "base_label": "LilycoveCity_Ruby", + "water_mons": { + "encounter_rate": 4, + "mons": [ + { + "min_level": 5, + "max_level": 35, + "species": "SPECIES_TENTACOOL" + }, + { + "min_level": 10, + "max_level": 30, + "species": "SPECIES_WINGULL" + }, + { + "min_level": 15, + "max_level": 25, + "species": "SPECIES_WINGULL" + }, + { + "min_level": 25, + "max_level": 30, + "species": "SPECIES_PELIPPER" + }, + { + "min_level": 25, + "max_level": 30, + "species": "SPECIES_PELIPPER" + } + ] + }, + "fishing_mons": { + "encounter_rate": 10, + "mons": [ + { + "min_level": 5, + "max_level": 10, + "species": "SPECIES_MAGIKARP" + }, + { + "min_level": 5, + "max_level": 10, + "species": "SPECIES_TENTACOOL" + }, + { + "min_level": 10, + "max_level": 30, + "species": "SPECIES_MAGIKARP" + }, + { + "min_level": 10, + "max_level": 30, + "species": "SPECIES_TENTACOOL" + }, + { + "min_level": 10, + "max_level": 30, + "species": "SPECIES_WAILMER" + }, + { + "min_level": 25, + "max_level": 30, + "species": "SPECIES_WAILMER" + }, + { + "min_level": 30, + "max_level": 35, + "species": "SPECIES_WAILMER" + }, + { + "min_level": 25, + "max_level": 30, + "species": "SPECIES_STARYU" + }, + { + "min_level": 35, + "max_level": 40, + "species": "SPECIES_WAILMER" + }, + { + "min_level": 40, + "max_level": 45, + "species": "SPECIES_WAILMER" + } + ] + } + }, + { + "map": "MAP_MOSSDEEP_CITY", + "base_label": "MossdeepCity_Ruby", + "water_mons": { + "encounter_rate": 4, + "mons": [ + { + "min_level": 5, + "max_level": 35, + "species": "SPECIES_TENTACOOL" + }, + { + "min_level": 10, + "max_level": 30, + "species": "SPECIES_WINGULL" + }, + { + "min_level": 15, + "max_level": 25, + "species": "SPECIES_WINGULL" + }, + { + "min_level": 25, + "max_level": 30, + "species": "SPECIES_PELIPPER" + }, + { + "min_level": 25, + "max_level": 30, + "species": "SPECIES_PELIPPER" + } + ] + }, + "fishing_mons": { + "encounter_rate": 10, + "mons": [ + { + "min_level": 5, + "max_level": 10, + "species": "SPECIES_MAGIKARP" + }, + { + "min_level": 5, + "max_level": 10, + "species": "SPECIES_TENTACOOL" + }, + { + "min_level": 10, + "max_level": 30, + "species": "SPECIES_MAGIKARP" + }, + { + "min_level": 10, + "max_level": 30, + "species": "SPECIES_TENTACOOL" + }, + { + "min_level": 10, + "max_level": 30, + "species": "SPECIES_WAILMER" + }, + { + "min_level": 30, + "max_level": 35, + "species": "SPECIES_SHARPEDO" + }, + { + "min_level": 30, + "max_level": 35, + "species": "SPECIES_WAILMER" + }, + { + "min_level": 25, + "max_level": 30, + "species": "SPECIES_WAILMER" + }, + { + "min_level": 35, + "max_level": 40, + "species": "SPECIES_WAILMER" + }, + { + "min_level": 40, + "max_level": 45, + "species": "SPECIES_WAILMER" + } + ] + } + }, + { + "map": "MAP_SOOTOPOLIS_CITY", + "base_label": "SootopolisCity_Ruby", + "water_mons": { + "encounter_rate": 1, + "mons": [ + { + "min_level": 5, + "max_level": 35, + "species": "SPECIES_MAGIKARP" + }, + { + "min_level": 10, + "max_level": 30, + "species": "SPECIES_MAGIKARP" + }, + { + "min_level": 15, + "max_level": 25, + "species": "SPECIES_MAGIKARP" + }, + { + "min_level": 25, + "max_level": 30, + "species": "SPECIES_MAGIKARP" + }, + { + "min_level": 25, + "max_level": 30, + "species": "SPECIES_MAGIKARP" + } + ] + }, + "fishing_mons": { + "encounter_rate": 10, + "mons": [ + { + "min_level": 5, + "max_level": 10, + "species": "SPECIES_MAGIKARP" + }, + { + "min_level": 10, + "max_level": 15, + "species": "SPECIES_MAGIKARP" + }, + { + "min_level": 10, + "max_level": 30, + "species": "SPECIES_MAGIKARP" + }, + { + "min_level": 10, + "max_level": 30, + "species": "SPECIES_MAGIKARP" + }, + { + "min_level": 10, + "max_level": 30, + "species": "SPECIES_MAGIKARP" + }, + { + "min_level": 30, + "max_level": 35, + "species": "SPECIES_MAGIKARP" + }, + { + "min_level": 30, + "max_level": 35, + "species": "SPECIES_MAGIKARP" + }, + { + "min_level": 35, + "max_level": 40, + "species": "SPECIES_GYARADOS" + }, + { + "min_level": 35, + "max_level": 45, + "species": "SPECIES_GYARADOS" + }, + { + "min_level": 5, + "max_level": 45, + "species": "SPECIES_GYARADOS" + } + ] + } + }, + { + "map": "MAP_EVER_GRANDE_CITY", + "base_label": "EverGrandeCity_Ruby", + "water_mons": { + "encounter_rate": 4, + "mons": [ + { + "min_level": 5, + "max_level": 35, + "species": "SPECIES_TENTACOOL" + }, + { + "min_level": 10, + "max_level": 30, + "species": "SPECIES_WINGULL" + }, + { + "min_level": 15, + "max_level": 25, + "species": "SPECIES_WINGULL" + }, + { + "min_level": 25, + "max_level": 30, + "species": "SPECIES_PELIPPER" + }, + { + "min_level": 25, + "max_level": 30, + "species": "SPECIES_PELIPPER" + } + ] + }, + "fishing_mons": { + "encounter_rate": 10, + "mons": [ + { + "min_level": 5, + "max_level": 10, + "species": "SPECIES_MAGIKARP" + }, + { + "min_level": 5, + "max_level": 10, + "species": "SPECIES_TENTACOOL" + }, + { + "min_level": 10, + "max_level": 30, + "species": "SPECIES_MAGIKARP" + }, + { + "min_level": 10, + "max_level": 30, + "species": "SPECIES_LUVDISC" + }, + { + "min_level": 10, + "max_level": 30, + "species": "SPECIES_WAILMER" + }, + { + "min_level": 30, + "max_level": 35, + "species": "SPECIES_LUVDISC" + }, + { + "min_level": 30, + "max_level": 35, + "species": "SPECIES_WAILMER" + }, + { + "min_level": 30, + "max_level": 35, + "species": "SPECIES_CORSOLA" + }, + { + "min_level": 35, + "max_level": 40, + "species": "SPECIES_WAILMER" + }, + { + "min_level": 40, + "max_level": 45, + "species": "SPECIES_WAILMER" + } + ] + } + }, + { + "map": "MAP_METEOR_FALLS_1F_1R", + "base_label": "MeteorFalls_1F_1R_Ruby", + "land_mons": { + "encounter_rate": 10, + "mons": [ + { + "min_level": 16, + "max_level": 16, + "species": "SPECIES_ZUBAT" + }, + { + "min_level": 17, + "max_level": 17, + "species": "SPECIES_ZUBAT" + }, + { + "min_level": 18, + "max_level": 18, + "species": "SPECIES_ZUBAT" + }, + { + "min_level": 15, + "max_level": 15, + "species": "SPECIES_ZUBAT" + }, + { + "min_level": 14, + "max_level": 14, + "species": "SPECIES_ZUBAT" + }, + { + "min_level": 16, + "max_level": 16, + "species": "SPECIES_SOLROCK" + }, + { + "min_level": 18, + "max_level": 18, + "species": "SPECIES_SOLROCK" + }, + { + "min_level": 14, + "max_level": 14, + "species": "SPECIES_SOLROCK" + }, + { + "min_level": 19, + "max_level": 19, + "species": "SPECIES_ZUBAT" + }, + { + "min_level": 20, + "max_level": 20, + "species": "SPECIES_ZUBAT" + }, + { + "min_level": 19, + "max_level": 19, + "species": "SPECIES_ZUBAT" + }, + { + "min_level": 20, + "max_level": 20, + "species": "SPECIES_ZUBAT" + } + ] + }, + "water_mons": { + "encounter_rate": 4, + "mons": [ + { + "min_level": 5, + "max_level": 35, + "species": "SPECIES_ZUBAT" + }, + { + "min_level": 30, + "max_level": 35, + "species": "SPECIES_ZUBAT" + }, + { + "min_level": 25, + "max_level": 35, + "species": "SPECIES_SOLROCK" + }, + { + "min_level": 15, + "max_level": 25, + "species": "SPECIES_SOLROCK" + }, + { + "min_level": 5, + "max_level": 15, + "species": "SPECIES_SOLROCK" + } + ] + }, + "fishing_mons": { + "encounter_rate": 30, + "mons": [ + { + "min_level": 5, + "max_level": 10, + "species": "SPECIES_MAGIKARP" + }, + { + "min_level": 5, + "max_level": 10, + "species": "SPECIES_GOLDEEN" + }, + { + "min_level": 10, + "max_level": 30, + "species": "SPECIES_MAGIKARP" + }, + { + "min_level": 10, + "max_level": 30, + "species": "SPECIES_GOLDEEN" + }, + { + "min_level": 10, + "max_level": 30, + "species": "SPECIES_BARBOACH" + }, + { + "min_level": 25, + "max_level": 30, + "species": "SPECIES_BARBOACH" + }, + { + "min_level": 30, + "max_level": 35, + "species": "SPECIES_BARBOACH" + }, + { + "min_level": 20, + "max_level": 25, + "species": "SPECIES_BARBOACH" + }, + { + "min_level": 35, + "max_level": 40, + "species": "SPECIES_BARBOACH" + }, + { + "min_level": 40, + "max_level": 45, + "species": "SPECIES_BARBOACH" + } + ] + } + }, + { + "map": "MAP_METEOR_FALLS_1F_2R", + "base_label": "MeteorFalls_1F_2R_Ruby", + "land_mons": { + "encounter_rate": 10, + "mons": [ + { + "min_level": 33, + "max_level": 33, + "species": "SPECIES_GOLBAT" + }, + { + "min_level": 35, + "max_level": 35, + "species": "SPECIES_GOLBAT" + }, + { + "min_level": 33, + "max_level": 33, + "species": "SPECIES_GOLBAT" + }, + { + "min_level": 35, + "max_level": 35, + "species": "SPECIES_SOLROCK" + }, + { + "min_level": 33, + "max_level": 33, + "species": "SPECIES_SOLROCK" + }, + { + "min_level": 37, + "max_level": 37, + "species": "SPECIES_SOLROCK" + }, + { + "min_level": 35, + "max_level": 35, + "species": "SPECIES_GOLBAT" + }, + { + "min_level": 39, + "max_level": 39, + "species": "SPECIES_SOLROCK" + }, + { + "min_level": 38, + "max_level": 38, + "species": "SPECIES_GOLBAT" + }, + { + "min_level": 40, + "max_level": 40, + "species": "SPECIES_GOLBAT" + }, + { + "min_level": 38, + "max_level": 38, + "species": "SPECIES_GOLBAT" + }, + { + "min_level": 40, + "max_level": 40, + "species": "SPECIES_GOLBAT" + } + ] + }, + "water_mons": { + "encounter_rate": 4, + "mons": [ + { + "min_level": 30, + "max_level": 35, + "species": "SPECIES_GOLBAT" + }, + { + "min_level": 30, + "max_level": 35, + "species": "SPECIES_GOLBAT" + }, + { + "min_level": 25, + "max_level": 35, + "species": "SPECIES_SOLROCK" + }, + { + "min_level": 15, + "max_level": 25, + "species": "SPECIES_SOLROCK" + }, + { + "min_level": 5, + "max_level": 15, + "species": "SPECIES_SOLROCK" + } + ] + }, + "fishing_mons": { + "encounter_rate": 30, + "mons": [ + { + "min_level": 5, + "max_level": 10, + "species": "SPECIES_MAGIKARP" + }, + { + "min_level": 5, + "max_level": 10, + "species": "SPECIES_GOLDEEN" + }, + { + "min_level": 10, + "max_level": 30, + "species": "SPECIES_MAGIKARP" + }, + { + "min_level": 10, + "max_level": 30, + "species": "SPECIES_GOLDEEN" + }, + { + "min_level": 10, + "max_level": 30, + "species": "SPECIES_BARBOACH" + }, + { + "min_level": 25, + "max_level": 30, + "species": "SPECIES_BARBOACH" + }, + { + "min_level": 30, + "max_level": 35, + "species": "SPECIES_BARBOACH" + }, + { + "min_level": 30, + "max_level": 35, + "species": "SPECIES_WHISCASH" + }, + { + "min_level": 35, + "max_level": 40, + "species": "SPECIES_WHISCASH" + }, + { + "min_level": 40, + "max_level": 45, + "species": "SPECIES_WHISCASH" + } + ] + } + }, + { + "map": "MAP_METEOR_FALLS_B1F_1R", + "base_label": "MeteorFalls_B1F_1R_Ruby", + "land_mons": { + "encounter_rate": 10, + "mons": [ + { + "min_level": 33, + "max_level": 33, + "species": "SPECIES_GOLBAT" + }, + { + "min_level": 35, + "max_level": 35, + "species": "SPECIES_GOLBAT" + }, + { + "min_level": 33, + "max_level": 33, + "species": "SPECIES_GOLBAT" + }, + { + "min_level": 35, + "max_level": 35, + "species": "SPECIES_SOLROCK" + }, + { + "min_level": 33, + "max_level": 33, + "species": "SPECIES_SOLROCK" + }, + { + "min_level": 37, + "max_level": 37, + "species": "SPECIES_SOLROCK" + }, + { + "min_level": 35, + "max_level": 35, + "species": "SPECIES_GOLBAT" + }, + { + "min_level": 39, + "max_level": 39, + "species": "SPECIES_SOLROCK" + }, + { + "min_level": 38, + "max_level": 38, + "species": "SPECIES_GOLBAT" + }, + { + "min_level": 40, + "max_level": 40, + "species": "SPECIES_GOLBAT" + }, + { + "min_level": 38, + "max_level": 38, + "species": "SPECIES_GOLBAT" + }, + { + "min_level": 40, + "max_level": 40, + "species": "SPECIES_GOLBAT" + } + ] + }, + "water_mons": { + "encounter_rate": 4, + "mons": [ + { + "min_level": 30, + "max_level": 35, + "species": "SPECIES_GOLBAT" + }, + { + "min_level": 30, + "max_level": 35, + "species": "SPECIES_GOLBAT" + }, + { + "min_level": 25, + "max_level": 35, + "species": "SPECIES_SOLROCK" + }, + { + "min_level": 15, + "max_level": 25, + "species": "SPECIES_SOLROCK" + }, + { + "min_level": 5, + "max_level": 15, + "species": "SPECIES_SOLROCK" + } + ] + }, + "fishing_mons": { + "encounter_rate": 30, + "mons": [ + { + "min_level": 5, + "max_level": 10, + "species": "SPECIES_MAGIKARP" + }, + { + "min_level": 5, + "max_level": 10, + "species": "SPECIES_GOLDEEN" + }, + { + "min_level": 10, + "max_level": 30, + "species": "SPECIES_MAGIKARP" + }, + { + "min_level": 10, + "max_level": 30, + "species": "SPECIES_GOLDEEN" + }, + { + "min_level": 10, + "max_level": 30, + "species": "SPECIES_BARBOACH" + }, + { + "min_level": 25, + "max_level": 30, + "species": "SPECIES_BARBOACH" + }, + { + "min_level": 30, + "max_level": 35, + "species": "SPECIES_BARBOACH" + }, + { + "min_level": 30, + "max_level": 35, + "species": "SPECIES_WHISCASH" + }, + { + "min_level": 35, + "max_level": 40, + "species": "SPECIES_WHISCASH" + }, + { + "min_level": 40, + "max_level": 45, + "species": "SPECIES_WHISCASH" + } + ] + } + }, + { + "map": "MAP_METEOR_FALLS_B1F_2R", + "base_label": "MeteorFalls_B1F_2R_Ruby", + "land_mons": { + "encounter_rate": 10, + "mons": [ + { + "min_level": 33, + "max_level": 33, + "species": "SPECIES_GOLBAT" + }, + { + "min_level": 35, + "max_level": 35, + "species": "SPECIES_GOLBAT" + }, + { + "min_level": 30, + "max_level": 30, + "species": "SPECIES_BAGON" + }, + { + "min_level": 35, + "max_level": 35, + "species": "SPECIES_SOLROCK" + }, + { + "min_level": 35, + "max_level": 35, + "species": "SPECIES_BAGON" + }, + { + "min_level": 37, + "max_level": 37, + "species": "SPECIES_SOLROCK" + }, + { + "min_level": 25, + "max_level": 25, + "species": "SPECIES_BAGON" + }, + { + "min_level": 39, + "max_level": 39, + "species": "SPECIES_SOLROCK" + }, + { + "min_level": 38, + "max_level": 38, + "species": "SPECIES_GOLBAT" + }, + { + "min_level": 40, + "max_level": 40, + "species": "SPECIES_GOLBAT" + }, + { + "min_level": 38, + "max_level": 38, + "species": "SPECIES_GOLBAT" + }, + { + "min_level": 40, + "max_level": 40, + "species": "SPECIES_GOLBAT" + } + ] + }, + "water_mons": { + "encounter_rate": 4, + "mons": [ + { + "min_level": 30, + "max_level": 35, + "species": "SPECIES_GOLBAT" + }, + { + "min_level": 30, + "max_level": 35, + "species": "SPECIES_GOLBAT" + }, + { + "min_level": 25, + "max_level": 35, + "species": "SPECIES_SOLROCK" + }, + { + "min_level": 15, + "max_level": 25, + "species": "SPECIES_SOLROCK" + }, + { + "min_level": 5, + "max_level": 15, + "species": "SPECIES_SOLROCK" + } + ] + }, + "fishing_mons": { + "encounter_rate": 30, + "mons": [ + { + "min_level": 5, + "max_level": 10, + "species": "SPECIES_MAGIKARP" + }, + { + "min_level": 5, + "max_level": 10, + "species": "SPECIES_GOLDEEN" + }, + { + "min_level": 10, + "max_level": 30, + "species": "SPECIES_MAGIKARP" + }, + { + "min_level": 10, + "max_level": 30, + "species": "SPECIES_GOLDEEN" + }, + { + "min_level": 10, + "max_level": 30, + "species": "SPECIES_BARBOACH" + }, + { + "min_level": 25, + "max_level": 30, + "species": "SPECIES_BARBOACH" + }, + { + "min_level": 30, + "max_level": 35, + "species": "SPECIES_BARBOACH" + }, + { + "min_level": 30, + "max_level": 35, + "species": "SPECIES_WHISCASH" + }, + { + "min_level": 35, + "max_level": 40, + "species": "SPECIES_WHISCASH" + }, + { + "min_level": 40, + "max_level": 45, + "species": "SPECIES_WHISCASH" + } + ] + } + }, + { + "map": "MAP_RUSTURF_TUNNEL", + "base_label": "RusturfTunnel_Ruby", + "land_mons": { + "encounter_rate": 10, + "mons": [ + { + "min_level": 6, + "max_level": 6, + "species": "SPECIES_WHISMUR" + }, + { + "min_level": 7, + "max_level": 7, + "species": "SPECIES_WHISMUR" + }, + { + "min_level": 6, + "max_level": 6, + "species": "SPECIES_WHISMUR" + }, + { + "min_level": 6, + "max_level": 6, + "species": "SPECIES_WHISMUR" + }, + { + "min_level": 7, + "max_level": 7, + "species": "SPECIES_WHISMUR" + }, + { + "min_level": 7, + "max_level": 7, + "species": "SPECIES_WHISMUR" + }, + { + "min_level": 5, + "max_level": 5, + "species": "SPECIES_WHISMUR" + }, + { + "min_level": 8, + "max_level": 8, + "species": "SPECIES_WHISMUR" + }, + { + "min_level": 5, + "max_level": 5, + "species": "SPECIES_WHISMUR" + }, + { + "min_level": 8, + "max_level": 8, + "species": "SPECIES_WHISMUR" + }, + { + "min_level": 5, + "max_level": 5, + "species": "SPECIES_WHISMUR" + }, + { + "min_level": 8, + "max_level": 8, + "species": "SPECIES_WHISMUR" + } + ] + } + }, + { + "map": "MAP_GRANITE_CAVE_1F", + "base_label": "GraniteCave_1F_Ruby", + "land_mons": { + "encounter_rate": 10, + "mons": [ + { + "min_level": 7, + "max_level": 7, + "species": "SPECIES_ZUBAT" + }, + { + "min_level": 8, + "max_level": 8, + "species": "SPECIES_MAKUHITA" + }, + { + "min_level": 7, + "max_level": 7, + "species": "SPECIES_MAKUHITA" + }, + { + "min_level": 8, + "max_level": 8, + "species": "SPECIES_ZUBAT" + }, + { + "min_level": 9, + "max_level": 9, + "species": "SPECIES_MAKUHITA" + }, + { + "min_level": 8, + "max_level": 8, + "species": "SPECIES_ABRA" + }, + { + "min_level": 10, + "max_level": 10, + "species": "SPECIES_MAKUHITA" + }, + { + "min_level": 6, + "max_level": 6, + "species": "SPECIES_MAKUHITA" + }, + { + "min_level": 7, + "max_level": 7, + "species": "SPECIES_GEODUDE" + }, + { + "min_level": 8, + "max_level": 8, + "species": "SPECIES_GEODUDE" + }, + { + "min_level": 6, + "max_level": 6, + "species": "SPECIES_GEODUDE" + }, + { + "min_level": 9, + "max_level": 9, + "species": "SPECIES_GEODUDE" + } + ] + } + }, + { + "map": "MAP_GRANITE_CAVE_B1F", + "base_label": "GraniteCave_B1F_Ruby", + "land_mons": { + "encounter_rate": 10, + "mons": [ + { + "min_level": 9, + "max_level": 9, + "species": "SPECIES_ZUBAT" + }, + { + "min_level": 10, + "max_level": 10, + "species": "SPECIES_ARON" + }, + { + "min_level": 9, + "max_level": 9, + "species": "SPECIES_ARON" + }, + { + "min_level": 11, + "max_level": 11, + "species": "SPECIES_ARON" + }, + { + "min_level": 10, + "max_level": 10, + "species": "SPECIES_ZUBAT" + }, + { + "min_level": 9, + "max_level": 9, + "species": "SPECIES_ABRA" + }, + { + "min_level": 10, + "max_level": 10, + "species": "SPECIES_MAKUHITA" + }, + { + "min_level": 11, + "max_level": 11, + "species": "SPECIES_MAKUHITA" + }, + { + "min_level": 10, + "max_level": 10, + "species": "SPECIES_MAWILE" + }, + { + "min_level": 10, + "max_level": 10, + "species": "SPECIES_MAWILE" + }, + { + "min_level": 9, + "max_level": 9, + "species": "SPECIES_MAWILE" + }, + { + "min_level": 11, + "max_level": 11, + "species": "SPECIES_MAWILE" + } + ] + } + }, + { + "map": "MAP_GRANITE_CAVE_B2F", + "base_label": "GraniteCave_B2F_Ruby", + "land_mons": { + "encounter_rate": 10, + "mons": [ + { + "min_level": 10, + "max_level": 10, + "species": "SPECIES_ZUBAT" + }, + { + "min_level": 11, + "max_level": 11, + "species": "SPECIES_ARON" + }, + { + "min_level": 10, + "max_level": 10, + "species": "SPECIES_ARON" + }, + { + "min_level": 11, + "max_level": 11, + "species": "SPECIES_ZUBAT" + }, + { + "min_level": 12, + "max_level": 12, + "species": "SPECIES_ARON" + }, + { + "min_level": 10, + "max_level": 10, + "species": "SPECIES_ABRA" + }, + { + "min_level": 10, + "max_level": 10, + "species": "SPECIES_MAWILE" + }, + { + "min_level": 11, + "max_level": 11, + "species": "SPECIES_MAWILE" + }, + { + "min_level": 12, + "max_level": 12, + "species": "SPECIES_MAWILE" + }, + { + "min_level": 10, + "max_level": 10, + "species": "SPECIES_MAWILE" + }, + { + "min_level": 12, + "max_level": 12, + "species": "SPECIES_MAWILE" + }, + { + "min_level": 10, + "max_level": 10, + "species": "SPECIES_MAWILE" + } + ] + }, + "rock_smash_mons": { + "encounter_rate": 20, + "mons": [ + { + "min_level": 10, + "max_level": 15, + "species": "SPECIES_GEODUDE" + }, + { + "min_level": 10, + "max_level": 20, + "species": "SPECIES_NOSEPASS" + }, + { + "min_level": 5, + "max_level": 10, + "species": "SPECIES_GEODUDE" + }, + { + "min_level": 15, + "max_level": 20, + "species": "SPECIES_GEODUDE" + }, + { + "min_level": 15, + "max_level": 20, + "species": "SPECIES_GEODUDE" + } + ] + } + }, + { + "map": "MAP_GRANITE_CAVE_STEVENS_ROOM", + "base_label": "GraniteCave_StevensRoom_Ruby", + "land_mons": { + "encounter_rate": 10, + "mons": [ + { + "min_level": 7, + "max_level": 7, + "species": "SPECIES_ZUBAT" + }, + { + "min_level": 8, + "max_level": 8, + "species": "SPECIES_MAKUHITA" + }, + { + "min_level": 7, + "max_level": 7, + "species": "SPECIES_MAKUHITA" + }, + { + "min_level": 8, + "max_level": 8, + "species": "SPECIES_ZUBAT" + }, + { + "min_level": 9, + "max_level": 9, + "species": "SPECIES_MAKUHITA" + }, + { + "min_level": 8, + "max_level": 8, + "species": "SPECIES_ABRA" + }, + { + "min_level": 10, + "max_level": 10, + "species": "SPECIES_MAKUHITA" + }, + { + "min_level": 6, + "max_level": 6, + "species": "SPECIES_MAKUHITA" + }, + { + "min_level": 7, + "max_level": 7, + "species": "SPECIES_ARON" + }, + { + "min_level": 8, + "max_level": 8, + "species": "SPECIES_ARON" + }, + { + "min_level": 7, + "max_level": 7, + "species": "SPECIES_ARON" + }, + { + "min_level": 8, + "max_level": 8, + "species": "SPECIES_ARON" + } + ] + } + }, + { + "map": "MAP_PETALBURG_WOODS", + "base_label": "PetalburgWoods_Ruby", + "land_mons": { + "encounter_rate": 20, + "mons": [ + { + "min_level": 5, + "max_level": 5, + "species": "SPECIES_ZIGZAGOON" + }, + { + "min_level": 5, + "max_level": 5, + "species": "SPECIES_WURMPLE" + }, + { + "min_level": 5, + "max_level": 5, + "species": "SPECIES_SHROOMISH" + }, + { + "min_level": 6, + "max_level": 6, + "species": "SPECIES_ZIGZAGOON" + }, + { + "min_level": 5, + "max_level": 5, + "species": "SPECIES_SILCOON" + }, + { + "min_level": 5, + "max_level": 5, + "species": "SPECIES_CASCOON" + }, + { + "min_level": 6, + "max_level": 6, + "species": "SPECIES_WURMPLE" + }, + { + "min_level": 6, + "max_level": 6, + "species": "SPECIES_SHROOMISH" + }, + { + "min_level": 5, + "max_level": 5, + "species": "SPECIES_TAILLOW" + }, + { + "min_level": 5, + "max_level": 5, + "species": "SPECIES_SLAKOTH" + }, + { + "min_level": 6, + "max_level": 6, + "species": "SPECIES_TAILLOW" + }, + { + "min_level": 6, + "max_level": 6, + "species": "SPECIES_SLAKOTH" + } + ] + } + }, + { + "map": "MAP_JAGGED_PASS", + "base_label": "JaggedPass_Ruby", + "land_mons": { + "encounter_rate": 20, + "mons": [ + { + "min_level": 19, + "max_level": 19, + "species": "SPECIES_NUMEL" + }, + { + "min_level": 19, + "max_level": 19, + "species": "SPECIES_NUMEL" + }, + { + "min_level": 19, + "max_level": 19, + "species": "SPECIES_MACHOP" + }, + { + "min_level": 18, + "max_level": 18, + "species": "SPECIES_NUMEL" + }, + { + "min_level": 18, + "max_level": 18, + "species": "SPECIES_SPOINK" + }, + { + "min_level": 18, + "max_level": 18, + "species": "SPECIES_MACHOP" + }, + { + "min_level": 19, + "max_level": 19, + "species": "SPECIES_SPOINK" + }, + { + "min_level": 20, + "max_level": 20, + "species": "SPECIES_MACHOP" + }, + { + "min_level": 20, + "max_level": 20, + "species": "SPECIES_NUMEL" + }, + { + "min_level": 20, + "max_level": 20, + "species": "SPECIES_SPOINK" + }, + { + "min_level": 20, + "max_level": 20, + "species": "SPECIES_NUMEL" + }, + { + "min_level": 20, + "max_level": 20, + "species": "SPECIES_SPOINK" + } + ] + } + }, + { + "map": "MAP_FIERY_PATH", + "base_label": "FieryPath_Ruby", + "land_mons": { + "encounter_rate": 10, + "mons": [ + { + "min_level": 15, + "max_level": 15, + "species": "SPECIES_NUMEL" + }, + { + "min_level": 15, + "max_level": 15, + "species": "SPECIES_KOFFING" + }, + { + "min_level": 16, + "max_level": 16, + "species": "SPECIES_NUMEL" + }, + { + "min_level": 15, + "max_level": 15, + "species": "SPECIES_MACHOP" + }, + { + "min_level": 15, + "max_level": 15, + "species": "SPECIES_TORKOAL" + }, + { + "min_level": 15, + "max_level": 15, + "species": "SPECIES_SLUGMA" + }, + { + "min_level": 16, + "max_level": 16, + "species": "SPECIES_KOFFING" + }, + { + "min_level": 16, + "max_level": 16, + "species": "SPECIES_MACHOP" + }, + { + "min_level": 14, + "max_level": 14, + "species": "SPECIES_TORKOAL" + }, + { + "min_level": 16, + "max_level": 16, + "species": "SPECIES_TORKOAL" + }, + { + "min_level": 14, + "max_level": 14, + "species": "SPECIES_GRIMER" + }, + { + "min_level": 14, + "max_level": 14, + "species": "SPECIES_GRIMER" + } + ] + } + }, + { + "map": "MAP_MT_PYRE_1F", + "base_label": "MtPyre_1F_Ruby", + "land_mons": { + "encounter_rate": 10, + "mons": [ + { + "min_level": 27, + "max_level": 27, + "species": "SPECIES_DUSKULL" + }, + { + "min_level": 28, + "max_level": 28, + "species": "SPECIES_DUSKULL" + }, + { + "min_level": 26, + "max_level": 26, + "species": "SPECIES_DUSKULL" + }, + { + "min_level": 25, + "max_level": 25, + "species": "SPECIES_DUSKULL" + }, + { + "min_level": 29, + "max_level": 29, + "species": "SPECIES_DUSKULL" + }, + { + "min_level": 24, + "max_level": 24, + "species": "SPECIES_DUSKULL" + }, + { + "min_level": 23, + "max_level": 23, + "species": "SPECIES_DUSKULL" + }, + { + "min_level": 22, + "max_level": 22, + "species": "SPECIES_DUSKULL" + }, + { + "min_level": 29, + "max_level": 29, + "species": "SPECIES_DUSKULL" + }, + { + "min_level": 24, + "max_level": 24, + "species": "SPECIES_DUSKULL" + }, + { + "min_level": 29, + "max_level": 29, + "species": "SPECIES_DUSKULL" + }, + { + "min_level": 24, + "max_level": 24, + "species": "SPECIES_DUSKULL" + } + ] + } + }, + { + "map": "MAP_MT_PYRE_2F", + "base_label": "MtPyre_2F_Ruby", + "land_mons": { + "encounter_rate": 10, + "mons": [ + { + "min_level": 27, + "max_level": 27, + "species": "SPECIES_DUSKULL" + }, + { + "min_level": 28, + "max_level": 28, + "species": "SPECIES_DUSKULL" + }, + { + "min_level": 26, + "max_level": 26, + "species": "SPECIES_DUSKULL" + }, + { + "min_level": 25, + "max_level": 25, + "species": "SPECIES_DUSKULL" + }, + { + "min_level": 29, + "max_level": 29, + "species": "SPECIES_DUSKULL" + }, + { + "min_level": 24, + "max_level": 24, + "species": "SPECIES_DUSKULL" + }, + { + "min_level": 23, + "max_level": 23, + "species": "SPECIES_DUSKULL" + }, + { + "min_level": 22, + "max_level": 22, + "species": "SPECIES_DUSKULL" + }, + { + "min_level": 29, + "max_level": 29, + "species": "SPECIES_DUSKULL" + }, + { + "min_level": 24, + "max_level": 24, + "species": "SPECIES_DUSKULL" + }, + { + "min_level": 29, + "max_level": 29, + "species": "SPECIES_DUSKULL" + }, + { + "min_level": 24, + "max_level": 24, + "species": "SPECIES_DUSKULL" + } + ] + } + }, + { + "map": "MAP_MT_PYRE_3F", + "base_label": "MtPyre_3F_Ruby", + "land_mons": { + "encounter_rate": 10, + "mons": [ + { + "min_level": 27, + "max_level": 27, + "species": "SPECIES_DUSKULL" + }, + { + "min_level": 28, + "max_level": 28, + "species": "SPECIES_DUSKULL" + }, + { + "min_level": 26, + "max_level": 26, + "species": "SPECIES_DUSKULL" + }, + { + "min_level": 25, + "max_level": 25, + "species": "SPECIES_DUSKULL" + }, + { + "min_level": 29, + "max_level": 29, + "species": "SPECIES_DUSKULL" + }, + { + "min_level": 24, + "max_level": 24, + "species": "SPECIES_DUSKULL" + }, + { + "min_level": 23, + "max_level": 23, + "species": "SPECIES_DUSKULL" + }, + { + "min_level": 22, + "max_level": 22, + "species": "SPECIES_DUSKULL" + }, + { + "min_level": 29, + "max_level": 29, + "species": "SPECIES_DUSKULL" + }, + { + "min_level": 24, + "max_level": 24, + "species": "SPECIES_DUSKULL" + }, + { + "min_level": 29, + "max_level": 29, + "species": "SPECIES_DUSKULL" + }, + { + "min_level": 24, + "max_level": 24, + "species": "SPECIES_DUSKULL" + } + ] + } + }, + { + "map": "MAP_MT_PYRE_4F", + "base_label": "MtPyre_4F_Ruby", + "land_mons": { + "encounter_rate": 10, + "mons": [ + { + "min_level": 27, + "max_level": 27, + "species": "SPECIES_DUSKULL" + }, + { + "min_level": 28, + "max_level": 28, + "species": "SPECIES_DUSKULL" + }, + { + "min_level": 26, + "max_level": 26, + "species": "SPECIES_DUSKULL" + }, + { + "min_level": 25, + "max_level": 25, + "species": "SPECIES_DUSKULL" + }, + { + "min_level": 29, + "max_level": 29, + "species": "SPECIES_DUSKULL" + }, + { + "min_level": 24, + "max_level": 24, + "species": "SPECIES_DUSKULL" + }, + { + "min_level": 23, + "max_level": 23, + "species": "SPECIES_DUSKULL" + }, + { + "min_level": 22, + "max_level": 22, + "species": "SPECIES_DUSKULL" + }, + { + "min_level": 27, + "max_level": 27, + "species": "SPECIES_SHUPPET" + }, + { + "min_level": 27, + "max_level": 27, + "species": "SPECIES_SHUPPET" + }, + { + "min_level": 25, + "max_level": 25, + "species": "SPECIES_SHUPPET" + }, + { + "min_level": 29, + "max_level": 29, + "species": "SPECIES_SHUPPET" + } + ] + } + }, + { + "map": "MAP_MT_PYRE_5F", + "base_label": "MtPyre_5F_Ruby", + "land_mons": { + "encounter_rate": 10, + "mons": [ + { + "min_level": 27, + "max_level": 27, + "species": "SPECIES_DUSKULL" + }, + { + "min_level": 28, + "max_level": 28, + "species": "SPECIES_DUSKULL" + }, + { + "min_level": 26, + "max_level": 26, + "species": "SPECIES_DUSKULL" + }, + { + "min_level": 25, + "max_level": 25, + "species": "SPECIES_DUSKULL" + }, + { + "min_level": 29, + "max_level": 29, + "species": "SPECIES_DUSKULL" + }, + { + "min_level": 24, + "max_level": 24, + "species": "SPECIES_DUSKULL" + }, + { + "min_level": 23, + "max_level": 23, + "species": "SPECIES_DUSKULL" + }, + { + "min_level": 22, + "max_level": 22, + "species": "SPECIES_DUSKULL" + }, + { + "min_level": 27, + "max_level": 27, + "species": "SPECIES_SHUPPET" + }, + { + "min_level": 27, + "max_level": 27, + "species": "SPECIES_SHUPPET" + }, + { + "min_level": 25, + "max_level": 25, + "species": "SPECIES_SHUPPET" + }, + { + "min_level": 29, + "max_level": 29, + "species": "SPECIES_SHUPPET" + } + ] + } + }, + { + "map": "MAP_MT_PYRE_6F", + "base_label": "MtPyre_6F_Ruby", + "land_mons": { + "encounter_rate": 10, + "mons": [ + { + "min_level": 27, + "max_level": 27, + "species": "SPECIES_DUSKULL" + }, + { + "min_level": 28, + "max_level": 28, + "species": "SPECIES_DUSKULL" + }, + { + "min_level": 26, + "max_level": 26, + "species": "SPECIES_DUSKULL" + }, + { + "min_level": 25, + "max_level": 25, + "species": "SPECIES_DUSKULL" + }, + { + "min_level": 29, + "max_level": 29, + "species": "SPECIES_DUSKULL" + }, + { + "min_level": 24, + "max_level": 24, + "species": "SPECIES_DUSKULL" + }, + { + "min_level": 23, + "max_level": 23, + "species": "SPECIES_DUSKULL" + }, + { + "min_level": 22, + "max_level": 22, + "species": "SPECIES_DUSKULL" + }, + { + "min_level": 27, + "max_level": 27, + "species": "SPECIES_SHUPPET" + }, + { + "min_level": 27, + "max_level": 27, + "species": "SPECIES_SHUPPET" + }, + { + "min_level": 25, + "max_level": 25, + "species": "SPECIES_SHUPPET" + }, + { + "min_level": 29, + "max_level": 29, + "species": "SPECIES_SHUPPET" + } + ] + } + }, + { + "map": "MAP_MT_PYRE_EXTERIOR", + "base_label": "MtPyre_Exterior_Ruby", + "land_mons": { + "encounter_rate": 10, + "mons": [ + { + "min_level": 27, + "max_level": 27, + "species": "SPECIES_DUSKULL" + }, + { + "min_level": 27, + "max_level": 27, + "species": "SPECIES_MEDITITE" + }, + { + "min_level": 28, + "max_level": 28, + "species": "SPECIES_DUSKULL" + }, + { + "min_level": 29, + "max_level": 29, + "species": "SPECIES_MEDITITE" + }, + { + "min_level": 29, + "max_level": 29, + "species": "SPECIES_DUSKULL" + }, + { + "min_level": 27, + "max_level": 27, + "species": "SPECIES_VULPIX" + }, + { + "min_level": 29, + "max_level": 29, + "species": "SPECIES_VULPIX" + }, + { + "min_level": 25, + "max_level": 25, + "species": "SPECIES_VULPIX" + }, + { + "min_level": 27, + "max_level": 27, + "species": "SPECIES_WINGULL" + }, + { + "min_level": 27, + "max_level": 27, + "species": "SPECIES_WINGULL" + }, + { + "min_level": 26, + "max_level": 26, + "species": "SPECIES_WINGULL" + }, + { + "min_level": 28, + "max_level": 28, + "species": "SPECIES_WINGULL" + } + ] + } + }, + { + "map": "MAP_MT_PYRE_SUMMIT", + "base_label": "MtPyre_Summit_Ruby", + "land_mons": { + "encounter_rate": 10, + "mons": [ + { + "min_level": 28, + "max_level": 28, + "species": "SPECIES_DUSKULL" + }, + { + "min_level": 29, + "max_level": 29, + "species": "SPECIES_DUSKULL" + }, + { + "min_level": 27, + "max_level": 27, + "species": "SPECIES_DUSKULL" + }, + { + "min_level": 26, + "max_level": 26, + "species": "SPECIES_DUSKULL" + }, + { + "min_level": 30, + "max_level": 30, + "species": "SPECIES_DUSKULL" + }, + { + "min_level": 25, + "max_level": 25, + "species": "SPECIES_DUSKULL" + }, + { + "min_level": 24, + "max_level": 24, + "species": "SPECIES_DUSKULL" + }, + { + "min_level": 28, + "max_level": 28, + "species": "SPECIES_SHUPPET" + }, + { + "min_level": 26, + "max_level": 26, + "species": "SPECIES_SHUPPET" + }, + { + "min_level": 30, + "max_level": 30, + "species": "SPECIES_SHUPPET" + }, + { + "min_level": 28, + "max_level": 28, + "species": "SPECIES_CHIMECHO" + }, + { + "min_level": 28, + "max_level": 28, + "species": "SPECIES_CHIMECHO" + } + ] + } + }, + { + "map": "MAP_SEAFLOOR_CAVERN_ENTRANCE", + "base_label": "SeafloorCavern_Entrance_Ruby", + "water_mons": { + "encounter_rate": 4, + "mons": [ + { + "min_level": 5, + "max_level": 35, + "species": "SPECIES_TENTACOOL" + }, + { + "min_level": 5, + "max_level": 35, + "species": "SPECIES_ZUBAT" + }, + { + "min_level": 30, + "max_level": 35, + "species": "SPECIES_ZUBAT" + }, + { + "min_level": 30, + "max_level": 35, + "species": "SPECIES_GOLBAT" + }, + { + "min_level": 30, + "max_level": 35, + "species": "SPECIES_GOLBAT" + } + ] + }, + "fishing_mons": { + "encounter_rate": 10, + "mons": [ + { + "min_level": 5, + "max_level": 10, + "species": "SPECIES_MAGIKARP" + }, + { + "min_level": 5, + "max_level": 10, + "species": "SPECIES_TENTACOOL" + }, + { + "min_level": 10, + "max_level": 30, + "species": "SPECIES_MAGIKARP" + }, + { + "min_level": 10, + "max_level": 30, + "species": "SPECIES_TENTACOOL" + }, + { + "min_level": 10, + "max_level": 30, + "species": "SPECIES_WAILMER" + }, + { + "min_level": 25, + "max_level": 30, + "species": "SPECIES_WAILMER" + }, + { + "min_level": 30, + "max_level": 35, + "species": "SPECIES_WAILMER" + }, + { + "min_level": 20, + "max_level": 25, + "species": "SPECIES_WAILMER" + }, + { + "min_level": 35, + "max_level": 40, + "species": "SPECIES_WAILMER" + }, + { + "min_level": 40, + "max_level": 45, + "species": "SPECIES_WAILMER" + } + ] + } + }, + { + "map": "MAP_SEAFLOOR_CAVERN_ROOM1", + "base_label": "SeafloorCavern_Room1_Ruby", + "land_mons": { + "encounter_rate": 4, + "mons": [ + { + "min_level": 30, + "max_level": 30, + "species": "SPECIES_ZUBAT" + }, + { + "min_level": 31, + "max_level": 31, + "species": "SPECIES_ZUBAT" + }, + { + "min_level": 32, + "max_level": 32, + "species": "SPECIES_ZUBAT" + }, + { + "min_level": 33, + "max_level": 33, + "species": "SPECIES_ZUBAT" + }, + { + "min_level": 28, + "max_level": 28, + "species": "SPECIES_ZUBAT" + }, + { + "min_level": 29, + "max_level": 29, + "species": "SPECIES_ZUBAT" + }, + { + "min_level": 34, + "max_level": 34, + "species": "SPECIES_ZUBAT" + }, + { + "min_level": 35, + "max_level": 35, + "species": "SPECIES_ZUBAT" + }, + { + "min_level": 34, + "max_level": 34, + "species": "SPECIES_GOLBAT" + }, + { + "min_level": 35, + "max_level": 35, + "species": "SPECIES_GOLBAT" + }, + { + "min_level": 33, + "max_level": 33, + "species": "SPECIES_GOLBAT" + }, + { + "min_level": 36, + "max_level": 36, + "species": "SPECIES_GOLBAT" + } + ] + } + }, + { + "map": "MAP_SEAFLOOR_CAVERN_ROOM2", + "base_label": "SeafloorCavern_Room2_Ruby", + "land_mons": { + "encounter_rate": 4, + "mons": [ + { + "min_level": 30, + "max_level": 30, + "species": "SPECIES_ZUBAT" + }, + { + "min_level": 31, + "max_level": 31, + "species": "SPECIES_ZUBAT" + }, + { + "min_level": 32, + "max_level": 32, + "species": "SPECIES_ZUBAT" + }, + { + "min_level": 33, + "max_level": 33, + "species": "SPECIES_ZUBAT" + }, + { + "min_level": 28, + "max_level": 28, + "species": "SPECIES_ZUBAT" + }, + { + "min_level": 29, + "max_level": 29, + "species": "SPECIES_ZUBAT" + }, + { + "min_level": 34, + "max_level": 34, + "species": "SPECIES_ZUBAT" + }, + { + "min_level": 35, + "max_level": 35, + "species": "SPECIES_ZUBAT" + }, + { + "min_level": 34, + "max_level": 34, + "species": "SPECIES_GOLBAT" + }, + { + "min_level": 35, + "max_level": 35, + "species": "SPECIES_GOLBAT" + }, + { + "min_level": 33, + "max_level": 33, + "species": "SPECIES_GOLBAT" + }, + { + "min_level": 36, + "max_level": 36, + "species": "SPECIES_GOLBAT" + } + ] + } + }, + { + "map": "MAP_SEAFLOOR_CAVERN_ROOM3", + "base_label": "SeafloorCavern_Room3_Ruby", + "land_mons": { + "encounter_rate": 4, + "mons": [ + { + "min_level": 30, + "max_level": 30, + "species": "SPECIES_ZUBAT" + }, + { + "min_level": 31, + "max_level": 31, + "species": "SPECIES_ZUBAT" + }, + { + "min_level": 32, + "max_level": 32, + "species": "SPECIES_ZUBAT" + }, + { + "min_level": 33, + "max_level": 33, + "species": "SPECIES_ZUBAT" + }, + { + "min_level": 28, + "max_level": 28, + "species": "SPECIES_ZUBAT" + }, + { + "min_level": 29, + "max_level": 29, + "species": "SPECIES_ZUBAT" + }, + { + "min_level": 34, + "max_level": 34, + "species": "SPECIES_ZUBAT" + }, + { + "min_level": 35, + "max_level": 35, + "species": "SPECIES_ZUBAT" + }, + { + "min_level": 34, + "max_level": 34, + "species": "SPECIES_GOLBAT" + }, + { + "min_level": 35, + "max_level": 35, + "species": "SPECIES_GOLBAT" + }, + { + "min_level": 33, + "max_level": 33, + "species": "SPECIES_GOLBAT" + }, + { + "min_level": 36, + "max_level": 36, + "species": "SPECIES_GOLBAT" + } + ] + } + }, + { + "map": "MAP_SEAFLOOR_CAVERN_ROOM4", + "base_label": "SeafloorCavern_Room4_Ruby", + "land_mons": { + "encounter_rate": 4, + "mons": [ + { + "min_level": 30, + "max_level": 30, + "species": "SPECIES_ZUBAT" + }, + { + "min_level": 31, + "max_level": 31, + "species": "SPECIES_ZUBAT" + }, + { + "min_level": 32, + "max_level": 32, + "species": "SPECIES_ZUBAT" + }, + { + "min_level": 33, + "max_level": 33, + "species": "SPECIES_ZUBAT" + }, + { + "min_level": 28, + "max_level": 28, + "species": "SPECIES_ZUBAT" + }, + { + "min_level": 29, + "max_level": 29, + "species": "SPECIES_ZUBAT" + }, + { + "min_level": 34, + "max_level": 34, + "species": "SPECIES_ZUBAT" + }, + { + "min_level": 35, + "max_level": 35, + "species": "SPECIES_ZUBAT" + }, + { + "min_level": 34, + "max_level": 34, + "species": "SPECIES_GOLBAT" + }, + { + "min_level": 35, + "max_level": 35, + "species": "SPECIES_GOLBAT" + }, + { + "min_level": 33, + "max_level": 33, + "species": "SPECIES_GOLBAT" + }, + { + "min_level": 36, + "max_level": 36, + "species": "SPECIES_GOLBAT" + } + ] + } + }, + { + "map": "MAP_SEAFLOOR_CAVERN_ROOM5", + "base_label": "SeafloorCavern_Room5_Ruby", + "land_mons": { + "encounter_rate": 4, + "mons": [ + { + "min_level": 30, + "max_level": 30, + "species": "SPECIES_ZUBAT" + }, + { + "min_level": 31, + "max_level": 31, + "species": "SPECIES_ZUBAT" + }, + { + "min_level": 32, + "max_level": 32, + "species": "SPECIES_ZUBAT" + }, + { + "min_level": 33, + "max_level": 33, + "species": "SPECIES_ZUBAT" + }, + { + "min_level": 28, + "max_level": 28, + "species": "SPECIES_ZUBAT" + }, + { + "min_level": 29, + "max_level": 29, + "species": "SPECIES_ZUBAT" + }, + { + "min_level": 34, + "max_level": 34, + "species": "SPECIES_ZUBAT" + }, + { + "min_level": 35, + "max_level": 35, + "species": "SPECIES_ZUBAT" + }, + { + "min_level": 34, + "max_level": 34, + "species": "SPECIES_GOLBAT" + }, + { + "min_level": 35, + "max_level": 35, + "species": "SPECIES_GOLBAT" + }, + { + "min_level": 33, + "max_level": 33, + "species": "SPECIES_GOLBAT" + }, + { + "min_level": 36, + "max_level": 36, + "species": "SPECIES_GOLBAT" + } + ] + } + }, + { + "map": "MAP_SEAFLOOR_CAVERN_ROOM6", + "base_label": "SeafloorCavern_Room6_Ruby", + "land_mons": { + "encounter_rate": 4, + "mons": [ + { + "min_level": 30, + "max_level": 30, + "species": "SPECIES_ZUBAT" + }, + { + "min_level": 31, + "max_level": 31, + "species": "SPECIES_ZUBAT" + }, + { + "min_level": 32, + "max_level": 32, + "species": "SPECIES_ZUBAT" + }, + { + "min_level": 33, + "max_level": 33, + "species": "SPECIES_ZUBAT" + }, + { + "min_level": 28, + "max_level": 28, + "species": "SPECIES_ZUBAT" + }, + { + "min_level": 29, + "max_level": 29, + "species": "SPECIES_ZUBAT" + }, + { + "min_level": 34, + "max_level": 34, + "species": "SPECIES_ZUBAT" + }, + { + "min_level": 35, + "max_level": 35, + "species": "SPECIES_ZUBAT" + }, + { + "min_level": 34, + "max_level": 34, + "species": "SPECIES_GOLBAT" + }, + { + "min_level": 35, + "max_level": 35, + "species": "SPECIES_GOLBAT" + }, + { + "min_level": 33, + "max_level": 33, + "species": "SPECIES_GOLBAT" + }, + { + "min_level": 36, + "max_level": 36, + "species": "SPECIES_GOLBAT" + } + ] + }, + "water_mons": { + "encounter_rate": 4, + "mons": [ + { + "min_level": 5, + "max_level": 35, + "species": "SPECIES_TENTACOOL" + }, + { + "min_level": 5, + "max_level": 35, + "species": "SPECIES_ZUBAT" + }, + { + "min_level": 30, + "max_level": 35, + "species": "SPECIES_ZUBAT" + }, + { + "min_level": 30, + "max_level": 35, + "species": "SPECIES_GOLBAT" + }, + { + "min_level": 30, + "max_level": 35, + "species": "SPECIES_GOLBAT" + } + ] + }, + "fishing_mons": { + "encounter_rate": 10, + "mons": [ + { + "min_level": 5, + "max_level": 10, + "species": "SPECIES_MAGIKARP" + }, + { + "min_level": 5, + "max_level": 10, + "species": "SPECIES_TENTACOOL" + }, + { + "min_level": 10, + "max_level": 30, + "species": "SPECIES_MAGIKARP" + }, + { + "min_level": 10, + "max_level": 30, + "species": "SPECIES_TENTACOOL" + }, + { + "min_level": 10, + "max_level": 30, + "species": "SPECIES_WAILMER" + }, + { + "min_level": 25, + "max_level": 30, + "species": "SPECIES_WAILMER" + }, + { + "min_level": 30, + "max_level": 35, + "species": "SPECIES_WAILMER" + }, + { + "min_level": 20, + "max_level": 25, + "species": "SPECIES_WAILMER" + }, + { + "min_level": 35, + "max_level": 40, + "species": "SPECIES_WAILMER" + }, + { + "min_level": 40, + "max_level": 45, + "species": "SPECIES_WAILMER" + } + ] + } + }, + { + "map": "MAP_SEAFLOOR_CAVERN_ROOM7", + "base_label": "SeafloorCavern_Room7_Ruby", + "land_mons": { + "encounter_rate": 4, + "mons": [ + { + "min_level": 30, + "max_level": 30, + "species": "SPECIES_ZUBAT" + }, + { + "min_level": 31, + "max_level": 31, + "species": "SPECIES_ZUBAT" + }, + { + "min_level": 32, + "max_level": 32, + "species": "SPECIES_ZUBAT" + }, + { + "min_level": 33, + "max_level": 33, + "species": "SPECIES_ZUBAT" + }, + { + "min_level": 28, + "max_level": 28, + "species": "SPECIES_ZUBAT" + }, + { + "min_level": 29, + "max_level": 29, + "species": "SPECIES_ZUBAT" + }, + { + "min_level": 34, + "max_level": 34, + "species": "SPECIES_ZUBAT" + }, + { + "min_level": 35, + "max_level": 35, + "species": "SPECIES_ZUBAT" + }, + { + "min_level": 34, + "max_level": 34, + "species": "SPECIES_GOLBAT" + }, + { + "min_level": 35, + "max_level": 35, + "species": "SPECIES_GOLBAT" + }, + { + "min_level": 33, + "max_level": 33, + "species": "SPECIES_GOLBAT" + }, + { + "min_level": 36, + "max_level": 36, + "species": "SPECIES_GOLBAT" + } + ] + }, + "water_mons": { + "encounter_rate": 4, + "mons": [ + { + "min_level": 5, + "max_level": 35, + "species": "SPECIES_TENTACOOL" + }, + { + "min_level": 5, + "max_level": 35, + "species": "SPECIES_ZUBAT" + }, + { + "min_level": 30, + "max_level": 35, + "species": "SPECIES_ZUBAT" + }, + { + "min_level": 30, + "max_level": 35, + "species": "SPECIES_GOLBAT" + }, + { + "min_level": 30, + "max_level": 35, + "species": "SPECIES_GOLBAT" + } + ] + }, + "fishing_mons": { + "encounter_rate": 10, + "mons": [ + { + "min_level": 5, + "max_level": 10, + "species": "SPECIES_MAGIKARP" + }, + { + "min_level": 5, + "max_level": 10, + "species": "SPECIES_TENTACOOL" + }, + { + "min_level": 10, + "max_level": 30, + "species": "SPECIES_MAGIKARP" + }, + { + "min_level": 10, + "max_level": 30, + "species": "SPECIES_TENTACOOL" + }, + { + "min_level": 10, + "max_level": 30, + "species": "SPECIES_WAILMER" + }, + { + "min_level": 25, + "max_level": 30, + "species": "SPECIES_WAILMER" + }, + { + "min_level": 30, + "max_level": 35, + "species": "SPECIES_WAILMER" + }, + { + "min_level": 20, + "max_level": 25, + "species": "SPECIES_WAILMER" + }, + { + "min_level": 35, + "max_level": 40, + "species": "SPECIES_WAILMER" + }, + { + "min_level": 40, + "max_level": 45, + "species": "SPECIES_WAILMER" + } + ] + } + }, + { + "map": "MAP_SEAFLOOR_CAVERN_ROOM8", + "base_label": "SeafloorCavern_Room8_Ruby", + "land_mons": { + "encounter_rate": 4, + "mons": [ + { + "min_level": 30, + "max_level": 30, + "species": "SPECIES_ZUBAT" + }, + { + "min_level": 31, + "max_level": 31, + "species": "SPECIES_ZUBAT" + }, + { + "min_level": 32, + "max_level": 32, + "species": "SPECIES_ZUBAT" + }, + { + "min_level": 33, + "max_level": 33, + "species": "SPECIES_ZUBAT" + }, + { + "min_level": 28, + "max_level": 28, + "species": "SPECIES_ZUBAT" + }, + { + "min_level": 29, + "max_level": 29, + "species": "SPECIES_ZUBAT" + }, + { + "min_level": 34, + "max_level": 34, + "species": "SPECIES_ZUBAT" + }, + { + "min_level": 35, + "max_level": 35, + "species": "SPECIES_ZUBAT" + }, + { + "min_level": 34, + "max_level": 34, + "species": "SPECIES_GOLBAT" + }, + { + "min_level": 35, + "max_level": 35, + "species": "SPECIES_GOLBAT" + }, + { + "min_level": 33, + "max_level": 33, + "species": "SPECIES_GOLBAT" + }, + { + "min_level": 36, + "max_level": 36, + "species": "SPECIES_GOLBAT" + } + ] + } + }, + { + "map": "MAP_CAVE_OF_ORIGIN_ENTRANCE", + "base_label": "CaveOfOrigin_Entrance_Ruby", + "land_mons": { + "encounter_rate": 4, + "mons": [ + { + "min_level": 30, + "max_level": 30, + "species": "SPECIES_ZUBAT" + }, + { + "min_level": 31, + "max_level": 31, + "species": "SPECIES_ZUBAT" + }, + { + "min_level": 32, + "max_level": 32, + "species": "SPECIES_ZUBAT" + }, + { + "min_level": 33, + "max_level": 33, + "species": "SPECIES_ZUBAT" + }, + { + "min_level": 28, + "max_level": 28, + "species": "SPECIES_ZUBAT" + }, + { + "min_level": 29, + "max_level": 29, + "species": "SPECIES_ZUBAT" + }, + { + "min_level": 34, + "max_level": 34, + "species": "SPECIES_ZUBAT" + }, + { + "min_level": 35, + "max_level": 35, + "species": "SPECIES_ZUBAT" + }, + { + "min_level": 34, + "max_level": 34, + "species": "SPECIES_GOLBAT" + }, + { + "min_level": 35, + "max_level": 35, + "species": "SPECIES_GOLBAT" + }, + { + "min_level": 33, + "max_level": 33, + "species": "SPECIES_GOLBAT" + }, + { + "min_level": 36, + "max_level": 36, + "species": "SPECIES_GOLBAT" + } + ] + } + }, + { + "map": "MAP_CAVE_OF_ORIGIN_1F", + "base_label": "CaveOfOrigin_1F_Ruby", + "land_mons": { + "encounter_rate": 4, + "mons": [ + { + "min_level": 30, + "max_level": 30, + "species": "SPECIES_ZUBAT" + }, + { + "min_level": 31, + "max_level": 31, + "species": "SPECIES_ZUBAT" + }, + { + "min_level": 32, + "max_level": 32, + "species": "SPECIES_ZUBAT" + }, + { + "min_level": 30, + "max_level": 30, + "species": "SPECIES_MAWILE" + }, + { + "min_level": 32, + "max_level": 32, + "species": "SPECIES_MAWILE" + }, + { + "min_level": 34, + "max_level": 34, + "species": "SPECIES_MAWILE" + }, + { + "min_level": 33, + "max_level": 33, + "species": "SPECIES_ZUBAT" + }, + { + "min_level": 34, + "max_level": 34, + "species": "SPECIES_ZUBAT" + }, + { + "min_level": 34, + "max_level": 34, + "species": "SPECIES_GOLBAT" + }, + { + "min_level": 35, + "max_level": 35, + "species": "SPECIES_GOLBAT" + }, + { + "min_level": 33, + "max_level": 33, + "species": "SPECIES_GOLBAT" + }, + { + "min_level": 36, + "max_level": 36, + "species": "SPECIES_GOLBAT" + } + ] + } + }, + { + "map": "MAP_CAVE_OF_ORIGIN_B1F", + "base_label": "CaveOfOrigin_B1F_Ruby", + "land_mons": { + "encounter_rate": 4, + "mons": [ + { + "min_level": 30, + "max_level": 30, + "species": "SPECIES_ZUBAT" + }, + { + "min_level": 31, + "max_level": 31, + "species": "SPECIES_ZUBAT" + }, + { + "min_level": 32, + "max_level": 32, + "species": "SPECIES_ZUBAT" + }, + { + "min_level": 30, + "max_level": 30, + "species": "SPECIES_MAWILE" + }, + { + "min_level": 32, + "max_level": 32, + "species": "SPECIES_MAWILE" + }, + { + "min_level": 34, + "max_level": 34, + "species": "SPECIES_MAWILE" + }, + { + "min_level": 33, + "max_level": 33, + "species": "SPECIES_ZUBAT" + }, + { + "min_level": 34, + "max_level": 34, + "species": "SPECIES_ZUBAT" + }, + { + "min_level": 34, + "max_level": 34, + "species": "SPECIES_GOLBAT" + }, + { + "min_level": 35, + "max_level": 35, + "species": "SPECIES_GOLBAT" + }, + { + "min_level": 33, + "max_level": 33, + "species": "SPECIES_GOLBAT" + }, + { + "min_level": 36, + "max_level": 36, + "species": "SPECIES_GOLBAT" + } + ] + } + }, + { + "map": "MAP_CAVE_OF_ORIGIN_B2F", + "base_label": "CaveOfOrigin_B2F_Ruby", + "land_mons": { + "encounter_rate": 4, + "mons": [ + { + "min_level": 30, + "max_level": 30, + "species": "SPECIES_ZUBAT" + }, + { + "min_level": 31, + "max_level": 31, + "species": "SPECIES_ZUBAT" + }, + { + "min_level": 32, + "max_level": 32, + "species": "SPECIES_ZUBAT" + }, + { + "min_level": 30, + "max_level": 30, + "species": "SPECIES_MAWILE" + }, + { + "min_level": 32, + "max_level": 32, + "species": "SPECIES_MAWILE" + }, + { + "min_level": 34, + "max_level": 34, + "species": "SPECIES_MAWILE" + }, + { + "min_level": 33, + "max_level": 33, + "species": "SPECIES_ZUBAT" + }, + { + "min_level": 34, + "max_level": 34, + "species": "SPECIES_ZUBAT" + }, + { + "min_level": 34, + "max_level": 34, + "species": "SPECIES_GOLBAT" + }, + { + "min_level": 35, + "max_level": 35, + "species": "SPECIES_GOLBAT" + }, + { + "min_level": 33, + "max_level": 33, + "species": "SPECIES_GOLBAT" + }, + { + "min_level": 36, + "max_level": 36, + "species": "SPECIES_GOLBAT" + } + ] + } + }, + { + "map": "MAP_CAVE_OF_ORIGIN_B3F", + "base_label": "CaveOfOrigin_B3F_Ruby", + "land_mons": { + "encounter_rate": 4, + "mons": [ + { + "min_level": 30, + "max_level": 30, + "species": "SPECIES_ZUBAT" + }, + { + "min_level": 31, + "max_level": 31, + "species": "SPECIES_ZUBAT" + }, + { + "min_level": 32, + "max_level": 32, + "species": "SPECIES_ZUBAT" + }, + { + "min_level": 30, + "max_level": 30, + "species": "SPECIES_MAWILE" + }, + { + "min_level": 32, + "max_level": 32, + "species": "SPECIES_MAWILE" + }, + { + "min_level": 34, + "max_level": 34, + "species": "SPECIES_MAWILE" + }, + { + "min_level": 33, + "max_level": 33, + "species": "SPECIES_ZUBAT" + }, + { + "min_level": 34, + "max_level": 34, + "species": "SPECIES_ZUBAT" + }, + { + "min_level": 34, + "max_level": 34, + "species": "SPECIES_GOLBAT" + }, + { + "min_level": 35, + "max_level": 35, + "species": "SPECIES_GOLBAT" + }, + { + "min_level": 33, + "max_level": 33, + "species": "SPECIES_GOLBAT" + }, + { + "min_level": 36, + "max_level": 36, + "species": "SPECIES_GOLBAT" + } + ] + } + }, + { + "map": "MAP_VICTORY_ROAD_1F", + "base_label": "VictoryRoad_1F_Ruby", + "land_mons": { + "encounter_rate": 10, + "mons": [ + { + "min_level": 40, + "max_level": 40, + "species": "SPECIES_GOLBAT" + }, + { + "min_level": 40, + "max_level": 40, + "species": "SPECIES_HARIYAMA" + }, + { + "min_level": 40, + "max_level": 40, + "species": "SPECIES_LAIRON" + }, + { + "min_level": 40, + "max_level": 40, + "species": "SPECIES_LOUDRED" + }, + { + "min_level": 36, + "max_level": 36, + "species": "SPECIES_ZUBAT" + }, + { + "min_level": 36, + "max_level": 36, + "species": "SPECIES_MAKUHITA" + }, + { + "min_level": 38, + "max_level": 38, + "species": "SPECIES_GOLBAT" + }, + { + "min_level": 38, + "max_level": 38, + "species": "SPECIES_HARIYAMA" + }, + { + "min_level": 36, + "max_level": 36, + "species": "SPECIES_ARON" + }, + { + "min_level": 36, + "max_level": 36, + "species": "SPECIES_WHISMUR" + }, + { + "min_level": 36, + "max_level": 36, + "species": "SPECIES_ARON" + }, + { + "min_level": 36, + "max_level": 36, + "species": "SPECIES_WHISMUR" + } + ] + } + }, + { + "map": "MAP_VICTORY_ROAD_B1F", + "base_label": "VictoryRoad_B1F_Ruby", + "land_mons": { + "encounter_rate": 10, + "mons": [ + { + "min_level": 40, + "max_level": 40, + "species": "SPECIES_GOLBAT" + }, + { + "min_level": 40, + "max_level": 40, + "species": "SPECIES_HARIYAMA" + }, + { + "min_level": 40, + "max_level": 40, + "species": "SPECIES_LAIRON" + }, + { + "min_level": 40, + "max_level": 40, + "species": "SPECIES_MEDICHAM" + }, + { + "min_level": 38, + "max_level": 38, + "species": "SPECIES_GOLBAT" + }, + { + "min_level": 38, + "max_level": 38, + "species": "SPECIES_HARIYAMA" + }, + { + "min_level": 42, + "max_level": 42, + "species": "SPECIES_GOLBAT" + }, + { + "min_level": 42, + "max_level": 42, + "species": "SPECIES_HARIYAMA" + }, + { + "min_level": 42, + "max_level": 42, + "species": "SPECIES_LAIRON" + }, + { + "min_level": 38, + "max_level": 38, + "species": "SPECIES_MEDITITE" + }, + { + "min_level": 42, + "max_level": 42, + "species": "SPECIES_LAIRON" + }, + { + "min_level": 38, + "max_level": 38, + "species": "SPECIES_MEDITITE" + } + ] + }, + "rock_smash_mons": { + "encounter_rate": 20, + "mons": [ + { + "min_level": 30, + "max_level": 40, + "species": "SPECIES_GRAVELER" + }, + { + "min_level": 30, + "max_level": 40, + "species": "SPECIES_GEODUDE" + }, + { + "min_level": 35, + "max_level": 40, + "species": "SPECIES_GRAVELER" + }, + { + "min_level": 35, + "max_level": 40, + "species": "SPECIES_GRAVELER" + }, + { + "min_level": 35, + "max_level": 40, + "species": "SPECIES_GRAVELER" + } + ] + } + }, + { + "map": "MAP_VICTORY_ROAD_B2F", + "base_label": "VictoryRoad_B2F_Ruby", + "land_mons": { + "encounter_rate": 10, + "mons": [ + { + "min_level": 40, + "max_level": 40, + "species": "SPECIES_GOLBAT" + }, + { + "min_level": 40, + "max_level": 40, + "species": "SPECIES_MAWILE" + }, + { + "min_level": 40, + "max_level": 40, + "species": "SPECIES_LAIRON" + }, + { + "min_level": 40, + "max_level": 40, + "species": "SPECIES_MEDICHAM" + }, + { + "min_level": 42, + "max_level": 42, + "species": "SPECIES_GOLBAT" + }, + { + "min_level": 42, + "max_level": 42, + "species": "SPECIES_MAWILE" + }, + { + "min_level": 44, + "max_level": 44, + "species": "SPECIES_GOLBAT" + }, + { + "min_level": 44, + "max_level": 44, + "species": "SPECIES_MAWILE" + }, + { + "min_level": 42, + "max_level": 42, + "species": "SPECIES_LAIRON" + }, + { + "min_level": 42, + "max_level": 42, + "species": "SPECIES_MEDICHAM" + }, + { + "min_level": 44, + "max_level": 44, + "species": "SPECIES_LAIRON" + }, + { + "min_level": 44, + "max_level": 44, + "species": "SPECIES_MEDICHAM" + } + ] + }, + "water_mons": { + "encounter_rate": 4, + "mons": [ + { + "min_level": 30, + "max_level": 35, + "species": "SPECIES_GOLBAT" + }, + { + "min_level": 25, + "max_level": 30, + "species": "SPECIES_GOLBAT" + }, + { + "min_level": 35, + "max_level": 40, + "species": "SPECIES_GOLBAT" + }, + { + "min_level": 35, + "max_level": 40, + "species": "SPECIES_GOLBAT" + }, + { + "min_level": 35, + "max_level": 40, + "species": "SPECIES_GOLBAT" + } + ] + }, + "fishing_mons": { + "encounter_rate": 30, + "mons": [ + { + "min_level": 5, + "max_level": 10, + "species": "SPECIES_MAGIKARP" + }, + { + "min_level": 5, + "max_level": 10, + "species": "SPECIES_GOLDEEN" + }, + { + "min_level": 10, + "max_level": 30, + "species": "SPECIES_MAGIKARP" + }, + { + "min_level": 10, + "max_level": 30, + "species": "SPECIES_GOLDEEN" + }, + { + "min_level": 10, + "max_level": 30, + "species": "SPECIES_BARBOACH" + }, + { + "min_level": 25, + "max_level": 30, + "species": "SPECIES_BARBOACH" + }, + { + "min_level": 30, + "max_level": 35, + "species": "SPECIES_BARBOACH" + }, + { + "min_level": 30, + "max_level": 35, + "species": "SPECIES_WHISCASH" + }, + { + "min_level": 35, + "max_level": 40, + "species": "SPECIES_WHISCASH" + }, + { + "min_level": 40, + "max_level": 45, + "species": "SPECIES_WHISCASH" + } + ] + } + }, + { + "map": "MAP_SHOAL_CAVE_LOW_TIDE_ENTRANCE_ROOM", + "base_label": "ShoalCave_LowTideEntranceRoom_Ruby", + "land_mons": { + "encounter_rate": 10, + "mons": [ + { + "min_level": 26, + "max_level": 26, + "species": "SPECIES_ZUBAT" + }, + { + "min_level": 26, + "max_level": 26, + "species": "SPECIES_SPHEAL" + }, + { + "min_level": 28, + "max_level": 28, + "species": "SPECIES_ZUBAT" + }, + { + "min_level": 28, + "max_level": 28, + "species": "SPECIES_SPHEAL" + }, + { + "min_level": 30, + "max_level": 30, + "species": "SPECIES_ZUBAT" + }, + { + "min_level": 30, + "max_level": 30, + "species": "SPECIES_SPHEAL" + }, + { + "min_level": 32, + "max_level": 32, + "species": "SPECIES_ZUBAT" + }, + { + "min_level": 32, + "max_level": 32, + "species": "SPECIES_SPHEAL" + }, + { + "min_level": 32, + "max_level": 32, + "species": "SPECIES_GOLBAT" + }, + { + "min_level": 32, + "max_level": 32, + "species": "SPECIES_SPHEAL" + }, + { + "min_level": 32, + "max_level": 32, + "species": "SPECIES_GOLBAT" + }, + { + "min_level": 32, + "max_level": 32, + "species": "SPECIES_SPHEAL" + } + ] + }, + "water_mons": { + "encounter_rate": 4, + "mons": [ + { + "min_level": 5, + "max_level": 35, + "species": "SPECIES_TENTACOOL" + }, + { + "min_level": 5, + "max_level": 35, + "species": "SPECIES_ZUBAT" + }, + { + "min_level": 25, + "max_level": 30, + "species": "SPECIES_SPHEAL" + }, + { + "min_level": 25, + "max_level": 30, + "species": "SPECIES_SPHEAL" + }, + { + "min_level": 25, + "max_level": 35, + "species": "SPECIES_SPHEAL" + } + ] + }, + "fishing_mons": { + "encounter_rate": 10, + "mons": [ + { + "min_level": 5, + "max_level": 10, + "species": "SPECIES_MAGIKARP" + }, + { + "min_level": 5, + "max_level": 10, + "species": "SPECIES_TENTACOOL" + }, + { + "min_level": 10, + "max_level": 30, + "species": "SPECIES_MAGIKARP" + }, + { + "min_level": 10, + "max_level": 30, + "species": "SPECIES_TENTACOOL" + }, + { + "min_level": 10, + "max_level": 30, + "species": "SPECIES_WAILMER" + }, + { + "min_level": 25, + "max_level": 30, + "species": "SPECIES_WAILMER" + }, + { + "min_level": 30, + "max_level": 35, + "species": "SPECIES_WAILMER" + }, + { + "min_level": 20, + "max_level": 25, + "species": "SPECIES_WAILMER" + }, + { + "min_level": 35, + "max_level": 40, + "species": "SPECIES_WAILMER" + }, + { + "min_level": 40, + "max_level": 45, + "species": "SPECIES_WAILMER" + } + ] + } + }, + { + "map": "MAP_SHOAL_CAVE_LOW_TIDE_INNER_ROOM", + "base_label": "ShoalCave_LowTideInnerRoom_Ruby", + "land_mons": { + "encounter_rate": 10, + "mons": [ + { + "min_level": 26, + "max_level": 26, + "species": "SPECIES_ZUBAT" + }, + { + "min_level": 26, + "max_level": 26, + "species": "SPECIES_SPHEAL" + }, + { + "min_level": 28, + "max_level": 28, + "species": "SPECIES_ZUBAT" + }, + { + "min_level": 28, + "max_level": 28, + "species": "SPECIES_SPHEAL" + }, + { + "min_level": 30, + "max_level": 30, + "species": "SPECIES_ZUBAT" + }, + { + "min_level": 30, + "max_level": 30, + "species": "SPECIES_SPHEAL" + }, + { + "min_level": 32, + "max_level": 32, + "species": "SPECIES_ZUBAT" + }, + { + "min_level": 32, + "max_level": 32, + "species": "SPECIES_SPHEAL" + }, + { + "min_level": 32, + "max_level": 32, + "species": "SPECIES_GOLBAT" + }, + { + "min_level": 32, + "max_level": 32, + "species": "SPECIES_SPHEAL" + }, + { + "min_level": 32, + "max_level": 32, + "species": "SPECIES_GOLBAT" + }, + { + "min_level": 32, + "max_level": 32, + "species": "SPECIES_SPHEAL" + } + ] + }, + "water_mons": { + "encounter_rate": 4, + "mons": [ + { + "min_level": 5, + "max_level": 35, + "species": "SPECIES_TENTACOOL" + }, + { + "min_level": 5, + "max_level": 35, + "species": "SPECIES_ZUBAT" + }, + { + "min_level": 25, + "max_level": 30, + "species": "SPECIES_SPHEAL" + }, + { + "min_level": 25, + "max_level": 30, + "species": "SPECIES_SPHEAL" + }, + { + "min_level": 25, + "max_level": 35, + "species": "SPECIES_SPHEAL" + } + ] + }, + "fishing_mons": { + "encounter_rate": 10, + "mons": [ + { + "min_level": 5, + "max_level": 10, + "species": "SPECIES_MAGIKARP" + }, + { + "min_level": 5, + "max_level": 10, + "species": "SPECIES_TENTACOOL" + }, + { + "min_level": 10, + "max_level": 30, + "species": "SPECIES_MAGIKARP" + }, + { + "min_level": 10, + "max_level": 30, + "species": "SPECIES_TENTACOOL" + }, + { + "min_level": 10, + "max_level": 30, + "species": "SPECIES_WAILMER" + }, + { + "min_level": 25, + "max_level": 30, + "species": "SPECIES_WAILMER" + }, + { + "min_level": 30, + "max_level": 35, + "species": "SPECIES_WAILMER" + }, + { + "min_level": 20, + "max_level": 25, + "species": "SPECIES_WAILMER" + }, + { + "min_level": 35, + "max_level": 40, + "species": "SPECIES_WAILMER" + }, + { + "min_level": 40, + "max_level": 45, + "species": "SPECIES_WAILMER" + } + ] + } + }, + { + "map": "MAP_SHOAL_CAVE_LOW_TIDE_STAIRS_ROOM", + "base_label": "ShoalCave_LowTideStairsRoom_Ruby", + "land_mons": { + "encounter_rate": 10, + "mons": [ + { + "min_level": 26, + "max_level": 26, + "species": "SPECIES_ZUBAT" + }, + { + "min_level": 26, + "max_level": 26, + "species": "SPECIES_SPHEAL" + }, + { + "min_level": 28, + "max_level": 28, + "species": "SPECIES_ZUBAT" + }, + { + "min_level": 28, + "max_level": 28, + "species": "SPECIES_SPHEAL" + }, + { + "min_level": 30, + "max_level": 30, + "species": "SPECIES_ZUBAT" + }, + { + "min_level": 30, + "max_level": 30, + "species": "SPECIES_SPHEAL" + }, + { + "min_level": 32, + "max_level": 32, + "species": "SPECIES_ZUBAT" + }, + { + "min_level": 32, + "max_level": 32, + "species": "SPECIES_SPHEAL" + }, + { + "min_level": 32, + "max_level": 32, + "species": "SPECIES_GOLBAT" + }, + { + "min_level": 32, + "max_level": 32, + "species": "SPECIES_SPHEAL" + }, + { + "min_level": 32, + "max_level": 32, + "species": "SPECIES_GOLBAT" + }, + { + "min_level": 32, + "max_level": 32, + "species": "SPECIES_SPHEAL" + } + ] + } + }, + { + "map": "MAP_SHOAL_CAVE_LOW_TIDE_LOWER_ROOM", + "base_label": "ShoalCave_LowTideLowerRoom_Ruby", + "land_mons": { + "encounter_rate": 10, + "mons": [ + { + "min_level": 26, + "max_level": 26, + "species": "SPECIES_ZUBAT" + }, + { + "min_level": 26, + "max_level": 26, + "species": "SPECIES_SPHEAL" + }, + { + "min_level": 28, + "max_level": 28, + "species": "SPECIES_ZUBAT" + }, + { + "min_level": 28, + "max_level": 28, + "species": "SPECIES_SPHEAL" + }, + { + "min_level": 30, + "max_level": 30, + "species": "SPECIES_ZUBAT" + }, + { + "min_level": 30, + "max_level": 30, + "species": "SPECIES_SPHEAL" + }, + { + "min_level": 32, + "max_level": 32, + "species": "SPECIES_ZUBAT" + }, + { + "min_level": 32, + "max_level": 32, + "species": "SPECIES_SPHEAL" + }, + { + "min_level": 32, + "max_level": 32, + "species": "SPECIES_GOLBAT" + }, + { + "min_level": 32, + "max_level": 32, + "species": "SPECIES_SPHEAL" + }, + { + "min_level": 32, + "max_level": 32, + "species": "SPECIES_GOLBAT" + }, + { + "min_level": 32, + "max_level": 32, + "species": "SPECIES_SPHEAL" + } + ] + } + }, + { + "map": "MAP_SHOAL_CAVE_LOW_TIDE_ICE_ROOM", + "base_label": "ShoalCave_LowTideIceRoom_Ruby", + "land_mons": { + "encounter_rate": 10, + "mons": [ + { + "min_level": 26, + "max_level": 26, + "species": "SPECIES_ZUBAT" + }, + { + "min_level": 26, + "max_level": 26, + "species": "SPECIES_SPHEAL" + }, + { + "min_level": 28, + "max_level": 28, + "species": "SPECIES_ZUBAT" + }, + { + "min_level": 28, + "max_level": 28, + "species": "SPECIES_SPHEAL" + }, + { + "min_level": 30, + "max_level": 30, + "species": "SPECIES_ZUBAT" + }, + { + "min_level": 30, + "max_level": 30, + "species": "SPECIES_SPHEAL" + }, + { + "min_level": 26, + "max_level": 26, + "species": "SPECIES_SNORUNT" + }, + { + "min_level": 32, + "max_level": 32, + "species": "SPECIES_SPHEAL" + }, + { + "min_level": 30, + "max_level": 30, + "species": "SPECIES_GOLBAT" + }, + { + "min_level": 28, + "max_level": 28, + "species": "SPECIES_SNORUNT" + }, + { + "min_level": 32, + "max_level": 32, + "species": "SPECIES_GOLBAT" + }, + { + "min_level": 30, + "max_level": 30, + "species": "SPECIES_SNORUNT" + } + ] + } + }, + { + "map": "MAP_NEW_MAUVILLE_ENTRANCE", + "base_label": "NewMauville_Entrance_Ruby", + "land_mons": { + "encounter_rate": 10, + "mons": [ + { + "min_level": 24, + "max_level": 24, + "species": "SPECIES_VOLTORB" + }, + { + "min_level": 24, + "max_level": 24, + "species": "SPECIES_MAGNEMITE" + }, + { + "min_level": 25, + "max_level": 25, + "species": "SPECIES_VOLTORB" + }, + { + "min_level": 25, + "max_level": 25, + "species": "SPECIES_MAGNEMITE" + }, + { + "min_level": 23, + "max_level": 23, + "species": "SPECIES_VOLTORB" + }, + { + "min_level": 23, + "max_level": 23, + "species": "SPECIES_MAGNEMITE" + }, + { + "min_level": 26, + "max_level": 26, + "species": "SPECIES_VOLTORB" + }, + { + "min_level": 26, + "max_level": 26, + "species": "SPECIES_MAGNEMITE" + }, + { + "min_level": 22, + "max_level": 22, + "species": "SPECIES_VOLTORB" + }, + { + "min_level": 22, + "max_level": 22, + "species": "SPECIES_MAGNEMITE" + }, + { + "min_level": 22, + "max_level": 22, + "species": "SPECIES_VOLTORB" + }, + { + "min_level": 22, + "max_level": 22, + "species": "SPECIES_MAGNEMITE" + } + ] + } + }, + { + "map": "MAP_NEW_MAUVILLE_INSIDE", + "base_label": "NewMauville_Inside_Ruby", + "land_mons": { + "encounter_rate": 10, + "mons": [ + { + "min_level": 24, + "max_level": 24, + "species": "SPECIES_VOLTORB" + }, + { + "min_level": 24, + "max_level": 24, + "species": "SPECIES_MAGNEMITE" + }, + { + "min_level": 25, + "max_level": 25, + "species": "SPECIES_VOLTORB" + }, + { + "min_level": 25, + "max_level": 25, + "species": "SPECIES_MAGNEMITE" + }, + { + "min_level": 23, + "max_level": 23, + "species": "SPECIES_VOLTORB" + }, + { + "min_level": 23, + "max_level": 23, + "species": "SPECIES_MAGNEMITE" + }, + { + "min_level": 26, + "max_level": 26, + "species": "SPECIES_VOLTORB" + }, + { + "min_level": 26, + "max_level": 26, + "species": "SPECIES_MAGNEMITE" + }, + { + "min_level": 22, + "max_level": 22, + "species": "SPECIES_VOLTORB" + }, + { + "min_level": 22, + "max_level": 22, + "species": "SPECIES_MAGNEMITE" + }, + { + "min_level": 26, + "max_level": 26, + "species": "SPECIES_ELECTRODE" + }, + { + "min_level": 26, + "max_level": 26, + "species": "SPECIES_MAGNETON" + } + ] + } + }, + { + "map": "MAP_ABANDONED_SHIP_ROOMS_B1F", + "base_label": "AbandonedShip_Rooms_B1F_Ruby", + "water_mons": { + "encounter_rate": 4, + "mons": [ + { + "min_level": 5, + "max_level": 35, + "species": "SPECIES_TENTACOOL" + }, + { + "min_level": 5, + "max_level": 35, + "species": "SPECIES_TENTACOOL" + }, + { + "min_level": 5, + "max_level": 35, + "species": "SPECIES_TENTACOOL" + }, + { + "min_level": 5, + "max_level": 35, + "species": "SPECIES_TENTACOOL" + }, + { + "min_level": 30, + "max_level": 35, + "species": "SPECIES_TENTACRUEL" + } + ] + }, + "fishing_mons": { + "encounter_rate": 20, + "mons": [ + { + "min_level": 5, + "max_level": 10, + "species": "SPECIES_MAGIKARP" + }, + { + "min_level": 5, + "max_level": 10, + "species": "SPECIES_TENTACOOL" + }, + { + "min_level": 10, + "max_level": 30, + "species": "SPECIES_MAGIKARP" + }, + { + "min_level": 10, + "max_level": 30, + "species": "SPECIES_TENTACOOL" + }, + { + "min_level": 10, + "max_level": 30, + "species": "SPECIES_TENTACOOL" + }, + { + "min_level": 25, + "max_level": 30, + "species": "SPECIES_TENTACOOL" + }, + { + "min_level": 30, + "max_level": 35, + "species": "SPECIES_TENTACOOL" + }, + { + "min_level": 30, + "max_level": 35, + "species": "SPECIES_TENTACRUEL" + }, + { + "min_level": 25, + "max_level": 30, + "species": "SPECIES_TENTACRUEL" + }, + { + "min_level": 20, + "max_level": 25, + "species": "SPECIES_TENTACRUEL" + } + ] + } + }, + { + "map": "MAP_ABANDONED_SHIP_HIDDEN_FLOOR_CORRIDORS", + "base_label": "AbandonedShip_HiddenFloorCorridors_Ruby", + "water_mons": { + "encounter_rate": 4, + "mons": [ + { + "min_level": 5, + "max_level": 35, + "species": "SPECIES_TENTACOOL" + }, + { + "min_level": 5, + "max_level": 35, + "species": "SPECIES_TENTACOOL" + }, + { + "min_level": 5, + "max_level": 35, + "species": "SPECIES_TENTACOOL" + }, + { + "min_level": 5, + "max_level": 35, + "species": "SPECIES_TENTACOOL" + }, + { + "min_level": 30, + "max_level": 35, + "species": "SPECIES_TENTACRUEL" + } + ] + }, + "fishing_mons": { + "encounter_rate": 20, + "mons": [ + { + "min_level": 5, + "max_level": 10, + "species": "SPECIES_MAGIKARP" + }, + { + "min_level": 5, + "max_level": 10, + "species": "SPECIES_TENTACOOL" + }, + { + "min_level": 10, + "max_level": 30, + "species": "SPECIES_MAGIKARP" + }, + { + "min_level": 10, + "max_level": 30, + "species": "SPECIES_TENTACOOL" + }, + { + "min_level": 10, + "max_level": 30, + "species": "SPECIES_TENTACOOL" + }, + { + "min_level": 25, + "max_level": 30, + "species": "SPECIES_TENTACOOL" + }, + { + "min_level": 30, + "max_level": 35, + "species": "SPECIES_TENTACOOL" + }, + { + "min_level": 30, + "max_level": 35, + "species": "SPECIES_TENTACRUEL" + }, + { + "min_level": 25, + "max_level": 30, + "species": "SPECIES_TENTACRUEL" + }, + { + "min_level": 20, + "max_level": 25, + "species": "SPECIES_TENTACRUEL" + } + ] + } + }, + { + "map": "MAP_SKY_PILLAR_1F", + "base_label": "SkyPillar_1F_Ruby", + "land_mons": { + "encounter_rate": 10, + "mons": [ + { + "min_level": 48, + "max_level": 48, + "species": "SPECIES_MAWILE" + }, + { + "min_level": 48, + "max_level": 48, + "species": "SPECIES_GOLBAT" + }, + { + "min_level": 50, + "max_level": 50, + "species": "SPECIES_GOLBAT" + }, + { + "min_level": 50, + "max_level": 50, + "species": "SPECIES_MAWILE" + }, + { + "min_level": 48, + "max_level": 48, + "species": "SPECIES_CLAYDOL" + }, + { + "min_level": 48, + "max_level": 48, + "species": "SPECIES_DUSCLOPS" + }, + { + "min_level": 50, + "max_level": 50, + "species": "SPECIES_DUSCLOPS" + }, + { + "min_level": 49, + "max_level": 49, + "species": "SPECIES_CLAYDOL" + }, + { + "min_level": 47, + "max_level": 47, + "species": "SPECIES_CLAYDOL" + }, + { + "min_level": 50, + "max_level": 50, + "species": "SPECIES_CLAYDOL" + }, + { + "min_level": 47, + "max_level": 47, + "species": "SPECIES_CLAYDOL" + }, + { + "min_level": 50, + "max_level": 50, + "species": "SPECIES_CLAYDOL" + } + ] + } + }, + { + "map": "MAP_SKY_PILLAR_3F", + "base_label": "SkyPillar_3F_Ruby", + "land_mons": { + "encounter_rate": 10, + "mons": [ + { + "min_level": 51, + "max_level": 51, + "species": "SPECIES_MAWILE" + }, + { + "min_level": 51, + "max_level": 51, + "species": "SPECIES_GOLBAT" + }, + { + "min_level": 53, + "max_level": 53, + "species": "SPECIES_GOLBAT" + }, + { + "min_level": 53, + "max_level": 53, + "species": "SPECIES_MAWILE" + }, + { + "min_level": 51, + "max_level": 51, + "species": "SPECIES_CLAYDOL" + }, + { + "min_level": 51, + "max_level": 51, + "species": "SPECIES_DUSCLOPS" + }, + { + "min_level": 53, + "max_level": 53, + "species": "SPECIES_DUSCLOPS" + }, + { + "min_level": 52, + "max_level": 52, + "species": "SPECIES_CLAYDOL" + }, + { + "min_level": 50, + "max_level": 50, + "species": "SPECIES_CLAYDOL" + }, + { + "min_level": 53, + "max_level": 53, + "species": "SPECIES_CLAYDOL" + }, + { + "min_level": 50, + "max_level": 50, + "species": "SPECIES_CLAYDOL" + }, + { + "min_level": 53, + "max_level": 53, + "species": "SPECIES_CLAYDOL" + } + ] + } + }, + { + "map": "MAP_SKY_PILLAR_5F", + "base_label": "SkyPillar_5F_Ruby", + "land_mons": { + "encounter_rate": 10, + "mons": [ + { + "min_level": 54, + "max_level": 54, + "species": "SPECIES_MAWILE" + }, + { + "min_level": 54, + "max_level": 54, + "species": "SPECIES_GOLBAT" + }, + { + "min_level": 56, + "max_level": 56, + "species": "SPECIES_GOLBAT" + }, + { + "min_level": 56, + "max_level": 56, + "species": "SPECIES_MAWILE" + }, + { + "min_level": 54, + "max_level": 54, + "species": "SPECIES_CLAYDOL" + }, + { + "min_level": 54, + "max_level": 54, + "species": "SPECIES_DUSCLOPS" + }, + { + "min_level": 56, + "max_level": 56, + "species": "SPECIES_DUSCLOPS" + }, + { + "min_level": 55, + "max_level": 55, + "species": "SPECIES_CLAYDOL" + }, + { + "min_level": 56, + "max_level": 56, + "species": "SPECIES_CLAYDOL" + }, + { + "min_level": 57, + "max_level": 57, + "species": "SPECIES_ALTARIA" + }, + { + "min_level": 54, + "max_level": 54, + "species": "SPECIES_ALTARIA" + }, + { + "min_level": 60, + "max_level": 60, + "species": "SPECIES_ALTARIA" + } + ] + } + }, + { + "map": "MAP_ROUTE101", + "base_label": "Route101_Ruby", + "land_mons": { + "encounter_rate": 20, + "mons": [ + { + "min_level": 2, + "max_level": 2, + "species": "SPECIES_WURMPLE" + }, + { + "min_level": 2, + "max_level": 2, + "species": "SPECIES_ZIGZAGOON" + }, + { + "min_level": 2, + "max_level": 2, + "species": "SPECIES_WURMPLE" + }, + { + "min_level": 3, + "max_level": 3, + "species": "SPECIES_WURMPLE" + }, + { + "min_level": 3, + "max_level": 3, + "species": "SPECIES_ZIGZAGOON" + }, + { + "min_level": 3, + "max_level": 3, + "species": "SPECIES_ZIGZAGOON" + }, + { + "min_level": 3, + "max_level": 3, + "species": "SPECIES_WURMPLE" + }, + { + "min_level": 3, + "max_level": 3, + "species": "SPECIES_ZIGZAGOON" + }, + { + "min_level": 2, + "max_level": 2, + "species": "SPECIES_POOCHYENA" + }, + { + "min_level": 2, + "max_level": 2, + "species": "SPECIES_POOCHYENA" + }, + { + "min_level": 3, + "max_level": 3, + "species": "SPECIES_POOCHYENA" + }, + { + "min_level": 3, + "max_level": 3, + "species": "SPECIES_POOCHYENA" + } + ] + } + }, + { + "map": "MAP_ROUTE102", + "base_label": "Route102_Ruby", + "land_mons": { + "encounter_rate": 20, + "mons": [ + { + "min_level": 3, + "max_level": 3, + "species": "SPECIES_ZIGZAGOON" + }, + { + "min_level": 3, + "max_level": 3, + "species": "SPECIES_WURMPLE" + }, + { + "min_level": 4, + "max_level": 4, + "species": "SPECIES_ZIGZAGOON" + }, + { + "min_level": 4, + "max_level": 4, + "species": "SPECIES_WURMPLE" + }, + { + "min_level": 3, + "max_level": 3, + "species": "SPECIES_SEEDOT" + }, + { + "min_level": 4, + "max_level": 4, + "species": "SPECIES_SEEDOT" + }, + { + "min_level": 3, + "max_level": 3, + "species": "SPECIES_POOCHYENA" + }, + { + "min_level": 3, + "max_level": 3, + "species": "SPECIES_POOCHYENA" + }, + { + "min_level": 4, + "max_level": 4, + "species": "SPECIES_POOCHYENA" + }, + { + "min_level": 4, + "max_level": 4, + "species": "SPECIES_RALTS" + }, + { + "min_level": 4, + "max_level": 4, + "species": "SPECIES_POOCHYENA" + }, + { + "min_level": 3, + "max_level": 3, + "species": "SPECIES_SURSKIT" + } + ] + }, + "water_mons": { + "encounter_rate": 4, + "mons": [ + { + "min_level": 20, + "max_level": 30, + "species": "SPECIES_MARILL" + }, + { + "min_level": 10, + "max_level": 20, + "species": "SPECIES_MARILL" + }, + { + "min_level": 30, + "max_level": 35, + "species": "SPECIES_MARILL" + }, + { + "min_level": 5, + "max_level": 10, + "species": "SPECIES_MARILL" + }, + { + "min_level": 20, + "max_level": 30, + "species": "SPECIES_SURSKIT" + } + ] + }, + "fishing_mons": { + "encounter_rate": 30, + "mons": [ + { + "min_level": 5, + "max_level": 10, + "species": "SPECIES_MAGIKARP" + }, + { + "min_level": 5, + "max_level": 10, + "species": "SPECIES_GOLDEEN" + }, + { + "min_level": 10, + "max_level": 30, + "species": "SPECIES_MAGIKARP" + }, + { + "min_level": 10, + "max_level": 30, + "species": "SPECIES_GOLDEEN" + }, + { + "min_level": 10, + "max_level": 30, + "species": "SPECIES_CORPHISH" + }, + { + "min_level": 25, + "max_level": 30, + "species": "SPECIES_CORPHISH" + }, + { + "min_level": 30, + "max_level": 35, + "species": "SPECIES_CORPHISH" + }, + { + "min_level": 20, + "max_level": 25, + "species": "SPECIES_CORPHISH" + }, + { + "min_level": 35, + "max_level": 40, + "species": "SPECIES_CORPHISH" + }, + { + "min_level": 40, + "max_level": 45, + "species": "SPECIES_CORPHISH" + } + ] + } + }, + { + "map": "MAP_ROUTE103", + "base_label": "Route103_Ruby", + "land_mons": { + "encounter_rate": 20, + "mons": [ + { + "min_level": 2, + "max_level": 2, + "species": "SPECIES_ZIGZAGOON" + }, + { + "min_level": 3, + "max_level": 3, + "species": "SPECIES_ZIGZAGOON" + }, + { + "min_level": 3, + "max_level": 3, + "species": "SPECIES_ZIGZAGOON" + }, + { + "min_level": 4, + "max_level": 4, + "species": "SPECIES_ZIGZAGOON" + }, + { + "min_level": 2, + "max_level": 2, + "species": "SPECIES_POOCHYENA" + }, + { + "min_level": 3, + "max_level": 3, + "species": "SPECIES_POOCHYENA" + }, + { + "min_level": 3, + "max_level": 3, + "species": "SPECIES_POOCHYENA" + }, + { + "min_level": 4, + "max_level": 4, + "species": "SPECIES_POOCHYENA" + }, + { + "min_level": 3, + "max_level": 3, + "species": "SPECIES_WINGULL" + }, + { + "min_level": 3, + "max_level": 3, + "species": "SPECIES_WINGULL" + }, + { + "min_level": 2, + "max_level": 2, + "species": "SPECIES_WINGULL" + }, + { + "min_level": 4, + "max_level": 4, + "species": "SPECIES_WINGULL" + } + ] + }, + "water_mons": { + "encounter_rate": 4, + "mons": [ + { + "min_level": 5, + "max_level": 35, + "species": "SPECIES_TENTACOOL" + }, + { + "min_level": 10, + "max_level": 30, + "species": "SPECIES_WINGULL" + }, + { + "min_level": 15, + "max_level": 25, + "species": "SPECIES_WINGULL" + }, + { + "min_level": 25, + "max_level": 30, + "species": "SPECIES_PELIPPER" + }, + { + "min_level": 25, + "max_level": 30, + "species": "SPECIES_PELIPPER" + } + ] + }, + "fishing_mons": { + "encounter_rate": 30, + "mons": [ + { + "min_level": 5, + "max_level": 10, + "species": "SPECIES_MAGIKARP" + }, + { + "min_level": 5, + "max_level": 10, + "species": "SPECIES_TENTACOOL" + }, + { + "min_level": 10, + "max_level": 30, + "species": "SPECIES_MAGIKARP" + }, + { + "min_level": 10, + "max_level": 30, + "species": "SPECIES_TENTACOOL" + }, + { + "min_level": 10, + "max_level": 30, + "species": "SPECIES_WAILMER" + }, + { + "min_level": 30, + "max_level": 35, + "species": "SPECIES_SHARPEDO" + }, + { + "min_level": 30, + "max_level": 35, + "species": "SPECIES_WAILMER" + }, + { + "min_level": 25, + "max_level": 30, + "species": "SPECIES_WAILMER" + }, + { + "min_level": 35, + "max_level": 40, + "species": "SPECIES_WAILMER" + }, + { + "min_level": 40, + "max_level": 45, + "species": "SPECIES_WAILMER" + } + ] + } + }, + { + "map": "MAP_ROUTE104", + "base_label": "Route104_Ruby", + "land_mons": { + "encounter_rate": 20, + "mons": [ + { + "min_level": 4, + "max_level": 4, + "species": "SPECIES_ZIGZAGOON" + }, + { + "min_level": 4, + "max_level": 4, + "species": "SPECIES_WURMPLE" + }, + { + "min_level": 5, + "max_level": 5, + "species": "SPECIES_ZIGZAGOON" + }, + { + "min_level": 5, + "max_level": 5, + "species": "SPECIES_WURMPLE" + }, + { + "min_level": 4, + "max_level": 4, + "species": "SPECIES_ZIGZAGOON" + }, + { + "min_level": 5, + "max_level": 5, + "species": "SPECIES_ZIGZAGOON" + }, + { + "min_level": 4, + "max_level": 4, + "species": "SPECIES_TAILLOW" + }, + { + "min_level": 5, + "max_level": 5, + "species": "SPECIES_TAILLOW" + }, + { + "min_level": 4, + "max_level": 4, + "species": "SPECIES_WINGULL" + }, + { + "min_level": 4, + "max_level": 4, + "species": "SPECIES_WINGULL" + }, + { + "min_level": 3, + "max_level": 3, + "species": "SPECIES_WINGULL" + }, + { + "min_level": 5, + "max_level": 5, + "species": "SPECIES_WINGULL" + } + ] + }, + "water_mons": { + "encounter_rate": 4, + "mons": [ + { + "min_level": 10, + "max_level": 30, + "species": "SPECIES_WINGULL" + }, + { + "min_level": 15, + "max_level": 25, + "species": "SPECIES_WINGULL" + }, + { + "min_level": 15, + "max_level": 25, + "species": "SPECIES_WINGULL" + }, + { + "min_level": 25, + "max_level": 30, + "species": "SPECIES_PELIPPER" + }, + { + "min_level": 25, + "max_level": 30, + "species": "SPECIES_PELIPPER" + } + ] + }, + "fishing_mons": { + "encounter_rate": 30, + "mons": [ + { + "min_level": 5, + "max_level": 10, + "species": "SPECIES_MAGIKARP" + }, + { + "min_level": 5, + "max_level": 10, + "species": "SPECIES_MAGIKARP" + }, + { + "min_level": 10, + "max_level": 30, + "species": "SPECIES_MAGIKARP" + }, + { + "min_level": 10, + "max_level": 30, + "species": "SPECIES_MAGIKARP" + }, + { + "min_level": 10, + "max_level": 30, + "species": "SPECIES_MAGIKARP" + }, + { + "min_level": 25, + "max_level": 30, + "species": "SPECIES_MAGIKARP" + }, + { + "min_level": 30, + "max_level": 35, + "species": "SPECIES_MAGIKARP" + }, + { + "min_level": 20, + "max_level": 25, + "species": "SPECIES_MAGIKARP" + }, + { + "min_level": 35, + "max_level": 40, + "species": "SPECIES_MAGIKARP" + }, + { + "min_level": 40, + "max_level": 45, + "species": "SPECIES_MAGIKARP" + } + ] + } + }, + { + "map": "MAP_ROUTE105", + "base_label": "Route105_Ruby", + "water_mons": { + "encounter_rate": 4, + "mons": [ + { + "min_level": 5, + "max_level": 35, + "species": "SPECIES_TENTACOOL" + }, + { + "min_level": 10, + "max_level": 30, + "species": "SPECIES_WINGULL" + }, + { + "min_level": 15, + "max_level": 25, + "species": "SPECIES_WINGULL" + }, + { + "min_level": 25, + "max_level": 30, + "species": "SPECIES_PELIPPER" + }, + { + "min_level": 25, + "max_level": 30, + "species": "SPECIES_PELIPPER" + } + ] + }, + "fishing_mons": { + "encounter_rate": 30, + "mons": [ + { + "min_level": 5, + "max_level": 10, + "species": "SPECIES_MAGIKARP" + }, + { + "min_level": 5, + "max_level": 10, + "species": "SPECIES_TENTACOOL" + }, + { + "min_level": 10, + "max_level": 30, + "species": "SPECIES_MAGIKARP" + }, + { + "min_level": 10, + "max_level": 30, + "species": "SPECIES_TENTACOOL" + }, + { + "min_level": 10, + "max_level": 30, + "species": "SPECIES_WAILMER" + }, + { + "min_level": 25, + "max_level": 30, + "species": "SPECIES_WAILMER" + }, + { + "min_level": 30, + "max_level": 35, + "species": "SPECIES_WAILMER" + }, + { + "min_level": 20, + "max_level": 25, + "species": "SPECIES_WAILMER" + }, + { + "min_level": 35, + "max_level": 40, + "species": "SPECIES_WAILMER" + }, + { + "min_level": 40, + "max_level": 45, + "species": "SPECIES_WAILMER" + } + ] + } + }, + { + "map": "MAP_ROUTE106", + "base_label": "Route106_Ruby", + "water_mons": { + "encounter_rate": 4, + "mons": [ + { + "min_level": 5, + "max_level": 35, + "species": "SPECIES_TENTACOOL" + }, + { + "min_level": 10, + "max_level": 30, + "species": "SPECIES_WINGULL" + }, + { + "min_level": 15, + "max_level": 25, + "species": "SPECIES_WINGULL" + }, + { + "min_level": 25, + "max_level": 30, + "species": "SPECIES_PELIPPER" + }, + { + "min_level": 25, + "max_level": 30, + "species": "SPECIES_PELIPPER" + } + ] + }, + "fishing_mons": { + "encounter_rate": 30, + "mons": [ + { + "min_level": 5, + "max_level": 10, + "species": "SPECIES_MAGIKARP" + }, + { + "min_level": 5, + "max_level": 10, + "species": "SPECIES_TENTACOOL" + }, + { + "min_level": 10, + "max_level": 30, + "species": "SPECIES_MAGIKARP" + }, + { + "min_level": 10, + "max_level": 30, + "species": "SPECIES_TENTACOOL" + }, + { + "min_level": 10, + "max_level": 30, + "species": "SPECIES_WAILMER" + }, + { + "min_level": 25, + "max_level": 30, + "species": "SPECIES_WAILMER" + }, + { + "min_level": 30, + "max_level": 35, + "species": "SPECIES_WAILMER" + }, + { + "min_level": 20, + "max_level": 25, + "species": "SPECIES_WAILMER" + }, + { + "min_level": 35, + "max_level": 40, + "species": "SPECIES_WAILMER" + }, + { + "min_level": 40, + "max_level": 45, + "species": "SPECIES_WAILMER" + } + ] + } + }, + { + "map": "MAP_ROUTE107", + "base_label": "Route107_Ruby", + "water_mons": { + "encounter_rate": 4, + "mons": [ + { + "min_level": 5, + "max_level": 35, + "species": "SPECIES_TENTACOOL" + }, + { + "min_level": 10, + "max_level": 30, + "species": "SPECIES_WINGULL" + }, + { + "min_level": 15, + "max_level": 25, + "species": "SPECIES_WINGULL" + }, + { + "min_level": 25, + "max_level": 30, + "species": "SPECIES_PELIPPER" + }, + { + "min_level": 25, + "max_level": 30, + "species": "SPECIES_PELIPPER" + } + ] + }, + "fishing_mons": { + "encounter_rate": 30, + "mons": [ + { + "min_level": 5, + "max_level": 10, + "species": "SPECIES_MAGIKARP" + }, + { + "min_level": 5, + "max_level": 10, + "species": "SPECIES_TENTACOOL" + }, + { + "min_level": 10, + "max_level": 30, + "species": "SPECIES_MAGIKARP" + }, + { + "min_level": 10, + "max_level": 30, + "species": "SPECIES_TENTACOOL" + }, + { + "min_level": 10, + "max_level": 30, + "species": "SPECIES_WAILMER" + }, + { + "min_level": 25, + "max_level": 30, + "species": "SPECIES_WAILMER" + }, + { + "min_level": 30, + "max_level": 35, + "species": "SPECIES_WAILMER" + }, + { + "min_level": 20, + "max_level": 25, + "species": "SPECIES_WAILMER" + }, + { + "min_level": 35, + "max_level": 40, + "species": "SPECIES_WAILMER" + }, + { + "min_level": 40, + "max_level": 45, + "species": "SPECIES_WAILMER" + } + ] + } + }, + { + "map": "MAP_ROUTE108", + "base_label": "Route108_Ruby", + "water_mons": { + "encounter_rate": 4, + "mons": [ + { + "min_level": 5, + "max_level": 35, + "species": "SPECIES_TENTACOOL" + }, + { + "min_level": 10, + "max_level": 30, + "species": "SPECIES_WINGULL" + }, + { + "min_level": 15, + "max_level": 25, + "species": "SPECIES_WINGULL" + }, + { + "min_level": 25, + "max_level": 30, + "species": "SPECIES_PELIPPER" + }, + { + "min_level": 25, + "max_level": 30, + "species": "SPECIES_PELIPPER" + } + ] + }, + "fishing_mons": { + "encounter_rate": 30, + "mons": [ + { + "min_level": 5, + "max_level": 10, + "species": "SPECIES_MAGIKARP" + }, + { + "min_level": 5, + "max_level": 10, + "species": "SPECIES_TENTACOOL" + }, + { + "min_level": 10, + "max_level": 30, + "species": "SPECIES_MAGIKARP" + }, + { + "min_level": 10, + "max_level": 30, + "species": "SPECIES_TENTACOOL" + }, + { + "min_level": 10, + "max_level": 30, + "species": "SPECIES_WAILMER" + }, + { + "min_level": 25, + "max_level": 30, + "species": "SPECIES_WAILMER" + }, + { + "min_level": 30, + "max_level": 35, + "species": "SPECIES_WAILMER" + }, + { + "min_level": 20, + "max_level": 25, + "species": "SPECIES_WAILMER" + }, + { + "min_level": 35, + "max_level": 40, + "species": "SPECIES_WAILMER" + }, + { + "min_level": 40, + "max_level": 45, + "species": "SPECIES_WAILMER" + } + ] + } + }, + { + "map": "MAP_ROUTE109", + "base_label": "Route109_Ruby", + "water_mons": { + "encounter_rate": 4, + "mons": [ + { + "min_level": 5, + "max_level": 35, + "species": "SPECIES_TENTACOOL" + }, + { + "min_level": 10, + "max_level": 30, + "species": "SPECIES_WINGULL" + }, + { + "min_level": 15, + "max_level": 25, + "species": "SPECIES_WINGULL" + }, + { + "min_level": 25, + "max_level": 30, + "species": "SPECIES_PELIPPER" + }, + { + "min_level": 25, + "max_level": 30, + "species": "SPECIES_PELIPPER" + } + ] + }, + "fishing_mons": { + "encounter_rate": 30, + "mons": [ + { + "min_level": 5, + "max_level": 10, + "species": "SPECIES_MAGIKARP" + }, + { + "min_level": 5, + "max_level": 10, + "species": "SPECIES_TENTACOOL" + }, + { + "min_level": 10, + "max_level": 30, + "species": "SPECIES_MAGIKARP" + }, + { + "min_level": 10, + "max_level": 30, + "species": "SPECIES_TENTACOOL" + }, + { + "min_level": 10, + "max_level": 30, + "species": "SPECIES_WAILMER" + }, + { + "min_level": 25, + "max_level": 30, + "species": "SPECIES_WAILMER" + }, + { + "min_level": 30, + "max_level": 35, + "species": "SPECIES_WAILMER" + }, + { + "min_level": 20, + "max_level": 25, + "species": "SPECIES_WAILMER" + }, + { + "min_level": 35, + "max_level": 40, + "species": "SPECIES_WAILMER" + }, + { + "min_level": 40, + "max_level": 45, + "species": "SPECIES_WAILMER" + } + ] + } + }, + { + "map": "MAP_ROUTE110", + "base_label": "Route110_Ruby", + "land_mons": { + "encounter_rate": 20, + "mons": [ + { + "min_level": 12, + "max_level": 12, + "species": "SPECIES_ZIGZAGOON" + }, + { + "min_level": 12, + "max_level": 12, + "species": "SPECIES_ELECTRIKE" + }, + { + "min_level": 12, + "max_level": 12, + "species": "SPECIES_GULPIN" + }, + { + "min_level": 13, + "max_level": 13, + "species": "SPECIES_ELECTRIKE" + }, + { + "min_level": 13, + "max_level": 13, + "species": "SPECIES_MINUN" + }, + { + "min_level": 13, + "max_level": 13, + "species": "SPECIES_ODDISH" + }, + { + "min_level": 13, + "max_level": 13, + "species": "SPECIES_MINUN" + }, + { + "min_level": 13, + "max_level": 13, + "species": "SPECIES_GULPIN" + }, + { + "min_level": 12, + "max_level": 12, + "species": "SPECIES_WINGULL" + }, + { + "min_level": 12, + "max_level": 12, + "species": "SPECIES_WINGULL" + }, + { + "min_level": 12, + "max_level": 12, + "species": "SPECIES_PLUSLE" + }, + { + "min_level": 13, + "max_level": 13, + "species": "SPECIES_PLUSLE" + } + ] + }, + "water_mons": { + "encounter_rate": 4, + "mons": [ + { + "min_level": 5, + "max_level": 35, + "species": "SPECIES_TENTACOOL" + }, + { + "min_level": 10, + "max_level": 30, + "species": "SPECIES_WINGULL" + }, + { + "min_level": 15, + "max_level": 25, + "species": "SPECIES_WINGULL" + }, + { + "min_level": 25, + "max_level": 30, + "species": "SPECIES_PELIPPER" + }, + { + "min_level": 25, + "max_level": 30, + "species": "SPECIES_PELIPPER" + } + ] + }, + "fishing_mons": { + "encounter_rate": 30, + "mons": [ + { + "min_level": 5, + "max_level": 10, + "species": "SPECIES_MAGIKARP" + }, + { + "min_level": 5, + "max_level": 10, + "species": "SPECIES_TENTACOOL" + }, + { + "min_level": 10, + "max_level": 30, + "species": "SPECIES_MAGIKARP" + }, + { + "min_level": 10, + "max_level": 30, + "species": "SPECIES_TENTACOOL" + }, + { + "min_level": 10, + "max_level": 30, + "species": "SPECIES_WAILMER" + }, + { + "min_level": 25, + "max_level": 30, + "species": "SPECIES_WAILMER" + }, + { + "min_level": 30, + "max_level": 35, + "species": "SPECIES_WAILMER" + }, + { + "min_level": 20, + "max_level": 25, + "species": "SPECIES_WAILMER" + }, + { + "min_level": 35, + "max_level": 40, + "species": "SPECIES_WAILMER" + }, + { + "min_level": 40, + "max_level": 45, + "species": "SPECIES_WAILMER" + } + ] + } + }, + { + "map": "MAP_ROUTE111", + "base_label": "Route111_Ruby", + "land_mons": { + "encounter_rate": 10, + "mons": [ + { + "min_level": 20, + "max_level": 20, + "species": "SPECIES_SANDSHREW" + }, + { + "min_level": 20, + "max_level": 20, + "species": "SPECIES_TRAPINCH" + }, + { + "min_level": 21, + "max_level": 21, + "species": "SPECIES_SANDSHREW" + }, + { + "min_level": 21, + "max_level": 21, + "species": "SPECIES_TRAPINCH" + }, + { + "min_level": 19, + "max_level": 19, + "species": "SPECIES_CACNEA" + }, + { + "min_level": 21, + "max_level": 21, + "species": "SPECIES_CACNEA" + }, + { + "min_level": 19, + "max_level": 19, + "species": "SPECIES_SANDSHREW" + }, + { + "min_level": 19, + "max_level": 19, + "species": "SPECIES_TRAPINCH" + }, + { + "min_level": 20, + "max_level": 20, + "species": "SPECIES_BALTOY" + }, + { + "min_level": 20, + "max_level": 20, + "species": "SPECIES_BALTOY" + }, + { + "min_level": 22, + "max_level": 22, + "species": "SPECIES_BALTOY" + }, + { + "min_level": 22, + "max_level": 22, + "species": "SPECIES_BALTOY" + } + ] + }, + "water_mons": { + "encounter_rate": 4, + "mons": [ + { + "min_level": 20, + "max_level": 30, + "species": "SPECIES_MARILL" + }, + { + "min_level": 10, + "max_level": 20, + "species": "SPECIES_MARILL" + }, + { + "min_level": 30, + "max_level": 35, + "species": "SPECIES_MARILL" + }, + { + "min_level": 5, + "max_level": 10, + "species": "SPECIES_MARILL" + }, + { + "min_level": 20, + "max_level": 30, + "species": "SPECIES_SURSKIT" + } + ] + }, + "rock_smash_mons": { + "encounter_rate": 20, + "mons": [ + { + "min_level": 10, + "max_level": 15, + "species": "SPECIES_GEODUDE" + }, + { + "min_level": 5, + "max_level": 10, + "species": "SPECIES_GEODUDE" + }, + { + "min_level": 15, + "max_level": 20, + "species": "SPECIES_GEODUDE" + }, + { + "min_level": 15, + "max_level": 20, + "species": "SPECIES_GEODUDE" + }, + { + "min_level": 15, + "max_level": 20, + "species": "SPECIES_GEODUDE" + } + ] + }, + "fishing_mons": { + "encounter_rate": 30, + "mons": [ + { + "min_level": 5, + "max_level": 10, + "species": "SPECIES_MAGIKARP" + }, + { + "min_level": 5, + "max_level": 10, + "species": "SPECIES_GOLDEEN" + }, + { + "min_level": 10, + "max_level": 30, + "species": "SPECIES_MAGIKARP" + }, + { + "min_level": 10, + "max_level": 30, + "species": "SPECIES_GOLDEEN" + }, + { + "min_level": 10, + "max_level": 30, + "species": "SPECIES_BARBOACH" + }, + { + "min_level": 25, + "max_level": 30, + "species": "SPECIES_BARBOACH" + }, + { + "min_level": 30, + "max_level": 35, + "species": "SPECIES_BARBOACH" + }, + { + "min_level": 20, + "max_level": 25, + "species": "SPECIES_BARBOACH" + }, + { + "min_level": 35, + "max_level": 40, + "species": "SPECIES_BARBOACH" + }, + { + "min_level": 40, + "max_level": 45, + "species": "SPECIES_BARBOACH" + } + ] + } + }, + { + "map": "MAP_ROUTE112", + "base_label": "Route112_Ruby", + "land_mons": { + "encounter_rate": 20, + "mons": [ + { + "min_level": 15, + "max_level": 15, + "species": "SPECIES_NUMEL" + }, + { + "min_level": 15, + "max_level": 15, + "species": "SPECIES_NUMEL" + }, + { + "min_level": 15, + "max_level": 15, + "species": "SPECIES_MACHOP" + }, + { + "min_level": 14, + "max_level": 14, + "species": "SPECIES_NUMEL" + }, + { + "min_level": 14, + "max_level": 14, + "species": "SPECIES_NUMEL" + }, + { + "min_level": 14, + "max_level": 14, + "species": "SPECIES_MACHOP" + }, + { + "min_level": 16, + "max_level": 16, + "species": "SPECIES_NUMEL" + }, + { + "min_level": 16, + "max_level": 16, + "species": "SPECIES_MACHOP" + }, + { + "min_level": 16, + "max_level": 16, + "species": "SPECIES_NUMEL" + }, + { + "min_level": 16, + "max_level": 16, + "species": "SPECIES_NUMEL" + }, + { + "min_level": 16, + "max_level": 16, + "species": "SPECIES_NUMEL" + }, + { + "min_level": 16, + "max_level": 16, + "species": "SPECIES_NUMEL" + } + ] + } + }, + { + "map": "MAP_ROUTE113", + "base_label": "Route113_Ruby", + "land_mons": { + "encounter_rate": 20, + "mons": [ + { + "min_level": 15, + "max_level": 15, + "species": "SPECIES_SPINDA" + }, + { + "min_level": 15, + "max_level": 15, + "species": "SPECIES_SPINDA" + }, + { + "min_level": 15, + "max_level": 15, + "species": "SPECIES_SANDSHREW" + }, + { + "min_level": 14, + "max_level": 14, + "species": "SPECIES_SPINDA" + }, + { + "min_level": 14, + "max_level": 14, + "species": "SPECIES_SPINDA" + }, + { + "min_level": 14, + "max_level": 14, + "species": "SPECIES_SANDSHREW" + }, + { + "min_level": 16, + "max_level": 16, + "species": "SPECIES_SPINDA" + }, + { + "min_level": 16, + "max_level": 16, + "species": "SPECIES_SANDSHREW" + }, + { + "min_level": 16, + "max_level": 16, + "species": "SPECIES_SPINDA" + }, + { + "min_level": 16, + "max_level": 16, + "species": "SPECIES_SKARMORY" + }, + { + "min_level": 16, + "max_level": 16, + "species": "SPECIES_SPINDA" + }, + { + "min_level": 16, + "max_level": 16, + "species": "SPECIES_SKARMORY" + } + ] + } + }, + { + "map": "MAP_ROUTE114", + "base_label": "Route114_Ruby", + "land_mons": { + "encounter_rate": 20, + "mons": [ + { + "min_level": 16, + "max_level": 16, + "species": "SPECIES_SWABLU" + }, + { + "min_level": 16, + "max_level": 16, + "species": "SPECIES_SEEDOT" + }, + { + "min_level": 17, + "max_level": 17, + "species": "SPECIES_SWABLU" + }, + { + "min_level": 15, + "max_level": 15, + "species": "SPECIES_SWABLU" + }, + { + "min_level": 15, + "max_level": 15, + "species": "SPECIES_SEEDOT" + }, + { + "min_level": 16, + "max_level": 16, + "species": "SPECIES_ZANGOOSE" + }, + { + "min_level": 16, + "max_level": 16, + "species": "SPECIES_NUZLEAF" + }, + { + "min_level": 18, + "max_level": 18, + "species": "SPECIES_NUZLEAF" + }, + { + "min_level": 17, + "max_level": 17, + "species": "SPECIES_ZANGOOSE" + }, + { + "min_level": 15, + "max_level": 15, + "species": "SPECIES_ZANGOOSE" + }, + { + "min_level": 17, + "max_level": 17, + "species": "SPECIES_ZANGOOSE" + }, + { + "min_level": 15, + "max_level": 15, + "species": "SPECIES_SURSKIT" + } + ] + }, + "water_mons": { + "encounter_rate": 4, + "mons": [ + { + "min_level": 20, + "max_level": 30, + "species": "SPECIES_MARILL" + }, + { + "min_level": 10, + "max_level": 20, + "species": "SPECIES_MARILL" + }, + { + "min_level": 30, + "max_level": 35, + "species": "SPECIES_MARILL" + }, + { + "min_level": 5, + "max_level": 10, + "species": "SPECIES_MARILL" + }, + { + "min_level": 20, + "max_level": 30, + "species": "SPECIES_SURSKIT" + } + ] + }, + "rock_smash_mons": { + "encounter_rate": 20, + "mons": [ + { + "min_level": 10, + "max_level": 15, + "species": "SPECIES_GEODUDE" + }, + { + "min_level": 5, + "max_level": 10, + "species": "SPECIES_GEODUDE" + }, + { + "min_level": 15, + "max_level": 20, + "species": "SPECIES_GEODUDE" + }, + { + "min_level": 15, + "max_level": 20, + "species": "SPECIES_GEODUDE" + }, + { + "min_level": 15, + "max_level": 20, + "species": "SPECIES_GEODUDE" + } + ] + }, + "fishing_mons": { + "encounter_rate": 30, + "mons": [ + { + "min_level": 5, + "max_level": 10, + "species": "SPECIES_MAGIKARP" + }, + { + "min_level": 5, + "max_level": 10, + "species": "SPECIES_GOLDEEN" + }, + { + "min_level": 10, + "max_level": 30, + "species": "SPECIES_MAGIKARP" + }, + { + "min_level": 10, + "max_level": 30, + "species": "SPECIES_GOLDEEN" + }, + { + "min_level": 10, + "max_level": 30, + "species": "SPECIES_BARBOACH" + }, + { + "min_level": 25, + "max_level": 30, + "species": "SPECIES_BARBOACH" + }, + { + "min_level": 30, + "max_level": 35, + "species": "SPECIES_BARBOACH" + }, + { + "min_level": 20, + "max_level": 25, + "species": "SPECIES_BARBOACH" + }, + { + "min_level": 35, + "max_level": 40, + "species": "SPECIES_BARBOACH" + }, + { + "min_level": 40, + "max_level": 45, + "species": "SPECIES_BARBOACH" + } + ] + } + }, + { + "map": "MAP_ROUTE115", + "base_label": "Route115_Ruby", + "land_mons": { + "encounter_rate": 20, + "mons": [ + { + "min_level": 23, + "max_level": 23, + "species": "SPECIES_SWABLU" + }, + { + "min_level": 23, + "max_level": 23, + "species": "SPECIES_TAILLOW" + }, + { + "min_level": 25, + "max_level": 25, + "species": "SPECIES_SWABLU" + }, + { + "min_level": 24, + "max_level": 24, + "species": "SPECIES_TAILLOW" + }, + { + "min_level": 25, + "max_level": 25, + "species": "SPECIES_TAILLOW" + }, + { + "min_level": 25, + "max_level": 25, + "species": "SPECIES_SWELLOW" + }, + { + "min_level": 24, + "max_level": 24, + "species": "SPECIES_JIGGLYPUFF" + }, + { + "min_level": 25, + "max_level": 25, + "species": "SPECIES_JIGGLYPUFF" + }, + { + "min_level": 24, + "max_level": 24, + "species": "SPECIES_WINGULL" + }, + { + "min_level": 24, + "max_level": 24, + "species": "SPECIES_WINGULL" + }, + { + "min_level": 26, + "max_level": 26, + "species": "SPECIES_WINGULL" + }, + { + "min_level": 25, + "max_level": 25, + "species": "SPECIES_WINGULL" + } + ] + }, + "water_mons": { + "encounter_rate": 4, + "mons": [ + { + "min_level": 5, + "max_level": 35, + "species": "SPECIES_TENTACOOL" + }, + { + "min_level": 10, + "max_level": 30, + "species": "SPECIES_WINGULL" + }, + { + "min_level": 15, + "max_level": 25, + "species": "SPECIES_WINGULL" + }, + { + "min_level": 25, + "max_level": 30, + "species": "SPECIES_PELIPPER" + }, + { + "min_level": 25, + "max_level": 30, + "species": "SPECIES_PELIPPER" + } + ] + }, + "fishing_mons": { + "encounter_rate": 30, + "mons": [ + { + "min_level": 5, + "max_level": 10, + "species": "SPECIES_MAGIKARP" + }, + { + "min_level": 5, + "max_level": 10, + "species": "SPECIES_TENTACOOL" + }, + { + "min_level": 10, + "max_level": 30, + "species": "SPECIES_MAGIKARP" + }, + { + "min_level": 10, + "max_level": 30, + "species": "SPECIES_TENTACOOL" + }, + { + "min_level": 10, + "max_level": 30, + "species": "SPECIES_WAILMER" + }, + { + "min_level": 25, + "max_level": 30, + "species": "SPECIES_WAILMER" + }, + { + "min_level": 30, + "max_level": 35, + "species": "SPECIES_WAILMER" + }, + { + "min_level": 20, + "max_level": 25, + "species": "SPECIES_WAILMER" + }, + { + "min_level": 35, + "max_level": 40, + "species": "SPECIES_WAILMER" + }, + { + "min_level": 40, + "max_level": 45, + "species": "SPECIES_WAILMER" + } + ] + } + }, + { + "map": "MAP_ROUTE116", + "base_label": "Route116_Ruby", + "land_mons": { + "encounter_rate": 20, + "mons": [ + { + "min_level": 6, + "max_level": 6, + "species": "SPECIES_ZIGZAGOON" + }, + { + "min_level": 6, + "max_level": 6, + "species": "SPECIES_WHISMUR" + }, + { + "min_level": 6, + "max_level": 6, + "species": "SPECIES_NINCADA" + }, + { + "min_level": 7, + "max_level": 7, + "species": "SPECIES_WHISMUR" + }, + { + "min_level": 7, + "max_level": 7, + "species": "SPECIES_NINCADA" + }, + { + "min_level": 6, + "max_level": 6, + "species": "SPECIES_TAILLOW" + }, + { + "min_level": 7, + "max_level": 7, + "species": "SPECIES_TAILLOW" + }, + { + "min_level": 8, + "max_level": 8, + "species": "SPECIES_TAILLOW" + }, + { + "min_level": 7, + "max_level": 7, + "species": "SPECIES_ZIGZAGOON" + }, + { + "min_level": 8, + "max_level": 8, + "species": "SPECIES_ZIGZAGOON" + }, + { + "min_level": 7, + "max_level": 7, + "species": "SPECIES_SKITTY" + }, + { + "min_level": 8, + "max_level": 8, + "species": "SPECIES_SKITTY" + } + ] + } + }, + { + "map": "MAP_ROUTE117", + "base_label": "Route117_Ruby", + "land_mons": { + "encounter_rate": 20, + "mons": [ + { + "min_level": 13, + "max_level": 13, + "species": "SPECIES_ZIGZAGOON" + }, + { + "min_level": 13, + "max_level": 13, + "species": "SPECIES_ROSELIA" + }, + { + "min_level": 14, + "max_level": 14, + "species": "SPECIES_ZIGZAGOON" + }, + { + "min_level": 14, + "max_level": 14, + "species": "SPECIES_ROSELIA" + }, + { + "min_level": 13, + "max_level": 13, + "species": "SPECIES_MARILL" + }, + { + "min_level": 13, + "max_level": 13, + "species": "SPECIES_ODDISH" + }, + { + "min_level": 13, + "max_level": 13, + "species": "SPECIES_ILLUMISE" + }, + { + "min_level": 13, + "max_level": 13, + "species": "SPECIES_ILLUMISE" + }, + { + "min_level": 14, + "max_level": 14, + "species": "SPECIES_ILLUMISE" + }, + { + "min_level": 14, + "max_level": 14, + "species": "SPECIES_ILLUMISE" + }, + { + "min_level": 13, + "max_level": 13, + "species": "SPECIES_VOLBEAT" + }, + { + "min_level": 13, + "max_level": 13, + "species": "SPECIES_SURSKIT" + } + ] + }, + "water_mons": { + "encounter_rate": 4, + "mons": [ + { + "min_level": 20, + "max_level": 30, + "species": "SPECIES_MARILL" + }, + { + "min_level": 10, + "max_level": 20, + "species": "SPECIES_MARILL" + }, + { + "min_level": 30, + "max_level": 35, + "species": "SPECIES_MARILL" + }, + { + "min_level": 5, + "max_level": 10, + "species": "SPECIES_MARILL" + }, + { + "min_level": 20, + "max_level": 30, + "species": "SPECIES_SURSKIT" + } + ] + }, + "fishing_mons": { + "encounter_rate": 30, + "mons": [ + { + "min_level": 5, + "max_level": 10, + "species": "SPECIES_MAGIKARP" + }, + { + "min_level": 5, + "max_level": 10, + "species": "SPECIES_GOLDEEN" + }, + { + "min_level": 10, + "max_level": 30, + "species": "SPECIES_MAGIKARP" + }, + { + "min_level": 10, + "max_level": 30, + "species": "SPECIES_GOLDEEN" + }, + { + "min_level": 10, + "max_level": 30, + "species": "SPECIES_CORPHISH" + }, + { + "min_level": 25, + "max_level": 30, + "species": "SPECIES_CORPHISH" + }, + { + "min_level": 30, + "max_level": 35, + "species": "SPECIES_CORPHISH" + }, + { + "min_level": 20, + "max_level": 25, + "species": "SPECIES_CORPHISH" + }, + { + "min_level": 35, + "max_level": 40, + "species": "SPECIES_CORPHISH" + }, + { + "min_level": 40, + "max_level": 45, + "species": "SPECIES_CORPHISH" + } + ] + } + }, + { + "map": "MAP_ROUTE118", + "base_label": "Route118_Ruby", + "land_mons": { + "encounter_rate": 20, + "mons": [ + { + "min_level": 24, + "max_level": 24, + "species": "SPECIES_ZIGZAGOON" + }, + { + "min_level": 24, + "max_level": 24, + "species": "SPECIES_ELECTRIKE" + }, + { + "min_level": 26, + "max_level": 26, + "species": "SPECIES_ZIGZAGOON" + }, + { + "min_level": 26, + "max_level": 26, + "species": "SPECIES_ELECTRIKE" + }, + { + "min_level": 26, + "max_level": 26, + "species": "SPECIES_LINOONE" + }, + { + "min_level": 26, + "max_level": 26, + "species": "SPECIES_MANECTRIC" + }, + { + "min_level": 25, + "max_level": 25, + "species": "SPECIES_WINGULL" + }, + { + "min_level": 25, + "max_level": 25, + "species": "SPECIES_WINGULL" + }, + { + "min_level": 26, + "max_level": 26, + "species": "SPECIES_WINGULL" + }, + { + "min_level": 26, + "max_level": 26, + "species": "SPECIES_WINGULL" + }, + { + "min_level": 27, + "max_level": 27, + "species": "SPECIES_WINGULL" + }, + { + "min_level": 25, + "max_level": 25, + "species": "SPECIES_KECLEON" + } + ] + }, + "water_mons": { + "encounter_rate": 4, + "mons": [ + { + "min_level": 5, + "max_level": 35, + "species": "SPECIES_TENTACOOL" + }, + { + "min_level": 10, + "max_level": 30, + "species": "SPECIES_WINGULL" + }, + { + "min_level": 15, + "max_level": 25, + "species": "SPECIES_WINGULL" + }, + { + "min_level": 25, + "max_level": 30, + "species": "SPECIES_PELIPPER" + }, + { + "min_level": 25, + "max_level": 30, + "species": "SPECIES_PELIPPER" + } + ] + }, + "fishing_mons": { + "encounter_rate": 30, + "mons": [ + { + "min_level": 5, + "max_level": 10, + "species": "SPECIES_MAGIKARP" + }, + { + "min_level": 5, + "max_level": 10, + "species": "SPECIES_TENTACOOL" + }, + { + "min_level": 10, + "max_level": 30, + "species": "SPECIES_MAGIKARP" + }, + { + "min_level": 10, + "max_level": 30, + "species": "SPECIES_TENTACOOL" + }, + { + "min_level": 10, + "max_level": 30, + "species": "SPECIES_CARVANHA" + }, + { + "min_level": 30, + "max_level": 35, + "species": "SPECIES_SHARPEDO" + }, + { + "min_level": 30, + "max_level": 35, + "species": "SPECIES_CARVANHA" + }, + { + "min_level": 20, + "max_level": 25, + "species": "SPECIES_CARVANHA" + }, + { + "min_level": 35, + "max_level": 40, + "species": "SPECIES_CARVANHA" + }, + { + "min_level": 40, + "max_level": 45, + "species": "SPECIES_CARVANHA" + } + ] + } + }, + { + "map": "MAP_ROUTE119", + "base_label": "Route119_Ruby", + "land_mons": { + "encounter_rate": 15, + "mons": [ + { + "min_level": 25, + "max_level": 25, + "species": "SPECIES_ZIGZAGOON" + }, + { + "min_level": 25, + "max_level": 25, + "species": "SPECIES_LINOONE" + }, + { + "min_level": 27, + "max_level": 27, + "species": "SPECIES_ZIGZAGOON" + }, + { + "min_level": 25, + "max_level": 25, + "species": "SPECIES_ODDISH" + }, + { + "min_level": 27, + "max_level": 27, + "species": "SPECIES_LINOONE" + }, + { + "min_level": 26, + "max_level": 26, + "species": "SPECIES_ODDISH" + }, + { + "min_level": 27, + "max_level": 27, + "species": "SPECIES_ODDISH" + }, + { + "min_level": 24, + "max_level": 24, + "species": "SPECIES_ODDISH" + }, + { + "min_level": 25, + "max_level": 25, + "species": "SPECIES_TROPIUS" + }, + { + "min_level": 26, + "max_level": 26, + "species": "SPECIES_TROPIUS" + }, + { + "min_level": 27, + "max_level": 27, + "species": "SPECIES_TROPIUS" + }, + { + "min_level": 25, + "max_level": 25, + "species": "SPECIES_KECLEON" + } + ] + }, + "water_mons": { + "encounter_rate": 4, + "mons": [ + { + "min_level": 5, + "max_level": 35, + "species": "SPECIES_TENTACOOL" + }, + { + "min_level": 10, + "max_level": 30, + "species": "SPECIES_WINGULL" + }, + { + "min_level": 15, + "max_level": 25, + "species": "SPECIES_WINGULL" + }, + { + "min_level": 25, + "max_level": 30, + "species": "SPECIES_PELIPPER" + }, + { + "min_level": 25, + "max_level": 30, + "species": "SPECIES_PELIPPER" + } + ] + }, + "fishing_mons": { + "encounter_rate": 30, + "mons": [ + { + "min_level": 5, + "max_level": 10, + "species": "SPECIES_MAGIKARP" + }, + { + "min_level": 5, + "max_level": 10, + "species": "SPECIES_TENTACOOL" + }, + { + "min_level": 10, + "max_level": 30, + "species": "SPECIES_MAGIKARP" + }, + { + "min_level": 10, + "max_level": 30, + "species": "SPECIES_TENTACOOL" + }, + { + "min_level": 10, + "max_level": 30, + "species": "SPECIES_CARVANHA" + }, + { + "min_level": 25, + "max_level": 30, + "species": "SPECIES_CARVANHA" + }, + { + "min_level": 30, + "max_level": 35, + "species": "SPECIES_CARVANHA" + }, + { + "min_level": 20, + "max_level": 25, + "species": "SPECIES_CARVANHA" + }, + { + "min_level": 35, + "max_level": 40, + "species": "SPECIES_CARVANHA" + }, + { + "min_level": 40, + "max_level": 45, + "species": "SPECIES_CARVANHA" + } + ] + } + }, + { + "map": "MAP_ROUTE120", + "base_label": "Route120_Ruby", + "land_mons": { + "encounter_rate": 20, + "mons": [ + { + "min_level": 25, + "max_level": 25, + "species": "SPECIES_ZIGZAGOON" + }, + { + "min_level": 25, + "max_level": 25, + "species": "SPECIES_LINOONE" + }, + { + "min_level": 27, + "max_level": 27, + "species": "SPECIES_LINOONE" + }, + { + "min_level": 25, + "max_level": 25, + "species": "SPECIES_ODDISH" + }, + { + "min_level": 25, + "max_level": 25, + "species": "SPECIES_MARILL" + }, + { + "min_level": 26, + "max_level": 26, + "species": "SPECIES_ODDISH" + }, + { + "min_level": 27, + "max_level": 27, + "species": "SPECIES_ODDISH" + }, + { + "min_level": 27, + "max_level": 27, + "species": "SPECIES_MARILL" + }, + { + "min_level": 25, + "max_level": 25, + "species": "SPECIES_ABSOL" + }, + { + "min_level": 27, + "max_level": 27, + "species": "SPECIES_ABSOL" + }, + { + "min_level": 25, + "max_level": 25, + "species": "SPECIES_KECLEON" + }, + { + "min_level": 25, + "max_level": 25, + "species": "SPECIES_SURSKIT" + } + ] + }, + "water_mons": { + "encounter_rate": 4, + "mons": [ + { + "min_level": 20, + "max_level": 30, + "species": "SPECIES_MARILL" + }, + { + "min_level": 10, + "max_level": 20, + "species": "SPECIES_MARILL" + }, + { + "min_level": 30, + "max_level": 35, + "species": "SPECIES_MARILL" + }, + { + "min_level": 5, + "max_level": 10, + "species": "SPECIES_MARILL" + }, + { + "min_level": 20, + "max_level": 30, + "species": "SPECIES_SURSKIT" + } + ] + }, + "fishing_mons": { + "encounter_rate": 30, + "mons": [ + { + "min_level": 5, + "max_level": 10, + "species": "SPECIES_MAGIKARP" + }, + { + "min_level": 5, + "max_level": 10, + "species": "SPECIES_GOLDEEN" + }, + { + "min_level": 10, + "max_level": 30, + "species": "SPECIES_MAGIKARP" + }, + { + "min_level": 10, + "max_level": 30, + "species": "SPECIES_GOLDEEN" + }, + { + "min_level": 10, + "max_level": 30, + "species": "SPECIES_BARBOACH" + }, + { + "min_level": 25, + "max_level": 30, + "species": "SPECIES_BARBOACH" + }, + { + "min_level": 30, + "max_level": 35, + "species": "SPECIES_BARBOACH" + }, + { + "min_level": 20, + "max_level": 25, + "species": "SPECIES_BARBOACH" + }, + { + "min_level": 35, + "max_level": 40, + "species": "SPECIES_BARBOACH" + }, + { + "min_level": 40, + "max_level": 45, + "species": "SPECIES_BARBOACH" + } + ] + } + }, + { + "map": "MAP_ROUTE121", + "base_label": "Route121_Ruby", + "land_mons": { + "encounter_rate": 20, + "mons": [ + { + "min_level": 26, + "max_level": 26, + "species": "SPECIES_ZIGZAGOON" + }, + { + "min_level": 26, + "max_level": 26, + "species": "SPECIES_DUSKULL" + }, + { + "min_level": 26, + "max_level": 26, + "species": "SPECIES_LINOONE" + }, + { + "min_level": 28, + "max_level": 28, + "species": "SPECIES_DUSKULL" + }, + { + "min_level": 28, + "max_level": 28, + "species": "SPECIES_LINOONE" + }, + { + "min_level": 26, + "max_level": 26, + "species": "SPECIES_ODDISH" + }, + { + "min_level": 28, + "max_level": 28, + "species": "SPECIES_ODDISH" + }, + { + "min_level": 28, + "max_level": 28, + "species": "SPECIES_GLOOM" + }, + { + "min_level": 26, + "max_level": 26, + "species": "SPECIES_WINGULL" + }, + { + "min_level": 27, + "max_level": 27, + "species": "SPECIES_WINGULL" + }, + { + "min_level": 28, + "max_level": 28, + "species": "SPECIES_WINGULL" + }, + { + "min_level": 25, + "max_level": 25, + "species": "SPECIES_KECLEON" + } + ] + }, + "water_mons": { + "encounter_rate": 4, + "mons": [ + { + "min_level": 5, + "max_level": 35, + "species": "SPECIES_TENTACOOL" + }, + { + "min_level": 10, + "max_level": 30, + "species": "SPECIES_WINGULL" + }, + { + "min_level": 15, + "max_level": 25, + "species": "SPECIES_WINGULL" + }, + { + "min_level": 25, + "max_level": 30, + "species": "SPECIES_PELIPPER" + }, + { + "min_level": 25, + "max_level": 30, + "species": "SPECIES_PELIPPER" + } + ] + }, + "fishing_mons": { + "encounter_rate": 30, + "mons": [ + { + "min_level": 5, + "max_level": 10, + "species": "SPECIES_MAGIKARP" + }, + { + "min_level": 5, + "max_level": 10, + "species": "SPECIES_TENTACOOL" + }, + { + "min_level": 10, + "max_level": 30, + "species": "SPECIES_MAGIKARP" + }, + { + "min_level": 10, + "max_level": 30, + "species": "SPECIES_TENTACOOL" + }, + { + "min_level": 10, + "max_level": 30, + "species": "SPECIES_WAILMER" + }, + { + "min_level": 25, + "max_level": 30, + "species": "SPECIES_WAILMER" + }, + { + "min_level": 30, + "max_level": 35, + "species": "SPECIES_WAILMER" + }, + { + "min_level": 20, + "max_level": 25, + "species": "SPECIES_WAILMER" + }, + { + "min_level": 35, + "max_level": 40, + "species": "SPECIES_WAILMER" + }, + { + "min_level": 40, + "max_level": 45, + "species": "SPECIES_WAILMER" + } + ] + } + }, + { + "map": "MAP_ROUTE122", + "base_label": "Route122_Ruby", + "water_mons": { + "encounter_rate": 4, + "mons": [ + { + "min_level": 5, + "max_level": 35, + "species": "SPECIES_TENTACOOL" + }, + { + "min_level": 10, + "max_level": 30, + "species": "SPECIES_WINGULL" + }, + { + "min_level": 15, + "max_level": 25, + "species": "SPECIES_WINGULL" + }, + { + "min_level": 25, + "max_level": 30, + "species": "SPECIES_PELIPPER" + }, + { + "min_level": 25, + "max_level": 30, + "species": "SPECIES_PELIPPER" + } + ] + }, + "fishing_mons": { + "encounter_rate": 30, + "mons": [ + { + "min_level": 5, + "max_level": 10, + "species": "SPECIES_MAGIKARP" + }, + { + "min_level": 5, + "max_level": 10, + "species": "SPECIES_TENTACOOL" + }, + { + "min_level": 10, + "max_level": 30, + "species": "SPECIES_MAGIKARP" + }, + { + "min_level": 10, + "max_level": 30, + "species": "SPECIES_TENTACOOL" + }, + { + "min_level": 10, + "max_level": 30, + "species": "SPECIES_WAILMER" + }, + { + "min_level": 30, + "max_level": 35, + "species": "SPECIES_SHARPEDO" + }, + { + "min_level": 30, + "max_level": 35, + "species": "SPECIES_WAILMER" + }, + { + "min_level": 25, + "max_level": 30, + "species": "SPECIES_WAILMER" + }, + { + "min_level": 35, + "max_level": 40, + "species": "SPECIES_WAILMER" + }, + { + "min_level": 40, + "max_level": 45, + "species": "SPECIES_WAILMER" + } + ] + } + }, + { + "map": "MAP_ROUTE123", + "base_label": "Route123_Ruby", + "land_mons": { + "encounter_rate": 20, + "mons": [ + { + "min_level": 26, + "max_level": 26, + "species": "SPECIES_ZIGZAGOON" + }, + { + "min_level": 26, + "max_level": 26, + "species": "SPECIES_DUSKULL" + }, + { + "min_level": 26, + "max_level": 26, + "species": "SPECIES_LINOONE" + }, + { + "min_level": 28, + "max_level": 28, + "species": "SPECIES_DUSKULL" + }, + { + "min_level": 28, + "max_level": 28, + "species": "SPECIES_LINOONE" + }, + { + "min_level": 26, + "max_level": 26, + "species": "SPECIES_ODDISH" + }, + { + "min_level": 28, + "max_level": 28, + "species": "SPECIES_ODDISH" + }, + { + "min_level": 28, + "max_level": 28, + "species": "SPECIES_GLOOM" + }, + { + "min_level": 26, + "max_level": 26, + "species": "SPECIES_WINGULL" + }, + { + "min_level": 27, + "max_level": 27, + "species": "SPECIES_WINGULL" + }, + { + "min_level": 28, + "max_level": 28, + "species": "SPECIES_WINGULL" + }, + { + "min_level": 25, + "max_level": 25, + "species": "SPECIES_KECLEON" + } + ] + }, + "water_mons": { + "encounter_rate": 4, + "mons": [ + { + "min_level": 5, + "max_level": 35, + "species": "SPECIES_TENTACOOL" + }, + { + "min_level": 10, + "max_level": 30, + "species": "SPECIES_WINGULL" + }, + { + "min_level": 15, + "max_level": 25, + "species": "SPECIES_WINGULL" + }, + { + "min_level": 25, + "max_level": 30, + "species": "SPECIES_PELIPPER" + }, + { + "min_level": 25, + "max_level": 30, + "species": "SPECIES_PELIPPER" + } + ] + }, + "fishing_mons": { + "encounter_rate": 30, + "mons": [ + { + "min_level": 5, + "max_level": 10, + "species": "SPECIES_MAGIKARP" + }, + { + "min_level": 5, + "max_level": 10, + "species": "SPECIES_TENTACOOL" + }, + { + "min_level": 10, + "max_level": 30, + "species": "SPECIES_MAGIKARP" + }, + { + "min_level": 10, + "max_level": 30, + "species": "SPECIES_TENTACOOL" + }, + { + "min_level": 10, + "max_level": 30, + "species": "SPECIES_WAILMER" + }, + { + "min_level": 25, + "max_level": 30, + "species": "SPECIES_WAILMER" + }, + { + "min_level": 30, + "max_level": 35, + "species": "SPECIES_WAILMER" + }, + { + "min_level": 20, + "max_level": 25, + "species": "SPECIES_WAILMER" + }, + { + "min_level": 35, + "max_level": 40, + "species": "SPECIES_WAILMER" + }, + { + "min_level": 40, + "max_level": 45, + "species": "SPECIES_WAILMER" + } + ] + } + }, + { + "map": "MAP_ROUTE124", + "base_label": "Route124_Ruby", + "water_mons": { + "encounter_rate": 4, + "mons": [ + { + "min_level": 5, + "max_level": 35, + "species": "SPECIES_TENTACOOL" + }, + { + "min_level": 10, + "max_level": 30, + "species": "SPECIES_WINGULL" + }, + { + "min_level": 15, + "max_level": 25, + "species": "SPECIES_WINGULL" + }, + { + "min_level": 25, + "max_level": 30, + "species": "SPECIES_PELIPPER" + }, + { + "min_level": 25, + "max_level": 30, + "species": "SPECIES_PELIPPER" + } + ] + }, + "fishing_mons": { + "encounter_rate": 30, + "mons": [ + { + "min_level": 5, + "max_level": 10, + "species": "SPECIES_MAGIKARP" + }, + { + "min_level": 5, + "max_level": 10, + "species": "SPECIES_TENTACOOL" + }, + { + "min_level": 10, + "max_level": 30, + "species": "SPECIES_MAGIKARP" + }, + { + "min_level": 10, + "max_level": 30, + "species": "SPECIES_TENTACOOL" + }, + { + "min_level": 10, + "max_level": 30, + "species": "SPECIES_WAILMER" + }, + { + "min_level": 30, + "max_level": 35, + "species": "SPECIES_SHARPEDO" + }, + { + "min_level": 30, + "max_level": 35, + "species": "SPECIES_WAILMER" + }, + { + "min_level": 25, + "max_level": 30, + "species": "SPECIES_WAILMER" + }, + { + "min_level": 35, + "max_level": 40, + "species": "SPECIES_WAILMER" + }, + { + "min_level": 40, + "max_level": 45, + "species": "SPECIES_WAILMER" + } + ] + } + }, + { + "map": "MAP_ROUTE125", + "base_label": "Route125_Ruby", + "water_mons": { + "encounter_rate": 4, + "mons": [ + { + "min_level": 5, + "max_level": 35, + "species": "SPECIES_TENTACOOL" + }, + { + "min_level": 10, + "max_level": 30, + "species": "SPECIES_WINGULL" + }, + { + "min_level": 15, + "max_level": 25, + "species": "SPECIES_WINGULL" + }, + { + "min_level": 25, + "max_level": 30, + "species": "SPECIES_PELIPPER" + }, + { + "min_level": 25, + "max_level": 30, + "species": "SPECIES_PELIPPER" + } + ] + }, + "fishing_mons": { + "encounter_rate": 30, + "mons": [ + { + "min_level": 5, + "max_level": 10, + "species": "SPECIES_MAGIKARP" + }, + { + "min_level": 5, + "max_level": 10, + "species": "SPECIES_TENTACOOL" + }, + { + "min_level": 10, + "max_level": 30, + "species": "SPECIES_MAGIKARP" + }, + { + "min_level": 10, + "max_level": 30, + "species": "SPECIES_TENTACOOL" + }, + { + "min_level": 10, + "max_level": 30, + "species": "SPECIES_WAILMER" + }, + { + "min_level": 30, + "max_level": 35, + "species": "SPECIES_SHARPEDO" + }, + { + "min_level": 30, + "max_level": 35, + "species": "SPECIES_WAILMER" + }, + { + "min_level": 25, + "max_level": 30, + "species": "SPECIES_WAILMER" + }, + { + "min_level": 35, + "max_level": 40, + "species": "SPECIES_WAILMER" + }, + { + "min_level": 40, + "max_level": 45, + "species": "SPECIES_WAILMER" + } + ] + } + }, + { + "map": "MAP_ROUTE126", + "base_label": "Route126_Ruby", + "water_mons": { + "encounter_rate": 4, + "mons": [ + { + "min_level": 5, + "max_level": 35, + "species": "SPECIES_TENTACOOL" + }, + { + "min_level": 10, + "max_level": 30, + "species": "SPECIES_WINGULL" + }, + { + "min_level": 15, + "max_level": 25, + "species": "SPECIES_WINGULL" + }, + { + "min_level": 25, + "max_level": 30, + "species": "SPECIES_PELIPPER" + }, + { + "min_level": 25, + "max_level": 30, + "species": "SPECIES_PELIPPER" + } + ] + }, + "fishing_mons": { + "encounter_rate": 30, + "mons": [ + { + "min_level": 5, + "max_level": 10, + "species": "SPECIES_MAGIKARP" + }, + { + "min_level": 5, + "max_level": 10, + "species": "SPECIES_TENTACOOL" + }, + { + "min_level": 10, + "max_level": 30, + "species": "SPECIES_MAGIKARP" + }, + { + "min_level": 10, + "max_level": 30, + "species": "SPECIES_TENTACOOL" + }, + { + "min_level": 10, + "max_level": 30, + "species": "SPECIES_WAILMER" + }, + { + "min_level": 30, + "max_level": 35, + "species": "SPECIES_SHARPEDO" + }, + { + "min_level": 30, + "max_level": 35, + "species": "SPECIES_WAILMER" + }, + { + "min_level": 25, + "max_level": 30, + "species": "SPECIES_WAILMER" + }, + { + "min_level": 35, + "max_level": 40, + "species": "SPECIES_WAILMER" + }, + { + "min_level": 40, + "max_level": 45, + "species": "SPECIES_WAILMER" + } + ] + } + }, + { + "map": "MAP_ROUTE127", + "base_label": "Route127_Ruby", + "water_mons": { + "encounter_rate": 4, + "mons": [ + { + "min_level": 5, + "max_level": 35, + "species": "SPECIES_TENTACOOL" + }, + { + "min_level": 10, + "max_level": 30, + "species": "SPECIES_WINGULL" + }, + { + "min_level": 15, + "max_level": 25, + "species": "SPECIES_WINGULL" + }, + { + "min_level": 25, + "max_level": 30, + "species": "SPECIES_PELIPPER" + }, + { + "min_level": 25, + "max_level": 30, + "species": "SPECIES_PELIPPER" + } + ] + }, + "fishing_mons": { + "encounter_rate": 30, + "mons": [ + { + "min_level": 5, + "max_level": 10, + "species": "SPECIES_MAGIKARP" + }, + { + "min_level": 5, + "max_level": 10, + "species": "SPECIES_TENTACOOL" + }, + { + "min_level": 10, + "max_level": 30, + "species": "SPECIES_MAGIKARP" + }, + { + "min_level": 10, + "max_level": 30, + "species": "SPECIES_TENTACOOL" + }, + { + "min_level": 10, + "max_level": 30, + "species": "SPECIES_WAILMER" + }, + { + "min_level": 30, + "max_level": 35, + "species": "SPECIES_SHARPEDO" + }, + { + "min_level": 30, + "max_level": 35, + "species": "SPECIES_WAILMER" + }, + { + "min_level": 25, + "max_level": 30, + "species": "SPECIES_WAILMER" + }, + { + "min_level": 35, + "max_level": 40, + "species": "SPECIES_WAILMER" + }, + { + "min_level": 40, + "max_level": 45, + "species": "SPECIES_WAILMER" + } + ] + } + }, + { + "map": "MAP_ROUTE128", + "base_label": "Route128_Ruby", + "water_mons": { + "encounter_rate": 4, + "mons": [ + { + "min_level": 5, + "max_level": 35, + "species": "SPECIES_TENTACOOL" + }, + { + "min_level": 10, + "max_level": 30, + "species": "SPECIES_WINGULL" + }, + { + "min_level": 15, + "max_level": 25, + "species": "SPECIES_WINGULL" + }, + { + "min_level": 25, + "max_level": 30, + "species": "SPECIES_PELIPPER" + }, + { + "min_level": 25, + "max_level": 30, + "species": "SPECIES_PELIPPER" + } + ] + }, + "fishing_mons": { + "encounter_rate": 30, + "mons": [ + { + "min_level": 5, + "max_level": 10, + "species": "SPECIES_MAGIKARP" + }, + { + "min_level": 5, + "max_level": 10, + "species": "SPECIES_TENTACOOL" + }, + { + "min_level": 10, + "max_level": 30, + "species": "SPECIES_MAGIKARP" + }, + { + "min_level": 10, + "max_level": 30, + "species": "SPECIES_LUVDISC" + }, + { + "min_level": 10, + "max_level": 30, + "species": "SPECIES_WAILMER" + }, + { + "min_level": 30, + "max_level": 35, + "species": "SPECIES_LUVDISC" + }, + { + "min_level": 30, + "max_level": 35, + "species": "SPECIES_WAILMER" + }, + { + "min_level": 30, + "max_level": 35, + "species": "SPECIES_CORSOLA" + }, + { + "min_level": 35, + "max_level": 40, + "species": "SPECIES_WAILMER" + }, + { + "min_level": 40, + "max_level": 45, + "species": "SPECIES_WAILMER" + } + ] + } + }, + { + "map": "MAP_ROUTE129", + "base_label": "Route129_Ruby", + "water_mons": { + "encounter_rate": 4, + "mons": [ + { + "min_level": 5, + "max_level": 35, + "species": "SPECIES_TENTACOOL" + }, + { + "min_level": 10, + "max_level": 30, + "species": "SPECIES_WINGULL" + }, + { + "min_level": 15, + "max_level": 25, + "species": "SPECIES_WINGULL" + }, + { + "min_level": 25, + "max_level": 30, + "species": "SPECIES_PELIPPER" + }, + { + "min_level": 35, + "max_level": 40, + "species": "SPECIES_WAILORD" + } + ] + }, + "fishing_mons": { + "encounter_rate": 30, + "mons": [ + { + "min_level": 5, + "max_level": 10, + "species": "SPECIES_MAGIKARP" + }, + { + "min_level": 5, + "max_level": 10, + "species": "SPECIES_TENTACOOL" + }, + { + "min_level": 10, + "max_level": 30, + "species": "SPECIES_MAGIKARP" + }, + { + "min_level": 10, + "max_level": 30, + "species": "SPECIES_TENTACOOL" + }, + { + "min_level": 10, + "max_level": 30, + "species": "SPECIES_WAILMER" + }, + { + "min_level": 30, + "max_level": 35, + "species": "SPECIES_SHARPEDO" + }, + { + "min_level": 30, + "max_level": 35, + "species": "SPECIES_WAILMER" + }, + { + "min_level": 25, + "max_level": 30, + "species": "SPECIES_WAILMER" + }, + { + "min_level": 35, + "max_level": 40, + "species": "SPECIES_WAILMER" + }, + { + "min_level": 40, + "max_level": 45, + "species": "SPECIES_WAILMER" + } + ] + } + }, + { + "map": "MAP_ROUTE130", + "base_label": "Route130_Ruby", + "land_mons": { + "encounter_rate": 20, + "mons": [ + { + "min_level": 30, + "max_level": 30, + "species": "SPECIES_WYNAUT" + }, + { + "min_level": 35, + "max_level": 35, + "species": "SPECIES_WYNAUT" + }, + { + "min_level": 25, + "max_level": 25, + "species": "SPECIES_WYNAUT" + }, + { + "min_level": 40, + "max_level": 40, + "species": "SPECIES_WYNAUT" + }, + { + "min_level": 20, + "max_level": 20, + "species": "SPECIES_WYNAUT" + }, + { + "min_level": 45, + "max_level": 45, + "species": "SPECIES_WYNAUT" + }, + { + "min_level": 15, + "max_level": 15, + "species": "SPECIES_WYNAUT" + }, + { + "min_level": 50, + "max_level": 50, + "species": "SPECIES_WYNAUT" + }, + { + "min_level": 10, + "max_level": 10, + "species": "SPECIES_WYNAUT" + }, + { + "min_level": 5, + "max_level": 5, + "species": "SPECIES_WYNAUT" + }, + { + "min_level": 10, + "max_level": 10, + "species": "SPECIES_WYNAUT" + }, + { + "min_level": 5, + "max_level": 5, + "species": "SPECIES_WYNAUT" + } + ] + }, + "water_mons": { + "encounter_rate": 4, + "mons": [ + { + "min_level": 5, + "max_level": 35, + "species": "SPECIES_TENTACOOL" + }, + { + "min_level": 10, + "max_level": 30, + "species": "SPECIES_WINGULL" + }, + { + "min_level": 15, + "max_level": 25, + "species": "SPECIES_WINGULL" + }, + { + "min_level": 25, + "max_level": 30, + "species": "SPECIES_PELIPPER" + }, + { + "min_level": 25, + "max_level": 30, + "species": "SPECIES_PELIPPER" + } + ] + }, + "fishing_mons": { + "encounter_rate": 30, + "mons": [ + { + "min_level": 5, + "max_level": 10, + "species": "SPECIES_MAGIKARP" + }, + { + "min_level": 5, + "max_level": 10, + "species": "SPECIES_TENTACOOL" + }, + { + "min_level": 10, + "max_level": 30, + "species": "SPECIES_MAGIKARP" + }, + { + "min_level": 10, + "max_level": 30, + "species": "SPECIES_TENTACOOL" + }, + { + "min_level": 10, + "max_level": 30, + "species": "SPECIES_WAILMER" + }, + { + "min_level": 30, + "max_level": 35, + "species": "SPECIES_SHARPEDO" + }, + { + "min_level": 30, + "max_level": 35, + "species": "SPECIES_WAILMER" + }, + { + "min_level": 25, + "max_level": 30, + "species": "SPECIES_WAILMER" + }, + { + "min_level": 35, + "max_level": 40, + "species": "SPECIES_WAILMER" + }, + { + "min_level": 40, + "max_level": 45, + "species": "SPECIES_WAILMER" + } + ] + } + }, + { + "map": "MAP_ROUTE131", + "base_label": "Route131_Ruby", + "water_mons": { + "encounter_rate": 4, + "mons": [ + { + "min_level": 5, + "max_level": 35, + "species": "SPECIES_TENTACOOL" + }, + { + "min_level": 10, + "max_level": 30, + "species": "SPECIES_WINGULL" + }, + { + "min_level": 15, + "max_level": 25, + "species": "SPECIES_WINGULL" + }, + { + "min_level": 25, + "max_level": 30, + "species": "SPECIES_PELIPPER" + }, + { + "min_level": 25, + "max_level": 30, + "species": "SPECIES_PELIPPER" + } + ] + }, + "fishing_mons": { + "encounter_rate": 30, + "mons": [ + { + "min_level": 5, + "max_level": 10, + "species": "SPECIES_MAGIKARP" + }, + { + "min_level": 5, + "max_level": 10, + "species": "SPECIES_TENTACOOL" + }, + { + "min_level": 10, + "max_level": 30, + "species": "SPECIES_MAGIKARP" + }, + { + "min_level": 10, + "max_level": 30, + "species": "SPECIES_TENTACOOL" + }, + { + "min_level": 10, + "max_level": 30, + "species": "SPECIES_WAILMER" + }, + { + "min_level": 30, + "max_level": 35, + "species": "SPECIES_SHARPEDO" + }, + { + "min_level": 30, + "max_level": 35, + "species": "SPECIES_WAILMER" + }, + { + "min_level": 25, + "max_level": 30, + "species": "SPECIES_WAILMER" + }, + { + "min_level": 35, + "max_level": 40, + "species": "SPECIES_WAILMER" + }, + { + "min_level": 40, + "max_level": 45, + "species": "SPECIES_WAILMER" + } + ] + } + }, + { + "map": "MAP_ROUTE132", + "base_label": "Route132_Ruby", + "water_mons": { + "encounter_rate": 4, + "mons": [ + { + "min_level": 5, + "max_level": 35, + "species": "SPECIES_TENTACOOL" + }, + { + "min_level": 10, + "max_level": 30, + "species": "SPECIES_WINGULL" + }, + { + "min_level": 15, + "max_level": 25, + "species": "SPECIES_WINGULL" + }, + { + "min_level": 25, + "max_level": 30, + "species": "SPECIES_PELIPPER" + }, + { + "min_level": 25, + "max_level": 30, + "species": "SPECIES_PELIPPER" + } + ] + }, + "fishing_mons": { + "encounter_rate": 30, + "mons": [ + { + "min_level": 5, + "max_level": 10, + "species": "SPECIES_MAGIKARP" + }, + { + "min_level": 5, + "max_level": 10, + "species": "SPECIES_TENTACOOL" + }, + { + "min_level": 10, + "max_level": 30, + "species": "SPECIES_MAGIKARP" + }, + { + "min_level": 10, + "max_level": 30, + "species": "SPECIES_TENTACOOL" + }, + { + "min_level": 10, + "max_level": 30, + "species": "SPECIES_WAILMER" + }, + { + "min_level": 30, + "max_level": 35, + "species": "SPECIES_SHARPEDO" + }, + { + "min_level": 30, + "max_level": 35, + "species": "SPECIES_WAILMER" + }, + { + "min_level": 25, + "max_level": 30, + "species": "SPECIES_HORSEA" + }, + { + "min_level": 35, + "max_level": 40, + "species": "SPECIES_WAILMER" + }, + { + "min_level": 40, + "max_level": 45, + "species": "SPECIES_WAILMER" + } + ] + } + }, + { + "map": "MAP_ROUTE133", + "base_label": "Route133_Ruby", + "water_mons": { + "encounter_rate": 4, + "mons": [ + { + "min_level": 5, + "max_level": 35, + "species": "SPECIES_TENTACOOL" + }, + { + "min_level": 10, + "max_level": 30, + "species": "SPECIES_WINGULL" + }, + { + "min_level": 15, + "max_level": 25, + "species": "SPECIES_WINGULL" + }, + { + "min_level": 25, + "max_level": 30, + "species": "SPECIES_PELIPPER" + }, + { + "min_level": 25, + "max_level": 30, + "species": "SPECIES_PELIPPER" + } + ] + }, + "fishing_mons": { + "encounter_rate": 30, + "mons": [ + { + "min_level": 5, + "max_level": 10, + "species": "SPECIES_MAGIKARP" + }, + { + "min_level": 5, + "max_level": 10, + "species": "SPECIES_TENTACOOL" + }, + { + "min_level": 10, + "max_level": 30, + "species": "SPECIES_MAGIKARP" + }, + { + "min_level": 10, + "max_level": 30, + "species": "SPECIES_TENTACOOL" + }, + { + "min_level": 10, + "max_level": 30, + "species": "SPECIES_WAILMER" + }, + { + "min_level": 30, + "max_level": 35, + "species": "SPECIES_SHARPEDO" + }, + { + "min_level": 30, + "max_level": 35, + "species": "SPECIES_WAILMER" + }, + { + "min_level": 25, + "max_level": 30, + "species": "SPECIES_HORSEA" + }, + { + "min_level": 35, + "max_level": 40, + "species": "SPECIES_WAILMER" + }, + { + "min_level": 40, + "max_level": 45, + "species": "SPECIES_WAILMER" + } + ] + } + }, + { + "map": "MAP_ROUTE134", + "base_label": "Route134_Ruby", + "water_mons": { + "encounter_rate": 4, + "mons": [ + { + "min_level": 5, + "max_level": 35, + "species": "SPECIES_TENTACOOL" + }, + { + "min_level": 10, + "max_level": 30, + "species": "SPECIES_WINGULL" + }, + { + "min_level": 15, + "max_level": 25, + "species": "SPECIES_WINGULL" + }, + { + "min_level": 25, + "max_level": 30, + "species": "SPECIES_PELIPPER" + }, + { + "min_level": 25, + "max_level": 30, + "species": "SPECIES_PELIPPER" + } + ] + }, + "fishing_mons": { + "encounter_rate": 30, + "mons": [ + { + "min_level": 5, + "max_level": 10, + "species": "SPECIES_MAGIKARP" + }, + { + "min_level": 5, + "max_level": 10, + "species": "SPECIES_TENTACOOL" + }, + { + "min_level": 10, + "max_level": 30, + "species": "SPECIES_MAGIKARP" + }, + { + "min_level": 10, + "max_level": 30, + "species": "SPECIES_TENTACOOL" + }, + { + "min_level": 10, + "max_level": 30, + "species": "SPECIES_WAILMER" + }, + { + "min_level": 30, + "max_level": 35, + "species": "SPECIES_SHARPEDO" + }, + { + "min_level": 30, + "max_level": 35, + "species": "SPECIES_WAILMER" + }, + { + "min_level": 25, + "max_level": 30, + "species": "SPECIES_HORSEA" + }, + { + "min_level": 35, + "max_level": 40, + "species": "SPECIES_WAILMER" + }, + { + "min_level": 40, + "max_level": 45, + "species": "SPECIES_WAILMER" + } + ] + } + }, + { + "map": "MAP_SAFARI_ZONE_NORTHWEST", + "base_label": "SafariZone_Northwest_Ruby", + "land_mons": { + "encounter_rate": 25, + "mons": [ + { + "min_level": 27, + "max_level": 27, + "species": "SPECIES_RHYHORN" + }, + { + "min_level": 27, + "max_level": 27, + "species": "SPECIES_ODDISH" + }, + { + "min_level": 29, + "max_level": 29, + "species": "SPECIES_RHYHORN" + }, + { + "min_level": 29, + "max_level": 29, + "species": "SPECIES_ODDISH" + }, + { + "min_level": 27, + "max_level": 27, + "species": "SPECIES_DODUO" + }, + { + "min_level": 29, + "max_level": 29, + "species": "SPECIES_GLOOM" + }, + { + "min_level": 31, + "max_level": 31, + "species": "SPECIES_GLOOM" + }, + { + "min_level": 29, + "max_level": 29, + "species": "SPECIES_DODUO" + }, + { + "min_level": 29, + "max_level": 29, + "species": "SPECIES_DODRIO" + }, + { + "min_level": 27, + "max_level": 27, + "species": "SPECIES_PINSIR" + }, + { + "min_level": 31, + "max_level": 31, + "species": "SPECIES_DODRIO" + }, + { + "min_level": 29, + "max_level": 29, + "species": "SPECIES_PINSIR" + } + ] + }, + "water_mons": { + "encounter_rate": 9, + "mons": [ + { + "min_level": 20, + "max_level": 30, + "species": "SPECIES_PSYDUCK" + }, + { + "min_level": 20, + "max_level": 30, + "species": "SPECIES_PSYDUCK" + }, + { + "min_level": 30, + "max_level": 35, + "species": "SPECIES_PSYDUCK" + }, + { + "min_level": 30, + "max_level": 35, + "species": "SPECIES_GOLDUCK" + }, + { + "min_level": 25, + "max_level": 40, + "species": "SPECIES_GOLDUCK" + } + ] + }, + "fishing_mons": { + "encounter_rate": 35, + "mons": [ + { + "min_level": 5, + "max_level": 10, + "species": "SPECIES_MAGIKARP" + }, + { + "min_level": 5, + "max_level": 10, + "species": "SPECIES_GOLDEEN" + }, + { + "min_level": 10, + "max_level": 30, + "species": "SPECIES_MAGIKARP" + }, + { + "min_level": 10, + "max_level": 25, + "species": "SPECIES_GOLDEEN" + }, + { + "min_level": 10, + "max_level": 30, + "species": "SPECIES_GOLDEEN" + }, + { + "min_level": 25, + "max_level": 30, + "species": "SPECIES_GOLDEEN" + }, + { + "min_level": 30, + "max_level": 35, + "species": "SPECIES_GOLDEEN" + }, + { + "min_level": 30, + "max_level": 35, + "species": "SPECIES_SEAKING" + }, + { + "min_level": 35, + "max_level": 40, + "species": "SPECIES_SEAKING" + }, + { + "min_level": 25, + "max_level": 30, + "species": "SPECIES_SEAKING" + } + ] + } + }, + { + "map": "MAP_SAFARI_ZONE_NORTHEAST", + "base_label": "SafariZone_Northeast_Ruby", + "land_mons": { + "encounter_rate": 25, + "mons": [ + { + "min_level": 27, + "max_level": 27, + "species": "SPECIES_PHANPY" + }, + { + "min_level": 27, + "max_level": 27, + "species": "SPECIES_ODDISH" + }, + { + "min_level": 29, + "max_level": 29, + "species": "SPECIES_PHANPY" + }, + { + "min_level": 29, + "max_level": 29, + "species": "SPECIES_ODDISH" + }, + { + "min_level": 27, + "max_level": 27, + "species": "SPECIES_NATU" + }, + { + "min_level": 29, + "max_level": 29, + "species": "SPECIES_GLOOM" + }, + { + "min_level": 31, + "max_level": 31, + "species": "SPECIES_GLOOM" + }, + { + "min_level": 29, + "max_level": 29, + "species": "SPECIES_NATU" + }, + { + "min_level": 29, + "max_level": 29, + "species": "SPECIES_XATU" + }, + { + "min_level": 27, + "max_level": 27, + "species": "SPECIES_HERACROSS" + }, + { + "min_level": 31, + "max_level": 31, + "species": "SPECIES_XATU" + }, + { + "min_level": 29, + "max_level": 29, + "species": "SPECIES_HERACROSS" + } + ] + }, + "rock_smash_mons": { + "encounter_rate": 25, + "mons": [ + { + "min_level": 10, + "max_level": 15, + "species": "SPECIES_GEODUDE" + }, + { + "min_level": 5, + "max_level": 10, + "species": "SPECIES_GEODUDE" + }, + { + "min_level": 15, + "max_level": 20, + "species": "SPECIES_GEODUDE" + }, + { + "min_level": 20, + "max_level": 25, + "species": "SPECIES_GEODUDE" + }, + { + "min_level": 25, + "max_level": 30, + "species": "SPECIES_GEODUDE" + } + ] + } + }, + { + "map": "MAP_SAFARI_ZONE_SOUTHWEST", + "base_label": "SafariZone_Southwest_Ruby", + "land_mons": { + "encounter_rate": 25, + "mons": [ + { + "min_level": 25, + "max_level": 25, + "species": "SPECIES_ODDISH" + }, + { + "min_level": 27, + "max_level": 27, + "species": "SPECIES_ODDISH" + }, + { + "min_level": 25, + "max_level": 25, + "species": "SPECIES_GIRAFARIG" + }, + { + "min_level": 27, + "max_level": 27, + "species": "SPECIES_GIRAFARIG" + }, + { + "min_level": 25, + "max_level": 25, + "species": "SPECIES_NATU" + }, + { + "min_level": 25, + "max_level": 25, + "species": "SPECIES_DODUO" + }, + { + "min_level": 25, + "max_level": 25, + "species": "SPECIES_GLOOM" + }, + { + "min_level": 27, + "max_level": 27, + "species": "SPECIES_WOBBUFFET" + }, + { + "min_level": 25, + "max_level": 25, + "species": "SPECIES_PIKACHU" + }, + { + "min_level": 27, + "max_level": 27, + "species": "SPECIES_WOBBUFFET" + }, + { + "min_level": 27, + "max_level": 27, + "species": "SPECIES_PIKACHU" + }, + { + "min_level": 29, + "max_level": 29, + "species": "SPECIES_WOBBUFFET" + } + ] + }, + "water_mons": { + "encounter_rate": 9, + "mons": [ + { + "min_level": 20, + "max_level": 30, + "species": "SPECIES_PSYDUCK" + }, + { + "min_level": 20, + "max_level": 30, + "species": "SPECIES_PSYDUCK" + }, + { + "min_level": 30, + "max_level": 35, + "species": "SPECIES_PSYDUCK" + }, + { + "min_level": 30, + "max_level": 35, + "species": "SPECIES_PSYDUCK" + }, + { + "min_level": 30, + "max_level": 35, + "species": "SPECIES_PSYDUCK" + } + ] + }, + "fishing_mons": { + "encounter_rate": 35, + "mons": [ + { + "min_level": 5, + "max_level": 10, + "species": "SPECIES_MAGIKARP" + }, + { + "min_level": 5, + "max_level": 10, + "species": "SPECIES_GOLDEEN" + }, + { + "min_level": 10, + "max_level": 30, + "species": "SPECIES_MAGIKARP" + }, + { + "min_level": 10, + "max_level": 25, + "species": "SPECIES_GOLDEEN" + }, + { + "min_level": 10, + "max_level": 30, + "species": "SPECIES_GOLDEEN" + }, + { + "min_level": 25, + "max_level": 30, + "species": "SPECIES_GOLDEEN" + }, + { + "min_level": 30, + "max_level": 35, + "species": "SPECIES_GOLDEEN" + }, + { + "min_level": 30, + "max_level": 35, + "species": "SPECIES_SEAKING" + }, + { + "min_level": 35, + "max_level": 40, + "species": "SPECIES_SEAKING" + }, + { + "min_level": 25, + "max_level": 30, + "species": "SPECIES_SEAKING" + } + ] + } + }, + { + "map": "MAP_SAFARI_ZONE_SOUTHEAST", + "base_label": "SafariZone_Southeast_Ruby", + "land_mons": { + "encounter_rate": 25, + "mons": [ + { + "min_level": 25, + "max_level": 25, + "species": "SPECIES_ODDISH" + }, + { + "min_level": 27, + "max_level": 27, + "species": "SPECIES_ODDISH" + }, + { + "min_level": 25, + "max_level": 25, + "species": "SPECIES_GIRAFARIG" + }, + { + "min_level": 27, + "max_level": 27, + "species": "SPECIES_GIRAFARIG" + }, + { + "min_level": 25, + "max_level": 25, + "species": "SPECIES_NATU" + }, + { + "min_level": 25, + "max_level": 25, + "species": "SPECIES_DODUO" + }, + { + "min_level": 25, + "max_level": 25, + "species": "SPECIES_GLOOM" + }, + { + "min_level": 27, + "max_level": 27, + "species": "SPECIES_WOBBUFFET" + }, + { + "min_level": 25, + "max_level": 25, + "species": "SPECIES_PIKACHU" + }, + { + "min_level": 27, + "max_level": 27, + "species": "SPECIES_WOBBUFFET" + }, + { + "min_level": 27, + "max_level": 27, + "species": "SPECIES_PIKACHU" + }, + { + "min_level": 29, + "max_level": 29, + "species": "SPECIES_WOBBUFFET" + } + ] + } + }, + { + "map": "MAP_DEWFORD_TOWN", + "base_label": "DewfordTown_Ruby", + "water_mons": { + "encounter_rate": 4, + "mons": [ + { + "min_level": 5, + "max_level": 35, + "species": "SPECIES_TENTACOOL" + }, + { + "min_level": 10, + "max_level": 30, + "species": "SPECIES_WINGULL" + }, + { + "min_level": 15, + "max_level": 25, + "species": "SPECIES_WINGULL" + }, + { + "min_level": 25, + "max_level": 30, + "species": "SPECIES_PELIPPER" + }, + { + "min_level": 25, + "max_level": 30, + "species": "SPECIES_PELIPPER" + } + ] + }, + "fishing_mons": { + "encounter_rate": 10, + "mons": [ + { + "min_level": 5, + "max_level": 10, + "species": "SPECIES_MAGIKARP" + }, + { + "min_level": 5, + "max_level": 10, + "species": "SPECIES_TENTACOOL" + }, + { + "min_level": 10, + "max_level": 30, + "species": "SPECIES_MAGIKARP" + }, + { + "min_level": 10, + "max_level": 30, + "species": "SPECIES_TENTACOOL" + }, + { + "min_level": 10, + "max_level": 30, + "species": "SPECIES_WAILMER" + }, + { + "min_level": 25, + "max_level": 30, + "species": "SPECIES_WAILMER" + }, + { + "min_level": 30, + "max_level": 35, + "species": "SPECIES_WAILMER" + }, + { + "min_level": 20, + "max_level": 25, + "species": "SPECIES_WAILMER" + }, + { + "min_level": 35, + "max_level": 40, + "species": "SPECIES_WAILMER" + }, + { + "min_level": 40, + "max_level": 45, + "species": "SPECIES_WAILMER" + } + ] + } + }, + { + "map": "MAP_PACIFIDLOG_TOWN", + "base_label": "PacifidlogTown_Ruby", + "water_mons": { + "encounter_rate": 4, + "mons": [ + { + "min_level": 5, + "max_level": 35, + "species": "SPECIES_TENTACOOL" + }, + { + "min_level": 10, + "max_level": 30, + "species": "SPECIES_WINGULL" + }, + { + "min_level": 15, + "max_level": 25, + "species": "SPECIES_WINGULL" + }, + { + "min_level": 25, + "max_level": 30, + "species": "SPECIES_PELIPPER" + }, + { + "min_level": 25, + "max_level": 30, + "species": "SPECIES_PELIPPER" + } + ] + }, + "fishing_mons": { + "encounter_rate": 10, + "mons": [ + { + "min_level": 5, + "max_level": 10, + "species": "SPECIES_MAGIKARP" + }, + { + "min_level": 5, + "max_level": 10, + "species": "SPECIES_TENTACOOL" + }, + { + "min_level": 10, + "max_level": 30, + "species": "SPECIES_MAGIKARP" + }, + { + "min_level": 10, + "max_level": 30, + "species": "SPECIES_TENTACOOL" + }, + { + "min_level": 10, + "max_level": 30, + "species": "SPECIES_WAILMER" + }, + { + "min_level": 30, + "max_level": 35, + "species": "SPECIES_SHARPEDO" + }, + { + "min_level": 30, + "max_level": 35, + "species": "SPECIES_WAILMER" + }, + { + "min_level": 25, + "max_level": 30, + "species": "SPECIES_WAILMER" + }, + { + "min_level": 35, + "max_level": 40, + "species": "SPECIES_WAILMER" + }, + { + "min_level": 40, + "max_level": 45, + "species": "SPECIES_WAILMER" + } + ] + } + }, + { + "map": "MAP_UNDERWATER1", + "base_label": "Underwater1_Ruby", + "water_mons": { + "encounter_rate": 4, + "mons": [ + { + "min_level": 20, + "max_level": 30, + "species": "SPECIES_CLAMPERL" + }, + { + "min_level": 20, + "max_level": 30, + "species": "SPECIES_CHINCHOU" + }, + { + "min_level": 30, + "max_level": 35, + "species": "SPECIES_CLAMPERL" + }, + { + "min_level": 30, + "max_level": 35, + "species": "SPECIES_RELICANTH" + }, + { + "min_level": 30, + "max_level": 35, + "species": "SPECIES_RELICANTH" + } + ] + } + }, + { + "map": "MAP_UNDERWATER2", + "base_label": "Underwater2_Ruby", + "water_mons": { + "encounter_rate": 4, + "mons": [ + { + "min_level": 20, + "max_level": 30, + "species": "SPECIES_CLAMPERL" + }, + { + "min_level": 20, + "max_level": 30, + "species": "SPECIES_CHINCHOU" + }, + { + "min_level": 30, + "max_level": 35, + "species": "SPECIES_CLAMPERL" + }, + { + "min_level": 30, + "max_level": 35, + "species": "SPECIES_RELICANTH" + }, + { + "min_level": 30, + "max_level": 35, + "species": "SPECIES_RELICANTH" + } + ] + } + }, + { + "map": "MAP_PETALBURG_CITY", + "base_label": "PetalburgCity_Sapphire", + "water_mons": { + "encounter_rate": 1, + "mons": [ + { + "min_level": 20, + "max_level": 30, + "species": "SPECIES_MARILL" + }, + { + "min_level": 10, + "max_level": 20, + "species": "SPECIES_MARILL" + }, + { + "min_level": 30, + "max_level": 35, + "species": "SPECIES_MARILL" + }, + { + "min_level": 5, + "max_level": 10, + "species": "SPECIES_MARILL" + }, + { + "min_level": 5, + "max_level": 10, + "species": "SPECIES_MARILL" + } + ] + }, + "fishing_mons": { + "encounter_rate": 10, + "mons": [ + { + "min_level": 5, + "max_level": 10, + "species": "SPECIES_MAGIKARP" + }, + { + "min_level": 5, + "max_level": 10, + "species": "SPECIES_GOLDEEN" + }, + { + "min_level": 10, + "max_level": 30, + "species": "SPECIES_MAGIKARP" + }, + { + "min_level": 10, + "max_level": 30, + "species": "SPECIES_GOLDEEN" + }, + { + "min_level": 10, + "max_level": 30, + "species": "SPECIES_CORPHISH" + }, + { + "min_level": 25, + "max_level": 30, + "species": "SPECIES_CORPHISH" + }, + { + "min_level": 30, + "max_level": 35, + "species": "SPECIES_CORPHISH" + }, + { + "min_level": 20, + "max_level": 25, + "species": "SPECIES_CORPHISH" + }, + { + "min_level": 35, + "max_level": 40, + "species": "SPECIES_CORPHISH" + }, + { + "min_level": 40, + "max_level": 45, + "species": "SPECIES_CORPHISH" + } + ] + } + }, + { + "map": "MAP_SLATEPORT_CITY", + "base_label": "SlateportCity_Sapphire", + "water_mons": { + "encounter_rate": 4, + "mons": [ + { + "min_level": 5, + "max_level": 35, + "species": "SPECIES_TENTACOOL" + }, + { + "min_level": 10, + "max_level": 30, + "species": "SPECIES_WINGULL" + }, + { + "min_level": 15, + "max_level": 25, + "species": "SPECIES_WINGULL" + }, + { + "min_level": 25, + "max_level": 30, + "species": "SPECIES_PELIPPER" + }, + { + "min_level": 25, + "max_level": 30, + "species": "SPECIES_PELIPPER" + } + ] + }, + "fishing_mons": { + "encounter_rate": 10, + "mons": [ + { + "min_level": 5, + "max_level": 10, + "species": "SPECIES_MAGIKARP" + }, + { + "min_level": 5, + "max_level": 10, + "species": "SPECIES_TENTACOOL" + }, + { + "min_level": 10, + "max_level": 30, + "species": "SPECIES_MAGIKARP" + }, + { + "min_level": 10, + "max_level": 30, + "species": "SPECIES_TENTACOOL" + }, + { + "min_level": 10, + "max_level": 30, + "species": "SPECIES_WAILMER" + }, + { + "min_level": 25, + "max_level": 30, + "species": "SPECIES_WAILMER" + }, + { + "min_level": 30, + "max_level": 35, + "species": "SPECIES_WAILMER" + }, + { + "min_level": 20, + "max_level": 25, + "species": "SPECIES_WAILMER" + }, + { + "min_level": 35, + "max_level": 40, + "species": "SPECIES_WAILMER" + }, + { + "min_level": 40, + "max_level": 45, + "species": "SPECIES_WAILMER" + } + ] + } + }, + { + "map": "MAP_LILYCOVE_CITY", + "base_label": "LilycoveCity_Sapphire", + "water_mons": { + "encounter_rate": 4, + "mons": [ + { + "min_level": 5, + "max_level": 35, + "species": "SPECIES_TENTACOOL" + }, + { + "min_level": 10, + "max_level": 30, + "species": "SPECIES_WINGULL" + }, + { + "min_level": 15, + "max_level": 25, + "species": "SPECIES_WINGULL" + }, + { + "min_level": 25, + "max_level": 30, + "species": "SPECIES_PELIPPER" + }, + { + "min_level": 25, + "max_level": 30, + "species": "SPECIES_PELIPPER" + } + ] + }, + "fishing_mons": { + "encounter_rate": 10, + "mons": [ + { + "min_level": 5, + "max_level": 10, + "species": "SPECIES_MAGIKARP" + }, + { + "min_level": 5, + "max_level": 10, + "species": "SPECIES_TENTACOOL" + }, + { + "min_level": 10, + "max_level": 30, + "species": "SPECIES_MAGIKARP" + }, + { + "min_level": 10, + "max_level": 30, + "species": "SPECIES_TENTACOOL" + }, + { + "min_level": 10, + "max_level": 30, + "species": "SPECIES_WAILMER" + }, + { + "min_level": 25, + "max_level": 30, + "species": "SPECIES_WAILMER" + }, + { + "min_level": 30, + "max_level": 35, + "species": "SPECIES_WAILMER" + }, + { + "min_level": 25, + "max_level": 30, + "species": "SPECIES_STARYU" + }, + { + "min_level": 35, + "max_level": 40, + "species": "SPECIES_WAILMER" + }, + { + "min_level": 40, + "max_level": 45, + "species": "SPECIES_WAILMER" + } + ] + } + }, + { + "map": "MAP_MOSSDEEP_CITY", + "base_label": "MossdeepCity_Sapphire", + "water_mons": { + "encounter_rate": 4, + "mons": [ + { + "min_level": 5, + "max_level": 35, + "species": "SPECIES_TENTACOOL" + }, + { + "min_level": 10, + "max_level": 30, + "species": "SPECIES_WINGULL" + }, + { + "min_level": 15, + "max_level": 25, + "species": "SPECIES_WINGULL" + }, + { + "min_level": 25, + "max_level": 30, + "species": "SPECIES_PELIPPER" + }, + { + "min_level": 25, + "max_level": 30, + "species": "SPECIES_PELIPPER" + } + ] + }, + "fishing_mons": { + "encounter_rate": 10, + "mons": [ + { + "min_level": 5, + "max_level": 10, + "species": "SPECIES_MAGIKARP" + }, + { + "min_level": 5, + "max_level": 10, + "species": "SPECIES_TENTACOOL" + }, + { + "min_level": 10, + "max_level": 30, + "species": "SPECIES_MAGIKARP" + }, + { + "min_level": 10, + "max_level": 30, + "species": "SPECIES_TENTACOOL" + }, + { + "min_level": 10, + "max_level": 30, + "species": "SPECIES_WAILMER" + }, + { + "min_level": 30, + "max_level": 35, + "species": "SPECIES_SHARPEDO" + }, + { + "min_level": 30, + "max_level": 35, + "species": "SPECIES_WAILMER" + }, + { + "min_level": 25, + "max_level": 30, + "species": "SPECIES_WAILMER" + }, + { + "min_level": 35, + "max_level": 40, + "species": "SPECIES_WAILMER" + }, + { + "min_level": 40, + "max_level": 45, + "species": "SPECIES_WAILMER" + } + ] + } + }, + { + "map": "MAP_SOOTOPOLIS_CITY", + "base_label": "SootopolisCity_Sapphire", + "water_mons": { + "encounter_rate": 1, + "mons": [ + { + "min_level": 5, + "max_level": 35, + "species": "SPECIES_MAGIKARP" + }, + { + "min_level": 10, + "max_level": 30, + "species": "SPECIES_MAGIKARP" + }, + { + "min_level": 15, + "max_level": 25, + "species": "SPECIES_MAGIKARP" + }, + { + "min_level": 25, + "max_level": 30, + "species": "SPECIES_MAGIKARP" + }, + { + "min_level": 25, + "max_level": 30, + "species": "SPECIES_MAGIKARP" + } + ] + }, + "fishing_mons": { + "encounter_rate": 10, + "mons": [ + { + "min_level": 5, + "max_level": 10, + "species": "SPECIES_MAGIKARP" + }, + { + "min_level": 5, + "max_level": 10, + "species": "SPECIES_TENTACOOL" + }, + { + "min_level": 10, + "max_level": 30, + "species": "SPECIES_MAGIKARP" + }, + { + "min_level": 10, + "max_level": 30, + "species": "SPECIES_MAGIKARP" + }, + { + "min_level": 10, + "max_level": 30, + "species": "SPECIES_MAGIKARP" + }, + { + "min_level": 30, + "max_level": 35, + "species": "SPECIES_MAGIKARP" + }, + { + "min_level": 30, + "max_level": 35, + "species": "SPECIES_MAGIKARP" + }, + { + "min_level": 35, + "max_level": 40, + "species": "SPECIES_GYARADOS" + }, + { + "min_level": 35, + "max_level": 45, + "species": "SPECIES_GYARADOS" + }, + { + "min_level": 5, + "max_level": 45, + "species": "SPECIES_GYARADOS" + } + ] + } + }, + { + "map": "MAP_EVER_GRANDE_CITY", + "base_label": "EverGrandeCity_Sapphire", + "water_mons": { + "encounter_rate": 4, + "mons": [ + { + "min_level": 5, + "max_level": 35, + "species": "SPECIES_TENTACOOL" + }, + { + "min_level": 10, + "max_level": 30, + "species": "SPECIES_WINGULL" + }, + { + "min_level": 15, + "max_level": 25, + "species": "SPECIES_WINGULL" + }, + { + "min_level": 25, + "max_level": 30, + "species": "SPECIES_PELIPPER" + }, + { + "min_level": 25, + "max_level": 30, + "species": "SPECIES_PELIPPER" + } + ] + }, + "fishing_mons": { + "encounter_rate": 10, + "mons": [ + { + "min_level": 5, + "max_level": 10, + "species": "SPECIES_MAGIKARP" + }, + { + "min_level": 5, + "max_level": 10, + "species": "SPECIES_TENTACOOL" + }, + { + "min_level": 10, + "max_level": 30, + "species": "SPECIES_MAGIKARP" + }, + { + "min_level": 10, + "max_level": 30, + "species": "SPECIES_LUVDISC" + }, + { + "min_level": 10, + "max_level": 30, + "species": "SPECIES_WAILMER" + }, + { + "min_level": 30, + "max_level": 35, + "species": "SPECIES_LUVDISC" + }, + { + "min_level": 30, + "max_level": 35, + "species": "SPECIES_WAILMER" + }, + { + "min_level": 30, + "max_level": 35, + "species": "SPECIES_CORSOLA" + }, + { + "min_level": 35, + "max_level": 40, + "species": "SPECIES_WAILMER" + }, + { + "min_level": 40, + "max_level": 45, + "species": "SPECIES_WAILMER" + } + ] + } + }, + { + "map": "MAP_METEOR_FALLS_1F_1R", + "base_label": "MeteorFalls_1F_1R_Sapphire", + "land_mons": { + "encounter_rate": 10, + "mons": [ + { + "min_level": 16, + "max_level": 16, + "species": "SPECIES_ZUBAT" + }, + { + "min_level": 17, + "max_level": 17, + "species": "SPECIES_ZUBAT" + }, + { + "min_level": 18, + "max_level": 18, + "species": "SPECIES_ZUBAT" + }, + { + "min_level": 15, + "max_level": 15, + "species": "SPECIES_ZUBAT" + }, + { + "min_level": 14, + "max_level": 14, + "species": "SPECIES_ZUBAT" + }, + { + "min_level": 16, + "max_level": 16, + "species": "SPECIES_LUNATONE" + }, + { + "min_level": 18, + "max_level": 18, + "species": "SPECIES_LUNATONE" + }, + { + "min_level": 14, + "max_level": 14, + "species": "SPECIES_LUNATONE" + }, + { + "min_level": 19, + "max_level": 19, + "species": "SPECIES_ZUBAT" + }, + { + "min_level": 20, + "max_level": 20, + "species": "SPECIES_ZUBAT" + }, + { + "min_level": 19, + "max_level": 19, + "species": "SPECIES_ZUBAT" + }, + { + "min_level": 20, + "max_level": 20, + "species": "SPECIES_ZUBAT" + } + ] + }, + "water_mons": { + "encounter_rate": 4, + "mons": [ + { + "min_level": 5, + "max_level": 35, + "species": "SPECIES_ZUBAT" + }, + { + "min_level": 30, + "max_level": 35, + "species": "SPECIES_ZUBAT" + }, + { + "min_level": 25, + "max_level": 35, + "species": "SPECIES_LUNATONE" + }, + { + "min_level": 15, + "max_level": 25, + "species": "SPECIES_LUNATONE" + }, + { + "min_level": 5, + "max_level": 15, + "species": "SPECIES_LUNATONE" + } + ] + }, + "fishing_mons": { + "encounter_rate": 30, + "mons": [ + { + "min_level": 5, + "max_level": 10, + "species": "SPECIES_MAGIKARP" + }, + { + "min_level": 5, + "max_level": 10, + "species": "SPECIES_GOLDEEN" + }, + { + "min_level": 10, + "max_level": 30, + "species": "SPECIES_MAGIKARP" + }, + { + "min_level": 10, + "max_level": 30, + "species": "SPECIES_GOLDEEN" + }, + { + "min_level": 10, + "max_level": 30, + "species": "SPECIES_BARBOACH" + }, + { + "min_level": 25, + "max_level": 30, + "species": "SPECIES_BARBOACH" + }, + { + "min_level": 30, + "max_level": 35, + "species": "SPECIES_BARBOACH" + }, + { + "min_level": 20, + "max_level": 25, + "species": "SPECIES_BARBOACH" + }, + { + "min_level": 35, + "max_level": 40, + "species": "SPECIES_BARBOACH" + }, + { + "min_level": 40, + "max_level": 45, + "species": "SPECIES_BARBOACH" + } + ] + } + }, + { + "map": "MAP_METEOR_FALLS_1F_2R", + "base_label": "MeteorFalls_1F_2R_Sapphire", + "land_mons": { + "encounter_rate": 10, + "mons": [ + { + "min_level": 33, + "max_level": 33, + "species": "SPECIES_GOLBAT" + }, + { + "min_level": 35, + "max_level": 35, + "species": "SPECIES_GOLBAT" + }, + { + "min_level": 33, + "max_level": 33, + "species": "SPECIES_GOLBAT" + }, + { + "min_level": 35, + "max_level": 35, + "species": "SPECIES_LUNATONE" + }, + { + "min_level": 33, + "max_level": 33, + "species": "SPECIES_LUNATONE" + }, + { + "min_level": 37, + "max_level": 37, + "species": "SPECIES_LUNATONE" + }, + { + "min_level": 35, + "max_level": 35, + "species": "SPECIES_GOLBAT" + }, + { + "min_level": 39, + "max_level": 39, + "species": "SPECIES_LUNATONE" + }, + { + "min_level": 38, + "max_level": 38, + "species": "SPECIES_GOLBAT" + }, + { + "min_level": 40, + "max_level": 40, + "species": "SPECIES_GOLBAT" + }, + { + "min_level": 38, + "max_level": 38, + "species": "SPECIES_GOLBAT" + }, + { + "min_level": 40, + "max_level": 40, + "species": "SPECIES_GOLBAT" + } + ] + }, + "water_mons": { + "encounter_rate": 4, + "mons": [ + { + "min_level": 30, + "max_level": 35, + "species": "SPECIES_GOLBAT" + }, + { + "min_level": 30, + "max_level": 35, + "species": "SPECIES_GOLBAT" + }, + { + "min_level": 25, + "max_level": 35, + "species": "SPECIES_LUNATONE" + }, + { + "min_level": 15, + "max_level": 25, + "species": "SPECIES_LUNATONE" + }, + { + "min_level": 5, + "max_level": 15, + "species": "SPECIES_LUNATONE" + } + ] + }, + "fishing_mons": { + "encounter_rate": 30, + "mons": [ + { + "min_level": 5, + "max_level": 10, + "species": "SPECIES_MAGIKARP" + }, + { + "min_level": 5, + "max_level": 10, + "species": "SPECIES_GOLDEEN" + }, + { + "min_level": 10, + "max_level": 30, + "species": "SPECIES_MAGIKARP" + }, + { + "min_level": 10, + "max_level": 30, + "species": "SPECIES_GOLDEEN" + }, + { + "min_level": 10, + "max_level": 30, + "species": "SPECIES_BARBOACH" + }, + { + "min_level": 25, + "max_level": 30, + "species": "SPECIES_BARBOACH" + }, + { + "min_level": 30, + "max_level": 35, + "species": "SPECIES_BARBOACH" + }, + { + "min_level": 30, + "max_level": 35, + "species": "SPECIES_WHISCASH" + }, + { + "min_level": 35, + "max_level": 40, + "species": "SPECIES_WHISCASH" + }, + { + "min_level": 40, + "max_level": 45, + "species": "SPECIES_WHISCASH" + } + ] + } + }, + { + "map": "MAP_METEOR_FALLS_B1F_1R", + "base_label": "MeteorFalls_B1F_1R_Sapphire", + "land_mons": { + "encounter_rate": 10, + "mons": [ + { + "min_level": 33, + "max_level": 33, + "species": "SPECIES_GOLBAT" + }, + { + "min_level": 35, + "max_level": 35, + "species": "SPECIES_GOLBAT" + }, + { + "min_level": 33, + "max_level": 33, + "species": "SPECIES_GOLBAT" + }, + { + "min_level": 35, + "max_level": 35, + "species": "SPECIES_LUNATONE" + }, + { + "min_level": 33, + "max_level": 33, + "species": "SPECIES_LUNATONE" + }, + { + "min_level": 37, + "max_level": 37, + "species": "SPECIES_LUNATONE" + }, + { + "min_level": 35, + "max_level": 35, + "species": "SPECIES_GOLBAT" + }, + { + "min_level": 39, + "max_level": 39, + "species": "SPECIES_LUNATONE" + }, + { + "min_level": 38, + "max_level": 38, + "species": "SPECIES_GOLBAT" + }, + { + "min_level": 40, + "max_level": 40, + "species": "SPECIES_GOLBAT" + }, + { + "min_level": 38, + "max_level": 38, + "species": "SPECIES_GOLBAT" + }, + { + "min_level": 40, + "max_level": 40, + "species": "SPECIES_GOLBAT" + } + ] + }, + "water_mons": { + "encounter_rate": 4, + "mons": [ + { + "min_level": 30, + "max_level": 35, + "species": "SPECIES_GOLBAT" + }, + { + "min_level": 30, + "max_level": 35, + "species": "SPECIES_GOLBAT" + }, + { + "min_level": 25, + "max_level": 35, + "species": "SPECIES_LUNATONE" + }, + { + "min_level": 15, + "max_level": 25, + "species": "SPECIES_LUNATONE" + }, + { + "min_level": 5, + "max_level": 15, + "species": "SPECIES_LUNATONE" + } + ] + }, + "fishing_mons": { + "encounter_rate": 30, + "mons": [ + { + "min_level": 5, + "max_level": 10, + "species": "SPECIES_MAGIKARP" + }, + { + "min_level": 5, + "max_level": 10, + "species": "SPECIES_GOLDEEN" + }, + { + "min_level": 10, + "max_level": 30, + "species": "SPECIES_MAGIKARP" + }, + { + "min_level": 10, + "max_level": 30, + "species": "SPECIES_GOLDEEN" + }, + { + "min_level": 10, + "max_level": 30, + "species": "SPECIES_BARBOACH" + }, + { + "min_level": 25, + "max_level": 30, + "species": "SPECIES_BARBOACH" + }, + { + "min_level": 30, + "max_level": 35, + "species": "SPECIES_BARBOACH" + }, + { + "min_level": 30, + "max_level": 35, + "species": "SPECIES_WHISCASH" + }, + { + "min_level": 35, + "max_level": 40, + "species": "SPECIES_WHISCASH" + }, + { + "min_level": 40, + "max_level": 45, + "species": "SPECIES_WHISCASH" + } + ] + } + }, + { + "map": "MAP_METEOR_FALLS_B1F_2R", + "base_label": "MeteorFalls_B1F_2R_Sapphire", + "land_mons": { + "encounter_rate": 10, + "mons": [ + { + "min_level": 33, + "max_level": 33, + "species": "SPECIES_GOLBAT" + }, + { + "min_level": 35, + "max_level": 35, + "species": "SPECIES_GOLBAT" + }, + { + "min_level": 30, + "max_level": 30, + "species": "SPECIES_BAGON" + }, + { + "min_level": 35, + "max_level": 35, + "species": "SPECIES_LUNATONE" + }, + { + "min_level": 35, + "max_level": 35, + "species": "SPECIES_BAGON" + }, + { + "min_level": 37, + "max_level": 37, + "species": "SPECIES_LUNATONE" + }, + { + "min_level": 25, + "max_level": 25, + "species": "SPECIES_BAGON" + }, + { + "min_level": 39, + "max_level": 39, + "species": "SPECIES_LUNATONE" + }, + { + "min_level": 38, + "max_level": 38, + "species": "SPECIES_GOLBAT" + }, + { + "min_level": 40, + "max_level": 40, + "species": "SPECIES_GOLBAT" + }, + { + "min_level": 38, + "max_level": 38, + "species": "SPECIES_GOLBAT" + }, + { + "min_level": 40, + "max_level": 40, + "species": "SPECIES_GOLBAT" + } + ] + }, + "water_mons": { + "encounter_rate": 4, + "mons": [ + { + "min_level": 30, + "max_level": 35, + "species": "SPECIES_GOLBAT" + }, + { + "min_level": 30, + "max_level": 35, + "species": "SPECIES_GOLBAT" + }, + { + "min_level": 25, + "max_level": 35, + "species": "SPECIES_LUNATONE" + }, + { + "min_level": 15, + "max_level": 25, + "species": "SPECIES_LUNATONE" + }, + { + "min_level": 5, + "max_level": 15, + "species": "SPECIES_LUNATONE" + } + ] + }, + "fishing_mons": { + "encounter_rate": 30, + "mons": [ + { + "min_level": 5, + "max_level": 10, + "species": "SPECIES_MAGIKARP" + }, + { + "min_level": 5, + "max_level": 10, + "species": "SPECIES_GOLDEEN" + }, + { + "min_level": 10, + "max_level": 30, + "species": "SPECIES_MAGIKARP" + }, + { + "min_level": 10, + "max_level": 30, + "species": "SPECIES_GOLDEEN" + }, + { + "min_level": 10, + "max_level": 30, + "species": "SPECIES_BARBOACH" + }, + { + "min_level": 25, + "max_level": 30, + "species": "SPECIES_BARBOACH" + }, + { + "min_level": 30, + "max_level": 35, + "species": "SPECIES_BARBOACH" + }, + { + "min_level": 30, + "max_level": 35, + "species": "SPECIES_WHISCASH" + }, + { + "min_level": 35, + "max_level": 40, + "species": "SPECIES_WHISCASH" + }, + { + "min_level": 40, + "max_level": 45, + "species": "SPECIES_WHISCASH" + } + ] + } + }, + { + "map": "MAP_RUSTURF_TUNNEL", + "base_label": "RusturfTunnel_Sapphire", + "land_mons": { + "encounter_rate": 10, + "mons": [ + { + "min_level": 6, + "max_level": 6, + "species": "SPECIES_WHISMUR" + }, + { + "min_level": 7, + "max_level": 7, + "species": "SPECIES_WHISMUR" + }, + { + "min_level": 6, + "max_level": 6, + "species": "SPECIES_WHISMUR" + }, + { + "min_level": 6, + "max_level": 6, + "species": "SPECIES_WHISMUR" + }, + { + "min_level": 7, + "max_level": 7, + "species": "SPECIES_WHISMUR" + }, + { + "min_level": 7, + "max_level": 7, + "species": "SPECIES_WHISMUR" + }, + { + "min_level": 5, + "max_level": 5, + "species": "SPECIES_WHISMUR" + }, + { + "min_level": 8, + "max_level": 8, + "species": "SPECIES_WHISMUR" + }, + { + "min_level": 5, + "max_level": 5, + "species": "SPECIES_WHISMUR" + }, + { + "min_level": 8, + "max_level": 8, + "species": "SPECIES_WHISMUR" + }, + { + "min_level": 5, + "max_level": 5, + "species": "SPECIES_WHISMUR" + }, + { + "min_level": 8, + "max_level": 8, + "species": "SPECIES_WHISMUR" + } + ] + } + }, + { + "map": "MAP_GRANITE_CAVE_1F", + "base_label": "GraniteCave_1F_Sapphire", + "land_mons": { + "encounter_rate": 10, + "mons": [ + { + "min_level": 7, + "max_level": 7, + "species": "SPECIES_ZUBAT" + }, + { + "min_level": 8, + "max_level": 8, + "species": "SPECIES_MAKUHITA" + }, + { + "min_level": 7, + "max_level": 7, + "species": "SPECIES_MAKUHITA" + }, + { + "min_level": 8, + "max_level": 8, + "species": "SPECIES_ZUBAT" + }, + { + "min_level": 9, + "max_level": 9, + "species": "SPECIES_MAKUHITA" + }, + { + "min_level": 8, + "max_level": 8, + "species": "SPECIES_ABRA" + }, + { + "min_level": 10, + "max_level": 10, + "species": "SPECIES_MAKUHITA" + }, + { + "min_level": 6, + "max_level": 6, + "species": "SPECIES_MAKUHITA" + }, + { + "min_level": 7, + "max_level": 7, + "species": "SPECIES_GEODUDE" + }, + { + "min_level": 8, + "max_level": 8, + "species": "SPECIES_GEODUDE" + }, + { + "min_level": 6, + "max_level": 6, + "species": "SPECIES_GEODUDE" + }, + { + "min_level": 9, + "max_level": 9, + "species": "SPECIES_GEODUDE" + } + ] + } + }, + { + "map": "MAP_GRANITE_CAVE_B1F", + "base_label": "GraniteCave_B1F_Sapphire", + "land_mons": { + "encounter_rate": 10, + "mons": [ + { + "min_level": 9, + "max_level": 9, + "species": "SPECIES_ZUBAT" + }, + { + "min_level": 10, + "max_level": 10, + "species": "SPECIES_ARON" + }, + { + "min_level": 9, + "max_level": 9, + "species": "SPECIES_ARON" + }, + { + "min_level": 11, + "max_level": 11, + "species": "SPECIES_ARON" + }, + { + "min_level": 10, + "max_level": 10, + "species": "SPECIES_ZUBAT" + }, + { + "min_level": 9, + "max_level": 9, + "species": "SPECIES_ABRA" + }, + { + "min_level": 10, + "max_level": 10, + "species": "SPECIES_MAKUHITA" + }, + { + "min_level": 11, + "max_level": 11, + "species": "SPECIES_MAKUHITA" + }, + { + "min_level": 10, + "max_level": 10, + "species": "SPECIES_SABLEYE" + }, + { + "min_level": 10, + "max_level": 10, + "species": "SPECIES_SABLEYE" + }, + { + "min_level": 9, + "max_level": 9, + "species": "SPECIES_SABLEYE" + }, + { + "min_level": 11, + "max_level": 11, + "species": "SPECIES_SABLEYE" + } + ] + } + }, + { + "map": "MAP_GRANITE_CAVE_B2F", + "base_label": "GraniteCave_B2F_Sapphire", + "land_mons": { + "encounter_rate": 10, + "mons": [ + { + "min_level": 10, + "max_level": 10, + "species": "SPECIES_ZUBAT" + }, + { + "min_level": 11, + "max_level": 11, + "species": "SPECIES_ARON" + }, + { + "min_level": 10, + "max_level": 10, + "species": "SPECIES_ARON" + }, + { + "min_level": 11, + "max_level": 11, + "species": "SPECIES_ZUBAT" + }, + { + "min_level": 12, + "max_level": 12, + "species": "SPECIES_ARON" + }, + { + "min_level": 10, + "max_level": 10, + "species": "SPECIES_ABRA" + }, + { + "min_level": 10, + "max_level": 10, + "species": "SPECIES_SABLEYE" + }, + { + "min_level": 11, + "max_level": 11, + "species": "SPECIES_SABLEYE" + }, + { + "min_level": 12, + "max_level": 12, + "species": "SPECIES_SABLEYE" + }, + { + "min_level": 10, + "max_level": 10, + "species": "SPECIES_SABLEYE" + }, + { + "min_level": 12, + "max_level": 12, + "species": "SPECIES_SABLEYE" + }, + { + "min_level": 10, + "max_level": 10, + "species": "SPECIES_SABLEYE" + } + ] + }, + "rock_smash_mons": { + "encounter_rate": 20, + "mons": [ + { + "min_level": 10, + "max_level": 15, + "species": "SPECIES_GEODUDE" + }, + { + "min_level": 10, + "max_level": 20, + "species": "SPECIES_NOSEPASS" + }, + { + "min_level": 5, + "max_level": 10, + "species": "SPECIES_GEODUDE" + }, + { + "min_level": 15, + "max_level": 20, + "species": "SPECIES_GEODUDE" + }, + { + "min_level": 15, + "max_level": 20, + "species": "SPECIES_GEODUDE" + } + ] + } + }, + { + "map": "MAP_GRANITE_CAVE_STEVENS_ROOM", + "base_label": "GraniteCave_StevensRoom_Sapphire", + "land_mons": { + "encounter_rate": 10, + "mons": [ + { + "min_level": 7, + "max_level": 7, + "species": "SPECIES_ZUBAT" + }, + { + "min_level": 8, + "max_level": 8, + "species": "SPECIES_MAKUHITA" + }, + { + "min_level": 7, + "max_level": 7, + "species": "SPECIES_MAKUHITA" + }, + { + "min_level": 8, + "max_level": 8, + "species": "SPECIES_ZUBAT" + }, + { + "min_level": 9, + "max_level": 9, + "species": "SPECIES_MAKUHITA" + }, + { + "min_level": 8, + "max_level": 8, + "species": "SPECIES_ABRA" + }, + { + "min_level": 10, + "max_level": 10, + "species": "SPECIES_MAKUHITA" + }, + { + "min_level": 6, + "max_level": 6, + "species": "SPECIES_MAKUHITA" + }, + { + "min_level": 7, + "max_level": 7, + "species": "SPECIES_ARON" + }, + { + "min_level": 8, + "max_level": 8, + "species": "SPECIES_ARON" + }, + { + "min_level": 7, + "max_level": 7, + "species": "SPECIES_ARON" + }, + { + "min_level": 8, + "max_level": 8, + "species": "SPECIES_ARON" + } + ] + } + }, + { + "map": "MAP_PETALBURG_WOODS", + "base_label": "PetalburgWoods_Sapphire", + "land_mons": { + "encounter_rate": 20, + "mons": [ + { + "min_level": 5, + "max_level": 5, + "species": "SPECIES_ZIGZAGOON" + }, + { + "min_level": 5, + "max_level": 5, + "species": "SPECIES_WURMPLE" + }, + { + "min_level": 5, + "max_level": 5, + "species": "SPECIES_SHROOMISH" + }, + { + "min_level": 6, + "max_level": 6, + "species": "SPECIES_ZIGZAGOON" + }, + { + "min_level": 5, + "max_level": 5, + "species": "SPECIES_SILCOON" + }, + { + "min_level": 5, + "max_level": 5, + "species": "SPECIES_CASCOON" + }, + { + "min_level": 6, + "max_level": 6, + "species": "SPECIES_WURMPLE" + }, + { + "min_level": 6, + "max_level": 6, + "species": "SPECIES_SHROOMISH" + }, + { + "min_level": 5, + "max_level": 5, + "species": "SPECIES_TAILLOW" + }, + { + "min_level": 5, + "max_level": 5, + "species": "SPECIES_SLAKOTH" + }, + { + "min_level": 6, + "max_level": 6, + "species": "SPECIES_TAILLOW" + }, + { + "min_level": 6, + "max_level": 6, + "species": "SPECIES_SLAKOTH" + } + ] + } + }, + { + "map": "MAP_JAGGED_PASS", + "base_label": "JaggedPass_Sapphire", + "land_mons": { + "encounter_rate": 20, + "mons": [ + { + "min_level": 21, + "max_level": 21, + "species": "SPECIES_NUMEL" + }, + { + "min_level": 21, + "max_level": 21, + "species": "SPECIES_NUMEL" + }, + { + "min_level": 21, + "max_level": 21, + "species": "SPECIES_MACHOP" + }, + { + "min_level": 20, + "max_level": 20, + "species": "SPECIES_NUMEL" + }, + { + "min_level": 20, + "max_level": 20, + "species": "SPECIES_SPOINK" + }, + { + "min_level": 20, + "max_level": 20, + "species": "SPECIES_MACHOP" + }, + { + "min_level": 21, + "max_level": 21, + "species": "SPECIES_SPOINK" + }, + { + "min_level": 22, + "max_level": 22, + "species": "SPECIES_MACHOP" + }, + { + "min_level": 22, + "max_level": 22, + "species": "SPECIES_NUMEL" + }, + { + "min_level": 22, + "max_level": 22, + "species": "SPECIES_SPOINK" + }, + { + "min_level": 22, + "max_level": 22, + "species": "SPECIES_NUMEL" + }, + { + "min_level": 22, + "max_level": 22, + "species": "SPECIES_SPOINK" + } + ] + } + }, + { + "map": "MAP_FIERY_PATH", + "base_label": "FieryPath_Sapphire", + "land_mons": { + "encounter_rate": 10, + "mons": [ + { + "min_level": 15, + "max_level": 15, + "species": "SPECIES_NUMEL" + }, + { + "min_level": 15, + "max_level": 15, + "species": "SPECIES_GRIMER" + }, + { + "min_level": 16, + "max_level": 16, + "species": "SPECIES_NUMEL" + }, + { + "min_level": 15, + "max_level": 15, + "species": "SPECIES_MACHOP" + }, + { + "min_level": 15, + "max_level": 15, + "species": "SPECIES_TORKOAL" + }, + { + "min_level": 15, + "max_level": 15, + "species": "SPECIES_SLUGMA" + }, + { + "min_level": 16, + "max_level": 16, + "species": "SPECIES_GRIMER" + }, + { + "min_level": 16, + "max_level": 16, + "species": "SPECIES_MACHOP" + }, + { + "min_level": 14, + "max_level": 14, + "species": "SPECIES_TORKOAL" + }, + { + "min_level": 16, + "max_level": 16, + "species": "SPECIES_TORKOAL" + }, + { + "min_level": 14, + "max_level": 14, + "species": "SPECIES_KOFFING" + }, + { + "min_level": 14, + "max_level": 14, + "species": "SPECIES_KOFFING" + } + ] + } + }, + { + "map": "MAP_MT_PYRE_1F", + "base_label": "MtPyre_1F_Sapphire", + "land_mons": { + "encounter_rate": 10, + "mons": [ + { + "min_level": 27, + "max_level": 27, + "species": "SPECIES_SHUPPET" + }, + { + "min_level": 28, + "max_level": 28, + "species": "SPECIES_SHUPPET" + }, + { + "min_level": 26, + "max_level": 26, + "species": "SPECIES_SHUPPET" + }, + { + "min_level": 25, + "max_level": 25, + "species": "SPECIES_SHUPPET" + }, + { + "min_level": 29, + "max_level": 29, + "species": "SPECIES_SHUPPET" + }, + { + "min_level": 24, + "max_level": 24, + "species": "SPECIES_SHUPPET" + }, + { + "min_level": 23, + "max_level": 23, + "species": "SPECIES_SHUPPET" + }, + { + "min_level": 22, + "max_level": 22, + "species": "SPECIES_SHUPPET" + }, + { + "min_level": 29, + "max_level": 29, + "species": "SPECIES_SHUPPET" + }, + { + "min_level": 24, + "max_level": 24, + "species": "SPECIES_SHUPPET" + }, + { + "min_level": 29, + "max_level": 29, + "species": "SPECIES_SHUPPET" + }, + { + "min_level": 24, + "max_level": 24, + "species": "SPECIES_SHUPPET" + } + ] + } + }, + { + "map": "MAP_MT_PYRE_2F", + "base_label": "MtPyre_2F_Sapphire", + "land_mons": { + "encounter_rate": 10, + "mons": [ + { + "min_level": 27, + "max_level": 27, + "species": "SPECIES_SHUPPET" + }, + { + "min_level": 28, + "max_level": 28, + "species": "SPECIES_SHUPPET" + }, + { + "min_level": 26, + "max_level": 26, + "species": "SPECIES_SHUPPET" + }, + { + "min_level": 25, + "max_level": 25, + "species": "SPECIES_SHUPPET" + }, + { + "min_level": 29, + "max_level": 29, + "species": "SPECIES_SHUPPET" + }, + { + "min_level": 24, + "max_level": 24, + "species": "SPECIES_SHUPPET" + }, + { + "min_level": 23, + "max_level": 23, + "species": "SPECIES_SHUPPET" + }, + { + "min_level": 22, + "max_level": 22, + "species": "SPECIES_SHUPPET" + }, + { + "min_level": 29, + "max_level": 29, + "species": "SPECIES_SHUPPET" + }, + { + "min_level": 24, + "max_level": 24, + "species": "SPECIES_SHUPPET" + }, + { + "min_level": 29, + "max_level": 29, + "species": "SPECIES_SHUPPET" + }, + { + "min_level": 24, + "max_level": 24, + "species": "SPECIES_SHUPPET" + } + ] + } + }, + { + "map": "MAP_MT_PYRE_3F", + "base_label": "MtPyre_3F_Sapphire", + "land_mons": { + "encounter_rate": 10, + "mons": [ + { + "min_level": 27, + "max_level": 27, + "species": "SPECIES_SHUPPET" + }, + { + "min_level": 28, + "max_level": 28, + "species": "SPECIES_SHUPPET" + }, + { + "min_level": 26, + "max_level": 26, + "species": "SPECIES_SHUPPET" + }, + { + "min_level": 25, + "max_level": 25, + "species": "SPECIES_SHUPPET" + }, + { + "min_level": 29, + "max_level": 29, + "species": "SPECIES_SHUPPET" + }, + { + "min_level": 24, + "max_level": 24, + "species": "SPECIES_SHUPPET" + }, + { + "min_level": 23, + "max_level": 23, + "species": "SPECIES_SHUPPET" + }, + { + "min_level": 22, + "max_level": 22, + "species": "SPECIES_SHUPPET" + }, + { + "min_level": 29, + "max_level": 29, + "species": "SPECIES_SHUPPET" + }, + { + "min_level": 24, + "max_level": 24, + "species": "SPECIES_SHUPPET" + }, + { + "min_level": 29, + "max_level": 29, + "species": "SPECIES_SHUPPET" + }, + { + "min_level": 24, + "max_level": 24, + "species": "SPECIES_SHUPPET" + } + ] + } + }, + { + "map": "MAP_MT_PYRE_4F", + "base_label": "MtPyre_4F_Sapphire", + "land_mons": { + "encounter_rate": 10, + "mons": [ + { + "min_level": 27, + "max_level": 27, + "species": "SPECIES_SHUPPET" + }, + { + "min_level": 28, + "max_level": 28, + "species": "SPECIES_SHUPPET" + }, + { + "min_level": 26, + "max_level": 26, + "species": "SPECIES_SHUPPET" + }, + { + "min_level": 25, + "max_level": 25, + "species": "SPECIES_SHUPPET" + }, + { + "min_level": 29, + "max_level": 29, + "species": "SPECIES_SHUPPET" + }, + { + "min_level": 24, + "max_level": 24, + "species": "SPECIES_SHUPPET" + }, + { + "min_level": 23, + "max_level": 23, + "species": "SPECIES_SHUPPET" + }, + { + "min_level": 22, + "max_level": 22, + "species": "SPECIES_SHUPPET" + }, + { + "min_level": 27, + "max_level": 27, + "species": "SPECIES_DUSKULL" + }, + { + "min_level": 27, + "max_level": 27, + "species": "SPECIES_DUSKULL" + }, + { + "min_level": 25, + "max_level": 25, + "species": "SPECIES_DUSKULL" + }, + { + "min_level": 29, + "max_level": 29, + "species": "SPECIES_DUSKULL" + } + ] + } + }, + { + "map": "MAP_MT_PYRE_5F", + "base_label": "MtPyre_5F_Sapphire", + "land_mons": { + "encounter_rate": 10, + "mons": [ + { + "min_level": 27, + "max_level": 27, + "species": "SPECIES_SHUPPET" + }, + { + "min_level": 28, + "max_level": 28, + "species": "SPECIES_SHUPPET" + }, + { + "min_level": 26, + "max_level": 26, + "species": "SPECIES_SHUPPET" + }, + { + "min_level": 25, + "max_level": 25, + "species": "SPECIES_SHUPPET" + }, + { + "min_level": 29, + "max_level": 29, + "species": "SPECIES_SHUPPET" + }, + { + "min_level": 24, + "max_level": 24, + "species": "SPECIES_SHUPPET" + }, + { + "min_level": 23, + "max_level": 23, + "species": "SPECIES_SHUPPET" + }, + { + "min_level": 22, + "max_level": 22, + "species": "SPECIES_SHUPPET" + }, + { + "min_level": 27, + "max_level": 27, + "species": "SPECIES_DUSKULL" + }, + { + "min_level": 27, + "max_level": 27, + "species": "SPECIES_DUSKULL" + }, + { + "min_level": 25, + "max_level": 25, + "species": "SPECIES_DUSKULL" + }, + { + "min_level": 29, + "max_level": 29, + "species": "SPECIES_DUSKULL" + } + ] + } + }, + { + "map": "MAP_MT_PYRE_6F", + "base_label": "MtPyre_6F_Sapphire", + "land_mons": { + "encounter_rate": 10, + "mons": [ + { + "min_level": 27, + "max_level": 27, + "species": "SPECIES_SHUPPET" + }, + { + "min_level": 28, + "max_level": 28, + "species": "SPECIES_SHUPPET" + }, + { + "min_level": 26, + "max_level": 26, + "species": "SPECIES_SHUPPET" + }, + { + "min_level": 25, + "max_level": 25, + "species": "SPECIES_SHUPPET" + }, + { + "min_level": 29, + "max_level": 29, + "species": "SPECIES_SHUPPET" + }, + { + "min_level": 24, + "max_level": 24, + "species": "SPECIES_SHUPPET" + }, + { + "min_level": 23, + "max_level": 23, + "species": "SPECIES_SHUPPET" + }, + { + "min_level": 22, + "max_level": 22, + "species": "SPECIES_SHUPPET" + }, + { + "min_level": 27, + "max_level": 27, + "species": "SPECIES_DUSKULL" + }, + { + "min_level": 27, + "max_level": 27, + "species": "SPECIES_DUSKULL" + }, + { + "min_level": 25, + "max_level": 25, + "species": "SPECIES_DUSKULL" + }, + { + "min_level": 29, + "max_level": 29, + "species": "SPECIES_DUSKULL" + } + ] + } + }, + { + "map": "MAP_MT_PYRE_EXTERIOR", + "base_label": "MtPyre_Exterior_Sapphire", + "land_mons": { + "encounter_rate": 10, + "mons": [ + { + "min_level": 27, + "max_level": 27, + "species": "SPECIES_SHUPPET" + }, + { + "min_level": 27, + "max_level": 27, + "species": "SPECIES_MEDITITE" + }, + { + "min_level": 28, + "max_level": 28, + "species": "SPECIES_SHUPPET" + }, + { + "min_level": 29, + "max_level": 29, + "species": "SPECIES_MEDITITE" + }, + { + "min_level": 29, + "max_level": 29, + "species": "SPECIES_SHUPPET" + }, + { + "min_level": 27, + "max_level": 27, + "species": "SPECIES_VULPIX" + }, + { + "min_level": 29, + "max_level": 29, + "species": "SPECIES_VULPIX" + }, + { + "min_level": 25, + "max_level": 25, + "species": "SPECIES_VULPIX" + }, + { + "min_level": 27, + "max_level": 27, + "species": "SPECIES_WINGULL" + }, + { + "min_level": 27, + "max_level": 27, + "species": "SPECIES_WINGULL" + }, + { + "min_level": 26, + "max_level": 26, + "species": "SPECIES_WINGULL" + }, + { + "min_level": 28, + "max_level": 28, + "species": "SPECIES_WINGULL" + } + ] + } + }, + { + "map": "MAP_MT_PYRE_SUMMIT", + "base_label": "MtPyre_Summit_Sapphire", + "land_mons": { + "encounter_rate": 10, + "mons": [ + { + "min_level": 28, + "max_level": 28, + "species": "SPECIES_SHUPPET" + }, + { + "min_level": 29, + "max_level": 29, + "species": "SPECIES_SHUPPET" + }, + { + "min_level": 27, + "max_level": 27, + "species": "SPECIES_SHUPPET" + }, + { + "min_level": 26, + "max_level": 26, + "species": "SPECIES_SHUPPET" + }, + { + "min_level": 30, + "max_level": 30, + "species": "SPECIES_SHUPPET" + }, + { + "min_level": 25, + "max_level": 25, + "species": "SPECIES_SHUPPET" + }, + { + "min_level": 24, + "max_level": 24, + "species": "SPECIES_SHUPPET" + }, + { + "min_level": 28, + "max_level": 28, + "species": "SPECIES_DUSKULL" + }, + { + "min_level": 26, + "max_level": 26, + "species": "SPECIES_DUSKULL" + }, + { + "min_level": 30, + "max_level": 30, + "species": "SPECIES_DUSKULL" + }, + { + "min_level": 28, + "max_level": 28, + "species": "SPECIES_CHIMECHO" + }, + { + "min_level": 28, + "max_level": 28, + "species": "SPECIES_CHIMECHO" + } + ] + } + }, + { + "map": "MAP_SEAFLOOR_CAVERN_ENTRANCE", + "base_label": "SeafloorCavern_Entrance_Sapphire", + "water_mons": { + "encounter_rate": 4, + "mons": [ + { + "min_level": 5, + "max_level": 35, + "species": "SPECIES_TENTACOOL" + }, + { + "min_level": 5, + "max_level": 35, + "species": "SPECIES_ZUBAT" + }, + { + "min_level": 30, + "max_level": 35, + "species": "SPECIES_ZUBAT" + }, + { + "min_level": 30, + "max_level": 35, + "species": "SPECIES_GOLBAT" + }, + { + "min_level": 30, + "max_level": 35, + "species": "SPECIES_GOLBAT" + } + ] + }, + "fishing_mons": { + "encounter_rate": 10, + "mons": [ + { + "min_level": 5, + "max_level": 10, + "species": "SPECIES_MAGIKARP" + }, + { + "min_level": 5, + "max_level": 10, + "species": "SPECIES_TENTACOOL" + }, + { + "min_level": 10, + "max_level": 30, + "species": "SPECIES_MAGIKARP" + }, + { + "min_level": 10, + "max_level": 30, + "species": "SPECIES_TENTACOOL" + }, + { + "min_level": 10, + "max_level": 30, + "species": "SPECIES_WAILMER" + }, + { + "min_level": 25, + "max_level": 30, + "species": "SPECIES_WAILMER" + }, + { + "min_level": 30, + "max_level": 35, + "species": "SPECIES_WAILMER" + }, + { + "min_level": 20, + "max_level": 25, + "species": "SPECIES_WAILMER" + }, + { + "min_level": 35, + "max_level": 40, + "species": "SPECIES_WAILMER" + }, + { + "min_level": 40, + "max_level": 45, + "species": "SPECIES_WAILMER" + } + ] + } + }, + { + "map": "MAP_SEAFLOOR_CAVERN_ROOM1", + "base_label": "SeafloorCavern_Room1_Sapphire", + "land_mons": { + "encounter_rate": 4, + "mons": [ + { + "min_level": 30, + "max_level": 30, + "species": "SPECIES_ZUBAT" + }, + { + "min_level": 31, + "max_level": 31, + "species": "SPECIES_ZUBAT" + }, + { + "min_level": 32, + "max_level": 32, + "species": "SPECIES_ZUBAT" + }, + { + "min_level": 33, + "max_level": 33, + "species": "SPECIES_ZUBAT" + }, + { + "min_level": 28, + "max_level": 28, + "species": "SPECIES_ZUBAT" + }, + { + "min_level": 29, + "max_level": 29, + "species": "SPECIES_ZUBAT" + }, + { + "min_level": 34, + "max_level": 34, + "species": "SPECIES_ZUBAT" + }, + { + "min_level": 35, + "max_level": 35, + "species": "SPECIES_ZUBAT" + }, + { + "min_level": 34, + "max_level": 34, + "species": "SPECIES_GOLBAT" + }, + { + "min_level": 35, + "max_level": 35, + "species": "SPECIES_GOLBAT" + }, + { + "min_level": 33, + "max_level": 33, + "species": "SPECIES_GOLBAT" + }, + { + "min_level": 36, + "max_level": 36, + "species": "SPECIES_GOLBAT" + } + ] + } + }, + { + "map": "MAP_SEAFLOOR_CAVERN_ROOM2", + "base_label": "SeafloorCavern_Room2_Sapphire", + "land_mons": { + "encounter_rate": 4, + "mons": [ + { + "min_level": 30, + "max_level": 30, + "species": "SPECIES_ZUBAT" + }, + { + "min_level": 31, + "max_level": 31, + "species": "SPECIES_ZUBAT" + }, + { + "min_level": 32, + "max_level": 32, + "species": "SPECIES_ZUBAT" + }, + { + "min_level": 33, + "max_level": 33, + "species": "SPECIES_ZUBAT" + }, + { + "min_level": 28, + "max_level": 28, + "species": "SPECIES_ZUBAT" + }, + { + "min_level": 29, + "max_level": 29, + "species": "SPECIES_ZUBAT" + }, + { + "min_level": 34, + "max_level": 34, + "species": "SPECIES_ZUBAT" + }, + { + "min_level": 35, + "max_level": 35, + "species": "SPECIES_ZUBAT" + }, + { + "min_level": 34, + "max_level": 34, + "species": "SPECIES_GOLBAT" + }, + { + "min_level": 35, + "max_level": 35, + "species": "SPECIES_GOLBAT" + }, + { + "min_level": 33, + "max_level": 33, + "species": "SPECIES_GOLBAT" + }, + { + "min_level": 36, + "max_level": 36, + "species": "SPECIES_GOLBAT" + } + ] + } + }, + { + "map": "MAP_SEAFLOOR_CAVERN_ROOM3", + "base_label": "SeafloorCavern_Room3_Sapphire", + "land_mons": { + "encounter_rate": 4, + "mons": [ + { + "min_level": 30, + "max_level": 30, + "species": "SPECIES_ZUBAT" + }, + { + "min_level": 31, + "max_level": 31, + "species": "SPECIES_ZUBAT" + }, + { + "min_level": 32, + "max_level": 32, + "species": "SPECIES_ZUBAT" + }, + { + "min_level": 33, + "max_level": 33, + "species": "SPECIES_ZUBAT" + }, + { + "min_level": 28, + "max_level": 28, + "species": "SPECIES_ZUBAT" + }, + { + "min_level": 29, + "max_level": 29, + "species": "SPECIES_ZUBAT" + }, + { + "min_level": 34, + "max_level": 34, + "species": "SPECIES_ZUBAT" + }, + { + "min_level": 35, + "max_level": 35, + "species": "SPECIES_ZUBAT" + }, + { + "min_level": 34, + "max_level": 34, + "species": "SPECIES_GOLBAT" + }, + { + "min_level": 35, + "max_level": 35, + "species": "SPECIES_GOLBAT" + }, + { + "min_level": 33, + "max_level": 33, + "species": "SPECIES_GOLBAT" + }, + { + "min_level": 36, + "max_level": 36, + "species": "SPECIES_GOLBAT" + } + ] + } + }, + { + "map": "MAP_SEAFLOOR_CAVERN_ROOM4", + "base_label": "SeafloorCavern_Room4_Sapphire", + "land_mons": { + "encounter_rate": 4, + "mons": [ + { + "min_level": 30, + "max_level": 30, + "species": "SPECIES_ZUBAT" + }, + { + "min_level": 31, + "max_level": 31, + "species": "SPECIES_ZUBAT" + }, + { + "min_level": 32, + "max_level": 32, + "species": "SPECIES_ZUBAT" + }, + { + "min_level": 33, + "max_level": 33, + "species": "SPECIES_ZUBAT" + }, + { + "min_level": 28, + "max_level": 28, + "species": "SPECIES_ZUBAT" + }, + { + "min_level": 29, + "max_level": 29, + "species": "SPECIES_ZUBAT" + }, + { + "min_level": 34, + "max_level": 34, + "species": "SPECIES_ZUBAT" + }, + { + "min_level": 35, + "max_level": 35, + "species": "SPECIES_ZUBAT" + }, + { + "min_level": 34, + "max_level": 34, + "species": "SPECIES_GOLBAT" + }, + { + "min_level": 35, + "max_level": 35, + "species": "SPECIES_GOLBAT" + }, + { + "min_level": 33, + "max_level": 33, + "species": "SPECIES_GOLBAT" + }, + { + "min_level": 36, + "max_level": 36, + "species": "SPECIES_GOLBAT" + } + ] + } + }, + { + "map": "MAP_SEAFLOOR_CAVERN_ROOM5", + "base_label": "SeafloorCavern_Room5_Sapphire", + "land_mons": { + "encounter_rate": 4, + "mons": [ + { + "min_level": 30, + "max_level": 30, + "species": "SPECIES_ZUBAT" + }, + { + "min_level": 31, + "max_level": 31, + "species": "SPECIES_ZUBAT" + }, + { + "min_level": 32, + "max_level": 32, + "species": "SPECIES_ZUBAT" + }, + { + "min_level": 33, + "max_level": 33, + "species": "SPECIES_ZUBAT" + }, + { + "min_level": 28, + "max_level": 28, + "species": "SPECIES_ZUBAT" + }, + { + "min_level": 29, + "max_level": 29, + "species": "SPECIES_ZUBAT" + }, + { + "min_level": 34, + "max_level": 34, + "species": "SPECIES_ZUBAT" + }, + { + "min_level": 35, + "max_level": 35, + "species": "SPECIES_ZUBAT" + }, + { + "min_level": 34, + "max_level": 34, + "species": "SPECIES_GOLBAT" + }, + { + "min_level": 35, + "max_level": 35, + "species": "SPECIES_GOLBAT" + }, + { + "min_level": 33, + "max_level": 33, + "species": "SPECIES_GOLBAT" + }, + { + "min_level": 36, + "max_level": 36, + "species": "SPECIES_GOLBAT" + } + ] + } + }, + { + "map": "MAP_SEAFLOOR_CAVERN_ROOM6", + "base_label": "SeafloorCavern_Room6_Sapphire", + "land_mons": { + "encounter_rate": 4, + "mons": [ + { + "min_level": 30, + "max_level": 30, + "species": "SPECIES_ZUBAT" + }, + { + "min_level": 31, + "max_level": 31, + "species": "SPECIES_ZUBAT" + }, + { + "min_level": 32, + "max_level": 32, + "species": "SPECIES_ZUBAT" + }, + { + "min_level": 33, + "max_level": 33, + "species": "SPECIES_ZUBAT" + }, + { + "min_level": 28, + "max_level": 28, + "species": "SPECIES_ZUBAT" + }, + { + "min_level": 29, + "max_level": 29, + "species": "SPECIES_ZUBAT" + }, + { + "min_level": 34, + "max_level": 34, + "species": "SPECIES_ZUBAT" + }, + { + "min_level": 35, + "max_level": 35, + "species": "SPECIES_ZUBAT" + }, + { + "min_level": 34, + "max_level": 34, + "species": "SPECIES_GOLBAT" + }, + { + "min_level": 35, + "max_level": 35, + "species": "SPECIES_GOLBAT" + }, + { + "min_level": 33, + "max_level": 33, + "species": "SPECIES_GOLBAT" + }, + { + "min_level": 36, + "max_level": 36, + "species": "SPECIES_GOLBAT" + } + ] + }, + "water_mons": { + "encounter_rate": 4, + "mons": [ + { + "min_level": 5, + "max_level": 35, + "species": "SPECIES_TENTACOOL" + }, + { + "min_level": 5, + "max_level": 35, + "species": "SPECIES_ZUBAT" + }, + { + "min_level": 30, + "max_level": 35, + "species": "SPECIES_ZUBAT" + }, + { + "min_level": 30, + "max_level": 35, + "species": "SPECIES_GOLBAT" + }, + { + "min_level": 30, + "max_level": 35, + "species": "SPECIES_GOLBAT" + } + ] + }, + "fishing_mons": { + "encounter_rate": 10, + "mons": [ + { + "min_level": 5, + "max_level": 10, + "species": "SPECIES_MAGIKARP" + }, + { + "min_level": 5, + "max_level": 10, + "species": "SPECIES_TENTACOOL" + }, + { + "min_level": 10, + "max_level": 30, + "species": "SPECIES_MAGIKARP" + }, + { + "min_level": 10, + "max_level": 30, + "species": "SPECIES_TENTACOOL" + }, + { + "min_level": 10, + "max_level": 30, + "species": "SPECIES_WAILMER" + }, + { + "min_level": 25, + "max_level": 30, + "species": "SPECIES_WAILMER" + }, + { + "min_level": 30, + "max_level": 35, + "species": "SPECIES_WAILMER" + }, + { + "min_level": 20, + "max_level": 25, + "species": "SPECIES_WAILMER" + }, + { + "min_level": 35, + "max_level": 40, + "species": "SPECIES_WAILMER" + }, + { + "min_level": 40, + "max_level": 45, + "species": "SPECIES_WAILMER" + } + ] + } + }, + { + "map": "MAP_SEAFLOOR_CAVERN_ROOM7", + "base_label": "SeafloorCavern_Room7_Sapphire", + "land_mons": { + "encounter_rate": 4, + "mons": [ + { + "min_level": 30, + "max_level": 30, + "species": "SPECIES_ZUBAT" + }, + { + "min_level": 31, + "max_level": 31, + "species": "SPECIES_ZUBAT" + }, + { + "min_level": 32, + "max_level": 32, + "species": "SPECIES_ZUBAT" + }, + { + "min_level": 33, + "max_level": 33, + "species": "SPECIES_ZUBAT" + }, + { + "min_level": 28, + "max_level": 28, + "species": "SPECIES_ZUBAT" + }, + { + "min_level": 29, + "max_level": 29, + "species": "SPECIES_ZUBAT" + }, + { + "min_level": 34, + "max_level": 34, + "species": "SPECIES_ZUBAT" + }, + { + "min_level": 35, + "max_level": 35, + "species": "SPECIES_ZUBAT" + }, + { + "min_level": 34, + "max_level": 34, + "species": "SPECIES_GOLBAT" + }, + { + "min_level": 35, + "max_level": 35, + "species": "SPECIES_GOLBAT" + }, + { + "min_level": 33, + "max_level": 33, + "species": "SPECIES_GOLBAT" + }, + { + "min_level": 36, + "max_level": 36, + "species": "SPECIES_GOLBAT" + } + ] + }, + "water_mons": { + "encounter_rate": 4, + "mons": [ + { + "min_level": 5, + "max_level": 35, + "species": "SPECIES_TENTACOOL" + }, + { + "min_level": 5, + "max_level": 35, + "species": "SPECIES_ZUBAT" + }, + { + "min_level": 30, + "max_level": 35, + "species": "SPECIES_ZUBAT" + }, + { + "min_level": 30, + "max_level": 35, + "species": "SPECIES_GOLBAT" + }, + { + "min_level": 30, + "max_level": 35, + "species": "SPECIES_GOLBAT" + } + ] + }, + "fishing_mons": { + "encounter_rate": 10, + "mons": [ + { + "min_level": 5, + "max_level": 10, + "species": "SPECIES_MAGIKARP" + }, + { + "min_level": 5, + "max_level": 10, + "species": "SPECIES_TENTACOOL" + }, + { + "min_level": 10, + "max_level": 30, + "species": "SPECIES_MAGIKARP" + }, + { + "min_level": 10, + "max_level": 30, + "species": "SPECIES_TENTACOOL" + }, + { + "min_level": 10, + "max_level": 30, + "species": "SPECIES_WAILMER" + }, + { + "min_level": 25, + "max_level": 30, + "species": "SPECIES_WAILMER" + }, + { + "min_level": 30, + "max_level": 35, + "species": "SPECIES_WAILMER" + }, + { + "min_level": 20, + "max_level": 25, + "species": "SPECIES_WAILMER" + }, + { + "min_level": 35, + "max_level": 40, + "species": "SPECIES_WAILMER" + }, + { + "min_level": 40, + "max_level": 45, + "species": "SPECIES_WAILMER" + } + ] + } + }, + { + "map": "MAP_SEAFLOOR_CAVERN_ROOM8", + "base_label": "SeafloorCavern_Room8_Sapphire", + "land_mons": { + "encounter_rate": 4, + "mons": [ + { + "min_level": 30, + "max_level": 30, + "species": "SPECIES_ZUBAT" + }, + { + "min_level": 31, + "max_level": 31, + "species": "SPECIES_ZUBAT" + }, + { + "min_level": 32, + "max_level": 32, + "species": "SPECIES_ZUBAT" + }, + { + "min_level": 33, + "max_level": 33, + "species": "SPECIES_ZUBAT" + }, + { + "min_level": 28, + "max_level": 28, + "species": "SPECIES_ZUBAT" + }, + { + "min_level": 29, + "max_level": 29, + "species": "SPECIES_ZUBAT" + }, + { + "min_level": 34, + "max_level": 34, + "species": "SPECIES_ZUBAT" + }, + { + "min_level": 35, + "max_level": 35, + "species": "SPECIES_ZUBAT" + }, + { + "min_level": 34, + "max_level": 34, + "species": "SPECIES_GOLBAT" + }, + { + "min_level": 35, + "max_level": 35, + "species": "SPECIES_GOLBAT" + }, + { + "min_level": 33, + "max_level": 33, + "species": "SPECIES_GOLBAT" + }, + { + "min_level": 36, + "max_level": 36, + "species": "SPECIES_GOLBAT" + } + ] + } + }, + { + "map": "MAP_CAVE_OF_ORIGIN_ENTRANCE", + "base_label": "CaveOfOrigin_Entrance_Sapphire", + "land_mons": { + "encounter_rate": 4, + "mons": [ + { + "min_level": 30, + "max_level": 30, + "species": "SPECIES_ZUBAT" + }, + { + "min_level": 31, + "max_level": 31, + "species": "SPECIES_ZUBAT" + }, + { + "min_level": 32, + "max_level": 32, + "species": "SPECIES_ZUBAT" + }, + { + "min_level": 33, + "max_level": 33, + "species": "SPECIES_ZUBAT" + }, + { + "min_level": 28, + "max_level": 28, + "species": "SPECIES_ZUBAT" + }, + { + "min_level": 29, + "max_level": 29, + "species": "SPECIES_ZUBAT" + }, + { + "min_level": 34, + "max_level": 34, + "species": "SPECIES_ZUBAT" + }, + { + "min_level": 35, + "max_level": 35, + "species": "SPECIES_ZUBAT" + }, + { + "min_level": 34, + "max_level": 34, + "species": "SPECIES_GOLBAT" + }, + { + "min_level": 35, + "max_level": 35, + "species": "SPECIES_GOLBAT" + }, + { + "min_level": 33, + "max_level": 33, + "species": "SPECIES_GOLBAT" + }, + { + "min_level": 36, + "max_level": 36, + "species": "SPECIES_GOLBAT" + } + ] + } + }, + { + "map": "MAP_CAVE_OF_ORIGIN_1F", + "base_label": "CaveOfOrigin_1F_Sapphire", + "land_mons": { + "encounter_rate": 4, + "mons": [ + { + "min_level": 30, + "max_level": 30, + "species": "SPECIES_ZUBAT" + }, + { + "min_level": 31, + "max_level": 31, + "species": "SPECIES_ZUBAT" + }, + { + "min_level": 32, + "max_level": 32, + "species": "SPECIES_ZUBAT" + }, + { + "min_level": 30, + "max_level": 30, + "species": "SPECIES_SABLEYE" + }, + { + "min_level": 32, + "max_level": 32, + "species": "SPECIES_SABLEYE" + }, + { + "min_level": 34, + "max_level": 34, + "species": "SPECIES_SABLEYE" + }, + { + "min_level": 33, + "max_level": 33, + "species": "SPECIES_ZUBAT" + }, + { + "min_level": 34, + "max_level": 34, + "species": "SPECIES_ZUBAT" + }, + { + "min_level": 34, + "max_level": 34, + "species": "SPECIES_GOLBAT" + }, + { + "min_level": 35, + "max_level": 35, + "species": "SPECIES_GOLBAT" + }, + { + "min_level": 33, + "max_level": 33, + "species": "SPECIES_GOLBAT" + }, + { + "min_level": 36, + "max_level": 36, + "species": "SPECIES_GOLBAT" + } + ] + } + }, + { + "map": "MAP_CAVE_OF_ORIGIN_B1F", + "base_label": "CaveOfOrigin_B1F_Sapphire", + "land_mons": { + "encounter_rate": 4, + "mons": [ + { + "min_level": 30, + "max_level": 30, + "species": "SPECIES_ZUBAT" + }, + { + "min_level": 31, + "max_level": 31, + "species": "SPECIES_ZUBAT" + }, + { + "min_level": 32, + "max_level": 32, + "species": "SPECIES_ZUBAT" + }, + { + "min_level": 30, + "max_level": 30, + "species": "SPECIES_SABLEYE" + }, + { + "min_level": 32, + "max_level": 32, + "species": "SPECIES_SABLEYE" + }, + { + "min_level": 34, + "max_level": 34, + "species": "SPECIES_SABLEYE" + }, + { + "min_level": 33, + "max_level": 33, + "species": "SPECIES_ZUBAT" + }, + { + "min_level": 34, + "max_level": 34, + "species": "SPECIES_ZUBAT" + }, + { + "min_level": 34, + "max_level": 34, + "species": "SPECIES_GOLBAT" + }, + { + "min_level": 35, + "max_level": 35, + "species": "SPECIES_GOLBAT" + }, + { + "min_level": 33, + "max_level": 33, + "species": "SPECIES_GOLBAT" + }, + { + "min_level": 36, + "max_level": 36, + "species": "SPECIES_GOLBAT" + } + ] + } + }, + { + "map": "MAP_CAVE_OF_ORIGIN_B2F", + "base_label": "CaveOfOrigin_B2F_Sapphire", + "land_mons": { + "encounter_rate": 4, + "mons": [ + { + "min_level": 30, + "max_level": 30, + "species": "SPECIES_ZUBAT" + }, + { + "min_level": 31, + "max_level": 31, + "species": "SPECIES_ZUBAT" + }, + { + "min_level": 32, + "max_level": 32, + "species": "SPECIES_ZUBAT" + }, + { + "min_level": 30, + "max_level": 30, + "species": "SPECIES_SABLEYE" + }, + { + "min_level": 32, + "max_level": 32, + "species": "SPECIES_SABLEYE" + }, + { + "min_level": 34, + "max_level": 34, + "species": "SPECIES_SABLEYE" + }, + { + "min_level": 33, + "max_level": 33, + "species": "SPECIES_ZUBAT" + }, + { + "min_level": 34, + "max_level": 34, + "species": "SPECIES_ZUBAT" + }, + { + "min_level": 34, + "max_level": 34, + "species": "SPECIES_GOLBAT" + }, + { + "min_level": 35, + "max_level": 35, + "species": "SPECIES_GOLBAT" + }, + { + "min_level": 33, + "max_level": 33, + "species": "SPECIES_GOLBAT" + }, + { + "min_level": 36, + "max_level": 36, + "species": "SPECIES_GOLBAT" + } + ] + } + }, + { + "map": "MAP_CAVE_OF_ORIGIN_B3F", + "base_label": "CaveOfOrigin_B3F_Sapphire", + "land_mons": { + "encounter_rate": 4, + "mons": [ + { + "min_level": 30, + "max_level": 30, + "species": "SPECIES_ZUBAT" + }, + { + "min_level": 31, + "max_level": 31, + "species": "SPECIES_ZUBAT" + }, + { + "min_level": 32, + "max_level": 32, + "species": "SPECIES_ZUBAT" + }, + { + "min_level": 30, + "max_level": 30, + "species": "SPECIES_SABLEYE" + }, + { + "min_level": 32, + "max_level": 32, + "species": "SPECIES_SABLEYE" + }, + { + "min_level": 34, + "max_level": 34, + "species": "SPECIES_SABLEYE" + }, + { + "min_level": 33, + "max_level": 33, + "species": "SPECIES_ZUBAT" + }, + { + "min_level": 34, + "max_level": 34, + "species": "SPECIES_ZUBAT" + }, + { + "min_level": 34, + "max_level": 34, + "species": "SPECIES_GOLBAT" + }, + { + "min_level": 35, + "max_level": 35, + "species": "SPECIES_GOLBAT" + }, + { + "min_level": 33, + "max_level": 33, + "species": "SPECIES_GOLBAT" + }, + { + "min_level": 36, + "max_level": 36, + "species": "SPECIES_GOLBAT" + } + ] + } + }, + { + "map": "MAP_VICTORY_ROAD_1F", + "base_label": "VictoryRoad_1F_Sapphire", + "land_mons": { + "encounter_rate": 10, + "mons": [ + { + "min_level": 40, + "max_level": 40, + "species": "SPECIES_GOLBAT" + }, + { + "min_level": 40, + "max_level": 40, + "species": "SPECIES_HARIYAMA" + }, + { + "min_level": 40, + "max_level": 40, + "species": "SPECIES_LAIRON" + }, + { + "min_level": 40, + "max_level": 40, + "species": "SPECIES_LOUDRED" + }, + { + "min_level": 36, + "max_level": 36, + "species": "SPECIES_ZUBAT" + }, + { + "min_level": 36, + "max_level": 36, + "species": "SPECIES_MAKUHITA" + }, + { + "min_level": 38, + "max_level": 38, + "species": "SPECIES_GOLBAT" + }, + { + "min_level": 38, + "max_level": 38, + "species": "SPECIES_HARIYAMA" + }, + { + "min_level": 36, + "max_level": 36, + "species": "SPECIES_ARON" + }, + { + "min_level": 36, + "max_level": 36, + "species": "SPECIES_WHISMUR" + }, + { + "min_level": 36, + "max_level": 36, + "species": "SPECIES_ARON" + }, + { + "min_level": 36, + "max_level": 36, + "species": "SPECIES_WHISMUR" + } + ] + } + }, + { + "map": "MAP_VICTORY_ROAD_B1F", + "base_label": "VictoryRoad_B1F_Sapphire", + "land_mons": { + "encounter_rate": 10, + "mons": [ + { + "min_level": 40, + "max_level": 40, + "species": "SPECIES_GOLBAT" + }, + { + "min_level": 40, + "max_level": 40, + "species": "SPECIES_HARIYAMA" + }, + { + "min_level": 40, + "max_level": 40, + "species": "SPECIES_LAIRON" + }, + { + "min_level": 40, + "max_level": 40, + "species": "SPECIES_MEDICHAM" + }, + { + "min_level": 38, + "max_level": 38, + "species": "SPECIES_GOLBAT" + }, + { + "min_level": 38, + "max_level": 38, + "species": "SPECIES_HARIYAMA" + }, + { + "min_level": 42, + "max_level": 42, + "species": "SPECIES_GOLBAT" + }, + { + "min_level": 42, + "max_level": 42, + "species": "SPECIES_HARIYAMA" + }, + { + "min_level": 42, + "max_level": 42, + "species": "SPECIES_LAIRON" + }, + { + "min_level": 38, + "max_level": 38, + "species": "SPECIES_MEDITITE" + }, + { + "min_level": 42, + "max_level": 42, + "species": "SPECIES_LAIRON" + }, + { + "min_level": 38, + "max_level": 38, + "species": "SPECIES_MEDITITE" + } + ] + }, + "rock_smash_mons": { + "encounter_rate": 20, + "mons": [ + { + "min_level": 30, + "max_level": 40, + "species": "SPECIES_GRAVELER" + }, + { + "min_level": 30, + "max_level": 40, + "species": "SPECIES_GEODUDE" + }, + { + "min_level": 35, + "max_level": 40, + "species": "SPECIES_GRAVELER" + }, + { + "min_level": 35, + "max_level": 40, + "species": "SPECIES_GRAVELER" + }, + { + "min_level": 35, + "max_level": 40, + "species": "SPECIES_GRAVELER" + } + ] + } + }, + { + "map": "MAP_VICTORY_ROAD_B2F", + "base_label": "VictoryRoad_B2F_Sapphire", + "land_mons": { + "encounter_rate": 10, + "mons": [ + { + "min_level": 40, + "max_level": 40, + "species": "SPECIES_GOLBAT" + }, + { + "min_level": 40, + "max_level": 40, + "species": "SPECIES_SABLEYE" + }, + { + "min_level": 40, + "max_level": 40, + "species": "SPECIES_LAIRON" + }, + { + "min_level": 40, + "max_level": 40, + "species": "SPECIES_MEDICHAM" + }, + { + "min_level": 42, + "max_level": 42, + "species": "SPECIES_GOLBAT" + }, + { + "min_level": 42, + "max_level": 42, + "species": "SPECIES_SABLEYE" + }, + { + "min_level": 44, + "max_level": 44, + "species": "SPECIES_GOLBAT" + }, + { + "min_level": 44, + "max_level": 44, + "species": "SPECIES_SABLEYE" + }, + { + "min_level": 42, + "max_level": 42, + "species": "SPECIES_LAIRON" + }, + { + "min_level": 42, + "max_level": 42, + "species": "SPECIES_MEDICHAM" + }, + { + "min_level": 44, + "max_level": 44, + "species": "SPECIES_LAIRON" + }, + { + "min_level": 44, + "max_level": 44, + "species": "SPECIES_MEDICHAM" + } + ] + }, + "water_mons": { + "encounter_rate": 4, + "mons": [ + { + "min_level": 30, + "max_level": 35, + "species": "SPECIES_GOLBAT" + }, + { + "min_level": 25, + "max_level": 30, + "species": "SPECIES_GOLBAT" + }, + { + "min_level": 35, + "max_level": 40, + "species": "SPECIES_GOLBAT" + }, + { + "min_level": 35, + "max_level": 40, + "species": "SPECIES_GOLBAT" + }, + { + "min_level": 35, + "max_level": 40, + "species": "SPECIES_GOLBAT" + } + ] + }, + "fishing_mons": { + "encounter_rate": 30, + "mons": [ + { + "min_level": 5, + "max_level": 10, + "species": "SPECIES_MAGIKARP" + }, + { + "min_level": 5, + "max_level": 10, + "species": "SPECIES_GOLDEEN" + }, + { + "min_level": 10, + "max_level": 30, + "species": "SPECIES_MAGIKARP" + }, + { + "min_level": 10, + "max_level": 30, + "species": "SPECIES_GOLDEEN" + }, + { + "min_level": 10, + "max_level": 30, + "species": "SPECIES_BARBOACH" + }, + { + "min_level": 25, + "max_level": 30, + "species": "SPECIES_BARBOACH" + }, + { + "min_level": 30, + "max_level": 35, + "species": "SPECIES_BARBOACH" + }, + { + "min_level": 30, + "max_level": 35, + "species": "SPECIES_WHISCASH" + }, + { + "min_level": 35, + "max_level": 40, + "species": "SPECIES_WHISCASH" + }, + { + "min_level": 40, + "max_level": 45, + "species": "SPECIES_WHISCASH" + } + ] + } + }, + { + "map": "MAP_SHOAL_CAVE_LOW_TIDE_ENTRANCE_ROOM", + "base_label": "ShoalCave_LowTideEntranceRoom_Sapphire", + "land_mons": { + "encounter_rate": 10, + "mons": [ + { + "min_level": 26, + "max_level": 26, + "species": "SPECIES_ZUBAT" + }, + { + "min_level": 26, + "max_level": 26, + "species": "SPECIES_SPHEAL" + }, + { + "min_level": 28, + "max_level": 28, + "species": "SPECIES_ZUBAT" + }, + { + "min_level": 28, + "max_level": 28, + "species": "SPECIES_SPHEAL" + }, + { + "min_level": 30, + "max_level": 30, + "species": "SPECIES_ZUBAT" + }, + { + "min_level": 30, + "max_level": 30, + "species": "SPECIES_SPHEAL" + }, + { + "min_level": 32, + "max_level": 32, + "species": "SPECIES_ZUBAT" + }, + { + "min_level": 32, + "max_level": 32, + "species": "SPECIES_SPHEAL" + }, + { + "min_level": 32, + "max_level": 32, + "species": "SPECIES_GOLBAT" + }, + { + "min_level": 32, + "max_level": 32, + "species": "SPECIES_SPHEAL" + }, + { + "min_level": 32, + "max_level": 32, + "species": "SPECIES_GOLBAT" + }, + { + "min_level": 32, + "max_level": 32, + "species": "SPECIES_SPHEAL" + } + ] + }, + "water_mons": { + "encounter_rate": 4, + "mons": [ + { + "min_level": 5, + "max_level": 35, + "species": "SPECIES_TENTACOOL" + }, + { + "min_level": 5, + "max_level": 35, + "species": "SPECIES_ZUBAT" + }, + { + "min_level": 25, + "max_level": 30, + "species": "SPECIES_SPHEAL" + }, + { + "min_level": 25, + "max_level": 30, + "species": "SPECIES_SPHEAL" + }, + { + "min_level": 25, + "max_level": 35, + "species": "SPECIES_SPHEAL" + } + ] + }, + "fishing_mons": { + "encounter_rate": 10, + "mons": [ + { + "min_level": 5, + "max_level": 10, + "species": "SPECIES_MAGIKARP" + }, + { + "min_level": 5, + "max_level": 10, + "species": "SPECIES_TENTACOOL" + }, + { + "min_level": 10, + "max_level": 30, + "species": "SPECIES_MAGIKARP" + }, + { + "min_level": 10, + "max_level": 30, + "species": "SPECIES_TENTACOOL" + }, + { + "min_level": 10, + "max_level": 30, + "species": "SPECIES_WAILMER" + }, + { + "min_level": 25, + "max_level": 30, + "species": "SPECIES_WAILMER" + }, + { + "min_level": 30, + "max_level": 35, + "species": "SPECIES_WAILMER" + }, + { + "min_level": 20, + "max_level": 25, + "species": "SPECIES_WAILMER" + }, + { + "min_level": 35, + "max_level": 40, + "species": "SPECIES_WAILMER" + }, + { + "min_level": 40, + "max_level": 45, + "species": "SPECIES_WAILMER" + } + ] + } + }, + { + "map": "MAP_SHOAL_CAVE_LOW_TIDE_INNER_ROOM", + "base_label": "ShoalCave_LowTideInnerRoom_Sapphire", + "land_mons": { + "encounter_rate": 10, + "mons": [ + { + "min_level": 26, + "max_level": 26, + "species": "SPECIES_ZUBAT" + }, + { + "min_level": 26, + "max_level": 26, + "species": "SPECIES_SPHEAL" + }, + { + "min_level": 28, + "max_level": 28, + "species": "SPECIES_ZUBAT" + }, + { + "min_level": 28, + "max_level": 28, + "species": "SPECIES_SPHEAL" + }, + { + "min_level": 30, + "max_level": 30, + "species": "SPECIES_ZUBAT" + }, + { + "min_level": 30, + "max_level": 30, + "species": "SPECIES_SPHEAL" + }, + { + "min_level": 32, + "max_level": 32, + "species": "SPECIES_ZUBAT" + }, + { + "min_level": 32, + "max_level": 32, + "species": "SPECIES_SPHEAL" + }, + { + "min_level": 32, + "max_level": 32, + "species": "SPECIES_GOLBAT" + }, + { + "min_level": 32, + "max_level": 32, + "species": "SPECIES_SPHEAL" + }, + { + "min_level": 32, + "max_level": 32, + "species": "SPECIES_GOLBAT" + }, + { + "min_level": 32, + "max_level": 32, + "species": "SPECIES_SPHEAL" + } + ] + }, + "water_mons": { + "encounter_rate": 4, + "mons": [ + { + "min_level": 5, + "max_level": 35, + "species": "SPECIES_TENTACOOL" + }, + { + "min_level": 5, + "max_level": 35, + "species": "SPECIES_ZUBAT" + }, + { + "min_level": 25, + "max_level": 30, + "species": "SPECIES_SPHEAL" + }, + { + "min_level": 25, + "max_level": 30, + "species": "SPECIES_SPHEAL" + }, + { + "min_level": 25, + "max_level": 35, + "species": "SPECIES_SPHEAL" + } + ] + }, + "fishing_mons": { + "encounter_rate": 10, + "mons": [ + { + "min_level": 5, + "max_level": 10, + "species": "SPECIES_MAGIKARP" + }, + { + "min_level": 5, + "max_level": 10, + "species": "SPECIES_TENTACOOL" + }, + { + "min_level": 10, + "max_level": 30, + "species": "SPECIES_MAGIKARP" + }, + { + "min_level": 10, + "max_level": 30, + "species": "SPECIES_TENTACOOL" + }, + { + "min_level": 10, + "max_level": 30, + "species": "SPECIES_WAILMER" + }, + { + "min_level": 25, + "max_level": 30, + "species": "SPECIES_WAILMER" + }, + { + "min_level": 30, + "max_level": 35, + "species": "SPECIES_WAILMER" + }, + { + "min_level": 20, + "max_level": 25, + "species": "SPECIES_WAILMER" + }, + { + "min_level": 35, + "max_level": 40, + "species": "SPECIES_WAILMER" + }, + { + "min_level": 40, + "max_level": 45, + "species": "SPECIES_WAILMER" + } + ] + } + }, + { + "map": "MAP_SHOAL_CAVE_LOW_TIDE_STAIRS_ROOM", + "base_label": "ShoalCave_LowTideStairsRoom_Sapphire", + "land_mons": { + "encounter_rate": 10, + "mons": [ + { + "min_level": 26, + "max_level": 26, + "species": "SPECIES_ZUBAT" + }, + { + "min_level": 26, + "max_level": 26, + "species": "SPECIES_SPHEAL" + }, + { + "min_level": 28, + "max_level": 28, + "species": "SPECIES_ZUBAT" + }, + { + "min_level": 28, + "max_level": 28, + "species": "SPECIES_SPHEAL" + }, + { + "min_level": 30, + "max_level": 30, + "species": "SPECIES_ZUBAT" + }, + { + "min_level": 30, + "max_level": 30, + "species": "SPECIES_SPHEAL" + }, + { + "min_level": 32, + "max_level": 32, + "species": "SPECIES_ZUBAT" + }, + { + "min_level": 32, + "max_level": 32, + "species": "SPECIES_SPHEAL" + }, + { + "min_level": 32, + "max_level": 32, + "species": "SPECIES_GOLBAT" + }, + { + "min_level": 32, + "max_level": 32, + "species": "SPECIES_SPHEAL" + }, + { + "min_level": 32, + "max_level": 32, + "species": "SPECIES_GOLBAT" + }, + { + "min_level": 32, + "max_level": 32, + "species": "SPECIES_SPHEAL" + } + ] + } + }, + { + "map": "MAP_SHOAL_CAVE_LOW_TIDE_LOWER_ROOM", + "base_label": "ShoalCave_LowTideLowerRoom_Sapphire", + "land_mons": { + "encounter_rate": 10, + "mons": [ + { + "min_level": 26, + "max_level": 26, + "species": "SPECIES_ZUBAT" + }, + { + "min_level": 26, + "max_level": 26, + "species": "SPECIES_SPHEAL" + }, + { + "min_level": 28, + "max_level": 28, + "species": "SPECIES_ZUBAT" + }, + { + "min_level": 28, + "max_level": 28, + "species": "SPECIES_SPHEAL" + }, + { + "min_level": 30, + "max_level": 30, + "species": "SPECIES_ZUBAT" + }, + { + "min_level": 30, + "max_level": 30, + "species": "SPECIES_SPHEAL" + }, + { + "min_level": 32, + "max_level": 32, + "species": "SPECIES_ZUBAT" + }, + { + "min_level": 32, + "max_level": 32, + "species": "SPECIES_SPHEAL" + }, + { + "min_level": 32, + "max_level": 32, + "species": "SPECIES_GOLBAT" + }, + { + "min_level": 32, + "max_level": 32, + "species": "SPECIES_SPHEAL" + }, + { + "min_level": 32, + "max_level": 32, + "species": "SPECIES_GOLBAT" + }, + { + "min_level": 32, + "max_level": 32, + "species": "SPECIES_SPHEAL" + } + ] + } + }, + { + "map": "MAP_SHOAL_CAVE_LOW_TIDE_ICE_ROOM", + "base_label": "ShoalCave_LowTideIceRoom_Sapphire", + "land_mons": { + "encounter_rate": 10, + "mons": [ + { + "min_level": 26, + "max_level": 26, + "species": "SPECIES_ZUBAT" + }, + { + "min_level": 26, + "max_level": 26, + "species": "SPECIES_SPHEAL" + }, + { + "min_level": 28, + "max_level": 28, + "species": "SPECIES_ZUBAT" + }, + { + "min_level": 28, + "max_level": 28, + "species": "SPECIES_SPHEAL" + }, + { + "min_level": 30, + "max_level": 30, + "species": "SPECIES_ZUBAT" + }, + { + "min_level": 30, + "max_level": 30, + "species": "SPECIES_SPHEAL" + }, + { + "min_level": 26, + "max_level": 26, + "species": "SPECIES_SNORUNT" + }, + { + "min_level": 32, + "max_level": 32, + "species": "SPECIES_SPHEAL" + }, + { + "min_level": 30, + "max_level": 30, + "species": "SPECIES_GOLBAT" + }, + { + "min_level": 28, + "max_level": 28, + "species": "SPECIES_SNORUNT" + }, + { + "min_level": 32, + "max_level": 32, + "species": "SPECIES_GOLBAT" + }, + { + "min_level": 30, + "max_level": 30, + "species": "SPECIES_SNORUNT" + } + ] + } + }, + { + "map": "MAP_NEW_MAUVILLE_ENTRANCE", + "base_label": "NewMauville_Entrance_Sapphire", + "land_mons": { + "encounter_rate": 10, + "mons": [ + { + "min_level": 24, + "max_level": 24, + "species": "SPECIES_VOLTORB" + }, + { + "min_level": 24, + "max_level": 24, + "species": "SPECIES_MAGNEMITE" + }, + { + "min_level": 25, + "max_level": 25, + "species": "SPECIES_VOLTORB" + }, + { + "min_level": 25, + "max_level": 25, + "species": "SPECIES_MAGNEMITE" + }, + { + "min_level": 23, + "max_level": 23, + "species": "SPECIES_VOLTORB" + }, + { + "min_level": 23, + "max_level": 23, + "species": "SPECIES_MAGNEMITE" + }, + { + "min_level": 26, + "max_level": 26, + "species": "SPECIES_VOLTORB" + }, + { + "min_level": 26, + "max_level": 26, + "species": "SPECIES_MAGNEMITE" + }, + { + "min_level": 22, + "max_level": 22, + "species": "SPECIES_VOLTORB" + }, + { + "min_level": 22, + "max_level": 22, + "species": "SPECIES_MAGNEMITE" + }, + { + "min_level": 22, + "max_level": 22, + "species": "SPECIES_VOLTORB" + }, + { + "min_level": 22, + "max_level": 22, + "species": "SPECIES_MAGNEMITE" + } + ] + } + }, + { + "map": "MAP_NEW_MAUVILLE_INSIDE", + "base_label": "NewMauville_Inside_Sapphire", + "land_mons": { + "encounter_rate": 10, + "mons": [ + { + "min_level": 24, + "max_level": 24, + "species": "SPECIES_VOLTORB" + }, + { + "min_level": 24, + "max_level": 24, + "species": "SPECIES_MAGNEMITE" + }, + { + "min_level": 25, + "max_level": 25, + "species": "SPECIES_VOLTORB" + }, + { + "min_level": 25, + "max_level": 25, + "species": "SPECIES_MAGNEMITE" + }, + { + "min_level": 23, + "max_level": 23, + "species": "SPECIES_VOLTORB" + }, + { + "min_level": 23, + "max_level": 23, + "species": "SPECIES_MAGNEMITE" + }, + { + "min_level": 26, + "max_level": 26, + "species": "SPECIES_VOLTORB" + }, + { + "min_level": 26, + "max_level": 26, + "species": "SPECIES_MAGNEMITE" + }, + { + "min_level": 22, + "max_level": 22, + "species": "SPECIES_VOLTORB" + }, + { + "min_level": 22, + "max_level": 22, + "species": "SPECIES_MAGNEMITE" + }, + { + "min_level": 26, + "max_level": 26, + "species": "SPECIES_ELECTRODE" + }, + { + "min_level": 26, + "max_level": 26, + "species": "SPECIES_MAGNETON" + } + ] + } + }, + { + "map": "MAP_ABANDONED_SHIP_ROOMS_B1F", + "base_label": "AbandonedShip_Rooms_B1F_Sapphire", + "water_mons": { + "encounter_rate": 4, + "mons": [ + { + "min_level": 5, + "max_level": 35, + "species": "SPECIES_TENTACOOL" + }, + { + "min_level": 5, + "max_level": 35, + "species": "SPECIES_TENTACOOL" + }, + { + "min_level": 5, + "max_level": 35, + "species": "SPECIES_TENTACOOL" + }, + { + "min_level": 5, + "max_level": 35, + "species": "SPECIES_TENTACOOL" + }, + { + "min_level": 30, + "max_level": 35, + "species": "SPECIES_TENTACRUEL" + } + ] + }, + "fishing_mons": { + "encounter_rate": 20, + "mons": [ + { + "min_level": 5, + "max_level": 10, + "species": "SPECIES_MAGIKARP" + }, + { + "min_level": 5, + "max_level": 10, + "species": "SPECIES_TENTACOOL" + }, + { + "min_level": 10, + "max_level": 30, + "species": "SPECIES_MAGIKARP" + }, + { + "min_level": 10, + "max_level": 30, + "species": "SPECIES_TENTACOOL" + }, + { + "min_level": 10, + "max_level": 30, + "species": "SPECIES_TENTACOOL" + }, + { + "min_level": 25, + "max_level": 30, + "species": "SPECIES_TENTACOOL" + }, + { + "min_level": 30, + "max_level": 35, + "species": "SPECIES_TENTACOOL" + }, + { + "min_level": 30, + "max_level": 35, + "species": "SPECIES_TENTACRUEL" + }, + { + "min_level": 25, + "max_level": 30, + "species": "SPECIES_TENTACRUEL" + }, + { + "min_level": 20, + "max_level": 25, + "species": "SPECIES_TENTACRUEL" + } + ] + } + }, + { + "map": "MAP_ABANDONED_SHIP_HIDDEN_FLOOR_CORRIDORS", + "base_label": "AbandonedShip_HiddenFloorCorridors_Sapphire", + "water_mons": { + "encounter_rate": 4, + "mons": [ + { + "min_level": 5, + "max_level": 35, + "species": "SPECIES_TENTACOOL" + }, + { + "min_level": 5, + "max_level": 35, + "species": "SPECIES_TENTACOOL" + }, + { + "min_level": 5, + "max_level": 35, + "species": "SPECIES_TENTACOOL" + }, + { + "min_level": 5, + "max_level": 35, + "species": "SPECIES_TENTACOOL" + }, + { + "min_level": 30, + "max_level": 35, + "species": "SPECIES_TENTACRUEL" + } + ] + }, + "fishing_mons": { + "encounter_rate": 20, + "mons": [ + { + "min_level": 5, + "max_level": 10, + "species": "SPECIES_MAGIKARP" + }, + { + "min_level": 5, + "max_level": 10, + "species": "SPECIES_TENTACOOL" + }, + { + "min_level": 10, + "max_level": 30, + "species": "SPECIES_MAGIKARP" + }, + { + "min_level": 10, + "max_level": 30, + "species": "SPECIES_TENTACOOL" + }, + { + "min_level": 10, + "max_level": 30, + "species": "SPECIES_TENTACOOL" + }, + { + "min_level": 25, + "max_level": 30, + "species": "SPECIES_TENTACOOL" + }, + { + "min_level": 30, + "max_level": 35, + "species": "SPECIES_TENTACOOL" + }, + { + "min_level": 30, + "max_level": 35, + "species": "SPECIES_TENTACRUEL" + }, + { + "min_level": 25, + "max_level": 30, + "species": "SPECIES_TENTACRUEL" + }, + { + "min_level": 20, + "max_level": 25, + "species": "SPECIES_TENTACRUEL" + } + ] + } + }, + { + "map": "MAP_SKY_PILLAR_1F", + "base_label": "SkyPillar_1F_Sapphire", + "land_mons": { + "encounter_rate": 10, + "mons": [ + { + "min_level": 48, + "max_level": 48, + "species": "SPECIES_SABLEYE" + }, + { + "min_level": 48, + "max_level": 48, + "species": "SPECIES_GOLBAT" + }, + { + "min_level": 50, + "max_level": 50, + "species": "SPECIES_GOLBAT" + }, + { + "min_level": 50, + "max_level": 50, + "species": "SPECIES_SABLEYE" + }, + { + "min_level": 48, + "max_level": 48, + "species": "SPECIES_CLAYDOL" + }, + { + "min_level": 48, + "max_level": 48, + "species": "SPECIES_BANETTE" + }, + { + "min_level": 50, + "max_level": 50, + "species": "SPECIES_BANETTE" + }, + { + "min_level": 49, + "max_level": 49, + "species": "SPECIES_CLAYDOL" + }, + { + "min_level": 47, + "max_level": 47, + "species": "SPECIES_CLAYDOL" + }, + { + "min_level": 50, + "max_level": 50, + "species": "SPECIES_CLAYDOL" + }, + { + "min_level": 47, + "max_level": 47, + "species": "SPECIES_CLAYDOL" + }, + { + "min_level": 50, + "max_level": 50, + "species": "SPECIES_CLAYDOL" + } + ] + } + }, + { + "map": "MAP_SKY_PILLAR_3F", + "base_label": "SkyPillar_3F_Sapphire", + "land_mons": { + "encounter_rate": 10, + "mons": [ + { + "min_level": 51, + "max_level": 51, + "species": "SPECIES_SABLEYE" + }, + { + "min_level": 51, + "max_level": 51, + "species": "SPECIES_GOLBAT" + }, + { + "min_level": 53, + "max_level": 53, + "species": "SPECIES_GOLBAT" + }, + { + "min_level": 53, + "max_level": 53, + "species": "SPECIES_SABLEYE" + }, + { + "min_level": 51, + "max_level": 51, + "species": "SPECIES_CLAYDOL" + }, + { + "min_level": 51, + "max_level": 51, + "species": "SPECIES_BANETTE" + }, + { + "min_level": 53, + "max_level": 53, + "species": "SPECIES_BANETTE" + }, + { + "min_level": 52, + "max_level": 52, + "species": "SPECIES_CLAYDOL" + }, + { + "min_level": 50, + "max_level": 50, + "species": "SPECIES_CLAYDOL" + }, + { + "min_level": 53, + "max_level": 53, + "species": "SPECIES_CLAYDOL" + }, + { + "min_level": 50, + "max_level": 50, + "species": "SPECIES_CLAYDOL" + }, + { + "min_level": 53, + "max_level": 53, + "species": "SPECIES_CLAYDOL" + } + ] + } + }, + { + "map": "MAP_SKY_PILLAR_5F", + "base_label": "SkyPillar_5F_Sapphire", + "land_mons": { + "encounter_rate": 10, + "mons": [ + { + "min_level": 54, + "max_level": 54, + "species": "SPECIES_SABLEYE" + }, + { + "min_level": 54, + "max_level": 54, + "species": "SPECIES_GOLBAT" + }, + { + "min_level": 56, + "max_level": 56, + "species": "SPECIES_GOLBAT" + }, + { + "min_level": 56, + "max_level": 56, + "species": "SPECIES_SABLEYE" + }, + { + "min_level": 54, + "max_level": 54, + "species": "SPECIES_CLAYDOL" + }, + { + "min_level": 54, + "max_level": 54, + "species": "SPECIES_BANETTE" + }, + { + "min_level": 56, + "max_level": 56, + "species": "SPECIES_BANETTE" + }, + { + "min_level": 55, + "max_level": 55, + "species": "SPECIES_CLAYDOL" + }, + { + "min_level": 56, + "max_level": 56, + "species": "SPECIES_CLAYDOL" + }, + { + "min_level": 57, + "max_level": 57, + "species": "SPECIES_ALTARIA" + }, + { + "min_level": 54, + "max_level": 54, + "species": "SPECIES_ALTARIA" + }, + { + "min_level": 60, + "max_level": 60, + "species": "SPECIES_ALTARIA" + } + ] + } + }, + { + "map": "MAP_ROUTE101", + "base_label": "Route101_Sapphire", + "land_mons": { + "encounter_rate": 20, + "mons": [ + { + "min_level": 2, + "max_level": 2, + "species": "SPECIES_WURMPLE" + }, + { + "min_level": 2, + "max_level": 2, + "species": "SPECIES_ZIGZAGOON" + }, + { + "min_level": 2, + "max_level": 2, + "species": "SPECIES_WURMPLE" + }, + { + "min_level": 3, + "max_level": 3, + "species": "SPECIES_WURMPLE" + }, + { + "min_level": 3, + "max_level": 3, + "species": "SPECIES_ZIGZAGOON" + }, + { + "min_level": 3, + "max_level": 3, + "species": "SPECIES_ZIGZAGOON" + }, + { + "min_level": 3, + "max_level": 3, + "species": "SPECIES_WURMPLE" + }, + { + "min_level": 3, + "max_level": 3, + "species": "SPECIES_ZIGZAGOON" + }, + { + "min_level": 2, + "max_level": 2, + "species": "SPECIES_POOCHYENA" + }, + { + "min_level": 2, + "max_level": 2, + "species": "SPECIES_POOCHYENA" + }, + { + "min_level": 3, + "max_level": 3, + "species": "SPECIES_POOCHYENA" + }, + { + "min_level": 3, + "max_level": 3, + "species": "SPECIES_POOCHYENA" + } + ] + } + }, + { + "map": "MAP_ROUTE102", + "base_label": "Route102_Sapphire", + "land_mons": { + "encounter_rate": 20, + "mons": [ + { + "min_level": 3, + "max_level": 3, + "species": "SPECIES_ZIGZAGOON" + }, + { + "min_level": 3, + "max_level": 3, + "species": "SPECIES_WURMPLE" + }, + { + "min_level": 4, + "max_level": 4, + "species": "SPECIES_ZIGZAGOON" + }, + { + "min_level": 4, + "max_level": 4, + "species": "SPECIES_WURMPLE" + }, + { + "min_level": 3, + "max_level": 3, + "species": "SPECIES_LOTAD" + }, + { + "min_level": 4, + "max_level": 4, + "species": "SPECIES_LOTAD" + }, + { + "min_level": 3, + "max_level": 3, + "species": "SPECIES_POOCHYENA" + }, + { + "min_level": 3, + "max_level": 3, + "species": "SPECIES_POOCHYENA" + }, + { + "min_level": 4, + "max_level": 4, + "species": "SPECIES_POOCHYENA" + }, + { + "min_level": 4, + "max_level": 4, + "species": "SPECIES_RALTS" + }, + { + "min_level": 4, + "max_level": 4, + "species": "SPECIES_POOCHYENA" + }, + { + "min_level": 3, + "max_level": 3, + "species": "SPECIES_SURSKIT" + } + ] + }, + "water_mons": { + "encounter_rate": 4, + "mons": [ + { + "min_level": 20, + "max_level": 30, + "species": "SPECIES_MARILL" + }, + { + "min_level": 10, + "max_level": 20, + "species": "SPECIES_MARILL" + }, + { + "min_level": 30, + "max_level": 35, + "species": "SPECIES_MARILL" + }, + { + "min_level": 5, + "max_level": 10, + "species": "SPECIES_MARILL" + }, + { + "min_level": 20, + "max_level": 30, + "species": "SPECIES_SURSKIT" + } + ] + }, + "fishing_mons": { + "encounter_rate": 30, + "mons": [ + { + "min_level": 5, + "max_level": 10, + "species": "SPECIES_MAGIKARP" + }, + { + "min_level": 5, + "max_level": 10, + "species": "SPECIES_GOLDEEN" + }, + { + "min_level": 10, + "max_level": 30, + "species": "SPECIES_MAGIKARP" + }, + { + "min_level": 10, + "max_level": 30, + "species": "SPECIES_GOLDEEN" + }, + { + "min_level": 10, + "max_level": 30, + "species": "SPECIES_CORPHISH" + }, + { + "min_level": 25, + "max_level": 30, + "species": "SPECIES_CORPHISH" + }, + { + "min_level": 30, + "max_level": 35, + "species": "SPECIES_CORPHISH" + }, + { + "min_level": 20, + "max_level": 25, + "species": "SPECIES_CORPHISH" + }, + { + "min_level": 35, + "max_level": 40, + "species": "SPECIES_CORPHISH" + }, + { + "min_level": 40, + "max_level": 45, + "species": "SPECIES_CORPHISH" + } + ] + } + }, + { + "map": "MAP_ROUTE103", + "base_label": "Route103_Sapphire", + "land_mons": { + "encounter_rate": 20, + "mons": [ + { + "min_level": 2, + "max_level": 2, + "species": "SPECIES_ZIGZAGOON" + }, + { + "min_level": 3, + "max_level": 3, + "species": "SPECIES_ZIGZAGOON" + }, + { + "min_level": 3, + "max_level": 3, + "species": "SPECIES_ZIGZAGOON" + }, + { + "min_level": 4, + "max_level": 4, + "species": "SPECIES_ZIGZAGOON" + }, + { + "min_level": 2, + "max_level": 2, + "species": "SPECIES_POOCHYENA" + }, + { + "min_level": 3, + "max_level": 3, + "species": "SPECIES_POOCHYENA" + }, + { + "min_level": 3, + "max_level": 3, + "species": "SPECIES_POOCHYENA" + }, + { + "min_level": 4, + "max_level": 4, + "species": "SPECIES_POOCHYENA" + }, + { + "min_level": 3, + "max_level": 3, + "species": "SPECIES_WINGULL" + }, + { + "min_level": 3, + "max_level": 3, + "species": "SPECIES_WINGULL" + }, + { + "min_level": 2, + "max_level": 2, + "species": "SPECIES_WINGULL" + }, + { + "min_level": 4, + "max_level": 4, + "species": "SPECIES_WINGULL" + } + ] + }, + "water_mons": { + "encounter_rate": 4, + "mons": [ + { + "min_level": 5, + "max_level": 35, + "species": "SPECIES_TENTACOOL" + }, + { + "min_level": 10, + "max_level": 30, + "species": "SPECIES_WINGULL" + }, + { + "min_level": 15, + "max_level": 25, + "species": "SPECIES_WINGULL" + }, + { + "min_level": 25, + "max_level": 30, + "species": "SPECIES_PELIPPER" + }, + { + "min_level": 25, + "max_level": 30, + "species": "SPECIES_PELIPPER" + } + ] + }, + "fishing_mons": { + "encounter_rate": 30, + "mons": [ + { + "min_level": 5, + "max_level": 10, + "species": "SPECIES_MAGIKARP" + }, + { + "min_level": 5, + "max_level": 10, + "species": "SPECIES_TENTACOOL" + }, + { + "min_level": 10, + "max_level": 30, + "species": "SPECIES_MAGIKARP" + }, + { + "min_level": 10, + "max_level": 30, + "species": "SPECIES_TENTACOOL" + }, + { + "min_level": 10, + "max_level": 30, + "species": "SPECIES_WAILMER" + }, + { + "min_level": 30, + "max_level": 35, + "species": "SPECIES_SHARPEDO" + }, + { + "min_level": 30, + "max_level": 35, + "species": "SPECIES_WAILMER" + }, + { + "min_level": 25, + "max_level": 30, + "species": "SPECIES_WAILMER" + }, + { + "min_level": 35, + "max_level": 40, + "species": "SPECIES_WAILMER" + }, + { + "min_level": 40, + "max_level": 45, + "species": "SPECIES_WAILMER" + } + ] + } + }, + { + "map": "MAP_ROUTE104", + "base_label": "Route104_Sapphire", + "land_mons": { + "encounter_rate": 20, + "mons": [ + { + "min_level": 4, + "max_level": 4, + "species": "SPECIES_ZIGZAGOON" + }, + { + "min_level": 4, + "max_level": 4, + "species": "SPECIES_WURMPLE" + }, + { + "min_level": 5, + "max_level": 5, + "species": "SPECIES_ZIGZAGOON" + }, + { + "min_level": 5, + "max_level": 5, + "species": "SPECIES_WURMPLE" + }, + { + "min_level": 4, + "max_level": 4, + "species": "SPECIES_ZIGZAGOON" + }, + { + "min_level": 5, + "max_level": 5, + "species": "SPECIES_ZIGZAGOON" + }, + { + "min_level": 4, + "max_level": 4, + "species": "SPECIES_TAILLOW" + }, + { + "min_level": 5, + "max_level": 5, + "species": "SPECIES_TAILLOW" + }, + { + "min_level": 4, + "max_level": 4, + "species": "SPECIES_WINGULL" + }, + { + "min_level": 4, + "max_level": 4, + "species": "SPECIES_WINGULL" + }, + { + "min_level": 3, + "max_level": 3, + "species": "SPECIES_WINGULL" + }, + { + "min_level": 5, + "max_level": 5, + "species": "SPECIES_WINGULL" + } + ] + }, + "water_mons": { + "encounter_rate": 4, + "mons": [ + { + "min_level": 10, + "max_level": 30, + "species": "SPECIES_WINGULL" + }, + { + "min_level": 15, + "max_level": 25, + "species": "SPECIES_WINGULL" + }, + { + "min_level": 15, + "max_level": 25, + "species": "SPECIES_WINGULL" + }, + { + "min_level": 25, + "max_level": 30, + "species": "SPECIES_PELIPPER" + }, + { + "min_level": 25, + "max_level": 30, + "species": "SPECIES_PELIPPER" + } + ] + }, + "fishing_mons": { + "encounter_rate": 30, + "mons": [ + { + "min_level": 5, + "max_level": 10, + "species": "SPECIES_MAGIKARP" + }, + { + "min_level": 5, + "max_level": 10, + "species": "SPECIES_MAGIKARP" + }, + { + "min_level": 10, + "max_level": 30, + "species": "SPECIES_MAGIKARP" + }, + { + "min_level": 10, + "max_level": 30, + "species": "SPECIES_MAGIKARP" + }, + { + "min_level": 10, + "max_level": 30, + "species": "SPECIES_MAGIKARP" + }, + { + "min_level": 25, + "max_level": 30, + "species": "SPECIES_MAGIKARP" + }, + { + "min_level": 30, + "max_level": 35, + "species": "SPECIES_MAGIKARP" + }, + { + "min_level": 20, + "max_level": 25, + "species": "SPECIES_MAGIKARP" + }, + { + "min_level": 35, + "max_level": 40, + "species": "SPECIES_MAGIKARP" + }, + { + "min_level": 40, + "max_level": 45, + "species": "SPECIES_MAGIKARP" + } + ] + } + }, + { + "map": "MAP_ROUTE105", + "base_label": "Route105_Sapphire", + "water_mons": { + "encounter_rate": 4, + "mons": [ + { + "min_level": 5, + "max_level": 35, + "species": "SPECIES_TENTACOOL" + }, + { + "min_level": 10, + "max_level": 30, + "species": "SPECIES_WINGULL" + }, + { + "min_level": 15, + "max_level": 25, + "species": "SPECIES_WINGULL" + }, + { + "min_level": 25, + "max_level": 30, + "species": "SPECIES_PELIPPER" + }, + { + "min_level": 25, + "max_level": 30, + "species": "SPECIES_PELIPPER" + } + ] + }, + "fishing_mons": { + "encounter_rate": 30, + "mons": [ + { + "min_level": 5, + "max_level": 10, + "species": "SPECIES_MAGIKARP" + }, + { + "min_level": 5, + "max_level": 10, + "species": "SPECIES_TENTACOOL" + }, + { + "min_level": 10, + "max_level": 30, + "species": "SPECIES_MAGIKARP" + }, + { + "min_level": 10, + "max_level": 30, + "species": "SPECIES_TENTACOOL" + }, + { + "min_level": 10, + "max_level": 30, + "species": "SPECIES_WAILMER" + }, + { + "min_level": 25, + "max_level": 30, + "species": "SPECIES_WAILMER" + }, + { + "min_level": 30, + "max_level": 35, + "species": "SPECIES_WAILMER" + }, + { + "min_level": 20, + "max_level": 25, + "species": "SPECIES_WAILMER" + }, + { + "min_level": 35, + "max_level": 40, + "species": "SPECIES_WAILMER" + }, + { + "min_level": 40, + "max_level": 45, + "species": "SPECIES_WAILMER" + } + ] + } + }, + { + "map": "MAP_ROUTE106", + "base_label": "Route106_Sapphire", + "water_mons": { + "encounter_rate": 4, + "mons": [ + { + "min_level": 5, + "max_level": 35, + "species": "SPECIES_TENTACOOL" + }, + { + "min_level": 10, + "max_level": 30, + "species": "SPECIES_WINGULL" + }, + { + "min_level": 15, + "max_level": 25, + "species": "SPECIES_WINGULL" + }, + { + "min_level": 25, + "max_level": 30, + "species": "SPECIES_PELIPPER" + }, + { + "min_level": 25, + "max_level": 30, + "species": "SPECIES_PELIPPER" + } + ] + }, + "fishing_mons": { + "encounter_rate": 30, + "mons": [ + { + "min_level": 5, + "max_level": 10, + "species": "SPECIES_MAGIKARP" + }, + { + "min_level": 5, + "max_level": 10, + "species": "SPECIES_TENTACOOL" + }, + { + "min_level": 10, + "max_level": 30, + "species": "SPECIES_MAGIKARP" + }, + { + "min_level": 10, + "max_level": 30, + "species": "SPECIES_TENTACOOL" + }, + { + "min_level": 10, + "max_level": 30, + "species": "SPECIES_WAILMER" + }, + { + "min_level": 25, + "max_level": 30, + "species": "SPECIES_WAILMER" + }, + { + "min_level": 30, + "max_level": 35, + "species": "SPECIES_WAILMER" + }, + { + "min_level": 20, + "max_level": 25, + "species": "SPECIES_WAILMER" + }, + { + "min_level": 35, + "max_level": 40, + "species": "SPECIES_WAILMER" + }, + { + "min_level": 40, + "max_level": 45, + "species": "SPECIES_WAILMER" + } + ] + } + }, + { + "map": "MAP_ROUTE107", + "base_label": "Route107_Sapphire", + "water_mons": { + "encounter_rate": 4, + "mons": [ + { + "min_level": 5, + "max_level": 35, + "species": "SPECIES_TENTACOOL" + }, + { + "min_level": 10, + "max_level": 30, + "species": "SPECIES_WINGULL" + }, + { + "min_level": 15, + "max_level": 25, + "species": "SPECIES_WINGULL" + }, + { + "min_level": 25, + "max_level": 30, + "species": "SPECIES_PELIPPER" + }, + { + "min_level": 25, + "max_level": 30, + "species": "SPECIES_PELIPPER" + } + ] + }, + "fishing_mons": { + "encounter_rate": 30, + "mons": [ + { + "min_level": 5, + "max_level": 10, + "species": "SPECIES_MAGIKARP" + }, + { + "min_level": 5, + "max_level": 10, + "species": "SPECIES_TENTACOOL" + }, + { + "min_level": 10, + "max_level": 30, + "species": "SPECIES_MAGIKARP" + }, + { + "min_level": 10, + "max_level": 30, + "species": "SPECIES_TENTACOOL" + }, + { + "min_level": 10, + "max_level": 30, + "species": "SPECIES_WAILMER" + }, + { + "min_level": 25, + "max_level": 30, + "species": "SPECIES_WAILMER" + }, + { + "min_level": 30, + "max_level": 35, + "species": "SPECIES_WAILMER" + }, + { + "min_level": 20, + "max_level": 25, + "species": "SPECIES_WAILMER" + }, + { + "min_level": 35, + "max_level": 40, + "species": "SPECIES_WAILMER" + }, + { + "min_level": 40, + "max_level": 45, + "species": "SPECIES_WAILMER" + } + ] + } + }, + { + "map": "MAP_ROUTE108", + "base_label": "Route108_Sapphire", + "water_mons": { + "encounter_rate": 4, + "mons": [ + { + "min_level": 5, + "max_level": 35, + "species": "SPECIES_TENTACOOL" + }, + { + "min_level": 10, + "max_level": 30, + "species": "SPECIES_WINGULL" + }, + { + "min_level": 15, + "max_level": 25, + "species": "SPECIES_WINGULL" + }, + { + "min_level": 25, + "max_level": 30, + "species": "SPECIES_PELIPPER" + }, + { + "min_level": 25, + "max_level": 30, + "species": "SPECIES_PELIPPER" + } + ] + }, + "fishing_mons": { + "encounter_rate": 30, + "mons": [ + { + "min_level": 5, + "max_level": 10, + "species": "SPECIES_MAGIKARP" + }, + { + "min_level": 5, + "max_level": 10, + "species": "SPECIES_TENTACOOL" + }, + { + "min_level": 10, + "max_level": 30, + "species": "SPECIES_MAGIKARP" + }, + { + "min_level": 10, + "max_level": 30, + "species": "SPECIES_TENTACOOL" + }, + { + "min_level": 10, + "max_level": 30, + "species": "SPECIES_WAILMER" + }, + { + "min_level": 25, + "max_level": 30, + "species": "SPECIES_WAILMER" + }, + { + "min_level": 30, + "max_level": 35, + "species": "SPECIES_WAILMER" + }, + { + "min_level": 20, + "max_level": 25, + "species": "SPECIES_WAILMER" + }, + { + "min_level": 35, + "max_level": 40, + "species": "SPECIES_WAILMER" + }, + { + "min_level": 40, + "max_level": 45, + "species": "SPECIES_WAILMER" + } + ] + } + }, + { + "map": "MAP_ROUTE109", + "base_label": "Route109_Sapphire", + "water_mons": { + "encounter_rate": 4, + "mons": [ + { + "min_level": 5, + "max_level": 35, + "species": "SPECIES_TENTACOOL" + }, + { + "min_level": 10, + "max_level": 30, + "species": "SPECIES_WINGULL" + }, + { + "min_level": 15, + "max_level": 25, + "species": "SPECIES_WINGULL" + }, + { + "min_level": 25, + "max_level": 30, + "species": "SPECIES_PELIPPER" + }, + { + "min_level": 25, + "max_level": 30, + "species": "SPECIES_PELIPPER" + } + ] + }, + "fishing_mons": { + "encounter_rate": 30, + "mons": [ + { + "min_level": 5, + "max_level": 10, + "species": "SPECIES_MAGIKARP" + }, + { + "min_level": 5, + "max_level": 10, + "species": "SPECIES_TENTACOOL" + }, + { + "min_level": 10, + "max_level": 30, + "species": "SPECIES_MAGIKARP" + }, + { + "min_level": 10, + "max_level": 30, + "species": "SPECIES_TENTACOOL" + }, + { + "min_level": 10, + "max_level": 30, + "species": "SPECIES_WAILMER" + }, + { + "min_level": 25, + "max_level": 30, + "species": "SPECIES_WAILMER" + }, + { + "min_level": 30, + "max_level": 35, + "species": "SPECIES_WAILMER" + }, + { + "min_level": 20, + "max_level": 25, + "species": "SPECIES_WAILMER" + }, + { + "min_level": 35, + "max_level": 40, + "species": "SPECIES_WAILMER" + }, + { + "min_level": 40, + "max_level": 45, + "species": "SPECIES_WAILMER" + } + ] + } + }, + { + "map": "MAP_ROUTE110", + "base_label": "Route110_Sapphire", + "land_mons": { + "encounter_rate": 20, + "mons": [ + { + "min_level": 12, + "max_level": 12, + "species": "SPECIES_ZIGZAGOON" + }, + { + "min_level": 12, + "max_level": 12, + "species": "SPECIES_ELECTRIKE" + }, + { + "min_level": 12, + "max_level": 12, + "species": "SPECIES_GULPIN" + }, + { + "min_level": 13, + "max_level": 13, + "species": "SPECIES_ELECTRIKE" + }, + { + "min_level": 13, + "max_level": 13, + "species": "SPECIES_PLUSLE" + }, + { + "min_level": 13, + "max_level": 13, + "species": "SPECIES_ODDISH" + }, + { + "min_level": 13, + "max_level": 13, + "species": "SPECIES_PLUSLE" + }, + { + "min_level": 13, + "max_level": 13, + "species": "SPECIES_GULPIN" + }, + { + "min_level": 12, + "max_level": 12, + "species": "SPECIES_WINGULL" + }, + { + "min_level": 12, + "max_level": 12, + "species": "SPECIES_WINGULL" + }, + { + "min_level": 12, + "max_level": 12, + "species": "SPECIES_MINUN" + }, + { + "min_level": 13, + "max_level": 13, + "species": "SPECIES_MINUN" + } + ] + }, + "water_mons": { + "encounter_rate": 4, + "mons": [ + { + "min_level": 5, + "max_level": 35, + "species": "SPECIES_TENTACOOL" + }, + { + "min_level": 10, + "max_level": 30, + "species": "SPECIES_WINGULL" + }, + { + "min_level": 15, + "max_level": 25, + "species": "SPECIES_WINGULL" + }, + { + "min_level": 25, + "max_level": 30, + "species": "SPECIES_PELIPPER" + }, + { + "min_level": 25, + "max_level": 30, + "species": "SPECIES_PELIPPER" + } + ] + }, + "fishing_mons": { + "encounter_rate": 30, + "mons": [ + { + "min_level": 5, + "max_level": 10, + "species": "SPECIES_MAGIKARP" + }, + { + "min_level": 5, + "max_level": 10, + "species": "SPECIES_TENTACOOL" + }, + { + "min_level": 10, + "max_level": 30, + "species": "SPECIES_MAGIKARP" + }, + { + "min_level": 10, + "max_level": 30, + "species": "SPECIES_TENTACOOL" + }, + { + "min_level": 10, + "max_level": 30, + "species": "SPECIES_WAILMER" + }, + { + "min_level": 25, + "max_level": 30, + "species": "SPECIES_WAILMER" + }, + { + "min_level": 30, + "max_level": 35, + "species": "SPECIES_WAILMER" + }, + { + "min_level": 20, + "max_level": 25, + "species": "SPECIES_WAILMER" + }, + { + "min_level": 35, + "max_level": 40, + "species": "SPECIES_WAILMER" + }, + { + "min_level": 40, + "max_level": 45, + "species": "SPECIES_WAILMER" + } + ] + } + }, + { + "map": "MAP_ROUTE111", + "base_label": "Route111_Sapphire", + "land_mons": { + "encounter_rate": 10, + "mons": [ + { + "min_level": 20, + "max_level": 20, + "species": "SPECIES_SANDSHREW" + }, + { + "min_level": 20, + "max_level": 20, + "species": "SPECIES_TRAPINCH" + }, + { + "min_level": 21, + "max_level": 21, + "species": "SPECIES_SANDSHREW" + }, + { + "min_level": 21, + "max_level": 21, + "species": "SPECIES_TRAPINCH" + }, + { + "min_level": 19, + "max_level": 19, + "species": "SPECIES_CACNEA" + }, + { + "min_level": 21, + "max_level": 21, + "species": "SPECIES_CACNEA" + }, + { + "min_level": 19, + "max_level": 19, + "species": "SPECIES_SANDSHREW" + }, + { + "min_level": 19, + "max_level": 19, + "species": "SPECIES_TRAPINCH" + }, + { + "min_level": 20, + "max_level": 20, + "species": "SPECIES_BALTOY" + }, + { + "min_level": 20, + "max_level": 20, + "species": "SPECIES_BALTOY" + }, + { + "min_level": 22, + "max_level": 22, + "species": "SPECIES_BALTOY" + }, + { + "min_level": 22, + "max_level": 22, + "species": "SPECIES_BALTOY" + } + ] + }, + "water_mons": { + "encounter_rate": 4, + "mons": [ + { + "min_level": 20, + "max_level": 30, + "species": "SPECIES_MARILL" + }, + { + "min_level": 10, + "max_level": 20, + "species": "SPECIES_MARILL" + }, + { + "min_level": 30, + "max_level": 35, + "species": "SPECIES_MARILL" + }, + { + "min_level": 5, + "max_level": 10, + "species": "SPECIES_MARILL" + }, + { + "min_level": 20, + "max_level": 30, + "species": "SPECIES_SURSKIT" + } + ] + }, + "rock_smash_mons": { + "encounter_rate": 20, + "mons": [ + { + "min_level": 10, + "max_level": 15, + "species": "SPECIES_GEODUDE" + }, + { + "min_level": 5, + "max_level": 10, + "species": "SPECIES_GEODUDE" + }, + { + "min_level": 15, + "max_level": 20, + "species": "SPECIES_GEODUDE" + }, + { + "min_level": 15, + "max_level": 20, + "species": "SPECIES_GEODUDE" + }, + { + "min_level": 15, + "max_level": 20, + "species": "SPECIES_GEODUDE" + } + ] + }, + "fishing_mons": { + "encounter_rate": 30, + "mons": [ + { + "min_level": 5, + "max_level": 10, + "species": "SPECIES_MAGIKARP" + }, + { + "min_level": 5, + "max_level": 10, + "species": "SPECIES_GOLDEEN" + }, + { + "min_level": 10, + "max_level": 30, + "species": "SPECIES_MAGIKARP" + }, + { + "min_level": 10, + "max_level": 30, + "species": "SPECIES_GOLDEEN" + }, + { + "min_level": 10, + "max_level": 30, + "species": "SPECIES_BARBOACH" + }, + { + "min_level": 25, + "max_level": 30, + "species": "SPECIES_BARBOACH" + }, + { + "min_level": 30, + "max_level": 35, + "species": "SPECIES_BARBOACH" + }, + { + "min_level": 20, + "max_level": 25, + "species": "SPECIES_BARBOACH" + }, + { + "min_level": 35, + "max_level": 40, + "species": "SPECIES_BARBOACH" + }, + { + "min_level": 40, + "max_level": 45, + "species": "SPECIES_BARBOACH" + } + ] + } + }, + { + "map": "MAP_ROUTE112", + "base_label": "Route112_Sapphire", + "land_mons": { + "encounter_rate": 20, + "mons": [ + { + "min_level": 15, + "max_level": 15, + "species": "SPECIES_NUMEL" + }, + { + "min_level": 15, + "max_level": 15, + "species": "SPECIES_NUMEL" + }, + { + "min_level": 15, + "max_level": 15, + "species": "SPECIES_MACHOP" + }, + { + "min_level": 14, + "max_level": 14, + "species": "SPECIES_NUMEL" + }, + { + "min_level": 14, + "max_level": 14, + "species": "SPECIES_NUMEL" + }, + { + "min_level": 14, + "max_level": 14, + "species": "SPECIES_MACHOP" + }, + { + "min_level": 16, + "max_level": 16, + "species": "SPECIES_NUMEL" + }, + { + "min_level": 16, + "max_level": 16, + "species": "SPECIES_MACHOP" + }, + { + "min_level": 16, + "max_level": 16, + "species": "SPECIES_NUMEL" + }, + { + "min_level": 16, + "max_level": 16, + "species": "SPECIES_NUMEL" + }, + { + "min_level": 16, + "max_level": 16, + "species": "SPECIES_NUMEL" + }, + { + "min_level": 16, + "max_level": 16, + "species": "SPECIES_NUMEL" + } + ] + } + }, + { + "map": "MAP_ROUTE113", + "base_label": "Route113_Sapphire", + "land_mons": { + "encounter_rate": 20, + "mons": [ + { + "min_level": 15, + "max_level": 15, + "species": "SPECIES_SPINDA" + }, + { + "min_level": 15, + "max_level": 15, + "species": "SPECIES_SPINDA" + }, + { + "min_level": 15, + "max_level": 15, + "species": "SPECIES_SANDSHREW" + }, + { + "min_level": 14, + "max_level": 14, + "species": "SPECIES_SPINDA" + }, + { + "min_level": 14, + "max_level": 14, + "species": "SPECIES_SPINDA" + }, + { + "min_level": 14, + "max_level": 14, + "species": "SPECIES_SANDSHREW" + }, + { + "min_level": 16, + "max_level": 16, + "species": "SPECIES_SPINDA" + }, + { + "min_level": 16, + "max_level": 16, + "species": "SPECIES_SANDSHREW" + }, + { + "min_level": 16, + "max_level": 16, + "species": "SPECIES_SPINDA" + }, + { + "min_level": 16, + "max_level": 16, + "species": "SPECIES_SKARMORY" + }, + { + "min_level": 16, + "max_level": 16, + "species": "SPECIES_SPINDA" + }, + { + "min_level": 16, + "max_level": 16, + "species": "SPECIES_SKARMORY" + } + ] + } + }, + { + "map": "MAP_ROUTE114", + "base_label": "Route114_Sapphire", + "land_mons": { + "encounter_rate": 20, + "mons": [ + { + "min_level": 16, + "max_level": 16, + "species": "SPECIES_SWABLU" + }, + { + "min_level": 16, + "max_level": 16, + "species": "SPECIES_LOTAD" + }, + { + "min_level": 17, + "max_level": 17, + "species": "SPECIES_SWABLU" + }, + { + "min_level": 15, + "max_level": 15, + "species": "SPECIES_SWABLU" + }, + { + "min_level": 15, + "max_level": 15, + "species": "SPECIES_LOTAD" + }, + { + "min_level": 16, + "max_level": 16, + "species": "SPECIES_SEVIPER" + }, + { + "min_level": 16, + "max_level": 16, + "species": "SPECIES_LOMBRE" + }, + { + "min_level": 18, + "max_level": 18, + "species": "SPECIES_LOMBRE" + }, + { + "min_level": 17, + "max_level": 17, + "species": "SPECIES_SEVIPER" + }, + { + "min_level": 15, + "max_level": 15, + "species": "SPECIES_SEVIPER" + }, + { + "min_level": 17, + "max_level": 17, + "species": "SPECIES_SEVIPER" + }, + { + "min_level": 15, + "max_level": 15, + "species": "SPECIES_SURSKIT" + } + ] + }, + "water_mons": { + "encounter_rate": 4, + "mons": [ + { + "min_level": 20, + "max_level": 30, + "species": "SPECIES_MARILL" + }, + { + "min_level": 10, + "max_level": 20, + "species": "SPECIES_MARILL" + }, + { + "min_level": 30, + "max_level": 35, + "species": "SPECIES_MARILL" + }, + { + "min_level": 5, + "max_level": 10, + "species": "SPECIES_MARILL" + }, + { + "min_level": 20, + "max_level": 30, + "species": "SPECIES_SURSKIT" + } + ] + }, + "rock_smash_mons": { + "encounter_rate": 20, + "mons": [ + { + "min_level": 10, + "max_level": 15, + "species": "SPECIES_GEODUDE" + }, + { + "min_level": 5, + "max_level": 10, + "species": "SPECIES_GEODUDE" + }, + { + "min_level": 15, + "max_level": 20, + "species": "SPECIES_GEODUDE" + }, + { + "min_level": 15, + "max_level": 20, + "species": "SPECIES_GEODUDE" + }, + { + "min_level": 15, + "max_level": 20, + "species": "SPECIES_GEODUDE" + } + ] + }, + "fishing_mons": { + "encounter_rate": 30, + "mons": [ + { + "min_level": 5, + "max_level": 10, + "species": "SPECIES_MAGIKARP" + }, + { + "min_level": 5, + "max_level": 10, + "species": "SPECIES_GOLDEEN" + }, + { + "min_level": 10, + "max_level": 30, + "species": "SPECIES_MAGIKARP" + }, + { + "min_level": 10, + "max_level": 30, + "species": "SPECIES_GOLDEEN" + }, + { + "min_level": 10, + "max_level": 30, + "species": "SPECIES_BARBOACH" + }, + { + "min_level": 25, + "max_level": 30, + "species": "SPECIES_BARBOACH" + }, + { + "min_level": 30, + "max_level": 35, + "species": "SPECIES_BARBOACH" + }, + { + "min_level": 20, + "max_level": 25, + "species": "SPECIES_BARBOACH" + }, + { + "min_level": 35, + "max_level": 40, + "species": "SPECIES_BARBOACH" + }, + { + "min_level": 40, + "max_level": 45, + "species": "SPECIES_BARBOACH" + } + ] + } + }, + { + "map": "MAP_ROUTE115", + "base_label": "Route115_Sapphire", + "land_mons": { + "encounter_rate": 20, + "mons": [ + { + "min_level": 23, + "max_level": 23, + "species": "SPECIES_SWABLU" + }, + { + "min_level": 23, + "max_level": 23, + "species": "SPECIES_TAILLOW" + }, + { + "min_level": 25, + "max_level": 25, + "species": "SPECIES_SWABLU" + }, + { + "min_level": 24, + "max_level": 24, + "species": "SPECIES_TAILLOW" + }, + { + "min_level": 25, + "max_level": 25, + "species": "SPECIES_TAILLOW" + }, + { + "min_level": 25, + "max_level": 25, + "species": "SPECIES_SWELLOW" + }, + { + "min_level": 24, + "max_level": 24, + "species": "SPECIES_JIGGLYPUFF" + }, + { + "min_level": 25, + "max_level": 25, + "species": "SPECIES_JIGGLYPUFF" + }, + { + "min_level": 24, + "max_level": 24, + "species": "SPECIES_WINGULL" + }, + { + "min_level": 24, + "max_level": 24, + "species": "SPECIES_WINGULL" + }, + { + "min_level": 26, + "max_level": 26, + "species": "SPECIES_WINGULL" + }, + { + "min_level": 25, + "max_level": 25, + "species": "SPECIES_WINGULL" + } + ] + }, + "water_mons": { + "encounter_rate": 4, + "mons": [ + { + "min_level": 5, + "max_level": 35, + "species": "SPECIES_TENTACOOL" + }, + { + "min_level": 10, + "max_level": 30, + "species": "SPECIES_WINGULL" + }, + { + "min_level": 15, + "max_level": 25, + "species": "SPECIES_WINGULL" + }, + { + "min_level": 25, + "max_level": 30, + "species": "SPECIES_PELIPPER" + }, + { + "min_level": 25, + "max_level": 30, + "species": "SPECIES_PELIPPER" + } + ] + }, + "fishing_mons": { + "encounter_rate": 30, + "mons": [ + { + "min_level": 5, + "max_level": 10, + "species": "SPECIES_MAGIKARP" + }, + { + "min_level": 5, + "max_level": 10, + "species": "SPECIES_TENTACOOL" + }, + { + "min_level": 10, + "max_level": 30, + "species": "SPECIES_MAGIKARP" + }, + { + "min_level": 10, + "max_level": 30, + "species": "SPECIES_TENTACOOL" + }, + { + "min_level": 10, + "max_level": 30, + "species": "SPECIES_WAILMER" + }, + { + "min_level": 25, + "max_level": 30, + "species": "SPECIES_WAILMER" + }, + { + "min_level": 30, + "max_level": 35, + "species": "SPECIES_WAILMER" + }, + { + "min_level": 20, + "max_level": 25, + "species": "SPECIES_WAILMER" + }, + { + "min_level": 35, + "max_level": 40, + "species": "SPECIES_WAILMER" + }, + { + "min_level": 40, + "max_level": 45, + "species": "SPECIES_WAILMER" + } + ] + } + }, + { + "map": "MAP_ROUTE116", + "base_label": "Route116_Sapphire", + "land_mons": { + "encounter_rate": 20, + "mons": [ + { + "min_level": 6, + "max_level": 6, + "species": "SPECIES_ZIGZAGOON" + }, + { + "min_level": 6, + "max_level": 6, + "species": "SPECIES_WHISMUR" + }, + { + "min_level": 6, + "max_level": 6, + "species": "SPECIES_NINCADA" + }, + { + "min_level": 7, + "max_level": 7, + "species": "SPECIES_WHISMUR" + }, + { + "min_level": 7, + "max_level": 7, + "species": "SPECIES_NINCADA" + }, + { + "min_level": 6, + "max_level": 6, + "species": "SPECIES_TAILLOW" + }, + { + "min_level": 7, + "max_level": 7, + "species": "SPECIES_TAILLOW" + }, + { + "min_level": 8, + "max_level": 8, + "species": "SPECIES_TAILLOW" + }, + { + "min_level": 7, + "max_level": 7, + "species": "SPECIES_ZIGZAGOON" + }, + { + "min_level": 8, + "max_level": 8, + "species": "SPECIES_ZIGZAGOON" + }, + { + "min_level": 7, + "max_level": 7, + "species": "SPECIES_SKITTY" + }, + { + "min_level": 8, + "max_level": 8, + "species": "SPECIES_SKITTY" + } + ] + } + }, + { + "map": "MAP_ROUTE117", + "base_label": "Route117_Sapphire", + "land_mons": { + "encounter_rate": 20, + "mons": [ + { + "min_level": 13, + "max_level": 13, + "species": "SPECIES_ZIGZAGOON" + }, + { + "min_level": 13, + "max_level": 13, + "species": "SPECIES_ROSELIA" + }, + { + "min_level": 14, + "max_level": 14, + "species": "SPECIES_ZIGZAGOON" + }, + { + "min_level": 14, + "max_level": 14, + "species": "SPECIES_ROSELIA" + }, + { + "min_level": 13, + "max_level": 13, + "species": "SPECIES_MARILL" + }, + { + "min_level": 13, + "max_level": 13, + "species": "SPECIES_ODDISH" + }, + { + "min_level": 13, + "max_level": 13, + "species": "SPECIES_VOLBEAT" + }, + { + "min_level": 13, + "max_level": 13, + "species": "SPECIES_VOLBEAT" + }, + { + "min_level": 14, + "max_level": 14, + "species": "SPECIES_VOLBEAT" + }, + { + "min_level": 14, + "max_level": 14, + "species": "SPECIES_VOLBEAT" + }, + { + "min_level": 13, + "max_level": 13, + "species": "SPECIES_ILLUMISE" + }, + { + "min_level": 13, + "max_level": 13, + "species": "SPECIES_SURSKIT" + } + ] + }, + "water_mons": { + "encounter_rate": 4, + "mons": [ + { + "min_level": 20, + "max_level": 30, + "species": "SPECIES_MARILL" + }, + { + "min_level": 10, + "max_level": 20, + "species": "SPECIES_MARILL" + }, + { + "min_level": 30, + "max_level": 35, + "species": "SPECIES_MARILL" + }, + { + "min_level": 5, + "max_level": 10, + "species": "SPECIES_MARILL" + }, + { + "min_level": 20, + "max_level": 30, + "species": "SPECIES_SURSKIT" + } + ] + }, + "fishing_mons": { + "encounter_rate": 30, + "mons": [ + { + "min_level": 5, + "max_level": 10, + "species": "SPECIES_MAGIKARP" + }, + { + "min_level": 5, + "max_level": 10, + "species": "SPECIES_GOLDEEN" + }, + { + "min_level": 10, + "max_level": 30, + "species": "SPECIES_MAGIKARP" + }, + { + "min_level": 10, + "max_level": 30, + "species": "SPECIES_GOLDEEN" + }, + { + "min_level": 10, + "max_level": 30, + "species": "SPECIES_CORPHISH" + }, + { + "min_level": 25, + "max_level": 30, + "species": "SPECIES_CORPHISH" + }, + { + "min_level": 30, + "max_level": 35, + "species": "SPECIES_CORPHISH" + }, + { + "min_level": 20, + "max_level": 25, + "species": "SPECIES_CORPHISH" + }, + { + "min_level": 35, + "max_level": 40, + "species": "SPECIES_CORPHISH" + }, + { + "min_level": 40, + "max_level": 45, + "species": "SPECIES_CORPHISH" + } + ] + } + }, + { + "map": "MAP_ROUTE118", + "base_label": "Route118_Sapphire", + "land_mons": { + "encounter_rate": 20, + "mons": [ + { + "min_level": 24, + "max_level": 24, + "species": "SPECIES_ZIGZAGOON" + }, + { + "min_level": 24, + "max_level": 24, + "species": "SPECIES_ELECTRIKE" + }, + { + "min_level": 26, + "max_level": 26, + "species": "SPECIES_ZIGZAGOON" + }, + { + "min_level": 26, + "max_level": 26, + "species": "SPECIES_ELECTRIKE" + }, + { + "min_level": 26, + "max_level": 26, + "species": "SPECIES_LINOONE" + }, + { + "min_level": 26, + "max_level": 26, + "species": "SPECIES_MANECTRIC" + }, + { + "min_level": 25, + "max_level": 25, + "species": "SPECIES_WINGULL" + }, + { + "min_level": 25, + "max_level": 25, + "species": "SPECIES_WINGULL" + }, + { + "min_level": 26, + "max_level": 26, + "species": "SPECIES_WINGULL" + }, + { + "min_level": 26, + "max_level": 26, + "species": "SPECIES_WINGULL" + }, + { + "min_level": 27, + "max_level": 27, + "species": "SPECIES_WINGULL" + }, + { + "min_level": 25, + "max_level": 25, + "species": "SPECIES_KECLEON" + } + ] + }, + "water_mons": { + "encounter_rate": 4, + "mons": [ + { + "min_level": 5, + "max_level": 35, + "species": "SPECIES_TENTACOOL" + }, + { + "min_level": 10, + "max_level": 30, + "species": "SPECIES_WINGULL" + }, + { + "min_level": 15, + "max_level": 25, + "species": "SPECIES_WINGULL" + }, + { + "min_level": 25, + "max_level": 30, + "species": "SPECIES_PELIPPER" + }, + { + "min_level": 25, + "max_level": 30, + "species": "SPECIES_PELIPPER" + } + ] + }, + "fishing_mons": { + "encounter_rate": 30, + "mons": [ + { + "min_level": 5, + "max_level": 10, + "species": "SPECIES_MAGIKARP" + }, + { + "min_level": 5, + "max_level": 10, + "species": "SPECIES_TENTACOOL" + }, + { + "min_level": 10, + "max_level": 30, + "species": "SPECIES_MAGIKARP" + }, + { + "min_level": 10, + "max_level": 30, + "species": "SPECIES_TENTACOOL" + }, + { + "min_level": 10, + "max_level": 30, + "species": "SPECIES_CARVANHA" + }, + { + "min_level": 30, + "max_level": 35, + "species": "SPECIES_SHARPEDO" + }, + { + "min_level": 30, + "max_level": 35, + "species": "SPECIES_CARVANHA" + }, + { + "min_level": 20, + "max_level": 25, + "species": "SPECIES_CARVANHA" + }, + { + "min_level": 35, + "max_level": 40, + "species": "SPECIES_CARVANHA" + }, + { + "min_level": 40, + "max_level": 45, + "species": "SPECIES_CARVANHA" + } + ] + } + }, + { + "map": "MAP_ROUTE119", + "base_label": "Route119_Sapphire", + "land_mons": { + "encounter_rate": 15, + "mons": [ + { + "min_level": 25, + "max_level": 25, + "species": "SPECIES_ZIGZAGOON" + }, + { + "min_level": 25, + "max_level": 25, + "species": "SPECIES_LINOONE" + }, + { + "min_level": 27, + "max_level": 27, + "species": "SPECIES_ZIGZAGOON" + }, + { + "min_level": 25, + "max_level": 25, + "species": "SPECIES_ODDISH" + }, + { + "min_level": 27, + "max_level": 27, + "species": "SPECIES_LINOONE" + }, + { + "min_level": 26, + "max_level": 26, + "species": "SPECIES_ODDISH" + }, + { + "min_level": 27, + "max_level": 27, + "species": "SPECIES_ODDISH" + }, + { + "min_level": 24, + "max_level": 24, + "species": "SPECIES_ODDISH" + }, + { + "min_level": 25, + "max_level": 25, + "species": "SPECIES_TROPIUS" + }, + { + "min_level": 26, + "max_level": 26, + "species": "SPECIES_TROPIUS" + }, + { + "min_level": 27, + "max_level": 27, + "species": "SPECIES_TROPIUS" + }, + { + "min_level": 25, + "max_level": 25, + "species": "SPECIES_KECLEON" + } + ] + }, + "water_mons": { + "encounter_rate": 4, + "mons": [ + { + "min_level": 5, + "max_level": 35, + "species": "SPECIES_TENTACOOL" + }, + { + "min_level": 10, + "max_level": 30, + "species": "SPECIES_WINGULL" + }, + { + "min_level": 15, + "max_level": 25, + "species": "SPECIES_WINGULL" + }, + { + "min_level": 25, + "max_level": 30, + "species": "SPECIES_PELIPPER" + }, + { + "min_level": 25, + "max_level": 30, + "species": "SPECIES_PELIPPER" + } + ] + }, + "fishing_mons": { + "encounter_rate": 30, + "mons": [ + { + "min_level": 5, + "max_level": 10, + "species": "SPECIES_MAGIKARP" + }, + { + "min_level": 5, + "max_level": 10, + "species": "SPECIES_TENTACOOL" + }, + { + "min_level": 10, + "max_level": 30, + "species": "SPECIES_MAGIKARP" + }, + { + "min_level": 10, + "max_level": 30, + "species": "SPECIES_TENTACOOL" + }, + { + "min_level": 10, + "max_level": 30, + "species": "SPECIES_CARVANHA" + }, + { + "min_level": 25, + "max_level": 30, + "species": "SPECIES_CARVANHA" + }, + { + "min_level": 30, + "max_level": 35, + "species": "SPECIES_CARVANHA" + }, + { + "min_level": 20, + "max_level": 25, + "species": "SPECIES_CARVANHA" + }, + { + "min_level": 35, + "max_level": 40, + "species": "SPECIES_CARVANHA" + }, + { + "min_level": 40, + "max_level": 45, + "species": "SPECIES_CARVANHA" + } + ] + } + }, + { + "map": "MAP_ROUTE120", + "base_label": "Route120_Sapphire", + "land_mons": { + "encounter_rate": 20, + "mons": [ + { + "min_level": 25, + "max_level": 25, + "species": "SPECIES_ZIGZAGOON" + }, + { + "min_level": 25, + "max_level": 25, + "species": "SPECIES_LINOONE" + }, + { + "min_level": 27, + "max_level": 27, + "species": "SPECIES_LINOONE" + }, + { + "min_level": 25, + "max_level": 25, + "species": "SPECIES_ODDISH" + }, + { + "min_level": 25, + "max_level": 25, + "species": "SPECIES_MARILL" + }, + { + "min_level": 26, + "max_level": 26, + "species": "SPECIES_ODDISH" + }, + { + "min_level": 27, + "max_level": 27, + "species": "SPECIES_ODDISH" + }, + { + "min_level": 27, + "max_level": 27, + "species": "SPECIES_MARILL" + }, + { + "min_level": 25, + "max_level": 25, + "species": "SPECIES_ABSOL" + }, + { + "min_level": 27, + "max_level": 27, + "species": "SPECIES_ABSOL" + }, + { + "min_level": 25, + "max_level": 25, + "species": "SPECIES_KECLEON" + }, + { + "min_level": 25, + "max_level": 25, + "species": "SPECIES_SURSKIT" + } + ] + }, + "water_mons": { + "encounter_rate": 4, + "mons": [ + { + "min_level": 20, + "max_level": 30, + "species": "SPECIES_MARILL" + }, + { + "min_level": 10, + "max_level": 20, + "species": "SPECIES_MARILL" + }, + { + "min_level": 30, + "max_level": 35, + "species": "SPECIES_MARILL" + }, + { + "min_level": 5, + "max_level": 10, + "species": "SPECIES_MARILL" + }, + { + "min_level": 20, + "max_level": 30, + "species": "SPECIES_SURSKIT" + } + ] + }, + "fishing_mons": { + "encounter_rate": 30, + "mons": [ + { + "min_level": 5, + "max_level": 10, + "species": "SPECIES_MAGIKARP" + }, + { + "min_level": 5, + "max_level": 10, + "species": "SPECIES_GOLDEEN" + }, + { + "min_level": 10, + "max_level": 30, + "species": "SPECIES_MAGIKARP" + }, + { + "min_level": 10, + "max_level": 30, + "species": "SPECIES_GOLDEEN" + }, + { + "min_level": 10, + "max_level": 30, + "species": "SPECIES_BARBOACH" + }, + { + "min_level": 25, + "max_level": 30, + "species": "SPECIES_BARBOACH" + }, + { + "min_level": 30, + "max_level": 35, + "species": "SPECIES_BARBOACH" + }, + { + "min_level": 20, + "max_level": 25, + "species": "SPECIES_BARBOACH" + }, + { + "min_level": 35, + "max_level": 40, + "species": "SPECIES_BARBOACH" + }, + { + "min_level": 40, + "max_level": 45, + "species": "SPECIES_BARBOACH" + } + ] + } + }, + { + "map": "MAP_ROUTE121", + "base_label": "Route121_Sapphire", + "land_mons": { + "encounter_rate": 20, + "mons": [ + { + "min_level": 26, + "max_level": 26, + "species": "SPECIES_ZIGZAGOON" + }, + { + "min_level": 26, + "max_level": 26, + "species": "SPECIES_SHUPPET" + }, + { + "min_level": 26, + "max_level": 26, + "species": "SPECIES_LINOONE" + }, + { + "min_level": 28, + "max_level": 28, + "species": "SPECIES_SHUPPET" + }, + { + "min_level": 28, + "max_level": 28, + "species": "SPECIES_LINOONE" + }, + { + "min_level": 26, + "max_level": 26, + "species": "SPECIES_ODDISH" + }, + { + "min_level": 28, + "max_level": 28, + "species": "SPECIES_ODDISH" + }, + { + "min_level": 28, + "max_level": 28, + "species": "SPECIES_GLOOM" + }, + { + "min_level": 26, + "max_level": 26, + "species": "SPECIES_WINGULL" + }, + { + "min_level": 27, + "max_level": 27, + "species": "SPECIES_WINGULL" + }, + { + "min_level": 28, + "max_level": 28, + "species": "SPECIES_WINGULL" + }, + { + "min_level": 25, + "max_level": 25, + "species": "SPECIES_KECLEON" + } + ] + }, + "water_mons": { + "encounter_rate": 4, + "mons": [ + { + "min_level": 5, + "max_level": 35, + "species": "SPECIES_TENTACOOL" + }, + { + "min_level": 10, + "max_level": 30, + "species": "SPECIES_WINGULL" + }, + { + "min_level": 15, + "max_level": 25, + "species": "SPECIES_WINGULL" + }, + { + "min_level": 25, + "max_level": 30, + "species": "SPECIES_PELIPPER" + }, + { + "min_level": 25, + "max_level": 30, + "species": "SPECIES_PELIPPER" + } + ] + }, + "fishing_mons": { + "encounter_rate": 30, + "mons": [ + { + "min_level": 5, + "max_level": 10, + "species": "SPECIES_MAGIKARP" + }, + { + "min_level": 5, + "max_level": 10, + "species": "SPECIES_TENTACOOL" + }, + { + "min_level": 10, + "max_level": 30, + "species": "SPECIES_MAGIKARP" + }, + { + "min_level": 10, + "max_level": 30, + "species": "SPECIES_TENTACOOL" + }, + { + "min_level": 10, + "max_level": 30, + "species": "SPECIES_WAILMER" + }, + { + "min_level": 25, + "max_level": 30, + "species": "SPECIES_WAILMER" + }, + { + "min_level": 30, + "max_level": 35, + "species": "SPECIES_WAILMER" + }, + { + "min_level": 20, + "max_level": 25, + "species": "SPECIES_WAILMER" + }, + { + "min_level": 35, + "max_level": 40, + "species": "SPECIES_WAILMER" + }, + { + "min_level": 40, + "max_level": 45, + "species": "SPECIES_WAILMER" + } + ] + } + }, + { + "map": "MAP_ROUTE122", + "base_label": "Route122_Sapphire", + "water_mons": { + "encounter_rate": 4, + "mons": [ + { + "min_level": 5, + "max_level": 35, + "species": "SPECIES_TENTACOOL" + }, + { + "min_level": 10, + "max_level": 30, + "species": "SPECIES_WINGULL" + }, + { + "min_level": 15, + "max_level": 25, + "species": "SPECIES_WINGULL" + }, + { + "min_level": 25, + "max_level": 30, + "species": "SPECIES_PELIPPER" + }, + { + "min_level": 25, + "max_level": 30, + "species": "SPECIES_PELIPPER" + } + ] + }, + "fishing_mons": { + "encounter_rate": 30, + "mons": [ + { + "min_level": 5, + "max_level": 10, + "species": "SPECIES_MAGIKARP" + }, + { + "min_level": 5, + "max_level": 10, + "species": "SPECIES_TENTACOOL" + }, + { + "min_level": 10, + "max_level": 30, + "species": "SPECIES_MAGIKARP" + }, + { + "min_level": 10, + "max_level": 30, + "species": "SPECIES_TENTACOOL" + }, + { + "min_level": 10, + "max_level": 30, + "species": "SPECIES_WAILMER" + }, + { + "min_level": 30, + "max_level": 35, + "species": "SPECIES_SHARPEDO" + }, + { + "min_level": 30, + "max_level": 35, + "species": "SPECIES_WAILMER" + }, + { + "min_level": 25, + "max_level": 30, + "species": "SPECIES_WAILMER" + }, + { + "min_level": 35, + "max_level": 40, + "species": "SPECIES_WAILMER" + }, + { + "min_level": 40, + "max_level": 45, + "species": "SPECIES_WAILMER" + } + ] + } + }, + { + "map": "MAP_ROUTE123", + "base_label": "Route123_Sapphire", + "land_mons": { + "encounter_rate": 20, + "mons": [ + { + "min_level": 26, + "max_level": 26, + "species": "SPECIES_ZIGZAGOON" + }, + { + "min_level": 26, + "max_level": 26, + "species": "SPECIES_SHUPPET" + }, + { + "min_level": 26, + "max_level": 26, + "species": "SPECIES_LINOONE" + }, + { + "min_level": 28, + "max_level": 28, + "species": "SPECIES_SHUPPET" + }, + { + "min_level": 28, + "max_level": 28, + "species": "SPECIES_LINOONE" + }, + { + "min_level": 26, + "max_level": 26, + "species": "SPECIES_ODDISH" + }, + { + "min_level": 28, + "max_level": 28, + "species": "SPECIES_ODDISH" + }, + { + "min_level": 28, + "max_level": 28, + "species": "SPECIES_GLOOM" + }, + { + "min_level": 26, + "max_level": 26, + "species": "SPECIES_WINGULL" + }, + { + "min_level": 27, + "max_level": 27, + "species": "SPECIES_WINGULL" + }, + { + "min_level": 28, + "max_level": 28, + "species": "SPECIES_WINGULL" + }, + { + "min_level": 25, + "max_level": 25, + "species": "SPECIES_KECLEON" + } + ] + }, + "water_mons": { + "encounter_rate": 4, + "mons": [ + { + "min_level": 5, + "max_level": 35, + "species": "SPECIES_TENTACOOL" + }, + { + "min_level": 10, + "max_level": 30, + "species": "SPECIES_WINGULL" + }, + { + "min_level": 15, + "max_level": 25, + "species": "SPECIES_WINGULL" + }, + { + "min_level": 25, + "max_level": 30, + "species": "SPECIES_PELIPPER" + }, + { + "min_level": 25, + "max_level": 30, + "species": "SPECIES_PELIPPER" + } + ] + }, + "fishing_mons": { + "encounter_rate": 30, + "mons": [ + { + "min_level": 5, + "max_level": 10, + "species": "SPECIES_MAGIKARP" + }, + { + "min_level": 5, + "max_level": 10, + "species": "SPECIES_TENTACOOL" + }, + { + "min_level": 10, + "max_level": 30, + "species": "SPECIES_MAGIKARP" + }, + { + "min_level": 10, + "max_level": 30, + "species": "SPECIES_TENTACOOL" + }, + { + "min_level": 10, + "max_level": 30, + "species": "SPECIES_WAILMER" + }, + { + "min_level": 25, + "max_level": 30, + "species": "SPECIES_WAILMER" + }, + { + "min_level": 30, + "max_level": 35, + "species": "SPECIES_WAILMER" + }, + { + "min_level": 20, + "max_level": 25, + "species": "SPECIES_WAILMER" + }, + { + "min_level": 35, + "max_level": 40, + "species": "SPECIES_WAILMER" + }, + { + "min_level": 40, + "max_level": 45, + "species": "SPECIES_WAILMER" + } + ] + } + }, + { + "map": "MAP_ROUTE124", + "base_label": "Route124_Sapphire", + "water_mons": { + "encounter_rate": 4, + "mons": [ + { + "min_level": 5, + "max_level": 35, + "species": "SPECIES_TENTACOOL" + }, + { + "min_level": 10, + "max_level": 30, + "species": "SPECIES_WINGULL" + }, + { + "min_level": 15, + "max_level": 25, + "species": "SPECIES_WINGULL" + }, + { + "min_level": 25, + "max_level": 30, + "species": "SPECIES_PELIPPER" + }, + { + "min_level": 25, + "max_level": 30, + "species": "SPECIES_PELIPPER" + } + ] + }, + "fishing_mons": { + "encounter_rate": 30, + "mons": [ + { + "min_level": 5, + "max_level": 10, + "species": "SPECIES_MAGIKARP" + }, + { + "min_level": 5, + "max_level": 10, + "species": "SPECIES_TENTACOOL" + }, + { + "min_level": 10, + "max_level": 30, + "species": "SPECIES_MAGIKARP" + }, + { + "min_level": 10, + "max_level": 30, + "species": "SPECIES_TENTACOOL" + }, + { + "min_level": 10, + "max_level": 30, + "species": "SPECIES_WAILMER" + }, + { + "min_level": 30, + "max_level": 35, + "species": "SPECIES_SHARPEDO" + }, + { + "min_level": 30, + "max_level": 35, + "species": "SPECIES_WAILMER" + }, + { + "min_level": 25, + "max_level": 30, + "species": "SPECIES_WAILMER" + }, + { + "min_level": 35, + "max_level": 40, + "species": "SPECIES_WAILMER" + }, + { + "min_level": 40, + "max_level": 45, + "species": "SPECIES_WAILMER" + } + ] + } + }, + { + "map": "MAP_ROUTE125", + "base_label": "Route125_Sapphire", + "water_mons": { + "encounter_rate": 4, + "mons": [ + { + "min_level": 5, + "max_level": 35, + "species": "SPECIES_TENTACOOL" + }, + { + "min_level": 10, + "max_level": 30, + "species": "SPECIES_WINGULL" + }, + { + "min_level": 15, + "max_level": 25, + "species": "SPECIES_WINGULL" + }, + { + "min_level": 25, + "max_level": 30, + "species": "SPECIES_PELIPPER" + }, + { + "min_level": 25, + "max_level": 30, + "species": "SPECIES_PELIPPER" + } + ] + }, + "fishing_mons": { + "encounter_rate": 30, + "mons": [ + { + "min_level": 5, + "max_level": 10, + "species": "SPECIES_MAGIKARP" + }, + { + "min_level": 5, + "max_level": 10, + "species": "SPECIES_TENTACOOL" + }, + { + "min_level": 10, + "max_level": 30, + "species": "SPECIES_MAGIKARP" + }, + { + "min_level": 10, + "max_level": 30, + "species": "SPECIES_TENTACOOL" + }, + { + "min_level": 10, + "max_level": 30, + "species": "SPECIES_WAILMER" + }, + { + "min_level": 30, + "max_level": 35, + "species": "SPECIES_SHARPEDO" + }, + { + "min_level": 30, + "max_level": 35, + "species": "SPECIES_WAILMER" + }, + { + "min_level": 25, + "max_level": 30, + "species": "SPECIES_WAILMER" + }, + { + "min_level": 35, + "max_level": 40, + "species": "SPECIES_WAILMER" + }, + { + "min_level": 40, + "max_level": 45, + "species": "SPECIES_WAILMER" + } + ] + } + }, + { + "map": "MAP_ROUTE126", + "base_label": "Route126_Sapphire", + "water_mons": { + "encounter_rate": 4, + "mons": [ + { + "min_level": 5, + "max_level": 35, + "species": "SPECIES_TENTACOOL" + }, + { + "min_level": 10, + "max_level": 30, + "species": "SPECIES_WINGULL" + }, + { + "min_level": 15, + "max_level": 25, + "species": "SPECIES_WINGULL" + }, + { + "min_level": 25, + "max_level": 30, + "species": "SPECIES_PELIPPER" + }, + { + "min_level": 25, + "max_level": 30, + "species": "SPECIES_PELIPPER" + } + ] + }, + "fishing_mons": { + "encounter_rate": 30, + "mons": [ + { + "min_level": 5, + "max_level": 10, + "species": "SPECIES_MAGIKARP" + }, + { + "min_level": 5, + "max_level": 10, + "species": "SPECIES_TENTACOOL" + }, + { + "min_level": 10, + "max_level": 30, + "species": "SPECIES_MAGIKARP" + }, + { + "min_level": 10, + "max_level": 30, + "species": "SPECIES_TENTACOOL" + }, + { + "min_level": 10, + "max_level": 30, + "species": "SPECIES_WAILMER" + }, + { + "min_level": 30, + "max_level": 35, + "species": "SPECIES_SHARPEDO" + }, + { + "min_level": 30, + "max_level": 35, + "species": "SPECIES_WAILMER" + }, + { + "min_level": 25, + "max_level": 30, + "species": "SPECIES_WAILMER" + }, + { + "min_level": 35, + "max_level": 40, + "species": "SPECIES_WAILMER" + }, + { + "min_level": 40, + "max_level": 45, + "species": "SPECIES_WAILMER" + } + ] + } + }, + { + "map": "MAP_ROUTE127", + "base_label": "Route127_Sapphire", + "water_mons": { + "encounter_rate": 4, + "mons": [ + { + "min_level": 5, + "max_level": 35, + "species": "SPECIES_TENTACOOL" + }, + { + "min_level": 10, + "max_level": 30, + "species": "SPECIES_WINGULL" + }, + { + "min_level": 15, + "max_level": 25, + "species": "SPECIES_WINGULL" + }, + { + "min_level": 25, + "max_level": 30, + "species": "SPECIES_PELIPPER" + }, + { + "min_level": 25, + "max_level": 30, + "species": "SPECIES_PELIPPER" + } + ] + }, + "fishing_mons": { + "encounter_rate": 30, + "mons": [ + { + "min_level": 5, + "max_level": 10, + "species": "SPECIES_MAGIKARP" + }, + { + "min_level": 5, + "max_level": 10, + "species": "SPECIES_TENTACOOL" + }, + { + "min_level": 10, + "max_level": 30, + "species": "SPECIES_MAGIKARP" + }, + { + "min_level": 10, + "max_level": 30, + "species": "SPECIES_TENTACOOL" + }, + { + "min_level": 10, + "max_level": 30, + "species": "SPECIES_WAILMER" + }, + { + "min_level": 30, + "max_level": 35, + "species": "SPECIES_SHARPEDO" + }, + { + "min_level": 30, + "max_level": 35, + "species": "SPECIES_WAILMER" + }, + { + "min_level": 25, + "max_level": 30, + "species": "SPECIES_WAILMER" + }, + { + "min_level": 35, + "max_level": 40, + "species": "SPECIES_WAILMER" + }, + { + "min_level": 40, + "max_level": 45, + "species": "SPECIES_WAILMER" + } + ] + } + }, + { + "map": "MAP_ROUTE128", + "base_label": "Route128_Sapphire", + "water_mons": { + "encounter_rate": 4, + "mons": [ + { + "min_level": 5, + "max_level": 35, + "species": "SPECIES_TENTACOOL" + }, + { + "min_level": 10, + "max_level": 30, + "species": "SPECIES_WINGULL" + }, + { + "min_level": 15, + "max_level": 25, + "species": "SPECIES_WINGULL" + }, + { + "min_level": 25, + "max_level": 30, + "species": "SPECIES_PELIPPER" + }, + { + "min_level": 25, + "max_level": 30, + "species": "SPECIES_PELIPPER" + } + ] + }, + "fishing_mons": { + "encounter_rate": 30, + "mons": [ + { + "min_level": 5, + "max_level": 10, + "species": "SPECIES_MAGIKARP" + }, + { + "min_level": 5, + "max_level": 10, + "species": "SPECIES_TENTACOOL" + }, + { + "min_level": 10, + "max_level": 30, + "species": "SPECIES_MAGIKARP" + }, + { + "min_level": 10, + "max_level": 30, + "species": "SPECIES_LUVDISC" + }, + { + "min_level": 10, + "max_level": 30, + "species": "SPECIES_WAILMER" + }, + { + "min_level": 30, + "max_level": 35, + "species": "SPECIES_LUVDISC" + }, + { + "min_level": 30, + "max_level": 35, + "species": "SPECIES_WAILMER" + }, + { + "min_level": 30, + "max_level": 35, + "species": "SPECIES_CORSOLA" + }, + { + "min_level": 35, + "max_level": 40, + "species": "SPECIES_WAILMER" + }, + { + "min_level": 40, + "max_level": 45, + "species": "SPECIES_WAILMER" + } + ] + } + }, + { + "map": "MAP_ROUTE129", + "base_label": "Route129_Sapphire", + "water_mons": { + "encounter_rate": 4, + "mons": [ + { + "min_level": 5, + "max_level": 35, + "species": "SPECIES_TENTACOOL" + }, + { + "min_level": 10, + "max_level": 30, + "species": "SPECIES_WINGULL" + }, + { + "min_level": 15, + "max_level": 25, + "species": "SPECIES_WINGULL" + }, + { + "min_level": 25, + "max_level": 30, + "species": "SPECIES_PELIPPER" + }, + { + "min_level": 25, + "max_level": 30, + "species": "SPECIES_WAILORD" + } + ] + }, + "fishing_mons": { + "encounter_rate": 30, + "mons": [ + { + "min_level": 5, + "max_level": 10, + "species": "SPECIES_MAGIKARP" + }, + { + "min_level": 5, + "max_level": 10, + "species": "SPECIES_TENTACOOL" + }, + { + "min_level": 10, + "max_level": 30, + "species": "SPECIES_MAGIKARP" + }, + { + "min_level": 10, + "max_level": 30, + "species": "SPECIES_TENTACOOL" + }, + { + "min_level": 10, + "max_level": 30, + "species": "SPECIES_WAILMER" + }, + { + "min_level": 30, + "max_level": 35, + "species": "SPECIES_SHARPEDO" + }, + { + "min_level": 30, + "max_level": 35, + "species": "SPECIES_WAILMER" + }, + { + "min_level": 25, + "max_level": 30, + "species": "SPECIES_WAILMER" + }, + { + "min_level": 35, + "max_level": 40, + "species": "SPECIES_WAILMER" + }, + { + "min_level": 40, + "max_level": 45, + "species": "SPECIES_WAILMER" + } + ] + } + }, + { + "map": "MAP_ROUTE130", + "base_label": "Route130_Sapphire", + "land_mons": { + "encounter_rate": 20, + "mons": [ + { + "min_level": 30, + "max_level": 30, + "species": "SPECIES_WYNAUT" + }, + { + "min_level": 35, + "max_level": 35, + "species": "SPECIES_WYNAUT" + }, + { + "min_level": 25, + "max_level": 25, + "species": "SPECIES_WYNAUT" + }, + { + "min_level": 40, + "max_level": 40, + "species": "SPECIES_WYNAUT" + }, + { + "min_level": 20, + "max_level": 20, + "species": "SPECIES_WYNAUT" + }, + { + "min_level": 45, + "max_level": 45, + "species": "SPECIES_WYNAUT" + }, + { + "min_level": 15, + "max_level": 15, + "species": "SPECIES_WYNAUT" + }, + { + "min_level": 50, + "max_level": 50, + "species": "SPECIES_WYNAUT" + }, + { + "min_level": 10, + "max_level": 10, + "species": "SPECIES_WYNAUT" + }, + { + "min_level": 5, + "max_level": 5, + "species": "SPECIES_WYNAUT" + }, + { + "min_level": 10, + "max_level": 10, + "species": "SPECIES_WYNAUT" + }, + { + "min_level": 5, + "max_level": 5, + "species": "SPECIES_WYNAUT" + } + ] + }, + "water_mons": { + "encounter_rate": 4, + "mons": [ + { + "min_level": 5, + "max_level": 35, + "species": "SPECIES_TENTACOOL" + }, + { + "min_level": 10, + "max_level": 30, + "species": "SPECIES_WINGULL" + }, + { + "min_level": 15, + "max_level": 25, + "species": "SPECIES_WINGULL" + }, + { + "min_level": 25, + "max_level": 30, + "species": "SPECIES_PELIPPER" + }, + { + "min_level": 25, + "max_level": 30, + "species": "SPECIES_PELIPPER" + } + ] + }, + "fishing_mons": { + "encounter_rate": 30, + "mons": [ + { + "min_level": 5, + "max_level": 10, + "species": "SPECIES_MAGIKARP" + }, + { + "min_level": 5, + "max_level": 10, + "species": "SPECIES_TENTACOOL" + }, + { + "min_level": 10, + "max_level": 30, + "species": "SPECIES_MAGIKARP" + }, + { + "min_level": 10, + "max_level": 30, + "species": "SPECIES_TENTACOOL" + }, + { + "min_level": 10, + "max_level": 30, + "species": "SPECIES_WAILMER" + }, + { + "min_level": 30, + "max_level": 35, + "species": "SPECIES_SHARPEDO" + }, + { + "min_level": 30, + "max_level": 35, + "species": "SPECIES_WAILMER" + }, + { + "min_level": 25, + "max_level": 30, + "species": "SPECIES_WAILMER" + }, + { + "min_level": 35, + "max_level": 40, + "species": "SPECIES_WAILMER" + }, + { + "min_level": 40, + "max_level": 45, + "species": "SPECIES_WAILMER" + } + ] + } + }, + { + "map": "MAP_ROUTE131", + "base_label": "Route131_Sapphire", + "water_mons": { + "encounter_rate": 4, + "mons": [ + { + "min_level": 5, + "max_level": 35, + "species": "SPECIES_TENTACOOL" + }, + { + "min_level": 10, + "max_level": 30, + "species": "SPECIES_WINGULL" + }, + { + "min_level": 15, + "max_level": 25, + "species": "SPECIES_WINGULL" + }, + { + "min_level": 25, + "max_level": 30, + "species": "SPECIES_PELIPPER" + }, + { + "min_level": 25, + "max_level": 30, + "species": "SPECIES_PELIPPER" + } + ] + }, + "fishing_mons": { + "encounter_rate": 30, + "mons": [ + { + "min_level": 5, + "max_level": 10, + "species": "SPECIES_MAGIKARP" + }, + { + "min_level": 5, + "max_level": 10, + "species": "SPECIES_TENTACOOL" + }, + { + "min_level": 10, + "max_level": 30, + "species": "SPECIES_MAGIKARP" + }, + { + "min_level": 10, + "max_level": 30, + "species": "SPECIES_TENTACOOL" + }, + { + "min_level": 10, + "max_level": 30, + "species": "SPECIES_WAILMER" + }, + { + "min_level": 30, + "max_level": 35, + "species": "SPECIES_SHARPEDO" + }, + { + "min_level": 30, + "max_level": 35, + "species": "SPECIES_WAILMER" + }, + { + "min_level": 25, + "max_level": 30, + "species": "SPECIES_WAILMER" + }, + { + "min_level": 35, + "max_level": 40, + "species": "SPECIES_WAILMER" + }, + { + "min_level": 40, + "max_level": 45, + "species": "SPECIES_WAILMER" + } + ] + } + }, + { + "map": "MAP_ROUTE132", + "base_label": "Route132_Sapphire", + "water_mons": { + "encounter_rate": 4, + "mons": [ + { + "min_level": 5, + "max_level": 35, + "species": "SPECIES_TENTACOOL" + }, + { + "min_level": 10, + "max_level": 30, + "species": "SPECIES_WINGULL" + }, + { + "min_level": 15, + "max_level": 25, + "species": "SPECIES_WINGULL" + }, + { + "min_level": 25, + "max_level": 30, + "species": "SPECIES_PELIPPER" + }, + { + "min_level": 25, + "max_level": 30, + "species": "SPECIES_PELIPPER" + } + ] + }, + "fishing_mons": { + "encounter_rate": 30, + "mons": [ + { + "min_level": 5, + "max_level": 10, + "species": "SPECIES_MAGIKARP" + }, + { + "min_level": 5, + "max_level": 10, + "species": "SPECIES_TENTACOOL" + }, + { + "min_level": 10, + "max_level": 30, + "species": "SPECIES_MAGIKARP" + }, + { + "min_level": 10, + "max_level": 30, + "species": "SPECIES_TENTACOOL" + }, + { + "min_level": 10, + "max_level": 30, + "species": "SPECIES_WAILMER" + }, + { + "min_level": 30, + "max_level": 35, + "species": "SPECIES_SHARPEDO" + }, + { + "min_level": 30, + "max_level": 35, + "species": "SPECIES_WAILMER" + }, + { + "min_level": 25, + "max_level": 30, + "species": "SPECIES_HORSEA" + }, + { + "min_level": 35, + "max_level": 40, + "species": "SPECIES_WAILMER" + }, + { + "min_level": 40, + "max_level": 45, + "species": "SPECIES_WAILMER" + } + ] + } + }, + { + "map": "MAP_ROUTE133", + "base_label": "Route133_Sapphire", + "water_mons": { + "encounter_rate": 4, + "mons": [ + { + "min_level": 5, + "max_level": 35, + "species": "SPECIES_TENTACOOL" + }, + { + "min_level": 10, + "max_level": 30, + "species": "SPECIES_WINGULL" + }, + { + "min_level": 15, + "max_level": 25, + "species": "SPECIES_WINGULL" + }, + { + "min_level": 25, + "max_level": 30, + "species": "SPECIES_PELIPPER" + }, + { + "min_level": 25, + "max_level": 30, + "species": "SPECIES_PELIPPER" + } + ] + }, + "fishing_mons": { + "encounter_rate": 30, + "mons": [ + { + "min_level": 5, + "max_level": 10, + "species": "SPECIES_MAGIKARP" + }, + { + "min_level": 5, + "max_level": 10, + "species": "SPECIES_TENTACOOL" + }, + { + "min_level": 10, + "max_level": 30, + "species": "SPECIES_MAGIKARP" + }, + { + "min_level": 10, + "max_level": 30, + "species": "SPECIES_TENTACOOL" + }, + { + "min_level": 10, + "max_level": 30, + "species": "SPECIES_WAILMER" + }, + { + "min_level": 30, + "max_level": 35, + "species": "SPECIES_SHARPEDO" + }, + { + "min_level": 30, + "max_level": 35, + "species": "SPECIES_WAILMER" + }, + { + "min_level": 25, + "max_level": 30, + "species": "SPECIES_HORSEA" + }, + { + "min_level": 35, + "max_level": 40, + "species": "SPECIES_WAILMER" + }, + { + "min_level": 40, + "max_level": 45, + "species": "SPECIES_WAILMER" + } + ] + } + }, + { + "map": "MAP_ROUTE134", + "base_label": "Route134_Sapphire", + "water_mons": { + "encounter_rate": 4, + "mons": [ + { + "min_level": 5, + "max_level": 35, + "species": "SPECIES_TENTACOOL" + }, + { + "min_level": 10, + "max_level": 30, + "species": "SPECIES_WINGULL" + }, + { + "min_level": 15, + "max_level": 25, + "species": "SPECIES_WINGULL" + }, + { + "min_level": 25, + "max_level": 30, + "species": "SPECIES_PELIPPER" + }, + { + "min_level": 25, + "max_level": 30, + "species": "SPECIES_PELIPPER" + } + ] + }, + "fishing_mons": { + "encounter_rate": 30, + "mons": [ + { + "min_level": 5, + "max_level": 10, + "species": "SPECIES_MAGIKARP" + }, + { + "min_level": 5, + "max_level": 10, + "species": "SPECIES_TENTACOOL" + }, + { + "min_level": 10, + "max_level": 30, + "species": "SPECIES_MAGIKARP" + }, + { + "min_level": 10, + "max_level": 30, + "species": "SPECIES_TENTACOOL" + }, + { + "min_level": 10, + "max_level": 30, + "species": "SPECIES_WAILMER" + }, + { + "min_level": 30, + "max_level": 35, + "species": "SPECIES_SHARPEDO" + }, + { + "min_level": 30, + "max_level": 35, + "species": "SPECIES_WAILMER" + }, + { + "min_level": 25, + "max_level": 30, + "species": "SPECIES_HORSEA" + }, + { + "min_level": 35, + "max_level": 40, + "species": "SPECIES_WAILMER" + }, + { + "min_level": 40, + "max_level": 45, + "species": "SPECIES_WAILMER" + } + ] + } + }, + { + "map": "MAP_SAFARI_ZONE_NORTHWEST", + "base_label": "SafariZone_Northwest_Sapphire", + "land_mons": { + "encounter_rate": 25, + "mons": [ + { + "min_level": 27, + "max_level": 27, + "species": "SPECIES_RHYHORN" + }, + { + "min_level": 27, + "max_level": 27, + "species": "SPECIES_ODDISH" + }, + { + "min_level": 29, + "max_level": 29, + "species": "SPECIES_RHYHORN" + }, + { + "min_level": 29, + "max_level": 29, + "species": "SPECIES_ODDISH" + }, + { + "min_level": 27, + "max_level": 27, + "species": "SPECIES_DODUO" + }, + { + "min_level": 29, + "max_level": 29, + "species": "SPECIES_GLOOM" + }, + { + "min_level": 31, + "max_level": 31, + "species": "SPECIES_GLOOM" + }, + { + "min_level": 29, + "max_level": 29, + "species": "SPECIES_DODUO" + }, + { + "min_level": 29, + "max_level": 29, + "species": "SPECIES_DODRIO" + }, + { + "min_level": 27, + "max_level": 27, + "species": "SPECIES_PINSIR" + }, + { + "min_level": 31, + "max_level": 31, + "species": "SPECIES_DODRIO" + }, + { + "min_level": 29, + "max_level": 29, + "species": "SPECIES_PINSIR" + } + ] + }, + "water_mons": { + "encounter_rate": 9, + "mons": [ + { + "min_level": 20, + "max_level": 30, + "species": "SPECIES_PSYDUCK" + }, + { + "min_level": 20, + "max_level": 30, + "species": "SPECIES_PSYDUCK" + }, + { + "min_level": 30, + "max_level": 35, + "species": "SPECIES_PSYDUCK" + }, + { + "min_level": 30, + "max_level": 35, + "species": "SPECIES_GOLDUCK" + }, + { + "min_level": 25, + "max_level": 40, + "species": "SPECIES_GOLDUCK" + } + ] + }, + "fishing_mons": { + "encounter_rate": 35, + "mons": [ + { + "min_level": 5, + "max_level": 10, + "species": "SPECIES_MAGIKARP" + }, + { + "min_level": 5, + "max_level": 10, + "species": "SPECIES_GOLDEEN" + }, + { + "min_level": 10, + "max_level": 30, + "species": "SPECIES_MAGIKARP" + }, + { + "min_level": 10, + "max_level": 25, + "species": "SPECIES_GOLDEEN" + }, + { + "min_level": 10, + "max_level": 30, + "species": "SPECIES_GOLDEEN" + }, + { + "min_level": 25, + "max_level": 30, + "species": "SPECIES_GOLDEEN" + }, + { + "min_level": 30, + "max_level": 35, + "species": "SPECIES_GOLDEEN" + }, + { + "min_level": 30, + "max_level": 35, + "species": "SPECIES_SEAKING" + }, + { + "min_level": 35, + "max_level": 40, + "species": "SPECIES_SEAKING" + }, + { + "min_level": 25, + "max_level": 30, + "species": "SPECIES_SEAKING" + } + ] + } + }, + { + "map": "MAP_SAFARI_ZONE_NORTHEAST", + "base_label": "SafariZone_Northeast_Sapphire", + "land_mons": { + "encounter_rate": 25, + "mons": [ + { + "min_level": 27, + "max_level": 27, + "species": "SPECIES_PHANPY" + }, + { + "min_level": 27, + "max_level": 27, + "species": "SPECIES_ODDISH" + }, + { + "min_level": 29, + "max_level": 29, + "species": "SPECIES_PHANPY" + }, + { + "min_level": 29, + "max_level": 29, + "species": "SPECIES_ODDISH" + }, + { + "min_level": 27, + "max_level": 27, + "species": "SPECIES_NATU" + }, + { + "min_level": 29, + "max_level": 29, + "species": "SPECIES_GLOOM" + }, + { + "min_level": 31, + "max_level": 31, + "species": "SPECIES_GLOOM" + }, + { + "min_level": 29, + "max_level": 29, + "species": "SPECIES_NATU" + }, + { + "min_level": 29, + "max_level": 29, + "species": "SPECIES_XATU" + }, + { + "min_level": 27, + "max_level": 27, + "species": "SPECIES_HERACROSS" + }, + { + "min_level": 31, + "max_level": 31, + "species": "SPECIES_XATU" + }, + { + "min_level": 29, + "max_level": 29, + "species": "SPECIES_HERACROSS" + } + ] + }, + "rock_smash_mons": { + "encounter_rate": 25, + "mons": [ + { + "min_level": 10, + "max_level": 15, + "species": "SPECIES_GEODUDE" + }, + { + "min_level": 5, + "max_level": 10, + "species": "SPECIES_GEODUDE" + }, + { + "min_level": 15, + "max_level": 20, + "species": "SPECIES_GEODUDE" + }, + { + "min_level": 20, + "max_level": 25, + "species": "SPECIES_GEODUDE" + }, + { + "min_level": 25, + "max_level": 30, + "species": "SPECIES_GEODUDE" + } + ] + } + }, + { + "map": "MAP_SAFARI_ZONE_SOUTHWEST", + "base_label": "SafariZone_Southwest_Sapphire", + "land_mons": { + "encounter_rate": 25, + "mons": [ + { + "min_level": 25, + "max_level": 25, + "species": "SPECIES_ODDISH" + }, + { + "min_level": 27, + "max_level": 27, + "species": "SPECIES_ODDISH" + }, + { + "min_level": 25, + "max_level": 25, + "species": "SPECIES_GIRAFARIG" + }, + { + "min_level": 27, + "max_level": 27, + "species": "SPECIES_GIRAFARIG" + }, + { + "min_level": 25, + "max_level": 25, + "species": "SPECIES_NATU" + }, + { + "min_level": 27, + "max_level": 27, + "species": "SPECIES_DODUO" + }, + { + "min_level": 25, + "max_level": 25, + "species": "SPECIES_GLOOM" + }, + { + "min_level": 27, + "max_level": 27, + "species": "SPECIES_WOBBUFFET" + }, + { + "min_level": 25, + "max_level": 25, + "species": "SPECIES_PIKACHU" + }, + { + "min_level": 27, + "max_level": 27, + "species": "SPECIES_WOBBUFFET" + }, + { + "min_level": 27, + "max_level": 27, + "species": "SPECIES_PIKACHU" + }, + { + "min_level": 29, + "max_level": 29, + "species": "SPECIES_WOBBUFFET" + } + ] + }, + "water_mons": { + "encounter_rate": 9, + "mons": [ + { + "min_level": 20, + "max_level": 30, + "species": "SPECIES_PSYDUCK" + }, + { + "min_level": 20, + "max_level": 30, + "species": "SPECIES_PSYDUCK" + }, + { + "min_level": 30, + "max_level": 35, + "species": "SPECIES_PSYDUCK" + }, + { + "min_level": 30, + "max_level": 35, + "species": "SPECIES_PSYDUCK" + }, + { + "min_level": 30, + "max_level": 35, + "species": "SPECIES_PSYDUCK" + } + ] + }, + "fishing_mons": { + "encounter_rate": 35, + "mons": [ + { + "min_level": 5, + "max_level": 10, + "species": "SPECIES_MAGIKARP" + }, + { + "min_level": 5, + "max_level": 10, + "species": "SPECIES_GOLDEEN" + }, + { + "min_level": 10, + "max_level": 30, + "species": "SPECIES_MAGIKARP" + }, + { + "min_level": 10, + "max_level": 25, + "species": "SPECIES_GOLDEEN" + }, + { + "min_level": 10, + "max_level": 30, + "species": "SPECIES_GOLDEEN" + }, + { + "min_level": 25, + "max_level": 30, + "species": "SPECIES_GOLDEEN" + }, + { + "min_level": 30, + "max_level": 35, + "species": "SPECIES_GOLDEEN" + }, + { + "min_level": 30, + "max_level": 35, + "species": "SPECIES_SEAKING" + }, + { + "min_level": 35, + "max_level": 40, + "species": "SPECIES_SEAKING" + }, + { + "min_level": 25, + "max_level": 30, + "species": "SPECIES_SEAKING" + } + ] + } + }, + { + "map": "MAP_SAFARI_ZONE_SOUTHEAST", + "base_label": "SafariZone_Southeast_Sapphire", + "land_mons": { + "encounter_rate": 25, + "mons": [ + { + "min_level": 25, + "max_level": 25, + "species": "SPECIES_ODDISH" + }, + { + "min_level": 27, + "max_level": 27, + "species": "SPECIES_ODDISH" + }, + { + "min_level": 25, + "max_level": 25, + "species": "SPECIES_GIRAFARIG" + }, + { + "min_level": 27, + "max_level": 27, + "species": "SPECIES_GIRAFARIG" + }, + { + "min_level": 25, + "max_level": 25, + "species": "SPECIES_NATU" + }, + { + "min_level": 25, + "max_level": 25, + "species": "SPECIES_DODUO" + }, + { + "min_level": 25, + "max_level": 25, + "species": "SPECIES_GLOOM" + }, + { + "min_level": 27, + "max_level": 27, + "species": "SPECIES_WOBBUFFET" + }, + { + "min_level": 25, + "max_level": 25, + "species": "SPECIES_PIKACHU" + }, + { + "min_level": 27, + "max_level": 27, + "species": "SPECIES_WOBBUFFET" + }, + { + "min_level": 27, + "max_level": 27, + "species": "SPECIES_PIKACHU" + }, + { + "min_level": 29, + "max_level": 29, + "species": "SPECIES_WOBBUFFET" + } + ] + } + }, + { + "map": "MAP_DEWFORD_TOWN", + "base_label": "DewfordTown_Sapphire", + "water_mons": { + "encounter_rate": 4, + "mons": [ + { + "min_level": 5, + "max_level": 35, + "species": "SPECIES_TENTACOOL" + }, + { + "min_level": 10, + "max_level": 30, + "species": "SPECIES_WINGULL" + }, + { + "min_level": 15, + "max_level": 25, + "species": "SPECIES_WINGULL" + }, + { + "min_level": 25, + "max_level": 30, + "species": "SPECIES_PELIPPER" + }, + { + "min_level": 25, + "max_level": 30, + "species": "SPECIES_PELIPPER" + } + ] + }, + "fishing_mons": { + "encounter_rate": 10, + "mons": [ + { + "min_level": 5, + "max_level": 10, + "species": "SPECIES_MAGIKARP" + }, + { + "min_level": 5, + "max_level": 10, + "species": "SPECIES_TENTACOOL" + }, + { + "min_level": 10, + "max_level": 30, + "species": "SPECIES_MAGIKARP" + }, + { + "min_level": 10, + "max_level": 30, + "species": "SPECIES_TENTACOOL" + }, + { + "min_level": 10, + "max_level": 30, + "species": "SPECIES_WAILMER" + }, + { + "min_level": 25, + "max_level": 30, + "species": "SPECIES_WAILMER" + }, + { + "min_level": 30, + "max_level": 35, + "species": "SPECIES_WAILMER" + }, + { + "min_level": 20, + "max_level": 25, + "species": "SPECIES_WAILMER" + }, + { + "min_level": 35, + "max_level": 40, + "species": "SPECIES_WAILMER" + }, + { + "min_level": 40, + "max_level": 45, + "species": "SPECIES_WAILMER" + } + ] + } + }, + { + "map": "MAP_PACIFIDLOG_TOWN", + "base_label": "PacifidlogTown_Sapphire", + "water_mons": { + "encounter_rate": 4, + "mons": [ + { + "min_level": 5, + "max_level": 35, + "species": "SPECIES_TENTACOOL" + }, + { + "min_level": 10, + "max_level": 30, + "species": "SPECIES_WINGULL" + }, + { + "min_level": 15, + "max_level": 25, + "species": "SPECIES_WINGULL" + }, + { + "min_level": 25, + "max_level": 30, + "species": "SPECIES_PELIPPER" + }, + { + "min_level": 25, + "max_level": 30, + "species": "SPECIES_PELIPPER" + } + ] + }, + "fishing_mons": { + "encounter_rate": 10, + "mons": [ + { + "min_level": 5, + "max_level": 10, + "species": "SPECIES_MAGIKARP" + }, + { + "min_level": 5, + "max_level": 10, + "species": "SPECIES_TENTACOOL" + }, + { + "min_level": 10, + "max_level": 30, + "species": "SPECIES_MAGIKARP" + }, + { + "min_level": 10, + "max_level": 30, + "species": "SPECIES_TENTACOOL" + }, + { + "min_level": 10, + "max_level": 30, + "species": "SPECIES_WAILMER" + }, + { + "min_level": 30, + "max_level": 35, + "species": "SPECIES_SHARPEDO" + }, + { + "min_level": 30, + "max_level": 35, + "species": "SPECIES_WAILMER" + }, + { + "min_level": 25, + "max_level": 30, + "species": "SPECIES_WAILMER" + }, + { + "min_level": 35, + "max_level": 40, + "species": "SPECIES_WAILMER" + }, + { + "min_level": 40, + "max_level": 45, + "species": "SPECIES_WAILMER" + } + ] + } + }, + { + "map": "MAP_UNDERWATER1", + "base_label": "Underwater1_Sapphire", + "water_mons": { + "encounter_rate": 4, + "mons": [ + { + "min_level": 20, + "max_level": 30, + "species": "SPECIES_CLAMPERL" + }, + { + "min_level": 20, + "max_level": 30, + "species": "SPECIES_CHINCHOU" + }, + { + "min_level": 30, + "max_level": 35, + "species": "SPECIES_CLAMPERL" + }, + { + "min_level": 30, + "max_level": 35, + "species": "SPECIES_RELICANTH" + }, + { + "min_level": 30, + "max_level": 35, + "species": "SPECIES_RELICANTH" + } + ] + } + }, + { + "map": "MAP_UNDERWATER2", + "base_label": "Underwater2_Sapphire", + "water_mons": { + "encounter_rate": 4, + "mons": [ + { + "min_level": 20, + "max_level": 30, + "species": "SPECIES_CLAMPERL" + }, + { + "min_level": 20, + "max_level": 30, + "species": "SPECIES_CHINCHOU" + }, + { + "min_level": 30, + "max_level": 35, + "species": "SPECIES_CLAMPERL" + }, + { + "min_level": 30, + "max_level": 35, + "species": "SPECIES_RELICANTH" + }, + { + "min_level": 30, + "max_level": 35, + "species": "SPECIES_RELICANTH" + } + ] + } + } + ] + } + ] +}
\ No newline at end of file diff --git a/src/data/wild_encounters.json.txt b/src/data/wild_encounters.json.txt new file mode 100644 index 000000000..de8396dd6 --- /dev/null +++ b/src/data/wild_encounters.json.txt @@ -0,0 +1,84 @@ +{{ doNotModifyHeader }} + +## for wild_encounter_group in wild_encounter_groups +{% if wild_encounter_group.for_maps %} +## for wild_encounter_field in wild_encounter_group.fields +## for encounter_rate in wild_encounter_field.encounter_rates +{% if trackVar(encounter_rate, 100) %} +#define ENCOUNTER_CHANCE_{{ upper(wild_encounter_field.type) }}_SLOT_{{ loop.index }} {{ encounter_rate }} {% else %}#define ENCOUNTER_CHANCE_{{ upper(wild_encounter_field.type) }}_SLOT_{{ loop.index }} ENCOUNTER_CHANCE_{{ upper(wild_encounter_field.type) }}_SLOT_{{ subtract(loop.index, 1) }} + {{ encounter_rate }}{% endif %} {{ setVarInt(wild_encounter_field.type, loop.index) }} +## endfor +#define ENCOUNTER_CHANCE_{{ upper(wild_encounter_field.type) }}_TOTAL (ENCOUNTER_CHANCE_{{ upper(wild_encounter_field.type) }}_SLOT_{{ getVar(wild_encounter_field.type) }}) +## endfor +{% endif %} + +## for encounter in wild_encounter_group.encounters +{% if contains(encounter.base_label, "Sapphire") %}#ifdef SAPPHIRE +{% else if contains(encounter.base_label, "Ruby") %}#ifdef RUBY{% endif %} +{% if existsIn(encounter, "land_mons") %}const struct WildPokemon {{ encounter.base_label }}_LandMons[] = +{ +## for wild_mon in encounter.land_mons.mons + { {{ wild_mon.min_level }}, {{ wild_mon.max_level }}, {{ wild_mon.species }} }, +## endfor +}; + +const struct WildPokemonInfo {{ encounter.base_label }}_LandMonsInfo = { {{encounter.land_mons.encounter_rate}}, {{ encounter.base_label }}_LandMons }; +{% endif %} +{% if existsIn(encounter, "water_mons") %} +const struct WildPokemon {{ encounter.base_label }}_WaterMons[] = +{ +## for wild_mon in encounter.water_mons.mons + { {{ wild_mon.min_level }}, {{ wild_mon.max_level }}, {{ wild_mon.species }} }, +## endfor +}; + +const struct WildPokemonInfo {{ encounter.base_label }}_WaterMonsInfo = { {{encounter.water_mons.encounter_rate}}, {{ encounter.base_label }}_WaterMons }; +{% endif %} +{% if existsIn(encounter, "rock_smash_mons") %} +const struct WildPokemon {{ encounter.base_label }}_RockSmashMons[] = +{ +## for wild_mon in encounter.rock_smash_mons.mons + { {{ wild_mon.min_level }}, {{ wild_mon.max_level }}, {{ wild_mon.species }} }, +## endfor +}; + +const struct WildPokemonInfo {{ encounter.base_label }}_RockSmashMonsInfo = { {{encounter.rock_smash_mons.encounter_rate}}, {{ encounter.base_label }}_RockSmashMons }; +{% endif %} +{% if existsIn(encounter, "fishing_mons") %} +const struct WildPokemon {{ encounter.base_label }}_FishingMons[] = +{ +## for wild_mon in encounter.fishing_mons.mons + { {{ wild_mon.min_level }}, {{ wild_mon.max_level }}, {{ wild_mon.species }} }, +## endfor +}; + +const struct WildPokemonInfo {{ encounter.base_label }}_FishingMonsInfo = { {{encounter.fishing_mons.encounter_rate}}, {{ encounter.base_label }}_FishingMons }; +{% endif %} +#endif + +## endfor + +const struct WildPokemonHeader {{ wild_encounter_group.label }}[] = +{ +## for encounter in wild_encounter_group.encounters +{% if contains(encounter.base_label, "Sapphire") %}#ifdef SAPPHIRE +{% else if contains(encounter.base_label, "Ruby") %}#ifdef RUBY{% endif %} + { + .mapGroup = {% if wild_encounter_group.for_maps %}MAP_GROUP({{ removePrefix(encounter.map, "MAP_") }}){% else %}0{% endif %}, + .mapNum = {% if wild_encounter_group.for_maps %}MAP_NUM({{ removePrefix(encounter.map, "MAP_") }}){% else %}{{ loop.index1 }}{% endif %}, + .landMonsInfo = {% if existsIn(encounter, "land_mons") %}&{{ encounter.base_label }}_LandMonsInfo{% else %}NULL{% endif %}, + .waterMonsInfo = {% if existsIn(encounter, "water_mons") %}&{{ encounter.base_label }}_WaterMonsInfo{% else %}NULL{% endif %}, + .rockSmashMonsInfo = {% if existsIn(encounter, "rock_smash_mons") %}&{{ encounter.base_label }}_RockSmashMonsInfo{% else %}NULL{% endif %}, + .fishingMonsInfo = {% if existsIn(encounter, "fishing_mons") %}&{{ encounter.base_label }}_FishingMonsInfo{% else %}NULL{% endif %}, + }, +#endif +## endfor + { + .mapGroup = MAP_GROUP(UNDEFINED), + .mapNum = MAP_NUM(UNDEFINED), + .landMonsInfo = NULL, + .waterMonsInfo = NULL, + .rockSmashMonsInfo = NULL, + .fishingMonsInfo = NULL, + }, +}; +## endfor diff --git a/src/debug/sound_check_menu.c b/src/debug/sound_check_menu.c index ba2439a64..1ead5ae1b 100644 --- a/src/debug/sound_check_menu.c +++ b/src/debug/sound_check_menu.c @@ -60,7 +60,7 @@ extern u8 gUnknown_03005E98; struct MusicPlayerInfo *gUnknown_03005D30; -extern struct MusicPlayerInfo gMPlay_BGM; +extern struct MusicPlayerInfo gMPlayInfo_BGM; void Task_InitSoundCheckMenu(u8); void sub_80BA384(u8); @@ -1249,7 +1249,7 @@ void Task_InitCryTest(u8 taskId) REG_BG2CNT = 0xF01; REG_BG3CNT = 0x1D03; REG_DISPCNT = 0x1d40; - m4aMPlayFadeOutTemporarily(&gMPlay_BGM, 2); + m4aMPlayFadeOutTemporarily(&gMPlayInfo_BGM, 2); gTasks[taskId].func = Task_ProcessCryTestInput; } diff --git a/src/evolution_scene.c b/src/evolution_scene.c index a855efb1b..041fd292c 100644 --- a/src/evolution_scene.c +++ b/src/evolution_scene.c @@ -223,7 +223,7 @@ void EvolutionScene(struct Pokemon* mon, u16 speciesToEvolve, bool8 canStopEvo, DecompressPicFromTable_2(&gMonFrontPicTable[currSpecies], gMonFrontPicCoords[currSpecies].coords, gMonFrontPicCoords[currSpecies].y_offset, - (void*)(0x2000000), + (void*)EWRAM, gUnknown_081FAF4C[1], currSpecies); pokePal = (void*) GetMonSpritePalStructFromOtIdPersonality(currSpecies, TiD, PiD); LoadCompressedPalette(*pokePal, 0x110, 0x20); @@ -240,7 +240,7 @@ void EvolutionScene(struct Pokemon* mon, u16 speciesToEvolve, bool8 canStopEvo, DecompressPicFromTable_2(&gMonFrontPicTable[speciesToEvolve], gMonFrontPicCoords[speciesToEvolve].coords, gMonFrontPicCoords[speciesToEvolve].y_offset, - (void*)(0x2000000), + (void*)EWRAM, gUnknown_081FAF4C[3], speciesToEvolve); pokePal = (void*) GetMonSpritePalStructFromOtIdPersonality(speciesToEvolve, TiD, PiD); LoadCompressedPalette(*pokePal, 0x120, 0x20); @@ -320,7 +320,7 @@ static void CB2_EvolutionSceneLoadGraphics(void) DecompressPicFromTable_2(&gMonFrontPicTable[postEvoSpecies], gMonFrontPicCoords[postEvoSpecies].coords, gMonFrontPicCoords[postEvoSpecies].y_offset, - (void*)(0x2000000), + (void*)EWRAM, gUnknown_081FAF4C[3], postEvoSpecies); pokePal = (void*) GetMonSpritePalStructFromOtIdPersonality(postEvoSpecies, TiD, PiD); LoadCompressedPalette(*pokePal, 0x120, 0x20); @@ -390,7 +390,7 @@ static void CB2_TradeEvolutionSceneLoadGraphics(void) DecompressPicFromTable_2(&gMonFrontPicTable[postEvoSpecies], gMonFrontPicCoords[postEvoSpecies].coords, gMonFrontPicCoords[postEvoSpecies].y_offset, - (void*)(0x2000000), + (void*)EWRAM, gUnknown_081FAF4C[3], postEvoSpecies); pokePal = (void*) GetMonSpritePalStructFromOtIdPersonality(postEvoSpecies, TiD, PiD); LoadCompressedPalette(*pokePal, 0x120, 0x20); @@ -440,7 +440,7 @@ void TradeEvolutionScene(struct Pokemon* mon, u16 speciesToEvolve, u8 preEvoSpri DecompressPicFromTable_2(&gMonFrontPicTable[speciesToEvolve], gMonFrontPicCoords[speciesToEvolve].coords, gMonFrontPicCoords[speciesToEvolve].y_offset, - (void*)(0x2000000), + (void*)EWRAM, gUnknown_081FAF4C[1], speciesToEvolve); pokePal = (void*) GetMonSpritePalStructFromOtIdPersonality(speciesToEvolve, TiD, PiD); LoadCompressedPalette(*pokePal, 0x120, 0x20); @@ -712,7 +712,7 @@ static void Task_EvolutionScene(u8 taskID) { sub_8024CEC(); PlayFanfare(MUS_FANFA1); - StrCpyDecodeToDisplayedStringBattle(gBattleStringsTable[3]); + BattleStringExpandPlaceholdersToDisplayedString(gBattleStringsTable[3]); Text_InitWindow8002EB0(&gUnknown_03004210, gDisplayedStringBattle, 144, 2, 15); gTasks[taskID].tLearnsFirstMove = 0x40; // re-used as a counter gTasks[taskID].tState++; @@ -729,7 +729,7 @@ static void Task_EvolutionScene(u8 taskID) if (gUnknown_03004210.state == 0 && !IsSEPlaying()) { sub_8024CEC(); - StrCpyDecodeToDisplayedStringBattle(gBattleStringsTable[4]); + BattleStringExpandPlaceholdersToDisplayedString(gBattleStringsTable[4]); Text_InitWindow8002EB0(&gUnknown_03004210, gDisplayedStringBattle, 144, 2, 15); gTasks[taskID].tLearnMoveState++; } @@ -737,7 +737,7 @@ static void Task_EvolutionScene(u8 taskID) case 1: if (gUnknown_03004210.state == 0 && !IsSEPlaying()) { - StrCpyDecodeToDisplayedStringBattle(gBattleStringsTable[5]); + BattleStringExpandPlaceholdersToDisplayedString(gBattleStringsTable[5]); Text_InitWindow8002EB0(&gUnknown_03004210, gDisplayedStringBattle, 144, 2, 15); gTasks[taskID].tLearnMoveState++; } @@ -747,7 +747,7 @@ static void Task_EvolutionScene(u8 taskID) break; if (!IsSEPlaying()) { - StrCpyDecodeToDisplayedStringBattle(gBattleStringsTable[6]); + BattleStringExpandPlaceholdersToDisplayedString(gBattleStringsTable[6]); Text_InitWindow8002EB0(&gUnknown_03004210, gDisplayedStringBattle, 144, 2, 15); gTasks[taskID].tData9 = 5; gTasks[taskID].tdata10 = 9; @@ -780,7 +780,7 @@ static void Task_EvolutionScene(u8 taskID) if (gMain.newKeys & A_BUTTON) { sub_8023AD8(); - StrCpyDecodeToDisplayedStringBattle(gBattleStringsTable[292]); + BattleStringExpandPlaceholdersToDisplayedString(gBattleStringsTable[292]); Text_InitWindow8002EB0(&gUnknown_03004210, gDisplayedStringBattle, 144, 2, 15); PlaySE(SE_SELECT); if (sEvoCursorPos != 0) @@ -795,7 +795,7 @@ static void Task_EvolutionScene(u8 taskID) if (gMain.newKeys & B_BUTTON) { sub_8023AD8(); - StrCpyDecodeToDisplayedStringBattle(gBattleStringsTable[292]); + BattleStringExpandPlaceholdersToDisplayedString(gBattleStringsTable[292]); Text_InitWindow8002EB0(&gUnknown_03004210, gDisplayedStringBattle, 144, 2, 15); PlaySE(SE_SELECT); gTasks[taskID].tLearnMoveState = gTasks[taskID].tdata10; @@ -821,7 +821,7 @@ static void Task_EvolutionScene(u8 taskID) u16 move = GetMonData(mon, var + MON_DATA_MOVE1); if (IsHMMove2(move)) { - StrCpyDecodeToDisplayedStringBattle(gBattleStringsTable[307]); + BattleStringExpandPlaceholdersToDisplayedString(gBattleStringsTable[307]); Text_InitWindow8002EB0(&gUnknown_03004210, gDisplayedStringBattle, 144, 2, 15); gTasks[taskID].tLearnMoveState = 11; } @@ -834,7 +834,7 @@ static void Task_EvolutionScene(u8 taskID) gBattleTextBuff2[4] = EOS; RemoveMonPPBonus(mon, var); SetMonMoveSlot(mon, gMoveToLearn, var); - StrCpyDecodeToDisplayedStringBattle(gBattleStringsTable[207]); + BattleStringExpandPlaceholdersToDisplayedString(gBattleStringsTable[207]); Text_InitWindow8002EB0(&gUnknown_03004210, gDisplayedStringBattle, 144, 2, 15); gTasks[taskID].tLearnMoveState++; } @@ -844,7 +844,7 @@ static void Task_EvolutionScene(u8 taskID) case 7: if (gUnknown_03004210.state == 0 && !IsSEPlaying()) { - StrCpyDecodeToDisplayedStringBattle(gBattleStringsTable[7]); + BattleStringExpandPlaceholdersToDisplayedString(gBattleStringsTable[7]); Text_InitWindow8002EB0(&gUnknown_03004210, gDisplayedStringBattle, 144, 2, 15); gTasks[taskID].tLearnMoveState++; } @@ -852,20 +852,20 @@ static void Task_EvolutionScene(u8 taskID) case 8: if (gUnknown_03004210.state == 0 && !IsSEPlaying()) { - StrCpyDecodeToDisplayedStringBattle(gBattleStringsTable[208]); + BattleStringExpandPlaceholdersToDisplayedString(gBattleStringsTable[208]); Text_InitWindow8002EB0(&gUnknown_03004210, gDisplayedStringBattle, 144, 2, 15); gTasks[taskID].tState = 19; } break; case 9: - StrCpyDecodeToDisplayedStringBattle(gBattleStringsTable[8]); + BattleStringExpandPlaceholdersToDisplayedString(gBattleStringsTable[8]); Text_InitWindow8002EB0(&gUnknown_03004210, gDisplayedStringBattle, 144, 2, 15); gTasks[taskID].tData9 = 10; gTasks[taskID].tdata10 = 0; gTasks[taskID].tLearnMoveState = 3; break; case 10: - StrCpyDecodeToDisplayedStringBattle(gBattleStringsTable[9]); + BattleStringExpandPlaceholdersToDisplayedString(gBattleStringsTable[9]); Text_InitWindow8002EB0(&gUnknown_03004210, gDisplayedStringBattle, 144, 2, 15); gTasks[taskID].tState = 14; break; @@ -1026,7 +1026,7 @@ static void Task_TradeEvolutionScene(u8 taskID) { sub_8024CEC(); PlayFanfare(MUS_FANFA1); - StrCpyDecodeToDisplayedStringBattle(gBattleStringsTable[3]); + BattleStringExpandPlaceholdersToDisplayedString(gBattleStringsTable[3]); Text_InitWindow8002EB0(&gUnknown_03004828->window, gDisplayedStringBattle, gUnknown_03004828->textWindowBaseTileNum, 2, 15); gTasks[taskID].tLearnsFirstMove = 0x40; // re-used as a counter gTasks[taskID].tState++; @@ -1043,7 +1043,7 @@ static void Task_TradeEvolutionScene(u8 taskID) if (gUnknown_03004828->window.state == 0 && !IsSEPlaying()) { sub_8024CEC(); - StrCpyDecodeToDisplayedStringBattle(gBattleStringsTable[4]); + BattleStringExpandPlaceholdersToDisplayedString(gBattleStringsTable[4]); Text_InitWindow8002EB0(&gUnknown_03004828->window, gDisplayedStringBattle, gUnknown_03004828->textWindowBaseTileNum, 2, 15); gTasks[taskID].tLearnMoveState++; } @@ -1051,7 +1051,7 @@ static void Task_TradeEvolutionScene(u8 taskID) case 1: if (gUnknown_03004828->window.state == 0 && !IsSEPlaying()) { - StrCpyDecodeToDisplayedStringBattle(gBattleStringsTable[5]); + BattleStringExpandPlaceholdersToDisplayedString(gBattleStringsTable[5]); Text_InitWindow8002EB0(&gUnknown_03004828->window, gDisplayedStringBattle, gUnknown_03004828->textWindowBaseTileNum, 2, 15); gTasks[taskID].tLearnMoveState++; } @@ -1061,7 +1061,7 @@ static void Task_TradeEvolutionScene(u8 taskID) break; if (!IsSEPlaying()) { - StrCpyDecodeToDisplayedStringBattle(gBattleStringsTable[6]); + BattleStringExpandPlaceholdersToDisplayedString(gBattleStringsTable[6]); Text_InitWindow8002EB0(&gUnknown_03004828->window, gDisplayedStringBattle, gUnknown_03004828->textWindowBaseTileNum, 2, 15); gTasks[taskID].tData9 = 5; gTasks[taskID].tdata10 = 9; @@ -1099,7 +1099,7 @@ static void Task_TradeEvolutionScene(u8 taskID) { Text_EraseWindowRect(&gUnknown_03004828->window, 0x18, 8, 0x1D, 0xD); DestroyMenuCursor(); - StrCpyDecodeToDisplayedStringBattle(gBattleStringsTable[292]); + BattleStringExpandPlaceholdersToDisplayedString(gBattleStringsTable[292]); Text_InitWindow8002EB0(&gUnknown_03004828->window, gDisplayedStringBattle, gUnknown_03004828->textWindowBaseTileNum, 2, 15); PlaySE(SE_SELECT); if (sEvoCursorPos != 0) @@ -1115,7 +1115,7 @@ static void Task_TradeEvolutionScene(u8 taskID) { Text_EraseWindowRect(&gUnknown_03004828->window, 0x18, 8, 0x1D, 0xD); DestroyMenuCursor(); - StrCpyDecodeToDisplayedStringBattle(gBattleStringsTable[292]); + BattleStringExpandPlaceholdersToDisplayedString(gBattleStringsTable[292]); Text_InitWindow8002EB0(&gUnknown_03004828->window, gDisplayedStringBattle, gUnknown_03004828->textWindowBaseTileNum, 2, 15); PlaySE(SE_SELECT); gTasks[taskID].tLearnMoveState = gTasks[taskID].tdata10; @@ -1141,7 +1141,7 @@ static void Task_TradeEvolutionScene(u8 taskID) u16 move = GetMonData(mon, var + MON_DATA_MOVE1); if (IsHMMove2(move)) { - StrCpyDecodeToDisplayedStringBattle(gBattleStringsTable[307]); + BattleStringExpandPlaceholdersToDisplayedString(gBattleStringsTable[307]); Text_InitWindow8002EB0(&gUnknown_03004828->window, gDisplayedStringBattle, gUnknown_03004828->textWindowBaseTileNum, 2, 15); gTasks[taskID].tLearnMoveState = 11; } @@ -1154,7 +1154,7 @@ static void Task_TradeEvolutionScene(u8 taskID) gBattleTextBuff2[4] = EOS; RemoveMonPPBonus(mon, var); SetMonMoveSlot(mon, gMoveToLearn, var); - StrCpyDecodeToDisplayedStringBattle(gBattleStringsTable[207]); + BattleStringExpandPlaceholdersToDisplayedString(gBattleStringsTable[207]); Text_InitWindow8002EB0(&gUnknown_03004828->window, gDisplayedStringBattle, gUnknown_03004828->textWindowBaseTileNum, 2, 15); gTasks[taskID].tLearnMoveState++; } @@ -1164,7 +1164,7 @@ static void Task_TradeEvolutionScene(u8 taskID) case 7: if (gUnknown_03004828->window.state == 0 && !IsSEPlaying()) { - StrCpyDecodeToDisplayedStringBattle(gBattleStringsTable[7]); + BattleStringExpandPlaceholdersToDisplayedString(gBattleStringsTable[7]); Text_InitWindow8002EB0(&gUnknown_03004828->window, gDisplayedStringBattle, gUnknown_03004828->textWindowBaseTileNum, 2, 15); gTasks[taskID].tLearnMoveState++; } @@ -1172,20 +1172,20 @@ static void Task_TradeEvolutionScene(u8 taskID) case 8: if (gUnknown_03004828->window.state == 0 && !IsSEPlaying()) { - StrCpyDecodeToDisplayedStringBattle(gBattleStringsTable[208]); + BattleStringExpandPlaceholdersToDisplayedString(gBattleStringsTable[208]); Text_InitWindow8002EB0(&gUnknown_03004828->window, gDisplayedStringBattle, gUnknown_03004828->textWindowBaseTileNum, 2, 15); gTasks[taskID].tState = 15; } break; case 9: - StrCpyDecodeToDisplayedStringBattle(gBattleStringsTable[8]); + BattleStringExpandPlaceholdersToDisplayedString(gBattleStringsTable[8]); Text_InitWindow8002EB0(&gUnknown_03004828->window, gDisplayedStringBattle, gUnknown_03004828->textWindowBaseTileNum, 2, 15); gTasks[taskID].tData9 = 10; gTasks[taskID].tdata10 = 0; gTasks[taskID].tLearnMoveState = 3; break; case 10: - StrCpyDecodeToDisplayedStringBattle(gBattleStringsTable[9]); + BattleStringExpandPlaceholdersToDisplayedString(gBattleStringsTable[9]); Text_InitWindow8002EB0(&gUnknown_03004828->window, gDisplayedStringBattle, gUnknown_03004828->textWindowBaseTileNum, 2, 15); gTasks[taskID].tState = 13; break; diff --git a/src/field_door.c b/src/field_door.c index 89dae725c..db840e663 100644 --- a/src/field_door.c +++ b/src/field_door.c @@ -3,8 +3,8 @@ #include "field_camera.h" #include "fieldmap.h" #include "metatile_behavior.h" -#include "constants/songs.h" #include "task.h" +#include "constants/songs.h" const u8 DoorAnimTiles_04[][0x100] = { @@ -517,7 +517,7 @@ static s8 StartDoorAnimationTask(const struct DoorGraphics *gfx, const struct Do } } -static void DrawClosedDoor(const struct DoorGraphics *unused, u32 x, u32 y) +static void DrawClosedDoor(const struct DoorGraphics *gfx, u32 x, u32 y) { DrawClosedDoorTiles(x, y); } @@ -553,7 +553,7 @@ static s8 cur_mapdata_get_door_x2_at(const struct DoorGraphics *gfx, u32 x, u32 if (gfx == NULL) return -1; else - return gfx->unk2; + return gfx->sound; } void unref_sub_805869C(u32 x, u32 y) diff --git a/src/fieldmap.c b/src/fieldmap.c index 4b5149878..f9f857f89 100644 --- a/src/fieldmap.c +++ b/src/fieldmap.c @@ -910,8 +910,8 @@ void sub_8056CBC(struct Tileset *tileset, int offset, int size) } else { - LZ77UnCompVram(tileset->palettes, (void*)0x2000000); - LoadPalette((void*)0x2000000, offset, size); + LZ77UnCompVram(tileset->palettes, (void*)EWRAM); + LoadPalette((void*)EWRAM, offset, size); } } } diff --git a/src/fldeff_flash.c b/src/fldeff_flash.c index 22da8e501..a49802af1 100644 --- a/src/fldeff_flash.c +++ b/src/fldeff_flash.c @@ -220,8 +220,8 @@ static void sub_810CE5C(u8 taskId) static void sub_810CE78(u8 taskId) { REG_DISPCNT = 0; - LZ77UnCompVram(gCaveTransitionTiles, (void *)0x600C000); - LZ77UnCompVram(gCaveTransitionTilemap, (void *)0x600F800); + LZ77UnCompVram(gCaveTransitionTiles, (void *)(VRAM + 0xC000)); + LZ77UnCompVram(gCaveTransitionTilemap, (void *)(VRAM + 0xF800)); LoadPalette(gCaveTransitionPalette_White, 0xE0, 0x20); LoadPalette(gUnknown_083F809C, 0xE0, 0x10); REG_BLDCNT = 15937; @@ -292,8 +292,8 @@ static void sub_810D00C(u8 taskId) static void sub_810D028(u8 taskId) { REG_DISPCNT = 0; - LZ77UnCompVram(gCaveTransitionTiles, (void *)0x600C000); - LZ77UnCompVram(gCaveTransitionTilemap, (void *)0x600F800); + LZ77UnCompVram(gCaveTransitionTiles, (void *)(VRAM + 0xC000)); + LZ77UnCompVram(gCaveTransitionTilemap, (void *)(VRAM + 0xF800)); REG_BLDCNT = 0; REG_BLDALPHA = 0; REG_BLDY = 0; diff --git a/src/hall_of_fame.c b/src/hall_of_fame.c index 5ee025eeb..93532d396 100644 --- a/src/hall_of_fame.c +++ b/src/hall_of_fame.c @@ -27,7 +27,7 @@ static EWRAM_DATA u32 sUnknown_0203931C = 0; extern bool8 gUnknown_02039324; // has hall of fame records extern void (*gGameContinueCallback)(void); -extern struct MusicPlayerInfo gMPlay_BGM; +extern struct MusicPlayerInfo gMPlayInfo_BGM; extern u8 gReservedSpritePaletteCount; extern struct SpriteTemplate gUnknown_02024E8C; @@ -983,7 +983,7 @@ static void sub_8142DF4(u8 taskID) if (IsCryPlayingOrClearCrySongs()) { StopCryAndClearCrySongs(); - m4aMPlayVolumeControl(&gMPlay_BGM, 0xFFFF, 0x100); + m4aMPlayVolumeControl(&gMPlayInfo_BGM, 0xFFFF, 0x100); } gTasks[taskID].func = sub_8142F78; } @@ -993,7 +993,7 @@ static void sub_8142DF4(u8 taskID) if (IsCryPlayingOrClearCrySongs()) { StopCryAndClearCrySongs(); - m4aMPlayVolumeControl(&gMPlay_BGM, 0xFFFF, 0x100); + m4aMPlayVolumeControl(&gMPlayInfo_BGM, 0xFFFF, 0x100); } gTasks[taskID].func = sub_8142F78; } @@ -1298,7 +1298,7 @@ static u32 HallOfFame_LoadPokemonPic(u16 species, s16 posX, s16 posY, u16 pokeID u8 spriteID; const u8* pokePal; - LoadSpecialPokePic(&gMonFrontPicTable[species], gMonFrontPicCoords[species].coords, gMonFrontPicCoords[species].y_offset, 0x2000000, gUnknown_0840B5A0[pokeID], species, pid, 1); + LoadSpecialPokePic(&gMonFrontPicTable[species], gMonFrontPicCoords[species].coords, gMonFrontPicCoords[species].y_offset, EWRAM, gUnknown_0840B5A0[pokeID], species, pid, 1); pokePal = GetMonSpritePalFromOtIdPersonality(species, tid, pid); LoadCompressedPalette(pokePal, 16 * pokeID + 256, 0x20); @@ -1313,7 +1313,7 @@ static u32 HallOfFame_LoadTrainerPic(u16 trainerPicID, s16 posX, s16 posY, u16 a { u8 spriteID; - DecompressPicFromTable_2(&gTrainerFrontPicTable[trainerPicID], gTrainerFrontPicCoords[trainerPicID].coords, gTrainerFrontPicCoords[trainerPicID].y_offset, (void*) 0x2000000, gUnknown_0840B5A0[a3], trainerPicID); + DecompressPicFromTable_2(&gTrainerFrontPicTable[trainerPicID], gTrainerFrontPicCoords[trainerPicID].coords, gTrainerFrontPicCoords[trainerPicID].y_offset, (void*)EWRAM, gUnknown_0840B5A0[a3], trainerPicID); LoadCompressedPalette(gTrainerFrontPicPaletteTable[trainerPicID].data, 16 * a3 + 256, 0x20); sub_8143680(a3, a3); diff --git a/src/intro.c b/src/intro.c index b444c518e..818c4ec54 100644 --- a/src/intro.c +++ b/src/intro.c @@ -1601,9 +1601,9 @@ static u16 sub_813CE88(u16 species, s16 x, s16 y, u16 d, u8 front) u8 spriteId; if (front) - LoadSpecialPokePic(&gMonFrontPicTable[species], gMonFrontPicCoords[species].coords, gMonFrontPicCoords[species].y_offset, 0x2000000, gUnknown_0840B5A0[d], species, 0, 1); + LoadSpecialPokePic(&gMonFrontPicTable[species], gMonFrontPicCoords[species].coords, gMonFrontPicCoords[species].y_offset, EWRAM, gUnknown_0840B5A0[d], species, 0, 1); else - LoadSpecialPokePic(&gMonBackPicTable[species], gMonBackPicCoords[species].coords, gMonBackPicCoords[species].y_offset, 0x2000000, gUnknown_0840B5A0[d], species, 0, 0); + LoadSpecialPokePic(&gMonBackPicTable[species], gMonBackPicCoords[species].coords, gMonBackPicCoords[species].y_offset, EWRAM, gUnknown_0840B5A0[d], species, 0, 0); lzPaletteData = GetMonSpritePalFromOtIdPersonality(species, 0, 0xFFFF); LoadCompressedPalette(lzPaletteData, 0x100 + d * 0x10, 0x20); sub_8143648(d, d); @@ -1617,7 +1617,7 @@ static u8 sub_813CFA8(u16 a, u16 b, u16 c, u16 d) { u8 spriteId; - DecompressPicFromTable_2(&gTrainerBackPicTable[a], gTrainerBackPicCoords[a].coords, gTrainerBackPicCoords[a].y_offset, (void *)0x2000000, gUnknown_0840B5A0[d], a); + DecompressPicFromTable_2(&gTrainerBackPicTable[a], gTrainerBackPicCoords[a].coords, gTrainerBackPicCoords[a].y_offset, (void *)EWRAM, gUnknown_0840B5A0[d], a); LoadCompressedPalette(gTrainerBackPicPaletteTable[a].data, 0x100 + d * 0x10, 0x20); sub_8143680(d, d); gUnknown_02024E8C.anims = gUnknown_0840B064; diff --git a/src/link.c b/src/link.c index a4bd87333..73652a194 100644 --- a/src/link.c +++ b/src/link.c @@ -274,7 +274,7 @@ void LinkTestScreen(void) void sub_8007270(u8 a1) { - localLinkPlayer.lp_field_18 = a1; + localLinkPlayer.id = a1; } static void InitLocalLinkPlayer(void) diff --git a/src/main_menu.c b/src/main_menu.c index 93d9be77a..13fdf9f7f 100644 --- a/src/main_menu.c +++ b/src/main_menu.c @@ -138,7 +138,6 @@ static const u16 gUnknown_081E764C[][16] = static const u8 gBirchIntroShadowGfx[] = INCBIN_U8("graphics/birch_speech/shadow.4bpp.lz"); static const u8 gUnknown_081E7834[] = INCBIN_U8("graphics/birch_speech/map.bin.lz"); static const u16 gUnknown_081E795C[] = INCBIN_U16("graphics/birch_speech/bg2.gbapal"); -static const u16 gUnknown_081E796C[] = INCBIN_U16("graphics/birch_speech/blank_pal.gbapal"); static const u16 gMainMenuPalette[] = INCBIN_U16("graphics/misc/main_menu.gbapal"); static const union AffineAnimCmd gSpriteAffineAnim_81E799C[] = @@ -760,7 +759,7 @@ static void Task_NewGameSpeech1(u8 taskId) LZ77UnCompVram(gBirchIntroShadowGfx, (void *)BG_VRAM); LZ77UnCompVram(gUnknown_081E7834, (void *)(BG_VRAM + 0x3800)); LoadPalette(gUnknown_081E764C, 0, 0x40); - LoadPalette(gUnknown_081E796C, 1, 0x10); + LoadPalette(gUnknown_081E795C + 8, 1, 0x10); ScanlineEffect_Stop(); ResetSpriteData(); FreeAllSpritePalettes(); diff --git a/src/mauville_man.c b/src/mauville_man.c index bfdfe9cf1..7eab67823 100644 --- a/src/mauville_man.c +++ b/src/mauville_man.c @@ -20,7 +20,7 @@ #define MACRO1(a) (((a) % 4) + (((a) / 8) & 1)) -extern struct MusicPlayerInfo gMPlay_SE2; +extern struct MusicPlayerInfo gMPlayInfo_SE2; extern u16 gSpecialVar_Result; extern u16 gSpecialVar_0x8004; @@ -651,8 +651,8 @@ static void BardSing(struct Task *task, struct BardSong *song) song->pitch += 64; else song->pitch -= 64; - m4aMPlayVolumeControl(&gMPlay_SE2, 0xFFFF, song->volume); - m4aMPlayPitchControl(&gMPlay_SE2, 0xFFFF, song->pitch); + m4aMPlayVolumeControl(&gMPlayInfo_SE2, 0xFFFF, song->volume); + m4aMPlayPitchControl(&gMPlayInfo_SE2, 0xFFFF, song->pitch); song->voiceInflection++; } song->phonemeTimer--; @@ -663,13 +663,13 @@ static void BardSing(struct Task *task, struct BardSong *song) if (phoneme->sound <= 50) { song->volume = 0x100 + phoneme->volume * 16; - m4aMPlayVolumeControl(&gMPlay_SE2, 0xFFFF, song->volume); + m4aMPlayVolumeControl(&gMPlayInfo_SE2, 0xFFFF, song->volume); song->pitch = 0x200 + phoneme->pitch; - m4aMPlayPitchControl(&gMPlay_SE2, 0xFFFF, song->pitch); + m4aMPlayPitchControl(&gMPlayInfo_SE2, 0xFFFF, song->pitch); } break; case 0xFE: - m4aMPlayStop(&gMPlay_SE2); + m4aMPlayStop(&gMPlayInfo_SE2); song->state = 0xFF; break; } @@ -746,7 +746,7 @@ static void Task_BardSong(u8 taskId) if (gStringVar4[task->tCharIndex] == EOS) { FadeInNewBGM(MUS_POKECEN, 6); - m4aMPlayFadeOutTemporarily(&gMPlay_SE2, 2); + m4aMPlayFadeOutTemporarily(&gMPlayInfo_SE2, 2); EnableBothScriptContexts(); DestroyTask(taskId); } diff --git a/src/option_menu.c b/src/option_menu.c index 2a5b0e534..6fc58b531 100644 --- a/src/option_menu.c +++ b/src/option_menu.c @@ -112,7 +112,7 @@ void CB2_InitOptionMenu(void) break; case 5: LoadPalette(gUnknown_0839F5FC, 0x80, 0x40); - CpuCopy16(gUnknown_0839F63C, (void *)0x0600BEE0, 0x40); + CpuCopy16(gUnknown_0839F63C, (void *)(VRAM + 0xBEE0), 0x40); gMain.state++; break; case 6: diff --git a/src/overworld.c b/src/overworld.c index 17ecfaf8d..19fe5f377 100644 --- a/src/overworld.c +++ b/src/overworld.c @@ -85,6 +85,11 @@ extern struct MapLayout * const gMapLayouts[]; extern struct MapHeader * const * const gMapGroups[]; extern s32 gMaxFlashLevel; +u16 word_3004858; +void (*gFieldCallback)(void); +u8 gUnknown_03004860; +u8 gFieldLinkPlayerCount; + EWRAM_DATA struct WarpData gLastUsedWarp = {0}; EWRAM_DATA struct WarpData gWarpDestination = {0}; EWRAM_DATA struct WarpData gFixedDiveWarp = {0}; @@ -98,11 +103,6 @@ static u8 gUnknown_03000580[4]; static u16 (*gUnknown_03000584)(u32); static u8 gUnknown_03000588; -u16 word_3004858; -extern void (*gFieldCallback)(void); -u8 gUnknown_03004860; -u8 gFieldLinkPlayerCount; - static void CB2_Overworld(void); static u8 GetAdjustedInitialTransitionFlags(struct InitialPlayerAvatarState*, u16, u8); static u8 GetAdjustedInitialDirection(struct InitialPlayerAvatarState*, u8, u16, u8); diff --git a/src/battle/pokeball.c b/src/pokeball.c index abfdf2c3d..8a11440ff 100644 --- a/src/battle/pokeball.c +++ b/src/pokeball.c @@ -1,7 +1,7 @@ #include "global.h" #include "gba/m4a_internal.h" #include "battle.h" -#include "battle_anim_813F0F4.h" +#include "battle_anim_special.h" #include "decompress.h" #include "graphics.h" #include "m4a.h" @@ -17,14 +17,14 @@ #include "util.h" #include "ewram.h" -extern struct MusicPlayerInfo gMPlay_BGM; +extern struct MusicPlayerInfo gMPlayInfo_BGM; extern u16 gBattleTypeFlags; -extern u8 gBankTarget; +extern u8 gBattlerTarget; extern u8 gActiveBattler; extern u16 gBattlerPartyIndexes[]; -extern u8 gBankSpriteIds[]; +extern u8 gBattlerSpriteIds[]; extern u8 gDoingBattleAnim; -extern u8 gHealthboxIDs[]; +extern u8 gHealthboxSpriteIds[]; #define GFX_TAG_POKEBALL 55000 #define GFX_TAG_GREATBALL 55001 @@ -371,7 +371,7 @@ static void SendOutMonAnimation(u8 taskId) switch (side) { case 0xFF: // Player's side - gBankTarget = battler; + gBattlerTarget = battler; gSprites[spriteId].pos1.x = 24; gSprites[spriteId].pos1.y = 68; gSprites[spriteId].callback = SendOutPlayerMonAnimation_Step0; @@ -379,17 +379,17 @@ static void SendOutMonAnimation(u8 taskId) case 0xFE: // Opponent's side gSprites[spriteId].pos1.x = GetBattlerSpriteCoord(battler, 0); gSprites[spriteId].pos1.y = GetBattlerSpriteCoord(battler, 1) + 24; - gBankTarget = battler; + gBattlerTarget = battler; gSprites[spriteId].data[0] = 0; gSprites[spriteId].callback = SendOutOpponentMonAnimation_Step0; break; default: - gBankTarget = GetBattlerAtPosition(1); + gBattlerTarget = GetBattlerAtPosition(1); debug = TRUE; break; } - gSprites[spriteId].data[6] = gBankTarget; + gSprites[spriteId].data[6] = gBattlerTarget; if (!debug) { DestroyTask(taskId); @@ -397,12 +397,12 @@ static void SendOutMonAnimation(u8 taskId) } gSprites[spriteId].data[0] = 0x22; - gSprites[spriteId].data[2] = GetBattlerSpriteCoord(gBankTarget, 0); - gSprites[spriteId].data[4] = GetBattlerSpriteCoord(gBankTarget, 1) - 16; + gSprites[spriteId].data[2] = GetBattlerSpriteCoord(gBattlerTarget, 0); + gSprites[spriteId].data[4] = GetBattlerSpriteCoord(gBattlerTarget, 1) - 16; gSprites[spriteId].data[5] = -40; InitAnimArcTranslation(&gSprites[spriteId]); gSprites[spriteId].oam.affineParam = taskId; - gTasks[taskId].data[4] = gBankTarget; + gTasks[taskId].data[4] = gBattlerTarget; gTasks[taskId].func = TaskDummy; PlaySE(SE_NAGERU); } @@ -445,9 +445,9 @@ static void sub_80466F4(struct Sprite *sprite) { sprite->data[5] = 0; sprite->callback = sub_8046760; - StartSpriteAffineAnim(&gSprites[gBankSpriteIds[sprite->data[6]]], 2); - AnimateSprite(&gSprites[gBankSpriteIds[sprite->data[6]]]); - gSprites[gBankSpriteIds[sprite->data[6]]].data[1] = 0; + StartSpriteAffineAnim(&gSprites[gBattlerSpriteIds[sprite->data[6]]], 2); + AnimateSprite(&gSprites[gBattlerSpriteIds[sprite->data[6]]]); + gSprites[gBattlerSpriteIds[sprite->data[6]]].data[1] = 0; } } @@ -456,17 +456,17 @@ static void sub_8046760(struct Sprite *sprite) sprite->data[5]++; if (sprite->data[5] == 11) PlaySE(SE_SUIKOMU); - if (gSprites[gBankSpriteIds[sprite->data[6]]].affineAnimEnded) + if (gSprites[gBattlerSpriteIds[sprite->data[6]]].affineAnimEnded) { StartSpriteAnim(sprite, 2); - gSprites[gBankSpriteIds[sprite->data[6]]].invisible = TRUE; + gSprites[gBattlerSpriteIds[sprite->data[6]]].invisible = TRUE; sprite->data[5] = 0; sprite->callback = sub_80467F8; } else { - gSprites[gBankSpriteIds[sprite->data[6]]].data[1] += 0x60; - gSprites[gBankSpriteIds[sprite->data[6]]].pos2.y = -gSprites[gBankSpriteIds[sprite->data[6]]].data[1] >> 8; + gSprites[gBattlerSpriteIds[sprite->data[6]]].data[1] += 0x60; + gSprites[gBattlerSpriteIds[sprite->data[6]]].pos2.y = -gSprites[gBattlerSpriteIds[sprite->data[6]]].data[1] >> 8; } } @@ -732,11 +732,11 @@ static void sub_8046C78(struct Sprite *sprite) if (gBattleTypeFlags & BATTLE_TYPE_MULTI) { if (IsBGMPlaying()) - m4aMPlayStop(&gMPlay_BGM); + m4aMPlayStop(&gMPlayInfo_BGM); } else { - m4aMPlayVolumeControl(&gMPlay_BGM, 0xFFFF, 128); + m4aMPlayVolumeControl(&gMPlayInfo_BGM, 0xFFFF, 128); } } @@ -754,9 +754,9 @@ static void sub_8046C78(struct Sprite *sprite) gTasks[taskId].data[15] = 0; } - StartSpriteAffineAnim(&gSprites[gBankSpriteIds[sprite->data[6]]], 1); - AnimateSprite(&gSprites[gBankSpriteIds[sprite->data[6]]]); - gSprites[gBankSpriteIds[sprite->data[6]]].data[1] = 0x1000; + StartSpriteAffineAnim(&gSprites[gBattlerSpriteIds[sprite->data[6]]], 1); + AnimateSprite(&gSprites[gBattlerSpriteIds[sprite->data[6]]]); + gSprites[gBattlerSpriteIds[sprite->data[6]]].data[1] = 0x1000; } static void sub_8046E7C(struct Sprite *sprite) @@ -773,25 +773,25 @@ static void sub_8046E9C(struct Sprite *sprite) bool8 r7 = FALSE; u8 r4 = sprite->data[6]; - gSprites[gBankSpriteIds[r4]].invisible = FALSE; + gSprites[gBattlerSpriteIds[r4]].invisible = FALSE; if (sprite->animEnded) sprite->invisible = TRUE; - if (gSprites[gBankSpriteIds[r4]].affineAnimEnded) + if (gSprites[gBattlerSpriteIds[r4]].affineAnimEnded) { - StartSpriteAffineAnim(&gSprites[gBankSpriteIds[r4]], 0); + StartSpriteAffineAnim(&gSprites[gBattlerSpriteIds[r4]], 0); r7 = TRUE; } else { - gSprites[gBankSpriteIds[r4]].data[1] -= 288; - gSprites[gBankSpriteIds[r4]].pos2.y = gSprites[gBankSpriteIds[r4]].data[1] >> 8; + gSprites[gBattlerSpriteIds[r4]].data[1] -= 288; + gSprites[gBattlerSpriteIds[r4]].pos2.y = gSprites[gBattlerSpriteIds[r4]].data[1] >> 8; } if (sprite->animEnded && r7) { s32 i; u32 r3; - gSprites[gBankSpriteIds[r4]].pos2.y = 0; + gSprites[gBattlerSpriteIds[r4]].pos2.y = 0; gDoingBattleAnim = 0; ewram17810[r4].unk0_3 = 0; FreeSpriteOamMatrix(sprite); @@ -826,8 +826,8 @@ static void sub_8046FBC(struct Sprite *sprite) } else if (sprite->data[4] == 315) { - FreeOamMatrix(gSprites[gBankSpriteIds[sprite->data[6]]].oam.matrixNum); - DestroySprite(&gSprites[gBankSpriteIds[sprite->data[6]]]); + FreeOamMatrix(gSprites[gBattlerSpriteIds[sprite->data[6]]].oam.matrixNum); + DestroySprite(&gSprites[gBattlerSpriteIds[sprite->data[6]]]); DestroySpriteAndFreeResources(sprite); if (gMain.inBattle) ewram17810[r7].unk0_3 = 0; @@ -1103,7 +1103,7 @@ void obj_delete_and_free_associated_resources_(struct Sprite *sprite) void sub_804777C(u8 a) { - struct Sprite *sprite = &gSprites[gHealthboxIDs[a]]; + struct Sprite *sprite = &gSprites[gHealthboxSpriteIds[a]]; sprite->data[0] = 5; sprite->data[1] = 0; @@ -1146,7 +1146,7 @@ void sub_8047858(u8 a) spriteId = CreateInvisibleSpriteWithCallback(oamc_804BEB4); gSprites[spriteId].data[0] = 1; - gSprites[spriteId].data[1] = gHealthboxIDs[a]; + gSprites[spriteId].data[1] = gHealthboxSpriteIds[a]; gSprites[spriteId].callback = oamc_804BEB4; } diff --git a/src/pokeblock_feed.c b/src/pokeblock_feed.c index 588bc85c0..cb3d8789e 100644 --- a/src/pokeblock_feed.c +++ b/src/pokeblock_feed.c @@ -21,7 +21,7 @@ #include "trig.h" #include "ewram.h" -extern struct MusicPlayerInfo gMPlay_BGM; +extern struct MusicPlayerInfo gMPlayInfo_BGM; extern u8 gPokeblockMonID; extern s16 gPokeblockGain; @@ -616,7 +616,7 @@ static bool8 sub_8147B20(struct Pokemon* mon) case 0: species = GetMonData(mon, MON_DATA_SPECIES2); PiD = GetMonData(mon, MON_DATA_PERSONALITY); - HandleLoadSpecialPokePic(&gMonFrontPicTable[species], gMonFrontPicCoords[species].coords, gMonFrontPicCoords[species].y_offset, 0x2000000, gUnknown_081FAF4C[1], species, PiD); + HandleLoadSpecialPokePic(&gMonFrontPicTable[species], gMonFrontPicCoords[species].coords, gMonFrontPicCoords[species].y_offset, EWRAM, gUnknown_081FAF4C[1], species, PiD); ewram1FFFF++; break; case 1: @@ -743,7 +743,7 @@ static void Task_ReturnAfterPaletteFade(u8 taskID) { if (!gPaletteFade.active) { - m4aMPlayVolumeControl(&gMPlay_BGM, -1, 256); + m4aMPlayVolumeControl(&gMPlayInfo_BGM, -1, 256); SetMainCallback2(gMain.savedCallback); DestroyTask(taskID); } diff --git a/src/pokedex.c b/src/pokedex.c index caa6a1565..8d7ecb896 100644 --- a/src/pokedex.c +++ b/src/pokedex.c @@ -126,7 +126,7 @@ struct UnknownStruct4 u8 unk9; }; -extern struct MusicPlayerInfo gMPlay_BGM; +extern struct MusicPlayerInfo gMPlayInfo_BGM; extern u8 gReservedSpritePaletteCount; extern struct SpriteTemplate gUnknown_02024E8C; extern u8 gUnknown_03005E98; @@ -1448,7 +1448,7 @@ void CB2_InitPokedex(void) SetVBlankCallback(sub_808C0B8); SetMainCallback2(MainCB); SortPokedex(gPokedexView->dexMode, gPokedexView->dexOrder); - m4aMPlayVolumeControl(&gMPlay_BGM, 0xFFFF, 0x80); + m4aMPlayVolumeControl(&gMPlayInfo_BGM, 0xFFFF, 0x80); } break; } @@ -1679,7 +1679,7 @@ static void Task_ClosePokedex(u8 taskId) gSaveBlock2.pokedex.order = gPokedexView->dexOrder; DestroyTask(taskId); SetMainCallback2(c2_exit_to_overworld_1_sub_8080DEC); - m4aMPlayVolumeControl(&gMPlay_BGM, 0xFFFF, 0x100); + m4aMPlayVolumeControl(&gMPlayInfo_BGM, 0xFFFF, 0x100); } } @@ -3150,7 +3150,7 @@ static void Task_InitCryScreenMultistep(u8 taskId) default: if (!gPaletteFade.active) { - m4aMPlayStop(&gMPlay_BGM); + m4aMPlayStop(&gMPlayInfo_BGM); gPokedexView->unk64A = 6; gUnknown_03005CEC = gMain.vblankCallback; SetVBlankCallback(NULL); @@ -3260,7 +3260,7 @@ static void Task_CryScreenProcessInput(u8 taskId) if (gMain.newKeys & B_BUTTON) { BeginNormalPaletteFade(0xFFFFFFEB, 0, 0, 16, RGB(0, 0, 0)); - m4aMPlayContinue(&gMPlay_BGM); + m4aMPlayContinue(&gMPlayInfo_BGM); gPokedexView->unk64F = 1; gTasks[taskId].func = sub_808FFBC; PlaySE(SE_PC_OFF); @@ -3270,7 +3270,7 @@ static void Task_CryScreenProcessInput(u8 taskId) || ((gMain.newKeys & L_BUTTON) && gSaveBlock2.optionsButtonMode == OPTIONS_BUTTON_MODE_LR)) { BeginNormalPaletteFade(0xFFFFFFEB, 0, 0, 16, RGB(0, 0, 0)); - m4aMPlayContinue(&gMPlay_BGM); + m4aMPlayContinue(&gMPlayInfo_BGM); gPokedexView->unk64F = 2; gTasks[taskId].func = sub_808FFBC; PlaySE(SE_Z_PAGE); @@ -3286,7 +3286,7 @@ static void Task_CryScreenProcessInput(u8 taskId) else { BeginNormalPaletteFade(0xFFFFFFEB, 0, 0, 16, RGB(0, 0, 0)); - m4aMPlayContinue(&gMPlay_BGM); + m4aMPlayContinue(&gMPlayInfo_BGM); gPokedexView->unk64F = 3; gTasks[taskId].func = sub_808FFBC; PlaySE(SE_Z_PAGE); @@ -3487,10 +3487,10 @@ static void sub_8090584(u8 a, u16 b) u32 r0 = b * 0x800 + (r7 + j) * 2; u8 *ptr; - ptr = VRAM; - *(u16 *)(ptr + r0) = *(u16 *)(ptr + r0) & 0xFFF | r6; - ptr = VRAM + 0x40; - *(u16 *)(ptr + r0) = *(u16 *)(ptr + r0) & 0xFFF | r6; + ptr = (void *)VRAM; + *(u16 *)(ptr + r0) = (*(u16 *)(ptr + r0) & 0xFFF) | r6; + ptr = (void *)VRAM + 0x40; + *(u16 *)(ptr + r0) = (*(u16 *)(ptr + r0) & 0xFFF) | r6; } } r6 = 0x4000; @@ -3499,10 +3499,10 @@ static void sub_8090584(u8 a, u16 b) u32 r0 = b * 0x800 + j * 2; u8 *ptr; - ptr = VRAM + 0x32; - *(u16 *)(ptr + r0) = *(u16 *)(ptr + r0) & 0xFFF | r6; - ptr = VRAM + 0x72; - *(u16 *)(ptr + r0) = *(u16 *)(ptr + r0) & 0xFFF | r6; + ptr = (void *)VRAM + 0x32; + *(u16 *)(ptr + r0) = (*(u16 *)(ptr + r0) & 0xFFF) | r6; + ptr = (void *)VRAM + 0x72; + *(u16 *)(ptr + r0) = (*(u16 *)(ptr + r0) & 0xFFF) | r6; } } #else @@ -3633,9 +3633,9 @@ static void sub_8090644(u8 a, u16 b) u16 (*vramData)[0x400]; vramData = (u16 (*)[])VRAM; - vramData[b][r8 + j] = vramData[b][r8 + j] & 0xFFF | r5; + vramData[b][r8 + j] = (vramData[b][r8 + j] & 0xFFF) | r5; vramData = (u16 (*)[])(VRAM + 0x40); - vramData[b][r8 + j] = vramData[b][r8 + j] & 0xFFF | r5; + vramData[b][r8 + j] = (vramData[b][r8 + j] & 0xFFF) | r5; } } @@ -3644,9 +3644,9 @@ static void sub_8090644(u8 a, u16 b) u16 (*vramData)[0x400]; vramData = (u16 (*)[])(VRAM + 0x32); - vramData[b][j] = vramData[b][j] & 0xFFF | 0x4000; + vramData[b][j] = (vramData[b][j] & 0xFFF) | 0x4000; vramData = (u16 (*)[])(VRAM + 0x72); - vramData[b][j] = vramData[b][j] & 0xFFF | 0x4000; + vramData[b][j] = (vramData[b][j] & 0xFFF) | 0x4000; } } #else diff --git a/src/pokedex_cry_screen.c b/src/pokedex_cry_screen.c index e07b5e1c0..0574ca45b 100644 --- a/src/pokedex_cry_screen.c +++ b/src/pokedex_cry_screen.c @@ -9,7 +9,7 @@ #include "sound.h" extern struct SoundInfo gSoundInfo; -extern struct MusicPlayerInfo gMPlay_BGM; +extern struct MusicPlayerInfo gMPlayInfo_BGM; struct Unk201C800 { s8 unk_0; @@ -474,7 +474,7 @@ void sub_8119F88(u8 a0) void sub_811A050(u16 species) { - if (gMPlay_BGM.status & MUSICPLAYER_STATUS_PAUSE && !gPokedexCryScreenPtr->unk001A) + if (gMPlayInfo_BGM.status & MUSICPLAYER_STATUS_PAUSE && !gPokedexCryScreenPtr->unk001A) { if (!gPokedexCryScreenPtr->unk001B) { diff --git a/src/pokemon_2.c b/src/pokemon_2.c index 1720159a2..a92d12fd9 100644 --- a/src/pokemon_2.c +++ b/src/pokemon_2.c @@ -26,8 +26,8 @@ extern u8 gActiveBattler; extern struct BattlePokemon gBattleMons[4]; extern u16 gCurrentMove; extern u8 gLastUsedAbility; -extern u8 gBankAttacker; -extern u8 gBankTarget; +extern u8 gBattlerAttacker; +extern u8 gBattlerTarget; extern u8 gAbsentBattlerFlags; extern u8 gXXX_CritRelated; extern u16 gBattleWeather; @@ -67,14 +67,14 @@ u8 CountAliveMons(u8 a1) case 1: for (i = 0; i < 4; i++) { - if (GetBattlerSide(i) == GetBattlerSide(gBankAttacker) && !(gAbsentBattlerFlags & gBitTable[i])) + if (GetBattlerSide(i) == GetBattlerSide(gBattlerAttacker) && !(gAbsentBattlerFlags & gBitTable[i])) retVal++; } break; case 2: for (i = 0; i < 4; i++) { - if (GetBattlerSide(i) == GetBattlerSide(gBankTarget) && !(gAbsentBattlerFlags & gBitTable[i])) + if (GetBattlerSide(i) == GetBattlerSide(gBattlerTarget) && !(gAbsentBattlerFlags & gBitTable[i])) retVal++; } break; diff --git a/src/pokemon_3.c b/src/pokemon_3.c index 4814c900d..393d76dbc 100644 --- a/src/pokemon_3.c +++ b/src/pokemon_3.c @@ -40,9 +40,9 @@ extern u16 gSpeciesIdToCryId[]; extern u8 gBattleTextBuff1[]; extern u8 gBattleTextBuff2[]; extern u8 gDisplayedStringBattle[]; -extern u8 gBankAttacker; -extern u8 gBankTarget; -extern u8 gStringBank; +extern u8 gBattlerAttacker; +extern u8 gBattlerTarget; +extern u8 gPotentialItemEffectBattler; extern u8 gBankInMenu; extern struct SpindaSpot gSpindaSpotGraphics[]; extern s8 gNatureStatTable[][5]; @@ -197,10 +197,10 @@ const u8 gUnknown_082082F8[] = {1, 1, 3, 2, 4, 6}; void sub_803F324(int stat) { - gBankTarget = gBankInMenu; + gBattlerTarget = gBankInMenu; StringCopy(gBattleTextBuff1, gUnknown_08400F58[gUnknown_082082F8[stat]]); StringCopy(gBattleTextBuff2, BattleText_Rose); - StrCpyDecodeToDisplayedStringBattle(BattleText_UnknownString3); + BattleStringExpandPlaceholdersToDisplayedString(BattleText_UnknownString3); } u8 *sub_803F378(u16 itemId) @@ -224,7 +224,7 @@ u8 *sub_803F378(u16 itemId) itemEffect = gItemEffectTable[itemId - 13]; } - gStringBank = gBankInMenu; + gPotentialItemEffectBattler = gBankInMenu; for (i = 0; i < 3; i++) { @@ -238,16 +238,16 @@ u8 *sub_803F378(u16 itemId) } else { - gBankAttacker = gBankInMenu; - StrCpyDecodeToDisplayedStringBattle(BattleText_GetPumped); + gBattlerAttacker = gBankInMenu; + BattleStringExpandPlaceholdersToDisplayedString(BattleText_GetPumped); } } } if (itemEffect[3] & 0x80) { - gBankAttacker = gBankInMenu; - StrCpyDecodeToDisplayedStringBattle(BattleText_MistShroud); + gBattlerAttacker = gBankInMenu; + BattleStringExpandPlaceholdersToDisplayedString(BattleText_MistShroud); } return gDisplayedStringBattle; @@ -579,7 +579,7 @@ void EvolutionRenameMon(struct Pokemon *mon, u16 oldSpecies, u16 newSpecies) bool8 sub_803FBBC(void) { bool8 retVal = FALSE; - switch (gLinkPlayers[GetMultiplayerId()].lp_field_18) + switch (gLinkPlayers[GetMultiplayerId()].id) { case 0: case 3: @@ -596,7 +596,7 @@ bool8 sub_803FBBC(void) bool8 sub_803FBFC(u8 id) { bool8 retVal = FALSE; - switch (gLinkPlayers[id].lp_field_18) + switch (gLinkPlayers[id].id) { case 0: case 3: @@ -614,7 +614,7 @@ s32 sub_803FC34(u16 a1) { s32 id; for (id = 0; id < MAX_LINK_PLAYERS; id++) - if (gLinkPlayers[id].lp_field_18 == a1) + if (gLinkPlayers[id].id == a1) break; return id; } @@ -1314,7 +1314,7 @@ void sub_8040B8C(void) gBattleTextBuff2[2] = gBankInMenu; gBattleTextBuff2[3] = pokemon_order_func(gBattlerPartyIndexes[gBankInMenu]); gBattleTextBuff2[4] = EOS; - StrCpyDecodeBattle(BattleText_PreventedSwitch, gStringVar4); + BattleStringExpandPlaceholders(BattleText_PreventedSwitch, gStringVar4); } void SetWildMonHeldItem(void) @@ -1360,7 +1360,7 @@ bool8 IsShinyOtIdPersonality(u32 otId, u32 personality) u8 *sub_8040D08(void) { u8 id = GetMultiplayerId(); - return gLinkPlayers[sub_803FC34(gLinkPlayers[id].lp_field_18 ^ 2)].name; + return gLinkPlayers[sub_803FC34(gLinkPlayers[id].id ^ 2)].name; } const u8 gJapaneseNidoranNames[][11] = {_("ニドラン♂"), _("ニドラン♀")}; diff --git a/src/pokemon_icon.c b/src/pokemon_icon.c index b1b462761..76c6a1c5c 100644 --- a/src/pokemon_icon.c +++ b/src/pokemon_icon.c @@ -18,446 +18,446 @@ struct MonIconSpriteTemplate const u8 * const gMonIconTable[] = { - gMonIcon_Bulbasaur, - gMonIcon_Bulbasaur, - gMonIcon_Ivysaur, - gMonIcon_Venusaur, - gMonIcon_Charmander, - gMonIcon_Charmeleon, - gMonIcon_Charizard, - gMonIcon_Squirtle, - gMonIcon_Wartortle, - gMonIcon_Blastoise, - gMonIcon_Caterpie, - gMonIcon_Metapod, - gMonIcon_Butterfree, - gMonIcon_Weedle, - gMonIcon_Kakuna, - gMonIcon_Beedrill, - gMonIcon_Pidgey, - gMonIcon_Pidgeotto, - gMonIcon_Pidgeot, - gMonIcon_Rattata, - gMonIcon_Raticate, - gMonIcon_Spearow, - gMonIcon_Fearow, - gMonIcon_Ekans, - gMonIcon_Arbok, - gMonIcon_Pikachu, - gMonIcon_Raichu, - gMonIcon_Sandshrew, - gMonIcon_Sandslash, - gMonIcon_NidoranF, - gMonIcon_Nidorina, - gMonIcon_Nidoqueen, - gMonIcon_NidoranM, - gMonIcon_Nidorino, - gMonIcon_Nidoking, - gMonIcon_Clefairy, - gMonIcon_Clefable, - gMonIcon_Vulpix, - gMonIcon_Ninetales, - gMonIcon_Jigglypuff, - gMonIcon_Wigglytuff, - gMonIcon_Zubat, - gMonIcon_Golbat, - gMonIcon_Oddish, - gMonIcon_Gloom, - gMonIcon_Vileplume, - gMonIcon_Paras, - gMonIcon_Parasect, - gMonIcon_Venonat, - gMonIcon_Venomoth, - gMonIcon_Diglett, - gMonIcon_Dugtrio, - gMonIcon_Meowth, - gMonIcon_Persian, - gMonIcon_Psyduck, - gMonIcon_Golduck, - gMonIcon_Mankey, - gMonIcon_Primeape, - gMonIcon_Growlithe, - gMonIcon_Arcanine, - gMonIcon_Poliwag, - gMonIcon_Poliwhirl, - gMonIcon_Poliwrath, - gMonIcon_Abra, - gMonIcon_Kadabra, - gMonIcon_Alakazam, - gMonIcon_Machop, - gMonIcon_Machoke, - gMonIcon_Machamp, - gMonIcon_Bellsprout, - gMonIcon_Weepinbell, - gMonIcon_Victreebel, - gMonIcon_Tentacool, - gMonIcon_Tentacruel, - gMonIcon_Geodude, - gMonIcon_Graveler, - gMonIcon_Golem, - gMonIcon_Ponyta, - gMonIcon_Rapidash, - gMonIcon_Slowpoke, - gMonIcon_Slowbro, - gMonIcon_Magnemite, - gMonIcon_Magneton, - gMonIcon_Farfetchd, - gMonIcon_Doduo, - gMonIcon_Dodrio, - gMonIcon_Seel, - gMonIcon_Dewgong, - gMonIcon_Grimer, - gMonIcon_Muk, - gMonIcon_Shellder, - gMonIcon_Cloyster, - gMonIcon_Gastly, - gMonIcon_Haunter, - gMonIcon_Gengar, - gMonIcon_Onix, - gMonIcon_Drowzee, - gMonIcon_Hypno, - gMonIcon_Krabby, - gMonIcon_Kingler, - gMonIcon_Voltorb, - gMonIcon_Electrode, - gMonIcon_Exeggcute, - gMonIcon_Exeggutor, - gMonIcon_Cubone, - gMonIcon_Marowak, - gMonIcon_Hitmonlee, - gMonIcon_Hitmonchan, - gMonIcon_Lickitung, - gMonIcon_Koffing, - gMonIcon_Weezing, - gMonIcon_Rhyhorn, - gMonIcon_Rhydon, - gMonIcon_Chansey, - gMonIcon_Tangela, - gMonIcon_Kangaskhan, - gMonIcon_Horsea, - gMonIcon_Seadra, - gMonIcon_Goldeen, - gMonIcon_Seaking, - gMonIcon_Staryu, - gMonIcon_Starmie, - gMonIcon_Mrmime, - gMonIcon_Scyther, - gMonIcon_Jynx, - gMonIcon_Electabuzz, - gMonIcon_Magmar, - gMonIcon_Pinsir, - gMonIcon_Tauros, - gMonIcon_Magikarp, - gMonIcon_Gyarados, - gMonIcon_Lapras, - gMonIcon_Ditto, - gMonIcon_Eevee, - gMonIcon_Vaporeon, - gMonIcon_Jolteon, - gMonIcon_Flareon, - gMonIcon_Porygon, - gMonIcon_Omanyte, - gMonIcon_Omastar, - gMonIcon_Kabuto, - gMonIcon_Kabutops, - gMonIcon_Aerodactyl, - gMonIcon_Snorlax, - gMonIcon_Articuno, - gMonIcon_Zapdos, - gMonIcon_Moltres, - gMonIcon_Dratini, - gMonIcon_Dragonair, - gMonIcon_Dragonite, - gMonIcon_Mewtwo, - gMonIcon_Mew, - gMonIcon_Chikorita, - gMonIcon_Bayleef, - gMonIcon_Meganium, - gMonIcon_Cyndaquil, - gMonIcon_Quilava, - gMonIcon_Typhlosion, - gMonIcon_Totodile, - gMonIcon_Croconaw, - gMonIcon_Feraligatr, - gMonIcon_Sentret, - gMonIcon_Furret, - gMonIcon_Hoothoot, - gMonIcon_Noctowl, - gMonIcon_Ledyba, - gMonIcon_Ledian, - gMonIcon_Spinarak, - gMonIcon_Ariados, - gMonIcon_Crobat, - gMonIcon_Chinchou, - gMonIcon_Lanturn, - gMonIcon_Pichu, - gMonIcon_Cleffa, - gMonIcon_Igglybuff, - gMonIcon_Togepi, - gMonIcon_Togetic, - gMonIcon_Natu, - gMonIcon_Xatu, - gMonIcon_Mareep, - gMonIcon_Flaaffy, - gMonIcon_Ampharos, - gMonIcon_Bellossom, - gMonIcon_Marill, - gMonIcon_Azumarill, - gMonIcon_Sudowoodo, - gMonIcon_Politoed, - gMonIcon_Hoppip, - gMonIcon_Skiploom, - gMonIcon_Jumpluff, - gMonIcon_Aipom, - gMonIcon_Sunkern, - gMonIcon_Sunflora, - gMonIcon_Yanma, - gMonIcon_Wooper, - gMonIcon_Quagsire, - gMonIcon_Espeon, - gMonIcon_Umbreon, - gMonIcon_Murkrow, - gMonIcon_Slowking, - gMonIcon_Misdreavus, - gMonIcon_UnownA, - gMonIcon_Wobbuffet, - gMonIcon_Girafarig, - gMonIcon_Pineco, - gMonIcon_Forretress, - gMonIcon_Dunsparce, - gMonIcon_Gligar, - gMonIcon_Steelix, - gMonIcon_Snubbull, - gMonIcon_Granbull, - gMonIcon_Qwilfish, - gMonIcon_Scizor, - gMonIcon_Shuckle, - gMonIcon_Heracross, - gMonIcon_Sneasel, - gMonIcon_Teddiursa, - gMonIcon_Ursaring, - gMonIcon_Slugma, - gMonIcon_Magcargo, - gMonIcon_Swinub, - gMonIcon_Piloswine, - gMonIcon_Corsola, - gMonIcon_Remoraid, - gMonIcon_Octillery, - gMonIcon_Delibird, - gMonIcon_Mantine, - gMonIcon_Skarmory, - gMonIcon_Houndour, - gMonIcon_Houndoom, - gMonIcon_Kingdra, - gMonIcon_Phanpy, - gMonIcon_Donphan, - gMonIcon_Porygon2, - gMonIcon_Stantler, - gMonIcon_Smeargle, - gMonIcon_Tyrogue, - gMonIcon_Hitmontop, - gMonIcon_Smoochum, - gMonIcon_Elekid, - gMonIcon_Magby, - gMonIcon_Miltank, - gMonIcon_Blissey, - gMonIcon_Raikou, - gMonIcon_Entei, - gMonIcon_Suicune, - gMonIcon_Larvitar, - gMonIcon_Pupitar, - gMonIcon_Tyranitar, - gMonIcon_Lugia, - gMonIcon_HoOh, - gMonIcon_Celebi, - gMonIcon_QuestionMark, - gMonIcon_QuestionMark, - gMonIcon_QuestionMark, - gMonIcon_QuestionMark, - gMonIcon_QuestionMark, - gMonIcon_QuestionMark, - gMonIcon_QuestionMark, - gMonIcon_QuestionMark, - gMonIcon_QuestionMark, - gMonIcon_QuestionMark, - gMonIcon_QuestionMark, - gMonIcon_QuestionMark, - gMonIcon_QuestionMark, - gMonIcon_QuestionMark, - gMonIcon_QuestionMark, - gMonIcon_QuestionMark, - gMonIcon_QuestionMark, - gMonIcon_QuestionMark, - gMonIcon_QuestionMark, - gMonIcon_QuestionMark, - gMonIcon_QuestionMark, - gMonIcon_QuestionMark, - gMonIcon_QuestionMark, - gMonIcon_QuestionMark, - gMonIcon_QuestionMark, - gMonIcon_Treecko, - gMonIcon_Grovyle, - gMonIcon_Sceptile, - gMonIcon_Torchic, - gMonIcon_Combusken, - gMonIcon_Blaziken, - gMonIcon_Mudkip, - gMonIcon_Marshtomp, - gMonIcon_Swampert, - gMonIcon_Poochyena, - gMonIcon_Mightyena, - gMonIcon_Zigzagoon, - gMonIcon_Linoone, - gMonIcon_Wurmple, - gMonIcon_Silcoon, - gMonIcon_Beautifly, - gMonIcon_Cascoon, - gMonIcon_Dustox, - gMonIcon_Lotad, - gMonIcon_Lombre, - gMonIcon_Ludicolo, - gMonIcon_Seedot, - gMonIcon_Nuzleaf, - gMonIcon_Shiftry, - gMonIcon_Nincada, - gMonIcon_Ninjask, - gMonIcon_Shedinja, - gMonIcon_Taillow, - gMonIcon_Swellow, - gMonIcon_Shroomish, - gMonIcon_Breloom, - gMonIcon_Spinda, - gMonIcon_Wingull, - gMonIcon_Pelipper, - gMonIcon_Surskit, - gMonIcon_Masquerain, - gMonIcon_Wailmer, - gMonIcon_Wailord, - gMonIcon_Skitty, - gMonIcon_Delcatty, - gMonIcon_Kecleon, - gMonIcon_Baltoy, - gMonIcon_Claydol, - gMonIcon_Nosepass, - gMonIcon_Torkoal, - gMonIcon_Sableye, - gMonIcon_Barboach, - gMonIcon_Whiscash, - gMonIcon_Luvdisc, - gMonIcon_Corphish, - gMonIcon_Crawdaunt, - gMonIcon_Feebas, - gMonIcon_Milotic, - gMonIcon_Carvanha, - gMonIcon_Sharpedo, - gMonIcon_Trapinch, - gMonIcon_Vibrava, - gMonIcon_Flygon, - gMonIcon_Makuhita, - gMonIcon_Hariyama, - gMonIcon_Electrike, - gMonIcon_Manectric, - gMonIcon_Numel, - gMonIcon_Camerupt, - gMonIcon_Spheal, - gMonIcon_Sealeo, - gMonIcon_Walrein, - gMonIcon_Cacnea, - gMonIcon_Cacturne, - gMonIcon_Snorunt, - gMonIcon_Glalie, - gMonIcon_Lunatone, - gMonIcon_Solrock, - gMonIcon_Azurill, - gMonIcon_Spoink, - gMonIcon_Grumpig, - gMonIcon_Plusle, - gMonIcon_Minun, - gMonIcon_Mawile, - gMonIcon_Meditite, - gMonIcon_Medicham, - gMonIcon_Swablu, - gMonIcon_Altaria, - gMonIcon_Wynaut, - gMonIcon_Duskull, - gMonIcon_Dusclops, - gMonIcon_Roselia, - gMonIcon_Slakoth, - gMonIcon_Vigoroth, - gMonIcon_Slaking, - gMonIcon_Gulpin, - gMonIcon_Swalot, - gMonIcon_Tropius, - gMonIcon_Whismur, - gMonIcon_Loudred, - gMonIcon_Exploud, - gMonIcon_Clamperl, - gMonIcon_Huntail, - gMonIcon_Gorebyss, - gMonIcon_Absol, - gMonIcon_Shuppet, - gMonIcon_Banette, - gMonIcon_Seviper, - gMonIcon_Zangoose, - gMonIcon_Relicanth, - gMonIcon_Aron, - gMonIcon_Lairon, - gMonIcon_Aggron, - gMonIcon_Castform, - gMonIcon_Volbeat, - gMonIcon_Illumise, - gMonIcon_Lileep, - gMonIcon_Cradily, - gMonIcon_Anorith, - gMonIcon_Armaldo, - gMonIcon_Ralts, - gMonIcon_Kirlia, - gMonIcon_Gardevoir, - gMonIcon_Bagon, - gMonIcon_Shelgon, - gMonIcon_Salamence, - gMonIcon_Beldum, - gMonIcon_Metang, - gMonIcon_Metagross, - gMonIcon_Regirock, - gMonIcon_Regice, - gMonIcon_Registeel, - gMonIcon_Kyogre, - gMonIcon_Groudon, - gMonIcon_Rayquaza, - gMonIcon_Latias, - gMonIcon_Latios, - gMonIcon_Jirachi, - gMonIcon_Deoxys, - gMonIcon_Chimecho, - gMonIcon_Egg, - gMonIcon_UnownB, - gMonIcon_UnownC, - gMonIcon_UnownD, - gMonIcon_UnownE, - gMonIcon_UnownF, - gMonIcon_UnownG, - gMonIcon_UnownH, - gMonIcon_UnownI, - gMonIcon_UnownJ, - gMonIcon_UnownK, - gMonIcon_UnownL, - gMonIcon_UnownM, - gMonIcon_UnownN, - gMonIcon_UnownO, - gMonIcon_UnownP, - gMonIcon_UnownQ, - gMonIcon_UnownR, - gMonIcon_UnownS, - gMonIcon_UnownT, - gMonIcon_UnownU, - gMonIcon_UnownV, - gMonIcon_UnownW, - gMonIcon_UnownX, - gMonIcon_UnownY, - gMonIcon_UnownZ, - gMonIcon_UnownExclamationMark, - gMonIcon_UnownQuestionMark, + [SPECIES_NONE] = gMonIcon_Bulbasaur, + [SPECIES_BULBASAUR] = gMonIcon_Bulbasaur, + [SPECIES_IVYSAUR] = gMonIcon_Ivysaur, + [SPECIES_VENUSAUR] = gMonIcon_Venusaur, + [SPECIES_CHARMANDER] = gMonIcon_Charmander, + [SPECIES_CHARMELEON] = gMonIcon_Charmeleon, + [SPECIES_CHARIZARD] = gMonIcon_Charizard, + [SPECIES_SQUIRTLE] = gMonIcon_Squirtle, + [SPECIES_WARTORTLE] = gMonIcon_Wartortle, + [SPECIES_BLASTOISE] = gMonIcon_Blastoise, + [SPECIES_CATERPIE] = gMonIcon_Caterpie, + [SPECIES_METAPOD] = gMonIcon_Metapod, + [SPECIES_BUTTERFREE] = gMonIcon_Butterfree, + [SPECIES_WEEDLE] = gMonIcon_Weedle, + [SPECIES_KAKUNA] = gMonIcon_Kakuna, + [SPECIES_BEEDRILL] = gMonIcon_Beedrill, + [SPECIES_PIDGEY] = gMonIcon_Pidgey, + [SPECIES_PIDGEOTTO] = gMonIcon_Pidgeotto, + [SPECIES_PIDGEOT] = gMonIcon_Pidgeot, + [SPECIES_RATTATA] = gMonIcon_Rattata, + [SPECIES_RATICATE] = gMonIcon_Raticate, + [SPECIES_SPEAROW] = gMonIcon_Spearow, + [SPECIES_FEAROW] = gMonIcon_Fearow, + [SPECIES_EKANS] = gMonIcon_Ekans, + [SPECIES_ARBOK] = gMonIcon_Arbok, + [SPECIES_PIKACHU] = gMonIcon_Pikachu, + [SPECIES_RAICHU] = gMonIcon_Raichu, + [SPECIES_SANDSHREW] = gMonIcon_Sandshrew, + [SPECIES_SANDSLASH] = gMonIcon_Sandslash, + [SPECIES_NIDORAN_F] = gMonIcon_NidoranF, + [SPECIES_NIDORINA] = gMonIcon_Nidorina, + [SPECIES_NIDOQUEEN] = gMonIcon_Nidoqueen, + [SPECIES_NIDORAN_M] = gMonIcon_NidoranM, + [SPECIES_NIDORINO] = gMonIcon_Nidorino, + [SPECIES_NIDOKING] = gMonIcon_Nidoking, + [SPECIES_CLEFAIRY] = gMonIcon_Clefairy, + [SPECIES_CLEFABLE] = gMonIcon_Clefable, + [SPECIES_VULPIX] = gMonIcon_Vulpix, + [SPECIES_NINETALES] = gMonIcon_Ninetales, + [SPECIES_JIGGLYPUFF] = gMonIcon_Jigglypuff, + [SPECIES_WIGGLYTUFF] = gMonIcon_Wigglytuff, + [SPECIES_ZUBAT] = gMonIcon_Zubat, + [SPECIES_GOLBAT] = gMonIcon_Golbat, + [SPECIES_ODDISH] = gMonIcon_Oddish, + [SPECIES_GLOOM] = gMonIcon_Gloom, + [SPECIES_VILEPLUME] = gMonIcon_Vileplume, + [SPECIES_PARAS] = gMonIcon_Paras, + [SPECIES_PARASECT] = gMonIcon_Parasect, + [SPECIES_VENONAT] = gMonIcon_Venonat, + [SPECIES_VENOMOTH] = gMonIcon_Venomoth, + [SPECIES_DIGLETT] = gMonIcon_Diglett, + [SPECIES_DUGTRIO] = gMonIcon_Dugtrio, + [SPECIES_MEOWTH] = gMonIcon_Meowth, + [SPECIES_PERSIAN] = gMonIcon_Persian, + [SPECIES_PSYDUCK] = gMonIcon_Psyduck, + [SPECIES_GOLDUCK] = gMonIcon_Golduck, + [SPECIES_MANKEY] = gMonIcon_Mankey, + [SPECIES_PRIMEAPE] = gMonIcon_Primeape, + [SPECIES_GROWLITHE] = gMonIcon_Growlithe, + [SPECIES_ARCANINE] = gMonIcon_Arcanine, + [SPECIES_POLIWAG] = gMonIcon_Poliwag, + [SPECIES_POLIWHIRL] = gMonIcon_Poliwhirl, + [SPECIES_POLIWRATH] = gMonIcon_Poliwrath, + [SPECIES_ABRA] = gMonIcon_Abra, + [SPECIES_KADABRA] = gMonIcon_Kadabra, + [SPECIES_ALAKAZAM] = gMonIcon_Alakazam, + [SPECIES_MACHOP] = gMonIcon_Machop, + [SPECIES_MACHOKE] = gMonIcon_Machoke, + [SPECIES_MACHAMP] = gMonIcon_Machamp, + [SPECIES_BELLSPROUT] = gMonIcon_Bellsprout, + [SPECIES_WEEPINBELL] = gMonIcon_Weepinbell, + [SPECIES_VICTREEBEL] = gMonIcon_Victreebel, + [SPECIES_TENTACOOL] = gMonIcon_Tentacool, + [SPECIES_TENTACRUEL] = gMonIcon_Tentacruel, + [SPECIES_GEODUDE] = gMonIcon_Geodude, + [SPECIES_GRAVELER] = gMonIcon_Graveler, + [SPECIES_GOLEM] = gMonIcon_Golem, + [SPECIES_PONYTA] = gMonIcon_Ponyta, + [SPECIES_RAPIDASH] = gMonIcon_Rapidash, + [SPECIES_SLOWPOKE] = gMonIcon_Slowpoke, + [SPECIES_SLOWBRO] = gMonIcon_Slowbro, + [SPECIES_MAGNEMITE] = gMonIcon_Magnemite, + [SPECIES_MAGNETON] = gMonIcon_Magneton, + [SPECIES_FARFETCHD] = gMonIcon_Farfetchd, + [SPECIES_DODUO] = gMonIcon_Doduo, + [SPECIES_DODRIO] = gMonIcon_Dodrio, + [SPECIES_SEEL] = gMonIcon_Seel, + [SPECIES_DEWGONG] = gMonIcon_Dewgong, + [SPECIES_GRIMER] = gMonIcon_Grimer, + [SPECIES_MUK] = gMonIcon_Muk, + [SPECIES_SHELLDER] = gMonIcon_Shellder, + [SPECIES_CLOYSTER] = gMonIcon_Cloyster, + [SPECIES_GASTLY] = gMonIcon_Gastly, + [SPECIES_HAUNTER] = gMonIcon_Haunter, + [SPECIES_GENGAR] = gMonIcon_Gengar, + [SPECIES_ONIX] = gMonIcon_Onix, + [SPECIES_DROWZEE] = gMonIcon_Drowzee, + [SPECIES_HYPNO] = gMonIcon_Hypno, + [SPECIES_KRABBY] = gMonIcon_Krabby, + [SPECIES_KINGLER] = gMonIcon_Kingler, + [SPECIES_VOLTORB] = gMonIcon_Voltorb, + [SPECIES_ELECTRODE] = gMonIcon_Electrode, + [SPECIES_EXEGGCUTE] = gMonIcon_Exeggcute, + [SPECIES_EXEGGUTOR] = gMonIcon_Exeggutor, + [SPECIES_CUBONE] = gMonIcon_Cubone, + [SPECIES_MAROWAK] = gMonIcon_Marowak, + [SPECIES_HITMONLEE] = gMonIcon_Hitmonlee, + [SPECIES_HITMONCHAN] = gMonIcon_Hitmonchan, + [SPECIES_LICKITUNG] = gMonIcon_Lickitung, + [SPECIES_KOFFING] = gMonIcon_Koffing, + [SPECIES_WEEZING] = gMonIcon_Weezing, + [SPECIES_RHYHORN] = gMonIcon_Rhyhorn, + [SPECIES_RHYDON] = gMonIcon_Rhydon, + [SPECIES_CHANSEY] = gMonIcon_Chansey, + [SPECIES_TANGELA] = gMonIcon_Tangela, + [SPECIES_KANGASKHAN] = gMonIcon_Kangaskhan, + [SPECIES_HORSEA] = gMonIcon_Horsea, + [SPECIES_SEADRA] = gMonIcon_Seadra, + [SPECIES_GOLDEEN] = gMonIcon_Goldeen, + [SPECIES_SEAKING] = gMonIcon_Seaking, + [SPECIES_STARYU] = gMonIcon_Staryu, + [SPECIES_STARMIE] = gMonIcon_Starmie, + [SPECIES_MR_MIME] = gMonIcon_Mrmime, + [SPECIES_SCYTHER] = gMonIcon_Scyther, + [SPECIES_JYNX] = gMonIcon_Jynx, + [SPECIES_ELECTABUZZ] = gMonIcon_Electabuzz, + [SPECIES_MAGMAR] = gMonIcon_Magmar, + [SPECIES_PINSIR] = gMonIcon_Pinsir, + [SPECIES_TAUROS] = gMonIcon_Tauros, + [SPECIES_MAGIKARP] = gMonIcon_Magikarp, + [SPECIES_GYARADOS] = gMonIcon_Gyarados, + [SPECIES_LAPRAS] = gMonIcon_Lapras, + [SPECIES_DITTO] = gMonIcon_Ditto, + [SPECIES_EEVEE] = gMonIcon_Eevee, + [SPECIES_VAPOREON] = gMonIcon_Vaporeon, + [SPECIES_JOLTEON] = gMonIcon_Jolteon, + [SPECIES_FLAREON] = gMonIcon_Flareon, + [SPECIES_PORYGON] = gMonIcon_Porygon, + [SPECIES_OMANYTE] = gMonIcon_Omanyte, + [SPECIES_OMASTAR] = gMonIcon_Omastar, + [SPECIES_KABUTO] = gMonIcon_Kabuto, + [SPECIES_KABUTOPS] = gMonIcon_Kabutops, + [SPECIES_AERODACTYL] = gMonIcon_Aerodactyl, + [SPECIES_SNORLAX] = gMonIcon_Snorlax, + [SPECIES_ARTICUNO] = gMonIcon_Articuno, + [SPECIES_ZAPDOS] = gMonIcon_Zapdos, + [SPECIES_MOLTRES] = gMonIcon_Moltres, + [SPECIES_DRATINI] = gMonIcon_Dratini, + [SPECIES_DRAGONAIR] = gMonIcon_Dragonair, + [SPECIES_DRAGONITE] = gMonIcon_Dragonite, + [SPECIES_MEWTWO] = gMonIcon_Mewtwo, + [SPECIES_MEW] = gMonIcon_Mew, + [SPECIES_CHIKORITA] = gMonIcon_Chikorita, + [SPECIES_BAYLEEF] = gMonIcon_Bayleef, + [SPECIES_MEGANIUM] = gMonIcon_Meganium, + [SPECIES_CYNDAQUIL] = gMonIcon_Cyndaquil, + [SPECIES_QUILAVA] = gMonIcon_Quilava, + [SPECIES_TYPHLOSION] = gMonIcon_Typhlosion, + [SPECIES_TOTODILE] = gMonIcon_Totodile, + [SPECIES_CROCONAW] = gMonIcon_Croconaw, + [SPECIES_FERALIGATR] = gMonIcon_Feraligatr, + [SPECIES_SENTRET] = gMonIcon_Sentret, + [SPECIES_FURRET] = gMonIcon_Furret, + [SPECIES_HOOTHOOT] = gMonIcon_Hoothoot, + [SPECIES_NOCTOWL] = gMonIcon_Noctowl, + [SPECIES_LEDYBA] = gMonIcon_Ledyba, + [SPECIES_LEDIAN] = gMonIcon_Ledian, + [SPECIES_SPINARAK] = gMonIcon_Spinarak, + [SPECIES_ARIADOS] = gMonIcon_Ariados, + [SPECIES_CROBAT] = gMonIcon_Crobat, + [SPECIES_CHINCHOU] = gMonIcon_Chinchou, + [SPECIES_LANTURN] = gMonIcon_Lanturn, + [SPECIES_PICHU] = gMonIcon_Pichu, + [SPECIES_CLEFFA] = gMonIcon_Cleffa, + [SPECIES_IGGLYBUFF] = gMonIcon_Igglybuff, + [SPECIES_TOGEPI] = gMonIcon_Togepi, + [SPECIES_TOGETIC] = gMonIcon_Togetic, + [SPECIES_NATU] = gMonIcon_Natu, + [SPECIES_XATU] = gMonIcon_Xatu, + [SPECIES_MAREEP] = gMonIcon_Mareep, + [SPECIES_FLAAFFY] = gMonIcon_Flaaffy, + [SPECIES_AMPHAROS] = gMonIcon_Ampharos, + [SPECIES_BELLOSSOM] = gMonIcon_Bellossom, + [SPECIES_MARILL] = gMonIcon_Marill, + [SPECIES_AZUMARILL] = gMonIcon_Azumarill, + [SPECIES_SUDOWOODO] = gMonIcon_Sudowoodo, + [SPECIES_POLITOED] = gMonIcon_Politoed, + [SPECIES_HOPPIP] = gMonIcon_Hoppip, + [SPECIES_SKIPLOOM] = gMonIcon_Skiploom, + [SPECIES_JUMPLUFF] = gMonIcon_Jumpluff, + [SPECIES_AIPOM] = gMonIcon_Aipom, + [SPECIES_SUNKERN] = gMonIcon_Sunkern, + [SPECIES_SUNFLORA] = gMonIcon_Sunflora, + [SPECIES_YANMA] = gMonIcon_Yanma, + [SPECIES_WOOPER] = gMonIcon_Wooper, + [SPECIES_QUAGSIRE] = gMonIcon_Quagsire, + [SPECIES_ESPEON] = gMonIcon_Espeon, + [SPECIES_UMBREON] = gMonIcon_Umbreon, + [SPECIES_MURKROW] = gMonIcon_Murkrow, + [SPECIES_SLOWKING] = gMonIcon_Slowking, + [SPECIES_MISDREAVUS] = gMonIcon_Misdreavus, + [SPECIES_UNOWN] = gMonIcon_UnownA, + [SPECIES_WOBBUFFET] = gMonIcon_Wobbuffet, + [SPECIES_GIRAFARIG] = gMonIcon_Girafarig, + [SPECIES_PINECO] = gMonIcon_Pineco, + [SPECIES_FORRETRESS] = gMonIcon_Forretress, + [SPECIES_DUNSPARCE] = gMonIcon_Dunsparce, + [SPECIES_GLIGAR] = gMonIcon_Gligar, + [SPECIES_STEELIX] = gMonIcon_Steelix, + [SPECIES_SNUBBULL] = gMonIcon_Snubbull, + [SPECIES_GRANBULL] = gMonIcon_Granbull, + [SPECIES_QWILFISH] = gMonIcon_Qwilfish, + [SPECIES_SCIZOR] = gMonIcon_Scizor, + [SPECIES_SHUCKLE] = gMonIcon_Shuckle, + [SPECIES_HERACROSS] = gMonIcon_Heracross, + [SPECIES_SNEASEL] = gMonIcon_Sneasel, + [SPECIES_TEDDIURSA] = gMonIcon_Teddiursa, + [SPECIES_URSARING] = gMonIcon_Ursaring, + [SPECIES_SLUGMA] = gMonIcon_Slugma, + [SPECIES_MAGCARGO] = gMonIcon_Magcargo, + [SPECIES_SWINUB] = gMonIcon_Swinub, + [SPECIES_PILOSWINE] = gMonIcon_Piloswine, + [SPECIES_CORSOLA] = gMonIcon_Corsola, + [SPECIES_REMORAID] = gMonIcon_Remoraid, + [SPECIES_OCTILLERY] = gMonIcon_Octillery, + [SPECIES_DELIBIRD] = gMonIcon_Delibird, + [SPECIES_MANTINE] = gMonIcon_Mantine, + [SPECIES_SKARMORY] = gMonIcon_Skarmory, + [SPECIES_HOUNDOUR] = gMonIcon_Houndour, + [SPECIES_HOUNDOOM] = gMonIcon_Houndoom, + [SPECIES_KINGDRA] = gMonIcon_Kingdra, + [SPECIES_PHANPY] = gMonIcon_Phanpy, + [SPECIES_DONPHAN] = gMonIcon_Donphan, + [SPECIES_PORYGON2] = gMonIcon_Porygon2, + [SPECIES_STANTLER] = gMonIcon_Stantler, + [SPECIES_SMEARGLE] = gMonIcon_Smeargle, + [SPECIES_TYROGUE] = gMonIcon_Tyrogue, + [SPECIES_HITMONTOP] = gMonIcon_Hitmontop, + [SPECIES_SMOOCHUM] = gMonIcon_Smoochum, + [SPECIES_ELEKID] = gMonIcon_Elekid, + [SPECIES_MAGBY] = gMonIcon_Magby, + [SPECIES_MILTANK] = gMonIcon_Miltank, + [SPECIES_BLISSEY] = gMonIcon_Blissey, + [SPECIES_RAIKOU] = gMonIcon_Raikou, + [SPECIES_ENTEI] = gMonIcon_Entei, + [SPECIES_SUICUNE] = gMonIcon_Suicune, + [SPECIES_LARVITAR] = gMonIcon_Larvitar, + [SPECIES_PUPITAR] = gMonIcon_Pupitar, + [SPECIES_TYRANITAR] = gMonIcon_Tyranitar, + [SPECIES_LUGIA] = gMonIcon_Lugia, + [SPECIES_HO_OH] = gMonIcon_HoOh, + [SPECIES_CELEBI] = gMonIcon_Celebi, + [SPECIES_OLD_UNOWN_B] = gMonIcon_QuestionMark, + [SPECIES_OLD_UNOWN_C] = gMonIcon_QuestionMark, + [SPECIES_OLD_UNOWN_D] = gMonIcon_QuestionMark, + [SPECIES_OLD_UNOWN_E] = gMonIcon_QuestionMark, + [SPECIES_OLD_UNOWN_F] = gMonIcon_QuestionMark, + [SPECIES_OLD_UNOWN_G] = gMonIcon_QuestionMark, + [SPECIES_OLD_UNOWN_H] = gMonIcon_QuestionMark, + [SPECIES_OLD_UNOWN_I] = gMonIcon_QuestionMark, + [SPECIES_OLD_UNOWN_J] = gMonIcon_QuestionMark, + [SPECIES_OLD_UNOWN_K] = gMonIcon_QuestionMark, + [SPECIES_OLD_UNOWN_L] = gMonIcon_QuestionMark, + [SPECIES_OLD_UNOWN_M] = gMonIcon_QuestionMark, + [SPECIES_OLD_UNOWN_N] = gMonIcon_QuestionMark, + [SPECIES_OLD_UNOWN_O] = gMonIcon_QuestionMark, + [SPECIES_OLD_UNOWN_P] = gMonIcon_QuestionMark, + [SPECIES_OLD_UNOWN_Q] = gMonIcon_QuestionMark, + [SPECIES_OLD_UNOWN_R] = gMonIcon_QuestionMark, + [SPECIES_OLD_UNOWN_S] = gMonIcon_QuestionMark, + [SPECIES_OLD_UNOWN_T] = gMonIcon_QuestionMark, + [SPECIES_OLD_UNOWN_U] = gMonIcon_QuestionMark, + [SPECIES_OLD_UNOWN_V] = gMonIcon_QuestionMark, + [SPECIES_OLD_UNOWN_W] = gMonIcon_QuestionMark, + [SPECIES_OLD_UNOWN_X] = gMonIcon_QuestionMark, + [SPECIES_OLD_UNOWN_Y] = gMonIcon_QuestionMark, + [SPECIES_OLD_UNOWN_Z] = gMonIcon_QuestionMark, + [SPECIES_TREECKO] = gMonIcon_Treecko, + [SPECIES_GROVYLE] = gMonIcon_Grovyle, + [SPECIES_SCEPTILE] = gMonIcon_Sceptile, + [SPECIES_TORCHIC] = gMonIcon_Torchic, + [SPECIES_COMBUSKEN] = gMonIcon_Combusken, + [SPECIES_BLAZIKEN] = gMonIcon_Blaziken, + [SPECIES_MUDKIP] = gMonIcon_Mudkip, + [SPECIES_MARSHTOMP] = gMonIcon_Marshtomp, + [SPECIES_SWAMPERT] = gMonIcon_Swampert, + [SPECIES_POOCHYENA] = gMonIcon_Poochyena, + [SPECIES_MIGHTYENA] = gMonIcon_Mightyena, + [SPECIES_ZIGZAGOON] = gMonIcon_Zigzagoon, + [SPECIES_LINOONE] = gMonIcon_Linoone, + [SPECIES_WURMPLE] = gMonIcon_Wurmple, + [SPECIES_SILCOON] = gMonIcon_Silcoon, + [SPECIES_BEAUTIFLY] = gMonIcon_Beautifly, + [SPECIES_CASCOON] = gMonIcon_Cascoon, + [SPECIES_DUSTOX] = gMonIcon_Dustox, + [SPECIES_LOTAD] = gMonIcon_Lotad, + [SPECIES_LOMBRE] = gMonIcon_Lombre, + [SPECIES_LUDICOLO] = gMonIcon_Ludicolo, + [SPECIES_SEEDOT] = gMonIcon_Seedot, + [SPECIES_NUZLEAF] = gMonIcon_Nuzleaf, + [SPECIES_SHIFTRY] = gMonIcon_Shiftry, + [SPECIES_NINCADA] = gMonIcon_Nincada, + [SPECIES_NINJASK] = gMonIcon_Ninjask, + [SPECIES_SHEDINJA] = gMonIcon_Shedinja, + [SPECIES_TAILLOW] = gMonIcon_Taillow, + [SPECIES_SWELLOW] = gMonIcon_Swellow, + [SPECIES_SHROOMISH] = gMonIcon_Shroomish, + [SPECIES_BRELOOM] = gMonIcon_Breloom, + [SPECIES_SPINDA] = gMonIcon_Spinda, + [SPECIES_WINGULL] = gMonIcon_Wingull, + [SPECIES_PELIPPER] = gMonIcon_Pelipper, + [SPECIES_SURSKIT] = gMonIcon_Surskit, + [SPECIES_MASQUERAIN] = gMonIcon_Masquerain, + [SPECIES_WAILMER] = gMonIcon_Wailmer, + [SPECIES_WAILORD] = gMonIcon_Wailord, + [SPECIES_SKITTY] = gMonIcon_Skitty, + [SPECIES_DELCATTY] = gMonIcon_Delcatty, + [SPECIES_KECLEON] = gMonIcon_Kecleon, + [SPECIES_BALTOY] = gMonIcon_Baltoy, + [SPECIES_CLAYDOL] = gMonIcon_Claydol, + [SPECIES_NOSEPASS] = gMonIcon_Nosepass, + [SPECIES_TORKOAL] = gMonIcon_Torkoal, + [SPECIES_SABLEYE] = gMonIcon_Sableye, + [SPECIES_BARBOACH] = gMonIcon_Barboach, + [SPECIES_WHISCASH] = gMonIcon_Whiscash, + [SPECIES_LUVDISC] = gMonIcon_Luvdisc, + [SPECIES_CORPHISH] = gMonIcon_Corphish, + [SPECIES_CRAWDAUNT] = gMonIcon_Crawdaunt, + [SPECIES_FEEBAS] = gMonIcon_Feebas, + [SPECIES_MILOTIC] = gMonIcon_Milotic, + [SPECIES_CARVANHA] = gMonIcon_Carvanha, + [SPECIES_SHARPEDO] = gMonIcon_Sharpedo, + [SPECIES_TRAPINCH] = gMonIcon_Trapinch, + [SPECIES_VIBRAVA] = gMonIcon_Vibrava, + [SPECIES_FLYGON] = gMonIcon_Flygon, + [SPECIES_MAKUHITA] = gMonIcon_Makuhita, + [SPECIES_HARIYAMA] = gMonIcon_Hariyama, + [SPECIES_ELECTRIKE] = gMonIcon_Electrike, + [SPECIES_MANECTRIC] = gMonIcon_Manectric, + [SPECIES_NUMEL] = gMonIcon_Numel, + [SPECIES_CAMERUPT] = gMonIcon_Camerupt, + [SPECIES_SPHEAL] = gMonIcon_Spheal, + [SPECIES_SEALEO] = gMonIcon_Sealeo, + [SPECIES_WALREIN] = gMonIcon_Walrein, + [SPECIES_CACNEA] = gMonIcon_Cacnea, + [SPECIES_CACTURNE] = gMonIcon_Cacturne, + [SPECIES_SNORUNT] = gMonIcon_Snorunt, + [SPECIES_GLALIE] = gMonIcon_Glalie, + [SPECIES_LUNATONE] = gMonIcon_Lunatone, + [SPECIES_SOLROCK] = gMonIcon_Solrock, + [SPECIES_AZURILL] = gMonIcon_Azurill, + [SPECIES_SPOINK] = gMonIcon_Spoink, + [SPECIES_GRUMPIG] = gMonIcon_Grumpig, + [SPECIES_PLUSLE] = gMonIcon_Plusle, + [SPECIES_MINUN] = gMonIcon_Minun, + [SPECIES_MAWILE] = gMonIcon_Mawile, + [SPECIES_MEDITITE] = gMonIcon_Meditite, + [SPECIES_MEDICHAM] = gMonIcon_Medicham, + [SPECIES_SWABLU] = gMonIcon_Swablu, + [SPECIES_ALTARIA] = gMonIcon_Altaria, + [SPECIES_WYNAUT] = gMonIcon_Wynaut, + [SPECIES_DUSKULL] = gMonIcon_Duskull, + [SPECIES_DUSCLOPS] = gMonIcon_Dusclops, + [SPECIES_ROSELIA] = gMonIcon_Roselia, + [SPECIES_SLAKOTH] = gMonIcon_Slakoth, + [SPECIES_VIGOROTH] = gMonIcon_Vigoroth, + [SPECIES_SLAKING] = gMonIcon_Slaking, + [SPECIES_GULPIN] = gMonIcon_Gulpin, + [SPECIES_SWALOT] = gMonIcon_Swalot, + [SPECIES_TROPIUS] = gMonIcon_Tropius, + [SPECIES_WHISMUR] = gMonIcon_Whismur, + [SPECIES_LOUDRED] = gMonIcon_Loudred, + [SPECIES_EXPLOUD] = gMonIcon_Exploud, + [SPECIES_CLAMPERL] = gMonIcon_Clamperl, + [SPECIES_HUNTAIL] = gMonIcon_Huntail, + [SPECIES_GOREBYSS] = gMonIcon_Gorebyss, + [SPECIES_ABSOL] = gMonIcon_Absol, + [SPECIES_SHUPPET] = gMonIcon_Shuppet, + [SPECIES_BANETTE] = gMonIcon_Banette, + [SPECIES_SEVIPER] = gMonIcon_Seviper, + [SPECIES_ZANGOOSE] = gMonIcon_Zangoose, + [SPECIES_RELICANTH] = gMonIcon_Relicanth, + [SPECIES_ARON] = gMonIcon_Aron, + [SPECIES_LAIRON] = gMonIcon_Lairon, + [SPECIES_AGGRON] = gMonIcon_Aggron, + [SPECIES_CASTFORM] = gMonIcon_Castform, + [SPECIES_VOLBEAT] = gMonIcon_Volbeat, + [SPECIES_ILLUMISE] = gMonIcon_Illumise, + [SPECIES_LILEEP] = gMonIcon_Lileep, + [SPECIES_CRADILY] = gMonIcon_Cradily, + [SPECIES_ANORITH] = gMonIcon_Anorith, + [SPECIES_ARMALDO] = gMonIcon_Armaldo, + [SPECIES_RALTS] = gMonIcon_Ralts, + [SPECIES_KIRLIA] = gMonIcon_Kirlia, + [SPECIES_GARDEVOIR] = gMonIcon_Gardevoir, + [SPECIES_BAGON] = gMonIcon_Bagon, + [SPECIES_SHELGON] = gMonIcon_Shelgon, + [SPECIES_SALAMENCE] = gMonIcon_Salamence, + [SPECIES_BELDUM] = gMonIcon_Beldum, + [SPECIES_METANG] = gMonIcon_Metang, + [SPECIES_METAGROSS] = gMonIcon_Metagross, + [SPECIES_REGIROCK] = gMonIcon_Regirock, + [SPECIES_REGICE] = gMonIcon_Regice, + [SPECIES_REGISTEEL] = gMonIcon_Registeel, + [SPECIES_KYOGRE] = gMonIcon_Kyogre, + [SPECIES_GROUDON] = gMonIcon_Groudon, + [SPECIES_RAYQUAZA] = gMonIcon_Rayquaza, + [SPECIES_LATIAS] = gMonIcon_Latias, + [SPECIES_LATIOS] = gMonIcon_Latios, + [SPECIES_JIRACHI] = gMonIcon_Jirachi, + [SPECIES_DEOXYS] = gMonIcon_Deoxys, + [SPECIES_CHIMECHO] = gMonIcon_Chimecho, + [SPECIES_EGG] = gMonIcon_Egg, + [SPECIES_UNOWN_B] = gMonIcon_UnownB, + [SPECIES_UNOWN_C] = gMonIcon_UnownC, + [SPECIES_UNOWN_D] = gMonIcon_UnownD, + [SPECIES_UNOWN_E] = gMonIcon_UnownE, + [SPECIES_UNOWN_F] = gMonIcon_UnownF, + [SPECIES_UNOWN_G] = gMonIcon_UnownG, + [SPECIES_UNOWN_H] = gMonIcon_UnownH, + [SPECIES_UNOWN_I] = gMonIcon_UnownI, + [SPECIES_UNOWN_J] = gMonIcon_UnownJ, + [SPECIES_UNOWN_K] = gMonIcon_UnownK, + [SPECIES_UNOWN_L] = gMonIcon_UnownL, + [SPECIES_UNOWN_M] = gMonIcon_UnownM, + [SPECIES_UNOWN_N] = gMonIcon_UnownN, + [SPECIES_UNOWN_O] = gMonIcon_UnownO, + [SPECIES_UNOWN_P] = gMonIcon_UnownP, + [SPECIES_UNOWN_Q] = gMonIcon_UnownQ, + [SPECIES_UNOWN_R] = gMonIcon_UnownR, + [SPECIES_UNOWN_S] = gMonIcon_UnownS, + [SPECIES_UNOWN_T] = gMonIcon_UnownT, + [SPECIES_UNOWN_U] = gMonIcon_UnownU, + [SPECIES_UNOWN_V] = gMonIcon_UnownV, + [SPECIES_UNOWN_W] = gMonIcon_UnownW, + [SPECIES_UNOWN_X] = gMonIcon_UnownX, + [SPECIES_UNOWN_Y] = gMonIcon_UnownY, + [SPECIES_UNOWN_Z] = gMonIcon_UnownZ, + [SPECIES_UNOWN_EMARK] = gMonIcon_UnownExclamationMark, + [SPECIES_UNOWN_QMARK] = gMonIcon_UnownQuestionMark, }; const u8 gMonIconPaletteIndices[] = diff --git a/src/pokemon_item_effect.c b/src/pokemon_item_effect.c index 59b216af0..2542e42c3 100644 --- a/src/pokemon_item_effect.c +++ b/src/pokemon_item_effect.c @@ -1,5 +1,5 @@ #include "global.h" -#include "constants/battle_constants.h" +#include "constants/battle.h" #include "constants/hold_effects.h" #include "constants/items.h" #include "constants/species.h" @@ -21,7 +21,7 @@ extern u8 gBankInMenu; extern u8 gBattlersCount; extern u16 gBattlerPartyIndexes[]; extern u8 gActiveBattler; -extern u8 gStringBank; +extern u8 gPotentialItemEffectBattler; extern struct BattlePokemon gBattleMons[]; extern struct BattleEnigmaBerry gEnigmaBerries[]; @@ -75,7 +75,7 @@ bool8 PokemonUseItemEffects(struct Pokemon *pkmn, u16 item, u8 partyIndex, u8 mo holdEffect = ItemId_GetHoldEffect(heldItem); } - gStringBank = gBankInMenu; + gPotentialItemEffectBattler = gBankInMenu; if (gMain.inBattle) { gActiveBattler = gBankInMenu; @@ -332,8 +332,8 @@ bool8 PokemonUseItemEffects(struct Pokemon *pkmn, u16 item, u8 partyIndex, u8 mo // I have to re-use this variable to match. r5 = gActiveBattler; gActiveBattler = sp34; - EmitGetAttributes(0, 0, 0); - MarkBufferBankForExecution(gActiveBattler); + BtlController_EmitGetMonData(0, 0, 0); + MarkBattlerForControllerExec(gActiveBattler); gActiveBattler = r5; } } diff --git a/src/pokemon_size_record.c b/src/pokemon_size_record.c index 6a7ee69b3..31b879c2d 100644 --- a/src/pokemon_size_record.c +++ b/src/pokemon_size_record.c @@ -30,13 +30,13 @@ static const struct UnknownStruct sBigMonSizeTable[] = { 800, 100, 7710 }, { 900, 150, 17710 }, { 1000, 150, 32710 }, - { 1100, 100, -17826 }, - { 1200, 50, -7826 }, - { 1300, 20, -2826 }, - { 1400, 5, -826 }, - { 1500, 2, -326 }, - { 1600, 1, -126 }, - { 1700, 1, -26 }, + { 1100, 100, 47710 }, + { 1200, 50, 57710 }, + { 1300, 20, 62710 }, + { 1400, 5, 64710 }, + { 1500, 2, 65210 }, + { 1600, 1, 65410 }, + { 1700, 1, 65510 }, }; #define CM_PER_INCH 2.54 diff --git a/src/pokemon_storage_system_4.c b/src/pokemon_storage_system_4.c index 876e21f67..db35d60ea 100644 --- a/src/pokemon_storage_system_4.c +++ b/src/pokemon_storage_system_4.c @@ -12,6 +12,8 @@ #include "item.h" #include "pokemon_summary_screen.h" #include "pokemon_storage_system.h" +#include "sound.h" +#include "constants/songs.h" // Static type declarations @@ -3120,18 +3122,18 @@ s16 sub_809CF30(void) { if (gMain.newKeys & B_BUTTON) { - PlaySE(5); + PlaySE(SE_SELECT); textId++; } if (gMain.newKeys & DPAD_UP) { - PlaySE(5); + PlaySE(SE_SELECT); Menu_MoveCursor(-1); } else if (gMain.newKeys & DPAD_DOWN) { - PlaySE(5); + PlaySE(SE_SELECT); Menu_MoveCursor(1); } } diff --git a/src/pokemon_summary_screen.c b/src/pokemon_summary_screen.c index 217e8ccdf..e970cc3bc 100644 --- a/src/pokemon_summary_screen.c +++ b/src/pokemon_summary_screen.c @@ -1,6 +1,6 @@ #include "global.h" #include "battle.h" -#include "battle_anim_813F0F4.h" +#include "battle_anim_special.h" #include "contest.h" #include "data2.h" #include "daycare.h" @@ -122,7 +122,7 @@ static void SummaryScreen_PrintColoredText(const u8 *, u8, u8, u8); extern u8 StorageSystemGetNextMonIndex(struct BoxPokemon *, u8, u8, u8); -extern struct MusicPlayerInfo gMPlay_BGM; +extern struct MusicPlayerInfo gMPlayInfo_BGM; extern u8 gPPUpReadMasks[]; extern TaskFunc gUnknown_03005CF0; extern struct SpriteTemplate gUnknown_02024E8C; @@ -929,7 +929,7 @@ static void SummaryScreen_DestroyTask(u8 taskId) ResetSpriteData(); FreeAllSpritePalettes(); StopCryAndClearCrySongs(); - m4aMPlayVolumeControl(&gMPlay_BGM, 0xFFFF, 0x100); + m4aMPlayVolumeControl(&gMPlayInfo_BGM, 0xFFFF, 0x100); SetMainCallback2(pssData.callback); DestroyTask(taskId); } diff --git a/src/battle/post_battle_event_funcs.c b/src/post_battle_event_funcs.c index d0fbbec85..d0fbbec85 100644 --- a/src/battle/post_battle_event_funcs.c +++ b/src/post_battle_event_funcs.c diff --git a/src/record_mixing.c b/src/record_mixing.c index 374e73d2e..8588bf637 100644 --- a/src/record_mixing.c +++ b/src/record_mixing.c @@ -88,7 +88,7 @@ void RecordMixing_ReceiveExchangePacket(u32 a) sub_80C0514(ewram_2008000.pokeNews, sizeof(struct PlayerRecords), a); sub_80B9B1C((u8 *)&ewram_2008000.mauvilleMan, sizeof(struct PlayerRecords), a); sub_80FA4E4(ewram_2008000.easyChatPairs, sizeof(struct PlayerRecords), a); - sub_80B9C6C((u8 *)&ewram_2008000.daycareMailRecord, sizeof(struct PlayerRecords), a, ewram_2008000.tvShows); + sub_80B9C6C(&ewram_2008000.daycareMailRecord, sizeof(struct PlayerRecords), a, ewram_2008000.tvShows); sub_80B9B70(&ewram_2008000.battleTowerRecord, sizeof(struct PlayerRecords), a); sub_80B9F3C(ewram_2008000.filler11C8, a); } @@ -451,9 +451,9 @@ void sub_80B9B70(void *battleTowerRecord, u32 size, u8 index) sub_8134AC0(battleTowerRecord + size * index); } -u8 sub_80B9BBC(u16 *a) +u8 sub_80B9BBC(struct DayCareMail *a) { - return a[16]; + return a->message.itemId; } void sub_80B9BC4(u8 *a, size_t b, u8 c[][2], u8 d, u8 e) @@ -494,519 +494,126 @@ const u8 gUnknown_083D02BA[3][4] = {0, 3, 2, 1}, }; -#ifdef NONMATCHING -void sub_80B9C6C(u8 *a, u32 b, u8 c, void *d) +void sub_80B9C6C(struct RecordMixingDayCareMail *src, size_t recordSize, u8 which, TVShow *shows) { - u8 r8; - u8 sp4[4]; - u8 sp8[4]; - void *spC[4]; - u8 sp1C[4][2]; - u8 sp24[4][2]; - u8 sp3C; - u16 sp40 = Random(); - u16 i; // r3 - u16 r7; - u8 r1; - struct DayCareMisc *r6; - - //asm("":::"r8"); - SeedRng(gLinkPlayers[0].trainerId); - r8 = GetLinkPlayerCount(); - for (i = 0; i < 4; i++) { - sp4[i] = 0xFF; - sp8[i] = 0; - sp1C[i][0] = 0; - sp1C[i][1] = 0; - } - sp3C = 0; - for (i = 0; i < r8; i++) - { - r6 = (struct DayCareMisc *)(a + b * i); - if (r6->numDaycareMons != 0) - { - for (r7 = 0; r7 < r6->numDaycareMons; r7++) - { - if (r6->itemsHeld[r7] == 0) - sp1C[i][r7] = 1; - } - } - //_080B9D3C - } - //_080B9D46 - for (r7 = 0, i = 0; i < r8; i++) - { - r6 = (struct DayCareMisc *)(a + b * i); - if (sp1C[i][0] == 1 || sp1C[i][1] == 1) - sp3C++; - if (sp1C[i][0] == 1 && sp1C[i][1] == 0) + u16 i, j; + u8 linkPlayerCount; + u8 tableId; + struct RecordMixingDayCareMail *_src; + u8 which0, which1; + void *ptr; + u8 sp04[4]; + u8 sp08[4]; + struct RecordMixingDayCareMail *sp0c[4]; + u8 sp1c[4][2]; + u8 sp24[4][2]; + u8 sp34; + u16 oldSeed; + + oldSeed = Random(); + SeedRng(gLinkPlayers[0].trainerId); + linkPlayerCount = GetLinkPlayerCount(); + for (i = 0; i < 4; i++) { - sp24[r7][0] = i; - sp24[r7][1] = 0; - r7++; + sp04[i] = 0xFF; + sp08[i] = 0; + sp1c[i][0] = 0; + sp1c[i][1] = 0; } - else if (sp1C[i][0] == 0 && sp1C[i][1] == 1) + sp34 = 0; + for (i = 0; i < linkPlayerCount; i++) { - sp24[r7][0] = i; - sp24[r7][1] = 0; - r7++; + _src = (void *)src + recordSize * i; + if (_src->numDaycareMons == 0) + continue; + + for (j = 0; j < _src->numDaycareMons; j ++) + { + if (!_src->itemsHeld[j]) + sp1c[i][j] = 1; + } } - //else if (sp1C[i][0] == 1 + 1 && sp1C[i][1] + 1 == 1 + 1) - else if (sp1C[i][0] == 1 && sp1C[i][1] == 1) + + j = 0; + for (i = 0; i < linkPlayerCount; i++) { - u8 r4, r1; + _src = (void *)src + recordSize * i; + if (sp1c[i][0] == TRUE || sp1c[i][1] == TRUE) + sp34++; - sp24[r7][0] = i; - r4 = sub_80B9BBC((u16 *)&r6->data[0]); - r1 = sub_80B9BBC((u16 *)&r6->data[1]); + if (sp1c[i][0] == TRUE && sp1c[i][1] == FALSE) + { + sp24[j][0] = i; + sp24[j][1] = 0; + j++; + } + else if (sp1c[i][0] == FALSE && sp1c[i][1] == TRUE) + { + sp24[j][0] = i; + sp24[j][1] = 1; + j++; + } + else if (sp1c[i][0] == TRUE && sp1c[i][1] == TRUE) + { + u32 var1, var2; - asm(""); - if (r4 == 0 && r1 != 0) - sp24[r7][1] = 1; - else if ((r4 == 0 && r1 == 0) || (r4 != 0 && r1 != 0)) - sp24[r7][1] = Random() % 2; - else - sp24[r7][1] = 0; - /* - if (r4 == 0 && r1 != 0) - sp24[r7][1] = 1; - else if ((r4 == 0 && r1 == 0) || (r4 != 0 && r1 != 0)) - sp24[r7][1] = Random() % 2; - else - sp24[r7][1] = 0; - */ - - /* - if (r4 == 0 && r1 != 0) - sp24[r7][1] = 1; - else if ((r4 == 0 && r1 == 0) || (r4 != 0 && r1 != 0)) - //sp24[r7][1] = ((Random() << 16) >> 16) % 2; - sp24[r7][1] = Random() % 2; - else - sp24[r7][1] = 0; - */ - //_080B9E2C: - r7++; - } - } - //_080B9E3E - for (i = 0; i < 4; i++) - { - r6 = (struct DayCareMisc *)a + b * c; - spC[i] = r6; - } - r1 = sub_80B9C4C(d) % 3; - switch (sp3C) - { - case 2: - sub_80B9BC4(a, b, (u8 *)sp24, 0, 1); - break; - case 3: - { - u8 var1 = gUnknown_083D02B4[r1][0]; - u8 var2 = gUnknown_083D02B4[r1][1]; - sub_80B9BC4(a, b, (u8 *)sp24, var1, var2); + sp24[j][0] = i; + var1 = sub_80B9BBC(&_src->mail[0]); + var2 = sub_80B9BBC(&_src->mail[1]); + if (!var1 && var2) + { + register u8 one asm("r0") = 1; // boo, a fakematch + sp24[j][1] = one; + } + else if ((var1 && var2) || (!var1 && !var2)) + { + sp24[j][1] = Random() % 2; + } + else if (var1 && !var2) + { + sp24[j][1] = 0; + } + j++; + } } - break; - case 4: + + for (i = 0; i < 4; i++) { - u8 *r6 = (u8 *)sp24; - u8 var1 = gUnknown_083D02BA[r1][0]; - u8 var2 = gUnknown_083D02BA[r1][1]; - sub_80B9BC4(a, b, r6, var1, var2); + _src = &src[recordSize * which]; + sp0c[i] = _src; } + + tableId = sub_80B9C4C((void *)shows) % 3; + switch (sp34) { - u8 *r6 = (u8 *)sp24; - u8 var1 = gUnknown_083D02BA[r1][2]; - u8 var2 = gUnknown_083D02BA[r1][3]; - sub_80B9BC4(a, b, r6, var1, var2); + case 2: + sub_80B9BC4((void *)src, recordSize, sp24, 0, 1); + break; + case 3: + which0 = gUnknown_083D02B4[tableId][0]; + which1 = gUnknown_083D02B4[tableId][1]; + sub_80B9BC4((void *)src, recordSize, sp24, which0, which1); + break; + case 4: + ptr = sp24; + which0 = gUnknown_083D02BA[tableId][0]; + which1 = gUnknown_083D02BA[tableId][1]; + sub_80B9BC4((void *)src, recordSize, ptr, which0, which1); + which0 = gUnknown_083D02BA[tableId][2]; + which1 = gUnknown_083D02BA[tableId][3]; + sub_80B9BC4((void *)src, recordSize, ptr, which0, which1); + break; } - break; + + _src = (void *)src + which * recordSize; + gSaveBlock1.daycare.misc.mail[0] = _src->mail[0]; + gSaveBlock1.daycare.misc.mail[1] = _src->mail[1]; + //memcpy(&gSaveBlock1.daycare.misc.mail[0], &_src->mail[0], sizeof(struct DayCareMail)); + //memcpy(&gSaveBlock1.daycare.misc.mail[1], &_src->mail[1], sizeof(struct DayCareMail)); + SeedRng(oldSeed); } - //_080B9EF0 - //memcpy(&gSaveBlock1.filler_303C.data[0], a + b * c, 0x38); - //memcpy(&gSaveBlock1.filler_303C.data[1], a + b * c + 0x38, 0x38); - r6 = (struct DayCareMisc *)(a + b * c); - gSaveBlock1.filler_303C.data[0] = r6->data[0]; - gSaveBlock1.filler_303C.data[1] = r6->data[1]; - //memcpy(&gSaveBlock1.filler_303C.data[0], &r6->data[0], 0x38); - //memcpy(&gSaveBlock1.filler_303C.data[1], &r6->data[1], 0x38); - SeedRng(sp40); -} -#else -NAKED -void sub_80B9C6C(u8 *a, u32 b, u8 c, void *d) -{ - asm(".syntax unified\n\ - push {r4-r7,lr}\n\ - mov r7, r10\n\ - mov r6, r9\n\ - mov r5, r8\n\ - push {r5-r7}\n\ - sub sp, 0x58\n\ - str r0, [sp, 0x2C]\n\ - str r1, [sp, 0x30]\n\ - str r3, [sp, 0x38]\n\ - lsls r2, 24\n\ - lsrs r2, 24\n\ - str r2, [sp, 0x34]\n\ - bl Random\n\ - lsls r0, 16\n\ - lsrs r0, 16\n\ - str r0, [sp, 0x40]\n\ - ldr r0, _080B9DA8 @ =gLinkPlayers\n\ - ldrh r0, [r0, 0x4]\n\ - bl SeedRng\n\ - bl GetLinkPlayerCount\n\ - lsls r0, 24\n\ - lsrs r0, 24\n\ - mov r8, r0\n\ - movs r3, 0\n\ - add r0, sp, 0x1C\n\ - mov r9, r0\n\ - movs r1, 0x1D\n\ - add r1, sp\n\ - mov r10, r1\n\ - mov r2, sp\n\ - adds r2, 0xC\n\ - str r2, [sp, 0x4C]\n\ - movs r7, 0xFF\n\ - add r4, sp, 0x8\n\ - movs r2, 0\n\ - mov r6, r9\n\ - mov r5, r10\n\ -_080B9CBC:\n\ - mov r1, sp\n\ - adds r1, r3\n\ - adds r1, 0x4\n\ - ldrb r0, [r1]\n\ - orrs r0, r7\n\ - strb r0, [r1]\n\ - adds r0, r4, r3\n\ - strb r2, [r0]\n\ - lsls r1, r3, 1\n\ - adds r0, r6, r1\n\ - strb r2, [r0]\n\ - adds r1, r5, r1\n\ - strb r2, [r1]\n\ - adds r0, r3, 0x1\n\ - lsls r0, 16\n\ - lsrs r3, r0, 16\n\ - cmp r3, 0x3\n\ - bls _080B9CBC\n\ - movs r4, 0\n\ - str r4, [sp, 0x3C]\n\ - movs r3, 0\n\ - mov r1, r8\n\ - lsls r0, r1, 16\n\ - lsrs r1, r0, 16\n\ - str r0, [sp, 0x50]\n\ - ldr r4, [sp, 0x30]\n\ - ldr r0, [sp, 0x34]\n\ - adds r2, r4, 0\n\ - muls r2, r0\n\ - str r2, [sp, 0x48]\n\ - ldr r2, [sp, 0x3C]\n\ - cmp r2, r1\n\ - bcs _080B9D46\n\ - mov r8, r1\n\ -_080B9D00:\n\ - ldr r4, [sp, 0x30]\n\ - adds r0, r4, 0\n\ - muls r0, r3\n\ - ldr r1, [sp, 0x2C]\n\ - adds r6, r1, r0\n\ - ldr r0, [r6, 0x70]\n\ - cmp r0, 0\n\ - beq _080B9D3C\n\ - movs r7, 0\n\ - cmp r7, r0\n\ - bcs _080B9D3C\n\ - adds r4, r6, 0\n\ - adds r4, 0x74\n\ - mov r2, r9\n\ - lsls r1, r3, 1\n\ - movs r5, 0x1\n\ -_080B9D20:\n\ - lsls r0, r7, 1\n\ - adds r0, r4, r0\n\ - ldrh r0, [r0]\n\ - cmp r0, 0\n\ - bne _080B9D30\n\ - adds r0, r7, r1\n\ - adds r0, r2, r0\n\ - strb r5, [r0]\n\ -_080B9D30:\n\ - adds r0, r7, 0x1\n\ - lsls r0, 16\n\ - lsrs r7, r0, 16\n\ - ldr r0, [r6, 0x70]\n\ - cmp r7, r0\n\ - bcc _080B9D20\n\ -_080B9D3C:\n\ - adds r0, r3, 0x1\n\ - lsls r0, 16\n\ - lsrs r3, r0, 16\n\ - cmp r3, r8\n\ - bcc _080B9D00\n\ -_080B9D46:\n\ - movs r7, 0\n\ - movs r3, 0\n\ - ldr r2, [sp, 0x50]\n\ - cmp r2, 0\n\ - beq _080B9E3E\n\ - mov r4, sp\n\ - adds r4, 0x24\n\ - str r4, [sp, 0x44]\n\ - movs r0, 0x25\n\ - add r0, sp\n\ - mov r8, r0\n\ -_080B9D5C:\n\ - ldr r1, [sp, 0x30]\n\ - adds r0, r1, 0\n\ - muls r0, r3\n\ - ldr r2, [sp, 0x2C]\n\ - adds r6, r2, r0\n\ - lsls r1, r3, 1\n\ - mov r4, r9\n\ - adds r0, r4, r1\n\ - ldrb r0, [r0]\n\ - cmp r0, 0x1\n\ - beq _080B9D7C\n\ - mov r2, r10\n\ - adds r0, r2, r1\n\ - ldrb r0, [r0]\n\ - cmp r0, 0x1\n\ - bne _080B9D86\n\ -_080B9D7C:\n\ - ldr r0, [sp, 0x3C]\n\ - adds r0, 0x1\n\ - lsls r0, 24\n\ - lsrs r0, 24\n\ - str r0, [sp, 0x3C]\n\ -_080B9D86:\n\ - mov r4, r9\n\ - adds r0, r4, r1\n\ - ldrb r0, [r0]\n\ - cmp r0, 0x1\n\ - bne _080B9DAC\n\ - mov r2, r10\n\ - adds r0, r2, r1\n\ - ldrb r2, [r0]\n\ - cmp r2, 0\n\ - bne _080B9DAC\n\ -_080B9D9A:\n\ - lsls r1, r7, 1\n\ - ldr r4, [sp, 0x44]\n\ - adds r0, r4, r1\n\ - strb r3, [r0]\n\ - add r1, r8\n\ - strb r2, [r1]\n\ - b _080B9E2C\n\ - .align 2, 0\n\ -_080B9DA8: .4byte gLinkPlayers\n\ -_080B9DAC:\n\ - mov r2, r9\n\ - adds r0, r2, r1\n\ - ldrb r0, [r0]\n\ - cmp r0, 0\n\ - bne _080B9DC0\n\ - mov r4, r10\n\ - adds r0, r4, r1\n\ - ldrb r2, [r0]\n\ - cmp r2, 0x1\n\ - beq _080B9D9A\n\ -_080B9DC0:\n\ - mov r2, r9\n\ - adds r0, r2, r1\n\ - ldrb r0, [r0]\n\ - cmp r0, 0x1\n\ - bne _080B9E32\n\ - mov r4, r10\n\ - adds r0, r4, r1\n\ - ldrb r0, [r0]\n\ - cmp r0, 0x1\n\ - bne _080B9E32\n\ - lsls r5, r7, 1\n\ - ldr r1, [sp, 0x44]\n\ - adds r0, r1, r5\n\ - strb r3, [r0]\n\ - adds r0, r6, 0\n\ - str r3, [sp, 0x54]\n\ - bl sub_80B9BBC\n\ - adds r4, r0, 0\n\ - lsls r4, 24\n\ - lsrs r4, 24\n\ - adds r0, r6, 0\n\ - adds r0, 0x38\n\ - bl sub_80B9BBC\n\ - lsls r0, 24\n\ - lsrs r1, r0, 24\n\ - ldr r3, [sp, 0x54]\n\ - cmp r4, 0\n\ - bne _080B9E0A\n\ - cmp r1, 0\n\ - beq _080B9E0E\n\ - mov r2, r8\n\ - adds r1, r2, r5\n\ - movs r0, 0x1\n\ - strb r0, [r1]\n\ - b _080B9E2C\n\ -_080B9E0A:\n\ - cmp r1, 0\n\ - beq _080B9E26\n\ -_080B9E0E:\n\ - str r3, [sp, 0x54]\n\ - bl Random\n\ - mov r4, r8\n\ - adds r2, r4, r5\n\ - lsls r0, 16\n\ - lsrs r0, 16\n\ - movs r1, 0x1\n\ - ands r0, r1\n\ - strb r0, [r2]\n\ - ldr r3, [sp, 0x54]\n\ - b _080B9E2C\n\ -_080B9E26:\n\ - mov r2, r8\n\ - adds r0, r2, r5\n\ - strb r1, [r0]\n\ -_080B9E2C:\n\ - adds r0, r7, 0x1\n\ - lsls r0, 16\n\ - lsrs r7, r0, 16\n\ -_080B9E32:\n\ - adds r0, r3, 0x1\n\ - lsls r0, 16\n\ - lsrs r3, r0, 16\n\ - ldr r4, [sp, 0x50]\n\ - cmp r0, r4\n\ - bcc _080B9D5C\n\ -_080B9E3E:\n\ - movs r3, 0\n\ - ldr r1, [sp, 0x48]\n\ - lsls r0, r1, 4\n\ - subs r0, r1\n\ - lsls r0, 3\n\ - ldr r2, [sp, 0x2C]\n\ - adds r6, r2, r0\n\ - ldr r1, [sp, 0x4C]\n\ -_080B9E4E:\n\ - lsls r0, r3, 2\n\ - adds r0, r1, r0\n\ - str r6, [r0]\n\ - adds r0, r3, 0x1\n\ - lsls r0, 16\n\ - lsrs r3, r0, 16\n\ - cmp r3, 0x3\n\ - bls _080B9E4E\n\ - ldr r0, [sp, 0x38]\n\ - bl sub_80B9C4C\n\ - lsls r0, 24\n\ - lsrs r0, 24\n\ - movs r1, 0x3\n\ - bl __umodsi3\n\ - lsls r0, 24\n\ - lsrs r1, r0, 24\n\ - ldr r4, [sp, 0x3C]\n\ - cmp r4, 0x3\n\ - beq _080B9E9C\n\ - cmp r4, 0x3\n\ - bgt _080B9E82\n\ - cmp r4, 0x2\n\ - beq _080B9E8A\n\ - b _080B9EF0\n\ -_080B9E82:\n\ - ldr r0, [sp, 0x3C]\n\ - cmp r0, 0x4\n\ - beq _080B9EBC\n\ - b _080B9EF0\n\ -_080B9E8A:\n\ - add r2, sp, 0x24\n\ - movs r0, 0x1\n\ - str r0, [sp]\n\ - ldr r0, [sp, 0x2C]\n\ - ldr r1, [sp, 0x30]\n\ - movs r3, 0\n\ - bl sub_80B9BC4\n\ - b _080B9EF0\n\ -_080B9E9C:\n\ - ldr r0, _080B9EB8 @ =gUnknown_083D02B4\n\ - lsls r1, 1\n\ - adds r2, r1, r0\n\ - ldrb r3, [r2]\n\ - adds r0, 0x1\n\ - adds r1, r0\n\ - ldrb r0, [r1]\n\ - add r2, sp, 0x24\n\ - str r0, [sp]\n\ - ldr r0, [sp, 0x2C]\n\ - ldr r1, [sp, 0x30]\n\ - bl sub_80B9BC4\n\ - b _080B9EF0\n\ - .align 2, 0\n\ -_080B9EB8: .4byte gUnknown_083D02B4\n\ -_080B9EBC:\n\ - add r6, sp, 0x24\n\ - ldr r4, _080B9F2C @ =gUnknown_083D02BA\n\ - lsls r5, r1, 2\n\ - adds r0, r5, r4\n\ - ldrb r3, [r0]\n\ - adds r0, r4, 0x1\n\ - adds r0, r5, r0\n\ - ldrb r0, [r0]\n\ - str r0, [sp]\n\ - ldr r0, [sp, 0x2C]\n\ - ldr r1, [sp, 0x30]\n\ - adds r2, r6, 0\n\ - bl sub_80B9BC4\n\ - adds r0, r4, 0x2\n\ - adds r0, r5, r0\n\ - ldrb r3, [r0]\n\ - adds r4, 0x3\n\ - adds r5, r4\n\ - ldrb r0, [r5]\n\ - str r0, [sp]\n\ - ldr r0, [sp, 0x2C]\n\ - ldr r1, [sp, 0x30]\n\ - adds r2, r6, 0\n\ - bl sub_80B9BC4\n\ -_080B9EF0:\n\ - ldr r1, [sp, 0x2C]\n\ - ldr r2, [sp, 0x48]\n\ - adds r6, r1, r2\n\ - ldr r4, _080B9F30 @ =gSaveBlock1\n\ - ldr r1, _080B9F34 @ =0x0000303c\n\ - adds r0, r4, r1\n\ - adds r1, r6, 0\n\ - movs r2, 0x38\n\ - bl memcpy\n\ - ldr r2, _080B9F38 @ =0x00003074\n\ - adds r4, r2\n\ - adds r1, r6, 0\n\ - adds r1, 0x38\n\ - adds r0, r4, 0\n\ - movs r2, 0x38\n\ - bl memcpy\n\ - ldr r0, [sp, 0x40]\n\ - bl SeedRng\n\ - add sp, 0x58\n\ - pop {r3-r5}\n\ - mov r8, r3\n\ - mov r9, r4\n\ - mov r10, r5\n\ - pop {r4-r7}\n\ - pop {r0}\n\ - bx r0\n\ - .align 2, 0\n\ -_080B9F2C: .4byte gUnknown_083D02BA\n\ -_080B9F30: .4byte gSaveBlock1\n\ -_080B9F34: .4byte 0x0000303c\n\ -_080B9F38: .4byte 0x00003074\n\ - .syntax divided\n"); } -#endif void sub_80B9F3C(u16 *a, u8 b) { diff --git a/src/battle/reshow_battle_screen.c b/src/reshow_battle_screen.c index 712ec3ea8..ad18b3594 100644 --- a/src/battle/reshow_battle_screen.c +++ b/src/reshow_battle_screen.c @@ -17,9 +17,9 @@ extern u8 gBankInMenu; extern u16 gBattlerPartyIndexes[4]; extern u8 gBattlersCount; extern u16 gBattleTypeFlags; -extern u8 gBankSpriteIds[4]; +extern u8 gBattlerSpriteIds[4]; extern u8 gBattleMonForms[4]; -extern u8 gHealthboxIDs[4]; +extern u8 gHealthboxSpriteIds[4]; bool8 LoadChosenBattleElement(u8 a0); bool8 sub_8031C30(u8 a0); @@ -235,46 +235,46 @@ static void sub_807B184(u8 bank) if (GetMonData(&gEnemyParty[gBattlerPartyIndexes[bank]], MON_DATA_HP) == 0) return; GetMonSpriteTemplate_803C56C(GetMonData(&gEnemyParty[gBattlerPartyIndexes[bank]], MON_DATA_SPECIES), GetBattlerPosition(bank)); - gBankSpriteIds[bank] = CreateSprite(&gUnknown_02024E8C, GetBattlerSpriteCoord(bank, 2), posY, GetBattlerSubpriority(bank)); - gSprites[gBankSpriteIds[bank]].oam.paletteNum = bank; - gSprites[gBankSpriteIds[bank]].callback = SpriteCallbackDummy; - gSprites[gBankSpriteIds[bank]].data[0] = bank; - gSprites[gBankSpriteIds[bank]].data[2] = GetMonData(&gEnemyParty[gBattlerPartyIndexes[bank]], MON_DATA_SPECIES); - StartSpriteAnim(&gSprites[gBankSpriteIds[bank]], gBattleMonForms[bank]); + gBattlerSpriteIds[bank] = CreateSprite(&gUnknown_02024E8C, GetBattlerSpriteCoord(bank, 2), posY, GetBattlerSubpriority(bank)); + gSprites[gBattlerSpriteIds[bank]].oam.paletteNum = bank; + gSprites[gBattlerSpriteIds[bank]].callback = SpriteCallbackDummy; + gSprites[gBattlerSpriteIds[bank]].data[0] = bank; + gSprites[gBattlerSpriteIds[bank]].data[2] = GetMonData(&gEnemyParty[gBattlerPartyIndexes[bank]], MON_DATA_SPECIES); + StartSpriteAnim(&gSprites[gBattlerSpriteIds[bank]], gBattleMonForms[bank]); } else if (gBattleTypeFlags & BATTLE_TYPE_SAFARI && bank == 0) { GetMonSpriteTemplate_803C5A0(gSaveBlock2.playerGender, GetBattlerPosition(0)); - gBankSpriteIds[bank] = CreateSprite(&gUnknown_02024E8C, 0x50, + gBattlerSpriteIds[bank] = CreateSprite(&gUnknown_02024E8C, 0x50, (8 - gTrainerBackPicCoords[gSaveBlock2.playerGender].coords) * 4 + 80, GetBattlerSubpriority(0)); - gSprites[gBankSpriteIds[bank]].oam.paletteNum = bank; - gSprites[gBankSpriteIds[bank]].callback = SpriteCallbackDummy; - gSprites[gBankSpriteIds[bank]].data[0] = bank; + gSprites[gBattlerSpriteIds[bank]].oam.paletteNum = bank; + gSprites[gBattlerSpriteIds[bank]].callback = SpriteCallbackDummy; + gSprites[gBattlerSpriteIds[bank]].data[0] = bank; } else if (gBattleTypeFlags & BATTLE_TYPE_WALLY_TUTORIAL && bank == 0) { GetMonSpriteTemplate_803C5A0(2, GetBattlerPosition(0)); - gBankSpriteIds[bank] = CreateSprite(&gUnknown_02024E8C, 0x50, + gBattlerSpriteIds[bank] = CreateSprite(&gUnknown_02024E8C, 0x50, (8 - gTrainerBackPicCoords[2].coords) * 4 + 80, GetBattlerSubpriority(0)); - gSprites[gBankSpriteIds[bank]].oam.paletteNum = bank; - gSprites[gBankSpriteIds[bank]].callback = SpriteCallbackDummy; - gSprites[gBankSpriteIds[bank]].data[0] = bank; + gSprites[gBattlerSpriteIds[bank]].oam.paletteNum = bank; + gSprites[gBattlerSpriteIds[bank]].callback = SpriteCallbackDummy; + gSprites[gBattlerSpriteIds[bank]].data[0] = bank; } else { if (GetMonData(&gPlayerParty[gBattlerPartyIndexes[bank]], MON_DATA_HP) == 0) return; GetMonSpriteTemplate_803C56C(GetMonData(&gPlayerParty[gBattlerPartyIndexes[bank]], MON_DATA_SPECIES), GetBattlerPosition(bank)); - gBankSpriteIds[bank] = CreateSprite(&gUnknown_02024E8C, GetBattlerSpriteCoord(bank, 2), posY, GetBattlerSubpriority(bank)); - gSprites[gBankSpriteIds[bank]].oam.paletteNum = bank; - gSprites[gBankSpriteIds[bank]].callback = SpriteCallbackDummy; - gSprites[gBankSpriteIds[bank]].data[0] = bank; - gSprites[gBankSpriteIds[bank]].data[2] = GetMonData(&gPlayerParty[gBattlerPartyIndexes[bank]], MON_DATA_SPECIES); - StartSpriteAnim(&gSprites[gBankSpriteIds[bank]], gBattleMonForms[bank]); + gBattlerSpriteIds[bank] = CreateSprite(&gUnknown_02024E8C, GetBattlerSpriteCoord(bank, 2), posY, GetBattlerSubpriority(bank)); + gSprites[gBattlerSpriteIds[bank]].oam.paletteNum = bank; + gSprites[gBattlerSpriteIds[bank]].callback = SpriteCallbackDummy; + gSprites[gBattlerSpriteIds[bank]].data[0] = bank; + gSprites[gBattlerSpriteIds[bank]].data[2] = GetMonData(&gPlayerParty[gBattlerPartyIndexes[bank]], MON_DATA_SPECIES); + StartSpriteAnim(&gSprites[gBattlerSpriteIds[bank]], gBattleMonForms[bank]); } - gSprites[gBankSpriteIds[bank]].invisible = ewram17800[bank].invisible; + gSprites[gBattlerSpriteIds[bank]].invisible = ewram17800[bank].invisible; } } @@ -289,19 +289,19 @@ static void sub_807B508(u8 bank) return; else healthboxID = battle_make_oam_normal_battle(bank); - gHealthboxIDs[bank] = healthboxID; + gHealthboxSpriteIds[bank] = healthboxID; sub_8043F44(bank); sub_8043DFC(healthboxID); if (GetBattlerSide(bank)) - sub_8045A5C(gHealthboxIDs[bank], &gEnemyParty[gBattlerPartyIndexes[bank]], 0); + sub_8045A5C(gHealthboxSpriteIds[bank], &gEnemyParty[gBattlerPartyIndexes[bank]], 0); else if (gBattleTypeFlags & BATTLE_TYPE_SAFARI) - sub_8045A5C(gHealthboxIDs[bank], &gPlayerParty[gBattlerPartyIndexes[bank]], 10); + sub_8045A5C(gHealthboxSpriteIds[bank], &gPlayerParty[gBattlerPartyIndexes[bank]], 10); else - sub_8045A5C(gHealthboxIDs[bank], &gPlayerParty[gBattlerPartyIndexes[bank]], 0); + sub_8045A5C(gHealthboxSpriteIds[bank], &gPlayerParty[gBattlerPartyIndexes[bank]], 0); if (GetBattlerPosition(bank) == 3 || GetBattlerPosition(bank) == 2) - nullsub_11(gHealthboxIDs[bank], 1); + nullsub_11(gHealthboxSpriteIds[bank], 1); else - nullsub_11(gHealthboxIDs[bank], 0); + nullsub_11(gHealthboxSpriteIds[bank], 0); if (GetBattlerSide(bank)) { if (GetMonData(&gEnemyParty[gBattlerPartyIndexes[bank]], MON_DATA_HP) == 0) diff --git a/src/rom3.c b/src/rom3.c index a9433695d..c4a6ffec0 100644 --- a/src/rom3.c +++ b/src/rom3.c @@ -1,7 +1,7 @@ #include "global.h" #include "battle.h" #include "battle_811DA74.h" -#include "battle_ai.h" +#include "battle_ai_script_commands.h" #include "battle_anim.h" #include "battle_anim_81258BC.h" #include "battle_anim_8137220.h" @@ -23,15 +23,15 @@ extern u16 gBattleTypeFlags; extern u16 gBattleWeather; extern struct BattlePokemon gBattleMons[]; -static EWRAM_DATA u8 gUnknown_020238C4 = 0; -static EWRAM_DATA u8 gUnknown_020238C5 = 0; +static EWRAM_DATA u8 sLinkSendTaskId = 0; +static EWRAM_DATA u8 sLinkReceiveTaskId = 0; static EWRAM_DATA u8 gUnknown_020238C6 = 0; extern u32 gUnknown_020239FC; extern u8 gBattleBufferA[][0x200]; extern u8 gBattleBufferB[][0x200]; extern u8 gActiveBattler; -extern u32 gBattleExecBuffer; +extern u32 gBattleControllerExecFlags; extern u8 gBattlersCount; extern u16 gBattlerPartyIndexes[]; extern u8 gBanksBySide[]; @@ -39,10 +39,10 @@ extern u16 gCurrentMove; extern u16 gChosenMove; extern u16 gLastUsedItem; extern u8 gLastUsedAbility; -extern u8 gBankAttacker; -extern u8 gBankTarget; -extern u8 gEffectBank; -extern u8 gStringBank; +extern u8 gBattlerAttacker; +extern u8 gBattlerTarget; +extern u8 gEffectBattler; +extern u8 gPotentialItemEffectBattler; extern u8 gAbsentBattlerFlags; extern u8 gMultiHitCounter; extern u8 gUnknown_02024C78; @@ -53,7 +53,7 @@ extern u8 gBattleTextBuff1[]; extern u8 gBattleTextBuff2[]; extern u8 gBattleTextBuff3[]; extern void (*gBattleMainFunc)(void); -extern void (*gBattleBankFunc[])(void); +extern void (*gBattlerControllerFuncs[])(void); u8 gBattleBuffersTransferData[0x170]; @@ -63,7 +63,7 @@ void sub_800B858(void) { OpenLink(); CreateTask(sub_8083C50, 0); - sub_800BF28(); + CreateTasksForSendRecvLinkBuffers(); } } @@ -71,20 +71,20 @@ void sub_800B858(void) extern u8 gUnknown_02023A14_50; #endif -void setup_poochyena_battle(void) +void SetUpBattleVarsAndBirchPoochyena(void) { s32 i; gBattleMainFunc = nullsub_41; for (i = 0; i < 4; i++) { - gBattleBankFunc[i] = nullsub_91; + gBattlerControllerFuncs[i] = nullsub_91; gBanksBySide[i] = 0xFF; gActionSelectionCursor[i] = 0; gMoveSelectionCursor[i] = 0; } sub_800B858(); - gBattleExecBuffer = 0; + gBattleControllerExecFlags = 0; ClearBattleAnimationVars(); ClearBattleMonForms(); BattleAI_HandleItemUseBeforeAISetup(); @@ -131,26 +131,26 @@ void sub_800B9A8(void) { gBattleMainFunc = sub_8010800; if (gBattleTypeFlags & BATTLE_TYPE_SAFARI) - gBattleBankFunc[0] = SetBankFuncToSafariBufferRunCommand; + gBattlerControllerFuncs[0] = SetBankFuncToSafariBufferRunCommand; else if (gBattleTypeFlags & BATTLE_TYPE_WALLY_TUTORIAL) - gBattleBankFunc[0] = SetBankFuncToWallyBufferRunCommand; + gBattlerControllerFuncs[0] = SetBankFuncToWallyBufferRunCommand; else - gBattleBankFunc[0] = SetBankFuncToPlayerBufferRunCommand; + gBattlerControllerFuncs[0] = SetBankFuncToPlayerBufferRunCommand; gBanksBySide[0] = 0; - gBattleBankFunc[1] = SetBankFuncToOpponentBufferRunCommand; + gBattlerControllerFuncs[1] = SetBankFuncToOpponentBufferRunCommand; gBanksBySide[1] = 1; gBattlersCount = 2; } else { gBattleMainFunc = sub_8010800; - gBattleBankFunc[0] = SetBankFuncToPlayerBufferRunCommand; + gBattlerControllerFuncs[0] = SetBankFuncToPlayerBufferRunCommand; gBanksBySide[0] = 0; - gBattleBankFunc[1] = SetBankFuncToOpponentBufferRunCommand; + gBattlerControllerFuncs[1] = SetBankFuncToOpponentBufferRunCommand; gBanksBySide[1] = 1; - gBattleBankFunc[2] = SetBankFuncToPlayerBufferRunCommand; + gBattlerControllerFuncs[2] = SetBankFuncToPlayerBufferRunCommand; gBanksBySide[2] = 2; - gBattleBankFunc[3] = SetBankFuncToOpponentBufferRunCommand; + gBattlerControllerFuncs[3] = SetBankFuncToOpponentBufferRunCommand; gBanksBySide[3] = 3; gBattlersCount = 4; } @@ -166,17 +166,17 @@ void sub_800BA78(void) if (gBattleTypeFlags & BATTLE_TYPE_WILD) { gBattleMainFunc = sub_8010800; - gBattleBankFunc[0] = SetBankFuncToPlayerBufferRunCommand; + gBattlerControllerFuncs[0] = SetBankFuncToPlayerBufferRunCommand; gBanksBySide[0] = 0; - gBattleBankFunc[1] = SetBankFuncToLinkOpponentBufferRunCommand; + gBattlerControllerFuncs[1] = SetBankFuncToLinkOpponentBufferRunCommand; gBanksBySide[1] = 1; gBattlersCount = 2; } else { - gBattleBankFunc[1] = SetBankFuncToPlayerBufferRunCommand; + gBattlerControllerFuncs[1] = SetBankFuncToPlayerBufferRunCommand; gBanksBySide[1] = 0; - gBattleBankFunc[0] = SetBankFuncToLinkOpponentBufferRunCommand; + gBattlerControllerFuncs[0] = SetBankFuncToLinkOpponentBufferRunCommand; gBanksBySide[0] = 1; gBattlersCount = 2; } @@ -187,25 +187,25 @@ void sub_800BA78(void) if (gBattleTypeFlags & BATTLE_TYPE_WILD) { gBattleMainFunc = sub_8010800; - gBattleBankFunc[0] = SetBankFuncToPlayerBufferRunCommand; + gBattlerControllerFuncs[0] = SetBankFuncToPlayerBufferRunCommand; gBanksBySide[0] = 0; - gBattleBankFunc[1] = SetBankFuncToLinkOpponentBufferRunCommand; + gBattlerControllerFuncs[1] = SetBankFuncToLinkOpponentBufferRunCommand; gBanksBySide[1] = 1; - gBattleBankFunc[2] = SetBankFuncToPlayerBufferRunCommand; + gBattlerControllerFuncs[2] = SetBankFuncToPlayerBufferRunCommand; gBanksBySide[2] = 2; - gBattleBankFunc[3] = SetBankFuncToLinkOpponentBufferRunCommand; + gBattlerControllerFuncs[3] = SetBankFuncToLinkOpponentBufferRunCommand; gBanksBySide[3] = 3; gBattlersCount = 4; } else { - gBattleBankFunc[1] = SetBankFuncToPlayerBufferRunCommand; + gBattlerControllerFuncs[1] = SetBankFuncToPlayerBufferRunCommand; gBanksBySide[1] = 0; - gBattleBankFunc[0] = SetBankFuncToLinkOpponentBufferRunCommand; + gBattlerControllerFuncs[0] = SetBankFuncToLinkOpponentBufferRunCommand; gBanksBySide[0] = 1; - gBattleBankFunc[3] = SetBankFuncToPlayerBufferRunCommand; + gBattlerControllerFuncs[3] = SetBankFuncToPlayerBufferRunCommand; gBanksBySide[3] = 2; - gBattleBankFunc[2] = SetBankFuncToLinkOpponentBufferRunCommand; + gBattlerControllerFuncs[2] = SetBankFuncToLinkOpponentBufferRunCommand; gBanksBySide[2] = 3; gBattlersCount = 4; @@ -217,69 +217,69 @@ void sub_800BA78(void) gBattleMainFunc = sub_8010800; for (i = 0; i < 4; i++) { - switch (gLinkPlayers[i].lp_field_18) + switch (gLinkPlayers[i].id) { case 0: case 3: - sub_8094978(gLinkPlayers[i].lp_field_18, 0); + sub_8094978(gLinkPlayers[i].id, 0); break; case 1: case 2: - sub_8094978(gLinkPlayers[i].lp_field_18, 1); + sub_8094978(gLinkPlayers[i].id, 1); break; } if (i == multiplayerId) { - gBattleBankFunc[gLinkPlayers[i].lp_field_18] = SetBankFuncToPlayerBufferRunCommand; - switch (gLinkPlayers[i].lp_field_18) + gBattlerControllerFuncs[gLinkPlayers[i].id] = SetBankFuncToPlayerBufferRunCommand; + switch (gLinkPlayers[i].id) { case 0: case 3: - gBanksBySide[gLinkPlayers[i].lp_field_18] = 0; - gBattlerPartyIndexes[gLinkPlayers[i].lp_field_18] = 0; + gBanksBySide[gLinkPlayers[i].id] = 0; + gBattlerPartyIndexes[gLinkPlayers[i].id] = 0; break; case 1: case 2: - gBanksBySide[gLinkPlayers[i].lp_field_18] = 2; - gBattlerPartyIndexes[gLinkPlayers[i].lp_field_18] = 3; + gBanksBySide[gLinkPlayers[i].id] = 2; + gBattlerPartyIndexes[gLinkPlayers[i].id] = 3; break; } } else { - if ((!(gLinkPlayers[i].lp_field_18 & 1) && !(gLinkPlayers[multiplayerId].lp_field_18 & 1)) - || ((gLinkPlayers[i].lp_field_18 & 1) && (gLinkPlayers[multiplayerId].lp_field_18 & 1))) + if ((!(gLinkPlayers[i].id & 1) && !(gLinkPlayers[multiplayerId].id & 1)) + || ((gLinkPlayers[i].id & 1) && (gLinkPlayers[multiplayerId].id & 1))) { - gBattleBankFunc[gLinkPlayers[i].lp_field_18] = SetBankFuncToLinkPartnerBufferRunCommand; - switch (gLinkPlayers[i].lp_field_18) + gBattlerControllerFuncs[gLinkPlayers[i].id] = SetBankFuncToLinkPartnerBufferRunCommand; + switch (gLinkPlayers[i].id) { case 0: case 3: - gBanksBySide[gLinkPlayers[i].lp_field_18] = 0; - gBattlerPartyIndexes[gLinkPlayers[i].lp_field_18] = 0; + gBanksBySide[gLinkPlayers[i].id] = 0; + gBattlerPartyIndexes[gLinkPlayers[i].id] = 0; break; case 1: case 2: - gBanksBySide[gLinkPlayers[i].lp_field_18] = 2; - gBattlerPartyIndexes[gLinkPlayers[i].lp_field_18] = 3; + gBanksBySide[gLinkPlayers[i].id] = 2; + gBattlerPartyIndexes[gLinkPlayers[i].id] = 3; break; } } else { - gBattleBankFunc[gLinkPlayers[i].lp_field_18] = SetBankFuncToLinkOpponentBufferRunCommand; - switch (gLinkPlayers[i].lp_field_18) + gBattlerControllerFuncs[gLinkPlayers[i].id] = SetBankFuncToLinkOpponentBufferRunCommand; + switch (gLinkPlayers[i].id) { case 0: case 3: - gBanksBySide[gLinkPlayers[i].lp_field_18] = 1; - gBattlerPartyIndexes[gLinkPlayers[i].lp_field_18] = 0; + gBanksBySide[gLinkPlayers[i].id] = 1; + gBattlerPartyIndexes[gLinkPlayers[i].id] = 0; break; case 1: case 2: - gBanksBySide[gLinkPlayers[i].lp_field_18] = 3; - gBattlerPartyIndexes[gLinkPlayers[i].lp_field_18] = 3; + gBanksBySide[gLinkPlayers[i].id] = 3; + gBattlerPartyIndexes[gLinkPlayers[i].id] = 3; break; } } @@ -386,19 +386,21 @@ void PrepareBufferDataTransfer(u8 a, u8 *data, u16 size) } } -void sub_800BF28(void) +void CreateTasksForSendRecvLinkBuffers(void) { - gUnknown_020238C4 = CreateTask(sub_800C1A8, 0); - gTasks[gUnknown_020238C4].data[11] = 0; - gTasks[gUnknown_020238C4].data[12] = 0; - gTasks[gUnknown_020238C4].data[13] = 0; - gTasks[gUnknown_020238C4].data[14] = 0; - gTasks[gUnknown_020238C4].data[15] = 0; - gUnknown_020238C5 = CreateTask(sub_800C47C, 0); - gTasks[gUnknown_020238C5].data[12] = 0; - gTasks[gUnknown_020238C5].data[13] = 0; - gTasks[gUnknown_020238C5].data[14] = 0; - gTasks[gUnknown_020238C5].data[15] = 0; + sLinkSendTaskId = CreateTask(Task_HandleSendLinkBuffersData, 0); + gTasks[sLinkSendTaskId].data[11] = 0; + gTasks[sLinkSendTaskId].data[12] = 0; + gTasks[sLinkSendTaskId].data[13] = 0; + gTasks[sLinkSendTaskId].data[14] = 0; + gTasks[sLinkSendTaskId].data[15] = 0; + + sLinkReceiveTaskId = CreateTask(Task_HandleCopyReceivedLinkBuffersData, 0); + gTasks[sLinkReceiveTaskId].data[12] = 0; + gTasks[sLinkReceiveTaskId].data[13] = 0; + gTasks[sLinkReceiveTaskId].data[14] = 0; + gTasks[sLinkReceiveTaskId].data[15] = 0; + gUnknown_020238C6 = 0; CpuFill16(0, EWRAM_14000, 0x2000); } @@ -409,27 +411,27 @@ void PrepareBufferDataTransferLink(u8 a, u16 size, u8 *data) int i; r9 = size - size % 4 + 4; - if (gTasks[gUnknown_020238C4].data[14] + r9 + 9 > 0x1000) + if (gTasks[sLinkSendTaskId].data[14] + r9 + 9 > 0x1000) { - gTasks[gUnknown_020238C4].data[12] = gTasks[gUnknown_020238C4].data[14]; - gTasks[gUnknown_020238C4].data[14] = 0; + gTasks[sLinkSendTaskId].data[12] = gTasks[sLinkSendTaskId].data[14]; + gTasks[sLinkSendTaskId].data[14] = 0; } - ewram14000arr(0, gTasks[gUnknown_020238C4].data[14]) = a; - ewram14000arr(1, gTasks[gUnknown_020238C4].data[14]) = gActiveBattler; - ewram14000arr(2, gTasks[gUnknown_020238C4].data[14]) = gBankAttacker; - ewram14000arr(3, gTasks[gUnknown_020238C4].data[14]) = gBankTarget; - ewram14000arr(4, gTasks[gUnknown_020238C4].data[14]) = r9; - ewram14000arr(5, gTasks[gUnknown_020238C4].data[14]) = (r9 & 0x0000FF00) >> 8; - ewram14000arr(6, gTasks[gUnknown_020238C4].data[14]) = gAbsentBattlerFlags; - ewram14000arr(7, gTasks[gUnknown_020238C4].data[14]) = gEffectBank; + ewram14000arr(0, gTasks[sLinkSendTaskId].data[14]) = a; + ewram14000arr(1, gTasks[sLinkSendTaskId].data[14]) = gActiveBattler; + ewram14000arr(2, gTasks[sLinkSendTaskId].data[14]) = gBattlerAttacker; + ewram14000arr(3, gTasks[sLinkSendTaskId].data[14]) = gBattlerTarget; + ewram14000arr(4, gTasks[sLinkSendTaskId].data[14]) = r9; + ewram14000arr(5, gTasks[sLinkSendTaskId].data[14]) = (r9 & 0x0000FF00) >> 8; + ewram14000arr(6, gTasks[sLinkSendTaskId].data[14]) = gAbsentBattlerFlags; + ewram14000arr(7, gTasks[sLinkSendTaskId].data[14]) = gEffectBattler; for (i = 0; i < size; i++) - ewram14008arr(i, gTasks[gUnknown_020238C4].data[14]) = data[i]; - gTasks[gUnknown_020238C4].data[14] = gTasks[gUnknown_020238C4].data[14] + r9 + 8; + ewram14008arr(i, gTasks[sLinkSendTaskId].data[14]) = data[i]; + gTasks[sLinkSendTaskId].data[14] = gTasks[sLinkSendTaskId].data[14] + r9 + 8; } -void sub_800C1A8(u8 taskId) +void Task_HandleSendLinkBuffersData(u8 taskId) { u16 var; @@ -519,24 +521,24 @@ void sub_800C35C(void) recvBuffer = gBlockRecvBuffer[i]; #endif r6 = gBlockRecvBuffer[i][2]; - if (gTasks[gUnknown_020238C5].data[14] + 9 + r6 > 0x1000) + if (gTasks[sLinkReceiveTaskId].data[14] + 9 + r6 > 0x1000) { - gTasks[gUnknown_020238C5].data[12] = gTasks[gUnknown_020238C5].data[14]; - gTasks[gUnknown_020238C5].data[14] = 0; + gTasks[sLinkReceiveTaskId].data[12] = gTasks[sLinkReceiveTaskId].data[14]; + gTasks[sLinkReceiveTaskId].data[14] = 0; } //_0800C402 - dest = EWRAM_15000 + gTasks[gUnknown_020238C5].data[14]; + dest = EWRAM_15000 + gTasks[sLinkReceiveTaskId].data[14]; src = (u8 *)recvBuffer; for (j = 0; j < r6 + 8; j++) dest[j] = src[j]; - gTasks[gUnknown_020238C5].data[14] = gTasks[gUnknown_020238C5].data[14] + r6 + 8; + gTasks[sLinkReceiveTaskId].data[14] = gTasks[sLinkReceiveTaskId].data[14] + r6 + 8; } //_0800C446 } } } -void sub_800C47C(u8 taskId) +void Task_HandleCopyReceivedLinkBuffersData(u8 taskId) { u16 r7; u8 r4; @@ -555,16 +557,16 @@ void sub_800C47C(u8 taskId) switch (ewram15000arr(0, gTasks[taskId].data[15])) { case 0: - if (gBattleExecBuffer & gBitTable[r4]) + if (gBattleControllerExecFlags & gBitTable[r4]) return; memcpy(gBattleBufferA[r4], &ewram15000arr(8, gTasks[taskId].data[15]), r7); sub_80155A4(r4); if (!(gBattleTypeFlags & BATTLE_TYPE_WILD)) { - gBankAttacker = ewram15000arr(2, gTasks[taskId].data[15]); - gBankTarget = ewram15000arr(3, gTasks[taskId].data[15]); + gBattlerAttacker = ewram15000arr(2, gTasks[taskId].data[15]); + gBattlerTarget = ewram15000arr(3, gTasks[taskId].data[15]); gAbsentBattlerFlags = ewram15000arr(6, gTasks[taskId].data[15]); - gEffectBank = ewram15000arr(7, gTasks[taskId].data[15]); + gEffectBattler = ewram15000arr(7, gTasks[taskId].data[15]); } break; case 1: @@ -572,32 +574,33 @@ void sub_800C47C(u8 taskId) break; case 2: r2 = ewram15000arr(8, gTasks[taskId].data[15]); - gBattleExecBuffer &= ~(gBitTable[r4] << (r2 * 4)); + gBattleControllerExecFlags &= ~(gBitTable[r4] << (r2 * 4)); break; } + gTasks[taskId].data[15] = gTasks[taskId].data[15] + r7 + 8; } } -void EmitGetAttributes(u8 a, u8 b, u8 c) +void BtlController_EmitGetMonData(u8 bufferId, u8 b, u8 c) { gBattleBuffersTransferData[0] = 0; gBattleBuffersTransferData[1] = b; gBattleBuffersTransferData[2] = c; gBattleBuffersTransferData[3] = 0; - PrepareBufferDataTransfer(a, gBattleBuffersTransferData, 4); + PrepareBufferDataTransfer(bufferId, gBattleBuffersTransferData, 4); } -void Emitcmd1(u8 a, u8 b, u8 c) +void BtlController_EmitGetRawMonData(u8 bufferId, u8 b, u8 c) { gBattleBuffersTransferData[0] = 1; gBattleBuffersTransferData[1] = b; gBattleBuffersTransferData[2] = c; gBattleBuffersTransferData[3] = 0; - PrepareBufferDataTransfer(a, gBattleBuffersTransferData, 4); + PrepareBufferDataTransfer(bufferId, gBattleBuffersTransferData, 4); } -void EmitSetMonData(u8 a, u8 b, u8 c, u8 d, void *e) +void BtlController_EmitSetMonData(u8 bufferId, u8 b, u8 c, u8 d, void *e) { int i; @@ -606,10 +609,10 @@ void EmitSetMonData(u8 a, u8 b, u8 c, u8 d, void *e) gBattleBuffersTransferData[2] = c; for (i = 0; i < d; i++) gBattleBuffersTransferData[3 + i] = *(u8*)(e++); - PrepareBufferDataTransfer(a, gBattleBuffersTransferData, d + 3); + PrepareBufferDataTransfer(bufferId, gBattleBuffersTransferData, d + 3); } -void Emitcmd3(u8 a, u8 b, u8 c, u8 *d) +void BtlController_EmitSetRawMonData(u8 bufferId, u8 b, u8 c, u8 *d) { int i; @@ -618,35 +621,35 @@ void Emitcmd3(u8 a, u8 b, u8 c, u8 *d) gBattleBuffersTransferData[2] = c; for (i = 0; i < c; i++) gBattleBuffersTransferData[3 + i] = *(d++); - PrepareBufferDataTransfer(a, gBattleBuffersTransferData, c + 3); + PrepareBufferDataTransfer(bufferId, gBattleBuffersTransferData, c + 3); } -void EmitLoadPokeSprite(u8 a) +void BtlController_EmitLoadMonSprite(u8 bufferId) { gBattleBuffersTransferData[0] = 4; gBattleBuffersTransferData[1] = 4; gBattleBuffersTransferData[2] = 4; gBattleBuffersTransferData[3] = 4; - PrepareBufferDataTransfer(a, gBattleBuffersTransferData, 4); + PrepareBufferDataTransfer(bufferId, gBattleBuffersTransferData, 4); } -void EmitSendOutPoke(u8 a, u8 b, u8 c) +void BtlController_EmitSwitchInAnim(u8 bufferId, u8 b, u8 c) { gBattleBuffersTransferData[0] = 5; gBattleBuffersTransferData[1] = b; gBattleBuffersTransferData[2] = c; gBattleBuffersTransferData[3] = 5; - PrepareBufferDataTransfer(a, gBattleBuffersTransferData, 4); + PrepareBufferDataTransfer(bufferId, gBattleBuffersTransferData, 4); } -void EmitReturnPokeToBall(u8 a, u8 b) +void BtlController_EmitReturnMonToBall(u8 bufferId, u8 b) { gBattleBuffersTransferData[0] = 6; gBattleBuffersTransferData[1] = b; - PrepareBufferDataTransfer(a, gBattleBuffersTransferData, 2); + PrepareBufferDataTransfer(bufferId, gBattleBuffersTransferData, 2); } -void EmitTrainerThrow(u8 a) +void BtlController_EmitDrawTrainerPic(u8 a) { gBattleBuffersTransferData[0] = 7; gBattleBuffersTransferData[1] = 7; @@ -655,7 +658,7 @@ void EmitTrainerThrow(u8 a) PrepareBufferDataTransfer(a, gBattleBuffersTransferData, 4); } -void EmitTrainerSlide(u8 a) +void BtlController_EmitTrainerSlide(u8 a) { gBattleBuffersTransferData[0] = 8; gBattleBuffersTransferData[1] = 8; @@ -664,7 +667,7 @@ void EmitTrainerSlide(u8 a) PrepareBufferDataTransfer(a, gBattleBuffersTransferData, 4); } -void EmitTrainerSlideBack(u8 a) +void BtlController_EmitTrainerSlideBack(u8 a) { gBattleBuffersTransferData[0] = 9; gBattleBuffersTransferData[1] = 9; @@ -673,7 +676,7 @@ void EmitTrainerSlideBack(u8 a) PrepareBufferDataTransfer(a, gBattleBuffersTransferData, 4); } -void Emitcmd10(u8 a) +void BtlController_EmitFaintAnimation(u8 a) { gBattleBuffersTransferData[0] = 10; gBattleBuffersTransferData[1] = 10; @@ -682,7 +685,7 @@ void Emitcmd10(u8 a) PrepareBufferDataTransfer(a, gBattleBuffersTransferData, 4); } -void Emitcmd11(u8 a) +void BtlController_EmitPaletteFade(u8 a) { gBattleBuffersTransferData[0] = 11; gBattleBuffersTransferData[1] = 11; @@ -691,7 +694,7 @@ void Emitcmd11(u8 a) PrepareBufferDataTransfer(a, gBattleBuffersTransferData, 4); } -void Emitcmd12(u8 a) +void BtlController_EmitSuccessBallThrowAnim(u8 a) { gBattleBuffersTransferData[0] = 12; gBattleBuffersTransferData[1] = 12; @@ -700,14 +703,14 @@ void Emitcmd12(u8 a) PrepareBufferDataTransfer(a, gBattleBuffersTransferData, 4); } -void EmitBallThrow(u8 a, u8 b) +void BtlController_EmitBallThrowAnim(u8 a, u8 b) { gBattleBuffersTransferData[0] = 13; gBattleBuffersTransferData[1] = b; PrepareBufferDataTransfer(a, gBattleBuffersTransferData, 2); } -void EmitPuase(u8 a, u8 b, u8 *c) +void BtlController_EmitPause(u8 a, u8 b, u8 *c) { int i; @@ -718,7 +721,7 @@ void EmitPuase(u8 a, u8 b, u8 *c) PrepareBufferDataTransfer(a, gBattleBuffersTransferData, b * 3 + 2); } -void EmitMoveAnimation(u8 a, u16 b, u8 c, u16 d, s32 e, u8 f, struct DisableStruct *g) +void BtlController_EmitMoveAnimation(u8 a, u16 b, u8 c, u16 d, s32 e, u8 f, struct DisableStruct *g) { gBattleBuffersTransferData[0] = 15; gBattleBuffersTransferData[1] = b; @@ -748,7 +751,7 @@ void EmitMoveAnimation(u8 a, u16 b, u8 c, u16 d, s32 e, u8 f, struct DisableStru PrepareBufferDataTransfer(a, gBattleBuffersTransferData, 0x2C); } -void EmitPrintString(u8 a, u16 stringID) +void BtlController_EmitPrintString(u8 a, u16 stringID) { s32 i; struct StringInfoBattle* stringInfo; @@ -766,7 +769,7 @@ void EmitPrintString(u8 a, u16 stringID) stringInfo->scrActive = gBattleStruct->scriptingActive; stringInfo->unk1605E = gBattleStruct->unk1605E; stringInfo->hpScale = gBattleStruct->hpScale; - stringInfo->StringBank = gStringBank; + stringInfo->StringBank = gPotentialItemEffectBattler; stringInfo->moveType = gBattleMoves[gCurrentMove].type; for (i = 0; i < 4; i++) @@ -780,7 +783,7 @@ void EmitPrintString(u8 a, u16 stringID) PrepareBufferDataTransfer(a, gBattleBuffersTransferData, sizeof(struct StringInfoBattle) + 4); } -void EmitPrintStringPlayerOnly(u8 a, u16 stringID) +void BtlController_EmitPrintSelectionString(u8 a, u16 stringID) { s32 i; struct StringInfoBattle* stringInfo; @@ -809,7 +812,7 @@ void EmitPrintStringPlayerOnly(u8 a, u16 stringID) PrepareBufferDataTransfer(a, gBattleBuffersTransferData, sizeof(struct StringInfoBattle) + 4); } -void Emitcmd18(u8 a, u8 b, u16 c) +void BtlController_EmitChooseAction(u8 a, u8 b, u16 c) { gBattleBuffersTransferData[0] = 18; gBattleBuffersTransferData[1] = b; @@ -818,14 +821,14 @@ void Emitcmd18(u8 a, u8 b, u16 c) PrepareBufferDataTransfer(a, gBattleBuffersTransferData, 4); } -void Emitcmd19(u8 a, u8 b) +void BtlController_EmitUnknownYesNoBox(u8 a, u8 b) { gBattleBuffersTransferData[0] = 19; gBattleBuffersTransferData[1] = b; PrepareBufferDataTransfer(a, gBattleBuffersTransferData, 2); } -void Emitcmd20(u8 a, u8 b, u8 c, u8 *d) +void BtlController_EmitChooseMove(u8 a, u8 b, u8 c, u8 *d) { u32 i; @@ -838,7 +841,7 @@ void Emitcmd20(u8 a, u8 b, u8 c, u8 *d) PrepareBufferDataTransfer(a, gBattleBuffersTransferData, 24); } -void EmitOpenBag(u8 a, u8 *b) +void BtlController_EmitChooseItem(u8 a, u8 *b) { int i; @@ -848,7 +851,7 @@ void EmitOpenBag(u8 a, u8 *b) PrepareBufferDataTransfer(a, gBattleBuffersTransferData, 4); } -void EmitChoosePokemon(u8 a, u8 b, u8 c, u8 d, u8 *e) +void BtlController_EmitChoosePokemon(u8 a, u8 b, u8 c, u8 d, u8 *e) { int i; @@ -861,7 +864,7 @@ void EmitChoosePokemon(u8 a, u8 b, u8 c, u8 d, u8 *e) PrepareBufferDataTransfer(a, gBattleBuffersTransferData, 8); //but only 7 bytes were written } -void Emitcmd23(u8 a) +void BtlController_EmitCmd23(u8 a) { gBattleBuffersTransferData[0] = 23; gBattleBuffersTransferData[1] = 23; @@ -872,7 +875,7 @@ void Emitcmd23(u8 a) // FIXME: I think this function is supposed to take s16 as its second argument, // but battle_4.c expects u16 -void EmitHealthBarUpdate(u8 a, u16 b) +void BtlController_EmitHealthBarUpdate(u8 a, u16 b) { gBattleBuffersTransferData[0] = 24; gBattleBuffersTransferData[1] = 0; @@ -883,7 +886,7 @@ void EmitHealthBarUpdate(u8 a, u16 b) // FIXME: I think this function is supposed to take s16 as its third argument, // but battle_4.c expects u16 -void EmitExpBarUpdate(u8 a, u8 b, u16 c) +void BtlController_EmitExpUpdate(u8 a, u8 b, u16 c) { gBattleBuffersTransferData[0] = 25; gBattleBuffersTransferData[1] = b; @@ -892,7 +895,7 @@ void EmitExpBarUpdate(u8 a, u8 b, u16 c) PrepareBufferDataTransfer(a, gBattleBuffersTransferData, 4); } -void EmitStatusIconUpdate(u8 a, u32 b, u32 c) +void BtlController_EmitStatusIconUpdate(u8 a, u32 b, u32 c) { gBattleBuffersTransferData[0] = 26; gBattleBuffersTransferData[1] = b; @@ -906,7 +909,7 @@ void EmitStatusIconUpdate(u8 a, u32 b, u32 c) PrepareBufferDataTransfer(a, gBattleBuffersTransferData, 9); } -void EmitStatusAnimation(u8 a, u8 b, u32 c) +void BtlController_EmitStatusAnimation(u8 a, u8 b, u32 c) { gBattleBuffersTransferData[0] = 27; gBattleBuffersTransferData[1] = b; @@ -917,14 +920,14 @@ void EmitStatusAnimation(u8 a, u8 b, u32 c) PrepareBufferDataTransfer(a, gBattleBuffersTransferData, 6); } -void EmitStatusXor(u8 a, u8 b) +void BtlController_EmitStatusXor(u8 a, u8 b) { gBattleBuffersTransferData[0] = 28; gBattleBuffersTransferData[1] = b; PrepareBufferDataTransfer(a, gBattleBuffersTransferData, 2); } -void Emitcmd29(u8 a, u16 b, u8 *c) +void BtlController_EmitDataTransfer(u8 a, u16 b, u8 *c) { int i; @@ -937,7 +940,7 @@ void Emitcmd29(u8 a, u16 b, u8 *c) PrepareBufferDataTransfer(a, gBattleBuffersTransferData, b + 4); } -void EmitDMATransfer(u8 a, u32 b, u16 c, u8 *d) +void BtlController_EmitDMA3Transfer(u8 a, u32 b, u16 c, u8 *d) { int i; @@ -953,7 +956,7 @@ void EmitDMATransfer(u8 a, u32 b, u16 c, u8 *d) PrepareBufferDataTransfer(a, gBattleBuffersTransferData, c + 7); } -void Emitcmd31(u8 a, u16 b, u8 *c) +void BtlController_EmitPlayBGM(u8 a, u16 b, u8 *c) { int i; @@ -965,7 +968,7 @@ void Emitcmd31(u8 a, u16 b, u8 *c) PrepareBufferDataTransfer(a, gBattleBuffersTransferData, b + 3); } -void Emitcmd32(u8 a, u16 b, u8 *c) +void BtlController_EmitCmd32(u8 a, u16 b, u8 *c) { int i; @@ -977,7 +980,7 @@ void Emitcmd32(u8 a, u16 b, u8 *c) PrepareBufferDataTransfer(a, gBattleBuffersTransferData, b + 3); } -void Emitcmd33(u8 a, u8 b, u16 c) +void BtlController_EmitTwoReturnValues(u8 a, u8 b, u16 c) { gBattleBuffersTransferData[0] = 33; gBattleBuffersTransferData[1] = b; @@ -986,7 +989,7 @@ void Emitcmd33(u8 a, u8 b, u16 c) PrepareBufferDataTransfer(a, gBattleBuffersTransferData, 4); } -void Emitcmd34(u8 a, u8 b, u8 *c) +void BtlController_EmitChosenMonReturnValue(u8 a, u8 b, u8 *c) { int i; @@ -997,7 +1000,7 @@ void Emitcmd34(u8 a, u8 b, u8 *c) PrepareBufferDataTransfer(a, gBattleBuffersTransferData, 5); } -void Emitcmd35(u8 a, u16 b) +void BtlController_EmitOneReturnValue(u8 a, u16 b) { gBattleBuffersTransferData[0] = 35; gBattleBuffersTransferData[1] = b; @@ -1006,7 +1009,7 @@ void Emitcmd35(u8 a, u16 b) PrepareBufferDataTransfer(a, gBattleBuffersTransferData, 4); } -void Emitcmd36(u8 a, u16 b) +void BtlController_EmitOneReturnValue_Duplicate(u8 a, u16 b) { gBattleBuffersTransferData[0] = 36; gBattleBuffersTransferData[1] = b; @@ -1015,7 +1018,7 @@ void Emitcmd36(u8 a, u16 b) PrepareBufferDataTransfer(a, gBattleBuffersTransferData, 4); } -void Emitcmd37(u8 a) +void BtlController_EmitCmd37(u8 a) { gBattleBuffersTransferData[0] = 37; gBattleBuffersTransferData[1] = 37; @@ -1024,14 +1027,14 @@ void Emitcmd37(u8 a) PrepareBufferDataTransfer(a, gBattleBuffersTransferData, 4); } -void Emitcmd38(u8 a, u8 b) +void BtlController_EmitCmd38(u8 a, u8 b) { gBattleBuffersTransferData[0] = 38; gBattleBuffersTransferData[1] = b; PrepareBufferDataTransfer(a, gBattleBuffersTransferData, 2); } -void Emitcmd39(u8 a) +void BtlController_EmitCmd39(u8 a) { gBattleBuffersTransferData[0] = 39; gBattleBuffersTransferData[1] = 39; @@ -1040,7 +1043,7 @@ void Emitcmd39(u8 a) PrepareBufferDataTransfer(a, gBattleBuffersTransferData, 4); } -void Emitcmd40(u8 a) +void BtlController_EmitCmd40(u8 a) { gBattleBuffersTransferData[0] = 40; gBattleBuffersTransferData[1] = 40; @@ -1049,7 +1052,7 @@ void Emitcmd40(u8 a) PrepareBufferDataTransfer(a, gBattleBuffersTransferData, 4); } -void EmitHitAnimation(u8 a) +void BtlController_EmitHitAnimation(u8 a) { gBattleBuffersTransferData[0] = 41; gBattleBuffersTransferData[1] = 41; @@ -1058,7 +1061,7 @@ void EmitHitAnimation(u8 a) PrepareBufferDataTransfer(a, gBattleBuffersTransferData, 4); } -void Emitcmd42(u8 a) +void BtlController_EmitCmd42(u8 a) { gBattleBuffersTransferData[0] = 42; gBattleBuffersTransferData[1] = 42; @@ -1067,7 +1070,7 @@ void Emitcmd42(u8 a) PrepareBufferDataTransfer(a, gBattleBuffersTransferData, 4); } -void EmitEffectivenessSound(u8 a, u16 b) +void BtlController_EmitPlaySE(u8 a, u16 b) { gBattleBuffersTransferData[0] = 43; gBattleBuffersTransferData[1] = b; @@ -1076,7 +1079,7 @@ void EmitEffectivenessSound(u8 a, u16 b) PrepareBufferDataTransfer(a, gBattleBuffersTransferData, 4); } -void Emitcmd44(u8 a, u16 b) +void BtlController_EmitPlayFanfareOrBGM(u8 a, u16 b) { gBattleBuffersTransferData[0] = 44; gBattleBuffersTransferData[1] = b; @@ -1085,7 +1088,7 @@ void Emitcmd44(u8 a, u16 b) PrepareBufferDataTransfer(a, gBattleBuffersTransferData, 4); } -void EmitFaintingCry(u8 a) +void BtlController_EmitFaintingCry(u8 a) { gBattleBuffersTransferData[0] = 45; gBattleBuffersTransferData[1] = 45; @@ -1094,14 +1097,14 @@ void EmitFaintingCry(u8 a) PrepareBufferDataTransfer(a, gBattleBuffersTransferData, 4); } -void EmitIntroSlide(u8 a, u8 battleTerrain) +void BtlController_EmitIntroSlide(u8 a, u8 battleTerrain) { gBattleBuffersTransferData[0] = 46; gBattleBuffersTransferData[1] = battleTerrain; PrepareBufferDataTransfer(a, gBattleBuffersTransferData, 2); } -void EmitTrainerBallThrow(u8 a) +void BtlController_EmitIntroTrainerBallThrow(u8 a) { gBattleBuffersTransferData[0] = 47; gBattleBuffersTransferData[1] = 47; @@ -1110,7 +1113,7 @@ void EmitTrainerBallThrow(u8 a) PrepareBufferDataTransfer(a, gBattleBuffersTransferData, 4); } -void EmitDrawPartyStatusSummary(u8 a, struct HpAndStatus *hpAndStatus, u8 c) +void BtlController_EmitDrawPartyStatusSummary(u8 a, struct HpAndStatus *hpAndStatus, u8 c) { int i; @@ -1123,7 +1126,7 @@ void EmitDrawPartyStatusSummary(u8 a, struct HpAndStatus *hpAndStatus, u8 c) PrepareBufferDataTransfer(a, gBattleBuffersTransferData, 52); } -void Emitcmd49(u8 a) +void BtlController_EmitHidePartyStatusSummary(u8 a) { gBattleBuffersTransferData[0] = 49; gBattleBuffersTransferData[1] = 49; @@ -1132,7 +1135,7 @@ void Emitcmd49(u8 a) PrepareBufferDataTransfer(a, gBattleBuffersTransferData, 4); } -void Emitcmd50(u8 a) +void BtlController_EmitEndBounceEffect(u8 a) { gBattleBuffersTransferData[0] = 50; gBattleBuffersTransferData[1] = 50; @@ -1141,7 +1144,7 @@ void Emitcmd50(u8 a) PrepareBufferDataTransfer(a, gBattleBuffersTransferData, 4); } -void EmitSpriteInvisibility(u8 a, u8 b) +void BtlController_EmitSpriteInvisibility(u8 a, u8 b) { gBattleBuffersTransferData[0] = 51; gBattleBuffersTransferData[1] = b; @@ -1150,7 +1153,7 @@ void EmitSpriteInvisibility(u8 a, u8 b) PrepareBufferDataTransfer(a, gBattleBuffersTransferData, 4); } -void EmitBattleAnimation(u8 a, u8 b, u16 c) +void BtlController_EmitBattleAnimation(u8 a, u8 b, u16 c) { gBattleBuffersTransferData[0] = 52; gBattleBuffersTransferData[1] = b; @@ -1159,21 +1162,21 @@ void EmitBattleAnimation(u8 a, u8 b, u16 c) PrepareBufferDataTransfer(a, gBattleBuffersTransferData, 4); } -void EmitLinkStandbyMsg(u8 a, u8 b) +void BtlController_EmitLinkStandbyMsg(u8 a, u8 b) { gBattleBuffersTransferData[0] = 53; gBattleBuffersTransferData[1] = b; PrepareBufferDataTransfer(a, gBattleBuffersTransferData, 2); } -void EmitResetActionMoveSelection(u8 a, u8 b) +void BtlController_EmitResetActionMoveSelection(u8 a, u8 b) { gBattleBuffersTransferData[0] = 54; gBattleBuffersTransferData[1] = b; PrepareBufferDataTransfer(a, gBattleBuffersTransferData, 2); } -void Emitcmd55(u8 a, u8 b) +void BtlController_EmitCmd55(u8 a, u8 b) { gBattleBuffersTransferData[0] = 55; gBattleBuffersTransferData[1] = b; diff --git a/src/rom_8077ABC.c b/src/rom_8077ABC.c index 278e5e459..e7c49144e 100644 --- a/src/rom_8077ABC.c +++ b/src/rom_8077ABC.c @@ -31,7 +31,7 @@ #define gCastformElevations gUnknownCastformData_0837F5A8 #define gCastformBackSpriteYCoords gUnknown_0837F5AC #define gTransformPersonalities gTransformedPersonalities -#define gBattleMonSprites gBankSpriteIds +#define gBattleMonSprites gBattlerSpriteIds struct Struct_gUnknown_0837F578 { @@ -1943,8 +1943,8 @@ u8 sub_8079F44(u16 species, bool8 isBackpic, u8 a3, s16 a4, s16 a5, u8 a6, u32 a &gMonFrontPicTable[species], gMonFrontPicCoords[species].coords, gMonFrontPicCoords[species].y_offset, - 0x2000000, - (void *)0x2000000, + EWRAM, + (void *)EWRAM, species, a7, 1 @@ -1957,15 +1957,15 @@ u8 sub_8079F44(u16 species, bool8 isBackpic, u8 a3, s16 a4, s16 a5, u8 a6, u32 a &gMonBackPicTable[species], gMonBackPicCoords[species].coords, gMonBackPicCoords[species].y_offset, - 0x2000000, - (void *)0x2000000, + EWRAM, + (void *)EWRAM, species, a7, 0 ); } - DmaCopy32Defvars(3, (void *)0x2000000, (void *)(OBJ_VRAM0 + (sheet * 0x20)), 0x800); + DmaCopy32Defvars(3, (void *)EWRAM, (void *)(OBJ_VRAM0 + (sheet * 0x20)), 0x800); if (!isBackpic) sprite = CreateSprite(&gSpriteTemplate_837F5B0[a3], a4, a5 + gMonFrontPicCoords[species].y_offset, a6); diff --git a/src/roulette.c b/src/roulette.c index 418482394..c4f6067a1 100644 --- a/src/roulette.c +++ b/src/roulette.c @@ -544,9 +544,9 @@ void sub_8115634(u8 taskId) if (unk_203955C[0] != 0 && (gMain.newKeys & START_BUTTON)) { gTasks[eRoulette->varA4].func = sub_81157AC; - m4aMPlayStop(&gMPlay_SE1); - m4aMPlayStop(&gMPlay_SE2); - m4aMPlayStop(&gMPlay_SE3); + m4aMPlayStop(&gMPlayInfo_SE1); + m4aMPlayStop(&gMPlayInfo_SE2); + m4aMPlayStop(&gMPlayInfo_SE3); } #endif } diff --git a/src/roulette_gfx.c b/src/roulette_gfx.c index 1cac00daf..afcb94df6 100644 --- a/src/roulette_gfx.c +++ b/src/roulette_gfx.c @@ -1160,8 +1160,8 @@ void sub_8118724(struct Sprite *sprite) sprite->pos2.y = -cos * sprite->data[4] >> 12; if (IsSEPlaying()) { - m4aMPlayPanpotControl(&gMPlay_SE1, 0xffff, sprite->pos2.x); - m4aMPlayPanpotControl(&gMPlay_SE2, 0xffff, sprite->pos2.x); + m4aMPlayPanpotControl(&gMPlayInfo_SE1, 0xffff, sprite->pos2.x); + m4aMPlayPanpotControl(&gMPlayInfo_SE2, 0xffff, sprite->pos2.x); } } @@ -2221,8 +2221,8 @@ void sub_8119BCC(struct Sprite *sprite) if (IsSEPlaying()) { s8 u = -((116 - sprite->pos1.x) / 2); - m4aMPlayPanpotControl(&gMPlay_SE1, 0xffff, u); - m4aMPlayPanpotControl(&gMPlay_SE2, 0xffff, u); + m4aMPlayPanpotControl(&gMPlayInfo_SE1, 0xffff, u); + m4aMPlayPanpotControl(&gMPlayInfo_SE2, 0xffff, u); } } else diff --git a/src/battle/smokescreen.c b/src/smokescreen.c index dc2887007..dc2887007 100644 --- a/src/battle/smokescreen.c +++ b/src/smokescreen.c diff --git a/src/sound.c b/src/sound.c index b9756c1dc..73040c4df 100644 --- a/src/sound.c +++ b/src/sound.c @@ -27,10 +27,10 @@ static u16 sFanfareCounter; bool8 gDisableMusic; -extern struct MusicPlayerInfo gMPlay_BGM; -extern struct MusicPlayerInfo gMPlay_SE1; -extern struct MusicPlayerInfo gMPlay_SE2; -extern struct MusicPlayerInfo gMPlay_SE3; +extern struct MusicPlayerInfo gMPlayInfo_BGM; +extern struct MusicPlayerInfo gMPlayInfo_SE1; +extern struct MusicPlayerInfo gMPlayInfo_SE2; +extern struct MusicPlayerInfo gMPlayInfo_SE3; extern struct ToneData gCryTable[]; extern struct ToneData gCryTable2[]; @@ -180,7 +180,7 @@ bool8 IsNotWaitingForBGMStop(void) void PlayFanfareByFanfareNum(u8 fanfareNum) { u16 songNum; - m4aMPlayStop(&gMPlay_BGM); + m4aMPlayStop(&gMPlayInfo_BGM); songNum = sFanfares[fanfareNum].songNum; sFanfareCounter = sFanfares[fanfareNum].duration; m4aSongNumStart(songNum); @@ -196,7 +196,7 @@ bool8 WaitFanfare(bool8 stop) else { if (!stop) - m4aMPlayContinue(&gMPlay_BGM); + m4aMPlayContinue(&gMPlayInfo_BGM); else m4aSongNumStart(SE_STOP); @@ -241,7 +241,7 @@ static void Task_Fanfare(u8 taskId) } else { - m4aMPlayContinue(&gMPlay_BGM); + m4aMPlayContinue(&gMPlayInfo_BGM); DestroyTask(taskId); } } @@ -257,46 +257,46 @@ void FadeInNewBGM(u16 songNum, u8 speed) if (gDisableMusic) songNum = 0; m4aSongNumStart(songNum); - m4aMPlayImmInit(&gMPlay_BGM); - m4aMPlayVolumeControl(&gMPlay_BGM, 0xFFFF, 0); + m4aMPlayImmInit(&gMPlayInfo_BGM); + m4aMPlayVolumeControl(&gMPlayInfo_BGM, 0xFFFF, 0); m4aSongNumStop(songNum); - m4aMPlayFadeIn(&gMPlay_BGM, speed); + m4aMPlayFadeIn(&gMPlayInfo_BGM, speed); } void FadeOutBGMTemporarily(u8 speed) { - m4aMPlayFadeOutTemporarily(&gMPlay_BGM, speed); + m4aMPlayFadeOutTemporarily(&gMPlayInfo_BGM, speed); } bool8 IsBGMPausedOrStopped(void) { - if (gMPlay_BGM.status & MUSICPLAYER_STATUS_PAUSE) + if (gMPlayInfo_BGM.status & MUSICPLAYER_STATUS_PAUSE) return TRUE; - if (!(gMPlay_BGM.status & MUSICPLAYER_STATUS_TRACK)) + if (!(gMPlayInfo_BGM.status & MUSICPLAYER_STATUS_TRACK)) return TRUE; return FALSE; } void FadeInBGM(u8 speed) { - m4aMPlayFadeIn(&gMPlay_BGM, speed); + m4aMPlayFadeIn(&gMPlayInfo_BGM, speed); } void FadeOutBGM(u8 speed) { - m4aMPlayFadeOut(&gMPlay_BGM, speed); + m4aMPlayFadeOut(&gMPlayInfo_BGM, speed); } bool8 IsBGMStopped(void) { - if (!(gMPlay_BGM.status & MUSICPLAYER_STATUS_TRACK)) + if (!(gMPlayInfo_BGM.status & MUSICPLAYER_STATUS_TRACK)) return TRUE; return FALSE; } void PlayCry1(u16 species, s8 pan) { - m4aMPlayVolumeControl(&gMPlay_BGM, 0xFFFF, 85); + m4aMPlayVolumeControl(&gMPlayInfo_BGM, 0xFFFF, 85); PlayCryInternal(species, pan, 125, 10, 0); gPokemonCryBGMDuckingCounter = 2; RestoreBGMVolumeAfterPokemonCry(); @@ -315,7 +315,7 @@ void PlayCry3(u16 species, s8 pan, u8 mode) } else { - m4aMPlayVolumeControl(&gMPlay_BGM, 0xFFFF, 85); + m4aMPlayVolumeControl(&gMPlayInfo_BGM, 0xFFFF, 85); PlayCryInternal(species, pan, 125, 10, mode); gPokemonCryBGMDuckingCounter = 2; RestoreBGMVolumeAfterPokemonCry(); @@ -331,14 +331,14 @@ void PlayCry4(u16 species, s8 pan, u8 mode) else { if (!(gBattleTypeFlags & BATTLE_TYPE_MULTI)) - m4aMPlayVolumeControl(&gMPlay_BGM, 0xFFFF, 85); + m4aMPlayVolumeControl(&gMPlayInfo_BGM, 0xFFFF, 85); PlayCryInternal(species, pan, 125, 10, mode); } } void PlayCry5(u16 species, u8 mode) { - m4aMPlayVolumeControl(&gMPlay_BGM, 0xFFFF, 85); + m4aMPlayVolumeControl(&gMPlayInfo_BGM, 0xFFFF, 85); PlayCryInternal(species, 0, 125, 10, mode); gPokemonCryBGMDuckingCounter = 2; RestoreBGMVolumeAfterPokemonCry(); @@ -481,7 +481,7 @@ static void Task_DuckBGMForPokemonCry(u8 taskId) if (!IsPokemonCryPlaying(gMPlay_PokemonCry)) { - m4aMPlayVolumeControl(&gMPlay_BGM, 0xFFFF, 256); + m4aMPlayVolumeControl(&gMPlayInfo_BGM, 0xFFFF, 256); DestroyTask(taskId); } } @@ -507,55 +507,55 @@ void PlaySE(u16 songNum) void PlaySE12WithPanning(u16 songNum, s8 pan) { m4aSongNumStart(songNum); - m4aMPlayImmInit(&gMPlay_SE1); - m4aMPlayImmInit(&gMPlay_SE2); - m4aMPlayPanpotControl(&gMPlay_SE1, 0xFFFF, pan); - m4aMPlayPanpotControl(&gMPlay_SE2, 0xFFFF, pan); + m4aMPlayImmInit(&gMPlayInfo_SE1); + m4aMPlayImmInit(&gMPlayInfo_SE2); + m4aMPlayPanpotControl(&gMPlayInfo_SE1, 0xFFFF, pan); + m4aMPlayPanpotControl(&gMPlayInfo_SE2, 0xFFFF, pan); } void PlaySE1WithPanning(u16 songNum, s8 pan) { m4aSongNumStart(songNum); - m4aMPlayImmInit(&gMPlay_SE1); - m4aMPlayPanpotControl(&gMPlay_SE1, 0xFFFF, pan); + m4aMPlayImmInit(&gMPlayInfo_SE1); + m4aMPlayPanpotControl(&gMPlayInfo_SE1, 0xFFFF, pan); } void PlaySE2WithPanning(u16 songNum, s8 pan) { m4aSongNumStart(songNum); - m4aMPlayImmInit(&gMPlay_SE2); - m4aMPlayPanpotControl(&gMPlay_SE2, 0xFFFF, pan); + m4aMPlayImmInit(&gMPlayInfo_SE2); + m4aMPlayPanpotControl(&gMPlayInfo_SE2, 0xFFFF, pan); } void SE12PanpotControl(s8 pan) { - m4aMPlayPanpotControl(&gMPlay_SE1, 0xFFFF, pan); - m4aMPlayPanpotControl(&gMPlay_SE2, 0xFFFF, pan); + m4aMPlayPanpotControl(&gMPlayInfo_SE1, 0xFFFF, pan); + m4aMPlayPanpotControl(&gMPlayInfo_SE2, 0xFFFF, pan); } bool8 IsSEPlaying(void) { - if ((gMPlay_SE1.status & MUSICPLAYER_STATUS_PAUSE) && (gMPlay_SE2.status & MUSICPLAYER_STATUS_PAUSE)) + if ((gMPlayInfo_SE1.status & MUSICPLAYER_STATUS_PAUSE) && (gMPlayInfo_SE2.status & MUSICPLAYER_STATUS_PAUSE)) return FALSE; - if (!(gMPlay_SE1.status & MUSICPLAYER_STATUS_TRACK) && !(gMPlay_SE2.status & MUSICPLAYER_STATUS_TRACK)) + if (!(gMPlayInfo_SE1.status & MUSICPLAYER_STATUS_TRACK) && !(gMPlayInfo_SE2.status & MUSICPLAYER_STATUS_TRACK)) return FALSE; return TRUE; } bool8 IsBGMPlaying(void) { - if (gMPlay_BGM.status & MUSICPLAYER_STATUS_PAUSE) + if (gMPlayInfo_BGM.status & MUSICPLAYER_STATUS_PAUSE) return FALSE; - if (!(gMPlay_BGM.status & MUSICPLAYER_STATUS_TRACK)) + if (!(gMPlayInfo_BGM.status & MUSICPLAYER_STATUS_TRACK)) return FALSE; return TRUE; } bool8 IsSpecialSEPlaying(void) { - if (gMPlay_SE3.status & MUSICPLAYER_STATUS_PAUSE) + if (gMPlayInfo_SE3.status & MUSICPLAYER_STATUS_PAUSE) return FALSE; - if (!(gMPlay_SE3.status & MUSICPLAYER_STATUS_TRACK)) + if (!(gMPlayInfo_SE3.status & MUSICPLAYER_STATUS_TRACK)) return FALSE; return TRUE; } diff --git a/src/sprite.c b/src/sprite.c index 22b3a6d0f..b26fe2d12 100644 --- a/src/sprite.c +++ b/src/sprite.c @@ -18,15 +18,15 @@ #define ALLOC_SPRITE_TILE(n) \ { \ - gSpriteTileAllocBitmap[(n) / 8] |= (1 << ((n) % 8)); \ + sSpriteTileAllocBitmap[(n) / 8] |= (1 << ((n) % 8)); \ } #define FREE_SPRITE_TILE(n) \ { \ - gSpriteTileAllocBitmap[(n) / 8] &= ~(1 << ((n) % 8)); \ + sSpriteTileAllocBitmap[(n) / 8] &= ~(1 << ((n) % 8)); \ } -#define SPRITE_TILE_IS_ALLOCATED(n) ((gSpriteTileAllocBitmap[(n) / 8] >> ((n) % 8)) & 1) +#define SPRITE_TILE_IS_ALLOCATED(n) ((sSpriteTileAllocBitmap[(n) / 8] >> ((n) % 8)) & 1) struct SpriteCopyRequest { @@ -93,21 +93,21 @@ typedef void (*AnimFunc)(struct Sprite *); typedef void (*AnimCmdFunc)(struct Sprite *); typedef void (*AffineAnimCmdFunc)(u8 matrixNum, struct Sprite *); -#define DUMMY_OAM_DATA \ -{ \ - 160, /* Y (off-screen) */ \ - 0, \ - 0, \ - 0, \ - 0, \ - 0, \ - 304, /* X */ \ - 0, \ - 0, \ - 0, \ - 3, /* lowest priority */ \ - 0, \ - 0 \ +#define DUMMY_OAM_DATA \ +{ \ + .y = 160, \ + .affineMode = 0, \ + .objMode = 0, \ + .mosaic = 0, \ + .bpp = 0, \ + .shape = SPRITE_SHAPE(8x8), \ + .x = 304, \ + .matrixNum = 0, \ + .size = SPRITE_SIZE(8x8), \ + .tileNum = 0, \ + .priority = 3, /* lowest priority */ \ + .paletteNum = 0, \ + .affineParam = 0 \ } #define ANIM_END 0xFFFF @@ -180,10 +180,10 @@ static const struct Sprite sDummySprite = .animPaused = 0, .affineAnimPaused = 0, .animLoopCounter = 0, - .data = {0}, + .data = {0, 0, 0, 0, 0, 0, 0}, .inUse = 0, .coordOffsetEnabled = 0, - .invisible = 0, + .invisible = FALSE, .flags_3 = 0, .flags_4 = 0, .flags_5 = 0, @@ -287,22 +287,22 @@ static u16 sSpriteTileRanges[MAX_SPRITES * 2]; static struct AffineAnimState sAffineAnimStates[OAM_MATRIX_COUNT]; static u16 sSpritePaletteTags[16]; -u8 gSpriteOrder[MAX_SPRITES]; -bool8 gShouldProcessSpriteCopyRequests; +u32 gOamMatrixAllocBitmap; +u8 gReservedSpritePaletteCount; + +EWRAM_DATA struct Sprite gSprites[MAX_SPRITES + 1] = {0}; +EWRAM_DATA u16 sSpritePriorities[MAX_SPRITES] = {0}; +u8 sSpriteOrder[MAX_SPRITES]; +bool8 sShouldProcessSpriteCopyRequests; u8 gSpriteCopyRequestCount; -struct SpriteCopyRequest gSpriteCopyRequests[MAX_SPRITE_COPY_REQUESTS]; +struct SpriteCopyRequest sSpriteCopyRequests[MAX_SPRITE_COPY_REQUESTS]; u8 gOamLimit; u16 gReservedSpriteTileCount; -u8 gSpriteTileAllocBitmap[128]; +u8 sSpriteTileAllocBitmap[128]; s16 gSpriteCoordOffsetX; s16 gSpriteCoordOffsetY; -u32 gOamMatrixAllocBitmap; struct OamMatrix gOamMatrices[OAM_MATRIX_COUNT]; -u8 gReservedSpritePaletteCount; - -EWRAM_DATA struct Sprite gSprites[MAX_SPRITES + 1] = {0}; -EWRAM_DATA u16 gSpritePriorities[MAX_SPRITES] = {0}; -EWRAM_DATA u8 gAffineAnimsDisabled = {0}; +EWRAM_DATA bool8 gAffineAnimsDisabled = 0; void ResetSpriteData(void) { @@ -346,7 +346,7 @@ void BuildOamBuffer(void) AddSpritesToOamBuffer(); CopyMatricesToOamBuffer(); gMain.oamLoadDisabled = temp; - gShouldProcessSpriteCopyRequests = TRUE; + sShouldProcessSpriteCopyRequests = TRUE; } static void UpdateOamCoords(void) @@ -378,7 +378,7 @@ static void BuildSpritePriorities(void) { struct Sprite *sprite = &gSprites[i]; u16 priority = sprite->subpriority | (sprite->oam.priority << 8); - gSpritePriorities[i] = priority; + sSpritePriorities[i] = priority; } } @@ -388,10 +388,10 @@ static void SortSprites(void) for (i = 1; i < MAX_SPRITES; i++) { u8 j = i; - struct Sprite *sprite1 = &gSprites[gSpriteOrder[i - 1]]; - struct Sprite *sprite2 = &gSprites[gSpriteOrder[i]]; - u16 sprite1Priority = gSpritePriorities[gSpriteOrder[i - 1]]; - u16 sprite2Priority = gSpritePriorities[gSpriteOrder[i]]; + struct Sprite *sprite1 = &gSprites[sSpriteOrder[i - 1]]; + struct Sprite *sprite2 = &gSprites[sSpriteOrder[i]]; + u16 sprite1Priority = sSpritePriorities[sSpriteOrder[i - 1]]; + u16 sprite2Priority = sSpritePriorities[sSpriteOrder[i]]; s16 sprite1Y = sprite1->oam.y; s16 sprite2Y = sprite2->oam.y; @@ -427,20 +427,20 @@ static void SortSprites(void) && ((sprite1Priority > sprite2Priority) || (sprite1Priority == sprite2Priority && sprite1Y < sprite2Y))) { - u8 temp = gSpriteOrder[j]; - gSpriteOrder[j] = gSpriteOrder[j - 1]; - gSpriteOrder[j - 1] = temp; + u8 temp = sSpriteOrder[j]; + sSpriteOrder[j] = sSpriteOrder[j - 1]; + sSpriteOrder[j - 1] = temp; // UB: If j equals 1, then j-- makes j equal 0. - // Then, gSpriteOrder[-1] gets accessed below. + // Then, sSpriteOrder[-1] gets accessed below. // Although this doesn't result in a bug in the ROM, // the behavior is undefined. j--; - sprite1 = &gSprites[gSpriteOrder[j - 1]]; - sprite2 = &gSprites[gSpriteOrder[j]]; - sprite1Priority = gSpritePriorities[gSpriteOrder[j - 1]]; - sprite2Priority = gSpritePriorities[gSpriteOrder[j]]; + sprite1 = &gSprites[sSpriteOrder[j - 1]]; + sprite2 = &gSprites[sSpriteOrder[j]]; + sprite1Priority = sSpritePriorities[sSpriteOrder[j - 1]]; + sprite2Priority = sSpritePriorities[sSpriteOrder[j]]; sprite1Y = sprite1->oam.y; sprite2Y = sprite2->oam.y; @@ -495,7 +495,7 @@ static void AddSpritesToOamBuffer(void) while (i < MAX_SPRITES) { - struct Sprite *sprite = &gSprites[gSpriteOrder[i]]; + struct Sprite *sprite = &gSprites[sSpriteOrder[i]]; if (sprite->inUse && !sprite->invisible && AddSpriteToOamBuffer(sprite, &oamIndex)) break; i++; @@ -662,14 +662,14 @@ static void ClearSpriteCopyRequests(void) { u8 i; - gShouldProcessSpriteCopyRequests = FALSE; + sShouldProcessSpriteCopyRequests = FALSE; gSpriteCopyRequestCount = 0; for (i = 0; i < MAX_SPRITE_COPY_REQUESTS; i++) { - gSpriteCopyRequests[i].src = 0; - gSpriteCopyRequests[i].dest = 0; - gSpriteCopyRequests[i].size = 0; + sSpriteCopyRequests[i].src = 0; + sSpriteCopyRequests[i].dest = 0; + sSpriteCopyRequests[i].size = 0; } } @@ -777,17 +777,17 @@ u8 SpriteTileAllocBitmapOp(u16 bit, u8 op) if (op == 0) { val = ~(1 << val); - gSpriteTileAllocBitmap[index] &= val; + sSpriteTileAllocBitmap[index] &= val; } else if (op == 1) { val = (1 << val); - gSpriteTileAllocBitmap[index] |= val; + sSpriteTileAllocBitmap[index] |= val; } else { retVal = 1 << shift; - retVal &= gSpriteTileAllocBitmap[index]; + retVal &= sSpriteTileAllocBitmap[index]; } return retVal; @@ -799,18 +799,18 @@ void SpriteCallbackDummy(struct Sprite *sprite) void ProcessSpriteCopyRequests(void) { - if (gShouldProcessSpriteCopyRequests) + if (sShouldProcessSpriteCopyRequests) { u8 i = 0; while (gSpriteCopyRequestCount > 0) { - CpuCopy16(gSpriteCopyRequests[i].src, gSpriteCopyRequests[i].dest, gSpriteCopyRequests[i].size); + CpuCopy16(sSpriteCopyRequests[i].src, sSpriteCopyRequests[i].dest, sSpriteCopyRequests[i].size); gSpriteCopyRequestCount--; i++; } - gShouldProcessSpriteCopyRequests = FALSE; + sShouldProcessSpriteCopyRequests = FALSE; } } @@ -818,9 +818,9 @@ static void RequestSpriteFrameImageCopy(u16 index, u16 tileNum, const struct Spr { if (gSpriteCopyRequestCount < MAX_SPRITE_COPY_REQUESTS) { - gSpriteCopyRequests[gSpriteCopyRequestCount].src = images[index].data; - gSpriteCopyRequests[gSpriteCopyRequestCount].dest = OBJ_VRAM0 + TILE_SIZE_4BPP * tileNum; - gSpriteCopyRequests[gSpriteCopyRequestCount].size = images[index].size; + sSpriteCopyRequests[gSpriteCopyRequestCount].src = images[index].data; + sSpriteCopyRequests[gSpriteCopyRequestCount].dest = OBJ_VRAM0 + TILE_SIZE_4BPP * tileNum; + sSpriteCopyRequests[gSpriteCopyRequestCount].size = images[index].size; gSpriteCopyRequestCount++; } #if DEBUG @@ -835,9 +835,9 @@ void RequestSpriteCopy(const void *src, u8 *dest, u16 size) { if (gSpriteCopyRequestCount < MAX_SPRITE_COPY_REQUESTS) { - gSpriteCopyRequests[gSpriteCopyRequestCount].src = src; - gSpriteCopyRequests[gSpriteCopyRequestCount].dest = dest; - gSpriteCopyRequests[gSpriteCopyRequestCount].size = size; + sSpriteCopyRequests[gSpriteCopyRequestCount].src = src; + sSpriteCopyRequests[gSpriteCopyRequestCount].dest = dest; + sSpriteCopyRequests[gSpriteCopyRequestCount].size = size; gSpriteCopyRequestCount++; } #if DEBUG @@ -880,7 +880,7 @@ static void ResetAllSprites(void) for (i = 0; i < MAX_SPRITES; i++) { ResetSprite(&gSprites[i]); - gSpriteOrder[i] = i; + sSpriteOrder[i] = i; } ResetSprite(&gSprites[i]); diff --git a/src/task.c b/src/task.c index 3e8a5588c..2956bf8b8 100644 --- a/src/task.c +++ b/src/task.c @@ -7,7 +7,7 @@ #define TAIL_SENTINEL 0xFF // gTasks is a queue of the active 16 tasks -struct Task gTasks[ACTIVE_SENTINEL]; +struct Task gTasks[NUM_TASKS]; static void InsertTask(u8 newTaskId); static u8 FindFirstActiveTask(); @@ -16,38 +16,38 @@ const u8 gError_NoTasksLeft[] = _( "TASK OVER\n" "タスクがオーバーしました"); -void ResetTasks() +void ResetTasks(void) { - u8 taskId; + u8 i; - for (taskId = 0; taskId < ACTIVE_SENTINEL; taskId++) + for (i = 0; i < NUM_TASKS; i++) { - gTasks[taskId].isActive = FALSE; - gTasks[taskId].func = TaskDummy; - gTasks[taskId].prev = taskId; - gTasks[taskId].next = taskId + 1; - gTasks[taskId].priority = -1; - memset(gTasks[taskId].data, 0, sizeof(gTasks[taskId].data)); + gTasks[i].isActive = FALSE; + gTasks[i].func = TaskDummy; + gTasks[i].prev = i; + gTasks[i].next = i + 1; + gTasks[i].priority = -1; + memset(gTasks[i].data, 0, sizeof(gTasks[i].data)); } gTasks[0].prev = HEAD_SENTINEL; - gTasks[ACTIVE_SENTINEL - 1].next = TAIL_SENTINEL; + gTasks[NUM_TASKS - 1].next = TAIL_SENTINEL; } u8 CreateTask(TaskFunc func, u8 priority) { - u8 taskId; + u8 i; - for (taskId = 0; taskId < ACTIVE_SENTINEL; taskId++) + for (i = 0; i < NUM_TASKS; i++) { - if (!gTasks[taskId].isActive) + if (!gTasks[i].isActive) { - gTasks[taskId].func = func; - gTasks[taskId].priority = priority; - InsertTask(taskId); - memset(gTasks[taskId].data, 0, sizeof(gTasks[taskId].data)); - gTasks[taskId].isActive = TRUE; - return taskId; + gTasks[i].func = func; + gTasks[i].priority = priority; + InsertTask(i); + memset(gTasks[i].data, 0, sizeof(gTasks[i].data)); + gTasks[i].isActive = TRUE; + return i; } } @@ -62,7 +62,7 @@ static void InsertTask(u8 newTaskId) { u8 taskId = FindFirstActiveTask(); - if (taskId == ACTIVE_SENTINEL) + if (taskId == NUM_TASKS) { // The task system inserts from the top downwards starting from the end (0xFF) to 0. If FindFirstActiveTask returned the value equivalent to ACTIVE_SENTINEL, it means it is the only task because it searched the entire queue. gTasks[newTaskId].prev = HEAD_SENTINEL; @@ -78,10 +78,8 @@ static void InsertTask(u8 newTaskId) // so we insert the new task before it. gTasks[newTaskId].prev = gTasks[taskId].prev; gTasks[newTaskId].next = taskId; - if (gTasks[taskId].prev != HEAD_SENTINEL) gTasks[gTasks[taskId].prev].next = newTaskId; // as long as we are not at the end, insert the newTask appropriately. - gTasks[taskId].prev = newTaskId; return; } @@ -127,7 +125,7 @@ void RunTasks(void) { u8 taskId = FindFirstActiveTask(); - if (taskId != ACTIVE_SENTINEL) + if (taskId != NUM_TASKS) { do { @@ -141,7 +139,7 @@ static u8 FindFirstActiveTask(void) { u8 taskId; - for (taskId = 0; taskId < ACTIVE_SENTINEL; taskId++) + for (taskId = 0; taskId < NUM_TASKS; taskId++) if (gTasks[taskId].isActive == TRUE && gTasks[taskId].prev == HEAD_SENTINEL) break; @@ -184,7 +182,7 @@ bool8 FuncIsActiveTask(TaskFunc func) { u8 i; - for (i = 0; i < ACTIVE_SENTINEL; i++) + for (i = 0; i < NUM_TASKS; i++) if (gTasks[i].isActive == TRUE && gTasks[i].func == func) return TRUE; @@ -195,11 +193,11 @@ u8 FindTaskIdByFunc(TaskFunc func) { s32 i; - for (i = 0; i < ACTIVE_SENTINEL; i++) + for (i = 0; i < NUM_TASKS; i++) if (gTasks[i].isActive == TRUE && gTasks[i].func == func) return (u8)i; - return -1; + return 0xFF; } u8 GetTaskCount(void) @@ -207,7 +205,7 @@ u8 GetTaskCount(void) u8 i; u8 count = 0; - for (i = 0; i < ACTIVE_SENTINEL; i++) + for (i = 0; i < NUM_TASKS; i++) if (gTasks[i].isActive == TRUE) count++; diff --git a/src/title_screen.c b/src/title_screen.c index df737fd06..b4aa9f8ed 100644 --- a/src/title_screen.c +++ b/src/title_screen.c @@ -41,7 +41,7 @@ #endif extern u8 gReservedSpritePaletteCount; -extern struct MusicPlayerInfo gMPlay_BGM; +extern struct MusicPlayerInfo gMPlayInfo_BGM; extern u16 gBattle_BG1_Y; extern u16 gBattle_BG1_X; extern const u8 gUnknown_08E9D8CC[]; @@ -851,7 +851,7 @@ static void Task_TitleScreenPhase3(u8 taskId) gBattle_BG1_X = 0; } UpdateLegendaryMarkingColor(gTasks[taskId].tCounter); - if ((gMPlay_BGM.status & 0xFFFF) == 0) + if ((gMPlayInfo_BGM.status & 0xFFFF) == 0) { BeginNormalPaletteFade(0xFFFFFFFF, 0, 0, 16, FADE_COLOR_WHITE); SetMainCallback2(CB2_GoToCopyrightScreen); diff --git a/src/trade.c b/src/trade.c index bd298b58e..5422a6ace 100644 --- a/src/trade.c +++ b/src/trade.c @@ -126,6 +126,8 @@ struct TradeEwramSubstruct { /*0x08fc*/ u8 filler_08fc[0x704]; }; +struct TradeEwramSubstruct2 *gUnknown_03004828; + IWRAM_DATA u8 gUnknown_03000508[8]; struct UnkStructF { @@ -209,7 +211,7 @@ EWRAM_DATA u8 *gUnknown_020296CC[13] = {0}; EWRAM_DATA struct MailStruct gUnknown_02029700[6] = {0}; EWRAM_DATA u8 gUnknown_020297D8[2] = {0}; -extern struct TradeEwramSubstruct *gUnknown_03004824; +struct TradeEwramSubstruct *gUnknown_03004824; const u32 unref_data_820ABD4[] = { diff --git a/src/wild_encounter.c b/src/wild_encounter.c index 133f8b3aa..0680570fc 100644 --- a/src/wild_encounter.c +++ b/src/wild_encounter.c @@ -16,3675 +16,7 @@ #include "constants/species.h" #include "tv.h" -const struct WildPokemon PetalburgCity_WaterMons [] = -{ - {20, 30, SPECIES_MARILL}, - {10, 20, SPECIES_MARILL}, - {30, 35, SPECIES_MARILL}, - {5, 10, SPECIES_MARILL}, - {5, 10, SPECIES_MARILL}, -}; -const struct WildPokemonInfo PetalburgCity_WaterMonsInfo = {1, PetalburgCity_WaterMons}; - -const struct WildPokemon PetalburgCity_FishingMons [] = -{ - {5, 10, SPECIES_MAGIKARP}, - {5, 10, SPECIES_GOLDEEN}, - {10, 30, SPECIES_MAGIKARP}, - {10, 30, SPECIES_GOLDEEN}, - {10, 30, SPECIES_CORPHISH}, - {25, 30, SPECIES_CORPHISH}, - {30, 35, SPECIES_CORPHISH}, - {20, 25, SPECIES_CORPHISH}, - {35, 40, SPECIES_CORPHISH}, - {40, 45, SPECIES_CORPHISH}, -}; -const struct WildPokemonInfo PetalburgCity_FishingMonsInfo = {10, PetalburgCity_FishingMons}; - -const struct WildPokemon SlateportCity_WaterMons [] = -{ - {5, 35, SPECIES_TENTACOOL}, - {10, 30, SPECIES_WINGULL}, - {15, 25, SPECIES_WINGULL}, - {25, 30, SPECIES_PELIPPER}, - {25, 30, SPECIES_PELIPPER}, -}; -const struct WildPokemonInfo SlateportCity_WaterMonsInfo = {4, SlateportCity_WaterMons}; - -const struct WildPokemon SlateportCity_FishingMons [] = -{ - {5, 10, SPECIES_MAGIKARP}, - {5, 10, SPECIES_TENTACOOL}, - {10, 30, SPECIES_MAGIKARP}, - {10, 30, SPECIES_TENTACOOL}, - {10, 30, SPECIES_WAILMER}, - {25, 30, SPECIES_WAILMER}, - {30, 35, SPECIES_WAILMER}, - {20, 25, SPECIES_WAILMER}, - {35, 40, SPECIES_WAILMER}, - {40, 45, SPECIES_WAILMER}, -}; -const struct WildPokemonInfo SlateportCity_FishingMonsInfo = {10, SlateportCity_FishingMons}; - -const struct WildPokemon LilycoveCity_WaterMons [] = -{ - {5, 35, SPECIES_TENTACOOL}, - {10, 30, SPECIES_WINGULL}, - {15, 25, SPECIES_WINGULL}, - {25, 30, SPECIES_PELIPPER}, - {25, 30, SPECIES_PELIPPER}, -}; -const struct WildPokemonInfo LilycoveCity_WaterMonsInfo = {4, LilycoveCity_WaterMons}; - -const struct WildPokemon LilycoveCity_FishingMons [] = -{ - {5, 10, SPECIES_MAGIKARP}, - {5, 10, SPECIES_TENTACOOL}, - {10, 30, SPECIES_MAGIKARP}, - {10, 30, SPECIES_TENTACOOL}, - {10, 30, SPECIES_WAILMER}, - {25, 30, SPECIES_WAILMER}, - {30, 35, SPECIES_WAILMER}, - {25, 30, SPECIES_STARYU}, - {35, 40, SPECIES_WAILMER}, - {40, 45, SPECIES_WAILMER}, -}; -const struct WildPokemonInfo LilycoveCity_FishingMonsInfo = {10, LilycoveCity_FishingMons}; - -const struct WildPokemon MossdeepCity_WaterMons [] = -{ - {5, 35, SPECIES_TENTACOOL}, - {10, 30, SPECIES_WINGULL}, - {15, 25, SPECIES_WINGULL}, - {25, 30, SPECIES_PELIPPER}, - {25, 30, SPECIES_PELIPPER}, -}; -const struct WildPokemonInfo MossdeepCity_WaterMonsInfo = {4, MossdeepCity_WaterMons}; - -const struct WildPokemon MossdeepCity_FishingMons [] = -{ - {5, 10, SPECIES_MAGIKARP}, - {5, 10, SPECIES_TENTACOOL}, - {10, 30, SPECIES_MAGIKARP}, - {10, 30, SPECIES_TENTACOOL}, - {10, 30, SPECIES_WAILMER}, - {30, 35, SPECIES_SHARPEDO}, - {30, 35, SPECIES_WAILMER}, - {25, 30, SPECIES_WAILMER}, - {35, 40, SPECIES_WAILMER}, - {40, 45, SPECIES_WAILMER}, -}; -const struct WildPokemonInfo MossdeepCity_FishingMonsInfo = {10, MossdeepCity_FishingMons}; - -const struct WildPokemon SootopolisCity_WaterMons [] = -{ - {5, 35, SPECIES_MAGIKARP}, - {10, 30, SPECIES_MAGIKARP}, - {15, 25, SPECIES_MAGIKARP}, - {25, 30, SPECIES_MAGIKARP}, - {25, 30, SPECIES_MAGIKARP}, -}; -const struct WildPokemonInfo SootopolisCity_WaterMonsInfo = {1, SootopolisCity_WaterMons}; - -const struct WildPokemon SootopolisCity_FishingMons [] = -{ - {5, 10, SPECIES_MAGIKARP}, -#ifdef SAPPHIRE - {5, 10, SPECIES_TENTACOOL}, -#else - {10, 15, SPECIES_MAGIKARP}, -#endif - {10, 30, SPECIES_MAGIKARP}, - {10, 30, SPECIES_MAGIKARP}, - {10, 30, SPECIES_MAGIKARP}, - {30, 35, SPECIES_MAGIKARP}, - {30, 35, SPECIES_MAGIKARP}, - {35, 40, SPECIES_GYARADOS}, - {35, 45, SPECIES_GYARADOS}, - {5, 45, SPECIES_GYARADOS}, -}; -const struct WildPokemonInfo SootopolisCity_FishingMonsInfo = {10, SootopolisCity_FishingMons}; - -const struct WildPokemon EverGrandeCity_WaterMons [] = -{ - {5, 35, SPECIES_TENTACOOL}, - {10, 30, SPECIES_WINGULL}, - {15, 25, SPECIES_WINGULL}, - {25, 30, SPECIES_PELIPPER}, - {25, 30, SPECIES_PELIPPER}, -}; -const struct WildPokemonInfo EverGrandeCity_WaterMonsInfo = {4, EverGrandeCity_WaterMons}; - -const struct WildPokemon EverGrandeCity_FishingMons [] = -{ - {5, 10, SPECIES_MAGIKARP}, - {5, 10, SPECIES_TENTACOOL}, - {10, 30, SPECIES_MAGIKARP}, - {10, 30, SPECIES_LUVDISC}, - {10, 30, SPECIES_WAILMER}, - {30, 35, SPECIES_LUVDISC}, - {30, 35, SPECIES_WAILMER}, - {30, 35, SPECIES_CORSOLA}, - {35, 40, SPECIES_WAILMER}, - {40, 45, SPECIES_WAILMER}, -}; -const struct WildPokemonInfo EverGrandeCity_FishingMonsInfo = {10, EverGrandeCity_FishingMons}; - -const struct WildPokemon MeteorFalls_1F_1R_LandMons [] = -{ - {16, 16, SPECIES_ZUBAT}, - {17, 17, SPECIES_ZUBAT}, - {18, 18, SPECIES_ZUBAT}, - {15, 15, SPECIES_ZUBAT}, - {14, 14, SPECIES_ZUBAT}, -#ifdef SAPPHIRE - {16, 16, SPECIES_LUNATONE}, - {18, 18, SPECIES_LUNATONE}, - {14, 14, SPECIES_LUNATONE}, -#else - {16, 16, SPECIES_SOLROCK}, - {18, 18, SPECIES_SOLROCK}, - {14, 14, SPECIES_SOLROCK}, -#endif - {19, 19, SPECIES_ZUBAT}, - {20, 20, SPECIES_ZUBAT}, - {19, 19, SPECIES_ZUBAT}, - {20, 20, SPECIES_ZUBAT}, -}; -const struct WildPokemonInfo MeteorFalls_1F_1R_LandMonsInfo = {10, MeteorFalls_1F_1R_LandMons}; - -const struct WildPokemon MeteorFalls_1F_1R_WaterMons [] = -{ - {5, 35, SPECIES_ZUBAT}, - {30, 35, SPECIES_ZUBAT}, -#ifdef SAPPHIRE - {25, 35, SPECIES_LUNATONE}, - {15, 25, SPECIES_LUNATONE}, - {5, 15, SPECIES_LUNATONE}, -#else - {25, 35, SPECIES_SOLROCK}, - {15, 25, SPECIES_SOLROCK}, - {5, 15, SPECIES_SOLROCK}, -#endif -}; -const struct WildPokemonInfo MeteorFalls_1F_1R_WaterMonsInfo = {4, MeteorFalls_1F_1R_WaterMons}; - -const struct WildPokemon MeteorFalls_1F_1R_FishingMons [] = -{ - {5, 10, SPECIES_MAGIKARP}, - {5, 10, SPECIES_GOLDEEN}, - {10, 30, SPECIES_MAGIKARP}, - {10, 30, SPECIES_GOLDEEN}, - {10, 30, SPECIES_BARBOACH}, - {25, 30, SPECIES_BARBOACH}, - {30, 35, SPECIES_BARBOACH}, - {20, 25, SPECIES_BARBOACH}, - {35, 40, SPECIES_BARBOACH}, - {40, 45, SPECIES_BARBOACH}, -}; -const struct WildPokemonInfo MeteorFalls_1F_1R_FishingMonsInfo = {30, MeteorFalls_1F_1R_FishingMons}; - -const struct WildPokemon MeteorFalls_1F_2R_LandMons [] = -{ - {33, 33, SPECIES_GOLBAT}, - {35, 35, SPECIES_GOLBAT}, - {33, 33, SPECIES_GOLBAT}, -#ifdef SAPPHIRE - {35, 35, SPECIES_LUNATONE}, - {33, 33, SPECIES_LUNATONE}, - {37, 37, SPECIES_LUNATONE}, -#else - {35, 35, SPECIES_SOLROCK}, - {33, 33, SPECIES_SOLROCK}, - {37, 37, SPECIES_SOLROCK}, -#endif - {35, 35, SPECIES_GOLBAT}, -#ifdef SAPPHIRE - {39, 39, SPECIES_LUNATONE}, -#else - {39, 39, SPECIES_SOLROCK}, -#endif - {38, 38, SPECIES_GOLBAT}, - {40, 40, SPECIES_GOLBAT}, - {38, 38, SPECIES_GOLBAT}, - {40, 40, SPECIES_GOLBAT}, -}; -const struct WildPokemonInfo MeteorFalls_1F_2R_LandMonsInfo = {10, MeteorFalls_1F_2R_LandMons}; - -const struct WildPokemon MeteorFalls_1F_2R_WaterMons [] = -{ - {30, 35, SPECIES_GOLBAT}, - {30, 35, SPECIES_GOLBAT}, -#ifdef SAPPHIRE - {25, 35, SPECIES_LUNATONE}, - {15, 25, SPECIES_LUNATONE}, - {5, 15, SPECIES_LUNATONE}, -#else - {25, 35, SPECIES_SOLROCK}, - {15, 25, SPECIES_SOLROCK}, - {5, 15, SPECIES_SOLROCK}, -#endif -}; -const struct WildPokemonInfo MeteorFalls_1F_2R_WaterMonsInfo = {4, MeteorFalls_1F_2R_WaterMons}; - -const struct WildPokemon MeteorFalls_1F_2R_FishingMons [] = -{ - {5, 10, SPECIES_MAGIKARP}, - {5, 10, SPECIES_GOLDEEN}, - {10, 30, SPECIES_MAGIKARP}, - {10, 30, SPECIES_GOLDEEN}, - {10, 30, SPECIES_BARBOACH}, - {25, 30, SPECIES_BARBOACH}, - {30, 35, SPECIES_BARBOACH}, - {30, 35, SPECIES_WHISCASH}, - {35, 40, SPECIES_WHISCASH}, - {40, 45, SPECIES_WHISCASH}, -}; -const struct WildPokemonInfo MeteorFalls_1F_2R_FishingMonsInfo = {30, MeteorFalls_1F_2R_FishingMons}; - -const struct WildPokemon MeteorFalls_B1F_1R_LandMons [] = -{ - {33, 33, SPECIES_GOLBAT}, - {35, 35, SPECIES_GOLBAT}, - {33, 33, SPECIES_GOLBAT}, -#ifdef SAPPHIRE - {35, 35, SPECIES_LUNATONE}, - {33, 33, SPECIES_LUNATONE}, - {37, 37, SPECIES_LUNATONE}, -#else - {35, 35, SPECIES_SOLROCK}, - {33, 33, SPECIES_SOLROCK}, - {37, 37, SPECIES_SOLROCK}, -#endif - {35, 35, SPECIES_GOLBAT}, -#ifdef SAPPHIRE - {39, 39, SPECIES_LUNATONE}, -#else - {39, 39, SPECIES_SOLROCK}, -#endif - {38, 38, SPECIES_GOLBAT}, - {40, 40, SPECIES_GOLBAT}, - {38, 38, SPECIES_GOLBAT}, - {40, 40, SPECIES_GOLBAT}, -}; -const struct WildPokemonInfo MeteorFalls_B1F_1R_LandMonsInfo = {10, MeteorFalls_B1F_1R_LandMons}; - -const struct WildPokemon MeteorFalls_B1F_1R_WaterMons [] = -{ - {30, 35, SPECIES_GOLBAT}, - {30, 35, SPECIES_GOLBAT}, -#ifdef SAPPHIRE - {25, 35, SPECIES_LUNATONE}, - {15, 25, SPECIES_LUNATONE}, - {5, 15, SPECIES_LUNATONE}, -#else - {25, 35, SPECIES_SOLROCK}, - {15, 25, SPECIES_SOLROCK}, - {5, 15, SPECIES_SOLROCK}, -#endif -}; -const struct WildPokemonInfo MeteorFalls_B1F_1R_WaterMonsInfo = {4, MeteorFalls_B1F_1R_WaterMons}; - -const struct WildPokemon MeteorFalls_B1F_1R_FishingMons [] = -{ - {5, 10, SPECIES_MAGIKARP}, - {5, 10, SPECIES_GOLDEEN}, - {10, 30, SPECIES_MAGIKARP}, - {10, 30, SPECIES_GOLDEEN}, - {10, 30, SPECIES_BARBOACH}, - {25, 30, SPECIES_BARBOACH}, - {30, 35, SPECIES_BARBOACH}, - {30, 35, SPECIES_WHISCASH}, - {35, 40, SPECIES_WHISCASH}, - {40, 45, SPECIES_WHISCASH}, -}; -const struct WildPokemonInfo MeteorFalls_B1F_1R_FishingMonsInfo = {30, MeteorFalls_B1F_1R_FishingMons}; - -const struct WildPokemon MeteorFalls_B1F_2R_LandMons [] = -{ - {33, 33, SPECIES_GOLBAT}, - {35, 35, SPECIES_GOLBAT}, - {30, 30, SPECIES_BAGON}, -#ifdef SAPPHIRE - {35, 35, SPECIES_LUNATONE}, -#else - {35, 35, SPECIES_SOLROCK}, -#endif - {35, 35, SPECIES_BAGON}, -#ifdef SAPPHIRE - {37, 37, SPECIES_LUNATONE}, -#else - {37, 37, SPECIES_SOLROCK}, -#endif - {25, 25, SPECIES_BAGON}, -#ifdef SAPPHIRE - {39, 39, SPECIES_LUNATONE}, -#else - {39, 39, SPECIES_SOLROCK}, -#endif - {38, 38, SPECIES_GOLBAT}, - {40, 40, SPECIES_GOLBAT}, - {38, 38, SPECIES_GOLBAT}, - {40, 40, SPECIES_GOLBAT}, -}; -const struct WildPokemonInfo MeteorFalls_B1F_2R_LandMonsInfo = {10, MeteorFalls_B1F_2R_LandMons}; - -const struct WildPokemon MeteorFalls_B1F_2R_WaterMons [] = -{ - {30, 35, SPECIES_GOLBAT}, - {30, 35, SPECIES_GOLBAT}, -#ifdef SAPPHIRE - {25, 35, SPECIES_LUNATONE}, - {15, 25, SPECIES_LUNATONE}, - {5, 15, SPECIES_LUNATONE}, -#else - {25, 35, SPECIES_SOLROCK}, - {15, 25, SPECIES_SOLROCK}, - {5, 15, SPECIES_SOLROCK}, -#endif -}; -const struct WildPokemonInfo MeteorFalls_B1F_2R_WaterMonsInfo = {4, MeteorFalls_B1F_2R_WaterMons}; - -const struct WildPokemon MeteorFalls_B1F_2R_FishingMons [] = -{ - {5, 10, SPECIES_MAGIKARP}, - {5, 10, SPECIES_GOLDEEN}, - {10, 30, SPECIES_MAGIKARP}, - {10, 30, SPECIES_GOLDEEN}, - {10, 30, SPECIES_BARBOACH}, - {25, 30, SPECIES_BARBOACH}, - {30, 35, SPECIES_BARBOACH}, - {30, 35, SPECIES_WHISCASH}, - {35, 40, SPECIES_WHISCASH}, - {40, 45, SPECIES_WHISCASH}, -}; -const struct WildPokemonInfo MeteorFalls_B1F_2R_FishingMonsInfo = {30, MeteorFalls_B1F_2R_FishingMons}; - -const struct WildPokemon RusturfTunnel_LandMons [] = -{ - {6, 6, SPECIES_WHISMUR}, - {7, 7, SPECIES_WHISMUR}, - {6, 6, SPECIES_WHISMUR}, - {6, 6, SPECIES_WHISMUR}, - {7, 7, SPECIES_WHISMUR}, - {7, 7, SPECIES_WHISMUR}, - {5, 5, SPECIES_WHISMUR}, - {8, 8, SPECIES_WHISMUR}, - {5, 5, SPECIES_WHISMUR}, - {8, 8, SPECIES_WHISMUR}, - {5, 5, SPECIES_WHISMUR}, - {8, 8, SPECIES_WHISMUR}, -}; -const struct WildPokemonInfo RusturfTunnel_LandMonsInfo = {10, RusturfTunnel_LandMons}; - -const struct WildPokemon GraniteCave_1F_LandMons [] = -{ - {7, 7, SPECIES_ZUBAT}, - {8, 8, SPECIES_MAKUHITA}, - {7, 7, SPECIES_MAKUHITA}, - {8, 8, SPECIES_ZUBAT}, - {9, 9, SPECIES_MAKUHITA}, - {8, 8, SPECIES_ABRA}, - {10, 10, SPECIES_MAKUHITA}, - {6, 6, SPECIES_MAKUHITA}, - {7, 7, SPECIES_GEODUDE}, - {8, 8, SPECIES_GEODUDE}, - {6, 6, SPECIES_GEODUDE}, - {9, 9, SPECIES_GEODUDE}, -}; -const struct WildPokemonInfo GraniteCave_1F_LandMonsInfo = {10, GraniteCave_1F_LandMons}; - -const struct WildPokemon GraniteCave_B1F_LandMons [] = -{ - {9, 9, SPECIES_ZUBAT}, - {10, 10, SPECIES_ARON}, - {9, 9, SPECIES_ARON}, - {11, 11, SPECIES_ARON}, - {10, 10, SPECIES_ZUBAT}, - {9, 9, SPECIES_ABRA}, - {10, 10, SPECIES_MAKUHITA}, - {11, 11, SPECIES_MAKUHITA}, -#ifdef SAPPHIRE - {10, 10, SPECIES_SABLEYE}, - {10, 10, SPECIES_SABLEYE}, - {9, 9, SPECIES_SABLEYE}, - {11, 11, SPECIES_SABLEYE}, -#else - {10, 10, SPECIES_MAWILE}, - {10, 10, SPECIES_MAWILE}, - {9, 9, SPECIES_MAWILE}, - {11, 11, SPECIES_MAWILE}, -#endif -}; -const struct WildPokemonInfo GraniteCave_B1F_LandMonsInfo = {10, GraniteCave_B1F_LandMons}; - -const struct WildPokemon GraniteCave_B2F_LandMons [] = -{ - {10, 10, SPECIES_ZUBAT}, - {11, 11, SPECIES_ARON}, - {10, 10, SPECIES_ARON}, - {11, 11, SPECIES_ZUBAT}, - {12, 12, SPECIES_ARON}, - {10, 10, SPECIES_ABRA}, -#ifdef SAPPHIRE - {10, 10, SPECIES_SABLEYE}, - {11, 11, SPECIES_SABLEYE}, - {12, 12, SPECIES_SABLEYE}, - {10, 10, SPECIES_SABLEYE}, - {12, 12, SPECIES_SABLEYE}, - {10, 10, SPECIES_SABLEYE}, -#else - {10, 10, SPECIES_MAWILE}, - {11, 11, SPECIES_MAWILE}, - {12, 12, SPECIES_MAWILE}, - {10, 10, SPECIES_MAWILE}, - {12, 12, SPECIES_MAWILE}, - {10, 10, SPECIES_MAWILE}, -#endif -}; -const struct WildPokemonInfo GraniteCave_B2F_LandMonsInfo = {10, GraniteCave_B2F_LandMons}; - -const struct WildPokemon GraniteCave_B2F_RockSmashMons [] = -{ - {10, 15, SPECIES_GEODUDE}, - {10, 20, SPECIES_NOSEPASS}, - {5, 10, SPECIES_GEODUDE}, - {15, 20, SPECIES_GEODUDE}, - {15, 20, SPECIES_GEODUDE}, -}; -const struct WildPokemonInfo GraniteCave_B2F_RockSmashMonsInfo = {20, GraniteCave_B2F_RockSmashMons}; - -const struct WildPokemon GraniteCave_StevensRoom_LandMons [] = -{ - {7, 7, SPECIES_ZUBAT}, - {8, 8, SPECIES_MAKUHITA}, - {7, 7, SPECIES_MAKUHITA}, - {8, 8, SPECIES_ZUBAT}, - {9, 9, SPECIES_MAKUHITA}, - {8, 8, SPECIES_ABRA}, - {10, 10, SPECIES_MAKUHITA}, - {6, 6, SPECIES_MAKUHITA}, - {7, 7, SPECIES_ARON}, - {8, 8, SPECIES_ARON}, - {7, 7, SPECIES_ARON}, - {8, 8, SPECIES_ARON}, -}; -const struct WildPokemonInfo GraniteCave_StevensRoom_LandMonsInfo = {10, GraniteCave_StevensRoom_LandMons}; - -const struct WildPokemon PetalburgWoods_LandMons [] = -{ - {5, 5, SPECIES_ZIGZAGOON}, - {5, 5, SPECIES_WURMPLE}, - {5, 5, SPECIES_SHROOMISH}, - {6, 6, SPECIES_ZIGZAGOON}, - {5, 5, SPECIES_SILCOON}, - {5, 5, SPECIES_CASCOON}, - {6, 6, SPECIES_WURMPLE}, - {6, 6, SPECIES_SHROOMISH}, - {5, 5, SPECIES_TAILLOW}, - {5, 5, SPECIES_SLAKOTH}, - {6, 6, SPECIES_TAILLOW}, - {6, 6, SPECIES_SLAKOTH}, -}; -const struct WildPokemonInfo PetalburgWoods_LandMonsInfo = {20, PetalburgWoods_LandMons}; - -//Jagged Pass Pokemon are 2 levels higher on Sapphire -#ifdef SAPPHIRE -#define JAGGED_PASS_LEVEL_DIFF 2 -#else -#define JAGGED_PASS_LEVEL_DIFF 0 -#endif - -const struct WildPokemon JaggedPass_LandMons [] = -{ - {19 + JAGGED_PASS_LEVEL_DIFF, 19 + JAGGED_PASS_LEVEL_DIFF, SPECIES_NUMEL}, - {19 + JAGGED_PASS_LEVEL_DIFF, 19 + JAGGED_PASS_LEVEL_DIFF, SPECIES_NUMEL}, - {19 + JAGGED_PASS_LEVEL_DIFF, 19 + JAGGED_PASS_LEVEL_DIFF, SPECIES_MACHOP}, - {18 + JAGGED_PASS_LEVEL_DIFF, 18 + JAGGED_PASS_LEVEL_DIFF, SPECIES_NUMEL}, - {18 + JAGGED_PASS_LEVEL_DIFF, 18 + JAGGED_PASS_LEVEL_DIFF, SPECIES_SPOINK}, - {18 + JAGGED_PASS_LEVEL_DIFF, 18 + JAGGED_PASS_LEVEL_DIFF, SPECIES_MACHOP}, - {19 + JAGGED_PASS_LEVEL_DIFF, 19 + JAGGED_PASS_LEVEL_DIFF, SPECIES_SPOINK}, - {20 + JAGGED_PASS_LEVEL_DIFF, 20 + JAGGED_PASS_LEVEL_DIFF, SPECIES_MACHOP}, - {20 + JAGGED_PASS_LEVEL_DIFF, 20 + JAGGED_PASS_LEVEL_DIFF, SPECIES_NUMEL}, - {20 + JAGGED_PASS_LEVEL_DIFF, 20 + JAGGED_PASS_LEVEL_DIFF, SPECIES_SPOINK}, - {20 + JAGGED_PASS_LEVEL_DIFF, 20 + JAGGED_PASS_LEVEL_DIFF, SPECIES_NUMEL}, - {20 + JAGGED_PASS_LEVEL_DIFF, 20 + JAGGED_PASS_LEVEL_DIFF, SPECIES_SPOINK}, -}; -const struct WildPokemonInfo JaggedPass_LandMonsInfo = {20, JaggedPass_LandMons}; - -const struct WildPokemon FieryPath_LandMons [] = -{ - {15, 15, SPECIES_NUMEL}, -#ifdef SAPPHIRE - {15, 15, SPECIES_GRIMER}, -#else - {15, 15, SPECIES_KOFFING}, -#endif - {16, 16, SPECIES_NUMEL}, - {15, 15, SPECIES_MACHOP}, - {15, 15, SPECIES_TORKOAL}, - {15, 15, SPECIES_SLUGMA}, -#ifdef SAPPHIRE - {16, 16, SPECIES_GRIMER}, -#else - {16, 16, SPECIES_KOFFING}, -#endif - {16, 16, SPECIES_MACHOP}, - {14, 14, SPECIES_TORKOAL}, - {16, 16, SPECIES_TORKOAL}, -#ifdef SAPPHIRE - {14, 14, SPECIES_KOFFING}, - {14, 14, SPECIES_KOFFING}, -#else - {14, 14, SPECIES_GRIMER}, - {14, 14, SPECIES_GRIMER}, -#endif -}; -const struct WildPokemonInfo FieryPath_LandMonsInfo = {10, FieryPath_LandMons}; - -const struct WildPokemon MtPyre_1F_LandMons [] = -{ -#ifdef SAPPHIRE - {27, 27, SPECIES_SHUPPET}, - {28, 28, SPECIES_SHUPPET}, - {26, 26, SPECIES_SHUPPET}, - {25, 25, SPECIES_SHUPPET}, - {29, 29, SPECIES_SHUPPET}, - {24, 24, SPECIES_SHUPPET}, - {23, 23, SPECIES_SHUPPET}, - {22, 22, SPECIES_SHUPPET}, - {29, 29, SPECIES_SHUPPET}, - {24, 24, SPECIES_SHUPPET}, - {29, 29, SPECIES_SHUPPET}, - {24, 24, SPECIES_SHUPPET}, -#else - {27, 27, SPECIES_DUSKULL}, - {28, 28, SPECIES_DUSKULL}, - {26, 26, SPECIES_DUSKULL}, - {25, 25, SPECIES_DUSKULL}, - {29, 29, SPECIES_DUSKULL}, - {24, 24, SPECIES_DUSKULL}, - {23, 23, SPECIES_DUSKULL}, - {22, 22, SPECIES_DUSKULL}, - {29, 29, SPECIES_DUSKULL}, - {24, 24, SPECIES_DUSKULL}, - {29, 29, SPECIES_DUSKULL}, - {24, 24, SPECIES_DUSKULL}, -#endif -}; -const struct WildPokemonInfo MtPyre_1F_LandMonsInfo = {10, MtPyre_1F_LandMons}; - -const struct WildPokemon MtPyre_2F_LandMons [] = -{ -#ifdef SAPPHIRE - {27, 27, SPECIES_SHUPPET}, - {28, 28, SPECIES_SHUPPET}, - {26, 26, SPECIES_SHUPPET}, - {25, 25, SPECIES_SHUPPET}, - {29, 29, SPECIES_SHUPPET}, - {24, 24, SPECIES_SHUPPET}, - {23, 23, SPECIES_SHUPPET}, - {22, 22, SPECIES_SHUPPET}, - {29, 29, SPECIES_SHUPPET}, - {24, 24, SPECIES_SHUPPET}, - {29, 29, SPECIES_SHUPPET}, - {24, 24, SPECIES_SHUPPET}, -#else - {27, 27, SPECIES_DUSKULL}, - {28, 28, SPECIES_DUSKULL}, - {26, 26, SPECIES_DUSKULL}, - {25, 25, SPECIES_DUSKULL}, - {29, 29, SPECIES_DUSKULL}, - {24, 24, SPECIES_DUSKULL}, - {23, 23, SPECIES_DUSKULL}, - {22, 22, SPECIES_DUSKULL}, - {29, 29, SPECIES_DUSKULL}, - {24, 24, SPECIES_DUSKULL}, - {29, 29, SPECIES_DUSKULL}, - {24, 24, SPECIES_DUSKULL}, -#endif -}; -const struct WildPokemonInfo MtPyre_2F_LandMonsInfo = {10, MtPyre_2F_LandMons}; - -const struct WildPokemon MtPyre_3F_LandMons [] = -{ -#ifdef SAPPHIRE - {27, 27, SPECIES_SHUPPET}, - {28, 28, SPECIES_SHUPPET}, - {26, 26, SPECIES_SHUPPET}, - {25, 25, SPECIES_SHUPPET}, - {29, 29, SPECIES_SHUPPET}, - {24, 24, SPECIES_SHUPPET}, - {23, 23, SPECIES_SHUPPET}, - {22, 22, SPECIES_SHUPPET}, - {29, 29, SPECIES_SHUPPET}, - {24, 24, SPECIES_SHUPPET}, - {29, 29, SPECIES_SHUPPET}, - {24, 24, SPECIES_SHUPPET}, -#else - {27, 27, SPECIES_DUSKULL}, - {28, 28, SPECIES_DUSKULL}, - {26, 26, SPECIES_DUSKULL}, - {25, 25, SPECIES_DUSKULL}, - {29, 29, SPECIES_DUSKULL}, - {24, 24, SPECIES_DUSKULL}, - {23, 23, SPECIES_DUSKULL}, - {22, 22, SPECIES_DUSKULL}, - {29, 29, SPECIES_DUSKULL}, - {24, 24, SPECIES_DUSKULL}, - {29, 29, SPECIES_DUSKULL}, - {24, 24, SPECIES_DUSKULL}, -#endif -}; -const struct WildPokemonInfo MtPyre_3F_LandMonsInfo = {10, MtPyre_3F_LandMons}; - -const struct WildPokemon MtPyre_4F_LandMons [] = -{ -#ifdef SAPPHIRE - {27, 27, SPECIES_SHUPPET}, - {28, 28, SPECIES_SHUPPET}, - {26, 26, SPECIES_SHUPPET}, - {25, 25, SPECIES_SHUPPET}, - {29, 29, SPECIES_SHUPPET}, - {24, 24, SPECIES_SHUPPET}, - {23, 23, SPECIES_SHUPPET}, - {22, 22, SPECIES_SHUPPET}, - {27, 27, SPECIES_DUSKULL}, - {27, 27, SPECIES_DUSKULL}, - {25, 25, SPECIES_DUSKULL}, - {29, 29, SPECIES_DUSKULL}, -#else - {27, 27, SPECIES_DUSKULL}, - {28, 28, SPECIES_DUSKULL}, - {26, 26, SPECIES_DUSKULL}, - {25, 25, SPECIES_DUSKULL}, - {29, 29, SPECIES_DUSKULL}, - {24, 24, SPECIES_DUSKULL}, - {23, 23, SPECIES_DUSKULL}, - {22, 22, SPECIES_DUSKULL}, - {27, 27, SPECIES_SHUPPET}, - {27, 27, SPECIES_SHUPPET}, - {25, 25, SPECIES_SHUPPET}, - {29, 29, SPECIES_SHUPPET}, -#endif -}; -const struct WildPokemonInfo MtPyre_4F_LandMonsInfo = {10, MtPyre_4F_LandMons}; - -const struct WildPokemon MtPyre_5F_LandMons [] = -{ -#ifdef SAPPHIRE - {27, 27, SPECIES_SHUPPET}, - {28, 28, SPECIES_SHUPPET}, - {26, 26, SPECIES_SHUPPET}, - {25, 25, SPECIES_SHUPPET}, - {29, 29, SPECIES_SHUPPET}, - {24, 24, SPECIES_SHUPPET}, - {23, 23, SPECIES_SHUPPET}, - {22, 22, SPECIES_SHUPPET}, - {27, 27, SPECIES_DUSKULL}, - {27, 27, SPECIES_DUSKULL}, - {25, 25, SPECIES_DUSKULL}, - {29, 29, SPECIES_DUSKULL}, -#else - {27, 27, SPECIES_DUSKULL}, - {28, 28, SPECIES_DUSKULL}, - {26, 26, SPECIES_DUSKULL}, - {25, 25, SPECIES_DUSKULL}, - {29, 29, SPECIES_DUSKULL}, - {24, 24, SPECIES_DUSKULL}, - {23, 23, SPECIES_DUSKULL}, - {22, 22, SPECIES_DUSKULL}, - {27, 27, SPECIES_SHUPPET}, - {27, 27, SPECIES_SHUPPET}, - {25, 25, SPECIES_SHUPPET}, - {29, 29, SPECIES_SHUPPET}, -#endif -}; -const struct WildPokemonInfo MtPyre_5F_LandMonsInfo = {10, MtPyre_5F_LandMons}; - -const struct WildPokemon MtPyre_6F_LandMons [] = -{ -#ifdef SAPPHIRE - {27, 27, SPECIES_SHUPPET}, - {28, 28, SPECIES_SHUPPET}, - {26, 26, SPECIES_SHUPPET}, - {25, 25, SPECIES_SHUPPET}, - {29, 29, SPECIES_SHUPPET}, - {24, 24, SPECIES_SHUPPET}, - {23, 23, SPECIES_SHUPPET}, - {22, 22, SPECIES_SHUPPET}, - {27, 27, SPECIES_DUSKULL}, - {27, 27, SPECIES_DUSKULL}, - {25, 25, SPECIES_DUSKULL}, - {29, 29, SPECIES_DUSKULL}, -#else - {27, 27, SPECIES_DUSKULL}, - {28, 28, SPECIES_DUSKULL}, - {26, 26, SPECIES_DUSKULL}, - {25, 25, SPECIES_DUSKULL}, - {29, 29, SPECIES_DUSKULL}, - {24, 24, SPECIES_DUSKULL}, - {23, 23, SPECIES_DUSKULL}, - {22, 22, SPECIES_DUSKULL}, - {27, 27, SPECIES_SHUPPET}, - {27, 27, SPECIES_SHUPPET}, - {25, 25, SPECIES_SHUPPET}, - {29, 29, SPECIES_SHUPPET}, -#endif -}; -const struct WildPokemonInfo MtPyre_6F_LandMonsInfo = {10, MtPyre_6F_LandMons}; - -const struct WildPokemon MtPyre_Exterior_LandMons [] = -{ -#ifdef SAPPHIRE - {27, 27, SPECIES_SHUPPET}, -#else - {27, 27, SPECIES_DUSKULL}, -#endif - {27, 27, SPECIES_MEDITITE}, -#ifdef SAPPHIRE - {28, 28, SPECIES_SHUPPET}, -#else - {28, 28, SPECIES_DUSKULL}, -#endif - {29, 29, SPECIES_MEDITITE}, -#ifdef SAPPHIRE - {29, 29, SPECIES_SHUPPET}, -#else - {29, 29, SPECIES_DUSKULL}, -#endif - {27, 27, SPECIES_VULPIX}, - {29, 29, SPECIES_VULPIX}, - {25, 25, SPECIES_VULPIX}, - {27, 27, SPECIES_WINGULL}, - {27, 27, SPECIES_WINGULL}, - {26, 26, SPECIES_WINGULL}, - {28, 28, SPECIES_WINGULL}, -}; -const struct WildPokemonInfo MtPyre_Exterior_LandMonsInfo = {10, MtPyre_Exterior_LandMons}; - -const struct WildPokemon MtPyre_Summit_LandMons [] = -{ -#ifdef SAPPHIRE - {28, 28, SPECIES_SHUPPET}, - {29, 29, SPECIES_SHUPPET}, - {27, 27, SPECIES_SHUPPET}, - {26, 26, SPECIES_SHUPPET}, - {30, 30, SPECIES_SHUPPET}, - {25, 25, SPECIES_SHUPPET}, - {24, 24, SPECIES_SHUPPET}, - {28, 28, SPECIES_DUSKULL}, - {26, 26, SPECIES_DUSKULL}, - {30, 30, SPECIES_DUSKULL}, -#else - {28, 28, SPECIES_DUSKULL}, - {29, 29, SPECIES_DUSKULL}, - {27, 27, SPECIES_DUSKULL}, - {26, 26, SPECIES_DUSKULL}, - {30, 30, SPECIES_DUSKULL}, - {25, 25, SPECIES_DUSKULL}, - {24, 24, SPECIES_DUSKULL}, - {28, 28, SPECIES_SHUPPET}, - {26, 26, SPECIES_SHUPPET}, - {30, 30, SPECIES_SHUPPET}, -#endif - {28, 28, SPECIES_CHIMECHO}, - {28, 28, SPECIES_CHIMECHO}, -}; -const struct WildPokemonInfo MtPyre_Summit_LandMonsInfo = {10, MtPyre_Summit_LandMons}; - -const struct WildPokemon SeafloorCavern_Entrance_WaterMons [] = -{ - {5, 35, SPECIES_TENTACOOL}, - {5, 35, SPECIES_ZUBAT}, - {30, 35, SPECIES_ZUBAT}, - {30, 35, SPECIES_GOLBAT}, - {30, 35, SPECIES_GOLBAT}, -}; -const struct WildPokemonInfo SeafloorCavern_Entrance_WaterMonsInfo = {4, SeafloorCavern_Entrance_WaterMons}; - -const struct WildPokemon SeafloorCavern_Entrance_FishingMons [] = -{ - {5, 10, SPECIES_MAGIKARP}, - {5, 10, SPECIES_TENTACOOL}, - {10, 30, SPECIES_MAGIKARP}, - {10, 30, SPECIES_TENTACOOL}, - {10, 30, SPECIES_WAILMER}, - {25, 30, SPECIES_WAILMER}, - {30, 35, SPECIES_WAILMER}, - {20, 25, SPECIES_WAILMER}, - {35, 40, SPECIES_WAILMER}, - {40, 45, SPECIES_WAILMER}, -}; -const struct WildPokemonInfo SeafloorCavern_Entrance_FishingMonsInfo = {10, SeafloorCavern_Entrance_FishingMons}; - -const struct WildPokemon SeafloorCavern_Room1_LandMons [] = -{ - {30, 30, SPECIES_ZUBAT}, - {31, 31, SPECIES_ZUBAT}, - {32, 32, SPECIES_ZUBAT}, - {33, 33, SPECIES_ZUBAT}, - {28, 28, SPECIES_ZUBAT}, - {29, 29, SPECIES_ZUBAT}, - {34, 34, SPECIES_ZUBAT}, - {35, 35, SPECIES_ZUBAT}, - {34, 34, SPECIES_GOLBAT}, - {35, 35, SPECIES_GOLBAT}, - {33, 33, SPECIES_GOLBAT}, - {36, 36, SPECIES_GOLBAT}, -}; -const struct WildPokemonInfo SeafloorCavern_Room1_LandMonsInfo = {4, SeafloorCavern_Room1_LandMons}; - -const struct WildPokemon SeafloorCavern_Room2_LandMons [] = -{ - {30, 30, SPECIES_ZUBAT}, - {31, 31, SPECIES_ZUBAT}, - {32, 32, SPECIES_ZUBAT}, - {33, 33, SPECIES_ZUBAT}, - {28, 28, SPECIES_ZUBAT}, - {29, 29, SPECIES_ZUBAT}, - {34, 34, SPECIES_ZUBAT}, - {35, 35, SPECIES_ZUBAT}, - {34, 34, SPECIES_GOLBAT}, - {35, 35, SPECIES_GOLBAT}, - {33, 33, SPECIES_GOLBAT}, - {36, 36, SPECIES_GOLBAT}, -}; -const struct WildPokemonInfo SeafloorCavern_Room2_LandMonsInfo = {4, SeafloorCavern_Room2_LandMons}; - -const struct WildPokemon SeafloorCavern_Room3_LandMons [] = -{ - {30, 30, SPECIES_ZUBAT}, - {31, 31, SPECIES_ZUBAT}, - {32, 32, SPECIES_ZUBAT}, - {33, 33, SPECIES_ZUBAT}, - {28, 28, SPECIES_ZUBAT}, - {29, 29, SPECIES_ZUBAT}, - {34, 34, SPECIES_ZUBAT}, - {35, 35, SPECIES_ZUBAT}, - {34, 34, SPECIES_GOLBAT}, - {35, 35, SPECIES_GOLBAT}, - {33, 33, SPECIES_GOLBAT}, - {36, 36, SPECIES_GOLBAT}, -}; -const struct WildPokemonInfo SeafloorCavern_Room3_LandMonsInfo = {4, SeafloorCavern_Room3_LandMons}; - -const struct WildPokemon SeafloorCavern_Room4_LandMons [] = -{ - {30, 30, SPECIES_ZUBAT}, - {31, 31, SPECIES_ZUBAT}, - {32, 32, SPECIES_ZUBAT}, - {33, 33, SPECIES_ZUBAT}, - {28, 28, SPECIES_ZUBAT}, - {29, 29, SPECIES_ZUBAT}, - {34, 34, SPECIES_ZUBAT}, - {35, 35, SPECIES_ZUBAT}, - {34, 34, SPECIES_GOLBAT}, - {35, 35, SPECIES_GOLBAT}, - {33, 33, SPECIES_GOLBAT}, - {36, 36, SPECIES_GOLBAT}, -}; -const struct WildPokemonInfo SeafloorCavern_Room4_LandMonsInfo = {4, SeafloorCavern_Room4_LandMons}; - -const struct WildPokemon SeafloorCavern_Room5_LandMons [] = -{ - {30, 30, SPECIES_ZUBAT}, - {31, 31, SPECIES_ZUBAT}, - {32, 32, SPECIES_ZUBAT}, - {33, 33, SPECIES_ZUBAT}, - {28, 28, SPECIES_ZUBAT}, - {29, 29, SPECIES_ZUBAT}, - {34, 34, SPECIES_ZUBAT}, - {35, 35, SPECIES_ZUBAT}, - {34, 34, SPECIES_GOLBAT}, - {35, 35, SPECIES_GOLBAT}, - {33, 33, SPECIES_GOLBAT}, - {36, 36, SPECIES_GOLBAT}, -}; -const struct WildPokemonInfo SeafloorCavern_Room5_LandMonsInfo = {4, SeafloorCavern_Room5_LandMons}; - -const struct WildPokemon SeafloorCavern_Room6_LandMons [] = -{ - {30, 30, SPECIES_ZUBAT}, - {31, 31, SPECIES_ZUBAT}, - {32, 32, SPECIES_ZUBAT}, - {33, 33, SPECIES_ZUBAT}, - {28, 28, SPECIES_ZUBAT}, - {29, 29, SPECIES_ZUBAT}, - {34, 34, SPECIES_ZUBAT}, - {35, 35, SPECIES_ZUBAT}, - {34, 34, SPECIES_GOLBAT}, - {35, 35, SPECIES_GOLBAT}, - {33, 33, SPECIES_GOLBAT}, - {36, 36, SPECIES_GOLBAT}, -}; -const struct WildPokemonInfo SeafloorCavern_Room6_LandMonsInfo = {4, SeafloorCavern_Room6_LandMons}; - -const struct WildPokemon SeafloorCavern_Room6_WaterMons [] = -{ - {5, 35, SPECIES_TENTACOOL}, - {5, 35, SPECIES_ZUBAT}, - {30, 35, SPECIES_ZUBAT}, - {30, 35, SPECIES_GOLBAT}, - {30, 35, SPECIES_GOLBAT}, -}; -const struct WildPokemonInfo SeafloorCavern_Room6_WaterMonsInfo = {4, SeafloorCavern_Room6_WaterMons}; - -const struct WildPokemon SeafloorCavern_Room6_FishingMons [] = -{ - {5, 10, SPECIES_MAGIKARP}, - {5, 10, SPECIES_TENTACOOL}, - {10, 30, SPECIES_MAGIKARP}, - {10, 30, SPECIES_TENTACOOL}, - {10, 30, SPECIES_WAILMER}, - {25, 30, SPECIES_WAILMER}, - {30, 35, SPECIES_WAILMER}, - {20, 25, SPECIES_WAILMER}, - {35, 40, SPECIES_WAILMER}, - {40, 45, SPECIES_WAILMER}, -}; -const struct WildPokemonInfo SeafloorCavern_Room6_FishingMonsInfo = {10, SeafloorCavern_Room6_FishingMons}; - -const struct WildPokemon SeafloorCavern_Room7_LandMons [] = -{ - {30, 30, SPECIES_ZUBAT}, - {31, 31, SPECIES_ZUBAT}, - {32, 32, SPECIES_ZUBAT}, - {33, 33, SPECIES_ZUBAT}, - {28, 28, SPECIES_ZUBAT}, - {29, 29, SPECIES_ZUBAT}, - {34, 34, SPECIES_ZUBAT}, - {35, 35, SPECIES_ZUBAT}, - {34, 34, SPECIES_GOLBAT}, - {35, 35, SPECIES_GOLBAT}, - {33, 33, SPECIES_GOLBAT}, - {36, 36, SPECIES_GOLBAT}, -}; -const struct WildPokemonInfo SeafloorCavern_Room7_LandMonsInfo = {4, SeafloorCavern_Room7_LandMons}; - -const struct WildPokemon SeafloorCavern_Room7_WaterMons [] = -{ - {5, 35, SPECIES_TENTACOOL}, - {5, 35, SPECIES_ZUBAT}, - {30, 35, SPECIES_ZUBAT}, - {30, 35, SPECIES_GOLBAT}, - {30, 35, SPECIES_GOLBAT}, -}; -const struct WildPokemonInfo SeafloorCavern_Room7_WaterMonsInfo = {4, SeafloorCavern_Room7_WaterMons}; - -const struct WildPokemon SeafloorCavern_Room7_FishingMons [] = -{ - {5, 10, SPECIES_MAGIKARP}, - {5, 10, SPECIES_TENTACOOL}, - {10, 30, SPECIES_MAGIKARP}, - {10, 30, SPECIES_TENTACOOL}, - {10, 30, SPECIES_WAILMER}, - {25, 30, SPECIES_WAILMER}, - {30, 35, SPECIES_WAILMER}, - {20, 25, SPECIES_WAILMER}, - {35, 40, SPECIES_WAILMER}, - {40, 45, SPECIES_WAILMER}, -}; -const struct WildPokemonInfo SeafloorCavern_Room7_FishingMonsInfo = {10, SeafloorCavern_Room7_FishingMons}; - -const struct WildPokemon SeafloorCavern_Room8_LandMons [] = -{ - {30, 30, SPECIES_ZUBAT}, - {31, 31, SPECIES_ZUBAT}, - {32, 32, SPECIES_ZUBAT}, - {33, 33, SPECIES_ZUBAT}, - {28, 28, SPECIES_ZUBAT}, - {29, 29, SPECIES_ZUBAT}, - {34, 34, SPECIES_ZUBAT}, - {35, 35, SPECIES_ZUBAT}, - {34, 34, SPECIES_GOLBAT}, - {35, 35, SPECIES_GOLBAT}, - {33, 33, SPECIES_GOLBAT}, - {36, 36, SPECIES_GOLBAT}, -}; -const struct WildPokemonInfo SeafloorCavern_Room8_LandMonsInfo = {4, SeafloorCavern_Room8_LandMons}; - -const struct WildPokemon CaveOfOrigin_Entrance_LandMons [] = -{ - {30, 30, SPECIES_ZUBAT}, - {31, 31, SPECIES_ZUBAT}, - {32, 32, SPECIES_ZUBAT}, - {33, 33, SPECIES_ZUBAT}, - {28, 28, SPECIES_ZUBAT}, - {29, 29, SPECIES_ZUBAT}, - {34, 34, SPECIES_ZUBAT}, - {35, 35, SPECIES_ZUBAT}, - {34, 34, SPECIES_GOLBAT}, - {35, 35, SPECIES_GOLBAT}, - {33, 33, SPECIES_GOLBAT}, - {36, 36, SPECIES_GOLBAT}, -}; -const struct WildPokemonInfo CaveOfOrigin_Entrance_LandMonsInfo = {4, CaveOfOrigin_Entrance_LandMons}; - -const struct WildPokemon CaveOfOrigin_1F_LandMons [] = -{ - {30, 30, SPECIES_ZUBAT}, - {31, 31, SPECIES_ZUBAT}, - {32, 32, SPECIES_ZUBAT}, -#ifdef SAPPHIRE - {30, 30, SPECIES_SABLEYE}, - {32, 32, SPECIES_SABLEYE}, - {34, 34, SPECIES_SABLEYE}, -#else - {30, 30, SPECIES_MAWILE}, - {32, 32, SPECIES_MAWILE}, - {34, 34, SPECIES_MAWILE}, -#endif - {33, 33, SPECIES_ZUBAT}, - {34, 34, SPECIES_ZUBAT}, - {34, 34, SPECIES_GOLBAT}, - {35, 35, SPECIES_GOLBAT}, - {33, 33, SPECIES_GOLBAT}, - {36, 36, SPECIES_GOLBAT}, -}; -const struct WildPokemonInfo CaveOfOrigin_1F_LandMonsInfo = {4, CaveOfOrigin_1F_LandMons}; - -const struct WildPokemon CaveOfOrigin_B1F_LandMons [] = -{ - {30, 30, SPECIES_ZUBAT}, - {31, 31, SPECIES_ZUBAT}, - {32, 32, SPECIES_ZUBAT}, -#ifdef SAPPHIRE - {30, 30, SPECIES_SABLEYE}, - {32, 32, SPECIES_SABLEYE}, - {34, 34, SPECIES_SABLEYE}, -#else - {30, 30, SPECIES_MAWILE}, - {32, 32, SPECIES_MAWILE}, - {34, 34, SPECIES_MAWILE}, -#endif - {33, 33, SPECIES_ZUBAT}, - {34, 34, SPECIES_ZUBAT}, - {34, 34, SPECIES_GOLBAT}, - {35, 35, SPECIES_GOLBAT}, - {33, 33, SPECIES_GOLBAT}, - {36, 36, SPECIES_GOLBAT}, -}; -const struct WildPokemonInfo CaveOfOrigin_B1F_LandMonsInfo = {4, CaveOfOrigin_B1F_LandMons}; - -const struct WildPokemon CaveOfOrigin_B2F_LandMons [] = -{ - {30, 30, SPECIES_ZUBAT}, - {31, 31, SPECIES_ZUBAT}, - {32, 32, SPECIES_ZUBAT}, -#ifdef SAPPHIRE - {30, 30, SPECIES_SABLEYE}, - {32, 32, SPECIES_SABLEYE}, - {34, 34, SPECIES_SABLEYE}, -#else - {30, 30, SPECIES_MAWILE}, - {32, 32, SPECIES_MAWILE}, - {34, 34, SPECIES_MAWILE}, -#endif - {33, 33, SPECIES_ZUBAT}, - {34, 34, SPECIES_ZUBAT}, - {34, 34, SPECIES_GOLBAT}, - {35, 35, SPECIES_GOLBAT}, - {33, 33, SPECIES_GOLBAT}, - {36, 36, SPECIES_GOLBAT}, -}; -const struct WildPokemonInfo CaveOfOrigin_B2F_LandMonsInfo = {4, CaveOfOrigin_B2F_LandMons}; - -const struct WildPokemon CaveOfOrigin_B3F_LandMons [] = -{ - {30, 30, SPECIES_ZUBAT}, - {31, 31, SPECIES_ZUBAT}, - {32, 32, SPECIES_ZUBAT}, -#ifdef SAPPHIRE - {30, 30, SPECIES_SABLEYE}, - {32, 32, SPECIES_SABLEYE}, - {34, 34, SPECIES_SABLEYE}, -#else - {30, 30, SPECIES_MAWILE}, - {32, 32, SPECIES_MAWILE}, - {34, 34, SPECIES_MAWILE}, -#endif - {33, 33, SPECIES_ZUBAT}, - {34, 34, SPECIES_ZUBAT}, - {34, 34, SPECIES_GOLBAT}, - {35, 35, SPECIES_GOLBAT}, - {33, 33, SPECIES_GOLBAT}, - {36, 36, SPECIES_GOLBAT}, -}; -const struct WildPokemonInfo CaveOfOrigin_B3F_LandMonsInfo = {4, CaveOfOrigin_B3F_LandMons}; - -const struct WildPokemon VictoryRoad_1F_LandMons [] = -{ - {40, 40, SPECIES_GOLBAT}, - {40, 40, SPECIES_HARIYAMA}, - {40, 40, SPECIES_LAIRON}, - {40, 40, SPECIES_LOUDRED}, - {36, 36, SPECIES_ZUBAT}, - {36, 36, SPECIES_MAKUHITA}, - {38, 38, SPECIES_GOLBAT}, - {38, 38, SPECIES_HARIYAMA}, - {36, 36, SPECIES_ARON}, - {36, 36, SPECIES_WHISMUR}, - {36, 36, SPECIES_ARON}, - {36, 36, SPECIES_WHISMUR}, -}; -const struct WildPokemonInfo VictoryRoad_1F_LandMonsInfo = {10, VictoryRoad_1F_LandMons}; - -const struct WildPokemon VictoryRoad_B1F_LandMons [] = -{ - {40, 40, SPECIES_GOLBAT}, - {40, 40, SPECIES_HARIYAMA}, - {40, 40, SPECIES_LAIRON}, - {40, 40, SPECIES_MEDICHAM}, - {38, 38, SPECIES_GOLBAT}, - {38, 38, SPECIES_HARIYAMA}, - {42, 42, SPECIES_GOLBAT}, - {42, 42, SPECIES_HARIYAMA}, - {42, 42, SPECIES_LAIRON}, - {38, 38, SPECIES_MEDITITE}, - {42, 42, SPECIES_LAIRON}, - {38, 38, SPECIES_MEDITITE}, -}; -const struct WildPokemonInfo VictoryRoad_B1F_LandMonsInfo = {10, VictoryRoad_B1F_LandMons}; - -const struct WildPokemon VictoryRoad_B1F_RockSmashMons [] = -{ - {30, 40, SPECIES_GRAVELER}, - {30, 40, SPECIES_GEODUDE}, - {35, 40, SPECIES_GRAVELER}, - {35, 40, SPECIES_GRAVELER}, - {35, 40, SPECIES_GRAVELER}, -}; -const struct WildPokemonInfo VictoryRoad_B1F_RockSmashMonsInfo = {20, VictoryRoad_B1F_RockSmashMons}; - -const struct WildPokemon VictoryRoad_B2F_LandMons [] = -{ - {40, 40, SPECIES_GOLBAT}, -#ifdef SAPPHIRE - {40, 40, SPECIES_SABLEYE}, -#else - {40, 40, SPECIES_MAWILE}, -#endif - {40, 40, SPECIES_LAIRON}, - {40, 40, SPECIES_MEDICHAM}, - {42, 42, SPECIES_GOLBAT}, -#ifdef SAPPHIRE - {42, 42, SPECIES_SABLEYE}, -#else - {42, 42, SPECIES_MAWILE}, -#endif - {44, 44, SPECIES_GOLBAT}, -#ifdef SAPPHIRE - {44, 44, SPECIES_SABLEYE}, -#else - {44, 44, SPECIES_MAWILE}, -#endif - {42, 42, SPECIES_LAIRON}, - {42, 42, SPECIES_MEDICHAM}, - {44, 44, SPECIES_LAIRON}, - {44, 44, SPECIES_MEDICHAM}, -}; -const struct WildPokemonInfo VictoryRoad_B2F_LandMonsInfo = {10, VictoryRoad_B2F_LandMons}; - -const struct WildPokemon VictoryRoad_B2F_WaterMons [] = -{ - {30, 35, SPECIES_GOLBAT}, - {25, 30, SPECIES_GOLBAT}, - {35, 40, SPECIES_GOLBAT}, - {35, 40, SPECIES_GOLBAT}, - {35, 40, SPECIES_GOLBAT}, -}; -const struct WildPokemonInfo VictoryRoad_B2F_WaterMonsInfo = {4, VictoryRoad_B2F_WaterMons}; - -const struct WildPokemon VictoryRoad_B2F_FishingMons [] = -{ - {5, 10, SPECIES_MAGIKARP}, - {5, 10, SPECIES_GOLDEEN}, - {10, 30, SPECIES_MAGIKARP}, - {10, 30, SPECIES_GOLDEEN}, - {10, 30, SPECIES_BARBOACH}, - {25, 30, SPECIES_BARBOACH}, - {30, 35, SPECIES_BARBOACH}, - {30, 35, SPECIES_WHISCASH}, - {35, 40, SPECIES_WHISCASH}, - {40, 45, SPECIES_WHISCASH}, -}; -const struct WildPokemonInfo VictoryRoad_B2F_FishingMonsInfo = {30, VictoryRoad_B2F_FishingMons}; - -const struct WildPokemon ShoalCave_LowTideEntranceRoom_LandMons [] = -{ - {26, 26, SPECIES_ZUBAT}, - {26, 26, SPECIES_SPHEAL}, - {28, 28, SPECIES_ZUBAT}, - {28, 28, SPECIES_SPHEAL}, - {30, 30, SPECIES_ZUBAT}, - {30, 30, SPECIES_SPHEAL}, - {32, 32, SPECIES_ZUBAT}, - {32, 32, SPECIES_SPHEAL}, - {32, 32, SPECIES_GOLBAT}, - {32, 32, SPECIES_SPHEAL}, - {32, 32, SPECIES_GOLBAT}, - {32, 32, SPECIES_SPHEAL}, -}; -const struct WildPokemonInfo ShoalCave_LowTideEntranceRoom_LandMonsInfo = {10, ShoalCave_LowTideEntranceRoom_LandMons}; - -const struct WildPokemon ShoalCave_LowTideEntranceRoom_WaterMons [] = -{ - {5, 35, SPECIES_TENTACOOL}, - {5, 35, SPECIES_ZUBAT}, - {25, 30, SPECIES_SPHEAL}, - {25, 30, SPECIES_SPHEAL}, - {25, 35, SPECIES_SPHEAL}, -}; -const struct WildPokemonInfo ShoalCave_LowTideEntranceRoom_WaterMonsInfo = {4, ShoalCave_LowTideEntranceRoom_WaterMons}; - -const struct WildPokemon ShoalCave_LowTideEntranceRoom_FishingMons [] = -{ - {5, 10, SPECIES_MAGIKARP}, - {5, 10, SPECIES_TENTACOOL}, - {10, 30, SPECIES_MAGIKARP}, - {10, 30, SPECIES_TENTACOOL}, - {10, 30, SPECIES_WAILMER}, - {25, 30, SPECIES_WAILMER}, - {30, 35, SPECIES_WAILMER}, - {20, 25, SPECIES_WAILMER}, - {35, 40, SPECIES_WAILMER}, - {40, 45, SPECIES_WAILMER}, -}; -const struct WildPokemonInfo ShoalCave_LowTideEntranceRoom_FishingMonsInfo = {10, ShoalCave_LowTideEntranceRoom_FishingMons}; - -const struct WildPokemon ShoalCave_LowTideInnerRoom_LandMons [] = -{ - {26, 26, SPECIES_ZUBAT}, - {26, 26, SPECIES_SPHEAL}, - {28, 28, SPECIES_ZUBAT}, - {28, 28, SPECIES_SPHEAL}, - {30, 30, SPECIES_ZUBAT}, - {30, 30, SPECIES_SPHEAL}, - {32, 32, SPECIES_ZUBAT}, - {32, 32, SPECIES_SPHEAL}, - {32, 32, SPECIES_GOLBAT}, - {32, 32, SPECIES_SPHEAL}, - {32, 32, SPECIES_GOLBAT}, - {32, 32, SPECIES_SPHEAL}, -}; -const struct WildPokemonInfo ShoalCave_LowTideInnerRoom_LandMonsInfo = {10, ShoalCave_LowTideInnerRoom_LandMons}; - -const struct WildPokemon ShoalCave_LowTideInnerRoom_WaterMons [] = -{ - {5, 35, SPECIES_TENTACOOL}, - {5, 35, SPECIES_ZUBAT}, - {25, 30, SPECIES_SPHEAL}, - {25, 30, SPECIES_SPHEAL}, - {25, 35, SPECIES_SPHEAL}, -}; -const struct WildPokemonInfo ShoalCave_LowTideInnerRoom_WaterMonsInfo = {4, ShoalCave_LowTideInnerRoom_WaterMons}; - -const struct WildPokemon ShoalCave_LowTideInnerRoom_FishingMons [] = -{ - {5, 10, SPECIES_MAGIKARP}, - {5, 10, SPECIES_TENTACOOL}, - {10, 30, SPECIES_MAGIKARP}, - {10, 30, SPECIES_TENTACOOL}, - {10, 30, SPECIES_WAILMER}, - {25, 30, SPECIES_WAILMER}, - {30, 35, SPECIES_WAILMER}, - {20, 25, SPECIES_WAILMER}, - {35, 40, SPECIES_WAILMER}, - {40, 45, SPECIES_WAILMER}, -}; -const struct WildPokemonInfo ShoalCave_LowTideInnerRoom_FishingMonsInfo = {10, ShoalCave_LowTideInnerRoom_FishingMons}; - -const struct WildPokemon ShoalCave_LowTideStairsRoom_LandMons [] = -{ - {26, 26, SPECIES_ZUBAT}, - {26, 26, SPECIES_SPHEAL}, - {28, 28, SPECIES_ZUBAT}, - {28, 28, SPECIES_SPHEAL}, - {30, 30, SPECIES_ZUBAT}, - {30, 30, SPECIES_SPHEAL}, - {32, 32, SPECIES_ZUBAT}, - {32, 32, SPECIES_SPHEAL}, - {32, 32, SPECIES_GOLBAT}, - {32, 32, SPECIES_SPHEAL}, - {32, 32, SPECIES_GOLBAT}, - {32, 32, SPECIES_SPHEAL}, -}; -const struct WildPokemonInfo ShoalCave_LowTideStairsRoom_LandMonsInfo = {10, ShoalCave_LowTideStairsRoom_LandMons}; - -const struct WildPokemon ShoalCave_LowTideLowerRoom_LandMons [] = -{ - {26, 26, SPECIES_ZUBAT}, - {26, 26, SPECIES_SPHEAL}, - {28, 28, SPECIES_ZUBAT}, - {28, 28, SPECIES_SPHEAL}, - {30, 30, SPECIES_ZUBAT}, - {30, 30, SPECIES_SPHEAL}, - {32, 32, SPECIES_ZUBAT}, - {32, 32, SPECIES_SPHEAL}, - {32, 32, SPECIES_GOLBAT}, - {32, 32, SPECIES_SPHEAL}, - {32, 32, SPECIES_GOLBAT}, - {32, 32, SPECIES_SPHEAL}, -}; -const struct WildPokemonInfo ShoalCave_LowTideLowerRoom_LandMonsInfo = {10, ShoalCave_LowTideLowerRoom_LandMons}; - -const struct WildPokemon ShoalCave_LowTideIceRoom_LandMons [] = -{ - {26, 26, SPECIES_ZUBAT}, - {26, 26, SPECIES_SPHEAL}, - {28, 28, SPECIES_ZUBAT}, - {28, 28, SPECIES_SPHEAL}, - {30, 30, SPECIES_ZUBAT}, - {30, 30, SPECIES_SPHEAL}, - {26, 26, SPECIES_SNORUNT}, - {32, 32, SPECIES_SPHEAL}, - {30, 30, SPECIES_GOLBAT}, - {28, 28, SPECIES_SNORUNT}, - {32, 32, SPECIES_GOLBAT}, - {30, 30, SPECIES_SNORUNT}, -}; -const struct WildPokemonInfo ShoalCave_LowTideIceRoom_LandMonsInfo = {10, ShoalCave_LowTideIceRoom_LandMons}; - -const struct WildPokemon NewMauville_Entrance_LandMons [] = -{ - {24, 24, SPECIES_VOLTORB}, - {24, 24, SPECIES_MAGNEMITE}, - {25, 25, SPECIES_VOLTORB}, - {25, 25, SPECIES_MAGNEMITE}, - {23, 23, SPECIES_VOLTORB}, - {23, 23, SPECIES_MAGNEMITE}, - {26, 26, SPECIES_VOLTORB}, - {26, 26, SPECIES_MAGNEMITE}, - {22, 22, SPECIES_VOLTORB}, - {22, 22, SPECIES_MAGNEMITE}, - {22, 22, SPECIES_VOLTORB}, - {22, 22, SPECIES_MAGNEMITE}, -}; -const struct WildPokemonInfo NewMauville_Entrance_LandMonsInfo = {10, NewMauville_Entrance_LandMons}; - -const struct WildPokemon NewMauville_Inside_LandMons [] = -{ - {24, 24, SPECIES_VOLTORB}, - {24, 24, SPECIES_MAGNEMITE}, - {25, 25, SPECIES_VOLTORB}, - {25, 25, SPECIES_MAGNEMITE}, - {23, 23, SPECIES_VOLTORB}, - {23, 23, SPECIES_MAGNEMITE}, - {26, 26, SPECIES_VOLTORB}, - {26, 26, SPECIES_MAGNEMITE}, - {22, 22, SPECIES_VOLTORB}, - {22, 22, SPECIES_MAGNEMITE}, - {26, 26, SPECIES_ELECTRODE}, - {26, 26, SPECIES_MAGNETON}, -}; -const struct WildPokemonInfo NewMauville_Inside_LandMonsInfo = {10, NewMauville_Inside_LandMons}; - -const struct WildPokemon AbandonedShip_Rooms_B1F_WaterMons [] = -{ - {5, 35, SPECIES_TENTACOOL}, - {5, 35, SPECIES_TENTACOOL}, - {5, 35, SPECIES_TENTACOOL}, - {5, 35, SPECIES_TENTACOOL}, - {30, 35, SPECIES_TENTACRUEL}, -}; -const struct WildPokemonInfo AbandonedShip_Rooms_B1F_WaterMonsInfo = {4, AbandonedShip_Rooms_B1F_WaterMons}; - -const struct WildPokemon AbandonedShip_Rooms_B1F_FishingMons [] = -{ - {5, 10, SPECIES_MAGIKARP}, - {5, 10, SPECIES_TENTACOOL}, - {10, 30, SPECIES_MAGIKARP}, - {10, 30, SPECIES_TENTACOOL}, - {10, 30, SPECIES_TENTACOOL}, - {25, 30, SPECIES_TENTACOOL}, - {30, 35, SPECIES_TENTACOOL}, - {30, 35, SPECIES_TENTACRUEL}, - {25, 30, SPECIES_TENTACRUEL}, - {20, 25, SPECIES_TENTACRUEL}, -}; -const struct WildPokemonInfo AbandonedShip_Rooms_B1F_FishingMonsInfo = {20, AbandonedShip_Rooms_B1F_FishingMons}; - -const struct WildPokemon AbandonedShip_HiddenFloorCorridors_WaterMons [] = -{ - {5, 35, SPECIES_TENTACOOL}, - {5, 35, SPECIES_TENTACOOL}, - {5, 35, SPECIES_TENTACOOL}, - {5, 35, SPECIES_TENTACOOL}, - {30, 35, SPECIES_TENTACRUEL}, -}; -const struct WildPokemonInfo AbandonedShip_HiddenFloorCorridors_WaterMonsInfo = {4, AbandonedShip_HiddenFloorCorridors_WaterMons}; - -const struct WildPokemon AbandonedShip_HiddenFloorCorridors_FishingMons [] = -{ - {5, 10, SPECIES_MAGIKARP}, - {5, 10, SPECIES_TENTACOOL}, - {10, 30, SPECIES_MAGIKARP}, - {10, 30, SPECIES_TENTACOOL}, - {10, 30, SPECIES_TENTACOOL}, - {25, 30, SPECIES_TENTACOOL}, - {30, 35, SPECIES_TENTACOOL}, - {30, 35, SPECIES_TENTACRUEL}, - {25, 30, SPECIES_TENTACRUEL}, - {20, 25, SPECIES_TENTACRUEL}, -}; -const struct WildPokemonInfo AbandonedShip_HiddenFloorCorridors_FishingMonsInfo = {20, AbandonedShip_HiddenFloorCorridors_FishingMons}; - -const struct WildPokemon SkyPillar_1F_LandMons [] = -{ -#ifdef SAPPHIRE - {48, 48, SPECIES_SABLEYE}, -#else - {48, 48, SPECIES_MAWILE}, -#endif - {48, 48, SPECIES_GOLBAT}, - {50, 50, SPECIES_GOLBAT}, -#ifdef SAPPHIRE - {50, 50, SPECIES_SABLEYE}, -#else - {50, 50, SPECIES_MAWILE}, -#endif - {48, 48, SPECIES_CLAYDOL}, -#ifdef SAPPHIRE - {48, 48, SPECIES_BANETTE}, - {50, 50, SPECIES_BANETTE}, -#else - {48, 48, SPECIES_DUSCLOPS}, - {50, 50, SPECIES_DUSCLOPS}, -#endif - {49, 49, SPECIES_CLAYDOL}, - {47, 47, SPECIES_CLAYDOL}, - {50, 50, SPECIES_CLAYDOL}, - {47, 47, SPECIES_CLAYDOL}, - {50, 50, SPECIES_CLAYDOL}, -}; -const struct WildPokemonInfo SkyPillar_1F_LandMonsInfo = {10, SkyPillar_1F_LandMons}; - -const struct WildPokemon SkyPillar_3F_LandMons [] = -{ -#ifdef SAPPHIRE - {51, 51, SPECIES_SABLEYE}, -#else - {51, 51, SPECIES_MAWILE}, -#endif - {51, 51, SPECIES_GOLBAT}, - {53, 53, SPECIES_GOLBAT}, -#ifdef SAPPHIRE - {53, 53, SPECIES_SABLEYE}, -#else - {53, 53, SPECIES_MAWILE}, -#endif - {51, 51, SPECIES_CLAYDOL}, -#ifdef SAPPHIRE - {51, 51, SPECIES_BANETTE}, - {53, 53, SPECIES_BANETTE}, -#else - {51, 51, SPECIES_DUSCLOPS}, - {53, 53, SPECIES_DUSCLOPS}, -#endif - {52, 52, SPECIES_CLAYDOL}, - {50, 50, SPECIES_CLAYDOL}, - {53, 53, SPECIES_CLAYDOL}, - {50, 50, SPECIES_CLAYDOL}, - {53, 53, SPECIES_CLAYDOL}, -}; -const struct WildPokemonInfo SkyPillar_3F_LandMonsInfo = {10, SkyPillar_3F_LandMons}; - -const struct WildPokemon SkyPillar_5F_LandMons [] = -{ -#ifdef SAPPHIRE - {54, 54, SPECIES_SABLEYE}, -#else - {54, 54, SPECIES_MAWILE}, -#endif - {54, 54, SPECIES_GOLBAT}, - {56, 56, SPECIES_GOLBAT}, -#ifdef SAPPHIRE - {56, 56, SPECIES_SABLEYE}, -#else - {56, 56, SPECIES_MAWILE}, -#endif - {54, 54, SPECIES_CLAYDOL}, -#ifdef SAPPHIRE - {54, 54, SPECIES_BANETTE}, - {56, 56, SPECIES_BANETTE}, -#else - {54, 54, SPECIES_DUSCLOPS}, - {56, 56, SPECIES_DUSCLOPS}, -#endif - {55, 55, SPECIES_CLAYDOL}, - {56, 56, SPECIES_CLAYDOL}, - {57, 57, SPECIES_ALTARIA}, - {54, 54, SPECIES_ALTARIA}, - {60, 60, SPECIES_ALTARIA}, -}; -const struct WildPokemonInfo SkyPillar_5F_LandMonsInfo = {10, SkyPillar_5F_LandMons}; - -const struct WildPokemon Route101_LandMons [] = -{ - {2, 2, SPECIES_WURMPLE}, - {2, 2, SPECIES_ZIGZAGOON}, - {2, 2, SPECIES_WURMPLE}, - {3, 3, SPECIES_WURMPLE}, - {3, 3, SPECIES_ZIGZAGOON}, - {3, 3, SPECIES_ZIGZAGOON}, - {3, 3, SPECIES_WURMPLE}, - {3, 3, SPECIES_ZIGZAGOON}, - {2, 2, SPECIES_POOCHYENA}, - {2, 2, SPECIES_POOCHYENA}, - {3, 3, SPECIES_POOCHYENA}, - {3, 3, SPECIES_POOCHYENA}, -}; -const struct WildPokemonInfo Route101_LandMonsInfo = {20, Route101_LandMons}; - -const struct WildPokemon Route102_LandMons [] = -{ - {3, 3, SPECIES_ZIGZAGOON}, - {3, 3, SPECIES_WURMPLE}, - {4, 4, SPECIES_ZIGZAGOON}, - {4, 4, SPECIES_WURMPLE}, -#ifdef SAPPHIRE - {3, 3, SPECIES_LOTAD}, - {4, 4, SPECIES_LOTAD}, -#else - {3, 3, SPECIES_SEEDOT}, - {4, 4, SPECIES_SEEDOT}, -#endif - {3, 3, SPECIES_POOCHYENA}, - {3, 3, SPECIES_POOCHYENA}, - {4, 4, SPECIES_POOCHYENA}, - {4, 4, SPECIES_RALTS}, - {4, 4, SPECIES_POOCHYENA}, - {3, 3, SPECIES_SURSKIT}, -}; -const struct WildPokemonInfo Route102_LandMonsInfo = {20, Route102_LandMons}; - -const struct WildPokemon Route102_WaterMons [] = -{ - {20, 30, SPECIES_MARILL}, - {10, 20, SPECIES_MARILL}, - {30, 35, SPECIES_MARILL}, - {5, 10, SPECIES_MARILL}, - {20, 30, SPECIES_SURSKIT}, -}; -const struct WildPokemonInfo Route102_WaterMonsInfo = {4, Route102_WaterMons}; - -const struct WildPokemon Route102_FishingMons [] = -{ - {5, 10, SPECIES_MAGIKARP}, - {5, 10, SPECIES_GOLDEEN}, - {10, 30, SPECIES_MAGIKARP}, - {10, 30, SPECIES_GOLDEEN}, - {10, 30, SPECIES_CORPHISH}, - {25, 30, SPECIES_CORPHISH}, - {30, 35, SPECIES_CORPHISH}, - {20, 25, SPECIES_CORPHISH}, - {35, 40, SPECIES_CORPHISH}, - {40, 45, SPECIES_CORPHISH}, -}; -const struct WildPokemonInfo Route102_FishingMonsInfo = {30, Route102_FishingMons}; - -const struct WildPokemon Route103_LandMons [] = -{ - {2, 2, SPECIES_ZIGZAGOON}, - {3, 3, SPECIES_ZIGZAGOON}, - {3, 3, SPECIES_ZIGZAGOON}, - {4, 4, SPECIES_ZIGZAGOON}, - {2, 2, SPECIES_POOCHYENA}, - {3, 3, SPECIES_POOCHYENA}, - {3, 3, SPECIES_POOCHYENA}, - {4, 4, SPECIES_POOCHYENA}, - {3, 3, SPECIES_WINGULL}, - {3, 3, SPECIES_WINGULL}, - {2, 2, SPECIES_WINGULL}, - {4, 4, SPECIES_WINGULL}, -}; -const struct WildPokemonInfo Route103_LandMonsInfo = {20, Route103_LandMons}; - -const struct WildPokemon Route103_WaterMons [] = -{ - {5, 35, SPECIES_TENTACOOL}, - {10, 30, SPECIES_WINGULL}, - {15, 25, SPECIES_WINGULL}, - {25, 30, SPECIES_PELIPPER}, - {25, 30, SPECIES_PELIPPER}, -}; -const struct WildPokemonInfo Route103_WaterMonsInfo = {4, Route103_WaterMons}; - -const struct WildPokemon Route103_FishingMons [] = -{ - {5, 10, SPECIES_MAGIKARP}, - {5, 10, SPECIES_TENTACOOL}, - {10, 30, SPECIES_MAGIKARP}, - {10, 30, SPECIES_TENTACOOL}, - {10, 30, SPECIES_WAILMER}, - {30, 35, SPECIES_SHARPEDO}, - {30, 35, SPECIES_WAILMER}, - {25, 30, SPECIES_WAILMER}, - {35, 40, SPECIES_WAILMER}, - {40, 45, SPECIES_WAILMER}, -}; -const struct WildPokemonInfo Route103_FishingMonsInfo = {30, Route103_FishingMons}; - -const struct WildPokemon Route104_LandMons [] = -{ - {4, 4, SPECIES_ZIGZAGOON}, - {4, 4, SPECIES_WURMPLE}, - {5, 5, SPECIES_ZIGZAGOON}, - {5, 5, SPECIES_WURMPLE}, - {4, 4, SPECIES_ZIGZAGOON}, - {5, 5, SPECIES_ZIGZAGOON}, - {4, 4, SPECIES_TAILLOW}, - {5, 5, SPECIES_TAILLOW}, - {4, 4, SPECIES_WINGULL}, - {4, 4, SPECIES_WINGULL}, - {3, 3, SPECIES_WINGULL}, - {5, 5, SPECIES_WINGULL}, -}; -const struct WildPokemonInfo Route104_LandMonsInfo = {20, Route104_LandMons}; - -const struct WildPokemon Route104_WaterMons [] = -{ - {10, 30, SPECIES_WINGULL}, - {15, 25, SPECIES_WINGULL}, - {15, 25, SPECIES_WINGULL}, - {25, 30, SPECIES_PELIPPER}, - {25, 30, SPECIES_PELIPPER}, -}; -const struct WildPokemonInfo Route104_WaterMonsInfo = {4, Route104_WaterMons}; - -const struct WildPokemon Route104_FishingMons [] = -{ - {5, 10, SPECIES_MAGIKARP}, - {5, 10, SPECIES_MAGIKARP}, - {10, 30, SPECIES_MAGIKARP}, - {10, 30, SPECIES_MAGIKARP}, - {10, 30, SPECIES_MAGIKARP}, - {25, 30, SPECIES_MAGIKARP}, - {30, 35, SPECIES_MAGIKARP}, - {20, 25, SPECIES_MAGIKARP}, - {35, 40, SPECIES_MAGIKARP}, - {40, 45, SPECIES_MAGIKARP}, -}; -const struct WildPokemonInfo Route104_FishingMonsInfo = {30, Route104_FishingMons}; - -const struct WildPokemon Route105_WaterMons [] = -{ - {5, 35, SPECIES_TENTACOOL}, - {10, 30, SPECIES_WINGULL}, - {15, 25, SPECIES_WINGULL}, - {25, 30, SPECIES_PELIPPER}, - {25, 30, SPECIES_PELIPPER}, -}; -const struct WildPokemonInfo Route105_WaterMonsInfo = {4, Route105_WaterMons}; - -const struct WildPokemon Route105_FishingMons [] = -{ - {5, 10, SPECIES_MAGIKARP}, - {5, 10, SPECIES_TENTACOOL}, - {10, 30, SPECIES_MAGIKARP}, - {10, 30, SPECIES_TENTACOOL}, - {10, 30, SPECIES_WAILMER}, - {25, 30, SPECIES_WAILMER}, - {30, 35, SPECIES_WAILMER}, - {20, 25, SPECIES_WAILMER}, - {35, 40, SPECIES_WAILMER}, - {40, 45, SPECIES_WAILMER}, -}; -const struct WildPokemonInfo Route105_FishingMonsInfo = {30, Route105_FishingMons}; - -const struct WildPokemon Route106_WaterMons [] = -{ - {5, 35, SPECIES_TENTACOOL}, - {10, 30, SPECIES_WINGULL}, - {15, 25, SPECIES_WINGULL}, - {25, 30, SPECIES_PELIPPER}, - {25, 30, SPECIES_PELIPPER}, -}; -const struct WildPokemonInfo Route106_WaterMonsInfo = {4, Route106_WaterMons}; - -const struct WildPokemon Route106_FishingMons [] = -{ - {5, 10, SPECIES_MAGIKARP}, - {5, 10, SPECIES_TENTACOOL}, - {10, 30, SPECIES_MAGIKARP}, - {10, 30, SPECIES_TENTACOOL}, - {10, 30, SPECIES_WAILMER}, - {25, 30, SPECIES_WAILMER}, - {30, 35, SPECIES_WAILMER}, - {20, 25, SPECIES_WAILMER}, - {35, 40, SPECIES_WAILMER}, - {40, 45, SPECIES_WAILMER}, -}; -const struct WildPokemonInfo Route106_FishingMonsInfo = {30, Route106_FishingMons}; - -const struct WildPokemon Route107_WaterMons [] = -{ - {5, 35, SPECIES_TENTACOOL}, - {10, 30, SPECIES_WINGULL}, - {15, 25, SPECIES_WINGULL}, - {25, 30, SPECIES_PELIPPER}, - {25, 30, SPECIES_PELIPPER}, -}; -const struct WildPokemonInfo Route107_WaterMonsInfo = {4, Route107_WaterMons}; - -const struct WildPokemon Route107_FishingMons [] = -{ - {5, 10, SPECIES_MAGIKARP}, - {5, 10, SPECIES_TENTACOOL}, - {10, 30, SPECIES_MAGIKARP}, - {10, 30, SPECIES_TENTACOOL}, - {10, 30, SPECIES_WAILMER}, - {25, 30, SPECIES_WAILMER}, - {30, 35, SPECIES_WAILMER}, - {20, 25, SPECIES_WAILMER}, - {35, 40, SPECIES_WAILMER}, - {40, 45, SPECIES_WAILMER}, -}; -const struct WildPokemonInfo Route107_FishingMonsInfo = {30, Route107_FishingMons}; - -const struct WildPokemon Route108_WaterMons [] = -{ - {5, 35, SPECIES_TENTACOOL}, - {10, 30, SPECIES_WINGULL}, - {15, 25, SPECIES_WINGULL}, - {25, 30, SPECIES_PELIPPER}, - {25, 30, SPECIES_PELIPPER}, -}; -const struct WildPokemonInfo Route108_WaterMonsInfo = {4, Route108_WaterMons}; - -const struct WildPokemon Route108_FishingMons [] = -{ - {5, 10, SPECIES_MAGIKARP}, - {5, 10, SPECIES_TENTACOOL}, - {10, 30, SPECIES_MAGIKARP}, - {10, 30, SPECIES_TENTACOOL}, - {10, 30, SPECIES_WAILMER}, - {25, 30, SPECIES_WAILMER}, - {30, 35, SPECIES_WAILMER}, - {20, 25, SPECIES_WAILMER}, - {35, 40, SPECIES_WAILMER}, - {40, 45, SPECIES_WAILMER}, -}; -const struct WildPokemonInfo Route108_FishingMonsInfo = {30, Route108_FishingMons}; - -const struct WildPokemon Route109_WaterMons [] = -{ - {5, 35, SPECIES_TENTACOOL}, - {10, 30, SPECIES_WINGULL}, - {15, 25, SPECIES_WINGULL}, - {25, 30, SPECIES_PELIPPER}, - {25, 30, SPECIES_PELIPPER}, -}; -const struct WildPokemonInfo Route109_WaterMonsInfo = {4, Route109_WaterMons}; - -const struct WildPokemon Route109_FishingMons [] = -{ - {5, 10, SPECIES_MAGIKARP}, - {5, 10, SPECIES_TENTACOOL}, - {10, 30, SPECIES_MAGIKARP}, - {10, 30, SPECIES_TENTACOOL}, - {10, 30, SPECIES_WAILMER}, - {25, 30, SPECIES_WAILMER}, - {30, 35, SPECIES_WAILMER}, - {20, 25, SPECIES_WAILMER}, - {35, 40, SPECIES_WAILMER}, - {40, 45, SPECIES_WAILMER}, -}; -const struct WildPokemonInfo Route109_FishingMonsInfo = {30, Route109_FishingMons}; - -const struct WildPokemon Route110_LandMons [] = -{ - {12, 12, SPECIES_ZIGZAGOON}, - {12, 12, SPECIES_ELECTRIKE}, - {12, 12, SPECIES_GULPIN}, - {13, 13, SPECIES_ELECTRIKE}, -#ifdef SAPPHIRE - {13, 13, SPECIES_PLUSLE}, -#else - {13, 13, SPECIES_MINUN}, -#endif - {13, 13, SPECIES_ODDISH}, -#ifdef SAPPHIRE - {13, 13, SPECIES_PLUSLE}, -#else - {13, 13, SPECIES_MINUN}, -#endif - {13, 13, SPECIES_GULPIN}, - {12, 12, SPECIES_WINGULL}, - {12, 12, SPECIES_WINGULL}, -#ifdef SAPPHIRE - {12, 12, SPECIES_MINUN}, - {13, 13, SPECIES_MINUN}, -#else - {12, 12, SPECIES_PLUSLE}, - {13, 13, SPECIES_PLUSLE}, -#endif -}; -const struct WildPokemonInfo Route110_LandMonsInfo = {20, Route110_LandMons}; - -const struct WildPokemon Route110_WaterMons [] = -{ - {5, 35, SPECIES_TENTACOOL}, - {10, 30, SPECIES_WINGULL}, - {15, 25, SPECIES_WINGULL}, - {25, 30, SPECIES_PELIPPER}, - {25, 30, SPECIES_PELIPPER}, -}; -const struct WildPokemonInfo Route110_WaterMonsInfo = {4, Route110_WaterMons}; - -const struct WildPokemon Route110_FishingMons [] = -{ - {5, 10, SPECIES_MAGIKARP}, - {5, 10, SPECIES_TENTACOOL}, - {10, 30, SPECIES_MAGIKARP}, - {10, 30, SPECIES_TENTACOOL}, - {10, 30, SPECIES_WAILMER}, - {25, 30, SPECIES_WAILMER}, - {30, 35, SPECIES_WAILMER}, - {20, 25, SPECIES_WAILMER}, - {35, 40, SPECIES_WAILMER}, - {40, 45, SPECIES_WAILMER}, -}; -const struct WildPokemonInfo Route110_FishingMonsInfo = {30, Route110_FishingMons}; - -const struct WildPokemon Route111_LandMons [] = -{ - {20, 20, SPECIES_SANDSHREW}, - {20, 20, SPECIES_TRAPINCH}, - {21, 21, SPECIES_SANDSHREW}, - {21, 21, SPECIES_TRAPINCH}, - {19, 19, SPECIES_CACNEA}, - {21, 21, SPECIES_CACNEA}, - {19, 19, SPECIES_SANDSHREW}, - {19, 19, SPECIES_TRAPINCH}, - {20, 20, SPECIES_BALTOY}, - {20, 20, SPECIES_BALTOY}, - {22, 22, SPECIES_BALTOY}, - {22, 22, SPECIES_BALTOY}, -}; -const struct WildPokemonInfo Route111_LandMonsInfo = {10, Route111_LandMons}; - -const struct WildPokemon Route111_WaterMons [] = -{ - {20, 30, SPECIES_MARILL}, - {10, 20, SPECIES_MARILL}, - {30, 35, SPECIES_MARILL}, - {5, 10, SPECIES_MARILL}, - {20, 30, SPECIES_SURSKIT}, -}; -const struct WildPokemonInfo Route111_WaterMonsInfo = {4, Route111_WaterMons}; - -const struct WildPokemon Route111_RockSmashMons [] = -{ - {10, 15, SPECIES_GEODUDE}, - {5, 10, SPECIES_GEODUDE}, - {15, 20, SPECIES_GEODUDE}, - {15, 20, SPECIES_GEODUDE}, - {15, 20, SPECIES_GEODUDE}, -}; -const struct WildPokemonInfo Route111_RockSmashMonsInfo = {20, Route111_RockSmashMons}; - -const struct WildPokemon Route111_FishingMons [] = -{ - {5, 10, SPECIES_MAGIKARP}, - {5, 10, SPECIES_GOLDEEN}, - {10, 30, SPECIES_MAGIKARP}, - {10, 30, SPECIES_GOLDEEN}, - {10, 30, SPECIES_BARBOACH}, - {25, 30, SPECIES_BARBOACH}, - {30, 35, SPECIES_BARBOACH}, - {20, 25, SPECIES_BARBOACH}, - {35, 40, SPECIES_BARBOACH}, - {40, 45, SPECIES_BARBOACH}, -}; -const struct WildPokemonInfo Route111_FishingMonsInfo = {30, Route111_FishingMons}; - -const struct WildPokemon Route112_LandMons [] = -{ - {15, 15, SPECIES_NUMEL}, - {15, 15, SPECIES_NUMEL}, - {15, 15, SPECIES_MACHOP}, - {14, 14, SPECIES_NUMEL}, - {14, 14, SPECIES_NUMEL}, - {14, 14, SPECIES_MACHOP}, - {16, 16, SPECIES_NUMEL}, - {16, 16, SPECIES_MACHOP}, - {16, 16, SPECIES_NUMEL}, - {16, 16, SPECIES_NUMEL}, - {16, 16, SPECIES_NUMEL}, - {16, 16, SPECIES_NUMEL}, -}; -const struct WildPokemonInfo Route112_LandMonsInfo = {20, Route112_LandMons}; - -const struct WildPokemon Route113_LandMons [] = -{ - {15, 15, SPECIES_SPINDA}, - {15, 15, SPECIES_SPINDA}, - {15, 15, SPECIES_SANDSHREW}, - {14, 14, SPECIES_SPINDA}, - {14, 14, SPECIES_SPINDA}, - {14, 14, SPECIES_SANDSHREW}, - {16, 16, SPECIES_SPINDA}, - {16, 16, SPECIES_SANDSHREW}, - {16, 16, SPECIES_SPINDA}, - {16, 16, SPECIES_SKARMORY}, - {16, 16, SPECIES_SPINDA}, - {16, 16, SPECIES_SKARMORY}, -}; -const struct WildPokemonInfo Route113_LandMonsInfo = {20, Route113_LandMons}; - -const struct WildPokemon Route114_LandMons [] = -{ - {16, 16, SPECIES_SWABLU}, -#ifdef SAPPHIRE - {16, 16, SPECIES_LOTAD}, -#else - {16, 16, SPECIES_SEEDOT}, -#endif - {17, 17, SPECIES_SWABLU}, - {15, 15, SPECIES_SWABLU}, -#ifdef SAPPHIRE - {15, 15, SPECIES_LOTAD}, - {16, 16, SPECIES_SEVIPER}, - {16, 16, SPECIES_LOMBRE}, - {18, 18, SPECIES_LOMBRE}, - {17, 17, SPECIES_SEVIPER}, - {15, 15, SPECIES_SEVIPER}, - {17, 17, SPECIES_SEVIPER}, -#else - {15, 15, SPECIES_SEEDOT}, - {16, 16, SPECIES_ZANGOOSE}, - {16, 16, SPECIES_NUZLEAF}, - {18, 18, SPECIES_NUZLEAF}, - {17, 17, SPECIES_ZANGOOSE}, - {15, 15, SPECIES_ZANGOOSE}, - {17, 17, SPECIES_ZANGOOSE}, -#endif - {15, 15, SPECIES_SURSKIT}, -}; -const struct WildPokemonInfo Route114_LandMonsInfo = {20, Route114_LandMons}; - -const struct WildPokemon Route114_WaterMons [] = -{ - {20, 30, SPECIES_MARILL}, - {10, 20, SPECIES_MARILL}, - {30, 35, SPECIES_MARILL}, - {5, 10, SPECIES_MARILL}, - {20, 30, SPECIES_SURSKIT}, -}; -const struct WildPokemonInfo Route114_WaterMonsInfo = {4, Route114_WaterMons}; - -const struct WildPokemon Route114_RockSmashMons [] = -{ - {10, 15, SPECIES_GEODUDE}, - {5, 10, SPECIES_GEODUDE}, - {15, 20, SPECIES_GEODUDE}, - {15, 20, SPECIES_GEODUDE}, - {15, 20, SPECIES_GEODUDE}, -}; -const struct WildPokemonInfo Route114_RockSmashMonsInfo = {20, Route114_RockSmashMons}; - -const struct WildPokemon Route114_FishingMons [] = -{ - {5, 10, SPECIES_MAGIKARP}, - {5, 10, SPECIES_GOLDEEN}, - {10, 30, SPECIES_MAGIKARP}, - {10, 30, SPECIES_GOLDEEN}, - {10, 30, SPECIES_BARBOACH}, - {25, 30, SPECIES_BARBOACH}, - {30, 35, SPECIES_BARBOACH}, - {20, 25, SPECIES_BARBOACH}, - {35, 40, SPECIES_BARBOACH}, - {40, 45, SPECIES_BARBOACH}, -}; -const struct WildPokemonInfo Route114_FishingMonsInfo = {30, Route114_FishingMons}; - -const struct WildPokemon Route115_LandMons [] = -{ - {23, 23, SPECIES_SWABLU}, - {23, 23, SPECIES_TAILLOW}, - {25, 25, SPECIES_SWABLU}, - {24, 24, SPECIES_TAILLOW}, - {25, 25, SPECIES_TAILLOW}, - {25, 25, SPECIES_SWELLOW}, - {24, 24, SPECIES_JIGGLYPUFF}, - {25, 25, SPECIES_JIGGLYPUFF}, - {24, 24, SPECIES_WINGULL}, - {24, 24, SPECIES_WINGULL}, - {26, 26, SPECIES_WINGULL}, - {25, 25, SPECIES_WINGULL}, -}; -const struct WildPokemonInfo Route115_LandMonsInfo = {20, Route115_LandMons}; - -const struct WildPokemon Route115_WaterMons [] = -{ - {5, 35, SPECIES_TENTACOOL}, - {10, 30, SPECIES_WINGULL}, - {15, 25, SPECIES_WINGULL}, - {25, 30, SPECIES_PELIPPER}, - {25, 30, SPECIES_PELIPPER}, -}; -const struct WildPokemonInfo Route115_WaterMonsInfo = {4, Route115_WaterMons}; - -const struct WildPokemon Route115_FishingMons [] = -{ - {5, 10, SPECIES_MAGIKARP}, - {5, 10, SPECIES_TENTACOOL}, - {10, 30, SPECIES_MAGIKARP}, - {10, 30, SPECIES_TENTACOOL}, - {10, 30, SPECIES_WAILMER}, - {25, 30, SPECIES_WAILMER}, - {30, 35, SPECIES_WAILMER}, - {20, 25, SPECIES_WAILMER}, - {35, 40, SPECIES_WAILMER}, - {40, 45, SPECIES_WAILMER}, -}; -const struct WildPokemonInfo Route115_FishingMonsInfo = {30, Route115_FishingMons}; - -const struct WildPokemon Route116_LandMons [] = -{ - {6, 6, SPECIES_ZIGZAGOON}, - {6, 6, SPECIES_WHISMUR}, - {6, 6, SPECIES_NINCADA}, - {7, 7, SPECIES_WHISMUR}, - {7, 7, SPECIES_NINCADA}, - {6, 6, SPECIES_TAILLOW}, - {7, 7, SPECIES_TAILLOW}, - {8, 8, SPECIES_TAILLOW}, - {7, 7, SPECIES_ZIGZAGOON}, - {8, 8, SPECIES_ZIGZAGOON}, - {7, 7, SPECIES_SKITTY}, - {8, 8, SPECIES_SKITTY}, -}; -const struct WildPokemonInfo Route116_LandMonsInfo = {20, Route116_LandMons}; - -const struct WildPokemon Route117_LandMons [] = -{ - {13, 13, SPECIES_ZIGZAGOON}, - {13, 13, SPECIES_ROSELIA}, - {14, 14, SPECIES_ZIGZAGOON}, - {14, 14, SPECIES_ROSELIA}, - {13, 13, SPECIES_MARILL}, - {13, 13, SPECIES_ODDISH}, -#ifdef SAPPHIRE - {13, 13, SPECIES_VOLBEAT}, - {13, 13, SPECIES_VOLBEAT}, - {14, 14, SPECIES_VOLBEAT}, - {14, 14, SPECIES_VOLBEAT}, - {13, 13, SPECIES_ILLUMISE}, -#else - {13, 13, SPECIES_ILLUMISE}, - {13, 13, SPECIES_ILLUMISE}, - {14, 14, SPECIES_ILLUMISE}, - {14, 14, SPECIES_ILLUMISE}, - {13, 13, SPECIES_VOLBEAT}, -#endif - {13, 13, SPECIES_SURSKIT}, -}; -const struct WildPokemonInfo Route117_LandMonsInfo = {20, Route117_LandMons}; - -const struct WildPokemon Route117_WaterMons [] = -{ - {20, 30, SPECIES_MARILL}, - {10, 20, SPECIES_MARILL}, - {30, 35, SPECIES_MARILL}, - {5, 10, SPECIES_MARILL}, - {20, 30, SPECIES_SURSKIT}, -}; -const struct WildPokemonInfo Route117_WaterMonsInfo = {4, Route117_WaterMons}; - -const struct WildPokemon Route117_FishingMons [] = -{ - {5, 10, SPECIES_MAGIKARP}, - {5, 10, SPECIES_GOLDEEN}, - {10, 30, SPECIES_MAGIKARP}, - {10, 30, SPECIES_GOLDEEN}, - {10, 30, SPECIES_CORPHISH}, - {25, 30, SPECIES_CORPHISH}, - {30, 35, SPECIES_CORPHISH}, - {20, 25, SPECIES_CORPHISH}, - {35, 40, SPECIES_CORPHISH}, - {40, 45, SPECIES_CORPHISH}, -}; -const struct WildPokemonInfo Route117_FishingMonsInfo = {30, Route117_FishingMons}; - -const struct WildPokemon Route118_LandMons [] = -{ - {24, 24, SPECIES_ZIGZAGOON}, - {24, 24, SPECIES_ELECTRIKE}, - {26, 26, SPECIES_ZIGZAGOON}, - {26, 26, SPECIES_ELECTRIKE}, - {26, 26, SPECIES_LINOONE}, - {26, 26, SPECIES_MANECTRIC}, - {25, 25, SPECIES_WINGULL}, - {25, 25, SPECIES_WINGULL}, - {26, 26, SPECIES_WINGULL}, - {26, 26, SPECIES_WINGULL}, - {27, 27, SPECIES_WINGULL}, - {25, 25, SPECIES_KECLEON}, -}; -const struct WildPokemonInfo Route118_LandMonsInfo = {20, Route118_LandMons}; - -const struct WildPokemon Route118_WaterMons [] = -{ - {5, 35, SPECIES_TENTACOOL}, - {10, 30, SPECIES_WINGULL}, - {15, 25, SPECIES_WINGULL}, - {25, 30, SPECIES_PELIPPER}, - {25, 30, SPECIES_PELIPPER}, -}; -const struct WildPokemonInfo Route118_WaterMonsInfo = {4, Route118_WaterMons}; - -const struct WildPokemon Route118_FishingMons [] = -{ - {5, 10, SPECIES_MAGIKARP}, - {5, 10, SPECIES_TENTACOOL}, - {10, 30, SPECIES_MAGIKARP}, - {10, 30, SPECIES_TENTACOOL}, - {10, 30, SPECIES_CARVANHA}, - {30, 35, SPECIES_SHARPEDO}, - {30, 35, SPECIES_CARVANHA}, - {20, 25, SPECIES_CARVANHA}, - {35, 40, SPECIES_CARVANHA}, - {40, 45, SPECIES_CARVANHA}, -}; -const struct WildPokemonInfo Route118_FishingMonsInfo = {30, Route118_FishingMons}; - -const struct WildPokemon Route119_LandMons [] = -{ - {25, 25, SPECIES_ZIGZAGOON}, - {25, 25, SPECIES_LINOONE}, - {27, 27, SPECIES_ZIGZAGOON}, - {25, 25, SPECIES_ODDISH}, - {27, 27, SPECIES_LINOONE}, - {26, 26, SPECIES_ODDISH}, - {27, 27, SPECIES_ODDISH}, - {24, 24, SPECIES_ODDISH}, - {25, 25, SPECIES_TROPIUS}, - {26, 26, SPECIES_TROPIUS}, - {27, 27, SPECIES_TROPIUS}, - {25, 25, SPECIES_KECLEON}, -}; -const struct WildPokemonInfo Route119_LandMonsInfo = {15, Route119_LandMons}; - -const struct WildPokemon Route119_WaterMons [] = -{ - {5, 35, SPECIES_TENTACOOL}, - {10, 30, SPECIES_WINGULL}, - {15, 25, SPECIES_WINGULL}, - {25, 30, SPECIES_PELIPPER}, - {25, 30, SPECIES_PELIPPER}, -}; -const struct WildPokemonInfo Route119_WaterMonsInfo = {4, Route119_WaterMons}; - -const struct WildPokemon Route119_FishingMons [] = -{ - {5, 10, SPECIES_MAGIKARP}, - {5, 10, SPECIES_TENTACOOL}, - {10, 30, SPECIES_MAGIKARP}, - {10, 30, SPECIES_TENTACOOL}, - {10, 30, SPECIES_CARVANHA}, - {25, 30, SPECIES_CARVANHA}, - {30, 35, SPECIES_CARVANHA}, - {20, 25, SPECIES_CARVANHA}, - {35, 40, SPECIES_CARVANHA}, - {40, 45, SPECIES_CARVANHA}, -}; -const struct WildPokemonInfo Route119_FishingMonsInfo = {30, Route119_FishingMons}; - -const struct WildPokemon Route120_LandMons [] = -{ - {25, 25, SPECIES_ZIGZAGOON}, - {25, 25, SPECIES_LINOONE}, - {27, 27, SPECIES_LINOONE}, - {25, 25, SPECIES_ODDISH}, - {25, 25, SPECIES_MARILL}, - {26, 26, SPECIES_ODDISH}, - {27, 27, SPECIES_ODDISH}, - {27, 27, SPECIES_MARILL}, - {25, 25, SPECIES_ABSOL}, - {27, 27, SPECIES_ABSOL}, - {25, 25, SPECIES_KECLEON}, - {25, 25, SPECIES_SURSKIT}, -}; -const struct WildPokemonInfo Route120_LandMonsInfo = {20, Route120_LandMons}; - -const struct WildPokemon Route120_WaterMons [] = -{ - {20, 30, SPECIES_MARILL}, - {10, 20, SPECIES_MARILL}, - {30, 35, SPECIES_MARILL}, - {5, 10, SPECIES_MARILL}, - {20, 30, SPECIES_SURSKIT}, -}; -const struct WildPokemonInfo Route120_WaterMonsInfo = {4, Route120_WaterMons}; - -const struct WildPokemon Route120_FishingMons [] = -{ - {5, 10, SPECIES_MAGIKARP}, - {5, 10, SPECIES_GOLDEEN}, - {10, 30, SPECIES_MAGIKARP}, - {10, 30, SPECIES_GOLDEEN}, - {10, 30, SPECIES_BARBOACH}, - {25, 30, SPECIES_BARBOACH}, - {30, 35, SPECIES_BARBOACH}, - {20, 25, SPECIES_BARBOACH}, - {35, 40, SPECIES_BARBOACH}, - {40, 45, SPECIES_BARBOACH}, -}; -const struct WildPokemonInfo Route120_FishingMonsInfo = {30, Route120_FishingMons}; - -const struct WildPokemon Route121_LandMons [] = -{ - {26, 26, SPECIES_ZIGZAGOON}, -#ifdef SAPPHIRE - {26, 26, SPECIES_SHUPPET}, -#else - {26, 26, SPECIES_DUSKULL}, -#endif - {26, 26, SPECIES_LINOONE}, -#ifdef SAPPHIRE - {28, 28, SPECIES_SHUPPET}, -#else - {28, 28, SPECIES_DUSKULL}, -#endif - {28, 28, SPECIES_LINOONE}, - {26, 26, SPECIES_ODDISH}, - {28, 28, SPECIES_ODDISH}, - {28, 28, SPECIES_GLOOM}, - {26, 26, SPECIES_WINGULL}, - {27, 27, SPECIES_WINGULL}, - {28, 28, SPECIES_WINGULL}, - {25, 25, SPECIES_KECLEON}, -}; -const struct WildPokemonInfo Route121_LandMonsInfo = {20, Route121_LandMons}; - -const struct WildPokemon Route121_WaterMons [] = -{ - {5, 35, SPECIES_TENTACOOL}, - {10, 30, SPECIES_WINGULL}, - {15, 25, SPECIES_WINGULL}, - {25, 30, SPECIES_PELIPPER}, - {25, 30, SPECIES_PELIPPER}, -}; -const struct WildPokemonInfo Route121_WaterMonsInfo = {4, Route121_WaterMons}; - -const struct WildPokemon Route121_FishingMons [] = -{ - {5, 10, SPECIES_MAGIKARP}, - {5, 10, SPECIES_TENTACOOL}, - {10, 30, SPECIES_MAGIKARP}, - {10, 30, SPECIES_TENTACOOL}, - {10, 30, SPECIES_WAILMER}, - {25, 30, SPECIES_WAILMER}, - {30, 35, SPECIES_WAILMER}, - {20, 25, SPECIES_WAILMER}, - {35, 40, SPECIES_WAILMER}, - {40, 45, SPECIES_WAILMER}, -}; -const struct WildPokemonInfo Route121_FishingMonsInfo = {30, Route121_FishingMons}; - -const struct WildPokemon Route122_WaterMons [] = -{ - {5, 35, SPECIES_TENTACOOL}, - {10, 30, SPECIES_WINGULL}, - {15, 25, SPECIES_WINGULL}, - {25, 30, SPECIES_PELIPPER}, - {25, 30, SPECIES_PELIPPER}, -}; -const struct WildPokemonInfo Route122_WaterMonsInfo = {4, Route122_WaterMons}; - -const struct WildPokemon Route122_FishingMons [] = -{ - {5, 10, SPECIES_MAGIKARP}, - {5, 10, SPECIES_TENTACOOL}, - {10, 30, SPECIES_MAGIKARP}, - {10, 30, SPECIES_TENTACOOL}, - {10, 30, SPECIES_WAILMER}, - {30, 35, SPECIES_SHARPEDO}, - {30, 35, SPECIES_WAILMER}, - {25, 30, SPECIES_WAILMER}, - {35, 40, SPECIES_WAILMER}, - {40, 45, SPECIES_WAILMER}, -}; -const struct WildPokemonInfo Route122_FishingMonsInfo = {30, Route122_FishingMons}; - -const struct WildPokemon Route123_LandMons [] = -{ - {26, 26, SPECIES_ZIGZAGOON}, -#ifdef SAPPHIRE - {26, 26, SPECIES_SHUPPET}, -#else - {26, 26, SPECIES_DUSKULL}, -#endif - {26, 26, SPECIES_LINOONE}, -#ifdef SAPPHIRE - {28, 28, SPECIES_SHUPPET}, -#else - {28, 28, SPECIES_DUSKULL}, -#endif - {28, 28, SPECIES_LINOONE}, - {26, 26, SPECIES_ODDISH}, - {28, 28, SPECIES_ODDISH}, - {28, 28, SPECIES_GLOOM}, - {26, 26, SPECIES_WINGULL}, - {27, 27, SPECIES_WINGULL}, - {28, 28, SPECIES_WINGULL}, - {25, 25, SPECIES_KECLEON}, -}; -const struct WildPokemonInfo Route123_LandMonsInfo = {20, Route123_LandMons}; - -const struct WildPokemon Route123_WaterMons [] = -{ - {5, 35, SPECIES_TENTACOOL}, - {10, 30, SPECIES_WINGULL}, - {15, 25, SPECIES_WINGULL}, - {25, 30, SPECIES_PELIPPER}, - {25, 30, SPECIES_PELIPPER}, -}; -const struct WildPokemonInfo Route123_WaterMonsInfo = {4, Route123_WaterMons}; - -const struct WildPokemon Route123_FishingMons [] = -{ - {5, 10, SPECIES_MAGIKARP}, - {5, 10, SPECIES_TENTACOOL}, - {10, 30, SPECIES_MAGIKARP}, - {10, 30, SPECIES_TENTACOOL}, - {10, 30, SPECIES_WAILMER}, - {25, 30, SPECIES_WAILMER}, - {30, 35, SPECIES_WAILMER}, - {20, 25, SPECIES_WAILMER}, - {35, 40, SPECIES_WAILMER}, - {40, 45, SPECIES_WAILMER}, -}; -const struct WildPokemonInfo Route123_FishingMonsInfo = {30, Route123_FishingMons}; - -const struct WildPokemon Route124_WaterMons [] = -{ - {5, 35, SPECIES_TENTACOOL}, - {10, 30, SPECIES_WINGULL}, - {15, 25, SPECIES_WINGULL}, - {25, 30, SPECIES_PELIPPER}, - {25, 30, SPECIES_PELIPPER}, -}; -const struct WildPokemonInfo Route124_WaterMonsInfo = {4, Route124_WaterMons}; - -const struct WildPokemon Route124_FishingMons [] = -{ - {5, 10, SPECIES_MAGIKARP}, - {5, 10, SPECIES_TENTACOOL}, - {10, 30, SPECIES_MAGIKARP}, - {10, 30, SPECIES_TENTACOOL}, - {10, 30, SPECIES_WAILMER}, - {30, 35, SPECIES_SHARPEDO}, - {30, 35, SPECIES_WAILMER}, - {25, 30, SPECIES_WAILMER}, - {35, 40, SPECIES_WAILMER}, - {40, 45, SPECIES_WAILMER}, -}; -const struct WildPokemonInfo Route124_FishingMonsInfo = {30, Route124_FishingMons}; - -const struct WildPokemon Route125_WaterMons [] = -{ - {5, 35, SPECIES_TENTACOOL}, - {10, 30, SPECIES_WINGULL}, - {15, 25, SPECIES_WINGULL}, - {25, 30, SPECIES_PELIPPER}, - {25, 30, SPECIES_PELIPPER}, -}; -const struct WildPokemonInfo Route125_WaterMonsInfo = {4, Route125_WaterMons}; - -const struct WildPokemon Route125_FishingMons [] = -{ - {5, 10, SPECIES_MAGIKARP}, - {5, 10, SPECIES_TENTACOOL}, - {10, 30, SPECIES_MAGIKARP}, - {10, 30, SPECIES_TENTACOOL}, - {10, 30, SPECIES_WAILMER}, - {30, 35, SPECIES_SHARPEDO}, - {30, 35, SPECIES_WAILMER}, - {25, 30, SPECIES_WAILMER}, - {35, 40, SPECIES_WAILMER}, - {40, 45, SPECIES_WAILMER}, -}; -const struct WildPokemonInfo Route125_FishingMonsInfo = {30, Route125_FishingMons}; - -const struct WildPokemon Route126_WaterMons [] = -{ - {5, 35, SPECIES_TENTACOOL}, - {10, 30, SPECIES_WINGULL}, - {15, 25, SPECIES_WINGULL}, - {25, 30, SPECIES_PELIPPER}, - {25, 30, SPECIES_PELIPPER}, -}; -const struct WildPokemonInfo Route126_WaterMonsInfo = {4, Route126_WaterMons}; - -const struct WildPokemon Route126_FishingMons [] = -{ - {5, 10, SPECIES_MAGIKARP}, - {5, 10, SPECIES_TENTACOOL}, - {10, 30, SPECIES_MAGIKARP}, - {10, 30, SPECIES_TENTACOOL}, - {10, 30, SPECIES_WAILMER}, - {30, 35, SPECIES_SHARPEDO}, - {30, 35, SPECIES_WAILMER}, - {25, 30, SPECIES_WAILMER}, - {35, 40, SPECIES_WAILMER}, - {40, 45, SPECIES_WAILMER}, -}; -const struct WildPokemonInfo Route126_FishingMonsInfo = {30, Route126_FishingMons}; - -const struct WildPokemon Route127_WaterMons [] = -{ - {5, 35, SPECIES_TENTACOOL}, - {10, 30, SPECIES_WINGULL}, - {15, 25, SPECIES_WINGULL}, - {25, 30, SPECIES_PELIPPER}, - {25, 30, SPECIES_PELIPPER}, -}; -const struct WildPokemonInfo Route127_WaterMonsInfo = {4, Route127_WaterMons}; - -const struct WildPokemon Route127_FishingMons [] = -{ - {5, 10, SPECIES_MAGIKARP}, - {5, 10, SPECIES_TENTACOOL}, - {10, 30, SPECIES_MAGIKARP}, - {10, 30, SPECIES_TENTACOOL}, - {10, 30, SPECIES_WAILMER}, - {30, 35, SPECIES_SHARPEDO}, - {30, 35, SPECIES_WAILMER}, - {25, 30, SPECIES_WAILMER}, - {35, 40, SPECIES_WAILMER}, - {40, 45, SPECIES_WAILMER}, -}; -const struct WildPokemonInfo Route127_FishingMonsInfo = {30, Route127_FishingMons}; - -const struct WildPokemon Route128_WaterMons [] = -{ - {5, 35, SPECIES_TENTACOOL}, - {10, 30, SPECIES_WINGULL}, - {15, 25, SPECIES_WINGULL}, - {25, 30, SPECIES_PELIPPER}, - {25, 30, SPECIES_PELIPPER}, -}; -const struct WildPokemonInfo Route128_WaterMonsInfo = {4, Route128_WaterMons}; - -const struct WildPokemon Route128_FishingMons [] = -{ - {5, 10, SPECIES_MAGIKARP}, - {5, 10, SPECIES_TENTACOOL}, - {10, 30, SPECIES_MAGIKARP}, - {10, 30, SPECIES_LUVDISC}, - {10, 30, SPECIES_WAILMER}, - {30, 35, SPECIES_LUVDISC}, - {30, 35, SPECIES_WAILMER}, - {30, 35, SPECIES_CORSOLA}, - {35, 40, SPECIES_WAILMER}, - {40, 45, SPECIES_WAILMER}, -}; -const struct WildPokemonInfo Route128_FishingMonsInfo = {30, Route128_FishingMons}; - -const struct WildPokemon Route129_WaterMons [] = -{ - {5, 35, SPECIES_TENTACOOL}, - {10, 30, SPECIES_WINGULL}, - {15, 25, SPECIES_WINGULL}, - {25, 30, SPECIES_PELIPPER}, -#ifdef SAPPHIRE - {25, 30, SPECIES_WAILORD}, -#else - {35, 40, SPECIES_WAILORD}, -#endif -}; -const struct WildPokemonInfo Route129_WaterMonsInfo = {4, Route129_WaterMons}; - -const struct WildPokemon Route129_FishingMons [] = -{ - {5, 10, SPECIES_MAGIKARP}, - {5, 10, SPECIES_TENTACOOL}, - {10, 30, SPECIES_MAGIKARP}, - {10, 30, SPECIES_TENTACOOL}, - {10, 30, SPECIES_WAILMER}, - {30, 35, SPECIES_SHARPEDO}, - {30, 35, SPECIES_WAILMER}, - {25, 30, SPECIES_WAILMER}, - {35, 40, SPECIES_WAILMER}, - {40, 45, SPECIES_WAILMER}, -}; -const struct WildPokemonInfo Route129_FishingMonsInfo = {30, Route129_FishingMons}; - -const struct WildPokemon Route130_LandMons [] = -{ - {30, 30, SPECIES_WYNAUT}, - {35, 35, SPECIES_WYNAUT}, - {25, 25, SPECIES_WYNAUT}, - {40, 40, SPECIES_WYNAUT}, - {20, 20, SPECIES_WYNAUT}, - {45, 45, SPECIES_WYNAUT}, - {15, 15, SPECIES_WYNAUT}, - {50, 50, SPECIES_WYNAUT}, - {10, 10, SPECIES_WYNAUT}, - {5, 5, SPECIES_WYNAUT}, - {10, 10, SPECIES_WYNAUT}, - {5, 5, SPECIES_WYNAUT}, -}; -const struct WildPokemonInfo Route130_LandMonsInfo = {20, Route130_LandMons}; - -const struct WildPokemon Route130_WaterMons [] = -{ - {5, 35, SPECIES_TENTACOOL}, - {10, 30, SPECIES_WINGULL}, - {15, 25, SPECIES_WINGULL}, - {25, 30, SPECIES_PELIPPER}, - {25, 30, SPECIES_PELIPPER}, -}; -const struct WildPokemonInfo Route130_WaterMonsInfo = {4, Route130_WaterMons}; - -const struct WildPokemon Route130_FishingMons [] = -{ - {5, 10, SPECIES_MAGIKARP}, - {5, 10, SPECIES_TENTACOOL}, - {10, 30, SPECIES_MAGIKARP}, - {10, 30, SPECIES_TENTACOOL}, - {10, 30, SPECIES_WAILMER}, - {30, 35, SPECIES_SHARPEDO}, - {30, 35, SPECIES_WAILMER}, - {25, 30, SPECIES_WAILMER}, - {35, 40, SPECIES_WAILMER}, - {40, 45, SPECIES_WAILMER}, -}; -const struct WildPokemonInfo Route130_FishingMonsInfo = {30, Route130_FishingMons}; - -const struct WildPokemon Route131_WaterMons [] = -{ - {5, 35, SPECIES_TENTACOOL}, - {10, 30, SPECIES_WINGULL}, - {15, 25, SPECIES_WINGULL}, - {25, 30, SPECIES_PELIPPER}, - {25, 30, SPECIES_PELIPPER}, -}; -const struct WildPokemonInfo Route131_WaterMonsInfo = {4, Route131_WaterMons}; - -const struct WildPokemon Route131_FishingMons [] = -{ - {5, 10, SPECIES_MAGIKARP}, - {5, 10, SPECIES_TENTACOOL}, - {10, 30, SPECIES_MAGIKARP}, - {10, 30, SPECIES_TENTACOOL}, - {10, 30, SPECIES_WAILMER}, - {30, 35, SPECIES_SHARPEDO}, - {30, 35, SPECIES_WAILMER}, - {25, 30, SPECIES_WAILMER}, - {35, 40, SPECIES_WAILMER}, - {40, 45, SPECIES_WAILMER}, -}; -const struct WildPokemonInfo Route131_FishingMonsInfo = {30, Route131_FishingMons}; - -const struct WildPokemon Route132_WaterMons [] = -{ - {5, 35, SPECIES_TENTACOOL}, - {10, 30, SPECIES_WINGULL}, - {15, 25, SPECIES_WINGULL}, - {25, 30, SPECIES_PELIPPER}, - {25, 30, SPECIES_PELIPPER}, -}; -const struct WildPokemonInfo Route132_WaterMonsInfo = {4, Route132_WaterMons}; - -const struct WildPokemon Route132_FishingMons [] = -{ - {5, 10, SPECIES_MAGIKARP}, - {5, 10, SPECIES_TENTACOOL}, - {10, 30, SPECIES_MAGIKARP}, - {10, 30, SPECIES_TENTACOOL}, - {10, 30, SPECIES_WAILMER}, - {30, 35, SPECIES_SHARPEDO}, - {30, 35, SPECIES_WAILMER}, - {25, 30, SPECIES_HORSEA}, - {35, 40, SPECIES_WAILMER}, - {40, 45, SPECIES_WAILMER}, -}; -const struct WildPokemonInfo Route132_FishingMonsInfo = {30, Route132_FishingMons}; - -const struct WildPokemon Route133_WaterMons [] = -{ - {5, 35, SPECIES_TENTACOOL}, - {10, 30, SPECIES_WINGULL}, - {15, 25, SPECIES_WINGULL}, - {25, 30, SPECIES_PELIPPER}, - {25, 30, SPECIES_PELIPPER}, -}; -const struct WildPokemonInfo Route133_WaterMonsInfo = {4, Route133_WaterMons}; - -const struct WildPokemon Route133_FishingMons [] = -{ - {5, 10, SPECIES_MAGIKARP}, - {5, 10, SPECIES_TENTACOOL}, - {10, 30, SPECIES_MAGIKARP}, - {10, 30, SPECIES_TENTACOOL}, - {10, 30, SPECIES_WAILMER}, - {30, 35, SPECIES_SHARPEDO}, - {30, 35, SPECIES_WAILMER}, - {25, 30, SPECIES_HORSEA}, - {35, 40, SPECIES_WAILMER}, - {40, 45, SPECIES_WAILMER}, -}; -const struct WildPokemonInfo Route133_FishingMonsInfo = {30, Route133_FishingMons}; - -const struct WildPokemon Route134_WaterMons [] = -{ - {5, 35, SPECIES_TENTACOOL}, - {10, 30, SPECIES_WINGULL}, - {15, 25, SPECIES_WINGULL}, - {25, 30, SPECIES_PELIPPER}, - {25, 30, SPECIES_PELIPPER}, -}; -const struct WildPokemonInfo Route134_WaterMonsInfo = {4, Route134_WaterMons}; - -const struct WildPokemon Route134_FishingMons [] = -{ - {5, 10, SPECIES_MAGIKARP}, - {5, 10, SPECIES_TENTACOOL}, - {10, 30, SPECIES_MAGIKARP}, - {10, 30, SPECIES_TENTACOOL}, - {10, 30, SPECIES_WAILMER}, - {30, 35, SPECIES_SHARPEDO}, - {30, 35, SPECIES_WAILMER}, - {25, 30, SPECIES_HORSEA}, - {35, 40, SPECIES_WAILMER}, - {40, 45, SPECIES_WAILMER}, -}; -const struct WildPokemonInfo Route134_FishingMonsInfo = {30, Route134_FishingMons}; - -const struct WildPokemon SafariZone_Northwest_LandMons [] = -{ - {27, 27, SPECIES_RHYHORN}, - {27, 27, SPECIES_ODDISH}, - {29, 29, SPECIES_RHYHORN}, - {29, 29, SPECIES_ODDISH}, - {27, 27, SPECIES_DODUO}, - {29, 29, SPECIES_GLOOM}, - {31, 31, SPECIES_GLOOM}, - {29, 29, SPECIES_DODUO}, - {29, 29, SPECIES_DODRIO}, - {27, 27, SPECIES_PINSIR}, - {31, 31, SPECIES_DODRIO}, - {29, 29, SPECIES_PINSIR}, -}; -const struct WildPokemonInfo SafariZone_Northwest_LandMonsInfo = {25, SafariZone_Northwest_LandMons}; - -const struct WildPokemon SafariZone_Northwest_WaterMons [] = -{ - {20, 30, SPECIES_PSYDUCK}, - {20, 30, SPECIES_PSYDUCK}, - {30, 35, SPECIES_PSYDUCK}, - {30, 35, SPECIES_GOLDUCK}, - {25, 40, SPECIES_GOLDUCK}, -}; -const struct WildPokemonInfo SafariZone_Northwest_WaterMonsInfo = {9, SafariZone_Northwest_WaterMons}; - -const struct WildPokemon SafariZone_Northwest_FishingMons [] = -{ - {5, 10, SPECIES_MAGIKARP}, - {5, 10, SPECIES_GOLDEEN}, - {10, 30, SPECIES_MAGIKARP}, - {10, 25, SPECIES_GOLDEEN}, - {10, 30, SPECIES_GOLDEEN}, - {25, 30, SPECIES_GOLDEEN}, - {30, 35, SPECIES_GOLDEEN}, - {30, 35, SPECIES_SEAKING}, - {35, 40, SPECIES_SEAKING}, - {25, 30, SPECIES_SEAKING}, -}; -const struct WildPokemonInfo SafariZone_Northwest_FishingMonsInfo = {35, SafariZone_Northwest_FishingMons}; - -const struct WildPokemon SafariZone_Northeast_LandMons [] = -{ - {27, 27, SPECIES_PHANPY}, - {27, 27, SPECIES_ODDISH}, - {29, 29, SPECIES_PHANPY}, - {29, 29, SPECIES_ODDISH}, - {27, 27, SPECIES_NATU}, - {29, 29, SPECIES_GLOOM}, - {31, 31, SPECIES_GLOOM}, - {29, 29, SPECIES_NATU}, - {29, 29, SPECIES_XATU}, - {27, 27, SPECIES_HERACROSS}, - {31, 31, SPECIES_XATU}, - {29, 29, SPECIES_HERACROSS}, -}; -const struct WildPokemonInfo SafariZone_Northeast_LandMonsInfo = {25, SafariZone_Northeast_LandMons}; - -const struct WildPokemon SafariZone_Northeast_RockSmashMons [] = -{ - {10, 15, SPECIES_GEODUDE}, - {5, 10, SPECIES_GEODUDE}, - {15, 20, SPECIES_GEODUDE}, - {20, 25, SPECIES_GEODUDE}, - {25, 30, SPECIES_GEODUDE}, -}; -const struct WildPokemonInfo SafariZone_Northeast_RockSmashMonsInfo = {25, SafariZone_Northeast_RockSmashMons}; - -const struct WildPokemon SafariZone_Southwest_LandMons [] = -{ - {25, 25, SPECIES_ODDISH}, - {27, 27, SPECIES_ODDISH}, - {25, 25, SPECIES_GIRAFARIG}, - {27, 27, SPECIES_GIRAFARIG}, - {25, 25, SPECIES_NATU}, -#ifdef SAPPHIRE - {27, 27, SPECIES_DODUO}, -#else - {25, 25, SPECIES_DODUO}, -#endif - {25, 25, SPECIES_GLOOM}, - {27, 27, SPECIES_WOBBUFFET}, - {25, 25, SPECIES_PIKACHU}, - {27, 27, SPECIES_WOBBUFFET}, - {27, 27, SPECIES_PIKACHU}, - {29, 29, SPECIES_WOBBUFFET}, -}; -const struct WildPokemonInfo SafariZone_Southwest_LandMonsInfo = {25, SafariZone_Southwest_LandMons}; - -const struct WildPokemon SafariZone_Southwest_WaterMons [] = -{ - {20, 30, SPECIES_PSYDUCK}, - {20, 30, SPECIES_PSYDUCK}, - {30, 35, SPECIES_PSYDUCK}, - {30, 35, SPECIES_PSYDUCK}, - {30, 35, SPECIES_PSYDUCK}, -}; -const struct WildPokemonInfo SafariZone_Southwest_WaterMonsInfo = {9, SafariZone_Southwest_WaterMons}; - -const struct WildPokemon SafariZone_Southwest_FishingMons [] = -{ - {5, 10, SPECIES_MAGIKARP}, - {5, 10, SPECIES_GOLDEEN}, - {10, 30, SPECIES_MAGIKARP}, - {10, 25, SPECIES_GOLDEEN}, - {10, 30, SPECIES_GOLDEEN}, - {25, 30, SPECIES_GOLDEEN}, - {30, 35, SPECIES_GOLDEEN}, - {30, 35, SPECIES_SEAKING}, - {35, 40, SPECIES_SEAKING}, - {25, 30, SPECIES_SEAKING}, -}; -const struct WildPokemonInfo SafariZone_Southwest_FishingMonsInfo = {35, SafariZone_Southwest_FishingMons}; - -const struct WildPokemon SafariZone_Southeast_LandMons [] = -{ - {25, 25, SPECIES_ODDISH}, - {27, 27, SPECIES_ODDISH}, - {25, 25, SPECIES_GIRAFARIG}, - {27, 27, SPECIES_GIRAFARIG}, - {25, 25, SPECIES_NATU}, - {25, 25, SPECIES_DODUO}, - {25, 25, SPECIES_GLOOM}, - {27, 27, SPECIES_WOBBUFFET}, - {25, 25, SPECIES_PIKACHU}, - {27, 27, SPECIES_WOBBUFFET}, - {27, 27, SPECIES_PIKACHU}, - {29, 29, SPECIES_WOBBUFFET}, -}; -const struct WildPokemonInfo SafariZone_Southeast_LandMonsInfo = {25, SafariZone_Southeast_LandMons}; - -const struct WildPokemon DewfordTown_WaterMons [] = -{ - {5, 35, SPECIES_TENTACOOL}, - {10, 30, SPECIES_WINGULL}, - {15, 25, SPECIES_WINGULL}, - {25, 30, SPECIES_PELIPPER}, - {25, 30, SPECIES_PELIPPER}, -}; -const struct WildPokemonInfo DewfordTown_WaterMonsInfo = {4, DewfordTown_WaterMons}; - -const struct WildPokemon DewfordTown_FishingMons [] = -{ - {5, 10, SPECIES_MAGIKARP}, - {5, 10, SPECIES_TENTACOOL}, - {10, 30, SPECIES_MAGIKARP}, - {10, 30, SPECIES_TENTACOOL}, - {10, 30, SPECIES_WAILMER}, - {25, 30, SPECIES_WAILMER}, - {30, 35, SPECIES_WAILMER}, - {20, 25, SPECIES_WAILMER}, - {35, 40, SPECIES_WAILMER}, - {40, 45, SPECIES_WAILMER}, -}; -const struct WildPokemonInfo DewfordTown_FishingMonsInfo = {10, DewfordTown_FishingMons}; - -const struct WildPokemon PacifidlogTown_WaterMons [] = -{ - {5, 35, SPECIES_TENTACOOL}, - {10, 30, SPECIES_WINGULL}, - {15, 25, SPECIES_WINGULL}, - {25, 30, SPECIES_PELIPPER}, - {25, 30, SPECIES_PELIPPER}, -}; -const struct WildPokemonInfo PacifidlogTown_WaterMonsInfo = {4, PacifidlogTown_WaterMons}; - -const struct WildPokemon PacifidlogTown_FishingMons [] = -{ - {5, 10, SPECIES_MAGIKARP}, - {5, 10, SPECIES_TENTACOOL}, - {10, 30, SPECIES_MAGIKARP}, - {10, 30, SPECIES_TENTACOOL}, - {10, 30, SPECIES_WAILMER}, - {30, 35, SPECIES_SHARPEDO}, - {30, 35, SPECIES_WAILMER}, - {25, 30, SPECIES_WAILMER}, - {35, 40, SPECIES_WAILMER}, - {40, 45, SPECIES_WAILMER}, -}; -const struct WildPokemonInfo PacifidlogTown_FishingMonsInfo = {10, PacifidlogTown_FishingMons}; - -const struct WildPokemon Underwater1_WaterMons [] = -{ - {20, 30, SPECIES_CLAMPERL}, - {20, 30, SPECIES_CHINCHOU}, - {30, 35, SPECIES_CLAMPERL}, - {30, 35, SPECIES_RELICANTH}, - {30, 35, SPECIES_RELICANTH}, -}; -const struct WildPokemonInfo Underwater1_WaterMonsInfo = {4, Underwater1_WaterMons}; - -const struct WildPokemon Underwater2_WaterMons [] = -{ - {20, 30, SPECIES_CLAMPERL}, - {20, 30, SPECIES_CHINCHOU}, - {30, 35, SPECIES_CLAMPERL}, - {30, 35, SPECIES_RELICANTH}, - {30, 35, SPECIES_RELICANTH}, -}; -const struct WildPokemonInfo Underwater2_WaterMonsInfo = {4, Underwater2_WaterMons}; - -const struct WildPokemonHeader gWildMonHeaders[] = -{ - { - .mapGroup = MAP_GROUP(PETALBURG_CITY), - .mapNum = MAP_NUM(PETALBURG_CITY), - .landMonsInfo = NULL, - .waterMonsInfo = &PetalburgCity_WaterMonsInfo, - .rockSmashMonsInfo = NULL, - .fishingMonsInfo = &PetalburgCity_FishingMonsInfo, - }, - { - .mapGroup = MAP_GROUP(SLATEPORT_CITY), - .mapNum = MAP_NUM(SLATEPORT_CITY), - .landMonsInfo = NULL, - .waterMonsInfo = &SlateportCity_WaterMonsInfo, - .rockSmashMonsInfo = NULL, - .fishingMonsInfo = &SlateportCity_FishingMonsInfo, - }, - { - .mapGroup = MAP_GROUP(LILYCOVE_CITY), - .mapNum = MAP_NUM(LILYCOVE_CITY), - .landMonsInfo = NULL, - .waterMonsInfo = &LilycoveCity_WaterMonsInfo, - .rockSmashMonsInfo = NULL, - .fishingMonsInfo = &LilycoveCity_FishingMonsInfo, - }, - { - .mapGroup = MAP_GROUP(MOSSDEEP_CITY), - .mapNum = MAP_NUM(MOSSDEEP_CITY), - .landMonsInfo = NULL, - .waterMonsInfo = &MossdeepCity_WaterMonsInfo, - .rockSmashMonsInfo = NULL, - .fishingMonsInfo = &MossdeepCity_FishingMonsInfo, - }, - { - .mapGroup = MAP_GROUP(SOOTOPOLIS_CITY), - .mapNum = MAP_NUM(SOOTOPOLIS_CITY), - .landMonsInfo = NULL, - .waterMonsInfo = &SootopolisCity_WaterMonsInfo, - .rockSmashMonsInfo = NULL, - .fishingMonsInfo = &SootopolisCity_FishingMonsInfo, - }, - { - .mapGroup = MAP_GROUP(EVER_GRANDE_CITY), - .mapNum = MAP_NUM(EVER_GRANDE_CITY), - .landMonsInfo = NULL, - .waterMonsInfo = &EverGrandeCity_WaterMonsInfo, - .rockSmashMonsInfo = NULL, - .fishingMonsInfo = &EverGrandeCity_FishingMonsInfo, - }, - { - .mapGroup = MAP_GROUP(METEOR_FALLS_1F_1R), - .mapNum = MAP_NUM(METEOR_FALLS_1F_1R), - .landMonsInfo = &MeteorFalls_1F_1R_LandMonsInfo, - .waterMonsInfo = &MeteorFalls_1F_1R_WaterMonsInfo, - .rockSmashMonsInfo = NULL, - .fishingMonsInfo = &MeteorFalls_1F_1R_FishingMonsInfo, - }, - { - .mapGroup = MAP_GROUP(METEOR_FALLS_1F_2R), - .mapNum = MAP_NUM(METEOR_FALLS_1F_2R), - .landMonsInfo = &MeteorFalls_1F_2R_LandMonsInfo, - .waterMonsInfo = &MeteorFalls_1F_2R_WaterMonsInfo, - .rockSmashMonsInfo = NULL, - .fishingMonsInfo = &MeteorFalls_1F_2R_FishingMonsInfo, - }, - { - .mapGroup = MAP_GROUP(METEOR_FALLS_B1F_1R), - .mapNum = MAP_NUM(METEOR_FALLS_B1F_1R), - .landMonsInfo = &MeteorFalls_B1F_1R_LandMonsInfo, - .waterMonsInfo = &MeteorFalls_B1F_1R_WaterMonsInfo, - .rockSmashMonsInfo = NULL, - .fishingMonsInfo = &MeteorFalls_B1F_1R_FishingMonsInfo, - }, - { - .mapGroup = MAP_GROUP(METEOR_FALLS_B1F_2R), - .mapNum = MAP_NUM(METEOR_FALLS_B1F_2R), - .landMonsInfo = &MeteorFalls_B1F_2R_LandMonsInfo, - .waterMonsInfo = &MeteorFalls_B1F_2R_WaterMonsInfo, - .rockSmashMonsInfo = NULL, - .fishingMonsInfo = &MeteorFalls_B1F_2R_FishingMonsInfo, - }, - { - .mapGroup = MAP_GROUP(RUSTURF_TUNNEL), - .mapNum = MAP_NUM(RUSTURF_TUNNEL), - .landMonsInfo = &RusturfTunnel_LandMonsInfo, - .waterMonsInfo = NULL, - .rockSmashMonsInfo = NULL, - .fishingMonsInfo = NULL, - }, - { - .mapGroup = MAP_GROUP(GRANITE_CAVE_1F), - .mapNum = MAP_NUM(GRANITE_CAVE_1F), - .landMonsInfo = &GraniteCave_1F_LandMonsInfo, - .waterMonsInfo = NULL, - .rockSmashMonsInfo = NULL, - .fishingMonsInfo = NULL, - }, - { - .mapGroup = MAP_GROUP(GRANITE_CAVE_B1F), - .mapNum = MAP_NUM(GRANITE_CAVE_B1F), - .landMonsInfo = &GraniteCave_B1F_LandMonsInfo, - .waterMonsInfo = NULL, - .rockSmashMonsInfo = NULL, - .fishingMonsInfo = NULL, - }, - { - .mapGroup = MAP_GROUP(GRANITE_CAVE_B2F), - .mapNum = MAP_NUM(GRANITE_CAVE_B2F), - .landMonsInfo = &GraniteCave_B2F_LandMonsInfo, - .waterMonsInfo = NULL, - .rockSmashMonsInfo = &GraniteCave_B2F_RockSmashMonsInfo, - .fishingMonsInfo = NULL, - }, - { - .mapGroup = MAP_GROUP(GRANITE_CAVE_STEVENS_ROOM), - .mapNum = MAP_NUM(GRANITE_CAVE_STEVENS_ROOM), - .landMonsInfo = &GraniteCave_StevensRoom_LandMonsInfo, - .waterMonsInfo = NULL, - .rockSmashMonsInfo = NULL, - .fishingMonsInfo = NULL, - }, - { - .mapGroup = MAP_GROUP(PETALBURG_WOODS), - .mapNum = MAP_NUM(PETALBURG_WOODS), - .landMonsInfo = &PetalburgWoods_LandMonsInfo, - .waterMonsInfo = NULL, - .rockSmashMonsInfo = NULL, - .fishingMonsInfo = NULL, - }, - { - .mapGroup = MAP_GROUP(JAGGED_PASS), - .mapNum = MAP_NUM(JAGGED_PASS), - .landMonsInfo = &JaggedPass_LandMonsInfo, - .waterMonsInfo = NULL, - .rockSmashMonsInfo = NULL, - .fishingMonsInfo = NULL, - }, - { - .mapGroup = MAP_GROUP(FIERY_PATH), - .mapNum = MAP_NUM(FIERY_PATH), - .landMonsInfo = &FieryPath_LandMonsInfo, - .waterMonsInfo = NULL, - .rockSmashMonsInfo = NULL, - .fishingMonsInfo = NULL, - }, - { - .mapGroup = MAP_GROUP(MT_PYRE_1F), - .mapNum = MAP_NUM(MT_PYRE_1F), - .landMonsInfo = &MtPyre_1F_LandMonsInfo, - .waterMonsInfo = NULL, - .rockSmashMonsInfo = NULL, - .fishingMonsInfo = NULL, - }, - { - .mapGroup = MAP_GROUP(MT_PYRE_2F), - .mapNum = MAP_NUM(MT_PYRE_2F), - .landMonsInfo = &MtPyre_2F_LandMonsInfo, - .waterMonsInfo = NULL, - .rockSmashMonsInfo = NULL, - .fishingMonsInfo = NULL, - }, - { - .mapGroup = MAP_GROUP(MT_PYRE_3F), - .mapNum = MAP_NUM(MT_PYRE_3F), - .landMonsInfo = &MtPyre_3F_LandMonsInfo, - .waterMonsInfo = NULL, - .rockSmashMonsInfo = NULL, - .fishingMonsInfo = NULL, - }, - { - .mapGroup = MAP_GROUP(MT_PYRE_4F), - .mapNum = MAP_NUM(MT_PYRE_4F), - .landMonsInfo = &MtPyre_4F_LandMonsInfo, - .waterMonsInfo = NULL, - .rockSmashMonsInfo = NULL, - .fishingMonsInfo = NULL, - }, - { - .mapGroup = MAP_GROUP(MT_PYRE_5F), - .mapNum = MAP_NUM(MT_PYRE_5F), - .landMonsInfo = &MtPyre_5F_LandMonsInfo, - .waterMonsInfo = NULL, - .rockSmashMonsInfo = NULL, - .fishingMonsInfo = NULL, - }, - { - .mapGroup = MAP_GROUP(MT_PYRE_6F), - .mapNum = MAP_NUM(MT_PYRE_6F), - .landMonsInfo = &MtPyre_6F_LandMonsInfo, - .waterMonsInfo = NULL, - .rockSmashMonsInfo = NULL, - .fishingMonsInfo = NULL, - }, - { - .mapGroup = MAP_GROUP(MT_PYRE_EXTERIOR), - .mapNum = MAP_NUM(MT_PYRE_EXTERIOR), - .landMonsInfo = &MtPyre_Exterior_LandMonsInfo, - .waterMonsInfo = NULL, - .rockSmashMonsInfo = NULL, - .fishingMonsInfo = NULL, - }, - { - .mapGroup = MAP_GROUP(MT_PYRE_SUMMIT), - .mapNum = MAP_NUM(MT_PYRE_SUMMIT), - .landMonsInfo = &MtPyre_Summit_LandMonsInfo, - .waterMonsInfo = NULL, - .rockSmashMonsInfo = NULL, - .fishingMonsInfo = NULL, - }, - { - .mapGroup = MAP_GROUP(SEAFLOOR_CAVERN_ENTRANCE), - .mapNum = MAP_NUM(SEAFLOOR_CAVERN_ENTRANCE), - .landMonsInfo = NULL, - .waterMonsInfo = &SeafloorCavern_Entrance_WaterMonsInfo, - .rockSmashMonsInfo = NULL, - .fishingMonsInfo = &SeafloorCavern_Entrance_FishingMonsInfo, - }, - { - .mapGroup = MAP_GROUP(SEAFLOOR_CAVERN_ROOM1), - .mapNum = MAP_NUM(SEAFLOOR_CAVERN_ROOM1), - .landMonsInfo = &SeafloorCavern_Room1_LandMonsInfo, - .waterMonsInfo = NULL, - .rockSmashMonsInfo = NULL, - .fishingMonsInfo = NULL, - }, - { - .mapGroup = MAP_GROUP(SEAFLOOR_CAVERN_ROOM2), - .mapNum = MAP_NUM(SEAFLOOR_CAVERN_ROOM2), - .landMonsInfo = &SeafloorCavern_Room2_LandMonsInfo, - .waterMonsInfo = NULL, - .rockSmashMonsInfo = NULL, - .fishingMonsInfo = NULL, - }, - { - .mapGroup = MAP_GROUP(SEAFLOOR_CAVERN_ROOM3), - .mapNum = MAP_NUM(SEAFLOOR_CAVERN_ROOM3), - .landMonsInfo = &SeafloorCavern_Room3_LandMonsInfo, - .waterMonsInfo = NULL, - .rockSmashMonsInfo = NULL, - .fishingMonsInfo = NULL, - }, - { - .mapGroup = MAP_GROUP(SEAFLOOR_CAVERN_ROOM4), - .mapNum = MAP_NUM(SEAFLOOR_CAVERN_ROOM4), - .landMonsInfo = &SeafloorCavern_Room4_LandMonsInfo, - .waterMonsInfo = NULL, - .rockSmashMonsInfo = NULL, - .fishingMonsInfo = NULL, - }, - { - .mapGroup = MAP_GROUP(SEAFLOOR_CAVERN_ROOM5), - .mapNum = MAP_NUM(SEAFLOOR_CAVERN_ROOM5), - .landMonsInfo = &SeafloorCavern_Room5_LandMonsInfo, - .waterMonsInfo = NULL, - .rockSmashMonsInfo = NULL, - .fishingMonsInfo = NULL, - }, - { - .mapGroup = MAP_GROUP(SEAFLOOR_CAVERN_ROOM6), - .mapNum = MAP_NUM(SEAFLOOR_CAVERN_ROOM6), - .landMonsInfo = &SeafloorCavern_Room6_LandMonsInfo, - .waterMonsInfo = &SeafloorCavern_Room6_WaterMonsInfo, - .rockSmashMonsInfo = NULL, - .fishingMonsInfo = &SeafloorCavern_Room6_FishingMonsInfo, - }, - { - .mapGroup = MAP_GROUP(SEAFLOOR_CAVERN_ROOM7), - .mapNum = MAP_NUM(SEAFLOOR_CAVERN_ROOM7), - .landMonsInfo = &SeafloorCavern_Room7_LandMonsInfo, - .waterMonsInfo = &SeafloorCavern_Room7_WaterMonsInfo, - .rockSmashMonsInfo = NULL, - .fishingMonsInfo = &SeafloorCavern_Room7_FishingMonsInfo, - }, - { - .mapGroup = MAP_GROUP(SEAFLOOR_CAVERN_ROOM8), - .mapNum = MAP_NUM(SEAFLOOR_CAVERN_ROOM8), - .landMonsInfo = &SeafloorCavern_Room8_LandMonsInfo, - .waterMonsInfo = NULL, - .rockSmashMonsInfo = NULL, - .fishingMonsInfo = NULL, - }, - { - .mapGroup = MAP_GROUP(CAVE_OF_ORIGIN_ENTRANCE), - .mapNum = MAP_NUM(CAVE_OF_ORIGIN_ENTRANCE), - .landMonsInfo = &CaveOfOrigin_Entrance_LandMonsInfo, - .waterMonsInfo = NULL, - .rockSmashMonsInfo = NULL, - .fishingMonsInfo = NULL, - }, - { - .mapGroup = MAP_GROUP(CAVE_OF_ORIGIN_1F), - .mapNum = MAP_NUM(CAVE_OF_ORIGIN_1F), - .landMonsInfo = &CaveOfOrigin_1F_LandMonsInfo, - .waterMonsInfo = NULL, - .rockSmashMonsInfo = NULL, - .fishingMonsInfo = NULL, - }, - { - .mapGroup = MAP_GROUP(CAVE_OF_ORIGIN_B1F), - .mapNum = MAP_NUM(CAVE_OF_ORIGIN_B1F), - .landMonsInfo = &CaveOfOrigin_B1F_LandMonsInfo, - .waterMonsInfo = NULL, - .rockSmashMonsInfo = NULL, - .fishingMonsInfo = NULL, - }, - { - .mapGroup = MAP_GROUP(CAVE_OF_ORIGIN_B2F), - .mapNum = MAP_NUM(CAVE_OF_ORIGIN_B2F), - .landMonsInfo = &CaveOfOrigin_B2F_LandMonsInfo, - .waterMonsInfo = NULL, - .rockSmashMonsInfo = NULL, - .fishingMonsInfo = NULL, - }, - { - .mapGroup = MAP_GROUP(CAVE_OF_ORIGIN_B3F), - .mapNum = MAP_NUM(CAVE_OF_ORIGIN_B3F), - .landMonsInfo = &CaveOfOrigin_B3F_LandMonsInfo, - .waterMonsInfo = NULL, - .rockSmashMonsInfo = NULL, - .fishingMonsInfo = NULL, - }, - { - .mapGroup = MAP_GROUP(VICTORY_ROAD_1F), - .mapNum = MAP_NUM(VICTORY_ROAD_1F), - .landMonsInfo = &VictoryRoad_1F_LandMonsInfo, - .waterMonsInfo = NULL, - .rockSmashMonsInfo = NULL, - .fishingMonsInfo = NULL, - }, - { - .mapGroup = MAP_GROUP(VICTORY_ROAD_B1F), - .mapNum = MAP_NUM(VICTORY_ROAD_B1F), - .landMonsInfo = &VictoryRoad_B1F_LandMonsInfo, - .waterMonsInfo = NULL, - .rockSmashMonsInfo = &VictoryRoad_B1F_RockSmashMonsInfo, - .fishingMonsInfo = NULL, - }, - { - .mapGroup = MAP_GROUP(VICTORY_ROAD_B2F), - .mapNum = MAP_NUM(VICTORY_ROAD_B2F), - .landMonsInfo = &VictoryRoad_B2F_LandMonsInfo, - .waterMonsInfo = &VictoryRoad_B2F_WaterMonsInfo, - .rockSmashMonsInfo = NULL, - .fishingMonsInfo = &VictoryRoad_B2F_FishingMonsInfo, - }, - { - .mapGroup = MAP_GROUP(SHOAL_CAVE_LOW_TIDE_ENTRANCE_ROOM), - .mapNum = MAP_NUM(SHOAL_CAVE_LOW_TIDE_ENTRANCE_ROOM), - .landMonsInfo = &ShoalCave_LowTideEntranceRoom_LandMonsInfo, - .waterMonsInfo = &ShoalCave_LowTideEntranceRoom_WaterMonsInfo, - .rockSmashMonsInfo = NULL, - .fishingMonsInfo = &ShoalCave_LowTideEntranceRoom_FishingMonsInfo, - }, - { - .mapGroup = MAP_GROUP(SHOAL_CAVE_LOW_TIDE_INNER_ROOM), - .mapNum = MAP_NUM(SHOAL_CAVE_LOW_TIDE_INNER_ROOM), - .landMonsInfo = &ShoalCave_LowTideInnerRoom_LandMonsInfo, - .waterMonsInfo = &ShoalCave_LowTideInnerRoom_WaterMonsInfo, - .rockSmashMonsInfo = NULL, - .fishingMonsInfo = &ShoalCave_LowTideInnerRoom_FishingMonsInfo, - }, - { - .mapGroup = MAP_GROUP(SHOAL_CAVE_LOW_TIDE_STAIRS_ROOM), - .mapNum = MAP_NUM(SHOAL_CAVE_LOW_TIDE_STAIRS_ROOM), - .landMonsInfo = &ShoalCave_LowTideStairsRoom_LandMonsInfo, - .waterMonsInfo = NULL, - .rockSmashMonsInfo = NULL, - .fishingMonsInfo = NULL, - }, - { - .mapGroup = MAP_GROUP(SHOAL_CAVE_LOW_TIDE_LOWER_ROOM), - .mapNum = MAP_NUM(SHOAL_CAVE_LOW_TIDE_LOWER_ROOM), - .landMonsInfo = &ShoalCave_LowTideLowerRoom_LandMonsInfo, - .waterMonsInfo = NULL, - .rockSmashMonsInfo = NULL, - .fishingMonsInfo = NULL, - }, - { - .mapGroup = MAP_GROUP(SHOAL_CAVE_LOW_TIDE_ICE_ROOM), - .mapNum = MAP_NUM(SHOAL_CAVE_LOW_TIDE_ICE_ROOM), - .landMonsInfo = &ShoalCave_LowTideIceRoom_LandMonsInfo, - .waterMonsInfo = NULL, - .rockSmashMonsInfo = NULL, - .fishingMonsInfo = NULL, - }, - { - .mapGroup = MAP_GROUP(NEW_MAUVILLE_ENTRANCE), - .mapNum = MAP_NUM(NEW_MAUVILLE_ENTRANCE), - .landMonsInfo = &NewMauville_Entrance_LandMonsInfo, - .waterMonsInfo = NULL, - .rockSmashMonsInfo = NULL, - .fishingMonsInfo = NULL, - }, - { - .mapGroup = MAP_GROUP(NEW_MAUVILLE_INSIDE), - .mapNum = MAP_NUM(NEW_MAUVILLE_INSIDE), - .landMonsInfo = &NewMauville_Inside_LandMonsInfo, - .waterMonsInfo = NULL, - .rockSmashMonsInfo = NULL, - .fishingMonsInfo = NULL, - }, - { - .mapGroup = MAP_GROUP(ABANDONED_SHIP_ROOMS_B1F), - .mapNum = MAP_NUM(ABANDONED_SHIP_ROOMS_B1F), - .landMonsInfo = NULL, - .waterMonsInfo = &AbandonedShip_Rooms_B1F_WaterMonsInfo, - .rockSmashMonsInfo = NULL, - .fishingMonsInfo = &AbandonedShip_Rooms_B1F_FishingMonsInfo, - }, - { - .mapGroup = MAP_GROUP(ABANDONED_SHIP_HIDDEN_FLOOR_CORRIDORS), - .mapNum = MAP_NUM(ABANDONED_SHIP_HIDDEN_FLOOR_CORRIDORS), - .landMonsInfo = NULL, - .waterMonsInfo = &AbandonedShip_HiddenFloorCorridors_WaterMonsInfo, - .rockSmashMonsInfo = NULL, - .fishingMonsInfo = &AbandonedShip_HiddenFloorCorridors_FishingMonsInfo, - }, - { - .mapGroup = MAP_GROUP(SKY_PILLAR_1F), - .mapNum = MAP_NUM(SKY_PILLAR_1F), - .landMonsInfo = &SkyPillar_1F_LandMonsInfo, - .waterMonsInfo = NULL, - .rockSmashMonsInfo = NULL, - .fishingMonsInfo = NULL, - }, - { - .mapGroup = MAP_GROUP(SKY_PILLAR_3F), - .mapNum = MAP_NUM(SKY_PILLAR_3F), - .landMonsInfo = &SkyPillar_3F_LandMonsInfo, - .waterMonsInfo = NULL, - .rockSmashMonsInfo = NULL, - .fishingMonsInfo = NULL, - }, - { - .mapGroup = MAP_GROUP(SKY_PILLAR_5F), - .mapNum = MAP_NUM(SKY_PILLAR_5F), - .landMonsInfo = &SkyPillar_5F_LandMonsInfo, - .waterMonsInfo = NULL, - .rockSmashMonsInfo = NULL, - .fishingMonsInfo = NULL, - }, - { - .mapGroup = MAP_GROUP(ROUTE101), - .mapNum = MAP_NUM(ROUTE101), - .landMonsInfo = &Route101_LandMonsInfo, - .waterMonsInfo = NULL, - .rockSmashMonsInfo = NULL, - .fishingMonsInfo = NULL, - }, - { - .mapGroup = MAP_GROUP(ROUTE102), - .mapNum = MAP_NUM(ROUTE102), - .landMonsInfo = &Route102_LandMonsInfo, - .waterMonsInfo = &Route102_WaterMonsInfo, - .rockSmashMonsInfo = NULL, - .fishingMonsInfo = &Route102_FishingMonsInfo, - }, - { - .mapGroup = MAP_GROUP(ROUTE103), - .mapNum = MAP_NUM(ROUTE103), - .landMonsInfo = &Route103_LandMonsInfo, - .waterMonsInfo = &Route103_WaterMonsInfo, - .rockSmashMonsInfo = NULL, - .fishingMonsInfo = &Route103_FishingMonsInfo, - }, - { - .mapGroup = MAP_GROUP(ROUTE104), - .mapNum = MAP_NUM(ROUTE104), - .landMonsInfo = &Route104_LandMonsInfo, - .waterMonsInfo = &Route104_WaterMonsInfo, - .rockSmashMonsInfo = NULL, - .fishingMonsInfo = &Route104_FishingMonsInfo, - }, - { - .mapGroup = MAP_GROUP(ROUTE105), - .mapNum = MAP_NUM(ROUTE105), - .landMonsInfo = NULL, - .waterMonsInfo = &Route105_WaterMonsInfo, - .rockSmashMonsInfo = NULL, - .fishingMonsInfo = &Route105_FishingMonsInfo, - }, - { - .mapGroup = MAP_GROUP(ROUTE106), - .mapNum = MAP_NUM(ROUTE106), - .landMonsInfo = NULL, - .waterMonsInfo = &Route106_WaterMonsInfo, - .rockSmashMonsInfo = NULL, - .fishingMonsInfo = &Route106_FishingMonsInfo, - }, - { - .mapGroup = MAP_GROUP(ROUTE107), - .mapNum = MAP_NUM(ROUTE107), - .landMonsInfo = NULL, - .waterMonsInfo = &Route107_WaterMonsInfo, - .rockSmashMonsInfo = NULL, - .fishingMonsInfo = &Route107_FishingMonsInfo, - }, - { - .mapGroup = MAP_GROUP(ROUTE108), - .mapNum = MAP_NUM(ROUTE108), - .landMonsInfo = NULL, - .waterMonsInfo = &Route108_WaterMonsInfo, - .rockSmashMonsInfo = NULL, - .fishingMonsInfo = &Route108_FishingMonsInfo, - }, - { - .mapGroup = MAP_GROUP(ROUTE109), - .mapNum = MAP_NUM(ROUTE109), - .landMonsInfo = NULL, - .waterMonsInfo = &Route109_WaterMonsInfo, - .rockSmashMonsInfo = NULL, - .fishingMonsInfo = &Route109_FishingMonsInfo, - }, - { - .mapGroup = MAP_GROUP(ROUTE110), - .mapNum = MAP_NUM(ROUTE110), - .landMonsInfo = &Route110_LandMonsInfo, - .waterMonsInfo = &Route110_WaterMonsInfo, - .rockSmashMonsInfo = NULL, - .fishingMonsInfo = &Route110_FishingMonsInfo, - }, - { - .mapGroup = MAP_GROUP(ROUTE111), - .mapNum = MAP_NUM(ROUTE111), - .landMonsInfo = &Route111_LandMonsInfo, - .waterMonsInfo = &Route111_WaterMonsInfo, - .rockSmashMonsInfo = &Route111_RockSmashMonsInfo, - .fishingMonsInfo = &Route111_FishingMonsInfo, - }, - { - .mapGroup = MAP_GROUP(ROUTE112), - .mapNum = MAP_NUM(ROUTE112), - .landMonsInfo = &Route112_LandMonsInfo, - .waterMonsInfo = NULL, - .rockSmashMonsInfo = NULL, - .fishingMonsInfo = NULL, - }, - { - .mapGroup = MAP_GROUP(ROUTE113), - .mapNum = MAP_NUM(ROUTE113), - .landMonsInfo = &Route113_LandMonsInfo, - .waterMonsInfo = NULL, - .rockSmashMonsInfo = NULL, - .fishingMonsInfo = NULL, - }, - { - .mapGroup = MAP_GROUP(ROUTE114), - .mapNum = MAP_NUM(ROUTE114), - .landMonsInfo = &Route114_LandMonsInfo, - .waterMonsInfo = &Route114_WaterMonsInfo, - .rockSmashMonsInfo = &Route114_RockSmashMonsInfo, - .fishingMonsInfo = &Route114_FishingMonsInfo, - }, - { - .mapGroup = MAP_GROUP(ROUTE115), - .mapNum = MAP_NUM(ROUTE115), - .landMonsInfo = &Route115_LandMonsInfo, - .waterMonsInfo = &Route115_WaterMonsInfo, - .rockSmashMonsInfo = NULL, - .fishingMonsInfo = &Route115_FishingMonsInfo, - }, - { - .mapGroup = MAP_GROUP(ROUTE116), - .mapNum = MAP_NUM(ROUTE116), - .landMonsInfo = &Route116_LandMonsInfo, - .waterMonsInfo = NULL, - .rockSmashMonsInfo = NULL, - .fishingMonsInfo = NULL, - }, - { - .mapGroup = MAP_GROUP(ROUTE117), - .mapNum = MAP_NUM(ROUTE117), - .landMonsInfo = &Route117_LandMonsInfo, - .waterMonsInfo = &Route117_WaterMonsInfo, - .rockSmashMonsInfo = NULL, - .fishingMonsInfo = &Route117_FishingMonsInfo, - }, - { - .mapGroup = MAP_GROUP(ROUTE118), - .mapNum = MAP_NUM(ROUTE118), - .landMonsInfo = &Route118_LandMonsInfo, - .waterMonsInfo = &Route118_WaterMonsInfo, - .rockSmashMonsInfo = NULL, - .fishingMonsInfo = &Route118_FishingMonsInfo, - }, - { - .mapGroup = MAP_GROUP(ROUTE119), - .mapNum = MAP_NUM(ROUTE119), - .landMonsInfo = &Route119_LandMonsInfo, - .waterMonsInfo = &Route119_WaterMonsInfo, - .rockSmashMonsInfo = NULL, - .fishingMonsInfo = &Route119_FishingMonsInfo, - }, - { - .mapGroup = MAP_GROUP(ROUTE120), - .mapNum = MAP_NUM(ROUTE120), - .landMonsInfo = &Route120_LandMonsInfo, - .waterMonsInfo = &Route120_WaterMonsInfo, - .rockSmashMonsInfo = NULL, - .fishingMonsInfo = &Route120_FishingMonsInfo, - }, - { - .mapGroup = MAP_GROUP(ROUTE121), - .mapNum = MAP_NUM(ROUTE121), - .landMonsInfo = &Route121_LandMonsInfo, - .waterMonsInfo = &Route121_WaterMonsInfo, - .rockSmashMonsInfo = NULL, - .fishingMonsInfo = &Route121_FishingMonsInfo, - }, - { - .mapGroup = MAP_GROUP(ROUTE122), - .mapNum = MAP_NUM(ROUTE122), - .landMonsInfo = NULL, - .waterMonsInfo = &Route122_WaterMonsInfo, - .rockSmashMonsInfo = NULL, - .fishingMonsInfo = &Route122_FishingMonsInfo, - }, - { - .mapGroup = MAP_GROUP(ROUTE123), - .mapNum = MAP_NUM(ROUTE123), - .landMonsInfo = &Route123_LandMonsInfo, - .waterMonsInfo = &Route123_WaterMonsInfo, - .rockSmashMonsInfo = NULL, - .fishingMonsInfo = &Route123_FishingMonsInfo, - }, - { - .mapGroup = MAP_GROUP(ROUTE124), - .mapNum = MAP_NUM(ROUTE124), - .landMonsInfo = NULL, - .waterMonsInfo = &Route124_WaterMonsInfo, - .rockSmashMonsInfo = NULL, - .fishingMonsInfo = &Route124_FishingMonsInfo, - }, - { - .mapGroup = MAP_GROUP(ROUTE125), - .mapNum = MAP_NUM(ROUTE125), - .landMonsInfo = NULL, - .waterMonsInfo = &Route125_WaterMonsInfo, - .rockSmashMonsInfo = NULL, - .fishingMonsInfo = &Route125_FishingMonsInfo, - }, - { - .mapGroup = MAP_GROUP(ROUTE126), - .mapNum = MAP_NUM(ROUTE126), - .landMonsInfo = NULL, - .waterMonsInfo = &Route126_WaterMonsInfo, - .rockSmashMonsInfo = NULL, - .fishingMonsInfo = &Route126_FishingMonsInfo, - }, - { - .mapGroup = MAP_GROUP(ROUTE127), - .mapNum = MAP_NUM(ROUTE127), - .landMonsInfo = NULL, - .waterMonsInfo = &Route127_WaterMonsInfo, - .rockSmashMonsInfo = NULL, - .fishingMonsInfo = &Route127_FishingMonsInfo, - }, - { - .mapGroup = MAP_GROUP(ROUTE128), - .mapNum = MAP_NUM(ROUTE128), - .landMonsInfo = NULL, - .waterMonsInfo = &Route128_WaterMonsInfo, - .rockSmashMonsInfo = NULL, - .fishingMonsInfo = &Route128_FishingMonsInfo, - }, - { - .mapGroup = MAP_GROUP(ROUTE129), - .mapNum = MAP_NUM(ROUTE129), - .landMonsInfo = NULL, - .waterMonsInfo = &Route129_WaterMonsInfo, - .rockSmashMonsInfo = NULL, - .fishingMonsInfo = &Route129_FishingMonsInfo, - }, - { - .mapGroup = MAP_GROUP(ROUTE130), - .mapNum = MAP_NUM(ROUTE130), - .landMonsInfo = &Route130_LandMonsInfo, - .waterMonsInfo = &Route130_WaterMonsInfo, - .rockSmashMonsInfo = NULL, - .fishingMonsInfo = &Route130_FishingMonsInfo, - }, - { - .mapGroup = MAP_GROUP(ROUTE131), - .mapNum = MAP_NUM(ROUTE131), - .landMonsInfo = NULL, - .waterMonsInfo = &Route131_WaterMonsInfo, - .rockSmashMonsInfo = NULL, - .fishingMonsInfo = &Route131_FishingMonsInfo, - }, - { - .mapGroup = MAP_GROUP(ROUTE132), - .mapNum = MAP_NUM(ROUTE132), - .landMonsInfo = NULL, - .waterMonsInfo = &Route132_WaterMonsInfo, - .rockSmashMonsInfo = NULL, - .fishingMonsInfo = &Route132_FishingMonsInfo, - }, - { - .mapGroup = MAP_GROUP(ROUTE133), - .mapNum = MAP_NUM(ROUTE133), - .landMonsInfo = NULL, - .waterMonsInfo = &Route133_WaterMonsInfo, - .rockSmashMonsInfo = NULL, - .fishingMonsInfo = &Route133_FishingMonsInfo, - }, - { - .mapGroup = MAP_GROUP(ROUTE134), - .mapNum = MAP_NUM(ROUTE134), - .landMonsInfo = NULL, - .waterMonsInfo = &Route134_WaterMonsInfo, - .rockSmashMonsInfo = NULL, - .fishingMonsInfo = &Route134_FishingMonsInfo, - }, - { - .mapGroup = MAP_GROUP(SAFARI_ZONE_NORTHWEST), - .mapNum = MAP_NUM(SAFARI_ZONE_NORTHWEST), - .landMonsInfo = &SafariZone_Northwest_LandMonsInfo, - .waterMonsInfo = &SafariZone_Northwest_WaterMonsInfo, - .rockSmashMonsInfo = NULL, - .fishingMonsInfo = &SafariZone_Northwest_FishingMonsInfo, - }, - { - .mapGroup = MAP_GROUP(SAFARI_ZONE_NORTHEAST), - .mapNum = MAP_NUM(SAFARI_ZONE_NORTHEAST), - .landMonsInfo = &SafariZone_Northeast_LandMonsInfo, - .waterMonsInfo = NULL, - .rockSmashMonsInfo = &SafariZone_Northeast_RockSmashMonsInfo, - .fishingMonsInfo = NULL, - }, - { - .mapGroup = MAP_GROUP(SAFARI_ZONE_SOUTHWEST), - .mapNum = MAP_NUM(SAFARI_ZONE_SOUTHWEST), - .landMonsInfo = &SafariZone_Southwest_LandMonsInfo, - .waterMonsInfo = &SafariZone_Southwest_WaterMonsInfo, - .rockSmashMonsInfo = NULL, - .fishingMonsInfo = &SafariZone_Southwest_FishingMonsInfo, - }, - { - .mapGroup = MAP_GROUP(SAFARI_ZONE_SOUTHEAST), - .mapNum = MAP_NUM(SAFARI_ZONE_SOUTHEAST), - .landMonsInfo = &SafariZone_Southeast_LandMonsInfo, - .waterMonsInfo = NULL, - .rockSmashMonsInfo = NULL, - .fishingMonsInfo = NULL, - }, - { - .mapGroup = MAP_GROUP(DEWFORD_TOWN), - .mapNum = MAP_NUM(DEWFORD_TOWN), - .landMonsInfo = NULL, - .waterMonsInfo = &DewfordTown_WaterMonsInfo, - .rockSmashMonsInfo = NULL, - .fishingMonsInfo = &DewfordTown_FishingMonsInfo, - }, - { - .mapGroup = MAP_GROUP(PACIFIDLOG_TOWN), - .mapNum = MAP_NUM(PACIFIDLOG_TOWN), - .landMonsInfo = NULL, - .waterMonsInfo = &PacifidlogTown_WaterMonsInfo, - .rockSmashMonsInfo = NULL, - .fishingMonsInfo = &PacifidlogTown_FishingMonsInfo, - }, - { - .mapGroup = MAP_GROUP(UNDERWATER1), - .mapNum = MAP_NUM(UNDERWATER1), - .landMonsInfo = NULL, - .waterMonsInfo = &Underwater1_WaterMonsInfo, - .rockSmashMonsInfo = NULL, - .fishingMonsInfo = NULL, - }, - { - .mapGroup = MAP_GROUP(UNDERWATER2), - .mapNum = MAP_NUM(UNDERWATER2), - .landMonsInfo = NULL, - .waterMonsInfo = &Underwater2_WaterMonsInfo, - .rockSmashMonsInfo = NULL, - .fishingMonsInfo = NULL, - }, - { - .mapGroup = MAP_GROUP(UNDEFINED), - .mapNum = MAP_NUM(UNDEFINED), - .landMonsInfo = NULL, - .waterMonsInfo = NULL, - .rockSmashMonsInfo = NULL, - .fishingMonsInfo = NULL, - }, -}; +#include "data/wild_encounters.h" const struct WildPokemon gWildFeebasRoute119Data = {20, 25, SPECIES_FEEBAS}; @@ -3817,47 +149,47 @@ u16 FeebasDebug_GetTrueNumberOfWaterTilesInMapThird(u8 arg0) static u8 ChooseWildMonIndex_Land(void) { - u8 rand = Random() % 100; + u8 rand = Random() % ENCOUNTER_CHANCE_LAND_MONS_TOTAL; - if (rand < 20) //20% chance + if (rand < ENCOUNTER_CHANCE_LAND_MONS_SLOT_0) return 0; - if (rand >= 20 && rand < 40) //20% chance + else if (rand >= ENCOUNTER_CHANCE_LAND_MONS_SLOT_0 && rand < ENCOUNTER_CHANCE_LAND_MONS_SLOT_1) return 1; - if (rand >= 40 && rand < 50) //10% chance + else if (rand >= ENCOUNTER_CHANCE_LAND_MONS_SLOT_1 && rand < ENCOUNTER_CHANCE_LAND_MONS_SLOT_2) return 2; - if (rand >= 50 && rand < 60) //10% chance + else if (rand >= ENCOUNTER_CHANCE_LAND_MONS_SLOT_2 && rand < ENCOUNTER_CHANCE_LAND_MONS_SLOT_3) return 3; - if (rand >= 60 && rand < 70) //10% chance + else if (rand >= ENCOUNTER_CHANCE_LAND_MONS_SLOT_3 && rand < ENCOUNTER_CHANCE_LAND_MONS_SLOT_4) return 4; - if (rand >= 70 && rand < 80) //10% chance + else if (rand >= ENCOUNTER_CHANCE_LAND_MONS_SLOT_4 && rand < ENCOUNTER_CHANCE_LAND_MONS_SLOT_5) return 5; - if (rand >= 80 && rand < 85) //5% chance + else if (rand >= ENCOUNTER_CHANCE_LAND_MONS_SLOT_5 && rand < ENCOUNTER_CHANCE_LAND_MONS_SLOT_6) return 6; - if (rand >= 85 && rand < 90) //5% chance + else if (rand >= ENCOUNTER_CHANCE_LAND_MONS_SLOT_6 && rand < ENCOUNTER_CHANCE_LAND_MONS_SLOT_7) return 7; - if (rand >= 90 && rand < 94) //4% chance + else if (rand >= ENCOUNTER_CHANCE_LAND_MONS_SLOT_7 && rand < ENCOUNTER_CHANCE_LAND_MONS_SLOT_8) return 8; - if (rand >= 94 && rand < 98) //4% chance + else if (rand >= ENCOUNTER_CHANCE_LAND_MONS_SLOT_8 && rand < ENCOUNTER_CHANCE_LAND_MONS_SLOT_9) return 9; - if (rand == 98) //1% chance + else if (rand == ENCOUNTER_CHANCE_LAND_MONS_SLOT_9) return 10; - else //1% chance + else return 11; } static u8 ChooseWildMonIndex_Water(void) { - u8 rand = Random() % 100; + u8 rand = Random() % ENCOUNTER_CHANCE_WATER_MONS_TOTAL; - if (rand < 60) //60% chance + if (rand < ENCOUNTER_CHANCE_WATER_MONS_SLOT_0) return 0; - if (rand >= 60 && rand < 90) //30% chance + else if (rand >= ENCOUNTER_CHANCE_WATER_MONS_SLOT_0 && rand < ENCOUNTER_CHANCE_WATER_MONS_SLOT_1) return 1; - if (rand >= 90 && rand < 95) //5% chance + else if (rand >= ENCOUNTER_CHANCE_WATER_MONS_SLOT_1 && rand < ENCOUNTER_CHANCE_WATER_MONS_SLOT_2) return 2; - if (rand >= 95 && rand < 99) //4% chance + else if (rand >= ENCOUNTER_CHANCE_WATER_MONS_SLOT_2 && rand < ENCOUNTER_CHANCE_WATER_MONS_SLOT_3) return 3; - else //1% chance + else return 4; } @@ -3876,29 +208,29 @@ static u8 ChooseWildMonIndex_Fishing(u8 rod) switch (rod) { case OLD_ROD: - if (rand < 70) //70% chance + if (rand < ENCOUNTER_CHANCE_FISHING_MONS_SLOT_0) wildMonIndex = 0; - else //30% chance + else wildMonIndex = 1; break; case GOOD_ROD: - if (rand < 60) //60% chance + if (rand < ENCOUNTER_CHANCE_FISHING_MONS_SLOT_2) wildMonIndex = 2; - if (rand >= 60 && rand < 80) //20% chance + if (rand >= ENCOUNTER_CHANCE_FISHING_MONS_SLOT_2 && rand < ENCOUNTER_CHANCE_FISHING_MONS_SLOT_3) wildMonIndex = 3; - if (rand >= 80 && rand < 100) //20% chance + if (rand >= ENCOUNTER_CHANCE_FISHING_MONS_SLOT_3 && rand < ENCOUNTER_CHANCE_FISHING_MONS_SLOT_4) wildMonIndex = 4; break; case SUPER_ROD: - if (rand < 40) //40% chance + if (rand < ENCOUNTER_CHANCE_FISHING_MONS_SLOT_5) wildMonIndex = 5; - if (rand >= 40 && rand < 80) //40% chance + if (rand >= ENCOUNTER_CHANCE_FISHING_MONS_SLOT_5 && rand < ENCOUNTER_CHANCE_FISHING_MONS_SLOT_6) wildMonIndex = 6; - if (rand >= 80 && rand < 95) //15% chance + if (rand >= ENCOUNTER_CHANCE_FISHING_MONS_SLOT_6 && rand < ENCOUNTER_CHANCE_FISHING_MONS_SLOT_7) wildMonIndex = 7; - if (rand >= 95 && rand < 99) //4% chance + if (rand >= ENCOUNTER_CHANCE_FISHING_MONS_SLOT_7 && rand < ENCOUNTER_CHANCE_FISHING_MONS_SLOT_8) wildMonIndex = 8; - if (rand == 99) //1% chance + if (rand == ENCOUNTER_CHANCE_FISHING_MONS_SLOT_8) wildMonIndex = 9; break; } |