hang/crash at certain point in game
At a point the game becomes very unstable, last working savefile is attached. Trying to walk one or two rooms or even just waiting leads to a hang, CPU load is capped at 100%, game has to be killed after several minutes.
I am using TrapQuest180607W with the gargoyle interpreter (version 2011.1) on Linux.
To reproduce, try walking to the western rooms or just wait, The game should hang.
I also attached the preferences file in case it is relevant.
- Status changed from New to In Progress
- Priority changed from Normal to High
- Time moving forward seems to cause the hang
- Barbara being dead doesn't change anything
- Being in another dungeon location doesn't change anything
- Removing all clothing prevents the crash and a random item of sissy clothing spawns; it seems likely that the sissification code is the culprit here.
- Disintegrating only a single item of sissy clothing (I chose the leggings) doesn't work, suggesting the problem isn't that it can't find a free slot.
- Unable to reproduce just by triggering sissy function over and over again in fresh game
- Narrowed the problem down to the chastity cage, disintegrating this item prevents the game freeze (and it immediately gets summoned next turn, and the game does not freeze within the next few turns)
- The showme status of the cage before being disintegrated and after it respawns is the same.
- The game crashes again approximately the amount of time later you'd expect, for another sissy punishment to be scheduled.
I've been through all instances where the chastity cage is specifically mentioned in the code and can't see anything obvious.
The sissy punish code itself looks robust to me. The most likely line to misbehave is
let S be a random off-stage sissifying actually summonable fetish appropriate clothing;
but I can't imagine which of those adjectives is causing it to hang when it doesn't usually.
- Status changed from In Progress to Closed
Found and killed the bug at last. It was to do with clothing layering getting in a muddle because apparently you can't use "repeat with N running from X to Y" if X is larger than Y, just nothing happens. I've also added escape clauses to the while loops that were going infinite to make sure that doesn't happen again even if the layering gets in a muddle.
#4 Updated by Nicolas Barto 3 months ago
OK, that's good to hear. :-)
I actually did some debugging on my own and was about to write some observations, including problems with the layering. Thank you in any case! :-D
I guess I'll remove all the pieces below the waist and reapply them properly, and see what bits are left over. ^^