Merge branch 'master' into gflib

This commit is contained in:
PikalaxALT
2019-09-27 09:11:22 -04:00
217 changed files with 5479 additions and 5086 deletions

View File

@@ -37,7 +37,6 @@
#define B_ACTION_NONE 0xFF
#define MAX_TRAINER_ITEMS 4
#define MAX_MON_MOVES 4
// array entries for battle communication
#define MULTIUSE_STATE 0x0
@@ -180,19 +179,19 @@ struct AI_ThinkingStruct
u8 aiState;
u8 movesetIndex;
u16 moveConsidered;
s8 score[4];
s8 score[MAX_MON_MOVES];
u32 funcResult;
u32 aiFlags;
u8 aiAction;
u8 aiLogicId;
u8 filler12[6];
u8 simulatedRNG[4];
u8 simulatedRNG[MAX_MON_MOVES];
};
struct UsedMoves
{
u16 moves[MAX_BATTLERS_COUNT];
u16 unknown[MAX_BATTLERS_COUNT];
u16 moves[MAX_MON_MOVES];
u16 unknown[MAX_MON_MOVES];
};
struct BattleHistory

View File

@@ -97,16 +97,16 @@ struct HpAndStatus
struct MovePpInfo
{
u16 moves[4];
u8 pp[4];
u16 moves[MAX_MON_MOVES];
u8 pp[MAX_MON_MOVES];
u8 ppBonuses;
};
struct ChooseMoveStruct
{
u16 moves[4];
u8 currentPp[4];
u8 maxPp[4];
u16 moves[MAX_MON_MOVES];
u8 currentPp[MAX_MON_MOVES];
u8 maxPp[MAX_MON_MOVES];
u16 species;
u8 monType1;
u8 monType2;

View File

@@ -7,7 +7,7 @@ struct RSBattleTowerRecord
/*0x01*/ u8 facilityClass;
/*0x02*/ u16 winStreak;
/*0x04*/ u8 name[PLAYER_NAME_LENGTH + 1];
/*0x0C*/ u8 trainerId[4];
/*0x0C*/ u8 trainerId[TRAINER_ID_LENGTH];
/*0x10*/ u16 greeting[6];
/*0x1C*/ struct BattleTowerPokemon party[3];
/*0xA0*/ u32 checksum;
@@ -27,7 +27,7 @@ struct BattleFrontierTrainer
struct FacilityMon
{
u16 species;
u16 moves[4];
u16 moves[MAX_MON_MOVES];
u8 itemTableId;
u8 evSpread;
u8 nature;

View File

@@ -1,39 +1,6 @@
#ifndef GUARD_BERRY_H
#define GUARD_BERRY_H
#define BERRY_NONE 0
enum
{
BERRY_FIRMNESS_UNKNOWN,
BERRY_FIRMNESS_VERY_SOFT,
BERRY_FIRMNESS_SOFT,
BERRY_FIRMNESS_HARD,
BERRY_FIRMNESS_VERY_HARD,
BERRY_FIRMNESS_SUPER_HARD,
};
enum
{
FLAVOR_SPICY,
FLAVOR_DRY,
FLAVOR_SWEET,
FLAVOR_BITTER,
FLAVOR_SOUR,
FLAVOR_COUNT
};
enum
{
BERRY_STAGE_NO_BERRY, // there is no tree planted and the soil is completely flat.
BERRY_STAGE_PLANTED,
BERRY_STAGE_SPROUTED,
BERRY_STAGE_TALLER,
BERRY_STAGE_FLOWERING,
BERRY_STAGE_BERRIES,
BERRY_STAGE_SPARKLING = 0xFF,
};
void ClearEnigmaBerries(void);
void SetEnigmaBerry(u8 *src);
bool32 IsEnigmaBerryValid(void);

View File

@@ -1,6 +1,8 @@
#ifndef GUARD_CONSTANTS_BATTLE_FRONTIER_H
#define GUARD_CONSTANTS_BATTLE_FRONTIER_H
#define FRONTIER_CHALLENGE(facility, mode) ((facility << 8) + mode)
// Battle Frontier facility ids.
#define FRONTIER_FACILITY_TOWER 0
#define FRONTIER_FACILITY_DOME 1
@@ -41,6 +43,36 @@
#define SPECIAL_BATTLE_PIKE_DOUBLE 9
#define SPECIAL_BATTLE_PYRAMID 10
#define MAX_BATTLE_FRONTIER_POINTS 9999
// Frontier Maniac
#define FRONTIER_MANIAC_BATTLE_TOWER_SINGLES 0
#define FRONTIER_MANIAC_BATTLE_TOWER_DOUBLES 1
#define FRONTIER_MANIAC_BATTLE_TOWER_MULTIS 2
#define FRONTIER_MANIAC_BATTLE_TOWER_LINK_MULTIS 3
#define FRONTIER_MANIAC_BATTLE_DOME 4
#define FRONTIER_MANIAC_BATTLE_FACTORY 5
#define FRONTIER_MANIAC_BATTLE_PALACE 6
#define FRONTIER_MANIAC_BATTLE_ARENA 7
#define FRONTIER_MANIAC_BATTLE_PIKE 8
#define FRONTIER_MANIAC_BATTLE_PYRAMID 9
#define FRONTIER_MANIAC_FACILITY_COUNT 10
#define FRONTIER_MANIAC_MESSAGE_COUNT 3
// Frontier Gambler
#define FRONTIER_GAMBLER_WAITING 0
#define FRONTIER_GAMBLER_PLACED_BET 1
#define FRONTIER_GAMBLER_WON 2
#define FRONTIER_GAMBLER_LOST 3
#define FRONTIER_GAMBLER_BET_5 0
#define FRONTIER_GAMBLER_BET_10 1
#define FRONTIER_GAMBLER_BET_15 2
#define FRONTIER_GAMBLER_BET_CANCEL 3
#define FRONTIER_GAMBLER_CHALLENGE_COUNT 12
// For 'ShowFacilityResultsWindow' function which is a part of the 'CallFrontierUtilFunc' special.
#define RESULTS_LINK_CONTEST 7

28
include/constants/berry.h Normal file
View File

@@ -0,0 +1,28 @@
#ifndef GUARD_CONSTANTS_BERRY_H
#define GUARD_CONSTANTS_BERRY_H
#define BERRY_NONE 0
#define BERRY_FIRMNESS_UNKNOWN 0
#define BERRY_FIRMNESS_VERY_SOFT 1
#define BERRY_FIRMNESS_SOFT 2
#define BERRY_FIRMNESS_HARD 3
#define BERRY_FIRMNESS_VERY_HARD 4
#define BERRY_FIRMNESS_SUPER_HARD 5
#define FLAVOR_SPICY 0
#define FLAVOR_DRY 1
#define FLAVOR_SWEET 2
#define FLAVOR_BITTER 3
#define FLAVOR_SOUR 4
#define FLAVOR_COUNT 5
#define BERRY_STAGE_NO_BERRY 0 // there is no tree planted and the soil is completely flat.
#define BERRY_STAGE_PLANTED 1
#define BERRY_STAGE_SPROUTED 2
#define BERRY_STAGE_TALLER 3
#define BERRY_STAGE_FLOWERING 4
#define BERRY_STAGE_BERRIES 5
#define BERRY_STAGE_SPARKLING 255
#endif // GUARD_CONSTANTS_BERRY_H

View File

@@ -0,0 +1,27 @@
#ifndef GUARD_DAYCARE_CONSTANTS_H
#define GUARD_DAYCARE_CONSTANTS_H
// Parent compatability scores
#define PARENTS_INCOMPATIBLE 0
#define PARENTS_LOW_COMPATIBILITY 20
#define PARENTS_MED_COMPATABILITY 50
#define PARENTS_MAX_COMPATABILITY 70
// Daycare state
#define DAYCARE_NO_MONS 0
#define DAYCARE_EGG_WAITING 1
#define DAYCARE_ONE_MON 2
#define DAYCARE_TWO_MONS 3
#define INHERITED_IV_COUNT 3
#define EGG_HATCH_LEVEL 5
#define EGG_GENDER_MALE 0x8000 // used to create a male egg from a female-only parent species (e.g. Nidoran)
#define DAYCARE_LEVEL_MENU_EXIT 5
#define DAYCARE_EXITED_LEVEL_MENU 2 // would be redundant with above if GF had used the same value
// Array buffers
#define EGG_MOVES_ARRAY_COUNT 10
#define EGG_LVL_UP_MOVES_ARRAY_COUNT 50
#endif //GUARD_DAYCARE_CONSTANTS_H

View File

@@ -0,0 +1,52 @@
#ifndef GUARD_CONSTANTS_FIELD_SPECIALS_H
#define GUARD_CONSTANTS_FIELD_SPECIALS_H
// PC Locations
#define PC_LOCATION_OTHER 0
#define PC_LOCATION_BRENDANS_HOUSE 1
#define PC_LOCATION_MAYS_HOUSE 2
// SS Tidal Locations
#define SS_TIDAL_LOCATION_OTHER 0
#define SS_TIDAL_LOCATION_SLATEPORT 1
#define SS_TIDAL_LOCATION_LILYCOVE 2
#define SS_TIDAL_LOCATION_ROUTE124 3
#define SS_TIDAL_LOCATION_ROUTE131 4
// Scrollable Multichoice Menus
#define SCROLL_MULTI_NONE 0
#define SCROLL_MULTI_GLASS_WORKSHOP_VENDOR 1
#define SCROLL_MULTI_POKEMON_FAN_CLUB_RATER 2
#define SCROLL_MULTI_BF_EXCHANGE_CORNER_DECOR_VENDOR_1 3
#define SCROLL_MULTI_BF_EXCHANGE_CORNER_DECOR_VENDOR_2 4
#define SCROLL_MULTI_BF_EXCHANGE_CORNER_VITAMIN_VENDOR 5
#define SCROLL_MULTI_BF_EXCHANGE_CORNER_HOLD_ITEM_VENDOR 6
#define SCROLL_MULTI_BERRY_POWDER_VENDOR 7
#define SCROLL_MULTI_BF_RECEPTIONIST 8
#define SCROLL_MULTI_BF_MOVE_TUTOR_1 9
#define SCROLL_MULTI_BF_MOVE_TUTOR_2 10
#define SCROLL_MULTI_SS_TIDAL_DESTINATION 11
#define SCROLL_MULTI_BATTLE_TENT_RULES 12
#define MAX_SCROLL_MULTI_ON_SCREEN 6
#define MAX_SCROLL_MULTI_LENGTH 16
// Dept Store Floor Numbers
#define DEPT_STORE_FLOORNUM_B4F 0
#define DEPT_STORE_FLOORNUM_B3F 1
#define DEPT_STORE_FLOORNUM_B2F 2
#define DEPT_STORE_FLOORNUM_B1F 3
#define DEPT_STORE_FLOORNUM_1F 4
#define DEPT_STORE_FLOORNUM_2F 5
#define DEPT_STORE_FLOORNUM_3F 6
#define DEPT_STORE_FLOORNUM_4F 7
#define DEPT_STORE_FLOORNUM_5F 8
#define DEPT_STORE_FLOORNUM_6F 9
#define DEPT_STORE_FLOORNUM_7F 10
#define DEPT_STORE_FLOORNUM_8F 11
#define DEPT_STORE_FLOORNUM_9F 12
#define DEPT_STORE_FLOORNUM_10F 13
#define DEPT_STORE_FLOORNUM_11F 14
#define DEPT_STORE_FLOORNUM_ROOFTOP 15
#endif // GUARD_CONSTANTS_FIELD_SPECIALS_H

View File

@@ -701,7 +701,7 @@
#define FLAG_HIDE_LITTLEROOT_TOWN_BRENDANS_HOUSE_BRENDAN 0x2E9
#define FLAG_HIDE_LITTLEROOT_TOWN_MAYS_HOUSE_BRENDAN 0x2EA
#define FLAG_HIDE_SAFARI_ZONE_SOUTH_EAST_EXPANSION 0x2EB
#define FLAG_HIDE_LILYCOVE_HARBOR_EON_TICKET_TAKER 0x2EC
#define FLAG_HIDE_LILYCOVE_HARBOR_EVENT_TICKET_TAKER 0x2EC
#define FLAG_HIDE_SLATEPORT_CITY_SCOTT 0x2ED
#define FLAG_HIDE_ROUTE_101_ZIGZAGOON 0x2EE
#define FLAG_HIDE_VICTORY_ROAD_EXIT_WALLY 0x2EF
@@ -1400,7 +1400,7 @@
#define FLAG_ENABLE_SHIP_BIRTH_ISLAND (SYSTEM_FLAGS + 0x75)
#define FLAG_ENABLE_SHIP_FARAWAY_ISLAND (SYSTEM_FLAGS + 0x76)
#define FLAG_SYS_STORAGE_UNKNOWN_FLAG (SYSTEM_FLAGS + 0x77)
#define FLAG_SHOWN_BOX_WAS_FULL_MESSAGE (SYSTEM_FLAGS + 0x77)
#define FLAG_ARRIVED_ON_FARAWAY_ISLAND (SYSTEM_FLAGS + 0x78)
#define FLAG_ARRIVED_AT_MARINE_CAVE_EMERGE_SPOT (SYSTEM_FLAGS + 0x79)

View File

@@ -51,6 +51,8 @@
#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 MAX_MON_MOVES 4
// string lengths
#define ITEM_NAME_LENGTH 14
@@ -61,6 +63,7 @@
#define MALE 0
#define FEMALE 1
#define GENDER_COUNT 2
#define OPTIONS_BUTTON_MODE_NORMAL 0
#define OPTIONS_BUTTON_MODE_LR 1

20
include/constants/item.h Normal file
View File

@@ -0,0 +1,20 @@
#ifndef GUARD_ITEM_CONSTANTS_H
#define GUARD_ITEM_CONSTANTS_H
// These constants are used in gItems
#define POCKET_NONE 0
#define POCKET_ITEMS 1
#define POCKET_POKE_BALLS 2
#define POCKET_TM_HM 3
#define POCKET_BERRIES 4
#define POCKET_KEY_ITEMS 5
#define ITEMS_POCKET 0
#define BALLS_POCKET 1
#define TMHM_POCKET 2
#define BERRIES_POCKET 3
#define KEYITEMS_POCKET 4
#define POCKETS_COUNT 5
#endif // GUARD_ITEM_CONSTANTS_H

View File

@@ -2,81 +2,82 @@
#define GUARD_CONSTANTS_POKEMON_H
// Pokemon types
#define TYPE_NONE 0xFF
#define TYPE_NORMAL 0x00
#define TYPE_FIGHTING 0x01
#define TYPE_FLYING 0x02
#define TYPE_POISON 0x03
#define TYPE_GROUND 0x04
#define TYPE_ROCK 0x05
#define TYPE_BUG 0x06
#define TYPE_GHOST 0x07
#define TYPE_STEEL 0x08
#define TYPE_MYSTERY 0x09
#define TYPE_FIRE 0x0a
#define TYPE_WATER 0x0b
#define TYPE_GRASS 0x0c
#define TYPE_ELECTRIC 0x0d
#define TYPE_PSYCHIC 0x0e
#define TYPE_ICE 0x0f
#define TYPE_DRAGON 0x10
#define TYPE_DARK 0x11
#define NUMBER_OF_MON_TYPES 0x12
#define TYPE_NONE 255
#define TYPE_NORMAL 0
#define TYPE_FIGHTING 1
#define TYPE_FLYING 2
#define TYPE_POISON 3
#define TYPE_GROUND 4
#define TYPE_ROCK 5
#define TYPE_BUG 6
#define TYPE_GHOST 7
#define TYPE_STEEL 8
#define TYPE_MYSTERY 9
#define TYPE_FIRE 10
#define TYPE_WATER 11
#define TYPE_GRASS 12
#define TYPE_ELECTRIC 13
#define TYPE_PSYCHIC 14
#define TYPE_ICE 15
#define TYPE_DRAGON 16
#define TYPE_DARK 17
#define NUMBER_OF_MON_TYPES 18
// Pokemon egg groups
#define EGG_GROUP_NONE 0
#define EGG_GROUP_MONSTER 1
#define EGG_GROUP_WATER_1 2
#define EGG_GROUP_BUG 3
#define EGG_GROUP_FLYING 4
#define EGG_GROUP_FIELD 5
#define EGG_GROUP_FAIRY 6
#define EGG_GROUP_GRASS 7
#define EGG_GROUP_HUMAN_LIKE 8
#define EGG_GROUP_WATER_3 9
#define EGG_GROUP_MINERAL 10
#define EGG_GROUP_AMORPHOUS 11
#define EGG_GROUP_WATER_2 12
#define EGG_GROUP_DITTO 13
#define EGG_GROUP_DRAGON 14
#define EGG_GROUP_UNDISCOVERED 15
#define EGG_GROUP_NONE 0
#define EGG_GROUP_MONSTER 1
#define EGG_GROUP_WATER_1 2
#define EGG_GROUP_BUG 3
#define EGG_GROUP_FLYING 4
#define EGG_GROUP_FIELD 5
#define EGG_GROUP_FAIRY 6
#define EGG_GROUP_GRASS 7
#define EGG_GROUP_HUMAN_LIKE 8
#define EGG_GROUP_WATER_3 9
#define EGG_GROUP_MINERAL 10
#define EGG_GROUP_AMORPHOUS 11
#define EGG_GROUP_WATER_2 12
#define EGG_GROUP_DITTO 13
#define EGG_GROUP_DRAGON 14
#define EGG_GROUP_UNDISCOVERED 15
#define EGG_GROUPS_PER_MON 2
// Pokemon natures
#define NATURE_HARDY 0
#define NATURE_LONELY 1
#define NATURE_BRAVE 2
#define NATURE_ADAMANT 3
#define NATURE_NAUGHTY 4
#define NATURE_BOLD 5
#define NATURE_DOCILE 6
#define NATURE_RELAXED 7
#define NATURE_IMPISH 8
#define NATURE_LAX 9
#define NATURE_TIMID 10
#define NATURE_HASTY 11
#define NATURE_SERIOUS 12
#define NATURE_JOLLY 13
#define NATURE_NAIVE 14
#define NATURE_MODEST 15
#define NATURE_MILD 16
#define NATURE_QUIET 17
#define NATURE_BASHFUL 18
#define NATURE_RASH 19
#define NATURE_CALM 20
#define NATURE_GENTLE 21
#define NATURE_SASSY 22
#define NATURE_CAREFUL 23
#define NATURE_QUIRKY 24
#define NATURE_HARDY 0
#define NATURE_LONELY 1
#define NATURE_BRAVE 2
#define NATURE_ADAMANT 3
#define NATURE_NAUGHTY 4
#define NATURE_BOLD 5
#define NATURE_DOCILE 6
#define NATURE_RELAXED 7
#define NATURE_IMPISH 8
#define NATURE_LAX 9
#define NATURE_TIMID 10
#define NATURE_HASTY 11
#define NATURE_SERIOUS 12
#define NATURE_JOLLY 13
#define NATURE_NAIVE 14
#define NATURE_MODEST 15
#define NATURE_MILD 16
#define NATURE_QUIET 17
#define NATURE_BASHFUL 18
#define NATURE_RASH 19
#define NATURE_CALM 20
#define NATURE_GENTLE 21
#define NATURE_SASSY 22
#define NATURE_CAREFUL 23
#define NATURE_QUIRKY 24
// Pokemon Stats
#define STAT_HP 0
#define STAT_ATK 1
#define STAT_DEF 2
#define STAT_SPEED 3
#define STAT_SPATK 4
#define STAT_SPDEF 5
#define STAT_ACC 6 // Only in battles.
#define STAT_HP 0
#define STAT_ATK 1
#define STAT_DEF 2
#define STAT_SPEED 3
#define STAT_SPATK 4
#define STAT_SPDEF 5
#define STAT_ACC 6 // Only in battles.
#define STAT_EVASION 7 // Only in battles.
#define NUM_STATS 6
@@ -85,4 +86,187 @@
// Shiny odds
#define SHINY_ODDS 8 // Actual probability is SHINY_ODDS/65536
// Flags for Get(Box)MonData / Set(Box)MonData
#define MON_DATA_PERSONALITY 0
#define MON_DATA_OT_ID 1
#define MON_DATA_NICKNAME 2
#define MON_DATA_LANGUAGE 3
#define MON_DATA_SANITY_IS_BAD_EGG 4
#define MON_DATA_SANITY_HAS_SPECIES 5
#define MON_DATA_SANITY_IS_EGG 6
#define MON_DATA_OT_NAME 7
#define MON_DATA_MARKINGS 8
#define MON_DATA_CHECKSUM 9
#define MON_DATA_ENCRYPT_SEPARATOR 10
#define MON_DATA_SPECIES 11
#define MON_DATA_HELD_ITEM 12
#define MON_DATA_MOVE1 13
#define MON_DATA_MOVE2 14
#define MON_DATA_MOVE3 15
#define MON_DATA_MOVE4 16
#define MON_DATA_PP1 17
#define MON_DATA_PP2 18
#define MON_DATA_PP3 19
#define MON_DATA_PP4 20
#define MON_DATA_PP_BONUSES 21
#define MON_DATA_COOL 22
#define MON_DATA_BEAUTY 23
#define MON_DATA_CUTE 24
#define MON_DATA_EXP 25
#define MON_DATA_HP_EV 26
#define MON_DATA_ATK_EV 27
#define MON_DATA_DEF_EV 28
#define MON_DATA_SPEED_EV 29
#define MON_DATA_SPATK_EV 30
#define MON_DATA_SPDEF_EV 31
#define MON_DATA_FRIENDSHIP 32
#define MON_DATA_SMART 33
#define MON_DATA_POKERUS 34
#define MON_DATA_MET_LOCATION 35
#define MON_DATA_MET_LEVEL 36
#define MON_DATA_MET_GAME 37
#define MON_DATA_POKEBALL 38
#define MON_DATA_HP_IV 39
#define MON_DATA_ATK_IV 40
#define MON_DATA_DEF_IV 41
#define MON_DATA_SPEED_IV 42
#define MON_DATA_SPATK_IV 43
#define MON_DATA_SPDEF_IV 44
#define MON_DATA_IS_EGG 45
#define MON_DATA_ABILITY_NUM 46
#define MON_DATA_TOUGH 47
#define MON_DATA_SHEEN 48
#define MON_DATA_OT_GENDER 49
#define MON_DATA_COOL_RIBBON 50
#define MON_DATA_BEAUTY_RIBBON 51
#define MON_DATA_CUTE_RIBBON 52
#define MON_DATA_SMART_RIBBON 53
#define MON_DATA_TOUGH_RIBBON 54
#define MON_DATA_STATUS 55
#define MON_DATA_LEVEL 56
#define MON_DATA_HP 57
#define MON_DATA_MAX_HP 58
#define MON_DATA_ATK 59
#define MON_DATA_DEF 60
#define MON_DATA_SPEED 61
#define MON_DATA_SPATK 62
#define MON_DATA_SPDEF 63
#define MON_DATA_MAIL 64
#define MON_DATA_SPECIES2 65
#define MON_DATA_IVS 66
#define MON_DATA_CHAMPION_RIBBON 67
#define MON_DATA_WINNING_RIBBON 68
#define MON_DATA_VICTORY_RIBBON 69
#define MON_DATA_ARTIST_RIBBON 70
#define MON_DATA_EFFORT_RIBBON 71
#define MON_DATA_GIFT_RIBBON_1 72
#define MON_DATA_GIFT_RIBBON_2 73
#define MON_DATA_GIFT_RIBBON_3 74
#define MON_DATA_GIFT_RIBBON_4 75
#define MON_DATA_GIFT_RIBBON_5 76
#define MON_DATA_GIFT_RIBBON_6 77
#define MON_DATA_GIFT_RIBBON_7 78
#define MON_DATA_FATEFUL_ENCOUNTER 79
#define MON_DATA_OBEDIENCE 80
#define MON_DATA_KNOWN_MOVES 81
#define MON_DATA_RIBBON_COUNT 82
#define MON_DATA_RIBBONS 83
#define MON_DATA_ATK2 84
#define MON_DATA_DEF2 85
#define MON_DATA_SPEED2 86
#define MON_DATA_SPATK2 87
#define MON_DATA_SPDEF2 88
#define MAX_LEVEL 100
#define OT_ID_PLAYER_ID 0
#define OT_ID_PRESET 1
#define OT_ID_RANDOM_NO_SHINY 2
#define MON_GIVEN_TO_PARTY 0
#define MON_GIVEN_TO_PC 1
#define MON_CANT_GIVE 2
#define PLAYER_HAS_TWO_USABLE_MONS 0
#define PLAYER_HAS_ONE_MON 1
#define PLAYER_HAS_ONE_USABLE_MON 2
#define MON_MALE 0x00
#define MON_FEMALE 0xFE
#define MON_GENDERLESS 0xFF
#define FRIENDSHIP_EVENT_GROW_LEVEL 0
#define FRIENDSHIP_EVENT_VITAMIN 1 // unused
#define FRIENDSHIP_EVENT_BATTLE_ITEM 2 // unused
#define FRIENDSHIP_EVENT_LEAGUE_BATTLE 3
#define FRIENDSHIP_EVENT_LEARN_TMHM 4
#define FRIENDSHIP_EVENT_WALKING 5
#define FRIENDSHIP_EVENT_FAINT_SMALL 6
#define FRIENDSHIP_EVENT_FAINT_OUTSIDE_BATTLE 7
#define FRIENDSHIP_EVENT_FAINT_LARGE 8
#define STATUS_PRIMARY_NONE 0
#define STATUS_PRIMARY_POISON 1
#define STATUS_PRIMARY_PARALYSIS 2
#define STATUS_PRIMARY_SLEEP 3
#define STATUS_PRIMARY_FREEZE 4
#define STATUS_PRIMARY_BURN 5
#define STATUS_PRIMARY_POKERUS 6
#define STATUS_PRIMARY_FAINTED 7
#define MAX_TOTAL_EVS 510
#define EV_ITEM_RAISE_LIMIT 100
#define UNOWN_FORM_COUNT 28
// Battle move flags
#define FLAG_MAKES_CONTACT 0x1
#define FLAG_PROTECT_AFFECTED 0x2
#define FLAG_MAGICCOAT_AFFECTED 0x4
#define FLAG_SNATCH_AFFECTED 0x8
#define FLAG_MIRROR_MOVE_AFFECTED 0x10
#define FLAG_KINGSROCK_AFFECTED 0x20
// Growth rates
#define GROWTH_MEDIUM_FAST 0
#define GROWTH_ERRATIC 1
#define GROWTH_FLUCTUATING 2
#define GROWTH_MEDIUM_SLOW 3
#define GROWTH_FAST 4
#define GROWTH_SLOW 5
// Body colors for pokedex search
#define BODY_COLOR_RED 0
#define BODY_COLOR_BLUE 1
#define BODY_COLOR_YELLOW 2
#define BODY_COLOR_GREEN 3
#define BODY_COLOR_BLACK 4
#define BODY_COLOR_BROWN 5
#define BODY_COLOR_PURPLE 6
#define BODY_COLOR_GRAY 7
#define BODY_COLOR_WHITE 8
#define BODY_COLOR_PINK 9
#define F_SUMMARY_SCREEN_FLIP_SPRITE 0x80
// Evolution type flags
#define EVO_FRIENDSHIP 0x0001 // Pokémon levels up with friendship ≥ 220
#define EVO_FRIENDSHIP_DAY 0x0002 // Pokémon levels up during the day with friendship ≥ 220
#define EVO_FRIENDSHIP_NIGHT 0x0003 // Pokémon levels up at night with friendship ≥ 220
#define EVO_LEVEL 0x0004 // Pokémon reaches the specified level
#define EVO_TRADE 0x0005 // Pokémon is traded
#define EVO_TRADE_ITEM 0x0006 // Pokémon is traded while it's holding the specified item
#define EVO_ITEM 0x0007 // specified item is used on Pokémon
#define EVO_LEVEL_ATK_GT_DEF 0x0008 // Pokémon reaches the specified level with attack > defense
#define EVO_LEVEL_ATK_EQ_DEF 0x0009 // Pokémon reaches the specified level with attack = defense
#define EVO_LEVEL_ATK_LT_DEF 0x000a // Pokémon reaches the specified level with attack < defense
#define EVO_LEVEL_SILCOON 0x000b // Pokémon reaches the specified level with a Silcoon personality value
#define EVO_LEVEL_CASCOON 0x000c // Pokémon reaches the specified level with a Cascoon personality value
#define EVO_LEVEL_NINJASK 0x000d // Pokémon reaches the specified level (special value for Ninjask)
#define EVO_LEVEL_SHEDINJA 0x000e // Pokémon reaches the specified level (special value for Shedinja)
#define EVO_BEAUTY 0x000f // Pokémon levels up with beauty ≥ specified value
#define EVOS_PER_MON 5
#endif // GUARD_CONSTANTS_POKEMON_H

View File

@@ -0,0 +1,168 @@
#ifndef GUARD_SCRIPT_MENU_CONSTANTS_H
#define GUARD_SCRIPT_MENU_CONSTANTS_H
#define MULTICHOICE(name) {name, ARRAY_COUNT(name)}
#define MAX_MULTICHOICE_WIDTH 28
#define MULTI_B_PRESSED 127
// Multichoice Ids
#define MULTI_BRINEY_ON_DEWFORD 0
#define MULTI_PC 1 // Exit only, populated by CreatePCMultichoice
#define MULTI_ENTERINFO 2
#define MULTI_CONTEST_INFO 3
#define MULTI_CONTEST_TYPE 4
#define MULTI_DECOR_NOREGISTRY 5
#define MULTI_DECOR_REGISTRY 6
#define MULTI_REGISTER_MENU 7
#define MULTI_SSTIDAL_LILYCOVE 8 // Exit only, populated by CreateLilycoveSSTidalMultichoice
#define MULTI_UNUSED_9 9
#define MULTI_UNUSED_10 10
#define MULTI_FRONTIER_PASS_INFO 11
#define MULTI_BIKE 12
#define MULTI_STATUS_INFO 13
#define MULTI_BRINEY_OFF_DEWFORD 14
#define MULTI_UNUSED_15 15
#define MULTI_VIEWED_PAINTINGS 16
#define MULTI_YESNOINFO 17
#define MULTI_BATTLE_MODE 18
#define MULTI_UNUSED_19 19
#define MULTI_YESNOINFO_2 20
#define MULTI_UNUSED_21 21
#define MULTI_UNUSED_22 22
#define MULTI_CHALLENGEINFO 23
#define MULTI_LEVEL_MODE 24
#define MULTI_MECHADOLL1_Q1 25
#define MULTI_MECHADOLL1_Q2 26
#define MULTI_MECHADOLL1_Q3 27
#define MULTI_MECHADOLL2_Q1 28
#define MULTI_MECHADOLL2_Q2 29
#define MULTI_MECHADOLL2_Q3 30
#define MULTI_MECHADOLL3_Q1 31
#define MULTI_MECHADOLL3_Q2 32
#define MULTI_MECHADOLL3_Q3 33
#define MULTI_MECHADOLL4_Q1 34
#define MULTI_MECHADOLL4_Q2 35
#define MULTI_MECHADOLL4_Q3 36
#define MULTI_MECHADOLL5_Q1 37
#define MULTI_MECHADOLL5_Q2 38
#define MULTI_MECHADOLL5_Q3 39
#define MULTI_UNUSED_40 40
#define MULTI_UNUSED_41 41
#define MULTI_VENDING_MACHINE 42
#define MULTI_MACH_BIKE_INFO 43
#define MULTI_ACRO_BIKE_INFO 44
#define MULTI_SATISFACTION 45
#define MULTI_STERN_DEEPSEA 46
#define MULTI_UNUSED_ASH_VENDOR 47 // Replaced by scrollable multichoice
#define MULTI_GAME_CORNER_DOLLS 48
#define MULTI_GAME_CORNER_COINS 49
#define MULTI_HOWS_FISHING 50
#define MULTI_UNUSED_51 51
#define MULTI_SSTIDAL_SLATEPORT_WITH_BF 52
#define MULTI_SSTIDAL_BATTLE_FRONTIER 53
#define MULTI_RIGHTLEFT 54
#define MULTI_GAME_CORNER_TMS 55
#define MULTI_SSTIDAL_SLATEPORT_NO_BF 56
#define MULTI_FLOORS 57
#define MULTI_SHARDS_R 58
#define MULTI_SHARDS_Y 59
#define MULTI_SHARDS_RY 60
#define MULTI_SHARDS_B 61
#define MULTI_SHARDS_RB 62
#define MULTI_SHARDS_YB 63
#define MULTI_SHARDS_RYB 64
#define MULTI_SHARDS_G 65
#define MULTI_SHARDS_RG 66
#define MULTI_SHARDS_YG 67
#define MULTI_SHARDS_RYG 68
#define MULTI_SHARDS_BG 69
#define MULTI_SHARDS_RBG 70
#define MULTI_SHARDS_YBG 71
#define MULTI_SHARDS_RYBG 72
#define MULTI_TOURNEY_WITH_RECORD 73
#define MULTI_CABLE_CLUB_NO_RECORD_MIX 74
#define MULTI_WIRELESS_NO_RECORD_BERRY 75
#define MULTI_CABLE_CLUB_WITH_RECORD_MIX 76
#define MULTI_WIRELESS_NO_BERRY 77
#define MULTI_WIRELESS_NO_RECORD 78
#define MULTI_WIRELESS_ALL_SERVICES 79
#define MULTI_WIRELESS_MINIGAME 80
#define MULTI_LINK_LEADER 81
#define MULTI_CONTEST_RANK 82
#define MULTI_FRONTIER_ITEM_CHOOSE 83
#define MULTI_LINK_CONTEST_INFO 84
#define MULTI_LINK_CONTEST_MODE 85
#define MULTI_FORCED_START_MENU 86
#define MULTI_FRONTIER_GAMBLER_BET 87
#define MULTI_TENT 88
#define MULTI_UNUSED_SSTIDAL_1 89 // These 4 were replaced by CreateLilycoveSSTidalMultichoice
#define MULTI_UNUSED_SSTIDAL_2 90 //
#define MULTI_UNUSED_SSTIDAL_3 91 //
#define MULTI_UNUSED_SSTIDAL_4 92 //
#define MULTI_FOSSIL 93
#define MULTI_YESNO 94
#define MULTI_FRONTIER_RULES 95
#define MULTI_BATTLE_ARENA_RULES 96
#define MULTI_BATTLE_TOWER_RULES 97
#define MULTI_BATTLE_DOME_RULES 98
#define MULTI_BATTLE_FACTORY_RULES 99
#define MULTI_BATTLE_PALACE_RULES 100
#define MULTI_BATTLE_PYRAMID_RULES 101
#define MULTI_BATTLE_PIKE_RULES 102
#define MULTI_GO_ON_RECORD_REST_RETIRE 103
#define MULTI_GO_ON_REST_RETIRE 104
#define MULTI_GO_ON_RECORD_RETIRE 105
#define MULTI_GO_ON_RETIRE 106
#define MULTI_TOURNEY_NO_RECORD 107
#define MULTI_TV_LATI 108
#define MULTI_BATTLE_TOWER_FEELINGS 109
#define MULTI_WHERES_RAYQUAZA 110
#define MULTI_SLATEPORT_TENT_RULES 111
#define MULTI_FALLARBOR_TENT_RULES 112
#define MULTI_TAG_MATCH_TYPE 113
// Lilycove SS Tidal Multichoice Selections
#define SSTIDAL_SELECTION_SLATEPORT 0
#define SSTIDAL_SELECTION_BATTLE_FRONTIER 1
#define SSTIDAL_SELECTION_SOUTHERN_ISLAND 2
#define SSTIDAL_SELECTION_NAVEL_ROCK 3
#define SSTIDAL_SELECTION_BIRTH_ISLAND 4
#define SSTIDAL_SELECTION_FARAWAY_ISLAND 5
#define SSTIDAL_SELECTION_EXIT 6
#define SSTIDAL_SELECTION_COUNT 7
// Std String Ids
#define STDSTRING_COOL 0
#define STDSTRING_BEAUTY 1
#define STDSTRING_CUTE 2
#define STDSTRING_SMART 3
#define STDSTRING_TOUGH 4
#define STDSTRING_NORMAL 5
#define STDSTRING_SUPER 6
#define STDSTRING_HYPER 7
#define STDSTRING_MASTER 8
#define STDSTRING_COOL2 9
#define STDSTRING_BEAUTY2 10
#define STDSTRING_CUTE2 11
#define STDSTRING_SMART2 12
#define STDSTRING_TOUGH2 13
#define STDSTRING_ITEMS 14
#define STDSTRING_KEYITEMS 15
#define STDSTRING_POKEBALLS 16
#define STDSTRING_TMHMS 17
#define STDSTRING_BERRIES 18
#define STDSTRING_SINGLE 19
#define STDSTRING_DOUBLE 20
#define STDSTRING_MULTI 21
#define STDSTRING_MULTI_LINK 22
#define STDSTRING_BATTLE_TOWER 23
#define STDSTRING_BATTLE_DOME 24
#define STDSTRING_BATTLE_FACTORY 25
#define STDSTRING_BATTLE_PALACE 26
#define STDSTRING_BATTLE_ARENA 27
#define STDSTRING_BATTLE_PIKE 28
#define STDSTRING_BATTLE_PYRAMID 29
#endif //GUARD_SCRIPT_MENU_CONSTANTS_H

View File

@@ -61,14 +61,14 @@
#define VAR_0x402E 0x402E
#define VAR_FRONTIER_MANIAC_FACILITY 0x402F
#define VAR_FRONTIER_GAMBLER_FACILITY 0x4030
#define VAR_FRONTIER_GAMBLER_SET_FACILITY_F 0x4031
#define VAR_FRONTIER_GAMBLER_CHALLENGE 0x4030
#define VAR_FRONTIER_GAMBLER_SET_CHALLENGE 0x4031
#define VAR_FRONTIER_GAMBLER_AMOUNT_BET 0x4032
#define VAR_FRONTIER_GAMBLER_PLACED_BET_F 0x4033
#define VAR_FRONTIER_GAMBLER_STATE 0x4033
#define VAR_DEOXYS_ROCK_STEP_COUNT 0x4034
#define VAR_DEOXYS_ROCK_LEVEL 0x4035
#define VAR_STORAGE_UNKNOWN 0x4036
#define VAR_PC_BOX_TO_SEND_MON 0x4036
#define VAR_UNUSUAL_WEATHER_LOCATION 0x4037
#define VAR_UNUSUAL_WEATHER_STEP_COUNTER 0x4038
#define VAR_SHOULD_END_UNUSUAL_WEATHER 0x4039

View File

@@ -227,7 +227,7 @@ struct ContestPokemon
u8 aiPool_Cute:1; // 0x10
u8 aiPool_Smart:1; // 0x20
u8 aiPool_Tough:1; // 0x40
/*0x1E*/ u16 moves[4]; // moves
/*0x1E*/ u16 moves[MAX_MON_MOVES]; // moves
/*0x26*/ u8 cool; // cool
/*0x27*/ u8 beauty; // beauty
/*0x28*/ u8 cute; // cute

View File

@@ -34,7 +34,7 @@ struct TrainerMonNoItemCustomMoves
u16 iv;
u8 lvl;
u16 species;
u16 moves[4];
u16 moves[MAX_MON_MOVES];
};
struct TrainerMonItemCustomMoves
@@ -43,7 +43,7 @@ struct TrainerMonItemCustomMoves
u8 lvl;
u16 species;
u16 heldItem;
u16 moves[4];
u16 moves[MAX_MON_MOVES];
};
union TrainerMonPtr

