CleverRaven / Cataclysm-DDA

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

Set of clothes are currently error prone and not working as expected #74237

Open ProjectMithril opened 6 months ago

ProjectMithril commented 6 months ago

Describe the bug

I was trying to use set of clothes to make different armor sets for raiding/crafting as a stylish character but it is either generating errors and duplicating the set of clothes, or generating just errors, or its sometimes not generating errors but not properly switching the armor by leaving parts on the body. Sometimes it is also switching the side of the equipped item.

From some additional testing there seem to be 3 bugs happening here. One is where the set of clothes, when it puts on the items it does not take into account sides. So it puts your right side bracelet on your left. The second is where it is inconsistent about what it swaps, so if you wear 2 drop bags, 2 bracelets and 2 rings it will swap the bracelets and drop bags, but not the rings. It will however swap the rings if you use the set once more. The switching of the rings in this case also produces the stylish is inconsistent error. Furthermore if you have the 2 rings equipped but also equip a normal item (like a shirt) it will swap the shirt but not the rings. The third is where if you wield the set of clothes (because a full set of armor can be too heavy if you are already wearing armor) it asks you if you want to draw from the item, pressing yes on this will result in 2 errors, the tried removing an item error and did not find item.

Attach save file

N/A

Steps to reproduce

  1. Make a player with stylish and 2 bracelets(left and right) 2 drop pouches (left and right) and two rings, you can also wear hair pins. 2. Use a set of clothes, observe behaviour. 3. Use set of clothes again, see inconsistencies. 4. perform the previous steps again, but now before you use the set of clothes a second time equip a tshirt. then observe behaviour.

Expected behavior

You would expect the set of clothes to swap the entire set of clothes, and respect the proper sides. You could argue that it should not swap the hairpins and fancy items, but then it should never swap these. It should always swap in the same predictable way and not generate errors. It should also not ask you to unholster what is in it while wielding it, as this causes errors. Considering how heavy the set of clothes can get as it contains all your armor. It would be even better if you can either configure it for specific slots, or if you can use it without having to wield it/pick it up.

Screenshots

No response

Versions and configuration

Additional context

This error was produces on using the set of clothes the first time:

DEBUG : Morale "Stylish" is inconsistent.

FUNCTION : operator () FILE : D:\a\Cataclysm-DDA\Cataclysm-DDA\src\morale.cpp LINE : 837 VERSION : 82c1845

DEBUG : Tried removing item from object which did not contain it

Using the holster function while wielding it produces this error for each item:

FUNCTION : remove_item FILE : D:\a\Cataclysm-DDA\Cataclysm-DDA\src\visitable.cpp LINE : 552 VERSION : 82c1845

last error in the list is:

DEBUG : did not found item set of clothes > 13 ++ clothing / 20 items to remove it!

FUNCTION : i_rem FILE : D:\a\Cataclysm-DDA\Cataclysm-DDA\src\character_inventory.cpp LINE : 439 VERSION : 82c1845

github-actions[bot] commented 5 months 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.