summaryrefslogtreecommitdiff
path: root/include
diff options
context:
space:
mode:
Diffstat (limited to 'include')
-rw-r--r--include/battle.h21
-rw-r--r--include/battle_ai_switch_items.h22
-rw-r--r--include/battle_controllers.h4
-rw-r--r--include/battle_message.h3
-rw-r--r--include/cable_club.h1
-rw-r--r--include/constants/battle.h4
-rw-r--r--include/constants/battle_script_commands.h49
-rw-r--r--include/constants/battle_string_ids.h224
-rw-r--r--include/constants/cable_club.h4
-rwxr-xr-xinclude/constants/event_object_movement.h3
-rw-r--r--include/constants/event_objects.h16
-rw-r--r--include/constants/flags.h18
-rw-r--r--include/constants/lilycove_lady.h10
-rwxr-xr-xinclude/constants/metatile_behaviors.h1
-rw-r--r--include/constants/tv.h8
-rw-r--r--include/event_object_movement.h22
-rw-r--r--include/event_scripts.h10
-rw-r--r--include/field_camera.h7
-rw-r--r--include/field_effect_helpers.h26
-rw-r--r--include/field_player_avatar.h2
-rw-r--r--include/field_weather.h81
-rw-r--r--include/fieldmap.h7
-rw-r--r--include/global.fieldmap.h5
-rw-r--r--include/global.h10
-rw-r--r--include/global.tv.h4
-rw-r--r--include/lilycove_lady.h2
-rw-r--r--include/overworld.h17
27 files changed, 420 insertions, 161 deletions
diff --git a/include/battle.h b/include/battle.h
index 954d33b07..14ecfbdd3 100644
--- a/include/battle.h
+++ b/include/battle.h
@@ -40,16 +40,17 @@
#define MAX_TRAINER_ITEMS 4
// array entries for battle communication
-#define MULTIUSE_STATE 0x0
-#define CURSOR_POSITION 0x1
-#define TASK_ID 0x1 // task Id and cursor position share the same field
-#define SPRITES_INIT_STATE1 0x1 // shares the Id as well
-#define SPRITES_INIT_STATE2 0x2
-#define MOVE_EFFECT_BYTE 0x3
-#define ACTIONS_CONFIRMED_COUNT 0x4
-#define MULTISTRING_CHOOSER 0x5
-#define MSG_DISPLAY 0x7
-#define BATTLE_COMMUNICATION_ENTRIES_COUNT 0x8
+#define MULTIUSE_STATE 0
+#define CURSOR_POSITION 1
+#define TASK_ID 1 // task Id and cursor position share the same field
+#define SPRITES_INIT_STATE1 1 // shares the Id as well
+#define SPRITES_INIT_STATE2 2
+#define MOVE_EFFECT_BYTE 3
+#define ACTIONS_CONFIRMED_COUNT 4
+#define MULTISTRING_CHOOSER 5
+#define MISS_TYPE 6
+#define MSG_DISPLAY 7
+#define BATTLE_COMMUNICATION_ENTRIES_COUNT 8
#define MOVE_TARGET_SELECTED 0x0
#define MOVE_TARGET_DEPENDS 0x1
diff --git a/include/battle_ai_switch_items.h b/include/battle_ai_switch_items.h
index 0a230e7f6..a0b6fe62c 100644
--- a/include/battle_ai_switch_items.h
+++ b/include/battle_ai_switch_items.h
@@ -7,10 +7,30 @@ enum
AI_ITEM_HEAL_HP,
AI_ITEM_CURE_CONDITION,
AI_ITEM_X_STAT,
- AI_ITEM_GUARD_SPECS,
+ AI_ITEM_GUARD_SPEC,
AI_ITEM_NOT_RECOGNIZABLE
};
+enum {
+ AI_HEAL_CONFUSION,
+ AI_HEAL_PARALYSIS,
+ AI_HEAL_FREEZE,
+ AI_HEAL_BURN,
+ AI_HEAL_POISON,
+ AI_HEAL_SLEEP,
+};
+
+enum {
+ AI_X_ATTACK,
+ AI_X_DEFEND,
+ AI_X_SPEED,
+ AI_X_SPATK,
+ AI_X_SPDEF, // Unused
+ AI_X_ACCURACY,
+ AI_X_EVASION, // Unused
+ AI_DIRE_HIT,
+};
+
void AI_TrySwitchOrUseItem(void);
u8 GetMostSuitableMonToSwitchInto(void);
diff --git a/include/battle_controllers.h b/include/battle_controllers.h
index da76ab0c6..34e916b0f 100644
--- a/include/battle_controllers.h
+++ b/include/battle_controllers.h
@@ -156,7 +156,7 @@ enum
CONTROLLER_CLEARUNKFLAG,
CONTROLLER_TOGGLEUNKFLAG,
CONTROLLER_HITANIMATION,
- CONTROLLER_42,
+ CONTROLLER_CANTSWITCH,
CONTROLLER_PLAYSE,
CONTROLLER_PLAYFANFAREORBGM,
CONTROLLER_FAINTINGCRY,
@@ -227,7 +227,7 @@ void BtlController_EmitSetUnkVar(u8 bufferId, u8 b); // unused
void BtlController_EmitClearUnkFlag(u8 bufferId); // unused
void BtlController_EmitToggleUnkFlag(u8 bufferId); // unused
void BtlController_EmitHitAnimation(u8 bufferId);
-void BtlController_EmitCmd42(u8 bufferId);
+void BtlController_EmitCantSwitch(u8 bufferId);
void BtlController_EmitPlaySE(u8 bufferId, u16 songId);
void BtlController_EmitPlayFanfareOrBGM(u8 bufferId, u16 songId, bool8 playBGM);
void BtlController_EmitFaintingCry(u8 bufferId);
diff --git a/include/battle_message.h b/include/battle_message.h
index 011a1cb0c..da3009d63 100644
--- a/include/battle_message.h
+++ b/include/battle_message.h
@@ -223,7 +223,6 @@ extern const u8* const gBattleStringsTable[];
extern const u8* const gStatNamesTable[];
extern const u8* const gPokeblockWasTooXStringTable[];
extern const u8* const gRefereeStringsTable[];
-extern const u8* const gStatNamesTable2[];
extern const u8 *const gRoundsStringTable[];
extern const u8 gText_PkmnIsEvolving[];
@@ -269,7 +268,7 @@ extern const u8 gText_Win[];
extern const u8 gText_Loss[];
extern const u8 gText_Draw[];
extern const u8 gText_StatRose[];
-extern const u8 gText_PkmnsStatChanged2[];
+extern const u8 gText_DefendersStatRose[];
extern const u8 gText_PkmnGettingPumped[];
extern const u8 gText_PkmnShroudedInMist[];
extern const u8 gText_PkmnsXPreventsSwitching[];
diff --git a/include/cable_club.h b/include/cable_club.h
index a5a6acfa4..c493691c1 100644
--- a/include/cable_club.h
+++ b/include/cable_club.h
@@ -2,6 +2,7 @@
#define GUARD_CABLE_CLUB_H
#include "task.h"
+#include "constants/cable_club.h"
void CreateTask_EnterCableClubSeat(TaskFunc taskFunc);
u8 CreateTask_ReestablishCableClubLink(void);
diff --git a/include/constants/battle.h b/include/constants/battle.h
index e6ebc85e4..3dbd83255 100644
--- a/include/constants/battle.h
+++ b/include/constants/battle.h
@@ -302,4 +302,8 @@
#define BATTLE_TERRAIN_BUILDING 8
#define BATTLE_TERRAIN_PLAIN 9
+#define B_WAIT_TIME_LONG 64
+#define B_WAIT_TIME_MED 48
+#define B_WAIT_TIME_SHORT 32
+
#endif // GUARD_CONSTANTS_BATTLE_H
diff --git a/include/constants/battle_script_commands.h b/include/constants/battle_script_commands.h
index 9372377c4..9794589af 100644
--- a/include/constants/battle_script_commands.h
+++ b/include/constants/battle_script_commands.h
@@ -32,14 +32,17 @@
#define cEFFECT_CHOOSER gBattleCommunication + 3
#define cMULTISTRING_CHOOSER gBattleCommunication + 5
+#define cMISS_TYPE gBattleCommunication + 6
// Battle Script defines for getting the wanted battler
#define BS_TARGET 0
#define BS_ATTACKER 1
#define BS_EFFECT_BATTLER 2
#define BS_FAINTED 3
-#define BS_BATTLER_0 7
#define BS_ATTACKER_WITH_PARTNER 4 // for Cmd_updatestatusicon
+#define BS_UNK_5 5
+#define BS_UNK_6 6
+#define BS_BATTLER_0 7
#define BS_ATTACKER_SIDE 8 // for Cmd_jumpifability
#define BS_NOT_ATTACKER_SIDE 9 // for Cmd_jumpifability
#define BS_SCRIPTING 10
@@ -54,12 +57,12 @@
#define ACC_CURR_MOVE 0
// compare operands
-#define CMP_EQUAL 0x0
-#define CMP_NOT_EQUAL 0x1
-#define CMP_GREATER_THAN 0x2
-#define CMP_LESS_THAN 0x3
-#define CMP_COMMON_BITS 0x4
-#define CMP_NO_COMMON_BITS 0x5
+#define CMP_EQUAL 0
+#define CMP_NOT_EQUAL 1
+#define CMP_GREATER_THAN 2
+#define CMP_LESS_THAN 3
+#define CMP_COMMON_BITS 4
+#define CMP_NO_COMMON_BITS 5
// Cmd_various
#define VARIOUS_CANCEL_MULTI_TURN_MOVES 0
@@ -92,27 +95,29 @@
#define DMG_DOUBLED 2
// Cmd_jumpifcantswitch
-#define SWITCH_IGNORE_ESCAPE_PREVENTION 0x80
+#define SWITCH_IGNORE_ESCAPE_PREVENTION (1 << 7)
// Cmd_statbuffchange
-#define STAT_BUFF_ALLOW_PTR 0x1 // If set, allow use of jumpptr. Set in every use of statbuffchange
-#define STAT_BUFF_NOT_PROTECT_AFFECTED 0x20
+#define STAT_BUFF_ALLOW_PTR (1 << 0) // If set, allow use of jumpptr. Set in every use of statbuffchange
+#define STAT_BUFF_NOT_PROTECT_AFFECTED (1 << 5)
// stat change flags for Cmd_playstatchangeanimation
-#define STAT_CHANGE_NEGATIVE 0x1
-#define STAT_CHANGE_BY_TWO 0x2
-#define STAT_CHANGE_MULTIPLE_STATS 0x4
-#define STAT_CHANGE_CANT_PREVENT 0x8
+#define STAT_CHANGE_NEGATIVE (1 << 0)
+#define STAT_CHANGE_BY_TWO (1 << 1)
+#define STAT_CHANGE_MULTIPLE_STATS (1 << 2)
+#define STAT_CHANGE_CANT_PREVENT (1 << 3)
// stat flags for Cmd_playstatchangeanimation
-#define BIT_HP 0x1
-#define BIT_ATK 0x2
-#define BIT_DEF 0x4
-#define BIT_SPEED 0x8
-#define BIT_SPATK 0x10
-#define BIT_SPDEF 0x20
-#define BIT_ACC 0x40
-#define BIT_EVASION 0x80
+#define BIT_HP (1 << 0)
+#define BIT_ATK (1 << 1)
+#define BIT_DEF (1 << 2)
+#define BIT_SPEED (1 << 3)
+#define BIT_SPATK (1 << 4)
+#define BIT_SPDEF (1 << 5)
+#define BIT_ACC (1 << 6)
+#define BIT_EVASION (1 << 7)
+
+#define PARTY_SCREEN_OPTIONAL (1 << 7) // Flag for first argument to openpartyscreen
// cases for Cmd_moveend
#define MOVEEND_RAGE 0
diff --git a/include/constants/battle_string_ids.h b/include/constants/battle_string_ids.h
index 1886043f1..f22541272 100644
--- a/include/constants/battle_string_ids.h
+++ b/include/constants/battle_string_ids.h
@@ -214,10 +214,10 @@
#define STRINGID_STATROSE 210
#define STRINGID_STATHARSHLY 211
#define STRINGID_STATFELL 212
-#define STRINGID_PKMNSSTATCHANGED 213
-#define STRINGID_PKMNSSTATCHANGED2 214
-#define STRINGID_PKMNSSTATCHANGED3 215
-#define STRINGID_PKMNSSTATCHANGED4 216
+#define STRINGID_ATTACKERSSTATROSE 213
+#define STRINGID_DEFENDERSSTATROSE 214
+#define STRINGID_ATTACKERSSTATFELL 215
+#define STRINGID_DEFENDERSSTATFELL 216
#define STRINGID_CRITICALHIT 217
#define STRINGID_ONEHITKO 218
#define STRINGID_123POOF 219
@@ -326,7 +326,7 @@
#define STRINGID_SOOTHINGAROMA 322
#define STRINGID_ITEMSCANTBEUSEDNOW 323
#define STRINGID_FORXCOMMAYZ 324
-#define STRINGID_USINGXTHEYOFZN 325
+#define STRINGID_USINGITEMSTATOFPKMNROSE 325
#define STRINGID_PKMNUSEDXTOGETPUMPED 326
#define STRINGID_PKMNSXMADEYUSELESS 327
#define STRINGID_PKMNTRAPPEDBYSANDTOMB 328
@@ -383,4 +383,218 @@
#define STRINGID_TRAINER1WINTEXT 379
#define STRINGID_TRAINER2WINTEXT 380
+
+// The below IDs are all indexes into battle message tables,
+// used to determine which of a set of messages to print.
+// They are assigned to the MULTISTRING_CHOOSER byte of gBattleCommunication
+// and read when e.g. the command printfromtable is used.
+
+// gStatUpStringIds
+#define B_MSG_ATTACKER_STAT_ROSE 0
+#define B_MSG_DEFENDER_STAT_ROSE 1
+#define B_MSG_STAT_WONT_INCREASE 2
+#define B_MSG_STAT_ROSE_EMPTY 3
+#define B_MSG_STAT_ROSE_ITEM 4
+#define B_MSG_USED_DIRE_HIT 5
+
+// gStatDownStringIds
+#define B_MSG_ATTACKER_STAT_FELL 0
+#define B_MSG_DEFENDER_STAT_FELL 1
+#define B_MSG_STAT_WONT_DECREASE 2
+#define B_MSG_STAT_FELL_EMPTY 3
+
+// gMissStringIds
+#define B_MSG_MISSED 0
+#define B_MSG_PROTECTED 1
+#define B_MSG_AVOIDED_ATK 2
+#define B_MSG_AVOIDED_DMG 3
+#define B_MSG_GROUND_MISS 4
+
+// gAbsorbDrainStringIds
+#define B_MSG_ABSORB 0
+#define B_MSG_ABSORB_OOZE 1
+
+// gLeechSeedStringIds
+#define B_MSG_LEECH_SEED_SET 0
+#define B_MSG_LEECH_SEED_MISS 1
+#define B_MSG_LEECH_SEED_FAIL 2
+#define B_MSG_LEECH_SEED_DRAIN 3
+#define B_MSG_LEECH_SEED_OOZE 4
+
+// gFirstTurnOfTwoStringIds
+#define B_MSG_TURN1_RAZOR_WIND 0
+#define B_MSG_TURN1_SOLAR_BEAM 1
+#define B_MSG_TURN1_SKULL_BASH 2
+#define B_MSG_TURN1_SKY_ATTACK 3
+#define B_MSG_TURN1_FLY 4
+#define B_MSG_TURN1_DIG 5
+#define B_MSG_TURN1_DIVE 6
+#define B_MSG_TURN1_BOUNCE 7
+
+// gMoveWeatherChangeStringIds
+#define B_MSG_STARTED_RAIN 0
+#define B_MSG_STARTED_DOWNPOUR 1
+#define B_MSG_WEATHER_FAILED 2
+#define B_MSG_STARTED_SANDSTORM 3
+#define B_MSG_STARTED_SUNLIGHT 4
+#define B_MSG_STARTED_HAIL 5
+
+// gRainContinuesStringIds
+#define B_MSG_RAIN_CONTINUES 0
+#define B_MSG_DOWNPOUR_CONTINUES 1
+#define B_MSG_RAIN_STOPPED 2
+
+// gSandStormHailContinuesStringIds / gSandStormHailDmgStringIds/ gSandStormHailEndStringIds
+#define B_MSG_SANDSTORM 0
+#define B_MSG_HAIL 1
+
+// gReflectLightScreenSafeguardStringIds
+#define B_MSG_SIDE_STATUS_FAILED 0
+#define B_MSG_SET_REFLECT_SINGLE 1
+#define B_MSG_SET_REFLECT_DOUBLE 2
+#define B_MSG_SET_LIGHTSCREEN_SINGLE 3
+#define B_MSG_SET_LIGHTSCREEN_DOUBLE 4
+#define B_MSG_SET_SAFEGUARD 5
+
+// gProtectLikeUsedStringIds
+#define B_MSG_PROTECTED_ITSELF 0
+#define B_MSG_BRACED_ITSELF 1
+#define B_MSG_PROTECT_FAILED 2
+
+// gRestUsedStringIds
+#define B_MSG_REST 0
+#define B_MSG_REST_STATUSED 1
+
+// gWokeUpStringIds
+#define B_MSG_WOKE_UP 0
+#define B_MSG_WOKE_UP_UPROAR 1
+
+// gUproarAwakeStringIds
+#define B_MSG_CANT_SLEEP_UPROAR 0
+#define B_MSG_UPROAR_KEPT_AWAKE 1
+#define B_MSG_STAYED_AWAKE_USING 2
+
+// gUproarOverTurnStringIds
+#define B_MSG_UPROAR_CONTINUES 0
+#define B_MSG_UPROAR_ENDS 1
+
+// gStockpileUsedStringIds
+#define B_MSG_STOCKPILED 0
+#define B_MSG_CANT_STOCKPILE 1
+
+// gSwallowFailStringIds
+#define B_MSG_SWALLOW_FAILED 0
+#define B_MSG_SWALLOW_FULL_HP 1
+
+// gKOFailedStringIds
+#define B_MSG_KO_MISS 0
+#define B_MSG_KO_UNAFFECTED 1
+
+// gMistUsedStringIds
+#define B_MSG_SET_MIST 0
+#define B_MSG_MIST_FAILED 1
+
+// gFocusEnergyUsedStringIds
+#define B_MSG_GETTING_PUMPED 0
+#define B_MSG_FOCUS_ENERGY_FAILED 1
+
+// gTransformUsedStringIds
+#define B_MSG_TRANSFORMED 0
+#define B_MSG_TRANSFORM_FAILED 1
+
+// gSubsituteUsedStringIds
+#define B_MSG_SET_SUBSTITUTE 0
+#define B_MSG_SUBSTITUTE_FAILED 1
+
+// gPartyStatusHealStringIds
+#define B_MSG_BELL 0
+#define B_MSG_BELL_SOUNDPROOF_ATTACKER 1
+#define B_MSG_BELL_SOUNDPROOF_PARTNER 2
+#define B_MSG_BELL_BOTH_SOUNDPROOF 3
+#define B_MSG_SOOTHING_AROMA 4
+
+// gFutureMoveUsedStringIds
+#define B_MSG_FUTURE_SIGHT 0
+#define B_MSG_DOOM_DESIRE 1
+
+// gItemSwapStringIds
+#define B_MSG_ITEM_SWAP_TAKEN 0
+#define B_MSG_ITEM_SWAP_GIVEN 1
+#define B_MSG_ITEM_SWAP_BOTH 2
+
+// gSportsUsedStringIds
+#define B_MSG_WEAKEN_ELECTRIC 0
+#define B_MSG_WEAKEN_FIRE 1
+
+// gCaughtMonStringIds
+#define B_MSG_SENT_SOMEONES_PC 0
+#define B_MSG_SENT_LANETTES_PC 1
+#define B_MSG_SOMEONES_BOX_FULL 2
+#define B_MSG_LANETTES_BOX_FULL 3
+
+// gInobedientStringIds
+#define B_MSG_LOAFING 0
+#define B_MSG_WONT_OBEY 1
+#define B_MSG_TURNED_AWAY 2
+#define B_MSG_PRETEND_NOT_NOTICE 3
+#define B_MSG_INCAPABLE_OF_POWER 4
+// For randomly selecting a disobey string
+// Skips the one used for Battle Palace
+#define NUM_LOAF_STRINGS 4
+
+// gSafariGetNearStringIds
+#define B_MSG_CREPT_CLOSER 0
+#define B_MSG_CANT_GET_CLOSER 1
+
+// gSafariPokeblockResultStringIds
+#define B_MSG_MON_CURIOUS 0
+#define B_MSG_MON_ENTHRALLED 1
+#define B_MSG_MON_IGNORED 2
+
+// gFlashFireStringIds
+#define B_MSG_FLASH_FIRE_BOOST 0
+#define B_MSG_FLASH_FIRE_NO_BOOST 1
+
+// gBerryEffectStringIds
+#define B_MSG_CURED_PROBLEM 0
+#define B_MSG_NORMALIZED_STATUS 1
+
+// gNoEscapeStringIds
+#define B_MSG_CANT_ESCAPE 0
+#define B_MSG_DONT_LEAVE_BIRCH 1
+#define B_MSG_PREVENTS_ESCAPE 2
+#define B_MSG_CANT_ESCAPE_2 3
+#define B_MSG_ATTACKER_CANT_ESCAPE 4
+
+// gGotPoisonedStringIds / gGotParalyzedStringIds / gFellAsleepStringIds
+// gGotBurnedStringIds / gGotFrozenStringIds / gAttractUsedStringIds
+#define B_MSG_STATUSED 0
+#define B_MSG_STATUSED_BY_ABILITY 1
+
+// gBRNPreventionStringIds / gPRLZPreventionStringIds / gPSNPreventionStringIds
+#define B_MSG_ABILITY_PREVENTS_MOVE_STATUS 0
+#define B_MSG_ABILITY_PREVENTS_ABILITY_STATUS 1
+#define B_MSG_STATUS_HAD_NO_EFFECT 2
+
+// gGotDefrostedStringIds
+#define B_MSG_DEFROSTED 0
+#define B_MSG_DEFROSTED_BY_MOVE 1
+
+// gBattlePalaceFlavorTextTable
+#define B_MSG_GLINT_IN_EYE 0
+#define B_MSG_GETTING_IN_POS 1
+#define B_MSG_GROWL_DEEPLY 2
+#define B_MSG_EAGER_FOR_MORE 3
+
+// gRefereeStringsTable
+#define B_MSG_REF_NOTHING_IS_DECIDED 0
+#define B_MSG_REF_THATS_IT 1
+#define B_MSG_REF_JUDGE_MIND 2
+#define B_MSG_REF_JUDGE_SKILL 3
+#define B_MSG_REF_JUDGE_BODY 4
+#define B_MSG_REF_PLAYER_WON 5
+#define B_MSG_REF_OPPONENT_WON 6
+#define B_MSG_REF_DRAW 7
+#define B_MSG_REF_COMMENCE_BATTLE 8
+
#endif // GUARD_CONSTANTS_BATTLE_STRING_IDS_H
diff --git a/include/constants/cable_club.h b/include/constants/cable_club.h
index cbdd049db..3515ffa2c 100644
--- a/include/constants/cable_club.h
+++ b/include/constants/cable_club.h
@@ -28,4 +28,8 @@
#define LINKUP_FAILED_BATTLE_TOWER 11
#define LINKUP_FOREIGN_GAME 12
+#define CABLE_SEAT_WAITING 0
+#define CABLE_SEAT_SUCCESS 1
+#define CABLE_SEAT_FAILED 2
+
#endif //GUARD_CONSTANTS_CABLE_CLUB_H
diff --git a/include/constants/event_object_movement.h b/include/constants/event_object_movement.h
index 223650081..13e91c415 100755
--- a/include/constants/event_object_movement.h
+++ b/include/constants/event_object_movement.h
@@ -237,11 +237,12 @@
#define MOVEMENT_ACTION_WALK_RIGHT_AFFINE 0x97
#define MOVEMENT_ACTION_LEVITATE 0x98
#define MOVEMENT_ACTION_STOP_LEVITATE 0x99
-#define MOVEMENT_ACTION_DESTROY_EXTRA_TASK_IF_AT_TOP 0x9A
+#define MOVEMENT_ACTION_STOP_LEVITATE_AT_TOP 0x9A
#define MOVEMENT_ACTION_FIGURE_8 0x9B
#define MOVEMENT_ACTION_FLY_UP 0x9C
#define MOVEMENT_ACTION_FLY_DOWN 0x9D
#define MOVEMENT_ACTION_STEP_END 0xFE
+#define MOVEMENT_ACTION_NONE 0xFF
#endif // GUARD_CONSTANTS_EVENT_OBJECT_MOVEMENT_H
diff --git a/include/constants/event_objects.h b/include/constants/event_objects.h
index 8e026ef2d..7a224940f 100644
--- a/include/constants/event_objects.h
+++ b/include/constants/event_objects.h
@@ -42,7 +42,7 @@
#define OBJ_EVENT_GFX_SCHOOL_KID_M 38
#define OBJ_EVENT_GFX_MANIAC 39
#define OBJ_EVENT_GFX_HEX_MANIAC 40
-#define OBJ_EVENT_GFX_RAYQUAZA_1 41
+#define OBJ_EVENT_GFX_RAYQUAZA_STILL 41
#define OBJ_EVENT_GFX_SWIMMER_M 42
#define OBJ_EVENT_GFX_SWIMMER_F 43
#define OBJ_EVENT_GFX_BLACK_BELT 44
@@ -198,17 +198,17 @@
#define OBJ_EVENT_GFX_MAY_DECORATING 194
#define OBJ_EVENT_GFX_ARCHIE 195
#define OBJ_EVENT_GFX_MAXIE 196
-#define OBJ_EVENT_GFX_KYOGRE_1 197
-#define OBJ_EVENT_GFX_GROUDON_1 198
+#define OBJ_EVENT_GFX_KYOGRE_FRONT 197
+#define OBJ_EVENT_GFX_GROUDON_FRONT 198
#define OBJ_EVENT_GFX_FOSSIL 199
#define OBJ_EVENT_GFX_REGIROCK 200
#define OBJ_EVENT_GFX_REGICE 201
#define OBJ_EVENT_GFX_REGISTEEL 202
#define OBJ_EVENT_GFX_SKITTY 203
#define OBJ_EVENT_GFX_KECLEON 204
-#define OBJ_EVENT_GFX_KYOGRE_2 205
-#define OBJ_EVENT_GFX_GROUDON_2 206
-#define OBJ_EVENT_GFX_RAYQUAZA_2 207
+#define OBJ_EVENT_GFX_KYOGRE_ASLEEP 205
+#define OBJ_EVENT_GFX_GROUDON_ASLEEP 206
+#define OBJ_EVENT_GFX_RAYQUAZA 207
#define OBJ_EVENT_GFX_ZIGZAGOON_2 208
#define OBJ_EVENT_GFX_PIKACHU 209
#define OBJ_EVENT_GFX_AZUMARILL 210
@@ -222,8 +222,8 @@
#define OBJ_EVENT_GFX_JUAN 218
#define OBJ_EVENT_GFX_SCOTT 219
#define OBJ_EVENT_GFX_POOCHYENA 220
-#define OBJ_EVENT_GFX_KYOGRE_3 221
-#define OBJ_EVENT_GFX_GROUDON_3 222
+#define OBJ_EVENT_GFX_KYOGRE_SIDE 221
+#define OBJ_EVENT_GFX_GROUDON_SIDE 222
#define OBJ_EVENT_GFX_MYSTERY_GIFT_MAN 223
#define OBJ_EVENT_GFX_TRICK_HOUSE_STATUE 224
#define OBJ_EVENT_GFX_KIRLIA 225
diff --git a/include/constants/flags.h b/include/constants/flags.h
index 798b42d4d..48606962a 100644
--- a/include/constants/flags.h
+++ b/include/constants/flags.h
@@ -91,10 +91,10 @@
#define FLAG_UNUSED_0x04F 0x4F // Unused Flag
// Scripts
-#define FLAG_HIDE_RAYQUAZA_SKY_TOWER_SUMMIT 0x50
-#define FLAG_SET_WALL_CLOCK 0x51
-#define FLAG_RESCUED_BIRCH 0x52
-#define FLAG_LEGENDARIES_IN_SOOTOPOLIS 0x53
+#define FLAG_HIDE_SKY_PILLAR_TOP_RAYQUAZA_STILL 0x50
+#define FLAG_SET_WALL_CLOCK 0x51
+#define FLAG_RESCUED_BIRCH 0x52
+#define FLAG_LEGENDARIES_IN_SOOTOPOLIS 0x53
#define FLAG_UNUSED_0x054 0x54 // Unused Flag
#define FLAG_UNUSED_0x055 0x55 // Unused Flag
@@ -775,7 +775,7 @@
#define FLAG_HIDE_LILYCOVE_FAN_CLUB_INTERVIEWER 0x2DA
#define FLAG_HIDE_RUSTBORO_CITY_AQUA_GRUNT 0x2DB
#define FLAG_HIDE_RUSTBORO_CITY_DEVON_EMPLOYEE_1 0x2DC
-#define FLAG_HIDE_SEAFLOOR_CAVERN_ROOM_9_KYOGRE_2 0x2DD
+#define FLAG_HIDE_SEAFLOOR_CAVERN_ROOM_9_KYOGRE_ASLEEP 0x2DD
#define FLAG_HIDE_PLAYERS_HOUSE_DAD 0x2DE
#define FLAG_HIDE_LITTLEROOT_TOWN_BRENDANS_HOUSE_RIVAL_SIBLING 0x2DF
#define FLAG_HIDE_LITTLEROOT_TOWN_MAYS_HOUSE_RIVAL_SIBLING 0x2E0
@@ -815,7 +815,7 @@
#define FLAG_HIDE_ROUTE_111_VIVI_WINSTRATE 0x302
#define FLAG_HIDE_ROUTE_111_VICKY_WINSTRATE 0x303
#define FLAG_HIDE_PETALBURG_GYM_NORMAN 0x304
-#define FLAG_HIDE_SKY_PILLAR_TOP_RAYQUAZA_2 0x305
+#define FLAG_HIDE_SKY_PILLAR_TOP_RAYQUAZA 0x305
#define FLAG_HIDE_LILYCOVE_CONTEST_HALL_CONTEST_ATTENDANT_1 0x306
#define FLAG_HIDE_LILYCOVE_MUSEUM_CURATOR 0x307
#define FLAG_HIDE_LILYCOVE_MUSEUM_PATRON_1 0x308
@@ -892,16 +892,16 @@
#define FLAG_HIDE_JAGGED_PASS_MAGMA_GUARD 0x34F
#define FLAG_HIDE_SLATEPORT_CITY_HARBOR_SUBMARINE_SHADOW 0x350
#define FLAG_HIDE_LITTLEROOT_TOWN_MAYS_HOUSE_2F_PICHU_DOLL 0x351
-#define FLAG_HIDE_MAGMA_HIDEOUT_4F_GROUDON_2 0x352
+#define FLAG_HIDE_MAGMA_HIDEOUT_4F_GROUDON_ASLEEP 0x352
#define FLAG_HIDE_ROUTE_119_RIVAL 0x353
#define FLAG_HIDE_LILYCOVE_CITY_AQUA_GRUNTS 0x354
-#define FLAG_HIDE_MAGMA_HIDEOUT_4F_GROUDON_1 0x355
+#define FLAG_HIDE_MAGMA_HIDEOUT_4F_GROUDON 0x355
#define FLAG_HIDE_SOOTOPOLIS_CITY_RESIDENTS 0x356
#define FLAG_HIDE_SKY_PILLAR_WALLACE 0x357
#define FLAG_HIDE_MT_PYRE_SUMMIT_MAXIE 0x358
#define FLAG_HIDE_MAGMA_HIDEOUT_GRUNTS 0x359
#define FLAG_HIDE_VICTORY_ROAD_ENTRANCE_WALLY 0x35A
-#define FLAG_HIDE_SEAFLOOR_CAVERN_ROOM_9_KYOGRE_1 0x35B
+#define FLAG_HIDE_SEAFLOOR_CAVERN_ROOM_9_KYOGRE 0x35B
#define FLAG_HIDE_SLATEPORT_CITY_HARBOR_SS_TIDAL 0x35C
#define FLAG_HIDE_LILYCOVE_HARBOR_SSTIDAL 0x35D
#define FLAG_HIDE_MOSSDEEP_CITY_SPACE_CENTER_2F_TEAM_MAGMA 0x35E
diff --git a/include/constants/lilycove_lady.h b/include/constants/lilycove_lady.h
index 01f60ccf4..11b9b31e9 100644
--- a/include/constants/lilycove_lady.h
+++ b/include/constants/lilycove_lady.h
@@ -21,6 +21,12 @@
#define QUIZ_AUTHOR_NAME_PLAYER 1
#define QUIZ_AUTHOR_NAME_OTHER_PLAYER 2
-#define QUIZ_QUESTION_LEN 9
+#define QUIZ_QUESTION_LEN 9
-#endif
+// Constants for how many good Pokéblocks the Contest Lady was given
+// This determines how her performance is described when her TV show comes on
+#define CONTEST_LADY_NORMAL 0
+#define CONTEST_LADY_GOOD 1
+#define CONTEST_LADY_BAD 2
+
+#endif // GUARD_LILYCOVE_LADY_CONSTANTS_H
diff --git a/include/constants/metatile_behaviors.h b/include/constants/metatile_behaviors.h
index cc069c66c..1d1557256 100755
--- a/include/constants/metatile_behaviors.h
+++ b/include/constants/metatile_behaviors.h
@@ -241,5 +241,6 @@
#define MB_UNUSED_ED 0xED
#define MB_UNUSED_EE 0xEE
#define MB_UNUSED_EF 0xEF
+#define MB_INVALID 0xFF
#endif // GUARD_METATILE_BEHAVIORS_H
diff --git a/include/constants/tv.h b/include/constants/tv.h
index 57da9837b..f7b091f49 100644
--- a/include/constants/tv.h
+++ b/include/constants/tv.h
@@ -19,7 +19,7 @@
#define TVSHOW_3_CHEERS_FOR_POKEBLOCKS 9
#define TVSHOW_BATTLE_UPDATE 10
#define TVSHOW_FAN_CLUB_SPECIAL 11
-#define TVSHOW_CONTEST_LIVE_UPDATES_2 12
+#define TVSHOW_LILYCOVE_CONTEST_LADY 12
// //
#define TVSHOW_POKEMON_TODAY_CAUGHT 21
#define TVSHOW_SMART_SHOPPER 22
@@ -215,4 +215,10 @@
#define TRENDWATCHER_STATE_BIGGER_FEMALE 5
#define TRENDWATCHER_STATE_OUTRO 6
+// TV Show states for the Contest Lady's Live Updates show
+#define CONTESTLADYLIVE_STATE_INTRO 0
+#define CONTESTLADYLIVE_STATE_WON 1
+#define CONTESTLADYLIVE_STATE_LOST 2
+#define CONTESTLADYLIVE_STATE_LOST_BADLY 3
+
#endif //GUARD_CONSTANTS_TV_H
diff --git a/include/event_object_movement.h b/include/event_object_movement.h
index 1e754dcd9..a935502e6 100644
--- a/include/event_object_movement.h
+++ b/include/event_object_movement.h
@@ -47,7 +47,7 @@ enum ReflectionTypes
#define GROUND_EFFECT_FLAG_HOT_SPRINGS (1 << 18)
#define GROUND_EFFECT_FLAG_SEAWEED (1 << 19)
-struct UnkStruct_085094AC
+struct StepAnimTable
{
const union AnimCmd *const *anims;
u8 animPos[4];
@@ -65,7 +65,6 @@ struct LockedAnimObjectEvents
u8 count;
};
-extern const struct SpriteFrameImage gObjectEventPicTable_PechaBerryTree[];
extern const struct OamData gObjectEventBaseOam_32x8;
extern const struct OamData gObjectEventBaseOam_32x32;
extern const struct SpriteTemplate *const gFieldEffectObjectTemplatePointers[];
@@ -87,9 +86,9 @@ void LoadPlayerObjectReflectionPalette(u16, u8);
void LoadSpecialObjectReflectionPalette(u16, u8);
void TryMoveObjectEventToMapCoords(u8, u8, u8, s16, s16);
void PatchObjectPalette(u16, u8);
-void sub_808E16C(s16, s16);
+void SpawnObjectEventsOnReturnToField(s16, s16);
void OverrideSecretBaseDecorationSpriteScript(u8 localId, u8 mapNum, u8 mapGroup, u8 decorCat);
-void sub_8092FF0(s16, s16, s16 *, s16 *);
+void GetMapCoordsFromSpritePos(s16, s16, s16 *, s16 *);
u8 GetFaceDirectionAnimNum(u8);
void SetSpritePosToOffsetMapCoords(s16 *, s16 *, s16, s16);
void ObjectEventClearHeldMovement(struct ObjectEvent *);
@@ -111,7 +110,7 @@ void FreeAndReserveObjectSpritePalettes(void);
void SetObjectEventSpritePosByLocalIdAndMap(u8 localId, u8 mapNum, u8 mapGroup, s16 x, s16 y);
void ResetObjectPriority(u8, u8, u8);
void SetObjectPriority(u8, u8, u8, u8);
-void sub_808E75C(s16, s16);
+void AllowObjectAtPosTriggerGroundEffects(s16, s16);
void ObjectEventGetLocalIdAndMap(struct ObjectEvent *objectEvent, void *localId, void *mapNum, void *mapGroup);
void ShiftObjectEventCoords(struct ObjectEvent *, s16, s16);
void MoveObjectEventToMapCoords(struct ObjectEvent *, s16, s16);
@@ -175,17 +174,8 @@ void SetObjectSubpriorityByZCoord(u8, struct Sprite *, u8);
bool8 IsZCoordMismatchAt(u8, s16, s16);
void UnfreezeObjectEvent(struct ObjectEvent *);
u8 FindLockedObjectEventIndex(struct ObjectEvent *);
-bool8 obj_npc_ministep(struct Sprite *sprite);
-bool8 sub_80976EC(struct Sprite *sprite);
-void sub_80976DC(struct Sprite *, u8);
-void sub_809783C(struct Sprite *, u8, u8, u8);
-void DoShadowFieldEffect(struct ObjectEvent *);
-u8 sub_809785C(struct Sprite *);
-u8 sub_80978E4(struct Sprite *);
void SetAndStartSpriteAnim(struct Sprite *, u8, u8);
bool8 SpriteAnimEnded(struct Sprite *);
-void CreateLevitateMovementTask(struct ObjectEvent *);
-void DestroyExtraMovementTask(u8);
void UnfreezeObjectEvents(void);
void FreezeObjectEventsExceptOne(u8 objectEventId);
void TurnObjectEventSprite(u8, u8);
@@ -196,9 +186,9 @@ u8 GetMoveDirectionFastAnimNum(u8);
u8 GetMoveDirectionFasterAnimNum(u8);
u8 GetMoveDirectionFastestAnimNum(u8);
u8 GetLedgeJumpDirection(s16, s16, u8);
-void CameraObjectSetFollowedObjectId(u8 objectId);
+void CameraObjectSetFollowedSpriteId(u8 objectId);
u16 GetObjectPaletteTag(u8 palSlot);
-void UpdateObjectEventSpriteVisibility(struct Sprite *sprite, bool8 invisible);
+void UpdateObjectEventSpriteInvisibility(struct Sprite *sprite, bool8 invisible);
s16 GetFigure8XOffset(s16 idx);
s16 GetFigure8YOffset(s16 idx);
void CameraObjectReset2(void);
diff --git a/include/event_scripts.h b/include/event_scripts.h
index ecb40c266..925b4389d 100644
--- a/include/event_scripts.h
+++ b/include/event_scripts.h
@@ -344,10 +344,10 @@ extern const u8 gTVInSearchOfTrainersText05[];
extern const u8 gTVInSearchOfTrainersText06[];
extern const u8 gTVInSearchOfTrainersText07[];
extern const u8 gTVInSearchOfTrainersText08[];
-extern const u8 gTVPokemonContestLiveUpdates2Text00[];
-extern const u8 gTVPokemonContestLiveUpdates2Text01[];
-extern const u8 gTVPokemonContestLiveUpdates2Text02[];
-extern const u8 gTVPokemonContestLiveUpdates2Text03[];
+extern const u8 ContestLadyShow_Text_Intro[];
+extern const u8 ContestLadyShow_Text_Won[];
+extern const u8 ContestLadyShow_Text_Lost[];
+extern const u8 ContestLadyShow_Text_LostBadly[];
extern const u8 gPokeNewsTextSlateport_Upcoming[];
extern const u8 gPokeNewsTextSlateport_Ongoing[];
extern const u8 gPokeNewsTextSlateport_Ending[];
@@ -607,7 +607,7 @@ extern const u8 EventScript_BattleColosseum_2P_PlayerSpot0[];
extern const u8 EventScript_BattleColosseum_2P_PlayerSpot1[];
extern const u8 EventScript_TradeCenter_Chair1[];
extern const u8 EventScript_TradeCenter_Chair0[];
-extern const u8 EventScript_ConfirmLeaveTradeRoom[];
+extern const u8 EventScript_ConfirmLeaveCableClubRoom[];
extern const u8 EventScript_TerminateLink[];
#endif // GUARD_EVENT_SCRIPTS_H
diff --git a/include/field_camera.h b/include/field_camera.h
index 2bed02b20..b245fca84 100644
--- a/include/field_camera.h
+++ b/include/field_camera.h
@@ -1,8 +1,6 @@
#ifndef GUARD_FIELD_CAMERA_H
#define GUARD_FIELD_CAMERA_H
-// Exported type declarations
-
struct CameraObject
{
void (*callback)(struct CameraObject *);
@@ -13,18 +11,15 @@ struct CameraObject
s32 y;
};
-// Exported RAM declarations
extern struct CameraObject gFieldCamera;
extern u16 gTotalCameraPixelOffsetX;
extern u16 gTotalCameraPixelOffsetY;
-// Exported ROM declarations
void DrawWholeMapView(void);
void CurrentMapDrawMetatileAt(int x, int y);
-void sub_8089C08(s16 *a0, s16 *a1);
+void GetCameraOffsetWithPan(s16 *a0, s16 *a1);
void DrawDoorMetatileAt(int x, int y, u16 *arr);
void ResetFieldCamera(void);
-void sub_8057A58(void);
void ResetCameraUpdateInfo(void);
u32 InitCameraUpdateCallback(u8 a);
void CameraUpdate(void);
diff --git a/include/field_effect_helpers.h b/include/field_effect_helpers.h
index 9b7b6ffd5..528492d81 100644
--- a/include/field_effect_helpers.h
+++ b/include/field_effect_helpers.h
@@ -1,18 +1,24 @@
#ifndef GUARD_FIELD_EFFECT_HELPERS_H
#define GUARD_FIELD_EFFECT_HELPERS_H
-// Exported type declarations
+// States for bobbing up and down while surfing
+enum {
+ // No bobbing
+ BOB_NONE,
+ // Both the surf blob/mon should bob up and down
+ BOB_PLAYER_AND_MON,
+ // Only the surf blob/mon should bob up and down
+ // For when the player has jumped/flown off
+ BOB_JUST_MON,
+};
-// Exported RAM declarations
-
-// Exported ROM declarations
u8 CreateWarpArrowSprite(void);
-u8 sub_8155800(u8 oldSpriteId);
-void SetSurfBobState(u8 spriteId, u8 value);
-void SetSurfBobWhileFlyingOutState(u8 spriteId, u8 value);
-void SetSurfBobWhileFishingState(u8 spriteId, u8 value, s16 data1);
-bool8 sub_8155DA0(struct ObjectEvent *);
-void sub_8155D78(struct ObjectEvent *);
+u8 StartUnderwaterSurfBlobBobbing(u8 oldSpriteId);
+void SetSurfBlob_BobState(u8 spriteId, u8 state);
+void SetSurfBlob_DontSyncAnim(u8 spriteId, bool8 dontSync);
+void SetSurfBlob_PlayerOffset(u8 spriteId, bool8 hasOffset, s16 offset);
+bool8 UpdateRevealDisguise(struct ObjectEvent *);
+void StartRevealDisguise(struct ObjectEvent *);
void StartAshFieldEffect(s16, s16, u16, s16);
void SetUpReflection(struct ObjectEvent*, struct Sprite*, u8);
u32 StartFieldEffectForObjectEvent(u8, struct ObjectEvent*);
diff --git a/include/field_player_avatar.h b/include/field_player_avatar.h
index c30ce0b6f..903fe6ef1 100644
--- a/include/field_player_avatar.h
+++ b/include/field_player_avatar.h
@@ -6,7 +6,7 @@ void ClearPlayerAvatarInfo(void);
void SetPlayerAvatarExtraStateTransition(u8, u8);
u8 GetPlayerAvatarGenderByGraphicsId(u8);
bool8 TestPlayerAvatarFlags(u8);
-u8 GetPlayerAvatarObjectId(void);
+u8 GetPlayerAvatarSpriteId(void);
void PlayerGetDestCoords(s16 *, s16 *);
u8 GetPlayerFacingDirection(void);
u8 GetPlayerMovementDirection(void);
diff --git a/include/field_weather.h b/include/field_weather.h
index 9ecf52501..9c6a4ab7a 100644
--- a/include/field_weather.h
+++ b/include/field_weather.h
@@ -4,6 +4,21 @@
#include "sprite.h"
#include "constants/field_weather.h"
+#define TAG_WEATHER_START 0x1200
+enum {
+ GFXTAG_CLOUD = TAG_WEATHER_START,
+ GFXTAG_FOG_H,
+ GFXTAG_ASH,
+ GFXTAG_FOG_D,
+ GFXTAG_SANDSTORM,
+ GFXTAG_BUBBLE,
+ GFXTAG_RAIN,
+};
+enum {
+ PALTAG_WEATHER = TAG_WEATHER_START,
+ PALTAG_WEATHER_2
+};
+
struct Weather
{
union
@@ -31,12 +46,12 @@ struct Weather
u8 gammaStepDelay;
u8 gammaStepFrameCounter;
u16 fadeDestColor;
- /*0x6C6*/ u8 palProcessingState;
- /*0x6C7*/ u8 fadeScreenCounter;
- /*0x6C8*/ bool8 readyForInit;
- /*0x6C9*/ u8 taskId;
- /*0x6CA*/ u8 unknown_6CA;
- u8 unknown_6CB;
+ u8 palProcessingState;
+ u8 fadeScreenCounter;
+ bool8 readyForInit;
+ u8 taskId;
+ u8 fadeInFirstFrame;
+ u8 fadeInTimer;
u16 initStep;
u16 finishStep;
u8 currWeather;
@@ -45,6 +60,7 @@ struct Weather
bool8 weatherChangeComplete;
u8 weatherPicSpritePalIndex;
u8 altGammaSpritePalIndex;
+ // Rain
u16 rainSpriteVisibleCounter;
u8 curRainSpriteIndex;
u8 targetRainSpriteCount;
@@ -52,37 +68,41 @@ struct Weather
u8 rainSpriteVisibleDelay;
u8 isDownpour;
u8 rainStrength;
- /*0x6DE*/ u8 cloudSpritesCreated;
- u8 filler_6DF[1];
+ u8 cloudSpritesCreated;
+ // Snow
u16 snowflakeVisibleCounter;
- u16 unknown_6E2;
+ u16 snowflakeTimer;
u8 snowflakeSpriteCount;
u8 targetSnowflakeSpriteCount;
- u16 unknown_6E6;
+ // Thunderstorm
+ u16 thunderDelay;
u16 thunderCounter;
- u8 unknown_6EA;
- u8 unknown_6EB;
- u8 unknown_6EC;
- u8 thunderTriggered;
+ bool8 thunderAllowEnd;
+ bool8 thunderSkipShort;
+ u8 thunderShortRetries;
+ bool8 thunderTriggered;
+ // Horizontal fog
u16 fogHScrollPosX;
u16 fogHScrollCounter;
u16 fogHScrollOffset;
u8 lightenedFogSpritePals[6];
u8 lightenedFogSpritePalsCount;
u8 fogHSpritesCreated;
+ // Ash
u16 ashBaseSpritesX;
- u16 unknown_6FE;
+ u16 ashUnused;
u8 ashSpritesCreated;
- u8 filler_701[3];
+ // Sandstorm
u32 sandstormXOffset;
u32 sandstormYOffset;
- u8 filler_70C[2];
+ u16 sandstormUnused;
u16 sandstormBaseSpritesX;
u16 sandstormPosY;
u16 sandstormWaveIndex;
u16 sandstormWaveCounter;
u8 sandstormSpritesCreated;
u8 sandstormSwirlSpritesCreated;
+ // Diagonal fog
u16 fogDBaseSpritesX;
u16 fogDPosY;
u16 fogDScrollXCounter;
@@ -90,13 +110,13 @@ struct Weather
u16 fogDXOffset;
u16 fogDYOffset;
u8 fogDSpritesCreated;
- u8 filler_725[1];
+ // Bubbles
u16 bubblesDelayCounter;
u16 bubblesDelayIndex;
u16 bubblesCoordsIndex;
u16 bubblesSpriteCount;
u8 bubblesSpritesCreated;
- u8 filler_72F;
+
u16 currBlendEVA;
u16 currBlendEVB;
u16 targetBlendEVA;
@@ -104,12 +124,12 @@ struct Weather
u8 blendUpdateCounter;
u8 blendFrameCounter;
u8 blendDelay;
- u8 filler_73B[0x3C-0x3B];
- s16 unknown_73C;
- s16 unknown_73E;
- s16 unknown_740;
- s16 unknown_742;
- u8 filler_744[0xD-4];
+ // Drought
+ s16 droughtBrightnessStage;
+ s16 droughtLastBrightnessStage;
+ s16 droughtTimer;
+ s16 droughtState;
+ u8 droughtUnused[9];
s8 loadDroughtPalsIndex;
u8 loadDroughtPalsOffset;
};
@@ -126,29 +146,26 @@ void StartWeather(void);
void SetNextWeather(u8 weather);
void SetCurrentAndNextWeather(u8 weather);
void SetCurrentAndNextWeatherNoDelay(u8 weather);
-void sub_80ABC48(s8 gammaIndex);
+void ApplyWeatherGammaShiftIfIdle(s8 gammaIndex);
void sub_80ABC7C(u8 gammaIndex, u8 gammaTargetIndex, u8 gammaStepDelay);
void FadeScreen(u8 mode, s8 delay);
bool8 IsWeatherNotFadingIn(void);
void UpdateSpritePaletteWithWeather(u8 spritePaletteIndex);
void ApplyWeatherGammaShiftToPal(u8 paletteIndex);
-u8 sub_80ABF20(void);
void LoadCustomWeatherSpritePalette(const u16 *palette);
void ResetDroughtWeatherPaletteLoading(void);
bool8 LoadDroughtWeatherPalettes(void);
-void sub_80ABFE0(s8 gammaIndex);
-void sub_80ABFF0(void);
-void sub_80AC01C(void);
+void DroughtStateInit(void);
+void DroughtStateRun(void);
void Weather_SetBlendCoeffs(u8 eva, u8 evb);
void Weather_SetTargetBlendCoeffs(u8 eva, u8 evb, int delay);
bool8 Weather_UpdateBlend(void);
-void sub_80AC274(u8 a);
u8 GetCurrentWeather(void);
void SetRainStrengthFromSoundEffect(u16 soundEffect);
void PlayRainStoppingSoundEffect(void);
u8 IsWeatherChangeComplete(void);
void SetWeatherScreenFadeOut(void);
-void sub_80AC3E4(void);
+void SetWeatherPalStateIdle(void);
void PreservePaletteInWeather(u8 preservedPalIndex);
void ResetPreservedPalettesInWeather(void);
diff --git a/include/fieldmap.h b/include/fieldmap.h
index 438fb4787..5bcbe20ea 100644
--- a/include/fieldmap.h
+++ b/include/fieldmap.h
@@ -20,16 +20,13 @@ void MapGridSetMetatileEntryAt(int, int, u16);
void GetCameraCoords(u16*, u16*);
bool8 MapGridIsImpassableAt(int, int);
int GetMapBorderIdAt(int x, int y);
-int CanCameraMoveInDirection(int direction);
+bool32 CanCameraMoveInDirection(int direction);
u16 GetBehaviorByMetatileId(u16 metatileId);
void GetCameraFocusCoords(u16 *x, u16 *y);
u8 MapGridGetMetatileLayerTypeAt(int x, int y);
u8 MapGridGetZCoordAt(int x, int y);
bool8 CameraMove(int deltaX, int deltaY);
-struct MapConnection *sub_8088950(u8 direction, int x, int y);
-bool8 sub_80889A8(u8 direction, int x, int y, struct MapConnection *connection);
-bool8 sub_8088A0C(int x, int src_width, int dest_width, int offset);
-void save_serialize_map(void);
+void SaveMapView(void);
void SetCameraFocusCoords(u16 x, u16 y);
void InitMap(void);
void InitMapFromSavedGame(void);
diff --git a/include/global.fieldmap.h b/include/global.fieldmap.h
index c4d7be35d..a3d99ee21 100644
--- a/include/global.fieldmap.h
+++ b/include/global.fieldmap.h
@@ -1,6 +1,7 @@
#ifndef GUARD_GLOBAL_FIELDMAP_H
#define GUARD_GLOBAL_FIELDMAP_H
+#define METATILE_BEHAVIOR_MASK 0x00FF
#define METATILE_COLLISION_MASK 0x0C00
#define METATILE_ID_MASK 0x03FF
#define METATILE_ID_UNDEFINED 0x03FF
@@ -12,7 +13,9 @@
enum
{
- CONNECTION_SOUTH = 1,
+ CONNECTION_INVALID = -1,
+ CONNECTION_NONE,
+ CONNECTION_SOUTH,
CONNECTION_NORTH,
CONNECTION_WEST,
CONNECTION_EAST,
diff --git a/include/global.h b/include/global.h
index 497fb40b1..18e2bfea7 100644
--- a/include/global.h
+++ b/include/global.h
@@ -1055,14 +1055,4 @@ struct MapPosition
s8 height;
};
-struct TradeRoomPlayer
-{
- u8 playerId;
- u8 isLocalPlayer;
- u8 c;
- u8 facing;
- struct MapPosition pos;
- u16 field_C;
-};
-
#endif // GUARD_GLOBAL_H
diff --git a/include/global.tv.h b/include/global.tv.h
index 8e1a898b6..64e6a984e 100644
--- a/include/global.tv.h
+++ b/include/global.tv.h
@@ -179,7 +179,7 @@ typedef union // size = 0x24
/*0x18*/ u8 idolNameLanguage;
} fanClubSpecial;
- // TVSHOW_CONTEST_LIVE_UPDATES_2
+ // TVSHOW_LILYCOVE_CONTEST_LADY
struct {
/*0x00*/ u8 kind;
/*0x01*/ bool8 active;
@@ -189,7 +189,7 @@ typedef union // size = 0x24
/*0x16*/ u8 pokeblockState;
/*0x17*/ u8 language;
/*0x18*/ u8 pokemonNameLanguage;
- } contestLiveUpdates2;
+ } contestLady;
// Record Mixing Shows
// TVSHOW_POKEMON_TODAY_CAUGHT
diff --git a/include/lilycove_lady.h b/include/lilycove_lady.h
index 1ec327be9..d3cce4ca8 100644
--- a/include/lilycove_lady.h
+++ b/include/lilycove_lady.h
@@ -12,6 +12,6 @@ void BufferContestLadyMonName(u8 *dest1, u8 *dest2);
void BufferContestLadyPlayerName(u8 *dest);
void BufferContestLadyLanguage(u8 *dest);
void BufferContestName(u8 *dest, u8 category);
-u8 sub_818E880(void);
+u8 GetContestLadyPokeblockState(void);
#endif //GUARD_LILYCOVE_LADY_H
diff --git a/include/overworld.h b/include/overworld.h
index 6efaa6ccb..16c75861c 100644
--- a/include/overworld.h
+++ b/include/overworld.h
@@ -7,17 +7,17 @@
#define LINK_KEY_CODE_DPAD_UP 0x13
#define LINK_KEY_CODE_DPAD_LEFT 0x14
#define LINK_KEY_CODE_DPAD_RIGHT 0x15
-#define LINK_KEY_CODE_UNK_2 0x16
+#define LINK_KEY_CODE_READY 0x16
#define LINK_KEY_CODE_EXIT_ROOM 0x17
#define LINK_KEY_CODE_START_BUTTON 0x18
#define LINK_KEY_CODE_A_BUTTON 0x19
-#define LINK_KEY_CODE_UNK_4 0x1A // I'd guess this is the B button?
+#define LINK_KEY_CODE_IDLE 0x1A
// These two are a hack to stop user input until link stuff can be
// resolved.
#define LINK_KEY_CODE_HANDLE_RECV_QUEUE 0x1B
#define LINK_KEY_CODE_HANDLE_SEND_QUEUE 0x1C
-#define LINK_KEY_CODE_UNK_7 0x1D
+#define LINK_KEY_CODE_EXIT_SEAT 0x1D
#define LINK_KEY_CODE_UNK_8 0x1E
#define MOVEMENT_MODE_FREE 0
@@ -143,15 +143,14 @@ void CB2_ReturnToFieldFromMultiplayer(void);
void CB2_ReturnToFieldWithOpenMenu(void);
void CB2_ReturnToFieldContinueScript(void);
void CB2_ReturnToFieldContinueScriptPlayMapMusic(void);
-void sub_80861E8(void);
+void CB2_ReturnToFieldFadeFromBlack(void);
void CB2_ContinueSavedGame(void);
void ResetAllMultiplayerState(void);
-u32 sub_8087214(void);
-bool32 sub_808727C(void);
-u16 sub_8087288(void);
-u16 sub_808729C(void);
+u32 GetCableClubPartnersReady(void);
+u16 SetInCableClubSeat(void);
+u16 SetLinkWaitingForScript(void);
u16 QueueExitLinkRoomKey(void);
-u16 sub_80872C4(void);
+u16 SetStartedCableClubActivity(void);
bool32 Overworld_LinkRecvQueueLengthMoreThan2(void);
bool32 Overworld_RecvKeysFromLinkIsRunning(void);
bool32 Overworld_SendKeysToLinkIsRunning(void);