From 04cc9a2ad881a0619b41812f77a1521b69b63693 Mon Sep 17 00:00:00 2001 From: Robert Janetzko Date: Sun, 10 Jan 2016 21:11:11 +0100 Subject: [PATCH 01/16] export poetic, musical and dance forms, export written content --- scripts/exportlegends.lua | 67 +++++++++++++++++++++++++++++++++++++++ 1 file changed, 67 insertions(+) diff --git a/scripts/exportlegends.lua b/scripts/exportlegends.lua index a0a04d9a2..65e84c28f 100644 --- a/scripts/exportlegends.lua +++ b/scripts/exportlegends.lua @@ -99,6 +99,73 @@ function export_more_legends_xml() file:write(""..dfhack.df2utf(dfhack.TranslateName(df.global.world.world_data.name)).."\n") file:write(""..dfhack.df2utf(dfhack.TranslateName(df.global.world.world_data.name,1)).."\n") + file:write("\n") + for formK, formV in ipairs(df.global.world.poetic_forms.all) do + for k,v in pairs(formV) do print(k,v) end + file:write("\t\n") + file:write("\t\t"..formV.id.."\n") + file:write("\t\t"..dfhack.df2utf(dfhack.TranslateName(formV.name,1)).."\n") + file:write("\t\n") + end + file:write("\n") + + file:write("\n") + for formK, formV in ipairs(df.global.world.poetic_forms.all) do + file:write("\t\n") + file:write("\t\t"..formV.id.."\n") + file:write("\t\t"..dfhack.df2utf(dfhack.TranslateName(formV.name,1)).."\n") + file:write("\t\n") + end + file:write("\n") + + file:write("\n") + for formK, formV in ipairs(df.global.world.dance_forms.all) do + file:write("\t\n") + file:write("\t\t"..formV.id.."\n") + file:write("\t\t"..dfhack.df2utf(dfhack.TranslateName(formV.name,1)).."\n") + file:write("\t\n") + end + file:write("\n") + + file:write("\n") + for wcK, wcV in ipairs(df.global.world.written_contents.all) do + file:write("\t\n") + file:write("\t\t"..wcV.id.."\n") + file:write("\t\t"..wcV.title.."\n") + file:write("\t\t"..wcV.page_start.."\n") + file:write("\t\t"..wcV.page_end.."\n") + for refK, refV in pairs(wcV.refs) do + file:write("\t\t\n") + file:write("\t\t\t"..df.general_ref_type[refV:getType()].."\n") + if refV:getType() == 64 then file:write("\t\t\t"..refV.anon_1.."\n") -- written content + elseif refV:getType() == 0 then file:write("\t\t\t"..refV.artifact_id.."\n") -- artifact + elseif refV:getType() == 42 then file:write("\t\t\t"..refV.entity_id.."\n") -- entity + elseif refV:getType() == 49 then file:write("\t\t\t"..refV.event_id.."\n") -- event + elseif refV:getType() == 51 then file:write("\t\t\t"..refV.site_id.."\n") -- site + elseif refV:getType() == 52 then file:write("\t\t\t"..refV.region_id.."\n") -- region + elseif refV:getType() == 54 then file:write("\t\t\t"..refV.hist_figure_id.."\n") -- hist figure + elseif refV:getType() == 65 then file:write("\t\t\t"..refV.poetic_form_id.."\n") -- poetic form + elseif refV:getType() == 66 then file:write("\t\t\t"..refV.musical_form_id.."\n") -- musical form + elseif refV:getType() == 67 then file:write("\t\t\t"..refV.dance_form_id.."\n") -- dance form + elseif refV:getType() == 47 then -- TODO interaction + elseif refV:getType() == 60 then -- TODO scholar knowledge + elseif refV:getType() == 62 then -- TODO value level + elseif refV:getType() == 63 then -- TODO language + else + print("unknown reference",refV:getType(),df.general_ref_type[refV:getType()]) + --for k,v in pairs(refV) do print(k,v) end + end + file:write("\t\t\n") + end + file:write("\t\t"..(df.written_content_type[wcV.type] or wcV.type).."\n") + for styleK, styleV in pairs(wcV.styles) do + file:write("\t\t\n") end file:write("\t\t"..wcV.author.."\n") file:write("\t\n") From 20f97b0cf9540e7c45b5c5c679cc372f7251be17 Mon Sep 17 00:00:00 2001 From: Robert Janetzko Date: Sun, 10 Jan 2016 22:09:31 +0100 Subject: [PATCH 04/16] bugfix copy & paste musical_forms --- scripts/exportlegends.lua | 3 +-- 1 file changed, 1 insertion(+), 2 deletions(-) diff --git a/scripts/exportlegends.lua b/scripts/exportlegends.lua index d68b02a84..a926936b2 100644 --- a/scripts/exportlegends.lua +++ b/scripts/exportlegends.lua @@ -238,7 +238,6 @@ function export_more_legends_xml() file:write("\n") for formK, formV in ipairs(df.global.world.poetic_forms.all) do - for k,v in pairs(formV) do print(k,v) end file:write("\t\n") file:write("\t\t"..formV.id.."\n") file:write("\t\t"..dfhack.df2utf(dfhack.TranslateName(formV.name,1)).."\n") @@ -247,7 +246,7 @@ function export_more_legends_xml() file:write("\n") file:write("\n") - for formK, formV in ipairs(df.global.world.poetic_forms.all) do + for formK, formV in ipairs(df.global.world.musical_forms.all) do file:write("\t\n") file:write("\t\t"..formV.id.."\n") file:write("\t\t"..dfhack.df2utf(dfhack.TranslateName(formV.name,1)).."\n") From 98991c6b89fe8e83491e71efef83e07a8e4904e4 Mon Sep 17 00:00:00 2001 From: Robert Janetzko Date: Mon, 11 Jan 2016 07:52:19 +0100 Subject: [PATCH 05/16] fixed type checks --- scripts/exportlegends.lua | 34 +++++++++++++++++----------------- 1 file changed, 17 insertions(+), 17 deletions(-) diff --git a/scripts/exportlegends.lua b/scripts/exportlegends.lua index a926936b2..4125786ef 100644 --- a/scripts/exportlegends.lua +++ b/scripts/exportlegends.lua @@ -272,21 +272,21 @@ function export_more_legends_xml() file:write("\t\t"..wcV.page_end.."\n") for refK, refV in pairs(wcV.refs) do file:write("\t\t\n") - file:write("\t\t\t"..df.general_ref_type[refV:getType()].."\n") - if refV:getType() == 64 then file:write("\t\t\t"..refV.anon_1.."\n") -- written content - elseif refV:getType() == 0 then file:write("\t\t\t"..refV.artifact_id.."\n") -- artifact - elseif refV:getType() == 42 then file:write("\t\t\t"..refV.entity_id.."\n") -- entity - elseif refV:getType() == 49 then file:write("\t\t\t"..refV.event_id.."\n") -- event - elseif refV:getType() == 51 then file:write("\t\t\t"..refV.site_id.."\n") -- site - elseif refV:getType() == 52 then file:write("\t\t\t"..refV.region_id.."\n") -- region - elseif refV:getType() == 54 then file:write("\t\t\t"..refV.hist_figure_id.."\n") -- hist figure - elseif refV:getType() == 65 then file:write("\t\t\t"..refV.poetic_form_id.."\n") -- poetic form - elseif refV:getType() == 66 then file:write("\t\t\t"..refV.musical_form_id.."\n") -- musical form - elseif refV:getType() == 67 then file:write("\t\t\t"..refV.dance_form_id.."\n") -- dance form - elseif refV:getType() == 47 then -- TODO interaction - elseif refV:getType() == 60 then -- TODO scholar knowledge - elseif refV:getType() == 62 then -- TODO value level - elseif refV:getType() == 63 then -- TODO language + file:write("\t\t\t"..df.general_ref_type[refV:getType()].."\n") + if refV:getType() == df.general_ref_type.ARTIFACT then file:write("\t\t\t"..refV.artifact_id.."\n") -- artifact + elseif refV:getType() == df.general_ref_type.ENTITY then file:write("\t\t\t"..refV.entity_id.."\n") -- entity + elseif refV:getType() == df.general_ref_type.HISTORICAL_EVENT then file:write("\t\t\t"..refV.event_id.."\n") -- event + elseif refV:getType() == df.general_ref_type.SITE then file:write("\t\t\t"..refV.site_id.."\n") -- site + elseif refV:getType() == df.general_ref_type.SUBREGION then file:write("\t\t\t"..refV.region_id.."\n") -- region + elseif refV:getType() == df.general_ref_type.HISTORICAL_FIGURE then file:write("\t\t\t"..refV.hist_figure_id.."\n") -- hist figure + elseif refV:getType() == df.general_ref_type.WRITTEN_CONTENT then file:write("\t\t\t"..refV.anon_1.."\n") + elseif refV:getType() == df.general_ref_type.POETIC_FORM then file:write("\t\t\t"..refV.poetic_form_id.."\n") -- poetic form + elseif refV:getType() == df.general_ref_type.MUSICAL_FORM then file:write("\t\t\t"..refV.musical_form_id.."\n") -- musical form + elseif refV:getType() == df.general_ref_type.DANCE_FORM then file:write("\t\t\t"..refV.dance_form_id.."\n") -- dance form + elseif refV:getType() == df.general_ref_type.INTERACTION then -- TODO INTERACTION + elseif refV:getType() == df.general_ref_type.KNOWLEDGE_SCHOLAR_FLAG then -- TODO KNOWLEDGE_SCHOLAR_FLAG + elseif refV:getType() == df.general_ref_type.VALUE_LEVEL then -- TODO VALUE_LEVEL + elseif refV:getType() == df.general_ref_type.LANGUAGE then -- TODO LANGUAGE else print("unknown reference",refV:getType(),df.general_ref_type[refV:getType()]) --for k,v in pairs(refV) do print(k,v) end @@ -524,7 +524,7 @@ function export_more_legends_xml() if (thisItem ~= nil) then if (thisItem.flags.artifact == true) then for refk,refv in pairs(thisItem.general_refs) do - if (refv:getType() == 1) then + if (refv:getType() == df.general_ref_type.IS_ARTIFACT) then file:write("\t\t"..refv.artifact_id.."\n") break end @@ -554,7 +554,7 @@ function export_more_legends_xml() if thisItem ~= nil then if (thisItem.flags.artifact == true) then for refk,refv in pairs(thisItem.general_refs) do - if (refv:getType() == 1) then + if (refv:getType() == df.general_ref_type.IS_ARTIFACT) then file:write("\t\t"..refv.artifact_id.."\n") break end From b262d495eca4fbd2fb444de767620afbffc54595 Mon Sep 17 00:00:00 2001 From: Robert Janetzko Date: Mon, 11 Jan 2016 08:12:25 +0100 Subject: [PATCH 06/16] export only custom xml --- scripts/exportlegends.lua | 3 +++ 1 file changed, 3 insertions(+) diff --git a/scripts/exportlegends.lua b/scripts/exportlegends.lua index 4125786ef..6e45b7be9 100644 --- a/scripts/exportlegends.lua +++ b/scripts/exportlegends.lua @@ -13,6 +13,7 @@ The 'info' option exports more data than is possible in vanilla, to a Options: :info: Exports the world/gen info, the legends XML, and a custom XML with more information +:custom Exports a custom XML with more information :sites: Exports all available site maps :maps: Exports all seventeen detailed maps :all: Equivalent to calling all of the above, in that order @@ -667,6 +668,8 @@ if dfhack.gui.getCurFocus() == "legends" or dfhack.gui.getCurFocus() == "dfhack/ wait_for_legends_vs() elseif args[1] == "info" then export_legends_info() + elseif args[1] == "custom" then + export_more_legends_xml() elseif args[1] == "maps" then wait_for_legends_vs() elseif args[1] == "sites" then From 15df508407269a8d947481251c786e8cc6331d0a Mon Sep 17 00:00:00 2001 From: Robert Janetzko Date: Mon, 11 Jan 2016 10:34:58 +0100 Subject: [PATCH 07/16] additional site and structure information --- scripts/exportlegends.lua | 25 ++++++++++++++++++------- 1 file changed, 18 insertions(+), 7 deletions(-) diff --git a/scripts/exportlegends.lua b/scripts/exportlegends.lua index 6e45b7be9..19664402b 100644 --- a/scripts/exportlegends.lua +++ b/scripts/exportlegends.lua @@ -128,28 +128,39 @@ function export_more_legends_xml() file:write("\n") for siteK, siteV in ipairs(df.global.world.world_data.sites) do - if (#siteV.buildings > 0) then - file:write("\t\n") - for k,v in pairs(siteV) do - if (k == "id") then - file:write("\t\t<"..k..">"..tostring(v).."\n") - elseif (k == "buildings") then + file:write("\t\n") + for k,v in pairs(siteV) do + if (k == "id" or k == "civ_id" or k == "cur_owner_id") then + file:write("\t\t<"..k..">"..tostring(v).."\n") + elseif (k == "buildings") then + if (#siteV.buildings > 0) then file:write("\t\t\n") for buildingK, buildingV in ipairs(siteV.buildings) do file:write("\t\t\t\n") file:write("\t\t\t\t"..buildingV.id.."\n") file:write("\t\t\t\t"..df.abstract_building_type[buildingV:getType()]:lower().."\n") if (df.abstract_building_type[buildingV:getType()]:lower() ~= "underworld_spire") then + -- if spire: unk_50 should be name and unk_bc some kind of flag file:write("\t\t\t\t"..dfhack.df2utf(dfhack.TranslateName(buildingV.name, 1)).."\n") file:write("\t\t\t\t"..dfhack.df2utf(dfhack.TranslateName(buildingV.name)).."\n") end + if (buildingV:getType() == df.abstract_building_type.TEMPLE) then + file:write("\t\t\t\t"..buildingV.deity.."\n") + file:write("\t\t\t\t"..buildingV.religion.."\n") + end + if (buildingV:getType() == df.abstract_building_type.DUNGEON) then + file:write("\t\t\t\t"..dfhack.df2utf(dfhack.TranslateName(buildingV.name)).."\n") + end + for inhabitabntK,inhabitabntV in pairs(buildingV.inhabitants) do + file:write("\t\t\t\t"..inhabitabntV.anon_2.."\n") + end file:write("\t\t\t\n") end file:write("\t\t\n") end end - file:write("\t\n") end + file:write("\t\n") end file:write("\n") From 6c3a1008dab83c388adc140b91d5903db089598c Mon Sep 17 00:00:00 2001 From: Robert Janetzko Date: Mon, 11 Jan 2016 11:03:46 +0100 Subject: [PATCH 08/16] additional entity information - positions - members --- scripts/exportlegends.lua | 14 ++++++++++++++ 1 file changed, 14 insertions(+) diff --git a/scripts/exportlegends.lua b/scripts/exportlegends.lua index 19664402b..16e4ac286 100644 --- a/scripts/exportlegends.lua +++ b/scripts/exportlegends.lua @@ -241,6 +241,20 @@ function export_more_legends_xml() end file:write("\t\t\n") end + for positionK,positionV in pairs(entityV.positions.own) do + file:write("\t\t\n") + file:write("\t\t\t"..positionV.id.."\n") + if positionV.name[0] ~= "" then file:write("\t\t\t"..positionV.name[0].."\n") end + if positionV.name_male[0] ~= "" then file:write("\t\t\t"..positionV.name_male[0].."\n") end + if positionV.name_female[0] ~= "" then file:write("\t\t\t"..positionV.name_female[0].."\n") end + if positionV.spouse[0] ~= "" then file:write("\t\t\t"..positionV.spouse[0].."\n") end + if positionV.spouse_male[0] ~= "" then file:write("\t\t\t"..positionV.spouse_male[0].."\n") end + if positionV.spouse_female[0] ~= "" then file:write("\t\t\t"..positionV.spouse_female[0].."\n") end + file:write("\t\t\n") + end + for idx,id in pairs(entityV.histfig_ids) do + file:write("\t\t"..id.."\n") + end for id, link in ipairs(entityV.children) do file:write("\t\t"..link.."\n") end From c5309a930dd10dc8ec5cb23c09fd5e9a2ccb1f92 Mon Sep 17 00:00:00 2001 From: Robert Janetzko Date: Mon, 11 Jan 2016 13:11:14 +0100 Subject: [PATCH 09/16] export entity position assignments to calculate postion on hf entity links --- scripts/exportlegends.lua | 11 ++++++++++- 1 file changed, 10 insertions(+), 1 deletion(-) diff --git a/scripts/exportlegends.lua b/scripts/exportlegends.lua index 16e4ac286..1a686d393 100644 --- a/scripts/exportlegends.lua +++ b/scripts/exportlegends.lua @@ -149,7 +149,7 @@ function export_more_legends_xml() file:write("\t\t\t\t"..buildingV.religion.."\n") end if (buildingV:getType() == df.abstract_building_type.DUNGEON) then - file:write("\t\t\t\t"..dfhack.df2utf(dfhack.TranslateName(buildingV.name)).."\n") + file:write("\t\t\t\t"..buildingV.dungeon_type.."\n") end for inhabitabntK,inhabitabntV in pairs(buildingV.inhabitants) do file:write("\t\t\t\t"..inhabitabntV.anon_2.."\n") @@ -252,6 +252,15 @@ function export_more_legends_xml() if positionV.spouse_female[0] ~= "" then file:write("\t\t\t"..positionV.spouse_female[0].."\n") end file:write("\t\t\n") end + for assignmentK,assignmentV in pairs(entityV.positions.assignments) do + file:write("\t\t\n") + for k, v in pairs(assignmentV) do + if (k == "id" or k == "histfig" or k == "position_id" or k == "squad_id") then + file:write("\t\t\t<"..k..">"..v.."\n") + end + end + file:write("\t\t\n") + end for idx,id in pairs(entityV.histfig_ids) do file:write("\t\t"..id.."\n") end From 8c031aa14ea580ca9900c7cd8e1d06230efa7377 Mon Sep 17 00:00:00 2001 From: Robert Janetzko Date: Mon, 11 Jan 2016 14:20:48 +0100 Subject: [PATCH 10/16] export hf sex and races in readable form --- scripts/exportlegends.lua | 15 +++++++++++++-- 1 file changed, 13 insertions(+), 2 deletions(-) diff --git a/scripts/exportlegends.lua b/scripts/exportlegends.lua index 1a686d393..fbf018fc3 100644 --- a/scripts/exportlegends.lua +++ b/scripts/exportlegends.lua @@ -199,7 +199,15 @@ function export_more_legends_xml() end file:write("\n") - file:write("\n\n") + file:write("\n") + for hfK, hfV in ipairs(df.global.world.history.figures) do + file:write("\t\n") + file:write("\t\t"..hfV.id.."\n") + file:write("\t\t"..hfV.sex.."\n") + if hfV.race >= 0 then file:write("\t\t"..df.global.world.raws.creatures.all[hfV.race].name[0].."\n") end + file:write("\t\n") + end + file:write("\n") file:write("\n") for entityPopK, entityPopV in ipairs(df.global.world.entity_populations) do @@ -347,6 +355,7 @@ function export_more_legends_xml() or event:getType() == df.history_event_type.TOPICAGREEMENT_REJECTED or event:getType() == df.history_event_type.TOPICAGREEMENT_MADE or event:getType() == df.history_event_type.BODY_ABUSED + or event:getType() == df.history_event_type.CHANGE_CREATURE_TYPE or event:getType() == df.history_event_type.CHANGE_HF_JOB or event:getType() == df.history_event_type.CREATED_BUILDING or event:getType() == df.history_event_type.CREATURE_DEVOURED @@ -539,7 +548,7 @@ function export_more_legends_xml() end elseif k == "race" then if v > -1 then - file:write("\t\t"..(df.global.world.raws.creatures.all[v].creature_id):lower().."\n") + file:write("\t\t"..df.global.world.raws.creatures.all[v].name[0].."\n") end elseif k == "caste" then if v > -1 then @@ -621,6 +630,8 @@ function export_more_legends_xml() file:write("\t\t<"..k..">"..df.death_type[v]:lower().."\n") elseif event:getType() == df.history_event_type.CHANGE_HF_JOB and (k == "new_job" or k == "old_job") then file:write("\t\t<"..k..">"..df.profession[v]:lower().."\n") + elseif event:getType() == df.history_event_type.CHANGE_CREATURE_TYPE and (k == "old_race" or k == "new_race") and v >= 0 then + file:write("\t\t<"..k..">"..df.global.world.raws.creatures.all[v].name[0].."\n") else file:write("\t\t<"..k..">"..tostring(v).."\n") end From 5c6bcbdf0f22dc9a11794c1d74dbe27463937b1d Mon Sep 17 00:00:00 2001 From: Robert Janetzko Date: Mon, 11 Jan 2016 14:52:13 +0100 Subject: [PATCH 11/16] fixed line ending --- scripts/exportlegends.lua | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/scripts/exportlegends.lua b/scripts/exportlegends.lua index fbf018fc3..8a153c2b8 100644 --- a/scripts/exportlegends.lua +++ b/scripts/exportlegends.lua @@ -315,7 +315,7 @@ function export_more_legends_xml() file:write("\t\t"..wcV.page_end.."\n") for refK, refV in pairs(wcV.refs) do file:write("\t\t\n") - file:write("\t\t\t"..df.general_ref_type[refV:getType()].."\n") + file:write("\t\t\t"..df.general_ref_type[refV:getType()].."\n") if refV:getType() == df.general_ref_type.ARTIFACT then file:write("\t\t\t"..refV.artifact_id.."\n") -- artifact elseif refV:getType() == df.general_ref_type.ENTITY then file:write("\t\t\t"..refV.entity_id.."\n") -- entity elseif refV:getType() == df.general_ref_type.HISTORICAL_EVENT then file:write("\t\t\t"..refV.event_id.."\n") -- event From 9715211a890742d53aa233927220c8e04fc6e710 Mon Sep 17 00:00:00 2001 From: Robert Janetzko Date: Mon, 11 Jan 2016 15:31:50 +0100 Subject: [PATCH 12/16] export all worships and fix group for HIST_FIGURE_REACH_SUMMIT fixes #782 --- scripts/exportlegends.lua | 13 ++++++------- 1 file changed, 6 insertions(+), 7 deletions(-) diff --git a/scripts/exportlegends.lua b/scripts/exportlegends.lua index 8a153c2b8..257f2a2c3 100644 --- a/scripts/exportlegends.lua +++ b/scripts/exportlegends.lua @@ -231,11 +231,10 @@ function export_more_legends_xml() end file:write("\t\t"..(df.historical_entity_type[entityV.type]):lower().."\n") if entityV.type == df.historical_entity_type.Religion then -- Get worshipped figure - if (entityV.unknown1b ~= nil and entityV.unknown1b.worship ~= nil and - #entityV.unknown1b.worship == 1) then - file:write("\t\t"..entityV.unknown1b.worship[0].."\n") - else - print(entityV.unknown1b, entityV.unknown1b.worship, #entityV.unknown1b.worship) + if (entityV.unknown1b ~= nil and entityV.unknown1b.worship ~= nil) then + for k,v in pairs(entityV.unknown1b.worship) do + file:write("\t\t"..v.."\n") + end end end for id, link in pairs(entityV.entity_links) do @@ -503,8 +502,8 @@ function export_more_legends_xml() file:write("\t\t"..tostring(df.meeting_topic[v]):lower().."\n") elseif event:getType() == df.history_event_type.MASTERPIECE_CREATED_ITEM_IMPROVEMENT and k == "improvement_type" then file:write("\t\t"..df.improvement_type[v]:lower().."\n") - elseif ((event:getType() == df.history_event_type.HIST_FIGURE_REACH_SUMMIT and k == "figures") or - (event:getType() == df.history_event_type.HIST_FIGURE_NEW_PET and k == "group") + elseif ((event:getType() == df.history_event_type.HIST_FIGURE_REACH_SUMMIT and k == "group") + or (event:getType() == df.history_event_type.HIST_FIGURE_NEW_PET and k == "group") or (event:getType() == df.history_event_type.BODY_ABUSED and k == "bodies")) then for detailK,detailV in pairs(v) do file:write("\t\t<"..k..">"..detailV.."\n") From a0836ac7b74a95a8e312fa0516f30d10633d311c Mon Sep 17 00:00:00 2001 From: Robert Janetzko Date: Tue, 12 Jan 2016 14:14:46 +0100 Subject: [PATCH 13/16] export substates (45=fled, 46/47=moved to study) from CHANGE_HF_STATE event --- scripts/exportlegends.lua | 1 + 1 file changed, 1 insertion(+) diff --git a/scripts/exportlegends.lua b/scripts/exportlegends.lua index 257f2a2c3..952accf8e 100644 --- a/scripts/exportlegends.lua +++ b/scripts/exportlegends.lua @@ -356,6 +356,7 @@ function export_more_legends_xml() or event:getType() == df.history_event_type.BODY_ABUSED or event:getType() == df.history_event_type.CHANGE_CREATURE_TYPE or event:getType() == df.history_event_type.CHANGE_HF_JOB + or event:getType() == df.history_event_type.CHANGE_HF_STATE or event:getType() == df.history_event_type.CREATED_BUILDING or event:getType() == df.history_event_type.CREATURE_DEVOURED or event:getType() == df.history_event_type.HF_DOES_INTERACTION From 8ad71aae623e8b4935fa5e78e462478d477d3a94 Mon Sep 17 00:00:00 2001 From: Robert Janetzko Date: Tue, 12 Jan 2016 14:59:13 +0100 Subject: [PATCH 14/16] export contents of scrolls and books --- scripts/exportlegends.lua | 12 ++++++++++++ 1 file changed, 12 insertions(+) diff --git a/scripts/exportlegends.lua b/scripts/exportlegends.lua index 952accf8e..a7c6ca2ca 100644 --- a/scripts/exportlegends.lua +++ b/scripts/exportlegends.lua @@ -188,6 +188,18 @@ function export_more_legends_xml() if (artifactV.item:getSubtype() ~= -1) then file:write("\t\t"..artifactV.item.subtype.name.."\n") end + for improvementK,impovementV in pairs(artifactV.item.improvements) do + if impovementV:getType() == df.improvement_type.WRITING then + for writingk,writingV in pairs(impovementV["itemimprovement_writingst.anon_1"]) do + file:write("\t\t"..writingV.."\n") + end + elseif impovementV:getType() == df.improvement_type.PAGES then + file:write("\t\t"..impovementV.count.."\n") + for writingk,writingV in pairs(impovementV.contents) do + file:write("\t\t"..writingV.."\n") + end + end + end end if (table.containskey(artifactV.item,"description")) then file:write("\t\t"..dfhack.df2utf(artifactV.item.description:lower()).."\n") From 45121ce3ad00d6b37527427eba78526ceb3e23be Mon Sep 17 00:00:00 2001 From: Robert Janetzko Date: Tue, 12 Jan 2016 16:47:44 +0100 Subject: [PATCH 15/16] race for HIST_FIGURE_NEW_PET event --- scripts/exportlegends.lua | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/scripts/exportlegends.lua b/scripts/exportlegends.lua index a7c6ca2ca..d1fc3c4f6 100644 --- a/scripts/exportlegends.lua +++ b/scripts/exportlegends.lua @@ -523,7 +523,7 @@ function export_more_legends_xml() end elseif event:getType() == df.history_event_type.HIST_FIGURE_NEW_PET and k == "pets" then for detailK,detailV in pairs(v) do - file:write("\t\t<"..k..">"..(df.global.world.raws.creatures.all[detailV].creature_id):lower().."\n") + file:write("\t\t<"..k..">"..df.global.world.raws.creatures.all[detailV].name[0].."\n") end elseif event:getType() == df.history_event_type.BODY_ABUSED and (k == "props") then file:write("\t\t<"..k.."_item_type>"..tostring(df.item_type[event.props.item.item_type]):lower().."\n") From aab5996d7ce458638dc6c4f6b7387853305d33ff Mon Sep 17 00:00:00 2001 From: Robert Janetzko Date: Tue, 12 Jan 2016 18:48:14 +0100 Subject: [PATCH 16/16] export landmasses, mountains and entity claims --- scripts/exportlegends.lua | 27 +++++++++++++++++++++++++++ 1 file changed, 27 insertions(+) diff --git a/scripts/exportlegends.lua b/scripts/exportlegends.lua index d1fc3c4f6..2fb95d382 100644 --- a/scripts/exportlegends.lua +++ b/scripts/exportlegends.lua @@ -100,6 +100,28 @@ function export_more_legends_xml() file:write(""..dfhack.df2utf(dfhack.TranslateName(df.global.world.world_data.name)).."\n") file:write(""..dfhack.df2utf(dfhack.TranslateName(df.global.world.world_data.name,1)).."\n") + file:write("\n") + for landmassK, landmassV in ipairs(df.global.world.world_data.landmasses) do + file:write("\t\n") + file:write("\t\t"..landmassV.index.."\n") + file:write("\t\t"..dfhack.df2utf(dfhack.TranslateName(landmassV.name,1)).."\n") + file:write("\t\t"..landmassV.min_x..","..landmassV.min_y.."\n") + file:write("\t\t"..landmassV.max_x..","..landmassV.max_y.."\n") + file:write("\t\n") + end + file:write("\n") + + file:write("\n") + for mountainK, mountainV in ipairs(df.global.world.world_data.mountain_peaks) do + file:write("\t\n") + file:write("\t\t"..mountainK.."\n") + file:write("\t\t"..dfhack.df2utf(dfhack.TranslateName(mountainV.name,1)).."\n") + file:write("\t\t"..mountainV.pos.x..","..mountainV.pos.y.."\n") + file:write("\t\t"..mountainV.height.."\n") + file:write("\t\n") + end + file:write("\n") + file:write("\n") for regionK, regionV in ipairs(df.global.world.world_data.regions) do file:write("\t\n") @@ -286,6 +308,11 @@ function export_more_legends_xml() for id, link in ipairs(entityV.children) do file:write("\t\t"..link.."\n") end + file:write("\t\t") + for xK, xVal in ipairs(entityV.claims.unk2.x) do + file:write(xVal..","..entityV.claims.unk2.y[xK].."|") + end + file:write("\n") file:write("\t\n") end file:write("\n")