ui-menus

ui-menus.ui_build_item_req

<struct-type type-name="ui_build_item_req">
  When creating a building, one record per required item type. E.g.
  Soap Maker's workshop requires a bucket and a building material.
  <compound name="filter" type-name="job_item_filter"/>
  <stl-vector name="candidates" pointer-type="item"/>
  <stl-vector name="candidate_selected" type-name="bool"/>
  <stl-vector name="unk_a0" type-name="int16_t"/>
  <stl-vector name="candidate_enabled" type-name="bool"/>
  <int16_t name="count_required"/>
  <int16_t name="count_max">
    if 0, fixed at required
  </int16_t>
  <int16_t name="count_provided"/>
</struct-type>

ui-menus.build_req_choice_type

<enum-type type-name="build_req_choice_type">
  <enum-item name="General"/>
  <enum-item name="Specific"/>
</enum-type>

ui-menus.build_req_choicest

<class-type type-name="build_req_choicest">
  One choice in the build item selector.
  <int32_t name="distance"/>
  <virtual-methods>
    <vmethod ret-type="build_req_choice_type" name="getType"/>
    <vmethod name="getName">
      <pointer type-name="stl-string" name="str"/>
    </vmethod>
    <vmethod ret-type="int32_t"/>
    <vmethod ret-type="bool" name="isCandidate">
      <int32_t name="item_id"/>
    </vmethod>
    <vmethod ret-type="bool"/>
    <vmethod ret-type="int32_t" name="getUsedCount"/>
    <vmethod ret-type="int32_t" name="getNumCandidates"/>
    <vmethod/>
  </virtual-methods>
</class-type>

ui-menus.build_req_choice_genst

<class-type type-name="build_req_choice_genst"
    inherits-from="build_req_choicest">
  <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="mat_type" ref-target="material"
      aux-value="$$.mat_index"/>
  <int32_t name="mat_index"/>
  <stl-vector name="candidates">
    <int32_t/>
  </stl-vector>
  <int32_t name="used_count"/>
</class-type>

ui-menus.build_req_choice_specst

<class-type type-name="build_req_choice_specst"
    inherits-from="build_req_choicest">
  <pointer name="candidate" type-name="item"/>
  <int32_t name="candidate_id"/>
</class-type>

ui-menus.ui_build_selector

<class-type type-name="ui_build_selector" original-name="buildreqst">
  <stl-vector name="requirements" pointer-type="ui_build_item_req"/>
  <stl-vector name="choices" pointer-type="build_req_choicest"/>
  <enum base-type="int32_t" name="building_type"
      type-name="building_type">
    if -1, in Build menu; otherwise select item
  </enum>
  <int16_t name="building_subtype"/>
  <int32_t name="custom_type" ref-target="building_def"/>
  <int32_t name="stage">
    0 no materials, 1 place, 2 select item
  </int32_t>
  <int16_t name="req_index"/>
  <int16_t name="sel_index"/>
  <int32_t name="is_grouped"/>
  <stl-vector name="errors" pointer-type="stl-string"/>
  <stl-vector name="unk4" pointer-type="stl-string"/>
  <static-array name="tiles" count="31">
    <static-array type-name="int32_t" count="31"/>
  </static-array>
  <int16_t name="unk5_0a"/>
  <int16_t name="unk5_0b"/>
  <compound name="plate_info" type-name="pressure_plate_info"/>
  <stl-vector name="unk6" type-name="int16_t"/>
  <stl-vector name="unk7" type-name="int16_t"/>
  <int32_t name="friction" init-value="50000">
    v0.34.08
  </int32_t>
  <int32_t name="use_dump">
    v0.34.08
  </int32_t>
  <int32_t name="dump_x_shift">
    v0.34.08
  </int32_t>
  <int32_t name="dump_y_shift">
    v0.34.08
  </int32_t>
  <int32_t name="speed" init-value="50000">
    v0.34.08
  </int32_t>
  <virtual-methods>
    <vmethod/>
  </virtual-methods>
</class-type>

ui-menus.interface_button

