Any idea what’s going on here? Now that I’m using the latest experimental (as of yesterday) whenever I try to make a “cooked meat” it comes out rotten.
I can eat the raw meat just fine and if I make something else like Aspic, that’s fine too.
In addtion I believe you can make aspic from rotten meat… which is completely gamebreaking really. Infinite food ahoy?
I wonder if tainted meat works?
Edit: So apparently it’s not actually all the time. Freshly killed meat gave me OK non rotten cooked meat.
But it’s like cooking meat accelerates the rotting, which is a bit barmy…
Also, another meat-related bug(?), that is the complete opposite of what the OP is saying:
If you cook rotten meat on a fire you will get fresh cooked meat for some weird reason. Version 1958.
(If this bug has been already fixed, I apologize )
Rot has always interacted a bit weirdly with cooking, (doubly so now that we’ve discovered another problem there, and triply so with some weird temperature interactions being revealed in the latest experimentals). It’s on the list now, so hopefully we should get around to fixing it fairly quickly.
From what I can tell, it depends on the current temperature when you do the cooking. If it’s hot, food becomes more rotten when cooked. If it’s cold, it becomes less rotten. The current rottenness-of-cooked-food code works by backdating the food’s creation, rather than setting the rottenness directly.
Summer, 102 degrees:
Catch fish, butcher fish, and cook fish on a nearby fire - All without moving or delaying. The result is 2 cooked rotten fish fillets.
Given the extremely deadly cold in spring and the instant rot in summer, I’m going to have to step away from playing for a while.
[quote=“Khrysanth, post:5, topic:7169”]Summer, 102 degrees:
Catch fish, butcher fish, and cook fish on a nearby fire - All without moving or delaying. The result is 2 cooked rotten fish fillets.
Given the extremely deadly cold in spring and the instant rot in summer, I’m going to have to step away from playing for a while.[/quote]
When I was messing around with the food decay code I saw how this could be a problem. I figured it would be fine, since it was fine before, but it’s obviously not so. The main problem here is the math that calculates the rotting of a piece of food is very abstracted out and vaguely commented. When I tried to decipher it, I was confused for a long time. The most annoying part is that food items have a counter for the spoiling date, in turns, then that counter is compared against the counter for rotting, which increases from zero (until here it makes sense), but then at some event that I’m not certain when it happens, the rotting number updates by adding an amount of “rot per hour” turns, which doesn’t necessarily happen each hour (because unloading terrain) and is augmented or decreased by the historical temperature of the tile.
This means that to know the right value it should add in a specific moment, you have to get the current date and the last date the item was updated and examine the past temperatures to modify the base amount of rot. That part is easy. But what happens when you have to check for a fraction of an hour and therefore the hourly rot-points don’t make sense anymore? Weird things happen. Even after dividing by the fraction of hour you need. There’s some math errors somewhere in that part of the code, probably, maybe, that I can’t figure out.
And to compound it further, you get bad info from the item display because it looks up the rotting points while presenting the data, and I believe it expects it to be updated, but somehow it isn’t, even though food items are now active and should be checked by the game every turn.
Does it sound complicated and annoying and hard to grasp? That’s because it is. There’s no classing in that area beyond the itype and item instance. It’s a bunch of raw math, mostly uncommented. Even after people went and did their best to comment it. XD
So yeah, even if it’s in the fixing line, this may take a while to figure out, or it may be solved in two minutes, who knows. That’s the problem with playing on experimentals. You risk having game-breaking bugs. =3