GSoC Week 10: Nuclear moon bases

Last week I worked on mission 6, “That Old Devil Moon”. It features some interesting lore of two ancient civilizations that annihilated each other through the use of nuclear weaponry. What a totally, uh, alien and unthinkable prospect, haha…

This mission features the most obscure puzzle in the game, which involves converting “sacred numbers” from base 10 to base 3 to crack passcodes! While I personally can handle a bit of base conversion, the even bigger sin is that the hint required to open the door is missable! If you fail to look up every remotely relevant entry in the ship’s computer before beaming down, you’ll have no way of even knowing what numbers you’re even supposed to convert! I definitely had to look up a walkthrough here.

Incidentally, while implementing the text input boxes, I found a way to crash the game. Simply fill up the box, then repeatedly press the “end” key, enter a character, press “end” again, etc. Soon the text buffer overflows into something that’s probably important and the game crashes. This works because the “end” button is the only one that doesn’t check if the length of the string exceeds the maximum text size. Naturally this is fixed in scummvm.

In addition, this mission, too, has some ways to get an infinite score, by repeatedly scanning or using the computers in the final room. Using McCoy’s tricorder on the air in this room also works. That’s all in the way of bugs that I’ve found, though.

GSoC officially ends next week. I’ve opened up my pull request to the main branch, though the engine is still incomplete, so I can continue working on it in-tree; in addition to working on the final mission this week, I have some feedback to take care of before the pull request gets accepted.