<class-type type-name="interface_button"
    original-name="interface_buttonst">
  <enum name="hotkey_id" type-name="interface_key"
      base-type="int32_t"/>
  <bool name="is_hidden"/>
  <int32_t>
    v0.40.23
  </int32_t>
  <virtual-methods>
    <vmethod name="printSlabStatus">
      <int32_t name="x"/>
      <int32_t name="y"/>
      <int32_t name="unused"/>
      ghost, buried, memorialized
    </vmethod>
    <vmethod name="getLabel">
      <pointer type-name="stl-string" name="str"/>
    </vmethod>
    <vmethod name="click"/>
    <vmethod name="setColor">
      <bool name="selected"/>
    </vmethod>
    <vmethod name="makeHidden"/>
    <vmethod name="getTrackGlyph" ret-type="uint8_t"/>
    <vmethod name="setTrackGlyphColor"/>
    <vmethod name="getReactionLabel">
      also for reaction categories
      <pointer type-name="stl-string"/>
    </vmethod>
    <vmethod name="isBuiltinJob" ret-type="bool"/>
    <vmethod name="isValidCustomReaction" ret-type="bool"/>
    <vmethod is-destructor="true"/>
  </virtual-methods>
</class-type>

ui-menus.interface_button_buildingst

<class-type type-name="interface_button_buildingst"
    inherits-from="interface_button">
  <pointer name="building" type-name="building"/>
</class-type>

ui-menus.interface_button_building_category_selectorst

<class-type type-name="interface_button_building_category_selectorst"
    inherits-from="interface_button_buildingst">
  <int32_t name="category_id"/>
  <int8_t name="unk_14"/>
</class-type>

ui-menus.interface_button_building_material_selectorst

<class-type type-name="interface_button_building_material_selectorst"
    inherits-from="interface_button_buildingst">
  <int16_t name="mat_type" ref-target="material"
      aux-value="$$.mat_index"/>
  <int32_t name="mat_index"/>
  <compound name="material_category"
      type-name="job_material_category"/>
  <int8_t name="unk_1c"/>
</class-type>

ui-menus.interface_button_building_new_jobst

<class-type type-name="interface_button_building_new_jobst"
    inherits-from="interface_button_buildingst">
  <enum name="job_type" base-type="int32_t" type-name="job_type"/>
  <stl-string name="reaction_name"/>
  <enum base-type="int16_t" name="item_type" type-name="item_type"/>
  <int16_t name="item_subtype"/>
  <int16_t name="mat_type" ref-target="material"
      aux-value="$$.mat_index"/>
  <int32_t name="mat_index"/>
  <compound name="item_category" type-name="stockpile_group_set"/>
  <int32_t name="hist_figure_id" ref-target="historical_figure"/>
  <compound name="material_category"
      type-name="job_material_category"/>
  <bool name="unk_48"/>
  <bool name="is_custom"/>
</class-type>

ui-menus.interface_button_constructionst

<class-type type-name="interface_button_constructionst"
    inherits-from="interface_button">
  <pointer name="unused_c"/>
</class-type>

ui-menus.interface_button_construction_donest

<class-type type-name="interface_button_construction_donest"
    inherits-from="interface_button_constructionst"/>

ui-menus.interface_button_construction_category_selectorst

<class-type
    type-name="interface_button_construction_category_selectorst"
    inherits-from="interface_button_constructionst">
  <enum name="category_id" base-type="int32_t">
    <enum-item name="SiegeEngines" value="1"/>
    <enum-item name="Traps"/>
    <enum-item name="Workshops"/>
    <enum-item name="Furnaces"/>
    <enum-item name="Constructions"/>
    <enum-item name="MachineComponents"/>
    <enum-item name="Track"/>
  </enum>
</class-type>

ui-menus.interface_button_construction_building_selectorst

<class-type
    type-name="interface_button_construction_building_selectorst"
    inherits-from="interface_button_constructionst">
  <int16_t name="building_type"/>
  <int16_t name="building_subtype"/>
  <int32_t name="custom_type" ref-target="building_def"/>
  <int32_t name="existing_count"/>
</class-type>

ui-menus.ui_sidebar_menus

