exportlegends: fix day/month issues more reliably

Fixes #783, #791
develop
lethosor 2016-01-09 19:28:12 -05:00
parent 48b3b384d1
commit 0bcc8dc443
2 changed files with 5 additions and 4 deletions

@ -78,7 +78,9 @@ uint32_t World::ReadCurrentYear()
uint32_t World::ReadCurrentTick()
{
return DF_GLOBAL_VALUE(cur_year_tick, 0);
// prevent this from returning anything less than 0,
// to avoid day/month calculations with 0xffffffff
return std::max(0, DF_GLOBAL_VALUE(cur_year_tick, 0));
}
bool World::ReadGameMode(t_gamemodes& rd)

@ -85,9 +85,8 @@ end
--create an extra legends xml with extra data, by Mason11987 for World Viewer
function export_more_legends_xml()
local julian_day = math.floor(df.global.cur_year_tick / 1200)
local month = math.floor(julian_day / 28) + 1 --days and months are 1-indexed
local day = julian_day % 28 + 1
local month = dfhack.world.ReadCurrentMonth() + 1 --days and months are 1-indexed
local day = dfhack.world.ReadCurrentDay()
local year_str = string.format('%0'..math.max(5, string.len(''..df.global.cur_year))..'d', df.global.cur_year)
local date_str = year_str..string.format('-%02d-%02d', month, day)