CleverRaven / Cataclysm-DDA

Cataclysm - Dark Days Ahead. A turn-based survival game set in a post-apocalyptic world.
http://cataclysmdda.org
Other
10.11k stars 4.1k forks source link

Frostbite at 1 degree Celsius? #8435

Closed Zireael07 closed 10 years ago

Zireael07 commented 10 years ago

Found in a forum discussion: http://smf.cataclysmdda.com/index.php?topic=7366.0

define BODYTEMP_VERY_COLD 2000 //!< This value means frostbite occurs at the warmest

temperature of 1C. If changed, the temp_conv calculation should be reexamined.

Um, frostbite is freezing water, and water doesn't freeze above 0 C. Suggest changing it to -5 C.

Also, same thread:

Check this wind chill chart from the National Weather Service: At 25 degrees Fahrenheit, risk of frostbite is nil.

macrosblackd commented 10 years ago

There is definitely something weird going on with temperature calculations. I was bundled up, in spring (day 1), and got frostbite on arms and legs. Arms alone had 75+ warmth from clothing. Head was freezing with 85 warmth.

Shoes01 commented 10 years ago

@Zireael07 That comment is out of date I think; frostbite has been hard coded not to occure above 31F. The NWS probably assumes that the person is not naked in 25F weather. With the recent PR (#8457), frostbite will take much longer to set in, allowing the player ample time to bundle up, so I think it will be less of an issue.

@macrosblackd While I was fixing bugs using yesterdays experimental, it wasn't possible to get frostbite; instead you would get warm body parts. Freezing head was fixed recently though!

macrosblackd commented 10 years ago

Erm, I beg to differ. I had just created a brand new character in a brand new world with the latest code (at the time) and when the character went to sleep, despite having plenty of warmth throughout her body, she developed frostbite on several limbs. In spring. It was no where near freezing.

Shoes01 commented 10 years ago

That has to be a different issue. I was being literal when saying frostbite couldn't happen: frostbite was only being added to "main body parts" which exclude hands, feet and mouth/face, which were the only parts susceptible to frostbite. I could be wrong though! Do you mean freezing? Did it say frostbite or frostnip? Which body parts were affected? Can you provide a screenshot? I am in the zone so lemme have it!

I have yet to look closely at sleeping and body temperature.

macrosblackd commented 10 years ago

Unfortunately, I cleaned that save/world when I pulled down the latest :/ I'll see if I can reproduce this though.

On 8/6/14, Shoes01 notifications@github.com wrote:

That has to be a different issue. I was being literal when saying frostbite couldn't happen: frostbite was only being added to "main body parts" which exclude hands, feet and mouth/face, which were the only parts susceptible to frostbite. Do you mean freezing? Did it say frostbite or frostnip? Which body parts were affected? Can you provide a screenshot? I am in the zone so lemme have it!


Reply to this email directly or view it on GitHub: https://github.com/CleverRaven/Cataclysm-DDA/issues/8435#issuecomment-51361325

macrosblackd commented 10 years ago

One thing you may want to look at is how quickly ambient temperature affects the player's 'core' temperature (what you should be looking at for things like hypo/hyper-thermia, fevers, etc). The human body can regulate core temperature very well and it takes some pretty extreme temperatures or long (2+hr) exposure to high/low but not extreme temperatures to really start to affect it.

As far as some overall changes, you may want to look at migrating to kelvin for all temperature calculations. You can do a blanket (K*10) to get a round number, do your calculations, then (K1 / 10) to get back to the real value. From there it is a fairly simple conversion to the player's display value. This also will expand the range of temperatures you have to work with. I was going to look at converting to kelvin, but if you prefer doing it I wouldn't mind waiting.

Shoes01 commented 10 years ago

At the moment, in normal conditions, the in game body temperature looks at two things : current value and convergeant value (convergeant being the number where current will go given sufficient time). Every 30 minutes, half of difference is covered. So if you are comfortable (5000 units of warmth), and you step out into very cold temps (2500 units of warmth), after half an hour you would be at 3750, still comfy. Another half hour, you're at 3125 warmth, where 3500 is "cold". Still not very cold, but going down slower. It takes a while to get to freezing temps, under "normal" conditions (normal isn't normal; you would wear things to prevent this).

As for the scale, taken from weather.h " Bodytemp is measured on a scale of 0u to 10000u, where 10u = 0.02C and 5000u is 37C". So the scale is as linear as Kelvin. There was talk about adding a thermometer to the game which could display the player temperature... but there's no use to knowing your body temperature other than for bug testing.

Zireael07 commented 10 years ago

Please add this thermometer, it seems that there's a lot of bug testing to be done. If I hadn't deleted that frostbitten girl, I'd have loved to check what was going wonky for her to be constantly chilly

KA101 commented 10 years ago

Pretty confident Shoes has this under control. As usual, feel free to reopen if the problem recurs.