<struct-type type-name="ui_sidebar_menus">
  dtor 0x8535ee0
  <compound name="designation">
    <bool name="marker_only"/>
    <bool name="priority_set">
      set to one if using +/-
    </bool>
    <int32_t name="priority" init-value="4000">
      *1000
    </int32_t>
    <enum name="mine_mode">
      <enum-item name="All"/>
      <enum-item name="AutoMine"/>
      <enum-item name="Economic"/>
      <enum-item name="Gems"/>
    </enum>
    v0.40.20
  </compound>
  <compound name="workshop_job">
    <stl-vector name="choices_all"
        pointer-type="interface_button_buildingst"/>
    <stl-vector name="choices_visible"
        pointer-type="interface_button_buildingst"/>
    <int32_t name="cursor"/>
    <int32_t name="category_id">
      weapons, armor, etc
    </int32_t>
    <int16_t name="mat_type" ref-target="material"
        aux-value="$$.mat_index"/>
    <int32_t name="mat_index"/>
    <compound name="material_category"
        type-name="job_material_category"/>
    <stl-string>
      v0.42.01
    </stl-string>
    <stl-vector name="use_tooltip_lines" pointer-type="stl-string">
      v0.42.01
    </stl-vector>
  </compound>
  <compound name="building">
    <stl-vector name="choices_all"
        pointer-type="interface_button_constructionst"/>
    <stl-vector name="choices_visible"
        pointer-type="interface_button_constructionst"/>
    <int32_t name="category_id"/>
    <int32_t name="cursor"/>
  </compound>
  <compound name="zone">
    <bool name="remove"/>
    <padding size="1"/>
    <enum name="mode" base-type="int16_t">
      <enum-item name="Rectangle"/>
      <enum-item name="Flow"/>
      <enum-item name="FloorFlow"/>
    </enum>
    <pointer name="selected" type-name="building_civzonest"/>
  </compound>
  <compound name="unit">
    <stl-vector name="inv_items" pointer-type="unit_inventory_item"/>
    <stl-vector name="inv_spatters" pointer-type="spatter"/>
    <stl-vector>
      v0.42.01
    </stl-vector>
    <bool name="in_new_squad">
      v0.34.08
    </bool>
    <int32_t name="cursor_uniform">
      v0.34.08
    </int32_t>
    <int32_t name="unk_88n_cursor">
      v0.34.08
    </int32_t>
    <stl-vector name="squads" pointer-type="squad">
      v0.34.08
    </stl-vector>
    <stl-vector name="squad_pos" pointer-type="entity_position">
      v0.34.08
    </stl-vector>
    <stl-vector name="squad_assn"
        pointer-type="entity_position_assignment">
      v0.34.08
    </stl-vector>
    <stl-bit-vector name="squad_unk1">
      v0.34.08
    </stl-bit-vector>
    <stl-vector name="squad_unk2">
      v0.34.08
    </stl-vector>
    <pointer type-name="entity_position"/>
    <pointer type-name="entity_position_assignment"/>
    <pointer type-name="entity_position"/>
    <int8_t name="in_squad"/>
    <int8_t/>
    <int8_t/>
    <int8_t/>
    <int32_t/>
    <int32_t name="unk_80"/>
    <int32_t name="unk_84"/>
    <int32_t name="unk_88"/>
    <int32_t name="unk_8c"/>
    <int32_t name="unk_90"/>
  </compound>
  <compound name="location">
    <stl-vector name="list" pointer-type="abstract_building">
      v0.42.01
    </stl-vector>
    <int32_t name="cursor">
      v0.42.01
    </int32_t>
    <stl-vector name="deities" pointer-type="historical_figure">
      v0.42.01
    </stl-vector>
    <int32_t name="cursor_deity"/>
    <bool name="in_create"/>
    <bool name="in_choose_deity"/>
  </compound>
  <compound name="job_details">
    <pointer name="job" type-name="job"/>
    <padding size="4"/>
    <stl-vector name="detail_type" type-name="int32_t">
      0-material, 1-image, 2-size, 3-type
    </stl-vector>
    <stl-vector name="detail_material_type" type-name="int32_t"/>
    <int32_t name="detail_cursor"/>
    <int32_t name="setting_detail_type"/>
    <int32_t name="unk6"/>
    <compound name="pos" type-name="coord"/>
    <pointer name="workshop" type-name="building_workshopst"/>
    <stl-vector name="mat_type_visible" type-name="int16_t"/>
    <stl-vector name="mat_index_visible" type-name="int32_t"/>
    <stl-vector name="mat_amount_visible" type-name="int32_t"/>
    <stl-vector name="mat_type_all" type-name="int16_t"/>
    <stl-vector name="mat_index_all" type-name="int32_t"/>
    <stl-vector name="mat_amount_all" type-name="int32_t"/>
    <int32_t name="mat_cursor"/>
    <stl-string name="mat_filter"/>
    <bool name="editing_mat_filter"/>
    <stl-vector name="sizes_visible" type-name="int32_t">
      race id
    </stl-vector>
    <stl-vector name="sizes_all" type-name="int32_t">
      race id
    </stl-vector>
    <int32_t name="size_cursor"/>
    <stl-string name="size_filter"/>
    <bool name="editing_size_filter"/>
    <stl-vector name="decoration_types" type-name="int32_t">
      0-image, 1-covered, 2-rings, 3-bands, 4-spikes
    </stl-vector>
    <int32_t name="decoration_cursor"/>
    v0.42.06
  </compound>
  <compound name="unit_cursor">
    <stl-vector name="list" type-name="int32_t"
        refers-to="$global.world.units.active[$]"/>
    <int8_t name="unk_a0"/>
    <int8_t name="unk_a1"/>
  </compound>
  <compound name="unit_skills">
    <stl-vector name="skill_id" type-name="int32_t" refers-to="$global
        .ui_selected_unit.index.refers-to.status.current_soul.skills[$
        ]"/>
    <stl-vector name="skill_type" type-name="int32_t"/>
    <stl-vector name="skill_subtype" type-name="int32_t"/>
    <bool name="show_combat"/>
    <bool name="show_labor"/>
    <bool name="show_misc"/>
  </compound>
  <compound name="barracks">
    <int32_t name="squad_cursor"/>
    <stl-vector name="squads" pointer-type="squad"/>
    <stl-vector name="uses">
      <compound type-name="squad_use_flags"/>
    </stl-vector>
    <bool name="in_rename"/>
    <bool name="in_positions"/>
    <pointer name="position_squad" type-name="squad"/>
    <int32_t name="position_cursor"/>
    <bool name="in_position_squads"/>
    <stl-vector name="position_squads" pointer-type="squad"/>
    <int32_t name="position_squad_cursor"/>
  </compound>
  <stl-vector>
    v0.42.01
  </stl-vector>
  <padding size="4">
    v0.42.01
  </padding>
  <compound name="minimap">
    -- Abstract representation of contents; updated by need_scan
    <static-array name="data" count="23">
      <static-array count="23" type-name="int32_t"/>
    </static-array>
    <bool name="need_render"/>
    <bool name="need_scan"/>
    <int16_t name="z_level"/>
    <static-array name="tile" count="23">
      <static-array count="23" type-name="uint8_t"/>
    </static-array>
    <static-array name="tile_fg" count="23">
      <static-array count="23" type-name="int16_t"/>
    </static-array>
    <static-array name="tile_bg" count="23">
      <static-array count="23" type-name="int16_t"/>
    </static-array>
    <static-array name="tile_bold" count="23">
      <static-array count="23" type-name="int16_t"/>
    </static-array>
  </compound>
  <compound name="command_line">
    <stl-string name="raw"/>
    <stl-vector name="argv" pointer-type="stl-string"/>
    <int32_t name="world_id"/>
    <int32_t name="world_seed"/>
    <bool name="in_worldgen"/>
    <stl-string name="worldgen_param_set"/>
    <int8_t name="unk_17d0"/>
    <int32_t name="num_speech_tokens"/>
    <int8_t name="unk_17d8"/>
  </compound>
