Project Icarus


Back
Smack! That was the sound the folder made when it was thrown down in front of me. "I got a new project we need to complete," Dan said. "It is called Project Icarus. I am going to need your help back on the C++ side." "To hell I will help!" I said. "You said I didn't have to write any more C++ code. Remember what happened last time? You said I could just work on Lua code". "I need you Buffy, you are the best." "Give me one good reason why I should help you with this." "Oh come on Buffy, I will take you to Buffalo Wild Wings. Maybe you will see your friend there."

It sounded like I didn't have much of a choice. I said goodbye to my Lua code for now:

Dan said that I needed to take every BlockPath object and replace it with something new called an IcarusPath object. "I'm scared Dan. I'm not sure this is a good idea." "Don't worry Buffy! The C++ language is statically typed. Nothing will go wrong." "Won't there be other changes that need to be made?" "Well, just deal with them as they come up. I have faith in you." I was scared to touch the code. Icarus is the name of someone who flew too close to the sun. It sounded like that's what we were doing with this new project. I worried that adding one new line of code would cause the codebase to reach critical mass and implode into itself to form a neutron star. I needed to reaffirm my faith in the C++ language:

I kept putting it off, but eventually I started to make the changes to the code. The bridge to the Icarus world was creating a new root to the true root (call it the level negative 1 root). Eventually the plan started to take shape. It took many cases of diet orange soda, alternating between writing a few lines of code and taking days to deal with new issues that I had not foreseen. This was the new structure of the world:

Typing the code was not easy. My hooves were hurting. In the end I got the assignment done, and I retained a surprising amount of my sanity.