viewscreen

viewscreen.file_compressorst

<struct-type type-name="file_compressorst" custom-methods="true">
  Note: the assign operator is manually implemented
  <bool name="compressed"/>
  <stl-fstream name="f"/>
  <pointer name="in_buffer" type-name="uint8_t" is-array="true"/>
  <int32_t name="in_buffersize"/>
  <int32_t name="in_buffer_amount_loaded"/>
  <int32_t name="in_buffer_position"/>
  <pointer name="out_buffer" type-name="uint8_t" is-array="true"/>
  <int32_t name="out_buffersize"/>
  <int32_t name="out_buffer_amount_written"/>
</struct-type>

viewscreen.interface_breakdown_types

<enum-type type-name="interface_breakdown_types" base-type="int8_t">
  <enum-item name="NONE"/>
  <enum-item name="QUIT"/>
  <enum-item name="STOPSCREEN"/>
  <enum-item name="TOFIRST"/>
</enum-type>

viewscreen.viewscreen

<class-type type-name="viewscreen" original-name="viewscreenst"
    custom-methods="true">
  <pointer name="child" type-name="viewscreen"/>
  <pointer name="parent" type-name="viewscreen"/>
  <enum base-type="int8_t" name="breakdown_level"
      type-name="interface_breakdown_types" init-value="NONE"/>
  <int8_t name="option_key_pressed"/>
  <virtual-methods>
    <vmethod name="feed">
      <pointer name="events">
        <stl-set>
          <enum type-name="interface_key" base-type="long"/>
        </stl-set>
      </pointer>
    </vmethod>
    <vmethod name="logic"/>
    <vmethod name="render"/>
    <vmethod name="resize">
      <int32_t name="w"/>
      <int32_t name="h"/>
    </vmethod>
    <vmethod name="help"/>
    <vmethod ret-type="int8_t" name="movies_okay"/>
    <vmethod ret-type="int8_t" name="is_option_screen"/>
    <vmethod ret-type="int8_t" name="is_save_screen"/>
    <vmethod is-destructor="true"/>
    <vmethod ret-type="bool" name="key_conflict">
      <enum type-name="interface_key" base-type="long"/>
    </vmethod>
  </virtual-methods>
</class-type>

viewscreen.viewscreen_layer

<class-type type-name="viewscreen_layer"
    original-name="viewscreen_layerst" inherits-from="viewscreen">
  <stl-vector pointer-type="layer_object" name="layer_objects"/>
</class-type>

viewscreen.interfacest

<struct-type type-name="interfacest">
  <int32_t name="original_fps"/>
  <compound name="view" type-name="viewscreen"/>
  <uint32_t name="flag"/>
  <int32_t name="shutdown_interface_tickcount"/>
  <int32_t name="shutdown_interface_for_ms"/>
  <int8_t name="supermovie_on"/>
  <int32_t name="supermovie_pos"/>
  <int32_t name="supermovie_delayrate"/>
  <int32_t name="supermovie_delaystep"/>
  <stl-vector pointer-type="stl-string" name="supermovie_sound"/>
  <static-array name="supermovie_sound_time" count="16">
    <static-array count="200" type-name="int32_t"/>
    SOUND_CHANNELNUM
  </static-array>
  <padding name="supermoviebuffer" size="800000"/>
  <padding name="supermoviebuffer_comp" size="1000000"/>
  <int32_t name="currentblocksize"/>
  <int32_t name="nextfilepos"/>
  <int8_t name="first_movie_write"/>
  <stl-string name="movie_file"/>
</struct-type>

viewscreen.layer_object

<class-type type-name="layer_object" original-name="layer_objectst">
  <bool name="enabled"/>
  <bool name="active"/>
  <virtual-methods>
    No destructor anywhere:
    <vmethod ret-type="int32_t" name="getFirstVisible"/>
    <vmethod ret-type="int32_t" name="getLastVisible"/>
    <vmethod ret-type="int32_t" name="getX1"/>
    <vmethod ret-type="int32_t" name="getY1"/>
    <vmethod ret-type="int32_t" name="getX2"/>
    <vmethod ret-type="int32_t" name="getY2"/>
    <vmethod ret-type="int32_t">
      list 1; button,base -1
    </vmethod>
    <vmethod ret-type="int32_t" name="getListCursor"/>
    <vmethod name="setListCursor">
      <int32_t/>
    </vmethod>
    <vmethod name="feed">
      <pointer name="events">
        <stl-set>
          <enum type-name="interface_key" base-type="int32_t"/>
        </stl-set>
      </pointer>
    </vmethod>
    <vmethod ret-type="bool" name="isSetMouseLRCur"/>
    <vmethod ret-type="bool" name="isSetMouseLCur"/>
    <vmethod ret-type="bool" name="isSetMouseRCur"/>
    <vmethod ret-type="int32_t" name="getMouseLCur"/>
    <vmethod ret-type="int32_t" name="getMouseRCur"/>
    <vmethod>
      <pointer type-name="int32_t"/>
      <pointer type-name="int32_t"/>
    </vmethod>
    <vmethod>
      <pointer type-name="int32_t"/>
      <pointer type-name="int32_t"/>
    </vmethod>
    <vmethod ret-type="int32_t" name="getListLength"/>
    <vmethod name="setListLength">
      <int32_t/>
    </vmethod>
    <vmethod ret-type="int32_t"/>
    <vmethod ret-type="int32_t"/>
    <vmethod ret-type="int32_t"/>
    <vmethod ret-type="int32_t"/>
  </virtual-methods>
</class-type>

viewscreen.layer_object_listst

<class-type type-name="layer_object_listst"
    inherits-from="layer_object">
  <int32_t name="cursor"/>
  <int32_t name="num_entries"/>
  <int32_t name="x1"/>
  <int32_t name="y1"/>
  <int32_t name="page_size"/>
  <int32_t name="x2"/>
  <int32_t name="y2"/>
  <int32_t name="mouse_l_cur"/>
  <int32_t name="mouse_r_cur"/>
  <bool name="rclick_scrolls"/>
  <int32_t name="flag">
    for standardscrolling
  </int32_t>
  <enum name="key_lclick" base-type="int32_t"
      type-name="interface_key"/>
  <enum name="key_rclick" base-type="int32_t"
      type-name="interface_key"/>
</class-type>

viewscreen.layer_object_buttonst

<class-type type-name="layer_object_buttonst"
    inherits-from="layer_object">
  <int32_t name="x1"/>
  <int32_t name="y1"/>
  <int32_t name="x2"/>
  <int32_t name="y2"/>
  <int32_t name="has_mouse_lclick"/>
  <int32_t name="has_mouse_rclick"/>
  <int32_t name="mouse_lclick_x"/>
  <int32_t name="mouse_lclick_y"/>
  <int32_t name="mouse_rclick_x"/>
  <int32_t name="mouse_rclick_y"/>
  <int32_t name="mouse_x"/>
  <int32_t name="mouse_y"/>
  <int32_t name="mouse_x_old"/>
  <int32_t name="mouse_y_old"/>
  <int8_t name="handle_mouselbtndown"/>
  <int8_t name="handle_mouserbtndown"/>
</class-type>

viewscreen.widget_menu

<struct-type type-name="widget_menu">
  <padding size="24">
    lines
  </padding>
  <int32_t name="selection"/>
  <int32_t name="last_displayheight"/>
  <bool name="bleached"/>
  <padding size="24">
    colors
  </padding>
</struct-type>

viewscreen.widget_textbox

<struct-type type-name="widget_textbox">
  <stl-string name="text"/>
  <bool name="keep"/>
</struct-type>

viewscreen.KeybindingScreen

<class-type type-name="KeybindingScreen" inherits-from="viewscreen">
  <enum base-type="int32_t" name="mode">
    <enum-item name="Main"/>
    <enum-item name="KeyL"/>
    <enum-item name="KeyR"/>
    <enum-item name="Macro"/>
    <enum-item name="Register"/>
  </enum>
  <compound name="main" type-name="widget_menu"/>
  <compound name="keyL" type-name="widget_menu"/>
  <compound name="keyR" type-name="widget_menu"/>
  <compound name="macro" type-name="widget_menu"/>
  <compound name="keyRegister" type-name="widget_menu"/>
</class-type>

viewscreen.MacroScreenLoad

<class-type type-name="MacroScreenLoad" inherits-from="viewscreen">
  <compound name="menu" type-name="widget_menu"/>
  <int32_t name="width"/>
  <int32_t name="height"/>
</class-type>

viewscreen.MacroScreenSave

<class-type type-name="MacroScreenSave" inherits-from="viewscreen">
  <compound name="id" type-name="widget_textbox"/>
</class-type>

viewscreen.viewscreen_adopt_regionst

<class-type type-name="viewscreen_adopt_regionst"
    inherits-from="viewscreen">

</class-type>

viewscreen.viewscreen_adventure_logst

<class-type type-name="viewscreen_adventure_logst"
    inherits-from="viewscreen">
  <enum base-type="int8_t" name="mode">
    <enum-item name="Info"/>
    <enum-item name="Map"/>
  </enum>
  <int8_t name="map_islocalview"/>
  <int8_t name="map_hidden"/>
  <int16_t name="player_region_x"/>
  <int16_t name="player_region_y"/>
  <int16_t name="player_local_x"/>
  <int16_t name="player_local_y"/>
  <int16_t name="unk_8"/>
  <int16_t name="unk_9"/>
  <int16_t name="unk_10"/>
  <int16_t name="unk_11"/>
  <int16_t name="cursor_x"/>
  <int16_t name="cursor_y"/>
  <int32_t name="index">
    cursor position in info mode
  </int32_t>
  <int8_t name="map_draw_line"/>
  <enum base-type="int16_t" name="info_mode">
    <enum-item name="Events"/>
    <enum-item name="Agreements"/>
    <enum-item name="People"/>
    <enum-item name="Sites"/>
    <enum-item name="Groups"/>
    <enum-item name="Regions"/>
    <enum-item name="Bestiary"/>
  </enum>
  <int16_t name="local_area_x1">
    rectangle of 0 in local view
  </int16_t>
  <int16_t name="local_area_x2"/>
  <int16_t name="local_area_y1"/>
  <int16_t name="local_area_y2"/>
  <int32_t name="unk_v40_1a"/>
  <int32_t name="unk_v40_1b"/>
  <int32_t name="unk_v40_1c"/>
  <int32_t name="unk_v40_1d"/>
  <int32_t name="unk_v40_1e"/>
  <int32_t name="unk_v40_1f"/>
  <stl-string name="filter_str"/>
  <int8_t name="in_filter"/>
  <static-array name="items" count="8">
    <stl-vector pointer-type="adventure_log_item"/>
  </static-array>
  <static-array name="filtered_items" count="8">
    <stl-vector pointer-type="adventure_log_item"/>
  </static-array>
</class-type>

viewscreen.adventure_log_item

<struct-type type-name="adventure_log_item">
  <pointer name="object"/>
  <stl-string name="str1"/>
  <stl-string name="str2"/>
  <stl-string name="str3"/>
  <stl-vector pointer-type="stl-string" name="info"/>
</struct-type>

viewscreen.viewscreen_announcelistst

<class-type type-name="viewscreen_announcelistst"
    inherits-from="viewscreen">
  <pointer type-name="unit" name="unit"/>
  <enum type-name="unit_report_type" base-type="int16_t"
      name="report_type"/>
  <int32_t name="sel_idx"/>
  <stl-vector pointer-type="report" name="reports"/>
</class-type>

viewscreen.viewscreen_barterst