View File

@@ -1,10 +1,10 @@
#ifndef GUARD_DAYCARE_H
#define GUARD_DAYCARE_H
#define EGG_HATCH_LEVEL 5
#include "constants/daycare.h"
u8 *GetMonNick(struct Pokemon *mon, u8 *dest);
u8 *GetBoxMonNick(struct BoxPokemon *mon, u8 *dest);
u8 *GetMonNickname2(struct Pokemon *mon, u8 *dest);
u8 *GetBoxMonNickname(struct BoxPokemon *mon, u8 *dest);
u8 CountPokemonInDaycare(struct DayCare *daycare);
void InitDaycareMailRecordMixing(struct DayCare *daycare, struct RecordMixingDayCareMail *daycareMail);
void StoreSelectedPokemonInDaycare(void);
@@ -16,7 +16,7 @@ void RejectEggFromDayCare(void);
void CreateEgg(struct Pokemon *mon, u16 species, bool8 setHotSpringsLocation);
void GiveEggFromDaycare(void);
bool8 ShouldEggHatch(void);
u16 GetSelectedMonNickAndSpecies(void);
u16 GetSelectedMonNicknameAndSpecies(void);
void GetDaycareMonNicknames(void);
u8 GetDaycareState(void);
void SetDaycareCompatibilityString(void);

View File

@@ -2,9 +2,9 @@
#define GUARD_EGG_HATCH_H
void ScriptHatchMon(void);
bool8 sub_8071614(void);
bool8 CheckDaycareMonReceivedMail(void);
void EggHatch(void);
u8 GetEggStepsToSubtract(void);
u16 sub_80722E0(void);
u16 CountPartyAliveNonEggMons(void);
#endif // GUARD_EGG_HATCH_H

View File

@@ -5,8 +5,8 @@ extern bool8 gBikeCyclingChallenge;
extern u8 gBikeCollisions;
u8 GetLeadMonIndex(void);
u8 sub_813B260(void);
u16 get_unknown_box_id(void);
u8 IsDestinationBoxFull(void);
u16 GetPCBoxToSendMon(void);
bool8 InMultiBattleRoom(void);
void sub_813BF10(void);
void IncrementBirthIslandRockStepCount(void);
@@ -19,17 +19,17 @@ bool32 ShouldDoRoxanneCall(void);
bool32 ShouldDoRivalRayquazaCall(void);
bool32 CountSSTidalStep(u16 delta);
u8 GetSSTidalLocation(s8 *mapGroup, s8 *mapNum, s16 *x, s16 *y);
void sub_813A128(void);
void sub_813A878(u8 a0);
void ShowScrollableMultichoice(void);
void FrontierGamblerSetWonOrLost(bool8 won);
u8 sub_813BADC(u8 a0);
bool8 sub_813B9C0(void);
void SetShoalItemFlag(u16 v0);
void UpdateFrontierManiac(u16 a0);
void UpdateFrontierGambler(u16 a0);
bool8 InPokemonCenter(void);
void SetShoalItemFlag(u16 unused);
void UpdateFrontierManiac(u16 daysSince);
void UpdateFrontierGambler(u16 daysSince);
void ResetCyclingRoadChallengeData(void);
bool8 warp0_in_pokecenter(void);
bool8 UsedPokemonCenterWarp(void);
void ResetFanClub(void);
bool8 sub_813B21C(void);
void set_unknown_box_id(u8 id);
bool8 ShouldShowBoxWasFullMessage(void);
void SetPCBoxToSendMon(u8 boxId);
#endif // GUARD_FIELD_SPECIALS_H

