Week 2 Summary
This week, I worked mostly on media support, although I started the week with the problem of trying to figure out whether an object could move. Although I never came up with a perfect answer to that problem, the current solution will work for all existing rulesets and will hopefully be improved as the order panel work takes place in the future.
Media support was my main task, however, and it started with panelPicture, which already had most of the structure in place. I had to parse the media parameters from the objects’ property lists, get the available file extensions for those filenames from the Media.gz file, then wait for the media to download if necessary and display it in place of the images that had been shown previously.
A similar process was necessary for panelSystem, except with icons instead of full images. The supporting refresh functions that tied into the media download callbacks were not already present this time, but I was able to copy most of the basic structure from panelPicture.
Finally, I worked on the starmap itself – instead of attempting to auto-detect the type of object and therefore how to draw it, it makes more sense to use icons that the objects specify for themselves, if they specify any. The code was similar to that in panelSystem, with the exception that the final result was to draw on a wxFloatCanvas rather than directly on another wxWindows control. This did not prove difficult, so I was able to get this working as well.
Here’s the client at the end of week 2:
I also made a small change to update the code that detects where your homeworld is to work with tp04.
Next week, I will start working on orders. This will be a major task and a crucial one for the project, since orders are the main source of interaction with the game! Currently they’re completely broken, so I have some work ahead of me. I’ll need to start re-designing the orders panel to have multiple queues, and then I’ll have to work on getting and sending the actual orders themselves.