<class-type type-name="viewscreen_barterst"
    inherits-from="viewscreen">
  <pointer/>
  <pointer/>
  <pointer/>
  <pointer/>
  <static-array count="2">
    <stl-vector/>
  </static-array>
  <static-array count="2">
    <stl-vector/>
  </static-array>
  <static-array count="2">
    <stl-vector/>
  </static-array>
  <stl-vector/>
  <stl-vector/>
  <static-array count="2" type-name="int32_t"/>
  <int8_t/>
  <int16_t/>
  <int8_t/>
  <int32_t name="max_ask"/>
  <int32_t name="max_offer"/>
  <int32_t name="cur_ask"/>
  <int32_t name="cur_offer"/>
  <int16_t/>
  <int8_t/>
  <stl-string/>
</class-type>

viewscreen.viewscreen_buildingst

<class-type type-name="viewscreen_buildingst"
    inherits-from="viewscreen">
  <pointer name="building" type-name="building"/>
</class-type>

viewscreen.viewscreen_buildinglistst

<class-type type-name="viewscreen_buildinglistst"
    inherits-from="viewscreen">
  <int32_t name="cursor" refers-to="$$._parent.buildings[$]"/>
  <bool name="alt_right_panel"/>
  <stl-vector name="buildings" pointer-type="building"/>
  <stl-vector name="buildings2" pointer-type="building"/>
  <stl-vector name="room_value" type-name="int32_t"
      index-refers-to="$$._parent.buildings[$]"/>
  <stl-vector name="room_value2" type-name="int32_t"
      index-refers-to="$$._parent.buildings2[$]"/>
</class-type>

viewscreen.embark_finder_option

<enum-type type-name="embark_finder_option">
  <enum-item name="DimensionX"/>
  <enum-item name="DimensionY"/>
  <enum-item name="Savagery"/>
  <enum-item name="Evil"/>
  <enum-item name="Elevation"/>
  <enum-item name="Temperature"/>
  <enum-item name="Rain"/>
  <enum-item name="Drainage"/>
  <enum-item name="FluxStone"/>
  <enum-item name="Aquifer"/>
  <enum-item name="River"/>
  <enum-item name="UndergroundRiver"/>
  <enum-item name="UndergroundPool"/>
  <enum-item name="MagmaPool"/>
  <enum-item name="MagmaPipe"/>
  <enum-item name="Chasm"/>
  <enum-item name="BottomlessPit"/>
  <enum-item name="OtherFeatures"/>
  <enum-item name="ShallowMetal"/>
  <enum-item name="DeepMetal"/>
  <enum-item name="Soil"/>
  <enum-item name="Clay"/>
</enum-type>

viewscreen.embark_location

<struct-type type-name="embark_location">
  <compound name="region_pos" type-name="coord2d"/>
  <int16_t name="reclaim_site" ref-target="world_site"/>
  <int16_t name="reclaim_idx"/>
  <compound name="biome_rgn" type-name="coord2d_path"/>
  <compound name="embark_pos_min" type-name="coord2d"/>
  <compound name="embark_pos_max" type-name="coord2d"/>
  <compound name="embark_biome_rgn" type-name="coord2d">
    Valid only after e pressed.
  </compound>
</struct-type>

viewscreen.viewscreen_choose_start_sitest

<class-type type-name="viewscreen_choose_start_sitest"
    inherits-from="viewscreen">
  <enum base-type="int32_t" name="page">
    <enum-item name="Biome"/>
    <enum-item name="Neighbors"/>
    <enum-item name="Civilization"/>
    <enum-item name="Elevation"/>
    <enum-item name="Cliffs"/>
    <enum-item name="Reclaim"/>
    <enum-item name="Reclaim2"/>
    <enum-item name="Find"/>
    <enum-item name="Notes"/>
  </enum>
  <compound name="location" type-name="embark_location"/>
  <int32_t name="biome_idx"/>
  <bool name="biome_highlighted"/>
  <bool name="in_embark_aquifer"/>
  <bool name="in_embark_salt"/>
  <bool name="in_embark_large"/>
  <bool name="in_embark_normal"/>
  <stl-vector name="highlighted_sites" pointer-type="world_site"/>
  <stl-vector name="local_sites" pointer-type="world_site"/>
  <int32_t name="reclaim_idx"
      refers-to="$global.world.world_data.old_sites[$]"/>
  <int32_t name="civ_idx" refers-to="$$._global.available_civs[$]"/>
  <stl-vector name="available_civs" pointer-type="historical_entity"/>
  <stl-vector name="site_info" pointer-type="stl-string"
      since="v0.40.01"/>
  <pointer name="site_abandoned" type-name="history_event"
      has-bad-pointers="true" since="v0.40.01"/>
  <pointer name="site_created" type-name="history_event"
      has-bad-pointers="true" since="v0.40.01"/>
  <int32_t name="unk_a4" since="v0.40.01"/>
  <compound name="finder">
    <int32_t/>
    <int32_t name="search_x" init-value="-1">
      to world width / 16
    </int32_t>
    <int32_t name="search_y">
      to world height / 16
    </int32_t>
    <int32_t name="cursor" refers-to="$$._parent.enabled_options[$]"/>
    <static-array type-name="int32_t" name="options" count="22"
        index-enum="embark_finder_option"/>
    <static-array type-name="bool" name="unmatched" count="22"
        index-enum="embark_finder_option"/>
    <stl-vector name="visible_options">
      <enum base-type="int32_t" type-name="embark_finder_option"/>
    </stl-vector>
    <int16_t name="finder_state" init-value="-1">
      0=find, 1=none, 2=partial, 3=suitable
    </int16_t>
    <int16_t name="unk_11e"/>
    <int16_t name="unk_120"/>
    <int16_t name="unk_122"/>
    <int16_t name="unk_124"/>
    <int16_t name="unk_126"/>
    <int16_t name="unk_128"/>
  </compound>
  <stl-vector name="unk_12c"/>
  <stl-vector name="unk_13c"/>
  <int32_t name="unk_14c"/>
  <int32_t name="unk_150"/>
  <int16_t name="unk_154"/>
  <int16_t name="unk_156"/>
  <int16_t name="unk_158"/>
  <int16_t name="unk_15a"/>
  <int32_t name="unk_15c"/>
</class-type>

viewscreen.viewscreen_civlistst

<class-type type-name="viewscreen_civlistst"
    inherits-from="viewscreen">
  <padding size="4"/>
  <int32_t name="sel_idx"/>
  <stl-vector pointer-type="historical_entity" name="entities"/>
</class-type>

viewscreen.viewscreen_conversationst

<class-type type-name="viewscreen_conversationst"
    inherits-from="viewscreen">
  <pointer name="conversation" type-name="conversation"/>
  <int32_t name="cursor_speech_line"/>
  <int32_t name="current_question"/>
  <int16_t name="cursor_line"/>
</class-type>

viewscreen.viewscreen_createquotast

<class-type type-name="viewscreen_createquotast"
    inherits-from="viewscreen">
  <static-string name="str_filter" size="256"/>
  <int32_t name="top_idx"/>
  <int32_t name="sel_idx"/>
  <stl-vector name="orders" pointer-type="manager_order_template">
    filtered orders
  </stl-vector>
  <stl-vector name="all_orders"
      pointer-type="manager_order_template"/>
  <bool name="want_quantity"/>
  <stl-string name="str_quantity"/>
  <int32_t/>
</class-type>

viewscreen.viewscreen_customize_unitst

<class-type type-name="viewscreen_customize_unitst"
    inherits-from="viewscreen">
  <pointer name="unit" type-name="unit"/>
  <int8_t name="editing_nickname"/>
  <int8_t name="editing_profession"/>
  <stl-string name="previous_name"/>
  <int8_t name="has_name"/>
</class-type>

viewscreen.viewscreen_dungeon_monsterstatusst

<class-type type-name="viewscreen_dungeon_monsterstatusst"
    inherits-from="viewscreen">
  <pointer name="unit" type-name="unit"/>
  <int32_t name="inventory_cursor"/>
  <int32_t name="body_part_cursor"/>
  <stl-vector name="body_part">
    <int16_t
        refers-to="$$._global.unit.body.body_plan.body_parts[$]"/>
  </stl-vector>
  <bool name="view_skills"/>
  <stl-vector name="inventory" pointer-type="unit_inventory_item"/>
  <stl-vector name="spatters" pointer-type="spatter"/>
</class-type>

viewscreen.viewscreen_dungeon_wrestlest

<class-type type-name="viewscreen_dungeon_wrestlest"
    inherits-from="viewscreen">
  <pointer name="player" type-name="unit"/>
  <pointer name="target" type-name="unit"/>
  <int8_t/>
  <int32_t/>
  <stl-vector/>
  <int32_t/>
  <int32_t/>
  <stl-vector type-name="int32_t"/>
  <stl-vector type-name="int32_t"/>
  <compound name="unk1">
    <pointer type-name="unit"/>
    <int8_t/>
    <int8_t/>
    <stl-vector name="weapons" pointer-type="item"/>
    <stl-vector type-name="int16_t"/>
    <stl-vector/>
    <stl-vector type-name="int16_t"/>
    <stl-vector/>
    <stl-vector/>
    <stl-vector/>
    <stl-vector/>
    <stl-vector type-name="int16_t"/>
    <stl-vector type-name="int16_t"/>
    <stl-vector type-name="int16_t"/>
    <stl-vector type-name="int16_t"/>
    <stl-vector/>
    <stl-vector/>
    <stl-vector/>
  </compound>
  <int32_t/>
  <int32_t/>
</class-type>

viewscreen.viewscreen_dungeonmodest

<class-type type-name="viewscreen_dungeonmodest"
    inherits-from="viewscreen">
  <int32_t name="x"/>
  <int32_t name="y"/>
  <int32_t name="z"/>
  <int32_t name="announce_y"/>
  <int32_t name="announce_idx"/>
  <int8_t name="announce_more"/>
</class-type>

viewscreen.viewscreen_dwarfmodest

<class-type type-name="viewscreen_dwarfmodest"
    inherits-from="viewscreen">
  <int8_t name="shown_site_name"/>
  <int16_t name="jeweler_mat_count"/>
  <stl-vector type-name="int32_t" name="jeweler_cutgem"
      index-refers-to="(material-by-id 0 $)"/>
  <stl-vector type-name="int32_t" name="jeweler_encrust"
      index-refers-to="(material-by-id 0 $)"/>
  <stl-vector name="unit_labors_sidemenu">
    For sidemenu unit/prefs/labor
    <enum type-name="unit_labor" base-type="int32_t"/>
  </stl-vector>
  <stl-vector name="unit_labors_sidemenu_uplevel">
    <enum type-name="unit_labor" base-type="int32_t"/>
  </stl-vector>
  <int32_t name="unit_labors_sidemenu_uplevel_idx"/>
  <int8_t name="sideSubmenu"/>
  <int8_t name="keyRepeat"/>
  <stl-vector name="trained_animals" pointer-type="unit"/>
  <int32_t name="trained_animal_idx"/>
  <int32_t name="number_assigned_hunt"/>
  <int32_t name="number_assigned_war"/>
</class-type>

viewscreen.viewscreen_entityst

<class-type type-name="viewscreen_entityst"
    inherits-from="viewscreen">
  <pointer name="entity" type-name="historical_entity"/>
  <stl-vector/>
  <int32_t/>
  <stl-vector pointer-type="nemesis_record"
      name="important_leader_nemesis"/>
  <stl-vector type-name="int32_t"/>
  <int32_t name="start_idx"/>
  <stl-vector name="agreements" pointer-type="meeting_event"/>
  <stl-vector name="agreement_status" type-name="int8_t"/>
  <int32_t name="agreement_cursor"/>
  <int16_t name="page"/>
</class-type>

viewscreen.viewscreen_export_graphical_mapst

<class-type type-name="viewscreen_export_graphical_mapst"
    inherits-from="viewscreen">
  <int16_t/>
  <int16_t/>
  <int16_t/>
  <int16_t/>
  <int32_t name="x_iterator">
    0 to map_width-1
  </int32_t>
  <int32_t name="y_iterator">
    0 to map_height-1
  </int32_t>
  <int32_t name="rgb_buffer">
    pointer to allocated buffer
  </int32_t>
  <int32_t name="map_width">
    in world tiles
  </int32_t>
  <int32_t name="map_height">
    in world tiles
  </int32_t>
  <int32_t name="numtiles_map_width">
    in embark tiles
  </int32_t>
  <int32_t name="numtiles_map_height">
    in embark tiles
  </int32_t>
  <bool name="in_export"/>
  <int32_t name="sel_idx"/>
</class-type>

viewscreen.viewscreen_export_regionst

<class-type type-name="viewscreen_export_regionst"
    inherits-from="viewscreen">
  <int8_t/>
  <stl-vector/>
  <stl-vector/>
  <stl-vector/>
  <int32_t/>
  <int32_t/>
  <int32_t/>
</class-type>

viewscreen.viewscreen_game_cleanerst

<class-type type-name="viewscreen_game_cleanerst"
    inherits-from="viewscreen">
  <enum base-type="int32_t" name="state">
    <enum-item name="CleaningGameObjects"/>
    <enum-item name="CleaningStrandedObjects"/>
    <enum-item name="CleaningPlayObjects"/>
  </enum>
  <int8_t/>
</class-type>

viewscreen.viewscreen_image_creatorst

<class-type type-name="viewscreen_image_creatorst"
    inherits-from="viewscreen">
  <stl-string name="title"/>
  <stl-vector type-name="int32_t"/>
  <int32_t name="category_idx"/>
  <enum name="category" base-type="int32_t">
    <enum-item name="None" value="-1"/>
    <enum-item name="Unk0"/>
    <enum-item name="Histfig"/>
    <enum-item name="Site"/>
    <enum-item name="CivGroup"/>
    <enum-item name="Unk4"/>
    <enum-item name="ExistingImage"/>
    <enum-item name="NewImage"/>
  </enum>
  <int32_t name="item_idx"/>
  <bool name="in_filter"/>
  <stl-string name="filter"/>
  <stl-vector name="descriptions">
    <pointer>
      <stl-string name="line"/>
      <int32_t/>
    </pointer>
  </stl-vector>
  <stl-vector name="site_info">
    <pointer>
      <stl-string/>
      <stl-string name="name"/>
      <stl-string name="trans_name"/>
    </pointer>
  </stl-vector>
  <stl-vector name="civ_info">
    <pointer>
      <stl-string/>
      <stl-string name="name"/>
      <stl-string name="trans_name"/>
    </pointer>
  </stl-vector>
</class-type>

viewscreen.viewscreen_itemst

<class-type type-name="viewscreen_itemst" inherits-from="viewscreen">
  <pointer name="item" type-name="item"/>
  <stl-vector name="entry_ref" pointer-type="general_ref"/>
  <stl-vector name="entry_indent" type-name="int16_t"/>
  <stl-vector name="unk_34">
    <pointer>
      NULL
    </pointer>
  </stl-vector>
  <stl-vector name="entry_string" pointer-type="stl-string"/>
  <stl-vector name="entry_reaction" type-name="int32_t"/>
  <int32_t name="cursor_pos"/>
  <bool name="caption_uses"/>
  <bool name="caption_contents"/>
</class-type>

viewscreen.viewscreen_jobst

<class-type type-name="viewscreen_jobst" inherits-from="viewscreen">
  <pointer name="job" type-name="job"/>
</class-type>

viewscreen.viewscreen_joblistst

<class-type type-name="viewscreen_joblistst"
    inherits-from="viewscreen">
  <bool name="allow_zoom"/>
  <int32_t name="cursor_pos"/>
  <stl-vector name="jobs" pointer-type="job"/>
  <stl-vector name="units" pointer-type="unit"/>
</class-type>

viewscreen.viewscreen_jobmanagementst

<class-type type-name="viewscreen_jobmanagementst"
    inherits-from="viewscreen">
  <int32_t name="sel_idx"/>
  <bool name="in_max_workshops" since="v0.43.01"/>
</class-type>

viewscreen.viewscreen_justicest

<class-type type-name="viewscreen_justicest"
    inherits-from="viewscreen">
  <int16_t name="jails_needed"/>
  <int16_t name="jails_present"/>
  <enum base-type="int32_t" name="cur_column">
    <enum-item name="Crimes"/>
    <enum-item name="Suspects"/>
    <enum-item name="ConvictChoices"/>
  </enum>
  <stl-vector name="convicts" pointer-type="unit"/>
  <stl-vector name="cases" pointer-type="crime">
    contains recent or cold cases depending on the cold_cases field
  </stl-vector>
  <int32_t name="sel_idx_current"/>
  <int32_t name="sel_idx_cold">
    used to save/restore current selection when switching between
    recent/cold
  </int32_t>
  <int32_t name="sel_idx_recent">
    used to save/restore current selection when switching between
    recent/cold
  </int32_t>
  <bool name="cold_cases"/>
  <int32_t name="count_cold"/>
  <int32_t name="count_recent"/>
  <int32_t name="cursor_right"/>
  <stl-vector name="convictions" pointer-type="crime"/>
  <pointer name="punishment" type-name="punishment"/>
  <stl-vector name="convict_choices" pointer-type="unit"/>
</class-type>

viewscreen.viewscreen_kitchenpref_page

<enum-type type-name="viewscreen_kitchenpref_page"
    base-type="int32_t">
  <enum-item name="VegetablesFruitLeaves"/>
  <enum-item name="Seeds"/>
  <enum-item name="Drinks"/>
  <enum-item name="MeatFishOther"/>
</enum-type>

viewscreen.viewscreen_kitchenprefst

<class-type type-name="viewscreen_kitchenprefst"
    inherits-from="viewscreen">
  <int32_t name="cursor"/>
  <enum base-type="int32_t" name="page"
      type-name="viewscreen_kitchenpref_page"/>
  <static-array name="item_type" count="4"
      index-enum="viewscreen_kitchenpref_page">
    <stl-vector>
      <enum base-type="int16_t" type-name="item_type"/>
    </stl-vector>
  </static-array>
  <static-array name="item_subtype" count="4"
      index-enum="viewscreen_kitchenpref_page">
    <stl-vector>
      <int16_t refers-to="(item-subtype-target
          $$._global.item_type[$$._parent.key][$$._key] $)"/>
    </stl-vector>
  </static-array>
  <static-array name="mat_type" count="4"
      index-enum="viewscreen_kitchenpref_page">
    <stl-vector>
      <int16_t ref-target="material"
          aux-value="$$._global.mat_index[$$._key][$._key]"/>
    </stl-vector>
  </static-array>
  <static-array name="mat_index" count="4"
      index-enum="viewscreen_kitchenpref_page">
    <stl-vector type-name="int32_t"/>
  </static-array>
  <static-array name="count" count="4"
      index-enum="viewscreen_kitchenpref_page">
    <stl-vector type-name="int32_t"/>
  </static-array>
  <static-array name="forbidden" count="4"
      index-enum="viewscreen_kitchenpref_page">
    <stl-vector type-name="uint8_t">
      1 cook, 2 brew
    </stl-vector>
  </static-array>
  <static-array name="possible" count="4"
      index-enum="viewscreen_kitchenpref_page">
    <stl-vector type-name="uint8_t">
      1 cook, 2 brew
    </stl-vector>
  </static-array>
  <static-array name="item_str" count="4"
      index-enum="viewscreen_kitchenpref_page">
    <stl-vector pointer-type="stl-string"/>
  </static-array>
</class-type>

viewscreen.viewscreen_layer_arena_creaturest

<class-type type-name="viewscreen_layer_arena_creaturest"
    inherits-from="viewscreen_layer">
  <int8_t name="unk_1c"/>
  <int16_t name="unk_1e"/>
  <padding name="unk_20" size="8"/>
  <int32_t name="cur_side"/>
  <int32_t name="cur_interaction"
      refers-to="$global.world.arena_spawn.interactions[$]"/>
</class-type>

viewscreen.assign_trade_status

<struct-type type-name="assign_trade_status">
  <pointer name="item" type-name="item"/>
  <int32_t name="distance"/>
  <enum base-type="int8_t" name="status">
    <enum-item name="RemoveTrading" value="-2"/>
    <enum-item name="RemovePending"/>
    <enum-item name="None"/>
    <enum-item name="AddPending"/>
    <enum-item name="Pending"/>
    <enum-item name="Trading"/>
  </enum>
  <bool name="unk">
    mandate?
  </bool>
  <int32_t name="value"/>
  <int32_t name="weight"/>
</struct-type>

viewscreen.viewscreen_layer_assigntradest

<class-type type-name="viewscreen_layer_assigntradest"
    inherits-from="viewscreen_layer">
  <stl-vector name="info" pointer-type="assign_trade_status"/>
  <pointer name="depot" type-name="building_tradedepotst"/>
  <static-array name="lists" count="63">
    <stl-vector type-name="int32_t" refers-to="$$._global.info[$]"/>
  </static-array>
  <stl-vector name="visible_lists" type-name="int16_t"/>
  <bool name="sort_distance"/>
  <bool name="pending_on_top"/>
  <bool name="filter_mandates"/>
  <stl-string name="filter" since="v0.34.10"/>
</class-type>

viewscreen.viewscreen_layer_choose_language_namest

<class-type type-name="viewscreen_layer_choose_language_namest"
    inherits-from="viewscreen_layer">
  <pointer name="entity" type-name="historical_entity"/>
  <pointer name="name" type-name="language_name"/>
  <int32_t name="unk1a"/>
  <int32_t name="unk1b"/>
  <int32_t name="unk1c"/>
  <compound name="dictionary" type-name="language_word_table"/>
  <stl-vector name="list_word" type-name="int32_t"
      ref-target="language_word"/>
  <stl-vector name="list_part"
      index-refers-to="$$._parent.list_word[$].ref-target">
    <enum base-type="int32_t" type-name="part_of_speech"/>
  </stl-vector>
  <stl-string name="selector"/>
</class-type>

viewscreen.viewscreen_layer_currencyst

<class-type type-name="viewscreen_layer_currencyst"
    inherits-from="viewscreen_layer">
  <stl-vector/>
  <int32_t/>
  <stl-vector/>
</class-type>

viewscreen.viewscreen_layer_export_play_mapst

<class-type type-name="viewscreen_layer_export_play_mapst"
    inherits-from="viewscreen_layer">
  <stl-vector type-name="int8_t"/>
  <stl-vector type-name="int16_t"/>
  <stl-vector type-name="int16_t"/>
  <stl-vector type-name="int16_t"/>
</class-type>

viewscreen.viewscreen_layer_militaryst

<class-type type-name="viewscreen_layer_militaryst"
    inherits-from="viewscreen_layer">
  <compound name="squads">
    <stl-vector name="list" pointer-type="squad"/>
    <stl-vector name="leader_positions"
        pointer-type="entity_position"/>
    <stl-vector name="leader_assignments"
        pointer-type="entity_position_assignment"/>
    <stl-bit-vector name="can_appoint"/>
  </compound>
  <compound name="positions">
    <stl-vector name="assigned" pointer-type="unit"/>
    <stl-vector name="skill">
      <enum base-type="int16_t" type-name="job_skill"/>
    </stl-vector>
    <stl-vector name="unk_84" type-name="int32_t"/>
    <stl-vector name="candidates" pointer-type="unit"/>
  </compound>
  <enum name="page">
    <enum-item name="Positions"/>
    <enum-item name="Alerts"/>
    <enum-item name="Equip"/>
    <enum-item name="Uniforms"/>
    <enum-item name="Supplies"/>
    <enum-item name="Ammunition"/>
  </enum>
  <int32_t name="num_squads"/>
  <int32_t name="num_soldiers"/>
  <int32_t name="num_active"/>
  <compound name="squad_members">
    <stl-vector name="profession">
      <enum base-type="int16_t" type-name="profession"/>
    </stl-vector>
    <stl-vector name="count" type-name="int32_t"/>
    <stl-vector name="max_count" type-name="int32_t"/>
  </compound>
  <bool name="in_create_squad"/>
  <bool name="in_new_squad"/>
  <bool name="unk_e6"/>
  <stl-vector name="captain_positions"
      pointer-type="entity_position"/>
  <pointer name="new_position" type-name="entity_position"/>
  <bool name="unk_fc"/>
  <bool name="in_rename_alert"/>
  <bool name="in_delete_alert"/>
  <stl-vector name="alert_squads" pointer-type="squad"/>
  <compound name="equip">
    <enum name="mode">
      <enum-item name="Customize"/>
      <enum-item name="Uniform"/>
      <enum-item name="Priority"/>
    </enum>
    <stl-vector name="squads" pointer-type="squad"/>
    <stl-vector name="units" pointer-type="unit"/>
    <stl-vector name="specific_items" pointer-type="item"/>
    <int32_t name="prio_in_move" refers-to="$$._parent.squads[$]"/>
    <compound name="assigned">
      <stl-vector name="spec" pointer-type="squad_uniform_spec"/>
      <stl-vector name="category">
        <enum base-type="int16_t" type-name="uniform_category"/>
      </stl-vector>
      <stl-vector name="index" type-name="int32_t">
        spec in category vector
      </stl-vector>
    </compound>
    <stl-vector name="unk_178"/>
    <pointer name="edit_spec" type-name="squad_uniform_spec"/>
    <stl-vector name="uniforms" pointer-type="entity_uniform"/>
    <compound name="uniform">
      <stl-vector name="type">
        <enum base-type="int16_t" type-name="item_type"/>
      </stl-vector>
      <stl-vector name="subtype">
        <int16_t refers-to="(item-subtype-target
            $$._parent._parent.type[$$._key] $)"/>
      </stl-vector>
      <stl-vector name="category">
        <enum base-type="int16_t" type-name="uniform_category"/>
      </stl-vector>
      <stl-vector name="index" type-name="int16_t"/>
      <stl-vector name="info" pointer-type="entity_uniform_item"/>
    </compound>
    <enum name="edit_mode">
      <enum-item name="Armor"/>
      <enum-item name="Helm"/>
      <enum-item name="Legs"/>
      <enum-item name="Gloves"/>
      <enum-item name="Boots"/>
      <enum-item name="Shield"/>
      <enum-item name="Weapon"/>
      <enum-item name="Material"/>
      <enum-item name="Color"/>
      <enum-item name="SpecificArmor"/>
      <enum-item name="SpecificHelm"/>
      <enum-item name="SpecificLegs"/>
      <enum-item name="SpecificGloves"/>
      <enum-item name="SpecificBoots"/>
      <enum-item name="SpecificShield"/>
      <enum-item name="SpecificWeapon"/>
    </enum>
    <padding name="unk_1ec" size="4"/>
    <compound name="add_item">
      <stl-vector name="type">
        <enum base-type="int16_t" type-name="item_type"/>
      </stl-vector>
      <stl-vector name="subtype">
        <int16_t refers-to="(item-subtype-target
            $$._parent._parent.type[$$._key] $)"/>
      </stl-vector>
      <stl-vector name="indiv_choice"
          type-name="uniform_indiv_choice"/>
      <stl-bit-vector name="foreign"/>
    </compound>
    <compound name="material">
      <stl-vector name="generic">
        <enum base-type="int16_t"
            type-name="entity_material_category"/>
      </stl-vector>
      <compound name="specific" type-name="material_vec_ref"/>
    </compound>
    <compound name="color">
      <stl-vector name="id" type-name="int32_t"
          ref-target="descriptor_color"/>
      <stl-bit-vector name="dye"/>
    </compound>
    <bool name="in_name_uniform"/>
  </compound>
  <compound name="ammo">
    <stl-vector name="squads" pointer-type="squad">
      null for hunters
    </stl-vector>
    <bool name="in_add_item"/>
    <bool name="in_set_material"/>
    <compound name="add_item">
      <stl-vector name="type">
        <enum base-type="int16_t" type-name="item_type"/>
      </stl-vector>
      <stl-vector name="subtype">
        <int16_t refers-to="(item-subtype-target
            $$._parent._parent.type[$$._key] $)"/>
      </stl-vector>
      <stl-bit-vector name="foreign"/>
    </compound>
    <compound name="material">
      <stl-vector name="generic">
        <enum base-type="int16_t"
            type-name="entity_material_category"/>
      </stl-vector>
      <compound name="specific" type-name="material_vec_ref"/>
    </compound>
  </compound>
  <stl-vector name="supplies_squads" pointer-type="squad"/>
</class-type>

viewscreen.viewscreen_layer_musicsoundst

<class-type type-name="viewscreen_layer_musicsoundst"
    inherits-from="viewscreen_layer"/>

viewscreen.viewscreen_layer_noblelistst

<class-type type-name="viewscreen_layer_noblelistst"
    inherits-from="viewscreen_layer">
  <enum name="mode" base-type="int16_t">
    <enum-item name="List"/>
    <enum-item name="Appoint"/>
    <enum-item name="Settings"/>
  </enum>
  <stl-vector name="info">
    <pointer>
      <pointer name="unit" type-name="unit"/>
      <pointer name="nemesis" type-name="nemesis_record"/>
      <pointer name="unk_8"/>
      <pointer name="position" type-name="entity_position"/>
      <pointer name="assignment"
          type-name="entity_position_assignment"/>
      <int32_t name="group" ref-target="historical_entity"/>
      <int32_t name="precedence"/>
    </pointer>
  </stl-vector>
  <stl-vector name="candidates">
    <pointer>
      <pointer name="unit" type-name="unit"/>
      <int32_t name="weight"/>
    </pointer>
  </stl-vector>
  <stl-vector name="assignments"
      pointer-type="entity_position_assignment"/>
  <stl-vector name="histfigs" type-name="int32_t"
      ref-target="historical_figure"/>
  <stl-vector name="groups" type-name="int32_t"
      ref-target="historical_entity"/>
</class-type>

viewscreen.health_view_bits1

<bitfield-type type-name="health_view_bits1">
  <flag-bit name="bleeding_heavy"/>
  <flag-bit name="bleeding"/>
  <flag-bit name="pale"/>
  <flag-bit name="blood_loss_severe"/>
  <flag-bit name="faint"/>
  <flag-bit name="blood_loss"/>
  <flag-bit name="paralyzed"/>
  <flag-bit name="paralyzed_partially"/>
  <flag-bit name="sluggish"/>
  <flag-bit name="numb_completely"/>
  <flag-bit name="numb_partially"/>
  <flag-bit name="numb_slightly"/>
  <flag-bit name="fever_serious"/>
  <flag-bit name="fever_moderate"/>
  <flag-bit name="fever_slight"/>
  <flag-bit name="pain_extreme"/>
  <flag-bit name="pain_moderate"/>
  <flag-bit name="pain_slight"/>
  <flag-bit name="exhausted"/>
  <flag-bit name="overexerted"/>
  <flag-bit name="tired"/>
  <flag-bit name="stunned"/>
  <flag-bit name="dizzy"/>
  <flag-bit name="drowning"/>
  <flag-bit name="winded"/>
  <flag-bit name="nauseous"/>
  <flag-bit name="drowsy_very"/>
  <flag-bit name="drowsy"/>
  <flag-bit name="dehydrated"/>
  <flag-bit name="thirsty"/>
  <flag-bit name="starving"/>
  <flag-bit name="hungry"/>
</bitfield-type>

viewscreen.health_view_bits2

<bitfield-type type-name="health_view_bits2">
  <flag-bit name="breathe_cant"/>
  <flag-bit name="breathe_trouble"/>
  <flag-bit name="vision_lost"/>
  <flag-bit name="vision_impaired"/>
  <flag-bit name="vision_impaired2"/>
  <flag-bit name="stand_cant"/>
  <flag-bit name="stand_impaired"/>
  <flag-bit name="grasp_cant"/>
  <flag-bit name="grasp_impaired"/>
  <flag-bit name="fly_cant"/>
  <flag-bit name="fly_impaired"/>
  <flag-bit name="motor_nerve"/>
  <flag-bit name="sensory_nerve"/>
  <flag-bit name="spilled"/>
  <flag-bit name="artery_major"/>
  <flag-bit name="artery"/>
  <flag-bit name="tendon_torn"/>
  <flag-bit name="tendon_strain"/>
  <flag-bit name="tendon_bruise"/>
  <flag-bit name="ligament_torn"/>
  <flag-bit name="ligament_sprain"/>
  <flag-bit name="ligament_bruise"/>
  <flag-bit name="fracture_compound"/>
  <flag-bit name="fracture_overlap"/>
  <flag-bit name="need_setting"/>
  <flag-bit name="tissue_broken"/>
  <flag-bit name="tissue_part_broken"/>
  <flag-bit name="damage_heavy"/>
  <flag-bit name="damage_moderate"/>
  <flag-bit name="damage_light"/>
  <flag-bit name="pain_extreme"/>
  <flag-bit name="pain_moderate"/>
</bitfield-type>

viewscreen.health_view_bits3

<bitfield-type type-name="health_view_bits3">
  <flag-bit name="pain_minor"/>
  <flag-bit name="swell_extreme"/>
  <flag-bit name="swell_medium"/>
  <flag-bit name="swell_minor"/>
  <flag-bit name="infection"/>
  <flag-bit name="rq_diagnosis"/>
  <flag-bit name="rq_crutch"/>
  <flag-bit name="inoperable_rot"/>
  <flag-bit name="rq_cleaning"/>
  <flag-bit name="rq_surgery"/>
  <flag-bit name="rq_suture"/>
  <flag-bit name="rq_setting"/>
  <flag-bit name="rq_dressing"/>
  <flag-bit name="rq_traction"/>
  <flag-bit name="rq_immobilize"/>
</bitfield-type>

viewscreen.viewscreen_layer_overall_healthst

<class-type type-name="viewscreen_layer_overall_healthst"
    inherits-from="viewscreen_layer">
  <int32_t/>
  <stl-vector name="unit" pointer-type="unit"/>
  <stl-vector name="bits1">
    <compound type-name="health_view_bits1"/>
  </stl-vector>
  <stl-vector name="bits2">
    <compound type-name="health_view_bits2"/>
  </stl-vector>
  <stl-vector name="bits3">
    <compound type-name="health_view_bits3"/>
  </stl-vector>
  <int32_t name="x_cursor_pos"/>
</class-type>

viewscreen.viewscreen_layer_reactionst

<class-type type-name="viewscreen_layer_reactionst"
    inherits-from="viewscreen_layer">
  <int32_t/>
</class-type>

viewscreen.viewscreen_layer_squad_schedulest

<class-type type-name="viewscreen_layer_squad_schedulest"
    inherits-from="viewscreen_layer">
  <stl-vector name="squads" pointer-type="squad"/>
  <int8_t name="swapped"/>
  <int32_t name="page_month"/>
  <int32_t name="cur_alert"/>
  <bool name="in_name_cell"/>
  <bool name="in_give_order"/>
  <bool name="in_edit_order"/>
  <pointer name="order_list" type-name="squad_schedule_entry"/>
  <int32_t/>
  <int32_t name="order_month"/>
  <int32_t name="order_type"/>
  <stl-bit-vector name="burrows"/>
  <int32_t name="patrol_route"/>
  <int32_t name="min_soldiers"/>
  <stl-bit-vector name="positions"/>
  <int32_t name="station_point"/>
  <pointer name="copy_item" type-name="squad_schedule_entry"/>
</class-type>

viewscreen.viewscreen_layer_stockpilest

<class-type type-name="viewscreen_layer_stockpilest"
    inherits-from="viewscreen_layer">
  <pointer name="settings" type-name="stockpile_settings"/>
  <enum name="cur_group" type-name="stockpile_list"
      base-type="int32_t"/>
  <enum name="cur_list" type-name="stockpile_list"
      base-type="int32_t"/>
  <stl-vector name="group_ids">
    <enum type-name="stockpile_list" base-type="int32_t"/>
  </stl-vector>
  <stl-vector name="group_bits">
    <compound type-name="stockpile_group_set"/>
  </stl-vector>
  <stl-vector name="list_ids">
    <enum type-name="stockpile_list" base-type="int32_t"/>
  </stl-vector>
  <stl-vector name="item_names" pointer-type="stl-string"/>
  <stl-vector name="item_status" pointer-type="bool"/>
  <stl-string name="title"/>
</class-type>

viewscreen.viewscreen_layer_stone_restrictionst

<class-type type-name="viewscreen_layer_stone_restrictionst"
    inherits-from="viewscreen_layer">
  <static-array name="stone_type" count="2">
    <stl-vector type-name="int32_t" ref-target="inorganic_raw"/>
  </static-array>
  <static-array name="stone_economic" count="2">
    <stl-vector pointer-type="bool"/>
  </static-array>
  <int32_t name="type_tab"/>
  <int32_t/>
  <int32_t/>
  <stl-vector name="use_name" pointer-type="stl-string"/>
  <stl-vector name="use_id" type-name="int32_t"
      ref-target="reaction"/>
</class-type>

viewscreen.viewscreen_layer_unit_actionst

<class-type type-name="viewscreen_layer_unit_actionst"
    inherits-from="viewscreen_layer">
  <pointer name="unit" type-name="unit"/>
  <stl-vector name="held_items" pointer-type="item"/>
  <stl-vector name="reactions" pointer-type="reaction"/>
  <stl-vector/>
  <stl-string name="group_name"/>
  <stl-vector name="choice_items" pointer-type="item"/>
  <stl-vector name="sel_items" pointer-type="item"/>
  <stl-vector name="sel_reagents" type-name="int32_t"
      refers-to="$$._global.cur_reaction[$]"/>
  <pointer name="cur_reaction" type-name="reaction"/>
  <int32_t name="reagent" refers-to="$$.cur_reaction.reagents[$]"/>
  <int32_t name="reagent_amnt_left"/>
  <int32_t/>
  <stl-vector/>
  <stl-vector/>
  <stl-vector/>
  <stl-vector/>
  <stl-vector/>
  <stl-vector/>
  <stl-vector/>
  <stl-vector/>
</class-type>

viewscreen.viewscreen_layer_unit_healthst

<class-type type-name="viewscreen_layer_unit_healthst"
    inherits-from="viewscreen_layer">
  <int32_t/>
  <pointer name="unit" type-name="unit"/>
  <int16_t name="page"/>
  <stl-string name="title"/>
  <static-array name="text" count="4">
    <stl-vector pointer-type="stl-string"/>
  </static-array>
  <static-array name="text_fg" count="4">
    <stl-vector type-name="int16_t"/>
  </static-array>
  <static-array name="text_bg" count="4">
    <stl-vector type-name="int16_t"/>
  </static-array>
  <static-array name="text_bold" count="4">
    <stl-vector type-name="int16_t"/>
  </static-array>
  <int32_t/>
  <int32_t/>
  <int32_t/>
  <int32_t/>
</class-type>

viewscreen.viewscreen_layer_unit_relationshipst

<class-type type-name="viewscreen_layer_unit_relationshipst"
    inherits-from="viewscreen_layer">
  <pointer type-name="unit" name="unit"/>
  <stl-vector pointer-type="stl-string" name="relation_textline"/>
  <stl-vector name="relation_unit_type">
    <enum base-type="int16_t" type-name="unit_relationship_type"/>
  </stl-vector>
  <stl-vector name="relation_histfig_type">
    <enum base-type="int16_t" type-name="histfig_relationship_type"/>
  </stl-vector>
  <stl-vector pointer-type="unit" name="relation_unit"/>
  <stl-vector pointer-type="historical_figure" name="relation_hf"/>
  <stl-vector type-name="int32_t" name="level"/>
</class-type>

viewscreen.viewscreen_layer_world_gen_paramst

<class-type type-name="viewscreen_layer_world_gen_paramst"
    inherits-from="viewscreen_layer">
  <int32_t/>
  <stl-string/>
  <stl-vector/>
  <compound name="unk1">
    <int32_t/>
    <int32_t/>
    <int32_t/>
    <int32_t/>
    <int32_t/>
    <int32_t/>
    <int32_t/>
    <int32_t/>
    <int32_t/>
    <int32_t/>
    <int32_t/>
    <int32_t/>
    <int32_t/>
    <int32_t/>
    <int32_t/>
    <int32_t/>
    <int32_t/>
    <int32_t/>
    <int32_t/>
    <int32_t/>
    <int32_t/>
    <int32_t/>
    <int32_t/>
    <int32_t/>
    <int32_t/>
    <int32_t/>
  </compound>
</class-type>

viewscreen.viewscreen_layer_world_gen_param_presetst

<class-type type-name="viewscreen_layer_world_gen_param_presetst"
    inherits-from="viewscreen_layer">
  <int32_t/>
  <int32_t/>
  <stl-string/>
  <static-array type-name="int16_t" count="24"/>
  <static-array type-name="int8_t" count="24"/>
  <int32_t/>
  <int16_t/>
  <int16_t/>
  <int16_t/>
  <int16_t/>
</class-type>

viewscreen.viewscreen_legendsst

<class-type type-name="viewscreen_legendsst"
    inherits-from="viewscreen">
  <int32_t/>
  <int32_t name="init_step"/>
  <int32_t name="init_era"/>
  <int32_t/>
  <int32_t/>
  <int32_t name="init_progress"/>
  <stl-vector type-name="int32_t" name="histfigs"
      ref-target="historical_figure"/>
  <stl-vector type-name="int32_t" name="sites"/>
  <stl-vector type-name="int32_t" name="artifacts"/>
  <stl-vector type-name="int32_t" name="regions"/>
  <stl-vector type-name="int32_t" name="layers"/>
  <stl-vector type-name="int32_t" name="entities"/>
  <stl-vector type-name="int32_t" name="structures_1"/>
  <stl-vector type-name="int32_t" name="structures_2"/>
  <stl-vector type-name="int32_t" name="unk_a8"/>
  <stl-vector/>
  <stl-vector/>
  <stl-bit-vector/>
  <stl-vector/>
  <stl-vector/>
  <stl-vector/>
  <stl-vector/>
  <stl-string name="era_name"/>
  <enum name="cur_page" base-type="int16_t">
    0
    <enum-item name="Main"/>
    <enum-item name="HistoricalFigures"/>
    <enum-item name="Sites"/>
    <enum-item name="Artifacts"/>
    <enum-item name="Regions"/>
    <enum-item name="Civilizations"/>
    <enum-item name="Art"/>
    <enum-item name="Structures"/>
    <enum-item name="Age"/>
    <enum-item name="HistoricalMaps"/>
    <enum-item name="UndergroundRegions"/>
    <enum-item name="Populations"/>
    invalid pages fail to render properly but do not crash
  </enum>
  <int32_t/>
  <int32_t name="main_cursor"/>
  <stl-vector type-name="int16_t" name="main_row_type"/>
  <stl-vector type-name="int32_t" name="main_row_arg1"/>
  <stl-vector type-name="int32_t" name="main_row_arg2"/>
  <stl-vector type-name="int32_t" name="main_row_arg3"/>
  <int32_t name="sub_cursor"/>
  <int8_t name="important_events_only"/>
  <stl-vector type-name="pointer"/>
  <int16_t name="map_x"/>
  <int16_t name="map_y"/>
  <int16_t name="hide_territories"/>
  <int16_t name="civ_site_mode"/>
  <int16_t/>
  <stl-string name="filter_text"/>
  <int8_t name="filter_editing"/>
  <stl-vector type-name="int32_t">
    index into histfigs
  </stl-vector>
  <stl-vector type-name="int32_t">
    index into sites
  </stl-vector>
  <stl-vector type-name="int32_t">
    index into artifacts
  </stl-vector>
  <stl-vector type-name="int32_t">
    index into regions
  </stl-vector>
  <stl-vector type-name="int32_t">
    index into layers
  </stl-vector>
  <stl-vector type-name="int32_t">
    index into unk_a8
  </stl-vector>
  <stl-vector type-name="int32_t">
    index into entities
  </stl-vector>
  <stl-vector type-name="int32_t">
    index into structures
  </stl-vector>
</class-type>

viewscreen.viewscreen_locationsst

<class-type type-name="viewscreen_locationsst"
    inherits-from="viewscreen">
  <stl-vector name="locations" pointer-type="abstract_building"/>
  <stl-vector name="dance_floor_x" type-name="int32_t"/>
  <stl-vector name="dance_floor_y" type-name="int32_t"/>
  <stl-vector type-name="int32_t"/>
  <int32_t name="location_idx"/>
  <stl-vector name="occupations" pointer-type="occupation"/>
  <int32_t name="occupation_idx"/>
  <stl-vector name="units" pointer-type="unit"/>
  <int32_t name="unit_idx">
    uninitialized
  </int32_t>
  <enum base-type="int32_t" name="in_edit">
    <enum-item name="None"/>
    <enum-item name="Goblets"/>
    <enum-item name="Instruments"/>
    <enum-item name="WritingCopies"/>
    <enum-item name="WritingMaterial"/>
  </enum>
  <int32_t/>
  <enum base-type="int32_t" name="menu">
    <enum-item name="Locations"/>
    <enum-item name="Occupations"/>
    <enum-item name="AssignOccupation"/>
  </enum>
</class-type>

viewscreen.loadgame_save_info

<struct-type type-name="loadgame_save_info">
  <static-array name="save_info" type-name="int32_t" count="38">
    all of the next_id globals
  </static-array>
  <enum base-type="int16_t" name="game_type" type-name="game_type">
    only 0 (fort) 1 (adv) 3(reclaim) are valid
  </enum>
  <stl-string name="fort_name"/>
  <stl-string name="world_name"/>
  <int32_t name="year"/>
  <stl-string name="folder_name"/>
</struct-type>

viewscreen.matgloss_list

<struct-type type-name="matgloss_list">
  <stl-vector/>
  <stl-vector name="generated_inorganics"/>
  <stl-vector name="generated_plants"/>
  <stl-vector name="generated_items"/>
  <stl-vector name="generated_creatures"/>
  <stl-vector name="generated_entities"/>
  <stl-vector name="generated_interactions"/>
  <stl-vector name="generated_languages"/>
  <stl-vector name="inorganics" pointer-type="stl-string"/>
  <stl-vector name="plants" pointer-type="stl-string"/>
  <stl-vector name="bodies" pointer-type="stl-string"/>
  <stl-vector name="bodyglosses" pointer-type="stl-string"/>
  <stl-vector name="creatures" pointer-type="stl-string"/>
  <stl-vector name="items" pointer-type="stl-string"/>
  <stl-vector name="buildings" pointer-type="stl-string"/>
  <stl-vector name="entities" pointer-type="stl-string"/>
  <stl-vector name="words" pointer-type="stl-string"/>
  <stl-vector name="symbols" pointer-type="stl-string"/>
  <stl-vector name="translations" pointer-type="stl-string"/>
  <stl-vector name="colors" pointer-type="stl-string"/>
  <stl-vector name="shapes" pointer-type="stl-string"/>
  <stl-vector name="patterns" pointer-type="stl-string"/>
  <stl-vector name="reactions" pointer-type="stl-string"/>
  <stl-vector name="material_templates" pointer-type="stl-string"/>
  <stl-vector name="tissue_templates" pointer-type="stl-string"/>
  <stl-vector name="body_detail_plans" pointer-type="stl-string"/>
  <stl-vector name="creature_variations" pointer-type="stl-string"/>
  <stl-vector name="interactions" pointer-type="stl-string"/>
</struct-type>

viewscreen.viewscreen_loadgamest

<class-type type-name="viewscreen_loadgamest"
    inherits-from="viewscreen">
  <int32_t name="cur_step"/>
  <int32_t name="unk_v40_1b" since="v0.40.01"/>
  <int8_t name="loading"/>
  <int32_t name="sel_idx"/>
  <stl-vector name="saves" pointer-type="loadgame_save_info"/>
  <compound type-name="file_compressorst" name="compressor"/>
  <compound type-name="matgloss_list" name="glosses"/>
  <int32_t name="unk_v40_2"/>
  <compound name="cur_save" type-name="loadgame_save_info"/>
</class-type>

viewscreen.viewscreen_meetingst

<class-type type-name="viewscreen_meetingst"
    inherits-from="viewscreen">
  <pointer type-name="dipscript_popup" name="dipscript_popup"/>
  <pointer type-name="activity_info" name="activity"/>
  <pointer type-name="unit" name="holder"/>
</class-type>

viewscreen.viewscreen_movieplayerst

<class-type type-name="viewscreen_movieplayerst"
    inherits-from="viewscreen">
  <int8_t name="saving"/>
  <int8_t name="loading"/>
  <int8_t name="editing"/>
  <int8_t name="text_mode"/>
  <uint8_t name="editing_char"/>
  <int32_t name="editing_copy_from"/>
  <int16_t name="editing_screenf"/>
  <int16_t name="editing_screenb"/>
  <int16_t name="editing_screenbright"/>
  <int32_t name="editing_selected_sound"/>
  <int8_t name="editing_menu"/>
  <stl-string name="savename"/>
  <stl-string name="force_file"/>
  <int8_t name="is_playing"/>
  <int8_t name="is_forced_play"/>
  <int8_t name="quit_if_no_play"/>
  <int32_t name="maxmoviepos"/>
  <int32_t name="end_frame_pos"/>
  <int32_t name="selfile"/>
  <stl-vector name="filelist" type-name="ptr-string"/>
</class-type>

viewscreen.viewscreen_new_regionst

<class-type type-name="viewscreen_new_regionst"
    inherits-from="viewscreen">
  <stl-vector name="worldgen_presets"/>
  <int8_t name="unk_2"/>
  <int8_t name="in_worldgen"/>
  <int32_t name="cursor_paramset"/>
  <stl-string name="random_seed"/>
  <int8_t name="editing_randseed"/>
  <int8_t name="editing_customname"/>
  <int8_t name="editing_title"/>
  <int8_t name="popup_deleteset"/>
  <int8_t name="popup_changedimensions"/>
  <int8_t name="unk_11"/>
  <uint16_t name="custom_size_x"/>
  <uint16_t name="custom_size_y"/>
  <int8_t name="popup_abort"/>
  <int8_t name="popup_goon"/>
  <int8_t name="unsaved_changes"/>
  <int8_t name="simple_mode">
    0=advanced params, 1=create new world
  </int8_t>
  <int8_t name="unk_20"/>
  <int8_t name="unk_21"/>
  <int16_t name="cursor_line"/>
  <int32_t name="world_size"/>
  <int32_t name="history"/>
  <int32_t name="number_civs"/>
  <int32_t name="number_sites"/>
  <int32_t name="number_beasts"/>
  <int32_t name="savagery"/>
  <int32_t name="mineral_occurence"/>
  <int8_t name="worldgen_paused"/>
  <int8_t name="worldgen_rejected"/>
  <stl-vector name="unk_32" pointer-type="stl-string">
    rejection related
  </stl-vector>
  <stl-vector name="welcome_msg" pointer-type="stl-string">
    fullscreen popup
  </stl-vector>
  <stl-string name="unk_98"/>
  <int8_t name="unk_b4"/>
  <int32_t name="unk_b8"/>
  <int32_t name="unk_bc"/>
</class-type>

viewscreen.viewscreen_noblest

<class-type type-name="viewscreen_noblest" inherits-from="viewscreen">
  <int32_t name="become_capital_offerings"/>
</class-type>

viewscreen.viewscreen_optionst

<class-type type-name="viewscreen_optionst"
    inherits-from="viewscreen">
  <int8_t name="msg_quit"/>
  <int8_t name="in_retire_adv"/>
  <int8_t name="msg_peasant"/>
  <int8_t name="in_retire_dwf_abandon_adv">
    1 when retiring a fortress or abandoning an adventurer
  </int8_t>
  <int8_t name="in_abandon_dwf"/>
  <int8_t name="ending_game"/>
  <int32_t name="sel_idx"/>
  <stl-vector name="options">
    <enum base-type="int32_t" name="options">
      <enum-item name="Return"/>
      <enum-item name="Save"/>
      <enum-item name="KeyBindings"/>
      <enum-item name="ExportImage"/>
      <enum-item name="MusicSound"/>
      <enum-item name="AbortRetire"/>
      <enum-item name="Abandon"/>
    </enum>
  </stl-vector>
</class-type>

viewscreen.viewscreen_overallstatusst

<class-type type-name="viewscreen_overallstatusst"
    inherits-from="viewscreen">
  <stl-vector name="visible_pages">
    <int16_t/>
  </stl-vector>
  <int32_t name="page_cursor"/>
</class-type>

viewscreen.viewscreen_petitionsst

<class-type type-name="viewscreen_petitionsst"
    inherits-from="viewscreen">
  <int8_t name="can_manage"/>
  <stl-vector name="list" pointer-type="agreement"/>
  <int32_t name="cursor"/>
</class-type>

viewscreen.viewscreen_petst

<class-type type-name="viewscreen_petst" inherits-from="viewscreen">
  <int32_t name="cursor"/>
  <stl-vector name="animal">
    <compound is-union="true">
      <pointer name="unit" type-name="unit"/>
      <pointer name="item" type-name="item"/>
    </compound>
  </stl-vector>
  <stl-vector name="is_vermin" type-name="bool"/>
  <stl-vector name="is_tame" type-name="bool"/>
  <stl-vector name="is_adopting" type-name="bool"/>
  <enum name="mode">
    <enum-item name="List"/>
    <enum-item name="TrainingKnowledge"/>
    <enum-item name="SelectTrainer"/>
  </enum>
  <int32_t name="knowledge_page"/>
  <stl-vector name="known" type-name="int32_t"
      ref-target="creature_raw"/>
  <int32_t name="trainer_cursor"/>
  <stl-vector name="trainer_unit" pointer-type="unit"/>
  <stl-vector name="trainer_mode">
    <enum base-type="int32_t">
      <enum-item name="Any"/>
      <enum-item name="AnyUnassigned"/>
      <enum-item name="None"/>
      <enum-item name="Unit"/>
    </enum>
  </stl-vector>
</class-type>

viewscreen.viewscreen_pricest

<class-type type-name="viewscreen_pricest" inherits-from="viewscreen">
  <int16_t/>
  <int32_t/>
</class-type>

viewscreen.viewscreen_reportlistst

<class-type type-name="viewscreen_reportlistst"
    inherits-from="viewscreen">
  <stl-vector name="units" pointer-type="unit"/>
  <stl-vector name="types">
    <enum base-type="int16_t" type-name="unit_report_type"/>
  </stl-vector>
  <stl-vector name="last_id" type-name="int32_t" ref-target="report"/>
  <int32_t name="cursor"/>
</class-type>

viewscreen.viewscreen_requestagreementst

<class-type type-name="viewscreen_requestagreementst"
    inherits-from="viewscreen">
  <pointer type-name="entity_buy_prices" name="requests"/>
  <int32_t ref-target="historical_entity" name="civ_id"/>
  <int32_t name="cursor"/>
  <static-string size="256" name="title"/>
  <pointer type-name="historical_entity" name="civ"/>
</class-type>

viewscreen.viewscreen_savegamest

<class-type type-name="viewscreen_savegamest"
    inherits-from="viewscreen">
  <stl-string/>
  <int32_t name="cur_step"/>
  <int32_t name="unk_v40_1b" since="v0.40.01"/>
  <compound type-name="file_compressorst" name="compressor"/>
</class-type>

viewscreen.viewscreen_selectitemst

<class-type type-name="viewscreen_selectitemst"
    inherits-from="viewscreen">
  <pointer name="p_item_type" type-name="int16_t"/>
  <pointer name="p_item_subtype" type-name="int16_t"/>
  <pointer name="p_mattype" type-name="int16_t"/>
  <pointer name="p_matindex" type-name="int32_t"/>
  <pointer name="choice" type-name="embark_item_choice"/>
  <pointer name="screen" type-name="viewscreen_setupdwarfgamest"/>
  <static-array name="page_base" count="107"
      index-enum="entity_sell_category">
    <stl-vector type-name="int32_t"/>
  </static-array>
  <static-string name="title" size="256"/>
  <static-string size="256"/>
  <static-string name="filter" size="256"/>
  <int32_t name="right_pos"/>
  <int32_t name="right_page_base"/>
  <bool name="right_list"/>
  <int32_t name="sel_category" refers-to="$$._parent.categories[$]"/>
  <stl-vector name="categories">
    <enum base-type="int16_t" type-name="entity_sell_category"/>
  </stl-vector>
</class-type>

viewscreen.adventurer_attribute_level

<enum-type type-name="adventurer_attribute_level" base-type="int32_t">
  <enum-item name="VeryLow"/>
  <enum-item name="Low"/>
  <enum-item name="BelowAverage"/>
  <enum-item name="Average"/>
  <enum-item name="AboveAverage"/>
  <enum-item name="High"/>
  <enum-item name="Superior"/>
</enum-type>

viewscreen.viewscreen_setupadventurest

