Here we go again
I know it’s been a long time, let me tell you one thing. Yes, come closer. It’s a secret. This project is not dead! It lives brighter and higher than ever before! Let me show off the new assets:
After a facelift, the Falagard-extensions from CEGUI 0.5 are used, which means great new features: unified coordinates and a xml-based skin system. While porting the code to the new CEGUI version, I also improved the GUI-Code a lot: It’s much more OO, flexible and very easy to extend.
Additionally I combined CEGUI with BetaCairo to reduce the performance hit that was caused by the minimap. I can’t exactly measure the performance gain because there were much more changes going on until BlueWar was compileable again, but now there is no performance penalty per minimap icon any longer, which will definitely pay off in the future.
As a skin I chose the Vanilla scheme with some custom widgets (ImageButtons) as Vanilla doesn’t provide much of them. I hope you like it!
2. Abstract systems
After starting to read the great book “modern c++ design” by Andrei Alexandrescu I realised that I could implement a generic System with Plugins / PlugInHolders with different features as caching, simple listing, … / Factories for different Plugins / …
This is now used for nearly everything: the application itself, gui, players, objects, explosions, and others I can’t remember atm. I know that the book presents much more sophisticated models, but my understanding isn’t perfect right now and the current systems seem to work ‘good enough’.
3. Field occupation visualisation
As I got familiar with BetaCairo, I also used it for a feature I wanted to have since the introduction of the Battlefield (that stores all the game fields and their occupation data): Visualise it with a transparent plane that’s spanned across the whole terrain. It’s very subtle due to transparency but gives the necessary information for debugging or (I’m not sure yet) to the player in build mode.