Update the XML definitions.

develop
Alexander Gavrilov 2011-12-29 16:32:05 +04:00
parent d513e75365
commit b14e2a0c0d
15 changed files with 1570 additions and 368 deletions

@ -1081,6 +1081,8 @@
<Group name='vtable'> <Group name='vtable'>
</Group> </Group>
<Group name='global'> <Group name='global'>
<Address name='cursor'/>
<Address name='selection_rect'/>
<Address name='world'/> <Address name='world'/>
<Address name='ui'/> <Address name='ui'/>
<Address name='gview'/> <Address name='gview'/>
@ -2321,6 +2323,10 @@
<Group name='vtable'> <Group name='vtable'>
</Group> </Group>
<Group name='global'> <Group name='global'>
<!-- .data -->
<Address name='cursor' value='0xb347f0'/>
<Address name='selection_rect' value='0xb347fc'/>
<!-- .bss -->
<Address name='world' value='0x16b0a58'/> <Address name='world' value='0x16b0a58'/>
<Address name='ui' value='0x14ee7e0'/> <Address name='ui' value='0x14ee7e0'/>
<Address name='gview' value='0x14f6070'/> <Address name='gview' value='0x14f6070'/>
@ -3195,6 +3201,10 @@
<Group name='vtable'> <Group name='vtable'>
</Group> </Group>
<Group name='global'> <Group name='global'>
<!-- .data -->
<Address name='cursor' value='0x8c3de60'/>
<Address name='selection_rect' value='0x8c3de70'/>
<!-- .bss -->
<Address name='world' value='0x93f77a0'/> <Address name='world' value='0x93f77a0'/>
<Address name='ui' value='0x93f0780'/> <Address name='ui' value='0x93f0780'/>
<Address name='gview' value='0x8c3e900'/> <Address name='gview' value='0x8c3e900'/>

@ -1,4 +1,113 @@
<data-definition> <data-definition>
<struct-type type-name='historical_kills'>
-- Important
<stl-vector name="events">
<int32_t ref-target='history_event'/>
</stl-vector>
-- Misc
<stl-vector name="killed_race">
<int16_t ref-target='creature_raw'/>
</stl-vector>
<stl-vector name="killed_caste">
<int16_t ref-target='caste_raw' aux-value='$$._parent.killed_race[$._key]'/>
</stl-vector>
<stl-vector name="unk_30">
<int32_t comment='-1'/>
</stl-vector>
<stl-vector name="unk_40">
<int32_t comment='-1'/>
</stl-vector>
<stl-vector name="killed_site">
<int32_t ref-target='world_site'/>
</stl-vector>
<stl-vector name="killed_undead">
<bitfield base-type='uint16_t'>
<flag-bit name='skeletal'/>
<flag-bit name='zombie'/>
<flag-bit name='ghostly'/>
</bitfield>
</stl-vector>
<stl-vector name="killed_count" type-name='int32_t'/>
</struct-type>
<struct-type type-name='historical_figure_info'>
<pointer name="unk_0">
<stl-vector>
<int16_t/>
</stl-vector>
</pointer>
<pointer name="unk_4">
<stl-vector name="unk_0">
<int16_t/>
</stl-vector>
<stl-vector name="unk_10">
<int32_t/>
</stl-vector>
<stl-vector name="unk_20"/>
<stl-vector name="unk_30"/>
<stl-vector name="unk_40" type-name='int16_t'/>
<stl-vector name="unk_50" type-name='int16_t'/>
<int16_t name="unk_60"/>
</pointer>
<pointer name="unk_8">
<stl-vector>
<int16_t/>
</stl-vector>
</pointer>
<pointer name="unk_c">
<static-array name='unk_0' count='30' type-name='int16_t'/>
<stl-vector name="unk_3c">
<pointer>
<int16_t name='a'/>
<int16_t name='b'/>
</pointer>
</stl-vector>
<stl-vector name="unk_4c">
<int16_t/>
</stl-vector>
</pointer>
<pointer name="masterpieces">
<stl-vector name="events">
<int32_t ref-target='history_event'/>
</stl-vector>
<stl-vector name="events2" comment='ones that were stolen??..'>
<int32_t ref-target='history_event'/>
</stl-vector>
</pointer>
<pointer name="unk_14">
<int16_t name="unk_0"/>
<int32_t name="site" ref-target='world_site'/>
<int32_t name="unk_8"/>
<int32_t name="unk_c"/>
<int16_t name="unk_10"/>
<int16_t name="unk_12"/>
</pointer>
<pointer name="kills" type-name='historical_kills'/>
<pointer name="wounds">
<stl-vector name="events">
<int32_t ref-target='history_event'/>
</stl-vector>
<stl-bit-vector name="status">
<code-helper name='index-refers-to'>
(let* ((info $$._parent._parent._parent)
(figure $info._parent._parent)
(caste (find-instance $caste_raw $figure.caste $figure.race)))
$caste.body_parts[$])
</code-helper>
</stl-bit-vector>
</pointer>
</struct-type>
<struct-type type-name='historical_figure' instance-vector='$global.world.history.figures' key-field='id'> <struct-type type-name='historical_figure' instance-vector='$global.world.history.figures' key-field='id'>
<enum base-type='int16_t' name='profession' type-name='profession'/> <enum base-type='int16_t' name='profession' type-name='profession'/>
@ -37,9 +146,20 @@
<stl-vector name='site_links'/> <stl-vector name='site_links'/>
<stl-vector name='histfig_links'/> <stl-vector name='histfig_links'/>
<pointer name='unk6'/> <pointer name='info' type-name='historical_figure_info'/>
<static-array name='unk7' count='5' type-name='int32_t' comment='empty'/> <compound name='worldgen'>
<pointer name="unk_0" type-name="world_site"/>
<pointer name="unk_4" type-name="language_name"/>
<pointer name="unk_8" type-name="world_underground_region"/>
<pointer name="unk_c">
<pointer name="unk_0" type-name='uint8_t' is-array='true'/>
<int16_t name="unk_4"/>
<pointer name="unk_8" type-name='int16_t' is-array='true'/>
<int16_t name="unk_c"/>
</pointer>
<int32_t name="unk_10"/>
</compound>
</struct-type> </struct-type>
<class-type type-name='history_event' original-name='history_eventst' <class-type type-name='history_event' original-name='history_eventst'