<class-type type-name="viewscreen_setupadventurest"
    inherits-from="viewscreen">
  <enum name="page" base-type="int32_t">
    <enum-item name="ChooseRace"/>
    <enum-item name="ChooseAnimalRace"/>
    <enum-item name="Unk2"/>
    <enum-item name="ChooseCiv"/>
    <enum-item name="Skills"/>
    <enum-item name="PhysicalTraits"/>
    <enum-item name="MentalTraits"/>
    <enum-item name="Background"/>
  </enum>
  <stl-vector name="unk_vec1" since="v0.42.01"/>
  <int32_t name='index_col1'/>    cursor position <int32_t
      name='index_skills' refers-to='$$._parent.skill_list[$]'/>
      <int32_t name='skill_points_remaining'/>
  <compound name="adventurer">
    <compound type-name="language_name" name="name"/>
    <int16_t name="race" ref-target="creature_raw"/>
    <int16_t name="caste" ref-target="caste_raw" aux-value="$$.race"/>
    <static-array type-name="int32_t" count="135"
        index-enum="job_skill" name="skills"/>
    <int32_t name="entity" ref-target="historical_entity"/>
    <int16_t name="histfig" refers-to="$global.world.nemesis.all[$]"/>
    <int16_t name="unk_282"/>
    <int32_t name="unk_284"/>
    <int32_t name="unk_288"/>
    <int16_t name="unk_28c"/>
    <int16_t name="unk_28e"/>
    <int32_t name="unk_290"/>
    <int32_t name="unk_294"/>
    <int16_t name="unk_298"/>
    <int16_t name="unk_29a"/>
    <static-array type-name="adventurer_attribute_level" count="19"
        name="attributes"/>
    <enum base-type="int16_t" name="status">
      <enum-item name="Peasant"/>
      <enum-item name="Hero"/>
      <enum-item name="Demigod"/>
    </enum>
  </compound>
  <int32_t name="unk_v40_1a" init-value="-1" since="v0.40.01"/>
  <int32_t name="site_id" ref-target="world_site" since="v0.40.01"/>
  <int32_t name="deity_id" ref-target="historical_figure"
      since="v0.40.01"/>
  <int32_t name="belief_strength" since="v0.40.01"/>
  <int32_t name="unk_1"/>
  <int16_t name="unk_2"/>
  <int16_t name="unk_3"/>
  <int32_t name="unk_4"/>
  <static-array name="unk_5" count="6">
    <compound>
      <int32_t name="unk_0"/>
      <int32_t name="unk_1"/>
      <int32_t name="unk_2"/>
      <int32_t name="unk_3"/>
      <int32_t name="unk_4"/>
      <int32_t name="unk_5"/>
      <int32_t name="unk_6"/>
    </compound>
  </static-array>
  <int32_t name="unk_6"/>
  <stl-vector name="unk_7" type-name="int32_t"/>
  <stl-vector name="unk_8" type-name="int32_t"/>
  <int32_t name="unk_9"/>
  <stl-vector name="unk_10" type-name="int32_t"/>
  <stl-vector name="unk_11" type-name="int32_t"/>
  <stl-vector name="unk_12" type-name="int32_t"/>
  <stl-vector name="unk_13" type-name="int32_t"/>
  <stl-vector name="unk_14" type-name="int16_t"/>
  <static-array name="unk_15" count="2">
    <compound>
      <pointer name="unk_15_a"/>
      <int16_t name="unk_15_b"/>
    </compound>
  </static-array>
  <stl-vector name="unk_16" type-name="int32_t"/>
  <int32_t name="unk_17"/>
  <int32_t name="unk_18"/>
  <int32_t name="unk_19"/>
  <int32_t name="unk_20"/>
  <int32_t name="unk_21"/>
  <int32_t name="unk_22"/>
  <stl-vector name="unk_23_a"/>
  <stl-vector name="unk_23_b"/>
  <stl-vector name="unk_23_c"/>
  <stl-vector name="unk_23_d"/>
  <int32_t name="unk_23_e"/>
  <stl-vector name="unk_23_f"/>
  <static-array name="unk_26_a" type-name="int16_t" count="50"/>
  <static-array name="unk_26_b" type-name="int32_t" count="2"/>
  <stl-vector name="unk_26_c"/>
  <stl-vector name="unk_26_d"/>
  <static-array name="unk_26_e" type-name="int32_t" count="5"/>
  <stl-vector name="needs"/>
  <int32_t name="unk_26_g"/>
  <pointer name="unk_26_h"/>
  <static-array name="unk_26_i" type-name="int32_t" count="2"/>
  <static-array name="unk_26_j" type-name="int32_t" count="2"/>
  <int8_t name="unk_26_k"/>
  <stl-vector name="race_ids" type-name="int32_t"
      ref-target="creature_raw"/>
  <stl-vector name="highlighted_entity_ids" type-name="int32_t"
      ref-target="historical_entity"/>
  <int32_t name="race_idx"/>
  <stl-vector name="wild_creature_ids" type-name="int32_t"
      ref-target="creature_raw"/>
  <int32_t name="wild_creature_idx"/>
  <stl-vector name="unk_28_d"/>
  <int32_t name="unk_28_e"/>
  <stl-vector name="home_entity_ids" type-name="int32_t"
      ref-target="historical_entity"/>
  <int32_t name="home_entity_idx"/>
  <enum base-type="int8_t" name="sel_trait_column">
    <enum-item name="SkillsColumn"/>
    <enum-item name="AttributesColumn"/>
  </enum>
  <int32_t name="attribute_idx"/>
  <int32_t name="attribute_points_remaining"/>
  <stl-vector name="skill_list">
    <enum base-type="int16_t" type-name="job_skill"/>
  </stl-vector>
  <int32_t name="skill_idx"/>
  <int32_t name="skill_points_remaining"/>
  <int8_t name="unk_31"/>
  <pointer name="unk_32"/>
  <stl-vector name="background_lines" pointer-type="stl-string"/>
  <stl-vector name="sites" pointer-type="world_site"/>
  <stl-vector name="background_type">
    <enum base-type="int32_t">
      <enum-item name="LocallyImportant"/>
      <enum-item name="Peasant"/>
    </enum>
  </stl-vector>
  <int32_t name="background_idx"/>
  <stl-vector name="unk_35_a" type-name="int32_t"/>
  <stl-vector name="description_lines" pointer-type="stl-string"/>
  <int32_t name="thoughts_pos"/>
  <stl-vector name="thoughts_lines_1" pointer-type="stl-string"/>
  <stl-vector name="thoughts_lines_2" pointer-type="stl-string"/>
  <stl-vector name="thoughts_lines_3" pointer-type="stl-string"/>
  <bool name="in_customize_values">
    only valid in page MentalTraits
  </bool>
  <int32_t name="values_pos"/>
  <static-array name="unk_39_a" type-name="int32_t" count="25"/>
  <static-array name="unk_39_b" type-name="int16_t" count="50"/>
  <static-array name="values_cultural_defaults" type-name="int32_t"
      count="33"/>
  <stl-vector type-name='int16_t' name='race_list'
      ref-target='creature_raw'/> <stl-vector type-name='int32_t'
      name='entity_list' ref-target='historical_entity'/> <stl-vector
      type-name='int16_t' name='nemesis_list'
      ref-target='nemesis_record'/> <stl-vector name='skill_list'>
      <enum base-type='int16_t' type-name='job_skill'/> </stl-vector>
      <int8_t name='focus_column'/>  0 = skill, 1 = attr <int32_t
      name='attribute_points_remaining'/> <int32_t
      name='index_attributes'/>  cursor index in the attributes list
</class-type>

viewscreen.embark_item_choice

<struct-type type-name="embark_item_choice">
  <static-array name="list" count="107"
      index-enum="entity_sell_category">
    <stl-vector>
      <pointer>
        <enum base-type="int16_t" name="item_type"
            type-name="item_type"/>
        <int16_t name="item_subtype" refers-to="(item-subtype-target
            $$._parent.item_type $)"/>
        <int16_t name="mattype" ref-target="material"
            aux-value="$$.matindex"/>
        <int32_t name="matindex"/>
        <int8_t name="unk_c">
          1 if new, -1 if added
        </int8_t>
      </pointer>
    </stl-vector>
  </static-array>
</struct-type>

viewscreen.viewscreen_setupdwarfgamest

<class-type type-name="viewscreen_setupdwarfgamest"
    inherits-from="viewscreen">
  <static-string size="256" name="title"/>
  <stl-vector name="dwarf_info">
    <pointer>
      <compound name="name" type-name="language_name"/>
      <padding name="unk_6c" size="4"/>
      <static-array name="skills" count="135" type-name="int32_t"
          index-enum="job_skill"/>
      <int32_t name="unk_244"/>
      <int16_t name="unk_248"/>
      <padding name="unk_24a" size="2"/>
      <padding name="unk_24c" size="8"/>
      <int16_t name="levels_remaining"/>
      <padding name="unk_256" size="2"/>
      <static-array name="unk_258" count="19">
        <int32_t/>
        Value is 0x0
      </static-array>
      <int16_t name="unk_2a4"/>
      <padding name="unk_2a6" size="2"/>
      <int32_t name="unk_2a8"/>
      <int32_t name="unk_2ac"/>
      <int32_t name="unk_2b0"/>
      <padding name="unk_2b4" size="4"/>
    </pointer>
  </stl-vector>
  <stl-vector name="embark_skills">
    <enum base-type="int16_t" type-name="job_skill"/>
  </stl-vector>
  <stl-vector name="reclaim_professions" type-name="profession"/>
  <enum base-type="int32_t" name="mode">
    <enum-item name="Dwarves"/>
    <enum-item name="Items"/>
  </enum>
  <int32_t name="dwarf_cursor"/>
  <int32_t name="dwarf_page_idx"/>
  <int32_t name="item_cursor"/>
  <int32_t name="skill_cursor"
      refers-to="$$._parent.embark_skills[$]"/>
  <int32_t name="animal_cursor"/>
  <int32_t name="dwarf_column"/>
  <int32_t name="supply_column"/>
  <int32_t name="display_row"/>
  <int8_t name="show_play_now"/>
  <stl-vector name="choice_types">
    <enum base-type="int8_t" name="choice_types">
      <enum-item name="PlayNow"/>
      <enum-item name="Prepare"/>
      <enum-item name="Profile"/>
    </enum>
  </stl-vector>
  <stl-vector name="choices" type-name="int32_t"/>
  <int32_t name="choice"/>
  <stl-string name="profile_name"/>
  <stl-vector name="problems" pointer-type="stl-string"/>
  <int32_t/>
  <int8_t name="in_problems"/>
  <int8_t name="in_save_profile"/>
  <int8_t name="profile_name_conflict"/>
  <compound name="item_choice" type-name="embark_item_choice"/>
  <compound name="animals">
    <stl-vector name="race" type-name="int32_t"
        ref-target="creature_raw"
        index-refers-to="$$._parent.caste[$].ref-target"/>
    <stl-vector name="caste" type-name="int16_t"
        ref-target="caste_raw" aux-value="$$._parent.race[$._key]"/>
    <stl-vector name="profession"
        index-refers-to="$$._parent.caste[$].ref-target">
      <enum base-type="int16_t" type-name="profession"/>
    </stl-vector>
    <stl-vector name="count" type-name="int16_t"
        index-refers-to="$$._parent.caste[$].ref-target"/>
  </compound>
  <compound name="fort_name" type-name="language_name"/>
  <compound name="group_name" type-name="language_name"/>
  <int8_t/>
  <compound name="location" type-name="embark_location"/>
  <stl-vector name="units" pointer-type="unit"/>
  <stl-vector name="items" pointer-type="item"/>
  <int32_t/>
  <int32_t name="points_remaining"/>
  <enum base-type="int16_t" name="add_item_type"
      type-name="item_type"/>
  <int16_t name="add_item_subtype" refers-to="(item-subtype-target
      $$._parent.add_item_type $)"/>
  <int16_t name="add_mattype" ref-target="material"
      aux-value="$$.add_matindex"/>
  <int32_t name="add_matindex"/>
  <int32_t name="adding_item"/>
</class-type>

viewscreen.viewscreen_storesst

<class-type type-name="viewscreen_storesst"
    inherits-from="viewscreen">
  <static-string name="title" size="256"/>
  <int32_t name="category_cursor"/>
  <int32_t name="item_cursor"/>
  <int16_t name="in_right_list"/>
  <int16_t name="in_group_mode"/>
  <stl-vector name="category_total" type-name="int32_t"
      index-enum="item_type"/>
  <stl-vector name="category_busy" type-name="int32_t"
      index-enum="item_type"/>
  <stl-vector name="items" pointer-type="item"/>
  <stl-vector name="group_item_type">
    <enum base-type="int16_t" type-name="item_type"/>
  </stl-vector>
  <stl-vector name="group_item_subtype">
    <int16_t refers-to="(item-subtype-target
        $$._global.group_item_type[$$._key] $)"/>
  </stl-vector>
  <stl-vector name="group_mat_type">
    <int16_t ref-target="material"
        aux-value="$$._global.group_mat_index[$._key]"/>
  </stl-vector>
  <stl-vector name="group_mat_index" type-name="int16_t"/>
  <stl-vector name="group_count" type-name="int32_t"/>
  <stl-vector name="category_order">
    <enum base-type="int16_t" type-name="item_type"/>
  </stl-vector>
  <bool name="can_zoom"/>
</class-type>

viewscreen.viewscreen_textviewerst

