Commit Graph

35 Commits

Author SHA1 Message Date
f1bdb69e5b BoECB: Include when building and packaging 2025-03-16 14:09:05 -04:00
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
2c662b7c4d Add profile.* to vs projects 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
a18f754e11 Visual Studio launch tests with correct cwd 2025-02-15 16:04:14 -05:00
e83ad32618 VS2013 Add Catch/Clara include directories 2025-02-15 00:08:41 -05:00
90a1519b0b VS2013 projects use vcpkg manifest mode 2025-02-15 00:08:41 -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
dafaabc40e add boost-process to windows dependencies 2025-01-15 23:05:53 -05:00
9d972a3961 Pick the largest suitable default scale. Fix #468 (#472) 2024-11-19 19:17:15 -05:00
46f48b94ed compile-guard some git logging for MSBuild 2024-09-15 22:14:53 -04:00
0527494f60 add cppcodec to visual studio include paths 2024-07-28 17:07:33 -04:00
77ff65b14e visual studio projects add new files 2024-07-28 17:07:33 -04:00
1bb0927ecb Update and fix Windows CI builds
- boost-spirit dependency needed to be installed
- Visual Studio wanted boost/filesystem.hpp included in more places
- a deprecated enum was removed from new versions of boost, so we use
  its replacement enum now
- vcpkg repository is now pinned to a commit where boost 1.84 libraries
  work smoothly, there should be no more surprises
- vcpkg dependencies now cache, so successive CI runs are dramatically
  faster
- for win-scons, we need to use 'call' in our batch script to source
  vcvarsall.bat
- I updated the includepath and libpath we pass to win-scons to match
  reality, but it still can't find any vcpkg libraries. This will need
  further sleuthing
2024-05-29 19:39:03 -04: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
f70f63eead Update and clean up the Visual Studio 2017 project files
These were very shoddily put together!
It seems the person who made them never really tried building
the editors or the tests.

Also included here are a couple of minor source changes that are needed
to make the project files build.
2023-01-05 19:29:16 -05:00
286e9f99ae Fix misclassified file in the MSVC project files 2020-12-21 17:16:32 -05:00
f14c99f14b Split out cContainer, cLed, and cLedGroup into their own files 2020-12-21 17:16:15 -05:00
a8e120d672 Update VS2013 project 2020-02-09 19:56:28 -05:00
f9f4d5671c Factor out the framerate limiter into a class
Patch from @x-qq
2020-02-01 21:03:56 -05:00
4859fa70bc Factor out the game toolbars into a class.
This includes the following related or incidental changes:
* Remove the win_from_rects global variable. With one minor exception, they were all equal to the relevant render texture's size anyway.
* Split out time advancement from the handle_action function into a separate function
* Split out each individual button action into its own function
* Thanks to the above two, button actions triggered from the keyboard (and menu spells) no longer pass thru handle_action
* Side-effect: keyboard shortcuts and menu spells no longer trigger the button press animation
* Button presses now behave like proper buttons
* Button clicks are now grouped by effect in the handling code, rather than by index
* Removed a variable that mysteriously caused dialogue to become blank
2020-01-30 00:00:40 -05:00
542c037342 Integrate a new resource manager which should have better performance 2020-01-26 11:53:19 -05:00
4f785e2650 Use enums for most of the rest of the game constants.
This adds an "enum map" type that allows safe usage of an enum to index an array.
(That is, it enforces that the index is of the enum type.)
2019-11-24 20:28:52 -05:00
a0b61c1065 New VS2013 projectfile fixups
* Fix non-relative include paths for resources
* Fix one file path for the tests build
  (Currently tests crash for me, but at least they do compile?)
* Remove old VS project junkfiles from gitignore
* Fix missing resource compiler include paths for Release builds
2018-03-03 17:41:29 -05:00
Mark Clark
05711ec831 Removed copyfiles.bat and replaced functionality with MSBUILD targets;
Added 'gitinfo' NuGet package to replace need for bash to create gitrev.hpp;
Added preproccessor statement to prevent 'gitrev.hpp' from being referenced;
Re-ordered preproccessor definitions for easier diffing;
2018-02-25 23:30:13 -05:00
Mark Clark
942b102ed4 Corrected 'AdditionalIncludeDirectories' paths;
Corrected 'ForcedIncludeFiles' path;
2018-02-25 23:23:44 -05:00
Mark Clark
f81b6fd927 Fixed paths on all project source files; 2018-02-25 22:55:38 -05:00
Mark Clark
265f959ecf Moved project; 2018-02-25 22:54:48 -05:00