Skip to content
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
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
20 changes: 10 additions & 10 deletions assign-preferences.lua
Original file line number Diff line number Diff line change
Expand Up @@ -29,7 +29,7 @@ end
local function format_preference(pref, index)
print(string.format("Preference #%d:", index))

local pref_type = df.unit_preference.T_type[pref.type]
local pref_type = df.unitpref_type[pref.type]
local description = ""
if pref_type == "LikeMaterial" then
description = "Likes material: " .. dfhack.matinfo.getToken(pref.mattype, pref.matindex)
Expand Down Expand Up @@ -76,7 +76,7 @@ local preference_functions = {
local ret = {}
if mat_info then
ret = { --luacheck:retype
type = df.unit_preference.T_type.LikeMaterial,
type = df.unitpref_type.LikeMaterial,
item_type = -1,
creature_id = -1,
color_id = -1,
Expand Down Expand Up @@ -109,7 +109,7 @@ local preference_functions = {
local index = utils.linear_index(df.global.world.raws.creatures.all, creature_id, "creature_id")
if index then
return {
type = df.unit_preference.T_type.LikeCreature,
type = df.unitpref_type.LikeCreature,
item_type = index,
creature_id = index,
color_id = index,
Expand Down Expand Up @@ -186,7 +186,7 @@ local preference_functions = {

if item_type then
return {
type = df.unit_preference.T_type.LikeFood,
type = df.unitpref_type.LikeFood,
item_type = item_type,
creature_id = item_type,
color_id = item_type,
Expand Down Expand Up @@ -221,7 +221,7 @@ local preference_functions = {
local index = utils.linear_index(df.global.world.raws.creatures.all, creature_id, "creature_id")
if index then
return {
type = df.unit_preference.T_type.HateCreature,
type = df.unitpref_type.HateCreature,
item_type = index,
creature_id = index,
color_id = index,
Expand Down Expand Up @@ -262,7 +262,7 @@ local preference_functions = {
do
if item_type then
return {
type = df.unit_preference.T_type.LikeItem,
type = df.unitpref_type.LikeItem,
item_type = item_type,
creature_id = item_type,
color_id = item_type,
Expand Down Expand Up @@ -297,7 +297,7 @@ local preference_functions = {
local index = utils.linear_index(df.global.world.raws.plants.all, plant_id, "id")
if index then
return {
type = df.unit_preference.T_type.LikePlant,
type = df.unitpref_type.LikePlant,
item_type = index,
creature_id = index,
color_id = index,
Expand Down Expand Up @@ -330,7 +330,7 @@ local preference_functions = {
local index = utils.linear_index(df.global.world.raws.plants.all, plant_id, "id")
if index then
return {
type = df.unit_preference.T_type.LikeTree,
type = df.unitpref_type.LikeTree,
item_type = index,
creature_id = index,
color_id = index,
Expand Down Expand Up @@ -364,7 +364,7 @@ local preference_functions = {
local _, found, index = utils.binsearch(df.global.world.raws.descriptors.colors, color_name, "id")
if found then
return {
type = df.unit_preference.T_type.LikeColor,
type = df.unitpref_type.LikeColor,
item_type = index,
creature_id = index,
color_id = index,
Expand Down Expand Up @@ -397,7 +397,7 @@ local preference_functions = {
local index, _ = utils.linear_index(df.global.world.raws.descriptors.shapes, shape_name, "id")
if index then
return {
type = df.unit_preference.T_type.LikeShape,
type = df.unitpref_type.LikeShape,
item_type = index,
creature_id = index,
color_id = index,
Expand Down
2 changes: 1 addition & 1 deletion autocheese.lua
Original file line number Diff line number Diff line change
Expand Up @@ -18,7 +18,7 @@ function makeCheese(barrel, workshop)
jitem.flags1.milk = true
job.job_items.elements:insert('#', jitem)

if not dfhack.job.attachJobItem(job, barrel, df.job_item_ref.T_role.Reagent, 0, -1) then
if not dfhack.job.attachJobItem(job, barrel, df.job_role_type.Reagent, 0, -1) then
dfhack.error('could not attach item')
end

Expand Down
2 changes: 1 addition & 1 deletion deep-embark.lua
Original file line number Diff line number Diff line change
Expand Up @@ -137,7 +137,7 @@ end
function moveEmbarkStuff(selectedBlock, embarkTiles)
local spawnPosCentre
for _, hotkey in ipairs(df.global.plotinfo.main.hotkeys) do
if hotkey.cmd == df.ui_hotkey.T_cmd.Zoom then -- the preset hotkey is centred around the spawn point
if hotkey.cmd == df.hotkey_type.Zoom then -- the preset hotkey is centred around the spawn point
spawnPosCentre = xyz2pos(hotkey.x, hotkey.y, hotkey.z)
hotkey:assign(embarkTiles[math.random(1, #embarkTiles)]) -- set the hotkey to the new spawn point
break
Expand Down
32 changes: 16 additions & 16 deletions devel/export-dt-ini.lua
Copy link
Member Author

Choose a reason for hiding this comment

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

Copy link
Contributor

Choose a reason for hiding this comment

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

I did not test the script, but I did try my ini generator with the new structures. There were more changes required:

--- ini/0.50.13.xml	2024-11-01 17:17:09.450090062 +0100
+++ ini/0.51.04.xml	2025-02-10 14:51:31.798059964 +0100
@@ -53,7 +53,7 @@
 		<global name="shapes_vector" object="world.raws.descriptors.shapes" />
 		<global name="reactions_vector" object="world.raws.reactions" />
 		<global name="base_materials" object="world.raws.mat_table.builtin" />
-		<global name="all_syndromes_vector" object="world.raws.syndromes.all" />
+		<global name="all_syndromes_vector" object="world.raws.mat_table.syndromes.all" />
 		<global name="events_vector" object="world.history.events" />
 		<global name="historical_figures_vector" object="world.history.figures" />
 		<offset name="world_site_type" type="world_site" member="type" />
@@ -191,14 +191,14 @@
 		<offset name="other_armor_properties" type="itemdef_helmst" member="props" />
 	</section>
 	<section name="material_offsets">
-		<offset name="solid_name" type="material_common" member="state_name[Solid]" />
-		<offset name="liquid_name" type="material_common" member="state_name[Liquid]" />
-		<offset name="gas_name" type="material_common" member="state_name[Gas]" />
-		<offset name="powder_name" type="material_common" member="state_name[Powder]" />
-		<offset name="paste_name" type="material_common" member="state_name[Paste]" />
-		<offset name="pressed_name" type="material_common" member="state_name[Pressed]" />
-		<offset name="flags" type="material_common" member="flags" />
-		<offset name="reaction_class" type="material_common" member="reaction_class" />
+		<offset name="solid_name" type="material" member="state_name[Solid]" />
+		<offset name="liquid_name" type="material" member="state_name[Liquid]" />
+		<offset name="gas_name" type="material" member="state_name[Gas]" />
+		<offset name="powder_name" type="material" member="state_name[Powder]" />
+		<offset name="paste_name" type="material" member="state_name[Paste]" />
+		<offset name="pressed_name" type="material" member="state_name[Pressed]" />
+		<offset name="flags" type="material" member="flags" />
+		<offset name="reaction_class" type="material" member="reaction_class" />
 		<offset name="prefix" type="material" member="prefix" />
 		<offset name="inorganic_materials_vector" type="inorganic_raw" member="material" />
 		<offset name="inorganic_flags" type="inorganic_raw" member="flags" />
@@ -257,7 +257,7 @@
 		<offset name="size_base" type="unit" member="body.size_info.size_base" />
 		<offset name="curse" type="unit" member="curse.name" />
 		<offset name="curse_add_flags1" type="unit" member="curse.add_tags1" />
-		<offset name="turn_count" type="unit" member="curse.time_on_site" />
+		<offset name="turn_count" type="unit" member="curse.interaction.time_on_site" />
 		<offset name="souls" type="unit" member="status.souls" />
 		<offset name="states" type="unit" member="status.misc_traits" />
 		<offset name="labors" type="unit" member="status.labors" />
@@ -273,7 +273,7 @@
 		<offset name="limb_counters" type="unit" member="status2.limbs_stand_max" />
 		<offset name="blood" type="unit" member="body.blood_max" />
 		<offset name="body_component_info" type="unit" member="body.components" />
-		<offset name="layer_status_vector" type="body_component_info" member="layer_status" />
+		<offset name="layer_status_vector" type="unit.body.components" member="layer_status" />
 		<offset name="wounds_vector" type="unit" member="body.wounds" />
 		<offset name="mood_skill" type="unit" member="job.mood_skill" />
 		<offset name="used_items_vector" type="unit" member="used_items" />

Original file line number Diff line number Diff line change
Expand Up @@ -201,7 +201,7 @@ address('hist_name',df.historical_figure,'name')
address('id',df.historical_figure,'id')
address('hist_fig_info',df.historical_figure,'info')
address('reputation',df.historical_figure_info,'reputation')
address('current_ident',df.historical_figure_info.T_reputation,'cur_identity')
address('current_ident',df.reputation_profilest,'cur_identity')
address('fake_name',df.identity,'name')
address('fake_birth_year',df.identity,'birth_year')
address('fake_birth_time',df.identity,'birth_second')
Expand Down Expand Up @@ -356,16 +356,16 @@ address('trans_race_vec',df.creature_interaction_effect_body_transformationst,'r

header('unit_wound_offsets')
address('parts',df.unit_wound,'parts')
address('id',df.unit_wound.T_parts,'body_part_id')
address('layer',df.unit_wound.T_parts,'layer_idx')
address('id',df.unit_wound_layerst,'body_part_id')
address('layer',df.unit_wound_layerst,'layer_idx')
address('general_flags',df.unit_wound,'flags')
address('flags1',df.unit_wound.T_parts,'flags1')
address('flags2',df.unit_wound.T_parts,'flags2')
address('effects_vector',df.unit_wound.T_parts,'effect_type')
address('bleeding',df.unit_wound.T_parts,'bleeding')
address('pain',df.unit_wound.T_parts,'pain')
address('cur_pen',df.unit_wound.T_parts,'cur_penetration_perc')
address('max_pen',df.unit_wound.T_parts,'max_penetration_perc')
address('flags1',df.unit_wound_layerst,'flags1')
address('flags2',df.unit_wound_layerst,'flags2')
address('effects_vector',df.unit_wound_layerst,'effect_type')
address('bleeding',df.unit_wound_layerst,'bleeding')
address('pain',df.unit_wound_layerst,'pain')
address('cur_pen',df.unit_wound_layerst,'cur_penetration_perc')
address('max_pen',df.unit_wound_layerst,'max_penetration_perc')

header('soul_details')
address('name',df.unit_soul,'name')
Expand All @@ -377,7 +377,7 @@ address('personality',df.unit_soul,'personality')
address('beliefs',df.unit_personality,'values')
address('emotions',df.unit_personality,'emotions')
address('goals',df.unit_personality,'dreams')
address('goal_realized',df.unit_personality.T_dreams,'flags')
address('goal_realized',df.personality_goalst,'flags')
address('traits',df.unit_personality,'traits')
address('stress_level',df.unit_personality,'stress')
address('needs',df.unit_personality,'needs')
Expand All @@ -387,10 +387,10 @@ address('combat_hardened',df.unit_personality,'combat_hardened')
address('likes_outdoors',df.unit_personality,'likes_outdoors')

header('need_offsets')
address('id',df.unit_personality.T_needs,'id')
address('deity_id',df.unit_personality.T_needs,'deity_id')
address('focus_level',df.unit_personality.T_needs,'focus_level')
address('need_level',df.unit_personality.T_needs,'need_level')
address('id',df.personality_needst,'id')
address('deity_id',df.personality_needst,'deity_id')
address('focus_level',df.personality_needst,'focus_level')
address('need_level',df.personality_needst,'need_level')

header('emotion_offsets')
address('emotion_type',df.personality_moodst,'type')
Expand Down Expand Up @@ -456,7 +456,7 @@ address('knowledge_category',df.activity_event_ponder_topicst,'topic','research'
address('knowledge_flag',df.activity_event_ponder_topicst,'topic','research','flag_data')
address('perf_type',df.activity_event_performancest,'type')
address('perf_participants',df.activity_event_performancest,'participant_actions')
address('perf_histfig',df.activity_event_performancest.T_participant_actions,'histfig_id')
address('perf_histfig',df.performance_rolest,'histfig_id')

header('art_offsets')
address('name',df.poetic_form,'name')
Expand Down
1 change: 0 additions & 1 deletion devel/sc.lua
Original file line number Diff line number Diff line change
Expand Up @@ -175,7 +175,6 @@ local function check_container(obj, path)
if not (obj._type == df.unit_preference and k == 'item_type')
and not (obj._type == df.unit.T_job and k == 'mood_skill')
and not (obj._type == df.unit and k == 'idle_area_type')
and not (obj._type == df.history_event_body_abusedst.T_props)
and not (field._type == df.skill_rating)
and field.value >= -1 and field.value < 1024 then
local key = tostring(obj._type) .. '.' .. k .. tostring(field.value)
Expand Down
8 changes: 4 additions & 4 deletions diplomacy.lua
Original file line number Diff line number Diff line change
Expand Up @@ -7,7 +7,7 @@ local p_civ = df.historical_entity.find(df.global.plotinfo.civ_id)
-- get list of civs:
function get_civ_list()
local civ_list = {}
for _, entity in pairs(p_civ.relations.diplomacy) do
for _, entity in ipairs(p_civ.relations.diplomacy.state) do
local cur_civ_id = entity.group_id
local cur_civ = df.historical_entity.find(cur_civ_id)
if cur_civ.type == 0 then
Expand All @@ -19,7 +19,7 @@ function get_civ_list()
rel_str = "War"
end
matched = "No"
for _, entity2 in pairs(cur_civ.relations.diplomacy) do
for _, entity2 in ipairs(cur_civ.relations.diplomacy.state) do
if entity2.group_id == p_civ_id and entity2.relation == entity.relation then
matched = "Yes"
end
Expand Down Expand Up @@ -51,12 +51,12 @@ end
-- change relation:
function change_relation(civ_id, relation)
print("Changing relation with " .. civ_id .. " to " .. (relation == 0 and "Peace" or "War"))
for _, entity in pairs(p_civ.relations.diplomacy) do
for _, entity in ipairs(p_civ.relations.diplomacy.state) do
local cur_civ_id = entity.group_id
local cur_civ = df.historical_entity.find(cur_civ_id)
if cur_civ.type == 0 and cur_civ_id == civ_id then
entity.relation = relation
for _, entity2 in pairs(cur_civ.relations.diplomacy) do
for _, entity2 in pairs(cur_civ.relations.diplomacy.state) do
if entity2.group_id == p_civ_id then
entity2.relation = relation
end
Expand Down
2 changes: 1 addition & 1 deletion docs/modtools/pref-edit.rst
Original file line number Diff line number Diff line change
Expand Up @@ -34,7 +34,7 @@ Valid filters:
Include one of these to describe what the id argument represents.
- ``-type <PREFERENCE TYPE>``:
This describes the type of the preference. Can be entered either using the numerical ID or text id.
Run ``lua @df.unit_preference.T_type`` for a full list of valid values.
Run ``lua @df.unitpref_type`` for a full list of valid values.
- ``-subtype <ID>``:
The value for an item's subtype
- ``-material <ID>``:
Expand Down
14 changes: 7 additions & 7 deletions exportlegends.lua
Original file line number Diff line number Diff line change
Expand Up @@ -717,7 +717,7 @@ local function export_more_legends_xml()
file:write("\t\t<"..k..">"..escape_xml(dfhack.df2utf(df.creature_raw.find(detailV).name[0])).."</"..k..">\n")
end
elseif df.history_event_body_abusedst:is_instance(event) and (k == "abuse_data") then
if event.abuse_type == df.history_event_body_abusedst.T_abuse_type.Impaled then
if event.abuse_type == df.body_abuse_method_type.Impaled then
file:write("\t\t<item_type>"..tostring(df_enums.item_type[event.abuse_data.Impaled.item_type]):lower().."</item_type>\n")
file:write("\t\t<item_subtype>"..getItemSubTypeName(event.abuse_data.Impaled.item_type,event.abuse_data.Impaled.item_subtype).."</item_subtype>\n")
if (event.abuse_data.Impaled.mat_type > -1) then
Expand All @@ -728,25 +728,25 @@ local function export_more_legends_xml()
file:write("\t\t<item_mat>"..dfhack.df2utf(dfhack.matinfo.toString(dfhack.matinfo.decode(event.abuse_data.Impaled.mat_type, event.abuse_data.Impaled.mat_index))).."</item_mat>\n")
end
end
elseif event.abuse_type == df.history_event_body_abusedst.T_abuse_type.Piled then
local val = df.history_event_body_abusedst.T_abuse_data.T_Piled.T_pile_type [event.abuse_data.Piled.pile_type]
elseif event.abuse_type == df.body_abuse_method_type.Piled then
local val = df.body_abuse_sculpture_type [event.abuse_data.Piled.pile_type]
if not val then
file:write("\t\t<pile_type>unknown "..tostring(event.abuse_data.Piled.pile_type).."</pile_type>\n")
else
file:write("\t\t<pile_type>"..tostring(val):lower().."</pile_type>\n")
end
elseif event.abuse_type == df.history_event_body_abusedst.T_abuse_type.Flayed then
elseif event.abuse_type == df.body_abuse_method_type.Flayed then
file:write("\t\t<structure>"..tostring(event.abuse_data.Flayed.structure).."</structure>\n")
elseif event.abuse_type == df.history_event_body_abusedst.T_abuse_type.Hung then
elseif event.abuse_type == df.body_abuse_method_type.Hung then
file:write("\t\t<tree>"..tostring(event.abuse_data.Hung.tree).."</tree>\n")
if (dfhack.matinfo.decode(event.abuse_data.Hung.mat_type, event.abuse_data.Hung.mat_index) == nil) then
file:write("\t\t<mat_type>"..event.abuse_data.Hung.mat_type.."</mat_type>\n")
file:write("\t\t<mat_index>"..event.abuse_data.Hung.mat_index.."</mat_index>\n")
else
file:write("\t\t<item_mat>"..dfhack.df2utf(dfhack.matinfo.toString(dfhack.matinfo.decode(event.abuse_data.Hung.mat_type, event.abuse_data.Hung.mat_index))).."</item_mat>\n")
end
elseif event.abuse_type == df.history_event_body_abusedst.T_abuse_type.Mutilated then -- For completeness. No fields
elseif event.abuse_type == df.history_event_body_abusedst.T_abuse_type.Animated then
elseif event.abuse_type == df.body_abuse_method_type.Mutilated then -- For completeness. No fields
elseif event.abuse_type == df.body_abuse_method_type.Animated then
file:write("\t\t<interaction>"..tostring(event.abuse_data.Animated.interaction).."</interaction>\n")
end
elseif df.history_event_assume_identityst:is_instance(event) and k == "identity" then
Expand Down
2 changes: 1 addition & 1 deletion fix/civil-war.lua
Original file line number Diff line number Diff line change
Expand Up @@ -3,7 +3,7 @@
local civ = df.historical_entity.find(df.global.plotinfo.civ_id)

local fixed = false
for _, entity in pairs(civ.relations.diplomacy) do
for _, entity in ipairs(civ.relations.diplomacy.state) do
if entity.group_id == civ.id and entity.relation > 0 then
entity.relation = 0
fixed = true
Expand Down
14 changes: 7 additions & 7 deletions gui/advfort.lua
Original file line number Diff line number Diff line change
Expand Up @@ -837,8 +837,8 @@ end
function EnumItems_with_settings( args )
if settings.check_inv then
return EnumItems{pos=args.from_pos,unit=args.unit,
inv={[df.unit_inventory_item.T_mode.Hauled]=settings.use_worn,[df.unit_inventory_item.T_mode.Worn]=settings.use_worn,
[df.unit_inventory_item.T_mode.Weapon]=settings.use_worn,},deep=true}
inv={[df.inv_item_role_type.Hauled]=settings.use_worn,[df.inv_item_role_type.Worn]=settings.use_worn,
[df.inv_item_role_type.Weapon]=settings.use_worn,},deep=true}
else
return EnumItems{pos=args.from_pos}
end
Expand Down Expand Up @@ -872,7 +872,7 @@ function find_suitable_items(job,items,job_items)
if not settings.gui_item_select then
if (item_counts[job_id]>0 and item_suitable) or settings.build_by_items then
--cur_item.flags.in_job=true
job.items:insert("#",{new=true,item=cur_item,role=df.job_item_ref.T_role.Reagent,job_item_idx=job_id})
job.items:insert("#",{new=true,item=cur_item,role=df.job_role_type.Reagent,job_item_idx=job_id})
item_counts[job_id]=item_counts[job_id]-cur_item:getTotalDimension()
--print(string.format("item added, job_item_id=%d, item %s, quantity left=%d",job_id,tostring(cur_item),item_counts[job_id]))
used_item_id[cur_item.id]=true
Expand Down Expand Up @@ -1021,8 +1021,8 @@ end
-- print("AAA FAILED!")
-- return false
-- end
-- args.job.items[0].role=df.job_item_ref.T_role.LinkToTarget
-- args.job.items[1].role=df.job_item_ref.T_role.LinkToTrigger
-- args.job.items[0].role=df.job_role_type.LinkToTarget
-- args.job.items[1].role=df.job_role_type.LinkToTrigger
-- end
function fake_linking(lever,building,slots)
local item1=slots[1].items[1]
Expand Down Expand Up @@ -1331,8 +1331,8 @@ end
function usetool:openPutWindow(building)
local adv=df.global.world.units.active[0]
local items=EnumItems{pos=adv.pos,unit=adv,
inv={[df.unit_inventory_item.T_mode.Hauled]=true,--[df.unit_inventory_item.T_mode.Worn]=true,
[df.unit_inventory_item.T_mode.Weapon]=true,},deep=true}
inv={[df.inv_item_role_type.Hauled]=true,--[df.inv_item_role_type.Worn]=true,
[df.inv_item_role_type.Weapon]=true,},deep=true}
local choices={}
for k,v in pairs(items) do
table.insert(choices,{text=dfhack.items.getDescription(v,0),item=v})
Expand Down
2 changes: 1 addition & 1 deletion gui/civ-alert.lua
Original file line number Diff line number Diff line change
Expand Up @@ -9,7 +9,7 @@ local widgets = require('gui.widgets')
local function get_civ_alert()
local list = df.global.plotinfo.alerts.list
while #list < 2 do
local list_item = df.plotinfost.T_alerts.T_list:new()
local list_item = df.alert_statest:new()
list_item.id = df.global.plotinfo.alerts.next_id
df.global.plotinfo.alerts.next_id = df.global.plotinfo.alerts.next_id + 1
list_item.name = 'civ-alert'
Expand Down
2 changes: 1 addition & 1 deletion gui/notify.lua
Original file line number Diff line number Diff line change
Expand Up @@ -161,7 +161,7 @@ AdvNotifyOverlay.ATTRS{

function AdvNotifyOverlay:set_width()
local desired_width = 13
if df.global.adventure.player_control_state ~= df.adventurest.T_player_control_state.TAKING_INPUT then
if df.global.adventure.player_control_state ~= df.adventure_game_loop_type.TAKING_INPUT then
local offset = self.frame_parent_rect.width > 137 and 26 or
(self.frame_parent_rect.width+1) // 2 - 43
desired_width = self.frame_parent_rect.width // 2 + offset
Expand Down
2 changes: 1 addition & 1 deletion gui/sandbox.lua
Original file line number Diff line number Diff line change
Expand Up @@ -448,7 +448,7 @@ local function init_arena()
if #list > list_size then
utils.assign(list[list_size], element)
else
element.new = df.embark_item_choice.T_list
element.new = df.itinfost
list:insert('#', element)
end
list_size = list_size + 1
Expand Down
4 changes: 2 additions & 2 deletions immortal-cravings.lua
Original file line number Diff line number Diff line change
Expand Up @@ -74,7 +74,7 @@ local function goDrink(unit)
job.flags.special = true
local dx, dy, dz = dfhack.items.getPosition(drink)
job.pos = xyz2pos(dx, dy, dz)
if not dfhack.job.attachJobItem(job, drink, df.job_item_ref.T_role.Other, -1, -1) then
if not dfhack.job.attachJobItem(job, drink, df.job_role_type.Other, -1, -1) then
error('could not attach drink')
return
end
Expand All @@ -96,7 +96,7 @@ local function goEat(unit)
job.flags.special = true
local dx, dy, dz = dfhack.items.getPosition(meal)
job.pos = xyz2pos(dx, dy, dz)
if not dfhack.job.attachJobItem(job, meal, df.job_item_ref.T_role.Other, -1, -1) then
if not dfhack.job.attachJobItem(job, meal, df.job_role_type.Other, -1, -1) then
error('could not attach meal')
return
end
Expand Down
Loading
Loading