The text in the various help dialogs that was previously baked into an image is now drawn as text, meaning that it benefits from text unblurring when scaling is active.
This entails some small changes to layout, since it's a different font.
Dialog engine changes:
* A new picture type allowing to draw the inventory button icons directly into a dialog.
* A new widget type that simply draws a line between two points.
The picker is used in the special node dialog and also in monster abilities.
Some changes were made to the game as well:
* If the rotatable wall is used for a field missile or touch ability, there's no longer an option for the designer to pick an orientation. Instead, it behaves like the rotatable wall in a radiate field ability, selecting an orientation based on the creature's facing direction.
* The magic values sent to place_spell_pattern for direct damage were rearranged to match the order of the eDamageType enum. This should have no effect, since the core place_spell_pattern function is only called by the various wrapper overloads. It also simplifies the code quite a bit.
* The Protective Circle spell pattern is now exposed to the place patten special nodes. It can be used as just a radius 4 circle, but the effect of different layers of fields can also be obtained by specifying a field type or damage type of -1.
There is also a change to the dialog engine:
* Calling setText() also implicitly calls recalcRect()
In effect, this is a combination of two of the previous pickers:
the location picker, and the editable string picker.
This required quite a significant rework of how the tilemap places its children.
Currently it's only used in special node editing.
I plan to add its use in many other places too though.
Since we can't directly use C++11 attributes, I've chosen BOOST_FALLTHROUGH to annotate intentional fallthroughs.
Thanks to @fosnola for spotting a missing break, which triggered this.
I've checked and found that none of the existing warnings are incorrect (other than those fixed a couple commits ago), but the main reason for disabling it is that one of the warnings is in Boost.Array which I can't do a lot about.
This now requires Boost to be installed by MacPorts. However, we could add the standard Homebrew path to the include path as well to support both.
This also requires SFML and its dependencies to be installed in /Library/Frameworks; it's unclear whether this is reasonable.
Code signing is completely disabled, and Zlib is now loaded as a tbd instead of a dylib. This will probably break for some older computers, but hopefully they can just use the Xcode 4 project instead.
Boost is forcing -mt suffixes on all its libraries. Whatever. We'll just roll with that.
This makes the script work both with and without the suffixes.
Using parentheses instead of braces silences the stupid narrowing warning, so yay.
Some of these warnings are probably not correct but I can fix them later
The code signing recommendations and the suggested plist updates were skipped.
The plist changes in particular appear to be unsupported in Xcode 4.