Accensus (0c8a0917) at 26 Mar 19:50
Accensus (150e9ced) at 26 Mar 15:59
Accensus (99c2d930) at 26 Mar 02:40
On one hand, I was right. On the other hand, FUCK, I was completely wrong, this was indeed a Pandora's Box problem, just not what I expected. This bug doesn't happen on a new save because A) it's already been fixed by complete accident and B) it depends on where the original thinker falls in the chain when destroying all thinkers on level end. I made the rookie mistake of creating objects inside OnDestroy (DSGlobalData::Get()
) and now I feel fucking stupid. That explains the hard crash on exit too. Static thinkers aren't destroyed between levels, but I guess that somehow still tripped up ThinkerIterator anyway so it ended up creating a new object, which was then used instead of the original.
Moral of story: it could be anything so check everything, even the things that absolutely, positively, couldn't be the cause. They ARE the cause.
Ok it's not one of the mods that's for sure. Pushed that thing I mentioned. If this doesn't help narrow down the issue, I'll close it on the basis of "update fucked it up" until proven wrong.
Accensus (95920980) at 25 Mar 17:18
I'll push an update later. I suspect DSGlobalStats.Get() gets tripped up and returns a new static thinker which would explain why the array is empty. Will add some extensive debugging prints for one last test when I get home.
Accensus (81a1e87e) at 25 Mar 05:11
Yeah just as I suspected, the store items didn't get initialized. Which begs the question how you didn't notice that for 11 maps because they only get init'd once when you start the game. If the store worked fine prior to map11, it means something deliberately nuked the entire array. Unlikely to be the case, but what other mods were you running? It also may theoretically be possible for this to happen after updating, though I don't really know how.
I've pushed an update that will print some more information along with the error. Try that out on the broken save and post a screenshot of the console afterwards. Might not help me fix it much but at least it'll narrow it down somewhat. Assuming you didn't completely nuke the buggy save, in which case we're screwed lol.
Accensus (581ce510) at 24 Mar 20:52
Accensus (49e49ab9) at 24 Mar 20:39
... and 1 more commit
What is the console command to trigger one, so I can reproduce the exact state the game was in?
ds_debug 128
will force a random event on map start. Summoning the box normally won't start an event, but like I said I highly doubt it's the event that causes this.
I reloaded the map from that save where it crashes and played through exactly how I did prior, but it won't crash now when I summon and open a backpack. The only difference is that there isn't any active world event. What is the console command to trigger one, so I can reproduce the exact state the game was in?
Edit: Nevermind, I found out how to summon the box and kick off the event. I can't recreate this crash. In the exact same state in the exact same map on the save I had the crash with originally...
The mapset is Dominus Diabolicus, which I know isn't 100% compatible but it was working fine until now.
I was mistaken, it's map11. The weird thing is that I can recreate this using a save file and summoning a backpack to then open, which gives me the error, but loading that save file and changing the map via "Changemap map11" reloads the map and backpacks work again on that save file.
I'll try fiddling around with it and see if I can make it crash.
Accensus (c354d7d9) at 24 Mar 10:14