CleverRaven / Cataclysm-DDA

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

Multi cookers self-delete when recipe is finished cooking #44274

Closed tranxendance closed 3 years ago

tranxendance commented 4 years ago

Describe the bug

Title of the pr should describe it sufficiently. Sometimes it causes a full crash of the game.

Steps To Reproduce

1.Find inworld or debug in a multicooker and battery, potentially mod it with vehicle battery because each recipe takes an enormous amount of charges.

  1. Set to make any recipe. Summon raw ingredients via debug menu if necessary.
  2. wait until complete
  3. Multi-cooker implodes in a cloud of error, sometimes throws an error message, sometimes crashes the client.

Sometimes step 3 is not needed and you get the immediate crash

Expected behavior

The meal to cook while I was working on something else

Screenshots

image

image

image

Versions and configuration

Additional context

New account, so technically my 'first issue' although i'm pretty sure i've done one of these before in the distant days of yore

Crash: if your problem refers to a crash, please add the following files to the "Additional Context" paragraph: config.zip Testworld.zip

ZhilkinSerg commented 4 years ago

Duplicate of #37167

wapcaplet commented 4 years ago

Tested in 0.E-6063-gd7d885f047 with a multi-cooker loaded with medium plutonium battery. Near the end of cooking time, I am getting an error like these:

 DEBUG    : tried to put an item (meat_cooked) count (1) in a container (multi_cooker_filled) that cannot contain it: pocket with type (CONTAINER) not found
 FUNCTION : ret_val<bool> item::put_in(const item &, item_pocket::pocket_type)
 FILE     : src/item.cpp
 LINE     : 1102

 DEBUG    : tried to put an item (broth) count (2) in a container (multi_cooker_filled) that cannot contain it: pocket with type (CONTAINER) not found
 FUNCTION : ret_val<bool> item::put_in(const item &, item_pocket::pocket_type)
 FILE     : src/item.cpp
 LINE     : 1102

The multi-cooker does not vanish, but it does remain stuck in "cooking" status, even though it is not on:

image

After this, I cannot cook anything with it, and my crafting menu does not indicate I have a multi-cooker available anymore:

image

I got the same result with a cooker in my inventory, and one sitting on the ground.

If I select the cookier while it is cooking, activate, and choose "Stop cooking", the cooker also remains in "cooking" status and can no longer be used.