Visual C++ is annoying me and I haven’t even started using it yet.
For analyzing Frotz, Eclipse worked like a charm. But for Frotz for Windows, I need Visual C++. The updater failed from two sources today. So tried uninstalling it so that I could then re-install it. That took me a long time. I’m not sure how much, but it was much longer than it should have been.
Being used to Linux, the uninstall process was painful. Instead of just typing something like sudo apt-get remove nameofprogram1 nameofprogram2, I had to uninstall each component of the program one by one. For some reason it was divided into lots of small parts. Then I had to wait until it asked me to confirm admin privileges. For each part. I wanted to do Windows programming because Windows is the de facto platform for games, but this is not making me like Windows more so far.
I’ve looked at a lot of the Frotz source code. It’s undeniably simple and yet, it’s a big challenge for me. First of all, it is a virtual machine, no matter how you want to put it. Second, it’s not really that well commented. I’m still pretty enthusiastic about the whole thing. One aspect I had actually completely overlooked is how this project is getting me much close to Eclipse.
Eclipse is a very popular Java-based IDE, or Integrated Development Environment. Originally made for Java, it has been adapted for most languages one could reasonably expect it to work with, including of course C and C++. The needs of this project and the time constraints encourage me to use Eclipse and to use it in a more efficient way I have so far.
I’m using it to find out where variables and functions have been declared automatically, for example. It has more than one feature that help with that.
Frotz is definitely real-life code. I’m not in a world of textbooks anymore. This is an example of a comment I found:
This section is exceedingly messy and really can't be fixed
without major changes all over the place.
For a very different example, I found this nifty piece of code that takes a full filepath and only keeps the basename: