I got tired of having to play whack-a-mole with players to track down all the crashes, so I’ve added some validation logic to validate:
1. Every event referenced is defined.
and to warn me:
1. Of all events that don’t have children (i.e. events without choices, or anyway of transitioning automatically). I can’t error on this, because obviously the last event in the game doesn’t have any children! I may go back and add a flag or something to events to allow me to say “this is *supposed* to be an ending event.” Then I *will* be able to error on this.
2. Of all events that are unused. This one definitely can’t be an error, because there are some events that are used, and then become unused. Basically, at the end of the current content, I have an event that says “Thanks for playing blahblah blah.” Obviously, I can’t remove any of those events, or people’s save games will break.
This won’t fix every possible crash (like if there’s a problem in any dynamic text), nor will it fix combat bugs. However, these checks should catch the most commonly reported bugs and crashes.
I’ve also implemented it so that I can turn the validation on and off. It doesn’t run in the version that I post, so it won’t affect startup time!
Anyway, this validation caught a few bugs, so this version fixes them:
1. Male characters weren’t being given the correct default outfit at the start of episode 3.
2. Fixes a bug in the sequence after you defeat a certain villain with a certain ally that resulted in some skipped text.
I also removed a few events that were no longer used.