interaction

interaction.interaction

<struct-type type-name="interaction"
    instance-vector="$global.world.raws.interactions" key-field="id">
  <stl-string name="name"/>
  <int32_t name="id"/>
  <stl-vector name="str" pointer-type="stl-string"/>
  <df-flagarray name="flags"/>
  <stl-vector name="sources" pointer-type="interaction_source"/>
  <stl-vector name="targets" pointer-type="interaction_target"/>
  <stl-vector name="effects" pointer-type="interaction_effect"/>
  <int32_t name="source_hfid" ref-target="historical_figure"/>
  <int32_t name="unk_v4201_1" init-value="-1">
    v0.42.01
  </int32_t>
</struct-type>

interaction.interaction_effect_type

<enum-type type-name="interaction_effect_type" base-type="int32_t">
  <enum-item name="ANIMATE"/>
  <enum-item name="ADD_SYNDROME"/>
  <enum-item name="RESURRECT"/>
  <enum-item name="CLEAN"/>
  <enum-item name="CONTACT"/>
  <enum-item name="MATERIAL_EMISSION"/>
  <enum-item name="HIDE"/>
</enum-type>

interaction.interaction_effect_location_hint

<enum-type type-name="interaction_effect_location_hint"
    base-type="int32_t">
  <enum-item name="IN_WATER"/>
  <enum-item name="IN_MAGMA"/>
  <enum-item name="NO_WATER"/>
  <enum-item name="NO_MAGMA"/>
</enum-type>

interaction.interaction_effect

<class-type type-name="interaction_effect"
    original-name="interaction_effectst">
  <int32_t/>
  <stl-vector name="targets" pointer-type="stl-string"/>
  <stl-vector type-name="int32_t"/>
  <int32_t name="intermittent">
    0 = weekly
  </int32_t>
  <stl-vector name="locations"
      type-name="interaction_effect_location_hint"/>
  <bitfield name="flags" base-type="uint32_t">
    <flag-bit name="IMMEDIATE"/>
  </bitfield>
  <int32_t/>
  <stl-string name="arena_name"/>
  <virtual-methods>
    <vmethod ret-type="interaction_effect_type" name="getType"/>
    <vmethod name="write_file">
      <pointer>
        file_compressorst
      </pointer>
    </vmethod>
    <vmethod name="read_file">
      <pointer>
        file_compressorst
      </pointer>
      <int32_t name="loadversion"/>
    </vmethod>
    <vmethod is-destructor="true"/>
    <vmethod>
      <int32_t/>
      <int32_t/>
      <int32_t/>
    </vmethod>
    <vmethod name="parseRaws">
      <int32_t/>
      <int32_t/>
      <int32_t/>
      <int32_t/>
      <int32_t/>
    </vmethod>
    <vmethod name="finalize">
      <int32_t/>
    </vmethod>
    <vmethod/>
    <vmethod>
      <int32_t/>
      <int32_t/>
    </vmethod>
    <vmethod ret-type="bool">
      <int32_t/>
    </vmethod>
  </virtual-methods>
</class-type>

interaction.interaction_effect_animatest

<class-type type-name="interaction_effect_animatest"
    inherits-from="interaction_effect">
  <int32_t/>
  <stl-vector name="syndrome" pointer-type="syndrome"/>
</class-type>

interaction.interaction_effect_add_syndromest

<class-type type-name="interaction_effect_add_syndromest"
    inherits-from="interaction_effect">
  <int32_t/>
  <stl-vector name="syndrome" pointer-type="syndrome"/>
</class-type>

interaction.interaction_effect_resurrectst

<class-type type-name="interaction_effect_resurrectst"
    inherits-from="interaction_effect">
  <int32_t/>
  <stl-vector name="syndrome" pointer-type="syndrome"/>
</class-type>

interaction.interaction_effect_cleanst

<class-type type-name="interaction_effect_cleanst"
    inherits-from="interaction_effect">
  <int32_t name="grime_level"/>
  <compound name="syndrome_tag" type-name="syndrome_flags"/>
  <int32_t/>
</class-type>

interaction.interaction_effect_contactst

<class-type type-name="interaction_effect_contactst"
    inherits-from="interaction_effect">
  <int32_t/>
</class-type>

interaction.interaction_effect_material_emissionst

<class-type type-name="interaction_effect_material_emissionst"
    inherits-from="interaction_effect">
  <int32_t/>
</class-type>

interaction.interaction_effect_hidest

<class-type type-name="interaction_effect_hidest"
    inherits-from="interaction_effect">
  <int32_t/>
</class-type>

interaction.interaction_source_type

<enum-type type-name="interaction_source_type">
  <enum-item name="REGION"/>
  <enum-item name="SECRET"/>
  <enum-item name="DISTURBANCE"/>
  <enum-item name="DEITY"/>
  <enum-item name="ATTACK"/>
  <enum-item name="INGESTION"/>
  <enum-item name="CREATURE_ACTION"/>
  <enum-item name="UNDERGROUND_SPECIAL"/>
</enum-type>

interaction.interaction_source

<class-type type-name="interaction_source"
    original-name="interaction_sourcest" key-field="id">
  <int32_t name="id"/>
  <int32_t name="frequency"/>
  <stl-string name="name"/>
  <stl-string name="hist_string_1"/>
  <stl-string name="hist_string_2"/>
  <virtual-methods>
    <vmethod ret-type="interaction_source_type" name="getType"/>
    <vmethod name="write_file">
      <pointer>
        file_compressorst
      </pointer>
    </vmethod>
    <vmethod name="read_file">
      <pointer>
        file_compressorst
      </pointer>
      <int32_t name="loadversion"/>
    </vmethod>
    <vmethod is-destructor="true"/>
    <vmethod name="parseRaws">
      <int32_t/>
      <int32_t/>
      <int32_t/>
      <int32_t/>
      <int32_t/>
    </vmethod>
    <vmethod>
      <int32_t/>
      <int32_t/>
    </vmethod>
    <vmethod ret-type="bool">
      <int32_t/>
    </vmethod>
    <vmethod ret-type="bool">
      <int32_t/>
    </vmethod>
  </virtual-methods>
</class-type>

interaction.interaction_source_regionst

<class-type type-name="interaction_source_regionst"
    inherits-from="interaction_source">
  <bitfield name="region_flags" base-type="uint32_t">
    <flag-bit name="NORMAL_ALLOWED"/>
    <flag-bit name="EVIL_ALLOWED"/>
    <flag-bit name="GOOD_ALLOWED"/>
    <flag-bit name="SAVAGE_ALLOWED"/>
    <flag-bit name="EVIL_ONLY"/>
    <flag-bit name="GOOD_ONLY"/>
    <flag-bit name="SAVAGE_ONLY"/>
  </bitfield>
  <static-array name="regions" type-name="int8_t" count="10"
      index-enum="worldgen_region_type"/>
</class-type>

interaction.interaction_source_secretst

<class-type type-name="interaction_source_secretst"
    inherits-from="interaction_source">
  <bitfield name="learn_flags" base-type="uint32_t">
    <flag-bit name="SUPERNATURAL_LEARNING_POSSIBLE"/>
    <flag-bit name="MUNDANE_RESEARCH_POSSIBLE"/>
    <flag-bit name="MUNDANE_RECORDING_POSSIBLE"/>
    <flag-bit name="MUNDANE_TEACHING_POSSIBLE"/>
  </bitfield>
  <stl-vector name="spheres">
    <enum base-type="int16_t" type-name="sphere_type"/>
  </stl-vector>
  <stl-vector name="goals" type-name="goal_type"/>
  <stl-string name="book_title_filename"/>
  <stl-string name="book_name_filename"/>
  <int32_t/>
  <int32_t/>
</class-type>

interaction.interaction_source_disturbancest

<class-type type-name="interaction_source_disturbancest"
    inherits-from="interaction_source">
  <int32_t/>
</class-type>

interaction.interaction_source_usage_hint

<enum-type type-name="interaction_source_usage_hint"
    base-type="int32_t">
  <enum-item name="MAJOR_CURSE"/>
  <enum-item name="GREETING"/>
  <enum-item name="CLEAN_SELF"/>
  <enum-item name="CLEAN_FRIEND"/>
  <enum-item name="ATTACK"/>
  <enum-item name="FLEEING"/>
  <enum-item name="NEGATIVE_SOCIAL_RESPONSE"/>
  <enum-item name="TORMENT"/>
</enum-type>

interaction.interaction_source_deityst

<class-type type-name="interaction_source_deityst"
    inherits-from="interaction_source">
  <int32_t/>
  <stl-vector name="usage_hint"
      type-name="interaction_source_usage_hint"/>
</class-type>

interaction.interaction_source_attackst

<class-type type-name="interaction_source_attackst"
    inherits-from="interaction_source">
  <int32_t/>
</class-type>

interaction.interaction_source_ingestionst

<class-type type-name="interaction_source_ingestionst"
    inherits-from="interaction_source">
  <int32_t/>
</class-type>

interaction.interaction_source_creature_actionst

<class-type type-name="interaction_source_creature_actionst"
    inherits-from="interaction_source">
  <int32_t/>
</class-type>

interaction.interaction_source_underground_specialst

<class-type type-name="interaction_source_underground_specialst"
    inherits-from="interaction_source"/>

interaction.interaction_target_type

<enum-type type-name="interaction_target_type">
  <enum-item name="CORPSE"/>
  <enum-item name="CREATURE"/>
  <enum-item name="MATERIAL"/>
  <enum-item name="LOCATION"/>
</enum-type>

interaction.interaction_target_location_type

<enum-type type-name="interaction_target_location_type">
  <enum-item name="CONTEXT_NONE" value="-1"/>
  <enum-item name="CONTEXT_REGION"/>
  <enum-item name="CONTEXT_CREATURE"/>
  <enum-item name="CONTEXT_ITEM"/>
  <enum-item name="CONTEXT_BP"/>
  <enum-item name="CONTEXT_LOCATION"/>
  <enum-item name="CONTEXT_CREATURE_OR_LOCATION"/>
</enum-type>

interaction.interaction_target

<class-type type-name="interaction_target"
    original-name="interaction_targetst">
  <int32_t name="index"/>
  <stl-string/>
  <stl-string name="manual_input"/>
  <enum name="location" type-name="interaction_target_location_type"/>
  <virtual-methods>
    <vmethod ret-type="interaction_source_type" name="getType"/>
    <vmethod name="write_file">
      <pointer>
        file_compressorst
      </pointer>
    </vmethod>
    <vmethod name="read_file">
      <pointer>
        file_compressorst
      </pointer>
      <int32_t name="loadversion"/>
    </vmethod>
    <vmethod is-destructor="true"/>
    <vmethod name="parseRaws">
      <int32_t/>
      <int32_t/>
      <int32_t/>
      <int32_t/>
      <int32_t/>
    </vmethod>
    <vmethod>
      <int32_t/>
    </vmethod>
    <vmethod ret-type="bool">
      <int32_t/>
      <int32_t/>
    </vmethod>
    <vmethod ret-type="bool">
      <int32_t/>
      <int32_t/>
    </vmethod>
    <vmethod ret-type="bool">
      <int32_t/>
      <int32_t/>
    </vmethod>
    <vmethod ret-type="bool">
      <int32_t/>
      <int32_t/>
    </vmethod>
  </virtual-methods>
</class-type>

interaction.interaction_target_info

<struct-type type-name="interaction_target_info">
  <static-array name="affected_creature_str" count="2">
    <stl-vector pointer-type="stl-string"/>
  </static-array>
  <stl-vector name="affected_creature" type-name="int32_t"/>
  <stl-vector name="affected_class" pointer-type="stl-string"/>
  <static-array name="immune_creature_str" count="2">
    <stl-vector pointer-type="stl-string"/>
  </static-array>
  <stl-vector name="immune_creature" type-name="int32_t"/>
  <stl-vector name="immune_class" pointer-type="stl-string"/>
  <stl-vector name="forbidden_syndrome_class"
      pointer-type="stl-string"/>
  <int32_t name="requires_1"/>
  <int32_t name="requires_2"/>
  <int32_t name="forbidden_1"/>
  <int32_t name="forbidden_2"/>
  <bitfield name="restrictions" base-type="uint32_t">
    <flag-bit name="CANNOT_TARGET_IF_ALREADY_AFFECTED"/>
  </bitfield>
</struct-type>

interaction.interaction_target_corpsest

<class-type type-name="interaction_target_corpsest"
    inherits-from="interaction_target">
  <compound type-name="interaction_target_info"/>
</class-type>

interaction.interaction_target_creaturest

<class-type type-name="interaction_target_creaturest"
    inherits-from="interaction_target">
  <compound type-name="interaction_target_info"/>
</class-type>

interaction.breath_attack_type

<enum-type type-name="breath_attack_type" base-type="int16_t">
  <enum-item name="TRAILING_DUST_FLOW"/>
  <enum-item name="TRAILING_VAPOR_FLOW"/>
  <enum-item name="TRAILING_GAS_FLOW"/>
  <enum-item name="SOLID_GLOB"/>
  <enum-item name="LIQUID_GLOB"/>
  <enum-item name="UNDIRECTED_GAS"/>
  <enum-item name="UNDIRECTED_VAPOR"/>
  <enum-item name="UNDIRECTED_DUST"/>
  <enum-item name="WEB_SPRAY"/>
  <enum-item name="DRAGONFIRE"/>
  <enum-item name="FIREJET"/>
  <enum-item name="FIREBALL"/>
  <enum-item name="WEATHER_CREEPING_GAS"/>
  <enum-item name="WEATHER_CREEPING_VAPOR"/>
  <enum-item name="WEATHER_CREEPING_DUST"/>
  <enum-item name="WEATHER_FALLING_MATERIAL"/>
  <enum-item name="SPATTER_POWDER"/>
  <enum-item name="SPATTER_LIQUID"/>
  <enum-item name="UNDIRECTED_ITEM_CLOUD"/>
  <enum-item name="TRAILING_ITEM_FLOW"/>
</enum-type>

interaction.interaction_target_materialst

<class-type type-name="interaction_target_materialst"
    inherits-from="interaction_target">
  <static-array name="material_str" type-name="stl-string" count="3"/>
  <int16_t/>
  <int32_t/>
  <int16_t/>
  <enum type-name="breath_attack_type" name="breath_attack_type"/>
  <bitfield name="restrictions" base-type="uint32_t">
    <flag-bit name="CONTEXT_MATERIAL"/>
  </bitfield>
</class-type>

interaction.interaction_target_locationst

<class-type type-name="interaction_target_locationst"
    inherits-from="interaction_target">

</class-type>

interaction.interaction_instance

<struct-type type-name="interaction_instance"
    instance-vector="$global.world.interaction_instances.all"
    key-field="id">
  <int32_t name="id"/>
  <int32_t name="interaction_id" ref-target="interaction"/>
  <int32_t/>
  <int32_t name="region_index"/>
  <stl-vector type-name="int32_t"/>
</struct-type>