summaryrefslogtreecommitdiff
path: root/include/constants
diff options
context:
space:
mode:
authorPhlosioneer <mattmdrr2@gmail.com>2019-03-15 01:19:00 -0400
committerPhlosioneer <mattmdrr2@gmail.com>2019-03-15 01:19:00 -0400
commit31ded7cc6f40876421c7186e15f8a9fa606ff569 (patch)
tree831d96edb6d2b4d239affc57ef98d6ccb2f1bccb /include/constants
parent2e789dbbdc18f56cba62aef51156d44136b20632 (diff)
parent8e1537fb57dc7ed17079b30f7a3851132cf462bd (diff)
Merge branch 'master' into pokenav-decomp-again
Diffstat (limited to 'include/constants')
-rw-r--r--include/constants/battle_frontier.h2
-rw-r--r--include/constants/easy_chat.h29
-rw-r--r--include/constants/flags.h4
-rw-r--r--include/constants/map_scripts.h12
-rwxr-xr-xinclude/constants/map_types.h6
-rw-r--r--include/constants/trainer_hill.h29
-rw-r--r--include/constants/vars.h494
-rw-r--r--include/constants/weather.h28
8 files changed, 351 insertions, 253 deletions
diff --git a/include/constants/battle_frontier.h b/include/constants/battle_frontier.h
index ca9e3bc9f..1224c0f31 100644
--- a/include/constants/battle_frontier.h
+++ b/include/constants/battle_frontier.h
@@ -10,6 +10,8 @@
#define FRONTIER_FACILITY_PIKE 5
#define FRONTIER_FACILITY_PYRAMID 6
#define NUM_FRONTIER_FACILITIES 7
+// The multiplayer battle colosseum rooms re-use VAR_FRONTIER_FACILITY.
+#define FRONTIER_FACILITY_DOUBLE_COLOSSEUM 9
#define TENT_VERDANTURF 2
#define TENT_FALLARBOR 3
diff --git a/include/constants/easy_chat.h b/include/constants/easy_chat.h
index 2c437c88e..50f5994f4 100644
--- a/include/constants/easy_chat.h
+++ b/include/constants/easy_chat.h
@@ -1,6 +1,33 @@
#ifndef GUARD_CONSTANTS_EASY_CHAT_H
#define GUARD_CONSTANTS_EASY_CHAT_H
+#define EASY_CHAT_TYPE_PROFILE 0
+#define EASY_CHAT_TYPE_BATTLE_START 1
+#define EASY_CHAT_TYPE_BATTLE_WON 2
+#define EASY_CHAT_TYPE_BATTLE_LOST 3
+#define EASY_CHAT_TYPE_MAIL 4
+#define EASY_CHAT_TYPE_INTERVIEW 5
+#define EASY_CHAT_TYPE_BARD_SONG 6
+#define EASY_CHAT_TYPE_FAN_CLUB 7
+#define EASY_CHAT_TYPE_UNK_8 8
+#define EASY_CHAT_TYPE_TRENDY_PHRASE 9
+#define EASY_CHAT_TYPE_GABBY_AND_TY 10
+#define EASY_CHAT_TYPE_CONTEST_INTERVIEW 11
+#define EASY_CHAT_TYPE_BATTLE_TOWER_INTERVIEW 12
+#define EASY_CHAT_TYPE_GOOD_SAYING 13
+#define EASY_CHAT_TYPE_FAN_QUESTION 14
+#define EASY_CHAT_TYPE_QUIZ_ANSWER 15
+#define EASY_CHAT_TYPE_QUIZ_QUESTION 16
+#define EASY_CHAT_TYPE_QUIZ_SET_QUESTION 17
+#define EASY_CHAT_TYPE_QUIZ_SET_ANSWER 18
+#define EASY_CHAT_TYPE_APPRENTICE 19
+#define EASY_CHAT_TYPE_QUESTIONNAIRE 20
+
+#define EASY_CHAT_PERSON_REPORTER_MALE 0
+#define EASY_CHAT_PERSON_REPORTER_FEMALE 1
+#define EASY_CHAT_PERSON_BOY 2
+#define EASY_CHAT_PERSON_DISPLAY_NONE 3
+
#define EC_GROUP_POKEMON 0x0
#define EC_GROUP_TRAINER 0x1
#define EC_GROUP_STATUS 0x2
@@ -23,6 +50,7 @@
#define EC_GROUP_MOVE_2 0x13
#define EC_GROUP_TRENDY_SAYING 0x14
#define EC_GROUP_POKEMON_2 0x15
+#define EC_NUM_GROUPS 0x16
// TRAINER
#define EC_WORD_I_CHOOSE_YOU (EC_GROUP_TRAINER << 9) | 0x0
@@ -1075,5 +1103,6 @@
#define EC_GROUP(word) ((word) >> 9)
#define EC_INDEX(word) ((word) & 0x1FF)
+#define EC_WORD(group, index) ((((group) & 0x7F) << 9) | ((index) & 0x1FF))
#endif // GUARD_CONSTANTS_EASY_CHAT_H
diff --git a/include/constants/flags.h b/include/constants/flags.h
index b440ba78b..230fbabaf 100644
--- a/include/constants/flags.h
+++ b/include/constants/flags.h
@@ -236,7 +236,7 @@
#define FLAG_MET_WAILMER_TRAINER 0xDA
#define FLAG_EVIL_LEADER_PLEASE_STOP 0xDB
-#define FLAG_UNUSED_0x0DC 0xDC // Unused Flag
+#define FLAG_NEVER_SET_0x0DC 0xDC // This flag is read, but never written to
#define FLAG_RECEIVED_GO_GOGGLES 0xDD
#define FLAG_WINGULL_SENT_ON_ERRAND 0xDE
@@ -1548,7 +1548,7 @@
// Special Flags (Unknown)
#define SPECIAL_FLAGS_START 0x4000
-#define FLAG_SPECIAL_FLAG_0x4000 0x4000
+#define FLAG_HIDE_MAP_NAME_POPUP 0x4000
#define FLAG_SPECIAL_FLAG_0x4001 0x4001
#define FLAG_SPECIAL_FLAG_0x4002 0x4002
#define FLAG_SPECIAL_FLAG_0x4003 0x4003
diff --git a/include/constants/map_scripts.h b/include/constants/map_scripts.h
new file mode 100644
index 000000000..d5fd40156
--- /dev/null
+++ b/include/constants/map_scripts.h
@@ -0,0 +1,12 @@
+#ifndef GUARD_CONSTANTS_MAP_SCRIPTS_H
+#define GUARD_CONSTANTS_MAP_SCRIPTS_H
+
+#define MAP_SCRIPT_ON_LOAD 1
+#define MAP_SCRIPT_ON_FRAME_TABLE 2
+#define MAP_SCRIPT_ON_TRANSITION 3
+#define MAP_SCRIPT_ON_WARP_INTO_MAP_TABLE 4
+#define MAP_SCRIPT_ON_RESUME 5
+#define MAP_SCRIPT_ON_DIVE_WARP 6
+#define MAP_SCRIPT_ON_RETURN_TO_FIELD 7
+
+#endif // GUARD_CONSTANTS_MAP_SCRIPTS_H \ No newline at end of file
diff --git a/include/constants/map_types.h b/include/constants/map_types.h
index 504575859..8d071fd41 100755
--- a/include/constants/map_types.h
+++ b/include/constants/map_types.h
@@ -1,14 +1,14 @@
#ifndef GUARD_CONSTANTS_MAP_TYPES_H
#define GUARD_CONSTANTS_MAP_TYPES_H
-#define MAP_TYPE_0 0
+#define MAP_TYPE_UNUSED_1 0
#define MAP_TYPE_TOWN 1
#define MAP_TYPE_CITY 2
#define MAP_TYPE_ROUTE 3
#define MAP_TYPE_UNDERGROUND 4
#define MAP_TYPE_UNDERWATER 5
-#define MAP_TYPE_6 6
-#define MAP_TYPE_7 7
+#define MAP_TYPE_OCEAN_ROUTE 6
+#define MAP_TYPE_UNUSED_2 7
#define MAP_TYPE_INDOOR 8
#define MAP_TYPE_SECRET_BASE 9
diff --git a/include/constants/trainer_hill.h b/include/constants/trainer_hill.h
new file mode 100644
index 000000000..e231a6043
--- /dev/null
+++ b/include/constants/trainer_hill.h
@@ -0,0 +1,29 @@
+#ifndef GUARD_CONSTANTS_TRAINER_HILL_H
+#define GUARD_CONSTANTS_TRAINER_HILL_H
+
+#define TRAINER_HILL_FUNC_START 0
+#define TRAINER_HILL_FUNC_1 1
+#define TRAINER_HILL_FUNC_2 2
+#define TRAINER_HILL_FUNC_3 3
+#define TRAINER_HILL_FUNC_RESUME_TIMER 4
+#define TRAINER_HILL_FUNC_SET_LOST 5
+#define TRAINER_HILL_FUNC_GET_CHALLENGE_STATUS 6
+#define TRAINER_HILL_FUNC_7 7
+#define TRAINER_HILL_FUNC_8 8
+#define TRAINER_HILL_FUNC_9 9
+#define TRAINER_HILL_FUNC_10 10
+#define TRAINER_HILL_FUNC_11 11
+#define TRAINER_HILL_FUNC_12 12
+#define TRAINER_HILL_FUNC_13 13
+#define TRAINER_HILL_FUNC_14 14
+#define TRAINER_HILL_FUNC_15 15
+#define TRAINER_HILL_FUNC_16 16
+#define TRAINER_HILL_FUNC_SET_TAG 17
+
+// Values returned by the TrainerHillGetChallengeStatus
+// function.
+#define TRAINER_HILL_PLAYER_STATUS_LOST 0
+#define TRAINER_HILL_PLAYER_STATUS_ECARD_SCANNED 1
+#define TRAINER_HILL_PLAYER_STATUS_NORMAL 2
+
+#endif \ No newline at end of file
diff --git a/include/constants/vars.h b/include/constants/vars.h
index fedc85657..c025d62fc 100644
--- a/include/constants/vars.h
+++ b/include/constants/vars.h
@@ -1,7 +1,7 @@
#ifndef GUARD_CONSTANTS_VARS_H
#define GUARD_CONSTANTS_VARS_H
-#define VAR_0x3F20 0x3F20
+#define UNKNOWN_VAR_OFFSET_3F20 0x3F20
#define VARS_START 0x4000
@@ -46,257 +46,257 @@
#define VAR_OBJ_GFX_ID_F 0x401F
// general purpose vars
-#define VAR_RECYCLE_GOODS 0x4020
-#define VAR_REPEL_STEP_COUNT 0x4021
-#define VAR_ICE_STEP_COUNT 0x4022
-#define VAR_STARTER_MON 0x4023 // 0=Treecko, 1=Torchic, 2=Mudkip
-#define VAR_MIRAGE_RND_H 0x4024
-#define VAR_MIRAGE_RND_L 0x4025
-#define VAR_SECRET_BASE_MAP 0x4026
-#define VAR_CYCLING_ROAD_RECORD_COLLISIONS 0x4027
-#define VAR_CYCLING_ROAD_RECORD_TIME_L 0x4028
-#define VAR_CYCLING_ROAD_RECORD_TIME_H 0x4029
-#define VAR_HAPPINESS_STEP_COUNTER 0x402A
-#define VAR_POISON_STEP_COUNTER 0x402B
-#define VAR_RESET_RTC_ENABLE 0x402C
-#define VAR_ENIGMA_BERRY_AVAILABLE 0x402D
-#define VAR_0x402E 0x402E
+#define VAR_RECYCLE_GOODS 0x4020
+#define VAR_REPEL_STEP_COUNT 0x4021
+#define VAR_ICE_STEP_COUNT 0x4022
+#define VAR_STARTER_MON 0x4023 // 0=Treecko, 1=Torchic, 2=Mudkip
+#define VAR_MIRAGE_RND_H 0x4024
+#define VAR_MIRAGE_RND_L 0x4025
+#define VAR_SECRET_BASE_MAP 0x4026
+#define VAR_CYCLING_ROAD_RECORD_COLLISIONS 0x4027
+#define VAR_CYCLING_ROAD_RECORD_TIME_L 0x4028
+#define VAR_CYCLING_ROAD_RECORD_TIME_H 0x4029
+#define VAR_HAPPINESS_STEP_COUNTER 0x402A
+#define VAR_POISON_STEP_COUNTER 0x402B
+#define VAR_RESET_RTC_ENABLE 0x402C
+#define VAR_ENIGMA_BERRY_AVAILABLE 0x402D
+#define VAR_UNUSED_0x402E 0x402E // Unused Var
-#define VAR_FRONTIER_MANIAC_FACILITY 0x402F
-#define VAR_FRONTIER_GAMBLER_FACILITY 0x4030
-#define VAR_FRONTIER_GAMBLER_SET_FACILITY_F 0x4031
-#define VAR_FRONTIER_GAMBLER_AMOUNT_BET 0x4032
-#define VAR_FRONTIER_GAMBLER_PLACED_BET_F 0x4033
+#define VAR_FRONTIER_MANIAC_FACILITY 0x402F
+#define VAR_FRONTIER_GAMBLER_FACILITY 0x4030
+#define VAR_FRONTIER_GAMBLER_SET_FACILITY_F 0x4031
+#define VAR_FRONTIER_GAMBLER_AMOUNT_BET 0x4032
+#define VAR_FRONTIER_GAMBLER_PLACED_BET_F 0x4033
-#define VAR_DEOXYS_ROCK_STEP_COUNT 0x4034
-#define VAR_DEOXYS_ROCK_LEVEL 0x4035
-#define VAR_STORAGE_UNKNOWN 0x4036
-#define VAR_0x4037 0x4037
-#define VAR_0x4038 0x4038
-#define VAR_0x4039 0x4039
-#define VAR_0x403A 0x403A
-#define VAR_REGICE_STEPS_1 0x403B
-#define VAR_REGICE_STEPS_2 0x403C
-#define VAR_REGICE_STEPS_3 0x403D
-#define VAR_ALTERING_CAVE_WILD_SET 0x403E
-#define VAR_0x403F 0x403F
-#define VAR_DAYS 0x4040
-#define VAR_FANCLUB_UNKNOWN_1 0x4041
-#define VAR_FANCLUB_UNKNOWN_2 0x4042
-#define VAR_DEPT_STORE_FLOOR 0x4043
-#define VAR_0x4044 0x4044
-#define VAR_POKELOT_PRIZE 0x4045
-#define VAR_NATIONAL_DEX 0x4046
-#define VAR_SEEDOT_SIZE_RECORD 0x4047
-#define VAR_ASH_GATHER_COUNT 0x4048
-#define VAR_BIRCH_STATE 0x4049
-#define VAR_CRUISE_STEP_COUNT 0x404A
-#define VAR_POKELOT_RND1 0x404B
-#define VAR_POKELOT_RND2 0x404C
-#define VAR_0x404D 0x404D
-#define VAR_0x404E 0x404E
-#define VAR_LOTAD_SIZE_RECORD 0x404F
-#define VAR_0x4050 0x4050
-#define VAR_0x4051 0x4051
-#define VAR_0x4052 0x4052
-#define VAR_0x4053 0x4053
-#define VAR_CURRENT_SECRET_BASE 0x4054
-#define VAR_0x4055 0x4055
-#define VAR_0x4056 0x4056
-#define VAR_0x4057 0x4057
-#define VAR_0x4058 0x4058
-#define VAR_0x4059 0x4059
-#define VAR_0x405A 0x405A
-#define VAR_0x405B 0x405B
-#define VAR_0x405C 0x405C
-#define VAR_0x405D 0x405D
-#define VAR_0x405E 0x405E
-#define VAR_0x405F 0x405F
-#define VAR_0x4060 0x4060
-#define VAR_0x4061 0x4061
-#define VAR_0x4062 0x4062
-#define VAR_0x4063 0x4063
-#define VAR_0x4064 0x4064
-#define VAR_0x4065 0x4065
-#define VAR_0x4066 0x4066
-#define VAR_0x4067 0x4067
-#define VAR_0x4068 0x4068
-#define VAR_0x4069 0x4069
-#define VAR_0x406A 0x406A
-#define VAR_0x406B 0x406B
-#define VAR_0x406C 0x406C
-#define VAR_0x406D 0x406D
-#define VAR_0x406E 0x406E
-#define VAR_0x406F 0x406F
-#define VAR_0x4070 0x4070
-#define VAR_0x4071 0x4071
-#define VAR_0x4072 0x4072
-#define VAR_0x4073 0x4073
-#define VAR_0x4074 0x4074
-#define VAR_0x4075 0x4075
-#define VAR_0x4076 0x4076
-#define VAR_0x4077 0x4077
-#define VAR_0x4078 0x4078
-#define VAR_0x4079 0x4079
-#define VAR_0x407A 0x407A
-#define VAR_0x407B 0x407B
-#define VAR_0x407C 0x407C
-#define VAR_0x407D 0x407D
-#define VAR_0x407E 0x407E
-#define VAR_0x407F 0x407F
-#define VAR_0x4080 0x4080
-#define VAR_0x4081 0x4081
-#define VAR_0x4082 0x4082
-#define VAR_0x4083 0x4083
-#define VAR_0x4084 0x4084
-#define VAR_0x4085 0x4085
-#define VAR_0x4086 0x4086
-#define VAR_0x4087 0x4087
-#define VAR_0x4088 0x4088
-#define VAR_0x4089 0x4089
-#define VAR_0x408A 0x408A
-#define VAR_0x408B 0x408B
-#define VAR_0x408C 0x408C
-#define VAR_0x408D 0x408D
-#define VAR_0x408E 0x408E
-#define VAR_0x408F 0x408F
-#define VAR_0x4090 0x4090
-#define VAR_0x4091 0x4091
-#define VAR_0x4092 0x4092
-#define VAR_0x4093 0x4093
-#define VAR_0x4094 0x4094
-#define VAR_LILYCOVE_FAN_CLUB_STATE 0x4095
-#define VAR_0x4096 0x4096
-#define VAR_0x4097 0x4097
-#define VAR_0x4098 0x4098
-#define VAR_0x4099 0x4099
-#define VAR_RUSTURF_TUNNEL_STATE 0x409A
-#define VAR_0x409B 0x409B
-#define VAR_0x409C 0x409C
-#define VAR_0x409D 0x409D
-#define VAR_0x409E 0x409E
-#define VAR_0x409F 0x409F
-#define VAR_0x40A0 0x40A0
-#define VAR_0x40A1 0x40A1
-#define VAR_0x40A2 0x40A2
-#define VAR_0x40A3 0x40A3
-#define VAR_0x40A4 0x40A4
-#define VAR_0x40A5 0x40A5
-#define VAR_0x40A6 0x40A6
-#define VAR_0x40A7 0x40A7
-#define VAR_0x40A8 0x40A8
-#define VAR_CYCLING_CHALLENGE_STATE 0x40A9
-#define VAR_0x40AA 0x40AA
-#define VAR_0x40AB 0x40AB
-#define VAR_0x40AC 0x40AC
-#define VAR_0x40AD 0x40AD
-#define VAR_0x40AE 0x40AE
-#define VAR_0x40AF 0x40AF
-#define VAR_0x40B0 0x40B0
-#define VAR_0x40B1 0x40B1
-#define VAR_0x40B2 0x40B2
-#define VAR_WEATHER_INSTITUTE_STATE 0x40B3
-#define VAR_PORTHOLE_STATE 0x40B4
-#define VAR_0x40B5 0x40B5
-#define VAR_0x40B6 0x40B6
-#define VAR_0x40B7 0x40B7
-#define VAR_0x40B8 0x40B8
-#define VAR_0x40B9 0x40B9
-#define VAR_0x40BA 0x40BA
-#define VAR_0x40BB 0x40BB
-#define VAR_0x40BC 0x40BC
-#define VAR_0x40BD 0x40BD
-#define VAR_0x40BE 0x40BE
-#define VAR_0x40BF 0x40BF
-#define VAR_0x40C0 0x40C0
-#define VAR_0x40C1 0x40C1
-#define VAR_PACIFIDLOG_TM_RECEIVED_DAY 0x40C2
-#define VAR_0x40C3 0x40C3
-#define VAR_0x40C4 0x40C4
-#define VAR_0x40C5 0x40C5
-#define VAR_0x40C6 0x40C6
-#define VAR_0x40C7 0x40C7
-#define VAR_0x40C8 0x40C8
-#define VAR_0x40C9 0x40C9
-#define VAR_0x40CA 0x40CA
-#define VAR_0x40CB 0x40CB
-#define VAR_0x40CC 0x40CC
-#define VAR_0x40CD 0x40CD
-#define VAR_FRONTIER_BATTLE_MODE 0x40CE
-#define VAR_FRONTIER_FACILITY 0x40CF
-#define VAR_0x40D0 0x40D0
-#define VAR_0x40D1 0x40D1
-#define VAR_0x40D2 0x40D2
-#define VAR_0x40D3 0x40D3
-#define VAR_0x40D4 0x40D4
-#define VAR_0x40D5 0x40D5
-#define VAR_0x40D6 0x40D6
-#define VAR_0x40D7 0x40D7
-#define VAR_0x40D8 0x40D8
-#define VAR_0x40D9 0x40D9
-#define VAR_0x40DA 0x40DA
-#define VAR_0x40DB 0x40DB
-#define VAR_0x40DC 0x40DC
-#define VAR_EVENT_PICHU_SLOT 0x40DD
-#define VAR_0x40DE 0x40DE
-#define VAR_0x40DF 0x40DF
-#define VAR_0x40E0 0x40E0
-#define VAR_0x40E1 0x40E1
-#define VAR_0x40E2 0x40E2
-#define VAR_0x40E3 0x40E3
-#define VAR_0x40E4 0x40E4
-#define VAR_0x40E5 0x40E5
-#define VAR_DAILY_SLOTS 0x40E6
-#define VAR_DAILY_WILDS 0x40E7
-#define VAR_DAILY_BLENDER 0x40E8
-#define VAR_DAILY_PLANTED_BERRIES 0x40E9
-#define VAR_DAILY_PICKED_BERRIES 0x40EA
-#define VAR_DAILY_ROULETTE 0x40EB
-#define VAR_0x40EC 0x40EC
-#define VAR_0x40ED 0x40ED
-#define VAR_0x40EE 0x40EE
-#define VAR_0x40EF 0x40EF
-#define VAR_0x40F0 0x40F0
-#define VAR_DAILY_BP 0x40F1
-#define VAR_0x40F2 0x40F2
-#define VAR_0x40F3 0x40F3
-#define VAR_0x40F4 0x40F4
-#define VAR_0x40F5 0x40F5
-#define VAR_0x40F6 0x40F6
-#define VAR_0x40F7 0x40F7
-#define VAR_0x40F8 0x40F8
-#define VAR_0x40F9 0x40F9
-#define VAR_0x40FA 0x40FA
-#define VAR_0x40FB 0x40FB
-#define VAR_0x40FC 0x40FC
-#define VAR_0x40FD 0x40FD
-#define VAR_0x40FE 0x40FE
-#define VAR_0x40FF 0x40FF
+#define VAR_DEOXYS_ROCK_STEP_COUNT 0x4034
+#define VAR_DEOXYS_ROCK_LEVEL 0x4035
+#define VAR_STORAGE_UNKNOWN 0x4036
+#define VAR_UNUSUAL_WEATHER_LOCATION 0x4037
+#define VAR_UNUSUAL_WEATHER_STEP_COUNTER 0x4038
+#define VAR_SHOULD_END_UNUSUAL_WEATHER 0x4039
+#define VAR_NEVER_READ_0x403A 0x403A // Var is written to, but never checked
+#define VAR_REGICE_STEPS_1 0x403B
+#define VAR_REGICE_STEPS_2 0x403C
+#define VAR_REGICE_STEPS_3 0x403D
+#define VAR_ALTERING_CAVE_WILD_SET 0x403E
+#define VAR_ALWAYS_ZERO_0x403F 0x403F // This var is read and written, but is always zero.
+#define VAR_DAYS 0x4040
+#define VAR_FANCLUB_UNKNOWN_1 0x4041
+#define VAR_FANCLUB_UNKNOWN_2 0x4042
+#define VAR_DEPT_STORE_FLOOR 0x4043
+#define VAR_0x4044 0x4044
+#define VAR_POKELOT_PRIZE_ITEM 0x4045
+#define VAR_NATIONAL_DEX 0x4046
+#define VAR_SEEDOT_SIZE_RECORD 0x4047
+#define VAR_ASH_GATHER_COUNT 0x4048
+#define VAR_BIRCH_STATE 0x4049
+#define VAR_CRUISE_STEP_COUNT 0x404A
+#define VAR_POKELOT_RND1 0x404B
+#define VAR_POKELOT_RND2 0x404C
+#define VAR_POKELOT_PRIZE_PLACE 0x404D
+#define VAR_UNUSED_0x404E 0x404E // Unused Var
+#define VAR_LOTAD_SIZE_RECORD 0x404F
+#define VAR_0x4050 0x4050
+#define VAR_ROUTE102_ACCESSIBLE 0x4051
+#define VAR_UNUSED_0x4052 0x4052 // Unused Var
+#define VAR_LAVARIDGE_RIVAL_STATE 0x4053
+#define VAR_CURRENT_SECRET_BASE 0x4054
+#define VAR_UNUSED_0x4055 0x4055 // Unused Var
+#define VAR_UNUSED_0x4056 0x4056 // Unused Var
+#define VAR_PETALBURG_STATE 0x4057
+#define VAR_SLATEPORT_STATE 0x4058
+#define VAR_UNUSED_0x4059 0x4059 // Unused Var
+#define VAR_RUSTBORO_STATE 0x405A
+#define VAR_UNUSED_0x405B 0x405B // Unused Var
+#define VAR_UNUSED_0x405C 0x405C // Unused Var
+#define VAR_MOSSDEEP_STATE 0x405D
+#define VAR_RAYQUAZA_STATE 0x405E
+#define VAR_UNUSED_0x405F 0x405F // Unused Var
+#define VAR_ROUTE101_STATE 0x4060
+#define VAR_UNUSED_0x4061 0x4061 // Unused Var
+#define VAR_UNUSED_0x4062 0x4062 // Unused Var
+#define VAR_0x4063 0x4063
+#define VAR_UNUSED_0x4064 0x4064 // Unused Var
+#define VAR_UNUSED_0x4065 0x4065 // Unused Var
+#define VAR_UNUSED_0x4066 0x4066 // Unused Var
+#define VAR_UNUSED_0x4067 0x4067 // Unused Var
+#define VAR_UNUSED_0x4068 0x4068 // Unused Var
+#define VAR_ROUTE110_STATE 0x4069
+#define VAR_UNUSED_0x406A 0x406A // Unused Var
+#define VAR_UNUSED_0x406B 0x406B // Unused Var
+#define VAR_UNUSED_0x406C 0x406C // Unused Var
+#define VAR_UNUSED_0x406D 0x406D // Unused Var
+#define VAR_UNUSED_0x406E 0x406E // Unused Var
+#define VAR_ROUTE116_STATE 0x406F
+#define VAR_UNUSED_0x4070 0x4070 // Unused Var
+#define VAR_ROUTE118_STATE 0x4071
+#define VAR_ROUTE119_STATE 0x4072
+#define VAR_UNUSED_0x4073 0x4073 // Unused Var
+#define VAR_ROUTE121_STATE 0x4074
+#define VAR_UNUSED_0x4075 0x4075 // Unused Var
+#define VAR_UNUSED_0x4076 0x4076 // Unused Var
+#define VAR_UNUSED_0x4077 0x4077 // Unused Var
+#define VAR_UNUSED_0x4078 0x4078 // Unused Var
+#define VAR_UNUSED_0x4079 0x4079 // Unused Var
+#define VAR_UNUSED_0x407A 0x407A // Unused Var
+#define VAR_ROUTE128_STATE 0x407B
+#define VAR_UNUSED_0x407C 0x407C // Unused Var
+#define VAR_UNUSED_0x407D 0x407D // Unused Var
+#define VAR_UNUSED_0x407E 0x407E // Unused Var
+#define VAR_UNUSED_0x407F 0x407F // Unused Var
+#define VAR_UNUSED_0x4080 0x4080 // Unused Var
+#define VAR_UNUSED_0x4081 0x4081 // Unused Var
+#define VAR_LITTLEROOT_HOUSES_STATE 0x4082
+#define VAR_UNUSED_0x4083 0x4083 // Unused Var
+#define VAR_BIRCH_LAB_STATE 0x4084
+#define VAR_PETALBURG_GYM_STATE 0x4085
+#define VAR_LINK_CONTEST_ROOM_STATE 0x4086
+#define VAR_CABLE_CLUB_STATE 0x4087
+#define VAR_CONTEST_LOCATION 0x4088
+#define VAR_SECRET_BASE_INITIALIZED 0x4089
+#define VAR_CONTEST_PRIZE_PICKUP 0x408A
+#define VAR_UNUSED_0x408B 0x408B // Unused Var
+#define VAR_LITTLEROOT_HOUSES_STATE_2 0x408C
+#define VAR_LITTLEROOT_RIVAL_STATE 0x408D
+#define VAR_BOARD_BRINEY_BOAT_ROUTE104_STATE 0x408E
+#define VAR_DEVON_CORP_3F_STATE 0x408F
+#define VAR_BRINEY_HOUSE_STATE 0x4090
+#define VAR_UNUSED_0x4091 0x4091 // Unused Var
+#define VAR_LITTLEROOT_INTRO_STATE 0x4092
+#define VAR_MAUVILLE_GYM_STATE 0x4093
+#define VAR_LILYCOVE_MUSEUM_2F_STATE 0x4094
+#define VAR_LILYCOVE_FAN_CLUB_STATE 0x4095
+#define VAR_BRINEY_LOCATION 0x4096
+#define VAR_INIT_SECRET_BASE 0x4097
+#define VAR_PETALBURG_WOODS_STATE 0x4098
+#define VAR_LILYCOVE_CONTEST_LOBBY_STATE 0x4099
+#define VAR_RUSTURF_TUNNEL_STATE 0x409A
+#define VAR_UNUSED_0x409B 0x409B // Unused Var
+#define VAR_ELITE_4_STATE 0x409C
+#define VAR_UNUSED_0x409D 0x409D // Unused Var
+#define VAR_MOSSDEEP_SPACE_CENTER_STATE_1 0x409E
+#define VAR_MOSSDEEP_SPACE_CENTER_STATE_2 0x409F
+#define VAR_SLATEPORT_HARBOR_STATE 0x40A0
+#define VAR_UNUSED_0x40A1 0x40A1 // Unused var
+#define VAR_SEAFLOOR_CAVERN_STATE 0x40A2
+#define VAR_CABLE_CAR_STATION_STATE 0x40A3
+#define VAR_SAFARI_ZONE_STATE 0x40A4
+#define VAR_TRICK_HOUSE_ENTRANCE_STATE_1 0x40A5
+#define VAR_TRICK_HOUSE_ENTRANCE_STATE_2 0x40A6
+#define VAR_TRICK_HOUSE_ENTRANCE_STATE_3 0x40A7
+#define VAR_UNUSED_0x40A8 0x40A8 // Unused Var
+#define VAR_CYCLING_CHALLENGE_STATE 0x40A9
+#define VAR_SLATEPORT_MUSEUM_1F_STATE 0x40AA
+#define VAR_TRICK_HOUSE_PUZZLE_1_STATE 0x40AB
+#define VAR_TRICK_HOUSE_PUZZLE_2_STATE 0x40AC
+#define VAR_TRICK_HOUSE_PUZZLE_3_STATE 0x40AD
+#define VAR_TRICK_HOUSE_PUZZLE_4_STATE 0x40AE
+#define VAR_TRICK_HOUSE_PUZZLE_5_STATE 0x40AF
+#define VAR_TRICK_HOUSE_PUZZLE_6_STATE 0x40B0
+#define VAR_TRICK_HOUSE_PUZZLE_7_STATE 0x40B1
+#define VAR_TRICK_HOUSE_PUZZLE_8_STATE 0x40B2
+#define VAR_WEATHER_INSTITUTE_STATE 0x40B3
+#define VAR_PORTHOLE_STATE 0x40B4
+#define VAR_TRICK_HOUSE_STATE 0x40B5 // TODO: needs some further investigation
+#define VAR_TRICK_HOUSE_PUZZLE_7_STATE_2 0x40B6
+#define VAR_SLATEPORT_FAN_CLUB_STATE 0x40B7
+#define VAR_UNUSED_0x40B8 0x40B8 // Unused Var
+#define VAR_MT_PYRE_STATE 0x40B9
+#define VAR_NEW_MAUVILLE_STATE 0x40BA
+#define VAR_UNUSED_0x40BB 0x40BB // Unused Var
+#define VAR_BRAVO_TRAINER_BATTLE_TOWER_ON 0x40BC
+#define VAR_JAGGED_PASS_ASH_WEATHER 0x40BD
+#define VAR_GLASS_WORKSHOP_STATE 0x40BE
+#define VAR_METEOR_FALLS_STATE 0x40BF
+#define VAR_SOOTOPOLIS_MYSTERY_EVENTS_STATE 0x40C0
+#define VAR_TRICK_HOUSE_PRIZE_PICKUP 0x40C1
+#define VAR_PACIFIDLOG_TM_RECEIVED_DAY 0x40C2
+#define VAR_VICTORY_ROAD_1F_STATE 0x40C3
+#define VAR_FOSSIL_RESURRECTION_STATE 0x40C4
+#define VAR_WHICH_FOSSIL_REVIVED 0x40C5
+#define VAR_STEVENS_HOUSE_STATE 0x40C6
+#define VAR_OLDALE_STATE 0x40C7
+#define VAR_JAGGED_PASS_STATE 0x40C8
+#define VAR_SCOTT_PETALBURG_ENCOUNTER 0x40C9
+#define VAR_SKY_PILLAR_STATE 0x40CA
+#define VAR_ROUTE_111_STATE 0x40CB
+#define VAR_FOSSIL_MANIAC_STATE 0x40CC
+#define VAR_CABLE_CLUB_TUTORIAL_STATE 0x40CD
+#define VAR_FRONTIER_BATTLE_MODE 0x40CE
+#define VAR_FRONTIER_FACILITY 0x40CF
+#define VAR_HAS_ENTERED_BATTLE_FRONTIER 0x40D0 // Var is used like a flag.
+#define VAR_SCOTT_STATE 0x40D1
+#define VAR_SLATEPORT_OUTSIDE_MUSEUM_STATE 0x40D2
+#define VAR_0x40D3 0x40D3
+#define VAR_SS_TIDAL_SCOTT_STATE 0x40D4 // Always equal to FLAG_MET_SCOTT_ON_SS_TIDAL
+#define VAR_ROAMER_POKEMON 0x40D5 // 0 = Latias, 1 = Latios
+#define VAR_TRAINER_HILL_IS_ACTIVE 0x40D6
+#define VAR_SKY_PILLAR_RAQUAZA_CRY_DONE 0x40D7
+#define VAR_SOOTOPOLIS_STATE 0x40D8
+#define VAR_HAS_TALKED_TO_SEAFLOOR_CAVERN_ENTRANCE_GRUNT 0x40D9
+#define VAR_0x40DA 0x40DA
+#define VAR_UNUSED_0x40DB 0x40DB // Unused Var
+#define VAR_UNUSED_0x40DC 0x40DC // Unused Var
+#define VAR_EVENT_PICHU_SLOT 0x40DD
+#define VAR_NEVER_READ_0x40DE 0x40DE // Var is written to, but never read
+#define VAR_NEVER_READ_0x40DF 0x40DF // Var is written to, but never read
+#define VAR_NEVER_READ_0x40E0 0x40E0 // Var is written to, but never read
+#define VAR_NEVER_READ_0x40E1 0x40E1 // Var is written to, but never read
+#define VAR_NEVER_READ_0x40E2 0x40E2 // Var is written to, but never read
+#define VAR_NEVER_READ_0x40E3 0x40E3 // Var is written to, but never read
+#define VAR_NEVER_READ_0x40E4 0x40E4 // var is written to, but never read
+#define VAR_UNUSED_0x40E5 0x40E5 // Unused Var
+#define VAR_DAILY_SLOTS 0x40E6
+#define VAR_DAILY_WILDS 0x40E7
+#define VAR_DAILY_BLENDER 0x40E8
+#define VAR_DAILY_PLANTED_BERRIES 0x40E9
+#define VAR_DAILY_PICKED_BERRIES 0x40EA
+#define VAR_DAILY_ROULETTE 0x40EB
+#define VAR_SECRET_BASE_STEP_COUNTER 0x40EC // Used by Secret Base TV programs
+#define VAR_SECRET_BASE_LAST_ITEM_USED 0x40ED // Used by Secret Base TV programs
+#define VAR_SECRET_BASE_LOW_TV_FLAGS 0x40EE // Used by Secret Base TV programs
+#define VAR_SECRET_BASE_HIGH_TV_FLAGS 0x40EF // Used by Secret Base TV programs
+#define VAR_SECRET_BASE_IS_NOT_LOCAL 0x40F0 // Set to TRUE while in another player's secret base.
+#define VAR_DAILY_BP 0x40F1
+#define VAR_WALLY_CALL_STEP_COUNTER 0x40F2
+#define VAR_WINONA_CALL_STEP_COUNTER 0x40F3
+#define VAR_ROXANNE_CALL_STEP_COUNTER 0x40F4
+#define VAR_SCOTT_CALL_STEP_COUNTER 0x40F5
+#define VAR_RIVAL_RAYQUAZA_CALL_STEP_COUNTER 0x40F6
+#define VAR_UNUSED_0x40F7 0x40F7 // Unused Var
+#define VAR_UNUSED_0x40F8 0x40F8 // Unused Var
+#define VAR_UNUSED_0x40F9 0x40F9 // Unused Var
+#define VAR_UNUSED_0x40FA 0x40FA // Unused Var
+#define VAR_UNUSED_0x40FB 0x40FB // Unused Var
+#define VAR_UNUSED_0x40FC 0x40FC // Unused Var
+#define VAR_UNUSED_0x40FD 0x40FD // Unused Var
+#define VAR_UNUSED_0x40FE 0x40FE // Unused Var
+#define VAR_UNUSED_0x40FF 0x40FF // Unused Var
#define SPECIAL_VARS_START 0x8000
// special vars
// They are commonly used as parameters to commands, or return values from commands.
-#define VAR_0x8000 0x8000
-#define VAR_0x8001 0x8001
-#define VAR_0x8002 0x8002
-#define VAR_0x8003 0x8003
-#define VAR_0x8004 0x8004
-#define VAR_0x8005 0x8005
-#define VAR_0x8006 0x8006
-#define VAR_0x8007 0x8007
-#define VAR_0x8008 0x8008
-#define VAR_0x8009 0x8009
-#define VAR_0x800A 0x800A
-#define VAR_0x800B 0x800B
-#define VAR_FACING 0x800C
-#define VAR_RESULT 0x800D
-#define VAR_ITEM_ID 0x800E
-#define VAR_LAST_TALKED 0x800F
-#define VAR_CONTEST_RANK 0x8010
-#define VAR_CONTEST_CATEGORY 0x8011
-#define VAR_MON_BOX_ID 0x8012
-#define VAR_MON_BOX_POS 0x8013
-#define VAR_0x8014 0x8014
-#define VAR_0x8015 0x8015
+#define VAR_0x8000 0x8000
+#define VAR_0x8001 0x8001
+#define VAR_0x8002 0x8002
+#define VAR_0x8003 0x8003
+#define VAR_0x8004 0x8004
+#define VAR_0x8005 0x8005
+#define VAR_0x8006 0x8006
+#define VAR_0x8007 0x8007
+#define VAR_0x8008 0x8008
+#define VAR_0x8009 0x8009
+#define VAR_0x800A 0x800A
+#define VAR_0x800B 0x800B
+#define VAR_FACING 0x800C
+#define VAR_RESULT 0x800D
+#define VAR_ITEM_ID 0x800E
+#define VAR_LAST_TALKED 0x800F
+#define VAR_CONTEST_RANK 0x8010
+#define VAR_CONTEST_CATEGORY 0x8011
+#define VAR_MON_BOX_ID 0x8012
+#define VAR_MON_BOX_POS 0x8013
+#define VAR_UNUSED_0x8014 0x8014
+#define VAR_TRAINER_BATTLE_OPPONENT_A 0x8015 // Alias of gTrainerBattleOpponent_A
#endif // GUARD_CONSTANTS_VARS_H
diff --git a/include/constants/weather.h b/include/constants/weather.h
index d0a81c34c..b01cfb390 100644
--- a/include/constants/weather.h
+++ b/include/constants/weather.h
@@ -16,7 +16,7 @@
#define WEATHER_DROUGHT 12
#define WEATHER_RAIN_HEAVY 13
#define WEATHER_BUBBLES 14
-#define WEATHER_15 15
+#define WEATHER_ALTERNATING 15
#define WEATHER_ROUTE119_CYCLE 20
#define WEATHER_ROUTE123_CYCLE 21
@@ -37,4 +37,30 @@
#define COORD_EVENT_WEATHER_ROUTE119_CYCLE 20
#define COORD_EVENT_WEATHER_ROUTE123_CYCLE 21
+// These are the "unusual weather events" that are used
+// to find Kyogre and Groudon.
+#define UNUSUAL_WEATHER_COUNT_PER_LEGENDARY 8
+#define UNUSUAL_WEATHER_GROUDON_LOCATIONS_START 1
+#define UNUSUAL_WEATHER_KYOGRE_LOCATIONS_START 1 + UNUSUAL_WEATHER_COUNT_PER_LEGENDARY
+
+#define UNUSUAL_WEATHER_NONE 0
+// Groudon locations
+#define UNUSUAL_WEATHER_ROUTE_114_NORTH 1
+#define UNUSUAL_WEATHER_ROUTE_114_SOUTH 2
+#define UNUSUAL_WEATHER_ROUTE_115_WEST 3
+#define UNUSUAL_WEATHER_ROUTE_115_EAST 4
+#define UNUSUAL_WEATHER_ROUTE_116_NORTH 5
+#define UNUSUAL_WEATHER_ROUTE_116_SOUTH 6
+#define UNUSUAL_WEATHER_ROUTE_118_EAST 7
+#define UNUSUAL_WEATHER_ROUTE_118_WEST 8
+// Kyogre locations
+#define UNUSUAL_WEATHER_ROUTE_105_NORTH 9
+#define UNUSUAL_WEATHER_ROUTE_105_SOUTH 10
+#define UNUSUAL_WEATHER_ROUTE_125_WEST 11
+#define UNUSUAL_WEATHER_ROUTE_125_EAST 12
+#define UNUSUAL_WEATHER_ROUTE_127_NORTH 13
+#define UNUSUAL_WEATHER_ROUTE_127_SOUTH 14
+#define UNUSUAL_WEATHER_ROUTE_129_WEST 15
+#define UNUSUAL_WEATHER_ROUTE_129_EAST 16
+
#endif // GUARD_CONSTANTS_WEATHER_H