Mantis Bug Tracker

View Issue Details Jump to Notes ] Issue History ] Print ]
IDProjectCategoryView StatusDate SubmittedLast Update
0005843Dwarf FortressDwarf Mode -- Roomspublic2012-04-26 10:552021-01-26 07:08
ReporterQuietust 
Assigned ToLoci 
PrioritynormalSeverityminorReproducibilityhave not tried
StatusassignedResolutionopen 
PlatformOSOS Version
Product Version0.34.07 
Target VersionFixed in Version 
Summary0005843: Thoughts about tomb quality don't happen
DescriptionThought codes exist for dwarves being happy about the quality of their tomb when they grow a year older (or unhappy if it's substandard), but these thoughts never actually happen because the code is comparing the dwarf's current tomb quality to itself rather than the dwarf's desired tomb quality.

The corresponding thoughts for bedroom, dining room, and office quality all seem to work fine.
Additional InformationThis was originally observed while digging through the code for version 0.23.130.23a (the final 2D release), and it still seems to be present in version 0.34.07.
TagsNo tags attached.
Attached Files

- Relationships

-  Notes
(0022381)
kwieland (reporter)
2012-04-26 12:56

So that confirms what I found, that in the first 3d versions, the happiness of a dwarf didn't matter if your dwarf had a tomb or not.
(0023469)
Quietust (reporter)
2012-08-17 08:18

It didn't matter in the 2D versions either - I just checked a disassembly of version 0.21.93.19a (i.e. the very first public release) and it had the same problem, so this has never worked correctly.

Furthermore, even if this particular bug gets fixed, only nobles will get thoughts from tomb quality, since it skips giving out thoughts if the dwarf's "desired tomb quality" is zero.
(0023605)
Quietust (reporter)
2012-09-24 11:10

There's actually another bug hidden beneath this one - if a dwarf gets the "worried greatly about not having a tomb after gaining another year" thought, the happiness penalty will be based on the dwarf's desired office quality rather than the desired tomb quality.
(0038454)
Shonai_Dweller (reporter)
2018-06-09 22:26

Someone's just remarked on receiving this message with a screenshot on Reddit. It's a 44.10 screenshot (includes memories), so presumably the reshuffle of numbers for the stress release finally got this working.
(0038456)
hittemvvvhard (reporter)
2018-06-10 12:58

reddit post: https://www.reddit.com/r/dwarffortress/comments/8pvpqj/today_was_my_birthday_i_really_should_have_got_a/?st=ji976edq&sh=288896d4 [^]
(0038459)
Loci (manager)
2018-06-11 15:37

Thanks for the update.

I'm not sure if tomb-quality thoughts are intended to apply to non-noble dwarves, but that would seem to be less of a bug and more of a suggestion.

The calculation error using desired office quality instead of desired tomb quality, however, is a bug, if that is still the case in the current version. The effect is minor since almost all nobles have equivalent office and tomb quality demands. Presumably this bug can be tested by modding nobles with lowered tomb demands and checking if they are satisfied with those low quality tombs or demand office-quality tombs instead (or just checking the code again).
(0040880)
Quietust (reporter)
2021-01-26 07:08
edited on: 2021-03-04 05:25

I've just checked the relevant code in version 0.47.04, and it looks like it's still affected by this bug, if only partially - thoughts for lacking a tomb happen as they should, but thoughts for having a poor quality tomb don't.

The happiness penalty likely isn't a problem anymore, since that logic would've been rewritten during the happiness -> stress update.

It's possible that there are multiple places that generate the tomb quality thought, though I don't know where it would be - the only one I found is the same one that existed in older versions, but maybe Toady added another check elsewhere (which might explain why people have seen it happen).

.text:0000000140C58BCD    lea     rdx, [rbp+0C80h+room_req]
.text:0000000140C58BD4    mov     rcx, rsi
.text:0000000140C58BD7    call    unit_getNobleRoomRequirements
.text:0000000140C58BDC    lea     rdx, [rbp+0C80h+room_cur]
.text:0000000140C58BE3    mov     rcx, rsi
.text:0000000140C58BE6    call    unit_getCurrentRoomValues
.text:0000000140C58BEB    cmp     [rbp+0C80h+room_req.tomb], 0
.text:0000000140C58BF2    jle     loc_140C58CFF                        ; Skip logic if unit doesn't need 
a tomb
.text:0000000140C58BF8    mov     ecx, [rbp+0C80h+room_cur.tomb]
.text:0000000140C58BFE    test    ecx, ecx
.text:0000000140C58C00    jle     loc_140C58CBD                        ; Do "tomb lack" if 
current value is zero
.text:0000000140C58C06    call    getRoomTierFromValue                 ; Convert current tomb value to 
tier
.text:0000000140C58C0B    movsx   ecx, ax                              ; Copy current tomb tier to ecx

.text:0000000140C58C0E    movsx   r9d, ax                              ; Copy current tomb tier to r9d

.text:0000000140C58C12    sub     r9d, ecx                             ; Subtract the two tiers (which 
are the same)
.text:0000000140C58C15    cmp     r9d, 1                               ; If less than one, try to complain

.text:0000000140C58C19    jl      short loc_140C58C5E                  ; Otherwise, add positive thought

...
.text:0000000140C58C5E loc_140C58C5E:
.text:0000000140C58C5E     mov     edx, misc_trait_type_RoomComplaint
.text:0000000140C58C63     mov     rcx, rsi
.text:0000000140C58C66     call    unit_getCounter
.text:0000000140C58C6B     test    rax, rax
.text:0000000140C58C6E     jnz     loc_140C58CFF                       ; Skip if they just became a noble

.text:0000000140C58C74     cmp     r9d, -1
.text:0000000140C58C78     jg      loc_140C58CFF                       ; Skip if greater than -1 (i.e. 
if 0)
                           ...                                         ; Generate thought



- Issue History
Date Modified Username Field Change
2012-04-26 10:55 Quietust New Issue
2012-04-26 12:56 kwieland Note Added: 0022381
2012-08-17 08:18 Quietust Note Added: 0023469
2012-09-24 11:10 Quietust Note Added: 0023605
2018-06-09 22:26 Shonai_Dweller Note Added: 0038454
2018-06-10 12:58 hittemvvvhard Note Added: 0038456
2018-06-11 15:37 Loci Note Added: 0038459
2018-06-11 15:37 Loci Assigned To => Loci
2018-06-11 15:37 Loci Status new => needs feedback
2021-01-26 07:08 Quietust Note Added: 0040880
2021-01-26 07:08 Quietust Status needs feedback => assigned
2021-01-26 07:09 Quietust Note Edited: 0040880 View Revisions
2021-01-26 07:10 Quietust Note Edited: 0040880 View Revisions
2021-01-26 07:29 Quietust Note Edited: 0040880 View Revisions
2021-01-26 07:32 Quietust Note Edited: 0040880 View Revisions
2021-01-26 07:46 Quietust Note Edited: 0040880 View Revisions
2021-03-04 05:25 Quietust Note Edited: 0040880 View Revisions


Copyright © 2000 - 2010 MantisBT Group
Powered by Mantis Bugtracker