Ticker Edge Cases

Hey Folks! Bit of a rough day, today. Working with this ticker/timing code seems fraught with peril, as several edge cases broke down, and even pinned the game in endless loops.

The good news is that yesterday's hypoxia bug seems to be a simple typo. While I was testing something else, I noticed that my data had a few stats still using the old ticker system on top of the new one, so they were incrementing more than they should. Removing that seems to have fixed the issue. Basically, I had used undo to check something in the data, and forgot to redo it again to remove the old stuff.

I also found one more place where I was applying hours instead of seconds, so fixing those units helped.

Yay!

But the bad news is that I ran into several other bugs today. One of which may have always been there but never exposed before due to another bug. A "load bearing bug," I guess you could say. Anyway, that turned out to require my pathfinder code to cancel walking directly, instead of issuing a ticker expiration that tells the crew to do it.

There's also something preventing countdowns in cases where A is talking to B. Something about the hand-off from A to B messes up the timers, so B forgets to follow-up, and A ends up waiting forever.

It should be solvable once I unwind all this code and try some more tests. It's just really annoying that this tends to be a large number of steps to watch for problems. Definitely work that needs a fresh brain!

Tags: Ostranauts