<class-type type-name="viewscreen_textviewerst"
    inherits-from="viewscreen">
  <stl-string name="title"/>
  <stl-string name="title_colors"/>
  <stl-vector name="src_text" pointer-type="stl-string"/>
  <stl-string name="outvar_type"/>
  <stl-string name="outvar_name"/>
  <compound name="meeting_context" type-name="meeting_context"/>
  <stl-string name="help_filename">
    relative to data/help
  </stl-string>
  <stl-string name="page_filename">
    relative to root
  </stl-string>
  <stl-vector name="formatted_text">
    <pointer>
      <ptr-string name="text"/>
      <ptr-string name="format"/>
      <bitfield base-type="uint16_t" name="flags">
        <flag-bit name="hyperlink"/>
        <flag-bit name="no_newline"/>
      </bitfield>
      <int32_t name="pause_depth"/>
      <int32_t name="return_val"/>
      <int32_t name="indent"/>
    </pointer>
  </stl-vector>
  <stl-vector name="hyperlinks" pointer-type="static-string">
    link targets, same length as text_display
  </stl-vector>
  <int8_t name="logged_error"/>
  <int32_t name="scroll_pos">
    vertical scrollbar position
  </int32_t>
  <int32_t name="cursor_line">
    on hyperlink lines
  </int32_t>
  <int32_t name="pause_depth"/>
</class-type>

viewscreen.viewscreen_titlest

<class-type type-name="viewscreen_titlest" inherits-from="viewscreen">
  <static-string name="str_histories" size="256"/>
  <static-string name="menu_items" size="256"/>
  <enum base-type="int16_t" name="sel_subpage">
    <enum-item name="None"/>
    <enum-item name="StartSelectWorld"/>
    <enum-item name="StartSelectMode"/>
    <enum-item name="Arena"/>
    <enum-item name="About"/>
  </enum>
  <int32_t name="sel_menu_line"/>
  <int32_t name="sel_submenu_line"/>
  <int8_t name="loading"/>
  <stl-vector name="menu_line_id">
    <enum base-type="int32_t" name="menu_line_id">
      <enum-item name="Continue"/>
      <enum-item name="Start"/>
      <enum-item name="NewWorld"/>
      <enum-item name="AdvancedWorld"/>
      <enum-item name="TestingArena"/>
      <enum-item name="AboutDF"/>
      <enum-item name="Quit"/>
    </enum>
  </stl-vector>
  <stl-vector type-name="int32_t" name="submenu_line_id"/>
  <stl-vector pointer-type="stl-string" name="submenu_line_text"/>
  <stl-vector name="start_savegames">
    <pointer>
      <compound name="world_name" type-name="language_name"/>
      <stl-string name="world_name_str"/>
      <static-array name="unk1" type-name="int8_t" count="15"/>
      <static-array name="unk2" type-name="int32_t" count="34"/>
      <stl-string name="save_dir"/>
    </pointer>
  </stl-vector>
  <stl-vector pointer-type="stl-string" name="arena_savegames"/>
  <stl-string name="str_slaves"/>
  <stl-string name="str_chapter"/>
  <stl-string name="str_copyright"/>
  <stl-string name="str_version"/>
  <stl-string name="str_warning"/>
  <stl-string name="str_programmed"/>
  <stl-string name="str_designed"/>
  <stl-string name="str_visit"/>
  <stl-string name="str_site"/>
  <stl-string name="arena_raw_folder"/>
  <int32_t name="unk_388">
    unset until loading arena
  </int32_t>
  <int8_t name="unk_38c"/>
  <int32_t name="unk_390">
    unset until loading arena
  </int32_t>
  <int8_t name="unk_394"/>
  <int32_t name="unk_398">
    unset
  </int32_t>
  <int8_t name="unk_39c"/>
  <int32_t name="unk_3a0">
    unset
  </int32_t>
</class-type>

viewscreen.viewscreen_topicmeetingst

<class-type type-name="viewscreen_topicmeetingst"
    inherits-from="viewscreen">
  <pointer name="popup" type-name="dipscript_popup"/>
  <pointer name="meeting" type-name="meeting_diplomat_info"/>
  <stl-vector name="text" pointer-type="stl-string"/>
  <int32_t name="scroll_pos"/>
</class-type>

viewscreen.viewscreen_topicmeeting_fill_land_holder_positionsst

<class-type
    type-name="viewscreen_topicmeeting_fill_land_holder_positionsst"
    inherits-from="viewscreen">
  <static-string size="256" name="title"/>
  <pointer name="popup" type-name="dipscript_popup"/>
  <pointer name="meeting" type-name="meeting_diplomat_info"/>
  <pointer name="entity_diplomat" type-name="historical_entity"/>
  <pointer name="entity_fortress" type-name="historical_entity"/>
  <stl-vector name="position_ids" type-name="int32_t"
      ref-target="entity_position_raw"/>
  <stl-vector name="selected_histfig_ids" type-name="int32_t"
      ref-target="historical_figure"/>
  <stl-vector name="candidate_histfig_ids" type-name="int32_t"
      ref-target="historical_figure"/>
  <int32_t name="position_cursor"/>
  <int32_t name="cursor"/>
  <int32_t/>
</class-type>

viewscreen.viewscreen_topicmeeting_takerequestsst

<class-type type-name="viewscreen_topicmeeting_takerequestsst"
    inherits-from="viewscreen">
  <static-string size="256" name="title"/>
  <pointer name="popup" type-name="dipscript_popup"/>
  <pointer name="meeting" type-name="meeting_diplomat_info"/>
  <stl-vector name="type_categories"
      type-name="entity_sell_category"/>
  <int32_t name="type_idx"/>
  <int32_t name="good_idx"/>
</class-type>

viewscreen.viewscreen_tradeagreementst

<class-type type-name="viewscreen_tradeagreementst"
    inherits-from="viewscreen">
  <pointer type-name="entity_sell_prices" name="requests"/>
  <int32_t ref-target="historical_entity" name="civ_id"/>
  <stl-vector type-name="int16_t"/>
  <int32_t name="type_idx"/>
  <int32_t name="good_idx"/>
  <static-string size="256" name="title"/>
  <pointer type-name="historical_entity" name="civ"/>
</class-type>

viewscreen.viewscreen_tradegoodsst

<class-type type-name="viewscreen_tradegoodsst"
    inherits-from="viewscreen">
  <static-string name="title" size="256"/>
  <stl-string name="merchant_name"/>
  <stl-string name="merchant_entity"/>
  <pointer name="depot" type-name="building_tradedepotst"/>
  <pointer name="caravan" type-name="caravan_state"/>
  <pointer name="entity" type-name="historical_entity"/>
  <bool name="is_unloading"/>
  <bool name="has_traders"/>
  <pointer name="trader" type-name="unit"/>
  <pointer name="broker" type-name="unit"/>
  <stl-vector name="trader_items" pointer-type="item"/>
  <stl-vector name="broker_items" pointer-type="item"/>
  <stl-vector name="trader_selected" type-name="bool"/>
  <stl-vector name="broker_selected" type-name="bool"/>
  <stl-vector name="trader_count" type-name="int32_t"/>
  <stl-vector name="broker_count" type-name="int32_t"/>
  <int32_t name="trader_cursor"/>
  <int32_t name="broker_cursor"/>
  <bool name="in_right_pane"/>
  <int16_t name="trade_reply"/>
  <int16_t/>
  <int32_t/>
  <int8_t name="has_offer"/>
  <stl-vector name="counteroffer" pointer-type="item"/>
  <int8_t name="in_edit_count"/>
  <stl-string name="edit_count"/>
</class-type>

viewscreen.viewscreen_tradelistst

<class-type type-name="viewscreen_tradelistst"
    inherits-from="viewscreen">
  <int32_t name="unk_10"/>
  <pointer name="depot" type-name="building_tradedepotst"/>
  <stl-vector name="caravans" pointer-type="caravan_state"/>
</class-type>

viewscreen.viewscreen_treasurelistst

<class-type type-name="viewscreen_treasurelistst"
    inherits-from="viewscreen">
  list artifacts in fort mode
  <int32_t name="sel_idx"/>
</class-type>

viewscreen.viewscreen_unitst

<class-type type-name="viewscreen_unitst" inherits-from="viewscreen">
  <pointer name="unit" type-name="unit"/>
  <int32_t/>
  <int32_t/>
  <int32_t/>
  <int8_t/>
</class-type>

viewscreen.viewscreen_unitlist_page

<enum-type type-name="viewscreen_unitlist_page" base-type="int32_t">
  <enum-item name="Citizens"/>
  <enum-item name="Livestock"/>
  <enum-item name="Others"/>
  <enum-item name="Dead"/>
</enum-type>

viewscreen.viewscreen_unitlistst

<class-type type-name="viewscreen_unitlistst"
    inherits-from="viewscreen">
  <bool name="allow_zoom"/>
  <enum base-type="int32_t" name="page"
      type-name="viewscreen_unitlist_page"/>
  <static-array name="cursor_pos" count="4"
      index-enum="viewscreen_unitlist_page">
    <int32_t refers-to="$$._global.units[$$._key][$]"/>
  </static-array>
  <static-array name="jobs" count="4"
      index-enum="viewscreen_unitlist_page">
    <stl-vector pointer-type="job"/>
  </static-array>
  <static-array name="units" count="4"
      index-enum="viewscreen_unitlist_page">
    <stl-vector pointer-type="unit"/>
  </static-array>
</class-type>

viewscreen.viewscreen_wagesst

<class-type type-name="viewscreen_wagesst" inherits-from="viewscreen">
  <int16_t name="profession_category"/>
</class-type>

viewscreen.viewscreen_workquota_conditionst

<class-type type-name="viewscreen_workquota_conditionst"
    inherits-from="viewscreen">
  <pointer name="order" type-name="manager_order"/>
  <int32_t name="cond_idx"/>
  <stl-bit-vector name="satisfied"/>
  <stl-bit-vector/>
  <stl-string name="filter"/>
  <stl-vector name="list_entries" pointer-type="stl-string"/>
  <int32_t name="list_idx"/>
  <enum name="mode" base-type="int32_t">
    <enum-item name="List" value="-1"/>
    <enum-item name="ItemType"/>
    <enum-item name="Material"/>
    <enum-item name="Traits"/>
  </enum>
  <stl-vector/>
  <stl-vector/>
  <stl-vector/>
  <stl-vector/>
  <stl-vector type-name="int16_t"/>
  <stl-vector type-name="int32_t"/>
  <stl-vector type-name="int16_t"/>
  <stl-vector type-name="int16_t"/>
  <stl-vector name="traits">
    <pointer>
      <bitfield name="flags" base-type="int32_t">
        <flag-bit/>
      </bitfield>
      <int32_t name="type"/>
      <stl-string name="item_desc">
        e.g. FAT
      </stl-string>
      <stl-string name="product_desc">
        e.g. BAG_ITEM (-producing)
      </stl-string>
      <int32_t name="mat_index"/>
      <int32_t/>
      <int32_t/>
      <int32_t/>
      <stl-string name="name"/>
    </pointer>
  </stl-vector>
  <stl-vector name="traits_visible" type-name="int32_t"/>
  <int8_t/>
  <stl-vector/>
  <int32_t/>
  <bool name="item_count_edit"/>
  <stl-string name="item_count_entry"/>
</class-type>

viewscreen.viewscreen_workquota_detailsst

<class-type type-name="viewscreen_workquota_detailsst"
    inherits-from="viewscreen">
  <pointer/>
</class-type>

viewscreen.viewscreen_workshop_profilest

<class-type type-name="viewscreen_workshop_profilest"
    inherits-from="viewscreen">
  <int32_t name="building_id" ref-target="building"/>
  <pointer name="profile" type-name="workshop_profile"/>
  <enum name="tab" base-type="int32_t">
    <enum-item name="Workers"/>
    <enum-item name="Orders"/>
    <enum-item name="Restrictions"/>
  </enum>
  <stl-vector name="workers" pointer-type="unit"/>
  <int32_t name="worker_idx"/>
  <stl-vector name="orders" pointer-type="manager_order"/>
  <int32_t name="order_idx"/>
  <stl-vector name="labors" type-name="unit_labor"/>
  <int32_t name="labor_idx"/>
</class-type>

viewscreen.viewscreen_update_regionst

<class-type type-name="viewscreen_update_regionst"
    inherits-from="viewscreen">
  <int32_t name="year"/>
  <int32_t name="year_tick"/>
</class-type>