Merge master into ObjEvent rename
This commit is contained in:
@@ -1,21 +1,21 @@
|
||||
#ifndef GUARD_APPRENTICE_H
|
||||
#define GUARD_APPRENTICE_H
|
||||
|
||||
#define APPRENTICE_SPECIES_COUNT 10
|
||||
#include "constants/apprentice.h"
|
||||
|
||||
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];
|
||||
u8 id;
|
||||
u16 easyChatWords[6];
|
||||
u16 speechLost[EASY_CHAT_BATTLE_WORDS_COUNT];
|
||||
};
|
||||
|
||||
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);
|
||||
|
||||
@@ -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 GetBattleBgPaletteNum(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);
|
||||
|
||||
|
||||
@@ -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[];
|
||||
|
||||
@@ -1,22 +1,88 @@
|
||||
#ifndef GUARD_CONSTANTS_APPRENTICE_H
|
||||
#define GUARD_CONSTANTS_APPRENTICE_H
|
||||
|
||||
#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 NUM_APPRENTICES 16
|
||||
#define APPRENTICE_SPECIES_COUNT 10
|
||||
|
||||
#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_EASY_CHAT 7
|
||||
#define APPRENTICE_BUFF_LEVEL 8
|
||||
#define APPRENTICE_BUFF_SPECIES4 9
|
||||
#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)
|
||||
|
||||
#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_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
|
||||
|
||||
// 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_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
|
||||
|
||||
@@ -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)
|
||||
|
||||
@@ -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,22 @@
|
||||
#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
|
||||
|
||||
// Challenge Statuses
|
||||
#define CHALLENGE_STATUS_SAVING 1
|
||||
#define CHALLENGE_STATUS_PAUSED 2
|
||||
#define CHALLENGE_STATUS_WON 3
|
||||
#define CHALLENGE_STATUS_LOST 4
|
||||
|
||||
// Special trainer battles.
|
||||
#define SPECIAL_BATTLE_TOWER 0
|
||||
@@ -45,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
|
||||
@@ -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
|
||||
|
||||
@@ -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
|
||||
|
||||
@@ -5,28 +5,71 @@
|
||||
#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
|
||||
#define FRONTIER_UTIL_FUNC_LOAD_SELECTED_PARTY 3
|
||||
// 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_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_9 9
|
||||
#define FRONTIER_UTIL_FUNC_IS_FRONTIER_BRAIN 10
|
||||
#define FRONTIER_UTIL_FUNC_11 11
|
||||
#define FRONTIER_UTIL_FUNC_CHECK_AIR_TV_SHOW 8
|
||||
#define FRONTIER_UTIL_FUNC_GET_BRAIN_STATUS 9
|
||||
#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_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_PAUSED 3
|
||||
#define FRONTIER_DATA_SELECTED_MON_ORDER 4
|
||||
#define FRONTIER_DATA_BATTLE_OUTCOME 5
|
||||
#define FRONTIER_DATA_6 6
|
||||
#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
|
||||
|
||||
@@ -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)
|
||||
@@ -48,21 +49,29 @@
|
||||
#define OBJECT_EVENT_TEMPLATES_COUNT 64
|
||||
#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.
|
||||
|
||||
#define TRAINER_ID_LENGTH 4
|
||||
#define PARTY_SIZE 6
|
||||
#define FRONTIER_PARTY_SIZE 3
|
||||
#define MULTI_PARTY_SIZE PARTY_SIZE / 2
|
||||
#define MAX_MON_MOVES 4
|
||||
|
||||
// party sizes
|
||||
#define PARTY_SIZE 6
|
||||
#define MULTI_PARTY_SIZE PARTY_SIZE / 2
|
||||
#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
|
||||
#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
|
||||
|
||||
@@ -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
|
||||
|
||||
@@ -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))
|
||||
|
||||
@@ -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
|
||||
|
||||
@@ -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
|
||||
|
||||
@@ -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
|
||||
|
||||
@@ -2,16 +2,16 @@
|
||||
#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);
|
||||
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);
|
||||
|
||||
122
include/global.h
122
include/global.h
@@ -214,14 +214,16 @@ 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;
|
||||
u8 lvlMode:2; // + 1
|
||||
u8 field_1;
|
||||
u8 numQuestions;
|
||||
u8 number;
|
||||
struct ApprenticeMon party[MULTI_PARTY_SIZE];
|
||||
u16 easyChatWords[6];
|
||||
u16 speechWon[EASY_CHAT_BATTLE_WORDS_COUNT];
|
||||
u8 playerId[TRAINER_ID_LENGTH];
|
||||
u8 playerName[PLAYER_NAME_LENGTH];
|
||||
u8 language;
|
||||
@@ -264,14 +266,23 @@ 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];
|
||||
/*0x34*/ struct BattleTowerPokemon party[4];
|
||||
/*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[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;
|
||||
@@ -279,9 +290,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;
|
||||
};
|
||||
@@ -315,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 field_CA8;
|
||||
/*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;
|
||||
/*0xCAA*/ 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 field_D00;
|
||||
/*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;
|
||||
@@ -386,41 +392,41 @@ 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 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
|
||||
{
|
||||
/*0xB0*/ u8 id;
|
||||
/*0xB1*/ u8 activeLvlMode:2; // +1, 0 means not active
|
||||
/*0xB1*/ u8 field_B1_1:4;
|
||||
/*0xB1*/ u8 field_B1_2: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 lvlMode:2; //0: Unassigned, 1: Lv 50, 2: Open Lv
|
||||
/*0xB1*/ u8 questionsAnswered:4;
|
||||
/*0xB1*/ u8 leadMonId:2;
|
||||
/*0xB2*/ u8 party:3;
|
||||
/*0xB2*/ u8 saveId:2;
|
||||
/*0xB3*/ u8 unused;
|
||||
/*0xB4*/ u8 speciesIds[MULTI_PARTY_SIZE];
|
||||
/*0xB8*/ struct ApprenticeQuestion questions[APPRENTICE_MAX_QUESTIONS];
|
||||
};
|
||||
|
||||
struct RankingHall1P
|
||||
@@ -465,7 +471,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 +955,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;
|
||||
|
||||
@@ -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[];
|
||||
|
||||
@@ -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);
|
||||
|
||||
@@ -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[];
|
||||
@@ -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[];
|
||||
@@ -2400,6 +2401,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[];
|
||||
|
||||
@@ -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);
|
||||
|
||||
Reference in New Issue
Block a user