@ -95,12 +95,16 @@
<int16_t name="subtype"/> <int16_t name="subtype"/>
</class-type> </class-type>
<enum-type type-name='ammo_flags'>
<enum-item name='HAS_EDGE_ATTACK'/>
</enum-type>
<class-type type-name='itemdef_ammost' inherits-from='itemdef'> <class-type type-name='itemdef_ammost' inherits-from='itemdef'>
<stl-string name="name"/> <stl-string name="name"/>
<stl-string name="name_plural"/> <stl-string name="name_plural"/>
<stl-string name="ammo_class"/> <stl-string name="ammo_class"/>
<df-flagarray name='flags'/> <df-flagarray name='flags' index-enum='ammo_flags'/>
<int32_t name="size" comment='divided by 10'/> <int32_t name="size" comment='divided by 10'/>
<int32_t name="unk_84"/> <int32_t name="unk_84"/>
@ -110,14 +114,33 @@
</stl-vector> </stl-vector>
</class-type> </class-type>
<enum-type type-name='armor_general_flags'>
<enum-item name='SOFT'/>
<enum-item name='HARD'/>
<enum-item name='METAL'/>
<enum-item name='BARRED'/>
<enum-item name='SCALED'/>
<enum-item name='LEATHER'/>
<enum-item name='SHAPED'/>
<enum-item name='CHAIN_METAL_TEXT'/>
<enum-item name='STRUCTURAL_ELASTICITY_WOVEN_THREAD'/>
<enum-item name='STRUCTURAL_ELASTICITY_CHAIN_METAL'/>
<enum-item name='STRUCTURAL_ELASTICITY_CHAIN_ALL'/>
</enum-type>
<struct-type type-name='armor_properties'> <struct-type type-name='armor_properties'>
<df-flagarray name='flags'/> <df-flagarray name='flags' index-enum='armor_general_flags'/>
<int32_t name="layer"/> <int32_t name="layer"/>
<int16_t name="layer_size"/> <int16_t name="layer_size"/>
<int16_t name="layer_permit"/> <int16_t name="layer_permit"/>
<int16_t name="coverage"/> <int16_t name="coverage"/>
</struct-type> </struct-type>
<enum-type type-name='armor_flags'>
<enum-item name='METAL_ARMOR_LEVELS'/>
</enum-type>
<class-type type-name='itemdef_armorst' inherits-from='itemdef'> <class-type type-name='itemdef_armorst' inherits-from='itemdef'>
<stl-string name="name"/> <stl-string name="name"/>
<stl-string name="name_plural"/> <stl-string name="name_plural"/>
@ -131,7 +154,7 @@
<compound name='props' type-name='armor_properties'/> <compound name='props' type-name='armor_properties'/>
<df-flagarray name='flags'/> <df-flagarray name='flags' index-enum='armor_flags'/>
</class-type> </class-type>
<class-type type-name='itemdef_foodst' inherits-from='itemdef'> <class-type type-name='itemdef_foodst' inherits-from='itemdef'>
@ -139,33 +162,49 @@
<int16_t name="level"/> <int16_t name="level"/>
</class-type> </class-type>
<enum-type type-name='gloves_flags'>
<enum-item name='METAL_ARMOR_LEVELS'/>
</enum-type>
<class-type type-name='itemdef_glovesst' inherits-from='itemdef'> <class-type type-name='itemdef_glovesst' inherits-from='itemdef'>
<stl-string name="name"/> <stl-string name="name"/>
<stl-string name="name_plural"/> <stl-string name="name_plural"/>
<int32_t name="value"/> <int32_t name="value"/>
<int8_t name='armorlevel'/> <int8_t name='armorlevel'/>
<int16_t name="ubstep"/> <int16_t name="ubstep"/>
<df-flagarray name='flags'/> <df-flagarray name='flags' index-enum='gloves_flags'/>
<int32_t name="material_size"/> <int32_t name="material_size"/>
<compound name='props' type-name='armor_properties'/> <compound name='props' type-name='armor_properties'/>
</class-type> </class-type>
<enum-type type-name='helm_flags'>
<enum-item name='METAL_ARMOR_LEVELS'/>
</enum-type>
<class-type type-name='itemdef_helmst' inherits-from='itemdef'> <class-type type-name='itemdef_helmst' inherits-from='itemdef'>
<stl-string name="name"/> <stl-string name="name"/>
<stl-string name="name_plural"/> <stl-string name="name_plural"/>
<int32_t name="value"/> <int32_t name="value"/>
<int8_t name='armorlevel'/> <int8_t name='armorlevel'/>
<df-flagarray name='flags'/> <df-flagarray name='flags' index-enum='helm_flags'/>
<int32_t name="material_size"/> <int32_t name="material_size"/>
<compound name='props' type-name='armor_properties'/> <compound name='props' type-name='armor_properties'/>
</class-type> </class-type>
<enum-type type-name='instrument_flags'>
<enum-item name='HARD_MAT'/>
</enum-type>
<class-type type-name='itemdef_instrumentst' inherits-from='itemdef'> <class-type type-name='itemdef_instrumentst' inherits-from='itemdef'>
<stl-string name="name"/> <stl-string name="name"/>
<stl-string name="name_plural"/> <stl-string name="name_plural"/>
<df-flagarray name='flags'/> <df-flagarray name='flags' index-enum='instrument_flags'/>
</class-type> </class-type>
<enum-type type-name='pants_flags'>
<enum-item name='METAL_ARMOR_LEVELS'/>
</enum-type>
<class-type type-name='itemdef_pantsst' inherits-from='itemdef'> <class-type type-name='itemdef_pantsst' inherits-from='itemdef'>
<stl-string name="name"/> <stl-string name="name"/>
<stl-string name="name_plural"/> <stl-string name="name_plural"/>
@ -173,7 +212,7 @@
<stl-string name="material_placeholder"/> <stl-string name="material_placeholder"/>
<int32_t name="value"/> <int32_t name="value"/>
<int8_t name="armorlevel"/> <int8_t name="armorlevel"/>
<df-flagarray name='flags'/> <df-flagarray name='flags' index-enum='pants_flags'/>
<int32_t name="material_size"/> <int32_t name="material_size"/>
<int16_t name="lbstep"/> <int16_t name="lbstep"/>
@ -190,13 +229,17 @@
<int32_t name="material_size"/> <int32_t name="material_size"/>
</class-type> </class-type>
<enum-type type-name='shoes_flags'>
<enum-item name='METAL_ARMOR_LEVELS'/>
</enum-type>
<class-type type-name='itemdef_shoesst' inherits-from='itemdef'> <class-type type-name='itemdef_shoesst' inherits-from='itemdef'>
<stl-string name="name"/> <stl-string name="name"/>
<stl-string name="name_plural"/> <stl-string name="name_plural"/>
<int32_t name="value"/> <int32_t name="value"/>
<int8_t name='armorlevel'/> <int8_t name='armorlevel'/>
<int16_t name="ubstep"/> <int16_t name="ubstep"/>
<df-flagarray name='flags'/> <df-flagarray name='flags' index-enum='shoes_flags'/>
<int32_t name="material_size"/> <int32_t name="material_size"/>
<compound name='props' type-name='armor_properties'/> <compound name='props' type-name='armor_properties'/>
@ -208,27 +251,35 @@
<stl-string name="ammo_class"/> <stl-string name="ammo_class"/>
</class-type> </class-type>
<enum-type type-name='tool_flags'>
<enum-item name='HARD_MAT'/>
<enum-item name='METAL_MAT'/>
<enum-item name='HAS_EDGE_ATTACK'/>
<enum-item name='METAL_WEAPON_MAT'/>
<enum-item name='UNIMPROVABLE'/>
</enum-type>
<enum-type type-name='tool_uses'> <enum-type type-name='tool_uses'>
<enum-item name='TOOL_USE_LIQUID_COOKING'/> <enum-item name='LIQUID_COOKING'/>
<enum-item name='TOOL_USE_LIQUID_SCOOP'/> <enum-item name='LIQUID_SCOOP'/>
<enum-item name='TOOL_USE_GRIND_POWDER_RECEPTACLE'/> <enum-item name='GRIND_POWDER_RECEPTACLE'/>
<enum-item name='TOOL_USE_GRIND_POWDER_GRINDER'/> <enum-item name='GRIND_POWDER_GRINDER'/>
<enum-item name='TOOL_USE_MEAT_CARVING'/> <enum-item name='MEAT_CARVING'/>
<enum-item name='TOOL_USE_MEAT_BONING'/> <enum-item name='MEAT_BONING'/>
<enum-item name='TOOL_USE_MEAT_SLICING'/> <enum-item name='MEAT_SLICING'/>
<enum-item name='TOOL_USE_MEAT_CLEAVING'/> <enum-item name='MEAT_CLEAVING'/>
<enum-item name='TOOL_USE_HOLD_MEAT_FOR_CARVING'/> <enum-item name='HOLD_MEAT_FOR_CARVING'/>
<enum-item name='TOOL_USE_MEAL_CONTAINER'/> <enum-item name='MEAL_CONTAINER'/>
<enum-item name='TOOL_USE_LIQUID_CONTAINER'/> <enum-item name='LIQUID_CONTAINER'/>
<enum-item name='TOOL_USE_FOOD_STORAGE'/> <enum-item name='FOOD_STORAGE'/>
<enum-item name='TOOL_USE_HIVE'/> <enum-item name='HIVE'/>
<enum-item name='TOOL_USE_NEST_BOX'/> <enum-item name='NEST_BOX'/>
</enum-type> </enum-type>
<class-type type-name='itemdef_toolst' inherits-from='itemdef'> <class-type type-name='itemdef_toolst' inherits-from='itemdef'>
<stl-string name="name"/> <stl-string name="name"/>
<stl-string name="name_plural"/> <stl-string name="name_plural"/>
<df-flagarray name='flags'/> <df-flagarray name='flags' index-enum='tool_flags'/>
<int32_t name="value"/> <int32_t name="value"/>
<uint8_t name="tile"/> <uint8_t name="tile"/>
@ -253,11 +304,23 @@
<int32_t name="container_capacity"/> <int32_t name="container_capacity"/>
</class-type> </class-type>
<enum-type type-name='toy_flags'>
<enum-item name='HARD_MAT'/>
</enum-type>
<class-type type-name='itemdef_toyst' inherits-from='itemdef'> <class-type type-name='itemdef_toyst' inherits-from='itemdef'>
<stl-string name="name"/> <stl-string name="name"/>
<stl-string name="name_plural"/> <stl-string name="name_plural"/>
<df-flagarray name='flags'/> <df-flagarray name='flags' index-enum='toy_flags'/>
</class-type> </class-type>
<enum-type type-name='trapcomp_flags'>
<enum-item name='IS_SCREW'/>
<enum-item name='IS_SPIKE'/>
<enum-item name='WOOD'/>
<enum-item name='METAL'/>
<enum-item name='HAS_EDGE_ATTACK'/>
</enum-type>
<class-type type-name='itemdef_trapcompst' inherits-from='itemdef'> <class-type type-name='itemdef_trapcompst' inherits-from='itemdef'>
<stl-string name="name"/> <stl-string name="name"/>
@ -268,12 +331,20 @@
<int32_t name="unk_7c"/> <int32_t name="unk_7c"/>
<int32_t name="hits"/> <int32_t name="hits"/>
<int32_t name="material_size"/> <int32_t name="material_size"/>
<df-flagarray name='flags'/>
<df-flagarray name='flags' index-enum='trapcomp_flags'/>
<stl-vector name="attacks"> <stl-vector name="attacks">
<pointer/> <pointer/>
</stl-vector> </stl-vector>
</class-type> </class-type>
<enum-type type-name='weapon_flags'>
<enum-item name='CAN_STONE'/>
<enum-item name='HAS_EDGE_ATTACK'/>
<enum-item name='TRAINING'/>
</enum-type>
<class-type type-name='itemdef_weaponst' inherits-from='itemdef'> <class-type type-name='itemdef_weaponst' inherits-from='itemdef'>
<stl-string name="name"/> <stl-string name="name"/>
<stl-string name="name_plural"/> <stl-string name="name_plural"/>
@ -286,7 +357,7 @@
<int32_t name="two_handed"/> <int32_t name="two_handed"/>
<int32_t name="minimum_size"/> <int32_t name="minimum_size"/>
<int32_t name="material_size"/> <int32_t name="material_size"/>
<df-flagarray name='flags'/> <df-flagarray name='flags' index-enum='weapon_flags'/>
<stl-vector name="attacks"> <stl-vector name="attacks">
<pointer/> <pointer/>
</stl-vector> </stl-vector>

@ -106,42 +106,357 @@
<int32_t name='weight' comment='if flags.weight_computed'/> <int32_t name='weight' comment='if flags.weight_computed'/>
<int32_t name='weight_fraction' comment='1e-6'/> <int32_t name='weight_fraction' comment='1e-6'/>
<virtual-methods>
<vmethod ret-type='item_type' name='getType'/>
<vmethod ret-type='int16_t' name='getSubtype'/>
<vmethod ret-type='int16_t' name='getMaterial'/>
<vmethod ret-type='int32_t' name='getMaterialIndex'/>
<vmethod name='setSubtype'> <int16_t/> </vmethod>
<vmethod name='setMaterial'> <int16_t/> </vmethod>
<vmethod name='setMaterialIndex'> <int32_t/> </vmethod>
<vmethod ret-type='int16_t' name='getActualMaterial'
comment='returns an actual material type, never a race'/>
<vmethod ret-type='int32_t' name='getActualMaterialIndex'
comment='returns an actual material index, never a caste'/>
<vmethod ret-type='int16_t' name='getRace'
comment='only if the object is made of a "specific creature mat"'/>
-- 10
<vmethod ret-type='int16_t' name='getCaste'
comment='only if the object is made of a "specific creature mat"'/>
<vmethod ret-type='int16_t' name='getPlantID'
comment='only if the object is made of a plant material'/>
<vmethod ret-type='int32_t' name='getTotalDimension'/>
<vmethod name='setDimension'> <int32_t name='amount'/> </vmethod>
<vmethod ret-type='bool' name='subtractDimension'> <int32_t name='amount'/> </vmethod>
<vmethod ret-type='bool' name='isFoodStorage'/>
<vmethod name='getStockpile'>
<ret-type><pointer type-name='item_stockpile_ref'/></ret-type>
</vmethod>
<vmethod ret-type='bool' name='containsPlaster'/>
<vmethod ret-type='bool' name='isPlaster'/>
<vmethod ret-type='bool' name='getColorOverride'> <pointer/> </vmethod>
-- 20
<vmethod name='getHistoryInfo'>
<ret-type><pointer><pointer type-name='item_history_info'/></pointer></ret-type>
</vmethod>
<vmethod ret-type='bool' name='hasToolUse'> <int16_t/> </vmethod>
<vmethod name='becomePaste'/>
<vmethod name='becomePressed'/>
<vmethod name='calculateWeight'/>
<vmethod ret-type='bool' name='isSharpStone'/>
<vmethod ret-type='bool' name='isCrystalGlassable'/>
<vmethod ret-type='bool' name='isMetalOre'> <int16_t name='matIndex'/> </vmethod>
<vmethod/>
<vmethod/>
-- 30
<vmethod ret-type='uint16_t' name='getSpecHeat'/>
<vmethod ret-type='uint16_t' name='getIgnitePoint'/>
<vmethod ret-type='uint16_t' name='getHeatdamPoint'/>
<vmethod ret-type='uint16_t' name='getColddamPoint'/>
<vmethod ret-type='uint16_t' name='getBoilingPoint'/>
<vmethod ret-type='uint16_t' name='getMeltingPoint'/>
<vmethod ret-type='uint16_t' name='getFixedTemp'/>
<vmethod ret-type='int32_t' name='getSolidDensity'/>
<vmethod ret-type='bool' name='materialRots'/>
<vmethod ret-type='uint16_t' name='getTemperature'/>
-- 40
<vmethod ret-type='bool' name='adjustTemperature'>
<uint16_t name='target'/>
<int32_t name='unk'/>
</vmethod>
<vmethod/>
<vmethod name='extinguish'/>
<vmethod ret-type='int8_t' name='getGloveHandedness'/>
<vmethod name='setGloveHandedness'> <int8_t/> </vmethod>
<vmethod ret-type='bool' name='isSpike'/>
<vmethod ret-type='bool' name='isScrew'/>
<vmethod ret-type='bool' name='isBuildMat'/>
<vmethod ret-type='bool' name='isTemperatureSafe'> <int8_t comment='1 fire, 2 magma'/> </vmethod>
<vmethod name='setRandSubtype'> <pointer/> </vmethod>
-- 50
<vmethod/>
<vmethod ret-type='int16_t' name='getWear'/>
<vmethod name='setWear'> <int16_t/> </vmethod>
<vmethod ret-type='int32_t' name='getMaker'/>
<vmethod name='setMaker'> <int32_t name='unit_id'/> </vmethod>
<vmethod/>
<vmethod/>
<vmethod name='getGloveFlags'>
<ret-type><pointer><df-flagarray/></pointer></ret-type>
</vmethod>
<vmethod name='getItemShapeDesc' comment='a statue/figurine of "string goes here"'>
<ret-type><pointer type-name='stl-string'/></ret-type>
</vmethod>
<vmethod ret-type='bool' name='isMatchingAmmoItem'> <pointer type-name='item_filter_spec'/> </vmethod>
-- 60
<vmethod/>
<vmethod name='setSeedsUnk84'> <int32_t/> </vmethod>
<vmethod ret-type='int16_t' name='getCorpseUnk17c'/>
<vmethod name='ageItem'><int32_t name='amount'/></vmethod>
<vmethod ret-type='int32_t' name='getCritterUnk80'/>
<vmethod name='setCritterUnk80'> <int32_t/> </vmethod>
<vmethod name='incrementCritterUnk80'/>
<vmethod ret-type='int32_t' name='getRotTimer'/>
<vmethod name='setRotTimer'> <int32_t name='val'/> </vmethod>
<vmethod name='incrementRotTimer'/>
-- 70
<vmethod ret-type='bool' name='isBogeymanCorpse'/>
<vmethod/>
<vmethod name='getAmmoType'>
<ret-type><pointer type-name='stl-string'/></ret-type>
<pointer type-name='stl-string'/>
</vmethod>
<vmethod/>
<vmethod ret-type='bool' name='isLiquid'/>
<vmethod/>
<vmethod/>
<vmethod/>
<vmethod ret-type='bool' name='isArmorNotClothing'/>
<vmethod ret-type='bool' name='isMillable'/>
-- 80
<vmethod ret-type='bool' name='isProcessableThread'/>
<vmethod ret-type='bool' name='isProcessableVial'/>
<vmethod ret-type='bool' name='isProcessableBag'/>
<vmethod ret-type='bool' name='isProcessableBarrel'/>
<vmethod ret-type='bool' name='isEdiblePlant'/>
<vmethod ret-type='bool' name='isEdibleRaw'> <int32_t name='hunger'/> </vmethod>
<vmethod/>
<vmethod/>
<vmethod/>
<vmethod/>
-- 90
<vmethod/>
<vmethod ret-type='bool' name='isPressed'/>
<vmethod/>
<vmethod/>
<vmethod/>
<vmethod/>
<vmethod/>
<vmethod/>
<vmethod/>
<vmethod/>
-- 100
<vmethod/>
<vmethod/>
<vmethod ret-type='bool' name='needTwoHandedWield'> <int32_t/> </vmethod>
<vmethod name='splitStack'>
<ret-type><pointer type-name='item'/></ret-type>
<int32_t/>
<int32_t/>
</vmethod>
<vmethod ret-type='bool' name='isTameableVermin'/>
<vmethod ret-type='bool' name='isDistillable'>
<bool name='checkKitchenSettings'/>
</vmethod>
<vmethod ret-type='bool' name='isDye'/>
<vmethod/>
<vmethod ret-type='bool' name='isSandBearing'/>
<vmethod ret-type='bool' name='isLyeBearing'/>
-- 110
<vmethod/>
<vmethod/>
<vmethod/>
<vmethod/>
<vmethod/>
<vmethod/>
<vmethod/>
<vmethod/>
<vmethod/>
<vmethod/>
-- 120
<vmethod/>
<vmethod/>
<vmethod/>
<vmethod name='write_file'> <pointer comment='file_compressorst'/> </vmethod>
<vmethod name='read_file'>
<pointer comment='file_compressorst'/>
<int32_t name='loadversion'/>
</vmethod>
<vmethod name='getWeaponAttacks'>
<ret-type><pointer><stl-vector type-name='pointer'/></pointer></ret-type>
</vmethod>
<vmethod/>
<vmethod/>
<vmethod/>
<vmethod/>
-- 130
<vmethod/>
<vmethod ret-type='bool' name='isBag' comment='BOX made of cloth'/>
<vmethod ret-type='bool' name='isSand'/>
<vmethod ret-type='int32_t' name='getStackSize'/>
<vmethod name='addStackSize'> <int32_t name='amount'/> </vmethod>
<vmethod name='setStackSize'> <int32_t name='amount'/> </vmethod>
<vmethod ret-type='bool' name='isAmmoClass'> <pointer type-name='stl-string'/> </vmethod>
<vmethod/>
<vmethod/>
<vmethod/>
-- 140
<vmethod/>
<vmethod/>
<vmethod/>
<vmethod/>
<vmethod/>
<vmethod/>
<vmethod/>
<vmethod/>
<vmethod ret-type='int16_t' name='getMeleeSkill'/>
<vmethod ret-type='int16_t' name='getRangedSkill'/>
-- 150
<vmethod name='setQuality'> <int16_t name='quality'/> </vmethod>
<vmethod ret-type='int16_t' name='getQuality'/>
<vmethod ret-type='int16_t' name='getOverallQuality'/>
<vmethod ret-type='int16_t' name='getImprovementQuality'/>
<vmethod ret-type='int32_t' name='getProjectileSize'/>
<vmethod/>
<vmethod name='setSharpness'>
<int32_t name='unk1'/>
<int32_t name='unk2'/>
</vmethod>
<vmethod ret-type='int32_t' name='getSharpness'/>
<vmethod ret-type='bool' name='isTotemable'/>
<vmethod ret-type='bool' name='isDyeable'/>
-- 160
<vmethod ret-type='bool' name='isNotDyed'/>
<vmethod ret-type='bool' name='isDyed'/>
<vmethod ret-type='bool' name='canSewImage'/>
<vmethod/>
<vmethod ret-type='bool' name='isProcessableVialAtStill'/>
<vmethod/>
<vmethod ret-type='int32_t' name='getBlockChance'/>
<vmethod/>
<vmethod ret-type='int16_t' name='getMakerRace'/>
<vmethod name='setMakerRace'> <int16_t/> </vmethod>
-- 170
<vmethod ret-type='int8_t' name='getEffectiveArmorLevel'
comment="adds 1 if it has [METAL_ARMOR_LEVELS] and it's made of an inorganic mat"/>
<vmethod/>
<vmethod ret-type='bool' name='isOrganicCloth'/>
<vmethod/>
<vmethod/>
<vmethod/>
<vmethod ret-type='bool' name='isImproved'/>
<vmethod ret-type='int32_t' name='getUnk60'/>
<vmethod name='getItemDescription'>
<pointer type-name='stl-string'/>
<int8_t name='mode'/>
</vmethod>
<vmethod/>
-- 180
<vmethod/>
<vmethod ret-type='bool' name='isExtractBearingFish'/>
<vmethod ret-type='bool' name='isExtractBearingVermin'/>
<vmethod ret-type='int32_t' name='getBaseWeight'/>
<vmethod ret-type='int32_t' name='getWeightShiftBits'/>
<vmethod ret-type='bool' name='isCollected'/>
<vmethod/>
<vmethod ret-type='bool' name='isEdibleVermin'/>
<vmethod name='drawSelf'/>
<vmethod ret-type='bool' name='isRangedWeapon'/>
-- 190
<vmethod ret-type='bool' name='isClothing'/>
<vmethod ret-type='bool' name='isWet'/>
<vmethod/>
<vmethod ret-type='bool' name='isAssignedToStockpile'/>
<vmethod ret-type='bool' name='isAssignedToThisStockpile'> <int32_t/> </vmethod>
<vmethod/>
<vmethod name='removeStockpileAssignment'/>
<vmethod name='getStockpile2'>
<ret-type><pointer type-name='item_stockpile_ref'/></ret-type>
</vmethod>
<vmethod/>
<vmethod/>
-- 200
<vmethod/>
<vmethod/>
<vmethod/>
<vmethod/>
<vmethod/>
<vmethod/>
<vmethod/>
<vmethod/>
<vmethod/>
<vmethod/>
-- 210
<vmethod/>
<vmethod/>
<vmethod/>
<vmethod/>
<vmethod ret-type='int16_t' name='isEngraved' comment='slabs only'/>
<vmethod ret-type='int32_t' name='getAbsorption'/>
<vmethod/>
<vmethod is-destructor='true'/>
</virtual-methods>
</class-type> </class-type>
-- ACTUAL ITEM -- ACTUAL ITEM
<struct-type type-name='item_kill_info'> <struct-type type-name='item_kill_info'>
-- Important <compound name='targets' type-name='historical_kills'/>
<stl-vector name="events">
<int32_t ref-target='history_event'/>
</stl-vector>
-- Misc
<stl-vector name="killed_race">
<int16_t ref-target='creature_raw'/>
</stl-vector>
<stl-vector name="killed_caste">
<int16_t ref-target='caste_raw' aux-value='$$._parent.killed_race[$._key]'/>
</stl-vector>
<stl-vector name="unk_30">
<int32_t comment='-1'/>
</stl-vector>
<stl-vector name="unk_40">
<int32_t comment='-1'/>
</stl-vector>
<stl-vector name="killed_site">
<int32_t ref-target='world_site'/>
</stl-vector>
<stl-vector name="killed_undead">
<bitfield base-type='uint16_t'>
<flag-bit name='skeletal'/>
<flag-bit name='zombie'/>
<flag-bit name='ghostly'/>
</bitfield>
</stl-vector>
<stl-vector name="killed_count" type-name='int32_t'/>
-- Wielders -- Wielders
@ -151,6 +466,12 @@
<stl-vector name="slayer_kill_counts" type-name='int32_t'/> <stl-vector name="slayer_kill_counts" type-name='int32_t'/>
</struct-type> </struct-type>
<struct-type type-name='item_history_info'>
<pointer name='kills' type-name='item_kill_info'/>
<int32_t name='unk1'/>
<int32_t name='unk2'/>
</struct-type>
<class-type type-name='item_actual' inherits-from='item' original-name='item_actualst'> <class-type type-name='item_actual' inherits-from='item' original-name='item_actualst'>
<int32_t name='stack_size'/> <int32_t name='stack_size'/>
@ -160,11 +481,7 @@
</code-helper> </code-helper>
<pointer name='history_info'> <pointer name='history_info'>
<pointer> <pointer type-name='item_history_info'/>
<pointer name='kills' type-name='item_kill_info'/>
<int32_t name='unk1'/>
<int32_t name='unk2'/>
</pointer>
</pointer> </pointer>
<pointer name='unk5'> <pointer name='unk5'>
@ -511,20 +828,20 @@
<class-type type-name='item_toolst' inherits-from='item_constructed'> <class-type type-name='item_toolst' inherits-from='item_constructed'>
<pointer name='subtype' type-name='itemdef_toolst'/> <pointer name='subtype' type-name='itemdef_toolst'/>
<int32_t name='sharpness'/> <int32_t name='sharpness'/>
<int32_t name='unk_a8'/> <compound name='stockpile' type-name='item_stockpile_ref'/>
<int16_t name='unk_ac'/>
<int16_t name='unk_ae'/>
</class-type> </class-type>
<class-type type-name='item_barrelst' inherits-from='item_constructed'> <struct-type type-name='item_stockpile_ref'>
<int32_t name='stockpile' ref-target='building'/> <int32_t name='id' ref-target='building'/>
<int16_t name='x'/> <int16_t name='x'/>
<int16_t name='y'/> <int16_t name='y'/>
</struct-type>
<class-type type-name='item_barrelst' inherits-from='item_constructed'>
<compound name='stockpile' type-name='item_stockpile_ref'/>
</class-type> </class-type>
<class-type type-name='item_binst' inherits-from='item_constructed'> <class-type type-name='item_binst' inherits-from='item_constructed'>
<int32_t name='stockpile' ref-target='building'/> <compound name='stockpile' type-name='item_stockpile_ref'/>
<int16_t name='x'/>
<int16_t name='y'/>
</class-type> </class-type>
<class-type type-name='item_statuest' inherits-from='item_constructed'> <class-type type-name='item_statuest' inherits-from='item_constructed'>

