Have you seen “You’re still in combat, you ninny!“? Well that one has some particularly wild origins. Originally added as a failsafe wayyyyy back in the flash days, it existed to slap us in the face if a fight didn’t have proper resolution performed. We could test it using the function “inCombat()”. InCombat() also pulled double duty in late-game scenes that could be accessed via friendly dialogues OR fights. You might find it strange that something so simple would blow up in such a major way AFTER so much hammering on basic combat tests on Mhen’ga. I did. It turns out reality is just fucking strange sometimes.
Early on during the porting process, inCombat() was set to always return “false” no matter what was happening in the game, just to get that precious, first compile. Hundreds of man-hours later, it was completely forgotten about. New combat subroutines worked fine, and we weren’t into the late-game content that leaned on it for anything yet… until suddenly we noticed it wasn’t working as intended… and fixed it.
Now every save loaded up and screamed about being in combat! Fortunately the error could be cleared off by completing another combat encounter (and I THINK the underlying issue was addressed as well), but that didn’t make it any less annoying for people bumping into it.
Another one? Prettify Minutes.
This bad boy existed in two different places in the code… in two slightly different forms. Sounds like a simple fix, right? Just prune one and move on! Well, not quite. Some content looked for the pruned version and exploded pretty messily when it couldn’t find it. That’s real damn bad for a common utility function that would get looked at any time you opened… your email inbox, for example.
And another one…
We also rolled out updates to how we deploy to better handle applying fixes to both backer & public builds while the content is split on a planetary basis. One of the changes was to stop them from loading content that’s not supposed to be accessible. That’s fine most of the time, but let’s say there’s a character on Uveto who has events that can happen inside Tarkus’s nursery. Now the game’s blowing up every time you step into the nursery because so far as your build of the game can tell, it doesn’t exist.
The solution is for us to clean these up as we find them and relocate events like this to appropriate code chunk. We aren’t in the wild west flash days where every function was sitting out, globally accessible by damn near anything else in the game. And we’re working on cleaning all this up, I promise.
TL;DR: The game works well, but we’re still making aggressive changes to things under the hood that sometimes blow up in a big way. I’d keep writing more stuff, but I have bugs to squish.
Some Notable Bugs Squished
- Sleeping on the ship no longer crashes.
- Fixed a few crashes in the maternity area on Tavros Station.
- Recruiting Yammi no longer crashes.
- Yammi actually shows up in the follower list once recruited.
- Fixed a crash when talking to Bianca about work.
- Fixed crashes when trying to start certain sex scenes with Kase.
- You can no longer do Yoga with Paige while sore. I did this one because we got a bug report about Sore not vanishing on sleep… because the value had somehow stacked well into the 50’s. Sleeping only clears 3 at a time.
- VKo’s custom input can no longer be used with old cheats. We have no interest in fighting with those bugs when we have a fancy new cheat menu. (You can get to the new cheat menu by clicking on the top of the “i” in TiTS several times in a row after loading a save, then opening options and selecting the new Cheat submenu.)
- Removed duplicate function for adjusting soreness values.
- Improvements to drop menu UI.
- Added trade menu UI.
- Fixed a crash with Ovilium I thought I fixed already… but it turns out I had missed changing one important value…
- You should now be able to delete saves.
- prettifyMinutes shouldn’t be crashing anything anymore.
- A fuck of a lot of other fixes and changes. I mostly listed the fixes I tackled myself as well as some of the more easily visible changes from the rest of the team.