View File

@@ -63,8 +63,6 @@
// Converts a Q24.8 fixed-point format number to a regular integer
#define Q_24_8_TO_INT(n) ((int)((n) >> 8))
#define PARTY_SIZE 6
#define POKEMON_SLOTS_NUMBER 412
#define min(a, b) ((a) < (b) ? (a) : (b))
@@ -212,7 +210,7 @@ struct BerryCrush
struct ApprenticeMon
{
u16 species;
u16 moves[4];
u16 moves[MAX_MON_MOVES];
u16 item;
};
@@ -234,7 +232,7 @@ struct BattleTowerPokemon
{
u16 species;
u16 heldItem;
u16 moves[4];
u16 moves[MAX_MON_MOVES];
u8 level;
u8 ppBonuses;
u8 hpEV;
@@ -290,7 +288,7 @@ struct BattleTowerEReaderTrainer
struct FrontierMonData
{
u16 moves[4];
u16 moves[MAX_MON_MOVES];
u8 evs[6];
u8 nature;
};
@@ -946,7 +944,7 @@ struct SaveBlock1
/*0x2B94*/ u8 outbreakPokemonLevel;
/*0x2B95*/ u8 outbreakUnk1;
/*0x2B96*/ u16 outbreakUnk2;
/*0x2B98*/ u16 outbreakPokemonMoves[4];
/*0x2B98*/ u16 outbreakPokemonMoves[MAX_MON_MOVES];
/*0x2BA0*/ u8 outbreakUnk4;
/*0x2BA1*/ u8 outbreakPokemonProbability;
/*0x2BA2*/ u16 outbreakDaysLeft;

View File

@@ -4,8 +4,7 @@
enum
{
TVSHOW_OFF_AIR,
TVSHOW_FAN_CLUB_LETTER = 1,
TVSHOW_FAN_CLUB_LETTER,
TVSHOW_RECENT_HAPPENINGS,
TVSHOW_PKMN_FAN_CLUB_OPINIONS,
TVSHOW_UNKN_SHOWTYPE_04,
@@ -482,7 +481,7 @@ typedef union // size = 0x24
/*0x01*/ bool8 active;
/*0x02*/ u8 var02;
/*0x03*/ u8 var03;
/*0x04*/ u16 moves[4];
/*0x04*/ u16 moves[MAX_MON_MOVES];
/*0x0C*/ u16 species;
/*0x0E*/ u16 var0E;
/*0x10*/ u8 locationMapNum;

View File

@@ -3093,90 +3093,93 @@ extern const u32 gPokeblock_Gfx[];
extern const u32 gItemIcon_QuestionMark[];
extern const u32 gItemIconPalette_QuestionMark[];
extern const u32 gUnknown_08DB7AA0[];
extern const u32 gUnknown_08DB7B34[];
extern const u32 gUnknown_08DB7B5C[];
extern const u32 gUnknown_08DB7BEC[];
extern const u32 gUnknown_08DB7C08[];
extern const u32 gUnknown_08DB7CE8[];
extern const u32 gUnknown_08DB7D08[];
extern const u32 gUnknown_08DB7DCC[];
extern const u32 gUnknown_08DB7DF4[];
extern const u32 gUnknown_08DB7EA0[];
extern const u32 gUnknown_08DB7EC4[];
extern const u32 gUnknown_08DB7F60[];
extern const u32 gUnknown_08DB7F7C[];
extern const u32 gUnknown_08DB8070[];
extern const u32 gUnknown_08DB808C[];
extern const u32 gUnknown_08DB8138[];
extern const u32 gUnknown_08DB8160[];
extern const u32 gUnknown_08DB8218[];
extern const u32 gUnknown_08DB823C[];
extern const u32 gUnknown_08DB8300[];
extern const u32 gUnknown_08DB8328[];
extern const u32 gUnknown_08DB8430[];
extern const u32 gUnknown_08DB8458[];
extern const u32 gUnknown_08DB8528[];
extern const u32 gUnknown_08DB854C[];
extern const u32 gUnknown_08DB862C[];
extern const u32 gUnknown_08DB8654[];
extern const u32 gUnknown_08DB86C4[];
extern const u32 gUnknown_08DB86E0[];
extern const u32 gUnknown_08DB8750[];
extern const u32 gUnknown_08DB876C[];
extern const u32 gUnknown_08DB87DC[];
extern const u32 gUnknown_08DB87F8[];
extern const u32 gUnknown_08DB88D8[];
extern const u32 gUnknown_08DB8900[];
extern const u32 gUnknown_08DB89E0[];
extern const u32 gUnknown_08DB8A08[];
extern const u32 gUnknown_08DB8A68[];
extern const u32 gUnknown_08DB8A84[];
extern const u32 gUnknown_08DB8B40[];
extern const u32 gUnknown_08DB8B68[];
extern const u32 gUnknown_08DB8C40[];
extern const u32 gUnknown_08DB8C5C[];
extern const u32 gUnknown_08DB8CF4[];
extern const u32 gUnknown_08DB8D18[];
extern const u32 gUnknown_08DB8DB0[];
extern const u32 gUnknown_08DB8DD4[];
extern const u32 gUnknown_08DB8E80[];
extern const u32 gUnknown_08DB8EA0[];
extern const u32 gUnknown_08DB8F58[];
extern const u32 gUnknown_08DB8F7C[];
extern const u32 gUnknown_08DB9038[];
extern const u32 gUnknown_08DB9058[];
extern const u32 gUnknown_08DB9130[];
extern const u32 gUnknown_08DB9154[];
extern const u32 gUnknown_08DB9218[];
extern const u32 gUnknown_08DB9234[];
extern const u32 gUnknown_08DB92FC[];
extern const u32 gUnknown_08DB931C[];
extern const u32 gUnknown_08DB93E8[];
extern const u32 gUnknown_08DB940C[];
extern const u32 gUnknown_08DB94CC[];
extern const u32 gUnknown_08DB94E8[];
extern const u32 gUnknown_08DB95AC[];
extern const u32 gUnknown_08DB95D0[];
extern const u32 gUnknown_08DB96C4[];
extern const u32 gUnknown_08DB96EC[];
extern const u32 gUnknown_08DB97F4[];
extern const u32 gUnknown_08DB981C[];
extern const u32 gUnknown_08DB9908[];
extern const u32 gUnknown_08DB9930[];
extern const u32 gUnknown_08DB9A54[];
extern const u32 gUnknown_08DB9A7C[];
extern const u32 gUnknown_08DB9B7C[];
extern const u32 gUnknown_08DB9BA4[];
extern const u32 gUnknown_08DB9CB0[];
extern const u32 gUnknown_08DB9CD8[];
extern const u32 gUnknown_08DB9DAC[];
extern const u32 gUnknown_08DB9DD4[];
extern const u32 gUnknown_08DB9EE4[];
extern const u32 gUnknown_08DB9F08[];
extern const u32 gUnknown_08DB9FFC[];
extern const u32 gUnknown_08DBA020[];
extern const u32 gUnknown_08DBA12C[];
// Decorations
extern const u32 gDecorIcon_HeavyDesk[];
extern const u32 gDecorIconPalette_HeavyDesk[];
extern const u32 gDecorIcon_RaggedDesk[];
extern const u32 gDecorIconPalette_RaggedDesk[];
extern const u32 gDecorIcon_ComfortDesk[];
extern const u32 gDecorIconPalette_ComfortDesk[];
extern const u32 gDecorIcon_PrettyDesk[];
extern const u32 gDecorIconPalette_PrettyDesk[];
extern const u32 gDecorIcon_BrickDesk[];
extern const u32 gDecorIconPalette_BrickDesk[];
extern const u32 gDecorIcon_CampDesk[];
extern const u32 gDecorIconPalette_CampDesk[];
extern const u32 gDecorIcon_HardDesk[];
extern const u32 gDecorIconPalette_HardDesk[];
extern const u32 gDecorIcon_RedPlant[];
extern const u32 gDecorIconPalette_RedPlant[];
extern const u32 gDecorIcon_TropicalPlant[];
extern const u32 gDecorIconPalette_TropicalPlant[];
extern const u32 gDecorIcon_PrettyFlowers[];
extern const u32 gDecorIconPalette_PrettyFlowers[];
extern const u32 gDecorIcon_ColorfulPlant[];
extern const u32 gDecorIconPalette_ColorfulPlant[];
extern const u32 gDecorIcon_BigPlant[];
extern const u32 gDecorIconPalette_BigPlant[];
extern const u32 gDecorIcon_GorgeousPlant[];
extern const u32 gDecorIconPalette_GorgeousPlant[];
extern const u32 gDecorIcon_RedBrick[];
extern const u32 gDecorIconPalette_RedBrick[];
extern const u32 gDecorIcon_YellowBrick[];
extern const u32 gDecorIconPalette_YellowBrick[];
extern const u32 gDecorIcon_BlueBrick[];
extern const u32 gDecorIconPalette_BlueBrick[];
extern const u32 gDecorIcon_RedTent[];
extern const u32 gDecorIconPalette_RedTent[];
extern const u32 gDecorIcon_BlueTent[];
extern const u32 gDecorIconPalette_BlueTent[];
extern const u32 gDecorIcon_SolidBoard[];
extern const u32 gDecorIconPalette_SolidBoard[];
extern const u32 gDecorIcon_Slide[];
extern const u32 gDecorIconPalette_Slide[];
extern const u32 gDecorIcon_Tire[];
extern const u32 gDecorIconPalette_Tire[];
extern const u32 gDecorIcon_Stand[];
extern const u32 gDecorIconPalette_Stand[];
extern const u32 gDecorIcon_BreakableDoor[];
extern const u32 gDecorIconPalette_BreakableDoor[];
extern const u32 gDecorIcon_SandOrnament[];
extern const u32 gDecorIconPalette_SandOrnament[];
extern const u32 gDecorIcon_GlassOrnament[];
extern const u32 gDecorIconPalette_GlassOrnament[];
extern const u32 gDecorIcon_SurfMat[];
extern const u32 gDecorIconPalette_SurfMat[];
extern const u32 gDecorIcon_ThunderMat[];
extern const u32 gDecorIconPalette_ThunderMat[];
extern const u32 gDecorIcon_FireBlastMat[];
extern const u32 gDecorIconPalette_FireBlastMat[];
extern const u32 gDecorIcon_PowderSnowMat[];
extern const u32 gDecorIconPalette_PowderSnowMat[];
extern const u32 gDecorIcon_AttractMat[];
extern const u32 gDecorIconPalette_AttractMat[];
extern const u32 gDecorIcon_FissureMat[];
extern const u32 gDecorIconPalette_FissureMat[];
extern const u32 gDecorIcon_SpikesMat[];
extern const u32 gDecorIconPalette_SpikesMat[];
extern const u32 gDecorIcon_SnorlaxDoll[];
extern const u32 gDecorIconPalette_SnorlaxDoll[];
extern const u32 gDecorIcon_RhydonDoll[];
extern const u32 gDecorIconPalette_RhydonDoll[];
extern const u32 gDecorIcon_LaprasDoll[];
extern const u32 gDecorIconPalette_LaprasDoll[];
extern const u32 gDecorIcon_VenusaurDoll[];
extern const u32 gDecorIconPalette_VenusaurDoll[];
extern const u32 gDecorIcon_CharizardDoll[];
extern const u32 gDecorIconPalette_CharizardDoll[];
extern const u32 gDecorIcon_BlastoiseDoll[];
extern const u32 gDecorIconPalette_BlastoiseDoll[];
extern const u32 gDecorIcon_WailmerDoll[];
extern const u32 gDecorIconPalette_WailmerDoll[];
extern const u32 gDecorIcon_RegirockDoll[];
extern const u32 gDecorIconPalette_RegirockDoll[];
extern const u32 gDecorIcon_RegiceDoll[];
extern const u32 gDecorIconPalette_RegiceDoll[];
extern const u32 gDecorIcon_RegisteelDoll[];
extern const u32 gDecorIconPalette_RegisteelDoll[];
extern const u32 gWallclock_Gfx[];
extern const u16 gWallclockMale_Pal[];
extern const u16 gWallclockFemale_Pal[];

View File

@@ -1,26 +1,7 @@
#ifndef GUARD_ITEM_H
#define GUARD_ITEM_H
// These constants are used in gItems
enum
{
POCKET_NONE,
POCKET_ITEMS,
POCKET_POKE_BALLS,
POCKET_TM_HM,
POCKET_BERRIES,
POCKET_KEY_ITEMS,
};
enum
{
ITEMS_POCKET,
BALLS_POCKET,
TMHM_POCKET,
BERRIES_POCKET,
KEYITEMS_POCKET,
POCKETS_COUNT
};
#include "constants/item.h"
typedef void (*ItemUseFunc)(u8);

View File

@@ -1,17 +1,19 @@
#ifndef POKEEMERALD_MON_MARKINGS_H
#define POKEEMERALD_MON_MARKINGS_H
#define NUM_MON_MARKINGS 4
struct PokemonMarkMenu
{
/*0x0000*/ u16 baseTileTag;
/*0x0002*/ u16 basePaletteTag;
/*0x0004*/ u8 markings; // bit flags
/*0x0005*/ s8 cursorPos;
/*0x0006*/ bool8 markingsArray[4];
/*0x0006*/ bool8 markingsArray[NUM_MON_MARKINGS];
/*0x000A*/ u8 cursorBaseY;
/*0x000B*/ bool8 spriteSheetLoadRequired;
/*0x000C*/ struct Sprite *menuWindowSprites[2]; // upper and lower halves of menu window
/*0x0014*/ struct Sprite *menuMarkingSprites[4];
/*0x0014*/ struct Sprite *menuMarkingSprites[NUM_MON_MARKINGS];
/*0x0024*/ struct Sprite *unkSprite;
/*0x0028*/ struct Sprite *menuTextSprite;
/*0x002C*/ const u8 *frameTiles;

View File

@@ -26,6 +26,41 @@ enum
PARTY_GIVE_ITEM,
};
enum
{
TUTOR_MOVE_MEGA_PUNCH,
TUTOR_MOVE_SWORDS_DANCE,
TUTOR_MOVE_MEGA_KICK,
TUTOR_MOVE_BODY_SLAM,
TUTOR_MOVE_DOUBLE_EDGE,
TUTOR_MOVE_COUNTER,
TUTOR_MOVE_SEISMIC_TOSS,
TUTOR_MOVE_MIMIC,
TUTOR_MOVE_METRONOME,
TUTOR_MOVE_SOFT_BOILED,
TUTOR_MOVE_DREAM_EATER,
TUTOR_MOVE_THUNDER_WAVE,
TUTOR_MOVE_EXPLOSION,
TUTOR_MOVE_ROCK_SLIDE,
TUTOR_MOVE_SUBSTITUTE,
TUTOR_MOVE_DYNAMIC_PUNCH,
TUTOR_MOVE_ROLLOUT,
TUTOR_MOVE_PSYCH_UP,
TUTOR_MOVE_SNORE,
TUTOR_MOVE_ICY_WIND,
TUTOR_MOVE_ENDURE,
TUTOR_MOVE_MUD_SLAP,
TUTOR_MOVE_ICE_PUNCH,
TUTOR_MOVE_SWAGGER,
TUTOR_MOVE_SLEEP_TALK,
TUTOR_MOVE_SWIFT,
TUTOR_MOVE_DEFENSE_CURL,
TUTOR_MOVE_THUNDER_PUNCH,
TUTOR_MOVE_FIRE_PUNCH,
TUTOR_MOVE_FURY_CUTTER,
TUTOR_MOVE_COUNT
};
struct Struct203CEC8
{
MainCallback exitCallback;

View File

@@ -4,136 +4,6 @@
#include "constants/pokemon.h"
#include "sprite.h"
#define MON_DATA_PERSONALITY 0
#define MON_DATA_OT_ID 1
#define MON_DATA_NICKNAME 2
#define MON_DATA_LANGUAGE 3
#define MON_DATA_SANITY_IS_BAD_EGG 4
#define MON_DATA_SANITY_HAS_SPECIES 5
#define MON_DATA_SANITY_IS_EGG 6
#define MON_DATA_OT_NAME 7
#define MON_DATA_MARKINGS 8
#define MON_DATA_CHECKSUM 9
#define MON_DATA_ENCRYPT_SEPARATOR 10
#define MON_DATA_SPECIES 11
#define MON_DATA_HELD_ITEM 12
#define MON_DATA_MOVE1 13
#define MON_DATA_MOVE2 14
#define MON_DATA_MOVE3 15
#define MON_DATA_MOVE4 16
#define MON_DATA_PP1 17
#define MON_DATA_PP2 18
#define MON_DATA_PP3 19
#define MON_DATA_PP4 20
#define MON_DATA_PP_BONUSES 21
#define MON_DATA_COOL 22
#define MON_DATA_BEAUTY 23
#define MON_DATA_CUTE 24
#define MON_DATA_EXP 25
#define MON_DATA_HP_EV 26
#define MON_DATA_ATK_EV 27
#define MON_DATA_DEF_EV 28
#define MON_DATA_SPEED_EV 29
#define MON_DATA_SPATK_EV 30
#define MON_DATA_SPDEF_EV 31
#define MON_DATA_FRIENDSHIP 32
#define MON_DATA_SMART 33
#define MON_DATA_POKERUS 34
#define MON_DATA_MET_LOCATION 35
#define MON_DATA_MET_LEVEL 36
#define MON_DATA_MET_GAME 37
#define MON_DATA_POKEBALL 38
#define MON_DATA_HP_IV 39
#define MON_DATA_ATK_IV 40
#define MON_DATA_DEF_IV 41
#define MON_DATA_SPEED_IV 42
#define MON_DATA_SPATK_IV 43
#define MON_DATA_SPDEF_IV 44
#define MON_DATA_IS_EGG 45
#define MON_DATA_ABILITY_NUM 46
#define MON_DATA_TOUGH 47
#define MON_DATA_SHEEN 48
#define MON_DATA_OT_GENDER 49
#define MON_DATA_COOL_RIBBON 50
#define MON_DATA_BEAUTY_RIBBON 51
#define MON_DATA_CUTE_RIBBON 52
#define MON_DATA_SMART_RIBBON 53
#define MON_DATA_TOUGH_RIBBON 54
#define MON_DATA_STATUS 55
#define MON_DATA_LEVEL 56
#define MON_DATA_HP 57
#define MON_DATA_MAX_HP 58
#define MON_DATA_ATK 59
#define MON_DATA_DEF 60
#define MON_DATA_SPEED 61
#define MON_DATA_SPATK 62
#define MON_DATA_SPDEF 63
#define MON_DATA_MAIL 64
#define MON_DATA_SPECIES2 65
#define MON_DATA_IVS 66
#define MON_DATA_CHAMPION_RIBBON 67
#define MON_DATA_WINNING_RIBBON 68
#define MON_DATA_VICTORY_RIBBON 69
#define MON_DATA_ARTIST_RIBBON 70
#define MON_DATA_EFFORT_RIBBON 71
#define MON_DATA_GIFT_RIBBON_1 72
#define MON_DATA_GIFT_RIBBON_2 73
#define MON_DATA_GIFT_RIBBON_3 74
#define MON_DATA_GIFT_RIBBON_4 75
#define MON_DATA_GIFT_RIBBON_5 76
#define MON_DATA_GIFT_RIBBON_6 77
#define MON_DATA_GIFT_RIBBON_7 78
#define MON_DATA_FATEFUL_ENCOUNTER 79
#define MON_DATA_OBEDIENCE 80
#define MON_DATA_KNOWN_MOVES 81
#define MON_DATA_RIBBON_COUNT 82
#define MON_DATA_RIBBONS 83
#define MON_DATA_ATK2 84
#define MON_DATA_DEF2 85
#define MON_DATA_SPEED2 86
#define MON_DATA_SPATK2 87
#define MON_DATA_SPDEF2 88
#define MAX_LEVEL 100
#define OT_ID_RANDOM_NO_SHINY 2
#define OT_ID_PRESET 1
#define OT_ID_PLAYER_ID 0
#define MON_GIVEN_TO_PARTY 0x0
#define MON_GIVEN_TO_PC 0x1
#define MON_CANT_GIVE 0x2
#define PLAYER_HAS_TWO_USABLE_MONS 0x0
#define PLAYER_HAS_ONE_MON 0x1
#define PLAYER_HAS_ONE_USABLE_MON 0x2
#define MON_MALE 0x00
#define MON_FEMALE 0xFE
#define MON_GENDERLESS 0xFF
#define FRIENDSHIP_EVENT_GROW_LEVEL 0x0
#define FRIENDSHIP_EVENT_VITAMIN 0x1 // unused
#define FRIENDSHIP_EVENT_BATTLE_ITEM 0x2 // unused
#define FRIENDSHIP_EVENT_LEAGUE_BATTLE 0x3
#define FRIENDSHIP_EVENT_LEARN_TMHM 0x4
#define FRIENDSHIP_EVENT_WALKING 0x5
#define FRIENDSHIP_EVENT_FAINT_SMALL 0x6
#define FRIENDSHIP_EVENT_FAINT_OUTSIDE_BATTLE 0x7
#define FRIENDSHIP_EVENT_FAINT_LARGE 0x8
#define STATUS_PRIMARY_NONE 0x0
#define STATUS_PRIMARY_POISON 0x1
#define STATUS_PRIMARY_PARALYSIS 0x2
#define STATUS_PRIMARY_SLEEP 0x3
#define STATUS_PRIMARY_FREEZE 0x4
#define STATUS_PRIMARY_BURN 0x5
#define STATUS_PRIMARY_POKERUS 0x6
#define STATUS_PRIMARY_FAINTED 0x7
#define MAX_TOTAL_EVS 510
#define UNOWN_FORM_COUNT 28
struct PokemonSubstruct0
{
u16 species;
@@ -145,8 +15,8 @@ struct PokemonSubstruct0
struct PokemonSubstruct1
{
u16 moves[4];
u8 pp[4];
u16 moves[MAX_MON_MOVES];
u8 pp[MAX_MON_MOVES];
};
struct PokemonSubstruct2
@@ -273,7 +143,7 @@ struct BattlePokemon
/*0x06*/ u16 speed;
/*0x08*/ u16 spAttack;
/*0x0A*/ u16 spDefense;
/*0x0C*/ u16 moves[4];
/*0x0C*/ u16 moves[MAX_MON_MOVES];
/*0x14*/ u32 hpIV:5;
/*0x14*/ u32 attackIV:5;
/*0x15*/ u32 defenseIV:5;
@@ -287,7 +157,7 @@ struct BattlePokemon
/*0x21*/ u8 type1;
/*0x22*/ u8 type2;
/*0x23*/ u8 unknown;
/*0x24*/ u8 pp[4];
/*0x24*/ u8 pp[MAX_MON_MOVES];
/*0x28*/ u16 hp;
/*0x2A*/ u8 level;
/*0x2B*/ u8 friendship;
@@ -348,13 +218,6 @@ struct BattleMove
u8 flags;
};
#define FLAG_MAKES_CONTACT 0x1
#define FLAG_PROTECT_AFFECTED 0x2
#define FLAG_MAGICCOAT_AFFECTED 0x4
#define FLAG_SNATCH_AFFECTED 0x8
#define FLAG_MIRROR_MOVE_AFFECTED 0x10
#define FLAG_KINGSROCK_AFFECTED 0x20
struct SpindaSpot
{
u8 x, y;
@@ -367,46 +230,6 @@ struct __attribute__((packed)) LevelUpMove
u16 level:7;
};
enum
{
GROWTH_MEDIUM_FAST,
GROWTH_ERRATIC,
GROWTH_FLUCTUATING,
GROWTH_MEDIUM_SLOW,
GROWTH_FAST,
GROWTH_SLOW
};
enum
{
BODY_COLOR_RED,
BODY_COLOR_BLUE,
BODY_COLOR_YELLOW,
BODY_COLOR_GREEN,
BODY_COLOR_BLACK,
BODY_COLOR_BROWN,
BODY_COLOR_PURPLE,
BODY_COLOR_GRAY,
BODY_COLOR_WHITE,
BODY_COLOR_PINK
};
#define EVO_FRIENDSHIP 0x0001 // Pokémon levels up with friendship ≥ 220
#define EVO_FRIENDSHIP_DAY 0x0002 // Pokémon levels up during the day with friendship ≥ 220
#define EVO_FRIENDSHIP_NIGHT 0x0003 // Pokémon levels up at night with friendship ≥ 220
#define EVO_LEVEL 0x0004 // Pokémon reaches the specified level
#define EVO_TRADE 0x0005 // Pokémon is traded
#define EVO_TRADE_ITEM 0x0006 // Pokémon is traded while it's holding the specified item
#define EVO_ITEM 0x0007 // specified item is used on Pokémon
#define EVO_LEVEL_ATK_GT_DEF 0x0008 // Pokémon reaches the specified level with attack > defense
#define EVO_LEVEL_ATK_EQ_DEF 0x0009 // Pokémon reaches the specified level with attack = defense
#define EVO_LEVEL_ATK_LT_DEF 0x000a // Pokémon reaches the specified level with attack < defense
#define EVO_LEVEL_SILCOON 0x000b // Pokémon reaches the specified level with a Silcoon personality value
#define EVO_LEVEL_CASCOON 0x000c // Pokémon reaches the specified level with a Cascoon personality value
#define EVO_LEVEL_NINJASK 0x000d // Pokémon reaches the specified level (special value for Ninjask)
#define EVO_LEVEL_SHEDINJA 0x000e // Pokémon reaches the specified level (special value for Shedinja)
#define EVO_BEAUTY 0x000f // Pokémon levels up with beauty ≥ specified value
struct Evolution
{
u16 method;
@@ -414,8 +237,6 @@ struct Evolution
u16 targetSpecies;
};
#define EVOS_PER_MON 5
extern u8 gPlayerPartyCount;
extern struct Pokemon gPlayerParty[PARTY_SIZE];
extern u8 gEnemyPartyCount;

View File

@@ -1,20 +1,20 @@
#ifndef GUARD_SCRIPT_MENU_H
#define GUARD_SCRIPT_MENU_H
extern const u8 *const gUnknown_0858BAF0[];
extern const u8 *const gStdStrings[];
bool8 ScriptMenu_Multichoice(u8 left, u8 top, u8 var3, u8 var4);
bool8 ScriptMenu_MultichoiceWithDefault(u8 left, u8 top, u8 var3, u8 var4, u8 var5);
bool8 ScriptMenu_YesNo(u8 var1, u8 var2);
bool8 ScriptMenu_MultichoiceGrid(u8 left, u8 top, u8 multichoiceId, u8 a4, u8 columnCount);
bool8 ScriptMenu_ShowPokemonPic(u16 var1, u8 var2, u8 var3);
bool8 ScriptMenu_Multichoice(u8 left, u8 top, u8 multichoiceId, bool8 ignoreBPress);
bool8 ScriptMenu_MultichoiceWithDefault(u8 left, u8 top, u8 multichoiceId, bool8 ignoreBPress, u8 defaultChoice);
bool8 ScriptMenu_YesNo(u8 left, u8 top);
bool8 ScriptMenu_MultichoiceGrid(u8 left, u8 top, u8 multichoiceId, bool8 ignoreBPress, u8 columnCount);
bool8 ScriptMenu_ShowPokemonPic(u16 species, u8 x, u8 y);
bool8 (*ScriptMenu_GetPicboxWaitFunc(void))(void);
int convert_pixel_width_to_tile_width(int);
u8 CreateWindowFromRect(u8, u8, u8, u8);
void ClearToTransparentAndRemoveWindow(u8);
int display_text_and_get_width(const u8*, int);
int sub_80E2D5C(int arg0, int tileWidth);
bool16 ScrSpecial_CreatePCMenu(void);
int ConvertPixelWidthToTileWidth(int width);
u8 CreateWindowFromRect(u8 x, u8 y, u8 width, u8 height);
void ClearToTransparentAndRemoveWindow(u8 windowId);
int DisplayTextAndGetWidth(const u8* str, int width);
int ScriptMenu_AdjustLeftCoordFromWidth(int left, int width);
bool16 ScriptMenu_CreatePCMultichoice(void);
void ScriptMenu_DisplayPCStartupPrompt(void);
#endif //GUARD_SCRIPT_MENU_H

View File

@@ -1,8 +1,8 @@
#ifndef GUARD_SCRIPT_MOVEMENT_H
#define GUARD_SCRIPT_MOVEMENT_H
bool8 ScriptMovement_StartObjectMovementScript(u8, u8, u8, const u8 *);
bool8 ScriptMovement_IsObjectMovementFinished(u8, u8, u8);
void sub_80D338C(void);
bool8 ScriptMovement_StartObjectMovementScript(u8 localId, u8 mapNum, u8 mapGroup, const u8 *movementScript);
bool8 ScriptMovement_IsObjectMovementFinished(u8 localId, u8 mapNum, u8 mapGroup);
void ScriptMovement_UnfreezeEventObjects(void);
#endif // GUARD_SCRIPT_MOVEMENT_H

View File

@@ -4,6 +4,7 @@
#define NUM_REELS 3
#define REEL_NUM_TAGS 21
#define REEL_TAG_HEIGHT 24
#define SLOT_MACHINE_COUNT 12
// Lucky Flags
#define LUCKY_BIAS_REPLAY (1 << 0)

View File

@@ -758,31 +758,29 @@ extern const u8 BattleFrontier_Lounge2_Text_26174D[];
extern const u8 BattleFrontier_Lounge2_Text_2617F9[];
extern const u8 BattleFrontier_Lounge2_Text_2618C4[];
extern const u8 BattleFrontier_Lounge5_Text_26468D[];
extern const u8 BattleFrontier_Lounge5_Text_2646E5[];
extern const u8 BattleFrontier_Lounge5_Text_264741[];
extern const u8 BattleFrontier_Lounge5_Text_2647A4[];
extern const u8 BattleFrontier_Lounge5_Text_2647FC[];
extern const u8 BattleFrontier_Lounge5_Text_264858[];
extern const u8 BattleFrontier_Lounge5_Text_2648BE[];
extern const u8 BattleFrontier_Lounge5_Text_264916[];
extern const u8 BattleFrontier_Lounge5_Text_264972[];
extern const u8 BattleFrontier_Lounge5_Text_2649D5[];
extern const u8 BattleFrontier_Lounge5_Text_264A3F[];
extern const u8 BattleFrontier_Lounge5_Text_264A9B[];
extern const u8 BattleFrontier_Lounge5_Text_264AF3[];
extern const u8 BattleFrontier_Lounge5_Text_264B5D[];
extern const u8 BattleFrontier_Lounge5_Text_2648BE[];
extern const u8 BattleFrontier_Lounge5_Text_264BC3[];
extern const u8 BattleFrontier_Lounge5_Text_264C36[];
extern const u8 BattleFrontier_Lounge5_Text_2648BE[];
extern const u8 BattleFrontier_Lounge5_Text_264C95[];
extern const u8 BattleFrontier_Lounge5_Text_264D01[];
extern const u8 BattleFrontier_Lounge5_Text_264D6B[];
extern const u8 BattleFrontier_Lounge5_Text_264DD7[];
extern const u8 BattleFrontier_Lounge5_Text_264E33[];
extern const u8 BattleFrontier_Lounge5_Text_264E8F[];
extern const u8 BattleFrontier_Lounge5_Text_2648BE[];
// Battle Frontier Nature Girl
extern const u8 BattleFrontier_Lounge5_Text_NatureGirlHardy[];
extern const u8 BattleFrontier_Lounge5_Text_NatureGirlLonely[];
extern const u8 BattleFrontier_Lounge5_Text_NatureGirlBrave[];
extern const u8 BattleFrontier_Lounge5_Text_NatureGirlAdamant[];
extern const u8 BattleFrontier_Lounge5_Text_NatureGirlNaughty[];
extern const u8 BattleFrontier_Lounge5_Text_NatureGirlBold[];
extern const u8 BattleFrontier_Lounge5_Text_NatureGirlDocileNaiveQuietQuirky[];
extern const u8 BattleFrontier_Lounge5_Text_NatureGirlRelaxed[];
extern const u8 BattleFrontier_Lounge5_Text_NatureGirlImpish[];
extern const u8 BattleFrontier_Lounge5_Text_NatureGirlLax[];
extern const u8 BattleFrontier_Lounge5_Text_NatureGirlTimid[];
extern const u8 BattleFrontier_Lounge5_Text_NatureGirlHasty[];
extern const u8 BattleFrontier_Lounge5_Text_NatureGirlSerious[];
extern const u8 BattleFrontier_Lounge5_Text_NatureGirlJolly[];
extern const u8 BattleFrontier_Lounge5_Text_NatureGirlModest[];
extern const u8 BattleFrontier_Lounge5_Text_NatureGirlMild[];
extern const u8 BattleFrontier_Lounge5_Text_NatureGirlBashful[];
extern const u8 BattleFrontier_Lounge5_Text_NatureGirlRash[];
extern const u8 BattleFrontier_Lounge5_Text_NatureGirlCalm[];
extern const u8 BattleFrontier_Lounge5_Text_NatureGirlGentle[];
extern const u8 BattleFrontier_Lounge5_Text_NatureGirlSassy[];
extern const u8 BattleFrontier_Lounge5_Text_NatureGirlCareful[];
extern const u8 BattleFrontier_Lounge3_Text_262261[];
extern const u8 BattleFrontier_Lounge3_Text_26230D[];
@@ -1024,36 +1022,31 @@ extern const u8 gText_PokenavRibbons_RibbonListButtons[];
extern const u8 gText_PokenavRibbons_RibbonCheckButtons[];
extern const u8 gText_Number2[];
extern const u8 gUnknown_085EAD37[];
extern const u8 gUnknown_085EAD41[];
extern const u8 gUnknown_085EAD67[];
extern const u8 gUnknown_085EAD6D[];
extern const u8 gUnknown_085EAD72[];
extern const u8 gUnknown_085EAD84[];
extern const u8 gUnknown_085EAD96[];
extern const u8 gUnknown_085EADA4[];
extern const u8 gUnknown_085EADB5[];
extern const u8 gUnknown_085EADC4[];
extern const u8 gUnknown_085EADD5[];
extern const u8 gUnknown_085EADE7[];
extern const u8 gUnknown_085EADF9[];
extern const u8 gUnknown_085EAE04[];
extern const u8 gUnknown_085EAE12[];
extern const u8 gUnknown_085EAE1B[];
extern const u8 gUnknown_085EAE27[];
extern const u8 gUnknown_085EAE2C[];
extern const u8 gUnknown_085EAE31[];
extern const u8 gUnknown_085EAE35[];
extern const u8 gUnknown_085EAE39[];
extern const u8 gUnknown_085EAE3D[];
extern const u8 gUnknown_085EAE41[];
extern const u8 gUnknown_085EAD5F[];
extern const u8 gUnknown_085EAE53[];
extern const u8 gUnknown_085EAE5A[];
extern const u8 gText_Petalburg[];
extern const u8 gText_Slateport[];
extern const u8 gText_Enter2[];
extern const u8 gText_Info2[];
extern const u8 gText_WhatsAContest[];
extern const u8 gText_TypesOfContests[];
extern const u8 gText_Ranks[];
extern const u8 gText_Decoration2[];
extern const u8 gText_PackUp[];
extern const u8 gText_Registry[];
extern const u8 gText_Information[];
extern const u8 gText_Mach[];
extern const u8 gText_Acro[];
extern const u8 gText_Psn[];
extern const u8 gText_Par[];
extern const u8 gText_Slp[];
extern const u8 gText_Brn[];
extern const u8 gText_Frz[];
extern const u8 gText_Dewford[];
extern const u8 gText_SawIt[];
extern const u8 gText_NotYet[];
extern const u8 gText_Yes[];
extern const u8 gText_No[];
extern const u8 gUnknown_085EAEA2[];
extern const u8 gUnknown_085EAEAC[];
extern const u8 gText_Challenge[];
extern const u8 gText_Info3[];
extern const u8 gTrickHouse_Mechadoll_Oddish[];
extern const u8 gTrickHouse_Mechadoll_Poochyena[];
extern const u8 gTrickHouse_Mechadoll_Taillow[];
@@ -1149,65 +1142,64 @@ extern const u8 gText_DexEmptyString[];
extern const u8 gText_DexSearchDontSpecify[];
extern const u8 gText_DexSearchTypeNone[];
extern const u8 gUnknown_085EAEC3[];
extern const u8 gUnknown_085EAED6[];
extern const u8 gUnknown_085EAEE6[];
extern const u8 gUnknown_085EAEF6[];
extern const u8 gUnknown_085EAF02[];
extern const u8 gUnknown_085EAF0E[];
extern const u8 gUnknown_085EAF1B[];
extern const u8 gUnknown_085EAF24[];
extern const u8 gUnknown_085EAF2F[];
extern const u8 gUnknown_085EAF34[];
extern const u8 gUnknown_085EAF3E[];
extern const u8 gUnknown_085EAF4B[];
extern const u8 gUnknown_085EAF58[];
extern const u8 gUnknown_085EAF65[];
extern const u8 gUnknown_085EAF70[];
extern const u8 gUnknown_085EAF7D[];
extern const u8 gUnknown_085EAF87[];
extern const u8 gUnknown_085EAF93[];
extern const u8 gUnknown_085EAF9F[];
extern const u8 gUnknown_085EAFAB[];
extern const u8 gUnknown_085EAFB6[];
extern const u8 gUnknown_085EAFCF[];
extern const u8 gUnknown_085EAFE8[];
extern const u8 gUnknown_085EB089[];
extern const u8 gUnknown_085EB09C[];
extern const u8 gUnknown_085EB0AF[];
extern const u8 gUnknown_085EB0C2[];
extern const u8 gUnknown_085EB0D5[];
extern const u8 gUnknown_085EB002[];
extern const u8 gUnknown_085EB017[];
extern const u8 gUnknown_085EB02A[];
extern const u8 gUnknown_085EB034[];
extern const u8 gText_FreshWaterAndPrice[];
extern const u8 gText_SodaPopAndPrice[];
extern const u8 gText_LemonadeAndPrice[];
extern const u8 gText_HowToRide[];
extern const u8 gText_HowToTurn[];
extern const u8 gText_SandySlopes[];
extern const u8 gText_Wheelies[];
extern const u8 gText_BunnyHops[];
extern const u8 gText_Jump[];
extern const u8 gText_Satisfied[];
extern const u8 gText_Dissatisfied[];
extern const u8 gText_DeepSeaTooth[];
extern const u8 gText_DeepSeaScale[];
extern const u8 gText_BlueFlute2[];
extern const u8 gText_YellowFlute2[];
extern const u8 gText_RedFlute2[];
extern const u8 gText_WhiteFlute2[];
extern const u8 gText_BlackFlute2[];
extern const u8 gText_GlassChair[];
extern const u8 gText_GlassDesk[];
extern const u8 gText_TreeckoDollAndPrice[];
extern const u8 gText_TorchicDollAndPrice[];
extern const u8 gText_MudkipDollAndPrice[];
extern const u8 gText_TM32AndPrice[];
extern const u8 gText_TM29AndPrice[];
extern const u8 gText_TM35AndPrice[];
extern const u8 gText_TM24AndPrice[];
extern const u8 gText_TM13AndPrice[];
extern const u8 gText_50CoinsAndPrice[];
extern const u8 gText_500CoinsAndPrice[];
extern const u8 gText_Excellent2[];
extern const u8 gText_NotSoGood[];
extern const u8 gText_LilycoveCity[];
extern const u8 gUnknown_085EB07E[];
extern const u8 gUnknown_085EB084[];
extern const u8 gUnknown_085EB040[];
extern const u8 gUnknown_085EB04A[];
extern const u8 gUnknown_085EB057[];
extern const u8 gUnknown_085EB062[];
extern const u8 gText_Right[];
extern const u8 gText_Left[];
extern const u8 gText_RedShard[];
extern const u8 gText_YellowShard[];
extern const u8 gText_BlueShard[];
extern const u8 gText_GreenShard[];
extern const u8 gText_Opponent[];
extern const u8 gText_Tourney_Tree[];
extern const u8 gText_ReadyToStart[];
extern const u8 gUnknown_085EB5BC[];
extern const u8 gUnknown_085EB5C3[];
extern const u8 gUnknown_085EB5C8[];
extern const u8 gUnknown_085EB29A[];
extern const u8 gUnknown_085EB2A3[];
extern const u8 gUnknown_085EB372[];
extern const u8 gUnknown_085EB37F[];
extern const u8 gUnknown_085EB389[];
extern const u8 gUnknown_085EAE6E[];
extern const u8 gUnknown_085EAE7C[];
extern const u8 gUnknown_085EAE8A[];
extern const u8 gUnknown_085EAD6D[];
extern const u8 gUnknown_085EB397[];
extern const u8 gUnknown_085EB3A4[];
extern const u8 gUnknown_085EB3B1[];
extern const u8 gUnknown_085EB3D4[];
extern const u8 gUnknown_085EB3C6[];
extern const u8 gText_Record2[];
extern const u8 gText_Rest[];
extern const u8 gText_Retire[];
extern const u8 gText_RedTent[];
extern const u8 gText_BlueTent[];
extern const u8 gText_TradeCenter[];
extern const u8 gText_Colosseum[];
extern const u8 gText_RecordCorner[];
extern const u8 gText_SingleBattle[];
extern const u8 gText_DoubleBattle[];
extern const u8 gText_MultiBattle[];
extern const u8 gText_BerryCrush3[];
extern const u8 gText_PokemonJump[];
extern const u8 gText_DodrioBerryPicking[];
extern const u8 gText_JoinGroup[];
extern const u8 gText_BecomeLeader[];
extern const u8 gText_NormalRank[];
extern const u8 gText_SuperRank[];
extern const u8 gText_HyperRank[];
@@ -1219,56 +1211,56 @@ extern const u8 gText_AboutE_Mode[];
extern const u8 gText_AboutG_Mode[];
extern const u8 gText_E_Mode[];
extern const u8 gText_G_Mode[];
extern const u8 gUnknown_085EB278[];
extern const u8 gUnknown_085EB28A[];
extern const u8 gUnknown_085EB290[];
extern const u8 gUnknown_085EB295[];
extern const u8 gUnknown_085EB2E4[];
extern const u8 gUnknown_085EB2F0[];
extern const u8 gUnknown_085EB2FC[];
extern const u8 gUnknown_085EB3DF[];
extern const u8 gUnknown_085EB3EA[];
extern const u8 gUnknown_085EB3F1[];
extern const u8 gUnknown_085EB3FC[];
extern const u8 gUnknown_085EB40A[];
extern const u8 gUnknown_085EB415[];
extern const u8 gUnknown_085EB41D[];
extern const u8 gUnknown_085EB424[];
extern const u8 gUnknown_085EB45C[];
extern const u8 gUnknown_085EB469[];
extern const u8 gUnknown_085EB475[];
extern const u8 gUnknown_085EB482[];
extern const u8 gUnknown_085EB42F[];
extern const u8 gUnknown_085EB43A[];
extern const u8 gUnknown_085EB444[];
extern const u8 gUnknown_085EB451[];
extern const u8 gUnknown_085EB48E[];
extern const u8 gUnknown_085EB496[];
extern const u8 gUnknown_085EB4A3[];
extern const u8 gUnknown_085EB4AD[];
extern const u8 gUnknown_085EB4B9[];
extern const u8 gUnknown_085EB4C7[];
extern const u8 gUnknown_085EB4D4[];
extern const u8 gUnknown_085EB4E0[];
extern const u8 gUnknown_085EB532[];
extern const u8 gUnknown_085EB543[];
extern const u8 gUnknown_085EB555[];
extern const u8 gUnknown_085EB563[];
extern const u8 gUnknown_085EB56E[];
extern const u8 gUnknown_085EB57E[];
extern const u8 gUnknown_085EB589[];
extern const u8 gUnknown_085EB5B6[];
extern const u8 gUnknown_085EE14B[];
extern const u8 gUnknown_085EE14F[];
extern const u8 gUnknown_085EB2FF[];
extern const u8 gUnknown_085EB310[];
extern const u8 gUnknown_085EB317[];
extern const u8 gUnknown_085EB31F[];
extern const u8 gText_Blank[];
extern const u8 gText_5BP[];
extern const u8 gText_10BP[];
extern const u8 gText_15BP[];
extern const u8 gText_ClawFossil[];
extern const u8 gText_RootFossil[];
extern const u8 gText_No4[];
extern const u8 gText_TwoStyles[];
extern const u8 gText_Lv50_3[];
extern const u8 gText_OpenLevel2[];
extern const u8 gText_MonTypeAndNo[];
extern const u8 gText_HoldItems[];
extern const u8 gText_Symbols2[];
extern const u8 gText_Record3[];
extern const u8 gText_BattlePts[];
extern const u8 gText_BattleRules[];
extern const u8 gText_JudgeMind[];
extern const u8 gText_JudgeSkill[];
extern const u8 gText_JudgeBody[];
extern const u8 gText_TowerInfo[];
extern const u8 gText_BattleMon[];
extern const u8 gText_BattleSalon[];
extern const u8 gText_MultiLink2[];
extern const u8 gText_Matchup[];
extern const u8 gText_TourneyTree[];
extern const u8 gText_DoubleKO[];
extern const u8 gText_BasicRules[];
extern const u8 gText_SwapPartners[];
extern const u8 gText_SwapNumber[];
extern const u8 gText_SwapNotes[];
extern const u8 gText_OpenLevel3[];
extern const u8 gText_PyramidPokemon[];
extern const u8 gText_PyramidTrainers[];
extern const u8 gText_PyramidMaze[];
extern const u8 gText_BattleBag2[];
extern const u8 gText_PokenavAndBag[];
extern const u8 gText_HeldItems[];
extern const u8 gText_PokemonOrder[];
extern const u8 gText_GoOn[];
extern const u8 gText_Red[];
extern const u8 gText_Blue[];
extern const u8 gText_IllBattleNow[];
extern const u8 gText_IWon[];
extern const u8 gText_ILost[];
extern const u8 gText_IWontTell[];
extern const u8 gText_CaveOfOrigin[];
extern const u8 gText_MtPyre[];
extern const u8 gText_SkyPillar[];
extern const u8 gText_DontRemember[];
extern const u8 gUnknown_085EB597[];
extern const u8 gText_BattlePokemon[];
extern const u8 gText_NormalTagMatch[];
extern const u8 gText_VarietyTagMatch[];
extern const u8 gText_UniqueTagMatch[];
@@ -1281,29 +1273,15 @@ extern const u8 gText_TrainerHill2F[];
extern const u8 gText_TrainerHill3F[];
extern const u8 gText_TrainerHill4F[];
extern const u8 OldaleTown_PokemonCenter_2F_Text_277F1B[];
extern const u8 OldaleTown_PokemonCenter_2F_Text_277F5A[];
extern const u8 OldaleTown_PokemonCenter_2F_Text_277F96[];
extern const u8 OldaleTown_PokemonCenter_2F_Text_27889C[];
extern const u8 OldaleTown_PokemonCenter_2F_Text_27879F[];
extern const u8 OldaleTown_PokemonCenter_2F_Text_2787D5[];
extern const u8 OldaleTown_PokemonCenter_2F_Text_278831[];
extern const u8 OldaleTown_PokemonCenter_2F_Text_27889C[];
extern const u8 OldaleTown_PokemonCenter_2F_Text_27879F[];
extern const u8 OldaleTown_PokemonCenter_2F_Text_2787D5[];
extern const u8 OldaleTown_PokemonCenter_2F_Text_2787FC[];
extern const u8 OldaleTown_PokemonCenter_2F_Text_27889C[];
extern const u8 OldaleTown_PokemonCenter_2F_Text_27879F[];
extern const u8 OldaleTown_PokemonCenter_2F_Text_2787D5[];
extern const u8 OldaleTown_PokemonCenter_2F_Text_278831[];
extern const u8 OldaleTown_PokemonCenter_2F_Text_2787FC[];
extern const u8 OldaleTown_PokemonCenter_2F_Text_27889C[];
extern const u8 OldaleTown_PokemonCenter_2F_Text_277F1B[];
extern const u8 OldaleTown_PokemonCenter_2F_Text_277F5A[];
extern const u8 OldaleTown_PokemonCenter_2F_Text_27889C[];
extern const u8 OldaleTown_PokemonCenter_2F_Text_27879F[];
extern const u8 OldaleTown_PokemonCenter_2F_Text_2787D5[];
extern const u8 OldaleTown_PokemonCenter_2F_Text_27889C[];
// Cable Club multichoice text
extern const u8 CableClub_Text_TradeUsingLinkCable[];
extern const u8 CableClub_Text_BattleUsingLinkCable[];
extern const u8 CableClub_Text_RecordCornerUsingLinkCable[];
extern const u8 CableClub_Text_CancelSelectedItem[];
extern const u8 CableClub_Text_YouMayTradeHere[];
extern const u8 CableClub_Text_YouMayBattleHere[];
extern const u8 CableClub_Text_CanMixRecords[];
extern const u8 CableClub_Text_CanMakeBerryPowder[];
// Frontier records.
extern const u8 gText_WinStreak[];

View File

@@ -5,6 +5,7 @@
#define TAIL_SENTINEL 0xFF
#define NUM_TASKS 16
#define NUM_TASK_DATA 16
typedef void (*TaskFunc)(u8 taskId);
@@ -15,7 +16,7 @@ struct Task
u8 prev;
u8 next;
u8 priority;
s16 data[16];
s16 data[NUM_TASK_DATA];
};
extern struct Task gTasks[];