View Issue Details

IDProjectCategoryView StatusLast Update
0005835Dwarf FortressDwarf Mode -- Thoughts and Preferencespublic2023-05-07 12:16
Reporteruggi Assigned Tolethosor  
PrioritynormalSeverityminorReproducibilityalways
Status confirmedResolutionopen 
Product Version0.34.07 
Summary0005835: Dwarf turns into a werecreature the first time, her age/birthday randomly changes
DescriptionDwarven 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.
Steps To Reproduce1. Get a dwarf were-cursed.
2. Wait until the dwarf turns into a werecreature and back.
3. Dwarf has randomly aged.
Additional InformationThe 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.
Tags0.43.05, age, binary patch, werecreature, werecreatures

Relationships

has duplicate 0010593 resolveduser1294 Citizens transforming into Were-tortoises age rapidly 

Activities

uggi

2012-04-24 18:35

reporter   ~0022373

Saved game here: http://dffd.wimbli.com/file.php?id=6212

smjjames

2013-11-26 15:50

reporter   ~0024230

Last edited: 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....

Steb

2014-05-23 08:37

reporter   ~0024767

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.

UristDaVinci

2014-05-29 22:00

reporter   ~0024780

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.

krenshala

2016-08-08 18:22

reporter   ~0035771

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".

Uzu Bash

2017-08-12 10:35

reporter   ~0036694

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.

hawk

2018-01-21 08:06

reporter   ~0037685

This still happens in 44.05.

anonymous

2023-05-07 12:07

viewer   ~0041796

Wintenesed this in 50.08

anonymous

2023-05-07 12:16

viewer   ~0041797

Save for 0.50.08: https://dffd.bay12games.com/file.php?id=16682

Add Note

Note

Issue History

Date Modified Username Field Change
2012-04-24 18:27 uggi New Issue
2012-04-24 18:35 uggi Tag Attached: age
2012-04-24 18:35 uggi Tag Attached: werecreature
2012-04-24 18:35 uggi Tag Attached: werecreatures
2012-04-24 18:35 uggi Note Added: 0022373
2013-11-26 15:50 smjjames Note Added: 0024230
2013-11-26 16:45 smjjames Note Edited: 0024230
2014-05-23 08:37 Steb Note Added: 0024767
2014-05-29 22:00 UristDaVinci Note Added: 0024780
2014-06-04 19:11 user6 Tag Attached: Fixed in 0.34.12?
2014-07-07 22:23 user6 Tag Renamed Fixed in 0.34.12? => Fixed in 0.40.01?
2016-08-08 18:22 krenshala Note Added: 0035771
2016-08-09 06:10 lethosor Assigned To => lethosor
2016-08-09 06:10 lethosor Status new => confirmed
2016-08-09 06:10 lethosor Tag Attached: binary patch
2016-08-09 06:10 lethosor Tag Detached: Fixed in 0.40.01?
2016-08-09 06:11 lethosor Tag Attached: 0.43.05
2017-08-12 10:35 Uzu Bash Note Added: 0036694
2018-01-21 08:06 hawk Note Added: 0037685
2018-02-26 04:22 user1294 Relationship added has duplicate 0010593
2023-05-07 12:07 anonymous Note Added: 0041796
2023-05-07 12:16 anonymous Note Added: 0041797