summaryrefslogtreecommitdiff
path: root/src
diff options
context:
space:
mode:
Diffstat (limited to 'src')
-rw-r--r--src/bard_music.c185
-rw-r--r--src/battle/anim/battle_intro.c2
-rw-r--r--src/battle/anim/current.c236
-rw-r--r--src/battle/anim/dark.c16
-rw-r--r--src/battle/anim/dragon.c8
-rw-r--r--src/battle/anim/fight.c14
-rw-r--r--src/battle/anim/ghost.c6
-rw-r--r--src/battle/anim/ground.c4
-rw-r--r--src/battle/anim/ice.c4
-rw-r--r--src/battle/anim/lunge.c14
-rw-r--r--src/battle/anim/normal.c56
-rw-r--r--src/battle/anim/psychic.c6
-rw-r--r--src/battle/anim/ring.c14
-rw-r--r--src/battle/anim/roots.c6
-rw-r--r--src/battle/anim/tile.c8
-rw-r--r--src/battle/anim/unused_7.c4
-rw-r--r--src/battle/anim/water.c23
-rw-r--r--src/battle/anim/wisp_fire.c4
-rw-r--r--src/battle/anim/withdraw.c6
-rw-r--r--src/battle/battle_anim_80CA710.c18
-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-xsrc/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.c2
-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.c14
-rw-r--r--src/cable_club.c2
-rw-r--r--src/calculate_base_damage.c (renamed from src/battle/calculate_base_damage.c)0
-rw-r--r--src/contest.c37
-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.c4
-rw-r--r--src/credits.c2
-rw-r--r--src/data/.gitignore1
-rw-r--r--src/data/bard_music/actions.h326
-rw-r--r--src/data/bard_music/adjectives.h158
-rw-r--r--src/data/bard_music/bard_sounds.h53
-rw-r--r--src/data/bard_music/battle.h266
-rw-r--r--src/data/bard_music/conditions.h290
-rw-r--r--src/data/bard_music/endings.h290
-rw-r--r--src/data/bard_music/events.h102
-rw-r--r--src/data/bard_music/feelings.h290
-rw-r--r--src/data/bard_music/greetings.h182
-rw-r--r--src/data/bard_music/hobbies.h230
-rw-r--r--src/data/bard_music/length_table.h21
-rw-r--r--src/data/bard_music/lifestyle.h194
-rw-r--r--src/data/bard_music/misc.h182
-rw-r--r--src/data/bard_music/moves.h1410
-rw-r--r--src/data/bard_music/people.h314
-rw-r--r--src/data/bard_music/pokemon.h823
-rw-r--r--src/data/bard_music/pokemon_2.h1018
-rw-r--r--src/data/bard_music/speech.h254
-rw-r--r--src/data/bard_music/status.h450
-rw-r--r--src/data/bard_music/time.h194
-rw-r--r--src/data/bard_music/trainer.h90
-rw-r--r--src/data/bard_music/trendysaying.h146
-rw-r--r--src/data/bard_music/voices.h266
-rw-r--r--src/data/bard_music/word_pitch.h183
-rw-r--r--src/data/bard_music_de.h3699
-rw-r--r--src/data/bard_music_en.h3678
-rw-r--r--src/data/field_event_obj/event_object_graphics_info_pointers.h440
-rw-r--r--src/data/graphics.c17
-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/region_map/city_map_entries.h19
-rw-r--r--src/data/region_map/city_map_tilemaps.h22
-rw-r--r--src/data/text/gift_ribbon_descriptions_de.h208
-rw-r--r--src/data/text/gift_ribbon_descriptions_en.h208
-rw-r--r--src/data/text/ribbon_descriptions_de.h67
-rw-r--r--src/data/text/ribbon_descriptions_en.h85
-rw-r--r--src/data/text/trainer_eye_descriptions_de.h486
-rw-r--r--src/data/text/trainer_eye_descriptions_en.h486
-rw-r--r--src/data/wild_encounters.json18912
-rw-r--r--src/data/wild_encounters.json.txt84
-rw-r--r--src/debug/sound_check_menu.c4
-rw-r--r--src/evolution_scene.c58
-rw-r--r--src/field_door.c6
-rw-r--r--src/fieldmap.c4
-rw-r--r--src/fldeff_flash.c8
-rw-r--r--src/hall_of_fame.c10
-rw-r--r--src/intro.c6
-rw-r--r--src/link.c2
-rw-r--r--src/main_menu.c3
-rw-r--r--src/mauville_man.c14
-rw-r--r--src/option_menu.c2
-rw-r--r--src/overworld.c10
-rw-r--r--src/pokeball.c (renamed from src/battle/pokeball.c)68
-rw-r--r--src/pokeblock_feed.c6
-rw-r--r--src/pokedex.c38
-rw-r--r--src/pokedex_cry_screen.c4
-rw-r--r--src/pokemon_2.c8
-rw-r--r--src/pokemon_3.c30
-rw-r--r--src/pokemon_icon.c880
-rw-r--r--src/pokemon_item_effect.c10
-rw-r--r--src/pokemon_size_record.c14
-rw-r--r--src/pokemon_storage_system_4.c8
-rw-r--r--src/pokemon_summary_screen.c6
-rw-r--r--src/pokenav_before.c1011
-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.c607
-rw-r--r--src/reshow_battle_screen.c (renamed from src/battle/reshow_battle_screen.c)58
-rw-r--r--src/rom3.c317
-rw-r--r--src/rom_8077ABC.c12
-rw-r--r--src/roulette.c6
-rw-r--r--src/roulette_gfx.c8
-rw-r--r--src/smokescreen.c (renamed from src/battle/smokescreen.c)0
-rw-r--r--src/sound.c74
-rw-r--r--src/sprite.c124
-rw-r--r--src/task.c56
-rw-r--r--src/title_screen.c4
-rw-r--r--src/trade.c4
-rw-r--r--src/wild_encounter.c3728
133 files changed, 34101 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/region_map/city_map_entries.h b/src/data/region_map/city_map_entries.h
new file mode 100644
index 000000000..b49ffe4ea
--- /dev/null
+++ b/src/data/region_map/city_map_entries.h
@@ -0,0 +1,19 @@
+const u32 *const gPokenavCityMaps[][2] =
+{
+ {gPokenavCityMap_Littleroot_0, NULL},
+ {gPokenavCityMap_Oldale_0, NULL},
+ {gPokenavCityMap_Dewford_0, NULL},
+ {gPokenavCityMap_Lavaridge_0, NULL},
+ {gPokenavCityMap_Fallarbor_0, NULL},
+ {gPokenavCityMap_Verdanturf_0, NULL},
+ {gPokenavCityMap_Pacifidlog_0, NULL},
+ {gPokenavCityMap_Petalburg_0, NULL},
+ {gPokenavCityMap_Slateport_0, gPokenavCityMap_Slateport_1},
+ {gPokenavCityMap_Mauville_0, gPokenavCityMap_Mauville_1},
+ {gPokenavCityMap_Rustboro_0, gPokenavCityMap_Rustboro_1},
+ {gPokenavCityMap_Fortree_0, NULL},
+ {gPokenavCityMap_Lilycove_0, gPokenavCityMap_Lilycove_1},
+ {gPokenavCityMap_Mossdeep_0, gPokenavCityMap_Mossdeep_1},
+ {gPokenavCityMap_Sootopolis_0, NULL},
+ {gPokenavCityMap_EverGrande_0, gPokenavCityMap_EverGrande_1},
+};
diff --git a/src/data/region_map/city_map_tilemaps.h b/src/data/region_map/city_map_tilemaps.h
new file mode 100644
index 000000000..fed158935
--- /dev/null
+++ b/src/data/region_map/city_map_tilemaps.h
@@ -0,0 +1,22 @@
+const u32 gPokenavCityMap_Lavaridge_0[] = INCBIN_U32("graphics/pokenav/city_maps/lavaridge_0.bin.lz");
+const u32 gPokenavCityMap_Fallarbor_0[] = INCBIN_U32("graphics/pokenav/city_maps/fallarbor_0.bin.lz");
+const u32 gPokenavCityMap_Fortree_0[] = INCBIN_U32("graphics/pokenav/city_maps/fortree_0.bin.lz");
+const u32 gPokenavCityMap_Slateport_0[] = INCBIN_U32("graphics/pokenav/city_maps/slateport_0.bin.lz");
+const u32 gPokenavCityMap_Slateport_1[] = INCBIN_U32("graphics/pokenav/city_maps/slateport_1.bin.lz");
+const u32 gPokenavCityMap_Rustboro_0[] = INCBIN_U32("graphics/pokenav/city_maps/rustboro_0.bin.lz");
+const u32 gPokenavCityMap_Rustboro_1[] = INCBIN_U32("graphics/pokenav/city_maps/rustboro_1.bin.lz");
+const u32 gPokenavCityMap_Pacifidlog_0[] = INCBIN_U32("graphics/pokenav/city_maps/pacifidlog_0.bin.lz");
+const u32 gPokenavCityMap_Mauville_1[] = INCBIN_U32("graphics/pokenav/city_maps/mauville_1.bin.lz");
+const u32 gPokenavCityMap_Mauville_0[] = INCBIN_U32("graphics/pokenav/city_maps/mauville_0.bin.lz");
+const u32 gPokenavCityMap_Oldale_0[] = INCBIN_U32("graphics/pokenav/city_maps/oldale_0.bin.lz");
+const u32 gPokenavCityMap_Lilycove_1[] = INCBIN_U32("graphics/pokenav/city_maps/lilycove_1.bin.lz");
+const u32 gPokenavCityMap_Lilycove_0[] = INCBIN_U32("graphics/pokenav/city_maps/lilycove_0.bin.lz");
+const u32 gPokenavCityMap_Littleroot_0[] = INCBIN_U32("graphics/pokenav/city_maps/littleroot_0.bin.lz");
+const u32 gPokenavCityMap_Dewford_0[] = INCBIN_U32("graphics/pokenav/city_maps/dewford_0.bin.lz");
+const u32 gPokenavCityMap_Sootopolis_0[] = INCBIN_U32("graphics/pokenav/city_maps/sootopolis_0.bin.lz");
+const u32 gPokenavCityMap_EverGrande_0[] = INCBIN_U32("graphics/pokenav/city_maps/ever_grande_0.bin.lz");
+const u32 gPokenavCityMap_EverGrande_1[] = INCBIN_U32("graphics/pokenav/city_maps/ever_grande_1.bin.lz");
+const u32 gPokenavCityMap_Verdanturf_0[] = INCBIN_U32("graphics/pokenav/city_maps/verdanturf_0.bin.lz");
+const u32 gPokenavCityMap_Mossdeep_1[] = INCBIN_U32("graphics/pokenav/city_maps/mossdeep_1.bin.lz");
+const u32 gPokenavCityMap_Mossdeep_0[] = INCBIN_U32("graphics/pokenav/city_maps/mossdeep_0.bin.lz");
+const u32 gPokenavCityMap_Petalburg_0[] = INCBIN_U32("graphics/pokenav/city_maps/petalburg_0.bin.lz");
diff --git a/src/data/text/gift_ribbon_descriptions_de.h b/src/data/text/gift_ribbon_descriptions_de.h
new file mode 100644
index 000000000..6bc57fb2e
--- /dev/null
+++ b/src/data/text/gift_ribbon_descriptions_de.h
@@ -0,0 +1,208 @@
+const u8 gGiftRibbonDescriptionPart1_2003RegionalTourney[] = _(
+ "REGIONALTURNIER 2003");
+
+const u8 gGiftRibbonDescriptionPart2_Champion[] = _(
+ "BAND des CHAMPS");
+
+const u8 gGiftRibbonDescriptionPart1_2003NationalTourney[] = _(
+ "NATIONALTURNIER 2003");
+
+const u8 gGiftRibbonDescriptionPart1_2003GlobalCup[] = _(
+ "WELTPOKAL 2003");
+
+const u8 gGiftRibbonDescriptionPart2_RunnerUp[] = _(
+ "BAND für Platzierungen");
+
+const u8 gGiftRibbonDescriptionPart2_Semifinalist[] = _(
+ "BAND für Halbfinalisten");
+
+const u8 gGiftRibbonDescriptionPart1_2004RegionalTourney[] = _(
+ "REGIONALTURNIER 2004");
+
+const u8 gGiftRibbonDescriptionPart1_2004NationalTourney[] = _(
+ "NATIONALTURNIER 2004");
+
+const u8 gGiftRibbonDescriptionPart1_2004GlobalCup[] = _(
+ "WELTPOKAL 2004");
+
+const u8 gGiftRibbonDescriptionPart1_2005RegionalTourney[] = _(
+ "REGIONALTURNIER 2005");
+
+const u8 gGiftRibbonDescriptionPart1_2005NationalTourney[] = _(
+ "NATIONALTURNIER 2005");
+
+const u8 gGiftRibbonDescriptionPart1_2005GlobalCup[] = _(
+ "WELTPOKAL 2005");
+
+const u8 gGiftRibbonDescriptionPart1_PokemonBattleCup[] = _(
+ "POKéMON-KAMPF-POKAL");
+
+const u8 gGiftRibbonDescriptionPart2_Participation[] = _(
+ "Teilnehmer-BAND");
+
+const u8 gGiftRibbonDescriptionPart1_PokemonLeague[] = _(
+ "POKéMON LIGA");
+
+const u8 gGiftRibbonDescriptionPart1_AdvanceCup[] = _(
+ "TALENTPOKAL");
+
+const u8 gGiftRibbonDescriptionPart1_PokemonTournament[] = _(
+ "POKéMON-Turnier");
+
+const u8 gGiftRibbonDescriptionPart2_Participation2[] = _(
+ "Teilnehmer-BAND");
+
+const u8 gGiftRibbonDescriptionPart1_PokemonEvent[] = _(
+ "POKéMON-Wettkampf");
+
+const u8 gGiftRibbonDescriptionPart1_PokemonFestival[] = _(
+ "POKéMON-Festival");
+
+const u8 gGiftRibbonDescriptionPart1_DifficultyClearing[] = _(
+ "Schw.-Grad-Abschl.");
+
+const u8 gGiftRibbonDescriptionPart2_Commemorative[] = _(
+ "Gedenk-BAND");
+
+const u8 gGiftRibbonDescriptionPart1_ClearingAllDifficulties[] = _(
+ "BAND für erf. Abschluss");
+
+const u8 gGiftRibbonDescriptionPart2_ClearingAllDifficulties[] = _(
+ "aller Schwierigk.-Grade.");
+
+const u8 gGiftRibbonDescriptionPart1_100StraightWin[] = _(
+ "100. Sieg in Folge");
+
+const u8 gGiftRibbonDescriptionPart1_DarknessTower[] = _(
+ "APOKELIPSE-TURM fertig");
+
+const u8 gGiftRibbonDescriptionPart1_RedTower[] = _(
+ "ROTER TURM fertig");
+
+const u8 gGiftRibbonDescriptionPart1_BlackironTower[] = _(
+ "EISERNER TURM fertig");
+
+const u8 gGiftRibbonDescriptionPart1_FinalTower[] = _(
+ "FINAL-TURM-Abschluss");
+
+const u8 gGiftRibbonDescriptionPart1_LegendMaking[] = _(
+ "Legendäres");
+
+const u8 gGiftRibbonDescriptionPart1_PokemonCenterTokyo[] = _(
+ "POKéMON-CENTER TOKIO");
+
+const u8 gGiftRibbonDescriptionPart1_PokemonCenterOsaka[] = _(
+ "POKéMON-CENTER OSAKA");
+
+const u8 gGiftRibbonDescriptionPart1_PokemonCenterNagoya[] = _(
+ "POKéMON-CENTER NAGOYA");
+
+const u8 gGiftRibbonDescriptionPart1_PokemonCenterNY[] = _(
+ "POKéMON-CENTER N. Y.");
+
+const u8 gGiftRibbonDescriptionPart1_SummerHolidays[] = _(
+ "Sommerferien-BAND");
+
+const u8 gGiftRibbonDescriptionPart2_EmptyString[] = _(
+ "");
+
+const u8 gGiftRibbonDescriptionPart1_WinterHolidays[] = _(
+ "Weihnachtsferien-BAND");
+
+const u8 gGiftRibbonDescriptionPart1_SpringHolidays[] = _(
+ "Osterferien-BAND");
+
+const u8 gGiftRibbonDescriptionPart1_Evergreen[] = _(
+ "Evergreen-BAND");
+
+const u8 gGiftRibbonDescriptionPart1_SpecialHoliday[] = _(
+ "Sonderurlaubs-BAND");
+
+const u8 gGiftRibbonDescriptionPart1_HardWorker[] = _(
+ "Fleiß-BAND");
+
+const u8 gGiftRibbonDescriptionPart1_LotsOfFriends[] = _(
+ "Beliebtheits-BAND");
+
+const u8 gGiftRibbonDescriptionPart1_FullOfEnergy[] = _(
+ "Energie-BAND");
+
+const u8 gGiftRibbonDescriptionPart1_LovedPokemon[] = _(
+ "Ein Gedenk-BAND für ein");
+
+const u8 gGiftRibbonDescriptionPart2_LovedPokemon[] = _(
+ "beliebtes POKéMON.");
+
+const u8 gGiftRibbonDescriptionPart1_LoveForPokemon[] = _(
+ "Ein BAND für POKéMON-");
+
+const u8 gGiftRibbonDescriptionPart2_LoveForPokemon[] = _(
+ "Freunde.");
+
+const u8 *const gGiftRibbonDescriptions[][2] =
+{
+ {gGiftRibbonDescriptionPart1_2003RegionalTourney, gGiftRibbonDescriptionPart2_Champion},
+ {gGiftRibbonDescriptionPart1_2003NationalTourney, gGiftRibbonDescriptionPart2_Champion},
+ {gGiftRibbonDescriptionPart1_2003GlobalCup, gGiftRibbonDescriptionPart2_Champion},
+ {gGiftRibbonDescriptionPart1_2003RegionalTourney, gGiftRibbonDescriptionPart2_RunnerUp},
+ {gGiftRibbonDescriptionPart1_2003NationalTourney, gGiftRibbonDescriptionPart2_RunnerUp},
+ {gGiftRibbonDescriptionPart1_2003GlobalCup, gGiftRibbonDescriptionPart2_RunnerUp},
+ {gGiftRibbonDescriptionPart1_2003RegionalTourney, gGiftRibbonDescriptionPart2_Semifinalist},
+ {gGiftRibbonDescriptionPart1_2003NationalTourney, gGiftRibbonDescriptionPart2_Semifinalist},
+ {gGiftRibbonDescriptionPart1_2003GlobalCup, gGiftRibbonDescriptionPart2_Semifinalist},
+ {gGiftRibbonDescriptionPart1_2004RegionalTourney, gGiftRibbonDescriptionPart2_Champion},
+ {gGiftRibbonDescriptionPart1_2004NationalTourney, gGiftRibbonDescriptionPart2_Champion},
+ {gGiftRibbonDescriptionPart1_2004GlobalCup, gGiftRibbonDescriptionPart2_Champion},
+ {gGiftRibbonDescriptionPart1_2004RegionalTourney, gGiftRibbonDescriptionPart2_RunnerUp},
+ {gGiftRibbonDescriptionPart1_2004NationalTourney, gGiftRibbonDescriptionPart2_RunnerUp},
+ {gGiftRibbonDescriptionPart1_2004GlobalCup, gGiftRibbonDescriptionPart2_RunnerUp},
+ {gGiftRibbonDescriptionPart1_2004RegionalTourney, gGiftRibbonDescriptionPart2_Semifinalist},
+ {gGiftRibbonDescriptionPart1_2004NationalTourney, gGiftRibbonDescriptionPart2_Semifinalist},
+ {gGiftRibbonDescriptionPart1_2004GlobalCup, gGiftRibbonDescriptionPart2_Semifinalist},
+ {gGiftRibbonDescriptionPart1_2005RegionalTourney, gGiftRibbonDescriptionPart2_Champion},
+ {gGiftRibbonDescriptionPart1_2005NationalTourney, gGiftRibbonDescriptionPart2_Champion},
+ {gGiftRibbonDescriptionPart1_2005GlobalCup, gGiftRibbonDescriptionPart2_Champion},
+ {gGiftRibbonDescriptionPart1_2005RegionalTourney, gGiftRibbonDescriptionPart2_RunnerUp},
+ {gGiftRibbonDescriptionPart1_2005NationalTourney, gGiftRibbonDescriptionPart2_RunnerUp},
+ {gGiftRibbonDescriptionPart1_2005GlobalCup, gGiftRibbonDescriptionPart2_RunnerUp},
+ {gGiftRibbonDescriptionPart1_2005RegionalTourney, gGiftRibbonDescriptionPart2_Semifinalist},
+ {gGiftRibbonDescriptionPart1_2005NationalTourney, gGiftRibbonDescriptionPart2_Semifinalist},
+ {gGiftRibbonDescriptionPart1_2005GlobalCup, gGiftRibbonDescriptionPart2_Semifinalist},
+ {gGiftRibbonDescriptionPart1_PokemonBattleCup, gGiftRibbonDescriptionPart2_Champion},
+ {gGiftRibbonDescriptionPart1_PokemonBattleCup, gGiftRibbonDescriptionPart2_RunnerUp},
+ {gGiftRibbonDescriptionPart1_PokemonBattleCup, gGiftRibbonDescriptionPart2_Semifinalist},
+ {gGiftRibbonDescriptionPart1_PokemonBattleCup, gGiftRibbonDescriptionPart2_Participation},
+ {gGiftRibbonDescriptionPart1_PokemonLeague, gGiftRibbonDescriptionPart2_Champion},
+ {gGiftRibbonDescriptionPart1_PokemonLeague, gGiftRibbonDescriptionPart2_RunnerUp},
+ {gGiftRibbonDescriptionPart1_PokemonLeague, gGiftRibbonDescriptionPart2_Semifinalist},
+ {gGiftRibbonDescriptionPart1_PokemonLeague, gGiftRibbonDescriptionPart2_Participation},
+ {gGiftRibbonDescriptionPart1_AdvanceCup, gGiftRibbonDescriptionPart2_Champion},
+ {gGiftRibbonDescriptionPart1_AdvanceCup, gGiftRibbonDescriptionPart2_RunnerUp},
+ {gGiftRibbonDescriptionPart1_AdvanceCup, gGiftRibbonDescriptionPart2_Semifinalist},
+ {gGiftRibbonDescriptionPart1_AdvanceCup, gGiftRibbonDescriptionPart2_Participation},
+ {gGiftRibbonDescriptionPart1_PokemonTournament, gGiftRibbonDescriptionPart2_Participation2},
+ {gGiftRibbonDescriptionPart1_PokemonEvent, gGiftRibbonDescriptionPart2_Participation2},
+ {gGiftRibbonDescriptionPart1_PokemonFestival, gGiftRibbonDescriptionPart2_Participation2},
+ {gGiftRibbonDescriptionPart1_DifficultyClearing, gGiftRibbonDescriptionPart2_Commemorative},
+ {gGiftRibbonDescriptionPart1_ClearingAllDifficulties, gGiftRibbonDescriptionPart2_ClearingAllDifficulties},
+ {gGiftRibbonDescriptionPart1_100StraightWin, gGiftRibbonDescriptionPart2_Commemorative},
+ {gGiftRibbonDescriptionPart1_DarknessTower, gGiftRibbonDescriptionPart2_Commemorative},
+ {gGiftRibbonDescriptionPart1_RedTower, gGiftRibbonDescriptionPart2_Commemorative},
+ {gGiftRibbonDescriptionPart1_BlackironTower, gGiftRibbonDescriptionPart2_Commemorative},
+ {gGiftRibbonDescriptionPart1_FinalTower, gGiftRibbonDescriptionPart2_Commemorative},
+ {gGiftRibbonDescriptionPart1_LegendMaking, gGiftRibbonDescriptionPart2_Commemorative},
+ {gGiftRibbonDescriptionPart1_PokemonCenterTokyo, gGiftRibbonDescriptionPart2_Commemorative},
+ {gGiftRibbonDescriptionPart1_PokemonCenterOsaka, gGiftRibbonDescriptionPart2_Commemorative},
+ {gGiftRibbonDescriptionPart1_PokemonCenterNagoya, gGiftRibbonDescriptionPart2_Commemorative},
+ {gGiftRibbonDescriptionPart1_PokemonCenterNY, gGiftRibbonDescriptionPart2_Commemorative},
+ {gGiftRibbonDescriptionPart1_SummerHolidays, gGiftRibbonDescriptionPart2_EmptyString},
+ {gGiftRibbonDescriptionPart1_WinterHolidays, gGiftRibbonDescriptionPart2_EmptyString},
+ {gGiftRibbonDescriptionPart1_SpringHolidays, gGiftRibbonDescriptionPart2_EmptyString},
+ {gGiftRibbonDescriptionPart1_Evergreen, gGiftRibbonDescriptionPart2_EmptyString},
+ {gGiftRibbonDescriptionPart1_SpecialHoliday, gGiftRibbonDescriptionPart2_EmptyString},
+ {gGiftRibbonDescriptionPart1_HardWorker, gGiftRibbonDescriptionPart2_EmptyString},
+ {gGiftRibbonDescriptionPart1_LotsOfFriends, gGiftRibbonDescriptionPart2_EmptyString},
+ {gGiftRibbonDescriptionPart1_FullOfEnergy, gGiftRibbonDescriptionPart2_EmptyString},
+ {gGiftRibbonDescriptionPart1_LovedPokemon, gGiftRibbonDescriptionPart2_LovedPokemon},
+ {gGiftRibbonDescriptionPart1_LoveForPokemon, gGiftRibbonDescriptionPart2_LoveForPokemon},
+};
diff --git a/src/data/text/gift_ribbon_descriptions_en.h b/src/data/text/gift_ribbon_descriptions_en.h
new file mode 100644
index 000000000..14229a22a
--- /dev/null
+++ b/src/data/text/gift_ribbon_descriptions_en.h
@@ -0,0 +1,208 @@
+const u8 gGiftRibbonDescriptionPart1_2003RegionalTourney[] = _(
+ "2003 REGIONAL TOURNEY");
+
+const u8 gGiftRibbonDescriptionPart2_Champion[] = _(
+ "CHAMPION RIBBON");
+
+const u8 gGiftRibbonDescriptionPart1_2003NationalTourney[] = _(
+ "2003 NATIONAL TOURNEY");
+
+const u8 gGiftRibbonDescriptionPart1_2003GlobalCup[] = _(
+ "2003 GLOBAL CUP");
+
+const u8 gGiftRibbonDescriptionPart2_RunnerUp[] = _(
+ "Runner-up RIBBON");
+
+const u8 gGiftRibbonDescriptionPart2_Semifinalist[] = _(
+ "Semifinalist RIBBON");
+
+const u8 gGiftRibbonDescriptionPart1_2004RegionalTourney[] = _(
+ "2004 REGIONAL TOURNEY");
+
+const u8 gGiftRibbonDescriptionPart1_2004NationalTourney[] = _(
+ "2004 NATIONAL TOURNEY");
+
+const u8 gGiftRibbonDescriptionPart1_2004GlobalCup[] = _(
+ "2004 GLOBAL CUP");
+
+const u8 gGiftRibbonDescriptionPart1_2005RegionalTourney[] = _(
+ "2005 REGIONAL TOURNEY");
+
+const u8 gGiftRibbonDescriptionPart1_2005NationalTourney[] = _(
+ "2005 NATIONAL TOURNEY");
+
+const u8 gGiftRibbonDescriptionPart1_2005GlobalCup[] = _(
+ "2005 GLOBAL CUP");
+
+const u8 gGiftRibbonDescriptionPart1_PokemonBattleCup[] = _(
+ "POKéMON BATTLE CUP");
+
+const u8 gGiftRibbonDescriptionPart2_Participation[] = _(
+ "Participation RIBBON");
+
+const u8 gGiftRibbonDescriptionPart1_PokemonLeague[] = _(
+ "POKéMON LEAGUE");
+
+const u8 gGiftRibbonDescriptionPart1_AdvanceCup[] = _(
+ "ADVANCE CUP");
+
+const u8 gGiftRibbonDescriptionPart1_PokemonTournament[] = _(
+ "POKéMON Tournament");
+
+const u8 gGiftRibbonDescriptionPart2_Participation2[] = _(
+ "Participation RIBBON");
+
+const u8 gGiftRibbonDescriptionPart1_PokemonEvent[] = _(
+ "POKéMON Event");
+
+const u8 gGiftRibbonDescriptionPart1_PokemonFestival[] = _(
+ "POKéMON Festival");
+
+const u8 gGiftRibbonDescriptionPart1_DifficultyClearing[] = _(
+ "Difficulty-clearing");
+
+const u8 gGiftRibbonDescriptionPart2_Commemorative[] = _(
+ "Commemorative RIBBON");
+
+const u8 gGiftRibbonDescriptionPart1_ClearingAllDifficulties[] = _(
+ "RIBBON awarded for");
+
+const u8 gGiftRibbonDescriptionPart2_ClearingAllDifficulties[] = _(
+ "clearing all difficulties.");
+
+const u8 gGiftRibbonDescriptionPart1_100StraightWin[] = _(
+ "100-straight Win");
+
+const u8 gGiftRibbonDescriptionPart1_DarknessTower[] = _(
+ "DARKNESS TOWER Clear");
+
+const u8 gGiftRibbonDescriptionPart1_RedTower[] = _(
+ "RED TOWER Clear");
+
+const u8 gGiftRibbonDescriptionPart1_BlackironTower[] = _(
+ "BLACKIRON TOWER Clear");
+
+const u8 gGiftRibbonDescriptionPart1_FinalTower[] = _(
+ "FINAL TOWER Clear");
+
+const u8 gGiftRibbonDescriptionPart1_LegendMaking[] = _(
+ "Legend-making");
+
+const u8 gGiftRibbonDescriptionPart1_PokemonCenterTokyo[] = _(
+ "POKéMON CENTER TOKYO");
+
+const u8 gGiftRibbonDescriptionPart1_PokemonCenterOsaka[] = _(
+ "POKéMON CENTER OSAKA");
+
+const u8 gGiftRibbonDescriptionPart1_PokemonCenterNagoya[] = _(
+ "POKéMON CENTER NAGOYA");
+
+const u8 gGiftRibbonDescriptionPart1_PokemonCenterNY[] = _(
+ "POKéMON CENTER NY");
+
+const u8 gGiftRibbonDescriptionPart1_SummerHolidays[] = _(
+ "Summer Holidays RIBBON");
+
+const u8 gGiftRibbonDescriptionPart2_EmptyString[] = _(
+ "");
+
+const u8 gGiftRibbonDescriptionPart1_WinterHolidays[] = _(
+ "Winter Holidays RIBBON");
+
+const u8 gGiftRibbonDescriptionPart1_SpringHolidays[] = _(
+ "Spring Holidays RIBBON");
+
+const u8 gGiftRibbonDescriptionPart1_Evergreen[] = _(
+ "Evergreen RIBBON");
+
+const u8 gGiftRibbonDescriptionPart1_SpecialHoliday[] = _(
+ "Special Holiday RIBBON");
+
+const u8 gGiftRibbonDescriptionPart1_HardWorker[] = _(
+ "Hard Worker RIBBON");
+
+const u8 gGiftRibbonDescriptionPart1_LotsOfFriends[] = _(
+ "Lots of Friends RIBBON");
+
+const u8 gGiftRibbonDescriptionPart1_FullOfEnergy[] = _(
+ "Full of Energy RIBBON");
+
+const u8 gGiftRibbonDescriptionPart1_LovedPokemon[] = _(
+ "A commemorative RIBBON");
+
+const u8 gGiftRibbonDescriptionPart2_LovedPokemon[] = _(
+ "for a loved POKéMON.");
+
+const u8 gGiftRibbonDescriptionPart1_LoveForPokemon[] = _(
+ "RIBBON that shows");
+
+const u8 gGiftRibbonDescriptionPart2_LoveForPokemon[] = _(
+ "love for POKéMON.");
+
+const u8 *const gGiftRibbonDescriptions[][2] =
+{
+ {gGiftRibbonDescriptionPart1_2003RegionalTourney, gGiftRibbonDescriptionPart2_Champion},
+ {gGiftRibbonDescriptionPart1_2003NationalTourney, gGiftRibbonDescriptionPart2_Champion},
+ {gGiftRibbonDescriptionPart1_2003GlobalCup, gGiftRibbonDescriptionPart2_Champion},
+ {gGiftRibbonDescriptionPart1_2003RegionalTourney, gGiftRibbonDescriptionPart2_RunnerUp},
+ {gGiftRibbonDescriptionPart1_2003NationalTourney, gGiftRibbonDescriptionPart2_RunnerUp},
+ {gGiftRibbonDescriptionPart1_2003GlobalCup, gGiftRibbonDescriptionPart2_RunnerUp},
+ {gGiftRibbonDescriptionPart1_2003RegionalTourney, gGiftRibbonDescriptionPart2_Semifinalist},
+ {gGiftRibbonDescriptionPart1_2003NationalTourney, gGiftRibbonDescriptionPart2_Semifinalist},
+ {gGiftRibbonDescriptionPart1_2003GlobalCup, gGiftRibbonDescriptionPart2_Semifinalist},
+ {gGiftRibbonDescriptionPart1_2004RegionalTourney, gGiftRibbonDescriptionPart2_Champion},
+ {gGiftRibbonDescriptionPart1_2004NationalTourney, gGiftRibbonDescriptionPart2_Champion},
+ {gGiftRibbonDescriptionPart1_2004GlobalCup, gGiftRibbonDescriptionPart2_Champion},
+ {gGiftRibbonDescriptionPart1_2004RegionalTourney, gGiftRibbonDescriptionPart2_RunnerUp},
+ {gGiftRibbonDescriptionPart1_2004NationalTourney, gGiftRibbonDescriptionPart2_RunnerUp},
+ {gGiftRibbonDescriptionPart1_2004GlobalCup, gGiftRibbonDescriptionPart2_RunnerUp},
+ {gGiftRibbonDescriptionPart1_2004RegionalTourney, gGiftRibbonDescriptionPart2_Semifinalist},
+ {gGiftRibbonDescriptionPart1_2004NationalTourney, gGiftRibbonDescriptionPart2_Semifinalist},
+ {gGiftRibbonDescriptionPart1_2004GlobalCup, gGiftRibbonDescriptionPart2_Semifinalist},
+ {gGiftRibbonDescriptionPart1_2005RegionalTourney, gGiftRibbonDescriptionPart2_Champion},
+ {gGiftRibbonDescriptionPart1_2005NationalTourney, gGiftRibbonDescriptionPart2_Champion},
+ {gGiftRibbonDescriptionPart1_2005GlobalCup, gGiftRibbonDescriptionPart2_Champion},
+ {gGiftRibbonDescriptionPart1_2005RegionalTourney, gGiftRibbonDescriptionPart2_RunnerUp},
+ {gGiftRibbonDescriptionPart1_2005NationalTourney, gGiftRibbonDescriptionPart2_RunnerUp},
+ {gGiftRibbonDescriptionPart1_2005GlobalCup, gGiftRibbonDescriptionPart2_RunnerUp},
+ {gGiftRibbonDescriptionPart1_2005RegionalTourney, gGiftRibbonDescriptionPart2_Semifinalist},
+ {gGiftRibbonDescriptionPart1_2005NationalTourney, gGiftRibbonDescriptionPart2_Semifinalist},
+ {gGiftRibbonDescriptionPart1_2005GlobalCup, gGiftRibbonDescriptionPart2_Semifinalist},
+ {gGiftRibbonDescriptionPart1_PokemonBattleCup, gGiftRibbonDescriptionPart2_Champion},
+ {gGiftRibbonDescriptionPart1_PokemonBattleCup, gGiftRibbonDescriptionPart2_RunnerUp},
+ {gGiftRibbonDescriptionPart1_PokemonBattleCup, gGiftRibbonDescriptionPart2_Semifinalist},
+ {gGiftRibbonDescriptionPart1_PokemonBattleCup, gGiftRibbonDescriptionPart2_Participation},
+ {gGiftRibbonDescriptionPart1_PokemonLeague, gGiftRibbonDescriptionPart2_Champion},
+ {gGiftRibbonDescriptionPart1_PokemonLeague, gGiftRibbonDescriptionPart2_RunnerUp},
+ {gGiftRibbonDescriptionPart1_PokemonLeague, gGiftRibbonDescriptionPart2_Semifinalist},
+ {gGiftRibbonDescriptionPart1_PokemonLeague, gGiftRibbonDescriptionPart2_Participation},
+ {gGiftRibbonDescriptionPart1_AdvanceCup, gGiftRibbonDescriptionPart2_Champion},
+ {gGiftRibbonDescriptionPart1_AdvanceCup, gGiftRibbonDescriptionPart2_RunnerUp},
+ {gGiftRibbonDescriptionPart1_AdvanceCup, gGiftRibbonDescriptionPart2_Semifinalist},
+ {gGiftRibbonDescriptionPart1_AdvanceCup, gGiftRibbonDescriptionPart2_Participation},
+ {gGiftRibbonDescriptionPart1_PokemonTournament, gGiftRibbonDescriptionPart2_Participation2},
+ {gGiftRibbonDescriptionPart1_PokemonEvent, gGiftRibbonDescriptionPart2_Participation2},
+ {gGiftRibbonDescriptionPart1_PokemonFestival, gGiftRibbonDescriptionPart2_Participation2},
+ {gGiftRibbonDescriptionPart1_DifficultyClearing, gGiftRibbonDescriptionPart2_Commemorative},
+ {gGiftRibbonDescriptionPart1_ClearingAllDifficulties, gGiftRibbonDescriptionPart2_ClearingAllDifficulties},
+ {gGiftRibbonDescriptionPart1_100StraightWin, gGiftRibbonDescriptionPart2_Commemorative},
+ {gGiftRibbonDescriptionPart1_DarknessTower, gGiftRibbonDescriptionPart2_Commemorative},
+ {gGiftRibbonDescriptionPart1_RedTower, gGiftRibbonDescriptionPart2_Commemorative},
+ {gGiftRibbonDescriptionPart1_BlackironTower, gGiftRibbonDescriptionPart2_Commemorative},
+ {gGiftRibbonDescriptionPart1_FinalTower, gGiftRibbonDescriptionPart2_Commemorative},
+ {gGiftRibbonDescriptionPart1_LegendMaking, gGiftRibbonDescriptionPart2_Commemorative},
+ {gGiftRibbonDescriptionPart1_PokemonCenterTokyo, gGiftRibbonDescriptionPart2_Commemorative},
+ {gGiftRibbonDescriptionPart1_PokemonCenterOsaka, gGiftRibbonDescriptionPart2_Commemorative},
+ {gGiftRibbonDescriptionPart1_PokemonCenterNagoya, gGiftRibbonDescriptionPart2_Commemorative},
+ {gGiftRibbonDescriptionPart1_PokemonCenterNY, gGiftRibbonDescriptionPart2_Commemorative},
+ {gGiftRibbonDescriptionPart1_SummerHolidays, gGiftRibbonDescriptionPart2_EmptyString},
+ {gGiftRibbonDescriptionPart1_WinterHolidays, gGiftRibbonDescriptionPart2_EmptyString},
+ {gGiftRibbonDescriptionPart1_SpringHolidays, gGiftRibbonDescriptionPart2_EmptyString},
+ {gGiftRibbonDescriptionPart1_Evergreen, gGiftRibbonDescriptionPart2_EmptyString},
+ {gGiftRibbonDescriptionPart1_SpecialHoliday, gGiftRibbonDescriptionPart2_EmptyString},
+ {gGiftRibbonDescriptionPart1_HardWorker, gGiftRibbonDescriptionPart2_EmptyString},
+ {gGiftRibbonDescriptionPart1_LotsOfFriends, gGiftRibbonDescriptionPart2_EmptyString},
+ {gGiftRibbonDescriptionPart1_FullOfEnergy, gGiftRibbonDescriptionPart2_EmptyString},
+ {gGiftRibbonDescriptionPart1_LovedPokemon, gGiftRibbonDescriptionPart2_LovedPokemon},
+ {gGiftRibbonDescriptionPart1_LoveForPokemon, gGiftRibbonDescriptionPart2_LoveForPokemon},
+};
diff --git a/src/data/text/ribbon_descriptions_de.h b/src/data/text/ribbon_descriptions_de.h
new file mode 100644
index 000000000..2fef7fb7b
--- /dev/null
+++ b/src/data/text/ribbon_descriptions_de.h
@@ -0,0 +1,67 @@
+const u8 gRibbonDescriptionPart1_Champion[] = _(
+ "BAND für unschlagbare");
+const u8 gRibbonDescriptionPart2_Champion[] = _(
+ "RUHMESHALLE-Mitglieder");
+const u8 gRibbonDescriptionPart1_CoolContest[] = _(
+ "COOLNESS-WETTBEWERB");
+const u8 gRibbonDescriptionPart1_BeautyContest[] = _(
+ "SCHÖNHEITSWETTBEWERB");
+const u8 gRibbonDescriptionPart1_CuteContest[] = _(
+ "ANMUT-WETTBEWERB");
+const u8 gRibbonDescriptionPart1_SmartContest[] = _(
+ "KLUGHEITSWETTBEWERB");
+const u8 gRibbonDescriptionPart1_ToughContest[] = _(
+ "STÄRKE-WETTBEWERB");
+const u8 gRibbonDescriptionPart2_NormalRank[] = _(
+ "Sieger in Normal-Klasse!");
+const u8 gRibbonDescriptionPart2_SuperRank[] = _(
+ "Sieger in Super-Klasse!");
+const u8 gRibbonDescriptionPart2_HyperRank[] = _(
+ "Sieger in Hyper-Klasse!");
+const u8 gRibbonDescriptionPart2_MasterRank[] = _(
+ "Sieger in Master-Klasse!");
+const u8 gRibbonDescriptionPart1_Winning[] = _(
+ "BAND für Lv. 50-Erfolg");
+const u8 gRibbonDescriptionPart2_Winning[] = _(
+ "im DUELLTURM.");
+const u8 gRibbonDescriptionPart1_Victory[] = _(
+ "Für Erfolg in Lv. 100");
+const u8 gRibbonDescriptionPart2_Victory[] = _(
+ "im DUELLTURM.");
+const u8 gRibbonDescriptionPart1_Artist[] = _(
+ "Band für auserwählte");
+const u8 gRibbonDescriptionPart2_Artist[] = _(
+ "Porträt-Modelle.");
+const u8 gRibbonDescriptionPart1_Effort[] = _(
+ "BAND für");
+const u8 gRibbonDescriptionPart2_Effort[] = _(
+ "fleißige Arbeiter.");
+
+const u8 *const gRibbonDescriptions[][2] =
+{
+ {gRibbonDescriptionPart1_Champion, gRibbonDescriptionPart2_Champion},
+ {gRibbonDescriptionPart1_CoolContest, gRibbonDescriptionPart2_NormalRank},
+ {gRibbonDescriptionPart1_CoolContest, gRibbonDescriptionPart2_SuperRank},
+ {gRibbonDescriptionPart1_CoolContest, gRibbonDescriptionPart2_HyperRank},
+ {gRibbonDescriptionPart1_CoolContest, gRibbonDescriptionPart2_MasterRank},
+ {gRibbonDescriptionPart1_BeautyContest, gRibbonDescriptionPart2_NormalRank},
+ {gRibbonDescriptionPart1_BeautyContest, gRibbonDescriptionPart2_SuperRank},
+ {gRibbonDescriptionPart1_BeautyContest, gRibbonDescriptionPart2_HyperRank},
+ {gRibbonDescriptionPart1_BeautyContest, gRibbonDescriptionPart2_MasterRank},
+ {gRibbonDescriptionPart1_CuteContest, gRibbonDescriptionPart2_NormalRank},
+ {gRibbonDescriptionPart1_CuteContest, gRibbonDescriptionPart2_SuperRank},
+ {gRibbonDescriptionPart1_CuteContest, gRibbonDescriptionPart2_HyperRank},
+ {gRibbonDescriptionPart1_CuteContest, gRibbonDescriptionPart2_MasterRank},
+ {gRibbonDescriptionPart1_SmartContest, gRibbonDescriptionPart2_NormalRank},
+ {gRibbonDescriptionPart1_SmartContest, gRibbonDescriptionPart2_SuperRank},
+ {gRibbonDescriptionPart1_SmartContest, gRibbonDescriptionPart2_HyperRank},
+ {gRibbonDescriptionPart1_SmartContest, gRibbonDescriptionPart2_MasterRank},
+ {gRibbonDescriptionPart1_ToughContest, gRibbonDescriptionPart2_NormalRank},
+ {gRibbonDescriptionPart1_ToughContest, gRibbonDescriptionPart2_SuperRank},
+ {gRibbonDescriptionPart1_ToughContest, gRibbonDescriptionPart2_HyperRank},
+ {gRibbonDescriptionPart1_ToughContest, gRibbonDescriptionPart2_MasterRank},
+ {gRibbonDescriptionPart1_Winning, gRibbonDescriptionPart2_Winning},
+ {gRibbonDescriptionPart1_Victory, gRibbonDescriptionPart2_Victory},
+ {gRibbonDescriptionPart1_Artist, gRibbonDescriptionPart2_Artist},
+ {gRibbonDescriptionPart1_Effort, gRibbonDescriptionPart2_Effort},
+};
diff --git a/src/data/text/ribbon_descriptions_en.h b/src/data/text/ribbon_descriptions_en.h
new file mode 100644
index 000000000..5a314d2a6
--- /dev/null
+++ b/src/data/text/ribbon_descriptions_en.h
@@ -0,0 +1,85 @@
+const u8 gRibbonDescriptionPart1_Champion[] = _(
+ "CHAMPION-beating, HALL");
+
+const u8 gRibbonDescriptionPart2_Champion[] = _(
+ "OF FAME Member RIBBON");
+
+const u8 gRibbonDescriptionPart1_CoolContest[] = _(
+ "COOL CONTEST");
+
+const u8 gRibbonDescriptionPart1_BeautyContest[] = _(
+ "BEAUTY CONTEST");
+
+const u8 gRibbonDescriptionPart1_CuteContest[] = _(
+ "CUTE CONTEST");
+
+const u8 gRibbonDescriptionPart1_SmartContest[] = _(
+ "SMART CONTEST");
+
+const u8 gRibbonDescriptionPart1_ToughContest[] = _(
+ "TOUGH CONTEST");
+
+const u8 gRibbonDescriptionPart2_NormalRank[] = _(
+ "Normal Rank winner!");
+
+const u8 gRibbonDescriptionPart2_SuperRank[] = _(
+ "Super Rank winner!");
+
+const u8 gRibbonDescriptionPart2_HyperRank[] = _(
+ "Hyper Rank winner!");
+
+const u8 gRibbonDescriptionPart2_MasterRank[] = _(
+ "Master Rank winner!");
+
+const u8 gRibbonDescriptionPart1_Winning[] = _(
+ "RIBBON for clearing LV50");
+
+const u8 gRibbonDescriptionPart2_Winning[] = _(
+ "at the BATTLE TOWER.");
+
+const u8 gRibbonDescriptionPart1_Victory[] = _(
+ "Won for clearing LV100");
+
+const u8 gRibbonDescriptionPart2_Victory[] = _(
+ "at the BATTLE TOWER.");
+
+const u8 gRibbonDescriptionPart1_Artist[] = _(
+ "RIBBON for being chosen");
+
+const u8 gRibbonDescriptionPart2_Artist[] = _(
+ "as a super sketch model.");
+
+const u8 gRibbonDescriptionPart1_Effort[] = _(
+ "RIBBON awarded for");
+
+const u8 gRibbonDescriptionPart2_Effort[] = _(
+ "being a hard worker.");
+
+const u8 *const gRibbonDescriptions[][2] =
+{
+ {gRibbonDescriptionPart1_Champion, gRibbonDescriptionPart2_Champion},
+ {gRibbonDescriptionPart1_CoolContest, gRibbonDescriptionPart2_NormalRank},
+ {gRibbonDescriptionPart1_CoolContest, gRibbonDescriptionPart2_SuperRank},
+ {gRibbonDescriptionPart1_CoolContest, gRibbonDescriptionPart2_HyperRank},
+ {gRibbonDescriptionPart1_CoolContest, gRibbonDescriptionPart2_MasterRank},
+ {gRibbonDescriptionPart1_BeautyContest, gRibbonDescriptionPart2_NormalRank},
+ {gRibbonDescriptionPart1_BeautyContest, gRibbonDescriptionPart2_SuperRank},
+ {gRibbonDescriptionPart1_BeautyContest, gRibbonDescriptionPart2_HyperRank},
+ {gRibbonDescriptionPart1_BeautyContest, gRibbonDescriptionPart2_MasterRank},
+ {gRibbonDescriptionPart1_CuteContest, gRibbonDescriptionPart2_NormalRank},
+ {gRibbonDescriptionPart1_CuteContest, gRibbonDescriptionPart2_SuperRank},
+ {gRibbonDescriptionPart1_CuteContest, gRibbonDescriptionPart2_HyperRank},
+ {gRibbonDescriptionPart1_CuteContest, gRibbonDescriptionPart2_MasterRank},
+ {gRibbonDescriptionPart1_SmartContest, gRibbonDescriptionPart2_NormalRank},
+ {gRibbonDescriptionPart1_SmartContest, gRibbonDescriptionPart2_SuperRank},
+ {gRibbonDescriptionPart1_SmartContest, gRibbonDescriptionPart2_HyperRank},
+ {gRibbonDescriptionPart1_SmartContest, gRibbonDescriptionPart2_MasterRank},
+ {gRibbonDescriptionPart1_ToughContest, gRibbonDescriptionPart2_NormalRank},
+ {gRibbonDescriptionPart1_ToughContest, gRibbonDescriptionPart2_SuperRank},
+ {gRibbonDescriptionPart1_ToughContest, gRibbonDescriptionPart2_HyperRank},
+ {gRibbonDescriptionPart1_ToughContest, gRibbonDescriptionPart2_MasterRank},
+ {gRibbonDescriptionPart1_Winning, gRibbonDescriptionPart2_Winning},
+ {gRibbonDescriptionPart1_Victory, gRibbonDescriptionPart2_Victory},
+ {gRibbonDescriptionPart1_Artist, gRibbonDescriptionPart2_Artist},
+ {gRibbonDescriptionPart1_Effort, gRibbonDescriptionPart2_Effort},
+};
diff --git a/src/data/text/trainer_eye_descriptions_de.h b/src/data/text/trainer_eye_descriptions_de.h
new file mode 100644
index 000000000..4f3be5fe4
--- /dev/null
+++ b/src/data/text/trainer_eye_descriptions_de.h
@@ -0,0 +1,486 @@
+static const u8 TrainerEyeDescription_AromaLady_Rose[] = _(
+ "Emotionen beruhigen.$"
+ "Duftende PFLANZEN-PKMN.$"
+ "Beruhigende Aromen reini-$"
+ "gen Körper und Geist.");
+
+static const u8 TrainerEyeDescription_RuinManiac_Dusty[] = _(
+ "Durch Stärke überzeugen!$"
+ "Felsige GESTEINS-PKMN.$"
+ "Während des Studiums der$"
+ "Antike sehe ich die Welt.");
+
+static const u8 TrainerEyeDescription_Tuber_Lola[] = _(
+ "Ich strenge mich stets an!$"
+ "PKMN, die gut schwimmen.$"
+ "Ich würde gerne ohne den$"
+ "Reifen schwimmen können.");
+
+static const u8 TrainerEyeDescription_Tuber_Ricky[] = _(
+ "Ich versuche einfach alles.$"
+ "WASSER-PKMN sind Kumpel.$"
+ "Ich kann schwimmen! Ich$"
+ "mag halt den Schwimmreifen!");
+
+static const u8 TrainerEyeDescription_SisAndBro_RitaAndSam[] = _(
+ "Wir teilen die Arbeit auf.$"
+ "Wir lieben freundliche PKMN.$"
+ "Wir teilen die Liebe zu den$"
+ "PKMN. Wir sind Geschwister!");
+
+static const u8 TrainerEyeDescription_Cooltrainer_Brooke[] = _(
+ "Schwächen erkennen.$"
+ "Gleichgewicht ist wichtig.$"
+ "Mein Ziel ist es, der$"
+ "PKMN-CHAMP zu werden.");
+
+static const u8 TrainerEyeDescription_Cooltrainer_Wilton[] = _(
+ "Den Gegner umwerfen.$"
+ "Der PKMN-Typ ist unwichtig.$"
+ "Ich bin der beste Schüler$"
+ "der PKMN TRAINERSCHULE.");
+
+static const u8 TrainerEyeDescription_HexManiac_Valerie[] = _(
+ "Langsames Niederringen.$"
+ "Nachts Furcht einflößend.$"
+ "Ich sehe Dinge, die den$"
+ "anderen verborgen sind...");
+
+static const u8 TrainerEyeDescription_Lady_Cindy[] = _(
+ "Alles, was zum Sieg führt.$"
+ "Hinreißende Wesen!$"
+ "Ich habe zu Hause einen$"
+ "Pool für meine PKMN.");
+
+static const u8 TrainerEyeDescription_Beauty_Jessica[] = _(
+ "Ich bringe dich vom Weg ab.$"
+ "Niedlich, natürlich!$"
+ "Ich liebe die SAFARI-ZONE,$"
+ "dort werde ich bleiben.");
+
+static const u8 TrainerEyeDescription_RichBoy_Winston[] = _(
+ "Wer braucht Strategie?!?$"
+ "Alle, die gut und teuer sind.$"
+ "Ich bin reich. Und daher$"
+ "besitze ich ein PKMN-Bett.");
+
+static const u8 TrainerEyeDescription_PokeManiac_Steve[] = _(
+ "Durch Stärke gewinnen!$"
+ "Habe sie nachts gefangen...$"
+ "Große, kräftige und zähe$"
+ "POKéMON sind die besten...");
+
+static const u8 TrainerEyeDescription_Swimmer_Tony[] = _(
+ "Volle Pulle zuschlagen!$"
+ "Funky WASSER-PKMN!$"
+ "Wenn ich nicht schwimme,$"
+ "stemme ich Gewichte!");
+
+static const u8 TrainerEyeDescription_BlackBelt_Nob[] = _(
+ "Immer gewinnen!$"
+ "KAMPF-PKMN!$"
+ "Ohne zu prahlen: Ich kann$"
+ "10 Ziegel zerschmettern!");
+
+static const u8 TrainerEyeDescription_Guitarist_Dalton[] = _(
+ "Ich elektrisiere dich!$"
+ "Es sind ELEKTRO-PKMN.$"
+ "Ich bringe die Menschen mit$"
+ "meinen Liedern zum Weinen.");
+
+static const u8 TrainerEyeDescription_Kindler_Bernie[] = _(
+ "Alles niederbrennen!$"
+ "Feuergefährliche POKéMON!$"
+ "Neben einem Lagerfeuer$"
+ "sollte stets Wasser stehen!");
+
+static const u8 TrainerEyeDescription_Camper_Ethan[] = _(
+ "Man muss hartnäckig sein.$"
+ "Jede Art von POKéMON.$"
+ "PKMN, die in der Wildnis auf-$"
+ "wachsen, werden stark!");
+
+static const u8 TrainerEyeDescription_OldCouple_JohnAndJay[] = _(
+ "Unsere Liebe schlägt alles.$"
+ "Wir haben sie seit Jahren.$"
+ "In 50 Jahren Ehe waren$"
+ "wir den PKMN immer treu.");
+
+static const u8 TrainerEyeDescription_BugManiac_Brandon[] = _(
+ "Wellenförmiger Angriff!$"
+ "KÄFER-PKMN sind cool!$"
+ "Ich gehe jeden Tag in den$"
+ "Wald, KÄFER-PKMN fangen.");
+
+static const u8 TrainerEyeDescription_Psychic_Cameron[] = _(
+ "Schwächen und verwirren!$"
+ "Solche mit irren Kräften.$"
+ "Ich kann deine Gedanken$"
+ "klar und deutlich lesen.");
+
+static const u8 TrainerEyeDescription_Psychic_Jacki[] = _(
+ "Mit vollem Einsatz kämpfen.$"
+ "Geheimnisvolle POKéMON.$"
+ "Wenn ich spreche,$"
+ "setze ich Telepathie ein.");
+
+static const u8 TrainerEyeDescription_Gentleman_Walter[] = _(
+ "Ruhig, gesammelt vorgehen.$"
+ "Ganz verschiedene PKMN.$"
+ "Wir genießen die tägliche$"
+ "Tasse Tee.");
+
+static const u8 TrainerEyeDescription_SchoolKid_Karen[] = _(
+ "Ich kämpfe mit Köpfchen.$"
+ "Ich liebe jedes PKMN.$"
+ "Schreibe ich gute Noten,$"
+ "gibt Papi mir Geld.");
+
+static const u8 TrainerEyeDescription_SchoolKid_Jerry[] = _(
+ "Mein Wissen ist Macht!$"
+ "Jedes clevere PKMN.$"
+ "Ich will später ein großer$"
+ "PKMN-Forscher werden.");
+
+static const u8 TrainerEyeDescription_SrAndJr_AnnaAndMeg[] = _(
+ "Wir sprechen uns ab.$"
+ "PKMN, die wir beide mögen.$"
+ "Wir sind Senior und Junior$"
+ "im Studium der PKMN.");
+
+static const u8 TrainerEyeDescription_Pokefan_Isabel[] = _(
+ "Los geht's, meine Lieben!$"
+ "Ich mag sie alle!$"
+ "Auch beim Einkaufen lasse$"
+ "ich keinen Kampf aus!");
+
+static const u8 TrainerEyeDescription_Pokefan_Miguel[] = _(
+ "Ich kämpfe mit dem Herzen.$"
+ "PKMN, die Liebe erfahren!$"
+ "PKMN und Menschen müssen$"
+ "Vertrauen aufbauen!");
+
+static const u8 TrainerEyeDescription_Expert_Timothy[] = _(
+ "Ich durchschaue Gegner!$"
+ "Die Basis des Kampfes.$"
+ "Ich bin noch nicht bereit,$"
+ "Jüngeren Platz zu machen.");
+
+static const u8 TrainerEyeDescription_Expert_Shelby[] = _(
+ "Angriff als Verteidigung!$"
+ "KAMPF-PKMN!$"
+ "Ich bin alt und habe daher$"
+ "meinen eigenen Stil.");
+
+static const u8 TrainerEyeDescription_Youngster_Calvin[] = _(
+ "Ich tue, was ich kann.$"
+ "Verschiedene Arten.$"
+ "Ich will irgendwann einen$"
+ "ARENALEITER besiegen!");
+
+static const u8 TrainerEyeDescription_Fisherman_Elliot[] = _(
+ "Geduld und Spucke.$"
+ "WASSER-PKMN!$"
+ "Niemand vor mir hat je$"
+ "etwas Größeres gefangen!");
+
+static const u8 TrainerEyeDescription_Triathlete_Abigail[] = _(
+ "Verteidigung ist die Basis.$"
+ "Kraftvolle PKMN!$"
+ "Dies war als Diät gedacht,$"
+ "jetzt ist es mein Hobby.");
+
+static const u8 TrainerEyeDescription_Triathlete_Benjamin[] = _(
+ "Weiter, immer weiter!$"
+ "Die Stärke von STAHL...$"
+ "Wenn du schwitzt, musst du$"
+ "regelmäßig etwas trinken!");
+
+static const u8 TrainerEyeDescription_Triathlete_Isaiah[] = _(
+ "Die Umgebung erforschen.$"
+ "WASSER-PKMN!$"
+ "Ich lasse mich nicht von$"
+ "Strandhäschen besiegen.");
+
+static const u8 TrainerEyeDescription_Triathlete_Katelyn[] = _(
+ "Stets Offensive zeigen!$"
+ "Nur WASSER-PKMN...$"
+ "Ich muss jeden Tag$"
+ "10 Kilometer schwimmen.");
+
+static const u8 TrainerEyeDescription_Triathlete_Maria[] = _(
+ "Geschwindigkeit ist alles!$"
+ "Ich liebe schnelle PKMN.$"
+ "Beim Marathon forderst du$"
+ "dich selbst heraus.");
+
+static const u8 TrainerEyeDescription_Triathlete_Dylan[] = _(
+ "Schneller als andere sein.$"
+ "Ein rasend schnelles PKMN!$"
+ "Rennt man rasend schnell,$"
+ "wird man eins mit dem Wind.");
+
+static const u8 TrainerEyeDescription_DragonTamer_Nicolas[] = _(
+ "Die Stärke der PKMN nutzen.$"
+ "Sieh die Macht der DRACHEN!$"
+ "Eines Tages werde ich zur$"
+ "Legende!!!");
+
+static const u8 TrainerEyeDescription_BirdKeeper_Robert[] = _(
+ "Ich zeige dir die Technik!$"
+ "Elegant kreisende VÖGEL.$"
+ "Meine VOGEL-PKMN bringen$"
+ "dem Mädchen meine Liebe!");
+
+static const u8 TrainerEyeDescription_NinjaBoy_Lao[] = _(
+ "Du wirst Gift schmecken!$"
+ "Giftige PKMN.$"
+ "Ich trainiere hart, um ein$"
+ "Ninja zu werden.");
+
+static const u8 TrainerEyeDescription_BattleGirl_Cyndy[] = _(
+ "Der Erstschlag siegt!$"
+ "Schnelle KAMPF-PKMN.$"
+ "Wenn mein PKMN verliert,$"
+ "kämpfe ich doch weiter.");
+
+static const u8 TrainerEyeDescription_ParasolLady_Madeline[] = _(
+ "Los, los, meine PKMN!$"
+ "Ich mag alle PKMN.$"
+ "UV-Strahlen sind die Feinde$"
+ "der Haut. Creme dich ein!");
+
+static const u8 TrainerEyeDescription_Swimmer_Jenny[] = _(
+ "Keine Gnade!$"
+ "Niedliche WASSER-PKMN.$"
+ "Ich habe zu viele Fans, ich$"
+ "war nämlich im Fernsehen.");
+
+static const u8 TrainerEyeDescription_Picnicker_Diana[] = _(
+ "Ich probiere dies und das.$"
+ "Ich liebe alle PKMN.$"
+ "Was liegt hinter diesem$"
+ "hohen Berg dort?");
+
+static const u8 TrainerEyeDescription_Twins_AmyAndLiv[] = _(
+ "Wir kämpfen zusammen!$"
+ "Wir trainieren zusammen!$"
+ "Wir lieben die gleichen PKMN$"
+ "und verschiedene Desserts.");
+
+static const u8 TrainerEyeDescription_Sailor_Ernest[] = _(
+ "Ich setze Stärke ein.$"
+ "WASSER- und KAMPF-PKMN.$"
+ "Matrosen sind raue Typen!$"
+ "Irgendwelche Einwände?");
+
+static const u8 TrainerEyeDescription_Collector_Edwin[] = _(
+ "PKMN vor Schaden bewahren.$"
+ "Ich liebe seltene PKMN.$"
+ "Ich möchte seltene PKMN$"
+ "aus aller Welt sammeln.");
+
+static const u8 TrainerEyeDescription_PkmnBreeder_Lydia[] = _(
+ "Meine Stärke...$"
+ "PKMN sind meine Kinder.$"
+ "Man benötigt Wissen und$"
+ "Liebe im Umgang mit PKMN.");
+
+static const u8 TrainerEyeDescription_PkmnBreeder_Isaac[] = _(
+ "Angriff aus vollen Rohren!$"
+ "Jedes PKMN kommt in Frage.$"
+ "Ich gebe ihnen {POKEBLOCK}, um$"
+ "in WETTBEWERBEN zu siegen.");
+
+static const u8 TrainerEyeDescription_PkmnRanger_Catherine[] = _(
+ "Ich glaube an meine PKMN.$"
+ "Ich liebe starke PKMN.$"
+ "Ich bilde meine PKMN zu$"
+ "einem Rettungsteam aus.");
+
+static const u8 TrainerEyeDescription_PkmnRanger_Jackson[] = _(
+ "Ich greife in Etappen an.$"
+ "Verschiedene Arten.$"
+ "Umweltverschmutzern darf$"
+ "man niemals vergeben!");
+
+static const u8 TrainerEyeDescription_Lass_Haley[] = _(
+ "Ich zeige meinen Mut.$"
+ "Ich liebe niedliche PKMN!$"
+ "Nach einem Kampf gehe ich$"
+ "mit meinen PKMN schwimmen.");
+
+static const u8 TrainerEyeDescription_BugCatcher_James[] = _(
+ "Blitzschnelle Attacken.$"
+ "KÄFER-PKMN sind das Beste!$"
+ "Um KÄFER-PKMN zu fangen,$"
+ "musst du früh aufstehen.");
+
+static const u8 TrainerEyeDescription_Hiker_Trent[] = _(
+ "Ich kämpfe mit Stärke.$"
+ "PKMN mit hartem Körper.$"
+ "Ich habe diese Wanderung$"
+ "einen Monat vorbereitet.");
+
+static const u8 TrainerEyeDescription_YoungCouple_LoisAndHal[] = _(
+ "Liebevolle Strategie!$"
+ "Liebevolle PKMN!$"
+ "Wir sind liebevoll!$"
+ "Immer liebevoll!");
+
+static const u8 TrainerEyeDescription_PkmnTrainer_Wally[] = _(
+ "Wir lassen alles raus.$"
+ "Das 1. PKMN, das ich fing.$"
+ "Die PKMN und ich sind$"
+ "zusammen gewachsen.");
+
+static const u8 TrainerEyeDescription_Leader_Roxanne[] = _(
+ "Steinharte Attacken.$"
+ "Steinharte PKMN...$"
+ "Ich möchte durch Kämpfe$"
+ "alles über PKMN lernen.");
+
+static const u8 TrainerEyeDescription_Leader_Brawly[] = _(
+ "Direkte physische Attacke.$"
+ "Ich baue auf KAMPF-PKMN.$"
+ "Die Welt erwartet mich, als$"
+ "neuen, starken Kämpfer.");
+
+static const u8 TrainerEyeDescription_Leader_Wattson[] = _(
+ "Elektrisieren... Britzel...$"
+ "Elektrizität bestimmt alles.$"
+ "Hahahahaha! Lachen hält$"
+ "gesund und jung!");
+
+static const u8 TrainerEyeDescription_Leader_Flannery[] = _(
+ "Aggressiv kämpfen.$"
+ "Brennen vor Leidenschaft!$"
+ "Spül die tägliche Müdigkeit$"
+ "in den Heißen Quellen ab.");
+
+static const u8 TrainerEyeDescription_Leader_Norman[] = _(
+ "Mein Stil ist flexibel.$"
+ "Gleichmäßig gewachsen.$"
+ "PKMN sind mein Leben. Mein$"
+ "Weg des Lebens ist steinig.");
+
+static const u8 TrainerEyeDescription_Leader_Winona[] = _(
+ "Ich nutze die Initiative.$"
+ "Anmutige Himmelstänzer.$"
+ "Ich sehe das Auf und Ab$"
+ "der Winde.");
+
+static const u8 TrainerEyeDescription_Leader_TateAndLiza[] = _(
+ "Wir kämpfen zusammen.$"
+ "Immer freundliche PKMN.$"
+ "Wir verstehen uns.$"
+ "Und wir verstehen andere.");
+
+static const u8 TrainerEyeDescription_Leader_Wallace[] = _(
+ "Würde und Respekt.$"
+ "Ich liebe anmutige PKMN.$"
+ "Wasserillusionen unter-$"
+ "streichen meinen Stil.");
+
+static const u8 TrainerEyeDescription_EliteFour_Sidney[] = _(
+ "Offensive vor Defensive.$"
+ "Das Schöne des UNLICHTS.$"
+ "Du kannst sagen, was du$"
+ "willst, Macht ist alles!");
+
+static const u8 TrainerEyeDescription_EliteFour_Phoebe[] = _(
+ "Verwirrend verwirren.$"
+ "Keine besondere Vorliebe.$"
+ "Wie es wohl meiner Oma am$"
+ "PYROBERG geht?");
+
+static const u8 TrainerEyeDescription_EliteFour_Glacia[] = _(
+ "Ich setze Items ein.$"
+ "Flammendes Inferno in Eis.$"
+ "Der EIS-Typ entwickelt$"
+ "sich gut an warmen Orten.");
+
+static const u8 TrainerEyeDescription_EliteFour_Drake[] = _(
+ "Starke Fähigkeiten nutzen.$"
+ "Die rohe Kraft der DRACHEN.$"
+ "Beim täglichen Kampf lerne$"
+ "ich alles über PKMN.");
+
+static const u8 TrainerEyeDescription_Champion_Steven[] = _(
+ "Die gegn. Schwäche nutzen.$"
+ "Das ultimative STAHL-PKMN.$"
+ "Wenn es drauf ankommt,$"
+ "bin ich am stärksten!");
+
+const u8 *const gTrainerEyeDescriptions[] =
+{
+ TrainerEyeDescription_AromaLady_Rose,
+ TrainerEyeDescription_RuinManiac_Dusty,
+ TrainerEyeDescription_Tuber_Lola,
+ TrainerEyeDescription_Tuber_Ricky,
+ TrainerEyeDescription_SisAndBro_RitaAndSam,
+ TrainerEyeDescription_Cooltrainer_Brooke,
+ TrainerEyeDescription_Cooltrainer_Wilton,
+ TrainerEyeDescription_HexManiac_Valerie,
+ TrainerEyeDescription_Lady_Cindy,
+ TrainerEyeDescription_Beauty_Jessica,
+ TrainerEyeDescription_RichBoy_Winston,
+ TrainerEyeDescription_PokeManiac_Steve,
+ TrainerEyeDescription_Swimmer_Tony,
+ TrainerEyeDescription_BlackBelt_Nob,
+ TrainerEyeDescription_Guitarist_Dalton,
+ TrainerEyeDescription_Kindler_Bernie,
+ TrainerEyeDescription_Camper_Ethan,
+ TrainerEyeDescription_OldCouple_JohnAndJay,
+ TrainerEyeDescription_BugManiac_Brandon,
+ TrainerEyeDescription_Psychic_Cameron,
+ TrainerEyeDescription_Psychic_Jacki,
+ TrainerEyeDescription_Gentleman_Walter,
+ TrainerEyeDescription_SchoolKid_Karen,
+ TrainerEyeDescription_SchoolKid_Jerry,
+ TrainerEyeDescription_SrAndJr_AnnaAndMeg,
+ TrainerEyeDescription_Pokefan_Isabel,
+ TrainerEyeDescription_Pokefan_Miguel,
+ TrainerEyeDescription_Expert_Timothy,
+ TrainerEyeDescription_Expert_Shelby,
+ TrainerEyeDescription_Youngster_Calvin,
+ TrainerEyeDescription_Fisherman_Elliot,
+ TrainerEyeDescription_Triathlete_Abigail,
+ TrainerEyeDescription_Triathlete_Benjamin,
+ TrainerEyeDescription_Triathlete_Isaiah,
+ TrainerEyeDescription_Triathlete_Katelyn,
+ TrainerEyeDescription_Triathlete_Maria,
+ TrainerEyeDescription_Triathlete_Dylan,
+ TrainerEyeDescription_DragonTamer_Nicolas,
+ TrainerEyeDescription_BirdKeeper_Robert,
+ TrainerEyeDescription_NinjaBoy_Lao,
+ TrainerEyeDescription_BattleGirl_Cyndy,
+ TrainerEyeDescription_ParasolLady_Madeline,
+ TrainerEyeDescription_Swimmer_Jenny,
+ TrainerEyeDescription_Picnicker_Diana,
+ TrainerEyeDescription_Twins_AmyAndLiv,
+ TrainerEyeDescription_Sailor_Ernest,
+ TrainerEyeDescription_Collector_Edwin,
+ TrainerEyeDescription_PkmnBreeder_Lydia,
+ TrainerEyeDescription_PkmnBreeder_Isaac,
+ TrainerEyeDescription_PkmnRanger_Catherine,
+ TrainerEyeDescription_PkmnRanger_Jackson,
+ TrainerEyeDescription_Lass_Haley,
+ TrainerEyeDescription_BugCatcher_James,
+ TrainerEyeDescription_Hiker_Trent,
+ TrainerEyeDescription_YoungCouple_LoisAndHal,
+ TrainerEyeDescription_PkmnTrainer_Wally,
+ TrainerEyeDescription_Leader_Roxanne,
+ TrainerEyeDescription_Leader_Brawly,
+ TrainerEyeDescription_Leader_Wattson,
+ TrainerEyeDescription_Leader_Flannery,
+ TrainerEyeDescription_Leader_Norman,
+ TrainerEyeDescription_Leader_Winona,
+ TrainerEyeDescription_Leader_TateAndLiza,
+ TrainerEyeDescription_Leader_Wallace,
+ TrainerEyeDescription_EliteFour_Sidney,
+ TrainerEyeDescription_EliteFour_Phoebe,
+ TrainerEyeDescription_EliteFour_Glacia,
+ TrainerEyeDescription_EliteFour_Drake,
+ TrainerEyeDescription_Champion_Steven
+};
diff --git a/src/data/text/trainer_eye_descriptions_en.h b/src/data/text/trainer_eye_descriptions_en.h
new file mode 100644
index 000000000..bc07c3f5b
--- /dev/null
+++ b/src/data/text/trainer_eye_descriptions_en.h
@@ -0,0 +1,486 @@
+static const u8 TrainerEyeDescription_AromaLady_Rose[] = _(
+ "Becalm fighting emotions.$"
+ "Fragrant GRASS POKéMON$"
+ "Soothing aromas make the$"
+ "body and mind healthy.");
+
+static const u8 TrainerEyeDescription_RuinManiac_Dusty[] = _(
+ "Overwhelm with power!$"
+ "Craggy ROCK POKéMON$"
+ "In search of ancient lore,$"
+ "I travel the world.");
+
+static const u8 TrainerEyeDescription_Tuber_Lola[] = _(
+ "I'm going to try hard!$"
+ "Good swimmer POKéMON$"
+ "I wish I could swim without$"
+ "using an inner tube.");
+
+static const u8 TrainerEyeDescription_Tuber_Ricky[] = _(
+ "I don't know. I'll try hard.$"
+ "WATER POKéMON are buddies.$"
+ "It's not like I can't swim.$"
+ "I just like my inner tube.");
+
+static const u8 TrainerEyeDescription_SisAndBro_RitaAndSam[] = _(
+ "We split our duties.$"
+ "We like friendly POKéMON.$"
+ "We enjoy POKéMON together$"
+ "as sister and brother.");
+
+static const u8 TrainerEyeDescription_Cooltrainer_Brooke[] = _(
+ "Exploit the foe's weakness.$"
+ "Balance is crucial.$"
+ "My goal is to become the$"
+ "POKéMON CHAMPION.");
+
+static const u8 TrainerEyeDescription_Cooltrainer_Wilton[] = _(
+ "Upset the opponent.$"
+ "Type doesn't matter.$"
+ "I'm a top student at the$"
+ "TRAINER'S SCHOOL.");
+
+static const u8 TrainerEyeDescription_HexManiac_Valerie[] = _(
+ "Slow, steady suffering$"
+ "Scary to meet at night.$"
+ "I see things that others$"
+ "can't see...");
+
+static const u8 TrainerEyeDescription_Lady_Cindy[] = _(
+ "Anything to win.$"
+ "Gorgeous type!$"
+ "I have a pool specially for$"
+ "my POKéMON at home.");
+
+static const u8 TrainerEyeDescription_Beauty_Jessica[] = _(
+ "I'll lead you astray.$"
+ "Cute, of course.$"
+ "I love the SAFARI ZONE.$"
+ "I seem to end up there.");
+
+static const u8 TrainerEyeDescription_RichBoy_Winston[] = _(
+ "Strategy? Who needs it?$"
+ "I spent big money on it!$"
+ "I, being rich, sleep in a$"
+ "custom POKéMON bed.");
+
+static const u8 TrainerEyeDescription_PokeManiac_Steve[] = _(
+ "Wrestle down with power.$"
+ "Took all night to catch...$"
+ "Big, burly, and buff$"
+ "POKéMON are the best...");
+
+static const u8 TrainerEyeDescription_Swimmer_Tony[] = _(
+ "Ram at full speed!$"
+ "Funky WATER type!$"
+ "If I can't be out swimming,$"
+ "I'll be pumping weights.");
+
+static const u8 TrainerEyeDescription_BlackBelt_Nob[] = _(
+ "Grand slam pummeling!$"
+ "FIGHTING type$"
+ "Not to brag, but I can bust$"
+ "ten roof tiles!");
+
+static const u8 TrainerEyeDescription_Guitarist_Dalton[] = _(
+ "I'll electrify you!$"
+ "They're ELECTRIC!$"
+ "I want to make people cry$"
+ "with songs from my heart.");
+
+static const u8 TrainerEyeDescription_Kindler_Bernie[] = _(
+ "Burn it all down!$"
+ "Burn-inducing POKéMON$"
+ "When you light a campfire,$"
+ "be sure there's some water.");
+
+static const u8 TrainerEyeDescription_Camper_Ethan[] = _(
+ "Hang in and be tenacious!$"
+ "I'll raise any POKéMON.$"
+ "POKéMON raised in the wild$"
+ "grow strong!");
+
+static const u8 TrainerEyeDescription_OldCouple_JohnAndJay[] = _(
+ "Our love lets us prevail.$"
+ "We've had them for years.$"
+ "Married 50 years, we've$"
+ "devotedly raised POKéMON.");
+
+static const u8 TrainerEyeDescription_BugManiac_Brandon[] = _(
+ "Attack in waves!$"
+ "BUG POKéMON are cool.$"
+ "I go into the forest every$"
+ "day to catch BUG POKéMON.");
+
+static const u8 TrainerEyeDescription_Psychic_Cameron[] = _(
+ "Daze and confuse!$"
+ "Ones with weird powers.$"
+ "I can see through exactly$"
+ "what you're thinking!");
+
+static const u8 TrainerEyeDescription_Psychic_Jacki[] = _(
+ "Battle at full power.$"
+ "POKéMON of many mysteries$"
+ "When we spoke, I was really$"
+ "using telepathy.");
+
+static const u8 TrainerEyeDescription_Gentleman_Walter[] = _(
+ "Calm and collected.$"
+ "POKéMON of distinction$"
+ "We enjoy a spot of tea$"
+ "every day. It's imported.");
+
+static const u8 TrainerEyeDescription_SchoolKid_Karen[] = _(
+ "I use my head to battle.$"
+ "I love any kind of POKéMON!$"
+ "My daddy gives me spending$"
+ "money if I ace a test.");
+
+static const u8 TrainerEyeDescription_SchoolKid_Jerry[] = _(
+ "My knowledge rules!$"
+ "Any smart POKéMON!$"
+ "I want to be a POKéMON$"
+ "researcher in the future.");
+
+static const u8 TrainerEyeDescription_SrAndJr_AnnaAndMeg[] = _(
+ "We talk it over first.$"
+ "POKéMON that we both like.$"
+ "We're senior and junior$"
+ "students into POKéMON!");
+
+static const u8 TrainerEyeDescription_Pokefan_Isabel[] = _(
+ "Go for it, my dears!$"
+ "I have no likes or dislikes.$"
+ "While out shopping for$"
+ "supper, I battle too.");
+
+static const u8 TrainerEyeDescription_Pokefan_Miguel[] = _(
+ "I battle with love!$"
+ "A POKéMON raised with love!$"
+ "It's important to build$"
+ "trust with your POKéMON.");
+
+static const u8 TrainerEyeDescription_Expert_Timothy[] = _(
+ "I see through your moves!$"
+ "The essence of FIGHTING.$"
+ "I'm not ready to give way$"
+ "to the young yet!");
+
+static const u8 TrainerEyeDescription_Expert_Shelby[] = _(
+ "Attack while defending$"
+ "The FIGHTING type$"
+ "Being old, I have my own$"
+ "style of battling.");
+
+static const u8 TrainerEyeDescription_Youngster_Calvin[] = _(
+ "I do what I can.$"
+ "I use different types.$"
+ "I'm going to keep working$"
+ "until I beat a GYM LEADER.");
+
+static const u8 TrainerEyeDescription_Fisherman_Elliot[] = _(
+ "I battle patiently.$"
+ "WATER POKéMON to battle!$"
+ "I'm the world's only guy to$"
+ "catch a huge POKéMON!");
+
+static const u8 TrainerEyeDescription_Triathlete_Abigail[] = _(
+ "Defense is crucial.$"
+ "My POKéMON is solid.$"
+ "I started this for dieting,$"
+ "but I got right into it.");
+
+static const u8 TrainerEyeDescription_Triathlete_Benjamin[] = _(
+ "Push and push again!$"
+ "The strength of STEEL$"
+ "If you're sweating, get$"
+ "fluids into you regularly.");
+
+static const u8 TrainerEyeDescription_Triathlete_Isaiah[] = _(
+ "Exploit the environment!$"
+ "All hail the WATER type!$"
+ "I won't be beaten by some$"
+ "beach bum SWIMMER!");
+
+static const u8 TrainerEyeDescription_Triathlete_Katelyn[] = _(
+ "All-out offensive!$"
+ "WATER POKéMON rule!$"
+ "I must swim over 6 miles$"
+ "every day.");
+
+static const u8 TrainerEyeDescription_Triathlete_Maria[] = _(
+ "Speed above all!$"
+ "I use a speedy POKéMON.$"
+ "A marathon is a challenge$"
+ "against your own self.");
+
+static const u8 TrainerEyeDescription_Triathlete_Dylan[] = _(
+ "Strike before stricken!$"
+ "A fast-running POKéMON!$"
+ "If you ran and ran, you'd$"
+ "become one with the wind.");
+
+static const u8 TrainerEyeDescription_DragonTamer_Nicolas[] = _(
+ "It's about POKéMON power!$"
+ "See the power of DRAGONS!$"
+ "I'll become legendary as the$"
+ "strongest one day!");
+
+static const u8 TrainerEyeDescription_BirdKeeper_Robert[] = _(
+ "I'll show you my technique!$"
+ "Elegantly wheeling BIRDS$"
+ "My BIRD POKéMON, deliver my$"
+ "love to that girl!");
+
+static const u8 TrainerEyeDescription_NinjaBoy_Lao[] = _(
+ "You'll suffer from poison!$"
+ "Poisonous POKéMON$"
+ "I undertake training so$"
+ "that I may become a ninja.");
+
+static const u8 TrainerEyeDescription_BattleGirl_Cyndy[] = _(
+ "The first strike wins!$"
+ "Speedy FIGHTING type$"
+ "If my POKéMON lose,$"
+ "I'll carry on the fight!");
+
+static const u8 TrainerEyeDescription_ParasolLady_Madeline[] = _(
+ "Go, go, my POKéMON!$"
+ "I'll raise anything.$"
+ "UV rays are your skin's$"
+ "enemy. Get protected.");
+
+static const u8 TrainerEyeDescription_Swimmer_Jenny[] = _(
+ "No mercy!$"
+ "Cute WATER POKéMON$"
+ "I have too many fans.$"
+ "I was interviewed on TV.");
+
+static const u8 TrainerEyeDescription_Picnicker_Diana[] = _(
+ "I think about this & that.$"
+ "I like all POKéMON.$"
+ "What lies beyond that$"
+ "yonder hill?");
+
+static const u8 TrainerEyeDescription_Twins_AmyAndLiv[] = _(
+ "We battle together!$"
+ "We train together!$"
+ "We like the same POKéMON,$"
+ "but different desserts.");
+
+static const u8 TrainerEyeDescription_Sailor_Ernest[] = _(
+ "I force things with power!$"
+ "WATER and FIGHTING types$"
+ "Seamen are rough spirits!$"
+ "Any complaints?");
+
+static const u8 TrainerEyeDescription_Collector_Edwin[] = _(
+ "Protect POKéMON from harm.$"
+ "I love rare POKéMON.$"
+ "I want to collect all the$"
+ "world's rare POKéMON.");
+
+static const u8 TrainerEyeDescription_PkmnBreeder_Lydia[] = _(
+ "I count on power.$"
+ "POKéMON are my children.$"
+ "It takes knowledge and$"
+ "love to raise POKéMON.");
+
+static const u8 TrainerEyeDescription_PkmnBreeder_Isaac[] = _(
+ "Full-on attack!$"
+ "Anything. I'll raise it.$"
+ "I give them {POKEBLOCK}S for$"
+ "going after CONTEST titles.");
+
+static const u8 TrainerEyeDescription_PkmnRanger_Catherine[] = _(
+ "I believe in my POKéMON.$"
+ "I like strong POKéMON.$"
+ "I'm training for rescue$"
+ "work with my POKéMON.");
+
+static const u8 TrainerEyeDescription_PkmnRanger_Jackson[] = _(
+ "I attack in waves.$"
+ "Different types$"
+ "Those who destroy nature$"
+ "must never be forgiven!");
+
+static const u8 TrainerEyeDescription_Lass_Haley[] = _(
+ "I'll show you some guts!$"
+ "Cute POKéMON are my faves!$"
+ "After a battle, I always$"
+ "bathe with my POKéMON.");
+
+static const u8 TrainerEyeDescription_BugCatcher_James[] = _(
+ "Lightning-fast attack!$"
+ "BUG POKéMON are number 1!$"
+ "If you want to catch BUG$"
+ "POKéMON, wake up early.");
+
+static const u8 TrainerEyeDescription_Hiker_Trent[] = _(
+ "I battle with power.$"
+ "Hard-bodied POKéMON$"
+ "I've been planning a month$"
+ "for today's hike.");
+
+static const u8 TrainerEyeDescription_YoungCouple_LoisAndHal[] = _(
+ "Lovey-dovey strategy!$"
+ "Lovey-dovey POKéMON!$"
+ "We're lovey-dovey!$"
+ "Forever lovey-dovey!");
+
+static const u8 TrainerEyeDescription_PkmnTrainer_Wally[] = _(
+ "We let it all hang out.$"
+ "The 1st POKéMON I caught.$"
+ "POKéMON and I have grown$"
+ "stronger together.");
+
+static const u8 TrainerEyeDescription_Leader_Roxanne[] = _(
+ "ROCK-type power attack$"
+ "Rock-solid types are good.$"
+ "Through battling, I want to$"
+ "learn all about POKéMON.");
+
+static const u8 TrainerEyeDescription_Leader_Brawly[] = _(
+ "Direct physical action!$"
+ "FIGHTING POKéMON rule!$"
+ "The world awaits me as the$"
+ "next big wave!");
+
+static const u8 TrainerEyeDescription_Leader_Wattson[] = _(
+ "I choose to electrify.$"
+ "Get shocked by electricity!$"
+ "Wahahahaha! The secret to$"
+ "health is laughter!");
+
+static const u8 TrainerEyeDescription_Leader_Flannery[] = _(
+ "Battle aggressively.$"
+ "Burn with passion!$"
+ "Wash away daily fatigue in$"
+ "hot springs completely!");
+
+static const u8 TrainerEyeDescription_Leader_Norman[] = _(
+ "I flexibly adapt my style.$"
+ "Grown in a balanced manner.$"
+ "POKéMON are my life.$"
+ "My chosen path is harsh...");
+
+static const u8 TrainerEyeDescription_Leader_Winona[] = _(
+ "I take advantage of speed.$"
+ "Graceful sky dancers$"
+ "I can see the ebb and flow$"
+ "of the winds.");
+
+static const u8 TrainerEyeDescription_Leader_TateAndLiza[] = _(
+ "We battle in cooperation.$"
+ "Always friendly POKéMON.$"
+ "We understand each other,$"
+ "and we understand others.");
+
+static const u8 TrainerEyeDescription_Leader_Wallace[] = _(
+ "Dignity and respect$"
+ "I prefer POKéMON of grace.$"
+ "Aquatic illusions best suit$"
+ "my distinctive elegance.");
+
+static const u8 TrainerEyeDescription_EliteFour_Sidney[] = _(
+ "Offense over defense$"
+ "The DARK side's beauties$"
+ "You can talk all you want -$"
+ "might is right!");
+
+static const u8 TrainerEyeDescription_EliteFour_Phoebe[] = _(
+ "Confuse and confound$"
+ "There's nothing definite.$"
+ "I wonder how my grandma at$"
+ "MT. PYRE is doing?");
+
+static const u8 TrainerEyeDescription_EliteFour_Glacia[] = _(
+ "I use items for help.$"
+ "Flaming passion in icy cold!$"
+ "The ICE type can be better$"
+ "trained in this hot land.");
+
+static const u8 TrainerEyeDescription_EliteFour_Drake[] = _(
+ "Harness strong abilities.$"
+ "The raw power of DRAGONS!$"
+ "I live to battle every day$"
+ "to learn about POKéMON.");
+
+static const u8 TrainerEyeDescription_Champion_Steven[] = _(
+ "Pick on the foe's weakness.$"
+ "The ultimate STEEL POKéMON$"
+ "When it comes down to it,$"
+ "I'm still the strongest!");
+
+const u8 *const gTrainerEyeDescriptions[] =
+{
+ TrainerEyeDescription_AromaLady_Rose,
+ TrainerEyeDescription_RuinManiac_Dusty,
+ TrainerEyeDescription_Tuber_Lola,
+ TrainerEyeDescription_Tuber_Ricky,
+ TrainerEyeDescription_SisAndBro_RitaAndSam,
+ TrainerEyeDescription_Cooltrainer_Brooke,
+ TrainerEyeDescription_Cooltrainer_Wilton,
+ TrainerEyeDescription_HexManiac_Valerie,
+ TrainerEyeDescription_Lady_Cindy,
+ TrainerEyeDescription_Beauty_Jessica,
+ TrainerEyeDescription_RichBoy_Winston,
+ TrainerEyeDescription_PokeManiac_Steve,
+ TrainerEyeDescription_Swimmer_Tony,
+ TrainerEyeDescription_BlackBelt_Nob,
+ TrainerEyeDescription_Guitarist_Dalton,
+ TrainerEyeDescription_Kindler_Bernie,
+ TrainerEyeDescription_Camper_Ethan,
+ TrainerEyeDescription_OldCouple_JohnAndJay,
+ TrainerEyeDescription_BugManiac_Brandon,
+ TrainerEyeDescription_Psychic_Cameron,
+ TrainerEyeDescription_Psychic_Jacki,
+ TrainerEyeDescription_Gentleman_Walter,
+ TrainerEyeDescription_SchoolKid_Karen,
+ TrainerEyeDescription_SchoolKid_Jerry,
+ TrainerEyeDescription_SrAndJr_AnnaAndMeg,
+ TrainerEyeDescription_Pokefan_Isabel,
+ TrainerEyeDescription_Pokefan_Miguel,
+ TrainerEyeDescription_Expert_Timothy,
+ TrainerEyeDescription_Expert_Shelby,
+ TrainerEyeDescription_Youngster_Calvin,
+ TrainerEyeDescription_Fisherman_Elliot,
+ TrainerEyeDescription_Triathlete_Abigail,
+ TrainerEyeDescription_Triathlete_Benjamin,
+ TrainerEyeDescription_Triathlete_Isaiah,
+ TrainerEyeDescription_Triathlete_Katelyn,
+ TrainerEyeDescription_Triathlete_Maria,
+ TrainerEyeDescription_Triathlete_Dylan,
+ TrainerEyeDescription_DragonTamer_Nicolas,
+ TrainerEyeDescription_BirdKeeper_Robert,
+ TrainerEyeDescription_NinjaBoy_Lao,
+ TrainerEyeDescription_BattleGirl_Cyndy,
+ TrainerEyeDescription_ParasolLady_Madeline,
+ TrainerEyeDescription_Swimmer_Jenny,
+ TrainerEyeDescription_Picnicker_Diana,
+ TrainerEyeDescription_Twins_AmyAndLiv,
+ TrainerEyeDescription_Sailor_Ernest,
+ TrainerEyeDescription_Collector_Edwin,
+ TrainerEyeDescription_PkmnBreeder_Lydia,
+ TrainerEyeDescription_PkmnBreeder_Isaac,
+ TrainerEyeDescription_PkmnRanger_Catherine,
+ TrainerEyeDescription_PkmnRanger_Jackson,
+ TrainerEyeDescription_Lass_Haley,
+ TrainerEyeDescription_BugCatcher_James,
+ TrainerEyeDescription_Hiker_Trent,
+ TrainerEyeDescription_YoungCouple_LoisAndHal,
+ TrainerEyeDescription_PkmnTrainer_Wally,
+ TrainerEyeDescription_Leader_Roxanne,
+ TrainerEyeDescription_Leader_Brawly,
+ TrainerEyeDescription_Leader_Wattson,
+ TrainerEyeDescription_Leader_Flannery,
+ TrainerEyeDescription_Leader_Norman,
+ TrainerEyeDescription_Leader_Winona,
+ TrainerEyeDescription_Leader_TateAndLiza,
+ TrainerEyeDescription_Leader_Wallace,
+ TrainerEyeDescription_EliteFour_Sidney,
+ TrainerEyeDescription_EliteFour_Phoebe,
+ TrainerEyeDescription_EliteFour_Glacia,
+ TrainerEyeDescription_EliteFour_Drake,
+ TrainerEyeDescription_Champion_Steven,
+};
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 8e24e3b9e..f9b81a173 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/pokenav_before.c b/src/pokenav_before.c
index 3150629b7..c9390a070 100644
--- a/src/pokenav_before.c
+++ b/src/pokenav_before.c
@@ -26,6 +26,7 @@
#include "pokemon_summary_screen.h"
#include "use_pokeblock.h"
#include "constants/game_stat.h"
+#include "pokemon.h"
struct UnknownPokenav0
{
@@ -104,6 +105,1016 @@ struct UnkPokenavStruct *const gPokenavStructPtr = (struct UnkPokenavStruct *)gS
extern u16 gKeyRepeatStartDelay;
+// rodata?
+const u8 *const gUnknown_083DFEC8 = gTileBuffer;
+
+const u8 gUnknown_083DFECC[] = INCBIN_U8("graphics/pokenav/83DFECC.gbapal");
+
+const u8 gUnknown_083DFEEC[] = INCBIN_U8("graphics/pokenav/83DFEEC.4bpp");
+const u8 gUnknown_083DFF8C[] = INCBIN_U8("graphics/pokenav/83DFF8C.bin.lz");
+const u16 gUnknown_083E003C[] = INCBIN_U16("graphics/pokenav/83E003C.gbapal");
+
+const u8 gUnknown_083E005C[] = INCBIN_U8("graphics/pokenav/83E005C.4bpp");
+const u8 gUnknown_083E007C[] = INCBIN_U8("graphics/pokenav/83E007C.bin.lz");
+const u16 gUnknown_083E0124[] = INCBIN_U16("graphics/pokenav/83E0124_pal.bin");
+
+const u16 gUnknown_083E0144[] = INCBIN_U16("graphics/pokenav/83E0144_pal.bin");
+
+const u16 gUnknown_083E0164[] = INCBIN_U16("graphics/pokenav/83E0164.bin");//?
+
+const u8 gUnknown_083E01AC[] = INCBIN_U8("graphics/pokenav/83E01AC.bin");
+const u8 gUnknown_083E01F4[] = INCBIN_U8("graphics/pokenav/83E01F4.bin");
+const u8 gUnknown_083E0254[] = INCBIN_U8("graphics/pokenav/83E0254.gbapal");
+const u16 gUnknown_083E0274[] = INCBIN_U16("graphics/pokenav/83E0274.gbapal");
+
+const u16 gPokenavConditionSearch2_Pal[] = INCBIN_U16("graphics/pokenav/condition_search2.gbapal");
+
+const u16 gUnknown_083E02B4[] = INCBIN_U16("graphics/pokenav/83E02B4.gbapal");
+
+const u16 gUnknown_083E02D4[] = INCBIN_U16("graphics/pokenav/83E02D4.bin");//?
+
+const u8 gUnknown_083E0314[] = INCBIN_U8("graphics/pokenav/83E0314.gbapal");
+const u8 gUnknown_083E0334[] = INCBIN_U8("graphics/pokenav/trainereyes_misc_pal.bin");
+
+const u8 gUnknown_083E0354[] = INCBIN_U8("graphics/pokenav/trainereyes_misc.4bpp.lz");
+
+const u8 gUnknown_083E039C[][4] =
+{
+ {0x80, 0x42, 0x82, 0x42},
+};
+
+const u8 gUnknown_083E03A0[][8] =
+{
+ {0x00, 0x40, 0x00, 0x40, 0x81, 0x42, 0x83, 0x42},
+};
+
+const u16 gUnknown_083E03A8[] = INCBIN_U16("graphics/pokenav/83E03A8.gbapal");
+const u16 gUnknown_083E03C8[] = INCBIN_U16("graphics/pokenav/83E03C8.bin");
+const u8 gUnknown_083E040C[] = INCBIN_U8("graphics/misc/ribbons_half.4bpp.lz");
+const u8 gPokenavOutlinePalette[] = INCBIN_U8("graphics/pokenav/outline.gbapal");
+const u8 gPokenavOutlineTiles[] = INCBIN_U8("graphics/pokenav/outline.4bpp.lz");
+const u8 gPokenavOutlineTilemap[] = INCBIN_U8("graphics/pokenav/outline_map.bin.lz");
+
+#include "data/region_map/city_map_tilemaps.h"
+
+#ifdef ENGLISH
+#include "data/text/ribbon_descriptions_en.h"
+#include "data/text/gift_ribbon_descriptions_en.h"
+#include "data/text/trainer_eye_descriptions_en.h"
+#elif GERMAN
+#include "data/text/ribbon_descriptions_de.h"
+#include "data/text/gift_ribbon_descriptions_de.h"
+#include "data/text/trainer_eye_descriptions_de.h"
+#endif
+
+const u8 *const gUnknown_083E31B0[] =
+{
+ PCText_CheckMap,
+ PCText_CheckPoke,
+ PCText_CheckTrainer,
+ PCText_CheckRibbons,
+ PCText_PutAwayNav,
+ PCText_NoRibbonWin,
+ PCText_NoTrainers,
+};
+
+const u8 *const gUnknown_083E31CC[] =
+{
+ PCText_CheckParty,
+ PCText_CheckPokeAll,
+ PCText_ReturnToNav,
+};
+
+const u8 *const gUnknown_083E31D8[] =
+{
+ PCText_FindCool,
+ PCText_FindBeauty,
+ PCText_FindCute,
+ PCText_FindSmart,
+ PCText_FindTough,
+ PCText_ReturnToCondition,
+};
+
+#include "data/region_map/city_map_entries.h"
+
+void sub_80F0A24(u16, u16);
+void sub_80F0A74(u16, u16);
+
+void (*const gUnknown_083E3270[])(u16, u16) =
+{
+ sub_80F0A24,
+ sub_80F0A24,
+ sub_80F0A74,
+};
+
+const u16 gPokenavIconPalette[] = INCBIN_U16("graphics/pokenav/icon.gbapal");
+const u8 gUnknown_083E329C[] = INCBIN_U8("graphics/pokenav/icon.4bpp.lz");
+const u8 gPokenavPokeballTiles[] = INCBIN_U8("graphics/pokenav/pokeball.4bpp");
+const u8 gUnknown_083E3780[] = INCBIN_U8("graphics/pokenav/83E3780.4bpp");
+const u16 gPokenavSparkle_Pal[] = INCBIN_U16("graphics/pokenav/sparkle.gbapal");
+const u8 gPokenavSparkle_Gfx[] = INCBIN_U8("graphics/pokenav/sparkle.4bpp");
+const u8 gPokenavUpDownArrows_Gfx[] = INCBIN_U8("graphics/pokenav/arrows.4bpp");
+const u8 gUnknown_083E3BC0[] = INCBIN_U8("graphics/pokenav/83E3BC0.bin");
+const u8 gTiles_083E3BE0[] = INCBIN_U8("graphics/unknown/unknown_3E3BE0.4bpp");
+
+const u16 gUnknown_083E3C60[][16] =
+{
+ INCBIN_U16("graphics/misc/ribbons_cool.gbapal"),
+ INCBIN_U16("graphics/misc/ribbons_beauty.gbapal"),
+ INCBIN_U16("graphics/misc/ribbons_cute.gbapal"),
+ INCBIN_U16("graphics/misc/ribbons_smart.gbapal"),
+ INCBIN_U16("graphics/misc/ribbons_tough.gbapal"),
+};
+
+const u8 gUnknown_083E3D00[] = INCBIN_U8("graphics/misc/ribbons_full.4bpp.lz");
+const u16 PokenavBlueLightPalette[] = INCBIN_U16("graphics/pokenav/blue_light.gbapal");
+const u8 PokenavBlueLightTiles[] = INCBIN_U8("graphics/pokenav/blue_light.4bpp");
+const u16 Palette_3E42D8[] = INCBIN_U16("graphics/pokenav/83E42D8.gbapal");
+
+const u16 gUnknown_083E42F8[] =
+{
+ BLDALPHA_BLEND(8, 4),
+ BLDALPHA_BLEND(8, 4),
+ BLDALPHA_BLEND(7, 5),
+ BLDALPHA_BLEND(7, 5),
+ BLDALPHA_BLEND(6, 6),
+ BLDALPHA_BLEND(6, 6),
+ BLDALPHA_BLEND(5, 8),
+ BLDALPHA_BLEND(5, 8),
+ BLDALPHA_BLEND(4, 10),
+ BLDALPHA_BLEND(4, 10),
+ BLDALPHA_BLEND(3, 12),
+ BLDALPHA_BLEND(3, 12),
+ BLDALPHA_BLEND(2, 14),
+ BLDALPHA_BLEND(2, 14),
+ BLDALPHA_BLEND(0, 16),
+ BLDALPHA_BLEND(0, 16),
+};
+
+const struct OamData gOamData_83E4318 =
+{
+ .y = 0,
+ .affineMode = ST_OAM_AFFINE_OFF,
+ .objMode = 0,
+ .mosaic = 0,
+ .bpp = 0,
+ .shape = 1,
+ .x = 0,
+ .matrixNum = 0,
+ .size = 2,
+ .tileNum = 0,
+ .priority = 1,
+ .paletteNum = 0,
+ .affineParam = 0,
+};
+
+static const union AnimCmd sSpriteAnim_83E4320[] =
+{
+ ANIMCMD_FRAME(0, 5),
+ ANIMCMD_END,
+};
+
+static const union AnimCmd sSpriteAnim_83E4328[] =
+{
+ ANIMCMD_FRAME(8, 5),
+ ANIMCMD_END,
+};
+
+static const union AnimCmd sSpriteAnim_83E4330[] =
+{
+ ANIMCMD_FRAME(16, 5),
+ ANIMCMD_END,
+};
+
+static const union AnimCmd sSpriteAnim_83E4338[] =
+{
+ ANIMCMD_FRAME(24, 5),
+ ANIMCMD_END,
+};
+
+static const union AnimCmd sSpriteAnim_83E4340[] =
+{
+ ANIMCMD_FRAME(32, 5),
+ ANIMCMD_END,
+};
+
+static const union AnimCmd sSpriteAnim_83E4348[] =
+{
+ ANIMCMD_FRAME(40, 5),
+ ANIMCMD_END,
+};
+
+static const union AnimCmd sSpriteAnim_83E4350[] =
+{
+ ANIMCMD_FRAME(48, 5),
+ ANIMCMD_END,
+};
+
+static const union AnimCmd sSpriteAnim_83E4358[] =
+{
+ ANIMCMD_FRAME(56, 5),
+ ANIMCMD_END,
+};
+
+static const union AnimCmd sSpriteAnim_83E4360[] =
+{
+ ANIMCMD_FRAME(64, 5),
+ ANIMCMD_END,
+};
+
+static const union AnimCmd sSpriteAnim_83E4368[] =
+{
+ ANIMCMD_FRAME(72, 5),
+ ANIMCMD_END,
+};
+
+static const union AnimCmd sSpriteAnim_83E4370[] =
+{
+ ANIMCMD_FRAME(80, 5),
+ ANIMCMD_END,
+};
+
+static const union AnimCmd sSpriteAnim_83E4378[] =
+{
+ ANIMCMD_FRAME(88, 5),
+ ANIMCMD_END,
+};
+
+static const union AnimCmd sSpriteAnim_83E4380[] =
+{
+ ANIMCMD_FRAME(96, 5),
+ ANIMCMD_END,
+};
+
+static const union AnimCmd sSpriteAnim_83E4388[] =
+{
+ ANIMCMD_FRAME(104, 5),
+ ANIMCMD_END,
+};
+
+static const union AnimCmd sSpriteAnim_83E4390[] =
+{
+ ANIMCMD_FRAME(112, 5),
+ ANIMCMD_END,
+};
+
+static const union AnimCmd sSpriteAnim_83E4398[] =
+{
+ ANIMCMD_FRAME(120, 5),
+ ANIMCMD_END,
+};
+
+static const union AnimCmd sSpriteAnim_83E43A0[] =
+{
+ ANIMCMD_FRAME(128, 5),
+ ANIMCMD_END,
+};
+
+static const union AnimCmd sSpriteAnim_83E43A8[] =
+{
+ ANIMCMD_FRAME(136, 5),
+ ANIMCMD_END,
+};
+
+static const union AnimCmd sSpriteAnim_83E43B0[] =
+{
+ ANIMCMD_FRAME(144, 5),
+ ANIMCMD_END,
+};
+
+static const union AnimCmd sSpriteAnim_83E43B8[] =
+{
+ ANIMCMD_FRAME(152, 5),
+ ANIMCMD_END,
+};
+
+static const union AnimCmd sSpriteAnim_83E43C0[] =
+{
+ ANIMCMD_FRAME(160, 5),
+ ANIMCMD_END,
+};
+
+static const union AnimCmd sSpriteAnim_83E43C8[] =
+{
+ ANIMCMD_FRAME(168, 5),
+ ANIMCMD_END,
+};
+
+static const union AnimCmd sSpriteAnim_83E43D0[] =
+{
+ ANIMCMD_FRAME(176, 5),
+ ANIMCMD_END,
+};
+
+static const union AnimCmd sSpriteAnim_83E43D8[] =
+{
+ ANIMCMD_FRAME(184, 5),
+ ANIMCMD_END,
+};
+
+const union AnimCmd *const gSpriteAnimTable_83E43E0[] =
+{
+ sSpriteAnim_83E4320,
+ sSpriteAnim_83E4328,
+ sSpriteAnim_83E4330,
+ sSpriteAnim_83E4338,
+ sSpriteAnim_83E4340,
+ sSpriteAnim_83E4348,
+ sSpriteAnim_83E4350,
+ sSpriteAnim_83E4358,
+ sSpriteAnim_83E4360,
+ sSpriteAnim_83E4368,
+ sSpriteAnim_83E4370,
+ sSpriteAnim_83E4378,
+ sSpriteAnim_83E4380,
+ sSpriteAnim_83E4388,
+ sSpriteAnim_83E4390,
+ sSpriteAnim_83E4398,
+ sSpriteAnim_83E43A0,
+ sSpriteAnim_83E43A8,
+ sSpriteAnim_83E43B0,
+ sSpriteAnim_83E43B8,
+ sSpriteAnim_83E43C0,
+ sSpriteAnim_83E43C8,
+ sSpriteAnim_83E43D0,
+ sSpriteAnim_83E43D8,
+};
+
+const union AffineAnimCmd gSpriteAffineAnim_83E4440[] =
+{
+ AFFINEANIMCMD_FRAME(0x10, 0x10, 0, 16),
+ AFFINEANIMCMD_END,
+};
+
+const union AffineAnimCmd *const gSpriteAffineAnimTable_83E4450[] =
+{
+ gSpriteAffineAnim_83E4440,
+};
+
+const struct SpriteTemplate gSpriteTemplate_83E4454 =
+{
+ .tileTag = 0,
+ .paletteTag = 0,
+ .oam = &gOamData_83E4318,
+ .anims = gSpriteAnimTable_83E43E0,
+ .images = NULL,
+ .affineAnims = gDummySpriteAffineAnimTable,
+ .callback = SpriteCallbackDummy,
+};
+
+// sizeof(PokenavBlueLightTiles) ?
+const struct SpriteSheet gSpriteSheet_PokenavBlueLight = {PokenavBlueLightTiles, 0x100, 25};
+
+const struct SpritePalette gSpritePalette_PokenavBlueLight = {PokenavBlueLightPalette, 17};
+
+const struct OamData gOamData_83E447C =
+{
+ .y = 0,
+ .affineMode = ST_OAM_AFFINE_OFF,
+ .objMode = 0,
+ .mosaic = 0,
+ .bpp = 0,
+ .shape = 1,
+ .x = 0,
+ .matrixNum = 0,
+ .size = 2,
+ .tileNum = 0,
+ .priority = 1,
+ .paletteNum = 0,
+ .affineParam = 0,
+};
+
+void sub_80F2654(struct Sprite *);
+
+const struct SpriteTemplate gSpriteTemplate_83E4484 =
+{
+ .tileTag = 25,
+ .paletteTag = 17,
+ .oam = &gOamData_83E447C,
+ .anims = gDummySpriteAnimTable,
+ .images = NULL,
+ .affineAnims = gDummySpriteAffineAnimTable,
+ .callback = sub_80F2654,
+};
+
+extern const u16 gPokenavMenuOptions3_Pal[];
+extern const u16 gPokenavCondition5_Pal[];
+
+const struct SpritePalette gUnknown_083E449C[] =
+{
+ {gPokenavMenuOptions3_Pal, 2},
+ {gPokenavCondition5_Pal, 3},
+ {0x0, 0},
+};
+
+const struct OamData gOamData_83E44B4 =
+{
+ .y = 0,
+ .affineMode = ST_OAM_AFFINE_OFF,
+ .objMode = 0,
+ .mosaic = 0,
+ .bpp = 0,
+ .shape = ST_OAM_H_RECTANGLE,
+ .x = 0,
+ .matrixNum = 0,
+ .size = 3,
+ .tileNum = 0,
+ .priority = 1,
+ .paletteNum = 0,
+ .affineParam = 0,
+};
+
+const union AnimCmd gSpriteAnim_83E44BC[] =
+{
+ ANIMCMD_FRAME(0, 5),
+ ANIMCMD_END,
+};
+
+const union AnimCmd gSpriteAnim_83E44C4[] =
+{
+ ANIMCMD_FRAME(32, 5),
+ ANIMCMD_END,
+};
+
+const union AnimCmd gSpriteAnim_83E44CC[] =
+{
+ ANIMCMD_FRAME(64, 5),
+ ANIMCMD_END,
+};
+
+const union AnimCmd *const gSpriteAnimTable_83E44D4[] =
+{
+ gSpriteAnim_83E44BC,
+ gSpriteAnim_83E44C4,
+ gSpriteAnim_83E44CC,
+};
+
+void sub_80F2BBC(struct Sprite *);
+
+const struct SpriteTemplate gSpriteTemplate_83E44E0 =
+{
+ .tileTag = 1,
+ .paletteTag = 2,
+ .oam = &gOamData_83E44B4,
+ .anims = gSpriteAnimTable_83E44D4,
+ .images = NULL,
+ .affineAnims = gDummySpriteAffineAnimTable,
+ .callback = sub_80F2BBC,
+};
+
+const struct SpriteTemplate gSpriteTemplate_83E44F8 =
+{
+ .tileTag = 1,
+ .paletteTag = 3,
+ .oam = &gOamData_83E44B4,
+ .anims = gSpriteAnimTable_83E44D4,
+ .images = NULL,
+ .affineAnims = gDummySpriteAffineAnimTable,
+ .callback = sub_80F2BBC,
+};
+
+const struct OamData gOamData_83E4510 =
+{
+ .y = 0,
+ .affineMode = ST_OAM_AFFINE_OFF,
+ .objMode = 0,
+ .mosaic = 0,
+ .bpp = 0,
+ .shape = ST_OAM_H_RECTANGLE,
+ .x = 0,
+ .matrixNum = 0,
+ .size = 2,
+ .tileNum = 0,
+ .priority = 1,
+ .paletteNum = 0,
+ .affineParam = 0,
+};
+
+const union AnimCmd gSpriteAnim_83E4518[] =
+{
+ ANIMCMD_FRAME(0, 5),
+ ANIMCMD_END,
+};
+
+const union AnimCmd gSpriteAnim_83E4520[] =
+{
+ ANIMCMD_FRAME(8, 5),
+ ANIMCMD_END,
+};
+
+const union AnimCmd *const gSpriteAnimTable_83E4528[] =
+{
+ gSpriteAnim_83E4518,
+ gSpriteAnim_83E4520,
+};
+
+const struct SpriteTemplate gSpriteTemplate_83E4530 =
+{
+ .tileTag = 2,
+ .paletteTag = 2,
+ .oam = &gOamData_83E4510,
+ .anims = gSpriteAnimTable_83E4528,
+ .images = NULL,
+ .affineAnims = gDummySpriteAffineAnimTable,
+ .callback = sub_80F2BBC,
+};
+
+const struct SpriteTemplate gSpriteTemplate_83E4548 =
+{
+ .tileTag = 2,
+ .paletteTag = 3,
+ .oam = &gOamData_83E4510,
+ .anims = gSpriteAnimTable_83E4528,
+ .images = NULL,
+ .affineAnims = gDummySpriteAffineAnimTable,
+ .callback = sub_80F2BBC,
+};
+
+const struct OamData gOamData_83E4560 =
+{
+ .y = 0,
+ .affineMode = ST_OAM_AFFINE_OFF,
+ .objMode = 0,
+ .mosaic = 0,
+ .bpp = 0,
+ .shape = ST_OAM_SQUARE,
+ .x = 0,
+ .matrixNum = 0,
+ .size = 3,
+ .tileNum = 0,
+ .priority = 1,
+ .paletteNum = 0,
+ .affineParam = 0,
+};
+
+const struct SpriteSheet gUnknown_083E4568 = {NULL, 0x800, 6};
+
+void sub_80F2E00(struct Sprite *);
+
+const struct SpriteTemplate gSpriteTemplate_83E4570 =
+{
+ .tileTag = 6,
+ .paletteTag = 6,
+ .oam = &gOamData_83E4560,
+ .anims = gDummySpriteAnimTable,
+ .images = NULL,
+ .affineAnims = gDummySpriteAffineAnimTable,
+ .callback = sub_80F2E00,
+};
+
+const struct SpritePalette gUnknown_083E4588 = {NULL, 6};
+extern const u8 gPokenavArrow_Gfx[];
+
+const struct SpriteSheet gUnknown_083E4590[] =
+{
+ {gPokenavArrow_Gfx, 0x40, 9},
+ {gPokenavUpDownArrows_Gfx, 0x80, 10},
+ {},
+};
+
+extern const u16 gPokenavArrowsPalette[];
+
+const struct SpritePalette gUnknown_083E45A8 = {gPokenavArrowsPalette, 9};
+
+const struct OamData gOamData_83E45B0 =
+{
+ .y = 0,
+ .affineMode = ST_OAM_AFFINE_OFF,
+ .objMode = 0,
+ .mosaic = 0,
+ .bpp = 0,
+ .shape = ST_OAM_V_RECTANGLE,
+ .x = 0,
+ .matrixNum = 0,
+ .size = 0,
+ .tileNum = 0,
+ .priority = 2,
+ .paletteNum = 0,
+ .affineParam = 0,
+};
+
+void sub_80F3190(struct Sprite *);
+
+const struct SpriteTemplate gSpriteTemplate_83E45B8 =
+{
+ .tileTag = 9,
+ .paletteTag = 9,
+ .oam = &gOamData_83E45B0,
+ .anims = gDummySpriteAnimTable,
+ .images = NULL,
+ .affineAnims = gDummySpriteAffineAnimTable,
+ .callback = sub_80F3190,
+};
+
+const union AnimCmd gSpriteAnim_83E45D0[] =
+{
+ ANIMCMD_FRAME(0, 3),
+ ANIMCMD_END,
+};
+
+const union AnimCmd gSpriteAnim_83E45D8[] =
+{
+ ANIMCMD_FRAME(2, 3),
+ ANIMCMD_END,
+};
+
+const union AnimCmd *const gSpriteAnimTable_83E45E0[] =
+{
+ gSpriteAnim_83E45D0,
+ gSpriteAnim_83E45D8,
+};
+
+const struct OamData gOamData_83E45E8 =
+{
+ .y = 0,
+ .affineMode = ST_OAM_AFFINE_OFF,
+ .objMode = 0,
+ .mosaic = 0,
+ .bpp = 0,
+ .shape = ST_OAM_H_RECTANGLE,
+ .x = 0,
+ .matrixNum = 0,
+ .size = 0,
+ .tileNum = 0,
+ .priority = 2,
+ .paletteNum = 0,
+ .affineParam = 0,
+};
+
+void sub_80F31AC(struct Sprite *);
+
+const struct SpriteTemplate gSpriteTemplate_83E45F0 =
+{
+ .tileTag = 10,
+ .paletteTag = 9,
+ .oam = &gOamData_83E45E8,
+ .anims = gSpriteAnimTable_83E45E0,
+ .images = NULL,
+ .affineAnims = gDummySpriteAffineAnimTable,
+ .callback = sub_80F31AC,
+};
+
+const struct OamData gOamData_83E4608 =
+{
+ .y = 0,
+ .affineMode = ST_OAM_AFFINE_OFF,
+ .objMode = 0,
+ .mosaic = 0,
+ .bpp = 0,
+ .shape = ST_OAM_SQUARE,
+ .x = 0,
+ .matrixNum = 0,
+ .size = 1,
+ .tileNum = 0,
+ .priority = 2,
+ .paletteNum = 0,
+ .affineParam = 0,
+};
+
+const union AnimCmd gSpriteAnim_83E4610[] =
+{
+ ANIMCMD_FRAME(0, 5),
+ ANIMCMD_END,
+};
+
+const union AnimCmd gSpriteAnim_83E4618[] =
+{
+ ANIMCMD_FRAME(4, 5),
+ ANIMCMD_END,
+};
+
+const union AnimCmd *const gSpriteAnimTable_83E4620[] =
+{
+ gSpriteAnim_83E4610,
+ gSpriteAnim_83E4618,
+};
+
+extern const u8 gPokenavConditionMenuCancel_Gfx[];
+
+const struct SpriteSheet gUnknown_083E4628[] =
+{
+ {gPokenavPokeballTiles, 0x100, 3},
+ {gUnknown_083E3780, 0x20, 4},
+ {gPokenavConditionMenuCancel_Gfx, 0x100, 5},
+ {},
+};
+
+extern const u16 gPokenavConditionPokeball_Pal[];
+extern const u16 gPokenavCondition4_Pal[];
+
+const struct SpritePalette gUnknown_083E4648[] =
+{
+ {gPokenavConditionPokeball_Pal, 4},
+ {gPokenavCondition4_Pal, 5},
+ {NULL, 0},
+};
+
+void sub_80F3328(struct Sprite *);
+
+const struct SpriteTemplate gSpriteTemplate_83E4660 =
+{
+ .tileTag = 3,
+ .paletteTag = 4,
+ .oam = &gOamData_83E4608,
+ .anims = gSpriteAnimTable_83E4620,
+ .images = NULL,
+ .affineAnims = gDummySpriteAffineAnimTable,
+ .callback = sub_80F3328,
+};
+
+const u16 gUnknown_083E4678[] = INCBIN_U16("graphics/pokenav/83E4678.gbapal");
+
+const u16 gPokenavRibbonsIconGfx[][2] =
+{
+ {0, 0},
+ {1, 0},
+ {2, 0},
+ {3, 0},
+ {4, 0},
+ {1, 1},
+ {2, 1},
+ {3, 1},
+ {4, 1},
+ {1, 2},
+ {2, 2},
+ {3, 2},
+ {4, 2},
+ {1, 3},
+ {2, 3},
+ {3, 3},
+ {4, 3},
+ {1, 4},
+ {2, 4},
+ {3, 4},
+ {4, 4},
+ {5, 0},
+ {6, 0},
+ {7, 1},
+ {8, 2},
+ {9, 1},
+ {9, 3},
+ {9, 4},
+ {10, 3},
+ {10, 4},
+ {11, 0},
+ {11, 1},
+};
+
+const struct OamData gOamData_83E4718 =
+{
+ .y = 0,
+ .affineMode = ST_OAM_AFFINE_NORMAL,
+ .objMode = 0,
+ .mosaic = 0,
+ .bpp = 0,
+ .shape = ST_OAM_SQUARE,
+ .x = 0,
+ .matrixNum = 0,
+ .size = 2,
+ .tileNum = 0,
+ .priority = 0,
+ .paletteNum = 0,
+ .affineParam = 0,
+};
+
+const union AffineAnimCmd gSpriteAffineAnim_83E4720[] =
+{
+ AFFINEANIMCMD_FRAME(0x80, 0x80, 0, 0),
+ AFFINEANIMCMD_END,
+};
+
+const union AffineAnimCmd gSpriteAffineAnim_83E4730[] =
+{
+ AFFINEANIMCMD_FRAME(0x80, 0x80, 0, 0),
+ AFFINEANIMCMD_FRAME(0x20, 0x20, 0, 4),
+ AFFINEANIMCMD_END,
+};
+
+const union AffineAnimCmd gSpriteAffineAnim_83E4748[] =
+{
+ AFFINEANIMCMD_FRAME(0x100, 0x100, 0, 0),
+ AFFINEANIMCMD_FRAME(0xFFE0, 0xFFE0, 0, 4),
+ AFFINEANIMCMD_END,
+};
+
+const union AffineAnimCmd *const gSpriteAffineAnimTable_83E4760[] =
+{
+ gSpriteAffineAnim_83E4720,
+ gSpriteAffineAnim_83E4730,
+ gSpriteAffineAnim_83E4748,
+};
+
+const struct SpriteTemplate gSpriteTemplate_83E476C =
+{
+ .tileTag = 11,
+ .paletteTag = 10,
+ .oam = &gOamData_83E4718,
+ .anims = gDummySpriteAnimTable,
+ .images = NULL,
+ .affineAnims = gSpriteAffineAnimTable_83E4760,
+ .callback = SpriteCallbackDummy,
+};
+
+const struct SpriteSheet gUnknown_083E4784 = {gPokenavSparkle_Gfx, sizeof(gPokenavSparkle_Gfx), 0x0017};
+const struct SpritePalette gUnknown_083E478C = {gPokenavSparkle_Pal, 0x000f};
+
+const s16 gUnknown_083E4794[][2] =
+{
+ { 0 , -35},
+ { 20, -28},
+ { 33, -10},
+ { 33, 10},
+ { 20, 28},
+ { 0 , 35},
+ {-20, 28},
+ {-33, 10},
+ {-33, -10},
+ {-20, -28},
+};
+
+const struct OamData gOamData_83E47BC =
+{
+ .y = 0,
+ .affineMode = ST_OAM_AFFINE_OFF,
+ .objMode = 0,
+ .mosaic = 0,
+ .bpp = 0,
+ .shape = ST_OAM_SQUARE,
+ .x = 0,
+ .matrixNum = 0,
+ .size = 1,
+ .tileNum = 0,
+ .priority = 0,
+ .paletteNum = 0,
+ .affineParam = 0,
+};
+
+const union AnimCmd gSpriteAnim_83E47C4[] =
+{
+ ANIMCMD_FRAME(0, 5),
+ ANIMCMD_FRAME(4, 5),
+ ANIMCMD_FRAME(8, 5),
+ ANIMCMD_FRAME(12, 5),
+ ANIMCMD_FRAME(16, 5),
+ ANIMCMD_FRAME(20, 5),
+ ANIMCMD_FRAME(24, 5),
+ ANIMCMD_END,
+};
+
+// sparkles around pokemon on condition page of pokenav
+const union AnimCmd *const gSpriteAnimTable_83E47E4[] =
+{
+ &gSpriteAnim_83E47C4[0],
+ &gSpriteAnim_83E47C4[2],
+ &gSpriteAnim_83E47C4[4],
+ &gSpriteAnim_83E47C4[6],
+ &gSpriteAnim_83E47C4[8],
+ &gSpriteAnim_83E47C4[10],
+ &gSpriteAnim_83E47C4[12],
+};
+
+void sub_80F3E9C(struct Sprite *sprite);
+
+const struct SpriteTemplate gSpriteTemplate_83E4800 =
+{
+ .tileTag = 23,
+ .paletteTag = 15,
+ .oam = &gOamData_83E47BC,
+ .anims = gSpriteAnimTable_83E47E4,
+ .images = NULL,
+ .affineAnims = gDummySpriteAffineAnimTable,
+ .callback = sub_80F3E9C,
+};
+
+const struct SpritePalette gUnknown_083E4818 = {gPokenavIconPalette, 16};
+
+const union AnimCmd gSpriteAnim_83E4820[] =
+{
+ ANIMCMD_FRAME(0, 12),
+ ANIMCMD_FRAME(16, 12),
+ ANIMCMD_FRAME(32, 12),
+ ANIMCMD_FRAME(48, 12),
+ ANIMCMD_FRAME(64, 12),
+ ANIMCMD_FRAME(80, 12),
+ ANIMCMD_FRAME(96, 12),
+ ANIMCMD_FRAME(112, 12),
+ ANIMCMD_JUMP(0),
+};
+
+const union AnimCmd *const gSpriteAnimTable_83E4844[] =
+{
+ gSpriteAnim_83E4820,
+};
+
+const struct OamData gOamData_83E4848 =
+{
+ .y = 0,
+ .affineMode = ST_OAM_AFFINE_OFF,
+ .objMode = 0,
+ .mosaic = 0,
+ .bpp = 0,
+ .shape = ST_OAM_SQUARE,
+ .x = 0,
+ .matrixNum = 0,
+ .size = 2,
+ .tileNum = 0,
+ .priority = 0,
+ .paletteNum = 0,
+ .affineParam = 0,
+};
+
+void sub_80F4138(struct Sprite *);
+
+const struct SpriteTemplate gSpriteTemplate_83E4850 =
+{
+ .tileTag = 24,
+ .paletteTag = 16,
+ .oam = &gOamData_83E4848,
+ .anims = gSpriteAnimTable_83E4844,
+ .images = NULL,
+ .affineAnims = gDummySpriteAffineAnimTable,
+ .callback = sub_80F4138,
+};
+
+const struct SpritePalette gUnknown_083E4868 = {Palette_3E42D8, 18};
+
+const struct OamData gOamData_83E4870 =
+{
+ .y = 0,
+ .affineMode = ST_OAM_AFFINE_OFF,
+ .objMode = 0,
+ .mosaic = 0,
+ .bpp = 0,
+ .shape = ST_OAM_H_RECTANGLE,
+ .x = 0,
+ .matrixNum = 0,
+ .size = 2,
+ .tileNum = 0,
+ .priority = 3,
+ .paletteNum = 0,
+ .affineParam = 0,
+};
+
+const struct SpriteTemplate gSpriteTemplate_83E4878 =
+{
+ .tileTag = 26,
+ .paletteTag = 18,
+ .oam = &gOamData_83E4870,
+ .anims = gDummySpriteAnimTable,
+ .images = NULL,
+ .affineAnims = gDummySpriteAffineAnimTable,
+ .callback = SpriteCallbackDummy,
+};
+
+const u8 gUnknown_083E4890[] =
+{
+ 4, 5, 6, 7, 8, 9, 9, 10, 10, 11, 11, 12, 12, 13, 13, 13,
+ 13, 14, 14, 14, 14, 15, 15, 15, 15, 16, 16, 16, 16, 16, 16, 17,
+ 17, 17, 17, 17, 17, 18, 18, 18, 18, 18, 18, 19, 19, 19, 19, 19,
+ 19, 19, 19, 20, 20, 20, 20, 20, 20, 20, 20, 21, 21, 21, 21, 21,
+ 21, 21, 21, 22, 22, 22, 22, 22, 22, 22, 22, 22, 22, 23, 23, 23,
+ 23, 23, 23, 23, 23, 23, 23, 24, 24, 24, 24, 24, 24, 24, 24, 24,
+ 24, 25, 25, 25, 25, 25, 25, 25, 25, 25, 25, 25, 25, 26, 26, 26,
+ 26, 26, 26, 26, 26, 26, 26, 26, 26, 27, 27, 27, 27, 27, 27, 27,
+ 27, 27, 27, 27, 27, 27, 27, 28, 28, 28, 28, 28, 28, 28, 28, 28,
+ 28, 28, 28, 28, 28, 29, 29, 29, 29, 29, 29, 29, 29, 29, 29, 29,
+ 29, 29, 29, 29, 29, 30, 30, 30, 30, 30, 30, 30, 30, 30, 30, 30,
+ 30, 30, 30, 30, 30, 31, 31, 31, 31, 31, 31, 31, 31, 31, 31, 31,
+ 31, 31, 31, 31, 31, 31, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32,
+ 32, 32, 32, 32, 32, 32, 32, 32, 33, 33, 33, 33, 33, 33, 33, 33,
+ 33, 33, 33, 33, 33, 33, 33, 33, 33, 33, 33, 34, 34, 34, 34, 34,
+ 34, 34, 34, 34, 34, 34, 34, 34, 34, 34, 34, 34, 34, 34, 34, 35,
+};
+
+const struct ScanlineEffectParams gUnknown_083E4990 =
+{
+ (void *)REG_ADDR_WIN0H,
+ ((DMA_ENABLE | DMA_START_HBLANK | DMA_32BIT | DMA_REPEAT | DMA_DEST_RELOAD) << 16) | 1,
+ 1,
+ 0,
+};
+
+const u16 gUnknown_083E499C[] =
+{
+ MON_DATA_CHAMPION_RIBBON,
+ MON_DATA_COOL_RIBBON,
+ MON_DATA_BEAUTY_RIBBON,
+ MON_DATA_CUTE_RIBBON,
+ MON_DATA_SMART_RIBBON,
+ MON_DATA_TOUGH_RIBBON,
+ MON_DATA_WINNING_RIBBON,
+ MON_DATA_VICTORY_RIBBON,
+ MON_DATA_ARTIST_RIBBON,
+ MON_DATA_EFFORT_RIBBON,
+ MON_DATA_GIFT_RIBBON_1,
+ MON_DATA_GIFT_RIBBON_2,
+ MON_DATA_GIFT_RIBBON_3,
+ MON_DATA_GIFT_RIBBON_4,
+ MON_DATA_GIFT_RIBBON_5,
+ MON_DATA_GIFT_RIBBON_6,
+ MON_DATA_GIFT_RIBBON_7,
+};
+
void sub_80EBA5C()
{
switch (gMain.state)
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;
}