<data-definition>
    <struct-type type-name='world_site_unk130'>
        <int32_t name="index"/>

        <stl-vector name="unk_4">
            <pointer>
                <int32_t name="unk_0"/>
                <int32_t name="index"/>
                <int32_t name="unk_8"/>
                <stl-vector name="unk_c">
                    <int32_t/>
                </stl-vector>
            </pointer>
        </stl-vector>
    </struct-type>

    <struct-type type-name='world_site' key-field='id'
                 instance-vector='$global.world.world_data.sites'>
        <compound name='name' type-name='language_name'/>

        <code-helper name='describe'>(describe-obj $.name)</code-helper>

        <int32_t name="civ_id" ref-target='historical_entity'/>
        <int32_t name="owner1" ref-target='historical_entity'/>
        <int32_t name="owner2" ref-target='historical_entity'/>

        <int16_t name="unk_78"/>
        <int16_t name="unk_7a"/>
        <int16_t name="unk_7c"/>

        <int32_t name="id"/>

        <stl-vector name="unk_84">
            <int32_t/>
        </stl-vector>

        <stl-vector name="unk_94"/>

        <stl-vector name="animals">
            <pointer>
                <int16_t name="unk_0"/>
                <int16_t name="race" ref-target='creature_raw'/>
                <int32_t name="count"/>
                <int32_t name="unk_8"/>
                <int32_t name="owner" ref-target='historical_entity'/>
                <int32_t name="unk_10"/>
                <int32_t name="unk_14"/>
            </pointer>
        </stl-vector>

        <stl-vector name="inhabitants">
            <pointer>
                <int32_t name="count"/>
                <int32_t name="race" ref-target='creature_raw'/>
                <int32_t name="unk_8"/>
            </pointer>
        </stl-vector>

        <stl-vector name="unk_c4"/>
        <stl-vector name="unk_d4"/>

        <int32_t name="index"/>

        <int16_t name="unk_e8"/>
        <int16_t name="unk_ea"/>
        <int16_t name="unk_ec"/>
        <int16_t name="unk_ee"/>

        <int32_t name="unk_f0"/>
        <int32_t name="unk_f4"/>
        <int32_t name="unk_f8"/>
        <int32_t name="unk_fc"/>
        <int32_t name="unk_100"/>

        <uint32_t name="unk_104"/>
        <uint32_t name="unk_108"/>

        <int32_t name="unk_10c"/>
        <int32_t name="unk_110"/>
        <int32_t name="unk_114"/>
        <int32_t name="unk_118"/>
        <int32_t name="unk_11c"/>
        <int32_t name="unk_120"/>
        <int32_t name="unk_124"/>
        <int32_t name="unk_128"/>
        <int32_t name="unk_12c"/>
        <int32_t name="unk_130"/>
        <int32_t name="unk_134"/>
        <int32_t name="unk_138"/>

        <stl-vector name="unk_13c">
            <pointer>
                <int32_t name="unk_0"/>
                <int32_t name="unk_4"/>
                <int32_t name="unk_8"/>
                <int32_t name="unk_c"/>
            </pointer>
        </stl-vector>

        <df-flagarray name='flags'/>

        <stl-vector name="unk_154"/>

        <int32_t name="unk_164"/>
        <int32_t name="unk_168"/>
        <int32_t name="unk_16c"/>
        <int32_t name="unk_170"/>
        <int32_t name="unk_174"/>

        <int16_t name="unk_178"/>
        <int16_t name="unk_17a"/>
        <int16_t name="unk_17c"/>

        <int32_t name="unk_180"/>

        <pointer name="unk_184">
            <int16_t name="unk_0"/>
            <stl-vector name="unk_4"/>
            <int32_t name="unk_14"/>
            <int32_t name="unk_18"/>
            <int32_t name="unk_1c"/>
        </pointer>

        <pointer name="unk_188" type-name='world_site_unk130'/>

        <stl-vector name="unk_18c"/>
        <stl-vector name="unk_19c"/>
    </struct-type>

    <struct-type type-name='world_underground_region'>
        <int16_t name='unk1'/>
        <compound name='name' type-name='language_name'/>
        <int32_t name="unk_70"/>
        <int16_t name="unk_74"/>
        <int16_t name="unk_76"/>
        <int16_t name="unk_78"/>
        <int16_t name="unk_7a"/>
        <int32_t name="unk_7c"/>
        <int16_t name="unk_80"/>
        <int16_t name="unk_82"/>
        <int16_t name="unk_84"/>
        <padding name="unk_86" size="2"/>
        <stl-vector name="unk_88">
            <int16_t/>
        </stl-vector>
        <stl-vector name="unk_98">
            <int16_t/>
        </stl-vector>
        <stl-vector name="unk_a8">
            <int16_t/>
        </stl-vector>
        <stl-vector name="unk_b8">
            <int16_t/>
        </stl-vector>
        <stl-vector name="unk_c8"/>
        <pointer name="feature_init"/>
    </struct-type>

    <struct-type type-name='world_data'>
        <compound name='name' type-name='language_name' comment='name of the world'/>

        <static-array name='unk1' count='15' type-name='int8_t'/>

        <int32_t name='num_sites'/>
        <int32_t name='cur_site_id'/>
        <int32_t/>
        <int32_t/>
        <int16_t name='world_width'/>
        <int16_t name='world_height'/>

        <stl-vector name='unk2'>
            <pointer>
                <int16_t name="unk_0"/>
                <int16_t name="unk_2"/>
                <int16_t name="unk_4"/>
                <int16_t name="unk_6"/>
                <int16_t name="unk_8"/>
                <int32_t name="unk_c"/>
                <int32_t name="unk_10"/>
                <stl-vector name="unk_14">
                    <pointer/>
                </stl-vector>
                <int32_t name="unk_24"/>
                <df-flagarray name='flags'/>
                <stl-vector name="unk_30"/>
                <stl-vector name="unk_40"/>
                <stl-vector name="unk_50"/>
                <stl-vector name="unk_60"/>
                <int16_t name="unk_70"/>
                <int16_t name="unk_72"/>
                <int16_t name="unk_74"/>
                <int16_t name="unk_76"/>
                <int16_t name="unk_78"/>
                <int32_t name="unk_7c"/>
                <int32_t name="unk_80"/>
                <int32_t name="unk_84"/>
            </pointer>
        </stl-vector>

        <int32_t/>
        <int32_t/>
        <int16_t/>
        <int16_t/>
        <int16_t/>
        <int16_t/>
        <int16_t/>
        <int16_t/>
        <int32_t name='world_width2'/>
        <int32_t name='world_height2'/>

        <pointer type-name='uint32_t' is-array='true' comment='align(width,4)*height'/>
        <pointer type-name='uint32_t' is-array='true' comment='align(width,4)*height'/>
        <pointer type-name='uint32_t' is-array='true' comment='width*height'/>
        <pointer type-name='uint8_t' is-array='true' comment='align(width,4)*height'/>

        <stl-vector name='unk4' type-name='pointer'/>

        <int32_t name="unk_dc"/>
        <int32_t name="unk_e0"/>
        <int32_t name="unk_e4"/>

        <int32_t name="unk_e8"/>
        <int32_t name="unk_ec"/>
        <int32_t name="unk_f0"/>

        <compound name='construction_squares'>
            <int16_t name="width"/>
            <int16_t name="height"/>

            <pointer name="table" is-array='true'>
                <pointer is-array='true'>
                    <stl-vector>
                        <pointer/>
                    </stl-vector>
                </pointer>
            </pointer>
        </compound>

        <stl-vector name="constructions">
            <pointer/>
        </stl-vector>
        <int32_t name="next_construction_id"/>

        <static-array name="unk_110" count='2'>
            <pointer name="table" is-array='true'>
                <pointer is-array='true'>
                    <stl-vector name='unk1'>
                        <int32_t/>
                    </stl-vector>
                    <stl-vector name='unk2'>
                        <pointer type-name='int8_t' is-array='true'/>
                    </stl-vector>
                </pointer>
            </pointer>
            <int16_t name="width"/>
            <int16_t name="height"/>
        </static-array>

        <stl-vector name="sites">
            <pointer type-name='world_site'/>
        </stl-vector>

        <stl-vector name="site_unk130">
            <pointer type-name='world_site_unk130'/>
        </stl-vector>

        <stl-vector name="unk_140">
            <pointer>
                <int32_t name='index'/>
                <static-array name='resource_allotments' count='100'>
                    <stl-vector>
                        <pointer/>
                    </stl-vector>
                </static-array>
                <int32_t name='unk1'/>
                <int32_t name='unk2'/>
                <int32_t name='unk3'/>
            </pointer>
        </stl-vector>

        <stl-vector name="unk_150">
            <pointer>
                <int32_t name="index"/>
                <int32_t name="unk_4"/>
                <stl-vector name="unk_8">
                    <pointer>
                        <int32_t name="index"/>
                        <int32_t name="unk_4"/>
                        <int32_t name="unk_8"/>
                    </pointer>
                </stl-vector>
                <stl-vector name="unk_18">
                    <pointer>
                        <int32_t name="index"/>
                        <int32_t name="unk_4"/>
                        <int32_t name="unk_8"/>
                    </pointer>
                </stl-vector>
                <stl-vector name="unk_28">
                    <pointer>
                        <int32_t name="unk_0"/>
                        <int32_t name="unk_4"/>
                    </pointer>
                </stl-vector>
            </pointer>
        </stl-vector>

        <stl-vector name="islands">
            <pointer>
                <compound name='name' type-name='language_name'/>
            </pointer>
        </stl-vector>
        <stl-vector name="regions">
            <pointer>
                <compound name='name' type-name='language_name'/>
            </pointer>
        </stl-vector>
        <stl-vector name="underground_regions">
            <pointer type-name='world_underground_region'/>
        </stl-vector>
        <stl-vector name="unk_190">
            <pointer>
                <int16_t name='unk1'/>
                <int16_t name='index'/>
                <stl-vector name="unk_4">
                    <pointer>
                        <int16_t name="unk_0"/>
                        <int32_t name="unk_4"/>
                        <stl-vector name="unk_8">
                            <int32_t/>
                        </stl-vector>
                        <stl-vector name="unk_18">
                            <int16_t/>
                        </stl-vector>
                        <stl-vector name="unk_28">
                            <int8_t/>
                        </stl-vector>
                        <stl-vector name="unk_38">
                            <int8_t/>
                        </stl-vector>
                        <int32_t name="index"/>
                    </pointer>
                </stl-vector>
            </pointer>
        </stl-vector>
        <stl-vector name="unk_1a0">
            <pointer>
                <compound name='name' type-name='language_name'/>
                <int16_t name="unk_6c"/>
                <int16_t name="unk_6e"/>
                <df-flagarray name='flags'/>
                <int16_t name="unk_78"/>
            </pointer>
        </stl-vector>
        <stl-vector name="unk_1b0">
            <pointer>
                <compound name='name' type-name='language_name'/>
                <stl-vector name="unk_6c">
                    <int16_t/>
                </stl-vector>
                <stl-vector name="unk_7c">
                    <int16_t/>
                </stl-vector>
                <stl-vector name="unk_8c">
                    <int32_t/>
                </stl-vector>
                <stl-vector name="unk_9c">
                    <int16_t/>
                </stl-vector>
                <stl-vector name="unk_ac">
                    <int16_t/>
                </stl-vector>
                <int16_t name="unk_bc"/>
                <int16_t name="unk_be"/>
                <df-flagarray name='flags'/>
            </pointer>
        </stl-vector>

        <pointer name="unk_1c0"/>
        <pointer name="unk_1c4"/>
        <padding name="unk_1c8" size="4"/>

        <stl-vector name="unk_1cc"/>

        <pointer name="unk_1dc" is-array='true'>
            <pointer is-array='true'>
                <stl-vector/>
            </pointer>
        </pointer>
        <pointer name="unk_1e0" is-array='true'>
            <pointer is-array='true'>
                <stl-vector/>
            </pointer>
        </pointer>
        <pointer name="unk_1e4" is-array='true'>
            <pointer is-array='true'>
                <stl-vector/>
            </pointer>
        </pointer>
        <pointer name="unk_1e8" is-array='true'>
            <pointer is-array='true'>
                <stl-vector/>
            </pointer>
        </pointer>
        <pointer name="unk_1ec" is-array='true'>
            <pointer is-array='true'>
                <stl-vector/>
            </pointer>
        </pointer>
        <pointer name="unk_1f0" is-array='true'>
            <pointer is-array='true'>
                <stl-vector/>
            </pointer>
        </pointer>

        <stl-vector name="active_site">
            <pointer type-name='world_site'/>
        </stl-vector>

        <pointer name="unk_204" is-array='true'>
            <pointer is-array='true'>
                <int16_t name='x'/>
                <int16_t name='y'/>
                <int32_t name='unk_4'/>
                <pointer name='unk_8' type-name='int16_t' is-array='true'/>
                <pointer name='unk_c' type-name='int32_t' is-array='true'/>
            </pointer>
        </pointer>

        <df-flagarray name='flags'/>

        <stl-vector name="unk_210"/>
        <stl-vector name="unk_220"/>
        <stl-vector name="unk_230"/>
        <stl-vector name="unk_240">
            <int16_t/>
        </stl-vector>
        <stl-vector name="unk_250">
            <int16_t/>
        </stl-vector>
        <padding name="unk_260" size="4"/>
        <int8_t name="unk_264"/>
        <padding name="unk_265" size="3"/>
        <padding name="unk_268" size="4"/>
        <int8_t name="unk_26c"/>
        <padding name="unk_26d" size="3"/>
        <int32_t name="unk_270"/>

        <stl-vector name="unk_274">
            <pointer>
                <stl-vector name="unk_0">
                    <pointer type-name="historical_figure"/>
                </stl-vector>
                <stl-vector name="unk_10">
                    <pointer>
                        <int32_t name="unk_0"/>
                        <int32_t name="unk_4"/>
                        <int32_t name="unk_8"/>
                    </pointer>
                </stl-vector>
                <pointer name="unk_20" type-name="historical_entity"/>
                <int32_t name="unk_24"/>
                <pointer name="unk_28" type-name="language_name"/>
                <int32_t name="unk_2c"/>
                <int32_t name="unk_30"/>
            </pointer>
        </stl-vector>
    </struct-type>
</data-definition>

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