</struct-type>

ui-menus.ui_look_list

<struct-type type-name="ui_look_list">
  <stl-vector name="items">
    <pointer>
      <enum base-type="int16_t" name="type">
        <enum-item name="Item"/>
        <enum-item name="Floor"/>
        <enum-item name="Unit"/>
        <enum-item name="Building"/>
        <enum-item name="Vermin"/>
        <enum-item name="Flow"/>
        <enum-item name="Campfire"/>
        <enum-item name="Spatter"/>
        <enum-item name="BuildingItem"/>
        <enum-item name="Fire"/>
        <enum-item name="Water"/>
        <enum-item name="Magma"/>
        <enum-item name="Spoor"/>
      </enum>
      <enum base-type="int16_t" name="spatter_item_type"
          type-name="item_type"/>
      <int16_t name="spatter_item_subtype"
          refers-to="(item-subtype-target $$._parent.spatter_item_type
           $)"/>
      <int16_t name="spatter_mat_type" ref-target="material"
          aux-value="$$.mat_index"/>
      <int32_t name="spatter_mat_index"/>
      <enum type-name="matter_state" base-type="int16_t"
          name="spatter_mat_state"/>
      <compound is-union="true">
        <pointer name="item" type-name="item"/>
        <pointer name="unit" type-name="unit"/>
        <pointer name="building" type-name="building"/>
        <pointer name="vermin" type-name="vermin"/>
        <pointer name="flow" type-name="flow_info"/>
        <int8_t name="spatter_size">
          also water/magma depth+flags
        </int8_t>
      </compound>
      <int16_t/>
      <int16_t/>
      <int16_t/>
    </pointer>
  </stl-vector>
</struct-type>

ui-menus.ui_unit_view_mode

<struct-type type-name="ui_unit_view_mode">
  <enum name="value">
    <enum-item name="General"/>
    <enum-item name="Inventory"/>
    <enum-item name="Preferences"/>
    <enum-item name="Wounds"/>
    <enum-item name="PrefLabor"/>
    <enum-item name="PrefDogs"/>
  </enum>
</struct-type>