mirror of
https://github.com/Ninjdai1/pokeemerald.git
synced 2024-12-26 11:44:17 +01:00
Finish documenting apprentice for now
This commit is contained in:
parent
d60e4e23f8
commit
f47ed3268c
@ -6690,7 +6690,7 @@ _08165B10:
|
||||
adds r1, 0x1
|
||||
cmp r1, 0x10
|
||||
bls _08165B10
|
||||
bl sub_819FA5C
|
||||
bl ResetApprenticeStruct
|
||||
pop {r0}
|
||||
bx r0
|
||||
thumb_func_end sub_8165B08
|
||||
|
@ -12,7 +12,7 @@ BattleFrontier_BattleTowerLobby_MapScript1_23E690: @ 823E690
|
||||
BattleFrontier_BattleTowerLobby_MapScript1_23E694: @ 823E694
|
||||
call BattleFrontier_BattleTowerLobby_EventScript_28CC84
|
||||
setvar VAR_0x8004, 10
|
||||
special sub_81A085C
|
||||
special CallApprenticeFunction
|
||||
compare VAR_0x8004, 0
|
||||
goto_eq BattleFrontier_BattleTowerLobby_EventScript_23E6B5
|
||||
checkflag FLAG_0x934
|
||||
@ -21,7 +21,7 @@ BattleFrontier_BattleTowerLobby_MapScript1_23E694: @ 823E694
|
||||
BattleFrontier_BattleTowerLobby_EventScript_23E6B5:: @ 823E6B5
|
||||
clearflag FLAG_0x2BD
|
||||
setvar VAR_0x8004, 23
|
||||
special sub_81A085C
|
||||
special CallApprenticeFunction
|
||||
|
||||
BattleFrontier_BattleTowerLobby_EventScript_23E6C0:: @ 823E6C0
|
||||
end
|
||||
|
@ -4,7 +4,7 @@
|
||||
setvar VAR_0x8004, 8
|
||||
setvar VAR_0x8005, \waitbuttonpress
|
||||
setvar VAR_0x8006, \which
|
||||
special sub_81A085C
|
||||
special CallApprenticeFunction
|
||||
waitstate
|
||||
.endm
|
||||
|
||||
@ -12,13 +12,13 @@ waitstate
|
||||
setvar VAR_0x8004, 16
|
||||
setvar VAR_0x8005, \whichstringvar
|
||||
setvar VAR_0x8006, \tobuff
|
||||
special sub_81A085C
|
||||
special CallApprenticeFunction
|
||||
.endm
|
||||
|
||||
.macro apprentice_menu which
|
||||
setvar VAR_0x8004, 7
|
||||
setvar VAR_0x8005, \which
|
||||
special sub_81A085C
|
||||
special CallApprenticeFunction
|
||||
waitstate
|
||||
.endm
|
||||
|
||||
@ -26,11 +26,11 @@ EventScript_Apprentice:: @ 82B688D
|
||||
lock
|
||||
faceplayer
|
||||
setvar VAR_0x8004, 0
|
||||
special sub_81A085C
|
||||
special CallApprenticeFunction
|
||||
compare VAR_RESULT, 0
|
||||
goto_eq Script_Apprentice_FirstMeeting
|
||||
setvar VAR_0x8004, 10
|
||||
special sub_81A085C
|
||||
special CallApprenticeFunction
|
||||
compare VAR_0x8004, 0
|
||||
goto_eq BattleFrontier_BattleTowerLobby_EventScript_2B68BE
|
||||
checkflag FLAG_0x934
|
||||
@ -38,7 +38,7 @@ EventScript_Apprentice:: @ 82B688D
|
||||
|
||||
BattleFrontier_BattleTowerLobby_EventScript_2B68BE:
|
||||
setvar VAR_0x8004, 11
|
||||
special sub_81A085C
|
||||
special CallApprenticeFunction
|
||||
compare VAR_RESULT, 2
|
||||
goto_eq BattleFrontier_BattleTowerLobby_EventScript_2B69D3
|
||||
compare VAR_RESULT, 4
|
||||
@ -66,9 +66,9 @@ Script_Apprentice_FirstMeetingNag:
|
||||
setvar VAR_0x8004, 1
|
||||
setorcopyvar VAR_0x8005, VAR_RESULT
|
||||
addvar VAR_0x8005, 1
|
||||
special sub_81A085C
|
||||
special CallApprenticeFunction
|
||||
setvar VAR_0x8004, 3
|
||||
special sub_81A085C
|
||||
special CallApprenticeFunction
|
||||
apprentice_buff 0, APPRENTICE_BUFF_LEVEL
|
||||
apprentice_msg TRUE, 3
|
||||
call Script_Apprentice_SetLeavingFlags
|
||||
@ -86,7 +86,7 @@ Script_Apprentice_FirstMeetingAskAgain:
|
||||
BattleFrontier_BattleTowerLobby_EventScript_2B69D3:
|
||||
setvar VAR_0x8004, 14
|
||||
setvar VAR_0x8005, 2
|
||||
special sub_81A085C
|
||||
special CallApprenticeFunction
|
||||
apprentice_buff 0, APPRENTICE_BUFF_SPECIES1
|
||||
apprentice_buff 1, APPRENTICE_BUFF_SPECIES2
|
||||
apprentice_msg FALSE, 6
|
||||
@ -97,22 +97,22 @@ BattleFrontier_BattleTowerLobby_EventScript_2B69D3:
|
||||
compare VAR_0x8005, 1
|
||||
call_if 1, BattleFrontier_BattleTowerLobby_EventScript_2B6AC0
|
||||
setvar VAR_0x8004, 12
|
||||
special sub_81A085C
|
||||
special CallApprenticeFunction
|
||||
copyvar VAR_0x8006, VAR_RESULT
|
||||
setvar VAR_0x8004, 13
|
||||
special sub_81A085C
|
||||
special CallApprenticeFunction
|
||||
setvar VAR_0x8004, 5
|
||||
special sub_81A085C
|
||||
special CallApprenticeFunction
|
||||
setvar VAR_0x8004, 12
|
||||
special sub_81A085C
|
||||
special CallApprenticeFunction
|
||||
compare VAR_RESULT, 3
|
||||
call_if 1, BattleFrontier_BattleTowerLobby_EventScript_2B6AC6
|
||||
setvar VAR_0x8004, 16
|
||||
setvar VAR_0x8005, 0
|
||||
copyvar VAR_0x8006, VAR_0x8007
|
||||
special sub_81A085C
|
||||
special CallApprenticeFunction
|
||||
setvar VAR_0x8004, 15
|
||||
special sub_81A085C
|
||||
special CallApprenticeFunction
|
||||
apprentice_msg TRUE, 7
|
||||
call Script_Apprentice_SetLeavingFlags
|
||||
release
|
||||
@ -132,34 +132,34 @@ BattleFrontier_BattleTowerLobby_EventScript_2B6AC0:
|
||||
|
||||
BattleFrontier_BattleTowerLobby_EventScript_2B6AC6:
|
||||
setvar VAR_0x8004, 4
|
||||
special sub_81A085C
|
||||
special CallApprenticeFunction
|
||||
return
|
||||
|
||||
BattleFrontier_BattleTowerLobby_EventScript_2B6ACF:
|
||||
setvar VAR_0x8004, 14
|
||||
setvar VAR_0x8005, 4
|
||||
special sub_81A085C
|
||||
special CallApprenticeFunction
|
||||
apprentice_buff 0, APPRENTICE_BUFF_SPECIES3
|
||||
apprentice_msg TRUE, 10
|
||||
setvar VAR_0x8004, 15
|
||||
special sub_81A085C
|
||||
special CallApprenticeFunction
|
||||
|
||||
BattleFrontier_BattleTowerLobby_EventScript_2B6B09:
|
||||
fadescreen 1
|
||||
setvar VAR_RESULT, 0
|
||||
setvar VAR_0x8004, 19
|
||||
special sub_81A085C
|
||||
special CallApprenticeFunction
|
||||
waitstate
|
||||
compare VAR_RESULT, 0
|
||||
goto_eq BattleFrontier_BattleTowerLobby_EventScript_2B6B81
|
||||
setvar VAR_0x8004, 20
|
||||
special sub_81A085C
|
||||
special CallApprenticeFunction
|
||||
compare VAR_RESULT, 0
|
||||
goto_eq BattleFrontier_BattleTowerLobby_EventScript_2B6C0C
|
||||
apprentice_buff 0, APPRENTICE_BUFF_ITEM
|
||||
apprentice_msg TRUE, 12
|
||||
setvar VAR_0x8004, 5
|
||||
special sub_81A085C
|
||||
special CallApprenticeFunction
|
||||
call Script_Apprentice_SetLeavingFlags
|
||||
release
|
||||
releaseall
|
||||
@ -171,19 +171,19 @@ BattleFrontier_BattleTowerLobby_EventScript_2B6B09:
|
||||
BattleFrontier_BattleTowerLobby_EventScript_2B6B81:
|
||||
setvar VAR_0x8004, 14
|
||||
setvar VAR_0x8005, 4
|
||||
special sub_81A085C
|
||||
special CallApprenticeFunction
|
||||
apprentice_buff 0, APPRENTICE_BUFF_SPECIES3
|
||||
apprentice_msg FALSE, 13
|
||||
apprentice_menu APPRENTICE_ASK_GIVE
|
||||
setvar VAR_0x8004, 15
|
||||
special sub_81A085C
|
||||
special CallApprenticeFunction
|
||||
compare VAR_RESULT, 0
|
||||
goto_eq BattleFrontier_BattleTowerLobby_EventScript_2B6B09
|
||||
|
||||
BattleFrontier_BattleTowerLobby_EventScript_2B6BD4:
|
||||
apprentice_msg TRUE, 14
|
||||
setvar VAR_0x8004, 5
|
||||
special sub_81A085C
|
||||
special CallApprenticeFunction
|
||||
call Script_Apprentice_SetLeavingFlags
|
||||
release
|
||||
releaseall
|
||||
@ -195,13 +195,13 @@ BattleFrontier_BattleTowerLobby_EventScript_2B6BD4:
|
||||
BattleFrontier_BattleTowerLobby_EventScript_2B6C0C:
|
||||
setvar VAR_0x8004, 14
|
||||
setvar VAR_0x8005, 4
|
||||
special sub_81A085C
|
||||
special CallApprenticeFunction
|
||||
apprentice_buff 0, APPRENTICE_BUFF_ITEM
|
||||
apprentice_buff 1, APPRENTICE_BUFF_SPECIES3
|
||||
apprentice_msg FALSE, 16
|
||||
apprentice_menu APPRENTICE_ASK_GIVE
|
||||
setvar VAR_0x8004, 15
|
||||
special sub_81A085C
|
||||
special CallApprenticeFunction
|
||||
compare VAR_RESULT, 0
|
||||
goto_eq BattleFrontier_BattleTowerLobby_EventScript_2B6B09
|
||||
goto BattleFrontier_BattleTowerLobby_EventScript_2B6BD4
|
||||
@ -210,7 +210,7 @@ BattleFrontier_BattleTowerLobby_EventScript_2B6C0C:
|
||||
BattleFrontier_BattleTowerLobby_EventScript_2B6C77:
|
||||
setvar VAR_0x8004, 14
|
||||
setvar VAR_0x8005, 3
|
||||
special sub_81A085C
|
||||
special CallApprenticeFunction
|
||||
apprentice_buff 0, APPRENTICE_BUFF_SPECIES3
|
||||
apprentice_buff 1, APPRENTICE_BUFF_MOVE1
|
||||
apprentice_buff 2, APPRENTICE_BUFF_MOVE2
|
||||
@ -222,15 +222,15 @@ BattleFrontier_BattleTowerLobby_EventScript_2B6C77:
|
||||
compare VAR_0x8005, 1
|
||||
call_if 1, BattleFrontier_BattleTowerLobby_EventScript_2B6D56
|
||||
setvar VAR_0x8004, 17
|
||||
special sub_81A085C
|
||||
special CallApprenticeFunction
|
||||
setvar VAR_0x8004, 5
|
||||
special sub_81A085C
|
||||
special CallApprenticeFunction
|
||||
setvar VAR_0x8004, 16
|
||||
setvar VAR_0x8005, 0
|
||||
copyvar VAR_0x8006, VAR_0x8007
|
||||
special sub_81A085C
|
||||
special CallApprenticeFunction
|
||||
setvar VAR_0x8004, 15
|
||||
special sub_81A085C
|
||||
special CallApprenticeFunction
|
||||
apprentice_msg TRUE, 9
|
||||
call Script_Apprentice_SetLeavingFlags
|
||||
release
|
||||
@ -253,9 +253,9 @@ BattleFrontier_BattleTowerLobby_EventScript_2B6D5C:
|
||||
apprentice_menu APPRENTICE_ASK_3SPECIES
|
||||
copyvar VAR_0x8005, VAR_RESULT
|
||||
setvar VAR_0x8004, 18
|
||||
special sub_81A085C
|
||||
special CallApprenticeFunction
|
||||
setvar VAR_0x8004, 5
|
||||
special sub_81A085C
|
||||
special CallApprenticeFunction
|
||||
apprentice_buff 0, APPRENTICE_BUFF_SPECIES4
|
||||
apprentice_msg TRUE, 5
|
||||
call Script_Apprentice_SetLeavingFlags
|
||||
@ -269,17 +269,17 @@ BattleFrontier_BattleTowerLobby_EventScript_2B6D5C:
|
||||
BattleFrontier_BattleTowerLobby_EventScript_2B6DD4:
|
||||
apprentice_msg TRUE, 11
|
||||
setvar VAR_0x8004, 25
|
||||
special sub_81A085C
|
||||
special CallApprenticeFunction
|
||||
setvar VAR_0x8004, 19
|
||||
call BattleFrontier_BattleTowerLobby_EventScript_271E7C
|
||||
lock
|
||||
faceplayer
|
||||
setvar VAR_0x8004, 21
|
||||
special sub_81A085C
|
||||
special CallApprenticeFunction
|
||||
apprentice_buff 0, APPRENTICE_BUFF_EASY_CHAT
|
||||
apprentice_msg TRUE, 15
|
||||
setvar VAR_0x8004, 9
|
||||
special sub_81A085C
|
||||
special CallApprenticeFunction
|
||||
call Script_Apprentice_SetLeavingFlags
|
||||
release
|
||||
releaseall
|
||||
@ -295,7 +295,7 @@ Script_Apprentice_SetLeavingFlags:
|
||||
|
||||
Script_Apprentice_LeaveGoRight:
|
||||
setvar VAR_0x8004, 24
|
||||
special sub_81A085C
|
||||
special CallApprenticeFunction
|
||||
compare VAR_0x8004, 0
|
||||
goto_eq Script_Apprentice_End
|
||||
applymovement 6, BattleFrontier_BattleTowerLobby_Movement_2B6E94
|
||||
@ -304,7 +304,7 @@ Script_Apprentice_LeaveGoRight:
|
||||
|
||||
Script_Apprentice_Leave:
|
||||
setvar VAR_0x8004, 24
|
||||
special sub_81A085C
|
||||
special CallApprenticeFunction
|
||||
compare VAR_0x8004, 0
|
||||
goto_eq Script_Apprentice_End
|
||||
applymovement 6, BattleFrontier_BattleTowerLobby_Movement_2B6E95
|
||||
|
@ -415,7 +415,7 @@ gSpecials:: @ 81DBA64
|
||||
def_special sub_818E990
|
||||
def_special PutLilycoveContestLadyShowOnTheAir
|
||||
def_special sub_813B880
|
||||
def_special sub_81A085C
|
||||
def_special CallApprenticeFunction
|
||||
def_special ShouldTryGetTrainerScript
|
||||
def_special ShowMapNamePopup
|
||||
def_special ShowMapNamePopup
|
||||
|
@ -15,6 +15,10 @@ struct ApprenticeTrainer
|
||||
extern const struct ApprenticeTrainer gApprentices[];
|
||||
|
||||
void CopyFriendsApprenticeChallengeText(u8 saveblockApprenticeId);
|
||||
void Apprentice_EnableBothScriptContexts(void);
|
||||
void ResetApprenticeStruct(struct Apprentice *apprentice);
|
||||
void ResetAllApprenticeData(void);
|
||||
void CallApprenticeFunction(void);
|
||||
const u8 *GetApprenticeNameInLanguage(u32 apprenticeId, s32 language);
|
||||
|
||||
#endif // GUARD_APPRENTICE_H
|
||||
|
@ -11,7 +11,6 @@ void sub_81A895C(void);
|
||||
u16 sub_81A89A0(u8);
|
||||
void sub_81A8AF8(void);
|
||||
bool8 InBattlePike(void);
|
||||
void sub_819FA50(void);
|
||||
void sub_81AA078(u16*, u8);
|
||||
void sub_81A4C30(void);
|
||||
bool8 sub_81A6BF4(void);
|
||||
|
555
src/apprentice.c
555
src/apprentice.c
@ -25,6 +25,7 @@
|
||||
#include "constants/items.h"
|
||||
#include "constants/songs.h"
|
||||
#include "constants/species.h"
|
||||
#include "constants/moves.h"
|
||||
|
||||
#define PLAYER_APPRENTICE gSaveBlock2Ptr->playerApprentice
|
||||
|
||||
@ -350,32 +351,40 @@ extern const u8 gUnknown_085DCF0E[];
|
||||
extern const u8 gUnknown_085DCEFA[];
|
||||
extern const u8 gUnknown_085DCF2C[];
|
||||
|
||||
void sub_81A093C(void);
|
||||
void sub_81A0964(void);
|
||||
void sub_81A0978(void);
|
||||
void sub_819FC60(void);
|
||||
void sub_81A0984(void);
|
||||
void sub_81A0990(void);
|
||||
void sub_81A09D0(void);
|
||||
void sub_81A0A20(void);
|
||||
void sub_81A0C9C(void);
|
||||
void sub_81A087C(void);
|
||||
void sub_81A1638(void);
|
||||
void sub_81A0CC0(void);
|
||||
void sub_81A09B4(void);
|
||||
void sub_81A0D40(void);
|
||||
void sub_81A0DD4(void);
|
||||
void sub_81A0FE4(void);
|
||||
void sub_81A0FFC(void);
|
||||
void sub_81A0D80(void);
|
||||
void sub_81A11F8(void);
|
||||
void sub_81A1218(void);
|
||||
void sub_81A1224(void);
|
||||
void sub_81A1438(void);
|
||||
void sub_81A150C(void);
|
||||
void sub_81A15A4(void);
|
||||
void sub_81A1644(void);
|
||||
void sub_81A1370(void);
|
||||
// This file's functions.
|
||||
static u16 sub_819FF98(u8 arg0);
|
||||
static bool8 sub_81A0194(u8 arg0, 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);
|
||||
static void ExecuteFuncAfterButtonPress(void (*func)(void));
|
||||
|
||||
static void Script_IsPlayersApprenticeActive(void);
|
||||
static void Script_SetPlayersApprenticeLvlMode(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_ResetPlayerApprentice(void);
|
||||
static void sub_81A1638(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 sub_81A0D80(void);
|
||||
static void sub_81A11F8(void);
|
||||
static void sub_81A1218(void);
|
||||
static void sub_81A1224(void);
|
||||
static void sub_81A1438(void);
|
||||
static void sub_81A150C(void);
|
||||
static void sub_81A15A4(void);
|
||||
static void sub_81A1644(void);
|
||||
static void sub_81A1370(void);
|
||||
|
||||
// rodata
|
||||
|
||||
@ -428,7 +437,7 @@ const struct ApprenticeTrainer gApprentices[] =
|
||||
.otId = 0xF555,
|
||||
.facilityClass = 0x31,
|
||||
.species = {SPECIES_STARMIE, SPECIES_DODRIO, SPECIES_MAGNETON, SPECIES_MEDICHAM, SPECIES_MIGHTYENA, SPECIES_GLALIE, SPECIES_GOLEM, SPECIES_ELECTRODE, SPECIES_PELIPPER, SPECIES_SHARPEDO},
|
||||
.rest = {6, 0, 0x0B, 0x0C, 0x3E, 0x12, 0x00, 0x0C, 0x31, 0x0A, 0x30, 0x14, 0x00, 0x0C},
|
||||
.rest = {6, 0, 0x0B, 0x0C, 0x3E, 0x12, 0x00, 0x0C, 0x31, 0x0A, 0x30, 0x14, 0x00, 0x0C},
|
||||
},
|
||||
{
|
||||
.name = {_("カズサ"), _("KALI"), _("JODIE"), _("ILENIA"), _("KARO"), _("ELSA")},
|
||||
@ -495,7 +504,7 @@ const struct ApprenticeTrainer gApprentices[] =
|
||||
},
|
||||
};
|
||||
|
||||
const u8 *const gUnknown_08610EF0[][4] =
|
||||
static const u8 *const gUnknown_08610EF0[][4] =
|
||||
{
|
||||
{gText_082B7229, gText_082B731C, gText_082B735B, gText_082B7423},
|
||||
{gText_082B74C1, gText_082B756F, gText_082B75B2, gText_082B763F},
|
||||
@ -515,7 +524,7 @@ const u8 *const gUnknown_08610EF0[][4] =
|
||||
{gText_082B9F55, gText_082BA084, gText_082BA11D, gText_082BA1F3},
|
||||
};
|
||||
|
||||
const u8 *const gUnknown_08610FF0[][2] =
|
||||
static const u8 *const gUnknown_08610FF0[][2] =
|
||||
{
|
||||
{gText_082BE50D, gText_082BE5F5},
|
||||
{gText_082BE679, gText_082BE71E},
|
||||
@ -535,7 +544,7 @@ const u8 *const gUnknown_08610FF0[][2] =
|
||||
{gText_082BFA5A, gText_082BFB4E},
|
||||
};
|
||||
|
||||
const u8 *const gUnknown_08611070[][5] =
|
||||
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},
|
||||
@ -555,7 +564,7 @@ const u8 *const gUnknown_08611070[][5] =
|
||||
{gText_082BCA4D, gText_082BCB75, gText_082BCBA6, gText_082BCBFC, gText_082BCCA4},
|
||||
};
|
||||
|
||||
const u8 *const gUnknown_086111B0[][2] =
|
||||
static const u8 *const gUnknown_086111B0[][2] =
|
||||
{
|
||||
{gText_082BFBF2, gText_082BFCAE},
|
||||
{gText_082BFD26, gText_082BFDB1},
|
||||
@ -575,7 +584,7 @@ const u8 *const gUnknown_086111B0[][2] =
|
||||
{gText_082C1003, gText_082C1122},
|
||||
};
|
||||
|
||||
const u8 *const gUnknown_08611230[][2] =
|
||||
static const u8 *const gUnknown_08611230[][2] =
|
||||
{
|
||||
{gText_082BCD68, gText_082BCE64},
|
||||
{gText_082BCEF2, gText_082BCF61},
|
||||
@ -595,7 +604,7 @@ const u8 *const gUnknown_08611230[][2] =
|
||||
{gText_082BE33E, gText_082BE46C},
|
||||
};
|
||||
|
||||
const u8 *const gUnknown_086112B0[][2] =
|
||||
static const u8 *const gUnknown_086112B0[][2] =
|
||||
{
|
||||
{gText_082C11D1, gText_082C12D5},
|
||||
{gText_082C13AB, gText_082C1444},
|
||||
@ -615,7 +624,7 @@ const u8 *const gUnknown_086112B0[][2] =
|
||||
{gText_082C2EF5, gText_082C3023},
|
||||
};
|
||||
|
||||
const u8 *const gUnknown_08611330[] =
|
||||
static const u8 *const gUnknown_08611330[] =
|
||||
{
|
||||
gText_082B6EA5,
|
||||
gText_082B6EEC,
|
||||
@ -635,36 +644,379 @@ const u8 *const gUnknown_08611330[] =
|
||||
gText_082B71F9,
|
||||
};
|
||||
|
||||
const bool8 gUnknown_08611370[] =
|
||||
static const bool8 gUnknown_08611370[MOVES_COUNT] =
|
||||
{
|
||||
0x00, 0x00, 0x01, 0x01, 0x00, 0x01, 0x00, 0x01, 0x01, 0x01, 0x00, 0x00, 0x01, 0x00, 0x01, 0x00, 0x00, 0x00, 0x01, 0x01, 0x01, 0x01, 0x00, 0x01, 0x01, 0x01, 0x01, 0x01, 0x01, 0x01, 0x00, 0x00,
|
||||
0x01, 0x00, 0x01, 0x01, 0x01, 0x01, 0x01, 0x00, 0x00, 0x01, 0x00, 0x00, 0x01, 0x00, 0x01, 0x01, 0x01, 0x01, 0x01, 0x00, 0x00, 0x01, 0x01, 0x00, 0x01, 0x01, 0x01, 0x01, 0x01, 0x00, 0x00, 0x01,
|
||||
0x00, 0x01, 0x01, 0x01, 0x01, 0x01, 0x01, 0x00, 0x00, 0x01, 0x01, 0x01, 0x01, 0x01, 0x01, 0x01, 0x01, 0x00, 0x01, 0x01, 0x00, 0x01, 0x01, 0x01, 0x00, 0x01, 0x01, 0x01, 0x01, 0x00, 0x01, 0x01,
|
||||
0x01, 0x01, 0x01, 0x00, 0x00, 0x01, 0x01, 0x01, 0x01, 0x01, 0x01, 0x01, 0x01, 0x01, 0x01, 0x01, 0x01, 0x01, 0x01, 0x01, 0x01, 0x00, 0x01, 0x01, 0x01, 0x01, 0x01, 0x00, 0x00, 0x00, 0x01, 0x01,
|
||||
0x01, 0x01, 0x01, 0x00, 0x00, 0x01, 0x01, 0x01, 0x01, 0x01, 0x01, 0x00, 0x00, 0x00, 0x01, 0x01, 0x01, 0x00, 0x01, 0x01, 0x01, 0x01, 0x00, 0x01, 0x01, 0x01, 0x00, 0x01, 0x01, 0x01, 0x01, 0x01,
|
||||
0x01, 0x01, 0x01, 0x01, 0x01, 0x01, 0x01, 0x01, 0x01, 0x01, 0x01, 0x01, 0x00, 0x01, 0x01, 0x01, 0x01, 0x01, 0x01, 0x01, 0x01, 0x00, 0x01, 0x01, 0x01, 0x01, 0x01, 0x01, 0x01, 0x01, 0x01, 0x01,
|
||||
0x01, 0x01, 0x01, 0x01, 0x01, 0x01, 0x00, 0x01, 0x01, 0x01, 0x01, 0x01, 0x01, 0x01, 0x01, 0x01, 0x01, 0x00, 0x01, 0x01, 0x01, 0x01, 0x01, 0x01, 0x01, 0x01, 0x01, 0x01, 0x01, 0x01, 0x00, 0x01,
|
||||
0x01, 0x01, 0x01, 0x01, 0x01, 0x01, 0x01, 0x01, 0x01, 0x01, 0x01, 0x01, 0x01, 0x01, 0x01, 0x00, 0x01, 0x01, 0x01, 0x01, 0x01, 0x01, 0x01, 0x01, 0x01, 0x01, 0x01, 0x01, 0x01, 0x01, 0x01, 0x01,
|
||||
0x01, 0x01, 0x01, 0x01, 0x01, 0x01, 0x01, 0x01, 0x01, 0x01, 0x01, 0x01, 0x01, 0x01, 0x01, 0x01, 0x01, 0x01, 0x01, 0x01, 0x01, 0x01, 0x01, 0x01, 0x01, 0x01, 0x01, 0x01, 0x01, 0x01, 0x01, 0x01,
|
||||
0x01, 0x01, 0x01, 0x01, 0x00, 0x01, 0x01, 0x01, 0x01, 0x01, 0x01, 0x01, 0x01, 0x00, 0x01, 0x01, 0x01, 0x00, 0x01, 0x01, 0x01, 0x01, 0x01, 0x01, 0x01, 0x01, 0x01, 0x01, 0x01, 0x01, 0x01, 0x01,
|
||||
0x01, 0x01, 0x01, 0x01, 0x01, 0x01, 0x01, 0x01, 0x01, 0x01, 0x01, 0x00, 0x01, 0x00, 0x01, 0x01, 0x01, 0x01, 0x01, 0x01, 0x01, 0x00, 0x01, 0x01, 0x01, 0x01, 0x01, 0x01, 0x01, 0x01, 0x00, 0x01,
|
||||
0x01, 0x01, 0x01,
|
||||
[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,
|
||||
};
|
||||
|
||||
const u8 gUnknown_086114D3[] = {0x01, 0x01, 0x01, 0x02, 0x02, 0x02, 0x02, 0x02, 0x03, 0x00, 0x00, 0x00, 0x00};
|
||||
static const u8 gUnknown_086114D3[] = {0x01, 0x01, 0x01, 0x02, 0x02, 0x02, 0x02, 0x02, 0x03, 0x00, 0x00, 0x00, 0x00};
|
||||
|
||||
void (* const gUnknown_086114E0[])(void) =
|
||||
static void (* const sApprenticeFunctions[])(void) =
|
||||
{
|
||||
sub_81A093C,
|
||||
sub_81A0964,
|
||||
Script_IsPlayersApprenticeActive,
|
||||
Script_SetPlayersApprenticeLvlMode,
|
||||
sub_81A0978,
|
||||
sub_819FC60,
|
||||
sub_81A0984,
|
||||
sub_81A0990,
|
||||
sub_81A09D0,
|
||||
sub_81A0A20,
|
||||
sub_81A0C9C,
|
||||
sub_81A087C,
|
||||
Script_CreateApprenticeMenu,
|
||||
Script_PrintMessage,
|
||||
Script_ResetPlayerApprentice,
|
||||
sub_81A1638,
|
||||
sub_81A0CC0,
|
||||
sub_81A09B4,
|
||||
@ -683,7 +1035,7 @@ void (* const gUnknown_086114E0[])(void) =
|
||||
sub_81A1370,
|
||||
};
|
||||
|
||||
const u8 gUnknown_08611548[8] = {0x00, 0x01, 0x02, 0x03, 0x06, 0x07, 0x08, 0x09};
|
||||
static const u8 gUnknown_08611548[8] = {0x00, 0x01, 0x02, 0x03, 0x06, 0x07, 0x08, 0x09};
|
||||
|
||||
// text
|
||||
extern const u8 gText_Give[];
|
||||
@ -691,15 +1043,6 @@ extern const u8 gText_NoNeed[];
|
||||
extern const u8 gText_Yes[];
|
||||
extern const u8 gText_No[];
|
||||
|
||||
// This file's functions.
|
||||
void sub_81A087C(void);
|
||||
static u16 sub_819FF98(u8 arg0);
|
||||
static bool8 sub_81A0194(u8 arg0, 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);
|
||||
static void ExecuteFuncAfterButtonPress(void (*func)(void));
|
||||
|
||||
void CopyFriendsApprenticeChallengeText(u8 saveblockApprenticeId)
|
||||
{
|
||||
u8 i, var;
|
||||
@ -716,12 +1059,12 @@ void CopyFriendsApprenticeChallengeText(u8 saveblockApprenticeId)
|
||||
StringExpandPlaceholders(gStringVar4, str);
|
||||
}
|
||||
|
||||
void sub_819FA50(void)
|
||||
void Apprentice_EnableBothScriptContexts(void)
|
||||
{
|
||||
EnableBothScriptContexts();
|
||||
}
|
||||
|
||||
void sub_819FA5C(struct Apprentice *apprentice)
|
||||
void ResetApprenticeStruct(struct Apprentice *apprentice)
|
||||
{
|
||||
u8 i;
|
||||
|
||||
@ -732,7 +1075,7 @@ void sub_819FA5C(struct Apprentice *apprentice)
|
||||
apprentice->id = 16;
|
||||
}
|
||||
|
||||
void sub_819FAA0(void)
|
||||
void ResetAllApprenticeData(void)
|
||||
{
|
||||
u8 i, j;
|
||||
|
||||
@ -752,7 +1095,7 @@ void sub_819FAA0(void)
|
||||
gSaveBlock2Ptr->apprentices[i].unk40 = 0;
|
||||
}
|
||||
|
||||
sub_81A087C();
|
||||
Script_ResetPlayerApprentice();
|
||||
}
|
||||
|
||||
static bool8 IsPlayersApprenticeActive(void)
|
||||
@ -760,7 +1103,7 @@ static bool8 IsPlayersApprenticeActive(void)
|
||||
return (PLAYER_APPRENTICE.activeLvlMode != 0);
|
||||
}
|
||||
|
||||
void sub_819FBC8(void)
|
||||
static void sub_819FBC8(void)
|
||||
{
|
||||
if (gSaveBlock2Ptr->apprentices[0].number == 0)
|
||||
{
|
||||
@ -783,7 +1126,7 @@ static void SetPlayersApprenticeLvlMode(u8 mode)
|
||||
PLAYER_APPRENTICE.activeLvlMode = mode;
|
||||
}
|
||||
|
||||
void sub_819FC60(void)
|
||||
static void sub_819FC60(void)
|
||||
{
|
||||
u8 array[APPRENTICE_SPECIES_COUNT];
|
||||
u8 i;
|
||||
@ -803,7 +1146,7 @@ void sub_819FC60(void)
|
||||
PLAYER_APPRENTICE.monIds[i] = ((array[i * 2] & 0xF) << 4) | ((array[i * 2 + 1]) & 0xF);
|
||||
}
|
||||
|
||||
u8 sub_819FCF8(u8 val, u8 *arg1, u8 *arg2)
|
||||
static u8 sub_819FCF8(u8 val, u8 *arg1, u8 *arg2)
|
||||
{
|
||||
u8 i, count;
|
||||
u8 ret = 0;
|
||||
@ -829,7 +1172,7 @@ u8 sub_819FCF8(u8 val, u8 *arg1, u8 *arg2)
|
||||
return ret;
|
||||
}
|
||||
|
||||
void sub_819FD64(void)
|
||||
static void sub_819FD64(void)
|
||||
{
|
||||
u8 sp_0[10];
|
||||
u8 sp_C[3];
|
||||
@ -1028,7 +1371,7 @@ static bool8 sub_81A0194(u8 arg0, u16 moveId)
|
||||
return TRUE;
|
||||
}
|
||||
|
||||
void GetLatestLearnedMoves(u16 species, u16 *moves)
|
||||
static void GetLatestLearnedMoves(u16 species, u16 *moves)
|
||||
{
|
||||
u8 i, j;
|
||||
u8 level, knownMovesCount;
|
||||
@ -1054,7 +1397,7 @@ void GetLatestLearnedMoves(u16 species, u16 *moves)
|
||||
moves[j] = learnset[(i - 1) - j] & 0x1FF;
|
||||
}
|
||||
|
||||
u16 sub_81A0284(u8 arg0, u8 speciesTableId, u8 arg2)
|
||||
static u16 sub_81A0284(u8 arg0, u8 speciesTableId, u8 arg2)
|
||||
{
|
||||
u16 moves[4];
|
||||
u8 i, count;
|
||||
@ -1084,7 +1427,7 @@ u16 sub_81A0284(u8 arg0, u8 speciesTableId, u8 arg2)
|
||||
return moves[arg2];
|
||||
}
|
||||
|
||||
void sub_81A0390(u8 arg0)
|
||||
static void sub_81A0390(u8 arg0)
|
||||
{
|
||||
struct ApprenticeMon *apprenticeMons[3];
|
||||
u8 i, j;
|
||||
@ -1221,7 +1564,7 @@ static void CreateMenuWithAnswers(u8 arg0)
|
||||
#define tWrapAround data[5]
|
||||
#define tWindowId data[6]
|
||||
|
||||
void Task_ChooseAnswer(u8 taskId)
|
||||
static void Task_ChooseAnswer(u8 taskId)
|
||||
{
|
||||
s8 input;
|
||||
s16 *data = gTasks[taskId].data;
|
||||
@ -1286,12 +1629,12 @@ static void CreateChooseAnswerTask(bool8 noBButton, u8 itemsCount, u8 windowId)
|
||||
#undef tWrapAround
|
||||
#undef tWindowId
|
||||
|
||||
void sub_81A085C(void)
|
||||
void CallApprenticeFunction(void)
|
||||
{
|
||||
gUnknown_086114E0[gSpecialVar_0x8004]();
|
||||
sApprenticeFunctions[gSpecialVar_0x8004]();
|
||||
}
|
||||
|
||||
void sub_81A087C(void)
|
||||
static void Script_ResetPlayerApprentice(void)
|
||||
{
|
||||
u8 i;
|
||||
|
||||
@ -1314,7 +1657,7 @@ void sub_81A087C(void)
|
||||
}
|
||||
}
|
||||
|
||||
void sub_81A093C(void)
|
||||
static void Script_IsPlayersApprenticeActive(void)
|
||||
{
|
||||
if (!IsPlayersApprenticeActive())
|
||||
gSpecialVar_Result = FALSE;
|
||||
@ -1322,32 +1665,32 @@ void sub_81A093C(void)
|
||||
gSpecialVar_Result = TRUE;
|
||||
}
|
||||
|
||||
void sub_81A0964(void)
|
||||
static void Script_SetPlayersApprenticeLvlMode(void)
|
||||
{
|
||||
SetPlayersApprenticeLvlMode(gSpecialVar_0x8005);
|
||||
}
|
||||
|
||||
void sub_81A0978(void)
|
||||
static void sub_81A0978(void)
|
||||
{
|
||||
sub_819FBC8();
|
||||
}
|
||||
|
||||
void sub_81A0984(void)
|
||||
static void sub_81A0984(void)
|
||||
{
|
||||
sub_819FD64();
|
||||
}
|
||||
|
||||
void sub_81A0990(void)
|
||||
static void sub_81A0990(void)
|
||||
{
|
||||
PLAYER_APPRENTICE.field_B1_1++;
|
||||
}
|
||||
|
||||
void sub_81A09B4(void)
|
||||
static void sub_81A09B4(void)
|
||||
{
|
||||
gSpecialVar_Result = PLAYER_APPRENTICE.field_B1_1;
|
||||
}
|
||||
|
||||
void sub_81A09D0(void)
|
||||
static void sub_81A09D0(void)
|
||||
{
|
||||
s32 var = PLAYER_APPRENTICE.field_B1_1 - 3;
|
||||
if (var < 0)
|
||||
@ -1366,7 +1709,7 @@ void sub_81A09D0(void)
|
||||
}
|
||||
}
|
||||
|
||||
void sub_81A0A20(void)
|
||||
static void Script_CreateApprenticeMenu(void)
|
||||
{
|
||||
CreateMenuWithAnswers(gSpecialVar_0x8005);
|
||||
}
|
||||
@ -1466,7 +1809,7 @@ static void PrintMessage(void)
|
||||
CreateTask(Task_WaitForPrintingMessage, 1);
|
||||
}
|
||||
|
||||
void sub_81A0C9C(void)
|
||||
static void Script_PrintMessage(void)
|
||||
{
|
||||
ScriptContext2_Enable();
|
||||
FreezeEventObjects();
|
||||
@ -1476,7 +1819,7 @@ void sub_81A0C9C(void)
|
||||
PrintMessage();
|
||||
}
|
||||
|
||||
void sub_81A0CC0(void)
|
||||
static void sub_81A0CC0(void)
|
||||
{
|
||||
if (PLAYER_APPRENTICE.field_B1_1 < 3)
|
||||
{
|
||||
@ -1507,7 +1850,7 @@ void sub_81A0CC0(void)
|
||||
}
|
||||
}
|
||||
|
||||
void sub_81A0D40(void)
|
||||
static void sub_81A0D40(void)
|
||||
{
|
||||
if (gSpecialVar_0x8005)
|
||||
{
|
||||
@ -1516,7 +1859,7 @@ void sub_81A0D40(void)
|
||||
}
|
||||
}
|
||||
|
||||
void sub_81A0D80(void)
|
||||
static void sub_81A0D80(void)
|
||||
{
|
||||
if (PLAYER_APPRENTICE.field_B1_1 >= 3)
|
||||
{
|
||||
@ -1528,7 +1871,7 @@ void sub_81A0D80(void)
|
||||
}
|
||||
}
|
||||
|
||||
void sub_81A0DD4(void)
|
||||
static void sub_81A0DD4(void)
|
||||
{
|
||||
u8 i;
|
||||
u8 count = 0;
|
||||
@ -1575,12 +1918,12 @@ void sub_81A0DD4(void)
|
||||
}
|
||||
}
|
||||
|
||||
void sub_81A0FE4(void)
|
||||
static void sub_81A0FE4(void)
|
||||
{
|
||||
FREE_AND_SET_NULL(gUnknown_030062F0);
|
||||
}
|
||||
|
||||
void sub_81A0FFC(void)
|
||||
static void sub_81A0FFC(void)
|
||||
{
|
||||
u8 *stringDst;
|
||||
u8 text[16];
|
||||
@ -1649,18 +1992,18 @@ void sub_81A0FFC(void)
|
||||
}
|
||||
}
|
||||
|
||||
void sub_81A11F8(void)
|
||||
static void sub_81A11F8(void)
|
||||
{
|
||||
PLAYER_APPRENTICE.field_B1_2 = gSpecialVar_0x8005;
|
||||
}
|
||||
|
||||
void sub_81A1218(void)
|
||||
static void sub_81A1218(void)
|
||||
{
|
||||
sub_81AAC28();
|
||||
}
|
||||
|
||||
#ifdef NONMATCHING
|
||||
void sub_81A1224(void)
|
||||
static void sub_81A1224(void)
|
||||
{
|
||||
u8 count;
|
||||
u8 i, j;
|
||||
@ -1691,7 +2034,7 @@ void sub_81A1224(void)
|
||||
}
|
||||
#else
|
||||
NAKED
|
||||
void sub_81A1224(void)
|
||||
static void sub_81A1224(void)
|
||||
{
|
||||
asm_unified("\n\
|
||||
push {r4-r7,lr}\n\
|
||||
@ -1864,7 +2207,7 @@ _081A1362:\n\
|
||||
}
|
||||
#endif // NONMATCHING
|
||||
|
||||
void sub_81A1370(void)
|
||||
static void sub_81A1370(void)
|
||||
{
|
||||
s32 i;
|
||||
s32 r10;
|
||||
@ -1898,7 +2241,7 @@ void sub_81A1370(void)
|
||||
gSaveBlock2Ptr->apprentices[r9] = gSaveBlock2Ptr->apprentices[0];
|
||||
}
|
||||
|
||||
void sub_81A1438(void)
|
||||
static void sub_81A1438(void)
|
||||
{
|
||||
u8 i;
|
||||
|
||||
@ -1921,7 +2264,7 @@ void sub_81A1438(void)
|
||||
sub_8165AE8(&gSaveBlock2Ptr->apprentices[0]);
|
||||
}
|
||||
|
||||
void sub_81A150C(void)
|
||||
static void sub_81A150C(void)
|
||||
{
|
||||
u8 i;
|
||||
u8 mapObjectGfxId;
|
||||
@ -1948,7 +2291,7 @@ void sub_81A150C(void)
|
||||
}
|
||||
}
|
||||
|
||||
void sub_81A15A4(void)
|
||||
static void sub_81A15A4(void)
|
||||
{
|
||||
u8 i;
|
||||
u8 mapObjectGfxId;
|
||||
@ -1975,12 +2318,12 @@ void sub_81A15A4(void)
|
||||
}
|
||||
}
|
||||
|
||||
void sub_81A1638(void)
|
||||
static void sub_81A1638(void)
|
||||
{
|
||||
gSpecialVar_0x8004 = 1;
|
||||
}
|
||||
|
||||
void sub_81A1644(void)
|
||||
static void sub_81A1644(void)
|
||||
{
|
||||
gSpecialVar_0x8004 = 1;
|
||||
}
|
||||
@ -2007,7 +2350,7 @@ const u8 *GetApprenticeNameInLanguage(u32 apprenticeId, s32 language)
|
||||
}
|
||||
}
|
||||
|
||||
void sub_81A16B4(u8 taskId)
|
||||
static void sub_81A16B4(u8 taskId)
|
||||
{
|
||||
if (gMain.newKeys & A_BUTTON || gMain.newKeys & B_BUTTON)
|
||||
SwitchTaskToFollowupFunc(taskId);
|
||||
@ -2030,7 +2373,7 @@ static void ExecuteFuncAfterButtonPress(void (*func)(void))
|
||||
gTasks[taskId].data[1] = (u32)(func) >> 16;
|
||||
}
|
||||
|
||||
void sub_81A175C(TaskFunc taskFunc)
|
||||
static void sub_81A175C(TaskFunc taskFunc)
|
||||
{
|
||||
u8 taskId = CreateTask(sub_81A16B4, 1);
|
||||
SetTaskFuncWithFollowupFunc(taskId, sub_81A16B4, taskFunc);
|
||||
|
@ -46,6 +46,7 @@
|
||||
#include "text_window.h"
|
||||
#include "menu_helpers.h"
|
||||
#include "window.h"
|
||||
#include "apprentice.h"
|
||||
|
||||
void GoToBagMenu(u8 bagMenuType, u8 pocketId, void ( *postExitMenuMainCallback2)());
|
||||
void CB2_Bag(void);
|
||||
@ -2203,7 +2204,7 @@ void unknown_ItemMenu_Show(u8 taskId)
|
||||
|
||||
void bag_menu_leave_maybe_3(void)
|
||||
{
|
||||
gFieldCallback = sub_819FA50;
|
||||
gFieldCallback = Apprentice_EnableBothScriptContexts;
|
||||
SetMainCallback2(CB2_ReturnToField);
|
||||
}
|
||||
|
||||
|
@ -25,6 +25,7 @@
|
||||
#include "battle_records.h"
|
||||
#include "item.h"
|
||||
#include "pokedex.h"
|
||||
#include "apprentice.h"
|
||||
|
||||
extern u8 gDifferentSaveFile;
|
||||
extern u16 gSaveFileStatus;
|
||||
@ -44,7 +45,6 @@ extern void NewGameInitPCItems(void);
|
||||
extern void ClearDecorationInventories(void);
|
||||
extern void ResetFanClub(void);
|
||||
extern void copy_strings_to_sav1(void);
|
||||
extern void sub_819FAA0(void);
|
||||
extern void sub_81A4B14(void);
|
||||
extern void sub_8195E10(void);
|
||||
extern void sub_801AFD8(void);
|
||||
@ -203,7 +203,7 @@ void NewGameInitData(void)
|
||||
ResetMiniGamesResults();
|
||||
copy_strings_to_sav1();
|
||||
SetLilycoveLady();
|
||||
sub_819FAA0();
|
||||
ResetAllApprenticeData();
|
||||
sub_81A4B14();
|
||||
sub_8195E10();
|
||||
sub_801AFD8();
|
||||
|
Loading…
Reference in New Issue
Block a user