CleverRaven / Cataclysm-DDA

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

[Bug] I Can not put biodiesel into jerrycan or oil tank #61169

Open DionysiaChen opened 1 year ago

DionysiaChen commented 1 year ago

Describe the bug

1, I have one character named A in world W, when I'm playing this character, I cannot put biodiesel into any containers for more than a certain amount. For the 20L oil tank it can't be filled for more than 6L, for the 200L tank not more than 4L, for 10L jerrycan not more than 1L, etc, but 3.75L gallon jug is working just fine and everything under 10L seems to work fine.

2, I Tried the same with another character B in the same world W, and everything worked fine.

Steps to reproduce

It happens every single time I try, but somehow not showing up when I test with other characters.

Versions and configuration

0.F.3

Additional context

debug log:

0

(dbghelp: @0x6b8e06[cataclysm-tiles.exe+0x2b8e06]), 
(libbacktrace: debug_write_backtrace(std::ostream&)+0x56@0x6b8e06),
(libbacktrace: 0x6b8e06    [unknown src]:0    [unknown func]),

1

(dbghelp: @0x6b9c76[cataclysm-tiles.exe+0x2b9c76]), 
(libbacktrace: DebugLog(DebugLevel, DebugClass)+0x2d6@0x6b9c76),
(libbacktrace: 0x6b9c76    [unknown src]:0    [unknown func]),

2

(dbghelp: @0x6be240[cataclysm-tiles.exe+0x2be240]), 
(libbacktrace: realDebugmsg(char const*, char const*, char const*, std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > const&)+0x50@0x6be240),
(libbacktrace: 0x6be240    [unknown src]:0    [unknown func]),

3

(dbghelp: @0x9414bc[cataclysm-tiles.exe+0x5414bc]), 
(libbacktrace: item::fill_with(item const&, int, bool, bool, bool)+0x44c@0x9414bc),
(libbacktrace: 0x9414bc    [unknown src]:0    [unknown func]),

4

(dbghelp: @0x1156be0[cataclysm-tiles.exe+0xd56be0]), 
(libbacktrace: veh_interact::complete_vehicle(player&)+0x18a0@0x1156be0),
(libbacktrace: 0x1156be0    [unknown src]:0    [unknown func]),

5

(dbghelp: @0x44fe95[cataclysm-tiles.exe+0x4fe95]), 
(libbacktrace: activity_handlers::vehicle_finish(player_activity*, player*)+0x85@0x44fe95),
(libbacktrace: 0x44fe95    [unknown src]:0    [unknown func]),

6

(dbghelp: @0x479b5c[cataclysm-tiles.exe+0x79b5c]), 
(libbacktrace: activity_type::call_finish(player_activity*, player*) const+0x6c@0x479b5c),
(libbacktrace: 0x479b5c    [unknown src]:0    [unknown func]),

7

(dbghelp: @0xf35fa8[cataclysm-tiles.exe+0xb35fa8]), 
(libbacktrace: player_activity::do_turn(player&)+0x1508@0xf35fa8),
(libbacktrace: 0xf35fa8    [unknown src]:0    [unknown func]),

8

(dbghelp: @0x804713[cataclysm-tiles.exe+0x404713]), 
(libbacktrace: game::do_turn()+0x333@0x804713),
(libbacktrace: 0x804713    [unknown src]:0    [unknown func]),

9

(dbghelp: FT_Set_Named_Instance+0x73a9f9@0x1c63469[cataclysm-tiles.exe+0x1863469]), 
(libbacktrace: main+0x11c9@0x1c63469),
(libbacktrace: 0x1c63469    [unknown src]:0    [unknown func]),

10

(dbghelp: @0x4013bd[cataclysm-tiles.exe+0x13bd]), 
(libbacktrace: _tmainCRTStartup+0x23d@0x4013bd),
(libbacktrace: 0x4013bd    ../gcc-5.5.0.build_/mingw-w64-v6.0.0/mingw-w64-crt/crt/crtexe.c:341    __tmainCRTStartup),

11

(dbghelp: @0x4014cb[cataclysm-tiles.exe+0x14cb]), 
(libbacktrace: WinMainCRTStartup+0x1b@0x4014cb),
(libbacktrace: 0x4014cb    ../gcc-5.5.0.build_/mingw-w64-v6.0.0/mingw-w64-crt/crt/crtexe.c:197    WinMainCRTStartup),

12

(dbghelp: BaseThreadInitThunk+0x14@0x7ffc25d67034[KERNEL32.DLL+0x17034]), 
(backtrace_syminfo failed: errno = -1, msg = no symbol table in PE/COFF executable),
(backtrace_pcinfo failed: errno = -1, msg = no debug info in PE/COFF executable),

13

(dbghelp: RtlUserThreadStart+0x21@0x7ffc26ec26a1[ntdll.dll+0x526a1]), 
(backtrace_syminfo failed: errno = -1, msg = no symbol table in PE/COFF executable),
(backtrace_pcinfo failed: errno = -1, msg = no debug info in PE/COFF executable),

Backtrace emission took 0 seconds.

00:59:25.931 ERROR : src/item.cpp:9002 [int item::fill_with(const item&, int, bool, bool, bool)] tried to put an item (biodiesel, amount 1) in a container (jerrycan_big) that cannot contain it

Karol1223 commented 1 year ago

Were the specific 'batches' crafted with different components? It was pointed out to me a while back that since crafting results remember calories of used ingredients and biodiesel takes fat, which has calories, this may very likely be because different batches with different calories cannot mix.

DionysiaChen commented 1 year ago

yes, it seems to be that problem. Thanks for answering!

robotic-gamer commented 1 year ago

same sort of problem exists with crude lamp oil and animal cooking oil, which can cause major weirdness if trying to use a random mix of "low" value fats/tallow/lard (human/mutant etc.). one could be tempted to try to make a random mix of them to make them not rot, and having no intention of using the mix for food use. a better long term approach for these situations would be rather than prohibit mixing just use weighted averages of their various statistics to combine them, while most flags like "human flesh" are always inherited irrespective of the quantities involved.

github-actions[bot] commented 1 year ago

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.