File diff suppressed because it is too large Load Diff

@ -16,6 +16,7 @@
<int32_t name='pet_id' ref-target='unit'/> <int32_t name='pet_id' ref-target='unit'/>
<compound name='name' type-name='language_name'/> <compound name='name' type-name='language_name'/>
<int32_t name='unk3'/> <int32_t name='unk3'/>
<int32_t name='owner_id' ref-target='unit'/>
</struct-type> </struct-type>
<struct-type type-name='meeting_ref'> <struct-type type-name='meeting_ref'>

@ -87,13 +87,30 @@
(when $.has_name (when $.has_name
(let* ((nick $.nickname) (let* ((nick $.nickname)
(language $global.world.raws.translations[$.language]) (language $global.world.raws.translations[$.language])
(english $global.world.raws.language_words)
(fname $.first_name) (fname $.first_name)
(lwords $language.words)) (lwords $language.words))
(fmt "~:(~@[~A ~]~@['~A' ~]~{~A~^ ~}~)" (flet ((get-words (start end)
(if (> (length fname) 0) fname) (loop for i from start to end
(if (> (length nick) 0) nick) for word = $.words[i]
(loop for i from 0 below 7 for word = $.words[i] collect $lwords[word].value))
when (>= word 0) collect $lwords[word].value)))) (get-english (start end)
(loop for i from start to end
for word = $.words[i] and ps = $.parts_of_speech[i]
collect $english[word].forms[ps])))
(list
(fmt "Name:~:(~@[ ~A~]~@[ '~A'~]~@[ ~{~A~}~]~@[ ~{~A~}~]~@[ ~{~A~}~]~)"
(if (> (length fname) 0) fname)
(if (> (length nick) 0) nick)
(flatten (get-words 0 1))
(flatten (get-words 2 5))
(flatten (get-words 6 6)))
(fmt "aka~:(~@[ ~A~]~@[ ~{~A~}~]~@[ the ~A~]~@[ of ~{~A~}~]~)"
(if (> (length fname) 0) fname)
(flatten (get-english 0 1))
(when (>= $.words[5] 0)
(apply #'format nil "~@[~A ~]~@[~A ~]~@[~A-~]~A" (get-english 2 5)))
(flatten (get-english 6 6)))))))
</code-helper> </code-helper>
</struct-type> </struct-type>
</data-definition> </data-definition>

@ -223,6 +223,18 @@
</compound> </compound>
</struct-type> </struct-type>
<struct-type type-name='entity_population_unk4'>
<static-array count='3'>
<stl-vector>
<pointer>
<int32_t name='idx'/>
<int32_t name='unk1'/>
<int32_t name='unk2'/>
</pointer>
</stl-vector>
</static-array>
</struct-type>
<struct-type type-name='entity_population' key-field='id' instance-vector='$global.world.entity_populations'> <struct-type type-name='entity_population' key-field='id' instance-vector='$global.world.entity_populations'>
<compound name='name' type-name='language_name'/> <compound name='name' type-name='language_name'/>
@ -236,17 +248,7 @@
<stl-vector name='unk2' type-name='int32_t'/> <stl-vector name='unk2' type-name='int32_t'/>
<stl-vector name='unk3' type-name='int32_t'/> <stl-vector name='unk3' type-name='int32_t'/>
<stl-vector name='unk4'> <stl-vector name='unk4'>
<pointer> <pointer type-name='entity_population_unk4'/>
<static-array count='3'>
<stl-vector>
<pointer>
<int32_t name='idx'/>
<int32_t name='unk1'/>
<int32_t name='unk2'/>
</pointer>
</stl-vector>
</static-array>
</pointer>
</stl-vector> </stl-vector>
<int32_t name='unk5'/> <int32_t name='unk5'/>
<int32_t name='unk6'/> <int32_t name='unk6'/>
@ -279,7 +281,8 @@
<stl-vector name='unk13' type-name='pointer' comment='empty'/> <stl-vector name='unk13' type-name='pointer' comment='empty'/>
</struct-type> </struct-type>
<struct-type type-name='artifact_record' key-field='id' instance-vector='$global.world.artifacts.all'> <struct-type type-name='artifact_record' key-field='id'
instance-vector='$global.world.artifacts.all'>
<int32_t name='id'/> <int32_t name='id'/>
<code-helper name='describe'> <code-helper name='describe'>
@ -287,8 +290,9 @@
</code-helper> </code-helper>
<compound name='name' type-name='language_name'/> <compound name='name' type-name='language_name'/>
<pointer name='unk1'/>
<int32_t name='unk2'/> <df-flagarray name='flags'/>
<pointer name='item' type-name='item'/> <pointer name='item' type-name='item'/>
</struct-type> </struct-type>
</data-definition> </data-definition>

@ -1,4 +1,84 @@
<data-definition> <data-definition>
<enum-type type-name='material_flags'>
<enum-item name='BONE'/>
<enum-item name='MEAT'/>
<enum-item name='EDIBLE_VERMIN'/>
<enum-item name='EDIBLE_RAW'/>
<enum-item name='EDIBLE_COOKED'/>
<enum-item/>
<enum-item name='ITEMS_METAL'/>
<enum-item name='ITEMS_BARRED'/>
<enum-item name='ITEMS_SCALED'/>
<enum-item name='ITEMS_LEATHER'/>
<enum-item name='ITEMS_SOFT'/>
<enum-item name='ITEMS_HARD'/>
<enum-item name='IMPLIES_ANIMAL_KILL'/>
<enum-item name='ALCOHOL_PLANT'/>
<enum-item name='ALCOHOL_CREATURE'/>
<enum-item name='CHEESE_PLANT'/>
<enum-item name='CHEESE_CREATURE'/>
<enum-item name='POWDER_MISC_PLANT'/>
<enum-item name='POWDER_MISC_CREATURE'/>
<enum-item name='STOCKPILE_GLOB'/>
<enum-item name='LIQUID_MISC_PLANT'/>
<enum-item name='LIQUID_MISC_CREATURE'/>
<enum-item name='LIQUID_MISC_OTHER'/>
<enum-item name='WOOD'/>
<enum-item name='THREAD_PLANT'/>
<enum-item name='TOOTH'/>
<enum-item name='HORN'/>
<enum-item name='PEARL'/>
<enum-item name='SHELL'/>
<enum-item name='LEATHER'/>
<enum-item name='SILK'/>
<enum-item name='SOAP'/>
<enum-item name='ROTS'/>
<enum-item comment='dye?'/>
<enum-item/>
<enum-item/>
<enum-item name='STRUCTURAL_PLANT_MAT'/>
<enum-item name='SEED_MAT'/>
<enum-item name='LEAF_MAT'/>
<enum-item/>
<enum-item name='ENTERS_BLOOD'/>
<enum-item name='BLOOD_MAP_DESCRIPTOR'/>
<enum-item name='ICHOR_MAP_DESCRIPTOR'/>
<enum-item name='GOO_MAP_DESCRIPTOR'/>
<enum-item name='SLIME_MAP_DESCRIPTOR'/>
<enum-item name='PUS_MAP_DESCRIPTOR'/>
<enum-item name='GENERATES_MIASMA'/>
<enum-item name='IS_METAL'/>
<enum-item name='IS_GEM'/>
<enum-item name='IS_GLASS'/>
<enum-item name='CRYSTAL_GLASSABLE'/>
<enum-item name='ITEMS_WEAPON'/>
<enum-item name='ITEMS_WEAPON_RANGED'/>
<enum-item name='ITEMS_ANVIL'/>
<enum-item name='ITEMS_AMMO'/>
<enum-item name='ITEMS_DIGGER'/>
<enum-item name='ITEMS_ARMOR'/>
<enum-item name='ITEMS_DELICATE'/>
<enum-item name='ITEMS_SIEGE_ENGINE'/>
<enum-item name='ITEMS_QUERN'/>
<enum-item name='IS_STONE'/>
<enum-item name='UNDIGGABLE'/>
<enum-item name='YARN'/>
<enum-item name='STOCKPILE_GLOB_PASTE'/>
<enum-item name='STOCKPILE_GLOB_PRESSED'/>
<enum-item name='DISPLAY_UNGLAZED'/>
<enum-item name='DO_NOT_CLEAN_GLOB'/>
<enum-item name='NO_STONE_STOCKPILE'/>
<enum-item name='STOCKPILE_THREAD_METAL'/>
</enum-type>
<struct-type type-name='material_common'> <struct-type type-name='material_common'>
<stl-string name='id'/> <stl-string name='id'/>
<stl-string name='gem_name1'/> <stl-string name='gem_name1'/>
@ -53,7 +133,7 @@
<int32_t name='material_value'/> <int32_t name='material_value'/>
<df-flagarray name='mat_flags'/> <df-flagarray name='mat_flags' index-enum='material_flags'/>
<int16_t name='extract_storage'/> <int16_t name='extract_storage'/>
<int16_t name='butcher_special_type'/> <int16_t name='butcher_special_type'/>
@ -100,15 +180,13 @@
<int32_t name='soap_level'/> <int32_t name='soap_level'/>
</struct-type> </struct-type>
<struct-type type-name='material'> <struct-type type-name='material' inherits-from='material_common'>
<compound type-name='material_common'/>
<code-helper name='find-instance'>(material-by-id $ $$)</code-helper> <code-helper name='find-instance'>(material-by-id $ $$)</code-helper>
<code-helper name='describe'> (describe-material $) </code-helper> <code-helper name='describe'> (describe-material $) </code-helper>
<stl-string name='prefix'/> <stl-string name='prefix'/>
<static-array name='food_mat_index' count='37'> <static-array name='food_mat_index' count='37' index-enum='organic_mat_category'>
<int32_t refers-to='(food-mat-by-idx $$._key $)' <int32_t refers-to='(food-mat-by-idx $$._key $)'
comment='When valid, refers to itself.'/> comment='When valid, refers to itself.'/>
</static-array> </static-array>

@ -1,14 +1,64 @@
<data-definition> <data-definition>
<struct-type type-name='squad_uniform_spec'> <enum-type type-name='uniform_material_class'>
<int32_t name="item" ref-target='item'/> <enum-item name='None' value='-1'/>
<enum-item comment='BROKEN'/>
<enum-item name='Leather'/>
<enum-item name='Cloth'/>
<enum-item name='Wood'/>
<enum-item comment='BROKEN'/>
<enum-item name='Stone'/>
<enum-item comment='BROKEN'/>
<enum-item comment='BROKEN'/>
<enum-item comment='BROKEN'/>
<enum-item comment='BROKEN'/>
<enum-item comment='BROKEN'/>
<enum-item comment='BROKEN'/>
<enum-item comment='BROKEN'/>
<enum-item comment='BROKEN'/>
<enum-item name='Metal'/>
<enum-item comment='BROKEN'/>
<enum-item name='Metal2'/>
<enum-item name='Gem'/>
<enum-item name='Bone'/>
<enum-item name='Shell'/>
<enum-item name='Pearl'/>
<enum-item name='Tooth'/>
<enum-item name='Horn'/>
<enum-item comment='BROKEN'/>
<enum-item comment='BROKEN'/>
<enum-item comment='BROKEN'/>
<enum-item comment='BROKEN'/>
<enum-item name='PlantFiber'/>
<enum-item name='Silk'/>
<enum-item name='Yarn'/>
</enum-type>
<bitfield-type type-name='uniform_indiv_choice'>
<flag-bit name='any'/>
<flag-bit name='melee'/>
<flag-bit name='ranged'/>
</bitfield-type>
<struct-type type-name='item_filter_spec'>
<enum base-type='int16_t' name="item_type" type-name='item_type'/> <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="item_subtype" refers-to='(item-subtype-target $$._parent.item_type $)'/>
<int16_t name="material_class"/> <enum base-type='int16_t' name="material_class" type-name='uniform_material_class'/>
<int16_t name='mattype' ref-target='material' aux-value='$$.matindex'/> <int16_t name='mattype' ref-target='material' aux-value='$$.matindex'/>
<int32_t name='matindex'/> <int32_t name='matindex'/>
</struct-type>
<struct-type type-name='squad_uniform_spec'>
<int32_t name="item" ref-target='item'/>
<compound name='item_filter' type-name='item_filter_spec'/>
<int32_t name="color"/> <int32_t name="color"/>
@ -16,17 +66,11 @@
<int32_t ref-target='item'/> <int32_t ref-target='item'/>
</stl-vector> </stl-vector>
<int32_t name="indiv_choice" comment='1 weapon, 2 melee, 4 ranged'/> <compound name="indiv_choice" type-name='uniform_indiv_choice'/>
</struct-type> </struct-type>
<struct-type type-name='squad_ammo_spec'> <struct-type type-name='squad_ammo_spec'>
<enum base-type='int16_t' name="item_type" type-name='item_type'/> <compound name='item_filter' type-name='item_filter_spec'/>
<int16_t name="item_subtype" refers-to='(item-subtype-target $$._parent.item_type $)'/>
<int16_t name="material_class"/>
<int16_t name='mattype' ref-target='material' aux-value='$$.matindex'/>
<int32_t name='matindex'/>
<int32_t name="amount"/> <int32_t name="amount"/>
@ -115,7 +159,8 @@
<int32_t name='id'/> <int32_t name='id'/>
<compound name='name' type-name='language_name'/> <compound name='name' type-name='language_name'/>
<stl-string name='unk'/>
<stl-string name='alias' comment='if not empty, used instead of name'/>
<code-helper name='describe'> <code-helper name='describe'>
(describe-obj $.name) (describe-obj $.name)
@ -172,8 +217,12 @@
<pointer type-name='squad_ammo_spec'/> <pointer type-name='squad_ammo_spec'/>
</stl-vector> </stl-vector>
<stl-vector name="unk_108"/> <stl-vector name="weapons_free">
<stl-vector name="unk_118"/> <int32_t ref-target='item'/>
</stl-vector>
<stl-vector name="weapons_inuse">
<int32_t ref-target='item'/>
</stl-vector>
<stl-vector name="ammo_items"> <stl-vector name="ammo_items">
<int32_t ref-target='item'/> <int32_t ref-target='item'/>
@ -214,10 +263,10 @@
<int32_t name="unk_4"/> <int32_t name="unk_4"/>
<int32_t name="unk_8"/> <int32_t name="unk_8"/>
<int32_t name="unk_c"/> <int32_t name="unk_c"/>
<int32_t name="indiv_choice"/> <compound name="indiv_choice" type-name='uniform_indiv_choice'/>
<int16_t name="mattype" ref-target='material' aux-value='$$.matindex'/> <int16_t name="mattype" ref-target='material' aux-value='$$.matindex'/>
<int32_t name="matindex"/> <int32_t name="matindex"/>
<int16_t name="material_class"/> <enum base-type='int16_t' name="material_class" type-name='uniform_material_class'/>
</pointer> </pointer>
</stl-vector> </stl-vector>
</static-array> </static-array>

@ -417,12 +417,16 @@
<stl-vector name='work_units'> <stl-vector name='work_units'>
<int32_t ref-target='unit'/> <int32_t ref-target='unit'/>
</stl-vector> </stl-vector>
<stl-vector name='hunter_ammunition'> <stl-vector name='hunter_ammunition'>
<pointer type-name='squad_ammo_spec'/> <pointer type-name='squad_ammo_spec'/>
</stl-vector> </stl-vector>
<stl-vector name='ammo_items'>
<stl-vector name='unk6c74'/> <int32_t ref-target='item'/>
<stl-vector name='unk6c80'/> </stl-vector>
<stl-vector name='ammo_units'>
<int32_t ref-target='unit'/>
</stl-vector>
</compound> </compound>
<compound name='main'> <compound name='main'>

@ -171,7 +171,7 @@
<int8_t name='unk_ec'/> <int8_t name='unk_ec'/>
<int32_t name='unk_f0'/> <int32_t name='unk_f0'/>
<int16_t name='unk_f4'/> <int16_t name='unk_f4'/>
<int16_t name='unused_f6'/> <padding size='2'/>
</compound> </compound>
<uint16_t name='caste' ref-target='caste_raw' aux-value='$$.race'/> <uint16_t name='caste' ref-target='caste_raw' aux-value='$$.race'/>
@ -207,28 +207,23 @@
<int32_t name='squad_position'/> <int32_t name='squad_position'/>
<int32_t name='unk_170'/> <int32_t name='unk_170'/>
<int32_t name='draft_timer'/> <int32_t name='draft_timer'/>
<int16_t name='is_military'
comment='if dead, may be military, but not in squad'/>
<stl-vector name='uniform_civilian'> <int16_t name='cur_uniform'/>
<int32_t ref-target='item'/>
</stl-vector> <static-array name='uniforms' count='4'>
<stl-vector name='uniform_military'> <stl-vector>
<int32_t ref-target='item'/> <int32_t ref-target='item'/>
</stl-vector> </stl-vector>
<stl-vector name='uniform_unk1'> </static-array>
<int32_t ref-target='item'/>
</stl-vector>
<stl-vector name='uniform_unk2'>
<int32_t ref-target='item'/>
</stl-vector>
<int32_t name='pickup_equipment_bit'/> <bitfield name='pickup_flags'>
<flag-bit name='update'/>
</bitfield>
<stl-vector name='uniform_unk3'> <stl-vector name='uniform_pickup'>
<int32_t ref-target='item'/> <int32_t ref-target='item'/>
</stl-vector> </stl-vector>
<stl-vector name='uniform_alien' comment='for goblins, elves'> <stl-vector name='uniform_drop'>
<int32_t ref-target='item'/> <int32_t ref-target='item'/>
</stl-vector> </stl-vector>
@ -596,7 +591,7 @@
<struct-type type-name='unit_misc_trait' key-field='id'> <struct-type type-name='unit_misc_trait' key-field='id'>
<enum base-type='int16_t' name='id'> <enum base-type='int16_t' name='id'>
<enum-item name='ClaimedRecently' value='12'/> <enum-item name='ClaimCooldown' value='12'/>
<enum-item name='WantsDrink'/> <enum-item name='WantsDrink'/>
<enum-item name='LikesOutdoors'/> <enum-item name='LikesOutdoors'/>
<enum-item name='Hardened'/> <enum-item name='Hardened'/>
@ -674,7 +669,7 @@
</enum> </enum>
<compound is-union='true'> <compound is-union='true'>
<enum base-type='int16_t' name="item_type" type-name='item_type'/> <int16_t name="item_type" refers-to='(enum-to-key $item_type $)'/>
<int16_t name='creature_id' ref-target='creature_raw'/> <int16_t name='creature_id' ref-target='creature_raw'/>
<int16_t name='color_id' refers-to='$global.world.raws.color_words[$]'/> <int16_t name='color_id' refers-to='$global.world.raws.color_words[$]'/>
<int16_t name='shape_id' refers-to='$global.world.raws.shape_words[$]'/> <int16_t name='shape_id' refers-to='$global.world.raws.shape_words[$]'/>

@ -11,6 +11,19 @@
<pointer name='parent' type-name='viewscreen'/> <pointer name='parent' type-name='viewscreen'/>
<enum base-type='int8_t' name='breakdown_level' type-name='interface_breakdown_types'/> <enum base-type='int8_t' name='breakdown_level' type-name='interface_breakdown_types'/>
<int8_t name='option_key_pressed'/> <int8_t name='option_key_pressed'/>
<virtual-methods>
<vmethod name='feed'> <pointer name='events'/> </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='bool' name='movies_okay'/>
<vmethod ret-type='bool' name='is_option_screen'/>
<vmethod ret-type='bool' name='is_save_screen'/>
<vmethod is-destructor='true'/>
<vmethod ret-type='bool' name='key_conflict'> <int32_t/> </vmethod>
</virtual-methods>
</class-type> </class-type>
<struct-type type-name='interface'> <struct-type type-name='interface'>

@ -127,6 +127,35 @@
<stl-vector name="unk_19c"/> <stl-vector name="unk_19c"/>
</struct-type> </struct-type>
<struct-type type-name='world_underground_region'>
<int16_t name='unk1'/>
<compound name='name' type-name='language_name'/>
<int32_t name="unk_70"/>
<int16_t name="unk_74"/>
<int16_t name="unk_76"/>
<int16_t name="unk_78"/>
<int16_t name="unk_7a"/>
<int32_t name="unk_7c"/>
<int16_t name="unk_80"/>
<int16_t name="unk_82"/>
<int16_t name="unk_84"/>
<padding name="unk_86" size="2"/>
<stl-vector name="unk_88">
<int16_t/>
</stl-vector>
<stl-vector name="unk_98">
<int16_t/>
</stl-vector>
<stl-vector name="unk_a8">
<int16_t/>
</stl-vector>
<stl-vector name="unk_b8">
<int16_t/>
</stl-vector>
<stl-vector name="unk_c8"/>
<pointer name="feature_init"/>
</struct-type>
<struct-type type-name='world_data'> <struct-type type-name='world_data'>
<compound name='name' type-name='language_name' comment='name of the world'/> <compound name='name' type-name='language_name' comment='name of the world'/>
@ -179,10 +208,10 @@
<int32_t name='world_width2'/> <int32_t name='world_width2'/>
<int32_t name='world_height2'/> <int32_t name='world_height2'/>
<pointer type-name='uint32_t' is-array='true'/> <pointer type-name='uint32_t' is-array='true' comment='align(width,4)*height'/>
<pointer type-name='uint32_t' is-array='true'/> <pointer type-name='uint32_t' is-array='true' comment='align(width,4)*height'/>
<pointer type-name='uint32_t' is-array='true'/> <pointer type-name='uint32_t' is-array='true' comment='width*height'/>
<pointer type-name='uint8_t' is-array='true'/> <pointer type-name='uint8_t' is-array='true' comment='align(width,4)*height'/>
<stl-vector name='unk4' type-name='pointer'/> <stl-vector name='unk4' type-name='pointer'/>
@ -276,21 +305,18 @@
</pointer> </pointer>
</stl-vector> </stl-vector>
<stl-vector name="unk_160"> <stl-vector name="islands">
<pointer> <pointer>
<compound name='name' type-name='language_name'/> <compound name='name' type-name='language_name'/>
</pointer> </pointer>
</stl-vector> </stl-vector>
<stl-vector name="unk_170"> <stl-vector name="regions">
<pointer> <pointer>
<compound name='name' type-name='language_name'/> <compound name='name' type-name='language_name'/>
</pointer> </pointer>
</stl-vector> </stl-vector>
<stl-vector name="unk_180"> <stl-vector name="underground_regions">
<pointer> <pointer type-name='world_underground_region'/>
<int16_t name='unk1'/>
<compound name='name' type-name='language_name'/>
</pointer>
</stl-vector> </stl-vector>
<stl-vector name="unk_190"> <stl-vector name="unk_190">
<pointer> <pointer>
@ -320,32 +346,89 @@
<stl-vector name="unk_1a0"> <stl-vector name="unk_1a0">
<pointer> <pointer>
<compound name='name' type-name='language_name'/> <compound name='name' type-name='language_name'/>
<int16_t name="unk_6c"/>
<int16_t name="unk_6e"/>
<df-flagarray name='flags'/>
<int16_t name="unk_78"/>
</pointer> </pointer>
</stl-vector> </stl-vector>
<stl-vector name="unk_1b0"> <stl-vector name="unk_1b0">
<pointer> <pointer>
<compound name='name' type-name='language_name'/> <compound name='name' type-name='language_name'/>
<stl-vector name="unk_6c">
<int16_t/>
</stl-vector>
<stl-vector name="unk_7c">
<int16_t/>
</stl-vector>
<stl-vector name="unk_8c">
<int32_t/>
</stl-vector>
<stl-vector name="unk_9c">
<int16_t/>
</stl-vector>
<stl-vector name="unk_ac">
<int16_t/>
</stl-vector>
<int16_t name="unk_bc"/>
<int16_t name="unk_be"/>
<df-flagarray name='flags'/>
</pointer> </pointer>
</stl-vector> </stl-vector>
<pointer name="unk_1c0"/> <pointer name="unk_1c0"/>
<pointer name="unk_1c4"/> <pointer name="unk_1c4"/>
<padding name="unk_1c8" size="4"/> <padding name="unk_1c8" size="4"/>
<stl-vector name="unk_1cc"/> <stl-vector name="unk_1cc"/>
<pointer name="unk_1dc"/>
<pointer name="unk_1e0"/> <pointer name="unk_1dc" is-array='true'>
<pointer name="unk_1e4"/> <pointer is-array='true'>
<pointer name="unk_1e8"/> <stl-vector/>
<pointer name="unk_1ec"/> </pointer>
<pointer name="unk_1f0"/> </pointer>
<pointer name="unk_1e0" is-array='true'>
<pointer is-array='true'>
<stl-vector/>
</pointer>
</pointer>
<pointer name="unk_1e4" is-array='true'>
<pointer is-array='true'>
<stl-vector/>
</pointer>
</pointer>
<pointer name="unk_1e8" is-array='true'>
<pointer is-array='true'>
<stl-vector/>
</pointer>
</pointer>
<pointer name="unk_1ec" is-array='true'>
<pointer is-array='true'>
<stl-vector/>
</pointer>
</pointer>
<pointer name="unk_1f0" is-array='true'>
<pointer is-array='true'>
<stl-vector/>
</pointer>
</pointer>
<stl-vector name="active_site"> <stl-vector name="active_site">
<pointer type-name='world_site'/> <pointer type-name='world_site'/>
</stl-vector> </stl-vector>
<pointer name="unk_204"/> <pointer name="unk_204" is-array='true'>
<pointer name="unk_208"/> <pointer is-array='true'>
<int32_t name="unk_20c"/> <int16_t name='x'/>
<int16_t name='y'/>
<int32_t name='unk_4'/>
<pointer name='unk_8' type-name='int16_t' is-array='true'/>
<pointer name='unk_c' type-name='int32_t' is-array='true'/>
</pointer>
</pointer>
<df-flagarray name='flags'/>
<stl-vector name="unk_210"/> <stl-vector name="unk_210"/>
<stl-vector name="unk_220"/> <stl-vector name="unk_220"/>
<stl-vector name="unk_230"/> <stl-vector name="unk_230"/>
@ -361,8 +444,27 @@
<padding name="unk_268" size="4"/> <padding name="unk_268" size="4"/>
<int8_t name="unk_26c"/> <int8_t name="unk_26c"/>
<padding name="unk_26d" size="3"/> <padding name="unk_26d" size="3"/>
<padding name="unk_270" size="4"/> <int32_t name="unk_270"/>
<stl-vector name="unk_274"/>
<stl-vector name="unk_274">
<pointer>
<stl-vector name="unk_0">
<pointer type-name="historical_figure"/>
</stl-vector>
<stl-vector name="unk_10">
<pointer>
<int32_t name="unk_0"/>
<int32_t name="unk_4"/>
<int32_t name="unk_8"/>
</pointer>
</stl-vector>
<pointer name="unk_20" type-name="historical_entity"/>
<int32_t name="unk_24"/>
<pointer name="unk_28" type-name="language_name"/>
<int32_t name="unk_2c"/>
<int32_t name="unk_30"/>
</pointer>
</stl-vector>
</struct-type> </struct-type>
</data-definition> </data-definition>

@ -16,8 +16,23 @@
<stl-vector name='unk_108'> <stl-vector name='unk_108'>
<pointer/> <pointer/>
</stl-vector> </stl-vector>
<stl-vector name='unk_114'> <stl-vector name='unk_114'>
<pointer/> <pointer>
<int8_t name='unk_0'/>
<int16_t name="unk_2"/>
<int32_t name="unk_4"/>
<int8_t name="unk_8"/>
<padding name="unk_9" size="3"/>
<int16_t name="unk_c"/>
<int16_t name="unk_e"/>
<int16_t name="unk_10"/>
<int32_t name="unk_14"/>
<int32_t name="unk_18"/>
<int32_t name="unk_1c"/>
<int16_t name="unk_20"/>
</pointer>
</stl-vector> </stl-vector>
-- --