Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

47 #400

Merged
merged 44 commits into from
Aug 6, 2020
Merged

47 #400

Show file tree
Hide file tree
Changes from 32 commits
Commits
Show all changes
44 commits
Select commit Hold shift + click to select a range
642955d
Merge branch 'master' of https://github.com/DFHack/df-structures into 47
PatrikLundell Apr 15, 2020
bce7e34
further identification
PatrikLundell Apr 22, 2020
e5bdfdb
Merge branch 'master' of https://github.com/DFHack/df-structures into 47
PatrikLundell Apr 22, 2020
946fe92
minor army_controller adjustments
PatrikLundell Apr 22, 2020
3f5d0c9
additional minor army_controller research
PatrikLundell Apr 26, 2020
d98d680
merge
PatrikLundell Apr 26, 2020
30235b6
corrected botched comment
PatrikLundell Apr 26, 2020
f051d86
another schema validation correction
PatrikLundell Apr 26, 2020
337a393
Merge branch 'master' of https://github.com/DFHack/df-structures into 47
PatrikLundell Apr 26, 2020
d5f952e
sanity, identification, and research
PatrikLundell Apr 30, 2020
cf9aca8
history field identification
PatrikLundell Apr 30, 2020
6e98409
season_type used for cur_season and moved
PatrikLundell Apr 30, 2020
da8e9a7
intrigue and event collection field identification
PatrikLundell May 1, 2020
884a6ad
fixed misspelled attributes
PatrikLundell May 1, 2020
d1d81d1
misaligned identified fields, found enum value
PatrikLundell May 1, 2020
391b8a8
was still misaligned, but found another enum type in the process
PatrikLundell May 1, 2020
4301eca
identified a couple of enum values, general identification
PatrikLundell May 2, 2020
6e841a5
field identification
PatrikLundell May 8, 2020
c55994b
more musical_forms field identification
PatrikLundell May 9, 2020
d1106db
musical_form/scale field identification
PatrikLundell May 10, 2020
b699e98
field identification
PatrikLundell May 12, 2020
8f223a3
merged conflict
PatrikLundell May 12, 2020
a3ab7f3
region_weather fields, some enum values
PatrikLundell May 14, 2020
861ed52
addressed base-type comments
PatrikLundell May 15, 2020
b2df97d
dance form field identification
PatrikLundell May 16, 2020
e0cfb1f
more dance field identification
PatrikLundell May 17, 2020
d849c9b
identified enum value
PatrikLundell May 21, 2020
0d3cb0f
schema limitation work around + fixed syntactic error
PatrikLundell May 22, 2020
b1f5473
second schema limitation work around attempt
PatrikLundell May 22, 2020
bdc4978
merge
PatrikLundell May 22, 2020
c37f1bf
Merge branch 'master' of https://github.com/DFHack/df-structures into 47
PatrikLundell May 29, 2020
f16932f
identity enums identified and picked growths object data named
PatrikLundell May 29, 2020
dd109f1
adapted to comments
PatrikLundell May 29, 2020
41f763c
dead civ flag identified + minor adjustments
PatrikLundell May 31, 2020
2bb7f37
reverted incorrect flag 'identification'
PatrikLundell Jun 2, 2020
56d2d60
named field
PatrikLundell Jun 7, 2020
89452ec
tedious and error prone merge
PatrikLundell Jun 26, 2020
b994d2a
fixed one merge error
PatrikLundell Jun 26, 2020
fa23ca6
Merge master into PatrikLundell/47 (INCOMPLETE) (#400)
lethosor Aug 6, 2020
37d9df8
Manually apply historical_figure_relationships.intrigues changes to l…
lethosor Aug 6, 2020
ef219bf
Merge enums, remove duplicate types
lethosor Aug 6, 2020
e9b1108
Merge master into #400 again
lethosor Aug 6, 2020
6169998
Change historical_figure_relationships.hf_visual.rank back to int16_t
lethosor Aug 6, 2020
546c0fa
Remove season_type (unused, duplicates "season")
lethosor Aug 6, 2020
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
2 changes: 2 additions & 0 deletions changelog.txt
Original file line number Diff line number Diff line change
Expand Up @@ -29,6 +29,7 @@ that repo.
- ``breed``: new struct type
- ``creature_handler``: identified vmethods
- ``crime``: removed fields of ``reports`` that are no longer present
- ``dance_form``: identified most fields
- ``history_event_context``: identified fields
- ``image_set``: new struct type
- ``itemdef_flags``: new enum, with ``GENERATED`` flag
Expand All @@ -37,6 +38,7 @@ that repo.
- ``interrogation_report``: new struct type
- ``justification``: new enum
- ``lever_target_type``: identified ``LeverMechanism`` and ``TargetMechanism`` values
- ``musical_form``: identified fields, including some renames. Also identified fields in ``scale`` and ``rhythm``
- ``region_weather``: new struct type
- ``squad_order_cause_trouble_for_entityst``: identified fields
- ``unit_thought_type``: added several new thought types
Expand Down
611 changes: 439 additions & 172 deletions df.art.xml

Large diffs are not rendered by default.

2 changes: 1 addition & 1 deletion df.entities.xml
Original file line number Diff line number Diff line change
Expand Up @@ -352,7 +352,7 @@
<stl-vector name='unk_v47_5' type-name='int32_t' comment="boolean?"/>
<stl-vector name='unk_v47_6' type-name='int32_t' comment="4 byte data size seen, so not pointer"/>
<stl-vector name='unk_v47_7' type-name='int32_t' comment="4 byte data size seen, so not pointer"/>
<stl-vector name='unk_v47_8'/>
<stl-vector name='unk_v47_8' type-name='int32_t' comment="4 byte data size seen, so not pointer"/>
<int32_t name='unk_v47_9'/>
</struct-type>

Expand Down
12 changes: 11 additions & 1 deletion df.globals.xml
Original file line number Diff line number Diff line change
Expand Up @@ -96,6 +96,13 @@
<enum-item name='NONE'/>
</enum-type>

<enum-type type-name='season_type' base-type='int8_t'>
<enum-item name='Spring'/>
<enum-item name='Summer'/>
<enum-item name='Autumn'/>
<enum-item name='Winter'/>
</enum-type>

<global-object name='gamemode'>
<enum base-type='int32_t' type-name='game_mode'/>
</global-object>
Expand Down Expand Up @@ -246,7 +253,10 @@
<global-object name='cur_year_tick' type-name='int32_t'/>
<global-object name='cur_year_tick_advmode' type-name='int32_t'/>

<global-object name='cur_season' type-name='int8_t'/>
<global-object name='cur_season'>
<enum type-name='season_type' base-type='int8_t'/>
</global-object>
<!-- <global-object name='cur_season' type-name='int8_t'/>-->
<global-object name='cur_season_tick' type-name='int32_t'/>

<global-object name='current_weather'>
Expand Down
763 changes: 445 additions & 318 deletions df.history.xml

Large diffs are not rendered by default.

2 changes: 1 addition & 1 deletion df.items.xml
Original file line number Diff line number Diff line change
Expand Up @@ -1017,7 +1017,7 @@
</class-type>
<class-type type-name='item_plant_growthst' inherits-from='item_actual'>
<int16_t name='subtype'/>
<int32_t/>
<int32_t name='growth_print'/>
<int16_t name='mat_type' ref-target='material' aux-value='$$.mat_index'/>
<int32_t name='mat_index'/>
<int32_t name='rot_timer'/>
Expand Down
260 changes: 130 additions & 130 deletions df.military.xml

Large diffs are not rendered by default.

22 changes: 11 additions & 11 deletions df.ui.xml
Original file line number Diff line number Diff line change
Expand Up @@ -175,14 +175,14 @@
<int8_t name='guard_lack_complained'/>
</compound>

<int32_t/>
<int32_t name='unk_1'/>
<int32_t name='manager_cooldown' comment='0-1008'/>
<int32_t name='bookkeeper_cooldown' comment='0-1008'/>
<int32_t name='bookkeeper_precision'/>
<int16_t name='bookkeeper_settings'/> noble bookkeeper precision: 10/100/1000/10000/all_accurate

<stl-vector name='caravans' pointer-type='caravan_state'/>
<int8_t/>
<int8_t name='unk_2'/>
<int16_t name='fortress_rank'/> outpost/hamlet/village/town/city/metropolis
<int16_t name='progress_population' comment='?'/> (unles that's what the above is)
<int16_t name='progress_trade' comment='?'/>
Expand All @@ -194,8 +194,8 @@
<bool name='ignore_labor_shortage'/>
<bool name='justice_active'/>

<uint16_t init-value='60001'/>
<uint16_t init-value='60001'/>
<uint16_t name='unk_3' init-value='60001'/>
<uint16_t name='unk_4' init-value='60001'/>
<int16_t name='manager_timer'/>
<compound name='becoming_capital'>
<int32_t name='desired_architecture'/>
Expand All @@ -205,7 +205,7 @@
<stl-vector name='currency_value' type-name='int32_t'
index-refers-to='(material-by-id 0 $)'/>
<int32_t name='trees_removed'/>
<int32_t/>
<int32_t name='unk_5'/>
<int32_t name='fortress_age' comment='?; +1 per 10; used in first 2 migrant waves etc'/>
<compound name='tasks' type-name='entity_activity_statistics'/>

Expand Down Expand Up @@ -528,11 +528,11 @@
</compound>

<stl-vector name='petitions' type-name='int32_t' comment='related to agreements'/>
<stl-vector since='v0.47.01'/>
<stl-vector name='unk_6' type-name='int32_t' since='v0.47.01' comment="observed allocating 4 bytes"/>

<stl-vector since='v0.44.01'/>
<stl-vector name='unk_7' since='v0.44.01'/>

<stl-vector since='v0.47.01' comment='related to (job_type)0xf1'>
<stl-vector name='unk_8' since='v0.47.01' comment='related to (job_type)0xf1'>
<pointer>
<int32_t ref-target='item'/>
<int32_t ref-target='historical_figure'/>
Expand Down Expand Up @@ -569,9 +569,9 @@
</pointer>
</stl-vector>

<stl-vector since='v0.47.01'/>
<stl-vector since='v0.47.01'/>
<stl-vector since='v0.47.01'/>
<stl-vector name='unk_9' since='v0.47.01'/>
<stl-vector name='unk_10' since='v0.47.01'/>
<stl-vector name='unk_11' since='v0.47.01'/>

<compound name='main'>
<static-array name='hotkeys' type-name='ui_hotkey' count='16'/>
Expand Down
51 changes: 51 additions & 0 deletions df.units.xml
Original file line number Diff line number Diff line change
Expand Up @@ -2215,6 +2215,7 @@
<enum-item name='NeedWeapons' comment='no longer used'/>
<enum-item name='IsAngry'/>
<enum-item name='IsSad'/>
-- 30
<enum-item/>
<enum-item/>
<enum-item/>
Expand All @@ -2225,6 +2226,7 @@
<enum-item/>
<enum-item/>
<enum-item/>
-- 40
<enum-item/>
<enum-item/>
<enum-item/>
Expand All @@ -2234,6 +2236,55 @@
<enum-item/>
<enum-item/>
<enum-item name='Petition'/>
<enum-item/>
-- 50
<enum-item/>
<enum-item/>
<enum-item/>
<enum-item/>
<enum-item/>
<enum-item/>
<enum-item/>
<enum-item/>
<enum-item/>
<enum-item/>
-- 60
<enum-item/>
<enum-item/>
<enum-item/>
<enum-item/>
<enum-item/>
<enum-item/>
<enum-item/>
<enum-item/>
<enum-item/>
<enum-item/>
-- 70
<enum-item/>
<enum-item/>
<enum-item/>
<enum-item/>
<enum-item/>
<enum-item/>
<enum-item/>
<enum-item/>
<enum-item/>
<enum-item/>
-- 80
<enum-item/>
<enum-item/>
<enum-item/>
<enum-item/>
<enum-item/>
<enum-item/>
<enum-item/>
<enum-item/>
<enum-item/>
<enum-item/>
-- 90
<enum-item/>
<enum-item/>
<enum-item comment="Seen on stressed dorf meeting priest (resulting in yelling at a priest). guild=-1, 'age'=1583 with no reasonable match found (in particular not religion)"/>
</enum>
<enum base-type='int16_t' type-name='guild_id' name="guild"/>
<int32_t name='age'/>
Expand Down
57 changes: 33 additions & 24 deletions df.world-data.xml
Original file line number Diff line number Diff line change
Expand Up @@ -66,7 +66,7 @@
</code-helper>
</int32_t>

<enum base-type='int16_t' name='depth' type-name='layer_type'/>
<enum base-type='int16_t' name='depth' type-name='layer_type' comment="Doesn't look correct. See -1, 0, 41, 172, 508, and 686 with critters visible in all caverns. Some dead, but the dorf on the surface isn't"/>
</struct-type>

<struct-type type-name='local_population'>
Expand Down Expand Up @@ -661,7 +661,7 @@

<struct-type type-name='world_object_data'
instance-vector='$global.world.world_data.object_data' key-field='id'>
<int32_t name="id"/>
<int32_t name='id' comment="World MLT of the data according to: i + x * 16 + k * 16 * world_width + y * 256 * world_width, where (x, y) is the world tile and (i, k) the MLT within it"/>
<stl-vector name="altered_items" type-name='int32_t' comment='world_data_subid'/>
<stl-vector name="offloaded_items">
<pointer>
Expand Down Expand Up @@ -703,18 +703,20 @@
<int32_t name="year_tick"/>

-- v0.40.14:
<stl-vector name='unk_c0' type-name='int16_t' comment="6 bytes allocated seen. Cannot be pointer"/>
<stl-vector name="unk_d0" type-name='int16_t' comment="6 bytes allocated seen. Cannot be pointer"/>
<stl-vector name="unk_e0" type-name='int16_t' comment="6 bytes allocated seen. Cannot be pointer. Seen on the same element, so c0, d0, and e0 may be connected"/>
<stl-vector name="unk_f0"/>
<stl-vector name="unk_100"/>
<stl-vector name="unk_110"/>
<compound name='picked_growths' comment="also includes 'automatically picked' i.e. fallen fruit that becomes item_spatter">
Copy link
Member

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Might be good to move the version into a since attribute:

Suggested change
<compound name='picked_growths' comment="also includes 'automatically picked' i.e. fallen fruit that becomes item_spatter">
<compound name='picked_growths' since='v0.40.14' comment="also includes 'automatically picked' i.e. fallen fruit that becomes item_spatter">

<stl-vector name='x' type-name='int16_t' comment="within the MLT"/>
<stl-vector name='y' type-name='int16_t' comment="within the MLT"/>
<stl-vector name='z' type-name='int16_t' comment="uncertain coordinate system. 100 = surface on my flat embark, 101 in the air, while the normal coordinates don't go that high"/>
Copy link
Member

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Does it match either of the coordinates on the right edge of the screen?

Copy link
Contributor Author

@PatrikLundell PatrikLundell May 29, 2020

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

No, it didn't match any of those.

Edit: Correction it does indeed seem to match the lower value, which looks like the Elevation of the tile (not sure why I did see a different value there previously). I don't know how to translate from Elevation to whatever format is used elsewhere, though, but regardless, the comment should be updated.

<stl-vector name='subtype' type-name='int32_t' comment="subtype of the growth within the raws of the implicit plant"/>
<stl-vector name='density' type-name='int32_t' comment="unknown why the raw density field is placed here, as there's nothing left"/>
Copy link
Member

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Perhaps this allows for partial harvests of extremely dense growths, so you can pick the rest of it later.

Copy link
Contributor Author

@PatrikLundell PatrikLundell May 29, 2020

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Possibly, although I've seen only 1, possibly 2, and 1000 here. If your idea is correct we'd briefly see something in between 2 and 1000 for trees, but that would require a bit of luck (or care) with the timing.
I haven't seen anything indicating a gradual picking graphically, but the "graphics" might not show the full picture, and I haven't studied fruit picking for hours...

Edit: I've run a callback script that checks these fields every frame, and it hasn't registered a single case of a density value in the range 3 - 999, which ought to happen while dorfs are vigorously picking fruit (at least the durians and olives had a raw density value of 1000).

Copy link
Member

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

It's possible that it only happens when gathering items in Adventurer mode - I'd try it myself, but I don't have a script handy for finding the correct object_data entry for my current location.

Copy link
Contributor Author

@PatrikLundell PatrikLundell May 30, 2020

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

  local embark_x = df.global.world.world_data.region_details [0].pos.x
  local embark_y = df.global.world.world_data.region_details [0].pos.y
  local embark_min_x, embark_max_x, embark_min_y, embark_max_y
  local object_id
  
  for i = 0, 15 do
    for k = 0, 15 do
      if df.global.world.world_data.region_details [0].biome [i] [k] >= 48 then
        if not embark_min_x then
          embark_min_x = i
        end
        
        embark_max_x = i
        
        if not embark_min_y then
          embark_min_y = k
        end
        
        embark_max_y = k

        object_id = i + embark_x * 16 + k * 16 * df.global.world.world_data.world_width + embark_y * 256 * df.global.world.world_data.world_width
        dfhack.println (df.world_object_data.find (object_id), object_id)        
      end
    end
  end

This snippet gets the object ids for an embark. It obviously would have to be adapted to adventurer mode, where I guess the region_details [0] part remains the same, but there'd have to be some other logic to find the current MLT. I'm rather unfamiliar with adventurer mode, though.

Copy link
Member

@quietust quietust May 30, 2020

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

In Adventurer mode, region_details[4] is the one that contained >=48 biome values (possibly because it corresponded to the town I started in), but none of the calculated object_id values corresponded to existing world_object_data records.

I tried a more brute-force approach and simply searched through all records to find ones with non-empty picked_growths lists, and it looks like Adventurer mode just doesn't use them at all - no matter how many finger limes I picked from a nearby tree, all of those lists remained empty.

It's possible Toady added the ability to handle partial harvests but just never finished implementing it - perhaps in a later version, dwarves won't harvest the entire tile at once.

Did you only monitor those values while dwarves were harvesting, or did you also check while growths were falling off and landing on the ground as spatters?

Copy link
Contributor Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Brute force is what I've used mostly, until trying a callback every frame, where the frame rate dropped to 28 even when accessing only the appropriate entries. It's odd, however, that different structures would be used for the same purpose in Adventurer mode and Fortress mode, as I assume the trees actually were picked visually (and not possible to pick indefinitely).

A fruit tree density of 1000 looks like some kind of max value rather than a sensible one, when shrubs tend to have a value of 1, so it might be that partial picking was waiting for the agriculture overhaul.

Have you used tools to look at what code Adventurer mode picking uses? It might be something different that uses different data structures.

<stl-vector name='year' type-name='int32_t' comment="4 bytes allocated seen. Cannot be pointer. Seen on the same element, so f0, 100, and 110 may be connected"/>
quietust marked this conversation as resolved.
Show resolved Hide resolved
</compound>

-- v0.43.01
<stl-vector name='unk_v43_1'/>
<stl-vector name='unk_v43_2'/>
<stl-vector name='unk_v43_3'/>
<stl-vector name='unk_v43_4'/>
<stl-vector name='unk_v43_1' type-name='int16_t' comment="2 bytes allocated seen. Cannot be pointer"/>
<stl-vector name='unk_v43_2' type-name='int16_t' comment="2 bytes allocated seen. Cannot be pointer"/>
<stl-vector name='unk_v43_3' type-name='int16_t' comment="2 bytes allocated seen. Cannot be pointer"/>
<stl-vector name='unk_v43_4' type-name='int32_t' comment="4 bytes allocated seen. Cannot be pointer"/>
</struct-type>

<enum-type type-name='mountain_peak_flags'>
Expand Down Expand Up @@ -1017,21 +1019,28 @@
<stl-vector name='event_collections' type-name="int32_t" ref-target='history_event_collection'/>
</struct-type>

<struct-type type-name='region_weather' key-field='id' instance-vector='$global.world.world_data.region_weather'>
<enum-type type-name='region_weather_type' base-type='int32_t'>
<enum-item name='CreepingGas'/>
<enum-item name='CreepingVapor' comment="doesn't seem to be generated by DF, but appears if hacked"/>
<enum-item name='CreepingDust'/>
<enum-item name='FallingMaterial' comment="a.k.a. rain, both blood and syndrome, but not regular"/>
</enum-type>

<struct-type type-name='region_weather' key-field='id' instance-vector='$global.world.world_data.region_weather' comment="only evil weather, not the regular kind">
<int32_t name='id'/>
<int32_t name="unk_4"/>
<enum name='type' type-name='region_weather_type' base-type='int32_t' comment="Creeping Gas/Vapor/Dust='cloud' below, FallingMaterial='rain'"/>
<int16_t name='mat_type' ref-target='material' aux-value='$$.mat_index'/>
<int32_t name='mat_index'/>
<int32_t name="unk_10"/>
<int32_t name="region_x"/>
<int32_t name="region_y"/>
<int32_t name="unk_1c" init-value='-30000'/>
<int32_t name="unk_20" init-value='-30000'/>
<int32_t name="unk_24" init-value='-30000'/>
<int32_t name="unk_28"/>
<int32_t name="unk_2c"/>
<int32_t name="unk_30"/>
<int32_t name="unk_34" init-value='-1'/>
<bool name='announcement' comment="Guess based on seeing it appear for an entry when hitting the embark, resulting in an announcement"/>
<int32_t name='region_x' comment="world tile, used with evil rain. Probably uninitialized with cloud"/>
<int32_t name='region_y' comment="world tile, used with evil rain. Probably uninitialized with cloud"/>
<int32_t name='world_in_game_x' init-value='-30000' comment="used with evil clouds, indicating global in-game coordinates"/>
<int32_t name='world_in_game_y' init-value='-30000' comment="used with evil clouds, indicating global in-game coordinates"/>
<int32_t name='world_in_game_z' init-value='-30000' comment="probably never used, as weather appears on the surface"/>
<int32_t name='cloud_x_movement' comment="-1/0/1, indicating the movement per 10 ticks in X direction. Uninitialized for rain"/>
<int32_t name='cloud_y_movement' comment="-1/0/1, indicating the movement per 10 ticks in Y direction. Uninitialized for rain"/>
<int32_t name='remaining_duration' comment="ticks down 1 every 10 ticks. Removed some time after reaching 0. Cloud duration seems to start with a fairly large, but somewhat random value"/>
<int32_t name='region_id' ref-target='world_region' comment="Set for clouds, -1 for rain"/>
</struct-type>
</data-definition>

Expand Down
28 changes: 14 additions & 14 deletions df.world-site.xml
Original file line number Diff line number Diff line change
Expand Up @@ -476,8 +476,8 @@
<int32_t name="race"/>
<int32_t name="entity_id" ref-target='historical_entity' comment="failed to see any connections between these entities and the sites. Might be something else"/>
<int32_t name="unk_c"/>
<int32_t name="unk_10"/>
<int32_t name="unk_14"/>
<int32_t name='unk_10' comment="might be start year"/>
<int32_t name='unk_14' comment="might be end year"/>
<int32_t name="unk_18"/>
<int32_t name="unk_1c"/>
</pointer>
Expand Down Expand Up @@ -560,22 +560,22 @@

<int32_t name='unk_v40_5' comment='constant -1?' since='v0.40.01'/>

<pointer name="unk_188" comment="Seen monster in lair, first settler in site, killed defender in site">
<pointer name="unk_188" comment="Seen monster in lair, first settler in site, killed defender in site, artifact created in player fortress, (player) created artifact claimed by villain for unrelated cave/villain settled in cave">
<stl-vector>
<pointer>
<int32_t comment="looks random"/>
<int32_t init-value='0'/>
<int32_t init-value='0'/>
<int32_t comment="might be year"/>
<int32_t name='unk_2' comment="looks random"/>
<int32_t name='unk_3' init-value='0'/>
<int32_t name='unk_4' init-value='0'/>
<int32_t name='unk_5' comment="might be year"/>
<compound name='unk1'>
<int32_t/>
<int32_t/>
<int32_t name='unk_1'/>
<int32_t name='unk_2' init-value='-1'/>
<int32_t name='hfid' ref-target='historical_figure'/>
<int32_t/>
<int32_t name='artifact_id' ref-target='artifact_record'/>
<int32_t name='site_id' ref-target='world_site'/>
</compound>
<int32_t init-value='-1' comment="1, 2, 3, 11 seen"/>
<int32_t init-value='-1'/>
<int32_t name='unk_6' init-value='-1' comment="1, 2, 3, 5, 11 seen"/>
<int32_t name='unk_7' init-value='-1'/>
</pointer>
</stl-vector>
</pointer>
Expand All @@ -595,8 +595,8 @@
<pointer type-name='historical_figure'/>
<pointer type-name='historical_figure'/>
<pointer type-name='historical_figure'/>
<pointer type-name='historical_figure'/>
<pointer type-name='historical_figure'/>
<pointer type-name='historical_figure' has-bad-pointers='true'/>
<pointer type-name='historical_figure' has-bad-pointers='true'/>
<pointer/>
<pointer/>
<pointer/>
Expand Down
Loading