Dwarf Fortress Bug Tracker - Dwarf Fortress |
View Issue Details |
|
ID | Project | Category | View Status | Date Submitted | Last Update |
0005835 | Dwarf Fortress | Dwarf Mode -- Thoughts and Preferences | public | 2012-04-24 18:27 | 2018-01-21 08:06 |
|
Reporter | uggi | |
Assigned To | lethosor | |
Priority | normal | Severity | minor | Reproducibility | always |
Status | confirmed | Resolution | open | |
Platform | | OS | | OS Version | |
Product Version | 0.34.07 | |
Target Version | | Fixed in Version | | |
|
Summary | 0005835: Dwarf turns into a werecreature the first time, her age/birthday randomly changes |
Description | 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.
|
Steps To Reproduce | 1. Get a dwarf were-cursed.
2. Wait until the dwarf turns into a werecreature and back.
3. Dwarf has randomly aged.
|
Additional Information | 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.
|
Tags | 0.43.05, age, binary patch, werecreature, werecreatures |
Relationships | has duplicate | 0010593 | resolved | Knight Otu | Citizens transforming into Were-tortoises age rapidly |
|
Attached Files | |
|
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 | bug_revision_view_page.php?bugnote_id=0024230#r9058 |
2014-05-23 08:37 | Steb | Note Added: 0024767 | |
2014-05-29 22:00 | UristDaVinci | Note Added: 0024780 | |
2014-06-04 19:11 | Footkerchief | Tag Attached: Fixed in 0.34.12? | |
2014-07-07 22:23 | Footkerchief | Tag Renamed | Fixed in 0.34.12? => Fixed in 0.40.01? |
2016-08-08 18:22 | krenshala | Note Added: 0035771 | |
2016-08-08 18:22 | krenshala | Issue Monitored: krenshala | |
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 | Knight Otu | Relationship added | has duplicate 0010593 |
2018-04-25 16:35 | Huntthetroll | Issue Monitored: Huntthetroll | |
Notes |
|
(0022373)
|
uggi
|
2012-04-24 18:35
|
|
|
|
(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. |
|
|
|
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. |
|
|
|
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". |
|
|
|
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. |
|