-
Notifications
You must be signed in to change notification settings - Fork 4.2k
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
Suggest increasing body heat from high exercise levels #47428
Comments
Cataclysm-DDA/src/character.cpp Line 6443 in 483cd09
|
@anothersimulacrum Forgive me for being obtuse, but are you just pointing at where stuff would be changed if stuff is changed? |
I don't think so. The line appears to be indicating that, in figuring out body heat, it is assumed the character is running (all the time); I'm not sure exactly what level of exercise (in BMI terms) the code is assuming. |
This would be awesome but it should definitely wait until after #44880 is merged because Summer is barely survivable as it is. Good thing it's the apocalypse and no-one is around to see my character streaking everywhere wearing nothing but a backpack and shame every summer. |
It may be what already is happening. |
Where the changes would take place. That makes the (erroneous) assumption that the character is always running, and it should have activity levels tied in instead of making that assumption. |
I'm not seeing anything in there that interacts with activity level. I think those were just the assumptions that were used before the activity level system was in place. Farther down there is a spot where it interacts with "metabolic_rate" however, confusingly, that doesn't appear to be connected to activity level anywhere. From what I can see it is just the character's base metabolic rate. Cataclysm-DDA/src/consumption.cpp Lines 553 to 584 in 57d594e
Edit: I could also just be blind. I'm still looking. |
They're assumptions from before running even existed. |
Is this code left over from before base_bmr() in character.cpp? |
Ahh. "Vintage" code. The whole update_bodytemp method looks like a nightmare. 500 lines of old code that touches what appears to be practically everything except for activity level. As much of a nightmare as it would be, a lot of it (disease, metabolic rate, mutations, sleep, fatigue, and maybe blood loss) looks like it should be moved over to BMR rather than being directly in that method. All of those different parts should be altering BMR rather than changing temperature directly. |
It looks like it. I can't find anywhere where "metabolic_rate" interacts with activity level or BMR. |
That's what I was thinking but evidently not clearly communicating... |
Chuckle!
I can think of a few things among those you named that should be interacting via altering heat loss (blood loss, fur mutations, etc), as in "warmth" values. (I seem to remember that fur mutations do work via "warmth", but I may be incorrect.) For that matter, the body does alter BMR (via thyroid and related hormones) in response to core body temperature. (Fun factoid: This is partially via thyroid hormone causing the mitochondria - where oxygen is used to "burn" food - to be less efficient and release more energy as heat instead of as energy for the cell in the form of ATP.) |
That's why I had left a maybe after blood loss. There is the temperature loss from the physical loss of blood but I am not sure if being in a state of hypovolemic shock would effect BMR as well. I also found this section where it appears to be using body part HP rather than actual blood loss for temperature calculation. That would make sense if this hasn't been touched since 2007 because bleeding wasn't a thing. Cataclysm-DDA/src/character.cpp Lines 6639 to 6640 in 483cd09
I'm also not sure where I saw the mutations in there. I just took another look and I don't see anything but bark (which actually makes sense where it is) and a couple of the metabolism traits. So it looks like I was wrong there. |
Hmm. It should definitely result in vasoconstriction, especially outside of the core - as in people turning pale (and shaking given the epinephrine release). That could cause loss of heat in the extremities, and it is true that a lot of the body's heat is in water, some of which is lost with lost blood. I'd have to check for exactly what proportion is in blood as opposed to intercellular and intracellular fluid's water component. @Venera3: Any further input regarding shock and body heat? I'm going off the top of my head in the above. |
I also just discovered the section where it is calculating blood loss and it does appear that it is just based on body part HP rather than the character's actual blood volume. Cataclysm-DDA/src/character.cpp Lines 7136 to 7152 in 483cd09
|
Just to confirm what you're discovering, |
It is giving a result back in percentage of estimated blood lost; bleeding really needs to be integrated... someone at the verge of death due to a crushing injury may well have lost some blood internally, but not 99% of it! |
As it is usually the case, you're pretty good at maintaining homeostasis up until you just can't, at which point the whole house of cards comes crashing down at once. Part of it is losing -essentially- water you spent a lot of energy heating up, but the main reason is your body centralising blood flow, prioritising brain and heart and forcing the rest to make do. Less blood flow, however, also means less metabolism and less heat production, so if you get to the point of starting to cool your temperatures are gonna sink like a rock and it will be a challenge to warm you up (proper trauma patients can sometimes arrive at below 30 °C, despite being wrapped in tinfoil). With that in mind I suggest tying cooling out to the shock status, maxing out at ~ -30 °C at the last stage (direct cold damage is unlikely, and the negative effects of hypotermia aren't really simulated). |
So that's why I'm always freezing to death after getting punched across a room by a hulk! I always wondered why limb health was correlated with warmth |
This should only be a thing after sweating is added with some kind of a better "wetness" system. Right now summers are already impossible hot and give you a constant speed penalty and pain. |
Well, at the moment the game is constantly assuming you are at an ACTIVE_EXERCISE level of exertion (just one level before the top). |
Now that we have better blood simulation, we can rip this out. It didn't make much sense in the past, and especially does not now. Based on CleverRaven#47676 and CleverRaven#47428, it may make sense to tie some temperature loss to shock, but there's no need to keep this (somewhat confusing) mechanic.
This issue has been automatically marked as stale because it has not had recent activity. It will be closed if no further activity occurs. Thank you for your contributions. Please do not 'bump' or comment on this issue unless you are actively working on it. Stale issues, and stale issues that are closed are still considered. |
Closing as stale, since stalebot can't do this by itself. |
Is your feature request related to a problem? Please describe.
Doing something vigorous like chopping down trees doesn't make me warmer when I'm chilly, and doesn't give me heat stroke when I'm warm.
Describe the solution you'd like
Some increase to body-heat from exercise levels of 'brisk', 'active' and 'extra'.
Describe alternatives you've considered
Leave as is.
Additional context
Obviously this is potentially 'good' for winter, but equally 'bad' for summer so it evens out overall.
The text was updated successfully, but these errors were encountered: