1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
158
159
160
161
162
163
164
165
166
167
168
169
170
171
172
173
174
175
176
177
178
179
180
181
182
183
184
185
186
187
188
189
190
191
192
193
194
195
196
197
198
199
200
201
202
203
204
205
206
207
208
209
210
211
212
213
214
215
216
217
218
219
220
221
222
223
224
225
226
227
228
229
230
231
232
233
234
235
236
237
238
239
240
241
242
243
244
245
246
247
248
249
250
251
252
253
254
255
256
257
258
259
260
261
262
263
264
265
266
267
268
269
270
271
272
273
274
275
276
277
278
279
280
281
282
283
284
285
286
287
288
289
290
291
292
293
294
295
296
297
298
299
300
301
302
303
304
305
306
307
|
#ifndef GUARD_CONSTANTS_VARS_H
#define GUARD_CONSTANTS_VARS_H
#define VARS_START 0x4000
// temporary vars
// The first 0x10 vars are are temporary--they are cleared every time a map is loaded.
#define TEMP_VARS_START 0x4000
#define VAR_TEMP_0 (TEMP_VARS_START + 0x0)
#define VAR_TEMP_1 (TEMP_VARS_START + 0x1)
#define VAR_TEMP_2 (TEMP_VARS_START + 0x2)
#define VAR_TEMP_3 (TEMP_VARS_START + 0x3)
#define VAR_TEMP_4 (TEMP_VARS_START + 0x4)
#define VAR_TEMP_5 (TEMP_VARS_START + 0x5)
#define VAR_TEMP_6 (TEMP_VARS_START + 0x6)
#define VAR_TEMP_7 (TEMP_VARS_START + 0x7)
#define VAR_TEMP_8 (TEMP_VARS_START + 0x8)
#define VAR_TEMP_9 (TEMP_VARS_START + 0x9)
#define VAR_TEMP_A (TEMP_VARS_START + 0xA)
#define VAR_TEMP_B (TEMP_VARS_START + 0xB)
#define VAR_TEMP_C (TEMP_VARS_START + 0xC)
#define VAR_TEMP_D (TEMP_VARS_START + 0xD)
#define VAR_TEMP_E (TEMP_VARS_START + 0xE)
#define VAR_TEMP_F (TEMP_VARS_START + 0xF)
#define TEMP_VARS_END VAR_TEMP_F
// object gfx id vars
// These 0x10 vars are used to dynamically control a map object's sprite.
// For example, the rival's sprite id is dynamically set based on the player's gender.
// See VarGetObjectEventGraphicsId().
#define VAR_OBJ_GFX_ID_0 0x4010
#define VAR_OBJ_GFX_ID_1 0x4011
#define VAR_OBJ_GFX_ID_2 0x4012
#define VAR_OBJ_GFX_ID_3 0x4013
#define VAR_OBJ_GFX_ID_4 0x4014
#define VAR_OBJ_GFX_ID_5 0x4015
#define VAR_OBJ_GFX_ID_6 0x4016
#define VAR_OBJ_GFX_ID_7 0x4017
#define VAR_OBJ_GFX_ID_8 0x4018
#define VAR_OBJ_GFX_ID_9 0x4019
#define VAR_OBJ_GFX_ID_A 0x401A
#define VAR_OBJ_GFX_ID_B 0x401B
#define VAR_OBJ_GFX_ID_C 0x401C
#define VAR_OBJ_GFX_ID_D 0x401D
#define VAR_OBJ_GFX_ID_E 0x401E
#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_FRIENDSHIP_STEP_COUNTER 0x402A
#define VAR_POISON_STEP_COUNTER 0x402B
#define VAR_RESET_RTC_ENABLE 0x402C
#define VAR_ENIGMA_BERRY_AVAILABLE 0x402D
#define VAR_WONDER_NEWS_COUNTER 0x402E
#define VAR_FRONTIER_MANIAC_FACILITY 0x402F
#define VAR_FRONTIER_GAMBLER_CHALLENGE 0x4030
#define VAR_FRONTIER_GAMBLER_SET_CHALLENGE 0x4031
#define VAR_FRONTIER_GAMBLER_AMOUNT_BET 0x4032
#define VAR_FRONTIER_GAMBLER_STATE 0x4033
#define VAR_DEOXYS_ROCK_STEP_COUNT 0x4034
#define VAR_DEOXYS_ROCK_LEVEL 0x4035
#define VAR_PC_BOX_TO_SEND_MON 0x4036
#define VAR_ABNORMAL_WEATHER_LOCATION 0x4037
#define VAR_ABNORMAL_WEATHER_STEP_COUNTER 0x4038
#define VAR_SHOULD_END_ABNORMAL_WEATHER 0x4039
#define VAR_FARAWAY_ISLAND_STEP_COUNTER 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_DISTRIBUTE_EON_TICKET 0x403F // This var is read and written, but is always zero. The only way to obtain the Eon Ticket in Emerald is via Record Mixing
#define VAR_DAYS 0x4040
#define VAR_FANCLUB_FAN_COUNTER 0x4041
#define VAR_FANCLUB_LOSE_FAN_TIMER 0x4042
#define VAR_DEPT_STORE_FLOOR 0x4043
#define VAR_TRICK_HOUSE_LEVEL 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_LITTLEROOT_TOWN_STATE 0x4050
#define VAR_OLDALE_TOWN_STATE 0x4051
#define VAR_DEWFORD_TOWN_STATE 0x4052 // Unused Var
#define VAR_LAVARIDGE_TOWN_STATE 0x4053
#define VAR_CURRENT_SECRET_BASE 0x4054 // was probably allocated for VAR_FALLARBOR_TOWN_STATE at one point
#define VAR_VERDANTURF_TOWN_STATE 0x4055 // Unused Var
#define VAR_PACIFIDLOG_TOWN_STATE 0x4056 // Unused Var
#define VAR_PETALBURG_CITY_STATE 0x4057
#define VAR_SLATEPORT_CITY_STATE 0x4058
#define VAR_MAUVILLE_CITY_STATE 0x4059 // Unused Var
#define VAR_RUSTBORO_CITY_STATE 0x405A
#define VAR_FORTREE_CITY_STATE 0x405B // Unused Var
#define VAR_LILYCOVE_CITY_STATE 0x405C // Unused Var
#define VAR_MOSSDEEP_CITY_STATE 0x405D
#define VAR_SOOTOPOLIS_CITY_STATE 0x405E
#define VAR_EVER_GRANDE_CITY_STATE 0x405F // Unused Var
#define VAR_ROUTE101_STATE 0x4060
#define VAR_ROUTE102_STATE 0x4061 // Unused Var
#define VAR_ROUTE103_STATE 0x4062 // Unused Var
#define VAR_ROUTE104_STATE 0x4063
#define VAR_ROUTE105_STATE 0x4064 // Unused Var
#define VAR_ROUTE106_STATE 0x4065 // Unused Var
#define VAR_ROUTE107_STATE 0x4066 // Unused Var
#define VAR_ROUTE108_STATE 0x4067 // Unused Var
#define VAR_ROUTE109_STATE 0x4068 // Unused Var
#define VAR_ROUTE110_STATE 0x4069
#define VAR_ROUTE111_STATE 0x406A // Unused Var
#define VAR_ROUTE112_STATE 0x406B // Unused Var
#define VAR_ROUTE113_STATE 0x406C // Unused Var
#define VAR_ROUTE114_STATE 0x406D // Unused Var
#define VAR_ROUTE115_STATE 0x406E // Unused Var
#define VAR_ROUTE116_STATE 0x406F
#define VAR_ROUTE117_STATE 0x4070 // Unused Var
#define VAR_ROUTE118_STATE 0x4071
#define VAR_ROUTE119_STATE 0x4072
#define VAR_ROUTE120_STATE 0x4073 // Unused Var
#define VAR_ROUTE121_STATE 0x4074
#define VAR_ROUTE122_STATE 0x4075 // Unused Var
#define VAR_ROUTE123_STATE 0x4076 // Unused Var
#define VAR_ROUTE124_STATE 0x4077 // Unused Var
#define VAR_ROUTE125_STATE 0x4078 // Unused Var
#define VAR_ROUTE126_STATE 0x4079 // Unused Var
#define VAR_ROUTE127_STATE 0x407A // Unused Var
#define VAR_ROUTE128_STATE 0x407B
#define VAR_ROUTE129_STATE 0x407C // Unused Var
#define VAR_ROUTE130_STATE 0x407D // Unused Var
#define VAR_ROUTE131_STATE 0x407E // Unused Var
#define VAR_ROUTE132_STATE 0x407F // Unused Var
#define VAR_ROUTE133_STATE 0x4080 // Unused Var
#define VAR_ROUTE134_STATE 0x4081 // Unused Var
#define VAR_LITTLEROOT_HOUSES_STATE_MAY 0x4082
#define VAR_UNUSED_0x4083 0x4083 // Unused Var
#define VAR_BIRCH_LAB_STATE 0x4084
#define VAR_PETALBURG_GYM_STATE 0x4085 // 0-1: Wally tutorial, 2-6: 0-4 badges, 7: Defeated Norman, 8: Rematch Norman
#define VAR_CONTEST_HALL_STATE 0x4086
#define VAR_CABLE_CLUB_STATE 0x4087
#define VAR_CONTEST_TYPE 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_BRENDAN 0x408C
#define VAR_LITTLEROOT_RIVAL_STATE 0x408D
#define VAR_BOARD_BRINEY_BOAT_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_STAIR_GUARD_STATE 0x409E
#define VAR_MOSSDEEP_SPACE_CENTER_STATE 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 // 0: In or out of SZ, 1: Player exiting SZ, 2: Player entering SZ
#define VAR_TRICK_HOUSE_BEING_WATCHED_STATE 0x40A5
#define VAR_TRICK_HOUSE_FOUND_TRICK_MASTER 0x40A6
#define VAR_TRICK_HOUSE_ENTRANCE_STATE 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_SS_TIDAL_STATE 0x40B4
#define VAR_TRICK_HOUSE_ENTER_FROM_CORRIDOR 0x40B5
#define VAR_TRICK_HOUSE_PUZZLE_7_STATE_2 0x40B6 // Leftover from RS, never set
#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_RIVAL_STATE 0x40C7
#define VAR_JAGGED_PASS_STATE 0x40C8
#define VAR_SCOTT_PETALBURG_ENCOUNTER 0x40C9
#define VAR_SKY_PILLAR_STATE 0x40CA
#define VAR_MIRAGE_TOWER_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_DEX_UPGRADE_JOHTO_STARTER_STATE 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_WALLACE_STATE 0x40D8
#define VAR_HAS_TALKED_TO_SEAFLOOR_CAVERN_ENTRANCE_GRUNT 0x40D9
#define VAR_REGISTER_BIRCH_STATE 0x40DA
#define VAR_UNUSED_0x40DB 0x40DB // Unused Var
#define VAR_UNUSED_0x40DC 0x40DC // Unused Var
#define VAR_GIFT_PICHU_SLOT 0x40DD
#define VAR_GIFT_UNUSED_1 0x40DE // Var is written to, but never read
#define VAR_GIFT_UNUSED_2 0x40DF // Var is written to, but never read
#define VAR_GIFT_UNUSED_3 0x40E0 // Var is written to, but never read
#define VAR_GIFT_UNUSED_4 0x40E1 // Var is written to, but never read
#define VAR_GIFT_UNUSED_5 0x40E2 // Var is written to, but never read
#define VAR_GIFT_UNUSED_6 0x40E3 // Var is written to, but never read
#define VAR_GIFT_UNUSED_7 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_SCOTT_FORTREE_CALL_STEP_COUNTER 0x40F3
#define VAR_ROXANNE_CALL_STEP_COUNTER 0x40F4
#define VAR_SCOTT_BF_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 VARS_END 0x40FF
#define VARS_COUNT (VARS_END - VARS_START + 1)
#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_UNUSED_0x8014 0x8014
#define VAR_TRAINER_BATTLE_OPPONENT_A 0x8015 // Alias of gTrainerBattleOpponent_A
#define SPECIAL_VARS_END 0x8015
#endif // GUARD_CONSTANTS_VARS_H
|