10 if(tag.length() != 3) {
19 err.
accumulated_errors += err.
file_name +
" line " + std::to_string(line) +
": A tag which conflicts with a conditional 'NOT' or 'AND'\n";
27 err.
accumulated_errors += err.
file_name +
" line " + std::to_string(line) +
": A tag which conflicts with a built-in 'war', 'any', 'log' or 'tag'\n";
38 auto new_ident = context.
state.
world.create_national_identity();
45 context.
state.
world.national_identity_set_name(new_ident, name_id);
46 context.
state.
world.national_identity_set_adjective(new_ident, adj_id);
47 context.
state.
world.national_identity_set_identifying_int(new_ident, as_int);
80 parse_triggered_modifier(gen, err, new_context);
86 auto parsed_modifier = parse_modifier_base(gen, err, context);
88 auto new_modifier = context.
state.
world.create_modifier();
91 context.
state.
world.modifier_set_name(new_modifier, name_id);
93 context.
state.
world.modifier_set_national_values(new_modifier, parsed_modifier.force_national_mod());
103 auto parsed_modifier = parse_modifier_base(gen, err, context);
105 auto new_modifier = context.
state.
world.create_modifier();
107 context.
state.
world.modifier_set_icon(new_modifier,
uint8_t(parsed_modifier.icon_index));
108 context.
state.
world.modifier_set_name(new_modifier, name_id);
109 context.
state.
world.modifier_set_national_values(new_modifier, parsed_modifier.force_national_mod());
111 context.
map_of_modifiers.insert_or_assign(std::string(
"very_easy_player"), new_modifier);
118 auto parsed_modifier = parse_modifier_base(gen, err, context);
120 auto new_modifier = context.
state.
world.create_modifier();
122 context.
state.
world.modifier_set_icon(new_modifier,
uint8_t(parsed_modifier.icon_index));
123 context.
state.
world.modifier_set_name(new_modifier, name_id);
124 context.
state.
world.modifier_set_national_values(new_modifier, parsed_modifier.force_national_mod());
126 context.
map_of_modifiers.insert_or_assign(std::string(
"easy_player"), new_modifier);
133 auto parsed_modifier = parse_modifier_base(gen, err, context);
135 auto new_modifier = context.
state.
world.create_modifier();
137 context.
state.
world.modifier_set_icon(new_modifier,
uint8_t(parsed_modifier.icon_index));
138 context.
state.
world.modifier_set_name(new_modifier, name_id);
139 context.
state.
world.modifier_set_national_values(new_modifier, parsed_modifier.force_national_mod());
141 context.
map_of_modifiers.insert_or_assign(std::string(
"hard_player"), new_modifier);
148 auto parsed_modifier = parse_modifier_base(gen, err, context);
150 auto new_modifier = context.
state.
world.create_modifier();
152 context.
state.
world.modifier_set_icon(new_modifier,
uint8_t(parsed_modifier.icon_index));
153 context.
state.
world.modifier_set_name(new_modifier, name_id);
154 context.
state.
world.modifier_set_national_values(new_modifier, parsed_modifier.force_national_mod());
156 context.
map_of_modifiers.insert_or_assign(std::string(
"very_hard_player"), new_modifier);
163 auto parsed_modifier = parse_modifier_base(gen, err, context);
165 auto new_modifier = context.
state.
world.create_modifier();
167 context.
state.
world.modifier_set_icon(new_modifier,
uint8_t(parsed_modifier.icon_index));
168 context.
state.
world.modifier_set_name(new_modifier, name_id);
169 context.
state.
world.modifier_set_national_values(new_modifier, parsed_modifier.force_national_mod());
171 context.
map_of_modifiers.insert_or_assign(std::string(
"very_easy_ai"), new_modifier);
178 auto parsed_modifier = parse_modifier_base(gen, err, context);
180 auto new_modifier = context.
state.
world.create_modifier();
182 context.
state.
world.modifier_set_icon(new_modifier,
uint8_t(parsed_modifier.icon_index));
183 context.
state.
world.modifier_set_name(new_modifier, name_id);
184 context.
state.
world.modifier_set_national_values(new_modifier, parsed_modifier.force_national_mod());
186 context.
map_of_modifiers.insert_or_assign(std::string(
"easy_ai"), new_modifier);
193 auto parsed_modifier = parse_modifier_base(gen, err, context);
195 auto new_modifier = context.
state.
world.create_modifier();
197 context.
state.
world.modifier_set_icon(new_modifier,
uint8_t(parsed_modifier.icon_index));
198 context.
state.
world.modifier_set_name(new_modifier, name_id);
199 context.
state.
world.modifier_set_national_values(new_modifier, parsed_modifier.force_national_mod());
201 context.
map_of_modifiers.insert_or_assign(std::string(
"hard_ai"), new_modifier);
208 auto parsed_modifier = parse_modifier_base(gen, err, context);
210 auto new_modifier = context.
state.
world.create_modifier();
212 context.
state.
world.modifier_set_icon(new_modifier,
uint8_t(parsed_modifier.icon_index));
213 context.
state.
world.modifier_set_name(new_modifier, name_id);
214 context.
state.
world.modifier_set_national_values(new_modifier, parsed_modifier.force_national_mod());
216 context.
map_of_modifiers.insert_or_assign(std::string(
"very_hard_ai"), new_modifier);
223 auto parsed_modifier = parse_modifier_base(gen, err, context);
225 auto new_modifier = context.
state.
world.create_modifier();
227 context.
state.
world.modifier_set_icon(new_modifier,
uint8_t(parsed_modifier.icon_index));
228 context.
state.
world.modifier_set_name(new_modifier, name_id);
229 context.
state.
world.modifier_set_province_values(new_modifier, parsed_modifier.peek_province_mod());
230 context.
state.
world.modifier_set_national_values(new_modifier, parsed_modifier.peek_national_mod());
232 context.
map_of_modifiers.insert_or_assign(std::string(
"overseas"), new_modifier);
239 auto parsed_modifier = parse_modifier_base(gen, err, context);
241 auto new_modifier = context.
state.
world.create_modifier();
243 context.
state.
world.modifier_set_icon(new_modifier,
uint8_t(parsed_modifier.icon_index));
244 context.
state.
world.modifier_set_name(new_modifier, name_id);
245 context.
state.
world.modifier_set_province_values(new_modifier, parsed_modifier.peek_province_mod());
246 context.
state.
world.modifier_set_national_values(new_modifier, parsed_modifier.peek_national_mod());
248 context.
map_of_modifiers.insert_or_assign(std::string(
"coastal"), new_modifier);
255 auto parsed_modifier = parse_modifier_base(gen, err, context);
257 auto new_modifier = context.
state.
world.create_modifier();
259 context.
state.
world.modifier_set_icon(new_modifier,
uint8_t(parsed_modifier.icon_index));
260 context.
state.
world.modifier_set_name(new_modifier, name_id);
261 context.
state.
world.modifier_set_province_values(new_modifier, parsed_modifier.peek_province_mod());
262 context.
state.
world.modifier_set_national_values(new_modifier, parsed_modifier.peek_national_mod());
264 context.
map_of_modifiers.insert_or_assign(std::string(
"non_coastal"), new_modifier);
271 auto parsed_modifier = parse_modifier_base(gen, err, context);
273 auto new_modifier = context.
state.
world.create_modifier();
275 context.
state.
world.modifier_set_icon(new_modifier,
uint8_t(parsed_modifier.icon_index));
276 context.
state.
world.modifier_set_name(new_modifier, name_id);
277 context.
state.
world.modifier_set_province_values(new_modifier, parsed_modifier.peek_province_mod());
278 context.
state.
world.modifier_set_national_values(new_modifier, parsed_modifier.peek_national_mod());
280 context.
map_of_modifiers.insert_or_assign(std::string(
"coastal_sea"), new_modifier);
287 auto parsed_modifier = parse_modifier_base(gen, err, context);
289 auto new_modifier = context.
state.
world.create_modifier();
291 context.
state.
world.modifier_set_icon(new_modifier,
uint8_t(parsed_modifier.icon_index));
292 context.
state.
world.modifier_set_name(new_modifier, name_id);
293 context.
state.
world.modifier_set_province_values(new_modifier, parsed_modifier.peek_province_mod());
294 context.
state.
world.modifier_set_national_values(new_modifier, parsed_modifier.peek_national_mod());
296 context.
map_of_modifiers.insert_or_assign(std::string(
"sea_zone"), new_modifier);
303 auto parsed_modifier = parse_modifier_base(gen, err, context);
305 auto new_modifier = context.
state.
world.create_modifier();
307 context.
state.
world.modifier_set_icon(new_modifier,
uint8_t(parsed_modifier.icon_index));
308 context.
state.
world.modifier_set_name(new_modifier, name_id);
309 context.
state.
world.modifier_set_province_values(new_modifier, parsed_modifier.peek_province_mod());
310 context.
state.
world.modifier_set_national_values(new_modifier, parsed_modifier.peek_national_mod());
312 context.
map_of_modifiers.insert_or_assign(std::string(
"land_province"), new_modifier);
319 auto parsed_modifier = parse_modifier_base(gen, err, context);
321 auto new_modifier = context.
state.
world.create_modifier();
323 context.
state.
world.modifier_set_icon(new_modifier,
uint8_t(parsed_modifier.icon_index));
324 context.
state.
world.modifier_set_name(new_modifier, name_id);
325 context.
state.
world.modifier_set_province_values(new_modifier, parsed_modifier.peek_province_mod());
326 context.
state.
world.modifier_set_national_values(new_modifier, parsed_modifier.peek_national_mod());
328 context.
map_of_modifiers.insert_or_assign(std::string(
"blockaded"), new_modifier);
335 auto parsed_modifier = parse_modifier_base(gen, err, context);
337 auto new_modifier = context.
state.
world.create_modifier();
339 context.
state.
world.modifier_set_icon(new_modifier,
uint8_t(parsed_modifier.icon_index));
340 context.
state.
world.modifier_set_name(new_modifier, name_id);
341 context.
state.
world.modifier_set_province_values(new_modifier, parsed_modifier.peek_province_mod());
342 context.
state.
world.modifier_set_national_values(new_modifier, parsed_modifier.peek_national_mod());
344 context.
map_of_modifiers.insert_or_assign(std::string(
"no_adjacent_controlled"), new_modifier);
351 auto parsed_modifier = parse_modifier_base(gen, err, context);
353 auto new_modifier = context.
state.
world.create_modifier();
355 context.
state.
world.modifier_set_icon(new_modifier,
uint8_t(parsed_modifier.icon_index));
356 context.
state.
world.modifier_set_name(new_modifier, name_id);
357 context.
state.
world.modifier_set_province_values(new_modifier, parsed_modifier.peek_province_mod());
358 context.
state.
world.modifier_set_national_values(new_modifier, parsed_modifier.peek_national_mod());
360 context.
map_of_modifiers.insert_or_assign(std::string(
"core"), new_modifier);
367 auto parsed_modifier = parse_modifier_base(gen, err, context);
369 auto new_modifier = context.
state.
world.create_modifier();
371 context.
state.
world.modifier_set_icon(new_modifier,
uint8_t(parsed_modifier.icon_index));
372 context.
state.
world.modifier_set_name(new_modifier, name_id);
373 context.
state.
world.modifier_set_province_values(new_modifier, parsed_modifier.peek_province_mod());
374 context.
state.
world.modifier_set_national_values(new_modifier, parsed_modifier.peek_national_mod());
376 context.
map_of_modifiers.insert_or_assign(std::string(
"has_siege"), new_modifier);
383 auto parsed_modifier = parse_modifier_base(gen, err, context);
385 auto new_modifier = context.
state.
world.create_modifier();
387 context.
state.
world.modifier_set_icon(new_modifier,
uint8_t(parsed_modifier.icon_index));
388 context.
state.
world.modifier_set_name(new_modifier, name_id);
389 context.
state.
world.modifier_set_province_values(new_modifier, parsed_modifier.peek_province_mod());
390 context.
state.
world.modifier_set_national_values(new_modifier, parsed_modifier.peek_national_mod());
392 context.
map_of_modifiers.insert_or_assign(std::string(
"occupied"), new_modifier);
399 auto parsed_modifier = parse_modifier_base(gen, err, context);
401 auto new_modifier = context.
state.
world.create_modifier();
403 context.
state.
world.modifier_set_icon(new_modifier,
uint8_t(parsed_modifier.icon_index));
404 context.
state.
world.modifier_set_name(new_modifier, name_id);
405 context.
state.
world.modifier_set_province_values(new_modifier, parsed_modifier.peek_province_mod());
406 context.
state.
world.modifier_set_national_values(new_modifier, parsed_modifier.peek_national_mod());
408 context.
map_of_modifiers.insert_or_assign(std::string(
"nationalism"), new_modifier);
415 auto parsed_modifier = parse_modifier_base(gen, err, context);
417 auto new_modifier = context.
state.
world.create_modifier();
419 context.
state.
world.modifier_set_icon(new_modifier,
uint8_t(parsed_modifier.icon_index));
420 context.
state.
world.modifier_set_name(new_modifier, name_id);
421 context.
state.
world.modifier_set_province_values(new_modifier, parsed_modifier.peek_province_mod());
422 context.
state.
world.modifier_set_national_values(new_modifier, parsed_modifier.peek_national_mod());
424 context.
map_of_modifiers.insert_or_assign(std::string(
"infrastructure"), new_modifier);
431 auto parsed_modifier = parse_modifier_base(gen, err, context);
433 auto new_modifier = context.
state.
world.create_modifier();
435 context.
state.
world.modifier_set_icon(new_modifier,
uint8_t(parsed_modifier.icon_index));
436 context.
state.
world.modifier_set_name(new_modifier, name_id);
437 context.
state.
world.modifier_set_national_values(new_modifier, parsed_modifier.force_national_mod());
439 context.
map_of_modifiers.insert_or_assign(std::string(
"base_values"), new_modifier);
446 auto parsed_modifier = parse_modifier_base(gen, err, context);
448 auto new_modifier = context.
state.
world.create_modifier();
450 context.
state.
world.modifier_set_icon(new_modifier,
uint8_t(parsed_modifier.icon_index));
451 context.
state.
world.modifier_set_name(new_modifier, name_id);
452 context.
state.
world.modifier_set_national_values(new_modifier, parsed_modifier.force_national_mod());
454 context.
map_of_modifiers.insert_or_assign(std::string(
"war"), new_modifier);
461 auto parsed_modifier = parse_modifier_base(gen, err, context);
463 auto new_modifier = context.
state.
world.create_modifier();
465 context.
state.
world.modifier_set_icon(new_modifier,
uint8_t(parsed_modifier.icon_index));
466 context.
state.
world.modifier_set_name(new_modifier, name_id);
467 context.
state.
world.modifier_set_national_values(new_modifier, parsed_modifier.force_national_mod());
469 context.
map_of_modifiers.insert_or_assign(std::string(
"peace"), new_modifier);
476 auto parsed_modifier = parse_modifier_base(gen, err, context);
478 auto new_modifier = context.
state.
world.create_modifier();
480 context.
state.
world.modifier_set_icon(new_modifier,
uint8_t(parsed_modifier.icon_index));
481 context.
state.
world.modifier_set_name(new_modifier, name_id);
482 context.
state.
world.modifier_set_national_values(new_modifier, parsed_modifier.force_national_mod());
484 context.
map_of_modifiers.insert_or_assign(std::string(
"disarming"), new_modifier);
491 auto parsed_modifier = parse_modifier_base(gen, err, context);
493 auto new_modifier = context.
state.
world.create_modifier();
495 context.
state.
world.modifier_set_icon(new_modifier,
uint8_t(parsed_modifier.icon_index));
496 context.
state.
world.modifier_set_name(new_modifier, name_id);
497 context.
state.
world.modifier_set_national_values(new_modifier, parsed_modifier.force_national_mod());
499 context.
map_of_modifiers.insert_or_assign(std::string(
"war_exhaustion"), new_modifier);
506 auto parsed_modifier = parse_modifier_base(gen, err, context);
508 auto new_modifier = context.
state.
world.create_modifier();
510 context.
state.
world.modifier_set_icon(new_modifier,
uint8_t(parsed_modifier.icon_index));
511 context.
state.
world.modifier_set_name(new_modifier, name_id);
512 context.
state.
world.modifier_set_national_values(new_modifier, parsed_modifier.force_national_mod());
514 context.
map_of_modifiers.insert_or_assign(std::string(
"badboy"), new_modifier);
521 auto parsed_modifier = parse_modifier_base(gen, err, context);
523 auto new_modifier = context.
state.
world.create_modifier();
525 context.
state.
world.modifier_set_icon(new_modifier,
uint8_t(parsed_modifier.icon_index));
526 context.
state.
world.modifier_set_name(new_modifier, name_id);
527 context.
state.
world.modifier_set_national_values(new_modifier, parsed_modifier.force_national_mod());
529 context.
map_of_modifiers.insert_or_assign(std::string(
"debt_default_to"), new_modifier);
536 auto parsed_modifier = parse_modifier_base(gen, err, context);
538 auto new_modifier = context.
state.
world.create_modifier();
541 context.
state.
world.modifier_set_name(new_modifier, name_id);
542 context.
state.
world.modifier_set_national_values(new_modifier, parsed_modifier.force_national_mod());
544 context.
map_of_modifiers.insert_or_assign(std::string(
"bad_debter"), new_modifier);
551 auto parsed_modifier = parse_modifier_base(gen, err, context);
553 auto new_modifier = context.
state.
world.create_modifier();
555 context.
state.
world.modifier_set_icon(new_modifier,
uint8_t(parsed_modifier.icon_index));
556 context.
state.
world.modifier_set_name(new_modifier, name_id);
557 context.
state.
world.modifier_set_national_values(new_modifier, parsed_modifier.force_national_mod());
559 context.
map_of_modifiers.insert_or_assign(std::string(
"great_power"), new_modifier);
566 auto parsed_modifier = parse_modifier_base(gen, err, context);
568 auto new_modifier = context.
state.
world.create_modifier();
570 context.
state.
world.modifier_set_icon(new_modifier,
uint8_t(parsed_modifier.icon_index));
571 context.
state.
world.modifier_set_name(new_modifier, name_id);
572 context.
state.
world.modifier_set_national_values(new_modifier, parsed_modifier.force_national_mod());
574 context.
map_of_modifiers.insert_or_assign(std::string(
"second_power"), new_modifier);
581 auto parsed_modifier = parse_modifier_base(gen, err, context);
583 auto new_modifier = context.
state.
world.create_modifier();
585 context.
state.
world.modifier_set_icon(new_modifier,
uint8_t(parsed_modifier.icon_index));
586 context.
state.
world.modifier_set_name(new_modifier, name_id);
587 context.
state.
world.modifier_set_national_values(new_modifier, parsed_modifier.force_national_mod());
589 context.
map_of_modifiers.insert_or_assign(std::string(
"civ_nation"), new_modifier);
596 auto parsed_modifier = parse_modifier_base(gen, err, context);
598 auto new_modifier = context.
state.
world.create_modifier();
600 context.
state.
world.modifier_set_icon(new_modifier,
uint8_t(parsed_modifier.icon_index));
601 context.
state.
world.modifier_set_name(new_modifier, name_id);
602 context.
state.
world.modifier_set_national_values(new_modifier, parsed_modifier.force_national_mod());
604 context.
map_of_modifiers.insert_or_assign(std::string(
"unciv_nation"), new_modifier);
611 auto parsed_modifier = parse_modifier_base(gen, err, context);
613 auto new_modifier = context.
state.
world.create_modifier();
615 context.
state.
world.modifier_set_icon(new_modifier,
uint8_t(parsed_modifier.icon_index));
616 context.
state.
world.modifier_set_name(new_modifier, name_id);
617 context.
state.
world.modifier_set_national_values(new_modifier, parsed_modifier.force_national_mod());
619 context.
map_of_modifiers.insert_or_assign(std::string(
"average_literacy"), new_modifier);
626 auto parsed_modifier = parse_modifier_base(gen, err, context);
628 auto new_modifier = context.
state.
world.create_modifier();
630 context.
state.
world.modifier_set_icon(new_modifier,
uint8_t(parsed_modifier.icon_index));
631 context.
state.
world.modifier_set_name(new_modifier, name_id);
632 context.
state.
world.modifier_set_national_values(new_modifier, parsed_modifier.force_national_mod());
634 context.
map_of_modifiers.insert_or_assign(std::string(
"plurality"), new_modifier);
641 auto parsed_modifier = parse_modifier_base(gen, err, context);
643 auto new_modifier = context.
state.
world.create_modifier();
646 context.
state.
world.modifier_set_name(new_modifier, name_id);
647 context.
state.
world.modifier_set_national_values(new_modifier, parsed_modifier.force_national_mod());
649 context.
map_of_modifiers.insert_or_assign(std::string(
"generalised_debt_default"), new_modifier);
656 auto parsed_modifier = parse_modifier_base(gen, err, context);
658 auto new_modifier = context.
state.
world.create_modifier();
660 context.
state.
world.modifier_set_icon(new_modifier,
uint8_t(parsed_modifier.icon_index));
661 context.
state.
world.modifier_set_name(new_modifier, name_id);
662 context.
state.
world.modifier_set_national_values(new_modifier, parsed_modifier.force_national_mod());
664 context.
map_of_modifiers.insert_or_assign(std::string(
"total_occupation"), new_modifier);
671 auto parsed_modifier = parse_modifier_base(gen, err, context);
673 auto new_modifier = context.
state.
world.create_modifier();
675 context.
state.
world.modifier_set_icon(new_modifier,
uint8_t(parsed_modifier.icon_index));
676 context.
state.
world.modifier_set_name(new_modifier, name_id);
677 context.
state.
world.modifier_set_national_values(new_modifier, parsed_modifier.force_national_mod());
679 context.
map_of_modifiers.insert_or_assign(std::string(
"total_blockaded"), new_modifier);
686 auto parsed_modifier = parse_modifier_base(gen, err, context);
688 auto new_modifier = context.
state.
world.create_modifier();
691 context.
state.
world.modifier_set_name(new_modifier, name_id);
692 context.
state.
world.modifier_set_national_values(new_modifier, parsed_modifier.force_national_mod());
694 context.
map_of_modifiers.insert_or_assign(std::string(
"in_bankrupcy"), new_modifier);
701 auto parsed_modifier = parse_modifier_base(gen, err, context);
703 auto new_modifier = context.
state.
world.create_modifier();
705 context.
state.
world.modifier_set_icon(new_modifier,
uint8_t(parsed_modifier.icon_index));
706 context.
state.
world.modifier_set_name(new_modifier, name_id);
709 context.
state.
world.modifier_set_desc(new_modifier, desc_1);
711 context.
state.
world.modifier_set_province_values(new_modifier, parsed_modifier.peek_province_mod());
712 context.
state.
world.modifier_set_national_values(new_modifier, parsed_modifier.peek_national_mod());
727 parse_party(gen, err, new_context);
733 auto found_type = it->second;
735 parse_unit_names_list(gen, err, new_context);
746 dcon::national_variable_id new_id = dcon::national_variable_id(
759 dcon::national_flag_id new_id =
772 dcon::global_flag_id new_id =
797 context.
id = new_focus;
798 auto modifier = parse_national_focus(gen, err, context);
802 if(modifier.next_to_add_n != 0 || modifier.next_to_add_p != 0) {
818 else if(
is_fixed_token_ci(name.data(), name.data() + name.length(),
"immigration_focus"))
820 else if(
is_fixed_token_ci(name.data(), name.data() + name.length(),
"diplomatic_focus"))
822 else if(
is_fixed_token_ci(name.data(), name.data() + name.length(),
"promotion_focus"))
824 else if(
is_fixed_token_ci(name.data(), name.data() + name.length(),
"production_focus"))
826 else if(
is_fixed_token_ci(name.data(), name.data() + name.length(),
"party_loyalty_focus"))
829 else if(
is_fixed_token_ci(name.data(), name.data() + name.length(),
"policy_focus"))
831 else if(
is_fixed_token_ci(name.data(), name.data() + name.length(),
"tier_1_focus"))
833 else if(
is_fixed_token_ci(name.data(), name.data() + name.length(),
"tier_2_focus"))
835 else if(
is_fixed_token_ci(name.data(), name.data() + name.length(),
"tier_3_focus"))
837 else if(
is_fixed_token_ci(name.data(), name.data() + name.length(),
"tier_4_focus"))
839 else if(
is_fixed_token_ci(name.data(), name.data() + name.length(),
"tier_5_focus"))
841 else if(
is_fixed_token_ci(name.data(), name.data() + name.length(),
"tier_6_focus"))
843 else if(
is_fixed_token_ci(name.data(), name.data() + name.length(),
"tier_7_focus"))
845 else if(
is_fixed_token_ci(name.data(), name.data() + name.length(),
"tier_8_focus"))
847 else if(
is_fixed_token_ci(name.data(), name.data() + name.length(),
"building_focus"))
849 else if(
is_fixed_token_ci(name.data(), name.data() + name.length(),
"population_focus"))
851 else if(
is_fixed_token_ci(name.data(), name.data() + name.length(),
"heavy_industry_focus"))
853 else if(
is_fixed_token_ci(name.data(), name.data() + name.length(),
"consumer_goods_focus"))
855 else if(
is_fixed_token_ci(name.data(), name.data() + name.length(),
"military_goods_focus"))
857 else if(
is_fixed_token_ci(name.data(), name.data() + name.length(),
"immigration_colonization_focus"))
863 parse_focus_group(gen, err, new_context);
879 e_context.effect_is_for_event =
false;
884 auto new_decision = context.
state.
world.create_decision();
890 auto gfx = open_directory(root,
NATIVE(
"gfx"));
891 auto pictures = open_directory(gfx,
NATIVE(
"pictures"));
892 auto decisions = open_directory(pictures,
NATIVE(
"decisions"));
895 context.
state.
world.decision_set_name(new_decision, name_id);
896 context.
state.
world.decision_set_description(new_decision, desc_id);
899 parse_decision(gen, err, new_context);
901 if(!context.
state.
world.decision_get_image(new_decision)) {
904 return std::string(name) +
".tga";
906 return std::string(name) +
".tga";
908 return std::string(name) +
".tga";
910 return std::string(
"noimage.tga");
914 context.
state.
world.decision_set_image(new_decision, it->second);
919 auto new_id = dcon::gfx_object_id(uint16_t(gfxindex));
936 context.
state.
world.decision_set_image(new_decision, new_id);
943 auto scan_result = parse_scan_event(scan_copy, err, context);
945 if(scan_result.is_triggered_only) {
947 if(it->second.text_assigned) {
950 it->second.generator_state = gen;
951 it->second.text_assigned =
true;
952 it->second.original_file = err.
file_name;
956 pending_prov_event{ err.file_name, dcon::provincial_event_id(), trigger::slot_contents::empty, trigger::slot_contents::empty,
957 trigger::slot_contents::empty, gen, false});
962 if(it->second.text_assigned) {
965 it->second.generator_state = gen;
966 it->second.text_assigned =
true;
967 it->second.original_file = err.
file_name;
971 pending_prov_event{ err.file_name, dcon::provincial_event_id(), trigger::slot_contents::empty, trigger::slot_contents::empty,
972 trigger::slot_contents::empty, gen, true });
977 auto event_result = parse_generic_event(gen, err, e_context);
978 auto new_id = context.
state.
world.create_free_provincial_event();
979 auto fid = fatten(context.
state.
world, new_id);
980 fid.set_description(event_result.desc_);
981 fid.set_immediate_effect(event_result.immediate_);
982 fid.set_name(event_result.title_);
983 fid.set_mtth(event_result.mean_time_to_happen);
984 fid.set_only_once(event_result.fire_only_once);
985 fid.set_trigger(event_result.trigger);
986 fid.get_options() = event_result.options;
991 auto scan_result = parse_scan_event(scan_copy, err, context);
993 if(scan_result.is_triggered_only) {
995 if(it->second.text_assigned) {
998 it->second.generator_state = gen;
999 it->second.text_assigned =
true;
1000 it->second.original_file = err.
file_name;
1004 pending_nat_event{ err.file_name, dcon::national_event_id(), trigger::slot_contents::empty, trigger::slot_contents::empty,
1005 trigger::slot_contents::empty, gen, false});
1010 if(it->second.text_assigned) {
1013 it->second.generator_state = gen;
1014 it->second.text_assigned =
true;
1015 it->second.original_file = err.
file_name;
1019 pending_nat_event{ err.file_name, dcon::national_event_id(), trigger::slot_contents::empty, trigger::slot_contents::empty,
1020 trigger::slot_contents::empty, gen, true });
1025 auto event_result = parse_generic_event(gen, err, e_context);
1026 auto new_id = context.
state.
world.create_free_national_event();
1027 auto fid = fatten(context.
state.
world, new_id);
1028 fid.set_description(event_result.desc_);
1029 fid.set_name(event_result.title_);
1030 fid.set_image(event_result.picture_);
1031 fid.set_immediate_effect(event_result.immediate_);
1032 fid.set_is_major(event_result.major);
1033 fid.set_mtth(event_result.mean_time_to_happen);
1034 fid.set_only_once(event_result.fire_only_once);
1035 fid.set_trigger(event_result.trigger);
1036 fid.get_options() = event_result.options;
1037 fid.set_legacy_id(
uint32_t(event_result.id));
1043 auto event_result = parse_generic_event(gen, err, e_context);
1046 fid.set_description(event_result.desc_);
1047 fid.set_name(event_result.title_);
1048 fid.set_image(event_result.picture_);
1049 fid.set_allow_multiple_instances(event_result.allow_multiple_instances);
1050 fid.set_immediate_effect(event_result.immediate_);
1051 fid.set_is_major(event_result.major);
1052 fid.get_options() = event_result.options;
1058 if(value.days <= 0) {
1060 context.
compiled_effect.push_back(uint16_t(effect::country_event_immediate_this_nation));
1062 context.
compiled_effect.push_back(uint16_t(effect::country_event_immediate_this_province));
1064 context.
compiled_effect.push_back(uint16_t(effect::country_event_immediate_this_state));
1066 context.
compiled_effect.push_back(uint16_t(effect::country_event_immediate_this_pop));
1075 context.
compiled_effect.push_back(uint16_t(effect::country_event_this_nation));
1077 context.
compiled_effect.push_back(uint16_t(effect::country_event_this_province));
1079 context.
compiled_effect.push_back(uint16_t(effect::country_event_this_state));
1081 context.
compiled_effect.push_back(uint16_t(effect::country_event_this_pop));
1091 if(value.days <= 0) {
1093 context.
compiled_effect.push_back(uint16_t(effect::country_event_immediate_province_this_nation));
1095 context.
compiled_effect.push_back(uint16_t(effect::country_event_immediate_province_this_province));
1097 context.
compiled_effect.push_back(uint16_t(effect::country_event_immediate_province_this_state));
1099 context.
compiled_effect.push_back(uint16_t(effect::country_event_immediate_province_this_pop));
1108 context.
compiled_effect.push_back(uint16_t(effect::country_event_province_this_nation));
1110 context.
compiled_effect.push_back(uint16_t(effect::country_event_province_this_province));
1112 context.
compiled_effect.push_back(uint16_t(effect::country_event_province_this_state));
1114 context.
compiled_effect.push_back(uint16_t(effect::country_event_province_this_pop));
1131 auto event_result = parse_generic_event(gen, err, e_context);
1134 fid.set_description(event_result.desc_);
1135 fid.set_immediate_effect(event_result.immediate_);
1136 fid.set_name(event_result.title_);
1137 fid.get_options() = event_result.options;
1143 if(value.days <= 0) {
1145 context.
compiled_effect.push_back(uint16_t(effect::province_event_immediate_this_nation));
1147 context.
compiled_effect.push_back(uint16_t(effect::province_event_immediate_this_province));
1149 context.
compiled_effect.push_back(uint16_t(effect::province_event_immediate_this_state));
1151 context.
compiled_effect.push_back(uint16_t(effect::province_event_immediate_this_pop));
1159 context.
compiled_effect.push_back(uint16_t(effect::province_event_this_nation));
1161 context.
compiled_effect.push_back(uint16_t(effect::province_event_this_province));
1163 context.
compiled_effect.push_back(uint16_t(effect::province_event_this_state));
1165 context.
compiled_effect.push_back(uint16_t(effect::province_event_this_pop));
1186 e_context.effect_is_for_event =
true;
1199 e_context.effect_is_for_event =
true;
1202 e_context.compiled_effect.push_back(uint16_t(0));
1203 auto payload_size_offset = e_context.compiled_effect.size() - 1;
1204 e_context.limit_position = e_context.compiled_effect.size();
1205 e_context.compiled_effect.push_back(
trigger::payload(dcon::trigger_key()).value);
1208 auto opt_result = parse_event_option(gen, err, e_context);
1210 e_context.compiled_effect[payload_size_offset] = uint16_t(e_context.compiled_effect.size() - payload_size_offset);
1212 if(e_context.compiled_effect.size() >= std::numeric_limits<uint16_t>::max()) {
1214 std::to_string(e_context.compiled_effect.size()) +
1215 " cells big, which exceeds 64 KB bytecode limit (" + err.
file_name +
")\n";
1220 auto const new_size =
simplify_effect(e_context.compiled_effect.data());
1221 e_context.compiled_effect.resize(
static_cast<size_t>(new_size));
1223 e_context.compiled_effect.clear();
1235 if(!e.second.processed && e.second.text_assigned && !e.second.just_in_case_placeholder&& e.second.main_slot !=
trigger::slot_contents::empty) {
1236 e.second.processed =
true;
1239 if(!
bool(e.second.id))
1240 e.second.id = context.
state.
world.create_national_event();
1242 auto data_copy = e.second;
1244 err.
file_name = e.second.original_file +
" [pending]";
1246 event_building_context e_context{context, data_copy.main_slot, data_copy.this_slot, data_copy.from_slot};
1247 auto event_result = parse_generic_event(data_copy.generator_state, err, e_context);
1249 auto fid = fatten(context.
state.
world, data_copy.id);
1250 fid.set_description(event_result.desc_);
1251 fid.set_name(event_result.title_);
1252 fid.set_image(event_result.picture_);
1253 fid.set_immediate_effect(event_result.immediate_);
1254 fid.set_is_major(event_result.major);
1255 fid.set_allow_multiple_instances(event_result.allow_multiple_instances);
1256 fid.get_options() = event_result.options;
1259 if(r.id == data_copy.id) {
1260 r.condition = event_result.trigger;
1264 if(r.id == data_copy.id) {
1265 r.condition = event_result.trigger;
1269 if(r.id == data_copy.id) {
1270 r.condition = event_result.trigger;
1274 if(r.id == data_copy.id) {
1275 r.condition = event_result.trigger;
1279 if(r.id == data_copy.id) {
1280 r.condition = event_result.trigger;
1284 if(r.id == data_copy.id) {
1285 r.condition = event_result.trigger;
1286 r.issue_group = event_result.issue_group_;
1290 if(r.id == data_copy.id) {
1291 r.condition = event_result.trigger;
1295 if(r.id == data_copy.id) {
1296 r.condition = event_result.trigger;
1300 if(r.id == data_copy.id) {
1301 r.condition = event_result.trigger;
1305 if(r.id == data_copy.id) {
1306 r.condition = event_result.trigger;
1310 if(r.id == data_copy.id) {
1311 r.condition = event_result.trigger;
1315 if(r.id == data_copy.id) {
1316 r.condition = event_result.trigger;
1320 if(r.id == data_copy.id) {
1321 r.condition = event_result.trigger;
1325 if(r.id == data_copy.id) {
1326 r.condition = event_result.trigger;
1330 if(r.id == data_copy.id) {
1331 r.condition = event_result.trigger;
1335 if(r.id == data_copy.id) {
1336 r.condition = event_result.trigger;
1340 if(r.id == data_copy.id) {
1341 r.condition = event_result.trigger;
1352 if(!e.second.processed && e.second.text_assigned && !e.second.just_in_case_placeholder && e.second.main_slot !=
trigger::slot_contents::empty) {
1353 e.second.processed =
true;
1356 if(!
bool(e.second.id))
1357 e.second.id = context.
state.
world.create_provincial_event();
1359 auto data_copy = e.second;
1361 err.
file_name = e.second.original_file +
" [pending]";
1363 event_building_context e_context{context, data_copy.main_slot, data_copy.this_slot, data_copy.from_slot};
1364 auto event_result = parse_generic_event(data_copy.generator_state, err, e_context);
1366 auto fid = fatten(context.
state.
world, data_copy.id);
1367 fid.set_description(event_result.desc_);
1368 fid.set_immediate_effect(event_result.immediate_);
1369 fid.set_name(event_result.title_);
1370 fid.get_options() = event_result.options;
1373 if(r.id == data_copy.id) {
1374 r.condition = event_result.trigger;
1378 if(r.id == data_copy.id) {
1379 r.condition = event_result.trigger;
1390 if(!e.second.just_in_case_placeholder) {
1391 if(!e.second.text_assigned) {
1392 err.
accumulated_warnings +=
"Event id: " + std::to_string(e.first) +
" referenced but never defined. \n";
1393 }
else if(!e.second.processed) {
1394 err.
accumulated_warnings +=
"Event id: " + std::to_string(e.first) +
" defined but never triggered. \n";
1399 if(!e.second.just_in_case_placeholder) {
1400 if(!e.second.text_assigned) {
1401 err.
accumulated_warnings +=
"Event id: " + std::to_string(e.first) +
" referenced but never defined. \n";
1402 }
else if(!e.second.processed) {
1403 err.
accumulated_warnings +=
"Event id: " + std::to_string(e.first) +
" defined but never triggered. \n";
1410 if(tag.length() == 3) {
1413 auto holder = context.
outer_context.
state.
world.national_identity_get_nation_from_identity_holder(it->second);
1416 parse_oob_relationship(gen, err, new_context);
1431 auto a = parse_alliance(gen, err, context);
1433 if(a.invalid || !a.first_ || !a.second_)
1436 auto rel = context.
state.
world.get_diplomatic_relation_by_diplomatic_pair(a.first_, a.second_);
1438 context.
state.
world.diplomatic_relation_set_are_allied(rel,
true);
1440 auto new_rel = context.
state.
world.force_create_diplomatic_relation(a.first_, a.second_);
1441 context.
state.
world.diplomatic_relation_set_are_allied(new_rel,
true);
1445 auto a = parse_vassal_description(gen, err, context);
1446 if(!a.invalid && a.second_ && a.first_) {
1447 context.
state.
world.force_create_overlord(a.second_, a.first_);
1451 auto a = parse_vassal_description(gen, err, context);
1452 if(!a.invalid && a.second_ && a.first_) {
1453 context.
state.
world.force_create_overlord(a.second_, a.first_);
1454 context.
state.
world.nation_set_is_substate(a.second_,
true);
1462 parse_country_history_file(gen, err, context);
std::string accumulated_errors
std::string accumulated_warnings
tag_type emplace_back(T &&... ts)
value_type & safe_get(tag_type t)
tagged_vector< gfx_object, dcon::gfx_object_id > gfx
tagged_vector< dcon::text_key, dcon::texture_id > textures
pop_satisfaction_wrapper_fat fatten(data_container const &c, pop_satisfaction_wrapper_id id) noexcept
constexpr uint16_t generic_scope
constexpr uint16_t scope_has_limit
@ immigration_colonization_focus
uint32_t tag_to_int(char first, char second, char third)
void m_disarming(token_generator &gen, error_handler &err, scenario_building_context &context)
void m_infrastructure(token_generator &gen, error_handler &err, scenario_building_context &context)
void m_hard_ai(token_generator &gen, error_handler &err, scenario_building_context &context)
void m_land_province(token_generator &gen, error_handler &err, scenario_building_context &context)
void make_oob_relationship(std::string_view tag, token_generator &gen, error_handler &err, oob_file_context &context)
void m_no_adjacent_controlled(token_generator &gen, error_handler &err, scenario_building_context &context)
void register_trigger(token_generator &gen, error_handler &err, triggered_modifier_context &context)
dcon::trigger_key read_triggered_modifier_condition(token_generator &gen, error_handler &err, scenario_building_context &context)
dcon::trigger_key make_trigger(token_generator &gen, error_handler &err, trigger_building_context &context)
void m_badboy(token_generator &gen, error_handler &err, scenario_building_context &context)
void m_total_occupation(token_generator &gen, error_handler &err, scenario_building_context &context)
void m_civ_nation(token_generator &gen, error_handler &err, scenario_building_context &context)
void make_alliance(token_generator &gen, error_handler &err, scenario_building_context &context)
void make_unit_names_list(std::string_view name, token_generator &gen, error_handler &err, country_file_context &context)
void m_base_values(token_generator &gen, error_handler &err, scenario_building_context &context)
void m_has_siege(token_generator &gen, error_handler &err, scenario_building_context &context)
void lambda_country_event(token_generator &gen, error_handler &err, effect_building_context &context)
void scan_province_event(token_generator &gen, error_handler &err, scenario_building_context &context)
void make_triggered_modifier(std::string_view name, token_generator &gen, error_handler &err, scenario_building_context &context)
void m_second_power(token_generator &gen, error_handler &err, scenario_building_context &context)
void m_non_coastal(token_generator &gen, error_handler &err, scenario_building_context &context)
int32_t simplify_effect(uint16_t *source)
void m_easy_ai(token_generator &gen, error_handler &err, scenario_building_context &context)
dcon::trigger_key make_event_trigger(token_generator &gen, error_handler &err, event_building_context &context)
void commit_pending_events(error_handler &err, scenario_building_context &context)
void m_easy_player(token_generator &gen, error_handler &err, scenario_building_context &context)
void m_overseas(token_generator &gen, error_handler &err, scenario_building_context &context)
void lambda_province_event(token_generator &gen, error_handler &err, effect_building_context &context)
void make_event_modifier(std::string_view name, token_generator &gen, error_handler &err, scenario_building_context &context)
dcon::trigger_key make_focus_limit(token_generator &gen, error_handler &err, national_focus_context &context)
dcon::effect_key make_decision_effect(token_generator &gen, error_handler &err, decision_context &context)
void enter_country_file_dated_block(std::string_view label, token_generator &gen, error_handler &err, country_history_context &context)
void m_coastal_sea(token_generator &gen, error_handler &err, scenario_building_context &context)
void make_focus_group(std::string_view name, token_generator &gen, error_handler &err, scenario_building_context &context)
dcon::value_modifier_key make_event_mtth(token_generator &gen, error_handler &err, event_building_context &context)
dcon::value_modifier_key make_value_modifier(token_generator &gen, error_handler &err, trigger_building_context &context)
void m_peace(token_generator &gen, error_handler &err, scenario_building_context &context)
void scan_country_event(token_generator &gen, error_handler &err, scenario_building_context &context)
void m_very_easy_ai(token_generator &gen, error_handler &err, scenario_building_context &context)
void make_party(token_generator &gen, error_handler &err, country_file_context &context)
void m_average_literacy(token_generator &gen, error_handler &err, scenario_building_context &context)
bool is_fixed_token_ci(char const *start, char const *end, char const (&t)[N])
dcon::trigger_key make_decision_trigger(token_generator &gen, error_handler &err, decision_context &context)
void make_vassal(token_generator &gen, error_handler &err, scenario_building_context &context)
void m_plurality(token_generator &gen, error_handler &err, scenario_building_context &context)
sys::event_option make_event_option(token_generator &gen, error_handler &err, event_building_context &context)
sys::year_month_day parse_date(std::string_view content, int32_t line, error_handler &err)
void make_decision(std::string_view name, token_generator &gen, error_handler &err, scenario_building_context &context)
void m_great_power(token_generator &gen, error_handler &err, scenario_building_context &context)
void m_hard_player(token_generator &gen, error_handler &err, scenario_building_context &context)
dcon::effect_key make_effect(token_generator &gen, error_handler &err, effect_building_context &context)
void m_very_hard_player(token_generator &gen, error_handler &err, scenario_building_context &context)
void make_national_value(std::string_view name, token_generator &gen, error_handler &err, scenario_building_context &context)
void m_debt_default_to(token_generator &gen, error_handler &err, scenario_building_context &context)
void m_unciv_nation(token_generator &gen, error_handler &err, scenario_building_context &context)
void m_occupied(token_generator &gen, error_handler &err, scenario_building_context &context)
void m_very_easy_player(token_generator &gen, error_handler &err, scenario_building_context &context)
dcon::effect_key make_immediate_effect(token_generator &gen, error_handler &err, event_building_context &context)
void m_core(token_generator &gen, error_handler &err, scenario_building_context &context)
void m_generalised_debt_default(token_generator &gen, error_handler &err, scenario_building_context &context)
void make_substate(token_generator &gen, error_handler &err, scenario_building_context &context)
dcon::value_modifier_key make_option_ai_chance(token_generator &gen, error_handler &err, effect_building_context &context)
dcon::value_modifier_key make_decision_ai_choice(token_generator &gen, error_handler &err, decision_context &context)
std::string slot_contents_to_string(trigger::slot_contents v)
void m_bad_debter(token_generator &gen, error_handler &err, scenario_building_context &context)
void m_total_blockaded(token_generator &gen, error_handler &err, scenario_building_context &context)
void m_nationalism(token_generator &gen, error_handler &err, scenario_building_context &context)
void m_war_exhaustion(token_generator &gen, error_handler &err, scenario_building_context &context)
void m_very_hard_ai(token_generator &gen, error_handler &err, scenario_building_context &context)
void make_focus(std::string_view name, token_generator &gen, error_handler &err, national_focus_context &context)
void m_sea_zone(token_generator &gen, error_handler &err, scenario_building_context &context)
void m_in_bankrupcy(token_generator &gen, error_handler &err, scenario_building_context &context)
void m_blockaded(token_generator &gen, error_handler &err, scenario_building_context &context)
void m_coastal(token_generator &gen, error_handler &err, scenario_building_context &context)
void m_war(token_generator &gen, error_handler &err, scenario_building_context &context)
native_string utf8_to_native(std::string_view data_in)
std::string remove_double_backslashes(std::string_view data_in)
std::string produce_simple_string(sys::state const &state, dcon::text_key id)
dcon::text_key find_or_add_key(sys::state &state, std::string_view key, bool as_unicode)
std::vector< fixed_event > on_surrender
std::vector< fixed_event > on_colony_to_state
std::vector< fixed_event > on_lost_great_nation
dcon::modifier_id overseas
std::vector< fixed_event > on_yearly_pulse
dcon::modifier_id total_occupation
dcon::modifier_id total_blockaded
std::vector< fixed_event > on_civilize
std::vector< fixed_event > on_debtor_default_small
std::vector< fixed_event > on_state_conquest
std::vector< fixed_event > on_election_started
dcon::modifier_id land_province
dcon::modifier_id easy_ai
tagged_vector< dcon::text_key, dcon::national_variable_id > variable_names
dcon::modifier_id very_hard_ai
dcon::modifier_id base_values
dcon::modifier_id generalised_debt_default
dcon::modifier_id coastal_sea
dcon::national_identity_id rebel_id
dcon::modifier_id very_hard_player
dcon::modifier_id hard_ai
std::vector< fixed_event > on_election_finished
dcon::modifier_id nationalism
std::vector< fixed_province_event > on_battle_won
dcon::modifier_id debt_default_to
dcon::modifier_id coastal
tagged_vector< dcon::text_key, dcon::global_flag_id > global_flag_variable_names
std::vector< fixed_event > on_colony_to_state_free_slaves
dcon::modifier_id hard_player
dcon::modifier_id very_easy_ai
dcon::modifier_id unciv_nation
std::vector< fixed_event > on_quarterly_pulse
dcon::modifier_id non_coastal
dcon::modifier_id in_bankrupcy
dcon::modifier_id disarming
dcon::modifier_id easy_player
int32_t num_allocated_global_flags
dcon::modifier_id bad_debter
tagged_vector< dcon::text_key, dcon::national_flag_id > flag_variable_names
dcon::modifier_id civ_nation
dcon::modifier_id plurality
dcon::modifier_id no_adjacent_controlled
std::vector< fixed_event > on_debtor_default
std::vector< fixed_event > on_crisis_declare_interest
dcon::modifier_id sea_zone
dcon::modifier_id blockaded
int32_t num_allocated_national_variables
int32_t num_allocated_national_flags
std::vector< triggered_modifier > triggered_modifiers
std::vector< fixed_event > on_my_factories_nationalized
dcon::modifier_id great_power
std::vector< fixed_election_event > on_election_tick
dcon::modifier_id war_exhaustion
dcon::modifier_id infrastructure
dcon::modifier_id average_literacy
dcon::modifier_id second_power
dcon::modifier_id occupied
dcon::modifier_id very_easy_player
dcon::modifier_id has_siege
std::vector< fixed_event > on_new_great_nation
std::vector< fixed_event > on_debtor_default_second
std::vector< fixed_province_event > on_battle_lost
ankerl::unordered_dense::map< std::string, dcon::gfx_object_id > map_of_names
ankerl::unordered_dense::map< std::string, dcon::texture_id > map_of_texture_names
dcon::national_identity_id id
scenario_building_context & outer_context
scenario_building_context & outer_context
scenario_building_context & outer_context
trigger::slot_contents this_slot
scenario_building_context & outer_context
std::vector< uint16_t > compiled_effect
trigger::slot_contents from_slot
trigger::slot_contents main_slot
scenario_building_context & outer_context
trigger::slot_contents this_slot
trigger::slot_contents main_slot
trigger::slot_contents from_slot
sys::national_modifier_definition force_national_mod() const
::nations::focus_type type
dcon::national_focus_id id
scenario_building_context & outer_context
void any_value(std::string_view tag, association_type, std::string_view txt, error_handler &err, int32_t line, scenario_building_context &context)
scenario_building_context & outer_context
dcon::nation_id nation_for
tagged_vector< std::string, dcon::national_identity_id > file_names_for_idents
ankerl::unordered_dense::map< std::string, dcon::unit_type_id > map_of_unit_types
ankerl::unordered_dense::map< std::string, dcon::national_variable_id > map_of_national_variables
ankerl::unordered_dense::map< std::string, dcon::national_flag_id > map_of_national_flags
ankerl::unordered_dense::map< std::string, dcon::national_focus_id > map_of_national_focuses
ankerl::unordered_dense::map< std::string, dcon::modifier_id > map_of_modifiers
ankerl::unordered_dense::map< std::string, dcon::global_flag_id > map_of_global_flags
ankerl::unordered_dense::map< int32_t, pending_nat_event > map_of_national_events
dcon::global_flag_id get_global_flag(std::string const &name)
dcon::national_flag_id get_national_flag(std::string const &name)
ankerl::unordered_dense::map< int32_t, pending_prov_event > map_of_provincial_events
std::vector< pending_triggered_modifier_content > set_of_triggered_modifiers
ankerl::unordered_dense::map< uint32_t, dcon::national_identity_id > map_of_ident_names
building_gfx_context gfx_context
dcon::national_variable_id get_national_variable(std::string const &name)
int32_t number_of_national_values_seen
scenario_building_context & outer_context
void finish(triggered_modifier_context &)
dcon::value_modifier_key ai_chance
dcon::text_key add_key_win1252(std::string const &text)
dcon::data_container world
dcon::effect_key commit_effect_data(std::vector< uint16_t > data)
simple_fs::file_system common_fs
absolute_time_point start_date
nations::global_national_state national_definitions
dcon::texture_id primary_texture_handle