From dcefd3c593b4b80dfc3cdf388737440726397fe8 Mon Sep 17 00:00:00 2001 From: Sewef Date: Mon, 21 Oct 2019 18:01:18 +0200 Subject: Update battle_anim_effects_3.c --- src/battle_anim_effects_3.c | 66 ++++++++++++++++++++++----------------------- 1 file changed, 33 insertions(+), 33 deletions(-) diff --git a/src/battle_anim_effects_3.c b/src/battle_anim_effects_3.c index 772ef6182..cc690ea50 100755 --- a/src/battle_anim_effects_3.c +++ b/src/battle_anim_effects_3.c @@ -26,10 +26,10 @@ extern const struct SpriteTemplate gThoughtBubbleSpriteTemplate; -void sub_815A0D4(struct Sprite *); -void sub_815A1B0(struct Sprite *); -void sub_815A254(struct Sprite *); -void sub_815A2F0(struct Sprite *); +void AnimBlackSmoke(struct Sprite *); +void AnimWhiteHalo(struct Sprite *); +void AnimTealAlert(struct Sprite *); +void AnimMeanLookEye(struct Sprite *); void sub_815A6C4(struct Sprite *); void sub_815A7B0(struct Sprite *); void sub_815A7EC(struct Sprite *); @@ -121,7 +121,7 @@ static void AnimTask_TeeterDanceMovementStep(u8); static void AnimRecycleStep(struct Sprite *); static void AnimTask_SlackOffSquishStep(u8); -const union AnimCmd gUnknown_085CE004[] = +const union AnimCmd gScratchAnimCmds[] = { ANIMCMD_FRAME(0, 4), ANIMCMD_FRAME(16, 4), @@ -131,23 +131,23 @@ const union AnimCmd gUnknown_085CE004[] = ANIMCMD_END, }; -const union AnimCmd *const gUnknown_085CE01C[] = +const union AnimCmd *const gScratchAnimTable[] = { - gUnknown_085CE004, + gScratchAnimCmds, }; -const struct SpriteTemplate gUnknown_085CE020 = +const struct SpriteTemplate gScratchSpriteTemplate = { .tileTag = ANIM_TAG_SCRATCH, .paletteTag = ANIM_TAG_SCRATCH, .oam = &gOamData_AffineOff_ObjBlend_32x32, - .anims = gUnknown_085CE01C, + .anims = gScratchAnimTable, .images = NULL, .affineAnims = gDummySpriteAffineAnimTable, .callback = AnimSpriteOnMonPos, }; -const struct SpriteTemplate gUnknown_085CE038 = +const struct SpriteTemplate gBlackSmokeSpriteTemplate = { .tileTag = ANIM_TAG_BLACK_SMOKE, .paletteTag = ANIM_TAG_BLACK_SMOKE, @@ -155,10 +155,10 @@ const struct SpriteTemplate gUnknown_085CE038 = .anims = gDummySpriteAnimTable, .images = NULL, .affineAnims = gDummySpriteAffineAnimTable, - .callback = sub_815A0D4, + .callback = AnimBlackSmoke, }; -const struct SpriteTemplate gUnknown_085CE050 = +const struct SpriteTemplate gBlackBallSpriteTemplate = { .tileTag = ANIM_TAG_BLACK_BALL, .paletteTag = ANIM_TAG_BLACK_BALL, @@ -169,7 +169,7 @@ const struct SpriteTemplate gUnknown_085CE050 = .callback = AnimThrowProjectile, }; -const union AnimCmd gUnknown_085CE068[] = +const union AnimCmd gOpeningEyeAnimCmds[] = { ANIMCMD_FRAME(0, 40), ANIMCMD_FRAME(16, 8), @@ -177,23 +177,23 @@ const union AnimCmd gUnknown_085CE068[] = ANIMCMD_END, }; -const union AnimCmd *const gUnknown_085CE078[] = +const union AnimCmd *const gOpeningEyeAnimTable[] = { - gUnknown_085CE068, + gOpeningEyeAnimCmds, }; -const struct SpriteTemplate gUnknown_085CE07C = +const struct SpriteTemplate gOpeningEyeSpriteTemplate = { .tileTag = ANIM_TAG_OPENING_EYE, .paletteTag = ANIM_TAG_OPENING_EYE, .oam = &gOamData_AffineOff_ObjNormal_32x32, - .anims = gUnknown_085CE078, + .anims = gOpeningEyeAnimTable, .images = NULL, .affineAnims = gDummySpriteAffineAnimTable, .callback = AnimSpriteOnMonPos, }; -const struct SpriteTemplate gUnknown_085CE094 = +const struct SpriteTemplate gWhiteHaloSpriteTemplate = { .tileTag = ANIM_TAG_ROUND_WHITE_HALO, .paletteTag = ANIM_TAG_ROUND_WHITE_HALO, @@ -201,10 +201,10 @@ const struct SpriteTemplate gUnknown_085CE094 = .anims = gDummySpriteAnimTable, .images = NULL, .affineAnims = gDummySpriteAffineAnimTable, - .callback = sub_815A1B0, + .callback = AnimWhiteHalo, }; -const struct SpriteTemplate gUnknown_085CE0AC = +const struct SpriteTemplate gTealAlertSpriteTemplate = { .tileTag = ANIM_TAG_TEAL_ALERT, .paletteTag = ANIM_TAG_TEAL_ALERT, @@ -212,10 +212,10 @@ const struct SpriteTemplate gUnknown_085CE0AC = .anims = gDummySpriteAnimTable, .images = NULL, .affineAnims = gDummySpriteAffineAnimTable, - .callback = sub_815A254, + .callback = AnimTealAlert, }; -const union AffineAnimCmd gUnknown_085CE0C4[] = +const union AffineAnimCmd gMeanLookEyeAffineAnimCmds1[] = { AFFINEANIMCMD_FRAME(0x180, 0x180, 0, 0), AFFINEANIMCMD_FRAME(-0x20, 0x18, 0, 5), @@ -223,28 +223,28 @@ const union AffineAnimCmd gUnknown_085CE0C4[] = AFFINEANIMCMD_JUMP(1), }; -const union AffineAnimCmd gUnknown_085CE0E4[] = +const union AffineAnimCmd gMeanLookEyeAffineAnimCmds2[] = { AFFINEANIMCMD_FRAME(0x30, 0x30, 0, 0), AFFINEANIMCMD_FRAME(0x20, 0x20, 0, 6), AFFINEANIMCMD_END, }; -const union AffineAnimCmd *const gUnknown_085CE0FC[] = +const union AffineAnimCmd *const gMeanLookEyeAffineAnimTable[] = { - gUnknown_085CE0C4, - gUnknown_085CE0E4, + gMeanLookEyeAffineAnimCmds1, + gMeanLookEyeAffineAnimCmds2, }; -const struct SpriteTemplate gUnknown_085CE104 = +const struct SpriteTemplate gMeanLookEyeSpriteTemplate = { .tileTag = ANIM_TAG_EYE, .paletteTag = ANIM_TAG_EYE, .oam = &gOamData_AffineDouble_ObjBlend_64x64, .anims = gDummySpriteAnimTable, .images = NULL, - .affineAnims = gUnknown_085CE0FC, - .callback = sub_815A2F0, + .affineAnims = gMeanLookEyeAffineAnimTable, + .callback = AnimMeanLookEye, }; const struct SpriteTemplate gUnknown_085CE11C = @@ -1179,7 +1179,7 @@ const union AffineAnimCmd gSlackOffSquishAffineAnimCmds[] = AFFINEANIMCMD_END, }; -void sub_815A0D4(struct Sprite *sprite) +void AnimBlackSmoke(struct Sprite *sprite) { sprite->pos1.x += gBattleAnimArgs[0]; sprite->pos1.y += gBattleAnimArgs[1]; @@ -1217,7 +1217,7 @@ void sub_815A160(u8 taskId) DestroyAnimVisualTask(taskId); } -void sub_815A1B0(struct Sprite *sprite) +void AnimWhiteHalo(struct Sprite *sprite) { sprite->data[0] = 90; sprite->callback = WaitAnimForDuration; @@ -1244,7 +1244,7 @@ static void sub_815A234(struct Sprite *sprite) DestroyAnimSprite(sprite); } -void sub_815A254(struct Sprite *sprite) +void AnimTealAlert(struct Sprite *sprite) { u16 rotation; u8 x = GetBattlerSpriteCoord(gBattleAnimTarget, 2); @@ -1266,7 +1266,7 @@ void sub_815A254(struct Sprite *sprite) StoreSpriteCallbackInData6(sprite, DestroyAnimSprite); } -void sub_815A2F0(struct Sprite *sprite) +void AnimMeanLookEye(struct Sprite *sprite) { SetGpuReg(REG_OFFSET_BLDCNT, BLDCNT_TGT2_ALL | BLDCNT_EFFECT_BLEND); SetGpuReg(REG_OFFSET_BLDALPHA, BLDALPHA_BLEND(0, 16)); -- cgit v1.2.3 From afdc8da297d52d3bdcacb3d3935e9022e7a99c72 Mon Sep 17 00:00:00 2001 From: Sewef Date: Mon, 21 Oct 2019 18:06:36 +0200 Subject: Update battle_anim_scripts.s --- data/battle_anim_scripts.s | 74 +++++++++++++++++++++++----------------------- 1 file changed, 37 insertions(+), 37 deletions(-) diff --git a/data/battle_anim_scripts.s b/data/battle_anim_scripts.s index b3feb4f43..74a8b51d7 100644 --- a/data/battle_anim_scripts.s +++ b/data/battle_anim_scripts.s @@ -2086,7 +2086,7 @@ Move_MEAN_LOOK: createsprite gSimplePaletteBlendSpriteTemplate, ANIM_ATTACKER, 2, 1, 1, 0, 16, RGB_BLACK loopsewithpan SE_W109, SOUND_PAN_TARGET, 15, 4 waitplaysewithpan SE_W043, SOUND_PAN_TARGET, 0x55 - createsprite gUnknown_085CE104, ANIM_ATTACKER, 2 + createsprite gMeanLookEyeSpriteTemplate, ANIM_ATTACKER, 2 delay 120 createsprite gSimplePaletteBlendSpriteTemplate, ANIM_ATTACKER, 2, 1, 2, 16, 0, RGB_BLACK delay 30 @@ -2264,23 +2264,23 @@ Move_SMOKESCREEN: loadspritegfx ANIM_TAG_BLACK_SMOKE loadspritegfx ANIM_TAG_BLACK_BALL playsewithpan SE_W104, SOUND_PAN_ATTACKER - createsprite gUnknown_085CE050, ANIM_TARGET, 2, 20, 0, 0, 0, 35, -25 + createsprite gBlackBallSpriteTemplate, ANIM_TARGET, 2, 20, 0, 0, 0, 35, -25 waitforvisualfinish createvisualtask sub_815A160, 2 delay 2 playsewithpan SE_W028, SOUND_PAN_TARGET - createsprite gUnknown_085CE038, ANIM_TARGET, 4, 0, -12, 104, 0, 75 - createsprite gUnknown_085CE038, ANIM_TARGET, 4, 0, -12, 72, 1, 75 - createsprite gUnknown_085CE038, ANIM_TARGET, 4, 0, -6, 56, 1, 75 - createsprite gUnknown_085CE038, ANIM_TARGET, 4, 0, -6, 88, 0, 75 - createsprite gUnknown_085CE038, ANIM_TARGET, 4, 0, 0, 56, 0, 75 - createsprite gUnknown_085CE038, ANIM_TARGET, 4, 0, 0, 88, 1, 75 - createsprite gUnknown_085CE038, ANIM_TARGET, 4, 0, 6, 72, 0, 75 - createsprite gUnknown_085CE038, ANIM_TARGET, 4, 0, 6, 104, 1, 75 - createsprite gUnknown_085CE038, ANIM_TARGET, 4, 0, 12, 72, 0, 75 - createsprite gUnknown_085CE038, ANIM_TARGET, 4, 0, 12, 56, 1, 75 - createsprite gUnknown_085CE038, ANIM_TARGET, 4, 0, 18, 80, 0, 75 - createsprite gUnknown_085CE038, ANIM_TARGET, 4, 0, 18, 72, 1, 75 + createsprite gBlackSmokeSpriteTemplate, ANIM_TARGET, 4, 0, -12, 104, 0, 75 + createsprite gBlackSmokeSpriteTemplate, ANIM_TARGET, 4, 0, -12, 72, 1, 75 + createsprite gBlackSmokeSpriteTemplate, ANIM_TARGET, 4, 0, -6, 56, 1, 75 + createsprite gBlackSmokeSpriteTemplate, ANIM_TARGET, 4, 0, -6, 88, 0, 75 + createsprite gBlackSmokeSpriteTemplate, ANIM_TARGET, 4, 0, 0, 56, 0, 75 + createsprite gBlackSmokeSpriteTemplate, ANIM_TARGET, 4, 0, 0, 88, 1, 75 + createsprite gBlackSmokeSpriteTemplate, ANIM_TARGET, 4, 0, 6, 72, 0, 75 + createsprite gBlackSmokeSpriteTemplate, ANIM_TARGET, 4, 0, 6, 104, 1, 75 + createsprite gBlackSmokeSpriteTemplate, ANIM_TARGET, 4, 0, 12, 72, 0, 75 + createsprite gBlackSmokeSpriteTemplate, ANIM_TARGET, 4, 0, 12, 56, 1, 75 + createsprite gBlackSmokeSpriteTemplate, ANIM_TARGET, 4, 0, 18, 80, 0, 75 + createsprite gBlackSmokeSpriteTemplate, ANIM_TARGET, 4, 0, 18, 72, 1, 75 waitforvisualfinish end @@ -4623,8 +4623,8 @@ Move_MIND_READER: loadspritegfx ANIM_TAG_ROUND_WHITE_HALO monbg ANIM_DEF_PARTNER playsewithpan SE_W109, SOUND_PAN_TARGET - createsprite gUnknown_085CE07C, ANIM_ATTACKER, 5, 0, 0, 1, 0 - createsprite gUnknown_085CE094, ANIM_ATTACKER, 5 + createsprite gOpeningEyeSpriteTemplate, ANIM_ATTACKER, 5, 0, 0, 1, 0 + createsprite gWhiteHaloSpriteTemplate, ANIM_ATTACKER, 5 delay 40 playsewithpan SE_W043, SOUND_PAN_TARGET createvisualtask sub_8115A04, 2, 1, 1, 2, 0, 10, RGB_BLACK @@ -4634,26 +4634,26 @@ Move_MIND_READER: end MindReaderEffect: - createsprite gUnknown_085CE0AC, ANIM_ATTACKER, 4, 70, 0, 6 - createsprite gUnknown_085CE0AC, ANIM_ATTACKER, 4, 40, 40, 6 - createsprite gUnknown_085CE0AC, ANIM_ATTACKER, 4, 10, -60, 6 - createsprite gUnknown_085CE0AC, ANIM_ATTACKER, 4, -50, -40, 6 - createsprite gUnknown_085CE0AC, ANIM_ATTACKER, 4, -40, 40, 6 - createsprite gUnknown_085CE0AC, ANIM_ATTACKER, 4, 50, -50, 6 - delay 2 - createsprite gUnknown_085CE0AC, ANIM_ATTACKER, 4, 50, -30, 6 - createsprite gUnknown_085CE0AC, ANIM_ATTACKER, 4, 60, 10, 6 - createsprite gUnknown_085CE0AC, ANIM_ATTACKER, 4, 0, 60, 6 - createsprite gUnknown_085CE0AC, ANIM_ATTACKER, 4, 0, -40, 6 - createsprite gUnknown_085CE0AC, ANIM_ATTACKER, 4, -60, 20, 6 - createsprite gUnknown_085CE0AC, ANIM_ATTACKER, 4, -60, -30, 6 - delay 2 - createsprite gUnknown_085CE0AC, ANIM_ATTACKER, 4, -50, 50, 6 - createsprite gUnknown_085CE0AC, ANIM_ATTACKER, 4, -60, 20, 6 - createsprite gUnknown_085CE0AC, ANIM_ATTACKER, 4, -40, -40, 6 - createsprite gUnknown_085CE0AC, ANIM_ATTACKER, 4, 20, -60, 6 - createsprite gUnknown_085CE0AC, ANIM_ATTACKER, 4, 50, -50, 6 - createsprite gUnknown_085CE0AC, ANIM_ATTACKER, 4, 35, 40, 6 + createsprite gTealAlertSpriteTemplate, ANIM_ATTACKER, 4, 70, 0, 6 + createsprite gTealAlertSpriteTemplate, ANIM_ATTACKER, 4, 40, 40, 6 + createsprite gTealAlertSpriteTemplate, ANIM_ATTACKER, 4, 10, -60, 6 + createsprite gTealAlertSpriteTemplate, ANIM_ATTACKER, 4, -50, -40, 6 + createsprite gTealAlertSpriteTemplate, ANIM_ATTACKER, 4, -40, 40, 6 + createsprite gTealAlertSpriteTemplate, ANIM_ATTACKER, 4, 50, -50, 6 + delay 2 + createsprite gTealAlertSpriteTemplate, ANIM_ATTACKER, 4, 50, -30, 6 + createsprite gTealAlertSpriteTemplate, ANIM_ATTACKER, 4, 60, 10, 6 + createsprite gTealAlertSpriteTemplate, ANIM_ATTACKER, 4, 0, 60, 6 + createsprite gTealAlertSpriteTemplate, ANIM_ATTACKER, 4, 0, -40, 6 + createsprite gTealAlertSpriteTemplate, ANIM_ATTACKER, 4, -60, 20, 6 + createsprite gTealAlertSpriteTemplate, ANIM_ATTACKER, 4, -60, -30, 6 + delay 2 + createsprite gTealAlertSpriteTemplate, ANIM_ATTACKER, 4, -50, 50, 6 + createsprite gTealAlertSpriteTemplate, ANIM_ATTACKER, 4, -60, 20, 6 + createsprite gTealAlertSpriteTemplate, ANIM_ATTACKER, 4, -40, -40, 6 + createsprite gTealAlertSpriteTemplate, ANIM_ATTACKER, 4, 20, -60, 6 + createsprite gTealAlertSpriteTemplate, ANIM_ATTACKER, 4, 50, -50, 6 + createsprite gTealAlertSpriteTemplate, ANIM_ATTACKER, 4, 35, 40, 6 delay 2 return @@ -4912,7 +4912,7 @@ Move_SCRATCH: monbg ANIM_TARGET setalpha 12, 8 playsewithpan SE_W010, SOUND_PAN_TARGET - createsprite gUnknown_085CE020, ANIM_ATTACKER, 2, 0, 0, 1, 0 + createsprite gScratchSpriteTemplate, ANIM_ATTACKER, 2, 0, 0, 1, 0 createvisualtask AnimTask_ShakeMon, 2, ANIM_TARGET, 3, 0, 6, 1 waitforvisualfinish clearmonbg ANIM_TARGET -- cgit v1.2.3 From c8e0e89f8e42c7be552355e96b13065c3b12d2ef Mon Sep 17 00:00:00 2001 From: Sewef Date: Mon, 21 Oct 2019 18:19:07 +0200 Subject: battle_anim_effects_3 --- data/battle_anim_scripts.s | 44 +++++++------- src/battle_anim_effects_3.c | 140 ++++++++++++++++++++++---------------------- 2 files changed, 92 insertions(+), 92 deletions(-) diff --git a/data/battle_anim_scripts.s b/data/battle_anim_scripts.s index 74a8b51d7..16fa900f6 100644 --- a/data/battle_anim_scripts.s +++ b/data/battle_anim_scripts.s @@ -3340,7 +3340,7 @@ Move_RAPID_SPIN: loadspritegfx ANIM_TAG_IMPACT loadspritegfx ANIM_TAG_RAPID_SPIN monbg ANIM_ATTACKER - createsprite gUnknown_085CE288, ANIM_ATTACKER, 2, 0, 0, 32, -32, 40, -2 + createsprite gRapidSpinSpriteTemplate, ANIM_ATTACKER, 2, 0, 0, 32, -32, 40, -2 createvisualtask sub_815ADB0, 2, 0, 2, 0 loopsewithpan SE_W013B, SOUND_PAN_ATTACKER, 8, 4 waitforvisualfinish @@ -6086,14 +6086,14 @@ Move_SPIKES: monbg ANIM_DEF_PARTNER playsewithpan SE_W026, SOUND_PAN_ATTACKER waitplaysewithpan SE_W030, SOUND_PAN_TARGET, 28 - createsprite gUnknown_085CE11C, ANIM_TARGET, 2, 20, 0, 0, 24, 30 + createsprite gSpikesSpriteTemplate, ANIM_TARGET, 2, 20, 0, 0, 24, 30 delay 10 playsewithpan SE_W026, SOUND_PAN_ATTACKER waitplaysewithpan SE_W030, SOUND_PAN_TARGET, 28 - createsprite gUnknown_085CE11C, ANIM_TARGET, 2, 20, 0, -24, 24, 30 + createsprite gSpikesSpriteTemplate, ANIM_TARGET, 2, 20, 0, -24, 24, 30 delay 10 waitplaysewithpan SE_W030, SOUND_PAN_TARGET, 28 - createsprite gUnknown_085CE11C, ANIM_TARGET, 2, 20, 0, 24, 24, 30 + createsprite gSpikesSpriteTemplate, ANIM_TARGET, 2, 20, 0, 24, 24, 30 waitforvisualfinish clearmonbg ANIM_DEF_PARTNER end @@ -6986,7 +6986,7 @@ Move_LEER: monbgprio_28 ANIM_ATTACKER setalpha 8, 8 playsewithpan SE_W043, SOUND_PAN_ATTACKER - createsprite gUnknown_085CE150, ANIM_ATTACKER, 2, 24, -12 + createsprite gLeerSpriteTemplate, ANIM_ATTACKER, 2, 24, -12 createvisualtask AnimTask_ScaleMonAndRestore, 5, -5, -5, 10, ANIM_ATTACKER, 1 waitforvisualfinish delay 10 @@ -7958,26 +7958,26 @@ Move_SLEEP_TALK: loadspritegfx ANIM_TAG_LETTER_Z createvisualtask AnimTask_SwayMon, 5, 0, 4, 4096, 2, ANIM_ATTACKER delay 20 - createsprite gUnknown_085CE190, ANIM_TARGET, 2, 0, 20, 5, -1 + createsprite gLetterZSpriteTemplate, ANIM_TARGET, 2, 0, 20, 5, -1 playsewithpan SE_W173, SOUND_PAN_ATTACKER delay 6 - createsprite gUnknown_085CE190, ANIM_TARGET, 2, 0, 20, 5, -1 + createsprite gLetterZSpriteTemplate, ANIM_TARGET, 2, 0, 20, 5, -1 delay 6 - createsprite gUnknown_085CE190, ANIM_TARGET, 2, 0, 20, 5, -1 + createsprite gLetterZSpriteTemplate, ANIM_TARGET, 2, 0, 20, 5, -1 delay 20 - createsprite gUnknown_085CE190, ANIM_TARGET, 2, 0, 20, 5, -5 + createsprite gLetterZSpriteTemplate, ANIM_TARGET, 2, 0, 20, 5, -5 playsewithpan SE_W173, SOUND_PAN_ATTACKER delay 6 - createsprite gUnknown_085CE190, ANIM_TARGET, 2, 0, 20, 5, -5 + createsprite gLetterZSpriteTemplate, ANIM_TARGET, 2, 0, 20, 5, -5 delay 6 - createsprite gUnknown_085CE190, ANIM_TARGET, 2, 0, 20, 5, -5 + createsprite gLetterZSpriteTemplate, ANIM_TARGET, 2, 0, 20, 5, -5 delay 20 - createsprite gUnknown_085CE190, ANIM_TARGET, 2, 0, 20, 5, -3 + createsprite gLetterZSpriteTemplate, ANIM_TARGET, 2, 0, 20, 5, -3 playsewithpan SE_W173, SOUND_PAN_ATTACKER delay 6 - createsprite gUnknown_085CE190, ANIM_TARGET, 2, 0, 20, 5, -3 + createsprite gLetterZSpriteTemplate, ANIM_TARGET, 2, 0, 20, 5, -3 delay 6 - createsprite gUnknown_085CE190, ANIM_TARGET, 2, 0, 20, 5, -3 + createsprite gLetterZSpriteTemplate, ANIM_TARGET, 2, 0, 20, 5, -3 waitforvisualfinish end @@ -7993,7 +7993,7 @@ Move_HYPER_FANG: goto HyperFangOnPlayer HyperFangContinue: waitbgfadeout - createsprite gUnknown_085CE1DC, ANIM_TARGET, 2 + createsprite gFangSpriteTemplate, ANIM_TARGET, 2 waitbgfadein createvisualtask AnimTask_ShakeMon, 3, ANIM_TARGET, 0, 10, 10, 1 playsewithpan SE_W043, SOUND_PAN_TARGET @@ -8014,7 +8014,7 @@ HyperFangInContest: Move_TRI_ATTACK: loadspritegfx ANIM_TAG_TRI_FORCE_TRIANGLE - createsprite gUnknown_085CE2F8, ANIM_TARGET, 2, 16, 0 + createsprite gTriForceTriangleSpriteTemplate, ANIM_TARGET, 2, 16, 0 playsewithpan SE_W161, SOUND_PAN_ATTACKER delay 20 playsewithpan SE_W161, SOUND_PAN_ATTACKER @@ -8098,11 +8098,11 @@ Move_ENCORE: createvisualtask sub_815ABEC, 2 createvisualtask sub_8116960, 2, 248, 3, 0, 10, 0 waitforvisualfinish - createsprite gUnknown_085CE22C, ANIM_TARGET, 2, 0, -8 - createsprite gUnknown_085CE244, ANIM_ATTACKER, 2, -2, 0, 0, 0, 9 - createsprite gUnknown_085CE244, ANIM_ATTACKER, 2, 2, 0, 1, 0, 9 - createsprite gUnknown_085CE25C, ANIM_ATTACKER, 3, -2, 0, 0, 0, 9 - createsprite gUnknown_085CE25C, ANIM_ATTACKER, 3, 2, 0, 1, 0, 9 + createsprite gSpotlightSpriteTemplate, ANIM_TARGET, 2, 0, -8 + createsprite gClappingHandSpriteTemplate, ANIM_ATTACKER, 2, -2, 0, 0, 0, 9 + createsprite gClappingHandSpriteTemplate, ANIM_ATTACKER, 2, 2, 0, 1, 0, 9 + createsprite gClappingHand2SpriteTemplate, ANIM_ATTACKER, 3, -2, 0, 0, 0, 9 + createsprite gClappingHand2SpriteTemplate, ANIM_ATTACKER, 3, 2, 0, 1, 0, 9 delay 16 createvisualtask sub_8159244, 5, 223, SOUND_PAN_TARGET createvisualtask AnimTask_SwayMon, 5, 1, 8, 1536, 5, ANIM_TARGET @@ -8768,7 +8768,7 @@ Move_POISON_FANG: loadspritegfx ANIM_TAG_FANG_ATTACK loadspritegfx ANIM_TAG_POISON_BUBBLE playsewithpan SE_W044, SOUND_PAN_TARGET - createsprite gUnknown_085CE1DC, ANIM_TARGET, 2 + createsprite gFangSpriteTemplate, ANIM_TARGET, 2 delay 10 createvisualtask AnimTask_ShakeMon, 3, ANIM_TARGET, 3, 0, 10, 1 waitforvisualfinish diff --git a/src/battle_anim_effects_3.c b/src/battle_anim_effects_3.c index cc690ea50..c89d0fae6 100755 --- a/src/battle_anim_effects_3.c +++ b/src/battle_anim_effects_3.c @@ -30,14 +30,14 @@ void AnimBlackSmoke(struct Sprite *); void AnimWhiteHalo(struct Sprite *); void AnimTealAlert(struct Sprite *); void AnimMeanLookEye(struct Sprite *); -void sub_815A6C4(struct Sprite *); -void sub_815A7B0(struct Sprite *); +void AnimSpikes(struct Sprite *); +void AnimLeer(struct Sprite *); void sub_815A7EC(struct Sprite *); -void sub_815A8AC(struct Sprite *); -void sub_815A934(struct Sprite *); -void sub_815AAA4(struct Sprite *); -void sub_815ABD0(struct Sprite *); -void sub_815ACD0(struct Sprite *); +void AnimFang(struct Sprite *); +void AnimSpotlight(struct Sprite *); +void AnimClappingHand(struct Sprite *); +void AnimClappingHand2(struct Sprite *); +void AnimRapidSpin(struct Sprite *); void sub_815B27C(struct Sprite *); void sub_815B394(struct Sprite *); void sub_815B49C(struct Sprite *); @@ -247,7 +247,7 @@ const struct SpriteTemplate gMeanLookEyeSpriteTemplate = .callback = AnimMeanLookEye, }; -const struct SpriteTemplate gUnknown_085CE11C = +const struct SpriteTemplate gSpikesSpriteTemplate = { .tileTag = ANIM_TAG_SPIKES, .paletteTag = ANIM_TAG_SPIKES, @@ -255,10 +255,10 @@ const struct SpriteTemplate gUnknown_085CE11C = .anims = gDummySpriteAnimTable, .images = NULL, .affineAnims = gDummySpriteAffineAnimTable, - .callback = sub_815A6C4, + .callback = AnimSpikes, }; -const union AnimCmd gUnknown_085CE134[] = +const union AnimCmd gLeerAnimCmds[] = { ANIMCMD_FRAME(0, 3), ANIMCMD_FRAME(16, 3), @@ -268,57 +268,57 @@ const union AnimCmd gUnknown_085CE134[] = ANIMCMD_END, }; -const union AnimCmd *const gUnknown_085CE14C[] = +const union AnimCmd *const gLeerAnimTable[] = { - gUnknown_085CE134, + gLeerAnimCmds, }; -const struct SpriteTemplate gUnknown_085CE150 = +const struct SpriteTemplate gLeerSpriteTemplate = { .tileTag = ANIM_TAG_LEER, .paletteTag = ANIM_TAG_LEER, .oam = &gOamData_AffineOff_ObjNormal_32x32, - .anims = gUnknown_085CE14C, + .anims = gLeerAnimTable, .images = NULL, .affineAnims = gDummySpriteAffineAnimTable, - .callback = sub_815A7B0, + .callback = AnimLeer, }; -const union AnimCmd gUnknown_085CE168[] = +const union AnimCmd gLetterZAnimCmds[] = { ANIMCMD_FRAME(0, 3), ANIMCMD_END, }; -const union AnimCmd *const gUnknown_085CE170[] = +const union AnimCmd *const gLetterZAnimTable[] = { - gUnknown_085CE168, + gLetterZAnimCmds, }; -const union AffineAnimCmd gUnknown_085CE174[] = +const union AffineAnimCmd gLetterZAffineAnimCmds[] = { AFFINEANIMCMD_FRAME(-7, -7, -3, 16), AFFINEANIMCMD_FRAME(7, 7, 3, 16), AFFINEANIMCMD_JUMP(0), }; -const union AffineAnimCmd *const gUnknown_085CE18C[] = +const union AffineAnimCmd *const gLetterZAffineAnimTable[] = { - gUnknown_085CE174, + gLetterZAffineAnimCmds, }; -const struct SpriteTemplate gUnknown_085CE190 = +const struct SpriteTemplate gLetterZSpriteTemplate = { .tileTag = ANIM_TAG_LETTER_Z, .paletteTag = ANIM_TAG_LETTER_Z, .oam = &gOamData_AffineNormal_ObjNormal_32x32, - .anims = gUnknown_085CE170, + .anims = gLetterZAnimTable, .images = NULL, - .affineAnims = gUnknown_085CE18C, + .affineAnims = gLetterZAffineAnimTable, .callback = sub_815A7EC, }; -const union AnimCmd gUnknown_085CE1A8[] = +const union AnimCmd gFangAnimCmds[] = { ANIMCMD_FRAME(0, 8), ANIMCMD_FRAME(16, 16), @@ -327,66 +327,66 @@ const union AnimCmd gUnknown_085CE1A8[] = ANIMCMD_END, }; -const union AnimCmd *const gUnknown_085CE1BC[] = +const union AnimCmd *const gFangAnimTable[] = { - gUnknown_085CE1A8, + gFangAnimCmds, }; -const union AffineAnimCmd gUnknown_085CE1C0[] = +const union AffineAnimCmd gFangAffineAnimCmds[] = { AFFINEANIMCMD_FRAME(0x200, 0x200, 0, 0), AFFINEANIMCMD_FRAME(-0x20, -0x20, 0, 8), AFFINEANIMCMD_END, }; -const union AffineAnimCmd *const gUnknown_085CE1D8[] = +const union AffineAnimCmd *const gFangAffineAnimTable[] = { - gUnknown_085CE1C0, + gFangAffineAnimCmds, }; -const struct SpriteTemplate gUnknown_085CE1DC = +const struct SpriteTemplate gFangSpriteTemplate = { .tileTag = ANIM_TAG_FANG_ATTACK, .paletteTag = ANIM_TAG_FANG_ATTACK, .oam = &gOamData_AffineDouble_ObjNormal_32x32, - .anims = gUnknown_085CE1BC, + .anims = gFangAnimTable, .images = NULL, - .affineAnims = gUnknown_085CE1D8, - .callback = sub_815A8AC, + .affineAnims = gFangAffineAnimTable, + .callback = AnimFang, }; -const union AffineAnimCmd gUnknown_085CE1F4[] = +const union AffineAnimCmd gSpotlightAffineAnimCmds1[] = { AFFINEANIMCMD_FRAME(0x0, 0x180, 0, 0), AFFINEANIMCMD_FRAME(0x10, 0x0, 0, 20), AFFINEANIMCMD_END, }; -const union AffineAnimCmd gUnknown_085CE20C[] = +const union AffineAnimCmd gSpotlightAffineAnimCmds2[] = { AFFINEANIMCMD_FRAME(0x140, 0x180, 0, 0), AFFINEANIMCMD_FRAME(-0x10, 0x0, 0, 19), AFFINEANIMCMD_END, }; -const union AffineAnimCmd *const gUnknown_085CE224[] = +const union AffineAnimCmd *const gSpotlightAffineAnimTable[] = { - gUnknown_085CE1F4, - gUnknown_085CE20C, + gSpotlightAffineAnimCmds1, + gSpotlightAffineAnimCmds2, }; -const struct SpriteTemplate gUnknown_085CE22C = +const struct SpriteTemplate gSpotlightSpriteTemplate = { .tileTag = ANIM_TAG_SPOTLIGHT, .paletteTag = ANIM_TAG_SPOTLIGHT, .oam = &gOamData_AffineDouble_ObjNormal_64x64, .anims = gDummySpriteAnimTable, .images = NULL, - .affineAnims = gUnknown_085CE224, - .callback = sub_815A934, + .affineAnims = gSpotlightAffineAnimTable, + .callback = AnimSpotlight, }; -const struct SpriteTemplate gUnknown_085CE244 = +const struct SpriteTemplate gClappingHandSpriteTemplate = { .tileTag = ANIM_TAG_TAG_HAND, .paletteTag = ANIM_TAG_TAG_HAND, @@ -394,10 +394,10 @@ const struct SpriteTemplate gUnknown_085CE244 = .anims = gDummySpriteAnimTable, .images = NULL, .affineAnims = gDummySpriteAffineAnimTable, - .callback = sub_815AAA4, + .callback = AnimClappingHand, }; -const struct SpriteTemplate gUnknown_085CE25C = +const struct SpriteTemplate gClappingHand2SpriteTemplate = { .tileTag = ANIM_TAG_TAG_HAND, .paletteTag = ANIM_TAG_TAG_HAND, @@ -405,10 +405,10 @@ const struct SpriteTemplate gUnknown_085CE25C = .anims = gDummySpriteAnimTable, .images = NULL, .affineAnims = gDummySpriteAffineAnimTable, - .callback = sub_815ABD0, + .callback = AnimClappingHand2, }; -const union AnimCmd gUnknown_085CE274[] = +const union AnimCmd gRapidSpinAnimCmds[] = { ANIMCMD_FRAME(0, 2), ANIMCMD_FRAME(8, 2), @@ -416,20 +416,20 @@ const union AnimCmd gUnknown_085CE274[] = ANIMCMD_JUMP(0), }; -const union AnimCmd *const gUnknown_085CE284[] = +const union AnimCmd *const gRapidSpinAnimTable[] = { - gUnknown_085CE274, + gRapidSpinAnimCmds, }; -const struct SpriteTemplate gUnknown_085CE288 = +const struct SpriteTemplate gRapidSpinSpriteTemplate = { .tileTag = ANIM_TAG_RAPID_SPIN, .paletteTag = ANIM_TAG_RAPID_SPIN, .oam = &gOamData_AffineOff_ObjNormal_32x16, - .anims = gUnknown_085CE284, + .anims = gRapidSpinAnimTable, .images = NULL, .affineAnims = gDummySpriteAffineAnimTable, - .callback = sub_815ACD0, + .callback = AnimRapidSpin, }; const union AffineAnimCmd gUnknown_085CE2A0[] = @@ -440,18 +440,18 @@ const union AffineAnimCmd gUnknown_085CE2A0[] = AFFINEANIMCMD_END, }; -const union AnimCmd gUnknown_085CE2C0[] = +const union AnimCmd gTriForceTriangleAnimCmds[] = { ANIMCMD_FRAME(0, 8), ANIMCMD_END, }; -const union AnimCmd *const gUnknown_085CE2C8[] = +const union AnimCmd *const gTriForceTriangleAnimTable[] = { - gUnknown_085CE2C0, + gTriForceTriangleAnimCmds, }; -const union AffineAnimCmd gUnknown_085CE2CC[] = +const union AffineAnimCmd gTriForceTriangleAffineAnimCmds[] = { AFFINEANIMCMD_FRAME(0, 0, 5, 40), AFFINEANIMCMD_FRAME(0, 0, 10, 10), @@ -460,19 +460,19 @@ const union AffineAnimCmd gUnknown_085CE2CC[] = AFFINEANIMCMD_JUMP(0), }; -const union AffineAnimCmd *const gUnknown_085CE2F4[] = +const union AffineAnimCmd *const gTriForceTriangleAffineAnimTable[] = { - gUnknown_085CE2CC, + gTriForceTriangleAffineAnimCmds, }; -const struct SpriteTemplate gUnknown_085CE2F8 = +const struct SpriteTemplate gTriForceTriangleSpriteTemplate = { .tileTag = ANIM_TAG_TRI_FORCE_TRIANGLE, .paletteTag = ANIM_TAG_TRI_FORCE_TRIANGLE, .oam = &gOamData_AffineDouble_ObjNormal_64x64, - .anims = gUnknown_085CE2C8, + .anims = gTriForceTriangleAnimTable, .images = NULL, - .affineAnims = gUnknown_085CE2F4, + .affineAnims = gTriForceTriangleAffineAnimTable, .callback = sub_815B27C, }; @@ -762,7 +762,7 @@ const struct SpriteTemplate gFlatterSpotlightSpriteTemplate = .oam = &gOamData_AffineDouble_ObjNormal_64x64, .anims = gDummySpriteAnimTable, .images = NULL, - .affineAnims = gUnknown_085CE224, + .affineAnims = gSpotlightAffineAnimTable, .callback = AnimFlatterSpotlight, }; @@ -1426,7 +1426,7 @@ static void sub_815A5F0(u8 taskId) DestroyTask(taskId); } -void sub_815A6C4(struct Sprite *sprite) +void AnimSpikes(struct Sprite *sprite) { u16 x; u16 y; @@ -1466,7 +1466,7 @@ static void sub_815A76C(struct Sprite *sprite) DestroyAnimSprite(sprite); } -void sub_815A7B0(struct Sprite *sprite) +void AnimLeer(struct Sprite *sprite) { SetSpriteCoordsToAnimAttackerCoords(sprite); SetAnimSpriteInitialXOffset(sprite, gBattleAnimArgs[0]); @@ -1513,7 +1513,7 @@ void sub_815A7EC(struct Sprite *sprite) DestroyAnimSprite(sprite); } -void sub_815A8AC(struct Sprite *sprite) +void AnimFang(struct Sprite *sprite) { if (sprite->animEnded) DestroyAnimSprite(sprite); @@ -1539,7 +1539,7 @@ void AnimTask_IsHealingMove(u8 taskId) DestroyAnimVisualTask(taskId); } -void sub_815A934(struct Sprite *sprite) +void AnimSpotlight(struct Sprite *sprite) { SetGpuReg(REG_OFFSET_WINOUT, WINOUT_WIN01_BG_ALL | WINOUT_WIN01_OBJ | WINOUT_WIN01_CLR | WINOUT_WINOBJ_BG_ALL | WINOUT_WINOBJ_OBJ); SetGpuRegBits(REG_OFFSET_DISPCNT, DISPCNT_OBJWIN_ON); @@ -1604,7 +1604,7 @@ static void sub_815AA6C(struct Sprite *sprite) DestroyAnimSprite(sprite); } -void sub_815AAA4(struct Sprite *sprite) +void AnimClappingHand(struct Sprite *sprite) { if (gBattleAnimArgs[3] == 0) { @@ -1665,11 +1665,11 @@ static void sub_815AB5C(struct Sprite *sprite) DestroyAnimSprite(sprite); } -void sub_815ABD0(struct Sprite *sprite) +void AnimClappingHand2(struct Sprite *sprite) { sprite->oam.objMode = ST_OAM_OBJ_WINDOW; sprite->data[3] = 255; - sub_815AAA4(sprite); + AnimClappingHand(sprite); } void sub_815ABEC(u8 taskId) @@ -1706,7 +1706,7 @@ void sub_815AC8C(u8 taskId) DestroyAnimVisualTask(taskId); } -void sub_815ACD0(struct Sprite *sprite) +void AnimRapidSpin(struct Sprite *sprite) { if (gBattleAnimArgs[0] == 0) { -- cgit v1.2.3 From b24e7a59331f308e809ba30049c501dcc5a663f8 Mon Sep 17 00:00:00 2001 From: Sewef Date: Mon, 21 Oct 2019 18:29:59 +0200 Subject: battle_anim_effects_3 (2) --- data/battle_anim_scripts.s | 24 +++++++++---------- src/battle_anim_effects_3.c | 58 ++++++++++++++++++++++----------------------- src/battle_anim_special.c | 4 ++-- 3 files changed, 43 insertions(+), 43 deletions(-) diff --git a/data/battle_anim_scripts.s b/data/battle_anim_scripts.s index 16fa900f6..9172ee67a 100644 --- a/data/battle_anim_scripts.s +++ b/data/battle_anim_scripts.s @@ -1657,9 +1657,9 @@ Move_DEFENSE_CURL: loadspritegfx ANIM_TAG_ECLIPSING_ORB loopsewithpan SE_W161, SOUND_PAN_ATTACKER, 18, 3 createvisualtask AnimTask_SetGreyscaleOrOriginalPal, 5, ANIM_ATTACKER, 0 - createvisualtask sub_815B338, 5 + createvisualtask AnimTask_DefenseCurlDeformMon, 5 waitforvisualfinish - createsprite gUnknown_085CE338, ANIM_ATTACKER, 2, 0, 6, 0, 1 + createsprite gEclipsingOrbSpriteTemplate, ANIM_ATTACKER, 2, 0, 6, 0, 1 waitforvisualfinish createvisualtask AnimTask_SetGreyscaleOrOriginalPal, 5, ANIM_ATTACKER, 1 waitforvisualfinish @@ -7915,7 +7915,7 @@ Move_BATON_PASS: loadspritegfx ANIM_TAG_POKEBALL playsewithpan SE_W226, SOUND_PAN_ATTACKER createvisualtask sub_8115A04, 2, 31, 1, 2, 0, 11, RGB(31, 22, 30) - createsprite gUnknown_085CE370, ANIM_ATTACKER, 2 + createsprite gBatonPassPokeballSpriteTemplate, ANIM_ATTACKER, 2 end Move_PERISH_SONG: @@ -8146,7 +8146,7 @@ Move_WISH: createsprite gSimplePaletteBlendSpriteTemplate, ANIM_ATTACKER, 2, 1, 3, 0, 10, RGB_BLACK waitforvisualfinish panse_27 SE_W115, SOUND_PAN_TARGET, SOUND_PAN_ATTACKER, -3, 0 - createsprite gUnknown_085CE388, ANIM_ATTACKER, 40 + createsprite gWishStarSpriteTemplate, ANIM_ATTACKER, 40 waitforvisualfinish delay 60 loopsewithpan SE_W215, SOUND_PAN_ATTACKER, 16, 3 @@ -8160,7 +8160,7 @@ Move_STOCKPILE: loadspritegfx ANIM_TAG_GRAY_ORB playsewithpan SE_W025, SOUND_PAN_ATTACKER createvisualtask sub_8115A04, 2, 2, 8, 1, 0, 12, RGB_WHITE - createvisualtask sub_815B65C, 5 + createvisualtask AnimTask_StockpileDeformMon, 5 call Stockpile1 call Stockpile1 waitforvisualfinish @@ -8189,7 +8189,7 @@ Move_SPIT_UP: loadspritegfx ANIM_TAG_RED_ORB_2 loadspritegfx ANIM_TAG_IMPACT playsewithpan SE_W036, SOUND_PAN_ATTACKER - createvisualtask sub_815B6B4, 5 + createvisualtask AnimTask_SpitUpDeformMon, 5 createvisualtask AnimTask_ShakeMon2, 2, ANIM_ATTACKER, 1, 0, 8, 2 delay 45 playsewithpan SE_W255, SOUND_PAN_ATTACKER @@ -8236,7 +8236,7 @@ Move_SWALLOW: loadspritegfx ANIM_TAG_BLUE_ORB loadspritegfx ANIM_TAG_BLUE_STAR playsewithpan SE_W036, SOUND_PAN_ATTACKER - createvisualtask sub_815B778, 5 + createvisualtask AnimTask_SwallowDeformMon, 5 createvisualtask AnimTask_ShakeMon2, 2, ANIM_ATTACKER, 1, 0, 8, 2 delay 38 playsewithpan SE_W255, SOUND_PAN_ATTACKER @@ -8249,15 +8249,15 @@ SwallowContinue: call HealingEffect end SwallowEffect: - createsprite gUnknown_085CE418, ANIM_ATTACKER, 2, 0, -8 + createsprite gSwallowBlueOrbSpriteTemplate, ANIM_ATTACKER, 2, 0, -8 delay 1 - createsprite gUnknown_085CE418, ANIM_ATTACKER, 2, -24, -8 + createsprite gSwallowBlueOrbSpriteTemplate, ANIM_ATTACKER, 2, -24, -8 delay 1 - createsprite gUnknown_085CE418, ANIM_ATTACKER, 2, 16, -8 + createsprite gSwallowBlueOrbSpriteTemplate, ANIM_ATTACKER, 2, 16, -8 delay 1 - createsprite gUnknown_085CE418, ANIM_ATTACKER, 2, -16, -8 + createsprite gSwallowBlueOrbSpriteTemplate, ANIM_ATTACKER, 2, -16, -8 delay 1 - createsprite gUnknown_085CE418, ANIM_ATTACKER, 2, 24, -8 + createsprite gSwallowBlueOrbSpriteTemplate, ANIM_ATTACKER, 2, 24, -8 delay 1 return SwallowGood: diff --git a/src/battle_anim_effects_3.c b/src/battle_anim_effects_3.c index c89d0fae6..978b57d5a 100755 --- a/src/battle_anim_effects_3.c +++ b/src/battle_anim_effects_3.c @@ -39,10 +39,10 @@ void AnimClappingHand(struct Sprite *); void AnimClappingHand2(struct Sprite *); void AnimRapidSpin(struct Sprite *); void sub_815B27C(struct Sprite *); -void sub_815B394(struct Sprite *); -void sub_815B49C(struct Sprite *); +void AnimBatonPassPokeball(struct Sprite *); +void AnimWishStar(struct Sprite *); void AnimMiniTwinklingStar(struct Sprite *); -void sub_815B70C(struct Sprite *); +void AnimSwallowBlueOrb(struct Sprite *); void sub_815BE04(struct Sprite *); void AnimWeakFrustrationAngerMark(struct Sprite *); void AnimSweetScentPetal(struct Sprite *); @@ -476,7 +476,7 @@ const struct SpriteTemplate gTriForceTriangleSpriteTemplate = .callback = sub_815B27C, }; -const union AnimCmd gUnknown_085CE310[] = +const union AnimCmd gEclipsingOrbAnimCmds[] = { ANIMCMD_FRAME(0, 3), ANIMCMD_FRAME(16, 3), @@ -489,23 +489,23 @@ const union AnimCmd gUnknown_085CE310[] = ANIMCMD_END, }; -const union AnimCmd *const gUnknown_085CE334[] = +const union AnimCmd *const gEclipsingOrbAnimTable[] = { - gUnknown_085CE310, + gEclipsingOrbAnimCmds, }; -const struct SpriteTemplate gUnknown_085CE338 = +const struct SpriteTemplate gEclipsingOrbSpriteTemplate = { .tileTag = ANIM_TAG_ECLIPSING_ORB, .paletteTag = ANIM_TAG_ECLIPSING_ORB, .oam = &gOamData_AffineOff_ObjNormal_32x32, - .anims = gUnknown_085CE334, + .anims = gEclipsingOrbAnimTable, .images = NULL, .affineAnims = gDummySpriteAffineAnimTable, .callback = AnimSpriteOnMonPos, }; -const union AffineAnimCmd gUnknown_085CE350[] = +const union AffineAnimCmd DefenseCurlDeformMonAffineAnimCmds[] = { AFFINEANIMCMD_FRAME(-12, 20, 0, 8), AFFINEANIMCMD_FRAME(12, -20, 0, 8), @@ -513,7 +513,7 @@ const union AffineAnimCmd gUnknown_085CE350[] = AFFINEANIMCMD_END, }; -const struct SpriteTemplate gUnknown_085CE370 = +const struct SpriteTemplate gBatonPassPokeballSpriteTemplate = { .tileTag = ANIM_TAG_POKEBALL, .paletteTag = ANIM_TAG_POKEBALL, @@ -521,10 +521,10 @@ const struct SpriteTemplate gUnknown_085CE370 = .anims = gDummySpriteAnimTable, .images = NULL, .affineAnims = gDummySpriteAffineAnimTable, - .callback = sub_815B394, + .callback = AnimBatonPassPokeball, }; -const struct SpriteTemplate gUnknown_085CE388 = +const struct SpriteTemplate gWishStarSpriteTemplate = { .tileTag = ANIM_TAG_GOLD_STARS, .paletteTag = ANIM_TAG_GOLD_STARS, @@ -532,7 +532,7 @@ const struct SpriteTemplate gUnknown_085CE388 = .anims = gDummySpriteAnimTable, .images = NULL, .affineAnims = gDummySpriteAffineAnimTable, - .callback = sub_815B49C, + .callback = AnimWishStar, }; const struct SpriteTemplate gMiniTwinklingStarSpriteTemplate = @@ -546,7 +546,7 @@ const struct SpriteTemplate gMiniTwinklingStarSpriteTemplate = .callback = AnimMiniTwinklingStar, }; -const union AffineAnimCmd gUnknown_085CE3B8[] = +const union AffineAnimCmd gStockpileDeformMonAffineAnimCmds[] = { AFFINEANIMCMD_FRAME(8, -8, 0, 12), AFFINEANIMCMD_FRAME(-16, 16, 0, 12), @@ -555,7 +555,7 @@ const union AffineAnimCmd gUnknown_085CE3B8[] = AFFINEANIMCMD_END, }; -const union AffineAnimCmd gUnknown_085CE3E0[] = +const union AffineAnimCmd gSpitUpDeformMonAffineAnimCmds[] = { AFFINEANIMCMD_FRAME(0, 6, 0, 20), AFFINEANIMCMD_FRAME(0, 0, 0, 20), @@ -566,7 +566,7 @@ const union AffineAnimCmd gUnknown_085CE3E0[] = AFFINEANIMCMD_END, }; -const struct SpriteTemplate gUnknown_085CE418 = +const struct SpriteTemplate gSwallowBlueOrbSpriteTemplate = { .tileTag = ANIM_TAG_BLUE_ORB, .paletteTag = ANIM_TAG_BLUE_ORB, @@ -574,10 +574,10 @@ const struct SpriteTemplate gUnknown_085CE418 = .anims = gDummySpriteAnimTable, .images = NULL, .affineAnims = gDummySpriteAffineAnimTable, - .callback = sub_815B70C, + .callback = AnimSwallowBlueOrb, }; -const union AffineAnimCmd gUnknown_085CE430[] = +const union AffineAnimCmd gSwallowDeformMonAffineAnimCmds[] = { AFFINEANIMCMD_FRAME(0, 6, 0, 20), AFFINEANIMCMD_FRAME(0, 0, 0, 20), @@ -2044,12 +2044,12 @@ void sub_815B27C(struct Sprite *sprite) } } -void sub_815B338(u8 taskId) +void AnimTask_DefenseCurlDeformMon(u8 taskId) { switch (gTasks[taskId].data[0]) { case 0: - PrepareAffineAnimInTaskData(&gTasks[taskId], GetAnimBattlerSpriteId(ANIM_ATTACKER), gUnknown_085CE350); + PrepareAffineAnimInTaskData(&gTasks[taskId], GetAnimBattlerSpriteId(ANIM_ATTACKER), DefenseCurlDeformMonAffineAnimCmds); gTasks[taskId].data[0]++; break; case 1: @@ -2059,7 +2059,7 @@ void sub_815B338(u8 taskId) } } -void sub_815B394(struct Sprite *sprite) +void AnimBatonPassPokeball(struct Sprite *sprite) { u8 spriteId = GetAnimBattlerSpriteId(ANIM_ATTACKER); @@ -2102,7 +2102,7 @@ void sub_815B394(struct Sprite *sprite) } } -void sub_815B49C(struct Sprite *sprite) +void AnimWishStar(struct Sprite *sprite) { if (GetBattlerSide(gBattleAnimAttacker) != B_SIDE_PLAYER) sprite->pos1.x = -16; @@ -2187,11 +2187,11 @@ static void sub_815B5D0(struct Sprite *sprite) DestroySprite(sprite); } -void sub_815B65C(u8 taskId) +void AnimTask_StockpileDeformMon(u8 taskId) { if (!gTasks[taskId].data[0]) { - PrepareAffineAnimInTaskData(&gTasks[taskId], GetAnimBattlerSpriteId(ANIM_ATTACKER), gUnknown_085CE3B8); + PrepareAffineAnimInTaskData(&gTasks[taskId], GetAnimBattlerSpriteId(ANIM_ATTACKER), gStockpileDeformMonAffineAnimCmds); gTasks[taskId].data[0]++; } else @@ -2201,11 +2201,11 @@ void sub_815B65C(u8 taskId) } } -void sub_815B6B4(u8 taskId) +void AnimTask_SpitUpDeformMon(u8 taskId) { if (!gTasks[taskId].data[0]) { - PrepareAffineAnimInTaskData(&gTasks[taskId], GetAnimBattlerSpriteId(ANIM_ATTACKER), gUnknown_085CE3E0); + PrepareAffineAnimInTaskData(&gTasks[taskId], GetAnimBattlerSpriteId(ANIM_ATTACKER), gSpitUpDeformMonAffineAnimCmds); gTasks[taskId].data[0]++; } else @@ -2215,7 +2215,7 @@ void sub_815B6B4(u8 taskId) } } -void sub_815B70C(struct Sprite *sprite) +void AnimSwallowBlueOrb(struct Sprite *sprite) { switch (sprite->data[0]) { @@ -2234,11 +2234,11 @@ void sub_815B70C(struct Sprite *sprite) } } -void sub_815B778(u8 taskId) +void AnimTask_SwallowDeformMon(u8 taskId) { if (!gTasks[taskId].data[0]) { - PrepareAffineAnimInTaskData(&gTasks[taskId], GetAnimBattlerSpriteId(ANIM_ATTACKER), gUnknown_085CE430); + PrepareAffineAnimInTaskData(&gTasks[taskId], GetAnimBattlerSpriteId(ANIM_ATTACKER), gSwallowDeformMonAffineAnimCmds); gTasks[taskId].data[0]++; } else diff --git a/src/battle_anim_special.c b/src/battle_anim_special.c index 18d6700a8..6ff5ee893 100755 --- a/src/battle_anim_special.c +++ b/src/battle_anim_special.c @@ -403,7 +403,7 @@ const struct SpriteTemplate gBattleAnimSpriteTemplate_085E535C = .callback = sub_817330C, }; -extern const struct SpriteTemplate gUnknown_085CE388; +extern const struct SpriteTemplate gWishStarSpriteTemplate; extern const struct SpriteTemplate gMiniTwinklingStarSpriteTemplate; void unref_sub_8170478(u8 taskId) @@ -2081,7 +2081,7 @@ static void sub_8172FEC(u8 taskId) state = gTasks[taskId].data[11]; if (state == 0) { - spriteId = CreateSprite(&gUnknown_085CE388, x, y, 5); + spriteId = CreateSprite(&gWishStarSpriteTemplate, x, y, 5); } else if (state >= 0 && gTasks[taskId].data[11] < 4) { -- cgit v1.2.3 From 64cf2d70fab92e5619b650e860c97485f2f97aa3 Mon Sep 17 00:00:00 2001 From: Sewef Date: Mon, 21 Oct 2019 18:36:45 +0200 Subject: battle_anim_effects_3 (3) --- data/battle_anim_scripts.s | 6 ++--- src/battle_anim_effects_3.c | 66 ++++++++++++++++++++++----------------------- 2 files changed, 36 insertions(+), 36 deletions(-) diff --git a/data/battle_anim_scripts.s b/data/battle_anim_scripts.s index 9172ee67a..0edcd893b 100644 --- a/data/battle_anim_scripts.s +++ b/data/battle_anim_scripts.s @@ -8280,7 +8280,7 @@ Move_TRANSFORM: Move_MORNING_SUN: loadspritegfx ANIM_TAG_GREEN_STAR loadspritegfx ANIM_TAG_BLUE_STAR - createvisualtask sub_815BB84, 5 + createvisualtask AnimTask_MorningSunLightBeam, 5 delay 8 createvisualtask sub_8116620, 10, 0x781, 8, 0, 12, RGB_WHITE delay 14 @@ -8305,7 +8305,7 @@ Move_MORNING_SUN: call HealingEffect end MorningSun1: - createsprite gUnknown_085CE48C, ANIM_ATTACKER, 2, 30, 640 + createsprite gGreenStarSpriteTemplate, ANIM_ATTACKER, 2, 30, 640 delay 5 return @@ -10589,7 +10589,7 @@ General_DoomDesireHit: createsprite gSimplePaletteBlendSpriteTemplate, ANIM_ATTACKER, 2, 1, 3, 0, 16, RGB_WHITE waitforvisualfinish delay 10 - createvisualtask sub_815C0A4, 5 + createvisualtask AnimTask_DoomDesireLightBeam, 5 delay 9 playsewithpan SE_W109, SOUND_PAN_ATTACKER delay 9 diff --git a/src/battle_anim_effects_3.c b/src/battle_anim_effects_3.c index 978b57d5a..a7368f246 100755 --- a/src/battle_anim_effects_3.c +++ b/src/battle_anim_effects_3.c @@ -43,7 +43,7 @@ void AnimBatonPassPokeball(struct Sprite *); void AnimWishStar(struct Sprite *); void AnimMiniTwinklingStar(struct Sprite *); void AnimSwallowBlueOrb(struct Sprite *); -void sub_815BE04(struct Sprite *); +void AnimGreenStar(struct Sprite *); void AnimWeakFrustrationAngerMark(struct Sprite *); void AnimSweetScentPetal(struct Sprite *); void AnimPainSplitProjectile(struct Sprite *); @@ -86,9 +86,9 @@ static void sub_815B054(u8); static void sub_815B23C(struct Sprite *); static void sub_815B4D4(struct Sprite *); static void sub_815B5D0(struct Sprite *); -static void sub_815BF44(struct Sprite *); -static void sub_815BFF4(struct Sprite *); -static void sub_815C050(struct Sprite *); +static void AnimGreenStar_Step1(struct Sprite *); +static void AnimGreenStar_Step2(struct Sprite *); +static void AnimGreenStar_Callback(struct Sprite *); static void AnimTask_RockMonBackAndForthStep(u8); static void AnimSweetScentPetalStep(struct Sprite *); static void AnimTask_FlailMovementStep(u8); @@ -587,7 +587,7 @@ const union AffineAnimCmd gSwallowDeformMonAffineAnimCmds[] = AFFINEANIMCMD_END, }; -const s8 gUnknown_085CE460[] = +const s8 gMorningSunLightBeamCoordsTable[] = { 0xE8, 0x18, @@ -595,44 +595,44 @@ const s8 gUnknown_085CE460[] = 0x00, }; -const union AnimCmd gUnknown_085CE464[] = +const union AnimCmd gGreenStarAnimCmds1[] = { ANIMCMD_FRAME(0, 6), ANIMCMD_FRAME(4, 6), ANIMCMD_JUMP(0), }; -const union AnimCmd gUnknown_085CE470[] = +const union AnimCmd gGreenStarAnimCmds2[] = { ANIMCMD_FRAME(8, 6), ANIMCMD_END, }; -const union AnimCmd gUnknown_085CE478[] = +const union AnimCmd gGreenStarAnimCmds3[] = { ANIMCMD_FRAME(12, 6), ANIMCMD_END, }; -const union AnimCmd *const gUnknown_085CE480[] = +const union AnimCmd *const gGreenStarAnimTable[] = { - gUnknown_085CE464, - gUnknown_085CE470, - gUnknown_085CE478, + gGreenStarAnimCmds1, + gGreenStarAnimCmds2, + gGreenStarAnimCmds3, }; -const struct SpriteTemplate gUnknown_085CE48C = +const struct SpriteTemplate gGreenStarSpriteTemplate = { .tileTag = ANIM_TAG_GREEN_STAR, .paletteTag = ANIM_TAG_GREEN_STAR, .oam = &gOamData_AffineOff_ObjNormal_16x16, - .anims = gUnknown_085CE480, + .anims = gGreenStarAnimTable, .images = NULL, .affineAnims = gDummySpriteAffineAnimTable, - .callback = sub_815BE04, + .callback = AnimGreenStar, }; -const s8 gUnknown_085CE4A4[] = +const s8 gDoomDesireLightBeamCoordTable[] = { 0x78, 0x50, @@ -640,7 +640,7 @@ const s8 gUnknown_085CE4A4[] = 0x00, }; -const u8 gUnknown_085CE4A8[] = +const u8 gDoomDesireLightBeamDelayTable[] = { 0, 0, @@ -2373,7 +2373,7 @@ void sub_815BB58(u8 taskId) DestroyAnimVisualTask(taskId); } -void sub_815BB84(u8 taskId) +void AnimTask_MorningSunLightBeam(u8 taskId) { struct BattleAnimBgData animBg; @@ -2434,7 +2434,7 @@ void sub_815BB84(u8 taskId) if (!gTasks[taskId].data[1]) { - gBattle_BG1_X = gUnknown_085CE460[gTasks[taskId].data[2]] + gTasks[taskId].data[10]; + gBattle_BG1_X = gMorningSunLightBeamCoordsTable[gTasks[taskId].data[2]] + gTasks[taskId].data[10]; if (++gTasks[taskId].data[2] == 4) gTasks[taskId].data[0] = 4; else @@ -2465,7 +2465,7 @@ void sub_815BB84(u8 taskId) } } -void sub_815BE04(struct Sprite *sprite) +void AnimGreenStar(struct Sprite *sprite) { s16 xOffset; u8 spriteId1; @@ -2481,8 +2481,8 @@ void sub_815BE04(struct Sprite *sprite) sprite->data[1] = gBattleAnimArgs[0]; sprite->data[2] = gBattleAnimArgs[1]; - spriteId1 = CreateSprite(&gUnknown_085CE48C, sprite->pos1.x, sprite->pos1.y, sprite->subpriority + 1); - spriteId2 = CreateSprite(&gUnknown_085CE48C, sprite->pos1.x, sprite->pos1.y, sprite->subpriority + 1); + spriteId1 = CreateSprite(&gGreenStarSpriteTemplate, sprite->pos1.x, sprite->pos1.y, sprite->subpriority + 1); + spriteId2 = CreateSprite(&gGreenStarSpriteTemplate, sprite->pos1.x, sprite->pos1.y, sprite->subpriority + 1); StartSpriteAnim(&gSprites[spriteId1], 1); StartSpriteAnim(&gSprites[spriteId2], 2); @@ -2494,15 +2494,15 @@ void sub_815BE04(struct Sprite *sprite) gSprites[spriteId2].data[7] = -1; gSprites[spriteId1].invisible = 1; gSprites[spriteId2].invisible = 1; - gSprites[spriteId1].callback = sub_815C050; - gSprites[spriteId2].callback = sub_815C050; + gSprites[spriteId1].callback = AnimGreenStar_Callback; + gSprites[spriteId2].callback = AnimGreenStar_Callback; sprite->data[6] = spriteId1; sprite->data[7] = spriteId2; - sprite->callback = sub_815BF44; + sprite->callback = AnimGreenStar_Step1; } -static void sub_815BF44(struct Sprite *sprite) +static void AnimGreenStar_Step1(struct Sprite *sprite) { s16 delta = sprite->data[3] + sprite->data[2]; sprite->pos2.y -= delta >> 8; @@ -2523,11 +2523,11 @@ static void sub_815BF44(struct Sprite *sprite) if (--sprite->data[1] == -1) { sprite->invisible = 1; - sprite->callback = sub_815BFF4; + sprite->callback = AnimGreenStar_Step2; } } -static void sub_815BFF4(struct Sprite *sprite) +static void AnimGreenStar_Step2(struct Sprite *sprite) { if (gSprites[sprite->data[6]].callback == SpriteCallbackDummy && gSprites[sprite->data[7]].callback == SpriteCallbackDummy) @@ -2538,7 +2538,7 @@ static void sub_815BFF4(struct Sprite *sprite) } } -static void sub_815C050(struct Sprite *sprite) +static void AnimGreenStar_Callback(struct Sprite *sprite) { if (!sprite->invisible) { @@ -2554,7 +2554,7 @@ static void sub_815C050(struct Sprite *sprite) } } -void sub_815C0A4(u8 taskId) +void AnimTask_DoomDesireLightBeam(u8 taskId) { struct BattleAnimBgData animBg; @@ -2609,9 +2609,9 @@ void sub_815C0A4(u8 taskId) case 1: gTasks[taskId].data[3] = 0; if (GetBattlerSide(gBattleAnimTarget) == B_SIDE_OPPONENT) - gBattle_BG1_X = gTasks[taskId].data[10] + gUnknown_085CE4A4[gTasks[taskId].data[2]]; + gBattle_BG1_X = gTasks[taskId].data[10] + gDoomDesireLightBeamCoordTable[gTasks[taskId].data[2]]; else - gBattle_BG1_X = gTasks[taskId].data[10] - gUnknown_085CE4A4[gTasks[taskId].data[2]]; + gBattle_BG1_X = gTasks[taskId].data[10] - gDoomDesireLightBeamCoordTable[gTasks[taskId].data[2]]; if (++gTasks[taskId].data[2] == 5) gTasks[taskId].data[0] = 5; @@ -2627,7 +2627,7 @@ void sub_815C0A4(u8 taskId) gTasks[taskId].data[0]++; break; case 3: - if (++gTasks[taskId].data[3] > gUnknown_085CE4A8[gTasks[taskId].data[2]]) + if (++gTasks[taskId].data[3] > gDoomDesireLightBeamDelayTable[gTasks[taskId].data[2]]) gTasks[taskId].data[0]++; break; case 4: -- cgit v1.2.3 From fc3783b7395b25d290ec650d79fbdc80518046cd Mon Sep 17 00:00:00 2001 From: GriffinR Date: Thu, 14 Nov 2019 18:56:18 -0500 Subject: WIP Document apprentice --- data/event_scripts.s | 2 + data/maps/BattleFrontier_BattleTowerLobby/map.json | 2 +- .../BattleFrontier_BattleTowerLobby/scripts.inc | 4 +- data/scripts/apprentice.inc | 2720 +------------------- data/text/apprentice.inc | 2527 ++++++++++++++++++ include/apprentice.h | 2 +- include/constants/apprentice.h | 33 + include/constants/global.h | 2 + include/constants/pokemon.h | 4 + include/global.h | 28 +- include/strings.h | 4 + src/apprentice.c | 1167 ++++----- src/data/pokemon/level_up_learnsets.h | 1 - src/pokemon.c | 34 +- src/record_mixing.c | 8 +- 15 files changed, 3297 insertions(+), 3241 deletions(-) create mode 100644 data/text/apprentice.inc diff --git a/data/event_scripts.s b/data/event_scripts.s index 65f106a06..29483bf90 100644 --- a/data/event_scripts.s +++ b/data/event_scripts.s @@ -1,4 +1,5 @@ #include "constants/global.h" +#include "constants/apprentice.h" #include "constants/battle.h" #include "constants/battle_pike.h" #include "constants/battle_pyramid.h" @@ -1110,6 +1111,7 @@ Common_EventScript_LegendaryFlewAway:: @ 8273776 .include "data/scripts/lilycove_lady.inc" .include "data/text/match_call.inc" .include "data/scripts/apprentice.inc" + .include "data/text/apprentice.inc" .include "data/text/battle_dome.inc" .include "data/scripts/battle_pike.inc" .include "data/text/blend_master.inc" diff --git a/data/maps/BattleFrontier_BattleTowerLobby/map.json b/data/maps/BattleFrontier_BattleTowerLobby/map.json index 339b20b56..13bda5f22 100644 --- a/data/maps/BattleFrontier_BattleTowerLobby/map.json +++ b/data/maps/BattleFrontier_BattleTowerLobby/map.json @@ -89,7 +89,7 @@ "movement_range_y": 1, "trainer_type": "0", "trainer_sight_or_berry_tree_id": "0", - "script": "EventScript_Apprentice", + "script": "BattleFrontier_BattleTowerLobby_EventScript_Apprentice", "flag": "FLAG_HIDE_APPRENTICE" }, { diff --git a/data/maps/BattleFrontier_BattleTowerLobby/scripts.inc b/data/maps/BattleFrontier_BattleTowerLobby/scripts.inc index 3d278308c..d64b82e92 100644 --- a/data/maps/BattleFrontier_BattleTowerLobby/scripts.inc +++ b/data/maps/BattleFrontier_BattleTowerLobby/scripts.inc @@ -11,7 +11,7 @@ BattleFrontier_BattleTowerLobby_MapScript1_23E690: @ 823E690 BattleFrontier_BattleTowerLobby_MapScript1_23E694: @ 823E694 call BattleFrontier_BattleTowerLobby_EventScript_28CC84 - setvar VAR_0x8004, 10 + setvar VAR_0x8004, APPRENTICE_FUNC_10 special CallApprenticeFunction compare VAR_0x8004, 0 goto_if_eq BattleFrontier_BattleTowerLobby_EventScript_23E6B5 @@ -19,7 +19,7 @@ BattleFrontier_BattleTowerLobby_MapScript1_23E694: @ 823E694 BattleFrontier_BattleTowerLobby_EventScript_23E6B5:: @ 823E6B5 clearflag FLAG_HIDE_APPRENTICE - setvar VAR_0x8004, 23 + setvar VAR_0x8004, APPRENTICE_FUNC_23 special CallApprenticeFunction BattleFrontier_BattleTowerLobby_EventScript_23E6C0:: @ 823E6C0 diff --git a/data/scripts/apprentice.inc b/data/scripts/apprentice.inc index 7eae99dcf..337899496 100644 --- a/data/scripts/apprentice.inc +++ b/data/scripts/apprentice.inc @@ -1,42 +1,40 @@ -#include "constants/apprentice.h" - -.macro apprentice_msg waitbuttonpress which -setvar VAR_0x8004, 8 +.macro apprentice_msg waitbuttonpress:req, which:req +setvar VAR_0x8004, APPRENTICE_FUNC_PRINT_MSG setvar VAR_0x8005, \waitbuttonpress setvar VAR_0x8006, \which special CallApprenticeFunction waitstate .endm -.macro apprentice_buff whichstringvar tobuff -setvar VAR_0x8004, 16 +.macro apprentice_buff whichstringvar:req, tobuff:req +setvar VAR_0x8004, APPRENTICE_FUNC_16 setvar VAR_0x8005, \whichstringvar setvar VAR_0x8006, \tobuff special CallApprenticeFunction .endm -.macro apprentice_menu which -setvar VAR_0x8004, 7 +.macro apprentice_menu which:req +setvar VAR_0x8004, APPRENTICE_FUNC_MENU setvar VAR_0x8005, \which special CallApprenticeFunction waitstate .endm -EventScript_Apprentice:: @ 82B688D +BattleFrontier_BattleTowerLobby_EventScript_Apprentice:: @ 82B688D lock faceplayer - setvar VAR_0x8004, 0 + setvar VAR_0x8004, APPRENTICE_FUNC_0 special CallApprenticeFunction compare VAR_RESULT, 0 - goto_if_eq Script_Apprentice_FirstMeeting - setvar VAR_0x8004, 10 + goto_if_eq BattleFrontier_BattleTowerLobby_EventScript_2B6900 + setvar VAR_0x8004, APPRENTICE_FUNC_SET_TRUE_1 special CallApprenticeFunction - compare VAR_0x8004, 0 + compare VAR_0x8004, FALSE @ Always TRUE here goto_if_eq BattleFrontier_BattleTowerLobby_EventScript_2B68BE - goto_if_set FLAG_DAILY_APPRENTICE_LEAVES, Script_Apprentice_ReleaseAndEnd + goto_if_set FLAG_DAILY_APPRENTICE_LEAVES, BattleFrontier_BattleTowerLobby_EventScript_2B6E90 -BattleFrontier_BattleTowerLobby_EventScript_2B68BE: - setvar VAR_0x8004, 11 +BattleFrontier_BattleTowerLobby_EventScript_2B68BE: @ 82B68BE + setvar VAR_0x8004, APPRENTICE_FUNC_11 special CallApprenticeFunction compare VAR_RESULT, 2 goto_if_eq BattleFrontier_BattleTowerLobby_EventScript_2B69D3 @@ -52,38 +50,37 @@ BattleFrontier_BattleTowerLobby_EventScript_2B68BE: releaseall end -Script_Apprentice_FirstMeeting: +BattleFrontier_BattleTowerLobby_EventScript_2B6900: @ 82B6900 apprentice_buff 0, APPRENTICE_BUFF_NAME apprentice_msg FALSE, 0 - -Script_Apprentice_FirstMeetingNag: +BattleFrontier_BattleTowerLobby_EventScript_2B6925: @ 82B6925 apprentice_menu APPRENTICE_ASK_YES_NO compare VAR_RESULT, 1 - goto_if_eq Script_Apprentice_FirstMeetingAskAgain + goto_if_eq BattleFrontier_BattleTowerLobby_EventScript_2B69BB apprentice_msg FALSE, 2 apprentice_menu APPRENTICE_ASK_WHICH_LEVEL - setvar VAR_0x8004, 1 + setvar VAR_0x8004, APPRENTICE_FUNC_1 setorcopyvar VAR_0x8005, VAR_RESULT addvar VAR_0x8005, 1 special CallApprenticeFunction - setvar VAR_0x8004, 3 + setvar VAR_0x8004, APPRENTICE_FUNC_3 special CallApprenticeFunction apprentice_buff 0, APPRENTICE_BUFF_LEVEL apprentice_msg TRUE, 3 - call Script_Apprentice_SetLeavingFlags + call BattleFrontier_BattleTowerLobby_EventScript_2B6E4D release releaseall switch VAR_FACING - case DIR_NORTH, Script_Apprentice_LeaveGoRight - goto Script_Apprentice_Leave + case DIR_NORTH, BattleFrontier_BattleTowerLobby_EventScript_2B6E54 + goto BattleFrontier_BattleTowerLobby_EventScript_2B6E72 end -Script_Apprentice_FirstMeetingAskAgain: +BattleFrontier_BattleTowerLobby_EventScript_2B69BB: @ 82B69BB apprentice_msg FALSE, 1 - goto Script_Apprentice_FirstMeetingNag + goto BattleFrontier_BattleTowerLobby_EventScript_2B6925 -BattleFrontier_BattleTowerLobby_EventScript_2B69D3: - setvar VAR_0x8004, 14 +BattleFrontier_BattleTowerLobby_EventScript_2B69D3: @ 82B69D3 + setvar VAR_0x8004, APPRENTICE_FUNC_14 setvar VAR_0x8005, 2 special CallApprenticeFunction apprentice_buff 0, APPRENTICE_BUFF_SPECIES1 @@ -95,80 +92,80 @@ BattleFrontier_BattleTowerLobby_EventScript_2B69D3: call_if_eq BattleFrontier_BattleTowerLobby_EventScript_2B6ABA compare VAR_0x8005, 1 call_if_eq BattleFrontier_BattleTowerLobby_EventScript_2B6AC0 - setvar VAR_0x8004, 12 + setvar VAR_0x8004, APPRENTICE_FUNC_12 special CallApprenticeFunction copyvar VAR_0x8006, VAR_RESULT - setvar VAR_0x8004, 13 + setvar VAR_0x8004, APPRENTICE_FUNC_13 special CallApprenticeFunction - setvar VAR_0x8004, 5 + setvar VAR_0x8004, APPRENTICE_FUNC_5 special CallApprenticeFunction - setvar VAR_0x8004, 12 + setvar VAR_0x8004, APPRENTICE_FUNC_12 special CallApprenticeFunction compare VAR_RESULT, 3 call_if_eq BattleFrontier_BattleTowerLobby_EventScript_2B6AC6 - setvar VAR_0x8004, 16 + setvar VAR_0x8004, APPRENTICE_FUNC_16 setvar VAR_0x8005, 0 copyvar VAR_0x8006, VAR_0x8007 special CallApprenticeFunction - setvar VAR_0x8004, 15 + setvar VAR_0x8004, APPRENTICE_FUNC_15 special CallApprenticeFunction apprentice_msg TRUE, 7 - call Script_Apprentice_SetLeavingFlags + call BattleFrontier_BattleTowerLobby_EventScript_2B6E4D release releaseall switch VAR_FACING - case DIR_NORTH, Script_Apprentice_LeaveGoRight - goto Script_Apprentice_Leave + case DIR_NORTH, BattleFrontier_BattleTowerLobby_EventScript_2B6E54 + goto BattleFrontier_BattleTowerLobby_EventScript_2B6E72 end -BattleFrontier_BattleTowerLobby_EventScript_2B6ABA: +BattleFrontier_BattleTowerLobby_EventScript_2B6ABA: @ 82B6ABA setvar VAR_0x8007, 0 return -BattleFrontier_BattleTowerLobby_EventScript_2B6AC0: +BattleFrontier_BattleTowerLobby_EventScript_2B6AC0: @ 82B6AC0 setvar VAR_0x8007, 1 return -BattleFrontier_BattleTowerLobby_EventScript_2B6AC6: - setvar VAR_0x8004, 4 +BattleFrontier_BattleTowerLobby_EventScript_2B6AC6: @ 82B6AC6 + setvar VAR_0x8004, APPRENTICE_FUNC_4 special CallApprenticeFunction return -BattleFrontier_BattleTowerLobby_EventScript_2B6ACF: - setvar VAR_0x8004, 14 +BattleFrontier_BattleTowerLobby_EventScript_2B6ACF: @ 82B6ACF + setvar VAR_0x8004, APPRENTICE_FUNC_14 setvar VAR_0x8005, 4 special CallApprenticeFunction apprentice_buff 0, APPRENTICE_BUFF_SPECIES3 apprentice_msg TRUE, 10 - setvar VAR_0x8004, 15 + setvar VAR_0x8004, APPRENTICE_FUNC_15 special CallApprenticeFunction -BattleFrontier_BattleTowerLobby_EventScript_2B6B09: +BattleFrontier_BattleTowerLobby_EventScript_2B6B09: @ 82B6B09 fadescreen 1 setvar VAR_RESULT, 0 - setvar VAR_0x8004, 19 + setvar VAR_0x8004, APPRENTICE_FUNC_19 special CallApprenticeFunction waitstate compare VAR_RESULT, 0 goto_if_eq BattleFrontier_BattleTowerLobby_EventScript_2B6B81 - setvar VAR_0x8004, 20 + setvar VAR_0x8004, APPRENTICE_FUNC_20 special CallApprenticeFunction - compare VAR_RESULT, 0 + compare VAR_RESULT, FALSE goto_if_eq BattleFrontier_BattleTowerLobby_EventScript_2B6C0C apprentice_buff 0, APPRENTICE_BUFF_ITEM apprentice_msg TRUE, 12 - setvar VAR_0x8004, 5 + setvar VAR_0x8004, APPRENTICE_FUNC_5 special CallApprenticeFunction - call Script_Apprentice_SetLeavingFlags + call BattleFrontier_BattleTowerLobby_EventScript_2B6E4D release releaseall switch VAR_FACING - case DIR_NORTH, Script_Apprentice_LeaveGoRight - goto Script_Apprentice_Leave + case DIR_NORTH, BattleFrontier_BattleTowerLobby_EventScript_2B6E54 + goto BattleFrontier_BattleTowerLobby_EventScript_2B6E72 end -BattleFrontier_BattleTowerLobby_EventScript_2B6B81: - setvar VAR_0x8004, 14 +BattleFrontier_BattleTowerLobby_EventScript_2B6B81: @ 82B6B81 + setvar VAR_0x8004, APPRENTICE_FUNC_14 setvar VAR_0x8005, 4 special CallApprenticeFunction apprentice_buff 0, APPRENTICE_BUFF_SPECIES3 @@ -179,20 +176,20 @@ BattleFrontier_BattleTowerLobby_EventScript_2B6B81: compare VAR_RESULT, 0 goto_if_eq BattleFrontier_BattleTowerLobby_EventScript_2B6B09 -BattleFrontier_BattleTowerLobby_EventScript_2B6BD4: +BattleFrontier_BattleTowerLobby_EventScript_2B6BD4: @ 82B6BD4 apprentice_msg TRUE, 14 - setvar VAR_0x8004, 5 + setvar VAR_0x8004, APPRENTICE_FUNC_5 special CallApprenticeFunction - call Script_Apprentice_SetLeavingFlags + call BattleFrontier_BattleTowerLobby_EventScript_2B6E4D release releaseall switch VAR_FACING - case DIR_NORTH, Script_Apprentice_LeaveGoRight - goto Script_Apprentice_Leave + case DIR_NORTH, BattleFrontier_BattleTowerLobby_EventScript_2B6E54 + goto BattleFrontier_BattleTowerLobby_EventScript_2B6E72 end -BattleFrontier_BattleTowerLobby_EventScript_2B6C0C: - setvar VAR_0x8004, 14 +BattleFrontier_BattleTowerLobby_EventScript_2B6C0C: @ 82B6C0C + setvar VAR_0x8004, APPRENTICE_FUNC_14 setvar VAR_0x8005, 4 special CallApprenticeFunction apprentice_buff 0, APPRENTICE_BUFF_ITEM @@ -206,8 +203,8 @@ BattleFrontier_BattleTowerLobby_EventScript_2B6C0C: goto BattleFrontier_BattleTowerLobby_EventScript_2B6BD4 end -BattleFrontier_BattleTowerLobby_EventScript_2B6C77: - setvar VAR_0x8004, 14 +BattleFrontier_BattleTowerLobby_EventScript_2B6C77: @ 82B6C77 + setvar VAR_0x8004, APPRENTICE_FUNC_14 setvar VAR_0x8005, 3 special CallApprenticeFunction apprentice_buff 0, APPRENTICE_BUFF_SPECIES3 @@ -220,107 +217,106 @@ BattleFrontier_BattleTowerLobby_EventScript_2B6C77: call_if_eq BattleFrontier_BattleTowerLobby_EventScript_2B6D50 compare VAR_0x8005, 1 call_if_eq BattleFrontier_BattleTowerLobby_EventScript_2B6D56 - setvar VAR_0x8004, 17 + setvar VAR_0x8004, APPRENTICE_FUNC_17 special CallApprenticeFunction - setvar VAR_0x8004, 5 + setvar VAR_0x8004, APPRENTICE_FUNC_5 special CallApprenticeFunction - setvar VAR_0x8004, 16 + setvar VAR_0x8004, APPRENTICE_FUNC_16 setvar VAR_0x8005, 0 copyvar VAR_0x8006, VAR_0x8007 special CallApprenticeFunction - setvar VAR_0x8004, 15 + setvar VAR_0x8004, APPRENTICE_FUNC_15 special CallApprenticeFunction apprentice_msg TRUE, 9 - call Script_Apprentice_SetLeavingFlags + call BattleFrontier_BattleTowerLobby_EventScript_2B6E4D release releaseall switch VAR_FACING - case DIR_NORTH, Script_Apprentice_LeaveGoRight - goto Script_Apprentice_Leave + case DIR_NORTH, BattleFrontier_BattleTowerLobby_EventScript_2B6E54 + goto BattleFrontier_BattleTowerLobby_EventScript_2B6E72 end -BattleFrontier_BattleTowerLobby_EventScript_2B6D50: +BattleFrontier_BattleTowerLobby_EventScript_2B6D50: @ 82B6D50 setvar VAR_0x8007, 3 return -BattleFrontier_BattleTowerLobby_EventScript_2B6D56: +BattleFrontier_BattleTowerLobby_EventScript_2B6D56: @ 82B6D56 setvar VAR_0x8007, 4 return -BattleFrontier_BattleTowerLobby_EventScript_2B6D5C: +BattleFrontier_BattleTowerLobby_EventScript_2B6D5C: @ 82B6D5C apprentice_msg FALSE, 4 apprentice_menu APPRENTICE_ASK_3SPECIES copyvar VAR_0x8005, VAR_RESULT - setvar VAR_0x8004, 18 + setvar VAR_0x8004, APPRENTICE_FUNC_18 special CallApprenticeFunction - setvar VAR_0x8004, 5 + setvar VAR_0x8004, APPRENTICE_FUNC_5 special CallApprenticeFunction apprentice_buff 0, APPRENTICE_BUFF_SPECIES4 apprentice_msg TRUE, 5 - call Script_Apprentice_SetLeavingFlags + call BattleFrontier_BattleTowerLobby_EventScript_2B6E4D release releaseall switch VAR_FACING - case DIR_NORTH, Script_Apprentice_LeaveGoRight - goto Script_Apprentice_Leave + case DIR_NORTH, BattleFrontier_BattleTowerLobby_EventScript_2B6E54 + goto BattleFrontier_BattleTowerLobby_EventScript_2B6E72 end -BattleFrontier_BattleTowerLobby_EventScript_2B6DD4: +BattleFrontier_BattleTowerLobby_EventScript_2B6DD4: @ 82B6DD4 apprentice_msg TRUE, 11 - setvar VAR_0x8004, 25 + setvar VAR_0x8004, APPRENTICE_FUNC_25 special CallApprenticeFunction setvar VAR_0x8004, EASY_CHAT_TYPE_APPRENTICE call Common_ShowEasyChatScreen lock faceplayer - setvar VAR_0x8004, 21 + setvar VAR_0x8004, APPRENTICE_FUNC_21 special CallApprenticeFunction apprentice_buff 0, APPRENTICE_BUFF_EASY_CHAT apprentice_msg TRUE, 15 - setvar VAR_0x8004, 9 + setvar VAR_0x8004, APPRENTICE_FUNC_9 special CallApprenticeFunction - call Script_Apprentice_SetLeavingFlags + call BattleFrontier_BattleTowerLobby_EventScript_2B6E4D release releaseall switch VAR_FACING - case DIR_NORTH, Script_Apprentice_LeaveGoRight - goto Script_Apprentice_Leave + case DIR_NORTH, BattleFrontier_BattleTowerLobby_EventScript_2B6E54 + goto BattleFrontier_BattleTowerLobby_EventScript_2B6E72 end -Script_Apprentice_SetLeavingFlags: +BattleFrontier_BattleTowerLobby_EventScript_2B6E4D: @ 82B6E4D setflag FLAG_HIDE_APPRENTICE setflag FLAG_DAILY_APPRENTICE_LEAVES return -Script_Apprentice_LeaveGoRight: - setvar VAR_0x8004, 24 +BattleFrontier_BattleTowerLobby_EventScript_2B6E54: @ 82B6E54 + setvar VAR_0x8004, APPRENTICE_FUNC_SHOULD_LEAVE special CallApprenticeFunction - compare VAR_0x8004, 0 - goto_if_eq Script_Apprentice_End + compare VAR_0x8004, FALSE @ Always TRUE here + goto_if_eq BattleFrontier_BattleTowerLobby_EventScript_ApprenticeDontMove applymovement 6, BattleFrontier_BattleTowerLobby_Movement_2B6E94 waitmovement 0 end -Script_Apprentice_Leave: - setvar VAR_0x8004, 24 +BattleFrontier_BattleTowerLobby_EventScript_2B6E72: @ 82B6E72 + setvar VAR_0x8004, APPRENTICE_FUNC_SHOULD_LEAVE special CallApprenticeFunction - compare VAR_0x8004, 0 - goto_if_eq Script_Apprentice_End + compare VAR_0x8004, FALSE @ Always TRUE here + goto_if_eq BattleFrontier_BattleTowerLobby_EventScript_ApprenticeDontMove applymovement 6, BattleFrontier_BattleTowerLobby_Movement_2B6E95 waitmovement 0 end -Script_Apprentice_ReleaseAndEnd: +BattleFrontier_BattleTowerLobby_EventScript_2B6E90: @ 82B6E90 release releaseall end -Script_Apprentice_End: +BattleFrontier_BattleTowerLobby_EventScript_ApprenticeDontMove: @ 82B6E93 end BattleFrontier_BattleTowerLobby_Movement_2B6E94: @ 82B6E94 walk_fast_right - BattleFrontier_BattleTowerLobby_Movement_2B6E95: @ 82B6E95 walk_fast_down walk_fast_down @@ -338,2531 +334,3 @@ BattleFrontier_BattleTowerLobby_Movement_2B6E95: @ 82B6E95 slide_down slide_down step_end - -gText_082B6EA5:: @ 82B6EA5 - .string "Um, I'm {STR_VAR_1}'s no. {STR_VAR_2} apprentice.\n" - .string "Snivel… This tension is getting to me…$" - -gText_082B6EEC:: @ 82B6EEC - .string "I'm {STR_VAR_1}'s no. {STR_VAR_2} apprentice!\n" - .string "Here we come!$" - -gText_082B6F16:: @ 82B6F16 - .string "I'm the no. {STR_VAR_2} apprentice of {STR_VAR_1}!\n" - .string "Accept my challenge!$" - -gText_082B6F4C:: @ 82B6F4C - .string "Um… I'm {STR_VAR_1}'s no. {STR_VAR_2} apprentice…\n" - .string "Do you think someone like me can win?$" - -gText_082B6F92:: @ 82B6F92 - .string "I'm {STR_VAR_1}'s no. {STR_VAR_2} apprentice!\n" - .string "I'll let you challenge me!$" - -gText_082B6FC9:: @ 82B6FC9 - .string "I'm horribly busy, but I also happen\n" - .string "to be {STR_VAR_1}'s no. {STR_VAR_2} apprentice.$" - -gText_082B700C:: @ 82B700C - .string "I'm {STR_VAR_1}'s no. {STR_VAR_2} apprentice.\n" - .string "Glad to meet you!$" - -gText_082B703A:: @ 82B703A - .string "I serve as {STR_VAR_1}'s no. {STR_VAR_2} apprentice.\n" - .string "May I begin?$" - -gText_082B706A:: @ 82B706A - .string "Eek! I'm {STR_VAR_1}'s no. {STR_VAR_2} apprentice!\n" - .string "I'll do my best!$" - -gText_082B709C:: @ 82B709C - .string "Yeehaw! I'm {STR_VAR_1}'s no. {STR_VAR_2} apprentice!\n" - .string "Put 'em up!$" - -gText_082B70CC:: @ 82B70CC - .string "I'm {STR_VAR_1}'s 1,000th apprentice!\n" - .string "Actually, I'm no. {STR_VAR_2}! Here goes!$" - -gText_082B710A:: @ 82B710A - .string "Yeah, I'm {STR_VAR_1}'s no. {STR_VAR_2} apprentice!\n" - .string "Let's get rockin' and a-rollin'!$" - -gText_082B714D:: @ 82B714D - .string "Yippee-yahoo! I'm what you call\n" - .string "{STR_VAR_1}'s no. {STR_VAR_2} apprentice!$" - -gText_082B7185:: @ 82B7185 - .string "Cough! I'm {STR_VAR_1}'s no. {STR_VAR_2} apprentice.\n" - .string "Good to meet you! Cough!$" - -gText_082B71C1:: @ 82B71C1 - .string "This is nerve-racking…\n" - .string "I'm the no. {STR_VAR_2} apprentice of {STR_VAR_1}.$" - -gText_082B71F9:: @ 82B71F9 - .string "I am {STR_VAR_1}'s no. {STR_VAR_2} apprentice,\n" - .string "and that's no lie.$" - -gText_082B7229:: @ 82B7229 - .string "Are you… {PLAYER}?\n" - .string "Oh! Sniff…sob…\p" - .string "Oh! S-sorry…\n" - .string "I'm so nervous, I can't help crying…\p" - .string "I'm {STR_VAR_1}, and I really look up\n" - .string "to you, {PLAYER}.\p" - .string "I… I had this dream of one day meeting\n" - .string "you and asking you about POKéMON.\p" - .string "Please, please, {PLAYER}!\n" - .string "Please teach me about POKéMON!$" - -gText_082B731C:: @ 82B731C - .string "Oh… B-but…\n" - .string "Snivel… Waaaaaaah!\p" - .string "Please!\n" - .string "I'm begging you, please!$" - -gText_082B735B:: @ 82B735B - .string "Oh, really? You will?\n" - .string "Awesome! Wicked! Awoooh!\p" - .string "Oh… I'm sorry…\n" - .string "I'm so happy, I'm crying…\p" - .string "Um… Then please tell me!\n" - .string "It's about the BATTLE TOWER.\p" - .string "Which would be better for me: Level 50\n" - .string "or the Open Level?$" - -gText_082B7423:: @ 82B7423 - .string "{STR_VAR_1}?\n" - .string "Waaaaah!\p" - .string "Oh! I'm so sorry!\n" - .string "You've made me happy by choosing\l" - .string "the level for me, and it's made me cry…\p" - .string "Snivel…\n" - .string "Thank you so much!\l" - .string "Please talk with me again!$" - -gText_082B74C1:: @ 82B74C1 - .string "Wowee! You're {PLAYER}, aren't you?\n" - .string "You're awesomely strong, aren't you?\p" - .string "I'm {STR_VAR_1}!\n" - .string "I just became a TRAINER!\p" - .string "Please, {PLAYER}!\n" - .string "Can you be my teacher and tell me\l" - .string "lots about being a TRAINER?$" - -gText_082B756F:: @ 82B756F - .string "Aww, why?\n" - .string "Oh, please? Pretty please?\l" - .string "Please be my teacher, please!$" - -gText_082B75B2:: @ 82B75B2 - .string "Yay! Great!\p" - .string "The first thing I wanted to ask you is\n" - .string "about the BATTLE TOWER!\p" - .string "The Level 50 and Open Level Rooms…\n" - .string "Which would be perfect for me?$" - -gText_082B763F:: @ 82B763F - .string "{STR_VAR_1}, huh? That's true!\n" - .string "I'll do my best there!\p" - .string "If we meet here again, please teach\n" - .string "me something else, teacher!$" - -gText_082B76AC:: @ 82B76AC - .string "Um… Are you {PLAYER}?\n" - .string "My name is {STR_VAR_1}.\p" - .string "I want to become a POKéMON TRAINER,\n" - .string "but I don't know what to do…\p" - .string "So I thought maybe I could ask you for\n" - .string "advice because you're so famous.\p" - .string "{PLAYER}, could you give me advice?$" - -gText_082B7772:: @ 82B7772 - .string "Oh, but…\p" - .string "I sincerely want to become a POKéMON\n" - .string "TRAINER!\p" - .string "Please, can you answer my questions?$" - -gText_082B77CE:: @ 82B77CE - .string "Thank you!\n" - .string "Here's my first question right away!\p" - .string "The BATTLE TOWER has two levels,\n" - .string "Level 50 and Open Level, right?\p" - .string "Which level do you think is more\n" - .string "suitable for me?$" - -gText_082B7871:: @ 82B7871 - .string "Oh, the {STR_VAR_1} challenge?\n" - .string "Understood!\p" - .string "If I have another question, I'll come\n" - .string "back here for your advice!$" - -gText_082B78D4:: @ 82B78D4 - .string "Oh? Huh? You're…\n" - .string "No, that can't be true.\p" - .string "There isn't any way that someone\n" - .string "like me could meet {PLAYER}.\p" - .string "…You really are {PLAYER}?\n" - .string "I can't believe I'm talking to you!\p" - .string "When something this good happens,\n" - .string "only terrible things will happen to me\l" - .string "now, I just know it…\p" - .string "…I'm sorry…\n" - .string "I'm… {STR_VAR_1}…\p" - .string "There isn't anything special about\n" - .string "me that I can be proud of…\p" - .string "I shouldn't even say anything about\n" - .string "myself because you'll forget…\p" - .string "I had this dream that if I ever met\n" - .string "you, {PLAYER}, that maybe I could ask\l" - .string "you for advice as a TRAINER.\p" - .string "But I don't think you would agree\n" - .string "to that.\p" - .string "…Or will you be so kind as to give\n" - .string "me advice?$" - -gText_082B7B1A:: @ 82B7B1A - .string "I knew it…\p" - .string "It had to happen because I'm such\n" - .string "a really boring nobody…\p" - .string "But I thought just maybe…\n" - .string "You won't reconsider, will you?\p" - .string "But I can't give up just like that.\n" - .string "I'll ask you while I'm still lucky!\p" - .string "Please, will you be so kind as to give\n" - .string "me advice?$" - -gText_082B7C13:: @ 82B7C13 - .string "Really? I can't believe it!\n" - .string "I can't believe you'll advise me!\l" - .string "I… I'm so happy…\p" - .string "What I want to ask you is really\n" - .string "trivial, but I can't decide…\p" - .string "At the BATTLE TOWER, they let you\n" - .string "choose Level 50 or Open Level.\p" - .string "Which course do you think even I may\n" - .string "have a chance at?$" - -gText_082B7D18:: @ 82B7D18 - .string "{STR_VAR_1}? Okay!\n" - .string "But do you really think someone like\l" - .string "me would have a chance?\p" - .string "I'll do my best, even though I don't\n" - .string "think it will work.\p" - .string "Thank you very much for spending\n" - .string "time with someone like me.$" - -gText_082B7DD4:: @ 82B7DD4 - .string "Oh! You're {PLAYER}{KUN}, aren't you?\p" - .string "I've heard that you're tough at\n" - .string "POKéMON!\p" - .string "I'm {STR_VAR_1}!\n" - .string "I'll be your friend!\p" - .string "Did you know?\p" - .string "You can't win at the BATTLE FRONTIER\n" - .string "if all you know is what they teach at\l" - .string "the TRAINER'S SCHOOL.\p" - .string "I'm willing to listen to your advice.\n" - .string "You'll agree, of course?$" - -gText_082B7EE5:: @ 82B7EE5 - .string "Huh? Why are you refusing me?\n" - .string "It's me who's asking you!\l" - .string "You have to reconsider!$" - -gText_082B7F35:: @ 82B7F35 - .string "Okay, so there is this something.\n" - .string "I want you to decide it for me.\p" - .string "You know that the BATTLE TOWER has\n" - .string "Level 50 and Open Level Rooms?\p" - .string "Which do you think would be good\n" - .string "for me, {PLAYER}{KUN}?$" - -gText_082B7FE8:: @ 82B7FE8 - .string "Okay, {STR_VAR_1} is suitable for me?\n" - .string "Thank you!\p" - .string "Knowing that you made the decision,\n" - .string "{PLAYER}{KUN}, I won't be so upset if\l" - .string "I lose.\p" - .string "Okay, I'll look to you for advice again.\n" - .string "Bye!$" - -gText_082B8087:: @ 82B8087 - .string "Oh, hi, there! {PLAYER}{KUN}!\n" - .string "I know you because you're famous!\l" - .string "Call me {STR_VAR_1}! Glad to meet you!\p" - .string "I'm a TRIATHLETE, so I keep myself\n" - .string "fit even while I raise POKéMON.\p" - .string "I'm also involved with other things\n" - .string "like work, napping, ballroom dancing…\p" - .string "Being this busy, it's not so easy for\n" - .string "me to become a decent TRAINER.\p" - .string "So, I have a proposition!\p" - .string "There must be a reason why we met.\n" - .string "So, {PLAYER}{KUN}, how about sharing your\l" - .string "wisdom with me every so often?$" - -gText_082B822B:: @ 82B822B - .string "Oh, but, please?\n" - .string "A guy like me needs someone like\l" - .string "you, {PLAYER}{KUN}!\p" - .string "Honestly, I need your advice!$" - -gText_082B8286:: @ 82B8286 - .string "Thank you! That's more like it!\n" - .string "So, let's start with an easy one!\p" - .string "You know about the BATTLE TOWER's\n" - .string "two courses, right?\l" - .string "You know, Level 50 and Open Level.\p" - .string "Me being a busy guy, which one should\n" - .string "I gear up for?$" - -gText_082B8356:: @ 82B8356 - .string "{STR_VAR_1}, huh? Okay, gotcha.\n" - .string "I'll find time somehow and give it a go!\p" - .string "…Whoops, I'd better go to work!\n" - .string "Thanks! See you around!$" - -gText_082B83CE:: @ 82B83CE - .string "No way! Uh-uh!\n" - .string "Are you maybe the real {PLAYER}?\p" - .string "A-hah! Awesome! I'm {STR_VAR_1},\n" - .string "so pleased to meet you!\p" - .string "{PLAYER}, you're very strong,\n" - .string "aren't you?\p" - .string "Everyone's talking about you!\p" - .string "Oh! I just had this great idea!\n" - .string "I'll get advice off you, {PLAYER}!\l" - .string "I'm sure it will make me tougher!\p" - .string "Isn't it a great idea?\n" - .string "Please, I want your advice!$" - -gText_082B84FC:: @ 82B84FC - .string "Ahahaha, you can pretend to be mean,\n" - .string "but you can't fool me!\l" - .string "You really mean okay, don't you?$" - -gText_082B8559:: @ 82B8559 - .string "Yay! I knew you'd have a big heart,\n" - .string "{PLAYER}!\p" - .string "What should I ask you first?\n" - .string "…Oh, I thought of something!\p" - .string "Drum roll, please!\n" - .string "The question I have is…\p" - .string "If I were to take a BATTLE TOWER\n" - .string "challenge, which way should I go?\p" - .string "Level 50 or Open Level?\n" - .string "Which suits me more?$" - -gText_082B8656:: @ 82B8656 - .string "Oh-oh-oh!\n" - .string "{STR_VAR_1}, you say!\l" - .string "Thank you for a totally cool reply!\p" - .string "I guess that's about all I wanted\n" - .string "to ask you today.\p" - .string "Let's meet here again, okay?\n" - .string "Thanks!$" - -gText_082B86EA:: @ 82B86EA - .string "I beg your pardon, but…\n" - .string "Are you {PLAYER}?\p" - .string "I'm {STR_VAR_1}, and I am delighted to\n" - .string "make your acquaintance.\p" - .string "I have long been an admirer\n" - .string "of yours…\p" - .string "… … … … … …\p" - .string "Um… I hope you don't find this\n" - .string "request too much of a burden, but…\p" - .string "May I become your apprentice,\n" - .string "{PLAYER}?$" - -gText_082B87DA:: @ 82B87DA - .string "Oh…!\p" - .string "… … … … … …\n" - .string "… … … … … …\p" - .string "…I must have fainted from shock.\n" - .string "I'm sorry, I must have misheard you.\p" - .string "Please! Please say that you will\n" - .string "accept me as your apprentice!$" - -gText_082B887C:: @ 82B887C - .string "Oh… I'm delighted!\p" - .string "I don't wish to waste your time,\n" - .string "so please advise me on this.\p" - .string "I plan to take a BATTLE TOWER\n" - .string "challenge soon.\p" - .string "However, there are two levels…\p" - .string "Which would be most suitable for me?\n" - .string "Level 50 or Open Level?$" - -gText_082B8957:: @ 82B8957 - .string "{STR_VAR_1} is your choice!\n" - .string "I see. I will do my best!\p" - .string "Thank you, {PLAYER}.\n" - .string "I hope I can count on you again.\l" - .string "Please take care!$" - -gText_082B89C6:: @ 82B89C6 - .string "Eek! Eek! {PLAYER}!\n" - .string "You spoke to me!\l" - .string "I… I'm overjoyed!\p" - .string "Me! My name is {STR_VAR_1}!\n" - .string "I just became a TRAINER!\p" - .string "I'm delighted I met you, {PLAYER},\n" - .string "the big name in POKéMON circles!\p" - .string "Oh-oh-oh, I know!\n" - .string "May I ask a huge favor, {PLAYER}?\p" - .string "Please take me in as your apprentice!\n" - .string "I want to learn from you!$" - -gText_082B8ACF:: @ 82B8ACF - .string "Waaaah!\n" - .string "{PLAYER} turned me down…\l" - .string "It… It's an invaluable experience!\p" - .string "{PLAYER}, please! I want to hear\n" - .string "an affirmative answer this time!\p" - .string "I beg you for your guidance!$" - -gText_082B8B66:: @ 82B8B66 - .string "Hieeeeh! {PLAYER} said yes!\n" - .string "{PLAYER} said yes!\p" - .string "I won't be able to sleep tonight…\n" - .string "Thank you ever so much!\p" - .string "Then, here's my question!\p" - .string "At the BATTLE TOWER, what is right\n" - .string "for me, Level 50 or Open Level?$" - -gText_082B8C20:: @ 82B8C20 - .string "{STR_VAR_1}! Perfectly understood!\n" - .string "I understand perfectly!\l" - .string "I'm deliriously delighted!\p" - .string "I hope you'll be willing to teach me\n" - .string "some more another time.$" - -gText_082B8CAA:: @ 82B8CAA - .string "Whoa! Could you be…\n" - .string "Might you be… {PLAYER}{KUN}?!\l" - .string "That strong and famous TRAINER?\l" - .string "Well, hello, aren't I just the luckiest!\p" - .string "Hello, the name's {STR_VAR_1}!\p" - .string "I've been on the lookout for\n" - .string "a POKéMON teacher.\p" - .string "And with impeccably good timing,\n" - .string "along came you, {PLAYER}{KUN}!\p" - .string "So, there you have it, {PLAYER}{KUN}!\n" - .string "Let me apprentice under you!$" - -gText_082B8DD3:: @ 82B8DD3 - .string "Gwaaaah!\n" - .string "You're quite cool and tough…\p" - .string "Don't be that way, please.\n" - .string "I'm asking you!$" - -gText_082B8E24:: @ 82B8E24 - .string "Oh, yeah! That's a solid reply!\n" - .string "Excellent, I might add!\p" - .string "So how about a first piece of advice\n" - .string "on the BATTLE TOWER?\p" - .string "If I were to go, what would be better?\n" - .string "Level 50 or Open Level?$" - -gText_082B8ED5:: @ 82B8ED5 - .string "Uh-huh, {STR_VAR_1} it is!\n" - .string "OK, A-OK!\l" - .string "I'll go show my mettle, like, jam!\p" - .string "All right, I'll look to you as my mentor!\n" - .string "Adios!$" - -gText_082B8F45:: @ 82B8F45 - .string "Oh, hey, {PLAYER}{KUN}, right?\n" - .string "The police were looking for you!\p" - .string "… … …\n" - .string "Of course I'm lying!\p" - .string "Me, I'm {STR_VAR_1}. Despite the way\n" - .string "I look, I'm the POKéMON CHAMPION!\l" - .string "…That's a lie, too!\p" - .string "This is no lie, though.\n" - .string "I'm not very good at battling.\p" - .string "So, how about you becoming my master\n" - .string "about all things POKéMON?$" - -gText_082B905F:: @ 82B905F - .string "If you're going to act cold like that,\n" - .string "I'll show you what I'll do!\p" - .string "Waaah! Waaah! Waaah!\n" - .string "Hiccup!\p" - .string "Hahaha, that was my FAKE TEARS!\p" - .string "Come on, will you please be\n" - .string "my POKéMON master?$" - -gText_082B910E:: @ 82B910E - .string "Yippee!\n" - .string "I'll buy you a boat for that!\p" - .string "Of course I'm lying again!\n" - .string "But… Thank you, master!\p" - .string "You know how there's Level 50 and\n" - .string "Open Level at the BATTLE TOWER?\p" - .string "I'm having trouble deciding which\n" - .string "level I should challenge…\p" - .string "Can you decide for me, master?$" - -gText_082B9204:: @ 82B9204 - .string "Okay, so {STR_VAR_1} is better!\n" - .string "I'll go to the other level, then!\p" - .string "Just kidding!\n" - .string "I'll obey your teaching, master!\p" - .string "Thanks, master!\n" - .string "I hope you'll keep teaching me!$" - -gText_082B929C:: @ 82B929C - .string "A-H-O-Y!\n" - .string "And that spells ahoy, and it means hi!\p" - .string "I'm {STR_VAR_1}, the rappin' SAILOR\n" - .string "am I!\p" - .string "Your turn now, tell me a little about\n" - .string "yourself, give it a try!\p" - .string "Uh-huh, uh-huh!\n" - .string "{PLAYER}{KUN}'s your name,\l" - .string "and POKéMON's your game!\p" - .string "And you're at a delicate age\n" - .string "when all the world's your stage!\p" - .string "Anyway, I just want to say,\n" - .string "that you're the tenth TRAINER\l" - .string "I've spoken to today.\p" - .string "Let's make that a celebration!\n" - .string "Become my mentor for commemoration!$" - -gText_082B9438:: @ 82B9438 - .string "But!\n" - .string "You have to work with me!\p" - .string "Don't be such a tease!\n" - .string "Become my mentor, please!$" - -gText_082B9488:: @ 82B9488 - .string "That's it!\n" - .string "{PLAYER}, you've got the spirit!\p" - .string "So here's my first question\n" - .string "that begs your suggestion!\p" - .string "It's about the BATTLE TOWER,\n" - .string "and it hinges on my power!\p" - .string "Level 50 and Open Level there be,\n" - .string "which is the one that's good for me?$" - -gText_082B9564:: @ 82B9564 - .string "Okay, {STR_VAR_1} it is, you say!\n" - .string "I'll go and take it on my way!\p" - .string "If it's advice I ever need,\n" - .string "{PLAYER}, your word I'll always heed!$" - -gText_082B95D8:: @ 82B95D8 - .string "Say, hey, aren't you {PLAYER}?\n" - .string "What should I do? Talk to you?\l" - .string "Why not? I'm already talking to you!\p" - .string "{PLAYER}, are you surprised at me?\n" - .string "I'd better tell you who I happen to be!\p" - .string "{STR_VAR_1} is what you can call me.\n" - .string "The brightest star in guitardom,\l" - .string "that's me!\p" - .string "Are you receiving me?\n" - .string "You are receiving me!\p" - .string "My luck's at its best,\n" - .string "I'll hit you with a request!\p" - .string "{PLAYER}, let me be your underling!\n" - .string "I want you to teach me everything!$" - -gText_082B9763:: @ 82B9763 - .string "You're turning me down, then?\n" - .string "I'll just have to ask you again!\p" - .string "{PLAYER}, I beg to be your underling!\n" - .string "I need you to teach me everything!$" - -gText_082B97E5:: @ 82B97E5 - .string "Lucky, yeah, woohoo!\n" - .string "Should I pop a question to you?\p" - .string "Since we're near the BATTLE TOWER,\n" - .string "how about a question about its power?\p" - .string "Of the choices you see,\n" - .string "which is the right one for me?$" - -gText_082B989A:: @ 82B989A - .string "If {STR_VAR_1} is what you suggest,\n" - .string "it must be the very best!\p" - .string "Well, {PLAYER}, I have to roam free,\n" - .string "but don't you forget about me.\p" - .string "See you again, my smart friend!$" - -gText_082B992D:: @ 82B992D - .string "Oh, hi! You there!\n" - .string "Can I get you to massage my shoulder?\p" - .string "…Yes, there! That's it!\n" - .string "Ouch, ouch! Oooh, that feels great!\p" - .string "My name's {STR_VAR_1}.\n" - .string "I take karate training, but my body's\l" - .string "not built to take the abuse…\p" - .string "I decided I'll battle POKéMON and\n" - .string "toughen myself up.\p" - .string "You're {PLAYER}{KUN}, aren't you?\n" - .string "The POKéMON LEAGUE CHAMP?\p" - .string "Listen, can I get you to give me\n" - .string "advice?$" - -gText_082B9A84:: @ 82B9A84 - .string "Oh, why?\p" - .string "I won't be a big bother, I promise!\n" - .string "Please?$" - -gText_082B9AB9:: @ 82B9AB9 - .string "Thank you. Mighty good of you!\n" - .string "…Cough! Cough!\p" - .string "Oogh, I have to toughen up quick…\p" - .string "I'll be heading off to the BATTLE TOWER\n" - .string "right away, but what would be better\l" - .string "for me? Level 50 or Open Level?$" - -gText_082B9B76:: @ 82B9B76 - .string "Hm, all right. That's {STR_VAR_1}.\n" - .string "I'll go there right away.\p" - .string "I hope I can keep hitting you up for\n" - .string "help--after all, you're my mentor!$" - -gText_082B9BF2:: @ 82B9BF2 - .string "Er… Um…\n" - .string "{PLAYER}{KUN}…?\p" - .string "Please, don't look at me that way.\n" - .string "You're making me all self-conscious.\p" - .string "I… I'm {STR_VAR_1}.\p" - .string "I'm really embarrassed to say this,\n" - .string "but I explore ancient ruins and such.\p" - .string "I'm even more embarrassed to admit\n" - .string "I'm interested in the BATTLE FRONTIER.\p" - .string "{PLAYER}{KUN}, you have a reputation as\n" - .string "a tough TRAINER…\p" - .string "It's hard for me to say this,\n" - .string "but I want to ask something.\p" - .string "Could you become my teacher and\n" - .string "give me advice?$" - -gText_082B9D83:: @ 82B9D83 - .string "Please don't brush me off like this!\n" - .string "I can't live with the humiliation.\p" - .string "Please become my teacher!\n" - .string "I need your advice!$" - -gText_082B9DF9:: @ 82B9DF9 - .string "Th-thank you…\p" - .string "But please don't look at me like that.\n" - .string "It makes me all flustered.\p" - .string "Please, answer me without looking\n" - .string "at my eyes.\p" - .string "At the BATTLE TOWER…\n" - .string "Which level should I attempt?$" - -gText_082B9EAA:: @ 82B9EAA - .string "Oh… Okay!\n" - .string "I'll try my hand at that.\p" - .string "I hope I can make a valiant challenge\n" - .string "without getting all flustered…\p" - .string "Thank you, {PLAYER}{KUN}.\n" - .string "If we meet again, I hope you will be\l" - .string "as helpful.$" - -gText_082B9F55:: @ 82B9F55 - .string "Hm? You appear to be {PLAYER}{KUN}…\n" - .string "But are you really real?\p" - .string "You may call me {STR_VAR_1}.\p" - .string "I have been toying with the idea of\n" - .string "apprenticing under a strong TRAINER.\p" - .string "So, I must say I'm lucky you came along!\n" - .string "…You really are {PLAYER}{KUN}, yes?\p" - .string "No, no, if you are real, it's fine.\n" - .string "I merely want you to recognize me\l" - .string "as your apprentice.$" - -gText_082BA084:: @ 82BA084 - .string "Oh?\n" - .string "But what would compel you to refuse?\p" - .string "I apologize for being skeptical about\n" - .string "your identity.\p" - .string "Please accept my apology and\n" - .string "accept me as your apprentice.$" - -gText_082BA11D:: @ 82BA11D - .string "You really are accepting me?\n" - .string "I don't wish to celebrate prematurely.\p" - .string "If it is true, I apologize.\n" - .string "But now, I need your advice.\p" - .string "If I were to enter the BATTLE TOWER,\n" - .string "what would be worthy of me?\l" - .string "Level 50 or Open Level?$" - -gText_082BA1F3:: @ 82BA1F3 - .string "{STR_VAR_1}?\n" - .string "Are you certain?\p" - .string "I see. If that's the case, that's fine.\n" - .string "I thank you for your time.\p" - .string "I realize I can annoy, but it delights\n" - .string "me that you have accepted me.\p" - .string "Let us meet again!$" - -gText_082BA2A3:: @ 82BA2A3 - .string "Sigh… Sob…\n" - .string "Oh, {PLAYER}!\p" - .string "I'm all tangled up in a dilemma\n" - .string "that I can't decide.\p" - .string "I can't decide what I should make\n" - .string "my {STR_VAR_1} hold.\p" - .string "Please tell me, {PLAYER}.\n" - .string "What item should I make it hold?$" - -gText_082BA34E:: @ 82BA34E - .string "Oh, really? I shouldn't make\n" - .string "my {STR_VAR_1} hold anything?$" - -gText_082BA380:: @ 82BA380 - .string "Oh, okay! I'm delighted it's settled!\n" - .string "Awesome! Wicked! Awoooh!\p" - .string "Thank you so much!$" - -gText_082BA3D2:: @ 82BA3D2 - .string "Oh, I'm so glad…\n" - .string "I think I have that {STR_VAR_1}, too.\p" - .string "I'm delighted it's settled!\n" - .string "Awesome! Wicked! Awoooh!\p" - .string "Thank you so much!$" - -gText_082BA448:: @ 82BA448 - .string "Waaaah! Please don't be mean!\p" - .string "That item {STR_VAR_1} was already\n" - .string "recommended to me before, sob…\p" - .string "Or do you mean I shouldn't make\n" - .string "my {STR_VAR_2} hold anything?$" - -gText_082BA4D3:: @ 82BA4D3 - .string "Yay! It's {PLAYER}!\n" - .string "Great! I wanted to ask you something!\p" - .string "Do you make your POKéMON hold items?\n" - .string "I want to make mine hold items, but…\p" - .string "What item would be good for\n" - .string "{STR_VAR_1} to hold?\p" - .string "What do you think?$" - -gText_082BA58C:: @ 82BA58C - .string "Huh? You mean my {STR_VAR_1} doesn't\n" - .string "have to hold anything?$" - -gText_082BA5BF:: @ 82BA5BF - .string "Oh, I get it! I'll do that!\n" - .string "Thanks for teaching me!$" - -gText_082BA5F3:: @ 82BA5F3 - .string "Oh, wow! One {STR_VAR_1}, huh?\n" - .string "Okay, I'll do that!\p" - .string "Thanks for teaching me!$" - -gText_082BA635:: @ 82BA635 - .string "Oh, uh, no, that's not what I meant.\n" - .string "I want to know about a different item\l" - .string "than the ones I already know.\p" - .string "Or do you mean that my POKéMON doesn't\n" - .string "have to hold anything this time?$" - -gText_082BA6E6:: @ 82BA6E6 - .string "{PLAYER}, hello!\n" - .string "It's about my {STR_VAR_1}…\p" - .string "I want to make it hold a good item.\n" - .string "What would be good for it?$" - -gText_082BA742:: @ 82BA742 - .string "Oh, then my {STR_VAR_1} doesn't have\n" - .string "to hold anything?$" - -gText_082BA770:: @ 82BA770 - .string "Okay, I got it!\n" - .string "See you again!$" - -gText_082BA78F:: @ 82BA78F - .string "Oh, the item {STR_VAR_1}?\n" - .string "Understood!\p" - .string "I'll do my best to find one!\n" - .string "See you again!$" - -gText_082BA7D8:: @ 82BA7D8 - .string "Somebody taught me about\n" - .string "the {STR_VAR_1} already.\p" - .string "I want my POKéMON to hold a different\n" - .string "kind of item.\p" - .string "Or do you think {STR_VAR_2} doesn't\n" - .string "have to hold anything?$" - -gText_082BA867:: @ 82BA867 - .string "Hello, {PLAYER}…\n" - .string "I'm sorry to disturb you, but I have\l" - .string "something else I wanted to ask you.\p" - .string "I don't think I'm good enough to win\n" - .string "matches on my own, so I'm thinking of\l" - .string "making my {STR_VAR_1} hold an item.\p" - .string "But I don't know what would be good.\p" - .string "{PLAYER}, please, could you decide\n" - .string "for me?$" - -gText_082BA96B:: @ 82BA96B - .string "A POKéMON belonging to someone like me\n" - .string "would be better off without an item?$" - -gText_082BA9B7:: @ 82BA9B7 - .string "I understand…\n" - .string "You're saying I shouldn't rely on items.\l" - .string "I'll do my best not to!\p" - .string "Thank you very much!$" - -gText_082BAA1B:: @ 82BAA1B - .string "The item {STR_VAR_1}, okay.\n" - .string "I'm not sure if I can get one…\l" - .string "No! I'll do my best to get it.\p" - .string "Thank you very much!$" - -gText_082BAA81:: @ 82BAA81 - .string "Oh, but…\n" - .string "I think I've heard about that before…\p" - .string "Is it maybe because I haven't handled\n" - .string "the item {STR_VAR_1} very well?\p" - .string "Or do you mean I shouldn't make\n" - .string "my {STR_VAR_2} hold anything?$" - -gText_082BAB22:: @ 82BAB22 - .string "Oh, {PLAYER}{KUN}.\n" - .string "There's something I wanted to ask you.\p" - .string "You know how you decided which\n" - .string "POKéMON I should have for me?\p" - .string "But I never asked you what item\n" - .string "it should be holding.\p" - .string "Since you already gave me advice,\n" - .string "how about seeing this to the end?\p" - .string "What would be good? I want to make\n" - .string "my {STR_VAR_1} hold something.$" - -gText_082BAC43:: @ 82BAC43 - .string "Oh! So my {STR_VAR_1} should do\n" - .string "the best it can empty-handed?$" - -gText_082BAC78:: @ 82BAC78 - .string "If you think that's best, I'll do that.\p" - .string "Knowing that you made the decision,\n" - .string "{PLAYER}{KUN}, I won't be so upset if\l" - .string "I lose.\p" - .string "Okay, I'll look to you for advice again.\n" - .string "Bye!$" - -gText_082BAD17:: @ 82BAD17 - .string "The item {STR_VAR_1}, huh?\n" - .string "Not bad. I'll use it!\p" - .string "Knowing that you made the decision,\n" - .string "{PLAYER}{KUN}, I won't be so upset if\l" - .string "I lose.\p" - .string "Okay, I'll look to you for advice again.\n" - .string "Bye!$" - -gText_082BADB6:: @ 82BADB6 - .string "Huh? What are you saying?\n" - .string "You told me about the {STR_VAR_1}\l" - .string "already before.\p" - .string "Or do you mean my {STR_VAR_2} should\n" - .string "do the best it can empty-handed?$" - -gText_082BAE36:: @ 82BAE36 - .string "Yo, {PLAYER}{KUN}!\p" - .string "We're both busy, but we seem to run\n" - .string "into each other often anyway!\p" - .string "Today I have to do some walking,\n" - .string "cleaning, and brushing.\p" - .string "I haven't even had the time to buy\n" - .string "my precious {STR_VAR_1} anything.\p" - .string "I don't have any time, so how about\n" - .string "giving me advice on what I should make\l" - .string "my {STR_VAR_1} hold?$" - -gText_082BAF4E:: @ 82BAF4E - .string "Oh, so me being a busy guy, you say\n" - .string "my {STR_VAR_1} doesn't need anything?$" - -gText_082BAF8F:: @ 82BAF8F - .string "Okay, gotcha.\n" - .string "I won't need any time for that.\p" - .string "Thanks today!\n" - .string "See you around!$" - -gText_082BAFDB:: @ 82BAFDB - .string "Okay, gotcha.\n" - .string "I'll find time somehow and find\l" - .string "that {STR_VAR_1} you recommended.\p" - .string "I'm glad I met a good mentor in you.\n" - .string "Thanks! See you around!$" - -gText_082BB05F:: @ 82BB05F - .string "Huh? I already know about\n" - .string "that {STR_VAR_1}.\p" - .string "Oh, right, I get it.\n" - .string "So me being a busy guy, you say\l" - .string "my {STR_VAR_2} doesn't need anything?$" - -gText_082BB0D4:: @ 82BB0D4 - .string "Hiya, {PLAYER}! It's me!\n" - .string "I need to tap your mind again today.\l" - .string "Please, I need your advice!\p" - .string "Drum roll, please!\n" - .string "The question I have is…\p" - .string "If I want to make my {STR_VAR_1} hold\n" - .string "an item, what should it be?$" - -gText_082BB18C:: @ 82BB18C - .string "Is that right? My {STR_VAR_1} doesn't\n" - .string "need to hold an item, you're saying.$" - -gText_082BB1CE:: @ 82BB1CE - .string "Okay, that's what I'll do!\p" - .string "I guess that's about all I wanted\n" - .string "to ask you today.\p" - .string "Let's meet here again, okay?\n" - .string "Thanks!$" - -gText_082BB242:: @ 82BB242 - .string "Uh-huh! One {STR_VAR_1}.\n" - .string "What a cool choice!\l" - .string "I'll definitely try that!\p" - .string "I guess that's about all I wanted\n" - .string "to ask you today.\p" - .string "Let's meet here again, okay?\n" - .string "Thanks!$" - -gText_082BB2D9:: @ 82BB2D9 - .string "Ahahah! That's silly!\n" - .string "You already told me about that\l" - .string "{STR_VAR_1} before!\p" - .string "Are you feeling okay, {PLAYER}?\p" - .string "Oh, wait! My {STR_VAR_2} doesn't\n" - .string "need to hold an item, you're saying.$" - -gText_082BB370:: @ 82BB370 - .string "Hello, {PLAYER}. I hope you've been\n" - .string "keeping well.\p" - .string "May I approach you for advice?\p" - .string "In a recent battle, my opponent\n" - .string "seemed to have given his POKéMON\l" - .string "an item to hold.\p" - .string "As a result, I was defeated…\p" - .string "I don't wish to be left behind.\n" - .string "I would like to make my {STR_VAR_1}\l" - .string "hold an item, too.\p" - .string "It would please me if you could decide\n" - .string "what would be right for my POKéMON…$" - -gText_082BB4C3:: @ 82BB4C3 - .string "In other words… My POKéMON has\n" - .string "no need to hold an item?$" - -gText_082BB4FB:: @ 82BB4FB - .string "I understand clearly now!\n" - .string "I will keep trying like this.\p" - .string "Thank you, {PLAYER}.\n" - .string "I hope I can count on you again.\l" - .string "Please take care!$" - -gText_082BB575:: @ 82BB575 - .string "One {STR_VAR_1} it is!\n" - .string "I will order it right away.\p" - .string "Thank you, {PLAYER}.\n" - .string "I hope I can count on you again.\l" - .string "Please take care!$" - -gText_082BB5E1:: @ 82BB5E1 - .string "You've already told me about that,\n" - .string "and I already have it.\p" - .string "Or are you saying… My POKéMON has\n" - .string "no need to hold an item?$" - -gText_082BB656:: @ 82BB656 - .string "Eek! {PLAYER}!\n" - .string "I… I'm overjoyed to see you again!\p" - .string "Oh-oh-oh! There's something I just\n" - .string "had to ask you, {PLAYER}!\p" - .string "Please decide what my {STR_VAR_1}\n" - .string "should be holding!$" - -gText_082BB6E5:: @ 82BB6E5 - .string "Oh, wow! I didn't expect that answer!\n" - .string "So, a hold item isn't necessary?$" - -gText_082BB72C:: @ 82BB72C - .string "Perfectly understood!\n" - .string "I'll keep at this without an item!\p" - .string "I hope you'll be willing to teach me\n" - .string "some more another time.$" - -gText_082BB7A2:: @ 82BB7A2 - .string "{STR_VAR_1}! I'll use that!\p" - .string "Um… Could it be, {PLAYER}, you also\n" - .string "make your POKéMON hold that item?\p" - .string "I'll be sure to get it!\n" - .string "I hope you'll be willing to teach me\l" - .string "some more another time.$" - -gText_082BB84A:: @ 82BB84A - .string "Oh? You recommended that\n" - .string "{STR_VAR_1} before, too.\p" - .string "Or is it the best thing to hold?\n" - .string "Or do you mean that my {STR_VAR_2}\l" - .string "doesn't need anything to hold?$" - -gText_082BB8CD:: @ 82BB8CD - .string "Hola!\n" - .string "My maestro, {PLAYER}{KUN}!\p" - .string "I want to hit you up for advice on\n" - .string "POKéMON tools.\p" - .string "What do you think would be good for\n" - .string "my {STR_VAR_1} to hold?\p" - .string "Don't be shy now.\n" - .string "Let's blurt it out!$" - -gText_082BB970:: @ 82BB970 - .string "Oh? So, you're saying my {STR_VAR_1}\n" - .string "can win without holding any item?$" - -gText_082BB9AE:: @ 82BB9AE - .string "Si, bueno!\n" - .string "I'll give it my best shot, like, slam!\p" - .string "All right, thanks, as always!\n" - .string "Adios!$" - -gText_082BBA05:: @ 82BBA05 - .string "Uh-huh, that's one {STR_VAR_1}?\n" - .string "Si, bueno!\l" - .string "I'll go find me one, like, bam!\p" - .string "All right, thanks, as always!\n" - .string "Adios!$" - -gText_082BBA6C:: @ 82BBA6C - .string "No, no! You already told me about\n" - .string "that {STR_VAR_1} thing before.\p" - .string "Oh, now wait just one minute here…\n" - .string "So, you're saying my {STR_VAR_2}\l" - .string "can win without holding any item?$" - -gText_082BBB01:: @ 82BBB01 - .string "{PLAYER}{KUN}, something unbelievable\n" - .string "has happened!\p" - .string "I woke up this morning, and my POKéMON\n" - .string "had 10 NUGGETS!\p" - .string "Of course I'm lying!\n" - .string "Wahahaha!\p" - .string "This is no lie, though.\n" - .string "I'm not very good at thinking about\l" - .string "what items POKéMON should hold.\p" - .string "So, how about deciding for me what\n" - .string "my {STR_VAR_1} should hold, master?$" - -gText_082BBC1C:: @ 82BBC1C - .string "What's that mean?\n" - .string "Don't make it hold anything?$" - -gText_082BBC4B:: @ 82BBC4B - .string "Okay, so it shouldn't hold anything.\n" - .string "Then, I'd better get something for it!\p" - .string "Just kidding!\n" - .string "I'll obey your teaching, master!\p" - .string "Thanks, master!\n" - .string "I hope you'll keep teaching me!$" - -gText_082BBCF6:: @ 82BBCF6 - .string "Okay, so it's one {STR_VAR_1}!\n" - .string "I'll make it hold anything but that!\p" - .string "Just kidding!\n" - .string "I'll obey your teaching, master!\p" - .string "Thanks, master!\n" - .string "I hope you'll keep teaching me!$" - -gText_082BBD90:: @ 82BBD90 - .string "Um, you told me about that before,\n" - .string "didn't you?\p" - .string "Isn't there something else?\p" - .string "Or do you mean, don't make\n" - .string "my {STR_VAR_2} hold anything?$" - -gText_082BBE0B:: @ 82BBE0B - .string "A-H-O-Y!\n" - .string "And that spells ahoy!\p" - .string "The rappin' SAILOR am I!\n" - .string "I present to you a question\l" - .string "that's pretty fly!\p" - .string "It's an item question\n" - .string "that begs your suggestion!\p" - .string "My {STR_VAR_1} needs an item to hold,\n" - .string "What should it be, if I may be bold?$" - -gText_082BBEE5:: @ 82BBEE5 - .string "Is that right?\n" - .string "My {STR_VAR_1} doesn't need to be\l" - .string "holding anything tight?$" - -gText_082BBF25:: @ 82BBF25 - .string "Okay, I hear you, sure I do!\n" - .string "My POKéMON will go empty-handed, too!\p" - .string "If it's advice I ever need,\n" - .string "{PLAYER}, your word I'll always heed!$" - -gText_082BBFA4:: @ 82BBFA4 - .string "Okay, one {STR_VAR_1},\n" - .string "that's what I'll use.\l" - .string "I was right to make you choose!\p" - .string "If it's advice I ever need,\n" - .string "{PLAYER}, your word I'll always heed!$" - -gText_082BC024:: @ 82BC024 - .string "Okay, one {STR_VAR_1}, you say?\n" - .string "You told me that the other day.\l" - .string "I need a new idea, a brand new way.\p" - .string "Or, what, is that right?\n" - .string "My POKéMON doesn't need to hold\l" - .string "anything tight?$" - -gText_082BC0C8:: @ 82BC0C8 - .string "Say, hey, {PLAYER}!\n" - .string "I found you again today!\p" - .string "What should I do? Get your advice?\n" - .string "Why not? I'm already talking to you!\p" - .string "{PLAYER}, are you getting sick of me?\n" - .string "Nah, no way, that can't be.\p" - .string "Will you hear me out?\n" - .string "I'm looking for advice--that's what\l" - .string "I'm talking about.\p" - .string "It's about a hold item for\n" - .string "my {STR_VAR_1} that'd be good.\l" - .string "My indecision is making me brood.$" - -gText_082BC213:: @ 82BC213 - .string "My {STR_VAR_1} needs nothing?\n" - .string "Doesn't need to hold anything?$" - -gText_082BC247:: @ 82BC247 - .string "If holding nothing is the best,\n" - .string "I'll do as you suggest!\p" - .string "Well, {PLAYER}, I have to roam free,\n" - .string "but don't you forget about me.\p" - .string "See you again, my smart friend!$" - -gText_082BC2DD:: @ 82BC2DD - .string "If holding that {STR_VAR_1} is\n" - .string "the best, I'll do as you suggest!\p" - .string "Well, {PLAYER}, I have to roam free,\n" - .string "but don't you forget about me.\p" - .string "See you again, my smart friend!$" - -gText_082BC373:: @ 82BC373 - .string "Haven't I heard about that\n" - .string "{STR_VAR_1} before?\l" - .string "I'm certain I have, that's for sure!\p" - .string "I need a new something!\n" - .string "Or, my {STR_VAR_2} needs nothing?\l" - .string "Doesn't need to hold anything?$" - -gText_082BC40E:: @ 82BC40E - .string "Gwah! Ouch! {PLAYER}{KUN}, my arm's broken!\n" - .string "Don't touch it, please!\p" - .string "I must've broken it while I was trying\n" - .string "out different hold items with my posse\l" - .string "of POKéMON.\p" - .string "So, things being this way,\n" - .string "I need you to decide for me.\p" - .string "{PLAYER}{KUN}, what do you think would be\n" - .string "good for my {STR_VAR_1} to hold?$" - -gText_082BC514:: @ 82BC514 - .string "Ouch…\p" - .string "So your suggestion is my {STR_VAR_1}\n" - .string "doesn't have to hold anything?$" - -gText_082BC555:: @ 82BC555 - .string "Hm, all right. That would be easier\n" - .string "for me, the way things are now.\p" - .string "I hope I can keep hitting you up\n" - .string "for help like this.$" - -gText_082BC5CE:: @ 82BC5CE - .string "Hm, all right. That's one {STR_VAR_1}.\n" - .string "My POKéMON's arm is fine, so I'll make\l" - .string "it hold that item right away.\p" - .string "I hope I can keep hitting you up\n" - .string "for help like this.$" - -gText_082BC666:: @ 82BC666 - .string "No, no, you told me about that\n" - .string "{STR_VAR_1} before, remember?\p" - .string "How about telling me something\n" - .string "even better?\p" - .string "Oh, wait a second.\n" - .string "So your suggestion is my {STR_VAR_2}\l" - .string "doesn't have to hold anything?$" - -gText_082BC714:: @ 82BC714 - .string "Er… Um…\n" - .string "{PLAYER}{KUN}…\p" - .string "Please, don't look at me that way.\n" - .string "My POKéMON don't have anything.\p" - .string "I… I'm really embarrassed about this,\n" - .string "but I really need your advice.\p" - .string "I can't decide what hold item would\n" - .string "make my {STR_VAR_1} strong.\p" - .string "{PLAYER}{KUN}, what do you think would\n" - .string "be good?$" - -gText_082BC808:: @ 82BC808 - .string "Oh… Then, you think it would be better\n" - .string "if my {STR_VAR_1} didn't have an item?$" - -gText_082BC84D:: @ 82BC84D - .string "Oh… Okay!\n" - .string "I'll go without an item.\p" - .string "This is nerve-racking, though.\n" - .string "Wouldn't it be too cool?\p" - .string "Thank you, {PLAYER}{KUN}.\n" - .string "If we meet again, I hope you will be\l" - .string "as helpful.$" - -gText_082BC8EA:: @ 82BC8EA - .string "Oh… Okay!\n" - .string "I'll go with that {STR_VAR_1}.\p" - .string "This is nerve-racking, though.\n" - .string "Wouldn't it be too cool?\p" - .string "Thank you, {PLAYER}{KUN}.\n" - .string "If we meet again, I hope you will be\l" - .string "as helpful.$" - -gText_082BC984:: @ 82BC984 - .string "B-but I already heard about that.\p" - .string "Please don't brush me off like this!\n" - .string "I can't live with the humiliation.\p" - .string "Oh… Am I jumping to conclusions?\n" - .string "Do you think it would be better if\l" - .string "my {STR_VAR_2} didn't have an item?$" - -gText_082BCA4D:: @ 82BCA4D - .string "Hm? You appear to be {PLAYER}{KUN}…\n" - .string "But are you really?\l" - .string "Perhaps you're a twin?\p" - .string "Oh, no, no, no, don't worry!\n" - .string "If you really are {PLAYER}, please\l" - .string "forget about my rudeness.\p" - .string "What I would like is some more of\n" - .string "your fine advice.\p" - .string "I have here my {STR_VAR_1} that I wish\n" - .string "to make hold a convenient item.\p" - .string "What would be worthy of it?$" - -gText_082BCB75:: @ 82BCB75 - .string "It's better if it held nothing?\n" - .string "Are you certain?$" - -gText_082BCBA6:: @ 82BCBA6 - .string "I see. If that's the case, that's fine.\n" - .string "I thank you for your time.\p" - .string "Let us meet again!$" - -gText_082BCBFC:: @ 82BCBFC - .string "One {STR_VAR_1}?\n" - .string "Are you certain?\p" - .string "I see. If that's the case, that's fine.\n" - .string "I thank you for your time.\p" - .string "I do hope my POKéMON will be able to\n" - .string "put it to good use.\p" - .string "Let us meet again!$" - -gText_082BCCA4:: @ 82BCCA4 - .string "No, no, wait a minute.\n" - .string "I believe you taught me that before.\p" - .string "I would like you to recommend\n" - .string "something different this time.\p" - .string "Perhaps you're suggesting that\n" - .string "my {STR_VAR_2} should hold nothing?\l" - .string "Are you certain?$" - -gText_082BCD68:: @ 82BCD68 - .string "Waah, {PLAYER}!\n" - .string "I have a dilemma, sob…\p" - .string "I want to begin battling other people,\n" - .string "but I don't know what to do.\p" - .string "How should I line up my POKéMON\n" - .string "so they'll be at their strongest?\p" - .string "Please tell me, {PLAYER}.\n" - .string "If you were me, which of these POKéMON\l" - .string "would you send out first?$" - -gText_082BCE64:: @ 82BCE64 - .string "My {STR_VAR_1} should go first?\n" - .string "Waaaaah!\p" - .string "Oh! I'm so sorry!\n" - .string "You've made me happy by choosing\l" - .string "my first POKéMON, and it's made me cry…\p" - .string "Thank you so much!$" - -gText_082BCEF2:: @ 82BCEF2 - .string "Yay! It's {PLAYER}!\n" - .string "Great! I wanted to ask you something!\p" - .string "Um, of my POKéMON, which do you\n" - .string "think should go out first?$" - -gText_082BCF61:: @ 82BCF61 - .string "My {STR_VAR_1}? That's true.\n" - .string "Okay, I'll do that!\p" - .string "Thanks for teaching me!$" - -gText_082BCFA1:: @ 82BCFA1 - .string "{PLAYER}, hello!\p" - .string "I think, in a battle, it's very important\n" - .string "which POKéMON comes out first.\p" - .string "Out of the POKéMON that I have,\n" - .string "which would be good to send out first?$" - -gText_082BD03C:: @ 82BD03C - .string "My {STR_VAR_1} goes first?\n" - .string "Okay, I got it!\p" - .string "See you again!$" - -gText_082BD06D:: @ 82BD06D - .string "Hello, {PLAYER}…\n" - .string "I'm sorry to disturb you again with\l" - .string "another question.\p" - .string "I have so little confidence, I don't\n" - .string "know what I'd do without you, {PLAYER}.\p" - .string "It may be a waste of time for me to\n" - .string "even worry about it, but I just can't\l" - .string "decide something…\p" - .string "Which of my POKéMON should I send\n" - .string "out first in a battle?$" - -gText_082BD18A:: @ 82BD18A - .string "My {STR_VAR_1}?\n" - .string "Understood!\p" - .string "I can't believe that you would bother\n" - .string "to answer my questions so often!\p" - .string "I'm so grateful that you would even\n" - .string "speak with me… Thank you!$" - -gText_082BD222:: @ 82BD222 - .string "Oh, {PLAYER}{KUN}! It's me!\n" - .string "I'm so glad to see you because I have\l" - .string "this little problem.\p" - .string "I can't decide how my POKéMON should\n" - .string "be lined up. Could you decide for me?\p" - .string "Oh, you don't need to decide the whole\n" - .string "party right now.\p" - .string "How about deciding just the first\n" - .string "POKéMON for me?$" - -gText_082BD325:: @ 82BD325 - .string "My {STR_VAR_1}? That's great!\p" - .string "Knowing that you made the decision,\n" - .string "{PLAYER}{KUN}, I won't be so upset if\l" - .string "I lose.\p" - .string "Okay, I'll look to you for advice again.\n" - .string "Bye!$" - -gText_082BD3B1:: @ 82BD3B1 - .string "Hi, my teacher {PLAYER}{KUN}!\n" - .string "I'm busy again today!\p" - .string "I have to do some cycling, shopping,\n" - .string "and humming.\p" - .string "I haven't even had the time to decide\n" - .string "how to line up my POKéMON team.\p" - .string "So, how about checking out my team?\n" - .string "Which one should go first?$" - -gText_082BD493:: @ 82BD493 - .string "Okay, gotcha.\n" - .string "I have enough time at least to put\l" - .string "my {STR_VAR_1} at the head of the line!\p" - .string "Whoops, my girlfriend's waiting!\n" - .string "Thanks! See you around!$" - -gText_082BD51C:: @ 82BD51C - .string "Yoohoo! Hiya, {PLAYER}!\n" - .string "You always walk around looking tough!\p" - .string "Listen, I need something from you\n" - .string "again! It's the usual thing!\p" - .string "Drum roll, please!\n" - .string "The question I have is about my team.\p" - .string "Which POKéMON of mine should be first\n" - .string "to go out in a battle?$" - -gText_082BD609:: @ 82BD609 - .string "Hmhm!\n" - .string "My {STR_VAR_1}, you say!\l" - .string "Thanks for a most cool answer!\p" - .string "I guess that's about all I wanted\n" - .string "to ask you today.\p" - .string "Let's meet here again, okay?\n" - .string "Thanks!$" - -gText_082BD697:: @ 82BD697 - .string "Thank you so much for stopping to\n" - .string "chat with me, {PLAYER}.\p" - .string "I know I'm taking advantage of your\n" - .string "kindness, but may I ask for advice?\p" - .string "I would like you to decide on the order\n" - .string "of my POKéMON team.\p" - .string "It would please me if you could decide\n" - .string "which POKéMON should come first.$" - -gText_082BD797:: @ 82BD797 - .string "My {STR_VAR_1} it is!\n" - .string "I will put it first right away!\p" - .string "Thank you, {PLAYER}.\n" - .string "I hope I can count on you again.\l" - .string "Please take care!$" - -gText_082BD806:: @ 82BD806 - .string "Eek! {PLAYER}!\n" - .string "I… I'm overjoyed to see you again!\p" - .string "My POKéMON have become much\n" - .string "stronger!\p" - .string "But I don't always win. It seems to\n" - .string "depend on which POKéMON goes first.\p" - .string "{PLAYER}, please, I need your help!\p" - .string "Please decide which of my POKéMON\n" - .string "should go out first!$" - -gText_082BD8F5:: @ 82BD8F5 - .string "Sigh… I'm overwhelmed with happiness…\p" - .string "It's like a dream having you decide\n" - .string "for me, {PLAYER}.\p" - .string "But perfectly understood!\n" - .string "I will go with my {STR_VAR_1} first!\p" - .string "I hope you'll be willing to teach me\n" - .string "some more another time.$" - -gText_082BD9BE:: @ 82BD9BE - .string "Hello, hello!\n" - .string "My mentor, {PLAYER}{KUN}!\l" - .string "Hit me with your sage advice today!\p" - .string "You see, I pulled together a team of\n" - .string "three POKéMON. So far so good.\p" - .string "But the team's battling order's not\n" - .string "settled yet.\p" - .string "This is where you come in, {PLAYER}{KUN}!\n" - .string "You decide which POKéMON leads off!\p" - .string "Don't be shy now.\n" - .string "Let's blurt it out!$" - -gText_082BDAE1:: @ 82BDAE1 - .string "Uh-huh, my {STR_VAR_1} leads off!\n" - .string "OK, A-OK!\l" - .string "I'll reorder the lineup, like, wham!\p" - .string "All right, thanks, as always!\n" - .string "Adios!$" - -gText_082BDB4E:: @ 82BDB4E - .string "{PLAYER}{KUN}, listen!\n" - .string "It's a crisis!\p" - .string "My POKéMON, all three of them, go into\n" - .string "battle at once!\p" - .string "Of course that's impossible!\n" - .string "Wahahaha!\p" - .string "This is no lie, though.\n" - .string "I'm not very good at thinking about\l" - .string "how I should line up my POKéMON.\p" - .string "So, how about deciding for me which\n" - .string "POKéMON should go first, master?$" - -gText_082BDC6B:: @ 82BDC6B - .string "Okay, so it's my {STR_VAR_1} you chose?\n" - .string "I'll let any but that one go first!\p" - .string "Just kidding!\n" - .string "I'll obey your teaching, master!\p" - .string "Thanks, master!\n" - .string "I hope you'll keep teaching me!$" - -gText_082BDD0D:: @ 82BDD0D - .string "A-H-O-Y!\n" - .string "And that spells ahoy!\p" - .string "The rappin' SAILOR am I!\n" - .string "I present to you a question\l" - .string "that's pretty fly!\p" - .string "It's a team lineup question\n" - .string "that begs your suggestion!\p" - .string "Out of this lot, which should go first\n" - .string "as the first on the spot?$" - -gText_082BDDEC:: @ 82BDDEC - .string "Okay, I hear you, sure I do!\n" - .string "I'll switch them up, that I'll do!\p" - .string "If it's advice I ever need,\n" - .string "{PLAYER}, your word I'll always heed!$" - -gText_082BDE68:: @ 82BDE68 - .string "Yahoo, {PLAYER}!\n" - .string "How do you do?\p" - .string "What should I do? Go ahead and ask?\n" - .string "Uh-huh, I have something to ask!\l" - .string "Are you receiving me?\l" - .string "You are receiving me!\p" - .string "You have to decide, which of my\n" - .string "POKéMON is the first to ride!\l" - .string "Into battle, I mean to say.$" - -gText_082BDF4D:: @ 82BDF4D - .string "My {STR_VAR_1}? Yes!\n" - .string "That'll do, there's no distress!\p" - .string "Well, {PLAYER}, I have to roam free,\n" - .string "but don't you forget about me.\p" - .string "See you again, my smart friend!$" - -gText_082BDFD8:: @ 82BDFD8 - .string "…Oof…ooch… {PLAYER}{KUN}…\n" - .string "My stomach's hurting all of a sudden…\p" - .string "…It's getting better now…\p" - .string "I must've worried myself sick racking\n" - .string "my brains on how I should line up\l" - .string "my posse of POKéMON.\p" - .string "So, things being this way,\n" - .string "I need you to decide for me.\p" - .string "{PLAYER}{KUN}, which of my POKéMON should\n" - .string "go first? So I'd win, I mean.$" - -gText_082BE0FD:: @ 82BE0FD - .string "Hm, all right.\n" - .string "My {STR_VAR_1} goes first.\p" - .string "I'll fix the lineup like that after\n" - .string "I have my supper.\p" - .string "I hope I can keep hitting you up\n" - .string "for help like this.$" - -gText_082BE189:: @ 82BE189 - .string "Er… Um…\n" - .string "{PLAYER}{KUN}?\p" - .string "Please, don't look at me that way.\n" - .string "You're making me feel all flustered.\p" - .string "Um…\n" - .string "I really need your advice.\p" - .string "It makes me bashful to say this,\n" - .string "but I chose my 3-POKéMON team.\l" - .string "I can't decide on the order, though.\p" - .string "Which POKéMON should I send out first\n" - .string "so I at least look capable?$" - -gText_082BE2A5:: @ 82BE2A5 - .string "Oh… Okay!\n" - .string "I'll lead with my {STR_VAR_1}.\p" - .string "I hope I can do my best without\n" - .string "getting all flustered.\p" - .string "Thank you, {PLAYER}{KUN}.\n" - .string "If we meet again, I hope you will be\l" - .string "as helpful.$" - -gText_082BE33E:: @ 82BE33E - .string "Hm? You appear to be {PLAYER}{KUN}…\n" - .string "But are you really?\l" - .string "Perhaps you're a clever look-alike?\p" - .string "Oh, no, no, no, don't worry!\n" - .string "If you really are {PLAYER}, please\l" - .string "forget about my rudeness.\p" - .string "What I would like is your fine advice.\p" - .string "I have here my POKéMON team.\n" - .string "I would like you to tell me which one\l" - .string "should go first in a battle.$" - -gText_082BE46C:: @ 82BE46C - .string "My {STR_VAR_1}…\n" - .string "You aren't pulling my leg?\p" - .string "I see. If that's the case, that's fine.\n" - .string "I thank you for your time.\p" - .string "I am as you see, but I shall do\n" - .string "my best.\p" - .string "Let us meet again!$" - -gText_082BE50D:: @ 82BE50D - .string "Snivel…\n" - .string "Oh, {PLAYER}!\p" - .string "What perfect timing!\n" - .string "There's something I just can't decide…\p" - .string "I can't decide which POKéMON I should\n" - .string "be using.\p" - .string "I can't decide between the POKéMON\n" - .string "{STR_VAR_1} and {STR_VAR_2}…\p" - .string "{PLAYER}, which do you think will give\n" - .string "even me a chance at winning?$" - -gText_082BE5F5:: @ 82BE5F5 - .string "Snivel… I… I understand!\n" - .string "Oh! I'm so sorry!\l" - .string "You've made me so happy, I'm crying…\p" - .string "I'll do my best to catch one\n" - .string "{STR_VAR_1}!\p" - .string "Thank you so much!$" - -gText_082BE679:: @ 82BE679 - .string "Yay! It's {PLAYER}!\n" - .string "Yay, you came at the right time, too!\l" - .string "I need your advice again!\p" - .string "Um, I'm all mixed up--should I use\n" - .string "my {STR_VAR_1} or {STR_VAR_2}…\p" - .string "Which do you think I should raise,\n" - .string "{PLAYER}?$" - -gText_082BE71E:: @ 82BE71E - .string "Oh, so my {STR_VAR_1} is better!\n" - .string "Okay, I'll do that!\p" - .string "Thanks for teaching me!$" - -gText_082BE762:: @ 82BE762 - .string "{PLAYER}, hello!\n" - .string "I have a question I wanted to ask.\p" - .string "I'm in a dilemma over whether I should\n" - .string "raise one {STR_VAR_1} or {STR_VAR_2}.\p" - .string "Which POKéMON do you think will\n" - .string "be stronger?$" - -gText_082BE7F8:: @ 82BE7F8 - .string "{STR_VAR_1} is your choice?\n" - .string "Okay, I got it!\p" - .string "I'll go catch a strong {STR_VAR_1}\n" - .string "right away!\p" - .string "See you again!$" - -gText_082BE850:: @ 82BE850 - .string "Hello, {PLAYER}…\p" - .string "Um, you've probably already forgotten\n" - .string "about someone like me…\p" - .string "…But that doesn't matter if you\n" - .string "could give me advice…\p" - .string "I can't decide on the one kind of\n" - .string "POKéMON I should raise…\p" - .string "I've narrowed the field to the POKéMON\n" - .string "{STR_VAR_1} and {STR_VAR_2}, but that's\l" - .string "where I became stuck…\p" - .string "{PLAYER}, you probably don't want to\n" - .string "bother, but please decide for me.$" - -gText_082BE99C:: @ 82BE99C - .string "But will a wild {STR_VAR_1} even pay\n" - .string "attention to me?\p" - .string "I will try!\p" - .string "But will I even be able to catch one…\n" - .string "No! I'll do my best!\p" - .string "Thank you!$" - -gText_082BEA1B:: @ 82BEA1B - .string "Oh, {PLAYER}{KUN}! I'm so glad to see you!\n" - .string "I was about to go looking for you!\p" - .string "Can you decide what kind of POKéMON\n" - .string "I should use?\p" - .string "For instance…\n" - .string "How about the POKéMON {STR_VAR_1}\l" - .string "and {STR_VAR_2}?\p" - .string "Which one do you think would be\n" - .string "better?$" - -gText_082BEAE9:: @ 82BEAE9 - .string "{STR_VAR_1}? That's great!\p" - .string "Knowing that you made the decision,\n" - .string "{PLAYER}{KUN}, I won't be so upset if\l" - .string "I lose.\p" - .string "Okay, I'll look to you for advice again.\n" - .string "Bye!$" - -gText_082BEB72:: @ 82BEB72 - .string "If it isn't {PLAYER}{KUN}! How's it going?\n" - .string "I'm busy again as always!\p" - .string "I want to do good with POKéMON, too,\n" - .string "but I haven't been able to decide\l" - .string "which POKéMON I should use.\p" - .string "You know how {STR_VAR_1} look strong?\n" - .string "But {STR_VAR_2} are tough to ignore.\p" - .string "{PLAYER}{KUN}, give me some of your good\n" - .string "advice! Which one'd be good for me?$" - -gText_082BEC8E:: @ 82BEC8E - .string "Okay, gotcha.\n" - .string "I'll find time somehow and catch me\l" - .string "that {STR_VAR_1} you recommended.\p" - .string "I'm glad I met a good mentor in you.\n" - .string "Thanks! See you around!$" - -gText_082BED16:: @ 82BED16 - .string "Oh!\n" - .string "Yay, it's {PLAYER}!\p" - .string "I didn't waste any time boasting to\n" - .string "my friends about meeting you!\p" - .string "I need to tap your mind again today.\n" - .string "It's an easy one for you!\p" - .string "Drum roll, please!\n" - .string "The question I have is…\p" - .string "If I were to raise a POKéMON,\n" - .string "and the choices were one {STR_VAR_1}\l" - .string "or {STR_VAR_2}, which should it be?$" - -gText_082BEE29:: @ 82BEE29 - .string "Ahhh!\n" - .string "{STR_VAR_1}, you say!\l" - .string "Thanks for a most cool answer!\p" - .string "I guess that's about all I wanted\n" - .string "to ask you today.\p" - .string "Let's meet here again, okay?\n" - .string "Thanks!$" - -gText_082BEEB4:: @ 82BEEB4 - .string "Oh, is it you, {PLAYER}?\n" - .string "I'm delighted to see you again!\p" - .string "Ever since I became your apprentice,\n" - .string "my confidence has been blooming.\p" - .string "I think I'm ready to raise a POKéMON\n" - .string "of my own!\p" - .string "{PLAYER}, may I impose on you to choose\n" - .string "which POKéMON I should raise?\p" - .string "The choices are the POKéMON\n" - .string "{STR_VAR_1} or {STR_VAR_2}…\l" - .string "Which POKéMON is right for me?$" - -gText_082BEFE2:: @ 82BEFE2 - .string "One {STR_VAR_1} it is!\n" - .string "I will find one right away!\p" - .string "Thank you, {PLAYER}.\n" - .string "I hope I can count on you again.\l" - .string "Please take care!$" - -gText_082BF04E:: @ 82BF04E - .string "Eek! {PLAYER}! I met you again!\n" - .string "I… I'm overjoyed!\p" - .string "Oh-oh-oh, I know!\n" - .string "I shouldn't pass up this opportunity!\p" - .string "May I ask a huge favor, {PLAYER}?\n" - .string "Please choose a POKéMON for me!\p" - .string "Please decide which would be better,\n" - .string "{STR_VAR_1} or {STR_VAR_2}!$" - -gText_082BF11D:: @ 82BF11D - .string "Wow! You decided for me!\n" - .string "One {STR_VAR_1} is what I'll raise to\l" - .string "the best of my ability.\p" - .string "I hope you'll be willing to teach me\n" - .string "some more another time.$" - -gText_082BF1A8:: @ 82BF1A8 - .string "Hey, hey!\n" - .string "My mentor, {PLAYER}{KUN}!\p" - .string "Hello, I've been looking for you\n" - .string "for some more of your sage advice!\p" - .string "Which kind of POKéMON would be right\n" - .string "for me, one {STR_VAR_1} or {STR_VAR_2}?\p" - .string "Don't be shy now.\n" - .string "Let's blurt it out!$" - -gText_082BF268:: @ 82BF268 - .string "Uh-huh, one {STR_VAR_1} it is!\n" - .string "OK, A-OK!\l" - .string "I'll get one in a BALL, like, cram!\p" - .string "All right, thanks, as always!\n" - .string "Adios!$" - -gText_082BF2D1:: @ 82BF2D1 - .string "{PLAYER}{KUN}, listen! Big news!\n" - .string "I caught a mirage POKéMON!\p" - .string "Of course I'm lying!\n" - .string "Wahahaha!\p" - .string "This is no lie, though.\n" - .string "I'm not very good at catching\l" - .string "POKéMON.\p" - .string "So, how about deciding for me which\n" - .string "kind of POKéMON I should catch,\l" - .string "master?\p" - .string "Which would be better?\n" - .string "{STR_VAR_1} or {STR_VAR_2}?$" - -gText_082BF3CF:: @ 82BF3CF - .string "Okay, so it's {STR_VAR_1} you chose?\n" - .string "I'll grab the other kind, then!\p" - .string "Just kidding!\n" - .string "I'll obey your teaching, master!\p" - .string "Thanks, master!\n" - .string "I hope you'll keep teaching me!$" - -gText_082BF46A:: @ 82BF46A - .string "A-H-O-Y!\n" - .string "And that spells ahoy!\p" - .string "The rappin' SAILOR am I!\n" - .string "Surely you remember who am I?\p" - .string "Today, I have a POKéMON question\n" - .string "that begs your suggestion!\p" - .string "I have the choice between this\n" - .string "{STR_VAR_1} and {STR_VAR_2}, you see.\l" - .string "Which is the one to catch for me?$" - -gText_082BF551:: @ 82BF551 - .string "{STR_VAR_1}, you say, hey, hey!\n" - .string "I'll go get me one right away!\p" - .string "If it's advice I ever need,\n" - .string "{PLAYER}, your word I'll always heed!$" - -gText_082BF5C3:: @ 82BF5C3 - .string "Oh, wow, if it isn't {PLAYER}!\p" - .string "What should I do? Get your advice?\n" - .string "Why not? I'm already talking to you!\p" - .string "It's been a long time. Let me break\n" - .string "the ice. I'm also looking for advice!\l" - .string "Are you receiving me?\l" - .string "You are receiving me!\p" - .string "My POKéMON--which should I use?\n" - .string "It's either {STR_VAR_1} or {STR_VAR_2}.\l" - .string "Which do you choose?$" - -gText_082BF6E5:: @ 82BF6E5 - .string "If that {STR_VAR_1} is the best,\n" - .string "I'll do as you suggest!\p" - .string "Well, {PLAYER}, I have to roam free,\n" - .string "but don't you forget about me.\p" - .string "See you again, my smart friend!$" - -gText_082BF773:: @ 82BF773 - .string "Oh, hi, {PLAYER}{KUN}…\n" - .string "I have this horrible headache…\p" - .string "I must've worried too much about\n" - .string "the kind of POKéMON I should raise.\p" - .string "So, things being this way,\n" - .string "I need you to decide for me.\p" - .string "{PLAYER}{KUN}, if I had to choose between\n" - .string "the POKéMON {STR_VAR_1} and\l" - .string "{STR_VAR_2}, which should it be?$" - -gText_082BF869:: @ 82BF869 - .string "Hm, one {STR_VAR_1}, all right.\n" - .string "I'll go look for one when I get better.\p" - .string "I hope I can keep hitting you up\n" - .string "for help like this.$" - -gText_082BF8DD:: @ 82BF8DD - .string "Er… Um…\n" - .string "{PLAYER}{KUN}…?\p" - .string "Please, don't look at me that way.\n" - .string "I'm getting all flustered…\l" - .string "I… I need your advice.\p" - .string "I… I'm really embarrassed, but I can't\n" - .string "decide which POKéMON to use.\p" - .string "If the choices were {STR_VAR_1} or\n" - .string "{STR_VAR_2}, which would be better?$" - -gText_082BF9BA:: @ 82BF9BA - .string "Oh… Okay!\n" - .string "I'll do my best with one {STR_VAR_1}.\p" - .string "I hope I can do my best without\n" - .string "getting all flustered.\p" - .string "Thank you, {PLAYER}{KUN}.\n" - .string "If we meet again, I hope you will be\l" - .string "as helpful.$" - -gText_082BFA5A:: @ 82BFA5A - .string "Hm? You appear to be {PLAYER}{KUN}…\n" - .string "But are you really real?\p" - .string "No, no, if you are real, it's fine.\n" - .string "Incidentally, I would like to obtain\l" - .string "your advice.\p" - .string "It's about the POKéMON I am to use.\p" - .string "If the choices are the POKéMON\n" - .string "{STR_VAR_1} and {STR_VAR_2}, which is\l" - .string "more worthy of me?$" - -gText_082BFB4E:: @ 82BFB4E - .string "{STR_VAR_1}?\n" - .string "Are you certain?\p" - .string "I see. If that's the case, that's fine.\n" - .string "I thank you for your time.\p" - .string "I do hope it is something even I can\n" - .string "handle with aplomb.\p" - .string "Let us meet again!$" - -gText_082BFBF2:: @ 82BFBF2 - .string "Waaah! Oh, {PLAYER}!\n" - .string "Snivel… Hiccup…\p" - .string "I have a dilemma!\n" - .string "I can't decide on a move for\l" - .string "my {STR_VAR_1}…\p" - .string "Please, please, {PLAYER}.\n" - .string "Can you decide for me?\p" - .string "For my {STR_VAR_1}, which move would\n" - .string "be the better choice: {STR_VAR_2}\l" - .string "or {STR_VAR_3}?$" - -gText_082BFCAE:: @ 82BFCAE - .string "{STR_VAR_1}?\n" - .string "Waaaaah!\p" - .string "Oh! I'm so sorry, {PLAYER}!\n" - .string "You've made me so happy by deciding\l" - .string "the move, I'm crying…\p" - .string "Snivel…\n" - .string "Thank you so much!$" - -gText_082BFD26:: @ 82BFD26 - .string "Yay! Hi, {PLAYER}!\n" - .string "I need your advice again!\p" - .string "I want to teach my {STR_VAR_1}\n" - .string "a cool move.\p" - .string "I like either of the moves\n" - .string "{STR_VAR_2} or {STR_VAR_3}.\l" - .string "What's your recommendation?$" - -gText_082BFDB1:: @ 82BFDB1 - .string "{STR_VAR_1} is better? I guess so!\n" - .string "Okay, I'll go with that!\p" - .string "If we meet here again, please teach\n" - .string "me something else, teacher!$" - -gText_082BFE24:: @ 82BFE24 - .string "{PLAYER}, hello!\n" - .string "It's about my {STR_VAR_1}, but I'm\l" - .string "worried about its moves.\p" - .string "You see, it's the moves {STR_VAR_2}\n" - .string "and {STR_VAR_3}.\p" - .string "Which is stronger and better for\n" - .string "my {STR_VAR_1}?$" - -gText_082BFEAD:: @ 82BFEAD - .string "{STR_VAR_1} is your choice?\n" - .string "Okay, I got it!\p" - .string "I'll go teach {STR_VAR_1} to\n" - .string "my POKéMON right away!\p" - .string "See you again!$" - -gText_082BFF0A:: @ 82BFF0A - .string "Ohhh, {PLAYER}…\n" - .string "I'm hopeless, no, really!\p" - .string "I've decided to raise a POKéMON,\n" - .string "but now I can't even decide what\l" - .string "move I should let it learn…\p" - .string "I know that it doesn't mean anything\n" - .string "to you, {PLAYER}.\p" - .string "But it means a lot to me…\p" - .string "Please, {PLAYER}, could you choose\n" - .string "a move for my {STR_VAR_1}?\p" - .string "If you could even choose between\n" - .string "{STR_VAR_2} and {STR_VAR_3}…$" - -gText_082C0032:: @ 82C0032 - .string "I understand!\p" - .string "But will it even be willing to learn\n" - .string "{STR_VAR_1} for me…\l" - .string "No! I'll do my best!\p" - .string "Thank you!$" - -gText_082C0090:: @ 82C0090 - .string "Oh, {PLAYER}{KUN}!\n" - .string "I was just hoping to see you, too!\p" - .string "I was wondering what move would\n" - .string "be suitable for my {STR_VAR_1}.\p" - .string "I can't decide, so can you decide\n" - .string "for me instead?\p" - .string "For instance… How about the moves\n" - .string "{STR_VAR_2} and {STR_VAR_3}?\l" - .string "Which one would be better?$" - -gText_082C016E:: @ 82C016E - .string "{STR_VAR_1}? That's great!\p" - .string "Knowing that you made the decision,\n" - .string "{PLAYER}{KUN}, I won't be so upset if\l" - .string "I lose.\p" - .string "Okay, I'll look to you for advice again.\n" - .string "Bye!$" - -gText_082C01F7:: @ 82C01F7 - .string "How could things be this busy?\n" - .string "Hey, if it isn't {PLAYER}{KUN}!\l" - .string "How's it going?\p" - .string "Since I got up this morning, I've done\n" - .string "my jogging, swimming, and cooking!\p" - .string "You wouldn't believe how busy I am!\p" - .string "I can't even decide what move\n" - .string "my {STR_VAR_1} should learn!\p" - .string "{STR_VAR_2} looks good, huh?\n" - .string "But {STR_VAR_3}'s also decent.\p" - .string "{PLAYER}{KUN}, give me some of your good\n" - .string "advice! Which move'd be good for me?$" - -gText_082C034C:: @ 82C034C - .string "Okay, gotcha.\n" - .string "I'll make room in my schedule and\l" - .string "teach that move.\p" - .string "I'm glad I met a good mentor in you.\n" - .string "Thanks! See you around!$" - -gText_082C03CA:: @ 82C03CA - .string "Oh! Lucky!\n" - .string "I met you again, {PLAYER}!\l" - .string "I need to tap your mind again today.\p" - .string "Drum roll, please!\n" - .string "The question I have is…\p" - .string "For my {STR_VAR_1}, which is the move\n" - .string "best suited, {STR_VAR_2} or\l" - .string "{STR_VAR_3}?$" - -gText_082C046E:: @ 82C046E - .string "Ahhh!\n" - .string "{STR_VAR_1}, you say!\l" - .string "Thanks for a most cool answer!\p" - .string "I guess that's about all I wanted\n" - .string "to ask you today.\p" - .string "Let's meet here again, okay?\n" - .string "Thanks!$" - -gText_082C04F9:: @ 82C04F9 - .string "Oh, hello, {PLAYER}.\n" - .string "I trust you've been well?\p" - .string "I have to seek your advice again.\n" - .string "It's about my dearest {STR_VAR_1}.\p" - .string "What would be the ideal move for\n" - .string "my lovable {STR_VAR_1}?\l" - .string "{STR_VAR_2} or {STR_VAR_3}?$" - -gText_082C0598:: @ 82C0598 - .string "{STR_VAR_1} it is!\n" - .string "I will teach that right away!\p" - .string "Thank you, {PLAYER}.\n" - .string "I hope I can count on you again.\l" - .string "Please take care!$" - -gText_082C0602:: @ 82C0602 - .string "Eek! {PLAYER}! I met you again!\n" - .string "I… I'm overjoyed!\p" - .string "Whenever I'm in need, you're always\n" - .string "there for me, {PLAYER}!\p" - .string "Today, I want you to recommend\n" - .string "a move for me!\p" - .string "Please choose a move for\n" - .string "my {STR_VAR_1}!\p" - .string "Which move would be better,\n" - .string "{STR_VAR_2} or {STR_VAR_3}?$" - -gText_082C06D8:: @ 82C06D8 - .string "Oh-oh-oh! Thank you!\n" - .string "{STR_VAR_1} is it!\l" - .string "Perfectly understood!\p" - .string "I hope you'll be willing to teach me\n" - .string "some more another time.$" - -gText_082C074A:: @ 82C074A - .string "Hola, {PLAYER}{KUN}, bueno!\n" - .string "I'm hoping for some more of\l" - .string "your sage advice today!\p" - .string "What would be the best move for\n" - .string "my {STR_VAR_1}?\p" - .string "It should be something that'll\n" - .string "let me win just like that!\p" - .string "Would it be {STR_VAR_2}?\n" - .string "Or {STR_VAR_3}?$" - -gText_082C0809:: @ 82C0809 - .string "Uh-huh, {STR_VAR_1} it is!\n" - .string "Si, bueno!\l" - .string "I'll get it taught, like, ka-blam!\p" - .string "All right, thanks, as always!\n" - .string "Adios!$" - -gText_082C086E:: @ 82C086E - .string "{PLAYER}{KUN}, it's completely wild!\p" - .string "My POKéMON!\n" - .string "It learned six moves!\p" - .string "Of course I'm lying!\n" - .string "Wahahaha!\p" - .string "This is no lie, though.\n" - .string "I'm not very good at choosing moves\l" - .string "for my POKéMON.\p" - .string "So, how about deciding for me which\n" - .string "kind of move I should teach?\p" - .string "{STR_VAR_2} or {STR_VAR_3}--which\n" - .string "would go with my {STR_VAR_1} best?$" - -gText_082C0982:: @ 82C0982 - .string "Okay, so it's {STR_VAR_1} you chose?\n" - .string "I'll choose another move, then!\p" - .string "Just kidding!\n" - .string "I'll obey your teaching, master!\p" - .string "Thanks, master!\n" - .string "I hope you'll keep teaching me!$" - -gText_082C0A1D:: @ 82C0A1D - .string "A-H-O-Y!\n" - .string "And that spells ahoy!\p" - .string "The rappin' SAILOR am I!\n" - .string "I'm always with it, don't ask me why.\p" - .string "Today, I have a move question\n" - .string "that begs your suggestion!\p" - .string "{STR_VAR_2} and {STR_VAR_3} are\n" - .string "the moves. What would be the best\l" - .string "for my {STR_VAR_1} so it grooves?$" - -gText_082C0AFD:: @ 82C0AFD - .string "{STR_VAR_1}, you say, hey, hey!\n" - .string "I'll go teach that right away!\p" - .string "If it's advice I ever need,\n" - .string "{PLAYER}, your word I'll always heed!$" - -gText_082C0B6F:: @ 82C0B6F - .string "Oh, yeahah, if it isn't {PLAYER}!\p" - .string "What should I do? Get your advice?\n" - .string "Why not? I'm already talking to you!\p" - .string "{PLAYER}, are you surprised by me?\n" - .string "I want your advice, can't you see?\p" - .string "Are you receiving me?\n" - .string "You are receiving me!\p" - .string "My {STR_VAR_1}--what should it use?\n" - .string "It's {STR_VAR_2} or {STR_VAR_3},\l" - .string "what do you choose?$" - -gText_082C0C7D:: @ 82C0C7D - .string "If that {STR_VAR_1} is the best,\n" - .string "I'll do as you suggest!\p" - .string "Well, {PLAYER}, I have to roam free,\n" - .string "but don't you forget about me.\p" - .string "See you again, my smart friend!$" - -gText_082C0D0B:: @ 82C0D0B - .string "Gahack! Gaah! Oh, {PLAYER}{KUN}…\n" - .string "I have this lousy cold, I do…\p" - .string "I want to pick a move for my POKéMON,\n" - .string "but I'm not up to it…\p" - .string "So, things being this way,\n" - .string "I need you to decide for me.\p" - .string "{PLAYER}{KUN}, if I had to choose between\n" - .string "{STR_VAR_2} and {STR_VAR_3} for\l" - .string "my {STR_VAR_1}, which would it be?$" - -gText_082C0DFE:: @ 82C0DFE - .string "Hm, {STR_VAR_1}, all right. Cough!\n" - .string "I'll go teach it when I get better.\p" - .string "I hope I can keep hitting you up\n" - .string "for help like this.$" - -gText_082C0E71:: @ 82C0E71 - .string "Er… Um…\n" - .string "{PLAYER}{KUN}…?\p" - .string "Please, don't look at me that way.\n" - .string "I'm getting all flustered…\l" - .string "I… I need your advice.\p" - .string "I… I'm really embarrassed, but I can't\n" - .string "decide what move I should teach\l" - .string "my POKéMON.\p" - .string "It's for my {STR_VAR_1}.\n" - .string "If the choices were {STR_VAR_2} or\l" - .string "{STR_VAR_3}, which would be better?$" - -gText_082C0F6D:: @ 82C0F6D - .string "Oh… Okay!\n" - .string "I'll try that {STR_VAR_1}.\p" - .string "I hope I can teach that move…\n" - .string "This is so nerve-racking…\p" - .string "Thank you, {PLAYER}{KUN}.\n" - .string "If we meet again, I hope you will be\l" - .string "as helpful.$" - -gText_082C1003:: @ 82C1003 - .string "Hm? You appear to be {PLAYER}{KUN}…\n" - .string "But are you really real?\p" - .string "Perhaps you're one of those popular\n" - .string "mimics?\p" - .string "No, no, if you are real, it's fine.\n" - .string "No need to be upset, I assure you!\p" - .string "Incidentally, I would like to obtain\n" - .string "your advice.\p" - .string "It's about my {STR_VAR_1}.\p" - .string "Which move would be better for it to\n" - .string "use, {STR_VAR_2} or {STR_VAR_3}?$" - -gText_082C1122:: @ 82C1122 - .string "{STR_VAR_1}?\n" - .string "There's no question about that?\p" - .string "I see. If that's the case, that's fine.\n" - .string "I thank you for your time.\p" - .string "I do hope it is something even\n" - .string "my POKéMON can learn.\p" - .string "Let us meet again!$" - -gText_082C11D1:: @ 82C11D1 - .string "Oh… {PLAYER}?\n" - .string "It is {PLAYER}!\l" - .string "Oh! Sniff…sob… Please, listen!\p" - .string "I… When I battle, I get so nervous,\n" - .string "I can't help crying even if I win…\p" - .string "I wish I could say something cool\n" - .string "when I win…\p" - .string "Please, please, {PLAYER}!\n" - .string "Could you maybe teach me something\l" - .string "cool to say when I win so I don't cry?$" - -gText_082C12D5:: @ 82C12D5 - .string "{STR_VAR_1}\p" - .string "Awesome! Wicked! Awoooh!\n" - .string "It's really cool!\p" - .string "Oh… I'm sorry…\n" - .string "I'm so happy, I'm crying…\p" - .string "Snivel… {PLAYER}!\n" - .string "Thank you so much for everything!\p" - .string "I will battle the best I can for\n" - .string "your sake, {PLAYER}!\p" - .string "{PLAYER}…\n" - .string "Next time… We should battle!$" - -gText_082C13AB:: @ 82C13AB - .string "Yay! It's {PLAYER}! Hello!\n" - .string "I wanted to ask you something!\p" - .string "I want to say something cool when\n" - .string "I win a match.\p" - .string "Do you have a cool saying that\n" - .string "you could recommend?$" - -gText_082C1444:: @ 82C1444 - .string "{STR_VAR_1}\p" - .string "Oh, wow! That is so cool!\n" - .string "Okay, I'll say that!\p" - .string "Thanks for teaching me all this time!\n" - .string "I'm going to do the best I can\l" - .string "wherever I go from now on!\p" - .string "When we meet again, it'll be for\n" - .string "a battle!$" - -gText_082C1501:: @ 82C1501 - .string "{PLAYER}, hello!\p" - .string "My POKéMON and I are ready for\n" - .string "anything, except for one thing.\p" - .string "I think it would be good if I had\n" - .string "something to shout when I win.\p" - .string "Could you think up something good\n" - .string "to say?$" - -gText_082C15B6:: @ 82C15B6 - .string "{STR_VAR_1}\p" - .string "…Cool!\n" - .string "I will use that!\p" - .string "I'm going out to battle all over\n" - .string "the place.\p" - .string "Who knows, I may even get to battle\n" - .string "you one day, {PLAYER}.\p" - .string "Next time, let's meet at a place\n" - .string "of battle!$" - -gText_082C165E:: @ 82C165E - .string "Hello, {PLAYER}…\n" - .string "I'm sorry to bug you, but I'm hopeless…\p" - .string "Even when…\n" - .string "Even when I win, I don't have anything\l" - .string "special to say…\p" - .string "I know that it doesn't mean anything\n" - .string "to you, {PLAYER}.\p" - .string "But it means a lot to me…\p" - .string "Please, {PLAYER}, what should I say\n" - .string "if I win a battle?$" - -gText_082C174F:: @ 82C174F - .string "{STR_VAR_1}\p" - .string "That's inspired…\p" - .string "Uh… Is it okay for someone like me\n" - .string "to even say that?\p" - .string "No! I'll do my best!\p" - .string "{PLAYER}, thank you so much for\n" - .string "putting up with me for so long…\p" - .string "I promise to do my best from now on.\p" - .string "I'm sure you'll quickly forget about\n" - .string "someone like me, but let's meet\l" - .string "somewhere again!$" - -gText_082C1862:: @ 82C1862 - .string "Oh, {PLAYER}{KUN}.\n" - .string "There's something I want you to hear.\p" - .string "I know that I don't always sound\n" - .string "nice or polite…\p" - .string "When I win a battle, I think I come\n" - .string "across as being arrogant.\p" - .string "I don't want people to dislike me,\n" - .string "so I want to say something nice to\l" - .string "someone I beat.\p" - .string "But I can't think of anything good!\n" - .string "Could you think something up for me?$" - -gText_082C19A0:: @ 82C19A0 - .string "{STR_VAR_1}\p" - .string "Not bad!\n" - .string "Yup, that's what I'll go with!\p" - .string "I'm going to hit the road and do what\n" - .string "I can with what you taught me in\l" - .string "my head and heart.\p" - .string "I'm sorry that I've been so pushy\n" - .string "with you!\p" - .string "Next time, we battle, okay?\n" - .string "See you!$" - -gText_082C1A76:: @ 82C1A76 - .string "Oh, I can't get over how busy I am!\n" - .string "Oh, hey, I was looking for you, {PLAYER}{KUN}.\p" - .string "Are you well as usual?\n" - .string "Things haven't changed for me at all.\p" - .string "I've got running, fighting, and mapping\n" - .string "to do. Why am I so busy?\p" - .string "But even though I'm busy, it'd be rude\n" - .string "to just turn on my heels and walk away\l" - .string "from a win without saying a word.\p" - .string "So, what would be a cool saying to\n" - .string "underline my coolness when I'm done\l" - .string "and walking away? {PLAYER}{KUN}, help me!$" - -gText_082C1C16:: @ 82C1C16 - .string "{STR_VAR_1}\p" - .string "Okay, gotcha.\n" - .string "I can find time to say that!\p" - .string "Honestly, I'm glad I met a good mentor\n" - .string "like you.\p" - .string "I'm going to make time somehow so\n" - .string "I can get into battling.\p" - .string "Thanks for everything, {PLAYER}{KUN}!\n" - .string "We have to battle, you and me, one day!$" - -gText_082C1CF5:: @ 82C1CF5 - .string "I lucked out again!\n" - .string "{PLAYER}! Am I glad to see you!\l" - .string "Like usual, I need your advice!\p" - .string "Drum roll, please!\n" - .string "The last question I have is…\p" - .string "If I win a battle and want to end\n" - .string "it with a cool flourish, what\l" - .string "should I say?$" - -gText_082C1DC1:: @ 82C1DC1 - .string "{STR_VAR_1}\p" - .string "That… That's fabulous!\n" - .string "It's dignified and cool! I claim it!\p" - .string "…Listen, I think I'm getting decent\n" - .string "at this, huh?\p" - .string "So, I'm thinking of challenging other\n" - .string "TRAINERS from now on.\p" - .string "{PLAYER}, your advice really helped me.\p" - .string "Maybe one day, there'll be a time when\n" - .string "we battle!\p" - .string "Thank you for everything!$" - -gText_082C1EDC:: @ 82C1EDC - .string "Oh, {PLAYER}.\n" - .string "I'm so glad I met you!\p" - .string "I no longer have any concerns with\n" - .string "regard to my POKéMON.\p" - .string "It's myself that worries me…\p" - .string "Do you know how a TRAINER says\n" - .string "a few things upon winning a battle?\p" - .string "Definitely, I wish I could do that,\n" - .string "too!\p" - .string "Please, what should I say when\n" - .string "I win a battle?$" - -gText_082C1FEC:: @ 82C1FEC - .string "{STR_VAR_1}\p" - .string "Ah! That saying! It refreshes me\n" - .string "and makes me feel reborn!\p" - .string "I must use that right away!\p" - .string "And now, I must take my leave,\n" - .string "{PLAYER}…\p" - .string "I will go out to battle many others,\n" - .string "but never will I forget your teachings.\p" - .string "Perhaps one day…\n" - .string "Farewell!$" - -gText_082C20D1:: @ 82C20D1 - .string "Eek! I spotted {PLAYER}!\n" - .string "I… I'm overjoyed to see you!\p" - .string "Oh-oh-oh! There's something I just\n" - .string "had to ask you!\p" - .string "A little while ago, I won a battle.\n" - .string "That part was giddying!\p" - .string "But it made me so overjoyed that\n" - .string "I choked up and couldn't say a thing!\p" - .string "So now, {PLAYER}, please, I want you to\n" - .string "think up an exit line for when I win!$" - -gText_082C21FF:: @ 82C21FF - .string "{STR_VAR_1}\p" - .string "Waaaaah!\n" - .string "I'm going to say that?!\l" - .string "I… I'm delirious with joy!\p" - .string "Th-th-thank you!\n" - .string "I have nothing left to regret now!\p" - .string "I'm going to travel now and battle\n" - .string "all sorts of people.\p" - .string "Everything, I owe it to you, {PLAYER}.\n" - .string "Really, really, thank you!\p" - .string "I've got to go now, but let's meet\n" - .string "in battle one day!$" - -gText_082C231C:: @ 82C231C - .string "Hola, bueno!\n" - .string "{PLAYER}{KUN}!\p" - .string "You know, I'm getting the itch to roam\n" - .string "and battle where I may.\p" - .string "But before I do, I want your advice\n" - .string "once again, please!\p" - .string "If I were to win a battle, what would\n" - .string "be a good boast I could say to my\l" - .string "fallen TRAINER opponent?$" - -gText_082C2407:: @ 82C2407 - .string "{STR_VAR_1}\p" - .string "Uh-huh, that's sweet!\n" - .string "Si, bueno!\l" - .string "I'll try saying that, like, ham!\p" - .string "And now, it's time to say good-bye!\n" - .string "Thanks for all sorts of things!\p" - .string "Give me a battle one day, OK?\n" - .string "Adios!$" - -gText_082C24B5:: @ 82C24B5 - .string "{PLAYER}{KUN}, there's big trouble!\p" - .string "When I win a battle, I brag about it\n" - .string "for an hour at least!\p" - .string "Of course I'm lying!\n" - .string "Wahahaha!\p" - .string "This is no lie, though.\n" - .string "I'm not very good at chatting.\p" - .string "So, how about deciding for me what\n" - .string "I should say after winning a battle,\l" - .string "master?$" - -gText_082C25B1:: @ 82C25B1 - .string "{STR_VAR_1}\p" - .string "That's what I should say, huh?\n" - .string "Then, I'll stay away from that!\p" - .string "Just kidding!\n" - .string "I'll obey your teaching, master!\p" - .string "Thanks for teaching me all this time,\n" - .string "master!\p" - .string "I'm finally understanding what being\n" - .string "a TRAINER is about.\p" - .string "I'm going to go out and win battles\n" - .string "against any TRAINER.\p" - .string "Maybe it'll be you one day, master!\p" - .string "That's all!\n" - .string "Farewell, my master!$" - -gText_082C2707:: @ 82C2707 - .string "A-H-O-Y!\n" - .string "And that spells ahoy!\p" - .string "The rappin' SAILOR am I!\n" - .string "This will be my last question,\l" - .string "don't you cry!\p" - .string "It's a saying question\n" - .string "that begs your suggestion!\p" - .string "If I win a match, what can I say\n" - .string "in a real cool way?$" - -gText_082C27D4:: @ 82C27D4 - .string "{STR_VAR_1}\p" - .string "Perfect! That's what I'll use.\n" - .string "I was right to make you choose!\p" - .string "And now, I think it'd be best,\n" - .string "if I were to fly the nest!\p" - .string "Thanks for all you taught me.\n" - .string "I'll be off on a battle spree!\p" - .string "B-O-N-V-O-Y-A-G-E!\n" - .string "And that spells bon voyage,\l" - .string "to you this is my homage!$" - -gText_082C28D6:: @ 82C28D6 - .string "Oh, yeah, {PLAYER}!\n" - .string "I found you again today!\p" - .string "What should I do? Ask you again?\n" - .string "Why not? I'm already asking you!\p" - .string "Anyways, {PLAYER}…\n" - .string "Are you receiving me?\l" - .string "You are receiving me!\l" - .string "I need some more advice for me!\p" - .string "It's about what I should yell.\n" - .string "Something cool to holler when\l" - .string "a battle ends well.\p" - .string "Come on, I wanna hear you say it!$" - -gText_082C2A0B:: @ 82C2A0B - .string "{STR_VAR_1}\p" - .string "All right, all right!\n" - .string "I'll use that because it's so tight!\p" - .string "I'm out of things to ask you.\n" - .string "Waving bye is all that's left to do.\p" - .string "But maybe one day we'll meet, with one\n" - .string "destined to go down in defeat.\p" - .string "But, it really is time to say farewell.\p" - .string "Well, {PLAYER}, I have to roam free,\n" - .string "but don't you forget about me!\p" - .string "Take care, {PLAYER}!\n" - .string "Love ya!$" - -gText_082C2B50:: @ 82C2B50 - .string "{PLAYER}{KUN}, I'm finished…\n" - .string "My nose won't stop dripping…\p" - .string "I was trying to think up something\n" - .string "cool to say when I win a battle.\p" - .string "It inspired me so much, it made me cry,\n" - .string "and now my nose won't stop running…\p" - .string "So, things being this way,\n" - .string "I need you to decide for me, {PLAYER}{KUN}.\p" - .string "When I win a battle,\n" - .string "what should I say?$" - -gText_082C2C77:: @ 82C2C77 - .string "{STR_VAR_1}\p" - .string "… … …That's good.\n" - .string "No, it's awe inspiring!\l" - .string "It's bringing fresh tears to my eyes!\p" - .string "But in spite of my tears and runny\n" - .string "nose, I will use that saying!\p" - .string "I'm plumb out of things to ask you,\n" - .string "{PLAYER}{KUN}.\p" - .string "From now on, we're rivals!\n" - .string "Thanks for everything!$" - -gText_082C2D67:: @ 82C2D67 - .string "Er… Um…\n" - .string "{PLAYER}{KUN}…\p" - .string "Please, don't look at me that way.\n" - .string "You're making me all nervous.\p" - .string "I… I need your advice again.\n" - .string "I'll make it my last, though…\p" - .string "It's really embarrassing to ask,\n" - .string "but what if I win a battle?\l" - .string "What should I say?$" - -gText_082C2E41:: @ 82C2E41 - .string "{STR_VAR_1}\p" - .string "Oh… Okay!\n" - .string "I'll try to say that!\l" - .string "I might be too nervous to say it…\p" - .string "Thank you, {PLAYER}{KUN}.\n" - .string "I have to say good-bye now.\p" - .string "I'll obey all that you've taught me,\n" - .string "{PLAYER}{KUN}, and do the best I can.$" - -gText_082C2EF5:: @ 82C2EF5 - .string "Hm? You appear to be {PLAYER}{KUN}…\n" - .string "But are you really?\l" - .string "Perhaps a clever {PLAYER} DOLL?\p" - .string "Oh, no, no, no, don't worry!\n" - .string "If you really are real, please\l" - .string "forget about my rudeness.\p" - .string "No need to be so angry. All I wish for\n" - .string "is more of your fine advice.\p" - .string "It concerns a saying.\p" - .string "More precisely, what should I say\n" - .string "if I win a battle?$" - -gText_082C3023:: @ 82C3023 - .string "{STR_VAR_1}\p" - .string "… … … … … …\n" - .string "When I win a match…\p" - .string "{STR_VAR_1}\p" - .string "…Are you serious?\p" - .string "I see. If you are serious, that's fine.\n" - .string "I thank you for your time.\p" - .string "I do hope even I will be able to\n" - .string "put that saying to good use.\p" - .string "I seem to have run dry on what advice\n" - .string "I need.\p" - .string "I do believe it's high time I bid you\n" - .string "farewell and strike out on my own.\p" - .string "Thank you, my mentor!\n" - .string "I apologize for my skepticism!$" diff --git a/data/text/apprentice.inc b/data/text/apprentice.inc new file mode 100644 index 000000000..8ef0d4f2f --- /dev/null +++ b/data/text/apprentice.inc @@ -0,0 +1,2527 @@ +gText_ApprenticeChallenge0:: @ 82B6EA5 + .string "Um, I'm {STR_VAR_1}'s no. {STR_VAR_2} apprentice.\n" + .string "Snivel… This tension is getting to me…$" + +gText_ApprenticeChallenge1:: @ 82B6EEC + .string "I'm {STR_VAR_1}'s no. {STR_VAR_2} apprentice!\n" + .string "Here we come!$" + +gText_ApprenticeChallenge2:: @ 82B6F16 + .string "I'm the no. {STR_VAR_2} apprentice of {STR_VAR_1}!\n" + .string "Accept my challenge!$" + +gText_ApprenticeChallenge3:: @ 82B6F4C + .string "Um… I'm {STR_VAR_1}'s no. {STR_VAR_2} apprentice…\n" + .string "Do you think someone like me can win?$" + +gText_ApprenticeChallenge4:: @ 82B6F92 + .string "I'm {STR_VAR_1}'s no. {STR_VAR_2} apprentice!\n" + .string "I'll let you challenge me!$" + +gText_ApprenticeChallenge5:: @ 82B6FC9 + .string "I'm horribly busy, but I also happen\n" + .string "to be {STR_VAR_1}'s no. {STR_VAR_2} apprentice.$" + +gText_ApprenticeChallenge6:: @ 82B700C + .string "I'm {STR_VAR_1}'s no. {STR_VAR_2} apprentice.\n" + .string "Glad to meet you!$" + +gText_ApprenticeChallenge7:: @ 82B703A + .string "I serve as {STR_VAR_1}'s no. {STR_VAR_2} apprentice.\n" + .string "May I begin?$" + +gText_ApprenticeChallenge8:: @ 82B706A + .string "Eek! I'm {STR_VAR_1}'s no. {STR_VAR_2} apprentice!\n" + .string "I'll do my best!$" + +gText_ApprenticeChallenge9:: @ 82B709C + .string "Yeehaw! I'm {STR_VAR_1}'s no. {STR_VAR_2} apprentice!\n" + .string "Put 'em up!$" + +gText_ApprenticeChallenge10:: @ 82B70CC + .string "I'm {STR_VAR_1}'s 1,000th apprentice!\n" + .string "Actually, I'm no. {STR_VAR_2}! Here goes!$" + +gText_ApprenticeChallenge11:: @ 82B710A + .string "Yeah, I'm {STR_VAR_1}'s no. {STR_VAR_2} apprentice!\n" + .string "Let's get rockin' and a-rollin'!$" + +gText_ApprenticeChallenge12:: @ 82B714D + .string "Yippee-yahoo! I'm what you call\n" + .string "{STR_VAR_1}'s no. {STR_VAR_2} apprentice!$" + +gText_ApprenticeChallenge13:: @ 82B7185 + .string "Cough! I'm {STR_VAR_1}'s no. {STR_VAR_2} apprentice.\n" + .string "Good to meet you! Cough!$" + +gText_ApprenticeChallenge14:: @ 82B71C1 + .string "This is nerve-racking…\n" + .string "I'm the no. {STR_VAR_2} apprentice of {STR_VAR_1}.$" + +gText_ApprenticeChallenge15:: @ 82B71F9 + .string "I am {STR_VAR_1}'s no. {STR_VAR_2} apprentice,\n" + .string "and that's no lie.$" + +gText_ApprenticeIntro0:: @ 82B7229 + .string "Are you… {PLAYER}?\n" + .string "Oh! Sniff…sob…\p" + .string "Oh! S-sorry…\n" + .string "I'm so nervous, I can't help crying…\p" + .string "I'm {STR_VAR_1}, and I really look up\n" + .string "to you, {PLAYER}.\p" + .string "I… I had this dream of one day meeting\n" + .string "you and asking you about POKéMON.\p" + .string "Please, please, {PLAYER}!\n" + .string "Please teach me about POKéMON!$" + +gText_ApprenticeRejectTeaching0:: @ 82B731C + .string "Oh… B-but…\n" + .string "Snivel… Waaaaaaah!\p" + .string "Please!\n" + .string "I'm begging you, please!$" + +gText_ApprenticeWhichLevelMode0:: @ 82B735B + .string "Oh, really? You will?\n" + .string "Awesome! Wicked! Awoooh!\p" + .string "Oh… I'm sorry…\n" + .string "I'm so happy, I'm crying…\p" + .string "Um… Then please tell me!\n" + .string "It's about the BATTLE TOWER.\p" + .string "Which would be better for me: Level 50\n" + .string "or the Open Level?$" + +gText_ApprenticeLevelModeThanks0:: @ 82B7423 + .string "{STR_VAR_1}?\n" + .string "Waaaaah!\p" + .string "Oh! I'm so sorry!\n" + .string "You've made me happy by choosing\l" + .string "the level for me, and it's made me cry…\p" + .string "Snivel…\n" + .string "Thank you so much!\l" + .string "Please talk with me again!$" + +gText_ApprenticeIntro1:: @ 82B74C1 + .string "Wowee! You're {PLAYER}, aren't you?\n" + .string "You're awesomely strong, aren't you?\p" + .string "I'm {STR_VAR_1}!\n" + .string "I just became a TRAINER!\p" + .string "Please, {PLAYER}!\n" + .string "Can you be my teacher and tell me\l" + .string "lots about being a TRAINER?$" + +gText_ApprenticeRejectTeaching1:: @ 82B756F + .string "Aww, why?\n" + .string "Oh, please? Pretty please?\l" + .string "Please be my teacher, please!$" + +gText_ApprenticeWhichLevelMode1:: @ 82B75B2 + .string "Yay! Great!\p" + .string "The first thing I wanted to ask you is\n" + .string "about the BATTLE TOWER!\p" + .string "The Level 50 and Open Level Rooms…\n" + .string "Which would be perfect for me?$" + +gText_ApprenticeLevelModeThanks1:: @ 82B763F + .string "{STR_VAR_1}, huh? That's true!\n" + .string "I'll do my best there!\p" + .string "If we meet here again, please teach\n" + .string "me something else, teacher!$" + +gText_ApprenticeIntro2:: @ 82B76AC + .string "Um… Are you {PLAYER}?\n" + .string "My name is {STR_VAR_1}.\p" + .string "I want to become a POKéMON TRAINER,\n" + .string "but I don't know what to do…\p" + .string "So I thought maybe I could ask you for\n" + .string "advice because you're so famous.\p" + .string "{PLAYER}, could you give me advice?$" + +gText_ApprenticeRejectTeaching2:: @ 82B7772 + .string "Oh, but…\p" + .string "I sincerely want to become a POKéMON\n" + .string "TRAINER!\p" + .string "Please, can you answer my questions?$" + +gText_ApprenticeWhichLevelMode2:: @ 82B77CE + .string "Thank you!\n" + .string "Here's my first question right away!\p" + .string "The BATTLE TOWER has two levels,\n" + .string "Level 50 and Open Level, right?\p" + .string "Which level do you think is more\n" + .string "suitable for me?$" + +gText_ApprenticeLevelModeThanks2:: @ 82B7871 + .string "Oh, the {STR_VAR_1} challenge?\n" + .string "Understood!\p" + .string "If I have another question, I'll come\n" + .string "back here for your advice!$" + +gText_ApprenticeIntro3:: @ 82B78D4 + .string "Oh? Huh? You're…\n" + .string "No, that can't be true.\p" + .string "There isn't any way that someone\n" + .string "like me could meet {PLAYER}.\p" + .string "…You really are {PLAYER}?\n" + .string "I can't believe I'm talking to you!\p" + .string "When something this good happens,\n" + .string "only terrible things will happen to me\l" + .string "now, I just know it…\p" + .string "…I'm sorry…\n" + .string "I'm… {STR_VAR_1}…\p" + .string "There isn't anything special about\n" + .string "me that I can be proud of…\p" + .string "I shouldn't even say anything about\n" + .string "myself because you'll forget…\p" + .string "I had this dream that if I ever met\n" + .string "you, {PLAYER}, that maybe I could ask\l" + .string "you for advice as a TRAINER.\p" + .string "But I don't think you would agree\n" + .string "to that.\p" + .string "…Or will you be so kind as to give\n" + .string "me advice?$" + +gText_ApprenticeRejectTeaching3:: @ 82B7B1A + .string "I knew it…\p" + .string "It had to happen because I'm such\n" + .string "a really boring nobody…\p" + .string "But I thought just maybe…\n" + .string "You won't reconsider, will you?\p" + .string "But I can't give up just like that.\n" + .string "I'll ask you while I'm still lucky!\p" + .string "Please, will you be so kind as to give\n" + .string "me advice?$" + +gText_ApprenticeWhichLevelMode3:: @ 82B7C13 + .string "Really? I can't believe it!\n" + .string "I can't believe you'll advise me!\l" + .string "I… I'm so happy…\p" + .string "What I want to ask you is really\n" + .string "trivial, but I can't decide…\p" + .string "At the BATTLE TOWER, they let you\n" + .string "choose Level 50 or Open Level.\p" + .string "Which course do you think even I may\n" + .string "have a chance at?$" + +gText_ApprenticeLevelModeThanks3:: @ 82B7D18 + .string "{STR_VAR_1}? Okay!\n" + .string "But do you really think someone like\l" + .string "me would have a chance?\p" + .string "I'll do my best, even though I don't\n" + .string "think it will work.\p" + .string "Thank you very much for spending\n" + .string "time with someone like me.$" + +gText_ApprenticeIntro4:: @ 82B7DD4 + .string "Oh! You're {PLAYER}{KUN}, aren't you?\p" + .string "I've heard that you're tough at\n" + .string "POKéMON!\p" + .string "I'm {STR_VAR_1}!\n" + .string "I'll be your friend!\p" + .string "Did you know?\p" + .string "You can't win at the BATTLE FRONTIER\n" + .string "if all you know is what they teach at\l" + .string "the TRAINER'S SCHOOL.\p" + .string "I'm willing to listen to your advice.\n" + .string "You'll agree, of course?$" + +gText_ApprenticeRejectTeaching4:: @ 82B7EE5 + .string "Huh? Why are you refusing me?\n" + .string "It's me who's asking you!\l" + .string "You have to reconsider!$" + +gText_ApprenticeWhichLevelMode4:: @ 82B7F35 + .string "Okay, so there is this something.\n" + .string "I want you to decide it for me.\p" + .string "You know that the BATTLE TOWER has\n" + .string "Level 50 and Open Level Rooms?\p" + .string "Which do you think would be good\n" + .string "for me, {PLAYER}{KUN}?$" + +gText_ApprenticeLevelModeThanks4:: @ 82B7FE8 + .string "Okay, {STR_VAR_1} is suitable for me?\n" + .string "Thank you!\p" + .string "Knowing that you made the decision,\n" + .string "{PLAYER}{KUN}, I won't be so upset if\l" + .string "I lose.\p" + .string "Okay, I'll look to you for advice again.\n" + .string "Bye!$" + +gText_ApprenticeIntro5:: @ 82B8087 + .string "Oh, hi, there! {PLAYER}{KUN}!\n" + .string "I know you because you're famous!\l" + .string "Call me {STR_VAR_1}! Glad to meet you!\p" + .string "I'm a TRIATHLETE, so I keep myself\n" + .string "fit even while I raise POKéMON.\p" + .string "I'm also involved with other things\n" + .string "like work, napping, ballroom dancing…\p" + .string "Being this busy, it's not so easy for\n" + .string "me to become a decent TRAINER.\p" + .string "So, I have a proposition!\p" + .string "There must be a reason why we met.\n" + .string "So, {PLAYER}{KUN}, how about sharing your\l" + .string "wisdom with me every so often?$" + +gText_ApprenticeRejectTeaching5:: @ 82B822B + .string "Oh, but, please?\n" + .string "A guy like me needs someone like\l" + .string "you, {PLAYER}{KUN}!\p" + .string "Honestly, I need your advice!$" + +gText_ApprenticeWhichLevelMode5:: @ 82B8286 + .string "Thank you! That's more like it!\n" + .string "So, let's start with an easy one!\p" + .string "You know about the BATTLE TOWER's\n" + .string "two courses, right?\l" + .string "You know, Level 50 and Open Level.\p" + .string "Me being a busy guy, which one should\n" + .string "I gear up for?$" + +gText_ApprenticeLevelModeThanks5:: @ 82B8356 + .string "{STR_VAR_1}, huh? Okay, gotcha.\n" + .string "I'll find time somehow and give it a go!\p" + .string "…Whoops, I'd better go to work!\n" + .string "Thanks! See you around!$" + +gText_ApprenticeIntro6:: @ 82B83CE + .string "No way! Uh-uh!\n" + .string "Are you maybe the real {PLAYER}?\p" + .string "A-hah! Awesome! I'm {STR_VAR_1},\n" + .string "so pleased to meet you!\p" + .string "{PLAYER}, you're very strong,\n" + .string "aren't you?\p" + .string "Everyone's talking about you!\p" + .string "Oh! I just had this great idea!\n" + .string "I'll get advice off you, {PLAYER}!\l" + .string "I'm sure it will make me tougher!\p" + .string "Isn't it a great idea?\n" + .string "Please, I want your advice!$" + +gText_ApprenticeRejectTeaching6:: @ 82B84FC + .string "Ahahaha, you can pretend to be mean,\n" + .string "but you can't fool me!\l" + .string "You really mean okay, don't you?$" + +gText_ApprenticeWhichLevelMode6:: @ 82B8559 + .string "Yay! I knew you'd have a big heart,\n" + .string "{PLAYER}!\p" + .string "What should I ask you first?\n" + .string "…Oh, I thought of something!\p" + .string "Drum roll, please!\n" + .string "The question I have is…\p" + .string "If I were to take a BATTLE TOWER\n" + .string "challenge, which way should I go?\p" + .string "Level 50 or Open Level?\n" + .string "Which suits me more?$" + +gText_ApprenticeLevelModeThanks6:: @ 82B8656 + .string "Oh-oh-oh!\n" + .string "{STR_VAR_1}, you say!\l" + .string "Thank you for a totally cool reply!\p" + .string "I guess that's about all I wanted\n" + .string "to ask you today.\p" + .string "Let's meet here again, okay?\n" + .string "Thanks!$" + +gText_ApprenticeIntro7:: @ 82B86EA + .string "I beg your pardon, but…\n" + .string "Are you {PLAYER}?\p" + .string "I'm {STR_VAR_1}, and I am delighted to\n" + .string "make your acquaintance.\p" + .string "I have long been an admirer\n" + .string "of yours…\p" + .string "… … … … … …\p" + .string "Um… I hope you don't find this\n" + .string "request too much of a burden, but…\p" + .string "May I become your apprentice,\n" + .string "{PLAYER}?$" + +gText_ApprenticeRejectTeaching7:: @ 82B87DA + .string "Oh…!\p" + .string "… … … … … …\n" + .string "… … … … … …\p" + .string "…I must have fainted from shock.\n" + .string "I'm sorry, I must have misheard you.\p" + .string "Please! Please say that you will\n" + .string "accept me as your apprentice!$" + +gText_ApprenticeWhichLevelMode7:: @ 82B887C + .string "Oh… I'm delighted!\p" + .string "I don't wish to waste your time,\n" + .string "so please advise me on this.\p" + .string "I plan to take a BATTLE TOWER\n" + .string "challenge soon.\p" + .string "However, there are two levels…\p" + .string "Which would be most suitable for me?\n" + .string "Level 50 or Open Level?$" + +gText_ApprenticeLevelModeThanks7:: @ 82B8957 + .string "{STR_VAR_1} is your choice!\n" + .string "I see. I will do my best!\p" + .string "Thank you, {PLAYER}.\n" + .string "I hope I can count on you again.\l" + .string "Please take care!$" + +gText_ApprenticeIntro8:: @ 82B89C6 + .string "Eek! Eek! {PLAYER}!\n" + .string "You spoke to me!\l" + .string "I… I'm overjoyed!\p" + .string "Me! My name is {STR_VAR_1}!\n" + .string "I just became a TRAINER!\p" + .string "I'm delighted I met you, {PLAYER},\n" + .string "the big name in POKéMON circles!\p" + .string "Oh-oh-oh, I know!\n" + .string "May I ask a huge favor, {PLAYER}?\p" + .string "Please take me in as your apprentice!\n" + .string "I want to learn from you!$" + +gText_ApprenticeRejectTeaching8:: @ 82B8ACF + .string "Waaaah!\n" + .string "{PLAYER} turned me down…\l" + .string "It… It's an invaluable experience!\p" + .string "{PLAYER}, please! I want to hear\n" + .string "an affirmative answer this time!\p" + .string "I beg you for your guidance!$" + +gText_ApprenticeWhichLevelMode8:: @ 82B8B66 + .string "Hieeeeh! {PLAYER} said yes!\n" + .string "{PLAYER} said yes!\p" + .string "I won't be able to sleep tonight…\n" + .string "Thank you ever so much!\p" + .string "Then, here's my question!\p" + .string "At the BATTLE TOWER, what is right\n" + .string "for me, Level 50 or Open Level?$" + +gText_ApprenticeLevelModeThanks8:: @ 82B8C20 + .string "{STR_VAR_1}! Perfectly understood!\n" + .string "I understand perfectly!\l" + .string "I'm deliriously delighted!\p" + .string "I hope you'll be willing to teach me\n" + .string "some more another time.$" + +gText_ApprenticeIntro9:: @ 82B8CAA + .string "Whoa! Could you be…\n" + .string "Might you be… {PLAYER}{KUN}?!\l" + .string "That strong and famous TRAINER?\l" + .string "Well, hello, aren't I just the luckiest!\p" + .string "Hello, the name's {STR_VAR_1}!\p" + .string "I've been on the lookout for\n" + .string "a POKéMON teacher.\p" + .string "And with impeccably good timing,\n" + .string "along came you, {PLAYER}{KUN}!\p" + .string "So, there you have it, {PLAYER}{KUN}!\n" + .string "Let me apprentice under you!$" + +gText_ApprenticeRejectTeaching9:: @ 82B8DD3 + .string "Gwaaaah!\n" + .string "You're quite cool and tough…\p" + .string "Don't be that way, please.\n" + .string "I'm asking you!$" + +gText_ApprenticeWhichLevelMode9:: @ 82B8E24 + .string "Oh, yeah! That's a solid reply!\n" + .string "Excellent, I might add!\p" + .string "So how about a first piece of advice\n" + .string "on the BATTLE TOWER?\p" + .string "If I were to go, what would be better?\n" + .string "Level 50 or Open Level?$" + +gText_ApprenticeLevelModeThanks9:: @ 82B8ED5 + .string "Uh-huh, {STR_VAR_1} it is!\n" + .string "OK, A-OK!\l" + .string "I'll go show my mettle, like, jam!\p" + .string "All right, I'll look to you as my mentor!\n" + .string "Adios!$" + +gText_ApprenticeIntro10:: @ 82B8F45 + .string "Oh, hey, {PLAYER}{KUN}, right?\n" + .string "The police were looking for you!\p" + .string "… … …\n" + .string "Of course I'm lying!\p" + .string "Me, I'm {STR_VAR_1}. Despite the way\n" + .string "I look, I'm the POKéMON CHAMPION!\l" + .string "…That's a lie, too!\p" + .string "This is no lie, though.\n" + .string "I'm not very good at battling.\p" + .string "So, how about you becoming my master\n" + .string "about all things POKéMON?$" + +gText_ApprenticeRejectTeaching10:: @ 82B905F + .string "If you're going to act cold like that,\n" + .string "I'll show you what I'll do!\p" + .string "Waaah! Waaah! Waaah!\n" + .string "Hiccup!\p" + .string "Hahaha, that was my FAKE TEARS!\p" + .string "Come on, will you please be\n" + .string "my POKéMON master?$" + +gText_ApprenticeWhichLevelMode10:: @ 82B910E + .string "Yippee!\n" + .string "I'll buy you a boat for that!\p" + .string "Of course I'm lying again!\n" + .string "But… Thank you, master!\p" + .string "You know how there's Level 50 and\n" + .string "Open Level at the BATTLE TOWER?\p" + .string "I'm having trouble deciding which\n" + .string "level I should challenge…\p" + .string "Can you decide for me, master?$" + +gText_ApprenticeLevelModeThanks10:: @ 82B9204 + .string "Okay, so {STR_VAR_1} is better!\n" + .string "I'll go to the other level, then!\p" + .string "Just kidding!\n" + .string "I'll obey your teaching, master!\p" + .string "Thanks, master!\n" + .string "I hope you'll keep teaching me!$" + +gText_ApprenticeIntro11:: @ 82B929C + .string "A-H-O-Y!\n" + .string "And that spells ahoy, and it means hi!\p" + .string "I'm {STR_VAR_1}, the rappin' SAILOR\n" + .string "am I!\p" + .string "Your turn now, tell me a little about\n" + .string "yourself, give it a try!\p" + .string "Uh-huh, uh-huh!\n" + .string "{PLAYER}{KUN}'s your name,\l" + .string "and POKéMON's your game!\p" + .string "And you're at a delicate age\n" + .string "when all the world's your stage!\p" + .string "Anyway, I just want to say,\n" + .string "that you're the tenth TRAINER\l" + .string "I've spoken to today.\p" + .string "Let's make that a celebration!\n" + .string "Become my mentor for commemoration!$" + +gText_ApprenticeRejectTeaching11:: @ 82B9438 + .string "But!\n" + .string "You have to work with me!\p" + .string "Don't be such a tease!\n" + .string "Become my mentor, please!$" + +gText_ApprenticeWhichLevelMode11:: @ 82B9488 + .string "That's it!\n" + .string "{PLAYER}, you've got the spirit!\p" + .string "So here's my first question\n" + .string "that begs your suggestion!\p" + .string "It's about the BATTLE TOWER,\n" + .string "and it hinges on my power!\p" + .string "Level 50 and Open Level there be,\n" + .string "which is the one that's good for me?$" + +gText_ApprenticeLevelModeThanks11:: @ 82B9564 + .string "Okay, {STR_VAR_1} it is, you say!\n" + .string "I'll go and take it on my way!\p" + .string "If it's advice I ever need,\n" + .string "{PLAYER}, your word I'll always heed!$" + +gText_ApprenticeIntro12:: @ 82B95D8 + .string "Say, hey, aren't you {PLAYER}?\n" + .string "What should I do? Talk to you?\l" + .string "Why not? I'm already talking to you!\p" + .string "{PLAYER}, are you surprised at me?\n" + .string "I'd better tell you who I happen to be!\p" + .string "{STR_VAR_1} is what you can call me.\n" + .string "The brightest star in guitardom,\l" + .string "that's me!\p" + .string "Are you receiving me?\n" + .string "You are receiving me!\p" + .string "My luck's at its best,\n" + .string "I'll hit you with a request!\p" + .string "{PLAYER}, let me be your underling!\n" + .string "I want you to teach me everything!$" + +gText_ApprenticeRejectTeaching12:: @ 82B9763 + .string "You're turning me down, then?\n" + .string "I'll just have to ask you again!\p" + .string "{PLAYER}, I beg to be your underling!\n" + .string "I need you to teach me everything!$" + +gText_ApprenticeWhichLevelMode12:: @ 82B97E5 + .string "Lucky, yeah, woohoo!\n" + .string "Should I pop a question to you?\p" + .string "Since we're near the BATTLE TOWER,\n" + .string "how about a question about its power?\p" + .string "Of the choices you see,\n" + .string "which is the right one for me?$" + +gText_ApprenticeLevelModeThanks12:: @ 82B989A + .string "If {STR_VAR_1} is what you suggest,\n" + .string "it must be the very best!\p" + .string "Well, {PLAYER}, I have to roam free,\n" + .string "but don't you forget about me.\p" + .string "See you again, my smart friend!$" + +gText_ApprenticeIntro13:: @ 82B992D + .string "Oh, hi! You there!\n" + .string "Can I get you to massage my shoulder?\p" + .string "…Yes, there! That's it!\n" + .string "Ouch, ouch! Oooh, that feels great!\p" + .string "My name's {STR_VAR_1}.\n" + .string "I take karate training, but my body's\l" + .string "not built to take the abuse…\p" + .string "I decided I'll battle POKéMON and\n" + .string "toughen myself up.\p" + .string "You're {PLAYER}{KUN}, aren't you?\n" + .string "The POKéMON LEAGUE CHAMP?\p" + .string "Listen, can I get you to give me\n" + .string "advice?$" + +gText_ApprenticeRejectTeaching13:: @ 82B9A84 + .string "Oh, why?\p" + .string "I won't be a big bother, I promise!\n" + .string "Please?$" + +gText_ApprenticeWhichLevelMode13:: @ 82B9AB9 + .string "Thank you. Mighty good of you!\n" + .string "…Cough! Cough!\p" + .string "Oogh, I have to toughen up quick…\p" + .string "I'll be heading off to the BATTLE TOWER\n" + .string "right away, but what would be better\l" + .string "for me? Level 50 or Open Level?$" + +gText_ApprenticeLevelModeThanks13:: @ 82B9B76 + .string "Hm, all right. That's {STR_VAR_1}.\n" + .string "I'll go there right away.\p" + .string "I hope I can keep hitting you up for\n" + .string "help--after all, you're my mentor!$" + +gText_ApprenticeIntro14:: @ 82B9BF2 + .string "Er… Um…\n" + .string "{PLAYER}{KUN}…?\p" + .string "Please, don't look at me that way.\n" + .string "You're making me all self-conscious.\p" + .string "I… I'm {STR_VAR_1}.\p" + .string "I'm really embarrassed to say this,\n" + .string "but I explore ancient ruins and such.\p" + .string "I'm even more embarrassed to admit\n" + .string "I'm interested in the BATTLE FRONTIER.\p" + .string "{PLAYER}{KUN}, you have a reputation as\n" + .string "a tough TRAINER…\p" + .string "It's hard for me to say this,\n" + .string "but I want to ask something.\p" + .string "Could you become my teacher and\n" + .string "give me advice?$" + +gText_ApprenticeRejectTeaching14:: @ 82B9D83 + .string "Please don't brush me off like this!\n" + .string "I can't live with the humiliation.\p" + .string "Please become my teacher!\n" + .string "I need your advice!$" + +gText_ApprenticeWhichLevelMode14:: @ 82B9DF9 + .string "Th-thank you…\p" + .string "But please don't look at me like that.\n" + .string "It makes me all flustered.\p" + .string "Please, answer me without looking\n" + .string "at my eyes.\p" + .string "At the BATTLE TOWER…\n" + .string "Which level should I attempt?$" + +gText_ApprenticeLevelModeThanks14:: @ 82B9EAA + .string "Oh… Okay!\n" + .string "I'll try my hand at that.\p" + .string "I hope I can make a valiant challenge\n" + .string "without getting all flustered…\p" + .string "Thank you, {PLAYER}{KUN}.\n" + .string "If we meet again, I hope you will be\l" + .string "as helpful.$" + +gText_ApprenticeIntro15:: @ 82B9F55 + .string "Hm? You appear to be {PLAYER}{KUN}…\n" + .string "But are you really real?\p" + .string "You may call me {STR_VAR_1}.\p" + .string "I have been toying with the idea of\n" + .string "apprenticing under a strong TRAINER.\p" + .string "So, I must say I'm lucky you came along!\n" + .string "…You really are {PLAYER}{KUN}, yes?\p" + .string "No, no, if you are real, it's fine.\n" + .string "I merely want you to recognize me\l" + .string "as your apprentice.$" + +gText_ApprenticeRejectTeaching15:: @ 82BA084 + .string "Oh?\n" + .string "But what would compel you to refuse?\p" + .string "I apologize for being skeptical about\n" + .string "your identity.\p" + .string "Please accept my apology and\n" + .string "accept me as your apprentice.$" + +gText_ApprenticeWhichLevelMode15:: @ 82BA11D + .string "You really are accepting me?\n" + .string "I don't wish to celebrate prematurely.\p" + .string "If it is true, I apologize.\n" + .string "But now, I need your advice.\p" + .string "If I were to enter the BATTLE TOWER,\n" + .string "what would be worthy of me?\l" + .string "Level 50 or Open Level?$" + +gText_ApprenticeLevelModeThanks15:: @ 82BA1F3 + .string "{STR_VAR_1}?\n" + .string "Are you certain?\p" + .string "I see. If that's the case, that's fine.\n" + .string "I thank you for your time.\p" + .string "I realize I can annoy, but it delights\n" + .string "me that you have accepted me.\p" + .string "Let us meet again!$" + +gText_ApprenticeWhatHeldItem0:: @ 82BA2A3 + .string "Sigh… Sob…\n" + .string "Oh, {PLAYER}!\p" + .string "I'm all tangled up in a dilemma\n" + .string "that I can't decide.\p" + .string "I can't decide what I should make\n" + .string "my {STR_VAR_1} hold.\p" + .string "Please tell me, {PLAYER}.\n" + .string "What item should I make it hold?$" + +gText_ApprenticeHoldNothing0:: @ 82BA34E + .string "Oh, really? I shouldn't make\n" + .string "my {STR_VAR_1} hold anything?$" + +gText_ApprenticeThanksHeldItem0:: @ 82BA380 + .string "Oh, okay! I'm delighted it's settled!\n" + .string "Awesome! Wicked! Awoooh!\p" + .string "Thank you so much!$" + +gText_ApprenticeThanksHaveHeldItem0:: @ 82BA3D2 + .string "Oh, I'm so glad…\n" + .string "I think I have that {STR_VAR_1}, too.\p" + .string "I'm delighted it's settled!\n" + .string "Awesome! Wicked! Awoooh!\p" + .string "Thank you so much!$" + +gText_ApprenticeItemAlreadyRecommended0:: @ 82BA448 + .string "Waaaah! Please don't be mean!\p" + .string "That item {STR_VAR_1} was already\n" + .string "recommended to me before, sob…\p" + .string "Or do you mean I shouldn't make\n" + .string "my {STR_VAR_2} hold anything?$" + +gText_ApprenticeWhatHeldItem1:: @ 82BA4D3 + .string "Yay! It's {PLAYER}!\n" + .string "Great! I wanted to ask you something!\p" + .string "Do you make your POKéMON hold items?\n" + .string "I want to make mine hold items, but…\p" + .string "What item would be good for\n" + .string "{STR_VAR_1} to hold?\p" + .string "What do you think?$" + +gText_ApprenticeHoldNothing1:: @ 82BA58C + .string "Huh? You mean my {STR_VAR_1} doesn't\n" + .string "have to hold anything?$" + +gText_ApprenticeThanksHeldItem1:: @ 82BA5BF + .string "Oh, I get it! I'll do that!\n" + .string "Thanks for teaching me!$" + +gText_ApprenticeThanksHaveHeldItem1:: @ 82BA5F3 + .string "Oh, wow! One {STR_VAR_1}, huh?\n" + .string "Okay, I'll do that!\p" + .string "Thanks for teaching me!$" + +gText_ApprenticeItemAlreadyRecommended1:: @ 82BA635 + .string "Oh, uh, no, that's not what I meant.\n" + .string "I want to know about a different item\l" + .string "than the ones I already know.\p" + .string "Or do you mean that my POKéMON doesn't\n" + .string "have to hold anything this time?$" + +gText_ApprenticeWhatHeldItem2:: @ 82BA6E6 + .string "{PLAYER}, hello!\n" + .string "It's about my {STR_VAR_1}…\p" + .string "I want to make it hold a good item.\n" + .string "What would be good for it?$" + +gText_ApprenticeHoldNothing2:: @ 82BA742 + .string "Oh, then my {STR_VAR_1} doesn't have\n" + .string "to hold anything?$" + +gText_ApprenticeThanksHeldItem2:: @ 82BA770 + .string "Okay, I got it!\n" + .string "See you again!$" + +gText_ApprenticeThanksHaveHeldItem2:: @ 82BA78F + .string "Oh, the item {STR_VAR_1}?\n" + .string "Understood!\p" + .string "I'll do my best to find one!\n" + .string "See you again!$" + +gText_ApprenticeItemAlreadyRecommended2:: @ 82BA7D8 + .string "Somebody taught me about\n" + .string "the {STR_VAR_1} already.\p" + .string "I want my POKéMON to hold a different\n" + .string "kind of item.\p" + .string "Or do you think {STR_VAR_2} doesn't\n" + .string "have to hold anything?$" + +gText_ApprenticeWhatHeldItem3:: @ 82BA867 + .string "Hello, {PLAYER}…\n" + .string "I'm sorry to disturb you, but I have\l" + .string "something else I wanted to ask you.\p" + .string "I don't think I'm good enough to win\n" + .string "matches on my own, so I'm thinking of\l" + .string "making my {STR_VAR_1} hold an item.\p" + .string "But I don't know what would be good.\p" + .string "{PLAYER}, please, could you decide\n" + .string "for me?$" + +gText_ApprenticeHoldNothing3:: @ 82BA96B + .string "A POKéMON belonging to someone like me\n" + .string "would be better off without an item?$" + +gText_ApprenticeThanksHeldItem3:: @ 82BA9B7 + .string "I understand…\n" + .string "You're saying I shouldn't rely on items.\l" + .string "I'll do my best not to!\p" + .string "Thank you very much!$" + +gText_ApprenticeThanksHaveHeldItem3:: @ 82BAA1B + .string "The item {STR_VAR_1}, okay.\n" + .string "I'm not sure if I can get one…\l" + .string "No! I'll do my best to get it.\p" + .string "Thank you very much!$" + +gText_ApprenticeItemAlreadyRecommended3:: @ 82BAA81 + .string "Oh, but…\n" + .string "I think I've heard about that before…\p" + .string "Is it maybe because I haven't handled\n" + .string "the item {STR_VAR_1} very well?\p" + .string "Or do you mean I shouldn't make\n" + .string "my {STR_VAR_2} hold anything?$" + +gText_ApprenticeWhatHeldItem4:: @ 82BAB22 + .string "Oh, {PLAYER}{KUN}.\n" + .string "There's something I wanted to ask you.\p" + .string "You know how you decided which\n" + .string "POKéMON I should have for me?\p" + .string "But I never asked you what item\n" + .string "it should be holding.\p" + .string "Since you already gave me advice,\n" + .string "how about seeing this to the end?\p" + .string "What would be good? I want to make\n" + .string "my {STR_VAR_1} hold something.$" + +gText_ApprenticeHoldNothing4:: @ 82BAC43 + .string "Oh! So my {STR_VAR_1} should do\n" + .string "the best it can empty-handed?$" + +gText_ApprenticeThanksHeldItem4:: @ 82BAC78 + .string "If you think that's best, I'll do that.\p" + .string "Knowing that you made the decision,\n" + .string "{PLAYER}{KUN}, I won't be so upset if\l" + .string "I lose.\p" + .string "Okay, I'll look to you for advice again.\n" + .string "Bye!$" + +gText_ApprenticeThanksHaveHeldItem4:: @ 82BAD17 + .string "The item {STR_VAR_1}, huh?\n" + .string "Not bad. I'll use it!\p" + .string "Knowing that you made the decision,\n" + .string "{PLAYER}{KUN}, I won't be so upset if\l" + .string "I lose.\p" + .string "Okay, I'll look to you for advice again.\n" + .string "Bye!$" + +gText_ApprenticeItemAlreadyRecommended4:: @ 82BADB6 + .string "Huh? What are you saying?\n" + .string "You told me about the {STR_VAR_1}\l" + .string "already before.\p" + .string "Or do you mean my {STR_VAR_2} should\n" + .string "do the best it can empty-handed?$" + +gText_ApprenticeWhatHeldItem5:: @ 82BAE36 + .string "Yo, {PLAYER}{KUN}!\p" + .string "We're both busy, but we seem to run\n" + .string "into each other often anyway!\p" + .string "Today I have to do some walking,\n" + .string "cleaning, and brushing.\p" + .string "I haven't even had the time to buy\n" + .string "my precious {STR_VAR_1} anything.\p" + .string "I don't have any time, so how about\n" + .string "giving me advice on what I should make\l" + .string "my {STR_VAR_1} hold?$" + +gText_ApprenticeHoldNothing5:: @ 82BAF4E + .string "Oh, so me being a busy guy, you say\n" + .string "my {STR_VAR_1} doesn't need anything?$" + +gText_ApprenticeThanksHeldItem5:: @ 82BAF8F + .string "Okay, gotcha.\n" + .string "I won't need any time for that.\p" + .string "Thanks today!\n" + .string "See you around!$" + +gText_ApprenticeThanksHaveHeldItem5:: @ 82BAFDB + .string "Okay, gotcha.\n" + .string "I'll find time somehow and find\l" + .string "that {STR_VAR_1} you recommended.\p" + .string "I'm glad I met a good mentor in you.\n" + .string "Thanks! See you around!$" + +gText_ApprenticeItemAlreadyRecommended5:: @ 82BB05F + .string "Huh? I already know about\n" + .string "that {STR_VAR_1}.\p" + .string "Oh, right, I get it.\n" + .string "So me being a busy guy, you say\l" + .string "my {STR_VAR_2} doesn't need anything?$" + +gText_ApprenticeWhatHeldItem6:: @ 82BB0D4 + .string "Hiya, {PLAYER}! It's me!\n" + .string "I need to tap your mind again today.\l" + .string "Please, I need your advice!\p" + .string "Drum roll, please!\n" + .string "The question I have is…\p" + .string "If I want to make my {STR_VAR_1} hold\n" + .string "an item, what should it be?$" + +gText_ApprenticeHoldNothing6:: @ 82BB18C + .string "Is that right? My {STR_VAR_1} doesn't\n" + .string "need to hold an item, you're saying.$" + +gText_ApprenticeThanksHeldItem6:: @ 82BB1CE + .string "Okay, that's what I'll do!\p" + .string "I guess that's about all I wanted\n" + .string "to ask you today.\p" + .string "Let's meet here again, okay?\n" + .string "Thanks!$" + +gText_ApprenticeThanksHaveHeldItem6:: @ 82BB242 + .string "Uh-huh! One {STR_VAR_1}.\n" + .string "What a cool choice!\l" + .string "I'll definitely try that!\p" + .string "I guess that's about all I wanted\n" + .string "to ask you today.\p" + .string "Let's meet here again, okay?\n" + .string "Thanks!$" + +gText_ApprenticeItemAlreadyRecommended6:: @ 82BB2D9 + .string "Ahahah! That's silly!\n" + .string "You already told me about that\l" + .string "{STR_VAR_1} before!\p" + .string "Are you feeling okay, {PLAYER}?\p" + .string "Oh, wait! My {STR_VAR_2} doesn't\n" + .string "need to hold an item, you're saying.$" + +gText_ApprenticeWhatHeldItem7:: @ 82BB370 + .string "Hello, {PLAYER}. I hope you've been\n" + .string "keeping well.\p" + .string "May I approach you for advice?\p" + .string "In a recent battle, my opponent\n" + .string "seemed to have given his POKéMON\l" + .string "an item to hold.\p" + .string "As a result, I was defeated…\p" + .string "I don't wish to be left behind.\n" + .string "I would like to make my {STR_VAR_1}\l" + .string "hold an item, too.\p" + .string "It would please me if you could decide\n" + .string "what would be right for my POKéMON…$" + +gText_ApprenticeHoldNothing7:: @ 82BB4C3 + .string "In other words… My POKéMON has\n" + .string "no need to hold an item?$" + +gText_ApprenticeThanksHeldItem7:: @ 82BB4FB + .string "I understand clearly now!\n" + .string "I will keep trying like this.\p" + .string "Thank you, {PLAYER}.\n" + .string "I hope I can count on you again.\l" + .string "Please take care!$" + +gText_ApprenticeThanksHaveHeldItem7:: @ 82BB575 + .string "One {STR_VAR_1} it is!\n" + .string "I will order it right away.\p" + .string "Thank you, {PLAYER}.\n" + .string "I hope I can count on you again.\l" + .string "Please take care!$" + +gText_ApprenticeItemAlreadyRecommended7:: @ 82BB5E1 + .string "You've already told me about that,\n" + .string "and I already have it.\p" + .string "Or are you saying… My POKéMON has\n" + .string "no need to hold an item?$" + +gText_ApprenticeWhatHeldItem8:: @ 82BB656 + .string "Eek! {PLAYER}!\n" + .string "I… I'm overjoyed to see you again!\p" + .string "Oh-oh-oh! There's something I just\n" + .string "had to ask you, {PLAYER}!\p" + .string "Please decide what my {STR_VAR_1}\n" + .string "should be holding!$" + +gText_ApprenticeHoldNothing8:: @ 82BB6E5 + .string "Oh, wow! I didn't expect that answer!\n" + .string "So, a hold item isn't necessary?$" + +gText_ApprenticeThanksHeldItem8:: @ 82BB72C + .string "Perfectly understood!\n" + .string "I'll keep at this without an item!\p" + .string "I hope you'll be willing to teach me\n" + .string "some more another time.$" + +gText_ApprenticeThanksHaveHeldItem8:: @ 82BB7A2 + .string "{STR_VAR_1}! I'll use that!\p" + .string "Um… Could it be, {PLAYER}, you also\n" + .string "make your POKéMON hold that item?\p" + .string "I'll be sure to get it!\n" + .string "I hope you'll be willing to teach me\l" + .string "some more another time.$" + +gText_ApprenticeItemAlreadyRecommended8:: @ 82BB84A + .string "Oh? You recommended that\n" + .string "{STR_VAR_1} before, too.\p" + .string "Or is it the best thing to hold?\n" + .string "Or do you mean that my {STR_VAR_2}\l" + .string "doesn't need anything to hold?$" + +gText_ApprenticeWhatHeldItem9:: @ 82BB8CD + .string "Hola!\n" + .string "My maestro, {PLAYER}{KUN}!\p" + .string "I want to hit you up for advice on\n" + .string "POKéMON tools.\p" + .string "What do you think would be good for\n" + .string "my {STR_VAR_1} to hold?\p" + .string "Don't be shy now.\n" + .string "Let's blurt it out!$" + +gText_ApprenticeHoldNothing9:: @ 82BB970 + .string "Oh? So, you're saying my {STR_VAR_1}\n" + .string "can win without holding any item?$" + +gText_ApprenticeThanksHeldItem9:: @ 82BB9AE + .string "Si, bueno!\n" + .string "I'll give it my best shot, like, slam!\p" + .string "All right, thanks, as always!\n" + .string "Adios!$" + +gText_ApprenticeThanksHaveHeldItem9:: @ 82BBA05 + .string "Uh-huh, that's one {STR_VAR_1}?\n" + .string "Si, bueno!\l" + .string "I'll go find me one, like, bam!\p" + .string "All right, thanks, as always!\n" + .string "Adios!$" + +gText_ApprenticeItemAlreadyRecommended9:: @ 82BBA6C + .string "No, no! You already told me about\n" + .string "that {STR_VAR_1} thing before.\p" + .string "Oh, now wait just one minute here…\n" + .string "So, you're saying my {STR_VAR_2}\l" + .string "can win without holding any item?$" + +gText_ApprenticeWhatHeldItem10:: @ 82BBB01 + .string "{PLAYER}{KUN}, something unbelievable\n" + .string "has happened!\p" + .string "I woke up this morning, and my POKéMON\n" + .string "had 10 NUGGETS!\p" + .string "Of course I'm lying!\n" + .string "Wahahaha!\p" + .string "This is no lie, though.\n" + .string "I'm not very good at thinking about\l" + .string "what items POKéMON should hold.\p" + .string "So, how about deciding for me what\n" + .string "my {STR_VAR_1} should hold, master?$" + +gText_ApprenticeHoldNothing10:: @ 82BBC1C + .string "What's that mean?\n" + .string "Don't make it hold anything?$" + +gText_ApprenticeThanksHeldItem10:: @ 82BBC4B + .string "Okay, so it shouldn't hold anything.\n" + .string "Then, I'd better get something for it!\p" + .string "Just kidding!\n" + .string "I'll obey your teaching, master!\p" + .string "Thanks, master!\n" + .string "I hope you'll keep teaching me!$" + +gText_ApprenticeThanksHaveHeldItem10:: @ 82BBCF6 + .string "Okay, so it's one {STR_VAR_1}!\n" + .string "I'll make it hold anything but that!\p" + .string "Just kidding!\n" + .string "I'll obey your teaching, master!\p" + .string "Thanks, master!\n" + .string "I hope you'll keep teaching me!$" + +gText_ApprenticeItemAlreadyRecommended10:: @ 82BBD90 + .string "Um, you told me about that before,\n" + .string "didn't you?\p" + .string "Isn't there something else?\p" + .string "Or do you mean, don't make\n" + .string "my {STR_VAR_2} hold anything?$" + +gText_ApprenticeWhatHeldItem11:: @ 82BBE0B + .string "A-H-O-Y!\n" + .string "And that spells ahoy!\p" + .string "The rappin' SAILOR am I!\n" + .string "I present to you a question\l" + .string "that's pretty fly!\p" + .string "It's an item question\n" + .string "that begs your suggestion!\p" + .string "My {STR_VAR_1} needs an item to hold,\n" + .string "What should it be, if I may be bold?$" + +gText_ApprenticeHoldNothing11:: @ 82BBEE5 + .string "Is that right?\n" + .string "My {STR_VAR_1} doesn't need to be\l" + .string "holding anything tight?$" + +gText_ApprenticeThanksHeldItem11:: @ 82BBF25 + .string "Okay, I hear you, sure I do!\n" + .string "My POKéMON will go empty-handed, too!\p" + .string "If it's advice I ever need,\n" + .string "{PLAYER}, your word I'll always heed!$" + +gText_ApprenticeThanksHaveHeldItem11:: @ 82BBFA4 + .string "Okay, one {STR_VAR_1},\n" + .string "that's what I'll use.\l" + .string "I was right to make you choose!\p" + .string "If it's advice I ever need,\n" + .string "{PLAYER}, your word I'll always heed!$" + +gText_ApprenticeItemAlreadyRecommended11:: @ 82BC024 + .string "Okay, one {STR_VAR_1}, you say?\n" + .string "You told me that the other day.\l" + .string "I need a new idea, a brand new way.\p" + .string "Or, what, is that right?\n" + .string "My POKéMON doesn't need to hold\l" + .string "anything tight?$" + +gText_ApprenticeWhatHeldItem12:: @ 82BC0C8 + .string "Say, hey, {PLAYER}!\n" + .string "I found you again today!\p" + .string "What should I do? Get your advice?\n" + .string "Why not? I'm already talking to you!\p" + .string "{PLAYER}, are you getting sick of me?\n" + .string "Nah, no way, that can't be.\p" + .string "Will you hear me out?\n" + .string "I'm looking for advice--that's what\l" + .string "I'm talking about.\p" + .string "It's about a hold item for\n" + .string "my {STR_VAR_1} that'd be good.\l" + .string "My indecision is making me brood.$" + +gText_ApprenticeHoldNothing12:: @ 82BC213 + .string "My {STR_VAR_1} needs nothing?\n" + .string "Doesn't need to hold anything?$" + +gText_ApprenticeThanksHeldItem12:: @ 82BC247 + .string "If holding nothing is the best,\n" + .string "I'll do as you suggest!\p" + .string "Well, {PLAYER}, I have to roam free,\n" + .string "but don't you forget about me.\p" + .string "See you again, my smart friend!$" + +gText_ApprenticeThanksHaveHeldItem12:: @ 82BC2DD + .string "If holding that {STR_VAR_1} is\n" + .string "the best, I'll do as you suggest!\p" + .string "Well, {PLAYER}, I have to roam free,\n" + .string "but don't you forget about me.\p" + .string "See you again, my smart friend!$" + +gText_ApprenticeItemAlreadyRecommended12:: @ 82BC373 + .string "Haven't I heard about that\n" + .string "{STR_VAR_1} before?\l" + .string "I'm certain I have, that's for sure!\p" + .string "I need a new something!\n" + .string "Or, my {STR_VAR_2} needs nothing?\l" + .string "Doesn't need to hold anything?$" + +gText_ApprenticeWhatHeldItem13:: @ 82BC40E + .string "Gwah! Ouch! {PLAYER}{KUN}, my arm's broken!\n" + .string "Don't touch it, please!\p" + .string "I must've broken it while I was trying\n" + .string "out different hold items with my posse\l" + .string "of POKéMON.\p" + .string "So, things being this way,\n" + .string "I need you to decide for me.\p" + .string "{PLAYER}{KUN}, what do you think would be\n" + .string "good for my {STR_VAR_1} to hold?$" + +gText_ApprenticeHoldNothing13:: @ 82BC514 + .string "Ouch…\p" + .string "So your suggestion is my {STR_VAR_1}\n" + .string "doesn't have to hold anything?$" + +gText_ApprenticeThanksHeldItem13:: @ 82BC555 + .string "Hm, all right. That would be easier\n" + .string "for me, the way things are now.\p" + .string "I hope I can keep hitting you up\n" + .string "for help like this.$" + +gText_ApprenticeThanksHaveHeldItem13:: @ 82BC5CE + .string "Hm, all right. That's one {STR_VAR_1}.\n" + .string "My POKéMON's arm is fine, so I'll make\l" + .string "it hold that item right away.\p" + .string "I hope I can keep hitting you up\n" + .string "for help like this.$" + +gText_ApprenticeItemAlreadyRecommended13:: @ 82BC666 + .string "No, no, you told me about that\n" + .string "{STR_VAR_1} before, remember?\p" + .string "How about telling me something\n" + .string "even better?\p" + .string "Oh, wait a second.\n" + .string "So your suggestion is my {STR_VAR_2}\l" + .string "doesn't have to hold anything?$" + +gText_ApprenticeWhatHeldItem14:: @ 82BC714 + .string "Er… Um…\n" + .string "{PLAYER}{KUN}…\p" + .string "Please, don't look at me that way.\n" + .string "My POKéMON don't have anything.\p" + .string "I… I'm really embarrassed about this,\n" + .string "but I really need your advice.\p" + .string "I can't decide what hold item would\n" + .string "make my {STR_VAR_1} strong.\p" + .string "{PLAYER}{KUN}, what do you think would\n" + .string "be good?$" + +gText_ApprenticeHoldNothing14:: @ 82BC808 + .string "Oh… Then, you think it would be better\n" + .string "if my {STR_VAR_1} didn't have an item?$" + +gText_ApprenticeThanksHeldItem14:: @ 82BC84D + .string "Oh… Okay!\n" + .string "I'll go without an item.\p" + .string "This is nerve-racking, though.\n" + .string "Wouldn't it be too cool?\p" + .string "Thank you, {PLAYER}{KUN}.\n" + .string "If we meet again, I hope you will be\l" + .string "as helpful.$" + +gText_ApprenticeThanksHaveHeldItem14:: @ 82BC8EA + .string "Oh… Okay!\n" + .string "I'll go with that {STR_VAR_1}.\p" + .string "This is nerve-racking, though.\n" + .string "Wouldn't it be too cool?\p" + .string "Thank you, {PLAYER}{KUN}.\n" + .string "If we meet again, I hope you will be\l" + .string "as helpful.$" + +gText_ApprenticeItemAlreadyRecommended14:: @ 82BC984 + .string "B-but I already heard about that.\p" + .string "Please don't brush me off like this!\n" + .string "I can't live with the humiliation.\p" + .string "Oh… Am I jumping to conclusions?\n" + .string "Do you think it would be better if\l" + .string "my {STR_VAR_2} didn't have an item?$" + +gText_ApprenticeWhatHeldItem15:: @ 82BCA4D + .string "Hm? You appear to be {PLAYER}{KUN}…\n" + .string "But are you really?\l" + .string "Perhaps you're a twin?\p" + .string "Oh, no, no, no, don't worry!\n" + .string "If you really are {PLAYER}, please\l" + .string "forget about my rudeness.\p" + .string "What I would like is some more of\n" + .string "your fine advice.\p" + .string "I have here my {STR_VAR_1} that I wish\n" + .string "to make hold a convenient item.\p" + .string "What would be worthy of it?$" + +gText_ApprenticeHoldNothing15:: @ 82BCB75 + .string "It's better if it held nothing?\n" + .string "Are you certain?$" + +gText_ApprenticeThanksHeldItem15:: @ 82BCBA6 + .string "I see. If that's the case, that's fine.\n" + .string "I thank you for your time.\p" + .string "Let us meet again!$" + +gText_ApprenticeThanksHaveHeldItem15:: @ 82BCBFC + .string "One {STR_VAR_1}?\n" + .string "Are you certain?\p" + .string "I see. If that's the case, that's fine.\n" + .string "I thank you for your time.\p" + .string "I do hope my POKéMON will be able to\n" + .string "put it to good use.\p" + .string "Let us meet again!$" + +gText_ApprenticeItemAlreadyRecommended15:: @ 82BCCA4 + .string "No, no, wait a minute.\n" + .string "I believe you taught me that before.\p" + .string "I would like you to recommend\n" + .string "something different this time.\p" + .string "Perhaps you're suggesting that\n" + .string "my {STR_VAR_2} should hold nothing?\l" + .string "Are you certain?$" + +gText_ApprenticeWhichMonFirst0:: @ 82BCD68 + .string "Waah, {PLAYER}!\n" + .string "I have a dilemma, sob…\p" + .string "I want to begin battling other people,\n" + .string "but I don't know what to do.\p" + .string "How should I line up my POKéMON\n" + .string "so they'll be at their strongest?\p" + .string "Please tell me, {PLAYER}.\n" + .string "If you were me, which of these POKéMON\l" + .string "would you send out first?$" + +gText_ApprenticeMonFirstThanks0:: @ 82BCE64 + .string "My {STR_VAR_1} should go first?\n" + .string "Waaaaah!\p" + .string "Oh! I'm so sorry!\n" + .string "You've made me happy by choosing\l" + .string "my first POKéMON, and it's made me cry…\p" + .string "Thank you so much!$" + +gText_ApprenticeWhichMonFirst1:: @ 82BCEF2 + .string "Yay! It's {PLAYER}!\n" + .string "Great! I wanted to ask you something!\p" + .string "Um, of my POKéMON, which do you\n" + .string "think should go out first?$" + +gText_ApprenticeMonFirstThanks1:: @ 82BCF61 + .string "My {STR_VAR_1}? That's true.\n" + .string "Okay, I'll do that!\p" + .string "Thanks for teaching me!$" + +gText_ApprenticeWhichMonFirst2:: @ 82BCFA1 + .string "{PLAYER}, hello!\p" + .string "I think, in a battle, it's very important\n" + .string "which POKéMON comes out first.\p" + .string "Out of the POKéMON that I have,\n" + .string "which would be good to send out first?$" + +gText_ApprenticeMonFirstThanks2:: @ 82BD03C + .string "My {STR_VAR_1} goes first?\n" + .string "Okay, I got it!\p" + .string "See you again!$" + +gText_ApprenticeWhichMonFirst3:: @ 82BD06D + .string "Hello, {PLAYER}…\n" + .string "I'm sorry to disturb you again with\l" + .string "another question.\p" + .string "I have so little confidence, I don't\n" + .string "know what I'd do without you, {PLAYER}.\p" + .string "It may be a waste of time for me to\n" + .string "even worry about it, but I just can't\l" + .string "decide something…\p" + .string "Which of my POKéMON should I send\n" + .string "out first in a battle?$" + +gText_ApprenticeMonFirstThanks3:: @ 82BD18A + .string "My {STR_VAR_1}?\n" + .string "Understood!\p" + .string "I can't believe that you would bother\n" + .string "to answer my questions so often!\p" + .string "I'm so grateful that you would even\n" + .string "speak with me… Thank you!$" + +gText_ApprenticeWhichMonFirst4:: @ 82BD222 + .string "Oh, {PLAYER}{KUN}! It's me!\n" + .string "I'm so glad to see you because I have\l" + .string "this little problem.\p" + .string "I can't decide how my POKéMON should\n" + .string "be lined up. Could you decide for me?\p" + .string "Oh, you don't need to decide the whole\n" + .string "party right now.\p" + .string "How about deciding just the first\n" + .string "POKéMON for me?$" + +gText_ApprenticeMonFirstThanks4:: @ 82BD325 + .string "My {STR_VAR_1}? That's great!\p" + .string "Knowing that you made the decision,\n" + .string "{PLAYER}{KUN}, I won't be so upset if\l" + .string "I lose.\p" + .string "Okay, I'll look to you for advice again.\n" + .string "Bye!$" + +gText_ApprenticeWhichMonFirst5:: @ 82BD3B1 + .string "Hi, my teacher {PLAYER}{KUN}!\n" + .string "I'm busy again today!\p" + .string "I have to do some cycling, shopping,\n" + .string "and humming.\p" + .string "I haven't even had the time to decide\n" + .string "how to line up my POKéMON team.\p" + .string "So, how about checking out my team?\n" + .string "Which one should go first?$" + +gText_ApprenticeMonFirstThanks5:: @ 82BD493 + .string "Okay, gotcha.\n" + .string "I have enough time at least to put\l" + .string "my {STR_VAR_1} at the head of the line!\p" + .string "Whoops, my girlfriend's waiting!\n" + .string "Thanks! See you around!$" + +gText_ApprenticeWhichMonFirst6:: @ 82BD51C + .string "Yoohoo! Hiya, {PLAYER}!\n" + .string "You always walk around looking tough!\p" + .string "Listen, I need something from you\n" + .string "again! It's the usual thing!\p" + .string "Drum roll, please!\n" + .string "The question I have is about my team.\p" + .string "Which POKéMON of mine should be first\n" + .string "to go out in a battle?$" + +gText_ApprenticeMonFirstThanks6:: @ 82BD609 + .string "Hmhm!\n" + .string "My {STR_VAR_1}, you say!\l" + .string "Thanks for a most cool answer!\p" + .string "I guess that's about all I wanted\n" + .string "to ask you today.\p" + .string "Let's meet here again, okay?\n" + .string "Thanks!$" + +gText_ApprenticeWhichMonFirst7:: @ 82BD697 + .string "Thank you so much for stopping to\n" + .string "chat with me, {PLAYER}.\p" + .string "I know I'm taking advantage of your\n" + .string "kindness, but may I ask for advice?\p" + .string "I would like you to decide on the order\n" + .string "of my POKéMON team.\p" + .string "It would please me if you could decide\n" + .string "which POKéMON should come first.$" + +gText_ApprenticeMonFirstThanks7:: @ 82BD797 + .string "My {STR_VAR_1} it is!\n" + .string "I will put it first right away!\p" + .string "Thank you, {PLAYER}.\n" + .string "I hope I can count on you again.\l" + .string "Please take care!$" + +gText_ApprenticeWhichMonFirst8:: @ 82BD806 + .string "Eek! {PLAYER}!\n" + .string "I… I'm overjoyed to see you again!\p" + .string "My POKéMON have become much\n" + .string "stronger!\p" + .string "But I don't always win. It seems to\n" + .string "depend on which POKéMON goes first.\p" + .string "{PLAYER}, please, I need your help!\p" + .string "Please decide which of my POKéMON\n" + .string "should go out first!$" + +gText_ApprenticeMonFirstThanks8:: @ 82BD8F5 + .string "Sigh… I'm overwhelmed with happiness…\p" + .string "It's like a dream having you decide\n" + .string "for me, {PLAYER}.\p" + .string "But perfectly understood!\n" + .string "I will go with my {STR_VAR_1} first!\p" + .string "I hope you'll be willing to teach me\n" + .string "some more another time.$" + +gText_ApprenticeWhichMonFirst9:: @ 82BD9BE + .string "Hello, hello!\n" + .string "My mentor, {PLAYER}{KUN}!\l" + .string "Hit me with your sage advice today!\p" + .string "You see, I pulled together a team of\n" + .string "three POKéMON. So far so good.\p" + .string "But the team's battling order's not\n" + .string "settled yet.\p" + .string "This is where you come in, {PLAYER}{KUN}!\n" + .string "You decide which POKéMON leads off!\p" + .string "Don't be shy now.\n" + .string "Let's blurt it out!$" + +gText_ApprenticeMonFirstThanks9:: @ 82BDAE1 + .string "Uh-huh, my {STR_VAR_1} leads off!\n" + .string "OK, A-OK!\l" + .string "I'll reorder the lineup, like, wham!\p" + .string "All right, thanks, as always!\n" + .string "Adios!$" + +gText_ApprenticeWhichMonFirst10:: @ 82BDB4E + .string "{PLAYER}{KUN}, listen!\n" + .string "It's a crisis!\p" + .string "My POKéMON, all three of them, go into\n" + .string "battle at once!\p" + .string "Of course that's impossible!\n" + .string "Wahahaha!\p" + .string "This is no lie, though.\n" + .string "I'm not very good at thinking about\l" + .string "how I should line up my POKéMON.\p" + .string "So, how about deciding for me which\n" + .string "POKéMON should go first, master?$" + +gText_ApprenticeMonFirstThanks10:: @ 82BDC6B + .string "Okay, so it's my {STR_VAR_1} you chose?\n" + .string "I'll let any but that one go first!\p" + .string "Just kidding!\n" + .string "I'll obey your teaching, master!\p" + .string "Thanks, master!\n" + .string "I hope you'll keep teaching me!$" + +gText_ApprenticeWhichMonFirst11:: @ 82BDD0D + .string "A-H-O-Y!\n" + .string "And that spells ahoy!\p" + .string "The rappin' SAILOR am I!\n" + .string "I present to you a question\l" + .string "that's pretty fly!\p" + .string "It's a team lineup question\n" + .string "that begs your suggestion!\p" + .string "Out of this lot, which should go first\n" + .string "as the first on the spot?$" + +gText_ApprenticeMonFirstThanks11:: @ 82BDDEC + .string "Okay, I hear you, sure I do!\n" + .string "I'll switch them up, that I'll do!\p" + .string "If it's advice I ever need,\n" + .string "{PLAYER}, your word I'll always heed!$" + +gText_ApprenticeWhichMonFirst12:: @ 82BDE68 + .string "Yahoo, {PLAYER}!\n" + .string "How do you do?\p" + .string "What should I do? Go ahead and ask?\n" + .string "Uh-huh, I have something to ask!\l" + .string "Are you receiving me?\l" + .string "You are receiving me!\p" + .string "You have to decide, which of my\n" + .string "POKéMON is the first to ride!\l" + .string "Into battle, I mean to say.$" + +gText_ApprenticeMonFirstThanks12:: @ 82BDF4D + .string "My {STR_VAR_1}? Yes!\n" + .string "That'll do, there's no distress!\p" + .string "Well, {PLAYER}, I have to roam free,\n" + .string "but don't you forget about me.\p" + .string "See you again, my smart friend!$" + +gText_ApprenticeWhichMonFirst13:: @ 82BDFD8 + .string "…Oof…ooch… {PLAYER}{KUN}…\n" + .string "My stomach's hurting all of a sudden…\p" + .string "…It's getting better now…\p" + .string "I must've worried myself sick racking\n" + .string "my brains on how I should line up\l" + .string "my posse of POKéMON.\p" + .string "So, things being this way,\n" + .string "I need you to decide for me.\p" + .string "{PLAYER}{KUN}, which of my POKéMON should\n" + .string "go first? So I'd win, I mean.$" + +gText_ApprenticeMonFirstThanks13:: @ 82BE0FD + .string "Hm, all right.\n" + .string "My {STR_VAR_1} goes first.\p" + .string "I'll fix the lineup like that after\n" + .string "I have my supper.\p" + .string "I hope I can keep hitting you up\n" + .string "for help like this.$" + +gText_ApprenticeWhichMonFirst14:: @ 82BE189 + .string "Er… Um…\n" + .string "{PLAYER}{KUN}?\p" + .string "Please, don't look at me that way.\n" + .string "You're making me feel all flustered.\p" + .string "Um…\n" + .string "I really need your advice.\p" + .string "It makes me bashful to say this,\n" + .string "but I chose my 3-POKéMON team.\l" + .string "I can't decide on the order, though.\p" + .string "Which POKéMON should I send out first\n" + .string "so I at least look capable?$" + +gText_ApprenticeMonFirstThanks14:: @ 82BE2A5 + .string "Oh… Okay!\n" + .string "I'll lead with my {STR_VAR_1}.\p" + .string "I hope I can do my best without\n" + .string "getting all flustered.\p" + .string "Thank you, {PLAYER}{KUN}.\n" + .string "If we meet again, I hope you will be\l" + .string "as helpful.$" + +gText_ApprenticeWhichMonFirst15:: @ 82BE33E + .string "Hm? You appear to be {PLAYER}{KUN}…\n" + .string "But are you really?\l" + .string "Perhaps you're a clever look-alike?\p" + .string "Oh, no, no, no, don't worry!\n" + .string "If you really are {PLAYER}, please\l" + .string "forget about my rudeness.\p" + .string "What I would like is your fine advice.\p" + .string "I have here my POKéMON team.\n" + .string "I would like you to tell me which one\l" + .string "should go first in a battle.$" + +gText_ApprenticeMonFirstThanks15:: @ 82BE46C + .string "My {STR_VAR_1}…\n" + .string "You aren't pulling my leg?\p" + .string "I see. If that's the case, that's fine.\n" + .string "I thank you for your time.\p" + .string "I am as you see, but I shall do\n" + .string "my best.\p" + .string "Let us meet again!$" + +gText_ApprenticeWhichMon0:: @ 82BE50D + .string "Snivel…\n" + .string "Oh, {PLAYER}!\p" + .string "What perfect timing!\n" + .string "There's something I just can't decide…\p" + .string "I can't decide which POKéMON I should\n" + .string "be using.\p" + .string "I can't decide between the POKéMON\n" + .string "{STR_VAR_1} and {STR_VAR_2}…\p" + .string "{PLAYER}, which do you think will give\n" + .string "even me a chance at winning?$" + +gText_ApprenticeMonThanks0:: @ 82BE5F5 + .string "Snivel… I… I understand!\n" + .string "Oh! I'm so sorry!\l" + .string "You've made me so happy, I'm crying…\p" + .string "I'll do my best to catch one\n" + .string "{STR_VAR_1}!\p" + .string "Thank you so much!$" + +gText_ApprenticeWhichMon1:: @ 82BE679 + .string "Yay! It's {PLAYER}!\n" + .string "Yay, you came at the right time, too!\l" + .string "I need your advice again!\p" + .string "Um, I'm all mixed up--should I use\n" + .string "my {STR_VAR_1} or {STR_VAR_2}…\p" + .string "Which do you think I should raise,\n" + .string "{PLAYER}?$" + +gText_ApprenticeMonThanks1:: @ 82BE71E + .string "Oh, so my {STR_VAR_1} is better!\n" + .string "Okay, I'll do that!\p" + .string "Thanks for teaching me!$" + +gText_ApprenticeWhichMon2:: @ 82BE762 + .string "{PLAYER}, hello!\n" + .string "I have a question I wanted to ask.\p" + .string "I'm in a dilemma over whether I should\n" + .string "raise one {STR_VAR_1} or {STR_VAR_2}.\p" + .string "Which POKéMON do you think will\n" + .string "be stronger?$" + +gText_ApprenticeMonThanks2:: @ 82BE7F8 + .string "{STR_VAR_1} is your choice?\n" + .string "Okay, I got it!\p" + .string "I'll go catch a strong {STR_VAR_1}\n" + .string "right away!\p" + .string "See you again!$" + +gText_ApprenticeWhichMon3:: @ 82BE850 + .string "Hello, {PLAYER}…\p" + .string "Um, you've probably already forgotten\n" + .string "about someone like me…\p" + .string "…But that doesn't matter if you\n" + .string "could give me advice…\p" + .string "I can't decide on the one kind of\n" + .string "POKéMON I should raise…\p" + .string "I've narrowed the field to the POKéMON\n" + .string "{STR_VAR_1} and {STR_VAR_2}, but that's\l" + .string "where I became stuck…\p" + .string "{PLAYER}, you probably don't want to\n" + .string "bother, but please decide for me.$" + +gText_ApprenticeMonThanks3:: @ 82BE99C + .string "But will a wild {STR_VAR_1} even pay\n" + .string "attention to me?\p" + .string "I will try!\p" + .string "But will I even be able to catch one…\n" + .string "No! I'll do my best!\p" + .string "Thank you!$" + +gText_ApprenticeWhichMon4:: @ 82BEA1B + .string "Oh, {PLAYER}{KUN}! I'm so glad to see you!\n" + .string "I was about to go looking for you!\p" + .string "Can you decide what kind of POKéMON\n" + .string "I should use?\p" + .string "For instance…\n" + .string "How about the POKéMON {STR_VAR_1}\l" + .string "and {STR_VAR_2}?\p" + .string "Which one do you think would be\n" + .string "better?$" + +gText_ApprenticeMonThanks4:: @ 82BEAE9 + .string "{STR_VAR_1}? That's great!\p" + .string "Knowing that you made the decision,\n" + .string "{PLAYER}{KUN}, I won't be so upset if\l" + .string "I lose.\p" + .string "Okay, I'll look to you for advice again.\n" + .string "Bye!$" + +gText_ApprenticeWhichMon5:: @ 82BEB72 + .string "If it isn't {PLAYER}{KUN}! How's it going?\n" + .string "I'm busy again as always!\p" + .string "I want to do good with POKéMON, too,\n" + .string "but I haven't been able to decide\l" + .string "which POKéMON I should use.\p" + .string "You know how {STR_VAR_1} look strong?\n" + .string "But {STR_VAR_2} are tough to ignore.\p" + .string "{PLAYER}{KUN}, give me some of your good\n" + .string "advice! Which one'd be good for me?$" + +gText_ApprenticeMonThanks5:: @ 82BEC8E + .string "Okay, gotcha.\n" + .string "I'll find time somehow and catch me\l" + .string "that {STR_VAR_1} you recommended.\p" + .string "I'm glad I met a good mentor in you.\n" + .string "Thanks! See you around!$" + +gText_ApprenticeWhichMon6:: @ 82BED16 + .string "Oh!\n" + .string "Yay, it's {PLAYER}!\p" + .string "I didn't waste any time boasting to\n" + .string "my friends about meeting you!\p" + .string "I need to tap your mind again today.\n" + .string "It's an easy one for you!\p" + .string "Drum roll, please!\n" + .string "The question I have is…\p" + .string "If I were to raise a POKéMON,\n" + .string "and the choices were one {STR_VAR_1}\l" + .string "or {STR_VAR_2}, which should it be?$" + +gText_ApprenticeMonThanks6:: @ 82BEE29 + .string "Ahhh!\n" + .string "{STR_VAR_1}, you say!\l" + .string "Thanks for a most cool answer!\p" + .string "I guess that's about all I wanted\n" + .string "to ask you today.\p" + .string "Let's meet here again, okay?\n" + .string "Thanks!$" + +gText_ApprenticeWhichMon7:: @ 82BEEB4 + .string "Oh, is it you, {PLAYER}?\n" + .string "I'm delighted to see you again!\p" + .string "Ever since I became your apprentice,\n" + .string "my confidence has been blooming.\p" + .string "I think I'm ready to raise a POKéMON\n" + .string "of my own!\p" + .string "{PLAYER}, may I impose on you to choose\n" + .string "which POKéMON I should raise?\p" + .string "The choices are the POKéMON\n" + .string "{STR_VAR_1} or {STR_VAR_2}…\l" + .string "Which POKéMON is right for me?$" + +gText_ApprenticeMonThanks7:: @ 82BEFE2 + .string "One {STR_VAR_1} it is!\n" + .string "I will find one right away!\p" + .string "Thank you, {PLAYER}.\n" + .string "I hope I can count on you again.\l" + .string "Please take care!$" + +gText_ApprenticeWhichMon8:: @ 82BF04E + .string "Eek! {PLAYER}! I met you again!\n" + .string "I… I'm overjoyed!\p" + .string "Oh-oh-oh, I know!\n" + .string "I shouldn't pass up this opportunity!\p" + .string "May I ask a huge favor, {PLAYER}?\n" + .string "Please choose a POKéMON for me!\p" + .string "Please decide which would be better,\n" + .string "{STR_VAR_1} or {STR_VAR_2}!$" + +gText_ApprenticeMonThanks8:: @ 82BF11D + .string "Wow! You decided for me!\n" + .string "One {STR_VAR_1} is what I'll raise to\l" + .string "the best of my ability.\p" + .string "I hope you'll be willing to teach me\n" + .string "some more another time.$" + +gText_ApprenticeWhichMon9:: @ 82BF1A8 + .string "Hey, hey!\n" + .string "My mentor, {PLAYER}{KUN}!\p" + .string "Hello, I've been looking for you\n" + .string "for some more of your sage advice!\p" + .string "Which kind of POKéMON would be right\n" + .string "for me, one {STR_VAR_1} or {STR_VAR_2}?\p" + .string "Don't be shy now.\n" + .string "Let's blurt it out!$" + +gText_ApprenticeMonThanks9:: @ 82BF268 + .string "Uh-huh, one {STR_VAR_1} it is!\n" + .string "OK, A-OK!\l" + .string "I'll get one in a BALL, like, cram!\p" + .string "All right, thanks, as always!\n" + .string "Adios!$" + +gText_ApprenticeWhichMon10:: @ 82BF2D1 + .string "{PLAYER}{KUN}, listen! Big news!\n" + .string "I caught a mirage POKéMON!\p" + .string "Of course I'm lying!\n" + .string "Wahahaha!\p" + .string "This is no lie, though.\n" + .string "I'm not very good at catching\l" + .string "POKéMON.\p" + .string "So, how about deciding for me which\n" + .string "kind of POKéMON I should catch,\l" + .string "master?\p" + .string "Which would be better?\n" + .string "{STR_VAR_1} or {STR_VAR_2}?$" + +gText_ApprenticeMonThanks10:: @ 82BF3CF + .string "Okay, so it's {STR_VAR_1} you chose?\n" + .string "I'll grab the other kind, then!\p" + .string "Just kidding!\n" + .string "I'll obey your teaching, master!\p" + .string "Thanks, master!\n" + .string "I hope you'll keep teaching me!$" + +gText_ApprenticeWhichMon11:: @ 82BF46A + .string "A-H-O-Y!\n" + .string "And that spells ahoy!\p" + .string "The rappin' SAILOR am I!\n" + .string "Surely you remember who am I?\p" + .string "Today, I have a POKéMON question\n" + .string "that begs your suggestion!\p" + .string "I have the choice between this\n" + .string "{STR_VAR_1} and {STR_VAR_2}, you see.\l" + .string "Which is the one to catch for me?$" + +gText_ApprenticeMonThanks11:: @ 82BF551 + .string "{STR_VAR_1}, you say, hey, hey!\n" + .string "I'll go get me one right away!\p" + .string "If it's advice I ever need,\n" + .string "{PLAYER}, your word I'll always heed!$" + +gText_ApprenticeWhichMon12:: @ 82BF5C3 + .string "Oh, wow, if it isn't {PLAYER}!\p" + .string "What should I do? Get your advice?\n" + .string "Why not? I'm already talking to you!\p" + .string "It's been a long time. Let me break\n" + .string "the ice. I'm also looking for advice!\l" + .string "Are you receiving me?\l" + .string "You are receiving me!\p" + .string "My POKéMON--which should I use?\n" + .string "It's either {STR_VAR_1} or {STR_VAR_2}.\l" + .string "Which do you choose?$" + +gText_ApprenticeMonThanks12:: @ 82BF6E5 + .string "If that {STR_VAR_1} is the best,\n" + .string "I'll do as you suggest!\p" + .string "Well, {PLAYER}, I have to roam free,\n" + .string "but don't you forget about me.\p" + .string "See you again, my smart friend!$" + +gText_ApprenticeWhichMon13:: @ 82BF773 + .string "Oh, hi, {PLAYER}{KUN}…\n" + .string "I have this horrible headache…\p" + .string "I must've worried too much about\n" + .string "the kind of POKéMON I should raise.\p" + .string "So, things being this way,\n" + .string "I need you to decide for me.\p" + .string "{PLAYER}{KUN}, if I had to choose between\n" + .string "the POKéMON {STR_VAR_1} and\l" + .string "{STR_VAR_2}, which should it be?$" + +gText_ApprenticeMonThanks13:: @ 82BF869 + .string "Hm, one {STR_VAR_1}, all right.\n" + .string "I'll go look for one when I get better.\p" + .string "I hope I can keep hitting you up\n" + .string "for help like this.$" + +gText_ApprenticeWhichMon14:: @ 82BF8DD + .string "Er… Um…\n" + .string "{PLAYER}{KUN}…?\p" + .string "Please, don't look at me that way.\n" + .string "I'm getting all flustered…\l" + .string "I… I need your advice.\p" + .string "I… I'm really embarrassed, but I can't\n" + .string "decide which POKéMON to use.\p" + .string "If the choices were {STR_VAR_1} or\n" + .string "{STR_VAR_2}, which would be better?$" + +gText_ApprenticeMonThanks14:: @ 82BF9BA + .string "Oh… Okay!\n" + .string "I'll do my best with one {STR_VAR_1}.\p" + .string "I hope I can do my best without\n" + .string "getting all flustered.\p" + .string "Thank you, {PLAYER}{KUN}.\n" + .string "If we meet again, I hope you will be\l" + .string "as helpful.$" + +gText_ApprenticeWhichMon15:: @ 82BFA5A + .string "Hm? You appear to be {PLAYER}{KUN}…\n" + .string "But are you really real?\p" + .string "No, no, if you are real, it's fine.\n" + .string "Incidentally, I would like to obtain\l" + .string "your advice.\p" + .string "It's about the POKéMON I am to use.\p" + .string "If the choices are the POKéMON\n" + .string "{STR_VAR_1} and {STR_VAR_2}, which is\l" + .string "more worthy of me?$" + +gText_ApprenticeMonThanks15:: @ 82BFB4E + .string "{STR_VAR_1}?\n" + .string "Are you certain?\p" + .string "I see. If that's the case, that's fine.\n" + .string "I thank you for your time.\p" + .string "I do hope it is something even I can\n" + .string "handle with aplomb.\p" + .string "Let us meet again!$" + +gText_ApprenticeWhichMove0:: @ 82BFBF2 + .string "Waaah! Oh, {PLAYER}!\n" + .string "Snivel… Hiccup…\p" + .string "I have a dilemma!\n" + .string "I can't decide on a move for\l" + .string "my {STR_VAR_1}…\p" + .string "Please, please, {PLAYER}.\n" + .string "Can you decide for me?\p" + .string "For my {STR_VAR_1}, which move would\n" + .string "be the better choice: {STR_VAR_2}\l" + .string "or {STR_VAR_3}?$" + +gText_ApprenticeMoveThanks0:: @ 82BFCAE + .string "{STR_VAR_1}?\n" + .string "Waaaaah!\p" + .string "Oh! I'm so sorry, {PLAYER}!\n" + .string "You've made me so happy by deciding\l" + .string "the move, I'm crying…\p" + .string "Snivel…\n" + .string "Thank you so much!$" + +gText_ApprenticeWhichMove1:: @ 82BFD26 + .string "Yay! Hi, {PLAYER}!\n" + .string "I need your advice again!\p" + .string "I want to teach my {STR_VAR_1}\n" + .string "a cool move.\p" + .string "I like either of the moves\n" + .string "{STR_VAR_2} or {STR_VAR_3}.\l" + .string "What's your recommendation?$" + +gText_ApprenticeMoveThanks1:: @ 82BFDB1 + .string "{STR_VAR_1} is better? I guess so!\n" + .string "Okay, I'll go with that!\p" + .string "If we meet here again, please teach\n" + .string "me something else, teacher!$" + +gText_ApprenticeWhichMove2:: @ 82BFE24 + .string "{PLAYER}, hello!\n" + .string "It's about my {STR_VAR_1}, but I'm\l" + .string "worried about its moves.\p" + .string "You see, it's the moves {STR_VAR_2}\n" + .string "and {STR_VAR_3}.\p" + .string "Which is stronger and better for\n" + .string "my {STR_VAR_1}?$" + +gText_ApprenticeMoveThanks2:: @ 82BFEAD + .string "{STR_VAR_1} is your choice?\n" + .string "Okay, I got it!\p" + .string "I'll go teach {STR_VAR_1} to\n" + .string "my POKéMON right away!\p" + .string "See you again!$" + +gText_ApprenticeWhichMove3:: @ 82BFF0A + .string "Ohhh, {PLAYER}…\n" + .string "I'm hopeless, no, really!\p" + .string "I've decided to raise a POKéMON,\n" + .string "but now I can't even decide what\l" + .string "move I should let it learn…\p" + .string "I know that it doesn't mean anything\n" + .string "to you, {PLAYER}.\p" + .string "But it means a lot to me…\p" + .string "Please, {PLAYER}, could you choose\n" + .string "a move for my {STR_VAR_1}?\p" + .string "If you could even choose between\n" + .string "{STR_VAR_2} and {STR_VAR_3}…$" + +gText_ApprenticeMoveThanks3:: @ 82C0032 + .string "I understand!\p" + .string "But will it even be willing to learn\n" + .string "{STR_VAR_1} for me…\l" + .string "No! I'll do my best!\p" + .string "Thank you!$" + +gText_ApprenticeWhichMove4:: @ 82C0090 + .string "Oh, {PLAYER}{KUN}!\n" + .string "I was just hoping to see you, too!\p" + .string "I was wondering what move would\n" + .string "be suitable for my {STR_VAR_1}.\p" + .string "I can't decide, so can you decide\n" + .string "for me instead?\p" + .string "For instance… How about the moves\n" + .string "{STR_VAR_2} and {STR_VAR_3}?\l" + .string "Which one would be better?$" + +gText_ApprenticeMoveThanks4:: @ 82C016E + .string "{STR_VAR_1}? That's great!\p" + .string "Knowing that you made the decision,\n" + .string "{PLAYER}{KUN}, I won't be so upset if\l" + .string "I lose.\p" + .string "Okay, I'll look to you for advice again.\n" + .string "Bye!$" + +gText_ApprenticeWhichMove5:: @ 82C01F7 + .string "How could things be this busy?\n" + .string "Hey, if it isn't {PLAYER}{KUN}!\l" + .string "How's it going?\p" + .string "Since I got up this morning, I've done\n" + .string "my jogging, swimming, and cooking!\p" + .string "You wouldn't believe how busy I am!\p" + .string "I can't even decide what move\n" + .string "my {STR_VAR_1} should learn!\p" + .string "{STR_VAR_2} looks good, huh?\n" + .string "But {STR_VAR_3}'s also decent.\p" + .string "{PLAYER}{KUN}, give me some of your good\n" + .string "advice! Which move'd be good for me?$" + +gText_ApprenticeMoveThanks5:: @ 82C034C + .string "Okay, gotcha.\n" + .string "I'll make room in my schedule and\l" + .string "teach that move.\p" + .string "I'm glad I met a good mentor in you.\n" + .string "Thanks! See you around!$" + +gText_ApprenticeWhichMove6:: @ 82C03CA + .string "Oh! Lucky!\n" + .string "I met you again, {PLAYER}!\l" + .string "I need to tap your mind again today.\p" + .string "Drum roll, please!\n" + .string "The question I have is…\p" + .string "For my {STR_VAR_1}, which is the move\n" + .string "best suited, {STR_VAR_2} or\l" + .string "{STR_VAR_3}?$" + +gText_ApprenticeMoveThanks6:: @ 82C046E + .string "Ahhh!\n" + .string "{STR_VAR_1}, you say!\l" + .string "Thanks for a most cool answer!\p" + .string "I guess that's about all I wanted\n" + .string "to ask you today.\p" + .string "Let's meet here again, okay?\n" + .string "Thanks!$" + +gText_ApprenticeWhichMove7:: @ 82C04F9 + .string "Oh, hello, {PLAYER}.\n" + .string "I trust you've been well?\p" + .string "I have to seek your advice again.\n" + .string "It's about my dearest {STR_VAR_1}.\p" + .string "What would be the ideal move for\n" + .string "my lovable {STR_VAR_1}?\l" + .string "{STR_VAR_2} or {STR_VAR_3}?$" + +gText_ApprenticeMoveThanks7:: @ 82C0598 + .string "{STR_VAR_1} it is!\n" + .string "I will teach that right away!\p" + .string "Thank you, {PLAYER}.\n" + .string "I hope I can count on you again.\l" + .string "Please take care!$" + +gText_ApprenticeWhichMove8:: @ 82C0602 + .string "Eek! {PLAYER}! I met you again!\n" + .string "I… I'm overjoyed!\p" + .string "Whenever I'm in need, you're always\n" + .string "there for me, {PLAYER}!\p" + .string "Today, I want you to recommend\n" + .string "a move for me!\p" + .string "Please choose a move for\n" + .string "my {STR_VAR_1}!\p" + .string "Which move would be better,\n" + .string "{STR_VAR_2} or {STR_VAR_3}?$" + +gText_ApprenticeMoveThanks8:: @ 82C06D8 + .string "Oh-oh-oh! Thank you!\n" + .string "{STR_VAR_1} is it!\l" + .string "Perfectly understood!\p" + .string "I hope you'll be willing to teach me\n" + .string "some more another time.$" + +gText_ApprenticeWhichMove9:: @ 82C074A + .string "Hola, {PLAYER}{KUN}, bueno!\n" + .string "I'm hoping for some more of\l" + .string "your sage advice today!\p" + .string "What would be the best move for\n" + .string "my {STR_VAR_1}?\p" + .string "It should be something that'll\n" + .string "let me win just like that!\p" + .string "Would it be {STR_VAR_2}?\n" + .string "Or {STR_VAR_3}?$" + +gText_ApprenticeMoveThanks9:: @ 82C0809 + .string "Uh-huh, {STR_VAR_1} it is!\n" + .string "Si, bueno!\l" + .string "I'll get it taught, like, ka-blam!\p" + .string "All right, thanks, as always!\n" + .string "Adios!$" + +gText_ApprenticeWhichMove10:: @ 82C086E + .string "{PLAYER}{KUN}, it's completely wild!\p" + .string "My POKéMON!\n" + .string "It learned six moves!\p" + .string "Of course I'm lying!\n" + .string "Wahahaha!\p" + .string "This is no lie, though.\n" + .string "I'm not very good at choosing moves\l" + .string "for my POKéMON.\p" + .string "So, how about deciding for me which\n" + .string "kind of move I should teach?\p" + .string "{STR_VAR_2} or {STR_VAR_3}--which\n" + .string "would go with my {STR_VAR_1} best?$" + +gText_ApprenticeMoveThanks10:: @ 82C0982 + .string "Okay, so it's {STR_VAR_1} you chose?\n" + .string "I'll choose another move, then!\p" + .string "Just kidding!\n" + .string "I'll obey your teaching, master!\p" + .string "Thanks, master!\n" + .string "I hope you'll keep teaching me!$" + +gText_ApprenticeWhichMove11:: @ 82C0A1D + .string "A-H-O-Y!\n" + .string "And that spells ahoy!\p" + .string "The rappin' SAILOR am I!\n" + .string "I'm always with it, don't ask me why.\p" + .string "Today, I have a move question\n" + .string "that begs your suggestion!\p" + .string "{STR_VAR_2} and {STR_VAR_3} are\n" + .string "the moves. What would be the best\l" + .string "for my {STR_VAR_1} so it grooves?$" + +gText_ApprenticeMoveThanks11:: @ 82C0AFD + .string "{STR_VAR_1}, you say, hey, hey!\n" + .string "I'll go teach that right away!\p" + .string "If it's advice I ever need,\n" + .string "{PLAYER}, your word I'll always heed!$" + +gText_ApprenticeWhichMove12:: @ 82C0B6F + .string "Oh, yeahah, if it isn't {PLAYER}!\p" + .string "What should I do? Get your advice?\n" + .string "Why not? I'm already talking to you!\p" + .string "{PLAYER}, are you surprised by me?\n" + .string "I want your advice, can't you see?\p" + .string "Are you receiving me?\n" + .string "You are receiving me!\p" + .string "My {STR_VAR_1}--what should it use?\n" + .string "It's {STR_VAR_2} or {STR_VAR_3},\l" + .string "what do you choose?$" + +gText_ApprenticeMoveThanks12:: @ 82C0C7D + .string "If that {STR_VAR_1} is the best,\n" + .string "I'll do as you suggest!\p" + .string "Well, {PLAYER}, I have to roam free,\n" + .string "but don't you forget about me.\p" + .string "See you again, my smart friend!$" + +gText_ApprenticeWhichMove13:: @ 82C0D0B + .string "Gahack! Gaah! Oh, {PLAYER}{KUN}…\n" + .string "I have this lousy cold, I do…\p" + .string "I want to pick a move for my POKéMON,\n" + .string "but I'm not up to it…\p" + .string "So, things being this way,\n" + .string "I need you to decide for me.\p" + .string "{PLAYER}{KUN}, if I had to choose between\n" + .string "{STR_VAR_2} and {STR_VAR_3} for\l" + .string "my {STR_VAR_1}, which would it be?$" + +gText_ApprenticeMoveThanks13:: @ 82C0DFE + .string "Hm, {STR_VAR_1}, all right. Cough!\n" + .string "I'll go teach it when I get better.\p" + .string "I hope I can keep hitting you up\n" + .string "for help like this.$" + +gText_ApprenticeWhichMove14:: @ 82C0E71 + .string "Er… Um…\n" + .string "{PLAYER}{KUN}…?\p" + .string "Please, don't look at me that way.\n" + .string "I'm getting all flustered…\l" + .string "I… I need your advice.\p" + .string "I… I'm really embarrassed, but I can't\n" + .string "decide what move I should teach\l" + .string "my POKéMON.\p" + .string "It's for my {STR_VAR_1}.\n" + .string "If the choices were {STR_VAR_2} or\l" + .string "{STR_VAR_3}, which would be better?$" + +gText_ApprenticeMoveThanks14:: @ 82C0F6D + .string "Oh… Okay!\n" + .string "I'll try that {STR_VAR_1}.\p" + .string "I hope I can teach that move…\n" + .string "This is so nerve-racking…\p" + .string "Thank you, {PLAYER}{KUN}.\n" + .string "If we meet again, I hope you will be\l" + .string "as helpful.$" + +gText_ApprenticeWhichMove15:: @ 82C1003 + .string "Hm? You appear to be {PLAYER}{KUN}…\n" + .string "But are you really real?\p" + .string "Perhaps you're one of those popular\n" + .string "mimics?\p" + .string "No, no, if you are real, it's fine.\n" + .string "No need to be upset, I assure you!\p" + .string "Incidentally, I would like to obtain\n" + .string "your advice.\p" + .string "It's about my {STR_VAR_1}.\p" + .string "Which move would be better for it to\n" + .string "use, {STR_VAR_2} or {STR_VAR_3}?$" + +gText_ApprenticeMoveThanks15:: @ 82C1122 + .string "{STR_VAR_1}?\n" + .string "There's no question about that?\p" + .string "I see. If that's the case, that's fine.\n" + .string "I thank you for your time.\p" + .string "I do hope it is something even\n" + .string "my POKéMON can learn.\p" + .string "Let us meet again!$" + +gText_ApprenticePickWinSpeech0:: @ 82C11D1 + .string "Oh… {PLAYER}?\n" + .string "It is {PLAYER}!\l" + .string "Oh! Sniff…sob… Please, listen!\p" + .string "I… When I battle, I get so nervous,\n" + .string "I can't help crying even if I win…\p" + .string "I wish I could say something cool\n" + .string "when I win…\p" + .string "Please, please, {PLAYER}!\n" + .string "Could you maybe teach me something\l" + .string "cool to say when I win so I don't cry?$" + +gText_ApprenticeWinSpeechThanks0:: @ 82C12D5 + .string "{STR_VAR_1}\p" + .string "Awesome! Wicked! Awoooh!\n" + .string "It's really cool!\p" + .string "Oh… I'm sorry…\n" + .string "I'm so happy, I'm crying…\p" + .string "Snivel… {PLAYER}!\n" + .string "Thank you so much for everything!\p" + .string "I will battle the best I can for\n" + .string "your sake, {PLAYER}!\p" + .string "{PLAYER}…\n" + .string "Next time… We should battle!$" + +gText_ApprenticePickWinSpeech1:: @ 82C13AB + .string "Yay! It's {PLAYER}! Hello!\n" + .string "I wanted to ask you something!\p" + .string "I want to say something cool when\n" + .string "I win a match.\p" + .string "Do you have a cool saying that\n" + .string "you could recommend?$" + +gText_ApprenticeWinSpeechThanks1:: @ 82C1444 + .string "{STR_VAR_1}\p" + .string "Oh, wow! That is so cool!\n" + .string "Okay, I'll say that!\p" + .string "Thanks for teaching me all this time!\n" + .string "I'm going to do the best I can\l" + .string "wherever I go from now on!\p" + .string "When we meet again, it'll be for\n" + .string "a battle!$" + +gText_ApprenticePickWinSpeech2:: @ 82C1501 + .string "{PLAYER}, hello!\p" + .string "My POKéMON and I are ready for\n" + .string "anything, except for one thing.\p" + .string "I think it would be good if I had\n" + .string "something to shout when I win.\p" + .string "Could you think up something good\n" + .string "to say?$" + +gText_ApprenticeWinSpeechThanks2:: @ 82C15B6 + .string "{STR_VAR_1}\p" + .string "…Cool!\n" + .string "I will use that!\p" + .string "I'm going out to battle all over\n" + .string "the place.\p" + .string "Who knows, I may even get to battle\n" + .string "you one day, {PLAYER}.\p" + .string "Next time, let's meet at a place\n" + .string "of battle!$" + +gText_ApprenticePickWinSpeech3:: @ 82C165E + .string "Hello, {PLAYER}…\n" + .string "I'm sorry to bug you, but I'm hopeless…\p" + .string "Even when…\n" + .string "Even when I win, I don't have anything\l" + .string "special to say…\p" + .string "I know that it doesn't mean anything\n" + .string "to you, {PLAYER}.\p" + .string "But it means a lot to me…\p" + .string "Please, {PLAYER}, what should I say\n" + .string "if I win a battle?$" + +gText_ApprenticeWinSpeechThanks3:: @ 82C174F + .string "{STR_VAR_1}\p" + .string "That's inspired…\p" + .string "Uh… Is it okay for someone like me\n" + .string "to even say that?\p" + .string "No! I'll do my best!\p" + .string "{PLAYER}, thank you so much for\n" + .string "putting up with me for so long…\p" + .string "I promise to do my best from now on.\p" + .string "I'm sure you'll quickly forget about\n" + .string "someone like me, but let's meet\l" + .string "somewhere again!$" + +gText_ApprenticePickWinSpeech4:: @ 82C1862 + .string "Oh, {PLAYER}{KUN}.\n" + .string "There's something I want you to hear.\p" + .string "I know that I don't always sound\n" + .string "nice or polite…\p" + .string "When I win a battle, I think I come\n" + .string "across as being arrogant.\p" + .string "I don't want people to dislike me,\n" + .string "so I want to say something nice to\l" + .string "someone I beat.\p" + .string "But I can't think of anything good!\n" + .string "Could you think something up for me?$" + +gText_ApprenticeWinSpeechThanks4:: @ 82C19A0 + .string "{STR_VAR_1}\p" + .string "Not bad!\n" + .string "Yup, that's what I'll go with!\p" + .string "I'm going to hit the road and do what\n" + .string "I can with what you taught me in\l" + .string "my head and heart.\p" + .string "I'm sorry that I've been so pushy\n" + .string "with you!\p" + .string "Next time, we battle, okay?\n" + .string "See you!$" + +gText_ApprenticePickWinSpeech5:: @ 82C1A76 + .string "Oh, I can't get over how busy I am!\n" + .string "Oh, hey, I was looking for you, {PLAYER}{KUN}.\p" + .string "Are you well as usual?\n" + .string "Things haven't changed for me at all.\p" + .string "I've got running, fighting, and mapping\n" + .string "to do. Why am I so busy?\p" + .string "But even though I'm busy, it'd be rude\n" + .string "to just turn on my heels and walk away\l" + .string "from a win without saying a word.\p" + .string "So, what would be a cool saying to\n" + .string "underline my coolness when I'm done\l" + .string "and walking away? {PLAYER}{KUN}, help me!$" + +gText_ApprenticeWinSpeechThanks5:: @ 82C1C16 + .string "{STR_VAR_1}\p" + .string "Okay, gotcha.\n" + .string "I can find time to say that!\p" + .string "Honestly, I'm glad I met a good mentor\n" + .string "like you.\p" + .string "I'm going to make time somehow so\n" + .string "I can get into battling.\p" + .string "Thanks for everything, {PLAYER}{KUN}!\n" + .string "We have to battle, you and me, one day!$" + +gText_ApprenticePickWinSpeech6:: @ 82C1CF5 + .string "I lucked out again!\n" + .string "{PLAYER}! Am I glad to see you!\l" + .string "Like usual, I need your advice!\p" + .string "Drum roll, please!\n" + .string "The last question I have is…\p" + .string "If I win a battle and want to end\n" + .string "it with a cool flourish, what\l" + .string "should I say?$" + +gText_ApprenticeWinSpeechThanks6:: @ 82C1DC1 + .string "{STR_VAR_1}\p" + .string "That… That's fabulous!\n" + .string "It's dignified and cool! I claim it!\p" + .string "…Listen, I think I'm getting decent\n" + .string "at this, huh?\p" + .string "So, I'm thinking of challenging other\n" + .string "TRAINERS from now on.\p" + .string "{PLAYER}, your advice really helped me.\p" + .string "Maybe one day, there'll be a time when\n" + .string "we battle!\p" + .string "Thank you for everything!$" + +gText_ApprenticePickWinSpeech7:: @ 82C1EDC + .string "Oh, {PLAYER}.\n" + .string "I'm so glad I met you!\p" + .string "I no longer have any concerns with\n" + .string "regard to my POKéMON.\p" + .string "It's myself that worries me…\p" + .string "Do you know how a TRAINER says\n" + .string "a few things upon winning a battle?\p" + .string "Definitely, I wish I could do that,\n" + .string "too!\p" + .string "Please, what should I say when\n" + .string "I win a battle?$" + +gText_ApprenticeWinSpeechThanks7:: @ 82C1FEC + .string "{STR_VAR_1}\p" + .string "Ah! That saying! It refreshes me\n" + .string "and makes me feel reborn!\p" + .string "I must use that right away!\p" + .string "And now, I must take my leave,\n" + .string "{PLAYER}…\p" + .string "I will go out to battle many others,\n" + .string "but never will I forget your teachings.\p" + .string "Perhaps one day…\n" + .string "Farewell!$" + +gText_ApprenticePickWinSpeech8:: @ 82C20D1 + .string "Eek! I spotted {PLAYER}!\n" + .string "I… I'm overjoyed to see you!\p" + .string "Oh-oh-oh! There's something I just\n" + .string "had to ask you!\p" + .string "A little while ago, I won a battle.\n" + .string "That part was giddying!\p" + .string "But it made me so overjoyed that\n" + .string "I choked up and couldn't say a thing!\p" + .string "So now, {PLAYER}, please, I want you to\n" + .string "think up an exit line for when I win!$" + +gText_ApprenticeWinSpeechThanks8:: @ 82C21FF + .string "{STR_VAR_1}\p" + .string "Waaaaah!\n" + .string "I'm going to say that?!\l" + .string "I… I'm delirious with joy!\p" + .string "Th-th-thank you!\n" + .string "I have nothing left to regret now!\p" + .string "I'm going to travel now and battle\n" + .string "all sorts of people.\p" + .string "Everything, I owe it to you, {PLAYER}.\n" + .string "Really, really, thank you!\p" + .string "I've got to go now, but let's meet\n" + .string "in battle one day!$" + +gText_ApprenticePickWinSpeech9:: @ 82C231C + .string "Hola, bueno!\n" + .string "{PLAYER}{KUN}!\p" + .string "You know, I'm getting the itch to roam\n" + .string "and battle where I may.\p" + .string "But before I do, I want your advice\n" + .string "once again, please!\p" + .string "If I were to win a battle, what would\n" + .string "be a good boast I could say to my\l" + .string "fallen TRAINER opponent?$" + +gText_ApprenticeWinSpeechThanks9:: @ 82C2407 + .string "{STR_VAR_1}\p" + .string "Uh-huh, that's sweet!\n" + .string "Si, bueno!\l" + .string "I'll try saying that, like, ham!\p" + .string "And now, it's time to say good-bye!\n" + .string "Thanks for all sorts of things!\p" + .string "Give me a battle one day, OK?\n" + .string "Adios!$" + +gText_ApprenticePickWinSpeech10:: @ 82C24B5 + .string "{PLAYER}{KUN}, there's big trouble!\p" + .string "When I win a battle, I brag about it\n" + .string "for an hour at least!\p" + .string "Of course I'm lying!\n" + .string "Wahahaha!\p" + .string "This is no lie, though.\n" + .string "I'm not very good at chatting.\p" + .string "So, how about deciding for me what\n" + .string "I should say after winning a battle,\l" + .string "master?$" + +gText_ApprenticeWinSpeechThanks10:: @ 82C25B1 + .string "{STR_VAR_1}\p" + .string "That's what I should say, huh?\n" + .string "Then, I'll stay away from that!\p" + .string "Just kidding!\n" + .string "I'll obey your teaching, master!\p" + .string "Thanks for teaching me all this time,\n" + .string "master!\p" + .string "I'm finally understanding what being\n" + .string "a TRAINER is about.\p" + .string "I'm going to go out and win battles\n" + .string "against any TRAINER.\p" + .string "Maybe it'll be you one day, master!\p" + .string "That's all!\n" + .string "Farewell, my master!$" + +gText_ApprenticePickWinSpeech11:: @ 82C2707 + .string "A-H-O-Y!\n" + .string "And that spells ahoy!\p" + .string "The rappin' SAILOR am I!\n" + .string "This will be my last question,\l" + .string "don't you cry!\p" + .string "It's a saying question\n" + .string "that begs your suggestion!\p" + .string "If I win a match, what can I say\n" + .string "in a real cool way?$" + +gText_ApprenticeWinSpeechThanks11:: @ 82C27D4 + .string "{STR_VAR_1}\p" + .string "Perfect! That's what I'll use.\n" + .string "I was right to make you choose!\p" + .string "And now, I think it'd be best,\n" + .string "if I were to fly the nest!\p" + .string "Thanks for all you taught me.\n" + .string "I'll be off on a battle spree!\p" + .string "B-O-N-V-O-Y-A-G-E!\n" + .string "And that spells bon voyage,\l" + .string "to you this is my homage!$" + +gText_ApprenticePickWinSpeech12:: @ 82C28D6 + .string "Oh, yeah, {PLAYER}!\n" + .string "I found you again today!\p" + .string "What should I do? Ask you again?\n" + .string "Why not? I'm already asking you!\p" + .string "Anyways, {PLAYER}…\n" + .string "Are you receiving me?\l" + .string "You are receiving me!\l" + .string "I need some more advice for me!\p" + .string "It's about what I should yell.\n" + .string "Something cool to holler when\l" + .string "a battle ends well.\p" + .string "Come on, I wanna hear you say it!$" + +gText_ApprenticeWinSpeechThanks12:: @ 82C2A0B + .string "{STR_VAR_1}\p" + .string "All right, all right!\n" + .string "I'll use that because it's so tight!\p" + .string "I'm out of things to ask you.\n" + .string "Waving bye is all that's left to do.\p" + .string "But maybe one day we'll meet, with one\n" + .string "destined to go down in defeat.\p" + .string "But, it really is time to say farewell.\p" + .string "Well, {PLAYER}, I have to roam free,\n" + .string "but don't you forget about me!\p" + .string "Take care, {PLAYER}!\n" + .string "Love ya!$" + +gText_ApprenticePickWinSpeech13:: @ 82C2B50 + .string "{PLAYER}{KUN}, I'm finished…\n" + .string "My nose won't stop dripping…\p" + .string "I was trying to think up something\n" + .string "cool to say when I win a battle.\p" + .string "It inspired me so much, it made me cry,\n" + .string "and now my nose won't stop running…\p" + .string "So, things being this way,\n" + .string "I need you to decide for me, {PLAYER}{KUN}.\p" + .string "When I win a battle,\n" + .string "what should I say?$" + +gText_ApprenticeWinSpeechThanks13:: @ 82C2C77 + .string "{STR_VAR_1}\p" + .string "… … …That's good.\n" + .string "No, it's awe inspiring!\l" + .string "It's bringing fresh tears to my eyes!\p" + .string "But in spite of my tears and runny\n" + .string "nose, I will use that saying!\p" + .string "I'm plumb out of things to ask you,\n" + .string "{PLAYER}{KUN}.\p" + .string "From now on, we're rivals!\n" + .string "Thanks for everything!$" + +gText_ApprenticePickWinSpeech14:: @ 82C2D67 + .string "Er… Um…\n" + .string "{PLAYER}{KUN}…\p" + .string "Please, don't look at me that way.\n" + .string "You're making me all nervous.\p" + .string "I… I need your advice again.\n" + .string "I'll make it my last, though…\p" + .string "It's really embarrassing to ask,\n" + .string "but what if I win a battle?\l" + .string "What should I say?$" + +gText_ApprenticeWinSpeechThanks14:: @ 82C2E41 + .string "{STR_VAR_1}\p" + .string "Oh… Okay!\n" + .string "I'll try to say that!\l" + .string "I might be too nervous to say it…\p" + .string "Thank you, {PLAYER}{KUN}.\n" + .string "I have to say good-bye now.\p" + .string "I'll obey all that you've taught me,\n" + .string "{PLAYER}{KUN}, and do the best I can.$" + +gText_ApprenticePickWinSpeech15:: @ 82C2EF5 + .string "Hm? You appear to be {PLAYER}{KUN}…\n" + .string "But are you really?\l" + .string "Perhaps a clever {PLAYER} DOLL?\p" + .string "Oh, no, no, no, don't worry!\n" + .string "If you really are real, please\l" + .string "forget about my rudeness.\p" + .string "No need to be so angry. All I wish for\n" + .string "is more of your fine advice.\p" + .string "It concerns a saying.\p" + .string "More precisely, what should I say\n" + .string "if I win a battle?$" + +gText_ApprenticeWinSpeechThanks15:: @ 82C3023 + .string "{STR_VAR_1}\p" + .string "… … … … … …\n" + .string "When I win a match…\p" + .string "{STR_VAR_1}\p" + .string "…Are you serious?\p" + .string "I see. If you are serious, that's fine.\n" + .string "I thank you for your time.\p" + .string "I do hope even I will be able to\n" + .string "put that saying to good use.\p" + .string "I seem to have run dry on what advice\n" + .string "I need.\p" + .string "I do believe it's high time I bid you\n" + .string "farewell and strike out on my own.\p" + .string "Thank you, my mentor!\n" + .string "I apologize for my skepticism!$" diff --git a/include/apprentice.h b/include/apprentice.h index 195106c53..ac7dff886 100644 --- a/include/apprentice.h +++ b/include/apprentice.h @@ -1,7 +1,7 @@ #ifndef GUARD_APPRENTICE_H #define GUARD_APPRENTICE_H -#define APPRENTICE_SPECIES_COUNT 10 +#include "constants/apprentice.h" struct ApprenticeTrainer { diff --git a/include/constants/apprentice.h b/include/constants/apprentice.h index 9db58bb8e..61f257767 100644 --- a/include/constants/apprentice.h +++ b/include/constants/apprentice.h @@ -1,6 +1,39 @@ #ifndef GUARD_CONSTANTS_APPRENTICE_H #define GUARD_CONSTANTS_APPRENTICE_H +#define APPRENTICE_SPECIES_COUNT 10 +#define NUM_APPRENTICES 16 + +#define APPRENTICE_LVL_MODE_50 (FRONTIER_LVL_50 + 1) +#define APPRENTICE_LVL_MODE_OPEN (FRONTIER_LVL_OPEN + 1) + +#define APPRENTICE_FUNC_0 0 +#define APPRENTICE_FUNC_1 1 +#define APPRENTICE_FUNC_2 2 +#define APPRENTICE_FUNC_3 3 +#define APPRENTICE_FUNC_4 4 +#define APPRENTICE_FUNC_5 5 +#define APPRENTICE_FUNC_6 6 +#define APPRENTICE_FUNC_MENU 7 +#define APPRENTICE_FUNC_PRINT_MSG 8 +#define APPRENTICE_FUNC_9 9 +#define APPRENTICE_FUNC_SET_TRUE_1 10 +#define APPRENTICE_FUNC_11 11 +#define APPRENTICE_FUNC_12 12 +#define APPRENTICE_FUNC_13 13 +#define APPRENTICE_FUNC_14 14 +#define APPRENTICE_FUNC_15 15 +#define APPRENTICE_FUNC_16 16 +#define APPRENTICE_FUNC_17 17 +#define APPRENTICE_FUNC_18 18 +#define APPRENTICE_FUNC_19 19 +#define APPRENTICE_FUNC_20 20 +#define APPRENTICE_FUNC_21 21 +#define APPRENTICE_FUNC_22 22 +#define APPRENTICE_FUNC_23 23 +#define APPRENTICE_FUNC_24 24 +#define APPRENTICE_FUNC_25 25 + #define APPRENTICE_ASK_WHICH_LEVEL 0 #define APPRENTICE_ASK_3SPECIES 1 #define APPRENTICE_ASK_2SPECIES 2 diff --git a/include/constants/global.h b/include/constants/global.h index 4ade1c823..c5dc86a12 100644 --- a/include/constants/global.h +++ b/include/constants/global.h @@ -48,6 +48,7 @@ #define EVENT_OBJECT_TEMPLATES_COUNT 64 #define DECOR_MAX_SECRET_BASE 16 #define DECOR_MAX_PLAYERS_HOUSE 12 +#define APPRENTICE_COUNT 4 #define PYRAMID_BAG_ITEMS_COUNT 10 #define HALL_FACILITIES_COUNT 9 // 7 facilities for single mode + tower double mode + tower multi mode. @@ -63,6 +64,7 @@ #define POKEMON_NAME_LENGTH 10 #define PLAYER_NAME_LENGTH 7 #define MAIL_WORDS_COUNT 9 +#define EASY_CHAT_BATTLE_WORDS_COUNT 6 #define MOVE_NAME_LENGTH 12 #define MALE 0 diff --git a/include/constants/pokemon.h b/include/constants/pokemon.h index b2084f154..5610a470c 100644 --- a/include/constants/pokemon.h +++ b/include/constants/pokemon.h @@ -195,6 +195,10 @@ #define MON_ALREADY_KNOWS_MOVE 0xFFFE #define MON_HAS_MAX_MOVES 0xFFFF +#define LEVEL_UP_MOVE_ID 0x01FF +#define LEVEL_UP_MOVE_LV 0xFE00 +#define LEVEL_UP_END 0xFFFF + #define MON_MALE 0x00 #define MON_FEMALE 0xFE #define MON_GENDERLESS 0xFF diff --git a/include/global.h b/include/global.h index 94dfebc28..9b98629cf 100644 --- a/include/global.h +++ b/include/global.h @@ -214,6 +214,8 @@ struct ApprenticeMon u16 item; }; +// This is for past players Apprentices or Apprentices received via Record Mix. +// For the current Apprentice, see struct PlayersApprentice struct Apprentice { u8 id:5; @@ -221,7 +223,7 @@ struct Apprentice u8 field_1; u8 number; struct ApprenticeMon party[MULTI_PARTY_SIZE]; - u16 easyChatWords[6]; + u16 easyChatWords[EASY_CHAT_BATTLE_WORDS_COUNT]; u8 playerId[TRAINER_ID_LENGTH]; u8 playerName[PLAYER_NAME_LENGTH]; u8 language; @@ -264,9 +266,9 @@ struct EmeraldBattleTowerRecord /*0x02*/ u16 winStreak; /*0x04*/ u8 name[PLAYER_NAME_LENGTH + 1]; /*0x0C*/ u8 trainerId[TRAINER_ID_LENGTH]; - /*0x10*/ u16 greeting[6]; - /*0x1C*/ u16 speechWon[6]; - /*0x28*/ u16 speechLost[6]; + /*0x10*/ u16 greeting[EASY_CHAT_BATTLE_WORDS_COUNT]; + /*0x1C*/ u16 speechWon[EASY_CHAT_BATTLE_WORDS_COUNT]; + /*0x28*/ u16 speechLost[EASY_CHAT_BATTLE_WORDS_COUNT]; /*0x34*/ struct BattleTowerPokemon party[4]; /*0xE4*/ u8 language; /*0xE8*/ u32 checksum; @@ -279,9 +281,9 @@ struct BattleTowerEReaderTrainer /*0x02*/ u16 winStreak; /*0x04*/ u8 name[PLAYER_NAME_LENGTH + 1]; /*0x0C*/ u8 trainerId[TRAINER_ID_LENGTH]; - /*0x10*/ u16 greeting[6]; - /*0x1C*/ u16 farewellPlayerLost[6]; - /*0x28*/ u16 farewellPlayerWon[6]; + /*0x10*/ u16 greeting[EASY_CHAT_BATTLE_WORDS_COUNT]; + /*0x1C*/ u16 farewellPlayerLost[EASY_CHAT_BATTLE_WORDS_COUNT]; + /*0x28*/ u16 farewellPlayerWon[EASY_CHAT_BATTLE_WORDS_COUNT]; /*0x34*/ struct BattleTowerPokemon party[FRONTIER_PARTY_SIZE]; /*0xB8*/ u32 checksum; }; @@ -413,7 +415,7 @@ struct Sav2_B8 struct PlayersApprentice { /*0xB0*/ u8 id; - /*0xB1*/ u8 activeLvlMode:2; // +1, 0 means not active + /*0xB1*/ u8 lvlMode:2; //0: Unassigned, 1: Lv 50, 2: Open Lv /*0xB1*/ u8 field_B1_1:4; /*0xB1*/ u8 field_B1_2:2; /*0xB2*/ u8 field_B2_0:3; @@ -465,7 +467,7 @@ struct SaveBlock2 /*0xA8*/ u32 field_A8; // Written to, but never read. /*0xAC*/ u32 encryptionKey; /*0xB0*/ struct PlayersApprentice playerApprentice; - /*0xDC*/ struct Apprentice apprentices[4]; // From record mixing. + /*0xDC*/ struct Apprentice apprentices[APPRENTICE_COUNT]; /*0x1EC*/ struct BerryCrush berryCrush; /*0x1FC*/ struct PokemonJumpResults pokeJump; /*0x20C*/ struct BerryPickingResults berryPick; @@ -949,10 +951,10 @@ struct SaveBlock1 /*0x2BA1*/ u8 outbreakPokemonProbability; /*0x2BA2*/ u16 outbreakDaysLeft; /*0x2BA4*/ struct GabbyAndTyData gabbyAndTyData; - /*0x2BB0*/ u16 easyChatProfile[6]; - /*0x2BBC*/ u16 easyChatBattleStart[6]; - /*0x2BC8*/ u16 easyChatBattleWon[6]; - /*0x2BD4*/ u16 easyChatBattleLost[6]; + /*0x2BB0*/ u16 easyChatProfile[EASY_CHAT_BATTLE_WORDS_COUNT]; + /*0x2BBC*/ u16 easyChatBattleStart[EASY_CHAT_BATTLE_WORDS_COUNT]; + /*0x2BC8*/ u16 easyChatBattleWon[EASY_CHAT_BATTLE_WORDS_COUNT]; + /*0x2BD4*/ u16 easyChatBattleLost[EASY_CHAT_BATTLE_WORDS_COUNT]; /*0x2BE0*/ struct MailStruct mail[MAIL_COUNT]; /*0x2E20*/ u8 additionalPhrases[8]; // bitfield for 33 additional phrases in easy chat system /*0x2E28*/ OldMan oldMan; diff --git a/include/strings.h b/include/strings.h index f135944bd..cdd02aa28 100644 --- a/include/strings.h +++ b/include/strings.h @@ -2416,6 +2416,10 @@ extern const u8 gUnknown_085EDC45[]; extern const u8 gUnknown_085EDB00[]; extern const u8 gUnknown_085EDC84[]; +// Apprentice +extern const u8 gText_Give[]; +extern const u8 gText_NoNeed[]; + // Easy Chat Entry extern const u8 gText_StopGivingPkmnMail[]; extern const u8 gText_LikeToQuitQuiz[]; diff --git a/src/apprentice.c b/src/apprentice.c index 189647991..a1b77ca40 100644 --- a/src/apprentice.c +++ b/src/apprentice.c @@ -22,10 +22,13 @@ #include "strings.h" #include "task.h" #include "text.h" -#include "constants/apprentice.h" +#include "constants/battle_frontier.h" +#include "constants/easy_chat.h" #include "constants/items.h" +#include "constants/pokemon.h" #include "constants/songs.h" #include "constants/species.h" +#include "constants/trainers.h" #include "constants/moves.h" #define PLAYER_APPRENTICE gSaveBlock2Ptr->playerApprentice @@ -33,7 +36,7 @@ struct Unk030062ECStruct { u8 unk0; - u16 unk2[3][5]; + u16 unk2[MULTI_PARTY_SIZE][5]; u8 unk20[3][5]; }; @@ -45,301 +48,301 @@ struct Unk030062F0Struct u16 unk6; }; -// data/scripts/apprentice.inc -extern const u8 gText_082B7229[]; -extern const u8 gText_082B731C[]; -extern const u8 gText_082B735B[]; -extern const u8 gText_082B7423[]; -extern const u8 gText_082B74C1[]; -extern const u8 gText_082B756F[]; -extern const u8 gText_082B75B2[]; -extern const u8 gText_082B763F[]; -extern const u8 gText_082B76AC[]; -extern const u8 gText_082B7772[]; -extern const u8 gText_082B77CE[]; -extern const u8 gText_082B7871[]; -extern const u8 gText_082B78D4[]; -extern const u8 gText_082B7B1A[]; -extern const u8 gText_082B7C13[]; -extern const u8 gText_082B7D18[]; -extern const u8 gText_082B7DD4[]; -extern const u8 gText_082B7EE5[]; -extern const u8 gText_082B7F35[]; -extern const u8 gText_082B7FE8[]; -extern const u8 gText_082B8087[]; -extern const u8 gText_082B822B[]; -extern const u8 gText_082B8286[]; -extern const u8 gText_082B8356[]; -extern const u8 gText_082B83CE[]; -extern const u8 gText_082B84FC[]; -extern const u8 gText_082B8559[]; -extern const u8 gText_082B8656[]; -extern const u8 gText_082B86EA[]; -extern const u8 gText_082B87DA[]; -extern const u8 gText_082B887C[]; -extern const u8 gText_082B8957[]; -extern const u8 gText_082B89C6[]; -extern const u8 gText_082B8ACF[]; -extern const u8 gText_082B8B66[]; -extern const u8 gText_082B8C20[]; -extern const u8 gText_082B8CAA[]; -extern const u8 gText_082B8DD3[]; -extern const u8 gText_082B8E24[]; -extern const u8 gText_082B8ED5[]; -extern const u8 gText_082B8F45[]; -extern const u8 gText_082B905F[]; -extern const u8 gText_082B910E[]; -extern const u8 gText_082B9204[]; -extern const u8 gText_082B929C[]; -extern const u8 gText_082B9438[]; -extern const u8 gText_082B9488[]; -extern const u8 gText_082B9564[]; -extern const u8 gText_082B95D8[]; -extern const u8 gText_082B9763[]; -extern const u8 gText_082B97E5[]; -extern const u8 gText_082B989A[]; -extern const u8 gText_082B992D[]; -extern const u8 gText_082B9A84[]; -extern const u8 gText_082B9AB9[]; -extern const u8 gText_082B9B76[]; -extern const u8 gText_082B9BF2[]; -extern const u8 gText_082B9D83[]; -extern const u8 gText_082B9DF9[]; -extern const u8 gText_082B9EAA[]; -extern const u8 gText_082B9F55[]; -extern const u8 gText_082BA084[]; -extern const u8 gText_082BA11D[]; -extern const u8 gText_082BA1F3[]; - -extern const u8 gText_082BE50D[]; -extern const u8 gText_082BE5F5[]; -extern const u8 gText_082BE679[]; -extern const u8 gText_082BE71E[]; -extern const u8 gText_082BE762[]; -extern const u8 gText_082BE7F8[]; -extern const u8 gText_082BE850[]; -extern const u8 gText_082BE99C[]; -extern const u8 gText_082BEA1B[]; -extern const u8 gText_082BEAE9[]; -extern const u8 gText_082BEB72[]; -extern const u8 gText_082BEC8E[]; -extern const u8 gText_082BED16[]; -extern const u8 gText_082BEE29[]; -extern const u8 gText_082BEEB4[]; -extern const u8 gText_082BEFE2[]; -extern const u8 gText_082BF04E[]; -extern const u8 gText_082BF11D[]; -extern const u8 gText_082BF1A8[]; -extern const u8 gText_082BF268[]; -extern const u8 gText_082BF2D1[]; -extern const u8 gText_082BF3CF[]; -extern const u8 gText_082BF46A[]; -extern const u8 gText_082BF551[]; -extern const u8 gText_082BF5C3[]; -extern const u8 gText_082BF6E5[]; -extern const u8 gText_082BF773[]; -extern const u8 gText_082BF869[]; -extern const u8 gText_082BF8DD[]; -extern const u8 gText_082BF9BA[]; -extern const u8 gText_082BFA5A[]; -extern const u8 gText_082BFB4E[]; - -extern const u8 gText_082BA2A3[]; -extern const u8 gText_082BA34E[]; -extern const u8 gText_082BA380[]; -extern const u8 gText_082BA3D2[]; -extern const u8 gText_082BA448[]; -extern const u8 gText_082BA4D3[]; -extern const u8 gText_082BA58C[]; -extern const u8 gText_082BA5BF[]; -extern const u8 gText_082BA5F3[]; -extern const u8 gText_082BA635[]; -extern const u8 gText_082BA6E6[]; -extern const u8 gText_082BA742[]; -extern const u8 gText_082BA770[]; -extern const u8 gText_082BA78F[]; -extern const u8 gText_082BA7D8[]; -extern const u8 gText_082BA867[]; -extern const u8 gText_082BA96B[]; -extern const u8 gText_082BA9B7[]; -extern const u8 gText_082BAA1B[]; -extern const u8 gText_082BAA81[]; -extern const u8 gText_082BAB22[]; -extern const u8 gText_082BAC43[]; -extern const u8 gText_082BAC78[]; -extern const u8 gText_082BAD17[]; -extern const u8 gText_082BADB6[]; -extern const u8 gText_082BAE36[]; -extern const u8 gText_082BAF4E[]; -extern const u8 gText_082BAF8F[]; -extern const u8 gText_082BAFDB[]; -extern const u8 gText_082BB05F[]; -extern const u8 gText_082BB0D4[]; -extern const u8 gText_082BB18C[]; -extern const u8 gText_082BB1CE[]; -extern const u8 gText_082BB242[]; -extern const u8 gText_082BB2D9[]; -extern const u8 gText_082BB370[]; -extern const u8 gText_082BB4C3[]; -extern const u8 gText_082BB4FB[]; -extern const u8 gText_082BB575[]; -extern const u8 gText_082BB5E1[]; -extern const u8 gText_082BB656[]; -extern const u8 gText_082BB6E5[]; -extern const u8 gText_082BB72C[]; -extern const u8 gText_082BB7A2[]; -extern const u8 gText_082BB84A[]; -extern const u8 gText_082BB8CD[]; -extern const u8 gText_082BB970[]; -extern const u8 gText_082BB9AE[]; -extern const u8 gText_082BBA05[]; -extern const u8 gText_082BBA6C[]; -extern const u8 gText_082BBB01[]; -extern const u8 gText_082BBC1C[]; -extern const u8 gText_082BBC4B[]; -extern const u8 gText_082BBCF6[]; -extern const u8 gText_082BBD90[]; -extern const u8 gText_082BBE0B[]; -extern const u8 gText_082BBEE5[]; -extern const u8 gText_082BBF25[]; -extern const u8 gText_082BBFA4[]; -extern const u8 gText_082BC024[]; -extern const u8 gText_082BC0C8[]; -extern const u8 gText_082BC213[]; -extern const u8 gText_082BC247[]; -extern const u8 gText_082BC2DD[]; -extern const u8 gText_082BC373[]; -extern const u8 gText_082BC40E[]; -extern const u8 gText_082BC514[]; -extern const u8 gText_082BC555[]; -extern const u8 gText_082BC5CE[]; -extern const u8 gText_082BC666[]; -extern const u8 gText_082BC714[]; -extern const u8 gText_082BC808[]; -extern const u8 gText_082BC84D[]; -extern const u8 gText_082BC8EA[]; -extern const u8 gText_082BC984[]; -extern const u8 gText_082BCA4D[]; -extern const u8 gText_082BCB75[]; -extern const u8 gText_082BCBA6[]; -extern const u8 gText_082BCBFC[]; -extern const u8 gText_082BCCA4[]; - -extern const u8 gText_082BFBF2[]; -extern const u8 gText_082BFCAE[]; -extern const u8 gText_082BFD26[]; -extern const u8 gText_082BFDB1[]; -extern const u8 gText_082BFE24[]; -extern const u8 gText_082BFEAD[]; -extern const u8 gText_082BFF0A[]; -extern const u8 gText_082C0032[]; -extern const u8 gText_082C0090[]; -extern const u8 gText_082C016E[]; -extern const u8 gText_082C01F7[]; -extern const u8 gText_082C034C[]; -extern const u8 gText_082C03CA[]; -extern const u8 gText_082C046E[]; -extern const u8 gText_082C04F9[]; -extern const u8 gText_082C0598[]; -extern const u8 gText_082C0602[]; -extern const u8 gText_082C06D8[]; -extern const u8 gText_082C074A[]; -extern const u8 gText_082C0809[]; -extern const u8 gText_082C086E[]; -extern const u8 gText_082C0982[]; -extern const u8 gText_082C0A1D[]; -extern const u8 gText_082C0AFD[]; -extern const u8 gText_082C0B6F[]; -extern const u8 gText_082C0C7D[]; -extern const u8 gText_082C0D0B[]; -extern const u8 gText_082C0DFE[]; -extern const u8 gText_082C0E71[]; -extern const u8 gText_082C0F6D[]; -extern const u8 gText_082C1003[]; -extern const u8 gText_082C1122[]; - -extern const u8 gText_082BCD68[]; -extern const u8 gText_082BCE64[]; -extern const u8 gText_082BCEF2[]; -extern const u8 gText_082BCF61[]; -extern const u8 gText_082BCFA1[]; -extern const u8 gText_082BD03C[]; -extern const u8 gText_082BD06D[]; -extern const u8 gText_082BD18A[]; -extern const u8 gText_082BD222[]; -extern const u8 gText_082BD325[]; -extern const u8 gText_082BD3B1[]; -extern const u8 gText_082BD493[]; -extern const u8 gText_082BD51C[]; -extern const u8 gText_082BD609[]; -extern const u8 gText_082BD697[]; -extern const u8 gText_082BD797[]; -extern const u8 gText_082BD806[]; -extern const u8 gText_082BD8F5[]; -extern const u8 gText_082BD9BE[]; -extern const u8 gText_082BDAE1[]; -extern const u8 gText_082BDB4E[]; -extern const u8 gText_082BDC6B[]; -extern const u8 gText_082BDD0D[]; -extern const u8 gText_082BDDEC[]; -extern const u8 gText_082BDE68[]; -extern const u8 gText_082BDF4D[]; -extern const u8 gText_082BDFD8[]; -extern const u8 gText_082BE0FD[]; -extern const u8 gText_082BE189[]; -extern const u8 gText_082BE2A5[]; -extern const u8 gText_082BE33E[]; -extern const u8 gText_082BE46C[]; - -extern const u8 gText_082C11D1[]; -extern const u8 gText_082C12D5[]; -extern const u8 gText_082C13AB[]; -extern const u8 gText_082C1444[]; -extern const u8 gText_082C1501[]; -extern const u8 gText_082C15B6[]; -extern const u8 gText_082C165E[]; -extern const u8 gText_082C174F[]; -extern const u8 gText_082C1862[]; -extern const u8 gText_082C19A0[]; -extern const u8 gText_082C1A76[]; -extern const u8 gText_082C1C16[]; -extern const u8 gText_082C1CF5[]; -extern const u8 gText_082C1DC1[]; -extern const u8 gText_082C1EDC[]; -extern const u8 gText_082C1FEC[]; -extern const u8 gText_082C20D1[]; -extern const u8 gText_082C21FF[]; -extern const u8 gText_082C231C[]; -extern const u8 gText_082C2407[]; -extern const u8 gText_082C24B5[]; -extern const u8 gText_082C25B1[]; -extern const u8 gText_082C2707[]; -extern const u8 gText_082C27D4[]; -extern const u8 gText_082C28D6[]; -extern const u8 gText_082C2A0B[]; -extern const u8 gText_082C2B50[]; -extern const u8 gText_082C2C77[]; -extern const u8 gText_082C2D67[]; -extern const u8 gText_082C2E41[]; -extern const u8 gText_082C2EF5[]; -extern const u8 gText_082C3023[]; - -extern const u8 gText_082B6EA5[]; -extern const u8 gText_082B6EEC[]; -extern const u8 gText_082B6F16[]; -extern const u8 gText_082B6F4C[]; -extern const u8 gText_082B6F92[]; -extern const u8 gText_082B6FC9[]; -extern const u8 gText_082B700C[]; -extern const u8 gText_082B703A[]; -extern const u8 gText_082B706A[]; -extern const u8 gText_082B709C[]; -extern const u8 gText_082B70CC[]; -extern const u8 gText_082B710A[]; -extern const u8 gText_082B714D[]; -extern const u8 gText_082B7185[]; -extern const u8 gText_082B71C1[]; -extern const u8 gText_082B71F9[]; +// data/text/apprentice.inc +extern const u8 gText_ApprenticeIntro0[]; +extern const u8 gText_ApprenticeIntro1[]; +extern const u8 gText_ApprenticeIntro2[]; +extern const u8 gText_ApprenticeIntro3[]; +extern const u8 gText_ApprenticeIntro4[]; +extern const u8 gText_ApprenticeIntro5[]; +extern const u8 gText_ApprenticeIntro6[]; +extern const u8 gText_ApprenticeIntro7[]; +extern const u8 gText_ApprenticeIntro8[]; +extern const u8 gText_ApprenticeIntro9[]; +extern const u8 gText_ApprenticeIntro10[]; +extern const u8 gText_ApprenticeIntro11[]; +extern const u8 gText_ApprenticeIntro12[]; +extern const u8 gText_ApprenticeIntro13[]; +extern const u8 gText_ApprenticeIntro14[]; +extern const u8 gText_ApprenticeIntro15[]; +extern const u8 gText_ApprenticeRejectTeaching0[]; +extern const u8 gText_ApprenticeRejectTeaching1[]; +extern const u8 gText_ApprenticeRejectTeaching2[]; +extern const u8 gText_ApprenticeRejectTeaching3[]; +extern const u8 gText_ApprenticeRejectTeaching4[]; +extern const u8 gText_ApprenticeRejectTeaching5[]; +extern const u8 gText_ApprenticeRejectTeaching6[]; +extern const u8 gText_ApprenticeRejectTeaching7[]; +extern const u8 gText_ApprenticeRejectTeaching8[]; +extern const u8 gText_ApprenticeRejectTeaching9[]; +extern const u8 gText_ApprenticeRejectTeaching10[]; +extern const u8 gText_ApprenticeRejectTeaching11[]; +extern const u8 gText_ApprenticeRejectTeaching12[]; +extern const u8 gText_ApprenticeRejectTeaching13[]; +extern const u8 gText_ApprenticeRejectTeaching14[]; +extern const u8 gText_ApprenticeRejectTeaching15[]; +extern const u8 gText_ApprenticeWhichLevelMode0[]; +extern const u8 gText_ApprenticeWhichLevelMode1[]; +extern const u8 gText_ApprenticeWhichLevelMode2[]; +extern const u8 gText_ApprenticeWhichLevelMode3[]; +extern const u8 gText_ApprenticeWhichLevelMode4[]; +extern const u8 gText_ApprenticeWhichLevelMode5[]; +extern const u8 gText_ApprenticeWhichLevelMode6[]; +extern const u8 gText_ApprenticeWhichLevelMode7[]; +extern const u8 gText_ApprenticeWhichLevelMode8[]; +extern const u8 gText_ApprenticeWhichLevelMode9[]; +extern const u8 gText_ApprenticeWhichLevelMode10[]; +extern const u8 gText_ApprenticeWhichLevelMode11[]; +extern const u8 gText_ApprenticeWhichLevelMode12[]; +extern const u8 gText_ApprenticeWhichLevelMode13[]; +extern const u8 gText_ApprenticeWhichLevelMode14[]; +extern const u8 gText_ApprenticeWhichLevelMode15[]; +extern const u8 gText_ApprenticeLevelModeThanks0[]; +extern const u8 gText_ApprenticeLevelModeThanks1[]; +extern const u8 gText_ApprenticeLevelModeThanks2[]; +extern const u8 gText_ApprenticeLevelModeThanks3[]; +extern const u8 gText_ApprenticeLevelModeThanks4[]; +extern const u8 gText_ApprenticeLevelModeThanks5[]; +extern const u8 gText_ApprenticeLevelModeThanks6[]; +extern const u8 gText_ApprenticeLevelModeThanks7[]; +extern const u8 gText_ApprenticeLevelModeThanks8[]; +extern const u8 gText_ApprenticeLevelModeThanks9[]; +extern const u8 gText_ApprenticeLevelModeThanks10[]; +extern const u8 gText_ApprenticeLevelModeThanks11[]; +extern const u8 gText_ApprenticeLevelModeThanks12[]; +extern const u8 gText_ApprenticeLevelModeThanks13[]; +extern const u8 gText_ApprenticeLevelModeThanks14[]; +extern const u8 gText_ApprenticeLevelModeThanks15[]; + +extern const u8 gText_ApprenticeWhichMon0[]; +extern const u8 gText_ApprenticeWhichMon1[]; +extern const u8 gText_ApprenticeWhichMon2[]; +extern const u8 gText_ApprenticeWhichMon3[]; +extern const u8 gText_ApprenticeWhichMon4[]; +extern const u8 gText_ApprenticeWhichMon5[]; +extern const u8 gText_ApprenticeWhichMon6[]; +extern const u8 gText_ApprenticeWhichMon7[]; +extern const u8 gText_ApprenticeWhichMon8[]; +extern const u8 gText_ApprenticeWhichMon9[]; +extern const u8 gText_ApprenticeWhichMon10[]; +extern const u8 gText_ApprenticeWhichMon11[]; +extern const u8 gText_ApprenticeWhichMon12[]; +extern const u8 gText_ApprenticeWhichMon13[]; +extern const u8 gText_ApprenticeWhichMon14[]; +extern const u8 gText_ApprenticeWhichMon15[]; +extern const u8 gText_ApprenticeMonThanks0[]; +extern const u8 gText_ApprenticeMonThanks1[]; +extern const u8 gText_ApprenticeMonThanks2[]; +extern const u8 gText_ApprenticeMonThanks3[]; +extern const u8 gText_ApprenticeMonThanks4[]; +extern const u8 gText_ApprenticeMonThanks5[]; +extern const u8 gText_ApprenticeMonThanks6[]; +extern const u8 gText_ApprenticeMonThanks7[]; +extern const u8 gText_ApprenticeMonThanks8[]; +extern const u8 gText_ApprenticeMonThanks9[]; +extern const u8 gText_ApprenticeMonThanks10[]; +extern const u8 gText_ApprenticeMonThanks11[]; +extern const u8 gText_ApprenticeMonThanks12[]; +extern const u8 gText_ApprenticeMonThanks13[]; +extern const u8 gText_ApprenticeMonThanks14[]; +extern const u8 gText_ApprenticeMonThanks15[]; + +extern const u8 gText_ApprenticeWhatHeldItem0[]; +extern const u8 gText_ApprenticeWhatHeldItem1[]; +extern const u8 gText_ApprenticeWhatHeldItem2[]; +extern const u8 gText_ApprenticeWhatHeldItem3[]; +extern const u8 gText_ApprenticeWhatHeldItem4[]; +extern const u8 gText_ApprenticeWhatHeldItem5[]; +extern const u8 gText_ApprenticeWhatHeldItem6[]; +extern const u8 gText_ApprenticeWhatHeldItem7[]; +extern const u8 gText_ApprenticeWhatHeldItem8[]; +extern const u8 gText_ApprenticeWhatHeldItem9[]; +extern const u8 gText_ApprenticeWhatHeldItem10[]; +extern const u8 gText_ApprenticeWhatHeldItem11[]; +extern const u8 gText_ApprenticeWhatHeldItem12[]; +extern const u8 gText_ApprenticeWhatHeldItem13[]; +extern const u8 gText_ApprenticeWhatHeldItem14[]; +extern const u8 gText_ApprenticeWhatHeldItem15[]; +extern const u8 gText_ApprenticeHoldNothing0[]; +extern const u8 gText_ApprenticeHoldNothing1[]; +extern const u8 gText_ApprenticeHoldNothing2[]; +extern const u8 gText_ApprenticeHoldNothing3[]; +extern const u8 gText_ApprenticeHoldNothing4[]; +extern const u8 gText_ApprenticeHoldNothing5[]; +extern const u8 gText_ApprenticeHoldNothing6[]; +extern const u8 gText_ApprenticeHoldNothing7[]; +extern const u8 gText_ApprenticeHoldNothing8[]; +extern const u8 gText_ApprenticeHoldNothing9[]; +extern const u8 gText_ApprenticeHoldNothing10[]; +extern const u8 gText_ApprenticeHoldNothing11[]; +extern const u8 gText_ApprenticeHoldNothing12[]; +extern const u8 gText_ApprenticeHoldNothing13[]; +extern const u8 gText_ApprenticeHoldNothing14[]; +extern const u8 gText_ApprenticeHoldNothing15[]; +extern const u8 gText_ApprenticeThanksHeldItem0[]; +extern const u8 gText_ApprenticeThanksHeldItem1[]; +extern const u8 gText_ApprenticeThanksHeldItem2[]; +extern const u8 gText_ApprenticeThanksHeldItem3[]; +extern const u8 gText_ApprenticeThanksHeldItem4[]; +extern const u8 gText_ApprenticeThanksHeldItem5[]; +extern const u8 gText_ApprenticeThanksHeldItem6[]; +extern const u8 gText_ApprenticeThanksHeldItem7[]; +extern const u8 gText_ApprenticeThanksHeldItem8[]; +extern const u8 gText_ApprenticeThanksHeldItem9[]; +extern const u8 gText_ApprenticeThanksHeldItem10[]; +extern const u8 gText_ApprenticeThanksHeldItem11[]; +extern const u8 gText_ApprenticeThanksHeldItem12[]; +extern const u8 gText_ApprenticeThanksHeldItem13[]; +extern const u8 gText_ApprenticeThanksHeldItem14[]; +extern const u8 gText_ApprenticeThanksHeldItem15[]; +extern const u8 gText_ApprenticeThanksHaveHeldItem0[]; +extern const u8 gText_ApprenticeThanksHaveHeldItem1[]; +extern const u8 gText_ApprenticeThanksHaveHeldItem2[]; +extern const u8 gText_ApprenticeThanksHaveHeldItem3[]; +extern const u8 gText_ApprenticeThanksHaveHeldItem4[]; +extern const u8 gText_ApprenticeThanksHaveHeldItem5[]; +extern const u8 gText_ApprenticeThanksHaveHeldItem6[]; +extern const u8 gText_ApprenticeThanksHaveHeldItem7[]; +extern const u8 gText_ApprenticeThanksHaveHeldItem8[]; +extern const u8 gText_ApprenticeThanksHaveHeldItem9[]; +extern const u8 gText_ApprenticeThanksHaveHeldItem10[]; +extern const u8 gText_ApprenticeThanksHaveHeldItem11[]; +extern const u8 gText_ApprenticeThanksHaveHeldItem12[]; +extern const u8 gText_ApprenticeThanksHaveHeldItem13[]; +extern const u8 gText_ApprenticeThanksHaveHeldItem14[]; +extern const u8 gText_ApprenticeThanksHaveHeldItem15[]; +extern const u8 gText_ApprenticeItemAlreadyRecommended0[]; +extern const u8 gText_ApprenticeItemAlreadyRecommended1[]; +extern const u8 gText_ApprenticeItemAlreadyRecommended2[]; +extern const u8 gText_ApprenticeItemAlreadyRecommended3[]; +extern const u8 gText_ApprenticeItemAlreadyRecommended4[]; +extern const u8 gText_ApprenticeItemAlreadyRecommended5[]; +extern const u8 gText_ApprenticeItemAlreadyRecommended6[]; +extern const u8 gText_ApprenticeItemAlreadyRecommended7[]; +extern const u8 gText_ApprenticeItemAlreadyRecommended8[]; +extern const u8 gText_ApprenticeItemAlreadyRecommended9[]; +extern const u8 gText_ApprenticeItemAlreadyRecommended10[]; +extern const u8 gText_ApprenticeItemAlreadyRecommended11[]; +extern const u8 gText_ApprenticeItemAlreadyRecommended12[]; +extern const u8 gText_ApprenticeItemAlreadyRecommended13[]; +extern const u8 gText_ApprenticeItemAlreadyRecommended14[]; +extern const u8 gText_ApprenticeItemAlreadyRecommended15[]; + +extern const u8 gText_ApprenticeWhichMove0[]; +extern const u8 gText_ApprenticeWhichMove1[]; +extern const u8 gText_ApprenticeWhichMove2[]; +extern const u8 gText_ApprenticeWhichMove3[]; +extern const u8 gText_ApprenticeWhichMove4[]; +extern const u8 gText_ApprenticeWhichMove5[]; +extern const u8 gText_ApprenticeWhichMove6[]; +extern const u8 gText_ApprenticeWhichMove7[]; +extern const u8 gText_ApprenticeWhichMove8[]; +extern const u8 gText_ApprenticeWhichMove9[]; +extern const u8 gText_ApprenticeWhichMove10[]; +extern const u8 gText_ApprenticeWhichMove11[]; +extern const u8 gText_ApprenticeWhichMove12[]; +extern const u8 gText_ApprenticeWhichMove13[]; +extern const u8 gText_ApprenticeWhichMove14[]; +extern const u8 gText_ApprenticeWhichMove15[]; +extern const u8 gText_ApprenticeMoveThanks0[]; +extern const u8 gText_ApprenticeMoveThanks1[]; +extern const u8 gText_ApprenticeMoveThanks2[]; +extern const u8 gText_ApprenticeMoveThanks3[]; +extern const u8 gText_ApprenticeMoveThanks4[]; +extern const u8 gText_ApprenticeMoveThanks5[]; +extern const u8 gText_ApprenticeMoveThanks6[]; +extern const u8 gText_ApprenticeMoveThanks7[]; +extern const u8 gText_ApprenticeMoveThanks8[]; +extern const u8 gText_ApprenticeMoveThanks9[]; +extern const u8 gText_ApprenticeMoveThanks10[]; +extern const u8 gText_ApprenticeMoveThanks11[]; +extern const u8 gText_ApprenticeMoveThanks12[]; +extern const u8 gText_ApprenticeMoveThanks13[]; +extern const u8 gText_ApprenticeMoveThanks14[]; +extern const u8 gText_ApprenticeMoveThanks15[]; + +extern const u8 gText_ApprenticeWhichMonFirst0[]; +extern const u8 gText_ApprenticeWhichMonFirst1[]; +extern const u8 gText_ApprenticeWhichMonFirst2[]; +extern const u8 gText_ApprenticeWhichMonFirst3[]; +extern const u8 gText_ApprenticeWhichMonFirst4[]; +extern const u8 gText_ApprenticeWhichMonFirst5[]; +extern const u8 gText_ApprenticeWhichMonFirst6[]; +extern const u8 gText_ApprenticeWhichMonFirst7[]; +extern const u8 gText_ApprenticeWhichMonFirst8[]; +extern const u8 gText_ApprenticeWhichMonFirst9[]; +extern const u8 gText_ApprenticeWhichMonFirst10[]; +extern const u8 gText_ApprenticeWhichMonFirst11[]; +extern const u8 gText_ApprenticeWhichMonFirst12[]; +extern const u8 gText_ApprenticeWhichMonFirst13[]; +extern const u8 gText_ApprenticeWhichMonFirst14[]; +extern const u8 gText_ApprenticeWhichMonFirst15[]; +extern const u8 gText_ApprenticeMonFirstThanks0[]; +extern const u8 gText_ApprenticeMonFirstThanks1[]; +extern const u8 gText_ApprenticeMonFirstThanks2[]; +extern const u8 gText_ApprenticeMonFirstThanks3[]; +extern const u8 gText_ApprenticeMonFirstThanks4[]; +extern const u8 gText_ApprenticeMonFirstThanks5[]; +extern const u8 gText_ApprenticeMonFirstThanks6[]; +extern const u8 gText_ApprenticeMonFirstThanks7[]; +extern const u8 gText_ApprenticeMonFirstThanks8[]; +extern const u8 gText_ApprenticeMonFirstThanks9[]; +extern const u8 gText_ApprenticeMonFirstThanks10[]; +extern const u8 gText_ApprenticeMonFirstThanks11[]; +extern const u8 gText_ApprenticeMonFirstThanks12[]; +extern const u8 gText_ApprenticeMonFirstThanks13[]; +extern const u8 gText_ApprenticeMonFirstThanks14[]; +extern const u8 gText_ApprenticeMonFirstThanks15[]; + +extern const u8 gText_ApprenticePickWinSpeech0[]; +extern const u8 gText_ApprenticePickWinSpeech1[]; +extern const u8 gText_ApprenticePickWinSpeech2[]; +extern const u8 gText_ApprenticePickWinSpeech3[]; +extern const u8 gText_ApprenticePickWinSpeech4[]; +extern const u8 gText_ApprenticePickWinSpeech5[]; +extern const u8 gText_ApprenticePickWinSpeech6[]; +extern const u8 gText_ApprenticePickWinSpeech7[]; +extern const u8 gText_ApprenticePickWinSpeech8[]; +extern const u8 gText_ApprenticePickWinSpeech9[]; +extern const u8 gText_ApprenticePickWinSpeech10[]; +extern const u8 gText_ApprenticePickWinSpeech11[]; +extern const u8 gText_ApprenticePickWinSpeech12[]; +extern const u8 gText_ApprenticePickWinSpeech13[]; +extern const u8 gText_ApprenticePickWinSpeech14[]; +extern const u8 gText_ApprenticePickWinSpeech15[]; +extern const u8 gText_ApprenticeWinSpeechThanks0[]; +extern const u8 gText_ApprenticeWinSpeechThanks1[]; +extern const u8 gText_ApprenticeWinSpeechThanks2[]; +extern const u8 gText_ApprenticeWinSpeechThanks3[]; +extern const u8 gText_ApprenticeWinSpeechThanks4[]; +extern const u8 gText_ApprenticeWinSpeechThanks5[]; +extern const u8 gText_ApprenticeWinSpeechThanks6[]; +extern const u8 gText_ApprenticeWinSpeechThanks7[]; +extern const u8 gText_ApprenticeWinSpeechThanks8[]; +extern const u8 gText_ApprenticeWinSpeechThanks9[]; +extern const u8 gText_ApprenticeWinSpeechThanks10[]; +extern const u8 gText_ApprenticeWinSpeechThanks11[]; +extern const u8 gText_ApprenticeWinSpeechThanks12[]; +extern const u8 gText_ApprenticeWinSpeechThanks13[]; +extern const u8 gText_ApprenticeWinSpeechThanks14[]; +extern const u8 gText_ApprenticeWinSpeechThanks15[]; + +extern const u8 gText_ApprenticeChallenge0[]; +extern const u8 gText_ApprenticeChallenge1[]; +extern const u8 gText_ApprenticeChallenge2[]; +extern const u8 gText_ApprenticeChallenge3[]; +extern const u8 gText_ApprenticeChallenge4[]; +extern const u8 gText_ApprenticeChallenge5[]; +extern const u8 gText_ApprenticeChallenge6[]; +extern const u8 gText_ApprenticeChallenge7[]; +extern const u8 gText_ApprenticeChallenge8[]; +extern const u8 gText_ApprenticeChallenge9[]; +extern const u8 gText_ApprenticeChallenge10[]; +extern const u8 gText_ApprenticeChallenge11[]; +extern const u8 gText_ApprenticeChallenge12[]; +extern const u8 gText_ApprenticeChallenge13[]; +extern const u8 gText_ApprenticeChallenge14[]; +extern const u8 gText_ApprenticeChallenge15[]; // IWRAM common struct Unk030062ECStruct *gUnknown_030062EC; @@ -354,23 +357,23 @@ static u8 CreateAndShowWindow(u8 left, u8 top, u8 width, u8 height); static void RemoveAndHideWindow(u8 windowId); static void ExecuteFuncAfterButtonPress(void (*func)(void)); -static void Script_IsPlayersApprenticeActive(void); -static void Script_SetPlayersApprenticeLvlMode(void); +static void Script_GivenApprenticeLvlMode(void); +static void Script_SetApprenticeLvlMode(void); static void sub_81A0978(void); static void sub_819FC60(void); static void sub_81A0984(void); static void sub_81A0990(void); static void sub_81A09D0(void); static void Script_CreateApprenticeMenu(void); -static void Script_PrintMessage(void); +static void Script_PrintApprenticeMessage(void); static void Script_ResetPlayerApprentice(void); -static void sub_81A1638(void); +static void SetVar0x8004True1(void); static void sub_81A0CC0(void); static void sub_81A09B4(void); static void sub_81A0D40(void); static void sub_81A0DD4(void); static void sub_81A0FE4(void); -static void sub_81A0FFC(void); +static void ApprenticeBufferString(void); static void sub_81A0D80(void); static void sub_81A11F8(void); static void sub_81A1218(void); @@ -378,281 +381,290 @@ static void sub_81A1224(void); static void sub_81A1438(void); static void sub_81A150C(void); static void Script_SetPlayerApprenticeTrainerGfxId(void); -static void sub_81A1644(void); +static void GetShouldApprenticeLeave(void); static void sub_81A1370(void); // rodata -const struct ApprenticeTrainer gApprentices[] = +const struct ApprenticeTrainer gApprentices[NUM_APPRENTICES] = { { .name = {_("サダヒロ"), _("ALANN"), _("ALAIN"), _("ADELFO"), _("CLAUS"), _("TEO")}, .otId = 0xBDC9, - .facilityClass = 0x43, + .facilityClass = FACILITY_CLASS_BUG_CATCHER, .species = {SPECIES_BEAUTIFLY, SPECIES_DUSTOX, SPECIES_ILLUMISE, SPECIES_SHIFTRY, SPECIES_BRELOOM, SPECIES_NINJASK, SPECIES_SHEDINJA, SPECIES_PINSIR, SPECIES_HERACROSS, SPECIES_VOLBEAT}, .id = 0, - .easyChatWords = {0x81D, 0x143E, 0xC00, 0xA01, 0x630, 0x1444}, + .easyChatWords = {EC_WORD_NO, EC_WORD_MISTAKE, EC_WORD_EXCL, EC_WORD_I, EC_WORD_LOST, EC_WORD_BADLY}, }, { .name = {_("ヒロオ"), _("LIONEL"), _("LIONEL"), _("CAIO"), _("LUDWIG"), _("LEO")}, .otId = 0xCF09, - .facilityClass = 0x2B, + .facilityClass = FACILITY_CLASS_YOUNGSTER, .species = {SPECIES_SWELLOW, SPECIES_SWALOT, SPECIES_SHUCKLE, SPECIES_MANECTRIC, SPECIES_TORKOAL, SPECIES_HARIYAMA, SPECIES_MIGHTYENA, SPECIES_LUDICOLO, SPECIES_CRAWDAUNT, SPECIES_WHISCASH}, .id = 1, - .easyChatWords = {0xC38, 0xA01, 0x630, 0xA06, 0x1020, 0x2213}, + .easyChatWords = {EC_WORD_OKAY, EC_WORD_I, EC_WORD_LOST, EC_WORD_YOU_RE, EC_WORD_A, EC_WORD_MASTER}, }, { .name = {_("ケイジ"), _("SONNY"), _("HERVE"), _("FEDRO"), _("WENZEL"), _("SANTI")}, .otId = 0x2E34, - .facilityClass = 0x26, + .facilityClass = FACILITY_CLASS_SCHOOL_KID_M, .species = {SPECIES_LINOONE, SPECIES_MIGHTYENA, SPECIES_WHISCASH, SPECIES_ZANGOOSE, SPECIES_SEVIPER, SPECIES_NINETALES, SPECIES_KECLEON, SPECIES_SHUCKLE, SPECIES_MANECTRIC, SPECIES_MACHAMP}, .id = 2, - .easyChatWords = {0xA01, 0x160A, 0xE15, 0x630, 0xC3B, 0xC04}, + .easyChatWords = {EC_WORD_I, EC_WORD_WENT, EC_WORD_AND, EC_WORD_LOST, EC_WORD_AWW, EC_WORD_ELLIPSIS}, }, { .name = {_("ユラ"), _("LAYLA"), _("LAYLA"), _("ASTRID"), _("SONJA"), _("LOLA")}, .otId = 0x84EF, - .facilityClass = 0x47, + .facilityClass = FACILITY_CLASS_LASS, .species = {SPECIES_SWALOT, SPECIES_XATU, SPECIES_ALTARIA, SPECIES_GOLDUCK, SPECIES_FLYGON, SPECIES_ALAKAZAM, SPECIES_GARDEVOIR, SPECIES_WAILORD, SPECIES_GRUMPIG, SPECIES_MIGHTYENA}, .id = 3, - .easyChatWords = {0x100B, 0x1E0F, 0x1039, 0x1421, 0xC03, 0xFFFF}, + .easyChatWords = {EC_WORD_IS, EC_WORD_THIS, EC_WORD_TOO, EC_WORD_MUCH, EC_WORD_QUES, 0xFFFF}, }, { .name = {_("ヨウカ"), _("MACY"), _("AMELIE"), _("CLEO"), _("MARIA"), _("ELISA")}, .otId = 0x1E43, - .facilityClass = 0x27, + .facilityClass = FACILITY_CLASS_SCHOOL_KID_F, .species = {SPECIES_WIGGLYTUFF, SPECIES_LINOONE, SPECIES_KINGDRA, SPECIES_DELCATTY, SPECIES_RAICHU, SPECIES_FEAROW, SPECIES_STARMIE, SPECIES_MEDICHAM, SPECIES_SHIFTRY, SPECIES_BEAUTIFLY}, .id = 4, - .easyChatWords = {0x1E0F, 0x1014, 0x1006, 0x280F, 0x1C1C, 0x1C13}, + .easyChatWords = {EC_WORD_THIS, EC_WORD_WON_T, EC_WORD_BE, EC_WORD_HAPPENING, EC_WORD_NEXT, EC_WORD_TIME}, }, { .name = {_("ヤスシ"), _("DONTE"), _("BRAHIM"), _("GLAUCO"), _("JOSEF"), _("ROQUE")}, .otId = 0x379F, - .facilityClass = 0x30, + .facilityClass = FACILITY_CLASS_RUNNING_TRIATHLETE_M, .species = {SPECIES_STARMIE, SPECIES_DODRIO, SPECIES_AGGRON, SPECIES_MAGNETON, SPECIES_MACHAMP, SPECIES_ARMALDO, SPECIES_HERACROSS, SPECIES_NOSEPASS, SPECIES_EXPLOUD, SPECIES_MIGHTYENA}, .id = 5, - .easyChatWords = {0xA29, 0x1408, 0x102F, 0x1638, 0x820, 0xC00}, + .easyChatWords = {EC_WORD_I_AM, EC_WORD_GOING, EC_WORD_TO, EC_WORD_RUN, EC_WORD_BYE_BYE, EC_WORD_EXCL}, }, { .name = {_("ミサオ"), _("AMIRA"), _("LAURE"), _("DAFNE"), _("AMELIE"), _("LARA")}, .otId = 0xF555, - .facilityClass = 0x31, + .facilityClass = FACILITY_CLASS_RUNNING_TRIATHLETE_F, .species = {SPECIES_STARMIE, SPECIES_DODRIO, SPECIES_MAGNETON, SPECIES_MEDICHAM, SPECIES_MIGHTYENA, SPECIES_GLALIE, SPECIES_GOLEM, SPECIES_ELECTRODE, SPECIES_PELIPPER, SPECIES_SHARPEDO}, .id = 6, - .easyChatWords = {0xC0B, 0x123E, 0xC00, 0xA31, 0x1430, 0xC00}, + .easyChatWords = {EC_WORD_AHAHA, EC_WORD_DEFEATED, EC_WORD_EXCL, EC_WORD_IT_S, EC_WORD_NOTHING, EC_WORD_EXCL}, }, { .name = {_("カズサ"), _("KALI"), _("JODIE"), _("ILENIA"), _("KARO"), _("ELSA")}, .otId = 0x8D26, - .facilityClass = 0x14, + .facilityClass = FACILITY_CLASS_BEAUTY, .species = {SPECIES_NINETALES, SPECIES_ALAKAZAM, SPECIES_SCEPTILE, SPECIES_SALAMENCE, SPECIES_GOLDUCK, SPECIES_MAWILE, SPECIES_WEEZING, SPECIES_LANTURN, SPECIES_GARDEVOIR, SPECIES_MILOTIC}, .id = 7, - .easyChatWords = {0xA06, 0x620, 0xA1F, 0xA02, 0xC03, 0xFFFF}, + .easyChatWords = {EC_WORD_YOU_RE, EC_WORD_STRONG, EC_WORD_AREN_T, EC_WORD_YOU, EC_WORD_QUES, 0xFFFF}, }, { .name = {_("スミレ"), _("ANNIE"), _("ANNIE"), _("IMELDA"), _("INES"), _("ROSA")}, .otId = 0x800C, - .facilityClass = 0xD, + .facilityClass = FACILITY_CLASS_AROMA_LADY, .species = {SPECIES_SCEPTILE, SPECIES_VILEPLUME, SPECIES_BELLOSSOM, SPECIES_ROSELIA, SPECIES_CORSOLA, SPECIES_FLYGON, SPECIES_BRELOOM, SPECIES_MILOTIC, SPECIES_ALTARIA, SPECIES_CRADILY}, .id = 8, - .easyChatWords = {0x1E22, 0x433, 0x20E, 0xA02, 0x101E, 0xC00}, + .easyChatWords = {EC_WORD_WHAT, EC_WORD_TOUGH, EC_WORD_POKEMON, EC_WORD_YOU, EC_WORD_HAVE, EC_WORD_EXCL}, }, { .name = {_("アキノリ"), _("DILLEN"), _("RENE"), _("INDRO"), _("DETLEF"), _("PEDRO")}, .otId = 0x469f, - .facilityClass = 0, + .facilityClass = FACILITY_CLASS_HIKER, .species = {SPECIES_SKARMORY, SPECIES_GOLEM, SPECIES_BLAZIKEN, SPECIES_CAMERUPT, SPECIES_DONPHAN, SPECIES_MUK, SPECIES_SALAMENCE, SPECIES_TROPIUS, SPECIES_SOLROCK, SPECIES_RHYDON}, .id = 9, - .easyChatWords = {0xA3D, 0x1011, 0xE1E, 0x201C, 0xC04, 0xFFFF}, + .easyChatWords = {EC_WORD_WE, EC_WORD_WERE, EC_WORD_JUST, EC_WORD_SHREDDED, EC_WORD_ELLIPSIS, 0xFFFF}, }, { .name = {_("トウゾウ"), _("DALLAS"), _("BRUNO"), _("LEARCO"), _("ANSGAR"), _("MANOLO")}, .otId = 0x71FC, - .facilityClass = 0x2D, + .facilityClass = FACILITY_CLASS_FISHERMAN, .species = {SPECIES_SEAKING, SPECIES_STARMIE, SPECIES_GOLDUCK, SPECIES_TENTACRUEL, SPECIES_OCTILLERY, SPECIES_GOREBYSS, SPECIES_GLALIE, SPECIES_WAILORD, SPECIES_SHARPEDO, SPECIES_KINGDRA}, .id = 10, - .easyChatWords = {0xA05, 0x606, 0x160E, 0xA14, 0xC00, 0xFFFF}, + .easyChatWords = {EC_WORD_YOUR, EC_WORD_WIN, EC_WORD_ANGERS, EC_WORD_ME, EC_WORD_EXCL, 0xFFFF}, }, { .name = {_("セイヤ"), _("FRANK"), _("FRANK"), _("OLINDO"), _("FRANK"), _("MAURO")}, .otId = 0xA39E, - .facilityClass = 0x3A, + .facilityClass = FACILITY_CLASS_SAILOR, .species = {SPECIES_QUAGSIRE, SPECIES_STARMIE, SPECIES_PELIPPER, SPECIES_CRAWDAUNT, SPECIES_WAILORD, SPECIES_GYARADOS, SPECIES_SWAMPERT, SPECIES_LANTURN, SPECIES_WHISCASH, SPECIES_SHUCKLE}, .id = 11, - .easyChatWords = {0x280E, 0x103D, 0x240F, 0xA14, 0x1E23, 0x1024}, + .easyChatWords = {EC_WORD_LOSING, EC_WORD_DOESN_T, EC_MOVE(CUT), EC_WORD_ME, EC_WORD_DEEP, EC_WORD_OK_QUES}, }, { .name = {_("リュウジ"), _("LAMONT"), _("XAV"), _("ORFEO"), _("JÜRGEN"), _("JORGE")}, .otId = 0xE590, - .facilityClass = 0x19, + .facilityClass = FACILITY_CLASS_GUITARIST, .species = {SPECIES_ABSOL, SPECIES_CROBAT, SPECIES_EXPLOUD, SPECIES_MAGNETON, SPECIES_SHARPEDO, SPECIES_MANECTRIC, SPECIES_METAGROSS, SPECIES_ELECTRODE, SPECIES_NOSEPASS, SPECIES_WEEZING}, .id = 12, - .easyChatWords = {0x1020, 0x62E, 0x100B, 0x1E22, 0x1E0F, 0x100B}, + .easyChatWords = {EC_WORD_A, EC_WORD_LOSS, EC_WORD_IS, EC_WORD_WHAT, EC_WORD_THIS, EC_WORD_IS}, }, { .name = {_("カツアキ"), _("TYRESE"), _("ANDY"), _("PARIDE"), _("DAVID"), _("CHICHO")}, .otId = 0xD018, - .facilityClass = 10, + .facilityClass = FACILITY_CLASS_BLACK_BELT, .species = {SPECIES_BLAZIKEN, SPECIES_GOLEM, SPECIES_MACHAMP, SPECIES_RHYDON, SPECIES_HARIYAMA, SPECIES_AGGRON, SPECIES_MEDICHAM, SPECIES_ZANGOOSE, SPECIES_VIGOROTH, SPECIES_SLAKING}, .id = 13, - .easyChatWords = {0xA29, 0x63A, 0xE15, 0x1435, 0x1034, 0x61E}, + .easyChatWords = {EC_WORD_I_AM, EC_WORD_TOO_WEAK, EC_WORD_AND, EC_WORD_LOW, EC_WORD_OF, EC_WORD_POWER}, }, { .name = {_("トシミツ"), _("DANTE"), _("DANTE"), _("RAOUL"), _("LOTHAR"), _("PABLO")}, .otId = 0xBC75, - .facilityClass = 14, + .facilityClass = FACILITY_CLASS_RUIN_MANIAC, .species = {SPECIES_SCEPTILE, SPECIES_SANDSLASH, SPECIES_FLYGON, SPECIES_CLAYDOL, SPECIES_ARMALDO, SPECIES_CROBAT, SPECIES_CRADILY, SPECIES_SOLROCK, SPECIES_LUNATONE, SPECIES_GOLEM}, .id = 14, - .easyChatWords = {0xA01, 0x1017, 0x1243, 0x1E22, 0x100B, 0x280F}, + .easyChatWords = {EC_WORD_I, EC_WORD_DON_T, EC_WORD_UNDERSTAND, EC_WORD_WHAT, EC_WORD_IS, EC_WORD_HAPPENING}, }, { .name = {_("ローウェン"), _("ARTURO"), _("ARTURO"), _("ROMOLO"), _("BRIAN"), _("ARTURO")}, .otId = 0xFA02, - .facilityClass = 0x20, + .facilityClass = FACILITY_CLASS_GENTLEMAN, .species = {SPECIES_ABSOL, SPECIES_MIGHTYENA, SPECIES_ALAKAZAM, SPECIES_BANETTE, SPECIES_NINETALES, SPECIES_CLAYDOL, SPECIES_MUK, SPECIES_SALAMENCE, SPECIES_WALREIN, SPECIES_DUSCLOPS}, .id = 15, - .easyChatWords = {0x1E0F, 0x1404, 0x102F, 0x1006, 0x1020, 0xE03}, + .easyChatWords = {EC_WORD_THIS, EC_WORD_HAS, EC_WORD_TO, EC_WORD_BE, EC_WORD_A, EC_WORD_LIE}, }, }; -static const u8 *const gUnknown_08610EF0[][4] = -{ - {gText_082B7229, gText_082B731C, gText_082B735B, gText_082B7423}, - {gText_082B74C1, gText_082B756F, gText_082B75B2, gText_082B763F}, - {gText_082B76AC, gText_082B7772, gText_082B77CE, gText_082B7871}, - {gText_082B78D4, gText_082B7B1A, gText_082B7C13, gText_082B7D18}, - {gText_082B7DD4, gText_082B7EE5, gText_082B7F35, gText_082B7FE8}, - {gText_082B8087, gText_082B822B, gText_082B8286, gText_082B8356}, - {gText_082B83CE, gText_082B84FC, gText_082B8559, gText_082B8656}, - {gText_082B86EA, gText_082B87DA, gText_082B887C, gText_082B8957}, - {gText_082B89C6, gText_082B8ACF, gText_082B8B66, gText_082B8C20}, - {gText_082B8CAA, gText_082B8DD3, gText_082B8E24, gText_082B8ED5}, - {gText_082B8F45, gText_082B905F, gText_082B910E, gText_082B9204}, - {gText_082B929C, gText_082B9438, gText_082B9488, gText_082B9564}, - {gText_082B95D8, gText_082B9763, gText_082B97E5, gText_082B989A}, - {gText_082B992D, gText_082B9A84, gText_082B9AB9, gText_082B9B76}, - {gText_082B9BF2, gText_082B9D83, gText_082B9DF9, gText_082B9EAA}, - {gText_082B9F55, gText_082BA084, gText_082BA11D, gText_082BA1F3}, +// Sequence of 4 messages for first meeting with the apprentice +// First is the initial greeting and request to be taught +// Second is if the request is denied (which loops back, it's impossible to fully reject them) +// Third is accepting to teach them and asking which level mode to do +// Fourth is after a level mode is chosen for the apprentice +static const u8 *const sApprenticeFirstMeetingTexts[NUM_APPRENTICES][4] = +{ + {gText_ApprenticeIntro0, gText_ApprenticeRejectTeaching0, gText_ApprenticeWhichLevelMode0, gText_ApprenticeLevelModeThanks0}, + {gText_ApprenticeIntro1, gText_ApprenticeRejectTeaching1, gText_ApprenticeWhichLevelMode1, gText_ApprenticeLevelModeThanks1}, + {gText_ApprenticeIntro2, gText_ApprenticeRejectTeaching2, gText_ApprenticeWhichLevelMode2, gText_ApprenticeLevelModeThanks2}, + {gText_ApprenticeIntro3, gText_ApprenticeRejectTeaching3, gText_ApprenticeWhichLevelMode3, gText_ApprenticeLevelModeThanks3}, + {gText_ApprenticeIntro4, gText_ApprenticeRejectTeaching4, gText_ApprenticeWhichLevelMode4, gText_ApprenticeLevelModeThanks4}, + {gText_ApprenticeIntro5, gText_ApprenticeRejectTeaching5, gText_ApprenticeWhichLevelMode5, gText_ApprenticeLevelModeThanks5}, + {gText_ApprenticeIntro6, gText_ApprenticeRejectTeaching6, gText_ApprenticeWhichLevelMode6, gText_ApprenticeLevelModeThanks6}, + {gText_ApprenticeIntro7, gText_ApprenticeRejectTeaching7, gText_ApprenticeWhichLevelMode7, gText_ApprenticeLevelModeThanks7}, + {gText_ApprenticeIntro8, gText_ApprenticeRejectTeaching8, gText_ApprenticeWhichLevelMode8, gText_ApprenticeLevelModeThanks8}, + {gText_ApprenticeIntro9, gText_ApprenticeRejectTeaching9, gText_ApprenticeWhichLevelMode9, gText_ApprenticeLevelModeThanks9}, + {gText_ApprenticeIntro10, gText_ApprenticeRejectTeaching10, gText_ApprenticeWhichLevelMode10, gText_ApprenticeLevelModeThanks10}, + {gText_ApprenticeIntro11, gText_ApprenticeRejectTeaching11, gText_ApprenticeWhichLevelMode11, gText_ApprenticeLevelModeThanks11}, + {gText_ApprenticeIntro12, gText_ApprenticeRejectTeaching12, gText_ApprenticeWhichLevelMode12, gText_ApprenticeLevelModeThanks12}, + {gText_ApprenticeIntro13, gText_ApprenticeRejectTeaching13, gText_ApprenticeWhichLevelMode13, gText_ApprenticeLevelModeThanks13}, + {gText_ApprenticeIntro14, gText_ApprenticeRejectTeaching14, gText_ApprenticeWhichLevelMode14, gText_ApprenticeLevelModeThanks14}, + {gText_ApprenticeIntro15, gText_ApprenticeRejectTeaching15, gText_ApprenticeWhichLevelMode15, gText_ApprenticeLevelModeThanks15}, }; -static const u8 *const gUnknown_08610FF0[][2] = -{ - {gText_082BE50D, gText_082BE5F5}, - {gText_082BE679, gText_082BE71E}, - {gText_082BE762, gText_082BE7F8}, - {gText_082BE850, gText_082BE99C}, - {gText_082BEA1B, gText_082BEAE9}, - {gText_082BEB72, gText_082BEC8E}, - {gText_082BED16, gText_082BEE29}, - {gText_082BEEB4, gText_082BEFE2}, - {gText_082BF04E, gText_082BF11D}, - {gText_082BF1A8, gText_082BF268}, - {gText_082BF2D1, gText_082BF3CF}, - {gText_082BF46A, gText_082BF551}, - {gText_082BF5C3, gText_082BF6E5}, - {gText_082BF773, gText_082BF869}, - {gText_082BF8DD, gText_082BF9BA}, - {gText_082BFA5A, gText_082BFB4E}, +static const u8 *const sApprenticeWhichMonTexts[NUM_APPRENTICES][2] = +{ + {gText_ApprenticeWhichMon0, gText_ApprenticeMonThanks0}, + {gText_ApprenticeWhichMon1, gText_ApprenticeMonThanks1}, + {gText_ApprenticeWhichMon2, gText_ApprenticeMonThanks2}, + {gText_ApprenticeWhichMon3, gText_ApprenticeMonThanks3}, + {gText_ApprenticeWhichMon4, gText_ApprenticeMonThanks4}, + {gText_ApprenticeWhichMon5, gText_ApprenticeMonThanks5}, + {gText_ApprenticeWhichMon6, gText_ApprenticeMonThanks6}, + {gText_ApprenticeWhichMon7, gText_ApprenticeMonThanks7}, + {gText_ApprenticeWhichMon8, gText_ApprenticeMonThanks8}, + {gText_ApprenticeWhichMon9, gText_ApprenticeMonThanks9}, + {gText_ApprenticeWhichMon10, gText_ApprenticeMonThanks10}, + {gText_ApprenticeWhichMon11, gText_ApprenticeMonThanks11}, + {gText_ApprenticeWhichMon12, gText_ApprenticeMonThanks12}, + {gText_ApprenticeWhichMon13, gText_ApprenticeMonThanks13}, + {gText_ApprenticeWhichMon14, gText_ApprenticeMonThanks14}, + {gText_ApprenticeWhichMon15, gText_ApprenticeMonThanks15}, }; -static const u8 *const gUnknown_08611070[][5] = -{ - {gText_082BA2A3, gText_082BA34E, gText_082BA380, gText_082BA3D2, gText_082BA448}, - {gText_082BA4D3, gText_082BA58C, gText_082BA5BF, gText_082BA5F3, gText_082BA635}, - {gText_082BA6E6, gText_082BA742, gText_082BA770, gText_082BA78F, gText_082BA7D8}, - {gText_082BA867, gText_082BA96B, gText_082BA9B7, gText_082BAA1B, gText_082BAA81}, - {gText_082BAB22, gText_082BAC43, gText_082BAC78, gText_082BAD17, gText_082BADB6}, - {gText_082BAE36, gText_082BAF4E, gText_082BAF8F, gText_082BAFDB, gText_082BB05F}, - {gText_082BB0D4, gText_082BB18C, gText_082BB1CE, gText_082BB242, gText_082BB2D9}, - {gText_082BB370, gText_082BB4C3, gText_082BB4FB, gText_082BB575, gText_082BB5E1}, - {gText_082BB656, gText_082BB6E5, gText_082BB72C, gText_082BB7A2, gText_082BB84A}, - {gText_082BB8CD, gText_082BB970, gText_082BB9AE, gText_082BBA05, gText_082BBA6C}, - {gText_082BBB01, gText_082BBC1C, gText_082BBC4B, gText_082BBCF6, gText_082BBD90}, - {gText_082BBE0B, gText_082BBEE5, gText_082BBF25, gText_082BBFA4, gText_082BC024}, - {gText_082BC0C8, gText_082BC213, gText_082BC247, gText_082BC2DD, gText_082BC373}, - {gText_082BC40E, gText_082BC514, gText_082BC555, gText_082BC5CE, gText_082BC666}, - {gText_082BC714, gText_082BC808, gText_082BC84D, gText_082BC8EA, gText_082BC984}, - {gText_082BCA4D, gText_082BCB75, gText_082BCBA6, gText_082BCBFC, gText_082BCCA4}, +// Sequence of 5 messages for suggesting a held item to the apprentice +// First is the initial request for what held item to use +// Second is a confirmation that they should hold nothing +// TODO +static const u8 *const sApprenticeHeldItemTexts[NUM_APPRENTICES][5] = +{ + {gText_ApprenticeWhatHeldItem0, gText_ApprenticeHoldNothing0, gText_ApprenticeThanksHeldItem0, gText_ApprenticeThanksHaveHeldItem0, gText_ApprenticeItemAlreadyRecommended0}, + {gText_ApprenticeWhatHeldItem1, gText_ApprenticeHoldNothing1, gText_ApprenticeThanksHeldItem1, gText_ApprenticeThanksHaveHeldItem1, gText_ApprenticeItemAlreadyRecommended1}, + {gText_ApprenticeWhatHeldItem2, gText_ApprenticeHoldNothing2, gText_ApprenticeThanksHeldItem2, gText_ApprenticeThanksHaveHeldItem2, gText_ApprenticeItemAlreadyRecommended2}, + {gText_ApprenticeWhatHeldItem3, gText_ApprenticeHoldNothing3, gText_ApprenticeThanksHeldItem3, gText_ApprenticeThanksHaveHeldItem3, gText_ApprenticeItemAlreadyRecommended3}, + {gText_ApprenticeWhatHeldItem4, gText_ApprenticeHoldNothing4, gText_ApprenticeThanksHeldItem4, gText_ApprenticeThanksHaveHeldItem4, gText_ApprenticeItemAlreadyRecommended4}, + {gText_ApprenticeWhatHeldItem5, gText_ApprenticeHoldNothing5, gText_ApprenticeThanksHeldItem5, gText_ApprenticeThanksHaveHeldItem5, gText_ApprenticeItemAlreadyRecommended5}, + {gText_ApprenticeWhatHeldItem6, gText_ApprenticeHoldNothing6, gText_ApprenticeThanksHeldItem6, gText_ApprenticeThanksHaveHeldItem6, gText_ApprenticeItemAlreadyRecommended6}, + {gText_ApprenticeWhatHeldItem7, gText_ApprenticeHoldNothing7, gText_ApprenticeThanksHeldItem7, gText_ApprenticeThanksHaveHeldItem7, gText_ApprenticeItemAlreadyRecommended7}, + {gText_ApprenticeWhatHeldItem8, gText_ApprenticeHoldNothing8, gText_ApprenticeThanksHeldItem8, gText_ApprenticeThanksHaveHeldItem8, gText_ApprenticeItemAlreadyRecommended8}, + {gText_ApprenticeWhatHeldItem9, gText_ApprenticeHoldNothing9, gText_ApprenticeThanksHeldItem9, gText_ApprenticeThanksHaveHeldItem9, gText_ApprenticeItemAlreadyRecommended9}, + {gText_ApprenticeWhatHeldItem10, gText_ApprenticeHoldNothing10, gText_ApprenticeThanksHeldItem10, gText_ApprenticeThanksHaveHeldItem10, gText_ApprenticeItemAlreadyRecommended10}, + {gText_ApprenticeWhatHeldItem11, gText_ApprenticeHoldNothing11, gText_ApprenticeThanksHeldItem11, gText_ApprenticeThanksHaveHeldItem11, gText_ApprenticeItemAlreadyRecommended11}, + {gText_ApprenticeWhatHeldItem12, gText_ApprenticeHoldNothing12, gText_ApprenticeThanksHeldItem12, gText_ApprenticeThanksHaveHeldItem12, gText_ApprenticeItemAlreadyRecommended12}, + {gText_ApprenticeWhatHeldItem13, gText_ApprenticeHoldNothing13, gText_ApprenticeThanksHeldItem13, gText_ApprenticeThanksHaveHeldItem13, gText_ApprenticeItemAlreadyRecommended13}, + {gText_ApprenticeWhatHeldItem14, gText_ApprenticeHoldNothing14, gText_ApprenticeThanksHeldItem14, gText_ApprenticeThanksHaveHeldItem14, gText_ApprenticeItemAlreadyRecommended14}, + {gText_ApprenticeWhatHeldItem15, gText_ApprenticeHoldNothing15, gText_ApprenticeThanksHeldItem15, gText_ApprenticeThanksHaveHeldItem15, gText_ApprenticeItemAlreadyRecommended15}, }; -static const u8 *const gUnknown_086111B0[][2] = -{ - {gText_082BFBF2, gText_082BFCAE}, - {gText_082BFD26, gText_082BFDB1}, - {gText_082BFE24, gText_082BFEAD}, - {gText_082BFF0A, gText_082C0032}, - {gText_082C0090, gText_082C016E}, - {gText_082C01F7, gText_082C034C}, - {gText_082C03CA, gText_082C046E}, - {gText_082C04F9, gText_082C0598}, - {gText_082C0602, gText_082C06D8}, - {gText_082C074A, gText_082C0809}, - {gText_082C086E, gText_082C0982}, - {gText_082C0A1D, gText_082C0AFD}, - {gText_082C0B6F, gText_082C0C7D}, - {gText_082C0D0B, gText_082C0DFE}, - {gText_082C0E71, gText_082C0F6D}, - {gText_082C1003, gText_082C1122}, +static const u8 *const sApprenticeWhichMoveTexts[NUM_APPRENTICES][2] = +{ + {gText_ApprenticeWhichMove0, gText_ApprenticeMoveThanks0}, + {gText_ApprenticeWhichMove1, gText_ApprenticeMoveThanks1}, + {gText_ApprenticeWhichMove2, gText_ApprenticeMoveThanks2}, + {gText_ApprenticeWhichMove3, gText_ApprenticeMoveThanks3}, + {gText_ApprenticeWhichMove4, gText_ApprenticeMoveThanks4}, + {gText_ApprenticeWhichMove5, gText_ApprenticeMoveThanks5}, + {gText_ApprenticeWhichMove6, gText_ApprenticeMoveThanks6}, + {gText_ApprenticeWhichMove7, gText_ApprenticeMoveThanks7}, + {gText_ApprenticeWhichMove8, gText_ApprenticeMoveThanks8}, + {gText_ApprenticeWhichMove9, gText_ApprenticeMoveThanks9}, + {gText_ApprenticeWhichMove10, gText_ApprenticeMoveThanks10}, + {gText_ApprenticeWhichMove11, gText_ApprenticeMoveThanks11}, + {gText_ApprenticeWhichMove12, gText_ApprenticeMoveThanks12}, + {gText_ApprenticeWhichMove13, gText_ApprenticeMoveThanks13}, + {gText_ApprenticeWhichMove14, gText_ApprenticeMoveThanks14}, + {gText_ApprenticeWhichMove15, gText_ApprenticeMoveThanks15}, }; -static const u8 *const gUnknown_08611230[][2] = -{ - {gText_082BCD68, gText_082BCE64}, - {gText_082BCEF2, gText_082BCF61}, - {gText_082BCFA1, gText_082BD03C}, - {gText_082BD06D, gText_082BD18A}, - {gText_082BD222, gText_082BD325}, - {gText_082BD3B1, gText_082BD493}, - {gText_082BD51C, gText_082BD609}, - {gText_082BD697, gText_082BD797}, - {gText_082BD806, gText_082BD8F5}, - {gText_082BD9BE, gText_082BDAE1}, - {gText_082BDB4E, gText_082BDC6B}, - {gText_082BDD0D, gText_082BDDEC}, - {gText_082BDE68, gText_082BDF4D}, - {gText_082BDFD8, gText_082BE0FD}, - {gText_082BE189, gText_082BE2A5}, - {gText_082BE33E, gText_082BE46C}, +static const u8 *const sApprenticeWhichMonFirstTexts[NUM_APPRENTICES][2] = +{ + {gText_ApprenticeWhichMonFirst0, gText_ApprenticeMonFirstThanks0}, + {gText_ApprenticeWhichMonFirst1, gText_ApprenticeMonFirstThanks1}, + {gText_ApprenticeWhichMonFirst2, gText_ApprenticeMonFirstThanks2}, + {gText_ApprenticeWhichMonFirst3, gText_ApprenticeMonFirstThanks3}, + {gText_ApprenticeWhichMonFirst4, gText_ApprenticeMonFirstThanks4}, + {gText_ApprenticeWhichMonFirst5, gText_ApprenticeMonFirstThanks5}, + {gText_ApprenticeWhichMonFirst6, gText_ApprenticeMonFirstThanks6}, + {gText_ApprenticeWhichMonFirst7, gText_ApprenticeMonFirstThanks7}, + {gText_ApprenticeWhichMonFirst8, gText_ApprenticeMonFirstThanks8}, + {gText_ApprenticeWhichMonFirst9, gText_ApprenticeMonFirstThanks9}, + {gText_ApprenticeWhichMonFirst10, gText_ApprenticeMonFirstThanks10}, + {gText_ApprenticeWhichMonFirst11, gText_ApprenticeMonFirstThanks11}, + {gText_ApprenticeWhichMonFirst12, gText_ApprenticeMonFirstThanks12}, + {gText_ApprenticeWhichMonFirst13, gText_ApprenticeMonFirstThanks13}, + {gText_ApprenticeWhichMonFirst14, gText_ApprenticeMonFirstThanks14}, + {gText_ApprenticeWhichMonFirst15, gText_ApprenticeMonFirstThanks15}, }; -static const u8 *const gUnknown_086112B0[][2] = -{ - {gText_082C11D1, gText_082C12D5}, - {gText_082C13AB, gText_082C1444}, - {gText_082C1501, gText_082C15B6}, - {gText_082C165E, gText_082C174F}, - {gText_082C1862, gText_082C19A0}, - {gText_082C1A76, gText_082C1C16}, - {gText_082C1CF5, gText_082C1DC1}, - {gText_082C1EDC, gText_082C1FEC}, - {gText_082C20D1, gText_082C21FF}, - {gText_082C231C, gText_082C2407}, - {gText_082C24B5, gText_082C25B1}, - {gText_082C2707, gText_082C27D4}, - {gText_082C28D6, gText_082C2A0B}, - {gText_082C2B50, gText_082C2C77}, - {gText_082C2D67, gText_082C2E41}, - {gText_082C2EF5, gText_082C3023}, +static const u8 *const sApprenticePickWinSpeechTexts[NUM_APPRENTICES][2] = +{ + {gText_ApprenticePickWinSpeech0, gText_ApprenticeWinSpeechThanks0}, + {gText_ApprenticePickWinSpeech1, gText_ApprenticeWinSpeechThanks1}, + {gText_ApprenticePickWinSpeech2, gText_ApprenticeWinSpeechThanks2}, + {gText_ApprenticePickWinSpeech3, gText_ApprenticeWinSpeechThanks3}, + {gText_ApprenticePickWinSpeech4, gText_ApprenticeWinSpeechThanks4}, + {gText_ApprenticePickWinSpeech5, gText_ApprenticeWinSpeechThanks5}, + {gText_ApprenticePickWinSpeech6, gText_ApprenticeWinSpeechThanks6}, + {gText_ApprenticePickWinSpeech7, gText_ApprenticeWinSpeechThanks7}, + {gText_ApprenticePickWinSpeech8, gText_ApprenticeWinSpeechThanks8}, + {gText_ApprenticePickWinSpeech9, gText_ApprenticeWinSpeechThanks9}, + {gText_ApprenticePickWinSpeech10, gText_ApprenticeWinSpeechThanks10}, + {gText_ApprenticePickWinSpeech11, gText_ApprenticeWinSpeechThanks11}, + {gText_ApprenticePickWinSpeech12, gText_ApprenticeWinSpeechThanks12}, + {gText_ApprenticePickWinSpeech13, gText_ApprenticeWinSpeechThanks13}, + {gText_ApprenticePickWinSpeech14, gText_ApprenticeWinSpeechThanks14}, + {gText_ApprenticePickWinSpeech15, gText_ApprenticeWinSpeechThanks15}, }; -static const u8 *const gUnknown_08611330[] = -{ - gText_082B6EA5, - gText_082B6EEC, - gText_082B6F16, - gText_082B6F4C, - gText_082B6F92, - gText_082B6FC9, - gText_082B700C, - gText_082B703A, - gText_082B706A, - gText_082B709C, - gText_082B70CC, - gText_082B710A, - gText_082B714D, - gText_082B7185, - gText_082B71C1, - gText_082B71F9, +static const u8 *const sApprenticeChallengeTexts[NUM_APPRENTICES] = +{ + gText_ApprenticeChallenge0, + gText_ApprenticeChallenge1, + gText_ApprenticeChallenge2, + gText_ApprenticeChallenge3, + gText_ApprenticeChallenge4, + gText_ApprenticeChallenge5, + gText_ApprenticeChallenge6, + gText_ApprenticeChallenge7, + gText_ApprenticeChallenge8, + gText_ApprenticeChallenge9, + gText_ApprenticeChallenge10, + gText_ApprenticeChallenge11, + gText_ApprenticeChallenge12, + gText_ApprenticeChallenge13, + gText_ApprenticeChallenge14, + gText_ApprenticeChallenge15, }; static const bool8 gUnknown_08611370[MOVES_COUNT] = @@ -1018,56 +1030,55 @@ static const u8 gUnknown_086114D3[] = {0x01, 0x01, 0x01, 0x02, 0x02, 0x02, 0x02, static void (* const sApprenticeFunctions[])(void) = { - Script_IsPlayersApprenticeActive, - Script_SetPlayersApprenticeLvlMode, - sub_81A0978, - sub_819FC60, - sub_81A0984, - sub_81A0990, - sub_81A09D0, - Script_CreateApprenticeMenu, - Script_PrintMessage, - Script_ResetPlayerApprentice, - sub_81A1638, - sub_81A0CC0, - sub_81A09B4, - sub_81A0D40, - sub_81A0DD4, - sub_81A0FE4, - sub_81A0FFC, - sub_81A0D80, - sub_81A11F8, - sub_81A1218, - sub_81A1224, - sub_81A1438, - sub_81A150C, - Script_SetPlayerApprenticeTrainerGfxId, - sub_81A1644, - sub_81A1370, + [APPRENTICE_FUNC_0] = Script_GivenApprenticeLvlMode, + [APPRENTICE_FUNC_1] = Script_SetApprenticeLvlMode, + [APPRENTICE_FUNC_2] = sub_81A0978, + [APPRENTICE_FUNC_3] = sub_819FC60, + [APPRENTICE_FUNC_4] = sub_81A0984, + [APPRENTICE_FUNC_5] = sub_81A0990, + [APPRENTICE_FUNC_6] = sub_81A09D0, + [APPRENTICE_FUNC_MENU] = Script_CreateApprenticeMenu, + [APPRENTICE_FUNC_PRINT_MSG] = Script_PrintApprenticeMessage, + [APPRENTICE_FUNC_9] = Script_ResetPlayerApprentice, + [APPRENTICE_FUNC_SET_TRUE_1] = SetVar0x8004True1, + [APPRENTICE_FUNC_11] = sub_81A0CC0, + [APPRENTICE_FUNC_12] = sub_81A09B4, + [APPRENTICE_FUNC_13] = sub_81A0D40, + [APPRENTICE_FUNC_14] = sub_81A0DD4, + [APPRENTICE_FUNC_15] = sub_81A0FE4, + [APPRENTICE_FUNC_16] = ApprenticeBufferString, + [APPRENTICE_FUNC_17] = sub_81A0D80, + [APPRENTICE_FUNC_18] = sub_81A11F8, + [APPRENTICE_FUNC_19] = sub_81A1218, + [APPRENTICE_FUNC_20] = sub_81A1224, + [APPRENTICE_FUNC_21] = sub_81A1438, + [APPRENTICE_FUNC_22] = sub_81A150C, + [APPRENTICE_FUNC_23] = Script_SetPlayerApprenticeTrainerGfxId, + [APPRENTICE_FUNC_SHOULD_LEAVE] = GetShouldApprenticeLeave, + [APPRENTICE_FUNC_25] = sub_81A1370, }; static const u8 gUnknown_08611548[8] = {0x00, 0x01, 0x02, 0x03, 0x06, 0x07, 0x08, 0x09}; // text -extern const u8 gText_Give[]; -extern const u8 gText_NoNeed[]; +/* extern const u8 gText_Yes[]; -extern const u8 gText_No[]; +extern const u8 gText_No[];*/ void CopyFriendsApprenticeChallengeText(u8 saveblockApprenticeId) { u8 i, var; - const u8 *str; + const u8 *Intro; var = gSaveBlock2Ptr->apprentices[saveblockApprenticeId].number; - for (i = 0; var != 0 && i < 4; var /= 10, i++) + for (i = 0; var != 0 && i < APPRENTICE_COUNT; var /= 10, i++) ; StringCopy7(gStringVar1, gSaveBlock2Ptr->apprentices[saveblockApprenticeId].playerName); ConvertInternationalString(gStringVar1, gSaveBlock2Ptr->apprentices[saveblockApprenticeId].language); ConvertIntToDecimalStringN(gStringVar2, gSaveBlock2Ptr->apprentices[saveblockApprenticeId].number, STR_CONV_MODE_RIGHT_ALIGN, i); - str = gUnknown_08611330[gSaveBlock2Ptr->apprentices[saveblockApprenticeId].id]; - StringExpandPlaceholders(gStringVar4, str); + Intro = sApprenticeChallengeTexts[gSaveBlock2Ptr->apprentices[saveblockApprenticeId].id]; + StringExpandPlaceholders(gStringVar4, Intro); } void Apprentice_EnableBothScriptContexts(void) @@ -1079,11 +1090,11 @@ void ResetApprenticeStruct(struct Apprentice *apprentice) { u8 i; - for (i = 0; i < 6; i++) + for (i = 0; i < ARRAY_COUNT(apprentice->easyChatWords); i++) apprentice->easyChatWords[i] = 0xFFFF; apprentice->playerName[0] = EOS; - apprentice->id = 16; + apprentice->id = NUM_APPRENTICES; } void ResetAllApprenticeData(void) @@ -1091,11 +1102,11 @@ void ResetAllApprenticeData(void) u8 i, j; PLAYER_APPRENTICE.field_B2_1 = 0; - for (i = 0; i < 4; i++) + for (i = 0; i < APPRENTICE_COUNT; i++) { - for (j = 0; j < 6; j++) + for (j = 0; j < ARRAY_COUNT(gSaveBlock2Ptr->apprentices[i].easyChatWords); j++) gSaveBlock2Ptr->apprentices[i].easyChatWords[j] = 0xFFFF; - gSaveBlock2Ptr->apprentices[i].id = 16; + gSaveBlock2Ptr->apprentices[i].id = NUM_APPRENTICES; gSaveBlock2Ptr->apprentices[i].playerName[0] = EOS; gSaveBlock2Ptr->apprentices[i].lvlMode = 0; gSaveBlock2Ptr->apprentices[i].number = 0; @@ -1109,9 +1120,9 @@ void ResetAllApprenticeData(void) Script_ResetPlayerApprentice(); } -static bool8 IsPlayersApprenticeActive(void) +static bool8 GivenPlayersApprenticeLvlMode(void) { - return (PLAYER_APPRENTICE.activeLvlMode != 0); + return (PLAYER_APPRENTICE.lvlMode != 0); } static void sub_819FBC8(void) @@ -1127,14 +1138,14 @@ static void sub_819FBC8(void) { do { - PLAYER_APPRENTICE.id = Random() % 16; + PLAYER_APPRENTICE.id = Random() % (NUM_APPRENTICES); } while (PLAYER_APPRENTICE.id == gSaveBlock2Ptr->apprentices[0].id); } } static void SetPlayersApprenticeLvlMode(u8 mode) { - PLAYER_APPRENTICE.activeLvlMode = mode; + PLAYER_APPRENTICE.lvlMode = mode; } static void sub_819FC60(void) @@ -1153,34 +1164,34 @@ static void sub_819FC60(void) SWAP(array[var1], array[var2], temp); } - for (i = 0; i < 3; i++) + for (i = 0; i < MULTI_PARTY_SIZE; i++) PLAYER_APPRENTICE.monIds[i] = ((array[i * 2] & 0xF) << 4) | ((array[i * 2 + 1]) & 0xF); } static u8 sub_819FCF8(u8 val, u8 *arg1, u8 *arg2) { u8 i, count; - u8 ret = 0; + u8 monId = 0; if (val == 2) { do { - ret = Random() % 3; + monId = Random() % 3; for (count = 0, i = 0; i < 5; i++) { - if (gUnknown_030062EC->unk2[ret][i] != 0) + if (gUnknown_030062EC->unk2[monId][i] != MOVE_NONE) count++; } } while (count > 3); } else if (val == 1) { - ret = arg1[*arg2]; + monId = arg1[*arg2]; (*arg2)++; } - return ret; + return monId; } static void sub_819FD64(void) @@ -1202,7 +1213,7 @@ static void sub_819FD64(void) SWAP(sp_C[rand1], sp_C[rand2], temp); } - for (i = 0; i < 10; i++) + for (i = 0; i < ARRAY_COUNT(sp_0); i++) sp_0[i] = gUnknown_086114D3[i]; for (i = 0; i < 50; i++) { @@ -1262,7 +1273,7 @@ static void sub_819FD64(void) speciesArrId = ((speciesArrId) >> (a0 << 2)) & 0xF; \ } -static u16 sub_819FF98(u8 arg0) +static u16 sub_819FF98(u8 monId) { u8 i, j; u8 id; @@ -1274,9 +1285,9 @@ static u16 sub_819FF98(u8 arg0) bool32 valid; u8 level; - if (arg0 < 3) + if (monId < MULTI_PARTY_SIZE) { - APPRENTICE_SPECIES_ID(id, arg0); + APPRENTICE_SPECIES_ID(id, monId); } else { @@ -1286,14 +1297,14 @@ static u16 sub_819FF98(u8 arg0) species = gApprentices[PLAYER_APPRENTICE.id].species[id]; learnset = gLevelUpLearnsets[species]; j = 0; - if (PLAYER_APPRENTICE.activeLvlMode == 1) + if (PLAYER_APPRENTICE.lvlMode == APPRENTICE_LVL_MODE_50) level = 50; - else + else // == APPRENTICE_LVL_MODE_OPEN level = 60; - for (j = 0; learnset[j] != 0xFFFF; j++) + for (j = 0; learnset[j] != LEVEL_UP_END; j++) { - if ((learnset[j] & 0xFE00) > (level << 9)) + if ((learnset[j] & LEVEL_UP_MOVE_LV) > (level << 9)) break; } @@ -1322,7 +1333,7 @@ static u16 sub_819FF98(u8 arg0) for (; j < knownMovesCount; j++) { - if ((learnset[j] & 0x1FF) == moveId) + if ((learnset[j] & LEVEL_UP_MOVE_ID) == moveId) { valid = FALSE; break; @@ -1342,11 +1353,11 @@ static u16 sub_819FF98(u8 arg0) do { u8 learnsetId = Random() % (knownMovesCount - MAX_MON_MOVES); - moveId = learnset[learnsetId] & 0x1FF; + moveId = learnset[learnsetId] & LEVEL_UP_MOVE_ID; valid = TRUE; for (j = knownMovesCount - MAX_MON_MOVES; j < knownMovesCount; j++) { - if ((learnset[j] & 0x1FF) == moveId) + if ((learnset[j] & LEVEL_UP_MOVE_ID) == moveId) { valid = FALSE; break; @@ -1356,7 +1367,7 @@ static u16 sub_819FF98(u8 arg0) } } - if (sub_81A0194(arg0, moveId)) + if (sub_81A0194(monId, moveId)) { if (gUnknown_08611370[moveId]) break; @@ -1368,17 +1379,17 @@ static u16 sub_819FF98(u8 arg0) return moveId; } -static bool8 sub_81A0194(u8 arg0, u16 moveId) +static bool8 sub_81A0194(u8 monId, u16 moveId) { u8 i; for (i = 0; i < 5; i++) { - if (gUnknown_030062EC->unk2[arg0][i] == moveId) + if (gUnknown_030062EC->unk2[monId][i] == moveId) return FALSE; } - gUnknown_030062EC->unk2[arg0][gUnknown_030062EC->unk0] = moveId; + gUnknown_030062EC->unk2[monId][gUnknown_030062EC->unk0] = moveId; return TRUE; } @@ -1388,15 +1399,15 @@ static void GetLatestLearnedMoves(u16 species, u16 *moves) u8 level, knownMovesCount; const u16 *learnset; - if (PLAYER_APPRENTICE.activeLvlMode == 1) + if (PLAYER_APPRENTICE.lvlMode == APPRENTICE_LVL_MODE_50) level = 50; - else + else // == APPRENTICE_LVL_MODE_OPEN level = 60; learnset = gLevelUpLearnsets[species]; - for (i = 0; learnset[i] != 0xFFFF; i++) + for (i = 0; learnset[i] != LEVEL_UP_END; i++) { - if ((learnset[i] & 0xFE00) > (level << 9)) + if ((learnset[i] & LEVEL_UP_MOVE_LV) > (level << 9)) break; } @@ -1405,7 +1416,7 @@ static void GetLatestLearnedMoves(u16 species, u16 *moves) knownMovesCount = MAX_MON_MOVES; for (j = 0; j < knownMovesCount; j++) - moves[j] = learnset[(i - 1) - j] & 0x1FF; + moves[j] = learnset[(i - 1) - j] & LEVEL_UP_MOVE_ID; } static u16 sub_81A0284(u8 arg0, u8 speciesTableId, u8 arg2) @@ -1440,11 +1451,11 @@ static u16 sub_81A0284(u8 arg0, u8 speciesTableId, u8 arg2) static void sub_81A0390(u8 arg0) { - struct ApprenticeMon *apprenticeMons[3]; + struct ApprenticeMon *apprenticeMons[MULTI_PARTY_SIZE]; u8 i, j; u32 speciesTableId; - for (i = 0; i < 3; i++) + for (i = 0; i < MULTI_PARTY_SIZE; i++) { gSaveBlock2Ptr->apprentices[0].party[i].species = 0; gSaveBlock2Ptr->apprentices[0].party[i].item = 0; @@ -1453,13 +1464,13 @@ static void sub_81A0390(u8 arg0) } j = PLAYER_APPRENTICE.field_B1_2; - for (i = 0; i < 3; i++) + for (i = 0; i < MULTI_PARTY_SIZE; i++) { apprenticeMons[j] = &gSaveBlock2Ptr->apprentices[0].party[i]; - j = (j + 1) % 3; + j = (j + 1) % (MULTI_PARTY_SIZE); } - for (i = 0; i < 3; i++) + for (i = 0; i < MULTI_PARTY_SIZE; i++) { APPRENTICE_SPECIES_ID(speciesTableId, i); apprenticeMons[i]->species = gApprentices[PLAYER_APPRENTICE.id].species[speciesTableId]; @@ -1486,7 +1497,7 @@ static void sub_81A0390(u8 arg0) } } -static void CreateMenuWithAnswers(u8 arg0) +static void CreateApprenticeMenu(u8 arg0) { u8 i; u8 windowId; @@ -1509,7 +1520,7 @@ static void CreateMenuWithAnswers(u8 arg0) count = 3; left = 0x12; top = 6; - for (i = 0; i < 3; i++) + for (i = 0; i < MULTI_PARTY_SIZE; i++) { u16 species; u32 speciesTableId; @@ -1650,12 +1661,12 @@ static void Script_ResetPlayerApprentice(void) u8 i; sub_819FBC8(); - PLAYER_APPRENTICE.activeLvlMode = 0; + PLAYER_APPRENTICE.lvlMode = 0; PLAYER_APPRENTICE.field_B1_1 = 0; PLAYER_APPRENTICE.field_B1_2 = 0; PLAYER_APPRENTICE.field_B2_0 = 0; - for (i = 0; i < 3; i++) + for (i = 0; i < MULTI_PARTY_SIZE; i++) PLAYER_APPRENTICE.monIds[i] = 0; for (i = 0; i < 9; i++) @@ -1668,15 +1679,17 @@ static void Script_ResetPlayerApprentice(void) } } -static void Script_IsPlayersApprenticeActive(void) +static void Script_GivenApprenticeLvlMode(void) { - if (!IsPlayersApprenticeActive()) + if (!GivenPlayersApprenticeLvlMode()) gSpecialVar_Result = FALSE; else gSpecialVar_Result = TRUE; } -static void Script_SetPlayersApprenticeLvlMode(void) +// VAR_0x8005 is 1 + the selection value from the multichoice APPRENTICE_ASK_WHICH_LEVEL +// i.e. APPRENTICE_LVL_MODE_50 or APPRENTICE_LVL_MODE_OPEN +static void Script_SetApprenticeLvlMode(void) { SetPlayersApprenticeLvlMode(gSpecialVar_0x8005); } @@ -1722,7 +1735,7 @@ static void sub_81A09D0(void) static void Script_CreateApprenticeMenu(void) { - CreateMenuWithAnswers(gSpecialVar_0x8005); + CreateApprenticeMenu(gSpecialVar_0x8005); } static void Task_WaitForPrintingMessage(u8 taskId) @@ -1737,77 +1750,77 @@ static void Task_WaitForPrintingMessage(u8 taskId) } } -static void PrintMessage(void) +static void PrintApprenticeMessage(void) { const u8 *string; if (gSpecialVar_0x8006 == 6) { - string = gUnknown_08610FF0[PLAYER_APPRENTICE.id][0]; + string = sApprenticeWhichMonTexts[PLAYER_APPRENTICE.id][0]; } else if (gSpecialVar_0x8006 == 7) { - string = gUnknown_08610FF0[PLAYER_APPRENTICE.id][1]; + string = sApprenticeWhichMonTexts[PLAYER_APPRENTICE.id][1]; } else if (gSpecialVar_0x8006 == 8) { - string = gUnknown_086111B0[PLAYER_APPRENTICE.id][0]; + string = sApprenticeWhichMoveTexts[PLAYER_APPRENTICE.id][0]; } else if (gSpecialVar_0x8006 == 9) { - string = gUnknown_086111B0[PLAYER_APPRENTICE.id][1]; + string = sApprenticeWhichMoveTexts[PLAYER_APPRENTICE.id][1]; } else if (gSpecialVar_0x8006 == 4) { - string = gUnknown_08611230[PLAYER_APPRENTICE.id][0]; + string = sApprenticeWhichMonFirstTexts[PLAYER_APPRENTICE.id][0]; } else if (gSpecialVar_0x8006 == 5) { - string = gUnknown_08611230[PLAYER_APPRENTICE.id][1]; + string = sApprenticeWhichMonFirstTexts[PLAYER_APPRENTICE.id][1]; } else if (gSpecialVar_0x8006 == 10) { - string = gUnknown_08611070[PLAYER_APPRENTICE.id][0]; + string = sApprenticeHeldItemTexts[PLAYER_APPRENTICE.id][0]; } else if (gSpecialVar_0x8006 == 11) { - string = gUnknown_086112B0[PLAYER_APPRENTICE.id][0]; + string = sApprenticePickWinSpeechTexts[PLAYER_APPRENTICE.id][0]; } else if (gSpecialVar_0x8006 == 12) { - string = gUnknown_08611070[PLAYER_APPRENTICE.id][3]; + string = sApprenticeHeldItemTexts[PLAYER_APPRENTICE.id][3]; } else if (gSpecialVar_0x8006 == 13) { - string = gUnknown_08611070[PLAYER_APPRENTICE.id][1]; + string = sApprenticeHeldItemTexts[PLAYER_APPRENTICE.id][1]; } else if (gSpecialVar_0x8006 == 16) { - string = gUnknown_08611070[PLAYER_APPRENTICE.id][4]; + string = sApprenticeHeldItemTexts[PLAYER_APPRENTICE.id][4]; } else if (gSpecialVar_0x8006 == 14) { - string = gUnknown_08611070[PLAYER_APPRENTICE.id][2]; + string = sApprenticeHeldItemTexts[PLAYER_APPRENTICE.id][2]; } else if (gSpecialVar_0x8006 == 15) { - string = gUnknown_086112B0[PLAYER_APPRENTICE.id][1]; + string = sApprenticePickWinSpeechTexts[PLAYER_APPRENTICE.id][1]; } else if (gSpecialVar_0x8006 == 0) { - string = gUnknown_08610EF0[PLAYER_APPRENTICE.id][0]; + string = sApprenticeFirstMeetingTexts[PLAYER_APPRENTICE.id][0]; } else if (gSpecialVar_0x8006 == 1) { - string = gUnknown_08610EF0[PLAYER_APPRENTICE.id][1]; + string = sApprenticeFirstMeetingTexts[PLAYER_APPRENTICE.id][1]; } else if (gSpecialVar_0x8006 == 2) { - string = gUnknown_08610EF0[PLAYER_APPRENTICE.id][2]; + string = sApprenticeFirstMeetingTexts[PLAYER_APPRENTICE.id][2]; } else if (gSpecialVar_0x8006 == 3) { - string = gUnknown_08610EF0[PLAYER_APPRENTICE.id][3]; + string = sApprenticeFirstMeetingTexts[PLAYER_APPRENTICE.id][3]; } else { @@ -1820,14 +1833,14 @@ static void PrintMessage(void) CreateTask(Task_WaitForPrintingMessage, 1); } -static void Script_PrintMessage(void) +static void Script_PrintApprenticeMessage(void) { ScriptContext2_Enable(); FreezeEventObjects(); sub_808B864(); sub_808BCF4(); DrawDialogueFrame(0, 1); - PrintMessage(); + PrintApprenticeMessage(); } static void sub_81A0CC0(void) @@ -1894,7 +1907,7 @@ static void sub_81A0DD4(void) gUnknown_030062F0 = AllocZeroed(sizeof(*gUnknown_030062F0)); if (gSpecialVar_0x8005 == 2) { - if (PLAYER_APPRENTICE.field_B1_1 < 3) + if (PLAYER_APPRENTICE.field_B1_1 < MULTI_PARTY_SIZE) { id1 = PLAYER_APPRENTICE.monIds[PLAYER_APPRENTICE.field_B1_1] >> 4; gUnknown_030062F0->unk2 = gApprentices[PLAYER_APPRENTICE.id].species[id1]; @@ -1934,7 +1947,7 @@ static void sub_81A0FE4(void) FREE_AND_SET_NULL(gUnknown_030062F0); } -static void sub_81A0FFC(void) +static void ApprenticeBufferString(void) { u8 *stringDst; u8 text[16]; @@ -1980,9 +1993,9 @@ static void sub_81A0FFC(void) StringCopy(stringDst, text); break; case APPRENTICE_BUFF_LEVEL: - if (PLAYER_APPRENTICE.activeLvlMode == 1) + if (PLAYER_APPRENTICE.lvlMode == APPRENTICE_LVL_MODE_50) StringCopy(stringDst, gText_Lv50); - else + else // == APPRENTICE_LVL_MODE_OPEN StringCopy(stringDst, gText_OpenLevel); break; case APPRENTICE_BUFF_EASY_CHAT: @@ -1990,7 +2003,7 @@ static void sub_81A0FFC(void) StringCopy(stringDst, gStringVar4); break; case APPRENTICE_BUFF_SPECIES4: - if (PLAYER_APPRENTICE.field_B1_2 < 3) + if (PLAYER_APPRENTICE.field_B1_2 < MULTI_PARTY_SIZE) { APPRENTICE_SPECIES_ID(speciesArrayId, PLAYER_APPRENTICE.field_B1_2); } @@ -2033,14 +2046,14 @@ static void sub_81A1224(void) { PLAYER_APPRENTICE.field_B8[PLAYER_APPRENTICE.field_B1_1 - 3].unk0_3 = 0; PLAYER_APPRENTICE.field_B8[PLAYER_APPRENTICE.field_B1_1 - 3].unk2 = gSpecialVar_0x8005; - gSpecialVar_Result = 0; + gSpecialVar_Result = FALSE; return; } } PLAYER_APPRENTICE.field_B8[PLAYER_APPRENTICE.field_B1_1 - 3].unk0_3 = 1; PLAYER_APPRENTICE.field_B8[PLAYER_APPRENTICE.field_B1_1 - 3].unk2 = gSpecialVar_0x8005; - gSpecialVar_Result = 1; + gSpecialVar_Result = TRUE; } static void sub_81A1370(void) @@ -2082,7 +2095,7 @@ static void sub_81A1438(void) u8 i; gSaveBlock2Ptr->apprentices[0].id = PLAYER_APPRENTICE.id; - gSaveBlock2Ptr->apprentices[0].lvlMode = PLAYER_APPRENTICE.activeLvlMode; + gSaveBlock2Ptr->apprentices[0].lvlMode = PLAYER_APPRENTICE.lvlMode; for (i = 0; i < 9 && PLAYER_APPRENTICE.field_B8[i].unk0_0; i++) ; @@ -2149,14 +2162,16 @@ static void Script_SetPlayerApprenticeTrainerGfxId(void) } } -static void sub_81A1638(void) +// Both of the below functions may have dummied / used for debug +// In all cases theres a conditional for VAR_0x8004 right after the call to these functions +static void SetVar0x8004True1(void) { - gSpecialVar_0x8004 = 1; + gSpecialVar_0x8004 = TRUE; } -static void sub_81A1644(void) +static void GetShouldApprenticeLeave(void) { - gSpecialVar_0x8004 = 1; + gSpecialVar_0x8004 = TRUE; } const u8 *GetApprenticeNameInLanguage(u32 apprenticeId, s32 language) @@ -2191,7 +2206,7 @@ static void Task_ExecuteFuncAfterButtonPress(u8 taskId) { if (gMain.newKeys & A_BUTTON || gMain.newKeys & B_BUTTON) { - gUnknown_030062F4 = (void*)(u32)(((u16)gTasks[taskId].data[0] | (gTasks[taskId].data[1] << 0x10))); + gUnknown_030062F4 = (void*)(u32)(((u16)gTasks[taskId].data[0] | (gTasks[taskId].data[1] << 16))); gUnknown_030062F4(); DestroyTask(taskId); } diff --git a/src/data/pokemon/level_up_learnsets.h b/src/data/pokemon/level_up_learnsets.h index 727cc0959..c78b9ef0a 100644 --- a/src/data/pokemon/level_up_learnsets.h +++ b/src/data/pokemon/level_up_learnsets.h @@ -1,5 +1,4 @@ #define LEVEL_UP_MOVE(lvl, move) ((lvl << 9) | move) -#define LEVEL_UP_END 0xffff static const u16 sBulbasaurLevelUpLearnset[] = { LEVEL_UP_MOVE( 1, MOVE_TACKLE), diff --git a/src/pokemon.c b/src/pokemon.c index a30e20ea2..4d14e61c2 100644 --- a/src/pokemon.c +++ b/src/pokemon.c @@ -2943,12 +2943,12 @@ void GiveBoxMonInitialMoveset(struct BoxPokemon *boxMon) u16 moveLevel; u16 move; - moveLevel = (gLevelUpLearnsets[species][i] & 0xFE00); + moveLevel = (gLevelUpLearnsets[species][i] & LEVEL_UP_MOVE_LV); if (moveLevel > (level << 9)) break; - move = (gLevelUpLearnsets[species][i] & 0x1FF); + move = (gLevelUpLearnsets[species][i] & LEVEL_UP_MOVE_ID); if (GiveMoveToBoxMon(boxMon, move) == MON_HAS_MAX_MOVES) DeleteFirstMoveAndGiveMoveToBoxMon(boxMon, move); @@ -2969,7 +2969,7 @@ u16 MonTryLearningNewMove(struct Pokemon *mon, bool8 firstMove) { sLearningMoveTableID = 0; - while ((gLevelUpLearnsets[species][sLearningMoveTableID] & 0xFE00) != (level << 9)) + while ((gLevelUpLearnsets[species][sLearningMoveTableID] & LEVEL_UP_MOVE_LV) != (level << 9)) { sLearningMoveTableID++; if (gLevelUpLearnsets[species][sLearningMoveTableID] == LEVEL_UP_END) @@ -2977,9 +2977,9 @@ u16 MonTryLearningNewMove(struct Pokemon *mon, bool8 firstMove) } } - if ((gLevelUpLearnsets[species][sLearningMoveTableID] & 0xFE00) == (level << 9)) + if ((gLevelUpLearnsets[species][sLearningMoveTableID] & LEVEL_UP_MOVE_LV) == (level << 9)) { - gMoveToLearn = (gLevelUpLearnsets[species][sLearningMoveTableID] & 0x1FF); + gMoveToLearn = (gLevelUpLearnsets[species][sLearningMoveTableID] & LEVEL_UP_MOVE_ID); sLearningMoveTableID++; retVal = GiveMoveToMon(mon, gMoveToLearn); } @@ -6112,23 +6112,23 @@ u8 GetMoveRelearnerMoves(struct Pokemon *mon, u16 *moves) { u16 moveLevel; - if (gLevelUpLearnsets[species][i] == 0xFFFF) + if (gLevelUpLearnsets[species][i] == LEVEL_UP_END) break; - moveLevel = gLevelUpLearnsets[species][i] & 0xFE00; + moveLevel = gLevelUpLearnsets[species][i] & LEVEL_UP_MOVE_LV; if (moveLevel <= (level << 9)) { - for (j = 0; j < MAX_MON_MOVES && learnedMoves[j] != (gLevelUpLearnsets[species][i] & 0x1FF); j++) + for (j = 0; j < MAX_MON_MOVES && learnedMoves[j] != (gLevelUpLearnsets[species][i] & LEVEL_UP_MOVE_ID); j++) ; if (j == MAX_MON_MOVES) { - for (k = 0; k < numMoves && moves[k] != (gLevelUpLearnsets[species][i] & 0x1FF); k++) + for (k = 0; k < numMoves && moves[k] != (gLevelUpLearnsets[species][i] & LEVEL_UP_MOVE_ID); k++) ; if (k == numMoves) - moves[numMoves++] = gLevelUpLearnsets[species][i] & 0x1FF; + moves[numMoves++] = gLevelUpLearnsets[species][i] & LEVEL_UP_MOVE_ID; } } } @@ -6141,8 +6141,8 @@ u8 GetLevelUpMovesBySpecies(u16 species, u16 *moves) u8 numMoves = 0; int i; - for (i = 0; i < 20 && gLevelUpLearnsets[species][i] != 0xFFFF; i++) - moves[numMoves++] = gLevelUpLearnsets[species][i] & 0x1FF; + for (i = 0; i < 20 && gLevelUpLearnsets[species][i] != LEVEL_UP_END; i++) + moves[numMoves++] = gLevelUpLearnsets[species][i] & LEVEL_UP_MOVE_ID; return numMoves; } @@ -6166,23 +6166,23 @@ u8 GetNumberOfRelearnableMoves(struct Pokemon *mon) { u16 moveLevel; - if (gLevelUpLearnsets[species][i] == 0xFFFF) + if (gLevelUpLearnsets[species][i] == LEVEL_UP_END) break; - moveLevel = gLevelUpLearnsets[species][i] & 0xFE00; + moveLevel = gLevelUpLearnsets[species][i] & LEVEL_UP_MOVE_LV; if (moveLevel <= (level << 9)) { - for (j = 0; j < MAX_MON_MOVES && learnedMoves[j] != (gLevelUpLearnsets[species][i] & 0x1FF); j++) + for (j = 0; j < MAX_MON_MOVES && learnedMoves[j] != (gLevelUpLearnsets[species][i] & LEVEL_UP_MOVE_ID); j++) ; if (j == MAX_MON_MOVES) { - for (k = 0; k < numMoves && moves[k] != (gLevelUpLearnsets[species][i] & 0x1FF); k++) + for (k = 0; k < numMoves && moves[k] != (gLevelUpLearnsets[species][i] & LEVEL_UP_MOVE_ID); k++) ; if (k == numMoves) - moves[numMoves++] = gLevelUpLearnsets[species][i] & 0x1FF; + moves[numMoves++] = gLevelUpLearnsets[species][i] & LEVEL_UP_MOVE_ID; } } } diff --git a/src/record_mixing.c b/src/record_mixing.c index 8a1e8b1ee..ac8c8a8a3 100644 --- a/src/record_mixing.c +++ b/src/record_mixing.c @@ -1113,14 +1113,14 @@ void GetPlayerHallRecords(struct PlayerHallRecords *dst) } } -static bool32 sub_80E841C(struct Apprentice *arg0, struct Apprentice *arg1) +static bool32 sub_80E841C(struct Apprentice *mixApprentice, struct Apprentice *apprentices) { s32 i; - for (i = 0; i < 4; i++) + for (i = 0; i < APPRENTICE_COUNT; i++) { - if (GetTrainerId(arg0->playerId) == GetTrainerId(arg1[i].playerId) - && arg0->number == arg1[i].number) + if (GetTrainerId(mixApprentice->playerId) == GetTrainerId(apprentices[i].playerId) + && mixApprentice->number == apprentices[i].number) { return TRUE; } -- cgit v1.2.3 From 4e6a69c29736bd9bb81049c6944e27ce46f8333c Mon Sep 17 00:00:00 2001 From: GriffinR Date: Tue, 19 Nov 2019 11:36:38 -0500 Subject: WIP Document Apprentice --- asm/macros/battle_frontier.inc | 117 +++++ .../BattleFrontier_BattleTowerLobby/scripts.inc | 42 +- data/scripts/apprentice.inc | 334 ++++++--------- data/text/apprentice.inc | 96 ++--- include/apprentice.h | 2 +- include/constants/apprentice.h | 64 ++- include/global.h | 8 +- include/item_menu.h | 2 +- src/apprentice.c | 475 +++++++++++---------- src/easy_chat.c | 2 +- src/frontier_util.c | 6 +- src/item_menu.c | 8 +- src/recorded_battle.c | 16 +- 13 files changed, 627 insertions(+), 545 deletions(-) diff --git a/asm/macros/battle_frontier.inc b/asm/macros/battle_frontier.inc index 8a5f369a3..cbb91f680 100644 --- a/asm/macros/battle_frontier.inc +++ b/asm/macros/battle_frontier.inc @@ -32,4 +32,121 @@ special CallBattleTowerFunc @ Battle Tent +@ Trainer Hill + @ Apprentice + +.macro apprentice_gavelvlmode +setvar VAR_0x8004, APPRENTICE_FUNC_GAVE_LVLMODE +special CallApprenticeFunction +.endm + +.macro apprentice_setlvlmode lvlmode:req +setvar VAR_0x8004, APPRENTICE_FUNC_SET_LVLMODE +setorcopyvar VAR_0x8005, \lvlmode +addvar VAR_0x8005, 1 +special CallApprenticeFunction +.endm + +.macro apprentice_answeredquestion +setvar VAR_0x8004, APPRENTICE_FUNC_ANSWERED_QUESTION +special CallApprenticeFunction +.endm + +.macro apprentice_menu which:req +setvar VAR_0x8004, APPRENTICE_FUNC_MENU +setvar VAR_0x8005, \which +special CallApprenticeFunction +waitstate +.endm + +.macro apprentice_3 +setvar VAR_0x8004, APPRENTICE_FUNC_3 +special CallApprenticeFunction +.endm + +.macro apprentice_msg waitbuttonpress:req, which:req +setvar VAR_0x8004, APPRENTICE_FUNC_PRINT_MSG +setvar VAR_0x8005, \waitbuttonpress +setvar VAR_0x8006, \which +special CallApprenticeFunction +waitstate +.endm + +.macro apprentice_reset +setvar VAR_0x8004, APPRENTICE_FUNC_RESET +special CallApprenticeFunction +.endm + +.macro apprentice_shouldcheckgone +setvar VAR_0x8004, APPRENTICE_FUNC_CHECK_GONE +special CallApprenticeFunction +.endm + +.macro apprentice_getquestion +setvar VAR_0x8004, APPRENTICE_FUNC_GET_QUESTION +special CallApprenticeFunction +.endm + +.macro apprentice_getnumpartymons +setvar VAR_0x8004, APPRENTICE_FUNC_GET_NUM_PARTY_MONS +special CallApprenticeFunction +.endm + +.macro apprentice_setpartymon slot:req +copyvar VAR_0x8006, \slot +setvar VAR_0x8004, APPRENTICE_FUNC_SET_PARTY_MON +special CallApprenticeFunction +.endm + +.macro apprentice_initquestion which:req +setvar VAR_0x8004, APPRENTICE_FUNC_INIT_QUESTION_DATA +setvar VAR_0x8005, \which +special CallApprenticeFunction +.endm + +.macro apprentice_freequestion +setvar VAR_0x8004, APPRENTICE_FUNC_FREE_QUESTION_DATA +special CallApprenticeFunction +.endm + +.macro apprentice_buff whichstringvar:req, tobuff:req +setvar VAR_0x8004, APPRENTICE_FUNC_BUFFER_STRING +setvar VAR_0x8005, \whichstringvar +setvar VAR_0x8006, \tobuff +special CallApprenticeFunction +.endm + +.macro apprentice_buffv whichstringvar:req tobuff:req +setvar VAR_0x8004, APPRENTICE_FUNC_BUFFER_STRING +setvar VAR_0x8005, \whichstringvar +copyvar VAR_0x8006, \tobuff +special CallApprenticeFunction +.endm + +.macro apprentice_setmove +setvar VAR_0x8004, APPRENTICE_FUNC_SET_MOVE +special CallApprenticeFunction +.endm + +.macro apprentice_setfirstmon monId:req +copyvar VAR_0x8005, \monId +setvar VAR_0x8004, APPRENTICE_FUNC_SET_FIRST_MON +special CallApprenticeFunction +.endm + +.macro apprentice_openbag +setvar VAR_0x8004, APPRENTICE_FUNC_OPEN_BAG +special CallApprenticeFunction +waitstate +.endm + +.macro apprentice_setgfx +setvar VAR_0x8004, APPRENTICE_FUNC_SET_GFX +special CallApprenticeFunction +.endm + +.macro apprentice_shouldleave +setvar VAR_0x8004, APPRENTICE_FUNC_SHOULD_LEAVE +special CallApprenticeFunction +.endm diff --git a/data/maps/BattleFrontier_BattleTowerLobby/scripts.inc b/data/maps/BattleFrontier_BattleTowerLobby/scripts.inc index 791901b1f..3767db315 100644 --- a/data/maps/BattleFrontier_BattleTowerLobby/scripts.inc +++ b/data/maps/BattleFrontier_BattleTowerLobby/scripts.inc @@ -1,44 +1,40 @@ BattleFrontier_BattleTowerLobby_MapScripts:: @ 823E67B - map_script MAP_SCRIPT_ON_RESUME, BattleFrontier_BattleTowerLobby_MapScript1_23E690 - map_script MAP_SCRIPT_ON_TRANSITION, BattleFrontier_BattleTowerLobby_MapScript1_23E694 - map_script MAP_SCRIPT_ON_FRAME_TABLE, BattleFrontier_BattleTowerLobby_MapScript2_23E6DD - map_script MAP_SCRIPT_ON_WARP_INTO_MAP_TABLE, BattleFrontier_BattleTowerLobby_MapScript2_23E6C9 + map_script MAP_SCRIPT_ON_RESUME, BattleFrontier_BattleTowerLobby_OnResume + map_script MAP_SCRIPT_ON_TRANSITION, BattleFrontier_BattleTowerLobby_OnTransition + map_script MAP_SCRIPT_ON_FRAME_TABLE, BattleFrontier_BattleTowerLobby_OnFrame + map_script MAP_SCRIPT_ON_WARP_INTO_MAP_TABLE, BattleFrontier_BattleTowerLobby_OnWarp .byte 0 -BattleFrontier_BattleTowerLobby_MapScript1_23E690: @ 823E690 +BattleFrontier_BattleTowerLobby_OnResume: @ 823E690 special sub_81653CC end -BattleFrontier_BattleTowerLobby_MapScript1_23E694: @ 823E694 +BattleFrontier_BattleTowerLobby_OnTransition: @ 823E694 call BattleFrontier_BattleTowerLobby_EventScript_ShowOrHideReporter - setvar VAR_0x8004, APPRENTICE_FUNC_10 - special CallApprenticeFunction - compare VAR_0x8004, 0 - goto_if_eq BattleFrontier_BattleTowerLobby_EventScript_23E6B5 - goto_if_set FLAG_DAILY_APPRENTICE_LEAVES, BattleFrontier_BattleTowerLobby_EventScript_23E6C1 - -BattleFrontier_BattleTowerLobby_EventScript_23E6B5:: @ 823E6B5 + apprentice_shouldcheckgone + compare VAR_0x8004, FALSE @ Always TRUE here + goto_if_eq BattleFrontier_BattleTowerLobby_EventScript_ShowApprentice + goto_if_set FLAG_DAILY_APPRENTICE_LEAVES, BattleFrontier_BattleTowerLobby_EventScript_HideApprentice +BattleFrontier_BattleTowerLobby_EventScript_ShowApprentice:: @ 823E6B5 clearflag FLAG_HIDE_APPRENTICE - setvar VAR_0x8004, APPRENTICE_FUNC_23 - special CallApprenticeFunction - -BattleFrontier_BattleTowerLobby_EventScript_23E6C0:: @ 823E6C0 + apprentice_setgfx +BattleFrontier_BattleTowerLobby_EventScript_EndShowOrHideApprentice:: @ 823E6C0 end -BattleFrontier_BattleTowerLobby_EventScript_23E6C1:: @ 823E6C1 +BattleFrontier_BattleTowerLobby_EventScript_HideApprentice:: @ 823E6C1 setflag FLAG_HIDE_APPRENTICE - goto BattleFrontier_BattleTowerLobby_EventScript_23E6C0 + goto BattleFrontier_BattleTowerLobby_EventScript_EndShowOrHideApprentice -BattleFrontier_BattleTowerLobby_MapScript2_23E6C9: @ 823E6C9 - map_script_2 VAR_TEMP_1, 0, BattleFrontier_BattleTowerLobby_EventScript_23E6D3 +BattleFrontier_BattleTowerLobby_OnWarp: @ 823E6C9 + map_script_2 VAR_TEMP_1, 0, BattleFrontier_BattleTowerLobby_EventScript_PlayerFaceNorth .2byte 0 -BattleFrontier_BattleTowerLobby_EventScript_23E6D3:: @ 823E6D3 +BattleFrontier_BattleTowerLobby_EventScript_PlayerFaceNorth:: @ 823E6D3 setvar VAR_TEMP_1, 1 turnobject EVENT_OBJ_ID_PLAYER, DIR_NORTH end -BattleFrontier_BattleTowerLobby_MapScript2_23E6DD: @ 823E6DD +BattleFrontier_BattleTowerLobby_OnFrame: @ 823E6DD map_script_2 VAR_TEMP_0, 0, BattleFrontier_BattleTowerLobby_EventScript_23E707 map_script_2 VAR_TEMP_0, 1, BattleFrontier_BattleTowerLobby_EventScript_23E710 map_script_2 VAR_TEMP_0, 2, BattleFrontier_BattleTowerLobby_EventScript_23E8EE diff --git a/data/scripts/apprentice.inc b/data/scripts/apprentice.inc index 337899496..dfb9f5727 100644 --- a/data/scripts/apprentice.inc +++ b/data/scripts/apprentice.inc @@ -1,269 +1,204 @@ -.macro apprentice_msg waitbuttonpress:req, which:req -setvar VAR_0x8004, APPRENTICE_FUNC_PRINT_MSG -setvar VAR_0x8005, \waitbuttonpress -setvar VAR_0x8006, \which -special CallApprenticeFunction -waitstate -.endm - -.macro apprentice_buff whichstringvar:req, tobuff:req -setvar VAR_0x8004, APPRENTICE_FUNC_16 -setvar VAR_0x8005, \whichstringvar -setvar VAR_0x8006, \tobuff -special CallApprenticeFunction -.endm - -.macro apprentice_menu which:req -setvar VAR_0x8004, APPRENTICE_FUNC_MENU -setvar VAR_0x8005, \which -special CallApprenticeFunction -waitstate -.endm - BattleFrontier_BattleTowerLobby_EventScript_Apprentice:: @ 82B688D lock faceplayer - setvar VAR_0x8004, APPRENTICE_FUNC_0 - special CallApprenticeFunction - compare VAR_RESULT, 0 - goto_if_eq BattleFrontier_BattleTowerLobby_EventScript_2B6900 - setvar VAR_0x8004, APPRENTICE_FUNC_SET_TRUE_1 - special CallApprenticeFunction + apprentice_gavelvlmode + compare VAR_RESULT, FALSE + goto_if_eq Apprentice_EventScript_FirstMeeting + apprentice_shouldcheckgone compare VAR_0x8004, FALSE @ Always TRUE here - goto_if_eq BattleFrontier_BattleTowerLobby_EventScript_2B68BE - goto_if_set FLAG_DAILY_APPRENTICE_LEAVES, BattleFrontier_BattleTowerLobby_EventScript_2B6E90 - -BattleFrontier_BattleTowerLobby_EventScript_2B68BE: @ 82B68BE - setvar VAR_0x8004, APPRENTICE_FUNC_11 - special CallApprenticeFunction - compare VAR_RESULT, 2 - goto_if_eq BattleFrontier_BattleTowerLobby_EventScript_2B69D3 - compare VAR_RESULT, 4 - goto_if_eq BattleFrontier_BattleTowerLobby_EventScript_2B6ACF - compare VAR_RESULT, 3 - goto_if_eq BattleFrontier_BattleTowerLobby_EventScript_2B6C77 - compare VAR_RESULT, 1 - goto_if_eq BattleFrontier_BattleTowerLobby_EventScript_2B6D5C - compare VAR_RESULT, 5 - goto_if_eq BattleFrontier_BattleTowerLobby_EventScript_2B6DD4 + goto_if_eq Apprentice_EventScript_AskQuestion + goto_if_set FLAG_DAILY_APPRENTICE_LEAVES, Apprentice_EventScript_Gone +Apprentice_EventScript_AskQuestion: @ 82B68BE + apprentice_getquestion + compare VAR_RESULT, APPRENTICE_QUESTION_WHICH_MON + goto_if_eq Apprentice_EventScript_UseWhichMon + compare VAR_RESULT, APPRENTICE_QUESTION_WHAT_ITEM + goto_if_eq Apprentice_EventScript_UseWhatHeldItem + compare VAR_RESULT, APPRENTICE_QUESTION_WHICH_MOVE + goto_if_eq Apprentice_EventScript_UseWhichMove + compare VAR_RESULT, APPRENTICE_QUESTION_WHICH_FIRST + goto_if_eq Apprentice_EventScript_PutWhichMonFirst + compare VAR_RESULT, APPRENTICE_QUESTION_WIN_SPEECH + goto_if_eq Apprentice_EventScript_PickWinSpeech release releaseall end -BattleFrontier_BattleTowerLobby_EventScript_2B6900: @ 82B6900 +Apprentice_EventScript_FirstMeeting: @ 82B6900 apprentice_buff 0, APPRENTICE_BUFF_NAME - apprentice_msg FALSE, 0 -BattleFrontier_BattleTowerLobby_EventScript_2B6925: @ 82B6925 + apprentice_msg FALSE, APPRENTICE_MSG_PLEASE_TEACH +Apprentice_EventScript_WhichLvlMode: @ 82B6925 apprentice_menu APPRENTICE_ASK_YES_NO compare VAR_RESULT, 1 - goto_if_eq BattleFrontier_BattleTowerLobby_EventScript_2B69BB - apprentice_msg FALSE, 2 + goto_if_eq Apprentice_EventScript_RejectTeach + apprentice_msg FALSE, APPRENTICE_MSG_WHICH_LVL_MODE apprentice_menu APPRENTICE_ASK_WHICH_LEVEL - setvar VAR_0x8004, APPRENTICE_FUNC_1 - setorcopyvar VAR_0x8005, VAR_RESULT - addvar VAR_0x8005, 1 - special CallApprenticeFunction - setvar VAR_0x8004, APPRENTICE_FUNC_3 - special CallApprenticeFunction + apprentice_setlvlmode VAR_RESULT + apprentice_3 apprentice_buff 0, APPRENTICE_BUFF_LEVEL - apprentice_msg TRUE, 3 - call BattleFrontier_BattleTowerLobby_EventScript_2B6E4D + apprentice_msg TRUE, APPRENTICE_MSG_THANKS_LVL_MODE + call Apprentice_EventScript_Hide release releaseall switch VAR_FACING - case DIR_NORTH, BattleFrontier_BattleTowerLobby_EventScript_2B6E54 - goto BattleFrontier_BattleTowerLobby_EventScript_2B6E72 + case DIR_NORTH, Apprentice_EventScript_LeaveNorth + goto Apprentice_EventScript_Leave end -BattleFrontier_BattleTowerLobby_EventScript_2B69BB: @ 82B69BB - apprentice_msg FALSE, 1 - goto BattleFrontier_BattleTowerLobby_EventScript_2B6925 +@ Its impossible to fully reject an Apprentice, they just keep asking for you to teach them +Apprentice_EventScript_RejectTeach: @ 82B69BB + apprentice_msg FALSE, APPRENTICE_MSG_REJECT + goto Apprentice_EventScript_WhichLvlMode -BattleFrontier_BattleTowerLobby_EventScript_2B69D3: @ 82B69D3 - setvar VAR_0x8004, APPRENTICE_FUNC_14 - setvar VAR_0x8005, 2 - special CallApprenticeFunction +Apprentice_EventScript_UseWhichMon: @ 82B69D3 + apprentice_initquestion APPRENTICE_QUESTION_WHICH_MON apprentice_buff 0, APPRENTICE_BUFF_SPECIES1 apprentice_buff 1, APPRENTICE_BUFF_SPECIES2 - apprentice_msg FALSE, 6 + apprentice_msg FALSE, APPRENTICE_MSG_WHICH_MON apprentice_menu APPRENTICE_ASK_2SPECIES copyvar VAR_0x8005, VAR_RESULT compare VAR_0x8005, 0 - call_if_eq BattleFrontier_BattleTowerLobby_EventScript_2B6ABA + call_if_eq Apprentice_EventScript_ChoseFirstMon compare VAR_0x8005, 1 - call_if_eq BattleFrontier_BattleTowerLobby_EventScript_2B6AC0 - setvar VAR_0x8004, APPRENTICE_FUNC_12 - special CallApprenticeFunction - copyvar VAR_0x8006, VAR_RESULT - setvar VAR_0x8004, APPRENTICE_FUNC_13 - special CallApprenticeFunction - setvar VAR_0x8004, APPRENTICE_FUNC_5 - special CallApprenticeFunction - setvar VAR_0x8004, APPRENTICE_FUNC_12 - special CallApprenticeFunction - compare VAR_RESULT, 3 - call_if_eq BattleFrontier_BattleTowerLobby_EventScript_2B6AC6 - setvar VAR_0x8004, APPRENTICE_FUNC_16 - setvar VAR_0x8005, 0 - copyvar VAR_0x8006, VAR_0x8007 - special CallApprenticeFunction - setvar VAR_0x8004, APPRENTICE_FUNC_15 - special CallApprenticeFunction - apprentice_msg TRUE, 7 - call BattleFrontier_BattleTowerLobby_EventScript_2B6E4D + call_if_eq Apprentice_EventScript_ChoseSecondMon + apprentice_getnumpartymons + apprentice_setpartymon VAR_RESULT + apprentice_answeredquestion + apprentice_getnumpartymons + compare VAR_RESULT, MULTI_PARTY_SIZE + call_if_eq Apprentice_EventScript_LastMonSelected + apprentice_buffv 0, VAR_0x8007 + apprentice_freequestion + apprentice_msg TRUE, APPRENTICE_MSG_THANKS_MON + call Apprentice_EventScript_Hide release releaseall switch VAR_FACING - case DIR_NORTH, BattleFrontier_BattleTowerLobby_EventScript_2B6E54 - goto BattleFrontier_BattleTowerLobby_EventScript_2B6E72 + case DIR_NORTH, Apprentice_EventScript_LeaveNorth + goto Apprentice_EventScript_Leave end -BattleFrontier_BattleTowerLobby_EventScript_2B6ABA: @ 82B6ABA - setvar VAR_0x8007, 0 +Apprentice_EventScript_ChoseFirstMon: @ 82B6ABA + setvar VAR_0x8007, APPRENTICE_BUFF_SPECIES1 return -BattleFrontier_BattleTowerLobby_EventScript_2B6AC0: @ 82B6AC0 - setvar VAR_0x8007, 1 +Apprentice_EventScript_ChoseSecondMon: @ 82B6AC0 + setvar VAR_0x8007, APPRENTICE_BUFF_SPECIES2 return -BattleFrontier_BattleTowerLobby_EventScript_2B6AC6: @ 82B6AC6 +Apprentice_EventScript_LastMonSelected: @ 82B6AC6 setvar VAR_0x8004, APPRENTICE_FUNC_4 special CallApprenticeFunction return -BattleFrontier_BattleTowerLobby_EventScript_2B6ACF: @ 82B6ACF - setvar VAR_0x8004, APPRENTICE_FUNC_14 - setvar VAR_0x8005, 4 - special CallApprenticeFunction +Apprentice_EventScript_UseWhatHeldItem: @ 82B6ACF + apprentice_initquestion APPRENTICE_QUESTION_WHAT_ITEM apprentice_buff 0, APPRENTICE_BUFF_SPECIES3 - apprentice_msg TRUE, 10 - setvar VAR_0x8004, APPRENTICE_FUNC_15 - special CallApprenticeFunction - -BattleFrontier_BattleTowerLobby_EventScript_2B6B09: @ 82B6B09 + apprentice_msg TRUE, APPRENTICE_MSG_WHAT_HELD_ITEM + apprentice_freequestion +Apprentice_EventScript_ChooseHoldItem: @ 82B6B09 fadescreen 1 setvar VAR_RESULT, 0 - setvar VAR_0x8004, APPRENTICE_FUNC_19 - special CallApprenticeFunction - waitstate + apprentice_openbag compare VAR_RESULT, 0 - goto_if_eq BattleFrontier_BattleTowerLobby_EventScript_2B6B81 + goto_if_eq Apprentice_EventScript_ConfirmHoldNothing setvar VAR_0x8004, APPRENTICE_FUNC_20 special CallApprenticeFunction compare VAR_RESULT, FALSE - goto_if_eq BattleFrontier_BattleTowerLobby_EventScript_2B6C0C + goto_if_eq Apprentice_EventScript_AlreadySuggestedItem apprentice_buff 0, APPRENTICE_BUFF_ITEM - apprentice_msg TRUE, 12 - setvar VAR_0x8004, APPRENTICE_FUNC_5 - special CallApprenticeFunction - call BattleFrontier_BattleTowerLobby_EventScript_2B6E4D + apprentice_msg TRUE, APPRENTICE_MSG_THANKS_HELD_ITEM + apprentice_answeredquestion + call Apprentice_EventScript_Hide release releaseall switch VAR_FACING - case DIR_NORTH, BattleFrontier_BattleTowerLobby_EventScript_2B6E54 - goto BattleFrontier_BattleTowerLobby_EventScript_2B6E72 + case DIR_NORTH, Apprentice_EventScript_LeaveNorth + goto Apprentice_EventScript_Leave end -BattleFrontier_BattleTowerLobby_EventScript_2B6B81: @ 82B6B81 - setvar VAR_0x8004, APPRENTICE_FUNC_14 - setvar VAR_0x8005, 4 - special CallApprenticeFunction +Apprentice_EventScript_ConfirmHoldNothing: @ 82B6B81 + apprentice_initquestion APPRENTICE_QUESTION_WHAT_ITEM apprentice_buff 0, APPRENTICE_BUFF_SPECIES3 - apprentice_msg FALSE, 13 + apprentice_msg FALSE, APPRENTICE_MSG_HOLD_NOTHING apprentice_menu APPRENTICE_ASK_GIVE - setvar VAR_0x8004, 15 - special CallApprenticeFunction + apprentice_freequestion compare VAR_RESULT, 0 - goto_if_eq BattleFrontier_BattleTowerLobby_EventScript_2B6B09 - -BattleFrontier_BattleTowerLobby_EventScript_2B6BD4: @ 82B6BD4 - apprentice_msg TRUE, 14 - setvar VAR_0x8004, APPRENTICE_FUNC_5 - special CallApprenticeFunction - call BattleFrontier_BattleTowerLobby_EventScript_2B6E4D + goto_if_eq Apprentice_EventScript_ChooseHoldItem +Apprentice_EventScript_HoldNothing: @ 82B6BD4 + apprentice_msg TRUE, APPRENTICE_MSG_THANKS_NO_HELD_ITEM + apprentice_answeredquestion + call Apprentice_EventScript_Hide release releaseall switch VAR_FACING - case DIR_NORTH, BattleFrontier_BattleTowerLobby_EventScript_2B6E54 - goto BattleFrontier_BattleTowerLobby_EventScript_2B6E72 + case DIR_NORTH, Apprentice_EventScript_LeaveNorth + goto Apprentice_EventScript_Leave end -BattleFrontier_BattleTowerLobby_EventScript_2B6C0C: @ 82B6C0C - setvar VAR_0x8004, APPRENTICE_FUNC_14 - setvar VAR_0x8005, 4 - special CallApprenticeFunction +Apprentice_EventScript_AlreadySuggestedItem: @ 82B6C0C + apprentice_initquestion APPRENTICE_QUESTION_WHAT_ITEM apprentice_buff 0, APPRENTICE_BUFF_ITEM apprentice_buff 1, APPRENTICE_BUFF_SPECIES3 - apprentice_msg FALSE, 16 + apprentice_msg FALSE, APPRENTICE_MSG_ITEM_ALREADY_SUGGESTED apprentice_menu APPRENTICE_ASK_GIVE - setvar VAR_0x8004, 15 - special CallApprenticeFunction + apprentice_freequestion compare VAR_RESULT, 0 - goto_if_eq BattleFrontier_BattleTowerLobby_EventScript_2B6B09 - goto BattleFrontier_BattleTowerLobby_EventScript_2B6BD4 + goto_if_eq Apprentice_EventScript_ChooseHoldItem + goto Apprentice_EventScript_HoldNothing end -BattleFrontier_BattleTowerLobby_EventScript_2B6C77: @ 82B6C77 - setvar VAR_0x8004, APPRENTICE_FUNC_14 - setvar VAR_0x8005, 3 - special CallApprenticeFunction +Apprentice_EventScript_UseWhichMove: @ 82B6C77 + apprentice_initquestion APPRENTICE_QUESTION_WHICH_MOVE apprentice_buff 0, APPRENTICE_BUFF_SPECIES3 apprentice_buff 1, APPRENTICE_BUFF_MOVE1 apprentice_buff 2, APPRENTICE_BUFF_MOVE2 - apprentice_msg FALSE, 8 + apprentice_msg FALSE, APPRENTICE_MSG_WHICH_MOVE apprentice_menu APPRENTICE_ASK_MOVES copyvar VAR_0x8005, VAR_RESULT compare VAR_0x8005, 0 - call_if_eq BattleFrontier_BattleTowerLobby_EventScript_2B6D50 + call_if_eq Apprentice_EventScript_ChoseFirstMove compare VAR_0x8005, 1 - call_if_eq BattleFrontier_BattleTowerLobby_EventScript_2B6D56 - setvar VAR_0x8004, APPRENTICE_FUNC_17 - special CallApprenticeFunction - setvar VAR_0x8004, APPRENTICE_FUNC_5 - special CallApprenticeFunction - setvar VAR_0x8004, APPRENTICE_FUNC_16 - setvar VAR_0x8005, 0 - copyvar VAR_0x8006, VAR_0x8007 - special CallApprenticeFunction - setvar VAR_0x8004, APPRENTICE_FUNC_15 - special CallApprenticeFunction - apprentice_msg TRUE, 9 - call BattleFrontier_BattleTowerLobby_EventScript_2B6E4D + call_if_eq Apprentice_EventScript_ChoseSecondMove + apprentice_setmove + apprentice_answeredquestion + apprentice_buffv 0, VAR_0x8007 + apprentice_freequestion + apprentice_msg TRUE, APPRENTICE_MSG_THANKS_MOVE + call Apprentice_EventScript_Hide release releaseall switch VAR_FACING - case DIR_NORTH, BattleFrontier_BattleTowerLobby_EventScript_2B6E54 - goto BattleFrontier_BattleTowerLobby_EventScript_2B6E72 + case DIR_NORTH, Apprentice_EventScript_LeaveNorth + goto Apprentice_EventScript_Leave end -BattleFrontier_BattleTowerLobby_EventScript_2B6D50: @ 82B6D50 - setvar VAR_0x8007, 3 +Apprentice_EventScript_ChoseFirstMove: @ 82B6D50 + setvar VAR_0x8007, APPRENTICE_BUFF_MOVE1 return -BattleFrontier_BattleTowerLobby_EventScript_2B6D56: @ 82B6D56 - setvar VAR_0x8007, 4 +Apprentice_EventScript_ChoseSecondMove: @ 82B6D56 + setvar VAR_0x8007, APPRENTICE_BUFF_MOVE2 return -BattleFrontier_BattleTowerLobby_EventScript_2B6D5C: @ 82B6D5C - apprentice_msg FALSE, 4 +Apprentice_EventScript_PutWhichMonFirst: @ 82B6D5C + apprentice_msg FALSE, APPRENTICE_MSG_WHICH_MON_FIRST apprentice_menu APPRENTICE_ASK_3SPECIES - copyvar VAR_0x8005, VAR_RESULT - setvar VAR_0x8004, APPRENTICE_FUNC_18 - special CallApprenticeFunction - setvar VAR_0x8004, APPRENTICE_FUNC_5 - special CallApprenticeFunction - apprentice_buff 0, APPRENTICE_BUFF_SPECIES4 - apprentice_msg TRUE, 5 - call BattleFrontier_BattleTowerLobby_EventScript_2B6E4D + apprentice_setfirstmon VAR_RESULT + apprentice_answeredquestion + apprentice_buff 0, APPRENTICE_BUFF_FIRST_MON_SPECIES + apprentice_msg TRUE, APPRENTICE_MSG_THANKS_MON_FIRST + call Apprentice_EventScript_Hide release releaseall switch VAR_FACING - case DIR_NORTH, BattleFrontier_BattleTowerLobby_EventScript_2B6E54 - goto BattleFrontier_BattleTowerLobby_EventScript_2B6E72 + case DIR_NORTH, Apprentice_EventScript_LeaveNorth + goto Apprentice_EventScript_Leave end -BattleFrontier_BattleTowerLobby_EventScript_2B6DD4: @ 82B6DD4 - apprentice_msg TRUE, 11 +@ Last question, after which the Apprentice leaves (and is saved) to be replaced by another +Apprentice_EventScript_PickWinSpeech: @ 82B6DD4 + apprentice_msg TRUE, APPRENTICE_MSG_PICK_WIN_SPEECH setvar VAR_0x8004, APPRENTICE_FUNC_25 special CallApprenticeFunction setvar VAR_0x8004, EASY_CHAT_TYPE_APPRENTICE @@ -272,52 +207,49 @@ BattleFrontier_BattleTowerLobby_EventScript_2B6DD4: @ 82B6DD4 faceplayer setvar VAR_0x8004, APPRENTICE_FUNC_21 special CallApprenticeFunction - apprentice_buff 0, APPRENTICE_BUFF_EASY_CHAT - apprentice_msg TRUE, 15 - setvar VAR_0x8004, APPRENTICE_FUNC_9 - special CallApprenticeFunction - call BattleFrontier_BattleTowerLobby_EventScript_2B6E4D + apprentice_buff 0, APPRENTICE_BUFF_WIN_SPEECH + apprentice_msg TRUE, APPRENTICE_MSG_THANKS_WIN_SPEECH + apprentice_reset + call Apprentice_EventScript_Hide release releaseall switch VAR_FACING - case DIR_NORTH, BattleFrontier_BattleTowerLobby_EventScript_2B6E54 - goto BattleFrontier_BattleTowerLobby_EventScript_2B6E72 + case DIR_NORTH, Apprentice_EventScript_LeaveNorth + goto Apprentice_EventScript_Leave end -BattleFrontier_BattleTowerLobby_EventScript_2B6E4D: @ 82B6E4D +Apprentice_EventScript_Hide: @ 82B6E4D setflag FLAG_HIDE_APPRENTICE setflag FLAG_DAILY_APPRENTICE_LEAVES return -BattleFrontier_BattleTowerLobby_EventScript_2B6E54: @ 82B6E54 - setvar VAR_0x8004, APPRENTICE_FUNC_SHOULD_LEAVE - special CallApprenticeFunction +Apprentice_EventScript_LeaveNorth: @ 82B6E54 + apprentice_shouldleave compare VAR_0x8004, FALSE @ Always TRUE here - goto_if_eq BattleFrontier_BattleTowerLobby_EventScript_ApprenticeDontMove - applymovement 6, BattleFrontier_BattleTowerLobby_Movement_2B6E94 + goto_if_eq Apprentice_EventScript_DontMove + applymovement 6, Apprentice_Movement_LeaveNorth waitmovement 0 end -BattleFrontier_BattleTowerLobby_EventScript_2B6E72: @ 82B6E72 - setvar VAR_0x8004, APPRENTICE_FUNC_SHOULD_LEAVE - special CallApprenticeFunction +Apprentice_EventScript_Leave: @ 82B6E72 + apprentice_shouldleave compare VAR_0x8004, FALSE @ Always TRUE here - goto_if_eq BattleFrontier_BattleTowerLobby_EventScript_ApprenticeDontMove - applymovement 6, BattleFrontier_BattleTowerLobby_Movement_2B6E95 + goto_if_eq Apprentice_EventScript_DontMove + applymovement 6, Apprentice_Movement_Leave waitmovement 0 end -BattleFrontier_BattleTowerLobby_EventScript_2B6E90: @ 82B6E90 +Apprentice_EventScript_Gone: @ 82B6E90 release releaseall end -BattleFrontier_BattleTowerLobby_EventScript_ApprenticeDontMove: @ 82B6E93 +Apprentice_EventScript_DontMove: @ 82B6E93 end -BattleFrontier_BattleTowerLobby_Movement_2B6E94: @ 82B6E94 +Apprentice_Movement_LeaveNorth: @ 82B6E94 walk_fast_right -BattleFrontier_BattleTowerLobby_Movement_2B6E95: @ 82B6E95 +Apprentice_Movement_Leave: @ 82B6E95 walk_fast_down walk_fast_down walk_fast_right diff --git a/data/text/apprentice.inc b/data/text/apprentice.inc index 8ef0d4f2f..7d5bab198 100644 --- a/data/text/apprentice.inc +++ b/data/text/apprentice.inc @@ -62,7 +62,7 @@ gText_ApprenticeChallenge15:: @ 82B71F9 .string "I am {STR_VAR_1}'s no. {STR_VAR_2} apprentice,\n" .string "and that's no lie.$" -gText_ApprenticeIntro0:: @ 82B7229 +gText_ApprenticePleaseTeach0:: @ 82B7229 .string "Are you… {PLAYER}?\n" .string "Oh! Sniff…sob…\p" .string "Oh! S-sorry…\n" @@ -100,7 +100,7 @@ gText_ApprenticeLevelModeThanks0:: @ 82B7423 .string "Thank you so much!\l" .string "Please talk with me again!$" -gText_ApprenticeIntro1:: @ 82B74C1 +gText_ApprenticePleaseTeach1:: @ 82B74C1 .string "Wowee! You're {PLAYER}, aren't you?\n" .string "You're awesomely strong, aren't you?\p" .string "I'm {STR_VAR_1}!\n" @@ -127,7 +127,7 @@ gText_ApprenticeLevelModeThanks1:: @ 82B763F .string "If we meet here again, please teach\n" .string "me something else, teacher!$" -gText_ApprenticeIntro2:: @ 82B76AC +gText_ApprenticePleaseTeach2:: @ 82B76AC .string "Um… Are you {PLAYER}?\n" .string "My name is {STR_VAR_1}.\p" .string "I want to become a POKéMON TRAINER,\n" @@ -156,7 +156,7 @@ gText_ApprenticeLevelModeThanks2:: @ 82B7871 .string "If I have another question, I'll come\n" .string "back here for your advice!$" -gText_ApprenticeIntro3:: @ 82B78D4 +gText_ApprenticePleaseTeach3:: @ 82B78D4 .string "Oh? Huh? You're…\n" .string "No, that can't be true.\p" .string "There isn't any way that someone\n" @@ -211,7 +211,7 @@ gText_ApprenticeLevelModeThanks3:: @ 82B7D18 .string "Thank you very much for spending\n" .string "time with someone like me.$" -gText_ApprenticeIntro4:: @ 82B7DD4 +gText_ApprenticePleaseTeach4:: @ 82B7DD4 .string "Oh! You're {PLAYER}{KUN}, aren't you?\p" .string "I've heard that you're tough at\n" .string "POKéMON!\p" @@ -246,7 +246,7 @@ gText_ApprenticeLevelModeThanks4:: @ 82B7FE8 .string "Okay, I'll look to you for advice again.\n" .string "Bye!$" -gText_ApprenticeIntro5:: @ 82B8087 +gText_ApprenticePleaseTeach5:: @ 82B8087 .string "Oh, hi, there! {PLAYER}{KUN}!\n" .string "I know you because you're famous!\l" .string "Call me {STR_VAR_1}! Glad to meet you!\p" @@ -282,7 +282,7 @@ gText_ApprenticeLevelModeThanks5:: @ 82B8356 .string "…Whoops, I'd better go to work!\n" .string "Thanks! See you around!$" -gText_ApprenticeIntro6:: @ 82B83CE +gText_ApprenticePleaseTeach6:: @ 82B83CE .string "No way! Uh-uh!\n" .string "Are you maybe the real {PLAYER}?\p" .string "A-hah! Awesome! I'm {STR_VAR_1},\n" @@ -322,7 +322,7 @@ gText_ApprenticeLevelModeThanks6:: @ 82B8656 .string "Let's meet here again, okay?\n" .string "Thanks!$" -gText_ApprenticeIntro7:: @ 82B86EA +gText_ApprenticePleaseTeach7:: @ 82B86EA .string "I beg your pardon, but…\n" .string "Are you {PLAYER}?\p" .string "I'm {STR_VAR_1}, and I am delighted to\n" @@ -361,7 +361,7 @@ gText_ApprenticeLevelModeThanks7:: @ 82B8957 .string "I hope I can count on you again.\l" .string "Please take care!$" -gText_ApprenticeIntro8:: @ 82B89C6 +gText_ApprenticePleaseTeach8:: @ 82B89C6 .string "Eek! Eek! {PLAYER}!\n" .string "You spoke to me!\l" .string "I… I'm overjoyed!\p" @@ -398,7 +398,7 @@ gText_ApprenticeLevelModeThanks8:: @ 82B8C20 .string "I hope you'll be willing to teach me\n" .string "some more another time.$" -gText_ApprenticeIntro9:: @ 82B8CAA +gText_ApprenticePleaseTeach9:: @ 82B8CAA .string "Whoa! Could you be…\n" .string "Might you be… {PLAYER}{KUN}?!\l" .string "That strong and famous TRAINER?\l" @@ -432,7 +432,7 @@ gText_ApprenticeLevelModeThanks9:: @ 82B8ED5 .string "All right, I'll look to you as my mentor!\n" .string "Adios!$" -gText_ApprenticeIntro10:: @ 82B8F45 +gText_ApprenticePleaseTeach10:: @ 82B8F45 .string "Oh, hey, {PLAYER}{KUN}, right?\n" .string "The police were looking for you!\p" .string "… … …\n" @@ -473,7 +473,7 @@ gText_ApprenticeLevelModeThanks10:: @ 82B9204 .string "Thanks, master!\n" .string "I hope you'll keep teaching me!$" -gText_ApprenticeIntro11:: @ 82B929C +gText_ApprenticePleaseTeach11:: @ 82B929C .string "A-H-O-Y!\n" .string "And that spells ahoy, and it means hi!\p" .string "I'm {STR_VAR_1}, the rappin' SAILOR\n" @@ -513,7 +513,7 @@ gText_ApprenticeLevelModeThanks11:: @ 82B9564 .string "If it's advice I ever need,\n" .string "{PLAYER}, your word I'll always heed!$" -gText_ApprenticeIntro12:: @ 82B95D8 +gText_ApprenticePleaseTeach12:: @ 82B95D8 .string "Say, hey, aren't you {PLAYER}?\n" .string "What should I do? Talk to you?\l" .string "Why not? I'm already talking to you!\p" @@ -550,7 +550,7 @@ gText_ApprenticeLevelModeThanks12:: @ 82B989A .string "but don't you forget about me.\p" .string "See you again, my smart friend!$" -gText_ApprenticeIntro13:: @ 82B992D +gText_ApprenticePleaseTeach13:: @ 82B992D .string "Oh, hi! You there!\n" .string "Can I get you to massage my shoulder?\p" .string "…Yes, there! That's it!\n" @@ -584,7 +584,7 @@ gText_ApprenticeLevelModeThanks13:: @ 82B9B76 .string "I hope I can keep hitting you up for\n" .string "help--after all, you're my mentor!$" -gText_ApprenticeIntro14:: @ 82B9BF2 +gText_ApprenticePleaseTeach14:: @ 82B9BF2 .string "Er… Um…\n" .string "{PLAYER}{KUN}…?\p" .string "Please, don't look at me that way.\n" @@ -625,7 +625,7 @@ gText_ApprenticeLevelModeThanks14:: @ 82B9EAA .string "If we meet again, I hope you will be\l" .string "as helpful.$" -gText_ApprenticeIntro15:: @ 82B9F55 +gText_ApprenticePleaseTeach15:: @ 82B9F55 .string "Hm? You appear to be {PLAYER}{KUN}…\n" .string "But are you really real?\p" .string "You may call me {STR_VAR_1}.\p" @@ -677,12 +677,12 @@ gText_ApprenticeHoldNothing0:: @ 82BA34E .string "Oh, really? I shouldn't make\n" .string "my {STR_VAR_1} hold anything?$" -gText_ApprenticeThanksHeldItem0:: @ 82BA380 +gText_ApprenticeThanksNoHeldItem0:: @ 82BA380 .string "Oh, okay! I'm delighted it's settled!\n" .string "Awesome! Wicked! Awoooh!\p" .string "Thank you so much!$" -gText_ApprenticeThanksHaveHeldItem0:: @ 82BA3D2 +gText_ApprenticeThanksHeldItem0:: @ 82BA3D2 .string "Oh, I'm so glad…\n" .string "I think I have that {STR_VAR_1}, too.\p" .string "I'm delighted it's settled!\n" @@ -709,11 +709,11 @@ gText_ApprenticeHoldNothing1:: @ 82BA58C .string "Huh? You mean my {STR_VAR_1} doesn't\n" .string "have to hold anything?$" -gText_ApprenticeThanksHeldItem1:: @ 82BA5BF +gText_ApprenticeThanksNoHeldItem1:: @ 82BA5BF .string "Oh, I get it! I'll do that!\n" .string "Thanks for teaching me!$" -gText_ApprenticeThanksHaveHeldItem1:: @ 82BA5F3 +gText_ApprenticeThanksHeldItem1:: @ 82BA5F3 .string "Oh, wow! One {STR_VAR_1}, huh?\n" .string "Okay, I'll do that!\p" .string "Thanks for teaching me!$" @@ -735,11 +735,11 @@ gText_ApprenticeHoldNothing2:: @ 82BA742 .string "Oh, then my {STR_VAR_1} doesn't have\n" .string "to hold anything?$" -gText_ApprenticeThanksHeldItem2:: @ 82BA770 +gText_ApprenticeThanksNoHeldItem2:: @ 82BA770 .string "Okay, I got it!\n" .string "See you again!$" -gText_ApprenticeThanksHaveHeldItem2:: @ 82BA78F +gText_ApprenticeThanksHeldItem2:: @ 82BA78F .string "Oh, the item {STR_VAR_1}?\n" .string "Understood!\p" .string "I'll do my best to find one!\n" @@ -768,13 +768,13 @@ gText_ApprenticeHoldNothing3:: @ 82BA96B .string "A POKéMON belonging to someone like me\n" .string "would be better off without an item?$" -gText_ApprenticeThanksHeldItem3:: @ 82BA9B7 +gText_ApprenticeThanksNoHeldItem3:: @ 82BA9B7 .string "I understand…\n" .string "You're saying I shouldn't rely on items.\l" .string "I'll do my best not to!\p" .string "Thank you very much!$" -gText_ApprenticeThanksHaveHeldItem3:: @ 82BAA1B +gText_ApprenticeThanksHeldItem3:: @ 82BAA1B .string "The item {STR_VAR_1}, okay.\n" .string "I'm not sure if I can get one…\l" .string "No! I'll do my best to get it.\p" @@ -804,7 +804,7 @@ gText_ApprenticeHoldNothing4:: @ 82BAC43 .string "Oh! So my {STR_VAR_1} should do\n" .string "the best it can empty-handed?$" -gText_ApprenticeThanksHeldItem4:: @ 82BAC78 +gText_ApprenticeThanksNoHeldItem4:: @ 82BAC78 .string "If you think that's best, I'll do that.\p" .string "Knowing that you made the decision,\n" .string "{PLAYER}{KUN}, I won't be so upset if\l" @@ -812,7 +812,7 @@ gText_ApprenticeThanksHeldItem4:: @ 82BAC78 .string "Okay, I'll look to you for advice again.\n" .string "Bye!$" -gText_ApprenticeThanksHaveHeldItem4:: @ 82BAD17 +gText_ApprenticeThanksHeldItem4:: @ 82BAD17 .string "The item {STR_VAR_1}, huh?\n" .string "Not bad. I'll use it!\p" .string "Knowing that you made the decision,\n" @@ -844,13 +844,13 @@ gText_ApprenticeHoldNothing5:: @ 82BAF4E .string "Oh, so me being a busy guy, you say\n" .string "my {STR_VAR_1} doesn't need anything?$" -gText_ApprenticeThanksHeldItem5:: @ 82BAF8F +gText_ApprenticeThanksNoHeldItem5:: @ 82BAF8F .string "Okay, gotcha.\n" .string "I won't need any time for that.\p" .string "Thanks today!\n" .string "See you around!$" -gText_ApprenticeThanksHaveHeldItem5:: @ 82BAFDB +gText_ApprenticeThanksHeldItem5:: @ 82BAFDB .string "Okay, gotcha.\n" .string "I'll find time somehow and find\l" .string "that {STR_VAR_1} you recommended.\p" @@ -877,14 +877,14 @@ gText_ApprenticeHoldNothing6:: @ 82BB18C .string "Is that right? My {STR_VAR_1} doesn't\n" .string "need to hold an item, you're saying.$" -gText_ApprenticeThanksHeldItem6:: @ 82BB1CE +gText_ApprenticeThanksNoHeldItem6:: @ 82BB1CE .string "Okay, that's what I'll do!\p" .string "I guess that's about all I wanted\n" .string "to ask you today.\p" .string "Let's meet here again, okay?\n" .string "Thanks!$" -gText_ApprenticeThanksHaveHeldItem6:: @ 82BB242 +gText_ApprenticeThanksHeldItem6:: @ 82BB242 .string "Uh-huh! One {STR_VAR_1}.\n" .string "What a cool choice!\l" .string "I'll definitely try that!\p" @@ -919,14 +919,14 @@ gText_ApprenticeHoldNothing7:: @ 82BB4C3 .string "In other words… My POKéMON has\n" .string "no need to hold an item?$" -gText_ApprenticeThanksHeldItem7:: @ 82BB4FB +gText_ApprenticeThanksNoHeldItem7:: @ 82BB4FB .string "I understand clearly now!\n" .string "I will keep trying like this.\p" .string "Thank you, {PLAYER}.\n" .string "I hope I can count on you again.\l" .string "Please take care!$" -gText_ApprenticeThanksHaveHeldItem7:: @ 82BB575 +gText_ApprenticeThanksHeldItem7:: @ 82BB575 .string "One {STR_VAR_1} it is!\n" .string "I will order it right away.\p" .string "Thank you, {PLAYER}.\n" @@ -951,13 +951,13 @@ gText_ApprenticeHoldNothing8:: @ 82BB6E5 .string "Oh, wow! I didn't expect that answer!\n" .string "So, a hold item isn't necessary?$" -gText_ApprenticeThanksHeldItem8:: @ 82BB72C +gText_ApprenticeThanksNoHeldItem8:: @ 82BB72C .string "Perfectly understood!\n" .string "I'll keep at this without an item!\p" .string "I hope you'll be willing to teach me\n" .string "some more another time.$" -gText_ApprenticeThanksHaveHeldItem8:: @ 82BB7A2 +gText_ApprenticeThanksHeldItem8:: @ 82BB7A2 .string "{STR_VAR_1}! I'll use that!\p" .string "Um… Could it be, {PLAYER}, you also\n" .string "make your POKéMON hold that item?\p" @@ -986,13 +986,13 @@ gText_ApprenticeHoldNothing9:: @ 82BB970 .string "Oh? So, you're saying my {STR_VAR_1}\n" .string "can win without holding any item?$" -gText_ApprenticeThanksHeldItem9:: @ 82BB9AE +gText_ApprenticeThanksNoHeldItem9:: @ 82BB9AE .string "Si, bueno!\n" .string "I'll give it my best shot, like, slam!\p" .string "All right, thanks, as always!\n" .string "Adios!$" -gText_ApprenticeThanksHaveHeldItem9:: @ 82BBA05 +gText_ApprenticeThanksHeldItem9:: @ 82BBA05 .string "Uh-huh, that's one {STR_VAR_1}?\n" .string "Si, bueno!\l" .string "I'll go find me one, like, bam!\p" @@ -1023,7 +1023,7 @@ gText_ApprenticeHoldNothing10:: @ 82BBC1C .string "What's that mean?\n" .string "Don't make it hold anything?$" -gText_ApprenticeThanksHeldItem10:: @ 82BBC4B +gText_ApprenticeThanksNoHeldItem10:: @ 82BBC4B .string "Okay, so it shouldn't hold anything.\n" .string "Then, I'd better get something for it!\p" .string "Just kidding!\n" @@ -1031,7 +1031,7 @@ gText_ApprenticeThanksHeldItem10:: @ 82BBC4B .string "Thanks, master!\n" .string "I hope you'll keep teaching me!$" -gText_ApprenticeThanksHaveHeldItem10:: @ 82BBCF6 +gText_ApprenticeThanksHeldItem10:: @ 82BBCF6 .string "Okay, so it's one {STR_VAR_1}!\n" .string "I'll make it hold anything but that!\p" .string "Just kidding!\n" @@ -1062,13 +1062,13 @@ gText_ApprenticeHoldNothing11:: @ 82BBEE5 .string "My {STR_VAR_1} doesn't need to be\l" .string "holding anything tight?$" -gText_ApprenticeThanksHeldItem11:: @ 82BBF25 +gText_ApprenticeThanksNoHeldItem11:: @ 82BBF25 .string "Okay, I hear you, sure I do!\n" .string "My POKéMON will go empty-handed, too!\p" .string "If it's advice I ever need,\n" .string "{PLAYER}, your word I'll always heed!$" -gText_ApprenticeThanksHaveHeldItem11:: @ 82BBFA4 +gText_ApprenticeThanksHeldItem11:: @ 82BBFA4 .string "Okay, one {STR_VAR_1},\n" .string "that's what I'll use.\l" .string "I was right to make you choose!\p" @@ -1101,14 +1101,14 @@ gText_ApprenticeHoldNothing12:: @ 82BC213 .string "My {STR_VAR_1} needs nothing?\n" .string "Doesn't need to hold anything?$" -gText_ApprenticeThanksHeldItem12:: @ 82BC247 +gText_ApprenticeThanksNoHeldItem12:: @ 82BC247 .string "If holding nothing is the best,\n" .string "I'll do as you suggest!\p" .string "Well, {PLAYER}, I have to roam free,\n" .string "but don't you forget about me.\p" .string "See you again, my smart friend!$" -gText_ApprenticeThanksHaveHeldItem12:: @ 82BC2DD +gText_ApprenticeThanksHeldItem12:: @ 82BC2DD .string "If holding that {STR_VAR_1} is\n" .string "the best, I'll do as you suggest!\p" .string "Well, {PLAYER}, I have to roam free,\n" @@ -1139,13 +1139,13 @@ gText_ApprenticeHoldNothing13:: @ 82BC514 .string "So your suggestion is my {STR_VAR_1}\n" .string "doesn't have to hold anything?$" -gText_ApprenticeThanksHeldItem13:: @ 82BC555 +gText_ApprenticeThanksNoHeldItem13:: @ 82BC555 .string "Hm, all right. That would be easier\n" .string "for me, the way things are now.\p" .string "I hope I can keep hitting you up\n" .string "for help like this.$" -gText_ApprenticeThanksHaveHeldItem13:: @ 82BC5CE +gText_ApprenticeThanksHeldItem13:: @ 82BC5CE .string "Hm, all right. That's one {STR_VAR_1}.\n" .string "My POKéMON's arm is fine, so I'll make\l" .string "it hold that item right away.\p" @@ -1177,7 +1177,7 @@ gText_ApprenticeHoldNothing14:: @ 82BC808 .string "Oh… Then, you think it would be better\n" .string "if my {STR_VAR_1} didn't have an item?$" -gText_ApprenticeThanksHeldItem14:: @ 82BC84D +gText_ApprenticeThanksNoHeldItem14:: @ 82BC84D .string "Oh… Okay!\n" .string "I'll go without an item.\p" .string "This is nerve-racking, though.\n" @@ -1186,7 +1186,7 @@ gText_ApprenticeThanksHeldItem14:: @ 82BC84D .string "If we meet again, I hope you will be\l" .string "as helpful.$" -gText_ApprenticeThanksHaveHeldItem14:: @ 82BC8EA +gText_ApprenticeThanksHeldItem14:: @ 82BC8EA .string "Oh… Okay!\n" .string "I'll go with that {STR_VAR_1}.\p" .string "This is nerve-racking, though.\n" @@ -1220,12 +1220,12 @@ gText_ApprenticeHoldNothing15:: @ 82BCB75 .string "It's better if it held nothing?\n" .string "Are you certain?$" -gText_ApprenticeThanksHeldItem15:: @ 82BCBA6 +gText_ApprenticeThanksNoHeldItem15:: @ 82BCBA6 .string "I see. If that's the case, that's fine.\n" .string "I thank you for your time.\p" .string "Let us meet again!$" -gText_ApprenticeThanksHaveHeldItem15:: @ 82BCBFC +gText_ApprenticeThanksHeldItem15:: @ 82BCBFC .string "One {STR_VAR_1}?\n" .string "Are you certain?\p" .string "I see. If that's the case, that's fine.\n" diff --git a/include/apprentice.h b/include/apprentice.h index ac7dff886..44329b677 100644 --- a/include/apprentice.h +++ b/include/apprentice.h @@ -10,7 +10,7 @@ struct ApprenticeTrainer u8 facilityClass; u16 species[APPRENTICE_SPECIES_COUNT]; u8 id; - u16 easyChatWords[6]; + u16 speechLost[EASY_CHAT_BATTLE_WORDS_COUNT]; }; extern const struct ApprenticeTrainer gApprentices[]; diff --git a/include/constants/apprentice.h b/include/constants/apprentice.h index 61f257767..87b7b12f5 100644 --- a/include/constants/apprentice.h +++ b/include/constants/apprentice.h @@ -7,33 +7,57 @@ #define APPRENTICE_LVL_MODE_50 (FRONTIER_LVL_50 + 1) #define APPRENTICE_LVL_MODE_OPEN (FRONTIER_LVL_OPEN + 1) -#define APPRENTICE_FUNC_0 0 -#define APPRENTICE_FUNC_1 1 -#define APPRENTICE_FUNC_2 2 +#define APPRENTICE_FUNC_GAVE_LVLMODE 0 +#define APPRENTICE_FUNC_SET_LVLMODE 1 +#define APPRENTICE_FUNC_SET_ID 2 #define APPRENTICE_FUNC_3 3 #define APPRENTICE_FUNC_4 4 -#define APPRENTICE_FUNC_5 5 +#define APPRENTICE_FUNC_ANSWERED_QUESTION 5 #define APPRENTICE_FUNC_6 6 #define APPRENTICE_FUNC_MENU 7 #define APPRENTICE_FUNC_PRINT_MSG 8 -#define APPRENTICE_FUNC_9 9 -#define APPRENTICE_FUNC_SET_TRUE_1 10 -#define APPRENTICE_FUNC_11 11 -#define APPRENTICE_FUNC_12 12 -#define APPRENTICE_FUNC_13 13 -#define APPRENTICE_FUNC_14 14 -#define APPRENTICE_FUNC_15 15 -#define APPRENTICE_FUNC_16 16 -#define APPRENTICE_FUNC_17 17 -#define APPRENTICE_FUNC_18 18 -#define APPRENTICE_FUNC_19 19 +#define APPRENTICE_FUNC_RESET 9 +#define APPRENTICE_FUNC_CHECK_GONE 10 +#define APPRENTICE_FUNC_GET_QUESTION 11 +#define APPRENTICE_FUNC_GET_NUM_PARTY_MONS 12 +#define APPRENTICE_FUNC_SET_PARTY_MON 13 +#define APPRENTICE_FUNC_INIT_QUESTION_DATA 14 +#define APPRENTICE_FUNC_FREE_QUESTION_DATA 15 +#define APPRENTICE_FUNC_BUFFER_STRING 16 +#define APPRENTICE_FUNC_SET_MOVE 17 +#define APPRENTICE_FUNC_SET_FIRST_MON 18 +#define APPRENTICE_FUNC_OPEN_BAG 19 #define APPRENTICE_FUNC_20 20 #define APPRENTICE_FUNC_21 21 -#define APPRENTICE_FUNC_22 22 -#define APPRENTICE_FUNC_23 23 -#define APPRENTICE_FUNC_24 24 +#define APPRENTICE_FUNC_SET_GFX_SAVED 22 +#define APPRENTICE_FUNC_SET_GFX 23 +#define APPRENTICE_FUNC_SHOULD_LEAVE 24 #define APPRENTICE_FUNC_25 25 +#define APPRENTICE_MSG_PLEASE_TEACH 0 +#define APPRENTICE_MSG_REJECT 1 +#define APPRENTICE_MSG_WHICH_LVL_MODE 2 +#define APPRENTICE_MSG_THANKS_LVL_MODE 3 +#define APPRENTICE_MSG_WHICH_MON_FIRST 4 +#define APPRENTICE_MSG_THANKS_MON_FIRST 5 +#define APPRENTICE_MSG_WHICH_MON 6 +#define APPRENTICE_MSG_THANKS_MON 7 +#define APPRENTICE_MSG_WHICH_MOVE 8 +#define APPRENTICE_MSG_THANKS_MOVE 9 +#define APPRENTICE_MSG_WHAT_HELD_ITEM 10 +#define APPRENTICE_MSG_PICK_WIN_SPEECH 11 +#define APPRENTICE_MSG_THANKS_HELD_ITEM 12 +#define APPRENTICE_MSG_HOLD_NOTHING 13 +#define APPRENTICE_MSG_THANKS_NO_HELD_ITEM 14 +#define APPRENTICE_MSG_THANKS_WIN_SPEECH 15 +#define APPRENTICE_MSG_ITEM_ALREADY_SUGGESTED 16 + +#define APPRENTICE_QUESTION_WHICH_FIRST 1 +#define APPRENTICE_QUESTION_WHICH_MON 2 +#define APPRENTICE_QUESTION_WHICH_MOVE 3 +#define APPRENTICE_QUESTION_WHAT_ITEM 4 +#define APPRENTICE_QUESTION_WIN_SPEECH 5 + #define APPRENTICE_ASK_WHICH_LEVEL 0 #define APPRENTICE_ASK_3SPECIES 1 #define APPRENTICE_ASK_2SPECIES 2 @@ -48,8 +72,8 @@ #define APPRENTICE_BUFF_MOVE2 4 #define APPRENTICE_BUFF_ITEM 5 #define APPRENTICE_BUFF_NAME 6 -#define APPRENTICE_BUFF_EASY_CHAT 7 +#define APPRENTICE_BUFF_WIN_SPEECH 7 #define APPRENTICE_BUFF_LEVEL 8 -#define APPRENTICE_BUFF_SPECIES4 9 +#define APPRENTICE_BUFF_FIRST_MON_SPECIES 9 #endif // GUARD_CONSTANTS_APPRENTICE_H diff --git a/include/global.h b/include/global.h index f067f5bbc..c00d71d8f 100644 --- a/include/global.h +++ b/include/global.h @@ -223,7 +223,7 @@ struct Apprentice u8 field_1; u8 number; struct ApprenticeMon party[MULTI_PARTY_SIZE]; - u16 easyChatWords[EASY_CHAT_BATTLE_WORDS_COUNT]; + u16 speechWon[EASY_CHAT_BATTLE_WORDS_COUNT]; u8 playerId[TRAINER_ID_LENGTH]; u8 playerName[PLAYER_NAME_LENGTH]; u8 language; @@ -415,9 +415,9 @@ struct Sav2_B8 struct PlayersApprentice { /*0xB0*/ u8 id; - /*0xB1*/ u8 lvlMode:2; //0: Unassigned, 1: Lv 50, 2: Open Lv - /*0xB1*/ u8 field_B1_1:4; - /*0xB1*/ u8 field_B1_2:2; + /*0xB1*/ u8 lvlMode:2; //0: Unassigned, 1: Lv 50, 2: Open Lv + /*0xB1*/ u8 questionsAnswered:4; + /*0xB1*/ u8 firstMonId:2; /*0xB2*/ u8 field_B2_0:3; /*0xB2*/ u8 field_B2_1:2; /*0xB3*/ u8 field_B3; diff --git a/include/item_menu.h b/include/item_menu.h index a21a6da4f..508f94815 100644 --- a/include/item_menu.h +++ b/include/item_menu.h @@ -71,7 +71,7 @@ extern u16 gSpecialVar_ItemId; void sub_81AAC14(void); void FavorLadyOpenBagMenu(void); void QuizLadyOpenBagMenu(void); -void sub_81AAC28(void); +void ApprenticeOpenBagMenu(void); void sub_81AABB0(void); void SetInitialScrollAndCursorPositions(u8 pocketId); void bag_menu_mail_related(void); diff --git a/src/apprentice.c b/src/apprentice.c index a1b77ca40..03194ef6d 100644 --- a/src/apprentice.c +++ b/src/apprentice.c @@ -36,35 +36,35 @@ struct Unk030062ECStruct { u8 unk0; - u16 unk2[MULTI_PARTY_SIZE][5]; - u8 unk20[3][5]; + u16 unkA[MULTI_PARTY_SIZE][5]; + u8 unkB[3][5]; }; struct Unk030062F0Struct { u16 unk0; - u16 unk2; + u16 unkX; u16 unk4; u16 unk6; }; // data/text/apprentice.inc -extern const u8 gText_ApprenticeIntro0[]; -extern const u8 gText_ApprenticeIntro1[]; -extern const u8 gText_ApprenticeIntro2[]; -extern const u8 gText_ApprenticeIntro3[]; -extern const u8 gText_ApprenticeIntro4[]; -extern const u8 gText_ApprenticeIntro5[]; -extern const u8 gText_ApprenticeIntro6[]; -extern const u8 gText_ApprenticeIntro7[]; -extern const u8 gText_ApprenticeIntro8[]; -extern const u8 gText_ApprenticeIntro9[]; -extern const u8 gText_ApprenticeIntro10[]; -extern const u8 gText_ApprenticeIntro11[]; -extern const u8 gText_ApprenticeIntro12[]; -extern const u8 gText_ApprenticeIntro13[]; -extern const u8 gText_ApprenticeIntro14[]; -extern const u8 gText_ApprenticeIntro15[]; +extern const u8 gText_ApprenticePleaseTeach0[]; +extern const u8 gText_ApprenticePleaseTeach1[]; +extern const u8 gText_ApprenticePleaseTeach2[]; +extern const u8 gText_ApprenticePleaseTeach3[]; +extern const u8 gText_ApprenticePleaseTeach4[]; +extern const u8 gText_ApprenticePleaseTeach5[]; +extern const u8 gText_ApprenticePleaseTeach6[]; +extern const u8 gText_ApprenticePleaseTeach7[]; +extern const u8 gText_ApprenticePleaseTeach8[]; +extern const u8 gText_ApprenticePleaseTeach9[]; +extern const u8 gText_ApprenticePleaseTeach10[]; +extern const u8 gText_ApprenticePleaseTeach11[]; +extern const u8 gText_ApprenticePleaseTeach12[]; +extern const u8 gText_ApprenticePleaseTeach13[]; +extern const u8 gText_ApprenticePleaseTeach14[]; +extern const u8 gText_ApprenticePleaseTeach15[]; extern const u8 gText_ApprenticeRejectTeaching0[]; extern const u8 gText_ApprenticeRejectTeaching1[]; extern const u8 gText_ApprenticeRejectTeaching2[]; @@ -179,6 +179,22 @@ extern const u8 gText_ApprenticeHoldNothing12[]; extern const u8 gText_ApprenticeHoldNothing13[]; extern const u8 gText_ApprenticeHoldNothing14[]; extern const u8 gText_ApprenticeHoldNothing15[]; +extern const u8 gText_ApprenticeThanksNoHeldItem0[]; +extern const u8 gText_ApprenticeThanksNoHeldItem1[]; +extern const u8 gText_ApprenticeThanksNoHeldItem2[]; +extern const u8 gText_ApprenticeThanksNoHeldItem3[]; +extern const u8 gText_ApprenticeThanksNoHeldItem4[]; +extern const u8 gText_ApprenticeThanksNoHeldItem5[]; +extern const u8 gText_ApprenticeThanksNoHeldItem6[]; +extern const u8 gText_ApprenticeThanksNoHeldItem7[]; +extern const u8 gText_ApprenticeThanksNoHeldItem8[]; +extern const u8 gText_ApprenticeThanksNoHeldItem9[]; +extern const u8 gText_ApprenticeThanksNoHeldItem10[]; +extern const u8 gText_ApprenticeThanksNoHeldItem11[]; +extern const u8 gText_ApprenticeThanksNoHeldItem12[]; +extern const u8 gText_ApprenticeThanksNoHeldItem13[]; +extern const u8 gText_ApprenticeThanksNoHeldItem14[]; +extern const u8 gText_ApprenticeThanksNoHeldItem15[]; extern const u8 gText_ApprenticeThanksHeldItem0[]; extern const u8 gText_ApprenticeThanksHeldItem1[]; extern const u8 gText_ApprenticeThanksHeldItem2[]; @@ -195,22 +211,6 @@ extern const u8 gText_ApprenticeThanksHeldItem12[]; extern const u8 gText_ApprenticeThanksHeldItem13[]; extern const u8 gText_ApprenticeThanksHeldItem14[]; extern const u8 gText_ApprenticeThanksHeldItem15[]; -extern const u8 gText_ApprenticeThanksHaveHeldItem0[]; -extern const u8 gText_ApprenticeThanksHaveHeldItem1[]; -extern const u8 gText_ApprenticeThanksHaveHeldItem2[]; -extern const u8 gText_ApprenticeThanksHaveHeldItem3[]; -extern const u8 gText_ApprenticeThanksHaveHeldItem4[]; -extern const u8 gText_ApprenticeThanksHaveHeldItem5[]; -extern const u8 gText_ApprenticeThanksHaveHeldItem6[]; -extern const u8 gText_ApprenticeThanksHaveHeldItem7[]; -extern const u8 gText_ApprenticeThanksHaveHeldItem8[]; -extern const u8 gText_ApprenticeThanksHaveHeldItem9[]; -extern const u8 gText_ApprenticeThanksHaveHeldItem10[]; -extern const u8 gText_ApprenticeThanksHaveHeldItem11[]; -extern const u8 gText_ApprenticeThanksHaveHeldItem12[]; -extern const u8 gText_ApprenticeThanksHaveHeldItem13[]; -extern const u8 gText_ApprenticeThanksHaveHeldItem14[]; -extern const u8 gText_ApprenticeThanksHaveHeldItem15[]; extern const u8 gText_ApprenticeItemAlreadyRecommended0[]; extern const u8 gText_ApprenticeItemAlreadyRecommended1[]; extern const u8 gText_ApprenticeItemAlreadyRecommended2[]; @@ -359,28 +359,28 @@ static void ExecuteFuncAfterButtonPress(void (*func)(void)); static void Script_GivenApprenticeLvlMode(void); static void Script_SetApprenticeLvlMode(void); -static void sub_81A0978(void); +static void Script_SetApprenticeId(void); static void sub_819FC60(void); static void sub_81A0984(void); -static void sub_81A0990(void); +static void IncrementQuestionsAnswered(void); static void sub_81A09D0(void); static void Script_CreateApprenticeMenu(void); static void Script_PrintApprenticeMessage(void); static void Script_ResetPlayerApprentice(void); -static void SetVar0x8004True1(void); -static void sub_81A0CC0(void); -static void sub_81A09B4(void); -static void sub_81A0D40(void); -static void sub_81A0DD4(void); -static void sub_81A0FE4(void); +static void GetShouldCheckApprenticeGone(void); +static void ApprenticeGetQuestion(void); +static void GetNumApprenticePartyMonsSelected(void); +static void SetApprenticePartyMon(void); +static void InitApprenticeQuestionData(void); +static void FreeApprenticeQuestionData(void); static void ApprenticeBufferString(void); -static void sub_81A0D80(void); -static void sub_81A11F8(void); -static void sub_81A1218(void); +static void SetApprenticeMonMove(void); +static void SetFirstApprenticeMon(void); +static void Script_ApprenticeOpenBagMenu(void); static void sub_81A1224(void); static void sub_81A1438(void); -static void sub_81A150C(void); -static void Script_SetPlayerApprenticeTrainerGfxId(void); +static void SetSavedApprenticeTrainerGfxId(void); +static void SetPlayerApprenticeTrainerGfxId(void); static void GetShouldApprenticeLeave(void); static void sub_81A1370(void); @@ -394,7 +394,7 @@ const struct ApprenticeTrainer gApprentices[NUM_APPRENTICES] = .facilityClass = FACILITY_CLASS_BUG_CATCHER, .species = {SPECIES_BEAUTIFLY, SPECIES_DUSTOX, SPECIES_ILLUMISE, SPECIES_SHIFTRY, SPECIES_BRELOOM, SPECIES_NINJASK, SPECIES_SHEDINJA, SPECIES_PINSIR, SPECIES_HERACROSS, SPECIES_VOLBEAT}, .id = 0, - .easyChatWords = {EC_WORD_NO, EC_WORD_MISTAKE, EC_WORD_EXCL, EC_WORD_I, EC_WORD_LOST, EC_WORD_BADLY}, + .speechLost = {EC_WORD_NO, EC_WORD_MISTAKE, EC_WORD_EXCL, EC_WORD_I, EC_WORD_LOST, EC_WORD_BADLY}, }, { .name = {_("ヒロオ"), _("LIONEL"), _("LIONEL"), _("CAIO"), _("LUDWIG"), _("LEO")}, @@ -402,7 +402,7 @@ const struct ApprenticeTrainer gApprentices[NUM_APPRENTICES] = .facilityClass = FACILITY_CLASS_YOUNGSTER, .species = {SPECIES_SWELLOW, SPECIES_SWALOT, SPECIES_SHUCKLE, SPECIES_MANECTRIC, SPECIES_TORKOAL, SPECIES_HARIYAMA, SPECIES_MIGHTYENA, SPECIES_LUDICOLO, SPECIES_CRAWDAUNT, SPECIES_WHISCASH}, .id = 1, - .easyChatWords = {EC_WORD_OKAY, EC_WORD_I, EC_WORD_LOST, EC_WORD_YOU_RE, EC_WORD_A, EC_WORD_MASTER}, + .speechLost = {EC_WORD_OKAY, EC_WORD_I, EC_WORD_LOST, EC_WORD_YOU_RE, EC_WORD_A, EC_WORD_MASTER}, }, { .name = {_("ケイジ"), _("SONNY"), _("HERVE"), _("FEDRO"), _("WENZEL"), _("SANTI")}, @@ -410,7 +410,7 @@ const struct ApprenticeTrainer gApprentices[NUM_APPRENTICES] = .facilityClass = FACILITY_CLASS_SCHOOL_KID_M, .species = {SPECIES_LINOONE, SPECIES_MIGHTYENA, SPECIES_WHISCASH, SPECIES_ZANGOOSE, SPECIES_SEVIPER, SPECIES_NINETALES, SPECIES_KECLEON, SPECIES_SHUCKLE, SPECIES_MANECTRIC, SPECIES_MACHAMP}, .id = 2, - .easyChatWords = {EC_WORD_I, EC_WORD_WENT, EC_WORD_AND, EC_WORD_LOST, EC_WORD_AWW, EC_WORD_ELLIPSIS}, + .speechLost = {EC_WORD_I, EC_WORD_WENT, EC_WORD_AND, EC_WORD_LOST, EC_WORD_AWW, EC_WORD_ELLIPSIS}, }, { .name = {_("ユラ"), _("LAYLA"), _("LAYLA"), _("ASTRID"), _("SONJA"), _("LOLA")}, @@ -418,7 +418,7 @@ const struct ApprenticeTrainer gApprentices[NUM_APPRENTICES] = .facilityClass = FACILITY_CLASS_LASS, .species = {SPECIES_SWALOT, SPECIES_XATU, SPECIES_ALTARIA, SPECIES_GOLDUCK, SPECIES_FLYGON, SPECIES_ALAKAZAM, SPECIES_GARDEVOIR, SPECIES_WAILORD, SPECIES_GRUMPIG, SPECIES_MIGHTYENA}, .id = 3, - .easyChatWords = {EC_WORD_IS, EC_WORD_THIS, EC_WORD_TOO, EC_WORD_MUCH, EC_WORD_QUES, 0xFFFF}, + .speechLost = {EC_WORD_IS, EC_WORD_THIS, EC_WORD_TOO, EC_WORD_MUCH, EC_WORD_QUES, 0xFFFF}, }, { .name = {_("ヨウカ"), _("MACY"), _("AMELIE"), _("CLEO"), _("MARIA"), _("ELISA")}, @@ -426,7 +426,7 @@ const struct ApprenticeTrainer gApprentices[NUM_APPRENTICES] = .facilityClass = FACILITY_CLASS_SCHOOL_KID_F, .species = {SPECIES_WIGGLYTUFF, SPECIES_LINOONE, SPECIES_KINGDRA, SPECIES_DELCATTY, SPECIES_RAICHU, SPECIES_FEAROW, SPECIES_STARMIE, SPECIES_MEDICHAM, SPECIES_SHIFTRY, SPECIES_BEAUTIFLY}, .id = 4, - .easyChatWords = {EC_WORD_THIS, EC_WORD_WON_T, EC_WORD_BE, EC_WORD_HAPPENING, EC_WORD_NEXT, EC_WORD_TIME}, + .speechLost = {EC_WORD_THIS, EC_WORD_WON_T, EC_WORD_BE, EC_WORD_HAPPENING, EC_WORD_NEXT, EC_WORD_TIME}, }, { .name = {_("ヤスシ"), _("DONTE"), _("BRAHIM"), _("GLAUCO"), _("JOSEF"), _("ROQUE")}, @@ -434,7 +434,7 @@ const struct ApprenticeTrainer gApprentices[NUM_APPRENTICES] = .facilityClass = FACILITY_CLASS_RUNNING_TRIATHLETE_M, .species = {SPECIES_STARMIE, SPECIES_DODRIO, SPECIES_AGGRON, SPECIES_MAGNETON, SPECIES_MACHAMP, SPECIES_ARMALDO, SPECIES_HERACROSS, SPECIES_NOSEPASS, SPECIES_EXPLOUD, SPECIES_MIGHTYENA}, .id = 5, - .easyChatWords = {EC_WORD_I_AM, EC_WORD_GOING, EC_WORD_TO, EC_WORD_RUN, EC_WORD_BYE_BYE, EC_WORD_EXCL}, + .speechLost = {EC_WORD_I_AM, EC_WORD_GOING, EC_WORD_TO, EC_WORD_RUN, EC_WORD_BYE_BYE, EC_WORD_EXCL}, }, { .name = {_("ミサオ"), _("AMIRA"), _("LAURE"), _("DAFNE"), _("AMELIE"), _("LARA")}, @@ -442,7 +442,7 @@ const struct ApprenticeTrainer gApprentices[NUM_APPRENTICES] = .facilityClass = FACILITY_CLASS_RUNNING_TRIATHLETE_F, .species = {SPECIES_STARMIE, SPECIES_DODRIO, SPECIES_MAGNETON, SPECIES_MEDICHAM, SPECIES_MIGHTYENA, SPECIES_GLALIE, SPECIES_GOLEM, SPECIES_ELECTRODE, SPECIES_PELIPPER, SPECIES_SHARPEDO}, .id = 6, - .easyChatWords = {EC_WORD_AHAHA, EC_WORD_DEFEATED, EC_WORD_EXCL, EC_WORD_IT_S, EC_WORD_NOTHING, EC_WORD_EXCL}, + .speechLost = {EC_WORD_AHAHA, EC_WORD_DEFEATED, EC_WORD_EXCL, EC_WORD_IT_S, EC_WORD_NOTHING, EC_WORD_EXCL}, }, { .name = {_("カズサ"), _("KALI"), _("JODIE"), _("ILENIA"), _("KARO"), _("ELSA")}, @@ -450,7 +450,7 @@ const struct ApprenticeTrainer gApprentices[NUM_APPRENTICES] = .facilityClass = FACILITY_CLASS_BEAUTY, .species = {SPECIES_NINETALES, SPECIES_ALAKAZAM, SPECIES_SCEPTILE, SPECIES_SALAMENCE, SPECIES_GOLDUCK, SPECIES_MAWILE, SPECIES_WEEZING, SPECIES_LANTURN, SPECIES_GARDEVOIR, SPECIES_MILOTIC}, .id = 7, - .easyChatWords = {EC_WORD_YOU_RE, EC_WORD_STRONG, EC_WORD_AREN_T, EC_WORD_YOU, EC_WORD_QUES, 0xFFFF}, + .speechLost = {EC_WORD_YOU_RE, EC_WORD_STRONG, EC_WORD_AREN_T, EC_WORD_YOU, EC_WORD_QUES, 0xFFFF}, }, { .name = {_("スミレ"), _("ANNIE"), _("ANNIE"), _("IMELDA"), _("INES"), _("ROSA")}, @@ -458,7 +458,7 @@ const struct ApprenticeTrainer gApprentices[NUM_APPRENTICES] = .facilityClass = FACILITY_CLASS_AROMA_LADY, .species = {SPECIES_SCEPTILE, SPECIES_VILEPLUME, SPECIES_BELLOSSOM, SPECIES_ROSELIA, SPECIES_CORSOLA, SPECIES_FLYGON, SPECIES_BRELOOM, SPECIES_MILOTIC, SPECIES_ALTARIA, SPECIES_CRADILY}, .id = 8, - .easyChatWords = {EC_WORD_WHAT, EC_WORD_TOUGH, EC_WORD_POKEMON, EC_WORD_YOU, EC_WORD_HAVE, EC_WORD_EXCL}, + .speechLost = {EC_WORD_WHAT, EC_WORD_TOUGH, EC_WORD_POKEMON, EC_WORD_YOU, EC_WORD_HAVE, EC_WORD_EXCL}, }, { .name = {_("アキノリ"), _("DILLEN"), _("RENE"), _("INDRO"), _("DETLEF"), _("PEDRO")}, @@ -466,7 +466,7 @@ const struct ApprenticeTrainer gApprentices[NUM_APPRENTICES] = .facilityClass = FACILITY_CLASS_HIKER, .species = {SPECIES_SKARMORY, SPECIES_GOLEM, SPECIES_BLAZIKEN, SPECIES_CAMERUPT, SPECIES_DONPHAN, SPECIES_MUK, SPECIES_SALAMENCE, SPECIES_TROPIUS, SPECIES_SOLROCK, SPECIES_RHYDON}, .id = 9, - .easyChatWords = {EC_WORD_WE, EC_WORD_WERE, EC_WORD_JUST, EC_WORD_SHREDDED, EC_WORD_ELLIPSIS, 0xFFFF}, + .speechLost = {EC_WORD_WE, EC_WORD_WERE, EC_WORD_JUST, EC_WORD_SHREDDED, EC_WORD_ELLIPSIS, 0xFFFF}, }, { .name = {_("トウゾウ"), _("DALLAS"), _("BRUNO"), _("LEARCO"), _("ANSGAR"), _("MANOLO")}, @@ -474,7 +474,7 @@ const struct ApprenticeTrainer gApprentices[NUM_APPRENTICES] = .facilityClass = FACILITY_CLASS_FISHERMAN, .species = {SPECIES_SEAKING, SPECIES_STARMIE, SPECIES_GOLDUCK, SPECIES_TENTACRUEL, SPECIES_OCTILLERY, SPECIES_GOREBYSS, SPECIES_GLALIE, SPECIES_WAILORD, SPECIES_SHARPEDO, SPECIES_KINGDRA}, .id = 10, - .easyChatWords = {EC_WORD_YOUR, EC_WORD_WIN, EC_WORD_ANGERS, EC_WORD_ME, EC_WORD_EXCL, 0xFFFF}, + .speechLost = {EC_WORD_YOUR, EC_WORD_WIN, EC_WORD_ANGERS, EC_WORD_ME, EC_WORD_EXCL, 0xFFFF}, }, { .name = {_("セイヤ"), _("FRANK"), _("FRANK"), _("OLINDO"), _("FRANK"), _("MAURO")}, @@ -482,7 +482,7 @@ const struct ApprenticeTrainer gApprentices[NUM_APPRENTICES] = .facilityClass = FACILITY_CLASS_SAILOR, .species = {SPECIES_QUAGSIRE, SPECIES_STARMIE, SPECIES_PELIPPER, SPECIES_CRAWDAUNT, SPECIES_WAILORD, SPECIES_GYARADOS, SPECIES_SWAMPERT, SPECIES_LANTURN, SPECIES_WHISCASH, SPECIES_SHUCKLE}, .id = 11, - .easyChatWords = {EC_WORD_LOSING, EC_WORD_DOESN_T, EC_MOVE(CUT), EC_WORD_ME, EC_WORD_DEEP, EC_WORD_OK_QUES}, + .speechLost = {EC_WORD_LOSING, EC_WORD_DOESN_T, EC_MOVE(CUT), EC_WORD_ME, EC_WORD_DEEP, EC_WORD_OK_QUES}, }, { .name = {_("リュウジ"), _("LAMONT"), _("XAV"), _("ORFEO"), _("JÜRGEN"), _("JORGE")}, @@ -490,7 +490,7 @@ const struct ApprenticeTrainer gApprentices[NUM_APPRENTICES] = .facilityClass = FACILITY_CLASS_GUITARIST, .species = {SPECIES_ABSOL, SPECIES_CROBAT, SPECIES_EXPLOUD, SPECIES_MAGNETON, SPECIES_SHARPEDO, SPECIES_MANECTRIC, SPECIES_METAGROSS, SPECIES_ELECTRODE, SPECIES_NOSEPASS, SPECIES_WEEZING}, .id = 12, - .easyChatWords = {EC_WORD_A, EC_WORD_LOSS, EC_WORD_IS, EC_WORD_WHAT, EC_WORD_THIS, EC_WORD_IS}, + .speechLost = {EC_WORD_A, EC_WORD_LOSS, EC_WORD_IS, EC_WORD_WHAT, EC_WORD_THIS, EC_WORD_IS}, }, { .name = {_("カツアキ"), _("TYRESE"), _("ANDY"), _("PARIDE"), _("DAVID"), _("CHICHO")}, @@ -498,7 +498,7 @@ const struct ApprenticeTrainer gApprentices[NUM_APPRENTICES] = .facilityClass = FACILITY_CLASS_BLACK_BELT, .species = {SPECIES_BLAZIKEN, SPECIES_GOLEM, SPECIES_MACHAMP, SPECIES_RHYDON, SPECIES_HARIYAMA, SPECIES_AGGRON, SPECIES_MEDICHAM, SPECIES_ZANGOOSE, SPECIES_VIGOROTH, SPECIES_SLAKING}, .id = 13, - .easyChatWords = {EC_WORD_I_AM, EC_WORD_TOO_WEAK, EC_WORD_AND, EC_WORD_LOW, EC_WORD_OF, EC_WORD_POWER}, + .speechLost = {EC_WORD_I_AM, EC_WORD_TOO_WEAK, EC_WORD_AND, EC_WORD_LOW, EC_WORD_OF, EC_WORD_POWER}, }, { .name = {_("トシミツ"), _("DANTE"), _("DANTE"), _("RAOUL"), _("LOTHAR"), _("PABLO")}, @@ -506,7 +506,7 @@ const struct ApprenticeTrainer gApprentices[NUM_APPRENTICES] = .facilityClass = FACILITY_CLASS_RUIN_MANIAC, .species = {SPECIES_SCEPTILE, SPECIES_SANDSLASH, SPECIES_FLYGON, SPECIES_CLAYDOL, SPECIES_ARMALDO, SPECIES_CROBAT, SPECIES_CRADILY, SPECIES_SOLROCK, SPECIES_LUNATONE, SPECIES_GOLEM}, .id = 14, - .easyChatWords = {EC_WORD_I, EC_WORD_DON_T, EC_WORD_UNDERSTAND, EC_WORD_WHAT, EC_WORD_IS, EC_WORD_HAPPENING}, + .speechLost = {EC_WORD_I, EC_WORD_DON_T, EC_WORD_UNDERSTAND, EC_WORD_WHAT, EC_WORD_IS, EC_WORD_HAPPENING}, }, { .name = {_("ローウェン"), _("ARTURO"), _("ARTURO"), _("ROMOLO"), _("BRIAN"), _("ARTURO")}, @@ -514,7 +514,7 @@ const struct ApprenticeTrainer gApprentices[NUM_APPRENTICES] = .facilityClass = FACILITY_CLASS_GENTLEMAN, .species = {SPECIES_ABSOL, SPECIES_MIGHTYENA, SPECIES_ALAKAZAM, SPECIES_BANETTE, SPECIES_NINETALES, SPECIES_CLAYDOL, SPECIES_MUK, SPECIES_SALAMENCE, SPECIES_WALREIN, SPECIES_DUSCLOPS}, .id = 15, - .easyChatWords = {EC_WORD_THIS, EC_WORD_HAS, EC_WORD_TO, EC_WORD_BE, EC_WORD_A, EC_WORD_LIE}, + .speechLost = {EC_WORD_THIS, EC_WORD_HAS, EC_WORD_TO, EC_WORD_BE, EC_WORD_A, EC_WORD_LIE}, }, }; @@ -525,22 +525,22 @@ const struct ApprenticeTrainer gApprentices[NUM_APPRENTICES] = // Fourth is after a level mode is chosen for the apprentice static const u8 *const sApprenticeFirstMeetingTexts[NUM_APPRENTICES][4] = { - {gText_ApprenticeIntro0, gText_ApprenticeRejectTeaching0, gText_ApprenticeWhichLevelMode0, gText_ApprenticeLevelModeThanks0}, - {gText_ApprenticeIntro1, gText_ApprenticeRejectTeaching1, gText_ApprenticeWhichLevelMode1, gText_ApprenticeLevelModeThanks1}, - {gText_ApprenticeIntro2, gText_ApprenticeRejectTeaching2, gText_ApprenticeWhichLevelMode2, gText_ApprenticeLevelModeThanks2}, - {gText_ApprenticeIntro3, gText_ApprenticeRejectTeaching3, gText_ApprenticeWhichLevelMode3, gText_ApprenticeLevelModeThanks3}, - {gText_ApprenticeIntro4, gText_ApprenticeRejectTeaching4, gText_ApprenticeWhichLevelMode4, gText_ApprenticeLevelModeThanks4}, - {gText_ApprenticeIntro5, gText_ApprenticeRejectTeaching5, gText_ApprenticeWhichLevelMode5, gText_ApprenticeLevelModeThanks5}, - {gText_ApprenticeIntro6, gText_ApprenticeRejectTeaching6, gText_ApprenticeWhichLevelMode6, gText_ApprenticeLevelModeThanks6}, - {gText_ApprenticeIntro7, gText_ApprenticeRejectTeaching7, gText_ApprenticeWhichLevelMode7, gText_ApprenticeLevelModeThanks7}, - {gText_ApprenticeIntro8, gText_ApprenticeRejectTeaching8, gText_ApprenticeWhichLevelMode8, gText_ApprenticeLevelModeThanks8}, - {gText_ApprenticeIntro9, gText_ApprenticeRejectTeaching9, gText_ApprenticeWhichLevelMode9, gText_ApprenticeLevelModeThanks9}, - {gText_ApprenticeIntro10, gText_ApprenticeRejectTeaching10, gText_ApprenticeWhichLevelMode10, gText_ApprenticeLevelModeThanks10}, - {gText_ApprenticeIntro11, gText_ApprenticeRejectTeaching11, gText_ApprenticeWhichLevelMode11, gText_ApprenticeLevelModeThanks11}, - {gText_ApprenticeIntro12, gText_ApprenticeRejectTeaching12, gText_ApprenticeWhichLevelMode12, gText_ApprenticeLevelModeThanks12}, - {gText_ApprenticeIntro13, gText_ApprenticeRejectTeaching13, gText_ApprenticeWhichLevelMode13, gText_ApprenticeLevelModeThanks13}, - {gText_ApprenticeIntro14, gText_ApprenticeRejectTeaching14, gText_ApprenticeWhichLevelMode14, gText_ApprenticeLevelModeThanks14}, - {gText_ApprenticeIntro15, gText_ApprenticeRejectTeaching15, gText_ApprenticeWhichLevelMode15, gText_ApprenticeLevelModeThanks15}, + {gText_ApprenticePleaseTeach0, gText_ApprenticeRejectTeaching0, gText_ApprenticeWhichLevelMode0, gText_ApprenticeLevelModeThanks0}, + {gText_ApprenticePleaseTeach1, gText_ApprenticeRejectTeaching1, gText_ApprenticeWhichLevelMode1, gText_ApprenticeLevelModeThanks1}, + {gText_ApprenticePleaseTeach2, gText_ApprenticeRejectTeaching2, gText_ApprenticeWhichLevelMode2, gText_ApprenticeLevelModeThanks2}, + {gText_ApprenticePleaseTeach3, gText_ApprenticeRejectTeaching3, gText_ApprenticeWhichLevelMode3, gText_ApprenticeLevelModeThanks3}, + {gText_ApprenticePleaseTeach4, gText_ApprenticeRejectTeaching4, gText_ApprenticeWhichLevelMode4, gText_ApprenticeLevelModeThanks4}, + {gText_ApprenticePleaseTeach5, gText_ApprenticeRejectTeaching5, gText_ApprenticeWhichLevelMode5, gText_ApprenticeLevelModeThanks5}, + {gText_ApprenticePleaseTeach6, gText_ApprenticeRejectTeaching6, gText_ApprenticeWhichLevelMode6, gText_ApprenticeLevelModeThanks6}, + {gText_ApprenticePleaseTeach7, gText_ApprenticeRejectTeaching7, gText_ApprenticeWhichLevelMode7, gText_ApprenticeLevelModeThanks7}, + {gText_ApprenticePleaseTeach8, gText_ApprenticeRejectTeaching8, gText_ApprenticeWhichLevelMode8, gText_ApprenticeLevelModeThanks8}, + {gText_ApprenticePleaseTeach9, gText_ApprenticeRejectTeaching9, gText_ApprenticeWhichLevelMode9, gText_ApprenticeLevelModeThanks9}, + {gText_ApprenticePleaseTeach10, gText_ApprenticeRejectTeaching10, gText_ApprenticeWhichLevelMode10, gText_ApprenticeLevelModeThanks10}, + {gText_ApprenticePleaseTeach11, gText_ApprenticeRejectTeaching11, gText_ApprenticeWhichLevelMode11, gText_ApprenticeLevelModeThanks11}, + {gText_ApprenticePleaseTeach12, gText_ApprenticeRejectTeaching12, gText_ApprenticeWhichLevelMode12, gText_ApprenticeLevelModeThanks12}, + {gText_ApprenticePleaseTeach13, gText_ApprenticeRejectTeaching13, gText_ApprenticeWhichLevelMode13, gText_ApprenticeLevelModeThanks13}, + {gText_ApprenticePleaseTeach14, gText_ApprenticeRejectTeaching14, gText_ApprenticeWhichLevelMode14, gText_ApprenticeLevelModeThanks14}, + {gText_ApprenticePleaseTeach15, gText_ApprenticeRejectTeaching15, gText_ApprenticeWhichLevelMode15, gText_ApprenticeLevelModeThanks15}, }; static const u8 *const sApprenticeWhichMonTexts[NUM_APPRENTICES][2] = @@ -569,22 +569,22 @@ static const u8 *const sApprenticeWhichMonTexts[NUM_APPRENTICES][2] = // TODO static const u8 *const sApprenticeHeldItemTexts[NUM_APPRENTICES][5] = { - {gText_ApprenticeWhatHeldItem0, gText_ApprenticeHoldNothing0, gText_ApprenticeThanksHeldItem0, gText_ApprenticeThanksHaveHeldItem0, gText_ApprenticeItemAlreadyRecommended0}, - {gText_ApprenticeWhatHeldItem1, gText_ApprenticeHoldNothing1, gText_ApprenticeThanksHeldItem1, gText_ApprenticeThanksHaveHeldItem1, gText_ApprenticeItemAlreadyRecommended1}, - {gText_ApprenticeWhatHeldItem2, gText_ApprenticeHoldNothing2, gText_ApprenticeThanksHeldItem2, gText_ApprenticeThanksHaveHeldItem2, gText_ApprenticeItemAlreadyRecommended2}, - {gText_ApprenticeWhatHeldItem3, gText_ApprenticeHoldNothing3, gText_ApprenticeThanksHeldItem3, gText_ApprenticeThanksHaveHeldItem3, gText_ApprenticeItemAlreadyRecommended3}, - {gText_ApprenticeWhatHeldItem4, gText_ApprenticeHoldNothing4, gText_ApprenticeThanksHeldItem4, gText_ApprenticeThanksHaveHeldItem4, gText_ApprenticeItemAlreadyRecommended4}, - {gText_ApprenticeWhatHeldItem5, gText_ApprenticeHoldNothing5, gText_ApprenticeThanksHeldItem5, gText_ApprenticeThanksHaveHeldItem5, gText_ApprenticeItemAlreadyRecommended5}, - {gText_ApprenticeWhatHeldItem6, gText_ApprenticeHoldNothing6, gText_ApprenticeThanksHeldItem6, gText_ApprenticeThanksHaveHeldItem6, gText_ApprenticeItemAlreadyRecommended6}, - {gText_ApprenticeWhatHeldItem7, gText_ApprenticeHoldNothing7, gText_ApprenticeThanksHeldItem7, gText_ApprenticeThanksHaveHeldItem7, gText_ApprenticeItemAlreadyRecommended7}, - {gText_ApprenticeWhatHeldItem8, gText_ApprenticeHoldNothing8, gText_ApprenticeThanksHeldItem8, gText_ApprenticeThanksHaveHeldItem8, gText_ApprenticeItemAlreadyRecommended8}, - {gText_ApprenticeWhatHeldItem9, gText_ApprenticeHoldNothing9, gText_ApprenticeThanksHeldItem9, gText_ApprenticeThanksHaveHeldItem9, gText_ApprenticeItemAlreadyRecommended9}, - {gText_ApprenticeWhatHeldItem10, gText_ApprenticeHoldNothing10, gText_ApprenticeThanksHeldItem10, gText_ApprenticeThanksHaveHeldItem10, gText_ApprenticeItemAlreadyRecommended10}, - {gText_ApprenticeWhatHeldItem11, gText_ApprenticeHoldNothing11, gText_ApprenticeThanksHeldItem11, gText_ApprenticeThanksHaveHeldItem11, gText_ApprenticeItemAlreadyRecommended11}, - {gText_ApprenticeWhatHeldItem12, gText_ApprenticeHoldNothing12, gText_ApprenticeThanksHeldItem12, gText_ApprenticeThanksHaveHeldItem12, gText_ApprenticeItemAlreadyRecommended12}, - {gText_ApprenticeWhatHeldItem13, gText_ApprenticeHoldNothing13, gText_ApprenticeThanksHeldItem13, gText_ApprenticeThanksHaveHeldItem13, gText_ApprenticeItemAlreadyRecommended13}, - {gText_ApprenticeWhatHeldItem14, gText_ApprenticeHoldNothing14, gText_ApprenticeThanksHeldItem14, gText_ApprenticeThanksHaveHeldItem14, gText_ApprenticeItemAlreadyRecommended14}, - {gText_ApprenticeWhatHeldItem15, gText_ApprenticeHoldNothing15, gText_ApprenticeThanksHeldItem15, gText_ApprenticeThanksHaveHeldItem15, gText_ApprenticeItemAlreadyRecommended15}, + {gText_ApprenticeWhatHeldItem0, gText_ApprenticeHoldNothing0, gText_ApprenticeThanksNoHeldItem0, gText_ApprenticeThanksHeldItem0, gText_ApprenticeItemAlreadyRecommended0}, + {gText_ApprenticeWhatHeldItem1, gText_ApprenticeHoldNothing1, gText_ApprenticeThanksNoHeldItem1, gText_ApprenticeThanksHeldItem1, gText_ApprenticeItemAlreadyRecommended1}, + {gText_ApprenticeWhatHeldItem2, gText_ApprenticeHoldNothing2, gText_ApprenticeThanksNoHeldItem2, gText_ApprenticeThanksHeldItem2, gText_ApprenticeItemAlreadyRecommended2}, + {gText_ApprenticeWhatHeldItem3, gText_ApprenticeHoldNothing3, gText_ApprenticeThanksNoHeldItem3, gText_ApprenticeThanksHeldItem3, gText_ApprenticeItemAlreadyRecommended3}, + {gText_ApprenticeWhatHeldItem4, gText_ApprenticeHoldNothing4, gText_ApprenticeThanksNoHeldItem4, gText_ApprenticeThanksHeldItem4, gText_ApprenticeItemAlreadyRecommended4}, + {gText_ApprenticeWhatHeldItem5, gText_ApprenticeHoldNothing5, gText_ApprenticeThanksNoHeldItem5, gText_ApprenticeThanksHeldItem5, gText_ApprenticeItemAlreadyRecommended5}, + {gText_ApprenticeWhatHeldItem6, gText_ApprenticeHoldNothing6, gText_ApprenticeThanksNoHeldItem6, gText_ApprenticeThanksHeldItem6, gText_ApprenticeItemAlreadyRecommended6}, + {gText_ApprenticeWhatHeldItem7, gText_ApprenticeHoldNothing7, gText_ApprenticeThanksNoHeldItem7, gText_ApprenticeThanksHeldItem7, gText_ApprenticeItemAlreadyRecommended7}, + {gText_ApprenticeWhatHeldItem8, gText_ApprenticeHoldNothing8, gText_ApprenticeThanksNoHeldItem8, gText_ApprenticeThanksHeldItem8, gText_ApprenticeItemAlreadyRecommended8}, + {gText_ApprenticeWhatHeldItem9, gText_ApprenticeHoldNothing9, gText_ApprenticeThanksNoHeldItem9, gText_ApprenticeThanksHeldItem9, gText_ApprenticeItemAlreadyRecommended9}, + {gText_ApprenticeWhatHeldItem10, gText_ApprenticeHoldNothing10, gText_ApprenticeThanksNoHeldItem10, gText_ApprenticeThanksHeldItem10, gText_ApprenticeItemAlreadyRecommended10}, + {gText_ApprenticeWhatHeldItem11, gText_ApprenticeHoldNothing11, gText_ApprenticeThanksNoHeldItem11, gText_ApprenticeThanksHeldItem11, gText_ApprenticeItemAlreadyRecommended11}, + {gText_ApprenticeWhatHeldItem12, gText_ApprenticeHoldNothing12, gText_ApprenticeThanksNoHeldItem12, gText_ApprenticeThanksHeldItem12, gText_ApprenticeItemAlreadyRecommended12}, + {gText_ApprenticeWhatHeldItem13, gText_ApprenticeHoldNothing13, gText_ApprenticeThanksNoHeldItem13, gText_ApprenticeThanksHeldItem13, gText_ApprenticeItemAlreadyRecommended13}, + {gText_ApprenticeWhatHeldItem14, gText_ApprenticeHoldNothing14, gText_ApprenticeThanksNoHeldItem14, gText_ApprenticeThanksHeldItem14, gText_ApprenticeItemAlreadyRecommended14}, + {gText_ApprenticeWhatHeldItem15, gText_ApprenticeHoldNothing15, gText_ApprenticeThanksNoHeldItem15, gText_ApprenticeThanksHeldItem15, gText_ApprenticeItemAlreadyRecommended15}, }; static const u8 *const sApprenticeWhichMoveTexts[NUM_APPRENTICES][2] = @@ -1026,39 +1026,40 @@ static const bool8 gUnknown_08611370[MOVES_COUNT] = [MOVE_PSYCHO_BOOST] = TRUE, }; -static const u8 gUnknown_086114D3[] = {0x01, 0x01, 0x01, 0x02, 0x02, 0x02, 0x02, 0x02, 0x03, 0x00, 0x00, 0x00, 0x00}; +static const u8 gUnknown_086114D3[] = {1, 1, 1, 2, 2, 2, 2, 2, 3, 0}; static void (* const sApprenticeFunctions[])(void) = { - [APPRENTICE_FUNC_0] = Script_GivenApprenticeLvlMode, - [APPRENTICE_FUNC_1] = Script_SetApprenticeLvlMode, - [APPRENTICE_FUNC_2] = sub_81A0978, + [APPRENTICE_FUNC_GAVE_LVLMODE] = Script_GivenApprenticeLvlMode, + [APPRENTICE_FUNC_SET_LVLMODE] = Script_SetApprenticeLvlMode, + [APPRENTICE_FUNC_SET_ID] = Script_SetApprenticeId, [APPRENTICE_FUNC_3] = sub_819FC60, [APPRENTICE_FUNC_4] = sub_81A0984, - [APPRENTICE_FUNC_5] = sub_81A0990, + [APPRENTICE_FUNC_ANSWERED_QUESTION] = IncrementQuestionsAnswered, [APPRENTICE_FUNC_6] = sub_81A09D0, [APPRENTICE_FUNC_MENU] = Script_CreateApprenticeMenu, [APPRENTICE_FUNC_PRINT_MSG] = Script_PrintApprenticeMessage, - [APPRENTICE_FUNC_9] = Script_ResetPlayerApprentice, - [APPRENTICE_FUNC_SET_TRUE_1] = SetVar0x8004True1, - [APPRENTICE_FUNC_11] = sub_81A0CC0, - [APPRENTICE_FUNC_12] = sub_81A09B4, - [APPRENTICE_FUNC_13] = sub_81A0D40, - [APPRENTICE_FUNC_14] = sub_81A0DD4, - [APPRENTICE_FUNC_15] = sub_81A0FE4, - [APPRENTICE_FUNC_16] = ApprenticeBufferString, - [APPRENTICE_FUNC_17] = sub_81A0D80, - [APPRENTICE_FUNC_18] = sub_81A11F8, - [APPRENTICE_FUNC_19] = sub_81A1218, + [APPRENTICE_FUNC_RESET] = Script_ResetPlayerApprentice, + [APPRENTICE_FUNC_CHECK_GONE] = GetShouldCheckApprenticeGone, + [APPRENTICE_FUNC_GET_QUESTION] = ApprenticeGetQuestion, + [APPRENTICE_FUNC_GET_NUM_PARTY_MONS] = GetNumApprenticePartyMonsSelected, + [APPRENTICE_FUNC_SET_PARTY_MON] = SetApprenticePartyMon, + [APPRENTICE_FUNC_INIT_QUESTION_DATA] = InitApprenticeQuestionData, + [APPRENTICE_FUNC_FREE_QUESTION_DATA] = FreeApprenticeQuestionData, + [APPRENTICE_FUNC_BUFFER_STRING] = ApprenticeBufferString, + [APPRENTICE_FUNC_SET_MOVE] = SetApprenticeMonMove, + [APPRENTICE_FUNC_SET_FIRST_MON] = SetFirstApprenticeMon, + [APPRENTICE_FUNC_OPEN_BAG] = Script_ApprenticeOpenBagMenu, [APPRENTICE_FUNC_20] = sub_81A1224, [APPRENTICE_FUNC_21] = sub_81A1438, - [APPRENTICE_FUNC_22] = sub_81A150C, - [APPRENTICE_FUNC_23] = Script_SetPlayerApprenticeTrainerGfxId, + [APPRENTICE_FUNC_SET_GFX_SAVED] = SetSavedApprenticeTrainerGfxId, + [APPRENTICE_FUNC_SET_GFX] = SetPlayerApprenticeTrainerGfxId, [APPRENTICE_FUNC_SHOULD_LEAVE] = GetShouldApprenticeLeave, [APPRENTICE_FUNC_25] = sub_81A1370, }; -static const u8 gUnknown_08611548[8] = {0x00, 0x01, 0x02, 0x03, 0x06, 0x07, 0x08, 0x09}; +// The first Apprentice can only be one of these +static const u8 sInitialApprenticeIds[8] = {0, 1, 2, 3, 6, 7, 8, 9}; // text /* @@ -1067,11 +1068,11 @@ extern const u8 gText_No[];*/ void CopyFriendsApprenticeChallengeText(u8 saveblockApprenticeId) { - u8 i, var; + u8 i, num; const u8 *Intro; - var = gSaveBlock2Ptr->apprentices[saveblockApprenticeId].number; - for (i = 0; var != 0 && i < APPRENTICE_COUNT; var /= 10, i++) + num = gSaveBlock2Ptr->apprentices[saveblockApprenticeId].number; + for (i = 0; num != 0 && i < APPRENTICE_COUNT; num /= 10, i++) ; StringCopy7(gStringVar1, gSaveBlock2Ptr->apprentices[saveblockApprenticeId].playerName); @@ -1090,8 +1091,8 @@ void ResetApprenticeStruct(struct Apprentice *apprentice) { u8 i; - for (i = 0; i < ARRAY_COUNT(apprentice->easyChatWords); i++) - apprentice->easyChatWords[i] = 0xFFFF; + for (i = 0; i < ARRAY_COUNT(apprentice->speechWon); i++) + apprentice->speechWon[i] = 0xFFFF; apprentice->playerName[0] = EOS; apprentice->id = NUM_APPRENTICES; @@ -1104,8 +1105,8 @@ void ResetAllApprenticeData(void) PLAYER_APPRENTICE.field_B2_1 = 0; for (i = 0; i < APPRENTICE_COUNT; i++) { - for (j = 0; j < ARRAY_COUNT(gSaveBlock2Ptr->apprentices[i].easyChatWords); j++) - gSaveBlock2Ptr->apprentices[i].easyChatWords[j] = 0xFFFF; + for (j = 0; j < ARRAY_COUNT(gSaveBlock2Ptr->apprentices[i].speechWon); j++) + gSaveBlock2Ptr->apprentices[i].speechWon[j] = 0xFFFF; gSaveBlock2Ptr->apprentices[i].id = NUM_APPRENTICES; gSaveBlock2Ptr->apprentices[i].playerName[0] = EOS; gSaveBlock2Ptr->apprentices[i].lvlMode = 0; @@ -1120,18 +1121,18 @@ void ResetAllApprenticeData(void) Script_ResetPlayerApprentice(); } -static bool8 GivenPlayersApprenticeLvlMode(void) +static bool8 GivenApprenticeLvlMode(void) { return (PLAYER_APPRENTICE.lvlMode != 0); } -static void sub_819FBC8(void) +static void SetApprenticeId(void) { if (gSaveBlock2Ptr->apprentices[0].number == 0) { do { - PLAYER_APPRENTICE.id = gUnknown_08611548[Random() % ARRAY_COUNT(gUnknown_08611548)]; + PLAYER_APPRENTICE.id = sInitialApprenticeIds[Random() % ARRAY_COUNT(sInitialApprenticeIds)]; } while (PLAYER_APPRENTICE.id == gSaveBlock2Ptr->apprentices[0].id); } else @@ -1168,6 +1169,7 @@ static void sub_819FC60(void) PLAYER_APPRENTICE.monIds[i] = ((array[i * 2] & 0xF) << 4) | ((array[i * 2 + 1]) & 0xF); } +// TODO: static u8 sub_819FCF8(u8 val, u8 *arg1, u8 *arg2) { u8 i, count; @@ -1177,13 +1179,13 @@ static u8 sub_819FCF8(u8 val, u8 *arg1, u8 *arg2) { do { - monId = Random() % 3; + monId = Random() % (MULTI_PARTY_SIZE); for (count = 0, i = 0; i < 5; i++) { - if (gUnknown_030062EC->unk2[monId][i] != MOVE_NONE) + if (gUnknown_030062EC->unkA[monId][i] != MOVE_NONE) count++; } - } while (count > 3); + } while (count > MULTI_PARTY_SIZE); } else if (val == 1) { @@ -1196,8 +1198,8 @@ static u8 sub_819FCF8(u8 val, u8 *arg1, u8 *arg2) static void sub_819FD64(void) { - u8 sp_0[10]; - u8 sp_C[3]; + u8 sp_0[ARRAY_COUNT(gUnknown_086114D3)]; // TODO replace with constant, used in global for field_B8 + u8 sp_C[MULTI_PARTY_SIZE]; u8 sp_10; u8 i, j; u8 rand1, rand2; @@ -1213,7 +1215,7 @@ static void sub_819FD64(void) SWAP(sp_C[rand1], sp_C[rand2], temp); } - for (i = 0; i < ARRAY_COUNT(sp_0); i++) + for (i = 0; i < ARRAY_COUNT(gUnknown_086114D3); i++) sp_0[i] = gUnknown_086114D3[i]; for (i = 0; i < 50; i++) { @@ -1228,11 +1230,11 @@ static void sub_819FD64(void) for (i = 0; i < 5; i++) { for (j = 0; j < 3; j++) - gUnknown_030062EC->unk20[j][i] = 4; + gUnknown_030062EC->unkB[j][i] = 4; } sp_10 = 0; - for (i = 0; i < 9; i++) + for (i = 0; i < ARRAY_COUNT(gUnknown_086114D3) - 1; i++) { PLAYER_APPRENTICE.field_B8[i].unk0_0 = sp_0[i]; if (sp_0[i] != 3) @@ -1246,12 +1248,12 @@ static void sub_819FD64(void) rand1 = Random() % 4; for (j = 0; j < gUnknown_030062EC->unk0 + 1; j++) { - if (gUnknown_030062EC->unk20[id][j] == rand1) + if (gUnknown_030062EC->unkB[id][j] == rand1) break; } } while (j != gUnknown_030062EC->unk0 + 1); - gUnknown_030062EC->unk20[id][gUnknown_030062EC->unk0] = rand1; + gUnknown_030062EC->unkB[id][gUnknown_030062EC->unk0] = rand1; PLAYER_APPRENTICE.field_B8[i].unk0_2 = rand1; PLAYER_APPRENTICE.field_B8[i].unk2 = sub_819FF98(PLAYER_APPRENTICE.field_B8[i].unk0_1); } @@ -1379,17 +1381,18 @@ static u16 sub_819FF98(u8 monId) return moveId; } +// TODO: static bool8 sub_81A0194(u8 monId, u16 moveId) { u8 i; for (i = 0; i < 5; i++) { - if (gUnknown_030062EC->unk2[monId][i] == moveId) + if (gUnknown_030062EC->unkA[monId][i] == moveId) return FALSE; } - gUnknown_030062EC->unk2[monId][gUnknown_030062EC->unk0] = moveId; + gUnknown_030062EC->unkA[monId][gUnknown_030062EC->unk0] = moveId; return TRUE; } @@ -1424,7 +1427,7 @@ static u16 sub_81A0284(u8 arg0, u8 speciesTableId, u8 arg2) u16 moves[MAX_MON_MOVES]; u8 i, count; - if (PLAYER_APPRENTICE.field_B1_1 < 3) + if (PLAYER_APPRENTICE.questionsAnswered < 3) return 0; count = 0; @@ -1436,7 +1439,7 @@ static u16 sub_81A0284(u8 arg0, u8 speciesTableId, u8 arg2) } GetLatestLearnedMoves(gApprentices[PLAYER_APPRENTICE.id].species[speciesTableId], moves); - for (i = 0; i < count && i < PLAYER_APPRENTICE.field_B1_1 - 3; i++) + for (i = 0; i < count && i < PLAYER_APPRENTICE.questionsAnswered - 3; i++) { if (PLAYER_APPRENTICE.field_B8[i].unk0_0 == 2 && PLAYER_APPRENTICE.field_B8[i].unk0_1 == arg0 @@ -1463,7 +1466,7 @@ static void sub_81A0390(u8 arg0) gSaveBlock2Ptr->apprentices[0].party[i].moves[j] = 0; } - j = PLAYER_APPRENTICE.field_B1_2; + j = PLAYER_APPRENTICE.firstMonId; for (i = 0; i < MULTI_PARTY_SIZE; i++) { apprenticeMons[j] = &gSaveBlock2Ptr->apprentices[0].party[i]; @@ -1533,9 +1536,9 @@ static void CreateApprenticeMenu(u8 arg0) case APPRENTICE_ASK_2SPECIES: left = 0x12; top = 8; - if (PLAYER_APPRENTICE.field_B1_1 > 2) + if (PLAYER_APPRENTICE.questionsAnswered > 2) return; - strings[1] = gSpeciesNames[gUnknown_030062F0->unk2]; + strings[1] = gSpeciesNames[gUnknown_030062F0->unkX]; strings[0] = gSpeciesNames[gUnknown_030062F0->unk0]; break; case APPRENTICE_ASK_MOVES: @@ -1660,10 +1663,10 @@ static void Script_ResetPlayerApprentice(void) { u8 i; - sub_819FBC8(); + SetApprenticeId(); PLAYER_APPRENTICE.lvlMode = 0; - PLAYER_APPRENTICE.field_B1_1 = 0; - PLAYER_APPRENTICE.field_B1_2 = 0; + PLAYER_APPRENTICE.questionsAnswered = 0; + PLAYER_APPRENTICE.firstMonId = 0; PLAYER_APPRENTICE.field_B2_0 = 0; for (i = 0; i < MULTI_PARTY_SIZE; i++) @@ -1679,9 +1682,10 @@ static void Script_ResetPlayerApprentice(void) } } +// The Apprentice is considered active after the first conversation, where the player decides a Lvl Mode for them static void Script_GivenApprenticeLvlMode(void) { - if (!GivenPlayersApprenticeLvlMode()) + if (!GivenApprenticeLvlMode()) gSpecialVar_Result = FALSE; else gSpecialVar_Result = TRUE; @@ -1694,9 +1698,10 @@ static void Script_SetApprenticeLvlMode(void) SetPlayersApprenticeLvlMode(gSpecialVar_0x8005); } -static void sub_81A0978(void) +// Never called, APPRENTICE_FUNC_SET_ID is unused +static void Script_SetApprenticeId(void) { - sub_819FBC8(); + SetApprenticeId(); } static void sub_81A0984(void) @@ -1704,19 +1709,21 @@ static void sub_81A0984(void) sub_819FD64(); } -static void sub_81A0990(void) +static void IncrementQuestionsAnswered(void) { - PLAYER_APPRENTICE.field_B1_1++; + PLAYER_APPRENTICE.questionsAnswered++; } -static void sub_81A09B4(void) +// The first 3 questions answered after meeting the Apprentice are always selecting party mons +// after which this is never called +static void GetNumApprenticePartyMonsSelected(void) { - gSpecialVar_Result = PLAYER_APPRENTICE.field_B1_1; + gSpecialVar_Result = PLAYER_APPRENTICE.questionsAnswered; } static void sub_81A09D0(void) { - s32 var = PLAYER_APPRENTICE.field_B1_1 - 3; + s32 var = PLAYER_APPRENTICE.questionsAnswered - 3; if (var < 0) { gSpecialVar_Result = FALSE; @@ -1754,71 +1761,71 @@ static void PrintApprenticeMessage(void) { const u8 *string; - if (gSpecialVar_0x8006 == 6) + if (gSpecialVar_0x8006 == APPRENTICE_MSG_WHICH_MON) { string = sApprenticeWhichMonTexts[PLAYER_APPRENTICE.id][0]; } - else if (gSpecialVar_0x8006 == 7) + else if (gSpecialVar_0x8006 == APPRENTICE_MSG_THANKS_MON) { string = sApprenticeWhichMonTexts[PLAYER_APPRENTICE.id][1]; } - else if (gSpecialVar_0x8006 == 8) + else if (gSpecialVar_0x8006 == APPRENTICE_MSG_WHICH_MOVE) { string = sApprenticeWhichMoveTexts[PLAYER_APPRENTICE.id][0]; } - else if (gSpecialVar_0x8006 == 9) + else if (gSpecialVar_0x8006 == APPRENTICE_MSG_THANKS_MOVE) { string = sApprenticeWhichMoveTexts[PLAYER_APPRENTICE.id][1]; } - else if (gSpecialVar_0x8006 == 4) + else if (gSpecialVar_0x8006 == APPRENTICE_MSG_WHICH_MON_FIRST) { string = sApprenticeWhichMonFirstTexts[PLAYER_APPRENTICE.id][0]; } - else if (gSpecialVar_0x8006 == 5) + else if (gSpecialVar_0x8006 == APPRENTICE_MSG_THANKS_MON_FIRST) { string = sApprenticeWhichMonFirstTexts[PLAYER_APPRENTICE.id][1]; } - else if (gSpecialVar_0x8006 == 10) + else if (gSpecialVar_0x8006 == APPRENTICE_MSG_WHAT_HELD_ITEM) { string = sApprenticeHeldItemTexts[PLAYER_APPRENTICE.id][0]; } - else if (gSpecialVar_0x8006 == 11) + else if (gSpecialVar_0x8006 == APPRENTICE_MSG_PICK_WIN_SPEECH) { string = sApprenticePickWinSpeechTexts[PLAYER_APPRENTICE.id][0]; } - else if (gSpecialVar_0x8006 == 12) + else if (gSpecialVar_0x8006 == APPRENTICE_MSG_THANKS_HELD_ITEM) { string = sApprenticeHeldItemTexts[PLAYER_APPRENTICE.id][3]; } - else if (gSpecialVar_0x8006 == 13) + else if (gSpecialVar_0x8006 == APPRENTICE_MSG_HOLD_NOTHING) { string = sApprenticeHeldItemTexts[PLAYER_APPRENTICE.id][1]; } - else if (gSpecialVar_0x8006 == 16) + else if (gSpecialVar_0x8006 == APPRENTICE_MSG_ITEM_ALREADY_SUGGESTED) { string = sApprenticeHeldItemTexts[PLAYER_APPRENTICE.id][4]; } - else if (gSpecialVar_0x8006 == 14) + else if (gSpecialVar_0x8006 == APPRENTICE_MSG_THANKS_NO_HELD_ITEM) { string = sApprenticeHeldItemTexts[PLAYER_APPRENTICE.id][2]; } - else if (gSpecialVar_0x8006 == 15) + else if (gSpecialVar_0x8006 == APPRENTICE_MSG_THANKS_WIN_SPEECH) { string = sApprenticePickWinSpeechTexts[PLAYER_APPRENTICE.id][1]; } - else if (gSpecialVar_0x8006 == 0) + else if (gSpecialVar_0x8006 == APPRENTICE_MSG_PLEASE_TEACH) { string = sApprenticeFirstMeetingTexts[PLAYER_APPRENTICE.id][0]; } - else if (gSpecialVar_0x8006 == 1) + else if (gSpecialVar_0x8006 == APPRENTICE_MSG_REJECT) { string = sApprenticeFirstMeetingTexts[PLAYER_APPRENTICE.id][1]; } - else if (gSpecialVar_0x8006 == 2) + else if (gSpecialVar_0x8006 == APPRENTICE_MSG_WHICH_LVL_MODE) { string = sApprenticeFirstMeetingTexts[PLAYER_APPRENTICE.id][2]; } - else if (gSpecialVar_0x8006 == 3) + else if (gSpecialVar_0x8006 == APPRENTICE_MSG_THANKS_LVL_MODE) { string = sApprenticeFirstMeetingTexts[PLAYER_APPRENTICE.id][3]; } @@ -1843,19 +1850,19 @@ static void Script_PrintApprenticeMessage(void) PrintApprenticeMessage(); } -static void sub_81A0CC0(void) +static void ApprenticeGetQuestion(void) { - if (PLAYER_APPRENTICE.field_B1_1 < 3) + if (PLAYER_APPRENTICE.questionsAnswered < MULTI_PARTY_SIZE) { gSpecialVar_Result = 2; } - else if (PLAYER_APPRENTICE.field_B1_1 > 11) + else if (PLAYER_APPRENTICE.questionsAnswered > 11) { gSpecialVar_Result = 5; } else { - s32 id = PLAYER_APPRENTICE.field_B1_1 - 3; + s32 id = PLAYER_APPRENTICE.questionsAnswered - 3; switch (PLAYER_APPRENTICE.field_B8[id].unk0_0) { case 1: @@ -1874,7 +1881,9 @@ static void sub_81A0CC0(void) } } -static void sub_81A0D40(void) +// gSpecialVar_0x8005 is 0 or 1 for the mon selection (0 is already on the team) +// gSpecialVar_0x8006 is 0-2 for the number of party mons selected so far +static void SetApprenticePartyMon(void) { if (gSpecialVar_0x8005) { @@ -1883,11 +1892,11 @@ static void sub_81A0D40(void) } } -static void sub_81A0D80(void) +static void SetApprenticeMonMove(void) { - if (PLAYER_APPRENTICE.field_B1_1 >= 3) + if (PLAYER_APPRENTICE.questionsAnswered >= MULTI_PARTY_SIZE) { - u8 id = PLAYER_APPRENTICE.field_B1_1 - 3; + u8 id = PLAYER_APPRENTICE.questionsAnswered - MULTI_PARTY_SIZE; if (gSpecialVar_0x8005) PLAYER_APPRENTICE.field_B8[id].unk0_3 = 1; else @@ -1895,7 +1904,7 @@ static void sub_81A0D80(void) } } -static void sub_81A0DD4(void) +static void InitApprenticeQuestionData(void) { u8 i; u8 count = 0; @@ -1905,44 +1914,45 @@ static void sub_81A0DD4(void) ; gUnknown_030062F0 = AllocZeroed(sizeof(*gUnknown_030062F0)); - if (gSpecialVar_0x8005 == 2) + if (gSpecialVar_0x8005 == APPRENTICE_QUESTION_WHICH_MON) { - if (PLAYER_APPRENTICE.field_B1_1 < MULTI_PARTY_SIZE) + if (PLAYER_APPRENTICE.questionsAnswered < 3) { - id1 = PLAYER_APPRENTICE.monIds[PLAYER_APPRENTICE.field_B1_1] >> 4; - gUnknown_030062F0->unk2 = gApprentices[PLAYER_APPRENTICE.id].species[id1]; + // For the first 3 questions its used as an id to retrieve pokemon + id1 = PLAYER_APPRENTICE.monIds[PLAYER_APPRENTICE.questionsAnswered] >> 4; + gUnknown_030062F0->unkX = gApprentices[PLAYER_APPRENTICE.id].species[id1]; - id2 = PLAYER_APPRENTICE.monIds[PLAYER_APPRENTICE.field_B1_1] & 0xF; + id2 = PLAYER_APPRENTICE.monIds[PLAYER_APPRENTICE.questionsAnswered] & 0xF; gUnknown_030062F0->unk0 = gApprentices[PLAYER_APPRENTICE.id].species[id2]; } } - else if (gSpecialVar_0x8005 == 3) + else if (gSpecialVar_0x8005 == APPRENTICE_QUESTION_WHICH_MOVE) { - if (PLAYER_APPRENTICE.field_B1_1 >= 3 - && PLAYER_APPRENTICE.field_B1_1 < count + 3 - && PLAYER_APPRENTICE.field_B8[PLAYER_APPRENTICE.field_B1_1 - 3].unk0_0 == 2) + if (PLAYER_APPRENTICE.questionsAnswered >= 3 + && PLAYER_APPRENTICE.questionsAnswered < count + 3 + && PLAYER_APPRENTICE.field_B8[PLAYER_APPRENTICE.questionsAnswered - 3].unk0_0 == 2) { - count = PLAYER_APPRENTICE.field_B8[PLAYER_APPRENTICE.field_B1_1 - 3].unk0_1; + count = PLAYER_APPRENTICE.field_B8[PLAYER_APPRENTICE.questionsAnswered - 3].unk0_1; APPRENTICE_SPECIES_ID_2(id1, count); gUnknown_030062F0->unk0 = gApprentices[PLAYER_APPRENTICE.id].species[id1]; - gUnknown_030062F0->unk4 = sub_81A0284(count, id1, PLAYER_APPRENTICE.field_B8[PLAYER_APPRENTICE.field_B1_1 - 3].unk0_2); - gUnknown_030062F0->unk6 = PLAYER_APPRENTICE.field_B8[PLAYER_APPRENTICE.field_B1_1 - 3].unk2; + gUnknown_030062F0->unk4 = sub_81A0284(count, id1, PLAYER_APPRENTICE.field_B8[PLAYER_APPRENTICE.questionsAnswered - 3].unk0_2); + gUnknown_030062F0->unk6 = PLAYER_APPRENTICE.field_B8[PLAYER_APPRENTICE.questionsAnswered - 3].unk2; } } - else if (gSpecialVar_0x8005 == 4) + else if (gSpecialVar_0x8005 == APPRENTICE_QUESTION_WHAT_ITEM) { - if (PLAYER_APPRENTICE.field_B1_1 >= 3 - && PLAYER_APPRENTICE.field_B1_1 < count + 3 - && PLAYER_APPRENTICE.field_B8[PLAYER_APPRENTICE.field_B1_1 - 3].unk0_0 == 1) + if (PLAYER_APPRENTICE.questionsAnswered >= 3 + && PLAYER_APPRENTICE.questionsAnswered < count + 3 + && PLAYER_APPRENTICE.field_B8[PLAYER_APPRENTICE.questionsAnswered - 3].unk0_0 == 1) { - count = PLAYER_APPRENTICE.field_B8[PLAYER_APPRENTICE.field_B1_1 - 3].unk0_1; + count = PLAYER_APPRENTICE.field_B8[PLAYER_APPRENTICE.questionsAnswered - 3].unk0_1; APPRENTICE_SPECIES_ID_2(id2, count); gUnknown_030062F0->unk0 = gApprentices[PLAYER_APPRENTICE.id].species[id2]; } } } -static void sub_81A0FE4(void) +static void FreeApprenticeQuestionData(void) { FREE_AND_SET_NULL(gUnknown_030062F0); } @@ -1974,7 +1984,7 @@ static void ApprenticeBufferString(void) StringCopy(stringDst, gSpeciesNames[gUnknown_030062F0->unk0]); break; case APPRENTICE_BUFF_SPECIES2: - StringCopy(stringDst, gSpeciesNames[gUnknown_030062F0->unk2]); + StringCopy(stringDst, gSpeciesNames[gUnknown_030062F0->unkX]); break; case APPRENTICE_BUFF_SPECIES3: StringCopy(stringDst, gSpeciesNames[gUnknown_030062F0->unk0]); @@ -1986,7 +1996,7 @@ static void ApprenticeBufferString(void) StringCopy(stringDst, gMoveNames[gUnknown_030062F0->unk6]); break; case APPRENTICE_BUFF_ITEM: - StringCopy(stringDst, ItemId_GetName(PLAYER_APPRENTICE.field_B8[PLAYER_APPRENTICE.field_B1_1 - 3].unk2)); + StringCopy(stringDst, ItemId_GetName(PLAYER_APPRENTICE.field_B8[PLAYER_APPRENTICE.questionsAnswered - 3].unk2)); break; case APPRENTICE_BUFF_NAME: TVShowConvertInternationalString(text, GetApprenticeNameInLanguage(PLAYER_APPRENTICE.id, LANGUAGE_ENGLISH), LANGUAGE_ENGLISH); @@ -1998,14 +2008,14 @@ static void ApprenticeBufferString(void) else // == APPRENTICE_LVL_MODE_OPEN StringCopy(stringDst, gText_OpenLevel); break; - case APPRENTICE_BUFF_EASY_CHAT: - FrontierSpeechToString(gSaveBlock2Ptr->apprentices[0].easyChatWords); + case APPRENTICE_BUFF_WIN_SPEECH: + FrontierSpeechToString(gSaveBlock2Ptr->apprentices[0].speechWon); StringCopy(stringDst, gStringVar4); break; - case APPRENTICE_BUFF_SPECIES4: - if (PLAYER_APPRENTICE.field_B1_2 < MULTI_PARTY_SIZE) + case APPRENTICE_BUFF_FIRST_MON_SPECIES: + if (PLAYER_APPRENTICE.firstMonId < MULTI_PARTY_SIZE) { - APPRENTICE_SPECIES_ID(speciesArrayId, PLAYER_APPRENTICE.field_B1_2); + APPRENTICE_SPECIES_ID(speciesArrayId, PLAYER_APPRENTICE.firstMonId); } else { @@ -2016,14 +2026,14 @@ static void ApprenticeBufferString(void) } } -static void sub_81A11F8(void) +static void SetFirstApprenticeMon(void) { - PLAYER_APPRENTICE.field_B1_2 = gSpecialVar_0x8005; + PLAYER_APPRENTICE.firstMonId = gSpecialVar_0x8005; } -static void sub_81A1218(void) +static void Script_ApprenticeOpenBagMenu(void) { - sub_81AAC28(); + ApprenticeOpenBagMenu(); } static void sub_81A1224(void) @@ -2031,36 +2041,36 @@ static void sub_81A1224(void) u8 i, j; u8 count; - if (PLAYER_APPRENTICE.field_B1_1 < 3) + if (PLAYER_APPRENTICE.questionsAnswered < 3) return; for (count = 0, j = 0; j < 9 && PLAYER_APPRENTICE.field_B8[j].unk0_0; count++, j++) ; - for (i = 0; i < count && i < PLAYER_APPRENTICE.field_B1_1 - 3; i++) + for (i = 0; i < count && i < PLAYER_APPRENTICE.questionsAnswered - 3; i++) { do {} while(0); if (PLAYER_APPRENTICE.field_B8[i].unk0_0 == 1 && PLAYER_APPRENTICE.field_B8[i].unk0_3 && PLAYER_APPRENTICE.field_B8[i].unk2 == gSpecialVar_0x8005) { - PLAYER_APPRENTICE.field_B8[PLAYER_APPRENTICE.field_B1_1 - 3].unk0_3 = 0; - PLAYER_APPRENTICE.field_B8[PLAYER_APPRENTICE.field_B1_1 - 3].unk2 = gSpecialVar_0x8005; + PLAYER_APPRENTICE.field_B8[PLAYER_APPRENTICE.questionsAnswered - 3].unk0_3 = 0; + PLAYER_APPRENTICE.field_B8[PLAYER_APPRENTICE.questionsAnswered - 3].unk2 = gSpecialVar_0x8005; gSpecialVar_Result = FALSE; return; } } - PLAYER_APPRENTICE.field_B8[PLAYER_APPRENTICE.field_B1_1 - 3].unk0_3 = 1; - PLAYER_APPRENTICE.field_B8[PLAYER_APPRENTICE.field_B1_1 - 3].unk2 = gSpecialVar_0x8005; + PLAYER_APPRENTICE.field_B8[PLAYER_APPRENTICE.questionsAnswered - 3].unk0_3 = 1; + PLAYER_APPRENTICE.field_B8[PLAYER_APPRENTICE.questionsAnswered - 3].unk2 = gSpecialVar_0x8005; gSpecialVar_Result = TRUE; } static void sub_81A1370(void) { s32 i; - s32 r10; - s32 r9; + s32 apprenticeNum; + s32 apprenticeIdx; if (gSaveBlock2Ptr->apprentices[0].playerName[0] == EOS) return; @@ -2074,20 +2084,20 @@ static void sub_81A1370(void) } } - r10 = 0xFFFF; - r9 = -1; + apprenticeNum = 0xFFFF; + apprenticeIdx = -1; for (i = 1; i < TRAINER_ID_LENGTH; i++) { if (GetTrainerId(gSaveBlock2Ptr->apprentices[i].playerId) == GetTrainerId(gSaveBlock2Ptr->playerTrainerId) - && gSaveBlock2Ptr->apprentices[i].number < r10) + && gSaveBlock2Ptr->apprentices[i].number < apprenticeNum) { - r10 = gSaveBlock2Ptr->apprentices[i].number; - r9 = i; + apprenticeNum = gSaveBlock2Ptr->apprentices[i].number; + apprenticeIdx = i; } } - if (r9 > 0) - gSaveBlock2Ptr->apprentices[r9] = gSaveBlock2Ptr->apprentices[0]; + if (apprenticeIdx > 0) + gSaveBlock2Ptr->apprentices[apprenticeIdx] = gSaveBlock2Ptr->apprentices[0]; } static void sub_81A1438(void) @@ -2113,7 +2123,8 @@ static void sub_81A1438(void) CalcApprenticeChecksum(&gSaveBlock2Ptr->apprentices[0]); } -static void sub_81A150C(void) +// Never called, APPRENTICE_FUNC_SET_GFX_SAVED is unused +static void SetSavedApprenticeTrainerGfxId(void) { u8 i; u8 mapObjectGfxId; @@ -2138,7 +2149,7 @@ static void sub_81A150C(void) } } -static void Script_SetPlayerApprenticeTrainerGfxId(void) +static void SetPlayerApprenticeTrainerGfxId(void) { u8 i; u8 mapObjectGfxId; @@ -2162,9 +2173,9 @@ static void Script_SetPlayerApprenticeTrainerGfxId(void) } } -// Both of the below functions may have dummied / used for debug +// Both of the below functions may have been dummied / used for debug // In all cases theres a conditional for VAR_0x8004 right after the call to these functions -static void SetVar0x8004True1(void) +static void GetShouldCheckApprenticeGone(void) { gSpecialVar_0x8004 = TRUE; } @@ -2196,7 +2207,8 @@ const u8 *GetApprenticeNameInLanguage(u32 apprenticeId, s32 language) } } -static void sub_81A16B4(u8 taskId) +// Functionally unused +static void Task_SwitchToFollowupFuncAfterButtonPress(u8 taskId) { if (gMain.newKeys & A_BUTTON || gMain.newKeys & B_BUTTON) SwitchTaskToFollowupFunc(taskId); @@ -2219,8 +2231,9 @@ static void ExecuteFuncAfterButtonPress(void (*func)(void)) gTasks[taskId].data[1] = (u32)(func) >> 16; } -static void sub_81A175C(TaskFunc taskFunc) +// Unused +static void ExecuteFollowupFuncAfterButtonPress(TaskFunc task) { - u8 taskId = CreateTask(sub_81A16B4, 1); - SetTaskFuncWithFollowupFunc(taskId, sub_81A16B4, taskFunc); + u8 taskId = CreateTask(Task_SwitchToFollowupFuncAfterButtonPress, 1); + SetTaskFuncWithFollowupFunc(taskId, Task_SwitchToFollowupFuncAfterButtonPress, task); } diff --git a/src/easy_chat.c b/src/easy_chat.c index ce5fe3c7a..32478ff1a 100644 --- a/src/easy_chat.c +++ b/src/easy_chat.c @@ -1320,7 +1320,7 @@ void ShowEasyChatScreen(void) words = &gSaveBlock1Ptr->lilycoveLady.quiz.correctAnswer; break; case EASY_CHAT_TYPE_APPRENTICE: - words = gSaveBlock2Ptr->apprentices[0].easyChatWords; + words = gSaveBlock2Ptr->apprentices[0].speechWon; break; case EASY_CHAT_TYPE_QUESTIONNAIRE: words = sub_801B058(); diff --git a/src/frontier_util.c b/src/frontier_util.c index baf830af9..c32bdc19d 100644 --- a/src/frontier_util.c +++ b/src/frontier_util.c @@ -1725,7 +1725,7 @@ void CopyFrontierTrainerText(u8 whichText, u16 trainerId) if (gBattleTypeFlags & BATTLE_TYPE_RECORDED) FrontierSpeechToString(GetRecordedBattleEasyChatSpeech()); else - FrontierSpeechToString(gSaveBlock2Ptr->apprentices[trainerId - TRAINER_RECORD_MIXING_APPRENTICE].easyChatWords); + FrontierSpeechToString(gSaveBlock2Ptr->apprentices[trainerId - TRAINER_RECORD_MIXING_APPRENTICE].speechWon); } break; case FRONTIER_PLAYER_WON_TEXT: @@ -1753,12 +1753,12 @@ void CopyFrontierTrainerText(u8 whichText, u16 trainerId) if (gBattleTypeFlags & BATTLE_TYPE_RECORDED) { trainerId = GetRecordedBattleApprenticeId(); - FrontierSpeechToString(gApprentices[trainerId].easyChatWords); + FrontierSpeechToString(gApprentices[trainerId].speechLost); } else { trainerId = gSaveBlock2Ptr->apprentices[trainerId - TRAINER_RECORD_MIXING_APPRENTICE].id; - FrontierSpeechToString(gApprentices[trainerId].easyChatWords); + FrontierSpeechToString(gApprentices[trainerId].speechLost); } } break; diff --git a/src/item_menu.c b/src/item_menu.c index 40a0f0439..7f7808479 100755 --- a/src/item_menu.c +++ b/src/item_menu.c @@ -119,7 +119,7 @@ void sub_81AD9C0(u8); void sub_81ADB14(u8); void sub_81ADA7C(u8); void sub_81ADC0C(u8); -void bag_menu_leave_maybe(void); +void CB2_ApprenticeExitBagMenu(void); void CB2_FavorLadyExitBagMenu(void); void CB2_QuizLadyExitBagMenu(void); void sub_81ABA6C(void); @@ -492,9 +492,9 @@ void sub_81AAC14(void) GoToBagMenu(RETURN_LOCATION_PC, POCKETS_COUNT, sub_816B31C); } -void sub_81AAC28(void) +void ApprenticeOpenBagMenu(void) { - GoToBagMenu(RETURN_LOCATION_FIELD_6, POCKETS_COUNT, bag_menu_leave_maybe); + GoToBagMenu(RETURN_LOCATION_FIELD_6, POCKETS_COUNT, CB2_ApprenticeExitBagMenu); gSpecialVar_0x8005 = 0; gSpecialVar_Result = 0; } @@ -2203,7 +2203,7 @@ void unknown_ItemMenu_Show(u8 taskId) unknown_ItemMenu_Confirm(taskId); } -void bag_menu_leave_maybe(void) +void CB2_ApprenticeExitBagMenu(void) { gFieldCallback = Apprentice_EnableBothScriptContexts; SetMainCallback2(CB2_ReturnToField); diff --git a/src/recorded_battle.c b/src/recorded_battle.c index bd1974d48..bde2b7bb6 100644 --- a/src/recorded_battle.c +++ b/src/recorded_battle.c @@ -409,12 +409,12 @@ bool32 MoveRecordedBattleToSaveData(void) if (sBattleOutcome == B_OUTCOME_WON) { - for (i = 0; i < 6; i++) + for (i = 0; i < EASY_CHAT_BATTLE_WORDS_COUNT; i++) battleSave->easyChatSpeech[i] = gSaveBlock2Ptr->frontier.towerRecords[gTrainerBattleOpponent_A - TRAINER_RECORD_MIXING_FRIEND].speechLost[i]; } else { - for (i = 0; i < 6; i++) + for (i = 0; i < EASY_CHAT_BATTLE_WORDS_COUNT; i++) battleSave->easyChatSpeech[i] = gSaveBlock2Ptr->frontier.towerRecords[gTrainerBattleOpponent_A - TRAINER_RECORD_MIXING_FRIEND].speechWon[i]; } battleSave->recordMixFriendLanguage = gSaveBlock2Ptr->frontier.towerRecords[gTrainerBattleOpponent_A - TRAINER_RECORD_MIXING_FRIEND].language; @@ -427,12 +427,12 @@ bool32 MoveRecordedBattleToSaveData(void) if (sBattleOutcome == B_OUTCOME_WON) { - for (i = 0; i < 6; i++) + for (i = 0; i < EASY_CHAT_BATTLE_WORDS_COUNT; i++) battleSave->easyChatSpeech[i] = gSaveBlock2Ptr->frontier.towerRecords[gTrainerBattleOpponent_B - TRAINER_RECORD_MIXING_FRIEND].speechLost[i]; } else { - for (i = 0; i < 6; i++) + for (i = 0; i < EASY_CHAT_BATTLE_WORDS_COUNT; i++) battleSave->easyChatSpeech[i] = gSaveBlock2Ptr->frontier.towerRecords[gTrainerBattleOpponent_B - TRAINER_RECORD_MIXING_FRIEND].speechWon[i]; } battleSave->recordMixFriendLanguage = gSaveBlock2Ptr->frontier.towerRecords[gTrainerBattleOpponent_B - TRAINER_RECORD_MIXING_FRIEND].language; @@ -449,15 +449,15 @@ bool32 MoveRecordedBattleToSaveData(void) if (gTrainerBattleOpponent_A >= TRAINER_RECORD_MIXING_APPRENTICE) { battleSave->apprenticeId = gSaveBlock2Ptr->apprentices[gTrainerBattleOpponent_A - TRAINER_RECORD_MIXING_APPRENTICE].id; - for (i = 0; i < 6; i++) - battleSave->easyChatSpeech[i] = gSaveBlock2Ptr->apprentices[gTrainerBattleOpponent_A - TRAINER_RECORD_MIXING_APPRENTICE].easyChatWords[i]; + for (i = 0; i < EASY_CHAT_BATTLE_WORDS_COUNT; i++) + battleSave->easyChatSpeech[i] = gSaveBlock2Ptr->apprentices[gTrainerBattleOpponent_A - TRAINER_RECORD_MIXING_APPRENTICE].speechWon[i]; battleSave->apprenticeLanguage = gSaveBlock2Ptr->apprentices[gTrainerBattleOpponent_A - TRAINER_RECORD_MIXING_APPRENTICE].language; } else if (gTrainerBattleOpponent_B >= TRAINER_RECORD_MIXING_APPRENTICE) { battleSave->apprenticeId = gSaveBlock2Ptr->apprentices[gTrainerBattleOpponent_B - TRAINER_RECORD_MIXING_APPRENTICE].id; - for (i = 0; i < 6; i++) - battleSave->easyChatSpeech[i] = gSaveBlock2Ptr->apprentices[gTrainerBattleOpponent_B - TRAINER_RECORD_MIXING_APPRENTICE].easyChatWords[i]; + for (i = 0; i < EASY_CHAT_BATTLE_WORDS_COUNT; i++) + battleSave->easyChatSpeech[i] = gSaveBlock2Ptr->apprentices[gTrainerBattleOpponent_B - TRAINER_RECORD_MIXING_APPRENTICE].speechWon[i]; battleSave->apprenticeLanguage = gSaveBlock2Ptr->apprentices[gTrainerBattleOpponent_B - TRAINER_RECORD_MIXING_APPRENTICE].language; } else if (gPartnerTrainerId >= TRAINER_RECORD_MIXING_APPRENTICE) -- cgit v1.2.3 From a05006421b29ac49ce7173bb431d8a0419f5c143 Mon Sep 17 00:00:00 2001 From: GriffinR Date: Wed, 20 Nov 2019 17:36:52 -0500 Subject: Document Apprentice --- asm/macros/battle_frontier.inc | 28 +- common_syms/apprentice.txt | 6 +- data/scripts/apprentice.inc | 46 ++-- include/apprentice.h | 4 +- include/constants/apprentice.h | 30 +- include/constants/global.h | 14 +- include/global.h | 26 +- src/apprentice.c | 604 ++++++++++++++++++++++------------------- src/battle_tower.c | 14 +- src/frontier_util.c | 2 +- src/item_menu.c | 8 +- 11 files changed, 429 insertions(+), 353 deletions(-) diff --git a/asm/macros/battle_frontier.inc b/asm/macros/battle_frontier.inc index cbb91f680..337238cd3 100644 --- a/asm/macros/battle_frontier.inc +++ b/asm/macros/battle_frontier.inc @@ -60,8 +60,13 @@ special CallApprenticeFunction waitstate .endm -.macro apprentice_3 -setvar VAR_0x8004, APPRENTICE_FUNC_3 +.macro apprentice_shufflespecies +setvar VAR_0x8004, APPRENTICE_FUNC_SHUFFLE_SPECIES +special CallApprenticeFunction +.endm + +.macro apprentice_randomizequestions +setvar VAR_0x8004, APPRENTICE_FUNC_RANDOMIZE_QUESTIONS special CallApprenticeFunction .endm @@ -129,9 +134,9 @@ setvar VAR_0x8004, APPRENTICE_FUNC_SET_MOVE special CallApprenticeFunction .endm -.macro apprentice_setfirstmon monId:req +.macro apprentice_setleadmon monId:req copyvar VAR_0x8005, \monId -setvar VAR_0x8004, APPRENTICE_FUNC_SET_FIRST_MON +setvar VAR_0x8004, APPRENTICE_FUNC_SET_LEAD_MON special CallApprenticeFunction .endm @@ -141,6 +146,16 @@ special CallApprenticeFunction waitstate .endm +.macro apprentice_trysetitem +setvar VAR_0x8004, APPRENTICE_FUNC_TRY_SET_HELD_ITEM +special CallApprenticeFunction +.endm + +.macro apprentice_save +setvar VAR_0x8004, APPRENTICE_FUNC_SAVE +special CallApprenticeFunction +.endm + .macro apprentice_setgfx setvar VAR_0x8004, APPRENTICE_FUNC_SET_GFX special CallApprenticeFunction @@ -150,3 +165,8 @@ special CallApprenticeFunction setvar VAR_0x8004, APPRENTICE_FUNC_SHOULD_LEAVE special CallApprenticeFunction .endm + +.macro apprentice_shiftsaved +setvar VAR_0x8004, APPRENTICE_FUNC_SHIFT_SAVED +special CallApprenticeFunction +.endm diff --git a/common_syms/apprentice.txt b/common_syms/apprentice.txt index e35133ecc..0d3569dcb 100644 --- a/common_syms/apprentice.txt +++ b/common_syms/apprentice.txt @@ -1,3 +1,3 @@ -gUnknown_030062EC -gUnknown_030062F0 -gUnknown_030062F4 +gApprenticePartyMovesData +gApprenticeQuestionData +gApprenticeFunc diff --git a/data/scripts/apprentice.inc b/data/scripts/apprentice.inc index dfb9f5727..30001af2d 100644 --- a/data/scripts/apprentice.inc +++ b/data/scripts/apprentice.inc @@ -34,10 +34,10 @@ Apprentice_EventScript_WhichLvlMode: @ 82B6925 apprentice_msg FALSE, APPRENTICE_MSG_WHICH_LVL_MODE apprentice_menu APPRENTICE_ASK_WHICH_LEVEL apprentice_setlvlmode VAR_RESULT - apprentice_3 + apprentice_shufflespecies apprentice_buff 0, APPRENTICE_BUFF_LEVEL apprentice_msg TRUE, APPRENTICE_MSG_THANKS_LVL_MODE - call Apprentice_EventScript_Hide + call Apprentice_EventScript_SetHideFlags release releaseall switch VAR_FACING @@ -70,7 +70,7 @@ Apprentice_EventScript_UseWhichMon: @ 82B69D3 apprentice_buffv 0, VAR_0x8007 apprentice_freequestion apprentice_msg TRUE, APPRENTICE_MSG_THANKS_MON - call Apprentice_EventScript_Hide + call Apprentice_EventScript_SetHideFlags release releaseall switch VAR_FACING @@ -87,8 +87,7 @@ Apprentice_EventScript_ChoseSecondMon: @ 82B6AC0 return Apprentice_EventScript_LastMonSelected: @ 82B6AC6 - setvar VAR_0x8004, APPRENTICE_FUNC_4 - special CallApprenticeFunction + apprentice_randomizequestions return Apprentice_EventScript_UseWhatHeldItem: @ 82B6ACF @@ -100,16 +99,15 @@ Apprentice_EventScript_ChooseHoldItem: @ 82B6B09 fadescreen 1 setvar VAR_RESULT, 0 apprentice_openbag - compare VAR_RESULT, 0 + compare VAR_RESULT, FALSE goto_if_eq Apprentice_EventScript_ConfirmHoldNothing - setvar VAR_0x8004, APPRENTICE_FUNC_20 - special CallApprenticeFunction + apprentice_trysetitem compare VAR_RESULT, FALSE goto_if_eq Apprentice_EventScript_AlreadySuggestedItem apprentice_buff 0, APPRENTICE_BUFF_ITEM apprentice_msg TRUE, APPRENTICE_MSG_THANKS_HELD_ITEM apprentice_answeredquestion - call Apprentice_EventScript_Hide + call Apprentice_EventScript_SetHideFlags release releaseall switch VAR_FACING @@ -128,7 +126,7 @@ Apprentice_EventScript_ConfirmHoldNothing: @ 82B6B81 Apprentice_EventScript_HoldNothing: @ 82B6BD4 apprentice_msg TRUE, APPRENTICE_MSG_THANKS_NO_HELD_ITEM apprentice_answeredquestion - call Apprentice_EventScript_Hide + call Apprentice_EventScript_SetHideFlags release releaseall switch VAR_FACING @@ -136,6 +134,8 @@ Apprentice_EventScript_HoldNothing: @ 82B6BD4 goto Apprentice_EventScript_Leave end +@ Because Battle Tower mons may not hold the same item, the player must suggest a +@ different item if theyve already told the Apprentice to use it for another mon Apprentice_EventScript_AlreadySuggestedItem: @ 82B6C0C apprentice_initquestion APPRENTICE_QUESTION_WHAT_ITEM apprentice_buff 0, APPRENTICE_BUFF_ITEM @@ -157,15 +157,15 @@ Apprentice_EventScript_UseWhichMove: @ 82B6C77 apprentice_menu APPRENTICE_ASK_MOVES copyvar VAR_0x8005, VAR_RESULT compare VAR_0x8005, 0 - call_if_eq Apprentice_EventScript_ChoseFirstMove + call_if_eq Apprentice_EventScript_ChoseMove1 compare VAR_0x8005, 1 - call_if_eq Apprentice_EventScript_ChoseSecondMove + call_if_eq Apprentice_EventScript_ChoseMove2 apprentice_setmove apprentice_answeredquestion apprentice_buffv 0, VAR_0x8007 apprentice_freequestion apprentice_msg TRUE, APPRENTICE_MSG_THANKS_MOVE - call Apprentice_EventScript_Hide + call Apprentice_EventScript_SetHideFlags release releaseall switch VAR_FACING @@ -173,22 +173,22 @@ Apprentice_EventScript_UseWhichMove: @ 82B6C77 goto Apprentice_EventScript_Leave end -Apprentice_EventScript_ChoseFirstMove: @ 82B6D50 +Apprentice_EventScript_ChoseMove1: @ 82B6D50 setvar VAR_0x8007, APPRENTICE_BUFF_MOVE1 return -Apprentice_EventScript_ChoseSecondMove: @ 82B6D56 +Apprentice_EventScript_ChoseMove2: @ 82B6D56 setvar VAR_0x8007, APPRENTICE_BUFF_MOVE2 return Apprentice_EventScript_PutWhichMonFirst: @ 82B6D5C apprentice_msg FALSE, APPRENTICE_MSG_WHICH_MON_FIRST apprentice_menu APPRENTICE_ASK_3SPECIES - apprentice_setfirstmon VAR_RESULT + apprentice_setleadmon VAR_RESULT apprentice_answeredquestion - apprentice_buff 0, APPRENTICE_BUFF_FIRST_MON_SPECIES + apprentice_buff 0, APPRENTICE_BUFF_LEAD_MON_SPECIES apprentice_msg TRUE, APPRENTICE_MSG_THANKS_MON_FIRST - call Apprentice_EventScript_Hide + call Apprentice_EventScript_SetHideFlags release releaseall switch VAR_FACING @@ -199,18 +199,16 @@ Apprentice_EventScript_PutWhichMonFirst: @ 82B6D5C @ Last question, after which the Apprentice leaves (and is saved) to be replaced by another Apprentice_EventScript_PickWinSpeech: @ 82B6DD4 apprentice_msg TRUE, APPRENTICE_MSG_PICK_WIN_SPEECH - setvar VAR_0x8004, APPRENTICE_FUNC_25 - special CallApprenticeFunction + apprentice_shiftsaved setvar VAR_0x8004, EASY_CHAT_TYPE_APPRENTICE call Common_ShowEasyChatScreen lock faceplayer - setvar VAR_0x8004, APPRENTICE_FUNC_21 - special CallApprenticeFunction + apprentice_save apprentice_buff 0, APPRENTICE_BUFF_WIN_SPEECH apprentice_msg TRUE, APPRENTICE_MSG_THANKS_WIN_SPEECH apprentice_reset - call Apprentice_EventScript_Hide + call Apprentice_EventScript_SetHideFlags release releaseall switch VAR_FACING @@ -218,7 +216,7 @@ Apprentice_EventScript_PickWinSpeech: @ 82B6DD4 goto Apprentice_EventScript_Leave end -Apprentice_EventScript_Hide: @ 82B6E4D +Apprentice_EventScript_SetHideFlags: @ 82B6E4D setflag FLAG_HIDE_APPRENTICE setflag FLAG_DAILY_APPRENTICE_LEAVES return diff --git a/include/apprentice.h b/include/apprentice.h index 44329b677..27ce0371e 100644 --- a/include/apprentice.h +++ b/include/apprentice.h @@ -5,7 +5,7 @@ struct ApprenticeTrainer { - u8 name[6][PLAYER_NAME_LENGTH + 1]; // For all six languages. + u8 name[NUM_LANGUAGES - 1][PLAYER_NAME_LENGTH + 1]; // For all languages except the unused one. u16 otId; u8 facilityClass; u16 species[APPRENTICE_SPECIES_COUNT]; @@ -15,7 +15,7 @@ struct ApprenticeTrainer extern const struct ApprenticeTrainer gApprentices[]; -void CopyFriendsApprenticeChallengeText(u8 saveblockApprenticeId); +void BufferApprenticeChallengeText(u8 saveApprenticeId); void Apprentice_EnableBothScriptContexts(void); void ResetApprenticeStruct(struct Apprentice *apprentice); void ResetAllApprenticeData(void); diff --git a/include/constants/apprentice.h b/include/constants/apprentice.h index 87b7b12f5..ec35a2361 100644 --- a/include/constants/apprentice.h +++ b/include/constants/apprentice.h @@ -1,8 +1,11 @@ #ifndef GUARD_CONSTANTS_APPRENTICE_H #define GUARD_CONSTANTS_APPRENTICE_H -#define APPRENTICE_SPECIES_COUNT 10 #define NUM_APPRENTICES 16 +#define APPRENTICE_SPECIES_COUNT 10 + +#define NUM_WHICH_MON_QUESTIONS MULTI_PARTY_SIZE +#define NUM_WHICH_MOVE_QUESTIONS 5 #define APPRENTICE_LVL_MODE_50 (FRONTIER_LVL_50 + 1) #define APPRENTICE_LVL_MODE_OPEN (FRONTIER_LVL_OPEN + 1) @@ -10,10 +13,10 @@ #define APPRENTICE_FUNC_GAVE_LVLMODE 0 #define APPRENTICE_FUNC_SET_LVLMODE 1 #define APPRENTICE_FUNC_SET_ID 2 -#define APPRENTICE_FUNC_3 3 -#define APPRENTICE_FUNC_4 4 +#define APPRENTICE_FUNC_SHUFFLE_SPECIES 3 +#define APPRENTICE_FUNC_RANDOMIZE_QUESTIONS 4 #define APPRENTICE_FUNC_ANSWERED_QUESTION 5 -#define APPRENTICE_FUNC_6 6 +#define APPRENTICE_FUNC_IS_FINAL_QUESTION 6 #define APPRENTICE_FUNC_MENU 7 #define APPRENTICE_FUNC_PRINT_MSG 8 #define APPRENTICE_FUNC_RESET 9 @@ -25,14 +28,14 @@ #define APPRENTICE_FUNC_FREE_QUESTION_DATA 15 #define APPRENTICE_FUNC_BUFFER_STRING 16 #define APPRENTICE_FUNC_SET_MOVE 17 -#define APPRENTICE_FUNC_SET_FIRST_MON 18 +#define APPRENTICE_FUNC_SET_LEAD_MON 18 #define APPRENTICE_FUNC_OPEN_BAG 19 -#define APPRENTICE_FUNC_20 20 -#define APPRENTICE_FUNC_21 21 +#define APPRENTICE_FUNC_TRY_SET_HELD_ITEM 20 +#define APPRENTICE_FUNC_SAVE 21 #define APPRENTICE_FUNC_SET_GFX_SAVED 22 #define APPRENTICE_FUNC_SET_GFX 23 #define APPRENTICE_FUNC_SHOULD_LEAVE 24 -#define APPRENTICE_FUNC_25 25 +#define APPRENTICE_FUNC_SHIFT_SAVED 25 #define APPRENTICE_MSG_PLEASE_TEACH 0 #define APPRENTICE_MSG_REJECT 1 @@ -58,6 +61,15 @@ #define APPRENTICE_QUESTION_WHAT_ITEM 4 #define APPRENTICE_QUESTION_WIN_SPEECH 5 +// Would be redundant with the above if they used the same values +// but they do this to skip the "which mon" questions and store the below id in a 2 bit field +// These IDs are randomly shuffled in an array to determine the order of questions asked by the Apprentice +// The last question asked is always picking their win speech +#define QUESTION_ID_WIN_SPEECH 0 +#define QUESTION_ID_WHAT_ITEM 1 +#define QUESTION_ID_WHICH_MOVE 2 +#define QUESTION_ID_WHICH_FIRST 3 + #define APPRENTICE_ASK_WHICH_LEVEL 0 #define APPRENTICE_ASK_3SPECIES 1 #define APPRENTICE_ASK_2SPECIES 2 @@ -74,6 +86,6 @@ #define APPRENTICE_BUFF_NAME 6 #define APPRENTICE_BUFF_WIN_SPEECH 7 #define APPRENTICE_BUFF_LEVEL 8 -#define APPRENTICE_BUFF_FIRST_MON_SPECIES 9 +#define APPRENTICE_BUFF_LEAD_MON_SPECIES 9 #endif // GUARD_CONSTANTS_APPRENTICE_H diff --git a/include/constants/global.h b/include/constants/global.h index c5dc86a12..3ee7650a8 100644 --- a/include/constants/global.h +++ b/include/constants/global.h @@ -18,12 +18,13 @@ #define VERSION_GAMECUBE 15 #define LANGUAGE_JAPANESE 1 -#define LANGUAGE_ENGLISH 2 -#define LANGUAGE_FRENCH 3 -#define LANGUAGE_ITALIAN 4 -#define LANGUAGE_GERMAN 5 -#define LANGUAGE_KOREAN 6 // 6 goes unused but the theory is it was meant to be Korean -#define LANGUAGE_SPANISH 7 +#define LANGUAGE_ENGLISH 2 +#define LANGUAGE_FRENCH 3 +#define LANGUAGE_ITALIAN 4 +#define LANGUAGE_GERMAN 5 +#define LANGUAGE_KOREAN 6 // 6 goes unused but the theory is it was meant to be Korean +#define LANGUAGE_SPANISH 7 +#define NUM_LANGUAGES 7 #define GAME_VERSION (VERSION_EMERALD) #define GAME_LANGUAGE (LANGUAGE_ENGLISH) @@ -49,6 +50,7 @@ #define DECOR_MAX_SECRET_BASE 16 #define DECOR_MAX_PLAYERS_HOUSE 12 #define APPRENTICE_COUNT 4 +#define APPRENTICE_MAX_QUESTIONS 9 #define PYRAMID_BAG_ITEMS_COUNT 10 #define HALL_FACILITIES_COUNT 9 // 7 facilities for single mode + tower double mode + tower multi mode. diff --git a/include/global.h b/include/global.h index c00d71d8f..75a63cdb2 100644 --- a/include/global.h +++ b/include/global.h @@ -220,7 +220,7 @@ struct Apprentice { u8 id:5; u8 lvlMode:2; // + 1 - u8 field_1; + u8 numQuestions; u8 number; struct ApprenticeMon party[MULTI_PARTY_SIZE]; u16 speechWon[EASY_CHAT_BATTLE_WORDS_COUNT]; @@ -403,13 +403,13 @@ struct BattleFrontier /*0xEFC*/ struct FrontierMonData field_EFC[3]; }; -struct Sav2_B8 +struct ApprenticeQuestion { - u8 unk0_0:2; - u8 unk0_1:2; - u8 unk0_2:2; - u8 unk0_3:2; - u16 unk2; + u8 questionId:2; + u8 monId:2; + u8 moveSlot:2; + u8 suggestedChange:2; // TRUE if told to use held item or second move, FALSE if told to use no item or first move + u16 data; // used both as an itemId and a moveId }; struct PlayersApprentice @@ -417,12 +417,12 @@ struct PlayersApprentice /*0xB0*/ u8 id; /*0xB1*/ u8 lvlMode:2; //0: Unassigned, 1: Lv 50, 2: Open Lv /*0xB1*/ u8 questionsAnswered:4; - /*0xB1*/ u8 firstMonId:2; - /*0xB2*/ u8 field_B2_0:3; - /*0xB2*/ u8 field_B2_1:2; - /*0xB3*/ u8 field_B3; - /*0xB4*/ u8 monIds[MULTI_PARTY_SIZE]; - /*0xB8*/ struct Sav2_B8 field_B8[9]; + /*0xB1*/ u8 leadMonId:2; + /*0xB2*/ u8 party:3; + /*0xB2*/ u8 field_B2_1:2; + /*0xB3*/ u8 unused; + /*0xB4*/ u8 speciesIds[MULTI_PARTY_SIZE]; + /*0xB8*/ struct ApprenticeQuestion questions[APPRENTICE_MAX_QUESTIONS]; }; struct RankingHall1P diff --git a/src/apprentice.c b/src/apprentice.c index 03194ef6d..1cc6996fb 100644 --- a/src/apprentice.c +++ b/src/apprentice.c @@ -32,20 +32,22 @@ #include "constants/moves.h" #define PLAYER_APPRENTICE gSaveBlock2Ptr->playerApprentice +#define CURRENT_QUESTION_NUM PLAYER_APPRENTICE.questionsAnswered - NUM_WHICH_MON_QUESTIONS -struct Unk030062ECStruct +// The below a TODO +struct ApprenticePartyMovesData { - u8 unk0; - u16 unkA[MULTI_PARTY_SIZE][5]; - u8 unkB[3][5]; + u8 moveCounter; + u16 moves[MULTI_PARTY_SIZE][NUM_WHICH_MOVE_QUESTIONS]; + u8 moveSlots[MULTI_PARTY_SIZE][NUM_WHICH_MOVE_QUESTIONS]; }; -struct Unk030062F0Struct +struct ApprenticeQuestionData { - u16 unk0; - u16 unkX; - u16 unk4; - u16 unk6; + u16 speciesId; + u16 altSpeciesId; + u16 moveId1; + u16 moveId2; }; // data/text/apprentice.inc @@ -345,13 +347,13 @@ extern const u8 gText_ApprenticeChallenge14[]; extern const u8 gText_ApprenticeChallenge15[]; // IWRAM common -struct Unk030062ECStruct *gUnknown_030062EC; -struct Unk030062F0Struct *gUnknown_030062F0; -void (*gUnknown_030062F4)(void); +struct ApprenticePartyMovesData *gApprenticePartyMovesData; +struct ApprenticeQuestionData *gApprenticeQuestionData; +void (*gApprenticeFunc)(void); // This file's functions. -static u16 sub_819FF98(u8 arg0); -static bool8 sub_81A0194(u8 arg0, u16 moveId); +static u16 GetRandomAlternateMove(u8 monId); +static bool8 TrySetMove(u8 monId, u16 moveId); static void CreateChooseAnswerTask(bool8 noBButton, u8 itemsCount, u8 windowId); static u8 CreateAndShowWindow(u8 left, u8 top, u8 width, u8 height); static void RemoveAndHideWindow(u8 windowId); @@ -360,29 +362,29 @@ static void ExecuteFuncAfterButtonPress(void (*func)(void)); static void Script_GivenApprenticeLvlMode(void); static void Script_SetApprenticeLvlMode(void); static void Script_SetApprenticeId(void); -static void sub_819FC60(void); -static void sub_81A0984(void); +static void ShuffleApprenticeSpecies(void); +static void Script_SetRandomQuestionData(void); static void IncrementQuestionsAnswered(void); -static void sub_81A09D0(void); +static void IsFinalQuestion(void); static void Script_CreateApprenticeMenu(void); static void Script_PrintApprenticeMessage(void); static void Script_ResetPlayerApprentice(void); static void GetShouldCheckApprenticeGone(void); static void ApprenticeGetQuestion(void); -static void GetNumApprenticePartyMonsSelected(void); +static void GetNumApprenticePartyMonsAssigned(void); static void SetApprenticePartyMon(void); static void InitApprenticeQuestionData(void); static void FreeApprenticeQuestionData(void); static void ApprenticeBufferString(void); static void SetApprenticeMonMove(void); -static void SetFirstApprenticeMon(void); +static void SetLeadApprenticeMon(void); static void Script_ApprenticeOpenBagMenu(void); -static void sub_81A1224(void); -static void sub_81A1438(void); +static void TrySetApprenticeHeldItem(void); +static void SaveApprentice(void); static void SetSavedApprenticeTrainerGfxId(void); static void SetPlayerApprenticeTrainerGfxId(void); static void GetShouldApprenticeLeave(void); -static void sub_81A1370(void); +static void ShiftSavedApprentices(void); // rodata @@ -518,11 +520,7 @@ const struct ApprenticeTrainer gApprentices[NUM_APPRENTICES] = }, }; -// Sequence of 4 messages for first meeting with the apprentice -// First is the initial greeting and request to be taught -// Second is if the request is denied (which loops back, it's impossible to fully reject them) -// Third is accepting to teach them and asking which level mode to do -// Fourth is after a level mode is chosen for the apprentice +// Sequence of 4 messages for the first meeting with the apprentice static const u8 *const sApprenticeFirstMeetingTexts[NUM_APPRENTICES][4] = { {gText_ApprenticePleaseTeach0, gText_ApprenticeRejectTeaching0, gText_ApprenticeWhichLevelMode0, gText_ApprenticeLevelModeThanks0}, @@ -564,9 +562,6 @@ static const u8 *const sApprenticeWhichMonTexts[NUM_APPRENTICES][2] = }; // Sequence of 5 messages for suggesting a held item to the apprentice -// First is the initial request for what held item to use -// Second is a confirmation that they should hold nothing -// TODO static const u8 *const sApprenticeHeldItemTexts[NUM_APPRENTICES][5] = { {gText_ApprenticeWhatHeldItem0, gText_ApprenticeHoldNothing0, gText_ApprenticeThanksNoHeldItem0, gText_ApprenticeThanksHeldItem0, gText_ApprenticeItemAlreadyRecommended0}, @@ -667,7 +662,9 @@ static const u8 *const sApprenticeChallengeTexts[NUM_APPRENTICES] = gText_ApprenticeChallenge15, }; -static const bool8 gUnknown_08611370[MOVES_COUNT] = +// Unclear what the criteria are for valid moves +// Notably, a large percentage of multi-strike moves are not valid +static const bool8 sValidApprenticeMoves[MOVES_COUNT] = { [MOVE_NONE] = FALSE, [MOVE_POUND] = FALSE, @@ -1026,59 +1023,72 @@ static const bool8 gUnknown_08611370[MOVES_COUNT] = [MOVE_PSYCHO_BOOST] = TRUE, }; -static const u8 gUnknown_086114D3[] = {1, 1, 1, 2, 2, 2, 2, 2, 3, 0}; +// The possible questions to ask after the initial 3 WHICH MON questions. Retrieved from here and shuffled +// WHAT_ITEM has max 3 occurrences, one for each party member +// WHICH_MOVE has max 5 occurrences, defined as NUM_WHICH_MOVE_QUESTIONS +// WHICH_FIRST has max 1 occurrence, lead mon should only be chosen once +// WHICH_SPEECH has max 1 occurrence, as the apprentice leaves after its asked +static const u8 sQuestionPossibilities[] = +{ + QUESTION_ID_WHAT_ITEM, + QUESTION_ID_WHAT_ITEM, + QUESTION_ID_WHAT_ITEM, + QUESTION_ID_WHICH_MOVE, + QUESTION_ID_WHICH_MOVE, + QUESTION_ID_WHICH_MOVE, + QUESTION_ID_WHICH_MOVE, + QUESTION_ID_WHICH_MOVE, + QUESTION_ID_WHICH_FIRST, + QUESTION_ID_WIN_SPEECH +}; static void (* const sApprenticeFunctions[])(void) = { [APPRENTICE_FUNC_GAVE_LVLMODE] = Script_GivenApprenticeLvlMode, [APPRENTICE_FUNC_SET_LVLMODE] = Script_SetApprenticeLvlMode, [APPRENTICE_FUNC_SET_ID] = Script_SetApprenticeId, - [APPRENTICE_FUNC_3] = sub_819FC60, - [APPRENTICE_FUNC_4] = sub_81A0984, + [APPRENTICE_FUNC_SHUFFLE_SPECIES] = ShuffleApprenticeSpecies, + [APPRENTICE_FUNC_RANDOMIZE_QUESTIONS] = Script_SetRandomQuestionData, [APPRENTICE_FUNC_ANSWERED_QUESTION] = IncrementQuestionsAnswered, - [APPRENTICE_FUNC_6] = sub_81A09D0, + [APPRENTICE_FUNC_IS_FINAL_QUESTION] = IsFinalQuestion, [APPRENTICE_FUNC_MENU] = Script_CreateApprenticeMenu, [APPRENTICE_FUNC_PRINT_MSG] = Script_PrintApprenticeMessage, [APPRENTICE_FUNC_RESET] = Script_ResetPlayerApprentice, [APPRENTICE_FUNC_CHECK_GONE] = GetShouldCheckApprenticeGone, [APPRENTICE_FUNC_GET_QUESTION] = ApprenticeGetQuestion, - [APPRENTICE_FUNC_GET_NUM_PARTY_MONS] = GetNumApprenticePartyMonsSelected, + [APPRENTICE_FUNC_GET_NUM_PARTY_MONS] = GetNumApprenticePartyMonsAssigned, [APPRENTICE_FUNC_SET_PARTY_MON] = SetApprenticePartyMon, [APPRENTICE_FUNC_INIT_QUESTION_DATA] = InitApprenticeQuestionData, [APPRENTICE_FUNC_FREE_QUESTION_DATA] = FreeApprenticeQuestionData, [APPRENTICE_FUNC_BUFFER_STRING] = ApprenticeBufferString, [APPRENTICE_FUNC_SET_MOVE] = SetApprenticeMonMove, - [APPRENTICE_FUNC_SET_FIRST_MON] = SetFirstApprenticeMon, + [APPRENTICE_FUNC_SET_LEAD_MON] = SetLeadApprenticeMon, [APPRENTICE_FUNC_OPEN_BAG] = Script_ApprenticeOpenBagMenu, - [APPRENTICE_FUNC_20] = sub_81A1224, - [APPRENTICE_FUNC_21] = sub_81A1438, + [APPRENTICE_FUNC_TRY_SET_HELD_ITEM] = TrySetApprenticeHeldItem, + [APPRENTICE_FUNC_SAVE] = SaveApprentice, [APPRENTICE_FUNC_SET_GFX_SAVED] = SetSavedApprenticeTrainerGfxId, [APPRENTICE_FUNC_SET_GFX] = SetPlayerApprenticeTrainerGfxId, [APPRENTICE_FUNC_SHOULD_LEAVE] = GetShouldApprenticeLeave, - [APPRENTICE_FUNC_25] = sub_81A1370, + [APPRENTICE_FUNC_SHIFT_SAVED] = ShiftSavedApprentices, }; // The first Apprentice can only be one of these static const u8 sInitialApprenticeIds[8] = {0, 1, 2, 3, 6, 7, 8, 9}; -// text -/* -extern const u8 gText_Yes[]; -extern const u8 gText_No[];*/ -void CopyFriendsApprenticeChallengeText(u8 saveblockApprenticeId) +void BufferApprenticeChallengeText(u8 saveApprenticeId) { u8 i, num; const u8 *Intro; - num = gSaveBlock2Ptr->apprentices[saveblockApprenticeId].number; + num = gSaveBlock2Ptr->apprentices[saveApprenticeId].number; for (i = 0; num != 0 && i < APPRENTICE_COUNT; num /= 10, i++) ; - StringCopy7(gStringVar1, gSaveBlock2Ptr->apprentices[saveblockApprenticeId].playerName); - ConvertInternationalString(gStringVar1, gSaveBlock2Ptr->apprentices[saveblockApprenticeId].language); - ConvertIntToDecimalStringN(gStringVar2, gSaveBlock2Ptr->apprentices[saveblockApprenticeId].number, STR_CONV_MODE_RIGHT_ALIGN, i); - Intro = sApprenticeChallengeTexts[gSaveBlock2Ptr->apprentices[saveblockApprenticeId].id]; + StringCopy7(gStringVar1, gSaveBlock2Ptr->apprentices[saveApprenticeId].playerName); + ConvertInternationalString(gStringVar1, gSaveBlock2Ptr->apprentices[saveApprenticeId].language); + ConvertIntToDecimalStringN(gStringVar2, gSaveBlock2Ptr->apprentices[saveApprenticeId].number, STR_CONV_MODE_RIGHT_ALIGN, i); + Intro = sApprenticeChallengeTexts[gSaveBlock2Ptr->apprentices[saveApprenticeId].id]; StringExpandPlaceholders(gStringVar4, Intro); } @@ -1111,7 +1121,7 @@ void ResetAllApprenticeData(void) gSaveBlock2Ptr->apprentices[i].playerName[0] = EOS; gSaveBlock2Ptr->apprentices[i].lvlMode = 0; gSaveBlock2Ptr->apprentices[i].number = 0; - gSaveBlock2Ptr->apprentices[i].field_1 = 0; + gSaveBlock2Ptr->apprentices[i].numQuestions = 0; for (j = 0; j < TRAINER_ID_LENGTH; j++) gSaveBlock2Ptr->apprentices[i].playerId[j] = 0; gSaveBlock2Ptr->apprentices[i].language = gGameLanguage; @@ -1149,142 +1159,151 @@ static void SetPlayersApprenticeLvlMode(u8 mode) PLAYER_APPRENTICE.lvlMode = mode; } -static void sub_819FC60(void) +static void ShuffleApprenticeSpecies(void) { - u8 array[APPRENTICE_SPECIES_COUNT]; + u8 species[APPRENTICE_SPECIES_COUNT]; u8 i; - for (i = 0; i < ARRAY_COUNT(array); i++) - array[i] = i; + for (i = 0; i < ARRAY_COUNT(species); i++) + species[i] = i; + // Shuffle the possible species an arbitrary 50 times for (i = 0; i < 50; i++) { u8 temp; - u8 var1 = Random() % ARRAY_COUNT(array); - u8 var2 = Random() % ARRAY_COUNT(array); - SWAP(array[var1], array[var2], temp); + u8 rand1 = Random() % ARRAY_COUNT(species); + u8 rand2 = Random() % ARRAY_COUNT(species); + SWAP(species[rand1], species[rand2], temp); } for (i = 0; i < MULTI_PARTY_SIZE; i++) - PLAYER_APPRENTICE.monIds[i] = ((array[i * 2] & 0xF) << 4) | ((array[i * 2 + 1]) & 0xF); + PLAYER_APPRENTICE.speciesIds[i] = ((species[i * 2] & 0xF) << 4) | ((species[i * 2 + 1]) & 0xF); } -// TODO: -static u8 sub_819FCF8(u8 val, u8 *arg1, u8 *arg2) +// Pick one of the Apprentice's mons to ask the question about +// Picking a move chooses a random mon, picking a held item is sequential (so that none are repeated) +static u8 GetMonIdForQuestion(u8 questionId, u8 *party, u8 *partySlot) { u8 i, count; u8 monId = 0; - if (val == 2) + if (questionId == QUESTION_ID_WHICH_MOVE) { do { monId = Random() % (MULTI_PARTY_SIZE); - for (count = 0, i = 0; i < 5; i++) + for (count = 0, i = 0; i < NUM_WHICH_MOVE_QUESTIONS; i++) { - if (gUnknown_030062EC->unkA[monId][i] != MOVE_NONE) + if (gApprenticePartyMovesData->moves[monId][i] != MOVE_NONE) count++; } } while (count > MULTI_PARTY_SIZE); } - else if (val == 1) + else if (questionId == QUESTION_ID_WHAT_ITEM) { - monId = arg1[*arg2]; - (*arg2)++; + monId = party[*partySlot]; + (*partySlot)++; } return monId; } -static void sub_819FD64(void) +// Sets the random order and data for the remaining questions after the initial "choose mon" questions +static void SetRandomQuestionData(void) { - u8 sp_0[ARRAY_COUNT(gUnknown_086114D3)]; // TODO replace with constant, used in global for field_B8 - u8 sp_C[MULTI_PARTY_SIZE]; - u8 sp_10; + u8 questionOrder[APPRENTICE_MAX_QUESTIONS + 1]; + u8 partyOrder[MULTI_PARTY_SIZE]; + u8 partySlot; u8 i, j; u8 rand1, rand2; u8 id; - for (i = 0; i < 3; i++) - sp_C[i] = i; + for (i = 0; i < ARRAY_COUNT(partyOrder); i++) + partyOrder[i] = i; + + // Shuffle the party an arbitrary 10 times for (i = 0; i < 10; i++) { u8 temp; - rand1 = Random() % ARRAY_COUNT(sp_C); - rand2 = Random() % ARRAY_COUNT(sp_C); - SWAP(sp_C[rand1], sp_C[rand2], temp); + rand1 = Random() % ARRAY_COUNT(partyOrder); + rand2 = Random() % ARRAY_COUNT(partyOrder); + SWAP(partyOrder[rand1], partyOrder[rand2], temp); } - for (i = 0; i < ARRAY_COUNT(gUnknown_086114D3); i++) - sp_0[i] = gUnknown_086114D3[i]; + for (i = 0; i < ARRAY_COUNT(questionOrder); i++) + questionOrder[i] = sQuestionPossibilities[i]; + + // Shuffle the questions an arbitrary 50 times for (i = 0; i < 50; i++) { u8 temp; - rand1 = Random() % ARRAY_COUNT(sp_0); - rand2 = Random() % ARRAY_COUNT(sp_0); - SWAP(sp_0[rand1], sp_0[rand2], temp); + rand1 = Random() % ARRAY_COUNT(questionOrder); + rand2 = Random() % ARRAY_COUNT(questionOrder); + SWAP(questionOrder[rand1], questionOrder[rand2], temp); } - gUnknown_030062EC = AllocZeroed(sizeof(*gUnknown_030062EC)); - gUnknown_030062EC->unk0 = 0; - for (i = 0; i < 5; i++) + gApprenticePartyMovesData = AllocZeroed(sizeof(*gApprenticePartyMovesData)); + gApprenticePartyMovesData->moveCounter = 0; + for (i = 0; i < NUM_WHICH_MOVE_QUESTIONS; i++) { - for (j = 0; j < 3; j++) - gUnknown_030062EC->unkB[j][i] = 4; + for (j = 0; j < MULTI_PARTY_SIZE; j++) + gApprenticePartyMovesData->moveSlots[j][i] = MAX_MON_MOVES; } - sp_10 = 0; - for (i = 0; i < ARRAY_COUNT(gUnknown_086114D3) - 1; i++) + partySlot = 0; + for (i = 0; i < APPRENTICE_MAX_QUESTIONS; i++) { - PLAYER_APPRENTICE.field_B8[i].unk0_0 = sp_0[i]; - if (sp_0[i] != 3) + PLAYER_APPRENTICE.questions[i].questionId = questionOrder[i]; + if (questionOrder[i] != QUESTION_ID_WHICH_FIRST) { - PLAYER_APPRENTICE.field_B8[i].unk0_1 = sub_819FCF8(sp_0[i], sp_C, &sp_10); - id = PLAYER_APPRENTICE.field_B8[i].unk0_1; - if (sp_0[i] == 2) + PLAYER_APPRENTICE.questions[i].monId = GetMonIdForQuestion(questionOrder[i], partyOrder, &partySlot); + id = PLAYER_APPRENTICE.questions[i].monId; + if (questionOrder[i] == QUESTION_ID_WHICH_MOVE) { do { - rand1 = Random() % 4; - for (j = 0; j < gUnknown_030062EC->unk0 + 1; j++) + rand1 = Random() % MAX_MON_MOVES; + for (j = 0; j < gApprenticePartyMovesData->moveCounter + 1; j++) { - if (gUnknown_030062EC->unkB[id][j] == rand1) + if (gApprenticePartyMovesData->moveSlots[id][j] == rand1) break; } - } while (j != gUnknown_030062EC->unk0 + 1); + } while (j != gApprenticePartyMovesData->moveCounter + 1); - gUnknown_030062EC->unkB[id][gUnknown_030062EC->unk0] = rand1; - PLAYER_APPRENTICE.field_B8[i].unk0_2 = rand1; - PLAYER_APPRENTICE.field_B8[i].unk2 = sub_819FF98(PLAYER_APPRENTICE.field_B8[i].unk0_1); + gApprenticePartyMovesData->moveSlots[id][gApprenticePartyMovesData->moveCounter] = rand1; + PLAYER_APPRENTICE.questions[i].moveSlot = rand1; + PLAYER_APPRENTICE.questions[i].data = GetRandomAlternateMove(PLAYER_APPRENTICE.questions[i].monId); } } } - FREE_AND_SET_NULL(gUnknown_030062EC); + FREE_AND_SET_NULL(gApprenticePartyMovesData); } // No idea why a do-while loop is needed, but it will not match without it. -#define APPRENTICE_SPECIES_ID(speciesArrId, monId) speciesArrId = (PLAYER_APPRENTICE.monIds[monId] >> \ - (((PLAYER_APPRENTICE.field_B2_0 >> monId) & 1) << 2)) & 0xF; \ +#define APPRENTICE_SPECIES_ID(speciesArrId, monId) speciesArrId = (PLAYER_APPRENTICE.speciesIds[monId] >> \ + (((PLAYER_APPRENTICE.party >> monId) & 1) << 2)) & 0xF; \ do {} while (0) // Why the need to have two macros do the exact thing differently? -#define APPRENTICE_SPECIES_ID_2(speciesArrId, monId) { u8 a0 = ((PLAYER_APPRENTICE.field_B2_0 >> monId) & 1);\ - speciesArrId = PLAYER_APPRENTICE.monIds[monId]; \ +#define APPRENTICE_SPECIES_ID_2(speciesArrId, monId) { u8 a0 = ((PLAYER_APPRENTICE.party >> monId) & 1);\ + speciesArrId = PLAYER_APPRENTICE.speciesIds[monId]; \ speciesArrId = ((speciesArrId) >> (a0 << 2)) & 0xF; \ } -static u16 sub_819FF98(u8 monId) +// Get the second move choice for the "Which move" question +// Unlike the first move choice, this can be either a level up move or a TM/HM move +static u16 GetRandomAlternateMove(u8 monId) { u8 i, j; u8 id; - u8 knownMovesCount; + u8 numLearnsetMoves; u16 species; const u16 *learnset; - bool32 var_24 = FALSE; - u16 moveId = 0; - bool32 valid; + bool32 needTMs = FALSE; + u16 moveId = MOVE_NONE; + bool32 shouldUseMove; u8 level; if (monId < MULTI_PARTY_SIZE) @@ -1299,6 +1318,8 @@ static u16 sub_819FF98(u8 monId) species = gApprentices[PLAYER_APPRENTICE.id].species[id]; learnset = gLevelUpLearnsets[species]; j = 0; + + // Despite being open level, level up moves are only read up to level 60 if (PLAYER_APPRENTICE.lvlMode == APPRENTICE_LVL_MODE_50) level = 50; else // == APPRENTICE_LVL_MODE_OPEN @@ -1310,96 +1331,109 @@ static u16 sub_819FF98(u8 monId) break; } - knownMovesCount = j; + numLearnsetMoves = j; i = 0; - while (i <= MAX_MON_MOVES) + + // i < 5 here is arbitrary, i isnt used and is only incremented when the selected move isnt in sValidApprenticeMoves + // This while loop contains 3 potential infinite loops, though none of them would occur in the base game + while (i < 5) { - if (Random() % 2 == 0 || var_24 == TRUE) + if (Random() % 2 == 0 || needTMs == TRUE) { + // Get TM move + // NOTE: Below is an infinite loop if a species that only learns TMs for moves + // that are also in its level up learnset is assigned to an Apprentice do { + // NOTE: Below is an infinite loop if a species which cannot learn TMs is assigned to an Apprentice do { id = Random() % (NUM_TECHNICAL_MACHINES + NUM_HIDDEN_MACHINES); - valid = CanSpeciesLearnTMHM(species, id); + shouldUseMove = CanSpeciesLearnTMHM(species, id); } - while (!valid); + while (!shouldUseMove); moveId = ItemIdToBattleMoveId(ITEM_TM01 + id); - valid = TRUE; + shouldUseMove = TRUE; - if (knownMovesCount < 5) + if (numLearnsetMoves <= MAX_MON_MOVES) j = 0; else - j = knownMovesCount - MAX_MON_MOVES; + j = numLearnsetMoves - MAX_MON_MOVES; - for (; j < knownMovesCount; j++) + for (; j < numLearnsetMoves; j++) { + // Keep looking for TMs until one not in the level up learnset is found if ((learnset[j] & LEVEL_UP_MOVE_ID) == moveId) { - valid = FALSE; + shouldUseMove = FALSE; break; } } - } while (valid != TRUE); + } while (shouldUseMove != TRUE); } else { - if (knownMovesCount <= MAX_MON_MOVES) + if (numLearnsetMoves <= MAX_MON_MOVES) { - var_24 = TRUE; + needTMs = TRUE; continue; } else { + // Get level up move + // NOTE: Below is an infinite loop if a mon whose last 4 moves contain + // all the moves in the rest of its learnset is assigned to an Apprentice do { - u8 learnsetId = Random() % (knownMovesCount - MAX_MON_MOVES); + // Get a random move excluding the 4 it would know at max level + u8 learnsetId = Random() % (numLearnsetMoves - MAX_MON_MOVES); moveId = learnset[learnsetId] & LEVEL_UP_MOVE_ID; - valid = TRUE; - for (j = knownMovesCount - MAX_MON_MOVES; j < knownMovesCount; j++) + shouldUseMove = TRUE; + + for (j = numLearnsetMoves - MAX_MON_MOVES; j < numLearnsetMoves; j++) { + // Keep looking for moves until one not in the last 4 is found if ((learnset[j] & LEVEL_UP_MOVE_ID) == moveId) { - valid = FALSE; + shouldUseMove = FALSE; break; } } - } while (valid != TRUE); + } while (shouldUseMove != TRUE); } } - if (sub_81A0194(monId, moveId)) + if (TrySetMove(monId, moveId)) { - if (gUnknown_08611370[moveId]) + if (sValidApprenticeMoves[moveId]) break; i++; } } - gUnknown_030062EC->unk0++; + gApprenticePartyMovesData->moveCounter++; return moveId; } -// TODO: -static bool8 sub_81A0194(u8 monId, u16 moveId) +static bool8 TrySetMove(u8 monId, u16 moveId) { u8 i; - for (i = 0; i < 5; i++) + for (i = 0; i < NUM_WHICH_MOVE_QUESTIONS; i++) { - if (gUnknown_030062EC->unkA[monId][i] == moveId) + if (gApprenticePartyMovesData->moves[monId][i] == moveId) return FALSE; } - gUnknown_030062EC->unkA[monId][gUnknown_030062EC->unk0] = moveId; + gApprenticePartyMovesData->moves[monId][gApprenticePartyMovesData->moveCounter] = moveId; return TRUE; } static void GetLatestLearnedMoves(u16 species, u16 *moves) { u8 i, j; - u8 level, knownMovesCount; + u8 level, numLearnsetMoves; const u16 *learnset; if (PLAYER_APPRENTICE.lvlMode == APPRENTICE_LVL_MODE_50) @@ -1414,45 +1448,43 @@ static void GetLatestLearnedMoves(u16 species, u16 *moves) break; } - knownMovesCount = i; - if (knownMovesCount > MAX_MON_MOVES) - knownMovesCount = MAX_MON_MOVES; + numLearnsetMoves = i; + if (numLearnsetMoves > MAX_MON_MOVES) + numLearnsetMoves = MAX_MON_MOVES; - for (j = 0; j < knownMovesCount; j++) + for (j = 0; j < numLearnsetMoves; j++) moves[j] = learnset[(i - 1) - j] & LEVEL_UP_MOVE_ID; } -static u16 sub_81A0284(u8 arg0, u8 speciesTableId, u8 arg2) +// Get the level up move or previously suggested move to be the first move choice +// Compare to GetRandomAlternateMove, which gets the move that will be the second choice +static u16 GetDefaultMove(u8 monId, u8 speciesArrayId, u8 moveSlot) { u16 moves[MAX_MON_MOVES]; - u8 i, count; + u8 i, numQuestions; - if (PLAYER_APPRENTICE.questionsAnswered < 3) - return 0; + if (PLAYER_APPRENTICE.questionsAnswered < NUM_WHICH_MON_QUESTIONS) + return MOVE_NONE; - count = 0; - for (i = 0; i < 9; i++) - { - if (PLAYER_APPRENTICE.field_B8[i].unk0_0 == 0) - break; - count++; - } + numQuestions = 0; + for (i = 0; i < APPRENTICE_MAX_QUESTIONS && PLAYER_APPRENTICE.questions[i].questionId != QUESTION_ID_WIN_SPEECH; i++) + numQuestions++; - GetLatestLearnedMoves(gApprentices[PLAYER_APPRENTICE.id].species[speciesTableId], moves); - for (i = 0; i < count && i < PLAYER_APPRENTICE.questionsAnswered - 3; i++) + GetLatestLearnedMoves(gApprentices[PLAYER_APPRENTICE.id].species[speciesArrayId], moves); + for (i = 0; i < numQuestions && i < CURRENT_QUESTION_NUM; i++) { - if (PLAYER_APPRENTICE.field_B8[i].unk0_0 == 2 - && PLAYER_APPRENTICE.field_B8[i].unk0_1 == arg0 - && PLAYER_APPRENTICE.field_B8[i].unk0_3 != 0) + if (PLAYER_APPRENTICE.questions[i].questionId == QUESTION_ID_WHICH_MOVE + && PLAYER_APPRENTICE.questions[i].monId == monId + && PLAYER_APPRENTICE.questions[i].suggestedChange) { - moves[PLAYER_APPRENTICE.field_B8[i].unk0_2] = PLAYER_APPRENTICE.field_B8[i].unk2; + moves[PLAYER_APPRENTICE.questions[i].moveSlot] = PLAYER_APPRENTICE.questions[i].data; } } - return moves[arg2]; + return moves[moveSlot]; } -static void sub_81A0390(u8 arg0) +static void SaveApprenticeParty(u8 numQuestions) { struct ApprenticeMon *apprenticeMons[MULTI_PARTY_SIZE]; u8 i, j; @@ -1460,19 +1492,21 @@ static void sub_81A0390(u8 arg0) for (i = 0; i < MULTI_PARTY_SIZE; i++) { - gSaveBlock2Ptr->apprentices[0].party[i].species = 0; - gSaveBlock2Ptr->apprentices[0].party[i].item = 0; + gSaveBlock2Ptr->apprentices[0].party[i].species = SPECIES_NONE; + gSaveBlock2Ptr->apprentices[0].party[i].item = ITEM_NONE; for (j = 0; j < MAX_MON_MOVES; j++) - gSaveBlock2Ptr->apprentices[0].party[i].moves[j] = 0; + gSaveBlock2Ptr->apprentices[0].party[i].moves[j] = MOVE_NONE; } - j = PLAYER_APPRENTICE.firstMonId; + // Save party order + j = PLAYER_APPRENTICE.leadMonId; for (i = 0; i < MULTI_PARTY_SIZE; i++) { apprenticeMons[j] = &gSaveBlock2Ptr->apprentices[0].party[i]; j = (j + 1) % (MULTI_PARTY_SIZE); } + // Save party species for (i = 0; i < MULTI_PARTY_SIZE; i++) { APPRENTICE_SPECIES_ID(speciesTableId, i); @@ -1480,27 +1514,28 @@ static void sub_81A0390(u8 arg0) GetLatestLearnedMoves(apprenticeMons[i]->species, apprenticeMons[i]->moves); } - for (i = 0; i < arg0; i++) + // Update party based on response to held item / move choice questions + for (i = 0; i < numQuestions; i++) { - u8 var1 = PLAYER_APPRENTICE.field_B8[i].unk0_0; - u8 monId = PLAYER_APPRENTICE.field_B8[i].unk0_1; - if (var1 == 1) + u8 questionId = PLAYER_APPRENTICE.questions[i].questionId; + u8 monId = PLAYER_APPRENTICE.questions[i].monId; + if (questionId == QUESTION_ID_WHAT_ITEM) { - if (PLAYER_APPRENTICE.field_B8[i].unk0_3 != 0) - apprenticeMons[monId]->item = PLAYER_APPRENTICE.field_B8[i].unk2; + if (PLAYER_APPRENTICE.questions[i].suggestedChange) + apprenticeMons[monId]->item = PLAYER_APPRENTICE.questions[i].data; } - else if (var1 == 2) + else if (questionId == QUESTION_ID_WHICH_MOVE) { - if (PLAYER_APPRENTICE.field_B8[i].unk0_3 != 0) + if (PLAYER_APPRENTICE.questions[i].suggestedChange) { - u32 moveSlot = PLAYER_APPRENTICE.field_B8[i].unk0_2; - apprenticeMons[monId]->moves[moveSlot] = PLAYER_APPRENTICE.field_B8[i].unk2; + u32 moveSlot = PLAYER_APPRENTICE.questions[i].moveSlot; + apprenticeMons[monId]->moves[moveSlot] = PLAYER_APPRENTICE.questions[i].data; } } } } -static void CreateApprenticeMenu(u8 arg0) +static void CreateApprenticeMenu(u8 menu) { u8 i; u8 windowId; @@ -1511,17 +1546,17 @@ static void CreateApprenticeMenu(u8 arg0) u8 top; s32 pixelWidth; - switch (arg0) + switch (menu) { case APPRENTICE_ASK_WHICH_LEVEL: - left = 0x12; + left = 18; top = 8; strings[0] = gText_Lv50; strings[1] = gText_OpenLevel; break; case APPRENTICE_ASK_3SPECIES: - count = 3; - left = 0x12; + count = MULTI_PARTY_SIZE; + left = 18; top = 6; for (i = 0; i < MULTI_PARTY_SIZE; i++) { @@ -1534,27 +1569,27 @@ static void CreateApprenticeMenu(u8 arg0) } break; case APPRENTICE_ASK_2SPECIES: - left = 0x12; + left = 18; top = 8; - if (PLAYER_APPRENTICE.questionsAnswered > 2) + if (PLAYER_APPRENTICE.questionsAnswered >= NUM_WHICH_MON_QUESTIONS) return; - strings[1] = gSpeciesNames[gUnknown_030062F0->unkX]; - strings[0] = gSpeciesNames[gUnknown_030062F0->unk0]; + strings[1] = gSpeciesNames[gApprenticeQuestionData->altSpeciesId]; + strings[0] = gSpeciesNames[gApprenticeQuestionData->speciesId]; break; case APPRENTICE_ASK_MOVES: - left = 0x11; + left = 17; top = 8; - strings[0] = gMoveNames[gUnknown_030062F0->unk4]; - strings[1] = gMoveNames[gUnknown_030062F0->unk6]; + strings[0] = gMoveNames[gApprenticeQuestionData->moveId1]; + strings[1] = gMoveNames[gApprenticeQuestionData->moveId2]; break; case APPRENTICE_ASK_GIVE: - left = 0x12; + left = 18; top = 8; strings[0] = gText_Give; strings[1] = gText_NoNeed; break; case APPRENTICE_ASK_YES_NO: - left = 0x14; + left = 20; top = 8; strings[0] = gText_Yes; strings[1] = gText_No; @@ -1637,12 +1672,12 @@ static void RemoveAndHideWindow(u8 windowId) RemoveWindow(windowId); } -static void CreateChooseAnswerTask(bool8 noBButton, u8 itemsCount, u8 windowId) +static void CreateChooseAnswerTask(bool8 noBButton, u8 answers, u8 windowId) { u8 taskId = CreateTask(Task_ChooseAnswer, 80); gTasks[taskId].tNoBButton = noBButton; - if (itemsCount > 3) + if (answers > 3) gTasks[taskId].tWrapAround = TRUE; else gTasks[taskId].tWrapAround = FALSE; @@ -1666,23 +1701,22 @@ static void Script_ResetPlayerApprentice(void) SetApprenticeId(); PLAYER_APPRENTICE.lvlMode = 0; PLAYER_APPRENTICE.questionsAnswered = 0; - PLAYER_APPRENTICE.firstMonId = 0; - PLAYER_APPRENTICE.field_B2_0 = 0; + PLAYER_APPRENTICE.leadMonId = 0; + PLAYER_APPRENTICE.party = 0; for (i = 0; i < MULTI_PARTY_SIZE; i++) - PLAYER_APPRENTICE.monIds[i] = 0; + PLAYER_APPRENTICE.speciesIds[i] = 0; - for (i = 0; i < 9; i++) + for (i = 0; i < APPRENTICE_MAX_QUESTIONS; i++) { - PLAYER_APPRENTICE.field_B8[i].unk0_0 = 0; - PLAYER_APPRENTICE.field_B8[i].unk0_1 = 0; - PLAYER_APPRENTICE.field_B8[i].unk0_2 = 0; - PLAYER_APPRENTICE.field_B8[i].unk0_3 = 0; - PLAYER_APPRENTICE.field_B8[i].unk2 = 0; + PLAYER_APPRENTICE.questions[i].questionId = 0; + PLAYER_APPRENTICE.questions[i].monId = 0; + PLAYER_APPRENTICE.questions[i].moveSlot = 0; + PLAYER_APPRENTICE.questions[i].suggestedChange = 0; + PLAYER_APPRENTICE.questions[i].data = 0; } } -// The Apprentice is considered active after the first conversation, where the player decides a Lvl Mode for them static void Script_GivenApprenticeLvlMode(void) { if (!GivenApprenticeLvlMode()) @@ -1704,9 +1738,9 @@ static void Script_SetApprenticeId(void) SetApprenticeId(); } -static void sub_81A0984(void) +static void Script_SetRandomQuestionData(void) { - sub_819FD64(); + SetRandomQuestionData(); } static void IncrementQuestionsAnswered(void) @@ -1716,24 +1750,27 @@ static void IncrementQuestionsAnswered(void) // The first 3 questions answered after meeting the Apprentice are always selecting party mons // after which this is never called -static void GetNumApprenticePartyMonsSelected(void) +static void GetNumApprenticePartyMonsAssigned(void) { gSpecialVar_Result = PLAYER_APPRENTICE.questionsAnswered; } -static void sub_81A09D0(void) +// Never called, APPRENTICE_FUNC_IS_FINAL_QUESTION is unused +static void IsFinalQuestion(void) { - s32 var = PLAYER_APPRENTICE.questionsAnswered - 3; - if (var < 0) + s32 questionNum = CURRENT_QUESTION_NUM; + + if (questionNum < 0) { + // Not finished asking initial questions gSpecialVar_Result = FALSE; } else { - if (var > 8) + if (questionNum > APPRENTICE_MAX_QUESTIONS - 1) gSpecialVar_Result = TRUE; - if (!PLAYER_APPRENTICE.field_B8[var].unk0_0) + if (PLAYER_APPRENTICE.questions[questionNum].questionId == QUESTION_ID_WIN_SPEECH) gSpecialVar_Result = TRUE; else gSpecialVar_Result = FALSE; @@ -1852,30 +1889,31 @@ static void Script_PrintApprenticeMessage(void) static void ApprenticeGetQuestion(void) { - if (PLAYER_APPRENTICE.questionsAnswered < MULTI_PARTY_SIZE) + if (PLAYER_APPRENTICE.questionsAnswered < NUM_WHICH_MON_QUESTIONS) { - gSpecialVar_Result = 2; + gSpecialVar_Result = APPRENTICE_QUESTION_WHICH_MON; } - else if (PLAYER_APPRENTICE.questionsAnswered > 11) + else if (PLAYER_APPRENTICE.questionsAnswered > (APPRENTICE_MAX_QUESTIONS + NUM_WHICH_MON_QUESTIONS - 1)) { - gSpecialVar_Result = 5; + gSpecialVar_Result = APPRENTICE_QUESTION_WIN_SPEECH; } else { - s32 id = PLAYER_APPRENTICE.questionsAnswered - 3; - switch (PLAYER_APPRENTICE.field_B8[id].unk0_0) + s32 id = CURRENT_QUESTION_NUM; + switch (PLAYER_APPRENTICE.questions[id].questionId) { - case 1: - gSpecialVar_Result = 4; + case QUESTION_ID_WHAT_ITEM: + gSpecialVar_Result = APPRENTICE_QUESTION_WHAT_ITEM; break; - case 2: - gSpecialVar_Result = 3; + case QUESTION_ID_WHICH_MOVE: + gSpecialVar_Result = APPRENTICE_QUESTION_WHICH_MOVE; break; - case 3: - gSpecialVar_Result = 1; + case QUESTION_ID_WHICH_FIRST: + gSpecialVar_Result = APPRENTICE_QUESTION_WHICH_FIRST; break; default: - gSpecialVar_Result = 5; + //case QUESTION_ID_WIN_SPEECH: + gSpecialVar_Result = APPRENTICE_QUESTION_WIN_SPEECH; break; } } @@ -1887,20 +1925,22 @@ static void SetApprenticePartyMon(void) { if (gSpecialVar_0x8005) { - u8 bitNo = gSpecialVar_0x8006; - PLAYER_APPRENTICE.field_B2_0 |= 1 << bitNo; + u8 partySlot = gSpecialVar_0x8006; + PLAYER_APPRENTICE.party |= 1 << partySlot; } } +// gSpecialVar_0x8005 is 0 or 1 for the move selection +// Selection 0 is implicitly the default move assigned static void SetApprenticeMonMove(void) { - if (PLAYER_APPRENTICE.questionsAnswered >= MULTI_PARTY_SIZE) + if (PLAYER_APPRENTICE.questionsAnswered >= NUM_WHICH_MON_QUESTIONS) { - u8 id = PLAYER_APPRENTICE.questionsAnswered - MULTI_PARTY_SIZE; + u8 id = CURRENT_QUESTION_NUM; if (gSpecialVar_0x8005) - PLAYER_APPRENTICE.field_B8[id].unk0_3 = 1; + PLAYER_APPRENTICE.questions[id].suggestedChange = TRUE; else - PLAYER_APPRENTICE.field_B8[id].unk0_3 = 0; + PLAYER_APPRENTICE.questions[id].suggestedChange = FALSE; } } @@ -1910,51 +1950,53 @@ static void InitApprenticeQuestionData(void) u8 count = 0; u8 id1, id2; - for (i = 0; i < 9 && PLAYER_APPRENTICE.field_B8[i].unk0_0; count++, i++) + for (i = 0; i < APPRENTICE_MAX_QUESTIONS && (PLAYER_APPRENTICE.questions[i].questionId != QUESTION_ID_WIN_SPEECH); count++, i++) ; - gUnknown_030062F0 = AllocZeroed(sizeof(*gUnknown_030062F0)); + gApprenticeQuestionData = AllocZeroed(sizeof(*gApprenticeQuestionData)); if (gSpecialVar_0x8005 == APPRENTICE_QUESTION_WHICH_MON) { - if (PLAYER_APPRENTICE.questionsAnswered < 3) + if (PLAYER_APPRENTICE.questionsAnswered < NUM_WHICH_MON_QUESTIONS) { - // For the first 3 questions its used as an id to retrieve pokemon - id1 = PLAYER_APPRENTICE.monIds[PLAYER_APPRENTICE.questionsAnswered] >> 4; - gUnknown_030062F0->unkX = gApprentices[PLAYER_APPRENTICE.id].species[id1]; + // For the first MULTI_PARTY_SIZE (3) questions, a mon is asked to be selected for the Apprentice's party + id1 = PLAYER_APPRENTICE.speciesIds[PLAYER_APPRENTICE.questionsAnswered] >> 4; + gApprenticeQuestionData->altSpeciesId = gApprentices[PLAYER_APPRENTICE.id].species[id1]; - id2 = PLAYER_APPRENTICE.monIds[PLAYER_APPRENTICE.questionsAnswered] & 0xF; - gUnknown_030062F0->unk0 = gApprentices[PLAYER_APPRENTICE.id].species[id2]; + id2 = PLAYER_APPRENTICE.speciesIds[PLAYER_APPRENTICE.questionsAnswered] & 0xF; + gApprenticeQuestionData->speciesId = gApprentices[PLAYER_APPRENTICE.id].species[id2]; } } else if (gSpecialVar_0x8005 == APPRENTICE_QUESTION_WHICH_MOVE) { - if (PLAYER_APPRENTICE.questionsAnswered >= 3 - && PLAYER_APPRENTICE.questionsAnswered < count + 3 - && PLAYER_APPRENTICE.field_B8[PLAYER_APPRENTICE.questionsAnswered - 3].unk0_0 == 2) + if (PLAYER_APPRENTICE.questionsAnswered >= NUM_WHICH_MON_QUESTIONS + && PLAYER_APPRENTICE.questionsAnswered < count + NUM_WHICH_MON_QUESTIONS + && PLAYER_APPRENTICE.questions[CURRENT_QUESTION_NUM].questionId == QUESTION_ID_WHICH_MOVE) { - count = PLAYER_APPRENTICE.field_B8[PLAYER_APPRENTICE.questionsAnswered - 3].unk0_1; + // count re-used as monId + count = PLAYER_APPRENTICE.questions[CURRENT_QUESTION_NUM].monId; APPRENTICE_SPECIES_ID_2(id1, count); - gUnknown_030062F0->unk0 = gApprentices[PLAYER_APPRENTICE.id].species[id1]; - gUnknown_030062F0->unk4 = sub_81A0284(count, id1, PLAYER_APPRENTICE.field_B8[PLAYER_APPRENTICE.questionsAnswered - 3].unk0_2); - gUnknown_030062F0->unk6 = PLAYER_APPRENTICE.field_B8[PLAYER_APPRENTICE.questionsAnswered - 3].unk2; + gApprenticeQuestionData->speciesId = gApprentices[PLAYER_APPRENTICE.id].species[id1]; + gApprenticeQuestionData->moveId1 = GetDefaultMove(count, id1, PLAYER_APPRENTICE.questions[CURRENT_QUESTION_NUM].moveSlot); + gApprenticeQuestionData->moveId2 = PLAYER_APPRENTICE.questions[CURRENT_QUESTION_NUM].data; } } else if (gSpecialVar_0x8005 == APPRENTICE_QUESTION_WHAT_ITEM) { - if (PLAYER_APPRENTICE.questionsAnswered >= 3 - && PLAYER_APPRENTICE.questionsAnswered < count + 3 - && PLAYER_APPRENTICE.field_B8[PLAYER_APPRENTICE.questionsAnswered - 3].unk0_0 == 1) + if (PLAYER_APPRENTICE.questionsAnswered >= NUM_WHICH_MON_QUESTIONS + && PLAYER_APPRENTICE.questionsAnswered < count + NUM_WHICH_MON_QUESTIONS + && PLAYER_APPRENTICE.questions[CURRENT_QUESTION_NUM].questionId == QUESTION_ID_WHAT_ITEM) { - count = PLAYER_APPRENTICE.field_B8[PLAYER_APPRENTICE.questionsAnswered - 3].unk0_1; + // count re-used as monId + count = PLAYER_APPRENTICE.questions[CURRENT_QUESTION_NUM].monId; APPRENTICE_SPECIES_ID_2(id2, count); - gUnknown_030062F0->unk0 = gApprentices[PLAYER_APPRENTICE.id].species[id2]; + gApprenticeQuestionData->speciesId = gApprentices[PLAYER_APPRENTICE.id].species[id2]; } } } static void FreeApprenticeQuestionData(void) { - FREE_AND_SET_NULL(gUnknown_030062F0); + FREE_AND_SET_NULL(gApprenticeQuestionData); } static void ApprenticeBufferString(void) @@ -1981,22 +2023,22 @@ static void ApprenticeBufferString(void) switch (gSpecialVar_0x8006) { case APPRENTICE_BUFF_SPECIES1: - StringCopy(stringDst, gSpeciesNames[gUnknown_030062F0->unk0]); + StringCopy(stringDst, gSpeciesNames[gApprenticeQuestionData->speciesId]); break; case APPRENTICE_BUFF_SPECIES2: - StringCopy(stringDst, gSpeciesNames[gUnknown_030062F0->unkX]); + StringCopy(stringDst, gSpeciesNames[gApprenticeQuestionData->altSpeciesId]); break; case APPRENTICE_BUFF_SPECIES3: - StringCopy(stringDst, gSpeciesNames[gUnknown_030062F0->unk0]); + StringCopy(stringDst, gSpeciesNames[gApprenticeQuestionData->speciesId]); break; case APPRENTICE_BUFF_MOVE1: - StringCopy(stringDst, gMoveNames[gUnknown_030062F0->unk4]); + StringCopy(stringDst, gMoveNames[gApprenticeQuestionData->moveId1]); break; case APPRENTICE_BUFF_MOVE2: - StringCopy(stringDst, gMoveNames[gUnknown_030062F0->unk6]); + StringCopy(stringDst, gMoveNames[gApprenticeQuestionData->moveId2]); break; case APPRENTICE_BUFF_ITEM: - StringCopy(stringDst, ItemId_GetName(PLAYER_APPRENTICE.field_B8[PLAYER_APPRENTICE.questionsAnswered - 3].unk2)); + StringCopy(stringDst, ItemId_GetName(PLAYER_APPRENTICE.questions[CURRENT_QUESTION_NUM].data)); break; case APPRENTICE_BUFF_NAME: TVShowConvertInternationalString(text, GetApprenticeNameInLanguage(PLAYER_APPRENTICE.id, LANGUAGE_ENGLISH), LANGUAGE_ENGLISH); @@ -2012,10 +2054,10 @@ static void ApprenticeBufferString(void) FrontierSpeechToString(gSaveBlock2Ptr->apprentices[0].speechWon); StringCopy(stringDst, gStringVar4); break; - case APPRENTICE_BUFF_FIRST_MON_SPECIES: - if (PLAYER_APPRENTICE.firstMonId < MULTI_PARTY_SIZE) + case APPRENTICE_BUFF_LEAD_MON_SPECIES: + if (PLAYER_APPRENTICE.leadMonId < MULTI_PARTY_SIZE) { - APPRENTICE_SPECIES_ID(speciesArrayId, PLAYER_APPRENTICE.firstMonId); + APPRENTICE_SPECIES_ID(speciesArrayId, PLAYER_APPRENTICE.leadMonId); } else { @@ -2026,9 +2068,9 @@ static void ApprenticeBufferString(void) } } -static void SetFirstApprenticeMon(void) +static void SetLeadApprenticeMon(void) { - PLAYER_APPRENTICE.firstMonId = gSpecialVar_0x8005; + PLAYER_APPRENTICE.leadMonId = gSpecialVar_0x8005; } static void Script_ApprenticeOpenBagMenu(void) @@ -2036,37 +2078,38 @@ static void Script_ApprenticeOpenBagMenu(void) ApprenticeOpenBagMenu(); } -static void sub_81A1224(void) +static void TrySetApprenticeHeldItem(void) { u8 i, j; u8 count; - if (PLAYER_APPRENTICE.questionsAnswered < 3) + if (PLAYER_APPRENTICE.questionsAnswered < NUM_WHICH_MON_QUESTIONS) return; - for (count = 0, j = 0; j < 9 && PLAYER_APPRENTICE.field_B8[j].unk0_0; count++, j++) + for (count = 0, j = 0; j < APPRENTICE_MAX_QUESTIONS && PLAYER_APPRENTICE.questions[j].questionId != QUESTION_ID_WIN_SPEECH; count++, j++) ; - for (i = 0; i < count && i < PLAYER_APPRENTICE.questionsAnswered - 3; i++) + // Make sure the item hasnt already been suggested in previous questions + for (i = 0; i < count && i < CURRENT_QUESTION_NUM; i++) { do {} while(0); - if (PLAYER_APPRENTICE.field_B8[i].unk0_0 == 1 - && PLAYER_APPRENTICE.field_B8[i].unk0_3 - && PLAYER_APPRENTICE.field_B8[i].unk2 == gSpecialVar_0x8005) + if (PLAYER_APPRENTICE.questions[i].questionId == QUESTION_ID_WHAT_ITEM + && PLAYER_APPRENTICE.questions[i].suggestedChange + && PLAYER_APPRENTICE.questions[i].data == gSpecialVar_0x8005) { - PLAYER_APPRENTICE.field_B8[PLAYER_APPRENTICE.questionsAnswered - 3].unk0_3 = 0; - PLAYER_APPRENTICE.field_B8[PLAYER_APPRENTICE.questionsAnswered - 3].unk2 = gSpecialVar_0x8005; + PLAYER_APPRENTICE.questions[CURRENT_QUESTION_NUM].suggestedChange = FALSE; + PLAYER_APPRENTICE.questions[CURRENT_QUESTION_NUM].data = gSpecialVar_0x8005; gSpecialVar_Result = FALSE; return; } } - PLAYER_APPRENTICE.field_B8[PLAYER_APPRENTICE.questionsAnswered - 3].unk0_3 = 1; - PLAYER_APPRENTICE.field_B8[PLAYER_APPRENTICE.questionsAnswered - 3].unk2 = gSpecialVar_0x8005; + PLAYER_APPRENTICE.questions[CURRENT_QUESTION_NUM].suggestedChange = TRUE; + PLAYER_APPRENTICE.questions[CURRENT_QUESTION_NUM].data = gSpecialVar_0x8005; gSpecialVar_Result = TRUE; } -static void sub_81A1370(void) +static void ShiftSavedApprentices(void) { s32 i; s32 apprenticeNum; @@ -2075,7 +2118,7 @@ static void sub_81A1370(void) if (gSaveBlock2Ptr->apprentices[0].playerName[0] == EOS) return; - for (i = 0; i < 3; i++) + for (i = 0; i < APPRENTICE_COUNT - 1; i++) { if (gSaveBlock2Ptr->apprentices[i + 1].playerName[0] == EOS) { @@ -2086,7 +2129,7 @@ static void sub_81A1370(void) apprenticeNum = 0xFFFF; apprenticeIdx = -1; - for (i = 1; i < TRAINER_ID_LENGTH; i++) + for (i = 1; i < APPRENTICE_COUNT; i++) { if (GetTrainerId(gSaveBlock2Ptr->apprentices[i].playerId) == GetTrainerId(gSaveBlock2Ptr->playerTrainerId) && gSaveBlock2Ptr->apprentices[i].number < apprenticeNum) @@ -2100,21 +2143,23 @@ static void sub_81A1370(void) gSaveBlock2Ptr->apprentices[apprenticeIdx] = gSaveBlock2Ptr->apprentices[0]; } -static void sub_81A1438(void) +// Apprentice is always saved in the first slot. Pre-existing Apprentices are moved by ShiftSavedApprentices +static void SaveApprentice(void) { u8 i; gSaveBlock2Ptr->apprentices[0].id = PLAYER_APPRENTICE.id; gSaveBlock2Ptr->apprentices[0].lvlMode = PLAYER_APPRENTICE.lvlMode; - for (i = 0; i < 9 && PLAYER_APPRENTICE.field_B8[i].unk0_0; i++) + // Count questions asked until the final (win speech) question was reached + for (i = 0; i < APPRENTICE_MAX_QUESTIONS && (PLAYER_APPRENTICE.questions[i].questionId != QUESTION_ID_WIN_SPEECH); i++) ; - gSaveBlock2Ptr->apprentices[0].field_1 = i; + gSaveBlock2Ptr->apprentices[0].numQuestions = i; if (gSaveBlock2Ptr->apprentices[0].number < 255) gSaveBlock2Ptr->apprentices[0].number++; - sub_81A0390(gSaveBlock2Ptr->apprentices[0].field_1); + SaveApprenticeParty(gSaveBlock2Ptr->apprentices[0].numQuestions); for (i = 0; i < TRAINER_ID_LENGTH; i++) gSaveBlock2Ptr->apprentices[0].playerId[i] = gSaveBlock2Ptr->playerTrainerId[i]; @@ -2130,7 +2175,6 @@ static void SetSavedApprenticeTrainerGfxId(void) u8 mapObjectGfxId; u8 class = gApprentices[gSaveBlock2Ptr->apprentices[0].id].facilityClass; - // Search male classes. for (i = 0; i < ARRAY_COUNT(gTowerMaleFacilityClasses) && gTowerMaleFacilityClasses[i] != class; i++) ; if (i != ARRAY_COUNT(gTowerMaleFacilityClasses)) @@ -2218,8 +2262,8 @@ static void Task_ExecuteFuncAfterButtonPress(u8 taskId) { if (gMain.newKeys & A_BUTTON || gMain.newKeys & B_BUTTON) { - gUnknown_030062F4 = (void*)(u32)(((u16)gTasks[taskId].data[0] | (gTasks[taskId].data[1] << 16))); - gUnknown_030062F4(); + gApprenticeFunc = (void*)(u32)(((u16)gTasks[taskId].data[0] | (gTasks[taskId].data[1] << 16))); + gApprenticeFunc(); DestroyTask(taskId); } } diff --git a/src/battle_tower.c b/src/battle_tower.c index 27fdc9d6e..aa4ca84e6 100644 --- a/src/battle_tower.c +++ b/src/battle_tower.c @@ -1272,10 +1272,10 @@ static bool8 ChooseSpecialBattleTowerTrainer(void) if (battleMode == FRONTIER_MODE_SINGLES) { ValidateApprenticesChecksums(); - for (i = 0; i < 4; i++) + for (i = 0; i < APPRENTICE_COUNT; i++) { if (gSaveBlock2Ptr->apprentices[i].lvlMode != 0 - && gUnknown_085DF9EC[gSaveBlock2Ptr->apprentices[i].field_1] == winStreak + && gUnknown_085DF9EC[gSaveBlock2Ptr->apprentices[i].numQuestions] == winStreak && gSaveBlock2Ptr->apprentices[i].lvlMode - 1 == lvlMode) { trainerIds[idsCount] = i + TRAINER_RECORD_MIXING_APPRENTICE; @@ -2000,7 +2000,7 @@ static void Unused_CreateApprenticeMons(u16 trainerId, u8 firstMonId) u8 fixedIV = 0; struct Apprentice *apprentice = &gSaveBlock2Ptr->apprentices[0]; - if (apprentice->field_1 < 5) + if (apprentice->numQuestions < 5) fixedIV = 6; else fixedIV = 9; @@ -2178,7 +2178,7 @@ static void sub_8163914(void) else if (trainerId < TRAINER_RECORD_MIXING_APPRENTICE) FrontierSpeechToString(gSaveBlock2Ptr->frontier.towerRecords[trainerId - TRAINER_RECORD_MIXING_FRIEND].greeting); else - CopyFriendsApprenticeChallengeText(trainerId - TRAINER_RECORD_MIXING_APPRENTICE); + BufferApprenticeChallengeText(trainerId - TRAINER_RECORD_MIXING_APPRENTICE); } static void HandleSpecialTrainerBattleEnd(void) @@ -2569,10 +2569,10 @@ static void sub_81642A0(void) r10 = 0; ValidateApprenticesChecksums(); - for (i = 0; i < 4; i++) + for (i = 0; i < APPRENTICE_COUNT; i++) { if (gSaveBlock2Ptr->apprentices[i].lvlMode != 0 - && gUnknown_085DF9EC[gSaveBlock2Ptr->apprentices[i].field_1] / 7 <= challengeNum + && gUnknown_085DF9EC[gSaveBlock2Ptr->apprentices[i].numQuestions] / 7 <= challengeNum && gSaveBlock2Ptr->apprentices[i].lvlMode - 1 == lvlMode) { k = 0; @@ -3393,7 +3393,7 @@ static void ValidateApprenticesChecksums(void) { s32 i, j; - for (i = 0; i < 4; i++) + for (i = 0; i < APPRENTICE_COUNT; i++) { u32 *data = (u32*) &gSaveBlock2Ptr->apprentices[i]; u32 checksum = 0; diff --git a/src/frontier_util.c b/src/frontier_util.c index c32bdc19d..87aff022e 100644 --- a/src/frontier_util.c +++ b/src/frontier_util.c @@ -1698,7 +1698,7 @@ void CopyFrontierTrainerText(u8 whichText, u16 trainerId) else if (trainerId < TRAINER_RECORD_MIXING_APPRENTICE) FrontierSpeechToString(gSaveBlock2Ptr->frontier.towerRecords[trainerId - TRAINER_RECORD_MIXING_FRIEND].greeting); else - CopyFriendsApprenticeChallengeText(trainerId - TRAINER_RECORD_MIXING_APPRENTICE); + BufferApprenticeChallengeText(trainerId - TRAINER_RECORD_MIXING_APPRENTICE); break; case FRONTIER_PLAYER_LOST_TEXT: if (trainerId == TRAINER_EREADER) diff --git a/src/item_menu.c b/src/item_menu.c index 7f7808479..3c5095551 100755 --- a/src/item_menu.c +++ b/src/item_menu.c @@ -495,20 +495,20 @@ void sub_81AAC14(void) void ApprenticeOpenBagMenu(void) { GoToBagMenu(RETURN_LOCATION_FIELD_6, POCKETS_COUNT, CB2_ApprenticeExitBagMenu); - gSpecialVar_0x8005 = 0; - gSpecialVar_Result = 0; + gSpecialVar_0x8005 = ITEM_NONE; + gSpecialVar_Result = FALSE; } void FavorLadyOpenBagMenu(void) { GoToBagMenu(RETURN_LOCATION_FIELD_4, POCKETS_COUNT, CB2_FavorLadyExitBagMenu); - gSpecialVar_Result = 0; + gSpecialVar_Result = FALSE; } void QuizLadyOpenBagMenu(void) { GoToBagMenu(RETURN_LOCATION_FIELD_5, POCKETS_COUNT, CB2_QuizLadyExitBagMenu); - gSpecialVar_Result = 0; + gSpecialVar_Result = FALSE; } void GoToBagMenu(u8 bagMenuType, u8 pocketId, void ( *postExitMenuMainCallback2)()) -- cgit v1.2.3 From b2eb49888d497b5f04697bf4f6fe14904a3fafe3 Mon Sep 17 00:00:00 2001 From: GriffinR Date: Wed, 20 Nov 2019 19:00:08 -0500 Subject: Clean up Apprentice doc --- include/constants/apprentice.h | 121 ++++++++++++++++++++--------------------- include/global.h | 2 +- src/apprentice.c | 95 ++++++++++++++++++++------------ src/record_mixing.c | 90 +++++++++++++++--------------- 4 files changed, 167 insertions(+), 141 deletions(-) diff --git a/include/constants/apprentice.h b/include/constants/apprentice.h index ec35a2361..63434a4fc 100644 --- a/include/constants/apprentice.h +++ b/include/constants/apprentice.h @@ -10,50 +10,50 @@ #define APPRENTICE_LVL_MODE_50 (FRONTIER_LVL_50 + 1) #define APPRENTICE_LVL_MODE_OPEN (FRONTIER_LVL_OPEN + 1) -#define APPRENTICE_FUNC_GAVE_LVLMODE 0 -#define APPRENTICE_FUNC_SET_LVLMODE 1 -#define APPRENTICE_FUNC_SET_ID 2 -#define APPRENTICE_FUNC_SHUFFLE_SPECIES 3 -#define APPRENTICE_FUNC_RANDOMIZE_QUESTIONS 4 -#define APPRENTICE_FUNC_ANSWERED_QUESTION 5 -#define APPRENTICE_FUNC_IS_FINAL_QUESTION 6 -#define APPRENTICE_FUNC_MENU 7 -#define APPRENTICE_FUNC_PRINT_MSG 8 -#define APPRENTICE_FUNC_RESET 9 -#define APPRENTICE_FUNC_CHECK_GONE 10 -#define APPRENTICE_FUNC_GET_QUESTION 11 -#define APPRENTICE_FUNC_GET_NUM_PARTY_MONS 12 -#define APPRENTICE_FUNC_SET_PARTY_MON 13 -#define APPRENTICE_FUNC_INIT_QUESTION_DATA 14 -#define APPRENTICE_FUNC_FREE_QUESTION_DATA 15 -#define APPRENTICE_FUNC_BUFFER_STRING 16 -#define APPRENTICE_FUNC_SET_MOVE 17 -#define APPRENTICE_FUNC_SET_LEAD_MON 18 -#define APPRENTICE_FUNC_OPEN_BAG 19 -#define APPRENTICE_FUNC_TRY_SET_HELD_ITEM 20 -#define APPRENTICE_FUNC_SAVE 21 -#define APPRENTICE_FUNC_SET_GFX_SAVED 22 -#define APPRENTICE_FUNC_SET_GFX 23 -#define APPRENTICE_FUNC_SHOULD_LEAVE 24 -#define APPRENTICE_FUNC_SHIFT_SAVED 25 +#define APPRENTICE_FUNC_GAVE_LVLMODE 0 +#define APPRENTICE_FUNC_SET_LVLMODE 1 +#define APPRENTICE_FUNC_SET_ID 2 +#define APPRENTICE_FUNC_SHUFFLE_SPECIES 3 +#define APPRENTICE_FUNC_RANDOMIZE_QUESTIONS 4 +#define APPRENTICE_FUNC_ANSWERED_QUESTION 5 +#define APPRENTICE_FUNC_IS_FINAL_QUESTION 6 +#define APPRENTICE_FUNC_MENU 7 +#define APPRENTICE_FUNC_PRINT_MSG 8 +#define APPRENTICE_FUNC_RESET 9 +#define APPRENTICE_FUNC_CHECK_GONE 10 +#define APPRENTICE_FUNC_GET_QUESTION 11 +#define APPRENTICE_FUNC_GET_NUM_PARTY_MONS 12 +#define APPRENTICE_FUNC_SET_PARTY_MON 13 +#define APPRENTICE_FUNC_INIT_QUESTION_DATA 14 +#define APPRENTICE_FUNC_FREE_QUESTION_DATA 15 +#define APPRENTICE_FUNC_BUFFER_STRING 16 +#define APPRENTICE_FUNC_SET_MOVE 17 +#define APPRENTICE_FUNC_SET_LEAD_MON 18 +#define APPRENTICE_FUNC_OPEN_BAG 19 +#define APPRENTICE_FUNC_TRY_SET_HELD_ITEM 20 +#define APPRENTICE_FUNC_SAVE 21 +#define APPRENTICE_FUNC_SET_GFX_SAVED 22 +#define APPRENTICE_FUNC_SET_GFX 23 +#define APPRENTICE_FUNC_SHOULD_LEAVE 24 +#define APPRENTICE_FUNC_SHIFT_SAVED 25 -#define APPRENTICE_MSG_PLEASE_TEACH 0 -#define APPRENTICE_MSG_REJECT 1 -#define APPRENTICE_MSG_WHICH_LVL_MODE 2 -#define APPRENTICE_MSG_THANKS_LVL_MODE 3 -#define APPRENTICE_MSG_WHICH_MON_FIRST 4 -#define APPRENTICE_MSG_THANKS_MON_FIRST 5 -#define APPRENTICE_MSG_WHICH_MON 6 -#define APPRENTICE_MSG_THANKS_MON 7 -#define APPRENTICE_MSG_WHICH_MOVE 8 -#define APPRENTICE_MSG_THANKS_MOVE 9 -#define APPRENTICE_MSG_WHAT_HELD_ITEM 10 -#define APPRENTICE_MSG_PICK_WIN_SPEECH 11 -#define APPRENTICE_MSG_THANKS_HELD_ITEM 12 -#define APPRENTICE_MSG_HOLD_NOTHING 13 -#define APPRENTICE_MSG_THANKS_NO_HELD_ITEM 14 -#define APPRENTICE_MSG_THANKS_WIN_SPEECH 15 -#define APPRENTICE_MSG_ITEM_ALREADY_SUGGESTED 16 +#define APPRENTICE_MSG_PLEASE_TEACH 0 +#define APPRENTICE_MSG_REJECT 1 +#define APPRENTICE_MSG_WHICH_LVL_MODE 2 +#define APPRENTICE_MSG_THANKS_LVL_MODE 3 +#define APPRENTICE_MSG_WHICH_MON_FIRST 4 +#define APPRENTICE_MSG_THANKS_MON_FIRST 5 +#define APPRENTICE_MSG_WHICH_MON 6 +#define APPRENTICE_MSG_THANKS_MON 7 +#define APPRENTICE_MSG_WHICH_MOVE 8 +#define APPRENTICE_MSG_THANKS_MOVE 9 +#define APPRENTICE_MSG_WHAT_HELD_ITEM 10 +#define APPRENTICE_MSG_PICK_WIN_SPEECH 11 +#define APPRENTICE_MSG_THANKS_HELD_ITEM 12 +#define APPRENTICE_MSG_HOLD_NOTHING 13 +#define APPRENTICE_MSG_THANKS_NO_HELD_ITEM 14 +#define APPRENTICE_MSG_THANKS_WIN_SPEECH 15 +#define APPRENTICE_MSG_ITEM_ALREADY_SUGGESTED 16 #define APPRENTICE_QUESTION_WHICH_FIRST 1 #define APPRENTICE_QUESTION_WHICH_MON 2 @@ -61,31 +61,28 @@ #define APPRENTICE_QUESTION_WHAT_ITEM 4 #define APPRENTICE_QUESTION_WIN_SPEECH 5 -// Would be redundant with the above if they used the same values -// but they do this to skip the "which mon" questions and store the below id in a 2 bit field -// These IDs are randomly shuffled in an array to determine the order of questions asked by the Apprentice -// The last question asked is always picking their win speech +// Would be redundant with the above set if they used the same values #define QUESTION_ID_WIN_SPEECH 0 #define QUESTION_ID_WHAT_ITEM 1 #define QUESTION_ID_WHICH_MOVE 2 #define QUESTION_ID_WHICH_FIRST 3 -#define APPRENTICE_ASK_WHICH_LEVEL 0 -#define APPRENTICE_ASK_3SPECIES 1 -#define APPRENTICE_ASK_2SPECIES 2 -#define APPRENTICE_ASK_MOVES 3 -#define APPRENTICE_ASK_GIVE 4 -#define APPRENTICE_ASK_YES_NO 6 +#define APPRENTICE_ASK_WHICH_LEVEL 0 +#define APPRENTICE_ASK_3SPECIES 1 +#define APPRENTICE_ASK_2SPECIES 2 +#define APPRENTICE_ASK_MOVES 3 +#define APPRENTICE_ASK_GIVE 4 +#define APPRENTICE_ASK_YES_NO 6 -#define APPRENTICE_BUFF_SPECIES1 0 -#define APPRENTICE_BUFF_SPECIES2 1 -#define APPRENTICE_BUFF_SPECIES3 2 -#define APPRENTICE_BUFF_MOVE1 3 -#define APPRENTICE_BUFF_MOVE2 4 -#define APPRENTICE_BUFF_ITEM 5 -#define APPRENTICE_BUFF_NAME 6 -#define APPRENTICE_BUFF_WIN_SPEECH 7 -#define APPRENTICE_BUFF_LEVEL 8 +#define APPRENTICE_BUFF_SPECIES1 0 +#define APPRENTICE_BUFF_SPECIES2 1 +#define APPRENTICE_BUFF_SPECIES3 2 +#define APPRENTICE_BUFF_MOVE1 3 +#define APPRENTICE_BUFF_MOVE2 4 +#define APPRENTICE_BUFF_ITEM 5 +#define APPRENTICE_BUFF_NAME 6 +#define APPRENTICE_BUFF_WIN_SPEECH 7 +#define APPRENTICE_BUFF_LEVEL 8 #define APPRENTICE_BUFF_LEAD_MON_SPECIES 9 #endif // GUARD_CONSTANTS_APPRENTICE_H diff --git a/include/global.h b/include/global.h index 75a63cdb2..d33be5d82 100644 --- a/include/global.h +++ b/include/global.h @@ -419,7 +419,7 @@ struct PlayersApprentice /*0xB1*/ u8 questionsAnswered:4; /*0xB1*/ u8 leadMonId:2; /*0xB2*/ u8 party:3; - /*0xB2*/ u8 field_B2_1:2; + /*0xB2*/ u8 saveId:2; /*0xB3*/ u8 unused; /*0xB4*/ u8 speciesIds[MULTI_PARTY_SIZE]; /*0xB8*/ struct ApprenticeQuestion questions[APPRENTICE_MAX_QUESTIONS]; diff --git a/src/apprentice.c b/src/apprentice.c index 1cc6996fb..a4c0e0461 100644 --- a/src/apprentice.c +++ b/src/apprentice.c @@ -31,10 +31,37 @@ #include "constants/trainers.h" #include "constants/moves.h" +/* Summary of Apprentice, because (as of writing at least) its not very well documented online + * + * ## Basic info + * In the Battle Tower lobby there is an NPC which asks to be taught by the player + * They can be any 1 of 16 NPC trainers, each with their own name, class, and set of possible party species + * They ask the player a series of questions once per day, and eventually depart the lobby to be replaced by a new Apprentice + * + * ## Initial Questions + * The first question they always ask is a request to be taught, which cannot be rejected + * The second question (which follows immediately after) is whether they should participate in Battle Tower Lv 50 or Open Lv + * After these opening questions they always ask the player to choose between 2 mons, which they repeat 3 times + * + * ## Random Questions + * After choosing 3 mons for them, the Apprentice will randomly ask between 1 and 8 questions of 4 different types, as follows + * - Asking which mon to lead with, which they will only ask at most once + * - Asking which move a mon should use, which they will ask at most 5 times + * - Asking what held item to give to a mon, which they will ask at most 3 times (once for each mon) + * - Asking what they should say when they win a battle, which will always be their final question before departing + * + * ## After departing + * After telling them what they should say when they win a battle they will leave the lobby for a final time + * They will then be replaced by a new random Apprentice (they can repeat) + * Up to 4 old Apprentices are saved and can be encountered (or partnered with) during challenges of the mode they were told to battle in + * They can also be record mixed to and from other Emerald games + * Old/record mixed Apprentices are stored in struct Apprentice apprentices of SaveBlock2 + * and the current Apprentice is stored in struct PlayersApprentice playerApprentice of SaveBlock2 + */ + #define PLAYER_APPRENTICE gSaveBlock2Ptr->playerApprentice #define CURRENT_QUESTION_NUM PLAYER_APPRENTICE.questionsAnswered - NUM_WHICH_MON_QUESTIONS -// The below a TODO struct ApprenticePartyMovesData { u8 moveCounter; @@ -373,8 +400,8 @@ static void GetShouldCheckApprenticeGone(void); static void ApprenticeGetQuestion(void); static void GetNumApprenticePartyMonsAssigned(void); static void SetApprenticePartyMon(void); -static void InitApprenticeQuestionData(void); -static void FreeApprenticeQuestionData(void); +static void InitQuestionData(void); +static void FreeQuestionData(void); static void ApprenticeBufferString(void); static void SetApprenticeMonMove(void); static void SetLeadApprenticeMon(void); @@ -1044,32 +1071,32 @@ static const u8 sQuestionPossibilities[] = static void (* const sApprenticeFunctions[])(void) = { - [APPRENTICE_FUNC_GAVE_LVLMODE] = Script_GivenApprenticeLvlMode, - [APPRENTICE_FUNC_SET_LVLMODE] = Script_SetApprenticeLvlMode, - [APPRENTICE_FUNC_SET_ID] = Script_SetApprenticeId, - [APPRENTICE_FUNC_SHUFFLE_SPECIES] = ShuffleApprenticeSpecies, + [APPRENTICE_FUNC_GAVE_LVLMODE] = Script_GivenApprenticeLvlMode, + [APPRENTICE_FUNC_SET_LVLMODE] = Script_SetApprenticeLvlMode, + [APPRENTICE_FUNC_SET_ID] = Script_SetApprenticeId, + [APPRENTICE_FUNC_SHUFFLE_SPECIES] = ShuffleApprenticeSpecies, [APPRENTICE_FUNC_RANDOMIZE_QUESTIONS] = Script_SetRandomQuestionData, - [APPRENTICE_FUNC_ANSWERED_QUESTION] = IncrementQuestionsAnswered, - [APPRENTICE_FUNC_IS_FINAL_QUESTION] = IsFinalQuestion, - [APPRENTICE_FUNC_MENU] = Script_CreateApprenticeMenu, - [APPRENTICE_FUNC_PRINT_MSG] = Script_PrintApprenticeMessage, - [APPRENTICE_FUNC_RESET] = Script_ResetPlayerApprentice, - [APPRENTICE_FUNC_CHECK_GONE] = GetShouldCheckApprenticeGone, - [APPRENTICE_FUNC_GET_QUESTION] = ApprenticeGetQuestion, - [APPRENTICE_FUNC_GET_NUM_PARTY_MONS] = GetNumApprenticePartyMonsAssigned, - [APPRENTICE_FUNC_SET_PARTY_MON] = SetApprenticePartyMon, - [APPRENTICE_FUNC_INIT_QUESTION_DATA] = InitApprenticeQuestionData, - [APPRENTICE_FUNC_FREE_QUESTION_DATA] = FreeApprenticeQuestionData, - [APPRENTICE_FUNC_BUFFER_STRING] = ApprenticeBufferString, - [APPRENTICE_FUNC_SET_MOVE] = SetApprenticeMonMove, - [APPRENTICE_FUNC_SET_LEAD_MON] = SetLeadApprenticeMon, - [APPRENTICE_FUNC_OPEN_BAG] = Script_ApprenticeOpenBagMenu, - [APPRENTICE_FUNC_TRY_SET_HELD_ITEM] = TrySetApprenticeHeldItem, - [APPRENTICE_FUNC_SAVE] = SaveApprentice, - [APPRENTICE_FUNC_SET_GFX_SAVED] = SetSavedApprenticeTrainerGfxId, - [APPRENTICE_FUNC_SET_GFX] = SetPlayerApprenticeTrainerGfxId, - [APPRENTICE_FUNC_SHOULD_LEAVE] = GetShouldApprenticeLeave, - [APPRENTICE_FUNC_SHIFT_SAVED] = ShiftSavedApprentices, + [APPRENTICE_FUNC_ANSWERED_QUESTION] = IncrementQuestionsAnswered, + [APPRENTICE_FUNC_IS_FINAL_QUESTION] = IsFinalQuestion, + [APPRENTICE_FUNC_MENU] = Script_CreateApprenticeMenu, + [APPRENTICE_FUNC_PRINT_MSG] = Script_PrintApprenticeMessage, + [APPRENTICE_FUNC_RESET] = Script_ResetPlayerApprentice, + [APPRENTICE_FUNC_CHECK_GONE] = GetShouldCheckApprenticeGone, + [APPRENTICE_FUNC_GET_QUESTION] = ApprenticeGetQuestion, + [APPRENTICE_FUNC_GET_NUM_PARTY_MONS] = GetNumApprenticePartyMonsAssigned, + [APPRENTICE_FUNC_SET_PARTY_MON] = SetApprenticePartyMon, + [APPRENTICE_FUNC_INIT_QUESTION_DATA] = InitQuestionData, + [APPRENTICE_FUNC_FREE_QUESTION_DATA] = FreeQuestionData, + [APPRENTICE_FUNC_BUFFER_STRING] = ApprenticeBufferString, + [APPRENTICE_FUNC_SET_MOVE] = SetApprenticeMonMove, + [APPRENTICE_FUNC_SET_LEAD_MON] = SetLeadApprenticeMon, + [APPRENTICE_FUNC_OPEN_BAG] = Script_ApprenticeOpenBagMenu, + [APPRENTICE_FUNC_TRY_SET_HELD_ITEM] = TrySetApprenticeHeldItem, + [APPRENTICE_FUNC_SAVE] = SaveApprentice, + [APPRENTICE_FUNC_SET_GFX_SAVED] = SetSavedApprenticeTrainerGfxId, + [APPRENTICE_FUNC_SET_GFX] = SetPlayerApprenticeTrainerGfxId, + [APPRENTICE_FUNC_SHOULD_LEAVE] = GetShouldApprenticeLeave, + [APPRENTICE_FUNC_SHIFT_SAVED] = ShiftSavedApprentices, }; // The first Apprentice can only be one of these @@ -1079,7 +1106,7 @@ static const u8 sInitialApprenticeIds[8] = {0, 1, 2, 3, 6, 7, 8, 9}; void BufferApprenticeChallengeText(u8 saveApprenticeId) { u8 i, num; - const u8 *Intro; + const u8 *challengeText; num = gSaveBlock2Ptr->apprentices[saveApprenticeId].number; for (i = 0; num != 0 && i < APPRENTICE_COUNT; num /= 10, i++) @@ -1088,8 +1115,8 @@ void BufferApprenticeChallengeText(u8 saveApprenticeId) StringCopy7(gStringVar1, gSaveBlock2Ptr->apprentices[saveApprenticeId].playerName); ConvertInternationalString(gStringVar1, gSaveBlock2Ptr->apprentices[saveApprenticeId].language); ConvertIntToDecimalStringN(gStringVar2, gSaveBlock2Ptr->apprentices[saveApprenticeId].number, STR_CONV_MODE_RIGHT_ALIGN, i); - Intro = sApprenticeChallengeTexts[gSaveBlock2Ptr->apprentices[saveApprenticeId].id]; - StringExpandPlaceholders(gStringVar4, Intro); + challengeText = sApprenticeChallengeTexts[gSaveBlock2Ptr->apprentices[saveApprenticeId].id]; + StringExpandPlaceholders(gStringVar4, challengeText); } void Apprentice_EnableBothScriptContexts(void) @@ -1112,7 +1139,7 @@ void ResetAllApprenticeData(void) { u8 i, j; - PLAYER_APPRENTICE.field_B2_1 = 0; + PLAYER_APPRENTICE.saveId = 0; for (i = 0; i < APPRENTICE_COUNT; i++) { for (j = 0; j < ARRAY_COUNT(gSaveBlock2Ptr->apprentices[i].speechWon); j++) @@ -1944,7 +1971,7 @@ static void SetApprenticeMonMove(void) } } -static void InitApprenticeQuestionData(void) +static void InitQuestionData(void) { u8 i; u8 count = 0; @@ -1994,7 +2021,7 @@ static void InitApprenticeQuestionData(void) } } -static void FreeApprenticeQuestionData(void) +static void FreeQuestionData(void) { FREE_AND_SET_NULL(gApprenticeQuestionData); } diff --git a/src/record_mixing.c b/src/record_mixing.c index ac8c8a8a3..0a3b22a28 100644 --- a/src/record_mixing.c +++ b/src/record_mixing.c @@ -69,7 +69,7 @@ struct PlayerRecordsEmerald /* 0x1124 */ struct EmeraldBattleTowerRecord battleTowerRecord; /* 0x1210 */ u16 giftItem; /* 0x1214 */ LilycoveLady lilycoveLady; - /* 0x1254 */ struct Apprentice apprentice[2]; + /* 0x1254 */ struct Apprentice apprentices[2]; /* 0x12dc */ struct PlayerHallRecords hallRecords; /* 0x1434 */ u8 field_1434[0x10]; }; // 0x1444 @@ -120,8 +120,8 @@ static void sub_80E7B2C(const u8 *); static void ReceiveDaycareMailData(struct RecordMixingDayCareMail *, size_t, u8, TVShow *); static void ReceiveGiftItem(u16 *item, u8 which); static void Task_DoRecordMixing(u8 taskId); -static void sub_80E8110(struct Apprentice *arg0, struct Apprentice *arg1); -static void ReceiveApprenticeData(struct Apprentice *arg0, size_t arg1, u32 arg2); +static void GetSavedApprentices(struct Apprentice *dst, struct Apprentice *src); +static void ReceiveApprenticeData(struct Apprentice *mixApprentice, size_t recordSize, u32 multiplayerId); static void ReceiveRankingHallRecords(struct PlayerHallRecords *hallRecords, size_t arg1, u32 arg2); static void sub_80E89F8(struct RecordMixingDayCareMail *dst); static void SanitizeDayCareMailForRuby(struct RecordMixingDayCareMail *src); @@ -252,7 +252,7 @@ static void PrepareExchangePacket(void) if (GetMultiplayerId() == 0) sSentRecord->emerald.giftItem = GetRecordMixingGift(); - sub_80E8110(sSentRecord->emerald.apprentice, sApprenticesSave); + GetSavedApprentices(sSentRecord->emerald.apprentices, sApprenticesSave); GetPlayerHallRecords(&sSentRecord->emerald.hallRecords); } } @@ -285,7 +285,7 @@ static void ReceiveExchangePacket(u32 which) ReceiveBattleTowerData(&sReceivedRecords->emerald.battleTowerRecord, sizeof(struct PlayerRecordsEmerald), which); ReceiveGiftItem(&sReceivedRecords->emerald.giftItem, which); ReceiveLilycoveLadyData(&sReceivedRecords->emerald.lilycoveLady, sizeof(struct PlayerRecordsEmerald), which); - ReceiveApprenticeData(sReceivedRecords->emerald.apprentice, sizeof(struct PlayerRecordsEmerald), (u8) which); + ReceiveApprenticeData(sReceivedRecords->emerald.apprentices, sizeof(struct PlayerRecordsEmerald), (u8) which); ReceiveRankingHallRecords(&sReceivedRecords->emerald.hallRecords, sizeof(struct PlayerRecordsEmerald), (u8) which); } } @@ -651,7 +651,7 @@ static void ReceiveBattleTowerData(void *battleTowerRecord, size_t recordSize, u { struct EmeraldBattleTowerRecord *dest; struct BattleTowerPokemon *btPokemon; - u32 mixIndices[4]; + u32 mixIndices[MAX_LINK_PLAYERS]; s32 i; ShufflePlayerIndices(mixIndices); @@ -682,7 +682,7 @@ static void ReceiveBattleTowerData(void *battleTowerRecord, size_t recordSize, u static void ReceiveLilycoveLadyData(LilycoveLady *lilycoveLady, size_t recordSize, u8 which) { LilycoveLady *dest; - u32 mixIndices[4]; + u32 mixIndices[MAX_LINK_PLAYERS]; ShufflePlayerIndices(mixIndices); memcpy((void *)lilycoveLady + recordSize * which, sLilycoveLadySave, sizeof(LilycoveLady)); @@ -1018,57 +1018,59 @@ static void Task_DoRecordMixing(u8 taskId) // New Emerald functions -static void sub_80E8110(struct Apprentice *dst, struct Apprentice *src) +static void GetSavedApprentices(struct Apprentice *dst, struct Apprentice *src) { s32 i, id; - s32 var_2C, var_28, var_24, r8; + s32 apprenticeSaveId, oldPlayerApprenticeSaveId; + s32 numOldPlayerApprentices, numMixApprentices; dst[0].playerName[0] = EOS; dst[1].playerName[0] = EOS; dst[0] = src[0]; - var_28 = 0; - var_24 = 0; - var_2C = 0; - r8 = 0; + oldPlayerApprenticeSaveId = 0; + numOldPlayerApprentices = 0; + apprenticeSaveId = 0; + numMixApprentices = 0; for (i = 0; i < 2; i++) { - id = ((i + gSaveBlock2Ptr->playerApprentice.field_B2_1) % 3) + 1; + id = ((i + gSaveBlock2Ptr->playerApprentice.saveId) % 3) + 1; if (src[id].playerName[0] != EOS) { if (GetTrainerId(src[id].playerId) != GetTrainerId(gSaveBlock2Ptr->playerTrainerId)) { - r8++; - var_2C = id; + numMixApprentices++; + apprenticeSaveId = id; } if (GetTrainerId(src[id].playerId) == GetTrainerId(gSaveBlock2Ptr->playerTrainerId)) { - var_24++; - var_28 = id; + numOldPlayerApprentices++; + oldPlayerApprenticeSaveId = id; } } } - if (r8 == 0 && var_24 != 0) + // Prefer passing on other mixed Apprentices rather than old player's Apprentices + if (numMixApprentices == 0 && numOldPlayerApprentices != 0) { - r8 = var_24; - var_2C = var_28; + numMixApprentices = numOldPlayerApprentices; + apprenticeSaveId = oldPlayerApprenticeSaveId; } - switch (r8) + switch (numMixApprentices) { case 1: - dst[1] = src[var_2C]; + dst[1] = src[apprenticeSaveId]; break; case 2: if (Random2() > 0x3333) { - dst[1] = src[gSaveBlock2Ptr->playerApprentice.field_B2_1 + 1]; + dst[1] = src[gSaveBlock2Ptr->playerApprentice.saveId + 1]; } else { - dst[1] = src[((gSaveBlock2Ptr->playerApprentice.field_B2_1 + 1) % 3 + 1)]; + dst[1] = src[((gSaveBlock2Ptr->playerApprentice.saveId + 1) % 3 + 1)]; } break; } @@ -1113,7 +1115,7 @@ void GetPlayerHallRecords(struct PlayerHallRecords *dst) } } -static bool32 sub_80E841C(struct Apprentice *mixApprentice, struct Apprentice *apprentices) +static bool32 IsApprenticeAlreadySaved(struct Apprentice *mixApprentice, struct Apprentice *apprentices) { s32 i; @@ -1129,40 +1131,40 @@ static bool32 sub_80E841C(struct Apprentice *mixApprentice, struct Apprentice *a return FALSE; } -static void ReceiveApprenticeData(struct Apprentice *arg0, size_t arg1, u32 arg2) +static void ReceiveApprenticeData(struct Apprentice *mixApprentice, size_t recordSize, u32 multiplayerId) { - s32 i, r7, r8; - struct Apprentice *structPtr; - u32 mixIndices[4]; - u32 structId; + s32 i, numApprentices, apprenticeId; + struct Apprentice *mixApprenticePtr; + u32 mixIndices[MAX_LINK_PLAYERS]; + u32 apprenticeSaveId; ShufflePlayerIndices(mixIndices); - structPtr = (void*)(arg0) + (arg1 * mixIndices[arg2]); - r7 = 0; - r8 = 0; + mixApprenticePtr = (void*)(mixApprentice) + (recordSize * mixIndices[multiplayerId]); + numApprentices = 0; + apprenticeId = 0; for (i = 0; i < 2; i++) { - if (structPtr[i].playerName[0] != EOS && !sub_80E841C(&structPtr[i], &gSaveBlock2Ptr->apprentices[0])) + if (mixApprenticePtr[i].playerName[0] != EOS && !IsApprenticeAlreadySaved(&mixApprenticePtr[i], &gSaveBlock2Ptr->apprentices[0])) { - r7++; - r8 = i; + numApprentices++; + apprenticeId = i; } } - switch (r7) + switch (numApprentices) { case 1: - structId = gSaveBlock2Ptr->playerApprentice.field_B2_1 + 1; - gSaveBlock2Ptr->apprentices[structId] = structPtr[r8]; - gSaveBlock2Ptr->playerApprentice.field_B2_1 = (gSaveBlock2Ptr->playerApprentice.field_B2_1 + 1) % 3; + apprenticeSaveId = gSaveBlock2Ptr->playerApprentice.saveId + 1; + gSaveBlock2Ptr->apprentices[apprenticeSaveId] = mixApprenticePtr[apprenticeId]; + gSaveBlock2Ptr->playerApprentice.saveId = (gSaveBlock2Ptr->playerApprentice.saveId + 1) % 3; break; case 2: for (i = 0; i < 2; i++) { - structId = ((i ^ 1) + gSaveBlock2Ptr->playerApprentice.field_B2_1) % 3 + 1; - gSaveBlock2Ptr->apprentices[structId] = structPtr[i]; + apprenticeSaveId = ((i ^ 1) + gSaveBlock2Ptr->playerApprentice.saveId) % 3 + 1; + gSaveBlock2Ptr->apprentices[apprenticeSaveId] = mixApprenticePtr[i]; } - gSaveBlock2Ptr->playerApprentice.field_B2_1 = (gSaveBlock2Ptr->playerApprentice.field_B2_1 + 2) % 3; + gSaveBlock2Ptr->playerApprentice.saveId = (gSaveBlock2Ptr->playerApprentice.saveId + 2) % 3; break; } } -- cgit v1.2.3 From 81507fc8b7ed565f5df3a2df6c41959920516bf6 Mon Sep 17 00:00:00 2001 From: GriffinR Date: Wed, 20 Nov 2019 19:04:25 -0500 Subject: Move Apprentice data --- src/apprentice.c | 986 +--------------------------------- src/data/battle_frontier/apprentice.h | 982 +++++++++++++++++++++++++++++++++ 2 files changed, 983 insertions(+), 985 deletions(-) create mode 100644 src/data/battle_frontier/apprentice.h diff --git a/src/apprentice.c b/src/apprentice.c index a4c0e0461..2c8959024 100644 --- a/src/apprentice.c +++ b/src/apprentice.c @@ -77,302 +77,6 @@ struct ApprenticeQuestionData u16 moveId2; }; -// data/text/apprentice.inc -extern const u8 gText_ApprenticePleaseTeach0[]; -extern const u8 gText_ApprenticePleaseTeach1[]; -extern const u8 gText_ApprenticePleaseTeach2[]; -extern const u8 gText_ApprenticePleaseTeach3[]; -extern const u8 gText_ApprenticePleaseTeach4[]; -extern const u8 gText_ApprenticePleaseTeach5[]; -extern const u8 gText_ApprenticePleaseTeach6[]; -extern const u8 gText_ApprenticePleaseTeach7[]; -extern const u8 gText_ApprenticePleaseTeach8[]; -extern const u8 gText_ApprenticePleaseTeach9[]; -extern const u8 gText_ApprenticePleaseTeach10[]; -extern const u8 gText_ApprenticePleaseTeach11[]; -extern const u8 gText_ApprenticePleaseTeach12[]; -extern const u8 gText_ApprenticePleaseTeach13[]; -extern const u8 gText_ApprenticePleaseTeach14[]; -extern const u8 gText_ApprenticePleaseTeach15[]; -extern const u8 gText_ApprenticeRejectTeaching0[]; -extern const u8 gText_ApprenticeRejectTeaching1[]; -extern const u8 gText_ApprenticeRejectTeaching2[]; -extern const u8 gText_ApprenticeRejectTeaching3[]; -extern const u8 gText_ApprenticeRejectTeaching4[]; -extern const u8 gText_ApprenticeRejectTeaching5[]; -extern const u8 gText_ApprenticeRejectTeaching6[]; -extern const u8 gText_ApprenticeRejectTeaching7[]; -extern const u8 gText_ApprenticeRejectTeaching8[]; -extern const u8 gText_ApprenticeRejectTeaching9[]; -extern const u8 gText_ApprenticeRejectTeaching10[]; -extern const u8 gText_ApprenticeRejectTeaching11[]; -extern const u8 gText_ApprenticeRejectTeaching12[]; -extern const u8 gText_ApprenticeRejectTeaching13[]; -extern const u8 gText_ApprenticeRejectTeaching14[]; -extern const u8 gText_ApprenticeRejectTeaching15[]; -extern const u8 gText_ApprenticeWhichLevelMode0[]; -extern const u8 gText_ApprenticeWhichLevelMode1[]; -extern const u8 gText_ApprenticeWhichLevelMode2[]; -extern const u8 gText_ApprenticeWhichLevelMode3[]; -extern const u8 gText_ApprenticeWhichLevelMode4[]; -extern const u8 gText_ApprenticeWhichLevelMode5[]; -extern const u8 gText_ApprenticeWhichLevelMode6[]; -extern const u8 gText_ApprenticeWhichLevelMode7[]; -extern const u8 gText_ApprenticeWhichLevelMode8[]; -extern const u8 gText_ApprenticeWhichLevelMode9[]; -extern const u8 gText_ApprenticeWhichLevelMode10[]; -extern const u8 gText_ApprenticeWhichLevelMode11[]; -extern const u8 gText_ApprenticeWhichLevelMode12[]; -extern const u8 gText_ApprenticeWhichLevelMode13[]; -extern const u8 gText_ApprenticeWhichLevelMode14[]; -extern const u8 gText_ApprenticeWhichLevelMode15[]; -extern const u8 gText_ApprenticeLevelModeThanks0[]; -extern const u8 gText_ApprenticeLevelModeThanks1[]; -extern const u8 gText_ApprenticeLevelModeThanks2[]; -extern const u8 gText_ApprenticeLevelModeThanks3[]; -extern const u8 gText_ApprenticeLevelModeThanks4[]; -extern const u8 gText_ApprenticeLevelModeThanks5[]; -extern const u8 gText_ApprenticeLevelModeThanks6[]; -extern const u8 gText_ApprenticeLevelModeThanks7[]; -extern const u8 gText_ApprenticeLevelModeThanks8[]; -extern const u8 gText_ApprenticeLevelModeThanks9[]; -extern const u8 gText_ApprenticeLevelModeThanks10[]; -extern const u8 gText_ApprenticeLevelModeThanks11[]; -extern const u8 gText_ApprenticeLevelModeThanks12[]; -extern const u8 gText_ApprenticeLevelModeThanks13[]; -extern const u8 gText_ApprenticeLevelModeThanks14[]; -extern const u8 gText_ApprenticeLevelModeThanks15[]; - -extern const u8 gText_ApprenticeWhichMon0[]; -extern const u8 gText_ApprenticeWhichMon1[]; -extern const u8 gText_ApprenticeWhichMon2[]; -extern const u8 gText_ApprenticeWhichMon3[]; -extern const u8 gText_ApprenticeWhichMon4[]; -extern const u8 gText_ApprenticeWhichMon5[]; -extern const u8 gText_ApprenticeWhichMon6[]; -extern const u8 gText_ApprenticeWhichMon7[]; -extern const u8 gText_ApprenticeWhichMon8[]; -extern const u8 gText_ApprenticeWhichMon9[]; -extern const u8 gText_ApprenticeWhichMon10[]; -extern const u8 gText_ApprenticeWhichMon11[]; -extern const u8 gText_ApprenticeWhichMon12[]; -extern const u8 gText_ApprenticeWhichMon13[]; -extern const u8 gText_ApprenticeWhichMon14[]; -extern const u8 gText_ApprenticeWhichMon15[]; -extern const u8 gText_ApprenticeMonThanks0[]; -extern const u8 gText_ApprenticeMonThanks1[]; -extern const u8 gText_ApprenticeMonThanks2[]; -extern const u8 gText_ApprenticeMonThanks3[]; -extern const u8 gText_ApprenticeMonThanks4[]; -extern const u8 gText_ApprenticeMonThanks5[]; -extern const u8 gText_ApprenticeMonThanks6[]; -extern const u8 gText_ApprenticeMonThanks7[]; -extern const u8 gText_ApprenticeMonThanks8[]; -extern const u8 gText_ApprenticeMonThanks9[]; -extern const u8 gText_ApprenticeMonThanks10[]; -extern const u8 gText_ApprenticeMonThanks11[]; -extern const u8 gText_ApprenticeMonThanks12[]; -extern const u8 gText_ApprenticeMonThanks13[]; -extern const u8 gText_ApprenticeMonThanks14[]; -extern const u8 gText_ApprenticeMonThanks15[]; - -extern const u8 gText_ApprenticeWhatHeldItem0[]; -extern const u8 gText_ApprenticeWhatHeldItem1[]; -extern const u8 gText_ApprenticeWhatHeldItem2[]; -extern const u8 gText_ApprenticeWhatHeldItem3[]; -extern const u8 gText_ApprenticeWhatHeldItem4[]; -extern const u8 gText_ApprenticeWhatHeldItem5[]; -extern const u8 gText_ApprenticeWhatHeldItem6[]; -extern const u8 gText_ApprenticeWhatHeldItem7[]; -extern const u8 gText_ApprenticeWhatHeldItem8[]; -extern const u8 gText_ApprenticeWhatHeldItem9[]; -extern const u8 gText_ApprenticeWhatHeldItem10[]; -extern const u8 gText_ApprenticeWhatHeldItem11[]; -extern const u8 gText_ApprenticeWhatHeldItem12[]; -extern const u8 gText_ApprenticeWhatHeldItem13[]; -extern const u8 gText_ApprenticeWhatHeldItem14[]; -extern const u8 gText_ApprenticeWhatHeldItem15[]; -extern const u8 gText_ApprenticeHoldNothing0[]; -extern const u8 gText_ApprenticeHoldNothing1[]; -extern const u8 gText_ApprenticeHoldNothing2[]; -extern const u8 gText_ApprenticeHoldNothing3[]; -extern const u8 gText_ApprenticeHoldNothing4[]; -extern const u8 gText_ApprenticeHoldNothing5[]; -extern const u8 gText_ApprenticeHoldNothing6[]; -extern const u8 gText_ApprenticeHoldNothing7[]; -extern const u8 gText_ApprenticeHoldNothing8[]; -extern const u8 gText_ApprenticeHoldNothing9[]; -extern const u8 gText_ApprenticeHoldNothing10[]; -extern const u8 gText_ApprenticeHoldNothing11[]; -extern const u8 gText_ApprenticeHoldNothing12[]; -extern const u8 gText_ApprenticeHoldNothing13[]; -extern const u8 gText_ApprenticeHoldNothing14[]; -extern const u8 gText_ApprenticeHoldNothing15[]; -extern const u8 gText_ApprenticeThanksNoHeldItem0[]; -extern const u8 gText_ApprenticeThanksNoHeldItem1[]; -extern const u8 gText_ApprenticeThanksNoHeldItem2[]; -extern const u8 gText_ApprenticeThanksNoHeldItem3[]; -extern const u8 gText_ApprenticeThanksNoHeldItem4[]; -extern const u8 gText_ApprenticeThanksNoHeldItem5[]; -extern const u8 gText_ApprenticeThanksNoHeldItem6[]; -extern const u8 gText_ApprenticeThanksNoHeldItem7[]; -extern const u8 gText_ApprenticeThanksNoHeldItem8[]; -extern const u8 gText_ApprenticeThanksNoHeldItem9[]; -extern const u8 gText_ApprenticeThanksNoHeldItem10[]; -extern const u8 gText_ApprenticeThanksNoHeldItem11[]; -extern const u8 gText_ApprenticeThanksNoHeldItem12[]; -extern const u8 gText_ApprenticeThanksNoHeldItem13[]; -extern const u8 gText_ApprenticeThanksNoHeldItem14[]; -extern const u8 gText_ApprenticeThanksNoHeldItem15[]; -extern const u8 gText_ApprenticeThanksHeldItem0[]; -extern const u8 gText_ApprenticeThanksHeldItem1[]; -extern const u8 gText_ApprenticeThanksHeldItem2[]; -extern const u8 gText_ApprenticeThanksHeldItem3[]; -extern const u8 gText_ApprenticeThanksHeldItem4[]; -extern const u8 gText_ApprenticeThanksHeldItem5[]; -extern const u8 gText_ApprenticeThanksHeldItem6[]; -extern const u8 gText_ApprenticeThanksHeldItem7[]; -extern const u8 gText_ApprenticeThanksHeldItem8[]; -extern const u8 gText_ApprenticeThanksHeldItem9[]; -extern const u8 gText_ApprenticeThanksHeldItem10[]; -extern const u8 gText_ApprenticeThanksHeldItem11[]; -extern const u8 gText_ApprenticeThanksHeldItem12[]; -extern const u8 gText_ApprenticeThanksHeldItem13[]; -extern const u8 gText_ApprenticeThanksHeldItem14[]; -extern const u8 gText_ApprenticeThanksHeldItem15[]; -extern const u8 gText_ApprenticeItemAlreadyRecommended0[]; -extern const u8 gText_ApprenticeItemAlreadyRecommended1[]; -extern const u8 gText_ApprenticeItemAlreadyRecommended2[]; -extern const u8 gText_ApprenticeItemAlreadyRecommended3[]; -extern const u8 gText_ApprenticeItemAlreadyRecommended4[]; -extern const u8 gText_ApprenticeItemAlreadyRecommended5[]; -extern const u8 gText_ApprenticeItemAlreadyRecommended6[]; -extern const u8 gText_ApprenticeItemAlreadyRecommended7[]; -extern const u8 gText_ApprenticeItemAlreadyRecommended8[]; -extern const u8 gText_ApprenticeItemAlreadyRecommended9[]; -extern const u8 gText_ApprenticeItemAlreadyRecommended10[]; -extern const u8 gText_ApprenticeItemAlreadyRecommended11[]; -extern const u8 gText_ApprenticeItemAlreadyRecommended12[]; -extern const u8 gText_ApprenticeItemAlreadyRecommended13[]; -extern const u8 gText_ApprenticeItemAlreadyRecommended14[]; -extern const u8 gText_ApprenticeItemAlreadyRecommended15[]; - -extern const u8 gText_ApprenticeWhichMove0[]; -extern const u8 gText_ApprenticeWhichMove1[]; -extern const u8 gText_ApprenticeWhichMove2[]; -extern const u8 gText_ApprenticeWhichMove3[]; -extern const u8 gText_ApprenticeWhichMove4[]; -extern const u8 gText_ApprenticeWhichMove5[]; -extern const u8 gText_ApprenticeWhichMove6[]; -extern const u8 gText_ApprenticeWhichMove7[]; -extern const u8 gText_ApprenticeWhichMove8[]; -extern const u8 gText_ApprenticeWhichMove9[]; -extern const u8 gText_ApprenticeWhichMove10[]; -extern const u8 gText_ApprenticeWhichMove11[]; -extern const u8 gText_ApprenticeWhichMove12[]; -extern const u8 gText_ApprenticeWhichMove13[]; -extern const u8 gText_ApprenticeWhichMove14[]; -extern const u8 gText_ApprenticeWhichMove15[]; -extern const u8 gText_ApprenticeMoveThanks0[]; -extern const u8 gText_ApprenticeMoveThanks1[]; -extern const u8 gText_ApprenticeMoveThanks2[]; -extern const u8 gText_ApprenticeMoveThanks3[]; -extern const u8 gText_ApprenticeMoveThanks4[]; -extern const u8 gText_ApprenticeMoveThanks5[]; -extern const u8 gText_ApprenticeMoveThanks6[]; -extern const u8 gText_ApprenticeMoveThanks7[]; -extern const u8 gText_ApprenticeMoveThanks8[]; -extern const u8 gText_ApprenticeMoveThanks9[]; -extern const u8 gText_ApprenticeMoveThanks10[]; -extern const u8 gText_ApprenticeMoveThanks11[]; -extern const u8 gText_ApprenticeMoveThanks12[]; -extern const u8 gText_ApprenticeMoveThanks13[]; -extern const u8 gText_ApprenticeMoveThanks14[]; -extern const u8 gText_ApprenticeMoveThanks15[]; - -extern const u8 gText_ApprenticeWhichMonFirst0[]; -extern const u8 gText_ApprenticeWhichMonFirst1[]; -extern const u8 gText_ApprenticeWhichMonFirst2[]; -extern const u8 gText_ApprenticeWhichMonFirst3[]; -extern const u8 gText_ApprenticeWhichMonFirst4[]; -extern const u8 gText_ApprenticeWhichMonFirst5[]; -extern const u8 gText_ApprenticeWhichMonFirst6[]; -extern const u8 gText_ApprenticeWhichMonFirst7[]; -extern const u8 gText_ApprenticeWhichMonFirst8[]; -extern const u8 gText_ApprenticeWhichMonFirst9[]; -extern const u8 gText_ApprenticeWhichMonFirst10[]; -extern const u8 gText_ApprenticeWhichMonFirst11[]; -extern const u8 gText_ApprenticeWhichMonFirst12[]; -extern const u8 gText_ApprenticeWhichMonFirst13[]; -extern const u8 gText_ApprenticeWhichMonFirst14[]; -extern const u8 gText_ApprenticeWhichMonFirst15[]; -extern const u8 gText_ApprenticeMonFirstThanks0[]; -extern const u8 gText_ApprenticeMonFirstThanks1[]; -extern const u8 gText_ApprenticeMonFirstThanks2[]; -extern const u8 gText_ApprenticeMonFirstThanks3[]; -extern const u8 gText_ApprenticeMonFirstThanks4[]; -extern const u8 gText_ApprenticeMonFirstThanks5[]; -extern const u8 gText_ApprenticeMonFirstThanks6[]; -extern const u8 gText_ApprenticeMonFirstThanks7[]; -extern const u8 gText_ApprenticeMonFirstThanks8[]; -extern const u8 gText_ApprenticeMonFirstThanks9[]; -extern const u8 gText_ApprenticeMonFirstThanks10[]; -extern const u8 gText_ApprenticeMonFirstThanks11[]; -extern const u8 gText_ApprenticeMonFirstThanks12[]; -extern const u8 gText_ApprenticeMonFirstThanks13[]; -extern const u8 gText_ApprenticeMonFirstThanks14[]; -extern const u8 gText_ApprenticeMonFirstThanks15[]; - -extern const u8 gText_ApprenticePickWinSpeech0[]; -extern const u8 gText_ApprenticePickWinSpeech1[]; -extern const u8 gText_ApprenticePickWinSpeech2[]; -extern const u8 gText_ApprenticePickWinSpeech3[]; -extern const u8 gText_ApprenticePickWinSpeech4[]; -extern const u8 gText_ApprenticePickWinSpeech5[]; -extern const u8 gText_ApprenticePickWinSpeech6[]; -extern const u8 gText_ApprenticePickWinSpeech7[]; -extern const u8 gText_ApprenticePickWinSpeech8[]; -extern const u8 gText_ApprenticePickWinSpeech9[]; -extern const u8 gText_ApprenticePickWinSpeech10[]; -extern const u8 gText_ApprenticePickWinSpeech11[]; -extern const u8 gText_ApprenticePickWinSpeech12[]; -extern const u8 gText_ApprenticePickWinSpeech13[]; -extern const u8 gText_ApprenticePickWinSpeech14[]; -extern const u8 gText_ApprenticePickWinSpeech15[]; -extern const u8 gText_ApprenticeWinSpeechThanks0[]; -extern const u8 gText_ApprenticeWinSpeechThanks1[]; -extern const u8 gText_ApprenticeWinSpeechThanks2[]; -extern const u8 gText_ApprenticeWinSpeechThanks3[]; -extern const u8 gText_ApprenticeWinSpeechThanks4[]; -extern const u8 gText_ApprenticeWinSpeechThanks5[]; -extern const u8 gText_ApprenticeWinSpeechThanks6[]; -extern const u8 gText_ApprenticeWinSpeechThanks7[]; -extern const u8 gText_ApprenticeWinSpeechThanks8[]; -extern const u8 gText_ApprenticeWinSpeechThanks9[]; -extern const u8 gText_ApprenticeWinSpeechThanks10[]; -extern const u8 gText_ApprenticeWinSpeechThanks11[]; -extern const u8 gText_ApprenticeWinSpeechThanks12[]; -extern const u8 gText_ApprenticeWinSpeechThanks13[]; -extern const u8 gText_ApprenticeWinSpeechThanks14[]; -extern const u8 gText_ApprenticeWinSpeechThanks15[]; - -extern const u8 gText_ApprenticeChallenge0[]; -extern const u8 gText_ApprenticeChallenge1[]; -extern const u8 gText_ApprenticeChallenge2[]; -extern const u8 gText_ApprenticeChallenge3[]; -extern const u8 gText_ApprenticeChallenge4[]; -extern const u8 gText_ApprenticeChallenge5[]; -extern const u8 gText_ApprenticeChallenge6[]; -extern const u8 gText_ApprenticeChallenge7[]; -extern const u8 gText_ApprenticeChallenge8[]; -extern const u8 gText_ApprenticeChallenge9[]; -extern const u8 gText_ApprenticeChallenge10[]; -extern const u8 gText_ApprenticeChallenge11[]; -extern const u8 gText_ApprenticeChallenge12[]; -extern const u8 gText_ApprenticeChallenge13[]; -extern const u8 gText_ApprenticeChallenge14[]; -extern const u8 gText_ApprenticeChallenge15[]; - // IWRAM common struct ApprenticePartyMovesData *gApprenticePartyMovesData; struct ApprenticeQuestionData *gApprenticeQuestionData; @@ -413,695 +117,7 @@ static void SetPlayerApprenticeTrainerGfxId(void); static void GetShouldApprenticeLeave(void); static void ShiftSavedApprentices(void); -// rodata - -const struct ApprenticeTrainer gApprentices[NUM_APPRENTICES] = -{ - { - .name = {_("サダヒロ"), _("ALANN"), _("ALAIN"), _("ADELFO"), _("CLAUS"), _("TEO")}, - .otId = 0xBDC9, - .facilityClass = FACILITY_CLASS_BUG_CATCHER, - .species = {SPECIES_BEAUTIFLY, SPECIES_DUSTOX, SPECIES_ILLUMISE, SPECIES_SHIFTRY, SPECIES_BRELOOM, SPECIES_NINJASK, SPECIES_SHEDINJA, SPECIES_PINSIR, SPECIES_HERACROSS, SPECIES_VOLBEAT}, - .id = 0, - .speechLost = {EC_WORD_NO, EC_WORD_MISTAKE, EC_WORD_EXCL, EC_WORD_I, EC_WORD_LOST, EC_WORD_BADLY}, - }, - { - .name = {_("ヒロオ"), _("LIONEL"), _("LIONEL"), _("CAIO"), _("LUDWIG"), _("LEO")}, - .otId = 0xCF09, - .facilityClass = FACILITY_CLASS_YOUNGSTER, - .species = {SPECIES_SWELLOW, SPECIES_SWALOT, SPECIES_SHUCKLE, SPECIES_MANECTRIC, SPECIES_TORKOAL, SPECIES_HARIYAMA, SPECIES_MIGHTYENA, SPECIES_LUDICOLO, SPECIES_CRAWDAUNT, SPECIES_WHISCASH}, - .id = 1, - .speechLost = {EC_WORD_OKAY, EC_WORD_I, EC_WORD_LOST, EC_WORD_YOU_RE, EC_WORD_A, EC_WORD_MASTER}, - }, - { - .name = {_("ケイジ"), _("SONNY"), _("HERVE"), _("FEDRO"), _("WENZEL"), _("SANTI")}, - .otId = 0x2E34, - .facilityClass = FACILITY_CLASS_SCHOOL_KID_M, - .species = {SPECIES_LINOONE, SPECIES_MIGHTYENA, SPECIES_WHISCASH, SPECIES_ZANGOOSE, SPECIES_SEVIPER, SPECIES_NINETALES, SPECIES_KECLEON, SPECIES_SHUCKLE, SPECIES_MANECTRIC, SPECIES_MACHAMP}, - .id = 2, - .speechLost = {EC_WORD_I, EC_WORD_WENT, EC_WORD_AND, EC_WORD_LOST, EC_WORD_AWW, EC_WORD_ELLIPSIS}, - }, - { - .name = {_("ユラ"), _("LAYLA"), _("LAYLA"), _("ASTRID"), _("SONJA"), _("LOLA")}, - .otId = 0x84EF, - .facilityClass = FACILITY_CLASS_LASS, - .species = {SPECIES_SWALOT, SPECIES_XATU, SPECIES_ALTARIA, SPECIES_GOLDUCK, SPECIES_FLYGON, SPECIES_ALAKAZAM, SPECIES_GARDEVOIR, SPECIES_WAILORD, SPECIES_GRUMPIG, SPECIES_MIGHTYENA}, - .id = 3, - .speechLost = {EC_WORD_IS, EC_WORD_THIS, EC_WORD_TOO, EC_WORD_MUCH, EC_WORD_QUES, 0xFFFF}, - }, - { - .name = {_("ヨウカ"), _("MACY"), _("AMELIE"), _("CLEO"), _("MARIA"), _("ELISA")}, - .otId = 0x1E43, - .facilityClass = FACILITY_CLASS_SCHOOL_KID_F, - .species = {SPECIES_WIGGLYTUFF, SPECIES_LINOONE, SPECIES_KINGDRA, SPECIES_DELCATTY, SPECIES_RAICHU, SPECIES_FEAROW, SPECIES_STARMIE, SPECIES_MEDICHAM, SPECIES_SHIFTRY, SPECIES_BEAUTIFLY}, - .id = 4, - .speechLost = {EC_WORD_THIS, EC_WORD_WON_T, EC_WORD_BE, EC_WORD_HAPPENING, EC_WORD_NEXT, EC_WORD_TIME}, - }, - { - .name = {_("ヤスシ"), _("DONTE"), _("BRAHIM"), _("GLAUCO"), _("JOSEF"), _("ROQUE")}, - .otId = 0x379F, - .facilityClass = FACILITY_CLASS_RUNNING_TRIATHLETE_M, - .species = {SPECIES_STARMIE, SPECIES_DODRIO, SPECIES_AGGRON, SPECIES_MAGNETON, SPECIES_MACHAMP, SPECIES_ARMALDO, SPECIES_HERACROSS, SPECIES_NOSEPASS, SPECIES_EXPLOUD, SPECIES_MIGHTYENA}, - .id = 5, - .speechLost = {EC_WORD_I_AM, EC_WORD_GOING, EC_WORD_TO, EC_WORD_RUN, EC_WORD_BYE_BYE, EC_WORD_EXCL}, - }, - { - .name = {_("ミサオ"), _("AMIRA"), _("LAURE"), _("DAFNE"), _("AMELIE"), _("LARA")}, - .otId = 0xF555, - .facilityClass = FACILITY_CLASS_RUNNING_TRIATHLETE_F, - .species = {SPECIES_STARMIE, SPECIES_DODRIO, SPECIES_MAGNETON, SPECIES_MEDICHAM, SPECIES_MIGHTYENA, SPECIES_GLALIE, SPECIES_GOLEM, SPECIES_ELECTRODE, SPECIES_PELIPPER, SPECIES_SHARPEDO}, - .id = 6, - .speechLost = {EC_WORD_AHAHA, EC_WORD_DEFEATED, EC_WORD_EXCL, EC_WORD_IT_S, EC_WORD_NOTHING, EC_WORD_EXCL}, - }, - { - .name = {_("カズサ"), _("KALI"), _("JODIE"), _("ILENIA"), _("KARO"), _("ELSA")}, - .otId = 0x8D26, - .facilityClass = FACILITY_CLASS_BEAUTY, - .species = {SPECIES_NINETALES, SPECIES_ALAKAZAM, SPECIES_SCEPTILE, SPECIES_SALAMENCE, SPECIES_GOLDUCK, SPECIES_MAWILE, SPECIES_WEEZING, SPECIES_LANTURN, SPECIES_GARDEVOIR, SPECIES_MILOTIC}, - .id = 7, - .speechLost = {EC_WORD_YOU_RE, EC_WORD_STRONG, EC_WORD_AREN_T, EC_WORD_YOU, EC_WORD_QUES, 0xFFFF}, - }, - { - .name = {_("スミレ"), _("ANNIE"), _("ANNIE"), _("IMELDA"), _("INES"), _("ROSA")}, - .otId = 0x800C, - .facilityClass = FACILITY_CLASS_AROMA_LADY, - .species = {SPECIES_SCEPTILE, SPECIES_VILEPLUME, SPECIES_BELLOSSOM, SPECIES_ROSELIA, SPECIES_CORSOLA, SPECIES_FLYGON, SPECIES_BRELOOM, SPECIES_MILOTIC, SPECIES_ALTARIA, SPECIES_CRADILY}, - .id = 8, - .speechLost = {EC_WORD_WHAT, EC_WORD_TOUGH, EC_WORD_POKEMON, EC_WORD_YOU, EC_WORD_HAVE, EC_WORD_EXCL}, - }, - { - .name = {_("アキノリ"), _("DILLEN"), _("RENE"), _("INDRO"), _("DETLEF"), _("PEDRO")}, - .otId = 0x469f, - .facilityClass = FACILITY_CLASS_HIKER, - .species = {SPECIES_SKARMORY, SPECIES_GOLEM, SPECIES_BLAZIKEN, SPECIES_CAMERUPT, SPECIES_DONPHAN, SPECIES_MUK, SPECIES_SALAMENCE, SPECIES_TROPIUS, SPECIES_SOLROCK, SPECIES_RHYDON}, - .id = 9, - .speechLost = {EC_WORD_WE, EC_WORD_WERE, EC_WORD_JUST, EC_WORD_SHREDDED, EC_WORD_ELLIPSIS, 0xFFFF}, - }, - { - .name = {_("トウゾウ"), _("DALLAS"), _("BRUNO"), _("LEARCO"), _("ANSGAR"), _("MANOLO")}, - .otId = 0x71FC, - .facilityClass = FACILITY_CLASS_FISHERMAN, - .species = {SPECIES_SEAKING, SPECIES_STARMIE, SPECIES_GOLDUCK, SPECIES_TENTACRUEL, SPECIES_OCTILLERY, SPECIES_GOREBYSS, SPECIES_GLALIE, SPECIES_WAILORD, SPECIES_SHARPEDO, SPECIES_KINGDRA}, - .id = 10, - .speechLost = {EC_WORD_YOUR, EC_WORD_WIN, EC_WORD_ANGERS, EC_WORD_ME, EC_WORD_EXCL, 0xFFFF}, - }, - { - .name = {_("セイヤ"), _("FRANK"), _("FRANK"), _("OLINDO"), _("FRANK"), _("MAURO")}, - .otId = 0xA39E, - .facilityClass = FACILITY_CLASS_SAILOR, - .species = {SPECIES_QUAGSIRE, SPECIES_STARMIE, SPECIES_PELIPPER, SPECIES_CRAWDAUNT, SPECIES_WAILORD, SPECIES_GYARADOS, SPECIES_SWAMPERT, SPECIES_LANTURN, SPECIES_WHISCASH, SPECIES_SHUCKLE}, - .id = 11, - .speechLost = {EC_WORD_LOSING, EC_WORD_DOESN_T, EC_MOVE(CUT), EC_WORD_ME, EC_WORD_DEEP, EC_WORD_OK_QUES}, - }, - { - .name = {_("リュウジ"), _("LAMONT"), _("XAV"), _("ORFEO"), _("JÜRGEN"), _("JORGE")}, - .otId = 0xE590, - .facilityClass = FACILITY_CLASS_GUITARIST, - .species = {SPECIES_ABSOL, SPECIES_CROBAT, SPECIES_EXPLOUD, SPECIES_MAGNETON, SPECIES_SHARPEDO, SPECIES_MANECTRIC, SPECIES_METAGROSS, SPECIES_ELECTRODE, SPECIES_NOSEPASS, SPECIES_WEEZING}, - .id = 12, - .speechLost = {EC_WORD_A, EC_WORD_LOSS, EC_WORD_IS, EC_WORD_WHAT, EC_WORD_THIS, EC_WORD_IS}, - }, - { - .name = {_("カツアキ"), _("TYRESE"), _("ANDY"), _("PARIDE"), _("DAVID"), _("CHICHO")}, - .otId = 0xD018, - .facilityClass = FACILITY_CLASS_BLACK_BELT, - .species = {SPECIES_BLAZIKEN, SPECIES_GOLEM, SPECIES_MACHAMP, SPECIES_RHYDON, SPECIES_HARIYAMA, SPECIES_AGGRON, SPECIES_MEDICHAM, SPECIES_ZANGOOSE, SPECIES_VIGOROTH, SPECIES_SLAKING}, - .id = 13, - .speechLost = {EC_WORD_I_AM, EC_WORD_TOO_WEAK, EC_WORD_AND, EC_WORD_LOW, EC_WORD_OF, EC_WORD_POWER}, - }, - { - .name = {_("トシミツ"), _("DANTE"), _("DANTE"), _("RAOUL"), _("LOTHAR"), _("PABLO")}, - .otId = 0xBC75, - .facilityClass = FACILITY_CLASS_RUIN_MANIAC, - .species = {SPECIES_SCEPTILE, SPECIES_SANDSLASH, SPECIES_FLYGON, SPECIES_CLAYDOL, SPECIES_ARMALDO, SPECIES_CROBAT, SPECIES_CRADILY, SPECIES_SOLROCK, SPECIES_LUNATONE, SPECIES_GOLEM}, - .id = 14, - .speechLost = {EC_WORD_I, EC_WORD_DON_T, EC_WORD_UNDERSTAND, EC_WORD_WHAT, EC_WORD_IS, EC_WORD_HAPPENING}, - }, - { - .name = {_("ローウェン"), _("ARTURO"), _("ARTURO"), _("ROMOLO"), _("BRIAN"), _("ARTURO")}, - .otId = 0xFA02, - .facilityClass = FACILITY_CLASS_GENTLEMAN, - .species = {SPECIES_ABSOL, SPECIES_MIGHTYENA, SPECIES_ALAKAZAM, SPECIES_BANETTE, SPECIES_NINETALES, SPECIES_CLAYDOL, SPECIES_MUK, SPECIES_SALAMENCE, SPECIES_WALREIN, SPECIES_DUSCLOPS}, - .id = 15, - .speechLost = {EC_WORD_THIS, EC_WORD_HAS, EC_WORD_TO, EC_WORD_BE, EC_WORD_A, EC_WORD_LIE}, - }, -}; - -// Sequence of 4 messages for the first meeting with the apprentice -static const u8 *const sApprenticeFirstMeetingTexts[NUM_APPRENTICES][4] = -{ - {gText_ApprenticePleaseTeach0, gText_ApprenticeRejectTeaching0, gText_ApprenticeWhichLevelMode0, gText_ApprenticeLevelModeThanks0}, - {gText_ApprenticePleaseTeach1, gText_ApprenticeRejectTeaching1, gText_ApprenticeWhichLevelMode1, gText_ApprenticeLevelModeThanks1}, - {gText_ApprenticePleaseTeach2, gText_ApprenticeRejectTeaching2, gText_ApprenticeWhichLevelMode2, gText_ApprenticeLevelModeThanks2}, - {gText_ApprenticePleaseTeach3, gText_ApprenticeRejectTeaching3, gText_ApprenticeWhichLevelMode3, gText_ApprenticeLevelModeThanks3}, - {gText_ApprenticePleaseTeach4, gText_ApprenticeRejectTeaching4, gText_ApprenticeWhichLevelMode4, gText_ApprenticeLevelModeThanks4}, - {gText_ApprenticePleaseTeach5, gText_ApprenticeRejectTeaching5, gText_ApprenticeWhichLevelMode5, gText_ApprenticeLevelModeThanks5}, - {gText_ApprenticePleaseTeach6, gText_ApprenticeRejectTeaching6, gText_ApprenticeWhichLevelMode6, gText_ApprenticeLevelModeThanks6}, - {gText_ApprenticePleaseTeach7, gText_ApprenticeRejectTeaching7, gText_ApprenticeWhichLevelMode7, gText_ApprenticeLevelModeThanks7}, - {gText_ApprenticePleaseTeach8, gText_ApprenticeRejectTeaching8, gText_ApprenticeWhichLevelMode8, gText_ApprenticeLevelModeThanks8}, - {gText_ApprenticePleaseTeach9, gText_ApprenticeRejectTeaching9, gText_ApprenticeWhichLevelMode9, gText_ApprenticeLevelModeThanks9}, - {gText_ApprenticePleaseTeach10, gText_ApprenticeRejectTeaching10, gText_ApprenticeWhichLevelMode10, gText_ApprenticeLevelModeThanks10}, - {gText_ApprenticePleaseTeach11, gText_ApprenticeRejectTeaching11, gText_ApprenticeWhichLevelMode11, gText_ApprenticeLevelModeThanks11}, - {gText_ApprenticePleaseTeach12, gText_ApprenticeRejectTeaching12, gText_ApprenticeWhichLevelMode12, gText_ApprenticeLevelModeThanks12}, - {gText_ApprenticePleaseTeach13, gText_ApprenticeRejectTeaching13, gText_ApprenticeWhichLevelMode13, gText_ApprenticeLevelModeThanks13}, - {gText_ApprenticePleaseTeach14, gText_ApprenticeRejectTeaching14, gText_ApprenticeWhichLevelMode14, gText_ApprenticeLevelModeThanks14}, - {gText_ApprenticePleaseTeach15, gText_ApprenticeRejectTeaching15, gText_ApprenticeWhichLevelMode15, gText_ApprenticeLevelModeThanks15}, -}; - -static const u8 *const sApprenticeWhichMonTexts[NUM_APPRENTICES][2] = -{ - {gText_ApprenticeWhichMon0, gText_ApprenticeMonThanks0}, - {gText_ApprenticeWhichMon1, gText_ApprenticeMonThanks1}, - {gText_ApprenticeWhichMon2, gText_ApprenticeMonThanks2}, - {gText_ApprenticeWhichMon3, gText_ApprenticeMonThanks3}, - {gText_ApprenticeWhichMon4, gText_ApprenticeMonThanks4}, - {gText_ApprenticeWhichMon5, gText_ApprenticeMonThanks5}, - {gText_ApprenticeWhichMon6, gText_ApprenticeMonThanks6}, - {gText_ApprenticeWhichMon7, gText_ApprenticeMonThanks7}, - {gText_ApprenticeWhichMon8, gText_ApprenticeMonThanks8}, - {gText_ApprenticeWhichMon9, gText_ApprenticeMonThanks9}, - {gText_ApprenticeWhichMon10, gText_ApprenticeMonThanks10}, - {gText_ApprenticeWhichMon11, gText_ApprenticeMonThanks11}, - {gText_ApprenticeWhichMon12, gText_ApprenticeMonThanks12}, - {gText_ApprenticeWhichMon13, gText_ApprenticeMonThanks13}, - {gText_ApprenticeWhichMon14, gText_ApprenticeMonThanks14}, - {gText_ApprenticeWhichMon15, gText_ApprenticeMonThanks15}, -}; - -// Sequence of 5 messages for suggesting a held item to the apprentice -static const u8 *const sApprenticeHeldItemTexts[NUM_APPRENTICES][5] = -{ - {gText_ApprenticeWhatHeldItem0, gText_ApprenticeHoldNothing0, gText_ApprenticeThanksNoHeldItem0, gText_ApprenticeThanksHeldItem0, gText_ApprenticeItemAlreadyRecommended0}, - {gText_ApprenticeWhatHeldItem1, gText_ApprenticeHoldNothing1, gText_ApprenticeThanksNoHeldItem1, gText_ApprenticeThanksHeldItem1, gText_ApprenticeItemAlreadyRecommended1}, - {gText_ApprenticeWhatHeldItem2, gText_ApprenticeHoldNothing2, gText_ApprenticeThanksNoHeldItem2, gText_ApprenticeThanksHeldItem2, gText_ApprenticeItemAlreadyRecommended2}, - {gText_ApprenticeWhatHeldItem3, gText_ApprenticeHoldNothing3, gText_ApprenticeThanksNoHeldItem3, gText_ApprenticeThanksHeldItem3, gText_ApprenticeItemAlreadyRecommended3}, - {gText_ApprenticeWhatHeldItem4, gText_ApprenticeHoldNothing4, gText_ApprenticeThanksNoHeldItem4, gText_ApprenticeThanksHeldItem4, gText_ApprenticeItemAlreadyRecommended4}, - {gText_ApprenticeWhatHeldItem5, gText_ApprenticeHoldNothing5, gText_ApprenticeThanksNoHeldItem5, gText_ApprenticeThanksHeldItem5, gText_ApprenticeItemAlreadyRecommended5}, - {gText_ApprenticeWhatHeldItem6, gText_ApprenticeHoldNothing6, gText_ApprenticeThanksNoHeldItem6, gText_ApprenticeThanksHeldItem6, gText_ApprenticeItemAlreadyRecommended6}, - {gText_ApprenticeWhatHeldItem7, gText_ApprenticeHoldNothing7, gText_ApprenticeThanksNoHeldItem7, gText_ApprenticeThanksHeldItem7, gText_ApprenticeItemAlreadyRecommended7}, - {gText_ApprenticeWhatHeldItem8, gText_ApprenticeHoldNothing8, gText_ApprenticeThanksNoHeldItem8, gText_ApprenticeThanksHeldItem8, gText_ApprenticeItemAlreadyRecommended8}, - {gText_ApprenticeWhatHeldItem9, gText_ApprenticeHoldNothing9, gText_ApprenticeThanksNoHeldItem9, gText_ApprenticeThanksHeldItem9, gText_ApprenticeItemAlreadyRecommended9}, - {gText_ApprenticeWhatHeldItem10, gText_ApprenticeHoldNothing10, gText_ApprenticeThanksNoHeldItem10, gText_ApprenticeThanksHeldItem10, gText_ApprenticeItemAlreadyRecommended10}, - {gText_ApprenticeWhatHeldItem11, gText_ApprenticeHoldNothing11, gText_ApprenticeThanksNoHeldItem11, gText_ApprenticeThanksHeldItem11, gText_ApprenticeItemAlreadyRecommended11}, - {gText_ApprenticeWhatHeldItem12, gText_ApprenticeHoldNothing12, gText_ApprenticeThanksNoHeldItem12, gText_ApprenticeThanksHeldItem12, gText_ApprenticeItemAlreadyRecommended12}, - {gText_ApprenticeWhatHeldItem13, gText_ApprenticeHoldNothing13, gText_ApprenticeThanksNoHeldItem13, gText_ApprenticeThanksHeldItem13, gText_ApprenticeItemAlreadyRecommended13}, - {gText_ApprenticeWhatHeldItem14, gText_ApprenticeHoldNothing14, gText_ApprenticeThanksNoHeldItem14, gText_ApprenticeThanksHeldItem14, gText_ApprenticeItemAlreadyRecommended14}, - {gText_ApprenticeWhatHeldItem15, gText_ApprenticeHoldNothing15, gText_ApprenticeThanksNoHeldItem15, gText_ApprenticeThanksHeldItem15, gText_ApprenticeItemAlreadyRecommended15}, -}; - -static const u8 *const sApprenticeWhichMoveTexts[NUM_APPRENTICES][2] = -{ - {gText_ApprenticeWhichMove0, gText_ApprenticeMoveThanks0}, - {gText_ApprenticeWhichMove1, gText_ApprenticeMoveThanks1}, - {gText_ApprenticeWhichMove2, gText_ApprenticeMoveThanks2}, - {gText_ApprenticeWhichMove3, gText_ApprenticeMoveThanks3}, - {gText_ApprenticeWhichMove4, gText_ApprenticeMoveThanks4}, - {gText_ApprenticeWhichMove5, gText_ApprenticeMoveThanks5}, - {gText_ApprenticeWhichMove6, gText_ApprenticeMoveThanks6}, - {gText_ApprenticeWhichMove7, gText_ApprenticeMoveThanks7}, - {gText_ApprenticeWhichMove8, gText_ApprenticeMoveThanks8}, - {gText_ApprenticeWhichMove9, gText_ApprenticeMoveThanks9}, - {gText_ApprenticeWhichMove10, gText_ApprenticeMoveThanks10}, - {gText_ApprenticeWhichMove11, gText_ApprenticeMoveThanks11}, - {gText_ApprenticeWhichMove12, gText_ApprenticeMoveThanks12}, - {gText_ApprenticeWhichMove13, gText_ApprenticeMoveThanks13}, - {gText_ApprenticeWhichMove14, gText_ApprenticeMoveThanks14}, - {gText_ApprenticeWhichMove15, gText_ApprenticeMoveThanks15}, -}; - -static const u8 *const sApprenticeWhichMonFirstTexts[NUM_APPRENTICES][2] = -{ - {gText_ApprenticeWhichMonFirst0, gText_ApprenticeMonFirstThanks0}, - {gText_ApprenticeWhichMonFirst1, gText_ApprenticeMonFirstThanks1}, - {gText_ApprenticeWhichMonFirst2, gText_ApprenticeMonFirstThanks2}, - {gText_ApprenticeWhichMonFirst3, gText_ApprenticeMonFirstThanks3}, - {gText_ApprenticeWhichMonFirst4, gText_ApprenticeMonFirstThanks4}, - {gText_ApprenticeWhichMonFirst5, gText_ApprenticeMonFirstThanks5}, - {gText_ApprenticeWhichMonFirst6, gText_ApprenticeMonFirstThanks6}, - {gText_ApprenticeWhichMonFirst7, gText_ApprenticeMonFirstThanks7}, - {gText_ApprenticeWhichMonFirst8, gText_ApprenticeMonFirstThanks8}, - {gText_ApprenticeWhichMonFirst9, gText_ApprenticeMonFirstThanks9}, - {gText_ApprenticeWhichMonFirst10, gText_ApprenticeMonFirstThanks10}, - {gText_ApprenticeWhichMonFirst11, gText_ApprenticeMonFirstThanks11}, - {gText_ApprenticeWhichMonFirst12, gText_ApprenticeMonFirstThanks12}, - {gText_ApprenticeWhichMonFirst13, gText_ApprenticeMonFirstThanks13}, - {gText_ApprenticeWhichMonFirst14, gText_ApprenticeMonFirstThanks14}, - {gText_ApprenticeWhichMonFirst15, gText_ApprenticeMonFirstThanks15}, -}; - -static const u8 *const sApprenticePickWinSpeechTexts[NUM_APPRENTICES][2] = -{ - {gText_ApprenticePickWinSpeech0, gText_ApprenticeWinSpeechThanks0}, - {gText_ApprenticePickWinSpeech1, gText_ApprenticeWinSpeechThanks1}, - {gText_ApprenticePickWinSpeech2, gText_ApprenticeWinSpeechThanks2}, - {gText_ApprenticePickWinSpeech3, gText_ApprenticeWinSpeechThanks3}, - {gText_ApprenticePickWinSpeech4, gText_ApprenticeWinSpeechThanks4}, - {gText_ApprenticePickWinSpeech5, gText_ApprenticeWinSpeechThanks5}, - {gText_ApprenticePickWinSpeech6, gText_ApprenticeWinSpeechThanks6}, - {gText_ApprenticePickWinSpeech7, gText_ApprenticeWinSpeechThanks7}, - {gText_ApprenticePickWinSpeech8, gText_ApprenticeWinSpeechThanks8}, - {gText_ApprenticePickWinSpeech9, gText_ApprenticeWinSpeechThanks9}, - {gText_ApprenticePickWinSpeech10, gText_ApprenticeWinSpeechThanks10}, - {gText_ApprenticePickWinSpeech11, gText_ApprenticeWinSpeechThanks11}, - {gText_ApprenticePickWinSpeech12, gText_ApprenticeWinSpeechThanks12}, - {gText_ApprenticePickWinSpeech13, gText_ApprenticeWinSpeechThanks13}, - {gText_ApprenticePickWinSpeech14, gText_ApprenticeWinSpeechThanks14}, - {gText_ApprenticePickWinSpeech15, gText_ApprenticeWinSpeechThanks15}, -}; - -static const u8 *const sApprenticeChallengeTexts[NUM_APPRENTICES] = -{ - gText_ApprenticeChallenge0, - gText_ApprenticeChallenge1, - gText_ApprenticeChallenge2, - gText_ApprenticeChallenge3, - gText_ApprenticeChallenge4, - gText_ApprenticeChallenge5, - gText_ApprenticeChallenge6, - gText_ApprenticeChallenge7, - gText_ApprenticeChallenge8, - gText_ApprenticeChallenge9, - gText_ApprenticeChallenge10, - gText_ApprenticeChallenge11, - gText_ApprenticeChallenge12, - gText_ApprenticeChallenge13, - gText_ApprenticeChallenge14, - gText_ApprenticeChallenge15, -}; - -// Unclear what the criteria are for valid moves -// Notably, a large percentage of multi-strike moves are not valid -static const bool8 sValidApprenticeMoves[MOVES_COUNT] = -{ - [MOVE_NONE] = FALSE, - [MOVE_POUND] = FALSE, - [MOVE_KARATE_CHOP] = TRUE, - [MOVE_DOUBLE_SLAP] = TRUE, - [MOVE_COMET_PUNCH] = FALSE, - [MOVE_MEGA_PUNCH] = TRUE, - [MOVE_PAY_DAY] = FALSE, - [MOVE_FIRE_PUNCH] = TRUE, - [MOVE_ICE_PUNCH] = TRUE, - [MOVE_THUNDER_PUNCH] = TRUE, - [MOVE_SCRATCH] = FALSE, - [MOVE_VICE_GRIP] = FALSE, - [MOVE_GUILLOTINE] = TRUE, - [MOVE_RAZOR_WIND] = FALSE, - [MOVE_SWORDS_DANCE] = TRUE, - [MOVE_CUT] = FALSE, - [MOVE_GUST] = FALSE, - [MOVE_WING_ATTACK] = FALSE, - [MOVE_WHIRLWIND] = TRUE, - [MOVE_FLY] = TRUE, - [MOVE_BIND] = TRUE, - [MOVE_SLAM] = TRUE, - [MOVE_VINE_WHIP] = FALSE, - [MOVE_STOMP] = TRUE, - [MOVE_DOUBLE_KICK] = TRUE, - [MOVE_MEGA_KICK] = TRUE, - [MOVE_JUMP_KICK] = TRUE, - [MOVE_ROLLING_KICK] = TRUE, - [MOVE_SAND_ATTACK] = TRUE, - [MOVE_HEADBUTT] = TRUE, - [MOVE_HORN_ATTACK] = FALSE, - [MOVE_FURY_ATTACK] = FALSE, - [MOVE_HORN_DRILL] = TRUE, - [MOVE_TACKLE] = FALSE, - [MOVE_BODY_SLAM] = TRUE, - [MOVE_WRAP] = TRUE, - [MOVE_TAKE_DOWN] = TRUE, - [MOVE_THRASH] = TRUE, - [MOVE_DOUBLE_EDGE] = TRUE, - [MOVE_TAIL_WHIP] = FALSE, - [MOVE_POISON_STING] = FALSE, - [MOVE_TWINEEDLE] = TRUE, - [MOVE_PIN_MISSILE] = FALSE, - [MOVE_LEER] = FALSE, - [MOVE_BITE] = TRUE, - [MOVE_GROWL] = FALSE, - [MOVE_ROAR] = TRUE, - [MOVE_SING] = TRUE, - [MOVE_SUPERSONIC] = TRUE, - [MOVE_SONIC_BOOM] = TRUE, - [MOVE_DISABLE] = TRUE, - [MOVE_ACID] = FALSE, - [MOVE_EMBER] = FALSE, - [MOVE_FLAMETHROWER] = TRUE, - [MOVE_MIST] = TRUE, - [MOVE_WATER_GUN] = FALSE, - [MOVE_HYDRO_PUMP] = TRUE, - [MOVE_SURF] = TRUE, - [MOVE_ICE_BEAM] = TRUE, - [MOVE_BLIZZARD] = TRUE, - [MOVE_PSYBEAM] = TRUE, - [MOVE_BUBBLE_BEAM] = FALSE, - [MOVE_AURORA_BEAM] = FALSE, - [MOVE_HYPER_BEAM] = TRUE, - [MOVE_PECK] = FALSE, - [MOVE_DRILL_PECK] = TRUE, - [MOVE_SUBMISSION] = TRUE, - [MOVE_LOW_KICK] = TRUE, - [MOVE_COUNTER] = TRUE, - [MOVE_SEISMIC_TOSS] = TRUE, - [MOVE_STRENGTH] = TRUE, - [MOVE_ABSORB] = FALSE, - [MOVE_MEGA_DRAIN] = FALSE, - [MOVE_LEECH_SEED] = TRUE, - [MOVE_GROWTH] = TRUE, - [MOVE_RAZOR_LEAF] = TRUE, - [MOVE_SOLAR_BEAM] = TRUE, - [MOVE_POISON_POWDER] = TRUE, - [MOVE_STUN_SPORE] = TRUE, - [MOVE_SLEEP_POWDER] = TRUE, - [MOVE_PETAL_DANCE] = TRUE, - [MOVE_STRING_SHOT] = FALSE, - [MOVE_DRAGON_RAGE] = TRUE, - [MOVE_FIRE_SPIN] = TRUE, - [MOVE_THUNDER_SHOCK] = FALSE, - [MOVE_THUNDERBOLT] = TRUE, - [MOVE_THUNDER_WAVE] = TRUE, - [MOVE_THUNDER] = TRUE, - [MOVE_ROCK_THROW] = FALSE, - [MOVE_EARTHQUAKE] = TRUE, - [MOVE_FISSURE] = TRUE, - [MOVE_DIG] = TRUE, - [MOVE_TOXIC] = TRUE, - [MOVE_CONFUSION] = FALSE, - [MOVE_PSYCHIC] = TRUE, - [MOVE_HYPNOSIS] = TRUE, - [MOVE_MEDITATE] = TRUE, - [MOVE_AGILITY] = TRUE, - [MOVE_QUICK_ATTACK] = TRUE, - [MOVE_RAGE] = FALSE, - [MOVE_TELEPORT] = FALSE, - [MOVE_NIGHT_SHADE] = TRUE, - [MOVE_MIMIC] = TRUE, - [MOVE_SCREECH] = TRUE, - [MOVE_DOUBLE_TEAM] = TRUE, - [MOVE_RECOVER] = TRUE, - [MOVE_HARDEN] = TRUE, - [MOVE_MINIMIZE] = TRUE, - [MOVE_SMOKESCREEN] = TRUE, - [MOVE_CONFUSE_RAY] = TRUE, - [MOVE_WITHDRAW] = TRUE, - [MOVE_DEFENSE_CURL] = TRUE, - [MOVE_BARRIER] = TRUE, - [MOVE_LIGHT_SCREEN] = TRUE, - [MOVE_HAZE] = TRUE, - [MOVE_REFLECT] = TRUE, - [MOVE_FOCUS_ENERGY] = TRUE, - [MOVE_BIDE] = FALSE, - [MOVE_METRONOME] = TRUE, - [MOVE_MIRROR_MOVE] = TRUE, - [MOVE_SELF_DESTRUCT] = TRUE, - [MOVE_EGG_BOMB] = TRUE, - [MOVE_LICK] = TRUE, - [MOVE_SMOG] = FALSE, - [MOVE_SLUDGE] = FALSE, - [MOVE_BONE_CLUB] = FALSE, - [MOVE_FIRE_BLAST] = TRUE, - [MOVE_WATERFALL] = TRUE, - [MOVE_CLAMP] = TRUE, - [MOVE_SWIFT] = TRUE, - [MOVE_SKULL_BASH] = TRUE, - [MOVE_SPIKE_CANNON] = FALSE, - [MOVE_CONSTRICT] = FALSE, - [MOVE_AMNESIA] = TRUE, - [MOVE_KINESIS] = TRUE, - [MOVE_SOFT_BOILED] = TRUE, - [MOVE_HI_JUMP_KICK] = TRUE, - [MOVE_GLARE] = TRUE, - [MOVE_DREAM_EATER] = TRUE, - [MOVE_POISON_GAS] = FALSE, - [MOVE_BARRAGE] = FALSE, - [MOVE_LEECH_LIFE] = FALSE, - [MOVE_LOVELY_KISS] = TRUE, - [MOVE_SKY_ATTACK] = TRUE, - [MOVE_TRANSFORM] = TRUE, - [MOVE_BUBBLE] = FALSE, - [MOVE_DIZZY_PUNCH] = TRUE, - [MOVE_SPORE] = TRUE, - [MOVE_FLASH] = TRUE, - [MOVE_PSYWAVE] = TRUE, - [MOVE_SPLASH] = FALSE, - [MOVE_ACID_ARMOR] = TRUE, - [MOVE_CRABHAMMER] = TRUE, - [MOVE_EXPLOSION] = TRUE, - [MOVE_FURY_SWIPES] = FALSE, - [MOVE_BONEMERANG] = TRUE, - [MOVE_REST] = TRUE, - [MOVE_ROCK_SLIDE] = TRUE, - [MOVE_HYPER_FANG] = TRUE, - [MOVE_SHARPEN] = TRUE, - [MOVE_CONVERSION] = TRUE, - [MOVE_TRI_ATTACK] = TRUE, - [MOVE_SUPER_FANG] = TRUE, - [MOVE_SLASH] = TRUE, - [MOVE_SUBSTITUTE] = TRUE, - [MOVE_STRUGGLE] = TRUE, - [MOVE_SKETCH] = TRUE, - [MOVE_TRIPLE_KICK] = TRUE, - [MOVE_THIEF] = TRUE, - [MOVE_SPIDER_WEB] = TRUE, - [MOVE_MIND_READER] = TRUE, - [MOVE_NIGHTMARE] = TRUE, - [MOVE_FLAME_WHEEL] = FALSE, - [MOVE_SNORE] = TRUE, - [MOVE_CURSE] = TRUE, - [MOVE_FLAIL] = TRUE, - [MOVE_CONVERSION_2] = TRUE, - [MOVE_AEROBLAST] = TRUE, - [MOVE_COTTON_SPORE] = TRUE, - [MOVE_REVERSAL] = TRUE, - [MOVE_SPITE] = TRUE, - [MOVE_POWDER_SNOW] = FALSE, - [MOVE_PROTECT] = TRUE, - [MOVE_MACH_PUNCH] = TRUE, - [MOVE_SCARY_FACE] = TRUE, - [MOVE_FAINT_ATTACK] = TRUE, - [MOVE_SWEET_KISS] = TRUE, - [MOVE_BELLY_DRUM] = TRUE, - [MOVE_SLUDGE_BOMB] = TRUE, - [MOVE_MUD_SLAP] = TRUE, - [MOVE_OCTAZOOKA] = TRUE, - [MOVE_SPIKES] = TRUE, - [MOVE_ZAP_CANNON] = TRUE, - [MOVE_FORESIGHT] = TRUE, - [MOVE_DESTINY_BOND] = TRUE, - [MOVE_PERISH_SONG] = TRUE, - [MOVE_ICY_WIND] = TRUE, - [MOVE_DETECT] = TRUE, - [MOVE_BONE_RUSH] = FALSE, - [MOVE_LOCK_ON] = TRUE, - [MOVE_OUTRAGE] = TRUE, - [MOVE_SANDSTORM] = TRUE, - [MOVE_GIGA_DRAIN] = TRUE, - [MOVE_ENDURE] = TRUE, - [MOVE_CHARM] = TRUE, - [MOVE_ROLLOUT] = TRUE, - [MOVE_FALSE_SWIPE] = TRUE, - [MOVE_SWAGGER] = TRUE, - [MOVE_MILK_DRINK] = TRUE, - [MOVE_SPARK] = FALSE, - [MOVE_FURY_CUTTER] = TRUE, - [MOVE_STEEL_WING] = TRUE, - [MOVE_MEAN_LOOK] = TRUE, - [MOVE_ATTRACT] = TRUE, - [MOVE_SLEEP_TALK] = TRUE, - [MOVE_HEAL_BELL] = TRUE, - [MOVE_RETURN] = TRUE, - [MOVE_PRESENT] = TRUE, - [MOVE_FRUSTRATION] = TRUE, - [MOVE_SAFEGUARD] = TRUE, - [MOVE_PAIN_SPLIT] = TRUE, - [MOVE_SACRED_FIRE] = TRUE, - [MOVE_MAGNITUDE] = FALSE, - [MOVE_DYNAMIC_PUNCH] = TRUE, - [MOVE_MEGAHORN] = TRUE, - [MOVE_DRAGON_BREATH] = TRUE, - [MOVE_BATON_PASS] = TRUE, - [MOVE_ENCORE] = TRUE, - [MOVE_PURSUIT] = TRUE, - [MOVE_RAPID_SPIN] = TRUE, - [MOVE_SWEET_SCENT] = TRUE, - [MOVE_IRON_TAIL] = TRUE, - [MOVE_METAL_CLAW] = TRUE, - [MOVE_VITAL_THROW] = TRUE, - [MOVE_MORNING_SUN] = TRUE, - [MOVE_SYNTHESIS] = TRUE, - [MOVE_MOONLIGHT] = TRUE, - [MOVE_HIDDEN_POWER] = TRUE, - [MOVE_CROSS_CHOP] = TRUE, - [MOVE_TWISTER] = FALSE, - [MOVE_RAIN_DANCE] = TRUE, - [MOVE_SUNNY_DAY] = TRUE, - [MOVE_CRUNCH] = TRUE, - [MOVE_MIRROR_COAT] = TRUE, - [MOVE_PSYCH_UP] = TRUE, - [MOVE_EXTREME_SPEED] = TRUE, - [MOVE_ANCIENT_POWER] = TRUE, - [MOVE_SHADOW_BALL] = TRUE, - [MOVE_FUTURE_SIGHT] = TRUE, - [MOVE_ROCK_SMASH] = TRUE, - [MOVE_WHIRLPOOL] = TRUE, - [MOVE_BEAT_UP] = TRUE, - [MOVE_FAKE_OUT] = TRUE, - [MOVE_UPROAR] = TRUE, - [MOVE_STOCKPILE] = TRUE, - [MOVE_SPIT_UP] = TRUE, - [MOVE_SWALLOW] = TRUE, - [MOVE_HEAT_WAVE] = TRUE, - [MOVE_HAIL] = TRUE, - [MOVE_TORMENT] = TRUE, - [MOVE_FLATTER] = TRUE, - [MOVE_WILL_O_WISP] = TRUE, - [MOVE_MEMENTO] = TRUE, - [MOVE_FACADE] = TRUE, - [MOVE_FOCUS_PUNCH] = TRUE, - [MOVE_SMELLING_SALT] = TRUE, - [MOVE_FOLLOW_ME] = TRUE, - [MOVE_NATURE_POWER] = TRUE, - [MOVE_CHARGE] = TRUE, - [MOVE_TAUNT] = TRUE, - [MOVE_HELPING_HAND] = TRUE, - [MOVE_TRICK] = TRUE, - [MOVE_ROLE_PLAY] = TRUE, - [MOVE_WISH] = TRUE, - [MOVE_ASSIST] = TRUE, - [MOVE_INGRAIN] = TRUE, - [MOVE_SUPERPOWER] = TRUE, - [MOVE_MAGIC_COAT] = TRUE, - [MOVE_RECYCLE] = TRUE, - [MOVE_REVENGE] = TRUE, - [MOVE_BRICK_BREAK] = TRUE, - [MOVE_YAWN] = TRUE, - [MOVE_KNOCK_OFF] = TRUE, - [MOVE_ENDEAVOR] = TRUE, - [MOVE_ERUPTION] = TRUE, - [MOVE_SKILL_SWAP] = TRUE, - [MOVE_IMPRISON] = TRUE, - [MOVE_REFRESH] = TRUE, - [MOVE_GRUDGE] = TRUE, - [MOVE_SNATCH] = TRUE, - [MOVE_SECRET_POWER] = TRUE, - [MOVE_DIVE] = TRUE, - [MOVE_ARM_THRUST] = FALSE, - [MOVE_CAMOUFLAGE] = TRUE, - [MOVE_TAIL_GLOW] = TRUE, - [MOVE_LUSTER_PURGE] = TRUE, - [MOVE_MIST_BALL] = TRUE, - [MOVE_FEATHER_DANCE] = TRUE, - [MOVE_TEETER_DANCE] = TRUE, - [MOVE_BLAZE_KICK] = TRUE, - [MOVE_MUD_SPORT] = TRUE, - [MOVE_ICE_BALL] = FALSE, - [MOVE_NEEDLE_ARM] = TRUE, - [MOVE_SLACK_OFF] = TRUE, - [MOVE_HYPER_VOICE] = TRUE, - [MOVE_POISON_FANG] = FALSE, - [MOVE_CRUSH_CLAW] = TRUE, - [MOVE_BLAST_BURN] = TRUE, - [MOVE_HYDRO_CANNON] = TRUE, - [MOVE_METEOR_MASH] = TRUE, - [MOVE_ASTONISH] = TRUE, - [MOVE_WEATHER_BALL] = TRUE, - [MOVE_AROMATHERAPY] = TRUE, - [MOVE_FAKE_TEARS] = TRUE, - [MOVE_AIR_CUTTER] = TRUE, - [MOVE_OVERHEAT] = TRUE, - [MOVE_ODOR_SLEUTH] = TRUE, - [MOVE_ROCK_TOMB] = TRUE, - [MOVE_SILVER_WIND] = TRUE, - [MOVE_METAL_SOUND] = TRUE, - [MOVE_GRASS_WHISTLE] = TRUE, - [MOVE_TICKLE] = TRUE, - [MOVE_COSMIC_POWER] = TRUE, - [MOVE_WATER_SPOUT] = TRUE, - [MOVE_SIGNAL_BEAM] = TRUE, - [MOVE_SHADOW_PUNCH] = TRUE, - [MOVE_EXTRASENSORY] = TRUE, - [MOVE_SKY_UPPERCUT] = TRUE, - [MOVE_SAND_TOMB] = TRUE, - [MOVE_SHEER_COLD] = TRUE, - [MOVE_MUDDY_WATER] = TRUE, - [MOVE_BULLET_SEED] = FALSE, - [MOVE_AERIAL_ACE] = TRUE, - [MOVE_ICICLE_SPEAR] = FALSE, - [MOVE_IRON_DEFENSE] = TRUE, - [MOVE_BLOCK] = TRUE, - [MOVE_HOWL] = TRUE, - [MOVE_DRAGON_CLAW] = TRUE, - [MOVE_FRENZY_PLANT] = TRUE, - [MOVE_BULK_UP] = TRUE, - [MOVE_BOUNCE] = TRUE, - [MOVE_MUD_SHOT] = FALSE, - [MOVE_POISON_TAIL] = TRUE, - [MOVE_COVET] = TRUE, - [MOVE_VOLT_TACKLE] = TRUE, - [MOVE_MAGICAL_LEAF] = TRUE, - [MOVE_WATER_SPORT] = TRUE, - [MOVE_CALM_MIND] = TRUE, - [MOVE_LEAF_BLADE] = TRUE, - [MOVE_DRAGON_DANCE] = TRUE, - [MOVE_ROCK_BLAST] = FALSE, - [MOVE_SHOCK_WAVE] = TRUE, - [MOVE_WATER_PULSE] = TRUE, - [MOVE_DOOM_DESIRE] = TRUE, - [MOVE_PSYCHO_BOOST] = TRUE, -}; - -// The possible questions to ask after the initial 3 WHICH MON questions. Retrieved from here and shuffled -// WHAT_ITEM has max 3 occurrences, one for each party member -// WHICH_MOVE has max 5 occurrences, defined as NUM_WHICH_MOVE_QUESTIONS -// WHICH_FIRST has max 1 occurrence, lead mon should only be chosen once -// WHICH_SPEECH has max 1 occurrence, as the apprentice leaves after its asked -static const u8 sQuestionPossibilities[] = -{ - QUESTION_ID_WHAT_ITEM, - QUESTION_ID_WHAT_ITEM, - QUESTION_ID_WHAT_ITEM, - QUESTION_ID_WHICH_MOVE, - QUESTION_ID_WHICH_MOVE, - QUESTION_ID_WHICH_MOVE, - QUESTION_ID_WHICH_MOVE, - QUESTION_ID_WHICH_MOVE, - QUESTION_ID_WHICH_FIRST, - QUESTION_ID_WIN_SPEECH -}; - -static void (* const sApprenticeFunctions[])(void) = -{ - [APPRENTICE_FUNC_GAVE_LVLMODE] = Script_GivenApprenticeLvlMode, - [APPRENTICE_FUNC_SET_LVLMODE] = Script_SetApprenticeLvlMode, - [APPRENTICE_FUNC_SET_ID] = Script_SetApprenticeId, - [APPRENTICE_FUNC_SHUFFLE_SPECIES] = ShuffleApprenticeSpecies, - [APPRENTICE_FUNC_RANDOMIZE_QUESTIONS] = Script_SetRandomQuestionData, - [APPRENTICE_FUNC_ANSWERED_QUESTION] = IncrementQuestionsAnswered, - [APPRENTICE_FUNC_IS_FINAL_QUESTION] = IsFinalQuestion, - [APPRENTICE_FUNC_MENU] = Script_CreateApprenticeMenu, - [APPRENTICE_FUNC_PRINT_MSG] = Script_PrintApprenticeMessage, - [APPRENTICE_FUNC_RESET] = Script_ResetPlayerApprentice, - [APPRENTICE_FUNC_CHECK_GONE] = GetShouldCheckApprenticeGone, - [APPRENTICE_FUNC_GET_QUESTION] = ApprenticeGetQuestion, - [APPRENTICE_FUNC_GET_NUM_PARTY_MONS] = GetNumApprenticePartyMonsAssigned, - [APPRENTICE_FUNC_SET_PARTY_MON] = SetApprenticePartyMon, - [APPRENTICE_FUNC_INIT_QUESTION_DATA] = InitQuestionData, - [APPRENTICE_FUNC_FREE_QUESTION_DATA] = FreeQuestionData, - [APPRENTICE_FUNC_BUFFER_STRING] = ApprenticeBufferString, - [APPRENTICE_FUNC_SET_MOVE] = SetApprenticeMonMove, - [APPRENTICE_FUNC_SET_LEAD_MON] = SetLeadApprenticeMon, - [APPRENTICE_FUNC_OPEN_BAG] = Script_ApprenticeOpenBagMenu, - [APPRENTICE_FUNC_TRY_SET_HELD_ITEM] = TrySetApprenticeHeldItem, - [APPRENTICE_FUNC_SAVE] = SaveApprentice, - [APPRENTICE_FUNC_SET_GFX_SAVED] = SetSavedApprenticeTrainerGfxId, - [APPRENTICE_FUNC_SET_GFX] = SetPlayerApprenticeTrainerGfxId, - [APPRENTICE_FUNC_SHOULD_LEAVE] = GetShouldApprenticeLeave, - [APPRENTICE_FUNC_SHIFT_SAVED] = ShiftSavedApprentices, -}; - -// The first Apprentice can only be one of these -static const u8 sInitialApprenticeIds[8] = {0, 1, 2, 3, 6, 7, 8, 9}; - +#include "data/battle_frontier/apprentice.h" void BufferApprenticeChallengeText(u8 saveApprenticeId) { diff --git a/src/data/battle_frontier/apprentice.h b/src/data/battle_frontier/apprentice.h new file mode 100644 index 000000000..0fdb87f96 --- /dev/null +++ b/src/data/battle_frontier/apprentice.h @@ -0,0 +1,982 @@ +// data/text/apprentice.inc +extern const u8 gText_ApprenticePleaseTeach0[]; +extern const u8 gText_ApprenticePleaseTeach1[]; +extern const u8 gText_ApprenticePleaseTeach2[]; +extern const u8 gText_ApprenticePleaseTeach3[]; +extern const u8 gText_ApprenticePleaseTeach4[]; +extern const u8 gText_ApprenticePleaseTeach5[]; +extern const u8 gText_ApprenticePleaseTeach6[]; +extern const u8 gText_ApprenticePleaseTeach7[]; +extern const u8 gText_ApprenticePleaseTeach8[]; +extern const u8 gText_ApprenticePleaseTeach9[]; +extern const u8 gText_ApprenticePleaseTeach10[]; +extern const u8 gText_ApprenticePleaseTeach11[]; +extern const u8 gText_ApprenticePleaseTeach12[]; +extern const u8 gText_ApprenticePleaseTeach13[]; +extern const u8 gText_ApprenticePleaseTeach14[]; +extern const u8 gText_ApprenticePleaseTeach15[]; +extern const u8 gText_ApprenticeRejectTeaching0[]; +extern const u8 gText_ApprenticeRejectTeaching1[]; +extern const u8 gText_ApprenticeRejectTeaching2[]; +extern const u8 gText_ApprenticeRejectTeaching3[]; +extern const u8 gText_ApprenticeRejectTeaching4[]; +extern const u8 gText_ApprenticeRejectTeaching5[]; +extern const u8 gText_ApprenticeRejectTeaching6[]; +extern const u8 gText_ApprenticeRejectTeaching7[]; +extern const u8 gText_ApprenticeRejectTeaching8[]; +extern const u8 gText_ApprenticeRejectTeaching9[]; +extern const u8 gText_ApprenticeRejectTeaching10[]; +extern const u8 gText_ApprenticeRejectTeaching11[]; +extern const u8 gText_ApprenticeRejectTeaching12[]; +extern const u8 gText_ApprenticeRejectTeaching13[]; +extern const u8 gText_ApprenticeRejectTeaching14[]; +extern const u8 gText_ApprenticeRejectTeaching15[]; +extern const u8 gText_ApprenticeWhichLevelMode0[]; +extern const u8 gText_ApprenticeWhichLevelMode1[]; +extern const u8 gText_ApprenticeWhichLevelMode2[]; +extern const u8 gText_ApprenticeWhichLevelMode3[]; +extern const u8 gText_ApprenticeWhichLevelMode4[]; +extern const u8 gText_ApprenticeWhichLevelMode5[]; +extern const u8 gText_ApprenticeWhichLevelMode6[]; +extern const u8 gText_ApprenticeWhichLevelMode7[]; +extern const u8 gText_ApprenticeWhichLevelMode8[]; +extern const u8 gText_ApprenticeWhichLevelMode9[]; +extern const u8 gText_ApprenticeWhichLevelMode10[]; +extern const u8 gText_ApprenticeWhichLevelMode11[]; +extern const u8 gText_ApprenticeWhichLevelMode12[]; +extern const u8 gText_ApprenticeWhichLevelMode13[]; +extern const u8 gText_ApprenticeWhichLevelMode14[]; +extern const u8 gText_ApprenticeWhichLevelMode15[]; +extern const u8 gText_ApprenticeLevelModeThanks0[]; +extern const u8 gText_ApprenticeLevelModeThanks1[]; +extern const u8 gText_ApprenticeLevelModeThanks2[]; +extern const u8 gText_ApprenticeLevelModeThanks3[]; +extern const u8 gText_ApprenticeLevelModeThanks4[]; +extern const u8 gText_ApprenticeLevelModeThanks5[]; +extern const u8 gText_ApprenticeLevelModeThanks6[]; +extern const u8 gText_ApprenticeLevelModeThanks7[]; +extern const u8 gText_ApprenticeLevelModeThanks8[]; +extern const u8 gText_ApprenticeLevelModeThanks9[]; +extern const u8 gText_ApprenticeLevelModeThanks10[]; +extern const u8 gText_ApprenticeLevelModeThanks11[]; +extern const u8 gText_ApprenticeLevelModeThanks12[]; +extern const u8 gText_ApprenticeLevelModeThanks13[]; +extern const u8 gText_ApprenticeLevelModeThanks14[]; +extern const u8 gText_ApprenticeLevelModeThanks15[]; + +extern const u8 gText_ApprenticeWhichMon0[]; +extern const u8 gText_ApprenticeWhichMon1[]; +extern const u8 gText_ApprenticeWhichMon2[]; +extern const u8 gText_ApprenticeWhichMon3[]; +extern const u8 gText_ApprenticeWhichMon4[]; +extern const u8 gText_ApprenticeWhichMon5[]; +extern const u8 gText_ApprenticeWhichMon6[]; +extern const u8 gText_ApprenticeWhichMon7[]; +extern const u8 gText_ApprenticeWhichMon8[]; +extern const u8 gText_ApprenticeWhichMon9[]; +extern const u8 gText_ApprenticeWhichMon10[]; +extern const u8 gText_ApprenticeWhichMon11[]; +extern const u8 gText_ApprenticeWhichMon12[]; +extern const u8 gText_ApprenticeWhichMon13[]; +extern const u8 gText_ApprenticeWhichMon14[]; +extern const u8 gText_ApprenticeWhichMon15[]; +extern const u8 gText_ApprenticeMonThanks0[]; +extern const u8 gText_ApprenticeMonThanks1[]; +extern const u8 gText_ApprenticeMonThanks2[]; +extern const u8 gText_ApprenticeMonThanks3[]; +extern const u8 gText_ApprenticeMonThanks4[]; +extern const u8 gText_ApprenticeMonThanks5[]; +extern const u8 gText_ApprenticeMonThanks6[]; +extern const u8 gText_ApprenticeMonThanks7[]; +extern const u8 gText_ApprenticeMonThanks8[]; +extern const u8 gText_ApprenticeMonThanks9[]; +extern const u8 gText_ApprenticeMonThanks10[]; +extern const u8 gText_ApprenticeMonThanks11[]; +extern const u8 gText_ApprenticeMonThanks12[]; +extern const u8 gText_ApprenticeMonThanks13[]; +extern const u8 gText_ApprenticeMonThanks14[]; +extern const u8 gText_ApprenticeMonThanks15[]; + +extern const u8 gText_ApprenticeWhatHeldItem0[]; +extern const u8 gText_ApprenticeWhatHeldItem1[]; +extern const u8 gText_ApprenticeWhatHeldItem2[]; +extern const u8 gText_ApprenticeWhatHeldItem3[]; +extern const u8 gText_ApprenticeWhatHeldItem4[]; +extern const u8 gText_ApprenticeWhatHeldItem5[]; +extern const u8 gText_ApprenticeWhatHeldItem6[]; +extern const u8 gText_ApprenticeWhatHeldItem7[]; +extern const u8 gText_ApprenticeWhatHeldItem8[]; +extern const u8 gText_ApprenticeWhatHeldItem9[]; +extern const u8 gText_ApprenticeWhatHeldItem10[]; +extern const u8 gText_ApprenticeWhatHeldItem11[]; +extern const u8 gText_ApprenticeWhatHeldItem12[]; +extern const u8 gText_ApprenticeWhatHeldItem13[]; +extern const u8 gText_ApprenticeWhatHeldItem14[]; +extern const u8 gText_ApprenticeWhatHeldItem15[]; +extern const u8 gText_ApprenticeHoldNothing0[]; +extern const u8 gText_ApprenticeHoldNothing1[]; +extern const u8 gText_ApprenticeHoldNothing2[]; +extern const u8 gText_ApprenticeHoldNothing3[]; +extern const u8 gText_ApprenticeHoldNothing4[]; +extern const u8 gText_ApprenticeHoldNothing5[]; +extern const u8 gText_ApprenticeHoldNothing6[]; +extern const u8 gText_ApprenticeHoldNothing7[]; +extern const u8 gText_ApprenticeHoldNothing8[]; +extern const u8 gText_ApprenticeHoldNothing9[]; +extern const u8 gText_ApprenticeHoldNothing10[]; +extern const u8 gText_ApprenticeHoldNothing11[]; +extern const u8 gText_ApprenticeHoldNothing12[]; +extern const u8 gText_ApprenticeHoldNothing13[]; +extern const u8 gText_ApprenticeHoldNothing14[]; +extern const u8 gText_ApprenticeHoldNothing15[]; +extern const u8 gText_ApprenticeThanksNoHeldItem0[]; +extern const u8 gText_ApprenticeThanksNoHeldItem1[]; +extern const u8 gText_ApprenticeThanksNoHeldItem2[]; +extern const u8 gText_ApprenticeThanksNoHeldItem3[]; +extern const u8 gText_ApprenticeThanksNoHeldItem4[]; +extern const u8 gText_ApprenticeThanksNoHeldItem5[]; +extern const u8 gText_ApprenticeThanksNoHeldItem6[]; +extern const u8 gText_ApprenticeThanksNoHeldItem7[]; +extern const u8 gText_ApprenticeThanksNoHeldItem8[]; +extern const u8 gText_ApprenticeThanksNoHeldItem9[]; +extern const u8 gText_ApprenticeThanksNoHeldItem10[]; +extern const u8 gText_ApprenticeThanksNoHeldItem11[]; +extern const u8 gText_ApprenticeThanksNoHeldItem12[]; +extern const u8 gText_ApprenticeThanksNoHeldItem13[]; +extern const u8 gText_ApprenticeThanksNoHeldItem14[]; +extern const u8 gText_ApprenticeThanksNoHeldItem15[]; +extern const u8 gText_ApprenticeThanksHeldItem0[]; +extern const u8 gText_ApprenticeThanksHeldItem1[]; +extern const u8 gText_ApprenticeThanksHeldItem2[]; +extern const u8 gText_ApprenticeThanksHeldItem3[]; +extern const u8 gText_ApprenticeThanksHeldItem4[]; +extern const u8 gText_ApprenticeThanksHeldItem5[]; +extern const u8 gText_ApprenticeThanksHeldItem6[]; +extern const u8 gText_ApprenticeThanksHeldItem7[]; +extern const u8 gText_ApprenticeThanksHeldItem8[]; +extern const u8 gText_ApprenticeThanksHeldItem9[]; +extern const u8 gText_ApprenticeThanksHeldItem10[]; +extern const u8 gText_ApprenticeThanksHeldItem11[]; +extern const u8 gText_ApprenticeThanksHeldItem12[]; +extern const u8 gText_ApprenticeThanksHeldItem13[]; +extern const u8 gText_ApprenticeThanksHeldItem14[]; +extern const u8 gText_ApprenticeThanksHeldItem15[]; +extern const u8 gText_ApprenticeItemAlreadyRecommended0[]; +extern const u8 gText_ApprenticeItemAlreadyRecommended1[]; +extern const u8 gText_ApprenticeItemAlreadyRecommended2[]; +extern const u8 gText_ApprenticeItemAlreadyRecommended3[]; +extern const u8 gText_ApprenticeItemAlreadyRecommended4[]; +extern const u8 gText_ApprenticeItemAlreadyRecommended5[]; +extern const u8 gText_ApprenticeItemAlreadyRecommended6[]; +extern const u8 gText_ApprenticeItemAlreadyRecommended7[]; +extern const u8 gText_ApprenticeItemAlreadyRecommended8[]; +extern const u8 gText_ApprenticeItemAlreadyRecommended9[]; +extern const u8 gText_ApprenticeItemAlreadyRecommended10[]; +extern const u8 gText_ApprenticeItemAlreadyRecommended11[]; +extern const u8 gText_ApprenticeItemAlreadyRecommended12[]; +extern const u8 gText_ApprenticeItemAlreadyRecommended13[]; +extern const u8 gText_ApprenticeItemAlreadyRecommended14[]; +extern const u8 gText_ApprenticeItemAlreadyRecommended15[]; + +extern const u8 gText_ApprenticeWhichMove0[]; +extern const u8 gText_ApprenticeWhichMove1[]; +extern const u8 gText_ApprenticeWhichMove2[]; +extern const u8 gText_ApprenticeWhichMove3[]; +extern const u8 gText_ApprenticeWhichMove4[]; +extern const u8 gText_ApprenticeWhichMove5[]; +extern const u8 gText_ApprenticeWhichMove6[]; +extern const u8 gText_ApprenticeWhichMove7[]; +extern const u8 gText_ApprenticeWhichMove8[]; +extern const u8 gText_ApprenticeWhichMove9[]; +extern const u8 gText_ApprenticeWhichMove10[]; +extern const u8 gText_ApprenticeWhichMove11[]; +extern const u8 gText_ApprenticeWhichMove12[]; +extern const u8 gText_ApprenticeWhichMove13[]; +extern const u8 gText_ApprenticeWhichMove14[]; +extern const u8 gText_ApprenticeWhichMove15[]; +extern const u8 gText_ApprenticeMoveThanks0[]; +extern const u8 gText_ApprenticeMoveThanks1[]; +extern const u8 gText_ApprenticeMoveThanks2[]; +extern const u8 gText_ApprenticeMoveThanks3[]; +extern const u8 gText_ApprenticeMoveThanks4[]; +extern const u8 gText_ApprenticeMoveThanks5[]; +extern const u8 gText_ApprenticeMoveThanks6[]; +extern const u8 gText_ApprenticeMoveThanks7[]; +extern const u8 gText_ApprenticeMoveThanks8[]; +extern const u8 gText_ApprenticeMoveThanks9[]; +extern const u8 gText_ApprenticeMoveThanks10[]; +extern const u8 gText_ApprenticeMoveThanks11[]; +extern const u8 gText_ApprenticeMoveThanks12[]; +extern const u8 gText_ApprenticeMoveThanks13[]; +extern const u8 gText_ApprenticeMoveThanks14[]; +extern const u8 gText_ApprenticeMoveThanks15[]; + +extern const u8 gText_ApprenticeWhichMonFirst0[]; +extern const u8 gText_ApprenticeWhichMonFirst1[]; +extern const u8 gText_ApprenticeWhichMonFirst2[]; +extern const u8 gText_ApprenticeWhichMonFirst3[]; +extern const u8 gText_ApprenticeWhichMonFirst4[]; +extern const u8 gText_ApprenticeWhichMonFirst5[]; +extern const u8 gText_ApprenticeWhichMonFirst6[]; +extern const u8 gText_ApprenticeWhichMonFirst7[]; +extern const u8 gText_ApprenticeWhichMonFirst8[]; +extern const u8 gText_ApprenticeWhichMonFirst9[]; +extern const u8 gText_ApprenticeWhichMonFirst10[]; +extern const u8 gText_ApprenticeWhichMonFirst11[]; +extern const u8 gText_ApprenticeWhichMonFirst12[]; +extern const u8 gText_ApprenticeWhichMonFirst13[]; +extern const u8 gText_ApprenticeWhichMonFirst14[]; +extern const u8 gText_ApprenticeWhichMonFirst15[]; +extern const u8 gText_ApprenticeMonFirstThanks0[]; +extern const u8 gText_ApprenticeMonFirstThanks1[]; +extern const u8 gText_ApprenticeMonFirstThanks2[]; +extern const u8 gText_ApprenticeMonFirstThanks3[]; +extern const u8 gText_ApprenticeMonFirstThanks4[]; +extern const u8 gText_ApprenticeMonFirstThanks5[]; +extern const u8 gText_ApprenticeMonFirstThanks6[]; +extern const u8 gText_ApprenticeMonFirstThanks7[]; +extern const u8 gText_ApprenticeMonFirstThanks8[]; +extern const u8 gText_ApprenticeMonFirstThanks9[]; +extern const u8 gText_ApprenticeMonFirstThanks10[]; +extern const u8 gText_ApprenticeMonFirstThanks11[]; +extern const u8 gText_ApprenticeMonFirstThanks12[]; +extern const u8 gText_ApprenticeMonFirstThanks13[]; +extern const u8 gText_ApprenticeMonFirstThanks14[]; +extern const u8 gText_ApprenticeMonFirstThanks15[]; + +extern const u8 gText_ApprenticePickWinSpeech0[]; +extern const u8 gText_ApprenticePickWinSpeech1[]; +extern const u8 gText_ApprenticePickWinSpeech2[]; +extern const u8 gText_ApprenticePickWinSpeech3[]; +extern const u8 gText_ApprenticePickWinSpeech4[]; +extern const u8 gText_ApprenticePickWinSpeech5[]; +extern const u8 gText_ApprenticePickWinSpeech6[]; +extern const u8 gText_ApprenticePickWinSpeech7[]; +extern const u8 gText_ApprenticePickWinSpeech8[]; +extern const u8 gText_ApprenticePickWinSpeech9[]; +extern const u8 gText_ApprenticePickWinSpeech10[]; +extern const u8 gText_ApprenticePickWinSpeech11[]; +extern const u8 gText_ApprenticePickWinSpeech12[]; +extern const u8 gText_ApprenticePickWinSpeech13[]; +extern const u8 gText_ApprenticePickWinSpeech14[]; +extern const u8 gText_ApprenticePickWinSpeech15[]; +extern const u8 gText_ApprenticeWinSpeechThanks0[]; +extern const u8 gText_ApprenticeWinSpeechThanks1[]; +extern const u8 gText_ApprenticeWinSpeechThanks2[]; +extern const u8 gText_ApprenticeWinSpeechThanks3[]; +extern const u8 gText_ApprenticeWinSpeechThanks4[]; +extern const u8 gText_ApprenticeWinSpeechThanks5[]; +extern const u8 gText_ApprenticeWinSpeechThanks6[]; +extern const u8 gText_ApprenticeWinSpeechThanks7[]; +extern const u8 gText_ApprenticeWinSpeechThanks8[]; +extern const u8 gText_ApprenticeWinSpeechThanks9[]; +extern const u8 gText_ApprenticeWinSpeechThanks10[]; +extern const u8 gText_ApprenticeWinSpeechThanks11[]; +extern const u8 gText_ApprenticeWinSpeechThanks12[]; +extern const u8 gText_ApprenticeWinSpeechThanks13[]; +extern const u8 gText_ApprenticeWinSpeechThanks14[]; +extern const u8 gText_ApprenticeWinSpeechThanks15[]; + +extern const u8 gText_ApprenticeChallenge0[]; +extern const u8 gText_ApprenticeChallenge1[]; +extern const u8 gText_ApprenticeChallenge2[]; +extern const u8 gText_ApprenticeChallenge3[]; +extern const u8 gText_ApprenticeChallenge4[]; +extern const u8 gText_ApprenticeChallenge5[]; +extern const u8 gText_ApprenticeChallenge6[]; +extern const u8 gText_ApprenticeChallenge7[]; +extern const u8 gText_ApprenticeChallenge8[]; +extern const u8 gText_ApprenticeChallenge9[]; +extern const u8 gText_ApprenticeChallenge10[]; +extern const u8 gText_ApprenticeChallenge11[]; +extern const u8 gText_ApprenticeChallenge12[]; +extern const u8 gText_ApprenticeChallenge13[]; +extern const u8 gText_ApprenticeChallenge14[]; +extern const u8 gText_ApprenticeChallenge15[]; + +const struct ApprenticeTrainer gApprentices[NUM_APPRENTICES] = +{ + { + .name = {_("サダヒロ"), _("ALANN"), _("ALAIN"), _("ADELFO"), _("CLAUS"), _("TEO")}, + .otId = 0xBDC9, + .facilityClass = FACILITY_CLASS_BUG_CATCHER, + .species = {SPECIES_BEAUTIFLY, SPECIES_DUSTOX, SPECIES_ILLUMISE, SPECIES_SHIFTRY, SPECIES_BRELOOM, SPECIES_NINJASK, SPECIES_SHEDINJA, SPECIES_PINSIR, SPECIES_HERACROSS, SPECIES_VOLBEAT}, + .id = 0, + .speechLost = {EC_WORD_NO, EC_WORD_MISTAKE, EC_WORD_EXCL, EC_WORD_I, EC_WORD_LOST, EC_WORD_BADLY}, + }, + { + .name = {_("ヒロオ"), _("LIONEL"), _("LIONEL"), _("CAIO"), _("LUDWIG"), _("LEO")}, + .otId = 0xCF09, + .facilityClass = FACILITY_CLASS_YOUNGSTER, + .species = {SPECIES_SWELLOW, SPECIES_SWALOT, SPECIES_SHUCKLE, SPECIES_MANECTRIC, SPECIES_TORKOAL, SPECIES_HARIYAMA, SPECIES_MIGHTYENA, SPECIES_LUDICOLO, SPECIES_CRAWDAUNT, SPECIES_WHISCASH}, + .id = 1, + .speechLost = {EC_WORD_OKAY, EC_WORD_I, EC_WORD_LOST, EC_WORD_YOU_RE, EC_WORD_A, EC_WORD_MASTER}, + }, + { + .name = {_("ケイジ"), _("SONNY"), _("HERVE"), _("FEDRO"), _("WENZEL"), _("SANTI")}, + .otId = 0x2E34, + .facilityClass = FACILITY_CLASS_SCHOOL_KID_M, + .species = {SPECIES_LINOONE, SPECIES_MIGHTYENA, SPECIES_WHISCASH, SPECIES_ZANGOOSE, SPECIES_SEVIPER, SPECIES_NINETALES, SPECIES_KECLEON, SPECIES_SHUCKLE, SPECIES_MANECTRIC, SPECIES_MACHAMP}, + .id = 2, + .speechLost = {EC_WORD_I, EC_WORD_WENT, EC_WORD_AND, EC_WORD_LOST, EC_WORD_AWW, EC_WORD_ELLIPSIS}, + }, + { + .name = {_("ユラ"), _("LAYLA"), _("LAYLA"), _("ASTRID"), _("SONJA"), _("LOLA")}, + .otId = 0x84EF, + .facilityClass = FACILITY_CLASS_LASS, + .species = {SPECIES_SWALOT, SPECIES_XATU, SPECIES_ALTARIA, SPECIES_GOLDUCK, SPECIES_FLYGON, SPECIES_ALAKAZAM, SPECIES_GARDEVOIR, SPECIES_WAILORD, SPECIES_GRUMPIG, SPECIES_MIGHTYENA}, + .id = 3, + .speechLost = {EC_WORD_IS, EC_WORD_THIS, EC_WORD_TOO, EC_WORD_MUCH, EC_WORD_QUES, 0xFFFF}, + }, + { + .name = {_("ヨウカ"), _("MACY"), _("AMELIE"), _("CLEO"), _("MARIA"), _("ELISA")}, + .otId = 0x1E43, + .facilityClass = FACILITY_CLASS_SCHOOL_KID_F, + .species = {SPECIES_WIGGLYTUFF, SPECIES_LINOONE, SPECIES_KINGDRA, SPECIES_DELCATTY, SPECIES_RAICHU, SPECIES_FEAROW, SPECIES_STARMIE, SPECIES_MEDICHAM, SPECIES_SHIFTRY, SPECIES_BEAUTIFLY}, + .id = 4, + .speechLost = {EC_WORD_THIS, EC_WORD_WON_T, EC_WORD_BE, EC_WORD_HAPPENING, EC_WORD_NEXT, EC_WORD_TIME}, + }, + { + .name = {_("ヤスシ"), _("DONTE"), _("BRAHIM"), _("GLAUCO"), _("JOSEF"), _("ROQUE")}, + .otId = 0x379F, + .facilityClass = FACILITY_CLASS_RUNNING_TRIATHLETE_M, + .species = {SPECIES_STARMIE, SPECIES_DODRIO, SPECIES_AGGRON, SPECIES_MAGNETON, SPECIES_MACHAMP, SPECIES_ARMALDO, SPECIES_HERACROSS, SPECIES_NOSEPASS, SPECIES_EXPLOUD, SPECIES_MIGHTYENA}, + .id = 5, + .speechLost = {EC_WORD_I_AM, EC_WORD_GOING, EC_WORD_TO, EC_WORD_RUN, EC_WORD_BYE_BYE, EC_WORD_EXCL}, + }, + { + .name = {_("ミサオ"), _("AMIRA"), _("LAURE"), _("DAFNE"), _("AMELIE"), _("LARA")}, + .otId = 0xF555, + .facilityClass = FACILITY_CLASS_RUNNING_TRIATHLETE_F, + .species = {SPECIES_STARMIE, SPECIES_DODRIO, SPECIES_MAGNETON, SPECIES_MEDICHAM, SPECIES_MIGHTYENA, SPECIES_GLALIE, SPECIES_GOLEM, SPECIES_ELECTRODE, SPECIES_PELIPPER, SPECIES_SHARPEDO}, + .id = 6, + .speechLost = {EC_WORD_AHAHA, EC_WORD_DEFEATED, EC_WORD_EXCL, EC_WORD_IT_S, EC_WORD_NOTHING, EC_WORD_EXCL}, + }, + { + .name = {_("カズサ"), _("KALI"), _("JODIE"), _("ILENIA"), _("KARO"), _("ELSA")}, + .otId = 0x8D26, + .facilityClass = FACILITY_CLASS_BEAUTY, + .species = {SPECIES_NINETALES, SPECIES_ALAKAZAM, SPECIES_SCEPTILE, SPECIES_SALAMENCE, SPECIES_GOLDUCK, SPECIES_MAWILE, SPECIES_WEEZING, SPECIES_LANTURN, SPECIES_GARDEVOIR, SPECIES_MILOTIC}, + .id = 7, + .speechLost = {EC_WORD_YOU_RE, EC_WORD_STRONG, EC_WORD_AREN_T, EC_WORD_YOU, EC_WORD_QUES, 0xFFFF}, + }, + { + .name = {_("スミレ"), _("ANNIE"), _("ANNIE"), _("IMELDA"), _("INES"), _("ROSA")}, + .otId = 0x800C, + .facilityClass = FACILITY_CLASS_AROMA_LADY, + .species = {SPECIES_SCEPTILE, SPECIES_VILEPLUME, SPECIES_BELLOSSOM, SPECIES_ROSELIA, SPECIES_CORSOLA, SPECIES_FLYGON, SPECIES_BRELOOM, SPECIES_MILOTIC, SPECIES_ALTARIA, SPECIES_CRADILY}, + .id = 8, + .speechLost = {EC_WORD_WHAT, EC_WORD_TOUGH, EC_WORD_POKEMON, EC_WORD_YOU, EC_WORD_HAVE, EC_WORD_EXCL}, + }, + { + .name = {_("アキノリ"), _("DILLEN"), _("RENE"), _("INDRO"), _("DETLEF"), _("PEDRO")}, + .otId = 0x469f, + .facilityClass = FACILITY_CLASS_HIKER, + .species = {SPECIES_SKARMORY, SPECIES_GOLEM, SPECIES_BLAZIKEN, SPECIES_CAMERUPT, SPECIES_DONPHAN, SPECIES_MUK, SPECIES_SALAMENCE, SPECIES_TROPIUS, SPECIES_SOLROCK, SPECIES_RHYDON}, + .id = 9, + .speechLost = {EC_WORD_WE, EC_WORD_WERE, EC_WORD_JUST, EC_WORD_SHREDDED, EC_WORD_ELLIPSIS, 0xFFFF}, + }, + { + .name = {_("トウゾウ"), _("DALLAS"), _("BRUNO"), _("LEARCO"), _("ANSGAR"), _("MANOLO")}, + .otId = 0x71FC, + .facilityClass = FACILITY_CLASS_FISHERMAN, + .species = {SPECIES_SEAKING, SPECIES_STARMIE, SPECIES_GOLDUCK, SPECIES_TENTACRUEL, SPECIES_OCTILLERY, SPECIES_GOREBYSS, SPECIES_GLALIE, SPECIES_WAILORD, SPECIES_SHARPEDO, SPECIES_KINGDRA}, + .id = 10, + .speechLost = {EC_WORD_YOUR, EC_WORD_WIN, EC_WORD_ANGERS, EC_WORD_ME, EC_WORD_EXCL, 0xFFFF}, + }, + { + .name = {_("セイヤ"), _("FRANK"), _("FRANK"), _("OLINDO"), _("FRANK"), _("MAURO")}, + .otId = 0xA39E, + .facilityClass = FACILITY_CLASS_SAILOR, + .species = {SPECIES_QUAGSIRE, SPECIES_STARMIE, SPECIES_PELIPPER, SPECIES_CRAWDAUNT, SPECIES_WAILORD, SPECIES_GYARADOS, SPECIES_SWAMPERT, SPECIES_LANTURN, SPECIES_WHISCASH, SPECIES_SHUCKLE}, + .id = 11, + .speechLost = {EC_WORD_LOSING, EC_WORD_DOESN_T, EC_MOVE(CUT), EC_WORD_ME, EC_WORD_DEEP, EC_WORD_OK_QUES}, + }, + { + .name = {_("リュウジ"), _("LAMONT"), _("XAV"), _("ORFEO"), _("JÜRGEN"), _("JORGE")}, + .otId = 0xE590, + .facilityClass = FACILITY_CLASS_GUITARIST, + .species = {SPECIES_ABSOL, SPECIES_CROBAT, SPECIES_EXPLOUD, SPECIES_MAGNETON, SPECIES_SHARPEDO, SPECIES_MANECTRIC, SPECIES_METAGROSS, SPECIES_ELECTRODE, SPECIES_NOSEPASS, SPECIES_WEEZING}, + .id = 12, + .speechLost = {EC_WORD_A, EC_WORD_LOSS, EC_WORD_IS, EC_WORD_WHAT, EC_WORD_THIS, EC_WORD_IS}, + }, + { + .name = {_("カツアキ"), _("TYRESE"), _("ANDY"), _("PARIDE"), _("DAVID"), _("CHICHO")}, + .otId = 0xD018, + .facilityClass = FACILITY_CLASS_BLACK_BELT, + .species = {SPECIES_BLAZIKEN, SPECIES_GOLEM, SPECIES_MACHAMP, SPECIES_RHYDON, SPECIES_HARIYAMA, SPECIES_AGGRON, SPECIES_MEDICHAM, SPECIES_ZANGOOSE, SPECIES_VIGOROTH, SPECIES_SLAKING}, + .id = 13, + .speechLost = {EC_WORD_I_AM, EC_WORD_TOO_WEAK, EC_WORD_AND, EC_WORD_LOW, EC_WORD_OF, EC_WORD_POWER}, + }, + { + .name = {_("トシミツ"), _("DANTE"), _("DANTE"), _("RAOUL"), _("LOTHAR"), _("PABLO")}, + .otId = 0xBC75, + .facilityClass = FACILITY_CLASS_RUIN_MANIAC, + .species = {SPECIES_SCEPTILE, SPECIES_SANDSLASH, SPECIES_FLYGON, SPECIES_CLAYDOL, SPECIES_ARMALDO, SPECIES_CROBAT, SPECIES_CRADILY, SPECIES_SOLROCK, SPECIES_LUNATONE, SPECIES_GOLEM}, + .id = 14, + .speechLost = {EC_WORD_I, EC_WORD_DON_T, EC_WORD_UNDERSTAND, EC_WORD_WHAT, EC_WORD_IS, EC_WORD_HAPPENING}, + }, + { + .name = {_("ローウェン"), _("ARTURO"), _("ARTURO"), _("ROMOLO"), _("BRIAN"), _("ARTURO")}, + .otId = 0xFA02, + .facilityClass = FACILITY_CLASS_GENTLEMAN, + .species = {SPECIES_ABSOL, SPECIES_MIGHTYENA, SPECIES_ALAKAZAM, SPECIES_BANETTE, SPECIES_NINETALES, SPECIES_CLAYDOL, SPECIES_MUK, SPECIES_SALAMENCE, SPECIES_WALREIN, SPECIES_DUSCLOPS}, + .id = 15, + .speechLost = {EC_WORD_THIS, EC_WORD_HAS, EC_WORD_TO, EC_WORD_BE, EC_WORD_A, EC_WORD_LIE}, + }, +}; + +// Sequence of 4 messages for the first meeting with the apprentice +static const u8 *const sApprenticeFirstMeetingTexts[NUM_APPRENTICES][4] = +{ + {gText_ApprenticePleaseTeach0, gText_ApprenticeRejectTeaching0, gText_ApprenticeWhichLevelMode0, gText_ApprenticeLevelModeThanks0}, + {gText_ApprenticePleaseTeach1, gText_ApprenticeRejectTeaching1, gText_ApprenticeWhichLevelMode1, gText_ApprenticeLevelModeThanks1}, + {gText_ApprenticePleaseTeach2, gText_ApprenticeRejectTeaching2, gText_ApprenticeWhichLevelMode2, gText_ApprenticeLevelModeThanks2}, + {gText_ApprenticePleaseTeach3, gText_ApprenticeRejectTeaching3, gText_ApprenticeWhichLevelMode3, gText_ApprenticeLevelModeThanks3}, + {gText_ApprenticePleaseTeach4, gText_ApprenticeRejectTeaching4, gText_ApprenticeWhichLevelMode4, gText_ApprenticeLevelModeThanks4}, + {gText_ApprenticePleaseTeach5, gText_ApprenticeRejectTeaching5, gText_ApprenticeWhichLevelMode5, gText_ApprenticeLevelModeThanks5}, + {gText_ApprenticePleaseTeach6, gText_ApprenticeRejectTeaching6, gText_ApprenticeWhichLevelMode6, gText_ApprenticeLevelModeThanks6}, + {gText_ApprenticePleaseTeach7, gText_ApprenticeRejectTeaching7, gText_ApprenticeWhichLevelMode7, gText_ApprenticeLevelModeThanks7}, + {gText_ApprenticePleaseTeach8, gText_ApprenticeRejectTeaching8, gText_ApprenticeWhichLevelMode8, gText_ApprenticeLevelModeThanks8}, + {gText_ApprenticePleaseTeach9, gText_ApprenticeRejectTeaching9, gText_ApprenticeWhichLevelMode9, gText_ApprenticeLevelModeThanks9}, + {gText_ApprenticePleaseTeach10, gText_ApprenticeRejectTeaching10, gText_ApprenticeWhichLevelMode10, gText_ApprenticeLevelModeThanks10}, + {gText_ApprenticePleaseTeach11, gText_ApprenticeRejectTeaching11, gText_ApprenticeWhichLevelMode11, gText_ApprenticeLevelModeThanks11}, + {gText_ApprenticePleaseTeach12, gText_ApprenticeRejectTeaching12, gText_ApprenticeWhichLevelMode12, gText_ApprenticeLevelModeThanks12}, + {gText_ApprenticePleaseTeach13, gText_ApprenticeRejectTeaching13, gText_ApprenticeWhichLevelMode13, gText_ApprenticeLevelModeThanks13}, + {gText_ApprenticePleaseTeach14, gText_ApprenticeRejectTeaching14, gText_ApprenticeWhichLevelMode14, gText_ApprenticeLevelModeThanks14}, + {gText_ApprenticePleaseTeach15, gText_ApprenticeRejectTeaching15, gText_ApprenticeWhichLevelMode15, gText_ApprenticeLevelModeThanks15}, +}; + +static const u8 *const sApprenticeWhichMonTexts[NUM_APPRENTICES][2] = +{ + {gText_ApprenticeWhichMon0, gText_ApprenticeMonThanks0}, + {gText_ApprenticeWhichMon1, gText_ApprenticeMonThanks1}, + {gText_ApprenticeWhichMon2, gText_ApprenticeMonThanks2}, + {gText_ApprenticeWhichMon3, gText_ApprenticeMonThanks3}, + {gText_ApprenticeWhichMon4, gText_ApprenticeMonThanks4}, + {gText_ApprenticeWhichMon5, gText_ApprenticeMonThanks5}, + {gText_ApprenticeWhichMon6, gText_ApprenticeMonThanks6}, + {gText_ApprenticeWhichMon7, gText_ApprenticeMonThanks7}, + {gText_ApprenticeWhichMon8, gText_ApprenticeMonThanks8}, + {gText_ApprenticeWhichMon9, gText_ApprenticeMonThanks9}, + {gText_ApprenticeWhichMon10, gText_ApprenticeMonThanks10}, + {gText_ApprenticeWhichMon11, gText_ApprenticeMonThanks11}, + {gText_ApprenticeWhichMon12, gText_ApprenticeMonThanks12}, + {gText_ApprenticeWhichMon13, gText_ApprenticeMonThanks13}, + {gText_ApprenticeWhichMon14, gText_ApprenticeMonThanks14}, + {gText_ApprenticeWhichMon15, gText_ApprenticeMonThanks15}, +}; + +// Sequence of 5 messages for suggesting a held item to the apprentice +static const u8 *const sApprenticeHeldItemTexts[NUM_APPRENTICES][5] = +{ + {gText_ApprenticeWhatHeldItem0, gText_ApprenticeHoldNothing0, gText_ApprenticeThanksNoHeldItem0, gText_ApprenticeThanksHeldItem0, gText_ApprenticeItemAlreadyRecommended0}, + {gText_ApprenticeWhatHeldItem1, gText_ApprenticeHoldNothing1, gText_ApprenticeThanksNoHeldItem1, gText_ApprenticeThanksHeldItem1, gText_ApprenticeItemAlreadyRecommended1}, + {gText_ApprenticeWhatHeldItem2, gText_ApprenticeHoldNothing2, gText_ApprenticeThanksNoHeldItem2, gText_ApprenticeThanksHeldItem2, gText_ApprenticeItemAlreadyRecommended2}, + {gText_ApprenticeWhatHeldItem3, gText_ApprenticeHoldNothing3, gText_ApprenticeThanksNoHeldItem3, gText_ApprenticeThanksHeldItem3, gText_ApprenticeItemAlreadyRecommended3}, + {gText_ApprenticeWhatHeldItem4, gText_ApprenticeHoldNothing4, gText_ApprenticeThanksNoHeldItem4, gText_ApprenticeThanksHeldItem4, gText_ApprenticeItemAlreadyRecommended4}, + {gText_ApprenticeWhatHeldItem5, gText_ApprenticeHoldNothing5, gText_ApprenticeThanksNoHeldItem5, gText_ApprenticeThanksHeldItem5, gText_ApprenticeItemAlreadyRecommended5}, + {gText_ApprenticeWhatHeldItem6, gText_ApprenticeHoldNothing6, gText_ApprenticeThanksNoHeldItem6, gText_ApprenticeThanksHeldItem6, gText_ApprenticeItemAlreadyRecommended6}, + {gText_ApprenticeWhatHeldItem7, gText_ApprenticeHoldNothing7, gText_ApprenticeThanksNoHeldItem7, gText_ApprenticeThanksHeldItem7, gText_ApprenticeItemAlreadyRecommended7}, + {gText_ApprenticeWhatHeldItem8, gText_ApprenticeHoldNothing8, gText_ApprenticeThanksNoHeldItem8, gText_ApprenticeThanksHeldItem8, gText_ApprenticeItemAlreadyRecommended8}, + {gText_ApprenticeWhatHeldItem9, gText_ApprenticeHoldNothing9, gText_ApprenticeThanksNoHeldItem9, gText_ApprenticeThanksHeldItem9, gText_ApprenticeItemAlreadyRecommended9}, + {gText_ApprenticeWhatHeldItem10, gText_ApprenticeHoldNothing10, gText_ApprenticeThanksNoHeldItem10, gText_ApprenticeThanksHeldItem10, gText_ApprenticeItemAlreadyRecommended10}, + {gText_ApprenticeWhatHeldItem11, gText_ApprenticeHoldNothing11, gText_ApprenticeThanksNoHeldItem11, gText_ApprenticeThanksHeldItem11, gText_ApprenticeItemAlreadyRecommended11}, + {gText_ApprenticeWhatHeldItem12, gText_ApprenticeHoldNothing12, gText_ApprenticeThanksNoHeldItem12, gText_ApprenticeThanksHeldItem12, gText_ApprenticeItemAlreadyRecommended12}, + {gText_ApprenticeWhatHeldItem13, gText_ApprenticeHoldNothing13, gText_ApprenticeThanksNoHeldItem13, gText_ApprenticeThanksHeldItem13, gText_ApprenticeItemAlreadyRecommended13}, + {gText_ApprenticeWhatHeldItem14, gText_ApprenticeHoldNothing14, gText_ApprenticeThanksNoHeldItem14, gText_ApprenticeThanksHeldItem14, gText_ApprenticeItemAlreadyRecommended14}, + {gText_ApprenticeWhatHeldItem15, gText_ApprenticeHoldNothing15, gText_ApprenticeThanksNoHeldItem15, gText_ApprenticeThanksHeldItem15, gText_ApprenticeItemAlreadyRecommended15}, +}; + +static const u8 *const sApprenticeWhichMoveTexts[NUM_APPRENTICES][2] = +{ + {gText_ApprenticeWhichMove0, gText_ApprenticeMoveThanks0}, + {gText_ApprenticeWhichMove1, gText_ApprenticeMoveThanks1}, + {gText_ApprenticeWhichMove2, gText_ApprenticeMoveThanks2}, + {gText_ApprenticeWhichMove3, gText_ApprenticeMoveThanks3}, + {gText_ApprenticeWhichMove4, gText_ApprenticeMoveThanks4}, + {gText_ApprenticeWhichMove5, gText_ApprenticeMoveThanks5}, + {gText_ApprenticeWhichMove6, gText_ApprenticeMoveThanks6}, + {gText_ApprenticeWhichMove7, gText_ApprenticeMoveThanks7}, + {gText_ApprenticeWhichMove8, gText_ApprenticeMoveThanks8}, + {gText_ApprenticeWhichMove9, gText_ApprenticeMoveThanks9}, + {gText_ApprenticeWhichMove10, gText_ApprenticeMoveThanks10}, + {gText_ApprenticeWhichMove11, gText_ApprenticeMoveThanks11}, + {gText_ApprenticeWhichMove12, gText_ApprenticeMoveThanks12}, + {gText_ApprenticeWhichMove13, gText_ApprenticeMoveThanks13}, + {gText_ApprenticeWhichMove14, gText_ApprenticeMoveThanks14}, + {gText_ApprenticeWhichMove15, gText_ApprenticeMoveThanks15}, +}; + +static const u8 *const sApprenticeWhichMonFirstTexts[NUM_APPRENTICES][2] = +{ + {gText_ApprenticeWhichMonFirst0, gText_ApprenticeMonFirstThanks0}, + {gText_ApprenticeWhichMonFirst1, gText_ApprenticeMonFirstThanks1}, + {gText_ApprenticeWhichMonFirst2, gText_ApprenticeMonFirstThanks2}, + {gText_ApprenticeWhichMonFirst3, gText_ApprenticeMonFirstThanks3}, + {gText_ApprenticeWhichMonFirst4, gText_ApprenticeMonFirstThanks4}, + {gText_ApprenticeWhichMonFirst5, gText_ApprenticeMonFirstThanks5}, + {gText_ApprenticeWhichMonFirst6, gText_ApprenticeMonFirstThanks6}, + {gText_ApprenticeWhichMonFirst7, gText_ApprenticeMonFirstThanks7}, + {gText_ApprenticeWhichMonFirst8, gText_ApprenticeMonFirstThanks8}, + {gText_ApprenticeWhichMonFirst9, gText_ApprenticeMonFirstThanks9}, + {gText_ApprenticeWhichMonFirst10, gText_ApprenticeMonFirstThanks10}, + {gText_ApprenticeWhichMonFirst11, gText_ApprenticeMonFirstThanks11}, + {gText_ApprenticeWhichMonFirst12, gText_ApprenticeMonFirstThanks12}, + {gText_ApprenticeWhichMonFirst13, gText_ApprenticeMonFirstThanks13}, + {gText_ApprenticeWhichMonFirst14, gText_ApprenticeMonFirstThanks14}, + {gText_ApprenticeWhichMonFirst15, gText_ApprenticeMonFirstThanks15}, +}; + +static const u8 *const sApprenticePickWinSpeechTexts[NUM_APPRENTICES][2] = +{ + {gText_ApprenticePickWinSpeech0, gText_ApprenticeWinSpeechThanks0}, + {gText_ApprenticePickWinSpeech1, gText_ApprenticeWinSpeechThanks1}, + {gText_ApprenticePickWinSpeech2, gText_ApprenticeWinSpeechThanks2}, + {gText_ApprenticePickWinSpeech3, gText_ApprenticeWinSpeechThanks3}, + {gText_ApprenticePickWinSpeech4, gText_ApprenticeWinSpeechThanks4}, + {gText_ApprenticePickWinSpeech5, gText_ApprenticeWinSpeechThanks5}, + {gText_ApprenticePickWinSpeech6, gText_ApprenticeWinSpeechThanks6}, + {gText_ApprenticePickWinSpeech7, gText_ApprenticeWinSpeechThanks7}, + {gText_ApprenticePickWinSpeech8, gText_ApprenticeWinSpeechThanks8}, + {gText_ApprenticePickWinSpeech9, gText_ApprenticeWinSpeechThanks9}, + {gText_ApprenticePickWinSpeech10, gText_ApprenticeWinSpeechThanks10}, + {gText_ApprenticePickWinSpeech11, gText_ApprenticeWinSpeechThanks11}, + {gText_ApprenticePickWinSpeech12, gText_ApprenticeWinSpeechThanks12}, + {gText_ApprenticePickWinSpeech13, gText_ApprenticeWinSpeechThanks13}, + {gText_ApprenticePickWinSpeech14, gText_ApprenticeWinSpeechThanks14}, + {gText_ApprenticePickWinSpeech15, gText_ApprenticeWinSpeechThanks15}, +}; + +static const u8 *const sApprenticeChallengeTexts[NUM_APPRENTICES] = +{ + gText_ApprenticeChallenge0, + gText_ApprenticeChallenge1, + gText_ApprenticeChallenge2, + gText_ApprenticeChallenge3, + gText_ApprenticeChallenge4, + gText_ApprenticeChallenge5, + gText_ApprenticeChallenge6, + gText_ApprenticeChallenge7, + gText_ApprenticeChallenge8, + gText_ApprenticeChallenge9, + gText_ApprenticeChallenge10, + gText_ApprenticeChallenge11, + gText_ApprenticeChallenge12, + gText_ApprenticeChallenge13, + gText_ApprenticeChallenge14, + gText_ApprenticeChallenge15, +}; + +// Unclear what the criteria are for valid moves +// Notably, a large percentage of multi-strike moves are not valid +static const bool8 sValidApprenticeMoves[MOVES_COUNT] = +{ + [MOVE_NONE] = FALSE, + [MOVE_POUND] = FALSE, + [MOVE_KARATE_CHOP] = TRUE, + [MOVE_DOUBLE_SLAP] = TRUE, + [MOVE_COMET_PUNCH] = FALSE, + [MOVE_MEGA_PUNCH] = TRUE, + [MOVE_PAY_DAY] = FALSE, + [MOVE_FIRE_PUNCH] = TRUE, + [MOVE_ICE_PUNCH] = TRUE, + [MOVE_THUNDER_PUNCH] = TRUE, + [MOVE_SCRATCH] = FALSE, + [MOVE_VICE_GRIP] = FALSE, + [MOVE_GUILLOTINE] = TRUE, + [MOVE_RAZOR_WIND] = FALSE, + [MOVE_SWORDS_DANCE] = TRUE, + [MOVE_CUT] = FALSE, + [MOVE_GUST] = FALSE, + [MOVE_WING_ATTACK] = FALSE, + [MOVE_WHIRLWIND] = TRUE, + [MOVE_FLY] = TRUE, + [MOVE_BIND] = TRUE, + [MOVE_SLAM] = TRUE, + [MOVE_VINE_WHIP] = FALSE, + [MOVE_STOMP] = TRUE, + [MOVE_DOUBLE_KICK] = TRUE, + [MOVE_MEGA_KICK] = TRUE, + [MOVE_JUMP_KICK] = TRUE, + [MOVE_ROLLING_KICK] = TRUE, + [MOVE_SAND_ATTACK] = TRUE, + [MOVE_HEADBUTT] = TRUE, + [MOVE_HORN_ATTACK] = FALSE, + [MOVE_FURY_ATTACK] = FALSE, + [MOVE_HORN_DRILL] = TRUE, + [MOVE_TACKLE] = FALSE, + [MOVE_BODY_SLAM] = TRUE, + [MOVE_WRAP] = TRUE, + [MOVE_TAKE_DOWN] = TRUE, + [MOVE_THRASH] = TRUE, + [MOVE_DOUBLE_EDGE] = TRUE, + [MOVE_TAIL_WHIP] = FALSE, + [MOVE_POISON_STING] = FALSE, + [MOVE_TWINEEDLE] = TRUE, + [MOVE_PIN_MISSILE] = FALSE, + [MOVE_LEER] = FALSE, + [MOVE_BITE] = TRUE, + [MOVE_GROWL] = FALSE, + [MOVE_ROAR] = TRUE, + [MOVE_SING] = TRUE, + [MOVE_SUPERSONIC] = TRUE, + [MOVE_SONIC_BOOM] = TRUE, + [MOVE_DISABLE] = TRUE, + [MOVE_ACID] = FALSE, + [MOVE_EMBER] = FALSE, + [MOVE_FLAMETHROWER] = TRUE, + [MOVE_MIST] = TRUE, + [MOVE_WATER_GUN] = FALSE, + [MOVE_HYDRO_PUMP] = TRUE, + [MOVE_SURF] = TRUE, + [MOVE_ICE_BEAM] = TRUE, + [MOVE_BLIZZARD] = TRUE, + [MOVE_PSYBEAM] = TRUE, + [MOVE_BUBBLE_BEAM] = FALSE, + [MOVE_AURORA_BEAM] = FALSE, + [MOVE_HYPER_BEAM] = TRUE, + [MOVE_PECK] = FALSE, + [MOVE_DRILL_PECK] = TRUE, + [MOVE_SUBMISSION] = TRUE, + [MOVE_LOW_KICK] = TRUE, + [MOVE_COUNTER] = TRUE, + [MOVE_SEISMIC_TOSS] = TRUE, + [MOVE_STRENGTH] = TRUE, + [MOVE_ABSORB] = FALSE, + [MOVE_MEGA_DRAIN] = FALSE, + [MOVE_LEECH_SEED] = TRUE, + [MOVE_GROWTH] = TRUE, + [MOVE_RAZOR_LEAF] = TRUE, + [MOVE_SOLAR_BEAM] = TRUE, + [MOVE_POISON_POWDER] = TRUE, + [MOVE_STUN_SPORE] = TRUE, + [MOVE_SLEEP_POWDER] = TRUE, + [MOVE_PETAL_DANCE] = TRUE, + [MOVE_STRING_SHOT] = FALSE, + [MOVE_DRAGON_RAGE] = TRUE, + [MOVE_FIRE_SPIN] = TRUE, + [MOVE_THUNDER_SHOCK] = FALSE, + [MOVE_THUNDERBOLT] = TRUE, + [MOVE_THUNDER_WAVE] = TRUE, + [MOVE_THUNDER] = TRUE, + [MOVE_ROCK_THROW] = FALSE, + [MOVE_EARTHQUAKE] = TRUE, + [MOVE_FISSURE] = TRUE, + [MOVE_DIG] = TRUE, + [MOVE_TOXIC] = TRUE, + [MOVE_CONFUSION] = FALSE, + [MOVE_PSYCHIC] = TRUE, + [MOVE_HYPNOSIS] = TRUE, + [MOVE_MEDITATE] = TRUE, + [MOVE_AGILITY] = TRUE, + [MOVE_QUICK_ATTACK] = TRUE, + [MOVE_RAGE] = FALSE, + [MOVE_TELEPORT] = FALSE, + [MOVE_NIGHT_SHADE] = TRUE, + [MOVE_MIMIC] = TRUE, + [MOVE_SCREECH] = TRUE, + [MOVE_DOUBLE_TEAM] = TRUE, + [MOVE_RECOVER] = TRUE, + [MOVE_HARDEN] = TRUE, + [MOVE_MINIMIZE] = TRUE, + [MOVE_SMOKESCREEN] = TRUE, + [MOVE_CONFUSE_RAY] = TRUE, + [MOVE_WITHDRAW] = TRUE, + [MOVE_DEFENSE_CURL] = TRUE, + [MOVE_BARRIER] = TRUE, + [MOVE_LIGHT_SCREEN] = TRUE, + [MOVE_HAZE] = TRUE, + [MOVE_REFLECT] = TRUE, + [MOVE_FOCUS_ENERGY] = TRUE, + [MOVE_BIDE] = FALSE, + [MOVE_METRONOME] = TRUE, + [MOVE_MIRROR_MOVE] = TRUE, + [MOVE_SELF_DESTRUCT] = TRUE, + [MOVE_EGG_BOMB] = TRUE, + [MOVE_LICK] = TRUE, + [MOVE_SMOG] = FALSE, + [MOVE_SLUDGE] = FALSE, + [MOVE_BONE_CLUB] = FALSE, + [MOVE_FIRE_BLAST] = TRUE, + [MOVE_WATERFALL] = TRUE, + [MOVE_CLAMP] = TRUE, + [MOVE_SWIFT] = TRUE, + [MOVE_SKULL_BASH] = TRUE, + [MOVE_SPIKE_CANNON] = FALSE, + [MOVE_CONSTRICT] = FALSE, + [MOVE_AMNESIA] = TRUE, + [MOVE_KINESIS] = TRUE, + [MOVE_SOFT_BOILED] = TRUE, + [MOVE_HI_JUMP_KICK] = TRUE, + [MOVE_GLARE] = TRUE, + [MOVE_DREAM_EATER] = TRUE, + [MOVE_POISON_GAS] = FALSE, + [MOVE_BARRAGE] = FALSE, + [MOVE_LEECH_LIFE] = FALSE, + [MOVE_LOVELY_KISS] = TRUE, + [MOVE_SKY_ATTACK] = TRUE, + [MOVE_TRANSFORM] = TRUE, + [MOVE_BUBBLE] = FALSE, + [MOVE_DIZZY_PUNCH] = TRUE, + [MOVE_SPORE] = TRUE, + [MOVE_FLASH] = TRUE, + [MOVE_PSYWAVE] = TRUE, + [MOVE_SPLASH] = FALSE, + [MOVE_ACID_ARMOR] = TRUE, + [MOVE_CRABHAMMER] = TRUE, + [MOVE_EXPLOSION] = TRUE, + [MOVE_FURY_SWIPES] = FALSE, + [MOVE_BONEMERANG] = TRUE, + [MOVE_REST] = TRUE, + [MOVE_ROCK_SLIDE] = TRUE, + [MOVE_HYPER_FANG] = TRUE, + [MOVE_SHARPEN] = TRUE, + [MOVE_CONVERSION] = TRUE, + [MOVE_TRI_ATTACK] = TRUE, + [MOVE_SUPER_FANG] = TRUE, + [MOVE_SLASH] = TRUE, + [MOVE_SUBSTITUTE] = TRUE, + [MOVE_STRUGGLE] = TRUE, + [MOVE_SKETCH] = TRUE, + [MOVE_TRIPLE_KICK] = TRUE, + [MOVE_THIEF] = TRUE, + [MOVE_SPIDER_WEB] = TRUE, + [MOVE_MIND_READER] = TRUE, + [MOVE_NIGHTMARE] = TRUE, + [MOVE_FLAME_WHEEL] = FALSE, + [MOVE_SNORE] = TRUE, + [MOVE_CURSE] = TRUE, + [MOVE_FLAIL] = TRUE, + [MOVE_CONVERSION_2] = TRUE, + [MOVE_AEROBLAST] = TRUE, + [MOVE_COTTON_SPORE] = TRUE, + [MOVE_REVERSAL] = TRUE, + [MOVE_SPITE] = TRUE, + [MOVE_POWDER_SNOW] = FALSE, + [MOVE_PROTECT] = TRUE, + [MOVE_MACH_PUNCH] = TRUE, + [MOVE_SCARY_FACE] = TRUE, + [MOVE_FAINT_ATTACK] = TRUE, + [MOVE_SWEET_KISS] = TRUE, + [MOVE_BELLY_DRUM] = TRUE, + [MOVE_SLUDGE_BOMB] = TRUE, + [MOVE_MUD_SLAP] = TRUE, + [MOVE_OCTAZOOKA] = TRUE, + [MOVE_SPIKES] = TRUE, + [MOVE_ZAP_CANNON] = TRUE, + [MOVE_FORESIGHT] = TRUE, + [MOVE_DESTINY_BOND] = TRUE, + [MOVE_PERISH_SONG] = TRUE, + [MOVE_ICY_WIND] = TRUE, + [MOVE_DETECT] = TRUE, + [MOVE_BONE_RUSH] = FALSE, + [MOVE_LOCK_ON] = TRUE, + [MOVE_OUTRAGE] = TRUE, + [MOVE_SANDSTORM] = TRUE, + [MOVE_GIGA_DRAIN] = TRUE, + [MOVE_ENDURE] = TRUE, + [MOVE_CHARM] = TRUE, + [MOVE_ROLLOUT] = TRUE, + [MOVE_FALSE_SWIPE] = TRUE, + [MOVE_SWAGGER] = TRUE, + [MOVE_MILK_DRINK] = TRUE, + [MOVE_SPARK] = FALSE, + [MOVE_FURY_CUTTER] = TRUE, + [MOVE_STEEL_WING] = TRUE, + [MOVE_MEAN_LOOK] = TRUE, + [MOVE_ATTRACT] = TRUE, + [MOVE_SLEEP_TALK] = TRUE, + [MOVE_HEAL_BELL] = TRUE, + [MOVE_RETURN] = TRUE, + [MOVE_PRESENT] = TRUE, + [MOVE_FRUSTRATION] = TRUE, + [MOVE_SAFEGUARD] = TRUE, + [MOVE_PAIN_SPLIT] = TRUE, + [MOVE_SACRED_FIRE] = TRUE, + [MOVE_MAGNITUDE] = FALSE, + [MOVE_DYNAMIC_PUNCH] = TRUE, + [MOVE_MEGAHORN] = TRUE, + [MOVE_DRAGON_BREATH] = TRUE, + [MOVE_BATON_PASS] = TRUE, + [MOVE_ENCORE] = TRUE, + [MOVE_PURSUIT] = TRUE, + [MOVE_RAPID_SPIN] = TRUE, + [MOVE_SWEET_SCENT] = TRUE, + [MOVE_IRON_TAIL] = TRUE, + [MOVE_METAL_CLAW] = TRUE, + [MOVE_VITAL_THROW] = TRUE, + [MOVE_MORNING_SUN] = TRUE, + [MOVE_SYNTHESIS] = TRUE, + [MOVE_MOONLIGHT] = TRUE, + [MOVE_HIDDEN_POWER] = TRUE, + [MOVE_CROSS_CHOP] = TRUE, + [MOVE_TWISTER] = FALSE, + [MOVE_RAIN_DANCE] = TRUE, + [MOVE_SUNNY_DAY] = TRUE, + [MOVE_CRUNCH] = TRUE, + [MOVE_MIRROR_COAT] = TRUE, + [MOVE_PSYCH_UP] = TRUE, + [MOVE_EXTREME_SPEED] = TRUE, + [MOVE_ANCIENT_POWER] = TRUE, + [MOVE_SHADOW_BALL] = TRUE, + [MOVE_FUTURE_SIGHT] = TRUE, + [MOVE_ROCK_SMASH] = TRUE, + [MOVE_WHIRLPOOL] = TRUE, + [MOVE_BEAT_UP] = TRUE, + [MOVE_FAKE_OUT] = TRUE, + [MOVE_UPROAR] = TRUE, + [MOVE_STOCKPILE] = TRUE, + [MOVE_SPIT_UP] = TRUE, + [MOVE_SWALLOW] = TRUE, + [MOVE_HEAT_WAVE] = TRUE, + [MOVE_HAIL] = TRUE, + [MOVE_TORMENT] = TRUE, + [MOVE_FLATTER] = TRUE, + [MOVE_WILL_O_WISP] = TRUE, + [MOVE_MEMENTO] = TRUE, + [MOVE_FACADE] = TRUE, + [MOVE_FOCUS_PUNCH] = TRUE, + [MOVE_SMELLING_SALT] = TRUE, + [MOVE_FOLLOW_ME] = TRUE, + [MOVE_NATURE_POWER] = TRUE, + [MOVE_CHARGE] = TRUE, + [MOVE_TAUNT] = TRUE, + [MOVE_HELPING_HAND] = TRUE, + [MOVE_TRICK] = TRUE, + [MOVE_ROLE_PLAY] = TRUE, + [MOVE_WISH] = TRUE, + [MOVE_ASSIST] = TRUE, + [MOVE_INGRAIN] = TRUE, + [MOVE_SUPERPOWER] = TRUE, + [MOVE_MAGIC_COAT] = TRUE, + [MOVE_RECYCLE] = TRUE, + [MOVE_REVENGE] = TRUE, + [MOVE_BRICK_BREAK] = TRUE, + [MOVE_YAWN] = TRUE, + [MOVE_KNOCK_OFF] = TRUE, + [MOVE_ENDEAVOR] = TRUE, + [MOVE_ERUPTION] = TRUE, + [MOVE_SKILL_SWAP] = TRUE, + [MOVE_IMPRISON] = TRUE, + [MOVE_REFRESH] = TRUE, + [MOVE_GRUDGE] = TRUE, + [MOVE_SNATCH] = TRUE, + [MOVE_SECRET_POWER] = TRUE, + [MOVE_DIVE] = TRUE, + [MOVE_ARM_THRUST] = FALSE, + [MOVE_CAMOUFLAGE] = TRUE, + [MOVE_TAIL_GLOW] = TRUE, + [MOVE_LUSTER_PURGE] = TRUE, + [MOVE_MIST_BALL] = TRUE, + [MOVE_FEATHER_DANCE] = TRUE, + [MOVE_TEETER_DANCE] = TRUE, + [MOVE_BLAZE_KICK] = TRUE, + [MOVE_MUD_SPORT] = TRUE, + [MOVE_ICE_BALL] = FALSE, + [MOVE_NEEDLE_ARM] = TRUE, + [MOVE_SLACK_OFF] = TRUE, + [MOVE_HYPER_VOICE] = TRUE, + [MOVE_POISON_FANG] = FALSE, + [MOVE_CRUSH_CLAW] = TRUE, + [MOVE_BLAST_BURN] = TRUE, + [MOVE_HYDRO_CANNON] = TRUE, + [MOVE_METEOR_MASH] = TRUE, + [MOVE_ASTONISH] = TRUE, + [MOVE_WEATHER_BALL] = TRUE, + [MOVE_AROMATHERAPY] = TRUE, + [MOVE_FAKE_TEARS] = TRUE, + [MOVE_AIR_CUTTER] = TRUE, + [MOVE_OVERHEAT] = TRUE, + [MOVE_ODOR_SLEUTH] = TRUE, + [MOVE_ROCK_TOMB] = TRUE, + [MOVE_SILVER_WIND] = TRUE, + [MOVE_METAL_SOUND] = TRUE, + [MOVE_GRASS_WHISTLE] = TRUE, + [MOVE_TICKLE] = TRUE, + [MOVE_COSMIC_POWER] = TRUE, + [MOVE_WATER_SPOUT] = TRUE, + [MOVE_SIGNAL_BEAM] = TRUE, + [MOVE_SHADOW_PUNCH] = TRUE, + [MOVE_EXTRASENSORY] = TRUE, + [MOVE_SKY_UPPERCUT] = TRUE, + [MOVE_SAND_TOMB] = TRUE, + [MOVE_SHEER_COLD] = TRUE, + [MOVE_MUDDY_WATER] = TRUE, + [MOVE_BULLET_SEED] = FALSE, + [MOVE_AERIAL_ACE] = TRUE, + [MOVE_ICICLE_SPEAR] = FALSE, + [MOVE_IRON_DEFENSE] = TRUE, + [MOVE_BLOCK] = TRUE, + [MOVE_HOWL] = TRUE, + [MOVE_DRAGON_CLAW] = TRUE, + [MOVE_FRENZY_PLANT] = TRUE, + [MOVE_BULK_UP] = TRUE, + [MOVE_BOUNCE] = TRUE, + [MOVE_MUD_SHOT] = FALSE, + [MOVE_POISON_TAIL] = TRUE, + [MOVE_COVET] = TRUE, + [MOVE_VOLT_TACKLE] = TRUE, + [MOVE_MAGICAL_LEAF] = TRUE, + [MOVE_WATER_SPORT] = TRUE, + [MOVE_CALM_MIND] = TRUE, + [MOVE_LEAF_BLADE] = TRUE, + [MOVE_DRAGON_DANCE] = TRUE, + [MOVE_ROCK_BLAST] = FALSE, + [MOVE_SHOCK_WAVE] = TRUE, + [MOVE_WATER_PULSE] = TRUE, + [MOVE_DOOM_DESIRE] = TRUE, + [MOVE_PSYCHO_BOOST] = TRUE, +}; + +// The possible questions to ask after the initial 3 WHICH MON questions. Retrieved from here and shuffled +// WHAT_ITEM has max 3 occurrences, one for each party member +// WHICH_MOVE has max 5 occurrences, defined as NUM_WHICH_MOVE_QUESTIONS +// WHICH_FIRST has max 1 occurrence, lead mon should only be chosen once +// WHICH_SPEECH has max 1 occurrence, as the apprentice leaves after its asked +static const u8 sQuestionPossibilities[] = +{ + QUESTION_ID_WHAT_ITEM, + QUESTION_ID_WHAT_ITEM, + QUESTION_ID_WHAT_ITEM, + QUESTION_ID_WHICH_MOVE, + QUESTION_ID_WHICH_MOVE, + QUESTION_ID_WHICH_MOVE, + QUESTION_ID_WHICH_MOVE, + QUESTION_ID_WHICH_MOVE, + QUESTION_ID_WHICH_FIRST, + QUESTION_ID_WIN_SPEECH +}; + +static void (* const sApprenticeFunctions[])(void) = +{ + [APPRENTICE_FUNC_GAVE_LVLMODE] = Script_GivenApprenticeLvlMode, + [APPRENTICE_FUNC_SET_LVLMODE] = Script_SetApprenticeLvlMode, + [APPRENTICE_FUNC_SET_ID] = Script_SetApprenticeId, + [APPRENTICE_FUNC_SHUFFLE_SPECIES] = ShuffleApprenticeSpecies, + [APPRENTICE_FUNC_RANDOMIZE_QUESTIONS] = Script_SetRandomQuestionData, + [APPRENTICE_FUNC_ANSWERED_QUESTION] = IncrementQuestionsAnswered, + [APPRENTICE_FUNC_IS_FINAL_QUESTION] = IsFinalQuestion, + [APPRENTICE_FUNC_MENU] = Script_CreateApprenticeMenu, + [APPRENTICE_FUNC_PRINT_MSG] = Script_PrintApprenticeMessage, + [APPRENTICE_FUNC_RESET] = Script_ResetPlayerApprentice, + [APPRENTICE_FUNC_CHECK_GONE] = GetShouldCheckApprenticeGone, + [APPRENTICE_FUNC_GET_QUESTION] = ApprenticeGetQuestion, + [APPRENTICE_FUNC_GET_NUM_PARTY_MONS] = GetNumApprenticePartyMonsAssigned, + [APPRENTICE_FUNC_SET_PARTY_MON] = SetApprenticePartyMon, + [APPRENTICE_FUNC_INIT_QUESTION_DATA] = InitQuestionData, + [APPRENTICE_FUNC_FREE_QUESTION_DATA] = FreeQuestionData, + [APPRENTICE_FUNC_BUFFER_STRING] = ApprenticeBufferString, + [APPRENTICE_FUNC_SET_MOVE] = SetApprenticeMonMove, + [APPRENTICE_FUNC_SET_LEAD_MON] = SetLeadApprenticeMon, + [APPRENTICE_FUNC_OPEN_BAG] = Script_ApprenticeOpenBagMenu, + [APPRENTICE_FUNC_TRY_SET_HELD_ITEM] = TrySetApprenticeHeldItem, + [APPRENTICE_FUNC_SAVE] = SaveApprentice, + [APPRENTICE_FUNC_SET_GFX_SAVED] = SetSavedApprenticeTrainerGfxId, + [APPRENTICE_FUNC_SET_GFX] = SetPlayerApprenticeTrainerGfxId, + [APPRENTICE_FUNC_SHOULD_LEAVE] = GetShouldApprenticeLeave, + [APPRENTICE_FUNC_SHIFT_SAVED] = ShiftSavedApprentices, +}; + +// The first Apprentice can only be one of these +static const u8 sInitialApprenticeIds[8] = {0, 1, 2, 3, 6, 7, 8, 9}; -- cgit v1.2.3 From 4f590e8f6102a433dbfbee56dd55f01aa3401c75 Mon Sep 17 00:00:00 2001 From: Sewef Date: Sat, 23 Nov 2019 11:57:39 +0100 Subject: battle_anim_effects_3 (4) --- data/battle_anim_scripts.s | 30 ++++---- data/smokescreen.s | 8 +- include/battle_anim.h | 4 +- src/battle_anim.c | 4 +- src/battle_anim_effects_3.c | 174 ++++++++++++++++++++++---------------------- src/battle_anim_mons.c | 4 +- src/smokescreen.c | 34 ++++----- 7 files changed, 129 insertions(+), 129 deletions(-) diff --git a/data/battle_anim_scripts.s b/data/battle_anim_scripts.s index 0edcd893b..43c9cdaf7 100644 --- a/data/battle_anim_scripts.s +++ b/data/battle_anim_scripts.s @@ -2266,7 +2266,7 @@ Move_SMOKESCREEN: playsewithpan SE_W104, SOUND_PAN_ATTACKER createsprite gBlackBallSpriteTemplate, ANIM_TARGET, 2, 20, 0, 0, 0, 35, -25 waitforvisualfinish - createvisualtask sub_815A160, 2 + createvisualtask AnimTask_SmokescreenImpact, 2 delay 2 playsewithpan SE_W028, SOUND_PAN_TARGET createsprite gBlackSmokeSpriteTemplate, ANIM_TARGET, 4, 0, -12, 104, 0, 75 @@ -3341,7 +3341,7 @@ Move_RAPID_SPIN: loadspritegfx ANIM_TAG_RAPID_SPIN monbg ANIM_ATTACKER createsprite gRapidSpinSpriteTemplate, ANIM_ATTACKER, 2, 0, 0, 32, -32, 40, -2 - createvisualtask sub_815ADB0, 2, 0, 2, 0 + createvisualtask AnimTask_RapinSpinMonElevation, 2, 0, 2, 0 loopsewithpan SE_W013B, SOUND_PAN_ATTACKER, 8, 4 waitforvisualfinish createsprite gBasicHitSplatSpriteTemplate, ANIM_TARGET, 2, 0, 0, 1, 2 @@ -3349,7 +3349,7 @@ Move_RAPID_SPIN: playsewithpan SE_W003, SOUND_PAN_TARGET waitforvisualfinish delay 8 - createvisualtask sub_815ADB0, 2, 0, 2, 1 + createvisualtask AnimTask_RapinSpinMonElevation, 2, 0, 2, 1 loopsewithpan SE_W013B, SOUND_PAN_ATTACKER, 8, 4 waitforvisualfinish clearmonbg ANIM_ATTACKER @@ -3493,7 +3493,7 @@ Move_HAIL: Move_TORMENT: loadspritegfx ANIM_TAG_ANGER loadspritegfx ANIM_TAG_THOUGHT_BUBBLE - createvisualtask sub_815AFF0, 2 + createvisualtask AnimTask_TormentAttacker, 2 waitforvisualfinish createvisualtask AnimTask_BlendMonInAndOut, 2, ANIM_TARGET, RGB_RED, 10, 1, 1 createsprite gAngerMarkSpriteTemplate, ANIM_TARGET, 2, 1, -20, -28 @@ -3906,7 +3906,7 @@ Move_LUSTER_PURGE: loadspritegfx ANIM_TAG_IMPACT fadetobg BG_PSYCHIC waitbgfadeout - createvisualtask sub_815A5C8, 5 + createvisualtask AnimTask_FadeScreenToWhite, 5 waitbgfadein monbg ANIM_ATTACKER setalpha 12, 8 @@ -8095,7 +8095,7 @@ Move_WILL_O_WISP: Move_ENCORE: loadspritegfx ANIM_TAG_SPOTLIGHT loadspritegfx ANIM_TAG_TAG_HAND - createvisualtask sub_815ABEC, 2 + createvisualtask AnimTask_CreateSpotlight, 2 createvisualtask sub_8116960, 2, 248, 3, 0, 10, 0 waitforvisualfinish createsprite gSpotlightSpriteTemplate, ANIM_TARGET, 2, 0, -8 @@ -8109,7 +8109,7 @@ Move_ENCORE: waitforvisualfinish createvisualtask sub_8116960, 2, 248, 3, 10, 0, 1 waitforvisualfinish - createvisualtask sub_815AC8C, 2 + createvisualtask AnimTask_RemoveSpotlight, 2 end Move_TRICK: @@ -8272,7 +8272,7 @@ Move_TRANSFORM: monbg ANIM_ATTACKER playsewithpan SE_W100, SOUND_PAN_ATTACKER waitplaysewithpan SE_W107, SOUND_PAN_ATTACKER, 48 - createvisualtask sub_815B7D0, 2, 0 + createvisualtask AnimTask_TransformMon, 2, 0 waitforvisualfinish clearmonbg ANIM_ATTACKER end @@ -8401,7 +8401,7 @@ Move_FLATTER: loadspritegfx ANIM_TAG_SPOTLIGHT loadspritegfx ANIM_TAG_CONFETTI createvisualtask sub_8159244, 5, 223, SOUND_PAN_TARGET - createvisualtask sub_815ABEC, 2 + createvisualtask AnimTask_CreateSpotlight, 2 createvisualtask sub_8116960, 2, 248, 3, 0, 10, 0 waitforvisualfinish createsprite gFlatterSpotlightSpriteTemplate, ANIM_TARGET, 2, 0, -8, 80 @@ -8435,7 +8435,7 @@ Move_FLATTER: waitforvisualfinish createvisualtask sub_8116960, 2, 248, 3, 10, 0, 1 waitforvisualfinish - createvisualtask sub_815AC8C, 2 + createvisualtask AnimTask_RemoveSpotlight, 2 end CreateFlatterConfetti: createsprite gFlatterConfettiSpriteTemplate, ANIM_ATTACKER, 40, ANIM_ATTACKER @@ -9523,7 +9523,7 @@ Move_PSYCHO_BOOST: monbg ANIM_ATK_PARTNER fadetobg BG_PSYCHIC waitbgfadeout - createvisualtask sub_815A5C8, 5 + createvisualtask AnimTask_FadeScreenToWhite, 5 waitbgfadein delay 6 createvisualtask sub_8115A04, 2, 1, 2, 8, 0, 10, RGB_BLACK @@ -10154,7 +10154,7 @@ ConfusionEffect: SetPsychicBackground: fadetobg BG_PSYCHIC waitbgfadeout - createvisualtask sub_815A504, 5 + createvisualtask AnimTask_SetPsychicBackground, 5 waitbgfadein return @@ -10292,19 +10292,19 @@ Status_Nightmare: end General_CastformChange: - createvisualtask sub_815BB18, 2 + createvisualtask AnimTask_IsMonInvisible, 2 jumpreteq 1, AnimScript_82D7ECA goto AnimScript_82D7EB2 AnimScript_82D7EB2: monbg ANIM_ATTACKER playsewithpan SE_W100, SOUND_PAN_ATTACKER waitplaysewithpan SE_W107, SOUND_PAN_ATTACKER, 48 - createvisualtask sub_815B7D0, 2, 1 + createvisualtask AnimTask_TransformMon, 2, 1 waitforvisualfinish clearmonbg ANIM_ATTACKER end AnimScript_82D7ECA: - createvisualtask sub_815BB58, 2, 1 + createvisualtask AnimTask_CastformGfxChange, 2, 1 end General_StatsChange: diff --git a/data/smokescreen.s b/data/smokescreen.s index aeb8e685b..3cd16ee13 100644 --- a/data/smokescreen.s +++ b/data/smokescreen.s @@ -13,11 +13,11 @@ gUnknown_0831C604:: @ 831C604 .byte 0x00, 0x00, 0x00, 0x00 .align 2 -gUnknown_0831C620:: @ 831C620 +gSmokescreenImpactSpriteSheet:: @ 831C620 obj_tiles gSmokescreenImpactTiles, 0x0180, 0xd6eb .align 2 -gUnknown_0831C628:: @ 831C628 +gSmokescreenlImpactSpritePalette:: @ 831C628 obj_pal gSmokescreenImpactPalette, 0xd6eb .align 2 @@ -48,8 +48,8 @@ gUnknown_0831C678:: @ 831C678 .4byte gUnknown_0831C668 .align 2 -gUnknown_0831C688:: @ 831C688 - spr_template 0xd6eb, 0xd6eb, gUnknown_0831C630, gUnknown_0831C678, NULL, gDummySpriteAffineAnimTable, sub_80753B4 +gSmokescreenImpactSpriteTemplate:: @ 831C688 + spr_template 0xd6eb, 0xd6eb, gUnknown_0831C630, gUnknown_0831C678, NULL, gDummySpriteAffineAnimTable, SpriteCB_DestroySprite .align 2 gSpriteSheet_EnemyShadow:: @ 831C6A0 diff --git a/include/battle_anim.h b/include/battle_anim.h index 503e23df2..d9d1d6420 100644 --- a/include/battle_anim.h +++ b/include/battle_anim.h @@ -185,7 +185,7 @@ bool8 IsBattlerSpritePresent(u8 battlerId); void sub_80A6C68(u32 arg0); u8 GetAnimBattlerSpriteId(u8 wantedBattler); bool8 IsDoubleBattle(void); -u8 sub_80A6D94(void); +u8 GetPaletteOffset(void); u8 GetBattlerSpriteBGPriorityRank(u8 battlerId); void StoreSpriteCallbackInData6(struct Sprite *sprite, void (*spriteCallback)(struct Sprite*)); void SetSpritePrimaryCoordsFromSecondaryCoords(struct Sprite *sprite); @@ -231,7 +231,7 @@ void AnimWaterPulseRing(struct Sprite *sprite); void sub_810E2C8(struct Sprite *sprite); // smokescreen.c -u8 sub_807521C(s16 x, s16 y, u8 a3); +u8 SmokescreenImpact(s16 x, s16 y, u8 a3); u32 UnpackSelectedBattleAnimPalettes(s16); diff --git a/src/battle_anim.c b/src/battle_anim.c index 25abbfece..0b31a8f2e 100644 --- a/src/battle_anim.c +++ b/src/battle_anim.c @@ -2808,12 +2808,12 @@ static void LoadMoveBg(u16 bgId) void *dmaDest; LZDecompressWram(tilemap, gDecompressionBuffer); - sub_80A4720(sub_80A6D94(), (void*)(gDecompressionBuffer), 0x100, 0); + sub_80A4720(GetPaletteOffset(), (void*)(gDecompressionBuffer), 0x100, 0); dmaSrc = gDecompressionBuffer; dmaDest = (void *)(BG_SCREEN_ADDR(26)); DmaCopy32(3, dmaSrc, dmaDest, 0x800); LZDecompressVram(gBattleAnimBackgroundTable[bgId].image, (void *)(BG_SCREEN_ADDR(4))); - LoadCompressedPalette(gBattleAnimBackgroundTable[bgId].palette, sub_80A6D94() * 16, 32); + LoadCompressedPalette(gBattleAnimBackgroundTable[bgId].palette, GetPaletteOffset() * 16, 32); } else { diff --git a/src/battle_anim_effects_3.c b/src/battle_anim_effects_3.c index a7368f246..02df544e0 100755 --- a/src/battle_anim_effects_3.c +++ b/src/battle_anim_effects_3.c @@ -32,13 +32,13 @@ void AnimTealAlert(struct Sprite *); void AnimMeanLookEye(struct Sprite *); void AnimSpikes(struct Sprite *); void AnimLeer(struct Sprite *); -void sub_815A7EC(struct Sprite *); +void AnimLetterZ(struct Sprite *); void AnimFang(struct Sprite *); void AnimSpotlight(struct Sprite *); void AnimClappingHand(struct Sprite *); void AnimClappingHand2(struct Sprite *); void AnimRapidSpin(struct Sprite *); -void sub_815B27C(struct Sprite *); +void AnimTriForceTriangle(struct Sprite *); void AnimBatonPassPokeball(struct Sprite *); void AnimWishStar(struct Sprite *); void AnimMiniTwinklingStar(struct Sprite *); @@ -52,7 +52,7 @@ void AnimFlatterSpotlight(struct Sprite *); void AnimReversalOrb(struct Sprite *); void AnimYawnCloud(struct Sprite *); void AnimSmokeBallEscapeCloud(struct Sprite *); -void sub_815DEBC(struct Sprite *); +void AnimFacadeSweatDrop(struct Sprite *); void AnimRoarNoiseLine(struct Sprite *); void AnimGlareEyeDot(struct Sprite *); void AnimAssistPawprint(struct Sprite *); @@ -66,26 +66,26 @@ void sub_815FE80(struct Sprite *); void AnimParticuleBurst(struct Sprite *); void AnimKnockOffStrike(struct Sprite *); void AnimRecycle(struct Sprite *); -static void sub_815A114(struct Sprite *); -static void sub_815A1F4(struct Sprite *); -static void sub_815A234(struct Sprite *); -static void sub_815A31C(struct Sprite *); -static void sub_815A3AC(struct Sprite *); -static void sub_815A3F0(struct Sprite *); -static void sub_815A49C(struct Sprite *); -static void sub_815A52C(u8); -static void sub_815A5F0(u8); -static void sub_815A73C(struct Sprite *); -static void sub_815A76C(struct Sprite *); -static void sub_815A9A0(struct Sprite *); -static void sub_815AA6C(struct Sprite *); -static void sub_815AB5C(struct Sprite *); -static void sub_815AD4C(struct Sprite *); -static void sub_815AED8(u8); -static void sub_815B054(u8); -static void sub_815B23C(struct Sprite *); -static void sub_815B4D4(struct Sprite *); -static void sub_815B5D0(struct Sprite *); +static void AnimBlackSmokeStep(struct Sprite *); +static void AnimWhiteHalo_Step1(struct Sprite *); +static void AnimWhiteHalo_Step2(struct Sprite *); +static void AnimMeanLookEye_Step1(struct Sprite *); +static void AnimMeanLookEye_Step2(struct Sprite *); +static void AnimMeanLookEye_Step3(struct Sprite *); +static void AnimMeanLookEye_Step4(struct Sprite *); +static void SetPsychicBackground_Step(u8); +static void FadeScreenToWhite_Step(u8); +static void AnimSpikes_Step1(struct Sprite *); +static void AnimSpikes_Step2(struct Sprite *); +static void AnimSpotlight_Step1(struct Sprite *); +static void AnimSpotlight_Step2(struct Sprite *); +static void AnimClappingHand_Step(struct Sprite *); +static void AnimRapidSpin_Step(struct Sprite *); +static void RapinSpinMonElevation_Step(u8); +static void TormentAttacker_Step(u8); +static void TormentAttacker_Callback(struct Sprite *); +static void AnimWishStar_Step(struct Sprite *); +static void AnimMiniTwinklingStar_Step(struct Sprite *); static void AnimGreenStar_Step1(struct Sprite *); static void AnimGreenStar_Step2(struct Sprite *); static void AnimGreenStar_Callback(struct Sprite *); @@ -107,7 +107,7 @@ static void AnimRoarNoiseLineStep(struct Sprite *); static void AnimTask_GlareEyeDotsStep(u8); static void GetGlareEyeDotCoords(s16, s16, s16, s16, u8, u8, s16 *, s16 *); static void AnimTask_BarrageBallStep(u8); -static void sub_815E784(struct Sprite *); +static void AnimSmellingSaltsHand_Step(struct Sprite *); static void AnimTask_SmellingSaltsSquishStep(u8); static void AnimSmellingSaltExclamationStep(struct Sprite *); static void AnimHelpingHandClapStep(struct Sprite *); @@ -315,7 +315,7 @@ const struct SpriteTemplate gLetterZSpriteTemplate = .anims = gLetterZAnimTable, .images = NULL, .affineAnims = gLetterZAffineAnimTable, - .callback = sub_815A7EC, + .callback = AnimLetterZ, }; const union AnimCmd gFangAnimCmds[] = @@ -473,7 +473,7 @@ const struct SpriteTemplate gTriForceTriangleSpriteTemplate = .anims = gTriForceTriangleAnimTable, .images = NULL, .affineAnims = gTriForceTriangleAffineAnimTable, - .callback = sub_815B27C, + .callback = AnimTriForceTriangle, }; const union AnimCmd gEclipsingOrbAnimCmds[] = @@ -888,7 +888,7 @@ const union AffineAnimCmd gFacadeSquishAffineAnimCmds[] = AFFINEANIMCMD_END, }; -const struct SpriteTemplate gFacadeSweatDrop = +const struct SpriteTemplate gFacadeSweatDropSpriteTemplate = { .tileTag = ANIM_TAG_SWEAT_DROP, .paletteTag = ANIM_TAG_SWEAT_DROP, @@ -896,7 +896,7 @@ const struct SpriteTemplate gFacadeSweatDrop = .anims = gDummySpriteAnimTable, .images = NULL, .affineAnims = gDummySpriteAffineAnimTable, - .callback = sub_815DEBC, + .callback = AnimFacadeSweatDrop, }; const u16 gFacadeBlendColors[] = { @@ -1190,10 +1190,10 @@ void AnimBlackSmoke(struct Sprite *sprite) sprite->data[0] = -gBattleAnimArgs[2]; sprite->data[1] = gBattleAnimArgs[4]; - sprite->callback = sub_815A114; + sprite->callback = AnimBlackSmokeStep; } -static void sub_815A114(struct Sprite *sprite) +static void AnimBlackSmokeStep(struct Sprite *sprite) { if (sprite->data[1] > 0) { @@ -1208,9 +1208,9 @@ static void sub_815A114(struct Sprite *sprite) } } -void sub_815A160(u8 taskId) +void AnimTask_SmokescreenImpact(u8 taskId) { - sub_807521C( + SmokescreenImpact( GetBattlerSpriteCoord(gBattleAnimTarget, 2) + 8, GetBattlerSpriteCoord(gBattleAnimTarget, 3) + 8, 0); @@ -1222,22 +1222,22 @@ void AnimWhiteHalo(struct Sprite *sprite) sprite->data[0] = 90; sprite->callback = WaitAnimForDuration; sprite->data[1] = 7; - StoreSpriteCallbackInData6(sprite, sub_815A1F4); + StoreSpriteCallbackInData6(sprite, AnimWhiteHalo_Step1); SetGpuReg(REG_OFFSET_BLDCNT, BLDCNT_TGT2_ALL | BLDCNT_EFFECT_BLEND); SetGpuReg(REG_OFFSET_BLDALPHA, BLDALPHA_BLEND(sprite->data[1], 16 - sprite->data[1])); } -static void sub_815A1F4(struct Sprite *sprite) +static void AnimWhiteHalo_Step1(struct Sprite *sprite) { SetGpuReg(REG_OFFSET_BLDALPHA, BLDALPHA_BLEND(sprite->data[1], 16 - sprite->data[1])); if (--sprite->data[1] < 0) { sprite->invisible = 1; - sprite->callback = sub_815A234; + sprite->callback = AnimWhiteHalo_Step2; } } -static void sub_815A234(struct Sprite *sprite) +static void AnimWhiteHalo_Step2(struct Sprite *sprite) { SetGpuReg(REG_OFFSET_BLDCNT, 0); SetGpuReg(REG_OFFSET_BLDALPHA, 0); @@ -1271,10 +1271,10 @@ void AnimMeanLookEye(struct Sprite *sprite) SetGpuReg(REG_OFFSET_BLDCNT, BLDCNT_TGT2_ALL | BLDCNT_EFFECT_BLEND); SetGpuReg(REG_OFFSET_BLDALPHA, BLDALPHA_BLEND(0, 16)); sprite->data[0] = 4; - sprite->callback = sub_815A31C; + sprite->callback = AnimMeanLookEye_Step1; } -static void sub_815A31C(struct Sprite *sprite) +static void AnimMeanLookEye_Step1(struct Sprite *sprite) { SetGpuReg(REG_OFFSET_BLDALPHA, BLDALPHA_BLEND(sprite->data[0], 16 - sprite->data[0])); @@ -1294,22 +1294,22 @@ static void sub_815A31C(struct Sprite *sprite) sprite->data[2] = 0; sprite->invisible = 1; sprite->affineAnimPaused = 1; - sprite->callback = sub_815A3AC; + sprite->callback = AnimMeanLookEye_Step2; } } -static void sub_815A3AC(struct Sprite *sprite) +static void AnimMeanLookEye_Step2(struct Sprite *sprite) { if (sprite->data[2]++ > 9) { sprite->invisible = 0; sprite->affineAnimPaused = 0; if (sprite->affineAnimEnded) - sprite->callback = sub_815A3F0; + sprite->callback = AnimMeanLookEye_Step3; } } -static void sub_815A3F0(struct Sprite *sprite) +static void AnimMeanLookEye_Step3(struct Sprite *sprite) { switch (sprite->data[3]) { @@ -1344,11 +1344,11 @@ static void sub_815A3F0(struct Sprite *sprite) sprite->data[1] = 0; SetGpuReg(REG_OFFSET_BLDCNT, BLDCNT_TGT2_ALL | BLDCNT_EFFECT_BLEND); SetGpuReg(REG_OFFSET_BLDALPHA, BLDALPHA_BLEND(sprite->data[0], 0)); - sprite->callback = sub_815A49C; + sprite->callback = AnimMeanLookEye_Step4; } } -static void sub_815A49C(struct Sprite *sprite) +static void AnimMeanLookEye_Step4(struct Sprite *sprite) { SetGpuReg(REG_OFFSET_BLDALPHA, BLDALPHA_BLEND(sprite->data[0], 16 - sprite->data[0])); @@ -1369,17 +1369,17 @@ static void sub_815A49C(struct Sprite *sprite) } } -void sub_815A504(u8 taskId) +void AnimTask_SetPsychicBackground(u8 taskId) { - gTasks[taskId].func = sub_815A52C; + gTasks[taskId].func = SetPsychicBackground_Step; gAnimVisualTaskCount--; } -static void sub_815A52C(u8 taskId) +static void SetPsychicBackground_Step(u8 taskId) { int i; u16 lastColor; - u8 paletteIndex = sub_80A6D94(); + u8 paletteIndex = GetPaletteOffset(); if (++gTasks[taskId].data[5] == 4) { @@ -1395,17 +1395,17 @@ static void sub_815A52C(u8 taskId) DestroyTask(taskId); } -void sub_815A5C8(u8 taskId) +void AnimTask_FadeScreenToWhite(u8 taskId) { - gTasks[taskId].func = sub_815A5F0; + gTasks[taskId].func = FadeScreenToWhite_Step; gAnimVisualTaskCount--; } -static void sub_815A5F0(u8 taskId) +static void FadeScreenToWhite_Step(u8 taskId) { int i; u16 lastColor; - u8 paletteIndex = sub_80A6D94(); + u8 paletteIndex = GetPaletteOffset(); if (++gTasks[taskId].data[5] == 4) { @@ -1443,21 +1443,21 @@ void AnimSpikes(struct Sprite *sprite) sprite->data[5] = -50; InitAnimArcTranslation(sprite); - sprite->callback = sub_815A73C; + sprite->callback = AnimSpikes_Step1; } -static void sub_815A73C(struct Sprite *sprite) +static void AnimSpikes_Step1(struct Sprite *sprite) { if (TranslateAnimHorizontalArc(sprite)) { sprite->data[0] = 30; sprite->data[1] = 0; sprite->callback = WaitAnimForDuration; - StoreSpriteCallbackInData6(sprite, sub_815A76C); + StoreSpriteCallbackInData6(sprite, AnimSpikes_Step2); } } -static void sub_815A76C(struct Sprite *sprite) +static void AnimSpikes_Step2(struct Sprite *sprite) { if (sprite->data[1] & 1) sprite->invisible ^= 1; @@ -1475,7 +1475,7 @@ void AnimLeer(struct Sprite *sprite) StoreSpriteCallbackInData6(sprite, DestroyAnimSprite); } -void sub_815A7EC(struct Sprite *sprite) +void AnimLetterZ(struct Sprite *sprite) { int var0; if (sprite->data[0] == 0) @@ -1552,10 +1552,10 @@ void AnimSpotlight(struct Sprite *sprite) sprite->oam.objMode = ST_OAM_OBJ_WINDOW; sprite->invisible = 1; - sprite->callback = sub_815A9A0; + sprite->callback = AnimSpotlight_Step1; } -static void sub_815A9A0(struct Sprite *sprite) +static void AnimSpotlight_Step1(struct Sprite *sprite) { switch (sprite->data[0]) { @@ -1591,13 +1591,13 @@ static void sub_815A9A0(struct Sprite *sprite) if (sprite->affineAnimEnded) { sprite->invisible = 1; - sprite->callback = sub_815AA6C; + sprite->callback = AnimSpotlight_Step2; } break; } } -static void sub_815AA6C(struct Sprite *sprite) +static void AnimSpotlight_Step2(struct Sprite *sprite) { SetGpuReg(REG_OFFSET_WINOUT, WINOUT_WIN01_BG_ALL | WINOUT_WIN01_OBJ | WINOUT_WIN01_CLR | WINOUT_WINOBJ_BG_ALL | WINOUT_WINOBJ_OBJ | WINOUT_WINOBJ_CLR); SetGpuReg(REG_OFFSET_DISPCNT, GetGpuReg(REG_OFFSET_DISPCNT) ^ DISPCNT_OBJWIN_ON); @@ -1633,10 +1633,10 @@ void AnimClappingHand(struct Sprite *sprite) if (sprite->data[3] != 255) sprite->data[3] = gBattleAnimArgs[2]; - sprite->callback = sub_815AB5C; + sprite->callback = AnimClappingHand_Step; } -static void sub_815AB5C(struct Sprite *sprite) +static void AnimClappingHand_Step(struct Sprite *sprite) { if (sprite->data[2] == 0) { @@ -1672,7 +1672,7 @@ void AnimClappingHand2(struct Sprite *sprite) AnimClappingHand(sprite); } -void sub_815ABEC(u8 taskId) +void AnimTask_CreateSpotlight(u8 taskId) { if (IsContest()) { @@ -1695,7 +1695,7 @@ void sub_815ABEC(u8 taskId) DestroyAnimVisualTask(taskId); } -void sub_815AC8C(u8 taskId) +void AnimTask_RemoveSpotlight(u8 taskId) { SetGpuReg(REG_OFFSET_WININ, WININ_WIN0_BG_ALL | WININ_WIN0_OBJ | WININ_WIN0_CLR | WININ_WIN1_BG_ALL | WININ_WIN1_OBJ | WININ_WIN1_CLR); gBattle_WIN1H = 0; @@ -1726,10 +1726,10 @@ void AnimRapidSpin(struct Sprite *sprite) sprite->data[2] = gBattleAnimArgs[4]; sprite->data[3] = gBattleAnimArgs[5]; sprite->data[4] = gBattleAnimArgs[3]; - sprite->callback = sub_815AD4C; + sprite->callback = AnimRapidSpin_Step; } -static void sub_815AD4C(struct Sprite *sprite) +static void AnimRapidSpin_Step(struct Sprite *sprite) { sprite->data[1] = (sprite->data[1] + sprite->data[2]) & 0xFF; sprite->pos2.x = gSineTable[sprite->data[1]] >> 4; @@ -1747,7 +1747,7 @@ static void sub_815AD4C(struct Sprite *sprite) } } -void sub_815ADB0(u8 taskId) +void AnimTask_RapinSpinMonElevation(u8 taskId) { s16 var0; u8 toBG2; @@ -1828,10 +1828,10 @@ void sub_815ADB0(u8 taskId) scanlineParams.unused9 = 0; ScanlineEffect_SetParams(scanlineParams); - task->func = sub_815AED8; + task->func = RapinSpinMonElevation_Step; } -static void sub_815AED8(u8 taskId) +static void RapinSpinMonElevation_Step(u8 taskId) { s16 i; struct Task *task = &gTasks[taskId]; @@ -1890,7 +1890,7 @@ static void sub_815AED8(u8 taskId) } } -void sub_815AFF0(u8 taskId) +void AnimTask_TormentAttacker(u8 taskId) { struct Task *task = &gTasks[taskId]; @@ -1902,10 +1902,10 @@ void sub_815AFF0(u8 taskId) task->data[5] = -20; task->data[6] = 0; task->data[15] = GetAnimBattlerSpriteId(ANIM_ATTACKER); - task->func = sub_815B054; + task->func = TormentAttacker_Step; } -static void sub_815B054(u8 taskId) +static void TormentAttacker_Step(u8 taskId) { int var0, var1; s16 x, y; @@ -1987,7 +1987,7 @@ static void sub_815B054(u8 taskId) gSprites[i].data[0] = taskId; gSprites[i].data[1] = 6; StartSpriteAnim(&gSprites[i], 2); - gSprites[i].callback = sub_815B23C; + gSprites[i].callback = TormentAttacker_Callback; if (++j == 6) break; @@ -2004,7 +2004,7 @@ static void sub_815B054(u8 taskId) } } -static void sub_815B23C(struct Sprite *sprite) +static void TormentAttacker_Callback(struct Sprite *sprite) { if (sprite->animEnded) { @@ -2013,7 +2013,7 @@ static void sub_815B23C(struct Sprite *sprite) } } -void sub_815B27C(struct Sprite *sprite) +void AnimTriForceTriangle(struct Sprite *sprite) { if (sprite->data[0] == 0) InitSpritePosToAnimAttacker(sprite, FALSE); @@ -2110,10 +2110,10 @@ void AnimWishStar(struct Sprite *sprite) sprite->pos1.x = 256; sprite->pos1.y = 0; - sprite->callback = sub_815B4D4; + sprite->callback = AnimWishStar_Step; } -static void sub_815B4D4(struct Sprite *sprite) +static void AnimWishStar_Step(struct Sprite *sprite) { u32 newX; @@ -2156,10 +2156,10 @@ void AnimMiniTwinklingStar(struct Sprite *sprite) y = -y; sprite->pos2.y = y; - sprite->callback = sub_815B5D0; + sprite->callback = AnimMiniTwinklingStar_Step; } -static void sub_815B5D0(struct Sprite *sprite) +static void AnimMiniTwinklingStar_Step(struct Sprite *sprite) { if (++sprite->data[0] < 30) { @@ -2248,7 +2248,7 @@ void AnimTask_SwallowDeformMon(u8 taskId) } } -void sub_815B7D0(u8 taskId) +void AnimTask_TransformMon(u8 taskId) { int i, j; u8 position; @@ -2361,13 +2361,13 @@ void sub_815B7D0(u8 taskId) } } -void sub_815BB18(u8 taskId) +void AnimTask_IsMonInvisible(u8 taskId) { gBattleAnimArgs[7] = gSprites[gBattlerSpriteIds[gBattleAnimAttacker]].invisible; DestroyAnimVisualTask(taskId); } -void sub_815BB58(u8 taskId) +void AnimTask_CastformGfxChange(u8 taskId) { HandleSpeciesGfxDataChange(gBattleAnimAttacker, gBattleAnimTarget, TRUE); DestroyAnimVisualTask(taskId); @@ -3808,7 +3808,7 @@ static void CreateSweatDroplets(u8 taskId, bool8 arg1) for (i = 0; i < 4; i++) { - u8 spriteId = CreateSprite(&gFacadeSweatDrop, xCoords[i], yCoords[i & 1], task->data[6] - 5); + u8 spriteId = CreateSprite(&gFacadeSweatDropSpriteTemplate, xCoords[i], yCoords[i & 1], task->data[6] - 5); if (spriteId != MAX_SPRITES) { gSprites[spriteId].data[0] = 0; @@ -3821,7 +3821,7 @@ static void CreateSweatDroplets(u8 taskId, bool8 arg1) } } -void sub_815DEBC(struct Sprite *sprite) +void AnimFacadeSweatDrop(struct Sprite *sprite) { sprite->pos1.x += sprite->data[1]; sprite->pos1.y += sprite->data[2]; @@ -4175,10 +4175,10 @@ void AnimSmellingSaltsHand(struct Sprite *sprite) sprite->pos1.x = GetBattlerSpriteCoordAttr(battler, BATTLER_COORD_ATTR_RIGHT) + 8; } - sprite->callback = sub_815E784; + sprite->callback = AnimSmellingSaltsHand_Step; } -static void sub_815E784(struct Sprite *sprite) +static void AnimSmellingSaltsHand_Step(struct Sprite *sprite) { switch (sprite->data[0]) { diff --git a/src/battle_anim_mons.c b/src/battle_anim_mons.c index ea5184c53..0eaa4b01d 100644 --- a/src/battle_anim_mons.c +++ b/src/battle_anim_mons.c @@ -966,7 +966,7 @@ void sub_80A6D60(struct BattleAnimBgData *unk, const void *src, u32 arg2) CopyBgTilemapBufferToVram(unk->bgId); } -u8 sub_80A6D94(void) +u8 GetPaletteOffset(void) { if (IsContest()) return 1; @@ -1353,7 +1353,7 @@ u32 sub_80A75AC(u8 battleBackground, u8 attacker, u8 target, u8 attackerPartner, if (!IsContest()) selectedPalettes = 0xe; else - selectedPalettes = 1 << sub_80A6D94(); + selectedPalettes = 1 << GetPaletteOffset(); } if (attacker) { diff --git a/src/smokescreen.c b/src/smokescreen.c index 61e011451..1ee0c658c 100644 --- a/src/smokescreen.c +++ b/src/smokescreen.c @@ -4,46 +4,46 @@ #include "sprite.h" #include "util.h" -static void sub_8075370(struct Sprite *); +static void SmokescreenImpact_Callback(struct Sprite *); -extern const struct CompressedSpriteSheet gUnknown_0831C620; -extern const struct CompressedSpritePalette gUnknown_0831C628; -extern const struct SpriteTemplate gUnknown_0831C688; +extern const struct CompressedSpriteSheet gSmokescreenImpactSpriteSheet; +extern const struct CompressedSpritePalette gSmokescreenlImpactSpritePalette; +extern const struct SpriteTemplate gSmokescreenImpactSpriteTemplate; -u8 sub_807521C(s16 x, s16 y, u8 a3) +u8 SmokescreenImpact(s16 x, s16 y, u8 a3) { u8 mainSpriteId; u8 spriteId1, spriteId2, spriteId3, spriteId4; struct Sprite *mainSprite; - if (GetSpriteTileStartByTag(gUnknown_0831C620.tag) == 0xFFFF) + if (GetSpriteTileStartByTag(gSmokescreenImpactSpriteSheet.tag) == 0xFFFF) { - LoadCompressedSpriteSheetUsingHeap(&gUnknown_0831C620); - LoadCompressedSpritePaletteUsingHeap(&gUnknown_0831C628); + LoadCompressedSpriteSheetUsingHeap(&gSmokescreenImpactSpriteSheet); + LoadCompressedSpritePaletteUsingHeap(&gSmokescreenlImpactSpritePalette); } - mainSpriteId = CreateInvisibleSpriteWithCallback(sub_8075370); + mainSpriteId = CreateInvisibleSpriteWithCallback(SmokescreenImpact_Callback); mainSprite = &gSprites[mainSpriteId]; mainSprite->data[1] = a3; - spriteId1 = CreateSprite(&gUnknown_0831C688, x - 16, y - 16, 2); + spriteId1 = CreateSprite(&gSmokescreenImpactSpriteTemplate, x - 16, y - 16, 2); gSprites[spriteId1].data[0] = mainSpriteId; mainSprite->data[0]++; AnimateSprite(&gSprites[spriteId1]); - spriteId2 = CreateSprite(&gUnknown_0831C688, x, y - 16, 2); + spriteId2 = CreateSprite(&gSmokescreenImpactSpriteTemplate, x, y - 16, 2); gSprites[spriteId2].data[0] = mainSpriteId; mainSprite->data[0]++; StartSpriteAnim(&gSprites[spriteId2], 1); AnimateSprite(&gSprites[spriteId2]); - spriteId3 = CreateSprite(&gUnknown_0831C688, x - 16, y, 2); + spriteId3 = CreateSprite(&gSmokescreenImpactSpriteTemplate, x - 16, y, 2); gSprites[spriteId3].data[0] = mainSpriteId; mainSprite->data[0]++; StartSpriteAnim(&gSprites[spriteId3], 2); AnimateSprite(&gSprites[spriteId3]); - spriteId4 = CreateSprite(&gUnknown_0831C688, x, y, 2); + spriteId4 = CreateSprite(&gSmokescreenImpactSpriteTemplate, x, y, 2); gSprites[spriteId4].data[0] = mainSpriteId; mainSprite->data[0]++; StartSpriteAnim(&gSprites[spriteId4], 3); @@ -52,12 +52,12 @@ u8 sub_807521C(s16 x, s16 y, u8 a3) return mainSpriteId; } -static void sub_8075370(struct Sprite *sprite) +static void SmokescreenImpact_Callback(struct Sprite *sprite) { if (!sprite->data[0]) { - FreeSpriteTilesByTag(gUnknown_0831C620.tag); - FreeSpritePaletteByTag(gUnknown_0831C628.tag); + FreeSpriteTilesByTag(gSmokescreenImpactSpriteSheet.tag); + FreeSpritePaletteByTag(gSmokescreenlImpactSpritePalette.tag); if (!sprite->data[1]) DestroySprite(sprite); else @@ -65,7 +65,7 @@ static void sub_8075370(struct Sprite *sprite) } } -void sub_80753B4(struct Sprite *sprite) +void SpriteCB_DestroySprite(struct Sprite *sprite) { if (sprite->animEnded) { -- cgit v1.2.3 From 2bf1e0600ee341970c4731640a351ded047a55c5 Mon Sep 17 00:00:00 2001 From: GriffinR Date: Sat, 23 Nov 2019 08:09:25 -0500 Subject: Consolidate apprentice_buff macros --- asm/macros/battle_frontier.inc | 11 ++++------- data/scripts/apprentice.inc | 4 ++-- 2 files changed, 6 insertions(+), 9 deletions(-) diff --git a/asm/macros/battle_frontier.inc b/asm/macros/battle_frontier.inc index 337238cd3..2a6ee7d74 100644 --- a/asm/macros/battle_frontier.inc +++ b/asm/macros/battle_frontier.inc @@ -118,14 +118,11 @@ special CallApprenticeFunction .macro apprentice_buff whichstringvar:req, tobuff:req setvar VAR_0x8004, APPRENTICE_FUNC_BUFFER_STRING setvar VAR_0x8005, \whichstringvar -setvar VAR_0x8006, \tobuff -special CallApprenticeFunction -.endm - -.macro apprentice_buffv whichstringvar:req tobuff:req -setvar VAR_0x8004, APPRENTICE_FUNC_BUFFER_STRING -setvar VAR_0x8005, \whichstringvar +.if \tobuff >= VARS_START copyvar VAR_0x8006, \tobuff +.else +setvar VAR_0x8006, \tobuff +.endif special CallApprenticeFunction .endm diff --git a/data/scripts/apprentice.inc b/data/scripts/apprentice.inc index 30001af2d..53b43a1f9 100644 --- a/data/scripts/apprentice.inc +++ b/data/scripts/apprentice.inc @@ -67,7 +67,7 @@ Apprentice_EventScript_UseWhichMon: @ 82B69D3 apprentice_getnumpartymons compare VAR_RESULT, MULTI_PARTY_SIZE call_if_eq Apprentice_EventScript_LastMonSelected - apprentice_buffv 0, VAR_0x8007 + apprentice_buff 0, VAR_0x8007 apprentice_freequestion apprentice_msg TRUE, APPRENTICE_MSG_THANKS_MON call Apprentice_EventScript_SetHideFlags @@ -162,7 +162,7 @@ Apprentice_EventScript_UseWhichMove: @ 82B6C77 call_if_eq Apprentice_EventScript_ChoseMove2 apprentice_setmove apprentice_answeredquestion - apprentice_buffv 0, VAR_0x8007 + apprentice_buff 0, VAR_0x8007 apprentice_freequestion apprentice_msg TRUE, APPRENTICE_MSG_THANKS_MOVE call Apprentice_EventScript_SetHideFlags -- cgit v1.2.3 From e3f7f47321bbe399dfcfc422d53d9beb5caab788 Mon Sep 17 00:00:00 2001 From: Thomas Winwood Date: Wed, 20 Nov 2019 16:37:14 +0000 Subject: Turn some magic numbers into named constants --- src/battle_script_commands.c | 4 ++-- src/field_control_avatar.c | 7 ++++--- src/pokemon.c | 2 +- 3 files changed, 7 insertions(+), 6 deletions(-) diff --git a/src/battle_script_commands.c b/src/battle_script_commands.c index 33c5f661b..eab7b7d04 100644 --- a/src/battle_script_commands.c +++ b/src/battle_script_commands.c @@ -4555,7 +4555,7 @@ static void Cmd_moveend(void) case MOVEEND_CHOICE_MOVE: // update choice band move if (gHitMarker & HITMARKER_OBEYS && holdEffectAtk == HOLD_EFFECT_CHOICE_BAND - && gChosenMove != MOVE_STRUGGLE + && gChosenMove != MOVE_STRUGGLE && (*choicedMoveAtk == 0 || *choicedMoveAtk == 0xFFFF)) { if (gChosenMove == MOVE_BATON_PASS && !(gMoveResultFlags & MOVE_RESULT_FAILED)) @@ -7826,7 +7826,7 @@ static void Cmd_weatherdamage(void) gBattleMoveDamage = 0; } } - if (gBattleWeather & WEATHER_HAIL) + if (gBattleWeather & WEATHER_HAIL_ANY) { if (!IS_BATTLER_OF_TYPE(gBattlerAttacker, TYPE_ICE) && !(gStatuses3[gBattlerAttacker] & STATUS3_UNDERGROUND) diff --git a/src/field_control_avatar.c b/src/field_control_avatar.c index 41b7a4dbf..8b4c7380c 100644 --- a/src/field_control_avatar.c +++ b/src/field_control_avatar.c @@ -30,6 +30,7 @@ #include "wild_encounter.h" #include "constants/bg_event_constants.h" #include "constants/event_objects.h" +#include "constants/field_poison.h" #include "constants/map_types.h" #include "constants/maps.h" #include "constants/songs.h" @@ -647,11 +648,11 @@ static bool8 UpdatePoisonStepCounter(void) { switch (DoPoisonFieldEffect()) { - case 0: + case FLDPSN_NONE: return FALSE; - case 1: + case FLDPSN_PSN: return FALSE; - case 2: + case FLDPSN_FNT: return TRUE; } } diff --git a/src/pokemon.c b/src/pokemon.c index a30e20ea2..eba5a2ce2 100644 --- a/src/pokemon.c +++ b/src/pokemon.c @@ -3271,7 +3271,7 @@ s32 CalculateBaseDamage(struct BattlePokemon *attacker, struct BattlePokemon *de } // any weather except sun weakens solar beam - if ((gBattleWeather & (WEATHER_RAIN_ANY | WEATHER_SANDSTORM_ANY | WEATHER_HAIL)) && gCurrentMove == MOVE_SOLAR_BEAM) + if ((gBattleWeather & (WEATHER_RAIN_ANY | WEATHER_SANDSTORM_ANY | WEATHER_HAIL_ANY)) && gCurrentMove == MOVE_SOLAR_BEAM) damage /= 2; // sunny -- cgit v1.2.3 From 1dfe34dee371d3b64b41de2ce3634ecc78bc7ee5 Mon Sep 17 00:00:00 2001 From: Sewef Date: Sat, 23 Nov 2019 15:51:08 +0100 Subject: =?UTF-8?q?TriForce=20=E2=86=92=20TriAttack?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- data/battle_anim_scripts.s | 4 +-- .../battle_anims/sprites/tri_attack_triangle.png | Bin 0 -> 481 bytes .../battle_anims/sprites/tri_force_triangle.png | Bin 481 -> 0 bytes include/constants/battle_anim.h | 2 +- include/graphics.h | 4 +-- src/battle_anim.c | 4 +-- src/battle_anim_effects_3.c | 28 ++++++++++----------- src/graphics.c | 4 +-- 8 files changed, 23 insertions(+), 23 deletions(-) create mode 100644 graphics/battle_anims/sprites/tri_attack_triangle.png delete mode 100644 graphics/battle_anims/sprites/tri_force_triangle.png diff --git a/data/battle_anim_scripts.s b/data/battle_anim_scripts.s index 43c9cdaf7..fd1ded459 100644 --- a/data/battle_anim_scripts.s +++ b/data/battle_anim_scripts.s @@ -8013,8 +8013,8 @@ HyperFangInContest: goto HyperFangContinue Move_TRI_ATTACK: - loadspritegfx ANIM_TAG_TRI_FORCE_TRIANGLE - createsprite gTriForceTriangleSpriteTemplate, ANIM_TARGET, 2, 16, 0 + loadspritegfx ANIM_TAG_TRI_ATTACK_TRIANGLE + createsprite gTriAttackTriangleSpriteTemplate, ANIM_TARGET, 2, 16, 0 playsewithpan SE_W161, SOUND_PAN_ATTACKER delay 20 playsewithpan SE_W161, SOUND_PAN_ATTACKER diff --git a/graphics/battle_anims/sprites/tri_attack_triangle.png b/graphics/battle_anims/sprites/tri_attack_triangle.png new file mode 100644 index 000000000..9157118fd Binary files /dev/null and b/graphics/battle_anims/sprites/tri_attack_triangle.png differ diff --git a/graphics/battle_anims/sprites/tri_force_triangle.png b/graphics/battle_anims/sprites/tri_force_triangle.png deleted file mode 100644 index 9157118fd..000000000 Binary files a/graphics/battle_anims/sprites/tri_force_triangle.png and /dev/null differ diff --git a/include/constants/battle_anim.h b/include/constants/battle_anim.h index 0a023f0c2..5a62f65ae 100644 --- a/include/constants/battle_anim.h +++ b/include/constants/battle_anim.h @@ -237,7 +237,7 @@ #define ANIM_TAG_SPOTLIGHT (ANIM_SPRITES_START + 227) #define ANIM_TAG_LETTER_Z (ANIM_SPRITES_START + 228) #define ANIM_TAG_RAPID_SPIN (ANIM_SPRITES_START + 229) -#define ANIM_TAG_TRI_FORCE_TRIANGLE (ANIM_SPRITES_START + 230) +#define ANIM_TAG_TRI_ATTACK_TRIANGLE (ANIM_SPRITES_START + 230) #define ANIM_TAG_WISP_ORB (ANIM_SPRITES_START + 231) #define ANIM_TAG_WISP_FIRE (ANIM_SPRITES_START + 232) #define ANIM_TAG_GOLD_STARS (ANIM_SPRITES_START + 233) diff --git a/include/graphics.h b/include/graphics.h index a08d3760f..7fba3ed80 100644 --- a/include/graphics.h +++ b/include/graphics.h @@ -4363,7 +4363,7 @@ extern const u32 gBattleAnimSpriteGfx_Pokeball[]; extern const u32 gBattleAnimSpriteGfx_Spotlight[]; extern const u32 gBattleAnimSpriteGfx_LetterZ[]; extern const u32 gBattleAnimSpriteGfx_RapidSpin[]; -extern const u32 gBattleAnimSpriteGfx_TriForceTriangle[]; +extern const u32 gBattleAnimSpriteGfx_TriAttackTriangle[]; extern const u32 gBattleAnimSpriteGfx_WispOrb[]; extern const u32 gBattleAnimSpriteGfx_WispFire[]; extern const u32 gBattleAnimSpriteGfx_GoldStars[]; @@ -4646,7 +4646,7 @@ extern const u32 gBattleAnimSpritePal_JaggedMusicNote[]; extern const u32 gBattleAnimSpritePal_Pokeball[]; extern const u32 gBattleAnimSpritePal_LetterZ[]; extern const u32 gBattleAnimSpritePal_RapidSpin[]; -extern const u32 gBattleAnimSpritePal_TriForceTriangle[]; +extern const u32 gBattleAnimSpritePal_TriAttackTriangle[]; extern const u32 gBattleAnimSpritePal_WispOrb[]; extern const u32 gBattleAnimSpritePal_GoldStars[]; extern const u32 gBattleAnimSpritePal_EclipsingOrb[]; diff --git a/src/battle_anim.c b/src/battle_anim.c index 0b31a8f2e..5cba4a6e4 100644 --- a/src/battle_anim.c +++ b/src/battle_anim.c @@ -1355,7 +1355,7 @@ const struct CompressedSpriteSheet gBattleAnimPicTable[] = {gBattleAnimSpriteGfx_Spotlight, 0x0800, ANIM_TAG_SPOTLIGHT}, {gBattleAnimSpriteGfx_LetterZ, 0x0200, ANIM_TAG_LETTER_Z}, {gBattleAnimSpriteGfx_RapidSpin, 0x0300, ANIM_TAG_RAPID_SPIN}, - {gBattleAnimSpriteGfx_TriForceTriangle, 0x0800, ANIM_TAG_TRI_FORCE_TRIANGLE}, + {gBattleAnimSpriteGfx_TriAttackTriangle, 0x0800, ANIM_TAG_TRI_ATTACK_TRIANGLE}, {gBattleAnimSpriteGfx_WispOrb, 0x0380, ANIM_TAG_WISP_ORB}, {gBattleAnimSpriteGfx_WispFire, 0x0800, ANIM_TAG_WISP_FIRE}, {gBattleAnimSpriteGfx_GoldStars, 0x00c0, ANIM_TAG_GOLD_STARS}, @@ -1648,7 +1648,7 @@ const struct CompressedSpritePalette gBattleAnimPaletteTable[] = {gBattleAnimSpritePal_Pokeball, ANIM_TAG_SPOTLIGHT}, {gBattleAnimSpritePal_LetterZ, ANIM_TAG_LETTER_Z}, {gBattleAnimSpritePal_RapidSpin, ANIM_TAG_RAPID_SPIN}, - {gBattleAnimSpritePal_TriForceTriangle, ANIM_TAG_TRI_FORCE_TRIANGLE}, + {gBattleAnimSpritePal_TriAttackTriangle, ANIM_TAG_TRI_ATTACK_TRIANGLE}, {gBattleAnimSpritePal_WispOrb, ANIM_TAG_WISP_ORB}, {gBattleAnimSpritePal_WispOrb, ANIM_TAG_WISP_FIRE}, {gBattleAnimSpritePal_GoldStars, ANIM_TAG_GOLD_STARS}, diff --git a/src/battle_anim_effects_3.c b/src/battle_anim_effects_3.c index 02df544e0..b55a4c3ed 100755 --- a/src/battle_anim_effects_3.c +++ b/src/battle_anim_effects_3.c @@ -38,7 +38,7 @@ void AnimSpotlight(struct Sprite *); void AnimClappingHand(struct Sprite *); void AnimClappingHand2(struct Sprite *); void AnimRapidSpin(struct Sprite *); -void AnimTriForceTriangle(struct Sprite *); +void AnimTriAttackTriangle(struct Sprite *); void AnimBatonPassPokeball(struct Sprite *); void AnimWishStar(struct Sprite *); void AnimMiniTwinklingStar(struct Sprite *); @@ -440,18 +440,18 @@ const union AffineAnimCmd gUnknown_085CE2A0[] = AFFINEANIMCMD_END, }; -const union AnimCmd gTriForceTriangleAnimCmds[] = +const union AnimCmd gTriAttackTriangleAnimCmds[] = { ANIMCMD_FRAME(0, 8), ANIMCMD_END, }; -const union AnimCmd *const gTriForceTriangleAnimTable[] = +const union AnimCmd *const gTriAttackTriangleAnimTable[] = { - gTriForceTriangleAnimCmds, + gTriAttackTriangleAnimCmds, }; -const union AffineAnimCmd gTriForceTriangleAffineAnimCmds[] = +const union AffineAnimCmd gTriAttackTriangleAffineAnimCmds[] = { AFFINEANIMCMD_FRAME(0, 0, 5, 40), AFFINEANIMCMD_FRAME(0, 0, 10, 10), @@ -460,20 +460,20 @@ const union AffineAnimCmd gTriForceTriangleAffineAnimCmds[] = AFFINEANIMCMD_JUMP(0), }; -const union AffineAnimCmd *const gTriForceTriangleAffineAnimTable[] = +const union AffineAnimCmd *const gTriAttackTriangleAffineAnimTable[] = { - gTriForceTriangleAffineAnimCmds, + gTriAttackTriangleAffineAnimCmds, }; -const struct SpriteTemplate gTriForceTriangleSpriteTemplate = +const struct SpriteTemplate gTriAttackTriangleSpriteTemplate = { - .tileTag = ANIM_TAG_TRI_FORCE_TRIANGLE, - .paletteTag = ANIM_TAG_TRI_FORCE_TRIANGLE, + .tileTag = ANIM_TAG_TRI_ATTACK_TRIANGLE, + .paletteTag = ANIM_TAG_TRI_ATTACK_TRIANGLE, .oam = &gOamData_AffineDouble_ObjNormal_64x64, - .anims = gTriForceTriangleAnimTable, + .anims = gTriAttackTriangleAnimTable, .images = NULL, - .affineAnims = gTriForceTriangleAffineAnimTable, - .callback = AnimTriForceTriangle, + .affineAnims = gTriAttackTriangleAffineAnimTable, + .callback = AnimTriAttackTriangle, }; const union AnimCmd gEclipsingOrbAnimCmds[] = @@ -2013,7 +2013,7 @@ static void TormentAttacker_Callback(struct Sprite *sprite) } } -void AnimTriForceTriangle(struct Sprite *sprite) +void AnimTriAttackTriangle(struct Sprite *sprite) { if (sprite->data[0] == 0) InitSpritePosToAnimAttacker(sprite, FALSE); diff --git a/src/graphics.c b/src/graphics.c index 5f27cdea4..22478a7b6 100644 --- a/src/graphics.c +++ b/src/graphics.c @@ -777,8 +777,8 @@ const u32 gBattleAnimSpriteGfx_Roots[] = INCBIN_U32("graphics/battle_anims/sprit const u32 gBattleAnimSpritePal_ItemBag[] = INCBIN_U32("graphics/battle_anims/sprites/item_bag.gbapal.lz"); const u32 gBattleAnimSpriteGfx_ItemBag[] = INCBIN_U32("graphics/battle_anims/sprites/item_bag.4bpp.lz"); -const u32 gBattleAnimSpritePal_TriForceTriangle[] = INCBIN_U32("graphics/battle_anims/sprites/tri_force_triangle.gbapal.lz"); -const u32 gBattleAnimSpriteGfx_TriForceTriangle[] = INCBIN_U32("graphics/battle_anims/sprites/tri_force_triangle.4bpp.lz"); +const u32 gBattleAnimSpritePal_TriAttackTriangle[] = INCBIN_U32("graphics/battle_anims/sprites/tri_attack_triangle.gbapal.lz"); +const u32 gBattleAnimSpriteGfx_TriAttackTriangle[] = INCBIN_U32("graphics/battle_anims/sprites/tri_attack_triangle.4bpp.lz"); const u32 gBattleAnimSpritePal_LetterZ[] = INCBIN_U32("graphics/battle_anims/sprites/letter_z.gbapal.lz"); const u32 gBattleAnimSpriteGfx_LetterZ[] = INCBIN_U32("graphics/battle_anims/sprites/letter_z.4bpp.lz"); -- cgit v1.2.3 From f039e897ca8229e6e9b104408bf48c2d4e0dcb4b Mon Sep 17 00:00:00 2001 From: GriffinR Date: Sat, 23 Nov 2019 10:11:05 -0500 Subject: Use APPRENTICE_COUNT for record_mixing mod --- src/record_mixing.c | 10 +++++----- 1 file changed, 5 insertions(+), 5 deletions(-) diff --git a/src/record_mixing.c b/src/record_mixing.c index 0a3b22a28..4ad47cc21 100644 --- a/src/record_mixing.c +++ b/src/record_mixing.c @@ -1035,7 +1035,7 @@ static void GetSavedApprentices(struct Apprentice *dst, struct Apprentice *src) numMixApprentices = 0; for (i = 0; i < 2; i++) { - id = ((i + gSaveBlock2Ptr->playerApprentice.saveId) % 3) + 1; + id = ((i + gSaveBlock2Ptr->playerApprentice.saveId) % (APPRENTICE_COUNT - 1)) + 1; if (src[id].playerName[0] != EOS) { if (GetTrainerId(src[id].playerId) != GetTrainerId(gSaveBlock2Ptr->playerTrainerId)) @@ -1070,7 +1070,7 @@ static void GetSavedApprentices(struct Apprentice *dst, struct Apprentice *src) } else { - dst[1] = src[((gSaveBlock2Ptr->playerApprentice.saveId + 1) % 3 + 1)]; + dst[1] = src[((gSaveBlock2Ptr->playerApprentice.saveId + 1) % (APPRENTICE_COUNT - 1) + 1)]; } break; } @@ -1156,15 +1156,15 @@ static void ReceiveApprenticeData(struct Apprentice *mixApprentice, size_t recor case 1: apprenticeSaveId = gSaveBlock2Ptr->playerApprentice.saveId + 1; gSaveBlock2Ptr->apprentices[apprenticeSaveId] = mixApprenticePtr[apprenticeId]; - gSaveBlock2Ptr->playerApprentice.saveId = (gSaveBlock2Ptr->playerApprentice.saveId + 1) % 3; + gSaveBlock2Ptr->playerApprentice.saveId = (gSaveBlock2Ptr->playerApprentice.saveId + 1) % (APPRENTICE_COUNT - 1); break; case 2: for (i = 0; i < 2; i++) { - apprenticeSaveId = ((i ^ 1) + gSaveBlock2Ptr->playerApprentice.saveId) % 3 + 1; + apprenticeSaveId = ((i ^ 1) + gSaveBlock2Ptr->playerApprentice.saveId) % (APPRENTICE_COUNT - 1) + 1; gSaveBlock2Ptr->apprentices[apprenticeSaveId] = mixApprenticePtr[i]; } - gSaveBlock2Ptr->playerApprentice.saveId = (gSaveBlock2Ptr->playerApprentice.saveId + 2) % 3; + gSaveBlock2Ptr->playerApprentice.saveId = (gSaveBlock2Ptr->playerApprentice.saveId + 2) % (APPRENTICE_COUNT - 1); break; } } -- cgit v1.2.3 From 07b79c3fc3b0a0df1aa329eaed8cd75d3b59af20 Mon Sep 17 00:00:00 2001 From: Sewef Date: Sun, 24 Nov 2019 18:00:51 +0100 Subject: battle_anim_effects_3 (5) --- include/battle_anim.h | 2 +- include/constants/battle_anim.h | 2 +- src/battle_anim.c | 4 ++-- src/battle_anim_effects_3.c | 4 ++-- src/battle_anim_mons.c | 4 ++-- 5 files changed, 8 insertions(+), 8 deletions(-) diff --git a/include/battle_anim.h b/include/battle_anim.h index d9d1d6420..c3019a5cf 100644 --- a/include/battle_anim.h +++ b/include/battle_anim.h @@ -185,7 +185,7 @@ bool8 IsBattlerSpritePresent(u8 battlerId); void sub_80A6C68(u32 arg0); u8 GetAnimBattlerSpriteId(u8 wantedBattler); bool8 IsDoubleBattle(void); -u8 GetPaletteOffset(void); +u8 GetBattleBgPaletteNum(void); u8 GetBattlerSpriteBGPriorityRank(u8 battlerId); void StoreSpriteCallbackInData6(struct Sprite *sprite, void (*spriteCallback)(struct Sprite*)); void SetSpritePrimaryCoordsFromSecondaryCoords(struct Sprite *sprite); diff --git a/include/constants/battle_anim.h b/include/constants/battle_anim.h index 5a62f65ae..0fe231cdc 100644 --- a/include/constants/battle_anim.h +++ b/include/constants/battle_anim.h @@ -237,7 +237,7 @@ #define ANIM_TAG_SPOTLIGHT (ANIM_SPRITES_START + 227) #define ANIM_TAG_LETTER_Z (ANIM_SPRITES_START + 228) #define ANIM_TAG_RAPID_SPIN (ANIM_SPRITES_START + 229) -#define ANIM_TAG_TRI_ATTACK_TRIANGLE (ANIM_SPRITES_START + 230) +#define ANIM_TAG_TRI_ATTACK_TRIANGLE (ANIM_SPRITES_START + 230) #define ANIM_TAG_WISP_ORB (ANIM_SPRITES_START + 231) #define ANIM_TAG_WISP_FIRE (ANIM_SPRITES_START + 232) #define ANIM_TAG_GOLD_STARS (ANIM_SPRITES_START + 233) diff --git a/src/battle_anim.c b/src/battle_anim.c index 5cba4a6e4..becc12d56 100644 --- a/src/battle_anim.c +++ b/src/battle_anim.c @@ -2808,12 +2808,12 @@ static void LoadMoveBg(u16 bgId) void *dmaDest; LZDecompressWram(tilemap, gDecompressionBuffer); - sub_80A4720(GetPaletteOffset(), (void*)(gDecompressionBuffer), 0x100, 0); + sub_80A4720(GetBattleBgPaletteNum(), (void*)(gDecompressionBuffer), 0x100, 0); dmaSrc = gDecompressionBuffer; dmaDest = (void *)(BG_SCREEN_ADDR(26)); DmaCopy32(3, dmaSrc, dmaDest, 0x800); LZDecompressVram(gBattleAnimBackgroundTable[bgId].image, (void *)(BG_SCREEN_ADDR(4))); - LoadCompressedPalette(gBattleAnimBackgroundTable[bgId].palette, GetPaletteOffset() * 16, 32); + LoadCompressedPalette(gBattleAnimBackgroundTable[bgId].palette, GetBattleBgPaletteNum() * 16, 32); } else { diff --git a/src/battle_anim_effects_3.c b/src/battle_anim_effects_3.c index b55a4c3ed..248228847 100755 --- a/src/battle_anim_effects_3.c +++ b/src/battle_anim_effects_3.c @@ -1379,7 +1379,7 @@ static void SetPsychicBackground_Step(u8 taskId) { int i; u16 lastColor; - u8 paletteIndex = GetPaletteOffset(); + u8 paletteIndex = GetBattleBgPaletteNum(); if (++gTasks[taskId].data[5] == 4) { @@ -1405,7 +1405,7 @@ static void FadeScreenToWhite_Step(u8 taskId) { int i; u16 lastColor; - u8 paletteIndex = GetPaletteOffset(); + u8 paletteIndex = GetBattleBgPaletteNum(); if (++gTasks[taskId].data[5] == 4) { diff --git a/src/battle_anim_mons.c b/src/battle_anim_mons.c index 0eaa4b01d..43890f24a 100644 --- a/src/battle_anim_mons.c +++ b/src/battle_anim_mons.c @@ -966,7 +966,7 @@ void sub_80A6D60(struct BattleAnimBgData *unk, const void *src, u32 arg2) CopyBgTilemapBufferToVram(unk->bgId); } -u8 GetPaletteOffset(void) +u8 GetBattleBgPaletteNum(void) { if (IsContest()) return 1; @@ -1353,7 +1353,7 @@ u32 sub_80A75AC(u8 battleBackground, u8 attacker, u8 target, u8 attackerPartner, if (!IsContest()) selectedPalettes = 0xe; else - selectedPalettes = 1 << GetPaletteOffset(); + selectedPalettes = 1 << GetBattleBgPaletteNum(); } if (attacker) { -- cgit v1.2.3 From cfdde42b009a80939297dd441fe39385f54d31f4 Mon Sep 17 00:00:00 2001 From: GriffinR Date: Sun, 24 Nov 2019 19:11:36 -0500 Subject: Name text speed delays --- src/menu.c | 10 ++++++++-- 1 file changed, 8 insertions(+), 2 deletions(-) diff --git a/src/menu.c b/src/menu.c index 056fc6a9d..72844140f 100644 --- a/src/menu.c +++ b/src/menu.c @@ -62,7 +62,13 @@ static EWRAM_DATA u16 gUnknown_0203CDA8 = 0; static EWRAM_DATA void *gUnknown_0203CDAC[0x20] = {NULL}; const u16 gUnknown_0860F074[] = INCBIN_U16("graphics/interface/860F074.gbapal"); -static const u8 gUnknown_0860F094[] = { 8, 4, 1 }; + +static const u8 sTextSpeedFrameDelays[] = +{ + [OPTIONS_TEXT_SPEED_SLOW] = 8, + [OPTIONS_TEXT_SPEED_MID] = 4, + [OPTIONS_TEXT_SPEED_FAST] = 1 +}; static const struct WindowTemplate sStandardTextBox_WindowTemplates[] = { @@ -480,7 +486,7 @@ u8 GetPlayerTextSpeedDelay(void) if (gSaveBlock2Ptr->optionsTextSpeed > OPTIONS_TEXT_SPEED_FAST) gSaveBlock2Ptr->optionsTextSpeed = OPTIONS_TEXT_SPEED_MID; speed = GetPlayerTextSpeed(); - return gUnknown_0860F094[speed]; + return sTextSpeedFrameDelays[speed]; } u8 sub_81979C4(u8 a1) -- cgit v1.2.3 From 4dfa959fa297195a040a8cd0436d561296076f0e Mon Sep 17 00:00:00 2001 From: GriffinR Date: Wed, 20 Nov 2019 21:46:29 -0500 Subject: Begin documenting Battle Pike and Frontier Util --- asm/macros/battle_frontier.inc | 144 +++- data/event_scripts.s | 6 +- .../border.bin | Bin 8 -> 0 bytes .../BattleFrontier_BattlePikeRandomRoom1/map.bin | 1 - .../border.bin | Bin 8 -> 0 bytes .../BattleFrontier_BattlePikeRandomRoom2/map.bin | 1 - .../border.bin | Bin 8 -> 0 bytes .../BattleFrontier_BattlePikeRandomRoom3/map.bin | 1 - .../BattleFrontier_BattlePikeRoomFinal/border.bin | Bin 0 -> 8 bytes .../BattleFrontier_BattlePikeRoomFinal/map.bin | 1 + .../BattleFrontier_BattlePikeRoomNormal/border.bin | Bin 0 -> 8 bytes .../BattleFrontier_BattlePikeRoomNormal/map.bin | 1 + .../border.bin | Bin 0 -> 8 bytes .../BattleFrontier_BattlePikeRoomWildMons/map.bin | 1 + data/layouts/layouts.json | 24 +- .../scripts.inc | 57 +- .../BattleFrontier_BattleArenaLobby/scripts.inc | 27 +- .../scripts.inc | 74 +- .../BattleFrontier_BattleDomeCorridor/scripts.inc | 2 +- .../BattleFrontier_BattleDomeLobby/scripts.inc | 39 +- .../scripts.inc | 26 +- .../scripts.inc | 44 +- .../BattleFrontier_BattleFactoryLobby/scripts.inc | 25 +- .../scripts.inc | 16 +- .../scripts.inc | 57 +- .../scripts.inc | 2 +- .../BattleFrontier_BattlePalaceLobby/scripts.inc | 31 +- .../BattleFrontier_BattlePikeCorridor/scripts.inc | 14 +- .../BattleFrontier_BattlePikeLobby/scripts.inc | 37 +- .../BattleFrontier_BattlePikeRandomRoom1/map.json | 111 --- .../scripts.inc | 895 --------------------- .../BattleFrontier_BattlePikeRandomRoom2/map.json | 34 - .../scripts.inc | 43 - .../BattleFrontier_BattlePikeRandomRoom3/map.json | 84 -- .../scripts.inc | 50 -- .../BattleFrontier_BattlePikeRoomFinal/map.json | 34 + .../BattleFrontier_BattlePikeRoomFinal/scripts.inc | 40 + .../BattleFrontier_BattlePikeRoomNormal/map.json | 111 +++ .../scripts.inc | 884 ++++++++++++++++++++ .../BattleFrontier_BattlePikeRoomWildMons/map.json | 84 ++ .../scripts.inc | 45 ++ .../map.json | 8 +- .../scripts.inc | 193 +++-- .../scripts.inc | 40 +- .../BattleFrontier_BattlePyramidLobby/scripts.inc | 25 +- .../BattleFrontier_BattlePyramidTop/scripts.inc | 46 +- .../scripts.inc | 53 +- .../scripts.inc | 16 +- .../BattleFrontier_BattleTowerLobby/scripts.inc | 57 +- .../scripts.inc | 2 +- .../FallarborTown_BattleTentBattleRoom/scripts.inc | 31 +- .../maps/FallarborTown_BattleTentLobby/scripts.inc | 29 +- data/maps/LilycoveCity_ContestLobby/scripts.inc | 4 +- data/maps/MossdeepCity_SpaceCenter_2F/scripts.inc | 2 +- .../SlateportCity_BattleTentBattleRoom/scripts.inc | 19 +- .../SlateportCity_BattleTentCorridor/scripts.inc | 2 +- .../maps/SlateportCity_BattleTentLobby/scripts.inc | 25 +- .../scripts.inc | 31 +- .../VerdanturfTown_BattleTentLobby/scripts.inc | 29 +- data/maps/map_groups.json | 6 +- data/scripts/battle_pike.inc | 309 +++---- data/scripts/trainer_hill.inc | 4 +- data/text/frontier_brain.inc | 63 +- include/constants/battle_frontier.h | 24 +- include/constants/battle_pike.h | 19 +- include/constants/frontier_util.h | 27 +- include/constants/layouts.h | 6 +- include/constants/map_groups.h | 6 +- include/frontier_util.h | 2 +- include/global.h | 4 +- include/strings.h | 57 +- src/battle_arena.c | 4 +- src/battle_dome.c | 9 +- src/battle_factory.c | 4 +- src/battle_palace.c | 4 +- src/battle_pike.c | 178 ++-- src/battle_pyramid.c | 6 +- src/battle_tent.c | 12 +- src/battle_tower.c | 6 +- src/frontier_pass.c | 6 +- src/frontier_util.c | 354 ++++---- src/wild_encounter.c | 6 +- 82 files changed, 2320 insertions(+), 2454 deletions(-) delete mode 100644 data/layouts/BattleFrontier_BattlePikeRandomRoom1/border.bin delete mode 100644 data/layouts/BattleFrontier_BattlePikeRandomRoom1/map.bin delete mode 100644 data/layouts/BattleFrontier_BattlePikeRandomRoom2/border.bin delete mode 100644 data/layouts/BattleFrontier_BattlePikeRandomRoom2/map.bin delete mode 100644 data/layouts/BattleFrontier_BattlePikeRandomRoom3/border.bin delete mode 100644 data/layouts/BattleFrontier_BattlePikeRandomRoom3/map.bin create mode 100644 data/layouts/BattleFrontier_BattlePikeRoomFinal/border.bin create mode 100644 data/layouts/BattleFrontier_BattlePikeRoomFinal/map.bin create mode 100644 data/layouts/BattleFrontier_BattlePikeRoomNormal/border.bin create mode 100644 data/layouts/BattleFrontier_BattlePikeRoomNormal/map.bin create mode 100644 data/layouts/BattleFrontier_BattlePikeRoomWildMons/border.bin create mode 100644 data/layouts/BattleFrontier_BattlePikeRoomWildMons/map.bin delete mode 100644 data/maps/BattleFrontier_BattlePikeRandomRoom1/map.json delete mode 100644 data/maps/BattleFrontier_BattlePikeRandomRoom1/scripts.inc delete mode 100644 data/maps/BattleFrontier_BattlePikeRandomRoom2/map.json delete mode 100644 data/maps/BattleFrontier_BattlePikeRandomRoom2/scripts.inc delete mode 100644 data/maps/BattleFrontier_BattlePikeRandomRoom3/map.json delete mode 100644 data/maps/BattleFrontier_BattlePikeRandomRoom3/scripts.inc create mode 100644 data/maps/BattleFrontier_BattlePikeRoomFinal/map.json create mode 100644 data/maps/BattleFrontier_BattlePikeRoomFinal/scripts.inc create mode 100644 data/maps/BattleFrontier_BattlePikeRoomNormal/map.json create mode 100644 data/maps/BattleFrontier_BattlePikeRoomNormal/scripts.inc create mode 100644 data/maps/BattleFrontier_BattlePikeRoomWildMons/map.json create mode 100644 data/maps/BattleFrontier_BattlePikeRoomWildMons/scripts.inc diff --git a/asm/macros/battle_frontier.inc b/asm/macros/battle_frontier.inc index 2a6ee7d74..2382d3ed2 100644 --- a/asm/macros/battle_frontier.inc +++ b/asm/macros/battle_frontier.inc @@ -1,15 +1,95 @@ -@ To be populated with macros for the Battle Frontier CallFacilityFunction specials +@ Frontier Util +.macro frontier_checkoutcome +setvar VAR_0x8004, FRONTIER_UTIL_FUNC_GET_STATUS +special CallFrontierUtilFunc +.endm -@ Frontier Util +.macro frontier_getchallengestatus +setvar VAR_0x8004, FRONTIER_UTIL_FUNC_GET_DATA +setvar VAR_0x8005, 0 +special CallFrontierUtilFunc +.endm + +.macro frontier_setchallengestatus status:req +setvar VAR_0x8004, FRONTIER_UTIL_FUNC_SET_DATA +setvar VAR_0x8005, 0 +setvar VAR_0x8006, \status +special CallFrontierUtilFunc +.endm + +.macro frontier_getlvlmode +setvar VAR_0x8004, FRONTIER_UTIL_FUNC_GET_DATA +setvar VAR_0x8005, 1 +special CallFrontierUtilFunc +.endm .macro frontier_setlvlmode lvlmode:req -setvar VAR_0x8004, FRONTIER_UTIL_FUNC_2 +setvar VAR_0x8004, FRONTIER_UTIL_FUNC_SET_DATA setvar VAR_0x8005, 1 setvar VAR_0x8006, \lvlmode special CallFrontierUtilFunc .endm +.macro frontier_getbattlenum +setvar VAR_0x8004, FRONTIER_UTIL_FUNC_GET_DATA +setvar VAR_0x8005, 2 +special CallFrontierUtilFunc +.endm + +.macro frontier_setbattlenum battleNum:req +setvar VAR_0x8004, FRONTIER_UTIL_FUNC_SET_DATA +setvar VAR_0x8005, 2 +copyvar VAR_0x8006, \battleNum +special CallFrontierUtilFunc +.endm + +.macro frontier_getbattleoutcome +setvar VAR_0x8004, FRONTIER_UTIL_FUNC_GET_DATA +setvar VAR_0x8005, 5 +special CallFrontierUtilFunc +.endm + +.macro frontier_set data:req, val=0xFFFF +setvar VAR_0x8004, FRONTIER_UTIL_FUNC_SET_DATA +setvar VAR_0x8005, \data +.if \val == 0xFFFF +@ no value provided +.elseif \val >= VARS_START +copyvar VAR_0x8006, \val +.else +setvar VAR_0x8006, \val +.endif +special CallFrontierUtilFunc +.endm + +.macro frontier_loadselectedmons +setvar VAR_0x8004, FRONTIER_UTIL_FUNC_LOAD_SELECTED_PARTY +setvar VAR_0x8005, FRONTIER_PARTY_SIZE +special CallFrontierUtilFunc +.endm + +@ Facilities with only 1 mode dont provide the mode argument +.macro frontier_results facility:req, mode=0xFF +setvar VAR_0x8004, FRONTIER_UTIL_FUNC_RESULTS_WINDOW +setvar VAR_0x8005, \facility +.if \mode != 0xFF +setvar VAR_0x8006, \mode +.endif +special CallFrontierUtilFunc +.endm + +.macro frontier_getbrainstatus +setvar VAR_0x8004, FRONTIER_UTIL_FUNC_GET_BRAIN_STATUS +special CallFrontierUtilFunc +.endm + +.macro frontier_resetsketch +setvar VAR_0x8004, FRONTIER_UTIL_FUNC_RESET_SKETCH_MOVES +special CallFrontierUtilFunc +.endm + + @ Battle Tower .macro battletower_getstreak @@ -18,16 +98,74 @@ setvar VAR_0x8005, 1 special CallBattleTowerFunc .endm + @ Battle Dome + @ Battle Palace + @ Battle Arena + @ Battle Factory + @ Battle Pike +.macro battlepike_getstreak +setvar VAR_0x8004, BATTLE_PIKE_FUNC_GET_DATA +setvar VAR_0x8005, 1 +special CallBattlePikeFunction +.endm + +.macro battlepike_setstreak streak:req +setvar VAR_0x8004, BATTLE_PIKE_FUNC_SET_DATA +setvar VAR_0x8005, 1 +.if \streak >= VARS_START +copyvar VAR_0x8006, \streak +.else +setvar VAR_0x8006, \streak +.endif +special CallBattlePikeFunction +.endm + +.macro battlepike_isfinalroom +setvar VAR_0x8004, BATTLE_PIKE_FUNC_IS_FINAL_ROOM +special CallBattlePikeFunction +.endm + +.macro battlepike_setroomobjects +setvar VAR_0x8004, BATTLE_PIKE_FUNC_SET_ROOM_OBJECTS +special CallBattlePikeFunction +.endm + +.macro battlepike_getroomtype +setvar VAR_0x8004, BATTLE_PIKE_FUNC_GET_ROOM_TYPE +special CallBattlePikeFunction +.endm + +.macro battlepike_setnextroom +setvar VAR_0x8004, BATTLE_PIKE_FUNC_SET_ROOM_TYPE +special CallBattlePikeFunction +.endm + +.macro battlepike_gethint +setvar VAR_0x8004, BATTLE_PIKE_FUNC_GET_ROOM_TYPE_HINT +special CallBattlePikeFunction +.endm + +.macro battlepike_nohealing set:req +setvar VAR_0x8004, BATTLE_PIKE_FUNC_SET_HEALING_ROOMS_DISABLED +setvar VAR_0x8005, \set +special CallBattlePikeFunction +.endm + +.macro battlepike_ispartyfullhealth +setvar VAR_0x8004, BATTLE_PIKE_FUNC_IS_PARTY_FULL_HEALTH +special CallBattlePikeFunction +.endm + @ Battle Pyramid @ Battle Tent diff --git a/data/event_scripts.s b/data/event_scripts.s index 9f0e27ce6..3600c95a0 100644 --- a/data/event_scripts.s +++ b/data/event_scripts.s @@ -504,9 +504,9 @@ gStdScripts_End:: @ 81DC2CC .include "data/maps/BattleFrontier_BattlePikeLobby/scripts.inc" .include "data/maps/BattleFrontier_BattlePikeCorridor/scripts.inc" .include "data/maps/BattleFrontier_BattlePikeThreePathRoom/scripts.inc" - .include "data/maps/BattleFrontier_BattlePikeRandomRoom1/scripts.inc" - .include "data/maps/BattleFrontier_BattlePikeRandomRoom2/scripts.inc" - .include "data/maps/BattleFrontier_BattlePikeRandomRoom3/scripts.inc" + .include "data/maps/BattleFrontier_BattlePikeRoomNormal/scripts.inc" + .include "data/maps/BattleFrontier_BattlePikeRoomFinal/scripts.inc" + .include "data/maps/BattleFrontier_BattlePikeRoomWildMons/scripts.inc" .include "data/maps/BattleFrontier_RankingHall/scripts.inc" .include "data/maps/BattleFrontier_Lounge1/scripts.inc" .include "data/maps/BattleFrontier_ExchangeServiceCorner/scripts.inc" diff --git a/data/layouts/BattleFrontier_BattlePikeRandomRoom1/border.bin b/data/layouts/BattleFrontier_BattlePikeRandomRoom1/border.bin deleted file mode 100644 index f496f458e..000000000 Binary files a/data/layouts/BattleFrontier_BattlePikeRandomRoom1/border.bin and /dev/null differ diff --git a/data/layouts/BattleFrontier_BattlePikeRandomRoom1/map.bin b/data/layouts/BattleFrontier_BattlePikeRandomRoom1/map.bin deleted file mode 100644 index 142150cbe..000000000 --- a/data/layouts/BattleFrontier_BattlePikeRandomRoom1/map.bin +++ /dev/null @@ -1 +0,0 @@ -§ ¡¢£¤¥¦§¯¨©ª«¬­®¯·°±²6³6´6µ¶·¿6¸6Û6º6»2¼6Û6¾6¿6Ù2Ú2,ã2ä2å2,Ú2Ú2Ã2Á2Ú2Þ2ü2ß2Ú2Á2Á2Ã2Á23Þ2ü2ß23Á2Á2Ã2Á2-æ2è2ç2-Á2Á2 \ No newline at end of file diff --git a/data/layouts/BattleFrontier_BattlePikeRandomRoom2/border.bin b/data/layouts/BattleFrontier_BattlePikeRandomRoom2/border.bin deleted file mode 100644 index f496f458e..000000000 Binary files a/data/layouts/BattleFrontier_BattlePikeRandomRoom2/border.bin and /dev/null differ diff --git a/data/layouts/BattleFrontier_BattlePikeRandomRoom2/map.bin b/data/layouts/BattleFrontier_BattlePikeRandomRoom2/map.bin deleted file mode 100644 index 27a6e52aa..000000000 --- a/data/layouts/BattleFrontier_BattlePikeRandomRoom2/map.bin +++ /dev/null @@ -1 +0,0 @@ -¥6¦6§6 6¡6­6®6¯6¨6©6µ6¶6·6°6±652¾¿¸52=@3A3B3=Ù2H3I3J3Ú242P3Q3R3Ý2<X3Y3Z3ù \ No newline at end of file diff --git a/data/layouts/BattleFrontier_BattlePikeRandomRoom3/border.bin b/data/layouts/BattleFrontier_BattlePikeRandomRoom3/border.bin deleted file mode 100644 index f496f458e..000000000 Binary files a/data/layouts/BattleFrontier_BattlePikeRandomRoom3/border.bin and /dev/null differ diff --git a/data/layouts/BattleFrontier_BattlePikeRandomRoom3/map.bin b/data/layouts/BattleFrontier_BattlePikeRandomRoom3/map.bin deleted file mode 100644 index 8ce7f1c37..000000000 --- a/data/layouts/BattleFrontier_BattlePikeRandomRoom3/map.bin +++ /dev/null @@ -1 +0,0 @@ -§ ¡¢£¤¥¦§¯¨©ª«¬­®¯·°±²6³6´6µ¶·¿6¸6Û2º6»2¼6Û2¾6¿Ù2Ú2Üã2ä2å2ÜÚ2Ú242Ý2 3æ2è2ç2 3Ý2Ý2>ùùÁ2Á2Á2ùùù72 3 3Ý2Ý2Ý2 3 3Ú2>ùùùùùùùÁ2Ù2 3 3 3 3 3 3 3Ý2Ã2ùùùùùùùù42 3 3 3 3 3 3Ú2 3>ùùùùùùÁ2ù3Ú2 3 3 3 3 3Ý2 3>Á2ùùùùùùù72Ý2 3 3 3 3 3Ú2 3>ùùùùùùÁ2ù3 3Ú2Ú2Ú2Ú2Ú2Ý2 3>ù3ã2ä2å23ùùÙ2Ú2æ2è2ç2Ú2Ú2 \ No newline at end of file diff --git a/data/layouts/BattleFrontier_BattlePikeRoomFinal/border.bin b/data/layouts/BattleFrontier_BattlePikeRoomFinal/border.bin new file mode 100644 index 000000000..f496f458e Binary files /dev/null and b/data/layouts/BattleFrontier_BattlePikeRoomFinal/border.bin differ diff --git a/data/layouts/BattleFrontier_BattlePikeRoomFinal/map.bin b/data/layouts/BattleFrontier_BattlePikeRoomFinal/map.bin new file mode 100644 index 000000000..27a6e52aa --- /dev/null +++ b/data/layouts/BattleFrontier_BattlePikeRoomFinal/map.bin @@ -0,0 +1 @@ +¥6¦6§6 6¡6­6®6¯6¨6©6µ6¶6·6°6±652¾¿¸52=@3A3B3=Ù2H3I3J3Ú242P3Q3R3Ý2<X3Y3Z3ù \ No newline at end of file diff --git a/data/layouts/BattleFrontier_BattlePikeRoomNormal/border.bin b/data/layouts/BattleFrontier_BattlePikeRoomNormal/border.bin new file mode 100644 index 000000000..f496f458e Binary files /dev/null and b/data/layouts/BattleFrontier_BattlePikeRoomNormal/border.bin differ diff --git a/data/layouts/BattleFrontier_BattlePikeRoomNormal/map.bin b/data/layouts/BattleFrontier_BattlePikeRoomNormal/map.bin new file mode 100644 index 000000000..142150cbe --- /dev/null +++ b/data/layouts/BattleFrontier_BattlePikeRoomNormal/map.bin @@ -0,0 +1 @@ +§ ¡¢£¤¥¦§¯¨©ª«¬­®¯·°±²6³6´6µ¶·¿6¸6Û6º6»2¼6Û6¾6¿6Ù2Ú2,ã2ä2å2,Ú2Ú2Ã2Á2Ú2Þ2ü2ß2Ú2Á2Á2Ã2Á23Þ2ü2ß23Á2Á2Ã2Á2-æ2è2ç2-Á2Á2 \ No newline at end of file diff --git a/data/layouts/BattleFrontier_BattlePikeRoomWildMons/border.bin b/data/layouts/BattleFrontier_BattlePikeRoomWildMons/border.bin new file mode 100644 index 000000000..f496f458e Binary files /dev/null and b/data/layouts/BattleFrontier_BattlePikeRoomWildMons/border.bin differ diff --git a/data/layouts/BattleFrontier_BattlePikeRoomWildMons/map.bin b/data/layouts/BattleFrontier_BattlePikeRoomWildMons/map.bin new file mode 100644 index 000000000..8ce7f1c37 --- /dev/null +++ b/data/layouts/BattleFrontier_BattlePikeRoomWildMons/map.bin @@ -0,0 +1 @@ +§ ¡¢£¤¥¦§¯¨©ª«¬­®¯·°±²6³6´6µ¶·¿6¸6Û2º6»2¼6Û2¾6¿Ù2Ú2Üã2ä2å2ÜÚ2Ú242Ý2 3æ2è2ç2 3Ý2Ý2>ùùÁ2Á2Á2ùùù72 3 3Ý2Ý2Ý2 3 3Ú2>ùùùùùùùÁ2Ù2 3 3 3 3 3 3 3Ý2Ã2ùùùùùùùù42 3 3 3 3 3 3Ú2 3>ùùùùùùÁ2ù3Ú2 3 3 3 3 3Ý2 3>Á2ùùùùùùù72Ý2 3 3 3 3 3Ú2 3>ùùùùùùÁ2ù3 3Ú2Ú2Ú2Ú2Ú2Ý2 3>ù3ã2ä2å23ùùÙ2Ú2æ2è2ç2Ú2Ú2 \ No newline at end of file diff --git a/data/layouts/layouts.json b/data/layouts/layouts.json index bfa2aa811..ffa394fa1 100644 --- a/data/layouts/layouts.json +++ b/data/layouts/layouts.json @@ -3512,24 +3512,24 @@ "blockdata_filepath": "data/layouts/BattleFrontier_BattlePikeThreePathRoom/map.bin" }, { - "id": "LAYOUT_BATTLE_FRONTIER_BATTLE_PIKE_RANDOM_ROOM1", - "name": "BattleFrontier_BattlePikeRandomRoom1_Layout", + "id": "LAYOUT_BATTLE_FRONTIER_BATTLE_PIKE_ROOM_NORMAL", + "name": "BattleFrontier_BattlePikeRoomNormal_Layout", "width": 9, "height": 8, "primary_tileset": "gTileset_Building", "secondary_tileset": "gTileset_BattlePike", - "border_filepath": "data/layouts/BattleFrontier_BattlePikeRandomRoom1/border.bin", - "blockdata_filepath": "data/layouts/BattleFrontier_BattlePikeRandomRoom1/map.bin" + "border_filepath": "data/layouts/BattleFrontier_BattlePikeRoomNormal/border.bin", + "blockdata_filepath": "data/layouts/BattleFrontier_BattlePikeRoomNormal/map.bin" }, { - "id": "LAYOUT_BATTLE_FRONTIER_BATTLE_PIKE_RANDOM_ROOM2", - "name": "BattleFrontier_BattlePikeRandomRoom2_Layout", + "id": "LAYOUT_BATTLE_FRONTIER_BATTLE_PIKE_ROOM_FINAL", + "name": "BattleFrontier_BattlePikeRoomFinal_Layout", "width": 5, "height": 8, "primary_tileset": "gTileset_Building", "secondary_tileset": "gTileset_BattlePike", - "border_filepath": "data/layouts/BattleFrontier_BattlePikeRandomRoom2/border.bin", - "blockdata_filepath": "data/layouts/BattleFrontier_BattlePikeRandomRoom2/map.bin" + "border_filepath": "data/layouts/BattleFrontier_BattlePikeRoomFinal/border.bin", + "blockdata_filepath": "data/layouts/BattleFrontier_BattlePikeRoomFinal/map.bin" }, { "id": "LAYOUT_BATTLE_FRONTIER_BATTLE_ARENA_LOBBY", @@ -3572,14 +3572,14 @@ "blockdata_filepath": "data/layouts/SootopolisCity_LegendsBattle/map.bin" }, { - "id": "LAYOUT_BATTLE_FRONTIER_BATTLE_PIKE_RANDOM_ROOM3", - "name": "BattleFrontier_BattlePikeRandomRoom3_Layout", + "id": "LAYOUT_BATTLE_FRONTIER_BATTLE_PIKE_ROOM_WILD_MONS", + "name": "BattleFrontier_BattlePikeRoomWildMons_Layout", "width": 9, "height": 20, "primary_tileset": "gTileset_Building", "secondary_tileset": "gTileset_BattlePike", - "border_filepath": "data/layouts/BattleFrontier_BattlePikeRandomRoom3/border.bin", - "blockdata_filepath": "data/layouts/BattleFrontier_BattlePikeRandomRoom3/map.bin" + "border_filepath": "data/layouts/BattleFrontier_BattlePikeRoomWildMons/border.bin", + "blockdata_filepath": "data/layouts/BattleFrontier_BattlePikeRoomWildMons/map.bin" }, { "id": "LAYOUT_UNKNOWN_084693AC", diff --git a/data/maps/BattleFrontier_BattleArenaBattleRoom/scripts.inc b/data/maps/BattleFrontier_BattleArenaBattleRoom/scripts.inc index 6eb7e515b..25dbbedf7 100644 --- a/data/maps/BattleFrontier_BattleArenaBattleRoom/scripts.inc +++ b/data/maps/BattleFrontier_BattleArenaBattleRoom/scripts.inc @@ -40,15 +40,13 @@ BattleFrontier_BattleArenaBattleRoom_EventScript_2574DC:: @ 82574DC showobjectat 8, MAP_BATTLE_FRONTIER_BATTLE_ARENA_BATTLE_ROOM applymovement 8, BattleFrontier_BattleArenaBattleRoom_Movement_257BE2 waitmovement 0 - setvar VAR_0x8004, FRONTIER_UTIL_FUNC_1 - setvar VAR_0x8005, 2 - special CallFrontierUtilFunc + frontier_getbattlenum compare VAR_RESULT, 0 goto_if_eq BattleFrontier_BattleArenaBattleRoom_EventScript_25752E applymovement 5, BattleFrontier_BattleArenaBattleRoom_Movement_257C08 applymovement 8, BattleFrontier_BattleArenaBattleRoom_Movement_257BEB setvar VAR_TEMP_2, 1 - setvar VAR_0x8004, FRONTIER_UTIL_FUNC_2 + setvar VAR_0x8004, FRONTIER_UTIL_FUNC_SET_DATA setvar VAR_0x8005, 6 setvar VAR_0x8006, 1 special CallFrontierUtilFunc @@ -109,23 +107,15 @@ BattleFrontier_BattleArenaBattleRoom_EventScript_2575DB:: @ 82575DB msgbox BattleFrontier_BattleArenaBattleRoom_Text_257CCE, MSGBOX_DEFAULT BattleFrontier_BattleArenaBattleRoom_EventScript_257615:: @ 8257615 - setvar VAR_0x8004, FRONTIER_UTIL_FUNC_2 - setvar VAR_0x8005, 0 - setvar VAR_0x8006, 4 - special CallFrontierUtilFunc + frontier_setchallengestatus CHALLENGE_STATUS_LOST warp MAP_BATTLE_FRONTIER_BATTLE_ARENA_LOBBY, 255, 7, 8 waitstate BattleFrontier_BattleArenaBattleRoom_EventScript_257630:: @ 8257630 call BattleFrontier_BattleArenaBattleRoom_EventScript_257BA9 - setvar VAR_0x8004, FRONTIER_UTIL_FUNC_1 - setvar VAR_0x8005, 2 - special CallFrontierUtilFunc + frontier_getbattlenum addvar VAR_RESULT, 1 - setvar VAR_0x8004, FRONTIER_UTIL_FUNC_2 - setvar VAR_0x8005, 2 - copyvar VAR_0x8006, VAR_RESULT - special CallFrontierUtilFunc + frontier_setbattlenum VAR_RESULT switch VAR_RESULT case 7, BattleFrontier_BattleArenaBattleRoom_EventScript_257852 applymovement 8, BattleFrontier_BattleArenaBattleRoom_Movement_257BE7 @@ -138,22 +128,17 @@ BattleFrontier_BattleArenaBattleRoom_EventScript_257630:: @ 8257630 msgbox BattleFrontier_BattleArenaBattleRoom_Text_257CE9, MSGBOX_DEFAULT special LoadPlayerParty special SavePlayerParty - setvar VAR_0x8004, FRONTIER_UTIL_FUNC_LOAD_SELECTED_PARTY - setvar VAR_0x8005, FRONTIER_PARTY_SIZE - special CallFrontierUtilFunc + frontier_loadselectedmons playfanfare MUS_ME_ASA waitfanfare special HealPlayerParty BattleFrontier_BattleArenaBattleRoom_EventScript_2576B0:: @ 82576B0 - setvar VAR_0x8004, FRONTIER_UTIL_FUNC_9 - special CallFrontierUtilFunc + frontier_getbrainstatus copyvar VAR_TEMP_F, VAR_RESULT - compare VAR_RESULT, 0 + compare VAR_RESULT, FRONTIER_BRAIN_NOT_READY goto_if_ne BattleFrontier_BattleArenaBattleRoom_EventScript_2578BC - setvar VAR_0x8004, FRONTIER_UTIL_FUNC_1 - setvar VAR_0x8005, 2 - special CallFrontierUtilFunc + frontier_getbattlenum compare VAR_RESULT, 1 call_if_eq BattleFrontier_BattleArenaBattleRoom_EventScript_257870 compare VAR_RESULT, 2 @@ -224,10 +209,7 @@ BattleFrontier_BattleArenaBattleRoom_EventScript_25783A:: @ 825783A BattleFrontier_BattleArenaBattleRoom_EventScript_257852:: @ 8257852 delay 60 - setvar VAR_0x8004, FRONTIER_UTIL_FUNC_2 - setvar VAR_0x8005, 0 - setvar VAR_0x8006, 3 - special CallFrontierUtilFunc + frontier_setchallengestatus CHALLENGE_STATUS_WON warp MAP_BATTLE_FRONTIER_BATTLE_ARENA_LOBBY, 255, 7, 8 waitstate @@ -327,17 +309,17 @@ BattleFrontier_BattleArenaBattleRoom_EventScript_257961:: @ 8257961 applymovement 7, BattleFrontier_BattleArenaBattleRoom_Movement_257BF2 waitmovement 0 switch VAR_TEMP_F - case 2, BattleFrontier_BattleArenaBattleRoom_EventScript_257AA5 - case 3, BattleFrontier_BattleArenaBattleRoom_EventScript_257A3F - case 4, BattleFrontier_BattleArenaBattleRoom_EventScript_257AF8 - setvar VAR_0x8004, FRONTIER_UTIL_FUNC_1 + case FRONTIER_BRAIN_GOLD, BattleFrontier_BattleArenaBattleRoom_EventScript_257AA5 + case FRONTIER_BRAIN_STREAK, BattleFrontier_BattleArenaBattleRoom_EventScript_257A3F + case FRONTIER_BRAIN_STREAK_LONG, BattleFrontier_BattleArenaBattleRoom_EventScript_257AF8 + setvar VAR_0x8004, FRONTIER_UTIL_FUNC_GET_DATA setvar VAR_0x8005, 7 special CallFrontierUtilFunc compare VAR_RESULT, 0 goto_if_ne BattleFrontier_BattleArenaBattleRoom_EventScript_257A3F msgbox BattleFrontier_BattleArenaBattleRoom_Text_25801C, MSGBOX_DEFAULT closemessage - setvar VAR_0x8004, FRONTIER_UTIL_FUNC_2 + setvar VAR_0x8004, FRONTIER_UTIL_FUNC_SET_DATA setvar VAR_0x8005, 7 special CallFrontierUtilFunc applymovement 7, BattleFrontier_BattleArenaBattleRoom_Movement_257C30 @@ -374,14 +356,14 @@ BattleFrontier_BattleArenaBattleRoom_EventScript_257A5C:: @ 8257A5C goto BattleFrontier_BattleArenaBattleRoom_EventScript_257852 BattleFrontier_BattleArenaBattleRoom_EventScript_257AA5:: @ 8257AA5 - setvar VAR_0x8004, FRONTIER_UTIL_FUNC_1 + setvar VAR_0x8004, FRONTIER_UTIL_FUNC_GET_DATA setvar VAR_0x8005, 7 special CallFrontierUtilFunc compare VAR_RESULT, 0 goto_if_ne BattleFrontier_BattleArenaBattleRoom_EventScript_257AF8 msgbox BattleFrontier_BattleArenaBattleRoom_Text_258213, MSGBOX_DEFAULT closemessage - setvar VAR_0x8004, FRONTIER_UTIL_FUNC_2 + setvar VAR_0x8004, FRONTIER_UTIL_FUNC_SET_DATA setvar VAR_0x8005, 7 special CallFrontierUtilFunc applymovement 7, BattleFrontier_BattleArenaBattleRoom_Movement_257C30 @@ -426,7 +408,7 @@ BattleFrontier_BattleArenaBattleRoom_EventScript_257B6C:: @ 8257B6C FallarborTown_BattleTentBattleRoom_EventScript_257B6C:: @ 8257B6C closemessage setvar VAR_TEMP_2, 0 - setvar VAR_0x8004, FRONTIER_UTIL_FUNC_2 + setvar VAR_0x8004, FRONTIER_UTIL_FUNC_SET_DATA setvar VAR_0x8005, 6 setvar VAR_0x8006, 0 special CallFrontierUtilFunc @@ -438,8 +420,7 @@ FallarborTown_BattleTentBattleRoom_EventScript_257B6C:: @ 8257B6C setvar VAR_0x8004, FRONTIER_UTIL_FUNC_18 special CallFrontierUtilFunc special HealPlayerParty - setvar VAR_0x8004, FRONTIER_UTIL_FUNC_21 - special CallFrontierUtilFunc + frontier_resetsketch return BattleFrontier_BattleArenaBattleRoom_EventScript_257BA9:: @ 8257BA9 diff --git a/data/maps/BattleFrontier_BattleArenaLobby/scripts.inc b/data/maps/BattleFrontier_BattleArenaLobby/scripts.inc index 34feceb39..0948e87e8 100644 --- a/data/maps/BattleFrontier_BattleArenaLobby/scripts.inc +++ b/data/maps/BattleFrontier_BattleArenaLobby/scripts.inc @@ -21,8 +21,7 @@ BattleFrontier_BattleArenaLobby_MapScript2_255C55: @ 8255C55 .2byte 0 BattleFrontier_BattleArenaLobby_EventScript_255C7F:: @ 8255C7F - setvar VAR_0x8004, FRONTIER_UTIL_FUNC_0 - special CallFrontierUtilFunc + frontier_checkoutcome end BattleFrontier_BattleArenaLobby_EventScript_255C88:: @ 8255C88 @@ -37,7 +36,7 @@ BattleFrontier_BattleArenaLobby_EventScript_255C88:: @ 8255C88 setvar VAR_0x8005, 2 setvar VAR_0x8006, 0 special CallBattleArenaFunction - setvar VAR_0x8004, FRONTIER_UTIL_FUNC_2 + setvar VAR_0x8004, FRONTIER_UTIL_FUNC_SET_DATA setvar VAR_0x8005, 0 setvar VAR_0x8006, 0 special CallFrontierUtilFunc @@ -122,7 +121,7 @@ BattleFrontier_BattleArenaLobby_EventScript_255DC0:: @ 8255DC0 special CallBattleArenaFunction playse SE_SAVE waitse - setvar VAR_0x8004, FRONTIER_UTIL_FUNC_2 + setvar VAR_0x8004, FRONTIER_UTIL_FUNC_SET_DATA setvar VAR_0x8005, 3 setvar VAR_0x8006, 0 special CallFrontierUtilFunc @@ -158,7 +157,7 @@ BattleFrontier_BattleArenaLobby_EventScript_255E47:: @ 8255E47 special CallFrontierUtilFunc compare VAR_0x8004, 1 goto_if_eq BattleFrontier_BattleArenaLobby_EventScript_255FAC - setvar VAR_0x8004, FRONTIER_UTIL_FUNC_2 + setvar VAR_0x8004, FRONTIER_UTIL_FUNC_SET_DATA setvar VAR_0x8005, 1 copyvar VAR_0x8006, VAR_RESULT special CallFrontierUtilFunc @@ -179,7 +178,7 @@ BattleFrontier_BattleArenaLobby_EventScript_255E47:: @ 8255E47 BattleFrontier_BattleArenaLobby_EventScript_255EE8:: @ 8255EE8 setvar VAR_TEMP_0, 0 - setvar VAR_0x8004, FRONTIER_UTIL_FUNC_2 + setvar VAR_0x8004, FRONTIER_UTIL_FUNC_SET_DATA setvar VAR_0x8005, 4 special CallFrontierUtilFunc setvar VAR_0x8004, 0 @@ -188,11 +187,11 @@ BattleFrontier_BattleArenaLobby_EventScript_255EE8:: @ 8255EE8 setvar VAR_0x8005, 2 setvar VAR_0x8006, 1 special CallBattleArenaFunction - setvar VAR_0x8004, FRONTIER_UTIL_FUNC_2 + setvar VAR_0x8004, FRONTIER_UTIL_FUNC_SET_DATA setvar VAR_0x8005, 0 setvar VAR_0x8006, 1 special CallFrontierUtilFunc - setvar VAR_0x8004, FRONTIER_UTIL_FUNC_2 + setvar VAR_0x8004, FRONTIER_UTIL_FUNC_SET_DATA setvar VAR_0x8005, 3 setvar VAR_0x8006, 0 special CallFrontierUtilFunc @@ -206,12 +205,10 @@ BattleFrontier_BattleArenaLobby_EventScript_255EE8:: @ 8255EE8 BattleFrontier_BattleArenaLobby_EventScript_255F54:: @ 8255F54 special SavePlayerParty - setvar VAR_0x8004, FRONTIER_UTIL_FUNC_LOAD_SELECTED_PARTY - setvar VAR_0x8005, FRONTIER_PARTY_SIZE - special CallFrontierUtilFunc + frontier_loadselectedmons msgbox BattleFrontier_BattleArenaLobby_Text_2567E6, MSGBOX_DEFAULT closemessage - setvar VAR_0x8004, FRONTIER_UTIL_FUNC_1 + setvar VAR_0x8004, FRONTIER_UTIL_FUNC_GET_DATA setvar VAR_0x8005, 1 special CallFrontierUtilFunc compare VAR_RESULT, 0 @@ -241,7 +238,7 @@ BattleFrontier_BattleArenaLobby_EventScript_255FD4:: @ 8255FD4 goto BattleFrontier_BattleArenaLobby_EventScript_256003 BattleFrontier_BattleArenaLobby_EventScript_255FE1:: @ 8255FE1 - setvar VAR_0x8004, FRONTIER_UTIL_FUNC_2 + setvar VAR_0x8004, FRONTIER_UTIL_FUNC_SET_DATA setvar VAR_0x8005, 0 setvar VAR_0x8006, 0 special CallFrontierUtilFunc @@ -344,9 +341,7 @@ BattleFrontier_BattleArenaLobby_Movement_256088: @ 8256088 BattleFrontier_BattleArenaLobby_EventScript_256092:: @ 8256092 lockall - setvar VAR_0x8004, FRONTIER_UTIL_FUNC_RESULTS_WINDOW - setvar VAR_0x8005, 3 - special CallFrontierUtilFunc + frontier_results FRONTIER_FACILITY_ARENA waitbuttonpress special RemoveRecordsWindow releaseall diff --git a/data/maps/BattleFrontier_BattleDomeBattleRoom/scripts.inc b/data/maps/BattleFrontier_BattleDomeBattleRoom/scripts.inc index 1ee9c29dc..4322a12bc 100644 --- a/data/maps/BattleFrontier_BattleDomeBattleRoom/scripts.inc +++ b/data/maps/BattleFrontier_BattleDomeBattleRoom/scripts.inc @@ -8,9 +8,7 @@ BattleFrontier_BattleDomeBattleRoom_MapScripts:: @ 824BC9C BattleFrontier_BattleDomeBattleRoom_MapScript1_24BCB1: @ 824BCB1 setvar VAR_0x8004, 10 special CallBattleDomeFunction - setvar VAR_0x8004, FRONTIER_UTIL_FUNC_1 - setvar VAR_0x8005, 2 - special CallFrontierUtilFunc + frontier_getbattlenum copyvar VAR_TEMP_F, VAR_RESULT compare VAR_RESULT, 0 call_if_eq BattleFrontier_BattleDomeBattleRoom_EventScript_24C919 @@ -51,7 +49,7 @@ BattleFrontier_BattleDomeBattleRoom_EventScript_24BD0A:: @ 824BD0A showobjectat 13, MAP_BATTLE_FRONTIER_BATTLE_DOME_BATTLE_ROOM compare VAR_TEMP_F, 3 goto_if_ne BattleFrontier_BattleDomeBattleRoom_EventScript_24BD4E - compare VAR_TEMP_E, 0 + compare VAR_TEMP_E, FRONTIER_BRAIN_NOT_READY goto_if_ne BattleFrontier_BattleDomeBattleRoom_EventScript_24BD5A BattleFrontier_BattleDomeBattleRoom_EventScript_24BD4E:: @ 824BD4E @@ -67,7 +65,7 @@ BattleFrontier_BattleDomeBattleRoom_EventScript_24BD61:: @ 824BD61 waitmovement 0 compare VAR_TEMP_F, 3 goto_if_ne BattleFrontier_BattleDomeBattleRoom_EventScript_24BD82 - compare VAR_TEMP_E, 0 + compare VAR_TEMP_E, FRONTIER_BRAIN_NOT_READY goto_if_ne BattleFrontier_BattleDomeBattleRoom_EventScript_24C1CB BattleFrontier_BattleDomeBattleRoom_EventScript_24BD82:: @ 824BD82 @@ -134,10 +132,7 @@ BattleFrontier_BattleDomeBattleRoom_EventScript_24BE8D:: @ 824BE8D special CallBattleDomeFunction BattleFrontier_BattleDomePreBattleRoom_EventScript_24BE9A:: @ 824BE9A - setvar VAR_0x8004, FRONTIER_UTIL_FUNC_2 - setvar VAR_0x8005, 0 - setvar VAR_0x8006, 4 - special CallFrontierUtilFunc + frontier_setchallengestatus CHALLENGE_STATUS_LOST goto BattleFrontier_BattleDomeBattleRoom_EventScript_24C8F5 @ goto BattleFrontier_BattleDomePreBattleRoom_EventScript_24C8F5 @@ -177,14 +172,9 @@ BattleFrontier_BattleDomeBattleRoom_EventScript_24BEE0:: @ 824BEE0 setvar VAR_0x8004, 12 setvar VAR_0x8005, 1 special CallBattleDomeFunction - setvar VAR_0x8004, FRONTIER_UTIL_FUNC_1 - setvar VAR_0x8005, 2 - special CallFrontierUtilFunc + frontier_getbattlenum addvar VAR_RESULT, 1 - setvar VAR_0x8004, FRONTIER_UTIL_FUNC_2 - setvar VAR_0x8005, 2 - copyvar VAR_0x8006, VAR_RESULT - special CallFrontierUtilFunc + frontier_setbattlenum VAR_RESULT switch VAR_RESULT case 4, BattleFrontier_BattleDomeBattleRoom_EventScript_24BF62 setvar VAR_0x8006, 1 @@ -194,7 +184,7 @@ BattleFrontier_BattleDomeBattleRoom_EventScript_24BEE0:: @ 824BEE0 BattleFrontier_BattleDomeBattleRoom_EventScript_24BF62:: @ 824BF62 applymovement 13, BattleFrontier_BattleDomeBattleRoom_Movement_24C77D waitmovement 0 - setvar VAR_0x8004, FRONTIER_UTIL_FUNC_1 + setvar VAR_0x8004, FRONTIER_UTIL_FUNC_GET_DATA setvar VAR_0x8005, 1 special CallFrontierUtilFunc switch VAR_RESULT @@ -210,10 +200,7 @@ BattleFrontier_BattleDomeBattleRoom_EventScript_24BF9E:: @ 824BF9E playse SE_W227B call BattleFrontier_BattleDomeBattleRoom_EventScript_24C82E delay 60 - setvar VAR_0x8004, FRONTIER_UTIL_FUNC_2 - setvar VAR_0x8005, 0 - setvar VAR_0x8006, 3 - special CallFrontierUtilFunc + frontier_setchallengestatus CHALLENGE_STATUS_WON goto BattleFrontier_BattleDomeBattleRoom_EventScript_24C8F5 BattleFrontier_BattleDomeBattleRoom_EventScript_24BFC3:: @ 824BFC3 @@ -305,10 +292,10 @@ BattleFrontier_BattleDomeBattleRoom_EventScript_24C0C9:: @ 824C0C9 compare VAR_TEMP_F, 3 goto_if_ne BattleFrontier_BattleDomeBattleRoom_EventScript_24C105 switch VAR_TEMP_E - case 1, BattleFrontier_BattleDomeBattleRoom_EventScript_24C158 - case 2, BattleFrontier_BattleDomeBattleRoom_EventScript_24C161 - case 3, BattleFrontier_BattleDomeBattleRoom_EventScript_24C158 - case 4, BattleFrontier_BattleDomeBattleRoom_EventScript_24C161 + case FRONTIER_BRAIN_SILVER, BattleFrontier_BattleDomeBattleRoom_EventScript_24C158 + case FRONTIER_BRAIN_GOLD, BattleFrontier_BattleDomeBattleRoom_EventScript_24C161 + case FRONTIER_BRAIN_STREAK, BattleFrontier_BattleDomeBattleRoom_EventScript_24C158 + case FRONTIER_BRAIN_STREAK_LONG, BattleFrontier_BattleDomeBattleRoom_EventScript_24C161 BattleFrontier_BattleDomeBattleRoom_EventScript_24C105:: @ 824C105 call BattleFrontier_BattleDomeBattleRoom_EventScript_24C1BD @@ -377,17 +364,15 @@ BattleFrontier_BattleDomeBattleRoom_EventScript_24C1B6:: @ 824C1B6 return BattleFrontier_BattleDomeBattleRoom_EventScript_24C1BD:: @ 824C1BD - setvar VAR_0x8004, FRONTIER_UTIL_FUNC_1 - setvar VAR_0x8005, 2 - special CallFrontierUtilFunc + frontier_getbattlenum return BattleFrontier_BattleDomeBattleRoom_EventScript_24C1CB:: @ 824C1CB switch VAR_TEMP_E - case 1, BattleFrontier_BattleDomeBattleRoom_EventScript_24C1FC - case 2, BattleFrontier_BattleDomeBattleRoom_EventScript_24C209 - case 3, BattleFrontier_BattleDomeBattleRoom_EventScript_24C1FC - case 4, BattleFrontier_BattleDomeBattleRoom_EventScript_24C209 + case FRONTIER_BRAIN_SILVER, BattleFrontier_BattleDomeBattleRoom_EventScript_24C1FC + case FRONTIER_BRAIN_GOLD, BattleFrontier_BattleDomeBattleRoom_EventScript_24C209 + case FRONTIER_BRAIN_STREAK, BattleFrontier_BattleDomeBattleRoom_EventScript_24C1FC + case FRONTIER_BRAIN_STREAK_LONG, BattleFrontier_BattleDomeBattleRoom_EventScript_24C209 BattleFrontier_BattleDomeBattleRoom_EventScript_24C1FC:: @ 824C1FC msgbox BattleFrontier_BattleDomeBattleRoom_Text_24CEDE, MSGBOX_DEFAULT @@ -423,16 +408,16 @@ BattleFrontier_BattleDomeBattleRoom_EventScript_24C211:: @ 824C211 call BattleFrontier_BattleDomeBattleRoom_EventScript_24C82E waitse switch VAR_TEMP_E - case 2, BattleFrontier_BattleDomeBattleRoom_EventScript_24C346 - case 3, BattleFrontier_BattleDomeBattleRoom_EventScript_24C2B9 - case 4, BattleFrontier_BattleDomeBattleRoom_EventScript_24C373 - setvar VAR_0x8004, FRONTIER_UTIL_FUNC_1 + case FRONTIER_BRAIN_GOLD, BattleFrontier_BattleDomeBattleRoom_EventScript_24C346 + case FRONTIER_BRAIN_STREAK, BattleFrontier_BattleDomeBattleRoom_EventScript_24C2B9 + case FRONTIER_BRAIN_STREAK_LONG, BattleFrontier_BattleDomeBattleRoom_EventScript_24C373 + setvar VAR_0x8004, FRONTIER_UTIL_FUNC_GET_DATA setvar VAR_0x8005, 7 special CallFrontierUtilFunc compare VAR_RESULT, 0 goto_if_ne BattleFrontier_BattleDomeBattleRoom_EventScript_24C2B9 msgbox BattleFrontier_BattleDomeBattleRoom_Text_24CFAE, MSGBOX_DEFAULT - setvar VAR_0x8004, FRONTIER_UTIL_FUNC_2 + setvar VAR_0x8004, FRONTIER_UTIL_FUNC_SET_DATA setvar VAR_0x8005, 7 special CallFrontierUtilFunc @@ -465,13 +450,13 @@ BattleFrontier_BattleDomeBattleRoom_EventScript_24C2B9:: @ 824C2B9 goto BattleFrontier_BattleDomeBattleRoom_EventScript_24BF62 BattleFrontier_BattleDomeBattleRoom_EventScript_24C346:: @ 824C346 - setvar VAR_0x8004, FRONTIER_UTIL_FUNC_1 + setvar VAR_0x8004, FRONTIER_UTIL_FUNC_GET_DATA setvar VAR_0x8005, 7 special CallFrontierUtilFunc compare VAR_RESULT, 0 goto_if_ne BattleFrontier_BattleDomeBattleRoom_EventScript_24C373 msgbox BattleFrontier_BattleDomeBattleRoom_Text_24D319, MSGBOX_DEFAULT - setvar VAR_0x8004, FRONTIER_UTIL_FUNC_2 + setvar VAR_0x8004, FRONTIER_UTIL_FUNC_SET_DATA setvar VAR_0x8005, 7 special CallFrontierUtilFunc @@ -524,7 +509,7 @@ BattleFrontier_BattleDomeBattleRoom_EventScript_24C436:: @ 824C436 goto BattleFrontier_BattleDomeBattleRoom_EventScript_24BDF7 BattleFrontier_BattleDomeBattleRoom_EventScript_24C440:: @ 824C440 - setvar VAR_0x8004, FRONTIER_UTIL_FUNC_2 + setvar VAR_0x8004, FRONTIER_UTIL_FUNC_SET_DATA setvar VAR_0x8005, 6 setvar VAR_0x8006, 0 special CallFrontierUtilFunc @@ -552,15 +537,12 @@ BattleFrontier_BattleDomeBattleRoom_EventScript_24C48B:: @ 824C48B call BattleFrontier_BattleDomeBattleRoom_EventScript_24BCDC setvar VAR_TEMP_1, 1 applymovement EVENT_OBJ_ID_PLAYER, BattleFrontier_BattleDomeBattleRoom_Movement_24C773 - setvar VAR_0x8004, FRONTIER_UTIL_FUNC_1 - setvar VAR_0x8005, 2 - special CallFrontierUtilFunc + frontier_getbattlenum compare VAR_RESULT, 3 goto_if_ne BattleFrontier_BattleDomeBattleRoom_EventScript_24C4EF - setvar VAR_0x8004, FRONTIER_UTIL_FUNC_9 - special CallFrontierUtilFunc + frontier_getbrainstatus copyvar VAR_TEMP_E, VAR_RESULT - compare VAR_RESULT, 0 + compare VAR_RESULT, FRONTIER_BRAIN_NOT_READY goto_if_eq BattleFrontier_BattleDomeBattleRoom_EventScript_24C4EF call BattleFrontier_BattleDomeBattleRoom_EventScript_242170 setobjectxyperm 15, 13, 9 diff --git a/data/maps/BattleFrontier_BattleDomeCorridor/scripts.inc b/data/maps/BattleFrontier_BattleDomeCorridor/scripts.inc index deea13c83..42ba5d33d 100644 --- a/data/maps/BattleFrontier_BattleDomeCorridor/scripts.inc +++ b/data/maps/BattleFrontier_BattleDomeCorridor/scripts.inc @@ -9,7 +9,7 @@ BattleFrontier_BattleDomeCorridor_MapScript2_24B104: @ 824B104 BattleFrontier_BattleDomeCorridor_EventScript_24B10E:: @ 824B10E delay 16 setvar VAR_TEMP_0, 1 - setvar VAR_0x8004, FRONTIER_UTIL_FUNC_1 + setvar VAR_0x8004, FRONTIER_UTIL_FUNC_GET_DATA setvar VAR_0x8005, 1 special CallFrontierUtilFunc compare VAR_RESULT, 1 diff --git a/data/maps/BattleFrontier_BattleDomeLobby/scripts.inc b/data/maps/BattleFrontier_BattleDomeLobby/scripts.inc index 12940496d..323da2aed 100644 --- a/data/maps/BattleFrontier_BattleDomeLobby/scripts.inc +++ b/data/maps/BattleFrontier_BattleDomeLobby/scripts.inc @@ -28,8 +28,7 @@ BattleFrontier_BattleDomeLobby_MapScript2_24980F: @ 824980F .2byte 0 BattleFrontier_BattleDomeLobby_EventScript_249839:: @ 8249839 - setvar VAR_0x8004, FRONTIER_UTIL_FUNC_0 - special CallFrontierUtilFunc + frontier_checkoutcome end BattleFrontier_BattleDomeLobby_EventScript_249842:: @ 8249842 @@ -48,7 +47,7 @@ BattleFrontier_BattleDomeLobby_EventScript_249842:: @ 8249842 setvar VAR_0x8005, 6 setvar VAR_0x8006, 1 special CallBattleDomeFunction - setvar VAR_0x8004, FRONTIER_UTIL_FUNC_2 + setvar VAR_0x8004, FRONTIER_UTIL_FUNC_SET_DATA setvar VAR_0x8005, 0 setvar VAR_0x8006, 0 special CallFrontierUtilFunc @@ -77,9 +76,7 @@ BattleFrontier_BattleDomeLobby_EventScript_2498C9:: @ 82498C9 message BattleFrontier_BattleDomeLobby_Text_24A5D6 waitmessage special LoadPlayerParty - setvar VAR_0x8004, FRONTIER_UTIL_FUNC_LOAD_SELECTED_PARTY - setvar VAR_0x8005, FRONTIER_PARTY_SIZE - special CallFrontierUtilFunc + frontier_loadselectedmons setvar VAR_0x8004, FRONTIER_UTIL_FUNC_8 special CallFrontierUtilFunc setvar VAR_0x8004, 2 @@ -104,9 +101,7 @@ BattleFrontier_BattleDomeLobby_EventScript_249940:: @ 8249940 message BattleFrontier_BattleDomeLobby_Text_24A5D6 waitmessage special LoadPlayerParty - setvar VAR_0x8004, FRONTIER_UTIL_FUNC_LOAD_SELECTED_PARTY - setvar VAR_0x8005, FRONTIER_PARTY_SIZE - special CallFrontierUtilFunc + frontier_loadselectedmons setvar VAR_0x8004, FRONTIER_UTIL_FUNC_8 special CallFrontierUtilFunc setvar VAR_0x8004, 2 @@ -157,7 +152,7 @@ BattleFrontier_BattleDomeLobby_EventScript_2499F9:: @ 82499F9 special CallBattleDomeFunction playse SE_SAVE waitse - setvar VAR_0x8004, FRONTIER_UTIL_FUNC_2 + setvar VAR_0x8004, FRONTIER_UTIL_FUNC_SET_DATA setvar VAR_0x8005, 3 setvar VAR_0x8006, 0 special CallFrontierUtilFunc @@ -211,7 +206,7 @@ BattleFrontier_BattleDomeLobby_EventScript_249ABF:: @ 8249ABF special CallFrontierUtilFunc compare VAR_0x8004, 1 goto_if_eq BattleFrontier_BattleDomeLobby_EventScript_249C15 - setvar VAR_0x8004, FRONTIER_UTIL_FUNC_2 + setvar VAR_0x8004, FRONTIER_UTIL_FUNC_SET_DATA setvar VAR_0x8005, 1 copyvar VAR_0x8006, VAR_RESULT special CallFrontierUtilFunc @@ -232,16 +227,16 @@ BattleFrontier_BattleDomeLobby_EventScript_249ABF:: @ 8249ABF BattleFrontier_BattleDomeLobby_EventScript_249B60:: @ 8249B60 setvar VAR_TEMP_0, 0 - setvar VAR_0x8004, FRONTIER_UTIL_FUNC_2 + setvar VAR_0x8004, FRONTIER_UTIL_FUNC_SET_DATA setvar VAR_0x8005, 4 special CallFrontierUtilFunc setvar VAR_0x8004, 0 special CallBattleDomeFunction - setvar VAR_0x8004, FRONTIER_UTIL_FUNC_2 + setvar VAR_0x8004, FRONTIER_UTIL_FUNC_SET_DATA setvar VAR_0x8005, 0 setvar VAR_0x8006, 1 special CallFrontierUtilFunc - setvar VAR_0x8004, FRONTIER_UTIL_FUNC_2 + setvar VAR_0x8004, FRONTIER_UTIL_FUNC_SET_DATA setvar VAR_0x8005, 3 setvar VAR_0x8006, 0 special CallFrontierUtilFunc @@ -257,9 +252,7 @@ BattleFrontier_BattleDomeLobby_EventScript_249B60:: @ 8249B60 BattleFrontier_BattleDomeLobby_EventScript_249BC2:: @ 8249BC2 special SavePlayerParty - setvar VAR_0x8004, FRONTIER_UTIL_FUNC_LOAD_SELECTED_PARTY - setvar VAR_0x8005, FRONTIER_PARTY_SIZE - special CallFrontierUtilFunc + frontier_loadselectedmons setvar VAR_0x8004, 15 special CallBattleDomeFunction msgbox BattleFrontier_BattleDomeLobby_Text_24A437, MSGBOX_DEFAULT @@ -292,7 +285,7 @@ BattleFrontier_BattleDomeLobby_EventScript_249C3D:: @ 8249C3D goto BattleFrontier_BattleDomeLobby_EventScript_249C6C BattleFrontier_BattleDomeLobby_EventScript_249C4A:: @ 8249C4A - setvar VAR_0x8004, FRONTIER_UTIL_FUNC_2 + setvar VAR_0x8004, FRONTIER_UTIL_FUNC_SET_DATA setvar VAR_0x8005, 0 setvar VAR_0x8006, 0 special CallFrontierUtilFunc @@ -410,10 +403,7 @@ BattleFrontier_BattleDomeLobby_Movement_249D4E: @ 8249D4E BattleFrontier_BattleDomeLobby_EventScript_249D52:: @ 8249D52 lockall - setvar VAR_0x8004, FRONTIER_UTIL_FUNC_RESULTS_WINDOW - setvar VAR_0x8005, 1 - setvar VAR_0x8006, 0 - special CallFrontierUtilFunc + frontier_results FRONTIER_FACILITY_DOME, FRONTIER_MODE_SINGLES waitbuttonpress special RemoveRecordsWindow releaseall @@ -421,10 +411,7 @@ BattleFrontier_BattleDomeLobby_EventScript_249D52:: @ 8249D52 BattleFrontier_BattleDomeLobby_EventScript_249D6B:: @ 8249D6B lockall - setvar VAR_0x8004, FRONTIER_UTIL_FUNC_RESULTS_WINDOW - setvar VAR_0x8005, 1 - setvar VAR_0x8006, 1 - special CallFrontierUtilFunc + frontier_results FRONTIER_FACILITY_DOME, FRONTIER_MODE_DOUBLES waitbuttonpress special RemoveRecordsWindow releaseall diff --git a/data/maps/BattleFrontier_BattleDomePreBattleRoom/scripts.inc b/data/maps/BattleFrontier_BattleDomePreBattleRoom/scripts.inc index 8987f3e07..4d6265e81 100644 --- a/data/maps/BattleFrontier_BattleDomePreBattleRoom/scripts.inc +++ b/data/maps/BattleFrontier_BattleDomePreBattleRoom/scripts.inc @@ -19,7 +19,7 @@ BattleFrontier_BattleDomePreBattleRoom_MapScript2_24B218: @ 824B218 BattleFrontier_BattleDomePreBattleRoom_EventScript_24B222:: @ 824B222 compare VAR_0x8006, 1 goto_if_eq BattleFrontier_BattleDomePreBattleRoom_EventScript_24B5C7 - setvar VAR_0x8004, FRONTIER_UTIL_FUNC_2 + setvar VAR_0x8004, FRONTIER_UTIL_FUNC_SET_DATA setvar VAR_0x8005, 6 setvar VAR_0x8006, 1 special CallFrontierUtilFunc @@ -120,7 +120,7 @@ BattleFrontier_BattleDomePreBattleRoom_EventScript_24B3F5:: @ 824B3F5 goto BattleFrontier_BattleDomePreBattleRoom_EventScript_24B24F BattleFrontier_BattleDomePreBattleRoom_EventScript_24B40A:: @ 824B40A - setvar VAR_0x8004, FRONTIER_UTIL_FUNC_1 + setvar VAR_0x8004, FRONTIER_UTIL_FUNC_GET_DATA setvar VAR_0x8005, 2 special CallFrontierUtilFunc switch VAR_RESULT @@ -156,8 +156,7 @@ BattleFrontier_BattleDomePreBattleRoom_EventScript_24B46D:: @ 824B46D setvar VAR_0x8005, 2 special sub_80F9490 waitstate - setvar VAR_0x8004, FRONTIER_UTIL_FUNC_21 - special CallFrontierUtilFunc + frontier_resetsketch compare VAR_RESULT, 0 goto_if_eq BattleFrontier_BattleDomePreBattleRoom_EventScript_24B24F setvar VAR_0x8004, 2 @@ -185,7 +184,7 @@ BattleFrontier_BattleDomePreBattleRoom_EventScript_24B46D:: @ 824B46D end BattleFrontier_BattleDomePreBattleRoom_EventScript_24B4FB:: @ 824B4FB - setvar VAR_0x8004, FRONTIER_UTIL_FUNC_1 + setvar VAR_0x8004, FRONTIER_UTIL_FUNC_GET_DATA setvar VAR_0x8005, 2 special CallFrontierUtilFunc switch VAR_RESULT @@ -208,13 +207,12 @@ BattleFrontier_BattleDomePreBattleRoom_EventScript_24B546:: @ 824B546 return BattleFrontier_BattleDomePreBattleRoom_EventScript_24B54C:: @ 824B54C - setvar VAR_0x8004, FRONTIER_UTIL_FUNC_9 - special CallFrontierUtilFunc + frontier_getbrainstatus switch VAR_RESULT - case 1, BattleFrontier_BattleDomePreBattleRoom_EventScript_24B58B - case 2, BattleFrontier_BattleDomePreBattleRoom_EventScript_24B5A0 - case 3, BattleFrontier_BattleDomePreBattleRoom_EventScript_24B58B - case 4, BattleFrontier_BattleDomePreBattleRoom_EventScript_24B5A0 + case FRONTIER_BRAIN_SILVER, BattleFrontier_BattleDomePreBattleRoom_EventScript_24B58B + case FRONTIER_BRAIN_GOLD, BattleFrontier_BattleDomePreBattleRoom_EventScript_24B5A0 + case FRONTIER_BRAIN_STREAK, BattleFrontier_BattleDomePreBattleRoom_EventScript_24B58B + case FRONTIER_BRAIN_STREAK_LONG, BattleFrontier_BattleDomePreBattleRoom_EventScript_24B5A0 message BattleFrontier_BattleDomePreBattleRoom_Text_24B6E3 return @@ -242,9 +240,7 @@ BattleFrontier_BattleDomePreBattleRoom_EventScript_24B5C7:: @ 824B5C7 setvar VAR_TEMP_0, 1 msgbox BattleFrontier_BattleDomePreBattleRoom_Text_24B760, MSGBOX_DEFAULT special LoadPlayerParty - setvar VAR_0x8004, FRONTIER_UTIL_FUNC_LOAD_SELECTED_PARTY - setvar VAR_0x8005, FRONTIER_PARTY_SIZE - special CallFrontierUtilFunc + frontier_loadselectedmons playfanfare MUS_ME_ASA waitfanfare special HealPlayerParty @@ -256,7 +252,7 @@ BattleFrontier_BattleDomePreBattleRoom_EventScript_24B5C7:: @ 824B5C7 goto BattleFrontier_BattleDomePreBattleRoom_EventScript_24B24F BattleFrontier_BattleDomePreBattleRoom_EventScript_24B600:: @ 824B600 - setvar VAR_0x8004, FRONTIER_UTIL_FUNC_1 + setvar VAR_0x8004, FRONTIER_UTIL_FUNC_GET_DATA setvar VAR_0x8005, 2 special CallFrontierUtilFunc switch VAR_RESULT diff --git a/data/maps/BattleFrontier_BattleFactoryBattleRoom/scripts.inc b/data/maps/BattleFrontier_BattleFactoryBattleRoom/scripts.inc index a6e02f443..443641d7f 100644 --- a/data/maps/BattleFrontier_BattleFactoryBattleRoom/scripts.inc +++ b/data/maps/BattleFrontier_BattleFactoryBattleRoom/scripts.inc @@ -12,10 +12,9 @@ BattleFrontier_BattleFactoryBattleRoom_MapScript1_25ADBB: @ 825ADBB call_if_eq BattleFrontier_BattleFactoryBattleRoom_EventScript_25AE25 compare VAR_RESULT, FEMALE call_if_eq BattleFrontier_BattleFactoryBattleRoom_EventScript_25AE2B - setvar VAR_0x8004, FRONTIER_UTIL_FUNC_9 - special CallFrontierUtilFunc + frontier_getbrainstatus copyvar VAR_TEMP_F, VAR_RESULT - compare VAR_RESULT, 0 + compare VAR_RESULT, FRONTIER_BRAIN_NOT_READY goto_if_ne BattleFrontier_BattleFactoryBattleRoom_EventScript_25ADF3 end @@ -85,7 +84,7 @@ BattleFrontier_BattleFactoryBattleRoom_EventScript_25AEA7:: @ 825AEA7 msgbox gStringVar4, MSGBOX_DEFAULT waitmessage closemessage - setvar VAR_0x8004, FRONTIER_UTIL_FUNC_2 + setvar VAR_0x8004, FRONTIER_UTIL_FUNC_SET_DATA setvar VAR_0x8005, 6 setvar VAR_0x8006, 0 special CallFrontierUtilFunc @@ -99,10 +98,7 @@ BattleFrontier_BattleFactoryBattleRoom_EventScript_25AEA7:: @ 825AEA7 BattleFrontier_BattleFactoryBattleRoom_EventScript_25AEF8:: @ 825AEF8 BattleFrontier_BattleFactoryPreBattleRoom_EventScript_25AEF8:: @ 825AEF8 - setvar VAR_0x8004, FRONTIER_UTIL_FUNC_2 - setvar VAR_0x8005, 0 - setvar VAR_0x8006, 4 - special CallFrontierUtilFunc + frontier_setchallengestatus CHALLENGE_STATUS_LOST goto BattleFrontier_BattleFactoryBattleRoom_EventScript_25B190 @ goto BattleFrontier_BattleFactoryPreBattleRoom_EventScript_25B190 @@ -122,14 +118,9 @@ BattleFrontier_BattleFactoryBattleRoom_EventScript_25AF3E:: @ 825AF3E call BattleFrontier_BattleFactoryBattleRoom_EventScript_241EBA BattleFrontier_BattleFactoryBattleRoom_EventScript_25AF43:: @ 825AF43 - setvar VAR_0x8004, FRONTIER_UTIL_FUNC_1 - setvar VAR_0x8005, 2 - special CallFrontierUtilFunc + frontier_getbattlenum addvar VAR_RESULT, 1 - setvar VAR_0x8004, FRONTIER_UTIL_FUNC_2 - setvar VAR_0x8005, 2 - copyvar VAR_0x8006, VAR_RESULT - special CallFrontierUtilFunc + frontier_setbattlenum VAR_RESULT switch VAR_RESULT case 7, BattleFrontier_BattleFactoryBattleRoom_EventScript_25AF85 setvar VAR_0x8006, 1 @@ -137,24 +128,21 @@ BattleFrontier_BattleFactoryBattleRoom_EventScript_25AF43:: @ 825AF43 waitstate BattleFrontier_BattleFactoryBattleRoom_EventScript_25AF85:: @ 825AF85 - setvar VAR_0x8004, FRONTIER_UTIL_FUNC_2 - setvar VAR_0x8005, 0 - setvar VAR_0x8006, 3 - special CallFrontierUtilFunc + frontier_setchallengestatus CHALLENGE_STATUS_WON goto BattleFrontier_BattleFactoryBattleRoom_EventScript_25B190 BattleFrontier_BattleFactoryBattleRoom_EventScript_25AF9C:: @ 825AF9C switch VAR_TEMP_F - case 2, BattleFrontier_BattleFactoryBattleRoom_EventScript_25B051 - case 3, BattleFrontier_BattleFactoryBattleRoom_EventScript_25AFEF - case 4, BattleFrontier_BattleFactoryBattleRoom_EventScript_25B07E - setvar VAR_0x8004, FRONTIER_UTIL_FUNC_1 + case FRONTIER_BRAIN_GOLD, BattleFrontier_BattleFactoryBattleRoom_EventScript_25B051 + case FRONTIER_BRAIN_STREAK, BattleFrontier_BattleFactoryBattleRoom_EventScript_25AFEF + case FRONTIER_BRAIN_STREAK_LONG, BattleFrontier_BattleFactoryBattleRoom_EventScript_25B07E + setvar VAR_0x8004, FRONTIER_UTIL_FUNC_GET_DATA setvar VAR_0x8005, 7 special CallFrontierUtilFunc compare VAR_RESULT, 0 goto_if_ne BattleFrontier_BattleFactoryBattleRoom_EventScript_25AFEF msgbox BattleFrontier_BattleFactoryBattleRoom_Text_25B1FB, MSGBOX_DEFAULT - setvar VAR_0x8004, FRONTIER_UTIL_FUNC_2 + setvar VAR_0x8004, FRONTIER_UTIL_FUNC_SET_DATA setvar VAR_0x8005, 7 special CallFrontierUtilFunc @@ -184,13 +172,13 @@ BattleFrontier_BattleFactoryBattleRoom_EventScript_25B00C:: @ 825B00C goto BattleFrontier_BattleFactoryBattleRoom_EventScript_25B105 BattleFrontier_BattleFactoryBattleRoom_EventScript_25B051:: @ 825B051 - setvar VAR_0x8004, FRONTIER_UTIL_FUNC_1 + setvar VAR_0x8004, FRONTIER_UTIL_FUNC_GET_DATA setvar VAR_0x8005, 7 special CallFrontierUtilFunc compare VAR_RESULT, 0 goto_if_ne BattleFrontier_BattleFactoryBattleRoom_EventScript_25B07E msgbox BattleFrontier_BattleFactoryBattleRoom_Text_25B517, MSGBOX_DEFAULT - setvar VAR_0x8004, FRONTIER_UTIL_FUNC_2 + setvar VAR_0x8004, FRONTIER_UTIL_FUNC_SET_DATA setvar VAR_0x8005, 7 special CallFrontierUtilFunc @@ -221,7 +209,7 @@ BattleFrontier_BattleFactoryBattleRoom_EventScript_25B09B:: @ 825B09B BattleFrontier_BattleFactoryBattleRoom_EventScript_25B0E0:: @ 825B0E0 closemessage - setvar VAR_0x8004, FRONTIER_UTIL_FUNC_2 + setvar VAR_0x8004, FRONTIER_UTIL_FUNC_SET_DATA setvar VAR_0x8005, 6 setvar VAR_0x8006, 0 special CallFrontierUtilFunc @@ -253,7 +241,7 @@ BattleFrontier_BattleFactoryBattleRoom_EventScript_25B105:: @ 825B105 setvar VAR_0x8005, 1 copyvar VAR_0x8006, VAR_RESULT special CallBattleFactoryFunction - setvar VAR_0x8004, FRONTIER_UTIL_FUNC_1 + setvar VAR_0x8004, FRONTIER_UTIL_FUNC_GET_DATA setvar VAR_0x8005, 2 special CallFrontierUtilFunc addvar VAR_RESULT, 1 diff --git a/data/maps/BattleFrontier_BattleFactoryLobby/scripts.inc b/data/maps/BattleFrontier_BattleFactoryLobby/scripts.inc index cead1a1d7..028ac761a 100644 --- a/data/maps/BattleFrontier_BattleFactoryLobby/scripts.inc +++ b/data/maps/BattleFrontier_BattleFactoryLobby/scripts.inc @@ -21,8 +21,7 @@ BattleFrontier_BattleFactoryLobby_MapScript2_258407: @ 8258407 .2byte 0 BattleFrontier_BattleFactoryLobby_EventScript_258431:: @ 8258431 - setvar VAR_0x8004, FRONTIER_UTIL_FUNC_0 - special CallFrontierUtilFunc + frontier_checkoutcome end BattleFrontier_BattleFactoryLobby_EventScript_25843A:: @ 825843A @@ -43,7 +42,7 @@ BattleFrontier_BattleFactoryLobby_EventScript_25843A:: @ 825843A setvar VAR_0x8005, 2 setvar VAR_0x8006, 0 special CallBattleFactoryFunction - setvar VAR_0x8004, FRONTIER_UTIL_FUNC_2 + setvar VAR_0x8004, FRONTIER_UTIL_FUNC_SET_DATA setvar VAR_0x8005, 0 setvar VAR_0x8006, 0 special CallFrontierUtilFunc @@ -131,7 +130,7 @@ BattleFrontier_BattleFactoryLobby_EventScript_258592:: @ 8258592 special CallBattleFactoryFunction playse SE_SAVE waitse - setvar VAR_0x8004, FRONTIER_UTIL_FUNC_2 + setvar VAR_0x8004, FRONTIER_UTIL_FUNC_SET_DATA setvar VAR_0x8005, 3 setvar VAR_0x8006, 0 special CallFrontierUtilFunc @@ -180,7 +179,7 @@ BattleFrontier_BattleFactoryLobby_EventScript_258653:: @ 8258653 switch VAR_RESULT case 2, BattleFrontier_BattleFactoryLobby_EventScript_25879D case MULTI_B_PRESSED, BattleFrontier_BattleFactoryLobby_EventScript_25879D - setvar VAR_0x8004, FRONTIER_UTIL_FUNC_2 + setvar VAR_0x8004, FRONTIER_UTIL_FUNC_SET_DATA setvar VAR_0x8005, 1 copyvar VAR_0x8006, VAR_RESULT special CallFrontierUtilFunc @@ -194,7 +193,7 @@ BattleFrontier_BattleFactoryLobby_EventScript_2586B9:: @ 82586B9 setvar VAR_TEMP_0, 0 setvar VAR_0x8004, 0 special CallBattleFactoryFunction - setvar VAR_0x8004, FRONTIER_UTIL_FUNC_2 + setvar VAR_0x8004, FRONTIER_UTIL_FUNC_SET_DATA setvar VAR_0x8005, 0 setvar VAR_0x8006, 1 special CallFrontierUtilFunc @@ -202,7 +201,7 @@ BattleFrontier_BattleFactoryLobby_EventScript_2586B9:: @ 82586B9 setvar VAR_0x8005, 2 setvar VAR_0x8006, 1 special CallBattleFactoryFunction - setvar VAR_0x8004, FRONTIER_UTIL_FUNC_2 + setvar VAR_0x8004, FRONTIER_UTIL_FUNC_SET_DATA setvar VAR_0x8005, 3 setvar VAR_0x8006, 0 special CallFrontierUtilFunc @@ -246,7 +245,7 @@ BattleFrontier_BattleFactoryLobby_EventScript_258768:: @ 8258768 goto BattleFrontier_BattleFactoryLobby_EventScript_258606 BattleFrontier_BattleFactoryLobby_EventScript_258783:: @ 8258783 - setvar VAR_0x8004, FRONTIER_UTIL_FUNC_2 + setvar VAR_0x8004, FRONTIER_UTIL_FUNC_SET_DATA setvar VAR_0x8005, 0 setvar VAR_0x8006, 0 special CallFrontierUtilFunc @@ -300,10 +299,7 @@ BattleFrontier_BattleFactoryLobby_EventScript_2587D8:: @ 82587D8 BattleFrontier_BattleFactoryLobby_EventScript_2587E1:: @ 82587E1 lockall - setvar VAR_0x8004, FRONTIER_UTIL_FUNC_RESULTS_WINDOW - setvar VAR_0x8005, 4 - setvar VAR_0x8006, 0 - special CallFrontierUtilFunc + frontier_results FRONTIER_FACILITY_FACTORY, FRONTIER_MODE_SINGLES waitbuttonpress special RemoveRecordsWindow releaseall @@ -311,10 +307,7 @@ BattleFrontier_BattleFactoryLobby_EventScript_2587E1:: @ 82587E1 BattleFrontier_BattleFactoryLobby_EventScript_2587FA:: @ 82587FA lockall - setvar VAR_0x8004, FRONTIER_UTIL_FUNC_RESULTS_WINDOW - setvar VAR_0x8005, 4 - setvar VAR_0x8006, 1 - special CallFrontierUtilFunc + frontier_results FRONTIER_FACILITY_FACTORY, FRONTIER_MODE_DOUBLES waitbuttonpress special RemoveRecordsWindow releaseall diff --git a/data/maps/BattleFrontier_BattleFactoryPreBattleRoom/scripts.inc b/data/maps/BattleFrontier_BattleFactoryPreBattleRoom/scripts.inc index 97365a46e..7a92af994 100644 --- a/data/maps/BattleFrontier_BattleFactoryPreBattleRoom/scripts.inc +++ b/data/maps/BattleFrontier_BattleFactoryPreBattleRoom/scripts.inc @@ -73,11 +73,10 @@ BattleFrontier_BattleFactoryPreBattleRoom_EventScript_259BA5:: @ 8259BA5 playfanfare MUS_ME_ASA waitfanfare special HealPlayerParty - setvar VAR_0x8004, FRONTIER_UTIL_FUNC_9 - special CallFrontierUtilFunc - compare VAR_RESULT, 0 + frontier_getbrainstatus + compare VAR_RESULT, FRONTIER_BRAIN_NOT_READY goto_if_eq BattleFrontier_BattleFactoryPreBattleRoom_EventScript_259C26 - playse 263 + playse SE_TOREEYE waitse msgbox BattleFrontier_BattleFactoryPreBattleRoom_Text_25AC15, MSGBOX_DEFAULT closemessage @@ -94,13 +93,12 @@ BattleFrontier_BattleFactoryPreBattleRoom_EventScript_259BA5:: @ 8259BA5 end BattleFrontier_BattleFactoryPreBattleRoom_EventScript_259C13:: @ 8259C13 - setvar VAR_0x8004, FRONTIER_UTIL_FUNC_9 - special CallFrontierUtilFunc - compare VAR_RESULT, 0 + frontier_getbrainstatus + compare VAR_RESULT, FRONTIER_BRAIN_NOT_READY goto_if_ne BattleFrontier_BattleFactoryPreBattleRoom_EventScript_25A0B9 BattleFrontier_BattleFactoryPreBattleRoom_EventScript_259C26:: @ 8259C26 - setvar VAR_0x8004, FRONTIER_UTIL_FUNC_1 + setvar VAR_0x8004, FRONTIER_UTIL_FUNC_GET_DATA setvar VAR_0x8005, 2 special CallFrontierUtilFunc compare VAR_RESULT, 1 @@ -240,7 +238,7 @@ BattleFrontier_BattleFactoryPreBattleRoom_EventScript_259E69:: @ 8259E69 setvar VAR_0x8004, 10 setvar VAR_0x8005, 0 special CallBattleFactoryFunction - setvar VAR_0x8004, FRONTIER_UTIL_FUNC_2 + setvar VAR_0x8004, FRONTIER_UTIL_FUNC_SET_DATA setvar VAR_0x8005, 6 setvar VAR_0x8006, 1 special CallFrontierUtilFunc diff --git a/data/maps/BattleFrontier_BattlePalaceBattleRoom/scripts.inc b/data/maps/BattleFrontier_BattlePalaceBattleRoom/scripts.inc index 94c21a6d0..3c0da87b0 100644 --- a/data/maps/BattleFrontier_BattlePalaceBattleRoom/scripts.inc +++ b/data/maps/BattleFrontier_BattlePalaceBattleRoom/scripts.inc @@ -34,16 +34,14 @@ BattleFrontier_BattlePalaceBattleRoom_MapScript2_24F861: @ 824F861 BattleFrontier_BattlePalaceBattleRoom_EventScript_24F86B:: @ 824F86B showobjectat 1, MAP_BATTLE_FRONTIER_BATTLE_PALACE_BATTLE_ROOM - setvar VAR_0x8004, FRONTIER_UTIL_FUNC_1 - setvar VAR_0x8005, 2 - special CallFrontierUtilFunc + frontier_getbattlenum compare VAR_RESULT, 0 goto_if_eq BattleFrontier_BattlePalaceBattleRoom_EventScript_24F8B5 applymovement 1, BattleFrontier_BattlePalaceBattleRoom_Movement_24FE9B waitmovement 0 applymovement 3, BattleFrontier_BattlePalaceBattleRoom_Movement_24FEAC setvar VAR_TEMP_2, 1 - setvar VAR_0x8004, FRONTIER_UTIL_FUNC_2 + setvar VAR_0x8004, FRONTIER_UTIL_FUNC_SET_DATA setvar VAR_0x8005, 6 setvar VAR_0x8006, 1 special CallFrontierUtilFunc @@ -68,22 +66,14 @@ BattleFrontier_BattlePalaceBattleRoom_EventScript_24F8BF:: @ 824F8BF case 1, BattleFrontier_BattlePalaceBattleRoom_EventScript_24F911 BattleFrontier_BattlePalaceBattleRoom_EventScript_24F8FA:: @ 824F8FA - setvar VAR_0x8004, FRONTIER_UTIL_FUNC_2 - setvar VAR_0x8005, 0 - setvar VAR_0x8006, 4 - special CallFrontierUtilFunc + frontier_setchallengestatus CHALLENGE_STATUS_LOST goto BattleFrontier_BattlePalaceBattleRoom_EventScript_24FEBB BattleFrontier_BattlePalaceBattleRoom_EventScript_24F911:: @ 824F911 call BattleFrontier_BattlePalaceBattleRoom_EventScript_241EBA - setvar VAR_0x8004, FRONTIER_UTIL_FUNC_1 - setvar VAR_0x8005, 2 - special CallFrontierUtilFunc + frontier_getbattlenum addvar VAR_RESULT, 1 - setvar VAR_0x8004, FRONTIER_UTIL_FUNC_2 - setvar VAR_0x8005, 2 - copyvar VAR_0x8006, VAR_RESULT - special CallFrontierUtilFunc + frontier_setbattlenum VAR_RESULT switch VAR_RESULT case 7, BattleFrontier_BattlePalaceBattleRoom_EventScript_24FB28 applymovement 2, BattleFrontier_BattlePalaceBattleRoom_Movement_24FEA7 @@ -95,22 +85,17 @@ BattleFrontier_BattlePalaceBattleRoom_EventScript_24F911:: @ 824F911 msgbox BattleFrontier_BattlePalaceBattleRoom_Text_24FF00, MSGBOX_DEFAULT special LoadPlayerParty special SavePlayerParty - setvar VAR_0x8004, FRONTIER_UTIL_FUNC_LOAD_SELECTED_PARTY - setvar VAR_0x8005, FRONTIER_PARTY_SIZE - special CallFrontierUtilFunc + frontier_loadselectedmons playfanfare MUS_ME_ASA waitfanfare special HealPlayerParty BattleFrontier_BattlePalaceBattleRoom_EventScript_24F98A:: @ 824F98A - setvar VAR_0x8004, FRONTIER_UTIL_FUNC_9 - special CallFrontierUtilFunc + frontier_getbrainstatus copyvar VAR_TEMP_F, VAR_RESULT - compare VAR_RESULT, 0 + compare VAR_RESULT, FRONTIER_BRAIN_NOT_READY goto_if_ne BattleFrontier_BattlePalaceBattleRoom_EventScript_24FB61 - setvar VAR_0x8004, FRONTIER_UTIL_FUNC_1 - setvar VAR_0x8005, 2 - special CallFrontierUtilFunc + frontier_getbattlenum compare VAR_RESULT, 1 call_if_eq BattleFrontier_BattlePalaceBattleRoom_EventScript_24FE66 compare VAR_RESULT, 2 @@ -178,10 +163,7 @@ BattleFrontier_BattlePalaceBattleRoom_EventScript_24FB14:: @ 824FB14 goto BattleFrontier_BattlePalaceBattleRoom_EventScript_24F8BF BattleFrontier_BattlePalaceBattleRoom_EventScript_24FB28:: @ 824FB28 - setvar VAR_0x8004, FRONTIER_UTIL_FUNC_2 - setvar VAR_0x8005, 0 - setvar VAR_0x8006, 3 - special CallFrontierUtilFunc + frontier_setchallengestatus CHALLENGE_STATUS_WON goto BattleFrontier_BattlePalaceBattleRoom_EventScript_24FEBB BattleFrontier_BattlePalaceBattleRoom_EventScript_24FB3F:: @ 824FB3F @@ -241,16 +223,16 @@ BattleFrontier_BattlePalaceBattleRoom_EventScript_24FC06:: @ 824FC06 applymovement 2, BattleFrontier_BattlePalaceBattleRoom_Movement_24FEF2 waitmovement 0 switch VAR_TEMP_F - case 2, BattleFrontier_BattlePalaceBattleRoom_EventScript_24FD3A - case 3, BattleFrontier_BattlePalaceBattleRoom_EventScript_24FCAA - case 4, BattleFrontier_BattlePalaceBattleRoom_EventScript_24FD67 - setvar VAR_0x8004, FRONTIER_UTIL_FUNC_1 + case FRONTIER_BRAIN_GOLD, BattleFrontier_BattlePalaceBattleRoom_EventScript_24FD3A + case FRONTIER_BRAIN_STREAK, BattleFrontier_BattlePalaceBattleRoom_EventScript_24FCAA + case FRONTIER_BRAIN_STREAK_LONG, BattleFrontier_BattlePalaceBattleRoom_EventScript_24FD67 + setvar VAR_0x8004, FRONTIER_UTIL_FUNC_GET_DATA setvar VAR_0x8005, 7 special CallFrontierUtilFunc compare VAR_RESULT, 0 goto_if_ne BattleFrontier_BattlePalaceBattleRoom_EventScript_24FCAA msgbox BattleFrontier_BattlePalaceBattleRoom_Text_2501C1, MSGBOX_DEFAULT - setvar VAR_0x8004, FRONTIER_UTIL_FUNC_2 + setvar VAR_0x8004, FRONTIER_UTIL_FUNC_SET_DATA setvar VAR_0x8005, 7 special CallFrontierUtilFunc @@ -287,13 +269,13 @@ BattleFrontier_BattlePalaceBattleRoom_EventScript_24FCC7:: @ 824FCC7 goto BattleFrontier_BattlePalaceBattleRoom_EventScript_24FB28 BattleFrontier_BattlePalaceBattleRoom_EventScript_24FD3A:: @ 824FD3A - setvar VAR_0x8004, FRONTIER_UTIL_FUNC_1 + setvar VAR_0x8004, FRONTIER_UTIL_FUNC_GET_DATA setvar VAR_0x8005, 7 special CallFrontierUtilFunc compare VAR_RESULT, 0 goto_if_ne BattleFrontier_BattlePalaceBattleRoom_EventScript_24FD67 msgbox BattleFrontier_BattlePalaceBattleRoom_Text_250485, MSGBOX_DEFAULT - setvar VAR_0x8004, FRONTIER_UTIL_FUNC_2 + setvar VAR_0x8004, FRONTIER_UTIL_FUNC_SET_DATA setvar VAR_0x8005, 7 special CallFrontierUtilFunc @@ -333,7 +315,7 @@ BattleFrontier_BattlePalaceBattleRoom_EventScript_24FDF7:: @ 824FDF7 VerdanturfTown_BattleTentBattleRoom_EventScript_24FDF7:: @ 824FDF7 closemessage setvar VAR_TEMP_2, 0 - setvar VAR_0x8004, FRONTIER_UTIL_FUNC_2 + setvar VAR_0x8004, FRONTIER_UTIL_FUNC_SET_DATA setvar VAR_0x8005, 6 setvar VAR_0x8006, 0 special CallFrontierUtilFunc @@ -345,8 +327,7 @@ VerdanturfTown_BattleTentBattleRoom_EventScript_24FDF7:: @ 824FDF7 setvar VAR_0x8004, FRONTIER_UTIL_FUNC_18 special CallFrontierUtilFunc special HealPlayerParty - setvar VAR_0x8004, FRONTIER_UTIL_FUNC_21 - special CallFrontierUtilFunc + frontier_resetsketch return BattleFrontier_BattlePalaceBattleRoom_MapScript2_24FE34: @ 824FE34 diff --git a/data/maps/BattleFrontier_BattlePalaceCorridor/scripts.inc b/data/maps/BattleFrontier_BattlePalaceCorridor/scripts.inc index 5df680aa8..5922b668e 100644 --- a/data/maps/BattleFrontier_BattlePalaceCorridor/scripts.inc +++ b/data/maps/BattleFrontier_BattlePalaceCorridor/scripts.inc @@ -25,7 +25,7 @@ BattleFrontier_BattlePalaceCorridor_EventScript_24F4B3:: @ 824F4B3 compare VAR_RESULT, 4 call_if_eq BattleFrontier_BattlePalaceCorridor_EventScript_24F5AF closemessage - setvar VAR_0x8004, FRONTIER_UTIL_FUNC_1 + setvar VAR_0x8004, FRONTIER_UTIL_FUNC_GET_DATA setvar VAR_0x8005, 1 special CallFrontierUtilFunc compare VAR_RESULT, 1 diff --git a/data/maps/BattleFrontier_BattlePalaceLobby/scripts.inc b/data/maps/BattleFrontier_BattlePalaceLobby/scripts.inc index 649b20f87..7d7e24035 100644 --- a/data/maps/BattleFrontier_BattlePalaceLobby/scripts.inc +++ b/data/maps/BattleFrontier_BattlePalaceLobby/scripts.inc @@ -21,8 +21,7 @@ BattleFrontier_BattlePalaceLobby_MapScript2_24D79D: @ 824D79D .2byte 0 BattleFrontier_BattlePalaceLobby_EventScript_24D7C7:: @ 824D7C7 - setvar VAR_0x8004, FRONTIER_UTIL_FUNC_0 - special CallFrontierUtilFunc + frontier_checkoutcome end BattleFrontier_BattlePalaceLobby_EventScript_24D7D0:: @ 824D7D0 @@ -37,7 +36,7 @@ BattleFrontier_BattlePalaceLobby_EventScript_24D7D0:: @ 824D7D0 setvar VAR_0x8005, 2 setvar VAR_0x8006, 0 special CallBattlePalaceFunction - setvar VAR_0x8004, FRONTIER_UTIL_FUNC_2 + setvar VAR_0x8004, FRONTIER_UTIL_FUNC_SET_DATA setvar VAR_0x8005, 0 setvar VAR_0x8006, 0 special CallFrontierUtilFunc @@ -123,7 +122,7 @@ BattleFrontier_BattlePalaceLobby_EventScript_24D908:: @ 824D908 special CallBattlePalaceFunction playse SE_SAVE waitse - setvar VAR_0x8004, FRONTIER_UTIL_FUNC_2 + setvar VAR_0x8004, FRONTIER_UTIL_FUNC_SET_DATA setvar VAR_0x8005, 3 setvar VAR_0x8006, 0 special CallFrontierUtilFunc @@ -182,7 +181,7 @@ BattleFrontier_BattlePalaceLobby_EventScript_24D9E6:: @ 824D9E6 special CallFrontierUtilFunc compare VAR_0x8004, 1 goto_if_eq BattleFrontier_BattlePalaceLobby_EventScript_24DB45 - setvar VAR_0x8004, FRONTIER_UTIL_FUNC_2 + setvar VAR_0x8004, FRONTIER_UTIL_FUNC_SET_DATA setvar VAR_0x8005, 1 copyvar VAR_0x8006, VAR_RESULT special CallFrontierUtilFunc @@ -203,7 +202,7 @@ BattleFrontier_BattlePalaceLobby_EventScript_24D9E6:: @ 824D9E6 BattleFrontier_BattlePalaceLobby_EventScript_24DA87:: @ 824DA87 setvar VAR_TEMP_0, 0 - setvar VAR_0x8004, FRONTIER_UTIL_FUNC_2 + setvar VAR_0x8004, FRONTIER_UTIL_FUNC_SET_DATA setvar VAR_0x8005, 4 special CallFrontierUtilFunc setvar VAR_0x8004, 0 @@ -212,11 +211,11 @@ BattleFrontier_BattlePalaceLobby_EventScript_24DA87:: @ 824DA87 setvar VAR_0x8005, 2 setvar VAR_0x8006, 1 special CallBattlePalaceFunction - setvar VAR_0x8004, FRONTIER_UTIL_FUNC_2 + setvar VAR_0x8004, FRONTIER_UTIL_FUNC_SET_DATA setvar VAR_0x8005, 0 setvar VAR_0x8006, 1 special CallFrontierUtilFunc - setvar VAR_0x8004, FRONTIER_UTIL_FUNC_2 + setvar VAR_0x8004, FRONTIER_UTIL_FUNC_SET_DATA setvar VAR_0x8005, 3 setvar VAR_0x8006, 0 special CallFrontierUtilFunc @@ -230,9 +229,7 @@ BattleFrontier_BattlePalaceLobby_EventScript_24DA87:: @ 824DA87 BattleFrontier_BattlePalaceLobby_EventScript_24DAF3:: @ 824DAF3 special SavePlayerParty - setvar VAR_0x8004, FRONTIER_UTIL_FUNC_LOAD_SELECTED_PARTY - setvar VAR_0x8005, FRONTIER_PARTY_SIZE - special CallFrontierUtilFunc + frontier_loadselectedmons msgbox BattleFrontier_BattlePalaceLobby_Text_24E408, MSGBOX_DEFAULT closemessage call BattleFrontier_BattlePalaceLobby_EventScript_24DBBC @@ -265,7 +262,7 @@ BattleFrontier_BattlePalaceLobby_EventScript_24DB6D:: @ 824DB6D goto BattleFrontier_BattlePalaceLobby_EventScript_24DB9C BattleFrontier_BattlePalaceLobby_EventScript_24DB7A:: @ 824DB7A - setvar VAR_0x8004, FRONTIER_UTIL_FUNC_2 + setvar VAR_0x8004, FRONTIER_UTIL_FUNC_SET_DATA setvar VAR_0x8005, 0 setvar VAR_0x8006, 0 special CallFrontierUtilFunc @@ -361,10 +358,7 @@ BattleFrontier_BattlePalaceLobby_Movement_24DC4C: @ 824DC4C BattleFrontier_BattlePalaceLobby_EventScript_24DC50:: @ 824DC50 lockall - setvar VAR_0x8004, FRONTIER_UTIL_FUNC_RESULTS_WINDOW - setvar VAR_0x8005, 2 - setvar VAR_0x8006, 0 - special CallFrontierUtilFunc + frontier_results FRONTIER_FACILITY_PALACE, FRONTIER_MODE_SINGLES waitbuttonpress special RemoveRecordsWindow releaseall @@ -372,10 +366,7 @@ BattleFrontier_BattlePalaceLobby_EventScript_24DC50:: @ 824DC50 BattleFrontier_BattlePalaceLobby_EventScript_24DC69:: @ 824DC69 lockall - setvar VAR_0x8004, FRONTIER_UTIL_FUNC_RESULTS_WINDOW - setvar VAR_0x8005, 2 - setvar VAR_0x8006, 1 - special CallFrontierUtilFunc + frontier_results FRONTIER_FACILITY_PALACE, FRONTIER_MODE_DOUBLES waitbuttonpress special RemoveRecordsWindow releaseall diff --git a/data/maps/BattleFrontier_BattlePikeCorridor/scripts.inc b/data/maps/BattleFrontier_BattlePikeCorridor/scripts.inc index 6bfd5b045..b4205e01f 100644 --- a/data/maps/BattleFrontier_BattlePikeCorridor/scripts.inc +++ b/data/maps/BattleFrontier_BattlePikeCorridor/scripts.inc @@ -9,29 +9,27 @@ BattleFrontier_BattlePikeCorridor_MapScript2_25C77C: @ 825C77C BattleFrontier_BattlePikeCorridor_EventScript_25C786:: @ 825C786 delay 16 - setvar VAR_0x8004, FRONTIER_UTIL_FUNC_2 + setvar VAR_0x8004, FRONTIER_UTIL_FUNC_SET_DATA setvar VAR_0x8005, 2 setvar VAR_0x8006, 1 special CallFrontierUtilFunc setvar VAR_0x8004, BATTLE_PIKE_FUNC_CLEAR_TRAINER_IDS special CallBattlePikeFunction - setvar VAR_0x8004, BATTLE_PIKE_FUNC_SET_HEALING_ROOMS_DISABLED - setvar VAR_0x8005, 1 - special CallBattlePikeFunction + battlepike_nohealing TRUE applymovement EVENT_OBJ_ID_PLAYER, BattleFrontier_BattlePikeCorridor_Movement_25C80B applymovement 1, BattleFrontier_BattlePikeCorridor_Movement_25C812 waitmovement 0 lockall - msgbox BattleFrontier_BattlePikeCorridor_Text_25C817, MSGBOX_DEFAULT + msgbox BattleFrontier_BattlePikeCorridor_Text_YourChallengeHasBegun, MSGBOX_DEFAULT closemessage releaseall applymovement EVENT_OBJ_ID_PLAYER, BattleFrontier_BattlePikeCorridor_Movement_25C80E waitmovement 0 - setvar VAR_0x8004, FRONTIER_UTIL_FUNC_2 + setvar VAR_0x8004, FRONTIER_UTIL_FUNC_SET_DATA setvar VAR_0x8005, 0 setvar VAR_0x8006, 99 special CallFrontierUtilFunc - call BattleFrontier_BattlePikeCorridor_EventScript_25BB49 + call BattleFrontier_BattlePike_EventScript_CloseCurtain warpsilent MAP_BATTLE_FRONTIER_BATTLE_PIKE_THREE_PATH_ROOM, 255, 6, 10 waitstate end @@ -63,7 +61,7 @@ BattleFrontier_BattlePikeCorridor_Movement_25C812: @ 825C812 face_down step_end -BattleFrontier_BattlePikeCorridor_Text_25C817: @ 825C817 +BattleFrontier_BattlePikeCorridor_Text_YourChallengeHasBegun: @ 825C817 .string "Your Battle Choice challenge\n" .string "has now begun…$" diff --git a/data/maps/BattleFrontier_BattlePikeLobby/scripts.inc b/data/maps/BattleFrontier_BattlePikeLobby/scripts.inc index d145ba429..5ce20c009 100644 --- a/data/maps/BattleFrontier_BattlePikeLobby/scripts.inc +++ b/data/maps/BattleFrontier_BattlePikeLobby/scripts.inc @@ -20,8 +20,7 @@ BattleFrontier_BattlePikeLobby_EventScript_25B6FD:: @ 825B6FD end BattleFrontier_BattlePikeLobby_EventScript_25B707:: @ 825B707 - setvar VAR_0x8004, FRONTIER_UTIL_FUNC_0 - special CallFrontierUtilFunc + frontier_checkoutcome end BattleFrontier_BattlePikeLobby_EventScript_25B710:: @ 825B710 @@ -31,15 +30,12 @@ BattleFrontier_BattlePikeLobby_EventScript_25B710:: @ 825B710 lockall msgbox BattleFrontier_BattlePikeLobby_Text_25C2E0, MSGBOX_DEFAULT closemessage - setvar VAR_0x8004, BATTLE_PIKE_FUNC_SET_DATA - setvar VAR_0x8005, 1 - setvar VAR_0x8006, 0 - special CallBattlePikeFunction + battlepike_setstreak 0 setvar VAR_0x8004, BATTLE_PIKE_FUNC_SET_DATA setvar VAR_0x8005, 4 setvar VAR_0x8006, 0 special CallBattlePikeFunction - setvar VAR_0x8004, FRONTIER_UTIL_FUNC_2 + setvar VAR_0x8004, FRONTIER_UTIL_FUNC_SET_DATA setvar VAR_0x8005, 0 setvar VAR_0x8006, 0 special CallFrontierUtilFunc @@ -99,7 +95,7 @@ BattleFrontier_BattlePikeLobby_EventScript_25B806:: @ 825B806 waitmessage setvar VAR_0x8004, FRONTIER_UTIL_FUNC_8 special CallFrontierUtilFunc - setvar VAR_0x8004, FRONTIER_UTIL_FUNC_2 + setvar VAR_0x8004, FRONTIER_UTIL_FUNC_SET_DATA setvar VAR_0x8005, 2 setvar VAR_0x8006, 0 special CallFrontierUtilFunc @@ -151,7 +147,7 @@ BattleFrontier_BattlePikeLobby_EventScript_25B8BB:: @ 825B8BB special CallFrontierUtilFunc compare VAR_0x8004, 1 goto_if_eq BattleFrontier_BattlePikeLobby_EventScript_25BA27 - setvar VAR_0x8004, FRONTIER_UTIL_FUNC_2 + setvar VAR_0x8004, FRONTIER_UTIL_FUNC_SET_DATA setvar VAR_0x8005, 1 copyvar VAR_0x8006, VAR_RESULT special CallFrontierUtilFunc @@ -173,12 +169,12 @@ BattleFrontier_BattlePikeLobby_EventScript_25B8BB:: @ 825B8BB BattleFrontier_BattlePikeLobby_EventScript_25B95C:: @ 825B95C setvar VAR_TEMP_0, 0 setvar VAR_TEMP_1, 0 - setvar VAR_0x8004, FRONTIER_UTIL_FUNC_2 + setvar VAR_0x8004, FRONTIER_UTIL_FUNC_SET_DATA setvar VAR_0x8005, 4 special CallFrontierUtilFunc setvar VAR_0x8004, BATTLE_PIKE_FUNC_INIT_CHALLENGE special CallBattlePikeFunction - setvar VAR_0x8004, FRONTIER_UTIL_FUNC_2 + setvar VAR_0x8004, FRONTIER_UTIL_FUNC_SET_DATA setvar VAR_0x8005, 0 setvar VAR_0x8006, 1 special CallFrontierUtilFunc @@ -188,7 +184,7 @@ BattleFrontier_BattlePikeLobby_EventScript_25B95C:: @ 825B95C special CallBattlePikeFunction setvar VAR_0x8004, BATTLE_PIKE_FUNC_SAVE_MON_HELD_ITEMS special CallBattlePikeFunction - setvar VAR_0x8004, FRONTIER_UTIL_FUNC_2 + setvar VAR_0x8004, FRONTIER_UTIL_FUNC_SET_DATA setvar VAR_0x8005, 3 setvar VAR_0x8006, 0 special CallFrontierUtilFunc @@ -202,16 +198,14 @@ BattleFrontier_BattlePikeLobby_EventScript_25B95C:: @ 825B95C compare VAR_RESULT, 0 goto_if_eq BattleFrontier_BattlePikeLobby_EventScript_25BA5C special SavePlayerParty - setvar VAR_0x8004, FRONTIER_UTIL_FUNC_LOAD_SELECTED_PARTY - setvar VAR_0x8005, FRONTIER_PARTY_SIZE - special CallFrontierUtilFunc + frontier_loadselectedmons msgbox BattleFrontier_BattlePikeLobby_Text_25C130, MSGBOX_DEFAULT closemessage setvar VAR_0x8004, FRONTIER_UTIL_FUNC_SET_FRONTIER_TRAINERS special CallFrontierUtilFunc call BattleFrontier_BattlePikeLobby_EventScript_25BA94 special HealPlayerParty - call BattleFrontier_BattlePikeLobby_EventScript_25BB49 + call BattleFrontier_BattlePike_EventScript_CloseCurtain warpsilent MAP_BATTLE_FRONTIER_BATTLE_PIKE_CORRIDOR, 255, 6, 7 setvar VAR_TEMP_0, 0 waitstate @@ -235,7 +229,7 @@ BattleFrontier_BattlePikeLobby_EventScript_25BA4F:: @ 825BA4F goto BattleFrontier_BattlePikeLobby_EventScript_25BA7E BattleFrontier_BattlePikeLobby_EventScript_25BA5C:: @ 825BA5C - setvar VAR_0x8004, FRONTIER_UTIL_FUNC_2 + setvar VAR_0x8004, FRONTIER_UTIL_FUNC_SET_DATA setvar VAR_0x8005, 0 setvar VAR_0x8006, 0 special CallFrontierUtilFunc @@ -253,9 +247,7 @@ BattleFrontier_BattlePikeLobby_EventScript_25BA7E:: @ 825BA7E BattleFrontier_BattlePikeLobby_EventScript_25BA80:: @ 825BA80 lockall - setvar VAR_0x8004, FRONTIER_UTIL_FUNC_RESULTS_WINDOW - setvar VAR_0x8005, 5 - special CallFrontierUtilFunc + frontier_results FRONTIER_FACILITY_PIKE waitbuttonpress special RemoveRecordsWindow releaseall @@ -325,10 +317,7 @@ BattleFrontier_BattlePikeLobby_EventScript_25BB47:: @ 825BB47 releaseall end -BattleFrontier_BattlePikeCorridor_EventScript_25BB49:: @ 825BB49 -BattleFrontier_BattlePikeLobby_EventScript_25BB49:: @ 825BB49 -BattleFrontier_BattlePikeRandomRoom1_EventScript_25BB49:: @ 825BB49 -BattleFrontier_BattlePikeThreePathRoom_EventScript_25BB49:: @ 825BB49 +BattleFrontier_BattlePike_EventScript_CloseCurtain:: @ 825BB49 playse SE_CURTAIN special CloseBattlePikeCurtain waitstate diff --git a/data/maps/BattleFrontier_BattlePikeRandomRoom1/map.json b/data/maps/BattleFrontier_BattlePikeRandomRoom1/map.json deleted file mode 100644 index 630a0e335..000000000 --- a/data/maps/BattleFrontier_BattlePikeRandomRoom1/map.json +++ /dev/null @@ -1,111 +0,0 @@ -{ - "id": "MAP_BATTLE_FRONTIER_BATTLE_PIKE_RANDOM_ROOM1", - "name": "BattleFrontier_BattlePikeRandomRoom1", - "layout": "LAYOUT_BATTLE_FRONTIER_BATTLE_PIKE_RANDOM_ROOM1", - "music": "MUS_B_TUBE", - "region_map_section": "MAPSEC_BATTLE_FRONTIER", - "requires_flash": false, - "weather": "WEATHER_NONE", - "map_type": "MAP_TYPE_INDOOR", - "allow_bike": false, - "allow_escape_rope": false, - "allow_running": true, - "show_map_name": false, - "battle_scene": "MAP_BATTLE_SCENE_NORMAL", - "connections": null, - "object_events": [ - { - "graphics_id": "EVENT_OBJ_GFX_VAR_0", - "x": 4, - "y": 4, - "elevation": 3, - "movement_type": "MOVEMENT_TYPE_FACE_DOWN", - "movement_range_x": 1, - "movement_range_y": 1, - "trainer_type": "0", - "trainer_sight_or_berry_tree_id": "0", - "script": "BattleFrontier_BattlePikeRandomRoom1_EventScript_25D7ED", - "flag": "0" - }, - { - "graphics_id": "EVENT_OBJ_GFX_VAR_1", - "x": 3, - "y": 4, - "elevation": 3, - "movement_type": "MOVEMENT_TYPE_FACE_DOWN", - "movement_range_x": 1, - "movement_range_y": 1, - "trainer_type": "0", - "trainer_sight_or_berry_tree_id": "0", - "script": "BattleFrontier_BattlePikeRandomRoom1_EventScript_25D88D", - "flag": "0" - } - ], - "warp_events": [], - "coord_events": [ - { - "type": "trigger", - "x": 4, - "y": 3, - "elevation": 3, - "var": "VAR_TEMP_1", - "var_value": "0", - "script": "BattleFrontier_BattlePikeRandomRoom1_EventScript_2C40A2" - }, - { - "type": "trigger", - "x": 3, - "y": 6, - "elevation": 3, - "var": "VAR_TEMP_2", - "var_value": "0", - "script": "BattleFrontier_BattlePikeRandomRoom1_EventScript_2C4082" - }, - { - "type": "trigger", - "x": 3, - "y": 7, - "elevation": 3, - "var": "VAR_TEMP_3", - "var_value": "1", - "script": "BattleFrontier_BattlePikeRandomRoom1_EventScript_2C408D" - }, - { - "type": "trigger", - "x": 4, - "y": 6, - "elevation": 3, - "var": "VAR_TEMP_2", - "var_value": "0", - "script": "BattleFrontier_BattlePikeRandomRoom1_EventScript_2C4082" - }, - { - "type": "trigger", - "x": 5, - "y": 6, - "elevation": 3, - "var": "VAR_TEMP_2", - "var_value": "0", - "script": "BattleFrontier_BattlePikeRandomRoom1_EventScript_2C4082" - }, - { - "type": "trigger", - "x": 4, - "y": 7, - "elevation": 3, - "var": "VAR_TEMP_3", - "var_value": "1", - "script": "BattleFrontier_BattlePikeRandomRoom1_EventScript_2C408D" - }, - { - "type": "trigger", - "x": 5, - "y": 7, - "elevation": 3, - "var": "VAR_TEMP_3", - "var_value": "1", - "script": "BattleFrontier_BattlePikeRandomRoom1_EventScript_2C408D" - } - ], - "bg_events": [] -} \ No newline at end of file diff --git a/data/maps/BattleFrontier_BattlePikeRandomRoom1/scripts.inc b/data/maps/BattleFrontier_BattlePikeRandomRoom1/scripts.inc deleted file mode 100644 index deb0a7974..000000000 --- a/data/maps/BattleFrontier_BattlePikeRandomRoom1/scripts.inc +++ /dev/null @@ -1,895 +0,0 @@ -BattleFrontier_BattlePikeRandomRoom1_MapScripts:: @ 825D152 - map_script MAP_SCRIPT_ON_RESUME, BattleFrontier_BattlePikeRandomRoom1_MapScript1_2C423E - map_script MAP_SCRIPT_ON_TRANSITION, BattleFrontier_BattlePikeRandomRoom1_MapScript1_2C3E25 - map_script MAP_SCRIPT_ON_FRAME_TABLE, BattleFrontier_BattlePikeRandomRoom1_MapScript2_25D167 - map_script MAP_SCRIPT_ON_WARP_INTO_MAP_TABLE, BattleFrontier_BattlePikeRandomRoom1_MapScript2_2C3EDE - .byte 0 - -BattleFrontier_BattlePikeRandomRoom1_MapScript2_25D167: @ 825D167 - map_script_2 VAR_TEMP_0, 0, BattleFrontier_BattlePikeRandomRoom1_EventScript_25D171 - .2byte 0 - -BattleFrontier_BattlePikeRandomRoom1_EventScript_25D171:: @ 825D171 - setvar VAR_TEMP_0, 1 - setvar VAR_0x8004, BATTLE_PIKE_FUNC_GET_ROOM_TYPE - special CallBattlePikeFunction - switch VAR_RESULT - case 0, BattleFrontier_BattlePikeRandomRoom1_EventScript_25D1C6 - case 1, BattleFrontier_BattlePikeRandomRoom1_EventScript_25D50E - case 3, BattleFrontier_BattlePikeRandomRoom1_EventScript_25D605 - case 6, BattleFrontier_BattlePikeRandomRoom1_EventScript_25D231 - case 7, BattleFrontier_BattlePikeRandomRoom1_EventScript_25D53E - case 8, BattleFrontier_BattlePikeRandomRoom1_EventScript_25D2BF - end - -BattleFrontier_BattlePikeRandomRoom1_EventScript_25D1C6:: @ 825D1C6 - lockall - delay 16 - applymovement 1, BattleFrontier_BattlePikeRandomRoom1_Movement_25D795 - waitmovement 0 - setvar VAR_0x8004, BATTLE_PIKE_FUNC_BUFFER_RECORD_MIX_MSG - setvar VAR_0x8005, 0 - special CallBattlePikeFunction - msgbox gStringVar4, MSGBOX_DEFAULT - waitmessage - closemessage - releaseall - setvar VAR_0x8004, SPECIAL_BATTLE_PIKE_SINGLE - setvar VAR_0x8005, 0 - special DoSpecialTrainerBattle - waitstate - switch VAR_RESULT - case 1, BattleFrontier_BattlePikeRandomRoom1_EventScript_25D226 - -BattleFrontier_BattlePikeRandomRoom1_EventScript_25D20A:: @ 825D20A - setvar VAR_0x8004, FRONTIER_UTIL_FUNC_2 - setvar VAR_0x8005, 0 - setvar VAR_0x8006, 4 - special CallFrontierUtilFunc - warp MAP_BATTLE_FRONTIER_BATTLE_PIKE_LOBBY, 255, 5, 6 - waitstate - end - -BattleFrontier_BattlePikeRandomRoom1_EventScript_25D226:: @ 825D226 - applymovement 1, BattleFrontier_BattlePikeRandomRoom1_Movement_25D798 - waitmovement 0 - end - -BattleFrontier_BattlePikeRandomRoom1_EventScript_25D231:: @ 825D231 - lockall - delay 16 - msgbox BattleFrontier_BattlePikeRandomRoom1_Text_25DDFE, MSGBOX_DEFAULT - waitmessage - closemessage - applymovement 1, BattleFrontier_BattlePikeRandomRoom1_Movement_25D795 - waitmovement 0 - setvar VAR_0x8004, BATTLE_PIKE_FUNC_BUFFER_RECORD_MIX_MSG - setvar VAR_0x8005, 0 - special CallBattlePikeFunction - msgbox gStringVar4, MSGBOX_DEFAULT - waitmessage - closemessage - releaseall - setvar VAR_0x8004, SPECIAL_BATTLE_PIKE_SINGLE - setvar VAR_0x8005, 0 - special DoSpecialTrainerBattle - waitstate - switch VAR_RESULT - case 1, BattleFrontier_BattlePikeRandomRoom1_EventScript_25D285 - goto BattleFrontier_BattlePikeRandomRoom1_EventScript_25D20A - end - -BattleFrontier_BattlePikeRandomRoom1_EventScript_25D285:: @ 825D285 - applymovement 1, BattleFrontier_BattlePikeRandomRoom1_Movement_25D798 - waitmovement 0 - applymovement 2, BattleFrontier_BattlePikeRandomRoom1_Movement_25D7B6 - waitmovement 0 - lock - faceplayer - msgbox BattleFrontier_BattlePikeRandomRoom1_Text_25DE3F, MSGBOX_DEFAULT - playfanfare MUS_ME_ASA - waitfanfare - special HealPlayerParty - msgbox BattleFrontier_BattlePikeRandomRoom1_Text_25DE94, MSGBOX_DEFAULT - closemessage - release - applymovement 2, BattleFrontier_BattlePikeRandomRoom1_Movement_25D798 - waitmovement 0 - end - -BattleFrontier_BattlePikeRandomRoom1_EventScript_25D2BF:: @ 825D2BF - delay 22 - lockall - applymovement 2, BattleFrontier_BattlePikeRandomRoom1_Movement_25D7DF - waitmovement 0 - setvar VAR_0x8004, BATTLE_PIKE_FUNC_HEAL_MONS_BEFORE_QUEEN - special CallBattlePikeFunction - switch VAR_RESULT - case 0, BattleFrontier_BattlePikeRandomRoom1_EventScript_25D4DC - case 1, BattleFrontier_BattlePikeRandomRoom1_EventScript_25D4EA - case 2, BattleFrontier_BattlePikeRandomRoom1_EventScript_25D4FC - -BattleFrontier_BattlePikeRandomRoom1_EventScript_25D2FB:: @ 825D2FB - msgbox BattleFrontier_BattlePikeRandomRoom1_Text_25E311, MSGBOX_DEFAULT - closemessage - special SpawnCameraObject - applymovement EVENT_OBJ_ID_CAMERA, BattleFrontier_BattlePikeRandomRoom1_Movement_25D9B0 - applymovement 2, BattleFrontier_BattlePikeRandomRoom1_Movement_25D7E2 - waitmovement 0 - playse 267 - call BattleFrontier_BattlePikeRandomRoom1_EventScript_25D8E7 - delay 4 - call BattleFrontier_BattlePikeRandomRoom1_EventScript_25D8A4 - delay 4 - call BattleFrontier_BattlePikeRandomRoom1_EventScript_25D96D - delay 4 - waitse - delay 60 - playse 268 - delay 65 - call BattleFrontier_BattlePikeRandomRoom1_EventScript_25D8A4 - showobjectat 1, MAP_BATTLE_FRONTIER_BATTLE_PIKE_RANDOM_ROOM1 - delay 4 - call BattleFrontier_BattlePikeRandomRoom1_EventScript_25D8E7 - delay 4 - call BattleFrontier_BattlePikeRandomRoom1_EventScript_25D92A - waitse - applymovement 1, BattleFrontier_BattlePikeRandomRoom1_Movement_25D7E7 - waitmovement 0 - setvar VAR_0x8004, BATTLE_PIKE_FUNC_GET_QUEEN_FIGHT_TYPE - special CallBattlePikeFunction - switch VAR_RESULT - case 2, BattleFrontier_BattlePikeRandomRoom1_EventScript_25D416 - case 3, BattleFrontier_BattlePikeRandomRoom1_EventScript_25D3BD - case 4, BattleFrontier_BattlePikeRandomRoom1_EventScript_25D443 - setvar VAR_0x8004, FRONTIER_UTIL_FUNC_1 - setvar VAR_0x8005, 7 - special CallFrontierUtilFunc - compare VAR_RESULT, 0 - goto_if_ne BattleFrontier_BattlePikeRandomRoom1_EventScript_25D3BD - msgbox BattleFrontier_BattlePikeRandomRoom1_Text_25DED2, MSGBOX_DEFAULT - setvar VAR_0x8004, FRONTIER_UTIL_FUNC_2 - setvar VAR_0x8005, 7 - special CallFrontierUtilFunc - -BattleFrontier_BattlePikeRandomRoom1_EventScript_25D3BD:: @ 825D3BD - msgbox BattleFrontier_BattlePikeRandomRoom1_Text_25DF71, MSGBOX_DEFAULT - call BattleFrontier_BattlePikeRandomRoom1_EventScript_25D77B - compare VAR_RESULT, 1 - goto_if_eq BattleFrontier_BattlePikeRandomRoom1_EventScript_25D3DA - goto BattleFrontier_BattlePikeRandomRoom1_EventScript_25D20A - -BattleFrontier_BattlePikeRandomRoom1_EventScript_25D3DA:: @ 825D3DA - setvar VAR_0x8004, FRONTIER_UTIL_FUNC_GET_FACILITY_SYMBOLS - special CallFrontierUtilFunc - compare VAR_RESULT, 0 - goto_if_ne BattleFrontier_BattlePikeRandomRoom1_EventScript_25D49D - msgbox BattleFrontier_BattlePikeRandomRoom1_Text_25DFA2, MSGBOX_DEFAULT - waitmessage - playfanfare MUS_ME_SYMBOLGET - message BattleFrontier_BattlePikeRandomRoom1_Text_25DFD0 - waitmessage - waitfanfare - setvar VAR_0x8004, FRONTIER_UTIL_FUNC_GIVE_FACILITY_SYMBOL - special CallFrontierUtilFunc - msgbox BattleFrontier_BattlePikeRandomRoom1_Text_25E003, MSGBOX_DEFAULT - closemessage - goto BattleFrontier_BattlePikeRandomRoom1_EventScript_25D49D - -BattleFrontier_BattlePikeRandomRoom1_EventScript_25D416:: @ 825D416 - setvar VAR_0x8004, FRONTIER_UTIL_FUNC_1 - setvar VAR_0x8005, 7 - special CallFrontierUtilFunc - compare VAR_RESULT, 0 - goto_if_ne BattleFrontier_BattlePikeRandomRoom1_EventScript_25D443 - msgbox BattleFrontier_BattlePikeRandomRoom1_Text_25E02C, MSGBOX_DEFAULT - setvar VAR_0x8004, FRONTIER_UTIL_FUNC_2 - setvar VAR_0x8005, 7 - special CallFrontierUtilFunc - -BattleFrontier_BattlePikeRandomRoom1_EventScript_25D443:: @ 825D443 - msgbox BattleFrontier_BattlePikeRandomRoom1_Text_25E0E8, MSGBOX_DEFAULT - call BattleFrontier_BattlePikeRandomRoom1_EventScript_25D77B - compare VAR_RESULT, 1 - goto_if_eq BattleFrontier_BattlePikeRandomRoom1_EventScript_25D460 - goto BattleFrontier_BattlePikeRandomRoom1_EventScript_25D20A - -BattleFrontier_BattlePikeRandomRoom1_EventScript_25D460:: @ 825D460 - setvar VAR_0x8004, FRONTIER_UTIL_FUNC_GET_FACILITY_SYMBOLS - special CallFrontierUtilFunc - compare VAR_RESULT, 2 - goto_if_eq BattleFrontier_BattlePikeRandomRoom1_EventScript_25D49D - msgbox BattleFrontier_BattlePikeRandomRoom1_Text_25E0F6, MSGBOX_DEFAULT - waitmessage - playfanfare MUS_ME_SYMBOLGET - message BattleFrontier_BattlePikeRandomRoom1_Text_25E118 - waitmessage - waitfanfare - setvar VAR_0x8004, FRONTIER_UTIL_FUNC_GIVE_FACILITY_SYMBOL - special CallFrontierUtilFunc - msgbox BattleFrontier_BattlePikeRandomRoom1_Text_25E140, MSGBOX_DEFAULT - closemessage - goto BattleFrontier_BattlePikeRandomRoom1_EventScript_25D49D - end - -BattleFrontier_BattlePikeRandomRoom1_EventScript_25D49D:: @ 825D49D - applymovement 1, BattleFrontier_BattlePikeRandomRoom1_Movement_25D7EA - waitmovement 0 - applymovement EVENT_OBJ_ID_PLAYER, BattleFrontier_BattlePikeRandomRoom1_Movement_25D7DC - waitmovement 0 - setvar VAR_0x8004, BATTLE_PIKE_FUNC_GET_DATA - setvar VAR_0x8005, 1 - special CallBattlePikeFunction - addvar VAR_RESULT, 1 - setvar VAR_0x8004, BATTLE_PIKE_FUNC_SET_DATA - setvar VAR_0x8005, 1 - copyvar VAR_0x8006, VAR_RESULT - special CallBattlePikeFunction - call BattleFrontier_BattlePikeRandomRoom1_EventScript_2C4144 - waitstate - end - -BattleFrontier_BattlePikeRandomRoom1_EventScript_25D4DC:: @ 825D4DC - msgbox BattleFrontier_BattlePikeRandomRoom1_Text_25E15D, MSGBOX_DEFAULT - goto BattleFrontier_BattlePikeRandomRoom1_EventScript_25D2FB - end - -BattleFrontier_BattlePikeRandomRoom1_EventScript_25D4EA:: @ 825D4EA - msgbox BattleFrontier_BattlePikeRandomRoom1_Text_25E1DD, MSGBOX_DEFAULT - playfanfare MUS_ME_ASA - waitfanfare - goto BattleFrontier_BattlePikeRandomRoom1_EventScript_25D2FB - end - -BattleFrontier_BattlePikeRandomRoom1_EventScript_25D4FC:: @ 825D4FC - msgbox BattleFrontier_BattlePikeRandomRoom1_Text_25E238, MSGBOX_DEFAULT - playfanfare MUS_ME_ASA - waitfanfare - goto BattleFrontier_BattlePikeRandomRoom1_EventScript_25D2FB - end - -BattleFrontier_BattlePikeRandomRoom1_EventScript_25D50E:: @ 825D50E - lockall - delay 16 - applymovement 1, BattleFrontier_BattlePikeRandomRoom1_Movement_25D795 - waitmovement 0 - message BattleFrontier_BattlePikeRandomRoom1_Text_25D9B6 - waitmessage - playfanfare MUS_ME_ASA - waitfanfare - special HealPlayerParty - msgbox BattleFrontier_BattlePikeRandomRoom1_Text_25DA13, MSGBOX_DEFAULT - closemessage - applymovement 1, BattleFrontier_BattlePikeRandomRoom1_Movement_25D798 - waitmovement 0 - releaseall - end - -BattleFrontier_BattlePikeRandomRoom1_EventScript_25D53E:: @ 825D53E - lockall - delay 16 - applymovement 1, BattleFrontier_BattlePikeRandomRoom1_Movement_25D7C1 - applymovement 2, BattleFrontier_BattlePikeRandomRoom1_Movement_25D7C3 - waitmovement 0 - applymovement 1, BattleFrontier_BattlePikeRandomRoom1_Movement_25D7C5 - applymovement 2, BattleFrontier_BattlePikeRandomRoom1_Movement_25D7C5 - waitmovement 0 - applymovement 1, BattleFrontier_BattlePikeRandomRoom1_Movement_25D7C8 - applymovement 2, BattleFrontier_BattlePikeRandomRoom1_Movement_25D7CA - waitmovement 0 - applymovement EVENT_OBJ_ID_PLAYER, BattleFrontier_BattlePikeRandomRoom1_Movement_25D7BB - waitmovement 0 - setvar VAR_0x8004, BATTLE_PIKE_FUNC_BUFFER_RECORD_MIX_MSG - setvar VAR_0x8005, 0 - special CallBattlePikeFunction - msgbox gStringVar4, MSGBOX_DEFAULT - closemessage - delay 16 - applymovement EVENT_OBJ_ID_PLAYER, BattleFrontier_BattlePikeRandomRoom1_Movement_25D7BD - waitmovement 0 - setvar VAR_0x8004, BATTLE_PIKE_FUNC_BUFFER_RECORD_MIX_MSG - setvar VAR_0x8005, 1 - special CallBattlePikeFunction - msgbox gStringVar4, MSGBOX_DEFAULT - closemessage - setvar VAR_0x8004, SPECIAL_BATTLE_PIKE_DOUBLE - setvar VAR_0x8005, 0 - special DoSpecialTrainerBattle - waitstate - switch VAR_RESULT - case 1, BattleFrontier_BattlePikeRandomRoom1_EventScript_25D5DC - goto BattleFrontier_BattlePikeRandomRoom1_EventScript_25D20A - end - -BattleFrontier_BattlePikeRandomRoom1_EventScript_25D5DC:: @ 825D5DC - applymovement EVENT_OBJ_ID_PLAYER, BattleFrontier_BattlePikeRandomRoom1_Movement_25D7BD - waitmovement 0 - applymovement 1, BattleFrontier_BattlePikeRandomRoom1_Movement_25D7CC - waitmovement 0 - applymovement 2, BattleFrontier_BattlePikeRandomRoom1_Movement_25D7D4 - waitmovement 0 - applymovement EVENT_OBJ_ID_PLAYER, BattleFrontier_BattlePikeRandomRoom1_Movement_25D7BF - waitmovement 0 - end - -BattleFrontier_BattlePikeRandomRoom1_EventScript_25D605:: @ 825D605 - lockall - message BattleFrontier_BattlePikeRandomRoom1_Text_25DBD1 - applymovement 2, BattleFrontier_BattlePikeRandomRoom1_Movement_25D7AA - waitmovement 0 - setvar VAR_0x8004, BATTLE_PIKE_FUNC_GET_ROOM_STATUS_MON - special CallBattlePikeFunction - copyvar VAR_0x8004, VAR_RESULT - compare VAR_0x8004, 0 - call_if_eq BattleFrontier_BattlePikeRandomRoom1_EventScript_25D643 - compare VAR_0x8004, 1 - call_if_eq BattleFrontier_BattlePikeRandomRoom1_EventScript_25D6D5 - msgbox BattleFrontier_BattlePikeRandomRoom1_Text_25DD3F, MSGBOX_DEFAULT - closemessage - releaseall - end - -BattleFrontier_BattlePikeRandomRoom1_EventScript_25D643:: @ 825D643 - msgbox BattleFrontier_BattlePikeRandomRoom1_Text_25DBE4, MSGBOX_DEFAULT - closemessage - waitse - playmoncry SPECIES_KIRLIA, 0 - waitmoncry - setvar VAR_0x8004, BATTLE_PIKE_FUNC_GET_ROOM_STATUS - special CallBattlePikeFunction - compare VAR_RESULT, 2 - call_if_eq BattleFrontier_BattlePikeRandomRoom1_EventScript_25D751 - compare VAR_RESULT, 1 - call_if_eq BattleFrontier_BattlePikeRandomRoom1_EventScript_25D758 - compare VAR_RESULT, 3 - call_if_eq BattleFrontier_BattlePikeRandomRoom1_EventScript_25D75F - compare VAR_RESULT, 4 - call_if_eq BattleFrontier_BattlePikeRandomRoom1_EventScript_25D766 - setvar VAR_0x8004, BATTLE_PIKE_FUNC_STATUS_SCREEN_FADE - special CallBattlePikeFunction - waitstate - applymovement 1, BattleFrontier_BattlePikeRandomRoom1_Movement_25D7A2 - waitmovement 0 - applymovement 2, BattleFrontier_BattlePikeRandomRoom1_Movement_25D7B1 - waitmovement 0 - waitse - playmoncry SPECIES_KIRLIA, 0 - waitmoncry - msgbox BattleFrontier_BattlePikeRandomRoom1_Text_25DCAF, MSGBOX_DEFAULT - waitse - playmoncry SPECIES_KIRLIA, 0 - waitmoncry - closemessage - applymovement 2, BattleFrontier_BattlePikeRandomRoom1_Movement_25D7B3 - applymovement 1, BattleFrontier_BattlePikeRandomRoom1_Movement_25D7A4 - waitmovement 0 - msgbox BattleFrontier_BattlePikeRandomRoom1_Text_25DCCF, MSGBOX_DEFAULT - return - -BattleFrontier_BattlePikeRandomRoom1_EventScript_25D6D5:: @ 825D6D5 - msgbox BattleFrontier_BattlePikeRandomRoom1_Text_25DC01, MSGBOX_DEFAULT - closemessage - waitse - playmoncry SPECIES_DUSCLOPS, 0 - waitmoncry - setvar VAR_0x8004, BATTLE_PIKE_FUNC_GET_ROOM_STATUS - special CallBattlePikeFunction - compare VAR_RESULT, 0 - call_if_eq BattleFrontier_BattlePikeRandomRoom1_EventScript_25D76D - compare VAR_RESULT, 1 - call_if_eq BattleFrontier_BattlePikeRandomRoom1_EventScript_25D774 - setvar VAR_0x8004, BATTLE_PIKE_FUNC_STATUS_SCREEN_FADE - special CallBattlePikeFunction - waitstate - applymovement 1, BattleFrontier_BattlePikeRandomRoom1_Movement_25D7A2 - waitmovement 0 - applymovement 2, BattleFrontier_BattlePikeRandomRoom1_Movement_25D7B1 - waitmovement 0 - waitse - playmoncry SPECIES_DUSCLOPS, 0 - waitmoncry - msgbox BattleFrontier_BattlePikeRandomRoom1_Text_25DCAF, MSGBOX_DEFAULT - waitse - playmoncry SPECIES_DUSCLOPS, 0 - waitmoncry - closemessage - applymovement 2, BattleFrontier_BattlePikeRandomRoom1_Movement_25D7B3 - applymovement 1, BattleFrontier_BattlePikeRandomRoom1_Movement_25D7A4 - waitmovement 0 - msgbox BattleFrontier_BattlePikeRandomRoom1_Text_25DD06, MSGBOX_DEFAULT - return - -BattleFrontier_BattlePikeRandomRoom1_EventScript_25D751:: @ 825D751 - message BattleFrontier_BattlePikeRandomRoom1_Text_25DC20 - waitmessage - return - -BattleFrontier_BattlePikeRandomRoom1_EventScript_25D758:: @ 825D758 - message BattleFrontier_BattlePikeRandomRoom1_Text_25DC63 - waitmessage - return - -BattleFrontier_BattlePikeRandomRoom1_EventScript_25D75F:: @ 825D75F - message BattleFrontier_BattlePikeRandomRoom1_Text_25DC49 - waitmessage - return - -BattleFrontier_BattlePikeRandomRoom1_EventScript_25D766:: @ 825D766 - message BattleFrontier_BattlePikeRandomRoom1_Text_25DC33 - waitmessage - return - -BattleFrontier_BattlePikeRandomRoom1_EventScript_25D76D:: @ 825D76D - message BattleFrontier_BattlePikeRandomRoom1_Text_25DC97 - waitmessage - return - -BattleFrontier_BattlePikeRandomRoom1_EventScript_25D774:: @ 825D774 - message BattleFrontier_BattlePikeRandomRoom1_Text_25DC7C - waitmessage - return - -BattleFrontier_BattlePikeRandomRoom1_EventScript_25D77B:: @ 825D77B - closemessage - applymovement EVENT_OBJ_ID_PLAYER, BattleFrontier_BattlePikeRandomRoom1_Movement_25D7DC - waitmovement 0 - setvar VAR_0x8004, SPECIAL_BATTLE_PIKE_SINGLE - setvar VAR_0x8005, 0 - special DoSpecialTrainerBattle - waitstate - return - -BattleFrontier_BattlePikeRandomRoom1_Movement_25D795: @ 825D795 - walk_down - walk_down - step_end - -BattleFrontier_BattlePikeRandomRoom1_Movement_25D798: @ 825D798 - walk_up - walk_up - walk_up - set_invisible - walk_up - step_end - -BattleFrontier_BattlePikeRandomRoom1_Movement_25D79E: @ 825D79E - walk_up - set_invisible - walk_up - step_end - -BattleFrontier_BattlePikeRandomRoom1_Movement_25D7A2: @ 825D7A2 - walk_down - step_end - -BattleFrontier_BattlePikeRandomRoom1_Movement_25D7A4: @ 825D7A4 - walk_down - face_left - delay_16 - delay_16 - face_down - step_end - -BattleFrontier_BattlePikeRandomRoom1_Movement_25D7AA: @ 825D7AA - walk_fast_down - walk_fast_right - walk_fast_right - walk_fast_down - walk_fast_left - face_down - step_end - -BattleFrontier_BattlePikeRandomRoom1_Movement_25D7B1: @ 825D7B1 - face_up - step_end - -BattleFrontier_BattlePikeRandomRoom1_Movement_25D7B3: @ 825D7B3 - walk_left - -BattleFrontier_BattlePikeRandomRoom1_Movement_25D7B4: @ 825D7B4 - face_right - step_end - -BattleFrontier_BattlePikeRandomRoom1_Movement_25D7B6: @ 825D7B6 - walk_down - walk_down - walk_right - face_down - step_end - -BattleFrontier_BattlePikeRandomRoom1_Movement_25D7BB: @ 825D7BB - face_left - step_end - -BattleFrontier_BattlePikeRandomRoom1_Movement_25D7BD: @ 825D7BD - face_right - step_end - -BattleFrontier_BattlePikeRandomRoom1_Movement_25D7BF: @ 825D7BF - face_up - step_end - -BattleFrontier_BattlePikeRandomRoom1_Movement_25D7C1: @ 825D7C1 - walk_right - step_end - -BattleFrontier_BattlePikeRandomRoom1_Movement_25D7C3: @ 825D7C3 - walk_left - step_end - -BattleFrontier_BattlePikeRandomRoom1_Movement_25D7C5: @ 825D7C5 - walk_down - walk_down - step_end - -BattleFrontier_BattlePikeRandomRoom1_Movement_25D7C8: @ 825D7C8 - face_right - step_end - -BattleFrontier_BattlePikeRandomRoom1_Movement_25D7CA: @ 825D7CA - face_left - step_end - -BattleFrontier_BattlePikeRandomRoom1_Movement_25D7CC: @ 825D7CC - walk_up - walk_up - walk_up - walk_right - walk_up - set_invisible - walk_up - step_end - -BattleFrontier_BattlePikeRandomRoom1_Movement_25D7D4: @ 825D7D4 - walk_up - walk_up - walk_up - walk_left - walk_up - set_invisible - walk_up - step_end - -BattleFrontier_BattlePikeRandomRoom1_Movement_25D7DC: @ 825D7DC - walk_up - walk_up - step_end - -BattleFrontier_BattlePikeRandomRoom1_Movement_25D7DF: @ 825D7DF - walk_down - walk_down - step_end - -BattleFrontier_BattlePikeRandomRoom1_Movement_25D7E2: @ 825D7E2 - walk_up - walk_up - walk_up - set_invisible - step_end - -BattleFrontier_BattlePikeRandomRoom1_Movement_25D7E7: @ 825D7E7 - set_visible - walk_down - step_end - -BattleFrontier_BattlePikeRandomRoom1_Movement_25D7EA: @ 825D7EA - walk_left - face_right - step_end - -BattleFrontier_BattlePikeRandomRoom1_EventScript_25D7ED:: @ 825D7ED - setvar VAR_0x8004, BATTLE_PIKE_FUNC_GET_ROOM_TYPE - special CallBattlePikeFunction - switch VAR_RESULT - case 2, BattleFrontier_BattlePikeRandomRoom1_EventScript_25D81B - case 3, BattleFrontier_BattlePikeRandomRoom1_EventScript_25D831 - case 4, BattleFrontier_BattlePikeRandomRoom1_EventScript_25D83E - -BattleFrontier_BattlePikeRandomRoom1_EventScript_25D81B:: @ 825D81B - lock - faceplayer - setvar VAR_0x8004, BATTLE_PIKE_FUNC_BUFFER_NPC_MSG - special CallBattlePikeFunction - msgbox gStringVar4, MSGBOX_DEFAULT - waitmessage - closemessage - release - end - -BattleFrontier_BattlePikeRandomRoom1_EventScript_25D831:: @ 825D831 - lock - faceplayer - msgbox BattleFrontier_BattlePikeRandomRoom1_Text_25DDA3, MSGBOX_DEFAULT - closemessage - release - end - -BattleFrontier_BattlePikeRandomRoom1_EventScript_25D83E:: @ 825D83E - setvar VAR_0x8004, BATTLE_PIKE_FUNC_HEAL_ONE_TWO_MONS - special CallBattlePikeFunction - compare VAR_RESULT, 2 - call_if_eq BattleFrontier_BattlePikeRandomRoom1_EventScript_25D881 - compare VAR_RESULT, 1 - call_if_eq BattleFrontier_BattlePikeRandomRoom1_EventScript_25D875 - playfanfare MUS_ME_ASA - waitfanfare - msgbox BattleFrontier_BattlePikeRandomRoom1_Text_25DABE, MSGBOX_DEFAULT - closemessage - release - applymovement 1, BattleFrontier_BattlePikeRandomRoom1_Movement_25D79E - waitmovement 0 - end - -BattleFrontier_BattlePikeRandomRoom1_EventScript_25D875:: @ 825D875 - lock - faceplayer - msgbox BattleFrontier_BattlePikeRandomRoom1_Text_25DA51, MSGBOX_DEFAULT - closemessage - return - -BattleFrontier_BattlePikeRandomRoom1_EventScript_25D881:: @ 825D881 - lock - faceplayer - msgbox BattleFrontier_BattlePikeRandomRoom1_Text_25E32E, MSGBOX_DEFAULT - closemessage - return - -BattleFrontier_BattlePikeRandomRoom1_EventScript_25D88D:: @ 825D88D - lock - faceplayer - msgbox BattleFrontier_BattlePikeRandomRoom1_Text_25DDE6, MSGBOX_DEFAULT - closemessage - release - applymovement 2, BattleFrontier_BattlePikeRandomRoom1_Movement_25D7B4 - waitmovement 0 - end - -BattleFrontier_BattlePikeRandomRoom1_EventScript_25D8A4:: @ 825D8A4 - setmetatile 4, 1, METATILE_BattlePike_Curtain_Stage1_Tile0, 1 - setmetatile 3, 2, METATILE_BattlePike_Curtain_Stage1_Tile1, 1 - setmetatile 4, 2, METATILE_BattlePike_Curtain_Stage1_Tile2, 1 - setmetatile 5, 2, METATILE_BattlePike_Curtain_Stage1_Tile3, 1 - setmetatile 3, 3, METATILE_BattlePike_Curtain_Stage1_Tile4, 1 - setmetatile 4, 3, METATILE_BattlePike_Curtain_Stage1_Tile5, 0 - setmetatile 5, 3, METATILE_BattlePike_Curtain_Stage1_Tile6, 1 - special DrawWholeMapView - return - -BattleFrontier_BattlePikeRandomRoom1_EventScript_25D8E7:: @ 825D8E7 - setmetatile 4, 1, METATILE_BattlePike_Curtain_Stage2_Tile0, 1 - setmetatile 3, 2, METATILE_BattlePike_Curtain_Stage2_Tile1, 1 - setmetatile 4, 2, METATILE_BattlePike_Curtain_Stage2_Tile2, 1 - setmetatile 5, 2, METATILE_BattlePike_Curtain_Stage2_Tile3, 1 - setmetatile 3, 3, METATILE_BattlePike_Curtain_Stage2_Tile4, 1 - setmetatile 4, 3, METATILE_BattlePike_Curtain_Stage2_Tile5, 0 - setmetatile 5, 3, METATILE_BattlePike_Curtain_Stage2_Tile6, 1 - special DrawWholeMapView - return - -BattleFrontier_BattlePikeRandomRoom1_EventScript_25D92A:: @ 825D92A - setmetatile 4, 1, METATILE_BattlePike_Curtain_Stage3_Tile0, 1 - setmetatile 3, 2, METATILE_BattlePike_Curtain_Stage3_Tile1, 1 - setmetatile 4, 2, METATILE_BattlePike_Curtain_Stage3_Tile2, 1 - setmetatile 5, 2, METATILE_BattlePike_Curtain_Stage3_Tile3, 1 - setmetatile 3, 3, METATILE_BattlePike_Curtain_Stage3_Tile4, 1 - setmetatile 4, 3, METATILE_BattlePike_Curtain_Stage3_Tile5, 0 - setmetatile 5, 3, METATILE_BattlePike_Curtain_Stage3_Tile6, 1 - special DrawWholeMapView - return - -BattleFrontier_BattlePikeRandomRoom1_EventScript_25D96D:: @ 825D96D - setmetatile 4, 1, METATILE_BattlePike_Curtain_Stage0_Tile0, 1 - setmetatile 3, 2, METATILE_BattlePike_Curtain_Stage0_Tile1, 1 - setmetatile 4, 2, METATILE_BattlePike_Curtain_Stage0_Tile2, 1 - setmetatile 5, 2, METATILE_BattlePike_Curtain_Stage0_Tile3, 1 - setmetatile 3, 3, METATILE_BattlePike_Curtain_Stage0_Tile4, 1 - setmetatile 4, 3, METATILE_BattlePike_Curtain_Stage0_Tile5, 0 - setmetatile 5, 3, METATILE_BattlePike_Curtain_Stage0_Tile6, 1 - special DrawWholeMapView - return - -BattleFrontier_BattlePikeRandomRoom1_Movement_25D9B0: @ 825D9B0 - walk_up - walk_up - step_end - -BattleFrontier_BattlePikeRandomRoom1_Movement_25D9B3: @ 825D9B3 - walk_down - walk_down - step_end - -BattleFrontier_BattlePikeRandomRoom1_Text_25D9B6: @ 825D9B6 - .string "Welcome…\n" - .string "You must be commended for your luck…\p" - .string "Your POKéMON shall be restored\n" - .string "to full health…$" - -BattleFrontier_BattlePikeRandomRoom1_Text_25DA13: @ 825DA13 - .string "I urge you to enjoy the rest of your\n" - .string "Battle Choice challenge…$" - -BattleFrontier_BattlePikeRandomRoom1_Text_25DA51: @ 825DA51 - .string "Ah, you're a lucky one.\n" - .string "I'm in somewhat-good spirits now.\p" - .string "I will restore one of your POKéMON\n" - .string "to full health.$" - -BattleFrontier_BattlePikeRandomRoom1_Text_25DABE: @ 825DABE - .string "The best of luck to you.\n" - .string "Farewell.$" - -BattleFrontier_BattlePikeRandomRoom1_Text_25DAE1: @ 825DAE1 - .string "Excuse me…\p" - .string "Would you care for a battle?\n" - .string "I'll restore your POKéMON if you win.$" - -BattleFrontier_BattlePikeRandomRoom1_Text_25DB2F: @ 825DB2F - .string "Very well…\n" - .string "Now, shall we?$" - -BattleFrontier_BattlePikeRandomRoom1_Text_25DB49: @ 825DB49 - .string "I see…\n" - .string "How unsporting of you…$" - -BattleFrontier_BattlePikeRandomRoom1_Text_25DB67: @ 825DB67 - .string "Magnificent…\p" - .string "As promised, I shall restore your\n" - .string "POKéMON to full health.$" - -BattleFrontier_BattlePikeRandomRoom1_Text_25DBAE: @ 825DBAE - .string "The best of luck to you.\n" - .string "Farewell.$" - -BattleFrontier_BattlePikeRandomRoom1_Text_25DBD1: @ 825DBD1 - .string "Oh, my!\p" - .string "Watch out!$" - -BattleFrontier_BattlePikeRandomRoom1_Text_25DBE4: @ 825DBE4 - .string "Now, now!\n" - .string "KIRLIA, stop that!$" - -BattleFrontier_BattlePikeRandomRoom1_Text_25DC01: @ 825DC01 - .string "Now, now!\n" - .string "DUSCLOPS, stop that!$" - -BattleFrontier_BattlePikeRandomRoom1_Text_25DC20: @ 825DC20 - .string "KIRLIA used TOXIC!$" - -BattleFrontier_BattlePikeRandomRoom1_Text_25DC33: @ 825DC33 - .string "KIRLIA used HYPNOSIS!$" - -BattleFrontier_BattlePikeRandomRoom1_Text_25DC49: @ 825DC49 - .string "KIRLIA used THUNDER WAVE!$" - -BattleFrontier_BattlePikeRandomRoom1_Text_25DC63: @ 825DC63 - .string "KIRLIA used WILL-O-WISP!$" - -BattleFrontier_BattlePikeRandomRoom1_Text_25DC7C: @ 825DC7C - .string "DUSCLOPS used WILL-O-WISP!$" - -BattleFrontier_BattlePikeRandomRoom1_Text_25DC97: @ 825DC97 - .string "DUSCLOPS used ICE BEAM!$" - -BattleFrontier_BattlePikeRandomRoom1_Text_25DCAF: @ 825DCAF - .string "Look here!\n" - .string "That's quite enough!$" - -BattleFrontier_BattlePikeRandomRoom1_Text_25DCCF: @ 825DCCF - .string "I must apologize to you…\p" - .string "My KIRLIA has a TIMID nature…$" - -BattleFrontier_BattlePikeRandomRoom1_Text_25DD06: @ 825DD06 - .string "I must apologize to you…\p" - .string "My DUSCLOPS has a TIMID nature…$" - -BattleFrontier_BattlePikeRandomRoom1_Text_25DD3F: @ 825DD3F - .string "It attacks without warning if it is\n" - .string "startled by another person…\p" - .string "Are you and your POKéMON all right?$" - -BattleFrontier_BattlePikeRandomRoom1_Text_25DDA3: @ 825DDA3 - .string "I do apologize for what happened…\n" - .string "I do hope your POKéMON are fine.$" - -BattleFrontier_BattlePikeRandomRoom1_Text_25DDE6: @ 825DDE6 - .string "… … … … … …\n" - .string "… … … … … …$" - -BattleFrontier_BattlePikeRandomRoom1_Text_25DDFE: @ 825DDFE - .string "Welcome…\p" - .string "Here, we will have you battle\n" - .string "a somewhat-tough TRAINER…$" - -BattleFrontier_BattlePikeRandomRoom1_Text_25DE3F: @ 825DE3F - .string "How wonderful…\p" - .string "To honor your victory, your POKéMON\n" - .string "shall be restored to full health…$" - -BattleFrontier_BattlePikeRandomRoom1_Text_25DE94: @ 825DE94 - .string "I urge you to enjoy the rest of your\n" - .string "Battle Choice challenge…$" - -BattleFrontier_BattlePikeRandomRoom1_Text_25DED2: @ 825DED2 - .string "I am LUCY…\n" - .string "I am the law here…\l" - .string "For I am the PIKE QUEEN…\p" - .string "You already know it, but to advance,\n" - .string "you must defeat me…\p" - .string "…I'm not one for idle chatter.\n" - .string "Hurry. Come on…$" - -BattleFrontier_BattlePikeRandomRoom1_Text_25DF71: @ 825DF71 - .string "Your luck…\n" - .string "I hope you didn't use it all up here…$" - -BattleFrontier_BattlePikeRandomRoom1_Text_25DFA2: @ 825DFA2 - .string "LUCY: … … … … … …\n" - .string "Show me your FRONTIER PASS…$" - -BattleFrontier_BattlePikeRandomRoom1_Text_25DFD0: @ 825DFD0 - .string "The Luck Symbol was embossed on\n" - .string "the FRONTIER PASS!$" - -BattleFrontier_BattlePikeRandomRoom1_Text_25E003: @ 825E003 - .string "…That's all there is…\n" - .string "Disappear already…$" - -BattleFrontier_BattlePikeRandomRoom1_Text_25E02C: @ 825E02C - .string "LUCY: …You again…\p" - .string "… … … … … …\p" - .string "…I've trampled flowers and braved\n" - .string "storms to get to where I am…\p" - .string "I don't feel any compulsion to keep\n" - .string "losing to the same opponent…\p" - .string "… … … … … …\n" - .string "Fine… I'll do it…$" - -BattleFrontier_BattlePikeRandomRoom1_Text_25E0E8: @ 825E0E8 - .string "Now!\n" - .string "Come on!$" - -BattleFrontier_BattlePikeRandomRoom1_Text_25E0F6: @ 825E0F6 - .string "LUCY: … … … … … …\p" - .string "…FRONTIER PASS…$" - -BattleFrontier_BattlePikeRandomRoom1_Text_25E118: @ 825E118 - .string "The Luck Symbol took on\n" - .string "a golden shine!$" - -BattleFrontier_BattlePikeRandomRoom1_Text_25E140: @ 825E140 - .string "…You, I won't forget…\n" - .string "…Ever…$" - -BattleFrontier_BattlePikeRandomRoom1_Text_25E15D: @ 825E15D - .string "I welcome you…\p" - .string "Giggle…\n" - .string "You seem to be bereft of luck…\p" - .string "If only you hadn't chosen this room,\n" - .string "your POKéMON could have been healed…$" - -BattleFrontier_BattlePikeRandomRoom1_Text_25E1DD: @ 825E1DD - .string "I welcome you…\p" - .string "Since you have chosen this room, I will\n" - .string "restore one POKéMON to full health…$" - -BattleFrontier_BattlePikeRandomRoom1_Text_25E238: @ 825E238 - .string "I welcome you…\p" - .string "Since you have chosen this room, I will\n" - .string "restore two POKéMON to full health…$" - -BattleFrontier_BattlePikeRandomRoom1_Text_25E293: @ 825E293 - .string "I welcome you…\p" - .string "Giggle…\n" - .string "You should thank your lucky stars…\p" - .string "Since you have chosen this room,\n" - .string "all your POKéMON will be restored…$" - -BattleFrontier_BattlePikeRandomRoom1_Text_25E311: @ 825E311 - .string "I shall go fetch our master…$" - -BattleFrontier_BattlePikeRandomRoom1_Text_25E32E: @ 825E32E - .string "Ah, you're a lucky one!\n" - .string "I'm in good spirits now.\p" - .string "I will restore two of your POKéMON\n" - .string "to full health!$" - diff --git a/data/maps/BattleFrontier_BattlePikeRandomRoom2/map.json b/data/maps/BattleFrontier_BattlePikeRandomRoom2/map.json deleted file mode 100644 index a07464a15..000000000 --- a/data/maps/BattleFrontier_BattlePikeRandomRoom2/map.json +++ /dev/null @@ -1,34 +0,0 @@ -{ - "id": "MAP_BATTLE_FRONTIER_BATTLE_PIKE_RANDOM_ROOM2", - "name": "BattleFrontier_BattlePikeRandomRoom2", - "layout": "LAYOUT_BATTLE_FRONTIER_BATTLE_PIKE_RANDOM_ROOM2", - "music": "MUS_B_TUBE", - "region_map_section": "MAPSEC_BATTLE_FRONTIER", - "requires_flash": false, - "weather": "WEATHER_NONE", - "map_type": "MAP_TYPE_INDOOR", - "allow_bike": false, - "allow_escape_rope": false, - "allow_running": true, - "show_map_name": false, - "battle_scene": "MAP_BATTLE_SCENE_NORMAL", - "connections": null, - "object_events": [ - { - "graphics_id": "EVENT_OBJ_GFX_LINK_RECEPTIONIST", - "x": 2, - "y": 4, - "elevation": 3, - "movement_type": "MOVEMENT_TYPE_FACE_DOWN", - "movement_range_x": 1, - "movement_range_y": 1, - "trainer_type": "0", - "trainer_sight_or_berry_tree_id": "0", - "script": "0x0", - "flag": "0" - } - ], - "warp_events": [], - "coord_events": [], - "bg_events": [] -} \ No newline at end of file diff --git a/data/maps/BattleFrontier_BattlePikeRandomRoom2/scripts.inc b/data/maps/BattleFrontier_BattlePikeRandomRoom2/scripts.inc deleted file mode 100644 index b1a55c33f..000000000 --- a/data/maps/BattleFrontier_BattlePikeRandomRoom2/scripts.inc +++ /dev/null @@ -1,43 +0,0 @@ -BattleFrontier_BattlePikeRandomRoom2_MapScripts:: @ 825E392 - map_script MAP_SCRIPT_ON_FRAME_TABLE, BattleFrontier_BattlePikeRandomRoom2_MapScript2_25E39D - map_script MAP_SCRIPT_ON_WARP_INTO_MAP_TABLE, BattleFrontier_BattlePikeRandomRoom2_MapScript2_25E3DE - .byte 0 - -BattleFrontier_BattlePikeRandomRoom2_MapScript2_25E39D: @ 825E39D - map_script_2 VAR_TEMP_0, 0, BattleFrontier_BattlePikeRandomRoom2_EventScript_25E3A7 - .2byte 0 - -BattleFrontier_BattlePikeRandomRoom2_EventScript_25E3A7:: @ 825E3A7 - delay 16 - applymovement 1, BattleFrontier_BattlePikeRandomRoom2_Movement_25E3DB - waitmovement 0 - setvar VAR_0x8004, FRONTIER_UTIL_FUNC_2 - setvar VAR_0x8005, 0 - setvar VAR_0x8006, 3 - special CallFrontierUtilFunc - lockall - msgbox BattleFrontier_BattlePikeRandomRoom2_Text_25E3F2, MSGBOX_DEFAULT - closemessage - releaseall - warp MAP_BATTLE_FRONTIER_BATTLE_PIKE_LOBBY, 255, 5, 6 - waitstate - end - -BattleFrontier_BattlePikeRandomRoom2_Movement_25E3DB: @ 825E3DB - walk_down - walk_down - step_end - -BattleFrontier_BattlePikeRandomRoom2_MapScript2_25E3DE: @ 825E3DE - map_script_2 VAR_TEMP_4, 0, BattleFrontier_BattlePikeRandomRoom2_EventScript_25E3E8 - .2byte 0 - -BattleFrontier_BattlePikeRandomRoom2_EventScript_25E3E8:: @ 825E3E8 - setvar VAR_TEMP_4, 1 - turnobject EVENT_OBJ_ID_PLAYER, DIR_NORTH - end - -BattleFrontier_BattlePikeRandomRoom2_Text_25E3F2: @ 825E3F2 - .string "Congratulations…\n" - .string "Now, this way, please…$" - diff --git a/data/maps/BattleFrontier_BattlePikeRandomRoom3/map.json b/data/maps/BattleFrontier_BattlePikeRandomRoom3/map.json deleted file mode 100644 index 6e0e74960..000000000 --- a/data/maps/BattleFrontier_BattlePikeRandomRoom3/map.json +++ /dev/null @@ -1,84 +0,0 @@ -{ - "id": "MAP_BATTLE_FRONTIER_BATTLE_PIKE_RANDOM_ROOM3", - "name": "BattleFrontier_BattlePikeRandomRoom3", - "layout": "LAYOUT_BATTLE_FRONTIER_BATTLE_PIKE_RANDOM_ROOM3", - "music": "MUS_B_TUBE", - "region_map_section": "MAPSEC_BATTLE_FRONTIER", - "requires_flash": false, - "weather": "WEATHER_NONE", - "map_type": "MAP_TYPE_INDOOR", - "allow_bike": false, - "allow_escape_rope": false, - "allow_running": true, - "show_map_name": false, - "battle_scene": "MAP_BATTLE_SCENE_NORMAL", - "connections": null, - "object_events": [], - "warp_events": [], - "coord_events": [ - { - "type": "trigger", - "x": 4, - "y": 3, - "elevation": 3, - "var": "VAR_TEMP_1", - "var_value": "0", - "script": "BattleFrontier_BattlePikeRandomRoom3_EventScript_2C4174" - }, - { - "type": "trigger", - "x": 3, - "y": 18, - "elevation": 3, - "var": "VAR_TEMP_2", - "var_value": "0", - "script": "BattleFrontier_BattlePikeRandomRoom3_EventScript_2C4202" - }, - { - "type": "trigger", - "x": 4, - "y": 18, - "elevation": 3, - "var": "VAR_TEMP_2", - "var_value": "0", - "script": "BattleFrontier_BattlePikeRandomRoom3_EventScript_2C4202" - }, - { - "type": "trigger", - "x": 5, - "y": 18, - "elevation": 3, - "var": "VAR_TEMP_2", - "var_value": "0", - "script": "BattleFrontier_BattlePikeRandomRoom3_EventScript_2C4202" - }, - { - "type": "trigger", - "x": 3, - "y": 19, - "elevation": 3, - "var": "VAR_TEMP_3", - "var_value": "1", - "script": "BattleFrontier_BattlePikeRandomRoom3_EventScript_2C420D" - }, - { - "type": "trigger", - "x": 4, - "y": 19, - "elevation": 3, - "var": "VAR_TEMP_3", - "var_value": "1", - "script": "BattleFrontier_BattlePikeRandomRoom3_EventScript_2C420D" - }, - { - "type": "trigger", - "x": 5, - "y": 19, - "elevation": 3, - "var": "VAR_TEMP_3", - "var_value": "1", - "script": "BattleFrontier_BattlePikeRandomRoom3_EventScript_2C420D" - } - ], - "bg_events": [] -} \ No newline at end of file diff --git a/data/maps/BattleFrontier_BattlePikeRandomRoom3/scripts.inc b/data/maps/BattleFrontier_BattlePikeRandomRoom3/scripts.inc deleted file mode 100644 index ff5e3e1db..000000000 --- a/data/maps/BattleFrontier_BattlePikeRandomRoom3/scripts.inc +++ /dev/null @@ -1,50 +0,0 @@ -BattleFrontier_BattlePikeRandomRoom3_MapScripts:: @ 825E41A - map_script MAP_SCRIPT_ON_RESUME, BattleFrontier_BattlePikeRandomRoom3_MapScript1_25E47A - map_script MAP_SCRIPT_ON_FRAME_TABLE, BattleFrontier_BattlePikeRandomRoom3_MapScript2_25E42A - map_script MAP_SCRIPT_ON_WARP_INTO_MAP_TABLE, BattleFrontier_BattlePikeRandomRoom3_MapScript2_25E466 - .byte 0 - -BattleFrontier_BattlePikeRandomRoom3_MapScript2_25E42A: @ 825E42A - map_script_2 VAR_TEMP_0, 0, BattleFrontier_BattlePikeRandomRoom3_EventScript_25E43C - map_script_2 VAR_TEMP_1, 1, BattleFrontier_BattlePikeRandomRoom3_EventScript_25E44A - .2byte 0 - -BattleFrontier_BattlePikeRandomRoom3_EventScript_25E43C:: @ 825E43C - setvar VAR_TEMP_0, 1 - setvar VAR_0x8004, BATTLE_PIKE_FUNC_6 - special CallBattlePikeFunction - end - -BattleFrontier_BattlePikeRandomRoom3_EventScript_25E44A:: @ 825E44A - setvar VAR_0x8004, FRONTIER_UTIL_FUNC_2 - setvar VAR_0x8005, 0 - setvar VAR_0x8006, 4 - special CallFrontierUtilFunc - warp MAP_BATTLE_FRONTIER_BATTLE_PIKE_LOBBY, 255, 5, 6 - waitstate - end - -BattleFrontier_BattlePikeRandomRoom3_MapScript2_25E466: @ 825E466 - map_script_2 VAR_TEMP_4, 0, BattleFrontier_BattlePikeRandomRoom3_EventScript_25E470 - .2byte 0 - -BattleFrontier_BattlePikeRandomRoom3_EventScript_25E470:: @ 825E470 - setvar VAR_TEMP_4, 1 - turnobject EVENT_OBJ_ID_PLAYER, DIR_NORTH - end - -BattleFrontier_BattlePikeRandomRoom3_MapScript1_25E47A: @ 825E47A - call BattleFrontier_BattlePikeRandomRoom3_EventScript_2C4271 - setvar VAR_0x8004, FRONTIER_UTIL_FUNC_1 - setvar VAR_0x8005, 5 - special CallFrontierUtilFunc - compare VAR_RESULT, 2 - goto_if_eq BattleFrontier_BattlePikeRandomRoom3_EventScript_25E4A3 - compare VAR_RESULT, 3 - goto_if_eq BattleFrontier_BattlePikeRandomRoom3_EventScript_25E4A3 - end - -BattleFrontier_BattlePikeRandomRoom3_EventScript_25E4A3:: @ 825E4A3 - setvar VAR_TEMP_1, 1 - end - diff --git a/data/maps/BattleFrontier_BattlePikeRoomFinal/map.json b/data/maps/BattleFrontier_BattlePikeRoomFinal/map.json new file mode 100644 index 000000000..2b3daf8b7 --- /dev/null +++ b/data/maps/BattleFrontier_BattlePikeRoomFinal/map.json @@ -0,0 +1,34 @@ +{ + "id": "MAP_BATTLE_FRONTIER_BATTLE_PIKE_ROOM_FINAL", + "name": "BattleFrontier_BattlePikeRoomFinal", + "layout": "LAYOUT_BATTLE_FRONTIER_BATTLE_PIKE_ROOM_FINAL", + "music": "MUS_B_TUBE", + "region_map_section": "MAPSEC_BATTLE_FRONTIER", + "requires_flash": false, + "weather": "WEATHER_NONE", + "map_type": "MAP_TYPE_INDOOR", + "allow_bike": false, + "allow_escape_rope": false, + "allow_running": true, + "show_map_name": false, + "battle_scene": "MAP_BATTLE_SCENE_NORMAL", + "connections": null, + "object_events": [ + { + "graphics_id": "EVENT_OBJ_GFX_LINK_RECEPTIONIST", + "x": 2, + "y": 4, + "elevation": 3, + "movement_type": "MOVEMENT_TYPE_FACE_DOWN", + "movement_range_x": 1, + "movement_range_y": 1, + "trainer_type": "0", + "trainer_sight_or_berry_tree_id": "0", + "script": "0x0", + "flag": "0" + } + ], + "warp_events": [], + "coord_events": [], + "bg_events": [] +} \ No newline at end of file diff --git a/data/maps/BattleFrontier_BattlePikeRoomFinal/scripts.inc b/data/maps/BattleFrontier_BattlePikeRoomFinal/scripts.inc new file mode 100644 index 000000000..8a98fa488 --- /dev/null +++ b/data/maps/BattleFrontier_BattlePikeRoomFinal/scripts.inc @@ -0,0 +1,40 @@ +BattleFrontier_BattlePikeRoomFinal_MapScripts:: @ 825E392 + map_script MAP_SCRIPT_ON_FRAME_TABLE, BattleFrontier_BattlePikeRoomFinal_OnFrame + map_script MAP_SCRIPT_ON_WARP_INTO_MAP_TABLE, BattleFrontier_BattlePikeRoomFinal_OnWarp + .byte 0 + +BattleFrontier_BattlePikeRoomFinal_OnFrame: @ 825E39D + map_script_2 VAR_TEMP_0, 0, BattleFrontier_BattlePikeRoomFinal_EventScript_25E3A7 + .2byte 0 + +BattleFrontier_BattlePikeRoomFinal_EventScript_25E3A7:: @ 825E3A7 + delay 16 + applymovement 1, BattleFrontier_BattlePikeRoomFinal_Movement_25E3DB + waitmovement 0 + frontier_setchallengestatus CHALLENGE_STATUS_WON + lockall + msgbox BattleFrontier_BattlePikeRoomFinal_Text_CongratsThisWayPlease, MSGBOX_DEFAULT + closemessage + releaseall + warp MAP_BATTLE_FRONTIER_BATTLE_PIKE_LOBBY, 255, 5, 6 + waitstate + end + +BattleFrontier_BattlePikeRoomFinal_Movement_25E3DB: @ 825E3DB + walk_down + walk_down + step_end + +BattleFrontier_BattlePikeRoomFinal_OnWarp: @ 825E3DE + map_script_2 VAR_TEMP_4, 0, BattleFrontier_BattlePikeRoomFinal_EventScript_TurnPlayerNorth + .2byte 0 + +BattleFrontier_BattlePikeRoomFinal_EventScript_TurnPlayerNorth:: @ 825E3E8 + setvar VAR_TEMP_4, 1 + turnobject EVENT_OBJ_ID_PLAYER, DIR_NORTH + end + +BattleFrontier_BattlePikeRoomFinal_Text_CongratsThisWayPlease: @ 825E3F2 + .string "Congratulations…\n" + .string "Now, this way, please…$" + diff --git a/data/maps/BattleFrontier_BattlePikeRoomNormal/map.json b/data/maps/BattleFrontier_BattlePikeRoomNormal/map.json new file mode 100644 index 000000000..6eef87962 --- /dev/null +++ b/data/maps/BattleFrontier_BattlePikeRoomNormal/map.json @@ -0,0 +1,111 @@ +{ + "id": "MAP_BATTLE_FRONTIER_BATTLE_PIKE_ROOM_NORMAL", + "name": "BattleFrontier_BattlePikeRoomNormal", + "layout": "LAYOUT_BATTLE_FRONTIER_BATTLE_PIKE_ROOM_NORMAL", + "music": "MUS_B_TUBE", + "region_map_section": "MAPSEC_BATTLE_FRONTIER", + "requires_flash": false, + "weather": "WEATHER_NONE", + "map_type": "MAP_TYPE_INDOOR", + "allow_bike": false, + "allow_escape_rope": false, + "allow_running": true, + "show_map_name": false, + "battle_scene": "MAP_BATTLE_SCENE_NORMAL", + "connections": null, + "object_events": [ + { + "graphics_id": "EVENT_OBJ_GFX_VAR_0", + "x": 4, + "y": 4, + "elevation": 3, + "movement_type": "MOVEMENT_TYPE_FACE_DOWN", + "movement_range_x": 1, + "movement_range_y": 1, + "trainer_type": "0", + "trainer_sight_or_berry_tree_id": "0", + "script": "BattleFrontier_BattlePikeRoomNormal_EventScript_25D7ED", + "flag": "0" + }, + { + "graphics_id": "EVENT_OBJ_GFX_VAR_1", + "x": 3, + "y": 4, + "elevation": 3, + "movement_type": "MOVEMENT_TYPE_FACE_DOWN", + "movement_range_x": 1, + "movement_range_y": 1, + "trainer_type": "0", + "trainer_sight_or_berry_tree_id": "0", + "script": "BattleFrontier_BattlePikeRoomNormal_EventScript_25D88D", + "flag": "0" + } + ], + "warp_events": [], + "coord_events": [ + { + "type": "trigger", + "x": 4, + "y": 3, + "elevation": 3, + "var": "VAR_TEMP_1", + "var_value": "0", + "script": "BattleFrontier_BattlePikeRoomNormal_EventScript_Exit" + }, + { + "type": "trigger", + "x": 3, + "y": 6, + "elevation": 3, + "var": "VAR_TEMP_2", + "var_value": "0", + "script": "BattleFrontier_BattlePikeRoomNormal_EventScript_2C4082" + }, + { + "type": "trigger", + "x": 3, + "y": 7, + "elevation": 3, + "var": "VAR_TEMP_3", + "var_value": "1", + "script": "BattleFrontier_BattlePikeRoomNormal_EventScript_2C408D" + }, + { + "type": "trigger", + "x": 4, + "y": 6, + "elevation": 3, + "var": "VAR_TEMP_2", + "var_value": "0", + "script": "BattleFrontier_BattlePikeRoomNormal_EventScript_2C4082" + }, + { + "type": "trigger", + "x": 5, + "y": 6, + "elevation": 3, + "var": "VAR_TEMP_2", + "var_value": "0", + "script": "BattleFrontier_BattlePikeRoomNormal_EventScript_2C4082" + }, + { + "type": "trigger", + "x": 4, + "y": 7, + "elevation": 3, + "var": "VAR_TEMP_3", + "var_value": "1", + "script": "BattleFrontier_BattlePikeRoomNormal_EventScript_2C408D" + }, + { + "type": "trigger", + "x": 5, + "y": 7, + "elevation": 3, + "var": "VAR_TEMP_3", + "var_value": "1", + "script": "BattleFrontier_BattlePikeRoomNormal_EventScript_2C408D" + } + ], + "bg_events": [] +} \ No newline at end of file diff --git a/data/maps/BattleFrontier_BattlePikeRoomNormal/scripts.inc b/data/maps/BattleFrontier_BattlePikeRoomNormal/scripts.inc new file mode 100644 index 000000000..6f05367fb --- /dev/null +++ b/data/maps/BattleFrontier_BattlePikeRoomNormal/scripts.inc @@ -0,0 +1,884 @@ +BattleFrontier_BattlePikeRoomNormal_MapScripts:: @ 825D152 + map_script MAP_SCRIPT_ON_RESUME, BattleFrontier_BattlePikeRoom_OnResume + map_script MAP_SCRIPT_ON_TRANSITION, BattleFrontier_BattlePikeRoom_OnTransition + map_script MAP_SCRIPT_ON_FRAME_TABLE, BattleFrontier_BattlePikeRoomNormal_OnFrame + map_script MAP_SCRIPT_ON_WARP_INTO_MAP_TABLE, BattleFrontier_BattlePikeRoom_OnWarp + .byte 0 + +BattleFrontier_BattlePikeRoomNormal_OnFrame: @ 825D167 + map_script_2 VAR_TEMP_0, 0, BattleFrontier_BattlePikeRoomNormal_EventScript_25D171 + .2byte 0 + +BattleFrontier_BattlePikeRoomNormal_EventScript_25D171:: @ 825D171 + setvar VAR_TEMP_0, 1 + battlepike_getroomtype + switch VAR_RESULT + case PIKE_ROOM_SINGLE_BATTLE, BattleFrontier_BattlePikeRoomNormal_EventScript_25D1C6 + case PIKE_ROOM_HEAL_FULL, BattleFrontier_BattlePikeRoomNormal_EventScript_25D50E + case PIKE_ROOM_STATUS, BattleFrontier_BattlePikeRoomNormal_EventScript_25D605 + case PIKE_ROOM_HARD_BATTLE, BattleFrontier_BattlePikeRoomNormal_EventScript_25D231 + case PIKE_ROOM_DOUBLE_BATTLE, BattleFrontier_BattlePikeRoomNormal_EventScript_25D53E + case PIKE_ROOM_BRAIN, BattleFrontier_BattlePikeRoomNormal_EventScript_25D2BF + end + +BattleFrontier_BattlePikeRoomNormal_EventScript_25D1C6:: @ 825D1C6 + lockall + delay 16 + applymovement 1, BattleFrontier_BattlePikeRoomNormal_Movement_25D795 + waitmovement 0 + setvar VAR_0x8004, BATTLE_PIKE_FUNC_BUFFER_RECORD_MIX_MSG + setvar VAR_0x8005, 0 + special CallBattlePikeFunction + msgbox gStringVar4, MSGBOX_DEFAULT + waitmessage + closemessage + releaseall + setvar VAR_0x8004, SPECIAL_BATTLE_PIKE_SINGLE + setvar VAR_0x8005, 0 + special DoSpecialTrainerBattle + waitstate + switch VAR_RESULT + case 1, BattleFrontier_BattlePikeRoomNormal_EventScript_25D226 + +BattleFrontier_BattlePikeRoomNormal_EventScript_25D20A:: @ 825D20A + frontier_setchallengestatus CHALLENGE_STATUS_LOST + warp MAP_BATTLE_FRONTIER_BATTLE_PIKE_LOBBY, 255, 5, 6 + waitstate + end + +BattleFrontier_BattlePikeRoomNormal_EventScript_25D226:: @ 825D226 + applymovement 1, BattleFrontier_BattlePikeRoomNormal_Movement_25D798 + waitmovement 0 + end + +BattleFrontier_BattlePikeRoomNormal_EventScript_25D231:: @ 825D231 + lockall + delay 16 + msgbox BattleFrontier_BattlePikeRoomNormal_Text_25DDFE, MSGBOX_DEFAULT + waitmessage + closemessage + applymovement 1, BattleFrontier_BattlePikeRoomNormal_Movement_25D795 + waitmovement 0 + setvar VAR_0x8004, BATTLE_PIKE_FUNC_BUFFER_RECORD_MIX_MSG + setvar VAR_0x8005, 0 + special CallBattlePikeFunction + msgbox gStringVar4, MSGBOX_DEFAULT + waitmessage + closemessage + releaseall + setvar VAR_0x8004, SPECIAL_BATTLE_PIKE_SINGLE + setvar VAR_0x8005, 0 + special DoSpecialTrainerBattle + waitstate + switch VAR_RESULT + case 1, BattleFrontier_BattlePikeRoomNormal_EventScript_25D285 + goto BattleFrontier_BattlePikeRoomNormal_EventScript_25D20A + end + +BattleFrontier_BattlePikeRoomNormal_EventScript_25D285:: @ 825D285 + applymovement 1, BattleFrontier_BattlePikeRoomNormal_Movement_25D798 + waitmovement 0 + applymovement 2, BattleFrontier_BattlePikeRoomNormal_Movement_25D7B6 + waitmovement 0 + lock + faceplayer + msgbox BattleFrontier_BattlePikeRoomNormal_Text_25DE3F, MSGBOX_DEFAULT + playfanfare MUS_ME_ASA + waitfanfare + special HealPlayerParty + msgbox BattleFrontier_BattlePikeRoomNormal_Text_25DE94, MSGBOX_DEFAULT + closemessage + release + applymovement 2, BattleFrontier_BattlePikeRoomNormal_Movement_25D798 + waitmovement 0 + end + +BattleFrontier_BattlePikeRoomNormal_EventScript_25D2BF:: @ 825D2BF + delay 22 + lockall + applymovement 2, BattleFrontier_BattlePikeRoomNormal_Movement_25D7DF + waitmovement 0 + setvar VAR_0x8004, BATTLE_PIKE_FUNC_HEAL_MONS_BEFORE_QUEEN + special CallBattlePikeFunction + switch VAR_RESULT + case 0, BattleFrontier_BattlePikeRoomNormal_EventScript_25D4DC + case 1, BattleFrontier_BattlePikeRoomNormal_EventScript_25D4EA + case 2, BattleFrontier_BattlePikeRoomNormal_EventScript_25D4FC + +BattleFrontier_BattlePikeRoomNormal_EventScript_25D2FB:: @ 825D2FB + msgbox BattleFrontier_BattlePikeRoomNormal_Text_25E311, MSGBOX_DEFAULT + closemessage + special SpawnCameraObject + applymovement EVENT_OBJ_ID_CAMERA, BattleFrontier_BattlePikeRoomNormal_Movement_25D9B0 + applymovement 2, BattleFrontier_BattlePikeRoomNormal_Movement_25D7E2 + waitmovement 0 + playse 267 + call BattleFrontier_BattlePikeRoomNormal_EventScript_25D8E7 + delay 4 + call BattleFrontier_BattlePikeRoomNormal_EventScript_25D8A4 + delay 4 + call BattleFrontier_BattlePikeRoomNormal_EventScript_25D96D + delay 4 + waitse + delay 60 + playse 268 + delay 65 + call BattleFrontier_BattlePikeRoomNormal_EventScript_25D8A4 + showobjectat 1, MAP_BATTLE_FRONTIER_BATTLE_PIKE_ROOM_NORMAL + delay 4 + call BattleFrontier_BattlePikeRoomNormal_EventScript_25D8E7 + delay 4 + call BattleFrontier_BattlePikeRoomNormal_EventScript_25D92A + waitse + applymovement 1, BattleFrontier_BattlePikeRoomNormal_Movement_25D7E7 + waitmovement 0 + setvar VAR_0x8004, BATTLE_PIKE_FUNC_GET_QUEEN_FIGHT_TYPE + special CallBattlePikeFunction + switch VAR_RESULT + case 2, BattleFrontier_BattlePikeRoomNormal_EventScript_25D416 + case 3, BattleFrontier_BattlePikeRoomNormal_EventScript_25D3BD + case 4, BattleFrontier_BattlePikeRoomNormal_EventScript_25D443 + setvar VAR_0x8004, FRONTIER_UTIL_FUNC_GET_DATA + setvar VAR_0x8005, 7 + special CallFrontierUtilFunc + compare VAR_RESULT, 0 + goto_if_ne BattleFrontier_BattlePikeRoomNormal_EventScript_25D3BD + msgbox BattleFrontier_BattlePikeRoomNormal_Text_25DED2, MSGBOX_DEFAULT + setvar VAR_0x8004, FRONTIER_UTIL_FUNC_SET_DATA + setvar VAR_0x8005, 7 + special CallFrontierUtilFunc + +BattleFrontier_BattlePikeRoomNormal_EventScript_25D3BD:: @ 825D3BD + msgbox BattleFrontier_BattlePikeRoomNormal_Text_25DF71, MSGBOX_DEFAULT + call BattleFrontier_BattlePikeRoomNormal_EventScript_25D77B + compare VAR_RESULT, 1 + goto_if_eq BattleFrontier_BattlePikeRoomNormal_EventScript_25D3DA + goto BattleFrontier_BattlePikeRoomNormal_EventScript_25D20A + +BattleFrontier_BattlePikeRoomNormal_EventScript_25D3DA:: @ 825D3DA + setvar VAR_0x8004, FRONTIER_UTIL_FUNC_GET_FACILITY_SYMBOLS + special CallFrontierUtilFunc + compare VAR_RESULT, 0 + goto_if_ne BattleFrontier_BattlePikeRoomNormal_EventScript_25D49D + msgbox BattleFrontier_BattlePikeRoomNormal_Text_25DFA2, MSGBOX_DEFAULT + waitmessage + playfanfare MUS_ME_SYMBOLGET + message BattleFrontier_BattlePikeRoomNormal_Text_25DFD0 + waitmessage + waitfanfare + setvar VAR_0x8004, FRONTIER_UTIL_FUNC_GIVE_FACILITY_SYMBOL + special CallFrontierUtilFunc + msgbox BattleFrontier_BattlePikeRoomNormal_Text_25E003, MSGBOX_DEFAULT + closemessage + goto BattleFrontier_BattlePikeRoomNormal_EventScript_25D49D + +BattleFrontier_BattlePikeRoomNormal_EventScript_25D416:: @ 825D416 + setvar VAR_0x8004, FRONTIER_UTIL_FUNC_GET_DATA + setvar VAR_0x8005, 7 + special CallFrontierUtilFunc + compare VAR_RESULT, 0 + goto_if_ne BattleFrontier_BattlePikeRoomNormal_EventScript_25D443 + msgbox BattleFrontier_BattlePikeRoomNormal_Text_25E02C, MSGBOX_DEFAULT + setvar VAR_0x8004, FRONTIER_UTIL_FUNC_SET_DATA + setvar VAR_0x8005, 7 + special CallFrontierUtilFunc + +BattleFrontier_BattlePikeRoomNormal_EventScript_25D443:: @ 825D443 + msgbox BattleFrontier_BattlePikeRoomNormal_Text_25E0E8, MSGBOX_DEFAULT + call BattleFrontier_BattlePikeRoomNormal_EventScript_25D77B + compare VAR_RESULT, 1 + goto_if_eq BattleFrontier_BattlePikeRoomNormal_EventScript_25D460 + goto BattleFrontier_BattlePikeRoomNormal_EventScript_25D20A + +BattleFrontier_BattlePikeRoomNormal_EventScript_25D460:: @ 825D460 + setvar VAR_0x8004, FRONTIER_UTIL_FUNC_GET_FACILITY_SYMBOLS + special CallFrontierUtilFunc + compare VAR_RESULT, 2 + goto_if_eq BattleFrontier_BattlePikeRoomNormal_EventScript_25D49D + msgbox BattleFrontier_BattlePikeRoomNormal_Text_25E0F6, MSGBOX_DEFAULT + waitmessage + playfanfare MUS_ME_SYMBOLGET + message BattleFrontier_BattlePikeRoomNormal_Text_25E118 + waitmessage + waitfanfare + setvar VAR_0x8004, FRONTIER_UTIL_FUNC_GIVE_FACILITY_SYMBOL + special CallFrontierUtilFunc + msgbox BattleFrontier_BattlePikeRoomNormal_Text_25E140, MSGBOX_DEFAULT + closemessage + goto BattleFrontier_BattlePikeRoomNormal_EventScript_25D49D + end + +BattleFrontier_BattlePikeRoomNormal_EventScript_25D49D:: @ 825D49D + applymovement 1, BattleFrontier_BattlePikeRoomNormal_Movement_25D7EA + waitmovement 0 + applymovement EVENT_OBJ_ID_PLAYER, BattleFrontier_BattlePikeRoomNormal_Movement_25D7DC + waitmovement 0 + battlepike_getstreak + addvar VAR_RESULT, 1 + battlepike_setstreak VAR_RESULT + call BattleFrontier_BattlePikeRoom_EventScript_WarpToFinalRoom + waitstate + end + +BattleFrontier_BattlePikeRoomNormal_EventScript_25D4DC:: @ 825D4DC + msgbox BattleFrontier_BattlePikeRoomNormal_Text_25E15D, MSGBOX_DEFAULT + goto BattleFrontier_BattlePikeRoomNormal_EventScript_25D2FB + end + +BattleFrontier_BattlePikeRoomNormal_EventScript_25D4EA:: @ 825D4EA + msgbox BattleFrontier_BattlePikeRoomNormal_Text_25E1DD, MSGBOX_DEFAULT + playfanfare MUS_ME_ASA + waitfanfare + goto BattleFrontier_BattlePikeRoomNormal_EventScript_25D2FB + end + +BattleFrontier_BattlePikeRoomNormal_EventScript_25D4FC:: @ 825D4FC + msgbox BattleFrontier_BattlePikeRoomNormal_Text_25E238, MSGBOX_DEFAULT + playfanfare MUS_ME_ASA + waitfanfare + goto BattleFrontier_BattlePikeRoomNormal_EventScript_25D2FB + end + +BattleFrontier_BattlePikeRoomNormal_EventScript_25D50E:: @ 825D50E + lockall + delay 16 + applymovement 1, BattleFrontier_BattlePikeRoomNormal_Movement_25D795 + waitmovement 0 + message BattleFrontier_BattlePikeRoomNormal_Text_25D9B6 + waitmessage + playfanfare MUS_ME_ASA + waitfanfare + special HealPlayerParty + msgbox BattleFrontier_BattlePikeRoomNormal_Text_25DA13, MSGBOX_DEFAULT + closemessage + applymovement 1, BattleFrontier_BattlePikeRoomNormal_Movement_25D798 + waitmovement 0 + releaseall + end + +BattleFrontier_BattlePikeRoomNormal_EventScript_25D53E:: @ 825D53E + lockall + delay 16 + applymovement 1, BattleFrontier_BattlePikeRoomNormal_Movement_25D7C1 + applymovement 2, BattleFrontier_BattlePikeRoomNormal_Movement_25D7C3 + waitmovement 0 + applymovement 1, BattleFrontier_BattlePikeRoomNormal_Movement_25D7C5 + applymovement 2, BattleFrontier_BattlePikeRoomNormal_Movement_25D7C5 + waitmovement 0 + applymovement 1, BattleFrontier_BattlePikeRoomNormal_Movement_25D7C8 + applymovement 2, BattleFrontier_BattlePikeRoomNormal_Movement_25D7CA + waitmovement 0 + applymovement EVENT_OBJ_ID_PLAYER, BattleFrontier_BattlePikeRoomNormal_Movement_25D7BB + waitmovement 0 + setvar VAR_0x8004, BATTLE_PIKE_FUNC_BUFFER_RECORD_MIX_MSG + setvar VAR_0x8005, 0 + special CallBattlePikeFunction + msgbox gStringVar4, MSGBOX_DEFAULT + closemessage + delay 16 + applymovement EVENT_OBJ_ID_PLAYER, BattleFrontier_BattlePikeRoomNormal_Movement_25D7BD + waitmovement 0 + setvar VAR_0x8004, BATTLE_PIKE_FUNC_BUFFER_RECORD_MIX_MSG + setvar VAR_0x8005, 1 + special CallBattlePikeFunction + msgbox gStringVar4, MSGBOX_DEFAULT + closemessage + setvar VAR_0x8004, SPECIAL_BATTLE_PIKE_DOUBLE + setvar VAR_0x8005, 0 + special DoSpecialTrainerBattle + waitstate + switch VAR_RESULT + case 1, BattleFrontier_BattlePikeRoomNormal_EventScript_25D5DC + goto BattleFrontier_BattlePikeRoomNormal_EventScript_25D20A + end + +BattleFrontier_BattlePikeRoomNormal_EventScript_25D5DC:: @ 825D5DC + applymovement EVENT_OBJ_ID_PLAYER, BattleFrontier_BattlePikeRoomNormal_Movement_25D7BD + waitmovement 0 + applymovement 1, BattleFrontier_BattlePikeRoomNormal_Movement_25D7CC + waitmovement 0 + applymovement 2, BattleFrontier_BattlePikeRoomNormal_Movement_25D7D4 + waitmovement 0 + applymovement EVENT_OBJ_ID_PLAYER, BattleFrontier_BattlePikeRoomNormal_Movement_25D7BF + waitmovement 0 + end + +BattleFrontier_BattlePikeRoomNormal_EventScript_25D605:: @ 825D605 + lockall + message BattleFrontier_BattlePikeRoomNormal_Text_25DBD1 + applymovement 2, BattleFrontier_BattlePikeRoomNormal_Movement_25D7AA + waitmovement 0 + setvar VAR_0x8004, BATTLE_PIKE_FUNC_GET_ROOM_STATUS_MON + special CallBattlePikeFunction + copyvar VAR_0x8004, VAR_RESULT + compare VAR_0x8004, 0 + call_if_eq BattleFrontier_BattlePikeRoomNormal_EventScript_25D643 + compare VAR_0x8004, 1 + call_if_eq BattleFrontier_BattlePikeRoomNormal_EventScript_25D6D5 + msgbox BattleFrontier_BattlePikeRoomNormal_Text_25DD3F, MSGBOX_DEFAULT + closemessage + releaseall + end + +BattleFrontier_BattlePikeRoomNormal_EventScript_25D643:: @ 825D643 + msgbox BattleFrontier_BattlePikeRoomNormal_Text_25DBE4, MSGBOX_DEFAULT + closemessage + waitse + playmoncry SPECIES_KIRLIA, 0 + waitmoncry + setvar VAR_0x8004, BATTLE_PIKE_FUNC_GET_ROOM_STATUS + special CallBattlePikeFunction + compare VAR_RESULT, 2 + call_if_eq BattleFrontier_BattlePikeRoomNormal_EventScript_25D751 + compare VAR_RESULT, 1 + call_if_eq BattleFrontier_BattlePikeRoomNormal_EventScript_25D758 + compare VAR_RESULT, 3 + call_if_eq BattleFrontier_BattlePikeRoomNormal_EventScript_25D75F + compare VAR_RESULT, 4 + call_if_eq BattleFrontier_BattlePikeRoomNormal_EventScript_25D766 + setvar VAR_0x8004, BATTLE_PIKE_FUNC_STATUS_SCREEN_FADE + special CallBattlePikeFunction + waitstate + applymovement 1, BattleFrontier_BattlePikeRoomNormal_Movement_25D7A2 + waitmovement 0 + applymovement 2, BattleFrontier_BattlePikeRoomNormal_Movement_25D7B1 + waitmovement 0 + waitse + playmoncry SPECIES_KIRLIA, 0 + waitmoncry + msgbox BattleFrontier_BattlePikeRoomNormal_Text_25DCAF, MSGBOX_DEFAULT + waitse + playmoncry SPECIES_KIRLIA, 0 + waitmoncry + closemessage + applymovement 2, BattleFrontier_BattlePikeRoomNormal_Movement_25D7B3 + applymovement 1, BattleFrontier_BattlePikeRoomNormal_Movement_25D7A4 + waitmovement 0 + msgbox BattleFrontier_BattlePikeRoomNormal_Text_25DCCF, MSGBOX_DEFAULT + return + +BattleFrontier_BattlePikeRoomNormal_EventScript_25D6D5:: @ 825D6D5 + msgbox BattleFrontier_BattlePikeRoomNormal_Text_25DC01, MSGBOX_DEFAULT + closemessage + waitse + playmoncry SPECIES_DUSCLOPS, 0 + waitmoncry + setvar VAR_0x8004, BATTLE_PIKE_FUNC_GET_ROOM_STATUS + special CallBattlePikeFunction + compare VAR_RESULT, 0 + call_if_eq BattleFrontier_BattlePikeRoomNormal_EventScript_25D76D + compare VAR_RESULT, 1 + call_if_eq BattleFrontier_BattlePikeRoomNormal_EventScript_25D774 + setvar VAR_0x8004, BATTLE_PIKE_FUNC_STATUS_SCREEN_FADE + special CallBattlePikeFunction + waitstate + applymovement 1, BattleFrontier_BattlePikeRoomNormal_Movement_25D7A2 + waitmovement 0 + applymovement 2, BattleFrontier_BattlePikeRoomNormal_Movement_25D7B1 + waitmovement 0 + waitse + playmoncry SPECIES_DUSCLOPS, 0 + waitmoncry + msgbox BattleFrontier_BattlePikeRoomNormal_Text_25DCAF, MSGBOX_DEFAULT + waitse + playmoncry SPECIES_DUSCLOPS, 0 + waitmoncry + closemessage + applymovement 2, BattleFrontier_BattlePikeRoomNormal_Movement_25D7B3 + applymovement 1, BattleFrontier_BattlePikeRoomNormal_Movement_25D7A4 + waitmovement 0 + msgbox BattleFrontier_BattlePikeRoomNormal_Text_25DD06, MSGBOX_DEFAULT + return + +BattleFrontier_BattlePikeRoomNormal_EventScript_25D751:: @ 825D751 + message BattleFrontier_BattlePikeRoomNormal_Text_25DC20 + waitmessage + return + +BattleFrontier_BattlePikeRoomNormal_EventScript_25D758:: @ 825D758 + message BattleFrontier_BattlePikeRoomNormal_Text_25DC63 + waitmessage + return + +BattleFrontier_BattlePikeRoomNormal_EventScript_25D75F:: @ 825D75F + message BattleFrontier_BattlePikeRoomNormal_Text_25DC49 + waitmessage + return + +BattleFrontier_BattlePikeRoomNormal_EventScript_25D766:: @ 825D766 + message BattleFrontier_BattlePikeRoomNormal_Text_25DC33 + waitmessage + return + +BattleFrontier_BattlePikeRoomNormal_EventScript_25D76D:: @ 825D76D + message BattleFrontier_BattlePikeRoomNormal_Text_25DC97 + waitmessage + return + +BattleFrontier_BattlePikeRoomNormal_EventScript_25D774:: @ 825D774 + message BattleFrontier_BattlePikeRoomNormal_Text_25DC7C + waitmessage + return + +BattleFrontier_BattlePikeRoomNormal_EventScript_25D77B:: @ 825D77B + closemessage + applymovement EVENT_OBJ_ID_PLAYER, BattleFrontier_BattlePikeRoomNormal_Movement_25D7DC + waitmovement 0 + setvar VAR_0x8004, SPECIAL_BATTLE_PIKE_SINGLE + setvar VAR_0x8005, 0 + special DoSpecialTrainerBattle + waitstate + return + +BattleFrontier_BattlePikeRoomNormal_Movement_25D795: @ 825D795 + walk_down + walk_down + step_end + +BattleFrontier_BattlePikeRoomNormal_Movement_25D798: @ 825D798 + walk_up + walk_up + walk_up + set_invisible + walk_up + step_end + +BattleFrontier_BattlePikeRoomNormal_Movement_25D79E: @ 825D79E + walk_up + set_invisible + walk_up + step_end + +BattleFrontier_BattlePikeRoomNormal_Movement_25D7A2: @ 825D7A2 + walk_down + step_end + +BattleFrontier_BattlePikeRoomNormal_Movement_25D7A4: @ 825D7A4 + walk_down + face_left + delay_16 + delay_16 + face_down + step_end + +BattleFrontier_BattlePikeRoomNormal_Movement_25D7AA: @ 825D7AA + walk_fast_down + walk_fast_right + walk_fast_right + walk_fast_down + walk_fast_left + face_down + step_end + +BattleFrontier_BattlePikeRoomNormal_Movement_25D7B1: @ 825D7B1 + face_up + step_end + +BattleFrontier_BattlePikeRoomNormal_Movement_25D7B3: @ 825D7B3 + walk_left + +BattleFrontier_BattlePikeRoomNormal_Movement_25D7B4: @ 825D7B4 + face_right + step_end + +BattleFrontier_BattlePikeRoomNormal_Movement_25D7B6: @ 825D7B6 + walk_down + walk_down + walk_right + face_down + step_end + +BattleFrontier_BattlePikeRoomNormal_Movement_25D7BB: @ 825D7BB + face_left + step_end + +BattleFrontier_BattlePikeRoomNormal_Movement_25D7BD: @ 825D7BD + face_right + step_end + +BattleFrontier_BattlePikeRoomNormal_Movement_25D7BF: @ 825D7BF + face_up + step_end + +BattleFrontier_BattlePikeRoomNormal_Movement_25D7C1: @ 825D7C1 + walk_right + step_end + +BattleFrontier_BattlePikeRoomNormal_Movement_25D7C3: @ 825D7C3 + walk_left + step_end + +BattleFrontier_BattlePikeRoomNormal_Movement_25D7C5: @ 825D7C5 + walk_down + walk_down + step_end + +BattleFrontier_BattlePikeRoomNormal_Movement_25D7C8: @ 825D7C8 + face_right + step_end + +BattleFrontier_BattlePikeRoomNormal_Movement_25D7CA: @ 825D7CA + face_left + step_end + +BattleFrontier_BattlePikeRoomNormal_Movement_25D7CC: @ 825D7CC + walk_up + walk_up + walk_up + walk_right + walk_up + set_invisible + walk_up + step_end + +BattleFrontier_BattlePikeRoomNormal_Movement_25D7D4: @ 825D7D4 + walk_up + walk_up + walk_up + walk_left + walk_up + set_invisible + walk_up + step_end + +BattleFrontier_BattlePikeRoomNormal_Movement_25D7DC: @ 825D7DC + walk_up + walk_up + step_end + +BattleFrontier_BattlePikeRoomNormal_Movement_25D7DF: @ 825D7DF + walk_down + walk_down + step_end + +BattleFrontier_BattlePikeRoomNormal_Movement_25D7E2: @ 825D7E2 + walk_up + walk_up + walk_up + set_invisible + step_end + +BattleFrontier_BattlePikeRoomNormal_Movement_25D7E7: @ 825D7E7 + set_visible + walk_down + step_end + +BattleFrontier_BattlePikeRoomNormal_Movement_25D7EA: @ 825D7EA + walk_left + face_right + step_end + +BattleFrontier_BattlePikeRoomNormal_EventScript_25D7ED:: @ 825D7ED + battlepike_getroomtype + switch VAR_RESULT + case PIKE_ROOM_NPC, BattleFrontier_BattlePikeRoomNormal_EventScript_25D81B + case PIKE_ROOM_STATUS, BattleFrontier_BattlePikeRoomNormal_EventScript_25D831 + case PIKE_ROOM_HEAL_PART, BattleFrontier_BattlePikeRoomNormal_EventScript_25D83E +BattleFrontier_BattlePikeRoomNormal_EventScript_25D81B:: @ 825D81B + lock + faceplayer + setvar VAR_0x8004, BATTLE_PIKE_FUNC_BUFFER_NPC_MSG + special CallBattlePikeFunction + msgbox gStringVar4, MSGBOX_DEFAULT + waitmessage + closemessage + release + end + +BattleFrontier_BattlePikeRoomNormal_EventScript_25D831:: @ 825D831 + lock + faceplayer + msgbox BattleFrontier_BattlePikeRoomNormal_Text_25DDA3, MSGBOX_DEFAULT + closemessage + release + end + +BattleFrontier_BattlePikeRoomNormal_EventScript_25D83E:: @ 825D83E + setvar VAR_0x8004, BATTLE_PIKE_FUNC_HEAL_ONE_TWO_MONS + special CallBattlePikeFunction + compare VAR_RESULT, 2 + call_if_eq BattleFrontier_BattlePikeRoomNormal_EventScript_25D881 + compare VAR_RESULT, 1 + call_if_eq BattleFrontier_BattlePikeRoomNormal_EventScript_25D875 + playfanfare MUS_ME_ASA + waitfanfare + msgbox BattleFrontier_BattlePikeRoomNormal_Text_25DABE, MSGBOX_DEFAULT + closemessage + release + applymovement 1, BattleFrontier_BattlePikeRoomNormal_Movement_25D79E + waitmovement 0 + end + +BattleFrontier_BattlePikeRoomNormal_EventScript_25D875:: @ 825D875 + lock + faceplayer + msgbox BattleFrontier_BattlePikeRoomNormal_Text_25DA51, MSGBOX_DEFAULT + closemessage + return + +BattleFrontier_BattlePikeRoomNormal_EventScript_25D881:: @ 825D881 + lock + faceplayer + msgbox BattleFrontier_BattlePikeRoomNormal_Text_25E32E, MSGBOX_DEFAULT + closemessage + return + +BattleFrontier_BattlePikeRoomNormal_EventScript_25D88D:: @ 825D88D + lock + faceplayer + msgbox BattleFrontier_BattlePikeRoomNormal_Text_25DDE6, MSGBOX_DEFAULT + closemessage + release + applymovement 2, BattleFrontier_BattlePikeRoomNormal_Movement_25D7B4 + waitmovement 0 + end + +BattleFrontier_BattlePikeRoomNormal_EventScript_25D8A4:: @ 825D8A4 + setmetatile 4, 1, METATILE_BattlePike_Curtain_Stage1_Tile0, 1 + setmetatile 3, 2, METATILE_BattlePike_Curtain_Stage1_Tile1, 1 + setmetatile 4, 2, METATILE_BattlePike_Curtain_Stage1_Tile2, 1 + setmetatile 5, 2, METATILE_BattlePike_Curtain_Stage1_Tile3, 1 + setmetatile 3, 3, METATILE_BattlePike_Curtain_Stage1_Tile4, 1 + setmetatile 4, 3, METATILE_BattlePike_Curtain_Stage1_Tile5, 0 + setmetatile 5, 3, METATILE_BattlePike_Curtain_Stage1_Tile6, 1 + special DrawWholeMapView + return + +BattleFrontier_BattlePikeRoomNormal_EventScript_25D8E7:: @ 825D8E7 + setmetatile 4, 1, METATILE_BattlePike_Curtain_Stage2_Tile0, 1 + setmetatile 3, 2, METATILE_BattlePike_Curtain_Stage2_Tile1, 1 + setmetatile 4, 2, METATILE_BattlePike_Curtain_Stage2_Tile2, 1 + setmetatile 5, 2, METATILE_BattlePike_Curtain_Stage2_Tile3, 1 + setmetatile 3, 3, METATILE_BattlePike_Curtain_Stage2_Tile4, 1 + setmetatile 4, 3, METATILE_BattlePike_Curtain_Stage2_Tile5, 0 + setmetatile 5, 3, METATILE_BattlePike_Curtain_Stage2_Tile6, 1 + special DrawWholeMapView + return + +BattleFrontier_BattlePikeRoomNormal_EventScript_25D92A:: @ 825D92A + setmetatile 4, 1, METATILE_BattlePike_Curtain_Stage3_Tile0, 1 + setmetatile 3, 2, METATILE_BattlePike_Curtain_Stage3_Tile1, 1 + setmetatile 4, 2, METATILE_BattlePike_Curtain_Stage3_Tile2, 1 + setmetatile 5, 2, METATILE_BattlePike_Curtain_Stage3_Tile3, 1 + setmetatile 3, 3, METATILE_BattlePike_Curtain_Stage3_Tile4, 1 + setmetatile 4, 3, METATILE_BattlePike_Curtain_Stage3_Tile5, 0 + setmetatile 5, 3, METATILE_BattlePike_Curtain_Stage3_Tile6, 1 + special DrawWholeMapView + return + +BattleFrontier_BattlePikeRoomNormal_EventScript_25D96D:: @ 825D96D + setmetatile 4, 1, METATILE_BattlePike_Curtain_Stage0_Tile0, 1 + setmetatile 3, 2, METATILE_BattlePike_Curtain_Stage0_Tile1, 1 + setmetatile 4, 2, METATILE_BattlePike_Curtain_Stage0_Tile2, 1 + setmetatile 5, 2, METATILE_BattlePike_Curtain_Stage0_Tile3, 1 + setmetatile 3, 3, METATILE_BattlePike_Curtain_Stage0_Tile4, 1 + setmetatile 4, 3, METATILE_BattlePike_Curtain_Stage0_Tile5, 0 + setmetatile 5, 3, METATILE_BattlePike_Curtain_Stage0_Tile6, 1 + special DrawWholeMapView + return + +BattleFrontier_BattlePikeRoomNormal_Movement_25D9B0: @ 825D9B0 + walk_up + walk_up + step_end + +BattleFrontier_BattlePikeRoomNormal_Movement_25D9B3: @ 825D9B3 + walk_down + walk_down + step_end + +BattleFrontier_BattlePikeRoomNormal_Text_25D9B6: @ 825D9B6 + .string "Welcome…\n" + .string "You must be commended for your luck…\p" + .string "Your POKéMON shall be restored\n" + .string "to full health…$" + +BattleFrontier_BattlePikeRoomNormal_Text_25DA13: @ 825DA13 + .string "I urge you to enjoy the rest of your\n" + .string "Battle Choice challenge…$" + +BattleFrontier_BattlePikeRoomNormal_Text_25DA51: @ 825DA51 + .string "Ah, you're a lucky one.\n" + .string "I'm in somewhat-good spirits now.\p" + .string "I will restore one of your POKéMON\n" + .string "to full health.$" + +BattleFrontier_BattlePikeRoomNormal_Text_25DABE: @ 825DABE + .string "The best of luck to you.\n" + .string "Farewell.$" + +BattleFrontier_BattlePikeRoomNormal_Text_25DAE1: @ 825DAE1 + .string "Excuse me…\p" + .string "Would you care for a battle?\n" + .string "I'll restore your POKéMON if you win.$" + +BattleFrontier_BattlePikeRoomNormal_Text_25DB2F: @ 825DB2F + .string "Very well…\n" + .string "Now, shall we?$" + +BattleFrontier_BattlePikeRoomNormal_Text_25DB49: @ 825DB49 + .string "I see…\n" + .string "How unsporting of you…$" + +BattleFrontier_BattlePikeRoomNormal_Text_25DB67: @ 825DB67 + .string "Magnificent…\p" + .string "As promised, I shall restore your\n" + .string "POKéMON to full health.$" + +BattleFrontier_BattlePikeRoomNormal_Text_25DBAE: @ 825DBAE + .string "The best of luck to you.\n" + .string "Farewell.$" + +BattleFrontier_BattlePikeRoomNormal_Text_25DBD1: @ 825DBD1 + .string "Oh, my!\p" + .string "Watch out!$" + +BattleFrontier_BattlePikeRoomNormal_Text_25DBE4: @ 825DBE4 + .string "Now, now!\n" + .string "KIRLIA, stop that!$" + +BattleFrontier_BattlePikeRoomNormal_Text_25DC01: @ 825DC01 + .string "Now, now!\n" + .string "DUSCLOPS, stop that!$" + +BattleFrontier_BattlePikeRoomNormal_Text_25DC20: @ 825DC20 + .string "KIRLIA used TOXIC!$" + +BattleFrontier_BattlePikeRoomNormal_Text_25DC33: @ 825DC33 + .string "KIRLIA used HYPNOSIS!$" + +BattleFrontier_BattlePikeRoomNormal_Text_25DC49: @ 825DC49 + .string "KIRLIA used THUNDER WAVE!$" + +BattleFrontier_BattlePikeRoomNormal_Text_25DC63: @ 825DC63 + .string "KIRLIA used WILL-O-WISP!$" + +BattleFrontier_BattlePikeRoomNormal_Text_25DC7C: @ 825DC7C + .string "DUSCLOPS used WILL-O-WISP!$" + +BattleFrontier_BattlePikeRoomNormal_Text_25DC97: @ 825DC97 + .string "DUSCLOPS used ICE BEAM!$" + +BattleFrontier_BattlePikeRoomNormal_Text_25DCAF: @ 825DCAF + .string "Look here!\n" + .string "That's quite enough!$" + +BattleFrontier_BattlePikeRoomNormal_Text_25DCCF: @ 825DCCF + .string "I must apologize to you…\p" + .string "My KIRLIA has a TIMID nature…$" + +BattleFrontier_BattlePikeRoomNormal_Text_25DD06: @ 825DD06 + .string "I must apologize to you…\p" + .string "My DUSCLOPS has a TIMID nature…$" + +BattleFrontier_BattlePikeRoomNormal_Text_25DD3F: @ 825DD3F + .string "It attacks without warning if it is\n" + .string "startled by another person…\p" + .string "Are you and your POKéMON all right?$" + +BattleFrontier_BattlePikeRoomNormal_Text_25DDA3: @ 825DDA3 + .string "I do apologize for what happened…\n" + .string "I do hope your POKéMON are fine.$" + +BattleFrontier_BattlePikeRoomNormal_Text_25DDE6: @ 825DDE6 + .string "… … … … … …\n" + .string "… … … … … …$" + +BattleFrontier_BattlePikeRoomNormal_Text_25DDFE: @ 825DDFE + .string "Welcome…\p" + .string "Here, we will have you battle\n" + .string "a somewhat-tough TRAINER…$" + +BattleFrontier_BattlePikeRoomNormal_Text_25DE3F: @ 825DE3F + .string "How wonderful…\p" + .string "To honor your victory, your POKéMON\n" + .string "shall be restored to full health…$" + +BattleFrontier_BattlePikeRoomNormal_Text_25DE94: @ 825DE94 + .string "I urge you to enjoy the rest of your\n" + .string "Battle Choice challenge…$" + +BattleFrontier_BattlePikeRoomNormal_Text_25DED2: @ 825DED2 + .string "I am LUCY…\n" + .string "I am the law here…\l" + .string "For I am the PIKE QUEEN…\p" + .string "You already know it, but to advance,\n" + .string "you must defeat me…\p" + .string "…I'm not one for idle chatter.\n" + .string "Hurry. Come on…$" + +BattleFrontier_BattlePikeRoomNormal_Text_25DF71: @ 825DF71 + .string "Your luck…\n" + .string "I hope you didn't use it all up here…$" + +BattleFrontier_BattlePikeRoomNormal_Text_25DFA2: @ 825DFA2 + .string "LUCY: … … … … … …\n" + .string "Show me your FRONTIER PASS…$" + +BattleFrontier_BattlePikeRoomNormal_Text_25DFD0: @ 825DFD0 + .string "The Luck Symbol was embossed on\n" + .string "the FRONTIER PASS!$" + +BattleFrontier_BattlePikeRoomNormal_Text_25E003: @ 825E003 + .string "…That's all there is…\n" + .string "Disappear already…$" + +BattleFrontier_BattlePikeRoomNormal_Text_25E02C: @ 825E02C + .string "LUCY: …You again…\p" + .string "… … … … … …\p" + .string "…I've trampled flowers and braved\n" + .string "storms to get to where I am…\p" + .string "I don't feel any compulsion to keep\n" + .string "losing to the same opponent…\p" + .string "… … … … … …\n" + .string "Fine… I'll do it…$" + +BattleFrontier_BattlePikeRoomNormal_Text_25E0E8: @ 825E0E8 + .string "Now!\n" + .string "Come on!$" + +BattleFrontier_BattlePikeRoomNormal_Text_25E0F6: @ 825E0F6 + .string "LUCY: … … … … … …\p" + .string "…FRONTIER PASS…$" + +BattleFrontier_BattlePikeRoomNormal_Text_25E118: @ 825E118 + .string "The Luck Symbol took on\n" + .string "a golden shine!$" + +BattleFrontier_BattlePikeRoomNormal_Text_25E140: @ 825E140 + .string "…You, I won't forget…\n" + .string "…Ever…$" + +BattleFrontier_BattlePikeRoomNormal_Text_25E15D: @ 825E15D + .string "I welcome you…\p" + .string "Giggle…\n" + .string "You seem to be bereft of luck…\p" + .string "If only you hadn't chosen this room,\n" + .string "your POKéMON could have been healed…$" + +BattleFrontier_BattlePikeRoomNormal_Text_25E1DD: @ 825E1DD + .string "I welcome you…\p" + .string "Since you have chosen this room, I will\n" + .string "restore one POKéMON to full health…$" + +BattleFrontier_BattlePikeRoomNormal_Text_25E238: @ 825E238 + .string "I welcome you…\p" + .string "Since you have chosen this room, I will\n" + .string "restore two POKéMON to full health…$" + +BattleFrontier_BattlePikeRoomNormal_Text_25E293: @ 825E293 + .string "I welcome you…\p" + .string "Giggle…\n" + .string "You should thank your lucky stars…\p" + .string "Since you have chosen this room,\n" + .string "all your POKéMON will be restored…$" + +BattleFrontier_BattlePikeRoomNormal_Text_25E311: @ 825E311 + .string "I shall go fetch our master…$" + +BattleFrontier_BattlePikeRoomNormal_Text_25E32E: @ 825E32E + .string "Ah, you're a lucky one!\n" + .string "I'm in good spirits now.\p" + .string "I will restore two of your POKéMON\n" + .string "to full health!$" + diff --git a/data/maps/BattleFrontier_BattlePikeRoomWildMons/map.json b/data/maps/BattleFrontier_BattlePikeRoomWildMons/map.json new file mode 100644 index 000000000..3a8362b7f --- /dev/null +++ b/data/maps/BattleFrontier_BattlePikeRoomWildMons/map.json @@ -0,0 +1,84 @@ +{ + "id": "MAP_BATTLE_FRONTIER_BATTLE_PIKE_ROOM_WILD_MONS", + "name": "BattleFrontier_BattlePikeRoomWildMons", + "layout": "LAYOUT_BATTLE_FRONTIER_BATTLE_PIKE_ROOM_WILD_MONS", + "music": "MUS_B_TUBE", + "region_map_section": "MAPSEC_BATTLE_FRONTIER", + "requires_flash": false, + "weather": "WEATHER_NONE", + "map_type": "MAP_TYPE_INDOOR", + "allow_bike": false, + "allow_escape_rope": false, + "allow_running": true, + "show_map_name": false, + "battle_scene": "MAP_BATTLE_SCENE_NORMAL", + "connections": null, + "object_events": [], + "warp_events": [], + "coord_events": [ + { + "type": "trigger", + "x": 4, + "y": 3, + "elevation": 3, + "var": "VAR_TEMP_1", + "var_value": "0", + "script": "BattleFrontier_BattlePikeRoomWildMons_EventScript_2C4174" + }, + { + "type": "trigger", + "x": 3, + "y": 18, + "elevation": 3, + "var": "VAR_TEMP_2", + "var_value": "0", + "script": "BattleFrontier_BattlePikeRoomWildMons_EventScript_2C4202" + }, + { + "type": "trigger", + "x": 4, + "y": 18, + "elevation": 3, + "var": "VAR_TEMP_2", + "var_value": "0", + "script": "BattleFrontier_BattlePikeRoomWildMons_EventScript_2C4202" + }, + { + "type": "trigger", + "x": 5, + "y": 18, + "elevation": 3, + "var": "VAR_TEMP_2", + "var_value": "0", + "script": "BattleFrontier_BattlePikeRoomWildMons_EventScript_2C4202" + }, + { + "type": "trigger", + "x": 3, + "y": 19, + "elevation": 3, + "var": "VAR_TEMP_3", + "var_value": "1", + "script": "BattleFrontier_BattlePikeRoomWildMons_EventScript_2C420D" + }, + { + "type": "trigger", + "x": 4, + "y": 19, + "elevation": 3, + "var": "VAR_TEMP_3", + "var_value": "1", + "script": "BattleFrontier_BattlePikeRoomWildMons_EventScript_2C420D" + }, + { + "type": "trigger", + "x": 5, + "y": 19, + "elevation": 3, + "var": "VAR_TEMP_3", + "var_value": "1", + "script": "BattleFrontier_BattlePikeRoomWildMons_EventScript_2C420D" + } + ], + "bg_events": [] +} \ No newline at end of file diff --git a/data/maps/BattleFrontier_BattlePikeRoomWildMons/scripts.inc b/data/maps/BattleFrontier_BattlePikeRoomWildMons/scripts.inc new file mode 100644 index 000000000..cc4c49bd7 --- /dev/null +++ b/data/maps/BattleFrontier_BattlePikeRoomWildMons/scripts.inc @@ -0,0 +1,45 @@ +BattleFrontier_BattlePikeRoomWildMons_MapScripts:: @ 825E41A + map_script MAP_SCRIPT_ON_RESUME, BattleFrontier_BattlePikeRoomWildMons_MapScript1_25E47A + map_script MAP_SCRIPT_ON_FRAME_TABLE, BattleFrontier_BattlePikeRoomWildMons_MapScript2_25E42A + map_script MAP_SCRIPT_ON_WARP_INTO_MAP_TABLE, BattleFrontier_BattlePikeRoomWildMons_MapScript2_25E466 + .byte 0 + +BattleFrontier_BattlePikeRoomWildMons_MapScript2_25E42A: @ 825E42A + map_script_2 VAR_TEMP_0, 0, BattleFrontier_BattlePikeRoomWildMons_EventScript_25E43C + map_script_2 VAR_TEMP_1, 1, BattleFrontier_BattlePikeRoomWildMons_EventScript_25E44A + .2byte 0 + +BattleFrontier_BattlePikeRoomWildMons_EventScript_25E43C:: @ 825E43C + setvar VAR_TEMP_0, 1 + setvar VAR_0x8004, BATTLE_PIKE_FUNC_6 + special CallBattlePikeFunction + end + +BattleFrontier_BattlePikeRoomWildMons_EventScript_25E44A:: @ 825E44A + frontier_setchallengestatus CHALLENGE_STATUS_LOST + warp MAP_BATTLE_FRONTIER_BATTLE_PIKE_LOBBY, 255, 5, 6 + waitstate + end + +BattleFrontier_BattlePikeRoomWildMons_MapScript2_25E466: @ 825E466 + map_script_2 VAR_TEMP_4, 0, BattleFrontier_BattlePikeRoomWildMons_EventScript_25E470 + .2byte 0 + +BattleFrontier_BattlePikeRoomWildMons_EventScript_25E470:: @ 825E470 + setvar VAR_TEMP_4, 1 + turnobject EVENT_OBJ_ID_PLAYER, DIR_NORTH + end + +BattleFrontier_BattlePikeRoomWildMons_MapScript1_25E47A: @ 825E47A + call BattleFrontier_BattlePikeRoom_EventScript_ResetSketchedMoves + frontier_getbattleoutcome + compare VAR_RESULT, B_OUTCOME_LOST + goto_if_eq BattleFrontier_BattlePikeRoomWildMons_EventScript_25E4A3 + compare VAR_RESULT, B_OUTCOME_DREW + goto_if_eq BattleFrontier_BattlePikeRoomWildMons_EventScript_25E4A3 + end + +BattleFrontier_BattlePikeRoomWildMons_EventScript_25E4A3:: @ 825E4A3 + setvar VAR_TEMP_1, 1 + end + diff --git a/data/maps/BattleFrontier_BattlePikeThreePathRoom/map.json b/data/maps/BattleFrontier_BattlePikeThreePathRoom/map.json index ac9230c53..aa512a0a7 100644 --- a/data/maps/BattleFrontier_BattlePikeThreePathRoom/map.json +++ b/data/maps/BattleFrontier_BattlePikeThreePathRoom/map.json @@ -37,7 +37,7 @@ "movement_range_y": 0, "trainer_type": "0", "trainer_sight_or_berry_tree_id": "0", - "script": "BattleFrontier_BattlePikeThreePathRoom_EventScript_25CABB", + "script": "BattleFrontier_BattlePikeThreePathRoom_EventScript_HintGiver", "flag": "0" } ], @@ -50,7 +50,7 @@ "elevation": 3, "var": "VAR_TEMP_1", "var_value": "0", - "script": "BattleFrontier_BattlePikeThreePathRoom_EventScript_2C3F4E" + "script": "BattleFrontier_BattlePikeThreePathRoom_EventScript_LeftRoomWarp" }, { "type": "trigger", @@ -59,7 +59,7 @@ "elevation": 3, "var": "VAR_TEMP_1", "var_value": "0", - "script": "BattleFrontier_BattlePikeThreePathRoom_EventScript_2C3F59" + "script": "BattleFrontier_BattlePikeThreePathRoom_EventScript_CenterRoomWarp" }, { "type": "trigger", @@ -68,7 +68,7 @@ "elevation": 3, "var": "VAR_TEMP_1", "var_value": "0", - "script": "BattleFrontier_BattlePikeThreePathRoom_EventScript_2C3F64" + "script": "BattleFrontier_BattlePikeThreePathRoom_EventScript_RightRoomWarp" }, { "type": "trigger", diff --git a/data/maps/BattleFrontier_BattlePikeThreePathRoom/scripts.inc b/data/maps/BattleFrontier_BattlePikeThreePathRoom/scripts.inc index 53a796011..4beb3be99 100644 --- a/data/maps/BattleFrontier_BattlePikeThreePathRoom/scripts.inc +++ b/data/maps/BattleFrontier_BattlePikeThreePathRoom/scripts.inc @@ -1,18 +1,18 @@ BattleFrontier_BattlePikeThreePathRoom_MapScripts:: @ 825C843 - map_script MAP_SCRIPT_ON_RESUME, BattleFrontier_BattlePikeThreePathRoom_MapScript1_2C423E - map_script MAP_SCRIPT_ON_FRAME_TABLE, BattleFrontier_BattlePikeThreePathRoom_MapScript2_25C853 - map_script MAP_SCRIPT_ON_WARP_INTO_MAP_TABLE, BattleFrontier_BattlePikeThreePathRoom_MapScript2_25C87D + map_script MAP_SCRIPT_ON_RESUME, BattleFrontier_BattlePikeRoom_OnResume + map_script MAP_SCRIPT_ON_FRAME_TABLE, BattleFrontier_BattlePikeThreePathRoom_OnFrame + map_script MAP_SCRIPT_ON_WARP_INTO_MAP_TABLE, BattleFrontier_BattlePikeThreePathRoom_OnWarp .byte 0 -BattleFrontier_BattlePikeThreePathRoom_MapScript2_25C853: @ 825C853 - map_script_2 VAR_TEMP_0, 0, BattleFrontier_BattlePikeThreePathRoom_EventScript_25C891 - map_script_2 VAR_TEMP_0, 1, BattleFrontier_BattlePikeThreePathRoom_EventScript_25C89A +BattleFrontier_BattlePikeThreePathRoom_OnFrame: @ 825C853 + map_script_2 VAR_TEMP_0, 0, BattleFrontier_BattlePikeThreePathRoom_EventScript_CheckChallengeOutcome + map_script_2 VAR_TEMP_0, 1, BattleFrontier_BattlePikeThreePathRoom_EventScript_WarpToLobby map_script_2 VAR_TEMP_0, 2, BattleFrontier_BattlePikeThreePathRoom_EventScript_25C8A4 map_script_2 VAR_TEMP_5, 0, BattleFrontier_BattlePikeThreePathRoom_EventScript_25CA78 map_script_2 VAR_TEMP_5, 1, BattleFrontier_BattlePikeThreePathRoom_EventScript_25CA97 .2byte 0 -BattleFrontier_BattlePikeThreePathRoom_MapScript2_25C87D: @ 825C87D +BattleFrontier_BattlePikeThreePathRoom_OnWarp: @ 825C87D map_script_2 VAR_TEMP_4, 0, BattleFrontier_BattlePikeThreePathRoom_EventScript_25C887 .2byte 0 @@ -21,47 +21,44 @@ BattleFrontier_BattlePikeThreePathRoom_EventScript_25C887:: @ 825C887 turnobject EVENT_OBJ_ID_PLAYER, DIR_NORTH end -BattleFrontier_BattlePikeThreePathRoom_EventScript_25C891:: @ 825C891 - setvar VAR_0x8004, FRONTIER_UTIL_FUNC_0 - special CallFrontierUtilFunc +BattleFrontier_BattlePikeThreePathRoom_EventScript_CheckChallengeOutcome:: @ 825C891 + frontier_checkoutcome end -BattleFrontier_BattlePikeThreePathRoom_EventScript_25C89A:: @ 825C89A +BattleFrontier_BattlePikeThreePathRoom_EventScript_WarpToLobby:: @ 825C89A warp MAP_BATTLE_FRONTIER_BATTLE_PIKE_LOBBY, 255, 5, 6 waitstate end BattleFrontier_BattlePikeThreePathRoom_EventScript_25C8A4:: @ 825C8A4 lockall - message BattleFrontier_BattlePikeThreePathRoom_Text_25CD75 + message BattleFrontier_BattlePikeThreePathRoom_Text_AwaitingReturnSaveBeforeResume waitmessage setvar VAR_0x8004, BATTLE_PIKE_FUNC_8 setvar VAR_0x8005, 1 special CallBattlePikeFunction playse SE_SAVE waitse - setvar VAR_0x8004, FRONTIER_UTIL_FUNC_2 + setvar VAR_0x8004, FRONTIER_UTIL_FUNC_SET_DATA setvar VAR_0x8005, 3 setvar VAR_0x8006, 0 special CallFrontierUtilFunc setvar VAR_TEMP_0, 255 special SavePlayerParty - setvar VAR_0x8004, FRONTIER_UTIL_FUNC_LOAD_SELECTED_PARTY - setvar VAR_0x8005, FRONTIER_PARTY_SIZE - special CallFrontierUtilFunc - msgbox BattleFrontier_BattlePikeThreePathRoom_Text_25CDDA, MSGBOX_DEFAULT + frontier_loadselectedmons + msgbox BattleFrontier_BattlePikeThreePathRoom_Text_PleaseEnjoyChallenge, MSGBOX_DEFAULT closemessage releaseall setvar VAR_0x8004, FRONTIER_UTIL_FUNC_SET_FRONTIER_TRAINERS special CallFrontierUtilFunc - setvar VAR_0x8004, FRONTIER_UTIL_FUNC_2 + setvar VAR_0x8004, FRONTIER_UTIL_FUNC_SET_DATA setvar VAR_0x8005, 0 setvar VAR_0x8006, 99 special CallFrontierUtilFunc end BattleFrontier_BattlePikeThreePathRoom_EventScript_25C908:: @ 825C908 - setvar VAR_0x8004, FRONTIER_UTIL_FUNC_1 + setvar VAR_0x8004, FRONTIER_UTIL_FUNC_GET_DATA setvar VAR_0x8005, 2 special CallFrontierUtilFunc switch VAR_RESULT @@ -77,54 +74,54 @@ BattleFrontier_BattlePikeThreePathRoom_EventScript_25C908:: @ 825C908 BattleFrontier_BattlePikeThreePathRoom_EventScript_25C968:: @ 825C968 lock faceplayer - msgbox BattleFrontier_BattlePikeThreePathRoom_Text_25CBDD, MSGBOX_DEFAULT + msgbox BattleFrontier_BattlePikeThreePathRoom_Text_CurrentlyInRoom1, MSGBOX_DEFAULT goto BattleFrontier_BattlePikeThreePathRoom_EventScript_25C9D8 end BattleFrontier_BattlePikeThreePathRoom_EventScript_25C978:: @ 825C978 lock faceplayer - msgbox BattleFrontier_BattlePikeThreePathRoom_Text_25CC00, MSGBOX_DEFAULT + msgbox BattleFrontier_BattlePikeThreePathRoom_Text_CurrentlyInRoom3, MSGBOX_DEFAULT goto BattleFrontier_BattlePikeThreePathRoom_EventScript_25C9D8 end BattleFrontier_BattlePikeThreePathRoom_EventScript_25C988:: @ 825C988 lock faceplayer - msgbox BattleFrontier_BattlePikeThreePathRoom_Text_25CC23, MSGBOX_DEFAULT + msgbox BattleFrontier_BattlePikeThreePathRoom_Text_CurrentlyInRoom5, MSGBOX_DEFAULT goto BattleFrontier_BattlePikeThreePathRoom_EventScript_25C9D8 end BattleFrontier_BattlePikeThreePathRoom_EventScript_25C998:: @ 825C998 lock faceplayer - msgbox BattleFrontier_BattlePikeThreePathRoom_Text_25CC46, MSGBOX_DEFAULT + msgbox BattleFrontier_BattlePikeThreePathRoom_Text_CurrentlyInRoom7, MSGBOX_DEFAULT goto BattleFrontier_BattlePikeThreePathRoom_EventScript_25C9D8 end BattleFrontier_BattlePikeThreePathRoom_EventScript_25C9A8:: @ 825C9A8 lock faceplayer - msgbox BattleFrontier_BattlePikeThreePathRoom_Text_25CC69, MSGBOX_DEFAULT + msgbox BattleFrontier_BattlePikeThreePathRoom_Text_CurrentlyInRoom9, MSGBOX_DEFAULT goto BattleFrontier_BattlePikeThreePathRoom_EventScript_25C9D8 end BattleFrontier_BattlePikeThreePathRoom_EventScript_25C9B8:: @ 825C9B8 lock faceplayer - msgbox BattleFrontier_BattlePikeThreePathRoom_Text_25CC8C, MSGBOX_DEFAULT + msgbox BattleFrontier_BattlePikeThreePathRoom_Text_CurrentlyInRoom11, MSGBOX_DEFAULT goto BattleFrontier_BattlePikeThreePathRoom_EventScript_25C9D8 end BattleFrontier_BattlePikeThreePathRoom_EventScript_25C9C8:: @ 825C9C8 lock faceplayer - msgbox BattleFrontier_BattlePikeThreePathRoom_Text_25CCB0, MSGBOX_DEFAULT + msgbox BattleFrontier_BattlePikeThreePathRoom_Text_CurrentlyInRoom13, MSGBOX_DEFAULT goto BattleFrontier_BattlePikeThreePathRoom_EventScript_25C9D8 end BattleFrontier_BattlePikeThreePathRoom_EventScript_25C9D8:: @ 825C9D8 - msgbox BattleFrontier_BattlePikeThreePathRoom_Text_25CCD4, MSGBOX_YESNO + msgbox BattleFrontier_BattlePikeThreePathRoom_Text_ContinueWithChallenge, MSGBOX_YESNO switch VAR_RESULT case NO, BattleFrontier_BattlePikeThreePathRoom_EventScript_25CA2A case MULTI_B_PRESSED, BattleFrontier_BattlePikeThreePathRoom_EventScript_25CA2A @@ -134,7 +131,7 @@ BattleFrontier_BattlePikeThreePathRoom_EventScript_25C9D8:: @ 825C9D8 BattleFrontier_BattlePikeThreePathRoom_EventScript_25C9FD:: @ 825C9FD setvar VAR_0x8004, FRONTIER_UTIL_FUNC_6 special CallFrontierUtilFunc - message BattleFrontier_BattlePikeThreePathRoom_Text_25CE08 + message BattleFrontier_BattlePikeThreePathRoom_Text_SavingYourData waitmessage special LoadPlayerParty setvar VAR_0x8004, BATTLE_PIKE_FUNC_8 @@ -148,7 +145,7 @@ BattleFrontier_BattlePikeThreePathRoom_EventScript_25C9FD:: @ 825C9FD end BattleFrontier_BattlePikeThreePathRoom_EventScript_25CA2A:: @ 825CA2A - msgbox BattleFrontier_BattlePikeThreePathRoom_Text_25CCFB, MSGBOX_YESNO + msgbox BattleFrontier_BattlePikeThreePathRoom_Text_SaveChallengeAndQuit, MSGBOX_YESNO switch VAR_RESULT case YES, BattleFrontier_BattlePikeThreePathRoom_EventScript_25C9FD case NO, BattleFrontier_BattlePikeThreePathRoom_EventScript_25CA5A @@ -157,7 +154,7 @@ BattleFrontier_BattlePikeThreePathRoom_EventScript_25CA2A:: @ 825CA2A end BattleFrontier_BattlePikeThreePathRoom_EventScript_25CA5A:: @ 825CA5A - message BattleFrontier_BattlePikeThreePathRoom_Text_25CD3C + message BattleFrontier_BattlePikeThreePathRoom_Text_RetireFromChallenge waitmessage multichoicedefault 20, 8, MULTI_YESNO, 1, 0 switch VAR_RESULT @@ -181,88 +178,86 @@ BattleFrontier_BattlePikeThreePathRoom_EventScript_25CA97:: @ 825CA97 applymovement 2, BattleFrontier_BattlePikeThreePathRoom_Movement_25CBCE waitmovement 0 lockall - msgbox BattleFrontier_BattlePikeThreePathRoom_Text_25D094, MSGBOX_DEFAULT + msgbox BattleFrontier_BattlePikeThreePathRoom_Text_TerrifyingEvent, MSGBOX_DEFAULT releaseall applymovement 2, BattleFrontier_BattlePikeThreePathRoom_Movement_25CBD5 waitmovement 0 setvar VAR_TEMP_5, 255 end -BattleFrontier_BattlePikeThreePathRoom_EventScript_25CABB:: @ 825CABB - setvar VAR_0x8004, BATTLE_PIKE_FUNC_GET_ROOM_TYPE_HINT - special CallBattlePikeFunction - compare VAR_RESULT, 4 - goto_if_eq BattleFrontier_BattlePikeThreePathRoom_EventScript_25CBC2 +BattleFrontier_BattlePikeThreePathRoom_EventScript_HintGiver:: @ 825CABB + battlepike_gethint + compare VAR_RESULT, PIKE_HINT_BRAIN + goto_if_eq BattleFrontier_BattlePikeThreePathRoom_EventScript_GiveBrainHint lock faceplayer - msgbox BattleFrontier_BattlePikeThreePathRoom_Text_25CE69, MSGBOX_YESNO + msgbox BattleFrontier_BattlePikeThreePathRoom_Text_FindingItDifficultToChoose, MSGBOX_YESNO switch VAR_RESULT - case YES, BattleFrontier_BattlePikeThreePathRoom_EventScript_25CB0A - case NO, BattleFrontier_BattlePikeThreePathRoom_EventScript_25CB00 - case MULTI_B_PRESSED, BattleFrontier_BattlePikeThreePathRoom_EventScript_25CB00 + case YES, BattleFrontier_BattlePikeThreePathRoom_EventScript_AcceptHint + case NO, BattleFrontier_BattlePikeThreePathRoom_EventScript_DeclineHint + case MULTI_B_PRESSED, BattleFrontier_BattlePikeThreePathRoom_EventScript_DeclineHint release end -BattleFrontier_BattlePikeThreePathRoom_EventScript_25CB00:: @ 825CB00 - msgbox BattleFrontier_BattlePikeThreePathRoom_Text_25CEBB, MSGBOX_DEFAULT +BattleFrontier_BattlePikeThreePathRoom_EventScript_DeclineHint:: @ 825CB00 + msgbox BattleFrontier_BattlePikeThreePathRoom_Text_ApologizeForImpertinence, MSGBOX_DEFAULT release end -BattleFrontier_BattlePikeThreePathRoom_EventScript_25CB0A:: @ 825CB0A - setvar VAR_0x8004, BATTLE_PIKE_FUNC_SET_HINT_ROOM_ID +BattleFrontier_BattlePikeThreePathRoom_EventScript_AcceptHint:: @ 825CB0A + setvar VAR_0x8004, BATTLE_PIKE_FUNC_GET_HINT_ROOM_ID special CallBattlePikeFunction switch VAR_RESULT - case 0, BattleFrontier_BattlePikeThreePathRoom_EventScript_25CB39 - case 1, BattleFrontier_BattlePikeThreePathRoom_EventScript_25CB46 - case 2, BattleFrontier_BattlePikeThreePathRoom_EventScript_25CB53 + case PIKE_ROOM_LEFT, BattleFrontier_BattlePikeThreePathRoom_EventScript_GiveLeftRoomHint + case PIKE_ROOM_CENTER, BattleFrontier_BattlePikeThreePathRoom_EventScript_GiveCenterRoomHint + case PIKE_ROOM_RIGHT, BattleFrontier_BattlePikeThreePathRoom_EventScript_GiveRightRoomHint end -BattleFrontier_BattlePikeThreePathRoom_EventScript_25CB39:: @ 825CB39 - msgbox BattleFrontier_BattlePikeThreePathRoom_Text_25CF64, MSGBOX_DEFAULT - goto BattleFrontier_BattlePikeThreePathRoom_EventScript_25CB60 +BattleFrontier_BattlePikeThreePathRoom_EventScript_GiveLeftRoomHint:: @ 825CB39 + msgbox BattleFrontier_BattlePikeThreePathRoom_Text_SomethingAboutLeftPath, MSGBOX_DEFAULT + goto BattleFrontier_BattlePikeThreePathRoom_EventScript_GiveHint -BattleFrontier_BattlePikeThreePathRoom_EventScript_25CB46:: @ 825CB46 - msgbox BattleFrontier_BattlePikeThreePathRoom_Text_25CF23, MSGBOX_DEFAULT - goto BattleFrontier_BattlePikeThreePathRoom_EventScript_25CB60 +BattleFrontier_BattlePikeThreePathRoom_EventScript_GiveCenterRoomHint:: @ 825CB46 + msgbox BattleFrontier_BattlePikeThreePathRoom_Text_SomethingAboutCenterPath, MSGBOX_DEFAULT + goto BattleFrontier_BattlePikeThreePathRoom_EventScript_GiveHint -BattleFrontier_BattlePikeThreePathRoom_EventScript_25CB53:: @ 825CB53 - msgbox BattleFrontier_BattlePikeThreePathRoom_Text_25CEE3, MSGBOX_DEFAULT - goto BattleFrontier_BattlePikeThreePathRoom_EventScript_25CB60 +BattleFrontier_BattlePikeThreePathRoom_EventScript_GiveRightRoomHint:: @ 825CB53 + msgbox BattleFrontier_BattlePikeThreePathRoom_Text_SomethingAboutRightPath, MSGBOX_DEFAULT + goto BattleFrontier_BattlePikeThreePathRoom_EventScript_GiveHint -BattleFrontier_BattlePikeThreePathRoom_EventScript_25CB60:: @ 825CB60 - setvar VAR_0x8004, BATTLE_PIKE_FUNC_GET_ROOM_TYPE_HINT - special CallBattlePikeFunction +BattleFrontier_BattlePikeThreePathRoom_EventScript_GiveHint:: @ 825CB60 + battlepike_gethint switch VAR_RESULT - case 0, BattleFrontier_BattlePikeThreePathRoom_EventScript_25CB9A - case 1, BattleFrontier_BattlePikeThreePathRoom_EventScript_25CBA4 - case 2, BattleFrontier_BattlePikeThreePathRoom_EventScript_25CBAE - case 3, BattleFrontier_BattlePikeThreePathRoom_EventScript_25CBB8 + case PIKE_HINT_NOSTALGIA, BattleFrontier_BattlePikeThreePathRoom_EventScript_HintNostalgia + case PIKE_HINT_WHISPERING, BattleFrontier_BattlePikeThreePathRoom_EventScript_HintWhispering + case PIKE_HINT_POKEMON, BattleFrontier_BattlePikeThreePathRoom_EventScript_HintPokemon + case PIKE_HINT_PEOPLE, BattleFrontier_BattlePikeThreePathRoom_EventScript_HintPeople end -BattleFrontier_BattlePikeThreePathRoom_EventScript_25CB9A:: @ 825CB9A - msgbox BattleFrontier_BattlePikeThreePathRoom_Text_25D054, MSGBOX_DEFAULT +BattleFrontier_BattlePikeThreePathRoom_EventScript_HintNostalgia:: @ 825CB9A + msgbox BattleFrontier_BattlePikeThreePathRoom_Text_WaveOfNostaliga, MSGBOX_DEFAULT release end -BattleFrontier_BattlePikeThreePathRoom_EventScript_25CBA4:: @ 825CBA4 - msgbox BattleFrontier_BattlePikeThreePathRoom_Text_25D017, MSGBOX_DEFAULT +BattleFrontier_BattlePikeThreePathRoom_EventScript_HintWhispering:: @ 825CBA4 + msgbox BattleFrontier_BattlePikeThreePathRoom_Text_HeardWhispering, MSGBOX_DEFAULT release end -BattleFrontier_BattlePikeThreePathRoom_EventScript_25CBAE:: @ 825CBAE - msgbox BattleFrontier_BattlePikeThreePathRoom_Text_25CFA3, MSGBOX_DEFAULT +BattleFrontier_BattlePikeThreePathRoom_EventScript_HintPokemon:: @ 825CBAE + msgbox BattleFrontier_BattlePikeThreePathRoom_Text_AromaOfPokemon, MSGBOX_DEFAULT release end -BattleFrontier_BattlePikeThreePathRoom_EventScript_25CBB8:: @ 825CBB8 - msgbox BattleFrontier_BattlePikeThreePathRoom_Text_25CFE5, MSGBOX_DEFAULT +BattleFrontier_BattlePikeThreePathRoom_EventScript_HintPeople:: @ 825CBB8 + msgbox BattleFrontier_BattlePikeThreePathRoom_Text_PresenceOfPeople, MSGBOX_DEFAULT release end -BattleFrontier_BattlePikeThreePathRoom_EventScript_25CBC2:: @ 825CBC2 +BattleFrontier_BattlePikeThreePathRoom_EventScript_GiveBrainHint:: @ 825CBC2 lock faceplayer - msgbox BattleFrontier_BattlePikeThreePathRoom_Text_25D125, MSGBOX_DEFAULT + msgbox BattleFrontier_BattlePikeThreePathRoom_Text_DreadfulPresence, MSGBOX_DEFAULT release end @@ -285,109 +280,107 @@ BattleFrontier_BattlePikeThreePathRoom_Movement_25CBD5: @ 825CBD5 face_down step_end -BattleFrontier_BattlePikeThreePathRoom_Text_25CBDD: @ 825CBDD +BattleFrontier_BattlePikeThreePathRoom_Text_CurrentlyInRoom1: @ 825CBDD .string "You are currently in\n" .string "the 1st room…$" -BattleFrontier_BattlePikeThreePathRoom_Text_25CC00: @ 825CC00 +BattleFrontier_BattlePikeThreePathRoom_Text_CurrentlyInRoom3: @ 825CC00 .string "You are currently in\n" .string "the 3rd room…$" -BattleFrontier_BattlePikeThreePathRoom_Text_25CC23: @ 825CC23 +BattleFrontier_BattlePikeThreePathRoom_Text_CurrentlyInRoom5: @ 825CC23 .string "You are currently in\n" .string "the 5th room…$" -BattleFrontier_BattlePikeThreePathRoom_Text_25CC46: @ 825CC46 +BattleFrontier_BattlePikeThreePathRoom_Text_CurrentlyInRoom7: @ 825CC46 .string "You are currently in\n" .string "the 7th room…$" -BattleFrontier_BattlePikeThreePathRoom_Text_25CC69: @ 825CC69 +BattleFrontier_BattlePikeThreePathRoom_Text_CurrentlyInRoom9: @ 825CC69 .string "You are currently in\n" .string "the 9th room…$" -BattleFrontier_BattlePikeThreePathRoom_Text_25CC8C: @ 825CC8C +BattleFrontier_BattlePikeThreePathRoom_Text_CurrentlyInRoom11: @ 825CC8C .string "You are currently in\n" .string "the 11th room…$" -BattleFrontier_BattlePikeThreePathRoom_Text_25CCB0: @ 825CCB0 +BattleFrontier_BattlePikeThreePathRoom_Text_CurrentlyInRoom13: @ 825CCB0 .string "You are currently in\n" .string "the 13th room…$" -BattleFrontier_BattlePikeThreePathRoom_Text_25CCD4: @ 825CCD4 +BattleFrontier_BattlePikeThreePathRoom_Text_ContinueWithChallenge: @ 825CCD4 .string "Will you continue with\n" .string "your challenge?$" -BattleFrontier_BattlePikeThreePathRoom_Text_25CCFB: @ 825CCFB +BattleFrontier_BattlePikeThreePathRoom_Text_SaveChallengeAndQuit: @ 825CCFB .string "Would you like to save your challenge\n" .string "and quit the game for now?$" -BattleFrontier_BattlePikeThreePathRoom_Text_25CD3C: @ 825CD3C +BattleFrontier_BattlePikeThreePathRoom_Text_RetireFromChallenge: @ 825CD3C .string "Do you wish to retire from your\n" .string "Battle Choice challenge?$" -BattleFrontier_BattlePikeThreePathRoom_Text_25CD75: @ 825CD75 +BattleFrontier_BattlePikeThreePathRoom_Text_AwaitingReturnSaveBeforeResume: @ 825CD75 .string "We've been awaiting your return…\p" .string "Before resuming your Battle Choice\n" .string "challenge, let me save the game…$" -BattleFrontier_BattlePikeThreePathRoom_Text_25CDDA: @ 825CDDA +BattleFrontier_BattlePikeThreePathRoom_Text_PleaseEnjoyChallenge: @ 825CDDA .string "Please do enjoy your Battle Choice\n" .string "challenge…$" -BattleFrontier_BattlePikeThreePathRoom_Text_25CE08: @ 825CE08 +BattleFrontier_BattlePikeThreePathRoom_Text_SavingYourData: @ 825CE08 .string "I am saving your data…\n" .string "A little time, please…$" -BattleFrontier_BattlePikeRandomRoom1_Text_25CE36: @ 825CE36 -BattleFrontier_BattlePikeRandomRoom3_Text_25CE36: @ 825CE36 -BattleFrontier_BattlePikeThreePathRoom_Text_25CE36: @ 825CE36 +BattleFrontier_BattlePike_Text_PathBlockedNoTurningBack: @ 825CE36 .string "The path is blocked!\n" .string "And there is no turning back…$" -BattleFrontier_BattlePikeThreePathRoom_Text_25CE69: @ 825CE69 +BattleFrontier_BattlePikeThreePathRoom_Text_FindingItDifficultToChoose: @ 825CE69 .string "I beg your pardon, but…\p" .string "Are you perhaps finding it difficult\n" .string "to choose your path?$" -BattleFrontier_BattlePikeThreePathRoom_Text_25CEBB: @ 825CEBB +BattleFrontier_BattlePikeThreePathRoom_Text_ApologizeForImpertinence: @ 825CEBB .string "I see…\n" .string "I apologize for my impertinence…$" -BattleFrontier_BattlePikeThreePathRoom_Text_25CEE3: @ 825CEE3 +BattleFrontier_BattlePikeThreePathRoom_Text_SomethingAboutRightPath: @ 825CEE3 .string "Ah, let me see… There is something\n" .string "about the path on the right…$" -BattleFrontier_BattlePikeThreePathRoom_Text_25CF23: @ 825CF23 +BattleFrontier_BattlePikeThreePathRoom_Text_SomethingAboutCenterPath: @ 825CF23 .string "Ah, let me see… There is something\n" .string "about the path in the center…$" -BattleFrontier_BattlePikeThreePathRoom_Text_25CF64: @ 825CF64 +BattleFrontier_BattlePikeThreePathRoom_Text_SomethingAboutLeftPath: @ 825CF64 .string "Ah, let me see… There is something\n" .string "about the path on the left…$" -BattleFrontier_BattlePikeThreePathRoom_Text_25CFA3: @ 825CFA3 +BattleFrontier_BattlePikeThreePathRoom_Text_AromaOfPokemon: @ 825CFA3 .string "It seems to have the distinct aroma\n" .string "of POKéMON wafting around it…$" -BattleFrontier_BattlePikeThreePathRoom_Text_25CFE5: @ 825CFE5 +BattleFrontier_BattlePikeThreePathRoom_Text_PresenceOfPeople: @ 825CFE5 .string "Is it… A TRAINER?\n" .string "I sense the presence of people…$" -BattleFrontier_BattlePikeThreePathRoom_Text_25D017: @ 825D017 +BattleFrontier_BattlePikeThreePathRoom_Text_HeardWhispering: @ 825D017 .string "I seem to have heard something…\n" .string "It may have been whispering…$" -BattleFrontier_BattlePikeThreePathRoom_Text_25D054: @ 825D054 +BattleFrontier_BattlePikeThreePathRoom_Text_WaveOfNostaliga: @ 825D054 .string "For some odd reason, I felt a wave\n" .string "of nostalgia coming from it…$" -BattleFrontier_BattlePikeThreePathRoom_Text_25D094: @ 825D094 +BattleFrontier_BattlePikeThreePathRoom_Text_TerrifyingEvent: @ 825D094 .string "I am sorry to say…\p" .string "A terrifying event, yes, a horrible one,\n" .string "is about to befall you…\p" .string "I urge you to pay the utmost care\n" .string "and prepare for the worst…$" -BattleFrontier_BattlePikeThreePathRoom_Text_25D125: @ 825D125 +BattleFrontier_BattlePikeThreePathRoom_Text_DreadfulPresence: @ 825D125 .string "From every path I sense a dreadful\n" .string "presence…$" diff --git a/data/maps/BattleFrontier_BattlePyramidEmptySquare/scripts.inc b/data/maps/BattleFrontier_BattlePyramidEmptySquare/scripts.inc index 1bcf1814a..2ca635c41 100644 --- a/data/maps/BattleFrontier_BattlePyramidEmptySquare/scripts.inc +++ b/data/maps/BattleFrontier_BattlePyramidEmptySquare/scripts.inc @@ -40,32 +40,28 @@ BattleFrontier_BattlePyramidEmptySquare_EventScript_252A98:: @ 8252A98 BattleFrontier_BattlePyramidEmptySquare_MapScript1_252AA2: @ 8252AA2 setvar VAR_0x8004, BATTLE_PYRAMID_FUNC_SET_FLOOR_PALETTE special CallBattlePyramidFunction - setvar VAR_0x8004, FRONTIER_UTIL_FUNC_0 - special CallFrontierUtilFunc + frontier_checkoutcome switch VAR_TEMP_0 case 0, BattleFrontier_BattlePyramidEmptySquare_EventScript_252B8D case 1, BattleFrontier_BattlePyramidEmptySquare_EventScript_252B66 case 2, BattleFrontier_BattlePyramidEmptySquare_EventScript_252B8D - setvar VAR_0x8004, FRONTIER_UTIL_FUNC_1 - setvar VAR_0x8005, 5 - special CallFrontierUtilFunc - compare VAR_RESULT, 4 + frontier_getbattleoutcome + compare VAR_RESULT, B_OUTCOME_RAN goto_if_eq BattleFrontier_BattlePyramidEmptySquare_EventScript_252B39 - compare VAR_RESULT, 5 + compare VAR_RESULT, B_OUTCOME_PLAYER_TELEPORTED goto_if_eq BattleFrontier_BattlePyramidEmptySquare_EventScript_252B39 compare VAR_RESULT, 0 goto_if_eq BattleFrontier_BattlePyramidEmptySquare_EventScript_252B39 - compare VAR_RESULT, 2 + compare VAR_RESULT, B_OUTCOME_LOST goto_if_eq BattleFrontier_BattlePyramidEmptySquare_EventScript_252B42 - compare VAR_RESULT, 3 + compare VAR_RESULT, B_OUTCOME_DREW goto_if_eq BattleFrontier_BattlePyramidEmptySquare_EventScript_252B42 - compare VAR_RESULT, 9 + compare VAR_RESULT, B_OUTCOME_FORFEITED goto_if_eq BattleFrontier_BattlePyramidEmptySquare_EventScript_252B42 setvar VAR_0x8004, FRONTIER_UTIL_FUNC_CHECK_BATTLE_TYPE setvar VAR_0x8005, BATTLE_TYPE_TRAINER special CallFrontierUtilFunc setvar VAR_TEMP_D, 1 - BattleFrontier_BattlePyramidEmptySquare_EventScript_252B39:: @ 8252B39 setvar VAR_0x8004, BATTLE_PYRAMID_FUNC_RESTORE_PARTY special CallBattlePyramidFunction @@ -73,10 +69,7 @@ BattleFrontier_BattlePyramidEmptySquare_EventScript_252B39:: @ 8252B39 BattleFrontier_BattlePyramidEmptySquare_EventScript_252B42:: @ 8252B42 BattleFrontier_BattlePyramidTop_EventScript_252B42:: @ 8252B42 - setvar VAR_0x8004, FRONTIER_UTIL_FUNC_2 - setvar VAR_0x8005, 0 - setvar VAR_0x8006, 4 - special CallFrontierUtilFunc + frontier_setchallengestatus CHALLENGE_STATUS_LOST setvar VAR_0x8004, BATTLE_PYRAMID_FUNC_SET_DATA setvar VAR_0x8005, 7 setvar VAR_0x8006, 255 @@ -100,15 +93,13 @@ BattleFrontier_BattlePyramidEmptySquare_EventScript_252B8D:: @ 8252B8D setvar VAR_0x8005, 1 special CallBattlePyramidFunction special SavePlayerParty - setvar VAR_0x8004, FRONTIER_UTIL_FUNC_2 + setvar VAR_0x8004, FRONTIER_UTIL_FUNC_SET_DATA setvar VAR_0x8005, 0 setvar VAR_0x8006, 0 special CallFrontierUtilFunc setvar VAR_0x8004, BATTLE_PYRAMID_FUNC_INIT_TRAINERS special CallBattlePyramidFunction - setvar VAR_0x8004, FRONTIER_UTIL_FUNC_LOAD_SELECTED_PARTY - setvar VAR_0x8005, FRONTIER_PARTY_SIZE - special CallFrontierUtilFunc + frontier_loadselectedmons setvar VAR_TEMP_F, 1 end @@ -126,19 +117,14 @@ BattleFrontier_BattlePyramidEmptySquare_EventScript_252BD5:: @ 8252BD5 BattleFrontier_BattlePyramidEmptySquare_EventScript_252BE8:: @ 8252BE8 call BattleFrontier_BattlePalaceBattleRoom_EventScript_241EBA - setvar VAR_0x8004, FRONTIER_UTIL_FUNC_1 - setvar VAR_0x8005, 2 - special CallFrontierUtilFunc + frontier_getbattlenum addvar VAR_RESULT, 1 - setvar VAR_0x8004, FRONTIER_UTIL_FUNC_2 - setvar VAR_0x8005, 2 - copyvar VAR_0x8006, VAR_RESULT - special CallFrontierUtilFunc + frontier_setbattlenum VAR_RESULT compare VAR_RESULT, 7 goto_if_eq BattleFrontier_BattlePyramidEmptySquare_EventScript_252C45 setvar VAR_0x8004, BATTLE_PYRAMID_FUNC_SEED_FLOOR special CallBattlePyramidFunction - setvar VAR_0x8004, FRONTIER_UTIL_FUNC_2 + setvar VAR_0x8004, FRONTIER_UTIL_FUNC_SET_DATA setvar VAR_0x8005, 0 setvar VAR_0x8006, 0 special CallFrontierUtilFunc diff --git a/data/maps/BattleFrontier_BattlePyramidLobby/scripts.inc b/data/maps/BattleFrontier_BattlePyramidLobby/scripts.inc index 0b30d96e3..9094273f0 100644 --- a/data/maps/BattleFrontier_BattlePyramidLobby/scripts.inc +++ b/data/maps/BattleFrontier_BattlePyramidLobby/scripts.inc @@ -21,8 +21,7 @@ BattleFrontier_BattlePyramidLobby_MapScript2_250735: @ 8250735 .2byte 0 BattleFrontier_BattlePyramidLobby_EventScript_25075F:: @ 825075F - setvar VAR_0x8004, FRONTIER_UTIL_FUNC_0 - special CallFrontierUtilFunc + frontier_checkoutcome end BattleFrontier_BattlePyramidLobby_EventScript_250768:: @ 8250768 @@ -40,7 +39,7 @@ BattleFrontier_BattlePyramidLobby_EventScript_250768:: @ 8250768 setvar VAR_0x8005, 2 setvar VAR_0x8006, 0 special CallBattlePyramidFunction - setvar VAR_0x8004, FRONTIER_UTIL_FUNC_2 + setvar VAR_0x8004, FRONTIER_UTIL_FUNC_SET_DATA setvar VAR_0x8005, 0 setvar VAR_0x8006, 0 special CallFrontierUtilFunc @@ -155,7 +154,7 @@ BattleFrontier_BattlePyramidLobby_EventScript_250904:: @ 8250904 special CallFrontierUtilFunc compare VAR_0x8004, 1 goto_if_eq BattleFrontier_BattlePyramidLobby_EventScript_250A75 - setvar VAR_0x8004, FRONTIER_UTIL_FUNC_2 + setvar VAR_0x8004, FRONTIER_UTIL_FUNC_SET_DATA setvar VAR_0x8005, 1 copyvar VAR_0x8006, VAR_RESULT special CallFrontierUtilFunc @@ -176,7 +175,7 @@ BattleFrontier_BattlePyramidLobby_EventScript_250904:: @ 8250904 BattleFrontier_BattlePyramidLobby_EventScript_2509A5:: @ 82509A5 setvar VAR_TEMP_0, 0 - setvar VAR_0x8004, FRONTIER_UTIL_FUNC_2 + setvar VAR_0x8004, FRONTIER_UTIL_FUNC_SET_DATA setvar VAR_0x8005, 4 special CallFrontierUtilFunc setvar VAR_0x8004, BATTLE_PYRAMID_FUNC_INIT_CHALLENGE @@ -185,11 +184,11 @@ BattleFrontier_BattlePyramidLobby_EventScript_2509A5:: @ 82509A5 setvar VAR_0x8005, 2 setvar VAR_0x8006, 1 special CallBattlePyramidFunction - setvar VAR_0x8004, FRONTIER_UTIL_FUNC_2 + setvar VAR_0x8004, FRONTIER_UTIL_FUNC_SET_DATA setvar VAR_0x8005, 0 setvar VAR_0x8006, 1 special CallFrontierUtilFunc - setvar VAR_0x8004, FRONTIER_UTIL_FUNC_2 + setvar VAR_0x8004, FRONTIER_UTIL_FUNC_SET_DATA setvar VAR_0x8005, 3 setvar VAR_0x8006, 0 special CallFrontierUtilFunc @@ -207,13 +206,11 @@ BattleFrontier_BattlePyramidLobby_EventScript_2509A5:: @ 82509A5 BattleFrontier_BattlePyramidLobby_EventScript_250A21:: @ 8250A21 special SavePlayerParty - setvar VAR_0x8004, FRONTIER_UTIL_FUNC_LOAD_SELECTED_PARTY - setvar VAR_0x8005, FRONTIER_PARTY_SIZE - special CallFrontierUtilFunc + frontier_loadselectedmons msgbox BattleFrontier_BattlePyramidLobby_Text_251531, MSGBOX_DEFAULT closemessage call BattleFrontier_BattlePyramidLobby_EventScript_250D56 - setvar VAR_0x8004, FRONTIER_UTIL_FUNC_2 + setvar VAR_0x8004, FRONTIER_UTIL_FUNC_SET_DATA setvar VAR_0x8005, 0 setvar VAR_0x8006, 0 special CallFrontierUtilFunc @@ -242,7 +239,7 @@ BattleFrontier_BattlePyramidLobby_EventScript_250A9D:: @ 8250A9D goto BattleFrontier_BattlePyramidLobby_EventScript_250ACC BattleFrontier_BattlePyramidLobby_EventScript_250AAA:: @ 8250AAA - setvar VAR_0x8004, FRONTIER_UTIL_FUNC_2 + setvar VAR_0x8004, FRONTIER_UTIL_FUNC_SET_DATA setvar VAR_0x8005, 0 setvar VAR_0x8006, 0 special CallFrontierUtilFunc @@ -424,9 +421,7 @@ BattleFrontier_BattlePyramidLobby_EventScript_250D39:: @ 8250D39 BattleFrontier_BattlePyramidLobby_EventScript_250D42:: @ 8250D42 lockall - setvar VAR_0x8004, FRONTIER_UTIL_FUNC_RESULTS_WINDOW - setvar VAR_0x8005, 6 - special CallFrontierUtilFunc + frontier_results FRONTIER_FACILITY_PYRAMID waitbuttonpress special RemoveRecordsWindow releaseall diff --git a/data/maps/BattleFrontier_BattlePyramidTop/scripts.inc b/data/maps/BattleFrontier_BattlePyramidTop/scripts.inc index 7b777b165..def0d0af3 100644 --- a/data/maps/BattleFrontier_BattlePyramidTop/scripts.inc +++ b/data/maps/BattleFrontier_BattlePyramidTop/scripts.inc @@ -28,28 +28,23 @@ BattleFrontier_BattlePyramidTop_EventScript_2550F3:: @ 82550F3 end BattleFrontier_BattlePyramidTop_MapScript1_2550F4: @ 82550F4 - setvar VAR_0x8004, FRONTIER_UTIL_FUNC_9 - special CallFrontierUtilFunc - compare VAR_RESULT, 0 + frontier_getbrainstatus + compare VAR_RESULT, FRONTIER_BRAIN_NOT_READY goto_if_eq BattleFrontier_BattlePyramidTop_EventScript_25510C call BattleFrontier_BattlePyramidTop_EventScript_242170 - BattleFrontier_BattlePyramidTop_EventScript_25510C:: @ 825510C copyvar VAR_TEMP_C, VAR_RESULT - setvar VAR_0x8004, FRONTIER_UTIL_FUNC_0 - special CallFrontierUtilFunc + frontier_checkoutcome switch VAR_TEMP_0 case 0, BattleFrontier_BattlePyramidTop_EventScript_255193 case 1, BattleFrontier_BattlePyramidTop_EventScript_252B66 case 2, BattleFrontier_BattlePyramidTop_EventScript_255193 - setvar VAR_0x8004, FRONTIER_UTIL_FUNC_1 - setvar VAR_0x8005, 5 - special CallFrontierUtilFunc - compare VAR_RESULT, 2 + frontier_getbattleoutcome + compare VAR_RESULT, B_OUTCOME_LOST goto_if_eq BattleFrontier_BattlePyramidTop_EventScript_252B42 - compare VAR_RESULT, 3 + compare VAR_RESULT, B_OUTCOME_DREW goto_if_eq BattleFrontier_BattlePyramidTop_EventScript_252B42 - compare VAR_RESULT, 9 + compare VAR_RESULT, B_OUTCOME_FORFEITED goto_if_eq BattleFrontier_BattlePyramidTop_EventScript_252B42 end @@ -73,15 +68,13 @@ BattleFrontier_BattlePyramidTop_EventScript_255193:: @ 8255193 setvar VAR_0x8005, 1 special CallBattlePyramidFunction special SavePlayerParty - setvar VAR_0x8004, FRONTIER_UTIL_FUNC_2 + setvar VAR_0x8004, FRONTIER_UTIL_FUNC_SET_DATA setvar VAR_0x8005, 0 setvar VAR_0x8006, 0 special CallFrontierUtilFunc setvar VAR_0x8004, BATTLE_PYRAMID_FUNC_INIT_TRAINERS special CallBattlePyramidFunction - setvar VAR_0x8004, FRONTIER_UTIL_FUNC_LOAD_SELECTED_PARTY - setvar VAR_0x8005, FRONTIER_PARTY_SIZE - special CallFrontierUtilFunc + frontier_loadselectedmons setvar VAR_TEMP_F, 1 end @@ -90,7 +83,7 @@ BattleFrontier_BattlePyramidTop_EventScript_2551D0:: @ 82551D0 faceplayer compare VAR_TEMP_D, 0 goto_if_ne BattleFrontier_BattlePyramidTop_EventScript_255236 - compare VAR_TEMP_C, 0 + compare VAR_TEMP_C, FRONTIER_BRAIN_NOT_READY goto_if_ne BattleFrontier_BattlePyramidTop_EventScript_255240 msgbox BattleFrontier_BattlePyramidTop_Text_255410, MSGBOX_DEFAULT closemessage @@ -107,10 +100,7 @@ BattleFrontier_BattlePyramidTop_EventScript_2551D0:: @ 82551D0 closemessage BattleFrontier_BattlePyramidTop_EventScript_25521A:: @ 825521A - setvar VAR_0x8004, FRONTIER_UTIL_FUNC_2 - setvar VAR_0x8005, 0 - setvar VAR_0x8006, 3 - special CallFrontierUtilFunc + frontier_setchallengestatus CHALLENGE_STATUS_WON warp MAP_BATTLE_FRONTIER_BATTLE_PYRAMID_LOBBY, 255, 7, 13 waitstate end @@ -130,10 +120,10 @@ BattleFrontier_BattlePyramidTop_EventScript_255240:: @ 8255240 BattleFrontier_BattlePyramidTop_EventScript_255256:: @ 8255256 lockall switch VAR_TEMP_C - case 2, BattleFrontier_BattlePyramidTop_EventScript_255335 - case 3, BattleFrontier_BattlePyramidTop_EventScript_2552D0 - case 4, BattleFrontier_BattlePyramidTop_EventScript_255388 - setvar VAR_0x8004, FRONTIER_UTIL_FUNC_1 + case FRONTIER_BRAIN_GOLD, BattleFrontier_BattlePyramidTop_EventScript_255335 + case FRONTIER_BRAIN_STREAK, BattleFrontier_BattlePyramidTop_EventScript_2552D0 + case FRONTIER_BRAIN_STREAK_LONG, BattleFrontier_BattlePyramidTop_EventScript_255388 + setvar VAR_0x8004, FRONTIER_UTIL_FUNC_GET_DATA setvar VAR_0x8005, 7 special CallFrontierUtilFunc compare VAR_RESULT, 0 @@ -143,7 +133,7 @@ BattleFrontier_BattlePyramidTop_EventScript_255256:: @ 8255256 waitmovement 0 msgbox BattleFrontier_BattlePyramidTop_Text_255669, MSGBOX_DEFAULT closemessage - setvar VAR_0x8004, FRONTIER_UTIL_FUNC_2 + setvar VAR_0x8004, FRONTIER_UTIL_FUNC_SET_DATA setvar VAR_0x8005, 7 special CallFrontierUtilFunc applymovement 2, BattleFrontier_BattlePyramidTop_Movement_25540A @@ -180,7 +170,7 @@ BattleFrontier_BattlePyramidTop_EventScript_2552FB:: @ 82552FB goto BattleFrontier_BattlePyramidTop_EventScript_25521A BattleFrontier_BattlePyramidTop_EventScript_255335:: @ 8255335 - setvar VAR_0x8004, FRONTIER_UTIL_FUNC_1 + setvar VAR_0x8004, FRONTIER_UTIL_FUNC_GET_DATA setvar VAR_0x8005, 7 special CallFrontierUtilFunc compare VAR_RESULT, 0 @@ -190,7 +180,7 @@ BattleFrontier_BattlePyramidTop_EventScript_255335:: @ 8255335 waitmovement 0 msgbox BattleFrontier_BattlePyramidTop_Text_255951, MSGBOX_DEFAULT closemessage - setvar VAR_0x8004, FRONTIER_UTIL_FUNC_2 + setvar VAR_0x8004, FRONTIER_UTIL_FUNC_SET_DATA setvar VAR_0x8005, 7 special CallFrontierUtilFunc applymovement 2, BattleFrontier_BattlePyramidTop_Movement_25540A diff --git a/data/maps/BattleFrontier_BattleTowerBattleRoom/scripts.inc b/data/maps/BattleFrontier_BattleTowerBattleRoom/scripts.inc index e305260df..5f58f801e 100644 --- a/data/maps/BattleFrontier_BattleTowerBattleRoom/scripts.inc +++ b/data/maps/BattleFrontier_BattleTowerBattleRoom/scripts.inc @@ -20,7 +20,7 @@ BattleFrontier_BattleTowerBattleRoom_EventScript_241B6C:: @ 8241B6C setvar VAR_TEMP_0, 1 applymovement EVENT_OBJ_ID_PLAYER, BattleFrontier_BattleTowerBattleRoom_Movement_242179 waitmovement 0 - setvar VAR_0x8004, FRONTIER_UTIL_FUNC_1 + setvar VAR_0x8004, FRONTIER_UTIL_FUNC_GET_DATA setvar VAR_0x8005, 2 special CallFrontierUtilFunc compare VAR_RESULT, 0 @@ -30,7 +30,7 @@ BattleFrontier_BattleTowerBattleRoom_EventScript_241B6C:: @ 8241B6C applymovement EVENT_OBJ_ID_PLAYER, BattleFrontier_BattleTowerBattleRoom_Movement_24217E waitmovement 0 setvar VAR_TEMP_2, 1 - setvar VAR_0x8004, FRONTIER_UTIL_FUNC_2 + setvar VAR_0x8004, FRONTIER_UTIL_FUNC_SET_DATA setvar VAR_0x8005, 6 setvar VAR_0x8006, 1 special CallFrontierUtilFunc @@ -49,14 +49,10 @@ BattleFrontier_BattleTowerBattleRoom_EventScript_241BC3:: @ 8241BC3 waitmessage call BattleFrontier_BattleTowerBattleRoom_EventScript_24210E switch VAR_RESULT - case 1, BattleFrontier_BattleTowerBattleRoom_EventScript_241C2F - + case B_OUTCOME_WON, BattleFrontier_BattleTowerBattleRoom_EventScript_241C2F BattleFrontier_BattleTowerBattleRoom_EventScript_241C03:: @ 8241C03 BattleFrontier_BattleTowerMultiBattleRoom_EventScript_241C03:: @ 8241C03 - setvar VAR_0x8004, FRONTIER_UTIL_FUNC_2 - setvar VAR_0x8005, 0 - setvar VAR_0x8006, 4 - special CallFrontierUtilFunc + frontier_setchallengestatus CHALLENGE_STATUS_LOST setvar VAR_0x8004, BATTLE_TOWER_FUNC_2 setvar VAR_0x8005, 3 special CallBattleTowerFunc @@ -73,9 +69,8 @@ BattleFrontier_BattleTowerBattleRoom_EventScript_241C2F:: @ 8241C2F applymovement 1, BattleFrontier_BattleTowerBattleRoom_Movement_242188 waitmovement 0 removeobject 1 - setvar VAR_0x8004, FRONTIER_UTIL_FUNC_9 - special CallFrontierUtilFunc - compare VAR_RESULT, 0 + frontier_getbrainstatus + compare VAR_RESULT, FRONTIER_BRAIN_NOT_READY call_if_ne BattleFrontier_BattleTowerBattleRoom_EventScript_241EC3 applymovement 2, BattleFrontier_BattleTowerBattleRoom_Movement_24218D waitmovement 0 @@ -87,12 +82,11 @@ BattleFrontier_BattleTowerBattleRoom_EventScript_241C2F:: @ 8241C2F special HealPlayerParty BattleFrontier_BattleTowerBattleRoom_EventScript_241C8F:: @ 8241C8F - setvar VAR_0x8004, FRONTIER_UTIL_FUNC_9 - special CallFrontierUtilFunc + frontier_getbrainstatus copyvar VAR_TEMP_F, VAR_RESULT - compare VAR_RESULT, 0 + compare VAR_RESULT, FRONTIER_BRAIN_NOT_READY goto_if_ne BattleFrontier_BattleTowerBattleRoom_EventScript_241F0A - setvar VAR_0x8004, FRONTIER_UTIL_FUNC_1 + setvar VAR_0x8004, FRONTIER_UTIL_FUNC_GET_DATA setvar VAR_0x8005, 2 special CallFrontierUtilFunc call BattleFrontier_BattleTowerBattleRoom_EventScript_241E44 @@ -153,10 +147,7 @@ BattleFrontier_BattleTowerBattleRoom_EventScript_241DDC:: @ 8241DDC goto BattleFrontier_BattleTowerBattleRoom_EventScript_241BC3 BattleFrontier_BattleTowerBattleRoom_EventScript_241DF6:: @ 8241DF6 - setvar VAR_0x8004, FRONTIER_UTIL_FUNC_2 - setvar VAR_0x8005, 0 - setvar VAR_0x8006, 3 - special CallFrontierUtilFunc + frontier_setchallengestatus CHALLENGE_STATUS_WON setvar VAR_0x8004, BATTLE_TOWER_FUNC_2 setvar VAR_0x8005, 3 special CallBattleTowerFunc @@ -283,16 +274,16 @@ BattleFrontier_BattleTowerBattleRoom_EventScript_241FAF:: @ 8241FAF applymovement 1, BattleFrontier_BattleTowerBattleRoom_Movement_2421B2 waitmovement 0 switch VAR_TEMP_F - case 2, BattleFrontier_BattleTowerBattleRoom_EventScript_242085 - case 3, BattleFrontier_BattleTowerBattleRoom_EventScript_242029 - case 4, BattleFrontier_BattleTowerBattleRoom_EventScript_2420B2 - setvar VAR_0x8004, FRONTIER_UTIL_FUNC_1 + case FRONTIER_BRAIN_GOLD, BattleFrontier_BattleTowerBattleRoom_EventScript_242085 + case FRONTIER_BRAIN_STREAK, BattleFrontier_BattleTowerBattleRoom_EventScript_242029 + case FRONTIER_BRAIN_STREAK_LONG, BattleFrontier_BattleTowerBattleRoom_EventScript_2420B2 + setvar VAR_0x8004, FRONTIER_UTIL_FUNC_GET_DATA setvar VAR_0x8005, 7 special CallFrontierUtilFunc compare VAR_RESULT, 0 goto_if_ne BattleFrontier_BattleTowerBattleRoom_EventScript_242029 msgbox BattleFrontier_BattleTowerBattleRoom_Text_242579, MSGBOX_DEFAULT - setvar VAR_0x8004, FRONTIER_UTIL_FUNC_2 + setvar VAR_0x8004, FRONTIER_UTIL_FUNC_SET_DATA setvar VAR_0x8005, 7 special CallFrontierUtilFunc @@ -320,13 +311,13 @@ BattleFrontier_BattleTowerBattleRoom_EventScript_242046:: @ 8242046 goto BattleFrontier_BattleTowerBattleRoom_EventScript_241DF6 BattleFrontier_BattleTowerBattleRoom_EventScript_242085:: @ 8242085 - setvar VAR_0x8004, FRONTIER_UTIL_FUNC_1 + setvar VAR_0x8004, FRONTIER_UTIL_FUNC_GET_DATA setvar VAR_0x8005, 7 special CallFrontierUtilFunc compare VAR_RESULT, 0 goto_if_ne BattleFrontier_BattleTowerBattleRoom_EventScript_2420B2 msgbox BattleFrontier_BattleTowerBattleRoom_Text_2427F9, MSGBOX_DEFAULT - setvar VAR_0x8004, FRONTIER_UTIL_FUNC_2 + setvar VAR_0x8004, FRONTIER_UTIL_FUNC_SET_DATA setvar VAR_0x8005, 7 special CallFrontierUtilFunc @@ -357,7 +348,7 @@ BattleFrontier_BattleTowerBattleRoom2_EventScript_24210E:: @ 824210E BattleFrontier_BattleTowerBattleRoom_EventScript_24210E:: @ 824210E closemessage setvar VAR_TEMP_2, 0 - setvar VAR_0x8004, FRONTIER_UTIL_FUNC_2 + setvar VAR_0x8004, FRONTIER_UTIL_FUNC_SET_DATA setvar VAR_0x8005, 6 setvar VAR_0x8006, 0 special CallFrontierUtilFunc @@ -372,15 +363,11 @@ BattleFrontier_BattleTowerBattleRoom_EventScript_24210E:: @ 824210E setvar VAR_0x8004, FRONTIER_UTIL_FUNC_18 special CallFrontierUtilFunc special HealPlayerParty - setvar VAR_0x8004, FRONTIER_UTIL_FUNC_21 - special CallFrontierUtilFunc - + frontier_resetsketch BattleFrontier_BattleTowerBattleRoom_EventScript_24215A:: @ 824215A setvar VAR_0x8004, BATTLE_TOWER_FUNC_15 special CallBattleTowerFunc - setvar VAR_0x8004, FRONTIER_UTIL_FUNC_1 - setvar VAR_0x8005, 5 - special CallFrontierUtilFunc + frontier_getbattleoutcome return BattleFrontier_BattleArenaBattleRoom_EventScript_242170:: @ 8242170 diff --git a/data/maps/BattleFrontier_BattleTowerBattleRoom2/scripts.inc b/data/maps/BattleFrontier_BattleTowerBattleRoom2/scripts.inc index f447434f1..c264ddb3c 100644 --- a/data/maps/BattleFrontier_BattleTowerBattleRoom2/scripts.inc +++ b/data/maps/BattleFrontier_BattleTowerBattleRoom2/scripts.inc @@ -45,7 +45,7 @@ BattleFrontier_BattleTowerBattleRoom2_EventScript_248F4D:: @ 8248F4D applymovement 5, BattleFrontier_BattleTowerBattleRoom2_Movement_249518 applymovement 6, BattleFrontier_BattleTowerBattleRoom2_Movement_24951E waitmovement 0 - setvar VAR_0x8004, FRONTIER_UTIL_FUNC_1 + setvar VAR_0x8004, FRONTIER_UTIL_FUNC_GET_DATA setvar VAR_0x8005, 2 special CallFrontierUtilFunc compare VAR_RESULT, 0 @@ -56,7 +56,7 @@ BattleFrontier_BattleTowerBattleRoom2_EventScript_248F4D:: @ 8248F4D applymovement 5, BattleFrontier_BattleTowerBattleRoom2_Movement_249524 applymovement 6, BattleFrontier_BattleTowerBattleRoom2_Movement_249524 waitmovement 0 - setvar VAR_0x8004, FRONTIER_UTIL_FUNC_2 + setvar VAR_0x8004, FRONTIER_UTIL_FUNC_SET_DATA setvar VAR_0x8005, 6 setvar VAR_0x8006, 1 special CallFrontierUtilFunc @@ -114,10 +114,7 @@ BattleFrontier_BattleTowerBattleRoom2_EventScript_249069:: @ 8249069 case 1, BattleFrontier_BattleTowerBattleRoom2_EventScript_2490AA BattleFrontier_BattleTowerBattleRoom2_EventScript_24907E:: @ 824907E - setvar VAR_0x8004, FRONTIER_UTIL_FUNC_2 - setvar VAR_0x8005, 0 - setvar VAR_0x8006, 4 - special CallFrontierUtilFunc + frontier_setchallengestatus CHALLENGE_STATUS_LOST setvar VAR_0x8004, BATTLE_TOWER_FUNC_2 setvar VAR_0x8005, 3 special CallBattleTowerFunc @@ -164,7 +161,7 @@ BattleFrontier_BattleTowerBattleRoom2_EventScript_249121:: @ 8249121 special HealPlayerParty BattleFrontier_BattleTowerBattleRoom2_EventScript_249143:: @ 8249143 - setvar VAR_0x8004, FRONTIER_UTIL_FUNC_1 + setvar VAR_0x8004, FRONTIER_UTIL_FUNC_GET_DATA setvar VAR_0x8005, 2 special CallFrontierUtilFunc call BattleFrontier_BattleTowerBattleRoom2_EventScript_2492FD @@ -231,10 +228,7 @@ BattleFrontier_BattleTowerBattleRoom2_EventScript_249283:: @ 8249283 end BattleFrontier_BattleTowerBattleRoom2_EventScript_2492AF:: @ 82492AF - setvar VAR_0x8004, FRONTIER_UTIL_FUNC_2 - setvar VAR_0x8005, 0 - setvar VAR_0x8006, 3 - special CallFrontierUtilFunc + frontier_setchallengestatus CHALLENGE_STATUS_WON setvar VAR_0x8004, BATTLE_TOWER_FUNC_2 setvar VAR_0x8005, 3 special CallBattleTowerFunc diff --git a/data/maps/BattleFrontier_BattleTowerLobby/scripts.inc b/data/maps/BattleFrontier_BattleTowerLobby/scripts.inc index 3767db315..aa28a0cf0 100644 --- a/data/maps/BattleFrontier_BattleTowerLobby/scripts.inc +++ b/data/maps/BattleFrontier_BattleTowerLobby/scripts.inc @@ -43,8 +43,7 @@ BattleFrontier_BattleTowerLobby_OnFrame: @ 823E6DD .2byte 0 BattleFrontier_BattleTowerLobby_EventScript_23E707:: @ 823E707 - setvar VAR_0x8004, FRONTIER_UTIL_FUNC_0 - special CallFrontierUtilFunc + frontier_checkoutcome end BattleFrontier_BattleTowerLobby_EventScript_23E710:: @ 823E710 @@ -60,7 +59,7 @@ BattleFrontier_BattleTowerLobby_EventScript_23E710:: @ 823E710 setvar VAR_0x8005, 2 setvar VAR_0x8006, 0 special CallBattleTowerFunc - setvar VAR_0x8004, FRONTIER_UTIL_FUNC_2 + setvar VAR_0x8004, FRONTIER_UTIL_FUNC_SET_DATA setvar VAR_0x8005, 0 setvar VAR_0x8006, 0 special CallFrontierUtilFunc @@ -200,7 +199,7 @@ BattleFrontier_BattlePalaceLobby_EventScript_23E8E0:: @ 823E8E0 BattleFrontier_BattleTowerBattleRoom2_EventScript_23E8E0:: @ 823E8E0 BattleFrontier_BattleTowerBattleRoom_EventScript_23E8E0:: @ 823E8E0 BattleFrontier_BattleTowerLobby_EventScript_23E8E0:: @ 823E8E0 - setvar VAR_0x8004, FRONTIER_UTIL_FUNC_1 + setvar VAR_0x8004, FRONTIER_UTIL_FUNC_GET_DATA setvar VAR_0x8005, 6 special CallFrontierUtilFunc return @@ -219,7 +218,7 @@ BattleFrontier_BattleTowerLobby_EventScript_23E8EE:: @ 823E8EE special CallBattleTowerFunc playse SE_SAVE waitse - setvar VAR_0x8004, FRONTIER_UTIL_FUNC_2 + setvar VAR_0x8004, FRONTIER_UTIL_FUNC_SET_DATA setvar VAR_0x8005, 3 setvar VAR_0x8006, 0 special CallFrontierUtilFunc @@ -259,7 +258,7 @@ BattleFrontier_BattleTowerLobby_EventScript_23E984:: @ 823E984 special CallFrontierUtilFunc compare VAR_0x8004, 1 goto_if_eq BattleFrontier_BattleTowerLobby_EventScript_23F02B - setvar VAR_0x8004, FRONTIER_UTIL_FUNC_2 + setvar VAR_0x8004, FRONTIER_UTIL_FUNC_SET_DATA setvar VAR_0x8005, 1 copyvar VAR_0x8006, VAR_RESULT special CallFrontierUtilFunc @@ -279,7 +278,7 @@ BattleFrontier_BattleTowerLobby_EventScript_23E984:: @ 823E984 case MULTI_B_PRESSED, BattleFrontier_BattleTowerLobby_EventScript_23F0E3 BattleFrontier_BattleTowerLobby_EventScript_23EA2A:: @ 823EA2A - setvar VAR_0x8004, FRONTIER_UTIL_FUNC_2 + setvar VAR_0x8004, FRONTIER_UTIL_FUNC_SET_DATA setvar VAR_0x8005, 4 special CallFrontierUtilFunc setvar VAR_TEMP_0, 0 @@ -289,7 +288,7 @@ BattleFrontier_BattleTowerLobby_EventScript_23EA2A:: @ 823EA2A setvar VAR_0x8005, 2 setvar VAR_0x8006, 1 special CallBattleTowerFunc - setvar VAR_0x8004, FRONTIER_UTIL_FUNC_2 + setvar VAR_0x8004, FRONTIER_UTIL_FUNC_SET_DATA setvar VAR_0x8005, 3 setvar VAR_0x8006, 0 special CallFrontierUtilFunc @@ -339,7 +338,7 @@ BattleFrontier_BattleTowerLobby_EventScript_23EAED:: @ 823EAED special CallFrontierUtilFunc compare VAR_0x8004, 1 goto_if_eq BattleFrontier_BattleTowerLobby_EventScript_23F02B - setvar VAR_0x8004, FRONTIER_UTIL_FUNC_2 + setvar VAR_0x8004, FRONTIER_UTIL_FUNC_SET_DATA setvar VAR_0x8005, 1 copyvar VAR_0x8006, VAR_RESULT special CallFrontierUtilFunc @@ -359,7 +358,7 @@ BattleFrontier_BattleTowerLobby_EventScript_23EAED:: @ 823EAED case MULTI_B_PRESSED, BattleFrontier_BattleTowerLobby_EventScript_23F0E3 BattleFrontier_BattleTowerLobby_EventScript_23EB93:: @ 823EB93 - setvar VAR_0x8004, FRONTIER_UTIL_FUNC_2 + setvar VAR_0x8004, FRONTIER_UTIL_FUNC_SET_DATA setvar VAR_0x8005, 4 special CallFrontierUtilFunc setvar VAR_TEMP_0, 0 @@ -369,7 +368,7 @@ BattleFrontier_BattleTowerLobby_EventScript_23EB93:: @ 823EB93 setvar VAR_0x8005, 2 setvar VAR_0x8006, 1 special CallBattleTowerFunc - setvar VAR_0x8004, FRONTIER_UTIL_FUNC_2 + setvar VAR_0x8004, FRONTIER_UTIL_FUNC_SET_DATA setvar VAR_0x8005, 3 setvar VAR_0x8006, 0 special CallFrontierUtilFunc @@ -420,7 +419,7 @@ BattleFrontier_BattleTowerLobby_EventScript_23EC59:: @ 823EC59 special CallFrontierUtilFunc compare VAR_0x8004, 1 goto_if_eq BattleFrontier_BattleTowerLobby_EventScript_23F02B - setvar VAR_0x8004, FRONTIER_UTIL_FUNC_2 + setvar VAR_0x8004, FRONTIER_UTIL_FUNC_SET_DATA setvar VAR_0x8005, 1 copyvar VAR_0x8006, VAR_RESULT special CallFrontierUtilFunc @@ -440,7 +439,7 @@ BattleFrontier_BattleTowerLobby_EventScript_23EC59:: @ 823EC59 case MULTI_B_PRESSED, BattleFrontier_BattleTowerLobby_EventScript_23F0E3 BattleFrontier_BattleTowerLobby_EventScript_23ECFF:: @ 823ECFF - setvar VAR_0x8004, FRONTIER_UTIL_FUNC_2 + setvar VAR_0x8004, FRONTIER_UTIL_FUNC_SET_DATA setvar VAR_0x8005, 4 special CallFrontierUtilFunc setvar VAR_TEMP_0, 0 @@ -450,7 +449,7 @@ BattleFrontier_BattleTowerLobby_EventScript_23ECFF:: @ 823ECFF setvar VAR_0x8005, 2 setvar VAR_0x8006, 1 special CallBattleTowerFunc - setvar VAR_0x8004, FRONTIER_UTIL_FUNC_2 + setvar VAR_0x8004, FRONTIER_UTIL_FUNC_SET_DATA setvar VAR_0x8005, 3 setvar VAR_0x8006, 0 special CallFrontierUtilFunc @@ -500,7 +499,7 @@ BattleFrontier_BattleTowerLobby_EventScript_23EDC2:: @ 823EDC2 special CallFrontierUtilFunc compare VAR_0x8004, 1 goto_if_eq BattleFrontier_BattleTowerLobby_EventScript_23F02B - setvar VAR_0x8004, FRONTIER_UTIL_FUNC_2 + setvar VAR_0x8004, FRONTIER_UTIL_FUNC_SET_DATA setvar VAR_0x8005, 1 copyvar VAR_0x8006, VAR_RESULT special CallFrontierUtilFunc @@ -520,7 +519,7 @@ BattleFrontier_BattleTowerLobby_EventScript_23EDC2:: @ 823EDC2 case MULTI_B_PRESSED, BattleFrontier_BattleTowerLobby_EventScript_23F0E3 BattleFrontier_BattleTowerLobby_EventScript_23EE68:: @ 823EE68 - setvar VAR_0x8004, FRONTIER_UTIL_FUNC_2 + setvar VAR_0x8004, FRONTIER_UTIL_FUNC_SET_DATA setvar VAR_0x8005, 4 special CallFrontierUtilFunc setvar VAR_TEMP_0, 0 @@ -530,7 +529,7 @@ BattleFrontier_BattleTowerLobby_EventScript_23EE68:: @ 823EE68 setvar VAR_0x8005, 2 setvar VAR_0x8006, 1 special CallBattleTowerFunc - setvar VAR_0x8004, FRONTIER_UTIL_FUNC_2 + setvar VAR_0x8004, FRONTIER_UTIL_FUNC_SET_DATA setvar VAR_0x8005, 3 setvar VAR_0x8006, 0 special CallFrontierUtilFunc @@ -625,10 +624,7 @@ BattleFrontier_BattleTowerLobby_EventScript_23EFBE:: @ 823EFBE BattleFrontier_BattleTowerLobby_EventScript_23EFC7:: @ 823EFC7 lockall - setvar VAR_0x8004, FRONTIER_UTIL_FUNC_RESULTS_WINDOW - setvar VAR_0x8005, 0 - setvar VAR_0x8006, 0 - special CallFrontierUtilFunc + frontier_results FRONTIER_FACILITY_TOWER, FRONTIER_MODE_SINGLES waitbuttonpress special RemoveRecordsWindow releaseall @@ -636,10 +632,7 @@ BattleFrontier_BattleTowerLobby_EventScript_23EFC7:: @ 823EFC7 BattleFrontier_BattleTowerLobby_EventScript_23EFE0:: @ 823EFE0 lockall - setvar VAR_0x8004, FRONTIER_UTIL_FUNC_RESULTS_WINDOW - setvar VAR_0x8005, 0 - setvar VAR_0x8006, 1 - special CallFrontierUtilFunc + frontier_results FRONTIER_FACILITY_TOWER, FRONTIER_MODE_DOUBLES waitbuttonpress special RemoveRecordsWindow releaseall @@ -647,10 +640,7 @@ BattleFrontier_BattleTowerLobby_EventScript_23EFE0:: @ 823EFE0 BattleFrontier_BattleTowerLobby_EventScript_23EFF9:: @ 823EFF9 lockall - setvar VAR_0x8004, FRONTIER_UTIL_FUNC_RESULTS_WINDOW - setvar VAR_0x8005, 0 - setvar VAR_0x8006, 2 - special CallFrontierUtilFunc + frontier_results FRONTIER_FACILITY_TOWER, FRONTIER_MODE_MULTIS waitbuttonpress special RemoveRecordsWindow releaseall @@ -658,10 +648,7 @@ BattleFrontier_BattleTowerLobby_EventScript_23EFF9:: @ 823EFF9 BattleFrontier_BattleTowerLobby_EventScript_23F012:: @ 823F012 lockall - setvar VAR_0x8004, FRONTIER_UTIL_FUNC_RESULTS_WINDOW - setvar VAR_0x8005, 0 - setvar VAR_0x8006, 3 - special CallFrontierUtilFunc + frontier_results FRONTIER_FACILITY_TOWER, FRONTIER_MODE_LINK_MULTIS waitbuttonpress special RemoveRecordsWindow releaseall @@ -709,7 +696,7 @@ BattleFrontier_BattleTowerLobby_EventScript_23F0C2:: @ 823F0C2 end BattleFrontier_BattleTowerLobby_EventScript_23F0D0:: @ 823F0D0 - setvar VAR_0x8004, FRONTIER_UTIL_FUNC_2 + setvar VAR_0x8004, FRONTIER_UTIL_FUNC_SET_DATA setvar VAR_0x8005, 0 special CallFrontierUtilFunc goto BattleFrontier_BattleTowerLobby_EventScript_23F0E6 @@ -916,7 +903,7 @@ BattleFrontier_BattlePalaceLobby_EventScript_23F2B7:: @ 823F2B7 BattleFrontier_BattlePikeLobby_EventScript_23F2B7:: @ 823F2B7 BattleFrontier_BattlePyramidLobby_EventScript_23F2B7:: @ 823F2B7 BattleFrontier_BattleTowerLobby_EventScript_23F2B7:: @ 823F2B7 - setvar VAR_0x8004, FRONTIER_UTIL_FUNC_1 + setvar VAR_0x8004, FRONTIER_UTIL_FUNC_GET_DATA setvar VAR_0x8005, 1 special CallFrontierUtilFunc return diff --git a/data/maps/BattleFrontier_BattleTowerMultiBattleRoom/scripts.inc b/data/maps/BattleFrontier_BattleTowerMultiBattleRoom/scripts.inc index 9da5e6a14..340b915c5 100644 --- a/data/maps/BattleFrontier_BattleTowerMultiBattleRoom/scripts.inc +++ b/data/maps/BattleFrontier_BattleTowerMultiBattleRoom/scripts.inc @@ -94,7 +94,7 @@ BattleFrontier_BattleTowerMultiBattleRoom_EventScript_243E7A:: @ 8243E7A end BattleFrontier_BattleTowerMultiBattleRoom_EventScript_243E9D:: @ 8243E9D - setvar VAR_0x8004, FRONTIER_UTIL_FUNC_2 + setvar VAR_0x8004, FRONTIER_UTIL_FUNC_SET_DATA setvar VAR_0x8005, 6 setvar VAR_0x8006, 1 special CallFrontierUtilFunc diff --git a/data/maps/FallarborTown_BattleTentBattleRoom/scripts.inc b/data/maps/FallarborTown_BattleTentBattleRoom/scripts.inc index 18f39ecd1..b3ea82593 100644 --- a/data/maps/FallarborTown_BattleTentBattleRoom/scripts.inc +++ b/data/maps/FallarborTown_BattleTentBattleRoom/scripts.inc @@ -35,9 +35,7 @@ FallarborTown_BattleTentBattleRoom_EventScript_2008E7:: @ 82008E7 showobjectat 1, MAP_FALLARBOR_TOWN_BATTLE_TENT_BATTLE_ROOM applymovement 1, FallarborTown_BattleTentBattleRoom_Movement_200B8D waitmovement 0 - setvar VAR_0x8004, FRONTIER_UTIL_FUNC_1 - setvar VAR_0x8005, 2 - special CallFrontierUtilFunc + frontier_getbattlenum compare VAR_RESULT, 0 goto_if_ne FallarborTown_BattleTentBattleRoom_EventScript_200B73 @@ -68,10 +66,7 @@ FallarborTown_BattleTentBattleRoom_EventScript_20090F:: @ 820090F msgbox FallarborTown_BattleTentBattleRoom_Text_257CCE, MSGBOX_DEFAULT FallarborTown_BattleTentBattleRoom_EventScript_20097E:: @ 820097E - setvar VAR_0x8004, FRONTIER_UTIL_FUNC_2 - setvar VAR_0x8005, 0 - setvar VAR_0x8006, 4 - special CallFrontierUtilFunc + frontier_setchallengestatus CHALLENGE_STATUS_LOST special LoadPlayerParty warp MAP_FALLARBOR_TOWN_BATTLE_TENT_LOBBY, 255, 6, 6 waitstate @@ -85,14 +80,9 @@ FallarborTown_BattleTentBattleRoom_EventScript_20099C:: @ 820099C closemessage FallarborTown_BattleTentBattleRoom_EventScript_2009B3:: @ 82009B3 - setvar VAR_0x8004, FRONTIER_UTIL_FUNC_1 - setvar VAR_0x8005, 2 - special CallFrontierUtilFunc + frontier_getbattlenum addvar VAR_RESULT, 1 - setvar VAR_0x8004, FRONTIER_UTIL_FUNC_2 - setvar VAR_0x8005, 2 - copyvar VAR_0x8006, VAR_RESULT - special CallFrontierUtilFunc + frontier_setbattlenum VAR_RESULT switch VAR_RESULT case 3, FallarborTown_BattleTentBattleRoom_EventScript_200AF3 applymovement 3, FallarborTown_BattleTentBattleRoom_Movement_200B9E @@ -105,17 +95,13 @@ FallarborTown_BattleTentBattleRoom_EventScript_2009B3:: @ 82009B3 msgbox FallarborTown_BattleTentBattleRoom_Text_257CE9, MSGBOX_DEFAULT special LoadPlayerParty special SavePlayerParty - setvar VAR_0x8004, FRONTIER_UTIL_FUNC_LOAD_SELECTED_PARTY - setvar VAR_0x8005, FRONTIER_PARTY_SIZE - special CallFrontierUtilFunc + frontier_loadselectedmons playfanfare MUS_ME_ASA waitfanfare special HealPlayerParty FallarborTown_BattleTentBattleRoom_EventScript_200A2A:: @ 8200A2A - setvar VAR_0x8004, FRONTIER_UTIL_FUNC_1 - setvar VAR_0x8005, 2 - special CallFrontierUtilFunc + frontier_getbattlenum compare VAR_RESULT, 1 call_if_eq FallarborTown_BattleTentBattleRoom_EventScript_200B43 compare VAR_RESULT, 2 @@ -153,10 +139,7 @@ FallarborTown_BattleTentBattleRoom_EventScript_200AD8:: @ 8200AD8 FallarborTown_BattleTentBattleRoom_EventScript_200AF3:: @ 8200AF3 delay 60 - setvar VAR_0x8004, FRONTIER_UTIL_FUNC_2 - setvar VAR_0x8005, 0 - setvar VAR_0x8006, 3 - special CallFrontierUtilFunc + frontier_setchallengestatus CHALLENGE_STATUS_WON special LoadPlayerParty warp MAP_FALLARBOR_TOWN_BATTLE_TENT_LOBBY, 255, 6, 6 waitstate diff --git a/data/maps/FallarborTown_BattleTentLobby/scripts.inc b/data/maps/FallarborTown_BattleTentLobby/scripts.inc index b5cc43558..7ec338b6f 100644 --- a/data/maps/FallarborTown_BattleTentLobby/scripts.inc +++ b/data/maps/FallarborTown_BattleTentLobby/scripts.inc @@ -21,20 +21,19 @@ FallarborTown_BattleTentLobby_MapScript2_1FFE85: @ 81FFE85 .2byte 0 FallarborTown_BattleTentLobby_EventScript_1FFEAF:: @ 81FFEAF - setvar VAR_0x8004, FRONTIER_UTIL_FUNC_0 - special CallFrontierUtilFunc + frontier_checkoutcome end FallarborTown_BattleTentLobby_EventScript_1FFEB8:: @ 81FFEB8 lockall msgbox FallarborTown_BattleTentLobby_Text_2C4DED, MSGBOX_DEFAULT closemessage - setvar VAR_0x8004, FRONTIER_UTIL_FUNC_2 + setvar VAR_0x8004, FRONTIER_UTIL_FUNC_SET_DATA setvar VAR_0x8005, 0 setvar VAR_0x8006, 0 special CallFrontierUtilFunc setvar VAR_TEMP_0, 255 - setvar VAR_0x8004, FRONTIER_UTIL_FUNC_2 + setvar VAR_0x8004, FRONTIER_UTIL_FUNC_SET_DATA setvar VAR_0x8005, 1 setvar VAR_0x8006, 0 special CallFrontierUtilFunc @@ -48,7 +47,7 @@ FallarborTown_BattleTentLobby_EventScript_1FFEED:: @ 81FFEED waitmessage setvar VAR_0x8004, 4 special sub_81B9B80 - setvar VAR_0x8004, FRONTIER_UTIL_FUNC_2 + setvar VAR_0x8004, FRONTIER_UTIL_FUNC_SET_DATA setvar VAR_0x8005, 1 setvar VAR_0x8006, 0 special CallFrontierUtilFunc @@ -64,7 +63,7 @@ FallarborTown_BattleTentLobby_EventScript_1FFF27:: @ 81FFF27 special sub_81B9B80 switch VAR_RESULT case 0, FallarborTown_BattleTentLobby_EventScript_1FFF73 - setvar VAR_0x8004, FRONTIER_UTIL_FUNC_2 + setvar VAR_0x8004, FRONTIER_UTIL_FUNC_SET_DATA setvar VAR_0x8005, 0 setvar VAR_0x8006, 0 special CallFrontierUtilFunc @@ -96,7 +95,7 @@ FallarborTown_BattleTentLobby_EventScript_1FFF93:: @ 81FFF93 lockall message FallarborTown_BattleTentLobby_Text_2C4FD7 waitmessage - setvar VAR_0x8004, FRONTIER_UTIL_FUNC_2 + setvar VAR_0x8004, FRONTIER_UTIL_FUNC_SET_DATA setvar VAR_0x8005, 1 setvar VAR_0x8006, 0 special CallFrontierUtilFunc @@ -120,7 +119,7 @@ FallarborTown_BattleTentLobby_EventScript_1FFFCD:: @ 81FFFCD special sub_81B9B80 playse SE_SAVE waitse - setvar VAR_0x8004, FRONTIER_UTIL_FUNC_2 + setvar VAR_0x8004, FRONTIER_UTIL_FUNC_SET_DATA setvar VAR_0x8005, 3 setvar VAR_0x8006, 0 special CallFrontierUtilFunc @@ -155,7 +154,7 @@ FallarborTown_BattleTentLobby_EventScript_20005D:: @ 820005D special CallFrontierUtilFunc compare VAR_0x8004, 1 goto_if_eq FallarborTown_BattleTentLobby_EventScript_200176 - setvar VAR_0x8004, FRONTIER_UTIL_FUNC_2 + setvar VAR_0x8004, FRONTIER_UTIL_FUNC_SET_DATA setvar VAR_0x8005, 1 setvar VAR_0x8006, 2 special CallFrontierUtilFunc @@ -175,16 +174,16 @@ FallarborTown_BattleTentLobby_EventScript_20005D:: @ 820005D FallarborTown_BattleTentLobby_EventScript_2000E2:: @ 82000E2 setvar VAR_TEMP_0, 0 - setvar VAR_0x8004, FRONTIER_UTIL_FUNC_2 + setvar VAR_0x8004, FRONTIER_UTIL_FUNC_SET_DATA setvar VAR_0x8005, 4 special CallFrontierUtilFunc setvar VAR_0x8004, 0 special sub_81B9B80 - setvar VAR_0x8004, FRONTIER_UTIL_FUNC_2 + setvar VAR_0x8004, FRONTIER_UTIL_FUNC_SET_DATA setvar VAR_0x8005, 0 setvar VAR_0x8006, 1 special CallFrontierUtilFunc - setvar VAR_0x8004, FRONTIER_UTIL_FUNC_2 + setvar VAR_0x8004, FRONTIER_UTIL_FUNC_SET_DATA setvar VAR_0x8005, 3 setvar VAR_0x8006, 0 special CallFrontierUtilFunc @@ -198,9 +197,7 @@ FallarborTown_BattleTentLobby_EventScript_2000E2:: @ 82000E2 FallarborTown_BattleTentLobby_EventScript_20013C:: @ 820013C special SavePlayerParty - setvar VAR_0x8004, FRONTIER_UTIL_FUNC_LOAD_SELECTED_PARTY - setvar VAR_0x8005, FRONTIER_PARTY_SIZE - special CallFrontierUtilFunc + frontier_loadselectedmons msgbox FallarborTown_BattleTentLobby_Text_2C4DC3, MSGBOX_DEFAULT closemessage call FallarborTown_BattleTentLobby_EventScript_2001CF @@ -227,7 +224,7 @@ FallarborTown_BattleTentLobby_EventScript_20019E:: @ 820019E goto FallarborTown_BattleTentLobby_EventScript_2001CD FallarborTown_BattleTentLobby_EventScript_2001AB:: @ 82001AB - setvar VAR_0x8004, FRONTIER_UTIL_FUNC_2 + setvar VAR_0x8004, FRONTIER_UTIL_FUNC_SET_DATA setvar VAR_0x8005, 0 setvar VAR_0x8006, 0 special CallFrontierUtilFunc diff --git a/data/maps/LilycoveCity_ContestLobby/scripts.inc b/data/maps/LilycoveCity_ContestLobby/scripts.inc index ecd8e2b95..b6874d99f 100644 --- a/data/maps/LilycoveCity_ContestLobby/scripts.inc +++ b/data/maps/LilycoveCity_ContestLobby/scripts.inc @@ -562,9 +562,7 @@ LilycoveCity_ContestLobby_EventScript_BerryBlenderSpeedRecords:: @ 821A77A LilycoveCity_ContestLobby_EventScript_LinkContestResults:: @ 821A784 lockall - setvar VAR_0x8004, FRONTIER_UTIL_FUNC_RESULTS_WINDOW - setvar VAR_0x8005, 7 - special CallFrontierUtilFunc + frontier_results FACILITY_LINK_CONTEST waitbuttonpress special RemoveRecordsWindow releaseall diff --git a/data/maps/MossdeepCity_SpaceCenter_2F/scripts.inc b/data/maps/MossdeepCity_SpaceCenter_2F/scripts.inc index 765b96482..63600c9e2 100644 --- a/data/maps/MossdeepCity_SpaceCenter_2F/scripts.inc +++ b/data/maps/MossdeepCity_SpaceCenter_2F/scripts.inc @@ -258,7 +258,7 @@ MossdeepCity_SpaceCenter_2F_EventScript_ChoosePartyForMultiBattle:: @ 822400C MossdeepCity_SpaceCenter_2F_EventScript_DoStevenMultiBattle:: @ 8224032 special ReducePlayerPartyToSelectedMons - setvar VAR_0x8004, FRONTIER_UTIL_FUNC_2 + setvar VAR_0x8004, FRONTIER_UTIL_FUNC_SET_DATA setvar VAR_0x8005, 4 special CallFrontierUtilFunc setvar VAR_0x8004, SPECIAL_BATTLE_STEVEN diff --git a/data/maps/SlateportCity_BattleTentBattleRoom/scripts.inc b/data/maps/SlateportCity_BattleTentBattleRoom/scripts.inc index e5195dce2..eddd434a1 100644 --- a/data/maps/SlateportCity_BattleTentBattleRoom/scripts.inc +++ b/data/maps/SlateportCity_BattleTentBattleRoom/scripts.inc @@ -63,23 +63,15 @@ SlateportCity_BattleTentBattleRoom_EventScript_2099BE:: @ 82099BE case 1, SlateportCity_BattleTentBattleRoom_EventScript_209A39 SlateportCity_BattleTentCorridor_EventScript_209A1B:: @ 8209A1B - setvar VAR_0x8004, FRONTIER_UTIL_FUNC_2 - setvar VAR_0x8005, 0 - setvar VAR_0x8006, 4 - special CallFrontierUtilFunc + frontier_setchallengestatus CHALLENGE_STATUS_LOST special LoadPlayerParty warp MAP_SLATEPORT_CITY_BATTLE_TENT_LOBBY, 255, 6, 6 waitstate SlateportCity_BattleTentBattleRoom_EventScript_209A39:: @ 8209A39 - setvar VAR_0x8004, FRONTIER_UTIL_FUNC_1 - setvar VAR_0x8005, 2 - special CallFrontierUtilFunc + frontier_getbattlenum addvar VAR_RESULT, 1 - setvar VAR_0x8004, FRONTIER_UTIL_FUNC_2 - setvar VAR_0x8005, 2 - copyvar VAR_0x8006, VAR_RESULT - special CallFrontierUtilFunc + frontier_setbattlenum VAR_RESULT switch VAR_RESULT case 3, SlateportCity_BattleTentBattleRoom_EventScript_209A7B @ case 3, SlateportCity_BattleTentCorridor_EventScript_209A7B @@ -89,10 +81,7 @@ SlateportCity_BattleTentBattleRoom_EventScript_209A39:: @ 8209A39 SlateportCity_BattleTentBattleRoom_EventScript_209A7B:: @ 8209A7B SlateportCity_BattleTentCorridor_EventScript_209A7B:: @ 8209A7B - setvar VAR_0x8004, FRONTIER_UTIL_FUNC_2 - setvar VAR_0x8005, 0 - setvar VAR_0x8006, 3 - special CallFrontierUtilFunc + frontier_setchallengestatus CHALLENGE_STATUS_WON special LoadPlayerParty warp MAP_SLATEPORT_CITY_BATTLE_TENT_LOBBY, 255, 6, 6 waitstate diff --git a/data/maps/SlateportCity_BattleTentCorridor/scripts.inc b/data/maps/SlateportCity_BattleTentCorridor/scripts.inc index a8abf0cb6..952ca1c1b 100644 --- a/data/maps/SlateportCity_BattleTentCorridor/scripts.inc +++ b/data/maps/SlateportCity_BattleTentCorridor/scripts.inc @@ -68,7 +68,7 @@ SlateportCity_BattleTentCorridor_EventScript_208EEE:: @ 8208EEE special HealPlayerParty SlateportCity_BattleTentCorridor_EventScript_208F0D:: @ 8208F0D - setvar VAR_0x8004, FRONTIER_UTIL_FUNC_1 + setvar VAR_0x8004, FRONTIER_UTIL_FUNC_GET_DATA setvar VAR_0x8005, 2 special CallFrontierUtilFunc compare VAR_RESULT, 1 diff --git a/data/maps/SlateportCity_BattleTentLobby/scripts.inc b/data/maps/SlateportCity_BattleTentLobby/scripts.inc index 8f453c147..c6011c3f2 100644 --- a/data/maps/SlateportCity_BattleTentLobby/scripts.inc +++ b/data/maps/SlateportCity_BattleTentLobby/scripts.inc @@ -21,20 +21,19 @@ SlateportCity_BattleTentLobby_MapScript2_20874F: @ 820874F .2byte 0 SlateportCity_BattleTentLobby_EventScript_208779:: @ 8208779 - setvar VAR_0x8004, FRONTIER_UTIL_FUNC_0 - special CallFrontierUtilFunc + frontier_checkoutcome end SlateportCity_BattleTentLobby_EventScript_208782:: @ 8208782 lockall msgbox SlateportCity_BattleTentLobby_Text_2C5DFA, MSGBOX_DEFAULT closemessage - setvar VAR_0x8004, FRONTIER_UTIL_FUNC_2 + setvar VAR_0x8004, FRONTIER_UTIL_FUNC_SET_DATA setvar VAR_0x8005, 0 setvar VAR_0x8006, 0 special CallFrontierUtilFunc setvar VAR_TEMP_0, 255 - setvar VAR_0x8004, FRONTIER_UTIL_FUNC_2 + setvar VAR_0x8004, FRONTIER_UTIL_FUNC_SET_DATA setvar VAR_0x8005, 1 setvar VAR_0x8006, 0 special CallFrontierUtilFunc @@ -47,7 +46,7 @@ SlateportCity_BattleTentLobby_EventScript_2087B7:: @ 82087B7 waitmessage setvar VAR_0x8004, 4 special sub_81B9D08 - setvar VAR_0x8004, FRONTIER_UTIL_FUNC_2 + setvar VAR_0x8004, FRONTIER_UTIL_FUNC_SET_DATA setvar VAR_0x8005, 1 setvar VAR_0x8006, 0 special CallFrontierUtilFunc @@ -63,7 +62,7 @@ SlateportCity_BattleTentLobby_EventScript_2087E9:: @ 82087E9 special sub_81B9D08 switch VAR_RESULT case 0, SlateportCity_BattleTentLobby_EventScript_20882A - setvar VAR_0x8004, FRONTIER_UTIL_FUNC_2 + setvar VAR_0x8004, FRONTIER_UTIL_FUNC_SET_DATA setvar VAR_0x8005, 0 setvar VAR_0x8006, 0 special CallFrontierUtilFunc @@ -81,7 +80,7 @@ SlateportCity_BattleTentLobby_EventScript_208837:: @ 8208837 lockall message SlateportCity_BattleTentLobby_Text_2C5BA2 waitmessage - setvar VAR_0x8004, FRONTIER_UTIL_FUNC_2 + setvar VAR_0x8004, FRONTIER_UTIL_FUNC_SET_DATA setvar VAR_0x8005, 1 setvar VAR_0x8006, 0 special CallFrontierUtilFunc @@ -107,7 +106,7 @@ SlateportCity_BattleTentLobby_EventScript_208871:: @ 8208871 special sub_81B9D08 playse SE_SAVE waitse - setvar VAR_0x8004, FRONTIER_UTIL_FUNC_2 + setvar VAR_0x8004, FRONTIER_UTIL_FUNC_SET_DATA setvar VAR_0x8005, 3 setvar VAR_0x8006, 0 special CallFrontierUtilFunc @@ -138,7 +137,7 @@ SlateportCity_BattleTentLobby_EventScript_2088CA:: @ 82088CA SlateportCity_BattleTentLobby_EventScript_208906:: @ 8208906 setvar VAR_FRONTIER_FACILITY, 4 setvar VAR_FRONTIER_BATTLE_MODE, 0 - setvar VAR_0x8004, FRONTIER_UTIL_FUNC_2 + setvar VAR_0x8004, FRONTIER_UTIL_FUNC_SET_DATA setvar VAR_0x8005, 1 setvar VAR_0x8006, 2 special CallFrontierUtilFunc @@ -150,16 +149,16 @@ SlateportCity_BattleTentLobby_EventScript_208906:: @ 8208906 SlateportCity_BattleTentLobby_EventScript_208950:: @ 8208950 setvar VAR_TEMP_0, 0 - setvar VAR_0x8004, FRONTIER_UTIL_FUNC_2 + setvar VAR_0x8004, FRONTIER_UTIL_FUNC_SET_DATA setvar VAR_0x8005, 4 special CallFrontierUtilFunc setvar VAR_0x8004, 0 special sub_81B9D08 - setvar VAR_0x8004, FRONTIER_UTIL_FUNC_2 + setvar VAR_0x8004, FRONTIER_UTIL_FUNC_SET_DATA setvar VAR_0x8005, 0 setvar VAR_0x8006, 1 special CallFrontierUtilFunc - setvar VAR_0x8004, FRONTIER_UTIL_FUNC_2 + setvar VAR_0x8004, FRONTIER_UTIL_FUNC_SET_DATA setvar VAR_0x8005, 3 setvar VAR_0x8006, 0 special CallFrontierUtilFunc @@ -221,7 +220,7 @@ SlateportCity_BattleTentLobby_EventScript_208A07:: @ 8208A07 goto SlateportCity_BattleTentLobby_EventScript_2088CA SlateportCity_BattleTentLobby_EventScript_208A14:: @ 8208A14 - setvar VAR_0x8004, FRONTIER_UTIL_FUNC_2 + setvar VAR_0x8004, FRONTIER_UTIL_FUNC_SET_DATA setvar VAR_0x8005, 0 setvar VAR_0x8006, 0 special CallFrontierUtilFunc diff --git a/data/maps/VerdanturfTown_BattleTentBattleRoom/scripts.inc b/data/maps/VerdanturfTown_BattleTentBattleRoom/scripts.inc index e7d7d2fb4..7dfd53fa8 100644 --- a/data/maps/VerdanturfTown_BattleTentBattleRoom/scripts.inc +++ b/data/maps/VerdanturfTown_BattleTentBattleRoom/scripts.inc @@ -34,9 +34,7 @@ VerdanturfTown_BattleTentBattleRoom_EventScript_202348:: @ 8202348 showobjectat 1, MAP_VERDANTURF_TOWN_BATTLE_TENT_BATTLE_ROOM applymovement 1, VerdanturfTown_BattleTentBattleRoom_Movement_202575 waitmovement 0 - setvar VAR_0x8004, FRONTIER_UTIL_FUNC_1 - setvar VAR_0x8005, 2 - special CallFrontierUtilFunc + frontier_getbattlenum compare VAR_RESULT, 0 goto_if_ne VerdanturfTown_BattleTentBattleRoom_EventScript_20243C @@ -55,23 +53,15 @@ VerdanturfTown_BattleTentBattleRoom_EventScript_20236F:: @ 820236F case 1, VerdanturfTown_BattleTentBattleRoom_EventScript_2023C8 VerdanturfTown_BattleTentBattleRoom_EventScript_2023AA:: @ 82023AA - setvar VAR_0x8004, FRONTIER_UTIL_FUNC_2 - setvar VAR_0x8005, 0 - setvar VAR_0x8006, 4 - special CallFrontierUtilFunc + frontier_setchallengestatus CHALLENGE_STATUS_LOST special LoadPlayerParty warp MAP_VERDANTURF_TOWN_BATTLE_TENT_LOBBY, 255, 6, 6 waitstate VerdanturfTown_BattleTentBattleRoom_EventScript_2023C8:: @ 82023C8 - setvar VAR_0x8004, FRONTIER_UTIL_FUNC_1 - setvar VAR_0x8005, 2 - special CallFrontierUtilFunc + frontier_getbattlenum addvar VAR_RESULT, 1 - setvar VAR_0x8004, FRONTIER_UTIL_FUNC_2 - setvar VAR_0x8005, 2 - copyvar VAR_0x8006, VAR_RESULT - special CallFrontierUtilFunc + frontier_setbattlenum VAR_RESULT switch VAR_RESULT case 3, VerdanturfTown_BattleTentBattleRoom_EventScript_202501 applymovement 2, VerdanturfTown_BattleTentBattleRoom_Movement_202581 @@ -83,17 +73,13 @@ VerdanturfTown_BattleTentBattleRoom_EventScript_2023C8:: @ 82023C8 msgbox VerdanturfTown_BattleTentBattleRoom_Text_24FF00, MSGBOX_DEFAULT special LoadPlayerParty special SavePlayerParty - setvar VAR_0x8004, FRONTIER_UTIL_FUNC_LOAD_SELECTED_PARTY - setvar VAR_0x8005, FRONTIER_PARTY_SIZE - special CallFrontierUtilFunc + frontier_loadselectedmons playfanfare MUS_ME_ASA waitfanfare special HealPlayerParty VerdanturfTown_BattleTentBattleRoom_EventScript_20243C:: @ 820243C - setvar VAR_0x8004, FRONTIER_UTIL_FUNC_1 - setvar VAR_0x8005, 2 - special CallFrontierUtilFunc + frontier_getbattlenum compare VAR_RESULT, 1 call_if_eq VerdanturfTown_BattleTentBattleRoom_EventScript_202565 compare VAR_RESULT, 2 @@ -128,10 +114,7 @@ VerdanturfTown_BattleTentBattleRoom_EventScript_2024EA:: @ 82024EA goto VerdanturfTown_BattleTentBattleRoom_EventScript_20236F VerdanturfTown_BattleTentBattleRoom_EventScript_202501:: @ 8202501 - setvar VAR_0x8004, FRONTIER_UTIL_FUNC_2 - setvar VAR_0x8005, 0 - setvar VAR_0x8006, 3 - special CallFrontierUtilFunc + frontier_setchallengestatus CHALLENGE_STATUS_WON special LoadPlayerParty warp MAP_VERDANTURF_TOWN_BATTLE_TENT_LOBBY, 255, 6, 6 waitstate diff --git a/data/maps/VerdanturfTown_BattleTentLobby/scripts.inc b/data/maps/VerdanturfTown_BattleTentLobby/scripts.inc index 88c98fc1a..cf68192fb 100644 --- a/data/maps/VerdanturfTown_BattleTentLobby/scripts.inc +++ b/data/maps/VerdanturfTown_BattleTentLobby/scripts.inc @@ -21,20 +21,19 @@ VerdanturfTown_BattleTentLobby_MapScript2_2016EF: @ 82016EF .2byte 0 VerdanturfTown_BattleTentLobby_EventScript_201719:: @ 8201719 - setvar VAR_0x8004, FRONTIER_UTIL_FUNC_0 - special CallFrontierUtilFunc + frontier_checkoutcome end VerdanturfTown_BattleTentLobby_EventScript_201722:: @ 8201722 lockall msgbox VerdanturfTown_BattleTentLobby_Text_24E636, MSGBOX_DEFAULT closemessage - setvar VAR_0x8004, FRONTIER_UTIL_FUNC_2 + setvar VAR_0x8004, FRONTIER_UTIL_FUNC_SET_DATA setvar VAR_0x8005, 0 setvar VAR_0x8006, 0 special CallFrontierUtilFunc setvar VAR_TEMP_0, 255 - setvar VAR_0x8004, FRONTIER_UTIL_FUNC_2 + setvar VAR_0x8004, FRONTIER_UTIL_FUNC_SET_DATA setvar VAR_0x8005, 1 setvar VAR_0x8006, 0 special CallFrontierUtilFunc @@ -48,7 +47,7 @@ VerdanturfTown_BattleTentLobby_EventScript_201757:: @ 8201757 waitmessage setvar VAR_0x8004, 6 special sub_81B99B4 - setvar VAR_0x8004, FRONTIER_UTIL_FUNC_2 + setvar VAR_0x8004, FRONTIER_UTIL_FUNC_SET_DATA setvar VAR_0x8005, 1 setvar VAR_0x8006, 0 special CallFrontierUtilFunc @@ -64,7 +63,7 @@ VerdanturfTown_BattleTentLobby_EventScript_201791:: @ 8201791 special sub_81B99B4 switch VAR_RESULT case 0, VerdanturfTown_BattleTentLobby_EventScript_2017DD - setvar VAR_0x8004, FRONTIER_UTIL_FUNC_2 + setvar VAR_0x8004, FRONTIER_UTIL_FUNC_SET_DATA setvar VAR_0x8005, 0 setvar VAR_0x8006, 0 special CallFrontierUtilFunc @@ -96,7 +95,7 @@ VerdanturfTown_BattleTentLobby_EventScript_2017FD:: @ 82017FD lockall message VerdanturfTown_BattleTentLobby_Text_2C56B8 waitmessage - setvar VAR_0x8004, FRONTIER_UTIL_FUNC_2 + setvar VAR_0x8004, FRONTIER_UTIL_FUNC_SET_DATA setvar VAR_0x8005, 1 setvar VAR_0x8006, 0 special CallFrontierUtilFunc @@ -121,7 +120,7 @@ VerdanturfTown_BattleTentLobby_EventScript_201837:: @ 8201837 special sub_81B99B4 playse SE_SAVE waitse - setvar VAR_0x8004, FRONTIER_UTIL_FUNC_2 + setvar VAR_0x8004, FRONTIER_UTIL_FUNC_SET_DATA setvar VAR_0x8005, 3 setvar VAR_0x8006, 0 special CallFrontierUtilFunc @@ -156,7 +155,7 @@ VerdanturfTown_BattleTentLobby_EventScript_2018CF:: @ 82018CF special CallFrontierUtilFunc compare VAR_0x8004, 1 goto_if_eq VerdanturfTown_BattleTentLobby_EventScript_2019E8 - setvar VAR_0x8004, FRONTIER_UTIL_FUNC_2 + setvar VAR_0x8004, FRONTIER_UTIL_FUNC_SET_DATA setvar VAR_0x8005, 1 setvar VAR_0x8006, 2 special CallFrontierUtilFunc @@ -176,16 +175,16 @@ VerdanturfTown_BattleTentLobby_EventScript_2018CF:: @ 82018CF VerdanturfTown_BattleTentLobby_EventScript_201954:: @ 8201954 setvar VAR_TEMP_0, 0 - setvar VAR_0x8004, FRONTIER_UTIL_FUNC_2 + setvar VAR_0x8004, FRONTIER_UTIL_FUNC_SET_DATA setvar VAR_0x8005, 4 special CallFrontierUtilFunc setvar VAR_0x8004, 0 special sub_81B99B4 - setvar VAR_0x8004, FRONTIER_UTIL_FUNC_2 + setvar VAR_0x8004, FRONTIER_UTIL_FUNC_SET_DATA setvar VAR_0x8005, 0 setvar VAR_0x8006, 1 special CallFrontierUtilFunc - setvar VAR_0x8004, FRONTIER_UTIL_FUNC_2 + setvar VAR_0x8004, FRONTIER_UTIL_FUNC_SET_DATA setvar VAR_0x8005, 3 setvar VAR_0x8006, 0 special CallFrontierUtilFunc @@ -199,9 +198,7 @@ VerdanturfTown_BattleTentLobby_EventScript_201954:: @ 8201954 VerdanturfTown_BattleTentLobby_EventScript_2019AE:: @ 82019AE special SavePlayerParty - setvar VAR_0x8004, FRONTIER_UTIL_FUNC_LOAD_SELECTED_PARTY - setvar VAR_0x8005, FRONTIER_PARTY_SIZE - special CallFrontierUtilFunc + frontier_loadselectedmons msgbox VerdanturfTown_BattleTentLobby_Text_2C56A2, MSGBOX_DEFAULT closemessage call VerdanturfTown_BattleTentLobby_EventScript_201A41 @@ -228,7 +225,7 @@ VerdanturfTown_BattleTentLobby_EventScript_201A10:: @ 8201A10 goto VerdanturfTown_BattleTentLobby_EventScript_201A3F VerdanturfTown_BattleTentLobby_EventScript_201A1D:: @ 8201A1D - setvar VAR_0x8004, FRONTIER_UTIL_FUNC_2 + setvar VAR_0x8004, FRONTIER_UTIL_FUNC_SET_DATA setvar VAR_0x8005, 0 setvar VAR_0x8006, 0 special CallFrontierUtilFunc diff --git a/data/maps/map_groups.json b/data/maps/map_groups.json index 4035bc3f3..521cc5e03 100644 --- a/data/maps/map_groups.json +++ b/data/maps/map_groups.json @@ -532,9 +532,9 @@ "BattleFrontier_BattlePikeLobby", "BattleFrontier_BattlePikeCorridor", "BattleFrontier_BattlePikeThreePathRoom", - "BattleFrontier_BattlePikeRandomRoom1", - "BattleFrontier_BattlePikeRandomRoom2", - "BattleFrontier_BattlePikeRandomRoom3", + "BattleFrontier_BattlePikeRoomNormal", + "BattleFrontier_BattlePikeRoomFinal", + "BattleFrontier_BattlePikeRoomWildMons", "BattleFrontier_RankingHall", "BattleFrontier_Lounge1", "BattleFrontier_ExchangeServiceCorner", diff --git a/data/scripts/battle_pike.inc b/data/scripts/battle_pike.inc index 2a6da1a58..ca1e14d47 100644 --- a/data/scripts/battle_pike.inc +++ b/data/scripts/battle_pike.inc @@ -1,142 +1,127 @@ -BattleFrontier_BattlePikeRandomRoom1_MapScripts_2C3E1B: @ 82C3E1B - map_script MAP_SCRIPT_ON_TRANSITION, BattleFrontier_BattlePikeRandomRoom1_MapScript1_2C3E25 - map_script MAP_SCRIPT_ON_WARP_INTO_MAP_TABLE, BattleFrontier_BattlePikeRandomRoom1_MapScript2_2C3EDE +BattleFrontier_BattlePikeRoomNormal_MapScripts_2C3E1B: @ 82C3E1B + map_script MAP_SCRIPT_ON_TRANSITION, BattleFrontier_BattlePikeRoom_OnTransition + map_script MAP_SCRIPT_ON_WARP_INTO_MAP_TABLE, BattleFrontier_BattlePikeRoom_OnWarp -BattleFrontier_BattlePikeRandomRoom1_MapScript1_2C3E25: @ 82C3E25 - setvar VAR_0x8004, BATTLE_PIKE_FUNC_SET_UP_ROOM_OBJECTS - special CallBattlePikeFunction - setvar VAR_0x8004, BATTLE_PIKE_FUNC_GET_ROOM_TYPE - special CallBattlePikeFunction +BattleFrontier_BattlePikeRoom_OnTransition: @ 82C3E25 + battlepike_setroomobjects + battlepike_getroomtype switch VAR_RESULT - case 0, BattleFrontier_BattlePikeRandomRoom1_EventScript_2C3EB1 - case 1, BattleFrontier_BattlePikeRandomRoom1_EventScript_2C3EB1 - case 2, BattleFrontier_BattlePikeRandomRoom1_EventScript_2C3EC0 - case 3, BattleFrontier_BattlePikeRandomRoom1_EventScript_2C3EA2 - case 4, BattleFrontier_BattlePikeRandomRoom1_EventScript_2C3EB1 - case 7, BattleFrontier_BattlePikeRandomRoom1_EventScript_2C3E93 - case 6, BattleFrontier_BattlePikeRandomRoom1_EventScript_2C3EA2 - case 8, BattleFrontier_BattlePikeRandomRoom1_EventScript_2C3ECF + case PIKE_ROOM_SINGLE_BATTLE, BattleFrontier_BattlePikeRoomNormal_EventScript_2C3EB1 + case PIKE_ROOM_HEAL_FULL, BattleFrontier_BattlePikeRoomNormal_EventScript_2C3EB1 + case PIKE_ROOM_NPC, BattleFrontier_BattlePikeRoomNormal_EventScript_2C3EC0 + case PIKE_ROOM_STATUS, BattleFrontier_BattlePikeRoomNormal_EventScript_2C3EA2 + case PIKE_ROOM_HEAL_PART, BattleFrontier_BattlePikeRoomNormal_EventScript_2C3EB1 + case PIKE_ROOM_DOUBLE_BATTLE, BattleFrontier_BattlePikeRoomNormal_EventScript_2C3E93 + case PIKE_ROOM_HARD_BATTLE, BattleFrontier_BattlePikeRoomNormal_EventScript_2C3EA2 + case PIKE_ROOM_BRAIN, BattleFrontier_BattlePikeRoomNormal_EventScript_2C3ECF end -BattleFrontier_BattlePikeRandomRoom1_EventScript_2C3E93:: @ 82C3E93 +BattleFrontier_BattlePikeRoomNormal_EventScript_2C3E93:: @ 82C3E93 setobjectxyperm 1, 2, 5 setobjectxyperm 2, 6, 5 end -BattleFrontier_BattlePikeRandomRoom1_EventScript_2C3EA2:: @ 82C3EA2 +BattleFrontier_BattlePikeRoomNormal_EventScript_2C3EA2:: @ 82C3EA2 setobjectxyperm 1, 4, 4 setobjectxyperm 2, 3, 4 end -BattleFrontier_BattlePikeRandomRoom1_EventScript_2C3EB1:: @ 82C3EB1 +BattleFrontier_BattlePikeRoomNormal_EventScript_2C3EB1:: @ 82C3EB1 setobjectxyperm 1, 4, 4 setobjectxyperm 2, 0, 0 end -BattleFrontier_BattlePikeRandomRoom1_EventScript_2C3EC0:: @ 82C3EC0 +BattleFrontier_BattlePikeRoomNormal_EventScript_2C3EC0:: @ 82C3EC0 setobjectxyperm 1, 5, 5 setobjectxyperm 2, 0, 0 end -BattleFrontier_BattlePikeRandomRoom1_EventScript_2C3ECF:: @ 82C3ECF +BattleFrontier_BattlePikeRoomNormal_EventScript_2C3ECF:: @ 82C3ECF setobjectxyperm 1, 4, 3 setobjectxyperm 2, 4, 4 end -BattleFrontier_BattlePikeRandomRoom1_MapScript2_2C3EDE: @ 82C3EDE - map_script_2 VAR_TEMP_4, 0, BattleFrontier_BattlePikeRandomRoom1_EventScript_2C3EE8 +BattleFrontier_BattlePikeRoom_OnWarp: @ 82C3EDE + map_script_2 VAR_TEMP_4, 0, BattleFrontier_BattlePikeRoomNormal_EventScript_EnterRoom .2byte 0 -BattleFrontier_BattlePikeRandomRoom1_EventScript_2C3EE8:: @ 82C3EE8 +BattleFrontier_BattlePikeRoomNormal_EventScript_EnterRoom:: @ 82C3EE8 setvar VAR_OBJ_GFX_ID_1, EVENT_OBJ_GFX_LINK_RECEPTIONIST setvar VAR_OBJ_GFX_ID_0, EVENT_OBJ_GFX_LINK_RECEPTIONIST - setvar VAR_0x8004, BATTLE_PIKE_FUNC_GET_ROOM_TYPE - special CallBattlePikeFunction - compare VAR_RESULT, 3 - goto_if_eq BattleFrontier_BattlePikeRandomRoom1_EventScript_2C3F35 - compare VAR_RESULT, 6 - goto_if_eq BattleFrontier_BattlePikeRandomRoom1_EventScript_2C3F35 - compare VAR_RESULT, 7 - goto_if_eq BattleFrontier_BattlePikeRandomRoom1_EventScript_2C3F35 - compare VAR_RESULT, 8 - goto_if_eq BattleFrontier_BattlePikeRandomRoom1_EventScript_2C3F3F - hideobjectat 2, MAP_BATTLE_FRONTIER_BATTLE_PIKE_RANDOM_ROOM1 + battlepike_getroomtype + compare VAR_RESULT, PIKE_ROOM_STATUS + goto_if_eq BattleFrontier_BattlePikeRoomNormal_EventScript_2C3F35 + compare VAR_RESULT, PIKE_ROOM_HARD_BATTLE + goto_if_eq BattleFrontier_BattlePikeRoomNormal_EventScript_2C3F35 + compare VAR_RESULT, PIKE_ROOM_DOUBLE_BATTLE + goto_if_eq BattleFrontier_BattlePikeRoomNormal_EventScript_2C3F35 + compare VAR_RESULT, PIKE_ROOM_BRAIN + goto_if_eq BattleFrontier_BattlePikeRoomNormal_EventScript_2C3F3F + hideobjectat 2, MAP_BATTLE_FRONTIER_BATTLE_PIKE_ROOM_NORMAL setvar VAR_TEMP_4, 1 turnobject EVENT_OBJ_ID_PLAYER, DIR_NORTH end -BattleFrontier_BattlePikeRandomRoom1_EventScript_2C3F35:: @ 82C3F35 +BattleFrontier_BattlePikeRoomNormal_EventScript_2C3F35:: @ 82C3F35 setvar VAR_TEMP_4, 1 turnobject EVENT_OBJ_ID_PLAYER, DIR_NORTH end -BattleFrontier_BattlePikeRandomRoom1_EventScript_2C3F3F:: @ 82C3F3F +BattleFrontier_BattlePikeRoomNormal_EventScript_2C3F3F:: @ 82C3F3F setvar VAR_TEMP_4, 1 turnobject EVENT_OBJ_ID_PLAYER, DIR_NORTH - hideobjectat 1, MAP_BATTLE_FRONTIER_BATTLE_PIKE_RANDOM_ROOM1 + hideobjectat 1, MAP_BATTLE_FRONTIER_BATTLE_PIKE_ROOM_NORMAL end -BattleFrontier_BattlePikeThreePathRoom_EventScript_2C3F4E:: @ 82C3F4E - setvar VAR_0x8007, 0 - goto BattleFrontier_BattlePikeThreePathRoom_EventScript_2C3F6F +BattleFrontier_BattlePikeThreePathRoom_EventScript_LeftRoomWarp:: @ 82C3F4E + setvar VAR_0x8007, PIKE_ROOM_LEFT + goto BattleFrontier_BattlePikeThreePathRoom_EventScript_RoomWarp end -BattleFrontier_BattlePikeThreePathRoom_EventScript_2C3F59:: @ 82C3F59 - setvar VAR_0x8007, 1 - goto BattleFrontier_BattlePikeThreePathRoom_EventScript_2C3F6F +BattleFrontier_BattlePikeThreePathRoom_EventScript_CenterRoomWarp:: @ 82C3F59 + setvar VAR_0x8007, PIKE_ROOM_CENTER + goto BattleFrontier_BattlePikeThreePathRoom_EventScript_RoomWarp end -BattleFrontier_BattlePikeThreePathRoom_EventScript_2C3F64:: @ 82C3F64 - setvar VAR_0x8007, 2 - goto BattleFrontier_BattlePikeThreePathRoom_EventScript_2C3F6F +BattleFrontier_BattlePikeThreePathRoom_EventScript_RightRoomWarp:: @ 82C3F64 + setvar VAR_0x8007, PIKE_ROOM_RIGHT + goto BattleFrontier_BattlePikeThreePathRoom_EventScript_RoomWarp end -BattleFrontier_BattlePikeThreePathRoom_EventScript_2C3F6F:: @ 82C3F6F - setvar VAR_0x8004, BATTLE_PIKE_FUNC_GET_DATA - setvar VAR_0x8005, 1 - special CallBattlePikeFunction +BattleFrontier_BattlePikeThreePathRoom_EventScript_RoomWarp:: @ 82C3F6F + battlepike_getstreak addvar VAR_RESULT, 1 - setvar VAR_0x8004, BATTLE_PIKE_FUNC_SET_DATA - setvar VAR_0x8005, 1 - copyvar VAR_0x8006, VAR_RESULT - special CallBattlePikeFunction - setvar VAR_0x8004, FRONTIER_UTIL_FUNC_1 - setvar VAR_0x8005, 2 - special CallFrontierUtilFunc + battlepike_setstreak VAR_RESULT + frontier_getbattlenum addvar VAR_RESULT, 1 - setvar VAR_0x8004, FRONTIER_UTIL_FUNC_2 - setvar VAR_0x8005, 2 - copyvar VAR_0x8006, VAR_RESULT - special CallFrontierUtilFunc - setvar VAR_0x8004, BATTLE_PIKE_FUNC_SET_ROOM_TYPE - special CallBattlePikeFunction - setvar VAR_0x8004, BATTLE_PIKE_FUNC_GET_ROOM_TYPE - special CallBattlePikeFunction + frontier_setbattlenum VAR_RESULT + battlepike_setnextroom + battlepike_getroomtype switch VAR_RESULT - case 0, BattleFrontier_BattlePikeThreePathRoom_EventScript_2C4030 - case 1, BattleFrontier_BattlePikeThreePathRoom_EventScript_2C4030 - case 2, BattleFrontier_BattlePikeThreePathRoom_EventScript_2C4030 - case 3, BattleFrontier_BattlePikeThreePathRoom_EventScript_2C4030 - case 4, BattleFrontier_BattlePikeThreePathRoom_EventScript_2C4030 - case 5, BattleFrontier_BattlePikeThreePathRoom_EventScript_2C4049 - case 6, BattleFrontier_BattlePikeThreePathRoom_EventScript_2C4030 - case 7, BattleFrontier_BattlePikeThreePathRoom_EventScript_2C4030 - case 8, BattleFrontier_BattlePikeThreePathRoom_EventScript_2C4030 - end - -BattleFrontier_BattlePikeThreePathRoom_EventScript_2C4030:: @ 82C4030 - applymovement EVENT_OBJ_ID_PLAYER, BattleFrontier_BattlePikeThreePathRoom_Movement_2C427A + case PIKE_ROOM_SINGLE_BATTLE, BattleFrontier_BattlePikeThreePathRoom_EventScript_WarpNPCRoom + case PIKE_ROOM_HEAL_FULL, BattleFrontier_BattlePikeThreePathRoom_EventScript_WarpNPCRoom + case PIKE_ROOM_NPC, BattleFrontier_BattlePikeThreePathRoom_EventScript_WarpNPCRoom + case PIKE_ROOM_STATUS, BattleFrontier_BattlePikeThreePathRoom_EventScript_WarpNPCRoom + case PIKE_ROOM_HEAL_PART, BattleFrontier_BattlePikeThreePathRoom_EventScript_WarpNPCRoom + case PIKE_ROOM_WILD_MONS, BattleFrontier_BattlePikeThreePathRoom_EventScript_WarpWildMonRoom + case PIKE_ROOM_HARD_BATTLE, BattleFrontier_BattlePikeThreePathRoom_EventScript_WarpNPCRoom + case PIKE_ROOM_DOUBLE_BATTLE, BattleFrontier_BattlePikeThreePathRoom_EventScript_WarpNPCRoom + case PIKE_ROOM_BRAIN, BattleFrontier_BattlePikeThreePathRoom_EventScript_WarpNPCRoom + end + +BattleFrontier_BattlePikeThreePathRoom_EventScript_WarpNPCRoom:: @ 82C4030 + applymovement EVENT_OBJ_ID_PLAYER, BattleFrontier_BattlePikeRoom_Movement_HidePlayer waitmovement 0 - call BattleFrontier_BattlePikeThreePathRoom_EventScript_25BB49 - warpsilent MAP_BATTLE_FRONTIER_BATTLE_PIKE_RANDOM_ROOM1, 255, 4, 7 + call BattleFrontier_BattlePike_EventScript_CloseCurtain + warpsilent MAP_BATTLE_FRONTIER_BATTLE_PIKE_ROOM_NORMAL, 255, 4, 7 waitstate end -BattleFrontier_BattlePikeThreePathRoom_EventScript_2C4049:: @ 82C4049 - applymovement EVENT_OBJ_ID_PLAYER, BattleFrontier_BattlePikeThreePathRoom_Movement_2C427A +BattleFrontier_BattlePikeThreePathRoom_EventScript_WarpWildMonRoom:: @ 82C4049 + applymovement EVENT_OBJ_ID_PLAYER, BattleFrontier_BattlePikeRoom_Movement_HidePlayer waitmovement 0 - call BattleFrontier_BattlePikeThreePathRoom_EventScript_25BB49 - warpsilent MAP_BATTLE_FRONTIER_BATTLE_PIKE_RANDOM_ROOM3, 255, 4, 19 + call BattleFrontier_BattlePike_EventScript_CloseCurtain + warpsilent MAP_BATTLE_FRONTIER_BATTLE_PIKE_ROOM_WILD_MONS, 255, 4, 19 waitstate end @@ -149,164 +134,122 @@ BattleFrontier_BattlePikeThreePathRoom_EventScript_2C406D:: @ 82C406D setvar VAR_TEMP_3, 0 setvar VAR_TEMP_2, 0 lockall - msgbox BattleFrontier_BattlePikeThreePathRoom_Text_25CE36, MSGBOX_DEFAULT + msgbox BattleFrontier_BattlePike_Text_PathBlockedNoTurningBack, MSGBOX_DEFAULT closemessage end -BattleFrontier_BattlePikeRandomRoom1_EventScript_2C4082:: @ 82C4082 +BattleFrontier_BattlePikeRoomNormal_EventScript_2C4082:: @ 82C4082 setvar VAR_TEMP_3, 1 setvar VAR_TEMP_2, 1 end -BattleFrontier_BattlePikeRandomRoom1_EventScript_2C408D:: @ 82C408D +BattleFrontier_BattlePikeRoomNormal_EventScript_2C408D:: @ 82C408D setvar VAR_TEMP_3, 0 setvar VAR_TEMP_2, 0 lockall - msgbox BattleFrontier_BattlePikeRandomRoom1_Text_25CE36, MSGBOX_DEFAULT + msgbox BattleFrontier_BattlePike_Text_PathBlockedNoTurningBack, MSGBOX_DEFAULT closemessage end -BattleFrontier_BattlePikeRandomRoom1_EventScript_2C40A2:: @ 82C40A2 - setvar VAR_0x8004, BATTLE_PIKE_FUNC_CAN_PARTY_BE_HEALED - special CallBattlePikeFunction - compare VAR_RESULT, 1 - call_if_eq BattleFrontier_BattlePikeRandomRoom1_EventScript_2C4128 - compare VAR_RESULT, 1 - call_if_ne BattleFrontier_BattlePikeRandomRoom1_EventScript_2C4136 - setvar VAR_0x8004, BATTLE_PIKE_FUNC_GET_DATA - setvar VAR_0x8005, 1 - special CallBattlePikeFunction +BattleFrontier_BattlePikeRoomNormal_EventScript_Exit:: @ 82C40A2 + battlepike_ispartyfullhealth + compare VAR_RESULT, TRUE + call_if_eq BattleFrontier_BattlePikeRoom_EventScript_DisableHealing + compare VAR_RESULT, TRUE + call_if_ne BattleFrontier_BattlePikeRoom_EventScript_EnableHealing + battlepike_getstreak addvar VAR_RESULT, 1 - setvar VAR_0x8004, BATTLE_PIKE_FUNC_SET_DATA - setvar VAR_0x8005, 1 - copyvar VAR_0x8006, VAR_RESULT - special CallBattlePikeFunction - setvar VAR_0x8004, FRONTIER_UTIL_FUNC_1 - setvar VAR_0x8005, 2 - special CallFrontierUtilFunc + battlepike_setstreak VAR_RESULT + frontier_getbattlenum addvar VAR_RESULT, 1 - setvar VAR_0x8004, FRONTIER_UTIL_FUNC_2 - setvar VAR_0x8005, 2 - copyvar VAR_0x8006, VAR_RESULT - special CallFrontierUtilFunc - setvar VAR_0x8004, BATTLE_PIKE_FUNC_IN_FINAL_ROOM - special CallBattlePikeFunction - compare VAR_RESULT, 1 - call_if_eq BattleFrontier_BattlePikeRandomRoom1_EventScript_2C4144 - compare VAR_RESULT, 0 - call_if_eq BattleFrontier_BattlePikeRandomRoom1_EventScript_2C415C + frontier_setbattlenum VAR_RESULT + battlepike_isfinalroom + compare VAR_RESULT, TRUE + call_if_eq BattleFrontier_BattlePikeRoom_EventScript_WarpToFinalRoom + compare VAR_RESULT, FALSE + call_if_eq BattleFrontier_BattlePikeRoom_EventScript_WarpToThreePathRoom waitstate end -BattleFrontier_BattlePikeRandomRoom1_EventScript_2C4128:: @ 82C4128 -BattleFrontier_BattlePikeRandomRoom3_EventScript_2C4128:: @ 82C4128 - setvar VAR_0x8004, BATTLE_PIKE_FUNC_SET_HEALING_ROOMS_DISABLED - setvar VAR_0x8005, 1 - special CallBattlePikeFunction +BattleFrontier_BattlePikeRoom_EventScript_DisableHealing:: @ 82C4128 + battlepike_nohealing TRUE return -BattleFrontier_BattlePikeRandomRoom1_EventScript_2C4136:: @ 82C4136 -BattleFrontier_BattlePikeRandomRoom3_EventScript_2C4136:: @ 82C4136 - setvar VAR_0x8004, BATTLE_PIKE_FUNC_SET_HEALING_ROOMS_DISABLED - setvar VAR_0x8005, 0 - special CallBattlePikeFunction +BattleFrontier_BattlePikeRoom_EventScript_EnableHealing:: @ 82C4136 + battlepike_nohealing FALSE return -BattleFrontier_BattlePikeRandomRoom1_EventScript_2C4144:: @ 82C4144 -BattleFrontier_BattlePikeRandomRoom3_EventScript_2C4144:: @ 82C4144 - applymovement EVENT_OBJ_ID_PLAYER, BattleFrontier_BattlePikeRandomRoom1_Movement_2C427A +BattleFrontier_BattlePikeRoom_EventScript_WarpToFinalRoom:: @ 82C4144 + applymovement EVENT_OBJ_ID_PLAYER, BattleFrontier_BattlePikeRoom_Movement_HidePlayer waitmovement 0 - call BattleFrontier_BattlePikeRandomRoom1_EventScript_25BB49 - warpsilent MAP_BATTLE_FRONTIER_BATTLE_PIKE_RANDOM_ROOM2, 255, 2, 7 + call BattleFrontier_BattlePike_EventScript_CloseCurtain + warpsilent MAP_BATTLE_FRONTIER_BATTLE_PIKE_ROOM_FINAL, 255, 2, 7 return -BattleFrontier_BattlePikeRandomRoom1_EventScript_2C415C:: @ 82C415C -BattleFrontier_BattlePikeRandomRoom3_EventScript_2C415C:: @ 82C415C - applymovement EVENT_OBJ_ID_PLAYER, BattleFrontier_BattlePikeRandomRoom1_Movement_2C427A +BattleFrontier_BattlePikeRoom_EventScript_WarpToThreePathRoom:: @ 82C415C + applymovement EVENT_OBJ_ID_PLAYER, BattleFrontier_BattlePikeRoom_Movement_HidePlayer waitmovement 0 - call BattleFrontier_BattlePikeRandomRoom1_EventScript_25BB49 + call BattleFrontier_BattlePike_EventScript_CloseCurtain warpsilent MAP_BATTLE_FRONTIER_BATTLE_PIKE_THREE_PATH_ROOM, 255, 6, 10 return -BattleFrontier_BattlePikeRandomRoom3_EventScript_2C4174:: @ 82C4174 - setvar VAR_0x8004,BATTLE_PIKE_FUNC_7 - special CallBattlePikeFunction - setvar VAR_0x8004, BATTLE_PIKE_FUNC_CAN_PARTY_BE_HEALED - special CallBattlePikeFunction - compare VAR_RESULT, 1 - call_if_eq BattleFrontier_BattlePikeRandomRoom3_EventScript_2C4128 - compare VAR_RESULT, 1 - call_if_ne BattleFrontier_BattlePikeRandomRoom3_EventScript_2C4136 - setvar VAR_0x8004, BATTLE_PIKE_FUNC_GET_DATA - setvar VAR_0x8005, 1 +BattleFrontier_BattlePikeRoomWildMons_EventScript_2C4174:: @ 82C4174 + setvar VAR_0x8004, BATTLE_PIKE_FUNC_7 special CallBattlePikeFunction + battlepike_ispartyfullhealth + compare VAR_RESULT, TRUE + call_if_eq BattleFrontier_BattlePikeRoom_EventScript_DisableHealing + compare VAR_RESULT, TRUE + call_if_ne BattleFrontier_BattlePikeRoom_EventScript_EnableHealing + battlepike_getstreak addvar VAR_RESULT, 1 - setvar VAR_0x8004, BATTLE_PIKE_FUNC_SET_DATA - setvar VAR_0x8005, 1 - copyvar VAR_0x8006, VAR_RESULT - special CallBattlePikeFunction - setvar VAR_0x8004, FRONTIER_UTIL_FUNC_1 - setvar VAR_0x8005, 2 - special CallFrontierUtilFunc + battlepike_setstreak VAR_RESULT + frontier_getbattlenum addvar VAR_RESULT, 1 - setvar VAR_0x8004, FRONTIER_UTIL_FUNC_2 - setvar VAR_0x8005, 2 - copyvar VAR_0x8006, VAR_RESULT - special CallFrontierUtilFunc - setvar VAR_0x8004, BATTLE_PIKE_FUNC_IN_FINAL_ROOM - special CallBattlePikeFunction - compare VAR_RESULT, 1 - call_if_eq BattleFrontier_BattlePikeRandomRoom3_EventScript_2C4144 - compare VAR_RESULT, 0 - call_if_eq BattleFrontier_BattlePikeRandomRoom3_EventScript_2C415C + frontier_setbattlenum VAR_RESULT + battlepike_isfinalroom + compare VAR_RESULT, TRUE + call_if_eq BattleFrontier_BattlePikeRoom_EventScript_WarpToFinalRoom + compare VAR_RESULT, FALSE + call_if_eq BattleFrontier_BattlePikeRoom_EventScript_WarpToThreePathRoom waitstate end -BattleFrontier_BattlePikeRandomRoom3_EventScript_2C4202:: @ 82C4202 +BattleFrontier_BattlePikeRoomWildMons_EventScript_2C4202:: @ 82C4202 setvar VAR_TEMP_3, 1 setvar VAR_TEMP_2, 1 end -BattleFrontier_BattlePikeRandomRoom3_EventScript_2C420D:: @ 82C420D +BattleFrontier_BattlePikeRoomWildMons_EventScript_2C420D:: @ 82C420D setvar VAR_TEMP_3, 0 setvar VAR_TEMP_2, 0 lockall - msgbox BattleFrontier_BattlePikeRandomRoom3_Text_25CE36, MSGBOX_DEFAULT + msgbox BattleFrontier_BattlePike_Text_PathBlockedNoTurningBack, MSGBOX_DEFAULT closemessage end BattleFrontier_BattlePike_EventScript_Retire:: @ 82C4222 - setvar VAR_0x8004, FRONTIER_UTIL_FUNC_2 - setvar VAR_0x8005, 0 - setvar VAR_0x8006, 4 - special CallFrontierUtilFunc + frontier_setchallengestatus CHALLENGE_STATUS_LOST warp MAP_BATTLE_FRONTIER_BATTLE_PIKE_LOBBY, 255, 5, 6 waitstate end -BattleFrontier_BattlePikeRandomRoom1_MapScript1_2C423E: @ 82C423E -BattleFrontier_BattlePikeThreePathRoom_MapScript1_2C423E: @ 82C423E +BattleFrontier_BattlePikeRoom_OnResume: @ 82C423E setorcopyvar VAR_0x8006, VAR_RESULT - setvar VAR_0x8004, FRONTIER_UTIL_FUNC_1 - setvar VAR_0x8005, 0 - special CallFrontierUtilFunc + frontier_getchallengestatus compare VAR_RESULT, 2 goto_if_eq BattleFrontier_BattlePikeThreePathRoom_EventScript_2C426B compare VAR_RESULT, 1 goto_if_eq BattleFrontier_BattlePikeThreePathRoom_EventScript_2C426B - call BattleFrontier_BattlePikeThreePathRoom_EventScript_2C4271 - + call BattleFrontier_BattlePikeRoom_EventScript_ResetSketchedMoves BattleFrontier_BattlePikeThreePathRoom_EventScript_2C426B:: @ 82C426B setorcopyvar VAR_RESULT, VAR_0x8006 end -BattleFrontier_BattlePikeRandomRoom3_EventScript_2C4271:: @ 82C4271 -BattleFrontier_BattlePikeThreePathRoom_EventScript_2C4271:: @ 82C4271 - setvar VAR_0x8004, FRONTIER_UTIL_FUNC_21 - special CallFrontierUtilFunc +BattleFrontier_BattlePikeRoom_EventScript_ResetSketchedMoves:: @ 82C4271 + frontier_resetsketch return -BattleFrontier_BattlePikeRandomRoom1_Movement_2C427A: @ 82C427A -BattleFrontier_BattlePikeThreePathRoom_Movement_2C427A: @ 82C427A +BattleFrontier_BattlePikeRoom_Movement_HidePlayer: @ 82C427A set_invisible step_end diff --git a/data/scripts/trainer_hill.inc b/data/scripts/trainer_hill.inc index 805c63264..c655a3c9c 100644 --- a/data/scripts/trainer_hill.inc +++ b/data/scripts/trainer_hill.inc @@ -2,9 +2,7 @@ TrainerHill_OnResume: @ 82C8336 setvar VAR_TEMP_2, 0 setvar VAR_0x8004, TRAINER_HILL_FUNC_RESUME_TIMER special CallTrainerHillFunction - setvar VAR_0x8004, FRONTIER_UTIL_FUNC_1 - setvar VAR_0x8005, 5 - special CallFrontierUtilFunc + frontier_getbattleoutcome compare VAR_RESULT, B_OUTCOME_LOST goto_if_eq TrainerHill_1F_EventScript_Lost compare VAR_RESULT, B_OUTCOME_DREW diff --git a/data/text/frontier_brain.inc b/data/text/frontier_brain.inc index 3a9c897f0..3bce8076e 100644 --- a/data/text/frontier_brain.inc +++ b/data/text/frontier_brain.inc @@ -1,101 +1,108 @@ -gText_082C843F:: @ 82C843F +@ Battle Tower +gText_AnabelWonSilver:: @ 82C843F .string "It's very disappointing…$" -gText_082C8458:: @ 82C8458 +gText_AnabelDefeatSilver:: @ 82C8458 .string "Okay, I understand…$" -gText_082C846C:: @ 82C846C +gText_AnabelWonGold:: @ 82C846C .string "I'm terribly sorry…$" -gText_082C8480:: @ 82C8480 +gText_AnabelDefeatGold:: @ 82C8480 .string "Thank you…$" -gText_082C848B:: @ 82C848B +@ Battle Dome +gText_TuckerWonSilver:: @ 82C848B .string "Ahahaha! Aren't you embarrassed?\n" .string "Everyone's watching!$" -gText_082C84C1:: @ 82C84C1 +gText_TuckerDefeatSilver:: @ 82C84C1 .string "Grr…\n" .string "What the…$" -gText_082C84D0:: @ 82C84D0 +gText_TuckerWonGold:: @ 82C84D0 .string "My DOME ACE title isn't just for show!$" -gText_082C84F7:: @ 82C84F7 +gText_TuckerDefeatGold:: @ 82C84F7 .string "Ahahaha!\n" .string "You're inspiring!$" -gText_082C8512:: @ 82C8512 +@ Battle Factory +gText_NolandWonSilver:: @ 82C8512 .string "Way to work!\n" .string "That was a good lesson, eh?$" -gText_082C853B:: @ 82C853B +gText_NolandDefeatSilver:: @ 82C853B .string "Good job!\n" .string "You know what you're doing!$" -gText_082C8561:: @ 82C8561 +gText_NolandWonGold:: @ 82C8561 .string "Hey, hey, hey!\n" .string "You're finished already?$" -gText_082C8589:: @ 82C8589 +gText_NolandDefeatGold:: @ 82C8589 .string "What happened here?$" -gText_082C859D:: @ 82C859D +@ Battle Pike +gText_LucyWonSilver:: @ 82C859D .string "Humph…$" -gText_082C85A4:: @ 82C85A4 +gText_LucyDefeatSilver:: @ 82C85A4 .string "Urk…$" -gText_082C85A9:: @ 82C85A9 +gText_LucyWonGold:: @ 82C85A9 .string "Hah!$" -gText_082C85AE:: @ 82C85AE +gText_LucyDefeatGold:: @ 82C85AE .string "Darn!$" -gText_082C85B4:: @ 82C85B4 +@ Battle Arena +gText_GretaWonSilver:: @ 82C85B4 .string "Oh, come on!\n" .string "You have to try harder than that!$" -gText_082C85E3:: @ 82C85E3 +gText_GretaDefeatSilver:: @ 82C85E3 .string "No way!\n" .string "Good job!$" -gText_082C85F5:: @ 82C85F5 +gText_GretaWonGold:: @ 82C85F5 .string "Heheh!\n" .string "What did you expect?$" -gText_082C8611:: @ 82C8611 +gText_GretaDefeatGold:: @ 82C8611 .string "Huh?\n" .string "Are you serious?!$" -gText_082C8628:: @ 82C8628 +@ Battle Palace +gText_SpenserWonSilver:: @ 82C8628 .string "Your POKéMON are wimpy because\n" .string "you're wimpy as a TRAINER!$" -gText_082C8662:: @ 82C8662 +gText_SpenserDefeatSilver:: @ 82C8662 .string "Ah…\n" .string "Now this is something else…$" -gText_082C8682:: @ 82C8682 +gText_SpenserWonGold:: @ 82C8682 .string "Gwahahaha!\n" .string "My brethren, we have nothing to fear!$" -gText_082C86B3:: @ 82C86B3 +gText_SpenserDefeatGold:: @ 82C86B3 .string "Gwah!\n" .string "Hahahaha!$" -gText_082C86C3:: @ 82C86C3 +@ Battle Pyramid +gText_BrandonWonSilver:: @ 82C86C3 .string "Hey! What's wrong with you!\n" .string "Let's see some effort! Get up!$" -gText_082C86FE:: @ 82C86FE +gText_BrandonDefeatSilver:: @ 82C86FE .string "That's it! You've done great!\n" .string "You've worked hard for this!$" -gText_082C8739:: @ 82C8739 +gText_BrandonWonGold:: @ 82C8739 .string "Hey! Don't you give up now!\n" .string "Get up! Don't lose faith in yourself!$" -gText_082C877B:: @ 82C877B +gText_BrandonDefeatGold:: @ 82C877B .string "That's it! You've done it!\n" .string "You kept working for this!$" diff --git a/include/constants/battle_frontier.h b/include/constants/battle_frontier.h index 54d50c18a..7fcebb452 100644 --- a/include/constants/battle_frontier.h +++ b/include/constants/battle_frontier.h @@ -12,7 +12,8 @@ #define FRONTIER_FACILITY_PIKE 5 #define FRONTIER_FACILITY_PYRAMID 6 #define NUM_FRONTIER_FACILITIES 7 -// The multiplayer battle colosseum rooms re-use VAR_FRONTIER_FACILITY. +// VAR_FRONTIER_FACILITY is re-used for the below facilities as well +#define FACILITY_LINK_CONTEST 7 #define FACILITY_UNION_ROOM 8 #define FACILITY_MULTI_OR_EREADER 9 // Direct Corner multi battles, multi battle with Steven, and e-Reader battles @@ -21,15 +22,23 @@ #define TENT_SLATEPORT 4 // Battle Frontier lvl modes. -#define FRONTIER_LVL_50 0 +#define FRONTIER_LVL_50 0 #define FRONTIER_LVL_OPEN 1 #define FRONTIER_LVL_TENT 2 // Battle Frontier battle modes. -#define FRONTIER_MODE_SINGLES 0 -#define FRONTIER_MODE_DOUBLES 1 -#define FRONTIER_MODE_MULTIS 2 -#define FRONTIER_MODE_LINK_MULTIS 3 +#define FRONTIER_MODE_SINGLES 0 +#define FRONTIER_MODE_DOUBLES 1 +#define FRONTIER_MODE_MULTIS 2 +#define FRONTIER_MODE_LINK_MULTIS 3 +#define FRONTIER_MODE_COUNT 4 + +// TODO +#define CHALLENGE_STATUS_INACTIVE 0 +#define CHALLENGE_STATUS_CANCEL 1 +#define CHALLENGE_STATUS_ONGOING 2 +#define CHALLENGE_STATUS_WON 3 +#define CHALLENGE_STATUS_LOST 4 // Special trainer battles. #define SPECIAL_BATTLE_TOWER 0 @@ -86,9 +95,6 @@ #define FRONTIER_GAMBLER_CHALLENGE_COUNT 12 -// For 'ShowFacilityResultsWindow' function which is a part of the 'CallFrontierUtilFunc' special. -#define RESULTS_LINK_CONTEST 7 - #define EXCHANGE_CORNER_DECOR1_CLERK 0 #define EXCHANGE_CORNER_DECOR2_CLERK 1 #define EXCHANGE_CORNER_VITAMIN_CLERK 2 diff --git a/include/constants/battle_pike.h b/include/constants/battle_pike.h index e92c4a006..4fb20550e 100644 --- a/include/constants/battle_pike.h +++ b/include/constants/battle_pike.h @@ -10,6 +10,17 @@ #define PIKE_ROOM_HARD_BATTLE 6 #define PIKE_ROOM_DOUBLE_BATTLE 7 #define PIKE_ROOM_BRAIN 8 +#define NUM_PIKE_ROOM_TYPES 9 + +#define PIKE_ROOM_LEFT 0 +#define PIKE_ROOM_CENTER 1 +#define PIKE_ROOM_RIGHT 2 + +#define PIKE_HINT_NOSTALGIA 0 +#define PIKE_HINT_WHISPERING 1 +#define PIKE_HINT_POKEMON 2 +#define PIKE_HINT_PEOPLE 3 +#define PIKE_HINT_BRAIN 4 // For the room with a status effect. #define PIKE_STATUS_KIRLIA 0 @@ -19,8 +30,8 @@ #define BATTLE_PIKE_FUNC_SET_ROOM_TYPE 0 #define BATTLE_PIKE_FUNC_GET_DATA 1 #define BATTLE_PIKE_FUNC_SET_DATA 2 -#define BATTLE_PIKE_FUNC_IN_FINAL_ROOM 3 -#define BATTLE_PIKE_FUNC_SET_UP_ROOM_OBJECTS 4 +#define BATTLE_PIKE_FUNC_IS_FINAL_ROOM 3 +#define BATTLE_PIKE_FUNC_SET_ROOM_OBJECTS 4 #define BATTLE_PIKE_FUNC_GET_ROOM_TYPE 5 #define BATTLE_PIKE_FUNC_6 6 #define BATTLE_PIKE_FUNC_7 7 @@ -34,14 +45,14 @@ #define BATTLE_PIKE_FUNC_STATUS_SCREEN_FADE 15 #define BATTLE_PIKE_FUNC_IS_IN 16 #define BATTLE_PIKE_FUNC_SET_HINT_ROOM 17 -#define BATTLE_PIKE_FUNC_SET_HINT_ROOM_ID 18 +#define BATTLE_PIKE_FUNC_GET_HINT_ROOM_ID 18 #define BATTLE_PIKE_FUNC_GET_ROOM_TYPE_HINT 19 #define BATTLE_PIKE_FUNC_CLEAR_TRAINER_IDS 20 #define BATTLE_PIKE_FUNC_BUFFER_RECORD_MIX_MSG 21 #define BATTLE_PIKE_FUNC_GET_QUEEN_FIGHT_TYPE 22 #define BATTLE_PIKE_FUNC_HEAL_MONS_BEFORE_QUEEN 23 #define BATTLE_PIKE_FUNC_SET_HEALING_ROOMS_DISABLED 24 -#define BATTLE_PIKE_FUNC_CAN_PARTY_BE_HEALED 25 +#define BATTLE_PIKE_FUNC_IS_PARTY_FULL_HEALTH 25 #define BATTLE_PIKE_FUNC_SAVE_MON_HELD_ITEMS 26 #define BATTLE_PIKE_FUNC_LOAD_MON_HELD_ITEMS 27 #define BATTLE_PIKE_FUNC_INIT_CHALLENGE 28 diff --git a/include/constants/frontier_util.h b/include/constants/frontier_util.h index 52bde509f..4a4804995 100644 --- a/include/constants/frontier_util.h +++ b/include/constants/frontier_util.h @@ -5,16 +5,24 @@ #define FRONTIER_PLAYER_LOST_TEXT 1 #define FRONTIER_PLAYER_WON_TEXT 2 -#define FRONTIER_UTIL_FUNC_0 0 -#define FRONTIER_UTIL_FUNC_1 1 -#define FRONTIER_UTIL_FUNC_2 2 +// return values for GetFrontierBrainStatus +#define FRONTIER_BRAIN_NOT_READY 0 +#define FRONTIER_BRAIN_SILVER 1 +#define FRONTIER_BRAIN_GOLD 2 +#define FRONTIER_BRAIN_STREAK 3 // for encountering the brain after getting both symbols +#define FRONTIER_BRAIN_STREAK_LONG 4 // + + +#define FRONTIER_UTIL_FUNC_GET_STATUS 0 +#define FRONTIER_UTIL_FUNC_GET_DATA 1 +#define FRONTIER_UTIL_FUNC_SET_DATA 2 #define FRONTIER_UTIL_FUNC_LOAD_SELECTED_PARTY 3 #define FRONTIER_UTIL_FUNC_SOFT_RESET 4 #define FRONTIER_UTIL_FUNC_SET_FRONTIER_TRAINERS 5 #define FRONTIER_UTIL_FUNC_6 6 #define FRONTIER_UTIL_FUNC_RESULTS_WINDOW 7 #define FRONTIER_UTIL_FUNC_8 8 -#define FRONTIER_UTIL_FUNC_9 9 +#define FRONTIER_UTIL_FUNC_GET_BRAIN_STATUS 9 #define FRONTIER_UTIL_FUNC_IS_FRONTIER_BRAIN 10 #define FRONTIER_UTIL_FUNC_11 11 #define FRONTIER_UTIL_FUNC_GET_FACILITY_SYMBOLS 12 @@ -26,7 +34,16 @@ #define FRONTIER_UTIL_FUNC_18 18 #define FRONTIER_UTIL_FUNC_19 19 #define FRONTIER_UTIL_FUNC_BUFFER_TRAINER_NAME 20 -#define FRONTIER_UTIL_FUNC_21 21 +#define FRONTIER_UTIL_FUNC_RESET_SKETCH_MOVES 21 #define FRONTIER_UTIL_FUNC_SET_BRAIN_OBJECT 22 +#define FRONTIER_DATA_CHALLENGE_STATUS 0 +#define FRONTIER_DATA_LVL_MODE 1 +#define FRONTIER_DATA_BATTLE_NUM 2 +#define FRONTIER_DATA_3 3 +#define FRONTIER_DATA_4 4 +#define FRONTIER_DATA_BATTLE_OUTCOME 5 +#define FRONTIER_DATA_6 6 +#define FRONTIER_DATA_SYMBOL 7 + #endif // GUARD_CONSTANTS_FRONTIER_UTIL_H diff --git a/include/constants/layouts.h b/include/constants/layouts.h index fe905a2c6..ba20cb3a5 100755 --- a/include/constants/layouts.h +++ b/include/constants/layouts.h @@ -352,13 +352,13 @@ #define LAYOUT_BATTLE_FRONTIER_BATTLE_PIKE_LOBBY 349 #define LAYOUT_BATTLE_FRONTIER_BATTLE_PIKE_CORRIDOR 350 #define LAYOUT_BATTLE_FRONTIER_BATTLE_PIKE_THREE_PATH_ROOM 351 -#define LAYOUT_BATTLE_FRONTIER_BATTLE_PIKE_RANDOM_ROOM1 352 -#define LAYOUT_BATTLE_FRONTIER_BATTLE_PIKE_RANDOM_ROOM2 353 +#define LAYOUT_BATTLE_FRONTIER_BATTLE_PIKE_ROOM_NORMAL 352 +#define LAYOUT_BATTLE_FRONTIER_BATTLE_PIKE_ROOM_FINAL 353 #define LAYOUT_BATTLE_FRONTIER_BATTLE_ARENA_LOBBY 354 #define LAYOUT_BATTLE_FRONTIER_BATTLE_ARENA_CORRIDOR 355 #define LAYOUT_BATTLE_FRONTIER_BATTLE_ARENA_BATTLE_ROOM 356 #define LAYOUT_SOOTOPOLIS_CITY_LEGENDS_BATTLE 357 -#define LAYOUT_BATTLE_FRONTIER_BATTLE_PIKE_RANDOM_ROOM3 358 +#define LAYOUT_BATTLE_FRONTIER_BATTLE_PIKE_ROOM_WILD_MONS 358 #define LAYOUT_UNKNOWN_084693AC 359 #define LAYOUT_BATTLE_FRONTIER_BATTLE_PYRAMID_LOBBY 360 #define LAYOUT_BATTLE_FRONTIER_BATTLE_PYRAMID_EMPTY_SQUARE 361 diff --git a/include/constants/map_groups.h b/include/constants/map_groups.h index bedaaca2a..14b3f1d56 100755 --- a/include/constants/map_groups.h +++ b/include/constants/map_groups.h @@ -498,9 +498,9 @@ #define MAP_BATTLE_FRONTIER_BATTLE_PIKE_LOBBY (34 | (26 << 8)) #define MAP_BATTLE_FRONTIER_BATTLE_PIKE_CORRIDOR (35 | (26 << 8)) #define MAP_BATTLE_FRONTIER_BATTLE_PIKE_THREE_PATH_ROOM (36 | (26 << 8)) -#define MAP_BATTLE_FRONTIER_BATTLE_PIKE_RANDOM_ROOM1 (37 | (26 << 8)) -#define MAP_BATTLE_FRONTIER_BATTLE_PIKE_RANDOM_ROOM2 (38 | (26 << 8)) -#define MAP_BATTLE_FRONTIER_BATTLE_PIKE_RANDOM_ROOM3 (39 | (26 << 8)) +#define MAP_BATTLE_FRONTIER_BATTLE_PIKE_ROOM_NORMAL (37 | (26 << 8)) +#define MAP_BATTLE_FRONTIER_BATTLE_PIKE_ROOM_FINAL (38 | (26 << 8)) +#define MAP_BATTLE_FRONTIER_BATTLE_PIKE_ROOM_WILD_MONS (39 | (26 << 8)) #define MAP_BATTLE_FRONTIER_RANKING_HALL (40 | (26 << 8)) #define MAP_BATTLE_FRONTIER_LOUNGE1 (41 | (26 << 8)) #define MAP_BATTLE_FRONTIER_EXCHANGE_SERVICE_CORNER (42 | (26 << 8)) diff --git a/include/frontier_util.h b/include/frontier_util.h index 627b5bef5..adea712e0 100644 --- a/include/frontier_util.h +++ b/include/frontier_util.h @@ -2,7 +2,7 @@ #define GUARD_FRONTIER_UTIL_H void CallFrontierUtilFunc(void); -u8 sub_81A3610(void); +u8 GetFrontierBrainStatus(void); void CopyFrontierTrainerText(u8 whichText, u16 trainerId); void sub_81A3908(void); u32 GetCurrentFacilityWinStreak(void); diff --git a/include/global.h b/include/global.h index d33be5d82..bcb77aaaf 100644 --- a/include/global.h +++ b/include/global.h @@ -323,7 +323,7 @@ struct BattleFrontier /*0xBE3*/ u8 field_BE0[POKEMON_NAME_LENGTH + 1]; /*0xBEB*/ u8 field_BEB; /*0xBEC*/ struct BattleTowerEReaderTrainer ereaderTrainer; - /*0xCA8*/ u8 field_CA8; + /*0xCA8*/ u8 challengeOutcome; /*0xCA9*/ u8 lvlMode:2; // 0x1, 0x2 -> 0x3 /*0xCA9*/ u8 field_CA9_a:1; // 0x4 /*0xCA9*/ u8 field_CA9_b:1; // 0x8 @@ -338,7 +338,7 @@ struct BattleFrontier /*0xCDC*/ u32 field_CDC; /*0xCE0*/ u16 towerWinStreaks[4][2]; /*0xCF0*/ u16 towerRecordWinStreaks[4][2]; - /*0xD00*/ u16 field_D00; + /*0xD00*/ u16 symbolFlags; /*0xD02*/ u16 field_D02; /*0xD04*/ u16 field_D04; /*0xD06*/ u8 field_D06; diff --git a/include/strings.h b/include/strings.h index 43b87e888..9eddf1a0e 100644 --- a/include/strings.h +++ b/include/strings.h @@ -1326,34 +1326,35 @@ extern const u8 gText_FrontierFacilityRoomsCleared[]; extern const u8 gText_FrontierFacilityKOsStreak[]; extern const u8 gText_FrontierFacilityFloorsCleared[]; -extern const u8 gText_082C843F[]; -extern const u8 gText_082C848B[]; -extern const u8 gText_082C8628[]; -extern const u8 gText_082C85B4[]; -extern const u8 gText_082C8512[]; -extern const u8 gText_082C859D[]; -extern const u8 gText_082C86C3[]; -extern const u8 gText_082C8458[]; -extern const u8 gText_082C84C1[]; -extern const u8 gText_082C8662[]; -extern const u8 gText_082C85E3[]; -extern const u8 gText_082C853B[]; -extern const u8 gText_082C85A4[]; -extern const u8 gText_082C86FE[]; -extern const u8 gText_082C846C[]; -extern const u8 gText_082C84D0[]; -extern const u8 gText_082C8682[]; -extern const u8 gText_082C85F5[]; -extern const u8 gText_082C8561[]; -extern const u8 gText_082C85A9[]; -extern const u8 gText_082C8739[]; -extern const u8 gText_082C8480[]; -extern const u8 gText_082C84F7[]; -extern const u8 gText_082C86B3[]; -extern const u8 gText_082C8611[]; -extern const u8 gText_082C8589[]; -extern const u8 gText_082C85AE[]; -extern const u8 gText_082C877B[]; +// Frontier Brain +extern const u8 gText_AnabelWonSilver[]; +extern const u8 gText_TuckerWonSilver[]; +extern const u8 gText_SpenserWonSilver[]; +extern const u8 gText_GretaWonSilver[]; +extern const u8 gText_NolandWonSilver[]; +extern const u8 gText_LucyWonSilver[]; +extern const u8 gText_BrandonWonSilver[]; +extern const u8 gText_AnabelDefeatSilver[]; +extern const u8 gText_TuckerDefeatSilver[]; +extern const u8 gText_SpenserDefeatSilver[]; +extern const u8 gText_GretaDefeatSilver[]; +extern const u8 gText_NolandDefeatSilver[]; +extern const u8 gText_LucyDefeatSilver[]; +extern const u8 gText_BrandonDefeatSilver[]; +extern const u8 gText_AnabelWonGold[]; +extern const u8 gText_TuckerWonGold[]; +extern const u8 gText_SpenserWonGold[]; +extern const u8 gText_GretaWonGold[]; +extern const u8 gText_NolandWonGold[]; +extern const u8 gText_LucyWonGold[]; +extern const u8 gText_BrandonWonGold[]; +extern const u8 gText_AnabelDefeatGold[]; +extern const u8 gText_TuckerDefeatGold[]; +extern const u8 gText_SpenserDefeatGold[]; +extern const u8 gText_GretaDefeatGold[]; +extern const u8 gText_NolandDefeatGold[]; +extern const u8 gText_LucyDefeatGold[]; +extern const u8 gText_BrandonDefeatGold[]; // Battle Tower. extern const u8 BattleFrontier_BattleTowerMultiBattleRoom_Text_2479CE[]; diff --git a/src/battle_arena.c b/src/battle_arena.c index f785fa7c3..2f11b504b 100644 --- a/src/battle_arena.c +++ b/src/battle_arena.c @@ -786,7 +786,7 @@ static void InitArenaChallenge(void) bool32 isCurrent; u32 lvlMode = gSaveBlock2Ptr->frontier.lvlMode; - gSaveBlock2Ptr->frontier.field_CA8 = 0; + gSaveBlock2Ptr->frontier.challengeOutcome = 0; gSaveBlock2Ptr->frontier.curChallengeBattleNum = 0; gSaveBlock2Ptr->frontier.field_CA9_a = 0; gSaveBlock2Ptr->frontier.field_CA9_b = 0; @@ -856,7 +856,7 @@ static void SetArenaData(void) static void sub_81A5AC4(void) { - gSaveBlock2Ptr->frontier.field_CA8 = gSpecialVar_0x8005; + gSaveBlock2Ptr->frontier.challengeOutcome = gSpecialVar_0x8005; VarSet(VAR_TEMP_0, 0); gSaveBlock2Ptr->frontier.field_CA9_a = 1; sub_81A4C30(); diff --git a/src/battle_dome.c b/src/battle_dome.c index 9c63bba42..234df1947 100644 --- a/src/battle_dome.c +++ b/src/battle_dome.c @@ -30,6 +30,7 @@ #include "scanline_effect.h" #include "script_pokemon_util_80F87D8.h" #include "graphics.h" +#include "constants/frontier_util.h" #include "constants/species.h" #include "constants/moves.h" #include "constants/trainers.h" @@ -2261,7 +2262,7 @@ static void InitDomeChallenge(void) u32 lvlMode = gSaveBlock2Ptr->frontier.lvlMode; u32 battleMode = VarGet(VAR_FRONTIER_BATTLE_MODE); - gSaveBlock2Ptr->frontier.field_CA8 = 0; + gSaveBlock2Ptr->frontier.challengeOutcome = 0; gSaveBlock2Ptr->frontier.curChallengeBattleNum = 0; gSaveBlock2Ptr->frontier.field_CA9_a = 0; gSaveBlock2Ptr->frontier.field_CA9_b = 0; @@ -2575,7 +2576,7 @@ static void InitDomeTrainers(void) } } - if (sub_81A3610()) + if (GetFrontierBrainStatus() != FRONTIER_BRAIN_NOT_READY) { for (i = 0; i < DOME_TOURNAMENT_TRAINERS_COUNT; i++) { @@ -3328,7 +3329,7 @@ static void SetDomeOpponentGraphicsId(void) static void sub_81902F8(void) { - gSaveBlock2Ptr->frontier.field_CA8 = gSpecialVar_0x8005; + gSaveBlock2Ptr->frontier.challengeOutcome = gSpecialVar_0x8005; VarSet(VAR_TEMP_0, 0); gSaveBlock2Ptr->frontier.field_CA9_a = 1; sub_81A4C30(); @@ -6016,7 +6017,7 @@ static void sub_8194F58(void) species[0] = 0; species[1] = 0; species[2] = 0; - if ((gSaveBlock2Ptr->frontier.field_D0A != -gSaveBlock2Ptr->frontier.field_D0B) && gSaveBlock2Ptr->frontier.field_CA8 != 1) + if ((gSaveBlock2Ptr->frontier.field_D0A != -gSaveBlock2Ptr->frontier.field_D0B) && gSaveBlock2Ptr->frontier.challengeOutcome != 1) return; statSums = AllocZeroed(sizeof(u16) * DOME_TOURNAMENT_TRAINERS_COUNT); diff --git a/src/battle_factory.c b/src/battle_factory.c index bc47b1fda..44a82b39c 100644 --- a/src/battle_factory.c +++ b/src/battle_factory.c @@ -187,7 +187,7 @@ static void InitFactoryChallenge(void) u32 lvlMode = gSaveBlock2Ptr->frontier.lvlMode; u32 battleMode = VarGet(VAR_FRONTIER_BATTLE_MODE); - gSaveBlock2Ptr->frontier.field_CA8 = 0; + gSaveBlock2Ptr->frontier.challengeOutcome = 0; gSaveBlock2Ptr->frontier.curChallengeBattleNum = 0; gSaveBlock2Ptr->frontier.field_CA9_a = 0; gSaveBlock2Ptr->frontier.field_CA9_b = 0; @@ -254,7 +254,7 @@ static void SetBattleFactoryData(void) static void sub_81A613C(void) { - gSaveBlock2Ptr->frontier.field_CA8 = gSpecialVar_0x8005; + gSaveBlock2Ptr->frontier.challengeOutcome = gSpecialVar_0x8005; VarSet(VAR_TEMP_0, 0); gSaveBlock2Ptr->frontier.field_CA9_a = 1; sub_81A4C30(); diff --git a/src/battle_palace.c b/src/battle_palace.c index fb8cc0729..61ccfedfd 100644 --- a/src/battle_palace.c +++ b/src/battle_palace.c @@ -62,7 +62,7 @@ static void sub_8195980(void) u32 lvlMode = gSaveBlock2Ptr->frontier.lvlMode; u32 battleMode = VarGet(VAR_FRONTIER_BATTLE_MODE); - gSaveBlock2Ptr->frontier.field_CA8 = 0; + gSaveBlock2Ptr->frontier.challengeOutcome = 0; gSaveBlock2Ptr->frontier.curChallengeBattleNum = 0; gSaveBlock2Ptr->frontier.field_CA9_a = 0; gSaveBlock2Ptr->frontier.field_CA9_b = 0; @@ -156,7 +156,7 @@ static void sub_8195C7C(void) static void sub_8195CE4(void) { - gSaveBlock2Ptr->frontier.field_CA8 = gSpecialVar_0x8005; + gSaveBlock2Ptr->frontier.challengeOutcome = gSpecialVar_0x8005; VarSet(VAR_TEMP_0, 0); gSaveBlock2Ptr->frontier.field_CA9_a = 1; sub_81A4C30(); diff --git a/src/battle_pike.c b/src/battle_pike.c index 36bf8dcbf..575c4235b 100644 --- a/src/battle_pike.c +++ b/src/battle_pike.c @@ -51,7 +51,7 @@ static u8 sNpcId; static void SetRoomType(void); static void GetBattlePikeData(void); static void SetBattlePikeData(void); -static void GetInFinalRoom(void); +static void IsNextRoomFinal(void); static void SetupRoomEventObjects(void); static void GetRoomType(void); static void sub_81A7400(void); @@ -72,8 +72,8 @@ static void ClearPikeTrainerIds(void); static void BufferRecordMixingTrainerMessage(void); static void GetCurrentRoomPikeQueenFightType(void); static void HealSomeMonsBeforePikeQueen(void); -static void SetHealingRoomsDisabled(void); -static void CanAnyPartyMonsBeHealed(void); +static void SetHealingroomTypesDisabled(void); +static void IsPartyFullHealed(void); static void BackupMonHeldItems(void); static void RestoreMonHeldItems(void); static void InitPikeChallenge(void); @@ -419,7 +419,7 @@ static const struct PikeRoomNPC sNPCTable[] = } }; -static const u16 sNPCSpeeches[][6] = +static const u16 sNPCSpeeches[][EASY_CHAT_BATTLE_WORDS_COUNT] = { {EC_WORD_I_AM, EC_WORD_LOST, EC_WORD_I, EC_WORD_NEED, EC_WORD_A, EC_MOVE2(HELPING_HAND)}, {EC_WORD_I_VE, EC_WORD_NO, EC_WORD_SENSE, EC_WORD_OF, EC_WORD_WHERE, EC_WORD_I_AM}, @@ -465,61 +465,61 @@ static const u16 sNPCSpeeches[][6] = {EC_MOVE2(TOXIC), EC_WORD_IS, EC_WORD_A, EC_WORD_TERRIBLE, EC_WORD_THING, EC_WORD_ISN_T_IT_QUES}, }; -// Only the 5th array in this data is used by the code. -static const u8 sPikeQueenWinStreakAppearances[][4] = +// Table duplicated from frontier_util, only Battle Pike entry used +static const u8 sFrontierBrainStreakAppearances[NUM_FRONTIER_FACILITIES][4] = { - {35, 70, 35, 1}, - { 4, 9, 5, 0}, - {21, 42, 21, 1}, - {28, 56, 28, 1}, - {21, 42, 21, 1}, - {28, 140, 56, 1}, - {21, 70, 35, 0}, + [FRONTIER_FACILITY_TOWER] = {35, 70, 35, 1}, + [FRONTIER_FACILITY_DOME] = { 4, 9, 5, 0}, + [FRONTIER_FACILITY_PALACE] = {21, 42, 21, 1}, + [FRONTIER_FACILITY_ARENA] = {28, 56, 28, 1}, + [FRONTIER_FACILITY_FACTORY] = {21, 42, 21, 1}, + [FRONTIER_FACILITY_PIKE] = {28, 140, 56, 1}, + [FRONTIER_FACILITY_PYRAMID] = {21, 70, 35, 0}, }; static void (* const sBattlePikeFunctions[])(void) = { - SetRoomType, - GetBattlePikeData, - SetBattlePikeData, - GetInFinalRoom, - SetupRoomEventObjects, - GetRoomType, - sub_81A7400, - sub_81A740C, - sub_81A7418, - nullsub_76, - nullsub_124, - GetRoomInflictedStatus, - GetRoomInflictedStatusMon, - HealOneOrTwoMons, - BufferNPCMessage, - StatusInflictionScreenFade, - GetInBattlePike, - SetHintedRoom, - GetHintedRoomIndex, - GetRoomTypeHint, - ClearPikeTrainerIds, - BufferRecordMixingTrainerMessage, - GetCurrentRoomPikeQueenFightType, - HealSomeMonsBeforePikeQueen, - SetHealingRoomsDisabled, - CanAnyPartyMonsBeHealed, - BackupMonHeldItems, - RestoreMonHeldItems, - InitPikeChallenge + [BATTLE_PIKE_FUNC_SET_ROOM_TYPE] = SetRoomType, + [BATTLE_PIKE_FUNC_GET_DATA] = GetBattlePikeData, + [BATTLE_PIKE_FUNC_SET_DATA] = SetBattlePikeData, + [BATTLE_PIKE_FUNC_IS_FINAL_ROOM] = IsNextRoomFinal, + [BATTLE_PIKE_FUNC_SET_ROOM_OBJECTS] = SetupRoomEventObjects, + [BATTLE_PIKE_FUNC_GET_ROOM_TYPE] = GetRoomType, + [BATTLE_PIKE_FUNC_6] = sub_81A7400, + [BATTLE_PIKE_FUNC_7] = sub_81A740C, + [BATTLE_PIKE_FUNC_8] = sub_81A7418, + [BATTLE_PIKE_FUNC_NULL_9] = nullsub_76, + [BATTLE_PIKE_FUNC_NULL_10] = nullsub_124, + [BATTLE_PIKE_FUNC_GET_ROOM_STATUS] = GetRoomInflictedStatus, + [BATTLE_PIKE_FUNC_GET_ROOM_STATUS_MON] = GetRoomInflictedStatusMon, + [BATTLE_PIKE_FUNC_HEAL_ONE_TWO_MONS] = HealOneOrTwoMons, + [BATTLE_PIKE_FUNC_BUFFER_NPC_MSG] = BufferNPCMessage, + [BATTLE_PIKE_FUNC_STATUS_SCREEN_FADE] = StatusInflictionScreenFade, + [BATTLE_PIKE_FUNC_IS_IN] = GetInBattlePike, + [BATTLE_PIKE_FUNC_SET_HINT_ROOM] = SetHintedRoom, + [BATTLE_PIKE_FUNC_GET_HINT_ROOM_ID] = GetHintedRoomIndex, + [BATTLE_PIKE_FUNC_GET_ROOM_TYPE_HINT] = GetRoomTypeHint, + [BATTLE_PIKE_FUNC_CLEAR_TRAINER_IDS] = ClearPikeTrainerIds, + [BATTLE_PIKE_FUNC_BUFFER_RECORD_MIX_MSG] = BufferRecordMixingTrainerMessage, + [BATTLE_PIKE_FUNC_GET_QUEEN_FIGHT_TYPE] = GetCurrentRoomPikeQueenFightType, + [BATTLE_PIKE_FUNC_HEAL_MONS_BEFORE_QUEEN] = HealSomeMonsBeforePikeQueen, + [BATTLE_PIKE_FUNC_SET_HEALING_ROOMS_DISABLED] = SetHealingroomTypesDisabled, + [BATTLE_PIKE_FUNC_IS_PARTY_FULL_HEALTH] = IsPartyFullHealed, + [BATTLE_PIKE_FUNC_SAVE_MON_HELD_ITEMS] = BackupMonHeldItems, + [BATTLE_PIKE_FUNC_LOAD_MON_HELD_ITEMS] = RestoreMonHeldItems, + [BATTLE_PIKE_FUNC_INIT_CHALLENGE] = InitPikeChallenge }; static const u8 sRoomTypeHints[] = { - 3, // PIKE_ROOM_SINGLE_BATTLE - 3, // PIKE_ROOM_HEAL_FULL - 1, // PIKE_ROOM_NPC - 0, // PIKE_ROOM_STATUS - 0, // PIKE_ROOM_HEAL_PART - 2, // PIKE_ROOM_WILD_MONS - 2, // PIKE_ROOM_HARD_BATTLE - 1, // PIKE_ROOM_DOUBLE_BATTLE - 4, // PIKE_ROOM_BRAIN + PIKE_HINT_PEOPLE, // PIKE_ROOM_SINGLE_BATTLE + PIKE_HINT_PEOPLE, // PIKE_ROOM_HEAL_FULL + PIKE_HINT_WHISPERING, // PIKE_ROOM_NPC + PIKE_HINT_NOSTALGIA, // PIKE_ROOM_STATUS + PIKE_HINT_NOSTALGIA, // PIKE_ROOM_HEAL_PART + PIKE_HINT_POKEMON, // PIKE_ROOM_WILD_MONS + PIKE_HINT_POKEMON, // PIKE_ROOM_HARD_BATTLE + PIKE_HINT_WHISPERING, // PIKE_ROOM_DOUBLE_BATTLE + PIKE_HINT_BRAIN, // PIKE_ROOM_BRAIN }; static const u8 sNumMonsToHealBeforePikeQueen[][3] = @@ -683,7 +683,7 @@ static void SetBattlePikeData(void) } } -static void GetInFinalRoom(void) +static void IsNextRoomFinal(void) { if (gSaveBlock2Ptr->frontier.curChallengeBattleNum > 14) gSpecialVar_Result = TRUE; @@ -708,7 +708,7 @@ static void sub_81A740C(void) static void sub_81A7418(void) { - gSaveBlock2Ptr->frontier.field_CA8 = gSpecialVar_0x8005; + gSaveBlock2Ptr->frontier.challengeOutcome = gSpecialVar_0x8005; VarSet(VAR_TEMP_0, 0); gSaveBlock2Ptr->frontier.field_CA9_a = 1; save_serialize_map(); @@ -1014,10 +1014,10 @@ static bool8 AtLeastOneHealthyMon(void) static u8 GetNextRoomType(void) { - u8 roomTypesAvailability[8]; + bool8 roomTypesDisabled[NUM_PIKE_ROOM_TYPES - 1]; // excludes Brain room, which cant be disabled u8 i; u8 nextRoomType; - u8 roomTypeGroup; + u8 roomHint; u8 numRoomCandidates; u8 *roomCandidates; u8 id; @@ -1033,54 +1033,54 @@ static u8 GetNextRoomType(void) return gSaveBlock2Ptr->frontier.pikeHintedRoomType; } - for (i = 0; i < 8; i++) - roomTypesAvailability[i] = 0; + for (i = 0; i < ARRAY_COUNT(roomTypesDisabled); i++) + roomTypesDisabled[i] = FALSE; - numRoomCandidates = 8; + numRoomCandidates = NUM_PIKE_ROOM_TYPES - 1; - // The room types associated with the lady's hint cannot be in the other two rooms. - roomTypeGroup = sRoomTypeHints[gSaveBlock2Ptr->frontier.pikeHintedRoomType]; - for (i = 0; i < 8; i++) + // The other two room types cannot be the same type as the one associated with the lady's hint + roomHint = sRoomTypeHints[gSaveBlock2Ptr->frontier.pikeHintedRoomType]; + for (i = 0; i < ARRAY_COUNT(roomTypesDisabled); i++) { - if (sRoomTypeHints[i] == roomTypeGroup) + if (sRoomTypeHints[i] == roomHint) { - roomTypesAvailability[i] = 1; + roomTypesDisabled[i] = TRUE; numRoomCandidates--; } } // Remove room type candidates that would have no effect on the player's party. - if (roomTypesAvailability[PIKE_ROOM_DOUBLE_BATTLE] != 1 && !AtLeastTwoAliveMons()) + if (roomTypesDisabled[PIKE_ROOM_DOUBLE_BATTLE] != TRUE && !AtLeastTwoAliveMons()) { - roomTypesAvailability[PIKE_ROOM_DOUBLE_BATTLE] = 1; + roomTypesDisabled[PIKE_ROOM_DOUBLE_BATTLE] = TRUE; numRoomCandidates--; } - if (roomTypesAvailability[PIKE_ROOM_STATUS] != 1 && !AtLeastOneHealthyMon()) + if (roomTypesDisabled[PIKE_ROOM_STATUS] != TRUE && !AtLeastOneHealthyMon()) { - roomTypesAvailability[PIKE_ROOM_STATUS] = 1; + roomTypesDisabled[PIKE_ROOM_STATUS] = TRUE; numRoomCandidates--; } // Remove healing room type candidates if healing rooms are disabled. if (gSaveBlock2Ptr->frontier.pikeHealingRoomsDisabled) { - if (roomTypesAvailability[PIKE_ROOM_HEAL_FULL] != 1) + if (roomTypesDisabled[PIKE_ROOM_HEAL_FULL] != TRUE) { - roomTypesAvailability[PIKE_ROOM_HEAL_FULL] = 1; + roomTypesDisabled[PIKE_ROOM_HEAL_FULL] = TRUE; numRoomCandidates--; } - if (roomTypesAvailability[PIKE_ROOM_HEAL_PART] != 1) + if (roomTypesDisabled[PIKE_ROOM_HEAL_PART] != TRUE) { - roomTypesAvailability[PIKE_ROOM_HEAL_PART] = 1; + roomTypesDisabled[PIKE_ROOM_HEAL_PART] = TRUE; numRoomCandidates--; } } roomCandidates = AllocZeroed(numRoomCandidates); id = 0; - for (i = 0; i < 8; i++) + for (i = 0; i < ARRAY_COUNT(roomTypesDisabled); i++) { - if (roomTypesAvailability[i] == 0) + if (roomTypesDisabled[i] == FALSE) roomCandidates[id++] = i; } @@ -1098,6 +1098,7 @@ static u16 GetNPCRoomGraphicsId(void) return sNPCTable[sNpcId].graphicsId; } +// Unused static u8 sub_81A7B84(void) { return sUnknown_0300128E; @@ -1323,8 +1324,8 @@ static void GetInBattlePike(void) bool8 InBattlePike(void) { return gMapHeader.mapLayoutId == LAYOUT_BATTLE_FRONTIER_BATTLE_PIKE_THREE_PATH_ROOM - || gMapHeader.mapLayoutId == LAYOUT_BATTLE_FRONTIER_BATTLE_PIKE_RANDOM_ROOM1 - || gMapHeader.mapLayoutId == LAYOUT_BATTLE_FRONTIER_BATTLE_PIKE_RANDOM_ROOM3 + || gMapHeader.mapLayoutId == LAYOUT_BATTLE_FRONTIER_BATTLE_PIKE_ROOM_NORMAL + || gMapHeader.mapLayoutId == LAYOUT_BATTLE_FRONTIER_BATTLE_PIKE_ROOM_WILD_MONS || gMapHeader.mapLayoutId == LAYOUT_UNKNOWN_084693AC; } @@ -1344,9 +1345,9 @@ static void SetHintedRoom(void) { gSaveBlock2Ptr->frontier.pikeHintedRoomIndex = Random() % 3; if (gSaveBlock2Ptr->frontier.pikeHealingRoomsDisabled) - count = 6; + count = NUM_PIKE_ROOM_TYPES - 3; // exclude healing rooms and Brain room else - count = 8; + count = NUM_PIKE_ROOM_TYPES - 1; // exclude Brain room roomCandidates = AllocZeroed(count); for (i = 0, id = 0; i < count; i++) @@ -1373,9 +1374,6 @@ static void SetHintedRoom(void) static void GetHintedRoomIndex(void) { - // 0 = left room - // 1 = center room - // 2 = right room gSpecialVar_Result = gSaveBlock2Ptr->frontier.pikeHintedRoomIndex; } @@ -1500,7 +1498,7 @@ static u8 GetPikeQueenFightType(u8 nextRoom) { u8 numPikeSymbols; - u8 var = 5; + u8 facility = FRONTIER_FACILITY_PIKE; u8 ret = 0; u8 lvlMode = gSaveBlock2Ptr->frontier.lvlMode; u16 winStreak = gSaveBlock2Ptr->frontier.pikeWinStreaks[lvlMode]; @@ -1511,16 +1509,16 @@ static u8 GetPikeQueenFightType(u8 nextRoom) { case 0: case 1: - if (winStreak == sPikeQueenWinStreakAppearances[var][numPikeSymbols] - sPikeQueenWinStreakAppearances[var][3]) + if (winStreak == sFrontierBrainStreakAppearances[facility][numPikeSymbols] - sFrontierBrainStreakAppearances[facility][3]) ret = numPikeSymbols + 1; break; case 2: default: - if (winStreak == sPikeQueenWinStreakAppearances[var][0] - sPikeQueenWinStreakAppearances[var][3]) + if (winStreak == sFrontierBrainStreakAppearances[facility][0] - sFrontierBrainStreakAppearances[facility][3]) ret = 3; - else if (winStreak == sPikeQueenWinStreakAppearances[var][1] - sPikeQueenWinStreakAppearances[var][3] - || (winStreak > sPikeQueenWinStreakAppearances[var][1] - && (winStreak - sPikeQueenWinStreakAppearances[var][1] + sPikeQueenWinStreakAppearances[var][3]) % sPikeQueenWinStreakAppearances[var][2] == 0)) + else if (winStreak == sFrontierBrainStreakAppearances[facility][1] - sFrontierBrainStreakAppearances[facility][3] + || (winStreak > sFrontierBrainStreakAppearances[facility][1] + && (winStreak - sFrontierBrainStreakAppearances[facility][1] + sFrontierBrainStreakAppearances[facility][3]) % sFrontierBrainStreakAppearances[facility][2] == 0)) ret = 4; break; } @@ -1541,17 +1539,17 @@ static void HealSomeMonsBeforePikeQueen(void) gSpecialVar_Result = toHealCount; } -static void SetHealingRoomsDisabled(void) +static void SetHealingroomTypesDisabled(void) { gSaveBlock2Ptr->frontier.pikeHealingRoomsDisabled = gSpecialVar_0x8005; } -static void CanAnyPartyMonsBeHealed(void) +static void IsPartyFullHealed(void) { u8 i, j; gSpecialVar_Result = TRUE; - for (i = 0; i < 3; i++) + for (i = 0; i < FRONTIER_PARTY_SIZE; i++) { bool32 canBeHealed = FALSE; struct Pokemon *mon = &gPlayerParty[i]; @@ -1613,7 +1611,7 @@ static void InitPikeChallenge(void) { u8 lvlMode = gSaveBlock2Ptr->frontier.lvlMode; - gSaveBlock2Ptr->frontier.field_CA8 = 0; + gSaveBlock2Ptr->frontier.challengeOutcome = 0; gSaveBlock2Ptr->frontier.curChallengeBattleNum = 0; gSaveBlock2Ptr->frontier.field_CA9_a = 0; if (!(gSaveBlock2Ptr->frontier.field_CDC & gUnknown_08612690[lvlMode])) diff --git a/src/battle_pyramid.c b/src/battle_pyramid.c index 6dcd4063b..99076f173 100644 --- a/src/battle_pyramid.c +++ b/src/battle_pyramid.c @@ -842,7 +842,7 @@ static void InitPyramidChallenge(void) bool32 isCurrent; u32 lvlMode = gSaveBlock2Ptr->frontier.lvlMode; - gSaveBlock2Ptr->frontier.field_CA8 = 0; + gSaveBlock2Ptr->frontier.challengeOutcome = 0; gSaveBlock2Ptr->frontier.curChallengeBattleNum = 0; gSaveBlock2Ptr->frontier.field_CA9_a = 0; if (lvlMode != FRONTIER_LVL_50) @@ -930,7 +930,7 @@ static void SetBattlePyramidData(void) static void sub_81A9134(void) { - gSaveBlock2Ptr->frontier.field_CA8 = gSpecialVar_0x8005; + gSaveBlock2Ptr->frontier.challengeOutcome = gSpecialVar_0x8005; VarSet(VAR_TEMP_0, 0); gSaveBlock2Ptr->frontier.field_CA9_a = 1; save_serialize_map(); @@ -1434,7 +1434,7 @@ void sub_81A9E90(void) if (InBattlePyramid()) { RestorePyramidPlayerParty(); - gSaveBlock2Ptr->frontier.field_CA8 = 2; + gSaveBlock2Ptr->frontier.challengeOutcome = 2; VarSet(VAR_TEMP_E, 0); LoadPlayerParty(); } diff --git a/src/battle_tent.c b/src/battle_tent.c index 34e3e9628..f9385571f 100644 --- a/src/battle_tent.c +++ b/src/battle_tent.c @@ -98,7 +98,7 @@ void sub_81B99B4(void) static void sub_81B99D4(void) { - gSaveBlock2Ptr->frontier.field_CA8 = 0; + gSaveBlock2Ptr->frontier.challengeOutcome = 0; gSaveBlock2Ptr->frontier.curChallengeBattleNum = 0; gSaveBlock2Ptr->frontier.field_CA9_a = FALSE; SetDynamicWarp(0, gSaveBlock1Ptr->location.mapGroup, gSaveBlock1Ptr->location.mapNum, -1); @@ -128,7 +128,7 @@ static void sub_81B9A90(void) static void sub_81B9ABC(void) { - gSaveBlock2Ptr->frontier.field_CA8 = gSpecialVar_0x8005; + gSaveBlock2Ptr->frontier.challengeOutcome = gSpecialVar_0x8005; VarSet(VAR_TEMP_0, 0); gSaveBlock2Ptr->frontier.field_CA9_a = TRUE; sub_81A4C30(); @@ -160,7 +160,7 @@ void sub_81B9B80(void) static void sub_81B9BA0(void) { - gSaveBlock2Ptr->frontier.field_CA8 = 0; + gSaveBlock2Ptr->frontier.challengeOutcome = 0; gSaveBlock2Ptr->frontier.curChallengeBattleNum = 0; gSaveBlock2Ptr->frontier.field_CA9_a = FALSE; SetDynamicWarp(0, gSaveBlock1Ptr->location.mapGroup, gSaveBlock1Ptr->location.mapNum, -1); @@ -178,7 +178,7 @@ static void sub_81B9C10(void) static void sub_81B9C2C(void) { - gSaveBlock2Ptr->frontier.field_CA8 = gSpecialVar_0x8005; + gSaveBlock2Ptr->frontier.challengeOutcome = gSpecialVar_0x8005; VarSet(VAR_TEMP_0, 0); gSaveBlock2Ptr->frontier.field_CA9_a = TRUE; sub_81A4C30(); @@ -215,7 +215,7 @@ void sub_81B9D08(void) static void sub_81B9D28(void) { - gSaveBlock2Ptr->frontier.field_CA8 = 0; + gSaveBlock2Ptr->frontier.challengeOutcome = 0; gSaveBlock2Ptr->frontier.curChallengeBattleNum = 0; gSaveBlock2Ptr->frontier.field_CA9_a = FALSE; SetDynamicWarp(0, gSaveBlock1Ptr->location.mapGroup, gSaveBlock1Ptr->location.mapNum, -1); @@ -233,7 +233,7 @@ static void sub_81B9D98(void) static void sub_81B9DB4(void) { - gSaveBlock2Ptr->frontier.field_CA8 = gSpecialVar_0x8005; + gSaveBlock2Ptr->frontier.challengeOutcome = gSpecialVar_0x8005; VarSet(VAR_TEMP_0, 0); gSaveBlock2Ptr->frontier.field_CA9_a = TRUE; sub_81A4C30(); diff --git a/src/battle_tower.c b/src/battle_tower.c index aa4ca84e6..151610035 100644 --- a/src/battle_tower.c +++ b/src/battle_tower.c @@ -1156,7 +1156,7 @@ static void sub_8161F94(void) u32 lvlMode = gSaveBlock2Ptr->frontier.lvlMode; u32 battleMode = VarGet(VAR_FRONTIER_BATTLE_MODE); - gSaveBlock2Ptr->frontier.field_CA8 = 1; + gSaveBlock2Ptr->frontier.challengeOutcome = 1; gSaveBlock2Ptr->frontier.curChallengeBattleNum = 0; gSaveBlock2Ptr->frontier.field_CA9_a = 0; gSaveBlock2Ptr->frontier.field_CA9_b = 0; @@ -2428,7 +2428,7 @@ static void SaveBattleTowerProgress(void) if (gSpecialVar_0x8005 == 0 && (challengeNum > 1 || gSaveBlock2Ptr->frontier.curChallengeBattleNum != 0)) sub_8163EE4(); - gSaveBlock2Ptr->frontier.field_CA8 =gSpecialVar_0x8005; + gSaveBlock2Ptr->frontier.challengeOutcome =gSpecialVar_0x8005; VarSet(VAR_TEMP_0, 0); gSaveBlock2Ptr->frontier.field_CA9_a = 1; sub_81A4C30(); @@ -3158,7 +3158,7 @@ static void CopyEReaderTrainerFarewellMessage(void) void sub_81653CC(void) { - if (gSaveBlock2Ptr->frontier.field_CA8 == 1) + if (gSaveBlock2Ptr->frontier.challengeOutcome == 1) sub_80F01B8(); if (FlagGet(FLAG_CANCEL_BATTLE_ROOM_CHALLENGE) == TRUE) { diff --git a/src/frontier_pass.c b/src/frontier_pass.c index d8b36ffbd..33ac5b0fe 100644 --- a/src/frontier_pass.c +++ b/src/frontier_pass.c @@ -1553,9 +1553,9 @@ static u8 MapNumToFrontierFacilityId(u16 mapNum) // id + 1, zero means not a fro else if (mapNum == MAP_NUM(BATTLE_FRONTIER_BATTLE_PIKE_LOBBY) || mapNum == MAP_NUM(BATTLE_FRONTIER_BATTLE_PIKE_CORRIDOR) || mapNum == MAP_NUM(BATTLE_FRONTIER_BATTLE_PIKE_THREE_PATH_ROOM) - || mapNum == MAP_NUM(BATTLE_FRONTIER_BATTLE_PIKE_RANDOM_ROOM1) - || mapNum == MAP_NUM(BATTLE_FRONTIER_BATTLE_PIKE_RANDOM_ROOM2) - || mapNum == MAP_NUM(BATTLE_FRONTIER_BATTLE_PIKE_RANDOM_ROOM3)) + || mapNum == MAP_NUM(BATTLE_FRONTIER_BATTLE_PIKE_ROOM_NORMAL) + || mapNum == MAP_NUM(BATTLE_FRONTIER_BATTLE_PIKE_ROOM_FINAL) + || mapNum == MAP_NUM(BATTLE_FRONTIER_BATTLE_PIKE_ROOM_WILD_MONS)) return FRONTIER_FACILITY_PIKE + 1; else if (mapNum == MAP_NUM(BATTLE_FRONTIER_BATTLE_PYRAMID_LOBBY) || mapNum == MAP_NUM(BATTLE_FRONTIER_BATTLE_PYRAMID_EMPTY_SQUARE) diff --git a/src/frontier_util.c b/src/frontier_util.c index 87aff022e..138b678ed 100644 --- a/src/frontier_util.c +++ b/src/frontier_util.c @@ -49,16 +49,16 @@ struct FrontierBrainMon }; // This file's functions. -static void sub_81A17A0(void); -static void sub_81A1830(void); -static void sub_81A1968(void); +static void GetChallengeStatus(void); +static void GetFrontierData(void); +static void SetFrontierData(void); static void LoadSelectedParty(void); static void DoSoftReset_(void); static void SetFrontierTrainers(void); static void sub_81A1B38(void); static void ShowFacilityResultsWindow(void); static void sub_81A31FC(void); -static void sub_81A35EC(void); +static void Script_GetFrontierBrainStatus(void); static void IsTrainerFrontierBrain(void); static void sub_81A3B64(void); static void GetFacilitySymbolCount(void); @@ -70,7 +70,7 @@ static void sub_81A4230(void); static void sub_81A43A8(void); static void sub_81A4410(void); static void BufferFrontierTrainerName(void); -static void sub_81A447C(void); +static void ResetSketchedMoves(void); static void SetFacilityBrainEventObject(void); static void ShowTowerResultsWindow(u8); static void ShowDomeResultsWindow(u8); @@ -83,15 +83,15 @@ static void ShowLinkContestResultsWindow(void); static void CopyFrontierBrainText(bool8 playerWonText); // const rom data -static const u8 gUnknown_08611550[][4] = -{ - [FRONTIER_FACILITY_TOWER] = {0x23, 0x46, 0x23, 0x01}, - [FRONTIER_FACILITY_DOME] = {0x04, 0x09, 0x05, 0x00}, - [FRONTIER_FACILITY_PALACE] = {0x15, 0x2a, 0x15, 0x01}, - [FRONTIER_FACILITY_ARENA] = {0x1c, 0x38, 0x1c, 0x01}, - [FRONTIER_FACILITY_FACTORY] = {0x15, 0x2a, 0x15, 0x01}, - [FRONTIER_FACILITY_PIKE] = {0x1c, 0x8c, 0x38, 0x01}, - [FRONTIER_FACILITY_PYRAMID] = {0x15, 0x46, 0x23, 0x00}, +static const u8 sFrontierBrainStreakAppearances[NUM_FRONTIER_FACILITIES][4] = +{ + [FRONTIER_FACILITY_TOWER] = {35, 70, 35, 1}, + [FRONTIER_FACILITY_DOME] = { 4, 9, 5, 0}, + [FRONTIER_FACILITY_PALACE] = {21, 42, 21, 1}, + [FRONTIER_FACILITY_ARENA] = {28, 56, 28, 1}, + [FRONTIER_FACILITY_FACTORY] = {21, 42, 21, 1}, + [FRONTIER_FACILITY_PIKE] = {28, 140, 56, 1}, + [FRONTIER_FACILITY_PYRAMID] = {21, 70, 35, 0}, }; static const struct FrontierBrainMon sFrontierBrainsMons[][2][3] = @@ -104,7 +104,7 @@ static const struct FrontierBrainMon sFrontierBrainsMons[][2][3] = .species = SPECIES_ALAKAZAM, .heldItem = ITEM_BRIGHT_POWDER, .fixedIV = 24, - .nature = 15, + .nature = NATURE_MODEST, .evs = {106, 0, 152, 152, 100, 0}, .moves = {MOVE_THUNDER_PUNCH, MOVE_FIRE_PUNCH, MOVE_ICE_PUNCH, MOVE_DISABLE}, }, @@ -112,7 +112,7 @@ static const struct FrontierBrainMon sFrontierBrainsMons[][2][3] = .species = SPECIES_ENTEI, .heldItem = ITEM_LUM_BERRY, .fixedIV = 24, - .nature = 1, + .nature = NATURE_LONELY, .evs = {100, 152, 152, 0, 100, 6}, .moves = {MOVE_FIRE_BLAST, MOVE_CALM_MIND, MOVE_RETURN, MOVE_ROAR}, }, @@ -120,7 +120,7 @@ static const struct FrontierBrainMon sFrontierBrainsMons[][2][3] = .species = SPECIES_SNORLAX, .heldItem = ITEM_QUICK_CLAW, .fixedIV = 24, - .nature = 3, + .nature = NATURE_ADAMANT, .evs = {152, 152, 0, 0, 106, 100}, .moves = {MOVE_BODY_SLAM, MOVE_BELLY_DRUM, MOVE_YAWN, MOVE_SHADOW_BALL}, }, @@ -131,7 +131,7 @@ static const struct FrontierBrainMon sFrontierBrainsMons[][2][3] = .species = SPECIES_RAIKOU, .heldItem = ITEM_LUM_BERRY, .fixedIV = 31, - .nature = 15, + .nature = NATURE_MODEST, .evs = {158, 0, 252, 100, 0, 0}, .moves = {MOVE_THUNDERBOLT, MOVE_CALM_MIND, MOVE_REFLECT, MOVE_REST}, }, @@ -139,7 +139,7 @@ static const struct FrontierBrainMon sFrontierBrainsMons[][2][3] = .species = SPECIES_LATIOS, .heldItem = ITEM_BRIGHT_POWDER, .fixedIV = 31, - .nature = 15, + .nature = NATURE_MODEST, .evs = {252, 0, 252, 6, 0, 0}, .moves = {MOVE_PSYCHIC, MOVE_CALM_MIND, MOVE_RECOVER, MOVE_DRAGON_CLAW}, }, @@ -147,7 +147,7 @@ static const struct FrontierBrainMon sFrontierBrainsMons[][2][3] = .species = SPECIES_SNORLAX, .heldItem = ITEM_CHESTO_BERRY, .fixedIV = 31, - .nature = 3, + .nature = NATURE_ADAMANT, .evs = {252, 252, 0, 0, 6, 0}, .moves = {MOVE_CURSE, MOVE_RETURN, MOVE_REST, MOVE_SHADOW_BALL}, }, @@ -161,7 +161,7 @@ static const struct FrontierBrainMon sFrontierBrainsMons[][2][3] = .species = SPECIES_SWAMPERT, .heldItem = ITEM_FOCUS_BAND, .fixedIV = 20, - .nature = 2, + .nature = NATURE_BRAVE, .evs = {152, 152, 106, 0, 100, 0}, .moves = {MOVE_SURF, MOVE_EARTHQUAKE, MOVE_ICE_BEAM, MOVE_COUNTER}, }, @@ -169,7 +169,7 @@ static const struct FrontierBrainMon sFrontierBrainsMons[][2][3] = .species = SPECIES_SALAMENCE, .heldItem = ITEM_LUM_BERRY, .fixedIV = 20, - .nature = 3, + .nature = NATURE_ADAMANT, .evs = {152, 152, 106, 100, 0, 0}, .moves = {MOVE_EARTHQUAKE, MOVE_BRICK_BREAK, MOVE_DRAGON_CLAW, MOVE_AERIAL_ACE}, }, @@ -177,7 +177,7 @@ static const struct FrontierBrainMon sFrontierBrainsMons[][2][3] = .species = SPECIES_CHARIZARD, .heldItem = ITEM_WHITE_HERB, .fixedIV = 20, - .nature = 17, + .nature = NATURE_QUIET, .evs = {100, 152, 106, 152, 0, 0}, .moves = {MOVE_OVERHEAT, MOVE_ROCK_SLIDE, MOVE_AERIAL_ACE, MOVE_EARTHQUAKE}, }, @@ -188,7 +188,7 @@ static const struct FrontierBrainMon sFrontierBrainsMons[][2][3] = .species = SPECIES_SWAMPERT, .heldItem = ITEM_LEFTOVERS, .fixedIV = 31, - .nature = 2, + .nature = NATURE_BRAVE, .evs = {252, 252, 6, 0, 0, 0}, .moves = {MOVE_SURF, MOVE_EARTHQUAKE, MOVE_ICE_BEAM, MOVE_MIRROR_COAT}, }, @@ -196,7 +196,7 @@ static const struct FrontierBrainMon sFrontierBrainsMons[][2][3] = .species = SPECIES_METAGROSS, .heldItem = ITEM_QUICK_CLAW, .fixedIV = 31, - .nature = 2, + .nature = NATURE_BRAVE, .evs = {252, 252, 6, 0, 0, 0}, .moves = {MOVE_PSYCHIC, MOVE_METEOR_MASH, MOVE_EARTHQUAKE, MOVE_PROTECT}, }, @@ -204,7 +204,7 @@ static const struct FrontierBrainMon sFrontierBrainsMons[][2][3] = .species = SPECIES_LATIAS, .heldItem = ITEM_CHESTO_BERRY, .fixedIV = 31, - .nature = 15, + .nature = NATURE_MODEST, .evs = {252, 0, 252, 6, 0, 0}, .moves = {MOVE_THUNDERBOLT, MOVE_PSYCHIC, MOVE_CALM_MIND, MOVE_REST}, }, @@ -218,7 +218,7 @@ static const struct FrontierBrainMon sFrontierBrainsMons[][2][3] = .species = SPECIES_CROBAT, .heldItem = ITEM_BRIGHT_POWDER, .fixedIV = 16, - .nature = 3, + .nature = NATURE_ADAMANT, .evs = {152, 0, 0, 152, 100, 106}, .moves = {MOVE_CONFUSE_RAY, MOVE_DOUBLE_TEAM, MOVE_TOXIC, MOVE_FLY}, }, @@ -226,7 +226,7 @@ static const struct FrontierBrainMon sFrontierBrainsMons[][2][3] = .species = SPECIES_SLAKING, .heldItem = ITEM_SCOPE_LENS, .fixedIV = 16, - .nature = 0, + .nature = NATURE_HARDY, .evs = {152, 152, 0, 106, 100, 0}, .moves = {MOVE_EARTHQUAKE, MOVE_SWAGGER, MOVE_SHADOW_BALL, MOVE_BRICK_BREAK}, }, @@ -234,7 +234,7 @@ static const struct FrontierBrainMon sFrontierBrainsMons[][2][3] = .species = SPECIES_LAPRAS, .heldItem = ITEM_QUICK_CLAW, .fixedIV = 16, - .nature = 17, + .nature = NATURE_QUIET, .evs = {0, 0, 252, 0, 106, 152}, .moves = {MOVE_ICE_BEAM, MOVE_HORN_DRILL, MOVE_CONFUSE_RAY, MOVE_PROTECT}, }, @@ -245,7 +245,7 @@ static const struct FrontierBrainMon sFrontierBrainsMons[][2][3] = .species = SPECIES_ARCANINE, .heldItem = ITEM_WHITE_HERB, .fixedIV = 31, - .nature = 11, + .nature = NATURE_HASTY, .evs = {6, 252, 252, 0, 0, 0}, .moves = {MOVE_OVERHEAT, MOVE_EXTREME_SPEED, MOVE_ROAR, MOVE_PROTECT}, }, @@ -253,7 +253,7 @@ static const struct FrontierBrainMon sFrontierBrainsMons[][2][3] = .species = SPECIES_SLAKING, .heldItem = ITEM_SCOPE_LENS, .fixedIV = 31, - .nature = 0, + .nature = NATURE_HARDY, .evs = {6, 252, 0, 252, 0, 0}, .moves = {MOVE_HYPER_BEAM, MOVE_EARTHQUAKE, MOVE_SHADOW_BALL, MOVE_YAWN}, }, @@ -261,7 +261,7 @@ static const struct FrontierBrainMon sFrontierBrainsMons[][2][3] = .species = SPECIES_SUICUNE, .heldItem = ITEM_KINGS_ROCK, .fixedIV = 31, - .nature = 11, + .nature = NATURE_HASTY, .evs = {252, 0, 252, 6, 0, 0}, .moves = {MOVE_BLIZZARD, MOVE_SURF, MOVE_BITE, MOVE_CALM_MIND}, }, @@ -275,7 +275,7 @@ static const struct FrontierBrainMon sFrontierBrainsMons[][2][3] = .species = SPECIES_HERACROSS, .heldItem = ITEM_SALAC_BERRY, .fixedIV = 20, - .nature = 13, + .nature = NATURE_JOLLY, .evs = {106, 152, 0, 152, 0, 100}, .moves = {MOVE_MEGAHORN, MOVE_ROCK_TOMB, MOVE_ENDURE, MOVE_REVERSAL}, }, @@ -283,7 +283,7 @@ static const struct FrontierBrainMon sFrontierBrainsMons[][2][3] = .species = SPECIES_UMBREON, .heldItem = ITEM_LEFTOVERS, .fixedIV = 20, - .nature = 20, + .nature = NATURE_CALM, .evs = {152, 0, 100, 0, 152, 106}, .moves = {MOVE_BODY_SLAM, MOVE_CONFUSE_RAY, MOVE_PSYCHIC, MOVE_FAINT_ATTACK}, }, @@ -291,7 +291,7 @@ static const struct FrontierBrainMon sFrontierBrainsMons[][2][3] = .species = SPECIES_SHEDINJA, .heldItem = ITEM_BRIGHT_POWDER, .fixedIV = 20, - .nature = 3, + .nature = NATURE_ADAMANT, .evs = {0, 252, 6, 252, 0, 0}, .moves = {MOVE_SHADOW_BALL, MOVE_RETURN, MOVE_CONFUSE_RAY, MOVE_AERIAL_ACE}, }, @@ -302,7 +302,7 @@ static const struct FrontierBrainMon sFrontierBrainsMons[][2][3] = .species = SPECIES_UMBREON, .heldItem = ITEM_CHESTO_BERRY, .fixedIV = 31, - .nature = 20, + .nature = NATURE_CALM, .evs = {252, 0, 0, 0, 252, 6}, .moves = {MOVE_DOUBLE_EDGE, MOVE_CONFUSE_RAY, MOVE_REST, MOVE_PSYCHIC}, }, @@ -310,7 +310,7 @@ static const struct FrontierBrainMon sFrontierBrainsMons[][2][3] = .species = SPECIES_GENGAR, .heldItem = ITEM_LEFTOVERS, .fixedIV = 31, - .nature = 15, + .nature = NATURE_MODEST, .evs = {252, 0, 252, 0, 6, 0}, .moves = {MOVE_PSYCHIC, MOVE_HYPNOSIS, MOVE_DREAM_EATER, MOVE_DESTINY_BOND}, }, @@ -318,7 +318,7 @@ static const struct FrontierBrainMon sFrontierBrainsMons[][2][3] = .species = SPECIES_BRELOOM, .heldItem = ITEM_LUM_BERRY, .fixedIV = 31, - .nature = 13, + .nature = NATURE_JOLLY, .evs = {6, 252, 0, 252, 0, 0}, .moves = {MOVE_SPORE, MOVE_FOCUS_PUNCH, MOVE_GIGA_DRAIN, MOVE_HEADBUTT}, }, @@ -333,7 +333,7 @@ static const struct FrontierBrainMon sFrontierBrainsMons[][2][3] = .species = SPECIES_METANG, .heldItem = ITEM_SITRUS_BERRY, .fixedIV = 31, - .nature = 2, + .nature = NATURE_BRAVE, .evs = {0, 252, 252, 0, 6, 0}, .moves = {MOVE_LIGHT_SCREEN, MOVE_PSYCHIC, MOVE_REFLECT, MOVE_METAL_CLAW}, }, @@ -341,7 +341,7 @@ static const struct FrontierBrainMon sFrontierBrainsMons[][2][3] = .species = SPECIES_SKARMORY, .heldItem = ITEM_SITRUS_BERRY, .fixedIV = 31, - .nature = 8, + .nature = NATURE_IMPISH, .evs = {252, 0, 0, 0, 6, 252}, .moves = {MOVE_TOXIC, MOVE_AERIAL_ACE, MOVE_PROTECT, MOVE_STEEL_WING}, }, @@ -349,7 +349,7 @@ static const struct FrontierBrainMon sFrontierBrainsMons[][2][3] = .species = SPECIES_AGGRON, .heldItem = ITEM_SITRUS_BERRY, .fixedIV = 31, - .nature = 3, + .nature = NATURE_ADAMANT, .evs = {0, 252, 0, 0, 252, 6}, .moves = {MOVE_THUNDERBOLT, MOVE_PROTECT, MOVE_SOLAR_BEAM, MOVE_DRAGON_CLAW}, }, @@ -359,7 +359,7 @@ static const struct FrontierBrainMon sFrontierBrainsMons[][2][3] = .species = SPECIES_METANG, .heldItem = ITEM_SITRUS_BERRY, .fixedIV = 31, - .nature = 2, + .nature = NATURE_BRAVE, .evs = {0, 252, 252, 0, 6, 0}, .moves = {MOVE_LIGHT_SCREEN, MOVE_PSYCHIC, MOVE_REFLECT, MOVE_METAL_CLAW}, }, @@ -367,7 +367,7 @@ static const struct FrontierBrainMon sFrontierBrainsMons[][2][3] = .species = SPECIES_SKARMORY, .heldItem = ITEM_SITRUS_BERRY, .fixedIV = 31, - .nature = 8, + .nature = NATURE_IMPISH, .evs = {252, 0, 0, 0, 6, 252}, .moves = {MOVE_TOXIC, MOVE_AERIAL_ACE, MOVE_PROTECT, MOVE_STEEL_WING}, }, @@ -375,7 +375,7 @@ static const struct FrontierBrainMon sFrontierBrainsMons[][2][3] = .species = SPECIES_AGGRON, .heldItem = ITEM_SITRUS_BERRY, .fixedIV = 31, - .nature = 3, + .nature = NATURE_ADAMANT, .evs = {0, 252, 0, 0, 252, 6}, .moves = {MOVE_THUNDERBOLT, MOVE_PROTECT, MOVE_SOLAR_BEAM, MOVE_DRAGON_CLAW}, }, @@ -389,7 +389,7 @@ static const struct FrontierBrainMon sFrontierBrainsMons[][2][3] = .species = SPECIES_SEVIPER, .heldItem = ITEM_QUICK_CLAW, .fixedIV = 16, - .nature = 2, + .nature = NATURE_BRAVE, .evs = {252, 0, 252, 0, 6, 0}, .moves = {MOVE_SWAGGER, MOVE_CRUNCH, MOVE_POISON_FANG, MOVE_GIGA_DRAIN}, }, @@ -397,7 +397,7 @@ static const struct FrontierBrainMon sFrontierBrainsMons[][2][3] = .species = SPECIES_SHUCKLE, .heldItem = ITEM_CHESTO_BERRY, .fixedIV = 16, - .nature = 5, + .nature = NATURE_BOLD, .evs = {252, 0, 0, 0, 106, 252}, .moves = {MOVE_TOXIC, MOVE_SANDSTORM, MOVE_PROTECT, MOVE_REST}, }, @@ -405,7 +405,7 @@ static const struct FrontierBrainMon sFrontierBrainsMons[][2][3] = .species = SPECIES_MILOTIC, .heldItem = ITEM_LEFTOVERS, .fixedIV = 16, - .nature = 15, + .nature = NATURE_MODEST, .evs = {152, 0, 100, 0, 152, 106}, .moves = {MOVE_ICE_BEAM, MOVE_MIRROR_COAT, MOVE_SURF, MOVE_RECOVER}, }, @@ -416,7 +416,7 @@ static const struct FrontierBrainMon sFrontierBrainsMons[][2][3] = .species = SPECIES_SEVIPER, .heldItem = ITEM_FOCUS_BAND, .fixedIV = 31, - .nature = 5, + .nature = NATURE_BOLD, .evs = {252, 0, 0, 0, 252, 6}, .moves = {MOVE_SWAGGER, MOVE_CRUNCH, MOVE_SLUDGE_BOMB, MOVE_GIGA_DRAIN}, }, @@ -424,7 +424,7 @@ static const struct FrontierBrainMon sFrontierBrainsMons[][2][3] = .species = SPECIES_STEELIX, .heldItem = ITEM_BRIGHT_POWDER, .fixedIV = 31, - .nature = 2, + .nature = NATURE_BRAVE, .evs = {252, 0, 0, 0, 6, 252}, .moves = {MOVE_EARTHQUAKE, MOVE_ROCK_SLIDE, MOVE_EXPLOSION, MOVE_SCREECH}, }, @@ -432,7 +432,7 @@ static const struct FrontierBrainMon sFrontierBrainsMons[][2][3] = .species = SPECIES_GYARADOS, .heldItem = ITEM_CHESTO_BERRY, .fixedIV = 31, - .nature = 3, + .nature = NATURE_ADAMANT, .evs = {252, 6, 0, 0, 0, 252}, .moves = {MOVE_DRAGON_DANCE, MOVE_RETURN, MOVE_ROAR, MOVE_REST}, }, @@ -446,7 +446,7 @@ static const struct FrontierBrainMon sFrontierBrainsMons[][2][3] = .species = SPECIES_REGIROCK, .heldItem = ITEM_QUICK_CLAW, .fixedIV = 16, - .nature = 3, + .nature = NATURE_ADAMANT, .evs = {152, 152, 0, 0, 106, 100}, .moves = {MOVE_EXPLOSION, MOVE_SUPERPOWER, MOVE_EARTHQUAKE, MOVE_ANCIENT_POWER}, }, @@ -454,7 +454,7 @@ static const struct FrontierBrainMon sFrontierBrainsMons[][2][3] = .species = SPECIES_REGISTEEL, .heldItem = ITEM_LEFTOVERS, .fixedIV = 16, - .nature = 3, + .nature = NATURE_ADAMANT, .evs = {152, 152, 0, 0, 6, 200}, .moves = {MOVE_EARTHQUAKE, MOVE_METAL_CLAW, MOVE_TOXIC, MOVE_IRON_DEFENSE}, }, @@ -462,7 +462,7 @@ static const struct FrontierBrainMon sFrontierBrainsMons[][2][3] = .species = SPECIES_REGICE, .heldItem = ITEM_CHESTO_BERRY, .fixedIV = 16, - .nature = 15, + .nature = NATURE_MODEST, .evs = {106, 0, 152, 0, 100, 152}, .moves = {MOVE_ICE_BEAM, MOVE_AMNESIA, MOVE_THUNDER, MOVE_REST}, }, @@ -473,7 +473,7 @@ static const struct FrontierBrainMon sFrontierBrainsMons[][2][3] = .species = SPECIES_ARTICUNO, .heldItem = ITEM_SCOPE_LENS, .fixedIV = 31, - .nature = 16, + .nature = NATURE_MILD, .evs = {6, 0, 252, 252, 0, 0}, .moves = {MOVE_BLIZZARD, MOVE_WATER_PULSE, MOVE_AERIAL_ACE, MOVE_REFLECT}, }, @@ -481,7 +481,7 @@ static const struct FrontierBrainMon sFrontierBrainsMons[][2][3] = .species = SPECIES_ZAPDOS, .heldItem = ITEM_LUM_BERRY, .fixedIV = 31, - .nature = 16, + .nature = NATURE_MILD, .evs = {6, 0, 252, 252, 0, 0}, .moves = {MOVE_THUNDER, MOVE_DETECT, MOVE_DRILL_PECK, MOVE_LIGHT_SCREEN}, }, @@ -489,7 +489,7 @@ static const struct FrontierBrainMon sFrontierBrainsMons[][2][3] = .species = SPECIES_MOLTRES, .heldItem = ITEM_BRIGHT_POWDER, .fixedIV = 31, - .nature = 16, + .nature = NATURE_MILD, .evs = {6, 0, 252, 252, 0, 0}, .moves = {MOVE_FIRE_BLAST, MOVE_HYPER_BEAM, MOVE_AERIAL_ACE, MOVE_SAFEGUARD}, }, @@ -497,7 +497,7 @@ static const struct FrontierBrainMon sFrontierBrainsMons[][2][3] = }, }; -static const u8 gUnknown_086118B4[][7][4] = +static const u8 sBattlePointAwards[][NUM_FRONTIER_FACILITIES][FRONTIER_MODE_COUNT] = { { {1, 2, 3, 3}, {1, 1, 0, 0}, {4, 5, 0, 0}, {1, 0, 0, 0}, {3, 4, 0, 0}, {1, 0, 0, 0}, {5, 0, 0, 0} @@ -591,7 +591,7 @@ static const u8 gUnknown_086118B4[][7][4] = }, }; -static const u16 gUnknown_08611BFC[][2] = +static const u16 sFacilitySymbolBitFlags[NUM_FRONTIER_FACILITIES][2] = { [FRONTIER_FACILITY_TOWER] = {0x0001, 0x0002}, [FRONTIER_FACILITY_DOME] = {0x0004, 0x0008}, @@ -604,16 +604,16 @@ static const u16 gUnknown_08611BFC[][2] = static void (* const sFrontierUtilFuncs[])(void) = { - [FRONTIER_UTIL_FUNC_0] = sub_81A17A0, - [FRONTIER_UTIL_FUNC_1] = sub_81A1830, - [FRONTIER_UTIL_FUNC_2] = sub_81A1968, + [FRONTIER_UTIL_FUNC_GET_STATUS] = GetChallengeStatus, + [FRONTIER_UTIL_FUNC_GET_DATA] = GetFrontierData, + [FRONTIER_UTIL_FUNC_SET_DATA] = SetFrontierData, [FRONTIER_UTIL_FUNC_LOAD_SELECTED_PARTY] = LoadSelectedParty, [FRONTIER_UTIL_FUNC_SOFT_RESET] = DoSoftReset_, [FRONTIER_UTIL_FUNC_SET_FRONTIER_TRAINERS] = SetFrontierTrainers, [FRONTIER_UTIL_FUNC_6] = sub_81A1B38, [FRONTIER_UTIL_FUNC_RESULTS_WINDOW] = ShowFacilityResultsWindow, [FRONTIER_UTIL_FUNC_8] = sub_81A31FC, - [FRONTIER_UTIL_FUNC_9] = sub_81A35EC, + [FRONTIER_UTIL_FUNC_GET_BRAIN_STATUS] = Script_GetFrontierBrainStatus, [FRONTIER_UTIL_FUNC_IS_FRONTIER_BRAIN] = IsTrainerFrontierBrain, [FRONTIER_UTIL_FUNC_11] = sub_81A3B64, [FRONTIER_UTIL_FUNC_GET_FACILITY_SYMBOLS] = GetFacilitySymbolCount, @@ -625,7 +625,7 @@ static void (* const sFrontierUtilFuncs[])(void) = [FRONTIER_UTIL_FUNC_18] = sub_81A43A8, [FRONTIER_UTIL_FUNC_19] = sub_81A4410, [FRONTIER_UTIL_FUNC_BUFFER_TRAINER_NAME] = BufferFrontierTrainerName, - [FRONTIER_UTIL_FUNC_21] = sub_81A447C, + [FRONTIER_UTIL_FUNC_RESET_SKETCH_MOVES] = ResetSketchedMoves, [FRONTIER_UTIL_FUNC_SET_BRAIN_OBJECT] = SetFacilityBrainEventObject, }; @@ -663,7 +663,7 @@ static const struct WindowTemplate gUnknown_08611C84 = }; // Second field - whether the character is female. -static const u8 sFacilityToBrainEventObjGfx[][2] = +static const u8 sFrontierBrainObjEventGfx[NUM_FRONTIER_FACILITIES][2] = { [FRONTIER_FACILITY_TOWER] = {EVENT_OBJ_GFX_ANABEL, TRUE}, [FRONTIER_FACILITY_DOME] = {EVENT_OBJ_GFX_TUCKER, FALSE}, @@ -714,7 +714,7 @@ static const u8 *const sHallFacilityToRecordsText[] = [RANKING_HALL_BATTLE_TOWER_LINK] = gText_FrontierFacilityWinStreak, }; -static const u16 gFacilityToBrainTrainerId[] = +static const u16 sFrontierBrainTrainerIds[NUM_FRONTIER_FACILITIES] = { [FRONTIER_FACILITY_TOWER] = TRAINER_ANABEL, [FRONTIER_FACILITY_DOME] = TRAINER_TUCKER, @@ -725,60 +725,60 @@ static const u16 gFacilityToBrainTrainerId[] = [FRONTIER_FACILITY_PYRAMID] = TRAINER_BRANDON, }; -static const u8 *const gUnknown_08611D40[] = +static const u8 *const sFrontierBrainPlayerLostSilverTexts[NUM_FRONTIER_FACILITIES] = { - gText_082C843F, - gText_082C848B, - gText_082C8628, - gText_082C85B4, - gText_082C8512, - gText_082C859D, - gText_082C86C3, + [FRONTIER_FACILITY_TOWER] = gText_AnabelWonSilver, + [FRONTIER_FACILITY_DOME] = gText_TuckerWonSilver, + [FRONTIER_FACILITY_PALACE] = gText_SpenserWonSilver, + [FRONTIER_FACILITY_ARENA] = gText_GretaWonSilver, + [FRONTIER_FACILITY_FACTORY] = gText_NolandWonSilver, + [FRONTIER_FACILITY_PIKE] = gText_LucyWonSilver, + [FRONTIER_FACILITY_PYRAMID] = gText_BrandonWonSilver, }; -static const u8 *const gUnknown_08611D5C[] = +static const u8 *const sFrontierBrainPlayerWonSilverTexts[NUM_FRONTIER_FACILITIES] = { - gText_082C8458, - gText_082C84C1, - gText_082C8662, - gText_082C85E3, - gText_082C853B, - gText_082C85A4, - gText_082C86FE, + [FRONTIER_FACILITY_TOWER] = gText_AnabelDefeatSilver, + [FRONTIER_FACILITY_DOME] = gText_TuckerDefeatSilver, + [FRONTIER_FACILITY_PALACE] = gText_SpenserDefeatSilver, + [FRONTIER_FACILITY_ARENA] = gText_GretaDefeatSilver, + [FRONTIER_FACILITY_FACTORY] = gText_NolandDefeatSilver, + [FRONTIER_FACILITY_PIKE] = gText_LucyDefeatSilver, + [FRONTIER_FACILITY_PYRAMID] = gText_BrandonDefeatSilver, }; -static const u8 *const gUnknown_08611D78[] = +static const u8 *const sFrontierBrainPlayerLostGoldTexts[NUM_FRONTIER_FACILITIES] = { - gText_082C846C, - gText_082C84D0, - gText_082C8682, - gText_082C85F5, - gText_082C8561, - gText_082C85A9, - gText_082C8739, + [FRONTIER_FACILITY_TOWER] = gText_AnabelWonGold, + [FRONTIER_FACILITY_DOME] = gText_TuckerWonGold, + [FRONTIER_FACILITY_PALACE] = gText_SpenserWonGold, + [FRONTIER_FACILITY_ARENA] = gText_GretaWonGold, + [FRONTIER_FACILITY_FACTORY] = gText_NolandWonGold, + [FRONTIER_FACILITY_PIKE] = gText_LucyWonGold, + [FRONTIER_FACILITY_PYRAMID] = gText_BrandonWonGold, }; -static const u8 *const gUnknown_08611D94[] = +static const u8 *const sFrontierBrainPlayerWonGoldTexts[NUM_FRONTIER_FACILITIES] = { - gText_082C8480, - gText_082C84F7, - gText_082C86B3, - gText_082C8611, - gText_082C8589, - gText_082C85AE, - gText_082C877B, + [FRONTIER_FACILITY_TOWER] = gText_AnabelDefeatGold, + [FRONTIER_FACILITY_DOME] = gText_TuckerDefeatGold, + [FRONTIER_FACILITY_PALACE] = gText_SpenserDefeatGold, + [FRONTIER_FACILITY_ARENA] = gText_GretaDefeatGold, + [FRONTIER_FACILITY_FACTORY] = gText_NolandDefeatGold, + [FRONTIER_FACILITY_PIKE] = gText_LucyDefeatGold, + [FRONTIER_FACILITY_PYRAMID] = gText_BrandonDefeatGold, }; -static const u8 *const *const gUnknown_08611DB0[] = +static const u8 *const *const sFrontierBrainPlayerLostTexts[] = { - gUnknown_08611D40, - gUnknown_08611D78, + sFrontierBrainPlayerLostSilverTexts, + sFrontierBrainPlayerLostGoldTexts, }; -static const u8 *const *const gUnknown_08611DB8[] = +static const u8 *const *const sFrontierBrainPlayerWonTexts[] = { - gUnknown_08611D5C, - gUnknown_08611D94, + sFrontierBrainPlayerWonSilverTexts, + sFrontierBrainPlayerWonGoldTexts, }; // code @@ -787,42 +787,44 @@ void CallFrontierUtilFunc(void) sFrontierUtilFuncs[gSpecialVar_0x8004](); } -static void sub_81A17A0(void) +// Buffers into VAR_TEMP_0 specifically because this is used to react to the outcome in OnFrame map scripts +// TODO: use constants, fix name, rename field, compare to get/set data 0 +static void GetChallengeStatus(void) { VarSet(VAR_TEMP_0, 0xFF); - switch (gSaveBlock2Ptr->frontier.field_CA8) + switch (gSaveBlock2Ptr->frontier.challengeOutcome) { case 0: break; case 1: FrontierGamblerSetWonOrLost(FALSE); - VarSet(VAR_TEMP_0, gSaveBlock2Ptr->frontier.field_CA8); + VarSet(VAR_TEMP_0, gSaveBlock2Ptr->frontier.challengeOutcome); break; case 4: FrontierGamblerSetWonOrLost(FALSE); - VarSet(VAR_TEMP_0, gSaveBlock2Ptr->frontier.field_CA8); + VarSet(VAR_TEMP_0, gSaveBlock2Ptr->frontier.challengeOutcome); break; case 3: FrontierGamblerSetWonOrLost(TRUE); - VarSet(VAR_TEMP_0, gSaveBlock2Ptr->frontier.field_CA8); + VarSet(VAR_TEMP_0, gSaveBlock2Ptr->frontier.challengeOutcome); break; case 2: - VarSet(VAR_TEMP_0, gSaveBlock2Ptr->frontier.field_CA8); + VarSet(VAR_TEMP_0, gSaveBlock2Ptr->frontier.challengeOutcome); break; } } -static void sub_81A1830(void) +static void GetFrontierData(void) { u8 facility = VarGet(VAR_FRONTIER_FACILITY); - u8 currSymbol = GetPlayerSymbolCountForFacility(facility); - if (currSymbol == 2) - currSymbol = 1; + u8 hasSymbol = GetPlayerSymbolCountForFacility(facility); + if (hasSymbol == 2) + hasSymbol = 1; switch (gSpecialVar_0x8005) { case 0: - gSpecialVar_Result = gSaveBlock2Ptr->frontier.field_CA8; + gSpecialVar_Result = gSaveBlock2Ptr->frontier.challengeOutcome; break; case 1: gSpecialVar_Result = gSaveBlock2Ptr->frontier.lvlMode; @@ -841,23 +843,23 @@ static void sub_81A1830(void) gSpecialVar_Result = gSaveBlock2Ptr->frontier.field_CA9_b; break; case 7: - gSpecialVar_Result = gSaveBlock2Ptr->frontier.field_D00 & gUnknown_08611BFC[facility][currSymbol]; + gSpecialVar_Result = gSaveBlock2Ptr->frontier.symbolFlags & sFacilitySymbolBitFlags[facility][hasSymbol]; break; } } -static void sub_81A1968(void) +static void SetFrontierData(void) { s32 i; u8 facility = VarGet(VAR_FRONTIER_FACILITY); - u8 currSymbol = GetPlayerSymbolCountForFacility(facility); - if (currSymbol == 2) - currSymbol = 1; + u8 hasSymbol = GetPlayerSymbolCountForFacility(facility); + if (hasSymbol == 2) + hasSymbol = 1; switch (gSpecialVar_0x8005) { case 0: - gSaveBlock2Ptr->frontier.field_CA8 = gSpecialVar_0x8006; + gSaveBlock2Ptr->frontier.challengeOutcome = gSpecialVar_0x8006; break; case 1: gSaveBlock2Ptr->frontier.lvlMode = gSpecialVar_0x8006; @@ -876,7 +878,7 @@ static void sub_81A1968(void) gSaveBlock2Ptr->frontier.field_CA9_b = gSpecialVar_0x8006; break; case 7: - gSaveBlock2Ptr->frontier.field_D00 |= gUnknown_08611BFC[facility][currSymbol]; + gSaveBlock2Ptr->frontier.symbolFlags |= sFacilitySymbolBitFlags[facility][hasSymbol]; break; } } @@ -915,7 +917,7 @@ static void sub_81A1B38(void) static void ShowFacilityResultsWindow(void) { - if (gSpecialVar_0x8006 > 3) + if (gSpecialVar_0x8006 >= FRONTIER_MODE_COUNT) gSpecialVar_0x8006 = 0; switch (gSpecialVar_0x8005) { @@ -940,7 +942,7 @@ static void ShowFacilityResultsWindow(void) case FRONTIER_FACILITY_PYRAMID: ShowPyramidResultsWindow(); break; - case RESULTS_LINK_CONTEST: + case FACILITY_LINK_CONTEST: ShowLinkContestResultsWindow(); break; } @@ -1644,44 +1646,49 @@ static void sub_81A31FC(void) } } -static void sub_81A35EC(void) +static void Script_GetFrontierBrainStatus(void) { VarGet(VAR_FRONTIER_FACILITY); // Unused return value. - gSpecialVar_Result = sub_81A3610(); + gSpecialVar_Result = GetFrontierBrainStatus(); } -u8 sub_81A3610(void) +u8 GetFrontierBrainStatus(void) { - s32 ret = 0; + s32 status = FRONTIER_BRAIN_NOT_READY; s32 facility = VarGet(VAR_FRONTIER_FACILITY); s32 battleMode = VarGet(VAR_FRONTIER_BATTLE_MODE); - u16 val = GetCurrentFacilityWinStreak(); - s32 r5 = val + gUnknown_08611550[facility][3]; + u16 winStreakNoModifier = GetCurrentFacilityWinStreak(); + s32 winStreak = winStreakNoModifier + sFrontierBrainStreakAppearances[facility][3]; s32 symbolsCount; if (battleMode != FRONTIER_MODE_SINGLES) - return 0; + return FRONTIER_BRAIN_NOT_READY; symbolsCount = GetPlayerSymbolCountForFacility(facility); switch (symbolsCount) { + // Missing a symbol case 0: case 1: - if (r5 == gUnknown_08611550[facility][symbolsCount]) - ret = symbolsCount + 1; + if (winStreak == sFrontierBrainStreakAppearances[facility][symbolsCount]) + status = symbolsCount + 1; // FRONTIER_BRAIN_SILVER and FRONTIER_BRAIN_GOLD break; + // Already received both symbols case 2: default: - if (r5 == gUnknown_08611550[facility][0]) - ret = 3; - else if (r5 == gUnknown_08611550[facility][1]) - ret = 4; - else if (r5 > gUnknown_08611550[facility][1] && (r5 - gUnknown_08611550[facility][1]) % gUnknown_08611550[facility][2] == 0) - ret = 4; + // Silver streak is reached + if (winStreak == sFrontierBrainStreakAppearances[facility][0]) + status = FRONTIER_BRAIN_STREAK; + // Gold streak is reached + else if (winStreak == sFrontierBrainStreakAppearances[facility][1]) + status = FRONTIER_BRAIN_STREAK_LONG; + // Some increment of the gold streak is reached + else if (winStreak > sFrontierBrainStreakAppearances[facility][1] && (winStreak - sFrontierBrainStreakAppearances[facility][1]) % sFrontierBrainStreakAppearances[facility][2] == 0) + status = FRONTIER_BRAIN_STREAK_LONG; break; } - return ret; + return status; } void CopyFrontierTrainerText(u8 whichText, u16 trainerId) @@ -1789,8 +1796,8 @@ void sub_81A3908(void) } } } - if (gSaveBlock2Ptr->frontier.field_CA8 != 0) - gSaveBlock2Ptr->frontier.field_CA8 = 1; + if (gSaveBlock2Ptr->frontier.challengeOutcome != 0) + gSaveBlock2Ptr->frontier.challengeOutcome = 1; } u32 GetCurrentFacilityWinStreak(void) @@ -1877,20 +1884,20 @@ static void sub_81A3B64(void) if (challengeNum != 0) challengeNum--; - if (challengeNum >= ARRAY_COUNT(gUnknown_086118B4)) - challengeNum = ARRAY_COUNT(gUnknown_086118B4) - 1; + if (challengeNum >= ARRAY_COUNT(sBattlePointAwards)) + challengeNum = ARRAY_COUNT(sBattlePointAwards) - 1; - points = gUnknown_086118B4[challengeNum][facility][battleMode]; + points = sBattlePointAwards[challengeNum][facility][battleMode]; if (gTrainerBattleOpponent_A == TRAINER_FRONTIER_BRAIN) points += 10; gSaveBlock2Ptr->frontier.battlePoints += points; ConvertIntToDecimalStringN(gStringVar1, points, STR_CONV_MODE_LEFT_ALIGN, 2); - if (gSaveBlock2Ptr->frontier.battlePoints > 9999) - gSaveBlock2Ptr->frontier.battlePoints = 9999; + if (gSaveBlock2Ptr->frontier.battlePoints > MAX_BATTLE_FRONTIER_POINTS) + gSaveBlock2Ptr->frontier.battlePoints = MAX_BATTLE_FRONTIER_POINTS; points = gSaveBlock2Ptr->frontier.field_EBA; - points += gUnknown_086118B4[challengeNum][facility][battleMode]; - IncrementDailyBattlePoints(gUnknown_086118B4[challengeNum][facility][battleMode]); + points += sBattlePointAwards[challengeNum][facility][battleMode]; + IncrementDailyBattlePoints(sBattlePointAwards[challengeNum][facility][battleMode]); if (gTrainerBattleOpponent_A == TRAINER_FRONTIER_BRAIN) { points += 10; @@ -1924,12 +1931,12 @@ static void CheckBattleTypeFlag(void) gSpecialVar_Result = FALSE; } -static u8 sub_81A3DD0(u16 species, u8 arg1, s32 arg2) +static u8 AppendBannedMonSpeciesName(u16 species, u8 count, s32 numBannedMonsCaught) { if (GetSetPokedexFlag(SpeciesToNationalPokedexNum(species), FLAG_GET_CAUGHT)) { - arg1++; - switch (arg1) + count++; + switch (count) { case 1: case 3: @@ -1937,20 +1944,20 @@ static u8 sub_81A3DD0(u16 species, u8 arg1, s32 arg2) case 7: case 9: case 11: - if (arg2 == arg1) + if (numBannedMonsCaught == count) StringAppend(gStringVar1, gText_SpaceAndSpace); - else if (arg2 > arg1) + else if (numBannedMonsCaught > count) StringAppend(gStringVar1, gText_CommaSpace); break; case 2: - if (arg1 == arg2) + if (count == numBannedMonsCaught) StringAppend(gStringVar1, gText_SpaceAndSpace); else StringAppend(gStringVar1, gText_CommaSpace); StringAppend(gStringVar1, gText_NewLine); break; default: - if (arg1 == arg2) + if (count == numBannedMonsCaught) StringAppend(gStringVar1, gText_SpaceAndSpace); else StringAppend(gStringVar1, gText_CommaSpace); @@ -1960,7 +1967,7 @@ static u8 sub_81A3DD0(u16 species, u8 arg1, s32 arg2) StringAppend(gStringVar1, gSpeciesNames[species]); } - return arg1; + return count; } static void AppendIfValid(u16 species, u16 heldItem, u16 hp, u8 lvlMode, u8 monLevel, u16 *speciesArray, u16 *itemsArray, u8 *count) @@ -1998,8 +2005,8 @@ static void AppendIfValid(u16 species, u16 heldItem, u16 hp, u8 lvlMode, u8 monL static void sub_81A3FD4(void) { - u16 speciesArray[6]; - u16 itemArray[6]; + u16 speciesArray[PARTY_SIZE]; + u16 itemArray[PARTY_SIZE]; s32 monId = 0; s32 toChoose = 0; u8 count = 0; @@ -2036,7 +2043,7 @@ static void sub_81A3FD4(void) u16 hp = GetMonData(&gPlayerParty[monId], MON_DATA_HP); if (VarGet(VAR_FRONTIER_FACILITY) == FRONTIER_FACILITY_PYRAMID) { - if (heldItem == 0) + if (heldItem == ITEM_NONE) AppendIfValid(species, heldItem, hp, gSpecialVar_Result, level, speciesArray, itemArray, &count); } else @@ -2065,7 +2072,7 @@ static void sub_81A3FD4(void) gSpecialVar_0x8004 = 1; count = 0; for (i = 0; gFrontierBannedSpecies[i] != 0xFFFF; i++) - count = sub_81A3DD0(gFrontierBannedSpecies[i], count, caughtBannedMons); + count = AppendBannedMonSpeciesName(gFrontierBannedSpecies[i], count, caughtBannedMons); if (count == 0) { @@ -2174,7 +2181,7 @@ static void BufferFrontierTrainerName(void) } } -static void sub_81A447C(void) +static void ResetSketchedMoves(void) { u8 i, j, k; @@ -2426,7 +2433,7 @@ u8 GetFrontierBrainTrainerPicIndex(void) else facility = VarGet(VAR_FRONTIER_FACILITY); - return gTrainers[gFacilityToBrainTrainerId[facility]].trainerPic; + return gTrainers[sFrontierBrainTrainerIds[facility]].trainerPic; } u8 GetFrontierBrainTrainerClass(void) @@ -2438,7 +2445,7 @@ u8 GetFrontierBrainTrainerClass(void) else facility = VarGet(VAR_FRONTIER_FACILITY); - return gTrainers[gFacilityToBrainTrainerId[facility]].trainerClass; + return gTrainers[sFrontierBrainTrainerIds[facility]].trainerClass; } void CopyFrontierBrainTrainerName(u8 *dst) @@ -2452,7 +2459,7 @@ void CopyFrontierBrainTrainerName(u8 *dst) facility = VarGet(VAR_FRONTIER_FACILITY); for (i = 0; i < PLAYER_NAME_LENGTH; i++) - dst[i] = gTrainers[gFacilityToBrainTrainerId[facility]].trainerName[i]; + dst[i] = gTrainers[sFrontierBrainTrainerIds[facility]].trainerName[i]; dst[i] = EOS; } @@ -2460,13 +2467,13 @@ void CopyFrontierBrainTrainerName(u8 *dst) bool8 IsFrontierBrainFemale(void) { s32 facility = VarGet(VAR_FRONTIER_FACILITY); - return sFacilityToBrainEventObjGfx[facility][1]; + return sFrontierBrainObjEventGfx[facility][1]; } void SetFrontierBrainEventObjGfx_2(void) { s32 facility = VarGet(VAR_FRONTIER_FACILITY); - VarSet(VAR_OBJ_GFX_ID_0, sFacilityToBrainEventObjGfx[facility][0]); + VarSet(VAR_OBJ_GFX_ID_0, sFrontierBrainObjEventGfx[facility][0]); } #define FRONTIER_BRAIN_OTID 61226 @@ -2769,7 +2776,7 @@ u16 GetFrontierBrainMonSpecies(u8 monId) void SetFrontierBrainEventObjGfx(u8 facility) { gTrainerBattleOpponent_A = TRAINER_FRONTIER_BRAIN; - VarSet(VAR_OBJ_GFX_ID_0, sFacilityToBrainEventObjGfx[facility][0]); + VarSet(VAR_OBJ_GFX_ID_0, sFrontierBrainObjEventGfx[facility][0]); } u16 GetFrontierBrainMonMove(u8 monId, u8 moveSlotId) @@ -2804,17 +2811,18 @@ s32 GetFronterBrainSymbol(void) if (symbol == 2) { u16 winStreak = GetCurrentFacilityWinStreak(); - if (winStreak + gUnknown_08611550[facility][3] == gUnknown_08611550[facility][0]) + if (winStreak + sFrontierBrainStreakAppearances[facility][3] == sFrontierBrainStreakAppearances[facility][0]) symbol = 0; - else if (winStreak + gUnknown_08611550[facility][3] == gUnknown_08611550[facility][1]) + else if (winStreak + sFrontierBrainStreakAppearances[facility][3] == sFrontierBrainStreakAppearances[facility][1]) symbol = 1; - else if (winStreak + gUnknown_08611550[facility][3] > gUnknown_08611550[facility][1] - && (winStreak + gUnknown_08611550[facility][3] - gUnknown_08611550[facility][1]) % gUnknown_08611550[facility][2] == 0) + else if (winStreak + sFrontierBrainStreakAppearances[facility][3] > sFrontierBrainStreakAppearances[facility][1] + && (winStreak + sFrontierBrainStreakAppearances[facility][3] - sFrontierBrainStreakAppearances[facility][1]) % sFrontierBrainStreakAppearances[facility][2] == 0) symbol = 1; } return symbol; } +// Called for intro speech as well despite the fact that its handled in the map scripts files instead static void CopyFrontierBrainText(bool8 playerWonText) { s32 facility; @@ -2834,10 +2842,10 @@ static void CopyFrontierBrainText(bool8 playerWonText) switch (playerWonText) { case FALSE: - StringCopy(gStringVar4, gUnknown_08611DB0[symbol][facility]); + StringCopy(gStringVar4, sFrontierBrainPlayerLostTexts[symbol][facility]); break; case TRUE: - StringCopy(gStringVar4, gUnknown_08611DB8[symbol][facility]); + StringCopy(gStringVar4, sFrontierBrainPlayerWonTexts[symbol][facility]); break; } } diff --git a/src/wild_encounter.c b/src/wild_encounter.c index 530e5e323..cb6dba1d4 100644 --- a/src/wild_encounter.c +++ b/src/wild_encounter.c @@ -424,7 +424,7 @@ static bool8 TryGenerateWildMon(const struct WildPokemonInfo *wildMonInfo, u8 ar level = ChooseWildMonLevel(&wildMonInfo->wildPokemon[wildMonIndex]); if (flags & WILD_CHECK_REPEL && !IsWildLevelAllowedByRepel(level)) return FALSE; - if (gMapHeader.mapLayoutId != LAYOUT_BATTLE_FRONTIER_BATTLE_PIKE_RANDOM_ROOM3 && flags & WILD_CHECK_KEEN_EYE && !IsAbilityAllowingEncounter(level)) + if (gMapHeader.mapLayoutId != LAYOUT_BATTLE_FRONTIER_BATTLE_PIKE_ROOM_WILD_MONS && flags & WILD_CHECK_KEEN_EYE && !IsAbilityAllowingEncounter(level)) return FALSE; CreateWildMon(wildMonInfo->wildPokemon[wildMonIndex].species, level); @@ -533,7 +533,7 @@ bool8 StandardWildEncounter(u16 currMetaTileBehavior, u16 previousMetaTileBehavi headerId = GetCurrentMapWildMonHeaderId(); if (headerId == 0xFFFF) { - if (gMapHeader.mapLayoutId == LAYOUT_BATTLE_FRONTIER_BATTLE_PIKE_RANDOM_ROOM3) + if (gMapHeader.mapLayoutId == LAYOUT_BATTLE_FRONTIER_BATTLE_PIKE_ROOM_WILD_MONS) { headerId = GetBattlePikeWildMonHeaderId(); if (previousMetaTileBehavior != currMetaTileBehavior && !DoGlobalWildEncounterDiceRoll()) @@ -676,7 +676,7 @@ bool8 SweetScentWildEncounter(void) headerId = GetCurrentMapWildMonHeaderId(); if (headerId == 0xFFFF) { - if (gMapHeader.mapLayoutId == LAYOUT_BATTLE_FRONTIER_BATTLE_PIKE_RANDOM_ROOM3) + if (gMapHeader.mapLayoutId == LAYOUT_BATTLE_FRONTIER_BATTLE_PIKE_ROOM_WILD_MONS) { headerId = GetBattlePikeWildMonHeaderId(); if (TryGenerateWildMon(gBattlePikeWildMonHeaders[headerId].landMonsInfo, WILD_AREA_LAND, 0) != TRUE) -- cgit v1.2.3 From 08a8dc46e307120d7007531826b58ac5ee227564 Mon Sep 17 00:00:00 2001 From: GriffinR Date: Sat, 23 Nov 2019 16:08:50 -0500 Subject: Use macros for Trainer Hill --- asm/macros/battle_frontier.inc | 95 ++++++++++++++++++++++++++++++ data/maps/TrainerHill_Entrance/scripts.inc | 37 ++++-------- data/maps/TrainerHill_Roof/scripts.inc | 12 ++-- data/scripts/field_poison.inc | 5 +- data/scripts/trainer_hill.inc | 18 ++---- include/constants/trainer_hill.h | 34 +++++------ src/trainer_hill.c | 34 +++++------ 7 files changed, 153 insertions(+), 82 deletions(-) diff --git a/asm/macros/battle_frontier.inc b/asm/macros/battle_frontier.inc index 2382d3ed2..4e04043d8 100644 --- a/asm/macros/battle_frontier.inc +++ b/asm/macros/battle_frontier.inc @@ -166,12 +166,107 @@ setvar VAR_0x8004, BATTLE_PIKE_FUNC_IS_PARTY_FULL_HEALTH special CallBattlePikeFunction .endm + @ Battle Pyramid + @ Battle Tent + @ Trainer Hill +.macro trainerhill_start +setvar VAR_0x8004, TRAINER_HILL_FUNC_START +special CallTrainerHillFunction +.endm + +.macro trainerhill_getownerstate +setvar VAR_0x8004, TRAINER_HILL_FUNC_GET_OWNER_STATE +special CallTrainerHillFunction +.endm + +.macro trainerhill_giveprize +setvar VAR_0x8004, TRAINER_HILL_FUNC_GIVE_PRIZE +special CallTrainerHillFunction +.endm + +.macro trainerhill_finaltime +setvar VAR_0x8004, TRAINER_HILL_FUNC_CHECK_FINAL_TIME +special CallTrainerHillFunction +.endm + +.macro trainerhill_resumetimer +setvar VAR_0x8004, TRAINER_HILL_FUNC_RESUME_TIMER +special CallTrainerHillFunction +.endm + +.macro trainerhill_lost +setvar VAR_0x8004, TRAINER_HILL_FUNC_SET_LOST +special CallTrainerHillFunction +.endm + +.macro trainerhill_getstatus +setvar VAR_0x8004, TRAINER_HILL_FUNC_GET_CHALLENGE_STATUS +special CallTrainerHillFunction +.endm + +.macro trainerhill_gettime +setvar VAR_0x8004, TRAINER_HILL_FUNC_GET_CHALLENGE_TIME +special CallTrainerHillFunction +.endm + +.macro trainerhill_allfloorsused +setvar VAR_0x8004, TRAINER_HILL_FUNC_GET_ALL_FLOORS_USED +special CallTrainerHillFunction +.endm + +.macro trainerhill_clearresult +setvar VAR_0x8004, TRAINER_HILL_FUNC_CLEAR_RESULT +special CallTrainerHillFunction +.endm + +.macro trainerhill_inchallenge +setvar VAR_0x8004, TRAINER_HILL_FUNC_IN_CHALLENGE +special CallTrainerHillFunction +.endm + +.macro trainerhill_postbattletext +setvar VAR_0x8004, TRAINER_HILL_FUNC_POST_BATTLE_TEXT +special CallTrainerHillFunction +.endm + +.macro trainerhill_settrainerflags +setvar VAR_0x8004, TRAINER_HILL_FUNC_SET_ALL_TRAINER_FLAGS +special CallTrainerHillFunction +.endm + +.macro trainerhill_getsaved +setvar VAR_0x8004, TRAINER_HILL_FUNC_GET_GAME_SAVED +special CallTrainerHillFunction +.endm + +.macro trainerhill_setsaved +setvar VAR_0x8004, TRAINER_HILL_FUNC_SET_GAME_SAVED +special CallTrainerHillFunction +.endm + +.macro trainerhill_clearsaved +setvar VAR_0x8004, TRAINER_HILL_FUNC_CLEAR_GAME_SAVED +special CallTrainerHillFunction +.endm + +.macro trainerhill_getwon +setvar VAR_0x8004, TRAINER_HILL_FUNC_GET_WON +special CallTrainerHillFunction +.endm + +.macro trainerhill_settag tag:req +setvar VAR_0x8004, TRAINER_HILL_FUNC_SET_TAG +copyvar VAR_0x8005, \tag +special CallTrainerHillFunction +.endm + + @ Apprentice .macro apprentice_gavelvlmode diff --git a/data/maps/TrainerHill_Entrance/scripts.inc b/data/maps/TrainerHill_Entrance/scripts.inc index 909aaaf9f..0e8d28c1d 100644 --- a/data/maps/TrainerHill_Entrance/scripts.inc +++ b/data/maps/TrainerHill_Entrance/scripts.inc @@ -16,11 +16,9 @@ TrainerHill_Entrance_OnWarp: @ 82680CF end TrainerHill_Entrance_OnResume: @ 82680D0 - setvar VAR_0x8004, TRAINER_HILL_FUNC_RESUME_TIMER - special CallTrainerHillFunction + trainerhill_resumetimer setvar VAR_TEMP_0, 0 - setvar VAR_0x8004, TRAINER_HILL_FUNC_CLEAR_RESULT - special CallTrainerHillFunction + trainerhill_clearresult compare VAR_RESULT, 0 @ VAR_RESULT always 0 here goto_if_eq TrainerHill_Entrance_EventScript_TryFaceAttendant setobjectxy EVENT_OBJ_ID_PLAYER, 9, 6 @@ -28,8 +26,7 @@ TrainerHill_Entrance_OnResume: @ 82680D0 end TrainerHill_Entrance_EventScript_TryFaceAttendant:: @ 82680FF - setvar VAR_0x8004, TRAINER_HILL_FUNC_GET_WON - special CallTrainerHillFunction + trainerhill_getwon compare VAR_RESULT, TRUE goto_if_eq TrainerHill_Entrance_EventScript_PlayerDontFaceAttendant applymovement EVENT_OBJ_ID_PLAYER, TrainerHill_Entrance_Movement_PlayerFaceAttendant @@ -75,8 +72,7 @@ TrainerHill_Entrance_EventScript_ExitElevator:: @ 8268160 TrainerHill_Entrance_EventScript_ExitChallenge:: @ 8268182 setvar VAR_TEMP_0, 1 - setvar VAR_0x8004, TRAINER_HILL_FUNC_GET_CHALLENGE_STATUS - special CallTrainerHillFunction + trainerhill_getstatus switch VAR_RESULT case TRAINER_HILL_PLAYER_STATUS_LOST, TrainerHill_Entrance_EventScript_ExitChallengeLost case TRAINER_HILL_PLAYER_STATUS_ECARD_SCANNED, TrainerHill_Entrance_EventScript_ExitChallengeECard @@ -113,8 +109,7 @@ TrainerHill_Entrance_EventScript_Nurse:: @ 82681EF TrainerHill_Entrance_EventScript_Attendant:: @ 82681FD lock faceplayer - setvar VAR_0x8004, TRAINER_HILL_FUNC_IN_CHALLENGE - special CallTrainerHillFunction + trainerhill_inchallenge compare VAR_RESULT, FALSE goto_if_eq TrainerHill_Entrance_EventScript_ThanksForPlaying msgbox TrainerHill_Entrance_Text_HopeYouGiveItYourBest, MSGBOX_DEFAULT @@ -131,12 +126,10 @@ TrainerHill_Entrance_EventScript_EntryTrigger:: @ 8268229 applymovement EVENT_OBJ_ID_PLAYER, TrainerHill_Entrance_Movement_PlayerFaceAttendant goto_if_unset FLAG_SYS_GAME_CLEAR, TrainerHill_Entrance_EventScript_Closed msgbox TrainerHill_Entrance_Text_WelcomeToTrainerHill, MSGBOX_DEFAULT - setvar VAR_0x8004, TRAINER_HILL_FUNC_GET_GAME_SAVED - special CallTrainerHillFunction + trainerhill_getsaved compare VAR_RESULT, FALSE call_if_eq TrainerHill_Entrance_EventScript_SaveGame - setvar VAR_0x8004, TRAINER_HILL_FUNC_GET_ALL_FLOORS_USED - special CallTrainerHillFunction + trainerhill_allfloorsused compare VAR_RESULT, TRUE goto_if_eq TrainerHill_Entrance_EventScript_AllFloorsUsed msgbox TrainerHill_Entrance_Text_TrainersUpToFloorX, MSGBOX_DEFAULT @@ -165,15 +158,12 @@ TrainerHill_Entrance_EventScript_ChooseChallenge:: @ 82682C8 switch VAR_RESULT case 4, TrainerHill_Entrance_EventScript_CancelEntry case MULTI_B_PRESSED, TrainerHill_Entrance_EventScript_CancelEntry - setvar VAR_0x8004, TRAINER_HILL_FUNC_SET_TAG - copyvar VAR_0x8005, VAR_RESULT - special CallTrainerHillFunction + trainerhill_settag VAR_RESULT setvar VAR_TRAINER_HILL_IS_ACTIVE, 1 setvar VAR_TEMP_5, 0 special HealPlayerParty msgbox TrainerHill_Entrance_Text_TimeProgessGetSetGo, MSGBOX_DEFAULT - setvar VAR_0x8004, TRAINER_HILL_FUNC_START - special CallTrainerHillFunction + trainerhill_start releaseall end @@ -188,19 +178,16 @@ TrainerHill_Entrance_EventScript_CancelEntry:: @ 8268314 TrainerHill_Entrance_EventScript_SaveGame:: @ 826832E msgbox TrainerHill_Entrance_Text_SaveGameBeforeEnter, MSGBOX_DEFAULT - setvar VAR_0x8004, TRAINER_HILL_FUNC_SET_GAME_SAVED - special CallTrainerHillFunction + trainerhill_setsaved setvar VAR_TEMP_5, 1 call Common_EventScript_SaveGame compare VAR_RESULT, FALSE goto_if_eq TrainerHill_Entrance_EventScript_SaveFailed - setvar VAR_0x8004, TRAINER_HILL_FUNC_SET_GAME_SAVED - special CallTrainerHillFunction + trainerhill_setsaved return TrainerHill_Entrance_EventScript_SaveFailed:: @ 826835C - setvar VAR_0x8004, TRAINER_HILL_FUNC_CLEAR_GAME_SAVED - special CallTrainerHillFunction + trainerhill_clearsaved goto TrainerHill_Entrance_EventScript_CancelEntry end diff --git a/data/maps/TrainerHill_Roof/scripts.inc b/data/maps/TrainerHill_Roof/scripts.inc index af4c9ea5a..e4e2cbb49 100644 --- a/data/maps/TrainerHill_Roof/scripts.inc +++ b/data/maps/TrainerHill_Roof/scripts.inc @@ -4,12 +4,10 @@ TrainerHill_Roof_MapScripts:: @ 8268FA7 .byte 0 TrainerHill_Roof_EventScript_Owner:: @ 8268FB2 - setvar VAR_0x8004, TRAINER_HILL_FUNC_SET_ALL_TRAINER_FLAGS - special CallTrainerHillFunction + trainerhill_settrainerflags lock faceplayer - setvar VAR_0x8004, TRAINER_HILL_FUNC_GET_OWNER_STATE - special CallTrainerHillFunction + trainerhill_getownerstate switch VAR_RESULT case 0, TrainerHill_Roof_EventScript_Arrived case 1, TrainerHill_Roof_EventScript_GivePrize @@ -17,8 +15,7 @@ TrainerHill_Roof_EventScript_Owner:: @ 8268FB2 TrainerHill_Roof_EventScript_Arrived:: @ 8268FEA msgbox TrainerHill_Roof_Text_YouFinallyCameBravo, MSGBOX_DEFAULT TrainerHill_Roof_EventScript_GivePrize:: @ 8268FF2 - setvar VAR_0x8004, TRAINER_HILL_FUNC_GIVE_PRIZE - special CallTrainerHillFunction + trainerhill_giveprize switch VAR_RESULT case 0, TrainerHill_Roof_EventScript_ReceivePrize case 1, TrainerHill_Roof_EventScript_NoRoomForPrize @@ -38,8 +35,7 @@ TrainerHill_Roof_EventScript_NoRoomForPrize:: @ 8269037 goto TrainerHill_Roof_EventScript_CheckFinalTime TrainerHill_Roof_EventScript_CheckFinalTime:: @ 8269054 - setvar VAR_0x8004, TRAINER_HILL_FUNC_CHECK_FINAL_TIME - special CallTrainerHillFunction + trainerhill_finaltime switch VAR_RESULT case 0, TrainerHill_Roof_EventScript_NewRecord case 1, TrainerHill_Roof_EventScript_NoNewRecord diff --git a/data/scripts/field_poison.inc b/data/scripts/field_poison.inc index d45b480d1..f33292fe6 100644 --- a/data/scripts/field_poison.inc +++ b/data/scripts/field_poison.inc @@ -39,9 +39,8 @@ EventScript_FrontierFieldWhiteOut:: @ 82736F8 goto_if_eq BattleFrontier_BattlePyramidTop_EventScript_252B42 compare VAR_RESULT, 2 goto_if_eq BattleFrontier_BattlePyramidTop_EventScript_252B42 - setvar VAR_0x8004, TRAINER_HILL_FUNC_IN_CHALLENGE - special CallTrainerHillFunction - compare VAR_RESULT, 1 + trainerhill_inchallenge + compare VAR_RESULT, TRUE goto_if_eq TrainerHill_1F_EventScript_Lost special Script_FadeOutMapMusic waitstate diff --git a/data/scripts/trainer_hill.inc b/data/scripts/trainer_hill.inc index c655a3c9c..e57cf923b 100644 --- a/data/scripts/trainer_hill.inc +++ b/data/scripts/trainer_hill.inc @@ -1,7 +1,6 @@ TrainerHill_OnResume: @ 82C8336 setvar VAR_TEMP_2, 0 - setvar VAR_0x8004, TRAINER_HILL_FUNC_RESUME_TIMER - special CallTrainerHillFunction + trainerhill_resumetimer frontier_getbattleoutcome compare VAR_RESULT, B_OUTCOME_LOST goto_if_eq TrainerHill_1F_EventScript_Lost @@ -26,16 +25,14 @@ TrainerHill_OnFrame: @ 82C8381 EventScript_TrainerHillTimer:: @ 82C8393 lockall - setvar VAR_0x8004, TRAINER_HILL_FUNC_GET_CHALLENGE_TIME - special CallTrainerHillFunction + trainerhill_gettime msgbox TrainerHill_Entrance_Text_ChallengeTime, MSGBOX_DEFAULT releaseall end TrainerHill_1F_EventScript_DummyWarpToEntranceCounter:: @ 82C83A6 setvar VAR_TEMP_2, 1 - setvar VAR_0x8004, TRAINER_HILL_FUNC_CLEAR_RESULT - special CallTrainerHillFunction + trainerhill_clearresult compare VAR_RESULT, 1 @ VAR_RESULT always 0 here goto_if_eq TrainerHill_1F_EventScript_WarpSilentToEntranceCounter end @@ -47,10 +44,8 @@ TrainerHill_1F_EventScript_WarpSilentToEntranceCounter:: @ 82C83BF end TrainerHill_1F_EventScript_Lost:: @ 82C83C9 - setvar VAR_0x8004, TRAINER_HILL_FUNC_SET_ALL_TRAINER_FLAGS - special CallTrainerHillFunction - setvar VAR_0x8004, TRAINER_HILL_FUNC_SET_LOST - special CallTrainerHillFunction + trainerhill_settrainerflags + trainerhill_lost setvar VAR_TEMP_1, 1 end @@ -68,8 +63,7 @@ TrainerHill_1F_Movement_SetInvisible:: @ 82C83EE @ TRAINER_PHILLIP is an actual Trainer on the SS Tidal, but is used as a placeholder here TrainerHill_EventScript_TrainerBattle:: @ 82C83F0 trainerbattle TRAINER_BATTLE_HILL, TRAINER_PHILLIP, 0, BattleFacility_TrainerBattle_PlaceholderText, BattleFacility_TrainerBattle_PlaceholderText - setvar VAR_0x8004, TRAINER_HILL_FUNC_POST_BATTLE_TEXT - special CallTrainerHillFunction + trainerhill_postbattletext waitmessage waitbuttonpress closemessage diff --git a/include/constants/trainer_hill.h b/include/constants/trainer_hill.h index f7a270428..afbcd4ace 100644 --- a/include/constants/trainer_hill.h +++ b/include/constants/trainer_hill.h @@ -13,24 +13,24 @@ #define NUM_TRAINER_HILL_PRIZE_LISTS 10 -#define TRAINER_HILL_FUNC_START 0 -#define TRAINER_HILL_FUNC_GET_OWNER_STATE 1 -#define TRAINER_HILL_FUNC_GIVE_PRIZE 2 -#define TRAINER_HILL_FUNC_CHECK_FINAL_TIME 3 -#define TRAINER_HILL_FUNC_RESUME_TIMER 4 -#define TRAINER_HILL_FUNC_SET_LOST 5 -#define TRAINER_HILL_FUNC_GET_CHALLENGE_STATUS 6 -#define TRAINER_HILL_FUNC_GET_CHALLENGE_TIME 7 -#define TRAINER_HILL_FUNC_GET_ALL_FLOORS_USED 8 -#define TRAINER_HILL_FUNC_CLEAR_RESULT 9 -#define TRAINER_HILL_FUNC_IN_CHALLENGE 10 -#define TRAINER_HILL_FUNC_POST_BATTLE_TEXT 11 +#define TRAINER_HILL_FUNC_START 0 +#define TRAINER_HILL_FUNC_GET_OWNER_STATE 1 +#define TRAINER_HILL_FUNC_GIVE_PRIZE 2 +#define TRAINER_HILL_FUNC_CHECK_FINAL_TIME 3 +#define TRAINER_HILL_FUNC_RESUME_TIMER 4 +#define TRAINER_HILL_FUNC_SET_LOST 5 +#define TRAINER_HILL_FUNC_GET_CHALLENGE_STATUS 6 +#define TRAINER_HILL_FUNC_GET_CHALLENGE_TIME 7 +#define TRAINER_HILL_FUNC_GET_ALL_FLOORS_USED 8 +#define TRAINER_HILL_FUNC_CLEAR_RESULT 9 +#define TRAINER_HILL_FUNC_IN_CHALLENGE 10 +#define TRAINER_HILL_FUNC_POST_BATTLE_TEXT 11 #define TRAINER_HILL_FUNC_SET_ALL_TRAINER_FLAGS 12 -#define TRAINER_HILL_FUNC_GET_GAME_SAVED 13 -#define TRAINER_HILL_FUNC_SET_GAME_SAVED 14 -#define TRAINER_HILL_FUNC_CLEAR_GAME_SAVED 15 -#define TRAINER_HILL_FUNC_GET_WON 16 -#define TRAINER_HILL_FUNC_SET_TAG 17 +#define TRAINER_HILL_FUNC_GET_GAME_SAVED 13 +#define TRAINER_HILL_FUNC_SET_GAME_SAVED 14 +#define TRAINER_HILL_FUNC_CLEAR_GAME_SAVED 15 +#define TRAINER_HILL_FUNC_GET_WON 16 +#define TRAINER_HILL_FUNC_SET_TAG 17 #define TRAINER_HILL_TEXT_INTRO 2 #define TRAINER_HILL_TEXT_PLAYER_LOST 3 diff --git a/src/trainer_hill.c b/src/trainer_hill.c index b84920a62..c339a56e0 100644 --- a/src/trainer_hill.c +++ b/src/trainer_hill.c @@ -223,24 +223,24 @@ static const u8 *const sFloorStrings[] = static void (* const sHillFunctions[])(void) = { - [TRAINER_HILL_FUNC_START] = TrainerHillStartChallenge, - [TRAINER_HILL_FUNC_GET_OWNER_STATE] = GetOwnerState, - [TRAINER_HILL_FUNC_GIVE_PRIZE] = GiveChallengePrize, - [TRAINER_HILL_FUNC_CHECK_FINAL_TIME] = CheckFinalTime, - [TRAINER_HILL_FUNC_RESUME_TIMER] = TrainerHillResumeTimer, - [TRAINER_HILL_FUNC_SET_LOST] = TrainerHillSetPlayerLost, - [TRAINER_HILL_FUNC_GET_CHALLENGE_STATUS] = TrainerHillGetChallengeStatus, - [TRAINER_HILL_FUNC_GET_CHALLENGE_TIME] = BufferChallengeTime, - [TRAINER_HILL_FUNC_GET_ALL_FLOORS_USED] = GetAllFloorsUsed, - [TRAINER_HILL_FUNC_CLEAR_RESULT] = ClearVarResult, - [TRAINER_HILL_FUNC_IN_CHALLENGE] = IsTrainerHillChallengeActive, - [TRAINER_HILL_FUNC_POST_BATTLE_TEXT] = ShowTrainerHillPostBattleText, + [TRAINER_HILL_FUNC_START] = TrainerHillStartChallenge, + [TRAINER_HILL_FUNC_GET_OWNER_STATE] = GetOwnerState, + [TRAINER_HILL_FUNC_GIVE_PRIZE] = GiveChallengePrize, + [TRAINER_HILL_FUNC_CHECK_FINAL_TIME] = CheckFinalTime, + [TRAINER_HILL_FUNC_RESUME_TIMER] = TrainerHillResumeTimer, + [TRAINER_HILL_FUNC_SET_LOST] = TrainerHillSetPlayerLost, + [TRAINER_HILL_FUNC_GET_CHALLENGE_STATUS] = TrainerHillGetChallengeStatus, + [TRAINER_HILL_FUNC_GET_CHALLENGE_TIME] = BufferChallengeTime, + [TRAINER_HILL_FUNC_GET_ALL_FLOORS_USED] = GetAllFloorsUsed, + [TRAINER_HILL_FUNC_CLEAR_RESULT] = ClearVarResult, + [TRAINER_HILL_FUNC_IN_CHALLENGE] = IsTrainerHillChallengeActive, + [TRAINER_HILL_FUNC_POST_BATTLE_TEXT] = ShowTrainerHillPostBattleText, [TRAINER_HILL_FUNC_SET_ALL_TRAINER_FLAGS] = SetAllTrainerFlags, - [TRAINER_HILL_FUNC_GET_GAME_SAVED] = GetGameSaved, - [TRAINER_HILL_FUNC_SET_GAME_SAVED] = SetGameSaved, - [TRAINER_HILL_FUNC_CLEAR_GAME_SAVED] = ClearGameSaved, - [TRAINER_HILL_FUNC_GET_WON] = GetChallengeWon, - [TRAINER_HILL_FUNC_SET_TAG] = TrainerHillSetTag, + [TRAINER_HILL_FUNC_GET_GAME_SAVED] = GetGameSaved, + [TRAINER_HILL_FUNC_SET_GAME_SAVED] = SetGameSaved, + [TRAINER_HILL_FUNC_CLEAR_GAME_SAVED] = ClearGameSaved, + [TRAINER_HILL_FUNC_GET_WON] = GetChallengeWon, + [TRAINER_HILL_FUNC_SET_TAG] = TrainerHillSetTag, }; static const u8 *const sTagMatchStrings[] = -- cgit v1.2.3 From 63ee15fc28fee12a1a9433f52d392eb3c922a844 Mon Sep 17 00:00:00 2001 From: GriffinR Date: Sun, 24 Nov 2019 16:58:40 -0500 Subject: Document Frontier Util --- asm/macros/battle_frontier.inc | 830 +++++++++++---------- .../scripts.inc | 65 +- .../BattleFrontier_BattleArenaLobby/scripts.inc | 85 +-- .../scripts.inc | 70 +- .../BattleFrontier_BattleDomeCorridor/scripts.inc | 7 +- .../BattleFrontier_BattleDomeLobby/scripts.inc | 116 ++- .../scripts.inc | 23 +- .../scripts.inc | 68 +- .../BattleFrontier_BattleFactoryLobby/scripts.inc | 82 +- .../scripts.inc | 13 +- .../scripts.inc | 69 +- .../scripts.inc | 6 +- .../BattleFrontier_BattlePalaceLobby/scripts.inc | 101 +-- .../BattleFrontier_BattlePikeCorridor/scripts.inc | 10 +- .../BattleFrontier_BattlePikeLobby/scripts.inc | 78 +- .../BattleFrontier_BattlePikeRoomFinal/scripts.inc | 2 +- .../scripts.inc | 36 +- .../scripts.inc | 4 +- .../scripts.inc | 35 +- .../scripts.inc | 33 +- .../BattleFrontier_BattlePyramidLobby/scripts.inc | 77 +- .../BattleFrontier_BattlePyramidTop/scripts.inc | 51 +- .../scripts.inc | 98 +-- .../scripts.inc | 43 +- .../scripts.inc | 12 +- .../BattleFrontier_BattleTowerElevator/scripts.inc | 8 +- .../BattleFrontier_BattleTowerLobby/scripts.inc | 252 +++---- .../scripts.inc | 2 +- data/maps/BattleFrontier_ScottsHouse/scripts.inc | 12 +- .../FallarborTown_BattleTentBattleRoom/scripts.inc | 25 +- .../maps/FallarborTown_BattleTentLobby/scripts.inc | 93 +-- data/maps/MossdeepCity_SpaceCenter_2F/scripts.inc | 7 +- .../SlateportCity_BattleTentBattleRoom/scripts.inc | 10 +- .../SlateportCity_BattleTentCorridor/scripts.inc | 21 +- .../maps/SlateportCity_BattleTentLobby/scripts.inc | 84 +-- .../scripts.inc | 6 +- .../scripts.inc | 21 +- .../VerdanturfTown_BattleTentLobby/scripts.inc | 95 +-- data/scripts/battle_pike.inc | 20 +- data/scripts/trainer_hill.inc | 2 +- data/specials.inc | 6 +- include/battle_message.h | 2 +- include/constants/battle_frontier.h | 8 +- include/constants/frontier_util.h | 54 +- include/constants/global.h | 9 +- include/constants/trainers.h | 82 +- include/frontier_util.h | 6 +- include/global.h | 66 +- include/strings.h | 2 +- include/tv.h | 4 +- src/battle_arena.c | 27 +- src/battle_dome.c | 46 +- src/battle_factory.c | 31 +- src/battle_message.c | 2 +- src/battle_palace.c | 34 +- src/battle_pike.c | 35 +- src/battle_pyramid.c | 41 +- src/battle_tent.c | 48 +- src/battle_tower.c | 316 ++++---- .../battle_frontier/battle_frontier_trainers.h | 12 +- src/data/battle_frontier/trainer_hill.h | 4 +- src/data/pokemon/trainer_class_lookups.h | 4 +- src/frontier_util.c | 388 +++++----- src/link.c | 2 +- src/mystery_gift.c | 2 +- src/new_game.c | 4 +- src/overworld.c | 2 +- src/pokemon.c | 2 +- src/record_mixing.c | 4 +- src/recorded_battle.c | 8 +- src/reset_rtc_screen.c | 2 +- src/save.c | 4 +- src/script_pokemon_util_80F87D8.c | 2 +- src/trainer_card.c | 4 +- src/tv.c | 31 +- 75 files changed, 1813 insertions(+), 2153 deletions(-) diff --git a/asm/macros/battle_frontier.inc b/asm/macros/battle_frontier.inc index 4e04043d8..ca06bc178 100644 --- a/asm/macros/battle_frontier.inc +++ b/asm/macros/battle_frontier.inc @@ -1,402 +1,452 @@ -@ Frontier Util - -.macro frontier_checkoutcome -setvar VAR_0x8004, FRONTIER_UTIL_FUNC_GET_STATUS -special CallFrontierUtilFunc -.endm - -.macro frontier_getchallengestatus -setvar VAR_0x8004, FRONTIER_UTIL_FUNC_GET_DATA -setvar VAR_0x8005, 0 -special CallFrontierUtilFunc -.endm - -.macro frontier_setchallengestatus status:req -setvar VAR_0x8004, FRONTIER_UTIL_FUNC_SET_DATA -setvar VAR_0x8005, 0 -setvar VAR_0x8006, \status -special CallFrontierUtilFunc -.endm - -.macro frontier_getlvlmode -setvar VAR_0x8004, FRONTIER_UTIL_FUNC_GET_DATA -setvar VAR_0x8005, 1 -special CallFrontierUtilFunc -.endm - -.macro frontier_setlvlmode lvlmode:req -setvar VAR_0x8004, FRONTIER_UTIL_FUNC_SET_DATA -setvar VAR_0x8005, 1 -setvar VAR_0x8006, \lvlmode -special CallFrontierUtilFunc -.endm - -.macro frontier_getbattlenum -setvar VAR_0x8004, FRONTIER_UTIL_FUNC_GET_DATA -setvar VAR_0x8005, 2 -special CallFrontierUtilFunc -.endm - -.macro frontier_setbattlenum battleNum:req -setvar VAR_0x8004, FRONTIER_UTIL_FUNC_SET_DATA -setvar VAR_0x8005, 2 -copyvar VAR_0x8006, \battleNum -special CallFrontierUtilFunc -.endm - -.macro frontier_getbattleoutcome -setvar VAR_0x8004, FRONTIER_UTIL_FUNC_GET_DATA -setvar VAR_0x8005, 5 -special CallFrontierUtilFunc -.endm - -.macro frontier_set data:req, val=0xFFFF -setvar VAR_0x8004, FRONTIER_UTIL_FUNC_SET_DATA -setvar VAR_0x8005, \data -.if \val == 0xFFFF -@ no value provided -.elseif \val >= VARS_START -copyvar VAR_0x8006, \val -.else -setvar VAR_0x8006, \val -.endif -special CallFrontierUtilFunc -.endm - -.macro frontier_loadselectedmons -setvar VAR_0x8004, FRONTIER_UTIL_FUNC_LOAD_SELECTED_PARTY -setvar VAR_0x8005, FRONTIER_PARTY_SIZE -special CallFrontierUtilFunc -.endm - -@ Facilities with only 1 mode dont provide the mode argument -.macro frontier_results facility:req, mode=0xFF -setvar VAR_0x8004, FRONTIER_UTIL_FUNC_RESULTS_WINDOW -setvar VAR_0x8005, \facility -.if \mode != 0xFF -setvar VAR_0x8006, \mode -.endif -special CallFrontierUtilFunc -.endm - -.macro frontier_getbrainstatus -setvar VAR_0x8004, FRONTIER_UTIL_FUNC_GET_BRAIN_STATUS -special CallFrontierUtilFunc -.endm - -.macro frontier_resetsketch -setvar VAR_0x8004, FRONTIER_UTIL_FUNC_RESET_SKETCH_MOVES -special CallFrontierUtilFunc -.endm - - -@ Battle Tower - -.macro battletower_getstreak -setvar VAR_0x8004, BATTLE_TOWER_FUNC_1 -setvar VAR_0x8005, 1 -special CallBattleTowerFunc -.endm - - -@ Battle Dome - - -@ Battle Palace - - -@ Battle Arena - - -@ Battle Factory - - -@ Battle Pike - -.macro battlepike_getstreak -setvar VAR_0x8004, BATTLE_PIKE_FUNC_GET_DATA -setvar VAR_0x8005, 1 -special CallBattlePikeFunction -.endm - -.macro battlepike_setstreak streak:req -setvar VAR_0x8004, BATTLE_PIKE_FUNC_SET_DATA -setvar VAR_0x8005, 1 -.if \streak >= VARS_START -copyvar VAR_0x8006, \streak -.else -setvar VAR_0x8006, \streak -.endif -special CallBattlePikeFunction -.endm - -.macro battlepike_isfinalroom -setvar VAR_0x8004, BATTLE_PIKE_FUNC_IS_FINAL_ROOM -special CallBattlePikeFunction -.endm - -.macro battlepike_setroomobjects -setvar VAR_0x8004, BATTLE_PIKE_FUNC_SET_ROOM_OBJECTS -special CallBattlePikeFunction -.endm - -.macro battlepike_getroomtype -setvar VAR_0x8004, BATTLE_PIKE_FUNC_GET_ROOM_TYPE -special CallBattlePikeFunction -.endm - -.macro battlepike_setnextroom -setvar VAR_0x8004, BATTLE_PIKE_FUNC_SET_ROOM_TYPE -special CallBattlePikeFunction -.endm - -.macro battlepike_gethint -setvar VAR_0x8004, BATTLE_PIKE_FUNC_GET_ROOM_TYPE_HINT -special CallBattlePikeFunction -.endm - -.macro battlepike_nohealing set:req -setvar VAR_0x8004, BATTLE_PIKE_FUNC_SET_HEALING_ROOMS_DISABLED -setvar VAR_0x8005, \set -special CallBattlePikeFunction -.endm + @ TODO: + @ Add macro comments + @ Split into individual files + @ Enforce tab spacing + @ Standardize Func->Function + + @ Frontier Util + + .macro frontier_getstatus + setvar VAR_0x8004, FRONTIER_UTIL_FUNC_GET_STATUS + special CallFrontierUtilFunc + .endm + + .macro frontier_get data:req + setvar VAR_0x8004, FRONTIER_UTIL_FUNC_GET_DATA + setvar VAR_0x8005, \data + special CallFrontierUtilFunc + .endm + + .macro frontier_set data:req, val=0xFFFF + setvar VAR_0x8004, FRONTIER_UTIL_FUNC_SET_DATA + setvar VAR_0x8005, \data + .if \val == 0xFFFF + @ no value provided + .elseif \val >= VARS_START + copyvar VAR_0x8006, \val + .else + setvar VAR_0x8006, \val + .endif + special CallFrontierUtilFunc + .endm + + .macro frontier_setpartyorder partySize:req + setvar VAR_0x8004, FRONTIER_UTIL_FUNC_SET_PARTY_ORDER + setvar VAR_0x8005, \partySize + special CallFrontierUtilFunc + .endm + + .macro frontier_reset + setvar VAR_0x8004, FRONTIER_UTIL_FUNC_SOFT_RESET + special CallFrontierUtilFunc + .endm + + .macro frontier_settrainers + setvar VAR_0x8004, FRONTIER_UTIL_FUNC_SET_TRAINERS + special CallFrontierUtilFunc + .endm + + .macro frontier_saveparty + setvar VAR_0x8004, FRONTIER_UTIL_FUNC_SAVE_PARTY + special CallFrontierUtilFunc + .endm + + @ Facilities with only 1 mode dont provide the mode argument + .macro frontier_results facility:req, mode=0xFF + setvar VAR_0x8004, FRONTIER_UTIL_FUNC_RESULTS_WINDOW + setvar VAR_0x8005, \facility + .if \mode != 0xFF + setvar VAR_0x8006, \mode + .endif + special CallFrontierUtilFunc + .endm + + .macro frontier_checkairshow + setvar VAR_0x8004, FRONTIER_UTIL_FUNC_CHECK_AIR_TV_SHOW + special CallFrontierUtilFunc + .endm + + .macro frontier_getbrainstatus + setvar VAR_0x8004, FRONTIER_UTIL_FUNC_GET_BRAIN_STATUS + special CallFrontierUtilFunc + .endm + + .macro frontier_isbrain + setvar VAR_0x8004, FRONTIER_UTIL_FUNC_IS_BRAIN + special CallFrontierUtilFunc + .endm + + .macro frontier_givepoints + setvar VAR_0x8004, FRONTIER_UTIL_FUNC_GIVE_BATTLE_POINTS + special CallFrontierUtilFunc + .endm + + .macro frontier_getsymbols + setvar VAR_0x8004, FRONTIER_UTIL_FUNC_GET_FACILITY_SYMBOLS + special CallFrontierUtilFunc + .endm + + .macro frontier_givesymbol + setvar VAR_0x8004, FRONTIER_UTIL_FUNC_GIVE_FACILITY_SYMBOL + special CallFrontierUtilFunc + .endm + + .macro frontier_isbattletype battleType:req + setvar VAR_0x8004, FRONTIER_UTIL_FUNC_CHECK_BATTLE_TYPE + setvar VAR_0x8005, \battleType + special CallFrontierUtilFunc + .endm + + .macro frontier_checkineligible + setvar VAR_0x8004, FRONTIER_UTIL_FUNC_CHECK_INELIGIBLE + special CallFrontierUtilFunc + .endm + + @ Validates the visiting E-Reader trainer. 0 if valid, 1 if not + .macro frontier_checkvisittrainer + setvar VAR_0x8004, FRONTIER_UTIL_FUNC_CHECK_VISIT_TRAINER + special CallFrontierUtilFunc + .endm + + .macro frontier_incrementstreak + setvar VAR_0x8004, FRONTIER_UTIL_FUNC_INCREMENT_STREAK + special CallFrontierUtilFunc + .endm + + .macro frontier_restorehelditems + setvar VAR_0x8004, FRONTIER_UTIL_FUNC_RESTORE_HELD_ITEMS + special CallFrontierUtilFunc + .endm + + .macro frontier_savebattle + setvar VAR_0x8004, FRONTIER_UTIL_FUNC_SAVE_BATTLE + special CallFrontierUtilFunc + .endm + + .macro frontier_gettrainername stringVar:req + setvar VAR_0x8004, FRONTIER_UTIL_FUNC_BUFFER_TRAINER_NAME + setvar VAR_0x8005, \stringVar + special CallFrontierUtilFunc + .endm + + .macro frontier_resetsketch + setvar VAR_0x8004, FRONTIER_UTIL_FUNC_RESET_SKETCH_MOVES + special CallFrontierUtilFunc + .endm + + .macro frontier_setbrainobj + setvar VAR_0x8004, FRONTIER_UTIL_FUNC_SET_BRAIN_OBJECT + special CallFrontierUtilFunc + .endm + -.macro battlepike_ispartyfullhealth -setvar VAR_0x8004, BATTLE_PIKE_FUNC_IS_PARTY_FULL_HEALTH -special CallBattlePikeFunction -.endm + @ Battle Tower + + .macro battletower_getstreak + setvar VAR_0x8004, BATTLE_TOWER_FUNC_1 + setvar VAR_0x8005, 1 + special CallBattleTowerFunc + .endm + + + @ Battle Dome + + + @ Battle Palace -@ Battle Pyramid + @ Battle Arena -@ Battle Tent + @ Battle Factory -@ Trainer Hill + @ Battle Pike -.macro trainerhill_start -setvar VAR_0x8004, TRAINER_HILL_FUNC_START -special CallTrainerHillFunction -.endm + .macro battlepike_getstreak + setvar VAR_0x8004, BATTLE_PIKE_FUNC_GET_DATA + setvar VAR_0x8005, 1 + special CallBattlePikeFunction + .endm -.macro trainerhill_getownerstate -setvar VAR_0x8004, TRAINER_HILL_FUNC_GET_OWNER_STATE -special CallTrainerHillFunction -.endm + .macro battlepike_setstreak streak:req + setvar VAR_0x8004, BATTLE_PIKE_FUNC_SET_DATA + setvar VAR_0x8005, 1 + .if \streak >= VARS_START + copyvar VAR_0x8006, \streak + .else + setvar VAR_0x8006, \streak + .endif + special CallBattlePikeFunction + .endm -.macro trainerhill_giveprize -setvar VAR_0x8004, TRAINER_HILL_FUNC_GIVE_PRIZE -special CallTrainerHillFunction -.endm + .macro battlepike_isfinalroom + setvar VAR_0x8004, BATTLE_PIKE_FUNC_IS_FINAL_ROOM + special CallBattlePikeFunction + .endm -.macro trainerhill_finaltime -setvar VAR_0x8004, TRAINER_HILL_FUNC_CHECK_FINAL_TIME -special CallTrainerHillFunction -.endm + .macro battlepike_setroomobjects + setvar VAR_0x8004, BATTLE_PIKE_FUNC_SET_ROOM_OBJECTS + special CallBattlePikeFunction + .endm -.macro trainerhill_resumetimer -setvar VAR_0x8004, TRAINER_HILL_FUNC_RESUME_TIMER -special CallTrainerHillFunction -.endm - -.macro trainerhill_lost -setvar VAR_0x8004, TRAINER_HILL_FUNC_SET_LOST -special CallTrainerHillFunction -.endm - -.macro trainerhill_getstatus -setvar VAR_0x8004, TRAINER_HILL_FUNC_GET_CHALLENGE_STATUS -special CallTrainerHillFunction -.endm - -.macro trainerhill_gettime -setvar VAR_0x8004, TRAINER_HILL_FUNC_GET_CHALLENGE_TIME -special CallTrainerHillFunction -.endm - -.macro trainerhill_allfloorsused -setvar VAR_0x8004, TRAINER_HILL_FUNC_GET_ALL_FLOORS_USED -special CallTrainerHillFunction -.endm - -.macro trainerhill_clearresult -setvar VAR_0x8004, TRAINER_HILL_FUNC_CLEAR_RESULT -special CallTrainerHillFunction -.endm - -.macro trainerhill_inchallenge -setvar VAR_0x8004, TRAINER_HILL_FUNC_IN_CHALLENGE -special CallTrainerHillFunction -.endm - -.macro trainerhill_postbattletext -setvar VAR_0x8004, TRAINER_HILL_FUNC_POST_BATTLE_TEXT -special CallTrainerHillFunction -.endm - -.macro trainerhill_settrainerflags -setvar VAR_0x8004, TRAINER_HILL_FUNC_SET_ALL_TRAINER_FLAGS -special CallTrainerHillFunction -.endm - -.macro trainerhill_getsaved -setvar VAR_0x8004, TRAINER_HILL_FUNC_GET_GAME_SAVED -special CallTrainerHillFunction -.endm - -.macro trainerhill_setsaved -setvar VAR_0x8004, TRAINER_HILL_FUNC_SET_GAME_SAVED -special CallTrainerHillFunction -.endm - -.macro trainerhill_clearsaved -setvar VAR_0x8004, TRAINER_HILL_FUNC_CLEAR_GAME_SAVED -special CallTrainerHillFunction -.endm - -.macro trainerhill_getwon -setvar VAR_0x8004, TRAINER_HILL_FUNC_GET_WON -special CallTrainerHillFunction -.endm - -.macro trainerhill_settag tag:req -setvar VAR_0x8004, TRAINER_HILL_FUNC_SET_TAG -copyvar VAR_0x8005, \tag -special CallTrainerHillFunction -.endm - - -@ Apprentice - -.macro apprentice_gavelvlmode -setvar VAR_0x8004, APPRENTICE_FUNC_GAVE_LVLMODE -special CallApprenticeFunction -.endm - -.macro apprentice_setlvlmode lvlmode:req -setvar VAR_0x8004, APPRENTICE_FUNC_SET_LVLMODE -setorcopyvar VAR_0x8005, \lvlmode -addvar VAR_0x8005, 1 -special CallApprenticeFunction -.endm - -.macro apprentice_answeredquestion -setvar VAR_0x8004, APPRENTICE_FUNC_ANSWERED_QUESTION -special CallApprenticeFunction -.endm - -.macro apprentice_menu which:req -setvar VAR_0x8004, APPRENTICE_FUNC_MENU -setvar VAR_0x8005, \which -special CallApprenticeFunction -waitstate -.endm - -.macro apprentice_shufflespecies -setvar VAR_0x8004, APPRENTICE_FUNC_SHUFFLE_SPECIES -special CallApprenticeFunction -.endm - -.macro apprentice_randomizequestions -setvar VAR_0x8004, APPRENTICE_FUNC_RANDOMIZE_QUESTIONS -special CallApprenticeFunction -.endm - -.macro apprentice_msg waitbuttonpress:req, which:req -setvar VAR_0x8004, APPRENTICE_FUNC_PRINT_MSG -setvar VAR_0x8005, \waitbuttonpress -setvar VAR_0x8006, \which -special CallApprenticeFunction -waitstate -.endm - -.macro apprentice_reset -setvar VAR_0x8004, APPRENTICE_FUNC_RESET -special CallApprenticeFunction -.endm - -.macro apprentice_shouldcheckgone -setvar VAR_0x8004, APPRENTICE_FUNC_CHECK_GONE -special CallApprenticeFunction -.endm - -.macro apprentice_getquestion -setvar VAR_0x8004, APPRENTICE_FUNC_GET_QUESTION -special CallApprenticeFunction -.endm - -.macro apprentice_getnumpartymons -setvar VAR_0x8004, APPRENTICE_FUNC_GET_NUM_PARTY_MONS -special CallApprenticeFunction -.endm - -.macro apprentice_setpartymon slot:req -copyvar VAR_0x8006, \slot -setvar VAR_0x8004, APPRENTICE_FUNC_SET_PARTY_MON -special CallApprenticeFunction -.endm - -.macro apprentice_initquestion which:req -setvar VAR_0x8004, APPRENTICE_FUNC_INIT_QUESTION_DATA -setvar VAR_0x8005, \which -special CallApprenticeFunction -.endm - -.macro apprentice_freequestion -setvar VAR_0x8004, APPRENTICE_FUNC_FREE_QUESTION_DATA -special CallApprenticeFunction -.endm - -.macro apprentice_buff whichstringvar:req, tobuff:req -setvar VAR_0x8004, APPRENTICE_FUNC_BUFFER_STRING -setvar VAR_0x8005, \whichstringvar -.if \tobuff >= VARS_START -copyvar VAR_0x8006, \tobuff -.else -setvar VAR_0x8006, \tobuff -.endif -special CallApprenticeFunction -.endm - -.macro apprentice_setmove -setvar VAR_0x8004, APPRENTICE_FUNC_SET_MOVE -special CallApprenticeFunction -.endm - -.macro apprentice_setleadmon monId:req -copyvar VAR_0x8005, \monId -setvar VAR_0x8004, APPRENTICE_FUNC_SET_LEAD_MON -special CallApprenticeFunction -.endm - -.macro apprentice_openbag -setvar VAR_0x8004, APPRENTICE_FUNC_OPEN_BAG -special CallApprenticeFunction -waitstate -.endm - -.macro apprentice_trysetitem -setvar VAR_0x8004, APPRENTICE_FUNC_TRY_SET_HELD_ITEM -special CallApprenticeFunction -.endm - -.macro apprentice_save -setvar VAR_0x8004, APPRENTICE_FUNC_SAVE -special CallApprenticeFunction -.endm - -.macro apprentice_setgfx -setvar VAR_0x8004, APPRENTICE_FUNC_SET_GFX -special CallApprenticeFunction -.endm - -.macro apprentice_shouldleave -setvar VAR_0x8004, APPRENTICE_FUNC_SHOULD_LEAVE -special CallApprenticeFunction -.endm - -.macro apprentice_shiftsaved -setvar VAR_0x8004, APPRENTICE_FUNC_SHIFT_SAVED -special CallApprenticeFunction -.endm + .macro battlepike_getroomtype + setvar VAR_0x8004, BATTLE_PIKE_FUNC_GET_ROOM_TYPE + special CallBattlePikeFunction + .endm + + .macro battlepike_setnextroom + setvar VAR_0x8004, BATTLE_PIKE_FUNC_SET_ROOM_TYPE + special CallBattlePikeFunction + .endm + + .macro battlepike_gethint + setvar VAR_0x8004, BATTLE_PIKE_FUNC_GET_ROOM_TYPE_HINT + special CallBattlePikeFunction + .endm + + .macro battlepike_nohealing set:req + setvar VAR_0x8004, BATTLE_PIKE_FUNC_SET_HEALING_ROOMS_DISABLED + setvar VAR_0x8005, \set + special CallBattlePikeFunction + .endm + + .macro battlepike_ispartyfullhealth + setvar VAR_0x8004, BATTLE_PIKE_FUNC_IS_PARTY_FULL_HEALTH + special CallBattlePikeFunction + .endm + + + @ Battle Pyramid + + + @ Battle Tent + + + @ Trainer Hill + + .macro trainerhill_start + setvar VAR_0x8004, TRAINER_HILL_FUNC_START + special CallTrainerHillFunction + .endm + + .macro trainerhill_getownerstate + setvar VAR_0x8004, TRAINER_HILL_FUNC_GET_OWNER_STATE + special CallTrainerHillFunction + .endm + + .macro trainerhill_giveprize + setvar VAR_0x8004, TRAINER_HILL_FUNC_GIVE_PRIZE + special CallTrainerHillFunction + .endm + + .macro trainerhill_finaltime + setvar VAR_0x8004, TRAINER_HILL_FUNC_CHECK_FINAL_TIME + special CallTrainerHillFunction + .endm + + .macro trainerhill_resumetimer + setvar VAR_0x8004, TRAINER_HILL_FUNC_RESUME_TIMER + special CallTrainerHillFunction + .endm + + .macro trainerhill_lost + setvar VAR_0x8004, TRAINER_HILL_FUNC_SET_LOST + special CallTrainerHillFunction + .endm + + .macro trainerhill_getstatus + setvar VAR_0x8004, TRAINER_HILL_FUNC_GET_CHALLENGE_STATUS + special CallTrainerHillFunction + .endm + + .macro trainerhill_gettime + setvar VAR_0x8004, TRAINER_HILL_FUNC_GET_CHALLENGE_TIME + special CallTrainerHillFunction + .endm + + .macro trainerhill_allfloorsused + setvar VAR_0x8004, TRAINER_HILL_FUNC_GET_ALL_FLOORS_USED + special CallTrainerHillFunction + .endm + + .macro trainerhill_clearresult + setvar VAR_0x8004, TRAINER_HILL_FUNC_CLEAR_RESULT + special CallTrainerHillFunction + .endm + + .macro trainerhill_inchallenge + setvar VAR_0x8004, TRAINER_HILL_FUNC_IN_CHALLENGE + special CallTrainerHillFunction + .endm + + .macro trainerhill_postbattletext + setvar VAR_0x8004, TRAINER_HILL_FUNC_POST_BATTLE_TEXT + special CallTrainerHillFunction + .endm + + .macro trainerhill_settrainerflags + setvar VAR_0x8004, TRAINER_HILL_FUNC_SET_ALL_TRAINER_FLAGS + special CallTrainerHillFunction + .endm + + .macro trainerhill_getsaved + setvar VAR_0x8004, TRAINER_HILL_FUNC_GET_GAME_SAVED + special CallTrainerHillFunction + .endm + + .macro trainerhill_setsaved + setvar VAR_0x8004, TRAINER_HILL_FUNC_SET_GAME_SAVED + special CallTrainerHillFunction + .endm + + .macro trainerhill_clearsaved + setvar VAR_0x8004, TRAINER_HILL_FUNC_CLEAR_GAME_SAVED + special CallTrainerHillFunction + .endm + + .macro trainerhill_getwon + setvar VAR_0x8004, TRAINER_HILL_FUNC_GET_WON + special CallTrainerHillFunction + .endm + + .macro trainerhill_settag tag:req + setvar VAR_0x8004, TRAINER_HILL_FUNC_SET_TAG + copyvar VAR_0x8005, \tag + special CallTrainerHillFunction + .endm + + + @ Apprentice + + .macro apprentice_gavelvlmode + setvar VAR_0x8004, APPRENTICE_FUNC_GAVE_LVLMODE + special CallApprenticeFunction + .endm + + .macro apprentice_setlvlmode lvlmode:req + setvar VAR_0x8004, APPRENTICE_FUNC_SET_LVLMODE + setorcopyvar VAR_0x8005, \lvlmode + addvar VAR_0x8005, 1 + special CallApprenticeFunction + .endm + + .macro apprentice_answeredquestion + setvar VAR_0x8004, APPRENTICE_FUNC_ANSWERED_QUESTION + special CallApprenticeFunction + .endm + + .macro apprentice_menu which:req + setvar VAR_0x8004, APPRENTICE_FUNC_MENU + setvar VAR_0x8005, \which + special CallApprenticeFunction + waitstate + .endm + + .macro apprentice_shufflespecies + setvar VAR_0x8004, APPRENTICE_FUNC_SHUFFLE_SPECIES + special CallApprenticeFunction + .endm + + .macro apprentice_randomizequestions + setvar VAR_0x8004, APPRENTICE_FUNC_RANDOMIZE_QUESTIONS + special CallApprenticeFunction + .endm + + .macro apprentice_msg waitbuttonpress:req, which:req + setvar VAR_0x8004, APPRENTICE_FUNC_PRINT_MSG + setvar VAR_0x8005, \waitbuttonpress + setvar VAR_0x8006, \which + special CallApprenticeFunction + waitstate + .endm + + .macro apprentice_reset + setvar VAR_0x8004, APPRENTICE_FUNC_RESET + special CallApprenticeFunction + .endm + + .macro apprentice_shouldcheckgone + setvar VAR_0x8004, APPRENTICE_FUNC_CHECK_GONE + special CallApprenticeFunction + .endm + + .macro apprentice_getquestion + setvar VAR_0x8004, APPRENTICE_FUNC_GET_QUESTION + special CallApprenticeFunction + .endm + + .macro apprentice_getnumpartymons + setvar VAR_0x8004, APPRENTICE_FUNC_GET_NUM_PARTY_MONS + special CallApprenticeFunction + .endm + + .macro apprentice_setpartymon slot:req + copyvar VAR_0x8006, \slot + setvar VAR_0x8004, APPRENTICE_FUNC_SET_PARTY_MON + special CallApprenticeFunction + .endm + + .macro apprentice_initquestion which:req + setvar VAR_0x8004, APPRENTICE_FUNC_INIT_QUESTION_DATA + setvar VAR_0x8005, \which + special CallApprenticeFunction + .endm + + .macro apprentice_freequestion + setvar VAR_0x8004, APPRENTICE_FUNC_FREE_QUESTION_DATA + special CallApprenticeFunction + .endm + + .macro apprentice_buff whichstringvar:req, tobuff:req + setvar VAR_0x8004, APPRENTICE_FUNC_BUFFER_STRING + setvar VAR_0x8005, \whichstringvar + .if \tobuff >= VARS_START + copyvar VAR_0x8006, \tobuff + .else + setvar VAR_0x8006, \tobuff + .endif + special CallApprenticeFunction + .endm + + .macro apprentice_setmove + setvar VAR_0x8004, APPRENTICE_FUNC_SET_MOVE + special CallApprenticeFunction + .endm + + .macro apprentice_setleadmon monId:req + copyvar VAR_0x8005, \monId + setvar VAR_0x8004, APPRENTICE_FUNC_SET_LEAD_MON + special CallApprenticeFunction + .endm + + .macro apprentice_openbag + setvar VAR_0x8004, APPRENTICE_FUNC_OPEN_BAG + special CallApprenticeFunction + waitstate + .endm + + .macro apprentice_trysetitem + setvar VAR_0x8004, APPRENTICE_FUNC_TRY_SET_HELD_ITEM + special CallApprenticeFunction + .endm + + .macro apprentice_save + setvar VAR_0x8004, APPRENTICE_FUNC_SAVE + special CallApprenticeFunction + .endm + + .macro apprentice_setgfx + setvar VAR_0x8004, APPRENTICE_FUNC_SET_GFX + special CallApprenticeFunction + .endm + + .macro apprentice_shouldleave + setvar VAR_0x8004, APPRENTICE_FUNC_SHOULD_LEAVE + special CallApprenticeFunction + .endm + + .macro apprentice_shiftsaved + setvar VAR_0x8004, APPRENTICE_FUNC_SHIFT_SAVED + special CallApprenticeFunction + .endm diff --git a/data/maps/BattleFrontier_BattleArenaBattleRoom/scripts.inc b/data/maps/BattleFrontier_BattleArenaBattleRoom/scripts.inc index 25dbbedf7..d95568275 100644 --- a/data/maps/BattleFrontier_BattleArenaBattleRoom/scripts.inc +++ b/data/maps/BattleFrontier_BattleArenaBattleRoom/scripts.inc @@ -10,8 +10,7 @@ BattleFrontier_BattleArenaBattleRoom_MapScript1_25749C: @ 825749C end BattleFrontier_BattleArenaBattleRoom_MapScript1_2574A0: @ 82574A0 - setvar VAR_0x8004, FRONTIER_UTIL_FUNC_SET_FRONTIER_TRAINERS - special CallFrontierUtilFunc + frontier_settrainers call BattleFrontier_BattleArenaBattleRoom_EventScript_2574AE end @@ -40,14 +39,14 @@ BattleFrontier_BattleArenaBattleRoom_EventScript_2574DC:: @ 82574DC showobjectat 8, MAP_BATTLE_FRONTIER_BATTLE_ARENA_BATTLE_ROOM applymovement 8, BattleFrontier_BattleArenaBattleRoom_Movement_257BE2 waitmovement 0 - frontier_getbattlenum + frontier_get FRONTIER_DATA_BATTLE_NUM compare VAR_RESULT, 0 goto_if_eq BattleFrontier_BattleArenaBattleRoom_EventScript_25752E applymovement 5, BattleFrontier_BattleArenaBattleRoom_Movement_257C08 applymovement 8, BattleFrontier_BattleArenaBattleRoom_Movement_257BEB setvar VAR_TEMP_2, 1 setvar VAR_0x8004, FRONTIER_UTIL_FUNC_SET_DATA - setvar VAR_0x8005, 6 + setvar VAR_0x8005, FRONTIER_DATA_6 setvar VAR_0x8006, 1 special CallFrontierUtilFunc goto BattleFrontier_BattleArenaBattleRoom_EventScript_2576B0 @@ -107,15 +106,15 @@ BattleFrontier_BattleArenaBattleRoom_EventScript_2575DB:: @ 82575DB msgbox BattleFrontier_BattleArenaBattleRoom_Text_257CCE, MSGBOX_DEFAULT BattleFrontier_BattleArenaBattleRoom_EventScript_257615:: @ 8257615 - frontier_setchallengestatus CHALLENGE_STATUS_LOST + frontier_set FRONTIER_DATA_CHALLENGE_STATUS, CHALLENGE_STATUS_LOST warp MAP_BATTLE_FRONTIER_BATTLE_ARENA_LOBBY, 255, 7, 8 waitstate BattleFrontier_BattleArenaBattleRoom_EventScript_257630:: @ 8257630 call BattleFrontier_BattleArenaBattleRoom_EventScript_257BA9 - frontier_getbattlenum + frontier_get FRONTIER_DATA_BATTLE_NUM addvar VAR_RESULT, 1 - frontier_setbattlenum VAR_RESULT + frontier_set FRONTIER_DATA_BATTLE_NUM, VAR_RESULT switch VAR_RESULT case 7, BattleFrontier_BattleArenaBattleRoom_EventScript_257852 applymovement 8, BattleFrontier_BattleArenaBattleRoom_Movement_257BE7 @@ -128,7 +127,7 @@ BattleFrontier_BattleArenaBattleRoom_EventScript_257630:: @ 8257630 msgbox BattleFrontier_BattleArenaBattleRoom_Text_257CE9, MSGBOX_DEFAULT special LoadPlayerParty special SavePlayerParty - frontier_loadselectedmons + frontier_setpartyorder FRONTIER_PARTY_SIZE playfanfare MUS_ME_ASA waitfanfare special HealPlayerParty @@ -138,7 +137,7 @@ BattleFrontier_BattleArenaBattleRoom_EventScript_2576B0:: @ 82576B0 copyvar VAR_TEMP_F, VAR_RESULT compare VAR_RESULT, FRONTIER_BRAIN_NOT_READY goto_if_ne BattleFrontier_BattleArenaBattleRoom_EventScript_2578BC - frontier_getbattlenum + frontier_get FRONTIER_DATA_BATTLE_NUM compare VAR_RESULT, 1 call_if_eq BattleFrontier_BattleArenaBattleRoom_EventScript_257870 compare VAR_RESULT, 2 @@ -180,7 +179,7 @@ BattleFrontier_BattleArenaBattleRoom_EventScript_25779E:: @ 825779E case MULTI_B_PRESSED, BattleFrontier_BattleArenaBattleRoom_EventScript_2576B0 BattleFrontier_BattleArenaBattleRoom_EventScript_2577D0:: @ 82577D0 - call BattleFrontier_BattleArenaBattleRoom_EventScript_23E8B4 + call BattleFrontier_EventScript_SaveBattle goto BattleFrontier_BattleArenaBattleRoom_EventScript_2576B0 BattleFrontier_BattleArenaBattleRoom_EventScript_2577DA:: @ 82577DA @@ -209,7 +208,7 @@ BattleFrontier_BattleArenaBattleRoom_EventScript_25783A:: @ 825783A BattleFrontier_BattleArenaBattleRoom_EventScript_257852:: @ 8257852 delay 60 - frontier_setchallengestatus CHALLENGE_STATUS_WON + frontier_set FRONTIER_DATA_CHALLENGE_STATUS, CHALLENGE_STATUS_WON warp MAP_BATTLE_FRONTIER_BATTLE_ARENA_LOBBY, 255, 7, 8 waitstate @@ -252,8 +251,7 @@ BattleFrontier_BattleArenaBattleRoom_EventScript_25789A:: @ 825789A playse SE_SAVE waitse fadescreen 1 - setvar VAR_0x8004, FRONTIER_UTIL_FUNC_SOFT_RESET - special CallFrontierUtilFunc + frontier_reset end BattleFrontier_BattleArenaBattleRoom_EventScript_2578BC:: @ 82578BC @@ -285,7 +283,7 @@ BattleFrontier_BattleArenaBattleRoom_EventScript_25792B:: @ 825792B case MULTI_B_PRESSED, BattleFrontier_BattleArenaBattleRoom_EventScript_2578D4 BattleFrontier_BattleArenaBattleRoom_EventScript_257961:: @ 8257961 - call BattleFrontier_BattleArenaBattleRoom_EventScript_242170 + call BattleFrontier_EventScript_SetBrainObjectGfx applymovement 8, BattleFrontier_BattleArenaBattleRoom_Movement_257BED applymovement 5, BattleFrontier_BattleArenaBattleRoom_Movement_257BED waitmovement 0 @@ -312,16 +310,12 @@ BattleFrontier_BattleArenaBattleRoom_EventScript_257961:: @ 8257961 case FRONTIER_BRAIN_GOLD, BattleFrontier_BattleArenaBattleRoom_EventScript_257AA5 case FRONTIER_BRAIN_STREAK, BattleFrontier_BattleArenaBattleRoom_EventScript_257A3F case FRONTIER_BRAIN_STREAK_LONG, BattleFrontier_BattleArenaBattleRoom_EventScript_257AF8 - setvar VAR_0x8004, FRONTIER_UTIL_FUNC_GET_DATA - setvar VAR_0x8005, 7 - special CallFrontierUtilFunc - compare VAR_RESULT, 0 + frontier_get FRONTIER_DATA_HEARD_BRAIN_SPEECH + compare VAR_RESULT, FALSE goto_if_ne BattleFrontier_BattleArenaBattleRoom_EventScript_257A3F msgbox BattleFrontier_BattleArenaBattleRoom_Text_25801C, MSGBOX_DEFAULT closemessage - setvar VAR_0x8004, FRONTIER_UTIL_FUNC_SET_DATA - setvar VAR_0x8005, 7 - special CallFrontierUtilFunc + frontier_set FRONTIER_DATA_HEARD_BRAIN_SPEECH applymovement 7, BattleFrontier_BattleArenaBattleRoom_Movement_257C30 waitmovement 0 msgbox BattleFrontier_BattleArenaBattleRoom_Text_25804E, MSGBOX_DEFAULT @@ -339,8 +333,7 @@ BattleFrontier_BattleArenaBattleRoom_EventScript_257A3F:: @ 8257A3F BattleFrontier_BattleArenaBattleRoom_EventScript_257A5C:: @ 8257A5C call BattleFrontier_BattleArenaBattleRoom_EventScript_257BA9 - setvar VAR_0x8004, FRONTIER_UTIL_FUNC_GET_FACILITY_SYMBOLS - special CallFrontierUtilFunc + frontier_getsymbols compare VAR_RESULT, 0 goto_if_ne BattleFrontier_BattleArenaBattleRoom_EventScript_257852 applymovement 7, BattleFrontier_BattleArenaBattleRoom_Movement_257BF1 @@ -350,22 +343,17 @@ BattleFrontier_BattleArenaBattleRoom_EventScript_257A5C:: @ 8257A5C message BattleFrontier_BattleArenaBattleRoom_Text_25819C waitmessage waitfanfare - setvar VAR_0x8004, FRONTIER_UTIL_FUNC_GIVE_FACILITY_SYMBOL - special CallFrontierUtilFunc + frontier_givesymbol msgbox BattleFrontier_BattleArenaBattleRoom_Text_2581CF, MSGBOX_DEFAULT goto BattleFrontier_BattleArenaBattleRoom_EventScript_257852 BattleFrontier_BattleArenaBattleRoom_EventScript_257AA5:: @ 8257AA5 - setvar VAR_0x8004, FRONTIER_UTIL_FUNC_GET_DATA - setvar VAR_0x8005, 7 - special CallFrontierUtilFunc - compare VAR_RESULT, 0 + frontier_get FRONTIER_DATA_HEARD_BRAIN_SPEECH + compare VAR_RESULT, FALSE goto_if_ne BattleFrontier_BattleArenaBattleRoom_EventScript_257AF8 msgbox BattleFrontier_BattleArenaBattleRoom_Text_258213, MSGBOX_DEFAULT closemessage - setvar VAR_0x8004, FRONTIER_UTIL_FUNC_SET_DATA - setvar VAR_0x8005, 7 - special CallFrontierUtilFunc + frontier_set FRONTIER_DATA_HEARD_BRAIN_SPEECH applymovement 7, BattleFrontier_BattleArenaBattleRoom_Movement_257C30 waitmovement 0 msgbox BattleFrontier_BattleArenaBattleRoom_Text_2582A2, MSGBOX_DEFAULT @@ -383,8 +371,7 @@ BattleFrontier_BattleArenaBattleRoom_EventScript_257AF8:: @ 8257AF8 BattleFrontier_BattleArenaBattleRoom_EventScript_257B15:: @ 8257B15 call BattleFrontier_BattleArenaBattleRoom_EventScript_257BA9 - setvar VAR_0x8004, FRONTIER_UTIL_FUNC_GET_FACILITY_SYMBOLS - special CallFrontierUtilFunc + frontier_getsymbols compare VAR_RESULT, 2 goto_if_eq BattleFrontier_BattleArenaBattleRoom_EventScript_257852 applymovement 7, BattleFrontier_BattleArenaBattleRoom_Movement_257BF1 @@ -394,8 +381,7 @@ BattleFrontier_BattleArenaBattleRoom_EventScript_257B15:: @ 8257B15 message BattleFrontier_BattleArenaBattleRoom_Text_25835B waitmessage waitfanfare - setvar VAR_0x8004, FRONTIER_UTIL_FUNC_GIVE_FACILITY_SYMBOL - special CallFrontierUtilFunc + frontier_givesymbol msgbox BattleFrontier_BattleArenaBattleRoom_Text_258383, MSGBOX_DEFAULT goto BattleFrontier_BattleArenaBattleRoom_EventScript_257852 @@ -409,7 +395,7 @@ FallarborTown_BattleTentBattleRoom_EventScript_257B6C:: @ 8257B6C closemessage setvar VAR_TEMP_2, 0 setvar VAR_0x8004, FRONTIER_UTIL_FUNC_SET_DATA - setvar VAR_0x8005, 6 + setvar VAR_0x8005, FRONTIER_DATA_6 setvar VAR_0x8006, 0 special CallFrontierUtilFunc special HealPlayerParty @@ -417,8 +403,7 @@ FallarborTown_BattleTentBattleRoom_EventScript_257B6C:: @ 8257B6C setvar VAR_0x8005, 0 special DoSpecialTrainerBattle waitstate - setvar VAR_0x8004, FRONTIER_UTIL_FUNC_18 - special CallFrontierUtilFunc + frontier_restorehelditems special HealPlayerParty frontier_resetsketch return @@ -434,7 +419,7 @@ BattleFrontier_BattleArenaBattleRoom_EventScript_257BA9:: @ 8257BA9 waitmovement 0 msgbox BattleFrontier_BattleArenaBattleRoom_Text_257CB3, MSGBOX_DEFAULT closemessage - call BattleFrontier_BattleArenaBattleRoom_EventScript_241EBA + call BattleFrontier_EventScript_IncrementWinStreak return BattleFrontier_BattleArenaBattleRoom_Movement_257BE2: @ 8257BE2 diff --git a/data/maps/BattleFrontier_BattleArenaLobby/scripts.inc b/data/maps/BattleFrontier_BattleArenaLobby/scripts.inc index 0948e87e8..589e78709 100644 --- a/data/maps/BattleFrontier_BattleArenaLobby/scripts.inc +++ b/data/maps/BattleFrontier_BattleArenaLobby/scripts.inc @@ -14,14 +14,14 @@ BattleFrontier_BattleArenaLobby_EventScript_255C4B:: @ 8255C4B BattleFrontier_BattleArenaLobby_MapScript2_255C55: @ 8255C55 map_script_2 VAR_TEMP_0, 0, BattleFrontier_BattleArenaLobby_EventScript_255C7F - map_script_2 VAR_TEMP_0, 1, BattleFrontier_BattleArenaLobby_EventScript_255C88 - map_script_2 VAR_TEMP_0, 2, BattleFrontier_BattleArenaLobby_EventScript_255DC0 - map_script_2 VAR_TEMP_0, 3, BattleFrontier_BattleArenaLobby_EventScript_255CCF - map_script_2 VAR_TEMP_0, 4, BattleFrontier_BattleArenaLobby_EventScript_255D2B + map_script_2 VAR_TEMP_0, CHALLENGE_STATUS_SAVING, BattleFrontier_BattleArenaLobby_EventScript_255C88 + map_script_2 VAR_TEMP_0, CHALLENGE_STATUS_PAUSED, BattleFrontier_BattleArenaLobby_EventScript_255DC0 + map_script_2 VAR_TEMP_0, CHALLENGE_STATUS_WON, BattleFrontier_BattleArenaLobby_EventScript_255CCF + map_script_2 VAR_TEMP_0, CHALLENGE_STATUS_LOST, BattleFrontier_BattleArenaLobby_EventScript_255D2B .2byte 0 BattleFrontier_BattleArenaLobby_EventScript_255C7F:: @ 8255C7F - frontier_checkoutcome + frontier_getstatus end BattleFrontier_BattleArenaLobby_EventScript_255C88:: @ 8255C88 @@ -36,18 +36,14 @@ BattleFrontier_BattleArenaLobby_EventScript_255C88:: @ 8255C88 setvar VAR_0x8005, 2 setvar VAR_0x8006, 0 special CallBattleArenaFunction - setvar VAR_0x8004, FRONTIER_UTIL_FUNC_SET_DATA - setvar VAR_0x8005, 0 - setvar VAR_0x8006, 0 - special CallFrontierUtilFunc + frontier_set FRONTIER_DATA_CHALLENGE_STATUS, 0 setvar VAR_TEMP_0, 255 releaseall end BattleFrontier_BattleArenaLobby_EventScript_255CCF:: @ 8255CCF lockall - setvar VAR_0x8004, FRONTIER_UTIL_FUNC_IS_FRONTIER_BRAIN - special CallFrontierUtilFunc + frontier_isbrain compare VAR_RESULT, TRUE goto_if_eq BattleFrontier_BattleArenaLobby_EventScript_255CF0 msgbox BattleFrontier_BattleArenaLobby_Text_2568E7, MSGBOX_DEFAULT @@ -58,8 +54,7 @@ BattleFrontier_BattleArenaLobby_EventScript_255CF0:: @ 8255CF0 BattleFrontier_BattleArenaLobby_EventScript_255CF8:: @ 8255CF8 msgbox BattleFrontier_BattleArenaLobby_Text_257353, MSGBOX_DEFAULT - setvar VAR_0x8004, FRONTIER_UTIL_FUNC_11 - special CallFrontierUtilFunc + frontier_givepoints msgbox BattleFrontier_Text_ObtainedXBattlePoints, MSGBOX_GETPOINTS message BattleFrontier_BattleArenaLobby_Text_256931 waitmessage @@ -86,8 +81,7 @@ BattleFrontier_BattleArenaLobby_EventScript_255D2B:: @ 8255D2B end BattleFrontier_BattleArenaLobby_EventScript_255D59:: @ 8255D59 - setvar VAR_0x8004, FRONTIER_UTIL_FUNC_8 - special CallFrontierUtilFunc + frontier_checkairshow special LoadPlayerParty special HealPlayerParty setvar VAR_0x8004, 3 @@ -107,8 +101,7 @@ BattleFrontier_BattleArenaLobby_EventScript_255D59:: @ 8255D59 case MULTI_B_PRESSED, BattleFrontier_BattleArenaLobby_EventScript_255DBF BattleFrontier_BattleArenaLobby_EventScript_255DBA:: @ 8255DBA - call BattleFrontier_BattleArenaLobby_EventScript_23E8B4 - + call BattleFrontier_EventScript_SaveBattle BattleFrontier_BattleArenaLobby_EventScript_255DBF:: @ 8255DBF return @@ -121,18 +114,15 @@ BattleFrontier_BattleArenaLobby_EventScript_255DC0:: @ 8255DC0 special CallBattleArenaFunction playse SE_SAVE waitse - setvar VAR_0x8004, FRONTIER_UTIL_FUNC_SET_DATA - setvar VAR_0x8005, 3 - setvar VAR_0x8006, 0 - special CallFrontierUtilFunc + frontier_set FRONTIER_DATA_PAUSED, FALSE setvar VAR_TEMP_0, 255 goto BattleFrontier_BattleArenaLobby_EventScript_255F54 BattleFrontier_BattleArenaLobby_EventScript_255DF4:: @ 8255DF4 lock faceplayer - setvar VAR_FRONTIER_FACILITY, 3 - setvar VAR_FRONTIER_BATTLE_MODE, 0 + setvar VAR_FRONTIER_FACILITY, FRONTIER_FACILITY_ARENA + setvar VAR_FRONTIER_BATTLE_MODE, FRONTIER_MODE_SINGLES special SavePlayerParty msgbox BattleFrontier_BattleArenaLobby_Text_256166, MSGBOX_DEFAULT @@ -151,19 +141,15 @@ BattleFrontier_BattleArenaLobby_EventScript_255E47:: @ 8255E47 waitmessage multichoice 17, 6, MULTI_LEVEL_MODE, 0 switch VAR_RESULT - case 2, BattleFrontier_BattleArenaLobby_EventScript_255FFB + case FRONTIER_LVL_TENT, BattleFrontier_BattleArenaLobby_EventScript_255FFB case MULTI_B_PRESSED, BattleFrontier_BattleArenaLobby_EventScript_255FFB - setvar VAR_0x8004, FRONTIER_UTIL_FUNC_15 - special CallFrontierUtilFunc - compare VAR_0x8004, 1 + frontier_checkineligible + compare VAR_0x8004, TRUE goto_if_eq BattleFrontier_BattleArenaLobby_EventScript_255FAC - setvar VAR_0x8004, FRONTIER_UTIL_FUNC_SET_DATA - setvar VAR_0x8005, 1 - copyvar VAR_0x8006, VAR_RESULT - special CallFrontierUtilFunc + frontier_set FRONTIER_DATA_LVL_MODE, VAR_RESULT msgbox BattleFrontier_BattleArenaLobby_Text_256573, MSGBOX_DEFAULT fadescreen 1 - call BattleFrontier_BattleArenaLobby_EventScript_23F2B7 + call BattleFrontier_EventScript_GetLvlMode copyvar VAR_0x8004, VAR_RESULT setvar VAR_0x8005, 3 special sub_80F9490 @@ -178,23 +164,15 @@ BattleFrontier_BattleArenaLobby_EventScript_255E47:: @ 8255E47 BattleFrontier_BattleArenaLobby_EventScript_255EE8:: @ 8255EE8 setvar VAR_TEMP_0, 0 - setvar VAR_0x8004, FRONTIER_UTIL_FUNC_SET_DATA - setvar VAR_0x8005, 4 - special CallFrontierUtilFunc + frontier_set FRONTIER_DATA_SELECTED_MON_ORDER setvar VAR_0x8004, 0 special CallBattleArenaFunction setvar VAR_0x8004, 2 setvar VAR_0x8005, 2 setvar VAR_0x8006, 1 special CallBattleArenaFunction - setvar VAR_0x8004, FRONTIER_UTIL_FUNC_SET_DATA - setvar VAR_0x8005, 0 - setvar VAR_0x8006, 1 - special CallFrontierUtilFunc - setvar VAR_0x8004, FRONTIER_UTIL_FUNC_SET_DATA - setvar VAR_0x8005, 3 - setvar VAR_0x8006, 0 - special CallFrontierUtilFunc + frontier_set FRONTIER_DATA_CHALLENGE_STATUS, CHALLENGE_STATUS_SAVING + frontier_set FRONTIER_DATA_PAUSED, FALSE special LoadPlayerParty closemessage delay 2 @@ -205,15 +183,13 @@ BattleFrontier_BattleArenaLobby_EventScript_255EE8:: @ 8255EE8 BattleFrontier_BattleArenaLobby_EventScript_255F54:: @ 8255F54 special SavePlayerParty - frontier_loadselectedmons + frontier_setpartyorder FRONTIER_PARTY_SIZE msgbox BattleFrontier_BattleArenaLobby_Text_2567E6, MSGBOX_DEFAULT closemessage - setvar VAR_0x8004, FRONTIER_UTIL_FUNC_GET_DATA - setvar VAR_0x8005, 1 - special CallFrontierUtilFunc - compare VAR_RESULT, 0 + frontier_get FRONTIER_DATA_LVL_MODE + compare VAR_RESULT, FRONTIER_LVL_50 call_if_eq BattleFrontier_BattleArenaLobby_EventScript_256005 - compare VAR_RESULT, 1 + compare VAR_RESULT, FRONTIER_LVL_OPEN call_if_eq BattleFrontier_BattleArenaLobby_EventScript_256050 warp MAP_BATTLE_FRONTIER_BATTLE_ARENA_CORRIDOR, 255, 9, 13 setvar VAR_TEMP_0, 0 @@ -226,8 +202,8 @@ BattleFrontier_BattleArenaLobby_EventScript_255F9F:: @ 8255F9F BattleFrontier_BattleArenaLobby_EventScript_255FAC:: @ 8255FAC switch VAR_RESULT - case 0, BattleFrontier_BattleArenaLobby_EventScript_255FC7 - case 1, BattleFrontier_BattleArenaLobby_EventScript_255FD4 + case FRONTIER_LVL_50, BattleFrontier_BattleArenaLobby_EventScript_255FC7 + case FRONTIER_LVL_OPEN, BattleFrontier_BattleArenaLobby_EventScript_255FD4 BattleFrontier_BattleArenaLobby_EventScript_255FC7:: @ 8255FC7 msgbox BattleFrontier_BattleArenaLobby_Text_2566A8, MSGBOX_DEFAULT @@ -238,18 +214,13 @@ BattleFrontier_BattleArenaLobby_EventScript_255FD4:: @ 8255FD4 goto BattleFrontier_BattleArenaLobby_EventScript_256003 BattleFrontier_BattleArenaLobby_EventScript_255FE1:: @ 8255FE1 - setvar VAR_0x8004, FRONTIER_UTIL_FUNC_SET_DATA - setvar VAR_0x8005, 0 - setvar VAR_0x8006, 0 - special CallFrontierUtilFunc + frontier_set FRONTIER_DATA_CHALLENGE_STATUS, 0 goto BattleFrontier_BattleArenaLobby_EventScript_255FFB BattleFrontier_BattleArenaLobby_EventScript_255FF8:: @ 8255FF8 special LoadPlayerParty - BattleFrontier_BattleArenaLobby_EventScript_255FFB:: @ 8255FFB msgbox BattleFrontier_BattleArenaLobby_Text_25621F, MSGBOX_DEFAULT - BattleFrontier_BattleArenaLobby_EventScript_256003:: @ 8256003 release end diff --git a/data/maps/BattleFrontier_BattleDomeBattleRoom/scripts.inc b/data/maps/BattleFrontier_BattleDomeBattleRoom/scripts.inc index 4322a12bc..fc8bd8197 100644 --- a/data/maps/BattleFrontier_BattleDomeBattleRoom/scripts.inc +++ b/data/maps/BattleFrontier_BattleDomeBattleRoom/scripts.inc @@ -8,7 +8,7 @@ BattleFrontier_BattleDomeBattleRoom_MapScripts:: @ 824BC9C BattleFrontier_BattleDomeBattleRoom_MapScript1_24BCB1: @ 824BCB1 setvar VAR_0x8004, 10 special CallBattleDomeFunction - frontier_getbattlenum + frontier_get FRONTIER_DATA_BATTLE_NUM copyvar VAR_TEMP_F, VAR_RESULT compare VAR_RESULT, 0 call_if_eq BattleFrontier_BattleDomeBattleRoom_EventScript_24C919 @@ -132,22 +132,18 @@ BattleFrontier_BattleDomeBattleRoom_EventScript_24BE8D:: @ 824BE8D special CallBattleDomeFunction BattleFrontier_BattleDomePreBattleRoom_EventScript_24BE9A:: @ 824BE9A - frontier_setchallengestatus CHALLENGE_STATUS_LOST + frontier_set FRONTIER_DATA_CHALLENGE_STATUS, CHALLENGE_STATUS_LOST goto BattleFrontier_BattleDomeBattleRoom_EventScript_24C8F5 @ goto BattleFrontier_BattleDomePreBattleRoom_EventScript_24C8F5 BattleFrontier_BattleDomeBattleRoom_EventScript_24BEB1:: @ 824BEB1 - setvar VAR_0x8004, FRONTIER_UTIL_FUNC_BUFFER_TRAINER_NAME - setvar VAR_0x8005, 1 - special CallFrontierUtilFunc + frontier_gettrainername 1 message BattleFrontier_BattleDomeBattleRoom_Text_24C9E1 waitmessage return BattleFrontier_BattleDomeBattleRoom_EventScript_24BEC5:: @ 824BEC5 - setvar VAR_0x8004, FRONTIER_UTIL_FUNC_BUFFER_TRAINER_NAME - setvar VAR_0x8005, 0 - special CallFrontierUtilFunc + frontier_gettrainername 0 message BattleFrontier_BattleDomeBattleRoom_Text_24CB34 waitmessage return @@ -172,9 +168,9 @@ BattleFrontier_BattleDomeBattleRoom_EventScript_24BEE0:: @ 824BEE0 setvar VAR_0x8004, 12 setvar VAR_0x8005, 1 special CallBattleDomeFunction - frontier_getbattlenum + frontier_get FRONTIER_DATA_BATTLE_NUM addvar VAR_RESULT, 1 - frontier_setbattlenum VAR_RESULT + frontier_set FRONTIER_DATA_BATTLE_NUM, VAR_RESULT switch VAR_RESULT case 4, BattleFrontier_BattleDomeBattleRoom_EventScript_24BF62 setvar VAR_0x8006, 1 @@ -184,11 +180,9 @@ BattleFrontier_BattleDomeBattleRoom_EventScript_24BEE0:: @ 824BEE0 BattleFrontier_BattleDomeBattleRoom_EventScript_24BF62:: @ 824BF62 applymovement 13, BattleFrontier_BattleDomeBattleRoom_Movement_24C77D waitmovement 0 - setvar VAR_0x8004, FRONTIER_UTIL_FUNC_GET_DATA - setvar VAR_0x8005, 1 - special CallFrontierUtilFunc + frontier_get FRONTIER_DATA_LVL_MODE switch VAR_RESULT - case 1, BattleFrontier_BattleDomeBattleRoom_EventScript_24BF96 + case FRONTIER_LVL_OPEN, BattleFrontier_BattleDomeBattleRoom_EventScript_24BF96 msgbox BattleFrontier_BattleDomeBattleRoom_Text_24CA04, MSGBOX_DEFAULT goto BattleFrontier_BattleDomeBattleRoom_EventScript_24BF9E @@ -200,7 +194,7 @@ BattleFrontier_BattleDomeBattleRoom_EventScript_24BF9E:: @ 824BF9E playse SE_W227B call BattleFrontier_BattleDomeBattleRoom_EventScript_24C82E delay 60 - frontier_setchallengestatus CHALLENGE_STATUS_WON + frontier_set FRONTIER_DATA_CHALLENGE_STATUS, CHALLENGE_STATUS_WON goto BattleFrontier_BattleDomeBattleRoom_EventScript_24C8F5 BattleFrontier_BattleDomeBattleRoom_EventScript_24BFC3:: @ 824BFC3 @@ -364,7 +358,7 @@ BattleFrontier_BattleDomeBattleRoom_EventScript_24C1B6:: @ 824C1B6 return BattleFrontier_BattleDomeBattleRoom_EventScript_24C1BD:: @ 824C1BD - frontier_getbattlenum + frontier_get FRONTIER_DATA_BATTLE_NUM return BattleFrontier_BattleDomeBattleRoom_EventScript_24C1CB:: @ 824C1CB @@ -411,16 +405,11 @@ BattleFrontier_BattleDomeBattleRoom_EventScript_24C211:: @ 824C211 case FRONTIER_BRAIN_GOLD, BattleFrontier_BattleDomeBattleRoom_EventScript_24C346 case FRONTIER_BRAIN_STREAK, BattleFrontier_BattleDomeBattleRoom_EventScript_24C2B9 case FRONTIER_BRAIN_STREAK_LONG, BattleFrontier_BattleDomeBattleRoom_EventScript_24C373 - setvar VAR_0x8004, FRONTIER_UTIL_FUNC_GET_DATA - setvar VAR_0x8005, 7 - special CallFrontierUtilFunc - compare VAR_RESULT, 0 + frontier_get FRONTIER_DATA_HEARD_BRAIN_SPEECH + compare VAR_RESULT, FALSE goto_if_ne BattleFrontier_BattleDomeBattleRoom_EventScript_24C2B9 msgbox BattleFrontier_BattleDomeBattleRoom_Text_24CFAE, MSGBOX_DEFAULT - setvar VAR_0x8004, FRONTIER_UTIL_FUNC_SET_DATA - setvar VAR_0x8005, 7 - special CallFrontierUtilFunc - + frontier_set FRONTIER_DATA_HEARD_BRAIN_SPEECH BattleFrontier_BattleDomeBattleRoom_EventScript_24C2B9:: @ 824C2B9 msgbox BattleFrontier_BattleDomeBattleRoom_Text_24D0D9, MSGBOX_DEFAULT call BattleFrontier_BattleDomeBattleRoom_EventScript_24C400 @@ -429,11 +418,10 @@ BattleFrontier_BattleDomeBattleRoom_EventScript_24C2B9:: @ 824C2B9 case 9, BattleFrontier_BattleDomeBattleRoom_EventScript_24C420 case 3, BattleFrontier_BattleDomeBattleRoom_EventScript_24C436 msgbox BattleFrontier_BattleDomeBattleRoom_Text_24D0F6, MSGBOX_DEFAULT - setvar VAR_0x8004, FRONTIER_UTIL_FUNC_GET_FACILITY_SYMBOLS + setvar VAR_0x8004, 12 setvar VAR_0x8005, 1 special CallBattleDomeFunction - setvar VAR_0x8004, FRONTIER_UTIL_FUNC_GET_FACILITY_SYMBOLS - special CallFrontierUtilFunc + frontier_getsymbols compare VAR_RESULT, 0 goto_if_ne BattleFrontier_BattleDomeBattleRoom_EventScript_24BF62 closemessage @@ -444,22 +432,16 @@ BattleFrontier_BattleDomeBattleRoom_EventScript_24C2B9:: @ 824C2B9 message BattleFrontier_BattleDomeBattleRoom_Text_24D1AA waitmessage waitfanfare - setvar VAR_0x8004, FRONTIER_UTIL_FUNC_GIVE_FACILITY_SYMBOL - special CallFrontierUtilFunc + frontier_givesymbol msgbox BattleFrontier_BattleDomeBattleRoom_Text_24D1E0, MSGBOX_DEFAULT goto BattleFrontier_BattleDomeBattleRoom_EventScript_24BF62 BattleFrontier_BattleDomeBattleRoom_EventScript_24C346:: @ 824C346 - setvar VAR_0x8004, FRONTIER_UTIL_FUNC_GET_DATA - setvar VAR_0x8005, 7 - special CallFrontierUtilFunc - compare VAR_RESULT, 0 + frontier_get FRONTIER_DATA_HEARD_BRAIN_SPEECH + compare VAR_RESULT, FALSE goto_if_ne BattleFrontier_BattleDomeBattleRoom_EventScript_24C373 msgbox BattleFrontier_BattleDomeBattleRoom_Text_24D319, MSGBOX_DEFAULT - setvar VAR_0x8004, FRONTIER_UTIL_FUNC_SET_DATA - setvar VAR_0x8005, 7 - special CallFrontierUtilFunc - + frontier_set FRONTIER_DATA_HEARD_BRAIN_SPEECH BattleFrontier_BattleDomeBattleRoom_EventScript_24C373:: @ 824C373 msgbox BattleFrontier_BattleDomeBattleRoom_Text_24D43E, MSGBOX_DEFAULT call BattleFrontier_BattleDomeBattleRoom_EventScript_24C400 @@ -471,8 +453,7 @@ BattleFrontier_BattleDomeBattleRoom_EventScript_24C373:: @ 824C373 setvar VAR_0x8004, 12 setvar VAR_0x8005, 1 special CallBattleDomeFunction - setvar VAR_0x8004, FRONTIER_UTIL_FUNC_GET_FACILITY_SYMBOLS - special CallFrontierUtilFunc + frontier_getsymbols compare VAR_RESULT, 2 goto_if_eq BattleFrontier_BattleDomeBattleRoom_EventScript_24BF62 closemessage @@ -483,8 +464,7 @@ BattleFrontier_BattleDomeBattleRoom_EventScript_24C373:: @ 824C373 message BattleFrontier_BattleDomeBattleRoom_Text_24D522 waitmessage waitfanfare - setvar VAR_0x8004, FRONTIER_UTIL_FUNC_GIVE_FACILITY_SYMBOL - special CallFrontierUtilFunc + frontier_givesymbol msgbox BattleFrontier_BattleDomeBattleRoom_Text_24D54D, MSGBOX_DEFAULT goto BattleFrontier_BattleDomeBattleRoom_EventScript_24BF62 @@ -510,7 +490,7 @@ BattleFrontier_BattleDomeBattleRoom_EventScript_24C436:: @ 824C436 BattleFrontier_BattleDomeBattleRoom_EventScript_24C440:: @ 824C440 setvar VAR_0x8004, FRONTIER_UTIL_FUNC_SET_DATA - setvar VAR_0x8005, 6 + setvar VAR_0x8005, FRONTIER_DATA_6 setvar VAR_0x8006, 0 special CallFrontierUtilFunc special HealPlayerParty @@ -537,14 +517,14 @@ BattleFrontier_BattleDomeBattleRoom_EventScript_24C48B:: @ 824C48B call BattleFrontier_BattleDomeBattleRoom_EventScript_24BCDC setvar VAR_TEMP_1, 1 applymovement EVENT_OBJ_ID_PLAYER, BattleFrontier_BattleDomeBattleRoom_Movement_24C773 - frontier_getbattlenum + frontier_get FRONTIER_DATA_BATTLE_NUM compare VAR_RESULT, 3 goto_if_ne BattleFrontier_BattleDomeBattleRoom_EventScript_24C4EF frontier_getbrainstatus copyvar VAR_TEMP_E, VAR_RESULT compare VAR_RESULT, FRONTIER_BRAIN_NOT_READY goto_if_eq BattleFrontier_BattleDomeBattleRoom_EventScript_24C4EF - call BattleFrontier_BattleDomeBattleRoom_EventScript_242170 + call BattleFrontier_EventScript_SetBrainObjectGfx setobjectxyperm 15, 13, 9 removeobject 15 addobject 15 @@ -933,7 +913,7 @@ BattleFrontier_BattleDomeBattleRoom_EventScript_24C82E:: @ 824C82E BattleFrontier_BattleDomeBattleRoom_EventScript_24C8F5:: @ 824C8F5 BattleFrontier_BattleDomePreBattleRoom_EventScript_24C8F5:: @ 824C8F5 copyvar VAR_RESULT, VAR_FRONTIER_BATTLE_MODE - compare VAR_RESULT, 1 + compare VAR_RESULT, FRONTIER_MODE_DOUBLES goto_if_eq BattleFrontier_BattleDomePreBattleRoom_EventScript_24C90F warp MAP_BATTLE_FRONTIER_BATTLE_DOME_LOBBY, 255, 5, 11 waitstate diff --git a/data/maps/BattleFrontier_BattleDomeCorridor/scripts.inc b/data/maps/BattleFrontier_BattleDomeCorridor/scripts.inc index 42ba5d33d..92be8bc3e 100644 --- a/data/maps/BattleFrontier_BattleDomeCorridor/scripts.inc +++ b/data/maps/BattleFrontier_BattleDomeCorridor/scripts.inc @@ -9,10 +9,8 @@ BattleFrontier_BattleDomeCorridor_MapScript2_24B104: @ 824B104 BattleFrontier_BattleDomeCorridor_EventScript_24B10E:: @ 824B10E delay 16 setvar VAR_TEMP_0, 1 - setvar VAR_0x8004, FRONTIER_UTIL_FUNC_GET_DATA - setvar VAR_0x8005, 1 - special CallFrontierUtilFunc - compare VAR_RESULT, 1 + frontier_get FRONTIER_DATA_LVL_MODE + compare VAR_RESULT, FRONTIER_LVL_OPEN goto_if_eq BattleFrontier_BattleDomeCorridor_EventScript_24B161 applymovement 1, BattleFrontier_BattleDomeCorridor_Movement_24B1B2 applymovement EVENT_OBJ_ID_PLAYER, BattleFrontier_BattleDomeCorridor_Movement_24B1A1 @@ -37,7 +35,6 @@ BattleFrontier_BattleDomeCorridor_EventScript_24B161:: @ 824B161 waitmovement 0 closedoor 37, 3 waitdooranim - BattleFrontier_BattleDomeCorridor_EventScript_24B18F:: @ 824B18F waitmovement 0 setvar VAR_0x8006, 0 diff --git a/data/maps/BattleFrontier_BattleDomeLobby/scripts.inc b/data/maps/BattleFrontier_BattleDomeLobby/scripts.inc index 323da2aed..81cd84dd9 100644 --- a/data/maps/BattleFrontier_BattleDomeLobby/scripts.inc +++ b/data/maps/BattleFrontier_BattleDomeLobby/scripts.inc @@ -21,14 +21,14 @@ BattleFrontier_BattleDomeLobby_EventScript_249805:: @ 8249805 BattleFrontier_BattleDomeLobby_MapScript2_24980F: @ 824980F map_script_2 VAR_TEMP_0, 0, BattleFrontier_BattleDomeLobby_EventScript_249839 - map_script_2 VAR_TEMP_0, 1, BattleFrontier_BattleDomeLobby_EventScript_249842 - map_script_2 VAR_TEMP_0, 2, BattleFrontier_BattleDomeLobby_EventScript_2499F9 - map_script_2 VAR_TEMP_0, 3, BattleFrontier_BattleDomeLobby_EventScript_24989B - map_script_2 VAR_TEMP_0, 4, BattleFrontier_BattleDomeLobby_EventScript_249940 + map_script_2 VAR_TEMP_0, CHALLENGE_STATUS_SAVING, BattleFrontier_BattleDomeLobby_EventScript_249842 + map_script_2 VAR_TEMP_0, CHALLENGE_STATUS_PAUSED, BattleFrontier_BattleDomeLobby_EventScript_2499F9 + map_script_2 VAR_TEMP_0, CHALLENGE_STATUS_WON, BattleFrontier_BattleDomeLobby_EventScript_24989B + map_script_2 VAR_TEMP_0, CHALLENGE_STATUS_LOST, BattleFrontier_BattleDomeLobby_EventScript_249940 .2byte 0 BattleFrontier_BattleDomeLobby_EventScript_249839:: @ 8249839 - frontier_checkoutcome + frontier_getstatus end BattleFrontier_BattleDomeLobby_EventScript_249842:: @ 8249842 @@ -47,19 +47,15 @@ BattleFrontier_BattleDomeLobby_EventScript_249842:: @ 8249842 setvar VAR_0x8005, 6 setvar VAR_0x8006, 1 special CallBattleDomeFunction - setvar VAR_0x8004, FRONTIER_UTIL_FUNC_SET_DATA - setvar VAR_0x8005, 0 - setvar VAR_0x8006, 0 - special CallFrontierUtilFunc + frontier_set FRONTIER_DATA_CHALLENGE_STATUS, 0 setvar VAR_TEMP_0, 255 releaseall end BattleFrontier_BattleDomeLobby_EventScript_24989B:: @ 824989B - call BattleFrontier_BattleDomeLobby_EventScript_241EBA + call BattleFrontier_EventScript_IncrementWinStreak lockall - setvar VAR_0x8004, FRONTIER_UTIL_FUNC_IS_FRONTIER_BRAIN - special CallFrontierUtilFunc + frontier_isbrain compare VAR_RESULT, TRUE goto_if_eq BattleFrontier_BattleDomeLobby_EventScript_2498C1 msgbox BattleFrontier_BattleDomeLobby_Text_24A4E9, MSGBOX_DEFAULT @@ -70,15 +66,13 @@ BattleFrontier_BattleDomeLobby_EventScript_2498C1:: @ 82498C1 BattleFrontier_BattleDomeLobby_EventScript_2498C9:: @ 82498C9 msgbox BattleFrontier_BattleDomeLobby_Text_24ADB1, MSGBOX_DEFAULT - setvar VAR_0x8004, FRONTIER_UTIL_FUNC_11 - special CallFrontierUtilFunc + frontier_givepoints msgbox BattleFrontier_Text_ObtainedXBattlePoints, MSGBOX_GETPOINTS message BattleFrontier_BattleDomeLobby_Text_24A5D6 waitmessage special LoadPlayerParty - frontier_loadselectedmons - setvar VAR_0x8004, FRONTIER_UTIL_FUNC_8 - special CallFrontierUtilFunc + frontier_setpartyorder FRONTIER_PARTY_SIZE + frontier_checkairshow setvar VAR_0x8004, 2 setvar VAR_0x8005, 6 setvar VAR_0x8006, 1 @@ -101,9 +95,8 @@ BattleFrontier_BattleDomeLobby_EventScript_249940:: @ 8249940 message BattleFrontier_BattleDomeLobby_Text_24A5D6 waitmessage special LoadPlayerParty - frontier_loadselectedmons - setvar VAR_0x8004, FRONTIER_UTIL_FUNC_8 - special CallFrontierUtilFunc + frontier_setpartyorder FRONTIER_PARTY_SIZE + frontier_checkairshow setvar VAR_0x8004, 2 setvar VAR_0x8005, 1 setvar VAR_0x8006, 0 @@ -133,8 +126,7 @@ BattleFrontier_BattleDomeLobby_EventScript_249991:: @ 8249991 case MULTI_B_PRESSED, BattleFrontier_BattleDomeLobby_EventScript_2499E9 BattleFrontier_BattleDomeLobby_EventScript_2499E4:: @ 82499E4 - call BattleFrontier_BattleDomeLobby_EventScript_23E8B4 - + call BattleFrontier_EventScript_SaveBattle BattleFrontier_BattleDomeLobby_EventScript_2499E9:: @ 82499E9 msgbox BattleFrontier_BattleDomeLobby_Text_249F74, MSGBOX_DEFAULT closemessage @@ -152,40 +144,37 @@ BattleFrontier_BattleDomeLobby_EventScript_2499F9:: @ 82499F9 special CallBattleDomeFunction playse SE_SAVE waitse - setvar VAR_0x8004, FRONTIER_UTIL_FUNC_SET_DATA - setvar VAR_0x8005, 3 - setvar VAR_0x8006, 0 - special CallFrontierUtilFunc + frontier_set FRONTIER_DATA_PAUSED, FALSE setvar VAR_TEMP_0, 255 goto BattleFrontier_BattleDomeLobby_EventScript_249BC2 BattleFrontier_BattleDomeLobby_EventScript_249A35:: @ 8249A35 lock faceplayer - setvar VAR_FRONTIER_FACILITY, 1 - setvar VAR_FRONTIER_BATTLE_MODE, 0 + setvar VAR_FRONTIER_FACILITY, FRONTIER_FACILITY_DOME + setvar VAR_FRONTIER_BATTLE_MODE, FRONTIER_MODE_SINGLES goto BattleFrontier_BattleDomeLobby_EventScript_249A59 end BattleFrontier_BattleDomeLobby_EventScript_249A47:: @ 8249A47 lock faceplayer - setvar VAR_FRONTIER_FACILITY, 1 - setvar VAR_FRONTIER_BATTLE_MODE, 1 + setvar VAR_FRONTIER_FACILITY, FRONTIER_FACILITY_DOME + setvar VAR_FRONTIER_BATTLE_MODE, FRONTIER_MODE_DOUBLES goto BattleFrontier_BattleDomeLobby_EventScript_249A59 end BattleFrontier_BattleDomeLobby_EventScript_249A59:: @ 8249A59 special SavePlayerParty - compare VAR_FRONTIER_BATTLE_MODE, 0 + compare VAR_FRONTIER_BATTLE_MODE, FRONTIER_MODE_SINGLES call_if_eq BattleFrontier_BattleDomeLobby_EventScript_249CFD - compare VAR_FRONTIER_BATTLE_MODE, 1 + compare VAR_FRONTIER_BATTLE_MODE, FRONTIER_MODE_DOUBLES call_if_eq BattleFrontier_BattleDomeLobby_EventScript_249D06 BattleFrontier_BattleDomeLobby_EventScript_249A72:: @ 8249A72 - compare VAR_FRONTIER_BATTLE_MODE, 0 + compare VAR_FRONTIER_BATTLE_MODE, FRONTIER_MODE_SINGLES call_if_eq BattleFrontier_BattleDomeLobby_EventScript_249D0F - compare VAR_FRONTIER_BATTLE_MODE, 1 + compare VAR_FRONTIER_BATTLE_MODE, FRONTIER_MODE_DOUBLES call_if_eq BattleFrontier_BattleDomeLobby_EventScript_249D15 waitmessage multichoice 17, 6, MULTI_CHALLENGEINFO, 0 @@ -200,19 +189,15 @@ BattleFrontier_BattleDomeLobby_EventScript_249ABF:: @ 8249ABF waitmessage multichoice 17, 6, MULTI_LEVEL_MODE, 0 switch VAR_RESULT - case 2, BattleFrontier_BattleDomeLobby_EventScript_249C64 + case FRONTIER_LVL_TENT, BattleFrontier_BattleDomeLobby_EventScript_249C64 case MULTI_B_PRESSED, BattleFrontier_BattleDomeLobby_EventScript_249C64 - setvar VAR_0x8004, FRONTIER_UTIL_FUNC_15 - special CallFrontierUtilFunc - compare VAR_0x8004, 1 + frontier_checkineligible + compare VAR_0x8004, TRUE goto_if_eq BattleFrontier_BattleDomeLobby_EventScript_249C15 - setvar VAR_0x8004, FRONTIER_UTIL_FUNC_SET_DATA - setvar VAR_0x8005, 1 - copyvar VAR_0x8006, VAR_RESULT - special CallFrontierUtilFunc + frontier_set FRONTIER_DATA_LVL_MODE, VAR_RESULT msgbox BattleFrontier_BattleDomeLobby_Text_24A26E, MSGBOX_DEFAULT fadescreen 1 - call BattleFrontier_BattleDomeLobby_EventScript_23F2B7 + call BattleFrontier_EventScript_GetLvlMode copyvar VAR_0x8004, VAR_RESULT setvar VAR_0x8005, 3 special sub_80F9490 @@ -227,19 +212,11 @@ BattleFrontier_BattleDomeLobby_EventScript_249ABF:: @ 8249ABF BattleFrontier_BattleDomeLobby_EventScript_249B60:: @ 8249B60 setvar VAR_TEMP_0, 0 - setvar VAR_0x8004, FRONTIER_UTIL_FUNC_SET_DATA - setvar VAR_0x8005, 4 - special CallFrontierUtilFunc + frontier_set FRONTIER_DATA_SELECTED_MON_ORDER setvar VAR_0x8004, 0 special CallBattleDomeFunction - setvar VAR_0x8004, FRONTIER_UTIL_FUNC_SET_DATA - setvar VAR_0x8005, 0 - setvar VAR_0x8006, 1 - special CallFrontierUtilFunc - setvar VAR_0x8004, FRONTIER_UTIL_FUNC_SET_DATA - setvar VAR_0x8005, 3 - setvar VAR_0x8006, 0 - special CallFrontierUtilFunc + frontier_set FRONTIER_DATA_CHALLENGE_STATUS, CHALLENGE_STATUS_SAVING + frontier_set FRONTIER_DATA_PAUSED, FALSE special LoadPlayerParty closemessage delay 2 @@ -252,7 +229,7 @@ BattleFrontier_BattleDomeLobby_EventScript_249B60:: @ 8249B60 BattleFrontier_BattleDomeLobby_EventScript_249BC2:: @ 8249BC2 special SavePlayerParty - frontier_loadselectedmons + frontier_setpartyorder FRONTIER_PARTY_SIZE setvar VAR_0x8004, 15 special CallBattleDomeFunction msgbox BattleFrontier_BattleDomeLobby_Text_24A437, MSGBOX_DEFAULT @@ -265,16 +242,16 @@ BattleFrontier_BattleDomeLobby_EventScript_249BC2:: @ 8249BC2 end BattleFrontier_BattleDomeLobby_EventScript_249BFA:: @ 8249BFA - compare VAR_FRONTIER_BATTLE_MODE, 0 + compare VAR_FRONTIER_BATTLE_MODE, FRONTIER_MODE_SINGLES call_if_eq BattleFrontier_BattleDomeLobby_EventScript_249D1B - compare VAR_FRONTIER_BATTLE_MODE, 1 + compare VAR_FRONTIER_BATTLE_MODE, FRONTIER_MODE_DOUBLES call_if_eq BattleFrontier_BattleDomeLobby_EventScript_249D24 goto BattleFrontier_BattleDomeLobby_EventScript_249A72 BattleFrontier_BattleDomeLobby_EventScript_249C15:: @ 8249C15 switch VAR_RESULT - case 0, BattleFrontier_BattleDomeLobby_EventScript_249C30 - case 1, BattleFrontier_BattleDomeLobby_EventScript_249C3D + case FRONTIER_LVL_50, BattleFrontier_BattleDomeLobby_EventScript_249C30 + case FRONTIER_LVL_OPEN, BattleFrontier_BattleDomeLobby_EventScript_249C3D BattleFrontier_BattleDomeLobby_EventScript_249C30:: @ 8249C30 msgbox BattleFrontier_BattleDomeLobby_Text_24A353, MSGBOX_DEFAULT @@ -285,10 +262,7 @@ BattleFrontier_BattleDomeLobby_EventScript_249C3D:: @ 8249C3D goto BattleFrontier_BattleDomeLobby_EventScript_249C6C BattleFrontier_BattleDomeLobby_EventScript_249C4A:: @ 8249C4A - setvar VAR_0x8004, FRONTIER_UTIL_FUNC_SET_DATA - setvar VAR_0x8005, 0 - setvar VAR_0x8006, 0 - special CallFrontierUtilFunc + frontier_set FRONTIER_DATA_CHALLENGE_STATUS, 0 goto BattleFrontier_BattleDomeLobby_EventScript_249C64 BattleFrontier_BattleDomeLobby_EventScript_249C61:: @ 8249C61 @@ -302,26 +276,26 @@ BattleFrontier_BattleDomeLobby_EventScript_249C6C:: @ 8249C6C end BattleFrontier_BattleDomeLobby_EventScript_249C6E:: @ 8249C6E - compare VAR_FRONTIER_BATTLE_MODE, 0 + compare VAR_FRONTIER_BATTLE_MODE, FRONTIER_MODE_SINGLES call_if_eq BattleFrontier_BattleDomeLobby_EventScript_249CDD - compare VAR_FRONTIER_BATTLE_MODE, 1 + compare VAR_FRONTIER_BATTLE_MODE, FRONTIER_MODE_DOUBLES call_if_eq BattleFrontier_BattleDomeLobby_EventScript_249CE5 applymovement EVENT_OBJ_ID_PLAYER, BattleFrontier_BattleDomeLobby_Movement_249D45 waitmovement 0 - compare VAR_FRONTIER_BATTLE_MODE, 0 + compare VAR_FRONTIER_BATTLE_MODE, FRONTIER_MODE_SINGLES call_if_eq BattleFrontier_BattleDomeLobby_EventScript_249D2D - compare VAR_FRONTIER_BATTLE_MODE, 1 + compare VAR_FRONTIER_BATTLE_MODE, FRONTIER_MODE_DOUBLES call_if_eq BattleFrontier_BattleDomeLobby_EventScript_249D33 waitdooranim - compare VAR_FRONTIER_BATTLE_MODE, 0 + compare VAR_FRONTIER_BATTLE_MODE, FRONTIER_MODE_SINGLES call_if_eq BattleFrontier_BattleDomeLobby_EventScript_249CED - compare VAR_FRONTIER_BATTLE_MODE, 1 + compare VAR_FRONTIER_BATTLE_MODE, FRONTIER_MODE_DOUBLES call_if_eq BattleFrontier_BattleDomeLobby_EventScript_249CF5 applymovement EVENT_OBJ_ID_PLAYER, BattleFrontier_BattleDomeLobby_Movement_249D4E waitmovement 0 - compare VAR_FRONTIER_BATTLE_MODE, 0 + compare VAR_FRONTIER_BATTLE_MODE, FRONTIER_MODE_SINGLES call_if_eq BattleFrontier_BattleDomeLobby_EventScript_249D39 - compare VAR_FRONTIER_BATTLE_MODE, 1 + compare VAR_FRONTIER_BATTLE_MODE, FRONTIER_MODE_DOUBLES call_if_eq BattleFrontier_BattleDomeLobby_EventScript_249D3F waitdooranim return diff --git a/data/maps/BattleFrontier_BattleDomePreBattleRoom/scripts.inc b/data/maps/BattleFrontier_BattleDomePreBattleRoom/scripts.inc index 4d6265e81..a9e002f60 100644 --- a/data/maps/BattleFrontier_BattleDomePreBattleRoom/scripts.inc +++ b/data/maps/BattleFrontier_BattleDomePreBattleRoom/scripts.inc @@ -20,7 +20,7 @@ BattleFrontier_BattleDomePreBattleRoom_EventScript_24B222:: @ 824B222 compare VAR_0x8006, 1 goto_if_eq BattleFrontier_BattleDomePreBattleRoom_EventScript_24B5C7 setvar VAR_0x8004, FRONTIER_UTIL_FUNC_SET_DATA - setvar VAR_0x8005, 6 + setvar VAR_0x8005, FRONTIER_DATA_6 setvar VAR_0x8006, 1 special CallFrontierUtilFunc setvar VAR_TEMP_0, 1 @@ -65,7 +65,7 @@ BattleFrontier_BattleDomePreBattleRoom_EventScript_24B30D:: @ 824B30D case MULTI_B_PRESSED, BattleFrontier_BattleDomePreBattleRoom_EventScript_24B24F BattleFrontier_BattleDomePreBattleRoom_EventScript_24B33F:: @ 824B33F - call BattleFrontier_BattleDomePreBattleRoom_EventScript_23E8B4 + call BattleFrontier_EventScript_SaveBattle goto BattleFrontier_BattleDomePreBattleRoom_EventScript_24B24F BattleFrontier_BattleDomePreBattleRoom_EventScript_24B349:: @ 824B349 @@ -99,8 +99,7 @@ BattleFrontier_BattleDomePreBattleRoom_EventScript_24B3BB:: @ 824B3BB playse SE_SAVE waitse fadescreen 1 - setvar VAR_0x8004, FRONTIER_UTIL_FUNC_SOFT_RESET - special CallFrontierUtilFunc + frontier_reset end BattleFrontier_BattleDomePreBattleRoom_EventScript_24B3DD:: @ 824B3DD @@ -120,9 +119,7 @@ BattleFrontier_BattleDomePreBattleRoom_EventScript_24B3F5:: @ 824B3F5 goto BattleFrontier_BattleDomePreBattleRoom_EventScript_24B24F BattleFrontier_BattleDomePreBattleRoom_EventScript_24B40A:: @ 824B40A - setvar VAR_0x8004, FRONTIER_UTIL_FUNC_GET_DATA - setvar VAR_0x8005, 2 - special CallFrontierUtilFunc + frontier_get FRONTIER_DATA_BATTLE_NUM switch VAR_RESULT case 0, BattleFrontier_BattleDomePreBattleRoom_EventScript_24B449 case 1, BattleFrontier_BattleDomePreBattleRoom_EventScript_24B452 @@ -151,7 +148,7 @@ BattleFrontier_BattleDomePreBattleRoom_EventScript_24B46D:: @ 824B46D waitmessage waitbuttonpress fadescreen 1 - call BattleFrontier_BattleDomePreBattleRoom_EventScript_23F2B7 + call BattleFrontier_EventScript_GetLvlMode copyvar VAR_0x8004, VAR_RESULT setvar VAR_0x8005, 2 special sub_80F9490 @@ -184,9 +181,7 @@ BattleFrontier_BattleDomePreBattleRoom_EventScript_24B46D:: @ 824B46D end BattleFrontier_BattleDomePreBattleRoom_EventScript_24B4FB:: @ 824B4FB - setvar VAR_0x8004, FRONTIER_UTIL_FUNC_GET_DATA - setvar VAR_0x8005, 2 - special CallFrontierUtilFunc + frontier_get FRONTIER_DATA_BATTLE_NUM switch VAR_RESULT case 0, BattleFrontier_BattleDomePreBattleRoom_EventScript_24B53A case 1, BattleFrontier_BattleDomePreBattleRoom_EventScript_24B540 @@ -240,7 +235,7 @@ BattleFrontier_BattleDomePreBattleRoom_EventScript_24B5C7:: @ 824B5C7 setvar VAR_TEMP_0, 1 msgbox BattleFrontier_BattleDomePreBattleRoom_Text_24B760, MSGBOX_DEFAULT special LoadPlayerParty - frontier_loadselectedmons + frontier_setpartyorder FRONTIER_PARTY_SIZE playfanfare MUS_ME_ASA waitfanfare special HealPlayerParty @@ -252,9 +247,7 @@ BattleFrontier_BattleDomePreBattleRoom_EventScript_24B5C7:: @ 824B5C7 goto BattleFrontier_BattleDomePreBattleRoom_EventScript_24B24F BattleFrontier_BattleDomePreBattleRoom_EventScript_24B600:: @ 824B600 - setvar VAR_0x8004, FRONTIER_UTIL_FUNC_GET_DATA - setvar VAR_0x8005, 2 - special CallFrontierUtilFunc + frontier_get FRONTIER_DATA_BATTLE_NUM switch VAR_RESULT case 1, BattleFrontier_BattleDomePreBattleRoom_EventScript_24B634 case 2, BattleFrontier_BattleDomePreBattleRoom_EventScript_24B63D diff --git a/data/maps/BattleFrontier_BattleFactoryBattleRoom/scripts.inc b/data/maps/BattleFrontier_BattleFactoryBattleRoom/scripts.inc index 443641d7f..0449f8050 100644 --- a/data/maps/BattleFrontier_BattleFactoryBattleRoom/scripts.inc +++ b/data/maps/BattleFrontier_BattleFactoryBattleRoom/scripts.inc @@ -5,8 +5,7 @@ BattleFrontier_BattleFactoryBattleRoom_MapScripts:: @ 825ADAB .byte 0 BattleFrontier_BattleFactoryBattleRoom_MapScript1_25ADBB: @ 825ADBB - setvar VAR_0x8004, FRONTIER_UTIL_FUNC_SET_FRONTIER_TRAINERS - special CallFrontierUtilFunc + frontier_settrainers checkplayergender compare VAR_RESULT, MALE call_if_eq BattleFrontier_BattleFactoryBattleRoom_EventScript_25AE25 @@ -19,7 +18,7 @@ BattleFrontier_BattleFactoryBattleRoom_MapScript1_25ADBB: @ 825ADBB end BattleFrontier_BattleFactoryBattleRoom_EventScript_25ADF3:: @ 825ADF3 - call BattleFrontier_BattleFactoryBattleRoom_EventScript_242170 + call BattleFrontier_EventScript_SetBrainObjectGfx setobjectxyperm 2, 7, 9 end @@ -85,7 +84,7 @@ BattleFrontier_BattleFactoryBattleRoom_EventScript_25AEA7:: @ 825AEA7 waitmessage closemessage setvar VAR_0x8004, FRONTIER_UTIL_FUNC_SET_DATA - setvar VAR_0x8005, 6 + setvar VAR_0x8005, FRONTIER_DATA_6 setvar VAR_0x8006, 0 special CallFrontierUtilFunc special HealPlayerParty @@ -98,7 +97,7 @@ BattleFrontier_BattleFactoryBattleRoom_EventScript_25AEA7:: @ 825AEA7 BattleFrontier_BattleFactoryBattleRoom_EventScript_25AEF8:: @ 825AEF8 BattleFrontier_BattleFactoryPreBattleRoom_EventScript_25AEF8:: @ 825AEF8 - frontier_setchallengestatus CHALLENGE_STATUS_LOST + frontier_set FRONTIER_DATA_CHALLENGE_STATUS, CHALLENGE_STATUS_LOST goto BattleFrontier_BattleFactoryBattleRoom_EventScript_25B190 @ goto BattleFrontier_BattleFactoryPreBattleRoom_EventScript_25B190 @@ -106,29 +105,26 @@ BattleFrontier_BattleFactoryBattleRoom_EventScript_25AF0F:: @ 825AF0F setvar VAR_0x8004, 1 setvar VAR_0x8005, 3 special CallBattleFactoryFunction - compare VAR_RESULT, 9999 + compare VAR_RESULT, MAX_STREAK goto_if_eq BattleFrontier_BattleFactoryBattleRoom_EventScript_25AF3E addvar VAR_RESULT, 1 setorcopyvar VAR_0x8006, VAR_RESULT setvar VAR_0x8004, 2 setvar VAR_0x8005, 3 special CallBattleFactoryFunction - BattleFrontier_BattleFactoryBattleRoom_EventScript_25AF3E:: @ 825AF3E - call BattleFrontier_BattleFactoryBattleRoom_EventScript_241EBA - + call BattleFrontier_EventScript_IncrementWinStreak BattleFrontier_BattleFactoryBattleRoom_EventScript_25AF43:: @ 825AF43 - frontier_getbattlenum + frontier_get FRONTIER_DATA_BATTLE_NUM addvar VAR_RESULT, 1 - frontier_setbattlenum VAR_RESULT + frontier_set FRONTIER_DATA_BATTLE_NUM, VAR_RESULT switch VAR_RESULT case 7, BattleFrontier_BattleFactoryBattleRoom_EventScript_25AF85 setvar VAR_0x8006, 1 warp MAP_BATTLE_FRONTIER_BATTLE_FACTORY_PRE_BATTLE_ROOM, 255, 8, 8 waitstate - BattleFrontier_BattleFactoryBattleRoom_EventScript_25AF85:: @ 825AF85 - frontier_setchallengestatus CHALLENGE_STATUS_WON + frontier_set FRONTIER_DATA_CHALLENGE_STATUS, CHALLENGE_STATUS_WON goto BattleFrontier_BattleFactoryBattleRoom_EventScript_25B190 BattleFrontier_BattleFactoryBattleRoom_EventScript_25AF9C:: @ 825AF9C @@ -136,16 +132,11 @@ BattleFrontier_BattleFactoryBattleRoom_EventScript_25AF9C:: @ 825AF9C case FRONTIER_BRAIN_GOLD, BattleFrontier_BattleFactoryBattleRoom_EventScript_25B051 case FRONTIER_BRAIN_STREAK, BattleFrontier_BattleFactoryBattleRoom_EventScript_25AFEF case FRONTIER_BRAIN_STREAK_LONG, BattleFrontier_BattleFactoryBattleRoom_EventScript_25B07E - setvar VAR_0x8004, FRONTIER_UTIL_FUNC_GET_DATA - setvar VAR_0x8005, 7 - special CallFrontierUtilFunc - compare VAR_RESULT, 0 + frontier_get FRONTIER_DATA_HEARD_BRAIN_SPEECH + compare VAR_RESULT, FALSE goto_if_ne BattleFrontier_BattleFactoryBattleRoom_EventScript_25AFEF msgbox BattleFrontier_BattleFactoryBattleRoom_Text_25B1FB, MSGBOX_DEFAULT - setvar VAR_0x8004, FRONTIER_UTIL_FUNC_SET_DATA - setvar VAR_0x8005, 7 - special CallFrontierUtilFunc - + frontier_set FRONTIER_DATA_HEARD_BRAIN_SPEECH BattleFrontier_BattleFactoryBattleRoom_EventScript_25AFEF:: @ 825AFEF msgbox BattleFrontier_BattleFactoryBattleRoom_Text_25B3F1, MSGBOX_DEFAULT call BattleFrontier_BattleFactoryBattleRoom_EventScript_25B0E0 @@ -154,8 +145,7 @@ BattleFrontier_BattleFactoryBattleRoom_EventScript_25AFEF:: @ 825AFEF goto BattleFrontier_BattleFactoryBattleRoom_EventScript_25AEF8 BattleFrontier_BattleFactoryBattleRoom_EventScript_25B00C:: @ 825B00C - setvar VAR_0x8004, FRONTIER_UTIL_FUNC_GET_FACILITY_SYMBOLS - special CallFrontierUtilFunc + frontier_getsymbols compare VAR_RESULT, 0 goto_if_ne BattleFrontier_BattleFactoryBattleRoom_EventScript_25B105 msgbox BattleFrontier_BattleFactoryBattleRoom_Text_25B42D, MSGBOX_DEFAULT @@ -166,22 +156,16 @@ BattleFrontier_BattleFactoryBattleRoom_EventScript_25B00C:: @ 825B00C message BattleFrontier_BattleFactoryBattleRoom_Text_25B460 waitmessage waitfanfare - setvar VAR_0x8004, FRONTIER_UTIL_FUNC_GIVE_FACILITY_SYMBOL - special CallFrontierUtilFunc + frontier_givesymbol msgbox BattleFrontier_BattleFactoryBattleRoom_Text_25B498, MSGBOX_DEFAULT goto BattleFrontier_BattleFactoryBattleRoom_EventScript_25B105 BattleFrontier_BattleFactoryBattleRoom_EventScript_25B051:: @ 825B051 - setvar VAR_0x8004, FRONTIER_UTIL_FUNC_GET_DATA - setvar VAR_0x8005, 7 - special CallFrontierUtilFunc - compare VAR_RESULT, 0 + frontier_get FRONTIER_DATA_HEARD_BRAIN_SPEECH + compare VAR_RESULT, FALSE goto_if_ne BattleFrontier_BattleFactoryBattleRoom_EventScript_25B07E msgbox BattleFrontier_BattleFactoryBattleRoom_Text_25B517, MSGBOX_DEFAULT - setvar VAR_0x8004, FRONTIER_UTIL_FUNC_SET_DATA - setvar VAR_0x8005, 7 - special CallFrontierUtilFunc - + frontier_set FRONTIER_DATA_HEARD_BRAIN_SPEECH BattleFrontier_BattleFactoryBattleRoom_EventScript_25B07E:: @ 825B07E msgbox BattleFrontier_BattleFactoryBattleRoom_Text_25B5CF, MSGBOX_DEFAULT call BattleFrontier_BattleFactoryBattleRoom_EventScript_25B0E0 @@ -190,8 +174,7 @@ BattleFrontier_BattleFactoryBattleRoom_EventScript_25B07E:: @ 825B07E goto BattleFrontier_BattleFactoryBattleRoom_EventScript_25AEF8 BattleFrontier_BattleFactoryBattleRoom_EventScript_25B09B:: @ 825B09B - setvar VAR_0x8004, FRONTIER_UTIL_FUNC_GET_FACILITY_SYMBOLS - special CallFrontierUtilFunc + frontier_getsymbols compare VAR_RESULT, 2 goto_if_eq BattleFrontier_BattleFactoryBattleRoom_EventScript_25B105 msgbox BattleFrontier_BattleFactoryBattleRoom_Text_25B5E7, MSGBOX_DEFAULT @@ -202,15 +185,14 @@ BattleFrontier_BattleFactoryBattleRoom_EventScript_25B09B:: @ 825B09B message BattleFrontier_BattleFactoryBattleRoom_Text_25B640 waitmessage waitfanfare - setvar VAR_0x8004, FRONTIER_UTIL_FUNC_GIVE_FACILITY_SYMBOL - special CallFrontierUtilFunc + frontier_givesymbol msgbox BattleFrontier_BattleFactoryBattleRoom_Text_25B66D, MSGBOX_DEFAULT goto BattleFrontier_BattleFactoryBattleRoom_EventScript_25B105 BattleFrontier_BattleFactoryBattleRoom_EventScript_25B0E0:: @ 825B0E0 closemessage setvar VAR_0x8004, FRONTIER_UTIL_FUNC_SET_DATA - setvar VAR_0x8005, 6 + setvar VAR_0x8005, FRONTIER_DATA_6 setvar VAR_0x8006, 0 special CallFrontierUtilFunc special HealPlayerParty @@ -224,7 +206,7 @@ BattleFrontier_BattleFactoryBattleRoom_EventScript_25B105:: @ 825B105 setvar VAR_0x8004, 1 setvar VAR_0x8005, 3 special CallBattleFactoryFunction - compare VAR_RESULT, 9999 + compare VAR_RESULT, MAX_STREAK goto_if_eq BattleFrontier_BattleFactoryBattleRoom_EventScript_25AF3E addvar VAR_RESULT, 1 setorcopyvar VAR_0x8006, VAR_RESULT @@ -234,16 +216,14 @@ BattleFrontier_BattleFactoryBattleRoom_EventScript_25B105:: @ 825B105 setvar VAR_0x8004, 1 setvar VAR_0x8005, 1 special CallBattleFactoryFunction - compare VAR_RESULT, 9999 + compare VAR_RESULT, MAX_STREAK goto_if_eq BattleFrontier_BattleFactoryBattleRoom_EventScript_25AF43 addvar VAR_RESULT, 1 setvar VAR_0x8004, 2 setvar VAR_0x8005, 1 copyvar VAR_0x8006, VAR_RESULT special CallBattleFactoryFunction - setvar VAR_0x8004, FRONTIER_UTIL_FUNC_GET_DATA - setvar VAR_0x8005, 2 - special CallFrontierUtilFunc + frontier_get FRONTIER_DATA_BATTLE_NUM addvar VAR_RESULT, 1 goto BattleFrontier_BattleFactoryBattleRoom_EventScript_25AF85 end @@ -280,7 +260,7 @@ BattleFrontier_BattleFactoryBattleRoom_Movement_25B18B: @ 825B18B BattleFrontier_BattleFactoryBattleRoom_EventScript_25B190:: @ 825B190 BattleFrontier_BattleFactoryPreBattleRoom_EventScript_25B190:: @ 825B190 copyvar VAR_RESULT, VAR_FRONTIER_BATTLE_MODE - compare VAR_RESULT, 1 + compare VAR_RESULT, FRONTIER_MODE_DOUBLES goto_if_eq BattleFrontier_BattleFactoryPreBattleRoom_EventScript_25B1AA warp MAP_BATTLE_FRONTIER_BATTLE_FACTORY_LOBBY, 255, 4, 8 waitstate diff --git a/data/maps/BattleFrontier_BattleFactoryLobby/scripts.inc b/data/maps/BattleFrontier_BattleFactoryLobby/scripts.inc index 028ac761a..2b429f7d6 100644 --- a/data/maps/BattleFrontier_BattleFactoryLobby/scripts.inc +++ b/data/maps/BattleFrontier_BattleFactoryLobby/scripts.inc @@ -14,14 +14,14 @@ BattleFrontier_BattleFactoryLobby_EventScript_2583FD:: @ 82583FD BattleFrontier_BattleFactoryLobby_MapScript2_258407: @ 8258407 map_script_2 VAR_TEMP_0, 0, BattleFrontier_BattleFactoryLobby_EventScript_258431 - map_script_2 VAR_TEMP_0, 1, BattleFrontier_BattleFactoryLobby_EventScript_25843A - map_script_2 VAR_TEMP_0, 2, BattleFrontier_BattleFactoryLobby_EventScript_258592 - map_script_2 VAR_TEMP_0, 3, BattleFrontier_BattleFactoryLobby_EventScript_25849B - map_script_2 VAR_TEMP_0, 4, BattleFrontier_BattleFactoryLobby_EventScript_258506 + map_script_2 VAR_TEMP_0, CHALLENGE_STATUS_SAVING, BattleFrontier_BattleFactoryLobby_EventScript_25843A + map_script_2 VAR_TEMP_0, CHALLENGE_STATUS_PAUSED, BattleFrontier_BattleFactoryLobby_EventScript_258592 + map_script_2 VAR_TEMP_0, CHALLENGE_STATUS_WON, BattleFrontier_BattleFactoryLobby_EventScript_25849B + map_script_2 VAR_TEMP_0, CHALLENGE_STATUS_LOST, BattleFrontier_BattleFactoryLobby_EventScript_258506 .2byte 0 BattleFrontier_BattleFactoryLobby_EventScript_258431:: @ 8258431 - frontier_checkoutcome + frontier_getstatus end BattleFrontier_BattleFactoryLobby_EventScript_25843A:: @ 825843A @@ -42,18 +42,14 @@ BattleFrontier_BattleFactoryLobby_EventScript_25843A:: @ 825843A setvar VAR_0x8005, 2 setvar VAR_0x8006, 0 special CallBattleFactoryFunction - setvar VAR_0x8004, FRONTIER_UTIL_FUNC_SET_DATA - setvar VAR_0x8005, 0 - setvar VAR_0x8006, 0 - special CallFrontierUtilFunc + frontier_set FRONTIER_DATA_CHALLENGE_STATUS, 0 setvar VAR_TEMP_0, 255 releaseall end BattleFrontier_BattleFactoryLobby_EventScript_25849B:: @ 825849B lockall - setvar VAR_0x8004, FRONTIER_UTIL_FUNC_IS_FRONTIER_BRAIN - special CallFrontierUtilFunc + frontier_isbrain compare VAR_RESULT, TRUE goto_if_eq BattleFrontier_BattleFactoryLobby_EventScript_2584BD msgbox BattleFrontier_BattleFactoryLobby_Text_258D93, MSGBOX_DEFAULT @@ -66,13 +62,11 @@ BattleFrontier_BattleFactoryLobby_EventScript_2584BD:: @ 82584BD BattleFrontier_BattleFactoryLobby_EventScript_2584C6:: @ 82584C6 msgbox BattleFrontier_BattleFactoryLobby_Text_2592BD, MSGBOX_DEFAULT - setvar VAR_0x8004, FRONTIER_UTIL_FUNC_11 - special CallFrontierUtilFunc + frontier_givepoints msgbox BattleFrontier_Text_ObtainedXBattlePoints, MSGBOX_GETPOINTS message BattleFrontier_BattleFactoryLobby_Text_259323 waitmessage - setvar VAR_0x8004, FRONTIER_UTIL_FUNC_8 - special CallFrontierUtilFunc + frontier_checkairshow special LoadPlayerParty setvar VAR_0x8004, 3 setvar VAR_0x8005, 0 @@ -86,8 +80,7 @@ BattleFrontier_BattleFactoryLobby_EventScript_258506:: @ 8258506 lockall message BattleFrontier_BattleFactoryLobby_Text_258CC7 waitmessage - setvar VAR_0x8004, FRONTIER_UTIL_FUNC_8 - special CallFrontierUtilFunc + frontier_checkairshow special LoadPlayerParty setvar VAR_0x8004, 2 setvar VAR_0x8005, 2 @@ -112,8 +105,7 @@ BattleFrontier_BattleFactoryLobby_EventScript_25853B:: @ 825853B case MULTI_B_PRESSED, BattleFrontier_BattleFactoryLobby_EventScript_258582 BattleFrontier_BattleFactoryLobby_EventScript_25857D:: @ 825857D - call BattleFrontier_BattleFactoryLobby_EventScript_23E8B4 - + call BattleFrontier_EventScript_SaveBattle BattleFrontier_BattleFactoryLobby_EventScript_258582:: @ 8258582 msgbox BattleFrontier_BattleFactoryLobby_Text_258BC5, MSGBOX_DEFAULT closemessage @@ -130,10 +122,7 @@ BattleFrontier_BattleFactoryLobby_EventScript_258592:: @ 8258592 special CallBattleFactoryFunction playse SE_SAVE waitse - setvar VAR_0x8004, FRONTIER_UTIL_FUNC_SET_DATA - setvar VAR_0x8005, 3 - setvar VAR_0x8006, 0 - special CallFrontierUtilFunc + frontier_set FRONTIER_DATA_PAUSED, FALSE setvar VAR_TEMP_0, 255 setvar VAR_0x8006, 2 goto BattleFrontier_BattleFactoryLobby_EventScript_25871A @@ -141,28 +130,28 @@ BattleFrontier_BattleFactoryLobby_EventScript_258592:: @ 8258592 BattleFrontier_BattleFactoryLobby_EventScript_2585CB:: @ 82585CB lock faceplayer - setvar VAR_FRONTIER_FACILITY, 4 - setvar VAR_FRONTIER_BATTLE_MODE, 0 + setvar VAR_FRONTIER_FACILITY, FRONTIER_FACILITY_FACTORY + setvar VAR_FRONTIER_BATTLE_MODE, FRONTIER_MODE_SINGLES goto BattleFrontier_BattleFactoryLobby_EventScript_2585ED end BattleFrontier_BattleFactoryLobby_EventScript_2585DD:: @ 82585DD - setvar VAR_FRONTIER_FACILITY, 4 - setvar VAR_FRONTIER_BATTLE_MODE, 1 + setvar VAR_FRONTIER_FACILITY, FRONTIER_FACILITY_FACTORY + setvar VAR_FRONTIER_BATTLE_MODE, FRONTIER_MODE_DOUBLES goto BattleFrontier_BattleFactoryLobby_EventScript_2585ED end BattleFrontier_BattleFactoryLobby_EventScript_2585ED:: @ 82585ED special SavePlayerParty - compare VAR_FRONTIER_BATTLE_MODE, 0 + compare VAR_FRONTIER_BATTLE_MODE, FRONTIER_MODE_SINGLES call_if_eq BattleFrontier_BattleFactoryLobby_EventScript_2587B1 - compare VAR_FRONTIER_BATTLE_MODE, 1 + compare VAR_FRONTIER_BATTLE_MODE, FRONTIER_MODE_DOUBLES call_if_eq BattleFrontier_BattleFactoryLobby_EventScript_2587BA BattleFrontier_BattleFactoryLobby_EventScript_258606:: @ 8258606 - compare VAR_FRONTIER_BATTLE_MODE, 0 + compare VAR_FRONTIER_BATTLE_MODE, FRONTIER_MODE_SINGLES call_if_eq BattleFrontier_BattleFactoryLobby_EventScript_2587C3 - compare VAR_FRONTIER_BATTLE_MODE, 1 + compare VAR_FRONTIER_BATTLE_MODE, FRONTIER_MODE_DOUBLES call_if_eq BattleFrontier_BattleFactoryLobby_EventScript_2587C9 waitmessage multichoice 17, 6, MULTI_CHALLENGEINFO, 0 @@ -177,12 +166,9 @@ BattleFrontier_BattleFactoryLobby_EventScript_258653:: @ 8258653 waitmessage multichoice 17, 6, MULTI_LEVEL_MODE, 0 switch VAR_RESULT - case 2, BattleFrontier_BattleFactoryLobby_EventScript_25879D + case FRONTIER_LVL_TENT, BattleFrontier_BattleFactoryLobby_EventScript_25879D case MULTI_B_PRESSED, BattleFrontier_BattleFactoryLobby_EventScript_25879D - setvar VAR_0x8004, FRONTIER_UTIL_FUNC_SET_DATA - setvar VAR_0x8005, 1 - copyvar VAR_0x8006, VAR_RESULT - special CallFrontierUtilFunc + frontier_set FRONTIER_DATA_LVL_MODE, VAR_RESULT msgbox BattleFrontier_BattleFactoryLobby_Text_258C27, MSGBOX_YESNO switch VAR_RESULT case NO, BattleFrontier_BattleFactoryLobby_EventScript_25879A @@ -193,18 +179,12 @@ BattleFrontier_BattleFactoryLobby_EventScript_2586B9:: @ 82586B9 setvar VAR_TEMP_0, 0 setvar VAR_0x8004, 0 special CallBattleFactoryFunction - setvar VAR_0x8004, FRONTIER_UTIL_FUNC_SET_DATA - setvar VAR_0x8005, 0 - setvar VAR_0x8006, 1 - special CallFrontierUtilFunc + frontier_set FRONTIER_DATA_CHALLENGE_STATUS, CHALLENGE_STATUS_SAVING setvar VAR_0x8004, 2 setvar VAR_0x8005, 2 setvar VAR_0x8006, 1 special CallBattleFactoryFunction - setvar VAR_0x8004, FRONTIER_UTIL_FUNC_SET_DATA - setvar VAR_0x8005, 3 - setvar VAR_0x8006, 0 - special CallFrontierUtilFunc + frontier_set FRONTIER_DATA_PAUSED, FALSE closemessage delay 2 call Common_EventScript_SaveGame @@ -217,9 +197,9 @@ BattleFrontier_BattleFactoryLobby_EventScript_25871A:: @ 825871A special SavePlayerParty msgbox BattleFrontier_BattleFactoryLobby_Text_258CB1, MSGBOX_DEFAULT closemessage - compare VAR_FRONTIER_BATTLE_MODE, 0 + compare VAR_FRONTIER_BATTLE_MODE, FRONTIER_MODE_SINGLES call_if_eq BattleFrontier_BattleFactoryLobby_EventScript_25875C - compare VAR_FRONTIER_BATTLE_MODE, 1 + compare VAR_FRONTIER_BATTLE_MODE, FRONTIER_MODE_DOUBLES call_if_eq BattleFrontier_BattleFactoryLobby_EventScript_258762 applymovement VAR_LAST_TALKED, BattleFrontier_BattleFactoryLobby_Movement_2587A7 applymovement EVENT_OBJ_ID_PLAYER, BattleFrontier_BattleFactoryLobby_Movement_2587AC @@ -238,22 +218,18 @@ BattleFrontier_BattleFactoryLobby_EventScript_258762:: @ 8258762 return BattleFrontier_BattleFactoryLobby_EventScript_258768:: @ 8258768 - compare VAR_FRONTIER_BATTLE_MODE, 0 + compare VAR_FRONTIER_BATTLE_MODE, FRONTIER_MODE_SINGLES call_if_eq BattleFrontier_BattleFactoryLobby_EventScript_2587CF - compare VAR_FRONTIER_BATTLE_MODE, 1 + compare VAR_FRONTIER_BATTLE_MODE, FRONTIER_MODE_DOUBLES call_if_eq BattleFrontier_BattleFactoryLobby_EventScript_2587D8 goto BattleFrontier_BattleFactoryLobby_EventScript_258606 BattleFrontier_BattleFactoryLobby_EventScript_258783:: @ 8258783 - setvar VAR_0x8004, FRONTIER_UTIL_FUNC_SET_DATA - setvar VAR_0x8005, 0 - setvar VAR_0x8006, 0 - special CallFrontierUtilFunc + frontier_set FRONTIER_DATA_CHALLENGE_STATUS, 0 goto BattleFrontier_BattleFactoryLobby_EventScript_25879D BattleFrontier_BattleFactoryLobby_EventScript_25879A:: @ 825879A special LoadPlayerParty - BattleFrontier_BattleFactoryLobby_EventScript_25879D:: @ 825879D msgbox BattleFrontier_BattleFactoryLobby_Text_258BC5, MSGBOX_DEFAULT release diff --git a/data/maps/BattleFrontier_BattleFactoryPreBattleRoom/scripts.inc b/data/maps/BattleFrontier_BattleFactoryPreBattleRoom/scripts.inc index 7a92af994..db1ab537b 100644 --- a/data/maps/BattleFrontier_BattleFactoryPreBattleRoom/scripts.inc +++ b/data/maps/BattleFrontier_BattleFactoryPreBattleRoom/scripts.inc @@ -54,7 +54,7 @@ BattleFrontier_BattleFactoryPreBattleRoom_EventScript_259AF9:: @ 8259AF9 BattleFrontier_BattleFactoryPreBattleRoom_EventScript_259B74:: @ 8259B74 msgbox BattleFrontier_BattleFactoryPreBattleRoom_Text_25AB96, MSGBOX_DEFAULT closemessage - call BattleFrontier_BattleFactoryPreBattleRoom_EventScript_23F2B7 + call BattleFrontier_EventScript_GetLvlMode compare VAR_RESULT, 0 call_if_eq BattleFrontier_BattleFactoryPreBattleRoom_EventScript_25A17C compare VAR_RESULT, 1 @@ -98,9 +98,7 @@ BattleFrontier_BattleFactoryPreBattleRoom_EventScript_259C13:: @ 8259C13 goto_if_ne BattleFrontier_BattleFactoryPreBattleRoom_EventScript_25A0B9 BattleFrontier_BattleFactoryPreBattleRoom_EventScript_259C26:: @ 8259C26 - setvar VAR_0x8004, FRONTIER_UTIL_FUNC_GET_DATA - setvar VAR_0x8005, 2 - special CallFrontierUtilFunc + frontier_get FRONTIER_DATA_BATTLE_NUM compare VAR_RESULT, 1 call_if_eq BattleFrontier_BattleFactoryPreBattleRoom_EventScript_259E1D compare VAR_RESULT, 2 @@ -142,7 +140,7 @@ BattleFrontier_BattleFactoryPreBattleRoom_EventScript_259CFC:: @ 8259CFC case MULTI_B_PRESSED, BattleFrontier_BattleFactoryPreBattleRoom_EventScript_259C13 BattleFrontier_BattleFactoryPreBattleRoom_EventScript_259D2E:: @ 8259D2E - call BattleFrontier_BattleFactoryPreBattleRoom_EventScript_23E8B4 + call BattleFrontier_EventScript_SaveBattle goto BattleFrontier_BattleFactoryPreBattleRoom_EventScript_259C13 BattleFrontier_BattleFactoryPreBattleRoom_EventScript_259D38:: @ 8259D38 @@ -229,8 +227,7 @@ BattleFrontier_BattleFactoryPreBattleRoom_EventScript_259E47:: @ 8259E47 playse SE_SAVE waitse fadescreen 1 - setvar VAR_0x8004, FRONTIER_UTIL_FUNC_SOFT_RESET - special CallFrontierUtilFunc + frontier_reset end BattleFrontier_BattleFactoryPreBattleRoom_EventScript_259E69:: @ 8259E69 @@ -239,7 +236,7 @@ BattleFrontier_BattleFactoryPreBattleRoom_EventScript_259E69:: @ 8259E69 setvar VAR_0x8005, 0 special CallBattleFactoryFunction setvar VAR_0x8004, FRONTIER_UTIL_FUNC_SET_DATA - setvar VAR_0x8005, 6 + setvar VAR_0x8005, FRONTIER_DATA_6 setvar VAR_0x8006, 1 special CallFrontierUtilFunc special CalculatePlayerPartyCount diff --git a/data/maps/BattleFrontier_BattlePalaceBattleRoom/scripts.inc b/data/maps/BattleFrontier_BattlePalaceBattleRoom/scripts.inc index 3c0da87b0..a414b4590 100644 --- a/data/maps/BattleFrontier_BattlePalaceBattleRoom/scripts.inc +++ b/data/maps/BattleFrontier_BattlePalaceBattleRoom/scripts.inc @@ -5,8 +5,7 @@ BattleFrontier_BattlePalaceBattleRoom_MapScripts:: @ 824F815 .byte 0 BattleFrontier_BattlePalaceBattleRoom_MapScript1_24F825: @ 824F825 - setvar VAR_0x8004, FRONTIER_UTIL_FUNC_SET_FRONTIER_TRAINERS - special CallFrontierUtilFunc + frontier_settrainers call BattleFrontier_BattlePalaceBattleRoom_EventScript_24F833 end @@ -34,7 +33,7 @@ BattleFrontier_BattlePalaceBattleRoom_MapScript2_24F861: @ 824F861 BattleFrontier_BattlePalaceBattleRoom_EventScript_24F86B:: @ 824F86B showobjectat 1, MAP_BATTLE_FRONTIER_BATTLE_PALACE_BATTLE_ROOM - frontier_getbattlenum + frontier_get FRONTIER_DATA_BATTLE_NUM compare VAR_RESULT, 0 goto_if_eq BattleFrontier_BattlePalaceBattleRoom_EventScript_24F8B5 applymovement 1, BattleFrontier_BattlePalaceBattleRoom_Movement_24FE9B @@ -42,7 +41,7 @@ BattleFrontier_BattlePalaceBattleRoom_EventScript_24F86B:: @ 824F86B applymovement 3, BattleFrontier_BattlePalaceBattleRoom_Movement_24FEAC setvar VAR_TEMP_2, 1 setvar VAR_0x8004, FRONTIER_UTIL_FUNC_SET_DATA - setvar VAR_0x8005, 6 + setvar VAR_0x8005, FRONTIER_DATA_6 setvar VAR_0x8006, 1 special CallFrontierUtilFunc goto BattleFrontier_BattlePalaceBattleRoom_EventScript_24F98A @@ -66,14 +65,14 @@ BattleFrontier_BattlePalaceBattleRoom_EventScript_24F8BF:: @ 824F8BF case 1, BattleFrontier_BattlePalaceBattleRoom_EventScript_24F911 BattleFrontier_BattlePalaceBattleRoom_EventScript_24F8FA:: @ 824F8FA - frontier_setchallengestatus CHALLENGE_STATUS_LOST + frontier_set FRONTIER_DATA_CHALLENGE_STATUS, CHALLENGE_STATUS_LOST goto BattleFrontier_BattlePalaceBattleRoom_EventScript_24FEBB BattleFrontier_BattlePalaceBattleRoom_EventScript_24F911:: @ 824F911 - call BattleFrontier_BattlePalaceBattleRoom_EventScript_241EBA - frontier_getbattlenum + call BattleFrontier_EventScript_IncrementWinStreak + frontier_get FRONTIER_DATA_BATTLE_NUM addvar VAR_RESULT, 1 - frontier_setbattlenum VAR_RESULT + frontier_set FRONTIER_DATA_BATTLE_NUM, VAR_RESULT switch VAR_RESULT case 7, BattleFrontier_BattlePalaceBattleRoom_EventScript_24FB28 applymovement 2, BattleFrontier_BattlePalaceBattleRoom_Movement_24FEA7 @@ -85,7 +84,7 @@ BattleFrontier_BattlePalaceBattleRoom_EventScript_24F911:: @ 824F911 msgbox BattleFrontier_BattlePalaceBattleRoom_Text_24FF00, MSGBOX_DEFAULT special LoadPlayerParty special SavePlayerParty - frontier_loadselectedmons + frontier_setpartyorder FRONTIER_PARTY_SIZE playfanfare MUS_ME_ASA waitfanfare special HealPlayerParty @@ -95,7 +94,7 @@ BattleFrontier_BattlePalaceBattleRoom_EventScript_24F98A:: @ 824F98A copyvar VAR_TEMP_F, VAR_RESULT compare VAR_RESULT, FRONTIER_BRAIN_NOT_READY goto_if_ne BattleFrontier_BattlePalaceBattleRoom_EventScript_24FB61 - frontier_getbattlenum + frontier_get FRONTIER_DATA_BATTLE_NUM compare VAR_RESULT, 1 call_if_eq BattleFrontier_BattlePalaceBattleRoom_EventScript_24FE66 compare VAR_RESULT, 2 @@ -137,7 +136,7 @@ BattleFrontier_BattlePalaceBattleRoom_EventScript_24FA78:: @ 824FA78 case MULTI_B_PRESSED, BattleFrontier_BattlePalaceBattleRoom_EventScript_24F98A BattleFrontier_BattlePalaceBattleRoom_EventScript_24FAAA:: @ 824FAAA - call BattleFrontier_BattlePalaceBattleRoom_EventScript_23E8B4 + call BattleFrontier_EventScript_SaveBattle goto BattleFrontier_BattlePalaceBattleRoom_EventScript_24F98A BattleFrontier_BattlePalaceBattleRoom_EventScript_24FAB4:: @ 824FAB4 @@ -163,7 +162,7 @@ BattleFrontier_BattlePalaceBattleRoom_EventScript_24FB14:: @ 824FB14 goto BattleFrontier_BattlePalaceBattleRoom_EventScript_24F8BF BattleFrontier_BattlePalaceBattleRoom_EventScript_24FB28:: @ 824FB28 - frontier_setchallengestatus CHALLENGE_STATUS_WON + frontier_set FRONTIER_DATA_CHALLENGE_STATUS, CHALLENGE_STATUS_WON goto BattleFrontier_BattlePalaceBattleRoom_EventScript_24FEBB BattleFrontier_BattlePalaceBattleRoom_EventScript_24FB3F:: @ 824FB3F @@ -175,8 +174,7 @@ BattleFrontier_BattlePalaceBattleRoom_EventScript_24FB3F:: @ 824FB3F playse SE_SAVE waitse fadescreen 1 - setvar VAR_0x8004, FRONTIER_UTIL_FUNC_SOFT_RESET - special CallFrontierUtilFunc + frontier_reset end BattleFrontier_BattlePalaceBattleRoom_EventScript_24FB61:: @ 824FB61 @@ -208,7 +206,7 @@ BattleFrontier_BattlePalaceBattleRoom_EventScript_24FBD0:: @ 824FBD0 case MULTI_B_PRESSED, BattleFrontier_BattlePalaceBattleRoom_EventScript_24FB79 BattleFrontier_BattlePalaceBattleRoom_EventScript_24FC06:: @ 824FC06 - call BattleFrontier_BattlePalaceBattleRoom_EventScript_242170 + call BattleFrontier_EventScript_SetBrainObjectGfx msgbox BattleFrontier_BattlePalaceBattleRoom_Text_25017C, MSGBOX_DEFAULT closemessage applymovement 1, BattleFrontier_BattlePalaceBattleRoom_Movement_24FE97 @@ -226,16 +224,11 @@ BattleFrontier_BattlePalaceBattleRoom_EventScript_24FC06:: @ 824FC06 case FRONTIER_BRAIN_GOLD, BattleFrontier_BattlePalaceBattleRoom_EventScript_24FD3A case FRONTIER_BRAIN_STREAK, BattleFrontier_BattlePalaceBattleRoom_EventScript_24FCAA case FRONTIER_BRAIN_STREAK_LONG, BattleFrontier_BattlePalaceBattleRoom_EventScript_24FD67 - setvar VAR_0x8004, FRONTIER_UTIL_FUNC_GET_DATA - setvar VAR_0x8005, 7 - special CallFrontierUtilFunc - compare VAR_RESULT, 0 + frontier_get FRONTIER_DATA_HEARD_BRAIN_SPEECH + compare VAR_RESULT, FALSE goto_if_ne BattleFrontier_BattlePalaceBattleRoom_EventScript_24FCAA msgbox BattleFrontier_BattlePalaceBattleRoom_Text_2501C1, MSGBOX_DEFAULT - setvar VAR_0x8004, FRONTIER_UTIL_FUNC_SET_DATA - setvar VAR_0x8005, 7 - special CallFrontierUtilFunc - + frontier_set FRONTIER_DATA_HEARD_BRAIN_SPEECH BattleFrontier_BattlePalaceBattleRoom_EventScript_24FCAA:: @ 824FCAA msgbox BattleFrontier_BattlePalaceBattleRoom_Text_2502C4, MSGBOX_DEFAULT call BattleFrontier_BattlePalaceBattleRoom_EventScript_24FDF7 @@ -246,8 +239,7 @@ BattleFrontier_BattlePalaceBattleRoom_EventScript_24FCAA:: @ 824FCAA BattleFrontier_BattlePalaceBattleRoom_EventScript_24FCC7:: @ 824FCC7 setvar VAR_0x8004, 6 special CallBattlePalaceFunction - setvar VAR_0x8004, FRONTIER_UTIL_FUNC_GET_FACILITY_SYMBOLS - special CallFrontierUtilFunc + frontier_getsymbols compare VAR_RESULT, 0 goto_if_ne BattleFrontier_BattlePalaceBattleRoom_EventScript_24FB28 msgbox BattleFrontier_BattlePalaceBattleRoom_Text_2502FF, MSGBOX_DEFAULT @@ -258,8 +250,7 @@ BattleFrontier_BattlePalaceBattleRoom_EventScript_24FCC7:: @ 824FCC7 message BattleFrontier_BattlePalaceBattleRoom_Text_2503DC waitmessage waitfanfare - setvar VAR_0x8004, FRONTIER_UTIL_FUNC_GIVE_FACILITY_SYMBOL - special CallFrontierUtilFunc + frontier_givesymbol applymovement 2, Common_Movement_WalkInPlaceLeft waitmovement 0 applymovement 1, Common_Movement_WalkInPlaceFastestRight @@ -269,16 +260,11 @@ BattleFrontier_BattlePalaceBattleRoom_EventScript_24FCC7:: @ 824FCC7 goto BattleFrontier_BattlePalaceBattleRoom_EventScript_24FB28 BattleFrontier_BattlePalaceBattleRoom_EventScript_24FD3A:: @ 824FD3A - setvar VAR_0x8004, FRONTIER_UTIL_FUNC_GET_DATA - setvar VAR_0x8005, 7 - special CallFrontierUtilFunc - compare VAR_RESULT, 0 + frontier_get FRONTIER_DATA_HEARD_BRAIN_SPEECH + compare VAR_RESULT, FALSE goto_if_ne BattleFrontier_BattlePalaceBattleRoom_EventScript_24FD67 msgbox BattleFrontier_BattlePalaceBattleRoom_Text_250485, MSGBOX_DEFAULT - setvar VAR_0x8004, FRONTIER_UTIL_FUNC_SET_DATA - setvar VAR_0x8005, 7 - special CallFrontierUtilFunc - + frontier_set FRONTIER_DATA_HEARD_BRAIN_SPEECH BattleFrontier_BattlePalaceBattleRoom_EventScript_24FD67:: @ 824FD67 msgbox BattleFrontier_BattlePalaceBattleRoom_Text_250572, MSGBOX_DEFAULT call BattleFrontier_BattlePalaceBattleRoom_EventScript_24FDF7 @@ -289,8 +275,7 @@ BattleFrontier_BattlePalaceBattleRoom_EventScript_24FD67:: @ 824FD67 BattleFrontier_BattlePalaceBattleRoom_EventScript_24FD84:: @ 824FD84 setvar VAR_0x8004, 6 special CallBattlePalaceFunction - setvar VAR_0x8004, FRONTIER_UTIL_FUNC_GET_FACILITY_SYMBOLS - special CallFrontierUtilFunc + frontier_getsymbols compare VAR_RESULT, 2 goto_if_eq BattleFrontier_BattlePalaceBattleRoom_EventScript_24FB28 msgbox BattleFrontier_BattlePalaceBattleRoom_Text_25057E, MSGBOX_DEFAULT @@ -301,8 +286,7 @@ BattleFrontier_BattlePalaceBattleRoom_EventScript_24FD84:: @ 824FD84 message BattleFrontier_BattlePalaceBattleRoom_Text_250699 waitmessage waitfanfare - setvar VAR_0x8004, FRONTIER_UTIL_FUNC_GIVE_FACILITY_SYMBOL - special CallFrontierUtilFunc + frontier_givesymbol applymovement 2, Common_Movement_WalkInPlaceLeft waitmovement 0 applymovement 1, Common_Movement_WalkInPlaceFastestRight @@ -316,7 +300,7 @@ VerdanturfTown_BattleTentBattleRoom_EventScript_24FDF7:: @ 824FDF7 closemessage setvar VAR_TEMP_2, 0 setvar VAR_0x8004, FRONTIER_UTIL_FUNC_SET_DATA - setvar VAR_0x8005, 6 + setvar VAR_0x8005, FRONTIER_DATA_6 setvar VAR_0x8006, 0 special CallFrontierUtilFunc special HealPlayerParty @@ -324,8 +308,7 @@ VerdanturfTown_BattleTentBattleRoom_EventScript_24FDF7:: @ 824FDF7 setvar VAR_0x8005, 0 special DoSpecialTrainerBattle waitstate - setvar VAR_0x8004, FRONTIER_UTIL_FUNC_18 - special CallFrontierUtilFunc + frontier_restorehelditems special HealPlayerParty frontier_resetsketch return @@ -441,7 +424,7 @@ BattleFrontier_BattlePalaceBattleRoom_Movement_24FEB6: @ 824FEB6 BattleFrontier_BattlePalaceBattleRoom_EventScript_24FEBB:: @ 824FEBB copyvar VAR_RESULT, VAR_FRONTIER_BATTLE_MODE - compare VAR_RESULT, 1 + compare VAR_RESULT, FRONTIER_MODE_DOUBLES goto_if_eq BattleFrontier_BattlePalaceBattleRoom_EventScript_24FED5 warp MAP_BATTLE_FRONTIER_BATTLE_PALACE_LOBBY, 255, 5, 7 waitstate diff --git a/data/maps/BattleFrontier_BattlePalaceCorridor/scripts.inc b/data/maps/BattleFrontier_BattlePalaceCorridor/scripts.inc index 5922b668e..f36a1d366 100644 --- a/data/maps/BattleFrontier_BattlePalaceCorridor/scripts.inc +++ b/data/maps/BattleFrontier_BattlePalaceCorridor/scripts.inc @@ -25,10 +25,8 @@ BattleFrontier_BattlePalaceCorridor_EventScript_24F4B3:: @ 824F4B3 compare VAR_RESULT, 4 call_if_eq BattleFrontier_BattlePalaceCorridor_EventScript_24F5AF closemessage - setvar VAR_0x8004, FRONTIER_UTIL_FUNC_GET_DATA - setvar VAR_0x8005, 1 - special CallFrontierUtilFunc - compare VAR_RESULT, 1 + frontier_get FRONTIER_DATA_LVL_MODE + compare VAR_RESULT, FRONTIER_LVL_OPEN goto_if_eq BattleFrontier_BattlePalaceCorridor_EventScript_24F553 applymovement 1, BattleFrontier_BattlePalaceCorridor_Movement_24F5BD applymovement EVENT_OBJ_ID_PLAYER, BattleFrontier_BattlePalaceCorridor_Movement_24F5C4 diff --git a/data/maps/BattleFrontier_BattlePalaceLobby/scripts.inc b/data/maps/BattleFrontier_BattlePalaceLobby/scripts.inc index 7d7e24035..32bed3022 100644 --- a/data/maps/BattleFrontier_BattlePalaceLobby/scripts.inc +++ b/data/maps/BattleFrontier_BattlePalaceLobby/scripts.inc @@ -14,14 +14,14 @@ BattleFrontier_BattlePalaceLobby_EventScript_24D793:: @ 824D793 BattleFrontier_BattlePalaceLobby_MapScript2_24D79D: @ 824D79D map_script_2 VAR_TEMP_0, 0, BattleFrontier_BattlePalaceLobby_EventScript_24D7C7 - map_script_2 VAR_TEMP_0, 1, BattleFrontier_BattlePalaceLobby_EventScript_24D7D0 - map_script_2 VAR_TEMP_0, 2, BattleFrontier_BattlePalaceLobby_EventScript_24D908 - map_script_2 VAR_TEMP_0, 3, BattleFrontier_BattlePalaceLobby_EventScript_24D817 - map_script_2 VAR_TEMP_0, 4, BattleFrontier_BattlePalaceLobby_EventScript_24D873 + map_script_2 VAR_TEMP_0, CHALLENGE_STATUS_SAVING, BattleFrontier_BattlePalaceLobby_EventScript_24D7D0 + map_script_2 VAR_TEMP_0, CHALLENGE_STATUS_PAUSED, BattleFrontier_BattlePalaceLobby_EventScript_24D908 + map_script_2 VAR_TEMP_0, CHALLENGE_STATUS_WON, BattleFrontier_BattlePalaceLobby_EventScript_24D817 + map_script_2 VAR_TEMP_0, CHALLENGE_STATUS_LOST, BattleFrontier_BattlePalaceLobby_EventScript_24D873 .2byte 0 BattleFrontier_BattlePalaceLobby_EventScript_24D7C7:: @ 824D7C7 - frontier_checkoutcome + frontier_getstatus end BattleFrontier_BattlePalaceLobby_EventScript_24D7D0:: @ 824D7D0 @@ -36,18 +36,14 @@ BattleFrontier_BattlePalaceLobby_EventScript_24D7D0:: @ 824D7D0 setvar VAR_0x8005, 2 setvar VAR_0x8006, 0 special CallBattlePalaceFunction - setvar VAR_0x8004, FRONTIER_UTIL_FUNC_SET_DATA - setvar VAR_0x8005, 0 - setvar VAR_0x8006, 0 - special CallFrontierUtilFunc + frontier_set FRONTIER_DATA_CHALLENGE_STATUS, 0 setvar VAR_TEMP_0, 255 releaseall end BattleFrontier_BattlePalaceLobby_EventScript_24D817:: @ 824D817 lockall - setvar VAR_0x8004, FRONTIER_UTIL_FUNC_IS_FRONTIER_BRAIN - special CallFrontierUtilFunc + frontier_isbrain compare VAR_RESULT, TRUE goto_if_eq BattleFrontier_BattlePalaceLobby_EventScript_24D838 msgbox BattleFrontier_BattlePalaceLobby_Text_24E497, MSGBOX_DEFAULT @@ -58,8 +54,7 @@ BattleFrontier_BattlePalaceLobby_EventScript_24D838:: @ 824D838 BattleFrontier_BattlePalaceLobby_EventScript_24D840:: @ 824D840 msgbox BattleFrontier_BattlePalaceLobby_Text_24EEB9, MSGBOX_DEFAULT - setvar VAR_0x8004, FRONTIER_UTIL_FUNC_11 - special CallFrontierUtilFunc + frontier_givepoints msgbox BattleFrontier_Text_ObtainedXBattlePoints, MSGBOX_GETPOINTS message BattleFrontier_BattlePalaceLobby_Text_24E4F7 waitmessage @@ -86,8 +81,7 @@ BattleFrontier_BattlePalaceLobby_EventScript_24D873:: @ 824D873 end BattleFrontier_BattlePalaceLobby_EventScript_24D8A1:: @ 824D8A1 - setvar VAR_0x8004, FRONTIER_UTIL_FUNC_8 - special CallFrontierUtilFunc + frontier_checkairshow special LoadPlayerParty special HealPlayerParty setvar VAR_0x8004, 7 @@ -107,8 +101,7 @@ BattleFrontier_BattlePalaceLobby_EventScript_24D8A1:: @ 824D8A1 case MULTI_B_PRESSED, BattleFrontier_BattlePalaceLobby_EventScript_24D907 BattleFrontier_BattlePalaceLobby_EventScript_24D902:: @ 824D902 - call BattleFrontier_BattlePalaceLobby_EventScript_23E8B4 - + call BattleFrontier_EventScript_SaveBattle BattleFrontier_BattlePalaceLobby_EventScript_24D907:: @ 824D907 return @@ -122,26 +115,23 @@ BattleFrontier_BattlePalaceLobby_EventScript_24D908:: @ 824D908 special CallBattlePalaceFunction playse SE_SAVE waitse - setvar VAR_0x8004, FRONTIER_UTIL_FUNC_SET_DATA - setvar VAR_0x8005, 3 - setvar VAR_0x8006, 0 - special CallFrontierUtilFunc + frontier_set FRONTIER_DATA_PAUSED, FALSE setvar VAR_TEMP_0, 255 goto BattleFrontier_BattlePalaceLobby_EventScript_24DAF3 BattleFrontier_BattlePalaceLobby_EventScript_24D944:: @ 824D944 lock faceplayer - setvar VAR_FRONTIER_FACILITY, 2 - setvar VAR_FRONTIER_BATTLE_MODE, 0 + setvar VAR_FRONTIER_FACILITY, FRONTIER_FACILITY_PALACE + setvar VAR_FRONTIER_BATTLE_MODE, FRONTIER_MODE_SINGLES goto BattleFrontier_BattlePalaceLobby_EventScript_24D968 end BattleFrontier_BattlePalaceLobby_EventScript_24D956:: @ 824D956 lock faceplayer - setvar VAR_FRONTIER_FACILITY, 2 - setvar VAR_FRONTIER_BATTLE_MODE, 1 + setvar VAR_FRONTIER_FACILITY, FRONTIER_FACILITY_PALACE + setvar VAR_FRONTIER_BATTLE_MODE, FRONTIER_MODE_DOUBLES goto BattleFrontier_BattlePalaceLobby_EventScript_24D968 end @@ -152,15 +142,15 @@ BattleFrontier_BattlePalaceLobby_EventScript_24D968:: @ 824D968 compare VAR_RESULT, 0 goto_if_ne BattleFrontier_BattlePalaceLobby_EventScript_24D817 special SavePlayerParty - compare VAR_FRONTIER_BATTLE_MODE, 0 + compare VAR_FRONTIER_BATTLE_MODE, FRONTIER_MODE_SINGLES call_if_eq BattleFrontier_BattlePalaceLobby_EventScript_24DB9E - compare VAR_FRONTIER_BATTLE_MODE, 1 + compare VAR_FRONTIER_BATTLE_MODE, FRONTIER_MODE_DOUBLES call_if_eq BattleFrontier_BattlePalaceLobby_EventScript_24DBA7 BattleFrontier_BattlePalaceLobby_EventScript_24D999:: @ 824D999 - compare VAR_FRONTIER_BATTLE_MODE, 0 + compare VAR_FRONTIER_BATTLE_MODE, FRONTIER_MODE_SINGLES call_if_eq BattleFrontier_BattlePalaceLobby_EventScript_24DBB0 - compare VAR_FRONTIER_BATTLE_MODE, 1 + compare VAR_FRONTIER_BATTLE_MODE, FRONTIER_MODE_DOUBLES call_if_eq BattleFrontier_BattlePalaceLobby_EventScript_24DBB6 waitmessage multichoice 17, 6, MULTI_CHALLENGEINFO, 0 @@ -175,19 +165,15 @@ BattleFrontier_BattlePalaceLobby_EventScript_24D9E6:: @ 824D9E6 waitmessage multichoice 17, 6, MULTI_LEVEL_MODE, 0 switch VAR_RESULT - case 2, BattleFrontier_BattlePalaceLobby_EventScript_24DB94 + case FRONTIER_LVL_TENT, BattleFrontier_BattlePalaceLobby_EventScript_24DB94 case MULTI_B_PRESSED, BattleFrontier_BattlePalaceLobby_EventScript_24DB94 - setvar VAR_0x8004, FRONTIER_UTIL_FUNC_15 - special CallFrontierUtilFunc - compare VAR_0x8004, 1 + frontier_checkineligible + compare VAR_0x8004, TRUE goto_if_eq BattleFrontier_BattlePalaceLobby_EventScript_24DB45 - setvar VAR_0x8004, FRONTIER_UTIL_FUNC_SET_DATA - setvar VAR_0x8005, 1 - copyvar VAR_0x8006, VAR_RESULT - special CallFrontierUtilFunc + frontier_set FRONTIER_DATA_LVL_MODE, VAR_RESULT msgbox BattleFrontier_BattlePalaceLobby_Text_24E399, MSGBOX_DEFAULT fadescreen 1 - call BattleFrontier_BattlePalaceLobby_EventScript_23F2B7 + call BattleFrontier_EventScript_GetLvlMode copyvar VAR_0x8004, VAR_RESULT setvar VAR_0x8005, 3 special sub_80F9490 @@ -202,23 +188,15 @@ BattleFrontier_BattlePalaceLobby_EventScript_24D9E6:: @ 824D9E6 BattleFrontier_BattlePalaceLobby_EventScript_24DA87:: @ 824DA87 setvar VAR_TEMP_0, 0 - setvar VAR_0x8004, FRONTIER_UTIL_FUNC_SET_DATA - setvar VAR_0x8005, 4 - special CallFrontierUtilFunc + frontier_set FRONTIER_DATA_SELECTED_MON_ORDER setvar VAR_0x8004, 0 special CallBattlePalaceFunction setvar VAR_0x8004, 2 setvar VAR_0x8005, 2 setvar VAR_0x8006, 1 special CallBattlePalaceFunction - setvar VAR_0x8004, FRONTIER_UTIL_FUNC_SET_DATA - setvar VAR_0x8005, 0 - setvar VAR_0x8006, 1 - special CallFrontierUtilFunc - setvar VAR_0x8004, FRONTIER_UTIL_FUNC_SET_DATA - setvar VAR_0x8005, 3 - setvar VAR_0x8006, 0 - special CallFrontierUtilFunc + frontier_set FRONTIER_DATA_CHALLENGE_STATUS, CHALLENGE_STATUS_SAVING + frontier_set FRONTIER_DATA_PAUSED, FALSE special LoadPlayerParty closemessage delay 2 @@ -229,7 +207,7 @@ BattleFrontier_BattlePalaceLobby_EventScript_24DA87:: @ 824DA87 BattleFrontier_BattlePalaceLobby_EventScript_24DAF3:: @ 824DAF3 special SavePlayerParty - frontier_loadselectedmons + frontier_setpartyorder FRONTIER_PARTY_SIZE msgbox BattleFrontier_BattlePalaceLobby_Text_24E408, MSGBOX_DEFAULT closemessage call BattleFrontier_BattlePalaceLobby_EventScript_24DBBC @@ -239,7 +217,7 @@ BattleFrontier_BattlePalaceLobby_EventScript_24DAF3:: @ 824DAF3 end BattleFrontier_BattlePalaceLobby_EventScript_24DB20:: @ 824DB20 - compare VAR_FRONTIER_BATTLE_MODE, 1 + compare VAR_FRONTIER_BATTLE_MODE, FRONTIER_MODE_DOUBLES goto_if_eq BattleFrontier_BattlePalaceLobby_EventScript_24DB38 msgbox BattleFrontier_BattlePalaceLobby_Text_24DE17, MSGBOX_DEFAULT goto BattleFrontier_BattlePalaceLobby_EventScript_24D999 @@ -250,8 +228,8 @@ BattleFrontier_BattlePalaceLobby_EventScript_24DB38:: @ 824DB38 BattleFrontier_BattlePalaceLobby_EventScript_24DB45:: @ 824DB45 switch VAR_RESULT - case 0, BattleFrontier_BattlePalaceLobby_EventScript_24DB60 - case 1, BattleFrontier_BattlePalaceLobby_EventScript_24DB6D + case FRONTIER_LVL_50, BattleFrontier_BattlePalaceLobby_EventScript_24DB60 + case FRONTIER_LVL_OPEN, BattleFrontier_BattlePalaceLobby_EventScript_24DB6D BattleFrontier_BattlePalaceLobby_EventScript_24DB60:: @ 824DB60 msgbox BattleFrontier_BattlePalaceLobby_Text_24E173, MSGBOX_DEFAULT @@ -262,10 +240,7 @@ BattleFrontier_BattlePalaceLobby_EventScript_24DB6D:: @ 824DB6D goto BattleFrontier_BattlePalaceLobby_EventScript_24DB9C BattleFrontier_BattlePalaceLobby_EventScript_24DB7A:: @ 824DB7A - setvar VAR_0x8004, FRONTIER_UTIL_FUNC_SET_DATA - setvar VAR_0x8005, 0 - setvar VAR_0x8006, 0 - special CallFrontierUtilFunc + frontier_set FRONTIER_DATA_CHALLENGE_STATUS, 0 goto BattleFrontier_BattlePalaceLobby_EventScript_24DB94 BattleFrontier_BattlePalaceLobby_EventScript_24DB91:: @ 824DB91 @@ -295,24 +270,24 @@ BattleFrontier_BattlePalaceLobby_EventScript_24DBB6:: @ 824DBB6 return BattleFrontier_BattlePalaceLobby_EventScript_24DBBC:: @ 824DBBC - compare VAR_FRONTIER_BATTLE_MODE, 0 + compare VAR_FRONTIER_BATTLE_MODE, FRONTIER_MODE_SINGLES call_if_eq BattleFrontier_BattlePalaceLobby_EventScript_24DC23 - compare VAR_FRONTIER_BATTLE_MODE, 1 + compare VAR_FRONTIER_BATTLE_MODE, FRONTIER_MODE_DOUBLES call_if_eq BattleFrontier_BattlePalaceLobby_EventScript_24DC29 applymovement VAR_LAST_TALKED, BattleFrontier_BattlePalaceLobby_Movement_24DC47 applymovement EVENT_OBJ_ID_PLAYER, BattleFrontier_BattlePalaceLobby_Movement_24DC47 waitmovement 0 - compare VAR_FRONTIER_BATTLE_MODE, 0 + compare VAR_FRONTIER_BATTLE_MODE, FRONTIER_MODE_SINGLES call_if_eq BattleFrontier_BattlePalaceLobby_EventScript_24DC2F - compare VAR_FRONTIER_BATTLE_MODE, 1 + compare VAR_FRONTIER_BATTLE_MODE, FRONTIER_MODE_DOUBLES call_if_eq BattleFrontier_BattlePalaceLobby_EventScript_24DC35 waitdooranim applymovement VAR_LAST_TALKED, BattleFrontier_BattlePalaceLobby_Movement_24DC49 applymovement EVENT_OBJ_ID_PLAYER, BattleFrontier_BattlePalaceLobby_Movement_24DC4C waitmovement 0 - compare VAR_FRONTIER_BATTLE_MODE, 0 + compare VAR_FRONTIER_BATTLE_MODE, FRONTIER_MODE_SINGLES call_if_eq BattleFrontier_BattlePalaceLobby_EventScript_24DC3B - compare VAR_FRONTIER_BATTLE_MODE, 1 + compare VAR_FRONTIER_BATTLE_MODE, FRONTIER_MODE_DOUBLES call_if_eq BattleFrontier_BattlePalaceLobby_EventScript_24DC41 waitdooranim return diff --git a/data/maps/BattleFrontier_BattlePikeCorridor/scripts.inc b/data/maps/BattleFrontier_BattlePikeCorridor/scripts.inc index b4205e01f..bf9f00bc5 100644 --- a/data/maps/BattleFrontier_BattlePikeCorridor/scripts.inc +++ b/data/maps/BattleFrontier_BattlePikeCorridor/scripts.inc @@ -9,10 +9,7 @@ BattleFrontier_BattlePikeCorridor_MapScript2_25C77C: @ 825C77C BattleFrontier_BattlePikeCorridor_EventScript_25C786:: @ 825C786 delay 16 - setvar VAR_0x8004, FRONTIER_UTIL_FUNC_SET_DATA - setvar VAR_0x8005, 2 - setvar VAR_0x8006, 1 - special CallFrontierUtilFunc + frontier_set FRONTIER_DATA_BATTLE_NUM, 1 setvar VAR_0x8004, BATTLE_PIKE_FUNC_CLEAR_TRAINER_IDS special CallBattlePikeFunction battlepike_nohealing TRUE @@ -25,10 +22,7 @@ BattleFrontier_BattlePikeCorridor_EventScript_25C786:: @ 825C786 releaseall applymovement EVENT_OBJ_ID_PLAYER, BattleFrontier_BattlePikeCorridor_Movement_25C80E waitmovement 0 - setvar VAR_0x8004, FRONTIER_UTIL_FUNC_SET_DATA - setvar VAR_0x8005, 0 - setvar VAR_0x8006, 99 - special CallFrontierUtilFunc + frontier_set FRONTIER_DATA_CHALLENGE_STATUS, 99 call BattleFrontier_BattlePike_EventScript_CloseCurtain warpsilent MAP_BATTLE_FRONTIER_BATTLE_PIKE_THREE_PATH_ROOM, 255, 6, 10 waitstate diff --git a/data/maps/BattleFrontier_BattlePikeLobby/scripts.inc b/data/maps/BattleFrontier_BattlePikeLobby/scripts.inc index 5ce20c009..2f966213c 100644 --- a/data/maps/BattleFrontier_BattlePikeLobby/scripts.inc +++ b/data/maps/BattleFrontier_BattlePikeLobby/scripts.inc @@ -5,9 +5,9 @@ BattleFrontier_BattlePikeLobby_MapScripts:: @ 825B6C6 BattleFrontier_BattlePikeLobby_MapScript2_25B6D1: @ 825B6D1 map_script_2 VAR_TEMP_0, 0, BattleFrontier_BattlePikeLobby_EventScript_25B707 - map_script_2 VAR_TEMP_0, 1, BattleFrontier_BattlePikeLobby_EventScript_25B710 - map_script_2 VAR_TEMP_0, 3, BattleFrontier_BattlePikeLobby_EventScript_25B762 - map_script_2 VAR_TEMP_0, 4, BattleFrontier_BattlePikeLobby_EventScript_25B806 + map_script_2 VAR_TEMP_0, CHALLENGE_STATUS_SAVING, BattleFrontier_BattlePikeLobby_EventScript_25B710 + map_script_2 VAR_TEMP_0, CHALLENGE_STATUS_WON, BattleFrontier_BattlePikeLobby_EventScript_25B762 + map_script_2 VAR_TEMP_0, CHALLENGE_STATUS_LOST, BattleFrontier_BattlePikeLobby_EventScript_25B806 .2byte 0 BattleFrontier_BattlePikeLobby_MapScript2_25B6F3: @ 825B6F3 @@ -20,7 +20,7 @@ BattleFrontier_BattlePikeLobby_EventScript_25B6FD:: @ 825B6FD end BattleFrontier_BattlePikeLobby_EventScript_25B707:: @ 825B707 - frontier_checkoutcome + frontier_getstatus end BattleFrontier_BattlePikeLobby_EventScript_25B710:: @ 825B710 @@ -35,18 +35,14 @@ BattleFrontier_BattlePikeLobby_EventScript_25B710:: @ 825B710 setvar VAR_0x8005, 4 setvar VAR_0x8006, 0 special CallBattlePikeFunction - setvar VAR_0x8004, FRONTIER_UTIL_FUNC_SET_DATA - setvar VAR_0x8005, 0 - setvar VAR_0x8006, 0 - special CallFrontierUtilFunc + frontier_set FRONTIER_DATA_CHALLENGE_STATUS, 0 setvar VAR_TEMP_0, 255 releaseall end BattleFrontier_BattlePikeLobby_EventScript_25B762:: @ 825B762 lockall - setvar VAR_0x8004, FRONTIER_UTIL_FUNC_IS_FRONTIER_BRAIN - special CallFrontierUtilFunc + frontier_isbrain compare VAR_RESULT, TRUE goto_if_eq BattleFrontier_BattlePikeLobby_EventScript_25B784 msgbox BattleFrontier_BattlePikeLobby_Text_25C18A, MSGBOX_DEFAULT @@ -59,11 +55,9 @@ BattleFrontier_BattlePikeLobby_EventScript_25B784:: @ 825B784 BattleFrontier_BattlePikeLobby_EventScript_25B78D:: @ 825B78D msgbox BattleFrontier_BattlePikeLobby_Text_25C3D9, MSGBOX_DEFAULT - setvar VAR_0x8004, FRONTIER_UTIL_FUNC_11 - special CallFrontierUtilFunc + frontier_givepoints msgbox BattleFrontier_Text_ObtainedXBattlePoints, MSGBOX_GETPOINTS - setvar VAR_0x8004, FRONTIER_UTIL_FUNC_8 - special CallFrontierUtilFunc + frontier_checkairshow setvar VAR_0x8004, BATTLE_PIKE_FUNC_GET_DATA setvar VAR_0x8005, 3 special CallBattlePikeFunction @@ -93,12 +87,8 @@ BattleFrontier_BattlePikeLobby_EventScript_25B806:: @ 825B806 lockall message BattleFrontier_BattlePikeLobby_Text_25C146 waitmessage - setvar VAR_0x8004, FRONTIER_UTIL_FUNC_8 - special CallFrontierUtilFunc - setvar VAR_0x8004, FRONTIER_UTIL_FUNC_SET_DATA - setvar VAR_0x8005, 2 - setvar VAR_0x8006, 0 - special CallFrontierUtilFunc + frontier_checkairshow + frontier_set FRONTIER_DATA_BATTLE_NUM, 0 setvar VAR_0x8004, BATTLE_PIKE_FUNC_SET_DATA setvar VAR_0x8005, 4 setvar VAR_0x8006, 0 @@ -121,8 +111,8 @@ BattleFrontier_BattlePikeLobby_EventScript_25B806:: @ 825B806 BattleFrontier_BattlePikeLobby_EventScript_25B868:: @ 825B868 lock faceplayer - setvar VAR_FRONTIER_FACILITY, 5 - setvar VAR_FRONTIER_BATTLE_MODE, 0 + setvar VAR_FRONTIER_FACILITY, FRONTIER_FACILITY_PIKE + setvar VAR_FRONTIER_BATTLE_MODE, FRONTIER_MODE_SINGLES special SavePlayerParty msgbox BattleFrontier_BattlePikeLobby_Text_25BB52, MSGBOX_DEFAULT @@ -141,19 +131,15 @@ BattleFrontier_BattlePikeLobby_EventScript_25B8BB:: @ 825B8BB waitmessage multichoice 17, 6, MULTI_LEVEL_MODE, 0 switch VAR_RESULT - case 2, BattleFrontier_BattlePikeLobby_EventScript_25BA76 + case FRONTIER_LVL_TENT, BattleFrontier_BattlePikeLobby_EventScript_25BA76 case MULTI_B_PRESSED, BattleFrontier_BattlePikeLobby_EventScript_25BA76 - setvar VAR_0x8004, FRONTIER_UTIL_FUNC_15 - special CallFrontierUtilFunc - compare VAR_0x8004, 1 + frontier_checkineligible + compare VAR_0x8004, TRUE goto_if_eq BattleFrontier_BattlePikeLobby_EventScript_25BA27 - setvar VAR_0x8004, FRONTIER_UTIL_FUNC_SET_DATA - setvar VAR_0x8005, 1 - copyvar VAR_0x8006, VAR_RESULT - special CallFrontierUtilFunc + frontier_set FRONTIER_DATA_LVL_MODE, VAR_RESULT msgbox BattleFrontier_BattlePikeLobby_Text_25C094, MSGBOX_DEFAULT fadescreen 1 - call BattleFrontier_BattlePikeLobby_EventScript_23F2B7 + call BattleFrontier_EventScript_GetLvlMode copyvar VAR_0x8004, VAR_RESULT setvar VAR_0x8005, 3 special sub_80F9490 @@ -169,25 +155,17 @@ BattleFrontier_BattlePikeLobby_EventScript_25B8BB:: @ 825B8BB BattleFrontier_BattlePikeLobby_EventScript_25B95C:: @ 825B95C setvar VAR_TEMP_0, 0 setvar VAR_TEMP_1, 0 - setvar VAR_0x8004, FRONTIER_UTIL_FUNC_SET_DATA - setvar VAR_0x8005, 4 - special CallFrontierUtilFunc + frontier_set FRONTIER_DATA_SELECTED_MON_ORDER setvar VAR_0x8004, BATTLE_PIKE_FUNC_INIT_CHALLENGE special CallBattlePikeFunction - setvar VAR_0x8004, FRONTIER_UTIL_FUNC_SET_DATA - setvar VAR_0x8005, 0 - setvar VAR_0x8006, 1 - special CallFrontierUtilFunc + frontier_set FRONTIER_DATA_CHALLENGE_STATUS, CHALLENGE_STATUS_SAVING setvar VAR_0x8004, BATTLE_PIKE_FUNC_SET_DATA setvar VAR_0x8005, 4 setvar VAR_0x8006, 1 special CallBattlePikeFunction setvar VAR_0x8004, BATTLE_PIKE_FUNC_SAVE_MON_HELD_ITEMS special CallBattlePikeFunction - setvar VAR_0x8004, FRONTIER_UTIL_FUNC_SET_DATA - setvar VAR_0x8005, 3 - setvar VAR_0x8006, 0 - special CallFrontierUtilFunc + frontier_set FRONTIER_DATA_PAUSED, FALSE special LoadPlayerParty closemessage delay 2 @@ -198,11 +176,10 @@ BattleFrontier_BattlePikeLobby_EventScript_25B95C:: @ 825B95C compare VAR_RESULT, 0 goto_if_eq BattleFrontier_BattlePikeLobby_EventScript_25BA5C special SavePlayerParty - frontier_loadselectedmons + frontier_setpartyorder FRONTIER_PARTY_SIZE msgbox BattleFrontier_BattlePikeLobby_Text_25C130, MSGBOX_DEFAULT closemessage - setvar VAR_0x8004, FRONTIER_UTIL_FUNC_SET_FRONTIER_TRAINERS - special CallFrontierUtilFunc + frontier_settrainers call BattleFrontier_BattlePikeLobby_EventScript_25BA94 special HealPlayerParty call BattleFrontier_BattlePike_EventScript_CloseCurtain @@ -217,8 +194,8 @@ BattleFrontier_BattlePikeLobby_EventScript_25BA1A:: @ 825BA1A BattleFrontier_BattlePikeLobby_EventScript_25BA27:: @ 825BA27 switch VAR_RESULT - case 0, BattleFrontier_BattlePikeLobby_EventScript_25BA42 - case 1, BattleFrontier_BattlePikeLobby_EventScript_25BA4F + case FRONTIER_LVL_50, BattleFrontier_BattlePikeLobby_EventScript_25BA42 + case FRONTIER_LVL_OPEN, BattleFrontier_BattlePikeLobby_EventScript_25BA4F BattleFrontier_BattlePikeLobby_EventScript_25BA42:: @ 825BA42 msgbox BattleFrontier_BattlePikeLobby_Text_25BE8C, MSGBOX_DEFAULT @@ -229,18 +206,13 @@ BattleFrontier_BattlePikeLobby_EventScript_25BA4F:: @ 825BA4F goto BattleFrontier_BattlePikeLobby_EventScript_25BA7E BattleFrontier_BattlePikeLobby_EventScript_25BA5C:: @ 825BA5C - setvar VAR_0x8004, FRONTIER_UTIL_FUNC_SET_DATA - setvar VAR_0x8005, 0 - setvar VAR_0x8006, 0 - special CallFrontierUtilFunc + frontier_set FRONTIER_DATA_CHALLENGE_STATUS, 0 goto BattleFrontier_BattlePikeLobby_EventScript_25BA76 BattleFrontier_BattlePikeLobby_EventScript_25BA73:: @ 825BA73 special LoadPlayerParty - BattleFrontier_BattlePikeLobby_EventScript_25BA76:: @ 825BA76 msgbox BattleFrontier_BattlePikeLobby_Text_25BE02, MSGBOX_DEFAULT - BattleFrontier_BattlePikeLobby_EventScript_25BA7E:: @ 825BA7E release end diff --git a/data/maps/BattleFrontier_BattlePikeRoomFinal/scripts.inc b/data/maps/BattleFrontier_BattlePikeRoomFinal/scripts.inc index 8a98fa488..2eaaa20b4 100644 --- a/data/maps/BattleFrontier_BattlePikeRoomFinal/scripts.inc +++ b/data/maps/BattleFrontier_BattlePikeRoomFinal/scripts.inc @@ -11,7 +11,7 @@ BattleFrontier_BattlePikeRoomFinal_EventScript_25E3A7:: @ 825E3A7 delay 16 applymovement 1, BattleFrontier_BattlePikeRoomFinal_Movement_25E3DB waitmovement 0 - frontier_setchallengestatus CHALLENGE_STATUS_WON + frontier_set FRONTIER_DATA_CHALLENGE_STATUS, CHALLENGE_STATUS_WON lockall msgbox BattleFrontier_BattlePikeRoomFinal_Text_CongratsThisWayPlease, MSGBOX_DEFAULT closemessage diff --git a/data/maps/BattleFrontier_BattlePikeRoomNormal/scripts.inc b/data/maps/BattleFrontier_BattlePikeRoomNormal/scripts.inc index 6f05367fb..f4e10e3ab 100644 --- a/data/maps/BattleFrontier_BattlePikeRoomNormal/scripts.inc +++ b/data/maps/BattleFrontier_BattlePikeRoomNormal/scripts.inc @@ -41,7 +41,7 @@ BattleFrontier_BattlePikeRoomNormal_EventScript_25D1C6:: @ 825D1C6 case 1, BattleFrontier_BattlePikeRoomNormal_EventScript_25D226 BattleFrontier_BattlePikeRoomNormal_EventScript_25D20A:: @ 825D20A - frontier_setchallengestatus CHALLENGE_STATUS_LOST + frontier_set FRONTIER_DATA_CHALLENGE_STATUS, CHALLENGE_STATUS_LOST warp MAP_BATTLE_FRONTIER_BATTLE_PIKE_LOBBY, 255, 5, 6 waitstate end @@ -138,16 +138,11 @@ BattleFrontier_BattlePikeRoomNormal_EventScript_25D2FB:: @ 825D2FB case 2, BattleFrontier_BattlePikeRoomNormal_EventScript_25D416 case 3, BattleFrontier_BattlePikeRoomNormal_EventScript_25D3BD case 4, BattleFrontier_BattlePikeRoomNormal_EventScript_25D443 - setvar VAR_0x8004, FRONTIER_UTIL_FUNC_GET_DATA - setvar VAR_0x8005, 7 - special CallFrontierUtilFunc - compare VAR_RESULT, 0 + frontier_get FRONTIER_DATA_HEARD_BRAIN_SPEECH + compare VAR_RESULT, FALSE goto_if_ne BattleFrontier_BattlePikeRoomNormal_EventScript_25D3BD msgbox BattleFrontier_BattlePikeRoomNormal_Text_25DED2, MSGBOX_DEFAULT - setvar VAR_0x8004, FRONTIER_UTIL_FUNC_SET_DATA - setvar VAR_0x8005, 7 - special CallFrontierUtilFunc - + frontier_set FRONTIER_DATA_HEARD_BRAIN_SPEECH BattleFrontier_BattlePikeRoomNormal_EventScript_25D3BD:: @ 825D3BD msgbox BattleFrontier_BattlePikeRoomNormal_Text_25DF71, MSGBOX_DEFAULT call BattleFrontier_BattlePikeRoomNormal_EventScript_25D77B @@ -156,8 +151,7 @@ BattleFrontier_BattlePikeRoomNormal_EventScript_25D3BD:: @ 825D3BD goto BattleFrontier_BattlePikeRoomNormal_EventScript_25D20A BattleFrontier_BattlePikeRoomNormal_EventScript_25D3DA:: @ 825D3DA - setvar VAR_0x8004, FRONTIER_UTIL_FUNC_GET_FACILITY_SYMBOLS - special CallFrontierUtilFunc + frontier_getsymbols compare VAR_RESULT, 0 goto_if_ne BattleFrontier_BattlePikeRoomNormal_EventScript_25D49D msgbox BattleFrontier_BattlePikeRoomNormal_Text_25DFA2, MSGBOX_DEFAULT @@ -166,23 +160,17 @@ BattleFrontier_BattlePikeRoomNormal_EventScript_25D3DA:: @ 825D3DA message BattleFrontier_BattlePikeRoomNormal_Text_25DFD0 waitmessage waitfanfare - setvar VAR_0x8004, FRONTIER_UTIL_FUNC_GIVE_FACILITY_SYMBOL - special CallFrontierUtilFunc + frontier_givesymbol msgbox BattleFrontier_BattlePikeRoomNormal_Text_25E003, MSGBOX_DEFAULT closemessage goto BattleFrontier_BattlePikeRoomNormal_EventScript_25D49D BattleFrontier_BattlePikeRoomNormal_EventScript_25D416:: @ 825D416 - setvar VAR_0x8004, FRONTIER_UTIL_FUNC_GET_DATA - setvar VAR_0x8005, 7 - special CallFrontierUtilFunc - compare VAR_RESULT, 0 + frontier_get FRONTIER_DATA_HEARD_BRAIN_SPEECH + compare VAR_RESULT, FALSE goto_if_ne BattleFrontier_BattlePikeRoomNormal_EventScript_25D443 msgbox BattleFrontier_BattlePikeRoomNormal_Text_25E02C, MSGBOX_DEFAULT - setvar VAR_0x8004, FRONTIER_UTIL_FUNC_SET_DATA - setvar VAR_0x8005, 7 - special CallFrontierUtilFunc - + frontier_set FRONTIER_DATA_HEARD_BRAIN_SPEECH BattleFrontier_BattlePikeRoomNormal_EventScript_25D443:: @ 825D443 msgbox BattleFrontier_BattlePikeRoomNormal_Text_25E0E8, MSGBOX_DEFAULT call BattleFrontier_BattlePikeRoomNormal_EventScript_25D77B @@ -191,8 +179,7 @@ BattleFrontier_BattlePikeRoomNormal_EventScript_25D443:: @ 825D443 goto BattleFrontier_BattlePikeRoomNormal_EventScript_25D20A BattleFrontier_BattlePikeRoomNormal_EventScript_25D460:: @ 825D460 - setvar VAR_0x8004, FRONTIER_UTIL_FUNC_GET_FACILITY_SYMBOLS - special CallFrontierUtilFunc + frontier_getsymbols compare VAR_RESULT, 2 goto_if_eq BattleFrontier_BattlePikeRoomNormal_EventScript_25D49D msgbox BattleFrontier_BattlePikeRoomNormal_Text_25E0F6, MSGBOX_DEFAULT @@ -201,8 +188,7 @@ BattleFrontier_BattlePikeRoomNormal_EventScript_25D460:: @ 825D460 message BattleFrontier_BattlePikeRoomNormal_Text_25E118 waitmessage waitfanfare - setvar VAR_0x8004, FRONTIER_UTIL_FUNC_GIVE_FACILITY_SYMBOL - special CallFrontierUtilFunc + frontier_givesymbol msgbox BattleFrontier_BattlePikeRoomNormal_Text_25E140, MSGBOX_DEFAULT closemessage goto BattleFrontier_BattlePikeRoomNormal_EventScript_25D49D diff --git a/data/maps/BattleFrontier_BattlePikeRoomWildMons/scripts.inc b/data/maps/BattleFrontier_BattlePikeRoomWildMons/scripts.inc index cc4c49bd7..b9323da2e 100644 --- a/data/maps/BattleFrontier_BattlePikeRoomWildMons/scripts.inc +++ b/data/maps/BattleFrontier_BattlePikeRoomWildMons/scripts.inc @@ -16,7 +16,7 @@ BattleFrontier_BattlePikeRoomWildMons_EventScript_25E43C:: @ 825E43C end BattleFrontier_BattlePikeRoomWildMons_EventScript_25E44A:: @ 825E44A - frontier_setchallengestatus CHALLENGE_STATUS_LOST + frontier_set FRONTIER_DATA_CHALLENGE_STATUS, CHALLENGE_STATUS_LOST warp MAP_BATTLE_FRONTIER_BATTLE_PIKE_LOBBY, 255, 5, 6 waitstate end @@ -32,7 +32,7 @@ BattleFrontier_BattlePikeRoomWildMons_EventScript_25E470:: @ 825E470 BattleFrontier_BattlePikeRoomWildMons_MapScript1_25E47A: @ 825E47A call BattleFrontier_BattlePikeRoom_EventScript_ResetSketchedMoves - frontier_getbattleoutcome + frontier_get FRONTIER_DATA_BATTLE_OUTCOME compare VAR_RESULT, B_OUTCOME_LOST goto_if_eq BattleFrontier_BattlePikeRoomWildMons_EventScript_25E4A3 compare VAR_RESULT, B_OUTCOME_DREW diff --git a/data/maps/BattleFrontier_BattlePikeThreePathRoom/scripts.inc b/data/maps/BattleFrontier_BattlePikeThreePathRoom/scripts.inc index 4beb3be99..1faf878a3 100644 --- a/data/maps/BattleFrontier_BattlePikeThreePathRoom/scripts.inc +++ b/data/maps/BattleFrontier_BattlePikeThreePathRoom/scripts.inc @@ -5,9 +5,9 @@ BattleFrontier_BattlePikeThreePathRoom_MapScripts:: @ 825C843 .byte 0 BattleFrontier_BattlePikeThreePathRoom_OnFrame: @ 825C853 - map_script_2 VAR_TEMP_0, 0, BattleFrontier_BattlePikeThreePathRoom_EventScript_CheckChallengeOutcome - map_script_2 VAR_TEMP_0, 1, BattleFrontier_BattlePikeThreePathRoom_EventScript_WarpToLobby - map_script_2 VAR_TEMP_0, 2, BattleFrontier_BattlePikeThreePathRoom_EventScript_25C8A4 + map_script_2 VAR_TEMP_0, 0, BattleFrontier_BattlePikeThreePathRoom_EventScript_CheckChallengeStatus + map_script_2 VAR_TEMP_0, CHALLENGE_STATUS_SAVING, BattleFrontier_BattlePikeThreePathRoom_EventScript_WarpToLobby + map_script_2 VAR_TEMP_0, CHALLENGE_STATUS_PAUSED, BattleFrontier_BattlePikeThreePathRoom_EventScript_25C8A4 map_script_2 VAR_TEMP_5, 0, BattleFrontier_BattlePikeThreePathRoom_EventScript_25CA78 map_script_2 VAR_TEMP_5, 1, BattleFrontier_BattlePikeThreePathRoom_EventScript_25CA97 .2byte 0 @@ -21,8 +21,8 @@ BattleFrontier_BattlePikeThreePathRoom_EventScript_25C887:: @ 825C887 turnobject EVENT_OBJ_ID_PLAYER, DIR_NORTH end -BattleFrontier_BattlePikeThreePathRoom_EventScript_CheckChallengeOutcome:: @ 825C891 - frontier_checkoutcome +BattleFrontier_BattlePikeThreePathRoom_EventScript_CheckChallengeStatus:: @ 825C891 + frontier_getstatus end BattleFrontier_BattlePikeThreePathRoom_EventScript_WarpToLobby:: @ 825C89A @@ -39,28 +39,19 @@ BattleFrontier_BattlePikeThreePathRoom_EventScript_25C8A4:: @ 825C8A4 special CallBattlePikeFunction playse SE_SAVE waitse - setvar VAR_0x8004, FRONTIER_UTIL_FUNC_SET_DATA - setvar VAR_0x8005, 3 - setvar VAR_0x8006, 0 - special CallFrontierUtilFunc + frontier_set FRONTIER_DATA_PAUSED, FALSE setvar VAR_TEMP_0, 255 special SavePlayerParty - frontier_loadselectedmons + frontier_setpartyorder FRONTIER_PARTY_SIZE msgbox BattleFrontier_BattlePikeThreePathRoom_Text_PleaseEnjoyChallenge, MSGBOX_DEFAULT closemessage releaseall - setvar VAR_0x8004, FRONTIER_UTIL_FUNC_SET_FRONTIER_TRAINERS - special CallFrontierUtilFunc - setvar VAR_0x8004, FRONTIER_UTIL_FUNC_SET_DATA - setvar VAR_0x8005, 0 - setvar VAR_0x8006, 99 - special CallFrontierUtilFunc + frontier_settrainers + frontier_set FRONTIER_DATA_CHALLENGE_STATUS, 99 end BattleFrontier_BattlePikeThreePathRoom_EventScript_25C908:: @ 825C908 - setvar VAR_0x8004, FRONTIER_UTIL_FUNC_GET_DATA - setvar VAR_0x8005, 2 - special CallFrontierUtilFunc + frontier_get FRONTIER_DATA_BATTLE_NUM @ Room number switch VAR_RESULT case 1, BattleFrontier_BattlePikeThreePathRoom_EventScript_25C968 case 3, BattleFrontier_BattlePikeThreePathRoom_EventScript_25C978 @@ -129,8 +120,7 @@ BattleFrontier_BattlePikeThreePathRoom_EventScript_25C9D8:: @ 825C9D8 end BattleFrontier_BattlePikeThreePathRoom_EventScript_25C9FD:: @ 825C9FD - setvar VAR_0x8004, FRONTIER_UTIL_FUNC_6 - special CallFrontierUtilFunc + frontier_saveparty message BattleFrontier_BattlePikeThreePathRoom_Text_SavingYourData waitmessage special LoadPlayerParty @@ -140,8 +130,7 @@ BattleFrontier_BattlePikeThreePathRoom_EventScript_25C9FD:: @ 825C9FD playse SE_SAVE waitse fadescreen 1 - setvar VAR_0x8004, FRONTIER_UTIL_FUNC_SOFT_RESET - special CallFrontierUtilFunc + frontier_reset end BattleFrontier_BattlePikeThreePathRoom_EventScript_25CA2A:: @ 825CA2A diff --git a/data/maps/BattleFrontier_BattlePyramidEmptySquare/scripts.inc b/data/maps/BattleFrontier_BattlePyramidEmptySquare/scripts.inc index 2ca635c41..02384c332 100644 --- a/data/maps/BattleFrontier_BattlePyramidEmptySquare/scripts.inc +++ b/data/maps/BattleFrontier_BattlePyramidEmptySquare/scripts.inc @@ -17,7 +17,6 @@ BattleFrontier_BattlePyramidEmptySquare_EventScript_252A5D:: @ 8252A5D setvar VAR_0x8006, 1 setvar VAR_0x8007, 55 setvar VAR_RESULT, 0 - BattleFrontier_BattlePyramidEmptySquare_EventScript_252A77:: @ 8252A77 special CallBattlePyramidFunction delay 2 @@ -40,12 +39,12 @@ BattleFrontier_BattlePyramidEmptySquare_EventScript_252A98:: @ 8252A98 BattleFrontier_BattlePyramidEmptySquare_MapScript1_252AA2: @ 8252AA2 setvar VAR_0x8004, BATTLE_PYRAMID_FUNC_SET_FLOOR_PALETTE special CallBattlePyramidFunction - frontier_checkoutcome + frontier_getstatus switch VAR_TEMP_0 case 0, BattleFrontier_BattlePyramidEmptySquare_EventScript_252B8D - case 1, BattleFrontier_BattlePyramidEmptySquare_EventScript_252B66 - case 2, BattleFrontier_BattlePyramidEmptySquare_EventScript_252B8D - frontier_getbattleoutcome + case CHALLENGE_STATUS_SAVING, BattleFrontier_BattlePyramidEmptySquare_EventScript_252B66 + case CHALLENGE_STATUS_PAUSED, BattleFrontier_BattlePyramidEmptySquare_EventScript_252B8D + frontier_get FRONTIER_DATA_BATTLE_OUTCOME compare VAR_RESULT, B_OUTCOME_RAN goto_if_eq BattleFrontier_BattlePyramidEmptySquare_EventScript_252B39 compare VAR_RESULT, B_OUTCOME_PLAYER_TELEPORTED @@ -58,9 +57,7 @@ BattleFrontier_BattlePyramidEmptySquare_MapScript1_252AA2: @ 8252AA2 goto_if_eq BattleFrontier_BattlePyramidEmptySquare_EventScript_252B42 compare VAR_RESULT, B_OUTCOME_FORFEITED goto_if_eq BattleFrontier_BattlePyramidEmptySquare_EventScript_252B42 - setvar VAR_0x8004, FRONTIER_UTIL_FUNC_CHECK_BATTLE_TYPE - setvar VAR_0x8005, BATTLE_TYPE_TRAINER - special CallFrontierUtilFunc + frontier_isbattletype BATTLE_TYPE_TRAINER @ VAR_RESULT seems to be ignored here setvar VAR_TEMP_D, 1 BattleFrontier_BattlePyramidEmptySquare_EventScript_252B39:: @ 8252B39 setvar VAR_0x8004, BATTLE_PYRAMID_FUNC_RESTORE_PARTY @@ -69,7 +66,7 @@ BattleFrontier_BattlePyramidEmptySquare_EventScript_252B39:: @ 8252B39 BattleFrontier_BattlePyramidEmptySquare_EventScript_252B42:: @ 8252B42 BattleFrontier_BattlePyramidTop_EventScript_252B42:: @ 8252B42 - frontier_setchallengestatus CHALLENGE_STATUS_LOST + frontier_set FRONTIER_DATA_CHALLENGE_STATUS, CHALLENGE_STATUS_LOST setvar VAR_0x8004, BATTLE_PYRAMID_FUNC_SET_DATA setvar VAR_0x8005, 7 setvar VAR_0x8006, 255 @@ -93,13 +90,10 @@ BattleFrontier_BattlePyramidEmptySquare_EventScript_252B8D:: @ 8252B8D setvar VAR_0x8005, 1 special CallBattlePyramidFunction special SavePlayerParty - setvar VAR_0x8004, FRONTIER_UTIL_FUNC_SET_DATA - setvar VAR_0x8005, 0 - setvar VAR_0x8006, 0 - special CallFrontierUtilFunc + frontier_set FRONTIER_DATA_CHALLENGE_STATUS, 0 setvar VAR_0x8004, BATTLE_PYRAMID_FUNC_INIT_TRAINERS special CallBattlePyramidFunction - frontier_loadselectedmons + frontier_setpartyorder FRONTIER_PARTY_SIZE setvar VAR_TEMP_F, 1 end @@ -116,18 +110,15 @@ BattleFrontier_BattlePyramidEmptySquare_EventScript_252BD5:: @ 8252BD5 return BattleFrontier_BattlePyramidEmptySquare_EventScript_252BE8:: @ 8252BE8 - call BattleFrontier_BattlePalaceBattleRoom_EventScript_241EBA - frontier_getbattlenum + call BattleFrontier_EventScript_IncrementWinStreak + frontier_get FRONTIER_DATA_BATTLE_NUM @ Floor number addvar VAR_RESULT, 1 - frontier_setbattlenum VAR_RESULT + frontier_set FRONTIER_DATA_BATTLE_NUM, VAR_RESULT compare VAR_RESULT, 7 goto_if_eq BattleFrontier_BattlePyramidEmptySquare_EventScript_252C45 setvar VAR_0x8004, BATTLE_PYRAMID_FUNC_SEED_FLOOR special CallBattlePyramidFunction - setvar VAR_0x8004, FRONTIER_UTIL_FUNC_SET_DATA - setvar VAR_0x8005, 0 - setvar VAR_0x8006, 0 - special CallFrontierUtilFunc + frontier_set FRONTIER_DATA_CHALLENGE_STATUS, 0 setvar VAR_RESULT, 0 warp MAP_BATTLE_FRONTIER_BATTLE_PYRAMID_EMPTY_SQUARE, 255, 1, 1 waitstate diff --git a/data/maps/BattleFrontier_BattlePyramidLobby/scripts.inc b/data/maps/BattleFrontier_BattlePyramidLobby/scripts.inc index 9094273f0..2794c845c 100644 --- a/data/maps/BattleFrontier_BattlePyramidLobby/scripts.inc +++ b/data/maps/BattleFrontier_BattlePyramidLobby/scripts.inc @@ -14,14 +14,14 @@ BattleFrontier_BattlePyramidLobby_EventScript_25072B: @ 825072B BattleFrontier_BattlePyramidLobby_MapScript2_250735: @ 8250735 map_script_2 VAR_TEMP_0, 0, BattleFrontier_BattlePyramidLobby_EventScript_25075F - map_script_2 VAR_TEMP_0, 1, BattleFrontier_BattlePyramidLobby_EventScript_250768 - map_script_2 VAR_TEMP_0, 2, BattleFrontier_BattlePyramidLobby_EventScript_2508AC - map_script_2 VAR_TEMP_0, 3, BattleFrontier_BattlePyramidLobby_EventScript_2507B1 - map_script_2 VAR_TEMP_0, 4, BattleFrontier_BattlePyramidLobby_EventScript_250852 + map_script_2 VAR_TEMP_0, CHALLENGE_STATUS_SAVING, BattleFrontier_BattlePyramidLobby_EventScript_250768 + map_script_2 VAR_TEMP_0, CHALLENGE_STATUS_PAUSED, BattleFrontier_BattlePyramidLobby_EventScript_2508AC + map_script_2 VAR_TEMP_0, CHALLENGE_STATUS_WON, BattleFrontier_BattlePyramidLobby_EventScript_2507B1 + map_script_2 VAR_TEMP_0, CHALLENGE_STATUS_LOST, BattleFrontier_BattlePyramidLobby_EventScript_250852 .2byte 0 BattleFrontier_BattlePyramidLobby_EventScript_25075F:: @ 825075F - frontier_checkoutcome + frontier_getstatus end BattleFrontier_BattlePyramidLobby_EventScript_250768:: @ 8250768 @@ -39,18 +39,14 @@ BattleFrontier_BattlePyramidLobby_EventScript_250768:: @ 8250768 setvar VAR_0x8005, 2 setvar VAR_0x8006, 0 special CallBattlePyramidFunction - setvar VAR_0x8004, FRONTIER_UTIL_FUNC_SET_DATA - setvar VAR_0x8005, 0 - setvar VAR_0x8006, 0 - special CallFrontierUtilFunc + frontier_set FRONTIER_DATA_CHALLENGE_STATUS, 0 setvar VAR_TEMP_0, 255 releaseall end BattleFrontier_BattlePyramidLobby_EventScript_2507B1:: @ 82507B1 lockall - setvar VAR_0x8004, FRONTIER_UTIL_FUNC_IS_FRONTIER_BRAIN - special CallFrontierUtilFunc + frontier_isbrain compare VAR_RESULT, TRUE goto_if_eq BattleFrontier_BattlePyramidLobby_EventScript_2507D2 msgbox BattleFrontier_BattlePyramidLobby_Text_2517B5, MSGBOX_DEFAULT @@ -58,14 +54,12 @@ BattleFrontier_BattlePyramidLobby_EventScript_2507B1:: @ 82507B1 BattleFrontier_BattlePyramidLobby_EventScript_2507D2:: @ 82507D2 msgbox BattleFrontier_BattlePyramidLobby_Text_2525F4, MSGBOX_DEFAULT - BattleFrontier_BattlePyramidLobby_EventScript_2507DA:: @ 82507DA special DoBattlePyramidMonsHaveHeldItem compare VAR_RESULT, TRUE call_if_eq BattleFrontier_BattlePyramidLobby_EventScript_250DDB clearflag FLAG_STORING_ITEMS_IN_PYRAMID_BAG - setvar VAR_0x8004, FRONTIER_UTIL_FUNC_8 - special CallFrontierUtilFunc + frontier_checkairshow special LoadPlayerParty setvar VAR_0x8004, BATTLE_PYRAMID_FUNC_CLEAR_HELD_ITEMS special CallBattlePyramidFunction @@ -75,8 +69,7 @@ BattleFrontier_BattlePyramidLobby_EventScript_2507DA:: @ 82507DA playse SE_EXPMAX waitse msgbox BattleFrontier_BattlePyramidLobby_Text_252662, MSGBOX_DEFAULT - setvar VAR_0x8004, FRONTIER_UTIL_FUNC_11 - special CallFrontierUtilFunc + frontier_givepoints msgbox BattleFrontier_Text_ObtainedXBattlePoints, MSGBOX_GETPOINTS message BattleFrontier_BattlePyramidLobby_Text_251A77 waitmessage @@ -94,8 +87,7 @@ BattleFrontier_BattlePyramidLobby_EventScript_2507DA:: @ 82507DA end BattleFrontier_BattlePyramidLobby_EventScript_250852:: @ 8250852 - setvar VAR_0x8004, FRONTIER_UTIL_FUNC_8 - special CallFrontierUtilFunc + frontier_checkairshow special LoadPlayerParty setvar VAR_0x8004, BATTLE_PYRAMID_FUNC_CLEAR_HELD_ITEMS special CallBattlePyramidFunction @@ -128,8 +120,8 @@ BattleFrontier_BattlePyramidLobby_EventScript_2508AC:: @ 82508AC BattleFrontier_BattlePyramidLobby_EventScript_2508B1:: @ 82508B1 lock faceplayer - setvar VAR_FRONTIER_FACILITY, 6 - setvar VAR_FRONTIER_BATTLE_MODE, 0 + setvar VAR_FRONTIER_FACILITY, FRONTIER_FACILITY_PYRAMID + setvar VAR_FRONTIER_BATTLE_MODE, FRONTIER_MODE_SINGLES special SavePlayerParty msgbox BattleFrontier_BattlePyramidLobby_Text_250F31, MSGBOX_DEFAULT @@ -150,17 +142,13 @@ BattleFrontier_BattlePyramidLobby_EventScript_250904:: @ 8250904 switch VAR_RESULT case 2, BattleFrontier_BattlePyramidLobby_EventScript_250AC4 case MULTI_B_PRESSED, BattleFrontier_BattlePyramidLobby_EventScript_250AC4 - setvar VAR_0x8004, FRONTIER_UTIL_FUNC_15 - special CallFrontierUtilFunc - compare VAR_0x8004, 1 + frontier_checkineligible + compare VAR_0x8004, TRUE goto_if_eq BattleFrontier_BattlePyramidLobby_EventScript_250A75 - setvar VAR_0x8004, FRONTIER_UTIL_FUNC_SET_DATA - setvar VAR_0x8005, 1 - copyvar VAR_0x8006, VAR_RESULT - special CallFrontierUtilFunc + frontier_set FRONTIER_DATA_LVL_MODE, VAR_RESULT msgbox BattleFrontier_BattlePyramidLobby_Text_251297, MSGBOX_DEFAULT fadescreen 1 - call BattleFrontier_BattlePyramidLobby_EventScript_23F2B7 + call BattleFrontier_EventScript_GetLvlMode copyvar VAR_0x8004, VAR_RESULT setvar VAR_0x8005, 3 special sub_80F9490 @@ -175,23 +163,15 @@ BattleFrontier_BattlePyramidLobby_EventScript_250904:: @ 8250904 BattleFrontier_BattlePyramidLobby_EventScript_2509A5:: @ 82509A5 setvar VAR_TEMP_0, 0 - setvar VAR_0x8004, FRONTIER_UTIL_FUNC_SET_DATA - setvar VAR_0x8005, 4 - special CallFrontierUtilFunc + frontier_set FRONTIER_DATA_SELECTED_MON_ORDER setvar VAR_0x8004, BATTLE_PYRAMID_FUNC_INIT_CHALLENGE special CallBattlePyramidFunction setvar VAR_0x8004, BATTLE_PYRAMID_FUNC_SET_DATA setvar VAR_0x8005, 2 setvar VAR_0x8006, 1 special CallBattlePyramidFunction - setvar VAR_0x8004, FRONTIER_UTIL_FUNC_SET_DATA - setvar VAR_0x8005, 0 - setvar VAR_0x8006, 1 - special CallFrontierUtilFunc - setvar VAR_0x8004, FRONTIER_UTIL_FUNC_SET_DATA - setvar VAR_0x8005, 3 - setvar VAR_0x8006, 0 - special CallFrontierUtilFunc + frontier_set FRONTIER_DATA_CHALLENGE_STATUS, CHALLENGE_STATUS_SAVING + frontier_set FRONTIER_DATA_PAUSED, FALSE setvar VAR_0x8004, BATTLE_PYRAMID_FUNC_SEED_FLOOR special CallBattlePyramidFunction setvar VAR_0x8004, BATTLE_PYRAMID_FUNC_INIT_TRAINERS @@ -206,14 +186,11 @@ BattleFrontier_BattlePyramidLobby_EventScript_2509A5:: @ 82509A5 BattleFrontier_BattlePyramidLobby_EventScript_250A21:: @ 8250A21 special SavePlayerParty - frontier_loadselectedmons + frontier_setpartyorder FRONTIER_PARTY_SIZE msgbox BattleFrontier_BattlePyramidLobby_Text_251531, MSGBOX_DEFAULT closemessage call BattleFrontier_BattlePyramidLobby_EventScript_250D56 - setvar VAR_0x8004, FRONTIER_UTIL_FUNC_SET_DATA - setvar VAR_0x8005, 0 - setvar VAR_0x8006, 0 - special CallFrontierUtilFunc + frontier_set FRONTIER_DATA_CHALLENGE_STATUS, 0 setvar VAR_RESULT, 0 special HealPlayerParty warp MAP_BATTLE_FRONTIER_BATTLE_PYRAMID_EMPTY_SQUARE, 255, 1, 1 @@ -227,8 +204,8 @@ BattleFrontier_BattlePyramidLobby_EventScript_250A68:: @ 8250A68 BattleFrontier_BattlePyramidLobby_EventScript_250A75:: @ 8250A75 switch VAR_RESULT - case 0, BattleFrontier_BattlePyramidLobby_EventScript_250A90 - case 1, BattleFrontier_BattlePyramidLobby_EventScript_250A9D + case FRONTIER_LVL_50, BattleFrontier_BattlePyramidLobby_EventScript_250A90 + case FRONTIER_LVL_OPEN, BattleFrontier_BattlePyramidLobby_EventScript_250A9D BattleFrontier_BattlePyramidLobby_EventScript_250A90:: @ 8250A90 msgbox BattleFrontier_BattlePyramidLobby_Text_2513C1, MSGBOX_DEFAULT @@ -239,18 +216,13 @@ BattleFrontier_BattlePyramidLobby_EventScript_250A9D:: @ 8250A9D goto BattleFrontier_BattlePyramidLobby_EventScript_250ACC BattleFrontier_BattlePyramidLobby_EventScript_250AAA:: @ 8250AAA - setvar VAR_0x8004, FRONTIER_UTIL_FUNC_SET_DATA - setvar VAR_0x8005, 0 - setvar VAR_0x8006, 0 - special CallFrontierUtilFunc + frontier_set FRONTIER_DATA_CHALLENGE_STATUS, 0 goto BattleFrontier_BattlePyramidLobby_EventScript_250AC4 BattleFrontier_BattlePyramidLobby_EventScript_250AC1:: @ 8250AC1 special LoadPlayerParty - BattleFrontier_BattlePyramidLobby_EventScript_250AC4:: @ 8250AC4 msgbox BattleFrontier_BattlePyramidLobby_Text_250FE5, MSGBOX_DEFAULT - BattleFrontier_BattlePyramidLobby_EventScript_250ACC:: @ 8250ACC release end @@ -442,7 +414,6 @@ BattleFrontier_BattlePyramidLobby_EventScript_250D56:: @ 8250D56 BattleFrontier_BattlePyramidLobby_EventScript_250D94:: @ 8250D94 msgbox BattleFrontier_BattlePyramidLobby_Text_2515F4, MSGBOX_DEFAULT - BattleFrontier_BattlePyramidLobby_EventScript_250D9C:: @ 8250D9C message BattleFrontier_BattlePyramidLobby_Text_25161E waitmessage diff --git a/data/maps/BattleFrontier_BattlePyramidTop/scripts.inc b/data/maps/BattleFrontier_BattlePyramidTop/scripts.inc index def0d0af3..0a48184b3 100644 --- a/data/maps/BattleFrontier_BattlePyramidTop/scripts.inc +++ b/data/maps/BattleFrontier_BattlePyramidTop/scripts.inc @@ -31,15 +31,15 @@ BattleFrontier_BattlePyramidTop_MapScript1_2550F4: @ 82550F4 frontier_getbrainstatus compare VAR_RESULT, FRONTIER_BRAIN_NOT_READY goto_if_eq BattleFrontier_BattlePyramidTop_EventScript_25510C - call BattleFrontier_BattlePyramidTop_EventScript_242170 + call BattleFrontier_EventScript_SetBrainObjectGfx BattleFrontier_BattlePyramidTop_EventScript_25510C:: @ 825510C copyvar VAR_TEMP_C, VAR_RESULT - frontier_checkoutcome + frontier_getstatus switch VAR_TEMP_0 case 0, BattleFrontier_BattlePyramidTop_EventScript_255193 - case 1, BattleFrontier_BattlePyramidTop_EventScript_252B66 - case 2, BattleFrontier_BattlePyramidTop_EventScript_255193 - frontier_getbattleoutcome + case CHALLENGE_STATUS_SAVING, BattleFrontier_BattlePyramidTop_EventScript_252B66 + case CHALLENGE_STATUS_PAUSED, BattleFrontier_BattlePyramidTop_EventScript_255193 + frontier_get FRONTIER_DATA_BATTLE_OUTCOME compare VAR_RESULT, B_OUTCOME_LOST goto_if_eq BattleFrontier_BattlePyramidTop_EventScript_252B42 compare VAR_RESULT, B_OUTCOME_DREW @@ -68,13 +68,10 @@ BattleFrontier_BattlePyramidTop_EventScript_255193:: @ 8255193 setvar VAR_0x8005, 1 special CallBattlePyramidFunction special SavePlayerParty - setvar VAR_0x8004, FRONTIER_UTIL_FUNC_SET_DATA - setvar VAR_0x8005, 0 - setvar VAR_0x8006, 0 - special CallFrontierUtilFunc + frontier_set FRONTIER_DATA_CHALLENGE_STATUS, 0 setvar VAR_0x8004, BATTLE_PYRAMID_FUNC_INIT_TRAINERS special CallBattlePyramidFunction - frontier_loadselectedmons + frontier_setpartyorder FRONTIER_PARTY_SIZE setvar VAR_TEMP_F, 1 end @@ -100,7 +97,7 @@ BattleFrontier_BattlePyramidTop_EventScript_2551D0:: @ 82551D0 closemessage BattleFrontier_BattlePyramidTop_EventScript_25521A:: @ 825521A - frontier_setchallengestatus CHALLENGE_STATUS_WON + frontier_set FRONTIER_DATA_CHALLENGE_STATUS, CHALLENGE_STATUS_WON warp MAP_BATTLE_FRONTIER_BATTLE_PYRAMID_LOBBY, 255, 7, 13 waitstate end @@ -123,19 +120,15 @@ BattleFrontier_BattlePyramidTop_EventScript_255256:: @ 8255256 case FRONTIER_BRAIN_GOLD, BattleFrontier_BattlePyramidTop_EventScript_255335 case FRONTIER_BRAIN_STREAK, BattleFrontier_BattlePyramidTop_EventScript_2552D0 case FRONTIER_BRAIN_STREAK_LONG, BattleFrontier_BattlePyramidTop_EventScript_255388 - setvar VAR_0x8004, FRONTIER_UTIL_FUNC_GET_DATA - setvar VAR_0x8005, 7 - special CallFrontierUtilFunc - compare VAR_RESULT, 0 + frontier_get FRONTIER_DATA_HEARD_BRAIN_SPEECH + compare VAR_RESULT, FALSE goto_if_ne BattleFrontier_BattlePyramidTop_EventScript_2552D0 special SpawnCameraObject applymovement EVENT_OBJ_ID_CAMERA, BattleFrontier_BattlePyramidTop_Movement_25540C waitmovement 0 msgbox BattleFrontier_BattlePyramidTop_Text_255669, MSGBOX_DEFAULT closemessage - setvar VAR_0x8004, FRONTIER_UTIL_FUNC_SET_DATA - setvar VAR_0x8005, 7 - special CallFrontierUtilFunc + frontier_set FRONTIER_DATA_HEARD_BRAIN_SPEECH applymovement 2, BattleFrontier_BattlePyramidTop_Movement_25540A waitmovement 0 msgbox BattleFrontier_BattlePyramidTop_Text_25573E, MSGBOX_DEFAULT @@ -155,8 +148,7 @@ BattleFrontier_BattlePyramidTop_EventScript_2552DA:: @ 82552DA goto BattleFrontier_BattlePyramidTop_EventScript_252B42 BattleFrontier_BattlePyramidTop_EventScript_2552FB:: @ 82552FB - setvar VAR_0x8004, FRONTIER_UTIL_FUNC_GET_FACILITY_SYMBOLS - special CallFrontierUtilFunc + frontier_getsymbols compare VAR_RESULT, 0 goto_if_ne BattleFrontier_BattlePyramidTop_EventScript_25521A msgbox BattleFrontier_BattlePyramidTop_Text_255873, MSGBOX_DEFAULT @@ -164,25 +156,20 @@ BattleFrontier_BattlePyramidTop_EventScript_2552FB:: @ 82552FB message BattleFrontier_BattlePyramidTop_Text_2558E9 waitmessage waitfanfare - setvar VAR_0x8004, FRONTIER_UTIL_FUNC_GIVE_FACILITY_SYMBOL - special CallFrontierUtilFunc + frontier_givesymbol msgbox BattleFrontier_BattlePyramidTop_Text_25591D, MSGBOX_DEFAULT goto BattleFrontier_BattlePyramidTop_EventScript_25521A BattleFrontier_BattlePyramidTop_EventScript_255335:: @ 8255335 - setvar VAR_0x8004, FRONTIER_UTIL_FUNC_GET_DATA - setvar VAR_0x8005, 7 - special CallFrontierUtilFunc - compare VAR_RESULT, 0 + frontier_get FRONTIER_DATA_HEARD_BRAIN_SPEECH + compare VAR_RESULT, FALSE goto_if_ne BattleFrontier_BattlePyramidTop_EventScript_255388 special SpawnCameraObject applymovement EVENT_OBJ_ID_CAMERA, BattleFrontier_BattlePyramidTop_Movement_25540C waitmovement 0 msgbox BattleFrontier_BattlePyramidTop_Text_255951, MSGBOX_DEFAULT closemessage - setvar VAR_0x8004, FRONTIER_UTIL_FUNC_SET_DATA - setvar VAR_0x8005, 7 - special CallFrontierUtilFunc + frontier_set FRONTIER_DATA_HEARD_BRAIN_SPEECH applymovement 2, BattleFrontier_BattlePyramidTop_Movement_25540A waitmovement 0 msgbox BattleFrontier_BattlePyramidTop_Text_255A6D, MSGBOX_DEFAULT @@ -202,8 +189,7 @@ BattleFrontier_BattlePyramidTop_EventScript_255392:: @ 8255392 goto BattleFrontier_BattlePyramidTop_EventScript_252B42 BattleFrontier_BattlePyramidTop_EventScript_2553B3:: @ 82553B3 - setvar VAR_0x8004, FRONTIER_UTIL_FUNC_GET_FACILITY_SYMBOLS - special CallFrontierUtilFunc + frontier_getsymbols compare VAR_RESULT, 2 goto_if_eq BattleFrontier_BattlePyramidTop_EventScript_25521A msgbox BattleFrontier_BattlePyramidTop_Text_255ACD, MSGBOX_DEFAULT @@ -211,8 +197,7 @@ BattleFrontier_BattlePyramidTop_EventScript_2553B3:: @ 82553B3 message BattleFrontier_BattlePyramidTop_Text_255B59 waitmessage waitfanfare - setvar VAR_0x8004, FRONTIER_UTIL_FUNC_GIVE_FACILITY_SYMBOL - special CallFrontierUtilFunc + frontier_givesymbol msgbox BattleFrontier_BattlePyramidTop_Text_255B82, MSGBOX_DEFAULT goto BattleFrontier_BattlePyramidTop_EventScript_25521A diff --git a/data/maps/BattleFrontier_BattleTowerBattleRoom/scripts.inc b/data/maps/BattleFrontier_BattleTowerBattleRoom/scripts.inc index 5f58f801e..31e11532f 100644 --- a/data/maps/BattleFrontier_BattleTowerBattleRoom/scripts.inc +++ b/data/maps/BattleFrontier_BattleTowerBattleRoom/scripts.inc @@ -20,9 +20,7 @@ BattleFrontier_BattleTowerBattleRoom_EventScript_241B6C:: @ 8241B6C setvar VAR_TEMP_0, 1 applymovement EVENT_OBJ_ID_PLAYER, BattleFrontier_BattleTowerBattleRoom_Movement_242179 waitmovement 0 - setvar VAR_0x8004, FRONTIER_UTIL_FUNC_GET_DATA - setvar VAR_0x8005, 2 - special CallFrontierUtilFunc + frontier_get FRONTIER_DATA_BATTLE_NUM compare VAR_RESULT, 0 goto_if_eq BattleFrontier_BattleTowerBattleRoom_EventScript_241BC3 applymovement 2, BattleFrontier_BattleTowerBattleRoom_Movement_24218D @@ -31,7 +29,7 @@ BattleFrontier_BattleTowerBattleRoom_EventScript_241B6C:: @ 8241B6C waitmovement 0 setvar VAR_TEMP_2, 1 setvar VAR_0x8004, FRONTIER_UTIL_FUNC_SET_DATA - setvar VAR_0x8005, 6 + setvar VAR_0x8005, FRONTIER_DATA_6 setvar VAR_0x8006, 1 special CallFrontierUtilFunc goto BattleFrontier_BattleTowerBattleRoom_EventScript_241C8F @@ -52,7 +50,7 @@ BattleFrontier_BattleTowerBattleRoom_EventScript_241BC3:: @ 8241BC3 case B_OUTCOME_WON, BattleFrontier_BattleTowerBattleRoom_EventScript_241C2F BattleFrontier_BattleTowerBattleRoom_EventScript_241C03:: @ 8241C03 BattleFrontier_BattleTowerMultiBattleRoom_EventScript_241C03:: @ 8241C03 - frontier_setchallengestatus CHALLENGE_STATUS_LOST + frontier_set FRONTIER_DATA_CHALLENGE_STATUS, CHALLENGE_STATUS_LOST setvar VAR_0x8004, BATTLE_TOWER_FUNC_2 setvar VAR_0x8005, 3 special CallBattleTowerFunc @@ -61,7 +59,7 @@ BattleFrontier_BattleTowerMultiBattleRoom_EventScript_241C03:: @ 8241C03 goto BattleFrontier_BattleTowerBattleRoom_EventScript_2421B8 BattleFrontier_BattleTowerBattleRoom_EventScript_241C2F:: @ 8241C2F - call BattleFrontier_BattleTowerBattleRoom_EventScript_241EBA + call BattleFrontier_EventScript_IncrementWinStreak setvar VAR_0x8004, BATTLE_TOWER_FUNC_4 special CallBattleTowerFunc switch VAR_RESULT @@ -86,9 +84,7 @@ BattleFrontier_BattleTowerBattleRoom_EventScript_241C8F:: @ 8241C8F copyvar VAR_TEMP_F, VAR_RESULT compare VAR_RESULT, FRONTIER_BRAIN_NOT_READY goto_if_ne BattleFrontier_BattleTowerBattleRoom_EventScript_241F0A - setvar VAR_0x8004, FRONTIER_UTIL_FUNC_GET_DATA - setvar VAR_0x8005, 2 - special CallFrontierUtilFunc + frontier_get FRONTIER_DATA_BATTLE_NUM call BattleFrontier_BattleTowerBattleRoom_EventScript_241E44 call BattleFrontier_BattleTowerBattleRoom_EventScript_23E8E0 compare VAR_RESULT, 1 @@ -119,7 +115,7 @@ BattleFrontier_BattleTowerBattleRoom_EventScript_241D40:: @ 8241D40 case MULTI_B_PRESSED, BattleFrontier_BattleTowerBattleRoom_EventScript_241C8F BattleFrontier_BattleTowerBattleRoom_EventScript_241D72:: @ 8241D72 - call BattleFrontier_BattleTowerBattleRoom_EventScript_23E8B4 + call BattleFrontier_EventScript_SaveBattle goto BattleFrontier_BattleTowerBattleRoom_EventScript_241C8F BattleFrontier_BattleTowerBattleRoom_EventScript_241D7C:: @ 8241D7C @@ -147,7 +143,7 @@ BattleFrontier_BattleTowerBattleRoom_EventScript_241DDC:: @ 8241DDC goto BattleFrontier_BattleTowerBattleRoom_EventScript_241BC3 BattleFrontier_BattleTowerBattleRoom_EventScript_241DF6:: @ 8241DF6 - frontier_setchallengestatus CHALLENGE_STATUS_WON + frontier_set FRONTIER_DATA_CHALLENGE_STATUS, CHALLENGE_STATUS_WON setvar VAR_0x8004, BATTLE_TOWER_FUNC_2 setvar VAR_0x8005, 3 special CallBattleTowerFunc @@ -159,13 +155,12 @@ BattleFrontier_BattleTowerBattleRoom_EventScript_241E22:: @ 8241E22 message BattleFrontier_BattleTowerBattleRoom_Text_242426 waitmessage setvar VAR_0x8004, BATTLE_TOWER_FUNC_SAVE - setvar VAR_0x8005, 2 + setvar VAR_0x8005, CHALLENGE_STATUS_PAUSED special CallBattleTowerFunc playse SE_SAVE waitse fadescreen 1 - setvar VAR_0x8004, FRONTIER_UTIL_FUNC_SOFT_RESET - special CallFrontierUtilFunc + frontier_reset end BattleFrontier_BattleTowerBattleRoom_EventScript_241E44:: @ 8241E44 @@ -208,14 +203,8 @@ BattleFrontier_BattleTowerBattleRoom_EventScript_241EB3:: @ 8241EB3 waitmessage return -BattleFrontier_BattleArenaBattleRoom_EventScript_241EBA:: @ 8241EBA -BattleFrontier_BattleDomeLobby_EventScript_241EBA:: @ 8241EBA -BattleFrontier_BattleFactoryBattleRoom_EventScript_241EBA:: @ 8241EBA -BattleFrontier_BattlePalaceBattleRoom_EventScript_241EBA:: @ 8241EBA -BattleFrontier_BattleTowerBattleRoom2_EventScript_241EBA:: @ 8241EBA -BattleFrontier_BattleTowerBattleRoom_EventScript_241EBA:: @ 8241EBA - setvar VAR_0x8004, FRONTIER_UTIL_FUNC_17 - special CallFrontierUtilFunc +BattleFrontier_EventScript_IncrementWinStreak:: @ 8241EBA + frontier_incrementstreak return BattleFrontier_BattleTowerBattleRoom_EventScript_241EC3:: @ 8241EC3 @@ -264,7 +253,7 @@ BattleFrontier_BattleTowerBattleRoom_EventScript_241F79:: @ 8241F79 case MULTI_B_PRESSED, BattleFrontier_BattleTowerBattleRoom_EventScript_241F22 BattleFrontier_BattleTowerBattleRoom_EventScript_241FAF:: @ 8241FAF - call BattleFrontier_BattleTowerBattleRoom_EventScript_242170 + call BattleFrontier_EventScript_SetBrainObjectGfx closemessage applymovement EVENT_OBJ_ID_PLAYER, BattleFrontier_BattleTowerBattleRoom_Movement_242180 waitmovement 0 @@ -277,16 +266,11 @@ BattleFrontier_BattleTowerBattleRoom_EventScript_241FAF:: @ 8241FAF case FRONTIER_BRAIN_GOLD, BattleFrontier_BattleTowerBattleRoom_EventScript_242085 case FRONTIER_BRAIN_STREAK, BattleFrontier_BattleTowerBattleRoom_EventScript_242029 case FRONTIER_BRAIN_STREAK_LONG, BattleFrontier_BattleTowerBattleRoom_EventScript_2420B2 - setvar VAR_0x8004, FRONTIER_UTIL_FUNC_GET_DATA - setvar VAR_0x8005, 7 - special CallFrontierUtilFunc - compare VAR_RESULT, 0 + frontier_get FRONTIER_DATA_HEARD_BRAIN_SPEECH + compare VAR_RESULT, FALSE goto_if_ne BattleFrontier_BattleTowerBattleRoom_EventScript_242029 msgbox BattleFrontier_BattleTowerBattleRoom_Text_242579, MSGBOX_DEFAULT - setvar VAR_0x8004, FRONTIER_UTIL_FUNC_SET_DATA - setvar VAR_0x8005, 7 - special CallFrontierUtilFunc - + frontier_set FRONTIER_DATA_HEARD_BRAIN_SPEECH BattleFrontier_BattleTowerBattleRoom_EventScript_242029:: @ 8242029 msgbox BattleFrontier_BattleTowerBattleRoom_Text_24268C, MSGBOX_DEFAULT call BattleFrontier_BattleTowerBattleRoom_EventScript_24210E @@ -295,9 +279,8 @@ BattleFrontier_BattleTowerBattleRoom_EventScript_242029:: @ 8242029 goto BattleFrontier_BattleTowerBattleRoom_EventScript_241C03 BattleFrontier_BattleTowerBattleRoom_EventScript_242046:: @ 8242046 - call BattleFrontier_BattleTowerBattleRoom_EventScript_241EBA - setvar VAR_0x8004, FRONTIER_UTIL_FUNC_GET_FACILITY_SYMBOLS - special CallFrontierUtilFunc + call BattleFrontier_EventScript_IncrementWinStreak + frontier_getsymbols compare VAR_RESULT, 0 goto_if_ne BattleFrontier_BattleTowerBattleRoom_EventScript_241DF6 msgbox BattleFrontier_BattleTowerBattleRoom_Text_2426B4, MSGBOX_DEFAULT @@ -305,22 +288,16 @@ BattleFrontier_BattleTowerBattleRoom_EventScript_242046:: @ 8242046 message BattleFrontier_BattleTowerBattleRoom_Text_24270E waitmessage waitfanfare - setvar VAR_0x8004, FRONTIER_UTIL_FUNC_GIVE_FACILITY_SYMBOL - special CallFrontierUtilFunc + frontier_givesymbol msgbox BattleFrontier_BattleTowerBattleRoom_Text_242744, MSGBOX_DEFAULT goto BattleFrontier_BattleTowerBattleRoom_EventScript_241DF6 BattleFrontier_BattleTowerBattleRoom_EventScript_242085:: @ 8242085 - setvar VAR_0x8004, FRONTIER_UTIL_FUNC_GET_DATA - setvar VAR_0x8005, 7 - special CallFrontierUtilFunc - compare VAR_RESULT, 0 + frontier_get FRONTIER_DATA_HEARD_BRAIN_SPEECH + compare VAR_RESULT, FALSE goto_if_ne BattleFrontier_BattleTowerBattleRoom_EventScript_2420B2 msgbox BattleFrontier_BattleTowerBattleRoom_Text_2427F9, MSGBOX_DEFAULT - setvar VAR_0x8004, FRONTIER_UTIL_FUNC_SET_DATA - setvar VAR_0x8005, 7 - special CallFrontierUtilFunc - + frontier_set FRONTIER_DATA_HEARD_BRAIN_SPEECH BattleFrontier_BattleTowerBattleRoom_EventScript_2420B2:: @ 82420B2 msgbox BattleFrontier_BattleTowerBattleRoom_Text_2428E0, MSGBOX_DEFAULT call BattleFrontier_BattleTowerBattleRoom_EventScript_24210E @@ -329,9 +306,8 @@ BattleFrontier_BattleTowerBattleRoom_EventScript_2420B2:: @ 82420B2 goto BattleFrontier_BattleTowerBattleRoom_EventScript_241C03 BattleFrontier_BattleTowerBattleRoom_EventScript_2420CF:: @ 82420CF - call BattleFrontier_BattleTowerBattleRoom_EventScript_241EBA - setvar VAR_0x8004, FRONTIER_UTIL_FUNC_GET_FACILITY_SYMBOLS - special CallFrontierUtilFunc + call BattleFrontier_EventScript_IncrementWinStreak + frontier_getsymbols compare VAR_RESULT, 2 goto_if_eq BattleFrontier_BattleTowerBattleRoom_EventScript_241DF6 msgbox BattleFrontier_BattleTowerBattleRoom_Text_2428F7, MSGBOX_DEFAULT @@ -339,8 +315,7 @@ BattleFrontier_BattleTowerBattleRoom_EventScript_2420CF:: @ 82420CF message BattleFrontier_BattleTowerBattleRoom_Text_242932 waitmessage waitfanfare - setvar VAR_0x8004, FRONTIER_UTIL_FUNC_GIVE_FACILITY_SYMBOL - special CallFrontierUtilFunc + frontier_givesymbol msgbox BattleFrontier_BattleTowerBattleRoom_Text_24295D, MSGBOX_DEFAULT goto BattleFrontier_BattleTowerBattleRoom_EventScript_241DF6 @@ -349,7 +324,7 @@ BattleFrontier_BattleTowerBattleRoom_EventScript_24210E:: @ 824210E closemessage setvar VAR_TEMP_2, 0 setvar VAR_0x8004, FRONTIER_UTIL_FUNC_SET_DATA - setvar VAR_0x8005, 6 + setvar VAR_0x8005, FRONTIER_DATA_6 setvar VAR_0x8006, 0 special CallFrontierUtilFunc special HealPlayerParty @@ -358,26 +333,19 @@ BattleFrontier_BattleTowerBattleRoom_EventScript_24210E:: @ 824210E special DoSpecialTrainerBattle waitstate copyvar VAR_0x8004, VAR_FRONTIER_BATTLE_MODE - compare VAR_0x8004, 3 + compare VAR_0x8004, FRONTIER_MODE_LINK_MULTIS goto_if_eq BattleFrontier_BattleTowerBattleRoom_EventScript_24215A - setvar VAR_0x8004, FRONTIER_UTIL_FUNC_18 - special CallFrontierUtilFunc + frontier_restorehelditems special HealPlayerParty frontier_resetsketch BattleFrontier_BattleTowerBattleRoom_EventScript_24215A:: @ 824215A setvar VAR_0x8004, BATTLE_TOWER_FUNC_15 special CallBattleTowerFunc - frontier_getbattleoutcome + frontier_get FRONTIER_DATA_BATTLE_OUTCOME return -BattleFrontier_BattleArenaBattleRoom_EventScript_242170:: @ 8242170 -BattleFrontier_BattleDomeBattleRoom_EventScript_242170:: @ 8242170 -BattleFrontier_BattleFactoryBattleRoom_EventScript_242170:: @ 8242170 -BattleFrontier_BattlePalaceBattleRoom_EventScript_242170:: @ 8242170 -BattleFrontier_BattlePyramidTop_EventScript_242170:: @ 8242170 -BattleFrontier_BattleTowerBattleRoom_EventScript_242170:: @ 8242170 - setvar VAR_0x8004, FRONTIER_UTIL_FUNC_SET_BRAIN_OBJECT - special CallFrontierUtilFunc +BattleFrontier_EventScript_SetBrainObjectGfx:: @ 8242170 + frontier_setbrainobj return BattleFrontier_BattleTowerBattleRoom_Movement_242179: @ 8242179 @@ -472,11 +440,11 @@ BattleFrontier_BattleTowerBattleRoom_Movement_2421B2: @ 82421B2 BattleFrontier_BattleTowerBattleRoom2_EventScript_2421B8:: @ 82421B8 BattleFrontier_BattleTowerBattleRoom_EventScript_2421B8:: @ 82421B8 copyvar VAR_RESULT, VAR_FRONTIER_BATTLE_MODE - compare VAR_RESULT, 1 + compare VAR_RESULT, FRONTIER_MODE_DOUBLES goto_if_eq BattleFrontier_BattleTowerBattleRoom_EventScript_2421E8 - compare VAR_RESULT, 2 + compare VAR_RESULT, FRONTIER_MODE_MULTIS goto_if_eq BattleFrontier_BattleTowerBattleRoom_EventScript_2421F2 - compare VAR_RESULT, 3 + compare VAR_RESULT, FRONTIER_MODE_LINK_MULTIS goto_if_eq BattleFrontier_BattleTowerBattleRoom_EventScript_2421FC warp MAP_BATTLE_FRONTIER_BATTLE_TOWER_LOBBY, 255, 6, 6 waitstate diff --git a/data/maps/BattleFrontier_BattleTowerBattleRoom2/scripts.inc b/data/maps/BattleFrontier_BattleTowerBattleRoom2/scripts.inc index c264ddb3c..aba9c517e 100644 --- a/data/maps/BattleFrontier_BattleTowerBattleRoom2/scripts.inc +++ b/data/maps/BattleFrontier_BattleTowerBattleRoom2/scripts.inc @@ -5,9 +5,9 @@ BattleFrontier_BattleTowerBattleRoom2_MapScripts:: @ 8248EE8 .byte 0 BattleFrontier_BattleTowerBattleRoom2_MapScript1_248EF8: @ 8248EF8 - compare VAR_FRONTIER_BATTLE_MODE, 2 + compare VAR_FRONTIER_BATTLE_MODE, FRONTIER_MODE_MULTIS call_if_eq BattleFrontier_BattleTowerBattleRoom2_EventScript_248F0F - compare VAR_FRONTIER_BATTLE_MODE, 3 + compare VAR_FRONTIER_BATTLE_MODE, FRONTIER_MODE_LINK_MULTIS call_if_eq BattleFrontier_BattleTowerBattleRoom2_EventScript_248F2F end @@ -45,9 +45,7 @@ BattleFrontier_BattleTowerBattleRoom2_EventScript_248F4D:: @ 8248F4D applymovement 5, BattleFrontier_BattleTowerBattleRoom2_Movement_249518 applymovement 6, BattleFrontier_BattleTowerBattleRoom2_Movement_24951E waitmovement 0 - setvar VAR_0x8004, FRONTIER_UTIL_FUNC_GET_DATA - setvar VAR_0x8005, 2 - special CallFrontierUtilFunc + frontier_get FRONTIER_DATA_BATTLE_NUM compare VAR_RESULT, 0 goto_if_eq BattleFrontier_BattleTowerBattleRoom2_EventScript_248FB4 applymovement 2, BattleFrontier_BattleTowerBattleRoom2_Movement_24953E @@ -57,7 +55,7 @@ BattleFrontier_BattleTowerBattleRoom2_EventScript_248F4D:: @ 8248F4D applymovement 6, BattleFrontier_BattleTowerBattleRoom2_Movement_249524 waitmovement 0 setvar VAR_0x8004, FRONTIER_UTIL_FUNC_SET_DATA - setvar VAR_0x8005, 6 + setvar VAR_0x8005, FRONTIER_DATA_6 setvar VAR_0x8006, 1 special CallFrontierUtilFunc goto BattleFrontier_BattleTowerBattleRoom2_EventScript_249143 @@ -70,7 +68,7 @@ BattleFrontier_BattleTowerBattleRoom2_EventScript_248FB4:: @ 8248FB4 applymovement 1, BattleFrontier_BattleTowerBattleRoom2_Movement_249528 applymovement 4, BattleFrontier_BattleTowerBattleRoom2_Movement_24952E waitmovement 0 - compare VAR_FRONTIER_BATTLE_MODE, 3 + compare VAR_FRONTIER_BATTLE_MODE, FRONTIER_MODE_LINK_MULTIS goto_if_eq BattleFrontier_BattleTowerBattleRoom2_EventScript_249026 setvar VAR_0x8004, BATTLE_TOWER_FUNC_7 setvar VAR_0x8005, 0 @@ -114,7 +112,7 @@ BattleFrontier_BattleTowerBattleRoom2_EventScript_249069:: @ 8249069 case 1, BattleFrontier_BattleTowerBattleRoom2_EventScript_2490AA BattleFrontier_BattleTowerBattleRoom2_EventScript_24907E:: @ 824907E - frontier_setchallengestatus CHALLENGE_STATUS_LOST + frontier_set FRONTIER_DATA_CHALLENGE_STATUS, CHALLENGE_STATUS_LOST setvar VAR_0x8004, BATTLE_TOWER_FUNC_2 setvar VAR_0x8005, 3 special CallBattleTowerFunc @@ -123,7 +121,7 @@ BattleFrontier_BattleTowerBattleRoom2_EventScript_24907E:: @ 824907E goto BattleFrontier_BattleTowerBattleRoom2_EventScript_2421B8 BattleFrontier_BattleTowerBattleRoom2_EventScript_2490AA:: @ 82490AA - call BattleFrontier_BattleTowerBattleRoom2_EventScript_241EBA + call BattleFrontier_EventScript_IncrementWinStreak setvar VAR_0x8004, BATTLE_TOWER_FUNC_4 special CallBattleTowerFunc switch VAR_RESULT @@ -139,7 +137,7 @@ BattleFrontier_BattleTowerBattleRoom2_EventScript_2490AA:: @ 82490AA applymovement 5, BattleFrontier_BattleTowerBattleRoom2_Movement_249524 applymovement 6, BattleFrontier_BattleTowerBattleRoom2_Movement_249524 waitmovement 0 - compare VAR_FRONTIER_BATTLE_MODE, 3 + compare VAR_FRONTIER_BATTLE_MODE, FRONTIER_MODE_LINK_MULTIS goto_if_eq BattleFrontier_BattleTowerBattleRoom2_EventScript_249118 msgbox BattleFrontier_BattleTowerBattleRoom2_Text_242217, MSGBOX_DEFAULT goto BattleFrontier_BattleTowerBattleRoom2_EventScript_249121 @@ -151,21 +149,17 @@ BattleFrontier_BattleTowerBattleRoom2_EventScript_249118:: @ 8249118 BattleFrontier_BattleTowerBattleRoom2_EventScript_249121:: @ 8249121 special LoadPlayerParty - setvar VAR_0x8004, FRONTIER_UTIL_FUNC_LOAD_SELECTED_PARTY - setvar VAR_0x8005, 2 - special CallFrontierUtilFunc - compare VAR_FRONTIER_BATTLE_MODE, 3 + frontier_setpartyorder FRONTIER_MULTI_PARTY_SIZE + compare VAR_FRONTIER_BATTLE_MODE, FRONTIER_MODE_LINK_MULTIS call_if_eq BattleFrontier_BattleTowerBattleRoom2_EventScript_249514 playfanfare MUS_ME_ASA waitfanfare special HealPlayerParty BattleFrontier_BattleTowerBattleRoom2_EventScript_249143:: @ 8249143 - setvar VAR_0x8004, FRONTIER_UTIL_FUNC_GET_DATA - setvar VAR_0x8005, 2 - special CallFrontierUtilFunc + frontier_get FRONTIER_DATA_BATTLE_NUM call BattleFrontier_BattleTowerBattleRoom2_EventScript_2492FD - compare VAR_FRONTIER_BATTLE_MODE, 3 + compare VAR_FRONTIER_BATTLE_MODE, FRONTIER_MODE_LINK_MULTIS goto_if_eq BattleFrontier_BattleTowerBattleRoom2_EventScript_249283 call BattleFrontier_BattleTowerBattleRoom2_EventScript_23E8E0 compare VAR_RESULT, 1 @@ -196,7 +190,7 @@ BattleFrontier_BattleTowerBattleRoom2_EventScript_2491E7:: @ 82491E7 case MULTI_B_PRESSED, BattleFrontier_BattleTowerBattleRoom2_EventScript_249143 BattleFrontier_BattleTowerBattleRoom2_EventScript_249219:: @ 8249219 - call BattleFrontier_BattleTowerBattleRoom2_EventScript_23E8B4 + call BattleFrontier_EventScript_SaveBattle goto BattleFrontier_BattleTowerBattleRoom2_EventScript_249143 BattleFrontier_BattleTowerBattleRoom2_EventScript_249223:: @ 8249223 @@ -228,7 +222,7 @@ BattleFrontier_BattleTowerBattleRoom2_EventScript_249283:: @ 8249283 end BattleFrontier_BattleTowerBattleRoom2_EventScript_2492AF:: @ 82492AF - frontier_setchallengestatus CHALLENGE_STATUS_WON + frontier_set FRONTIER_DATA_CHALLENGE_STATUS, CHALLENGE_STATUS_WON setvar VAR_0x8004, BATTLE_TOWER_FUNC_2 setvar VAR_0x8005, 3 special CallBattleTowerFunc @@ -240,17 +234,16 @@ BattleFrontier_BattleTowerBattleRoom2_EventScript_2492DB:: @ 82492DB message BattleFrontier_BattleTowerBattleRoom2_Text_242426 waitmessage setvar VAR_0x8004, BATTLE_TOWER_FUNC_SAVE - setvar VAR_0x8005, 2 + setvar VAR_0x8005, CHALLENGE_STATUS_PAUSED special CallBattleTowerFunc playse SE_SAVE waitse fadescreen 1 - setvar VAR_0x8004, FRONTIER_UTIL_FUNC_SOFT_RESET - special CallFrontierUtilFunc + frontier_reset end BattleFrontier_BattleTowerBattleRoom2_EventScript_2492FD:: @ 82492FD - compare VAR_FRONTIER_BATTLE_MODE, 3 + compare VAR_FRONTIER_BATTLE_MODE, FRONTIER_MODE_LINK_MULTIS goto_if_eq BattleFrontier_BattleTowerBattleRoom2_EventScript_24937E copyvar VAR_TEMP_F, VAR_RESULT switch VAR_TEMP_F @@ -379,7 +372,7 @@ BattleFrontier_BattleTowerBattleRoom2_EventScript_2494A8:: @ 82494A8 switch VAR_RESULT case 1, BattleFrontier_BattleTowerBattleRoom2_EventScript_249143 case MULTI_B_PRESSED, BattleFrontier_BattleTowerBattleRoom2_EventScript_249143 - call BattleFrontier_BattleTowerBattleRoom2_EventScript_23E8B4 + call BattleFrontier_EventScript_SaveBattle setflag FLAG_TEMP_2 goto BattleFrontier_BattleTowerBattleRoom2_EventScript_249143 end diff --git a/data/maps/BattleFrontier_BattleTowerCorridor2/scripts.inc b/data/maps/BattleFrontier_BattleTowerCorridor2/scripts.inc index a53cac0c5..305013b90 100644 --- a/data/maps/BattleFrontier_BattleTowerCorridor2/scripts.inc +++ b/data/maps/BattleFrontier_BattleTowerCorridor2/scripts.inc @@ -5,9 +5,9 @@ BattleFrontier_BattleTowerCorridor2_MapScripts:: @ 8248D4A .byte 0 BattleFrontier_BattleTowerCorridor2_MapScript1_248D5A: @ 8248D5A - compare VAR_FRONTIER_BATTLE_MODE, 2 + compare VAR_FRONTIER_BATTLE_MODE, FRONTIER_MODE_MULTIS call_if_eq BattleFrontier_BattleTowerCorridor2_EventScript_248D71 - compare VAR_FRONTIER_BATTLE_MODE, 3 + compare VAR_FRONTIER_BATTLE_MODE, FRONTIER_MODE_LINK_MULTIS call_if_eq BattleFrontier_BattleTowerCorridor2_EventScript_248D91 end @@ -87,13 +87,13 @@ BattleFrontier_BattleTowerCorridor2_EventScript_248DBC:: @ 8248DBC end BattleFrontier_BattleTowerCorridor2_EventScript_248E71:: @ 8248E71 - compare VAR_FRONTIER_BATTLE_MODE, 0 + compare VAR_FRONTIER_BATTLE_MODE, FRONTIER_MODE_SINGLES call_if_eq BattleFrontier_BattleTowerCorridor2_EventScript_248E9E - compare VAR_FRONTIER_BATTLE_MODE, 1 + compare VAR_FRONTIER_BATTLE_MODE, FRONTIER_MODE_DOUBLES call_if_eq BattleFrontier_BattleTowerCorridor2_EventScript_248E9E - compare VAR_FRONTIER_BATTLE_MODE, 2 + compare VAR_FRONTIER_BATTLE_MODE, FRONTIER_MODE_MULTIS call_if_eq BattleFrontier_BattleTowerCorridor2_EventScript_248EA8 - compare VAR_FRONTIER_BATTLE_MODE, 3 + compare VAR_FRONTIER_BATTLE_MODE, FRONTIER_MODE_LINK_MULTIS call_if_eq BattleFrontier_BattleTowerCorridor2_EventScript_248EB2 return diff --git a/data/maps/BattleFrontier_BattleTowerElevator/scripts.inc b/data/maps/BattleFrontier_BattleTowerElevator/scripts.inc index f84ec194d..43dbc0791 100644 --- a/data/maps/BattleFrontier_BattleTowerElevator/scripts.inc +++ b/data/maps/BattleFrontier_BattleTowerElevator/scripts.inc @@ -24,13 +24,13 @@ BattleFrontier_BattleTowerElevator_EventScript_2419F0:: @ 82419F0 end BattleFrontier_BattleTowerElevator_EventScript_241A28:: @ 8241A28 - compare VAR_FRONTIER_BATTLE_MODE, 0 + compare VAR_FRONTIER_BATTLE_MODE, FRONTIER_MODE_SINGLES call_if_eq BattleFrontier_BattleTowerElevator_EventScript_241A55 - compare VAR_FRONTIER_BATTLE_MODE, 1 + compare VAR_FRONTIER_BATTLE_MODE, FRONTIER_MODE_DOUBLES call_if_eq BattleFrontier_BattleTowerElevator_EventScript_241A55 - compare VAR_FRONTIER_BATTLE_MODE, 2 + compare VAR_FRONTIER_BATTLE_MODE, FRONTIER_MODE_MULTIS call_if_eq BattleFrontier_BattleTowerElevator_EventScript_241A5F - compare VAR_FRONTIER_BATTLE_MODE, 3 + compare VAR_FRONTIER_BATTLE_MODE, FRONTIER_MODE_LINK_MULTIS call_if_eq BattleFrontier_BattleTowerElevator_EventScript_241A72 return diff --git a/data/maps/BattleFrontier_BattleTowerLobby/scripts.inc b/data/maps/BattleFrontier_BattleTowerLobby/scripts.inc index aa28a0cf0..a00e3fe02 100644 --- a/data/maps/BattleFrontier_BattleTowerLobby/scripts.inc +++ b/data/maps/BattleFrontier_BattleTowerLobby/scripts.inc @@ -36,14 +36,14 @@ BattleFrontier_BattleTowerLobby_EventScript_PlayerFaceNorth:: @ 823E6D3 BattleFrontier_BattleTowerLobby_OnFrame: @ 823E6DD map_script_2 VAR_TEMP_0, 0, BattleFrontier_BattleTowerLobby_EventScript_23E707 - map_script_2 VAR_TEMP_0, 1, BattleFrontier_BattleTowerLobby_EventScript_23E710 - map_script_2 VAR_TEMP_0, 2, BattleFrontier_BattleTowerLobby_EventScript_23E8EE - map_script_2 VAR_TEMP_0, 3, BattleFrontier_BattleTowerLobby_EventScript_23E758 - map_script_2 VAR_TEMP_0, 4, BattleFrontier_BattleTowerLobby_EventScript_23E7F2 + map_script_2 VAR_TEMP_0, CHALLENGE_STATUS_SAVING, BattleFrontier_BattleTowerLobby_EventScript_23E710 + map_script_2 VAR_TEMP_0, CHALLENGE_STATUS_PAUSED, BattleFrontier_BattleTowerLobby_EventScript_23E8EE + map_script_2 VAR_TEMP_0, CHALLENGE_STATUS_WON, BattleFrontier_BattleTowerLobby_EventScript_23E758 + map_script_2 VAR_TEMP_0, CHALLENGE_STATUS_LOST, BattleFrontier_BattleTowerLobby_EventScript_23E7F2 .2byte 0 BattleFrontier_BattleTowerLobby_EventScript_23E707:: @ 823E707 - frontier_checkoutcome + frontier_getstatus end BattleFrontier_BattleTowerLobby_EventScript_23E710:: @ 823E710 @@ -59,10 +59,7 @@ BattleFrontier_BattleTowerLobby_EventScript_23E710:: @ 823E710 setvar VAR_0x8005, 2 setvar VAR_0x8006, 0 special CallBattleTowerFunc - setvar VAR_0x8004, FRONTIER_UTIL_FUNC_SET_DATA - setvar VAR_0x8005, 0 - setvar VAR_0x8006, 0 - special CallFrontierUtilFunc + frontier_set FRONTIER_DATA_CHALLENGE_STATUS, 0 setvar VAR_TEMP_0, 255 release end @@ -70,8 +67,7 @@ BattleFrontier_BattleTowerLobby_EventScript_23E710:: @ 823E710 BattleFrontier_BattleTowerLobby_EventScript_23E758:: @ 823E758 lock faceplayer - setvar VAR_0x8004, FRONTIER_UTIL_FUNC_IS_FRONTIER_BRAIN - special CallFrontierUtilFunc + frontier_isbrain compare VAR_RESULT, TRUE goto_if_eq BattleFrontier_BattleTowerLobby_EventScript_23E778 message BattleFrontier_BattleTowerLobby_Text_23F60D @@ -94,8 +90,7 @@ BattleFrontier_BattleTowerLobby_EventScript_23E780:: @ 823E780 BattleFrontier_BattleTowerLobby_EventScript_23E7A5:: @ 823E7A5 msgbox BattleFrontier_BattleTowerLobby_Text_2414D4, MSGBOX_DEFAULT - setvar VAR_0x8004, FRONTIER_UTIL_FUNC_11 - special CallFrontierUtilFunc + frontier_givepoints msgbox BattleFrontier_Text_ObtainedXBattlePoints, MSGBOX_GETPOINTS call BattleFrontier_BattleTowerLobby_EventScript_23E84D setvar VAR_0x8004, BATTLE_TOWER_FUNC_1 @@ -113,7 +108,7 @@ BattleFrontier_BattleTowerLobby_EventScript_23E7E2:: @ 823E7E2 end BattleFrontier_BattleTowerLobby_EventScript_23E7F2:: @ 823E7F2 - compare VAR_FRONTIER_BATTLE_MODE, 2 + compare VAR_FRONTIER_BATTLE_MODE, FRONTIER_MODE_MULTIS goto_if_ne BattleFrontier_BattleTowerLobby_EventScript_23E81E goto_if_set FLAG_CHOSEN_MULTI_BATTLE_NPC_PARTNER, BattleFrontier_BattleTowerLobby_EventScript_23E81E setvar VAR_0x8004, BATTLE_TOWER_FUNC_1 @@ -143,8 +138,7 @@ BattleFrontier_BattleTowerLobby_EventScript_23E830:: @ 823E830 BattleFrontier_BattleTowerLobby_EventScript_23E84D:: @ 823E84D message BattleFrontier_BattleTowerLobby_Text_23F70F waitmessage - setvar VAR_0x8004, FRONTIER_UTIL_FUNC_8 - special CallFrontierUtilFunc + frontier_checkairshow special LoadPlayerParty special HealPlayerParty setvar VAR_0x8004, BATTLE_TOWER_FUNC_SAVE @@ -160,31 +154,19 @@ BattleFrontier_BattleTowerLobby_EventScript_23E84D:: @ 823E84D multichoicedefault 20, 8, MULTI_YESNO, 1, 0 switch VAR_RESULT case 1, BattleFrontier_BattleTowerLobby_EventScript_23E8DF - case 0, BattleFrontier_BattleTowerLobby_EventScript_23E8B4 + case 0, BattleFrontier_EventScript_SaveBattle case MULTI_B_PRESSED, BattleFrontier_BattleTowerLobby_EventScript_23E8DF -BattleFrontier_BattleArenaBattleRoom_EventScript_23E8B4:: @ 823E8B4 -BattleFrontier_BattleArenaLobby_EventScript_23E8B4:: @ 823E8B4 -BattleFrontier_BattleDomeLobby_EventScript_23E8B4:: @ 823E8B4 -BattleFrontier_BattleDomePreBattleRoom_EventScript_23E8B4:: @ 823E8B4 -BattleFrontier_BattleFactoryLobby_EventScript_23E8B4:: @ 823E8B4 -BattleFrontier_BattleFactoryPreBattleRoom_EventScript_23E8B4:: @ 823E8B4 -BattleFrontier_BattlePalaceBattleRoom_EventScript_23E8B4:: @ 823E8B4 -BattleFrontier_BattlePalaceLobby_EventScript_23E8B4:: @ 823E8B4 -BattleFrontier_BattleTowerBattleRoom2_EventScript_23E8B4:: @ 823E8B4 -BattleFrontier_BattleTowerBattleRoom_EventScript_23E8B4:: @ 823E8B4 -BattleFrontier_BattleTowerLobby_EventScript_23E8B4:: @ 823E8B4 - setvar VAR_0x8004, FRONTIER_UTIL_FUNC_19 - special CallFrontierUtilFunc - compare VAR_RESULT, 0 - goto_if_eq BattleFrontier_BattleTowerLobby_EventScript_23E8D7 +BattleFrontier_EventScript_SaveBattle:: @ 823E8B4 + frontier_savebattle + compare VAR_RESULT, FALSE + goto_if_eq BattleFrontier_EventScript_BattleSaveFailed playse SE_SAVE msgbox BattleFrontier_BattleTowerLobby_Text_2423CD, MSGBOX_DEFAULT goto BattleFrontier_BattleTowerLobby_EventScript_23E8DF -BattleFrontier_BattleTowerLobby_EventScript_23E8D7:: @ 823E8D7 +BattleFrontier_EventScript_BattleSaveFailed:: @ 823E8D7 msgbox gText_BattleRecordCouldntBeSaved, MSGBOX_DEFAULT - BattleFrontier_BattleTowerLobby_EventScript_23E8DF:: @ 823E8DF return @@ -200,14 +182,14 @@ BattleFrontier_BattleTowerBattleRoom2_EventScript_23E8E0:: @ 823E8E0 BattleFrontier_BattleTowerBattleRoom_EventScript_23E8E0:: @ 823E8E0 BattleFrontier_BattleTowerLobby_EventScript_23E8E0:: @ 823E8E0 setvar VAR_0x8004, FRONTIER_UTIL_FUNC_GET_DATA - setvar VAR_0x8005, 6 + setvar VAR_0x8005, FRONTIER_DATA_6 special CallFrontierUtilFunc return BattleFrontier_BattleTowerLobby_EventScript_23E8EE:: @ 823E8EE lock faceplayer - compare VAR_FRONTIER_BATTLE_MODE, 0 + compare VAR_FRONTIER_BATTLE_MODE, FRONTIER_MODE_SINGLES call_if_eq BattleFrontier_BattleTowerLobby_EventScript_23E930 message BattleFrontier_BattleTowerLobby_Text_23F737 waitmessage @@ -218,10 +200,7 @@ BattleFrontier_BattleTowerLobby_EventScript_23E8EE:: @ 823E8EE special CallBattleTowerFunc playse SE_SAVE waitse - setvar VAR_0x8004, FRONTIER_UTIL_FUNC_SET_DATA - setvar VAR_0x8005, 3 - setvar VAR_0x8006, 0 - special CallFrontierUtilFunc + frontier_set FRONTIER_DATA_PAUSED, FALSE goto BattleFrontier_BattleTowerLobby_EventScript_23F0F3 end @@ -232,7 +211,7 @@ BattleFrontier_BattleTowerLobby_EventScript_23E930:: @ 823E930 BattleFrontier_BattleTowerLobby_EventScript_23E936:: @ 823E936 lock faceplayer - setvar VAR_FRONTIER_FACILITY, 0 + setvar VAR_FRONTIER_FACILITY, FRONTIER_FACILITY_TOWER special SavePlayerParty msgbox BattleFrontier_BattleTowerLobby_Text_240537, MSGBOX_DEFAULT @@ -247,24 +226,20 @@ BattleFrontier_BattleTowerLobby_EventScript_23E948:: @ 823E948 case MULTI_B_PRESSED, BattleFrontier_BattleTowerLobby_EventScript_23F0E6 BattleFrontier_BattleTowerLobby_EventScript_23E984:: @ 823E984 - setvar VAR_FRONTIER_BATTLE_MODE, 0 + setvar VAR_FRONTIER_BATTLE_MODE, FRONTIER_MODE_SINGLES message BattleFrontier_BattleTowerLobby_Text_23FD3B waitmessage multichoice 17, 6, MULTI_LEVEL_MODE, 0 switch VAR_RESULT case 2, BattleFrontier_BattleTowerLobby_EventScript_23F0E6 case MULTI_B_PRESSED, BattleFrontier_BattleTowerLobby_EventScript_23F0E6 - setvar VAR_0x8004, FRONTIER_UTIL_FUNC_15 - special CallFrontierUtilFunc - compare VAR_0x8004, 1 + frontier_checkineligible + compare VAR_0x8004, TRUE goto_if_eq BattleFrontier_BattleTowerLobby_EventScript_23F02B - setvar VAR_0x8004, FRONTIER_UTIL_FUNC_SET_DATA - setvar VAR_0x8005, 1 - copyvar VAR_0x8006, VAR_RESULT - special CallFrontierUtilFunc + frontier_set FRONTIER_DATA_LVL_MODE, VAR_RESULT msgbox BattleFrontier_BattleTowerLobby_Text_2407A6, MSGBOX_DEFAULT fadescreen 1 - call BattleFrontier_BattleTowerLobby_EventScript_23F2B7 + call BattleFrontier_EventScript_GetLvlMode copyvar VAR_0x8004, VAR_RESULT setvar VAR_0x8005, 3 special sub_80F9490 @@ -278,9 +253,7 @@ BattleFrontier_BattleTowerLobby_EventScript_23E984:: @ 823E984 case MULTI_B_PRESSED, BattleFrontier_BattleTowerLobby_EventScript_23F0E3 BattleFrontier_BattleTowerLobby_EventScript_23EA2A:: @ 823EA2A - setvar VAR_0x8004, FRONTIER_UTIL_FUNC_SET_DATA - setvar VAR_0x8005, 4 - special CallFrontierUtilFunc + frontier_set FRONTIER_DATA_SELECTED_MON_ORDER setvar VAR_TEMP_0, 0 setvar VAR_0x8004, BATTLE_TOWER_FUNC_0 special CallBattleTowerFunc @@ -288,10 +261,7 @@ BattleFrontier_BattleTowerLobby_EventScript_23EA2A:: @ 823EA2A setvar VAR_0x8005, 2 setvar VAR_0x8006, 1 special CallBattleTowerFunc - setvar VAR_0x8004, FRONTIER_UTIL_FUNC_SET_DATA - setvar VAR_0x8005, 3 - setvar VAR_0x8006, 0 - special CallFrontierUtilFunc + frontier_set FRONTIER_DATA_PAUSED, FALSE special LoadPlayerParty closemessage delay 2 @@ -312,7 +282,7 @@ BattleFrontier_BattleTowerLobby_EventScript_23EA91:: @ 823EA91 BattleFrontier_BattleTowerLobby_EventScript_23EA9F:: @ 823EA9F lock faceplayer - setvar VAR_FRONTIER_FACILITY, 0 + setvar VAR_FRONTIER_FACILITY, FRONTIER_FACILITY_TOWER special SavePlayerParty msgbox BattleFrontier_BattleTowerLobby_Text_2407E2, MSGBOX_DEFAULT @@ -327,24 +297,20 @@ BattleFrontier_BattleTowerLobby_EventScript_23EAB1:: @ 823EAB1 case MULTI_B_PRESSED, BattleFrontier_BattleTowerLobby_EventScript_23F0E6 BattleFrontier_BattleTowerLobby_EventScript_23EAED:: @ 823EAED - setvar VAR_FRONTIER_BATTLE_MODE, 1 + setvar VAR_FRONTIER_BATTLE_MODE, FRONTIER_MODE_DOUBLES message BattleFrontier_BattleTowerLobby_Text_23FD3B waitmessage multichoice 17, 6, MULTI_LEVEL_MODE, 0 switch VAR_RESULT case 2, BattleFrontier_BattleTowerLobby_EventScript_23F0E6 case MULTI_B_PRESSED, BattleFrontier_BattleTowerLobby_EventScript_23F0E6 - setvar VAR_0x8004, FRONTIER_UTIL_FUNC_15 - special CallFrontierUtilFunc - compare VAR_0x8004, 1 + frontier_checkineligible + compare VAR_0x8004, TRUE goto_if_eq BattleFrontier_BattleTowerLobby_EventScript_23F02B - setvar VAR_0x8004, FRONTIER_UTIL_FUNC_SET_DATA - setvar VAR_0x8005, 1 - copyvar VAR_0x8006, VAR_RESULT - special CallFrontierUtilFunc + frontier_set FRONTIER_DATA_LVL_MODE, VAR_RESULT msgbox BattleFrontier_BattleTowerLobby_Text_240A50, MSGBOX_DEFAULT fadescreen 1 - call BattleFrontier_BattleTowerLobby_EventScript_23F2B7 + call BattleFrontier_EventScript_GetLvlMode copyvar VAR_0x8004, VAR_RESULT setvar VAR_0x8005, 4 special sub_80F9490 @@ -358,9 +324,7 @@ BattleFrontier_BattleTowerLobby_EventScript_23EAED:: @ 823EAED case MULTI_B_PRESSED, BattleFrontier_BattleTowerLobby_EventScript_23F0E3 BattleFrontier_BattleTowerLobby_EventScript_23EB93:: @ 823EB93 - setvar VAR_0x8004, FRONTIER_UTIL_FUNC_SET_DATA - setvar VAR_0x8005, 4 - special CallFrontierUtilFunc + frontier_set FRONTIER_DATA_SELECTED_MON_ORDER setvar VAR_TEMP_0, 0 setvar VAR_0x8004, BATTLE_TOWER_FUNC_0 special CallBattleTowerFunc @@ -368,10 +332,7 @@ BattleFrontier_BattleTowerLobby_EventScript_23EB93:: @ 823EB93 setvar VAR_0x8005, 2 setvar VAR_0x8006, 1 special CallBattleTowerFunc - setvar VAR_0x8004, FRONTIER_UTIL_FUNC_SET_DATA - setvar VAR_0x8005, 3 - setvar VAR_0x8006, 0 - special CallFrontierUtilFunc + frontier_set FRONTIER_DATA_PAUSED, FALSE special LoadPlayerParty closemessage delay 2 @@ -392,7 +353,7 @@ BattleFrontier_BattleTowerLobby_EventScript_23EBFA:: @ 823EBFA BattleFrontier_BattleTowerLobby_EventScript_23EC08:: @ 823EC08 lock faceplayer - setvar VAR_FRONTIER_FACILITY, 0 + setvar VAR_FRONTIER_FACILITY, FRONTIER_FACILITY_TOWER clearflag FLAG_CHOSEN_MULTI_BATTLE_NPC_PARTNER special SavePlayerParty msgbox BattleFrontier_BattleTowerLobby_Text_240A8B, MSGBOX_DEFAULT @@ -408,24 +369,20 @@ BattleFrontier_BattleTowerLobby_EventScript_23EC1D:: @ 823EC1D case MULTI_B_PRESSED, BattleFrontier_BattleTowerLobby_EventScript_23F0E6 BattleFrontier_BattleTowerLobby_EventScript_23EC59:: @ 823EC59 - setvar VAR_FRONTIER_BATTLE_MODE, 2 + setvar VAR_FRONTIER_BATTLE_MODE, FRONTIER_MODE_MULTIS message BattleFrontier_BattleTowerLobby_Text_23FD3B waitmessage multichoice 17, 6, MULTI_LEVEL_MODE, 0 switch VAR_RESULT case 2, BattleFrontier_BattleTowerLobby_EventScript_23F0E6 case MULTI_B_PRESSED, BattleFrontier_BattleTowerLobby_EventScript_23F0E6 - setvar VAR_0x8004, FRONTIER_UTIL_FUNC_15 - special CallFrontierUtilFunc - compare VAR_0x8004, 1 + frontier_checkineligible + compare VAR_0x8004, TRUE goto_if_eq BattleFrontier_BattleTowerLobby_EventScript_23F02B - setvar VAR_0x8004, FRONTIER_UTIL_FUNC_SET_DATA - setvar VAR_0x8005, 1 - copyvar VAR_0x8006, VAR_RESULT - special CallFrontierUtilFunc + frontier_set FRONTIER_DATA_LVL_MODE, VAR_RESULT msgbox BattleFrontier_BattleTowerLobby_Text_240DDB, MSGBOX_DEFAULT fadescreen 1 - call BattleFrontier_BattleTowerLobby_EventScript_23F2B7 + call BattleFrontier_EventScript_GetLvlMode copyvar VAR_0x8004, VAR_RESULT setvar VAR_0x8005, 2 special sub_80F9490 @@ -439,9 +396,7 @@ BattleFrontier_BattleTowerLobby_EventScript_23EC59:: @ 823EC59 case MULTI_B_PRESSED, BattleFrontier_BattleTowerLobby_EventScript_23F0E3 BattleFrontier_BattleTowerLobby_EventScript_23ECFF:: @ 823ECFF - setvar VAR_0x8004, FRONTIER_UTIL_FUNC_SET_DATA - setvar VAR_0x8005, 4 - special CallFrontierUtilFunc + frontier_set FRONTIER_DATA_SELECTED_MON_ORDER setvar VAR_TEMP_0, 0 setvar VAR_0x8004, BATTLE_TOWER_FUNC_0 special CallBattleTowerFunc @@ -449,10 +404,7 @@ BattleFrontier_BattleTowerLobby_EventScript_23ECFF:: @ 823ECFF setvar VAR_0x8005, 2 setvar VAR_0x8006, 1 special CallBattleTowerFunc - setvar VAR_0x8004, FRONTIER_UTIL_FUNC_SET_DATA - setvar VAR_0x8005, 3 - setvar VAR_0x8006, 0 - special CallFrontierUtilFunc + frontier_set FRONTIER_DATA_PAUSED, FALSE special LoadPlayerParty closemessage delay 2 @@ -473,7 +425,7 @@ BattleFrontier_BattleTowerLobby_EventScript_23ED66:: @ 823ED66 BattleFrontier_BattleTowerLobby_EventScript_23ED74:: @ 823ED74 lock faceplayer - setvar VAR_FRONTIER_FACILITY, 0 + setvar VAR_FRONTIER_FACILITY, FRONTIER_FACILITY_TOWER special SavePlayerParty msgbox BattleFrontier_BattleTowerLobby_Text_240E15, MSGBOX_DEFAULT @@ -488,24 +440,20 @@ BattleFrontier_BattleTowerLobby_EventScript_23ED86:: @ 823ED86 case MULTI_B_PRESSED, BattleFrontier_BattleTowerLobby_EventScript_23F0E6 BattleFrontier_BattleTowerLobby_EventScript_23EDC2:: @ 823EDC2 - setvar VAR_FRONTIER_BATTLE_MODE, 3 + setvar VAR_FRONTIER_BATTLE_MODE, FRONTIER_MODE_LINK_MULTIS message BattleFrontier_BattleTowerLobby_Text_23FD3B waitmessage multichoice 17, 6, MULTI_LEVEL_MODE, 0 switch VAR_RESULT case 2, BattleFrontier_BattleTowerLobby_EventScript_23F0E6 case MULTI_B_PRESSED, BattleFrontier_BattleTowerLobby_EventScript_23F0E6 - setvar VAR_0x8004, FRONTIER_UTIL_FUNC_15 - special CallFrontierUtilFunc - compare VAR_0x8004, 1 + frontier_checkineligible + compare VAR_0x8004, TRUE goto_if_eq BattleFrontier_BattleTowerLobby_EventScript_23F02B - setvar VAR_0x8004, FRONTIER_UTIL_FUNC_SET_DATA - setvar VAR_0x8005, 1 - copyvar VAR_0x8006, VAR_RESULT - special CallFrontierUtilFunc + frontier_set FRONTIER_DATA_LVL_MODE, VAR_RESULT msgbox BattleFrontier_BattleTowerLobby_Text_24115E, MSGBOX_DEFAULT fadescreen 1 - call BattleFrontier_BattleTowerLobby_EventScript_23F2B7 + call BattleFrontier_EventScript_GetLvlMode copyvar VAR_0x8004, VAR_RESULT setvar VAR_0x8005, 2 special sub_80F9490 @@ -519,9 +467,7 @@ BattleFrontier_BattleTowerLobby_EventScript_23EDC2:: @ 823EDC2 case MULTI_B_PRESSED, BattleFrontier_BattleTowerLobby_EventScript_23F0E3 BattleFrontier_BattleTowerLobby_EventScript_23EE68:: @ 823EE68 - setvar VAR_0x8004, FRONTIER_UTIL_FUNC_SET_DATA - setvar VAR_0x8005, 4 - special CallFrontierUtilFunc + frontier_set FRONTIER_DATA_SELECTED_MON_ORDER setvar VAR_TEMP_0, 0 setvar VAR_0x8004, BATTLE_TOWER_FUNC_0 special CallBattleTowerFunc @@ -529,10 +475,7 @@ BattleFrontier_BattleTowerLobby_EventScript_23EE68:: @ 823EE68 setvar VAR_0x8005, 2 setvar VAR_0x8006, 1 special CallBattleTowerFunc - setvar VAR_0x8004, FRONTIER_UTIL_FUNC_SET_DATA - setvar VAR_0x8005, 3 - setvar VAR_0x8006, 0 - special CallFrontierUtilFunc + frontier_set FRONTIER_DATA_PAUSED, FALSE special LoadPlayerParty closemessage delay 2 @@ -656,13 +599,13 @@ BattleFrontier_BattleTowerLobby_EventScript_23F012:: @ 823F012 BattleFrontier_BattleTowerLobby_EventScript_23F02B:: @ 823F02B switch VAR_RESULT - case 0, BattleFrontier_BattleTowerLobby_EventScript_23F046 - case 1, BattleFrontier_BattleTowerLobby_EventScript_23F08B + case FRONTIER_LVL_50, BattleFrontier_BattleTowerLobby_EventScript_23F046 + case FRONTIER_LVL_OPEN, BattleFrontier_BattleTowerLobby_EventScript_23F08B BattleFrontier_BattleTowerLobby_EventScript_23F046:: @ 823F046 switch VAR_FRONTIER_BATTLE_MODE - case 0, BattleFrontier_BattleTowerLobby_EventScript_23F06F - case 1, BattleFrontier_BattleTowerLobby_EventScript_23F07D + case FRONTIER_MODE_SINGLES, BattleFrontier_BattleTowerLobby_EventScript_23F06F + case FRONTIER_MODE_DOUBLES, BattleFrontier_BattleTowerLobby_EventScript_23F07D msgbox BattleFrontier_BattleTowerLobby_Text_24038B, MSGBOX_DEFAULT goto BattleFrontier_BattleTowerLobby_EventScript_23F0F1 end @@ -679,8 +622,8 @@ BattleFrontier_BattleTowerLobby_EventScript_23F07D:: @ 823F07D BattleFrontier_BattleTowerLobby_EventScript_23F08B:: @ 823F08B switch VAR_FRONTIER_BATTLE_MODE - case 0, BattleFrontier_BattleTowerLobby_EventScript_23F0B4 - case 1, BattleFrontier_BattleTowerLobby_EventScript_23F0C2 + case FRONTIER_MODE_SINGLES, BattleFrontier_BattleTowerLobby_EventScript_23F0B4 + case FRONTIER_MODE_DOUBLES, BattleFrontier_BattleTowerLobby_EventScript_23F0C2 msgbox BattleFrontier_BattleTowerLobby_Text_24046B, MSGBOX_DEFAULT goto BattleFrontier_BattleTowerLobby_EventScript_23F0F1 end @@ -696,27 +639,23 @@ BattleFrontier_BattleTowerLobby_EventScript_23F0C2:: @ 823F0C2 end BattleFrontier_BattleTowerLobby_EventScript_23F0D0:: @ 823F0D0 - setvar VAR_0x8004, FRONTIER_UTIL_FUNC_SET_DATA - setvar VAR_0x8005, 0 - special CallFrontierUtilFunc + frontier_set FRONTIER_DATA_CHALLENGE_STATUS @ No status provided, so it relies on VAR_0x8006 being 0 already goto BattleFrontier_BattleTowerLobby_EventScript_23F0E6 end BattleFrontier_BattleTowerLobby_EventScript_23F0E3:: @ 823F0E3 special LoadPlayerParty - BattleFrontier_BattleTowerLobby_EventScript_23F0E6:: @ 823F0E6 special CloseLink msgbox BattleFrontier_BattleTowerLobby_Text_23FD07, MSGBOX_DEFAULT - BattleFrontier_BattleTowerLobby_EventScript_23F0F1:: @ 823F0F1 release end BattleFrontier_BattleTowerLobby_EventScript_23F0F3:: @ 823F0F3 special SavePlayerParty - setvar VAR_0x8004, FRONTIER_UTIL_FUNC_LOAD_SELECTED_PARTY - call BattleFrontier_BattleTowerLobby_EventScript_23F272 + setvar VAR_0x8004, FRONTIER_UTIL_FUNC_SET_PARTY_ORDER + call BattleFrontier_BattleTowerLobby_EventScript_GetPartySize special CallFrontierUtilFunc setvar VAR_RESULT, 0 @@ -735,7 +674,7 @@ BattleFrontier_BattleTowerLobby_EventScript_23F108:: @ 823F108 BattleFrontier_BattleTowerLobby_EventScript_23F135:: @ 823F135 call BattleFrontier_BattleTowerLobby_EventScript_23F1A7 - compare VAR_FRONTIER_BATTLE_MODE, 3 + compare VAR_FRONTIER_BATTLE_MODE, FRONTIER_MODE_LINK_MULTIS goto_if_eq BattleFrontier_BattleTowerLobby_EventScript_23F152 msgbox BattleFrontier_BattleTowerLobby_Text_23FE11, MSGBOX_DEFAULT goto BattleFrontier_BattleTowerLobby_EventScript_23F15B @@ -788,13 +727,13 @@ BattleFrontier_BattleTowerLobby_Movement_23F1A0: @ 823F1A0 step_end BattleFrontier_BattleTowerLobby_EventScript_23F1A7:: @ 823F1A7 - compare VAR_FRONTIER_BATTLE_MODE, 0 + compare VAR_FRONTIER_BATTLE_MODE, FRONTIER_MODE_SINGLES call_if_eq BattleFrontier_BattleTowerLobby_EventScript_23F1D4 - compare VAR_FRONTIER_BATTLE_MODE, 1 + compare VAR_FRONTIER_BATTLE_MODE, FRONTIER_MODE_DOUBLES call_if_eq BattleFrontier_BattleTowerLobby_EventScript_23F1D9 - compare VAR_FRONTIER_BATTLE_MODE, 2 + compare VAR_FRONTIER_BATTLE_MODE, FRONTIER_MODE_MULTIS call_if_eq BattleFrontier_BattleTowerLobby_EventScript_23F1DE - compare VAR_FRONTIER_BATTLE_MODE, 3 + compare VAR_FRONTIER_BATTLE_MODE, FRONTIER_MODE_LINK_MULTIS call_if_eq BattleFrontier_BattleTowerLobby_EventScript_23F1E3 return @@ -815,13 +754,13 @@ BattleFrontier_BattleTowerLobby_EventScript_23F1E3:: @ 823F1E3 return BattleFrontier_BattleTowerLobby_EventScript_23F1E8:: @ 823F1E8 - compare VAR_FRONTIER_BATTLE_MODE, 0 + compare VAR_FRONTIER_BATTLE_MODE, FRONTIER_MODE_SINGLES call_if_eq BattleFrontier_BattleTowerLobby_EventScript_23F215 - compare VAR_FRONTIER_BATTLE_MODE, 1 + compare VAR_FRONTIER_BATTLE_MODE, FRONTIER_MODE_DOUBLES call_if_eq BattleFrontier_BattleTowerLobby_EventScript_23F21B - compare VAR_FRONTIER_BATTLE_MODE, 2 + compare VAR_FRONTIER_BATTLE_MODE, FRONTIER_MODE_MULTIS call_if_eq BattleFrontier_BattleTowerLobby_EventScript_23F221 - compare VAR_FRONTIER_BATTLE_MODE, 3 + compare VAR_FRONTIER_BATTLE_MODE, FRONTIER_MODE_LINK_MULTIS call_if_eq BattleFrontier_BattleTowerLobby_EventScript_23F227 return @@ -842,13 +781,13 @@ BattleFrontier_BattleTowerLobby_EventScript_23F227:: @ 823F227 return BattleFrontier_BattleTowerLobby_EventScript_23F22D:: @ 823F22D - compare VAR_FRONTIER_BATTLE_MODE, 0 + compare VAR_FRONTIER_BATTLE_MODE, FRONTIER_MODE_SINGLES call_if_eq BattleFrontier_BattleTowerLobby_EventScript_23F25A - compare VAR_FRONTIER_BATTLE_MODE, 1 + compare VAR_FRONTIER_BATTLE_MODE, FRONTIER_MODE_DOUBLES call_if_eq BattleFrontier_BattleTowerLobby_EventScript_23F260 - compare VAR_FRONTIER_BATTLE_MODE, 2 + compare VAR_FRONTIER_BATTLE_MODE, FRONTIER_MODE_MULTIS call_if_eq BattleFrontier_BattleTowerLobby_EventScript_23F266 - compare VAR_FRONTIER_BATTLE_MODE, 3 + compare VAR_FRONTIER_BATTLE_MODE, FRONTIER_MODE_LINK_MULTIS call_if_eq BattleFrontier_BattleTowerLobby_EventScript_23F26C return @@ -868,44 +807,35 @@ BattleFrontier_BattleTowerLobby_EventScript_23F26C:: @ 823F26C setvar VAR_0x8004, 18 return -BattleFrontier_BattleTowerLobby_EventScript_23F272:: @ 823F272 - compare VAR_FRONTIER_BATTLE_MODE, 0 - call_if_eq BattleFrontier_BattleTowerLobby_EventScript_23F29F - compare VAR_FRONTIER_BATTLE_MODE, 1 - call_if_eq BattleFrontier_BattleTowerLobby_EventScript_23F2A5 - compare VAR_FRONTIER_BATTLE_MODE, 2 - call_if_eq BattleFrontier_BattleTowerLobby_EventScript_23F2AB - compare VAR_FRONTIER_BATTLE_MODE, 3 - call_if_eq BattleFrontier_BattleTowerLobby_EventScript_23F2B1 +BattleFrontier_BattleTowerLobby_EventScript_GetPartySize:: @ 823F272 + compare VAR_FRONTIER_BATTLE_MODE, FRONTIER_MODE_SINGLES + call_if_eq BattleFrontier_BattleTowerLobby_EventScript_GetSinglesPartySize + compare VAR_FRONTIER_BATTLE_MODE, FRONTIER_MODE_DOUBLES + call_if_eq BattleFrontier_BattleTowerLobby_EventScript_GetDoublesPartySize + compare VAR_FRONTIER_BATTLE_MODE, FRONTIER_MODE_MULTIS + call_if_eq BattleFrontier_BattleTowerLobby_EventScript_GetMultisPartySize + compare VAR_FRONTIER_BATTLE_MODE, FRONTIER_MODE_LINK_MULTIS + call_if_eq BattleFrontier_BattleTowerLobby_EventScript_GetLinkMultisPartySize return -BattleFrontier_BattleTowerLobby_EventScript_23F29F:: @ 823F29F +BattleFrontier_BattleTowerLobby_EventScript_GetSinglesPartySize:: @ 823F29F setvar VAR_0x8005, FRONTIER_PARTY_SIZE return -BattleFrontier_BattleTowerLobby_EventScript_23F2A5:: @ 823F2A5 - setvar VAR_0x8005, 4 +BattleFrontier_BattleTowerLobby_EventScript_GetDoublesPartySize:: @ 823F2A5 + setvar VAR_0x8005, FRONTIER_DOUBLES_PARTY_SIZE return -BattleFrontier_BattleTowerLobby_EventScript_23F2AB:: @ 823F2AB - setvar VAR_0x8005, 2 +BattleFrontier_BattleTowerLobby_EventScript_GetMultisPartySize:: @ 823F2AB + setvar VAR_0x8005, FRONTIER_MULTI_PARTY_SIZE return -BattleFrontier_BattleTowerLobby_EventScript_23F2B1:: @ 823F2B1 - setvar VAR_0x8005, 2 +BattleFrontier_BattleTowerLobby_EventScript_GetLinkMultisPartySize:: @ 823F2B1 + setvar VAR_0x8005, FRONTIER_MULTI_PARTY_SIZE return -BattleFrontier_BattleArenaLobby_EventScript_23F2B7:: @ 823F2B7 -BattleFrontier_BattleDomeLobby_EventScript_23F2B7:: @ 823F2B7 -BattleFrontier_BattleDomePreBattleRoom_EventScript_23F2B7:: @ 823F2B7 -BattleFrontier_BattleFactoryPreBattleRoom_EventScript_23F2B7:: @ 823F2B7 -BattleFrontier_BattlePalaceLobby_EventScript_23F2B7:: @ 823F2B7 -BattleFrontier_BattlePikeLobby_EventScript_23F2B7:: @ 823F2B7 -BattleFrontier_BattlePyramidLobby_EventScript_23F2B7:: @ 823F2B7 -BattleFrontier_BattleTowerLobby_EventScript_23F2B7:: @ 823F2B7 - setvar VAR_0x8004, FRONTIER_UTIL_FUNC_GET_DATA - setvar VAR_0x8005, 1 - special CallFrontierUtilFunc +BattleFrontier_EventScript_GetLvlMode:: @ 823F2B7 + frontier_get FRONTIER_DATA_LVL_MODE return BattleFrontier_BattleTowerLobby_EventScript_23F2C5:: @ 823F2C5 diff --git a/data/maps/BattleFrontier_BattleTowerMultiBattleRoom/scripts.inc b/data/maps/BattleFrontier_BattleTowerMultiBattleRoom/scripts.inc index 340b915c5..833e8ba4c 100644 --- a/data/maps/BattleFrontier_BattleTowerMultiBattleRoom/scripts.inc +++ b/data/maps/BattleFrontier_BattleTowerMultiBattleRoom/scripts.inc @@ -95,7 +95,7 @@ BattleFrontier_BattleTowerMultiBattleRoom_EventScript_243E7A:: @ 8243E7A BattleFrontier_BattleTowerMultiBattleRoom_EventScript_243E9D:: @ 8243E9D setvar VAR_0x8004, FRONTIER_UTIL_FUNC_SET_DATA - setvar VAR_0x8005, 6 + setvar VAR_0x8005, FRONTIER_DATA_6 setvar VAR_0x8006, 1 special CallFrontierUtilFunc goto BattleFrontier_BattleTowerMultiBattleRoom_EventScript_241C03 diff --git a/data/maps/BattleFrontier_ScottsHouse/scripts.inc b/data/maps/BattleFrontier_ScottsHouse/scripts.inc index c2f7b3fbc..f30e194aa 100644 --- a/data/maps/BattleFrontier_ScottsHouse/scripts.inc +++ b/data/maps/BattleFrontier_ScottsHouse/scripts.inc @@ -88,12 +88,12 @@ BattleFrontier_ScottsHouse_EventScript_ArtisanCaveComment:: @ 8263811 end BattleFrontier_ScottsHouse_EventScript_CheckGiveSilverShield:: @ 826381B - setvar VAR_FRONTIER_BATTLE_MODE, 0 - frontier_setlvlmode FRONTIER_LVL_50 + setvar VAR_FRONTIER_BATTLE_MODE, FRONTIER_MODE_SINGLES + frontier_set FRONTIER_DATA_LVL_MODE, FRONTIER_LVL_50 battletower_getstreak compare VAR_RESULT, 50 goto_if_ge BattleFrontier_ScottsHouse_EventScript_GiveSilverShield - frontier_setlvlmode FRONTIER_LVL_OPEN + frontier_set FRONTIER_DATA_LVL_MODE, FRONTIER_LVL_OPEN battletower_getstreak compare VAR_RESULT, 50 goto_if_ge BattleFrontier_ScottsHouse_EventScript_GiveSilverShield @@ -121,12 +121,12 @@ BattleFrontier_ScottsHouse_EventScript_GivenShield:: @ 82638AA end BattleFrontier_ScottsHouse_EventScript_CheckGiveGoldShield:: @ 82638B4 - setvar VAR_FRONTIER_BATTLE_MODE, 0 - frontier_setlvlmode FRONTIER_LVL_50 + setvar VAR_FRONTIER_BATTLE_MODE, FRONTIER_MODE_SINGLES + frontier_set FRONTIER_DATA_LVL_MODE, FRONTIER_LVL_50 battletower_getstreak compare VAR_RESULT, 100 goto_if_ge BattleFrontier_ScottsHouse_EventScript_GiveGoldShield - frontier_setlvlmode FRONTIER_LVL_OPEN + frontier_set FRONTIER_DATA_LVL_MODE, FRONTIER_LVL_OPEN battletower_getstreak compare VAR_RESULT, 100 goto_if_ge BattleFrontier_ScottsHouse_EventScript_GiveGoldShield diff --git a/data/maps/FallarborTown_BattleTentBattleRoom/scripts.inc b/data/maps/FallarborTown_BattleTentBattleRoom/scripts.inc index b3ea82593..d8f6470a2 100644 --- a/data/maps/FallarborTown_BattleTentBattleRoom/scripts.inc +++ b/data/maps/FallarborTown_BattleTentBattleRoom/scripts.inc @@ -35,7 +35,7 @@ FallarborTown_BattleTentBattleRoom_EventScript_2008E7:: @ 82008E7 showobjectat 1, MAP_FALLARBOR_TOWN_BATTLE_TENT_BATTLE_ROOM applymovement 1, FallarborTown_BattleTentBattleRoom_Movement_200B8D waitmovement 0 - frontier_getbattlenum + frontier_get FRONTIER_DATA_BATTLE_NUM compare VAR_RESULT, 0 goto_if_ne FallarborTown_BattleTentBattleRoom_EventScript_200B73 @@ -51,7 +51,7 @@ FallarborTown_BattleTentBattleRoom_EventScript_20090F:: @ 820090F waitmovement 0 msgbox FallarborTown_BattleTentBattleRoom_Text_257C93, MSGBOX_DEFAULT setvar VAR_0x8004, 4 - special sub_81B99B4 + special CallVerdanturfTentFunction msgbox gStringVar4, MSGBOX_DEFAULT waitmessage call FallarborTown_BattleTentBattleRoom_EventScript_257B6C @@ -62,11 +62,11 @@ FallarborTown_BattleTentBattleRoom_EventScript_20090F:: @ 820090F waitse waitmovement 0 setvar VAR_0x8004, 6 - special sub_81B9B80 + special CallFallarborTentFunction msgbox FallarborTown_BattleTentBattleRoom_Text_257CCE, MSGBOX_DEFAULT FallarborTown_BattleTentBattleRoom_EventScript_20097E:: @ 820097E - frontier_setchallengestatus CHALLENGE_STATUS_LOST + frontier_set FRONTIER_DATA_CHALLENGE_STATUS, CHALLENGE_STATUS_LOST special LoadPlayerParty warp MAP_FALLARBOR_TOWN_BATTLE_TENT_LOBBY, 255, 6, 6 waitstate @@ -80,9 +80,9 @@ FallarborTown_BattleTentBattleRoom_EventScript_20099C:: @ 820099C closemessage FallarborTown_BattleTentBattleRoom_EventScript_2009B3:: @ 82009B3 - frontier_getbattlenum + frontier_get FRONTIER_DATA_BATTLE_NUM addvar VAR_RESULT, 1 - frontier_setbattlenum VAR_RESULT + frontier_set FRONTIER_DATA_BATTLE_NUM, VAR_RESULT switch VAR_RESULT case 3, FallarborTown_BattleTentBattleRoom_EventScript_200AF3 applymovement 3, FallarborTown_BattleTentBattleRoom_Movement_200B9E @@ -95,13 +95,13 @@ FallarborTown_BattleTentBattleRoom_EventScript_2009B3:: @ 82009B3 msgbox FallarborTown_BattleTentBattleRoom_Text_257CE9, MSGBOX_DEFAULT special LoadPlayerParty special SavePlayerParty - frontier_loadselectedmons + frontier_setpartyorder FRONTIER_PARTY_SIZE playfanfare MUS_ME_ASA waitfanfare special HealPlayerParty FallarborTown_BattleTentBattleRoom_EventScript_200A2A:: @ 8200A2A - frontier_getbattlenum + frontier_get FRONTIER_DATA_BATTLE_NUM compare VAR_RESULT, 1 call_if_eq FallarborTown_BattleTentBattleRoom_EventScript_200B43 compare VAR_RESULT, 2 @@ -139,14 +139,14 @@ FallarborTown_BattleTentBattleRoom_EventScript_200AD8:: @ 8200AD8 FallarborTown_BattleTentBattleRoom_EventScript_200AF3:: @ 8200AF3 delay 60 - frontier_setchallengestatus CHALLENGE_STATUS_WON + frontier_set FRONTIER_DATA_CHALLENGE_STATUS, CHALLENGE_STATUS_WON special LoadPlayerParty warp MAP_FALLARBOR_TOWN_BATTLE_TENT_LOBBY, 255, 6, 6 waitstate setvar VAR_0x8004, 1 setvar VAR_0x8005, 1 special CallBattleArenaFunction - compare VAR_RESULT, 9999 + compare VAR_RESULT, MAX_STREAK goto_if_eq FallarborTown_BattleTentBattleRoom_EventScript_2009B3 addvar VAR_RESULT, 1 setvar VAR_0x8004, 2 @@ -169,12 +169,11 @@ FallarborTown_BattleTentBattleRoom_EventScript_200B51:: @ 8200B51 waitmessage setvar VAR_0x8004, 3 setvar VAR_0x8005, 2 - special sub_81B9B80 + special CallFallarborTentFunction playse SE_SAVE waitse fadescreen 1 - setvar VAR_0x8004, FRONTIER_UTIL_FUNC_SOFT_RESET - special CallFrontierUtilFunc + frontier_reset end FallarborTown_BattleTentBattleRoom_EventScript_200B73:: @ 8200B73 diff --git a/data/maps/FallarborTown_BattleTentLobby/scripts.inc b/data/maps/FallarborTown_BattleTentLobby/scripts.inc index 7ec338b6f..0b783e839 100644 --- a/data/maps/FallarborTown_BattleTentLobby/scripts.inc +++ b/data/maps/FallarborTown_BattleTentLobby/scripts.inc @@ -14,29 +14,23 @@ FallarborTown_BattleTentLobby_EventScript_1FFE7B:: @ 81FFE7B FallarborTown_BattleTentLobby_MapScript2_1FFE85: @ 81FFE85 map_script_2 VAR_TEMP_0, 0, FallarborTown_BattleTentLobby_EventScript_1FFEAF - map_script_2 VAR_TEMP_0, 1, FallarborTown_BattleTentLobby_EventScript_1FFEB8 - map_script_2 VAR_TEMP_0, 2, FallarborTown_BattleTentLobby_EventScript_1FFFCD - map_script_2 VAR_TEMP_0, 3, FallarborTown_BattleTentLobby_EventScript_1FFEED - map_script_2 VAR_TEMP_0, 4, FallarborTown_BattleTentLobby_EventScript_1FFF93 + map_script_2 VAR_TEMP_0, CHALLENGE_STATUS_SAVING, FallarborTown_BattleTentLobby_EventScript_1FFEB8 + map_script_2 VAR_TEMP_0, CHALLENGE_STATUS_PAUSED, FallarborTown_BattleTentLobby_EventScript_1FFFCD + map_script_2 VAR_TEMP_0, CHALLENGE_STATUS_WON, FallarborTown_BattleTentLobby_EventScript_1FFEED + map_script_2 VAR_TEMP_0, CHALLENGE_STATUS_LOST, FallarborTown_BattleTentLobby_EventScript_1FFF93 .2byte 0 FallarborTown_BattleTentLobby_EventScript_1FFEAF:: @ 81FFEAF - frontier_checkoutcome + frontier_getstatus end FallarborTown_BattleTentLobby_EventScript_1FFEB8:: @ 81FFEB8 lockall msgbox FallarborTown_BattleTentLobby_Text_2C4DED, MSGBOX_DEFAULT closemessage - setvar VAR_0x8004, FRONTIER_UTIL_FUNC_SET_DATA - setvar VAR_0x8005, 0 - setvar VAR_0x8006, 0 - special CallFrontierUtilFunc + frontier_set FRONTIER_DATA_CHALLENGE_STATUS, 0 setvar VAR_TEMP_0, 255 - setvar VAR_0x8004, FRONTIER_UTIL_FUNC_SET_DATA - setvar VAR_0x8005, 1 - setvar VAR_0x8006, 0 - special CallFrontierUtilFunc + frontier_set FRONTIER_DATA_LVL_MODE, FRONTIER_LVL_50 releaseall end @@ -46,27 +40,21 @@ FallarborTown_BattleTentLobby_EventScript_1FFEED:: @ 81FFEED message FallarborTown_BattleTentLobby_Text_2C4EFF waitmessage setvar VAR_0x8004, 4 - special sub_81B9B80 - setvar VAR_0x8004, FRONTIER_UTIL_FUNC_SET_DATA - setvar VAR_0x8005, 1 - setvar VAR_0x8006, 0 - special CallFrontierUtilFunc + special CallFallarborTentFunction + frontier_set FRONTIER_DATA_LVL_MODE, FRONTIER_LVL_50 setvar VAR_0x8004, 3 setvar VAR_0x8005, 0 - special sub_81B9B80 + special CallFallarborTentFunction playse SE_SAVE waitse FallarborTown_BattleTentLobby_EventScript_1FFF27:: @ 81FFF27 msgbox FallarborTown_BattleTentLobby_Text_2C4F22, MSGBOX_DEFAULT setvar VAR_0x8004, 5 - special sub_81B9B80 + special CallFallarborTentFunction switch VAR_RESULT case 0, FallarborTown_BattleTentLobby_EventScript_1FFF73 - setvar VAR_0x8004, FRONTIER_UTIL_FUNC_SET_DATA - setvar VAR_0x8005, 0 - setvar VAR_0x8006, 0 - special CallFrontierUtilFunc + frontier_set FRONTIER_DATA_CHALLENGE_STATUS, 0 message FallarborTown_BattleTentLobby_Text_2C4F69 waitmessage playfanfare MUS_FANFA4 @@ -95,13 +83,10 @@ FallarborTown_BattleTentLobby_EventScript_1FFF93:: @ 81FFF93 lockall message FallarborTown_BattleTentLobby_Text_2C4FD7 waitmessage - setvar VAR_0x8004, FRONTIER_UTIL_FUNC_SET_DATA - setvar VAR_0x8005, 1 - setvar VAR_0x8006, 0 - special CallFrontierUtilFunc + frontier_set FRONTIER_DATA_LVL_MODE, FRONTIER_LVL_50 setvar VAR_0x8004, 3 setvar VAR_0x8005, 0 - special sub_81B9B80 + special CallFallarborTentFunction playse SE_SAVE waitse msgbox FallarborTown_BattleTentLobby_Text_2C501F, MSGBOX_DEFAULT @@ -116,13 +101,10 @@ FallarborTown_BattleTentLobby_EventScript_1FFFCD:: @ 81FFFCD waitmessage setvar VAR_0x8004, 3 setvar VAR_0x8005, 1 - special sub_81B9B80 + special CallFallarborTentFunction playse SE_SAVE waitse - setvar VAR_0x8004, FRONTIER_UTIL_FUNC_SET_DATA - setvar VAR_0x8005, 3 - setvar VAR_0x8006, 0 - special CallFrontierUtilFunc + frontier_set FRONTIER_DATA_PAUSED, FALSE setvar VAR_TEMP_0, 255 goto FallarborTown_BattleTentLobby_EventScript_20013C @@ -130,7 +112,7 @@ FallarborTown_BattleTentLobby_EventScript_200001:: @ 8200001 lock faceplayer setvar VAR_0x8004, 1 - special sub_81B9B80 + special CallFallarborTentFunction compare VAR_RESULT, 0 goto_if_ne FallarborTown_BattleTentLobby_EventScript_1FFF84 special SavePlayerParty @@ -147,17 +129,13 @@ FallarborTown_BattleTentLobby_EventScript_200021:: @ 8200021 case MULTI_B_PRESSED, FallarborTown_BattleTentLobby_EventScript_2001C5 FallarborTown_BattleTentLobby_EventScript_20005D:: @ 820005D - setvar VAR_FRONTIER_FACILITY, 3 - setvar VAR_FRONTIER_BATTLE_MODE, 0 + setvar VAR_FRONTIER_FACILITY, FRONTIER_FACILITY_ARENA + setvar VAR_FRONTIER_BATTLE_MODE, FRONTIER_MODE_SINGLES setvar VAR_RESULT, 2 - setvar VAR_0x8004, FRONTIER_UTIL_FUNC_15 - special CallFrontierUtilFunc - compare VAR_0x8004, 1 + frontier_checkineligible + compare VAR_0x8004, TRUE goto_if_eq FallarborTown_BattleTentLobby_EventScript_200176 - setvar VAR_0x8004, FRONTIER_UTIL_FUNC_SET_DATA - setvar VAR_0x8005, 1 - setvar VAR_0x8006, 2 - special CallFrontierUtilFunc + frontier_set FRONTIER_DATA_LVL_MODE, FRONTIER_LVL_TENT msgbox FallarborTown_BattleTentLobby_Text_2C4BC8, MSGBOX_DEFAULT fadescreen 1 setvar VAR_0x8004, 2 @@ -174,19 +152,11 @@ FallarborTown_BattleTentLobby_EventScript_20005D:: @ 820005D FallarborTown_BattleTentLobby_EventScript_2000E2:: @ 82000E2 setvar VAR_TEMP_0, 0 - setvar VAR_0x8004, FRONTIER_UTIL_FUNC_SET_DATA - setvar VAR_0x8005, 4 - special CallFrontierUtilFunc + frontier_set FRONTIER_DATA_SELECTED_MON_ORDER setvar VAR_0x8004, 0 - special sub_81B9B80 - setvar VAR_0x8004, FRONTIER_UTIL_FUNC_SET_DATA - setvar VAR_0x8005, 0 - setvar VAR_0x8006, 1 - special CallFrontierUtilFunc - setvar VAR_0x8004, FRONTIER_UTIL_FUNC_SET_DATA - setvar VAR_0x8005, 3 - setvar VAR_0x8006, 0 - special CallFrontierUtilFunc + special CallFallarborTentFunction + frontier_set FRONTIER_DATA_CHALLENGE_STATUS, CHALLENGE_STATUS_SAVING + frontier_set FRONTIER_DATA_PAUSED, FALSE special LoadPlayerParty closemessage delay 2 @@ -197,7 +167,7 @@ FallarborTown_BattleTentLobby_EventScript_2000E2:: @ 82000E2 FallarborTown_BattleTentLobby_EventScript_20013C:: @ 820013C special SavePlayerParty - frontier_loadselectedmons + frontier_setpartyorder FRONTIER_PARTY_SIZE msgbox FallarborTown_BattleTentLobby_Text_2C4DC3, MSGBOX_DEFAULT closemessage call FallarborTown_BattleTentLobby_EventScript_2001CF @@ -212,8 +182,8 @@ FallarborTown_BattleTentLobby_EventScript_200169:: @ 8200169 FallarborTown_BattleTentLobby_EventScript_200176:: @ 8200176 switch VAR_RESULT - case 0, FallarborTown_BattleTentLobby_EventScript_200191 - case 1, FallarborTown_BattleTentLobby_EventScript_20019E + case FRONTIER_LVL_50, FallarborTown_BattleTentLobby_EventScript_200191 + case FRONTIER_LVL_OPEN, FallarborTown_BattleTentLobby_EventScript_20019E FallarborTown_BattleTentLobby_EventScript_200191:: @ 8200191 msgbox FallarborTown_BattleTentLobby_Text_2C4BFA, MSGBOX_DEFAULT @@ -224,10 +194,7 @@ FallarborTown_BattleTentLobby_EventScript_20019E:: @ 820019E goto FallarborTown_BattleTentLobby_EventScript_2001CD FallarborTown_BattleTentLobby_EventScript_2001AB:: @ 82001AB - setvar VAR_0x8004, FRONTIER_UTIL_FUNC_SET_DATA - setvar VAR_0x8005, 0 - setvar VAR_0x8006, 0 - special CallFrontierUtilFunc + frontier_set FRONTIER_DATA_CHALLENGE_STATUS, 0 goto FallarborTown_BattleTentLobby_EventScript_2001C5 FallarborTown_BattleTentLobby_EventScript_2001C2:: @ 82001C2 diff --git a/data/maps/MossdeepCity_SpaceCenter_2F/scripts.inc b/data/maps/MossdeepCity_SpaceCenter_2F/scripts.inc index 63600c9e2..403377161 100644 --- a/data/maps/MossdeepCity_SpaceCenter_2F/scripts.inc +++ b/data/maps/MossdeepCity_SpaceCenter_2F/scripts.inc @@ -258,15 +258,12 @@ MossdeepCity_SpaceCenter_2F_EventScript_ChoosePartyForMultiBattle:: @ 822400C MossdeepCity_SpaceCenter_2F_EventScript_DoStevenMultiBattle:: @ 8224032 special ReducePlayerPartyToSelectedMons - setvar VAR_0x8004, FRONTIER_UTIL_FUNC_SET_DATA - setvar VAR_0x8005, 4 - special CallFrontierUtilFunc + frontier_set FRONTIER_DATA_SELECTED_MON_ORDER setvar VAR_0x8004, SPECIAL_BATTLE_STEVEN setvar VAR_0x8005, 0 special DoSpecialTrainerBattle waitstate - setvar VAR_0x8004, FRONTIER_UTIL_FUNC_6 - special CallFrontierUtilFunc + frontier_saveparty special LoadPlayerParty switch VAR_RESULT case 1, MossdeepCity_SpaceCenter_2F_EventScript_DefeatedMaxieTabitha diff --git a/data/maps/SlateportCity_BattleTentBattleRoom/scripts.inc b/data/maps/SlateportCity_BattleTentBattleRoom/scripts.inc index eddd434a1..438fad17c 100644 --- a/data/maps/SlateportCity_BattleTentBattleRoom/scripts.inc +++ b/data/maps/SlateportCity_BattleTentBattleRoom/scripts.inc @@ -49,7 +49,7 @@ SlateportCity_BattleTentBattleRoom_EventScript_2099BE:: @ 82099BE applymovement 2, SlateportCity_BattleTentBattleRoom_Movement_209A9E waitmovement 0 setvar VAR_0x8004, 4 - special sub_81B99B4 + special CallVerdanturfTentFunction lockall msgbox gStringVar4, MSGBOX_DEFAULT waitmessage @@ -63,15 +63,15 @@ SlateportCity_BattleTentBattleRoom_EventScript_2099BE:: @ 82099BE case 1, SlateportCity_BattleTentBattleRoom_EventScript_209A39 SlateportCity_BattleTentCorridor_EventScript_209A1B:: @ 8209A1B - frontier_setchallengestatus CHALLENGE_STATUS_LOST + frontier_set FRONTIER_DATA_CHALLENGE_STATUS, CHALLENGE_STATUS_LOST special LoadPlayerParty warp MAP_SLATEPORT_CITY_BATTLE_TENT_LOBBY, 255, 6, 6 waitstate SlateportCity_BattleTentBattleRoom_EventScript_209A39:: @ 8209A39 - frontier_getbattlenum + frontier_get FRONTIER_DATA_BATTLE_NUM addvar VAR_RESULT, 1 - frontier_setbattlenum VAR_RESULT + frontier_set FRONTIER_DATA_BATTLE_NUM, VAR_RESULT switch VAR_RESULT case 3, SlateportCity_BattleTentBattleRoom_EventScript_209A7B @ case 3, SlateportCity_BattleTentCorridor_EventScript_209A7B @@ -81,7 +81,7 @@ SlateportCity_BattleTentBattleRoom_EventScript_209A39:: @ 8209A39 SlateportCity_BattleTentBattleRoom_EventScript_209A7B:: @ 8209A7B SlateportCity_BattleTentCorridor_EventScript_209A7B:: @ 8209A7B - frontier_setchallengestatus CHALLENGE_STATUS_WON + frontier_set FRONTIER_DATA_CHALLENGE_STATUS, CHALLENGE_STATUS_WON special LoadPlayerParty warp MAP_SLATEPORT_CITY_BATTLE_TENT_LOBBY, 255, 6, 6 waitstate diff --git a/data/maps/SlateportCity_BattleTentCorridor/scripts.inc b/data/maps/SlateportCity_BattleTentCorridor/scripts.inc index 952ca1c1b..101a7fdb3 100644 --- a/data/maps/SlateportCity_BattleTentCorridor/scripts.inc +++ b/data/maps/SlateportCity_BattleTentCorridor/scripts.inc @@ -32,15 +32,14 @@ SlateportCity_BattleTentCorridor_EventScript_208E65:: @ 8208E65 compare VAR_0x8006, 2 goto_if_eq SlateportCity_BattleTentCorridor_EventScript_209044 setvar VAR_0x8004, 9 - special sub_81B9D08 + special CallSlateportTentFunction setvar VAR_0x8004, 8 - special sub_81B9D08 + special CallSlateportTentFunction msgbox SlateportCity_BattleTentCorridor_Text_25A1C8, MSGBOX_DEFAULT fadescreen 1 setvar VAR_0x8004, 6 - special sub_81B9D08 + special CallSlateportTentFunction waitstate - SlateportCity_BattleTentCorridor_EventScript_208EB4:: @ 8208EB4 msgbox SlateportCity_BattleTentCorridor_Text_25AB96, MSGBOX_DEFAULT closemessage @@ -66,11 +65,8 @@ SlateportCity_BattleTentCorridor_EventScript_208EEE:: @ 8208EEE playfanfare MUS_ME_ASA waitfanfare special HealPlayerParty - SlateportCity_BattleTentCorridor_EventScript_208F0D:: @ 8208F0D - setvar VAR_0x8004, FRONTIER_UTIL_FUNC_GET_DATA - setvar VAR_0x8005, 2 - special CallFrontierUtilFunc + frontier_get FRONTIER_DATA_BATTLE_NUM compare VAR_RESULT, 1 call_if_eq SlateportCity_BattleTentCorridor_EventScript_209014 compare VAR_RESULT, 2 @@ -99,7 +95,7 @@ SlateportCity_BattleTentCorridor_EventScript_208F89:: @ 8208F89 SlateportCity_BattleTentCorridor_EventScript_208FBB:: @ 8208FBB setvar VAR_0x8004, 8 - special sub_81B9D08 + special CallSlateportTentFunction msgbox SlateportCity_BattleTentCorridor_Text_25AB2E, MSGBOX_YESNO switch VAR_RESULT case NO, SlateportCity_BattleTentCorridor_EventScript_208EB4 @@ -109,7 +105,7 @@ SlateportCity_BattleTentCorridor_EventScript_208FBB:: @ 8208FBB SlateportCity_BattleTentCorridor_EventScript_208FF1:: @ 8208FF1 fadescreen 1 setvar VAR_0x8004, 7 - special sub_81B9D08 + special CallSlateportTentFunction waitstate compare VAR_RESULT, 1 goto_if_eq SlateportCity_BattleTentCorridor_EventScript_208EB4 @@ -131,12 +127,11 @@ SlateportCity_BattleTentCorridor_EventScript_209022:: @ 8209022 waitmessage setvar VAR_0x8004, 3 setvar VAR_0x8005, 2 - special sub_81B9D08 + special CallSlateportTentFunction playse SE_SAVE waitse fadescreen 1 - setvar VAR_0x8004, FRONTIER_UTIL_FUNC_SOFT_RESET - special CallFrontierUtilFunc + frontier_reset end SlateportCity_BattleTentCorridor_EventScript_209044:: @ 8209044 diff --git a/data/maps/SlateportCity_BattleTentLobby/scripts.inc b/data/maps/SlateportCity_BattleTentLobby/scripts.inc index c6011c3f2..bf64adca9 100644 --- a/data/maps/SlateportCity_BattleTentLobby/scripts.inc +++ b/data/maps/SlateportCity_BattleTentLobby/scripts.inc @@ -14,29 +14,23 @@ SlateportCity_BattleTentLobby_EventScript_208745:: @ 8208745 SlateportCity_BattleTentLobby_MapScript2_20874F: @ 820874F map_script_2 VAR_TEMP_0, 0, SlateportCity_BattleTentLobby_EventScript_208779 - map_script_2 VAR_TEMP_0, 1, SlateportCity_BattleTentLobby_EventScript_208782 - map_script_2 VAR_TEMP_0, 2, SlateportCity_BattleTentLobby_EventScript_208871 - map_script_2 VAR_TEMP_0, 3, SlateportCity_BattleTentLobby_EventScript_2087B7 - map_script_2 VAR_TEMP_0, 4, SlateportCity_BattleTentLobby_EventScript_208837 + map_script_2 VAR_TEMP_0, CHALLENGE_STATUS_SAVING, SlateportCity_BattleTentLobby_EventScript_208782 + map_script_2 VAR_TEMP_0, CHALLENGE_STATUS_PAUSED, SlateportCity_BattleTentLobby_EventScript_208871 + map_script_2 VAR_TEMP_0, CHALLENGE_STATUS_WON, SlateportCity_BattleTentLobby_EventScript_2087B7 + map_script_2 VAR_TEMP_0, CHALLENGE_STATUS_LOST, SlateportCity_BattleTentLobby_EventScript_208837 .2byte 0 SlateportCity_BattleTentLobby_EventScript_208779:: @ 8208779 - frontier_checkoutcome + frontier_getstatus end SlateportCity_BattleTentLobby_EventScript_208782:: @ 8208782 lockall msgbox SlateportCity_BattleTentLobby_Text_2C5DFA, MSGBOX_DEFAULT closemessage - setvar VAR_0x8004, FRONTIER_UTIL_FUNC_SET_DATA - setvar VAR_0x8005, 0 - setvar VAR_0x8006, 0 - special CallFrontierUtilFunc + frontier_set FRONTIER_DATA_CHALLENGE_STATUS, 0 setvar VAR_TEMP_0, 255 - setvar VAR_0x8004, FRONTIER_UTIL_FUNC_SET_DATA - setvar VAR_0x8005, 1 - setvar VAR_0x8006, 0 - special CallFrontierUtilFunc + frontier_set FRONTIER_DATA_LVL_MODE, FRONTIER_LVL_50 releaseall end @@ -45,27 +39,20 @@ SlateportCity_BattleTentLobby_EventScript_2087B7:: @ 82087B7 message SlateportCity_BattleTentLobby_Text_2C5C6F waitmessage setvar VAR_0x8004, 4 - special sub_81B9D08 - setvar VAR_0x8004, FRONTIER_UTIL_FUNC_SET_DATA - setvar VAR_0x8005, 1 - setvar VAR_0x8006, 0 - special CallFrontierUtilFunc + special CallSlateportTentFunction + frontier_set FRONTIER_DATA_LVL_MODE, FRONTIER_LVL_50 setvar VAR_0x8004, 3 setvar VAR_0x8005, 0 - special sub_81B9D08 + special CallSlateportTentFunction playse SE_SAVE waitse - SlateportCity_BattleTentLobby_EventScript_2087E9:: @ 82087E9 msgbox SlateportCity_BattleTentLobby_Text_2C5D14, MSGBOX_DEFAULT setvar VAR_0x8004, 5 - special sub_81B9D08 + special CallSlateportTentFunction switch VAR_RESULT case 0, SlateportCity_BattleTentLobby_EventScript_20882A - setvar VAR_0x8004, FRONTIER_UTIL_FUNC_SET_DATA - setvar VAR_0x8005, 0 - setvar VAR_0x8006, 0 - special CallFrontierUtilFunc + frontier_set FRONTIER_DATA_CHALLENGE_STATUS, 0 message SlateportCity_BattleTentLobby_Text_23F68C waitmessage playfanfare MUS_FANFA4 @@ -80,13 +67,10 @@ SlateportCity_BattleTentLobby_EventScript_208837:: @ 8208837 lockall message SlateportCity_BattleTentLobby_Text_2C5BA2 waitmessage - setvar VAR_0x8004, FRONTIER_UTIL_FUNC_SET_DATA - setvar VAR_0x8005, 1 - setvar VAR_0x8006, 0 - special CallFrontierUtilFunc + frontier_set FRONTIER_DATA_LVL_MODE, FRONTIER_LVL_50 setvar VAR_0x8004, 3 setvar VAR_0x8005, 0 - special sub_81B9D08 + special CallSlateportTentFunction playse SE_SAVE waitse @@ -103,13 +87,10 @@ SlateportCity_BattleTentLobby_EventScript_208871:: @ 8208871 waitmessage setvar VAR_0x8004, 3 setvar VAR_0x8005, 1 - special sub_81B9D08 + special CallSlateportTentFunction playse SE_SAVE waitse - setvar VAR_0x8004, FRONTIER_UTIL_FUNC_SET_DATA - setvar VAR_0x8005, 3 - setvar VAR_0x8006, 0 - special CallFrontierUtilFunc + frontier_set FRONTIER_DATA_PAUSED, FALSE setvar VAR_TEMP_0, 255 setvar VAR_0x8006, 2 goto SlateportCity_BattleTentLobby_EventScript_2089AC @@ -118,7 +99,7 @@ SlateportCity_BattleTentLobby_EventScript_2088AA:: @ 82088AA lock faceplayer setvar VAR_0x8004, 1 - special sub_81B9D08 + special CallSlateportTentFunction compare VAR_RESULT, 0 goto_if_ne SlateportCity_BattleTentLobby_EventScript_2087E9 special SavePlayerParty @@ -135,12 +116,9 @@ SlateportCity_BattleTentLobby_EventScript_2088CA:: @ 82088CA case MULTI_B_PRESSED, SlateportCity_BattleTentLobby_EventScript_208A2E SlateportCity_BattleTentLobby_EventScript_208906:: @ 8208906 - setvar VAR_FRONTIER_FACILITY, 4 - setvar VAR_FRONTIER_BATTLE_MODE, 0 - setvar VAR_0x8004, FRONTIER_UTIL_FUNC_SET_DATA - setvar VAR_0x8005, 1 - setvar VAR_0x8006, 2 - special CallFrontierUtilFunc + setvar VAR_FRONTIER_FACILITY, FRONTIER_FACILITY_FACTORY + setvar VAR_FRONTIER_BATTLE_MODE, FRONTIER_MODE_SINGLES + frontier_set FRONTIER_DATA_LVL_MODE, FRONTIER_LVL_TENT msgbox SlateportCity_BattleTentLobby_Text_2C5B06, MSGBOX_YESNO switch VAR_RESULT case NO, SlateportCity_BattleTentLobby_EventScript_208A2B @@ -149,19 +127,11 @@ SlateportCity_BattleTentLobby_EventScript_208906:: @ 8208906 SlateportCity_BattleTentLobby_EventScript_208950:: @ 8208950 setvar VAR_TEMP_0, 0 - setvar VAR_0x8004, FRONTIER_UTIL_FUNC_SET_DATA - setvar VAR_0x8005, 4 - special CallFrontierUtilFunc + frontier_set FRONTIER_DATA_SELECTED_MON_ORDER setvar VAR_0x8004, 0 - special sub_81B9D08 - setvar VAR_0x8004, FRONTIER_UTIL_FUNC_SET_DATA - setvar VAR_0x8005, 0 - setvar VAR_0x8006, 1 - special CallFrontierUtilFunc - setvar VAR_0x8004, FRONTIER_UTIL_FUNC_SET_DATA - setvar VAR_0x8005, 3 - setvar VAR_0x8006, 0 - special CallFrontierUtilFunc + special CallSlateportTentFunction + frontier_set FRONTIER_DATA_CHALLENGE_STATUS, CHALLENGE_STATUS_SAVING + frontier_set FRONTIER_DATA_PAUSED, FALSE closemessage delay 2 call Common_EventScript_SaveGame @@ -169,7 +139,6 @@ SlateportCity_BattleTentLobby_EventScript_208950:: @ 8208950 compare VAR_RESULT, 0 goto_if_eq SlateportCity_BattleTentLobby_EventScript_208A14 setvar VAR_0x8006, 0 - SlateportCity_BattleTentLobby_EventScript_2089AC:: @ 82089AC msgbox SlateportCity_BattleTentLobby_Text_2C5B8C, MSGBOX_DEFAULT closemessage @@ -220,10 +189,7 @@ SlateportCity_BattleTentLobby_EventScript_208A07:: @ 8208A07 goto SlateportCity_BattleTentLobby_EventScript_2088CA SlateportCity_BattleTentLobby_EventScript_208A14:: @ 8208A14 - setvar VAR_0x8004, FRONTIER_UTIL_FUNC_SET_DATA - setvar VAR_0x8005, 0 - setvar VAR_0x8006, 0 - special CallFrontierUtilFunc + frontier_set FRONTIER_DATA_CHALLENGE_STATUS, 0 goto SlateportCity_BattleTentLobby_EventScript_208A2E SlateportCity_BattleTentLobby_EventScript_208A2B:: @ 8208A2B diff --git a/data/maps/SootopolisCity_MysteryEventsHouse_1F/scripts.inc b/data/maps/SootopolisCity_MysteryEventsHouse_1F/scripts.inc index beb7e2455..043d9ad82 100644 --- a/data/maps/SootopolisCity_MysteryEventsHouse_1F/scripts.inc +++ b/data/maps/SootopolisCity_MysteryEventsHouse_1F/scripts.inc @@ -4,8 +4,7 @@ SootopolisCity_MysteryEventsHouse_1F_MapScripts:: @ 8227953 .byte 0 SootopolisCity_MysteryEventsHouse_1F_OnTransition: @ 822795E - setvar VAR_0x8004, FRONTIER_UTIL_FUNC_CHECK_VISIT_TRAINER - special CallFrontierUtilFunc + frontier_checkvisittrainer compare VAR_RESULT, 0 call_if_eq SootopolisCity_MysteryEventsHouse_1F_EventScript_SetTrainerVisitingLayout compare VAR_SOOTOPOLIS_MYSTERY_EVENTS_STATE, 0 @@ -74,8 +73,7 @@ SootopolisCity_MysteryEventsHouse_1F_Movement_OldManWalkBehindPlayer: @ 8227A21 SootopolisCity_MysteryEventsHouse_1F_EventScript_OldMan:: @ 8227A24 lock faceplayer - setvar VAR_0x8004, FRONTIER_UTIL_FUNC_CHECK_VISIT_TRAINER - special CallFrontierUtilFunc + frontier_checkvisittrainer compare VAR_RESULT, 1 goto_if_eq SootopolisCity_MysteryEventsHouse_1F_EventScript_InvalidVisitingTrainer compare VAR_TEMP_1, 1 diff --git a/data/maps/VerdanturfTown_BattleTentBattleRoom/scripts.inc b/data/maps/VerdanturfTown_BattleTentBattleRoom/scripts.inc index 7dfd53fa8..06c77e5db 100644 --- a/data/maps/VerdanturfTown_BattleTentBattleRoom/scripts.inc +++ b/data/maps/VerdanturfTown_BattleTentBattleRoom/scripts.inc @@ -34,7 +34,7 @@ VerdanturfTown_BattleTentBattleRoom_EventScript_202348:: @ 8202348 showobjectat 1, MAP_VERDANTURF_TOWN_BATTLE_TENT_BATTLE_ROOM applymovement 1, VerdanturfTown_BattleTentBattleRoom_Movement_202575 waitmovement 0 - frontier_getbattlenum + frontier_get FRONTIER_DATA_BATTLE_NUM compare VAR_RESULT, 0 goto_if_ne VerdanturfTown_BattleTentBattleRoom_EventScript_20243C @@ -45,7 +45,7 @@ VerdanturfTown_BattleTentBattleRoom_EventScript_20236F:: @ 820236F applymovement 2, VerdanturfTown_BattleTentBattleRoom_Movement_20257B waitmovement 0 setvar VAR_0x8004, 4 - special sub_81B99B4 + special CallVerdanturfTentFunction msgbox gStringVar4, MSGBOX_DEFAULT waitmessage call VerdanturfTown_BattleTentBattleRoom_EventScript_24FDF7 @@ -53,15 +53,15 @@ VerdanturfTown_BattleTentBattleRoom_EventScript_20236F:: @ 820236F case 1, VerdanturfTown_BattleTentBattleRoom_EventScript_2023C8 VerdanturfTown_BattleTentBattleRoom_EventScript_2023AA:: @ 82023AA - frontier_setchallengestatus CHALLENGE_STATUS_LOST + frontier_set FRONTIER_DATA_CHALLENGE_STATUS, CHALLENGE_STATUS_LOST special LoadPlayerParty warp MAP_VERDANTURF_TOWN_BATTLE_TENT_LOBBY, 255, 6, 6 waitstate VerdanturfTown_BattleTentBattleRoom_EventScript_2023C8:: @ 82023C8 - frontier_getbattlenum + frontier_get FRONTIER_DATA_BATTLE_NUM addvar VAR_RESULT, 1 - frontier_setbattlenum VAR_RESULT + frontier_set FRONTIER_DATA_BATTLE_NUM, VAR_RESULT switch VAR_RESULT case 3, VerdanturfTown_BattleTentBattleRoom_EventScript_202501 applymovement 2, VerdanturfTown_BattleTentBattleRoom_Movement_202581 @@ -73,13 +73,13 @@ VerdanturfTown_BattleTentBattleRoom_EventScript_2023C8:: @ 82023C8 msgbox VerdanturfTown_BattleTentBattleRoom_Text_24FF00, MSGBOX_DEFAULT special LoadPlayerParty special SavePlayerParty - frontier_loadselectedmons + frontier_setpartyorder FRONTIER_PARTY_SIZE playfanfare MUS_ME_ASA waitfanfare special HealPlayerParty VerdanturfTown_BattleTentBattleRoom_EventScript_20243C:: @ 820243C - frontier_getbattlenum + frontier_get FRONTIER_DATA_BATTLE_NUM compare VAR_RESULT, 1 call_if_eq VerdanturfTown_BattleTentBattleRoom_EventScript_202565 compare VAR_RESULT, 2 @@ -114,7 +114,7 @@ VerdanturfTown_BattleTentBattleRoom_EventScript_2024EA:: @ 82024EA goto VerdanturfTown_BattleTentBattleRoom_EventScript_20236F VerdanturfTown_BattleTentBattleRoom_EventScript_202501:: @ 8202501 - frontier_setchallengestatus CHALLENGE_STATUS_WON + frontier_set FRONTIER_DATA_CHALLENGE_STATUS, CHALLENGE_STATUS_WON special LoadPlayerParty warp MAP_VERDANTURF_TOWN_BATTLE_TENT_LOBBY, 255, 6, 6 waitstate @@ -124,12 +124,11 @@ VerdanturfTown_BattleTentBattleRoom_EventScript_20251F:: @ 820251F waitmessage setvar VAR_0x8004, 5 setvar VAR_0x8005, 2 - special sub_81B99B4 + special CallVerdanturfTentFunction playse SE_SAVE waitse fadescreen 1 - setvar VAR_0x8004, FRONTIER_UTIL_FUNC_SOFT_RESET - special CallFrontierUtilFunc + frontier_reset end VerdanturfTown_BattleTentBattleRoom_MapScript2_202541: @ 8202541 diff --git a/data/maps/VerdanturfTown_BattleTentLobby/scripts.inc b/data/maps/VerdanturfTown_BattleTentLobby/scripts.inc index cf68192fb..348cff47e 100644 --- a/data/maps/VerdanturfTown_BattleTentLobby/scripts.inc +++ b/data/maps/VerdanturfTown_BattleTentLobby/scripts.inc @@ -14,29 +14,23 @@ VerdanturfTown_BattleTentLobby_EventScript_2016E5:: @ 82016E5 VerdanturfTown_BattleTentLobby_MapScript2_2016EF: @ 82016EF map_script_2 VAR_TEMP_0, 0, VerdanturfTown_BattleTentLobby_EventScript_201719 - map_script_2 VAR_TEMP_0, 1, VerdanturfTown_BattleTentLobby_EventScript_201722 - map_script_2 VAR_TEMP_0, 2, VerdanturfTown_BattleTentLobby_EventScript_201837 - map_script_2 VAR_TEMP_0, 3, VerdanturfTown_BattleTentLobby_EventScript_201757 - map_script_2 VAR_TEMP_0, 4, VerdanturfTown_BattleTentLobby_EventScript_2017FD + map_script_2 VAR_TEMP_0, CHALLENGE_STATUS_SAVING, VerdanturfTown_BattleTentLobby_EventScript_201722 + map_script_2 VAR_TEMP_0, CHALLENGE_STATUS_PAUSED, VerdanturfTown_BattleTentLobby_EventScript_201837 + map_script_2 VAR_TEMP_0, CHALLENGE_STATUS_WON, VerdanturfTown_BattleTentLobby_EventScript_201757 + map_script_2 VAR_TEMP_0, CHALLENGE_STATUS_LOST, VerdanturfTown_BattleTentLobby_EventScript_2017FD .2byte 0 VerdanturfTown_BattleTentLobby_EventScript_201719:: @ 8201719 - frontier_checkoutcome + frontier_getstatus end VerdanturfTown_BattleTentLobby_EventScript_201722:: @ 8201722 lockall msgbox VerdanturfTown_BattleTentLobby_Text_24E636, MSGBOX_DEFAULT closemessage - setvar VAR_0x8004, FRONTIER_UTIL_FUNC_SET_DATA - setvar VAR_0x8005, 0 - setvar VAR_0x8006, 0 - special CallFrontierUtilFunc + frontier_set FRONTIER_DATA_CHALLENGE_STATUS, 0 setvar VAR_TEMP_0, 255 - setvar VAR_0x8004, FRONTIER_UTIL_FUNC_SET_DATA - setvar VAR_0x8005, 1 - setvar VAR_0x8006, 0 - special CallFrontierUtilFunc + frontier_set FRONTIER_DATA_LVL_MODE, FRONTIER_LVL_50 releaseall end @@ -46,27 +40,21 @@ VerdanturfTown_BattleTentLobby_EventScript_201757:: @ 8201757 message VerdanturfTown_BattleTentLobby_Text_2C5791 waitmessage setvar VAR_0x8004, 6 - special sub_81B99B4 - setvar VAR_0x8004, FRONTIER_UTIL_FUNC_SET_DATA - setvar VAR_0x8005, 1 - setvar VAR_0x8006, 0 - special CallFrontierUtilFunc + special CallVerdanturfTentFunction + frontier_set FRONTIER_DATA_LVL_MODE, FRONTIER_LVL_50 setvar VAR_0x8004, 5 setvar VAR_0x8005, 0 - special sub_81B99B4 + special CallVerdanturfTentFunction playse SE_SAVE waitse VerdanturfTown_BattleTentLobby_EventScript_201791:: @ 8201791 msgbox VerdanturfTown_BattleTentLobby_Text_2C57CD, MSGBOX_DEFAULT setvar VAR_0x8004, 7 - special sub_81B99B4 + special CallVerdanturfTentFunction switch VAR_RESULT case 0, VerdanturfTown_BattleTentLobby_EventScript_2017DD - setvar VAR_0x8004, FRONTIER_UTIL_FUNC_SET_DATA - setvar VAR_0x8005, 0 - setvar VAR_0x8006, 0 - special CallFrontierUtilFunc + frontier_set FRONTIER_DATA_CHALLENGE_STATUS, 0 message VerdanturfTown_BattleTentLobby_Text_24A554 waitmessage playfanfare MUS_FANFA4 @@ -95,13 +83,10 @@ VerdanturfTown_BattleTentLobby_EventScript_2017FD:: @ 82017FD lockall message VerdanturfTown_BattleTentLobby_Text_2C56B8 waitmessage - setvar VAR_0x8004, FRONTIER_UTIL_FUNC_SET_DATA - setvar VAR_0x8005, 1 - setvar VAR_0x8006, 0 - special CallFrontierUtilFunc + frontier_set FRONTIER_DATA_LVL_MODE, FRONTIER_LVL_50 setvar VAR_0x8004, 5 setvar VAR_0x8005, 0 - special sub_81B99B4 + special CallVerdanturfTentFunction playse SE_SAVE waitse msgbox VerdanturfTown_BattleTentLobby_Text_2C539A, MSGBOX_DEFAULT @@ -117,13 +102,10 @@ VerdanturfTown_BattleTentLobby_EventScript_201837:: @ 8201837 waitmessage setvar VAR_0x8004, 5 setvar VAR_0x8005, 1 - special sub_81B99B4 + special CallVerdanturfTentFunction playse SE_SAVE waitse - setvar VAR_0x8004, FRONTIER_UTIL_FUNC_SET_DATA - setvar VAR_0x8005, 3 - setvar VAR_0x8006, 0 - special CallFrontierUtilFunc + frontier_set FRONTIER_DATA_PAUSED, FALSE setvar VAR_TEMP_0, 255 goto VerdanturfTown_BattleTentLobby_EventScript_2019AE @@ -131,7 +113,7 @@ VerdanturfTown_BattleTentLobby_EventScript_201873:: @ 8201873 lock faceplayer setvar VAR_0x8004, 1 - special sub_81B99B4 + special CallVerdanturfTentFunction compare VAR_RESULT, 0 goto_if_ne VerdanturfTown_BattleTentLobby_EventScript_2017EE special SavePlayerParty @@ -148,17 +130,13 @@ VerdanturfTown_BattleTentLobby_EventScript_201893:: @ 8201893 case MULTI_B_PRESSED, VerdanturfTown_BattleTentLobby_EventScript_201A37 VerdanturfTown_BattleTentLobby_EventScript_2018CF:: @ 82018CF - setvar VAR_FRONTIER_FACILITY, 2 - setvar VAR_FRONTIER_BATTLE_MODE, 0 + setvar VAR_FRONTIER_FACILITY, FRONTIER_FACILITY_PALACE + setvar VAR_FRONTIER_BATTLE_MODE, FRONTIER_MODE_SINGLES setvar VAR_RESULT, 2 - setvar VAR_0x8004, FRONTIER_UTIL_FUNC_15 - special CallFrontierUtilFunc - compare VAR_0x8004, 1 + frontier_checkineligible + compare VAR_0x8004, TRUE goto_if_eq VerdanturfTown_BattleTentLobby_EventScript_2019E8 - setvar VAR_0x8004, FRONTIER_UTIL_FUNC_SET_DATA - setvar VAR_0x8005, 1 - setvar VAR_0x8006, 2 - special CallFrontierUtilFunc + frontier_set FRONTIER_DATA_LVL_MODE, FRONTIER_LVL_TENT msgbox VerdanturfTown_BattleTentLobby_Text_2C5633, MSGBOX_DEFAULT fadescreen 1 setvar VAR_0x8004, 1 @@ -175,19 +153,11 @@ VerdanturfTown_BattleTentLobby_EventScript_2018CF:: @ 82018CF VerdanturfTown_BattleTentLobby_EventScript_201954:: @ 8201954 setvar VAR_TEMP_0, 0 - setvar VAR_0x8004, FRONTIER_UTIL_FUNC_SET_DATA - setvar VAR_0x8005, 4 - special CallFrontierUtilFunc + frontier_set FRONTIER_DATA_SELECTED_MON_ORDER setvar VAR_0x8004, 0 - special sub_81B99B4 - setvar VAR_0x8004, FRONTIER_UTIL_FUNC_SET_DATA - setvar VAR_0x8005, 0 - setvar VAR_0x8006, 1 - special CallFrontierUtilFunc - setvar VAR_0x8004, FRONTIER_UTIL_FUNC_SET_DATA - setvar VAR_0x8005, 3 - setvar VAR_0x8006, 0 - special CallFrontierUtilFunc + special CallVerdanturfTentFunction + frontier_set FRONTIER_DATA_CHALLENGE_STATUS, CHALLENGE_STATUS_SAVING + frontier_set FRONTIER_DATA_PAUSED, FALSE special LoadPlayerParty closemessage delay 2 @@ -198,7 +168,7 @@ VerdanturfTown_BattleTentLobby_EventScript_201954:: @ 8201954 VerdanturfTown_BattleTentLobby_EventScript_2019AE:: @ 82019AE special SavePlayerParty - frontier_loadselectedmons + frontier_setpartyorder FRONTIER_PARTY_SIZE msgbox VerdanturfTown_BattleTentLobby_Text_2C56A2, MSGBOX_DEFAULT closemessage call VerdanturfTown_BattleTentLobby_EventScript_201A41 @@ -213,8 +183,8 @@ VerdanturfTown_BattleTentLobby_EventScript_2019DB:: @ 82019DB VerdanturfTown_BattleTentLobby_EventScript_2019E8:: @ 82019E8 switch VAR_RESULT - case 0, VerdanturfTown_BattleTentLobby_EventScript_201A03 - case 1, VerdanturfTown_BattleTentLobby_EventScript_201A10 + case FRONTIER_LVL_50, VerdanturfTown_BattleTentLobby_EventScript_201A03 + case FRONTIER_LVL_OPEN, VerdanturfTown_BattleTentLobby_EventScript_201A10 VerdanturfTown_BattleTentLobby_EventScript_201A03:: @ 8201A03 msgbox VerdanturfTown_BattleTentLobby_Text_2C543D, MSGBOX_DEFAULT @@ -225,18 +195,13 @@ VerdanturfTown_BattleTentLobby_EventScript_201A10:: @ 8201A10 goto VerdanturfTown_BattleTentLobby_EventScript_201A3F VerdanturfTown_BattleTentLobby_EventScript_201A1D:: @ 8201A1D - setvar VAR_0x8004, FRONTIER_UTIL_FUNC_SET_DATA - setvar VAR_0x8005, 0 - setvar VAR_0x8006, 0 - special CallFrontierUtilFunc + frontier_set FRONTIER_DATA_CHALLENGE_STATUS, 0 goto VerdanturfTown_BattleTentLobby_EventScript_201A37 VerdanturfTown_BattleTentLobby_EventScript_201A34:: @ 8201A34 special LoadPlayerParty - VerdanturfTown_BattleTentLobby_EventScript_201A37:: @ 8201A37 msgbox VerdanturfTown_BattleTentLobby_Text_2C539A, MSGBOX_DEFAULT - VerdanturfTown_BattleTentLobby_EventScript_201A3F:: @ 8201A3F release end diff --git a/data/scripts/battle_pike.inc b/data/scripts/battle_pike.inc index ca1e14d47..81440320c 100644 --- a/data/scripts/battle_pike.inc +++ b/data/scripts/battle_pike.inc @@ -92,9 +92,9 @@ BattleFrontier_BattlePikeThreePathRoom_EventScript_RoomWarp:: @ 82C3F6F battlepike_getstreak addvar VAR_RESULT, 1 battlepike_setstreak VAR_RESULT - frontier_getbattlenum + frontier_get FRONTIER_DATA_BATTLE_NUM addvar VAR_RESULT, 1 - frontier_setbattlenum VAR_RESULT + frontier_set FRONTIER_DATA_BATTLE_NUM, VAR_RESULT battlepike_setnextroom battlepike_getroomtype switch VAR_RESULT @@ -160,9 +160,9 @@ BattleFrontier_BattlePikeRoomNormal_EventScript_Exit:: @ 82C40A2 battlepike_getstreak addvar VAR_RESULT, 1 battlepike_setstreak VAR_RESULT - frontier_getbattlenum + frontier_get FRONTIER_DATA_BATTLE_NUM addvar VAR_RESULT, 1 - frontier_setbattlenum VAR_RESULT + frontier_set FRONTIER_DATA_BATTLE_NUM, VAR_RESULT battlepike_isfinalroom compare VAR_RESULT, TRUE call_if_eq BattleFrontier_BattlePikeRoom_EventScript_WarpToFinalRoom @@ -204,9 +204,9 @@ BattleFrontier_BattlePikeRoomWildMons_EventScript_2C4174:: @ 82C4174 battlepike_getstreak addvar VAR_RESULT, 1 battlepike_setstreak VAR_RESULT - frontier_getbattlenum + frontier_get FRONTIER_DATA_BATTLE_NUM addvar VAR_RESULT, 1 - frontier_setbattlenum VAR_RESULT + frontier_set FRONTIER_DATA_BATTLE_NUM, VAR_RESULT battlepike_isfinalroom compare VAR_RESULT, TRUE call_if_eq BattleFrontier_BattlePikeRoom_EventScript_WarpToFinalRoom @@ -229,17 +229,17 @@ BattleFrontier_BattlePikeRoomWildMons_EventScript_2C420D:: @ 82C420D end BattleFrontier_BattlePike_EventScript_Retire:: @ 82C4222 - frontier_setchallengestatus CHALLENGE_STATUS_LOST + frontier_set FRONTIER_DATA_CHALLENGE_STATUS CHALLENGE_STATUS_LOST warp MAP_BATTLE_FRONTIER_BATTLE_PIKE_LOBBY, 255, 5, 6 waitstate end BattleFrontier_BattlePikeRoom_OnResume: @ 82C423E setorcopyvar VAR_0x8006, VAR_RESULT - frontier_getchallengestatus - compare VAR_RESULT, 2 + frontier_get FRONTIER_DATA_CHALLENGE_STATUS + compare VAR_RESULT, CHALLENGE_STATUS_PAUSED goto_if_eq BattleFrontier_BattlePikeThreePathRoom_EventScript_2C426B - compare VAR_RESULT, 1 + compare VAR_RESULT, CHALLENGE_STATUS_SAVING goto_if_eq BattleFrontier_BattlePikeThreePathRoom_EventScript_2C426B call BattleFrontier_BattlePikeRoom_EventScript_ResetSketchedMoves BattleFrontier_BattlePikeThreePathRoom_EventScript_2C426B:: @ 82C426B diff --git a/data/scripts/trainer_hill.inc b/data/scripts/trainer_hill.inc index e57cf923b..ca692e1ef 100644 --- a/data/scripts/trainer_hill.inc +++ b/data/scripts/trainer_hill.inc @@ -1,7 +1,7 @@ TrainerHill_OnResume: @ 82C8336 setvar VAR_TEMP_2, 0 trainerhill_resumetimer - frontier_getbattleoutcome + frontier_get FRONTIER_DATA_BATTLE_OUTCOME compare VAR_RESULT, B_OUTCOME_LOST goto_if_eq TrainerHill_1F_EventScript_Lost compare VAR_RESULT, B_OUTCOME_DREW diff --git a/data/specials.inc b/data/specials.inc index 4b23995f2..56a0d02c4 100644 --- a/data/specials.inc +++ b/data/specials.inc @@ -253,9 +253,9 @@ gSpecials:: @ 81DBA64 def_special CallBattlePikeFunction def_special CallBattlePyramidFunction def_special StopMapMusic - def_special sub_81B99B4 - def_special sub_81B9B80 - def_special sub_81B9D08 + def_special CallVerdanturfTentFunction + def_special CallFallarborTentFunction + def_special CallSlateportTentFunction def_special sub_80F9490 def_special ValidateEReaderTrainer def_special GetBestBattleTowerStreak diff --git a/include/battle_message.h b/include/battle_message.h index 1157fbfae..a3f2636e5 100644 --- a/include/battle_message.h +++ b/include/battle_message.h @@ -259,7 +259,7 @@ extern const u8 gText_Love[]; extern const u8 gText_SpaceAndSpace[]; extern const u8 gText_CommaSpace[]; extern const u8 gText_Space2[]; -extern const u8 gText_ScrollTextUp[]; +extern const u8 gText_LineBreak[]; extern const u8 gText_NewLine[]; extern const u8 gText_Are[]; extern const u8 gText_Are2[]; diff --git a/include/constants/battle_frontier.h b/include/constants/battle_frontier.h index 7fcebb452..0bf1ba02b 100644 --- a/include/constants/battle_frontier.h +++ b/include/constants/battle_frontier.h @@ -33,10 +33,9 @@ #define FRONTIER_MODE_LINK_MULTIS 3 #define FRONTIER_MODE_COUNT 4 -// TODO -#define CHALLENGE_STATUS_INACTIVE 0 -#define CHALLENGE_STATUS_CANCEL 1 -#define CHALLENGE_STATUS_ONGOING 2 +// Challenge Statuses +#define CHALLENGE_STATUS_SAVING 1 +#define CHALLENGE_STATUS_PAUSED 2 #define CHALLENGE_STATUS_WON 3 #define CHALLENGE_STATUS_LOST 4 @@ -54,6 +53,7 @@ #define SPECIAL_BATTLE_PYRAMID 10 #define MAX_BATTLE_FRONTIER_POINTS 9999 +#define MAX_STREAK 9999 // These sets of facility ids would be redunant if the order was consistent // The order is important for this set so that all the non-link records can be continuous diff --git a/include/constants/frontier_util.h b/include/constants/frontier_util.h index 4a4804995..d71809169 100644 --- a/include/constants/frontier_util.h +++ b/include/constants/frontier_util.h @@ -12,27 +12,26 @@ #define FRONTIER_BRAIN_STREAK 3 // for encountering the brain after getting both symbols #define FRONTIER_BRAIN_STREAK_LONG 4 // - #define FRONTIER_UTIL_FUNC_GET_STATUS 0 #define FRONTIER_UTIL_FUNC_GET_DATA 1 #define FRONTIER_UTIL_FUNC_SET_DATA 2 -#define FRONTIER_UTIL_FUNC_LOAD_SELECTED_PARTY 3 +#define FRONTIER_UTIL_FUNC_SET_PARTY_ORDER 3 #define FRONTIER_UTIL_FUNC_SOFT_RESET 4 -#define FRONTIER_UTIL_FUNC_SET_FRONTIER_TRAINERS 5 -#define FRONTIER_UTIL_FUNC_6 6 +#define FRONTIER_UTIL_FUNC_SET_TRAINERS 5 +#define FRONTIER_UTIL_FUNC_SAVE_PARTY 6 #define FRONTIER_UTIL_FUNC_RESULTS_WINDOW 7 -#define FRONTIER_UTIL_FUNC_8 8 +#define FRONTIER_UTIL_FUNC_CHECK_AIR_TV_SHOW 8 #define FRONTIER_UTIL_FUNC_GET_BRAIN_STATUS 9 -#define FRONTIER_UTIL_FUNC_IS_FRONTIER_BRAIN 10 -#define FRONTIER_UTIL_FUNC_11 11 +#define FRONTIER_UTIL_FUNC_IS_BRAIN 10 +#define FRONTIER_UTIL_FUNC_GIVE_BATTLE_POINTS 11 #define FRONTIER_UTIL_FUNC_GET_FACILITY_SYMBOLS 12 #define FRONTIER_UTIL_FUNC_GIVE_FACILITY_SYMBOL 13 #define FRONTIER_UTIL_FUNC_CHECK_BATTLE_TYPE 14 -#define FRONTIER_UTIL_FUNC_15 15 +#define FRONTIER_UTIL_FUNC_CHECK_INELIGIBLE 15 #define FRONTIER_UTIL_FUNC_CHECK_VISIT_TRAINER 16 -#define FRONTIER_UTIL_FUNC_17 17 -#define FRONTIER_UTIL_FUNC_18 18 -#define FRONTIER_UTIL_FUNC_19 19 +#define FRONTIER_UTIL_FUNC_INCREMENT_STREAK 17 +#define FRONTIER_UTIL_FUNC_RESTORE_HELD_ITEMS 18 +#define FRONTIER_UTIL_FUNC_SAVE_BATTLE 19 #define FRONTIER_UTIL_FUNC_BUFFER_TRAINER_NAME 20 #define FRONTIER_UTIL_FUNC_RESET_SKETCH_MOVES 21 #define FRONTIER_UTIL_FUNC_SET_BRAIN_OBJECT 22 @@ -40,10 +39,37 @@ #define FRONTIER_DATA_CHALLENGE_STATUS 0 #define FRONTIER_DATA_LVL_MODE 1 #define FRONTIER_DATA_BATTLE_NUM 2 -#define FRONTIER_DATA_3 3 -#define FRONTIER_DATA_4 4 +#define FRONTIER_DATA_PAUSED 3 +#define FRONTIER_DATA_SELECTED_MON_ORDER 4 #define FRONTIER_DATA_BATTLE_OUTCOME 5 #define FRONTIER_DATA_6 6 -#define FRONTIER_DATA_SYMBOL 7 +#define FRONTIER_DATA_HEARD_BRAIN_SPEECH 7 + +#define STREAK_TOWER_SINGLES_50 (1 << 0) +#define STREAK_TOWER_SINGLES_OPEN (1 << 1) +#define STREAK_DOME_SINGLES_50 (1 << 2) +#define STREAK_DOME_SINGLES_OPEN (1 << 3) +#define STREAK_PALACE_SINGLES_50 (1 << 4) +#define STREAK_PALACE_SINGLES_OPEN (1 << 5) +#define STREAK_ARENA_50 (1 << 6) +#define STREAK_ARENA_OPEN (1 << 7) +#define STREAK_FACTORY_SINGLES_50 (1 << 8) +#define STREAK_FACTORY_SINGLES_OPEN (1 << 9) +#define STREAK_PIKE_50 (1 << 10) +#define STREAK_PIKE_OPEN (1 << 11) +#define STREAK_PYRAMID_50 (1 << 12) +#define STREAK_PYRAMID_OPEN (1 << 13) +#define STREAK_TOWER_DOUBLES_50 (1 << 14) +#define STREAK_TOWER_DOUBLES_OPEN (1 << 15) +#define STREAK_TOWER_MULTIS_50 (1 << 16) +#define STREAK_TOWER_MULTIS_OPEN (1 << 17) +#define STREAK_TOWER_LINK_MULTIS_50 (1 << 18) +#define STREAK_TOWER_LINK_MULTIS_OPEN (1 << 19) +#define STREAK_DOME_DOUBLES_50 (1 << 20) +#define STREAK_DOME_DOUBLES_OPEN (1 << 21) +#define STREAK_PALACE_DOUBLES_50 (1 << 22) +#define STREAK_PALACE_DOUBLES_OPEN (1 << 23) +#define STREAK_FACTORY_DOUBLES_50 (1 << 24) +#define STREAK_FACTORY_DOUBLES_OPEN (1 << 25) #endif // GUARD_CONSTANTS_FRONTIER_UTIL_H diff --git a/include/constants/global.h b/include/constants/global.h index 3ee7650a8..4c638d63f 100644 --- a/include/constants/global.h +++ b/include/constants/global.h @@ -56,10 +56,15 @@ #define HALL_FACILITIES_COUNT 9 // 7 facilities for single mode + tower double mode + tower multi mode. #define TRAINER_ID_LENGTH 4 +#define MAX_MON_MOVES 4 + +// party sizes #define PARTY_SIZE 6 -#define FRONTIER_PARTY_SIZE 3 #define MULTI_PARTY_SIZE PARTY_SIZE / 2 -#define MAX_MON_MOVES 4 +#define FRONTIER_PARTY_SIZE 3 +#define FRONTIER_DOUBLES_PARTY_SIZE 4 +#define FRONTIER_MULTI_PARTY_SIZE 2 +#define MAX_FRONTIER_PARTY_SIZE FRONTIER_DOUBLES_PARTY_SIZE // string lengths #define ITEM_NAME_LENGTH 14 diff --git a/include/constants/trainers.h b/include/constants/trainers.h index c0abfe6b6..e5a193770 100644 --- a/include/constants/trainers.h +++ b/include/constants/trainers.h @@ -119,7 +119,7 @@ #define FACILITY_CLASS_HIKER 0x0 #define FACILITY_CLASS_AQUA_GRUNT_M 0x1 -#define FACILITY_CLASS_POKEMON_BREEDER_F 0x2 +#define FACILITY_CLASS_PKMN_BREEDER_F 0x2 #define FACILITY_CLASS_COOLTRAINER_M 0x3 #define FACILITY_CLASS_BIRD_KEEPER 0x4 #define FACILITY_CLASS_COLLECTOR 0x5 @@ -202,6 +202,86 @@ #define FACILITY_CLASSES_COUNT 0x52 +#define RS_FACILITY_CLASS_AQUA_LEADER_ARCHIE 0x0 +#define RS_FACILITY_CLASS_AQUA_GRUNT_M 0x1 +#define RS_FACILITY_CLASS_AQUA_GRUNT_F 0x2 +#define RS_FACILITY_CLASS_AROMA_LADY 0x3 +#define RS_FACILITY_CLASS_RUIN_MANIAC 0x4 +#define RS_FACILITY_CLASS_INTERVIEWER 0x5 +#define RS_FACILITY_CLASS_TUBER_F 0x6 +#define RS_FACILITY_CLASS_TUBER_M 0x7 +#define RS_FACILITY_CLASS_COOLTRAINER_M 0x8 +#define RS_FACILITY_CLASS_COOLTRAINER_F 0x9 +#define RS_FACILITY_CLASS_HEX_MANIAC 0xA +#define RS_FACILITY_CLASS_LADY 0xB +#define RS_FACILITY_CLASS_BEAUTY 0xC +#define RS_FACILITY_CLASS_RICH_BOY 0xD +#define RS_FACILITY_CLASS_POKEMANIAC 0xE +#define RS_FACILITY_CLASS_SWIMMER_M 0xF +#define RS_FACILITY_CLASS_BLACK_BELT 0x10 +#define RS_FACILITY_CLASS_GUITARIST 0x11 +#define RS_FACILITY_CLASS_KINDLER 0x12 +#define RS_FACILITY_CLASS_CAMPER 0x13 +#define RS_FACILITY_CLASS_BUG_MANIAC 0x14 +#define RS_FACILITY_CLASS_PSYCHIC_M 0x15 +#define RS_FACILITY_CLASS_PSYCHIC_F 0x16 +#define RS_FACILITY_CLASS_GENTLEMAN 0x17 +#define RS_FACILITY_CLASS_ELITE_FOUR_M 0x18 +#define RS_FACILITY_CLASS_ELITE_FOUR_F 0x19 +#define RS_FACILITY_CLASS_LEADER_F 0x1A +#define RS_FACILITY_CLASS_LEADER_M 0x1B +#define RS_FACILITY_CLASS_LEADER_MF 0x1C +#define RS_FACILITY_CLASS_SCHOOL_KID_M 0x1D +#define RS_FACILITY_CLASS_SCHOOL_KID_F 0x1E +#define RS_FACILITY_CLASS_SR_AND_JR 0x1F +#define RS_FACILITY_CLASS_POKEFAN_M 0x20 +#define RS_FACILITY_CLASS_POKEFAN_F 0x21 +#define RS_FACILITY_CLASS_EXPERT_M 0x22 +#define RS_FACILITY_CLASS_EXPERT_F 0x23 +#define RS_FACILITY_CLASS_YOUNGSTER 0x24 +#define RS_FACILITY_CLASS_CHAMPION 0x25 +#define RS_FACILITY_CLASS_FISHERMAN 0x26 +#define RS_FACILITY_CLASS_CYCLING_TRIATHLETE_M 0x27 +#define RS_FACILITY_CLASS_CYCLING_TRIATHLETE_F 0x28 +#define RS_FACILITY_CLASS_RUNNING_TRIATHLETE_M 0x29 +#define RS_FACILITY_CLASS_RUNNING_TRIATHLETE_F 0x2A +#define RS_FACILITY_CLASS_SWIMMING_TRIATHLETE_M 0x2B +#define RS_FACILITY_CLASS_SWIMMING_TRIATHLETE_F 0x2C +#define RS_FACILITY_CLASS_DRAGON_TAMER 0x2D +#define RS_FACILITY_CLASS_BIRD_KEEPER 0x2E +#define RS_FACILITY_CLASS_NINJA_BOY 0x2F +#define RS_FACILITY_CLASS_BATTLE_GIRL 0x30 +#define RS_FACILITY_CLASS_PARASOL_LADY 0x31 +#define RS_FACILITY_CLASS_SWIMMER_F 0x32 +#define RS_FACILITY_CLASS_PICNICKER 0x33 +#define RS_FACILITY_CLASS_TWINS 0x34 +#define RS_FACILITY_CLASS_SAILOR 0x35 +#define RS_FACILITY_CLASS_BOARDER_1 0x36 +#define RS_FACILITY_CLASS_BOARDER_2 0x37 +#define RS_FACILITY_CLASS_COLLECTOR 0x38 +#define RS_FACILITY_CLASS_WALLY 0x39 +#define RS_FACILITY_CLASS_BRENDAN_1 0x3A +#define RS_FACILITY_CLASS_BRENDAN_2 0x3B +#define RS_FACILITY_CLASS_BRENDAN_3 0x3C +#define RS_FACILITY_CLASS_MAY_1 0x3D +#define RS_FACILITY_CLASS_MAY_2 0x3E +#define RS_FACILITY_CLASS_MAY_3 0x3F +#define RS_FACILITY_CLASS_PKMN_BREEDER_M 0x40 +#define RS_FACILITY_CLASS_PKMN_BREEDER_F 0x41 +#define RS_FACILITY_CLASS_PKMN_RANGER_M 0x42 +#define RS_FACILITY_CLASS_PKMN_RANGER_F 0x43 +#define RS_FACILITY_CLASS_MAGMA_LEADER 0x44 +#define RS_FACILITY_CLASS_MAGMA_GRUNT_M 0x45 +#define RS_FACILITY_CLASS_MAGMA_GRUNT_F 0x46 +#define RS_FACILITY_CLASS_LASS 0x47 +#define RS_FACILITY_CLASS_BUG_CATCHER 0x48 +#define RS_FACILITY_CLASS_HIKER 0x49 +#define RS_FACILITY_CLASS_YOUNG_COUPLE 0x4A +#define RS_FACILITY_CLASS_OLD_COUPLE 0x4B +#define RS_FACILITY_CLASS_SIS_AND_BRO 0x4C + +#define RS_FACILITY_CLASSES_COUNT 0x4D + #define TRAINER_CLASS_PKMN_TRAINER_1 0x0 // Unused #define TRAINER_CLASS_PKMN_TRAINER_2 0x1 // Unused #define TRAINER_CLASS_HIKER 0x2 diff --git a/include/frontier_util.h b/include/frontier_util.h index adea712e0..d6cdb3a62 100644 --- a/include/frontier_util.h +++ b/include/frontier_util.h @@ -4,14 +4,14 @@ void CallFrontierUtilFunc(void); u8 GetFrontierBrainStatus(void); void CopyFrontierTrainerText(u8 whichText, u16 trainerId); -void sub_81A3908(void); +void ResetWinStreaks(void); u32 GetCurrentFacilityWinStreak(void); -void sub_81A3ACC(void); +void ResetFrontierTrainerIds(void); u8 GetPlayerSymbolCountForFacility(u8 facility); void ShowRankingHallRecordsWindow(void); void ScrollRankingHallRecordsWindow(void); void ClearRankingHallRecords(void); -void sub_81A4C30(void); +void SaveGameFrontier(void); u8 GetFrontierBrainTrainerPicIndex(void); u8 GetFrontierBrainTrainerClass(void); void CopyFrontierBrainTrainerName(u8 *dst); diff --git a/include/global.h b/include/global.h index bcb77aaaf..9b1695a25 100644 --- a/include/global.h +++ b/include/global.h @@ -269,11 +269,20 @@ struct EmeraldBattleTowerRecord /*0x10*/ u16 greeting[EASY_CHAT_BATTLE_WORDS_COUNT]; /*0x1C*/ u16 speechWon[EASY_CHAT_BATTLE_WORDS_COUNT]; /*0x28*/ u16 speechLost[EASY_CHAT_BATTLE_WORDS_COUNT]; - /*0x34*/ struct BattleTowerPokemon party[4]; + /*0x34*/ struct BattleTowerPokemon party[MAX_FRONTIER_PARTY_SIZE]; /*0xE4*/ u8 language; /*0xE8*/ u32 checksum; }; +struct BattleTowerInterview +{ + u16 playerSpecies; + u16 opponentSpecies; + u8 opponentName[PLAYER_NAME_LENGTH + 1]; + u8 opponentMonNickname[POKEMON_NAME_LENGTH + 1]; + u8 opponentLanguage; +}; + struct BattleTowerEReaderTrainer { /*0x00*/ u8 unk0; @@ -317,32 +326,27 @@ struct BattleFrontier { /*0x64C*/ struct EmeraldBattleTowerRecord towerPlayer; /*0x738*/ struct EmeraldBattleTowerRecord towerRecords[5]; // From record mixing. - /*0xBD4*/ u16 field_BD4; - /*0xBD6*/ u16 field_BD6; - /*0xBD8*/ u8 field_BD8[PLAYER_NAME_LENGTH + 1]; - /*0xBE3*/ u8 field_BE0[POKEMON_NAME_LENGTH + 1]; - /*0xBEB*/ u8 field_BEB; + /*0xBEB*/ struct BattleTowerInterview towerInterview; /*0xBEC*/ struct BattleTowerEReaderTrainer ereaderTrainer; - /*0xCA8*/ u8 challengeOutcome; - /*0xCA9*/ u8 lvlMode:2; // 0x1, 0x2 -> 0x3 - /*0xCA9*/ u8 field_CA9_a:1; // 0x4 - /*0xCA9*/ u8 field_CA9_b:1; // 0x8 - /*0xCA9*/ u8 field_CA9_c:1; // 0x10 - /*0xCA9*/ u8 field_CA9_d:1; // 0x20 - /*0xCA9*/ u8 field_CA9_e:1; // 0x40 - /*0xCA9*/ u8 field_CA9_f:1; // 0x80 - /*0xCAA*/ u16 selectedPartyMons[FRONTIER_PARTY_SIZE]; - /*0xCB0*/ u16 field_CB0; - /*0xCB2*/ u16 curChallengeBattleNum; // In case of battle pyramid, the floor. + /*0xCA8*/ u8 challengeStatus; + /*0xCA9*/ u8 lvlMode:2; + /*0xCA9*/ u8 challengePaused:1; + /*0xCA9*/ u8 field_CA9_b:1; + /*0xCA9*/ u8 unused_CA9_c:1; + /*0xCA9*/ u8 unused_CA9_d:1; + /*0xCA9*/ u8 unused_CA9_e:1; + /*0xCA9*/ u8 unused_CA9_f:1; + /*0xCB0*/ u16 selectedPartyMons[MAX_FRONTIER_PARTY_SIZE]; + /*0xCB2*/ u16 curChallengeBattleNum; // Battle number / room number (Pike) / floor number (Pyramid) /*0xCB4*/ u16 trainerIds[20]; - /*0xCDC*/ u32 field_CDC; + /*0xCDC*/ u32 winStreakActiveFlags; /*0xCE0*/ u16 towerWinStreaks[4][2]; /*0xCF0*/ u16 towerRecordWinStreaks[4][2]; - /*0xD00*/ u16 symbolFlags; - /*0xD02*/ u16 field_D02; - /*0xD04*/ u16 field_D04; - /*0xD06*/ u8 field_D06; - /*0xD07*/ u8 field_D07; + /*0xD00*/ u16 battledBrainFlags; + /*0xD02*/ u16 towerSinglesStreak; // Never read + /*0xD04*/ u16 towerNumWins; // Increments to MAX_STREAK but never read otherwise + /*0xD06*/ u8 towerBattleOutcome; + /*0xD07*/ u8 towerLvlMode; /*0xD08*/ u8 field_D08_0:1; /*0xD08*/ u8 field_D08_1:1; /*0xD08*/ u8 field_D08_2:1; @@ -388,19 +392,19 @@ struct BattleFrontier /*0xE6A*/ u16 field_E6A; /*0xE6C*/ u16 field_E6C; /*0xE6E*/ u16 field_E6E; - /*0xE70*/ struct RentalMon rentalMons[6]; + /*0xE70*/ struct RentalMon rentalMons[PARTY_SIZE]; /*0xEB8*/ u16 battlePoints; - /*0xEBA*/ u16 field_EBA; + /*0xEBA*/ u16 cardBattlePoints; /*0xEBC*/ u32 battlesCount; /*0xEC0*/ u16 field_EC0[16]; /*0xEE0*/ u8 trainerFlags; - /*0xEE1*/ u8 opponentName[2][PLAYER_NAME_LENGTH + 1]; - /*0xEF1*/ u8 field_EF1[2][4]; - /*0xEF9*/ u8 unk_EF9:7; + /*0xEE1*/ u8 opponentNames[2][PLAYER_NAME_LENGTH + 1]; + /*0xEF1*/ u8 opponentTrainerIds[2][TRAINER_ID_LENGTH]; + /*0xEF9*/ u8 unk_EF9:7; // Never read /*0xEF9*/ u8 savedGame:1; - /*0xEFA*/ u8 field_EFA; - /*0xEFB*/ u8 field_EFB; - /*0xEFC*/ struct FrontierMonData field_EFC[3]; + /*0xEFA*/ u8 unused_EFA; + /*0xEFB*/ u8 unused_EFB; + /*0xEFC*/ struct FrontierMonData field_EFC[FRONTIER_PARTY_SIZE]; }; struct ApprenticeQuestion diff --git a/include/strings.h b/include/strings.h index 9eddf1a0e..f814ad29f 100644 --- a/include/strings.h +++ b/include/strings.h @@ -1304,7 +1304,7 @@ extern const u8 gText_1st[]; extern const u8 gText_SpaceAndSpace[]; extern const u8 gText_CommaSpace[]; extern const u8 gText_NewLine[]; -extern const u8 gText_ScrollTextUp[]; +extern const u8 gText_LineBreak[]; extern const u8 gText_Space[]; extern const u8 gText_Space2[]; extern const u8 gText_Are[]; diff --git a/include/tv.h b/include/tv.h index 4027c3c0f..dc4b22a99 100644 --- a/include/tv.h +++ b/include/tv.h @@ -9,7 +9,7 @@ extern u8 *const gTVStringVarPtrs[3]; void ClearTVShowData(void); void sub_80EE184(void); void sub_80EE35C(u16 foeSpecies, u16 species, u8 moveIdx, const u16 *movePtr, u16 betterMove); -void sub_80EE8C8(u16 winStreak, u8 facility); +void TryPutFrontierTVShowOnAir(u16 winStreak, u8 facility); void DoTVShow(void); void DoTVShowInSearchOfTrainers(void); void TryPutTreasureInvestigatorsOnAir(void); @@ -56,7 +56,7 @@ void InterviewAfter(void); void UpdateTVScreensOnMap(int, int); void TV_PrintIntToStringVar(u8 varIdx, int value); void SaveRecordedItemPurchasesForTVShow(void); -bool8 sub_80EE818(void); +bool8 ShouldAirFrontierTVShow(void); void sub_80EE8C8(u16 winStreak, u8 facilityAndMode); void BravoTrainerPokemonProfile_BeforeInterview2(u8 contestStandingPlace); void ContestLiveUpdates_BeforeInterview_1(u8 a0); diff --git a/src/battle_arena.c b/src/battle_arena.c index 2f11b504b..c3d227376 100644 --- a/src/battle_arena.c +++ b/src/battle_arena.c @@ -22,6 +22,7 @@ #include "constants/songs.h" #include "constants/battle_string_ids.h" #include "constants/battle_frontier.h" +#include "constants/frontier_util.h" #include "constants/items.h" #include "constants/moves.h" #include "constants/rgb.h" @@ -786,14 +787,14 @@ static void InitArenaChallenge(void) bool32 isCurrent; u32 lvlMode = gSaveBlock2Ptr->frontier.lvlMode; - gSaveBlock2Ptr->frontier.challengeOutcome = 0; + gSaveBlock2Ptr->frontier.challengeStatus = 0; gSaveBlock2Ptr->frontier.curChallengeBattleNum = 0; - gSaveBlock2Ptr->frontier.field_CA9_a = 0; + gSaveBlock2Ptr->frontier.challengePaused = FALSE; gSaveBlock2Ptr->frontier.field_CA9_b = 0; if (lvlMode != FRONTIER_LVL_50) - isCurrent = gSaveBlock2Ptr->frontier.field_CDC & 0x80; + isCurrent = gSaveBlock2Ptr->frontier.winStreakActiveFlags & STREAK_ARENA_OPEN; else - isCurrent = gSaveBlock2Ptr->frontier.field_CDC & 0x40; + isCurrent = gSaveBlock2Ptr->frontier.winStreakActiveFlags & STREAK_ARENA_50; if (!isCurrent) gSaveBlock2Ptr->frontier.arenaWinStreaks[lvlMode] = 0; @@ -816,9 +817,9 @@ static void GetArenaData(void) break; case 2: if (lvlMode != FRONTIER_LVL_50) - gSpecialVar_Result = gSaveBlock2Ptr->frontier.field_CDC & 0x80; + gSpecialVar_Result = gSaveBlock2Ptr->frontier.winStreakActiveFlags & STREAK_ARENA_OPEN; else - gSpecialVar_Result = gSaveBlock2Ptr->frontier.field_CDC & 0x40; + gSpecialVar_Result = gSaveBlock2Ptr->frontier.winStreakActiveFlags & STREAK_ARENA_50; break; } } @@ -839,16 +840,16 @@ static void SetArenaData(void) if (lvlMode != FRONTIER_LVL_50) { if (gSpecialVar_0x8006) - gSaveBlock2Ptr->frontier.field_CDC |= 0x80; + gSaveBlock2Ptr->frontier.winStreakActiveFlags |= STREAK_ARENA_OPEN; else - gSaveBlock2Ptr->frontier.field_CDC &= ~(0x80); + gSaveBlock2Ptr->frontier.winStreakActiveFlags &= ~(STREAK_ARENA_OPEN); } else { if (gSpecialVar_0x8006) - gSaveBlock2Ptr->frontier.field_CDC |= 0x40; + gSaveBlock2Ptr->frontier.winStreakActiveFlags |= STREAK_ARENA_50; else - gSaveBlock2Ptr->frontier.field_CDC &= ~(0x40); + gSaveBlock2Ptr->frontier.winStreakActiveFlags &= ~(STREAK_ARENA_50); } break; } @@ -856,10 +857,10 @@ static void SetArenaData(void) static void sub_81A5AC4(void) { - gSaveBlock2Ptr->frontier.challengeOutcome = gSpecialVar_0x8005; + gSaveBlock2Ptr->frontier.challengeStatus = gSpecialVar_0x8005; VarSet(VAR_TEMP_0, 0); - gSaveBlock2Ptr->frontier.field_CA9_a = 1; - sub_81A4C30(); + gSaveBlock2Ptr->frontier.challengePaused = TRUE; + SaveGameFrontier(); } static void SetArenaRewardItem(void) diff --git a/src/battle_dome.c b/src/battle_dome.c index 234df1947..fc254e74d 100644 --- a/src/battle_dome.c +++ b/src/battle_dome.c @@ -1104,16 +1104,16 @@ static void (* const sBattleDomeFunctions[])(void) = InitDomeTrainers, }; -static const u32 gUnknown_0860D0EC[][2] = +static const u32 sWinStreakFlags[][2] = { - {0x00000004, 0x00000008}, - {0x00100000, 0x00200000}, + {STREAK_DOME_SINGLES_50, STREAK_DOME_SINGLES_OPEN}, + {STREAK_DOME_DOUBLES_50, STREAK_DOME_DOUBLES_OPEN}, }; -static const u32 gUnknown_0860D0FC[][2] = +static const u32 sWinStreakMasks[][2] = { - {0xfffffffb, 0xfffffff7}, - {0xffefffff, 0xffdfffff}, + {~(STREAK_DOME_SINGLES_50), ~(STREAK_DOME_SINGLES_OPEN)}, + {~(STREAK_DOME_DOUBLES_50), ~(STREAK_DOME_DOUBLES_OPEN)}, }; static const u8 sIdToOpponentId[DOME_TOURNAMENT_TRAINERS_COUNT][DOME_ROUNDS_COUNT] = @@ -2262,11 +2262,11 @@ static void InitDomeChallenge(void) u32 lvlMode = gSaveBlock2Ptr->frontier.lvlMode; u32 battleMode = VarGet(VAR_FRONTIER_BATTLE_MODE); - gSaveBlock2Ptr->frontier.challengeOutcome = 0; + gSaveBlock2Ptr->frontier.challengeStatus = 0; gSaveBlock2Ptr->frontier.curChallengeBattleNum = 0; - gSaveBlock2Ptr->frontier.field_CA9_a = 0; + gSaveBlock2Ptr->frontier.challengePaused = FALSE; gSaveBlock2Ptr->frontier.field_CA9_b = 0; - if (!(gSaveBlock2Ptr->frontier.field_CDC & gUnknown_0860D0EC[battleMode][lvlMode])) + if (!(gSaveBlock2Ptr->frontier.winStreakActiveFlags & sWinStreakFlags[battleMode][lvlMode])) gSaveBlock2Ptr->frontier.domeWinStreaks[battleMode][lvlMode] = 0; SetDynamicWarp(0, gSaveBlock1Ptr->location.mapGroup, gSaveBlock1Ptr->location.mapNum, -1); @@ -2284,7 +2284,7 @@ static void GetDomeData(void) gSpecialVar_Result = gSaveBlock2Ptr->frontier.domeWinStreaks[battleMode][lvlMode]; break; case 1: - gSpecialVar_Result = ((gSaveBlock2Ptr->frontier.field_CDC & gUnknown_0860D0EC[battleMode][lvlMode]) != 0); + gSpecialVar_Result = ((gSaveBlock2Ptr->frontier.winStreakActiveFlags & sWinStreakFlags[battleMode][lvlMode]) != 0); break; case 2: gSpecialVar_Result = gSaveBlock2Ptr->frontier.field_D08_0; @@ -2332,8 +2332,8 @@ static void GetDomeData(void) break; case 8: ClearSelectedPartyOrder(); - gSelectedOrderFromParty[0] = gSaveBlock2Ptr->frontier.field_CB0; - gSelectedOrderFromParty[1] = gSaveBlock2Ptr->frontier.field_CB0 >> 8; + gSelectedOrderFromParty[0] = gSaveBlock2Ptr->frontier.selectedPartyMons[3]; + gSelectedOrderFromParty[1] = gSaveBlock2Ptr->frontier.selectedPartyMons[3] >> 8; break; case 9: gSpecialVar_Result = (gSaveBlock2Ptr->frontier.field_D0A * 2) - 3 + gSaveBlock2Ptr->frontier.field_D0B; @@ -2353,9 +2353,9 @@ static void SetDomeData(void) break; case 1: if (gSpecialVar_0x8006) - gSaveBlock2Ptr->frontier.field_CDC |= gUnknown_0860D0EC[battleMode][lvlMode]; + gSaveBlock2Ptr->frontier.winStreakActiveFlags |= sWinStreakFlags[battleMode][lvlMode]; else - gSaveBlock2Ptr->frontier.field_CDC &= gUnknown_0860D0FC[battleMode][lvlMode]; + gSaveBlock2Ptr->frontier.winStreakActiveFlags &= sWinStreakMasks[battleMode][lvlMode]; break; case 2: gSaveBlock2Ptr->frontier.field_D08_0 = gSpecialVar_0x8006; @@ -2402,7 +2402,7 @@ static void SetDomeData(void) } break; case 8: - gSaveBlock2Ptr->frontier.field_CB0 = T1_READ_16(gSelectedOrderFromParty); + gSaveBlock2Ptr->frontier.selectedPartyMons[3] = T1_READ_16(gSelectedOrderFromParty); break; } } @@ -2432,12 +2432,12 @@ static void InitDomeTrainers(void) gSaveBlock2Ptr->frontier.domeTrainers[0].eliminatedAt = 0; gSaveBlock2Ptr->frontier.domeTrainers[0].unk3 = 0; - for (i = 0; i < 3; i++) + for (i = 0; i < FRONTIER_PARTY_SIZE; i++) { gSaveBlock2Ptr->frontier.domeMonIds[0][i] = GetMonData(&gPlayerParty[gSaveBlock2Ptr->frontier.selectedPartyMons[i] - 1], MON_DATA_SPECIES, NULL); for (j = 0; j < MAX_MON_MOVES; j++) gSaveBlock2Ptr->frontier.field_EFC[i].moves[j] = GetMonData(&gPlayerParty[gSaveBlock2Ptr->frontier.selectedPartyMons[i] - 1], MON_DATA_MOVE1 + j, NULL); - for (j = 0; j < 6; j++) + for (j = 0; j < NUM_STATS; j++) gSaveBlock2Ptr->frontier.field_EFC[i].evs[j] = GetMonData(&gPlayerParty[gSaveBlock2Ptr->frontier.selectedPartyMons[i] - 1], MON_DATA_HP_EV + j, NULL); gSaveBlock2Ptr->frontier.field_EFC[i].nature = GetNature(&gPlayerParty[gSaveBlock2Ptr->frontier.selectedPartyMons[i] - 1]); @@ -2500,9 +2500,9 @@ static void InitDomeTrainers(void) monTypesBits = 0; statSums[0] = 0; - for (i = 0; i < 3; i++) + for (i = 0; i < FRONTIER_PARTY_SIZE; i++) { - trainerId = gSaveBlock2Ptr->frontier.selectedPartyMons[i] - 1; // Great variable choice, gamefreak. + trainerId = gSaveBlock2Ptr->frontier.selectedPartyMons[i] - 1; statSums[0] += GetMonData(&gPlayerParty[trainerId], MON_DATA_ATK, NULL); statSums[0] += GetMonData(&gPlayerParty[trainerId], MON_DATA_DEF, NULL); statSums[0] += GetMonData(&gPlayerParty[trainerId], MON_DATA_SPATK, NULL); @@ -3329,10 +3329,10 @@ static void SetDomeOpponentGraphicsId(void) static void sub_81902F8(void) { - gSaveBlock2Ptr->frontier.challengeOutcome = gSpecialVar_0x8005; + gSaveBlock2Ptr->frontier.challengeStatus = gSpecialVar_0x8005; VarSet(VAR_TEMP_0, 0); - gSaveBlock2Ptr->frontier.field_CA9_a = 1; - sub_81A4C30(); + gSaveBlock2Ptr->frontier.challengePaused = TRUE; + SaveGameFrontier(); } static void UpdateDomeStreaks(void) @@ -6017,7 +6017,7 @@ static void sub_8194F58(void) species[0] = 0; species[1] = 0; species[2] = 0; - if ((gSaveBlock2Ptr->frontier.field_D0A != -gSaveBlock2Ptr->frontier.field_D0B) && gSaveBlock2Ptr->frontier.challengeOutcome != 1) + if ((gSaveBlock2Ptr->frontier.field_D0A != -gSaveBlock2Ptr->frontier.field_D0B) && gSaveBlock2Ptr->frontier.challengeStatus != CHALLENGE_STATUS_SAVING) return; statSums = AllocZeroed(sizeof(u16) * DOME_TOURNAMENT_TRAINERS_COUNT); diff --git a/src/battle_factory.c b/src/battle_factory.c index 44a82b39c..cc1fd12b7 100644 --- a/src/battle_factory.c +++ b/src/battle_factory.c @@ -11,6 +11,7 @@ #include "constants/species.h" #include "constants/battle_ai.h" #include "constants/battle_frontier.h" +#include "constants/frontier_util.h" #include "constants/layouts.h" #include "constants/trainers.h" #include "constants/moves.h" @@ -131,16 +132,16 @@ static void (* const sBattleFactoryFunctions[])(void) = RestorePlayerPartyHeldItems, }; -static const u32 gUnknown_08612164[][2] = +static const u32 sWinStreakFlags[][2] = { - {0x100, 0x200}, - {0x1000000, 0x2000000}, + {STREAK_FACTORY_SINGLES_50, STREAK_FACTORY_SINGLES_OPEN}, + {STREAK_FACTORY_DOUBLES_50, STREAK_FACTORY_DOUBLES_OPEN}, }; -static const u32 gUnknown_08612174[][2] = +static const u32 sWinStreakMasks[][2] = { - {0xfffffeff, 0xfffffdff}, - {0xfeffffff, 0xfdffffff}, + {~(STREAK_FACTORY_SINGLES_50), ~(STREAK_FACTORY_SINGLES_OPEN)}, + {~(STREAK_FACTORY_DOUBLES_50), ~(STREAK_FACTORY_DOUBLES_OPEN)}, }; static const u8 sFixedIVTable[][2] = @@ -187,11 +188,11 @@ static void InitFactoryChallenge(void) u32 lvlMode = gSaveBlock2Ptr->frontier.lvlMode; u32 battleMode = VarGet(VAR_FRONTIER_BATTLE_MODE); - gSaveBlock2Ptr->frontier.challengeOutcome = 0; + gSaveBlock2Ptr->frontier.challengeStatus = 0; gSaveBlock2Ptr->frontier.curChallengeBattleNum = 0; - gSaveBlock2Ptr->frontier.field_CA9_a = 0; + gSaveBlock2Ptr->frontier.challengePaused = FALSE; gSaveBlock2Ptr->frontier.field_CA9_b = 0; - if (!(gSaveBlock2Ptr->frontier.field_CDC & gUnknown_08612164[battleMode][lvlMode])) + if (!(gSaveBlock2Ptr->frontier.winStreakActiveFlags & sWinStreakFlags[battleMode][lvlMode])) { gSaveBlock2Ptr->frontier.factoryWinStreaks[battleMode][lvlMode] = 0; gSaveBlock2Ptr->frontier.factoryRentsCount[battleMode][lvlMode] = 0; @@ -218,7 +219,7 @@ static void GetBattleFactoryData(void) gSpecialVar_Result = gSaveBlock2Ptr->frontier.factoryWinStreaks[battleMode][lvlMode]; break; case 2: - gSpecialVar_Result = ((gSaveBlock2Ptr->frontier.field_CDC & gUnknown_08612164[battleMode][lvlMode]) != 0); + gSpecialVar_Result = ((gSaveBlock2Ptr->frontier.winStreakActiveFlags & sWinStreakFlags[battleMode][lvlMode]) != 0); break; case 3: gSpecialVar_Result = gSaveBlock2Ptr->frontier.factoryRentsCount[battleMode][lvlMode]; @@ -238,9 +239,9 @@ static void SetBattleFactoryData(void) break; case 2: if (gSpecialVar_0x8006) - gSaveBlock2Ptr->frontier.field_CDC |= gUnknown_08612164[battleMode][lvlMode]; + gSaveBlock2Ptr->frontier.winStreakActiveFlags |= sWinStreakFlags[battleMode][lvlMode]; else - gSaveBlock2Ptr->frontier.field_CDC &= gUnknown_08612174[battleMode][lvlMode]; + gSaveBlock2Ptr->frontier.winStreakActiveFlags &= sWinStreakMasks[battleMode][lvlMode]; break; case 3: if (sPerformedRentalSwap == TRUE) @@ -254,10 +255,10 @@ static void SetBattleFactoryData(void) static void sub_81A613C(void) { - gSaveBlock2Ptr->frontier.challengeOutcome = gSpecialVar_0x8005; + gSaveBlock2Ptr->frontier.challengeStatus = gSpecialVar_0x8005; VarSet(VAR_TEMP_0, 0); - gSaveBlock2Ptr->frontier.field_CA9_a = 1; - sub_81A4C30(); + gSaveBlock2Ptr->frontier.challengePaused = TRUE; + SaveGameFrontier(); } static void nullsub_75(void) diff --git a/src/battle_message.c b/src/battle_message.c index 1701f26ec..f60527d7a 100644 --- a/src/battle_message.c +++ b/src/battle_message.c @@ -1195,7 +1195,7 @@ const u8 gText_Love[] = _("love"); const u8 gText_SpaceAndSpace[] = _(" and "); const u8 gText_CommaSpace[] = _(", "); const u8 gText_Space2[] = _(" "); -const u8 gText_ScrollTextUp[] = _("\l"); +const u8 gText_LineBreak[] = _("\l"); const u8 gText_NewLine[] = _("\n"); const u8 gText_Are[] = _("are"); const u8 gText_Are2[] = _("are"); diff --git a/src/battle_palace.c b/src/battle_palace.c index 61ccfedfd..ed3fb751e 100644 --- a/src/battle_palace.c +++ b/src/battle_palace.c @@ -8,6 +8,8 @@ #include "item.h" #include "string_util.h" #include "constants/items.h" +#include "constants/battle_frontier.h" +#include "constants/frontier_util.h" // This file's functions. static void sub_8195980(void); @@ -39,16 +41,16 @@ static void (* const sBattlePalaceFunctions[])(void) = static const u16 gUnknown_0860DE78[] = {ITEM_HP_UP, ITEM_PROTEIN, ITEM_IRON, ITEM_CALCIUM, ITEM_CARBOS, ITEM_ZINC}; static const u16 gUnknown_0860DE84[] = {ITEM_BRIGHT_POWDER, ITEM_WHITE_HERB, ITEM_QUICK_CLAW, ITEM_LEFTOVERS, ITEM_MENTAL_HERB, ITEM_KINGS_ROCK, ITEM_FOCUS_BAND, ITEM_SCOPE_LENS, ITEM_CHOICE_BAND}; -static const u32 gUnknown_0860DE98[][2] = +static const u32 sWinStreakFlags[][2] = { - {0x10, 0x20}, - {0x400000, 0x800000}, + {STREAK_PALACE_SINGLES_50, STREAK_PALACE_SINGLES_OPEN}, + {STREAK_PALACE_DOUBLES_50, STREAK_PALACE_DOUBLES_OPEN}, }; -static const u32 gUnknown_0860DEA8[][2] = +static const u32 sWinStreakMasks[][2] = { - {~0x10, ~0x20}, - {~0x400000, ~0x800000}, + {~(STREAK_PALACE_SINGLES_50), ~(STREAK_PALACE_SINGLES_OPEN)}, + {~(STREAK_PALACE_DOUBLES_50), ~(STREAK_PALACE_DOUBLES_OPEN)}, }; // code @@ -62,11 +64,11 @@ static void sub_8195980(void) u32 lvlMode = gSaveBlock2Ptr->frontier.lvlMode; u32 battleMode = VarGet(VAR_FRONTIER_BATTLE_MODE); - gSaveBlock2Ptr->frontier.challengeOutcome = 0; + gSaveBlock2Ptr->frontier.challengeStatus = 0; gSaveBlock2Ptr->frontier.curChallengeBattleNum = 0; - gSaveBlock2Ptr->frontier.field_CA9_a = 0; + gSaveBlock2Ptr->frontier.challengePaused = FALSE; gSaveBlock2Ptr->frontier.field_CA9_b = 0; - if (!(gSaveBlock2Ptr->frontier.field_CDC & gUnknown_0860DE98[battleMode][lvlMode])) + if (!(gSaveBlock2Ptr->frontier.winStreakActiveFlags & sWinStreakFlags[battleMode][lvlMode])) gSaveBlock2Ptr->frontier.palaceWinStreaks[battleMode][lvlMode] = 0; SetDynamicWarp(0, gSaveBlock1Ptr->location.mapGroup, gSaveBlock1Ptr->location.mapNum, -1); @@ -87,7 +89,7 @@ static void sub_8195A38(void) gSpecialVar_Result = gSaveBlock2Ptr->frontier.palaceWinStreaks[battleMode][lvlMode]; break; case 2: - gSpecialVar_Result = ((gSaveBlock2Ptr->frontier.field_CDC & gUnknown_0860DE98[battleMode][lvlMode]) != 0); + gSpecialVar_Result = ((gSaveBlock2Ptr->frontier.winStreakActiveFlags & sWinStreakFlags[battleMode][lvlMode]) != 0); break; } } @@ -107,9 +109,9 @@ static void sub_8195AE4(void) break; case 2: if (gSpecialVar_0x8006) - gSaveBlock2Ptr->frontier.field_CDC |= gUnknown_0860DE98[battleMode][lvlMode]; + gSaveBlock2Ptr->frontier.winStreakActiveFlags |= sWinStreakFlags[battleMode][lvlMode]; else - gSaveBlock2Ptr->frontier.field_CDC &= gUnknown_0860DEA8[battleMode][lvlMode]; + gSaveBlock2Ptr->frontier.winStreakActiveFlags &= sWinStreakMasks[battleMode][lvlMode]; break; } } @@ -144,7 +146,7 @@ static void sub_8195C7C(void) u8 lvlMode = gSaveBlock2Ptr->frontier.lvlMode; u8 battleMode = VarGet(VAR_FRONTIER_BATTLE_MODE); - if (gSaveBlock2Ptr->frontier.palaceWinStreaks[battleMode][lvlMode] < 9999) + if (gSaveBlock2Ptr->frontier.palaceWinStreaks[battleMode][lvlMode] < MAX_STREAK) { gSaveBlock2Ptr->frontier.palaceWinStreaks[battleMode][lvlMode]++; @@ -156,10 +158,10 @@ static void sub_8195C7C(void) static void sub_8195CE4(void) { - gSaveBlock2Ptr->frontier.challengeOutcome = gSpecialVar_0x8005; + gSaveBlock2Ptr->frontier.challengeStatus = gSpecialVar_0x8005; VarSet(VAR_TEMP_0, 0); - gSaveBlock2Ptr->frontier.field_CA9_a = 1; - sub_81A4C30(); + gSaveBlock2Ptr->frontier.challengePaused = TRUE; + SaveGameFrontier(); } static void sub_8195D28(void) diff --git a/src/battle_pike.c b/src/battle_pike.c index 575c4235b..c2f8ae417 100644 --- a/src/battle_pike.c +++ b/src/battle_pike.c @@ -15,6 +15,7 @@ #include "battle_setup.h" #include "constants/event_objects.h" #include "constants/battle_frontier.h" +#include "constants/frontier_util.h" #include "constants/abilities.h" #include "constants/easy_chat.h" #include "constants/layouts.h" @@ -537,7 +538,7 @@ static bool8 (* const sStatusInflictionScreenFadeFuncs[])(struct Task *) = StatusInflictionFadeOut, StatusInflictionFadeIn }; -static const u32 gUnknown_08612690[] = {0x400, 0x800}; +static const u32 sWinStreakFlags[] = {STREAK_PIKE_50, STREAK_PIKE_OPEN}; // code void CallBattlePikeFunction(void) @@ -636,9 +637,9 @@ static void GetBattlePikeData(void) break; case 4: if (lvlMode != FRONTIER_LVL_50) - gSpecialVar_Result = gSaveBlock2Ptr->frontier.field_CDC & 0x800; + gSpecialVar_Result = gSaveBlock2Ptr->frontier.winStreakActiveFlags & STREAK_PIKE_OPEN; else - gSpecialVar_Result = gSaveBlock2Ptr->frontier.field_CDC & 0x400; + gSpecialVar_Result = gSaveBlock2Ptr->frontier.winStreakActiveFlags & STREAK_PIKE_50; break; } } @@ -653,31 +654,31 @@ static void SetBattlePikeData(void) gSaveBlock2Ptr->frontier.field_E02 = gSpecialVar_0x8006; break; case 1: - if (gSpecialVar_0x8006 <= 9999) + if (gSpecialVar_0x8006 <= MAX_STREAK) gSaveBlock2Ptr->frontier.pikeWinStreaks[gSaveBlock2Ptr->frontier.lvlMode] = gSpecialVar_0x8006; break; case 2: - if (gSpecialVar_0x8006 <= 9999 && gSaveBlock2Ptr->frontier.pikeRecordStreaks[gSaveBlock2Ptr->frontier.lvlMode] < gSpecialVar_0x8006) + if (gSpecialVar_0x8006 <= MAX_STREAK && gSaveBlock2Ptr->frontier.pikeRecordStreaks[gSaveBlock2Ptr->frontier.lvlMode] < gSpecialVar_0x8006) gSaveBlock2Ptr->frontier.pikeRecordStreaks[gSaveBlock2Ptr->frontier.lvlMode] = gSpecialVar_0x8006; break; case 3: - if (gSpecialVar_0x8006 <= 9999) + if (gSpecialVar_0x8006 <= MAX_STREAK) gSaveBlock2Ptr->frontier.pikeTotalStreaks[gSaveBlock2Ptr->frontier.lvlMode] = gSpecialVar_0x8006; break; case 4: if (lvlMode != FRONTIER_LVL_50) { if (gSpecialVar_0x8006) - gSaveBlock2Ptr->frontier.field_CDC |= 0x800; + gSaveBlock2Ptr->frontier.winStreakActiveFlags |= STREAK_PIKE_OPEN; else - gSaveBlock2Ptr->frontier.field_CDC &= ~(0x800); + gSaveBlock2Ptr->frontier.winStreakActiveFlags &= ~(STREAK_PIKE_OPEN); } else { if (gSpecialVar_0x8006) - gSaveBlock2Ptr->frontier.field_CDC |= 0x400; + gSaveBlock2Ptr->frontier.winStreakActiveFlags |= STREAK_PIKE_50; else - gSaveBlock2Ptr->frontier.field_CDC &= ~(0x400); + gSaveBlock2Ptr->frontier.winStreakActiveFlags &= ~(STREAK_PIKE_50); } break; } @@ -708,9 +709,9 @@ static void sub_81A740C(void) static void sub_81A7418(void) { - gSaveBlock2Ptr->frontier.challengeOutcome = gSpecialVar_0x8005; + gSaveBlock2Ptr->frontier.challengeStatus = gSpecialVar_0x8005; VarSet(VAR_TEMP_0, 0); - gSaveBlock2Ptr->frontier.field_CA9_a = 1; + gSaveBlock2Ptr->frontier.challengePaused = TRUE; save_serialize_map(); TrySavingData(SAVE_LINK); } @@ -1587,7 +1588,7 @@ static void BackupMonHeldItems(void) { u8 i; - for (i = 0; i < 3; i++) + for (i = 0; i < FRONTIER_PARTY_SIZE; i++) { int heldItem = GetMonData(&gSaveBlock1Ptr->playerParty[gSaveBlock2Ptr->frontier.selectedPartyMons[i] - 1], MON_DATA_HELD_ITEM); @@ -1599,7 +1600,7 @@ static void RestoreMonHeldItems(void) { u8 i; - for (i = 0; i < 3; i++) + for (i = 0; i < FRONTIER_PARTY_SIZE; i++) { SetMonData(&gPlayerParty[gSaveBlock2Ptr->frontier.selectedPartyMons[i] - 1], MON_DATA_HELD_ITEM, @@ -1611,10 +1612,10 @@ static void InitPikeChallenge(void) { u8 lvlMode = gSaveBlock2Ptr->frontier.lvlMode; - gSaveBlock2Ptr->frontier.challengeOutcome = 0; + gSaveBlock2Ptr->frontier.challengeStatus = 0; gSaveBlock2Ptr->frontier.curChallengeBattleNum = 0; - gSaveBlock2Ptr->frontier.field_CA9_a = 0; - if (!(gSaveBlock2Ptr->frontier.field_CDC & gUnknown_08612690[lvlMode])) + gSaveBlock2Ptr->frontier.challengePaused = FALSE; + if (!(gSaveBlock2Ptr->frontier.winStreakActiveFlags & sWinStreakFlags[lvlMode])) gSaveBlock2Ptr->frontier.pikeWinStreaks[lvlMode] = 0; gTrainerBattleOpponent_A = 0; diff --git a/src/battle_pyramid.c b/src/battle_pyramid.c index 99076f173..de53c9a47 100644 --- a/src/battle_pyramid.c +++ b/src/battle_pyramid.c @@ -30,6 +30,7 @@ #include "constants/battle_pyramid.h" #include "constants/event_objects.h" #include "constants/event_object_movement_constants.h" +#include "constants/frontier_util.h" #include "constants/items.h" #include "constants/layouts.h" #include "constants/maps.h" @@ -514,7 +515,7 @@ static const u8 sTrainerTextGroups[50][2] = {FACILITY_CLASS_SAILOR, 2}, {FACILITY_CLASS_COLLECTOR, 2}, {FACILITY_CLASS_PKMN_BREEDER_M, 2}, - {FACILITY_CLASS_POKEMON_BREEDER_F, 3}, + {FACILITY_CLASS_PKMN_BREEDER_F, 3}, {FACILITY_CLASS_PKMN_RANGER_M, 2}, {FACILITY_CLASS_PKMN_RANGER_F, 3}, {FACILITY_CLASS_LASS, 3}, @@ -842,13 +843,13 @@ static void InitPyramidChallenge(void) bool32 isCurrent; u32 lvlMode = gSaveBlock2Ptr->frontier.lvlMode; - gSaveBlock2Ptr->frontier.challengeOutcome = 0; + gSaveBlock2Ptr->frontier.challengeStatus = 0; gSaveBlock2Ptr->frontier.curChallengeBattleNum = 0; - gSaveBlock2Ptr->frontier.field_CA9_a = 0; + gSaveBlock2Ptr->frontier.challengePaused = FALSE; if (lvlMode != FRONTIER_LVL_50) - isCurrent = gSaveBlock2Ptr->frontier.field_CDC & 0x2000; + isCurrent = gSaveBlock2Ptr->frontier.winStreakActiveFlags & STREAK_PYRAMID_OPEN; else - isCurrent = gSaveBlock2Ptr->frontier.field_CDC & 0x1000; + isCurrent = gSaveBlock2Ptr->frontier.winStreakActiveFlags & STREAK_PYRAMID_50; if (!isCurrent) { @@ -875,9 +876,9 @@ static void GetBattlePyramidData(void) break; case 2: if (lvlMode != FRONTIER_LVL_50) - gSpecialVar_Result = gSaveBlock2Ptr->frontier.field_CDC & 0x2000; + gSpecialVar_Result = gSaveBlock2Ptr->frontier.winStreakActiveFlags & STREAK_PYRAMID_OPEN; else - gSpecialVar_Result = gSaveBlock2Ptr->frontier.field_CDC & 0x1000; + gSpecialVar_Result = gSaveBlock2Ptr->frontier.winStreakActiveFlags & STREAK_PYRAMID_50; break; case 3: gSpecialVar_Result = gSaveBlock2Ptr->frontier.pyramidWinStreaks[FRONTIER_LVL_50]; @@ -886,10 +887,10 @@ static void GetBattlePyramidData(void) gSpecialVar_Result = gSaveBlock2Ptr->frontier.pyramidWinStreaks[FRONTIER_LVL_OPEN]; break; case 5: - gSpecialVar_Result = gSaveBlock2Ptr->frontier.field_CDC & 0x1000; + gSpecialVar_Result = gSaveBlock2Ptr->frontier.winStreakActiveFlags & STREAK_PYRAMID_50; break; case 6: - gSpecialVar_Result = gSaveBlock2Ptr->frontier.field_CDC & 0x2000; + gSpecialVar_Result = gSaveBlock2Ptr->frontier.winStreakActiveFlags & STREAK_PYRAMID_OPEN; break; } } @@ -910,16 +911,16 @@ static void SetBattlePyramidData(void) if (lvlMode != FRONTIER_LVL_50) { if (gSpecialVar_0x8006) - gSaveBlock2Ptr->frontier.field_CDC |= 0x2000; + gSaveBlock2Ptr->frontier.winStreakActiveFlags |= STREAK_PYRAMID_OPEN; else - gSaveBlock2Ptr->frontier.field_CDC &= ~(0x2000); + gSaveBlock2Ptr->frontier.winStreakActiveFlags &= ~(STREAK_PYRAMID_OPEN); } else { if (gSpecialVar_0x8006) - gSaveBlock2Ptr->frontier.field_CDC |= 0x1000; + gSaveBlock2Ptr->frontier.winStreakActiveFlags |= STREAK_PYRAMID_50; else - gSaveBlock2Ptr->frontier.field_CDC &= ~(0x1000); + gSaveBlock2Ptr->frontier.winStreakActiveFlags &= ~(STREAK_PYRAMID_50); } break; case 7: @@ -930,9 +931,9 @@ static void SetBattlePyramidData(void) static void sub_81A9134(void) { - gSaveBlock2Ptr->frontier.challengeOutcome = gSpecialVar_0x8005; + gSaveBlock2Ptr->frontier.challengeStatus = gSpecialVar_0x8005; VarSet(VAR_TEMP_0, 0); - gSaveBlock2Ptr->frontier.field_CA9_a = 1; + gSaveBlock2Ptr->frontier.challengePaused = TRUE; save_serialize_map(); TrySavingData(SAVE_LINK); } @@ -1169,7 +1170,7 @@ static void ClearPyramidPartyHeldItems(void) for (i = 0; i < PARTY_SIZE; i++) { - for (j = 0; j < 4; j++) + for (j = 0; j < MAX_FRONTIER_PARTY_SIZE; j++) { if (gSaveBlock2Ptr->frontier.selectedPartyMons[j] != 0 && gSaveBlock2Ptr->frontier.selectedPartyMons[j] - 1 == i) SetMonData(&gPlayerParty[i], MON_DATA_HELD_ITEM, &item); @@ -1200,10 +1201,10 @@ static void RestorePyramidPlayerParty(void) { int i, j, k, l; - for (i = 0; i < 3; i++) + for (i = 0; i < FRONTIER_PARTY_SIZE; i++) { int partyIndex = gSaveBlock2Ptr->frontier.selectedPartyMons[i] - 1; - for (j = 0; j < 3; j++) + for (j = 0; j < FRONTIER_PARTY_SIZE; j++) { if (GetMonData(&gSaveBlock1Ptr->playerParty[partyIndex], MON_DATA_SPECIES, NULL) == GetMonData(&gPlayerParty[j], MON_DATA_SPECIES, NULL)) { @@ -1224,7 +1225,7 @@ static void RestorePyramidPlayerParty(void) } } - for (i = 0; i < 3; i++) + for (i = 0; i < FRONTIER_PARTY_SIZE; i++) gSaveBlock2Ptr->frontier.selectedPartyMons[i] = gSelectedOrderFromParty[i]; } @@ -1434,7 +1435,7 @@ void sub_81A9E90(void) if (InBattlePyramid()) { RestorePyramidPlayerParty(); - gSaveBlock2Ptr->frontier.challengeOutcome = 2; + gSaveBlock2Ptr->frontier.challengeStatus = CHALLENGE_STATUS_PAUSED; VarSet(VAR_TEMP_E, 0); LoadPlayerParty(); } diff --git a/src/battle_tent.c b/src/battle_tent.c index f9385571f..6e3df49a9 100644 --- a/src/battle_tent.c +++ b/src/battle_tent.c @@ -47,7 +47,7 @@ static void sub_81B9EC0(void); static u16 sRandMonSetId; // const rom data -void static (*const gUnknown_086160B4[])(void) = +void static (*const sVerdanturfTentFuncs[])(void) = { sub_81B99D4, sub_81B9A28, @@ -61,7 +61,7 @@ void static (*const gUnknown_086160B4[])(void) = static const u16 sVerdanturfTentRewards[] = {ITEM_NEST_BALL}; -void static (*const gUnknown_086160D8[])(void) = +void static (*const sFallarborTentFuncs[])(void) = { sub_81B9BA0, sub_81B9BF4, @@ -74,7 +74,7 @@ void static (*const gUnknown_086160D8[])(void) = static const u16 sFallarborTentRewards[] = {ITEM_HYPER_POTION}; -void static (*const gUnknown_086160F8[])(void) = +void static (*const sSlateportTentFuncs[])(void) = { sub_81B9D28, sub_81B9D7C, @@ -91,16 +91,16 @@ void static (*const gUnknown_086160F8[])(void) = static const u16 sSlateportTentRewards[] = {ITEM_FULL_HEAL}; // code -void sub_81B99B4(void) +void CallVerdanturfTentFunction(void) { - gUnknown_086160B4[gSpecialVar_0x8004](); + sVerdanturfTentFuncs[gSpecialVar_0x8004](); } static void sub_81B99D4(void) { - gSaveBlock2Ptr->frontier.challengeOutcome = 0; + gSaveBlock2Ptr->frontier.challengeStatus = 0; gSaveBlock2Ptr->frontier.curChallengeBattleNum = 0; - gSaveBlock2Ptr->frontier.field_CA9_a = FALSE; + gSaveBlock2Ptr->frontier.challengePaused = FALSE; SetDynamicWarp(0, gSaveBlock1Ptr->location.mapGroup, gSaveBlock1Ptr->location.mapNum, -1); } @@ -128,10 +128,10 @@ static void sub_81B9A90(void) static void sub_81B9ABC(void) { - gSaveBlock2Ptr->frontier.challengeOutcome = gSpecialVar_0x8005; + gSaveBlock2Ptr->frontier.challengeStatus = gSpecialVar_0x8005; VarSet(VAR_TEMP_0, 0); - gSaveBlock2Ptr->frontier.field_CA9_a = TRUE; - sub_81A4C30(); + gSaveBlock2Ptr->frontier.challengePaused = TRUE; + SaveGameFrontier(); } static void sub_81B9B00(void) @@ -153,16 +153,16 @@ static void sub_81B9B28(void) } } -void sub_81B9B80(void) +void CallFallarborTentFunction(void) { - gUnknown_086160D8[gSpecialVar_0x8004](); + sFallarborTentFuncs[gSpecialVar_0x8004](); } static void sub_81B9BA0(void) { - gSaveBlock2Ptr->frontier.challengeOutcome = 0; + gSaveBlock2Ptr->frontier.challengeStatus = 0; gSaveBlock2Ptr->frontier.curChallengeBattleNum = 0; - gSaveBlock2Ptr->frontier.field_CA9_a = FALSE; + gSaveBlock2Ptr->frontier.challengePaused = FALSE; SetDynamicWarp(0, gSaveBlock1Ptr->location.mapGroup, gSaveBlock1Ptr->location.mapNum, -1); } @@ -178,10 +178,10 @@ static void sub_81B9C10(void) static void sub_81B9C2C(void) { - gSaveBlock2Ptr->frontier.challengeOutcome = gSpecialVar_0x8005; + gSaveBlock2Ptr->frontier.challengeStatus = gSpecialVar_0x8005; VarSet(VAR_TEMP_0, 0); - gSaveBlock2Ptr->frontier.field_CA9_a = TRUE; - sub_81A4C30(); + gSaveBlock2Ptr->frontier.challengePaused = TRUE; + SaveGameFrontier(); } static void sub_81B9C70(void) @@ -208,16 +208,16 @@ static void sub_81B9CF0(void) GetFrontierTrainerName(gStringVar1, gTrainerBattleOpponent_A); } -void sub_81B9D08(void) +void CallSlateportTentFunction(void) { - gUnknown_086160F8[gSpecialVar_0x8004](); + sSlateportTentFuncs[gSpecialVar_0x8004](); } static void sub_81B9D28(void) { - gSaveBlock2Ptr->frontier.challengeOutcome = 0; + gSaveBlock2Ptr->frontier.challengeStatus = 0; gSaveBlock2Ptr->frontier.curChallengeBattleNum = 0; - gSaveBlock2Ptr->frontier.field_CA9_a = FALSE; + gSaveBlock2Ptr->frontier.challengePaused = FALSE; SetDynamicWarp(0, gSaveBlock1Ptr->location.mapGroup, gSaveBlock1Ptr->location.mapNum, -1); } @@ -233,10 +233,10 @@ static void sub_81B9D98(void) static void sub_81B9DB4(void) { - gSaveBlock2Ptr->frontier.challengeOutcome = gSpecialVar_0x8005; + gSaveBlock2Ptr->frontier.challengeStatus = gSpecialVar_0x8005; VarSet(VAR_TEMP_0, 0); - gSaveBlock2Ptr->frontier.field_CA9_a = TRUE; - sub_81A4C30(); + gSaveBlock2Ptr->frontier.challengePaused = TRUE; + SaveGameFrontier(); } static void sub_81B9DF8(void) diff --git a/src/battle_tower.c b/src/battle_tower.c index 151610035..c8b243ad0 100644 --- a/src/battle_tower.c +++ b/src/battle_tower.c @@ -25,6 +25,7 @@ #include "battle_factory.h" #include "constants/battle_frontier.h" #include "constants/battle_tower.h" +#include "constants/frontier_util.h" #include "constants/items.h" #include "constants/trainers.h" #include "constants/event_objects.h" @@ -200,7 +201,7 @@ const u8 gTowerFemaleFacilityClasses[20] = FACILITY_CLASS_PARASOL_LADY, FACILITY_CLASS_SWIMMER_F, FACILITY_CLASS_PICNICKER, - FACILITY_CLASS_POKEMON_BREEDER_F, + FACILITY_CLASS_PKMN_BREEDER_F, FACILITY_CLASS_PKMN_RANGER_F, FACILITY_CLASS_LASS }; @@ -263,83 +264,84 @@ const u8 gTowerFemaleTrainerGfxIds[20] = EVENT_OBJ_GFX_LASS }; -static const u8 sRubyFacilityClassToEmerald[][2] = -{ - {0x00, FACILITY_CLASS_AQUA_LEADER_ARCHIE}, - {0x01, FACILITY_CLASS_AQUA_GRUNT_M}, - {0x02, FACILITY_CLASS_AQUA_GRUNT_F}, - {0x03, FACILITY_CLASS_AROMA_LADY}, - {0x04, FACILITY_CLASS_RUIN_MANIAC}, - {0x05, FACILITY_CLASS_INTERVIEWER}, - {0x06, FACILITY_CLASS_TUBER_F}, - {0x07, FACILITY_CLASS_TUBER_M}, - {0x08, FACILITY_CLASS_COOLTRAINER_M}, - {0x09, FACILITY_CLASS_COOLTRAINER_F}, - {0x0a, FACILITY_CLASS_HEX_MANIAC}, - {0x0b, FACILITY_CLASS_LADY}, - {0x0c, FACILITY_CLASS_BEAUTY}, - {0x0d, FACILITY_CLASS_RICH_BOY}, - {0x0e, FACILITY_CLASS_POKEMANIAC}, - {0x0f, FACILITY_CLASS_SWIMMER_M}, - {0x10, FACILITY_CLASS_BLACK_BELT}, - {0x11, FACILITY_CLASS_GUITARIST}, - {0x12, FACILITY_CLASS_KINDLER}, - {0x13, FACILITY_CLASS_CAMPER}, - {0x14, FACILITY_CLASS_BUG_MANIAC}, - {0x15, FACILITY_CLASS_PSYCHIC_M}, - {0x16, FACILITY_CLASS_PSYCHIC_F}, - {0x17, FACILITY_CLASS_GENTLEMAN}, - {0x18, FACILITY_CLASS_ELITE_FOUR_SIDNEY}, - {0x19, FACILITY_CLASS_ELITE_FOUR_PHOEBE}, - {0x1a, FACILITY_CLASS_LEADER_ROXANNE}, - {0x1b, FACILITY_CLASS_LEADER_BRAWLY}, - {0x1c, FACILITY_CLASS_LEADER_TATE_AND_LIZA}, - {0x1d, FACILITY_CLASS_SCHOOL_KID_M}, - {0x1e, FACILITY_CLASS_SCHOOL_KID_F}, - {0x1f, FACILITY_CLASS_SR_AND_JR}, - {0x20, FACILITY_CLASS_POKEFAN_M}, - {0x21, FACILITY_CLASS_POKEFAN_F}, - {0x22, FACILITY_CLASS_EXPERT_M}, - {0x23, FACILITY_CLASS_EXPERT_F}, - {0x24, FACILITY_CLASS_YOUNGSTER}, - {0x25, FACILITY_CLASS_CHAMPION_WALLACE}, - {0x26, FACILITY_CLASS_FISHERMAN}, - {0x27, FACILITY_CLASS_CYCLING_TRIATHLETE_M}, - {0x28, FACILITY_CLASS_CYCLING_TRIATHLETE_F}, - {0x29, FACILITY_CLASS_RUNNING_TRIATHLETE_M}, - {0x2a, FACILITY_CLASS_RUNNING_TRIATHLETE_F}, - {0x2b, FACILITY_CLASS_SWIMMING_TRIATHLETE_M}, - {0x2c, FACILITY_CLASS_SWIMMING_TRIATHLETE_F}, - {0x2d, FACILITY_CLASS_DRAGON_TAMER}, - {0x2e, FACILITY_CLASS_BIRD_KEEPER}, - {0x2f, FACILITY_CLASS_NINJA_BOY}, - {0x30, FACILITY_CLASS_BATTLE_GIRL}, - {0x31, FACILITY_CLASS_PARASOL_LADY}, - {0x32, FACILITY_CLASS_SWIMMER_F}, - {0x33, FACILITY_CLASS_PICNICKER}, - {0x34, FACILITY_CLASS_TWINS}, - {0x35, FACILITY_CLASS_SAILOR}, - {0x38, FACILITY_CLASS_COLLECTOR}, - {0x39, FACILITY_CLASS_WALLY}, - {0x3a, FACILITY_CLASS_BRENDAN}, - {0x3b, FACILITY_CLASS_BRENDAN_2}, - {0x3c, FACILITY_CLASS_BRENDAN_3}, - {0x3d, FACILITY_CLASS_MAY}, - {0x3e, FACILITY_CLASS_MAY_2}, - {0x3f, FACILITY_CLASS_MAY_3}, - {0x40, FACILITY_CLASS_PKMN_BREEDER_M}, - {0x41, FACILITY_CLASS_POKEMON_BREEDER_F}, - {0x42, FACILITY_CLASS_PKMN_RANGER_M}, - {0x43, FACILITY_CLASS_PKMN_RANGER_F}, - {0x44, FACILITY_CLASS_MAGMA_LEADER_MAXIE}, - {0x45, FACILITY_CLASS_MAGMA_GRUNT_M}, - {0x46, FACILITY_CLASS_MAGMA_GRUNT_F}, - {0x47, FACILITY_CLASS_LASS}, - {0x48, FACILITY_CLASS_BUG_CATCHER}, - {0x49, FACILITY_CLASS_HIKER}, - {0x4a, FACILITY_CLASS_YOUNG_COUPLE}, - {0x4b, FACILITY_CLASS_OLD_COUPLE}, - {0x4c, FACILITY_CLASS_SIS_AND_BRO}, +// Excludes the unused RS_FACILITY_CLASS_BOARDER_1 and _2 +static const u8 sRubyFacilityClassToEmerald[RS_FACILITY_CLASSES_COUNT - 2][2] = +{ + {RS_FACILITY_CLASS_AQUA_LEADER_ARCHIE, FACILITY_CLASS_AQUA_LEADER_ARCHIE}, + {RS_FACILITY_CLASS_AQUA_GRUNT_M, FACILITY_CLASS_AQUA_GRUNT_M}, + {RS_FACILITY_CLASS_AQUA_GRUNT_F, FACILITY_CLASS_AQUA_GRUNT_F}, + {RS_FACILITY_CLASS_AROMA_LADY, FACILITY_CLASS_AROMA_LADY}, + {RS_FACILITY_CLASS_RUIN_MANIAC, FACILITY_CLASS_RUIN_MANIAC}, + {RS_FACILITY_CLASS_INTERVIEWER, FACILITY_CLASS_INTERVIEWER}, + {RS_FACILITY_CLASS_TUBER_F, FACILITY_CLASS_TUBER_F}, + {RS_FACILITY_CLASS_TUBER_M, FACILITY_CLASS_TUBER_M}, + {RS_FACILITY_CLASS_COOLTRAINER_M, FACILITY_CLASS_COOLTRAINER_M}, + {RS_FACILITY_CLASS_COOLTRAINER_F, FACILITY_CLASS_COOLTRAINER_F}, + {RS_FACILITY_CLASS_HEX_MANIAC, FACILITY_CLASS_HEX_MANIAC}, + {RS_FACILITY_CLASS_LADY, FACILITY_CLASS_LADY}, + {RS_FACILITY_CLASS_BEAUTY, FACILITY_CLASS_BEAUTY}, + {RS_FACILITY_CLASS_RICH_BOY, FACILITY_CLASS_RICH_BOY}, + {RS_FACILITY_CLASS_POKEMANIAC, FACILITY_CLASS_POKEMANIAC}, + {RS_FACILITY_CLASS_SWIMMER_M, FACILITY_CLASS_SWIMMER_M}, + {RS_FACILITY_CLASS_BLACK_BELT, FACILITY_CLASS_BLACK_BELT}, + {RS_FACILITY_CLASS_GUITARIST, FACILITY_CLASS_GUITARIST}, + {RS_FACILITY_CLASS_KINDLER, FACILITY_CLASS_KINDLER}, + {RS_FACILITY_CLASS_CAMPER, FACILITY_CLASS_CAMPER}, + {RS_FACILITY_CLASS_BUG_MANIAC, FACILITY_CLASS_BUG_MANIAC}, + {RS_FACILITY_CLASS_PSYCHIC_M, FACILITY_CLASS_PSYCHIC_M}, + {RS_FACILITY_CLASS_PSYCHIC_F, FACILITY_CLASS_PSYCHIC_F}, + {RS_FACILITY_CLASS_GENTLEMAN, FACILITY_CLASS_GENTLEMAN}, + {RS_FACILITY_CLASS_ELITE_FOUR_M, FACILITY_CLASS_ELITE_FOUR_SIDNEY}, + {RS_FACILITY_CLASS_ELITE_FOUR_F, FACILITY_CLASS_ELITE_FOUR_PHOEBE}, + {RS_FACILITY_CLASS_LEADER_F, FACILITY_CLASS_LEADER_ROXANNE}, + {RS_FACILITY_CLASS_LEADER_M, FACILITY_CLASS_LEADER_BRAWLY}, + {RS_FACILITY_CLASS_LEADER_MF, FACILITY_CLASS_LEADER_TATE_AND_LIZA}, + {RS_FACILITY_CLASS_SCHOOL_KID_M, FACILITY_CLASS_SCHOOL_KID_M}, + {RS_FACILITY_CLASS_SCHOOL_KID_F, FACILITY_CLASS_SCHOOL_KID_F}, + {RS_FACILITY_CLASS_SR_AND_JR, FACILITY_CLASS_SR_AND_JR}, + {RS_FACILITY_CLASS_POKEFAN_M, FACILITY_CLASS_POKEFAN_M}, + {RS_FACILITY_CLASS_POKEFAN_F, FACILITY_CLASS_POKEFAN_F}, + {RS_FACILITY_CLASS_EXPERT_M, FACILITY_CLASS_EXPERT_M}, + {RS_FACILITY_CLASS_EXPERT_F, FACILITY_CLASS_EXPERT_F}, + {RS_FACILITY_CLASS_YOUNGSTER, FACILITY_CLASS_YOUNGSTER}, + {RS_FACILITY_CLASS_CHAMPION, FACILITY_CLASS_CHAMPION_WALLACE}, + {RS_FACILITY_CLASS_FISHERMAN, FACILITY_CLASS_FISHERMAN}, + {RS_FACILITY_CLASS_CYCLING_TRIATHLETE_M, FACILITY_CLASS_CYCLING_TRIATHLETE_M}, + {RS_FACILITY_CLASS_CYCLING_TRIATHLETE_F, FACILITY_CLASS_CYCLING_TRIATHLETE_F}, + {RS_FACILITY_CLASS_RUNNING_TRIATHLETE_M, FACILITY_CLASS_RUNNING_TRIATHLETE_M}, + {RS_FACILITY_CLASS_RUNNING_TRIATHLETE_F, FACILITY_CLASS_RUNNING_TRIATHLETE_F}, + {RS_FACILITY_CLASS_SWIMMING_TRIATHLETE_M, FACILITY_CLASS_SWIMMING_TRIATHLETE_M}, + {RS_FACILITY_CLASS_SWIMMING_TRIATHLETE_F, FACILITY_CLASS_SWIMMING_TRIATHLETE_F}, + {RS_FACILITY_CLASS_DRAGON_TAMER, FACILITY_CLASS_DRAGON_TAMER}, + {RS_FACILITY_CLASS_BIRD_KEEPER, FACILITY_CLASS_BIRD_KEEPER}, + {RS_FACILITY_CLASS_NINJA_BOY, FACILITY_CLASS_NINJA_BOY}, + {RS_FACILITY_CLASS_BATTLE_GIRL, FACILITY_CLASS_BATTLE_GIRL}, + {RS_FACILITY_CLASS_PARASOL_LADY, FACILITY_CLASS_PARASOL_LADY}, + {RS_FACILITY_CLASS_SWIMMER_F, FACILITY_CLASS_SWIMMER_F}, + {RS_FACILITY_CLASS_PICNICKER, FACILITY_CLASS_PICNICKER}, + {RS_FACILITY_CLASS_TWINS, FACILITY_CLASS_TWINS}, + {RS_FACILITY_CLASS_SAILOR, FACILITY_CLASS_SAILOR}, + {RS_FACILITY_CLASS_COLLECTOR, FACILITY_CLASS_COLLECTOR}, + {RS_FACILITY_CLASS_WALLY, FACILITY_CLASS_WALLY}, + {RS_FACILITY_CLASS_BRENDAN_1, FACILITY_CLASS_BRENDAN}, + {RS_FACILITY_CLASS_BRENDAN_2, FACILITY_CLASS_BRENDAN_2}, + {RS_FACILITY_CLASS_BRENDAN_3, FACILITY_CLASS_BRENDAN_3}, + {RS_FACILITY_CLASS_MAY_1, FACILITY_CLASS_MAY}, + {RS_FACILITY_CLASS_MAY_2, FACILITY_CLASS_MAY_2}, + {RS_FACILITY_CLASS_MAY_3, FACILITY_CLASS_MAY_3}, + {RS_FACILITY_CLASS_PKMN_BREEDER_M, FACILITY_CLASS_PKMN_BREEDER_M}, + {RS_FACILITY_CLASS_PKMN_BREEDER_F, FACILITY_CLASS_PKMN_BREEDER_F}, + {RS_FACILITY_CLASS_PKMN_RANGER_M, FACILITY_CLASS_PKMN_RANGER_M}, + {RS_FACILITY_CLASS_PKMN_RANGER_F, FACILITY_CLASS_PKMN_RANGER_F}, + {RS_FACILITY_CLASS_MAGMA_LEADER, FACILITY_CLASS_MAGMA_LEADER_MAXIE}, + {RS_FACILITY_CLASS_MAGMA_GRUNT_M, FACILITY_CLASS_MAGMA_GRUNT_M}, + {RS_FACILITY_CLASS_MAGMA_GRUNT_F, FACILITY_CLASS_MAGMA_GRUNT_F}, + {RS_FACILITY_CLASS_LASS, FACILITY_CLASS_LASS}, + {RS_FACILITY_CLASS_BUG_CATCHER, FACILITY_CLASS_BUG_CATCHER}, + {RS_FACILITY_CLASS_HIKER, FACILITY_CLASS_HIKER}, + {RS_FACILITY_CLASS_YOUNG_COUPLE, FACILITY_CLASS_YOUNG_COUPLE}, + {RS_FACILITY_CLASS_OLD_COUPLE, FACILITY_CLASS_OLD_COUPLE}, + {RS_FACILITY_CLASS_SIS_AND_BRO, FACILITY_CLASS_SIS_AND_BRO}, }; static const u8 *const gUnknown_085DCFD8[] = @@ -986,7 +988,7 @@ struct {FACILITY_CLASS_PSYCHIC_M, gUnknown_085DD44C}, {FACILITY_CLASS_PSYCHIC_F, gUnknown_085DD460}, {FACILITY_CLASS_SCHOOL_KID_F, gUnknown_085DD474}, - {FACILITY_CLASS_POKEMON_BREEDER_F, gUnknown_085DD488}, + {FACILITY_CLASS_PKMN_BREEDER_F, gUnknown_085DD488}, {FACILITY_CLASS_POKEFAN_F, gUnknown_085DD49C}, {FACILITY_CLASS_SWIMMER_F, gUnknown_085DD4B0}, {FACILITY_CLASS_SWIMMING_TRIATHLETE_M, gUnknown_085DD4C4}, @@ -1072,20 +1074,20 @@ static void (* const sBattleTowerFuncs[])(void) = [BATTLE_TOWER_FUNC_15] = sub_8164E04, }; -static const u32 gUnknown_085DF9AC[][2] = +static const u32 sWinStreakFlags[][2] = { - {0x00000001, 0x00000002}, - {0x00004000, 0x00008000}, - {0x00010000, 0x00020000}, - {0x00040000, 0x00080000}, + {STREAK_TOWER_SINGLES_50, STREAK_TOWER_SINGLES_OPEN}, + {STREAK_TOWER_DOUBLES_50, STREAK_TOWER_DOUBLES_OPEN}, + {STREAK_TOWER_MULTIS_50, STREAK_TOWER_MULTIS_OPEN}, + {STREAK_TOWER_LINK_MULTIS_50, STREAK_TOWER_LINK_MULTIS_OPEN}, }; -static const u32 gUnknown_085DF9CC[][2] = +static const u32 sWinStreakMasks[][2] = { - {0xfffffffe, 0xfffffffd}, - {0xffffbfff, 0xffff7fff}, - {0xfffeffff, 0xfffdffff}, - {0xfffbffff, 0xfff7ffff}, + {~(STREAK_TOWER_SINGLES_50), ~(STREAK_TOWER_SINGLES_OPEN)}, + {~(STREAK_TOWER_DOUBLES_50), ~(STREAK_TOWER_DOUBLES_OPEN)}, + {~(STREAK_TOWER_MULTIS_50), ~(STREAK_TOWER_MULTIS_OPEN)}, + {~(STREAK_TOWER_LINK_MULTIS_50), ~(STREAK_TOWER_LINK_MULTIS_OPEN)}, }; static const u8 gUnknown_085DF9EC[] = @@ -1093,12 +1095,13 @@ static const u8 gUnknown_085DF9EC[] = 0x01, 0x02, 0x03, 0x04, 0x05, 0x08, 0x09, 0x0a, 0x0b, 0x0c }; -static const u8 gUnknown_085DF9F6[] = +// Unclear why this was duplicated +static const u8 sBattleTowerPartySizes2[] = { - [FRONTIER_MODE_SINGLES] = 3, - [FRONTIER_MODE_DOUBLES] = 4, - [FRONTIER_MODE_MULTIS] = 2, - [FRONTIER_MODE_LINK_MULTIS] = 2, + [FRONTIER_MODE_SINGLES] = FRONTIER_PARTY_SIZE, + [FRONTIER_MODE_DOUBLES] = FRONTIER_DOUBLES_PARTY_SIZE, + [FRONTIER_MODE_MULTIS] = FRONTIER_MULTI_PARTY_SIZE, + [FRONTIER_MODE_LINK_MULTIS] = FRONTIER_MULTI_PARTY_SIZE, }; static const u16 gUnknown_085DF9FA[][2] = @@ -1127,22 +1130,22 @@ static const u16 gUnknown_085DFA1A[][2] = {0x00c8, 0x00b7}, }; -static const u8 gUnknown_085DFA42[4] = +static const u8 sBattleTowerPartySizes[FRONTIER_MODE_COUNT] = { - [FRONTIER_MODE_SINGLES] = 3, - [FRONTIER_MODE_DOUBLES] = 4, - [FRONTIER_MODE_MULTIS] = 2, - [FRONTIER_MODE_LINK_MULTIS] = 2, + [FRONTIER_MODE_SINGLES] = FRONTIER_PARTY_SIZE, + [FRONTIER_MODE_DOUBLES] = FRONTIER_DOUBLES_PARTY_SIZE, + [FRONTIER_MODE_MULTIS] = FRONTIER_MULTI_PARTY_SIZE, + [FRONTIER_MODE_LINK_MULTIS] = FRONTIER_MULTI_PARTY_SIZE, }; -static const u16 gUnknown_085DFA46[] = +static const u16 sRecordTrainerSpeechWon[] = { - 0x0c3a, 0x0c3a, 0x0c01, 0x0a2a, 0x0607, 0x0c01 + EC_WORD_YAY, EC_WORD_YAY, EC_WORD_EXCL_EXCL, EC_WORD_I_VE, EC_WORD_WON, EC_WORD_EXCL_EXCL }; -static const u16 gUnknown_085DFA52[] = +static const u16 sRecordTrainerSpeechLost[] = { - 0x1039, 0x122e, 0x0c04, 0x0a3d, 0x0630, 0x0c04 + EC_WORD_TOO, EC_WORD_BAD, EC_WORD_ELLIPSIS, EC_WORD_WE, EC_WORD_LOST, EC_WORD_ELLIPSIS }; // code @@ -1156,12 +1159,12 @@ static void sub_8161F94(void) u32 lvlMode = gSaveBlock2Ptr->frontier.lvlMode; u32 battleMode = VarGet(VAR_FRONTIER_BATTLE_MODE); - gSaveBlock2Ptr->frontier.challengeOutcome = 1; + gSaveBlock2Ptr->frontier.challengeStatus = CHALLENGE_STATUS_SAVING; gSaveBlock2Ptr->frontier.curChallengeBattleNum = 0; - gSaveBlock2Ptr->frontier.field_CA9_a = 0; + gSaveBlock2Ptr->frontier.challengePaused = FALSE; gSaveBlock2Ptr->frontier.field_CA9_b = 0; - sub_81A3ACC(); - if (!(gSaveBlock2Ptr->frontier.field_CDC & gUnknown_085DF9AC[battleMode][lvlMode])) + ResetFrontierTrainerIds(); + if (!(gSaveBlock2Ptr->frontier.winStreakActiveFlags & sWinStreakFlags[battleMode][lvlMode])) gSaveBlock2Ptr->frontier.towerWinStreaks[battleMode][lvlMode] = 0; ValidateBattleTowerRecordChecksums(); @@ -1182,10 +1185,10 @@ static void sub_8162054(void) gSpecialVar_Result = GetCurrentBattleTowerWinStreak(lvlMode, battleMode); break; case 2: - gSpecialVar_Result = ((gSaveBlock2Ptr->frontier.field_CDC & gUnknown_085DF9AC[battleMode][lvlMode]) != 0); + gSpecialVar_Result = ((gSaveBlock2Ptr->frontier.winStreakActiveFlags & sWinStreakFlags[battleMode][lvlMode]) != 0); break; case 3: - gSaveBlock2Ptr->frontier.field_D07 = gSaveBlock2Ptr->frontier.lvlMode; + gSaveBlock2Ptr->frontier.towerLvlMode = gSaveBlock2Ptr->frontier.lvlMode; break; } } @@ -1204,12 +1207,12 @@ static void sub_81620F4(void) break; case 2: if (gSpecialVar_0x8006) - gSaveBlock2Ptr->frontier.field_CDC |= gUnknown_085DF9AC[battleMode][lvlMode]; + gSaveBlock2Ptr->frontier.winStreakActiveFlags |= sWinStreakFlags[battleMode][lvlMode]; else - gSaveBlock2Ptr->frontier.field_CDC &= gUnknown_085DF9CC[battleMode][lvlMode]; + gSaveBlock2Ptr->frontier.winStreakActiveFlags &= sWinStreakMasks[battleMode][lvlMode]; break; case 3: - gSaveBlock2Ptr->frontier.field_D07 = gSaveBlock2Ptr->frontier.lvlMode; + gSaveBlock2Ptr->frontier.towerLvlMode = gSaveBlock2Ptr->frontier.lvlMode; break; } } @@ -1219,8 +1222,9 @@ static void sub_81621C0(void) if (gTrainerBattleOpponent_A == TRAINER_EREADER) ClearEReaderTrainer(&gSaveBlock2Ptr->frontier.ereaderTrainer); - if (gSaveBlock2Ptr->frontier.field_D04 < 9999) - gSaveBlock2Ptr->frontier.field_D04++; + // below field is never read outside this conditional + if (gSaveBlock2Ptr->frontier.towerNumWins < MAX_STREAK) + gSaveBlock2Ptr->frontier.towerNumWins++; gSaveBlock2Ptr->frontier.curChallengeBattleNum++; SaveCurrentWinStreak(); @@ -1258,7 +1262,7 @@ static bool8 ChooseSpecialBattleTowerTrainer(void) validMons++; } - if (validMons >= gUnknown_085DF9F6[battleMode] + if (validMons >= sBattleTowerPartySizes2[battleMode] && gSaveBlock2Ptr->frontier.towerRecords[i].winStreak == winStreak && gSaveBlock2Ptr->frontier.towerRecords[i].lvlMode == lvlMode && recordHasData @@ -2244,21 +2248,21 @@ void DoSpecialTrainerBattle(void) switch (VarGet(VAR_FRONTIER_BATTLE_MODE)) { case FRONTIER_MODE_SINGLES: - FillFrontierTrainerParty(3); + FillFrontierTrainerParty(FRONTIER_PARTY_SIZE); break; case FRONTIER_MODE_DOUBLES: - FillFrontierTrainerParty(4); + FillFrontierTrainerParty(FRONTIER_DOUBLES_PARTY_SIZE); gBattleTypeFlags |= BATTLE_TYPE_DOUBLE; break; case FRONTIER_MODE_MULTIS: - FillFrontierTrainersParties(2); + FillFrontierTrainersParties(FRONTIER_MULTI_PARTY_SIZE); gPartnerTrainerId = gSaveBlock2Ptr->frontier.trainerIds[17]; FillPartnerParty(gPartnerTrainerId); gBattleTypeFlags |= BATTLE_TYPE_DOUBLE | BATTLE_TYPE_INGAME_PARTNER | BATTLE_TYPE_MULTI | BATTLE_TYPE_TWO_OPPONENTS; break; case FRONTIER_MODE_LINK_MULTIS: gBattleTypeFlags |= BATTLE_TYPE_DOUBLE | BATTLE_TYPE_LINK | BATTLE_TYPE_MULTI | BATTLE_TYPE_x800000; - FillFrontierTrainersParties(2); + FillFrontierTrainersParties(FRONTIER_MULTI_PARTY_SIZE); break; } CreateTask(Task_StartBattleAfterTransition, 1); @@ -2300,9 +2304,9 @@ void DoSpecialTrainerBattle(void) if (VarGet(VAR_FRONTIER_BATTLE_MODE) == FRONTIER_MODE_DOUBLES) gBattleTypeFlags |= BATTLE_TYPE_DOUBLE; if (gSaveBlock2Ptr->frontier.lvlMode != FRONTIER_LVL_TENT) - FillFrontierTrainerParty(3); + FillFrontierTrainerParty(FRONTIER_PARTY_SIZE); else - FillTentTrainerParty(3); + FillTentTrainerParty(FRONTIER_PARTY_SIZE); CreateTask(Task_StartBattleAfterTransition, 1); PlayMapChosenOrBattleBGM(0); BattleTransition_StartOnField(sub_80B100C(4)); @@ -2310,9 +2314,9 @@ void DoSpecialTrainerBattle(void) case SPECIAL_BATTLE_ARENA: gBattleTypeFlags = BATTLE_TYPE_TRAINER | BATTLE_TYPE_ARENA; if (gSaveBlock2Ptr->frontier.lvlMode != FRONTIER_LVL_TENT) - FillFrontierTrainerParty(3); + FillFrontierTrainerParty(FRONTIER_PARTY_SIZE); else - FillTentTrainerParty(3); + FillTentTrainerParty(FRONTIER_PARTY_SIZE); CreateTask(Task_StartBattleAfterTransition, 1); PlayMapChosenOrBattleBGM(0); BattleTransition_StartOnField(sub_80B100C(5)); @@ -2328,14 +2332,14 @@ void DoSpecialTrainerBattle(void) break; case SPECIAL_BATTLE_PIKE_SINGLE: gBattleTypeFlags = BATTLE_TYPE_TRAINER | BATTLE_TYPE_BATTLE_TOWER; - FillFrontierTrainerParty(3); + FillFrontierTrainerParty(FRONTIER_PARTY_SIZE); CreateTask(Task_StartBattleAfterTransition, 1); PlayMapChosenOrBattleBGM(0); BattleTransition_StartOnField(sub_80B100C(7)); break; case SPECIAL_BATTLE_PYRAMID: gBattleTypeFlags = BATTLE_TYPE_TRAINER | BATTLE_TYPE_PYRAMID; - FillFrontierTrainerParty(3); + FillFrontierTrainerParty(FRONTIER_PARTY_SIZE); CreateTask(Task_StartBattleAfterTransition, 1); PlayMapChosenOrBattleBGM(0); BattleTransition_StartOnField(sub_80B100C(10)); @@ -2408,7 +2412,7 @@ static void sub_8163EE4(void) playerRecord->speechLost[i] = gSaveBlock1Ptr->easyChatBattleLost[i]; } - for (i = 0; i < 4; i++) + for (i = 0; i < MAX_FRONTIER_PARTY_SIZE; i++) { if (gSaveBlock2Ptr->frontier.selectedPartyMons[i] != 0) sub_80686FC(&gPlayerParty[gSaveBlock2Ptr->frontier.selectedPartyMons[i] - 1], &playerRecord->party[i]); @@ -2428,10 +2432,10 @@ static void SaveBattleTowerProgress(void) if (gSpecialVar_0x8005 == 0 && (challengeNum > 1 || gSaveBlock2Ptr->frontier.curChallengeBattleNum != 0)) sub_8163EE4(); - gSaveBlock2Ptr->frontier.challengeOutcome =gSpecialVar_0x8005; + gSaveBlock2Ptr->frontier.challengeStatus = gSpecialVar_0x8005; VarSet(VAR_TEMP_0, 0); - gSaveBlock2Ptr->frontier.field_CA9_a = 1; - sub_81A4C30(); + gSaveBlock2Ptr->frontier.challengePaused = TRUE; + SaveGameFrontier(); } static void nullsub_61(void) @@ -2895,13 +2899,13 @@ static void sub_8164E04(void) GetFrontierTrainerName(text, gTrainerBattleOpponent_A); StripExtCtrlCodes(text); - StringCopy(gSaveBlock2Ptr->frontier.field_BD8, text); - GetBattleTowerTrainerLanguage(&gSaveBlock2Ptr->frontier.field_BEB, gTrainerBattleOpponent_A); - gSaveBlock2Ptr->frontier.field_BD6 = GetMonData(&gEnemyParty[gBattlerPartyIndexes[1]], MON_DATA_SPECIES, NULL); - gSaveBlock2Ptr->frontier.field_BD4 = GetMonData(&gPlayerParty[gBattlerPartyIndexes[0]], MON_DATA_SPECIES, NULL); + StringCopy(gSaveBlock2Ptr->frontier.towerInterview.opponentName, text); + GetBattleTowerTrainerLanguage(&gSaveBlock2Ptr->frontier.towerInterview.opponentLanguage, gTrainerBattleOpponent_A); + gSaveBlock2Ptr->frontier.towerInterview.opponentSpecies = GetMonData(&gEnemyParty[gBattlerPartyIndexes[1]], MON_DATA_SPECIES, NULL); + gSaveBlock2Ptr->frontier.towerInterview.playerSpecies = GetMonData(&gPlayerParty[gBattlerPartyIndexes[0]], MON_DATA_SPECIES, NULL); for (i = 0; i < POKEMON_NAME_LENGTH + 1; i++) - gSaveBlock2Ptr->frontier.field_BE0[i] = gBattleMons[0].nickname[i]; - gSaveBlock2Ptr->frontier.field_D06 = gBattleOutcome; + gSaveBlock2Ptr->frontier.towerInterview.opponentMonNickname[i] = gBattleMons[0].nickname[i]; + gSaveBlock2Ptr->frontier.towerBattleOutcome = gBattleOutcome; } static void ValidateBattleTowerRecordChecksums(void) @@ -2968,13 +2972,13 @@ u16 GetCurrentBattleTowerWinStreak(u8 lvlMode, u8 battleMode) static u8 GetMonCountForBattleMode(u8 battleMode) { - u8 sp[ARRAY_COUNT(gUnknown_085DFA42)]; - memcpy(sp, gUnknown_085DFA42, sizeof(gUnknown_085DFA42)); + u8 partySizes[ARRAY_COUNT(sBattleTowerPartySizes)]; + memcpy(partySizes, sBattleTowerPartySizes, sizeof(sBattleTowerPartySizes)); - if (battleMode < ARRAY_COUNT(gUnknown_085DFA42)) - return sp[battleMode]; + if (battleMode < ARRAY_COUNT(sBattleTowerPartySizes)) + return partySizes[battleMode]; else - return 3; + return FRONTIER_PARTY_SIZE; } struct RibbonCounter @@ -3158,7 +3162,7 @@ static void CopyEReaderTrainerFarewellMessage(void) void sub_81653CC(void) { - if (gSaveBlock2Ptr->frontier.challengeOutcome == 1) + if (gSaveBlock2Ptr->frontier.challengeStatus == CHALLENGE_STATUS_SAVING) sub_80F01B8(); if (FlagGet(FLAG_CANCEL_BATTLE_ROOM_CHALLENGE) == TRUE) { @@ -3282,13 +3286,13 @@ bool32 RubyBattleTowerRecordToEmerald(struct RSBattleTowerRecord *src, struct Em { s32 i, validMons = 0; - for (i = 0; i < 3; i++) + for (i = 0; i < FRONTIER_PARTY_SIZE; i++) { if (src->party[i].species) validMons++; } - if (validMons != 3) + if (validMons != FRONTIER_PARTY_SIZE) { memset(dst, 0, sizeof(*dst)); return FALSE; @@ -3298,6 +3302,7 @@ bool32 RubyBattleTowerRecordToEmerald(struct RSBattleTowerRecord *src, struct Em dst->lvlMode = src->lvlMode; dst->winStreak = src->winStreak; // BUG: Reading outside the array. sRubyFacilityClassToEmerald has less than FACILITY_CLASSES_COUNT entries. + // Fix by using ARRAY_COUNT(sRubyFacilityClassToEmerald) for (i = 0; i < FACILITY_CLASSES_COUNT; i++) { if (sRubyFacilityClassToEmerald[i][0] == src->facilityClass) @@ -3312,16 +3317,16 @@ bool32 RubyBattleTowerRecordToEmerald(struct RSBattleTowerRecord *src, struct Em dst->name[i] = src->name[i]; for (i = 0; i < TRAINER_ID_LENGTH; i++) dst->trainerId[i] = src->trainerId[i]; - for (i = 0; i < 6; i++) + for (i = 0; i < EASY_CHAT_BATTLE_WORDS_COUNT; i++) dst->greeting[i] = src->greeting[i]; - for (i = 0; i < 6; i++) - dst->speechWon[i] = gUnknown_085DFA46[i]; - for (i = 0; i < 6; i++) - dst->speechLost[i] = gUnknown_085DFA52[i]; - for (i = 0; i < 3; i++) + for (i = 0; i < EASY_CHAT_BATTLE_WORDS_COUNT; i++) + dst->speechWon[i] = sRecordTrainerSpeechWon[i]; + for (i = 0; i < EASY_CHAT_BATTLE_WORDS_COUNT; i++) + dst->speechLost[i] = sRecordTrainerSpeechLost[i]; + for (i = 0; i < FRONTIER_PARTY_SIZE; i++) dst->party[i] = src->party[i]; - CpuFill32(0, &dst->party[3], sizeof(dst->party[3])); + CpuFill32(0, &dst->party[FRONTIER_PARTY_SIZE], sizeof(dst->party[FRONTIER_PARTY_SIZE])); CalcEmeraldBattleTowerChecksum(dst); return TRUE; } @@ -3331,13 +3336,13 @@ bool32 EmeraldBattleTowerRecordToRuby(struct EmeraldBattleTowerRecord *src, stru { s32 i, validMons = 0; - for (i = 0; i < 3; i++) + for (i = 0; i < FRONTIER_PARTY_SIZE; i++) { if (src->party[i].species) validMons++; } - if (validMons != 3) + if (validMons != FRONTIER_PARTY_SIZE) { memset(dst, 0, sizeof(*dst)); return FALSE; @@ -3347,6 +3352,7 @@ bool32 EmeraldBattleTowerRecordToRuby(struct EmeraldBattleTowerRecord *src, stru dst->lvlMode = src->lvlMode; dst->winStreak = src->winStreak; // BUG: Reading outside the array. sRubyFacilityClassToEmerald has less than FACILITY_CLASSES_COUNT entries. + // Fix by using ARRAY_COUNT(sRubyFacilityClassToEmerald) instead for (i = 0; i < FACILITY_CLASSES_COUNT; i++) { if (sRubyFacilityClassToEmerald[i][1] == src->facilityClass) @@ -3355,15 +3361,15 @@ bool32 EmeraldBattleTowerRecordToRuby(struct EmeraldBattleTowerRecord *src, stru if (i != FACILITY_CLASSES_COUNT) dst->facilityClass = sRubyFacilityClassToEmerald[i][0]; else - dst->facilityClass = 0x24; // FACILITY_CLASS_YOUNGSTER in Ruby/Sapphire. + dst->facilityClass = RS_FACILITY_CLASS_YOUNGSTER; for (i = 0; i < PLAYER_NAME_LENGTH + 1; i++) dst->name[i] = src->name[i]; for (i = 0; i < TRAINER_ID_LENGTH; i++) dst->trainerId[i] = src->trainerId[i]; - for (i = 0; i < 6; i++) + for (i = 0; i < EASY_CHAT_BATTLE_WORDS_COUNT; i++) dst->greeting[i] = src->greeting[i]; - for (i = 0; i < 3; i++) + for (i = 0; i < FRONTIER_PARTY_SIZE; i++) dst->party[i] = src->party[i]; CalcRubyBattleTowerChecksum(dst); diff --git a/src/data/battle_frontier/battle_frontier_trainers.h b/src/data/battle_frontier/battle_frontier_trainers.h index faef40656..7977852b2 100644 --- a/src/data/battle_frontier/battle_frontier_trainers.h +++ b/src/data/battle_frontier/battle_frontier_trainers.h @@ -361,7 +361,7 @@ const struct BattleFrontierTrainer gBattleFrontierTrainers[] = .monSets = gBattleFrontierTrainerMons_Payton }, [45] = { - .facilityClass = FACILITY_CLASS_POKEMON_BREEDER_F, + .facilityClass = FACILITY_CLASS_PKMN_BREEDER_F, .trainerName = _("PAMELA"), .speechBefore = {EC_WORD_ALL, EC_WORD_POKEMON, EC_WORD_ADORE, EC_WORD_A, EC_WORD_KIND, EC_WORD_TRAINER}, .speechWin = {EC_WORD_IT_S, EC_WORD_TOO, EC_WORD_BAD, EC_WORD_YOU, EC_WORD_LOST, 0xFFFF}, @@ -369,7 +369,7 @@ const struct BattleFrontierTrainer gBattleFrontierTrainers[] = .monSets = gBattleFrontierTrainerMons_Pamela }, [46] = { - .facilityClass = FACILITY_CLASS_POKEMON_BREEDER_F, + .facilityClass = FACILITY_CLASS_PKMN_BREEDER_F, .trainerName = _("ELIZA"), .speechBefore = {EC_WORD_I, EC_WORD_ADORE, EC_WORD_POKEMON, EC_WORD_LIKE, EC_WORD_MY, EC_WORD_CHILDREN}, .speechWin = {EC_WORD_I_AM, EC_WORD_SO, EC_WORD_HAPPY, EC_WORD_FOR, EC_WORD_MY, EC_WORD_POKEMON}, @@ -377,7 +377,7 @@ const struct BattleFrontierTrainer gBattleFrontierTrainers[] = .monSets = gBattleFrontierTrainerMons_Eliza }, [47] = { - .facilityClass = FACILITY_CLASS_POKEMON_BREEDER_F, + .facilityClass = FACILITY_CLASS_PKMN_BREEDER_F, .trainerName = _("MARISA"), .speechBefore = {EC_WORD_I, EC_WORD_PROMISE, EC_WORD_TO, EC_WORD_BATTLE, EC_WORD_SERIOUSLY, 0xFFFF}, .speechWin = {EC_WORD_PROMISE, EC_WORD_ME, EC_WORD_YOU, EC_WORD_WILL, EC_WORD_DO, EC_WORD_BETTER}, @@ -1273,7 +1273,7 @@ const struct BattleFrontierTrainer gBattleFrontierTrainers[] = .monSets = gBattleFrontierTrainerMons_Cordell }, [159] = { - .facilityClass = FACILITY_CLASS_POKEMON_BREEDER_F, + .facilityClass = FACILITY_CLASS_PKMN_BREEDER_F, .trainerName = _("JAZLYN"), .speechBefore = {EC_WORD_IS, EC_WORD_YOUR, EC_WORD_POKEDEX, EC_WORD_REALLY, EC_WORD_AWESOME, EC_WORD_QUES}, .speechWin = {EC_WORD_OH_YEAH, EC_WORD_WOW, EC_WORD_YOUR, EC_WORD_POKEDEX, EC_WORD_IS, EC_WORD_SUPER}, @@ -1745,7 +1745,7 @@ const struct BattleFrontierTrainer gBattleFrontierTrainers[] = .monSets = gBattleFrontierTrainerMons_Wilson }, [218] = { - .facilityClass = FACILITY_CLASS_POKEMON_BREEDER_F, + .facilityClass = FACILITY_CLASS_PKMN_BREEDER_F, .trainerName = _("CLARE"), .speechBefore = {EC_WORD_YAY, EC_WORD_EXCL, EC_WORD_A, EC_WORD_TOUGH, EC_WORD_TRAINER, EC_WORD_EXCL}, .speechWin = {EC_WORD_AWW, EC_WORD_EXCL, EC_WORD_A, EC_WORD_WIMPY, EC_WORD_TRAINER, EC_WORD_EXCL}, @@ -1753,7 +1753,7 @@ const struct BattleFrontierTrainer gBattleFrontierTrainers[] = .monSets = gBattleFrontierTrainerMons_Clare }, [219] = { - .facilityClass = FACILITY_CLASS_POKEMON_BREEDER_F, + .facilityClass = FACILITY_CLASS_PKMN_BREEDER_F, .trainerName = _("TESS"), .speechBefore = {EC_WORD_WANT, EC_WORD_SOME, EC_POKEMON(GULPIN), EC_WORD_DESIGN, EC_WORD_SWEETS, EC_WORD_QUES}, .speechWin = {EC_WORD_THEY_RE, EC_WORD_A, EC_WORD_SECRET, EC_WORD_POKEMON, EC_WORD_GOURMET, EC_WORD_ITEM}, diff --git a/src/data/battle_frontier/trainer_hill.h b/src/data/battle_frontier/trainer_hill.h index f38cfcc38..cfd5dd994 100644 --- a/src/data/battle_frontier/trainer_hill.h +++ b/src/data/battle_frontier/trainer_hill.h @@ -847,7 +847,7 @@ static const struct TrHillFloor sDataTagNormal_Floors[] = [1] = { .name = _("JAYDEN"), - .facilityClass = FACILITY_CLASS_POKEMON_BREEDER_F, + .facilityClass = FACILITY_CLASS_PKMN_BREEDER_F, .unused = 0, .speechBefore = {EC_WORD_SOME, EC_WORD_THINGS, EC_WORD_YOU, EC_WORD_CAN_T, EC_WORD_DO, EC_WORD_ALONE}, .speechWin = {EC_WORD_YOU, EC_WORD_WIN, EC_WORD_AS, EC_WORD_A, EC_WORD_GROUP, 0xFFFF}, @@ -1152,7 +1152,7 @@ static const struct TrHillFloor sDataTagNormal_Floors[] = [1] = { .name = _("VERONICA"), - .facilityClass = FACILITY_CLASS_POKEMON_BREEDER_F, + .facilityClass = FACILITY_CLASS_PKMN_BREEDER_F, .unused = 0, .speechBefore = {EC_WORD_I_AM, EC_WORD_THE, EC_WORD_STRONG, EC_WORD_BEAUTY, EC_WORD_AROUND, EC_WORD_HERE}, .speechWin = {EC_WORD_I_AM, EC_WORD_STRONG, EC_WORD_THAT_S, EC_WORD_WHY, EC_WORD_EXCL, 0xFFFF}, diff --git a/src/data/pokemon/trainer_class_lookups.h b/src/data/pokemon/trainer_class_lookups.h index 0f2b53a18..2edefb274 100644 --- a/src/data/pokemon/trainer_class_lookups.h +++ b/src/data/pokemon/trainer_class_lookups.h @@ -2,7 +2,7 @@ const u8 gFacilityClassToPicIndex[] = { [FACILITY_CLASS_HIKER] = TRAINER_PIC_HIKER, [FACILITY_CLASS_AQUA_GRUNT_M] = TRAINER_PIC_AQUA_GRUNT_M, - [FACILITY_CLASS_POKEMON_BREEDER_F] = TRAINER_PIC_POKEMON_BREEDER_F, + [FACILITY_CLASS_PKMN_BREEDER_F] = TRAINER_PIC_POKEMON_BREEDER_F, [FACILITY_CLASS_COOLTRAINER_M] = TRAINER_PIC_COOLTRAINER_M, [FACILITY_CLASS_BIRD_KEEPER] = TRAINER_PIC_BIRD_KEEPER, [FACILITY_CLASS_COLLECTOR] = TRAINER_PIC_COLLECTOR, @@ -88,7 +88,7 @@ const u8 gFacilityClassToTrainerClass[] = { [FACILITY_CLASS_HIKER] = TRAINER_CLASS_HIKER, [FACILITY_CLASS_AQUA_GRUNT_M] = TRAINER_CLASS_TEAM_AQUA, - [FACILITY_CLASS_POKEMON_BREEDER_F] = TRAINER_CLASS_PKMN_BREEDER, + [FACILITY_CLASS_PKMN_BREEDER_F] = TRAINER_CLASS_PKMN_BREEDER, [FACILITY_CLASS_COOLTRAINER_M] = TRAINER_CLASS_COOLTRAINER, [FACILITY_CLASS_BIRD_KEEPER] = TRAINER_CLASS_BIRD_KEEPER, [FACILITY_CLASS_COLLECTOR] = TRAINER_CLASS_COLLECTOR, diff --git a/src/frontier_util.c b/src/frontier_util.c index 138b678ed..084be4fe2 100644 --- a/src/frontier_util.c +++ b/src/frontier_util.c @@ -45,30 +45,30 @@ struct FrontierBrainMon u8 fixedIV; u8 nature; u8 evs[NUM_STATS]; - u16 moves[4]; + u16 moves[MAX_MON_MOVES]; }; // This file's functions. static void GetChallengeStatus(void); static void GetFrontierData(void); static void SetFrontierData(void); -static void LoadSelectedParty(void); +static void SetSelectedPartyOrder(void); static void DoSoftReset_(void); static void SetFrontierTrainers(void); -static void sub_81A1B38(void); +static void SaveSelectedParty(void); static void ShowFacilityResultsWindow(void); -static void sub_81A31FC(void); +static void CheckPutFrontierTVShowOnAir(void); static void Script_GetFrontierBrainStatus(void); static void IsTrainerFrontierBrain(void); -static void sub_81A3B64(void); +static void GiveBattlePoints(void); static void GetFacilitySymbolCount(void); static void GiveFacilitySymbol(void); static void CheckBattleTypeFlag(void); -static void sub_81A3FD4(void); +static void CheckPartyIneligibility(void); static void ValidateVisitingTrainer(void); -static void sub_81A4230(void); -static void sub_81A43A8(void); -static void sub_81A4410(void); +static void IncrementWinStreak(void); +static void RestoreHeldItems(void); +static void SaveRecordBattle(void); static void BufferFrontierTrainerName(void); static void ResetSketchedMoves(void); static void SetFacilityBrainEventObject(void); @@ -591,7 +591,9 @@ static const u8 sBattlePointAwards[][NUM_FRONTIER_FACILITIES][FRONTIER_MODE_COUN }, }; -static const u16 sFacilitySymbolBitFlags[NUM_FRONTIER_FACILITIES][2] = +// Flags to change the conversation when the Frontier Brain is encountered for a battle +// First bit is has battled them before and not won yet, second bit is has battled them and won (obtained a Symbol) +static const u16 sBattledBrainBitFlags[NUM_FRONTIER_FACILITIES][2] = { [FRONTIER_FACILITY_TOWER] = {0x0001, 0x0002}, [FRONTIER_FACILITY_DOME] = {0x0004, 0x0008}, @@ -607,29 +609,29 @@ static void (* const sFrontierUtilFuncs[])(void) = [FRONTIER_UTIL_FUNC_GET_STATUS] = GetChallengeStatus, [FRONTIER_UTIL_FUNC_GET_DATA] = GetFrontierData, [FRONTIER_UTIL_FUNC_SET_DATA] = SetFrontierData, - [FRONTIER_UTIL_FUNC_LOAD_SELECTED_PARTY] = LoadSelectedParty, + [FRONTIER_UTIL_FUNC_SET_PARTY_ORDER] = SetSelectedPartyOrder, [FRONTIER_UTIL_FUNC_SOFT_RESET] = DoSoftReset_, - [FRONTIER_UTIL_FUNC_SET_FRONTIER_TRAINERS] = SetFrontierTrainers, - [FRONTIER_UTIL_FUNC_6] = sub_81A1B38, + [FRONTIER_UTIL_FUNC_SET_TRAINERS] = SetFrontierTrainers, + [FRONTIER_UTIL_FUNC_SAVE_PARTY] = SaveSelectedParty, [FRONTIER_UTIL_FUNC_RESULTS_WINDOW] = ShowFacilityResultsWindow, - [FRONTIER_UTIL_FUNC_8] = sub_81A31FC, + [FRONTIER_UTIL_FUNC_CHECK_AIR_TV_SHOW] = CheckPutFrontierTVShowOnAir, [FRONTIER_UTIL_FUNC_GET_BRAIN_STATUS] = Script_GetFrontierBrainStatus, - [FRONTIER_UTIL_FUNC_IS_FRONTIER_BRAIN] = IsTrainerFrontierBrain, - [FRONTIER_UTIL_FUNC_11] = sub_81A3B64, + [FRONTIER_UTIL_FUNC_IS_BRAIN] = IsTrainerFrontierBrain, + [FRONTIER_UTIL_FUNC_GIVE_BATTLE_POINTS] = GiveBattlePoints, [FRONTIER_UTIL_FUNC_GET_FACILITY_SYMBOLS] = GetFacilitySymbolCount, [FRONTIER_UTIL_FUNC_GIVE_FACILITY_SYMBOL] = GiveFacilitySymbol, [FRONTIER_UTIL_FUNC_CHECK_BATTLE_TYPE] = CheckBattleTypeFlag, - [FRONTIER_UTIL_FUNC_15] = sub_81A3FD4, + [FRONTIER_UTIL_FUNC_CHECK_INELIGIBLE] = CheckPartyIneligibility, [FRONTIER_UTIL_FUNC_CHECK_VISIT_TRAINER] = ValidateVisitingTrainer, - [FRONTIER_UTIL_FUNC_17] = sub_81A4230, - [FRONTIER_UTIL_FUNC_18] = sub_81A43A8, - [FRONTIER_UTIL_FUNC_19] = sub_81A4410, + [FRONTIER_UTIL_FUNC_INCREMENT_STREAK] = IncrementWinStreak, + [FRONTIER_UTIL_FUNC_RESTORE_HELD_ITEMS] = RestoreHeldItems, + [FRONTIER_UTIL_FUNC_SAVE_BATTLE] = SaveRecordBattle, [FRONTIER_UTIL_FUNC_BUFFER_TRAINER_NAME] = BufferFrontierTrainerName, [FRONTIER_UTIL_FUNC_RESET_SKETCH_MOVES] = ResetSketchedMoves, [FRONTIER_UTIL_FUNC_SET_BRAIN_OBJECT] = SetFacilityBrainEventObject, }; -static const struct WindowTemplate gUnknown_08611C74 = +static const struct WindowTemplate sFrontierResultsWindowTemplate = { .bg = 0, .tilemapLeft = 1, @@ -640,7 +642,7 @@ static const struct WindowTemplate gUnknown_08611C74 = .baseBlock = 1 }; -static const struct WindowTemplate gUnknown_08611C7C = +static const struct WindowTemplate sLinkContestResultsWindowTemplate = { .bg = 0, .tilemapLeft = 2, @@ -651,7 +653,7 @@ static const struct WindowTemplate gUnknown_08611C7C = .baseBlock = 1 }; -static const struct WindowTemplate gUnknown_08611C84 = +static const struct WindowTemplate sRankingHallRecordsWindowTemplate = { .bg = 0, .tilemapLeft = 2, @@ -787,29 +789,28 @@ void CallFrontierUtilFunc(void) sFrontierUtilFuncs[gSpecialVar_0x8004](); } -// Buffers into VAR_TEMP_0 specifically because this is used to react to the outcome in OnFrame map scripts -// TODO: use constants, fix name, rename field, compare to get/set data 0 +// Buffers into VAR_TEMP_0 specifically because this is used to react to the status in OnFrame map scripts static void GetChallengeStatus(void) { VarSet(VAR_TEMP_0, 0xFF); - switch (gSaveBlock2Ptr->frontier.challengeOutcome) + switch (gSaveBlock2Ptr->frontier.challengeStatus) { case 0: break; - case 1: + case CHALLENGE_STATUS_SAVING: FrontierGamblerSetWonOrLost(FALSE); - VarSet(VAR_TEMP_0, gSaveBlock2Ptr->frontier.challengeOutcome); + VarSet(VAR_TEMP_0, gSaveBlock2Ptr->frontier.challengeStatus); break; - case 4: + case CHALLENGE_STATUS_LOST: FrontierGamblerSetWonOrLost(FALSE); - VarSet(VAR_TEMP_0, gSaveBlock2Ptr->frontier.challengeOutcome); + VarSet(VAR_TEMP_0, gSaveBlock2Ptr->frontier.challengeStatus); break; - case 3: + case CHALLENGE_STATUS_WON: FrontierGamblerSetWonOrLost(TRUE); - VarSet(VAR_TEMP_0, gSaveBlock2Ptr->frontier.challengeOutcome); + VarSet(VAR_TEMP_0, gSaveBlock2Ptr->frontier.challengeStatus); break; - case 2: - VarSet(VAR_TEMP_0, gSaveBlock2Ptr->frontier.challengeOutcome); + case CHALLENGE_STATUS_PAUSED: + VarSet(VAR_TEMP_0, gSaveBlock2Ptr->frontier.challengeStatus); break; } } @@ -823,27 +824,27 @@ static void GetFrontierData(void) switch (gSpecialVar_0x8005) { - case 0: - gSpecialVar_Result = gSaveBlock2Ptr->frontier.challengeOutcome; + case FRONTIER_DATA_CHALLENGE_STATUS: + gSpecialVar_Result = gSaveBlock2Ptr->frontier.challengeStatus; break; - case 1: + case FRONTIER_DATA_LVL_MODE: gSpecialVar_Result = gSaveBlock2Ptr->frontier.lvlMode; break; - case 2: + case FRONTIER_DATA_BATTLE_NUM: gSpecialVar_Result = gSaveBlock2Ptr->frontier.curChallengeBattleNum; break; - case 3: - gSpecialVar_Result = gSaveBlock2Ptr->frontier.field_CA9_a; + case FRONTIER_DATA_PAUSED: + gSpecialVar_Result = gSaveBlock2Ptr->frontier.challengePaused; break; - case 5: + case FRONTIER_DATA_BATTLE_OUTCOME: gSpecialVar_Result = gBattleOutcome; gBattleOutcome = 0; break; - case 6: + case FRONTIER_DATA_6: gSpecialVar_Result = gSaveBlock2Ptr->frontier.field_CA9_b; break; - case 7: - gSpecialVar_Result = gSaveBlock2Ptr->frontier.symbolFlags & sFacilitySymbolBitFlags[facility][hasSymbol]; + case FRONTIER_DATA_HEARD_BRAIN_SPEECH: + gSpecialVar_Result = gSaveBlock2Ptr->frontier.battledBrainFlags & sBattledBrainBitFlags[facility][hasSymbol]; break; } } @@ -858,32 +859,32 @@ static void SetFrontierData(void) switch (gSpecialVar_0x8005) { - case 0: - gSaveBlock2Ptr->frontier.challengeOutcome = gSpecialVar_0x8006; + case FRONTIER_DATA_CHALLENGE_STATUS: + gSaveBlock2Ptr->frontier.challengeStatus = gSpecialVar_0x8006; break; - case 1: + case FRONTIER_DATA_LVL_MODE: gSaveBlock2Ptr->frontier.lvlMode = gSpecialVar_0x8006; break; - case 2: + case FRONTIER_DATA_BATTLE_NUM: gSaveBlock2Ptr->frontier.curChallengeBattleNum = gSpecialVar_0x8006; break; - case 3: - gSaveBlock2Ptr->frontier.field_CA9_a = gSpecialVar_0x8006; + case FRONTIER_DATA_PAUSED: + gSaveBlock2Ptr->frontier.challengePaused = gSpecialVar_0x8006; break; - case 4: - for (i = 0; i < 4; i++) + case FRONTIER_DATA_SELECTED_MON_ORDER: + for (i = 0; i < MAX_FRONTIER_PARTY_SIZE; i++) gSaveBlock2Ptr->frontier.selectedPartyMons[i] = gSelectedOrderFromParty[i]; break; - case 6: + case FRONTIER_DATA_6: gSaveBlock2Ptr->frontier.field_CA9_b = gSpecialVar_0x8006; break; - case 7: - gSaveBlock2Ptr->frontier.symbolFlags |= sFacilitySymbolBitFlags[facility][hasSymbol]; + case FRONTIER_DATA_HEARD_BRAIN_SPEECH: + gSaveBlock2Ptr->frontier.battledBrainFlags |= sBattledBrainBitFlags[facility][hasSymbol]; break; } } -static void LoadSelectedParty(void) +static void SetSelectedPartyOrder(void) { s32 i; @@ -903,11 +904,11 @@ static void SetFrontierTrainers(void) gFacilityTrainers = gBattleFrontierTrainers; } -static void sub_81A1B38(void) +static void SaveSelectedParty(void) { u8 i; - for (i = 0; i < 4; i++) + for (i = 0; i < MAX_FRONTIER_PARTY_SIZE; i++) { u16 monId = gSaveBlock2Ptr->frontier.selectedPartyMons[i] - 1; if (monId < PARTY_SIZE) @@ -948,9 +949,9 @@ static void ShowFacilityResultsWindow(void) } } -static bool8 sub_81A1C24(u32 flags) +static bool8 IsWinStreakActive(u32 challenge) { - if (gSaveBlock2Ptr->frontier.field_CDC & flags) + if (gSaveBlock2Ptr->frontier.winStreakActiveFlags & challenge) return TRUE; else return FALSE; @@ -980,8 +981,8 @@ static void PrintHyphens(s32 y) static void TowerPrintStreak(const u8 *str, u16 num, u8 x1, u8 x2, u8 y) { AddTextPrinterParameterized(gRecordsWindowId, 1, str, x1, y, TEXT_SPEED_FF, NULL); - if (num > 9999) - num = 9999; + if (num > MAX_STREAK) + num = MAX_STREAK; ConvertIntToDecimalStringN(gStringVar1, num, STR_CONV_MODE_RIGHT_ALIGN, 4); StringExpandPlaceholders(gStringVar4, gText_WinStreak); AddTextPrinterParameterized(gRecordsWindowId, 1, gStringVar4, x2, y, TEXT_SPEED_FF, NULL); @@ -996,8 +997,8 @@ static void TowerPrintRecordStreak(u8 battleMode, u8 lvlMode, u8 x1, u8 x2, u8 y static u16 TowerGetWinStreak(u8 battleMode, u8 lvlMode) { u16 winStreak = gSaveBlock2Ptr->frontier.towerWinStreaks[battleMode][lvlMode]; - if (winStreak > 9999) - return 9999; + if (winStreak > MAX_STREAK) + return MAX_STREAK; else return winStreak; } @@ -1011,27 +1012,27 @@ static void TowerPrintPrevOrCurrentStreak(u8 battleMode, u8 lvlMode, u8 x1, u8 x default: case FRONTIER_MODE_SINGLES: if (lvlMode != FRONTIER_LVL_50) - isCurrent = sub_81A1C24(2); + isCurrent = IsWinStreakActive(STREAK_TOWER_SINGLES_OPEN); else - isCurrent = sub_81A1C24(1); + isCurrent = IsWinStreakActive(STREAK_TOWER_SINGLES_50); break; case FRONTIER_MODE_DOUBLES: if (lvlMode != FRONTIER_LVL_50) - isCurrent = sub_81A1C24(0x8000); + isCurrent = IsWinStreakActive(STREAK_TOWER_DOUBLES_OPEN); else - isCurrent = sub_81A1C24(0x4000); + isCurrent = IsWinStreakActive(STREAK_TOWER_DOUBLES_50); break; case FRONTIER_MODE_MULTIS: if (lvlMode != FRONTIER_LVL_50) - isCurrent = sub_81A1C24(0x20000); + isCurrent = IsWinStreakActive(STREAK_TOWER_MULTIS_OPEN); else - isCurrent = sub_81A1C24(0x10000); + isCurrent = IsWinStreakActive(STREAK_TOWER_MULTIS_50); break; case FRONTIER_MODE_LINK_MULTIS: if (lvlMode != FRONTIER_LVL_50) - isCurrent = sub_81A1C24(0x80000); + isCurrent = IsWinStreakActive(STREAK_TOWER_LINK_MULTIS_OPEN); else - isCurrent = sub_81A1C24(0x40000); + isCurrent = IsWinStreakActive(STREAK_TOWER_LINK_MULTIS_50); break; } @@ -1043,7 +1044,7 @@ static void TowerPrintPrevOrCurrentStreak(u8 battleMode, u8 lvlMode, u8 x1, u8 x static void ShowTowerResultsWindow(u8 battleMode) { - gRecordsWindowId = AddWindow(&gUnknown_08611C74); + gRecordsWindowId = AddWindow(&sFrontierResultsWindowTemplate); DrawStdWindowFrame(gRecordsWindowId, FALSE); FillWindowPixelBuffer(gRecordsWindowId, PIXEL_FILL(1)); if (battleMode == FRONTIER_MODE_SINGLES) @@ -1071,8 +1072,8 @@ static void ShowTowerResultsWindow(u8 battleMode) static u16 DomeGetWinStreak(u8 battleMode, u8 lvlMode) { u16 winStreak = gSaveBlock2Ptr->frontier.domeWinStreaks[battleMode][lvlMode]; - if (winStreak > 9999) - return 9999; + if (winStreak > MAX_STREAK) + return MAX_STREAK; else return winStreak; } @@ -1094,15 +1095,15 @@ static void DomePrintPrevOrCurrentStreak(u8 battleMode, u8 lvlMode, u8 x1, u8 x2 default: case FRONTIER_MODE_SINGLES: if (lvlMode != FRONTIER_LVL_50) - isCurrent = sub_81A1C24(8); + isCurrent = IsWinStreakActive(STREAK_DOME_SINGLES_OPEN); else - isCurrent = sub_81A1C24(4); + isCurrent = IsWinStreakActive(STREAK_DOME_SINGLES_50); break; case FRONTIER_MODE_DOUBLES: if (lvlMode != FRONTIER_LVL_50) - isCurrent = sub_81A1C24(0x200000); + isCurrent = IsWinStreakActive(STREAK_DOME_DOUBLES_OPEN); else - isCurrent = sub_81A1C24(0x100000); + isCurrent = IsWinStreakActive(STREAK_DOME_DOUBLES_50); break; } @@ -1114,7 +1115,7 @@ static void DomePrintPrevOrCurrentStreak(u8 battleMode, u8 lvlMode, u8 x1, u8 x2 static void ShowDomeResultsWindow(u8 battleMode) { - gRecordsWindowId = AddWindow(&gUnknown_08611C74); + gRecordsWindowId = AddWindow(&sFrontierResultsWindowTemplate); DrawStdWindowFrame(gRecordsWindowId, FALSE); FillWindowPixelBuffer(gRecordsWindowId, PIXEL_FILL(1)); if (battleMode == FRONTIER_MODE_SINGLES) @@ -1140,8 +1141,8 @@ static void ShowDomeResultsWindow(u8 battleMode) static void PalacePrintStreak(const u8 *str, u16 num, u8 x1, u8 x2, u8 y) { AddTextPrinterParameterized(gRecordsWindowId, 1, str, x1, y, TEXT_SPEED_FF, NULL); - if (num > 9999) - num = 9999; + if (num > MAX_STREAK) + num = MAX_STREAK; ConvertIntToDecimalStringN(gStringVar1, num, STR_CONV_MODE_RIGHT_ALIGN, 4); StringExpandPlaceholders(gStringVar4, gText_WinStreak); AddTextPrinterParameterized(gRecordsWindowId, 1, gStringVar4, x2, y, TEXT_SPEED_FF, NULL); @@ -1156,8 +1157,8 @@ static void PalacePrintRecordStreak(u8 battleMode, u8 lvlMode, u8 x1, u8 x2, u8 static u16 PalaceGetWinStreak(u8 battleMode, u8 lvlMode) { u16 winStreak = gSaveBlock2Ptr->frontier.palaceWinStreaks[battleMode][lvlMode]; - if (winStreak > 9999) - return 9999; + if (winStreak > MAX_STREAK) + return MAX_STREAK; else return winStreak; } @@ -1171,15 +1172,15 @@ static void PalacePrintPrevOrCurrentStreak(u8 battleMode, u8 lvlMode, u8 x1, u8 default: case FRONTIER_MODE_SINGLES: if (lvlMode != FRONTIER_LVL_50) - isCurrent = sub_81A1C24(0x20); + isCurrent = IsWinStreakActive(STREAK_PALACE_SINGLES_OPEN); else - isCurrent = sub_81A1C24(0x10); + isCurrent = IsWinStreakActive(STREAK_PALACE_SINGLES_50); break; case FRONTIER_MODE_DOUBLES: if (lvlMode != FRONTIER_LVL_50) - isCurrent = sub_81A1C24(0x800000); + isCurrent = IsWinStreakActive(STREAK_PALACE_DOUBLES_OPEN); else - isCurrent = sub_81A1C24(0x400000); + isCurrent = IsWinStreakActive(STREAK_PALACE_DOUBLES_50); } if (isCurrent == TRUE) @@ -1190,7 +1191,7 @@ static void PalacePrintPrevOrCurrentStreak(u8 battleMode, u8 lvlMode, u8 x1, u8 static void ShowPalaceResultsWindow(u8 battleMode) { - gRecordsWindowId = AddWindow(&gUnknown_08611C74); + gRecordsWindowId = AddWindow(&sFrontierResultsWindowTemplate); DrawStdWindowFrame(gRecordsWindowId, FALSE); FillWindowPixelBuffer(gRecordsWindowId, PIXEL_FILL(1)); if (battleMode == FRONTIER_MODE_SINGLES) @@ -1214,8 +1215,8 @@ static void ShowPalaceResultsWindow(u8 battleMode) static u16 PikeGetWinStreak(u8 lvlMode) { u16 winStreak = gSaveBlock2Ptr->frontier.pikeWinStreaks[lvlMode]; - if (winStreak > 9999) - return 9999; + if (winStreak > MAX_STREAK) + return MAX_STREAK; else return winStreak; } @@ -1234,9 +1235,9 @@ static void PikePrintPrevOrCurrentStreak(u8 lvlMode, u8 x1, u8 x2, u8 y) u16 winStreak = PikeGetWinStreak(lvlMode); if (lvlMode != FRONTIER_LVL_50) - isCurrent = sub_81A1C24(0x800); + isCurrent = IsWinStreakActive(STREAK_PIKE_OPEN); else - isCurrent = sub_81A1C24(0x400); + isCurrent = IsWinStreakActive(STREAK_PIKE_50); if (isCurrent == TRUE) PrintTwoStrings(gText_Current, gText_RoomsCleared, winStreak, x1, x2, y); @@ -1246,7 +1247,7 @@ static void PikePrintPrevOrCurrentStreak(u8 lvlMode, u8 x1, u8 x2, u8 y) static void ShowPikeResultsWindow(void) { - gRecordsWindowId = AddWindow(&gUnknown_08611C74); + gRecordsWindowId = AddWindow(&sFrontierResultsWindowTemplate); DrawStdWindowFrame(gRecordsWindowId, FALSE); FillWindowPixelBuffer(gRecordsWindowId, PIXEL_FILL(1)); StringExpandPlaceholders(gStringVar4, gText_BattleChoiceResults); @@ -1268,8 +1269,8 @@ static void ShowPikeResultsWindow(void) static void ArenaPrintStreak(const u8 *str, u16 num, u8 x1, u8 x2, u8 y) { AddTextPrinterParameterized(gRecordsWindowId, 1, str, x1, y, TEXT_SPEED_FF, NULL); - if (num > 9999) - num = 9999; + if (num > MAX_STREAK) + num = MAX_STREAK; ConvertIntToDecimalStringN(gStringVar1, num, STR_CONV_MODE_RIGHT_ALIGN, 4); StringExpandPlaceholders(gStringVar4, gText_KOsInARow); AddTextPrinterParameterized(gRecordsWindowId, 1, gStringVar4, x2, y, TEXT_SPEED_FF, NULL); @@ -1284,8 +1285,8 @@ static void ArenaPrintRecordStreak(u8 lvlMode, u8 x1, u8 x2, u8 y) static u16 ArenaGetWinStreak(u8 lvlMode) { u16 winStreak = gSaveBlock2Ptr->frontier.arenaWinStreaks[lvlMode]; - if (winStreak > 9999) - return 9999; + if (winStreak > MAX_STREAK) + return MAX_STREAK; else return winStreak; } @@ -1296,9 +1297,9 @@ static void ArenaPrintPrevOrCurrentStreak(u8 lvlMode, u8 x1, u8 x2, u8 y) u16 winStreak = ArenaGetWinStreak(lvlMode); if (lvlMode != FRONTIER_LVL_50) - isCurrent = sub_81A1C24(0x80); + isCurrent = IsWinStreakActive(STREAK_ARENA_OPEN); else - isCurrent = sub_81A1C24(0x40); + isCurrent = IsWinStreakActive(STREAK_ARENA_50); if (isCurrent == TRUE) ArenaPrintStreak(gText_Current, winStreak, x1, x2, y); @@ -1308,7 +1309,7 @@ static void ArenaPrintPrevOrCurrentStreak(u8 lvlMode, u8 x1, u8 x2, u8 y) static void ShowArenaResultsWindow(void) { - gRecordsWindowId = AddWindow(&gUnknown_08611C74); + gRecordsWindowId = AddWindow(&sFrontierResultsWindowTemplate); DrawStdWindowFrame(gRecordsWindowId, FALSE); FillWindowPixelBuffer(gRecordsWindowId, PIXEL_FILL(1)); PrintHyphens(10); @@ -1328,8 +1329,8 @@ static void ShowArenaResultsWindow(void) static void FactoryPrintStreak(const u8 *str, u16 num1, u16 num2, u8 x1, u8 x2, u8 x3, u8 y) { AddTextPrinterParameterized(gRecordsWindowId, 1, str, x1, y, TEXT_SPEED_FF, NULL); - if (num1 > 9999) - num1 = 9999; + if (num1 > MAX_STREAK) + num1 = MAX_STREAK; ConvertIntToDecimalStringN(gStringVar1, num1, STR_CONV_MODE_RIGHT_ALIGN, 4); StringExpandPlaceholders(gStringVar4, gText_WinStreak); AddTextPrinterParameterized(gRecordsWindowId, 1, gStringVar4, x2, y, TEXT_SPEED_FF, NULL); @@ -1349,8 +1350,8 @@ static void FactoryPrintRecordStreak(u8 battleMode, u8 lvlMode, u8 x1, u8 x2, u8 static u16 FactoryGetWinStreak(u8 battleMode, u8 lvlMode) { u16 winStreak = gSaveBlock2Ptr->frontier.factoryWinStreaks[battleMode][lvlMode]; - if (winStreak > 9999) - return 9999; + if (winStreak > MAX_STREAK) + return MAX_STREAK; else return winStreak; } @@ -1358,8 +1359,8 @@ static u16 FactoryGetWinStreak(u8 battleMode, u8 lvlMode) static u16 FactoryGetRentsCount(u8 battleMode, u8 lvlMode) { u16 rents = gSaveBlock2Ptr->frontier.factoryRentsCount[battleMode][lvlMode]; - if (rents > 9999) - return 9999; + if (rents > MAX_STREAK) + return MAX_STREAK; else return rents; } @@ -1374,15 +1375,15 @@ static void FactoryPrintPrevOrCurrentStreak(u8 battleMode, u8 lvlMode, u8 x1, u8 default: case FRONTIER_MODE_SINGLES: if (lvlMode != FRONTIER_LVL_50) - isCurrent = sub_81A1C24(0x200); + isCurrent = IsWinStreakActive(STREAK_FACTORY_SINGLES_OPEN); else - isCurrent = sub_81A1C24(0x100); + isCurrent = IsWinStreakActive(STREAK_FACTORY_SINGLES_50); break; case FRONTIER_MODE_DOUBLES: if (lvlMode != FRONTIER_LVL_50) - isCurrent = sub_81A1C24(0x2000000); + isCurrent = IsWinStreakActive(STREAK_FACTORY_DOUBLES_OPEN); else - isCurrent = sub_81A1C24(0x1000000); + isCurrent = IsWinStreakActive(STREAK_FACTORY_DOUBLES_50); break; } @@ -1394,7 +1395,7 @@ static void FactoryPrintPrevOrCurrentStreak(u8 battleMode, u8 lvlMode, u8 x1, u8 static void ShowFactoryResultsWindow(u8 battleMode) { - gRecordsWindowId = AddWindow(&gUnknown_08611C74); + gRecordsWindowId = AddWindow(&sFrontierResultsWindowTemplate); DrawStdWindowFrame(gRecordsWindowId, FALSE); FillWindowPixelBuffer(gRecordsWindowId, PIXEL_FILL(1)); if (battleMode == FRONTIER_MODE_SINGLES) @@ -1419,8 +1420,8 @@ static void ShowFactoryResultsWindow(u8 battleMode) static void PyramidPrintStreak(const u8 *str, u16 num, u8 x1, u8 x2, u8 y) { AddTextPrinterParameterized(gRecordsWindowId, 1, str, x1, y, TEXT_SPEED_FF, NULL); - if (num > 9999) - num = 9999; + if (num > MAX_STREAK) + num = MAX_STREAK; ConvertIntToDecimalStringN(gStringVar1, num, STR_CONV_MODE_RIGHT_ALIGN, 4); StringExpandPlaceholders(gStringVar4, gText_FloorsCleared); AddTextPrinterParameterized(gRecordsWindowId, 1, gStringVar4, x2, y, TEXT_SPEED_FF, NULL); @@ -1435,8 +1436,8 @@ static void PyramidPrintRecordStreak(u8 lvlMode, u8 x1, u8 x2, u8 y) static u16 PyramidGetWinStreak(u8 lvlMode) { u16 winStreak = gSaveBlock2Ptr->frontier.pyramidWinStreaks[lvlMode]; - if (winStreak > 9999) - return 9999; + if (winStreak > MAX_STREAK) + return MAX_STREAK; else return winStreak; } @@ -1447,9 +1448,9 @@ static void PyramidPrintPrevOrCurrentStreak(u8 lvlMode, u8 x1, u8 x2, u8 y) u16 winStreak = PyramidGetWinStreak(lvlMode); if (lvlMode != FRONTIER_LVL_50) - isCurrent = sub_81A1C24(0x2000); + isCurrent = IsWinStreakActive(STREAK_PYRAMID_OPEN); else - isCurrent = sub_81A1C24(0x1000); + isCurrent = IsWinStreakActive(STREAK_PYRAMID_50); if (isCurrent == TRUE) PyramidPrintStreak(gText_Current, winStreak, x1, x2, y); @@ -1459,7 +1460,7 @@ static void PyramidPrintPrevOrCurrentStreak(u8 lvlMode, u8 x1, u8 x2, u8 y) static void ShowPyramidResultsWindow(void) { - gRecordsWindowId = AddWindow(&gUnknown_08611C74); + gRecordsWindowId = AddWindow(&sFrontierResultsWindowTemplate); DrawStdWindowFrame(gRecordsWindowId, FALSE); FillWindowPixelBuffer(gRecordsWindowId, PIXEL_FILL(1)); StringExpandPlaceholders(gStringVar4, gText_BattleQuestResults); @@ -1482,7 +1483,7 @@ static void ShowLinkContestResultsWindow(void) s32 i, j; s32 x; - gRecordsWindowId = AddWindow(&gUnknown_08611C7C); + gRecordsWindowId = AddWindow(&sLinkContestResultsWindowTemplate); DrawStdWindowFrame(gRecordsWindowId, FALSE); FillWindowPixelBuffer(gRecordsWindowId, PIXEL_FILL(1)); @@ -1526,7 +1527,7 @@ static void ShowLinkContestResultsWindow(void) CopyWindowToVram(gRecordsWindowId, 3); } -static void sub_81A31FC(void) +static void CheckPutFrontierTVShowOnAir(void) { u8 name[32]; s32 lvlMode = gSaveBlock2Ptr->frontier.lvlMode; @@ -1543,25 +1544,25 @@ static void sub_81A31FC(void) { StringCopy(name, gLinkPlayers[gBattleScripting.multiplayerId ^ 1].name); StripExtCtrlCodes(name); - StringCopy(gSaveBlock2Ptr->frontier.opponentName[lvlMode], name); - SetTrainerId(gLinkPlayers[gBattleScripting.multiplayerId ^ 1].trainerId, gSaveBlock2Ptr->frontier.field_EF1[lvlMode]); + StringCopy(gSaveBlock2Ptr->frontier.opponentNames[lvlMode], name); + SetTrainerId(gLinkPlayers[gBattleScripting.multiplayerId ^ 1].trainerId, gSaveBlock2Ptr->frontier.opponentTrainerIds[lvlMode]); } if (gSaveBlock2Ptr->frontier.towerWinStreaks[battleMode][lvlMode] > 1 - && sub_80EE818()) + && ShouldAirFrontierTVShow()) { switch (battleMode) { case FRONTIER_MODE_SINGLES: - sub_80EE8C8(gSaveBlock2Ptr->frontier.towerWinStreaks[battleMode][lvlMode], 1); + TryPutFrontierTVShowOnAir(gSaveBlock2Ptr->frontier.towerWinStreaks[battleMode][lvlMode], 1); break; case FRONTIER_MODE_DOUBLES: - sub_80EE8C8(gSaveBlock2Ptr->frontier.towerWinStreaks[battleMode][lvlMode], 2); + TryPutFrontierTVShowOnAir(gSaveBlock2Ptr->frontier.towerWinStreaks[battleMode][lvlMode], 2); break; case FRONTIER_MODE_MULTIS: - sub_80EE8C8(gSaveBlock2Ptr->frontier.towerWinStreaks[battleMode][lvlMode], 3); + TryPutFrontierTVShowOnAir(gSaveBlock2Ptr->frontier.towerWinStreaks[battleMode][lvlMode], 3); break; case FRONTIER_MODE_LINK_MULTIS: - sub_80EE8C8(gSaveBlock2Ptr->frontier.towerWinStreaks[battleMode][lvlMode], 4); + TryPutFrontierTVShowOnAir(gSaveBlock2Ptr->frontier.towerWinStreaks[battleMode][lvlMode], 4); break; } } @@ -1572,12 +1573,12 @@ static void sub_81A31FC(void) { gSaveBlock2Ptr->frontier.domeRecordWinStreaks[battleMode][lvlMode] = gSaveBlock2Ptr->frontier.domeWinStreaks[battleMode][lvlMode]; if (gSaveBlock2Ptr->frontier.domeWinStreaks[battleMode][lvlMode] > 1 - && sub_80EE818()) + && ShouldAirFrontierTVShow()) { if (battleMode == FRONTIER_MODE_SINGLES) - sub_80EE8C8(gSaveBlock2Ptr->frontier.domeWinStreaks[battleMode][lvlMode], 5); + TryPutFrontierTVShowOnAir(gSaveBlock2Ptr->frontier.domeWinStreaks[battleMode][lvlMode], 5); else - sub_80EE8C8(gSaveBlock2Ptr->frontier.domeWinStreaks[battleMode][lvlMode], 6); + TryPutFrontierTVShowOnAir(gSaveBlock2Ptr->frontier.domeWinStreaks[battleMode][lvlMode], 6); } } break; @@ -1586,12 +1587,12 @@ static void sub_81A31FC(void) { gSaveBlock2Ptr->frontier.palaceRecordWinStreaks[battleMode][lvlMode] = gSaveBlock2Ptr->frontier.palaceWinStreaks[battleMode][lvlMode]; if (gSaveBlock2Ptr->frontier.palaceWinStreaks[battleMode][lvlMode] > 1 - && sub_80EE818()) + && ShouldAirFrontierTVShow()) { if (battleMode == FRONTIER_MODE_SINGLES) - sub_80EE8C8(gSaveBlock2Ptr->frontier.palaceWinStreaks[battleMode][lvlMode], 11); + TryPutFrontierTVShowOnAir(gSaveBlock2Ptr->frontier.palaceWinStreaks[battleMode][lvlMode], 11); else - sub_80EE8C8(gSaveBlock2Ptr->frontier.palaceWinStreaks[battleMode][lvlMode], 12); + TryPutFrontierTVShowOnAir(gSaveBlock2Ptr->frontier.palaceWinStreaks[battleMode][lvlMode], 12); } } break; @@ -1600,9 +1601,9 @@ static void sub_81A31FC(void) { gSaveBlock2Ptr->frontier.arenaRecordStreaks[lvlMode] = gSaveBlock2Ptr->frontier.arenaWinStreaks[lvlMode]; if (gSaveBlock2Ptr->frontier.arenaWinStreaks[lvlMode] > 1 - && sub_80EE818()) + && ShouldAirFrontierTVShow()) { - sub_80EE8C8(gSaveBlock2Ptr->frontier.arenaWinStreaks[lvlMode], 10); + TryPutFrontierTVShowOnAir(gSaveBlock2Ptr->frontier.arenaWinStreaks[lvlMode], 10); } } break; @@ -1612,12 +1613,12 @@ static void sub_81A31FC(void) gSaveBlock2Ptr->frontier.factoryRecordWinStreaks[battleMode][lvlMode] = gSaveBlock2Ptr->frontier.factoryWinStreaks[battleMode][lvlMode]; gSaveBlock2Ptr->frontier.factoryRecordRentsCount[battleMode][lvlMode] = gSaveBlock2Ptr->frontier.factoryRentsCount[battleMode][lvlMode]; if (gSaveBlock2Ptr->frontier.factoryWinStreaks[battleMode][lvlMode] > 1 - && sub_80EE818()) + && ShouldAirFrontierTVShow()) { if (battleMode == FRONTIER_MODE_SINGLES) - sub_80EE8C8(gSaveBlock2Ptr->frontier.factoryWinStreaks[battleMode][lvlMode], 7); + TryPutFrontierTVShowOnAir(gSaveBlock2Ptr->frontier.factoryWinStreaks[battleMode][lvlMode], 7); else - sub_80EE8C8(gSaveBlock2Ptr->frontier.factoryWinStreaks[battleMode][lvlMode], 8); + TryPutFrontierTVShowOnAir(gSaveBlock2Ptr->frontier.factoryWinStreaks[battleMode][lvlMode], 8); } } break; @@ -1626,9 +1627,9 @@ static void sub_81A31FC(void) { gSaveBlock2Ptr->frontier.pikeRecordStreaks[lvlMode] = gSaveBlock2Ptr->frontier.pikeWinStreaks[lvlMode]; if (gSaveBlock2Ptr->frontier.pikeWinStreaks[lvlMode] > 1 - && sub_80EE818()) + && ShouldAirFrontierTVShow()) { - sub_80EE8C8(gSaveBlock2Ptr->frontier.pikeWinStreaks[lvlMode], 9); + TryPutFrontierTVShowOnAir(gSaveBlock2Ptr->frontier.pikeWinStreaks[lvlMode], 9); } } break; @@ -1637,9 +1638,9 @@ static void sub_81A31FC(void) { gSaveBlock2Ptr->frontier.pyramidRecordStreaks[lvlMode] = gSaveBlock2Ptr->frontier.pyramidWinStreaks[lvlMode]; if (gSaveBlock2Ptr->frontier.pyramidWinStreaks[lvlMode] > 1 - && sub_80EE818()) + && ShouldAirFrontierTVShow()) { - sub_80EE8C8(gSaveBlock2Ptr->frontier.pyramidWinStreaks[lvlMode], 13); + TryPutFrontierTVShowOnAir(gSaveBlock2Ptr->frontier.pyramidWinStreaks[lvlMode], 13); } } break; @@ -1772,11 +1773,11 @@ void CopyFrontierTrainerText(u8 whichText, u16 trainerId) } } -void sub_81A3908(void) +void ResetWinStreaks(void) { s32 battleMode, lvlMode; - gSaveBlock2Ptr->frontier.field_CDC = 0; + gSaveBlock2Ptr->frontier.winStreakActiveFlags = 0; for (battleMode = 0; battleMode < 4; battleMode++) { for (lvlMode = 0; lvlMode < 2; lvlMode++) @@ -1796,8 +1797,8 @@ void sub_81A3908(void) } } } - if (gSaveBlock2Ptr->frontier.challengeOutcome != 0) - gSaveBlock2Ptr->frontier.challengeOutcome = 1; + if (gSaveBlock2Ptr->frontier.challengeStatus != 0) + gSaveBlock2Ptr->frontier.challengeStatus = CHALLENGE_STATUS_SAVING; } u32 GetCurrentFacilityWinStreak(void) @@ -1827,11 +1828,11 @@ u32 GetCurrentFacilityWinStreak(void) } } -void sub_81A3ACC(void) +void ResetFrontierTrainerIds(void) { s32 i; - for (i = 0; i < 20; i++) + for (i = 0; i < (int)ARRAY_COUNT(gSaveBlock2Ptr->frontier.trainerIds); i++) gSaveBlock2Ptr->frontier.trainerIds[i] = 0xFFFF; } @@ -1849,7 +1850,7 @@ u8 GetPlayerSymbolCountForFacility(u8 facility) + FlagGet(FLAG_SYS_TOWER_GOLD + facility * 2); } -static void sub_81A3B64(void) +static void GiveBattlePoints(void) { s32 challengeNum = 0; s32 lvlMode = gSaveBlock2Ptr->frontier.lvlMode; @@ -1895,7 +1896,7 @@ static void sub_81A3B64(void) if (gSaveBlock2Ptr->frontier.battlePoints > MAX_BATTLE_FRONTIER_POINTS) gSaveBlock2Ptr->frontier.battlePoints = MAX_BATTLE_FRONTIER_POINTS; - points = gSaveBlock2Ptr->frontier.field_EBA; + points = gSaveBlock2Ptr->frontier.cardBattlePoints; points += sBattlePointAwards[challengeNum][facility][battleMode]; IncrementDailyBattlePoints(sBattlePointAwards[challengeNum][facility][battleMode]); if (gTrainerBattleOpponent_A == TRAINER_FRONTIER_BRAIN) @@ -1905,7 +1906,7 @@ static void sub_81A3B64(void) } if (points > 0xFFFF) points = 0xFFFF; - gSaveBlock2Ptr->frontier.field_EBA = points; + gSaveBlock2Ptr->frontier.cardBattlePoints = points; } static void GetFacilitySymbolCount(void) @@ -1931,7 +1932,7 @@ static void CheckBattleTypeFlag(void) gSpecialVar_Result = FALSE; } -static u8 AppendBannedMonSpeciesName(u16 species, u8 count, s32 numBannedMonsCaught) +static u8 AppendCaughtBannedMonSpeciesName(u16 species, u8 count, s32 numBannedMonsCaught) { if (GetSetPokedexFlag(SpeciesToNationalPokedexNum(species), FLAG_GET_CAUGHT)) { @@ -1961,7 +1962,7 @@ static u8 AppendBannedMonSpeciesName(u16 species, u8 count, s32 numBannedMonsCau StringAppend(gStringVar1, gText_SpaceAndSpace); else StringAppend(gStringVar1, gText_CommaSpace); - StringAppend(gStringVar1, gText_ScrollTextUp); + StringAppend(gStringVar1, gText_LineBreak); break; } StringAppend(gStringVar1, gSpeciesNames[species]); @@ -2003,7 +2004,10 @@ static void AppendIfValid(u16 species, u16 heldItem, u16 hp, u8 lvlMode, u8 monL (*count)++; } -static void sub_81A3FD4(void) +// gSpecialVar_Result is the level mode before and after calls to this function +// gSpecialVar_0x8004 is used to store the return value instead (TRUE if there are insufficient eligible mons) +// The names of ineligible pokemon that have been caught are also buffered to print +static void CheckPartyIneligibility(void) { u16 speciesArray[PARTY_SIZE]; u16 itemArray[PARTY_SIZE]; @@ -2013,20 +2017,23 @@ static void sub_81A3FD4(void) s32 battleMode = VarGet(VAR_FRONTIER_BATTLE_MODE); s32 monIdLooper; + // count is re-used, define for clarity + #define numEligibleMons count + switch (battleMode) { case FRONTIER_MODE_SINGLES: - toChoose = 3; + toChoose = FRONTIER_PARTY_SIZE; break; case FRONTIER_MODE_MULTIS: case FRONTIER_MODE_LINK_MULTIS: - toChoose = 2; + toChoose = FRONTIER_MULTI_PARTY_SIZE; break; case FRONTIER_MODE_DOUBLES: if (VarGet(VAR_FRONTIER_FACILITY) == FRONTIER_FACILITY_TOWER) - toChoose = 4; + toChoose = FRONTIER_DOUBLES_PARTY_SIZE; else - toChoose = 3; + toChoose = FRONTIER_PARTY_SIZE; break; } @@ -2034,7 +2041,7 @@ static void sub_81A3FD4(void) do { monId = monIdLooper; - count = 0; + numEligibleMons = 0; do { u16 species = GetMonData(&gPlayerParty[monId], MON_DATA_SPECIES2); @@ -2044,11 +2051,11 @@ static void sub_81A3FD4(void) if (VarGet(VAR_FRONTIER_FACILITY) == FRONTIER_FACILITY_PYRAMID) { if (heldItem == ITEM_NONE) - AppendIfValid(species, heldItem, hp, gSpecialVar_Result, level, speciesArray, itemArray, &count); + AppendIfValid(species, heldItem, hp, gSpecialVar_Result, level, speciesArray, itemArray, &numEligibleMons); } else { - AppendIfValid(species, heldItem, hp, gSpecialVar_Result, level, speciesArray, itemArray, &count); + AppendIfValid(species, heldItem, hp, gSpecialVar_Result, level, speciesArray, itemArray, &numEligibleMons); } monId++; if (monId >= PARTY_SIZE) @@ -2056,9 +2063,9 @@ static void sub_81A3FD4(void) } while (monId != monIdLooper); monIdLooper++; - } while (monIdLooper < PARTY_SIZE && count < toChoose); + } while (monIdLooper < PARTY_SIZE && numEligibleMons < toChoose); - if (count < toChoose) + if (numEligibleMons < toChoose) { s32 i; s32 caughtBannedMons = 0; @@ -2069,10 +2076,10 @@ static void sub_81A3FD4(void) caughtBannedMons++; } gStringVar1[0] = EOS; - gSpecialVar_0x8004 = 1; + gSpecialVar_0x8004 = TRUE; count = 0; for (i = 0; gFrontierBannedSpecies[i] != 0xFFFF; i++) - count = AppendBannedMonSpeciesName(gFrontierBannedSpecies[i], count, caughtBannedMons); + count = AppendCaughtBannedMonSpeciesName(gFrontierBannedSpecies[i], count, caughtBannedMons); if (count == 0) { @@ -2082,7 +2089,7 @@ static void sub_81A3FD4(void) else { if (count & 1) - StringAppend(gStringVar1, gText_ScrollTextUp); + StringAppend(gStringVar1, gText_LineBreak); else StringAppend(gStringVar1, gText_Space2); StringAppend(gStringVar1, gText_Are2); @@ -2090,9 +2097,10 @@ static void sub_81A3FD4(void) } else { - gSpecialVar_0x8004 = 0; + gSpecialVar_0x8004 = FALSE; gSaveBlock2Ptr->frontier.lvlMode = gSpecialVar_Result; } + #undef numEligibleMons } static void ValidateVisitingTrainer(void) @@ -2100,7 +2108,7 @@ static void ValidateVisitingTrainer(void) ValidateEReaderTrainer(); } -static void sub_81A4230(void) +static void IncrementWinStreak(void) { s32 lvlMode = gSaveBlock2Ptr->frontier.lvlMode; s32 battleMode = VarGet(VAR_FRONTIER_BATTLE_MODE); @@ -2109,50 +2117,50 @@ static void sub_81A4230(void) switch (facility) { case FRONTIER_FACILITY_TOWER: - if (gSaveBlock2Ptr->frontier.towerWinStreaks[battleMode][lvlMode] < 9999) + if (gSaveBlock2Ptr->frontier.towerWinStreaks[battleMode][lvlMode] < MAX_STREAK) { gSaveBlock2Ptr->frontier.towerWinStreaks[battleMode][lvlMode]++; if (battleMode == FRONTIER_MODE_SINGLES) { SetGameStat(GAME_STAT_BATTLE_TOWER_BEST_STREAK, gSaveBlock2Ptr->frontier.towerWinStreaks[battleMode][lvlMode]); - gSaveBlock2Ptr->frontier.field_D02 = gSaveBlock2Ptr->frontier.towerWinStreaks[battleMode][lvlMode]; + gSaveBlock2Ptr->frontier.towerSinglesStreak = gSaveBlock2Ptr->frontier.towerWinStreaks[battleMode][lvlMode]; } } break; case FRONTIER_FACILITY_DOME: - if (gSaveBlock2Ptr->frontier.domeWinStreaks[battleMode][lvlMode] < 9999) + if (gSaveBlock2Ptr->frontier.domeWinStreaks[battleMode][lvlMode] < MAX_STREAK) gSaveBlock2Ptr->frontier.domeWinStreaks[battleMode][lvlMode]++; - if (gSaveBlock2Ptr->frontier.domeTotalChampionships[battleMode][lvlMode] < 9999) + if (gSaveBlock2Ptr->frontier.domeTotalChampionships[battleMode][lvlMode] < MAX_STREAK) gSaveBlock2Ptr->frontier.domeTotalChampionships[battleMode][lvlMode]++; break; case FRONTIER_FACILITY_PALACE: - if (gSaveBlock2Ptr->frontier.palaceWinStreaks[battleMode][lvlMode] < 9999) + if (gSaveBlock2Ptr->frontier.palaceWinStreaks[battleMode][lvlMode] < MAX_STREAK) gSaveBlock2Ptr->frontier.palaceWinStreaks[battleMode][lvlMode]++; break; case FRONTIER_FACILITY_ARENA: - if (gSaveBlock2Ptr->frontier.arenaWinStreaks[lvlMode] < 9999) + if (gSaveBlock2Ptr->frontier.arenaWinStreaks[lvlMode] < MAX_STREAK) gSaveBlock2Ptr->frontier.arenaWinStreaks[lvlMode]++; break; case FRONTIER_FACILITY_FACTORY: - if (gSaveBlock2Ptr->frontier.factoryWinStreaks[battleMode][lvlMode] < 9999) + if (gSaveBlock2Ptr->frontier.factoryWinStreaks[battleMode][lvlMode] < MAX_STREAK) gSaveBlock2Ptr->frontier.factoryWinStreaks[battleMode][lvlMode]++; break; case FRONTIER_FACILITY_PIKE: - if (gSaveBlock2Ptr->frontier.pikeWinStreaks[lvlMode] < 9999) + if (gSaveBlock2Ptr->frontier.pikeWinStreaks[lvlMode] < MAX_STREAK) gSaveBlock2Ptr->frontier.pikeWinStreaks[lvlMode]++; break; case FRONTIER_FACILITY_PYRAMID: - if (gSaveBlock2Ptr->frontier.pyramidWinStreaks[lvlMode] < 9999) + if (gSaveBlock2Ptr->frontier.pyramidWinStreaks[lvlMode] < MAX_STREAK) gSaveBlock2Ptr->frontier.pyramidWinStreaks[lvlMode]++; break; } } -static void sub_81A43A8(void) +static void RestoreHeldItems(void) { u8 i; - for (i = 0; i < 4; i++) + for (i = 0; i < MAX_FRONTIER_PARTY_SIZE; i++) { if (gSaveBlock2Ptr->frontier.selectedPartyMons[i] != 0) { @@ -2162,7 +2170,7 @@ static void sub_81A43A8(void) } } -static void sub_81A4410(void) +static void SaveRecordBattle(void) { gSpecialVar_Result = MoveRecordedBattleToSaveData(); gSaveBlock2Ptr->frontier.field_CA9_b = 1; @@ -2185,7 +2193,7 @@ static void ResetSketchedMoves(void) { u8 i, j, k; - for (i = 0; i < 4; i++) + for (i = 0; i < MAX_FRONTIER_PARTY_SIZE; i++) { u16 monId = gSaveBlock2Ptr->frontier.selectedPartyMons[i] - 1; if (monId < PARTY_SIZE) @@ -2224,8 +2232,8 @@ static void Print1PRecord(s32 position, s32 x, s32 y, struct RankingHall1P *hall TVShowConvertInternationalString(text, hallRecord->name, hallRecord->language); AddTextPrinterParameterized(gRecordsWindowId, 1, text, (x + 2) * 8, (8 * (y + 5 * position)) + 1, TEXT_SPEED_FF, NULL); winStreak = hallRecord->winStreak; - if (winStreak > 9999) - winStreak = 9999; + if (winStreak > MAX_STREAK) + winStreak = MAX_STREAK; ConvertIntToDecimalStringN(gStringVar2, winStreak, STR_CONV_MODE_RIGHT_ALIGN, 4); StringExpandPlaceholders(gStringVar4, sHallFacilityToRecordsText[hallFacilityId]); AddTextPrinterParameterized(gRecordsWindowId, 1, gStringVar4, GetStringRightAlignXOffset(1, sHallFacilityToRecordsText[hallFacilityId], 0xC8), (8 * (y + 5 * position)) + 1, TEXT_SPEED_FF, NULL); @@ -2251,8 +2259,8 @@ static void Print2PRecord(s32 position, s32 x, s32 y, struct RankingHall2P *hall AddTextPrinterParameterized(gRecordsWindowId, 1, text, (x + 4) * 8, (8 * (y + 5 * position + 1)) + 1, TEXT_SPEED_FF, NULL); winStreak = hallRecord->winStreak; - if (winStreak > 9999) - winStreak = 9999; + if (winStreak > MAX_STREAK) + winStreak = MAX_STREAK; ConvertIntToDecimalStringN(gStringVar2, winStreak, STR_CONV_MODE_RIGHT_ALIGN, 4); StringExpandPlaceholders(gStringVar4, sHallFacilityToRecordsText[RANKING_HALL_BATTLE_TOWER_LINK]); AddTextPrinterParameterized(gRecordsWindowId, 1, gStringVar4, GetStringRightAlignXOffset(1, sHallFacilityToRecordsText[RANKING_HALL_BATTLE_TOWER_LINK], 0xC8), (8 * (y + 5 * position)) + 1, TEXT_SPEED_FF, NULL); @@ -2341,8 +2349,8 @@ static void PrintHallRecords(s32 hallFacilityId, s32 lvlMode) AddTextPrinterParameterized(gRecordsWindowId, 1, sLevelModeText[lvlMode], x, 1, TEXT_SPEED_FF, NULL); if (hallFacilityId == RANKING_HALL_BATTLE_TOWER_LINK) { - gSaveBlock2Ptr->frontier.opponentName[0][PLAYER_NAME_LENGTH] = EOS; - gSaveBlock2Ptr->frontier.opponentName[1][PLAYER_NAME_LENGTH] = EOS; + gSaveBlock2Ptr->frontier.opponentNames[0][PLAYER_NAME_LENGTH] = EOS; + gSaveBlock2Ptr->frontier.opponentNames[1][PLAYER_NAME_LENGTH] = EOS; Fill2PRecords(records2P, lvlMode); for (i = 0; i < 3; i++) Print2PRecord(i, 1, 4, &records2P[i]); @@ -2357,7 +2365,7 @@ static void PrintHallRecords(s32 hallFacilityId, s32 lvlMode) void ShowRankingHallRecordsWindow(void) { - gRecordsWindowId = AddWindow(&gUnknown_08611C84); + gRecordsWindowId = AddWindow(&sRankingHallRecordsWindowTemplate); DrawStdWindowFrame(gRecordsWindowId, FALSE); FillWindowPixelBuffer(gRecordsWindowId, PIXEL_FILL(1)); PrintHallRecords(gSpecialVar_0x8005, FRONTIER_LVL_50); @@ -2402,7 +2410,7 @@ void ClearRankingHallRecords(void) } } -void sub_81A4C30(void) +void SaveGameFrontier(void) { s32 i; struct Pokemon *monsParty = calloc(PARTY_SIZE, sizeof(struct Pokemon)); diff --git a/src/link.c b/src/link.c index b010558a5..dcc35d7d0 100644 --- a/src/link.c +++ b/src/link.c @@ -453,7 +453,7 @@ static void LinkTestProcessKeyInput(void) } if (gMain.newKeys & R_BUTTON) { - TrySavingData(1); + TrySavingData(SAVE_LINK); } if (gMain.newKeys & SELECT_BUTTON) { diff --git a/src/mystery_gift.c b/src/mystery_gift.c index aae7d127e..9da5f060a 100644 --- a/src/mystery_gift.c +++ b/src/mystery_gift.c @@ -921,7 +921,7 @@ static bool32 mevent_save_game(u8 * state) (*state)++; break; case 1: - TrySavingData(0); + TrySavingData(SAVE_NORMAL); (*state)++; break; case 2: diff --git a/src/new_game.c b/src/new_game.c index 1021ea96c..b24114f77 100644 --- a/src/new_game.c +++ b/src/new_game.c @@ -122,8 +122,8 @@ static void ClearFrontierRecord(void) { CpuFill32(0, &gSaveBlock2Ptr->frontier, sizeof(gSaveBlock2Ptr->frontier)); - gSaveBlock2Ptr->frontier.opponentName[0][0] = EOS; - gSaveBlock2Ptr->frontier.opponentName[1][0] = EOS; + gSaveBlock2Ptr->frontier.opponentNames[0][0] = EOS; + gSaveBlock2Ptr->frontier.opponentNames[1][0] = EOS; } static void WarpToTruck(void) diff --git a/src/overworld.c b/src/overworld.c index c2e3d2789..f135dd3b1 100644 --- a/src/overworld.c +++ b/src/overworld.c @@ -1715,7 +1715,7 @@ void CB2_ContinueSavedGame(void) StopMapMusic(); ResetSafariZoneFlag_(); if (gSaveFileStatus == 0xFF) - sub_81A3908(); + ResetWinStreaks(); LoadSaveblockMapHeader(); ClearDiveAndHoleWarps(); diff --git a/src/pokemon.c b/src/pokemon.c index 376f400e6..2b9483c53 100644 --- a/src/pokemon.c +++ b/src/pokemon.c @@ -1887,7 +1887,7 @@ const u16 gLinkPlayerFacilityClasses[] = FACILITY_CLASS_PKMN_BREEDER_M, FACILITY_CLASS_GUITARIST, FACILITY_CLASS_COOLTRAINER_F, FACILITY_CLASS_HEX_MANIAC, FACILITY_CLASS_PICNICKER, FACILITY_CLASS_LASS, FACILITY_CLASS_PSYCHIC_F, FACILITY_CLASS_BATTLE_GIRL, - FACILITY_CLASS_POKEMON_BREEDER_F, FACILITY_CLASS_BEAUTY + FACILITY_CLASS_PKMN_BREEDER_F, FACILITY_CLASS_BEAUTY }; static const u8 sHoldEffectToType[][2] = diff --git a/src/record_mixing.c b/src/record_mixing.c index 4ad47cc21..00b2cb076 100644 --- a/src/record_mixing.c +++ b/src/record_mixing.c @@ -1094,9 +1094,9 @@ void GetPlayerHallRecords(struct PlayerHallRecords *dst) { dst->twoPlayers[j].language = GAME_LANGUAGE; CopyTrainerId(dst->twoPlayers[j].id1, gSaveBlock2Ptr->playerTrainerId); - CopyTrainerId(dst->twoPlayers[j].id2, gSaveBlock2Ptr->frontier.field_EF1[j]); + CopyTrainerId(dst->twoPlayers[j].id2, gSaveBlock2Ptr->frontier.opponentTrainerIds[j]); StringCopy(dst->twoPlayers[j].name1, gSaveBlock2Ptr->playerName); - StringCopy(dst->twoPlayers[j].name2, gSaveBlock2Ptr->frontier.opponentName[j]); + StringCopy(dst->twoPlayers[j].name2, gSaveBlock2Ptr->frontier.opponentNames[j]); } for (i = 0; i < 2; i++) diff --git a/src/recorded_battle.c b/src/recorded_battle.c index bde2b7bb6..1533fd5ad 100644 --- a/src/recorded_battle.c +++ b/src/recorded_battle.c @@ -334,9 +334,9 @@ bool32 MoveRecordedBattleToSaveData(void) s32 i, j; bool32 ret; struct RecordedBattleSave *battleSave, *savSection; - u8 var; + u8 saveAttempts; - var = 0; + saveAttempts = 0; battleSave = AllocZeroed(sizeof(struct RecordedBattleSave)); savSection = AllocZeroed(0x1000); @@ -480,8 +480,8 @@ bool32 MoveRecordedBattleToSaveData(void) ret = RecordedBattleToSave(battleSave, savSection); if (ret == TRUE) break; - var++; - if (var >= 3) + saveAttempts++; + if (saveAttempts >= 3) break; } diff --git a/src/reset_rtc_screen.c b/src/reset_rtc_screen.c index eebaab52f..2bbf7d782 100644 --- a/src/reset_rtc_screen.c +++ b/src/reset_rtc_screen.c @@ -608,7 +608,7 @@ static void Task_ResetRtcScreen(u8 taskId) } break; case 4: - if (TrySavingData(0) == 1) + if (TrySavingData(SAVE_NORMAL) == 1) { ShowMessage(gText_SaveCompleted); PlaySE(SE_PINPON); diff --git a/src/save.c b/src/save.c index cdfd2ae1d..e1f5a6fff 100644 --- a/src/save.c +++ b/src/save.c @@ -683,8 +683,8 @@ u8 HandleSavingData(u8 saveType) SaveSerializedGame(); save_write_to_flash(0xFFFF, gRamSaveSectionLocations); break; - case SAVE_LINK: // _081532C4 - case SAVE_LINK2: + case SAVE_LINK: // Link and Battle Frontier + case SAVE_LINK2: // Unused SaveSerializedGame(); for(i = 0; i < 5; i++) ClearSaveData_2(i, gRamSaveSectionLocations); diff --git a/src/script_pokemon_util_80F87D8.c b/src/script_pokemon_util_80F87D8.c index 8c66be30f..8c3da5fc8 100755 --- a/src/script_pokemon_util_80F87D8.c +++ b/src/script_pokemon_util_80F87D8.c @@ -640,7 +640,7 @@ void CreateScriptedWildMon(u16 species, u8 level, u16 item) u8 heldItem[2]; ZeroEnemyPartyMons(); - CreateMon(&gEnemyParty[0], species, level, 0x20, 0, 0, OT_ID_PLAYER_ID, 0); + CreateMon(&gEnemyParty[0], species, level, 32, 0, 0, OT_ID_PLAYER_ID, 0); if (item) { heldItem[0] = item; diff --git a/src/trainer_card.c b/src/trainer_card.c index f3bff3731..9fa686e16 100755 --- a/src/trainer_card.c +++ b/src/trainer_card.c @@ -728,7 +728,7 @@ static void TrainerCard_GenerateCardForLinkPlayer(struct TrainerCard *trainerCar trainerCard->version = GAME_VERSION; SetPlayerCardData(trainerCard, CARD_TYPE_EMERALD); trainerCard->hasAllSymbols = HasAllFrontierSymbols(); - trainerCard->frontierBP = gSaveBlock2Ptr->frontier.field_EBA; + trainerCard->frontierBP = gSaveBlock2Ptr->frontier.cardBattlePoints; if (trainerCard->hasAllSymbols) trainerCard->stars++; @@ -744,7 +744,7 @@ void TrainerCard_GenerateCardForPlayer(struct TrainerCard *trainerCard) trainerCard->version = GAME_VERSION; SetPlayerCardData(trainerCard, CARD_TYPE_EMERALD); trainerCard->var_3A = HasAllFrontierSymbols(); - *((u16*)&trainerCard->berryCrushPoints) = gSaveBlock2Ptr->frontier.field_EBA; + *((u16*)&trainerCard->berryCrushPoints) = gSaveBlock2Ptr->frontier.cardBattlePoints; if (trainerCard->var_3A) trainerCard->stars++; diff --git a/src/tv.c b/src/tv.c index c81085551..fc23e538d 100644 --- a/src/tv.c +++ b/src/tv.c @@ -1,7 +1,6 @@ #include "global.h" #include "rtc.h" #include "overworld.h" -#include "constants/maps.h" #include "random.h" #include "event_data.h" #include "fieldmap.h" @@ -14,12 +13,9 @@ #include "pokemon_storage_system.h" #include "field_message_box.h" #include "easy_chat.h" -#include "constants/species.h" -#include "constants/moves.h" #include "battle.h" #include "battle_tower.h" #include "contest.h" -#include "constants/items.h" #include "item.h" #include "link.h" #include "main.h" @@ -33,15 +29,20 @@ #include "naming_screen.h" #include "malloc.h" #include "region_map.h" -#include "constants/region_map_sections.h" #include "decoration.h" #include "secret_base.h" #include "tv.h" #include "data.h" +#include "constants/battle_frontier.h" #include "constants/contest.h" +#include "constants/items.h" #include "constants/layouts.h" +#include "constants/maps.h" #include "constants/metatile_behaviors.h" +#include "constants/moves.h" +#include "constants/region_map_sections.h" #include "constants/script_menu.h" +#include "constants/species.h" #include "constants/tv.h" // Static type declarations @@ -1538,12 +1539,12 @@ static void InterviewAfter_BravoTrainerBattleTowerProfile(void) show->bravoTrainerTower.kind = TVSHOW_BRAVO_TRAINER_BATTLE_TOWER_PROFILE; show->bravoTrainerTower.active = TRUE; StringCopy(show->bravoTrainerTower.trainerName, gSaveBlock2Ptr->playerName); - StringCopy(show->bravoTrainerTower.pokemonName, gSaveBlock2Ptr->frontier.field_BD8); - show->bravoTrainerTower.species = gSaveBlock2Ptr->frontier.field_BD4; - show->bravoTrainerTower.defeatedSpecies = gSaveBlock2Ptr->frontier.field_BD6; - show->bravoTrainerTower.numFights = GetCurrentBattleTowerWinStreak(gSaveBlock2Ptr->frontier.field_D07, 0); - show->bravoTrainerTower.wonTheChallenge = gSaveBlock2Ptr->frontier.field_D06; - if (gSaveBlock2Ptr->frontier.field_D07 == 0) + StringCopy(show->bravoTrainerTower.pokemonName, gSaveBlock2Ptr->frontier.towerInterview.opponentName); + show->bravoTrainerTower.species = gSaveBlock2Ptr->frontier.towerInterview.playerSpecies; + show->bravoTrainerTower.defeatedSpecies = gSaveBlock2Ptr->frontier.towerInterview.opponentSpecies; + show->bravoTrainerTower.numFights = GetCurrentBattleTowerWinStreak(gSaveBlock2Ptr->frontier.towerLvlMode, 0); + show->bravoTrainerTower.wonTheChallenge = gSaveBlock2Ptr->frontier.towerBattleOutcome; + if (gSaveBlock2Ptr->frontier.towerLvlMode == FRONTIER_LVL_50) { show->bravoTrainerTower.btLevel = 50; } @@ -1554,13 +1555,13 @@ static void InterviewAfter_BravoTrainerBattleTowerProfile(void) show->bravoTrainerTower.interviewResponse = gSpecialVar_0x8004; tv_store_id_2x(show); show->bravoTrainerTower.language = gGameLanguage; - if (show->bravoTrainerTower.language == LANGUAGE_JAPANESE || gSaveBlock2Ptr->frontier.field_BEB == LANGUAGE_JAPANESE) + if (show->bravoTrainerTower.language == LANGUAGE_JAPANESE || gSaveBlock2Ptr->frontier.towerInterview.opponentLanguage == LANGUAGE_JAPANESE) { show->bravoTrainerTower.pokemonNameLanguage = LANGUAGE_JAPANESE; } else { - show->bravoTrainerTower.pokemonNameLanguage = gSaveBlock2Ptr->frontier.field_BEB; + show->bravoTrainerTower.pokemonNameLanguage = gSaveBlock2Ptr->frontier.towerInterview.opponentLanguage; } } @@ -2466,7 +2467,7 @@ bool8 ShouldHideFanClubInterviewer(void) return FALSE; } -bool8 sub_80EE818(void) +bool8 ShouldAirFrontierTVShow(void) { u32 playerId; u8 showIdx; @@ -2494,7 +2495,7 @@ bool8 sub_80EE818(void) return TRUE; } -void sub_80EE8C8(u16 winStreak, u8 facilityAndMode) +void TryPutFrontierTVShowOnAir(u16 winStreak, u8 facilityAndMode) { TVShow *show; -- cgit v1.2.3 From cc81b5032bfbc7e6bee63242b5c1db30d493bde6 Mon Sep 17 00:00:00 2001 From: GriffinR Date: Mon, 25 Nov 2019 14:19:17 -0500 Subject: Split frontier macros and comment frontier_util.inc --- asm/macros.inc | 12 +- asm/macros/battle_frontier.inc | 452 -------------------------- asm/macros/battle_frontier/apprentice.inc | 133 ++++++++ asm/macros/battle_frontier/battle_arena.inc | 1 + asm/macros/battle_frontier/battle_dome.inc | 1 + asm/macros/battle_frontier/battle_factory.inc | 1 + asm/macros/battle_frontier/battle_palace.inc | 1 + asm/macros/battle_frontier/battle_pike.inc | 54 +++ asm/macros/battle_frontier/battle_pyramid.inc | 1 + asm/macros/battle_frontier/battle_tower.inc | 7 + asm/macros/battle_frontier/frontier_util.inc | 153 +++++++++ asm/macros/battle_tent.inc | 1 + asm/macros/trainer_hill.inc | 92 ++++++ 13 files changed, 456 insertions(+), 453 deletions(-) delete mode 100644 asm/macros/battle_frontier.inc create mode 100644 asm/macros/battle_frontier/apprentice.inc create mode 100644 asm/macros/battle_frontier/battle_arena.inc create mode 100644 asm/macros/battle_frontier/battle_dome.inc create mode 100644 asm/macros/battle_frontier/battle_factory.inc create mode 100644 asm/macros/battle_frontier/battle_palace.inc create mode 100644 asm/macros/battle_frontier/battle_pike.inc create mode 100644 asm/macros/battle_frontier/battle_pyramid.inc create mode 100644 asm/macros/battle_frontier/battle_tower.inc create mode 100644 asm/macros/battle_frontier/frontier_util.inc create mode 100644 asm/macros/battle_tent.inc create mode 100644 asm/macros/trainer_hill.inc diff --git a/asm/macros.inc b/asm/macros.inc index f6a143d7a..6782f4200 100644 --- a/asm/macros.inc +++ b/asm/macros.inc @@ -6,7 +6,17 @@ .include "asm/macros/ec.inc" .include "asm/macros/map.inc" .include "asm/macros/field_effect_script.inc" - .include "asm/macros/battle_frontier.inc" + .include "asm/macros/trainer_hill.inc" + .include "asm/macros/battle_tent.inc" + .include "asm/macros/battle_frontier/apprentice.inc" + .include "asm/macros/battle_frontier/battle_arena.inc" + .include "asm/macros/battle_frontier/battle_dome.inc" + .include "asm/macros/battle_frontier/battle_factory.inc" + .include "asm/macros/battle_frontier/battle_palace.inc" + .include "asm/macros/battle_frontier/battle_pike.inc" + .include "asm/macros/battle_frontier/battle_pyramid.inc" + .include "asm/macros/battle_frontier/battle_tower.inc" + .include "asm/macros/battle_frontier/frontier_util.inc" .macro region_map_entry x, y, width, height, name .byte \x diff --git a/asm/macros/battle_frontier.inc b/asm/macros/battle_frontier.inc deleted file mode 100644 index ca06bc178..000000000 --- a/asm/macros/battle_frontier.inc +++ /dev/null @@ -1,452 +0,0 @@ - @ TODO: - @ Add macro comments - @ Split into individual files - @ Enforce tab spacing - @ Standardize Func->Function - - @ Frontier Util - - .macro frontier_getstatus - setvar VAR_0x8004, FRONTIER_UTIL_FUNC_GET_STATUS - special CallFrontierUtilFunc - .endm - - .macro frontier_get data:req - setvar VAR_0x8004, FRONTIER_UTIL_FUNC_GET_DATA - setvar VAR_0x8005, \data - special CallFrontierUtilFunc - .endm - - .macro frontier_set data:req, val=0xFFFF - setvar VAR_0x8004, FRONTIER_UTIL_FUNC_SET_DATA - setvar VAR_0x8005, \data - .if \val == 0xFFFF - @ no value provided - .elseif \val >= VARS_START - copyvar VAR_0x8006, \val - .else - setvar VAR_0x8006, \val - .endif - special CallFrontierUtilFunc - .endm - - .macro frontier_setpartyorder partySize:req - setvar VAR_0x8004, FRONTIER_UTIL_FUNC_SET_PARTY_ORDER - setvar VAR_0x8005, \partySize - special CallFrontierUtilFunc - .endm - - .macro frontier_reset - setvar VAR_0x8004, FRONTIER_UTIL_FUNC_SOFT_RESET - special CallFrontierUtilFunc - .endm - - .macro frontier_settrainers - setvar VAR_0x8004, FRONTIER_UTIL_FUNC_SET_TRAINERS - special CallFrontierUtilFunc - .endm - - .macro frontier_saveparty - setvar VAR_0x8004, FRONTIER_UTIL_FUNC_SAVE_PARTY - special CallFrontierUtilFunc - .endm - - @ Facilities with only 1 mode dont provide the mode argument - .macro frontier_results facility:req, mode=0xFF - setvar VAR_0x8004, FRONTIER_UTIL_FUNC_RESULTS_WINDOW - setvar VAR_0x8005, \facility - .if \mode != 0xFF - setvar VAR_0x8006, \mode - .endif - special CallFrontierUtilFunc - .endm - - .macro frontier_checkairshow - setvar VAR_0x8004, FRONTIER_UTIL_FUNC_CHECK_AIR_TV_SHOW - special CallFrontierUtilFunc - .endm - - .macro frontier_getbrainstatus - setvar VAR_0x8004, FRONTIER_UTIL_FUNC_GET_BRAIN_STATUS - special CallFrontierUtilFunc - .endm - - .macro frontier_isbrain - setvar VAR_0x8004, FRONTIER_UTIL_FUNC_IS_BRAIN - special CallFrontierUtilFunc - .endm - - .macro frontier_givepoints - setvar VAR_0x8004, FRONTIER_UTIL_FUNC_GIVE_BATTLE_POINTS - special CallFrontierUtilFunc - .endm - - .macro frontier_getsymbols - setvar VAR_0x8004, FRONTIER_UTIL_FUNC_GET_FACILITY_SYMBOLS - special CallFrontierUtilFunc - .endm - - .macro frontier_givesymbol - setvar VAR_0x8004, FRONTIER_UTIL_FUNC_GIVE_FACILITY_SYMBOL - special CallFrontierUtilFunc - .endm - - .macro frontier_isbattletype battleType:req - setvar VAR_0x8004, FRONTIER_UTIL_FUNC_CHECK_BATTLE_TYPE - setvar VAR_0x8005, \battleType - special CallFrontierUtilFunc - .endm - - .macro frontier_checkineligible - setvar VAR_0x8004, FRONTIER_UTIL_FUNC_CHECK_INELIGIBLE - special CallFrontierUtilFunc - .endm - - @ Validates the visiting E-Reader trainer. 0 if valid, 1 if not - .macro frontier_checkvisittrainer - setvar VAR_0x8004, FRONTIER_UTIL_FUNC_CHECK_VISIT_TRAINER - special CallFrontierUtilFunc - .endm - - .macro frontier_incrementstreak - setvar VAR_0x8004, FRONTIER_UTIL_FUNC_INCREMENT_STREAK - special CallFrontierUtilFunc - .endm - - .macro frontier_restorehelditems - setvar VAR_0x8004, FRONTIER_UTIL_FUNC_RESTORE_HELD_ITEMS - special CallFrontierUtilFunc - .endm - - .macro frontier_savebattle - setvar VAR_0x8004, FRONTIER_UTIL_FUNC_SAVE_BATTLE - special CallFrontierUtilFunc - .endm - - .macro frontier_gettrainername stringVar:req - setvar VAR_0x8004, FRONTIER_UTIL_FUNC_BUFFER_TRAINER_NAME - setvar VAR_0x8005, \stringVar - special CallFrontierUtilFunc - .endm - - .macro frontier_resetsketch - setvar VAR_0x8004, FRONTIER_UTIL_FUNC_RESET_SKETCH_MOVES - special CallFrontierUtilFunc - .endm - - .macro frontier_setbrainobj - setvar VAR_0x8004, FRONTIER_UTIL_FUNC_SET_BRAIN_OBJECT - special CallFrontierUtilFunc - .endm - - - @ Battle Tower - - .macro battletower_getstreak - setvar VAR_0x8004, BATTLE_TOWER_FUNC_1 - setvar VAR_0x8005, 1 - special CallBattleTowerFunc - .endm - - - @ Battle Dome - - - @ Battle Palace - - - @ Battle Arena - - - @ Battle Factory - - - @ Battle Pike - - .macro battlepike_getstreak - setvar VAR_0x8004, BATTLE_PIKE_FUNC_GET_DATA - setvar VAR_0x8005, 1 - special CallBattlePikeFunction - .endm - - .macro battlepike_setstreak streak:req - setvar VAR_0x8004, BATTLE_PIKE_FUNC_SET_DATA - setvar VAR_0x8005, 1 - .if \streak >= VARS_START - copyvar VAR_0x8006, \streak - .else - setvar VAR_0x8006, \streak - .endif - special CallBattlePikeFunction - .endm - - .macro battlepike_isfinalroom - setvar VAR_0x8004, BATTLE_PIKE_FUNC_IS_FINAL_ROOM - special CallBattlePikeFunction - .endm - - .macro battlepike_setroomobjects - setvar VAR_0x8004, BATTLE_PIKE_FUNC_SET_ROOM_OBJECTS - special CallBattlePikeFunction - .endm - - .macro battlepike_getroomtype - setvar VAR_0x8004, BATTLE_PIKE_FUNC_GET_ROOM_TYPE - special CallBattlePikeFunction - .endm - - .macro battlepike_setnextroom - setvar VAR_0x8004, BATTLE_PIKE_FUNC_SET_ROOM_TYPE - special CallBattlePikeFunction - .endm - - .macro battlepike_gethint - setvar VAR_0x8004, BATTLE_PIKE_FUNC_GET_ROOM_TYPE_HINT - special CallBattlePikeFunction - .endm - - .macro battlepike_nohealing set:req - setvar VAR_0x8004, BATTLE_PIKE_FUNC_SET_HEALING_ROOMS_DISABLED - setvar VAR_0x8005, \set - special CallBattlePikeFunction - .endm - - .macro battlepike_ispartyfullhealth - setvar VAR_0x8004, BATTLE_PIKE_FUNC_IS_PARTY_FULL_HEALTH - special CallBattlePikeFunction - .endm - - - @ Battle Pyramid - - - @ Battle Tent - - - @ Trainer Hill - - .macro trainerhill_start - setvar VAR_0x8004, TRAINER_HILL_FUNC_START - special CallTrainerHillFunction - .endm - - .macro trainerhill_getownerstate - setvar VAR_0x8004, TRAINER_HILL_FUNC_GET_OWNER_STATE - special CallTrainerHillFunction - .endm - - .macro trainerhill_giveprize - setvar VAR_0x8004, TRAINER_HILL_FUNC_GIVE_PRIZE - special CallTrainerHillFunction - .endm - - .macro trainerhill_finaltime - setvar VAR_0x8004, TRAINER_HILL_FUNC_CHECK_FINAL_TIME - special CallTrainerHillFunction - .endm - - .macro trainerhill_resumetimer - setvar VAR_0x8004, TRAINER_HILL_FUNC_RESUME_TIMER - special CallTrainerHillFunction - .endm - - .macro trainerhill_lost - setvar VAR_0x8004, TRAINER_HILL_FUNC_SET_LOST - special CallTrainerHillFunction - .endm - - .macro trainerhill_getstatus - setvar VAR_0x8004, TRAINER_HILL_FUNC_GET_CHALLENGE_STATUS - special CallTrainerHillFunction - .endm - - .macro trainerhill_gettime - setvar VAR_0x8004, TRAINER_HILL_FUNC_GET_CHALLENGE_TIME - special CallTrainerHillFunction - .endm - - .macro trainerhill_allfloorsused - setvar VAR_0x8004, TRAINER_HILL_FUNC_GET_ALL_FLOORS_USED - special CallTrainerHillFunction - .endm - - .macro trainerhill_clearresult - setvar VAR_0x8004, TRAINER_HILL_FUNC_CLEAR_RESULT - special CallTrainerHillFunction - .endm - - .macro trainerhill_inchallenge - setvar VAR_0x8004, TRAINER_HILL_FUNC_IN_CHALLENGE - special CallTrainerHillFunction - .endm - - .macro trainerhill_postbattletext - setvar VAR_0x8004, TRAINER_HILL_FUNC_POST_BATTLE_TEXT - special CallTrainerHillFunction - .endm - - .macro trainerhill_settrainerflags - setvar VAR_0x8004, TRAINER_HILL_FUNC_SET_ALL_TRAINER_FLAGS - special CallTrainerHillFunction - .endm - - .macro trainerhill_getsaved - setvar VAR_0x8004, TRAINER_HILL_FUNC_GET_GAME_SAVED - special CallTrainerHillFunction - .endm - - .macro trainerhill_setsaved - setvar VAR_0x8004, TRAINER_HILL_FUNC_SET_GAME_SAVED - special CallTrainerHillFunction - .endm - - .macro trainerhill_clearsaved - setvar VAR_0x8004, TRAINER_HILL_FUNC_CLEAR_GAME_SAVED - special CallTrainerHillFunction - .endm - - .macro trainerhill_getwon - setvar VAR_0x8004, TRAINER_HILL_FUNC_GET_WON - special CallTrainerHillFunction - .endm - - .macro trainerhill_settag tag:req - setvar VAR_0x8004, TRAINER_HILL_FUNC_SET_TAG - copyvar VAR_0x8005, \tag - special CallTrainerHillFunction - .endm - - - @ Apprentice - - .macro apprentice_gavelvlmode - setvar VAR_0x8004, APPRENTICE_FUNC_GAVE_LVLMODE - special CallApprenticeFunction - .endm - - .macro apprentice_setlvlmode lvlmode:req - setvar VAR_0x8004, APPRENTICE_FUNC_SET_LVLMODE - setorcopyvar VAR_0x8005, \lvlmode - addvar VAR_0x8005, 1 - special CallApprenticeFunction - .endm - - .macro apprentice_answeredquestion - setvar VAR_0x8004, APPRENTICE_FUNC_ANSWERED_QUESTION - special CallApprenticeFunction - .endm - - .macro apprentice_menu which:req - setvar VAR_0x8004, APPRENTICE_FUNC_MENU - setvar VAR_0x8005, \which - special CallApprenticeFunction - waitstate - .endm - - .macro apprentice_shufflespecies - setvar VAR_0x8004, APPRENTICE_FUNC_SHUFFLE_SPECIES - special CallApprenticeFunction - .endm - - .macro apprentice_randomizequestions - setvar VAR_0x8004, APPRENTICE_FUNC_RANDOMIZE_QUESTIONS - special CallApprenticeFunction - .endm - - .macro apprentice_msg waitbuttonpress:req, which:req - setvar VAR_0x8004, APPRENTICE_FUNC_PRINT_MSG - setvar VAR_0x8005, \waitbuttonpress - setvar VAR_0x8006, \which - special CallApprenticeFunction - waitstate - .endm - - .macro apprentice_reset - setvar VAR_0x8004, APPRENTICE_FUNC_RESET - special CallApprenticeFunction - .endm - - .macro apprentice_shouldcheckgone - setvar VAR_0x8004, APPRENTICE_FUNC_CHECK_GONE - special CallApprenticeFunction - .endm - - .macro apprentice_getquestion - setvar VAR_0x8004, APPRENTICE_FUNC_GET_QUESTION - special CallApprenticeFunction - .endm - - .macro apprentice_getnumpartymons - setvar VAR_0x8004, APPRENTICE_FUNC_GET_NUM_PARTY_MONS - special CallApprenticeFunction - .endm - - .macro apprentice_setpartymon slot:req - copyvar VAR_0x8006, \slot - setvar VAR_0x8004, APPRENTICE_FUNC_SET_PARTY_MON - special CallApprenticeFunction - .endm - - .macro apprentice_initquestion which:req - setvar VAR_0x8004, APPRENTICE_FUNC_INIT_QUESTION_DATA - setvar VAR_0x8005, \which - special CallApprenticeFunction - .endm - - .macro apprentice_freequestion - setvar VAR_0x8004, APPRENTICE_FUNC_FREE_QUESTION_DATA - special CallApprenticeFunction - .endm - - .macro apprentice_buff whichstringvar:req, tobuff:req - setvar VAR_0x8004, APPRENTICE_FUNC_BUFFER_STRING - setvar VAR_0x8005, \whichstringvar - .if \tobuff >= VARS_START - copyvar VAR_0x8006, \tobuff - .else - setvar VAR_0x8006, \tobuff - .endif - special CallApprenticeFunction - .endm - - .macro apprentice_setmove - setvar VAR_0x8004, APPRENTICE_FUNC_SET_MOVE - special CallApprenticeFunction - .endm - - .macro apprentice_setleadmon monId:req - copyvar VAR_0x8005, \monId - setvar VAR_0x8004, APPRENTICE_FUNC_SET_LEAD_MON - special CallApprenticeFunction - .endm - - .macro apprentice_openbag - setvar VAR_0x8004, APPRENTICE_FUNC_OPEN_BAG - special CallApprenticeFunction - waitstate - .endm - - .macro apprentice_trysetitem - setvar VAR_0x8004, APPRENTICE_FUNC_TRY_SET_HELD_ITEM - special CallApprenticeFunction - .endm - - .macro apprentice_save - setvar VAR_0x8004, APPRENTICE_FUNC_SAVE - special CallApprenticeFunction - .endm - - .macro apprentice_setgfx - setvar VAR_0x8004, APPRENTICE_FUNC_SET_GFX - special CallApprenticeFunction - .endm - - .macro apprentice_shouldleave - setvar VAR_0x8004, APPRENTICE_FUNC_SHOULD_LEAVE - special CallApprenticeFunction - .endm - - .macro apprentice_shiftsaved - setvar VAR_0x8004, APPRENTICE_FUNC_SHIFT_SAVED - special CallApprenticeFunction - .endm diff --git a/asm/macros/battle_frontier/apprentice.inc b/asm/macros/battle_frontier/apprentice.inc new file mode 100644 index 000000000..e9b098a18 --- /dev/null +++ b/asm/macros/battle_frontier/apprentice.inc @@ -0,0 +1,133 @@ +@ TODO: These need to have description comment + + .macro apprentice_gavelvlmode + setvar VAR_0x8004, APPRENTICE_FUNC_GAVE_LVLMODE + special CallApprenticeFunction + .endm + + .macro apprentice_setlvlmode lvlmode:req + setvar VAR_0x8004, APPRENTICE_FUNC_SET_LVLMODE + setorcopyvar VAR_0x8005, \lvlmode + addvar VAR_0x8005, 1 + special CallApprenticeFunction + .endm + + .macro apprentice_answeredquestion + setvar VAR_0x8004, APPRENTICE_FUNC_ANSWERED_QUESTION + special CallApprenticeFunction + .endm + + .macro apprentice_menu which:req + setvar VAR_0x8004, APPRENTICE_FUNC_MENU + setvar VAR_0x8005, \which + special CallApprenticeFunction + waitstate + .endm + + .macro apprentice_shufflespecies + setvar VAR_0x8004, APPRENTICE_FUNC_SHUFFLE_SPECIES + special CallApprenticeFunction + .endm + + .macro apprentice_randomizequestions + setvar VAR_0x8004, APPRENTICE_FUNC_RANDOMIZE_QUESTIONS + special CallApprenticeFunction + .endm + + .macro apprentice_msg waitbuttonpress:req, which:req + setvar VAR_0x8004, APPRENTICE_FUNC_PRINT_MSG + setvar VAR_0x8005, \waitbuttonpress + setvar VAR_0x8006, \which + special CallApprenticeFunction + waitstate + .endm + + .macro apprentice_reset + setvar VAR_0x8004, APPRENTICE_FUNC_RESET + special CallApprenticeFunction + .endm + + .macro apprentice_shouldcheckgone + setvar VAR_0x8004, APPRENTICE_FUNC_CHECK_GONE + special CallApprenticeFunction + .endm + + .macro apprentice_getquestion + setvar VAR_0x8004, APPRENTICE_FUNC_GET_QUESTION + special CallApprenticeFunction + .endm + + .macro apprentice_getnumpartymons + setvar VAR_0x8004, APPRENTICE_FUNC_GET_NUM_PARTY_MONS + special CallApprenticeFunction + .endm + + .macro apprentice_setpartymon slot:req + copyvar VAR_0x8006, \slot + setvar VAR_0x8004, APPRENTICE_FUNC_SET_PARTY_MON + special CallApprenticeFunction + .endm + + .macro apprentice_initquestion which:req + setvar VAR_0x8004, APPRENTICE_FUNC_INIT_QUESTION_DATA + setvar VAR_0x8005, \which + special CallApprenticeFunction + .endm + + .macro apprentice_freequestion + setvar VAR_0x8004, APPRENTICE_FUNC_FREE_QUESTION_DATA + special CallApprenticeFunction + .endm + + .macro apprentice_buff whichstringvar:req, tobuff:req + setvar VAR_0x8004, APPRENTICE_FUNC_BUFFER_STRING + setvar VAR_0x8005, \whichstringvar + .if \tobuff >= VARS_START + copyvar VAR_0x8006, \tobuff + .else + setvar VAR_0x8006, \tobuff + .endif + special CallApprenticeFunction + .endm + + .macro apprentice_setmove + setvar VAR_0x8004, APPRENTICE_FUNC_SET_MOVE + special CallApprenticeFunction + .endm + + .macro apprentice_setleadmon monId:req + copyvar VAR_0x8005, \monId + setvar VAR_0x8004, APPRENTICE_FUNC_SET_LEAD_MON + special CallApprenticeFunction + .endm + + .macro apprentice_openbag + setvar VAR_0x8004, APPRENTICE_FUNC_OPEN_BAG + special CallApprenticeFunction + waitstate + .endm + + .macro apprentice_trysetitem + setvar VAR_0x8004, APPRENTICE_FUNC_TRY_SET_HELD_ITEM + special CallApprenticeFunction + .endm + + .macro apprentice_save + setvar VAR_0x8004, APPRENTICE_FUNC_SAVE + special CallApprenticeFunction + .endm + + .macro apprentice_setgfx + setvar VAR_0x8004, APPRENTICE_FUNC_SET_GFX + special CallApprenticeFunction + .endm + + .macro apprentice_shouldleave + setvar VAR_0x8004, APPRENTICE_FUNC_SHOULD_LEAVE + special CallApprenticeFunction + .endm + + .macro apprentice_shiftsaved + setvar VAR_0x8004, APPRENTICE_FUNC_SHIFT_SAVED + special CallApprenticeFunction + .endm diff --git a/asm/macros/battle_frontier/battle_arena.inc b/asm/macros/battle_frontier/battle_arena.inc new file mode 100644 index 000000000..c7294145f --- /dev/null +++ b/asm/macros/battle_frontier/battle_arena.inc @@ -0,0 +1 @@ +@ To be populated with macros for CallBattleArenaFunction diff --git a/asm/macros/battle_frontier/battle_dome.inc b/asm/macros/battle_frontier/battle_dome.inc new file mode 100644 index 000000000..12672ea37 --- /dev/null +++ b/asm/macros/battle_frontier/battle_dome.inc @@ -0,0 +1 @@ +@ To be populated with macros for CallBattleDomeFunction diff --git a/asm/macros/battle_frontier/battle_factory.inc b/asm/macros/battle_frontier/battle_factory.inc new file mode 100644 index 000000000..9a8879df8 --- /dev/null +++ b/asm/macros/battle_frontier/battle_factory.inc @@ -0,0 +1 @@ +@ To be populated with macros for CallBattleFactoryFunction diff --git a/asm/macros/battle_frontier/battle_palace.inc b/asm/macros/battle_frontier/battle_palace.inc new file mode 100644 index 000000000..e9a61c952 --- /dev/null +++ b/asm/macros/battle_frontier/battle_palace.inc @@ -0,0 +1 @@ +@ To be populated with macros for CallBattlePalaceFunction diff --git a/asm/macros/battle_frontier/battle_pike.inc b/asm/macros/battle_frontier/battle_pike.inc new file mode 100644 index 000000000..0f2d2627d --- /dev/null +++ b/asm/macros/battle_frontier/battle_pike.inc @@ -0,0 +1,54 @@ +@ To be populated with macros for CallBattlePikeFunction + + .macro battlepike_getstreak + setvar VAR_0x8004, BATTLE_PIKE_FUNC_GET_DATA + setvar VAR_0x8005, 1 + special CallBattlePikeFunction + .endm + + .macro battlepike_setstreak streak:req + setvar VAR_0x8004, BATTLE_PIKE_FUNC_SET_DATA + setvar VAR_0x8005, 1 + .if \streak >= VARS_START + copyvar VAR_0x8006, \streak + .else + setvar VAR_0x8006, \streak + .endif + special CallBattlePikeFunction + .endm + + .macro battlepike_isfinalroom + setvar VAR_0x8004, BATTLE_PIKE_FUNC_IS_FINAL_ROOM + special CallBattlePikeFunction + .endm + + .macro battlepike_setroomobjects + setvar VAR_0x8004, BATTLE_PIKE_FUNC_SET_ROOM_OBJECTS + special CallBattlePikeFunction + .endm + + .macro battlepike_getroomtype + setvar VAR_0x8004, BATTLE_PIKE_FUNC_GET_ROOM_TYPE + special CallBattlePikeFunction + .endm + + .macro battlepike_setnextroom + setvar VAR_0x8004, BATTLE_PIKE_FUNC_SET_ROOM_TYPE + special CallBattlePikeFunction + .endm + + .macro battlepike_gethint + setvar VAR_0x8004, BATTLE_PIKE_FUNC_GET_ROOM_TYPE_HINT + special CallBattlePikeFunction + .endm + + .macro battlepike_nohealing set:req + setvar VAR_0x8004, BATTLE_PIKE_FUNC_SET_HEALING_ROOMS_DISABLED + setvar VAR_0x8005, \set + special CallBattlePikeFunction + .endm + + .macro battlepike_ispartyfullhealth + setvar VAR_0x8004, BATTLE_PIKE_FUNC_IS_PARTY_FULL_HEALTH + special CallBattlePikeFunction + .endm diff --git a/asm/macros/battle_frontier/battle_pyramid.inc b/asm/macros/battle_frontier/battle_pyramid.inc new file mode 100644 index 000000000..e23a819c0 --- /dev/null +++ b/asm/macros/battle_frontier/battle_pyramid.inc @@ -0,0 +1 @@ +@ To be populated with macros for CallBattlePyramidFunction diff --git a/asm/macros/battle_frontier/battle_tower.inc b/asm/macros/battle_frontier/battle_tower.inc new file mode 100644 index 000000000..e9f8c9293 --- /dev/null +++ b/asm/macros/battle_frontier/battle_tower.inc @@ -0,0 +1,7 @@ +@ To be populated with macros for CallBattleTowerFunc + + .macro battletower_getstreak + setvar VAR_0x8004, BATTLE_TOWER_FUNC_1 + setvar VAR_0x8005, 1 + special CallBattleTowerFunc + .endm diff --git a/asm/macros/battle_frontier/frontier_util.inc b/asm/macros/battle_frontier/frontier_util.inc new file mode 100644 index 000000000..def5b4d1c --- /dev/null +++ b/asm/macros/battle_frontier/frontier_util.inc @@ -0,0 +1,153 @@ + @ Get the status (CHALLENGE_STATUS_*) of the current challenge and store the result in VAR_TEMP_0 + .macro frontier_getstatus + setvar VAR_0x8004, FRONTIER_UTIL_FUNC_GET_STATUS + special CallFrontierUtilFunc + .endm + + @ Get the value of some FRONTIER_DATA_*. See GetFrontierData for the data types that can be retrieved + .macro frontier_get data:req + setvar VAR_0x8004, FRONTIER_UTIL_FUNC_GET_DATA + setvar VAR_0x8005, \data + special CallFrontierUtilFunc + .endm + + @ Set the value of some FRONTIER_DATA_*. Some data types do not need a val argument because the value is set directly from somewhere else. See SetFrontierData for the data types that can be set + .macro frontier_set data:req, val=0xFFFF + setvar VAR_0x8004, FRONTIER_UTIL_FUNC_SET_DATA + setvar VAR_0x8005, \data + .if \val == 0xFFFF + @ no value provided + .elseif \val >= VARS_START + copyvar VAR_0x8006, \val + .else + setvar VAR_0x8006, \val + .endif + special CallFrontierUtilFunc + .endm + + @ Load the selected mons into gSelectedOrderFromParty and reduce the players party to these mons + .macro frontier_setpartyorder partySize:req + setvar VAR_0x8004, FRONTIER_UTIL_FUNC_SET_PARTY_ORDER + setvar VAR_0x8005, \partySize + special CallFrontierUtilFunc + .endm + + @ Performs a soft reset + .macro frontier_reset + setvar VAR_0x8004, FRONTIER_UTIL_FUNC_SOFT_RESET + special CallFrontierUtilFunc + .endm + + @ Loads gBattleFrontierTrainers into gFacilityTrainers + .macro frontier_settrainers + setvar VAR_0x8004, FRONTIER_UTIL_FUNC_SET_TRAINERS + special CallFrontierUtilFunc + .endm + + @ Sets the selected party mons in the saveblock + .macro frontier_saveparty + setvar VAR_0x8004, FRONTIER_UTIL_FUNC_SAVE_PARTY + special CallFrontierUtilFunc + .endm + + @ Shows the results window for the given facility and mode. Facilities with only 1 mode dont provide the mode argument + .macro frontier_results facility:req, mode=0xFF + setvar VAR_0x8004, FRONTIER_UTIL_FUNC_RESULTS_WINDOW + setvar VAR_0x8005, \facility + .if \mode != 0xFF + setvar VAR_0x8006, \mode + .endif + special CallFrontierUtilFunc + .endm + + @ Checks if the Battle Frontier TV special should air, and if so attempts to set it up + .macro frontier_checkairshow + setvar VAR_0x8004, FRONTIER_UTIL_FUNC_CHECK_AIR_TV_SHOW + special CallFrontierUtilFunc + .endm + + @ Get the status of the Frontier Brain (Not ready, Silver/Gold streak before symbols, Silver/Gold streak after symbols) + .macro frontier_getbrainstatus + setvar VAR_0x8004, FRONTIER_UTIL_FUNC_GET_BRAIN_STATUS + special CallFrontierUtilFunc + .endm + + @ TRUE if the opponent is a Frontier Brain, FALSE otherwise + .macro frontier_isbrain + setvar VAR_0x8004, FRONTIER_UTIL_FUNC_IS_BRAIN + special CallFrontierUtilFunc + .endm + + @ Awards battle points depending on the current challenge + .macro frontier_givepoints + setvar VAR_0x8004, FRONTIER_UTIL_FUNC_GIVE_BATTLE_POINTS + special CallFrontierUtilFunc + .endm + + @ Returns 0-2 for the number of facility symbols the player has + .macro frontier_getsymbols + setvar VAR_0x8004, FRONTIER_UTIL_FUNC_GET_FACILITY_SYMBOLS + special CallFrontierUtilFunc + .endm + + @ Awards a frontier symbol depending on the current challenge + .macro frontier_givesymbol + setvar VAR_0x8004, FRONTIER_UTIL_FUNC_GIVE_FACILITY_SYMBOL + special CallFrontierUtilFunc + .endm + + @ TRUE if the given battleType is set in gBattleTypeFlags, FALSE otherwise + .macro frontier_isbattletype battleType:req + setvar VAR_0x8004, FRONTIER_UTIL_FUNC_CHECK_BATTLE_TYPE + setvar VAR_0x8005, \battleType + special CallFrontierUtilFunc + .endm + + @ TRUE if there are insufficient eligible party mons to participate in the challenge, and buffers caught ineligible species to STR_VAR_1. FALSE otherwise. The return value is stored in VAR_0x8004 instead, and the current level mode is expected to be in VAR_RESULT + .macro frontier_checkineligible + setvar VAR_0x8004, FRONTIER_UTIL_FUNC_CHECK_INELIGIBLE + special CallFrontierUtilFunc + .endm + + @ Validates the visiting E-Reader trainer. 0 if valid, 1 if not + .macro frontier_checkvisittrainer + setvar VAR_0x8004, FRONTIER_UTIL_FUNC_CHECK_VISIT_TRAINER + special CallFrontierUtilFunc + .endm + + @ Increments the current win streak by 1 + .macro frontier_incrementstreak + setvar VAR_0x8004, FRONTIER_UTIL_FUNC_INCREMENT_STREAK + special CallFrontierUtilFunc + .endm + + @ Resets the party held items to what they were upon entering the challenge + .macro frontier_restorehelditems + setvar VAR_0x8004, FRONTIER_UTIL_FUNC_RESTORE_HELD_ITEMS + special CallFrontierUtilFunc + .endm + + @ Move the recorded battle to save data + .macro frontier_savebattle + setvar VAR_0x8004, FRONTIER_UTIL_FUNC_SAVE_BATTLE + special CallFrontierUtilFunc + .endm + + @ Buffer the name of gTrainerBattleOpponent_A in STR_VAR_1 (0) or STR_VAR_2 (1) + .macro frontier_gettrainername stringVar:req + setvar VAR_0x8004, FRONTIER_UTIL_FUNC_BUFFER_TRAINER_NAME + setvar VAR_0x8005, \stringVar + special CallFrontierUtilFunc + .endm + + @ If any moves were copied using Sketch during the challenge then restore them to Sketch + .macro frontier_resetsketch + setvar VAR_0x8004, FRONTIER_UTIL_FUNC_RESET_SKETCH_MOVES + special CallFrontierUtilFunc + .endm + + @ Set the object event gfx of the Frontier Brain for the current facility + .macro frontier_setbrainobj + setvar VAR_0x8004, FRONTIER_UTIL_FUNC_SET_BRAIN_OBJECT + special CallFrontierUtilFunc + .endm diff --git a/asm/macros/battle_tent.inc b/asm/macros/battle_tent.inc new file mode 100644 index 000000000..9a304475b --- /dev/null +++ b/asm/macros/battle_tent.inc @@ -0,0 +1 @@ +@ To be populated with macros for CallVerdanturfTentFunction, CallFallarborTentFunction, and CallSlateportTentFunction diff --git a/asm/macros/trainer_hill.inc b/asm/macros/trainer_hill.inc new file mode 100644 index 000000000..7ea1c77f6 --- /dev/null +++ b/asm/macros/trainer_hill.inc @@ -0,0 +1,92 @@ +@ TODO: These need to have description comment + + .macro trainerhill_start + setvar VAR_0x8004, TRAINER_HILL_FUNC_START + special CallTrainerHillFunction + .endm + + .macro trainerhill_getownerstate + setvar VAR_0x8004, TRAINER_HILL_FUNC_GET_OWNER_STATE + special CallTrainerHillFunction + .endm + + .macro trainerhill_giveprize + setvar VAR_0x8004, TRAINER_HILL_FUNC_GIVE_PRIZE + special CallTrainerHillFunction + .endm + + .macro trainerhill_finaltime + setvar VAR_0x8004, TRAINER_HILL_FUNC_CHECK_FINAL_TIME + special CallTrainerHillFunction + .endm + + .macro trainerhill_resumetimer + setvar VAR_0x8004, TRAINER_HILL_FUNC_RESUME_TIMER + special CallTrainerHillFunction + .endm + + .macro trainerhill_lost + setvar VAR_0x8004, TRAINER_HILL_FUNC_SET_LOST + special CallTrainerHillFunction + .endm + + .macro trainerhill_getstatus + setvar VAR_0x8004, TRAINER_HILL_FUNC_GET_CHALLENGE_STATUS + special CallTrainerHillFunction + .endm + + .macro trainerhill_gettime + setvar VAR_0x8004, TRAINER_HILL_FUNC_GET_CHALLENGE_TIME + special CallTrainerHillFunction + .endm + + .macro trainerhill_allfloorsused + setvar VAR_0x8004, TRAINER_HILL_FUNC_GET_ALL_FLOORS_USED + special CallTrainerHillFunction + .endm + + .macro trainerhill_clearresult + setvar VAR_0x8004, TRAINER_HILL_FUNC_CLEAR_RESULT + special CallTrainerHillFunction + .endm + + .macro trainerhill_inchallenge + setvar VAR_0x8004, TRAINER_HILL_FUNC_IN_CHALLENGE + special CallTrainerHillFunction + .endm + + .macro trainerhill_postbattletext + setvar VAR_0x8004, TRAINER_HILL_FUNC_POST_BATTLE_TEXT + special CallTrainerHillFunction + .endm + + .macro trainerhill_settrainerflags + setvar VAR_0x8004, TRAINER_HILL_FUNC_SET_ALL_TRAINER_FLAGS + special CallTrainerHillFunction + .endm + + .macro trainerhill_getsaved + setvar VAR_0x8004, TRAINER_HILL_FUNC_GET_GAME_SAVED + special CallTrainerHillFunction + .endm + + .macro trainerhill_setsaved + setvar VAR_0x8004, TRAINER_HILL_FUNC_SET_GAME_SAVED + special CallTrainerHillFunction + .endm + + .macro trainerhill_clearsaved + setvar VAR_0x8004, TRAINER_HILL_FUNC_CLEAR_GAME_SAVED + special CallTrainerHillFunction + .endm + + .macro trainerhill_getwon + setvar VAR_0x8004, TRAINER_HILL_FUNC_GET_WON + special CallTrainerHillFunction + .endm + + .macro trainerhill_settag tag:req + setvar VAR_0x8004, TRAINER_HILL_FUNC_SET_TAG + copyvar VAR_0x8005, \tag + special CallTrainerHillFunction + .endm -- cgit v1.2.3 From 0db46e84bc44b23d7fd08faaa89e4fdc7abcc364 Mon Sep 17 00:00:00 2001 From: GriffinR Date: Mon, 25 Nov 2019 16:43:43 -0500 Subject: Use macros for FRONTIER_DATA_6, fix offset comment --- data/maps/BattleFrontier_BattleArenaBattleRoom/scripts.inc | 10 ++-------- data/maps/BattleFrontier_BattleDomeBattleRoom/scripts.inc | 5 +---- data/maps/BattleFrontier_BattleDomePreBattleRoom/scripts.inc | 5 +---- data/maps/BattleFrontier_BattleFactoryBattleRoom/scripts.inc | 10 ++-------- .../maps/BattleFrontier_BattleFactoryPreBattleRoom/scripts.inc | 5 +---- data/maps/BattleFrontier_BattlePalaceBattleRoom/scripts.inc | 10 ++-------- data/maps/BattleFrontier_BattleTowerBattleRoom/scripts.inc | 10 ++-------- data/maps/BattleFrontier_BattleTowerBattleRoom2/scripts.inc | 5 +---- data/maps/BattleFrontier_BattleTowerLobby/scripts.inc | 4 +--- .../maps/BattleFrontier_BattleTowerMultiBattleRoom/scripts.inc | 5 +---- include/global.h | 2 +- 11 files changed, 15 insertions(+), 56 deletions(-) diff --git a/data/maps/BattleFrontier_BattleArenaBattleRoom/scripts.inc b/data/maps/BattleFrontier_BattleArenaBattleRoom/scripts.inc index d95568275..bce065d39 100644 --- a/data/maps/BattleFrontier_BattleArenaBattleRoom/scripts.inc +++ b/data/maps/BattleFrontier_BattleArenaBattleRoom/scripts.inc @@ -45,10 +45,7 @@ BattleFrontier_BattleArenaBattleRoom_EventScript_2574DC:: @ 82574DC applymovement 5, BattleFrontier_BattleArenaBattleRoom_Movement_257C08 applymovement 8, BattleFrontier_BattleArenaBattleRoom_Movement_257BEB setvar VAR_TEMP_2, 1 - setvar VAR_0x8004, FRONTIER_UTIL_FUNC_SET_DATA - setvar VAR_0x8005, FRONTIER_DATA_6 - setvar VAR_0x8006, 1 - special CallFrontierUtilFunc + frontier_set FRONTIER_DATA_6, 1 goto BattleFrontier_BattleArenaBattleRoom_EventScript_2576B0 BattleFrontier_BattleArenaBattleRoom_EventScript_25752E:: @ 825752E @@ -394,10 +391,7 @@ BattleFrontier_BattleArenaBattleRoom_EventScript_257B6C:: @ 8257B6C FallarborTown_BattleTentBattleRoom_EventScript_257B6C:: @ 8257B6C closemessage setvar VAR_TEMP_2, 0 - setvar VAR_0x8004, FRONTIER_UTIL_FUNC_SET_DATA - setvar VAR_0x8005, FRONTIER_DATA_6 - setvar VAR_0x8006, 0 - special CallFrontierUtilFunc + frontier_set FRONTIER_DATA_6, 0 special HealPlayerParty setvar VAR_0x8004, SPECIAL_BATTLE_ARENA setvar VAR_0x8005, 0 diff --git a/data/maps/BattleFrontier_BattleDomeBattleRoom/scripts.inc b/data/maps/BattleFrontier_BattleDomeBattleRoom/scripts.inc index fc8bd8197..566464612 100644 --- a/data/maps/BattleFrontier_BattleDomeBattleRoom/scripts.inc +++ b/data/maps/BattleFrontier_BattleDomeBattleRoom/scripts.inc @@ -489,10 +489,7 @@ BattleFrontier_BattleDomeBattleRoom_EventScript_24C436:: @ 824C436 goto BattleFrontier_BattleDomeBattleRoom_EventScript_24BDF7 BattleFrontier_BattleDomeBattleRoom_EventScript_24C440:: @ 824C440 - setvar VAR_0x8004, FRONTIER_UTIL_FUNC_SET_DATA - setvar VAR_0x8005, FRONTIER_DATA_6 - setvar VAR_0x8006, 0 - special CallFrontierUtilFunc + frontier_set FRONTIER_DATA_6, 0 special HealPlayerParty setvar VAR_0x8004, SPECIAL_BATTLE_DOME setvar VAR_0x8005, 0 diff --git a/data/maps/BattleFrontier_BattleDomePreBattleRoom/scripts.inc b/data/maps/BattleFrontier_BattleDomePreBattleRoom/scripts.inc index a9e002f60..b0651bb1e 100644 --- a/data/maps/BattleFrontier_BattleDomePreBattleRoom/scripts.inc +++ b/data/maps/BattleFrontier_BattleDomePreBattleRoom/scripts.inc @@ -19,10 +19,7 @@ BattleFrontier_BattleDomePreBattleRoom_MapScript2_24B218: @ 824B218 BattleFrontier_BattleDomePreBattleRoom_EventScript_24B222:: @ 824B222 compare VAR_0x8006, 1 goto_if_eq BattleFrontier_BattleDomePreBattleRoom_EventScript_24B5C7 - setvar VAR_0x8004, FRONTIER_UTIL_FUNC_SET_DATA - setvar VAR_0x8005, FRONTIER_DATA_6 - setvar VAR_0x8006, 1 - special CallFrontierUtilFunc + frontier_set FRONTIER_DATA_6, 1 setvar VAR_TEMP_0, 1 applymovement EVENT_OBJ_ID_PLAYER, BattleFrontier_BattleDomePreBattleRoom_Movement_24B652 waitmovement 0 diff --git a/data/maps/BattleFrontier_BattleFactoryBattleRoom/scripts.inc b/data/maps/BattleFrontier_BattleFactoryBattleRoom/scripts.inc index 0449f8050..8e2fb872f 100644 --- a/data/maps/BattleFrontier_BattleFactoryBattleRoom/scripts.inc +++ b/data/maps/BattleFrontier_BattleFactoryBattleRoom/scripts.inc @@ -83,10 +83,7 @@ BattleFrontier_BattleFactoryBattleRoom_EventScript_25AEA7:: @ 825AEA7 msgbox gStringVar4, MSGBOX_DEFAULT waitmessage closemessage - setvar VAR_0x8004, FRONTIER_UTIL_FUNC_SET_DATA - setvar VAR_0x8005, FRONTIER_DATA_6 - setvar VAR_0x8006, 0 - special CallFrontierUtilFunc + frontier_set FRONTIER_DATA_6, 0 special HealPlayerParty setvar VAR_0x8004, SPECIAL_BATTLE_FACTORY setvar VAR_0x8005, 0 @@ -191,10 +188,7 @@ BattleFrontier_BattleFactoryBattleRoom_EventScript_25B09B:: @ 825B09B BattleFrontier_BattleFactoryBattleRoom_EventScript_25B0E0:: @ 825B0E0 closemessage - setvar VAR_0x8004, FRONTIER_UTIL_FUNC_SET_DATA - setvar VAR_0x8005, FRONTIER_DATA_6 - setvar VAR_0x8006, 0 - special CallFrontierUtilFunc + frontier_set FRONTIER_DATA_6, 0 special HealPlayerParty setvar VAR_0x8004, SPECIAL_BATTLE_FACTORY setvar VAR_0x8005, 0 diff --git a/data/maps/BattleFrontier_BattleFactoryPreBattleRoom/scripts.inc b/data/maps/BattleFrontier_BattleFactoryPreBattleRoom/scripts.inc index db1ab537b..4138bdb2c 100644 --- a/data/maps/BattleFrontier_BattleFactoryPreBattleRoom/scripts.inc +++ b/data/maps/BattleFrontier_BattleFactoryPreBattleRoom/scripts.inc @@ -235,10 +235,7 @@ BattleFrontier_BattleFactoryPreBattleRoom_EventScript_259E69:: @ 8259E69 setvar VAR_0x8004, 10 setvar VAR_0x8005, 0 special CallBattleFactoryFunction - setvar VAR_0x8004, FRONTIER_UTIL_FUNC_SET_DATA - setvar VAR_0x8005, FRONTIER_DATA_6 - setvar VAR_0x8006, 1 - special CallFrontierUtilFunc + frontier_set FRONTIER_DATA_6, 1 special CalculatePlayerPartyCount goto BattleFrontier_BattleFactoryPreBattleRoom_EventScript_259C13 diff --git a/data/maps/BattleFrontier_BattlePalaceBattleRoom/scripts.inc b/data/maps/BattleFrontier_BattlePalaceBattleRoom/scripts.inc index a414b4590..0f571ebe2 100644 --- a/data/maps/BattleFrontier_BattlePalaceBattleRoom/scripts.inc +++ b/data/maps/BattleFrontier_BattlePalaceBattleRoom/scripts.inc @@ -40,10 +40,7 @@ BattleFrontier_BattlePalaceBattleRoom_EventScript_24F86B:: @ 824F86B waitmovement 0 applymovement 3, BattleFrontier_BattlePalaceBattleRoom_Movement_24FEAC setvar VAR_TEMP_2, 1 - setvar VAR_0x8004, FRONTIER_UTIL_FUNC_SET_DATA - setvar VAR_0x8005, FRONTIER_DATA_6 - setvar VAR_0x8006, 1 - special CallFrontierUtilFunc + frontier_set FRONTIER_DATA_6, 1 goto BattleFrontier_BattlePalaceBattleRoom_EventScript_24F98A BattleFrontier_BattlePalaceBattleRoom_EventScript_24F8B5:: @ 824F8B5 @@ -299,10 +296,7 @@ BattleFrontier_BattlePalaceBattleRoom_EventScript_24FDF7:: @ 824FDF7 VerdanturfTown_BattleTentBattleRoom_EventScript_24FDF7:: @ 824FDF7 closemessage setvar VAR_TEMP_2, 0 - setvar VAR_0x8004, FRONTIER_UTIL_FUNC_SET_DATA - setvar VAR_0x8005, FRONTIER_DATA_6 - setvar VAR_0x8006, 0 - special CallFrontierUtilFunc + frontier_set FRONTIER_DATA_6, 0 special HealPlayerParty setvar VAR_0x8004, SPECIAL_BATTLE_PALACE setvar VAR_0x8005, 0 diff --git a/data/maps/BattleFrontier_BattleTowerBattleRoom/scripts.inc b/data/maps/BattleFrontier_BattleTowerBattleRoom/scripts.inc index 31e11532f..86a5e72e7 100644 --- a/data/maps/BattleFrontier_BattleTowerBattleRoom/scripts.inc +++ b/data/maps/BattleFrontier_BattleTowerBattleRoom/scripts.inc @@ -28,10 +28,7 @@ BattleFrontier_BattleTowerBattleRoom_EventScript_241B6C:: @ 8241B6C applymovement EVENT_OBJ_ID_PLAYER, BattleFrontier_BattleTowerBattleRoom_Movement_24217E waitmovement 0 setvar VAR_TEMP_2, 1 - setvar VAR_0x8004, FRONTIER_UTIL_FUNC_SET_DATA - setvar VAR_0x8005, FRONTIER_DATA_6 - setvar VAR_0x8006, 1 - special CallFrontierUtilFunc + frontier_set FRONTIER_DATA_6, 1 goto BattleFrontier_BattleTowerBattleRoom_EventScript_241C8F BattleFrontier_BattleTowerBattleRoom_EventScript_241BC3:: @ 8241BC3 @@ -323,10 +320,7 @@ BattleFrontier_BattleTowerBattleRoom2_EventScript_24210E:: @ 824210E BattleFrontier_BattleTowerBattleRoom_EventScript_24210E:: @ 824210E closemessage setvar VAR_TEMP_2, 0 - setvar VAR_0x8004, FRONTIER_UTIL_FUNC_SET_DATA - setvar VAR_0x8005, FRONTIER_DATA_6 - setvar VAR_0x8006, 0 - special CallFrontierUtilFunc + frontier_set FRONTIER_DATA_6, 0 special HealPlayerParty setvar VAR_0x8004, SPECIAL_BATTLE_TOWER setvar VAR_0x8005, 0 diff --git a/data/maps/BattleFrontier_BattleTowerBattleRoom2/scripts.inc b/data/maps/BattleFrontier_BattleTowerBattleRoom2/scripts.inc index aba9c517e..ab6e0f888 100644 --- a/data/maps/BattleFrontier_BattleTowerBattleRoom2/scripts.inc +++ b/data/maps/BattleFrontier_BattleTowerBattleRoom2/scripts.inc @@ -54,10 +54,7 @@ BattleFrontier_BattleTowerBattleRoom2_EventScript_248F4D:: @ 8248F4D applymovement 5, BattleFrontier_BattleTowerBattleRoom2_Movement_249524 applymovement 6, BattleFrontier_BattleTowerBattleRoom2_Movement_249524 waitmovement 0 - setvar VAR_0x8004, FRONTIER_UTIL_FUNC_SET_DATA - setvar VAR_0x8005, FRONTIER_DATA_6 - setvar VAR_0x8006, 1 - special CallFrontierUtilFunc + frontier_set FRONTIER_DATA_6, 1 goto BattleFrontier_BattleTowerBattleRoom2_EventScript_249143 BattleFrontier_BattleTowerBattleRoom2_EventScript_248FB4:: @ 8248FB4 diff --git a/data/maps/BattleFrontier_BattleTowerLobby/scripts.inc b/data/maps/BattleFrontier_BattleTowerLobby/scripts.inc index a00e3fe02..e64bd9690 100644 --- a/data/maps/BattleFrontier_BattleTowerLobby/scripts.inc +++ b/data/maps/BattleFrontier_BattleTowerLobby/scripts.inc @@ -181,9 +181,7 @@ BattleFrontier_BattlePalaceLobby_EventScript_23E8E0:: @ 823E8E0 BattleFrontier_BattleTowerBattleRoom2_EventScript_23E8E0:: @ 823E8E0 BattleFrontier_BattleTowerBattleRoom_EventScript_23E8E0:: @ 823E8E0 BattleFrontier_BattleTowerLobby_EventScript_23E8E0:: @ 823E8E0 - setvar VAR_0x8004, FRONTIER_UTIL_FUNC_GET_DATA - setvar VAR_0x8005, FRONTIER_DATA_6 - special CallFrontierUtilFunc + frontier_get FRONTIER_DATA_6 return BattleFrontier_BattleTowerLobby_EventScript_23E8EE:: @ 823E8EE diff --git a/data/maps/BattleFrontier_BattleTowerMultiBattleRoom/scripts.inc b/data/maps/BattleFrontier_BattleTowerMultiBattleRoom/scripts.inc index 833e8ba4c..62fe2de98 100644 --- a/data/maps/BattleFrontier_BattleTowerMultiBattleRoom/scripts.inc +++ b/data/maps/BattleFrontier_BattleTowerMultiBattleRoom/scripts.inc @@ -94,10 +94,7 @@ BattleFrontier_BattleTowerMultiBattleRoom_EventScript_243E7A:: @ 8243E7A end BattleFrontier_BattleTowerMultiBattleRoom_EventScript_243E9D:: @ 8243E9D - setvar VAR_0x8004, FRONTIER_UTIL_FUNC_SET_DATA - setvar VAR_0x8005, FRONTIER_DATA_6 - setvar VAR_0x8006, 1 - special CallFrontierUtilFunc + frontier_set FRONTIER_DATA_6, 1 goto BattleFrontier_BattleTowerMultiBattleRoom_EventScript_241C03 end diff --git a/include/global.h b/include/global.h index 9b1695a25..61186d084 100644 --- a/include/global.h +++ b/include/global.h @@ -336,7 +336,7 @@ struct BattleFrontier /*0xCA9*/ u8 unused_CA9_d:1; /*0xCA9*/ u8 unused_CA9_e:1; /*0xCA9*/ u8 unused_CA9_f:1; - /*0xCB0*/ u16 selectedPartyMons[MAX_FRONTIER_PARTY_SIZE]; + /*0xCAA*/ u16 selectedPartyMons[MAX_FRONTIER_PARTY_SIZE]; /*0xCB2*/ u16 curChallengeBattleNum; // Battle number / room number (Pike) / floor number (Pyramid) /*0xCB4*/ u16 trainerIds[20]; /*0xCDC*/ u32 winStreakActiveFlags; -- cgit v1.2.3 From 6efa51f8ad7b62a3a12c81f1d0bf299be31718b0 Mon Sep 17 00:00:00 2001 From: PikalaxALT Date: Mon, 25 Nov 2019 13:50:16 -0500 Subject: Bump discord invite New invite link points to landing channel --- README.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/README.md b/README.md index 5d4edab85..2c3447abc 100644 --- a/README.md +++ b/README.md @@ -33,4 +33,4 @@ Other disassembly and/or decompilation projects: ## Contacts -You can find us on [Discord](https://discord.gg/6EuWgX9) and [IRC](https://kiwiirc.com/client/irc.freenode.net/?#pret). +You can find us on [Discord](https://discord.gg/d5dubZ3) and [IRC](https://kiwiirc.com/client/irc.freenode.net/?#pret). -- cgit v1.2.3