Loobinex / keeperfx-unofficial

KeeperFX - Unofficial release
60 stars 7 forks source link

Active neutral units corrupt game #67

Open Loobinex opened 5 years ago

Loobinex commented 5 years ago

Issue is most likely introduced with in r1891 / 972880997ae5ae66b331e65e5f673e0664324bb3 / #52

As reported on keeperklan, in the recent alpha versions the game will start to show all sort of signs of corrupting, before eventually hanging on maps with tortured neutral units.

In the log file you will find errors like this:

Error: place_thing_in_mapwho: Non-existing thing index 645 in mapwho! Error: remove_thing_from_mapwho: Non-existing thing index 645 in mapwho before index 643! Error: update_things_in_list: Infinite loop detected when sweeping things list

The latter error message I believe might be another bug that is revealed by 'our' new one.

To reproduce this bug, follow these steps: 1) Run KeeperFX Unofficial 1891 or newer 2) Start the map Morkardar (the first of the deeper dungeon maps) 3) On the map, from the very top row of your dungeon dig right about 20 tiles until you reach a pathway connected to an iron door and a treasure room. 4) Claim the treasure room and notice the red puffs of smoke do not disappear. This tells you errors are occurring. 5) Break down the iron door and find the neutral reaper getting tortured. Claim the room and notice the edges will remain as if the room was neutral. It tells you the same thing.

If however you follow these steps with the 'classic bug' PASSIVE_NEUTRALS enabled, you will notice nothing will go wrong. (In rules.cfg edit line 38 to PreserveClassicBugs = PASSIVE_NEUTRALS).