Skip to content
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
Show all changes
124 commits
Select commit Hold shift + click to select a range
537d0e3
Great Reorganization: codegen fix
quietust Feb 9, 2025
b2e882b
Great Reorganization: abstract_building.h
quietust Jan 23, 2025
47cdd93
Great Reorganization: activity.h
quietust Jan 23, 2025
b8ccaf9
Great Reorganization: activity_meeting.h
quietust Jan 23, 2025
7665e3b
Great Reorganization: adventure.h
quietust Jan 24, 2025
b5808f1
Great Reorganization: adventure_log.h
quietust Jan 24, 2025
25af77e
Great Reorganization: agreement.h
quietust Jan 24, 2025
357df87
Great Reorganization: alert_state.h
quietust Jan 24, 2025
10ac26d
Great Reorganization: announcement.h
quietust Jan 24, 2025
8815430
Great Reorganization: army_controller.h
quietust Jan 24, 2025
33d9035
Great Reorganization: army.h
quietust Jan 24, 2025
589a5d5
Great Reorganization: army_tracking_info.h
quietust Jan 24, 2025
282694f
Great Reorganization: art_image.h
quietust Jan 24, 2025
f92746f
Great Reorganization: battlefield.h
quietust Jan 24, 2025
9fcc116
Great Reorganization: belief_system.h
quietust Jan 24, 2025
6199250
Great Reorganization: block.h
quietust Jan 24, 2025
bd946bc
Great Reorganization: breed.h
quietust Jan 24, 2025
a984bca
Great Reorganization: building_def.h
quietust Jan 24, 2025
a6f3bd1
Great Reorganization: building.h
quietust Jan 25, 2025
523116e
Great Reorganization: building_use_controller.h
quietust Jan 25, 2025
b19e316
Great Reorganization: burrow.h
quietust Jan 25, 2025
83701dd
Great Reorganization: civagreement.h
quietust Jan 25, 2025
c04050c
Great Reorganization: coinbatch.h
quietust Jan 25, 2025
d3b0a29
Great Reorganization: contaminant.h
quietust Jan 25, 2025
4c7c0a2
Great Reorganization: creation_zone.h
quietust Jan 25, 2025
4db6135
Great Reorganization: creaturebody.h
quietust Jan 25, 2025
f4506e1
Great Reorganization: creature.h
quietust Jan 25, 2025
63c85d5
Great Reorganization: crime.h
quietust Jan 25, 2025
ddf9680
Great Reorganization: cultural_identity.h
quietust Jan 25, 2025
4bef70b
Great Reorganization: dance_form.h
quietust Jan 25, 2025
1d9776b
Great Reorganization: datafile.h
quietust Jan 25, 2025
f0e1c6c
Great Reorganization: d_basics.h
quietust Jan 25, 2025
8603698
Great Reorganization: descriptor.h
quietust Jan 25, 2025
8782f20
Great Reorganization: d_init.h
quietust Jan 25, 2025
202813c
Great Reorganization: d_interface.h
quietust Jan 25, 2025
f5747b2
Great Reorganization: diplomacy.h
quietust Jan 25, 2025
2dfe8aa
Great Reorganization: dipscript.h
quietust Jan 25, 2025
4c2cd2d
Great Reorganization: diviniation_set.h
quietust Jan 25, 2025
68e4d82
Great Reorganization: effect.h
quietust Jan 25, 2025
6a70f13
Great Reorganization: entity.h
quietust Jan 26, 2025
db7cc3f
Great Reorganization: event.h
quietust Jan 26, 2025
75f3676
Great Reorganization: feature.h
quietust Jan 26, 2025
b296979
Great Reorganization: flow.h
quietust Jan 26, 2025
01d8154
Great Reorganization: formation.h
quietust Jan 26, 2025
b2183d9
Great Reorganization: game_g.h
quietust Jan 26, 2025
8d906ca
Great Reorganization: game_v.h
quietust Jan 26, 2025
c8b5e1c
Great Reorganization: gene_pool.h
quietust Jan 26, 2025
fe36b36
Great Reorganization: graphics_mainview.h
quietust Jan 26, 2025
3ef2bb1
Great Reorganization: hauling.h
quietust Jan 26, 2025
2dca4d6
Great Reorganization: history_collection.h
quietust Jan 26, 2025
1fb9268
Great Reorganization: history_event.h
quietust Jan 26, 2025
76c8ff2
Great Reorganization: history_figure.h
quietust Jan 26, 2025
1d6640f
Great Reorganization: history.h
quietust Jan 26, 2025
570965d
Great Reorganization: identity.h
quietust Jan 26, 2025
1d39ffd
Great Reorganization: image_set.h
quietust Jan 26, 2025
a4df2b6
Great Reorganization: incident.h
quietust Jan 26, 2025
b279f11
Great Reorganization: interaction.h
quietust Jan 26, 2025
b2684ca
Great Reorganization: interaction_instance.h
quietust Jan 26, 2025
53b1db6
Great Reorganization: itemdef.h
quietust Jan 26, 2025
4ccf7a8
Great Reorganization: item.h
quietust Jan 27, 2025
8b5fb2d
Great Reorganization: job.h
quietust Jan 27, 2025
91525c0
Great Reorganization: knowledge.h
quietust Jan 27, 2025
1031e1e
Great Reorganization: language.h
quietust Feb 1, 2025
2936e97
Great Reorganization: law.h
quietust Jan 27, 2025
51a4ffb
Great Reorganization: machine.h
quietust Jan 27, 2025
34637b3
Great Reorganization: mandate.h
quietust Jan 27, 2025
7f49d14
Great Reorganization: markup_text_box.h
quietust Jan 27, 2025
ba2b895
Great Reorganization: material.h
quietust Jan 27, 2025
5367ff9
Great Reorganization: matgloss.h
quietust Jan 27, 2025
e6b2e02
Great Reorganization: meetingmoment.h
quietust Jan 27, 2025
cedd67b
Great Reorganization: mental_picture.h
quietust Jan 27, 2025
35eb515
Great Reorganization: musical_form.h
quietust Jan 28, 2025
21ace90
Great Reorganization: music.h
quietust Jan 28, 2025
61a89ba
Great Reorganization: nemesis.h
quietust Jan 28, 2025
a28e1d8
Great Reorganization: occupation.h
quietust Jan 28, 2025
087e12f
Great Reorganization: personality.h
quietust Jan 28, 2025
d929147
Great Reorganization: plotinfo.h
quietust Jan 28, 2025
624aa40
Great Reorganization: poetic_form.h
quietust Jan 28, 2025
83e5154
Great Reorganization: proj.h
quietust Jan 28, 2025
e420e04
Great Reorganization: reaction.h
quietust Jan 28, 2025
6f01cb1
Great Reorganization: reference.h
quietust Jan 31, 2025
7b0c4c8
Great Reorganization: region.h
quietust Jan 31, 2025
5bfeaf8
Great Reorganization: region_midmap.h
quietust Jan 31, 2025
32b28fa
Great Reorganization: regionpop.h
quietust Jan 31, 2025
b83226f
Great Reorganization: region_weather.h
quietust Jan 31, 2025
2e325d8
Great Reorganization: report.h
quietust Jan 31, 2025
16fce99
Great Reorganization: rhythm.h
quietust Jan 31, 2025
a4da6ff
Great Reorganization: scale.h
quietust Jan 31, 2025
6c8d857
Great Reorganization: schedule.h
quietust Jan 31, 2025
8725f84
Great Reorganization: script.h
quietust Jan 31, 2025
11ce498
Great Reorganization: site.h
quietust Feb 1, 2025
a693308
Great Reorganization: site_realization.h
quietust Feb 1, 2025
cc83176
Great Reorganization: skill_enum.h
quietust Feb 1, 2025
656073a
Great Reorganization: soul.h
quietust Feb 1, 2025
4119a9f
Great Reorganization: sound.h
quietust Feb 1, 2025
201930e
Great Reorganization: squad.h
quietust Feb 1, 2025
5b92429
Great Reorganization: storage.h
quietust Feb 1, 2025
b736cd7
Great Reorganization: text_set.h
quietust Feb 1, 2025
1f31ad2
Great Reorganization: unit_chunk.h
quietust Feb 1, 2025
f7020be
Great Reorganization: unit.h
quietust Feb 1, 2025
781a8f7
Great Reorganization: unit_reaction.h
quietust Feb 1, 2025
1d4bc04
Great Reorganization: veg.h
quietust Feb 1, 2025
8cbf993
Great Reorganization: vehicle.h
quietust Feb 1, 2025
edf450e
Great Reorganization: wilderpop.h
quietust Feb 1, 2025
4251138
Great Reorganization: workquota.h
quietust Feb 1, 2025
0f642e4
Great Reorganization: world_construction.h
quietust Feb 1, 2025
f913518
Great Reorganization: world.h
quietust Feb 1, 2025
7881202
Great Reorganization: written_content.h
quietust Feb 1, 2025
7aee46d
Great Reorganization: widgets/*
quietust Feb 1, 2025
075c792
Great Reorganization: g_src/basics.h
quietust Feb 1, 2025
76510ef
Great Reorganization: g_src/command_line.h
quietust Feb 1, 2025
7e54e2c
Great Reorganization: g_src/enabler.h
quietust Feb 1, 2025
4036c33
Great Reorganization: g_src/files.h
quietust Feb 1, 2025
6d6fcc6
Great Reorganization: g_src/graphics.h
quietust Feb 1, 2025
5e2caf7
Great Reorganization: g_src/init.h
quietust Feb 1, 2025
f6f4ca2
Great Reorganization: g_src/interface.h
quietust Feb 1, 2025
44d85bd
Great Reorganization: g_src/KeybindingScreen.h
quietust Feb 1, 2025
6202f67
Great Reorganization: g_src/keybindings.h
quietust Feb 1, 2025
c034cb3
Great Reorganization: g_src/music_and_sound_g.h
quietust Feb 1, 2025
47a0804
Great Reorganization: g_src/platform.h
quietust Feb 1, 2025
15d7460
Great Reorganization: g_src/renderer_2d.hpp
quietust Feb 1, 2025
b552724
Great Reorganization: g_src/texture_handler.h
quietust Feb 1, 2025
4dd61dc
Great Reorganization: g_src/ViewBase.h
quietust Feb 1, 2025
532dd03
Great Reorganization: DFHack-specific types
quietust Feb 1, 2025
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
3 changes: 2 additions & 1 deletion Common.pm
Original file line number Diff line number Diff line change
Expand Up @@ -209,7 +209,8 @@ sub get_primitive_base($;$) {
if ($base =~ /u?int[136]?[2468]_t/) {
header_ref("cstdint");
}
$primitive_types{$base} or die "Must be primitive: $base\n";

$base = primitive_type_name($base);

return $base;
}
Expand Down
6 changes: 6 additions & 0 deletions changelog.txt
Original file line number Diff line number Diff line change
Expand Up @@ -19,6 +19,12 @@ Template for new versions:
# Future

## Structures
- reorganize all structure definitions to match bay12 header layouts
- promote all bay12 structures, enums, and bitfields to top-level types
- create numerous new structures whose contents had previously been inlined
- merged several duplicate structure/enum types
- fill in a bunch of structures that were missing
- fix a variety of structure errors

# 51.02-r1

Expand Down
300 changes: 300 additions & 0 deletions df.abstract_building.xml
Original file line number Diff line number Diff line change
@@ -0,0 +1,300 @@
<data-definition>
<bitfield-type type-name='location_info_flag' base-type='uint32_t'> bay12: LOCATION_INFO_FLAG_*
<flag-bit name='goblets'/>
<flag-bit name='instruments'/>
<flag-bit name='paper'/>
<flag-bit name='entity_recognized'/>
<flag-bit name='splints'/>
<flag-bit name='thread'/>
<flag-bit name='cloth'/>
<flag-bit name='crutches'/>
<flag-bit name='powder'/>
<flag-bit name='buckets'/>
<flag-bit name='soap'/>
</bitfield-type>

<struct-type type-name='abstract_building_contents' original-name='location_infost'>
<bitfield name='need_more' type-name='location_info_flag' base-type='uint32_t'/>
<enum name='profession' type-name='profession' since='v0.47.01'/>
<int32_t name='desired_goblets'/>
<int32_t name='desired_instruments'/>
<int32_t name='desired_paper'/>
<int32_t name='desired_splints'/>
<int32_t name='desired_thread' comment='times 15000'/>
<int32_t name='desired_cloth' comment='times 10000'/>
<int32_t name='desired_crutches'/>
<int32_t name='desired_powder' comment='times 150'/>
<int32_t name='desired_buckets'/>
<int32_t name='desired_soap' comment='times 150'/>
<int32_t name='desired_copies' init-value='2'/>
<int32_t name='location_tier'/>
<int32_t name='location_value'/>

the following is not saved:
<int32_t name='count_goblets'/>
<int32_t name='count_instruments'/>
<int32_t name='count_paper'/>
<int32_t name='count_splints'/>
<int32_t name='count_thread'/>
<int32_t name='count_cloth'/>
<int32_t name='count_crutches'/>
<int32_t name='count_powder'/>
<int32_t name='count_buckets'/>
<int32_t name='count_soap'/>
<int32_t name='update_timer' init-value='100'/>
<int32_t name='update_count'/>
<stl-vector name='building_ids' type-name='int32_t' ref-target='building'/>
</struct-type>

<enum-type type-name='location_death_type' base-type='int32_t'> bay12: LocationDeathType
<enum-item name='NONE' value='-1'/>
<enum-item name='NATURAL'/>
<enum-item name='STARVATION'/>
<enum-item name='FAILED_DEFENDER'/>
<enum-item name='SUCCESSFUL_DEFENDER'/>
<enum-item name='FAILED_INVADER'/>
<enum-item name='SUCCESSFUL_INVADER'/>
<enum-item name='MURDER'/>
<enum-item name='NATURAL_SCATTERED'/>
<enum-item name='SITE_RAMPAGE'/>
</enum-type>

<struct-type type-name='location_death_batchst'>
<int32_t name="num"/>
<int32_t name="race" ref-target='creature_raw'/>
<int32_t name="epid" ref-target='entity_population'/>
<int32_t name="breed_id" ref-target='breed'/>
<int32_t name='first_year_used'/>
<int32_t name='last_year_used'/>
<int32_t name="body_count"/>
<enum name="death_type" type-name='location_death_type'/>
</struct-type>

<struct-type type-name='location_deathst'>
<stl-vector name='batch' pointer-type='location_death_batchst' since='v0.34.01'/>
<stl-vector name='hfid' type-name='int32_t' ref-target='historical_figure' since='v0.34.01' comment="killed by rampaging monster, murder, execution, old age seen. Note that most HFs seem to have been culled"/>
</struct-type>

-- Unused: struct blueprintst
-- Unused: struct gbp_element_groupst
-- Unused: struct general_blueprintst

<struct-type type-name='architectural_infost'>
<stl-vector name='hfig' ref-target='historical_figure' type-name='int32_t'/>
<int32_t name='architect_hf' ref-target='historical_figure'/>
<stl-vector name='architectural_elements'><enum type-name='architectural_element' base-type='int16_t'/></stl-vector>
<int16_t name='mat_type' ref-target='material' aux-value='$$.mat_index' comment='just a guess'/>
<int32_t name='mat_index'/>
</struct-type>

<struct-type type-name='abstract_building_hf_linkst'>
<enum name='type' type-name='histfig_hf_link_type' base-type='int16_t'/>
<int32_t name='histfig_id' ref-target='historical_figure'/>
</struct-type>

<enum-type type-name='abstract_building_order_type' base-type='int32_t'> bay12: AbstractBuildingOrderType
<enum-item name='NONE' value='-1'/>
<enum-item name='COPY_ITEM'/>
</enum-type>

<struct-type type-name='scribejob' original-name='abstract_building_orderst'>
<int32_t name='id'/>
<enum name='type' type-name='abstract_building_order_type'/>
<int32_t name='target_id' comment='depends on type, currently item ID'/>
<int32_t name='relevant_id' comment='depends on type, currently written content ID'/>
<int32_t name='unit_id' ref-target='unit'/>
<int32_t name='activity_entry_id' ref-target='activity_entry'/>
<int32_t name='activity_event_id' ref-target='activity_event'/>
</struct-type>

<struct-type type-name='location_scribe_jobs' original-name='abstract_building_order_informationst'>
<stl-vector name='scribejobs' pointer-type='scribejob'/>
<int32_t name='next_id'/>
<int32_t name='next_check_year'/>
<int32_t name='next_check_season_tick'/>
</struct-type>

<struct-type type-name='ab_reputation_infost'>
<static-array name='reputation' type-name='int32_t' count='8' index-enum='abstract_building_reputation_type'/>
</struct-type>

<class-type type-name='abstract_building' original-name='abstract_buildingst' key-field='id'>
<int32_t name='id'/>

<code-helper name='find-instance'>
(find-by-id $(find-instance $world_site $$).buildings $id $)
</code-helper>

<stl-vector name='inhabitants' pointer-type='abstract_building_hf_linkst'/>
<df-flagarray name='flags' index-enum='abstract_building_flags'/>
<pointer name='archinfo' type-name='architectural_infost'/>
<stl-vector name='item_id' type-name='int32_t' ref-target='item'/>
<int32_t name='parent_building_id' ref-target='abstract_building' comment='Tombs use this to hold which catacomb they are part of.'/>
<stl-vector name='child_building_ids' type-name='int32_t' ref-target='abstract_building' comment='Used by catacombs to hold their tombs'/>
<int32_t name='site_owner_id' ref-target='historical_entity' comment='entity that constructed the building'/>
<pointer name='scribeinfo' since='v0.42.01' type-name='location_scribe_jobs'/>
<pointer name='review_info' since='v0.42.01' type-name='site_reputation_info'/>
<pointer name='reputation_info' since='v0.42.01' type-name='ab_reputation_infost'/>
<int32_t name='site_id' ref-target='world_site'
comment='not initialized/saved/loaded, assumed member of base class'/>
<compound name='pos' type-name='coord2d' since='v0.42.01'/>
<stl-vector name='occupations' pointer-type='occupation' since='v0.42.01'/>

<virtual-methods>
<vmethod ret-type='abstract_building_type' name='getType'/>
<vmethod name='getDisplayTile' comment='on navigation minimap'>
<pointer type-name='uint8_t' name='tile'/>
<pointer type-name='int16_t' name='fg'/>
<pointer type-name='int16_t' name='bg'/>
<pointer type-name='int16_t' name='bright'/>
</vmethod>
<vmethod name='getName'><ret-type><pointer type-name='language_name'/></ret-type></vmethod>
<vmethod name='getContents'><ret-type><pointer type-name='abstract_building_contents'/></ret-type></vmethod>
<vmethod name='write_file'> <pointer name='file' type-name='file_compressorst'/> </vmethod>

<vmethod name='read_file'>
<pointer name='file' type-name='file_compressorst'/>
<enum name='loadversion' type-name='save_version'/>
</vmethod>
<vmethod is-destructor='true'/>
<vmethod ret-type='int32_t' name='getReligionID'/>
<vmethod ret-type='bool' name='razeable'/>
<vmethod ret-type='bool' name='canDisplayBody'/>

<vmethod ret-type='int32_t' name='getDefensePerc'/>
<vmethod name='getEntombed'><ret-type><pointer type-name='location_deathst'/></ret-type></vmethod>
<vmethod name='generate_xml'>
<pointer type-name='stl-fstream'/>
<int32_t name='indent'/>
</vmethod>
</virtual-methods>
</class-type>

<class-type type-name='abstract_building_mead_hallst' inherits-from='abstract_building'>
<compound name='name' type-name='language_name'/>
<compound name='door'> not a compound
<int32_t name="race" ref-target='creature_raw'/>
<enum name='item_type' type-name='item_type'/>
<int16_t name='item_subtype' refers-to='(item-subtype-target $$._parent.item_type $)'/>
<int16_t name='mat_type' ref-target='material' aux-value='$$.mat_index'/>
<int32_t name='mat_index'/>
</compound>
<compound name='wall'> not a compound
<int32_t name="race" ref-target='creature_raw'/>
<enum name='item_type' type-name='item_type'/>
<int16_t name='item_subtype' refers-to='(item-subtype-target $$._parent.item_type $)'/>
<int16_t name='mat_type' ref-target='material' aux-value='$$.mat_index'/>
<int32_t name='mat_index'/>
</compound>
</class-type>

<class-type type-name='abstract_building_counting_housest' inherits-from='abstract_building'>
<compound name='name' type-name='language_name'/>
</class-type>

<class-type type-name='abstract_building_guildhallst' inherits-from='abstract_building'>
<compound name='name' type-name='language_name'/>
<compound name='contents' type-name='abstract_building_contents'/>
</class-type>

<class-type type-name='abstract_building_hospitalst' inherits-from='abstract_building'>
<compound name='name' type-name='language_name'/>
<compound name='contents' type-name='abstract_building_contents'/>
</class-type>

<bitfield-type type-name='abstract_building_tower_flag' base-type='uint32_t'> bay12: ABSTRACT_BUILDING_TOWER_FLAG_*
<flag-bit name='dungeon'/>
<flag-bit name='improved_fortifications'/>
<flag-bit name='gated_courtyard'/>
<flag-bit name='feast_hall'/>
</bitfield-type>

<class-type type-name='abstract_building_towerst' inherits-from='abstract_building'>
<compound name='name' type-name='language_name'/>
<bitfield name='spec_flag' base-type='uint32_t' type-name='abstract_building_tower_flag'/>
</class-type>

<class-type type-name='abstract_building_keepst' inherits-from='abstract_building'>
<compound name='name' type-name='language_name'/>
</class-type>

<class-type type-name='abstract_building_dark_towerst' inherits-from='abstract_building'>
<compound name='name' type-name='language_name'/>
</class-type>

<bitfield-type type-name='abstract_building_underworld_spire_flag' base-type='uint32_t'> bay12: AB_UNDERWORLD_SPIRE_FLAG_*
<flag-bit name='gate_open'/>
</bitfield-type>

<class-type type-name='abstract_building_underworld_spirest' inherits-from='abstract_building'>
<compound name='name' type-name='language_name'/>
<bitfield name='spire_flags' base-type='uint32_t' type-name='abstract_building_underworld_spire_flag'/>
</class-type>

-- Inline union
<struct-type type-name='religious_practice_data' is-union='true'>
<int32_t name='practice_id'/>
<int32_t name='Deity' ref-target='historical_figure'/>
<int32_t name='Religion' ref-target='historical_entity'/>
</struct-type>

<class-type type-name='abstract_building_templest' inherits-from='abstract_building'>
<enum name='deity_type' type-name='religious_practice_type'/>
<compound name='deity_data' type-name='religious_practice_data'/>
<compound name='name' type-name='language_name'/>
<compound name='contents' type-name='abstract_building_contents'/>
</class-type>

<class-type type-name='abstract_building_libraryst' inherits-from='abstract_building'>
<compound name='name' type-name='language_name'/>
<stl-vector name='copied_artifacts' type-name='int32_t' ref-target='artifact_record'/>
<int32_t name='last_check_year' init-value='-1'/>
<int32_t name='last_check_season_tick' init-value='-1'/>
<int32_t name='last_posting_year' init-value='-1'/>
<int32_t name='last_posting_season_tick' init-value='-1'/>
<compound name='contents' type-name='abstract_building_contents'/>
</class-type>

<struct-type type-name='rental_roomst'>
<int32_t name='id'/>
<stl-string name='location'/>
<int32_t name='civzone' ref-target='building'/>
<int32_t name='world_x'/>
<int32_t name='world_y'/>
<int32_t name='world_z'/>
</struct-type>

<class-type type-name='abstract_building_inn_tavernst' inherits-from='abstract_building'>
<compound name='name' type-name='language_name'/>
<compound name='contents' type-name='abstract_building_contents'/>
<stl-vector name='room_info' pointer-type='rental_roomst'/>
<int32_t name='next_room_info_id'/>
</class-type>

<class-type type-name='abstract_building_marketst' inherits-from='abstract_building'>
<compound name='name' type-name='language_name'/>
</class-type>

<class-type type-name='abstract_building_tombst' inherits-from='abstract_building'>
<compound name='name' type-name='language_name'/>
<compound name='entombed' type-name='location_deathst'/>
<int32_t name='precedence' comment='rough_side_size'/>
</class-type>

<class-type type-name='abstract_building_dungeonst' inherits-from='abstract_building'>
<compound name='name' type-name='language_name'/>
<enum base-type='int16_t' name='dungeon_type' type-name='dungeon_type'/>
<int32_t name='upper_abb_id'/>
<compound name='entombed' type-name='location_deathst'/>
<int32_t name='total_block_size'/>
<int32_t name='worldgen_entity_total' comment='not saved'/>
<int32_t name='worldgen_beast_total' comment='not saved'/>
</class-type>
</data-definition>

<!--
Local Variables:
indent-tabs-mode: nil
nxml-child-indent: 4
End:
-->
Loading
Loading