summaryrefslogtreecommitdiff
path: root/src
diff options
context:
space:
mode:
Diffstat (limited to 'src')
-rwxr-xr-xsrc/battle_anim_effects_3.c51
-rw-r--r--src/battle_setup.c2
-rw-r--r--src/data/pokemon/tutor_learnsets.h5783
-rw-r--r--src/field_effect.c2
-rw-r--r--src/field_player_avatar.c2
-rw-r--r--src/field_specials.c4
-rw-r--r--src/fldeff_cut.c3
-rw-r--r--src/fldeff_dig.c63
-rw-r--r--src/fldeff_escalator.c13
-rw-r--r--src/fldeff_flash.c2
-rw-r--r--src/fldeff_groundshake.c9
-rw-r--r--src/fldeff_misc.c2
-rw-r--r--src/fldeff_rocksmash.c (renamed from src/rom6.c)52
-rw-r--r--src/fldeff_strength.c2
-rw-r--r--src/fldeff_sweetscent.c4
-rw-r--r--src/fldeff_teleport.c2
-rwxr-xr-xsrc/party_menu.c1599
-rw-r--r--src/pokemon_summary_screen.c2
-rw-r--r--src/region_map.c3
-rw-r--r--src/scrcmd.c2
-rw-r--r--src/secret_base.c3
-rw-r--r--src/tv.c3
22 files changed, 7259 insertions, 349 deletions
diff --git a/src/battle_anim_effects_3.c b/src/battle_anim_effects_3.c
index d887eeabf..f6858c093 100755
--- a/src/battle_anim_effects_3.c
+++ b/src/battle_anim_effects_3.c
@@ -589,9 +589,9 @@ const union AffineAnimCmd gUnknown_085CE430[] =
const s8 gUnknown_085CE460[] =
{
- 0xE8,
- 0x18,
- 0xFC,
+ 0xE8,
+ 0x18,
+ 0xFC,
0x00,
};
@@ -1846,7 +1846,7 @@ static void sub_815AED8(u8 taskId)
if (task->data[7])
task->data[12] = task->data[8];
else
- task->data[12] = task->data[9];
+ task->data[12] = task->data[9];
}
i = task->data[0];
@@ -2403,7 +2403,7 @@ void sub_815BB84(u8 taskId)
gTasks[taskId].data[4] = 0;
if (++gTasks[taskId].data[1] > 12)
gTasks[taskId].data[1] = 12;
-
+
SetGpuReg(REG_OFFSET_BLDALPHA, BLDALPHA_BLEND(gTasks[taskId].data[1], 16 - gTasks[taskId].data[1]));
if (gTasks[taskId].data[1] == 12)
@@ -2459,7 +2459,7 @@ void sub_815BE04(struct Sprite *sprite)
xOffset &= 0x3F;
if (xOffset > 31)
xOffset = 32 - xOffset;
-
+
sprite->pos1.x = GetBattlerSpriteCoord(gBattleAnimAttacker, 0) + xOffset;
sprite->pos1.y = GetBattlerSpriteCoord(gBattleAnimAttacker, 1) + 32;
sprite->data[1] = gBattleAnimArgs[0];
@@ -2490,7 +2490,7 @@ static void sub_815BF44(struct Sprite *sprite)
{
int var0;
s8 var1;
-
+
var0 = (u16)sprite->data[2] + (u16)sprite->data[3];
var1 = var0 >> 8;
sprite->pos2.y -= var1;
@@ -2531,7 +2531,7 @@ static void sub_815C050(struct Sprite *sprite)
register u16 d3 asm("r1");
int var0;
s8 var1;
-
+
if (!sprite->invisible)
{
d2 = sprite->data[2];
@@ -2637,7 +2637,7 @@ void sub_815C0A4(u8 taskId)
sub_80A6C68(unknownStruct.bgId);
if (!IsContest())
SetAnimBgAttribute(1, BG_ANIM_CHAR_BASE_BLOCK, 0);
-
+
SetAnimBgAttribute(1, BG_ANIM_PRIORITY, 1);
gBattle_BG1_X = 0;
gBattle_BG1_Y = 0;
@@ -2893,7 +2893,7 @@ static void sub_815C7C4(u8 taskId)
SetSpriteRotScale(task->data[15], 0x100, 0x100, task->data[2]);
SetBattlerSpriteYOffsetFromRotation(task->data[15]);
gSprites[task->data[15]].pos2.x = -(((temp = task->data[2]) >= 0 ? task->data[2] : temp + 63) >> 6);
-
+
if (++task->data[1] > 8)
{
if (task->data[12])
@@ -3679,7 +3679,7 @@ void sub_815DCA4(u8 taskId)
if (!gBattleAnimArgs[1])
DestroyAnimVisualTask(taskId);
-
+
task->data[0] = 0;
task->data[1] = 0;
task->data[2] = 0;
@@ -3801,7 +3801,7 @@ static void sub_815DF64(u8 taskId)
BlendPalette(gTasks[taskId].data[2], 16, 8, gUnknown_085CE784[gTasks[taskId].data[0]]);
if (++gTasks[taskId].data[0] > 23)
gTasks[taskId].data[0] = 0;
-
+
gTasks[taskId].data[1]--;
}
else
@@ -3831,7 +3831,7 @@ void sub_815E01C(struct Sprite *sprite)
{
if (GetBattlerSide(gBattleAnimAttacker) == B_SIDE_OPPONENT)
gBattleAnimArgs[0] = -gBattleAnimArgs[0];
-
+
sprite->pos1.x = GetBattlerSpriteCoord(gBattleAnimAttacker, 0) + gBattleAnimArgs[0];
sprite->pos1.y = GetBattlerSpriteCoord(gBattleAnimAttacker, 1) + gBattleAnimArgs[1];
if (gBattleAnimArgs[2] == 0)
@@ -4030,7 +4030,7 @@ void sub_815E47C(u8 taskId)
InitAnimArcTranslation(&gSprites[task->data[15]]);
if (GetBattlerSide(gBattleAnimAttacker) == B_SIDE_OPPONENT)
StartSpriteAffineAnim(&gSprites[task->data[15]], 1);
-
+
task->func = sub_815E5CC;
}
else
@@ -4303,7 +4303,7 @@ static void sub_815EA60(struct Sprite *sprite)
sprite->pos2.x = sprite->data[7] * (gSineTable[sprite->data[1] * 10] >> 3);
if (sprite->data[1] == 15)
sprite->oam.tileNum += 16;
-
+
if (sprite->data[1] == 18)
{
sprite->data[1] = 0;
@@ -4581,7 +4581,7 @@ static void sub_815F10C(struct Sprite *sprite)
sprite->pos1.x + sprite->pos2.x,
sprite->pos1.y + sprite->pos2.y, 5);
}
-
+
if (sprite->data[5] == sprite->data[4])
DestroyAnimSprite(sprite);
@@ -4648,7 +4648,7 @@ void AnimTask_MonToSubstitute(u8 taskId)
for (i = 0; i < 16; i++)
gTasks[taskId].data[i] = 0;
-
+
gTasks[taskId].func = sub_815F330;
}
}
@@ -4837,7 +4837,7 @@ void sub_815F620(u8 taskId)
gSprites[spriteId1].invisible = 1;
}
-
+
gSprites[spriteId2].oam.objMode = ST_OAM_OBJ_NORMAL;
gSprites[spriteId1].oam.objMode = ST_OAM_OBJ_NORMAL;
gSprites[spriteId2].callback = sub_815F7C4;
@@ -4887,3 +4887,18 @@ static void sub_815F7C4(struct Sprite *sprite)
break;
}
}
+
+void AnimTask_GetReturnPowerLevel(u8 taskId)
+{
+ gBattleAnimArgs[7] = 0;
+ if (gAnimFriendship < 60)
+ gBattleAnimArgs[7] = 0;
+ if (gAnimFriendship > 60 && gAnimFriendship < 92)
+ gBattleAnimArgs[7] = 1;
+ if (gAnimFriendship > 91 && gAnimFriendship < 201)
+ gBattleAnimArgs[7] = 2;
+ if (gAnimFriendship > 200)
+ gBattleAnimArgs[7] = 3;
+
+ DestroyAnimVisualTask(taskId);
+}
diff --git a/src/battle_setup.c b/src/battle_setup.c
index 1ad5dcf4f..56bed77c8 100644
--- a/src/battle_setup.c
+++ b/src/battle_setup.c
@@ -37,9 +37,9 @@
#include "gym_leader_rematch.h"
#include "battle_pike.h"
#include "battle_pyramid.h"
+#include "fldeff.h"
#include "fldeff_misc.h"
#include "field_control_avatar.h"
-#include "fldeff_groundshake.h"
#include "constants/map_types.h"
#include "constants/battle_frontier.h"
diff --git a/src/data/pokemon/tutor_learnsets.h b/src/data/pokemon/tutor_learnsets.h
new file mode 100644
index 000000000..93c629f3d
--- /dev/null
+++ b/src/data/pokemon/tutor_learnsets.h
@@ -0,0 +1,5783 @@
+#define TUTOR_MOVE_MEGA_PUNCH 0
+#define TUTOR_MOVE_SWORDS_DANCE 1
+#define TUTOR_MOVE_MEGA_KICK 2
+#define TUTOR_MOVE_BODY_SLAM 3
+#define TUTOR_MOVE_DOUBLE_EDGE 4
+#define TUTOR_MOVE_COUNTER 5
+#define TUTOR_MOVE_SEISMIC_TOSS 6
+#define TUTOR_MOVE_MIMIC 7
+#define TUTOR_MOVE_METRONOME 8
+#define TUTOR_MOVE_SOFT_BOILED 9
+#define TUTOR_MOVE_DREAM_EATER 10
+#define TUTOR_MOVE_THUNDER_WAVE 11
+#define TUTOR_MOVE_EXPLOSION 12
+#define TUTOR_MOVE_ROCK_SLIDE 13
+#define TUTOR_MOVE_SUBSTITUTE 14
+#define TUTOR_MOVE_DYNAMIC_PUNCH 15
+#define TUTOR_MOVE_ROLLOUT 16
+#define TUTOR_MOVE_PSYCH_UP 17
+#define TUTOR_MOVE_SNORE 18
+#define TUTOR_MOVE_ICY_WIND 19
+#define TUTOR_MOVE_ENDURE 20
+#define TUTOR_MOVE_MUD_SLAP 21
+#define TUTOR_MOVE_ICE_PUNCH 22
+#define TUTOR_MOVE_SWAGGER 23
+#define TUTOR_MOVE_SLEEP_TALK 24
+#define TUTOR_MOVE_SWIFT 25
+#define TUTOR_MOVE_DEFENSE_CURL 26
+#define TUTOR_MOVE_THUNDER_PUNCH 27
+#define TUTOR_MOVE_FIRE_PUNCH 28
+#define TUTOR_MOVE_FURY_CUTTER 29
+
+const u16 gTutorMoves[] =
+{
+ /*TUTOR_*/MOVE_MEGA_PUNCH,
+ /*TUTOR_*/MOVE_SWORDS_DANCE,
+ /*TUTOR_*/MOVE_MEGA_KICK,
+ /*TUTOR_*/MOVE_BODY_SLAM,
+ /*TUTOR_*/MOVE_DOUBLE_EDGE,
+ /*TUTOR_*/MOVE_COUNTER,
+ /*TUTOR_*/MOVE_SEISMIC_TOSS,
+ /*TUTOR_*/MOVE_MIMIC,
+ /*TUTOR_*/MOVE_METRONOME,
+ /*TUTOR_*/MOVE_SOFT_BOILED,
+ /*TUTOR_*/MOVE_DREAM_EATER,
+ /*TUTOR_*/MOVE_THUNDER_WAVE,
+ /*TUTOR_*/MOVE_EXPLOSION,
+ /*TUTOR_*/MOVE_ROCK_SLIDE,
+ /*TUTOR_*/MOVE_SUBSTITUTE,
+ /*TUTOR_*/MOVE_DYNAMIC_PUNCH,
+ /*TUTOR_*/MOVE_ROLLOUT,
+ /*TUTOR_*/MOVE_PSYCH_UP,
+ /*TUTOR_*/MOVE_SNORE,
+ /*TUTOR_*/MOVE_ICY_WIND,
+ /*TUTOR_*/MOVE_ENDURE,
+ /*TUTOR_*/MOVE_MUD_SLAP,
+ /*TUTOR_*/MOVE_ICE_PUNCH,
+ /*TUTOR_*/MOVE_SWAGGER,
+ /*TUTOR_*/MOVE_SLEEP_TALK,
+ /*TUTOR_*/MOVE_SWIFT,
+ /*TUTOR_*/MOVE_DEFENSE_CURL,
+ /*TUTOR_*/MOVE_THUNDER_PUNCH,
+ /*TUTOR_*/MOVE_FIRE_PUNCH,
+ /*TUTOR_*/MOVE_FURY_CUTTER,
+};
+
+#define TUTOR_LEARNSET(moves) ((u32)(moves))
+#define TUTOR(move)((u64)1 << (TUTOR_##move))
+
+static const u32 sTutorLearnsets[] =
+{
+ [SPECIES_NONE] = TUTOR_LEARNSET(0),
+
+ [SPECIES_BULBASAUR] = TUTOR_LEARNSET(TUTOR(MOVE_SWORDS_DANCE)
+ | TUTOR(MOVE_BODY_SLAM)
+ | TUTOR(MOVE_DOUBLE_EDGE)
+ | TUTOR(MOVE_MIMIC)
+ | TUTOR(MOVE_SUBSTITUTE)
+ | TUTOR(MOVE_SNORE)
+ | TUTOR(MOVE_ENDURE)
+ | TUTOR(MOVE_MUD_SLAP)
+ | TUTOR(MOVE_SWAGGER)
+ | TUTOR(MOVE_SLEEP_TALK)
+ | TUTOR(MOVE_DEFENSE_CURL)
+ | TUTOR(MOVE_FURY_CUTTER)),
+
+ [SPECIES_IVYSAUR] = TUTOR_LEARNSET(TUTOR(MOVE_SWORDS_DANCE)
+ | TUTOR(MOVE_BODY_SLAM)
+ | TUTOR(MOVE_DOUBLE_EDGE)
+ | TUTOR(MOVE_MIMIC)
+ | TUTOR(MOVE_SUBSTITUTE)
+ | TUTOR(MOVE_SNORE)
+ | TUTOR(MOVE_ENDURE)
+ | TUTOR(MOVE_MUD_SLAP)
+ | TUTOR(MOVE_SWAGGER)
+ | TUTOR(MOVE_SLEEP_TALK)
+ | TUTOR(MOVE_DEFENSE_CURL)
+ | TUTOR(MOVE_FURY_CUTTER)),
+
+ [SPECIES_VENUSAUR] = TUTOR_LEARNSET(TUTOR(MOVE_SWORDS_DANCE)
+ | TUTOR(MOVE_BODY_SLAM)
+ | TUTOR(MOVE_DOUBLE_EDGE)
+ | TUTOR(MOVE_MIMIC)
+ | TUTOR(MOVE_SUBSTITUTE)
+ | TUTOR(MOVE_SNORE)
+ | TUTOR(MOVE_ENDURE)
+ | TUTOR(MOVE_MUD_SLAP)
+ | TUTOR(MOVE_SWAGGER)
+ | TUTOR(MOVE_SLEEP_TALK)
+ | TUTOR(MOVE_DEFENSE_CURL)
+ | TUTOR(MOVE_FURY_CUTTER)),
+
+ [SPECIES_CHARMANDER] = TUTOR_LEARNSET(TUTOR(MOVE_MEGA_PUNCH)
+ | TUTOR(MOVE_SWORDS_DANCE)
+ | TUTOR(MOVE_MEGA_KICK)
+ | TUTOR(MOVE_BODY_SLAM)
+ | TUTOR(MOVE_DOUBLE_EDGE)
+ | TUTOR(MOVE_COUNTER)
+ | TUTOR(MOVE_SEISMIC_TOSS)
+ | TUTOR(MOVE_MIMIC)
+ | TUTOR(MOVE_ROCK_SLIDE)
+ | TUTOR(MOVE_SUBSTITUTE)
+ | TUTOR(MOVE_DYNAMIC_PUNCH)
+ | TUTOR(MOVE_SNORE)
+ | TUTOR(MOVE_ENDURE)
+ | TUTOR(MOVE_MUD_SLAP)
+ | TUTOR(MOVE_SWAGGER)
+ | TUTOR(MOVE_SLEEP_TALK)
+ | TUTOR(MOVE_SWIFT)
+ | TUTOR(MOVE_DEFENSE_CURL)
+ | TUTOR(MOVE_FIRE_PUNCH)
+ | TUTOR(MOVE_FURY_CUTTER)),
+
+ [SPECIES_CHARMELEON] = TUTOR_LEARNSET(TUTOR(MOVE_MEGA_PUNCH)
+ | TUTOR(MOVE_SWORDS_DANCE)
+ | TUTOR(MOVE_MEGA_KICK)
+ | TUTOR(MOVE_BODY_SLAM)
+ | TUTOR(MOVE_DOUBLE_EDGE)
+ | TUTOR(MOVE_COUNTER)
+ | TUTOR(MOVE_SEISMIC_TOSS)
+ | TUTOR(MOVE_MIMIC)
+ | TUTOR(MOVE_ROCK_SLIDE)
+ | TUTOR(MOVE_SUBSTITUTE)
+ | TUTOR(MOVE_DYNAMIC_PUNCH)
+ | TUTOR(MOVE_SNORE)
+ | TUTOR(MOVE_ENDURE)
+ | TUTOR(MOVE_MUD_SLAP)
+ | TUTOR(MOVE_SWAGGER)
+ | TUTOR(MOVE_SLEEP_TALK)
+ | TUTOR(MOVE_SWIFT)
+ | TUTOR(MOVE_DEFENSE_CURL)
+ | TUTOR(MOVE_FIRE_PUNCH)
+ | TUTOR(MOVE_FURY_CUTTER)),
+
+ [SPECIES_CHARIZARD] = TUTOR_LEARNSET(TUTOR(MOVE_MEGA_PUNCH)
+ | TUTOR(MOVE_SWORDS_DANCE)
+ | TUTOR(MOVE_MEGA_KICK)
+ | TUTOR(MOVE_BODY_SLAM)
+ | TUTOR(MOVE_DOUBLE_EDGE)
+ | TUTOR(MOVE_COUNTER)
+ | TUTOR(MOVE_SEISMIC_TOSS)
+ | TUTOR(MOVE_MIMIC)
+ | TUTOR(MOVE_ROCK_SLIDE)
+ | TUTOR(MOVE_SUBSTITUTE)
+ | TUTOR(MOVE_DYNAMIC_PUNCH)
+ | TUTOR(MOVE_SNORE)
+ | TUTOR(MOVE_ENDURE)
+ | TUTOR(MOVE_MUD_SLAP)
+ | TUTOR(MOVE_SWAGGER)
+ | TUTOR(MOVE_SLEEP_TALK)
+ | TUTOR(MOVE_SWIFT)
+ | TUTOR(MOVE_DEFENSE_CURL)
+ | TUTOR(MOVE_FIRE_PUNCH)
+ | TUTOR(MOVE_FURY_CUTTER)),
+
+ [SPECIES_SQUIRTLE] = TUTOR_LEARNSET(TUTOR(MOVE_MEGA_PUNCH)
+ | TUTOR(MOVE_MEGA_KICK)
+ | TUTOR(MOVE_BODY_SLAM)
+ | TUTOR(MOVE_DOUBLE_EDGE)
+ | TUTOR(MOVE_COUNTER)
+ | TUTOR(MOVE_SEISMIC_TOSS)
+ | TUTOR(MOVE_MIMIC)
+ | TUTOR(MOVE_SUBSTITUTE)
+ | TUTOR(MOVE_DYNAMIC_PUNCH)
+ | TUTOR(MOVE_ROLLOUT)
+ | TUTOR(MOVE_SNORE)
+ | TUTOR(MOVE_ICY_WIND)
+ | TUTOR(MOVE_ENDURE)
+ | TUTOR(MOVE_MUD_SLAP)
+ | TUTOR(MOVE_ICE_PUNCH)
+ | TUTOR(MOVE_SWAGGER)
+ | TUTOR(MOVE_SLEEP_TALK)
+ | TUTOR(MOVE_DEFENSE_CURL)),
+
+ [SPECIES_WARTORTLE] = TUTOR_LEARNSET(TUTOR(MOVE_MEGA_PUNCH)
+ | TUTOR(MOVE_MEGA_KICK)
+ | TUTOR(MOVE_BODY_SLAM)
+ | TUTOR(MOVE_DOUBLE_EDGE)
+ | TUTOR(MOVE_COUNTER)
+ | TUTOR(MOVE_SEISMIC_TOSS)
+ | TUTOR(MOVE_MIMIC)
+ | TUTOR(MOVE_SUBSTITUTE)
+ | TUTOR(MOVE_DYNAMIC_PUNCH)
+ | TUTOR(MOVE_ROLLOUT)
+ | TUTOR(MOVE_SNORE)
+ | TUTOR(MOVE_ICY_WIND)
+ | TUTOR(MOVE_ENDURE)
+ | TUTOR(MOVE_MUD_SLAP)
+ | TUTOR(MOVE_ICE_PUNCH)
+ | TUTOR(MOVE_SWAGGER)
+ | TUTOR(MOVE_SLEEP_TALK)
+ | TUTOR(MOVE_DEFENSE_CURL)),
+
+ [SPECIES_BLASTOISE] = TUTOR_LEARNSET(TUTOR(MOVE_MEGA_PUNCH)
+ | TUTOR(MOVE_MEGA_KICK)
+ | TUTOR(MOVE_BODY_SLAM)
+ | TUTOR(MOVE_DOUBLE_EDGE)
+ | TUTOR(MOVE_COUNTER)
+ | TUTOR(MOVE_SEISMIC_TOSS)
+ | TUTOR(MOVE_MIMIC)
+ | TUTOR(MOVE_SUBSTITUTE)
+ | TUTOR(MOVE_DYNAMIC_PUNCH)
+ | TUTOR(MOVE_ROLLOUT)
+ | TUTOR(MOVE_SNORE)
+ | TUTOR(MOVE_ICY_WIND)
+ | TUTOR(MOVE_ENDURE)
+ | TUTOR(MOVE_MUD_SLAP)
+ | TUTOR(MOVE_ICE_PUNCH)
+ | TUTOR(MOVE_SWAGGER)
+ | TUTOR(MOVE_SLEEP_TALK)
+ | TUTOR(MOVE_DEFENSE_CURL)),
+
+ [SPECIES_CATERPIE] = TUTOR_LEARNSET(0),
+
+ [SPECIES_METAPOD] = TUTOR_LEARNSET(0),
+
+ [SPECIES_BUTTERFREE] = TUTOR_LEARNSET(TUTOR(MOVE_DOUBLE_EDGE)
+ | TUTOR(MOVE_MIMIC)
+ | TUTOR(MOVE_DREAM_EATER)
+ | TUTOR(MOVE_SUBSTITUTE)
+ | TUTOR(MOVE_SNORE)
+ | TUTOR(MOVE_ENDURE)
+ | TUTOR(MOVE_SWAGGER)
+ | TUTOR(MOVE_SLEEP_TALK)
+ | TUTOR(MOVE_SWIFT)),
+
+ [SPECIES_WEEDLE] = TUTOR_LEARNSET(0),
+
+ [SPECIES_KAKUNA] = TUTOR_LEARNSET(0),
+
+ [SPECIES_BEEDRILL] = TUTOR_LEARNSET(TUTOR(MOVE_SWORDS_DANCE)
+ | TUTOR(MOVE_DOUBLE_EDGE)
+ | TUTOR(MOVE_MIMIC)
+ | TUTOR(MOVE_SUBSTITUTE)
+ | TUTOR(MOVE_SNORE)
+ | TUTOR(MOVE_ENDURE)
+ | TUTOR(MOVE_SWAGGER)
+ | TUTOR(MOVE_SLEEP_TALK)
+ | TUTOR(MOVE_SWIFT)
+ | TUTOR(MOVE_FURY_CUTTER)),
+
+ [SPECIES_PIDGEY] = TUTOR_LEARNSET(TUTOR(MOVE_DOUBLE_EDGE)
+ | TUTOR(MOVE_MIMIC)
+ | TUTOR(MOVE_SUBSTITUTE)
+ | TUTOR(MOVE_SNORE)
+ | TUTOR(MOVE_ENDURE)
+ | TUTOR(MOVE_MUD_SLAP)
+ | TUTOR(MOVE_SWAGGER)
+ | TUTOR(MOVE_SLEEP_TALK)
+ | TUTOR(MOVE_SWIFT)),
+
+ [SPECIES_PIDGEOTTO] = TUTOR_LEARNSET(TUTOR(MOVE_DOUBLE_EDGE)
+ | TUTOR(MOVE_MIMIC)
+ | TUTOR(MOVE_SUBSTITUTE)
+ | TUTOR(MOVE_SNORE)
+ | TUTOR(MOVE_ENDURE)
+ | TUTOR(MOVE_MUD_SLAP)
+ | TUTOR(MOVE_SWAGGER)
+ | TUTOR(MOVE_SLEEP_TALK)
+ | TUTOR(MOVE_SWIFT)),
+
+ [SPECIES_PIDGEOT] = TUTOR_LEARNSET(TUTOR(MOVE_DOUBLE_EDGE)
+ | TUTOR(MOVE_MIMIC)
+ | TUTOR(MOVE_SUBSTITUTE)
+ | TUTOR(MOVE_SNORE)
+ | TUTOR(MOVE_ENDURE)
+ | TUTOR(MOVE_MUD_SLAP)
+ | TUTOR(MOVE_SWAGGER)
+ | TUTOR(MOVE_SLEEP_TALK)
+ | TUTOR(MOVE_SWIFT)),
+
+ [SPECIES_RATTATA] = TUTOR_LEARNSET(TUTOR(MOVE_BODY_SLAM)
+ | TUTOR(MOVE_DOUBLE_EDGE)
+ | TUTOR(MOVE_COUNTER)
+ | TUTOR(MOVE_MIMIC)
+ | TUTOR(MOVE_THUNDER_WAVE)
+ | TUTOR(MOVE_SUBSTITUTE)
+ | TUTOR(MOVE_SNORE)
+ | TUTOR(MOVE_ICY_WIND)
+ | TUTOR(MOVE_ENDURE)
+ | TUTOR(MOVE_MUD_SLAP)
+ | TUTOR(MOVE_SWAGGER)
+ | TUTOR(MOVE_SLEEP_TALK)
+ | TUTOR(MOVE_SWIFT)
+ | TUTOR(MOVE_DEFENSE_CURL)),
+
+ [SPECIES_RATICATE] = TUTOR_LEARNSET(TUTOR(MOVE_BODY_SLAM)
+ | TUTOR(MOVE_DOUBLE_EDGE)
+ | TUTOR(MOVE_COUNTER)
+ | TUTOR(MOVE_MIMIC)
+ | TUTOR(MOVE_THUNDER_WAVE)
+ | TUTOR(MOVE_SUBSTITUTE)
+ | TUTOR(MOVE_SNORE)
+ | TUTOR(MOVE_ICY_WIND)
+ | TUTOR(MOVE_ENDURE)
+ | TUTOR(MOVE_MUD_SLAP)
+ | TUTOR(MOVE_SWAGGER)
+ | TUTOR(MOVE_SLEEP_TALK)
+ | TUTOR(MOVE_SWIFT)
+ | TUTOR(MOVE_DEFENSE_CURL)),
+
+ [SPECIES_SPEAROW] = TUTOR_LEARNSET(TUTOR(MOVE_DOUBLE_EDGE)
+ | TUTOR(MOVE_MIMIC)
+ | TUTOR(MOVE_SUBSTITUTE)
+ | TUTOR(MOVE_SNORE)
+ | TUTOR(MOVE_ENDURE)
+ | TUTOR(MOVE_MUD_SLAP)
+ | TUTOR(MOVE_SWAGGER)
+ | TUTOR(MOVE_SLEEP_TALK)
+ | TUTOR(MOVE_SWIFT)),
+
+ [SPECIES_FEAROW] = TUTOR_LEARNSET(TUTOR(MOVE_DOUBLE_EDGE)
+ | TUTOR(MOVE_MIMIC)
+ | TUTOR(MOVE_SUBSTITUTE)
+ | TUTOR(MOVE_SNORE)
+ | TUTOR(MOVE_ENDURE)
+ | TUTOR(MOVE_MUD_SLAP)
+ | TUTOR(MOVE_SWAGGER)
+ | TUTOR(MOVE_SLEEP_TALK)
+ | TUTOR(MOVE_SWIFT)),
+
+ [SPECIES_EKANS] = TUTOR_LEARNSET(TUTOR(MOVE_BODY_SLAM)
+ | TUTOR(MOVE_DOUBLE_EDGE)
+ | TUTOR(MOVE_MIMIC)
+ | TUTOR(MOVE_ROCK_SLIDE)
+ | TUTOR(MOVE_SUBSTITUTE)
+ | TUTOR(MOVE_SNORE)
+ | TUTOR(MOVE_ENDURE)
+ | TUTOR(MOVE_SWAGGER)
+ | TUTOR(MOVE_SLEEP_TALK)),
+
+ [SPECIES_ARBOK] = TUTOR_LEARNSET(TUTOR(MOVE_BODY_SLAM)
+ | TUTOR(MOVE_DOUBLE_EDGE)
+ | TUTOR(MOVE_MIMIC)
+ | TUTOR(MOVE_ROCK_SLIDE)
+ | TUTOR(MOVE_SUBSTITUTE)
+ | TUTOR(MOVE_SNORE)
+ | TUTOR(MOVE_ENDURE)
+ | TUTOR(MOVE_SWAGGER)
+ | TUTOR(MOVE_SLEEP_TALK)),
+
+ [SPECIES_PIKACHU] = TUTOR_LEARNSET(TUTOR(MOVE_MEGA_PUNCH)
+ | TUTOR(MOVE_MEGA_KICK)
+ | TUTOR(MOVE_BODY_SLAM)
+ | TUTOR(MOVE_DOUBLE_EDGE)
+ | TUTOR(MOVE_COUNTER)
+ | TUTOR(MOVE_SEISMIC_TOSS)
+ | TUTOR(MOVE_MIMIC)
+ | TUTOR(MOVE_THUNDER_WAVE)
+ | TUTOR(MOVE_SUBSTITUTE)
+ | TUTOR(MOVE_DYNAMIC_PUNCH)
+ | TUTOR(MOVE_ROLLOUT)
+ | TUTOR(MOVE_SNORE)
+ | TUTOR(MOVE_ENDURE)
+ | TUTOR(MOVE_MUD_SLAP)
+ | TUTOR(MOVE_SWAGGER)
+ | TUTOR(MOVE_SLEEP_TALK)
+ | TUTOR(MOVE_SWIFT)
+ | TUTOR(MOVE_DEFENSE_CURL)
+ | TUTOR(MOVE_THUNDER_PUNCH)),
+
+ [SPECIES_RAICHU] = TUTOR_LEARNSET(TUTOR(MOVE_MEGA_PUNCH)
+ | TUTOR(MOVE_MEGA_KICK)
+ | TUTOR(MOVE_BODY_SLAM)
+ | TUTOR(MOVE_DOUBLE_EDGE)
+ | TUTOR(MOVE_COUNTER)
+ | TUTOR(MOVE_SEISMIC_TOSS)
+ | TUTOR(MOVE_MIMIC)
+ | TUTOR(MOVE_THUNDER_WAVE)
+ | TUTOR(MOVE_SUBSTITUTE)
+ | TUTOR(MOVE_DYNAMIC_PUNCH)
+ | TUTOR(MOVE_ROLLOUT)
+ | TUTOR(MOVE_SNORE)
+ | TUTOR(MOVE_ENDURE)
+ | TUTOR(MOVE_MUD_SLAP)
+ | TUTOR(MOVE_SWAGGER)
+ | TUTOR(MOVE_SLEEP_TALK)
+ | TUTOR(MOVE_SWIFT)
+ | TUTOR(MOVE_DEFENSE_CURL)
+ | TUTOR(MOVE_THUNDER_PUNCH)),
+
+ [SPECIES_SANDSHREW] = TUTOR_LEARNSET(TUTOR(MOVE_SWORDS_DANCE)
+ | TUTOR(MOVE_BODY_SLAM)
+ | TUTOR(MOVE_DOUBLE_EDGE)
+ | TUTOR(MOVE_COUNTER)
+ | TUTOR(MOVE_SEISMIC_TOSS)
+ | TUTOR(MOVE_MIMIC)
+ | TUTOR(MOVE_ROCK_SLIDE)
+ | TUTOR(MOVE_SUBSTITUTE)
+ | TUTOR(MOVE_DYNAMIC_PUNCH)
+ | TUTOR(MOVE_ROLLOUT)
+ | TUTOR(MOVE_SNORE)
+ | TUTOR(MOVE_ENDURE)
+ | TUTOR(MOVE_MUD_SLAP)
+ | TUTOR(MOVE_SWAGGER)
+ | TUTOR(MOVE_SLEEP_TALK)
+ | TUTOR(MOVE_SWIFT)
+ | TUTOR(MOVE_DEFENSE_CURL)
+ | TUTOR(MOVE_FURY_CUTTER)),
+
+ [SPECIES_SANDSLASH] = TUTOR_LEARNSET(TUTOR(MOVE_SWORDS_DANCE)
+ | TUTOR(MOVE_BODY_SLAM)
+ | TUTOR(MOVE_DOUBLE_EDGE)
+ | TUTOR(MOVE_COUNTER)
+ | TUTOR(MOVE_SEISMIC_TOSS)
+ | TUTOR(MOVE_MIMIC)
+ | TUTOR(MOVE_ROCK_SLIDE)
+ | TUTOR(MOVE_SUBSTITUTE)
+ | TUTOR(MOVE_DYNAMIC_PUNCH)
+ | TUTOR(MOVE_ROLLOUT)
+ | TUTOR(MOVE_SNORE)
+ | TUTOR(MOVE_ENDURE)
+ | TUTOR(MOVE_MUD_SLAP)
+ | TUTOR(MOVE_SWAGGER)
+ | TUTOR(MOVE_SLEEP_TALK)
+ | TUTOR(MOVE_SWIFT)
+ | TUTOR(MOVE_DEFENSE_CURL)
+ | TUTOR(MOVE_FURY_CUTTER)),
+
+ [SPECIES_NIDORAN_F] = TUTOR_LEARNSET(TUTOR(MOVE_BODY_SLAM)
+ | TUTOR(MOVE_DOUBLE_EDGE)
+ | TUTOR(MOVE_COUNTER)
+ | TUTOR(MOVE_MIMIC)
+ | TUTOR(MOVE_SUBSTITUTE)
+ | TUTOR(MOVE_SNORE)
+ | TUTOR(MOVE_ENDURE)
+ | TUTOR(MOVE_MUD_SLAP)
+ | TUTOR(MOVE_SWAGGER)
+ | TUTOR(MOVE_SLEEP_TALK)
+ | TUTOR(MOVE_DEFENSE_CURL)),
+
+ [SPECIES_NIDORINA] = TUTOR_LEARNSET(TUTOR(MOVE_BODY_SLAM)
+ | TUTOR(MOVE_DOUBLE_EDGE)
+ | TUTOR(MOVE_COUNTER)
+ | TUTOR(MOVE_MIMIC)
+ | TUTOR(MOVE_SUBSTITUTE)
+ | TUTOR(MOVE_SNORE)
+ | TUTOR(MOVE_ENDURE)
+ | TUTOR(MOVE_MUD_SLAP)
+ | TUTOR(MOVE_SWAGGER)
+ | TUTOR(MOVE_SLEEP_TALK)
+ | TUTOR(MOVE_DEFENSE_CURL)),
+
+ [SPECIES_NIDOQUEEN] = TUTOR_LEARNSET(TUTOR(MOVE_MEGA_PUNCH)
+ | TUTOR(MOVE_MEGA_KICK)
+ | TUTOR(MOVE_BODY_SLAM)
+ | TUTOR(MOVE_DOUBLE_EDGE)
+ | TUTOR(MOVE_COUNTER)
+ | TUTOR(MOVE_SEISMIC_TOSS)
+ | TUTOR(MOVE_MIMIC)
+ | TUTOR(MOVE_ROCK_SLIDE)
+ | TUTOR(MOVE_SUBSTITUTE)
+ | TUTOR(MOVE_DYNAMIC_PUNCH)
+ | TUTOR(MOVE_SNORE)
+ | TUTOR(MOVE_ICY_WIND)
+ | TUTOR(MOVE_ENDURE)
+ | TUTOR(MOVE_MUD_SLAP)
+ | TUTOR(MOVE_ICE_PUNCH)
+ | TUTOR(MOVE_SWAGGER)
+ | TUTOR(MOVE_SLEEP_TALK)
+ | TUTOR(MOVE_DEFENSE_CURL)
+ | TUTOR(MOVE_THUNDER_PUNCH)
+ | TUTOR(MOVE_FIRE_PUNCH)
+ | TUTOR(MOVE_FURY_CUTTER)),
+
+ [SPECIES_NIDORAN_M] = TUTOR_LEARNSET(TUTOR(MOVE_BODY_SLAM)
+ | TUTOR(MOVE_DOUBLE_EDGE)
+ | TUTOR(MOVE_COUNTER)
+ | TUTOR(MOVE_MIMIC)
+ | TUTOR(MOVE_SUBSTITUTE)
+ | TUTOR(MOVE_SNORE)
+ | TUTOR(MOVE_ENDURE)
+ | TUTOR(MOVE_MUD_SLAP)
+ | TUTOR(MOVE_SWAGGER)
+ | TUTOR(MOVE_SLEEP_TALK)
+ | TUTOR(MOVE_DEFENSE_CURL)),
+
+ [SPECIES_NIDORINO] = TUTOR_LEARNSET(TUTOR(MOVE_BODY_SLAM)
+ | TUTOR(MOVE_DOUBLE_EDGE)
+ | TUTOR(MOVE_COUNTER)
+ | TUTOR(MOVE_MIMIC)
+ | TUTOR(MOVE_SUBSTITUTE)
+ | TUTOR(MOVE_SNORE)
+ | TUTOR(MOVE_ENDURE)
+ | TUTOR(MOVE_MUD_SLAP)
+ | TUTOR(MOVE_SWAGGER)
+ | TUTOR(MOVE_SLEEP_TALK)
+ | TUTOR(MOVE_DEFENSE_CURL)),
+
+ [SPECIES_NIDOKING] = TUTOR_LEARNSET(TUTOR(MOVE_MEGA_PUNCH)
+ | TUTOR(MOVE_MEGA_KICK)
+ | TUTOR(MOVE_BODY_SLAM)
+ | TUTOR(MOVE_DOUBLE_EDGE)
+ | TUTOR(MOVE_COUNTER)
+ | TUTOR(MOVE_SEISMIC_TOSS)
+ | TUTOR(MOVE_MIMIC)
+ | TUTOR(MOVE_ROCK_SLIDE)
+ | TUTOR(MOVE_SUBSTITUTE)
+ | TUTOR(MOVE_DYNAMIC_PUNCH)
+ | TUTOR(MOVE_SNORE)
+ | TUTOR(MOVE_ICY_WIND)
+ | TUTOR(MOVE_ENDURE)
+ | TUTOR(MOVE_MUD_SLAP)
+ | TUTOR(MOVE_ICE_PUNCH)
+ | TUTOR(MOVE_SWAGGER)
+ | TUTOR(MOVE_SLEEP_TALK)
+ | TUTOR(MOVE_DEFENSE_CURL)
+ | TUTOR(MOVE_THUNDER_PUNCH)
+ | TUTOR(MOVE_FIRE_PUNCH)
+ | TUTOR(MOVE_FURY_CUTTER)),
+
+ [SPECIES_CLEFAIRY] = TUTOR_LEARNSET(TUTOR(MOVE_MEGA_PUNCH)
+ | TUTOR(MOVE_MEGA_KICK)
+ | TUTOR(MOVE_BODY_SLAM)
+ | TUTOR(MOVE_DOUBLE_EDGE)
+ | TUTOR(MOVE_COUNTER)
+ | TUTOR(MOVE_SEISMIC_TOSS)
+ | TUTOR(MOVE_MIMIC)
+ | TUTOR(MOVE_METRONOME)
+ | TUTOR(MOVE_SOFT_BOILED)
+ | TUTOR(MOVE_DREAM_EATER)
+ | TUTOR(MOVE_THUNDER_WAVE)
+ | TUTOR(MOVE_SUBSTITUTE)
+ | TUTOR(MOVE_DYNAMIC_PUNCH)
+ | TUTOR(MOVE_ROLLOUT)
+ | TUTOR(MOVE_PSYCH_UP)
+ | TUTOR(MOVE_SNORE)
+ | TUTOR(MOVE_ENDURE)
+ | TUTOR(MOVE_MUD_SLAP)
+ | TUTOR(MOVE_ICE_PUNCH)
+ | TUTOR(MOVE_SWAGGER)
+ | TUTOR(MOVE_SLEEP_TALK)
+ | TUTOR(MOVE_DEFENSE_CURL)
+ | TUTOR(MOVE_THUNDER_PUNCH)
+ | TUTOR(MOVE_FIRE_PUNCH)),
+
+ [SPECIES_CLEFABLE] = TUTOR_LEARNSET(TUTOR(MOVE_MEGA_PUNCH)
+ | TUTOR(MOVE_MEGA_KICK)
+ | TUTOR(MOVE_BODY_SLAM)
+ | TUTOR(MOVE_DOUBLE_EDGE)
+ | TUTOR(MOVE_COUNTER)
+ | TUTOR(MOVE_SEISMIC_TOSS)
+ | TUTOR(MOVE_MIMIC)
+ | TUTOR(MOVE_METRONOME)
+ | TUTOR(MOVE_SOFT_BOILED)
+ | TUTOR(MOVE_DREAM_EATER)
+ | TUTOR(MOVE_THUNDER_WAVE)
+ | TUTOR(MOVE_SUBSTITUTE)
+ | TUTOR(MOVE_DYNAMIC_PUNCH)
+ | TUTOR(MOVE_ROLLOUT)
+ | TUTOR(MOVE_PSYCH_UP)
+ | TUTOR(MOVE_SNORE)
+ | TUTOR(MOVE_ENDURE)
+ | TUTOR(MOVE_MUD_SLAP)
+ | TUTOR(MOVE_ICE_PUNCH)
+ | TUTOR(MOVE_SWAGGER)
+ | TUTOR(MOVE_SLEEP_TALK)
+ | TUTOR(MOVE_DEFENSE_CURL)
+ | TUTOR(MOVE_THUNDER_PUNCH)
+ | TUTOR(MOVE_FIRE_PUNCH)),
+
+ [SPECIES_VULPIX] = TUTOR_LEARNSET(TUTOR(MOVE_BODY_SLAM)
+ | TUTOR(MOVE_DOUBLE_EDGE)
+ | TUTOR(MOVE_MIMIC)
+ | TUTOR(MOVE_SUBSTITUTE)
+ | TUTOR(MOVE_SNORE)
+ | TUTOR(MOVE_ENDURE)
+ | TUTOR(MOVE_SWAGGER)
+ | TUTOR(MOVE_SLEEP_TALK)
+ | TUTOR(MOVE_SWIFT)),
+
+ [SPECIES_NINETALES] = TUTOR_LEARNSET(TUTOR(MOVE_BODY_SLAM)
+ | TUTOR(MOVE_DOUBLE_EDGE)
+ | TUTOR(MOVE_MIMIC)
+ | TUTOR(MOVE_SUBSTITUTE)
+ | TUTOR(MOVE_SNORE)
+ | TUTOR(MOVE_ENDURE)
+ | TUTOR(MOVE_SWAGGER)
+ | TUTOR(MOVE_SLEEP_TALK)
+ | TUTOR(MOVE_SWIFT)),
+
+ [SPECIES_JIGGLYPUFF] = TUTOR_LEARNSET(TUTOR(MOVE_MEGA_PUNCH)
+ | TUTOR(MOVE_MEGA_KICK)
+ | TUTOR(MOVE_BODY_SLAM)
+ | TUTOR(MOVE_DOUBLE_EDGE)
+ | TUTOR(MOVE_COUNTER)
+ | TUTOR(MOVE_SEISMIC_TOSS)
+ | TUTOR(MOVE_MIMIC)
+ | TUTOR(MOVE_DREAM_EATER)
+ | TUTOR(MOVE_THUNDER_WAVE)
+ | TUTOR(MOVE_SUBSTITUTE)
+ | TUTOR(MOVE_DYNAMIC_PUNCH)
+ | TUTOR(MOVE_ROLLOUT)
+ | TUTOR(MOVE_PSYCH_UP)
+ | TUTOR(MOVE_SNORE)
+ | TUTOR(MOVE_ENDURE)
+ | TUTOR(MOVE_MUD_SLAP)
+ | TUTOR(MOVE_ICE_PUNCH)
+ | TUTOR(MOVE_SWAGGER)
+ | TUTOR(MOVE_SLEEP_TALK)
+ | TUTOR(MOVE_DEFENSE_CURL)
+ | TUTOR(MOVE_THUNDER_PUNCH)
+ | TUTOR(MOVE_FIRE_PUNCH)),
+
+ [SPECIES_WIGGLYTUFF] = TUTOR_LEARNSET(TUTOR(MOVE_MEGA_PUNCH)
+ | TUTOR(MOVE_MEGA_KICK)
+ | TUTOR(MOVE_BODY_SLAM)
+ | TUTOR(MOVE_DOUBLE_EDGE)
+ | TUTOR(MOVE_COUNTER)
+ | TUTOR(MOVE_SEISMIC_TOSS)
+ | TUTOR(MOVE_MIMIC)
+ | TUTOR(MOVE_DREAM_EATER)
+ | TUTOR(MOVE_THUNDER_WAVE)
+ | TUTOR(MOVE_SUBSTITUTE)
+ | TUTOR(MOVE_DYNAMIC_PUNCH)
+ | TUTOR(MOVE_ROLLOUT)
+ | TUTOR(MOVE_PSYCH_UP)
+ | TUTOR(MOVE_SNORE)
+ | TUTOR(MOVE_ENDURE)
+ | TUTOR(MOVE_MUD_SLAP)
+ | TUTOR(MOVE_ICE_PUNCH)
+ | TUTOR(MOVE_SWAGGER)
+ | TUTOR(MOVE_SLEEP_TALK)
+ | TUTOR(MOVE_DEFENSE_CURL)
+ | TUTOR(MOVE_THUNDER_PUNCH)
+ | TUTOR(MOVE_FIRE_PUNCH)),
+
+ [SPECIES_ZUBAT] = TUTOR_LEARNSET(TUTOR(MOVE_DOUBLE_EDGE)
+ | TUTOR(MOVE_MIMIC)
+ | TUTOR(MOVE_SUBSTITUTE)
+ | TUTOR(MOVE_SNORE)
+ | TUTOR(MOVE_ENDURE)
+ | TUTOR(MOVE_SWAGGER)
+ | TUTOR(MOVE_SLEEP_TALK)
+ | TUTOR(MOVE_SWIFT)),
+
+ [SPECIES_GOLBAT] = TUTOR_LEARNSET(TUTOR(MOVE_DOUBLE_EDGE)
+ | TUTOR(MOVE_MIMIC)
+ | TUTOR(MOVE_SUBSTITUTE)
+ | TUTOR(MOVE_SNORE)
+ | TUTOR(MOVE_ENDURE)
+ | TUTOR(MOVE_SWAGGER)
+ | TUTOR(MOVE_SLEEP_TALK)
+ | TUTOR(MOVE_SWIFT)),
+
+ [SPECIES_ODDISH] = TUTOR_LEARNSET(TUTOR(MOVE_SWORDS_DANCE)
+ | TUTOR(MOVE_DOUBLE_EDGE)
+ | TUTOR(MOVE_MIMIC)
+ | TUTOR(MOVE_SUBSTITUTE)
+ | TUTOR(MOVE_SNORE)
+ | TUTOR(MOVE_ENDURE)
+ | TUTOR(MOVE_SWAGGER)
+ | TUTOR(MOVE_SLEEP_TALK)),
+
+ [SPECIES_GLOOM] = TUTOR_LEARNSET(TUTOR(MOVE_SWORDS_DANCE)
+ | TUTOR(MOVE_DOUBLE_EDGE)
+ | TUTOR(MOVE_MIMIC)
+ | TUTOR(MOVE_SUBSTITUTE)
+ | TUTOR(MOVE_SNORE)
+ | TUTOR(MOVE_ENDURE)
+ | TUTOR(MOVE_SWAGGER)
+ | TUTOR(MOVE_SLEEP_TALK)),
+
+ [SPECIES_VILEPLUME] = TUTOR_LEARNSET(TUTOR(MOVE_SWORDS_DANCE)
+ | TUTOR(MOVE_BODY_SLAM)
+ | TUTOR(MOVE_DOUBLE_EDGE)
+ | TUTOR(MOVE_MIMIC)
+ | TUTOR(MOVE_SUBSTITUTE)
+ | TUTOR(MOVE_SNORE)
+ | TUTOR(MOVE_ENDURE)
+ | TUTOR(MOVE_SWAGGER)
+ | TUTOR(MOVE_SLEEP_TALK)),
+
+ [SPECIES_PARAS] = TUTOR_LEARNSET(TUTOR(MOVE_SWORDS_DANCE)
+ | TUTOR(MOVE_BODY_SLAM)
+ | TUTOR(MOVE_DOUBLE_EDGE)
+ | TUTOR(MOVE_COUNTER)
+ | TUTOR(MOVE_MIMIC)
+ | TUTOR(MOVE_SUBSTITUTE)
+ | TUTOR(MOVE_SNORE)
+ | TUTOR(MOVE_ENDURE)
+ | TUTOR(MOVE_SWAGGER)
+ | TUTOR(MOVE_SLEEP_TALK)
+ | TUTOR(MOVE_FURY_CUTTER)),
+
+ [SPECIES_PARASECT] = TUTOR_LEARNSET(TUTOR(MOVE_SWORDS_DANCE)
+ | TUTOR(MOVE_BODY_SLAM)
+ | TUTOR(MOVE_DOUBLE_EDGE)
+ | TUTOR(MOVE_COUNTER)
+ | TUTOR(MOVE_MIMIC)
+ | TUTOR(MOVE_SUBSTITUTE)
+ | TUTOR(MOVE_SNORE)
+ | TUTOR(MOVE_ENDURE)
+ | TUTOR(MOVE_SWAGGER)
+ | TUTOR(MOVE_SLEEP_TALK)
+ | TUTOR(MOVE_FURY_CUTTER)),
+
+ [SPECIES_VENONAT] = TUTOR_LEARNSET(TUTOR(MOVE_DOUBLE_EDGE)
+ | TUTOR(MOVE_MIMIC)
+ | TUTOR(MOVE_SUBSTITUTE)
+ | TUTOR(MOVE_SNORE)
+ | TUTOR(MOVE_ENDURE)
+ | TUTOR(MOVE_SWAGGER)
+ | TUTOR(MOVE_SLEEP_TALK)
+ | TUTOR(MOVE_SWIFT)),
+
+ [SPECIES_VENOMOTH] = TUTOR_LEARNSET(TUTOR(MOVE_DOUBLE_EDGE)
+ | TUTOR(MOVE_MIMIC)
+ | TUTOR(MOVE_SUBSTITUTE)
+ | TUTOR(MOVE_SNORE)
+ | TUTOR(MOVE_ENDURE)
+ | TUTOR(MOVE_SWAGGER)
+ | TUTOR(MOVE_SLEEP_TALK)
+ | TUTOR(MOVE_SWIFT)),
+
+ [SPECIES_DIGLETT] = TUTOR_LEARNSET(TUTOR(MOVE_BODY_SLAM)
+ | TUTOR(MOVE_DOUBLE_EDGE)
+ | TUTOR(MOVE_MIMIC)
+ | TUTOR(MOVE_ROCK_SLIDE)
+ | TUTOR(MOVE_SUBSTITUTE)
+ | TUTOR(MOVE_SNORE)
+ | TUTOR(MOVE_ENDURE)
+ | TUTOR(MOVE_MUD_SLAP)
+ | TUTOR(MOVE_SWAGGER)
+ | TUTOR(MOVE_SLEEP_TALK)),
+
+ [SPECIES_DUGTRIO] = TUTOR_LEARNSET(TUTOR(MOVE_BODY_SLAM)
+ | TUTOR(MOVE_DOUBLE_EDGE)
+ | TUTOR(MOVE_MIMIC)
+ | TUTOR(MOVE_ROCK_SLIDE)
+ | TUTOR(MOVE_SUBSTITUTE)
+ | TUTOR(MOVE_SNORE)
+ | TUTOR(MOVE_ENDURE)
+ | TUTOR(MOVE_MUD_SLAP)
+ | TUTOR(MOVE_SWAGGER)
+ | TUTOR(MOVE_SLEEP_TALK)),
+
+ [SPECIES_MEOWTH] = TUTOR_LEARNSET(TUTOR(MOVE_BODY_SLAM)
+ | TUTOR(MOVE_DOUBLE_EDGE)
+ | TUTOR(MOVE_MIMIC)
+ | TUTOR(MOVE_DREAM_EATER)
+ | TUTOR(MOVE_SUBSTITUTE)
+ | TUTOR(MOVE_PSYCH_UP)
+ | TUTOR(MOVE_SNORE)
+ | TUTOR(MOVE_ICY_WIND)
+ | TUTOR(MOVE_ENDURE)
+ | TUTOR(MOVE_MUD_SLAP)
+ | TUTOR(MOVE_SWAGGER)
+ | TUTOR(MOVE_SLEEP_TALK)
+ | TUTOR(MOVE_SWIFT)
+ | TUTOR(MOVE_DEFENSE_CURL)),
+
+ [SPECIES_PERSIAN] = TUTOR_LEARNSET(TUTOR(MOVE_BODY_SLAM)
+ | TUTOR(MOVE_DOUBLE_EDGE)
+ | TUTOR(MOVE_MIMIC)
+ | TUTOR(MOVE_DREAM_EATER)
+ | TUTOR(MOVE_SUBSTITUTE)
+ | TUTOR(MOVE_PSYCH_UP)
+ | TUTOR(MOVE_SNORE)
+ | TUTOR(MOVE_ICY_WIND)
+ | TUTOR(MOVE_ENDURE)
+ | TUTOR(MOVE_MUD_SLAP)
+ | TUTOR(MOVE_SWAGGER)
+ | TUTOR(MOVE_SLEEP_TALK)
+ | TUTOR(MOVE_SWIFT)
+ | TUTOR(MOVE_DEFENSE_CURL)),
+
+ [SPECIES_PSYDUCK] = TUTOR_LEARNSET(TUTOR(MOVE_MEGA_PUNCH)
+ | TUTOR(MOVE_MEGA_KICK)
+ | TUTOR(MOVE_BODY_SLAM)
+ | TUTOR(MOVE_DOUBLE_EDGE)
+ | TUTOR(MOVE_COUNTER)
+ | TUTOR(MOVE_SEISMIC_TOSS)
+ | TUTOR(MOVE_MIMIC)
+ | TUTOR(MOVE_SUBSTITUTE)
+ | TUTOR(MOVE_DYNAMIC_PUNCH)
+ | TUTOR(MOVE_PSYCH_UP)
+ | TUTOR(MOVE_SNORE)
+ | TUTOR(MOVE_ICY_WIND)
+ | TUTOR(MOVE_ENDURE)
+ | TUTOR(MOVE_MUD_SLAP)
+ | TUTOR(MOVE_ICE_PUNCH)
+ | TUTOR(MOVE_SWAGGER)
+ | TUTOR(MOVE_SLEEP_TALK)
+ | TUTOR(MOVE_SWIFT)),
+
+ [SPECIES_GOLDUCK] = TUTOR_LEARNSET(TUTOR(MOVE_MEGA_PUNCH)
+ | TUTOR(MOVE_MEGA_KICK)
+ | TUTOR(MOVE_BODY_SLAM)
+ | TUTOR(MOVE_DOUBLE_EDGE)
+ | TUTOR(MOVE_COUNTER)
+ | TUTOR(MOVE_SEISMIC_TOSS)
+ | TUTOR(MOVE_MIMIC)
+ | TUTOR(MOVE_SUBSTITUTE)
+ | TUTOR(MOVE_DYNAMIC_PUNCH)
+ | TUTOR(MOVE_PSYCH_UP)
+ | TUTOR(MOVE_SNORE)
+ | TUTOR(MOVE_ICY_WIND)
+ | TUTOR(MOVE_ENDURE)
+ | TUTOR(MOVE_MUD_SLAP)
+ | TUTOR(MOVE_ICE_PUNCH)
+ | TUTOR(MOVE_SWAGGER)
+ | TUTOR(MOVE_SLEEP_TALK)
+ | TUTOR(MOVE_SWIFT)
+ | TUTOR(MOVE_FURY_CUTTER)),
+
+ [SPECIES_MANKEY] = TUTOR_LEARNSET(TUTOR(MOVE_MEGA_PUNCH)
+ | TUTOR(MOVE_MEGA_KICK)
+ | TUTOR(MOVE_BODY_SLAM)
+ | TUTOR(MOVE_DOUBLE_EDGE)
+ | TUTOR(MOVE_COUNTER)
+ | TUTOR(MOVE_SEISMIC_TOSS)
+ | TUTOR(MOVE_MIMIC)
+ | TUTOR(MOVE_METRONOME)
+ | TUTOR(MOVE_ROCK_SLIDE)
+ | TUTOR(MOVE_SUBSTITUTE)
+ | TUTOR(MOVE_DYNAMIC_PUNCH)
+ | TUTOR(MOVE_PSYCH_UP)
+ | TUTOR(MOVE_SNORE)
+ | TUTOR(MOVE_ENDURE)
+ | TUTOR(MOVE_MUD_SLAP)
+ | TUTOR(MOVE_ICE_PUNCH)
+ | TUTOR(MOVE_SWAGGER)
+ | TUTOR(MOVE_SLEEP_TALK)
+ | TUTOR(MOVE_SWIFT)
+ | TUTOR(MOVE_DEFENSE_CURL)
+ | TUTOR(MOVE_THUNDER_PUNCH)
+ | TUTOR(MOVE_FIRE_PUNCH)),
+
+ [SPECIES_PRIMEAPE] = TUTOR_LEARNSET(TUTOR(MOVE_MEGA_PUNCH)
+ | TUTOR(MOVE_MEGA_KICK)
+ | TUTOR(MOVE_BODY_SLAM)
+ | TUTOR(MOVE_DOUBLE_EDGE)
+ | TUTOR(MOVE_COUNTER)
+ | TUTOR(MOVE_SEISMIC_TOSS)
+ | TUTOR(MOVE_MIMIC)
+ | TUTOR(MOVE_METRONOME)
+ | TUTOR(MOVE_ROCK_SLIDE)
+ | TUTOR(MOVE_SUBSTITUTE)
+ | TUTOR(MOVE_DYNAMIC_PUNCH)
+ | TUTOR(MOVE_PSYCH_UP)
+ | TUTOR(MOVE_SNORE)
+ | TUTOR(MOVE_ENDURE)
+ | TUTOR(MOVE_MUD_SLAP)
+ | TUTOR(MOVE_ICE_PUNCH)
+ | TUTOR(MOVE_SWAGGER)
+ | TUTOR(MOVE_SLEEP_TALK)
+ | TUTOR(MOVE_SWIFT)
+ | TUTOR(MOVE_DEFENSE_CURL)
+ | TUTOR(MOVE_THUNDER_PUNCH)
+ | TUTOR(MOVE_FIRE_PUNCH)),
+
+ [SPECIES_GROWLITHE] = TUTOR_LEARNSET(TUTOR(MOVE_BODY_SLAM)
+ | TUTOR(MOVE_DOUBLE_EDGE)
+ | TUTOR(MOVE_MIMIC)
+ | TUTOR(MOVE_SUBSTITUTE)
+ | TUTOR(MOVE_SNORE)
+ | TUTOR(MOVE_ENDURE)
+ | TUTOR(MOVE_SWAGGER)
+ | TUTOR(MOVE_SLEEP_TALK)
+ | TUTOR(MOVE_SWIFT)),
+
+ [SPECIES_ARCANINE] = TUTOR_LEARNSET(TUTOR(MOVE_BODY_SLAM)
+ | TUTOR(MOVE_DOUBLE_EDGE)
+ | TUTOR(MOVE_MIMIC)
+ | TUTOR(MOVE_SUBSTITUTE)
+ | TUTOR(MOVE_SNORE)
+ | TUTOR(MOVE_ENDURE)
+ | TUTOR(MOVE_SWAGGER)
+ | TUTOR(MOVE_SLEEP_TALK)
+ | TUTOR(MOVE_SWIFT)),
+
+ [SPECIES_POLIWAG] = TUTOR_LEARNSET(TUTOR(MOVE_BODY_SLAM)
+ | TUTOR(MOVE_DOUBLE_EDGE)
+ | TUTOR(MOVE_MIMIC)
+ | TUTOR(MOVE_SUBSTITUTE)
+ | TUTOR(MOVE_SNORE)
+ | TUTOR(MOVE_ICY_WIND)
+ | TUTOR(MOVE_ENDURE)
+ | TUTOR(MOVE_SWAGGER)
+ | TUTOR(MOVE_SLEEP_TALK)
+ | TUTOR(MOVE_DEFENSE_CURL)),
+
+ [SPECIES_POLIWHIRL] = TUTOR_LEARNSET(TUTOR(MOVE_MEGA_PUNCH)
+ | TUTOR(MOVE_MEGA_KICK)
+ | TUTOR(MOVE_BODY_SLAM)
+ | TUTOR(MOVE_DOUBLE_EDGE)
+ | TUTOR(MOVE_COUNTER)
+ | TUTOR(MOVE_SEISMIC_TOSS)
+ | TUTOR(MOVE_MIMIC)
+ | TUTOR(MOVE_METRONOME)
+ | TUTOR(MOVE_SUBSTITUTE)
+ | TUTOR(MOVE_SNORE)
+ | TUTOR(MOVE_ICY_WIND)
+ | TUTOR(MOVE_ENDURE)
+ | TUTOR(MOVE_MUD_SLAP)
+ | TUTOR(MOVE_ICE_PUNCH)
+ | TUTOR(MOVE_SWAGGER)
+ | TUTOR(MOVE_SLEEP_TALK)
+ | TUTOR(MOVE_DEFENSE_CURL)),
+
+ [SPECIES_POLIWRATH] = TUTOR_LEARNSET(TUTOR(MOVE_MEGA_PUNCH)
+ | TUTOR(MOVE_MEGA_KICK)
+ | TUTOR(MOVE_BODY_SLAM)
+ | TUTOR(MOVE_DOUBLE_EDGE)
+ | TUTOR(MOVE_COUNTER)
+ | TUTOR(MOVE_SEISMIC_TOSS)
+ | TUTOR(MOVE_MIMIC)
+ | TUTOR(MOVE_METRONOME)
+ | TUTOR(MOVE_SUBSTITUTE)
+ | TUTOR(MOVE_DYNAMIC_PUNCH)
+ | TUTOR(MOVE_SNORE)
+ | TUTOR(MOVE_ICY_WIND)
+ | TUTOR(MOVE_ENDURE)
+ | TUTOR(MOVE_MUD_SLAP)
+ | TUTOR(MOVE_ICE_PUNCH)
+ | TUTOR(MOVE_SWAGGER)
+ | TUTOR(MOVE_SLEEP_TALK)
+ | TUTOR(MOVE_DEFENSE_CURL)),
+
+ [SPECIES_ABRA] = TUTOR_LEARNSET(TUTOR(MOVE_MEGA_PUNCH)
+ | TUTOR(MOVE_MEGA_KICK)
+ | TUTOR(MOVE_BODY_SLAM)
+ | TUTOR(MOVE_DOUBLE_EDGE)
+ | TUTOR(MOVE_COUNTER)
+ | TUTOR(MOVE_SEISMIC_TOSS)
+ | TUTOR(MOVE_MIMIC)
+ | TUTOR(MOVE_METRONOME)
+ | TUTOR(MOVE_DREAM_EATER)
+ | TUTOR(MOVE_THUNDER_WAVE)
+ | TUTOR(MOVE_SUBSTITUTE)
+ | TUTOR(MOVE_DYNAMIC_PUNCH)
+ | TUTOR(MOVE_PSYCH_UP)
+ | TUTOR(MOVE_SNORE)
+ | TUTOR(MOVE_ENDURE)
+ | TUTOR(MOVE_ICE_PUNCH)
+ | TUTOR(MOVE_SWAGGER)
+ | TUTOR(MOVE_SLEEP_TALK)
+ | TUTOR(MOVE_THUNDER_PUNCH)
+ | TUTOR(MOVE_FIRE_PUNCH)),
+
+ [SPECIES_KADABRA] = TUTOR_LEARNSET(TUTOR(MOVE_MEGA_PUNCH)
+ | TUTOR(MOVE_MEGA_KICK)
+ | TUTOR(MOVE_BODY_SLAM)
+ | TUTOR(MOVE_DOUBLE_EDGE)
+ | TUTOR(MOVE_COUNTER)
+ | TUTOR(MOVE_SEISMIC_TOSS)
+ | TUTOR(MOVE_MIMIC)
+ | TUTOR(MOVE_METRONOME)
+ | TUTOR(MOVE_DREAM_EATER)
+ | TUTOR(MOVE_THUNDER_WAVE)
+ | TUTOR(MOVE_SUBSTITUTE)
+ | TUTOR(MOVE_DYNAMIC_PUNCH)
+ | TUTOR(MOVE_PSYCH_UP)
+ | TUTOR(MOVE_SNORE)
+ | TUTOR(MOVE_ENDURE)
+ | TUTOR(MOVE_ICE_PUNCH)
+ | TUTOR(MOVE_SWAGGER)
+ | TUTOR(MOVE_SLEEP_TALK)
+ | TUTOR(MOVE_THUNDER_PUNCH)
+ | TUTOR(MOVE_FIRE_PUNCH)),
+
+ [SPECIES_ALAKAZAM] = TUTOR_LEARNSET(TUTOR(MOVE_MEGA_PUNCH)
+ | TUTOR(MOVE_MEGA_KICK)
+ | TUTOR(MOVE_BODY_SLAM)
+ | TUTOR(MOVE_DOUBLE_EDGE)
+ | TUTOR(MOVE_COUNTER)
+ | TUTOR(MOVE_SEISMIC_TOSS)
+ | TUTOR(MOVE_MIMIC)
+ | TUTOR(MOVE_METRONOME)
+ | TUTOR(MOVE_DREAM_EATER)
+ | TUTOR(MOVE_THUNDER_WAVE)
+ | TUTOR(MOVE_SUBSTITUTE)
+ | TUTOR(MOVE_DYNAMIC_PUNCH)
+ | TUTOR(MOVE_PSYCH_UP)
+ | TUTOR(MOVE_SNORE)
+ | TUTOR(MOVE_ENDURE)
+ | TUTOR(MOVE_ICE_PUNCH)
+ | TUTOR(MOVE_SWAGGER)
+ | TUTOR(MOVE_SLEEP_TALK)
+ | TUTOR(MOVE_THUNDER_PUNCH)
+ | TUTOR(MOVE_FIRE_PUNCH)),
+
+ [SPECIES_MACHOP] = TUTOR_LEARNSET(TUTOR(MOVE_MEGA_PUNCH)
+ | TUTOR(MOVE_MEGA_KICK)
+ | TUTOR(MOVE_BODY_SLAM)
+ | TUTOR(MOVE_DOUBLE_EDGE)
+ | TUTOR(MOVE_COUNTER)
+ | TUTOR(MOVE_SEISMIC_TOSS)
+ | TUTOR(MOVE_MIMIC)
+ | TUTOR(MOVE_METRONOME)
+ | TUTOR(MOVE_ROCK_SLIDE)
+ | TUTOR(MOVE_SUBSTITUTE)
+ | TUTOR(MOVE_DYNAMIC_PUNCH)
+ | TUTOR(MOVE_SNORE)
+ | TUTOR(MOVE_ENDURE)
+ | TUTOR(MOVE_MUD_SLAP)
+ | TUTOR(MOVE_ICE_PUNCH)
+ | TUTOR(MOVE_SWAGGER)
+ | TUTOR(MOVE_SLEEP_TALK)
+ | TUTOR(MOVE_THUNDER_PUNCH)
+ | TUTOR(MOVE_FIRE_PUNCH)),
+
+ [SPECIES_MACHOKE] = TUTOR_LEARNSET(TUTOR(MOVE_MEGA_PUNCH)
+ | TUTOR(MOVE_MEGA_KICK)
+ | TUTOR(MOVE_BODY_SLAM)
+ | TUTOR(MOVE_DOUBLE_EDGE)
+ | TUTOR(MOVE_COUNTER)
+ | TUTOR(MOVE_SEISMIC_TOSS)
+ | TUTOR(MOVE_MIMIC)
+ | TUTOR(MOVE_METRONOME)
+ | TUTOR(MOVE_ROCK_SLIDE)
+ | TUTOR(MOVE_SUBSTITUTE)
+ | TUTOR(MOVE_DYNAMIC_PUNCH)
+ | TUTOR(MOVE_SNORE)
+ | TUTOR(MOVE_ENDURE)
+ | TUTOR(MOVE_MUD_SLAP)
+ | TUTOR(MOVE_ICE_PUNCH)
+ | TUTOR(MOVE_SWAGGER)
+ | TUTOR(MOVE_SLEEP_TALK)
+ | TUTOR(MOVE_THUNDER_PUNCH)
+ | TUTOR(MOVE_FIRE_PUNCH)),
+
+ [SPECIES_MACHAMP] = TUTOR_LEARNSET(TUTOR(MOVE_MEGA_PUNCH)
+ | TUTOR(MOVE_MEGA_KICK)
+ | TUTOR(MOVE_BODY_SLAM)
+ | TUTOR(MOVE_DOUBLE_EDGE)
+ | TUTOR(MOVE_COUNTER)
+ | TUTOR(MOVE_SEISMIC_TOSS)
+ | TUTOR(MOVE_MIMIC)
+ | TUTOR(MOVE_METRONOME)
+ | TUTOR(MOVE_ROCK_SLIDE)
+ | TUTOR(MOVE_SUBSTITUTE)
+ | TUTOR(MOVE_DYNAMIC_PUNCH)
+ | TUTOR(MOVE_SNORE)
+ | TUTOR(MOVE_ENDURE)
+ | TUTOR(MOVE_MUD_SLAP)
+ | TUTOR(MOVE_ICE_PUNCH)
+ | TUTOR(MOVE_SWAGGER)
+ | TUTOR(MOVE_SLEEP_TALK)
+ | TUTOR(MOVE_THUNDER_PUNCH)
+ | TUTOR(MOVE_FIRE_PUNCH)),
+
+ [SPECIES_BELLSPROUT] = TUTOR_LEARNSET(TUTOR(MOVE_SWORDS_DANCE)
+ | TUTOR(MOVE_DOUBLE_EDGE)
+ | TUTOR(MOVE_MIMIC)
+ | TUTOR(MOVE_SUBSTITUTE)
+ | TUTOR(MOVE_SNORE)
+ | TUTOR(MOVE_ENDURE)
+ | TUTOR(MOVE_SWAGGER)
+ | TUTOR(MOVE_SLEEP_TALK)),
+
+ [SPECIES_WEEPINBELL] = TUTOR_LEARNSET(TUTOR(MOVE_SWORDS_DANCE)
+ | TUTOR(MOVE_DOUBLE_EDGE)
+ | TUTOR(MOVE_MIMIC)
+ | TUTOR(MOVE_SUBSTITUTE)
+ | TUTOR(MOVE_SNORE)
+ | TUTOR(MOVE_ENDURE)
+ | TUTOR(MOVE_SWAGGER)
+ | TUTOR(MOVE_SLEEP_TALK)),
+
+ [SPECIES_VICTREEBEL] = TUTOR_LEARNSET(TUTOR(MOVE_SWORDS_DANCE)
+ | TUTOR(MOVE_BODY_SLAM)
+ | TUTOR(MOVE_DOUBLE_EDGE)
+ | TUTOR(MOVE_MIMIC)
+ | TUTOR(MOVE_SUBSTITUTE)
+ | TUTOR(MOVE_SNORE)
+ | TUTOR(MOVE_ENDURE)
+ | TUTOR(MOVE_SWAGGER)
+ | TUTOR(MOVE_SLEEP_TALK)),
+
+ [SPECIES_TENTACOOL] = TUTOR_LEARNSET(TUTOR(MOVE_SWORDS_DANCE)
+ | TUTOR(MOVE_DOUBLE_EDGE)
+ | TUTOR(MOVE_MIMIC)
+ | TUTOR(MOVE_SUBSTITUTE)
+ | TUTOR(MOVE_SNORE)
+ | TUTOR(MOVE_ICY_WIND)
+ | TUTOR(MOVE_ENDURE)
+ | TUTOR(MOVE_SWAGGER)
+ | TUTOR(MOVE_SLEEP_TALK)),
+
+ [SPECIES_TENTACRUEL] = TUTOR_LEARNSET(TUTOR(MOVE_SWORDS_DANCE)
+ | TUTOR(MOVE_DOUBLE_EDGE)
+ | TUTOR(MOVE_MIMIC)
+ | TUTOR(MOVE_SUBSTITUTE)
+ | TUTOR(MOVE_SNORE)
+ | TUTOR(MOVE_ICY_WIND)
+ | TUTOR(MOVE_ENDURE)
+ | TUTOR(MOVE_SWAGGER)
+ | TUTOR(MOVE_SLEEP_TALK)),
+
+ [SPECIES_GEODUDE] = TUTOR_LEARNSET(TUTOR(MOVE_MEGA_PUNCH)
+ | TUTOR(MOVE_BODY_SLAM)
+ | TUTOR(MOVE_DOUBLE_EDGE)
+ | TUTOR(MOVE_COUNTER)
+ | TUTOR(MOVE_SEISMIC_TOSS)
+ | TUTOR(MOVE_MIMIC)
+ | TUTOR(MOVE_METRONOME)
+ | TUTOR(MOVE_EXPLOSION)
+ | TUTOR(MOVE_ROCK_SLIDE)
+ | TUTOR(MOVE_SUBSTITUTE)
+ | TUTOR(MOVE_DYNAMIC_PUNCH)
+ | TUTOR(MOVE_ROLLOUT)
+ | TUTOR(MOVE_SNORE)
+ | TUTOR(MOVE_ENDURE)
+ | TUTOR(MOVE_MUD_SLAP)
+ | TUTOR(MOVE_SWAGGER)
+ | TUTOR(MOVE_SLEEP_TALK)
+ | TUTOR(MOVE_DEFENSE_CURL)
+ | TUTOR(MOVE_FIRE_PUNCH)),
+
+ [SPECIES_GRAVELER] = TUTOR_LEARNSET(TUTOR(MOVE_MEGA_PUNCH)
+ | TUTOR(MOVE_BODY_SLAM)
+ | TUTOR(MOVE_DOUBLE_EDGE)
+ | TUTOR(MOVE_COUNTER)
+ | TUTOR(MOVE_SEISMIC_TOSS)
+ | TUTOR(MOVE_MIMIC)
+ | TUTOR(MOVE_METRONOME)
+ | TUTOR(MOVE_EXPLOSION)
+ | TUTOR(MOVE_ROCK_SLIDE)
+ | TUTOR(MOVE_SUBSTITUTE)
+ | TUTOR(MOVE_DYNAMIC_PUNCH)
+ | TUTOR(MOVE_ROLLOUT)
+ | TUTOR(MOVE_SNORE)
+ | TUTOR(MOVE_ENDURE)
+ | TUTOR(MOVE_MUD_SLAP)
+ | TUTOR(MOVE_SWAGGER)
+ | TUTOR(MOVE_SLEEP_TALK)
+ | TUTOR(MOVE_DEFENSE_CURL)
+ | TUTOR(MOVE_FIRE_PUNCH)),
+
+ [SPECIES_GOLEM] = TUTOR_LEARNSET(TUTOR(MOVE_MEGA_PUNCH)
+ | TUTOR(MOVE_MEGA_KICK)
+ | TUTOR(MOVE_BODY_SLAM)
+ | TUTOR(MOVE_DOUBLE_EDGE)
+ | TUTOR(MOVE_COUNTER)
+ | TUTOR(MOVE_SEISMIC_TOSS)
+ | TUTOR(MOVE_MIMIC)
+ | TUTOR(MOVE_METRONOME)
+ | TUTOR(MOVE_EXPLOSION)
+ | TUTOR(MOVE_ROCK_SLIDE)
+ | TUTOR(MOVE_SUBSTITUTE)
+ | TUTOR(MOVE_DYNAMIC_PUNCH)
+ | TUTOR(MOVE_ROLLOUT)
+ | TUTOR(MOVE_SNORE)
+ | TUTOR(MOVE_ENDURE)
+ | TUTOR(MOVE_MUD_SLAP)
+ | TUTOR(MOVE_SWAGGER)
+ | TUTOR(MOVE_SLEEP_TALK)
+ | TUTOR(MOVE_DEFENSE_CURL)
+ | TUTOR(MOVE_FIRE_PUNCH)
+ | TUTOR(MOVE_FURY_CUTTER)),
+
+ [SPECIES_PONYTA] = TUTOR_LEARNSET(TUTOR(MOVE_BODY_SLAM)
+ | TUTOR(MOVE_DOUBLE_EDGE)
+ | TUTOR(MOVE_MIMIC)
+ | TUTOR(MOVE_SUBSTITUTE)
+ | TUTOR(MOVE_SNORE)
+ | TUTOR(MOVE_ENDURE)
+ | TUTOR(MOVE_SWAGGER)
+ | TUTOR(MOVE_SLEEP_TALK)
+ | TUTOR(MOVE_SWIFT)),
+
+ [SPECIES_RAPIDASH] = TUTOR_LEARNSET(TUTOR(MOVE_BODY_SLAM)
+ | TUTOR(MOVE_DOUBLE_EDGE)
+ | TUTOR(MOVE_MIMIC)
+ | TUTOR(MOVE_SUBSTITUTE)
+ | TUTOR(MOVE_SNORE)
+ | TUTOR(MOVE_ENDURE)
+ | TUTOR(MOVE_SWAGGER)
+ | TUTOR(MOVE_SLEEP_TALK)
+ | TUTOR(MOVE_SWIFT)),
+
+ [SPECIES_SLOWPOKE] = TUTOR_LEARNSET(TUTOR(MOVE_BODY_SLAM)
+ | TUTOR(MOVE_DOUBLE_EDGE)
+ | TUTOR(MOVE_MIMIC)
+ | TUTOR(MOVE_DREAM_EATER)
+ | TUTOR(MOVE_THUNDER_WAVE)
+ | TUTOR(MOVE_SUBSTITUTE)
+ | TUTOR(MOVE_PSYCH_UP)
+ | TUTOR(MOVE_SNORE)
+ | TUTOR(MOVE_ICY_WIND)
+ | TUTOR(MOVE_ENDURE)
+ | TUTOR(MOVE_MUD_SLAP)
+ | TUTOR(MOVE_SWAGGER)
+ | TUTOR(MOVE_SLEEP_TALK)
+ | TUTOR(MOVE_SWIFT)),
+
+ [SPECIES_SLOWBRO] = TUTOR_LEARNSET(TUTOR(MOVE_MEGA_PUNCH)
+ | TUTOR(MOVE_MEGA_KICK)
+ | TUTOR(MOVE_BODY_SLAM)
+ | TUTOR(MOVE_DOUBLE_EDGE)
+ | TUTOR(MOVE_COUNTER)
+ | TUTOR(MOVE_SEISMIC_TOSS)
+ | TUTOR(MOVE_MIMIC)
+ | TUTOR(MOVE_DREAM_EATER)
+ | TUTOR(MOVE_THUNDER_WAVE)
+ | TUTOR(MOVE_SUBSTITUTE)
+ | TUTOR(MOVE_DYNAMIC_PUNCH)
+ | TUTOR(MOVE_PSYCH_UP)
+ | TUTOR(MOVE_SNORE)
+ | TUTOR(MOVE_ICY_WIND)
+ | TUTOR(MOVE_ENDURE)
+ | TUTOR(MOVE_MUD_SLAP)
+ | TUTOR(MOVE_ICE_PUNCH)
+ | TUTOR(MOVE_SWAGGER)
+ | TUTOR(MOVE_SLEEP_TALK)
+ | TUTOR(MOVE_SWIFT)
+ | TUTOR(MOVE_FURY_CUTTER)),
+
+ [SPECIES_MAGNEMITE] = TUTOR_LEARNSET(TUTOR(MOVE_DOUBLE_EDGE)
+ | TUTOR(MOVE_MIMIC)
+ | TUTOR(MOVE_THUNDER_WAVE)
+ | TUTOR(MOVE_SUBSTITUTE)
+ | TUTOR(MOVE_ROLLOUT)
+ | TUTOR(MOVE_SNORE)
+ | TUTOR(MOVE_ENDURE)
+ | TUTOR(MOVE_SWAGGER)
+ | TUTOR(MOVE_SLEEP_TALK)
+ | TUTOR(MOVE_SWIFT)),
+
+ [SPECIES_MAGNETON] = TUTOR_LEARNSET(TUTOR(MOVE_DOUBLE_EDGE)
+ | TUTOR(MOVE_MIMIC)
+ | TUTOR(MOVE_THUNDER_WAVE)
+ | TUTOR(MOVE_SUBSTITUTE)
+ | TUTOR(MOVE_ROLLOUT)
+ | TUTOR(MOVE_SNORE)
+ | TUTOR(MOVE_ENDURE)
+ | TUTOR(MOVE_SWAGGER)
+ | TUTOR(MOVE_SLEEP_TALK)
+ | TUTOR(MOVE_SWIFT)),
+
+ [SPECIES_FARFETCHD] = TUTOR_LEARNSET(TUTOR(MOVE_SWORDS_DANCE)
+ | TUTOR(MOVE_BODY_SLAM)
+ | TUTOR(MOVE_DOUBLE_EDGE)
+ | TUTOR(MOVE_MIMIC)
+ | TUTOR(MOVE_SUBSTITUTE)
+ | TUTOR(MOVE_PSYCH_UP)
+ | TUTOR(MOVE_SNORE)
+ | TUTOR(MOVE_ENDURE)
+ | TUTOR(MOVE_MUD_SLAP)
+ | TUTOR(MOVE_SWAGGER)
+ | TUTOR(MOVE_SLEEP_TALK)
+ | TUTOR(MOVE_SWIFT)),
+
+ [SPECIES_DODUO] = TUTOR_LEARNSET(TUTOR(MOVE_BODY_SLAM)
+ | TUTOR(MOVE_DOUBLE_EDGE)
+ | TUTOR(MOVE_MIMIC)
+ | TUTOR(MOVE_SUBSTITUTE)
+ | TUTOR(MOVE_SNORE)
+ | TUTOR(MOVE_ENDURE)
+ | TUTOR(MOVE_MUD_SLAP)
+ | TUTOR(MOVE_SWAGGER)
+ | TUTOR(MOVE_SLEEP_TALK)
+ | TUTOR(MOVE_SWIFT)),
+
+ [SPECIES_DODRIO] = TUTOR_LEARNSET(TUTOR(MOVE_BODY_SLAM)
+ | TUTOR(MOVE_DOUBLE_EDGE)
+ | TUTOR(MOVE_MIMIC)
+ | TUTOR(MOVE_SUBSTITUTE)
+ | TUTOR(MOVE_SNORE)
+ | TUTOR(MOVE_ENDURE)
+ | TUTOR(MOVE_MUD_SLAP)
+ | TUTOR(MOVE_SWAGGER)
+ | TUTOR(MOVE_SLEEP_TALK)
+ | TUTOR(MOVE_SWIFT)),
+
+ [SPECIES_SEEL] = TUTOR_LEARNSET(TUTOR(MOVE_BODY_SLAM)
+ | TUTOR(MOVE_DOUBLE_EDGE)
+ | TUTOR(MOVE_MIMIC)
+ | TUTOR(MOVE_SUBSTITUTE)
+ | TUTOR(MOVE_SNORE)
+ | TUTOR(MOVE_ICY_WIND)
+ | TUTOR(MOVE_ENDURE)
+ | TUTOR(MOVE_SWAGGER)
+ | TUTOR(MOVE_SLEEP_TALK)),
+
+ [SPECIES_DEWGONG] = TUTOR_LEARNSET(TUTOR(MOVE_BODY_SLAM)
+ | TUTOR(MOVE_DOUBLE_EDGE)
+ | TUTOR(MOVE_MIMIC)
+ | TUTOR(MOVE_SUBSTITUTE)
+ | TUTOR(MOVE_SNORE)
+ | TUTOR(MOVE_ICY_WIND)
+ | TUTOR(MOVE_ENDURE)
+ | TUTOR(MOVE_SWAGGER)
+ | TUTOR(MOVE_SLEEP_TALK)),
+
+ [SPECIES_GRIMER] = TUTOR_LEARNSET(TUTOR(MOVE_BODY_SLAM)
+ | TUTOR(MOVE_MIMIC)
+ | TUTOR(MOVE_EXPLOSION)
+ | TUTOR(MOVE_SUBSTITUTE)
+ | TUTOR(MOVE_DYNAMIC_PUNCH)
+ | TUTOR(MOVE_SNORE)
+ | TUTOR(MOVE_ENDURE)
+ | TUTOR(MOVE_MUD_SLAP)
+ | TUTOR(MOVE_ICE_PUNCH)
+ | TUTOR(MOVE_SWAGGER)
+ | TUTOR(MOVE_SLEEP_TALK)
+ | TUTOR(MOVE_THUNDER_PUNCH)
+ | TUTOR(MOVE_FIRE_PUNCH)),
+
+ [SPECIES_MUK] = TUTOR_LEARNSET(TUTOR(MOVE_BODY_SLAM)
+ | TUTOR(MOVE_MIMIC)
+ | TUTOR(MOVE_EXPLOSION)
+ | TUTOR(MOVE_SUBSTITUTE)
+ | TUTOR(MOVE_DYNAMIC_PUNCH)
+ | TUTOR(MOVE_SNORE)
+ | TUTOR(MOVE_ENDURE)
+ | TUTOR(MOVE_MUD_SLAP)
+ | TUTOR(MOVE_ICE_PUNCH)
+ | TUTOR(MOVE_SWAGGER)
+ | TUTOR(MOVE_SLEEP_TALK)
+ | TUTOR(MOVE_THUNDER_PUNCH)
+ | TUTOR(MOVE_FIRE_PUNCH)),
+
+ [SPECIES_SHELLDER] = TUTOR_LEARNSET(TUTOR(MOVE_DOUBLE_EDGE)
+ | TUTOR(MOVE_MIMIC)
+ | TUTOR(MOVE_EXPLOSION)
+ | TUTOR(MOVE_SUBSTITUTE)
+ | TUTOR(MOVE_SNORE)
+ | TUTOR(MOVE_ICY_WIND)
+ | TUTOR(MOVE_ENDURE)
+ | TUTOR(MOVE_SWAGGER)
+ | TUTOR(MOVE_SLEEP_TALK)
+ | TUTOR(MOVE_SWIFT)),
+
+ [SPECIES_CLOYSTER] = TUTOR_LEARNSET(TUTOR(MOVE_DOUBLE_EDGE)
+ | TUTOR(MOVE_MIMIC)
+ | TUTOR(MOVE_EXPLOSION)
+ | TUTOR(MOVE_SUBSTITUTE)
+ | TUTOR(MOVE_SNORE)
+ | TUTOR(MOVE_ICY_WIND)
+ | TUTOR(MOVE_ENDURE)
+ | TUTOR(MOVE_SWAGGER)
+ | TUTOR(MOVE_SLEEP_TALK)
+ | TUTOR(MOVE_SWIFT)),
+
+ [SPECIES_GASTLY] = TUTOR_LEARNSET(TUTOR(MOVE_MIMIC)
+ | TUTOR(MOVE_DREAM_EATER)
+ | TUTOR(MOVE_EXPLOSION)
+ | TUTOR(MOVE_SUBSTITUTE)
+ | TUTOR(MOVE_PSYCH_UP)
+ | TUTOR(MOVE_SNORE)
+ | TUTOR(MOVE_ENDURE)
+ | TUTOR(MOVE_SWAGGER)
+ | TUTOR(MOVE_SLEEP_TALK)),
+
+ [SPECIES_HAUNTER] = TUTOR_LEARNSET(TUTOR(MOVE_MIMIC)
+ | TUTOR(MOVE_DREAM_EATER)
+ | TUTOR(MOVE_EXPLOSION)
+ | TUTOR(MOVE_SUBSTITUTE)
+ | TUTOR(MOVE_PSYCH_UP)
+ | TUTOR(MOVE_SNORE)
+ | TUTOR(MOVE_ENDURE)
+ | TUTOR(MOVE_SWAGGER)
+ | TUTOR(MOVE_SLEEP_TALK)),
+
+ [SPECIES_GENGAR] = TUTOR_LEARNSET(TUTOR(MOVE_MEGA_PUNCH)
+ | TUTOR(MOVE_MEGA_KICK)
+ | TUTOR(MOVE_BODY_SLAM)
+ | TUTOR(MOVE_DOUBLE_EDGE)
+ | TUTOR(MOVE_COUNTER)
+ | TUTOR(MOVE_SEISMIC_TOSS)
+ | TUTOR(MOVE_MIMIC)
+ | TUTOR(MOVE_METRONOME)
+ | TUTOR(MOVE_DREAM_EATER)
+ | TUTOR(MOVE_EXPLOSION)
+ | TUTOR(MOVE_SUBSTITUTE)
+ | TUTOR(MOVE_DYNAMIC_PUNCH)
+ | TUTOR(MOVE_PSYCH_UP)
+ | TUTOR(MOVE_SNORE)
+ | TUTOR(MOVE_ENDURE)
+ | TUTOR(MOVE_ICE_PUNCH)
+ | TUTOR(MOVE_SWAGGER)
+ | TUTOR(MOVE_SLEEP_TALK)
+ | TUTOR(MOVE_THUNDER_PUNCH)
+ | TUTOR(MOVE_FIRE_PUNCH)),
+
+ [SPECIES_ONIX] = TUTOR_LEARNSET(TUTOR(MOVE_BODY_SLAM)
+ | TUTOR(MOVE_DOUBLE_EDGE)
+ | TUTOR(MOVE_MIMIC)
+ | TUTOR(MOVE_EXPLOSION)
+ | TUTOR(MOVE_ROCK_SLIDE)
+ | TUTOR(MOVE_SUBSTITUTE)
+ | TUTOR(MOVE_PSYCH_UP)
+ | TUTOR(MOVE_SNORE)
+ | TUTOR(MOVE_ENDURE)
+ | TUTOR(MOVE_MUD_SLAP)
+ | TUTOR(MOVE_SWAGGER)
+ | TUTOR(MOVE_SLEEP_TALK)),
+
+ [SPECIES_DROWZEE] = TUTOR_LEARNSET(TUTOR(MOVE_MEGA_PUNCH)
+ | TUTOR(MOVE_MEGA_KICK)
+ | TUTOR(MOVE_BODY_SLAM)
+ | TUTOR(MOVE_DOUBLE_EDGE)
+ | TUTOR(MOVE_COUNTER)
+ | TUTOR(MOVE_SEISMIC_TOSS)
+ | TUTOR(MOVE_MIMIC)
+ | TUTOR(MOVE_METRONOME)
+ | TUTOR(MOVE_DREAM_EATER)
+ | TUTOR(MOVE_THUNDER_WAVE)
+ | TUTOR(MOVE_SUBSTITUTE)
+ | TUTOR(MOVE_DYNAMIC_PUNCH)
+ | TUTOR(MOVE_PSYCH_UP)
+ | TUTOR(MOVE_SNORE)
+ | TUTOR(MOVE_ENDURE)
+ | TUTOR(MOVE_ICE_PUNCH)
+ | TUTOR(MOVE_SWAGGER)
+ | TUTOR(MOVE_SLEEP_TALK)
+ | TUTOR(MOVE_THUNDER_PUNCH)
+ | TUTOR(MOVE_FIRE_PUNCH)),
+
+ [SPECIES_HYPNO] = TUTOR_LEARNSET(TUTOR(MOVE_MEGA_PUNCH)
+ | TUTOR(MOVE_MEGA_KICK)
+ | TUTOR(MOVE_BODY_SLAM)
+ | TUTOR(MOVE_DOUBLE_EDGE)
+ | TUTOR(MOVE_COUNTER)
+ | TUTOR(MOVE_SEISMIC_TOSS)
+ | TUTOR(MOVE_MIMIC)
+ | TUTOR(MOVE_METRONOME)
+ | TUTOR(MOVE_DREAM_EATER)
+ | TUTOR(MOVE_THUNDER_WAVE)
+ | TUTOR(MOVE_SUBSTITUTE)
+ | TUTOR(MOVE_DYNAMIC_PUNCH)
+ | TUTOR(MOVE_PSYCH_UP)
+ | TUTOR(MOVE_SNORE)
+ | TUTOR(MOVE_ENDURE)
+ | TUTOR(MOVE_ICE_PUNCH)
+ | TUTOR(MOVE_SWAGGER)
+ | TUTOR(MOVE_SLEEP_TALK)
+ | TUTOR(MOVE_THUNDER_PUNCH)
+ | TUTOR(MOVE_FIRE_PUNCH)),
+
+ [SPECIES_KRABBY] = TUTOR_LEARNSET(TUTOR(MOVE_SWORDS_DANCE)
+ | TUTOR(MOVE_BODY_SLAM)
+ | TUTOR(MOVE_DOUBLE_EDGE)
+ | TUTOR(MOVE_MIMIC)
+ | TUTOR(MOVE_SUBSTITUTE)
+ | TUTOR(MOVE_SNORE)
+ | TUTOR(MOVE_ICY_WIND)
+ | TUTOR(MOVE_ENDURE)
+ | TUTOR(MOVE_MUD_SLAP)
+ | TUTOR(MOVE_SWAGGER)
+ | TUTOR(MOVE_SLEEP_TALK)
+ | TUTOR(MOVE_FURY_CUTTER)),
+
+ [SPECIES_KINGLER] = TUTOR_LEARNSET(TUTOR(MOVE_SWORDS_DANCE)
+ | TUTOR(MOVE_BODY_SLAM)
+ | TUTOR(MOVE_DOUBLE_EDGE)
+ | TUTOR(MOVE_MIMIC)
+ | TUTOR(MOVE_SUBSTITUTE)
+ | TUTOR(MOVE_SNORE)
+ | TUTOR(MOVE_ICY_WIND)
+ | TUTOR(MOVE_ENDURE)
+ | TUTOR(MOVE_MUD_SLAP)
+ | TUTOR(MOVE_SWAGGER)
+ | TUTOR(MOVE_SLEEP_TALK)
+ | TUTOR(MOVE_FURY_CUTTER)),
+
+ [SPECIES_VOLTORB] = TUTOR_LEARNSET(TUTOR(MOVE_MIMIC)
+ | TUTOR(MOVE_THUNDER_WAVE)
+ | TUTOR(MOVE_EXPLOSION)
+ | TUTOR(MOVE_SUBSTITUTE)
+ | TUTOR(MOVE_ROLLOUT)
+ | TUTOR(MOVE_SNORE)
+ | TUTOR(MOVE_ENDURE)
+ | TUTOR(MOVE_SWAGGER)
+ | TUTOR(MOVE_SLEEP_TALK)
+ | TUTOR(MOVE_SWIFT)),
+
+ [SPECIES_ELECTRODE] = TUTOR_LEARNSET(TUTOR(MOVE_MIMIC)
+ | TUTOR(MOVE_THUNDER_WAVE)
+ | TUTOR(MOVE_EXPLOSION)
+ | TUTOR(MOVE_SUBSTITUTE)
+ | TUTOR(MOVE_ROLLOUT)
+ | TUTOR(MOVE_SNORE)
+ | TUTOR(MOVE_ENDURE)
+ | TUTOR(MOVE_SWAGGER)
+ | TUTOR(MOVE_SLEEP_TALK)
+ | TUTOR(MOVE_SWIFT)),
+
+ [SPECIES_EXEGGCUTE] = TUTOR_LEARNSET(TUTOR(MOVE_DOUBLE_EDGE)
+ | TUTOR(MOVE_MIMIC)
+ | TUTOR(MOVE_DREAM_EATER)
+ | TUTOR(MOVE_EXPLOSION)
+ | TUTOR(MOVE_SUBSTITUTE)
+ | TUTOR(MOVE_ROLLOUT)
+ | TUTOR(MOVE_PSYCH_UP)
+ | TUTOR(MOVE_SNORE)
+ | TUTOR(MOVE_ENDURE)
+ | TUTOR(MOVE_SWAGGER)
+ | TUTOR(MOVE_SLEEP_TALK)),
+
+ [SPECIES_EXEGGUTOR] = TUTOR_LEARNSET(TUTOR(MOVE_DOUBLE_EDGE)
+ | TUTOR(MOVE_MIMIC)
+ | TUTOR(MOVE_DREAM_EATER)
+ | TUTOR(MOVE_EXPLOSION)
+ | TUTOR(MOVE_SUBSTITUTE)
+ | TUTOR(MOVE_ROLLOUT)
+ | TUTOR(MOVE_PSYCH_UP)
+ | TUTOR(MOVE_SNORE)
+ | TUTOR(MOVE_ENDURE)
+ | TUTOR(MOVE_SWAGGER)
+ | TUTOR(MOVE_SLEEP_TALK)),
+
+ [SPECIES_CUBONE] = TUTOR_LEARNSET(TUTOR(MOVE_MEGA_PUNCH)
+ | TUTOR(MOVE_SWORDS_DANCE)
+ | TUTOR(MOVE_MEGA_KICK)
+ | TUTOR(MOVE_BODY_SLAM)
+ | TUTOR(MOVE_DOUBLE_EDGE)
+ | TUTOR(MOVE_COUNTER)
+ | TUTOR(MOVE_SEISMIC_TOSS)
+ | TUTOR(MOVE_MIMIC)
+ | TUTOR(MOVE_ROCK_SLIDE)
+ | TUTOR(MOVE_SUBSTITUTE)
+ | TUTOR(MOVE_DYNAMIC_PUNCH)
+ | TUTOR(MOVE_SNORE)
+ | TUTOR(MOVE_ICY_WIND)
+ | TUTOR(MOVE_ENDURE)
+ | TUTOR(MOVE_MUD_SLAP)
+ | TUTOR(MOVE_SWAGGER)
+ | TUTOR(MOVE_SLEEP_TALK)
+ | TUTOR(MOVE_THUNDER_PUNCH)
+ | TUTOR(MOVE_FIRE_PUNCH)),
+
+ [SPECIES_MAROWAK] = TUTOR_LEARNSET(TUTOR(MOVE_MEGA_PUNCH)
+ | TUTOR(MOVE_SWORDS_DANCE)
+ | TUTOR(MOVE_MEGA_KICK)
+ | TUTOR(MOVE_BODY_SLAM)
+ | TUTOR(MOVE_DOUBLE_EDGE)
+ | TUTOR(MOVE_COUNTER)
+ | TUTOR(MOVE_SEISMIC_TOSS)
+ | TUTOR(MOVE_MIMIC)
+ | TUTOR(MOVE_ROCK_SLIDE)
+ | TUTOR(MOVE_SUBSTITUTE)
+ | TUTOR(MOVE_DYNAMIC_PUNCH)
+ | TUTOR(MOVE_SNORE)
+ | TUTOR(MOVE_ICY_WIND)
+ | TUTOR(MOVE_ENDURE)
+ | TUTOR(MOVE_MUD_SLAP)
+ | TUTOR(MOVE_SWAGGER)
+ | TUTOR(MOVE_SLEEP_TALK)
+ | TUTOR(MOVE_THUNDER_PUNCH)
+ | TUTOR(MOVE_FIRE_PUNCH)),
+
+ [SPECIES_HITMONLEE] = TUTOR_LEARNSET(TUTOR(MOVE_MEGA_PUNCH)
+ | TUTOR(MOVE_MEGA_KICK)
+ | TUTOR(MOVE_BODY_SLAM)
+ | TUTOR(MOVE_DOUBLE_EDGE)
+ | TUTOR(MOVE_COUNTER)
+ | TUTOR(MOVE_SEISMIC_TOSS)
+ | TUTOR(MOVE_MIMIC)
+ | TUTOR(MOVE_METRONOME)
+ | TUTOR(MOVE_ROCK_SLIDE)
+ | TUTOR(MOVE_SUBSTITUTE)
+ | TUTOR(MOVE_DYNAMIC_PUNCH)
+ | TUTOR(MOVE_SNORE)
+ | TUTOR(MOVE_ENDURE)
+ | TUTOR(MOVE_MUD_SLAP)
+ | TUTOR(MOVE_SWAGGER)
+ | TUTOR(MOVE_SLEEP_TALK)
+ | TUTOR(MOVE_SWIFT)),
+
+ [SPECIES_HITMONCHAN] = TUTOR_LEARNSET(TUTOR(MOVE_MEGA_PUNCH)
+ | TUTOR(MOVE_MEGA_KICK)
+ | TUTOR(MOVE_BODY_SLAM)
+ | TUTOR(MOVE_DOUBLE_EDGE)
+ | TUTOR(MOVE_COUNTER)
+ | TUTOR(MOVE_SEISMIC_TOSS)
+ | TUTOR(MOVE_MIMIC)
+ | TUTOR(MOVE_METRONOME)
+ | TUTOR(MOVE_ROCK_SLIDE)
+ | TUTOR(MOVE_SUBSTITUTE)
+ | TUTOR(MOVE_DYNAMIC_PUNCH)
+ | TUTOR(MOVE_SNORE)
+ | TUTOR(MOVE_ENDURE)
+ | TUTOR(MOVE_MUD_SLAP)
+ | TUTOR(MOVE_ICE_PUNCH)
+ | TUTOR(MOVE_SWAGGER)
+ | TUTOR(MOVE_SLEEP_TALK)
+ | TUTOR(MOVE_SWIFT)
+ | TUTOR(MOVE_THUNDER_PUNCH)
+ | TUTOR(MOVE_FIRE_PUNCH)),
+
+ [SPECIES_LICKITUNG] = TUTOR_LEARNSET(TUTOR(MOVE_MEGA_PUNCH)
+ | TUTOR(MOVE_SWORDS_DANCE)
+ | TUTOR(MOVE_MEGA_KICK)
+ | TUTOR(MOVE_BODY_SLAM)
+ | TUTOR(MOVE_DOUBLE_EDGE)
+ | TUTOR(MOVE_COUNTER)
+ | TUTOR(MOVE_SEISMIC_TOSS)
+ | TUTOR(MOVE_MIMIC)
+ | TUTOR(MOVE_DREAM_EATER)
+ | TUTOR(MOVE_ROCK_SLIDE)
+ | TUTOR(MOVE_SUBSTITUTE)
+ | TUTOR(MOVE_DYNAMIC_PUNCH)
+ | TUTOR(MOVE_ROLLOUT)
+ | TUTOR(MOVE_PSYCH_UP)
+ | TUTOR(MOVE_SNORE)
+ | TUTOR(MOVE_ICY_WIND)
+ | TUTOR(MOVE_ENDURE)
+ | TUTOR(MOVE_MUD_SLAP)
+ | TUTOR(MOVE_ICE_PUNCH)
+ | TUTOR(MOVE_SWAGGER)
+ | TUTOR(MOVE_SLEEP_TALK)
+ | TUTOR(MOVE_DEFENSE_CURL)
+ | TUTOR(MOVE_THUNDER_PUNCH)
+ | TUTOR(MOVE_FIRE_PUNCH)),
+
+ [SPECIES_KOFFING] = TUTOR_LEARNSET(TUTOR(MOVE_MIMIC)
+ | TUTOR(MOVE_EXPLOSION)
+ | TUTOR(MOVE_SUBSTITUTE)
+ | TUTOR(MOVE_ROLLOUT)
+ | TUTOR(MOVE_SNORE)
+ | TUTOR(MOVE_ENDURE)
+ | TUTOR(MOVE_SWAGGER)
+ | TUTOR(MOVE_SLEEP_TALK)),
+
+ [SPECIES_WEEZING] = TUTOR_LEARNSET(TUTOR(MOVE_MIMIC)
+ | TUTOR(MOVE_EXPLOSION)
+ | TUTOR(MOVE_SUBSTITUTE)
+ | TUTOR(MOVE_ROLLOUT)
+ | TUTOR(MOVE_SNORE)
+ | TUTOR(MOVE_ENDURE)
+ | TUTOR(MOVE_SWAGGER)
+ | TUTOR(MOVE_SLEEP_TALK)),
+
+ [SPECIES_RHYHORN] = TUTOR_LEARNSET(TUTOR(MOVE_SWORDS_DANCE)
+ | TUTOR(MOVE_BODY_SLAM)
+ | TUTOR(MOVE_DOUBLE_EDGE)
+ | TUTOR(MOVE_COUNTER)
+ | TUTOR(MOVE_MIMIC)
+ | TUTOR(MOVE_ROCK_SLIDE)
+ | TUTOR(MOVE_SUBSTITUTE)
+ | TUTOR(MOVE_ROLLOUT)
+ | TUTOR(MOVE_SNORE)
+ | TUTOR(MOVE_ICY_WIND)
+ | TUTOR(MOVE_ENDURE)
+ | TUTOR(MOVE_MUD_SLAP)
+ | TUTOR(MOVE_SWAGGER)
+ | TUTOR(MOVE_SLEEP_TALK)),
+
+ [SPECIES_RHYDON] = TUTOR_LEARNSET(TUTOR(MOVE_MEGA_PUNCH)
+ | TUTOR(MOVE_SWORDS_DANCE)
+ | TUTOR(MOVE_MEGA_KICK)
+ | TUTOR(MOVE_BODY_SLAM)
+ | TUTOR(MOVE_DOUBLE_EDGE)
+ | TUTOR(MOVE_COUNTER)
+ | TUTOR(MOVE_SEISMIC_TOSS)
+ | TUTOR(MOVE_MIMIC)
+ | TUTOR(MOVE_ROCK_SLIDE)
+ | TUTOR(MOVE_SUBSTITUTE)
+ | TUTOR(MOVE_DYNAMIC_PUNCH)
+ | TUTOR(MOVE_ROLLOUT)
+ | TUTOR(MOVE_SNORE)
+ | TUTOR(MOVE_ICY_WIND)
+ | TUTOR(MOVE_ENDURE)
+ | TUTOR(MOVE_MUD_SLAP)
+ | TUTOR(MOVE_SWAGGER)
+ | TUTOR(MOVE_SLEEP_TALK)
+ | TUTOR(MOVE_THUNDER_PUNCH)
+ | TUTOR(MOVE_FIRE_PUNCH)
+ | TUTOR(MOVE_FURY_CUTTER)),
+
+ [SPECIES_CHANSEY] = TUTOR_LEARNSET(TUTOR(MOVE_MEGA_PUNCH)
+ | TUTOR(MOVE_MEGA_KICK)
+ | TUTOR(MOVE_BODY_SLAM)
+ | TUTOR(MOVE_DOUBLE_EDGE)
+ | TUTOR(MOVE_COUNTER)
+ | TUTOR(MOVE_SEISMIC_TOSS)
+ | TUTOR(MOVE_MIMIC)
+ | TUTOR(MOVE_METRONOME)
+ | TUTOR(MOVE_SOFT_BOILED)
+ | TUTOR(MOVE_DREAM_EATER)
+ | TUTOR(MOVE_THUNDER_WAVE)
+ | TUTOR(MOVE_SUBSTITUTE)
+ | TUTOR(MOVE_DYNAMIC_PUNCH)
+ | TUTOR(MOVE_ROLLOUT)
+ | TUTOR(MOVE_PSYCH_UP)
+ | TUTOR(MOVE_SNORE)
+ | TUTOR(MOVE_ICY_WIND)
+ | TUTOR(MOVE_ENDURE)
+ | TUTOR(MOVE_MUD_SLAP)
+ | TUTOR(MOVE_SWAGGER)
+ | TUTOR(MOVE_SLEEP_TALK)
+ | TUTOR(MOVE_DEFENSE_CURL)),
+
+ [SPECIES_TANGELA] = TUTOR_LEARNSET(TUTOR(MOVE_SWORDS_DANCE)
+ | TUTOR(MOVE_BODY_SLAM)
+ | TUTOR(MOVE_DOUBLE_EDGE)
+ | TUTOR(MOVE_MIMIC)
+ | TUTOR(MOVE_SUBSTITUTE)
+ | TUTOR(MOVE_PSYCH_UP)
+ | TUTOR(MOVE_SNORE)
+ | TUTOR(MOVE_ENDURE)
+ | TUTOR(MOVE_SWAGGER)
+ | TUTOR(MOVE_SLEEP_TALK)),
+
+ [SPECIES_KANGASKHAN] = TUTOR_LEARNSET(TUTOR(MOVE_MEGA_PUNCH)
+ | TUTOR(MOVE_MEGA_KICK)
+ | TUTOR(MOVE_BODY_SLAM)
+ | TUTOR(MOVE_DOUBLE_EDGE)
+ | TUTOR(MOVE_COUNTER)
+ | TUTOR(MOVE_SEISMIC_TOSS)
+ | TUTOR(MOVE_MIMIC)
+ | TUTOR(MOVE_ROCK_SLIDE)
+ | TUTOR(MOVE_SUBSTITUTE)
+ | TUTOR(MOVE_DYNAMIC_PUNCH)
+ | TUTOR(MOVE_SNORE)
+ | TUTOR(MOVE_ICY_WIND)
+ | TUTOR(MOVE_ENDURE)
+ | TUTOR(MOVE_MUD_SLAP)
+ | TUTOR(MOVE_ICE_PUNCH)
+ | TUTOR(MOVE_SWAGGER)
+ | TUTOR(MOVE_SLEEP_TALK)
+ | TUTOR(MOVE_THUNDER_PUNCH)
+ | TUTOR(MOVE_FIRE_PUNCH)
+ | TUTOR(MOVE_FURY_CUTTER)),
+
+ [SPECIES_HORSEA] = TUTOR_LEARNSET(TUTOR(MOVE_DOUBLE_EDGE)
+ | TUTOR(MOVE_MIMIC)
+ | TUTOR(MOVE_SUBSTITUTE)
+ | TUTOR(MOVE_SNORE)
+ | TUTOR(MOVE_ICY_WIND)
+ | TUTOR(MOVE_ENDURE)
+ | TUTOR(MOVE_SWAGGER)
+ | TUTOR(MOVE_SLEEP_TALK)
+ | TUTOR(MOVE_SWIFT)),
+
+ [SPECIES_SEADRA] = TUTOR_LEARNSET(TUTOR(MOVE_DOUBLE_EDGE)
+ | TUTOR(MOVE_MIMIC)
+ | TUTOR(MOVE_SUBSTITUTE)
+ | TUTOR(MOVE_SNORE)
+ | TUTOR(MOVE_ICY_WIND)
+ | TUTOR(MOVE_ENDURE)
+ | TUTOR(MOVE_SWAGGER)
+ | TUTOR(MOVE_SLEEP_TALK)
+ | TUTOR(MOVE_SWIFT)),
+
+ [SPECIES_GOLDEEN] = TUTOR_LEARNSET(TUTOR(MOVE_DOUBLE_EDGE)
+ | TUTOR(MOVE_MIMIC)
+ | TUTOR(MOVE_SUBSTITUTE)
+ | TUTOR(MOVE_SNORE)
+ | TUTOR(MOVE_ICY_WIND)
+ | TUTOR(MOVE_ENDURE)
+ | TUTOR(MOVE_SWAGGER)
+ | TUTOR(MOVE_SLEEP_TALK)
+ | TUTOR(MOVE_SWIFT)),
+
+ [SPECIES_SEAKING] = TUTOR_LEARNSET(TUTOR(MOVE_DOUBLE_EDGE)
+ | TUTOR(MOVE_MIMIC)
+ | TUTOR(MOVE_SUBSTITUTE)
+ | TUTOR(MOVE_SNORE)
+ | TUTOR(MOVE_ICY_WIND)
+ | TUTOR(MOVE_ENDURE)
+ | TUTOR(MOVE_SWAGGER)
+ | TUTOR(MOVE_SLEEP_TALK)
+ | TUTOR(MOVE_SWIFT)),
+
+ [SPECIES_STARYU] = TUTOR_LEARNSET(TUTOR(MOVE_DOUBLE_EDGE)
+ | TUTOR(MOVE_MIMIC)
+ | TUTOR(MOVE_THUNDER_WAVE)
+ | TUTOR(MOVE_SUBSTITUTE)
+ | TUTOR(MOVE_PSYCH_UP)
+ | TUTOR(MOVE_SNORE)
+ | TUTOR(MOVE_ICY_WIND)
+ | TUTOR(MOVE_ENDURE)
+ | TUTOR(MOVE_SWAGGER)
+ | TUTOR(MOVE_SLEEP_TALK)
+ | TUTOR(MOVE_SWIFT)),
+
+ [SPECIES_STARMIE] = TUTOR_LEARNSET(TUTOR(MOVE_DOUBLE_EDGE)
+ | TUTOR(MOVE_MIMIC)
+ | TUTOR(MOVE_DREAM_EATER)
+ | TUTOR(MOVE_THUNDER_WAVE)
+ | TUTOR(MOVE_SUBSTITUTE)
+ | TUTOR(MOVE_PSYCH_UP)
+ | TUTOR(MOVE_SNORE)
+ | TUTOR(MOVE_ICY_WIND)
+ | TUTOR(MOVE_ENDURE)
+ | TUTOR(MOVE_SWAGGER)
+ | TUTOR(MOVE_SLEEP_TALK)
+ | TUTOR(MOVE_SWIFT)),
+
+ [SPECIES_MR_MIME] = TUTOR_LEARNSET(TUTOR(MOVE_MEGA_PUNCH)
+ | TUTOR(MOVE_MEGA_KICK)
+ | TUTOR(MOVE_BODY_SLAM)
+ | TUTOR(MOVE_DOUBLE_EDGE)
+ | TUTOR(MOVE_COUNTER)
+ | TUTOR(MOVE_SEISMIC_TOSS)
+ | TUTOR(MOVE_MIMIC)
+ | TUTOR(MOVE_METRONOME)
+ | TUTOR(MOVE_DREAM_EATER)
+ | TUTOR(MOVE_THUNDER_WAVE)
+ | TUTOR(MOVE_SUBSTITUTE)
+ | TUTOR(MOVE_PSYCH_UP)
+ | TUTOR(MOVE_SNORE)
+ | TUTOR(MOVE_ENDURE)
+ | TUTOR(MOVE_MUD_SLAP)
+ | TUTOR(MOVE_ICE_PUNCH)
+ | TUTOR(MOVE_SWAGGER)
+ | TUTOR(MOVE_SLEEP_TALK)
+ | TUTOR(MOVE_THUNDER_PUNCH)
+ | TUTOR(MOVE_FIRE_PUNCH)),
+
+ [SPECIES_SCYTHER] = TUTOR_LEARNSET(TUTOR(MOVE_SWORDS_DANCE)
+ | TUTOR(MOVE_DOUBLE_EDGE)
+ | TUTOR(MOVE_COUNTER)
+ | TUTOR(MOVE_MIMIC)
+ | TUTOR(MOVE_SUBSTITUTE)
+ | TUTOR(MOVE_SNORE)
+ | TUTOR(MOVE_ENDURE)
+ | TUTOR(MOVE_SWAGGER)
+ | TUTOR(MOVE_SLEEP_TALK)
+ | TUTOR(MOVE_SWIFT)
+ | TUTOR(MOVE_FURY_CUTTER)),
+
+ [SPECIES_JYNX] = TUTOR_LEARNSET(TUTOR(MOVE_MEGA_PUNCH)
+ | TUTOR(MOVE_MEGA_KICK)
+ | TUTOR(MOVE_BODY_SLAM)
+ | TUTOR(MOVE_DOUBLE_EDGE)
+ | TUTOR(MOVE_COUNTER)
+ | TUTOR(MOVE_SEISMIC_TOSS)
+ | TUTOR(MOVE_MIMIC)
+ | TUTOR(MOVE_METRONOME)
+ | TUTOR(MOVE_DREAM_EATER)
+ | TUTOR(MOVE_SUBSTITUTE)
+ | TUTOR(MOVE_DYNAMIC_PUNCH)
+ | TUTOR(MOVE_PSYCH_UP)
+ | TUTOR(MOVE_SNORE)
+ | TUTOR(MOVE_ICY_WIND)
+ | TUTOR(MOVE_ENDURE)
+ | TUTOR(MOVE_MUD_SLAP)
+ | TUTOR(MOVE_ICE_PUNCH)
+ | TUTOR(MOVE_SWAGGER)
+ | TUTOR(MOVE_SLEEP_TALK)),
+
+ [SPECIES_ELECTABUZZ] = TUTOR_LEARNSET(TUTOR(MOVE_MEGA_PUNCH)
+ | TUTOR(MOVE_MEGA_KICK)
+ | TUTOR(MOVE_BODY_SLAM)
+ | TUTOR(MOVE_DOUBLE_EDGE)
+ | TUTOR(MOVE_COUNTER)
+ | TUTOR(MOVE_SEISMIC_TOSS)
+ | TUTOR(MOVE_MIMIC)
+ | TUTOR(MOVE_THUNDER_WAVE)
+ | TUTOR(MOVE_SUBSTITUTE)
+ | TUTOR(MOVE_DYNAMIC_PUNCH)
+ | TUTOR(MOVE_SNORE)
+ | TUTOR(MOVE_ENDURE)
+ | TUTOR(MOVE_MUD_SLAP)
+ | TUTOR(MOVE_ICE_PUNCH)
+ | TUTOR(MOVE_SWAGGER)
+ | TUTOR(MOVE_SLEEP_TALK)
+ | TUTOR(MOVE_SWIFT)
+ | TUTOR(MOVE_THUNDER_PUNCH)
+ | TUTOR(MOVE_FIRE_PUNCH)),
+
+ [SPECIES_MAGMAR] = TUTOR_LEARNSET(TUTOR(MOVE_MEGA_PUNCH)
+ | TUTOR(MOVE_MEGA_KICK)
+ | TUTOR(MOVE_BODY_SLAM)
+ | TUTOR(MOVE_DOUBLE_EDGE)
+ | TUTOR(MOVE_COUNTER)
+ | TUTOR(MOVE_SEISMIC_TOSS)
+ | TUTOR(MOVE_MIMIC)
+ | TUTOR(MOVE_SUBSTITUTE)
+ | TUTOR(MOVE_DYNAMIC_PUNCH)
+ | TUTOR(MOVE_SNORE)
+ | TUTOR(MOVE_ENDURE)
+ | TUTOR(MOVE_MUD_SLAP)
+ | TUTOR(MOVE_SWAGGER)
+ | TUTOR(MOVE_SLEEP_TALK)
+ | TUTOR(MOVE_THUNDER_PUNCH)
+ | TUTOR(MOVE_FIRE_PUNCH)),
+
+ [SPECIES_PINSIR] = TUTOR_LEARNSET(TUTOR(MOVE_SWORDS_DANCE)
+ | TUTOR(MOVE_BODY_SLAM)
+ | TUTOR(MOVE_DOUBLE_EDGE)
+ | TUTOR(MOVE_SEISMIC_TOSS)
+ | TUTOR(MOVE_MIMIC)
+ | TUTOR(MOVE_ROCK_SLIDE)
+ | TUTOR(MOVE_SUBSTITUTE)
+ | TUTOR(MOVE_SNORE)
+ | TUTOR(MOVE_ENDURE)
+ | TUTOR(MOVE_SWAGGER)
+ | TUTOR(MOVE_SLEEP_TALK)
+ | TUTOR(MOVE_FURY_CUTTER)),
+
+ [SPECIES_TAUROS] = TUTOR_LEARNSET(TUTOR(MOVE_BODY_SLAM)
+ | TUTOR(MOVE_DOUBLE_EDGE)
+ | TUTOR(MOVE_MIMIC)
+ | TUTOR(MOVE_SUBSTITUTE)
+ | TUTOR(MOVE_SNORE)
+ | TUTOR(MOVE_ICY_WIND)
+ | TUTOR(MOVE_ENDURE)
+ | TUTOR(MOVE_SWAGGER)
+ | TUTOR(MOVE_SLEEP_TALK)),
+
+ [SPECIES_MAGIKARP] = TUTOR_LEARNSET(0),
+
+ [SPECIES_GYARADOS] = TUTOR_LEARNSET(TUTOR(MOVE_BODY_SLAM)
+ | TUTOR(MOVE_DOUBLE_EDGE)
+ | TUTOR(MOVE_MIMIC)
+ | TUTOR(MOVE_THUNDER_WAVE)
+ | TUTOR(MOVE_SUBSTITUTE)
+ | TUTOR(MOVE_SNORE)
+ | TUTOR(MOVE_ICY_WIND)
+ | TUTOR(MOVE_ENDURE)
+ | TUTOR(MOVE_SWAGGER)
+ | TUTOR(MOVE_SLEEP_TALK)),
+
+ [SPECIES_LAPRAS] = TUTOR_LEARNSET(TUTOR(MOVE_BODY_SLAM)
+ | TUTOR(MOVE_DOUBLE_EDGE)
+ | TUTOR(MOVE_MIMIC)
+ | TUTOR(MOVE_DREAM_EATER)
+ | TUTOR(MOVE_SUBSTITUTE)
+ | TUTOR(MOVE_SNORE)
+ | TUTOR(MOVE_ICY_WIND)
+ | TUTOR(MOVE_ENDURE)
+ | TUTOR(MOVE_SWAGGER)
+ | TUTOR(MOVE_SLEEP_TALK)),
+
+ [SPECIES_DITTO] = TUTOR_LEARNSET(0),
+
+ [SPECIES_EEVEE] = TUTOR_LEARNSET(TUTOR(MOVE_BODY_SLAM)
+ | TUTOR(MOVE_DOUBLE_EDGE)
+ | TUTOR(MOVE_MIMIC)
+ | TUTOR(MOVE_SUBSTITUTE)
+ | TUTOR(MOVE_SNORE)
+ | TUTOR(MOVE_ENDURE)
+ | TUTOR(MOVE_MUD_SLAP)
+ | TUTOR(MOVE_SWAGGER)
+ | TUTOR(MOVE_SLEEP_TALK)
+ | TUTOR(MOVE_SWIFT)),
+
+ [SPECIES_VAPOREON] = TUTOR_LEARNSET(TUTOR(MOVE_BODY_SLAM)
+ | TUTOR(MOVE_DOUBLE_EDGE)
+ | TUTOR(MOVE_MIMIC)
+ | TUTOR(MOVE_SUBSTITUTE)
+ | TUTOR(MOVE_SNORE)
+ | TUTOR(MOVE_ICY_WIND)
+ | TUTOR(MOVE_ENDURE)
+ | TUTOR(MOVE_MUD_SLAP)
+ | TUTOR(MOVE_SWAGGER)
+ | TUTOR(MOVE_SLEEP_TALK)
+ | TUTOR(MOVE_SWIFT)),
+
+ [SPECIES_JOLTEON] = TUTOR_LEARNSET(TUTOR(MOVE_BODY_SLAM)
+ | TUTOR(MOVE_DOUBLE_EDGE)
+ | TUTOR(MOVE_MIMIC)
+ | TUTOR(MOVE_THUNDER_WAVE)
+ | TUTOR(MOVE_SUBSTITUTE)
+ | TUTOR(MOVE_SNORE)
+ | TUTOR(MOVE_ENDURE)
+ | TUTOR(MOVE_MUD_SLAP)
+ | TUTOR(MOVE_SWAGGER)
+ | TUTOR(MOVE_SLEEP_TALK)
+ | TUTOR(MOVE_SWIFT)),
+
+ [SPECIES_FLAREON] = TUTOR_LEARNSET(TUTOR(MOVE_BODY_SLAM)
+ | TUTOR(MOVE_DOUBLE_EDGE)
+ | TUTOR(MOVE_MIMIC)
+ | TUTOR(MOVE_SUBSTITUTE)
+ | TUTOR(MOVE_SNORE)
+ | TUTOR(MOVE_ENDURE)
+ | TUTOR(MOVE_MUD_SLAP)
+ | TUTOR(MOVE_SWAGGER)
+ | TUTOR(MOVE_SLEEP_TALK)
+ | TUTOR(MOVE_SWIFT)),
+
+ [SPECIES_PORYGON] = TUTOR_LEARNSET(TUTOR(MOVE_DOUBLE_EDGE)
+ | TUTOR(MOVE_MIMIC)
+ | TUTOR(MOVE_DREAM_EATER)
+ | TUTOR(MOVE_THUNDER_WAVE)
+ | TUTOR(MOVE_SUBSTITUTE)
+ | TUTOR(MOVE_PSYCH_UP)
+ | TUTOR(MOVE_SNORE)
+ | TUTOR(MOVE_ICY_WIND)
+ | TUTOR(MOVE_ENDURE)
+ | TUTOR(MOVE_SWAGGER)
+ | TUTOR(MOVE_SLEEP_TALK)
+ | TUTOR(MOVE_SWIFT)),
+
+ [SPECIES_OMANYTE] = TUTOR_LEARNSET(TUTOR(MOVE_BODY_SLAM)
+ | TUTOR(MOVE_DOUBLE_EDGE)
+ | TUTOR(MOVE_MIMIC)
+ | TUTOR(MOVE_ROCK_SLIDE)
+ | TUTOR(MOVE_SUBSTITUTE)
+ | TUTOR(MOVE_ROLLOUT)
+ | TUTOR(MOVE_SNORE)
+ | TUTOR(MOVE_ICY_WIND)
+ | TUTOR(MOVE_ENDURE)
+ | TUTOR(MOVE_SWAGGER)
+ | TUTOR(MOVE_SLEEP_TALK)),
+
+ [SPECIES_OMASTAR] = TUTOR_LEARNSET(TUTOR(MOVE_BODY_SLAM)
+ | TUTOR(MOVE_DOUBLE_EDGE)
+ | TUTOR(MOVE_SEISMIC_TOSS)
+ | TUTOR(MOVE_MIMIC)
+ | TUTOR(MOVE_ROCK_SLIDE)
+ | TUTOR(MOVE_SUBSTITUTE)
+ | TUTOR(MOVE_ROLLOUT)
+ | TUTOR(MOVE_SNORE)
+ | TUTOR(MOVE_ICY_WIND)
+ | TUTOR(MOVE_ENDURE)
+ | TUTOR(MOVE_SWAGGER)
+ | TUTOR(MOVE_SLEEP_TALK)),
+
+ [SPECIES_KABUTO] = TUTOR_LEARNSET(TUTOR(MOVE_BODY_SLAM)
+ | TUTOR(MOVE_DOUBLE_EDGE)
+ | TUTOR(MOVE_MIMIC)
+ | TUTOR(MOVE_ROCK_SLIDE)
+ | TUTOR(MOVE_SUBSTITUTE)
+ | TUTOR(MOVE_ROLLOUT)
+ | TUTOR(MOVE_SNORE)
+ | TUTOR(MOVE_ICY_WIND)
+ | TUTOR(MOVE_ENDURE)
+ | TUTOR(MOVE_SWAGGER)
+ | TUTOR(MOVE_SLEEP_TALK)),
+
+ [SPECIES_KABUTOPS] = TUTOR_LEARNSET(TUTOR(MOVE_SWORDS_DANCE)
+ | TUTOR(MOVE_MEGA_KICK)
+ | TUTOR(MOVE_BODY_SLAM)
+ | TUTOR(MOVE_DOUBLE_EDGE)
+ | TUTOR(MOVE_SEISMIC_TOSS)
+ | TUTOR(MOVE_MIMIC)
+ | TUTOR(MOVE_ROCK_SLIDE)
+ | TUTOR(MOVE_SUBSTITUTE)
+ | TUTOR(MOVE_ROLLOUT)
+ | TUTOR(MOVE_SNORE)
+ | TUTOR(MOVE_ICY_WIND)
+ | TUTOR(MOVE_ENDURE)
+ | TUTOR(MOVE_SWAGGER)
+ | TUTOR(MOVE_SLEEP_TALK)
+ | TUTOR(MOVE_FURY_CUTTER)),
+
+ [SPECIES_AERODACTYL] = TUTOR_LEARNSET(TUTOR(MOVE_DOUBLE_EDGE)
+ | TUTOR(MOVE_MIMIC)
+ | TUTOR(MOVE_ROCK_SLIDE)
+ | TUTOR(MOVE_SUBSTITUTE)
+ | TUTOR(MOVE_SNORE)
+ | TUTOR(MOVE_ENDURE)
+ | TUTOR(MOVE_SWAGGER)
+ | TUTOR(MOVE_SLEEP_TALK)
+ | TUTOR(MOVE_SWIFT)),
+
+ [SPECIES_SNORLAX] = TUTOR_LEARNSET(TUTOR(MOVE_MEGA_PUNCH)
+ | TUTOR(MOVE_MEGA_KICK)
+ | TUTOR(MOVE_BODY_SLAM)
+ | TUTOR(MOVE_DOUBLE_EDGE)
+ | TUTOR(MOVE_COUNTER)
+ | TUTOR(MOVE_SEISMIC_TOSS)
+ | TUTOR(MOVE_MIMIC)
+ | TUTOR(MOVE_METRONOME)
+ | TUTOR(MOVE_ROCK_SLIDE)
+ | TUTOR(MOVE_SUBSTITUTE)
+ | TUTOR(MOVE_DYNAMIC_PUNCH)
+ | TUTOR(MOVE_ROLLOUT)
+ | TUTOR(MOVE_PSYCH_UP)
+ | TUTOR(MOVE_SNORE)
+ | TUTOR(MOVE_ICY_WIND)
+ | TUTOR(MOVE_ENDURE)
+ | TUTOR(MOVE_MUD_SLAP)
+ | TUTOR(MOVE_ICE_PUNCH)
+ | TUTOR(MOVE_SWAGGER)
+ | TUTOR(MOVE_SLEEP_TALK)
+ | TUTOR(MOVE_DEFENSE_CURL)
+ | TUTOR(MOVE_THUNDER_PUNCH)
+ | TUTOR(MOVE_FIRE_PUNCH)),
+
+ [SPECIES_ARTICUNO] = TUTOR_LEARNSET(TUTOR(MOVE_DOUBLE_EDGE)
+ | TUTOR(MOVE_MIMIC)
+ | TUTOR(MOVE_SUBSTITUTE)
+ | TUTOR(MOVE_SNORE)
+ | TUTOR(MOVE_ICY_WIND)
+ | TUTOR(MOVE_ENDURE)
+ | TUTOR(MOVE_MUD_SLAP)
+ | TUTOR(MOVE_SWAGGER)
+ | TUTOR(MOVE_SLEEP_TALK)
+ | TUTOR(MOVE_SWIFT)),
+
+ [SPECIES_ZAPDOS] = TUTOR_LEARNSET(TUTOR(MOVE_DOUBLE_EDGE)
+ | TUTOR(MOVE_MIMIC)
+ | TUTOR(MOVE_THUNDER_WAVE)
+ | TUTOR(MOVE_SUBSTITUTE)
+ | TUTOR(MOVE_SNORE)
+ | TUTOR(MOVE_ENDURE)
+ | TUTOR(MOVE_MUD_SLAP)
+ | TUTOR(MOVE_SWAGGER)
+ | TUTOR(MOVE_SLEEP_TALK)
+ | TUTOR(MOVE_SWIFT)),
+
+ [SPECIES_MOLTRES] = TUTOR_LEARNSET(TUTOR(MOVE_DOUBLE_EDGE)
+ | TUTOR(MOVE_MIMIC)
+ | TUTOR(MOVE_SUBSTITUTE)
+ | TUTOR(MOVE_SNORE)
+ | TUTOR(MOVE_ENDURE)
+ | TUTOR(MOVE_MUD_SLAP)
+ | TUTOR(MOVE_SWAGGER)
+ | TUTOR(MOVE_SLEEP_TALK)
+ | TUTOR(MOVE_SWIFT)),
+
+ [SPECIES_DRATINI] = TUTOR_LEARNSET(TUTOR(MOVE_BODY_SLAM)
+ | TUTOR(MOVE_DOUBLE_EDGE)
+ | TUTOR(MOVE_MIMIC)
+ | TUTOR(MOVE_THUNDER_WAVE)
+ | TUTOR(MOVE_SUBSTITUTE)
+ | TUTOR(MOVE_SNORE)
+ | TUTOR(MOVE_ICY_WIND)
+ | TUTOR(MOVE_ENDURE)
+ | TUTOR(MOVE_SWAGGER)
+ | TUTOR(MOVE_SLEEP_TALK)
+ | TUTOR(MOVE_SWIFT)),
+
+ [SPECIES_DRAGONAIR] = TUTOR_LEARNSET(TUTOR(MOVE_BODY_SLAM)
+ | TUTOR(MOVE_DOUBLE_EDGE)
+ | TUTOR(MOVE_MIMIC)
+ | TUTOR(MOVE_THUNDER_WAVE)
+ | TUTOR(MOVE_SUBSTITUTE)
+ | TUTOR(MOVE_SNORE)
+ | TUTOR(MOVE_ICY_WIND)
+ | TUTOR(MOVE_ENDURE)
+ | TUTOR(MOVE_SWAGGER)
+ | TUTOR(MOVE_SLEEP_TALK)
+ | TUTOR(MOVE_SWIFT)),
+
+ [SPECIES_DRAGONITE] = TUTOR_LEARNSET(TUTOR(MOVE_BODY_SLAM)
+ | TUTOR(MOVE_DOUBLE_EDGE)
+ | TUTOR(MOVE_MIMIC)
+ | TUTOR(MOVE_THUNDER_WAVE)
+ | TUTOR(MOVE_SUBSTITUTE)
+ | TUTOR(MOVE_DYNAMIC_PUNCH)
+ | TUTOR(MOVE_SNORE)
+ | TUTOR(MOVE_ICY_WIND)
+ | TUTOR(MOVE_ENDURE)
+ | TUTOR(MOVE_MUD_SLAP)
+ | TUTOR(MOVE_ICE_PUNCH)
+ | TUTOR(MOVE_SWAGGER)
+ | TUTOR(MOVE_SLEEP_TALK)
+ | TUTOR(MOVE_SWIFT)
+ | TUTOR(MOVE_THUNDER_PUNCH)
+ | TUTOR(MOVE_FIRE_PUNCH)
+ | TUTOR(MOVE_FURY_CUTTER)),
+
+ [SPECIES_MEWTWO] = TUTOR_LEARNSET(TUTOR(MOVE_MEGA_PUNCH)
+ | TUTOR(MOVE_MEGA_KICK)
+ | TUTOR(MOVE_BODY_SLAM)
+ | TUTOR(MOVE_DOUBLE_EDGE)
+ | TUTOR(MOVE_COUNTER)
+ | TUTOR(MOVE_SEISMIC_TOSS)
+ | TUTOR(MOVE_MIMIC)
+ | TUTOR(MOVE_METRONOME)
+ | TUTOR(MOVE_DREAM_EATER)
+ | TUTOR(MOVE_THUNDER_WAVE)
+ | TUTOR(MOVE_SUBSTITUTE)
+ | TUTOR(MOVE_DYNAMIC_PUNCH)
+ | TUTOR(MOVE_PSYCH_UP)
+ | TUTOR(MOVE_SNORE)
+ | TUTOR(MOVE_ICY_WIND)
+ | TUTOR(MOVE_ENDURE)
+ | TUTOR(MOVE_MUD_SLAP)
+ | TUTOR(MOVE_ICE_PUNCH)
+ | TUTOR(MOVE_SWAGGER)
+ | TUTOR(MOVE_SLEEP_TALK)
+ | TUTOR(MOVE_SWIFT)
+ | TUTOR(MOVE_THUNDER_PUNCH)
+ | TUTOR(MOVE_FIRE_PUNCH)),
+
+ [SPECIES_MEW] = TUTOR_LEARNSET(TUTOR(MOVE_MEGA_PUNCH)
+ | TUTOR(MOVE_SWORDS_DANCE)
+ | TUTOR(MOVE_MEGA_KICK)
+ | TUTOR(MOVE_BODY_SLAM)
+ | TUTOR(MOVE_DOUBLE_EDGE)
+ | TUTOR(MOVE_COUNTER)
+ | TUTOR(MOVE_SEISMIC_TOSS)
+ | TUTOR(MOVE_MIMIC)
+ | TUTOR(MOVE_METRONOME)
+ | TUTOR(MOVE_SOFT_BOILED)
+ | TUTOR(MOVE_DREAM_EATER)
+ | TUTOR(MOVE_THUNDER_WAVE)
+ | TUTOR(MOVE_EXPLOSION)
+ | TUTOR(MOVE_ROCK_SLIDE)
+ | TUTOR(MOVE_SUBSTITUTE)
+ | TUTOR(MOVE_DYNAMIC_PUNCH)
+ | TUTOR(MOVE_ROLLOUT)
+ | TUTOR(MOVE_PSYCH_UP)
+ | TUTOR(MOVE_SNORE)
+ | TUTOR(MOVE_ICY_WIND)
+ | TUTOR(MOVE_ENDURE)
+ | TUTOR(MOVE_MUD_SLAP)
+ | TUTOR(MOVE_ICE_PUNCH)
+ | TUTOR(MOVE_SWAGGER)
+ | TUTOR(MOVE_SLEEP_TALK)
+ | TUTOR(MOVE_SWIFT)
+ | TUTOR(MOVE_DEFENSE_CURL)
+ | TUTOR(MOVE_THUNDER_PUNCH)
+ | TUTOR(MOVE_FIRE_PUNCH)
+ | TUTOR(MOVE_FURY_CUTTER)),
+
+ [SPECIES_CHIKORITA] = TUTOR_LEARNSET(TUTOR(MOVE_SWORDS_DANCE)
+ | TUTOR(MOVE_BODY_SLAM)
+ | TUTOR(MOVE_DOUBLE_EDGE)
+ | TUTOR(MOVE_COUNTER)
+ | TUTOR(MOVE_MIMIC)
+ | TUTOR(MOVE_SUBSTITUTE)
+ | TUTOR(MOVE_SNORE)
+ | TUTOR(MOVE_ENDURE)
+ | TUTOR(MOVE_MUD_SLAP)
+ | TUTOR(MOVE_SWAGGER)
+ | TUTOR(MOVE_SLEEP_TALK)),
+
+ [SPECIES_BAYLEEF] = TUTOR_LEARNSET(TUTOR(MOVE_SWORDS_DANCE)
+ | TUTOR(MOVE_BODY_SLAM)
+ | TUTOR(MOVE_DOUBLE_EDGE)
+ | TUTOR(MOVE_COUNTER)
+ | TUTOR(MOVE_MIMIC)
+ | TUTOR(MOVE_SUBSTITUTE)
+ | TUTOR(MOVE_SNORE)
+ | TUTOR(MOVE_ENDURE)
+ | TUTOR(MOVE_MUD_SLAP)
+ | TUTOR(MOVE_SWAGGER)
+ | TUTOR(MOVE_SLEEP_TALK)
+ | TUTOR(MOVE_FURY_CUTTER)),
+
+ [SPECIES_MEGANIUM] = TUTOR_LEARNSET(TUTOR(MOVE_SWORDS_DANCE)
+ | TUTOR(MOVE_BODY_SLAM)
+ | TUTOR(MOVE_DOUBLE_EDGE)
+ | TUTOR(MOVE_COUNTER)
+ | TUTOR(MOVE_MIMIC)
+ | TUTOR(MOVE_SUBSTITUTE)
+ | TUTOR(MOVE_SNORE)
+ | TUTOR(MOVE_ENDURE)
+ | TUTOR(MOVE_MUD_SLAP)
+ | TUTOR(MOVE_SWAGGER)
+ | TUTOR(MOVE_SLEEP_TALK)
+ | TUTOR(MOVE_FURY_CUTTER)),
+
+ [SPECIES_CYNDAQUIL] = TUTOR_LEARNSET(TUTOR(MOVE_BODY_SLAM)
+ | TUTOR(MOVE_DOUBLE_EDGE)
+ | TUTOR(MOVE_MIMIC)
+ | TUTOR(MOVE_SUBSTITUTE)
+ | TUTOR(MOVE_ROLLOUT)
+ | TUTOR(MOVE_SNORE)
+ | TUTOR(MOVE_ENDURE)
+ | TUTOR(MOVE_MUD_SLAP)
+ | TUTOR(MOVE_SWAGGER)
+ | TUTOR(MOVE_SLEEP_TALK)
+ | TUTOR(MOVE_SWIFT)
+ | TUTOR(MOVE_DEFENSE_CURL)),
+
+ [SPECIES_QUILAVA] = TUTOR_LEARNSET(TUTOR(MOVE_BODY_SLAM)
+ | TUTOR(MOVE_DOUBLE_EDGE)
+ | TUTOR(MOVE_MIMIC)
+ | TUTOR(MOVE_SUBSTITUTE)
+ | TUTOR(MOVE_ROLLOUT)
+ | TUTOR(MOVE_SNORE)
+ | TUTOR(MOVE_ENDURE)
+ | TUTOR(MOVE_MUD_SLAP)
+ | TUTOR(MOVE_SWAGGER)
+ | TUTOR(MOVE_SLEEP_TALK)
+ | TUTOR(MOVE_SWIFT)
+ | TUTOR(MOVE_DEFENSE_CURL)
+ | TUTOR(MOVE_FURY_CUTTER)),
+
+ [SPECIES_TYPHLOSION] = TUTOR_LEARNSET(TUTOR(MOVE_MEGA_PUNCH)
+ | TUTOR(MOVE_MEGA_KICK)
+ | TUTOR(MOVE_BODY_SLAM)
+ | TUTOR(MOVE_DOUBLE_EDGE)
+ | TUTOR(MOVE_COUNTER)
+ | TUTOR(MOVE_SEISMIC_TOSS)
+ | TUTOR(MOVE_MIMIC)
+ | TUTOR(MOVE_ROCK_SLIDE)
+ | TUTOR(MOVE_SUBSTITUTE)
+ | TUTOR(MOVE_DYNAMIC_PUNCH)
+ | TUTOR(MOVE_ROLLOUT)
+ | TUTOR(MOVE_SNORE)
+ | TUTOR(MOVE_ENDURE)
+ | TUTOR(MOVE_MUD_SLAP)
+ | TUTOR(MOVE_SWAGGER)
+ | TUTOR(MOVE_SLEEP_TALK)
+ | TUTOR(MOVE_SWIFT)
+ | TUTOR(MOVE_DEFENSE_CURL)
+ | TUTOR(MOVE_THUNDER_PUNCH)
+ | TUTOR(MOVE_FIRE_PUNCH)
+ | TUTOR(MOVE_FURY_CUTTER)),
+
+ [SPECIES_TOTODILE] = TUTOR_LEARNSET(TUTOR(MOVE_MEGA_PUNCH)
+ | TUTOR(MOVE_SWORDS_DANCE)
+ | TUTOR(MOVE_MEGA_KICK)
+ | TUTOR(MOVE_BODY_SLAM)
+ | TUTOR(MOVE_DOUBLE_EDGE)
+ | TUTOR(MOVE_COUNTER)
+ | TUTOR(MOVE_SEISMIC_TOSS)
+ | TUTOR(MOVE_MIMIC)
+ | TUTOR(MOVE_ROCK_SLIDE)
+ | TUTOR(MOVE_SUBSTITUTE)
+ | TUTOR(MOVE_DYNAMIC_PUNCH)
+ | TUTOR(MOVE_SNORE)
+ | TUTOR(MOVE_ICY_WIND)
+ | TUTOR(MOVE_ENDURE)
+ | TUTOR(MOVE_MUD_SLAP)
+ | TUTOR(MOVE_ICE_PUNCH)
+ | TUTOR(MOVE_SWAGGER)
+ | TUTOR(MOVE_SLEEP_TALK)),
+
+ [SPECIES_CROCONAW] = TUTOR_LEARNSET(TUTOR(MOVE_MEGA_PUNCH)
+ | TUTOR(MOVE_SWORDS_DANCE)
+ | TUTOR(MOVE_MEGA_KICK)
+ | TUTOR(MOVE_BODY_SLAM)
+ | TUTOR(MOVE_DOUBLE_EDGE)
+ | TUTOR(MOVE_COUNTER)
+ | TUTOR(MOVE_SEISMIC_TOSS)
+ | TUTOR(MOVE_MIMIC)
+ | TUTOR(MOVE_ROCK_SLIDE)
+ | TUTOR(MOVE_SUBSTITUTE)
+ | TUTOR(MOVE_DYNAMIC_PUNCH)
+ | TUTOR(MOVE_SNORE)
+ | TUTOR(MOVE_ICY_WIND)
+ | TUTOR(MOVE_ENDURE)
+ | TUTOR(MOVE_MUD_SLAP)
+ | TUTOR(MOVE_ICE_PUNCH)
+ | TUTOR(MOVE_SWAGGER)
+ | TUTOR(MOVE_SLEEP_TALK)
+ | TUTOR(MOVE_FURY_CUTTER)),
+
+ [SPECIES_FERALIGATR] = TUTOR_LEARNSET(TUTOR(MOVE_MEGA_PUNCH)
+ | TUTOR(MOVE_SWORDS_DANCE)
+ | TUTOR(MOVE_MEGA_KICK)
+ | TUTOR(MOVE_BODY_SLAM)
+ | TUTOR(MOVE_DOUBLE_EDGE)
+ | TUTOR(MOVE_COUNTER)
+ | TUTOR(MOVE_SEISMIC_TOSS)
+ | TUTOR(MOVE_MIMIC)
+ | TUTOR(MOVE_ROCK_SLIDE)
+ | TUTOR(MOVE_SUBSTITUTE)
+ | TUTOR(MOVE_DYNAMIC_PUNCH)
+ | TUTOR(MOVE_SNORE)
+ | TUTOR(MOVE_ICY_WIND)
+ | TUTOR(MOVE_ENDURE)
+ | TUTOR(MOVE_MUD_SLAP)
+ | TUTOR(MOVE_ICE_PUNCH)
+ | TUTOR(MOVE_SWAGGER)
+ | TUTOR(MOVE_SLEEP_TALK)
+ | TUTOR(MOVE_FURY_CUTTER)),
+
+ [SPECIES_SENTRET] = TUTOR_LEARNSET(TUTOR(MOVE_BODY_SLAM)
+ | TUTOR(MOVE_DOUBLE_EDGE)
+ | TUTOR(MOVE_MIMIC)
+ | TUTOR(MOVE_SUBSTITUTE)
+ | TUTOR(MOVE_DYNAMIC_PUNCH)
+ | TUTOR(MOVE_ROLLOUT)
+ | TUTOR(MOVE_SNORE)
+ | TUTOR(MOVE_ENDURE)
+ | TUTOR(MOVE_MUD_SLAP)
+ | TUTOR(MOVE_ICE_PUNCH)
+ | TUTOR(MOVE_SWAGGER)
+ | TUTOR(MOVE_SLEEP_TALK)
+ | TUTOR(MOVE_SWIFT)
+ | TUTOR(MOVE_DEFENSE_CURL)
+ | TUTOR(MOVE_THUNDER_PUNCH)
+ | TUTOR(MOVE_FIRE_PUNCH)
+ | TUTOR(MOVE_FURY_CUTTER)),
+
+ [SPECIES_FURRET] = TUTOR_LEARNSET(TUTOR(MOVE_BODY_SLAM)
+ | TUTOR(MOVE_DOUBLE_EDGE)
+ | TUTOR(MOVE_MIMIC)
+ | TUTOR(MOVE_SUBSTITUTE)
+ | TUTOR(MOVE_DYNAMIC_PUNCH)
+ | TUTOR(MOVE_ROLLOUT)
+ | TUTOR(MOVE_SNORE)
+ | TUTOR(MOVE_ENDURE)
+ | TUTOR(MOVE_MUD_SLAP)
+ | TUTOR(MOVE_ICE_PUNCH)
+ | TUTOR(MOVE_SWAGGER)
+ | TUTOR(MOVE_SLEEP_TALK)
+ | TUTOR(MOVE_SWIFT)
+ | TUTOR(MOVE_DEFENSE_CURL)
+ | TUTOR(MOVE_THUNDER_PUNCH)
+ | TUTOR(MOVE_FIRE_PUNCH)
+ | TUTOR(MOVE_FURY_CUTTER)),
+
+ [SPECIES_HOOTHOOT] = TUTOR_LEARNSET(TUTOR(MOVE_DOUBLE_EDGE)
+ | TUTOR(MOVE_MIMIC)
+ | TUTOR(MOVE_DREAM_EATER)
+ | TUTOR(MOVE_SUBSTITUTE)
+ | TUTOR(MOVE_SNORE)
+ | TUTOR(MOVE_ENDURE)
+ | TUTOR(MOVE_MUD_SLAP)
+ | TUTOR(MOVE_SWAGGER)
+ | TUTOR(MOVE_SLEEP_TALK)
+ | TUTOR(MOVE_SWIFT)),
+
+ [SPECIES_NOCTOWL] = TUTOR_LEARNSET(TUTOR(MOVE_DOUBLE_EDGE)
+ | TUTOR(MOVE_MIMIC)
+ | TUTOR(MOVE_DREAM_EATER)
+ | TUTOR(MOVE_SUBSTITUTE)
+ | TUTOR(MOVE_SNORE)
+ | TUTOR(MOVE_ENDURE)
+ | TUTOR(MOVE_MUD_SLAP)
+ | TUTOR(MOVE_SWAGGER)
+ | TUTOR(MOVE_SLEEP_TALK)
+ | TUTOR(MOVE_SWIFT)),
+
+ [SPECIES_LEDYBA] = TUTOR_LEARNSET(TUTOR(MOVE_MEGA_PUNCH)
+ | TUTOR(MOVE_SWORDS_DANCE)
+ | TUTOR(MOVE_DOUBLE_EDGE)
+ | TUTOR(MOVE_MIMIC)
+ | TUTOR(MOVE_SUBSTITUTE)
+ | TUTOR(MOVE_DYNAMIC_PUNCH)
+ | TUTOR(MOVE_ROLLOUT)
+ | TUTOR(MOVE_SNORE)
+ | TUTOR(MOVE_ENDURE)
+ | TUTOR(MOVE_ICE_PUNCH)
+ | TUTOR(MOVE_SWAGGER)
+ | TUTOR(MOVE_SLEEP_TALK)
+ | TUTOR(MOVE_SWIFT)
+ | TUTOR(MOVE_THUNDER_PUNCH)),
+
+ [SPECIES_LEDIAN] = TUTOR_LEARNSET(TUTOR(MOVE_MEGA_PUNCH)
+ | TUTOR(MOVE_SWORDS_DANCE)
+ | TUTOR(MOVE_DOUBLE_EDGE)
+ | TUTOR(MOVE_MIMIC)
+ | TUTOR(MOVE_SUBSTITUTE)
+ | TUTOR(MOVE_DYNAMIC_PUNCH)
+ | TUTOR(MOVE_ROLLOUT)
+ | TUTOR(MOVE_SNORE)
+ | TUTOR(MOVE_ENDURE)
+ | TUTOR(MOVE_ICE_PUNCH)
+ | TUTOR(MOVE_SWAGGER)
+ | TUTOR(MOVE_SLEEP_TALK)
+ | TUTOR(MOVE_SWIFT)
+ | TUTOR(MOVE_THUNDER_PUNCH)),
+
+ [SPECIES_SPINARAK] = TUTOR_LEARNSET(TUTOR(MOVE_BODY_SLAM)
+ | TUTOR(MOVE_DOUBLE_EDGE)
+ | TUTOR(MOVE_MIMIC)
+ | TUTOR(MOVE_SUBSTITUTE)
+ | TUTOR(MOVE_SNORE)
+ | TUTOR(MOVE_ENDURE)
+ | TUTOR(MOVE_SWAGGER)
+ | TUTOR(MOVE_SLEEP_TALK)),
+
+ [SPECIES_ARIADOS] = TUTOR_LEARNSET(TUTOR(MOVE_BODY_SLAM)
+ | TUTOR(MOVE_DOUBLE_EDGE)
+ | TUTOR(MOVE_MIMIC)
+ | TUTOR(MOVE_SUBSTITUTE)
+ | TUTOR(MOVE_SNORE)
+ | TUTOR(MOVE_ENDURE)
+ | TUTOR(MOVE_SWAGGER)
+ | TUTOR(MOVE_SLEEP_TALK)),
+
+ [SPECIES_CROBAT] = TUTOR_LEARNSET(TUTOR(MOVE_DOUBLE_EDGE)
+ | TUTOR(MOVE_MIMIC)
+ | TUTOR(MOVE_SUBSTITUTE)
+ | TUTOR(MOVE_SNORE)
+ | TUTOR(MOVE_ENDURE)
+ | TUTOR(MOVE_SWAGGER)
+ | TUTOR(MOVE_SLEEP_TALK)
+ | TUTOR(MOVE_SWIFT)),
+
+ [SPECIES_CHINCHOU] = TUTOR_LEARNSET(TUTOR(MOVE_DOUBLE_EDGE)
+ | TUTOR(MOVE_MIMIC)
+ | TUTOR(MOVE_THUNDER_WAVE)
+ | TUTOR(MOVE_SUBSTITUTE)
+ | TUTOR(MOVE_SNORE)
+ | TUTOR(MOVE_ENDURE)
+ | TUTOR(MOVE_SWAGGER)
+ | TUTOR(MOVE_SLEEP_TALK)),
+
+ [SPECIES_LANTURN] = TUTOR_LEARNSET(TUTOR(MOVE_DOUBLE_EDGE)
+ | TUTOR(MOVE_MIMIC)
+ | TUTOR(MOVE_THUNDER_WAVE)
+ | TUTOR(MOVE_SUBSTITUTE)
+ | TUTOR(MOVE_SNORE)
+ | TUTOR(MOVE_ENDURE)
+ | TUTOR(MOVE_SWAGGER)
+ | TUTOR(MOVE_SLEEP_TALK)),
+
+ [SPECIES_PICHU] = TUTOR_LEARNSET(TUTOR(MOVE_MEGA_PUNCH)
+ | TUTOR(MOVE_MEGA_KICK)
+ | TUTOR(MOVE_BODY_SLAM)
+ | TUTOR(MOVE_DOUBLE_EDGE)
+ | TUTOR(MOVE_COUNTER)
+ | TUTOR(MOVE_SEISMIC_TOSS)
+ | TUTOR(MOVE_MIMIC)
+ | TUTOR(MOVE_THUNDER_WAVE)
+ | TUTOR(MOVE_SUBSTITUTE)
+ | TUTOR(MOVE_ROLLOUT)
+ | TUTOR(MOVE_SNORE)
+ | TUTOR(MOVE_ENDURE)
+ | TUTOR(MOVE_MUD_SLAP)
+ | TUTOR(MOVE_SWAGGER)
+ | TUTOR(MOVE_SLEEP_TALK)
+ | TUTOR(MOVE_SWIFT)
+ | TUTOR(MOVE_DEFENSE_CURL)),
+
+ [SPECIES_CLEFFA] = TUTOR_LEARNSET(TUTOR(MOVE_MEGA_PUNCH)
+ | TUTOR(MOVE_MEGA_KICK)
+ | TUTOR(MOVE_BODY_SLAM)
+ | TUTOR(MOVE_DOUBLE_EDGE)
+ | TUTOR(MOVE_COUNTER)
+ | TUTOR(MOVE_SEISMIC_TOSS)
+ | TUTOR(MOVE_MIMIC)
+ | TUTOR(MOVE_METRONOME)
+ | TUTOR(MOVE_SOFT_BOILED)
+ | TUTOR(MOVE_DREAM_EATER)
+ | TUTOR(MOVE_THUNDER_WAVE)
+ | TUTOR(MOVE_SUBSTITUTE)
+ | TUTOR(MOVE_ROLLOUT)
+ | TUTOR(MOVE_PSYCH_UP)
+ | TUTOR(MOVE_SNORE)
+ | TUTOR(MOVE_ICY_WIND)
+ | TUTOR(MOVE_ENDURE)
+ | TUTOR(MOVE_MUD_SLAP)
+ | TUTOR(MOVE_SWAGGER)
+ | TUTOR(MOVE_SLEEP_TALK)
+ | TUTOR(MOVE_DEFENSE_CURL)),
+
+ [SPECIES_IGGLYBUFF] = TUTOR_LEARNSET(TUTOR(MOVE_MEGA_PUNCH)
+ | TUTOR(MOVE_MEGA_KICK)
+ | TUTOR(MOVE_BODY_SLAM)
+ | TUTOR(MOVE_DOUBLE_EDGE)
+ | TUTOR(MOVE_COUNTER)
+ | TUTOR(MOVE_SEISMIC_TOSS)
+ | TUTOR(MOVE_MIMIC)
+ | TUTOR(MOVE_DREAM_EATER)
+ | TUTOR(MOVE_THUNDER_WAVE)
+ | TUTOR(MOVE_SUBSTITUTE)
+ | TUTOR(MOVE_ROLLOUT)
+ | TUTOR(MOVE_PSYCH_UP)
+ | TUTOR(MOVE_SNORE)
+ | TUTOR(MOVE_ICY_WIND)
+ | TUTOR(MOVE_ENDURE)
+ | TUTOR(MOVE_MUD_SLAP)
+ | TUTOR(MOVE_SWAGGER)
+ | TUTOR(MOVE_SLEEP_TALK)
+ | TUTOR(MOVE_DEFENSE_CURL)),
+
+ [SPECIES_TOGEPI] = TUTOR_LEARNSET(TUTOR(MOVE_MEGA_PUNCH)
+ | TUTOR(MOVE_MEGA_KICK)
+ | TUTOR(MOVE_BODY_SLAM)
+ | TUTOR(MOVE_DOUBLE_EDGE)
+ | TUTOR(MOVE_COUNTER)
+ | TUTOR(MOVE_SEISMIC_TOSS)
+ | TUTOR(MOVE_MIMIC)
+ | TUTOR(MOVE_METRONOME)
+ | TUTOR(MOVE_SOFT_BOILED)
+ | TUTOR(MOVE_DREAM_EATER)
+ | TUTOR(MOVE_THUNDER_WAVE)
+ | TUTOR(MOVE_SUBSTITUTE)
+ | TUTOR(MOVE_ROLLOUT)
+ | TUTOR(MOVE_PSYCH_UP)
+ | TUTOR(MOVE_SNORE)
+ | TUTOR(MOVE_ENDURE)
+ | TUTOR(MOVE_MUD_SLAP)
+ | TUTOR(MOVE_SWAGGER)
+ | TUTOR(MOVE_SLEEP_TALK)
+ | TUTOR(MOVE_SWIFT)
+ | TUTOR(MOVE_DEFENSE_CURL)),
+
+ [SPECIES_TOGETIC] = TUTOR_LEARNSET(TUTOR(MOVE_MEGA_PUNCH)
+ | TUTOR(MOVE_MEGA_KICK)
+ | TUTOR(MOVE_BODY_SLAM)
+ | TUTOR(MOVE_DOUBLE_EDGE)
+ | TUTOR(MOVE_COUNTER)
+ | TUTOR(MOVE_SEISMIC_TOSS)
+ | TUTOR(MOVE_MIMIC)
+ | TUTOR(MOVE_METRONOME)
+ | TUTOR(MOVE_SOFT_BOILED)
+ | TUTOR(MOVE_DREAM_EATER)
+ | TUTOR(MOVE_THUNDER_WAVE)
+ | TUTOR(MOVE_SUBSTITUTE)
+ | TUTOR(MOVE_ROLLOUT)
+ | TUTOR(MOVE_PSYCH_UP)
+ | TUTOR(MOVE_SNORE)
+ | TUTOR(MOVE_ENDURE)
+ | TUTOR(MOVE_MUD_SLAP)
+ | TUTOR(MOVE_SWAGGER)
+ | TUTOR(MOVE_SLEEP_TALK)
+ | TUTOR(MOVE_SWIFT)
+ | TUTOR(MOVE_DEFENSE_CURL)),
+
+ [SPECIES_NATU] = TUTOR_LEARNSET(TUTOR(MOVE_DOUBLE_EDGE)
+ | TUTOR(MOVE_MIMIC)
+ | TUTOR(MOVE_DREAM_EATER)
+ | TUTOR(MOVE_THUNDER_WAVE)
+ | TUTOR(MOVE_SUBSTITUTE)
+ | TUTOR(MOVE_PSYCH_UP)
+ | TUTOR(MOVE_SNORE)
+ | TUTOR(MOVE_ENDURE)
+ | TUTOR(MOVE_SWAGGER)
+ | TUTOR(MOVE_SLEEP_TALK)
+ | TUTOR(MOVE_SWIFT)),
+
+ [SPECIES_XATU] = TUTOR_LEARNSET(TUTOR(MOVE_DOUBLE_EDGE)
+ | TUTOR(MOVE_MIMIC)
+ | TUTOR(MOVE_DREAM_EATER)
+ | TUTOR(MOVE_THUNDER_WAVE)
+ | TUTOR(MOVE_SUBSTITUTE)
+ | TUTOR(MOVE_PSYCH_UP)
+ | TUTOR(MOVE_SNORE)
+ | TUTOR(MOVE_ENDURE)
+ | TUTOR(MOVE_SWAGGER)
+ | TUTOR(MOVE_SLEEP_TALK)
+ | TUTOR(MOVE_SWIFT)),
+
+ [SPECIES_MAREEP] = TUTOR_LEARNSET(TUTOR(MOVE_BODY_SLAM)
+ | TUTOR(MOVE_DOUBLE_EDGE)
+ | TUTOR(MOVE_MIMIC)
+ | TUTOR(MOVE_THUNDER_WAVE)
+ | TUTOR(MOVE_SUBSTITUTE)
+ | TUTOR(MOVE_SNORE)
+ | TUTOR(MOVE_ENDURE)
+ | TUTOR(MOVE_SWAGGER)
+ | TUTOR(MOVE_SLEEP_TALK)
+ | TUTOR(MOVE_SWIFT)
+ | TUTOR(MOVE_DEFENSE_CURL)),
+
+ [SPECIES_FLAAFFY] = TUTOR_LEARNSET(TUTOR(MOVE_MEGA_PUNCH)
+ | TUTOR(MOVE_MEGA_KICK)
+ | TUTOR(MOVE_BODY_SLAM)
+ | TUTOR(MOVE_DOUBLE_EDGE)
+ | TUTOR(MOVE_COUNTER)
+ | TUTOR(MOVE_SEISMIC_TOSS)
+ | TUTOR(MOVE_MIMIC)
+ | TUTOR(MOVE_THUNDER_WAVE)
+ | TUTOR(MOVE_SUBSTITUTE)
+ | TUTOR(MOVE_DYNAMIC_PUNCH)
+ | TUTOR(MOVE_SNORE)
+ | TUTOR(MOVE_ENDURE)
+ | TUTOR(MOVE_SWAGGER)
+ | TUTOR(MOVE_SLEEP_TALK)
+ | TUTOR(MOVE_SWIFT)
+ | TUTOR(MOVE_DEFENSE_CURL)
+ | TUTOR(MOVE_THUNDER_PUNCH)
+ | TUTOR(MOVE_FIRE_PUNCH)),
+
+ [SPECIES_AMPHAROS] = TUTOR_LEARNSET(TUTOR(MOVE_MEGA_PUNCH)
+ | TUTOR(MOVE_MEGA_KICK)
+ | TUTOR(MOVE_BODY_SLAM)
+ | TUTOR(MOVE_DOUBLE_EDGE)
+ | TUTOR(MOVE_COUNTER)
+ | TUTOR(MOVE_SEISMIC_TOSS)
+ | TUTOR(MOVE_MIMIC)
+ | TUTOR(MOVE_THUNDER_WAVE)
+ | TUTOR(MOVE_SUBSTITUTE)
+ | TUTOR(MOVE_DYNAMIC_PUNCH)
+ | TUTOR(MOVE_SNORE)
+ | TUTOR(MOVE_ENDURE)
+ | TUTOR(MOVE_SWAGGER)
+ | TUTOR(MOVE_SLEEP_TALK)
+ | TUTOR(MOVE_SWIFT)
+ | TUTOR(MOVE_DEFENSE_CURL)
+ | TUTOR(MOVE_THUNDER_PUNCH)
+ | TUTOR(MOVE_FIRE_PUNCH)),
+
+ [SPECIES_BELLOSSOM] = TUTOR_LEARNSET(TUTOR(MOVE_SWORDS_DANCE)
+ | TUTOR(MOVE_DOUBLE_EDGE)
+ | TUTOR(MOVE_MIMIC)
+ | TUTOR(MOVE_SUBSTITUTE)
+ | TUTOR(MOVE_SNORE)
+ | TUTOR(MOVE_ENDURE)
+ | TUTOR(MOVE_SWAGGER)
+ | TUTOR(MOVE_SLEEP_TALK)),
+
+ [SPECIES_MARILL] = TUTOR_LEARNSET(TUTOR(MOVE_MEGA_PUNCH)
+ | TUTOR(MOVE_MEGA_KICK)
+ | TUTOR(MOVE_BODY_SLAM)
+ | TUTOR(MOVE_DOUBLE_EDGE)
+ | TUTOR(MOVE_SEISMIC_TOSS)
+ | TUTOR(MOVE_MIMIC)
+ | TUTOR(MOVE_SUBSTITUTE)
+ | TUTOR(MOVE_DYNAMIC_PUNCH)
+ | TUTOR(MOVE_ROLLOUT)
+ | TUTOR(MOVE_SNORE)
+ | TUTOR(MOVE_ICY_WIND)
+ | TUTOR(MOVE_ENDURE)
+ | TUTOR(MOVE_MUD_SLAP)
+ | TUTOR(MOVE_ICE_PUNCH)
+ | TUTOR(MOVE_SWAGGER)
+ | TUTOR(MOVE_SLEEP_TALK)
+ | TUTOR(MOVE_SWIFT)
+ | TUTOR(MOVE_DEFENSE_CURL)),
+
+ [SPECIES_AZUMARILL] = TUTOR_LEARNSET(TUTOR(MOVE_MEGA_PUNCH)
+ | TUTOR(MOVE_MEGA_KICK)
+ | TUTOR(MOVE_BODY_SLAM)
+ | TUTOR(MOVE_DOUBLE_EDGE)
+ | TUTOR(MOVE_SEISMIC_TOSS)
+ | TUTOR(MOVE_MIMIC)
+ | TUTOR(MOVE_SUBSTITUTE)
+ | TUTOR(MOVE_DYNAMIC_PUNCH)
+ | TUTOR(MOVE_ROLLOUT)
+ | TUTOR(MOVE_SNORE)
+ | TUTOR(MOVE_ICY_WIND)
+ | TUTOR(MOVE_ENDURE)
+ | TUTOR(MOVE_MUD_SLAP)
+ | TUTOR(MOVE_ICE_PUNCH)
+ | TUTOR(MOVE_SWAGGER)
+ | TUTOR(MOVE_SLEEP_TALK)
+ | TUTOR(MOVE_SWIFT)
+ | TUTOR(MOVE_DEFENSE_CURL)),
+
+ [SPECIES_SUDOWOODO] = TUTOR_LEARNSET(TUTOR(MOVE_MEGA_PUNCH)
+ | TUTOR(MOVE_MEGA_KICK)
+ | TUTOR(MOVE_BODY_SLAM)
+ | TUTOR(MOVE_DOUBLE_EDGE)
+ | TUTOR(MOVE_COUNTER)
+ | TUTOR(MOVE_SEISMIC_TOSS)
+ | TUTOR(MOVE_MIMIC)
+ | TUTOR(MOVE_EXPLOSION)
+ | TUTOR(MOVE_ROCK_SLIDE)
+ | TUTOR(MOVE_SUBSTITUTE)
+ | TUTOR(MOVE_DYNAMIC_PUNCH)
+ | TUTOR(MOVE_ROLLOUT)
+ | TUTOR(MOVE_PSYCH_UP)
+ | TUTOR(MOVE_SNORE)
+ | TUTOR(MOVE_ENDURE)
+ | TUTOR(MOVE_MUD_SLAP)
+ | TUTOR(MOVE_ICE_PUNCH)
+ | TUTOR(MOVE_SWAGGER)
+ | TUTOR(MOVE_SLEEP_TALK)
+ | TUTOR(MOVE_DEFENSE_CURL)
+ | TUTOR(MOVE_THUNDER_PUNCH)
+ | TUTOR(MOVE_FIRE_PUNCH)),
+
+ [SPECIES_POLITOED] = TUTOR_LEARNSET(TUTOR(MOVE_MEGA_PUNCH)
+ | TUTOR(MOVE_MEGA_KICK)
+ | TUTOR(MOVE_BODY_SLAM)
+ | TUTOR(MOVE_DOUBLE_EDGE)
+ | TUTOR(MOVE_COUNTER)
+ | TUTOR(MOVE_SEISMIC_TOSS)
+ | TUTOR(MOVE_MIMIC)
+ | TUTOR(MOVE_METRONOME)
+ | TUTOR(MOVE_SUBSTITUTE)
+ | TUTOR(MOVE_DYNAMIC_PUNCH)
+ | TUTOR(MOVE_SNORE)
+ | TUTOR(MOVE_ICY_WIND)
+ | TUTOR(MOVE_ENDURE)
+ | TUTOR(MOVE_MUD_SLAP)
+ | TUTOR(MOVE_SWAGGER)
+ | TUTOR(MOVE_SLEEP_TALK)
+ | TUTOR(MOVE_DEFENSE_CURL)),
+
+ [SPECIES_HOPPIP] = TUTOR_LEARNSET(TUTOR(MOVE_SWORDS_DANCE)
+ | TUTOR(MOVE_DOUBLE_EDGE)
+ | TUTOR(MOVE_MIMIC)
+ | TUTOR(MOVE_SUBSTITUTE)
+ | TUTOR(MOVE_SNORE)
+ | TUTOR(MOVE_ENDURE)
+ | TUTOR(MOVE_SWAGGER)
+ | TUTOR(MOVE_SLEEP_TALK)
+ | TUTOR(MOVE_DEFENSE_CURL)),
+
+ [SPECIES_SKIPLOOM] = TUTOR_LEARNSET(TUTOR(MOVE_SWORDS_DANCE)
+ | TUTOR(MOVE_DOUBLE_EDGE)
+ | TUTOR(MOVE_MIMIC)
+ | TUTOR(MOVE_SUBSTITUTE)
+ | TUTOR(MOVE_SNORE)
+ | TUTOR(MOVE_ENDURE)
+ | TUTOR(MOVE_SWAGGER)
+ | TUTOR(MOVE_SLEEP_TALK)
+ | TUTOR(MOVE_DEFENSE_CURL)),
+
+ [SPECIES_JUMPLUFF] = TUTOR_LEARNSET(TUTOR(MOVE_SWORDS_DANCE)
+ | TUTOR(MOVE_DOUBLE_EDGE)
+ | TUTOR(MOVE_MIMIC)
+ | TUTOR(MOVE_SUBSTITUTE)
+ | TUTOR(MOVE_SNORE)
+ | TUTOR(MOVE_ENDURE)
+ | TUTOR(MOVE_SWAGGER)
+ | TUTOR(MOVE_SLEEP_TALK)
+ | TUTOR(MOVE_DEFENSE_CURL)),
+
+ [SPECIES_AIPOM] = TUTOR_LEARNSET(TUTOR(MOVE_MEGA_PUNCH)
+ | TUTOR(MOVE_MEGA_KICK)
+ | TUTOR(MOVE_BODY_SLAM)
+ | TUTOR(MOVE_DOUBLE_EDGE)
+ | TUTOR(MOVE_COUNTER)
+ | TUTOR(MOVE_SEISMIC_TOSS)
+ | TUTOR(MOVE_MIMIC)
+ | TUTOR(MOVE_METRONOME)
+ | TUTOR(MOVE_DREAM_EATER)
+ | TUTOR(MOVE_THUNDER_WAVE)
+ | TUTOR(MOVE_SUBSTITUTE)
+ | TUTOR(MOVE_DYNAMIC_PUNCH)
+ | TUTOR(MOVE_SNORE)
+ | TUTOR(MOVE_ENDURE)
+ | TUTOR(MOVE_MUD_SLAP)
+ | TUTOR(MOVE_ICE_PUNCH)
+ | TUTOR(MOVE_SWAGGER)
+ | TUTOR(MOVE_SLEEP_TALK)
+ | TUTOR(MOVE_SWIFT)
+ | TUTOR(MOVE_DEFENSE_CURL)
+ | TUTOR(MOVE_THUNDER_PUNCH)
+ | TUTOR(MOVE_FIRE_PUNCH)
+ | TUTOR(MOVE_FURY_CUTTER)),
+
+ [SPECIES_SUNKERN] = TUTOR_LEARNSET(TUTOR(MOVE_SWORDS_DANCE)
+ | TUTOR(MOVE_DOUBLE_EDGE)
+ | TUTOR(MOVE_MIMIC)
+ | TUTOR(MOVE_SUBSTITUTE)
+ | TUTOR(MOVE_SNORE)
+ | TUTOR(MOVE_ENDURE)
+ | TUTOR(MOVE_SWAGGER)
+ | TUTOR(MOVE_SLEEP_TALK)),
+
+ [SPECIES_SUNFLORA] = TUTOR_LEARNSET(TUTOR(MOVE_SWORDS_DANCE)
+ | TUTOR(MOVE_DOUBLE_EDGE)
+ | TUTOR(MOVE_MIMIC)
+ | TUTOR(MOVE_SUBSTITUTE)
+ | TUTOR(MOVE_SNORE)
+ | TUTOR(MOVE_ENDURE)
+ | TUTOR(MOVE_SWAGGER)
+ | TUTOR(MOVE_SLEEP_TALK)),
+
+ [SPECIES_YANMA] = TUTOR_LEARNSET(TUTOR(MOVE_DOUBLE_EDGE)
+ | TUTOR(MOVE_MIMIC)
+ | TUTOR(MOVE_DREAM_EATER)
+ | TUTOR(MOVE_SUBSTITUTE)
+ | TUTOR(MOVE_SNORE)
+ | TUTOR(MOVE_ENDURE)
+ | TUTOR(MOVE_SWAGGER)
+ | TUTOR(MOVE_SLEEP_TALK)
+ | TUTOR(MOVE_SWIFT)),
+
+ [SPECIES_WOOPER] = TUTOR_LEARNSET(TUTOR(MOVE_BODY_SLAM)
+ | TUTOR(MOVE_DOUBLE_EDGE)
+ | TUTOR(MOVE_MIMIC)
+ | TUTOR(MOVE_SUBSTITUTE)
+ | TUTOR(MOVE_DYNAMIC_PUNCH)
+ | TUTOR(MOVE_ROLLOUT)
+ | TUTOR(MOVE_SNORE)
+ | TUTOR(MOVE_ENDURE)
+ | TUTOR(MOVE_MUD_SLAP)
+ | TUTOR(MOVE_ICE_PUNCH)
+ | TUTOR(MOVE_SWAGGER)
+ | TUTOR(MOVE_SLEEP_TALK)
+ | TUTOR(MOVE_DEFENSE_CURL)),
+
+ [SPECIES_QUAGSIRE] = TUTOR_LEARNSET(TUTOR(MOVE_MEGA_PUNCH)
+ | TUTOR(MOVE_MEGA_KICK)
+ | TUTOR(MOVE_BODY_SLAM)
+ | TUTOR(MOVE_DOUBLE_EDGE)
+ | TUTOR(MOVE_COUNTER)
+ | TUTOR(MOVE_SEISMIC_TOSS)
+ | TUTOR(MOVE_MIMIC)
+ | TUTOR(MOVE_SUBSTITUTE)
+ | TUTOR(MOVE_DYNAMIC_PUNCH)
+ | TUTOR(MOVE_ROLLOUT)
+ | TUTOR(MOVE_SNORE)
+ | TUTOR(MOVE_ENDURE)
+ | TUTOR(MOVE_MUD_SLAP)
+ | TUTOR(MOVE_ICE_PUNCH)
+ | TUTOR(MOVE_SWAGGER)
+ | TUTOR(MOVE_SLEEP_TALK)
+ | TUTOR(MOVE_DEFENSE_CURL)),
+
+ [SPECIES_ESPEON] = TUTOR_LEARNSET(TUTOR(MOVE_BODY_SLAM)
+ | TUTOR(MOVE_DOUBLE_EDGE)
+ | TUTOR(MOVE_MIMIC)
+ | TUTOR(MOVE_DREAM_EATER)
+ | TUTOR(MOVE_SUBSTITUTE)
+ | TUTOR(MOVE_PSYCH_UP)
+ | TUTOR(MOVE_SNORE)
+ | TUTOR(MOVE_ENDURE)
+ | TUTOR(MOVE_MUD_SLAP)
+ | TUTOR(MOVE_SWAGGER)
+ | TUTOR(MOVE_SLEEP_TALK)
+ | TUTOR(MOVE_SWIFT)),
+
+ [SPECIES_UMBREON] = TUTOR_LEARNSET(TUTOR(MOVE_BODY_SLAM)
+ | TUTOR(MOVE_DOUBLE_EDGE)
+ | TUTOR(MOVE_MIMIC)
+ | TUTOR(MOVE_DREAM_EATER)
+ | TUTOR(MOVE_SUBSTITUTE)
+ | TUTOR(MOVE_PSYCH_UP)
+ | TUTOR(MOVE_SNORE)
+ | TUTOR(MOVE_ENDURE)
+ | TUTOR(MOVE_MUD_SLAP)
+ | TUTOR(MOVE_SWAGGER)
+ | TUTOR(MOVE_SLEEP_TALK)
+ | TUTOR(MOVE_SWIFT)),
+
+ [SPECIES_MURKROW] = TUTOR_LEARNSET(TUTOR(MOVE_DOUBLE_EDGE)
+ | TUTOR(MOVE_MIMIC)
+ | TUTOR(MOVE_DREAM_EATER)
+ | TUTOR(MOVE_THUNDER_WAVE)
+ | TUTOR(MOVE_SUBSTITUTE)
+ | TUTOR(MOVE_PSYCH_UP)
+ | TUTOR(MOVE_SNORE)
+ | TUTOR(MOVE_ICY_WIND)
+ | TUTOR(MOVE_ENDURE)
+ | TUTOR(MOVE_MUD_SLAP)
+ | TUTOR(MOVE_SWAGGER)
+ | TUTOR(MOVE_SLEEP_TALK)
+ | TUTOR(MOVE_SWIFT)),
+
+ [SPECIES_SLOWKING] = TUTOR_LEARNSET(TUTOR(MOVE_MEGA_PUNCH)
+ | TUTOR(MOVE_MEGA_KICK)
+ | TUTOR(MOVE_BODY_SLAM)
+ | TUTOR(MOVE_DOUBLE_EDGE)
+ | TUTOR(MOVE_COUNTER)
+ | TUTOR(MOVE_SEISMIC_TOSS)
+ | TUTOR(MOVE_MIMIC)
+ | TUTOR(MOVE_DREAM_EATER)
+ | TUTOR(MOVE_THUNDER_WAVE)
+ | TUTOR(MOVE_SUBSTITUTE)
+ | TUTOR(MOVE_DYNAMIC_PUNCH)
+ | TUTOR(MOVE_PSYCH_UP)
+ | TUTOR(MOVE_SNORE)
+ | TUTOR(MOVE_ICY_WIND)
+ | TUTOR(MOVE_ENDURE)
+ | TUTOR(MOVE_MUD_SLAP)
+ | TUTOR(MOVE_ICE_PUNCH)
+ | TUTOR(MOVE_SWAGGER)
+ | TUTOR(MOVE_SLEEP_TALK)
+ | TUTOR(MOVE_SWIFT)
+ | TUTOR(MOVE_FURY_CUTTER)),
+
+ [SPECIES_MISDREAVUS] = TUTOR_LEARNSET(TUTOR(MOVE_DOUBLE_EDGE)
+ | TUTOR(MOVE_MIMIC)
+ | TUTOR(MOVE_DREAM_EATER)
+ | TUTOR(MOVE_THUNDER_WAVE)
+ | TUTOR(MOVE_SUBSTITUTE)
+ | TUTOR(MOVE_PSYCH_UP)
+ | TUTOR(MOVE_SNORE)
+ | TUTOR(MOVE_ENDURE)
+ | TUTOR(MOVE_SWAGGER)
+ | TUTOR(MOVE_SLEEP_TALK)
+ | TUTOR(MOVE_SWIFT)
+ | TUTOR(MOVE_DEFENSE_CURL)),
+
+ [SPECIES_UNOWN] = TUTOR_LEARNSET(0),
+
+ [SPECIES_WOBBUFFET] = TUTOR_LEARNSET(0),
+
+ [SPECIES_GIRAFARIG] = TUTOR_LEARNSET(TUTOR(MOVE_BODY_SLAM)
+ | TUTOR(MOVE_DOUBLE_EDGE)
+ | TUTOR(MOVE_MIMIC)
+ | TUTOR(MOVE_DREAM_EATER)
+ | TUTOR(MOVE_THUNDER_WAVE)
+ | TUTOR(MOVE_SUBSTITUTE)
+ | TUTOR(MOVE_PSYCH_UP)
+ | TUTOR(MOVE_SNORE)
+ | TUTOR(MOVE_ENDURE)
+ | TUTOR(MOVE_MUD_SLAP)
+ | TUTOR(MOVE_SWAGGER)
+ | TUTOR(MOVE_SLEEP_TALK)
+ | TUTOR(MOVE_SWIFT)),
+
+ [SPECIES_PINECO] = TUTOR_LEARNSET(TUTOR(MOVE_BODY_SLAM)
+ | TUTOR(MOVE_DOUBLE_EDGE)
+ | TUTOR(MOVE_COUNTER)
+ | TUTOR(MOVE_MIMIC)
+ | TUTOR(MOVE_EXPLOSION)
+ | TUTOR(MOVE_ROCK_SLIDE)
+ | TUTOR(MOVE_SUBSTITUTE)
+ | TUTOR(MOVE_ROLLOUT)
+ | TUTOR(MOVE_SNORE)
+ | TUTOR(MOVE_ENDURE)
+ | TUTOR(MOVE_SWAGGER)
+ | TUTOR(MOVE_SLEEP_TALK)
+ | TUTOR(MOVE_DEFENSE_CURL)),
+
+ [SPECIES_FORRETRESS] = TUTOR_LEARNSET(TUTOR(MOVE_BODY_SLAM)
+ | TUTOR(MOVE_DOUBLE_EDGE)
+ | TUTOR(MOVE_COUNTER)
+ | TUTOR(MOVE_MIMIC)
+ | TUTOR(MOVE_EXPLOSION)
+ | TUTOR(MOVE_ROCK_SLIDE)
+ | TUTOR(MOVE_SUBSTITUTE)
+ | TUTOR(MOVE_ROLLOUT)
+ | TUTOR(MOVE_SNORE)
+ | TUTOR(MOVE_ENDURE)
+ | TUTOR(MOVE_SWAGGER)
+ | TUTOR(MOVE_SLEEP_TALK)
+ | TUTOR(MOVE_DEFENSE_CURL)),
+
+ [SPECIES_DUNSPARCE] = TUTOR_LEARNSET(TUTOR(MOVE_BODY_SLAM)
+ | TUTOR(MOVE_DOUBLE_EDGE)
+ | TUTOR(MOVE_COUNTER)
+ | TUTOR(MOVE_MIMIC)
+ | TUTOR(MOVE_DREAM_EATER)
+ | TUTOR(MOVE_THUNDER_WAVE)
+ | TUTOR(MOVE_ROCK_SLIDE)
+ | TUTOR(MOVE_SUBSTITUTE)
+ | TUTOR(MOVE_ROLLOUT)
+ | TUTOR(MOVE_PSYCH_UP)
+ | TUTOR(MOVE_SNORE)
+ | TUTOR(MOVE_ENDURE)
+ | TUTOR(MOVE_MUD_SLAP)
+ | TUTOR(MOVE_SWAGGER)
+ | TUTOR(MOVE_SLEEP_TALK)
+ | TUTOR(MOVE_DEFENSE_CURL)),
+
+ [SPECIES_GLIGAR] = TUTOR_LEARNSET(TUTOR(MOVE_SWORDS_DANCE)
+ | TUTOR(MOVE_DOUBLE_EDGE)
+ | TUTOR(MOVE_COUNTER)
+ | TUTOR(MOVE_MIMIC)
+ | TUTOR(MOVE_DREAM_EATER)
+ | TUTOR(MOVE_ROCK_SLIDE)
+ | TUTOR(MOVE_SUBSTITUTE)
+ | TUTOR(MOVE_SNORE)
+ | TUTOR(MOVE_ENDURE)
+ | TUTOR(MOVE_SWAGGER)
+ | TUTOR(MOVE_SLEEP_TALK)
+ | TUTOR(MOVE_SWIFT)
+ | TUTOR(MOVE_FURY_CUTTER)),
+
+ [SPECIES_STEELIX] = TUTOR_LEARNSET(TUTOR(MOVE_BODY_SLAM)
+ | TUTOR(MOVE_DOUBLE_EDGE)
+ | TUTOR(MOVE_MIMIC)
+ | TUTOR(MOVE_EXPLOSION)
+ | TUTOR(MOVE_ROCK_SLIDE)
+ | TUTOR(MOVE_SUBSTITUTE)
+ | TUTOR(MOVE_ROLLOUT)
+ | TUTOR(MOVE_SNORE)
+ | TUTOR(MOVE_ENDURE)
+ | TUTOR(MOVE_MUD_SLAP)
+ | TUTOR(MOVE_SWAGGER)
+ | TUTOR(MOVE_SLEEP_TALK)
+ | TUTOR(MOVE_DEFENSE_CURL)),
+
+ [SPECIES_SNUBBULL] = TUTOR_LEARNSET(TUTOR(MOVE_MEGA_PUNCH)
+ | TUTOR(MOVE_MEGA_KICK)
+ | TUTOR(MOVE_BODY_SLAM)
+ | TUTOR(MOVE_DOUBLE_EDGE)
+ | TUTOR(MOVE_COUNTER)
+ | TUTOR(MOVE_SEISMIC_TOSS)
+ | TUTOR(MOVE_MIMIC)
+ | TUTOR(MOVE_METRONOME)
+ | TUTOR(MOVE_THUNDER_WAVE)
+ | TUTOR(MOVE_SUBSTITUTE)
+ | TUTOR(MOVE_DYNAMIC_PUNCH)
+ | TUTOR(MOVE_SNORE)
+ | TUTOR(MOVE_ENDURE)
+ | TUTOR(MOVE_MUD_SLAP)
+ | TUTOR(MOVE_ICE_PUNCH)
+ | TUTOR(MOVE_SWAGGER)
+ | TUTOR(MOVE_SLEEP_TALK)
+ | TUTOR(MOVE_DEFENSE_CURL)
+ | TUTOR(MOVE_THUNDER_PUNCH)
+ | TUTOR(MOVE_FIRE_PUNCH)),
+
+ [SPECIES_GRANBULL] = TUTOR_LEARNSET(TUTOR(MOVE_MEGA_PUNCH)
+ | TUTOR(MOVE_MEGA_KICK)
+ | TUTOR(MOVE_BODY_SLAM)
+ | TUTOR(MOVE_DOUBLE_EDGE)
+ | TUTOR(MOVE_COUNTER)
+ | TUTOR(MOVE_SEISMIC_TOSS)
+ | TUTOR(MOVE_MIMIC)
+ | TUTOR(MOVE_METRONOME)
+ | TUTOR(MOVE_THUNDER_WAVE)
+ | TUTOR(MOVE_ROCK_SLIDE)
+ | TUTOR(MOVE_SUBSTITUTE)
+ | TUTOR(MOVE_DYNAMIC_PUNCH)
+ | TUTOR(MOVE_SNORE)
+ | TUTOR(MOVE_ENDURE)
+ | TUTOR(MOVE_MUD_SLAP)
+ | TUTOR(MOVE_ICE_PUNCH)
+ | TUTOR(MOVE_SWAGGER)
+ | TUTOR(MOVE_SLEEP_TALK)
+ | TUTOR(MOVE_DEFENSE_CURL)
+ | TUTOR(MOVE_THUNDER_PUNCH)
+ | TUTOR(MOVE_FIRE_PUNCH)),
+
+ [SPECIES_QWILFISH] = TUTOR_LEARNSET(TUTOR(MOVE_SWORDS_DANCE)
+ | TUTOR(MOVE_DOUBLE_EDGE)
+ | TUTOR(MOVE_MIMIC)
+ | TUTOR(MOVE_THUNDER_WAVE)
+ | TUTOR(MOVE_SUBSTITUTE)
+ | TUTOR(MOVE_ROLLOUT)
+ | TUTOR(MOVE_SNORE)
+ | TUTOR(MOVE_ICY_WIND)
+ | TUTOR(MOVE_ENDURE)
+ | TUTOR(MOVE_SWAGGER)
+ | TUTOR(MOVE_SLEEP_TALK)
+ | TUTOR(MOVE_SWIFT)
+ | TUTOR(MOVE_DEFENSE_CURL)),
+
+ [SPECIES_SCIZOR] = TUTOR_LEARNSET(TUTOR(MOVE_SWORDS_DANCE)
+ | TUTOR(MOVE_DOUBLE_EDGE)
+ | TUTOR(MOVE_COUNTER)
+ | TUTOR(MOVE_MIMIC)
+ | TUTOR(MOVE_SUBSTITUTE)
+ | TUTOR(MOVE_SNORE)
+ | TUTOR(MOVE_ENDURE)
+ | TUTOR(MOVE_SWAGGER)
+ | TUTOR(MOVE_SLEEP_TALK)
+ | TUTOR(MOVE_SWIFT)
+ | TUTOR(MOVE_FURY_CUTTER)),
+
+ [SPECIES_SHUCKLE] = TUTOR_LEARNSET(TUTOR(MOVE_BODY_SLAM)
+ | TUTOR(MOVE_DOUBLE_EDGE)
+ | TUTOR(MOVE_MIMIC)
+ | TUTOR(MOVE_ROCK_SLIDE)
+ | TUTOR(MOVE_SUBSTITUTE)
+ | TUTOR(MOVE_ROLLOUT)
+ | TUTOR(MOVE_SNORE)
+ | TUTOR(MOVE_ENDURE)
+ | TUTOR(MOVE_MUD_SLAP)
+ | TUTOR(MOVE_SWAGGER)
+ | TUTOR(MOVE_SLEEP_TALK)
+ | TUTOR(MOVE_DEFENSE_CURL)),
+
+ [SPECIES_HERACROSS] = TUTOR_LEARNSET(TUTOR(MOVE_SWORDS_DANCE)
+ | TUTOR(MOVE_BODY_SLAM)
+ | TUTOR(MOVE_DOUBLE_EDGE)
+ | TUTOR(MOVE_COUNTER)
+ | TUTOR(MOVE_SEISMIC_TOSS)
+ | TUTOR(MOVE_MIMIC)
+ | TUTOR(MOVE_ROCK_SLIDE)
+ | TUTOR(MOVE_SUBSTITUTE)
+ | TUTOR(MOVE_SNORE)
+ | TUTOR(MOVE_ENDURE)
+ | TUTOR(MOVE_SWAGGER)
+ | TUTOR(MOVE_SLEEP_TALK)
+ | TUTOR(MOVE_FURY_CUTTER)),
+
+ [SPECIES_SNEASEL] = TUTOR_LEARNSET(TUTOR(MOVE_SWORDS_DANCE)
+ | TUTOR(MOVE_DOUBLE_EDGE)
+ | TUTOR(MOVE_COUNTER)
+ | TUTOR(MOVE_MIMIC)
+ | TUTOR(MOVE_DREAM_EATER)
+ | TUTOR(MOVE_SUBSTITUTE)
+ | TUTOR(MOVE_DYNAMIC_PUNCH)
+ | TUTOR(MOVE_PSYCH_UP)
+ | TUTOR(MOVE_SNORE)
+ | TUTOR(MOVE_ICY_WIND)
+ | TUTOR(MOVE_ENDURE)
+ | TUTOR(MOVE_MUD_SLAP)
+ | TUTOR(MOVE_ICE_PUNCH)
+ | TUTOR(MOVE_SWAGGER)
+ | TUTOR(MOVE_SLEEP_TALK)
+ | TUTOR(MOVE_SWIFT)
+ | TUTOR(MOVE_DEFENSE_CURL)
+ | TUTOR(MOVE_FURY_CUTTER)),
+
+ [SPECIES_TEDDIURSA] = TUTOR_LEARNSET(TUTOR(MOVE_MEGA_PUNCH)
+ | TUTOR(MOVE_SWORDS_DANCE)
+ | TUTOR(MOVE_MEGA_KICK)
+ | TUTOR(MOVE_BODY_SLAM)
+ | TUTOR(MOVE_DOUBLE_EDGE)
+ | TUTOR(MOVE_COUNTER)
+ | TUTOR(MOVE_SEISMIC_TOSS)
+ | TUTOR(MOVE_MIMIC)
+ | TUTOR(MOVE_METRONOME)
+ | TUTOR(MOVE_SUBSTITUTE)
+ | TUTOR(MOVE_DYNAMIC_PUNCH)
+ | TUTOR(MOVE_ROLLOUT)
+ | TUTOR(MOVE_SNORE)
+ | TUTOR(MOVE_ENDURE)
+ | TUTOR(MOVE_MUD_SLAP)
+ | TUTOR(MOVE_ICE_PUNCH)
+ | TUTOR(MOVE_SWAGGER)
+ | TUTOR(MOVE_SLEEP_TALK)
+ | TUTOR(MOVE_SWIFT)
+ | TUTOR(MOVE_DEFENSE_CURL)
+ | TUTOR(MOVE_THUNDER_PUNCH)
+ | TUTOR(MOVE_FIRE_PUNCH)
+ | TUTOR(MOVE_FURY_CUTTER)),
+
+ [SPECIES_URSARING] = TUTOR_LEARNSET(TUTOR(MOVE_MEGA_PUNCH)
+ | TUTOR(MOVE_SWORDS_DANCE)
+ | TUTOR(MOVE_MEGA_KICK)
+ | TUTOR(MOVE_BODY_SLAM)
+ | TUTOR(MOVE_DOUBLE_EDGE)
+ | TUTOR(MOVE_COUNTER)
+ | TUTOR(MOVE_SEISMIC_TOSS)
+ | TUTOR(MOVE_MIMIC)
+ | TUTOR(MOVE_METRONOME)
+ | TUTOR(MOVE_ROCK_SLIDE)
+ | TUTOR(MOVE_SUBSTITUTE)
+ | TUTOR(MOVE_DYNAMIC_PUNCH)
+ | TUTOR(MOVE_ROLLOUT)
+ | TUTOR(MOVE_SNORE)
+ | TUTOR(MOVE_ENDURE)
+ | TUTOR(MOVE_MUD_SLAP)
+ | TUTOR(MOVE_ICE_PUNCH)
+ | TUTOR(MOVE_SWAGGER)
+ | TUTOR(MOVE_SLEEP_TALK)
+ | TUTOR(MOVE_SWIFT)
+ | TUTOR(MOVE_DEFENSE_CURL)
+ | TUTOR(MOVE_THUNDER_PUNCH)
+ | TUTOR(MOVE_FIRE_PUNCH)
+ | TUTOR(MOVE_FURY_CUTTER)),
+
+ [SPECIES_SLUGMA] = TUTOR_LEARNSET(TUTOR(MOVE_BODY_SLAM)
+ | TUTOR(MOVE_DOUBLE_EDGE)
+ | TUTOR(MOVE_MIMIC)
+ | TUTOR(MOVE_ROCK_SLIDE)
+ | TUTOR(MOVE_SUBSTITUTE)
+ | TUTOR(MOVE_ROLLOUT)
+ | TUTOR(MOVE_SNORE)
+ | TUTOR(MOVE_ENDURE)
+ | TUTOR(MOVE_MUD_SLAP)
+ | TUTOR(MOVE_SWAGGER)
+ | TUTOR(MOVE_SLEEP_TALK)
+ | TUTOR(MOVE_DEFENSE_CURL)),
+
+ [SPECIES_MAGCARGO] = TUTOR_LEARNSET(TUTOR(MOVE_BODY_SLAM)
+ | TUTOR(MOVE_DOUBLE_EDGE)
+ | TUTOR(MOVE_MIMIC)
+ | TUTOR(MOVE_ROCK_SLIDE)
+ | TUTOR(MOVE_SUBSTITUTE)
+ | TUTOR(MOVE_ROLLOUT)
+ | TUTOR(MOVE_SNORE)
+ | TUTOR(MOVE_ENDURE)
+ | TUTOR(MOVE_MUD_SLAP)
+ | TUTOR(MOVE_SWAGGER)
+ | TUTOR(MOVE_SLEEP_TALK)
+ | TUTOR(MOVE_DEFENSE_CURL)),
+
+ [SPECIES_SWINUB] = TUTOR_LEARNSET(TUTOR(MOVE_BODY_SLAM)
+ | TUTOR(MOVE_DOUBLE_EDGE)
+ | TUTOR(MOVE_MIMIC)
+ | TUTOR(MOVE_ROCK_SLIDE)
+ | TUTOR(MOVE_SUBSTITUTE)
+ | TUTOR(MOVE_SNORE)
+ | TUTOR(MOVE_ICY_WIND)
+ | TUTOR(MOVE_ENDURE)
+ | TUTOR(MOVE_MUD_SLAP)
+ | TUTOR(MOVE_SWAGGER)
+ | TUTOR(MOVE_SLEEP_TALK)
+ | TUTOR(MOVE_DEFENSE_CURL)),
+
+ [SPECIES_PILOSWINE] = TUTOR_LEARNSET(TUTOR(MOVE_BODY_SLAM)
+ | TUTOR(MOVE_DOUBLE_EDGE)
+ | TUTOR(MOVE_MIMIC)
+ | TUTOR(MOVE_ROCK_SLIDE)
+ | TUTOR(MOVE_SUBSTITUTE)
+ | TUTOR(MOVE_SNORE)
+ | TUTOR(MOVE_ICY_WIND)
+ | TUTOR(MOVE_ENDURE)
+ | TUTOR(MOVE_MUD_SLAP)
+ | TUTOR(MOVE_SWAGGER)
+ | TUTOR(MOVE_SLEEP_TALK)
+ | TUTOR(MOVE_DEFENSE_CURL)),
+
+ [SPECIES_CORSOLA] = TUTOR_LEARNSET(TUTOR(MOVE_BODY_SLAM)
+ | TUTOR(MOVE_DOUBLE_EDGE)
+ | TUTOR(MOVE_MIMIC)
+ | TUTOR(MOVE_EXPLOSION)
+ | TUTOR(MOVE_ROCK_SLIDE)
+ | TUTOR(MOVE_SUBSTITUTE)
+ | TUTOR(MOVE_ROLLOUT)
+ | TUTOR(MOVE_SNORE)
+ | TUTOR(MOVE_ENDURE)
+ | TUTOR(MOVE_MUD_SLAP)
+ | TUTOR(MOVE_SWAGGER)
+ | TUTOR(MOVE_SLEEP_TALK)
+ | TUTOR(MOVE_DEFENSE_CURL)),
+
+ [SPECIES_REMORAID] = TUTOR_LEARNSET(TUTOR(MOVE_DOUBLE_EDGE)
+ | TUTOR(MOVE_MIMIC)
+ | TUTOR(MOVE_THUNDER_WAVE)
+ | TUTOR(MOVE_SUBSTITUTE)
+ | TUTOR(MOVE_SNORE)
+ | TUTOR(MOVE_ENDURE)
+ | TUTOR(MOVE_MUD_SLAP)
+ | TUTOR(MOVE_SWAGGER)
+ | TUTOR(MOVE_SLEEP_TALK)
+ | TUTOR(MOVE_SWIFT)
+ | TUTOR(MOVE_DEFENSE_CURL)),
+
+ [SPECIES_OCTILLERY] = TUTOR_LEARNSET(TUTOR(MOVE_DOUBLE_EDGE)
+ | TUTOR(MOVE_SEISMIC_TOSS)
+ | TUTOR(MOVE_MIMIC)
+ | TUTOR(MOVE_THUNDER_WAVE)
+ | TUTOR(MOVE_SUBSTITUTE)
+ | TUTOR(MOVE_SNORE)
+ | TUTOR(MOVE_ENDURE)
+ | TUTOR(MOVE_MUD_SLAP)
+ | TUTOR(MOVE_SWAGGER)
+ | TUTOR(MOVE_SLEEP_TALK)
+ | TUTOR(MOVE_SWIFT)
+ | TUTOR(MOVE_DEFENSE_CURL)),
+
+ [SPECIES_DELIBIRD] = TUTOR_LEARNSET(TUTOR(MOVE_MEGA_PUNCH)
+ | TUTOR(MOVE_MEGA_KICK)
+ | TUTOR(MOVE_BODY_SLAM)
+ | TUTOR(MOVE_DOUBLE_EDGE)
+ | TUTOR(MOVE_COUNTER)
+ | TUTOR(MOVE_SEISMIC_TOSS)
+ | TUTOR(MOVE_MIMIC)
+ | TUTOR(MOVE_SUBSTITUTE)
+ | TUTOR(MOVE_SNORE)
+ | TUTOR(MOVE_ICY_WIND)
+ | TUTOR(MOVE_ENDURE)
+ | TUTOR(MOVE_MUD_SLAP)
+ | TUTOR(MOVE_SWAGGER)
+ | TUTOR(MOVE_SLEEP_TALK)
+ | TUTOR(MOVE_SWIFT)),
+
+ [SPECIES_MANTINE] = TUTOR_LEARNSET(TUTOR(MOVE_BODY_SLAM)
+ | TUTOR(MOVE_DOUBLE_EDGE)
+ | TUTOR(MOVE_MIMIC)
+ | TUTOR(MOVE_SUBSTITUTE)
+ | TUTOR(MOVE_SNORE)
+ | TUTOR(MOVE_ICY_WIND)
+ | TUTOR(MOVE_ENDURE)
+ | TUTOR(MOVE_MUD_SLAP)
+ | TUTOR(MOVE_SWAGGER)
+ | TUTOR(MOVE_SLEEP_TALK)
+ | TUTOR(MOVE_SWIFT)),
+
+ [SPECIES_SKARMORY] = TUTOR_LEARNSET(TUTOR(MOVE_DOUBLE_EDGE)
+ | TUTOR(MOVE_COUNTER)
+ | TUTOR(MOVE_MIMIC)
+ | TUTOR(MOVE_ROCK_SLIDE)
+ | TUTOR(MOVE_SUBSTITUTE)
+ | TUTOR(MOVE_SNORE)
+ | TUTOR(MOVE_ENDURE)
+ | TUTOR(MOVE_MUD_SLAP)
+ | TUTOR(MOVE_SWAGGER)
+ | TUTOR(MOVE_SLEEP_TALK)
+ | TUTOR(MOVE_SWIFT)),
+
+ [SPECIES_HOUNDOUR] = TUTOR_LEARNSET(TUTOR(MOVE_BODY_SLAM)
+ | TUTOR(MOVE_DOUBLE_EDGE)
+ | TUTOR(MOVE_COUNTER)
+ | TUTOR(MOVE_MIMIC)
+ | TUTOR(MOVE_DREAM_EATER)
+ | TUTOR(MOVE_SUBSTITUTE)
+ | TUTOR(MOVE_SNORE)
+ | TUTOR(MOVE_ENDURE)
+ | TUTOR(MOVE_MUD_SLAP)
+ | TUTOR(MOVE_SWAGGER)
+ | TUTOR(MOVE_SLEEP_TALK)
+ | TUTOR(MOVE_SWIFT)),
+
+ [SPECIES_HOUNDOOM] = TUTOR_LEARNSET(TUTOR(MOVE_BODY_SLAM)
+ | TUTOR(MOVE_DOUBLE_EDGE)
+ | TUTOR(MOVE_COUNTER)
+ | TUTOR(MOVE_MIMIC)
+ | TUTOR(MOVE_DREAM_EATER)
+ | TUTOR(MOVE_SUBSTITUTE)
+ | TUTOR(MOVE_SNORE)
+ | TUTOR(MOVE_ENDURE)
+ | TUTOR(MOVE_MUD_SLAP)
+ | TUTOR(MOVE_SWAGGER)
+ | TUTOR(MOVE_SLEEP_TALK)
+ | TUTOR(MOVE_SWIFT)),
+
+ [SPECIES_KINGDRA] = TUTOR_LEARNSET(TUTOR(MOVE_BODY_SLAM)
+ | TUTOR(MOVE_DOUBLE_EDGE)
+ | TUTOR(MOVE_MIMIC)
+ | TUTOR(MOVE_SUBSTITUTE)
+ | TUTOR(MOVE_SNORE)
+ | TUTOR(MOVE_ICY_WIND)
+ | TUTOR(MOVE_ENDURE)
+ | TUTOR(MOVE_SWAGGER)
+ | TUTOR(MOVE_SLEEP_TALK)
+ | TUTOR(MOVE_SWIFT)),
+
+ [SPECIES_PHANPY] = TUTOR_LEARNSET(TUTOR(MOVE_BODY_SLAM)
+ | TUTOR(MOVE_DOUBLE_EDGE)
+ | TUTOR(MOVE_COUNTER)
+ | TUTOR(MOVE_MIMIC)
+ | TUTOR(MOVE_SUBSTITUTE)
+ | TUTOR(MOVE_ROLLOUT)
+ | TUTOR(MOVE_SNORE)
+ | TUTOR(MOVE_ENDURE)
+ | TUTOR(MOVE_MUD_SLAP)
+ | TUTOR(MOVE_SWAGGER)
+ | TUTOR(MOVE_SLEEP_TALK)
+ | TUTOR(MOVE_DEFENSE_CURL)),
+
+ [SPECIES_DONPHAN] = TUTOR_LEARNSET(TUTOR(MOVE_BODY_SLAM)
+ | TUTOR(MOVE_DOUBLE_EDGE)
+ | TUTOR(MOVE_COUNTER)
+ | TUTOR(MOVE_MIMIC)
+ | TUTOR(MOVE_ROCK_SLIDE)
+ | TUTOR(MOVE_SUBSTITUTE)
+ | TUTOR(MOVE_ROLLOUT)
+ | TUTOR(MOVE_SNORE)
+ | TUTOR(MOVE_ENDURE)
+ | TUTOR(MOVE_MUD_SLAP)
+ | TUTOR(MOVE_SWAGGER)
+ | TUTOR(MOVE_SLEEP_TALK)
+ | TUTOR(MOVE_DEFENSE_CURL)),
+
+ [SPECIES_PORYGON2] = TUTOR_LEARNSET(TUTOR(MOVE_DOUBLE_EDGE)
+ | TUTOR(MOVE_MIMIC)
+ | TUTOR(MOVE_DREAM_EATER)
+ | TUTOR(MOVE_THUNDER_WAVE)
+ | TUTOR(MOVE_SUBSTITUTE)
+ | TUTOR(MOVE_PSYCH_UP)
+ | TUTOR(MOVE_SNORE)
+ | TUTOR(MOVE_ICY_WIND)
+ | TUTOR(MOVE_ENDURE)
+ | TUTOR(MOVE_SWAGGER)
+ | TUTOR(MOVE_SLEEP_TALK)
+ | TUTOR(MOVE_SWIFT)
+ | TUTOR(MOVE_DEFENSE_CURL)),
+
+ [SPECIES_STANTLER] = TUTOR_LEARNSET(TUTOR(MOVE_BODY_SLAM)
+ | TUTOR(MOVE_DOUBLE_EDGE)
+ | TUTOR(MOVE_MIMIC)
+ | TUTOR(MOVE_DREAM_EATER)
+ | TUTOR(MOVE_THUNDER_WAVE)
+ | TUTOR(MOVE_SUBSTITUTE)
+ | TUTOR(MOVE_PSYCH_UP)
+ | TUTOR(MOVE_SNORE)
+ | TUTOR(MOVE_ENDURE)
+ | TUTOR(MOVE_MUD_SLAP)
+ | TUTOR(MOVE_SWAGGER)
+ | TUTOR(MOVE_SLEEP_TALK)
+ | TUTOR(MOVE_SWIFT)),
+
+ [SPECIES_SMEARGLE] = TUTOR_LEARNSET(0),
+
+ [SPECIES_TYROGUE] = TUTOR_LEARNSET(TUTOR(MOVE_MEGA_KICK)
+ | TUTOR(MOVE_BODY_SLAM)
+ | TUTOR(MOVE_DOUBLE_EDGE)
+ | TUTOR(MOVE_COUNTER)
+ | TUTOR(MOVE_SEISMIC_TOSS)
+ | TUTOR(MOVE_MIMIC)
+ | TUTOR(MOVE_ROCK_SLIDE)
+ | TUTOR(MOVE_SUBSTITUTE)
+ | TUTOR(MOVE_SNORE)
+ | TUTOR(MOVE_ENDURE)
+ | TUTOR(MOVE_MUD_SLAP)
+ | TUTOR(MOVE_SWAGGER)
+ | TUTOR(MOVE_SLEEP_TALK)
+ | TUTOR(MOVE_SWIFT)),
+
+ [SPECIES_HITMONTOP] = TUTOR_LEARNSET(TUTOR(MOVE_MEGA_KICK)
+ | TUTOR(MOVE_BODY_SLAM)
+ | TUTOR(MOVE_DOUBLE_EDGE)
+ | TUTOR(MOVE_COUNTER)
+ | TUTOR(MOVE_SEISMIC_TOSS)
+ | TUTOR(MOVE_MIMIC)
+ | TUTOR(MOVE_ROCK_SLIDE)
+ | TUTOR(MOVE_SUBSTITUTE)
+ | TUTOR(MOVE_SNORE)
+ | TUTOR(MOVE_ENDURE)
+ | TUTOR(MOVE_MUD_SLAP)
+ | TUTOR(MOVE_SWAGGER)
+ | TUTOR(MOVE_SLEEP_TALK)
+ | TUTOR(MOVE_SWIFT)),
+
+ [SPECIES_SMOOCHUM] = TUTOR_LEARNSET(TUTOR(MOVE_MEGA_PUNCH)
+ | TUTOR(MOVE_MEGA_KICK)
+ | TUTOR(MOVE_BODY_SLAM)
+ | TUTOR(MOVE_DOUBLE_EDGE)
+ | TUTOR(MOVE_COUNTER)
+ | TUTOR(MOVE_SEISMIC_TOSS)
+ | TUTOR(MOVE_MIMIC)
+ | TUTOR(MOVE_METRONOME)
+ | TUTOR(MOVE_DREAM_EATER)
+ | TUTOR(MOVE_SUBSTITUTE)
+ | TUTOR(MOVE_DYNAMIC_PUNCH)
+ | TUTOR(MOVE_PSYCH_UP)
+ | TUTOR(MOVE_SNORE)
+ | TUTOR(MOVE_ICY_WIND)
+ | TUTOR(MOVE_ENDURE)
+ | TUTOR(MOVE_MUD_SLAP)
+ | TUTOR(MOVE_ICE_PUNCH)
+ | TUTOR(MOVE_SWAGGER)
+ | TUTOR(MOVE_SLEEP_TALK)),
+
+ [SPECIES_ELEKID] = TUTOR_LEARNSET(TUTOR(MOVE_MEGA_PUNCH)
+ | TUTOR(MOVE_MEGA_KICK)
+ | TUTOR(MOVE_BODY_SLAM)
+ | TUTOR(MOVE_DOUBLE_EDGE)
+ | TUTOR(MOVE_COUNTER)
+ | TUTOR(MOVE_SEISMIC_TOSS)
+ | TUTOR(MOVE_MIMIC)
+ | TUTOR(MOVE_THUNDER_WAVE)
+ | TUTOR(MOVE_SUBSTITUTE)
+ | TUTOR(MOVE_DYNAMIC_PUNCH)
+ | TUTOR(MOVE_SNORE)
+ | TUTOR(MOVE_ENDURE)
+ | TUTOR(MOVE_MUD_SLAP)
+ | TUTOR(MOVE_ICE_PUNCH)
+ | TUTOR(MOVE_SWAGGER)
+ | TUTOR(MOVE_SLEEP_TALK)
+ | TUTOR(MOVE_SWIFT)
+ | TUTOR(MOVE_THUNDER_PUNCH)
+ | TUTOR(MOVE_FIRE_PUNCH)),
+
+ [SPECIES_MAGBY] = TUTOR_LEARNSET(TUTOR(MOVE_MEGA_PUNCH)
+ | TUTOR(MOVE_MEGA_KICK)
+ | TUTOR(MOVE_BODY_SLAM)
+ | TUTOR(MOVE_DOUBLE_EDGE)
+ | TUTOR(MOVE_COUNTER)
+ | TUTOR(MOVE_SEISMIC_TOSS)
+ | TUTOR(MOVE_MIMIC)
+ | TUTOR(MOVE_SUBSTITUTE)
+ | TUTOR(MOVE_DYNAMIC_PUNCH)
+ | TUTOR(MOVE_SNORE)
+ | TUTOR(MOVE_ENDURE)
+ | TUTOR(MOVE_MUD_SLAP)
+ | TUTOR(MOVE_SWAGGER)
+ | TUTOR(MOVE_SLEEP_TALK)
+ | TUTOR(MOVE_THUNDER_PUNCH)
+ | TUTOR(MOVE_FIRE_PUNCH)),
+
+ [SPECIES_MILTANK] = TUTOR_LEARNSET(TUTOR(MOVE_MEGA_PUNCH)
+ | TUTOR(MOVE_MEGA_KICK)
+ | TUTOR(MOVE_BODY_SLAM)
+ | TUTOR(MOVE_DOUBLE_EDGE)
+ | TUTOR(MOVE_COUNTER)
+ | TUTOR(MOVE_SEISMIC_TOSS)
+ | TUTOR(MOVE_MIMIC)
+ | TUTOR(MOVE_METRONOME)
+ | TUTOR(MOVE_THUNDER_WAVE)
+ | TUTOR(MOVE_ROCK_SLIDE)
+ | TUTOR(MOVE_SUBSTITUTE)
+ | TUTOR(MOVE_DYNAMIC_PUNCH)
+ | TUTOR(MOVE_ROLLOUT)
+ | TUTOR(MOVE_PSYCH_UP)
+ | TUTOR(MOVE_SNORE)
+ | TUTOR(MOVE_ICY_WIND)
+ | TUTOR(MOVE_ENDURE)
+ | TUTOR(MOVE_MUD_SLAP)
+ | TUTOR(MOVE_ICE_PUNCH)
+ | TUTOR(MOVE_SWAGGER)
+ | TUTOR(MOVE_SLEEP_TALK)
+ | TUTOR(MOVE_DEFENSE_CURL)
+ | TUTOR(MOVE_THUNDER_PUNCH)
+ | TUTOR(MOVE_FIRE_PUNCH)),
+
+ [SPECIES_BLISSEY] = TUTOR_LEARNSET(TUTOR(MOVE_MEGA_PUNCH)
+ | TUTOR(MOVE_MEGA_KICK)
+ | TUTOR(MOVE_BODY_SLAM)
+ | TUTOR(MOVE_DOUBLE_EDGE)
+ | TUTOR(MOVE_COUNTER)
+ | TUTOR(MOVE_SEISMIC_TOSS)
+ | TUTOR(MOVE_MIMIC)
+ | TUTOR(MOVE_METRONOME)
+ | TUTOR(MOVE_SOFT_BOILED)
+ | TUTOR(MOVE_DREAM_EATER)
+ | TUTOR(MOVE_THUNDER_WAVE)
+ | TUTOR(MOVE_SUBSTITUTE)
+ | TUTOR(MOVE_DYNAMIC_PUNCH)
+ | TUTOR(MOVE_ROLLOUT)
+ | TUTOR(MOVE_SNORE)
+ | TUTOR(MOVE_ICY_WIND)
+ | TUTOR(MOVE_ENDURE)
+ | TUTOR(MOVE_MUD_SLAP)
+ | TUTOR(MOVE_SWAGGER)
+ | TUTOR(MOVE_SLEEP_TALK)
+ | TUTOR(MOVE_DEFENSE_CURL)),
+
+ [SPECIES_RAIKOU] = TUTOR_LEARNSET(TUTOR(MOVE_BODY_SLAM)
+ | TUTOR(MOVE_DOUBLE_EDGE)
+ | TUTOR(MOVE_MIMIC)
+ | TUTOR(MOVE_THUNDER_WAVE)
+ | TUTOR(MOVE_SUBSTITUTE)
+ | TUTOR(MOVE_PSYCH_UP)
+ | TUTOR(MOVE_SNORE)
+ | TUTOR(MOVE_ENDURE)
+ | TUTOR(MOVE_MUD_SLAP)
+ | TUTOR(MOVE_SWAGGER)
+ | TUTOR(MOVE_SLEEP_TALK)
+ | TUTOR(MOVE_SWIFT)),
+
+ [SPECIES_ENTEI] = TUTOR_LEARNSET(TUTOR(MOVE_BODY_SLAM)
+ | TUTOR(MOVE_DOUBLE_EDGE)
+ | TUTOR(MOVE_MIMIC)
+ | TUTOR(MOVE_SUBSTITUTE)
+ | TUTOR(MOVE_PSYCH_UP)
+ | TUTOR(MOVE_SNORE)
+ | TUTOR(MOVE_ENDURE)
+ | TUTOR(MOVE_MUD_SLAP)
+ | TUTOR(MOVE_SWAGGER)
+ | TUTOR(MOVE_SLEEP_TALK)
+ | TUTOR(MOVE_SWIFT)),
+
+ [SPECIES_SUICUNE] = TUTOR_LEARNSET(TUTOR(MOVE_BODY_SLAM)
+ | TUTOR(MOVE_DOUBLE_EDGE)
+ | TUTOR(MOVE_MIMIC)
+ | TUTOR(MOVE_SUBSTITUTE)
+ | TUTOR(MOVE_PSYCH_UP)
+ | TUTOR(MOVE_SNORE)
+ | TUTOR(MOVE_ICY_WIND)
+ | TUTOR(MOVE_ENDURE)
+ | TUTOR(MOVE_MUD_SLAP)
+ | TUTOR(MOVE_SWAGGER)
+ | TUTOR(MOVE_SLEEP_TALK)
+ | TUTOR(MOVE_SWIFT)),
+
+ [SPECIES_LARVITAR] = TUTOR_LEARNSET(TUTOR(MOVE_BODY_SLAM)
+ | TUTOR(MOVE_DOUBLE_EDGE)
+ | TUTOR(MOVE_MIMIC)
+ | TUTOR(MOVE_ROCK_SLIDE)
+ | TUTOR(MOVE_SUBSTITUTE)
+ | TUTOR(MOVE_SNORE)
+ | TUTOR(MOVE_ENDURE)
+ | TUTOR(MOVE_MUD_SLAP)
+ | TUTOR(MOVE_SWAGGER)
+ | TUTOR(MOVE_SLEEP_TALK)),
+
+ [SPECIES_PUPITAR] = TUTOR_LEARNSET(TUTOR(MOVE_BODY_SLAM)
+ | TUTOR(MOVE_DOUBLE_EDGE)
+ | TUTOR(MOVE_MIMIC)
+ | TUTOR(MOVE_ROCK_SLIDE)
+ | TUTOR(MOVE_SUBSTITUTE)
+ | TUTOR(MOVE_SNORE)
+ | TUTOR(MOVE_ENDURE)
+ | TUTOR(MOVE_MUD_SLAP)
+ | TUTOR(MOVE_SWAGGER)
+ | TUTOR(MOVE_SLEEP_TALK)),
+
+ [SPECIES_TYRANITAR] = TUTOR_LEARNSET(TUTOR(MOVE_MEGA_PUNCH)
+ | TUTOR(MOVE_MEGA_KICK)
+ | TUTOR(MOVE_BODY_SLAM)
+ | TUTOR(MOVE_DOUBLE_EDGE)
+ | TUTOR(MOVE_COUNTER)
+ | TUTOR(MOVE_SEISMIC_TOSS)
+ | TUTOR(MOVE_MIMIC)
+ | TUTOR(MOVE_THUNDER_WAVE)
+ | TUTOR(MOVE_ROCK_SLIDE)
+ | TUTOR(MOVE_SUBSTITUTE)
+ | TUTOR(MOVE_DYNAMIC_PUNCH)
+ | TUTOR(MOVE_SNORE)
+ | TUTOR(MOVE_ENDURE)
+ | TUTOR(MOVE_MUD_SLAP)
+ | TUTOR(MOVE_SWAGGER)
+ | TUTOR(MOVE_SLEEP_TALK)
+ | TUTOR(MOVE_FIRE_PUNCH)
+ | TUTOR(MOVE_FURY_CUTTER)),
+
+ [SPECIES_LUGIA] = TUTOR_LEARNSET(TUTOR(MOVE_BODY_SLAM)
+ | TUTOR(MOVE_DOUBLE_EDGE)
+ | TUTOR(MOVE_MIMIC)
+ | TUTOR(MOVE_DREAM_EATER)
+ | TUTOR(MOVE_THUNDER_WAVE)
+ | TUTOR(MOVE_SUBSTITUTE)
+ | TUTOR(MOVE_PSYCH_UP)
+ | TUTOR(MOVE_SNORE)
+ | TUTOR(MOVE_ICY_WIND)
+ | TUTOR(MOVE_ENDURE)
+ | TUTOR(MOVE_MUD_SLAP)
+ | TUTOR(MOVE_SWAGGER)
+ | TUTOR(MOVE_SLEEP_TALK)
+ | TUTOR(MOVE_SWIFT)),
+
+ [SPECIES_HO_OH] = TUTOR_LEARNSET(TUTOR(MOVE_DOUBLE_EDGE)
+ | TUTOR(MOVE_MIMIC)
+ | TUTOR(MOVE_DREAM_EATER)
+ | TUTOR(MOVE_THUNDER_WAVE)
+ | TUTOR(MOVE_SUBSTITUTE)
+ | TUTOR(MOVE_PSYCH_UP)
+ | TUTOR(MOVE_SNORE)
+ | TUTOR(MOVE_ENDURE)
+ | TUTOR(MOVE_MUD_SLAP)
+ | TUTOR(MOVE_SWAGGER)
+ | TUTOR(MOVE_SLEEP_TALK)
+ | TUTOR(MOVE_SWIFT)),
+
+ [SPECIES_CELEBI] = TUTOR_LEARNSET(TUTOR(MOVE_SWORDS_DANCE)
+ | TUTOR(MOVE_DOUBLE_EDGE)
+ | TUTOR(MOVE_MIMIC)
+ | TUTOR(MOVE_METRONOME)
+ | TUTOR(MOVE_DREAM_EATER)
+ | TUTOR(MOVE_SUBSTITUTE)
+ | TUTOR(MOVE_PSYCH_UP)
+ | TUTOR(MOVE_SNORE)
+ | TUTOR(MOVE_ENDURE)
+ | TUTOR(MOVE_MUD_SLAP)
+ | TUTOR(MOVE_SWAGGER)
+ | TUTOR(MOVE_SLEEP_TALK)
+ | TUTOR(MOVE_SWIFT)
+ | TUTOR(MOVE_DEFENSE_CURL)),
+
+ [SPECIES_TREECKO] = TUTOR_LEARNSET(TUTOR(MOVE_MEGA_PUNCH)
+ | TUTOR(MOVE_SWORDS_DANCE)
+ | TUTOR(MOVE_MEGA_KICK)
+ | TUTOR(MOVE_BODY_SLAM)
+ | TUTOR(MOVE_DOUBLE_EDGE)
+ | TUTOR(MOVE_COUNTER)
+ | TUTOR(MOVE_SEISMIC_TOSS)
+ | TUTOR(MOVE_MIMIC)
+ | TUTOR(MOVE_SUBSTITUTE)
+ | TUTOR(MOVE_DYNAMIC_PUNCH)
+ | TUTOR(MOVE_SNORE)
+ | TUTOR(MOVE_ENDURE)
+ | TUTOR(MOVE_MUD_SLAP)
+ | TUTOR(MOVE_SWAGGER)
+ | TUTOR(MOVE_SLEEP_TALK)
+ | TUTOR(MOVE_SWIFT)
+ | TUTOR(MOVE_THUNDER_PUNCH)
+ | TUTOR(MOVE_FURY_CUTTER)),
+
+ [SPECIES_GROVYLE] = TUTOR_LEARNSET(TUTOR(MOVE_MEGA_PUNCH)
+ | TUTOR(MOVE_SWORDS_DANCE)
+ | TUTOR(MOVE_MEGA_KICK)
+ | TUTOR(MOVE_BODY_SLAM)
+ | TUTOR(MOVE_DOUBLE_EDGE)
+ | TUTOR(MOVE_COUNTER)
+ | TUTOR(MOVE_SEISMIC_TOSS)
+ | TUTOR(MOVE_MIMIC)
+ | TUTOR(MOVE_SUBSTITUTE)
+ | TUTOR(MOVE_DYNAMIC_PUNCH)
+ | TUTOR(MOVE_SNORE)
+ | TUTOR(MOVE_ENDURE)
+ | TUTOR(MOVE_MUD_SLAP)
+ | TUTOR(MOVE_SWAGGER)
+ | TUTOR(MOVE_SLEEP_TALK)
+ | TUTOR(MOVE_SWIFT)
+ | TUTOR(MOVE_THUNDER_PUNCH)
+ | TUTOR(MOVE_FURY_CUTTER)),
+
+ [SPECIES_SCEPTILE] = TUTOR_LEARNSET(TUTOR(MOVE_MEGA_PUNCH)
+ | TUTOR(MOVE_SWORDS_DANCE)
+ | TUTOR(MOVE_MEGA_KICK)
+ | TUTOR(MOVE_BODY_SLAM)
+ | TUTOR(MOVE_DOUBLE_EDGE)
+ | TUTOR(MOVE_COUNTER)
+ | TUTOR(MOVE_SEISMIC_TOSS)
+ | TUTOR(MOVE_MIMIC)
+ | TUTOR(MOVE_SUBSTITUTE)
+ | TUTOR(MOVE_DYNAMIC_PUNCH)
+ | TUTOR(MOVE_SNORE)
+ | TUTOR(MOVE_ENDURE)
+ | TUTOR(MOVE_MUD_SLAP)
+ | TUTOR(MOVE_SWAGGER)
+ | TUTOR(MOVE_SLEEP_TALK)
+ | TUTOR(MOVE_SWIFT)
+ | TUTOR(MOVE_THUNDER_PUNCH)
+ | TUTOR(MOVE_FURY_CUTTER)),
+
+ [SPECIES_TORCHIC] = TUTOR_LEARNSET(TUTOR(MOVE_MEGA_PUNCH)
+ | TUTOR(MOVE_SWORDS_DANCE)
+ | TUTOR(MOVE_MEGA_KICK)
+ | TUTOR(MOVE_BODY_SLAM)
+ | TUTOR(MOVE_DOUBLE_EDGE)
+ | TUTOR(MOVE_COUNTER)
+ | TUTOR(MOVE_SEISMIC_TOSS)
+ | TUTOR(MOVE_MIMIC)
+ | TUTOR(MOVE_ROCK_SLIDE)
+ | TUTOR(MOVE_SUBSTITUTE)
+ | TUTOR(MOVE_SNORE)
+ | TUTOR(MOVE_ENDURE)
+ | TUTOR(MOVE_MUD_SLAP)
+ | TUTOR(MOVE_SWAGGER)
+ | TUTOR(MOVE_SLEEP_TALK)
+ | TUTOR(MOVE_SWIFT)),
+
+ [SPECIES_COMBUSKEN] = TUTOR_LEARNSET(TUTOR(MOVE_MEGA_PUNCH)
+ | TUTOR(MOVE_SWORDS_DANCE)
+ | TUTOR(MOVE_MEGA_KICK)
+ | TUTOR(MOVE_BODY_SLAM)
+ | TUTOR(MOVE_DOUBLE_EDGE)
+ | TUTOR(MOVE_COUNTER)
+ | TUTOR(MOVE_SEISMIC_TOSS)
+ | TUTOR(MOVE_MIMIC)
+ | TUTOR(MOVE_ROCK_SLIDE)
+ | TUTOR(MOVE_SUBSTITUTE)
+ | TUTOR(MOVE_DYNAMIC_PUNCH)
+ | TUTOR(MOVE_SNORE)
+ | TUTOR(MOVE_ENDURE)
+ | TUTOR(MOVE_MUD_SLAP)
+ | TUTOR(MOVE_SWAGGER)
+ | TUTOR(MOVE_SLEEP_TALK)
+ | TUTOR(MOVE_SWIFT)
+ | TUTOR(MOVE_THUNDER_PUNCH)
+ | TUTOR(MOVE_FIRE_PUNCH)
+ | TUTOR(MOVE_FURY_CUTTER)),
+
+ [SPECIES_BLAZIKEN] = TUTOR_LEARNSET(TUTOR(MOVE_MEGA_PUNCH)
+ | TUTOR(MOVE_SWORDS_DANCE)
+ | TUTOR(MOVE_MEGA_KICK)
+ | TUTOR(MOVE_BODY_SLAM)
+ | TUTOR(MOVE_DOUBLE_EDGE)
+ | TUTOR(MOVE_COUNTER)
+ | TUTOR(MOVE_SEISMIC_TOSS)
+ | TUTOR(MOVE_MIMIC)
+ | TUTOR(MOVE_ROCK_SLIDE)
+ | TUTOR(MOVE_SUBSTITUTE)
+ | TUTOR(MOVE_DYNAMIC_PUNCH)
+ | TUTOR(MOVE_SNORE)
+ | TUTOR(MOVE_ENDURE)
+ | TUTOR(MOVE_MUD_SLAP)
+ | TUTOR(MOVE_SWAGGER)
+ | TUTOR(MOVE_SLEEP_TALK)
+ | TUTOR(MOVE_SWIFT)
+ | TUTOR(MOVE_THUNDER_PUNCH)
+ | TUTOR(MOVE_FIRE_PUNCH)
+ | TUTOR(MOVE_FURY_CUTTER)),
+
+ [SPECIES_MUDKIP] = TUTOR_LEARNSET(TUTOR(MOVE_BODY_SLAM)
+ | TUTOR(MOVE_DOUBLE_EDGE)
+ | TUTOR(MOVE_MIMIC)
+ | TUTOR(MOVE_SUBSTITUTE)
+ | TUTOR(MOVE_ROLLOUT)
+ | TUTOR(MOVE_SNORE)
+ | TUTOR(MOVE_ICY_WIND)
+ | TUTOR(MOVE_ENDURE)
+ | TUTOR(MOVE_MUD_SLAP)
+ | TUTOR(MOVE_SWAGGER)
+ | TUTOR(MOVE_SLEEP_TALK)
+ | TUTOR(MOVE_DEFENSE_CURL)),
+
+ [SPECIES_MARSHTOMP] = TUTOR_LEARNSET(TUTOR(MOVE_MEGA_PUNCH)
+ | TUTOR(MOVE_MEGA_KICK)
+ | TUTOR(MOVE_BODY_SLAM)
+ | TUTOR(MOVE_DOUBLE_EDGE)
+ | TUTOR(MOVE_COUNTER)
+ | TUTOR(MOVE_SEISMIC_TOSS)
+ | TUTOR(MOVE_MIMIC)
+ | TUTOR(MOVE_ROCK_SLIDE)
+ | TUTOR(MOVE_SUBSTITUTE)
+ | TUTOR(MOVE_DYNAMIC_PUNCH)
+ | TUTOR(MOVE_ROLLOUT)
+ | TUTOR(MOVE_SNORE)
+ | TUTOR(MOVE_ICY_WIND)
+ | TUTOR(MOVE_ENDURE)
+ | TUTOR(MOVE_MUD_SLAP)
+ | TUTOR(MOVE_ICE_PUNCH)
+ | TUTOR(MOVE_SWAGGER)
+ | TUTOR(MOVE_SLEEP_TALK)
+ | TUTOR(MOVE_DEFENSE_CURL)),
+
+ [SPECIES_SWAMPERT] = TUTOR_LEARNSET(TUTOR(MOVE_MEGA_PUNCH)
+ | TUTOR(MOVE_MEGA_KICK)
+ | TUTOR(MOVE_BODY_SLAM)
+ | TUTOR(MOVE_DOUBLE_EDGE)
+ | TUTOR(MOVE_COUNTER)
+ | TUTOR(MOVE_SEISMIC_TOSS)
+ | TUTOR(MOVE_MIMIC)
+ | TUTOR(MOVE_ROCK_SLIDE)
+ | TUTOR(MOVE_SUBSTITUTE)
+ | TUTOR(MOVE_DYNAMIC_PUNCH)
+ | TUTOR(MOVE_ROLLOUT)
+ | TUTOR(MOVE_SNORE)
+ | TUTOR(MOVE_ICY_WIND)
+ | TUTOR(MOVE_ENDURE)
+ | TUTOR(MOVE_MUD_SLAP)
+ | TUTOR(MOVE_ICE_PUNCH)
+ | TUTOR(MOVE_SWAGGER)
+ | TUTOR(MOVE_SLEEP_TALK)
+ | TUTOR(MOVE_DEFENSE_CURL)),
+
+ [SPECIES_POOCHYENA] = TUTOR_LEARNSET(TUTOR(MOVE_BODY_SLAM)
+ | TUTOR(MOVE_DOUBLE_EDGE)
+ | TUTOR(MOVE_COUNTER)
+ | TUTOR(MOVE_MIMIC)
+ | TUTOR(MOVE_SUBSTITUTE)
+ | TUTOR(MOVE_PSYCH_UP)
+ | TUTOR(MOVE_SNORE)
+ | TUTOR(MOVE_ENDURE)
+ | TUTOR(MOVE_MUD_SLAP)
+ | TUTOR(MOVE_SWAGGER)
+ | TUTOR(MOVE_SLEEP_TALK)),
+
+ [SPECIES_MIGHTYENA] = TUTOR_LEARNSET(TUTOR(MOVE_BODY_SLAM)
+ | TUTOR(MOVE_DOUBLE_EDGE)
+ | TUTOR(MOVE_COUNTER)
+ | TUTOR(MOVE_MIMIC)
+ | TUTOR(MOVE_SUBSTITUTE)
+ | TUTOR(MOVE_PSYCH_UP)
+ | TUTOR(MOVE_SNORE)
+ | TUTOR(MOVE_ENDURE)
+ | TUTOR(MOVE_MUD_SLAP)
+ | TUTOR(MOVE_SWAGGER)
+ | TUTOR(MOVE_SLEEP_TALK)),
+
+ [SPECIES_ZIGZAGOON] = TUTOR_LEARNSET(TUTOR(MOVE_BODY_SLAM)
+ | TUTOR(MOVE_DOUBLE_EDGE)
+ | TUTOR(MOVE_MIMIC)
+ | TUTOR(MOVE_THUNDER_WAVE)
+ | TUTOR(MOVE_SUBSTITUTE)
+ | TUTOR(MOVE_ROLLOUT)
+ | TUTOR(MOVE_SNORE)
+ | TUTOR(MOVE_ICY_WIND)
+ | TUTOR(MOVE_ENDURE)
+ | TUTOR(MOVE_MUD_SLAP)
+ | TUTOR(MOVE_SWAGGER)
+ | TUTOR(MOVE_SLEEP_TALK)
+ | TUTOR(MOVE_SWIFT)
+ | TUTOR(MOVE_DEFENSE_CURL)
+ | TUTOR(MOVE_FURY_CUTTER)),
+
+ [SPECIES_LINOONE] = TUTOR_LEARNSET(TUTOR(MOVE_BODY_SLAM)
+ | TUTOR(MOVE_DOUBLE_EDGE)
+ | TUTOR(MOVE_MIMIC)
+ | TUTOR(MOVE_THUNDER_WAVE)
+ | TUTOR(MOVE_SUBSTITUTE)
+ | TUTOR(MOVE_ROLLOUT)
+ | TUTOR(MOVE_SNORE)
+ | TUTOR(MOVE_ICY_WIND)
+ | TUTOR(MOVE_ENDURE)
+ | TUTOR(MOVE_MUD_SLAP)
+ | TUTOR(MOVE_SWAGGER)
+ | TUTOR(MOVE_SLEEP_TALK)
+ | TUTOR(MOVE_SWIFT)
+ | TUTOR(MOVE_DEFENSE_CURL)
+ | TUTOR(MOVE_FURY_CUTTER)),
+
+ [SPECIES_WURMPLE] = TUTOR_LEARNSET(0),
+
+ [SPECIES_SILCOON] = TUTOR_LEARNSET(0),
+
+ [SPECIES_BEAUTIFLY] = TUTOR_LEARNSET(TUTOR(MOVE_DOUBLE_EDGE)
+ | TUTOR(MOVE_MIMIC)
+ | TUTOR(MOVE_SUBSTITUTE)
+ | TUTOR(MOVE_SNORE)
+ | TUTOR(MOVE_ENDURE)
+ | TUTOR(MOVE_SWAGGER)
+ | TUTOR(MOVE_SLEEP_TALK)
+ | TUTOR(MOVE_SWIFT)),
+
+ [SPECIES_CASCOON] = TUTOR_LEARNSET(0),
+
+ [SPECIES_DUSTOX] = TUTOR_LEARNSET(TUTOR(MOVE_DOUBLE_EDGE)
+ | TUTOR(MOVE_MIMIC)
+ | TUTOR(MOVE_SUBSTITUTE)
+ | TUTOR(MOVE_SNORE)
+ | TUTOR(MOVE_ENDURE)
+ | TUTOR(MOVE_SWAGGER)
+ | TUTOR(MOVE_SLEEP_TALK)
+ | TUTOR(MOVE_SWIFT)),
+
+ [SPECIES_LOTAD] = TUTOR_LEARNSET(TUTOR(MOVE_SWORDS_DANCE)
+ | TUTOR(MOVE_BODY_SLAM)
+ | TUTOR(MOVE_DOUBLE_EDGE)
+ | TUTOR(MOVE_MIMIC)
+ | TUTOR(MOVE_SUBSTITUTE)
+ | TUTOR(MOVE_SNORE)
+ | TUTOR(MOVE_ICY_WIND)
+ | TUTOR(MOVE_ENDURE)
+ | TUTOR(MOVE_SWAGGER)
+ | TUTOR(MOVE_SLEEP_TALK)),
+
+ [SPECIES_LOMBRE] = TUTOR_LEARNSET(TUTOR(MOVE_SWORDS_DANCE)
+ | TUTOR(MOVE_BODY_SLAM)
+ | TUTOR(MOVE_DOUBLE_EDGE)
+ | TUTOR(MOVE_MIMIC)
+ | TUTOR(MOVE_SUBSTITUTE)
+ | TUTOR(MOVE_DYNAMIC_PUNCH)
+ | TUTOR(MOVE_SNORE)
+ | TUTOR(MOVE_ICY_WIND)
+ | TUTOR(MOVE_ENDURE)
+ | TUTOR(MOVE_MUD_SLAP)
+ | TUTOR(MOVE_ICE_PUNCH)
+ | TUTOR(MOVE_SWAGGER)
+ | TUTOR(MOVE_SLEEP_TALK)
+ | TUTOR(MOVE_THUNDER_PUNCH)
+ | TUTOR(MOVE_FIRE_PUNCH)),
+
+ [SPECIES_LUDICOLO] = TUTOR_LEARNSET(TUTOR(MOVE_MEGA_PUNCH)
+ | TUTOR(MOVE_SWORDS_DANCE)
+ | TUTOR(MOVE_MEGA_KICK)
+ | TUTOR(MOVE_BODY_SLAM)
+ | TUTOR(MOVE_DOUBLE_EDGE)
+ | TUTOR(MOVE_COUNTER)
+ | TUTOR(MOVE_SEISMIC_TOSS)
+ | TUTOR(MOVE_MIMIC)
+ | TUTOR(MOVE_METRONOME)
+ | TUTOR(MOVE_SUBSTITUTE)
+ | TUTOR(MOVE_DYNAMIC_PUNCH)
+ | TUTOR(MOVE_SNORE)
+ | TUTOR(MOVE_ICY_WIND)
+ | TUTOR(MOVE_ENDURE)
+ | TUTOR(MOVE_MUD_SLAP)
+ | TUTOR(MOVE_ICE_PUNCH)
+ | TUTOR(MOVE_SWAGGER)
+ | TUTOR(MOVE_SLEEP_TALK)
+ | TUTOR(MOVE_THUNDER_PUNCH)
+ | TUTOR(MOVE_FIRE_PUNCH)),
+
+ [SPECIES_SEEDOT] = TUTOR_LEARNSET(TUTOR(MOVE_SWORDS_DANCE)
+ | TUTOR(MOVE_BODY_SLAM)
+ | TUTOR(MOVE_DOUBLE_EDGE)
+ | TUTOR(MOVE_MIMIC)
+ | TUTOR(MOVE_EXPLOSION)
+ | TUTOR(MOVE_SUBSTITUTE)
+ | TUTOR(MOVE_ROLLOUT)
+ | TUTOR(MOVE_SNORE)
+ | TUTOR(MOVE_ENDURE)
+ | TUTOR(MOVE_SWAGGER)
+ | TUTOR(MOVE_SLEEP_TALK)
+ | TUTOR(MOVE_DEFENSE_CURL)),
+
+ [SPECIES_NUZLEAF] = TUTOR_LEARNSET(TUTOR(MOVE_SWORDS_DANCE)
+ | TUTOR(MOVE_MEGA_KICK)
+ | TUTOR(MOVE_BODY_SLAM)
+ | TUTOR(MOVE_DOUBLE_EDGE)
+ | TUTOR(MOVE_MIMIC)
+ | TUTOR(MOVE_EXPLOSION)
+ | TUTOR(MOVE_SUBSTITUTE)
+ | TUTOR(MOVE_ROLLOUT)
+ | TUTOR(MOVE_PSYCH_UP)
+ | TUTOR(MOVE_SNORE)
+ | TUTOR(MOVE_ENDURE)
+ | TUTOR(MOVE_MUD_SLAP)
+ | TUTOR(MOVE_SWAGGER)
+ | TUTOR(MOVE_SLEEP_TALK)
+ | TUTOR(MOVE_SWIFT)
+ | TUTOR(MOVE_DEFENSE_CURL)
+ | TUTOR(MOVE_FURY_CUTTER)),
+
+ [SPECIES_SHIFTRY] = TUTOR_LEARNSET(TUTOR(MOVE_SWORDS_DANCE)
+ | TUTOR(MOVE_MEGA_KICK)
+ | TUTOR(MOVE_BODY_SLAM)
+ | TUTOR(MOVE_DOUBLE_EDGE)
+ | TUTOR(MOVE_MIMIC)
+ | TUTOR(MOVE_EXPLOSION)
+ | TUTOR(MOVE_SUBSTITUTE)
+ | TUTOR(MOVE_ROLLOUT)
+ | TUTOR(MOVE_PSYCH_UP)
+ | TUTOR(MOVE_SNORE)
+ | TUTOR(MOVE_ENDURE)
+ | TUTOR(MOVE_MUD_SLAP)
+ | TUTOR(MOVE_SWAGGER)
+ | TUTOR(MOVE_SLEEP_TALK)
+ | TUTOR(MOVE_SWIFT)
+ | TUTOR(MOVE_DEFENSE_CURL)
+ | TUTOR(MOVE_FURY_CUTTER)),
+
+ [SPECIES_NINCADA] = TUTOR_LEARNSET(TUTOR(MOVE_DOUBLE_EDGE)
+ | TUTOR(MOVE_MIMIC)
+ | TUTOR(MOVE_SUBSTITUTE)
+ | TUTOR(MOVE_SNORE)
+ | TUTOR(MOVE_ENDURE)
+ | TUTOR(MOVE_MUD_SLAP)
+ | TUTOR(MOVE_SWAGGER)
+ | TUTOR(MOVE_SLEEP_TALK)
+ | TUTOR(MOVE_FURY_CUTTER)),
+
+ [SPECIES_NINJASK] = TUTOR_LEARNSET(TUTOR(MOVE_SWORDS_DANCE)
+ | TUTOR(MOVE_DOUBLE_EDGE)
+ | TUTOR(MOVE_MIMIC)
+ | TUTOR(MOVE_SUBSTITUTE)
+ | TUTOR(MOVE_SNORE)
+ | TUTOR(MOVE_ENDURE)
+ | TUTOR(MOVE_MUD_SLAP)
+ | TUTOR(MOVE_SWAGGER)
+ | TUTOR(MOVE_SLEEP_TALK)
+ | TUTOR(MOVE_SWIFT)
+ | TUTOR(MOVE_FURY_CUTTER)),
+
+ [SPECIES_SHEDINJA] = TUTOR_LEARNSET(TUTOR(MOVE_DOUBLE_EDGE)
+ | TUTOR(MOVE_MIMIC)
+ | TUTOR(MOVE_DREAM_EATER)
+ | TUTOR(MOVE_SUBSTITUTE)
+ | TUTOR(MOVE_SNORE)
+ | TUTOR(MOVE_ENDURE)
+ | TUTOR(MOVE_MUD_SLAP)
+ | TUTOR(MOVE_SWAGGER)
+ | TUTOR(MOVE_SLEEP_TALK)
+ | TUTOR(MOVE_FURY_CUTTER)),
+
+ [SPECIES_TAILLOW] = TUTOR_LEARNSET(TUTOR(MOVE_DOUBLE_EDGE)
+ | TUTOR(MOVE_COUNTER)
+ | TUTOR(MOVE_MIMIC)
+ | TUTOR(MOVE_SUBSTITUTE)
+ | TUTOR(MOVE_SNORE)
+ | TUTOR(MOVE_ENDURE)
+ | TUTOR(MOVE_MUD_SLAP)
+ | TUTOR(MOVE_SWAGGER)
+ | TUTOR(MOVE_SLEEP_TALK)
+ | TUTOR(MOVE_SWIFT)),
+
+ [SPECIES_SWELLOW] = TUTOR_LEARNSET(TUTOR(MOVE_DOUBLE_EDGE)
+ | TUTOR(MOVE_COUNTER)
+ | TUTOR(MOVE_MIMIC)
+ | TUTOR(MOVE_SUBSTITUTE)
+ | TUTOR(MOVE_SNORE)
+ | TUTOR(MOVE_ENDURE)
+ | TUTOR(MOVE_MUD_SLAP)
+ | TUTOR(MOVE_SWAGGER)
+ | TUTOR(MOVE_SLEEP_TALK)
+ | TUTOR(MOVE_SWIFT)),
+
+ [SPECIES_SHROOMISH] = TUTOR_LEARNSET(TUTOR(MOVE_SWORDS_DANCE)
+ | TUTOR(MOVE_BODY_SLAM)
+ | TUTOR(MOVE_DOUBLE_EDGE)
+ | TUTOR(MOVE_MIMIC)
+ | TUTOR(MOVE_SUBSTITUTE)
+ | TUTOR(MOVE_SNORE)
+ | TUTOR(MOVE_ENDURE)
+ | TUTOR(MOVE_SWAGGER)
+ | TUTOR(MOVE_SLEEP_TALK)),
+
+ [SPECIES_BRELOOM] = TUTOR_LEARNSET(TUTOR(MOVE_MEGA_PUNCH)
+ | TUTOR(MOVE_SWORDS_DANCE)
+ | TUTOR(MOVE_MEGA_KICK)
+ | TUTOR(MOVE_BODY_SLAM)
+ | TUTOR(MOVE_DOUBLE_EDGE)
+ | TUTOR(MOVE_COUNTER)
+ | TUTOR(MOVE_SEISMIC_TOSS)
+ | TUTOR(MOVE_MIMIC)
+ | TUTOR(MOVE_SUBSTITUTE)
+ | TUTOR(MOVE_DYNAMIC_PUNCH)
+ | TUTOR(MOVE_SNORE)
+ | TUTOR(MOVE_ENDURE)
+ | TUTOR(MOVE_MUD_SLAP)
+ | TUTOR(MOVE_SWAGGER)
+ | TUTOR(MOVE_SLEEP_TALK)
+ | TUTOR(MOVE_THUNDER_PUNCH)
+ | TUTOR(MOVE_FURY_CUTTER)),
+
+ [SPECIES_SPINDA] = TUTOR_LEARNSET(TUTOR(MOVE_MEGA_PUNCH)
+ | TUTOR(MOVE_MEGA_KICK)
+ | TUTOR(MOVE_BODY_SLAM)
+ | TUTOR(MOVE_DOUBLE_EDGE)
+ | TUTOR(MOVE_COUNTER)
+ | TUTOR(MOVE_SEISMIC_TOSS)
+ | TUTOR(MOVE_MIMIC)
+ | TUTOR(MOVE_METRONOME)
+ | TUTOR(MOVE_DREAM_EATER)
+ | TUTOR(MOVE_ROCK_SLIDE)
+ | TUTOR(MOVE_SUBSTITUTE)
+ | TUTOR(MOVE_DYNAMIC_PUNCH)
+ | TUTOR(MOVE_ROLLOUT)
+ | TUTOR(MOVE_PSYCH_UP)
+ | TUTOR(MOVE_SNORE)
+ | TUTOR(MOVE_ICY_WIND)
+ | TUTOR(MOVE_ENDURE)
+ | TUTOR(MOVE_MUD_SLAP)
+ | TUTOR(MOVE_ICE_PUNCH)
+ | TUTOR(MOVE_SWAGGER)
+ | TUTOR(MOVE_SLEEP_TALK)
+ | TUTOR(MOVE_SWIFT)
+ | TUTOR(MOVE_DEFENSE_CURL)
+ | TUTOR(MOVE_THUNDER_PUNCH)
+ | TUTOR(MOVE_FIRE_PUNCH)),
+
+ [SPECIES_WINGULL] = TUTOR_LEARNSET(TUTOR(MOVE_DOUBLE_EDGE)
+ | TUTOR(MOVE_MIMIC)
+ | TUTOR(MOVE_SUBSTITUTE)
+ | TUTOR(MOVE_SNORE)
+ | TUTOR(MOVE_ICY_WIND)
+ | TUTOR(MOVE_ENDURE)
+ | TUTOR(MOVE_MUD_SLAP)
+ | TUTOR(MOVE_SWAGGER)
+ | TUTOR(MOVE_SLEEP_TALK)
+ | TUTOR(MOVE_SWIFT)),
+
+ [SPECIES_PELIPPER] = TUTOR_LEARNSET(TUTOR(MOVE_DOUBLE_EDGE)
+ | TUTOR(MOVE_MIMIC)
+ | TUTOR(MOVE_SUBSTITUTE)
+ | TUTOR(MOVE_SNORE)
+ | TUTOR(MOVE_ICY_WIND)
+ | TUTOR(MOVE_ENDURE)
+ | TUTOR(MOVE_MUD_SLAP)
+ | TUTOR(MOVE_SWAGGER)
+ | TUTOR(MOVE_SLEEP_TALK)
+ | TUTOR(MOVE_SWIFT)),
+
+ [SPECIES_SURSKIT] = TUTOR_LEARNSET(TUTOR(MOVE_DOUBLE_EDGE)
+ | TUTOR(MOVE_MIMIC)
+ | TUTOR(MOVE_SUBSTITUTE)
+ | TUTOR(MOVE_PSYCH_UP)
+ | TUTOR(MOVE_SNORE)
+ | TUTOR(MOVE_ICY_WIND)
+ | TUTOR(MOVE_ENDURE)
+ | TUTOR(MOVE_SWAGGER)
+ | TUTOR(MOVE_SLEEP_TALK)
+ | TUTOR(MOVE_SWIFT)),
+
+ [SPECIES_MASQUERAIN] = TUTOR_LEARNSET(TUTOR(MOVE_DOUBLE_EDGE)
+ | TUTOR(MOVE_MIMIC)
+ | TUTOR(MOVE_SUBSTITUTE)
+ | TUTOR(MOVE_PSYCH_UP)
+ | TUTOR(MOVE_SNORE)
+ | TUTOR(MOVE_ICY_WIND)
+ | TUTOR(MOVE_ENDURE)
+ | TUTOR(MOVE_SWAGGER)
+ | TUTOR(MOVE_SLEEP_TALK)
+ | TUTOR(MOVE_SWIFT)),
+
+ [SPECIES_WAILMER] = TUTOR_LEARNSET(TUTOR(MOVE_BODY_SLAM)
+ | TUTOR(MOVE_DOUBLE_EDGE)
+ | TUTOR(MOVE_MIMIC)
+ | TUTOR(MOVE_SUBSTITUTE)
+ | TUTOR(MOVE_ROLLOUT)
+ | TUTOR(MOVE_SNORE)
+ | TUTOR(MOVE_ICY_WIND)
+ | TUTOR(MOVE_ENDURE)
+ | TUTOR(MOVE_SWAGGER)
+ | TUTOR(MOVE_SLEEP_TALK)
+ | TUTOR(MOVE_DEFENSE_CURL)),
+
+ [SPECIES_WAILORD] = TUTOR_LEARNSET(TUTOR(MOVE_BODY_SLAM)
+ | TUTOR(MOVE_DOUBLE_EDGE)
+ | TUTOR(MOVE_MIMIC)
+ | TUTOR(MOVE_SUBSTITUTE)
+ | TUTOR(MOVE_ROLLOUT)
+ | TUTOR(MOVE_SNORE)
+ | TUTOR(MOVE_ICY_WIND)
+ | TUTOR(MOVE_ENDURE)
+ | TUTOR(MOVE_SWAGGER)
+ | TUTOR(MOVE_SLEEP_TALK)
+ | TUTOR(MOVE_DEFENSE_CURL)),
+
+ [SPECIES_SKITTY] = TUTOR_LEARNSET(TUTOR(MOVE_BODY_SLAM)
+ | TUTOR(MOVE_DOUBLE_EDGE)
+ | TUTOR(MOVE_MIMIC)
+ | TUTOR(MOVE_DREAM_EATER)
+ | TUTOR(MOVE_THUNDER_WAVE)
+ | TUTOR(MOVE_SUBSTITUTE)
+ | TUTOR(MOVE_ROLLOUT)
+ | TUTOR(MOVE_PSYCH_UP)
+ | TUTOR(MOVE_SNORE)
+ | TUTOR(MOVE_ICY_WIND)
+ | TUTOR(MOVE_ENDURE)
+ | TUTOR(MOVE_MUD_SLAP)
+ | TUTOR(MOVE_SWAGGER)
+ | TUTOR(MOVE_SLEEP_TALK)
+ | TUTOR(MOVE_SWIFT)
+ | TUTOR(MOVE_DEFENSE_CURL)),
+
+ [SPECIES_DELCATTY] = TUTOR_LEARNSET(TUTOR(MOVE_BODY_SLAM)
+ | TUTOR(MOVE_DOUBLE_EDGE)
+ | TUTOR(MOVE_MIMIC)
+ | TUTOR(MOVE_DREAM_EATER)
+ | TUTOR(MOVE_THUNDER_WAVE)
+ | TUTOR(MOVE_SUBSTITUTE)
+ | TUTOR(MOVE_ROLLOUT)
+ | TUTOR(MOVE_PSYCH_UP)
+ | TUTOR(MOVE_SNORE)
+ | TUTOR(MOVE_ICY_WIND)
+ | TUTOR(MOVE_ENDURE)
+ | TUTOR(MOVE_MUD_SLAP)
+ | TUTOR(MOVE_SWAGGER)
+ | TUTOR(MOVE_SLEEP_TALK)
+ | TUTOR(MOVE_SWIFT)
+ | TUTOR(MOVE_DEFENSE_CURL)),
+
+ [SPECIES_KECLEON] = TUTOR_LEARNSET(TUTOR(MOVE_MEGA_PUNCH)
+ | TUTOR(MOVE_MEGA_KICK)
+ | TUTOR(MOVE_BODY_SLAM)
+ | TUTOR(MOVE_DOUBLE_EDGE)
+ | TUTOR(MOVE_COUNTER)
+ | TUTOR(MOVE_SEISMIC_TOSS)
+ | TUTOR(MOVE_MIMIC)
+ | TUTOR(MOVE_METRONOME)
+ | TUTOR(MOVE_THUNDER_WAVE)
+ | TUTOR(MOVE_ROCK_SLIDE)
+ | TUTOR(MOVE_SUBSTITUTE)
+ | TUTOR(MOVE_DYNAMIC_PUNCH)
+ | TUTOR(MOVE_ROLLOUT)
+ | TUTOR(MOVE_PSYCH_UP)
+ | TUTOR(MOVE_SNORE)
+ | TUTOR(MOVE_ICY_WIND)
+ | TUTOR(MOVE_ENDURE)
+ | TUTOR(MOVE_MUD_SLAP)
+ | TUTOR(MOVE_ICE_PUNCH)
+ | TUTOR(MOVE_SWAGGER)
+ | TUTOR(MOVE_SLEEP_TALK)
+ | TUTOR(MOVE_SWIFT)
+ | TUTOR(MOVE_DEFENSE_CURL)
+ | TUTOR(MOVE_THUNDER_PUNCH)
+ | TUTOR(MOVE_FIRE_PUNCH)
+ | TUTOR(MOVE_FURY_CUTTER)),
+
+ [SPECIES_BALTOY] = TUTOR_LEARNSET(TUTOR(MOVE_DOUBLE_EDGE)
+ | TUTOR(MOVE_MIMIC)
+ | TUTOR(MOVE_DREAM_EATER)
+ | TUTOR(MOVE_EXPLOSION)
+ | TUTOR(MOVE_ROCK_SLIDE)
+ | TUTOR(MOVE_SUBSTITUTE)
+ | TUTOR(MOVE_PSYCH_UP)
+ | TUTOR(MOVE_SNORE)
+ | TUTOR(MOVE_ENDURE)
+ | TUTOR(MOVE_MUD_SLAP)
+ | TUTOR(MOVE_SWAGGER)
+ | TUTOR(MOVE_SLEEP_TALK)),
+
+ [SPECIES_CLAYDOL] = TUTOR_LEARNSET(TUTOR(MOVE_DOUBLE_EDGE)
+ | TUTOR(MOVE_MIMIC)
+ | TUTOR(MOVE_DREAM_EATER)
+ | TUTOR(MOVE_EXPLOSION)
+ | TUTOR(MOVE_ROCK_SLIDE)
+ | TUTOR(MOVE_SUBSTITUTE)
+ | TUTOR(MOVE_PSYCH_UP)
+ | TUTOR(MOVE_SNORE)
+ | TUTOR(MOVE_ENDURE)
+ | TUTOR(MOVE_MUD_SLAP)
+ | TUTOR(MOVE_SWAGGER)
+ | TUTOR(MOVE_SLEEP_TALK)),
+
+ [SPECIES_NOSEPASS] = TUTOR_LEARNSET(TUTOR(MOVE_BODY_SLAM)
+ | TUTOR(MOVE_DOUBLE_EDGE)
+ | TUTOR(MOVE_MIMIC)
+ | TUTOR(MOVE_THUNDER_WAVE)
+ | TUTOR(MOVE_EXPLOSION)
+ | TUTOR(MOVE_ROCK_SLIDE)
+ | TUTOR(MOVE_SUBSTITUTE)
+ | TUTOR(MOVE_DYNAMIC_PUNCH)
+ | TUTOR(MOVE_ROLLOUT)
+ | TUTOR(MOVE_SNORE)
+ | TUTOR(MOVE_ENDURE)
+ | TUTOR(MOVE_MUD_SLAP)
+ | TUTOR(MOVE_ICE_PUNCH)
+ | TUTOR(MOVE_SWAGGER)
+ | TUTOR(MOVE_SLEEP_TALK)
+ | TUTOR(MOVE_DEFENSE_CURL)
+ | TUTOR(MOVE_THUNDER_PUNCH)
+ | TUTOR(MOVE_FIRE_PUNCH)),
+
+ [SPECIES_TORKOAL] = TUTOR_LEARNSET(TUTOR(MOVE_BODY_SLAM)
+ | TUTOR(MOVE_DOUBLE_EDGE)
+ | TUTOR(MOVE_MIMIC)
+ | TUTOR(MOVE_EXPLOSION)
+ | TUTOR(MOVE_ROCK_SLIDE)
+ | TUTOR(MOVE_SUBSTITUTE)
+ | TUTOR(MOVE_SNORE)
+ | TUTOR(MOVE_ENDURE)
+ | TUTOR(MOVE_MUD_SLAP)
+ | TUTOR(MOVE_SWAGGER)
+ | TUTOR(MOVE_SLEEP_TALK)),
+
+ [SPECIES_SABLEYE] = TUTOR_LEARNSET(TUTOR(MOVE_MEGA_PUNCH)
+ | TUTOR(MOVE_MEGA_KICK)
+ | TUTOR(MOVE_BODY_SLAM)
+ | TUTOR(MOVE_DOUBLE_EDGE)
+ | TUTOR(MOVE_COUNTER)
+ | TUTOR(MOVE_SEISMIC_TOSS)
+ | TUTOR(MOVE_MIMIC)
+ | TUTOR(MOVE_METRONOME)
+ | TUTOR(MOVE_DREAM_EATER)
+ | TUTOR(MOVE_SUBSTITUTE)
+ | TUTOR(MOVE_DYNAMIC_PUNCH)
+ | TUTOR(MOVE_PSYCH_UP)
+ | TUTOR(MOVE_SNORE)
+ | TUTOR(MOVE_ENDURE)
+ | TUTOR(MOVE_MUD_SLAP)
+ | TUTOR(MOVE_ICE_PUNCH)
+ | TUTOR(MOVE_SWAGGER)
+ | TUTOR(MOVE_SLEEP_TALK)
+ | TUTOR(MOVE_THUNDER_PUNCH)
+ | TUTOR(MOVE_FIRE_PUNCH)
+ | TUTOR(MOVE_FURY_CUTTER)),
+
+ [SPECIES_BARBOACH] = TUTOR_LEARNSET(TUTOR(MOVE_DOUBLE_EDGE)
+ | TUTOR(MOVE_MIMIC)
+ | TUTOR(MOVE_SUBSTITUTE)
+ | TUTOR(MOVE_SNORE)
+ | TUTOR(MOVE_ICY_WIND)
+ | TUTOR(MOVE_ENDURE)
+ | TUTOR(MOVE_MUD_SLAP)
+ | TUTOR(MOVE_SWAGGER)
+ | TUTOR(MOVE_SLEEP_TALK)),
+
+ [SPECIES_WHISCASH] = TUTOR_LEARNSET(TUTOR(MOVE_DOUBLE_EDGE)
+ | TUTOR(MOVE_MIMIC)
+ | TUTOR(MOVE_ROCK_SLIDE)
+ | TUTOR(MOVE_SUBSTITUTE)
+ | TUTOR(MOVE_SNORE)
+ | TUTOR(MOVE_ICY_WIND)
+ | TUTOR(MOVE_ENDURE)
+ | TUTOR(MOVE_MUD_SLAP)
+ | TUTOR(MOVE_SWAGGER)
+ | TUTOR(MOVE_SLEEP_TALK)),
+
+ [SPECIES_LUVDISC] = TUTOR_LEARNSET(TUTOR(MOVE_DOUBLE_EDGE)
+ | TUTOR(MOVE_MIMIC)
+ | TUTOR(MOVE_SUBSTITUTE)
+ | TUTOR(MOVE_PSYCH_UP)
+ | TUTOR(MOVE_SNORE)
+ | TUTOR(MOVE_ICY_WIND)
+ | TUTOR(MOVE_ENDURE)
+ | TUTOR(MOVE_SWAGGER)
+ | TUTOR(MOVE_SLEEP_TALK)
+ | TUTOR(MOVE_SWIFT)),
+
+ [SPECIES_CORPHISH] = TUTOR_LEARNSET(TUTOR(MOVE_SWORDS_DANCE)
+ | TUTOR(MOVE_BODY_SLAM)
+ | TUTOR(MOVE_DOUBLE_EDGE)
+ | TUTOR(MOVE_COUNTER)
+ | TUTOR(MOVE_MIMIC)
+ | TUTOR(MOVE_SUBSTITUTE)
+ | TUTOR(MOVE_SNORE)
+ | TUTOR(MOVE_ICY_WIND)
+ | TUTOR(MOVE_ENDURE)
+ | TUTOR(MOVE_MUD_SLAP)
+ | TUTOR(MOVE_SWAGGER)
+ | TUTOR(MOVE_SLEEP_TALK)
+ | TUTOR(MOVE_FURY_CUTTER)),
+
+ [SPECIES_CRAWDAUNT] = TUTOR_LEARNSET(TUTOR(MOVE_SWORDS_DANCE)
+ | TUTOR(MOVE_BODY_SLAM)
+ | TUTOR(MOVE_DOUBLE_EDGE)
+ | TUTOR(MOVE_COUNTER)
+ | TUTOR(MOVE_MIMIC)
+ | TUTOR(MOVE_SUBSTITUTE)
+ | TUTOR(MOVE_SNORE)
+ | TUTOR(MOVE_ICY_WIND)
+ | TUTOR(MOVE_ENDURE)
+ | TUTOR(MOVE_MUD_SLAP)
+ | TUTOR(MOVE_SWAGGER)
+ | TUTOR(MOVE_SLEEP_TALK)
+ | TUTOR(MOVE_SWIFT)
+ | TUTOR(MOVE_FURY_CUTTER)),
+
+ [SPECIES_FEEBAS] = TUTOR_LEARNSET(TUTOR(MOVE_DOUBLE_EDGE)
+ | TUTOR(MOVE_MIMIC)
+ | TUTOR(MOVE_SUBSTITUTE)
+ | TUTOR(MOVE_SNORE)
+ | TUTOR(MOVE_ICY_WIND)
+ | TUTOR(MOVE_ENDURE)
+ | TUTOR(MOVE_SWAGGER)
+ | TUTOR(MOVE_SLEEP_TALK)
+ | TUTOR(MOVE_SWIFT)),
+
+ [SPECIES_MILOTIC] = TUTOR_LEARNSET(TUTOR(MOVE_BODY_SLAM)
+ | TUTOR(MOVE_DOUBLE_EDGE)
+ | TUTOR(MOVE_MIMIC)
+ | TUTOR(MOVE_SUBSTITUTE)
+ | TUTOR(MOVE_PSYCH_UP)
+ | TUTOR(MOVE_SNORE)
+ | TUTOR(MOVE_ICY_WIND)
+ | TUTOR(MOVE_ENDURE)
+ | TUTOR(MOVE_MUD_SLAP)
+ | TUTOR(MOVE_SWAGGER)
+ | TUTOR(MOVE_SLEEP_TALK)
+ | TUTOR(MOVE_SWIFT)),
+
+ [SPECIES_CARVANHA] = TUTOR_LEARNSET(TUTOR(MOVE_DOUBLE_EDGE)
+ | TUTOR(MOVE_MIMIC)
+ | TUTOR(MOVE_SUBSTITUTE)
+ | TUTOR(MOVE_SNORE)
+ | TUTOR(MOVE_ICY_WIND)
+ | TUTOR(MOVE_ENDURE)
+ | TUTOR(MOVE_MUD_SLAP)
+ | TUTOR(MOVE_SWAGGER)
+ | TUTOR(MOVE_SLEEP_TALK)
+ | TUTOR(MOVE_SWIFT)
+ | TUTOR(MOVE_FURY_CUTTER)),
+
+ [SPECIES_SHARPEDO] = TUTOR_LEARNSET(TUTOR(MOVE_DOUBLE_EDGE)
+ | TUTOR(MOVE_MIMIC)
+ | TUTOR(MOVE_SUBSTITUTE)
+ | TUTOR(MOVE_SNORE)
+ | TUTOR(MOVE_ICY_WIND)
+ | TUTOR(MOVE_ENDURE)
+ | TUTOR(MOVE_MUD_SLAP)
+ | TUTOR(MOVE_SWAGGER)
+ | TUTOR(MOVE_SLEEP_TALK)
+ | TUTOR(MOVE_SWIFT)
+ | TUTOR(MOVE_FURY_CUTTER)),
+
+ [SPECIES_TRAPINCH] = TUTOR_LEARNSET(TUTOR(MOVE_BODY_SLAM)
+ | TUTOR(MOVE_DOUBLE_EDGE)
+ | TUTOR(MOVE_MIMIC)
+ | TUTOR(MOVE_ROCK_SLIDE)
+ | TUTOR(MOVE_SUBSTITUTE)
+ | TUTOR(MOVE_SNORE)
+ | TUTOR(MOVE_ENDURE)
+ | TUTOR(MOVE_MUD_SLAP)
+ | TUTOR(MOVE_SWAGGER)
+ | TUTOR(MOVE_SLEEP_TALK)),
+
+ [SPECIES_VIBRAVA] = TUTOR_LEARNSET(TUTOR(MOVE_BODY_SLAM)
+ | TUTOR(MOVE_DOUBLE_EDGE)
+ | TUTOR(MOVE_MIMIC)
+ | TUTOR(MOVE_ROCK_SLIDE)
+ | TUTOR(MOVE_SUBSTITUTE)
+ | TUTOR(MOVE_SNORE)
+ | TUTOR(MOVE_ENDURE)
+ | TUTOR(MOVE_MUD_SLAP)
+ | TUTOR(MOVE_SWAGGER)
+ | TUTOR(MOVE_SLEEP_TALK)
+ | TUTOR(MOVE_SWIFT)),
+
+ [SPECIES_FLYGON] = TUTOR_LEARNSET(TUTOR(MOVE_BODY_SLAM)
+ | TUTOR(MOVE_DOUBLE_EDGE)
+ | TUTOR(MOVE_MIMIC)
+ | TUTOR(MOVE_ROCK_SLIDE)
+ | TUTOR(MOVE_SUBSTITUTE)
+ | TUTOR(MOVE_SNORE)
+ | TUTOR(MOVE_ENDURE)
+ | TUTOR(MOVE_MUD_SLAP)
+ | TUTOR(MOVE_SWAGGER)
+ | TUTOR(MOVE_SLEEP_TALK)
+ | TUTOR(MOVE_SWIFT)
+ | TUTOR(MOVE_FIRE_PUNCH)
+ | TUTOR(MOVE_FURY_CUTTER)),
+
+ [SPECIES_MAKUHITA] = TUTOR_LEARNSET(TUTOR(MOVE_MEGA_PUNCH)
+ | TUTOR(MOVE_MEGA_KICK)
+ | TUTOR(MOVE_BODY_SLAM)
+ | TUTOR(MOVE_DOUBLE_EDGE)
+ | TUTOR(MOVE_COUNTER)
+ | TUTOR(MOVE_SEISMIC_TOSS)
+ | TUTOR(MOVE_MIMIC)
+ | TUTOR(MOVE_METRONOME)
+ | TUTOR(MOVE_ROCK_SLIDE)
+ | TUTOR(MOVE_SUBSTITUTE)
+ | TUTOR(MOVE_DYNAMIC_PUNCH)
+ | TUTOR(MOVE_SNORE)
+ | TUTOR(MOVE_ENDURE)
+ | TUTOR(MOVE_MUD_SLAP)
+ | TUTOR(MOVE_ICE_PUNCH)
+ | TUTOR(MOVE_SWAGGER)
+ | TUTOR(MOVE_SLEEP_TALK)
+ | TUTOR(MOVE_THUNDER_PUNCH)
+ | TUTOR(MOVE_FIRE_PUNCH)),
+
+ [SPECIES_HARIYAMA] = TUTOR_LEARNSET(TUTOR(MOVE_MEGA_PUNCH)
+ | TUTOR(MOVE_MEGA_KICK)
+ | TUTOR(MOVE_BODY_SLAM)
+ | TUTOR(MOVE_DOUBLE_EDGE)
+ | TUTOR(MOVE_COUNTER)
+ | TUTOR(MOVE_SEISMIC_TOSS)
+ | TUTOR(MOVE_MIMIC)
+ | TUTOR(MOVE_METRONOME)
+ | TUTOR(MOVE_ROCK_SLIDE)
+ | TUTOR(MOVE_SUBSTITUTE)
+ | TUTOR(MOVE_DYNAMIC_PUNCH)
+ | TUTOR(MOVE_SNORE)
+ | TUTOR(MOVE_ENDURE)
+ | TUTOR(MOVE_MUD_SLAP)
+ | TUTOR(MOVE_ICE_PUNCH)
+ | TUTOR(MOVE_SWAGGER)
+ | TUTOR(MOVE_SLEEP_TALK)
+ | TUTOR(MOVE_THUNDER_PUNCH)
+ | TUTOR(MOVE_FIRE_PUNCH)),
+
+ [SPECIES_ELECTRIKE] = TUTOR_LEARNSET(TUTOR(MOVE_BODY_SLAM)
+ | TUTOR(MOVE_DOUBLE_EDGE)
+ | TUTOR(MOVE_MIMIC)
+ | TUTOR(MOVE_THUNDER_WAVE)
+ | TUTOR(MOVE_SUBSTITUTE)
+ | TUTOR(MOVE_SNORE)
+ | TUTOR(MOVE_ENDURE)
+ | TUTOR(MOVE_MUD_SLAP)
+ | TUTOR(MOVE_SWAGGER)
+ | TUTOR(MOVE_SLEEP_TALK)
+ | TUTOR(MOVE_SWIFT)),
+
+ [SPECIES_MANECTRIC] = TUTOR_LEARNSET(TUTOR(MOVE_BODY_SLAM)
+ | TUTOR(MOVE_DOUBLE_EDGE)
+ | TUTOR(MOVE_MIMIC)
+ | TUTOR(MOVE_THUNDER_WAVE)
+ | TUTOR(MOVE_SUBSTITUTE)
+ | TUTOR(MOVE_SNORE)
+ | TUTOR(MOVE_ENDURE)
+ | TUTOR(MOVE_MUD_SLAP)
+ | TUTOR(MOVE_SWAGGER)
+ | TUTOR(MOVE_SLEEP_TALK)
+ | TUTOR(MOVE_SWIFT)),
+
+ [SPECIES_NUMEL] = TUTOR_LEARNSET(TUTOR(MOVE_BODY_SLAM)
+ | TUTOR(MOVE_DOUBLE_EDGE)
+ | TUTOR(MOVE_MIMIC)
+ | TUTOR(MOVE_ROCK_SLIDE)
+ | TUTOR(MOVE_SUBSTITUTE)
+ | TUTOR(MOVE_ROLLOUT)
+ | TUTOR(MOVE_SNORE)
+ | TUTOR(MOVE_ENDURE)
+ | TUTOR(MOVE_MUD_SLAP)
+ | TUTOR(MOVE_SWAGGER)
+ | TUTOR(MOVE_SLEEP_TALK)
+ | TUTOR(MOVE_DEFENSE_CURL)),
+
+ [SPECIES_CAMERUPT] = TUTOR_LEARNSET(TUTOR(MOVE_BODY_SLAM)
+ | TUTOR(MOVE_DOUBLE_EDGE)
+ | TUTOR(MOVE_MIMIC)
+ | TUTOR(MOVE_EXPLOSION)
+ | TUTOR(MOVE_ROCK_SLIDE)
+ | TUTOR(MOVE_SUBSTITUTE)
+ | TUTOR(MOVE_ROLLOUT)
+ | TUTOR(MOVE_SNORE)
+ | TUTOR(MOVE_ENDURE)
+ | TUTOR(MOVE_MUD_SLAP)
+ | TUTOR(MOVE_SWAGGER)
+ | TUTOR(MOVE_SLEEP_TALK)
+ | TUTOR(MOVE_DEFENSE_CURL)),
+
+ [SPECIES_SPHEAL] = TUTOR_LEARNSET(TUTOR(MOVE_BODY_SLAM)
+ | TUTOR(MOVE_DOUBLE_EDGE)
+ | TUTOR(MOVE_MIMIC)
+ | TUTOR(MOVE_ROCK_SLIDE)
+ | TUTOR(MOVE_SUBSTITUTE)
+ | TUTOR(MOVE_ROLLOUT)
+ | TUTOR(MOVE_SNORE)
+ | TUTOR(MOVE_ICY_WIND)
+ | TUTOR(MOVE_ENDURE)
+ | TUTOR(MOVE_MUD_SLAP)
+ | TUTOR(MOVE_SWAGGER)
+ | TUTOR(MOVE_SLEEP_TALK)
+ | TUTOR(MOVE_DEFENSE_CURL)),
+
+ [SPECIES_SEALEO] = TUTOR_LEARNSET(TUTOR(MOVE_BODY_SLAM)
+ | TUTOR(MOVE_DOUBLE_EDGE)
+ | TUTOR(MOVE_MIMIC)
+ | TUTOR(MOVE_ROCK_SLIDE)
+ | TUTOR(MOVE_SUBSTITUTE)
+ | TUTOR(MOVE_ROLLOUT)
+ | TUTOR(MOVE_SNORE)
+ | TUTOR(MOVE_ICY_WIND)
+ | TUTOR(MOVE_ENDURE)
+ | TUTOR(MOVE_MUD_SLAP)
+ | TUTOR(MOVE_SWAGGER)
+ | TUTOR(MOVE_SLEEP_TALK)
+ | TUTOR(MOVE_DEFENSE_CURL)),
+
+ [SPECIES_WALREIN] = TUTOR_LEARNSET(TUTOR(MOVE_BODY_SLAM)
+ | TUTOR(MOVE_DOUBLE_EDGE)
+ | TUTOR(MOVE_MIMIC)
+ | TUTOR(MOVE_ROCK_SLIDE)
+ | TUTOR(MOVE_SUBSTITUTE)
+ | TUTOR(MOVE_ROLLOUT)
+ | TUTOR(MOVE_SNORE)
+ | TUTOR(MOVE_ICY_WIND)
+ | TUTOR(MOVE_ENDURE)
+ | TUTOR(MOVE_MUD_SLAP)
+ | TUTOR(MOVE_SWAGGER)
+ | TUTOR(MOVE_SLEEP_TALK)
+ | TUTOR(MOVE_DEFENSE_CURL)),
+
+ [SPECIES_CACNEA] = TUTOR_LEARNSET(TUTOR(MOVE_MEGA_PUNCH)
+ | TUTOR(MOVE_SWORDS_DANCE)
+ | TUTOR(MOVE_BODY_SLAM)
+ | TUTOR(MOVE_DOUBLE_EDGE)
+ | TUTOR(MOVE_COUNTER)
+ | TUTOR(MOVE_SEISMIC_TOSS)
+ | TUTOR(MOVE_MIMIC)
+ | TUTOR(MOVE_SUBSTITUTE)
+ | TUTOR(MOVE_DYNAMIC_PUNCH)
+ | TUTOR(MOVE_SNORE)
+ | TUTOR(MOVE_ENDURE)
+ | TUTOR(MOVE_MUD_SLAP)
+ | TUTOR(MOVE_SWAGGER)
+ | TUTOR(MOVE_SLEEP_TALK)
+ | TUTOR(MOVE_THUNDER_PUNCH)
+ | TUTOR(MOVE_FURY_CUTTER)),
+
+ [SPECIES_CACTURNE] = TUTOR_LEARNSET(TUTOR(MOVE_MEGA_PUNCH)
+ | TUTOR(MOVE_SWORDS_DANCE)
+ | TUTOR(MOVE_MEGA_KICK)
+ | TUTOR(MOVE_BODY_SLAM)
+ | TUTOR(MOVE_DOUBLE_EDGE)
+ | TUTOR(MOVE_COUNTER)
+ | TUTOR(MOVE_SEISMIC_TOSS)
+ | TUTOR(MOVE_MIMIC)
+ | TUTOR(MOVE_SUBSTITUTE)
+ | TUTOR(MOVE_DYNAMIC_PUNCH)
+ | TUTOR(MOVE_SNORE)
+ | TUTOR(MOVE_ENDURE)
+ | TUTOR(MOVE_MUD_SLAP)
+ | TUTOR(MOVE_SWAGGER)
+ | TUTOR(MOVE_SLEEP_TALK)
+ | TUTOR(MOVE_THUNDER_PUNCH)
+ | TUTOR(MOVE_FURY_CUTTER)),
+
+ [SPECIES_SNORUNT] = TUTOR_LEARNSET(TUTOR(MOVE_BODY_SLAM)
+ | TUTOR(MOVE_DOUBLE_EDGE)
+ | TUTOR(MOVE_MIMIC)
+ | TUTOR(MOVE_SUBSTITUTE)
+ | TUTOR(MOVE_SNORE)
+ | TUTOR(MOVE_ICY_WIND)
+ | TUTOR(MOVE_ENDURE)
+ | TUTOR(MOVE_SWAGGER)
+ | TUTOR(MOVE_SLEEP_TALK)),
+
+ [SPECIES_GLALIE] = TUTOR_LEARNSET(TUTOR(MOVE_BODY_SLAM)
+ | TUTOR(MOVE_DOUBLE_EDGE)
+ | TUTOR(MOVE_MIMIC)
+ | TUTOR(MOVE_EXPLOSION)
+ | TUTOR(MOVE_SUBSTITUTE)
+ | TUTOR(MOVE_ROLLOUT)
+ | TUTOR(MOVE_SNORE)
+ | TUTOR(MOVE_ICY_WIND)
+ | TUTOR(MOVE_ENDURE)
+ | TUTOR(MOVE_SWAGGER)
+ | TUTOR(MOVE_SLEEP_TALK)
+ | TUTOR(MOVE_DEFENSE_CURL)),
+
+ [SPECIES_LUNATONE] = TUTOR_LEARNSET(TUTOR(MOVE_BODY_SLAM)
+ | TUTOR(MOVE_DOUBLE_EDGE)
+ | TUTOR(MOVE_MIMIC)
+ | TUTOR(MOVE_DREAM_EATER)
+ | TUTOR(MOVE_EXPLOSION)
+ | TUTOR(MOVE_ROCK_SLIDE)
+ | TUTOR(MOVE_SUBSTITUTE)
+ | TUTOR(MOVE_ROLLOUT)
+ | TUTOR(MOVE_PSYCH_UP)
+ | TUTOR(MOVE_SNORE)
+ | TUTOR(MOVE_ENDURE)
+ | TUTOR(MOVE_SWAGGER)
+ | TUTOR(MOVE_SLEEP_TALK)
+ | TUTOR(MOVE_SWIFT)
+ | TUTOR(MOVE_DEFENSE_CURL)),
+
+ [SPECIES_SOLROCK] = TUTOR_LEARNSET(TUTOR(MOVE_BODY_SLAM)
+ | TUTOR(MOVE_DOUBLE_EDGE)
+ | TUTOR(MOVE_MIMIC)
+ | TUTOR(MOVE_DREAM_EATER)
+ | TUTOR(MOVE_EXPLOSION)
+ | TUTOR(MOVE_ROCK_SLIDE)
+ | TUTOR(MOVE_SUBSTITUTE)
+ | TUTOR(MOVE_ROLLOUT)
+ | TUTOR(MOVE_PSYCH_UP)
+ | TUTOR(MOVE_SNORE)
+ | TUTOR(MOVE_ENDURE)
+ | TUTOR(MOVE_SWAGGER)
+ | TUTOR(MOVE_SLEEP_TALK)
+ | TUTOR(MOVE_SWIFT)
+ | TUTOR(MOVE_DEFENSE_CURL)),
+
+ [SPECIES_AZURILL] = TUTOR_LEARNSET(TUTOR(MOVE_BODY_SLAM)
+ | TUTOR(MOVE_DOUBLE_EDGE)
+ | TUTOR(MOVE_MIMIC)
+ | TUTOR(MOVE_SUBSTITUTE)
+ | TUTOR(MOVE_ROLLOUT)
+ | TUTOR(MOVE_SNORE)
+ | TUTOR(MOVE_ICY_WIND)
+ | TUTOR(MOVE_ENDURE)
+ | TUTOR(MOVE_MUD_SLAP)
+ | TUTOR(MOVE_SWAGGER)
+ | TUTOR(MOVE_SLEEP_TALK)
+ | TUTOR(MOVE_SWIFT)
+ | TUTOR(MOVE_DEFENSE_CURL)),
+
+ [SPECIES_SPOINK] = TUTOR_LEARNSET(TUTOR(MOVE_BODY_SLAM)
+ | TUTOR(MOVE_DOUBLE_EDGE)
+ | TUTOR(MOVE_MIMIC)
+ | TUTOR(MOVE_DREAM_EATER)
+ | TUTOR(MOVE_SUBSTITUTE)
+ | TUTOR(MOVE_PSYCH_UP)
+ | TUTOR(MOVE_SNORE)
+ | TUTOR(MOVE_ICY_WIND)
+ | TUTOR(MOVE_ENDURE)
+ | TUTOR(MOVE_SWAGGER)
+ | TUTOR(MOVE_SLEEP_TALK)
+ | TUTOR(MOVE_SWIFT)),
+
+ [SPECIES_GRUMPIG] = TUTOR_LEARNSET(TUTOR(MOVE_MEGA_PUNCH)
+ | TUTOR(MOVE_MEGA_KICK)
+ | TUTOR(MOVE_BODY_SLAM)
+ | TUTOR(MOVE_DOUBLE_EDGE)
+ | TUTOR(MOVE_COUNTER)
+ | TUTOR(MOVE_SEISMIC_TOSS)
+ | TUTOR(MOVE_MIMIC)
+ | TUTOR(MOVE_DREAM_EATER)
+ | TUTOR(MOVE_SUBSTITUTE)
+ | TUTOR(MOVE_DYNAMIC_PUNCH)
+ | TUTOR(MOVE_PSYCH_UP)
+ | TUTOR(MOVE_SNORE)
+ | TUTOR(MOVE_ICY_WIND)
+ | TUTOR(MOVE_ENDURE)
+ | TUTOR(MOVE_MUD_SLAP)
+ | TUTOR(MOVE_ICE_PUNCH)
+ | TUTOR(MOVE_SWAGGER)
+ | TUTOR(MOVE_SLEEP_TALK)
+ | TUTOR(MOVE_SWIFT)
+ | TUTOR(MOVE_THUNDER_PUNCH)
+ | TUTOR(MOVE_FIRE_PUNCH)),
+
+ [SPECIES_PLUSLE] = TUTOR_LEARNSET(TUTOR(MOVE_MEGA_PUNCH)
+ | TUTOR(MOVE_MEGA_KICK)
+ | TUTOR(MOVE_BODY_SLAM)
+ | TUTOR(MOVE_DOUBLE_EDGE)
+ | TUTOR(MOVE_COUNTER)
+ | TUTOR(MOVE_SEISMIC_TOSS)
+ | TUTOR(MOVE_MIMIC)
+ | TUTOR(MOVE_METRONOME)
+ | TUTOR(MOVE_THUNDER_WAVE)
+ | TUTOR(MOVE_SUBSTITUTE)
+ | TUTOR(MOVE_DYNAMIC_PUNCH)
+ | TUTOR(MOVE_ROLLOUT)
+ | TUTOR(MOVE_SNORE)
+ | TUTOR(MOVE_ENDURE)
+ | TUTOR(MOVE_MUD_SLAP)
+ | TUTOR(MOVE_SWAGGER)
+ | TUTOR(MOVE_SLEEP_TALK)
+ | TUTOR(MOVE_SWIFT)
+ | TUTOR(MOVE_DEFENSE_CURL)
+ | TUTOR(MOVE_THUNDER_PUNCH)),
+
+ [SPECIES_MINUN] = TUTOR_LEARNSET(TUTOR(MOVE_MEGA_PUNCH)
+ | TUTOR(MOVE_MEGA_KICK)
+ | TUTOR(MOVE_BODY_SLAM)
+ | TUTOR(MOVE_DOUBLE_EDGE)
+ | TUTOR(MOVE_COUNTER)
+ | TUTOR(MOVE_SEISMIC_TOSS)
+ | TUTOR(MOVE_MIMIC)
+ | TUTOR(MOVE_METRONOME)
+ | TUTOR(MOVE_THUNDER_WAVE)
+ | TUTOR(MOVE_SUBSTITUTE)
+ | TUTOR(MOVE_DYNAMIC_PUNCH)
+ | TUTOR(MOVE_ROLLOUT)
+ | TUTOR(MOVE_SNORE)
+ | TUTOR(MOVE_ENDURE)
+ | TUTOR(MOVE_MUD_SLAP)
+ | TUTOR(MOVE_SWAGGER)
+ | TUTOR(MOVE_SLEEP_TALK)
+ | TUTOR(MOVE_SWIFT)
+ | TUTOR(MOVE_DEFENSE_CURL)
+ | TUTOR(MOVE_THUNDER_PUNCH)),
+
+ [SPECIES_MAWILE] = TUTOR_LEARNSET(TUTOR(MOVE_MEGA_PUNCH)
+ | TUTOR(MOVE_SWORDS_DANCE)
+ | TUTOR(MOVE_MEGA_KICK)
+ | TUTOR(MOVE_BODY_SLAM)
+ | TUTOR(MOVE_DOUBLE_EDGE)
+ | TUTOR(MOVE_COUNTER)
+ | TUTOR(MOVE_SEISMIC_TOSS)
+ | TUTOR(MOVE_MIMIC)
+ | TUTOR(MOVE_ROCK_SLIDE)
+ | TUTOR(MOVE_SUBSTITUTE)
+ | TUTOR(MOVE_DYNAMIC_PUNCH)
+ | TUTOR(MOVE_PSYCH_UP)
+ | TUTOR(MOVE_SNORE)
+ | TUTOR(MOVE_ICY_WIND)
+ | TUTOR(MOVE_ENDURE)
+ | TUTOR(MOVE_MUD_SLAP)
+ | TUTOR(MOVE_ICE_PUNCH)
+ | TUTOR(MOVE_SWAGGER)
+ | TUTOR(MOVE_SLEEP_TALK)
+ | TUTOR(MOVE_THUNDER_PUNCH)),
+
+ [SPECIES_MEDITITE] = TUTOR_LEARNSET(TUTOR(MOVE_MEGA_PUNCH)
+ | TUTOR(MOVE_MEGA_KICK)
+ | TUTOR(MOVE_BODY_SLAM)
+ | TUTOR(MOVE_DOUBLE_EDGE)
+ | TUTOR(MOVE_COUNTER)
+ | TUTOR(MOVE_SEISMIC_TOSS)
+ | TUTOR(MOVE_MIMIC)
+ | TUTOR(MOVE_METRONOME)
+ | TUTOR(MOVE_DREAM_EATER)
+ | TUTOR(MOVE_SUBSTITUTE)
+ | TUTOR(MOVE_DYNAMIC_PUNCH)
+ | TUTOR(MOVE_PSYCH_UP)
+ | TUTOR(MOVE_SNORE)
+ | TUTOR(MOVE_ENDURE)
+ | TUTOR(MOVE_MUD_SLAP)
+ | TUTOR(MOVE_ICE_PUNCH)
+ | TUTOR(MOVE_SWAGGER)
+ | TUTOR(MOVE_SLEEP_TALK)
+ | TUTOR(MOVE_SWIFT)
+ | TUTOR(MOVE_THUNDER_PUNCH)
+ | TUTOR(MOVE_FIRE_PUNCH)),
+
+ [SPECIES_MEDICHAM] = TUTOR_LEARNSET(TUTOR(MOVE_MEGA_PUNCH)
+ | TUTOR(MOVE_MEGA_KICK)
+ | TUTOR(MOVE_BODY_SLAM)
+ | TUTOR(MOVE_DOUBLE_EDGE)
+ | TUTOR(MOVE_COUNTER)
+ | TUTOR(MOVE_SEISMIC_TOSS)
+ | TUTOR(MOVE_MIMIC)
+ | TUTOR(MOVE_METRONOME)
+ | TUTOR(MOVE_DREAM_EATER)
+ | TUTOR(MOVE_ROCK_SLIDE)
+ | TUTOR(MOVE_SUBSTITUTE)
+ | TUTOR(MOVE_DYNAMIC_PUNCH)
+ | TUTOR(MOVE_PSYCH_UP)
+ | TUTOR(MOVE_SNORE)
+ | TUTOR(MOVE_ENDURE)
+ | TUTOR(MOVE_MUD_SLAP)
+ | TUTOR(MOVE_ICE_PUNCH)
+ | TUTOR(MOVE_SWAGGER)
+ | TUTOR(MOVE_SLEEP_TALK)
+ | TUTOR(MOVE_SWIFT)
+ | TUTOR(MOVE_THUNDER_PUNCH)
+ | TUTOR(MOVE_FIRE_PUNCH)),
+
+ [SPECIES_SWABLU] = TUTOR_LEARNSET(TUTOR(MOVE_BODY_SLAM)
+ | TUTOR(MOVE_DOUBLE_EDGE)
+ | TUTOR(MOVE_MIMIC)
+ | TUTOR(MOVE_DREAM_EATER)
+ | TUTOR(MOVE_SUBSTITUTE)
+ | TUTOR(MOVE_PSYCH_UP)
+ | TUTOR(MOVE_SNORE)
+ | TUTOR(MOVE_ENDURE)
+ | TUTOR(MOVE_MUD_SLAP)
+ | TUTOR(MOVE_SWAGGER)
+ | TUTOR(MOVE_SLEEP_TALK)
+ | TUTOR(MOVE_SWIFT)),
+
+ [SPECIES_ALTARIA] = TUTOR_LEARNSET(TUTOR(MOVE_BODY_SLAM)
+ | TUTOR(MOVE_DOUBLE_EDGE)
+ | TUTOR(MOVE_MIMIC)
+ | TUTOR(MOVE_DREAM_EATER)
+ | TUTOR(MOVE_SUBSTITUTE)
+ | TUTOR(MOVE_PSYCH_UP)
+ | TUTOR(MOVE_SNORE)
+ | TUTOR(MOVE_ENDURE)
+ | TUTOR(MOVE_MUD_SLAP)
+ | TUTOR(MOVE_SWAGGER)
+ | TUTOR(MOVE_SLEEP_TALK)
+ | TUTOR(MOVE_SWIFT)),
+
+ [SPECIES_WYNAUT] = TUTOR_LEARNSET(0),
+
+ [SPECIES_DUSKULL] = TUTOR_LEARNSET(TUTOR(MOVE_BODY_SLAM)
+ | TUTOR(MOVE_DOUBLE_EDGE)
+ | TUTOR(MOVE_MIMIC)
+ | TUTOR(MOVE_DREAM_EATER)
+ | TUTOR(MOVE_SUBSTITUTE)
+ | TUTOR(MOVE_PSYCH_UP)
+ | TUTOR(MOVE_SNORE)
+ | TUTOR(MOVE_ICY_WIND)
+ | TUTOR(MOVE_ENDURE)
+ | TUTOR(MOVE_SWAGGER)
+ | TUTOR(MOVE_SLEEP_TALK)),
+
+ [SPECIES_DUSCLOPS] = TUTOR_LEARNSET(TUTOR(MOVE_MEGA_PUNCH)
+ | TUTOR(MOVE_MEGA_KICK)
+ | TUTOR(MOVE_BODY_SLAM)
+ | TUTOR(MOVE_DOUBLE_EDGE)
+ | TUTOR(MOVE_COUNTER)
+ | TUTOR(MOVE_SEISMIC_TOSS)
+ | TUTOR(MOVE_MIMIC)
+ | TUTOR(MOVE_METRONOME)
+ | TUTOR(MOVE_DREAM_EATER)
+ | TUTOR(MOVE_ROCK_SLIDE)
+ | TUTOR(MOVE_SUBSTITUTE)
+ | TUTOR(MOVE_DYNAMIC_PUNCH)
+ | TUTOR(MOVE_PSYCH_UP)
+ | TUTOR(MOVE_SNORE)
+ | TUTOR(MOVE_ICY_WIND)
+ | TUTOR(MOVE_ENDURE)
+ | TUTOR(MOVE_MUD_SLAP)
+ | TUTOR(MOVE_ICE_PUNCH)
+ | TUTOR(MOVE_SWAGGER)
+ | TUTOR(MOVE_SLEEP_TALK)
+ | TUTOR(MOVE_THUNDER_PUNCH)
+ | TUTOR(MOVE_FIRE_PUNCH)),
+
+ [SPECIES_ROSELIA] = TUTOR_LEARNSET(TUTOR(MOVE_SWORDS_DANCE)
+ | TUTOR(MOVE_BODY_SLAM)
+ | TUTOR(MOVE_DOUBLE_EDGE)
+ | TUTOR(MOVE_MIMIC)
+ | TUTOR(MOVE_SUBSTITUTE)
+ | TUTOR(MOVE_PSYCH_UP)
+ | TUTOR(MOVE_SNORE)
+ | TUTOR(MOVE_ENDURE)
+ | TUTOR(MOVE_MUD_SLAP)
+ | TUTOR(MOVE_SWAGGER)
+ | TUTOR(MOVE_SLEEP_TALK)
+ | TUTOR(MOVE_SWIFT)
+ | TUTOR(MOVE_FURY_CUTTER)),
+
+ [SPECIES_SLAKOTH] = TUTOR_LEARNSET(TUTOR(MOVE_MEGA_PUNCH)
+ | TUTOR(MOVE_MEGA_KICK)
+ | TUTOR(MOVE_BODY_SLAM)
+ | TUTOR(MOVE_DOUBLE_EDGE)
+ | TUTOR(MOVE_COUNTER)
+ | TUTOR(MOVE_SEISMIC_TOSS)
+ | TUTOR(MOVE_MIMIC)
+ | TUTOR(MOVE_ROCK_SLIDE)
+ | TUTOR(MOVE_SUBSTITUTE)
+ | TUTOR(MOVE_DYNAMIC_PUNCH)
+ | TUTOR(MOVE_SNORE)
+ | TUTOR(MOVE_ICY_WIND)
+ | TUTOR(MOVE_ENDURE)
+ | TUTOR(MOVE_MUD_SLAP)
+ | TUTOR(MOVE_ICE_PUNCH)
+ | TUTOR(MOVE_SWAGGER)
+ | TUTOR(MOVE_SLEEP_TALK)
+ | TUTOR(MOVE_THUNDER_PUNCH)
+ | TUTOR(MOVE_FIRE_PUNCH)
+ | TUTOR(MOVE_FURY_CUTTER)),
+
+ [SPECIES_VIGOROTH] = TUTOR_LEARNSET(TUTOR(MOVE_MEGA_PUNCH)
+ | TUTOR(MOVE_MEGA_KICK)
+ | TUTOR(MOVE_BODY_SLAM)
+ | TUTOR(MOVE_DOUBLE_EDGE)
+ | TUTOR(MOVE_COUNTER)
+ | TUTOR(MOVE_SEISMIC_TOSS)
+ | TUTOR(MOVE_MIMIC)
+ | TUTOR(MOVE_ROCK_SLIDE)
+ | TUTOR(MOVE_SUBSTITUTE)
+ | TUTOR(MOVE_DYNAMIC_PUNCH)
+ | TUTOR(MOVE_SNORE)
+ | TUTOR(MOVE_ICY_WIND)
+ | TUTOR(MOVE_ENDURE)
+ | TUTOR(MOVE_MUD_SLAP)
+ | TUTOR(MOVE_ICE_PUNCH)
+ | TUTOR(MOVE_SWAGGER)
+ | TUTOR(MOVE_SLEEP_TALK)
+ | TUTOR(MOVE_THUNDER_PUNCH)
+ | TUTOR(MOVE_FIRE_PUNCH)
+ | TUTOR(MOVE_FURY_CUTTER)),
+
+ [SPECIES_SLAKING] = TUTOR_LEARNSET(TUTOR(MOVE_MEGA_PUNCH)
+ | TUTOR(MOVE_MEGA_KICK)
+ | TUTOR(MOVE_BODY_SLAM)
+ | TUTOR(MOVE_DOUBLE_EDGE)
+ | TUTOR(MOVE_COUNTER)
+ | TUTOR(MOVE_SEISMIC_TOSS)
+ | TUTOR(MOVE_MIMIC)
+ | TUTOR(MOVE_ROCK_SLIDE)
+ | TUTOR(MOVE_SUBSTITUTE)
+ | TUTOR(MOVE_DYNAMIC_PUNCH)
+ | TUTOR(MOVE_SNORE)
+ | TUTOR(MOVE_ICY_WIND)
+ | TUTOR(MOVE_ENDURE)
+ | TUTOR(MOVE_MUD_SLAP)
+ | TUTOR(MOVE_ICE_PUNCH)
+ | TUTOR(MOVE_SWAGGER)
+ | TUTOR(MOVE_SLEEP_TALK)
+ | TUTOR(MOVE_THUNDER_PUNCH)
+ | TUTOR(MOVE_FIRE_PUNCH)
+ | TUTOR(MOVE_FURY_CUTTER)),
+
+ [SPECIES_GULPIN] = TUTOR_LEARNSET(TUTOR(MOVE_BODY_SLAM)
+ | TUTOR(MOVE_DOUBLE_EDGE)
+ | TUTOR(MOVE_COUNTER)
+ | TUTOR(MOVE_MIMIC)
+ | TUTOR(MOVE_DREAM_EATER)
+ | TUTOR(MOVE_EXPLOSION)
+ | TUTOR(MOVE_SUBSTITUTE)
+ | TUTOR(MOVE_DYNAMIC_PUNCH)
+ | TUTOR(MOVE_ROLLOUT)
+ | TUTOR(MOVE_SNORE)
+ | TUTOR(MOVE_ENDURE)
+ | TUTOR(MOVE_MUD_SLAP)
+ | TUTOR(MOVE_ICE_PUNCH)
+ | TUTOR(MOVE_SWAGGER)
+ | TUTOR(MOVE_SLEEP_TALK)
+ | TUTOR(MOVE_DEFENSE_CURL)
+ | TUTOR(MOVE_THUNDER_PUNCH)
+ | TUTOR(MOVE_FIRE_PUNCH)),
+
+ [SPECIES_SWALOT] = TUTOR_LEARNSET(TUTOR(MOVE_BODY_SLAM)
+ | TUTOR(MOVE_DOUBLE_EDGE)
+ | TUTOR(MOVE_COUNTER)
+ | TUTOR(MOVE_MIMIC)
+ | TUTOR(MOVE_DREAM_EATER)
+ | TUTOR(MOVE_EXPLOSION)
+ | TUTOR(MOVE_SUBSTITUTE)
+ | TUTOR(MOVE_DYNAMIC_PUNCH)
+ | TUTOR(MOVE_ROLLOUT)
+ | TUTOR(MOVE_SNORE)
+ | TUTOR(MOVE_ENDURE)
+ | TUTOR(MOVE_MUD_SLAP)
+ | TUTOR(MOVE_ICE_PUNCH)
+ | TUTOR(MOVE_SWAGGER)
+ | TUTOR(MOVE_SLEEP_TALK)
+ | TUTOR(MOVE_DEFENSE_CURL)
+ | TUTOR(MOVE_THUNDER_PUNCH)
+ | TUTOR(MOVE_FIRE_PUNCH)),
+
+ [SPECIES_TROPIUS] = TUTOR_LEARNSET(TUTOR(MOVE_SWORDS_DANCE)
+ | TUTOR(MOVE_BODY_SLAM)
+ | TUTOR(MOVE_DOUBLE_EDGE)
+ | TUTOR(MOVE_MIMIC)
+ | TUTOR(MOVE_SUBSTITUTE)
+ | TUTOR(MOVE_SNORE)
+ | TUTOR(MOVE_ENDURE)
+ | TUTOR(MOVE_MUD_SLAP)
+ | TUTOR(MOVE_SWAGGER)
+ | TUTOR(MOVE_SLEEP_TALK)
+ | TUTOR(MOVE_FURY_CUTTER)),
+
+ [SPECIES_WHISMUR] = TUTOR_LEARNSET(TUTOR(MOVE_MEGA_PUNCH)
+ | TUTOR(MOVE_MEGA_KICK)
+ | TUTOR(MOVE_BODY_SLAM)
+ | TUTOR(MOVE_DOUBLE_EDGE)
+ | TUTOR(MOVE_COUNTER)
+ | TUTOR(MOVE_SEISMIC_TOSS)
+ | TUTOR(MOVE_MIMIC)
+ | TUTOR(MOVE_SUBSTITUTE)
+ | TUTOR(MOVE_DYNAMIC_PUNCH)
+ | TUTOR(MOVE_ROLLOUT)
+ | TUTOR(MOVE_PSYCH_UP)
+ | TUTOR(MOVE_SNORE)
+ | TUTOR(MOVE_ICY_WIND)
+ | TUTOR(MOVE_ENDURE)
+ | TUTOR(MOVE_MUD_SLAP)
+ | TUTOR(MOVE_ICE_PUNCH)
+ | TUTOR(MOVE_SWAGGER)
+ | TUTOR(MOVE_SLEEP_TALK)
+ | TUTOR(MOVE_DEFENSE_CURL)
+ | TUTOR(MOVE_THUNDER_PUNCH)
+ | TUTOR(MOVE_FIRE_PUNCH)),
+
+ [SPECIES_LOUDRED] = TUTOR_LEARNSET(TUTOR(MOVE_MEGA_PUNCH)
+ | TUTOR(MOVE_MEGA_KICK)
+ | TUTOR(MOVE_BODY_SLAM)
+ | TUTOR(MOVE_DOUBLE_EDGE)
+ | TUTOR(MOVE_COUNTER)
+ | TUTOR(MOVE_SEISMIC_TOSS)
+ | TUTOR(MOVE_MIMIC)
+ | TUTOR(MOVE_ROCK_SLIDE)
+ | TUTOR(MOVE_SUBSTITUTE)
+ | TUTOR(MOVE_DYNAMIC_PUNCH)
+ | TUTOR(MOVE_ROLLOUT)
+ | TUTOR(MOVE_PSYCH_UP)
+ | TUTOR(MOVE_SNORE)
+ | TUTOR(MOVE_ICY_WIND)
+ | TUTOR(MOVE_ENDURE)
+ | TUTOR(MOVE_MUD_SLAP)
+ | TUTOR(MOVE_ICE_PUNCH)
+ | TUTOR(MOVE_SWAGGER)
+ | TUTOR(MOVE_SLEEP_TALK)
+ | TUTOR(MOVE_DEFENSE_CURL)
+ | TUTOR(MOVE_THUNDER_PUNCH)
+ | TUTOR(MOVE_FIRE_PUNCH)),
+
+ [SPECIES_EXPLOUD] = TUTOR_LEARNSET(TUTOR(MOVE_MEGA_PUNCH)
+ | TUTOR(MOVE_MEGA_KICK)
+ | TUTOR(MOVE_BODY_SLAM)
+ | TUTOR(MOVE_DOUBLE_EDGE)
+ | TUTOR(MOVE_COUNTER)
+ | TUTOR(MOVE_SEISMIC_TOSS)
+ | TUTOR(MOVE_MIMIC)
+ | TUTOR(MOVE_ROCK_SLIDE)
+ | TUTOR(MOVE_SUBSTITUTE)
+ | TUTOR(MOVE_DYNAMIC_PUNCH)
+ | TUTOR(MOVE_ROLLOUT)
+ | TUTOR(MOVE_PSYCH_UP)
+ | TUTOR(MOVE_SNORE)
+ | TUTOR(MOVE_ICY_WIND)
+ | TUTOR(MOVE_ENDURE)
+ | TUTOR(MOVE_MUD_SLAP)
+ | TUTOR(MOVE_ICE_PUNCH)
+ | TUTOR(MOVE_SWAGGER)
+ | TUTOR(MOVE_SLEEP_TALK)
+ | TUTOR(MOVE_DEFENSE_CURL)
+ | TUTOR(MOVE_THUNDER_PUNCH)
+ | TUTOR(MOVE_FIRE_PUNCH)),
+
+ [SPECIES_CLAMPERL] = TUTOR_LEARNSET(TUTOR(MOVE_BODY_SLAM)
+ | TUTOR(MOVE_DOUBLE_EDGE)
+ | TUTOR(MOVE_MIMIC)
+ | TUTOR(MOVE_SUBSTITUTE)
+ | TUTOR(MOVE_SNORE)
+ | TUTOR(MOVE_ICY_WIND)
+ | TUTOR(MOVE_ENDURE)
+ | TUTOR(MOVE_SWAGGER)
+ | TUTOR(MOVE_SLEEP_TALK)),
+
+ [SPECIES_HUNTAIL] = TUTOR_LEARNSET(TUTOR(MOVE_BODY_SLAM)
+ | TUTOR(MOVE_DOUBLE_EDGE)
+ | TUTOR(MOVE_MIMIC)
+ | TUTOR(MOVE_SUBSTITUTE)
+ | TUTOR(MOVE_SNORE)
+ | TUTOR(MOVE_ICY_WIND)
+ | TUTOR(MOVE_ENDURE)
+ | TUTOR(MOVE_MUD_SLAP)
+ | TUTOR(MOVE_SWAGGER)
+ | TUTOR(MOVE_SLEEP_TALK)
+ | TUTOR(MOVE_SWIFT)),
+
+ [SPECIES_GOREBYSS] = TUTOR_LEARNSET(TUTOR(MOVE_BODY_SLAM)
+ | TUTOR(MOVE_DOUBLE_EDGE)
+ | TUTOR(MOVE_MIMIC)
+ | TUTOR(MOVE_SUBSTITUTE)
+ | TUTOR(MOVE_SNORE)
+ | TUTOR(MOVE_ICY_WIND)
+ | TUTOR(MOVE_ENDURE)
+ | TUTOR(MOVE_MUD_SLAP)
+ | TUTOR(MOVE_SWAGGER)
+ | TUTOR(MOVE_SLEEP_TALK)
+ | TUTOR(MOVE_SWIFT)),
+
+ [SPECIES_ABSOL] = TUTOR_LEARNSET(TUTOR(MOVE_SWORDS_DANCE)
+ | TUTOR(MOVE_BODY_SLAM)
+ | TUTOR(MOVE_DOUBLE_EDGE)
+ | TUTOR(MOVE_COUNTER)
+ | TUTOR(MOVE_MIMIC)
+ | TUTOR(MOVE_DREAM_EATER)
+ | TUTOR(MOVE_THUNDER_WAVE)
+ | TUTOR(MOVE_ROCK_SLIDE)
+ | TUTOR(MOVE_SUBSTITUTE)
+ | TUTOR(MOVE_PSYCH_UP)
+ | TUTOR(MOVE_SNORE)
+ | TUTOR(MOVE_ICY_WIND)
+ | TUTOR(MOVE_ENDURE)
+ | TUTOR(MOVE_MUD_SLAP)
+ | TUTOR(MOVE_SWAGGER)
+ | TUTOR(MOVE_SLEEP_TALK)
+ | TUTOR(MOVE_SWIFT)
+ | TUTOR(MOVE_FURY_CUTTER)),
+
+ [SPECIES_SHUPPET] = TUTOR_LEARNSET(TUTOR(MOVE_BODY_SLAM)
+ | TUTOR(MOVE_DOUBLE_EDGE)
+ | TUTOR(MOVE_MIMIC)
+ | TUTOR(MOVE_DREAM_EATER)
+ | TUTOR(MOVE_THUNDER_WAVE)
+ | TUTOR(MOVE_SUBSTITUTE)
+ | TUTOR(MOVE_PSYCH_UP)
+ | TUTOR(MOVE_SNORE)
+ | TUTOR(MOVE_ICY_WIND)
+ | TUTOR(MOVE_ENDURE)
+ | TUTOR(MOVE_SWAGGER)
+ | TUTOR(MOVE_SLEEP_TALK)),
+
+ [SPECIES_BANETTE] = TUTOR_LEARNSET(TUTOR(MOVE_BODY_SLAM)
+ | TUTOR(MOVE_DOUBLE_EDGE)
+ | TUTOR(MOVE_MIMIC)
+ | TUTOR(MOVE_METRONOME)
+ | TUTOR(MOVE_DREAM_EATER)
+ | TUTOR(MOVE_THUNDER_WAVE)
+ | TUTOR(MOVE_SUBSTITUTE)
+ | TUTOR(MOVE_PSYCH_UP)
+ | TUTOR(MOVE_SNORE)
+ | TUTOR(MOVE_ICY_WIND)
+ | TUTOR(MOVE_ENDURE)
+ | TUTOR(MOVE_MUD_SLAP)
+ | TUTOR(MOVE_SWAGGER)
+ | TUTOR(MOVE_SLEEP_TALK)),
+
+ [SPECIES_SEVIPER] = TUTOR_LEARNSET(TUTOR(MOVE_BODY_SLAM)
+ | TUTOR(MOVE_DOUBLE_EDGE)
+ | TUTOR(MOVE_MIMIC)
+ | TUTOR(MOVE_SUBSTITUTE)
+ | TUTOR(MOVE_SNORE)
+ | TUTOR(MOVE_ENDURE)
+ | TUTOR(MOVE_MUD_SLAP)
+ | TUTOR(MOVE_SWAGGER)
+ | TUTOR(MOVE_SLEEP_TALK)
+ | TUTOR(MOVE_SWIFT)
+ | TUTOR(MOVE_FURY_CUTTER)),
+
+ [SPECIES_ZANGOOSE] = TUTOR_LEARNSET(TUTOR(MOVE_MEGA_PUNCH)
+ | TUTOR(MOVE_SWORDS_DANCE)
+ | TUTOR(MOVE_MEGA_KICK)
+ | TUTOR(MOVE_BODY_SLAM)
+ | TUTOR(MOVE_DOUBLE_EDGE)
+ | TUTOR(MOVE_COUNTER)
+ | TUTOR(MOVE_SEISMIC_TOSS)
+ | TUTOR(MOVE_MIMIC)
+ | TUTOR(MOVE_THUNDER_WAVE)
+ | TUTOR(MOVE_ROCK_SLIDE)
+ | TUTOR(MOVE_SUBSTITUTE)
+ | TUTOR(MOVE_DYNAMIC_PUNCH)
+ | TUTOR(MOVE_ROLLOUT)
+ | TUTOR(MOVE_SNORE)
+ | TUTOR(MOVE_ICY_WIND)
+ | TUTOR(MOVE_ENDURE)
+ | TUTOR(MOVE_MUD_SLAP)
+ | TUTOR(MOVE_ICE_PUNCH)
+ | TUTOR(MOVE_SWAGGER)
+ | TUTOR(MOVE_SLEEP_TALK)
+ | TUTOR(MOVE_SWIFT)
+ | TUTOR(MOVE_DEFENSE_CURL)
+ | TUTOR(MOVE_THUNDER_PUNCH)
+ | TUTOR(MOVE_FIRE_PUNCH)
+ | TUTOR(MOVE_FURY_CUTTER)),
+
+ [SPECIES_RELICANTH] = TUTOR_LEARNSET(TUTOR(MOVE_BODY_SLAM)
+ | TUTOR(MOVE_DOUBLE_EDGE)
+ | TUTOR(MOVE_MIMIC)
+ | TUTOR(MOVE_ROCK_SLIDE)
+ | TUTOR(MOVE_SUBSTITUTE)
+ | TUTOR(MOVE_PSYCH_UP)
+ | TUTOR(MOVE_SNORE)
+ | TUTOR(MOVE_ICY_WIND)
+ | TUTOR(MOVE_ENDURE)
+ | TUTOR(MOVE_MUD_SLAP)
+ | TUTOR(MOVE_SWAGGER)
+ | TUTOR(MOVE_SLEEP_TALK)),
+
+ [SPECIES_ARON] = TUTOR_LEARNSET(TUTOR(MOVE_BODY_SLAM)
+ | TUTOR(MOVE_DOUBLE_EDGE)
+ | TUTOR(MOVE_MIMIC)
+ | TUTOR(MOVE_ROCK_SLIDE)
+ | TUTOR(MOVE_SUBSTITUTE)
+ | TUTOR(MOVE_ROLLOUT)
+ | TUTOR(MOVE_SNORE)
+ | TUTOR(MOVE_ENDURE)
+ | TUTOR(MOVE_MUD_SLAP)
+ | TUTOR(MOVE_SWAGGER)
+ | TUTOR(MOVE_SLEEP_TALK)
+ | TUTOR(MOVE_DEFENSE_CURL)
+ | TUTOR(MOVE_FURY_CUTTER)),
+
+ [SPECIES_LAIRON] = TUTOR_LEARNSET(TUTOR(MOVE_BODY_SLAM)
+ | TUTOR(MOVE_DOUBLE_EDGE)
+ | TUTOR(MOVE_MIMIC)
+ | TUTOR(MOVE_ROCK_SLIDE)
+ | TUTOR(MOVE_SUBSTITUTE)
+ | TUTOR(MOVE_ROLLOUT)
+ | TUTOR(MOVE_SNORE)
+ | TUTOR(MOVE_ENDURE)
+ | TUTOR(MOVE_MUD_SLAP)
+ | TUTOR(MOVE_SWAGGER)
+ | TUTOR(MOVE_SLEEP_TALK)
+ | TUTOR(MOVE_DEFENSE_CURL)
+ | TUTOR(MOVE_FURY_CUTTER)),
+
+ [SPECIES_AGGRON] = TUTOR_LEARNSET(TUTOR(MOVE_MEGA_PUNCH)
+ | TUTOR(MOVE_MEGA_KICK)
+ | TUTOR(MOVE_BODY_SLAM)
+ | TUTOR(MOVE_DOUBLE_EDGE)
+ | TUTOR(MOVE_COUNTER)
+ | TUTOR(MOVE_SEISMIC_TOSS)
+ | TUTOR(MOVE_MIMIC)
+ | TUTOR(MOVE_THUNDER_WAVE)
+ | TUTOR(MOVE_ROCK_SLIDE)
+ | TUTOR(MOVE_SUBSTITUTE)
+ | TUTOR(MOVE_DYNAMIC_PUNCH)
+ | TUTOR(MOVE_ROLLOUT)
+ | TUTOR(MOVE_SNORE)
+ | TUTOR(MOVE_ICY_WIND)
+ | TUTOR(MOVE_ENDURE)
+ | TUTOR(MOVE_MUD_SLAP)
+ | TUTOR(MOVE_ICE_PUNCH)
+ | TUTOR(MOVE_SWAGGER)
+ | TUTOR(MOVE_SLEEP_TALK)
+ | TUTOR(MOVE_DEFENSE_CURL)
+ | TUTOR(MOVE_THUNDER_PUNCH)
+ | TUTOR(MOVE_FIRE_PUNCH)
+ | TUTOR(MOVE_FURY_CUTTER)),
+
+ [SPECIES_CASTFORM] = TUTOR_LEARNSET(TUTOR(MOVE_BODY_SLAM)
+ | TUTOR(MOVE_DOUBLE_EDGE)
+ | TUTOR(MOVE_MIMIC)
+ | TUTOR(MOVE_THUNDER_WAVE)
+ | TUTOR(MOVE_SUBSTITUTE)
+ | TUTOR(MOVE_PSYCH_UP)
+ | TUTOR(MOVE_SNORE)
+ | TUTOR(MOVE_ICY_WIND)
+ | TUTOR(MOVE_ENDURE)
+ | TUTOR(MOVE_SWAGGER)
+ | TUTOR(MOVE_SLEEP_TALK)
+ | TUTOR(MOVE_SWIFT)
+ | TUTOR(MOVE_DEFENSE_CURL)),
+
+ [SPECIES_VOLBEAT] = TUTOR_LEARNSET(TUTOR(MOVE_MEGA_PUNCH)
+ | TUTOR(MOVE_MEGA_KICK)
+ | TUTOR(MOVE_BODY_SLAM)
+ | TUTOR(MOVE_DOUBLE_EDGE)
+ | TUTOR(MOVE_COUNTER)
+ | TUTOR(MOVE_SEISMIC_TOSS)
+ | TUTOR(MOVE_MIMIC)
+ | TUTOR(MOVE_METRONOME)
+ | TUTOR(MOVE_THUNDER_WAVE)
+ | TUTOR(MOVE_SUBSTITUTE)
+ | TUTOR(MOVE_DYNAMIC_PUNCH)
+ | TUTOR(MOVE_PSYCH_UP)
+ | TUTOR(MOVE_SNORE)
+ | TUTOR(MOVE_ENDURE)
+ | TUTOR(MOVE_MUD_SLAP)
+ | TUTOR(MOVE_ICE_PUNCH)
+ | TUTOR(MOVE_SWAGGER)
+ | TUTOR(MOVE_SLEEP_TALK)
+ | TUTOR(MOVE_SWIFT)
+ | TUTOR(MOVE_THUNDER_PUNCH)),
+
+ [SPECIES_ILLUMISE] = TUTOR_LEARNSET(TUTOR(MOVE_MEGA_PUNCH)
+ | TUTOR(MOVE_MEGA_KICK)
+ | TUTOR(MOVE_BODY_SLAM)
+ | TUTOR(MOVE_DOUBLE_EDGE)
+ | TUTOR(MOVE_COUNTER)
+ | TUTOR(MOVE_SEISMIC_TOSS)
+ | TUTOR(MOVE_MIMIC)
+ | TUTOR(MOVE_METRONOME)
+ | TUTOR(MOVE_THUNDER_WAVE)
+ | TUTOR(MOVE_SUBSTITUTE)
+ | TUTOR(MOVE_DYNAMIC_PUNCH)
+ | TUTOR(MOVE_PSYCH_UP)
+ | TUTOR(MOVE_SNORE)
+ | TUTOR(MOVE_ENDURE)
+ | TUTOR(MOVE_MUD_SLAP)
+ | TUTOR(MOVE_ICE_PUNCH)
+ | TUTOR(MOVE_SWAGGER)
+ | TUTOR(MOVE_SLEEP_TALK)
+ | TUTOR(MOVE_SWIFT)
+ | TUTOR(MOVE_THUNDER_PUNCH)),
+
+ [SPECIES_LILEEP] = TUTOR_LEARNSET(TUTOR(MOVE_BODY_SLAM)
+ | TUTOR(MOVE_DOUBLE_EDGE)
+ | TUTOR(MOVE_MIMIC)
+ | TUTOR(MOVE_ROCK_SLIDE)
+ | TUTOR(MOVE_SUBSTITUTE)
+ | TUTOR(MOVE_PSYCH_UP)
+ | TUTOR(MOVE_SNORE)
+ | TUTOR(MOVE_ENDURE)
+ | TUTOR(MOVE_MUD_SLAP)
+ | TUTOR(MOVE_SWAGGER)
+ | TUTOR(MOVE_SLEEP_TALK)),
+
+ [SPECIES_CRADILY] = TUTOR_LEARNSET(TUTOR(MOVE_BODY_SLAM)
+ | TUTOR(MOVE_DOUBLE_EDGE)
+ | TUTOR(MOVE_MIMIC)
+ | TUTOR(MOVE_ROCK_SLIDE)
+ | TUTOR(MOVE_SUBSTITUTE)
+ | TUTOR(MOVE_PSYCH_UP)
+ | TUTOR(MOVE_SNORE)
+ | TUTOR(MOVE_ENDURE)
+ | TUTOR(MOVE_MUD_SLAP)
+ | TUTOR(MOVE_SWAGGER)
+ | TUTOR(MOVE_SLEEP_TALK)),
+
+ [SPECIES_ANORITH] = TUTOR_LEARNSET(TUTOR(MOVE_SWORDS_DANCE)
+ | TUTOR(MOVE_BODY_SLAM)
+ | TUTOR(MOVE_DOUBLE_EDGE)
+ | TUTOR(MOVE_MIMIC)
+ | TUTOR(MOVE_ROCK_SLIDE)
+ | TUTOR(MOVE_SUBSTITUTE)
+ | TUTOR(MOVE_SNORE)
+ | TUTOR(MOVE_ENDURE)
+ | TUTOR(MOVE_MUD_SLAP)
+ | TUTOR(MOVE_SWAGGER)
+ | TUTOR(MOVE_SLEEP_TALK)
+ | TUTOR(MOVE_FURY_CUTTER)),
+
+ [SPECIES_ARMALDO] = TUTOR_LEARNSET(TUTOR(MOVE_SWORDS_DANCE)
+ | TUTOR(MOVE_BODY_SLAM)
+ | TUTOR(MOVE_DOUBLE_EDGE)
+ | TUTOR(MOVE_SEISMIC_TOSS)
+ | TUTOR(MOVE_MIMIC)
+ | TUTOR(MOVE_ROCK_SLIDE)
+ | TUTOR(MOVE_SUBSTITUTE)
+ | TUTOR(MOVE_SNORE)
+ | TUTOR(MOVE_ENDURE)
+ | TUTOR(MOVE_MUD_SLAP)
+ | TUTOR(MOVE_SWAGGER)
+ | TUTOR(MOVE_SLEEP_TALK)
+ | TUTOR(MOVE_FURY_CUTTER)),
+
+ [SPECIES_RALTS] = TUTOR_LEARNSET(TUTOR(MOVE_BODY_SLAM)
+ | TUTOR(MOVE_DOUBLE_EDGE)
+ | TUTOR(MOVE_MIMIC)
+ | TUTOR(MOVE_DREAM_EATER)
+ | TUTOR(MOVE_THUNDER_WAVE)
+ | TUTOR(MOVE_SUBSTITUTE)
+ | TUTOR(MOVE_PSYCH_UP)
+ | TUTOR(MOVE_SNORE)
+ | TUTOR(MOVE_ICY_WIND)
+ | TUTOR(MOVE_ENDURE)
+ | TUTOR(MOVE_MUD_SLAP)
+ | TUTOR(MOVE_ICE_PUNCH)
+ | TUTOR(MOVE_SWAGGER)
+ | TUTOR(MOVE_SLEEP_TALK)
+ | TUTOR(MOVE_DEFENSE_CURL)
+ | TUTOR(MOVE_THUNDER_PUNCH)
+ | TUTOR(MOVE_FIRE_PUNCH)),
+
+ [SPECIES_KIRLIA] = TUTOR_LEARNSET(TUTOR(MOVE_BODY_SLAM)
+ | TUTOR(MOVE_DOUBLE_EDGE)
+ | TUTOR(MOVE_MIMIC)
+ | TUTOR(MOVE_DREAM_EATER)
+ | TUTOR(MOVE_THUNDER_WAVE)
+ | TUTOR(MOVE_SUBSTITUTE)
+ | TUTOR(MOVE_PSYCH_UP)
+ | TUTOR(MOVE_SNORE)
+ | TUTOR(MOVE_ICY_WIND)
+ | TUTOR(MOVE_ENDURE)
+ | TUTOR(MOVE_MUD_SLAP)
+ | TUTOR(MOVE_ICE_PUNCH)
+ | TUTOR(MOVE_SWAGGER)
+ | TUTOR(MOVE_SLEEP_TALK)
+ | TUTOR(MOVE_DEFENSE_CURL)
+ | TUTOR(MOVE_THUNDER_PUNCH)
+ | TUTOR(MOVE_FIRE_PUNCH)),
+
+ [SPECIES_GARDEVOIR] = TUTOR_LEARNSET(TUTOR(MOVE_BODY_SLAM)
+ | TUTOR(MOVE_DOUBLE_EDGE)
+ | TUTOR(MOVE_MIMIC)
+ | TUTOR(MOVE_DREAM_EATER)
+ | TUTOR(MOVE_THUNDER_WAVE)
+ | TUTOR(MOVE_SUBSTITUTE)
+ | TUTOR(MOVE_PSYCH_UP)
+ | TUTOR(MOVE_SNORE)
+ | TUTOR(MOVE_ICY_WIND)
+ | TUTOR(MOVE_ENDURE)
+ | TUTOR(MOVE_MUD_SLAP)
+ | TUTOR(MOVE_ICE_PUNCH)
+ | TUTOR(MOVE_SWAGGER)
+ | TUTOR(MOVE_SLEEP_TALK)
+ | TUTOR(MOVE_DEFENSE_CURL)
+ | TUTOR(MOVE_THUNDER_PUNCH)
+ | TUTOR(MOVE_FIRE_PUNCH)),
+
+ [SPECIES_BAGON] = TUTOR_LEARNSET(TUTOR(MOVE_BODY_SLAM)
+ | TUTOR(MOVE_DOUBLE_EDGE)
+ | TUTOR(MOVE_MIMIC)
+ | TUTOR(MOVE_ROCK_SLIDE)
+ | TUTOR(MOVE_SUBSTITUTE)
+ | TUTOR(MOVE_SNORE)
+ | TUTOR(MOVE_ENDURE)
+ | TUTOR(MOVE_MUD_SLAP)
+ | TUTOR(MOVE_SWAGGER)
+ | TUTOR(MOVE_SLEEP_TALK)
+ | TUTOR(MOVE_FURY_CUTTER)),
+
+ [SPECIES_SHELGON] = TUTOR_LEARNSET(TUTOR(MOVE_BODY_SLAM)
+ | TUTOR(MOVE_DOUBLE_EDGE)
+ | TUTOR(MOVE_MIMIC)
+ | TUTOR(MOVE_ROCK_SLIDE)
+ | TUTOR(MOVE_SUBSTITUTE)
+ | TUTOR(MOVE_ROLLOUT)
+ | TUTOR(MOVE_SNORE)
+ | TUTOR(MOVE_ENDURE)
+ | TUTOR(MOVE_MUD_SLAP)
+ | TUTOR(MOVE_SWAGGER)
+ | TUTOR(MOVE_SLEEP_TALK)
+ | TUTOR(MOVE_DEFENSE_CURL)
+ | TUTOR(MOVE_FURY_CUTTER)),
+
+ [SPECIES_SALAMENCE] = TUTOR_LEARNSET(TUTOR(MOVE_BODY_SLAM)
+ | TUTOR(MOVE_DOUBLE_EDGE)
+ | TUTOR(MOVE_MIMIC)
+ | TUTOR(MOVE_ROCK_SLIDE)
+ | TUTOR(MOVE_SUBSTITUTE)
+ | TUTOR(MOVE_ROLLOUT)
+ | TUTOR(MOVE_SNORE)
+ | TUTOR(MOVE_ENDURE)
+ | TUTOR(MOVE_MUD_SLAP)
+ | TUTOR(MOVE_SWAGGER)
+ | TUTOR(MOVE_SLEEP_TALK)
+ | TUTOR(MOVE_SWIFT)
+ | TUTOR(MOVE_DEFENSE_CURL)
+ | TUTOR(MOVE_FURY_CUTTER)),
+
+ [SPECIES_BELDUM] = TUTOR_LEARNSET(0),
+
+ [SPECIES_METANG] = TUTOR_LEARNSET(TUTOR(MOVE_BODY_SLAM)
+ | TUTOR(MOVE_DOUBLE_EDGE)
+ | TUTOR(MOVE_MIMIC)
+ | TUTOR(MOVE_EXPLOSION)
+ | TUTOR(MOVE_ROCK_SLIDE)
+ | TUTOR(MOVE_SUBSTITUTE)
+ | TUTOR(MOVE_DYNAMIC_PUNCH)
+ | TUTOR(MOVE_ROLLOUT)
+ | TUTOR(MOVE_PSYCH_UP)
+ | TUTOR(MOVE_SNORE)
+ | TUTOR(MOVE_ICY_WIND)
+ | TUTOR(MOVE_ENDURE)
+ | TUTOR(MOVE_MUD_SLAP)
+ | TUTOR(MOVE_ICE_PUNCH)
+ | TUTOR(MOVE_SWAGGER)
+ | TUTOR(MOVE_SLEEP_TALK)
+ | TUTOR(MOVE_SWIFT)
+ | TUTOR(MOVE_DEFENSE_CURL)
+ | TUTOR(MOVE_THUNDER_PUNCH)
+ | TUTOR(MOVE_FURY_CUTTER)),
+
+ [SPECIES_METAGROSS] = TUTOR_LEARNSET(TUTOR(MOVE_BODY_SLAM)
+ | TUTOR(MOVE_DOUBLE_EDGE)
+ | TUTOR(MOVE_MIMIC)
+ | TUTOR(MOVE_EXPLOSION)
+ | TUTOR(MOVE_ROCK_SLIDE)
+ | TUTOR(MOVE_SUBSTITUTE)
+ | TUTOR(MOVE_DYNAMIC_PUNCH)
+ | TUTOR(MOVE_ROLLOUT)
+ | TUTOR(MOVE_PSYCH_UP)
+ | TUTOR(MOVE_SNORE)
+ | TUTOR(MOVE_ICY_WIND)
+ | TUTOR(MOVE_ENDURE)
+ | TUTOR(MOVE_MUD_SLAP)
+ | TUTOR(MOVE_ICE_PUNCH)
+ | TUTOR(MOVE_SWAGGER)
+ | TUTOR(MOVE_SLEEP_TALK)
+ | TUTOR(MOVE_SWIFT)
+ | TUTOR(MOVE_DEFENSE_CURL)
+ | TUTOR(MOVE_THUNDER_PUNCH)
+ | TUTOR(MOVE_FURY_CUTTER)),
+
+ [SPECIES_REGIROCK] = TUTOR_LEARNSET(TUTOR(MOVE_MEGA_PUNCH)
+ | TUTOR(MOVE_MEGA_KICK)
+ | TUTOR(MOVE_BODY_SLAM)
+ | TUTOR(MOVE_DOUBLE_EDGE)
+ | TUTOR(MOVE_COUNTER)
+ | TUTOR(MOVE_SEISMIC_TOSS)
+ | TUTOR(MOVE_MIMIC)
+ | TUTOR(MOVE_THUNDER_WAVE)
+ | TUTOR(MOVE_EXPLOSION)
+ | TUTOR(MOVE_ROCK_SLIDE)
+ | TUTOR(MOVE_SUBSTITUTE)
+ | TUTOR(MOVE_DYNAMIC_PUNCH)
+ | TUTOR(MOVE_ROLLOUT)
+ | TUTOR(MOVE_PSYCH_UP)
+ | TUTOR(MOVE_SNORE)
+ | TUTOR(MOVE_ENDURE)
+ | TUTOR(MOVE_MUD_SLAP)
+ | TUTOR(MOVE_ICE_PUNCH)
+ | TUTOR(MOVE_SWAGGER)
+ | TUTOR(MOVE_SLEEP_TALK)
+ | TUTOR(MOVE_DEFENSE_CURL)
+ | TUTOR(MOVE_THUNDER_PUNCH)
+ | TUTOR(MOVE_FIRE_PUNCH)),
+
+ [SPECIES_REGICE] = TUTOR_LEARNSET(TUTOR(MOVE_MEGA_PUNCH)
+ | TUTOR(MOVE_MEGA_KICK)
+ | TUTOR(MOVE_BODY_SLAM)
+ | TUTOR(MOVE_DOUBLE_EDGE)
+ | TUTOR(MOVE_COUNTER)
+ | TUTOR(MOVE_SEISMIC_TOSS)
+ | TUTOR(MOVE_MIMIC)
+ | TUTOR(MOVE_THUNDER_WAVE)
+ | TUTOR(MOVE_EXPLOSION)
+ | TUTOR(MOVE_ROCK_SLIDE)
+ | TUTOR(MOVE_SUBSTITUTE)
+ | TUTOR(MOVE_DYNAMIC_PUNCH)
+ | TUTOR(MOVE_ROLLOUT)
+ | TUTOR(MOVE_PSYCH_UP)
+ | TUTOR(MOVE_SNORE)
+ | TUTOR(MOVE_ICY_WIND)
+ | TUTOR(MOVE_ENDURE)
+ | TUTOR(MOVE_MUD_SLAP)
+ | TUTOR(MOVE_ICE_PUNCH)
+ | TUTOR(MOVE_SWAGGER)
+ | TUTOR(MOVE_SLEEP_TALK)
+ | TUTOR(MOVE_DEFENSE_CURL)
+ | TUTOR(MOVE_THUNDER_PUNCH)),
+
+ [SPECIES_REGISTEEL] = TUTOR_LEARNSET(TUTOR(MOVE_MEGA_PUNCH)
+ | TUTOR(MOVE_MEGA_KICK)
+ | TUTOR(MOVE_BODY_SLAM)
+ | TUTOR(MOVE_DOUBLE_EDGE)
+ | TUTOR(MOVE_COUNTER)
+ | TUTOR(MOVE_SEISMIC_TOSS)
+ | TUTOR(MOVE_MIMIC)
+ | TUTOR(MOVE_THUNDER_WAVE)
+ | TUTOR(MOVE_EXPLOSION)
+ | TUTOR(MOVE_ROCK_SLIDE)
+ | TUTOR(MOVE_SUBSTITUTE)
+ | TUTOR(MOVE_DYNAMIC_PUNCH)
+ | TUTOR(MOVE_ROLLOUT)
+ | TUTOR(MOVE_PSYCH_UP)
+ | TUTOR(MOVE_SNORE)
+ | TUTOR(MOVE_ENDURE)
+ | TUTOR(MOVE_MUD_SLAP)
+ | TUTOR(MOVE_ICE_PUNCH)
+ | TUTOR(MOVE_SWAGGER)
+ | TUTOR(MOVE_SLEEP_TALK)
+ | TUTOR(MOVE_DEFENSE_CURL)
+ | TUTOR(MOVE_THUNDER_PUNCH)),
+
+ [SPECIES_KYOGRE] = TUTOR_LEARNSET(TUTOR(MOVE_BODY_SLAM)
+ | TUTOR(MOVE_DOUBLE_EDGE)
+ | TUTOR(MOVE_MIMIC)
+ | TUTOR(MOVE_THUNDER_WAVE)
+ | TUTOR(MOVE_ROCK_SLIDE)
+ | TUTOR(MOVE_SUBSTITUTE)
+ | TUTOR(MOVE_PSYCH_UP)
+ | TUTOR(MOVE_SNORE)
+ | TUTOR(MOVE_ICY_WIND)
+ | TUTOR(MOVE_ENDURE)
+ | TUTOR(MOVE_MUD_SLAP)
+ | TUTOR(MOVE_SWAGGER)
+ | TUTOR(MOVE_SLEEP_TALK)
+ | TUTOR(MOVE_SWIFT)
+ | TUTOR(MOVE_DEFENSE_CURL)),
+
+ [SPECIES_GROUDON] = TUTOR_LEARNSET(TUTOR(MOVE_MEGA_PUNCH)
+ | TUTOR(MOVE_SWORDS_DANCE)
+ | TUTOR(MOVE_MEGA_KICK)
+ | TUTOR(MOVE_BODY_SLAM)
+ | TUTOR(MOVE_DOUBLE_EDGE)
+ | TUTOR(MOVE_COUNTER)
+ | TUTOR(MOVE_SEISMIC_TOSS)
+ | TUTOR(MOVE_MIMIC)
+ | TUTOR(MOVE_THUNDER_WAVE)
+ | TUTOR(MOVE_ROCK_SLIDE)
+ | TUTOR(MOVE_SUBSTITUTE)
+ | TUTOR(MOVE_DYNAMIC_PUNCH)
+ | TUTOR(MOVE_ROLLOUT)
+ | TUTOR(MOVE_PSYCH_UP)
+ | TUTOR(MOVE_SNORE)
+ | TUTOR(MOVE_ENDURE)
+ | TUTOR(MOVE_MUD_SLAP)
+ | TUTOR(MOVE_SWAGGER)
+ | TUTOR(MOVE_SLEEP_TALK)
+ | TUTOR(MOVE_SWIFT)
+ | TUTOR(MOVE_DEFENSE_CURL)
+ | TUTOR(MOVE_THUNDER_PUNCH)
+ | TUTOR(MOVE_FIRE_PUNCH)
+ | TUTOR(MOVE_FURY_CUTTER)),
+
+ [SPECIES_RAYQUAZA] = TUTOR_LEARNSET(TUTOR(MOVE_BODY_SLAM)
+ | TUTOR(MOVE_DOUBLE_EDGE)
+ | TUTOR(MOVE_MIMIC)
+ | TUTOR(MOVE_THUNDER_WAVE)
+ | TUTOR(MOVE_ROCK_SLIDE)
+ | TUTOR(MOVE_SUBSTITUTE)
+ | TUTOR(MOVE_PSYCH_UP)
+ | TUTOR(MOVE_SNORE)
+ | TUTOR(MOVE_ICY_WIND)
+ | TUTOR(MOVE_ENDURE)
+ | TUTOR(MOVE_MUD_SLAP)
+ | TUTOR(MOVE_SWAGGER)
+ | TUTOR(MOVE_SLEEP_TALK)
+ | TUTOR(MOVE_SWIFT)
+ | TUTOR(MOVE_FURY_CUTTER)),
+
+ [SPECIES_LATIAS] = TUTOR_LEARNSET(TUTOR(MOVE_BODY_SLAM)
+ | TUTOR(MOVE_DOUBLE_EDGE)
+ | TUTOR(MOVE_MIMIC)
+ | TUTOR(MOVE_DREAM_EATER)
+ | TUTOR(MOVE_THUNDER_WAVE)
+ | TUTOR(MOVE_SUBSTITUTE)
+ | TUTOR(MOVE_PSYCH_UP)
+ | TUTOR(MOVE_SNORE)
+ | TUTOR(MOVE_ICY_WIND)
+ | TUTOR(MOVE_ENDURE)
+ | TUTOR(MOVE_MUD_SLAP)
+ | TUTOR(MOVE_SWAGGER)
+ | TUTOR(MOVE_SLEEP_TALK)
+ | TUTOR(MOVE_SWIFT)
+ | TUTOR(MOVE_FURY_CUTTER)),
+
+ [SPECIES_LATIOS] = TUTOR_LEARNSET(TUTOR(MOVE_BODY_SLAM)
+ | TUTOR(MOVE_DOUBLE_EDGE)
+ | TUTOR(MOVE_MIMIC)
+ | TUTOR(MOVE_DREAM_EATER)
+ | TUTOR(MOVE_THUNDER_WAVE)
+ | TUTOR(MOVE_SUBSTITUTE)
+ | TUTOR(MOVE_PSYCH_UP)
+ | TUTOR(MOVE_SNORE)
+ | TUTOR(MOVE_ICY_WIND)
+ | TUTOR(MOVE_ENDURE)
+ | TUTOR(MOVE_MUD_SLAP)
+ | TUTOR(MOVE_SWAGGER)
+ | TUTOR(MOVE_SLEEP_TALK)
+ | TUTOR(MOVE_SWIFT)
+ | TUTOR(MOVE_FURY_CUTTER)),
+
+ [SPECIES_JIRACHI] = TUTOR_LEARNSET(TUTOR(MOVE_BODY_SLAM)
+ | TUTOR(MOVE_DOUBLE_EDGE)
+ | TUTOR(MOVE_MIMIC)
+ | TUTOR(MOVE_METRONOME)
+ | TUTOR(MOVE_DREAM_EATER)
+ | TUTOR(MOVE_THUNDER_WAVE)
+ | TUTOR(MOVE_SUBSTITUTE)
+ | TUTOR(MOVE_DYNAMIC_PUNCH)
+ | TUTOR(MOVE_PSYCH_UP)
+ | TUTOR(MOVE_SNORE)
+ | TUTOR(MOVE_ICY_WIND)
+ | TUTOR(MOVE_ENDURE)
+ | TUTOR(MOVE_MUD_SLAP)
+ | TUTOR(MOVE_ICE_PUNCH)
+ | TUTOR(MOVE_SWAGGER)
+ | TUTOR(MOVE_SLEEP_TALK)
+ | TUTOR(MOVE_SWIFT)
+ | TUTOR(MOVE_DEFENSE_CURL)
+ | TUTOR(MOVE_THUNDER_PUNCH)
+ | TUTOR(MOVE_FIRE_PUNCH)),
+
+ [SPECIES_DEOXYS] = TUTOR_LEARNSET(TUTOR(MOVE_MEGA_PUNCH)
+ | TUTOR(MOVE_MEGA_KICK)
+ | TUTOR(MOVE_BODY_SLAM)
+ | TUTOR(MOVE_DOUBLE_EDGE)
+ | TUTOR(MOVE_COUNTER)
+ | TUTOR(MOVE_SEISMIC_TOSS)
+ | TUTOR(MOVE_MIMIC)
+ | TUTOR(MOVE_DREAM_EATER)
+ | TUTOR(MOVE_THUNDER_WAVE)
+ | TUTOR(MOVE_ROCK_SLIDE)
+ | TUTOR(MOVE_SUBSTITUTE)
+ | TUTOR(MOVE_DYNAMIC_PUNCH)
+ | TUTOR(MOVE_PSYCH_UP)
+ | TUTOR(MOVE_SNORE)
+ | TUTOR(MOVE_ICY_WIND)
+ | TUTOR(MOVE_ENDURE)
+ | TUTOR(MOVE_MUD_SLAP)
+ | TUTOR(MOVE_ICE_PUNCH)
+ | TUTOR(MOVE_SWAGGER)
+ | TUTOR(MOVE_SLEEP_TALK)
+ | TUTOR(MOVE_SWIFT)
+ | TUTOR(MOVE_THUNDER_PUNCH)
+ | TUTOR(MOVE_FIRE_PUNCH)),
+
+ [SPECIES_CHIMECHO] = TUTOR_LEARNSET(TUTOR(MOVE_DOUBLE_EDGE)
+ | TUTOR(MOVE_MIMIC)
+ | TUTOR(MOVE_DREAM_EATER)
+ | TUTOR(MOVE_SUBSTITUTE)
+ | TUTOR(MOVE_ROLLOUT)
+ | TUTOR(MOVE_PSYCH_UP)
+ | TUTOR(MOVE_SNORE)
+ | TUTOR(MOVE_ICY_WIND)
+ | TUTOR(MOVE_ENDURE)
+ | TUTOR(MOVE_SWAGGER)
+ | TUTOR(MOVE_SLEEP_TALK)
+ | TUTOR(MOVE_DEFENSE_CURL)),
+
+};
+
diff --git a/src/field_effect.c b/src/field_effect.c
index e1850d001..4e6f81484 100644
--- a/src/field_effect.c
+++ b/src/field_effect.c
@@ -9,7 +9,7 @@
#include "field_screen_effect.h"
#include "field_weather.h"
#include "fieldmap.h"
-#include "fldeff_groundshake.h"
+#include "fldeff.h"
#include "gpu_regs.h"
#include "main.h"
#include "menu.h"
diff --git a/src/field_player_avatar.c b/src/field_player_avatar.c
index 7a6e16dd3..f14ac8329 100644
--- a/src/field_player_avatar.c
+++ b/src/field_player_avatar.c
@@ -1310,7 +1310,7 @@ bool8 PartyHasMonWithSurf(void)
{
if (GetMonData(&gPlayerParty[i], MON_DATA_SPECIES) == SPECIES_NONE)
break;
- if (pokemon_has_move(&gPlayerParty[i], MOVE_SURF))
+ if (MonKnowsMove(&gPlayerParty[i], MOVE_SURF))
return TRUE;
}
}
diff --git a/src/field_specials.c b/src/field_specials.c
index 64ff46ce2..242dcfdb3 100644
--- a/src/field_specials.c
+++ b/src/field_specials.c
@@ -3193,7 +3193,7 @@ void sub_813AEB4(void)
i = 0;
do
{
- if (gUnknown_0861500C[i] == gUnknown_085B320C[temp2])
+ if (gTutorMoves[i] == gUnknown_085B320C[temp2])
{
gSpecialVar_0x8005 = i;
break;
@@ -3206,7 +3206,7 @@ void sub_813AEB4(void)
i = 0;
do
{
- if (gUnknown_0861500C[i] == gUnknown_085B31F8[temp2])
+ if (gTutorMoves[i] == gUnknown_085B31F8[temp2])
{
gSpecialVar_0x8005 = i;
break;
diff --git a/src/fldeff_cut.c b/src/fldeff_cut.c
index 6a310efd2..60887a5cc 100644
--- a/src/fldeff_cut.c
+++ b/src/fldeff_cut.c
@@ -5,12 +5,11 @@
#include "field_effect.h"
#include "field_player_avatar.h"
#include "fieldmap.h"
-#include "fldeff_cut.h"
+#include "fldeff.h"
#include "alloc.h"
#include "metatile_behavior.h"
#include "overworld.h"
#include "party_menu.h"
-#include "rom6.h"
#include "script.h"
#include "sound.h"
#include "sprite.h"
diff --git a/src/fldeff_dig.c b/src/fldeff_dig.c
new file mode 100644
index 000000000..b39d25182
--- /dev/null
+++ b/src/fldeff_dig.c
@@ -0,0 +1,63 @@
+#include "global.h"
+#include "braille_puzzles.h"
+#include "field_effect.h"
+#include "field_player_avatar.h"
+#include "fldeff.h"
+#include "item_use.h"
+#include "overworld.h"
+#include "party_menu.h"
+#include "sprite.h"
+#include "constants/field_effects.h"
+
+// static functions
+static void hm2_dig(void);
+static void sub_8135780(void);
+
+// text
+bool8 SetUpFieldMove_Dig(void)
+{
+ if (CanUseEscapeRopeOnCurrMap() == TRUE)
+ {
+ gFieldCallback2 = FieldCallback_PrepareFadeInFromMenu;
+ gPostMenuFieldCallback = hm2_dig;
+ return TRUE;
+ }
+ else
+ {
+ return FALSE;
+ }
+}
+
+static void hm2_dig(void)
+{
+ Overworld_ResetStateAfterDigEscRope();
+ FieldEffectStart(FLDEFF_USE_DIG);
+ gFieldEffectArguments[0] = GetCursorSelectionMonId();
+}
+
+bool8 FldEff_UseDig(void)
+{
+ u8 taskId = oei_task_add();
+
+ gTasks[taskId].data[8] = (u32)sub_8135780 >> 16;
+ gTasks[taskId].data[9] = (u32)sub_8135780;
+ if (!ShouldDoBrailleDigEffect())
+ SetPlayerAvatarTransitionFlags(PLAYER_AVATAR_FLAG_ON_FOOT);
+ return FALSE;
+}
+
+static void sub_8135780(void)
+{
+ u8 taskId;
+
+ FieldEffectActiveListRemove(FLDEFF_USE_DIG);
+ if (ShouldDoBrailleDigEffect())
+ {
+ DoBrailleDigEffect();
+ }
+ else
+ {
+ taskId = CreateTask(task08_080A1C44, 8);
+ gTasks[taskId].data[0] = 0;
+ }
+}
diff --git a/src/fldeff_escalator.c b/src/fldeff_escalator.c
index 7d3e07123..3d00fb162 100644
--- a/src/fldeff_escalator.c
+++ b/src/fldeff_escalator.c
@@ -2,18 +2,19 @@
#include "field_camera.h"
#include "field_player_avatar.h"
#include "fieldmap.h"
+#include "fldeff.h"
#include "task.h"
static EWRAM_DATA u8 sEscalatorAnim_TaskId = 0;
-void sub_80E12E8(u8 taskId, const s16 *list, u16 c)
+static void sub_80E12E8(u8 taskId, const s16 *list, u16 c)
{
s16 r5 = gTasks[taskId].data[4] - 1;
s16 r3 = gTasks[taskId].data[5] - 1;
s16 r4 = gTasks[taskId].data[1];
s16 y;
s16 x;
-
+
if (gTasks[taskId].data[2] == 0)
{
for (y = 0; y < 3; y++)
@@ -21,7 +22,7 @@ void sub_80E12E8(u8 taskId, const s16 *list, u16 c)
for (x = 0; x < 3; x++)
{
s16 metatileId = MapGridGetMetatileIdAt(r5 + x, r3 + y);
-
+
if (list[r4] == metatileId)
{
if (r4 != 2)
@@ -39,7 +40,7 @@ void sub_80E12E8(u8 taskId, const s16 *list, u16 c)
for (x = 0; x < 3; x++)
{
s16 metatileId = MapGridGetMetatileIdAt(r5 + x, r3 + y);
-
+
if (list[2 - r4] == metatileId)
{
if (r4 != 2)
@@ -60,7 +61,7 @@ static const u16 gUnknown_08589AD2[] = {0x2A0, 0x2A2, 0x2A4};
static const u16 gUnknown_08589AD8[] = {0x2A1, 0x2A3, 0x2A5};
static const u16 gUnknown_08589ADE[] = {0x2A8, 0x2AA, 0x2AC};
-void sub_80E1444(u8 taskId)
+static void sub_80E1444(u8 taskId)
{
s16 *data = gTasks[taskId].data;
@@ -100,7 +101,7 @@ void sub_80E1444(u8 taskId)
}
}
-u8 sub_80E150C(u16 var)
+static u8 sub_80E150C(u16 var)
{
u8 taskId = CreateTask(sub_80E1444, 0);
s16 *data = gTasks[taskId].data;
diff --git a/src/fldeff_flash.c b/src/fldeff_flash.c
index 8862caa9f..69d198c84 100644
--- a/src/fldeff_flash.c
+++ b/src/fldeff_flash.c
@@ -3,12 +3,12 @@
#include "event_data.h"
#include "event_scripts.h"
#include "field_effect.h"
+#include "fldeff.h"
#include "gpu_regs.h"
#include "main.h"
#include "overworld.h"
#include "palette.h"
#include "party_menu.h"
-#include "rom6.h"
#include "script.h"
#include "sound.h"
#include "sprite.h"
diff --git a/src/fldeff_groundshake.c b/src/fldeff_groundshake.c
index 44ffd60f9..35e0e82ab 100644
--- a/src/fldeff_groundshake.c
+++ b/src/fldeff_groundshake.c
@@ -2,6 +2,7 @@
#include "event_data.h"
#include "event_object_movement.h"
#include "field_camera.h"
+#include "fldeff.h"
#include "alloc.h"
#include "random.h"
#include "roulette_util.h"
@@ -128,10 +129,11 @@ bool8 sub_81BE66C(void)
{
if (!(gSaveBlock1Ptr->location.mapGroup == 0x0 && gSaveBlock1Ptr->location.mapNum == 0x1A))
return 0;
- return FlagGet(FLAG_0x14E);
+ else
+ return FlagGet(FLAG_0x14E);
}
-void sub_81BE698(u8 taskId)
+static void sub_81BE698(u8 taskId)
{
sub_8151E50(&(gUnknown_0203CF18->unk4));
}
@@ -143,11 +145,12 @@ void sub_81BE6AC(void)
void sub_81BE6B8(void)
{
- if(gUnknown_0203CF18 != NULL)
+ if (gUnknown_0203CF18 != NULL)
{
gUnknown_0203CF18 = NULL;
return;
}
+
if(!(gSaveBlock1Ptr->location.mapGroup == 0x0 && gSaveBlock1Ptr->location.mapNum == 0x1A) || !FlagGet(FLAG_0x14E))
return;
diff --git a/src/fldeff_misc.c b/src/fldeff_misc.c
index d9fe38197..9d77383ae 100644
--- a/src/fldeff_misc.c
+++ b/src/fldeff_misc.c
@@ -4,13 +4,13 @@
#include "script.h"
#include "sound.h"
#include "task.h"
-#include "rom6.h"
#include "strings.h"
#include "party_menu.h"
#include "fieldmap.h"
#include "field_effect.h"
#include "field_camera.h"
#include "field_player_avatar.h"
+#include "fldeff.h"
#include "fldeff_misc.h"
#include "secret_base.h"
#include "event_data.h"
diff --git a/src/rom6.c b/src/fldeff_rocksmash.c
index 8043730d2..9181b5532 100644
--- a/src/rom6.c
+++ b/src/fldeff_rocksmash.c
@@ -5,10 +5,10 @@
#include "event_scripts.h"
#include "field_effect.h"
#include "field_player_avatar.h"
+#include "fldeff.h"
#include "item_use.h"
#include "overworld.h"
#include "party_menu.h"
-#include "rom6.h"
#include "script.h"
#include "sound.h"
#include "sprite.h"
@@ -26,8 +26,6 @@ static void sub_813552C(u8 taskId);
static void sub_813561C(u8 taskId);
static void sub_81356C4(void);
static void sub_8135714(void);
-static void hm2_dig(void);
-static void sub_8135780(void);
// extern RAM loc
extern struct MapPosition gPlayerFacingPosition;
@@ -162,51 +160,3 @@ static void sub_8135714(void)
FieldEffectActiveListRemove(FLDEFF_USE_ROCK_SMASH);
EnableBothScriptContexts();
}
-
-bool8 SetUpFieldMove_Dig(void)
-{
- if (CanUseEscapeRopeOnCurrMap() == TRUE)
- {
- gFieldCallback2 = FieldCallback_PrepareFadeInFromMenu;
- gPostMenuFieldCallback = hm2_dig;
- return TRUE;
- }
- else
- {
- return FALSE;
- }
-}
-
-static void hm2_dig(void)
-{
- Overworld_ResetStateAfterDigEscRope();
- FieldEffectStart(FLDEFF_USE_DIG);
- gFieldEffectArguments[0] = GetCursorSelectionMonId();
-}
-
-bool8 FldEff_UseDig(void)
-{
- u8 taskId = oei_task_add();
-
- gTasks[taskId].data[8] = (u32)sub_8135780 >> 16;
- gTasks[taskId].data[9] = (u32)sub_8135780;
- if (!ShouldDoBrailleDigEffect())
- SetPlayerAvatarTransitionFlags(PLAYER_AVATAR_FLAG_ON_FOOT);
- return FALSE;
-}
-
-static void sub_8135780(void)
-{
- u8 taskId;
-
- FieldEffectActiveListRemove(FLDEFF_USE_DIG);
- if (ShouldDoBrailleDigEffect())
- {
- DoBrailleDigEffect();
- }
- else
- {
- taskId = CreateTask(task08_080A1C44, 8);
- gTasks[taskId].data[0] = 0;
- }
-}
diff --git a/src/fldeff_strength.c b/src/fldeff_strength.c
index f796ecea6..c57ab8cdc 100644
--- a/src/fldeff_strength.c
+++ b/src/fldeff_strength.c
@@ -2,8 +2,8 @@
#include "event_data.h"
#include "event_scripts.h"
#include "field_effect.h"
+#include "fldeff.h"
#include "party_menu.h"
-#include "rom6.h"
#include "script.h"
#include "string_util.h"
#include "task.h"
diff --git a/src/fldeff_sweetscent.c b/src/fldeff_sweetscent.c
index cd8fa400d..2363e8162 100644
--- a/src/fldeff_sweetscent.c
+++ b/src/fldeff_sweetscent.c
@@ -5,9 +5,9 @@
#include "field_player_avatar.h"
#include "field_screen_effect.h"
#include "field_weather.h"
+#include "fldeff.h"
#include "palette.h"
#include "party_menu.h"
-#include "rom6.h"
#include "script.h"
#include "sound.h"
#include "sprite.h"
@@ -21,8 +21,6 @@ static void FieldCallback_SweetScent(void);
static void StartSweetScentFieldEffect(void);
static void TrySweetScentEncounter(u8 taskId);
static void FailSweetScentEncounter(u8 taskId);
-void sub_81BE6B8(void);
-void sub_81BE72C(void);
bool8 SetUpFieldMove_SweetScent(void)
{
diff --git a/src/fldeff_teleport.c b/src/fldeff_teleport.c
index 8562908bd..cbf8ee6cc 100644
--- a/src/fldeff_teleport.c
+++ b/src/fldeff_teleport.c
@@ -1,9 +1,9 @@
#include "global.h"
#include "field_effect.h"
#include "field_player_avatar.h"
+#include "fldeff.h"
#include "party_menu.h"
#include "overworld.h"
-#include "rom6.h"
#include "task.h"
#include "constants/field_effects.h"
diff --git a/src/party_menu.c b/src/party_menu.c
index ff6282f35..ac26caa5d 100755
--- a/src/party_menu.c
+++ b/src/party_menu.c
@@ -22,7 +22,8 @@
#include "field_specials.h"
#include "field_weather.h"
#include "fieldmap.h"
-#include "fldeff_softboiled.h"
+#include "fldeff.h"
+#include "fldeff_misc.h"
#include "frontier_util.h"
#include "gpu_regs.h"
#include "graphics.h"
@@ -72,14 +73,16 @@
#include "constants/species.h"
#include "constants/vars.h"
-enum {
+enum
+{
CAN_LEARN_MOVE,
CANNOT_LEARN_MOVE,
ALREADY_KNOWS_MOVE,
CANNOT_LEARN_MOVE_IS_EGG
};
-struct Unk_Rodata1 {
+struct Unk_Rodata1
+{
void (*unk0)(u8, u8, u8, u8, u8, u8);
u8 unk4[24];
u8 unk1C;
@@ -88,7 +91,8 @@ struct Unk_Rodata1 {
u8 unk1F;
};
-struct Struct203CEC4 {
+struct Struct203CEC4
+{
TaskFunc unk0;
MainCallback exitCallback;
u32 unk8_0:1;
@@ -104,9 +108,10 @@ struct Struct203CEC4 {
s16 data[16];
};
-struct Struct203CEDC {
- struct Unk_Rodata1 *unk0;
- u8 *unk4;
+struct Struct203CEDC
+{
+ const struct Unk_Rodata1 *unk0;
+ const u8 *unk4;
u8 windowId;
u8 unk9;
u8 unkA;
@@ -114,16 +119,6 @@ struct Struct203CEDC {
u8 unkC;
};
-struct Struct8615C08 {
- const u8 *textPtr;
- TaskFunc func;
-};
-
-struct Struct8615D9C {
- bool8 (*fieldMoveFunc)(void);
- u8 msgID;
-};
-
static EWRAM_DATA struct Struct203CEC4 *gUnknown_0203CEC4 = NULL;
EWRAM_DATA struct Struct203CEC8 gUnknown_0203CEC8 = {0};
static EWRAM_DATA struct Struct203CEDC *gUnknown_0203CEDC = NULL;
@@ -139,86 +134,6 @@ static EWRAM_DATA u16 gUnknown_0203CEFC = 0;
static EWRAM_DATA u16 gUnknown_0203CEFE = 0; // unused
EWRAM_DATA u8 gUnknown_0203CF00[3] = {0};
-// BELOW TO BE CONVERTED TO C
-
-extern u32 gUnknown_08615048[]; // tutor compatibility table
-extern struct BgTemplate gUnknown_086156B8[];
-extern struct Unk_Rodata1 gUnknown_086156C4[2];
-// extern struct Unk_Rodata1 gUnknown_086156E4;
-extern u8 gUnknown_08615704[][6][8];
-extern u8 gUnknown_086157C4[];
-extern u8 gUnknown_086157E0[];
-extern const u8 gUnknown_086157FC[][3];
-extern struct WindowTemplate gUnknown_08615810[];
-extern struct WindowTemplate gUnknown_08615850[];
-extern struct WindowTemplate gUnknown_086158D0[];
-extern struct WindowTemplate gUnknown_08615890[];
-extern struct WindowTemplate gUnknown_08615908;
-extern struct WindowTemplate gUnknown_08615910;
-extern struct WindowTemplate gUnknown_08615918;
-extern struct WindowTemplate gUnknown_08615920;
-extern struct WindowTemplate gUnknown_08615928;
-extern struct WindowTemplate gUnknown_08615930;
-extern struct WindowTemplate gUnknown_08615938;
-extern struct WindowTemplate gUnknown_08615940;
-extern struct WindowTemplate gUnknown_08615948;
-extern struct WindowTemplate gUnknown_08615950;
-extern struct WindowTemplate gUnknown_08615958;
-extern struct WindowTemplate gUnknown_08615960;
-extern struct WindowTemplate gUnknown_08615968;
-extern struct WindowTemplate gUnknown_08615970;
-extern u8 gUnknown_08615988[];
-extern u8 gUnknown_086159CE[];
-extern u8 gUnknown_08615A14[];
-extern u8 gUnknown_08615A4A[];
-extern u8 gUnknown_08615A80[];
-extern u8 gUnknown_08615AB6[];
-extern u8 gUnknown_08615AB8[];
-extern u8 gUnknown_08615ABA[];
-extern u8 gUnknown_08615ABD[];
-extern u8 gUnknown_08615AC0[];
-extern u8 gUnknown_08615AC3[];
-extern u8 gUnknown_08615AC5[];
-extern u8 gUnknown_08615AC7[];
-extern u8 gUnknown_08615AC9[];
-extern u8 gUnknown_08615ACB[];
-extern u8 gUnknown_08615ACD[];
-extern u8 gUnknown_08615AD0[];
-extern u8 gUnknown_08615AD3[];
-extern u8 gUnknown_08615AD6[];
-extern u8 gUnknown_08615AD9[];
-extern u8 gUnknown_08615ADC[];
-extern u8 gUnknown_08615ADF[];
-extern u8 gUnknown_08615AE2[];
-extern u8 gUnknown_08615AE5[];
-extern u8 gUnknown_08615AE8[];
-extern u8 gUnknown_08615AEB[];
-extern u8 gUnknown_08615AEE[];
-extern u8 gUnknown_08615AF1[];
-extern const u8 *gUnknown_08615AF4[];
-extern const u8 *gUnknown_08615B60[];
-extern struct Struct8615C08 gUnknown_08615C08[];
-extern u8 *gUnknown_08615D38[];
-extern u8 gUnknown_08615D70[];
-extern const u16 gUnknown_08615D7E[];
-extern const struct Struct8615D9C gUnknown_08615D9C[];
-extern const u8 *gUnknown_08615E0C[];
-extern const struct SpriteSheet gUnknown_08615EB0;
-extern const struct SpritePalette gUnknown_08615EB8;
-extern struct SpriteTemplate gSpriteTemplate_8615EC0;
-extern const struct CompressedSpriteSheet gUnknown_08615EF8;
-extern const struct CompressedSpritePalette gUnknown_08615F00;
-extern struct SpriteTemplate gSpriteTemplate_8615F08;
-extern const struct CompressedSpriteSheet gUnknown_08615F70;
-extern struct SpriteTemplate gSpriteTemplate_8615F78;
-extern const struct CompressedSpriteSheet gUnknown_08615FF8;
-extern const struct CompressedSpritePalette gUnknown_08616000;
-extern struct SpriteTemplate gSpriteTemplate_8616008;
-extern u8 gUnknown_08616020[];
-extern u16 gUnknown_08616040[];
-
-// ABOVE TO BE CONVERTED TO C
-
extern void (*gUnknown_03006328)(u8, TaskFunc);
static void reset_brm(void);
@@ -260,8 +175,8 @@ static u8 sub_81B8830(void);
static bool8 GetBattleEntryEligibility(struct Pokemon *);
static bool8 sub_81B218C(u8);
static void DisplayPartyPokemonSelectToTeachMove(u8, u16, u8);
-static u8 CanPartyPokemonLearnTMTutor(struct Pokemon *, u16, u8);
-static void DisplayPartyPokemonBarDetail(u8, const u8*, u8, u8*);
+static u8 CanMonLearnTMTutor(struct Pokemon *, u16, u8);
+static void DisplayPartyPokemonBarDetail(u8, const u8*, u8, const u8*);
static void DisplayPartyPokemonLevel(u8, struct Struct203CEDC *);
static void DisplayPartyPokemonGender(u8, u16, u8*, struct Struct203CEDC *);
static void DisplayPartyPokemonHP(u16, struct Struct203CEDC *);
@@ -320,14 +235,14 @@ static bool16 sub_81B2134(struct Pokemon*);
static bool16 sub_81B2164(struct Pokemon*);
static void sub_81B2248(u8);
static void sub_81B227C(u8);
-static bool8 sub_81B2370(u16, u8);
-static u16 sub_81B2360(u8);
+static bool8 CanLearnTutorMove(u16, u8);
+static u16 GetTutorMove(u8);
static bool8 sub_81B314C(void);
static void sub_81B3414(struct Pokemon*, u8);
static u8 sub_81B8A2C(struct Pokemon*);
static u8 sub_81B856C(s8);
static void sub_81B469C(u8);
-static void sub_81B3730(u8);
+static void HandleMenuInput(u8);
static void sub_81B3828(void);
static void pokemon_change_order(void);
static void sub_81B3894(void);
@@ -444,7 +359,1177 @@ static void sub_81B953C(u8);
static void sub_81B9588(void);
static void sub_81B9640(u8);
static void sub_81B97DC(struct Pokemon*, u8, u8);
+static void BlitBitmapToPartyWindow_Default1(u8 windowId, u8 x, u8 y, u8 width, u8 height, u8 f);
+static void BlitBitmapToPartyWindow_Default2(u8 windowId, u8 x, u8 y, u8 width, u8 height, u8 f);
+static void CursorCb_Summary(u8 taskId);
+static void CursorCb_Switch(u8 taskId);
+static void CursorCb_Cancel1(u8 taskId);
+static void CursorCb_Item(u8 taskId);
+static void CursorCb_Give(u8 taskId);
+static void CursorCb_TakeItem(u8 taskId);
+static void CursorCb_Mail(u8 taskId);
+static void CursorCb_Read(u8 taskId);
+static void CursorCb_TakeMail(u8 taskId);
+static void CursorCb_Cancel2(u8 taskId);
+static void CursorCb_SendMon(u8 taskId);
+static void CursorCb_Enter(u8 taskId);
+static void CursorCb_NoEntry(u8 taskId);
+static void CursorCb_Store(u8 taskId);
+static void CursorCb_Register(u8 taskId);
+static void CursorCb_Trade1(u8 taskId);
+static void CursorCb_Trade2(u8 taskId);
+static void CursorCb_Toss(u8 taskId);
+static void CursorCb_FieldMove(u8 taskId);
+static bool8 SetUpFieldMove_Surf(void);
+static bool8 SetUpFieldMove_Fly(void);
+static bool8 SetUpFieldMove_Waterfall(void);
+static bool8 SetUpFieldMove_Dive(void);
+
+// static const data
+#include "data/pokemon/tutor_learnsets.h"
+
+static const struct BgTemplate gUnknown_086156B8[] =
+{
+ {
+ .bg = 0,
+ .charBaseIndex = 0,
+ .mapBaseIndex = 31,
+ .screenSize = 0,
+ .paletteMode = 0,
+ .priority = 1,
+ .baseTile = 0
+ },
+ {
+ .bg = 1,
+ .charBaseIndex = 0,
+ .mapBaseIndex = 30,
+ .screenSize = 0,
+ .paletteMode = 0,
+ .priority = 2,
+ .baseTile = 0
+ },
+ {
+ .bg = 2,
+ .charBaseIndex = 0,
+ .mapBaseIndex = 28,
+ .screenSize = 1,
+ .paletteMode = 0,
+ .priority = 0,
+ .baseTile = 0
+ },
+};
+
+static const struct Unk_Rodata1 gUnknown_086156C4[] =
+{
+ {BlitBitmapToPartyWindow_Default1, {0x18, 0xB, 0x28, 0xD, 0x20, 0x14, 0x20, 8, 0x40, 0x14, 8, 8, 0x26, 0x25, 0x18, 8, 0x35, 0x25, 0x18, 8, 0x18, 0x23, 0x30, 3}, 0xC, 0x22, 0x40, 0x10},
+ {BlitBitmapToPartyWindow_Default2, {0x16, 3, 0x28, 0xD, 0x1E, 0xC, 0x20, 8, 0x3E, 0xC, 8, 8, 0x66, 0xC, 0x18, 8, 0x75, 0xC, 0x18, 8, 0x58, 0xA, 0x30, 3}, 0x4D, 4, 0x40, 0x10},
+};
+
+static const u8 gUnknown_08615704[][6][8] =
+{
+ {
+ {16, 40, 20, 50, 50, 52, 16, 34},
+ {104, 18, 108, 28, 136, 27, 102, 25},
+ {104, 42, 108, 52, 136, 51, 102, 49},
+ {104, 66, 108, 76, 136, 75, 102, 73},
+ {104, 90, 108, 100, 136, 99, 102, 97},
+ {104, 114, 108, 124, 136, 123, 102, 121},
+ },
+ {
+ {16, 24, 20, 34, 50, 36, 16, 18},
+ {16, 80, 20, 90, 50, 92, 16, 74},
+ {104, 18, 108, 28, 136, 27, 102, 25},
+ {104, 50, 108, 60, 136, 59, 102, 57},
+ {104, 82, 108, 92, 136, 91, 102, 89},
+ {104, 114, 108, 124, 136, 123, 102, 121},
+ },
+ {
+ {16, 24, 20, 34, 50, 36, 16, 18},
+ {16, 80, 20, 90, 50, 92, 16, 74},
+ {104, 26, 106, 36, 136, 35, 102, 33},
+ {104, 50, 106, 60, 136, 59, 102, 57},
+ {104, 82, 106, 92, 136, 91, 102, 89},
+ {104, 106, 106, 116, 136, 115, 102, 113},
+ },
+ {
+ {16, 32, 20, 42, 50, 44, 16, 26},
+ {104, 34, 106, 44, 136, 43, 102, 41},
+ {104, 58, 106, 68, 136, 67, 102, 65},
+ {16, 104, 20, 114, 50, 116, 16, 98},
+ {104, 106, 106, 116, 136, 115, 102, 113},
+ {104, 130, 106, 140, 136, 139, 102, 137},
+ },
+};
+
+static const u32 gUnknown_086157C4[] = INCBIN_U32("graphics/interface/unknown_6157C4.bin");
+static const u32 gUnknown_086157E0[] = INCBIN_U32("graphics/interface/unknown_6157E0.bin");
+
+static const u8 gUnknown_086157FC[][3] =
+{
+ {0, 3, 2},
+ {0, 1, 6},
+ {0, 11, 12},
+ {1, 2, 3},
+ {1, 8, 9},
+ {0, 1, 2},
+};
+
+static const struct WindowTemplate gUnknown_08615810[] =
+{
+ {
+ .bg = 0,
+ .tilemapLeft = 1,
+ .tilemapTop = 3,
+ .width = 10,
+ .height = 7,
+ .paletteNum = 3,
+ .baseBlock = 0x63,
+ },
+ {
+ .bg = 0,
+ .tilemapLeft = 12,
+ .tilemapTop = 1,
+ .width = 18,
+ .height = 3,
+ .paletteNum = 4,
+ .baseBlock = 0xA9,
+ },
+ {
+ .bg = 0,
+ .tilemapLeft = 12,
+ .tilemapTop = 4,
+ .width = 18,
+ .height = 3,
+ .paletteNum = 5,
+ .baseBlock = 0xDF,
+ },
+ {
+ .bg = 0,
+ .tilemapLeft = 12,
+ .tilemapTop = 7,
+ .width = 18,
+ .height = 3,
+ .paletteNum = 6,
+ .baseBlock = 0x115,
+ },
+ {
+ .bg = 0,
+ .tilemapLeft = 12,
+ .tilemapTop = 10,
+ .width = 18,
+ .height = 3,
+ .paletteNum = 7,
+ .baseBlock = 0x14B,
+ },
+ {
+ .bg = 0,
+ .tilemapLeft = 12,
+ .tilemapTop = 13,
+ .width = 18,
+ .height = 3,
+ .paletteNum = 8,
+ .baseBlock = 0x181,
+ },
+ {
+ .bg = 2,
+ .tilemapLeft = 1,
+ .tilemapTop = 15,
+ .width = 28,
+ .height = 4,
+ .paletteNum = 14,
+ .baseBlock = 0x1DF,
+ },
+ DUMMY_WIN_TEMPLATE
+};
+
+static const struct WindowTemplate gUnknown_08615850[] =
+{
+ {
+ .bg = 0,
+ .tilemapLeft = 1,
+ .tilemapTop = 1,
+ .width = 10,
+ .height = 7,
+ .paletteNum = 3,
+ .baseBlock = 0x63,
+ },
+ {
+ .bg = 0,
+ .tilemapLeft = 1,
+ .tilemapTop = 8,
+ .width = 10,
+ .height = 7,
+ .paletteNum = 4,
+ .baseBlock = 0xA9,
+ },
+ {
+ .bg = 0,
+ .tilemapLeft = 12,
+ .tilemapTop = 1,
+ .width = 18,
+ .height = 3,
+ .paletteNum = 5,
+ .baseBlock = 0xEF,
+ },
+ {
+ .bg = 0,
+ .tilemapLeft = 12,
+ .tilemapTop = 5,
+ .width = 18,
+ .height = 3,
+ .paletteNum = 6,
+ .baseBlock = 0x125,
+ },
+ {
+ .bg = 0,
+ .tilemapLeft = 12,
+ .tilemapTop = 9,
+ .width = 18,
+ .height = 3,
+ .paletteNum = 7,
+ .baseBlock = 0x15B,
+ },
+ {
+ .bg = 0,
+ .tilemapLeft = 12,
+ .tilemapTop = 13,
+ .width = 18,
+ .height = 3,
+ .paletteNum = 8,
+ .baseBlock = 0x191,
+ },
+ {
+ .bg = 2,
+ .tilemapLeft = 1,
+ .tilemapTop = 15,
+ .width = 28,
+ .height = 4,
+ .paletteNum = 14,
+ .baseBlock = 0x1DF,
+ },
+ DUMMY_WIN_TEMPLATE
+};
+
+static const struct WindowTemplate gUnknown_08615890[] =
+{
+ {
+ .bg = 0,
+ .tilemapLeft = 1,
+ .tilemapTop = 1,
+ .width = 10,
+ .height = 7,
+ .paletteNum = 3,
+ .baseBlock = 0x63,
+ },
+ {
+ .bg = 0,
+ .tilemapLeft = 1,
+ .tilemapTop = 8,
+ .width = 10,
+ .height = 7,
+ .paletteNum = 4,
+ .baseBlock = 0xA9,
+ },
+ {
+ .bg = 0,
+ .tilemapLeft = 12,
+ .tilemapTop = 2,
+ .width = 18,
+ .height = 3,
+ .paletteNum = 5,
+ .baseBlock = 0xEF,
+ },
+ {
+ .bg = 0,
+ .tilemapLeft = 12,
+ .tilemapTop = 5,
+ .width = 18,
+ .height = 3,
+ .paletteNum = 6,
+ .baseBlock = 0x125,
+ },
+ {
+ .bg = 0,
+ .tilemapLeft = 12,
+ .tilemapTop = 9,
+ .width = 18,
+ .height = 3,
+ .paletteNum = 7,
+ .baseBlock = 0x15B,
+ },
+ {
+ .bg = 0,
+ .tilemapLeft = 12,
+ .tilemapTop = 12,
+ .width = 18,
+ .height = 3,
+ .paletteNum = 8,
+ .baseBlock = 0x191,
+ },
+ {
+ .bg = 2,
+ .tilemapLeft = 1,
+ .tilemapTop = 15,
+ .width = 28,
+ .height = 4,
+ .paletteNum = 14,
+ .baseBlock = 0x1DF,
+ },
+ DUMMY_WIN_TEMPLATE
+};
+
+static const struct WindowTemplate gUnknown_086158D0[] =
+{
+ {
+ .bg = 0,
+ .tilemapLeft = 1,
+ .tilemapTop = 2,
+ .width = 10,
+ .height = 7,
+ .paletteNum = 3,
+ .baseBlock = 0x63,
+ },
+ {
+ .bg = 0,
+ .tilemapLeft = 12,
+ .tilemapTop = 3,
+ .width = 18,
+ .height = 3,
+ .paletteNum = 5,
+ .baseBlock = 0xA9,
+ },
+ {
+ .bg = 0,
+ .tilemapLeft = 12,
+ .tilemapTop = 6,
+ .width = 18,
+ .height = 3,
+ .paletteNum = 6,
+ .baseBlock = 0xDF,
+ },
+ {
+ .bg = 2,
+ .tilemapLeft = 1,
+ .tilemapTop = 11,
+ .width = 10,
+ .height = 7,
+ .paletteNum = 4,
+ .baseBlock = 0x115,
+ },
+ {
+ .bg = 2,
+ .tilemapLeft = 12,
+ .tilemapTop = 12,
+ .width = 18,
+ .height = 3,
+ .paletteNum = 7,
+ .baseBlock = 0x16B,
+ },
+ {
+ .bg = 2,
+ .tilemapLeft = 12,
+ .tilemapTop = 15,
+ .width = 18,
+ .height = 3,
+ .paletteNum = 8,
+ .baseBlock = 0x1A1,
+ },
+ DUMMY_WIN_TEMPLATE
+};
+
+static const struct WindowTemplate gUnknown_08615908 =
+{
+ .bg = 0,
+ .tilemapLeft = 24,
+ .tilemapTop = 17,
+ .width = 6,
+ .height = 2,
+ .paletteNum = 3,
+ .baseBlock = 0x1C7,
+};
+
+static const struct WindowTemplate gUnknown_08615910 =
+{
+ .bg = 0,
+ .tilemapLeft = 24,
+ .tilemapTop = 18,
+ .width = 6,
+ .height = 2,
+ .paletteNum = 3,
+ .baseBlock = 0x1C7,
+};
+
+static const struct WindowTemplate gUnknown_08615918 =
+{
+ .bg = 0,
+ .tilemapLeft = 24,
+ .tilemapTop = 16,
+ .width = 6,
+ .height = 2,
+ .paletteNum = 3,
+ .baseBlock = 0x1D3,
+};
+
+static const struct WindowTemplate gUnknown_08615920 =
+{
+ .bg = 2,
+ .tilemapLeft = 1,
+ .tilemapTop = 17,
+ .width = 21,
+ .height = 2,
+ .paletteNum = 15,
+ .baseBlock = 0x24F,
+};
+
+static const struct WindowTemplate gUnknown_08615928 =
+{
+ .bg = 2,
+ .tilemapLeft = 1,
+ .tilemapTop = 17,
+ .width = 16,
+ .height = 2,
+ .paletteNum = 15,
+ .baseBlock = 0x279,
+};
+
+static const struct WindowTemplate gUnknown_08615930 =
+{
+ .bg = 2,
+ .tilemapLeft = 1,
+ .tilemapTop = 17,
+ .width = 20,
+ .height = 2,
+ .paletteNum = 15,
+ .baseBlock = 0x299,
+};
+
+static const struct WindowTemplate gUnknown_08615938 =
+{
+ .bg = 2,
+ .tilemapLeft = 1,
+ .tilemapTop = 17,
+ .width = 18,
+ .height = 2,
+ .paletteNum = 15,
+ .baseBlock = 0x299,
+};
+
+static const struct WindowTemplate gUnknown_08615940 =
+{
+ .bg = 2,
+ .tilemapLeft = 1,
+ .tilemapTop = 17,
+ .width = 16,
+ .height = 2,
+ .paletteNum = 15,
+ .baseBlock = 0x299,
+};
+
+static const struct WindowTemplate gUnknown_08615948 =
+{
+ .bg = 2,
+ .tilemapLeft = 1,
+ .tilemapTop = 15,
+ .width = 20,
+ .height = 4,
+ .paletteNum = 15,
+ .baseBlock = 0x299,
+};
+
+static const struct WindowTemplate gUnknown_08615950 =
+{
+ .bg = 2,
+ .tilemapLeft = 23,
+ .tilemapTop = 13,
+ .width = 6,
+ .height = 6,
+ .paletteNum = 14,
+ .baseBlock = 0x39D,
+};
+
+static const struct WindowTemplate gUnknown_08615958 =
+{
+ .bg = 2,
+ .tilemapLeft = 21,
+ .tilemapTop = 13,
+ .width = 8,
+ .height = 6,
+ .paletteNum = 14,
+ .baseBlock = 0x39D,
+};
+
+static const struct WindowTemplate gUnknown_08615960 =
+{
+ .bg = 2,
+ .tilemapLeft = 19,
+ .tilemapTop = 11,
+ .width = 10,
+ .height = 8,
+ .paletteNum = 14,
+ .baseBlock = 0x2E9,
+};
+
+static const struct WindowTemplate gUnknown_08615968 =
+{
+ .bg = 2,
+ .tilemapLeft = 21,
+ .tilemapTop = 9,
+ .width = 5,
+ .height = 4,
+ .paletteNum = 14,
+ .baseBlock = 0x2E9,
+};
+
+static const struct WindowTemplate gUnknown_08615970 =
+{
+ .bg = 2,
+ .tilemapLeft = 19,
+ .tilemapTop = 1,
+ .width = 10,
+ .height = 11,
+ .paletteNum = 14,
+ .baseBlock = 0x2E9,
+};
+// Unused.
+static const struct WindowTemplate gUnknown_08615978 =
+{
+ .bg = 2,
+ .tilemapLeft = 2,
+ .tilemapTop = 15,
+ .width = 27,
+ .height = 4,
+ .paletteNum = 14,
+ .baseBlock = 0x1DF,
+};
+
+// Unused.
+static const struct WindowTemplate gUnknown_08615980 =
+{
+ .bg = 2,
+ .tilemapLeft = 0,
+ .tilemapTop = 13,
+ .width = 18,
+ .height = 3,
+ .paletteNum = 12,
+ .baseBlock = 0x39D,
+};
+
+static const u8 gUnknown_08615988[] = {24, 25, 25, 25, 25, 25, 25, 25, 25, 26, 32, 33, 33, 33, 33, 33, 33, 33, 33, 34, 32, 33, 33, 33, 33, 33, 33, 33, 33, 34, 32, 33, 33, 33, 33, 33, 33, 33, 33, 34, 40, 59, 60, 58, 58, 58, 58, 58, 58, 61, 15, 16, 16, 16, 16, 16, 16, 16, 16, 17, 46, 47, 47, 47, 47, 47, 47, 47, 47, 48};
+static const u8 gUnknown_086159CE[] = {24, 25, 25, 25, 25, 25, 25, 25, 25, 26, 32, 33, 33, 33, 33, 33, 33, 33, 33, 34, 32, 33, 33, 33, 33, 33, 33, 33, 33, 34, 32, 33, 33, 33, 33, 33, 33, 33, 33, 34, 40, 41, 41, 41, 41, 41, 41, 41, 41, 42, 15, 16, 16, 16, 16, 16, 16, 16, 16, 17, 46, 47, 47, 47, 47, 47, 47, 47, 47, 48};
+static const u8 gUnknown_08615A14[] = {43, 44, 44, 44, 44, 44, 44, 44, 44, 44, 44, 44, 44, 44, 44, 44, 44, 45, 49, 33, 33, 33, 33, 33, 33, 33, 33, 52, 53, 51, 51, 51, 51, 51, 51, 54, 55, 56, 56, 56, 56, 56, 56, 56, 56, 56, 56, 56, 56, 56, 56, 56, 56, 57};
+static const u8 gUnknown_08615A4A[] = {43, 44, 44, 44, 44, 44, 44, 44, 44, 44, 44, 44, 44, 44, 44, 44, 44, 45, 49, 33, 33, 33, 33, 33, 33, 33, 33, 33, 33, 33, 33, 33, 33, 33, 33, 50, 55, 56, 56, 56, 56, 56, 56, 56, 56, 56, 56, 56, 56, 56, 56, 56, 56, 57};
+static const u8 gUnknown_08615A80[] = {21, 22, 22, 22, 22, 22, 22, 22, 22, 22, 22, 22, 22, 22, 22, 22, 22, 23, 30, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 31, 37, 38, 38, 38, 38, 38, 38, 38, 38, 38, 38, 38, 38, 38, 38, 38, 38, 39};
+static const u8 gUnknown_08615AB6[] = {11, 12};
+static const u8 gUnknown_08615AB8[] = {9, 10};
+static const u8 gUnknown_08615ABA[] = {4, 5, 6};
+static const u8 gUnknown_08615ABD[] = {1, 7, 8};
+static const u8 gUnknown_08615AC0[] = {1, 11, 12};
+static const u8 gUnknown_08615AC3[] = {59, 60};
+static const u8 gUnknown_08615AC5[] = {75, 76};
+static const u8 gUnknown_08615AC7[] = {57, 58};
+static const u8 gUnknown_08615AC9[] = {73, 74};
+static const u8 gUnknown_08615ACB[] = {89, 90};
+static const u8 gUnknown_08615ACD[] = {52, 53, 54};
+static const u8 gUnknown_08615AD0[] = {68, 69, 70};
+static const u8 gUnknown_08615AD3[] = {84, 85, 86};
+static const u8 gUnknown_08615AD6[] = {116, 117, 118};
+static const u8 gUnknown_08615AD9[] = {132, 133, 134};
+static const u8 gUnknown_08615ADC[] = {148, 149, 150};
+static const u8 gUnknown_08615ADF[] = {100, 101, 102};
+static const u8 gUnknown_08615AE2[] = {49, 55, 56};
+static const u8 gUnknown_08615AE5[] = {65, 71, 72};
+static const u8 gUnknown_08615AE8[] = {81, 87, 88};
+static const u8 gUnknown_08615AEB[] = {97, 103, 104};
+static const u8 gUnknown_08615AEE[] = {161, 167, 168};
+static const u8 gUnknown_08615AF1[] = {17, 27, 28};
+
+static const u8 *const gUnknown_08615AF4[] =
+{
+ gUnknown_085E9E43,
+ gUnknown_085EA010,
+ gUnknown_085EA02A,
+ gUnknown_085E9E55,
+ gUnknown_085E9E64,
+ gUnknown_085E9E79,
+ gUnknown_085E9E8F,
+ gUnknown_085E9EBC,
+ gUnknown_085E9ED4,
+ gUnknown_085E9EE9,
+ gUnknown_085E9FDB,
+ gUnknown_085EA046,
+ gUnknown_085EA05B,
+ gUnknown_085E9F01,
+ gUnknown_085E9F58,
+ gUnknown_085E9F6F,
+ gUnknown_085E9F81,
+ gUnknown_085E9F90,
+ gUnknown_085E9FA7,
+ gUnknown_085E9FC2,
+ gText_EmptyString2,
+ gUnknown_085E9EA6,
+ gUnknown_085E9F16,
+ gUnknown_085E9F2A,
+ gUnknown_085E9F42,
+ gUnknown_085E9FF9,
+ gUnknown_085EA073,
+};
+
+static const u8 *const gUnknown_08615B60[] =
+{
+ gUnknown_085EA091,
+ gUnknown_085EA099,
+ gUnknown_085EA09E,
+ gUnknown_085EA0A4,
+ gUnknown_085EA0AB,
+ gUnknown_085EA0E7,
+ gUnknown_085EA0B1,
+ gUnknown_085EA0B6,
+ gUnknown_085EA0BF,
+ gUnknown_085EA0C5,
+ gUnknown_085EA0CF,
+ gUnknown_085EA0D7,
+ gUnknown_085EA0DC,
+};
+
+// Unknown unused data. Feel free to remove.
+static const u16 gUnknown_08615B94[] =
+{
+ 0x0108, 0x0151, 0x0160, 0x015b, 0x002e, 0x005c, 0x0102, 0x0153, 0x014b, 0x00ed, 0x00f1, 0x010d, 0x003a, 0x003b, 0x003f, 0x0071,
+ 0x00b6, 0x00f0, 0x00ca, 0x00db, 0x00da, 0x004c, 0x00e7, 0x0055, 0x0057, 0x0059, 0x00d8, 0x005b, 0x005e, 0x00f7, 0x0118, 0x0068,
+ 0x0073, 0x015f, 0x0035, 0x00bc, 0x00c9, 0x007e, 0x013d, 0x014c, 0x0103, 0x0107, 0x0122, 0x009c, 0x00d5, 0x00a8, 0x00d3, 0x011d,
+ 0x0121, 0x013b, 0x000f, 0x0013, 0x0039, 0x0046, 0x0094, 0x00f9, 0x007f, 0x0123,
+};
+
+enum
+{
+ MENU_SUMMARY,
+ MENU_SWITCH,
+ MENU_CANCEL1,
+ MENU_ITEM,
+ MENU_GIVE,
+ MENU_TAKE_ITEM,
+ MENU_MAIL,
+ MENU_TAKE_MAIL,
+ MENU_READ,
+ MENU_CANCEL2,
+ MENU_SHIFT,
+ MENU_SEND_OUT,
+ MENU_ENTER,
+ MENU_NO_ENTRY,
+ MENU_STORE,
+ MENU_REGISTER,
+ MENU_TRADE1,
+ MENU_TRADE2,
+ MENU_TOSS,
+ MENU_FIELD_MOVES,
+};
+
+enum
+{
+ FIELD_MOVE_CUT,
+ FIELD_MOVE_FLASH,
+ FIELD_MOVE_ROCK_SMASH,
+ FIELD_MOVE_STRENGTH,
+ FIELD_MOVE_SURF,
+ FIELD_MOVE_FLY,
+ FIELD_MOVE_DIVE,
+ FIELD_MOVE_WATERFALL,
+ FIELD_MOVE_TELEPORT,
+ FIELD_MOVE_DIG,
+ FIELD_MOVE_SECRET_POWER,
+ FIELD_MOVE_MILK_DRINK,
+ FIELD_MOVE_SOFT_BOILED,
+ FIELD_MOVE_SWEET_SCENT,
+};
+
+// What a weird choice of table termination;
+#define FIELD_MOVE_TERMINATOR MOVE_SWORDS_DANCE
+
+struct
+{
+ const u8 *text;
+ TaskFunc func;
+} static const sCursorOptions[] =
+{
+ [MENU_SUMMARY] = {gText_Summary5, CursorCb_Summary},
+ [MENU_SWITCH] = {gText_Switch2, CursorCb_Switch},
+ [MENU_CANCEL1] = {gText_Cancel2, CursorCb_Cancel1},
+ [MENU_ITEM] = {gText_Item, CursorCb_Item},
+ [MENU_GIVE] = {gMenuText_Give, CursorCb_Give},
+ [MENU_TAKE_ITEM] = {gText_Take, CursorCb_TakeItem},
+ [MENU_MAIL] = {gText_Mail, CursorCb_Mail},
+ [MENU_TAKE_MAIL] = {gText_Take2, CursorCb_TakeMail},
+ [MENU_READ] = {gText_Read2, CursorCb_Read},
+ [MENU_CANCEL2] = {gText_Cancel2, CursorCb_Cancel2},
+ [MENU_SHIFT] = {gText_Shift, CursorCb_SendMon},
+ [MENU_SEND_OUT] = {gText_SendOut, CursorCb_SendMon},
+ [MENU_ENTER] = {gText_Enter, CursorCb_Enter},
+ [MENU_NO_ENTRY] = {gText_NoEntry, CursorCb_NoEntry},
+ [MENU_STORE] = {gText_Store, CursorCb_Store},
+ [MENU_REGISTER] = {gText_Register, CursorCb_Register},
+ [MENU_TRADE1] = {gText_Trade4, CursorCb_Trade1},
+ [MENU_TRADE2] = {gText_Trade4, CursorCb_Trade2},
+ [MENU_TOSS] = {gMenuText_Toss, CursorCb_Toss},
+ [MENU_FIELD_MOVES + FIELD_MOVE_CUT] = {gMoveNames[MOVE_CUT], CursorCb_FieldMove},
+ [MENU_FIELD_MOVES + FIELD_MOVE_FLASH] = {gMoveNames[MOVE_FLASH], CursorCb_FieldMove},
+ [MENU_FIELD_MOVES + FIELD_MOVE_ROCK_SMASH] = {gMoveNames[MOVE_ROCK_SMASH], CursorCb_FieldMove},
+ [MENU_FIELD_MOVES + FIELD_MOVE_STRENGTH] = {gMoveNames[MOVE_STRENGTH], CursorCb_FieldMove},
+ [MENU_FIELD_MOVES + FIELD_MOVE_SURF] = {gMoveNames[MOVE_SURF], CursorCb_FieldMove},
+ [MENU_FIELD_MOVES + FIELD_MOVE_FLY] = {gMoveNames[MOVE_FLY], CursorCb_FieldMove},
+ [MENU_FIELD_MOVES + FIELD_MOVE_DIVE] = {gMoveNames[MOVE_DIVE], CursorCb_FieldMove},
+ [MENU_FIELD_MOVES + FIELD_MOVE_WATERFALL] = {gMoveNames[MOVE_WATERFALL], CursorCb_FieldMove},
+ [MENU_FIELD_MOVES + FIELD_MOVE_TELEPORT] = {gMoveNames[MOVE_TELEPORT], CursorCb_FieldMove},
+ [MENU_FIELD_MOVES + FIELD_MOVE_DIG] = {gMoveNames[MOVE_DIG], CursorCb_FieldMove},
+ [MENU_FIELD_MOVES + FIELD_MOVE_SECRET_POWER] = {gMoveNames[MOVE_SECRET_POWER], CursorCb_FieldMove},
+ [MENU_FIELD_MOVES + FIELD_MOVE_MILK_DRINK] = {gMoveNames[MOVE_MILK_DRINK], CursorCb_FieldMove},
+ [MENU_FIELD_MOVES + FIELD_MOVE_SOFT_BOILED] = {gMoveNames[MOVE_SOFT_BOILED], CursorCb_FieldMove},
+ [MENU_FIELD_MOVES + FIELD_MOVE_SWEET_SCENT] = {gMoveNames[MOVE_SWEET_SCENT], CursorCb_FieldMove},
+};
+
+static const u8 gUnknown_08615D10[] = {0, 1, 2};
+static const u8 gUnknown_08615D13[] = {10, 0, 2};
+static const u8 gUnknown_08615D16[] = {11, 0, 2};
+static const u8 gUnknown_08615D19[] = {0, 2};
+static const u8 gUnknown_08615D1B[] = {12, 0, 2};
+static const u8 gUnknown_08615D1E[] = {13, 0, 2};
+static const u8 gUnknown_08615D21[] = {14, 0, 2};
+static const u8 gUnknown_08615D24[] = {4, 5, 9};
+static const u8 gUnknown_08615D27[] = {8, 7, 9};
+static const u8 gUnknown_08615D2A[] = {15, 0, 2};
+static const u8 gUnknown_08615D2D[] = {16, 0, 2};
+static const u8 gUnknown_08615D30[] = {17, 0, 2};
+static const u8 gUnknown_08615D33[] = {5, 18, 2};
+
+static const u8 *const gUnknown_08615D38[] =
+{
+ NULL,
+ gUnknown_08615D10,
+ gUnknown_08615D13,
+ gUnknown_08615D16,
+ gUnknown_08615D1B,
+ gUnknown_08615D1E,
+ gUnknown_08615D21,
+ gUnknown_08615D19,
+ gUnknown_08615D24,
+ gUnknown_08615D27,
+ gUnknown_08615D2A,
+ gUnknown_08615D2D,
+ gUnknown_08615D30,
+ gUnknown_08615D33,
+};
+
+static const u8 gUnknown_08615D70[] = {0x00, 0x03, 0x03, 0x03, 0x03, 0x03, 0x03, 0x02, 0x03, 0x03, 0x03, 0x03, 0x03, 0x03};
+
+static const u16 sFieldMoves[] =
+{
+ MOVE_CUT, MOVE_FLASH, MOVE_ROCK_SMASH, MOVE_STRENGTH, MOVE_SURF, MOVE_FLY, MOVE_DIVE, MOVE_WATERFALL, MOVE_TELEPORT,
+ MOVE_DIG, MOVE_SECRET_POWER, MOVE_MILK_DRINK, MOVE_SOFT_BOILED, MOVE_SWEET_SCENT, FIELD_MOVE_TERMINATOR
+};
+
+struct
+{
+ bool8 (*fieldMoveFunc)(void);
+ u8 msgId;
+} static const sFieldMoveCursorCallbacks[] =
+{
+ [FIELD_MOVE_CUT] = {SetUpFieldMove_Cut, 0x07},
+ [FIELD_MOVE_FLASH] = {SetUpFieldMove_Flash, 0x0d},
+ [FIELD_MOVE_ROCK_SMASH] = {SetUpFieldMove_RockSmash, 0x0d},
+ [FIELD_MOVE_STRENGTH] = {SetUpFieldMove_Strength, 0x0d},
+ [FIELD_MOVE_SURF] = {SetUpFieldMove_Surf, 0x08},
+ [FIELD_MOVE_FLY] = {SetUpFieldMove_Fly, 0x0d},
+ [FIELD_MOVE_DIVE] = {SetUpFieldMove_Dive, 0x0d},
+ [FIELD_MOVE_WATERFALL] = {SetUpFieldMove_Waterfall, 0x0d},
+ [FIELD_MOVE_TELEPORT] = {SetUpFieldMove_Teleport, 0x0d},
+ [FIELD_MOVE_DIG] = {SetUpFieldMove_Dig, 0x0d},
+ [FIELD_MOVE_SECRET_POWER] = {SetUpFieldMove_SecretPower, 0x0d},
+ [FIELD_MOVE_MILK_DRINK] = {SetUpFieldMove_SoftBoiled, 0x10},
+ [FIELD_MOVE_SOFT_BOILED] = {SetUpFieldMove_SoftBoiled, 0x10},
+ [FIELD_MOVE_SWEET_SCENT] = {SetUpFieldMove_SweetScent, 0x0d},
+};
+
+static const u8 *const gUnknown_08615E0C[] =
+{
+ gText_NotPkmnOtherTrainerWants,
+ gText_ThatIsntAnEgg,
+ gText_PkmnCantBeTradedNow,
+ gText_PkmnCantBeTradedNow,
+ gText_OtherTrainersPkmnCantBeTraded,
+ gText_EggCantBeTradedNow,
+ gText_OtherTrainerCantAcceptPkmn,
+ gText_CantTradeWithTrainer,
+ gText_CantTradeWithTrainer,
+};
+
+static const u32 gUnknown_08615E30[] = INCBIN_U32("graphics/interface/hold_icons.4bpp");
+static const u16 gUnknown_08615E70[] = INCBIN_U16("graphics/interface/hold_icons.gbapal");
+
+static const struct OamData gOamData_83765EC =
+{
+ .y = 0,
+ .affineMode = 0,
+ .objMode = 0,
+ .mosaic = 0,
+ .bpp = 0,
+ .shape = 0,
+ .x = 0,
+ .matrixNum = 0,
+ .size = 0,
+ .tileNum = 0,
+ .priority = 1,
+ .paletteNum = 0,
+ .affineParam = 0,
+};
+
+static const union AnimCmd gSpriteAnim_83765F4[] =
+{
+ ANIMCMD_FRAME(0, 1),
+ ANIMCMD_END
+};
+
+static const union AnimCmd gSpriteAnim_83765FC[] =
+{
+ ANIMCMD_FRAME(1, 1),
+ ANIMCMD_END
+};
+
+static const union AnimCmd *const gSpriteAnimTable_8376604[] =
+{
+ gSpriteAnim_83765F4,
+ gSpriteAnim_83765FC,
+};
+
+static const struct SpriteSheet gUnknown_08615EB0 =
+{
+ gUnknown_08615E30, sizeof(gUnknown_08615E30), 0xd750
+};
+
+static const struct SpritePalette gUnknown_08615EB8 =
+{
+ gUnknown_08615E70, 0xd750
+};
+
+static const struct SpriteTemplate gSpriteTemplate_8615EC0 =
+{
+ 0xd750,
+ 0xd750,
+ &gOamData_83765EC,
+ gSpriteAnimTable_8376604,
+ NULL,
+ gDummySpriteAffineAnimTable,
+ SpriteCallbackDummy
+};
+
+static const struct OamData sOamData_8615ED8 =
+{
+ .y = 0,
+ .affineMode = 0,
+ .objMode = 0,
+ .mosaic = 0,
+ .bpp = 0,
+ .shape = 0,
+ .x = 0,
+ .matrixNum = 0,
+ .size = 2,
+ .tileNum = 0,
+ .priority = 1,
+ .paletteNum = 0,
+ .affineParam = 0
+};
+
+static const union AnimCmd sSpriteAnim_8615EE0[] =
+{
+ ANIMCMD_FRAME(0, 0),
+ ANIMCMD_END
+};
+
+static const union AnimCmd sSpriteAnim_8615EE8[] =
+{
+ ANIMCMD_FRAME(16, 0),
+ ANIMCMD_END
+};
+
+static const union AnimCmd *const sSpriteAnimTable_8615EF0[] =
+{
+ sSpriteAnim_8615EE0,
+ sSpriteAnim_8615EE8
+};
+
+static const struct CompressedSpriteSheet gUnknown_08615EF8 =
+{
+ gPartyMenuPokeball_Gfx, 0x400, 0x04b0
+};
+
+static const struct CompressedSpritePalette gUnknown_08615F00 =
+{
+ gPartyMenuPokeball_Pal, 0x04b0
+};
+
+static const struct SpriteTemplate gSpriteTemplate_8615F08 =
+{
+ .tileTag = 0x04b0,
+ .paletteTag = 0x04b0,
+ .oam = &sOamData_8615ED8,
+ .anims = sSpriteAnimTable_8615EF0,
+ .images = NULL,
+ .affineAnims = gDummySpriteAffineAnimTable,
+ .callback = SpriteCallbackDummy,
+};
+
+static const struct OamData sOamData_8615F20 =
+{
+ .y = 0,
+ .affineMode = 0,
+ .objMode = 0,
+ .mosaic = 0,
+ .bpp = 0,
+ .shape = 0,
+ .x = 0,
+ .matrixNum = 0,
+ .size = 1,
+ .tileNum = 0,
+ .priority = 2,
+ .paletteNum = 0,
+ .affineParam = 0
+};
+
+static const union AnimCmd sSpriteAnim_8615F28[] =
+{
+ ANIMCMD_FRAME(0, 0),
+ ANIMCMD_END
+};
+
+static const union AnimCmd sSpriteAnim_8615F30[] =
+{
+ ANIMCMD_FRAME(4, 0),
+ ANIMCMD_END
+};
+
+static const union AnimCmd sSpriteAnim_8615F38[] =
+{
+ ANIMCMD_FRAME(8, 0),
+ ANIMCMD_END
+};
+
+static const union AnimCmd sSpriteAnim_8615F40[] =
+{
+ ANIMCMD_FRAME(12, 0),
+ ANIMCMD_END
+};
+
+static const union AnimCmd sSpriteAnim_8615F48[] =
+{
+ ANIMCMD_FRAME(16, 0),
+ ANIMCMD_END
+};
+
+static const union AnimCmd sSpriteAnim_8615F50[] =
+{
+ ANIMCMD_FRAME(20, 0),
+ ANIMCMD_END
+};
+
+static const union AnimCmd *const sSpriteAnimTable_8615F58[] =
+{
+ sSpriteAnim_8615F28,
+ sSpriteAnim_8615F30,
+ sSpriteAnim_8615F38,
+ sSpriteAnim_8615F40,
+ sSpriteAnim_8615F48,
+ sSpriteAnim_8615F50
+};
+
+static const struct CompressedSpriteSheet gUnknown_08615F70 =
+{
+ gPartyMenuPokeballSmall_Gfx, 0x0300, 0x04b1
+};
+
+static const struct SpriteTemplate gSpriteTemplate_8615F78 =
+{
+ .tileTag = 1201,
+ .paletteTag = 1200,
+ .oam = &sOamData_8615F20,
+ .anims = sSpriteAnimTable_8615F58,
+ .images = NULL,
+ .affineAnims = gDummySpriteAffineAnimTable,
+ .callback = SpriteCallbackDummy,
+};
+
+static const struct OamData sOamData_8615F90 =
+{
+ .y = 0,
+ .affineMode = 0,
+ .objMode = 0,
+ .mosaic = 0,
+ .bpp = 0,
+ .shape = 1,
+ .x = 0,
+ .matrixNum = 0,
+ .size = 1,
+ .tileNum = 0,
+ .priority = 1,
+ .paletteNum = 0,
+ .affineParam = 0
+};
+
+static const union AnimCmd sSpriteAnim_8615F98[] =
+{
+ ANIMCMD_FRAME(0, 0),
+ ANIMCMD_END
+};
+
+static const union AnimCmd sSpriteAnim_8615FA0[] =
+{
+ ANIMCMD_FRAME(4, 0),
+ ANIMCMD_END
+};
+
+static const union AnimCmd sSpriteAnim_8615FA8[] =
+{
+ ANIMCMD_FRAME(8, 0),
+ ANIMCMD_END
+};
+
+static const union AnimCmd sSpriteAnim_8615FB0[] =
+{
+ ANIMCMD_FRAME(12, 0),
+ ANIMCMD_END
+};
+
+static const union AnimCmd sSpriteAnim_8615FB8[] =
+{
+ ANIMCMD_FRAME(16, 0),
+ ANIMCMD_END
+};
+
+static const union AnimCmd sSpriteAnim_8615FC0[] =
+{
+ ANIMCMD_FRAME(20, 0),
+ ANIMCMD_END
+};
+
+static const union AnimCmd sSpriteAnim_8615FC8[] =
+{
+ ANIMCMD_FRAME(24, 0),
+ ANIMCMD_END
+};
+
+static const union AnimCmd sSpriteAnim_8615FD0[] =
+{
+ ANIMCMD_FRAME(28, 0),
+ ANIMCMD_END
+};
+
+static const union AnimCmd *const sSpriteAnimTable_8615FD8[] =
+{
+ sSpriteAnim_8615F98,
+ sSpriteAnim_8615FA0,
+ sSpriteAnim_8615FA8,
+ sSpriteAnim_8615FB0,
+ sSpriteAnim_8615FB8,
+ sSpriteAnim_8615FC0,
+ sSpriteAnim_8615FC8,
+ sSpriteAnim_8615FD0
+};
+
+static const struct CompressedSpriteSheet gUnknown_08615FF8 =
+{
+ gStatusGfx_Icons, 0x400, 1202
+};
+
+static const struct CompressedSpritePalette gUnknown_08616000 =
+{
+ gStatusPal_Icons, 1202
+};
+
+static const struct SpriteTemplate gSpriteTemplate_8616008 =
+{
+ .tileTag = 1202,
+ .paletteTag = 1202,
+ .oam = &sOamData_8615F90,
+ .anims = sSpriteAnimTable_8615FD8,
+ .images = NULL,
+ .affineAnims = gDummySpriteAffineAnimTable,
+ .callback = SpriteCallbackDummy,
+};
+
+static const u8 gUnknown_08616020[] = {0x00, 0x01, 0x00, 0x00, 0x01, 0x01, 0x00, 0x00};
+
+// Unused table of pointers to strings of statistics.
+static const u8 *const gUnknown_08616028[] =
+{
+ gText_HP4,
+ gText_Attack3,
+ gText_Defense3,
+ gText_SpAtk4,
+ gText_SpDef4,
+ gText_Speed2
+};
+
+static const u16 gTMHMMoves[] =
+{
+ MOVE_FOCUS_PUNCH,
+ MOVE_DRAGON_CLAW,
+ MOVE_WATER_PULSE,
+ MOVE_CALM_MIND,
+ MOVE_ROAR,
+ MOVE_TOXIC,
+ MOVE_HAIL,
+ MOVE_BULK_UP,
+ MOVE_BULLET_SEED,
+ MOVE_HIDDEN_POWER,
+ MOVE_SUNNY_DAY,
+ MOVE_TAUNT,
+ MOVE_ICE_BEAM,
+ MOVE_BLIZZARD,
+ MOVE_HYPER_BEAM,
+ MOVE_LIGHT_SCREEN,
+ MOVE_PROTECT,
+ MOVE_RAIN_DANCE,
+ MOVE_GIGA_DRAIN,
+ MOVE_SAFEGUARD,
+ MOVE_FRUSTRATION,
+ MOVE_SOLAR_BEAM,
+ MOVE_IRON_TAIL,
+ MOVE_THUNDERBOLT,
+ MOVE_THUNDER,
+ MOVE_EARTHQUAKE,
+ MOVE_RETURN,
+ MOVE_DIG,
+ MOVE_PSYCHIC,
+ MOVE_SHADOW_BALL,
+ MOVE_BRICK_BREAK,
+ MOVE_DOUBLE_TEAM,
+ MOVE_REFLECT,
+ MOVE_SHOCK_WAVE,
+ MOVE_FLAMETHROWER,
+ MOVE_SLUDGE_BOMB,
+ MOVE_SANDSTORM,
+ MOVE_FIRE_BLAST,
+ MOVE_ROCK_TOMB,
+ MOVE_AERIAL_ACE,
+ MOVE_TORMENT,
+ MOVE_FACADE,
+ MOVE_SECRET_POWER,
+ MOVE_REST,
+ MOVE_ATTRACT,
+ MOVE_THIEF,
+ MOVE_STEEL_WING,
+ MOVE_SKILL_SWAP,
+ MOVE_SNATCH,
+ MOVE_OVERHEAT,
+ MOVE_CUT,
+ MOVE_FLY,
+ MOVE_SURF,
+ MOVE_STRENGTH,
+ MOVE_FLASH,
+ MOVE_ROCK_SMASH,
+ MOVE_WATERFALL,
+ MOVE_DIVE,
+};
+
+// code
static void InitPartyMenu(u8 a, u8 b, u8 c, u8 d, u8 e, TaskFunc task, MainCallback callback)
{
u16 i;
@@ -671,9 +1756,10 @@ static bool8 AllocPartyMenuBg(void)
gUnknown_0203CEE4 = Alloc(0x800);
if (gUnknown_0203CEE4 == NULL)
return FALSE;
+
memset(gUnknown_0203CEE4, 0, 0x800);
ResetBgsAndClearDma3BusyFlags(0);
- InitBgsFromTemplates(0, gUnknown_086156B8, 3);
+ InitBgsFromTemplates(0, gUnknown_086156B8, ARRAY_COUNT(gUnknown_086156B8));
SetBgTilemapBuffer(1, gUnknown_0203CEE4);
ResetAllBgsCoordinates();
schedule_bg_copy_tilemap_to_vram(1);
@@ -957,7 +2043,7 @@ static bool8 sub_81B0BFC(u8 slot)
static void DisplayPartyPokemonSelectToTeachMove(u8 slot, u16 item, u8 tutor)
{
- switch (CanPartyPokemonLearnTMTutor(&gPlayerParty[slot], item, tutor))
+ switch (CanMonLearnTMTutor(&gPlayerParty[slot], item, tutor))
{
case CANNOT_LEARN_MOVE:
case CANNOT_LEARN_MOVE_IS_EGG:
@@ -1952,12 +3038,13 @@ static void sub_81B227C(u8 taskId)
}
}
-static u8 CanPartyPokemonLearnTMTutor(struct Pokemon *mon, u16 item, u8 tutor)
+static u8 CanMonLearnTMTutor(struct Pokemon *mon, u16 item, u8 tutor)
{
u16 move;
if (GetMonData(mon, MON_DATA_IS_EGG))
return CANNOT_LEARN_MOVE_IS_EGG;
+
if (item >= ITEM_TM01_FOCUS_PUNCH)
{
if (CanMonLearnTMHM(mon, item - ITEM_TM01_FOCUS_PUNCH))
@@ -1966,30 +3053,32 @@ static u8 CanPartyPokemonLearnTMTutor(struct Pokemon *mon, u16 item, u8 tutor)
return CANNOT_LEARN_MOVE;
do {} while (0); // :morphon:
}
- else if (sub_81B2370(GetMonData(mon, MON_DATA_SPECIES), tutor) == FALSE)
+ else if (CanLearnTutorMove(GetMonData(mon, MON_DATA_SPECIES), tutor) == FALSE)
{
return CANNOT_LEARN_MOVE;
}
else
{
- move = sub_81B2360(tutor);
+ move = GetTutorMove(tutor);
}
- if (pokemon_has_move(mon, move) == TRUE)
+ if (MonKnowsMove(mon, move) == TRUE)
return ALREADY_KNOWS_MOVE;
- return CAN_LEARN_MOVE;
+ else
+ return CAN_LEARN_MOVE;
}
-static u16 sub_81B2360(u8 tutor)
+static u16 GetTutorMove(u8 tutor)
{
- return gUnknown_0861500C[tutor];
+ return gTutorMoves[tutor];
}
-static bool8 sub_81B2370(u16 species, u8 tutor)
+static bool8 CanLearnTutorMove(u16 species, u8 tutor)
{
- if (gUnknown_08615048[species] & (1 << tutor))
+ if (sTutorLearnsets[species] & (1 << tutor))
return TRUE;
- return FALSE;
+ else
+ return FALSE;
}
static void sub_81B239C(u8 a)
@@ -2066,7 +3155,7 @@ static u16* GetPartyMenuPaletteFromBuffer(u8 paletteId)
return &gUnknown_0203CEC4->palBuffer[paletteId];
}
-static void BlitBitmapToPartyWindow(u8 windowId, u8 *b, u8 c, u8 x, u8 y, u8 width, u8 height)
+static void BlitBitmapToPartyWindow(u8 windowId, const u8 *b, u8 c, u8 x, u8 y, u8 width, u8 height)
{
u8 *pixels = AllocZeroed(height * width * 32);
u8 i, j;
@@ -2083,7 +3172,7 @@ static void BlitBitmapToPartyWindow(u8 windowId, u8 *b, u8 c, u8 x, u8 y, u8 wid
}
}
-/*static*/ void BlitBitmapToPartyWindow_Default1(u8 windowId, u8 x, u8 y, u8 width, u8 height, u8 f)
+static void BlitBitmapToPartyWindow_Default1(u8 windowId, u8 x, u8 y, u8 width, u8 height, u8 f)
{
if (width == 0 && height == 0)
{
@@ -2096,7 +3185,7 @@ static void BlitBitmapToPartyWindow(u8 windowId, u8 *b, u8 c, u8 x, u8 y, u8 wid
BlitBitmapToPartyWindow(windowId, gUnknown_086159CE, 10, x, y, width, height);
}
-/*static*/ void BlitBitmapToPartyWindow_Default2(u8 windowId, u8 x, u8 y, u8 width, u8 height, u8 f)
+static void BlitBitmapToPartyWindow_Default2(u8 windowId, u8 x, u8 y, u8 width, u8 height, u8 f)
{
if (width == 0 && height == 0)
{
@@ -2237,7 +3326,7 @@ static void UpdateSelectedPartyBox(struct Struct203CEDC *ptr, u8 bitfield)
}
}
-static void DisplayPartyPokemonBarDetail(u8 windowId, const u8 *str, u8 color, u8 *align)
+static void DisplayPartyPokemonBarDetail(u8 windowId, const u8 *str, u8 color, const u8 *align)
{
AddTextPrinterParameterized3(windowId, 0, align[0], align[1], gUnknown_086157FC[color], 0, str);
}
@@ -2510,7 +3599,7 @@ static u8 sub_81B31B0(u8 a)
for (i = 0; i < gUnknown_0203CEC4->unk17; i++)
{
u8 unk = (gUnknown_0203CEC4->unkF[i] > 18) ? 4 : 3;
- AddTextPrinterParameterized4(gUnknown_0203CEC4->unkC[0], 1, cursorDimension, (i * 16) + 1, fontAttribute, 0, gUnknown_086157FC[unk], 0, gUnknown_08615C08[gUnknown_0203CEC4->unkF[i]].textPtr);
+ AddTextPrinterParameterized4(gUnknown_0203CEC4->unkC[0], 1, cursorDimension, (i * 16) + 1, fontAttribute, 0, gUnknown_086157FC[unk], 0, sCursorOptions[gUnknown_0203CEC4->unkF[i]].text);
}
InitMenuInUpperLeftCorner(gUnknown_0203CEC4->unkC[0], gUnknown_0203CEC4->unk17, 0, 1);
@@ -2568,15 +3657,16 @@ static void sub_81B3414(struct Pokemon *mons, u8 a)
AppendToList(gUnknown_0203CEC4->unkF, &gUnknown_0203CEC4->unk17, 0);
for (i = 0; i < MAX_MON_MOVES; i++)
{
- for (j = 0; gUnknown_08615D7E[j] != MOVE_SWORDS_DANCE; j++)
+ for (j = 0; sFieldMoves[j] != FIELD_MOVE_TERMINATOR; j++)
{
- if (GetMonData(&mons[a], i + MON_DATA_MOVE1) == gUnknown_08615D7E[j])
+ if (GetMonData(&mons[a], i + MON_DATA_MOVE1) == sFieldMoves[j])
{
AppendToList(gUnknown_0203CEC4->unkF, &gUnknown_0203CEC4->unk17, j + 19);
break;
}
}
}
+
if (!InBattlePike())
{
if (GetMonData(&mons[1], MON_DATA_SPECIES) != SPECIES_NONE)
@@ -2680,41 +3770,41 @@ static void sub_81B36FC(u8 taskId)
if (sub_81B3608(taskId))
{
gTasks[taskId].data[0] = 0xFF;
- gTasks[taskId].func = sub_81B3730;
+ gTasks[taskId].func = HandleMenuInput;
}
}
-static void sub_81B3730(u8 taskId)
+static void HandleMenuInput(u8 taskId)
{
- s16 *data;
- s8 input;
-
- if (gPaletteFade.active == FALSE && sub_81221EC() != TRUE)
+ if (!gPaletteFade.active && sub_81221EC() != TRUE)
{
- data = gTasks[taskId].data;
+ s8 input;
+ s16 *data = gTasks[taskId].data;
+
if (gUnknown_0203CEC4->unk17 <= 3)
input = Menu_ProcessInputNoWrapAround_other();
else
input = ProcessMenuInput_other();
+
data[0] = Menu_GetCursorPos();
- if (input != MENU_NOTHING_CHOSEN)
+ switch (input)
{
- if (input == MENU_B_PRESSED)
- {
- PlaySE(SE_SELECT);
- sub_81B302C(&gUnknown_0203CEC4->unkC[2]);
- gUnknown_08615C08[gUnknown_0203CEC4->unkF[gUnknown_0203CEC4->unk17 - 1]].func(taskId);
- }
- else
- {
- sub_81B302C(&gUnknown_0203CEC4->unkC[2]);
- gUnknown_08615C08[gUnknown_0203CEC4->unkF[input]].func(taskId);
- }
+ case MENU_NOTHING_CHOSEN:
+ break;
+ case MENU_B_PRESSED:
+ PlaySE(SE_SELECT);
+ sub_81B302C(&gUnknown_0203CEC4->unkC[2]);
+ sCursorOptions[gUnknown_0203CEC4->unkF[gUnknown_0203CEC4->unk17 - 1]].func(taskId);
+ break;
+ default:
+ sub_81B302C(&gUnknown_0203CEC4->unkC[2]);
+ sCursorOptions[gUnknown_0203CEC4->unkF[input]].func(taskId);
+ break;
}
}
}
-/*static*/ void sub_81B37FC(u8 taskId)
+static void CursorCb_Summary(u8 taskId)
{
PlaySE(SE_SELECT);
gUnknown_0203CEC4->exitCallback = sub_81B3828;
@@ -2741,7 +3831,7 @@ static void sub_81B3894(void)
InitPartyMenu(gUnknown_0203CEC8.unk8_0, 0xFF, gUnknown_0203CEC8.unkB, 1, 21, sub_81B36FC, gUnknown_0203CEC8.exitCallback);
}
-/*static*/ void brm_switch(u8 taskId)
+static void CursorCb_Switch(u8 taskId)
{
PlaySE(SE_SELECT);
gUnknown_0203CEC8.unkB = 8;
@@ -2972,7 +4062,7 @@ static void sub_81B407C(u8 taskId)
gTasks[taskId].func = sub_81B1370;
}
-/*static*/ void brm_cancel_1(u8 taskId)
+static void CursorCb_Cancel1(u8 taskId)
{
PlaySE(SE_SELECT);
sub_81B302C(&gUnknown_0203CEC4->unkC[0]);
@@ -2984,7 +4074,7 @@ static void sub_81B407C(u8 taskId)
gTasks[taskId].func = sub_81B1370;
}
-/*static*/ void sub_81B4134(u8 taskId)
+static void CursorCb_Item(u8 taskId)
{
PlaySE(SE_SELECT);
sub_81B302C(&gUnknown_0203CEC4->unkC[0]);
@@ -2993,10 +4083,10 @@ static void sub_81B407C(u8 taskId)
sub_81B31B0(1);
display_pokemon_menu_message(24);
gTasks[taskId].data[0] = 0xFF;
- gTasks[taskId].func = sub_81B3730;
+ gTasks[taskId].func = HandleMenuInput;
}
-/*static*/ void sub_81B4198(u8 taskId)
+static void CursorCb_Give(u8 taskId)
{
PlaySE(SE_SELECT);
gUnknown_0203CEC4->exitCallback = sub_81B41C4;
@@ -3167,7 +4257,7 @@ static void sub_81B469C(u8 taskId)
}
}
-/*static*/ void sub_81B4724(u8 taskId)
+static void CursorCb_TakeItem(u8 taskId)
{
struct Pokemon *mon = &gPlayerParty[gUnknown_0203CEC8.unk9];
u16 item = GetMonData(mon, MON_DATA_HELD_ITEM);
@@ -3194,7 +4284,7 @@ static void sub_81B469C(u8 taskId)
gTasks[taskId].func = sub_81B469C;
}
-void sub_81B47E0(u8 taskId)
+static void CursorCb_Toss(u8 taskId)
{
struct Pokemon *mon = &gPlayerParty[gUnknown_0203CEC8.unk9];
u16 item = GetMonData(mon, MON_DATA_HELD_ITEM);
@@ -3250,19 +4340,19 @@ static void sub_81B48DC(u8 taskId)
static void sub_81B4988(u8 taskId)
{
struct Pokemon *mon = &gPlayerParty[gUnknown_0203CEC8.unk9];
- u16 itemClear;
if (sub_81B1BD4() != TRUE)
{
- itemClear = ITEM_NONE;
- SetMonData(mon, MON_DATA_HELD_ITEM, &itemClear);
+ u16 item = ITEM_NONE;
+
+ SetMonData(mon, MON_DATA_HELD_ITEM, &item);
sub_81B5C94(mon, &gUnknown_0203CEDC[gUnknown_0203CEC8.unk9]);
DisplayPartyPokemonOtherText(12, &gUnknown_0203CEDC[gUnknown_0203CEC8.unk9], 1);
gTasks[taskId].func = sub_81B1C1C;
}
}
-/*static*/ void sub_81B4A08(u8 taskId)
+static void CursorCb_Mail(u8 taskId)
{
PlaySE(SE_SELECT);
sub_81B302C(&gUnknown_0203CEC4->unkC[0]);
@@ -3271,10 +4361,10 @@ static void sub_81B4988(u8 taskId)
sub_81B31B0(2);
display_pokemon_menu_message(25);
gTasks[taskId].data[0] = 0xFF;
- gTasks[taskId].func = sub_81B3730;
+ gTasks[taskId].func = HandleMenuInput;
}
-/*static*/ void sub_81B4A6C(u8 taskId)
+static void CursorCb_Read(u8 taskId)
{
PlaySE(SE_SELECT);
gUnknown_0203CEC4->exitCallback = sub_81B4A98;
@@ -3292,7 +4382,7 @@ static void sub_81B4AE0(void)
InitPartyMenu(gUnknown_0203CEC8.unk8_0, 0xFF, gUnknown_0203CEC8.unkB, 1, 21, sub_81B36FC, gUnknown_0203CEC8.exitCallback);
}
-/*static*/ void brm_take_2(u8 taskId)
+static void CursorCb_TakeMail(u8 taskId)
{
PlaySE(SE_SELECT);
sub_81B302C(&gUnknown_0203CEC4->unkC[1]);
@@ -3373,7 +4463,7 @@ static void sub_81B4C94(u8 taskId)
}
}
-/*static*/ void sub_81B4D78(u8 taskId)
+static void CursorCb_Cancel2(u8 taskId)
{
struct Pokemon *mon = &gPlayerParty[gUnknown_0203CEC8.unk9];
@@ -3393,10 +4483,10 @@ static void sub_81B4C94(u8 taskId)
display_pokemon_menu_message(26);
}
gTasks[taskId].data[0] = 0xFF;
- gTasks[taskId].func = sub_81B3730;
+ gTasks[taskId].func = HandleMenuInput;
}
-/*static*/ void brm_shift_sendout(u8 taskId)
+static void CursorCb_SendMon(u8 taskId)
{
PlaySE(SE_SELECT);
sub_81B302C(&gUnknown_0203CEC4->unkC[0]);
@@ -3412,7 +4502,7 @@ static void sub_81B4C94(u8 taskId)
}
}
-/*static*/ void sub_81B4E8C(u8 taskId)
+static void CursorCb_Enter(u8 taskId)
{
u8 unk;
u8 i;
@@ -3448,7 +4538,7 @@ static void sub_81B4F88(void)
sub_81B0FCC(gUnknown_0203CEC8.unk9, 1);
}
-/*static*/ void sub_81B4FA8(u8 taskId)
+static void CursorCb_NoEntry(u8 taskId)
{
u8 unk;
u8 i, j;
@@ -3477,13 +4567,13 @@ static void sub_81B4F88(void)
gTasks[taskId].func = sub_81B1370;
}
-/*static*/ void sub_81B50AC(u8 taskId)
+static void CursorCb_Store(u8 taskId)
{
PlaySE(SE_SELECT);
sub_81B12C0(taskId);
}
-/*static*/ void sub_81B50C8(u8 taskId)
+static void CursorCb_Register(u8 taskId)
{
u16 species2 = GetMonData(&gPlayerParty[gUnknown_0203CEC8.unk9], MON_DATA_SPECIES2);
u16 species = GetMonData(&gPlayerParty[gUnknown_0203CEC8.unk9], MON_DATA_SPECIES);
@@ -3510,7 +4600,7 @@ static void sub_81B4F88(void)
gTasks[taskId].func = sub_81B1C1C;
}
-/*static*/ void brm_trade_1(u8 taskId)
+static void CursorCb_Trade1(u8 taskId)
{
u16 species2 = GetMonData(&gPlayerParty[gUnknown_0203CEC8.unk9], MON_DATA_SPECIES2);
u16 species = GetMonData(&gPlayerParty[gUnknown_0203CEC8.unk9], MON_DATA_SPECIES);
@@ -3534,7 +4624,7 @@ static void sub_81B4F88(void)
}
}
-/*static*/ void sub_81B52E4(u8 taskId)
+static void CursorCb_Trade2(u8 taskId)
{
sub_81B302C(&gUnknown_0203CEC4->unkC[0]);
sub_81B302C(&gUnknown_0203CEC4->unkC[1]);
@@ -3587,79 +4677,81 @@ static void sub_81B5430(u8 taskId)
}
}
-/*static*/ void sub_81B5470(u8 taskId)
+static void CursorCb_FieldMove(u8 taskId)
{
- u8 fieldMove = gUnknown_0203CEC4->unkF[Menu_GetCursorPos()] - 19;
+ u8 fieldMove = gUnknown_0203CEC4->unkF[Menu_GetCursorPos()] - MENU_FIELD_MOVES;
const struct MapHeader *mapHeader;
PlaySE(SE_SELECT);
- if (gUnknown_08615D9C[fieldMove].fieldMoveFunc != NULL)
+ if (sFieldMoveCursorCallbacks[fieldMove].fieldMoveFunc == NULL)
+ return;
+
+ sub_81B302C(&gUnknown_0203CEC4->unkC[0]);
+ sub_81B302C(&gUnknown_0203CEC4->unkC[1]);
+ if (sub_81221AC() == TRUE || InUnionRoom() == TRUE)
{
- sub_81B302C(&gUnknown_0203CEC4->unkC[0]);
- sub_81B302C(&gUnknown_0203CEC4->unkC[1]);
- if (sub_81221AC() == TRUE || InUnionRoom() == TRUE)
+ if (fieldMove == FIELD_MOVE_MILK_DRINK || fieldMove == FIELD_MOVE_SOFT_BOILED)
+ display_pokemon_menu_message(13);
+ else
+ display_pokemon_menu_message(sFieldMoveCursorCallbacks[fieldMove].msgId);
+
+ gTasks[taskId].func = task_brm_cancel_1_on_keypad_a_or_b;
+ }
+ else
+ {
+ // All field moves before WATERFALL are HMs.
+ if (fieldMove <= FIELD_MOVE_WATERFALL && FlagGet(FLAG_BADGE01_GET + fieldMove) != TRUE)
{
- if (fieldMove == 11 || fieldMove == 12)
- display_pokemon_menu_message(13);
- else
- display_pokemon_menu_message(gUnknown_08615D9C[fieldMove].msgID);
- gTasks[taskId].func = task_brm_cancel_1_on_keypad_a_or_b;
+ sub_81B1B5C(gText_CantUseUntilNewBadge, 1);
+ gTasks[taskId].func = sub_81B1C1C;
}
- else
+ else if (sFieldMoveCursorCallbacks[fieldMove].fieldMoveFunc() == TRUE)
{
- if (fieldMove <= 7 && FlagGet(FLAG_BADGE01_GET + fieldMove) != TRUE)
- {
- sub_81B1B5C(gText_CantUseUntilNewBadge, 1);
- gTasks[taskId].func = sub_81B1C1C;
- }
- else if (gUnknown_08615D9C[fieldMove].fieldMoveFunc() == TRUE)
+ switch (fieldMove)
{
- switch (fieldMove)
- {
- case 11:
- case 12:
- sub_8161560(taskId);
- break;
- case 8:
- mapHeader = Overworld_GetMapHeaderByGroupAndId(gSaveBlock1Ptr->lastHealLocation.mapGroup, gSaveBlock1Ptr->lastHealLocation.mapNum);
- sub_81245DC(gStringVar1, mapHeader->regionMapSectionId);
- StringExpandPlaceholders(gStringVar4, gText_ReturnToHealingSpot);
- sub_81B5674(taskId);
- gUnknown_0203CEC4->data[0] = fieldMove;
- break;
- case 9:
- mapHeader = Overworld_GetMapHeaderByGroupAndId(gSaveBlock1Ptr->warp4.mapGroup, gSaveBlock1Ptr->warp4.mapNum);
- sub_81245DC(gStringVar1, mapHeader->regionMapSectionId);
- StringExpandPlaceholders(gStringVar4, gText_EscapeFromHere);
- sub_81B5674(taskId);
- gUnknown_0203CEC4->data[0] = fieldMove;
- break;
- case 5:
- gUnknown_0203CEC8.exitCallback = MCB2_FlyMap;
- sub_81B12C0(taskId);
- break;
- default:
- gUnknown_0203CEC8.exitCallback = CB2_ReturnToField;
- sub_81B12C0(taskId);
- break;
- }
+ case FIELD_MOVE_MILK_DRINK:
+ case FIELD_MOVE_SOFT_BOILED:
+ sub_8161560(taskId);
+ break;
+ case FIELD_MOVE_TELEPORT:
+ mapHeader = Overworld_GetMapHeaderByGroupAndId(gSaveBlock1Ptr->lastHealLocation.mapGroup, gSaveBlock1Ptr->lastHealLocation.mapNum);
+ sub_81245DC(gStringVar1, mapHeader->regionMapSectionId);
+ StringExpandPlaceholders(gStringVar4, gText_ReturnToHealingSpot);
+ sub_81B5674(taskId);
+ gUnknown_0203CEC4->data[0] = fieldMove;
+ break;
+ case FIELD_MOVE_DIG:
+ mapHeader = Overworld_GetMapHeaderByGroupAndId(gSaveBlock1Ptr->warp4.mapGroup, gSaveBlock1Ptr->warp4.mapNum);
+ sub_81245DC(gStringVar1, mapHeader->regionMapSectionId);
+ StringExpandPlaceholders(gStringVar4, gText_EscapeFromHere);
+ sub_81B5674(taskId);
+ gUnknown_0203CEC4->data[0] = fieldMove;
+ break;
+ case FIELD_MOVE_FLY:
+ gUnknown_0203CEC8.exitCallback = MCB2_FlyMap;
+ sub_81B12C0(taskId);
+ break;
+ default:
+ gUnknown_0203CEC8.exitCallback = CB2_ReturnToField;
+ sub_81B12C0(taskId);
+ break;
}
- else
+ }
+ else
+ {
+ switch (fieldMove)
{
- switch (fieldMove)
- {
- case 4:
- sub_81B5864();
- break;
- case 1:
- sub_81B57DC();
- break;
- default:
- display_pokemon_menu_message(gUnknown_08615D9C[fieldMove].msgID);
- break;
- }
- gTasks[taskId].func = task_brm_cancel_1_on_keypad_a_or_b;
+ case FIELD_MOVE_SURF:
+ sub_81B5864();
+ break;
+ case FIELD_MOVE_FLASH:
+ sub_81B57DC();
+ break;
+ default:
+ display_pokemon_menu_message(sFieldMoveCursorCallbacks[fieldMove].msgId);
+ break;
}
+ gTasks[taskId].func = task_brm_cancel_1_on_keypad_a_or_b;
}
}
}
@@ -3722,7 +4814,7 @@ static u16 brm_get_selected_species(void)
static void task_brm_cancel_1_on_keypad_a_or_b(u8 taskId)
{
if ((gMain.newKeys & A_BUTTON) || (gMain.newKeys & B_BUTTON))
- brm_cancel_1(taskId);
+ CursorCb_Cancel1(taskId);
}
static void sub_81B57DC(void)
@@ -3739,7 +4831,7 @@ static void hm_surf_run_dp02scr(void)
FieldEffectStart(FLDEFF_USE_SURF);
}
-bool8 sub_81B5820(void)
+static bool8 SetUpFieldMove_Surf(void)
{
if (PartyHasMonWithSurf() == TRUE && IsPlayerFacingSurfableFishableWater() == TRUE)
{
@@ -3752,17 +4844,18 @@ bool8 sub_81B5820(void)
static void sub_81B5864(void)
{
- if (TestPlayerAvatarFlags(8))
+ if (TestPlayerAvatarFlags(PLAYER_AVATAR_FLAG_SURFING))
display_pokemon_menu_message(9);
else
display_pokemon_menu_message(8);
}
-bool8 sub_81B5884(void)
+static bool8 SetUpFieldMove_Fly(void)
{
if (Overworld_MapTypeAllowsTeleportAndFly(gMapHeader.mapType) == TRUE)
return TRUE;
- return FALSE;
+ else
+ return FALSE;
}
void sub_81B58A8(void)
@@ -3776,7 +4869,7 @@ static void hm2_waterfall(void)
FieldEffectStart(FLDEFF_USE_WATERFALL);
}
-bool8 hm_prepare_waterfall(void)
+static bool8 SetUpFieldMove_Waterfall(void)
{
s16 x, y;
@@ -3796,7 +4889,7 @@ static void sub_81B5958(void)
FieldEffectStart(FLDEFF_USE_DIVE);
}
-bool8 sub_81B5974(void)
+static bool8 SetUpFieldMove_Dive(void)
{
gFieldEffectArguments[1] = TrySetDiveWarp();
if (gFieldEffectArguments[1] != 0)
@@ -4109,7 +5202,7 @@ void sub_81B617C(void)
u8 doubleBattleStatus;
bool8 inBattle;
u8 i;
- u8 msgIDMaybe;
+ u8 msgIdMaybe;
register TaskFunc task asm("r0");
if (gMain.inBattle)
@@ -4134,14 +5227,14 @@ void sub_81B617C(void)
}
}
task = sub_81B6280;
- msgIDMaybe = 0x7F;
+ msgIdMaybe = 0x7F;
}
else
{
- msgIDMaybe = (GetPocketByItemId(gSpecialVar_ItemId) == POCKET_TM_HM) ? 4 : 5;
+ msgIdMaybe = (GetPocketByItemId(gSpecialVar_ItemId) == POCKET_TM_HM) ? 4 : 5;
task = sub_81B1370;
}
- InitPartyMenu(inBattle, doubleBattleStatus, 3, 1, msgIDMaybe, task, callback);
+ InitPartyMenu(inBattle, doubleBattleStatus, 3, 1, msgIdMaybe, task, callback);
}
static void c2_815ABFC(void)
@@ -4553,22 +5646,22 @@ void dp05_pp_up(u8 taskId, TaskFunc task)
u16 ItemIdToBattleMoveId(u16 item)
{
u16 tmNumber = item - ITEM_TM01_FOCUS_PUNCH;
- return gUnknown_08616040[tmNumber];
+ return gTMHMMoves[tmNumber];
}
-bool8 sub_81B6D14(u16 move)
+bool8 IsMoveHm(u16 move)
{
u8 i;
for (i = 0; i < NUM_HIDDEN_MACHINES; i++)
{
- if (gUnknown_08616040[i + NUM_TECHNICAL_MACHINES] == move)
+ if (gTMHMMoves[i + NUM_TECHNICAL_MACHINES] == move)
return TRUE;
}
return FALSE;
}
-bool8 pokemon_has_move(struct Pokemon *mon, u16 move)
+bool8 MonKnowsMove(struct Pokemon *mon, u16 move)
{
u8 i;
@@ -4609,7 +5702,8 @@ void sub_81B6DC4(u8 taskId, TaskFunc task)
move[0] = ItemIdToBattleMoveId(item);
StringCopy(gStringVar2, gMoveNames[move[0]]);
move[1] = 0;
- switch (CanPartyPokemonLearnTMTutor(mon, item, 0))
+
+ switch (CanMonLearnTMTutor(mon, item, 0))
{
case CANNOT_LEARN_MOVE:
sub_81B6D98(taskId, gText_PkmnCantLearnMove);
@@ -4618,6 +5712,7 @@ void sub_81B6DC4(u8 taskId, TaskFunc task)
sub_81B6D98(taskId, gText_PkmnAlreadyKnows);
return;
}
+
if (GiveMoveToMon(mon, move[0]) != 0xFFFF)
{
gTasks[taskId].func = sub_81B6EB4;
@@ -4895,7 +5990,7 @@ static void sub_81B767C(u8 taskId)
schedule_bg_copy_tilemap_to_vram(2);
}
-static void sub_81B76C8(u8 taskIdUnused)
+static void sub_81B76C8(u8 taskId)
{
s16 *arrayPtr = gUnknown_0203CEC4->data;
@@ -5258,10 +6353,10 @@ static void sub_81B7E4C(u8 taskId)
mon = &gPlayerParty[gUnknown_0203CEC8.unk9];
move = &gUnknown_0203CEC8.unkE;
GetMonNickname(mon, gStringVar1);
- gUnknown_0203CEC8.unkE = sub_81B2360(gSpecialVar_0x8005);
+ gUnknown_0203CEC8.unkE = GetTutorMove(gSpecialVar_0x8005);
StringCopy(gStringVar2, gMoveNames[gUnknown_0203CEC8.unkE]);
move[1] = 2;
- switch (CanPartyPokemonLearnTMTutor(mon, 0, gSpecialVar_0x8005))
+ switch (CanMonLearnTMTutor(mon, 0, gSpecialVar_0x8005))
{
case CANNOT_LEARN_MOVE:
sub_81B6D98(taskId, gText_PkmnCantLearnMove);
@@ -5591,12 +6686,12 @@ static bool8 sub_81B8770(u8 slot)
static void sub_81B879C(u8 taskId)
{
- u8 msgID = sub_81B865C();
+ u8 msgId = sub_81B865C();
- if (msgID != 0xFF)
+ if (msgId != 0xFF)
{
PlaySE(SE_HAZURE);
- display_pokemon_menu_message(msgID);
+ display_pokemon_menu_message(msgId);
gTasks[taskId].func = sub_81B87E8;
}
else
@@ -5663,9 +6758,10 @@ static const u8* sub_81B88BC(void)
if (!(facilityNum != 8 && facilityNum != 9))
return gText_CancelBattle;
- if (facilityNum == FRONTIER_FACILITY_DOME && gSpecialVar_0x8005 == 2)
+ else if (facilityNum == FRONTIER_FACILITY_DOME && gSpecialVar_0x8005 == 2)
return gText_ReturnToWaitingRoom;
- return gText_CancelChallenge;
+ else
+ return gText_CancelChallenge;
}
void sub_81B8904(u8 initArg, MainCallback callback)
@@ -5723,7 +6819,6 @@ static bool8 sub_81B8A7C(void)
u8 slot = GetCursorSelectionMonId();
u8 newSlot;
u8 i;
- u8 neededToMatch;
if (IsMultiBattle() == TRUE && (slot == 1 || slot == 4 || slot == 5))
{
@@ -5764,8 +6859,8 @@ static bool8 sub_81B8A7C(void)
}
if (gUnknown_0203CEC8.unkB == 2)
{
- neededToMatch = gBattlerInMenuId;
- GetMonNickname(&gPlayerParty[pokemon_order_func(gBattlerPartyIndexes[neededToMatch])], gStringVar1);
+ u8 currBattler = gBattlerInMenuId;
+ GetMonNickname(&gPlayerParty[pokemon_order_func(gBattlerPartyIndexes[currBattler])], gStringVar1);
StringExpandPlaceholders(gStringVar4, gText_PkmnCantSwitchOut);
return FALSE;
}
diff --git a/src/pokemon_summary_screen.c b/src/pokemon_summary_screen.c
index 975b5e803..7d44463dd 100644
--- a/src/pokemon_summary_screen.c
+++ b/src/pokemon_summary_screen.c
@@ -2143,7 +2143,7 @@ static void sub_81C174C(u8 taskId)
static bool8 sub_81C18A8(void)
{
- if (pssData->firstMoveIndex == MAX_MON_MOVES || pssData->newMove == MOVE_NONE || sub_81B6D14(pssData->summary.moves[pssData->firstMoveIndex]) != 1)
+ if (pssData->firstMoveIndex == MAX_MON_MOVES || pssData->newMove == MOVE_NONE || IsMoveHm(pssData->summary.moves[pssData->firstMoveIndex]) != 1)
return TRUE;
else
return FALSE;
diff --git a/src/region_map.c b/src/region_map.c
index d7b53d631..4caf3147a 100644
--- a/src/region_map.c
+++ b/src/region_map.c
@@ -11,7 +11,6 @@
#include "overworld.h"
#include "constants/flags.h"
#include "event_data.h"
-#include "rom6.h"
#include "secret_base.h"
#include "string_util.h"
#include "international_string_util.h"
@@ -20,6 +19,8 @@
#include "constants/songs.h"
#include "m4a.h"
#include "field_effect.h"
+#include "field_specials.h"
+#include "fldeff.h"
#include "region_map.h"
#include "constants/region_map_sections.h"
#include "heal_location.h"
diff --git a/src/scrcmd.c b/src/scrcmd.c
index 9d9c62a82..7995238aa 100644
--- a/src/scrcmd.c
+++ b/src/scrcmd.c
@@ -1714,7 +1714,7 @@ bool8 ScrCmd_checkpartymove(struct ScriptContext *ctx)
if (!species)
break;
// UB: GetMonData() arguments don't match function definition
- if (!GetMonData(&gPlayerParty[i], MON_DATA_IS_EGG) && pokemon_has_move(&gPlayerParty[i], moveId) == TRUE)
+ if (!GetMonData(&gPlayerParty[i], MON_DATA_IS_EGG) && MonKnowsMove(&gPlayerParty[i], moveId) == TRUE)
{
gSpecialVar_Result = i;
gSpecialVar_0x8004 = species;
diff --git a/src/secret_base.c b/src/secret_base.c
index a32186419..7e7b10a9a 100644
--- a/src/secret_base.c
+++ b/src/secret_base.c
@@ -16,11 +16,13 @@
#include "overworld.h"
#include "fieldmap.h"
#include "field_camera.h"
+#include "field_specials.h"
#include "field_player_avatar.h"
#include "field_screen_effect.h"
#include "field_weather.h"
#include "event_object_movement.h"
#include "field_effect.h"
+#include "fldeff.h"
#include "fldeff_misc.h"
#include "metatile_behavior.h"
#include "map_name_popup.h"
@@ -32,7 +34,6 @@
#include "event_data.h"
#include "battle.h"
#include "battle_setup.h"
-#include "rom6.h"
#include "decoration.h"
#include "link.h"
#include "tv.h"
diff --git a/src/tv.c b/src/tv.c
index 0ae105580..3d2a25bdc 100644
--- a/src/tv.c
+++ b/src/tv.c
@@ -6,6 +6,8 @@
#include "event_data.h"
#include "fieldmap.h"
#include "field_camera.h"
+#include "field_specials.h"
+#include "fldeff.h"
#include "strings.h"
#include "string_util.h"
#include "international_string_util.h"
@@ -24,7 +26,6 @@
#include "event_scripts.h"
#include "shop.h"
#include "lilycove_lady.h"
-#include "rom6.h"
#include "pokedex.h"
#include "event_object_movement.h"
#include "text.h"