Project Alice
Loading...
Searching...
No Matches
script_constants.hpp
Go to the documentation of this file.
1#pragma once
2
3#include <stdint.h>
4#include <cstring>
5
6#include "dcon_generated.hpp"
7
8namespace effect {
9// flags
10constexpr inline uint16_t no_payload = 0x4000;
11constexpr inline uint16_t is_random_scope = 0x2000;
12constexpr inline uint16_t scope_has_limit = 0x1000;
13
14constexpr inline uint16_t code_mask = 0x0FFF;
15
16// non scopes
17/* First argument - key code,
18Second - unique per scope keyword for parsing,
19Third - arguments payload size in cells.
20Int32_t is 4 bytes, which at 2 bytes per cell, is 2 cells, 2 cells for float,
21ids from payload struct are always 1 cell*/
22#define EFFECT_BYTECODE_LIST \
23EFFECT_BYTECODE_ELEMENT(0x0001, capital, 1) \
24EFFECT_BYTECODE_ELEMENT(0x0002, add_core_tag, 1) \
25EFFECT_BYTECODE_ELEMENT(0x0003, add_core_int, 1) \
26EFFECT_BYTECODE_ELEMENT(0x0004, add_core_this_nation, 0) \
27EFFECT_BYTECODE_ELEMENT(0x0005, add_core_this_province, 0) \
28EFFECT_BYTECODE_ELEMENT(0x0006, add_core_this_state, 0) \
29EFFECT_BYTECODE_ELEMENT(0x0007, add_core_this_pop, 0) \
30EFFECT_BYTECODE_ELEMENT(0x0008, add_core_from_province, 0) \
31EFFECT_BYTECODE_ELEMENT(0x0009, add_core_from_nation, 0) \
32EFFECT_BYTECODE_ELEMENT(0x000A, add_core_reb, 0) \
33EFFECT_BYTECODE_ELEMENT(0x000B, remove_core_tag, 1) \
34EFFECT_BYTECODE_ELEMENT(0x000C, remove_core_int, 1) \
35EFFECT_BYTECODE_ELEMENT(0x000D, remove_core_this_nation, 0) \
36EFFECT_BYTECODE_ELEMENT(0x000E, remove_core_this_province, 0) \
37EFFECT_BYTECODE_ELEMENT(0x000F, remove_core_this_state, 0) \
38EFFECT_BYTECODE_ELEMENT(0x0010, remove_core_this_pop, 0) \
39EFFECT_BYTECODE_ELEMENT(0x0011, remove_core_from_province, 0) \
40EFFECT_BYTECODE_ELEMENT(0x0012, remove_core_from_nation, 0) \
41EFFECT_BYTECODE_ELEMENT(0x0013, remove_core_reb, 0) \
42EFFECT_BYTECODE_ELEMENT(0x0014, change_region_name_state, 2) \
43EFFECT_BYTECODE_ELEMENT(0x0015, change_region_name_province, 2) \
44EFFECT_BYTECODE_ELEMENT(0x0016, trade_goods, 1) \
45EFFECT_BYTECODE_ELEMENT(0x0017, add_accepted_culture, 1) \
46EFFECT_BYTECODE_ELEMENT(0x0018, add_accepted_culture_union, 0) \
47EFFECT_BYTECODE_ELEMENT(0x0019, primary_culture, 1) \
48EFFECT_BYTECODE_ELEMENT(0x001A, primary_culture_this_nation, 0) \
49EFFECT_BYTECODE_ELEMENT(0x001B, primary_culture_this_state, 0) \
50EFFECT_BYTECODE_ELEMENT(0x001C, primary_culture_this_province, 0) \
51EFFECT_BYTECODE_ELEMENT(0x001D, primary_culture_this_pop, 0) \
52EFFECT_BYTECODE_ELEMENT(0x001E, primary_culture_from_nation, 0) \
53EFFECT_BYTECODE_ELEMENT(0x001F, remove_accepted_culture, 1) \
54EFFECT_BYTECODE_ELEMENT(0x0020, life_rating, 1) \
55EFFECT_BYTECODE_ELEMENT(0x0021, religion, 1) \
56EFFECT_BYTECODE_ELEMENT(0x0022, is_slave_state_yes, 0) \
57EFFECT_BYTECODE_ELEMENT(0x0023, is_slave_pop_yes, 0) \
58EFFECT_BYTECODE_ELEMENT(0x0024, research_points, 1) \
59EFFECT_BYTECODE_ELEMENT(0x0025, tech_school, 1) \
60EFFECT_BYTECODE_ELEMENT(0x0026, government, 1) \
61EFFECT_BYTECODE_ELEMENT(0x0027, government_reb, 0) \
62EFFECT_BYTECODE_ELEMENT(0x0028, treasury, 2) \
63EFFECT_BYTECODE_ELEMENT(0x0029, war_exhaustion, 2) \
64EFFECT_BYTECODE_ELEMENT(0x002A, prestige, 2) \
65EFFECT_BYTECODE_ELEMENT(0x002B, change_tag, 1) \
66EFFECT_BYTECODE_ELEMENT(0x002C, change_tag_culture, 0) \
67EFFECT_BYTECODE_ELEMENT(0x002D, change_tag_no_core_switch, 1) \
68EFFECT_BYTECODE_ELEMENT(0x002E, change_tag_no_core_switch_culture, 0) \
69EFFECT_BYTECODE_ELEMENT(0x002F, set_country_flag, 1) \
70EFFECT_BYTECODE_ELEMENT(0x0030, clr_country_flag, 1) \
71EFFECT_BYTECODE_ELEMENT(0x0031, military_access, 1) \
72EFFECT_BYTECODE_ELEMENT(0x0032, military_access_this_nation, 0) \
73EFFECT_BYTECODE_ELEMENT(0x0033, military_access_this_province, 0) \
74EFFECT_BYTECODE_ELEMENT(0x0034, military_access_from_nation, 0) \
75EFFECT_BYTECODE_ELEMENT(0x0035, military_access_from_province, 0) \
76EFFECT_BYTECODE_ELEMENT(0x0036, badboy, 2) \
77EFFECT_BYTECODE_ELEMENT(0x0037, secede_province, 1) \
78EFFECT_BYTECODE_ELEMENT(0x0038, secede_province_this_nation, 0) \
79EFFECT_BYTECODE_ELEMENT(0x0039, secede_province_this_state, 0) \
80EFFECT_BYTECODE_ELEMENT(0x003A, secede_province_this_province, 0) \
81EFFECT_BYTECODE_ELEMENT(0x003B, secede_province_this_pop, 0) \
82EFFECT_BYTECODE_ELEMENT(0x003C, secede_province_from_nation, 0) \
83EFFECT_BYTECODE_ELEMENT(0x003D, secede_province_from_province, 0) \
84EFFECT_BYTECODE_ELEMENT(0x003E, secede_province_reb, 0) \
85EFFECT_BYTECODE_ELEMENT(0x003F, inherit, 1) \
86EFFECT_BYTECODE_ELEMENT(0x0040, inherit_this_nation, 0) \
87EFFECT_BYTECODE_ELEMENT(0x0041, inherit_this_state, 0) \
88EFFECT_BYTECODE_ELEMENT(0x0042, inherit_this_province, 0) \
89EFFECT_BYTECODE_ELEMENT(0x0043, inherit_this_pop, 0) \
90EFFECT_BYTECODE_ELEMENT(0x0044, inherit_from_nation, 0) \
91EFFECT_BYTECODE_ELEMENT(0x0045, inherit_from_province, 0) \
92EFFECT_BYTECODE_ELEMENT(0x0046, annex_to, 1) \
93EFFECT_BYTECODE_ELEMENT(0x0047, annex_to_this_nation, 0) \
94EFFECT_BYTECODE_ELEMENT(0x0048, annex_to_this_state, 0) \
95EFFECT_BYTECODE_ELEMENT(0x0049, annex_to_this_province, 0) \
96EFFECT_BYTECODE_ELEMENT(0x004A, annex_to_this_pop, 0) \
97EFFECT_BYTECODE_ELEMENT(0x004B, annex_to_from_nation, 0) \
98EFFECT_BYTECODE_ELEMENT(0x004C, annex_to_from_province, 0) \
99EFFECT_BYTECODE_ELEMENT(0x004D, release, 1) \
100EFFECT_BYTECODE_ELEMENT(0x004E, release_this_nation, 0) \
101EFFECT_BYTECODE_ELEMENT(0x004F, release_this_state, 0) \
102EFFECT_BYTECODE_ELEMENT(0x0050, release_this_province, 0) \
103EFFECT_BYTECODE_ELEMENT(0x0051, release_this_pop, 0) \
104EFFECT_BYTECODE_ELEMENT(0x0052, release_from_nation, 0) \
105EFFECT_BYTECODE_ELEMENT(0x0053, release_from_province, 0) \
106EFFECT_BYTECODE_ELEMENT(0x0054, change_controller, 1) \
107EFFECT_BYTECODE_ELEMENT(0x0055, change_controller_this_nation, 0) \
108EFFECT_BYTECODE_ELEMENT(0x0056, change_controller_this_province, 0) \
109EFFECT_BYTECODE_ELEMENT(0x0057, change_controller_from_nation, 0) \
110EFFECT_BYTECODE_ELEMENT(0x0058, change_controller_from_province, 0) \
111EFFECT_BYTECODE_ELEMENT(0x0059, infrastructure, 1) \
112EFFECT_BYTECODE_ELEMENT(0x005A, money, 2) \
113EFFECT_BYTECODE_ELEMENT(0x005B, leadership, 1) \
114EFFECT_BYTECODE_ELEMENT(0x005C, create_vassal, 1) \
115EFFECT_BYTECODE_ELEMENT(0x005D, create_vassal_this_nation, 0) \
116EFFECT_BYTECODE_ELEMENT(0x005E, create_vassal_this_province, 0) \
117EFFECT_BYTECODE_ELEMENT(0x005F, create_vassal_from_nation, 0) \
118EFFECT_BYTECODE_ELEMENT(0x0060, create_vassal_from_province, 0) \
119EFFECT_BYTECODE_ELEMENT(0x0061, end_military_access, 1) \
120EFFECT_BYTECODE_ELEMENT(0x0062, end_military_access_this_nation, 0) \
121EFFECT_BYTECODE_ELEMENT(0x0063, end_military_access_this_province, 0) \
122EFFECT_BYTECODE_ELEMENT(0x0064, end_military_access_from_nation, 0) \
123EFFECT_BYTECODE_ELEMENT(0x0065, end_military_access_from_province, 0) \
124EFFECT_BYTECODE_ELEMENT(0x0066, leave_alliance, 1) \
125EFFECT_BYTECODE_ELEMENT(0x0067, leave_alliance_this_nation, 0) \
126EFFECT_BYTECODE_ELEMENT(0x0068, leave_alliance_this_province, 0) \
127EFFECT_BYTECODE_ELEMENT(0x0069, leave_alliance_from_nation, 0) \
128EFFECT_BYTECODE_ELEMENT(0x006A, leave_alliance_from_province, 0) \
129EFFECT_BYTECODE_ELEMENT(0x006B, end_war, 1) \
130EFFECT_BYTECODE_ELEMENT(0x006C, end_war_this_nation, 0) \
131EFFECT_BYTECODE_ELEMENT(0x006D, end_war_this_province, 0) \
132EFFECT_BYTECODE_ELEMENT(0x006E, end_war_from_nation, 0) \
133EFFECT_BYTECODE_ELEMENT(0x006F, end_war_from_province, 0) \
134EFFECT_BYTECODE_ELEMENT(0x0070, enable_ideology, 1) \
135EFFECT_BYTECODE_ELEMENT(0x0071, ruling_party_ideology, 1) \
136EFFECT_BYTECODE_ELEMENT(0x0072, plurality, 2) \
137EFFECT_BYTECODE_ELEMENT(0x0073, remove_province_modifier, 1) \
138EFFECT_BYTECODE_ELEMENT(0x0074, remove_country_modifier, 1) \
139EFFECT_BYTECODE_ELEMENT(0x0075, create_alliance, 1) \
140EFFECT_BYTECODE_ELEMENT(0x0076, create_alliance_this_nation, 0) \
141EFFECT_BYTECODE_ELEMENT(0x0077, create_alliance_this_province, 0) \
142EFFECT_BYTECODE_ELEMENT(0x0078, create_alliance_from_nation, 0) \
143EFFECT_BYTECODE_ELEMENT(0x0079, create_alliance_from_province, 0) \
144EFFECT_BYTECODE_ELEMENT(0x007A, release_vassal, 1) \
145EFFECT_BYTECODE_ELEMENT(0x007B, release_vassal_this_nation, 0) \
146EFFECT_BYTECODE_ELEMENT(0x007C, release_vassal_this_province, 0) \
147EFFECT_BYTECODE_ELEMENT(0x007D, release_vassal_from_nation, 0) \
148EFFECT_BYTECODE_ELEMENT(0x007E, release_vassal_from_province, 0) \
149EFFECT_BYTECODE_ELEMENT(0x007F, release_vassal_reb, 0) \
150EFFECT_BYTECODE_ELEMENT(0x0080, release_vassal_random, 0) \
151EFFECT_BYTECODE_ELEMENT(0x0081, change_province_name, 2) \
152EFFECT_BYTECODE_ELEMENT(0x0082, enable_canal, 1) \
153EFFECT_BYTECODE_ELEMENT(0x0083, set_global_flag, 1) \
154EFFECT_BYTECODE_ELEMENT(0x0084, clr_global_flag, 1) \
155EFFECT_BYTECODE_ELEMENT(0x0085, nationalvalue_province, 1) \
156EFFECT_BYTECODE_ELEMENT(0x0086, nationalvalue_nation, 1) \
157EFFECT_BYTECODE_ELEMENT(0x0087, civilized_yes, 0) \
158EFFECT_BYTECODE_ELEMENT(0x0088, civilized_no, 0) \
159EFFECT_BYTECODE_ELEMENT(0x0089, is_slave_state_no, 0) \
160EFFECT_BYTECODE_ELEMENT(0x008A, is_slave_pop_no, 0) \
161EFFECT_BYTECODE_ELEMENT(0x008B, election, 0) \
162EFFECT_BYTECODE_ELEMENT(0x008C, social_reform, 1) \
163EFFECT_BYTECODE_ELEMENT(0x008D, political_reform, 1) \
164EFFECT_BYTECODE_ELEMENT(0x008E, add_tax_relative_income, 2) \
165EFFECT_BYTECODE_ELEMENT(0x008F, neutrality, 0) \
166EFFECT_BYTECODE_ELEMENT(0x0090, reduce_pop, 2) \
167EFFECT_BYTECODE_ELEMENT(0x0091, move_pop, 1) \
168EFFECT_BYTECODE_ELEMENT(0x0092, pop_type, 1) \
169EFFECT_BYTECODE_ELEMENT(0x0093, years_of_research, 2) \
170EFFECT_BYTECODE_ELEMENT(0x0094, prestige_factor_positive, 2) \
171EFFECT_BYTECODE_ELEMENT(0x0095, prestige_factor_negative, 2) \
172EFFECT_BYTECODE_ELEMENT(0x0096, military_reform, 1) \
173EFFECT_BYTECODE_ELEMENT(0x0097, economic_reform, 1) \
174EFFECT_BYTECODE_ELEMENT(0x0098, remove_random_military_reforms, 1) \
175EFFECT_BYTECODE_ELEMENT(0x0099, remove_random_economic_reforms, 1) \
176EFFECT_BYTECODE_ELEMENT(0x009A, add_crime, 1) \
177EFFECT_BYTECODE_ELEMENT(0x009B, add_crime_none, 0) \
178EFFECT_BYTECODE_ELEMENT(0x009C, nationalize, 0) \
179EFFECT_BYTECODE_ELEMENT(0x009D, build_factory_in_capital_state, 1) \
180EFFECT_BYTECODE_ELEMENT(0x009E, activate_technology, 1) \
181EFFECT_BYTECODE_ELEMENT(0x009F, great_wars_enabled_yes, 0) \
182EFFECT_BYTECODE_ELEMENT(0x00A0, great_wars_enabled_no, 0) \
183EFFECT_BYTECODE_ELEMENT(0x00A1, world_wars_enabled_yes, 0) \
184EFFECT_BYTECODE_ELEMENT(0x00A2, world_wars_enabled_no, 0) \
185EFFECT_BYTECODE_ELEMENT(0x00A3, assimilate_province, 0) \
186EFFECT_BYTECODE_ELEMENT(0x00A4, assimilate_pop, 0) \
187EFFECT_BYTECODE_ELEMENT(0x00A5, literacy, 2) \
188EFFECT_BYTECODE_ELEMENT(0x00A6, add_crisis_interest, 0) \
189EFFECT_BYTECODE_ELEMENT(0x00A7, flashpoint_tension, 2) \
190EFFECT_BYTECODE_ELEMENT(0x00A8, add_crisis_temperature, 2) \
191EFFECT_BYTECODE_ELEMENT(0x00A9, consciousness, 2) \
192EFFECT_BYTECODE_ELEMENT(0x00AA, militancy, 2) \
193EFFECT_BYTECODE_ELEMENT(0x00AB, rgo_size, 1) \
194EFFECT_BYTECODE_ELEMENT(0x00AC, fort, 1) \
195EFFECT_BYTECODE_ELEMENT(0x00AD, naval_base, 1) \
196EFFECT_BYTECODE_ELEMENT(0x00AE, trigger_revolt_nation, 4) \
197EFFECT_BYTECODE_ELEMENT(0x00AF, trigger_revolt_state, 4) \
198EFFECT_BYTECODE_ELEMENT(0x00B0, trigger_revolt_province, 4) \
199EFFECT_BYTECODE_ELEMENT(0x00B1, diplomatic_influence, 2) \
200EFFECT_BYTECODE_ELEMENT(0x00B2, diplomatic_influence_this_nation, 1) \
201EFFECT_BYTECODE_ELEMENT(0x00B3, diplomatic_influence_this_province, 1) \
202EFFECT_BYTECODE_ELEMENT(0x00B4, diplomatic_influence_from_nation, 1) \
203EFFECT_BYTECODE_ELEMENT(0x00B5, diplomatic_influence_from_province, 1) \
204EFFECT_BYTECODE_ELEMENT(0x00B6, relation, 2) \
205EFFECT_BYTECODE_ELEMENT(0x00B7, relation_this_nation, 1) \
206EFFECT_BYTECODE_ELEMENT(0x00B8, relation_this_province, 1) \
207EFFECT_BYTECODE_ELEMENT(0x00B9, relation_from_nation, 1) \
208EFFECT_BYTECODE_ELEMENT(0x00BA, relation_from_province, 1) \
209EFFECT_BYTECODE_ELEMENT(0x00BB, add_province_modifier, 2) \
210EFFECT_BYTECODE_ELEMENT(0x00BC, add_province_modifier_no_duration, 1) \
211EFFECT_BYTECODE_ELEMENT(0x00BD, add_country_modifier, 2) \
212EFFECT_BYTECODE_ELEMENT(0x00BE, add_country_modifier_no_duration, 1) \
213EFFECT_BYTECODE_ELEMENT(0x00BF, casus_belli_tag, 3) \
214EFFECT_BYTECODE_ELEMENT(0x00C0, casus_belli_int, 3) \
215EFFECT_BYTECODE_ELEMENT(0x00C1, casus_belli_this_nation, 2) \
216EFFECT_BYTECODE_ELEMENT(0x00C2, casus_belli_this_state, 2) \
217EFFECT_BYTECODE_ELEMENT(0x00C3, casus_belli_this_province, 2) \
218EFFECT_BYTECODE_ELEMENT(0x00C4, casus_belli_this_pop, 2) \
219EFFECT_BYTECODE_ELEMENT(0x00C5, casus_belli_from_nation, 2) \
220EFFECT_BYTECODE_ELEMENT(0x00C6, casus_belli_from_province, 2) \
221EFFECT_BYTECODE_ELEMENT(0x00C7, add_casus_belli_tag, 3) \
222EFFECT_BYTECODE_ELEMENT(0x00C8, add_casus_belli_int, 3) \
223EFFECT_BYTECODE_ELEMENT(0x00C9, add_casus_belli_this_nation, 2) \
224EFFECT_BYTECODE_ELEMENT(0x00CA, add_casus_belli_this_state, 2) \
225EFFECT_BYTECODE_ELEMENT(0x00CB, add_casus_belli_this_province, 2) \
226EFFECT_BYTECODE_ELEMENT(0x00CC, add_casus_belli_this_pop, 2) \
227EFFECT_BYTECODE_ELEMENT(0x00CD, add_casus_belli_from_nation, 2) \
228EFFECT_BYTECODE_ELEMENT(0x00CE, add_casus_belli_from_province, 2) \
229EFFECT_BYTECODE_ELEMENT(0x00CF, remove_casus_belli_tag, 2) \
230EFFECT_BYTECODE_ELEMENT(0x00D0, remove_casus_belli_int, 2) \
231EFFECT_BYTECODE_ELEMENT(0x00D1, remove_casus_belli_this_nation, 1) \
232EFFECT_BYTECODE_ELEMENT(0x00D2, remove_casus_belli_this_state, 1) \
233EFFECT_BYTECODE_ELEMENT(0x00D3, remove_casus_belli_this_province, 1) \
234EFFECT_BYTECODE_ELEMENT(0x00D4, remove_casus_belli_this_pop, 1) \
235EFFECT_BYTECODE_ELEMENT(0x00D5, remove_casus_belli_from_nation, 1) \
236EFFECT_BYTECODE_ELEMENT(0x00D6, remove_casus_belli_from_province, 1) \
237EFFECT_BYTECODE_ELEMENT(0x00D7, this_remove_casus_belli_tag, 2) \
238EFFECT_BYTECODE_ELEMENT(0x00D8, this_remove_casus_belli_int, 2) \
239EFFECT_BYTECODE_ELEMENT(0x00D9, this_remove_casus_belli_this_nation, 1) \
240EFFECT_BYTECODE_ELEMENT(0x00DA, this_remove_casus_belli_this_state, 1) \
241EFFECT_BYTECODE_ELEMENT(0x00DB, this_remove_casus_belli_this_province, 1) \
242EFFECT_BYTECODE_ELEMENT(0x00DC, this_remove_casus_belli_this_pop, 1) \
243EFFECT_BYTECODE_ELEMENT(0x00DD, this_remove_casus_belli_from_nation, 1) \
244EFFECT_BYTECODE_ELEMENT(0x00DE, this_remove_casus_belli_from_province, 1) \
245EFFECT_BYTECODE_ELEMENT(0x00DF, war_tag, 7) \
246EFFECT_BYTECODE_ELEMENT(0x00E0, war_this_nation, 6) \
247EFFECT_BYTECODE_ELEMENT(0x00E1, war_this_state, 6) \
248EFFECT_BYTECODE_ELEMENT(0x00E2, war_this_province, 6) \
249EFFECT_BYTECODE_ELEMENT(0x00E3, war_this_pop, 6) \
250EFFECT_BYTECODE_ELEMENT(0x00E4, war_from_nation, 6) \
251EFFECT_BYTECODE_ELEMENT(0x00E5, war_from_province, 6) \
252EFFECT_BYTECODE_ELEMENT(0x00E6, war_no_ally_tag, 7) \
253EFFECT_BYTECODE_ELEMENT(0x00E7, war_no_ally_this_nation, 6) \
254EFFECT_BYTECODE_ELEMENT(0x00E8, war_no_ally_this_state, 6) \
255EFFECT_BYTECODE_ELEMENT(0x00E9, war_no_ally_this_province, 6) \
256EFFECT_BYTECODE_ELEMENT(0x00EA, war_no_ally_this_pop, 6) \
257EFFECT_BYTECODE_ELEMENT(0x00EB, war_no_ally_from_nation, 6) \
258EFFECT_BYTECODE_ELEMENT(0x00EC, war_no_ally_from_province, 6) \
259EFFECT_BYTECODE_ELEMENT(0x00ED, country_event_this_nation, 2) \
260EFFECT_BYTECODE_ELEMENT(0x00EE, country_event_immediate_this_nation, 1) \
261EFFECT_BYTECODE_ELEMENT(0x00EF, province_event_this_nation, 2) \
262EFFECT_BYTECODE_ELEMENT(0x00F0, province_event_immediate_this_nation, 1) \
263EFFECT_BYTECODE_ELEMENT(0x00F1, sub_unit_int, 2) \
264EFFECT_BYTECODE_ELEMENT(0x00F2, sub_unit_this, 1) \
265EFFECT_BYTECODE_ELEMENT(0x00F3, sub_unit_from, 1) \
266EFFECT_BYTECODE_ELEMENT(0x00F4, sub_unit_current, 1) \
267EFFECT_BYTECODE_ELEMENT(0x00F5, set_variable, 3) \
268EFFECT_BYTECODE_ELEMENT(0x00F6, change_variable, 3) \
269EFFECT_BYTECODE_ELEMENT(0x00F7, ideology, 3) \
270EFFECT_BYTECODE_ELEMENT(0x00F8, upper_house, 3) \
271EFFECT_BYTECODE_ELEMENT(0x00F9, scaled_militancy_issue, 3) \
272EFFECT_BYTECODE_ELEMENT(0x00FA, scaled_militancy_ideology, 3) \
273EFFECT_BYTECODE_ELEMENT(0x00FB, scaled_militancy_unemployment, 2) \
274EFFECT_BYTECODE_ELEMENT(0x00FC, scaled_consciousness_issue, 3) \
275EFFECT_BYTECODE_ELEMENT(0x00FD, scaled_consciousness_ideology, 3) \
276EFFECT_BYTECODE_ELEMENT(0x00FE, scaled_consciousness_unemployment, 2) \
277EFFECT_BYTECODE_ELEMENT(0x00FF, define_general, 4) \
278EFFECT_BYTECODE_ELEMENT(0x0100, define_admiral, 4) \
279EFFECT_BYTECODE_ELEMENT(0x0101, dominant_issue, 3) \
280EFFECT_BYTECODE_ELEMENT(0x0102, add_war_goal, 1) \
281EFFECT_BYTECODE_ELEMENT(0x0103, move_issue_percentage_nation, 4) \
282EFFECT_BYTECODE_ELEMENT(0x0104, move_issue_percentage_state, 4) \
283EFFECT_BYTECODE_ELEMENT(0x0105, move_issue_percentage_province, 4) \
284EFFECT_BYTECODE_ELEMENT(0x0106, move_issue_percentage_pop, 4) \
285EFFECT_BYTECODE_ELEMENT(0x0107, party_loyalty, 3) \
286EFFECT_BYTECODE_ELEMENT(0x0108, party_loyalty_province, 2) \
287EFFECT_BYTECODE_ELEMENT(0x0109, variable_tech_name_no, 1) \
288EFFECT_BYTECODE_ELEMENT(0x010A, variable_invention_name_yes, 1) \
289EFFECT_BYTECODE_ELEMENT(0x010B, build_railway_in_capital_yes_whole_state_yes_limit, 0) \
290EFFECT_BYTECODE_ELEMENT(0x010C, build_railway_in_capital_yes_whole_state_no_limit, 0) \
291EFFECT_BYTECODE_ELEMENT(0x010D, build_railway_in_capital_no_whole_state_yes_limit, 0) \
292EFFECT_BYTECODE_ELEMENT(0x010E, build_railway_in_capital_no_whole_state_no_limit, 0) \
293EFFECT_BYTECODE_ELEMENT(0x010F, build_fort_in_capital_yes_whole_state_yes_limit, 0) \
294EFFECT_BYTECODE_ELEMENT(0x0110, build_fort_in_capital_yes_whole_state_no_limit, 0) \
295EFFECT_BYTECODE_ELEMENT(0x0111, build_fort_in_capital_no_whole_state_yes_limit, 0) \
296EFFECT_BYTECODE_ELEMENT(0x0112, build_fort_in_capital_no_whole_state_no_limit, 0) \
297EFFECT_BYTECODE_ELEMENT(0x0113, relation_reb, 1) \
298EFFECT_BYTECODE_ELEMENT(0x0114, variable_tech_name_yes, 1) \
299EFFECT_BYTECODE_ELEMENT(0x0115, variable_good_name, 3) \
300/*misplaced*/ \
301EFFECT_BYTECODE_ELEMENT(0x0116, set_country_flag_province, 1) \
302EFFECT_BYTECODE_ELEMENT(0x0117, add_country_modifier_province, 2) \
303EFFECT_BYTECODE_ELEMENT(0x0118, add_country_modifier_province_no_duration, 1) \
304EFFECT_BYTECODE_ELEMENT(0x0119, dominant_issue_nation, 3) \
305EFFECT_BYTECODE_ELEMENT(0x011A, relation_province, 2) \
306EFFECT_BYTECODE_ELEMENT(0x011B, relation_province_this_nation, 1) \
307EFFECT_BYTECODE_ELEMENT(0x011C, relation_province_this_province, 1) \
308EFFECT_BYTECODE_ELEMENT(0x011D, relation_province_from_nation, 1) \
309EFFECT_BYTECODE_ELEMENT(0x011E, relation_province_from_province, 1) \
310EFFECT_BYTECODE_ELEMENT(0x011F, relation_province_reb, 1) \
311EFFECT_BYTECODE_ELEMENT(0x0120, scaled_militancy_nation_issue, 3) \
312EFFECT_BYTECODE_ELEMENT(0x0121, scaled_militancy_nation_ideology, 3) \
313EFFECT_BYTECODE_ELEMENT(0x0122, scaled_militancy_nation_unemployment, 2) \
314EFFECT_BYTECODE_ELEMENT(0x0123, scaled_consciousness_nation_issue, 3) \
315EFFECT_BYTECODE_ELEMENT(0x0124, scaled_consciousness_nation_ideology, 3) \
316EFFECT_BYTECODE_ELEMENT(0x0125, scaled_consciousness_nation_unemployment, 2) \
317EFFECT_BYTECODE_ELEMENT(0x0126, scaled_militancy_state_issue, 3) \
318EFFECT_BYTECODE_ELEMENT(0x0127, scaled_militancy_state_ideology, 3) \
319EFFECT_BYTECODE_ELEMENT(0x0128, scaled_militancy_state_unemployment, 2) \
320EFFECT_BYTECODE_ELEMENT(0x0129, scaled_consciousness_state_issue, 3) \
321EFFECT_BYTECODE_ELEMENT(0x012A, scaled_consciousness_state_ideology, 3) \
322EFFECT_BYTECODE_ELEMENT(0x012B, scaled_consciousness_state_unemployment, 2) \
323EFFECT_BYTECODE_ELEMENT(0x012C, scaled_militancy_province_issue, 3) \
324EFFECT_BYTECODE_ELEMENT(0x012D, scaled_militancy_province_ideology, 3) \
325EFFECT_BYTECODE_ELEMENT(0x012E, scaled_militancy_province_unemployment, 2) \
326EFFECT_BYTECODE_ELEMENT(0x012F, scaled_consciousness_province_issue, 3) \
327EFFECT_BYTECODE_ELEMENT(0x0130, scaled_consciousness_province_ideology, 3) \
328EFFECT_BYTECODE_ELEMENT(0x0131, scaled_consciousness_province_unemployment, 2) \
329EFFECT_BYTECODE_ELEMENT(0x0132, variable_good_name_province, 3) \
330EFFECT_BYTECODE_ELEMENT(0x0133, treasury_province, 2) \
331EFFECT_BYTECODE_ELEMENT(0x0134, country_event_this_state, 2) \
332EFFECT_BYTECODE_ELEMENT(0x0135, country_event_immediate_this_state, 1) \
333EFFECT_BYTECODE_ELEMENT(0x0136, province_event_this_state, 2) \
334EFFECT_BYTECODE_ELEMENT(0x0137, province_event_immediate_this_state, 1) \
335EFFECT_BYTECODE_ELEMENT(0x0138, country_event_this_province, 2) \
336EFFECT_BYTECODE_ELEMENT(0x0139, country_event_immediate_this_province, 1) \
337EFFECT_BYTECODE_ELEMENT(0x013A, province_event_this_province, 2) \
338EFFECT_BYTECODE_ELEMENT(0x013B, province_event_immediate_this_province, 1) \
339EFFECT_BYTECODE_ELEMENT(0x013C, country_event_this_pop, 2) \
340EFFECT_BYTECODE_ELEMENT(0x013D, country_event_immediate_this_pop, 1) \
341EFFECT_BYTECODE_ELEMENT(0x013E, province_event_this_pop, 2) \
342EFFECT_BYTECODE_ELEMENT(0x013F, province_event_immediate_this_pop, 1) \
343EFFECT_BYTECODE_ELEMENT(0x0140, country_event_province_this_nation, 2) \
344EFFECT_BYTECODE_ELEMENT(0x0141, country_event_immediate_province_this_nation, 1) \
345EFFECT_BYTECODE_ELEMENT(0x0142, country_event_province_this_state, 2) \
346EFFECT_BYTECODE_ELEMENT(0x0143, country_event_immediate_province_this_state, 1) \
347EFFECT_BYTECODE_ELEMENT(0x0144, country_event_province_this_province, 2) \
348EFFECT_BYTECODE_ELEMENT(0x0145, country_event_immediate_province_this_province, 1) \
349EFFECT_BYTECODE_ELEMENT(0x0146, country_event_province_this_pop, 2) \
350EFFECT_BYTECODE_ELEMENT(0x0147, country_event_immediate_province_this_pop, 1) \
351EFFECT_BYTECODE_ELEMENT(0x0148, activate_invention, 1) \
352EFFECT_BYTECODE_ELEMENT(0x0149, variable_invention_name_no, 1) \
353EFFECT_BYTECODE_ELEMENT(0x014A, add_core_tag_state, 1) \
354EFFECT_BYTECODE_ELEMENT(0x014B, remove_core_tag_state, 1) \
355EFFECT_BYTECODE_ELEMENT(0x014C, secede_province_state, 1) \
356EFFECT_BYTECODE_ELEMENT(0x014D, assimilate_state, 0) \
357EFFECT_BYTECODE_ELEMENT(0x014E, add_core_state_this_nation, 0) \
358EFFECT_BYTECODE_ELEMENT(0x014F, add_core_state_this_province, 0) \
359EFFECT_BYTECODE_ELEMENT(0x0150, add_core_state_this_state, 0) \
360EFFECT_BYTECODE_ELEMENT(0x0151, add_core_state_this_pop, 0) \
361EFFECT_BYTECODE_ELEMENT(0x0152, add_core_state_from_province, 0) \
362EFFECT_BYTECODE_ELEMENT(0x0153, add_core_state_from_nation, 0) \
363EFFECT_BYTECODE_ELEMENT(0x0154, add_core_state_reb, 0) \
364EFFECT_BYTECODE_ELEMENT(0x0155, add_province_modifier_state, 2) \
365EFFECT_BYTECODE_ELEMENT(0x0156, add_province_modifier_state_no_duration, 1) \
366EFFECT_BYTECODE_ELEMENT(0x0157, remove_core_state_this_nation, 0) \
367EFFECT_BYTECODE_ELEMENT(0x0158, remove_core_state_this_province, 0) \
368EFFECT_BYTECODE_ELEMENT(0x0159, remove_core_state_this_state, 0) \
369EFFECT_BYTECODE_ELEMENT(0x015A, remove_core_state_this_pop, 0) \
370EFFECT_BYTECODE_ELEMENT(0x015B, remove_core_state_from_province, 0) \
371EFFECT_BYTECODE_ELEMENT(0x015C, remove_core_state_from_nation, 0) \
372EFFECT_BYTECODE_ELEMENT(0x015D, remove_core_state_reb, 0) \
373EFFECT_BYTECODE_ELEMENT(0x015E, remove_province_modifier_state, 1) \
374EFFECT_BYTECODE_ELEMENT(0x015F, life_rating_state, 1) \
375EFFECT_BYTECODE_ELEMENT(0x0160, secede_province_state_this_nation, 0) \
376EFFECT_BYTECODE_ELEMENT(0x0161, secede_province_state_this_state, 0) \
377EFFECT_BYTECODE_ELEMENT(0x0162, secede_province_state_this_province, 0) \
378EFFECT_BYTECODE_ELEMENT(0x0163, secede_province_state_this_pop, 0) \
379EFFECT_BYTECODE_ELEMENT(0x0164, secede_province_state_from_nation, 0) \
380EFFECT_BYTECODE_ELEMENT(0x0165, secede_province_state_from_province, 0) \
381EFFECT_BYTECODE_ELEMENT(0x0166, secede_province_state_reb, 0) \
382EFFECT_BYTECODE_ELEMENT(0x0167, infrastructure_state, 1) \
383EFFECT_BYTECODE_ELEMENT(0x0168, fort_state, 1) \
384EFFECT_BYTECODE_ELEMENT(0x0169, naval_base_state, 1) \
385EFFECT_BYTECODE_ELEMENT(0x016A, is_slave_province_yes, 0) \
386EFFECT_BYTECODE_ELEMENT(0x016B, is_slave_province_no, 0) \
387EFFECT_BYTECODE_ELEMENT(0x016C, change_controller_state, 1) \
388EFFECT_BYTECODE_ELEMENT(0x016D, change_controller_state_this_nation, 0) \
389EFFECT_BYTECODE_ELEMENT(0x016E, change_controller_state_this_province, 0) \
390EFFECT_BYTECODE_ELEMENT(0x016F, change_controller_state_from_nation, 0) \
391EFFECT_BYTECODE_ELEMENT(0x0170, change_controller_state_from_province, 0) \
392EFFECT_BYTECODE_ELEMENT(0x0171, reduce_pop_province, 2) \
393EFFECT_BYTECODE_ELEMENT(0x0172, reduce_pop_state, 2) \
394EFFECT_BYTECODE_ELEMENT(0x0173, reduce_pop_nation, 2) \
395EFFECT_BYTECODE_ELEMENT(0x0174, consciousness_province, 2) \
396EFFECT_BYTECODE_ELEMENT(0x0175, consciousness_state, 2) \
397EFFECT_BYTECODE_ELEMENT(0x0176, consciousness_nation, 2) \
398EFFECT_BYTECODE_ELEMENT(0x0177, militancy_province, 2) \
399EFFECT_BYTECODE_ELEMENT(0x0178, militancy_state, 2) \
400EFFECT_BYTECODE_ELEMENT(0x0179, militancy_nation, 2) \
401EFFECT_BYTECODE_ELEMENT(0x017A, remove_core_tag_nation, 1) \
402EFFECT_BYTECODE_ELEMENT(0x017B, remove_core_nation_this_nation, 0) \
403EFFECT_BYTECODE_ELEMENT(0x017C, remove_core_nation_this_province, 0) \
404EFFECT_BYTECODE_ELEMENT(0x017D, remove_core_nation_this_state, 0) \
405EFFECT_BYTECODE_ELEMENT(0x017E, remove_core_nation_this_pop, 0) \
406EFFECT_BYTECODE_ELEMENT(0x017F, remove_core_nation_from_province, 0) \
407EFFECT_BYTECODE_ELEMENT(0x0180, remove_core_nation_from_nation, 0) \
408EFFECT_BYTECODE_ELEMENT(0x0181, remove_core_nation_reb, 0) \
409EFFECT_BYTECODE_ELEMENT(0x0182, set_country_flag_pop, 1) \
410EFFECT_BYTECODE_ELEMENT(0x0183, social_reform_province, 1) \
411EFFECT_BYTECODE_ELEMENT(0x0184, political_reform_province, 1) \
412EFFECT_BYTECODE_ELEMENT(0x0185, flashpoint_tension_province, 2) \
413EFFECT_BYTECODE_ELEMENT(0x0186, release_vassal_province, 1) \
414EFFECT_BYTECODE_ELEMENT(0x0187, release_vassal_province_this_nation, 0) \
415EFFECT_BYTECODE_ELEMENT(0x0188, release_vassal_province_this_province, 0) \
416EFFECT_BYTECODE_ELEMENT(0x0189, release_vassal_province_from_nation, 0) \
417EFFECT_BYTECODE_ELEMENT(0x018A, release_vassal_province_from_province, 0) \
418EFFECT_BYTECODE_ELEMENT(0x018B, release_vassal_province_reb, 0) \
419EFFECT_BYTECODE_ELEMENT(0x018C, release_vassal_province_random, 0) \
420EFFECT_BYTECODE_ELEMENT(0x018D, build_bank_in_capital_yes_whole_state_yes_limit, 0) \
421EFFECT_BYTECODE_ELEMENT(0x018E, build_bank_in_capital_yes_whole_state_no_limit, 0) \
422EFFECT_BYTECODE_ELEMENT(0x018F, build_bank_in_capital_no_whole_state_yes_limit, 0) \
423EFFECT_BYTECODE_ELEMENT(0x0190, build_bank_in_capital_no_whole_state_no_limit, 0) \
424EFFECT_BYTECODE_ELEMENT(0x0191, build_university_in_capital_yes_whole_state_yes_limit, 0) \
425EFFECT_BYTECODE_ELEMENT(0x0192, build_university_in_capital_yes_whole_state_no_limit, 0) \
426EFFECT_BYTECODE_ELEMENT(0x0193, build_university_in_capital_no_whole_state_yes_limit, 0) \
427EFFECT_BYTECODE_ELEMENT(0x0194, build_university_in_capital_no_whole_state_no_limit, 0) \
428EFFECT_BYTECODE_ELEMENT(0x0195, bank, 1) \
429EFFECT_BYTECODE_ELEMENT(0x0196, bank_state, 1) \
430EFFECT_BYTECODE_ELEMENT(0x0197, university, 1) \
431EFFECT_BYTECODE_ELEMENT(0x0198, university_state, 1) \
432EFFECT_BYTECODE_ELEMENT(0x0199, kill_leader, 2) \
433EFFECT_BYTECODE_ELEMENT(0x019A, annex_to_null_nation, 0) \
434EFFECT_BYTECODE_ELEMENT(0x019B, annex_to_null_province, 0) \
435EFFECT_BYTECODE_ELEMENT(0x019C, add_truce_tag, 2) \
436EFFECT_BYTECODE_ELEMENT(0x019D, add_truce_this_nation, 1) \
437EFFECT_BYTECODE_ELEMENT(0x019E, add_truce_this_state, 1) \
438EFFECT_BYTECODE_ELEMENT(0x019F, add_truce_this_province, 1) \
439EFFECT_BYTECODE_ELEMENT(0x01A0, add_truce_this_pop, 1) \
440EFFECT_BYTECODE_ELEMENT(0x01A1, add_truce_from_nation, 1) \
441EFFECT_BYTECODE_ELEMENT(0x01A2, add_truce_from_province, 1) \
442EFFECT_BYTECODE_ELEMENT(0x01A3, call_allies, 0) \
443EFFECT_BYTECODE_ELEMENT(0x01A4, ruling_party_this, 0) \
444EFFECT_BYTECODE_ELEMENT(0x01A5, ruling_party_from, 0) \
445EFFECT_BYTECODE_ELEMENT(0x01A6, add_accepted_culture_this, 0) \
446EFFECT_BYTECODE_ELEMENT(0x01A7, add_accepted_culture_union_this, 0) \
447EFFECT_BYTECODE_ELEMENT(0x01A8, add_accepted_culture_from, 0) \
448EFFECT_BYTECODE_ELEMENT(0x01A9, add_accepted_culture_union_from, 0) \
449/* fused ops */ \
450EFFECT_BYTECODE_ELEMENT(0x01AA, fop_clr_global_flag_2, 2) \
451EFFECT_BYTECODE_ELEMENT(0x01AB, fop_clr_global_flag_3, 3) \
452EFFECT_BYTECODE_ELEMENT(0x01AC, fop_clr_global_flag_4, 4) \
453EFFECT_BYTECODE_ELEMENT(0x01AD, fop_clr_global_flag_5, 5) \
454EFFECT_BYTECODE_ELEMENT(0x01AE, fop_clr_global_flag_6, 6) \
455EFFECT_BYTECODE_ELEMENT(0x01AF, fop_clr_global_flag_7, 7) \
456EFFECT_BYTECODE_ELEMENT(0x01B0, fop_clr_global_flag_8, 8) \
457EFFECT_BYTECODE_ELEMENT(0x01B1, fop_clr_global_flag_9, 9) \
458EFFECT_BYTECODE_ELEMENT(0x01B2, fop_clr_global_flag_10, 10) \
459EFFECT_BYTECODE_ELEMENT(0x01B3, fop_clr_global_flag_11, 11) \
460EFFECT_BYTECODE_ELEMENT(0x01B4, fop_clr_global_flag_12, 12) \
461EFFECT_BYTECODE_ELEMENT(0x01B5, fop_change_province_name, 3) \
462EFFECT_BYTECODE_ELEMENT(0x01B6, change_terrain_pop, 1) \
463EFFECT_BYTECODE_ELEMENT(0x01B7, change_terrain_province, 1) \
464EFFECT_BYTECODE_ELEMENT(0x01B8, masquerade_as_nation_this, 0) \
465EFFECT_BYTECODE_ELEMENT(0x01B9, masquerade_as_nation_from, 0) \
466EFFECT_BYTECODE_ELEMENT(0x01BA, religion_province, 1) \
467EFFECT_BYTECODE_ELEMENT(0x01BB, religion_pop, 1) \
468EFFECT_BYTECODE_ELEMENT(0x01BC, reduce_pop_abs, 2) \
469EFFECT_BYTECODE_ELEMENT(0x01BD, set_culture_pop, 1) \
470
471#define EFFECT_BYTECODE_ELEMENT(code, name, arg) constexpr inline uint16_t name = code;
473#undef EFFECT_BYTECODE_ELEMENT
474
475// invalid
476/* This value must be changed if more effects are added. */
477constexpr inline uint16_t first_scope_code = 0x01BE;
478
479// scopes
480constexpr inline uint16_t generic_scope = first_scope_code + 0x0000; // default grouping of effects (or hidden_tooltip)
481constexpr inline uint16_t x_neighbor_province_scope = first_scope_code + 0x0001;
482constexpr inline uint16_t x_neighbor_country_scope = first_scope_code + 0x0002;
483constexpr inline uint16_t x_country_scope = first_scope_code + 0x0003;
484constexpr inline uint16_t x_country_scope_nation = first_scope_code + 0x0004;
485constexpr inline uint16_t x_empty_neighbor_province_scope = first_scope_code + 0x0005;
486constexpr inline uint16_t x_greater_power_scope = first_scope_code + 0x0006;
487constexpr inline uint16_t poor_strata_scope_nation = first_scope_code + 0x0007;
488constexpr inline uint16_t poor_strata_scope_state = first_scope_code + 0x0008;
489constexpr inline uint16_t poor_strata_scope_province = first_scope_code + 0x0009;
490constexpr inline uint16_t middle_strata_scope_nation = first_scope_code + 0x000A;
491constexpr inline uint16_t middle_strata_scope_state = first_scope_code + 0x000B;
492constexpr inline uint16_t middle_strata_scope_province = first_scope_code + 0x000C;
493constexpr inline uint16_t rich_strata_scope_nation = first_scope_code + 0x000D;
494constexpr inline uint16_t rich_strata_scope_state = first_scope_code + 0x000E;
495constexpr inline uint16_t rich_strata_scope_province = first_scope_code + 0x000F;
496constexpr inline uint16_t x_pop_scope_nation = first_scope_code + 0x0010;
497constexpr inline uint16_t x_pop_scope_state = first_scope_code + 0x0011;
498constexpr inline uint16_t x_pop_scope_province = first_scope_code + 0x0012;
499constexpr inline uint16_t x_owned_scope_nation = first_scope_code + 0x0013;
500constexpr inline uint16_t x_owned_scope_state = first_scope_code + 0x0014;
501constexpr inline uint16_t x_core_scope = first_scope_code + 0x0015;
502constexpr inline uint16_t x_state_scope = first_scope_code + 0x0016;
503constexpr inline uint16_t random_list_scope = first_scope_code + 0x0017;
504constexpr inline uint16_t random_scope = first_scope_code + 0x0018;
505constexpr inline uint16_t owner_scope_state = first_scope_code + 0x0019;
506constexpr inline uint16_t owner_scope_province = first_scope_code + 0x001A;
507constexpr inline uint16_t controller_scope = first_scope_code + 0x001B;
508constexpr inline uint16_t location_scope = first_scope_code + 0x001C;
509constexpr inline uint16_t country_scope_pop = first_scope_code + 0x001D;
510constexpr inline uint16_t country_scope_state = first_scope_code + 0x001E;
511constexpr inline uint16_t capital_scope = first_scope_code + 0x001F;
512constexpr inline uint16_t this_scope_nation = first_scope_code + 0x0020;
513constexpr inline uint16_t this_scope_state = first_scope_code + 0x0021;
514constexpr inline uint16_t this_scope_province = first_scope_code + 0x0022;
515constexpr inline uint16_t this_scope_pop = first_scope_code + 0x0023;
516constexpr inline uint16_t from_scope_nation = first_scope_code + 0x0024;
517constexpr inline uint16_t from_scope_state = first_scope_code + 0x0025;
518constexpr inline uint16_t from_scope_province = first_scope_code + 0x0026;
519constexpr inline uint16_t from_scope_pop = first_scope_code + 0x0027;
520constexpr inline uint16_t sea_zone_scope = first_scope_code + 0x0028;
521constexpr inline uint16_t cultural_union_scope = first_scope_code + 0x0029;
522constexpr inline uint16_t overlord_scope = first_scope_code + 0x002A;
523constexpr inline uint16_t sphere_owner_scope = first_scope_code + 0x002B;
524constexpr inline uint16_t independence_scope = first_scope_code + 0x002C;
525constexpr inline uint16_t flashpoint_tag_scope = first_scope_code + 0x002D;
526constexpr inline uint16_t crisis_state_scope = first_scope_code + 0x002E;
527constexpr inline uint16_t state_scope_pop = first_scope_code + 0x002F;
528constexpr inline uint16_t state_scope_province = first_scope_code + 0x0030;
529constexpr inline uint16_t x_substate_scope = first_scope_code + 0x0031;
530constexpr inline uint16_t capital_scope_province = first_scope_code + 0x0032;
531constexpr inline uint16_t x_core_scope_province = first_scope_code + 0x0033;
532// variable named scopes
533constexpr inline uint16_t tag_scope = first_scope_code + 0x0034;
534constexpr inline uint16_t integer_scope = first_scope_code + 0x0035;
535constexpr inline uint16_t pop_type_scope_nation = first_scope_code + 0x0036;
536constexpr inline uint16_t pop_type_scope_state = first_scope_code + 0x0037;
537constexpr inline uint16_t pop_type_scope_province = first_scope_code + 0x0038;
538constexpr inline uint16_t region_proper_scope = first_scope_code + 0x0039;
539constexpr inline uint16_t region_scope = first_scope_code + 0x003A;
540constexpr inline uint16_t if_scope = first_scope_code + 0x003B;
541constexpr inline uint16_t else_if_scope = first_scope_code + 0x003C;
542constexpr inline uint16_t x_event_country_scope = first_scope_code + 0x003D;
543constexpr inline uint16_t x_decision_country_scope = first_scope_code + 0x003E;
544constexpr inline uint16_t x_event_country_scope_nation = first_scope_code + 0x003F;
545constexpr inline uint16_t x_decision_country_scope_nation = first_scope_code + 0x0040;
546constexpr inline uint16_t from_bounce_scope = first_scope_code + 0x0041;
547constexpr inline uint16_t this_bounce_scope = first_scope_code + 0x0042;
548constexpr inline uint16_t random_by_modifier_scope = first_scope_code + 0x0043;
549constexpr inline uint16_t x_neighbor_province_scope_nation = first_scope_code + 0x0044;
550constexpr inline uint16_t x_empty_neighbor_province_scope_nation = first_scope_code + 0x0045;
551/* All scopes must be added before first_invalid_code*/
552constexpr inline uint16_t first_invalid_code = first_scope_code + 0x0046;
553
554
555inline constexpr int8_t data_sizes[] = {
556 0, // none
557#define EFFECT_BYTECODE_ELEMENT(code, name, arg) arg,
559#undef EFFECT_BYTECODE_ELEMENT
560};
561static_assert(sizeof(data_sizes) == first_scope_code);
562
563inline int32_t get_effect_non_scope_payload_size(uint16_t const* data) {
565 return effect::data_sizes[data[0] & effect::code_mask];
566}
567inline int32_t get_effect_scope_payload_size(uint16_t const* data) {
568 return data[1];
569}
570inline int32_t get_generic_effect_payload_size(uint16_t const* data) {
573}
574inline int32_t effect_scope_data_payload(uint16_t code) {
575 auto const masked_code = code & effect::code_mask;
576 if((masked_code == effect::tag_scope) || (masked_code == effect::integer_scope) ||
577 (masked_code == effect::pop_type_scope_nation) || (masked_code == effect::pop_type_scope_state) ||
578 (masked_code == effect::pop_type_scope_province) || (masked_code == effect::region_scope) ||
579 (masked_code == effect::region_proper_scope) || (masked_code == effect::random_scope) ||
580 (masked_code == effect::random_by_modifier_scope))
581 return 1 + ((code & effect::scope_has_limit) != 0);
582 return 0 + ((code & effect::scope_has_limit) != 0);
583}
584inline bool effect_scope_has_single_member(uint16_t const* source) { // precondition: scope known to not be empty
585 auto const data_offset = 2 + effect_scope_data_payload(source[0]);
586 return get_effect_scope_payload_size(source) == data_offset + get_generic_effect_payload_size(source + data_offset);
587}
588
589template<typename T>
590uint32_t recurse_over_effects(uint16_t* source, T const& f) {
591 f(source);
593 if((source[0] & effect::code_mask) >= effect::first_scope_code) {
594 auto const source_size = 1 + effect::get_effect_scope_payload_size(source);
595 if((source[0] & effect::code_mask) == effect::random_list_scope) {
596 auto sub_units_start = source + 3; // [code] + [payload size] + [chances total] + [first sub effect chance]
597 while(sub_units_start < source + source_size) {
598 sub_units_start += 1 + recurse_over_effects(sub_units_start + 1, f); // each member preceeded by uint16_t
599 }
600 } else {
601 auto sub_units_start = source + 2 + effect::effect_scope_data_payload(source[0]);
602 while(sub_units_start < source + source_size) {
603 sub_units_start += recurse_over_effects(sub_units_start, f);
604 }
605 }
606 return source_size;
607 } else {
609 }
610}
611
612} // namespace effect
613
614//
615// TRIGGERS
616//
617
618namespace trigger {
619// flags
620constexpr inline uint16_t is_disjunctive_scope = 0x4000;
621constexpr inline uint16_t is_existence_scope = 0x2000;
622
623constexpr inline uint16_t association_mask = 0x7000;
624constexpr inline uint16_t association_eq = 0x1000;
625constexpr inline uint16_t association_gt = 0x2000;
626constexpr inline uint16_t association_ge = 0x3000;
627constexpr inline uint16_t association_lt = 0x4000;
628constexpr inline uint16_t association_le = 0x5000;
629constexpr inline uint16_t association_ne = 0x6000;
630
631constexpr inline uint16_t no_payload = 0x0800;
632constexpr inline uint16_t code_mask = 0x07FF;
633
634// non scopes
635#define TRIGGER_BYTECODE_LIST \
636TRIGGER_BYTECODE_ELEMENT(0x0001, year, 1) \
637TRIGGER_BYTECODE_ELEMENT(0x0002, month, 1) \
638TRIGGER_BYTECODE_ELEMENT(0x0003, port, 0) \
639TRIGGER_BYTECODE_ELEMENT(0x0004, rank, 1) \
640TRIGGER_BYTECODE_ELEMENT(0x0005, technology, 1) \
641TRIGGER_BYTECODE_ELEMENT(0x0006, strata_rich, 0) \
642TRIGGER_BYTECODE_ELEMENT(0x0007, life_rating_province, 1) \
643TRIGGER_BYTECODE_ELEMENT(0x0008, life_rating_state, 1) \
644TRIGGER_BYTECODE_ELEMENT(0x0009, has_empty_adjacent_state_province, 0) \
645TRIGGER_BYTECODE_ELEMENT(0x000A, has_empty_adjacent_state_state, 0) \
646TRIGGER_BYTECODE_ELEMENT(0x000B, state_id_province, 1) \
647TRIGGER_BYTECODE_ELEMENT(0x000C, state_id_state, 1) \
648TRIGGER_BYTECODE_ELEMENT(0x000D, cash_reserves, 2) \
649TRIGGER_BYTECODE_ELEMENT(0x000E, unemployment_nation, 2) \
650TRIGGER_BYTECODE_ELEMENT(0x000F, unemployment_state, 2) \
651TRIGGER_BYTECODE_ELEMENT(0x0010, unemployment_province, 2) \
652TRIGGER_BYTECODE_ELEMENT(0x0011, unemployment_pop, 2) \
653TRIGGER_BYTECODE_ELEMENT(0x0012, is_slave_nation, 0) \
654TRIGGER_BYTECODE_ELEMENT(0x0013, is_slave_state, 0) \
655TRIGGER_BYTECODE_ELEMENT(0x0014, is_slave_province, 0) \
656TRIGGER_BYTECODE_ELEMENT(0x0015, is_slave_pop, 0) \
657TRIGGER_BYTECODE_ELEMENT(0x0016, is_independant, 0) \
658TRIGGER_BYTECODE_ELEMENT(0x0017, has_national_minority_province, 0) \
659TRIGGER_BYTECODE_ELEMENT(0x0018, has_national_minority_state, 0) \
660TRIGGER_BYTECODE_ELEMENT(0x0019, has_national_minority_nation, 0) \
661TRIGGER_BYTECODE_ELEMENT(0x001A, government_nation, 1) \
662TRIGGER_BYTECODE_ELEMENT(0x001B, government_pop, 1) \
663TRIGGER_BYTECODE_ELEMENT(0x001C, capital, 1) \
664TRIGGER_BYTECODE_ELEMENT(0x001D, tech_school, 1) \
665TRIGGER_BYTECODE_ELEMENT(0x001E, primary_culture, 1) \
666TRIGGER_BYTECODE_ELEMENT(0x001F, accepted_culture, 1) \
667TRIGGER_BYTECODE_ELEMENT(0x0020, culture_pop, 1) \
668TRIGGER_BYTECODE_ELEMENT(0x0021, culture_state, 1) \
669TRIGGER_BYTECODE_ELEMENT(0x0022, culture_province, 1) \
670TRIGGER_BYTECODE_ELEMENT(0x0023, culture_nation, 1) \
671TRIGGER_BYTECODE_ELEMENT(0x0024, culture_pop_reb, 0) \
672TRIGGER_BYTECODE_ELEMENT(0x0025, culture_state_reb, 0) \
673TRIGGER_BYTECODE_ELEMENT(0x0026, culture_province_reb, 0) \
674TRIGGER_BYTECODE_ELEMENT(0x0027, culture_nation_reb, 0) \
675TRIGGER_BYTECODE_ELEMENT(0x0028, culture_from_nation, 0) \
676TRIGGER_BYTECODE_ELEMENT(0x0029, culture_this_nation, 0) \
677TRIGGER_BYTECODE_ELEMENT(0x002A, culture_this_state, 0) \
678TRIGGER_BYTECODE_ELEMENT(0x002B, culture_this_pop, 0) \
679TRIGGER_BYTECODE_ELEMENT(0x002C, culture_this_province, 0) \
680TRIGGER_BYTECODE_ELEMENT(0x002D, culture_group_nation, 1) \
681TRIGGER_BYTECODE_ELEMENT(0x002E, culture_group_pop, 1) \
682TRIGGER_BYTECODE_ELEMENT(0x002F, culture_group_reb_nation, 0) \
683TRIGGER_BYTECODE_ELEMENT(0x0030, culture_group_reb_pop, 0) \
684TRIGGER_BYTECODE_ELEMENT(0x0031, culture_group_nation_from_nation, 0) \
685TRIGGER_BYTECODE_ELEMENT(0x0032, culture_group_pop_from_nation, 0) \
686TRIGGER_BYTECODE_ELEMENT(0x0033, culture_group_nation_this_nation, 0) \
687TRIGGER_BYTECODE_ELEMENT(0x0034, culture_group_pop_this_nation, 0) \
688TRIGGER_BYTECODE_ELEMENT(0x0035, culture_group_nation_this_province, 0) \
689TRIGGER_BYTECODE_ELEMENT(0x0036, culture_group_pop_this_province, 0) \
690TRIGGER_BYTECODE_ELEMENT(0x0037, culture_group_nation_this_state, 0) \
691TRIGGER_BYTECODE_ELEMENT(0x0038, culture_group_pop_this_state, 0) \
692TRIGGER_BYTECODE_ELEMENT(0x0039, culture_group_nation_this_pop, 0) \
693TRIGGER_BYTECODE_ELEMENT(0x003A, culture_group_pop_this_pop, 0) \
694TRIGGER_BYTECODE_ELEMENT(0x003B, religion, 1) \
695TRIGGER_BYTECODE_ELEMENT(0x003C, religion_reb, 0) \
696TRIGGER_BYTECODE_ELEMENT(0x003D, religion_from_nation, 0) \
697TRIGGER_BYTECODE_ELEMENT(0x003E, religion_this_nation, 0) \
698TRIGGER_BYTECODE_ELEMENT(0x003F, religion_this_state, 0) \
699TRIGGER_BYTECODE_ELEMENT(0x0040, religion_this_province, 0) \
700TRIGGER_BYTECODE_ELEMENT(0x0041, religion_this_pop, 0) \
701TRIGGER_BYTECODE_ELEMENT(0x0042, terrain_province, 1) \
702TRIGGER_BYTECODE_ELEMENT(0x0043, terrain_pop, 1) \
703TRIGGER_BYTECODE_ELEMENT(0x0044, trade_goods, 1) \
704TRIGGER_BYTECODE_ELEMENT(0x0045, is_secondary_power_pop, 0) \
705TRIGGER_BYTECODE_ELEMENT(0x0046, is_secondary_power_nation, 0) \
706TRIGGER_BYTECODE_ELEMENT(0x0047, has_faction_nation, 0) \
707TRIGGER_BYTECODE_ELEMENT(0x0048, has_faction_pop, 1) \
708TRIGGER_BYTECODE_ELEMENT(0x0049, has_unclaimed_cores, 0) \
709TRIGGER_BYTECODE_ELEMENT(0x004A, is_cultural_union_bool, 0) \
710TRIGGER_BYTECODE_ELEMENT(0x004B, is_cultural_union_this_self_pop, 0) \
711TRIGGER_BYTECODE_ELEMENT(0x004C, is_cultural_union_this_pop, 0) \
712TRIGGER_BYTECODE_ELEMENT(0x004D, is_cultural_union_this_state, 0) \
713TRIGGER_BYTECODE_ELEMENT(0x004E, is_cultural_union_this_province, 0) \
714TRIGGER_BYTECODE_ELEMENT(0x004F, is_cultural_union_this_nation, 0) \
715TRIGGER_BYTECODE_ELEMENT(0x0050, is_cultural_union_this_rebel, 0) \
716TRIGGER_BYTECODE_ELEMENT(0x0051, is_cultural_union_tag_nation, 1) \
717TRIGGER_BYTECODE_ELEMENT(0x0052, is_cultural_union_tag_this_pop, 1) \
718TRIGGER_BYTECODE_ELEMENT(0x0053, is_cultural_union_tag_this_state, 1) \
719TRIGGER_BYTECODE_ELEMENT(0x0054, is_cultural_union_tag_this_province, 1) \
720TRIGGER_BYTECODE_ELEMENT(0x0055, is_cultural_union_tag_this_nation, 1) \
721TRIGGER_BYTECODE_ELEMENT(0x0056, can_build_factory_pop, 0) \
722TRIGGER_BYTECODE_ELEMENT(0x0057, war_pop, 0) \
723TRIGGER_BYTECODE_ELEMENT(0x0058, war_nation, 0) \
724TRIGGER_BYTECODE_ELEMENT(0x0059, war_exhaustion_nation, 2) \
725TRIGGER_BYTECODE_ELEMENT(0x005A, blockade, 2) \
726TRIGGER_BYTECODE_ELEMENT(0x005B, owns, 1) \
727TRIGGER_BYTECODE_ELEMENT(0x005C, controls, 1) \
728TRIGGER_BYTECODE_ELEMENT(0x005D, is_core_integer, 1) \
729TRIGGER_BYTECODE_ELEMENT(0x005E, is_core_this_nation, 0) \
730TRIGGER_BYTECODE_ELEMENT(0x005F, is_core_this_state, 0) \
731TRIGGER_BYTECODE_ELEMENT(0x0060, is_core_this_province, 0) \
732TRIGGER_BYTECODE_ELEMENT(0x0061, is_core_this_pop, 0) \
733TRIGGER_BYTECODE_ELEMENT(0x0062, is_core_from_nation, 0) \
734TRIGGER_BYTECODE_ELEMENT(0x0063, is_core_reb, 0) \
735TRIGGER_BYTECODE_ELEMENT(0x0064, is_core_tag, 1) \
736TRIGGER_BYTECODE_ELEMENT(0x0065, num_of_revolts, 1) \
737TRIGGER_BYTECODE_ELEMENT(0x0066, revolt_percentage, 2) \
738TRIGGER_BYTECODE_ELEMENT(0x0067, num_of_cities_int, 1) \
739TRIGGER_BYTECODE_ELEMENT(0x0068, num_of_cities_from_nation, 0) \
740TRIGGER_BYTECODE_ELEMENT(0x0069, num_of_cities_this_nation, 0) \
741TRIGGER_BYTECODE_ELEMENT(0x006A, num_of_cities_this_state, 0) \
742TRIGGER_BYTECODE_ELEMENT(0x006B, num_of_cities_this_province, 0) \
743TRIGGER_BYTECODE_ELEMENT(0x006C, num_of_cities_this_pop, 0) \
744TRIGGER_BYTECODE_ELEMENT(0x006D, num_of_ports, 1) \
745TRIGGER_BYTECODE_ELEMENT(0x006E, num_of_allies, 1) \
746TRIGGER_BYTECODE_ELEMENT(0x006F, num_of_vassals, 1) \
747TRIGGER_BYTECODE_ELEMENT(0x0070, owned_by_tag, 1) \
748TRIGGER_BYTECODE_ELEMENT(0x0071, owned_by_from_nation, 0) \
749TRIGGER_BYTECODE_ELEMENT(0x0072, owned_by_this_nation, 0) \
750TRIGGER_BYTECODE_ELEMENT(0x0073, owned_by_this_province, 0) \
751TRIGGER_BYTECODE_ELEMENT(0x0074, owned_by_this_state, 0) \
752TRIGGER_BYTECODE_ELEMENT(0x0075, owned_by_this_pop, 0) \
753TRIGGER_BYTECODE_ELEMENT(0x0076, exists_bool, 0) \
754TRIGGER_BYTECODE_ELEMENT(0x0077, exists_tag, 1) \
755TRIGGER_BYTECODE_ELEMENT(0x0078, has_country_flag, 1) \
756TRIGGER_BYTECODE_ELEMENT(0x0079, continent_nation, 1) \
757TRIGGER_BYTECODE_ELEMENT(0x007A, continent_state, 1) \
758TRIGGER_BYTECODE_ELEMENT(0x007B, continent_province, 1) \
759TRIGGER_BYTECODE_ELEMENT(0x007C, continent_pop, 1) \
760TRIGGER_BYTECODE_ELEMENT(0x007D, continent_nation_this, 0) \
761TRIGGER_BYTECODE_ELEMENT(0x007E, continent_state_this, 0) \
762TRIGGER_BYTECODE_ELEMENT(0x007F, continent_province_this, 0) \
763TRIGGER_BYTECODE_ELEMENT(0x0080, continent_pop_this, 0) \
764TRIGGER_BYTECODE_ELEMENT(0x0081, continent_nation_from, 0) \
765TRIGGER_BYTECODE_ELEMENT(0x0082, continent_state_from, 0) \
766TRIGGER_BYTECODE_ELEMENT(0x0083, continent_province_from, 0) \
767TRIGGER_BYTECODE_ELEMENT(0x0084, continent_pop_from, 0) \
768TRIGGER_BYTECODE_ELEMENT(0x0085, casus_belli_tag, 1) \
769TRIGGER_BYTECODE_ELEMENT(0x0086, casus_belli_from, 0) \
770TRIGGER_BYTECODE_ELEMENT(0x0087, casus_belli_this_nation, 0) \
771TRIGGER_BYTECODE_ELEMENT(0x0088, casus_belli_this_state, 0) \
772TRIGGER_BYTECODE_ELEMENT(0x0089, casus_belli_this_province, 0) \
773TRIGGER_BYTECODE_ELEMENT(0x008A, casus_belli_this_pop, 0) \
774TRIGGER_BYTECODE_ELEMENT(0x008B, military_access_tag, 1) \
775TRIGGER_BYTECODE_ELEMENT(0x008C, military_access_from, 0) \
776TRIGGER_BYTECODE_ELEMENT(0x008D, military_access_this_nation, 0) \
777TRIGGER_BYTECODE_ELEMENT(0x008E, military_access_this_state, 0) \
778TRIGGER_BYTECODE_ELEMENT(0x008F, military_access_this_province, 0) \
779TRIGGER_BYTECODE_ELEMENT(0x0090, military_access_this_pop, 0) \
780TRIGGER_BYTECODE_ELEMENT(0x0091, prestige_value, 2) \
781TRIGGER_BYTECODE_ELEMENT(0x0092, prestige_from, 0) \
782TRIGGER_BYTECODE_ELEMENT(0x0093, prestige_this_nation, 0) \
783TRIGGER_BYTECODE_ELEMENT(0x0094, prestige_this_state, 0) \
784TRIGGER_BYTECODE_ELEMENT(0x0095, prestige_this_province, 0) \
785TRIGGER_BYTECODE_ELEMENT(0x0096, prestige_this_pop, 0) \
786TRIGGER_BYTECODE_ELEMENT(0x0097, badboy, 2) \
787TRIGGER_BYTECODE_ELEMENT(0x0098, has_building_state, 1) \
788TRIGGER_BYTECODE_ELEMENT(0x0099, has_building_fort, 0) \
789TRIGGER_BYTECODE_ELEMENT(0x009A, has_building_railroad, 0) \
790TRIGGER_BYTECODE_ELEMENT(0x009B, has_building_naval_base, 0) \
791TRIGGER_BYTECODE_ELEMENT(0x009C, empty, 0) \
792TRIGGER_BYTECODE_ELEMENT(0x009D, is_blockaded, 0) \
793TRIGGER_BYTECODE_ELEMENT(0x009E, has_country_modifier, 1) \
794TRIGGER_BYTECODE_ELEMENT(0x009F, has_province_modifier, 1) \
795TRIGGER_BYTECODE_ELEMENT(0x00A0, region, 1) \
796TRIGGER_BYTECODE_ELEMENT(0x00A1, tag_tag, 1) \
797TRIGGER_BYTECODE_ELEMENT(0x00A2, tag_this_nation, 0) \
798TRIGGER_BYTECODE_ELEMENT(0x00A3, tag_this_province, 0) \
799TRIGGER_BYTECODE_ELEMENT(0x00A4, tag_from_nation, 0) \
800TRIGGER_BYTECODE_ELEMENT(0x00A5, tag_from_province, 0) \
801TRIGGER_BYTECODE_ELEMENT(0x00A6, neighbour_tag, 1) \
802TRIGGER_BYTECODE_ELEMENT(0x00A7, neighbour_this, 0) \
803TRIGGER_BYTECODE_ELEMENT(0x00A8, neighbour_from, 0) \
804TRIGGER_BYTECODE_ELEMENT(0x00A9, units_in_province_value, 1) \
805TRIGGER_BYTECODE_ELEMENT(0x00AA, units_in_province_from, 0) \
806TRIGGER_BYTECODE_ELEMENT(0x00AB, units_in_province_this_nation, 0) \
807TRIGGER_BYTECODE_ELEMENT(0x00AC, units_in_province_this_province, 0) \
808TRIGGER_BYTECODE_ELEMENT(0x00AD, units_in_province_this_state, 0) \
809TRIGGER_BYTECODE_ELEMENT(0x00AE, units_in_province_this_pop, 0) \
810TRIGGER_BYTECODE_ELEMENT(0x00AF, war_with_tag, 1) \
811TRIGGER_BYTECODE_ELEMENT(0x00B0, war_with_from, 0) \
812TRIGGER_BYTECODE_ELEMENT(0x00B1, war_with_this_nation, 0) \
813TRIGGER_BYTECODE_ELEMENT(0x00B2, war_with_this_province, 0) \
814TRIGGER_BYTECODE_ELEMENT(0x00B3, war_with_this_state, 0) \
815TRIGGER_BYTECODE_ELEMENT(0x00B4, war_with_this_pop, 0) \
816TRIGGER_BYTECODE_ELEMENT(0x00B5, unit_in_battle, 0) \
817TRIGGER_BYTECODE_ELEMENT(0x00B6, total_amount_of_divisions, 1) \
818TRIGGER_BYTECODE_ELEMENT(0x00B7, money, 2) \
819TRIGGER_BYTECODE_ELEMENT(0x00B8, lost_national, 2) \
820TRIGGER_BYTECODE_ELEMENT(0x00B9, is_vassal, 0) \
821TRIGGER_BYTECODE_ELEMENT(0x00BA, ruling_party_ideology_pop, 1) \
822TRIGGER_BYTECODE_ELEMENT(0x00BB, ruling_party_ideology_nation, 1) \
823TRIGGER_BYTECODE_ELEMENT(0x00BC, ruling_party, 2) \
824TRIGGER_BYTECODE_ELEMENT(0x00BD, is_ideology_enabled, 1) \
825TRIGGER_BYTECODE_ELEMENT(0x00BE, political_reform_want_nation, 2) \
826TRIGGER_BYTECODE_ELEMENT(0x00BF, political_reform_want_pop, 2) \
827TRIGGER_BYTECODE_ELEMENT(0x00C0, social_reform_want_nation, 2) \
828TRIGGER_BYTECODE_ELEMENT(0x00C1, social_reform_want_pop, 2) \
829TRIGGER_BYTECODE_ELEMENT(0x00C2, total_amount_of_ships, 1) \
830TRIGGER_BYTECODE_ELEMENT(0x00C3, plurality, 2) \
831TRIGGER_BYTECODE_ELEMENT(0x00C4, corruption, 2) \
832TRIGGER_BYTECODE_ELEMENT(0x00C5, is_state_religion_pop, 0) \
833TRIGGER_BYTECODE_ELEMENT(0x00C6, is_state_religion_province, 0) \
834TRIGGER_BYTECODE_ELEMENT(0x00C7, is_state_religion_state, 0) \
835TRIGGER_BYTECODE_ELEMENT(0x00C8, is_primary_culture_pop, 0) \
836TRIGGER_BYTECODE_ELEMENT(0x00C9, is_primary_culture_province, 0) \
837TRIGGER_BYTECODE_ELEMENT(0x00CA, is_primary_culture_state, 0) \
838TRIGGER_BYTECODE_ELEMENT(0x00CB, is_primary_culture_nation_this_pop, 0) \
839TRIGGER_BYTECODE_ELEMENT(0x00CC, is_primary_culture_nation_this_nation, 0) \
840TRIGGER_BYTECODE_ELEMENT(0x00CD, is_primary_culture_nation_this_state, 0) \
841TRIGGER_BYTECODE_ELEMENT(0x00CE, is_primary_culture_nation_this_province, 0) \
842TRIGGER_BYTECODE_ELEMENT(0x00CF, is_primary_culture_state_this_pop, 0) \
843TRIGGER_BYTECODE_ELEMENT(0x00D0, is_primary_culture_state_this_nation, 0) \
844TRIGGER_BYTECODE_ELEMENT(0x00D1, is_primary_culture_state_this_state, 0) \
845TRIGGER_BYTECODE_ELEMENT(0x00D2, is_primary_culture_state_this_province, 0) \
846TRIGGER_BYTECODE_ELEMENT(0x00D3, is_primary_culture_province_this_pop, 0) \
847TRIGGER_BYTECODE_ELEMENT(0x00D4, is_primary_culture_province_this_nation, 0) \
848TRIGGER_BYTECODE_ELEMENT(0x00D5, is_primary_culture_province_this_state, 0) \
849TRIGGER_BYTECODE_ELEMENT(0x00D6, is_primary_culture_province_this_province, 0) \
850TRIGGER_BYTECODE_ELEMENT(0x00D7, is_primary_culture_pop_this_pop, 0) \
851TRIGGER_BYTECODE_ELEMENT(0x00D8, is_primary_culture_pop_this_nation, 0) \
852TRIGGER_BYTECODE_ELEMENT(0x00D9, is_primary_culture_pop_this_state, 0) \
853TRIGGER_BYTECODE_ELEMENT(0x00DA, is_primary_culture_pop_this_province, 0) \
854TRIGGER_BYTECODE_ELEMENT(0x00DB, is_accepted_culture_pop, 0) \
855TRIGGER_BYTECODE_ELEMENT(0x00DC, is_accepted_culture_province, 0) \
856TRIGGER_BYTECODE_ELEMENT(0x00DD, is_accepted_culture_state, 0) \
857TRIGGER_BYTECODE_ELEMENT(0x00DE, is_coastal_province, 0) \
858TRIGGER_BYTECODE_ELEMENT(0x00DF, in_sphere_tag, 1) \
859TRIGGER_BYTECODE_ELEMENT(0x00E0, in_sphere_from, 0) \
860TRIGGER_BYTECODE_ELEMENT(0x00E1, in_sphere_this_nation, 0) \
861TRIGGER_BYTECODE_ELEMENT(0x00E2, in_sphere_this_province, 0) \
862TRIGGER_BYTECODE_ELEMENT(0x00E3, in_sphere_this_state, 0) \
863TRIGGER_BYTECODE_ELEMENT(0x00E4, in_sphere_this_pop, 0) \
864TRIGGER_BYTECODE_ELEMENT(0x00E5, produces_nation, 1) \
865TRIGGER_BYTECODE_ELEMENT(0x00E6, produces_state, 1) \
866TRIGGER_BYTECODE_ELEMENT(0x00E7, produces_province, 1) \
867TRIGGER_BYTECODE_ELEMENT(0x00E8, produces_pop, 1) \
868TRIGGER_BYTECODE_ELEMENT(0x00E9, average_militancy_nation, 2) \
869TRIGGER_BYTECODE_ELEMENT(0x00EA, average_militancy_state, 2) \
870TRIGGER_BYTECODE_ELEMENT(0x00EB, average_militancy_province, 2) \
871TRIGGER_BYTECODE_ELEMENT(0x00EC, average_consciousness_nation, 2) \
872TRIGGER_BYTECODE_ELEMENT(0x00ED, average_consciousness_state, 2) \
873TRIGGER_BYTECODE_ELEMENT(0x00EE, average_consciousness_province, 2) \
874TRIGGER_BYTECODE_ELEMENT(0x00EF, is_next_reform_nation, 1) \
875TRIGGER_BYTECODE_ELEMENT(0x00F0, is_next_reform_pop, 1) \
876TRIGGER_BYTECODE_ELEMENT(0x00F1, rebel_power_fraction, 2) \
877TRIGGER_BYTECODE_ELEMENT(0x00F2, recruited_percentage_nation, 2) \
878TRIGGER_BYTECODE_ELEMENT(0x00F3, recruited_percentage_pop, 2) \
879TRIGGER_BYTECODE_ELEMENT(0x00F4, has_culture_core, 0) \
880TRIGGER_BYTECODE_ELEMENT(0x00F5, nationalism, 1) \
881TRIGGER_BYTECODE_ELEMENT(0x00F6, is_overseas, 0) \
882TRIGGER_BYTECODE_ELEMENT(0x00F7, controlled_by_rebels, 0) \
883TRIGGER_BYTECODE_ELEMENT(0x00F8, controlled_by_tag, 1) \
884TRIGGER_BYTECODE_ELEMENT(0x00F9, controlled_by_from, 0) \
885TRIGGER_BYTECODE_ELEMENT(0x00FA, controlled_by_this_nation, 0) \
886TRIGGER_BYTECODE_ELEMENT(0x00FB, controlled_by_this_province, 0) \
887TRIGGER_BYTECODE_ELEMENT(0x00FC, controlled_by_this_state, 0) \
888TRIGGER_BYTECODE_ELEMENT(0x00FD, controlled_by_this_pop, 0) \
889TRIGGER_BYTECODE_ELEMENT(0x00FE, controlled_by_owner, 0) \
890TRIGGER_BYTECODE_ELEMENT(0x00FF, controlled_by_reb, 0) \
891TRIGGER_BYTECODE_ELEMENT(0x0100, is_canal_enabled, 1) \
892TRIGGER_BYTECODE_ELEMENT(0x0101, is_state_capital, 0) \
893TRIGGER_BYTECODE_ELEMENT(0x0102, truce_with_tag, 1) \
894TRIGGER_BYTECODE_ELEMENT(0x0103, truce_with_from, 0) \
895TRIGGER_BYTECODE_ELEMENT(0x0104, truce_with_this_nation, 0) \
896TRIGGER_BYTECODE_ELEMENT(0x0105, truce_with_this_province, 0) \
897TRIGGER_BYTECODE_ELEMENT(0x0106, truce_with_this_state, 0) \
898TRIGGER_BYTECODE_ELEMENT(0x0107, truce_with_this_pop, 0) \
899TRIGGER_BYTECODE_ELEMENT(0x0108, total_pops_nation, 2) \
900TRIGGER_BYTECODE_ELEMENT(0x0109, total_pops_state, 2) \
901TRIGGER_BYTECODE_ELEMENT(0x010A, total_pops_province, 2) \
902TRIGGER_BYTECODE_ELEMENT(0x010B, total_pops_pop, 2) \
903TRIGGER_BYTECODE_ELEMENT(0x010C, has_pop_type_nation, 1) \
904TRIGGER_BYTECODE_ELEMENT(0x010D, has_pop_type_state, 1) \
905TRIGGER_BYTECODE_ELEMENT(0x010E, has_pop_type_province, 1) \
906TRIGGER_BYTECODE_ELEMENT(0x010F, has_pop_type_pop, 1) \
907TRIGGER_BYTECODE_ELEMENT(0x0110, has_empty_adjacent_province, 0) \
908TRIGGER_BYTECODE_ELEMENT(0x0111, has_leader, 2) \
909TRIGGER_BYTECODE_ELEMENT(0x0112, ai, 0) \
910TRIGGER_BYTECODE_ELEMENT(0x0113, can_create_vassals, 0) \
911TRIGGER_BYTECODE_ELEMENT(0x0114, is_possible_vassal, 1) \
912TRIGGER_BYTECODE_ELEMENT(0x0115, province_id, 1) \
913TRIGGER_BYTECODE_ELEMENT(0x0116, vassal_of_tag, 1) \
914TRIGGER_BYTECODE_ELEMENT(0x0117, vassal_of_from, 0) \
915TRIGGER_BYTECODE_ELEMENT(0x0118, vassal_of_this_nation, 0) \
916TRIGGER_BYTECODE_ELEMENT(0x0119, vassal_of_this_province, 0) \
917TRIGGER_BYTECODE_ELEMENT(0x011A, vassal_of_this_state, 0) \
918TRIGGER_BYTECODE_ELEMENT(0x011B, vassal_of_this_pop, 0) \
919TRIGGER_BYTECODE_ELEMENT(0x011C, alliance_with_tag, 1) \
920TRIGGER_BYTECODE_ELEMENT(0x011D, alliance_with_from, 0) \
921TRIGGER_BYTECODE_ELEMENT(0x011E, alliance_with_this_nation, 0) \
922TRIGGER_BYTECODE_ELEMENT(0x011F, alliance_with_this_province, 0) \
923TRIGGER_BYTECODE_ELEMENT(0x0120, alliance_with_this_state, 0) \
924TRIGGER_BYTECODE_ELEMENT(0x0121, alliance_with_this_pop, 0) \
925TRIGGER_BYTECODE_ELEMENT(0x0122, has_recently_lost_war, 0) \
926TRIGGER_BYTECODE_ELEMENT(0x0123, is_mobilised, 0) \
927TRIGGER_BYTECODE_ELEMENT(0x0124, mobilisation_size, 2) \
928TRIGGER_BYTECODE_ELEMENT(0x0125, crime_higher_than_education_nation, 0) \
929TRIGGER_BYTECODE_ELEMENT(0x0126, crime_higher_than_education_state, 0) \
930TRIGGER_BYTECODE_ELEMENT(0x0127, crime_higher_than_education_province, 0) \
931TRIGGER_BYTECODE_ELEMENT(0x0128, crime_higher_than_education_pop, 0) \
932TRIGGER_BYTECODE_ELEMENT(0x0129, agree_with_ruling_party, 2) \
933TRIGGER_BYTECODE_ELEMENT(0x012A, is_colonial_state, 0) \
934TRIGGER_BYTECODE_ELEMENT(0x012B, is_colonial_province, 0) \
935TRIGGER_BYTECODE_ELEMENT(0x012C, has_factories_state, 0) \
936TRIGGER_BYTECODE_ELEMENT(0x012D, in_default_tag, 1) \
937TRIGGER_BYTECODE_ELEMENT(0x012E, in_default_from, 0) \
938TRIGGER_BYTECODE_ELEMENT(0x012F, in_default_this_nation, 0) \
939TRIGGER_BYTECODE_ELEMENT(0x0130, in_default_this_province, 0) \
940TRIGGER_BYTECODE_ELEMENT(0x0131, in_default_this_state, 0) \
941TRIGGER_BYTECODE_ELEMENT(0x0132, in_default_this_pop, 0) \
942TRIGGER_BYTECODE_ELEMENT(0x0133, total_num_of_ports, 1) \
943TRIGGER_BYTECODE_ELEMENT(0x0134, always, 0) \
944TRIGGER_BYTECODE_ELEMENT(0x0135, election, 0) \
945TRIGGER_BYTECODE_ELEMENT(0x0136, has_global_flag, 1) \
946TRIGGER_BYTECODE_ELEMENT(0x0137, is_capital, 0) \
947TRIGGER_BYTECODE_ELEMENT(0x0138, nationalvalue_nation, 1) \
948TRIGGER_BYTECODE_ELEMENT(0x0139, industrial_score_value, 1) \
949TRIGGER_BYTECODE_ELEMENT(0x013A, industrial_score_from_nation, 0) \
950TRIGGER_BYTECODE_ELEMENT(0x013B, industrial_score_this_nation, 0) \
951TRIGGER_BYTECODE_ELEMENT(0x013C, industrial_score_this_pop, 0) \
952TRIGGER_BYTECODE_ELEMENT(0x013D, industrial_score_this_state, 0) \
953TRIGGER_BYTECODE_ELEMENT(0x013E, industrial_score_this_province, 0) \
954TRIGGER_BYTECODE_ELEMENT(0x013F, military_score_value, 1) \
955TRIGGER_BYTECODE_ELEMENT(0x0140, military_score_from_nation, 0) \
956TRIGGER_BYTECODE_ELEMENT(0x0141, military_score_this_nation, 0) \
957TRIGGER_BYTECODE_ELEMENT(0x0142, military_score_this_pop, 0) \
958TRIGGER_BYTECODE_ELEMENT(0x0143, military_score_this_state, 0) \
959TRIGGER_BYTECODE_ELEMENT(0x0144, military_score_this_province, 0) \
960TRIGGER_BYTECODE_ELEMENT(0x0145, civilized_nation, 0) \
961TRIGGER_BYTECODE_ELEMENT(0x0146, civilized_pop, 0) \
962TRIGGER_BYTECODE_ELEMENT(0x0147, civilized_province, 0) \
963TRIGGER_BYTECODE_ELEMENT(0x0148, national_provinces_occupied, 2) \
964TRIGGER_BYTECODE_ELEMENT(0x0149, is_greater_power_nation, 0) \
965TRIGGER_BYTECODE_ELEMENT(0x014A, is_greater_power_pop, 0) \
966TRIGGER_BYTECODE_ELEMENT(0x014B, rich_tax, 1) \
967TRIGGER_BYTECODE_ELEMENT(0x014C, middle_tax, 1) \
968TRIGGER_BYTECODE_ELEMENT(0x014D, poor_tax, 1) \
969TRIGGER_BYTECODE_ELEMENT(0x014E, social_spending_nation, 1) \
970TRIGGER_BYTECODE_ELEMENT(0x014F, social_spending_pop, 1) \
971TRIGGER_BYTECODE_ELEMENT(0x0150, social_spending_province, 1) \
972TRIGGER_BYTECODE_ELEMENT(0x0151, colonial_nation, 0) \
973TRIGGER_BYTECODE_ELEMENT(0x0152, pop_majority_religion_nation, 1) \
974TRIGGER_BYTECODE_ELEMENT(0x0153, pop_majority_religion_state, 1) \
975TRIGGER_BYTECODE_ELEMENT(0x0154, pop_majority_religion_province, 1) \
976TRIGGER_BYTECODE_ELEMENT(0x0155, pop_majority_culture_nation, 1) \
977TRIGGER_BYTECODE_ELEMENT(0x0156, pop_majority_culture_state, 1) \
978TRIGGER_BYTECODE_ELEMENT(0x0157, pop_majority_culture_province, 1) \
979TRIGGER_BYTECODE_ELEMENT(0x0158, pop_majority_issue_nation, 2) \
980TRIGGER_BYTECODE_ELEMENT(0x0159, pop_majority_issue_state, 2) \
981TRIGGER_BYTECODE_ELEMENT(0x015A, pop_majority_issue_province, 2) \
982TRIGGER_BYTECODE_ELEMENT(0x015B, pop_majority_issue_pop, 2) \
983TRIGGER_BYTECODE_ELEMENT(0x015C, pop_majority_ideology_nation, 1) \
984TRIGGER_BYTECODE_ELEMENT(0x015D, pop_majority_ideology_state, 1) \
985TRIGGER_BYTECODE_ELEMENT(0x015E, pop_majority_ideology_province, 1) \
986TRIGGER_BYTECODE_ELEMENT(0x015F, pop_majority_ideology_pop, 1) \
987TRIGGER_BYTECODE_ELEMENT(0x0160, poor_strata_militancy_nation, 2) \
988TRIGGER_BYTECODE_ELEMENT(0x0161, poor_strata_militancy_state, 2) \
989TRIGGER_BYTECODE_ELEMENT(0x0162, poor_strata_militancy_province, 2) \
990TRIGGER_BYTECODE_ELEMENT(0x0163, poor_strata_militancy_pop, 2) \
991TRIGGER_BYTECODE_ELEMENT(0x0164, middle_strata_militancy_nation, 2) \
992TRIGGER_BYTECODE_ELEMENT(0x0165, middle_strata_militancy_state, 2) \
993TRIGGER_BYTECODE_ELEMENT(0x0166, middle_strata_militancy_province, 2) \
994TRIGGER_BYTECODE_ELEMENT(0x0167, middle_strata_militancy_pop, 2) \
995TRIGGER_BYTECODE_ELEMENT(0x0168, rich_strata_militancy_nation, 2) \
996TRIGGER_BYTECODE_ELEMENT(0x0169, rich_strata_militancy_state, 2) \
997TRIGGER_BYTECODE_ELEMENT(0x016A, rich_strata_militancy_province, 2) \
998TRIGGER_BYTECODE_ELEMENT(0x016B, rich_strata_militancy_pop, 2) \
999TRIGGER_BYTECODE_ELEMENT(0x016C, rich_tax_above_poor, 0) \
1000TRIGGER_BYTECODE_ELEMENT(0x016D, culture_has_union_tag_pop, 0) \
1001TRIGGER_BYTECODE_ELEMENT(0x016E, culture_has_union_tag_nation, 0) \
1002TRIGGER_BYTECODE_ELEMENT(0x016F, this_culture_union_tag, 1) \
1003TRIGGER_BYTECODE_ELEMENT(0x0170, this_culture_union_from, 0) \
1004TRIGGER_BYTECODE_ELEMENT(0x0171, this_culture_union_this_nation, 0) \
1005TRIGGER_BYTECODE_ELEMENT(0x0172, this_culture_union_this_province, 0) \
1006TRIGGER_BYTECODE_ELEMENT(0x0173, this_culture_union_this_state, 0) \
1007TRIGGER_BYTECODE_ELEMENT(0x0174, this_culture_union_this_pop, 0) \
1008TRIGGER_BYTECODE_ELEMENT(0x0175, this_culture_union_this_union_nation, 0) \
1009TRIGGER_BYTECODE_ELEMENT(0x0176, this_culture_union_this_union_province, 0) \
1010TRIGGER_BYTECODE_ELEMENT(0x0177, this_culture_union_this_union_state, 0) \
1011TRIGGER_BYTECODE_ELEMENT(0x0178, this_culture_union_this_union_pop, 0) \
1012TRIGGER_BYTECODE_ELEMENT(0x0179, minorities_nation, 0) \
1013TRIGGER_BYTECODE_ELEMENT(0x017A, minorities_state, 0) \
1014TRIGGER_BYTECODE_ELEMENT(0x017B, minorities_province, 0) \
1015TRIGGER_BYTECODE_ELEMENT(0x017C, revanchism_nation, 2) \
1016TRIGGER_BYTECODE_ELEMENT(0x017D, revanchism_pop, 2) \
1017TRIGGER_BYTECODE_ELEMENT(0x017E, has_crime, 1) \
1018TRIGGER_BYTECODE_ELEMENT(0x017F, num_of_substates, 1) \
1019TRIGGER_BYTECODE_ELEMENT(0x0180, num_of_vassals_no_substates, 1) \
1020TRIGGER_BYTECODE_ELEMENT(0x0181, brigades_compare_this, 2) \
1021TRIGGER_BYTECODE_ELEMENT(0x0182, brigades_compare_from, 2) \
1022TRIGGER_BYTECODE_ELEMENT(0x0183, constructing_cb_tag, 1) \
1023TRIGGER_BYTECODE_ELEMENT(0x0184, constructing_cb_from, 0) \
1024TRIGGER_BYTECODE_ELEMENT(0x0185, constructing_cb_this_nation, 0) \
1025TRIGGER_BYTECODE_ELEMENT(0x0186, constructing_cb_this_province, 0) \
1026TRIGGER_BYTECODE_ELEMENT(0x0187, constructing_cb_this_state, 0) \
1027TRIGGER_BYTECODE_ELEMENT(0x0188, constructing_cb_this_pop, 0) \
1028TRIGGER_BYTECODE_ELEMENT(0x0189, constructing_cb_discovered, 0) \
1029TRIGGER_BYTECODE_ELEMENT(0x018A, constructing_cb_progress, 2) \
1030TRIGGER_BYTECODE_ELEMENT(0x018B, civilization_progress, 2) \
1031TRIGGER_BYTECODE_ELEMENT(0x018C, constructing_cb_type, 1) \
1032TRIGGER_BYTECODE_ELEMENT(0x018D, is_our_vassal_tag, 1) \
1033TRIGGER_BYTECODE_ELEMENT(0x018E, is_our_vassal_from, 0) \
1034TRIGGER_BYTECODE_ELEMENT(0x018F, is_our_vassal_this_nation, 0) \
1035TRIGGER_BYTECODE_ELEMENT(0x0190, is_our_vassal_this_province, 0) \
1036TRIGGER_BYTECODE_ELEMENT(0x0191, is_our_vassal_this_state, 0) \
1037TRIGGER_BYTECODE_ELEMENT(0x0192, is_our_vassal_this_pop, 0) \
1038TRIGGER_BYTECODE_ELEMENT(0x0193, substate_of_tag, 1) \
1039TRIGGER_BYTECODE_ELEMENT(0x0194, substate_of_from, 0) \
1040TRIGGER_BYTECODE_ELEMENT(0x0195, substate_of_this_nation, 0) \
1041TRIGGER_BYTECODE_ELEMENT(0x0196, substate_of_this_province, 0) \
1042TRIGGER_BYTECODE_ELEMENT(0x0197, substate_of_this_state, 0) \
1043TRIGGER_BYTECODE_ELEMENT(0x0198, substate_of_this_pop, 0) \
1044TRIGGER_BYTECODE_ELEMENT(0x0199, is_substate, 0) \
1045TRIGGER_BYTECODE_ELEMENT(0x019A, great_wars_enabled, 0) \
1046TRIGGER_BYTECODE_ELEMENT(0x019B, can_nationalize, 0) \
1047TRIGGER_BYTECODE_ELEMENT(0x019C, part_of_sphere, 0) \
1048TRIGGER_BYTECODE_ELEMENT(0x019D, is_sphere_leader_of_tag, 1) \
1049TRIGGER_BYTECODE_ELEMENT(0x019E, is_sphere_leader_of_from, 0) \
1050TRIGGER_BYTECODE_ELEMENT(0x019F, is_sphere_leader_of_this_nation, 0) \
1051TRIGGER_BYTECODE_ELEMENT(0x01A0, is_sphere_leader_of_this_province, 0) \
1052TRIGGER_BYTECODE_ELEMENT(0x01A1, is_sphere_leader_of_this_state, 0) \
1053TRIGGER_BYTECODE_ELEMENT(0x01A2, is_sphere_leader_of_this_pop, 0) \
1054TRIGGER_BYTECODE_ELEMENT(0x01A3, number_of_states, 1) \
1055TRIGGER_BYTECODE_ELEMENT(0x01A4, war_score, 2) \
1056TRIGGER_BYTECODE_ELEMENT(0x01A5, is_releasable_vassal_from, 0) \
1057TRIGGER_BYTECODE_ELEMENT(0x01A6, is_releasable_vassal_other, 0) \
1058TRIGGER_BYTECODE_ELEMENT(0x01A7, has_recent_imigration, 1) \
1059TRIGGER_BYTECODE_ELEMENT(0x01A8, province_control_days, 1) \
1060TRIGGER_BYTECODE_ELEMENT(0x01A9, is_disarmed, 0) \
1061TRIGGER_BYTECODE_ELEMENT(0x01AA, big_producer, 1) \
1062TRIGGER_BYTECODE_ELEMENT(0x01AB, someone_can_form_union_tag_from, 0) \
1063TRIGGER_BYTECODE_ELEMENT(0x01AC, someone_can_form_union_tag_other, 0) \
1064TRIGGER_BYTECODE_ELEMENT(0x01AD, social_movement_strength, 2) \
1065TRIGGER_BYTECODE_ELEMENT(0x01AE, political_movement_strength, 2) \
1066TRIGGER_BYTECODE_ELEMENT(0x01AF, can_build_factory_in_capital_state, 1) \
1067TRIGGER_BYTECODE_ELEMENT(0x01B0, social_movement, 0) \
1068TRIGGER_BYTECODE_ELEMENT(0x01B1, political_movement, 0) \
1069TRIGGER_BYTECODE_ELEMENT(0x01B2, has_cultural_sphere, 0) \
1070TRIGGER_BYTECODE_ELEMENT(0x01B3, world_wars_enabled, 0) \
1071TRIGGER_BYTECODE_ELEMENT(0x01B4, has_pop_culture_pop_this_pop, 0) \
1072TRIGGER_BYTECODE_ELEMENT(0x01B5, has_pop_culture_state_this_pop, 0) \
1073TRIGGER_BYTECODE_ELEMENT(0x01B6, has_pop_culture_province_this_pop, 0) \
1074TRIGGER_BYTECODE_ELEMENT(0x01B7, has_pop_culture_nation_this_pop, 0) \
1075TRIGGER_BYTECODE_ELEMENT(0x01B8, has_pop_culture_pop, 1) \
1076TRIGGER_BYTECODE_ELEMENT(0x01B9, has_pop_culture_state, 1) \
1077TRIGGER_BYTECODE_ELEMENT(0x01BA, has_pop_culture_province, 1) \
1078TRIGGER_BYTECODE_ELEMENT(0x01BB, has_pop_culture_nation, 1) \
1079TRIGGER_BYTECODE_ELEMENT(0x01BC, has_pop_religion_pop_this_pop, 0) \
1080TRIGGER_BYTECODE_ELEMENT(0x01BD, has_pop_religion_state_this_pop, 0) \
1081TRIGGER_BYTECODE_ELEMENT(0x01BE, has_pop_religion_province_this_pop, 0) \
1082TRIGGER_BYTECODE_ELEMENT(0x01BF, has_pop_religion_nation_this_pop, 0) \
1083TRIGGER_BYTECODE_ELEMENT(0x01C0, has_pop_religion_pop, 1) \
1084TRIGGER_BYTECODE_ELEMENT(0x01C1, has_pop_religion_state, 1) \
1085TRIGGER_BYTECODE_ELEMENT(0x01C2, has_pop_religion_province, 1) \
1086TRIGGER_BYTECODE_ELEMENT(0x01C3, has_pop_religion_nation, 1) \
1087TRIGGER_BYTECODE_ELEMENT(0x01C4, life_needs, 2) \
1088TRIGGER_BYTECODE_ELEMENT(0x01C5, everyday_needs, 2) \
1089TRIGGER_BYTECODE_ELEMENT(0x01C6, luxury_needs, 2) \
1090TRIGGER_BYTECODE_ELEMENT(0x01C7, consciousness_pop, 2) \
1091TRIGGER_BYTECODE_ELEMENT(0x01C8, consciousness_province, 2) \
1092TRIGGER_BYTECODE_ELEMENT(0x01C9, consciousness_state, 2) \
1093TRIGGER_BYTECODE_ELEMENT(0x01CA, consciousness_nation, 2) \
1094TRIGGER_BYTECODE_ELEMENT(0x01CB, literacy_pop, 2) \
1095TRIGGER_BYTECODE_ELEMENT(0x01CC, literacy_province, 2) \
1096TRIGGER_BYTECODE_ELEMENT(0x01CD, literacy_state, 2) \
1097TRIGGER_BYTECODE_ELEMENT(0x01CE, literacy_nation, 2) \
1098TRIGGER_BYTECODE_ELEMENT(0x01CF, militancy_pop, 2) \
1099TRIGGER_BYTECODE_ELEMENT(0x01D0, militancy_province, 2) \
1100TRIGGER_BYTECODE_ELEMENT(0x01D1, militancy_state, 2) \
1101TRIGGER_BYTECODE_ELEMENT(0x01D2, militancy_nation, 2) \
1102/*FEB FIX*/\
1103TRIGGER_BYTECODE_ELEMENT(0x01D3, military_spending_pop, 1) \
1104TRIGGER_BYTECODE_ELEMENT(0x01D4, military_spending_province, 1) \
1105TRIGGER_BYTECODE_ELEMENT(0x01D5, military_spending_state, 1) \
1106TRIGGER_BYTECODE_ELEMENT(0x01D6, military_spending_nation, 1) \
1107TRIGGER_BYTECODE_ELEMENT(0x01D7, administration_spending_pop, 1) \
1108TRIGGER_BYTECODE_ELEMENT(0x01D8, administration_spending_province, 1) \
1109TRIGGER_BYTECODE_ELEMENT(0x01D9, administration_spending_state, 1) \
1110TRIGGER_BYTECODE_ELEMENT(0x01DA, administration_spending_nation, 1) \
1111TRIGGER_BYTECODE_ELEMENT(0x01DB, education_spending_pop, 1) \
1112TRIGGER_BYTECODE_ELEMENT(0x01DC, education_spending_province, 1) \
1113TRIGGER_BYTECODE_ELEMENT(0x01DD, education_spending_state, 1) \
1114TRIGGER_BYTECODE_ELEMENT(0x01DE, education_spending_nation, 1) \
1115TRIGGER_BYTECODE_ELEMENT(0x01DF, trade_goods_in_state_state, 1) \
1116TRIGGER_BYTECODE_ELEMENT(0x01E0, trade_goods_in_state_province, 1) \
1117TRIGGER_BYTECODE_ELEMENT(0x01E1, has_flashpoint, 0) \
1118TRIGGER_BYTECODE_ELEMENT(0x01E2, flashpoint_tension, 2) \
1119TRIGGER_BYTECODE_ELEMENT(0x01E3, crisis_exist, 0) \
1120TRIGGER_BYTECODE_ELEMENT(0x01E4, is_liberation_crisis, 0) \
1121TRIGGER_BYTECODE_ELEMENT(0x01E5, is_claim_crisis, 0) \
1122TRIGGER_BYTECODE_ELEMENT(0x01E6, crisis_temperature, 2) \
1123TRIGGER_BYTECODE_ELEMENT(0x01E7, involved_in_crisis_pop, 0) \
1124TRIGGER_BYTECODE_ELEMENT(0x01E8, involved_in_crisis_nation, 0) \
1125TRIGGER_BYTECODE_ELEMENT(0x01E9, rich_strata_life_needs_nation, 2) \
1126TRIGGER_BYTECODE_ELEMENT(0x01EA, rich_strata_life_needs_state, 2) \
1127TRIGGER_BYTECODE_ELEMENT(0x01EB, rich_strata_life_needs_province, 2) \
1128TRIGGER_BYTECODE_ELEMENT(0x01EC, rich_strata_life_needs_pop, 2) \
1129TRIGGER_BYTECODE_ELEMENT(0x01ED, rich_strata_everyday_needs_nation, 2) \
1130TRIGGER_BYTECODE_ELEMENT(0x01EE, rich_strata_everyday_needs_state, 2) \
1131TRIGGER_BYTECODE_ELEMENT(0x01EF, rich_strata_everyday_needs_province, 2) \
1132TRIGGER_BYTECODE_ELEMENT(0x01F0, rich_strata_everyday_needs_pop, 2) \
1133TRIGGER_BYTECODE_ELEMENT(0x01F1, rich_strata_luxury_needs_nation, 2) \
1134TRIGGER_BYTECODE_ELEMENT(0x01F2, rich_strata_luxury_needs_state, 2) \
1135TRIGGER_BYTECODE_ELEMENT(0x01F3, rich_strata_luxury_needs_province, 2) \
1136TRIGGER_BYTECODE_ELEMENT(0x01F4, rich_strata_luxury_needs_pop, 2) \
1137TRIGGER_BYTECODE_ELEMENT(0x01F5, middle_strata_life_needs_nation, 2) \
1138TRIGGER_BYTECODE_ELEMENT(0x01F6, middle_strata_life_needs_state, 2) \
1139TRIGGER_BYTECODE_ELEMENT(0x01F7, middle_strata_life_needs_province, 2) \
1140TRIGGER_BYTECODE_ELEMENT(0x01F8, middle_strata_life_needs_pop, 2) \
1141TRIGGER_BYTECODE_ELEMENT(0x01F9, middle_strata_everyday_needs_nation, 2) \
1142TRIGGER_BYTECODE_ELEMENT(0x01FA, middle_strata_everyday_needs_state, 2) \
1143TRIGGER_BYTECODE_ELEMENT(0x01FB, middle_strata_everyday_needs_province, 2) \
1144TRIGGER_BYTECODE_ELEMENT(0x01FC, middle_strata_everyday_needs_pop, 2) \
1145TRIGGER_BYTECODE_ELEMENT(0x01FD, middle_strata_luxury_needs_nation, 2) \
1146TRIGGER_BYTECODE_ELEMENT(0x01FE, middle_strata_luxury_needs_state, 2) \
1147TRIGGER_BYTECODE_ELEMENT(0x01FF, middle_strata_luxury_needs_province, 2) \
1148TRIGGER_BYTECODE_ELEMENT(0x0200, middle_strata_luxury_needs_pop, 2) \
1149TRIGGER_BYTECODE_ELEMENT(0x0201, poor_strata_life_needs_nation, 2) \
1150TRIGGER_BYTECODE_ELEMENT(0x0202, poor_strata_life_needs_state, 2) \
1151TRIGGER_BYTECODE_ELEMENT(0x0203, poor_strata_life_needs_province, 2) \
1152TRIGGER_BYTECODE_ELEMENT(0x0204, poor_strata_life_needs_pop, 2) \
1153TRIGGER_BYTECODE_ELEMENT(0x0205, poor_strata_everyday_needs_nation, 2) \
1154TRIGGER_BYTECODE_ELEMENT(0x0206, poor_strata_everyday_needs_state, 2) \
1155TRIGGER_BYTECODE_ELEMENT(0x0207, poor_strata_everyday_needs_province, 2) \
1156TRIGGER_BYTECODE_ELEMENT(0x0208, poor_strata_everyday_needs_pop, 2) \
1157TRIGGER_BYTECODE_ELEMENT(0x0209, poor_strata_luxury_needs_nation, 2) \
1158TRIGGER_BYTECODE_ELEMENT(0x020A, poor_strata_luxury_needs_state, 2) \
1159TRIGGER_BYTECODE_ELEMENT(0x020B, poor_strata_luxury_needs_province, 2) \
1160TRIGGER_BYTECODE_ELEMENT(0x020C, poor_strata_luxury_needs_pop, 2) \
1161/*complex*/\
1162TRIGGER_BYTECODE_ELEMENT(0x020D, diplomatic_influence_tag, 2) \
1163TRIGGER_BYTECODE_ELEMENT(0x020E, diplomatic_influence_this_nation, 1) \
1164TRIGGER_BYTECODE_ELEMENT(0x020F, diplomatic_influence_this_province, 1) \
1165TRIGGER_BYTECODE_ELEMENT(0x0210, diplomatic_influence_from_nation, 1) \
1166TRIGGER_BYTECODE_ELEMENT(0x0211, diplomatic_influence_from_province, 1) \
1167TRIGGER_BYTECODE_ELEMENT(0x0212, pop_unemployment_nation, 3) \
1168TRIGGER_BYTECODE_ELEMENT(0x0213, pop_unemployment_state, 3) \
1169TRIGGER_BYTECODE_ELEMENT(0x0214, pop_unemployment_province, 3) \
1170TRIGGER_BYTECODE_ELEMENT(0x0215, pop_unemployment_pop, 3) \
1171TRIGGER_BYTECODE_ELEMENT(0x0216, pop_unemployment_nation_this_pop, 2) \
1172TRIGGER_BYTECODE_ELEMENT(0x0217, pop_unemployment_state_this_pop, 2) \
1173TRIGGER_BYTECODE_ELEMENT(0x0218, pop_unemployment_province_this_pop, 2) \
1174TRIGGER_BYTECODE_ELEMENT(0x0219, relation_tag, 2) \
1175TRIGGER_BYTECODE_ELEMENT(0x021A, relation_this_nation, 1) \
1176TRIGGER_BYTECODE_ELEMENT(0x021B, relation_this_province, 1) \
1177TRIGGER_BYTECODE_ELEMENT(0x021C, relation_from_nation, 1) \
1178TRIGGER_BYTECODE_ELEMENT(0x021D, relation_from_province, 1) \
1179TRIGGER_BYTECODE_ELEMENT(0x021E, check_variable, 3) \
1180TRIGGER_BYTECODE_ELEMENT(0x021F, upper_house, 3) \
1181TRIGGER_BYTECODE_ELEMENT(0x0220, unemployment_by_type_nation, 3) \
1182TRIGGER_BYTECODE_ELEMENT(0x0221, unemployment_by_type_state, 3) \
1183TRIGGER_BYTECODE_ELEMENT(0x0222, unemployment_by_type_province, 3) \
1184TRIGGER_BYTECODE_ELEMENT(0x0223, unemployment_by_type_pop, 3) \
1185TRIGGER_BYTECODE_ELEMENT(0x0224, party_loyalty_nation_province_id, 3) \
1186TRIGGER_BYTECODE_ELEMENT(0x0225, party_loyalty_from_nation_province_id, 3) \
1187TRIGGER_BYTECODE_ELEMENT(0x0226, party_loyalty_province_province_id, 3) \
1188TRIGGER_BYTECODE_ELEMENT(0x0227, party_loyalty_from_province_province_id, 3) \
1189TRIGGER_BYTECODE_ELEMENT(0x0228, party_loyalty_nation_from_province, 2) \
1190TRIGGER_BYTECODE_ELEMENT(0x0229, party_loyalty_from_nation_scope_province, 2) \
1191TRIGGER_BYTECODE_ELEMENT(0x022A, can_build_in_province_railroad_no_limit_from_nation, 0) \
1192TRIGGER_BYTECODE_ELEMENT(0x022B, can_build_in_province_railroad_yes_limit_from_nation, 0) \
1193TRIGGER_BYTECODE_ELEMENT(0x022C, can_build_in_province_railroad_no_limit_this_nation, 0) \
1194TRIGGER_BYTECODE_ELEMENT(0x022D, can_build_in_province_railroad_yes_limit_this_nation, 0) \
1195TRIGGER_BYTECODE_ELEMENT(0x022E, can_build_in_province_fort_no_limit_from_nation, 0) \
1196TRIGGER_BYTECODE_ELEMENT(0x022F, can_build_in_province_fort_yes_limit_from_nation, 0) \
1197TRIGGER_BYTECODE_ELEMENT(0x0230, can_build_in_province_fort_no_limit_this_nation, 0) \
1198TRIGGER_BYTECODE_ELEMENT(0x0231, can_build_in_province_fort_yes_limit_this_nation, 0) \
1199TRIGGER_BYTECODE_ELEMENT(0x0232, can_build_in_province_naval_base_no_limit_from_nation, 0) \
1200TRIGGER_BYTECODE_ELEMENT(0x0233, can_build_in_province_naval_base_yes_limit_from_nation, 0) \
1201TRIGGER_BYTECODE_ELEMENT(0x0234, can_build_in_province_naval_base_no_limit_this_nation, 0) \
1202TRIGGER_BYTECODE_ELEMENT(0x0235, can_build_in_province_naval_base_yes_limit_this_nation, 0) \
1203TRIGGER_BYTECODE_ELEMENT(0x0236, can_build_railway_in_capital_yes_whole_state_yes_limit, 0) \
1204TRIGGER_BYTECODE_ELEMENT(0x0237, can_build_railway_in_capital_yes_whole_state_no_limit, 0) \
1205TRIGGER_BYTECODE_ELEMENT(0x0238, can_build_railway_in_capital_no_whole_state_yes_limit, 0) \
1206TRIGGER_BYTECODE_ELEMENT(0x0239, can_build_railway_in_capital_no_whole_state_no_limit, 0) \
1207TRIGGER_BYTECODE_ELEMENT(0x023A, can_build_fort_in_capital_yes_whole_state_yes_limit, 0) \
1208TRIGGER_BYTECODE_ELEMENT(0x023B, can_build_fort_in_capital_yes_whole_state_no_limit, 0) \
1209TRIGGER_BYTECODE_ELEMENT(0x023C, can_build_fort_in_capital_no_whole_state_yes_limit, 0) \
1210TRIGGER_BYTECODE_ELEMENT(0x023D, can_build_fort_in_capital_no_whole_state_no_limit, 0) \
1211TRIGGER_BYTECODE_ELEMENT(0x023E, work_available_nation, 1) \
1212TRIGGER_BYTECODE_ELEMENT(0x023F, work_available_state, 1) \
1213TRIGGER_BYTECODE_ELEMENT(0x0240, work_available_province, 1) \
1214/*variable name*/\
1215TRIGGER_BYTECODE_ELEMENT(0x0241, unused_1, 0) /* UNUSED 1 */ \
1216TRIGGER_BYTECODE_ELEMENT(0x0242, variable_ideology_name_nation, 3) \
1217TRIGGER_BYTECODE_ELEMENT(0x0243, variable_ideology_name_state, 3) \
1218TRIGGER_BYTECODE_ELEMENT(0x0244, variable_ideology_name_province, 3) \
1219TRIGGER_BYTECODE_ELEMENT(0x0245, variable_ideology_name_pop, 3) \
1220TRIGGER_BYTECODE_ELEMENT(0x0246, variable_issue_name_nation, 3) \
1221TRIGGER_BYTECODE_ELEMENT(0x0247, variable_issue_name_state, 3) \
1222TRIGGER_BYTECODE_ELEMENT(0x0248, variable_issue_name_province, 3) \
1223TRIGGER_BYTECODE_ELEMENT(0x0249, variable_issue_name_pop, 3) \
1224TRIGGER_BYTECODE_ELEMENT(0x024A, variable_issue_group_name_nation, 2) \
1225TRIGGER_BYTECODE_ELEMENT(0x024B, variable_issue_group_name_state, 2) \
1226TRIGGER_BYTECODE_ELEMENT(0x024C, variable_issue_group_name_province, 2) \
1227TRIGGER_BYTECODE_ELEMENT(0x024D, variable_issue_group_name_pop, 2) \
1228TRIGGER_BYTECODE_ELEMENT(0x024E, variable_pop_type_name_nation, 3) \
1229TRIGGER_BYTECODE_ELEMENT(0x024F, variable_pop_type_name_state, 3) \
1230TRIGGER_BYTECODE_ELEMENT(0x0250, variable_pop_type_name_province, 3) \
1231TRIGGER_BYTECODE_ELEMENT(0x0251, variable_pop_type_name_pop, 3) \
1232TRIGGER_BYTECODE_ELEMENT(0x0252, variable_good_name, 3) \
1233/*misplaced*/ \
1234TRIGGER_BYTECODE_ELEMENT(0x0253, strata_middle, 0) \
1235TRIGGER_BYTECODE_ELEMENT(0x0254, strata_poor, 0) \
1236TRIGGER_BYTECODE_ELEMENT(0x0255, party_loyalty_from_province_scope_province, 2) \
1237TRIGGER_BYTECODE_ELEMENT(0x0256, can_build_factory_nation, 0) \
1238TRIGGER_BYTECODE_ELEMENT(0x0257, can_build_factory_province, 0) \
1239TRIGGER_BYTECODE_ELEMENT(0x0258, nationalvalue_pop, 1) \
1240TRIGGER_BYTECODE_ELEMENT(0x0259, nationalvalue_province, 1) \
1241TRIGGER_BYTECODE_ELEMENT(0x025A, war_exhaustion_pop, 2) \
1242TRIGGER_BYTECODE_ELEMENT(0x025B, has_culture_core_province_this_pop, 0) \
1243TRIGGER_BYTECODE_ELEMENT(0x025C, tag_pop, 1) \
1244TRIGGER_BYTECODE_ELEMENT(0x025D, has_country_flag_pop, 1) \
1245TRIGGER_BYTECODE_ELEMENT(0x025E, has_country_flag_province, 1) \
1246TRIGGER_BYTECODE_ELEMENT(0x025F, has_country_modifier_province, 1) \
1247TRIGGER_BYTECODE_ELEMENT(0x0260, religion_nation, 1) \
1248TRIGGER_BYTECODE_ELEMENT(0x0261, religion_nation_reb, 0) \
1249TRIGGER_BYTECODE_ELEMENT(0x0262, religion_nation_from_nation, 0) \
1250TRIGGER_BYTECODE_ELEMENT(0x0263, religion_nation_this_nation, 0) \
1251TRIGGER_BYTECODE_ELEMENT(0x0264, religion_nation_this_state, 0) \
1252TRIGGER_BYTECODE_ELEMENT(0x0265, religion_nation_this_province, 0) \
1253TRIGGER_BYTECODE_ELEMENT(0x0266, religion_nation_this_pop, 0) \
1254TRIGGER_BYTECODE_ELEMENT(0x0267, war_exhaustion_province, 2) \
1255TRIGGER_BYTECODE_ELEMENT(0x0268, is_greater_power_province, 0) \
1256TRIGGER_BYTECODE_ELEMENT(0x0269, is_cultural_union_pop_this_pop, 0) \
1257TRIGGER_BYTECODE_ELEMENT(0x026A, has_building_factory, 0) \
1258TRIGGER_BYTECODE_ELEMENT(0x026B, has_building_state_from_province, 1) \
1259TRIGGER_BYTECODE_ELEMENT(0x026C, has_building_factory_from_province, 0) \
1260TRIGGER_BYTECODE_ELEMENT(0x026D, party_loyalty_generic, 2) \
1261TRIGGER_BYTECODE_ELEMENT(0x026E, invention, 1) \
1262TRIGGER_BYTECODE_ELEMENT(0x026F, political_movement_from_reb, 0) \
1263TRIGGER_BYTECODE_ELEMENT(0x0270, social_movement_from_reb, 0) \
1264TRIGGER_BYTECODE_ELEMENT(0x0271, is_next_rreform_nation, 1) \
1265TRIGGER_BYTECODE_ELEMENT(0x0272, is_next_rreform_pop, 1) \
1266TRIGGER_BYTECODE_ELEMENT(0x0273, variable_reform_group_name_nation, 2) \
1267TRIGGER_BYTECODE_ELEMENT(0x0274, variable_reform_group_name_state, 2) \
1268TRIGGER_BYTECODE_ELEMENT(0x0275, variable_reform_group_name_province, 2) \
1269TRIGGER_BYTECODE_ELEMENT(0x0276, variable_reform_group_name_pop, 2) \
1270TRIGGER_BYTECODE_ELEMENT(0x0277, is_disarmed_pop, 0) \
1271TRIGGER_BYTECODE_ELEMENT(0x0278, owned_by_state_tag, 1) \
1272TRIGGER_BYTECODE_ELEMENT(0x0279, owned_by_state_from_nation, 0) \
1273TRIGGER_BYTECODE_ELEMENT(0x027A, owned_by_state_this_nation, 0) \
1274TRIGGER_BYTECODE_ELEMENT(0x027B, owned_by_state_this_province, 0) \
1275TRIGGER_BYTECODE_ELEMENT(0x027C, owned_by_state_this_state, 0) \
1276TRIGGER_BYTECODE_ELEMENT(0x027D, owned_by_state_this_pop, 0) \
1277TRIGGER_BYTECODE_ELEMENT(0x027E, units_in_province_tag, 1) \
1278TRIGGER_BYTECODE_ELEMENT(0x027F, primary_culture_from_nation, 0) \
1279TRIGGER_BYTECODE_ELEMENT(0x0280, primary_culture_from_province, 0) \
1280TRIGGER_BYTECODE_ELEMENT(0x0281, neighbour_this_province, 0) \
1281TRIGGER_BYTECODE_ELEMENT(0x0282, neighbour_from_province, 0) \
1282TRIGGER_BYTECODE_ELEMENT(0x0283, technology_province, 1) \
1283TRIGGER_BYTECODE_ELEMENT(0x0284, invention_province, 1) \
1284TRIGGER_BYTECODE_ELEMENT(0x0285, brigades_compare_province_this, 2) \
1285TRIGGER_BYTECODE_ELEMENT(0x0286, brigades_compare_province_from, 2) \
1286TRIGGER_BYTECODE_ELEMENT(0x0287, is_accepted_culture_nation_this_pop, 0) \
1287TRIGGER_BYTECODE_ELEMENT(0x0288, is_accepted_culture_nation_this_nation, 0) \
1288TRIGGER_BYTECODE_ELEMENT(0x0289, is_accepted_culture_nation_this_state, 0) \
1289TRIGGER_BYTECODE_ELEMENT(0x028A, is_accepted_culture_nation_this_province, 0) \
1290TRIGGER_BYTECODE_ELEMENT(0x028B, is_accepted_culture_state_this_pop, 0) \
1291TRIGGER_BYTECODE_ELEMENT(0x028C, is_accepted_culture_state_this_nation, 0) \
1292TRIGGER_BYTECODE_ELEMENT(0x028D, is_accepted_culture_state_this_state, 0) \
1293TRIGGER_BYTECODE_ELEMENT(0x028E, is_accepted_culture_state_this_province, 0) \
1294TRIGGER_BYTECODE_ELEMENT(0x028F, is_accepted_culture_province_this_pop, 0) \
1295TRIGGER_BYTECODE_ELEMENT(0x0290, is_accepted_culture_province_this_nation, 0) \
1296TRIGGER_BYTECODE_ELEMENT(0x0291, is_accepted_culture_province_this_state, 0) \
1297TRIGGER_BYTECODE_ELEMENT(0x0292, is_accepted_culture_province_this_province, 0) \
1298TRIGGER_BYTECODE_ELEMENT(0x0293, is_accepted_culture_pop_this_pop, 0) \
1299TRIGGER_BYTECODE_ELEMENT(0x0294, is_accepted_culture_pop_this_nation, 0) \
1300TRIGGER_BYTECODE_ELEMENT(0x0295, is_accepted_culture_pop_this_state, 0) \
1301TRIGGER_BYTECODE_ELEMENT(0x0296, is_accepted_culture_pop_this_province, 0) \
1302TRIGGER_BYTECODE_ELEMENT(0x0297, culture_group_province, 1) \
1303TRIGGER_BYTECODE_ELEMENT(0x0298, culture_group_state, 1) \
1304TRIGGER_BYTECODE_ELEMENT(0x0299, have_core_in_nation_tag, 1) \
1305TRIGGER_BYTECODE_ELEMENT(0x029A, have_core_in_nation_this, 0) \
1306TRIGGER_BYTECODE_ELEMENT(0x029B, have_core_in_nation_from, 0) \
1307TRIGGER_BYTECODE_ELEMENT(0x029C, owns_province, 1) \
1308TRIGGER_BYTECODE_ELEMENT(0x029D, empty_state, 0) \
1309TRIGGER_BYTECODE_ELEMENT(0x029E, is_overseas_pop, 0) \
1310TRIGGER_BYTECODE_ELEMENT(0x029F, primary_culture_pop, 1) \
1311TRIGGER_BYTECODE_ELEMENT(0x02A0, plurality_pop, 2) \
1312TRIGGER_BYTECODE_ELEMENT(0x02A1, is_overseas_state, 0) \
1313TRIGGER_BYTECODE_ELEMENT(0x02A2, stronger_army_than_tag, 1) \
1314TRIGGER_BYTECODE_ELEMENT(0x02A3, region_state, 1) \
1315TRIGGER_BYTECODE_ELEMENT(0x02A4, region_pop, 1) \
1316TRIGGER_BYTECODE_ELEMENT(0x02A5, owns_region, 1) \
1317TRIGGER_BYTECODE_ELEMENT(0x02A6, is_core_state_tag, 1) \
1318TRIGGER_BYTECODE_ELEMENT(0x02A7, country_units_in_state_from, 0) \
1319TRIGGER_BYTECODE_ELEMENT(0x02A8, country_units_in_state_this_nation, 0) \
1320TRIGGER_BYTECODE_ELEMENT(0x02A9, country_units_in_state_this_province, 0) \
1321TRIGGER_BYTECODE_ELEMENT(0x02AA, country_units_in_state_this_state, 0) \
1322TRIGGER_BYTECODE_ELEMENT(0x02AB, country_units_in_state_this_pop, 0) \
1323TRIGGER_BYTECODE_ELEMENT(0x02AC, country_units_in_state_tag, 1) \
1324TRIGGER_BYTECODE_ELEMENT(0x02AD, stronger_army_than_this_nation, 0) \
1325TRIGGER_BYTECODE_ELEMENT(0x02AE, stronger_army_than_this_state, 0) \
1326TRIGGER_BYTECODE_ELEMENT(0x02AF, stronger_army_than_this_province, 0) \
1327TRIGGER_BYTECODE_ELEMENT(0x02B0, stronger_army_than_this_pop, 0) \
1328TRIGGER_BYTECODE_ELEMENT(0x02B1, stronger_army_than_from_nation, 0) \
1329TRIGGER_BYTECODE_ELEMENT(0x02B2, stronger_army_than_from_province, 0) \
1330TRIGGER_BYTECODE_ELEMENT(0x02B3, flashpoint_tension_province, 2) \
1331TRIGGER_BYTECODE_ELEMENT(0x02B4, is_colonial_pop, 0) \
1332TRIGGER_BYTECODE_ELEMENT(0x02B5, has_country_flag_state, 1) \
1333TRIGGER_BYTECODE_ELEMENT(0x02B6, rich_tax_pop, 1) \
1334TRIGGER_BYTECODE_ELEMENT(0x02B7, middle_tax_pop, 1) \
1335TRIGGER_BYTECODE_ELEMENT(0x02B8, poor_tax_pop, 1) \
1336TRIGGER_BYTECODE_ELEMENT(0x02B9, is_core_pop_tag, 1) \
1337TRIGGER_BYTECODE_ELEMENT(0x02BA, is_core_boolean, 0) \
1338TRIGGER_BYTECODE_ELEMENT(0x02BB, is_core_state_this_nation, 0) \
1339TRIGGER_BYTECODE_ELEMENT(0x02BC, is_core_state_this_province, 0) \
1340TRIGGER_BYTECODE_ELEMENT(0x02BD, is_core_state_this_pop, 0) \
1341TRIGGER_BYTECODE_ELEMENT(0x02BE, is_core_state_from_nation, 0) \
1342TRIGGER_BYTECODE_ELEMENT(0x02BF, ruling_party_ideology_province, 1) \
1343TRIGGER_BYTECODE_ELEMENT(0x02C0, money_province, 2) \
1344TRIGGER_BYTECODE_ELEMENT(0x02C1, is_our_vassal_province_tag, 1) \
1345TRIGGER_BYTECODE_ELEMENT(0x02C2, is_our_vassal_province_from, 0) \
1346TRIGGER_BYTECODE_ELEMENT(0x02C3, is_our_vassal_province_this_nation, 0) \
1347TRIGGER_BYTECODE_ELEMENT(0x02C4, is_our_vassal_province_this_province, 0) \
1348TRIGGER_BYTECODE_ELEMENT(0x02C5, is_our_vassal_province_this_state, 0) \
1349TRIGGER_BYTECODE_ELEMENT(0x02C6, is_our_vassal_province_this_pop, 0) \
1350TRIGGER_BYTECODE_ELEMENT(0x02C7, vassal_of_province_tag, 1) \
1351TRIGGER_BYTECODE_ELEMENT(0x02C8, vassal_of_province_from, 0) \
1352TRIGGER_BYTECODE_ELEMENT(0x02C9, vassal_of_province_this_nation, 0) \
1353TRIGGER_BYTECODE_ELEMENT(0x02CA, vassal_of_province_this_province, 0) \
1354TRIGGER_BYTECODE_ELEMENT(0x02CB, vassal_of_province_this_state, 0) \
1355TRIGGER_BYTECODE_ELEMENT(0x02CC, vassal_of_province_this_pop, 0) \
1356TRIGGER_BYTECODE_ELEMENT(0x02CD, relation_this_pop, 1) \
1357TRIGGER_BYTECODE_ELEMENT(0x02CE, has_recently_lost_war_pop, 0) \
1358TRIGGER_BYTECODE_ELEMENT(0x02CF, technology_pop, 1) \
1359TRIGGER_BYTECODE_ELEMENT(0x02D0, invention_pop, 1) \
1360TRIGGER_BYTECODE_ELEMENT(0x02D1, in_default_bool, 0) \
1361TRIGGER_BYTECODE_ELEMENT(0x02D2, is_state_capital_pop, 0) \
1362TRIGGER_BYTECODE_ELEMENT(0x02D3, region_proper, 1) \
1363TRIGGER_BYTECODE_ELEMENT(0x02D4, region_proper_state, 1) \
1364TRIGGER_BYTECODE_ELEMENT(0x02D5, region_proper_pop, 1) \
1365TRIGGER_BYTECODE_ELEMENT(0x02D6, owns_region_proper, 1) \
1366TRIGGER_BYTECODE_ELEMENT(0x02D7, pop_majority_religion_nation_this_nation, 0) \
1367TRIGGER_BYTECODE_ELEMENT(0x02D8, military_score_tag, 1) \
1368TRIGGER_BYTECODE_ELEMENT(0x02D9, industrial_score_tag, 1) \
1369TRIGGER_BYTECODE_ELEMENT(0x02DA, has_factories_nation, 0) \
1370TRIGGER_BYTECODE_ELEMENT(0x02DB, is_coastal_state, 0) \
1371TRIGGER_BYTECODE_ELEMENT(0x02DC, has_building_bank, 0) \
1372TRIGGER_BYTECODE_ELEMENT(0x02DD, has_building_university, 0) \
1373TRIGGER_BYTECODE_ELEMENT(0x02DE, test, 1) \
1374TRIGGER_BYTECODE_ELEMENT(0x02DF, unit_has_leader, 0) \
1375TRIGGER_BYTECODE_ELEMENT(0x02E0, has_national_focus_state, 1) \
1376TRIGGER_BYTECODE_ELEMENT(0x02E1, has_national_focus_province, 1)
1377
1378#define TRIGGER_BYTECODE_ELEMENT(code, name, arg) constexpr inline uint16_t name = code;
1380#undef TRIGGER_BYTECODE_ELEMENT
1381
1382constexpr inline uint16_t first_scope_code = 0x02E2;
1383
1384// technology name -- payload 1
1385// ideology name -- 4 variants payload 2
1386// issue name -- 4 variants payload 2
1387// issue group name -- 4 variants payload 2
1388// pop type -- 4 variants payload 2
1389// good name -- payload 2
1390
1391// scopes
1392constexpr inline uint16_t generic_scope = first_scope_code + 0x0000; // or & and
1393constexpr inline uint16_t x_neighbor_province_scope = first_scope_code + 0x0001;
1394constexpr inline uint16_t x_neighbor_country_scope_nation = first_scope_code + 0x0002;
1395constexpr inline uint16_t x_neighbor_country_scope_pop = first_scope_code + 0x0003;
1396constexpr inline uint16_t x_war_countries_scope_nation = first_scope_code + 0x0004;
1397constexpr inline uint16_t x_war_countries_scope_pop = first_scope_code + 0x0005;
1398constexpr inline uint16_t x_greater_power_scope = first_scope_code + 0x0006;
1399constexpr inline uint16_t x_owned_province_scope_state = first_scope_code + 0x0007;
1400constexpr inline uint16_t x_owned_province_scope_nation = first_scope_code + 0x0008;
1401constexpr inline uint16_t x_core_scope_province = first_scope_code + 0x0009;
1402constexpr inline uint16_t x_core_scope_nation = first_scope_code + 0x000A;
1403constexpr inline uint16_t x_state_scope = first_scope_code + 0x000B;
1404constexpr inline uint16_t x_substate_scope = first_scope_code + 0x000C;
1405constexpr inline uint16_t x_sphere_member_scope = first_scope_code + 0x000D;
1406constexpr inline uint16_t x_pop_scope_province = first_scope_code + 0x000E;
1407constexpr inline uint16_t x_pop_scope_state = first_scope_code + 0x000F;
1408constexpr inline uint16_t x_pop_scope_nation = first_scope_code + 0x0010;
1409constexpr inline uint16_t x_provinces_in_variable_region = first_scope_code + 0x0011; // variable name
1410constexpr inline uint16_t owner_scope_state = first_scope_code + 0x0012;
1411constexpr inline uint16_t owner_scope_province = first_scope_code + 0x0013;
1412constexpr inline uint16_t controller_scope = first_scope_code + 0x0014;
1413constexpr inline uint16_t location_scope = first_scope_code + 0x0015;
1414constexpr inline uint16_t country_scope_state = first_scope_code + 0x0016;
1415constexpr inline uint16_t country_scope_pop = first_scope_code + 0x0017;
1416constexpr inline uint16_t capital_scope = first_scope_code + 0x0018;
1417constexpr inline uint16_t this_scope_pop = first_scope_code + 0x0019;
1418constexpr inline uint16_t this_scope_nation = first_scope_code + 0x001A;
1419constexpr inline uint16_t this_scope_state = first_scope_code + 0x001B;
1420constexpr inline uint16_t this_scope_province = first_scope_code + 0x001C;
1421constexpr inline uint16_t from_scope_pop = first_scope_code + 0x001D;
1422constexpr inline uint16_t from_scope_nation = first_scope_code + 0x001E;
1423constexpr inline uint16_t from_scope_state = first_scope_code + 0x001F;
1424constexpr inline uint16_t from_scope_province = first_scope_code + 0x0020;
1425constexpr inline uint16_t sea_zone_scope = first_scope_code + 0x0021;
1426constexpr inline uint16_t cultural_union_scope = first_scope_code + 0x0022;
1427constexpr inline uint16_t overlord_scope = first_scope_code + 0x0023;
1428constexpr inline uint16_t sphere_owner_scope = first_scope_code + 0x0024;
1429constexpr inline uint16_t independence_scope = first_scope_code + 0x0025;
1430constexpr inline uint16_t flashpoint_tag_scope = first_scope_code + 0x0026;
1431constexpr inline uint16_t crisis_state_scope = first_scope_code + 0x0027;
1432constexpr inline uint16_t state_scope_pop = first_scope_code + 0x0028;
1433constexpr inline uint16_t state_scope_province = first_scope_code + 0x0029;
1434constexpr inline uint16_t tag_scope = first_scope_code + 0x002A; // variable name
1435constexpr inline uint16_t integer_scope = first_scope_code + 0x002B; // variable name
1436constexpr inline uint16_t country_scope_nation = first_scope_code + 0x002C;
1437constexpr inline uint16_t country_scope_province = first_scope_code + 0x002D;
1438constexpr inline uint16_t cultural_union_scope_pop = first_scope_code + 0x002E;
1439constexpr inline uint16_t capital_scope_province = first_scope_code + 0x002F;
1440constexpr inline uint16_t capital_scope_pop = first_scope_code + 0x0030;
1441constexpr inline uint16_t x_country_scope = first_scope_code + 0x0031;
1442constexpr inline uint16_t x_neighbor_province_scope_state = first_scope_code + 0x0032;
1443constexpr inline uint16_t x_provinces_in_variable_region_proper = first_scope_code + 0x0033;
1444
1445constexpr inline uint16_t first_invalid_code = first_scope_code + 0x0034;
1446
1447constexpr inline uint16_t placeholder_not_scope = code_mask;
1448
1449// variable
1450// region name = 1 variant, x type, payload 1
1451// tag = 1 variant, payload 1
1452// integer = 1 variant, payload 1
1453
1454inline constexpr int8_t data_sizes[] = {
1455 0, //none
1456#define TRIGGER_BYTECODE_ELEMENT(code, name, arg) arg,
1458#undef TRIGGER_BYTECODE_ELEMENT
1459};
1460static_assert(sizeof(data_sizes) == first_scope_code);
1461
1462enum class slot_contents { empty = 0, province = 1, state = 2, pop = 3, nation = 4, rebel = 5 };
1463
1464union payload {
1465
1466 uint16_t value;
1469 dcon::government_type_id gov_id;
1470 dcon::religion_id rel_id;
1471 dcon::commodity_id com_id;
1472 dcon::rebel_type_id reb_id;
1473 dcon::factory_type_id fac_id;
1474 dcon::ideology_id ideo_id;
1475 dcon::issue_id iss_id;
1476 dcon::issue_option_id opt_id;
1477 dcon::cb_type_id cb_id;
1478 dcon::pop_type_id popt_id;
1479 dcon::leader_trait_id lead_id;
1480 dcon::unit_type_id unit_id;
1481 dcon::modifier_id mod_id;
1482 dcon::culture_id cul_id;
1483 dcon::culture_group_id culgrp_id;
1484 dcon::national_identity_id tag_id;
1485 dcon::state_definition_id state_id;
1486 dcon::province_id prov_id;
1487 dcon::technology_id tech_id;
1488 dcon::invention_id invt_id;
1489 dcon::national_variable_id natv_id;
1490 dcon::national_flag_id natf_id;
1491 dcon::global_flag_id glob_id;
1492 dcon::national_event_id nev_id;
1493 dcon::provincial_event_id pev_id;
1494 dcon::trigger_key tr_id;
1495 dcon::crime_id crm_id;
1496 dcon::political_party_id par_id;
1497 dcon::reform_id ref_id;
1498 dcon::reform_option_id ropt_id;
1499 dcon::region_id reg_id;
1500 dcon::stored_trigger_id str_id;
1501 dcon::national_focus_id nf_id;
1502
1503 // variables::national_variable_tag nat_var;
1504 // variables::national_flag_tag nat_flag;
1505 // variables::global_variable_tag global_var;
1506 // events::event_tag event;
1507 // trigger_tag trigger;
1508
1509 payload(payload const& i) noexcept : value(i.value) { }
1510 payload(uint16_t i) : value(i) { }
1511 payload(int16_t i) : signed_value(i) { }
1512 payload(bool i) {
1513 memset(this, 0, sizeof(payload));
1514 boolean_value = i;
1515 }
1516 payload(dcon::national_focus_id i) {
1517 memset(this, 0, sizeof(payload));
1518 nf_id = i;
1519 }
1520 payload(dcon::government_type_id i) {
1521 memset(this, 0, sizeof(payload));
1522 gov_id = i;
1523 }
1524 payload(dcon::region_id i) {
1525 memset(this, 0, sizeof(payload));
1526 reg_id = i;
1527 }
1528 payload(dcon::religion_id i) {
1529 memset(this, 0, sizeof(payload));
1530 rel_id = i;
1531 }
1532 payload(dcon::commodity_id i) {
1533 memset(this, 0, sizeof(payload));
1534 com_id = i;
1535 }
1536 payload(dcon::rebel_type_id i) {
1537 memset(this, 0, sizeof(payload));
1538 reb_id = i;
1539 }
1540 payload(dcon::factory_type_id i) {
1541 memset(this, 0, sizeof(payload));
1542 fac_id = i;
1543 }
1544 payload(dcon::ideology_id i) {
1545 memset(this, 0, sizeof(payload));
1546 ideo_id = i;
1547 }
1548 payload(dcon::issue_id i) {
1549 memset(this, 0, sizeof(payload));
1550 iss_id = i;
1551 }
1552 payload(dcon::issue_option_id i) {
1553 memset(this, 0, sizeof(payload));
1554 opt_id = i;
1555 }
1556 payload(dcon::cb_type_id i) {
1557 memset(this, 0, sizeof(payload));
1558 cb_id = i;
1559 }
1560 payload(dcon::pop_type_id i) {
1561 memset(this, 0, sizeof(payload));
1562 popt_id = i;
1563 }
1564 payload(dcon::leader_trait_id i) {
1565 memset(this, 0, sizeof(payload));
1566 lead_id = i;
1567 }
1568 payload(dcon::unit_type_id i) {
1569 memset(this, 0, sizeof(payload));
1570 unit_id = i;
1571 }
1572 payload(dcon::modifier_id i) {
1573 memset(this, 0, sizeof(payload));
1574 mod_id = i;
1575 }
1576 payload(dcon::culture_id i) {
1577 memset(this, 0, sizeof(payload));
1578 cul_id = i;
1579 }
1580 payload(dcon::culture_group_id i) {
1581 memset(this, 0, sizeof(payload));
1582 culgrp_id = i;
1583 }
1584 payload(dcon::national_identity_id i) {
1585 memset(this, 0, sizeof(payload));
1586 tag_id = i;
1587 }
1588 payload(dcon::state_definition_id i) {
1589 memset(this, 0, sizeof(payload));
1590 state_id = i;
1591 }
1592 payload(dcon::province_id i) {
1593 memset(this, 0, sizeof(payload));
1594 prov_id = i;
1595 }
1596 payload(dcon::technology_id i) {
1597 memset(this, 0, sizeof(payload));
1598 tech_id = i;
1599 }
1600 payload(dcon::invention_id i) {
1601 memset(this, 0, sizeof(payload));
1602 invt_id = i;
1603 }
1604 payload(dcon::national_variable_id i) {
1605 memset(this, 0, sizeof(payload));
1606 natv_id = i;
1607 }
1608 payload(dcon::national_flag_id i) {
1609 memset(this, 0, sizeof(payload));
1610 natf_id = i;
1611 }
1612 payload(dcon::global_flag_id i) {
1613 memset(this, 0, sizeof(payload));
1614 glob_id = i;
1615 }
1616 payload(dcon::national_event_id i) {
1617 memset(this, 0, sizeof(payload));
1618 nev_id = i;
1619 }
1620 payload(dcon::provincial_event_id i) {
1621 memset(this, 0, sizeof(payload));
1622 pev_id = i;
1623 }
1624 payload(dcon::trigger_key i) {
1625 memset(this, 0, sizeof(payload));
1626 tr_id = i;
1627 }
1628 payload(dcon::crime_id i) {
1629 memset(this, 0, sizeof(payload));
1630 crm_id = i;
1631 }
1632 payload(dcon::political_party_id i) {
1633 memset(this, 0, sizeof(payload));
1634 par_id = i;
1635 }
1636 payload(dcon::reform_id i) {
1637 memset(this, 0, sizeof(payload));
1638 ref_id = i;
1639 }
1640 payload(dcon::reform_option_id i) {
1641 memset(this, 0, sizeof(payload));
1642 ropt_id = i;
1643 }
1644 payload(dcon::stored_trigger_id i) {
1645 memset(this, 0, sizeof(payload));
1646 str_id = i;
1647 }
1648};
1649
1650static_assert(sizeof(payload) == 2);
1651
1652inline int32_t get_trigger_non_scope_payload_size(uint16_t const* data) {
1654 return trigger::data_sizes[data[0] & trigger::code_mask];
1655}
1656inline int32_t get_trigger_scope_payload_size(uint16_t const* data) {
1657 return data[1];
1658}
1659inline int32_t get_trigger_payload_size(uint16_t const* data) {
1661 return get_trigger_scope_payload_size(data);
1662 else
1664}
1665inline int32_t trigger_scope_data_payload(uint16_t code) {
1666 auto const masked_code = code & trigger::code_mask;
1667 if((masked_code == trigger::x_provinces_in_variable_region) || (masked_code == trigger::x_provinces_in_variable_region_proper) || (masked_code == trigger::tag_scope) ||
1668 (masked_code == trigger::integer_scope))
1669 return 1;
1670 return 0;
1671}
1672
1673template<typename T>
1674uint16_t* recurse_over_triggers(uint16_t* source, T const& f) {
1675 f(source);
1677
1678 if((source[0] & trigger::code_mask) >= trigger::first_scope_code) {
1679 auto const source_size = 1 + get_trigger_scope_payload_size(source);
1680
1681 auto sub_units_start = source + 2 + trigger_scope_data_payload(source[0]);
1682 while(sub_units_start < source + source_size) {
1683 sub_units_start = recurse_over_triggers(sub_units_start, f);
1684 }
1685 return source + source_size;
1686 } else {
1687 return source + 1 + get_trigger_non_scope_payload_size(source);
1688 }
1689}
1690
1691inline uint32_t count_subtriggers(uint16_t const* source) {
1692 uint32_t count = 0;
1693 if((source[0] & trigger::code_mask) >= trigger::first_scope_code) {
1694 auto const source_size = 1 + get_trigger_scope_payload_size(source);
1695 auto sub_units_start = source + 2 + trigger_scope_data_payload(source[0]);
1696 while(sub_units_start < source + source_size) {
1697 ++count;
1698 sub_units_start += 1 + get_trigger_payload_size(sub_units_start);
1699 }
1700 }
1701 return count;
1702}
1703
1704} // namespace trigger
#define assert(condition)
Definition: debug.h:74
constexpr uint16_t x_state_scope
constexpr uint16_t x_greater_power_scope
constexpr uint16_t rich_strata_scope_nation
constexpr uint16_t pop_type_scope_nation
constexpr uint16_t this_bounce_scope
bool effect_scope_has_single_member(uint16_t const *source)
constexpr uint16_t region_proper_scope
constexpr uint16_t crisis_state_scope
constexpr uint16_t x_neighbor_country_scope
constexpr uint16_t region_scope
constexpr uint16_t x_decision_country_scope_nation
int32_t get_effect_non_scope_payload_size(uint16_t const *data)
constexpr int8_t data_sizes[]
constexpr uint16_t x_pop_scope_province
constexpr uint16_t country_scope_pop
constexpr uint16_t this_scope_province
constexpr uint16_t owner_scope_province
constexpr uint16_t country_scope_state
constexpr uint16_t capital_scope_province
constexpr uint16_t is_random_scope
constexpr uint16_t no_payload
constexpr uint16_t this_scope_pop
constexpr uint16_t x_country_scope_nation
uint32_t recurse_over_effects(uint16_t *source, T const &f)
constexpr uint16_t if_scope
int32_t get_effect_scope_payload_size(uint16_t const *data)
constexpr uint16_t owner_scope_state
constexpr uint16_t state_scope_province
constexpr uint16_t poor_strata_scope_state
constexpr uint16_t state_scope_pop
constexpr uint16_t x_empty_neighbor_province_scope
int32_t effect_scope_data_payload(uint16_t code)
constexpr uint16_t from_scope_nation
constexpr uint16_t code_mask
constexpr uint16_t location_scope
constexpr uint16_t capital_scope
constexpr uint16_t generic_scope
constexpr uint16_t this_scope_nation
constexpr uint16_t tag_scope
EFFECT_BYTECODE_LIST constexpr uint16_t first_scope_code
constexpr uint16_t controller_scope
constexpr uint16_t cultural_union_scope
constexpr uint16_t sea_zone_scope
constexpr uint16_t random_scope
constexpr uint16_t independence_scope
constexpr uint16_t x_core_scope
constexpr uint16_t random_by_modifier_scope
constexpr uint16_t middle_strata_scope_state
constexpr uint16_t this_scope_state
constexpr uint16_t x_core_scope_province
constexpr uint16_t x_neighbor_province_scope
constexpr uint16_t from_scope_state
constexpr uint16_t else_if_scope
constexpr uint16_t x_event_country_scope
constexpr uint16_t rich_strata_scope_state
constexpr uint16_t x_country_scope
constexpr uint16_t from_scope_province
constexpr uint16_t poor_strata_scope_nation
int32_t get_generic_effect_payload_size(uint16_t const *data)
constexpr uint16_t x_substate_scope
constexpr uint16_t rich_strata_scope_province
constexpr uint16_t random_list_scope
constexpr uint16_t x_empty_neighbor_province_scope_nation
constexpr uint16_t pop_type_scope_province
constexpr uint16_t first_invalid_code
constexpr uint16_t poor_strata_scope_province
constexpr uint16_t scope_has_limit
constexpr uint16_t flashpoint_tag_scope
constexpr uint16_t x_owned_scope_nation
constexpr uint16_t x_decision_country_scope
constexpr uint16_t overlord_scope
constexpr uint16_t sphere_owner_scope
constexpr uint16_t x_owned_scope_state
constexpr uint16_t x_event_country_scope_nation
constexpr uint16_t integer_scope
constexpr uint16_t pop_type_scope_state
constexpr uint16_t middle_strata_scope_province
constexpr uint16_t x_pop_scope_state
constexpr uint16_t x_pop_scope_nation
constexpr uint16_t from_scope_pop
constexpr uint16_t from_bounce_scope
constexpr uint16_t middle_strata_scope_nation
constexpr uint16_t x_neighbor_province_scope_nation
Definition: rebels.cpp:12
constexpr uint16_t country_scope_province
constexpr uint16_t generic_scope
constexpr uint16_t owner_scope_province
constexpr uint16_t x_pop_scope_province
constexpr uint16_t code_mask
int32_t get_trigger_scope_payload_size(uint16_t const *data)
constexpr uint16_t no_payload
constexpr uint16_t state_scope_province
constexpr uint16_t is_disjunctive_scope
constexpr uint16_t sphere_owner_scope
constexpr uint16_t this_scope_province
constexpr uint16_t x_owned_province_scope_state
uint32_t count_subtriggers(uint16_t const *source)
constexpr uint16_t x_substate_scope
constexpr uint16_t x_country_scope
constexpr uint16_t cultural_union_scope
constexpr uint16_t country_scope_nation
constexpr uint16_t from_scope_province
constexpr uint16_t location_scope
constexpr uint16_t country_scope_pop
constexpr uint16_t integer_scope
constexpr uint16_t x_provinces_in_variable_region
constexpr uint16_t x_neighbor_country_scope_pop
constexpr uint16_t country_scope_state
constexpr uint16_t crisis_state_scope
constexpr uint16_t capital_scope_province
constexpr uint16_t state_scope_pop
constexpr uint16_t from_scope_nation
constexpr uint16_t x_state_scope
constexpr uint16_t this_scope_nation
constexpr uint16_t x_owned_province_scope_nation
constexpr uint16_t x_war_countries_scope_pop
constexpr uint16_t this_scope_pop
constexpr uint16_t owner_scope_state
constexpr uint16_t from_scope_pop
constexpr uint16_t association_gt
constexpr uint16_t x_pop_scope_state
constexpr uint16_t association_le
constexpr uint16_t x_core_scope_nation
int32_t get_trigger_non_scope_payload_size(uint16_t const *data)
constexpr uint16_t x_neighbor_province_scope_state
constexpr uint16_t flashpoint_tag_scope
constexpr uint16_t association_ge
constexpr uint16_t this_scope_state
constexpr uint16_t association_mask
constexpr uint16_t x_neighbor_country_scope_nation
constexpr int8_t data_sizes[]
TRIGGER_BYTECODE_LIST constexpr uint16_t first_scope_code
constexpr uint16_t independence_scope
constexpr uint16_t cultural_union_scope_pop
constexpr uint16_t first_invalid_code
constexpr uint16_t x_pop_scope_nation
constexpr uint16_t capital_scope_pop
constexpr uint16_t association_lt
constexpr uint16_t placeholder_not_scope
constexpr uint16_t x_greater_power_scope
constexpr uint16_t sea_zone_scope
constexpr uint16_t x_neighbor_province_scope
constexpr uint16_t x_core_scope_province
constexpr uint16_t tag_scope
constexpr uint16_t is_existence_scope
int32_t trigger_scope_data_payload(uint16_t code)
int32_t get_trigger_payload_size(uint16_t const *data)
constexpr uint16_t capital_scope
constexpr uint16_t x_war_countries_scope_nation
uint16_t * recurse_over_triggers(uint16_t *source, T const &f)
constexpr uint16_t controller_scope
constexpr uint16_t association_ne
constexpr uint16_t overlord_scope
constexpr uint16_t from_scope_state
constexpr uint16_t x_provinces_in_variable_region_proper
constexpr uint16_t association_eq
constexpr uint16_t x_sphere_member_scope
uint uint32_t
#define EFFECT_BYTECODE_LIST
#define TRIGGER_BYTECODE_LIST
dcon::national_identity_id tag_id
payload(dcon::government_type_id i)
dcon::culture_id cul_id
payload(dcon::modifier_id i)
payload(dcon::region_id i)
dcon::stored_trigger_id str_id
dcon::national_flag_id natf_id
payload(dcon::national_event_id i)
dcon::national_variable_id natv_id
payload(dcon::pop_type_id i)
dcon::invention_id invt_id
payload(dcon::invention_id i)
dcon::political_party_id par_id
payload(dcon::unit_type_id i)
dcon::cb_type_id cb_id
dcon::national_event_id nev_id
dcon::provincial_event_id pev_id
payload(dcon::leader_trait_id i)
payload(dcon::stored_trigger_id i)
payload(dcon::culture_id i)
dcon::national_focus_id nf_id
payload(dcon::national_variable_id i)
payload(dcon::crime_id i)
dcon::province_id prov_id
dcon::ideology_id ideo_id
dcon::unit_type_id unit_id
dcon::religion_id rel_id
payload(dcon::national_flag_id i)
payload(dcon::state_definition_id i)
dcon::culture_group_id culgrp_id
dcon::government_type_id gov_id
payload(dcon::culture_group_id i)
payload(dcon::cb_type_id i)
dcon::issue_id iss_id
dcon::technology_id tech_id
dcon::reform_id ref_id
dcon::global_flag_id glob_id
payload(dcon::trigger_key i)
payload(dcon::province_id i)
payload(payload const &i) noexcept
dcon::leader_trait_id lead_id
dcon::trigger_key tr_id
payload(dcon::religion_id i)
dcon::crime_id crm_id
payload(dcon::commodity_id i)
payload(dcon::ideology_id i)
dcon::reform_option_id ropt_id
dcon::factory_type_id fac_id
dcon::state_definition_id state_id
payload(dcon::reform_id i)
payload(dcon::provincial_event_id i)
dcon::pop_type_id popt_id
dcon::issue_option_id opt_id
payload(dcon::national_focus_id i)
payload(dcon::issue_id i)
dcon::commodity_id com_id
dcon::rebel_type_id reb_id
payload(dcon::reform_option_id i)
dcon::region_id reg_id
payload(dcon::national_identity_id i)
payload(dcon::political_party_id i)
payload(dcon::factory_type_id i)
payload(dcon::global_flag_id i)
payload(dcon::technology_id i)
dcon::modifier_id mod_id
payload(dcon::issue_option_id i)
payload(dcon::rebel_type_id i)