Dwarf Fortress Bug Tracker - Dwarf Fortress
View Issue Details
0005835Dwarf FortressDwarf Mode -- Thoughts and Preferencespublic2012-04-24 18:272018-01-21 08:06
uggi 
lethosor 
normalminoralways
confirmedopen 
0.34.07 
 
0005835: Dwarf turns into a werecreature the first time, her age/birthday randomly changes
Dwarven child aged 7 years got bitten by a werepanda and got the curse. First time she turns into a werepanda and then back to the dwarven form, her age and birthday changes randomly. She still shows up as a children, until it's her birthday. Then she grows into an adult peasant.

I've waited another month to see if she ages again when she turns into a werecreature, but she seems to age only when the change happens the first time.

The weirdest part is this: My old 2,2 GHz 32-bit Linux computer ages her about 10-70 years, while the new 3,7 GHz 64-bit Win 7 rig ages her up to 114 MILLION years.
1. Get a dwarf were-cursed.
2. Wait until the dwarf turns into a werecreature and back.
3. Dwarf has randomly aged.
The game was started with v0.34.02. The dwarf got bitten and cursed while still on v0.34.02. Found out the aging bug when I had already updated to v0.34.07.
0.43.05, age, binary patch, werecreature, werecreatures
has duplicate 0010593resolved Knight Otu Citizens transforming into Were-tortoises age rapidly 
Issue History
2012-04-24 18:27uggiNew Issue
2012-04-24 18:35uggiTag Attached: age
2012-04-24 18:35uggiTag Attached: werecreature
2012-04-24 18:35uggiTag Attached: werecreatures
2012-04-24 18:35uggiNote Added: 0022373
2013-11-26 15:50smjjamesNote Added: 0024230
2013-11-26 16:45smjjamesNote Edited: 0024230bug_revision_view_page.php?bugnote_id=0024230#r9058
2014-05-23 08:37StebNote Added: 0024767
2014-05-29 22:00UristDaVinciNote Added: 0024780
2014-06-04 19:11FootkerchiefTag Attached: Fixed in 0.34.12?
2014-07-07 22:23FootkerchiefTag RenamedFixed in 0.34.12? => Fixed in 0.40.01?
2016-08-08 18:22krenshalaNote Added: 0035771
2016-08-08 18:22krenshalaIssue Monitored: krenshala
2016-08-09 06:10lethosorAssigned To => lethosor
2016-08-09 06:10lethosorStatusnew => confirmed
2016-08-09 06:10lethosorTag Attached: binary patch
2016-08-09 06:10lethosorTag Detached: Fixed in 0.40.01?
2016-08-09 06:11lethosorTag Attached: 0.43.05
2017-08-12 10:35Uzu BashNote Added: 0036694
2018-01-21 08:06hawkNote Added: 0037685
2018-02-26 04:22Knight OtuRelationship addedhas duplicate 0010593
2018-04-25 16:35HuntthetrollIssue Monitored: Huntthetroll

Notes
(0022373)
uggi   
2012-04-24 18:35   
Saved game here: http://dffd.wimbli.com/file.php?id=6212 [^]
(0024230)
smjjames   
2013-11-26 15:50   
(edited on: 2013-11-26 16:45)
114 million! wtfbbq!?

That what the heck moment aside, I've got a dwarf that aged over 100 years from 111 or so to 230. Version 0.34.11

The werebeast cursed dwarf is Rith Olonthatthil.
http://dffd.wimbli.com/file.php?id=8182 [^]

Also, I'm surprised that the game can actually display ages in the millions, given the timescales....

(0024767)
Steb   
2014-05-23 08:37   
I nearly died laughing when I first saw this error in my fort. It was a little girl aged between 8 and 11, going off her sibling ages. She is now showing up as having the appearance of somebody 104 million years old and being one of the first of her kind.

The first transformation happened inside a cage, in case that matters. Everything was done in 34.11.
(0024780)
UristDaVinci   
2014-05-29 22:00   
I ran Windbg on the creature's birth_year during a transformation with interesting results.

There is a part of the memory (known to some dfhack modders as unit.enemy.unk_850) that is a vector storing data about the castes/creatures that a unit has transformed into. It appears that when you transform, the game looks up the old_year and old_time, as well as appearance info, for that caste/creature that you previously transformed into. So, if you transform into something on occasion then this data is consistent and not re-randomly generated.

The bug is that if the data does not yet exist, the game runs a function normally reserved for randomly generated migrants. This function looks at race, caste, profession (CHILD and BABY are professions so their ages are set to the appropriate baby or child ages). The bug is that this function sets both the birth_year as well as the old_year of the creature to something race and caste appropriate (as well as birth_time and old_time).

Therefore you are given an age relevant to the caste/creature you are transforming into for the first time, and this data may be undefined in the werecreature's procedural raws.
(0035771)
krenshala   
2016-08-08 18:22   
I've had two dwarves become werebears in my current 0.43.05 game and both of their bithdays have changed in this manner. I haven't done the math yet to see if it was a fixed change or not, but both used to show ages of approximately 70 to 80, and they now show an age of 170-something and 230.

I'm not sure if it matters, but both were "one of the first of their kind".
(0036694)
Uzu Bash   
2017-08-12 10:35   
I've looked for a cause in the data structures and seen that their unit data's birth year and seconds have been set back, but their histfig record keeps the correct ones. I've tried correcting them in unit data, and will see whether it changes again next transformation or next birthday.
(0037685)
hawk   
2018-01-21 08:06   
This still happens in 44.05.