Commit Graph

45 Commits

Author SHA1 Message Date
8b08b46ea0 Unbake the special help texts.
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.
2025-03-16 14:03:53 -04:00
0840b534f9 add profile.* to xc12 proj 2025-03-16 14:03:53 -04:00
b86ef8ae39 The special node dictionary now supports specifying different labels or pickers based on the value of another field. 2025-03-08 20:05:12 -05:00
628b0ee677 Add a new spell pattern picker.
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()
2025-03-08 20:05:12 -05:00
3d48cb14e7 Add an SDF picker for selecting a stuff done flag and optionally giving it a name.
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.
2025-03-02 19:13:01 -05:00
5861268e8c Add a location picker for selecting a location in a town or outdoor sector.
It's currently used in special node editing and in advanced town details.
2025-03-02 19:13:01 -05:00
f018f051f6 Add a new tilemap control that replicates its children into a fixed grid.
Use it for the Edit Terrain Object dialog.
2025-03-02 19:13:01 -05:00
4174ccd470 Rework the special node button dictionary (#607) 2025-03-02 19:13:01 -05:00
3bd8874147 make all targets compile text-based pref handling in prefs.cpp
mac replays use preference std::map
2025-02-14 09:54:33 -05:00
3daf1d55e4 Update source files required for scenario editor target 2025-01-15 23:10:05 -05:00
346ce7eb94 add new brew directories to xcodeproj 2025-01-14 13:41:37 -05:00
fb8b9e5da5 Use macos-13 for ci 2025-01-07 21:33:18 -05:00
9d972a3961 Pick the largest suitable default scale. Fix #468 (#472) 2024-11-19 19:17:15 -05:00
7e0b870216 Rework Xcode build a little so that gitrev.hpp is generated by the Common target instead of the Data target, to allow it to properly work even in incremental builds 2024-09-15 22:26:40 -04:00
81166899d5 Xcode: Fix not running XML dialog validation on incremental builds 2024-09-10 22:18:59 -04:00
6965b822dc Gather all enchantment info into a single place
This also resolves several TODO notes about duplicate code and makes cPresetItem::ability an eEnchant
2024-09-10 22:18:59 -04:00
71a9d11cd0 Gather all alchemy info into a single place 2024-09-10 22:18:59 -04:00
e7d5b4ff81 Create an info struct for the eStatus and ePartyStatus enums
This reintroduces the normal speed icon and opens #230
2024-08-28 11:01:09 -04:00
336d0e626b Add sample command-line arguments to the Xcode scheme 2024-08-22 23:21:29 -04:00
d74b11aa31 Reform command-line handling to use Clara, which is bundled with Catch 2024-08-22 23:21:29 -04:00
4d4ab09395 Update Catch to v2.13.10 2024-08-10 15:16:24 -04:00
3020a7ba1b add src/tools to xcode header search path 2024-07-28 17:07:33 -04:00
5131f852f2 xcode add cppcodec to search paths 2024-07-28 17:07:33 -04:00
189ffe89dc try adding replay.cpp to xcode projects 2024-07-28 17:07:33 -04:00
5bce71d59f Make implicit switch fallthrough an error in the Xcode project and fix all places that do it
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.
2023-01-21 22:39:33 -05:00
b929852e22 Maybe the MSVC build failure is because they have the same object name? 2023-01-21 17:01:25 -05:00
effc355fe1 Enable the dialogs test in Xcode and fix one dialog that failed
This also makes the test itself better
2023-01-21 16:36:31 -05:00
733d6ce116 Fix scenario editor build in Xcode 2023-01-21 16:34:54 -05:00
76ee270c6e Add some new features to our quoted string parser, and a unit test
- Now supports \n \t \f escape sequences
- Now supports strings with literal tabs
2023-01-21 15:55:58 -05:00
3bdcf02be0 Handle modifier keys differently to avoid Apple flagging us as wishing to monitor input from other applications
Fixes #291
2023-01-12 21:43:45 -05:00
35a890a577 Add a partial unit test for vector2d and fix several issues with the resize function 2023-01-12 21:26:08 -05:00
e3d6a4748e Dialog XML definitions are now loaded thru the resource manager 2023-01-07 11:59:42 -05:00
9a4056019b Xcode 12: Silence warning by updating deployment target 2023-01-06 21:00:44 -05:00
cc2e3403f8 Xcode: Try adding the app package as a fallback in the rpath
Also, that extraneous quote is probably bad?
2023-01-05 19:29:16 -05:00
047a3190c2 Xcode: Add Homebrew and MacPorts paths to the project search paths 2023-01-05 19:29:16 -05:00
b469b3aeea Add a new class to encapsulate the file format used by save files
The class is not yet used in the wild, but does have a unit test
2023-01-04 19:57:12 -05:00
43ad1be6ca Make sure use of C++14 and C++17 extensions are an error instead of a warning 2023-01-04 19:57:12 -05:00
e34409f3d6 Add separate Copy Frameworks phase just for the unit tests to avoid dyld not loaded errors 2023-01-04 19:57:12 -05:00
f6f7cd59dc Make catch a submodule so it can be updated more easily 2022-07-12 20:35:45 -04:00
5b2561d034 Disable header maps in Xcode 12 2022-07-12 20:35:41 -04:00
f5620f34b4 Disable comma operator warnings
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.
2022-07-05 09:36:39 -04:00
864aa95fea Fix various compiler warnings 2022-07-05 09:29:15 -04:00
ee5e7fd48c Various fixes to make the project build in Xcode 12 on Catalina
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.
2022-07-05 00:17:52 -04:00
e77a0743a7 Apply most of the recommended Xcode update procedures
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.
2022-07-05 00:17:07 -04:00
457965870e Duplicate the XC4 project for XC12 2022-06-29 23:17:06 -04:00