Commit Graph

827 Commits

Author SHA1 Message Date
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
4c4c70648c Add a fill-color attribute to <pict> 2025-03-08 20:05:12 -05:00
50637d3ddd Use an editable string picker for job boards when editing quests or dialogue nodes 2025-03-08 20:05:12 -05:00
6e94d23e05 Add pickers to a bunch of dialogue nodes that didn't have them.
This also includes something similar to the special node button dictionary for dialogue nodes.
2025-03-08 20:05:12 -05:00
a1bc923de8 Remove the Edit Saved Item Rectangles menu item in favour of a toolbar button.
The limit of 3 saved item rectangles has been removed - you can now add as many as you want.
However, the 1 per town limit is now strictly enforced.

The saved item rectangle is now shown with a cyan border when editing town.
2025-03-08 20:05:12 -05:00
1cf3a19b40 reorg autosave prefs 2025-03-07 08:43:19 -05:00
d54c61f982 Autosave preferences 2025-03-07 08:43:17 -05:00
27e76e5ffb preference to still use OS file browser 2025-03-07 08:43:16 -05:00
2396637d23 Implement file picker load/save normal 2025-03-07 08:43:09 -05:00
dbb4cb3797 Save picker XML 2025-03-07 08:31:35 -05:00
cabec65cdf xml schema allow anchors in containers 2025-03-07 08:31:35 -05:00
c9f79ba071 preferences add led for target-lock feature 2025-03-06 21:35:48 -05:00
14c36ed5a8 Debug action: crash the game 2025-03-06 21:24:07 -05:00
4cc6d7efb9 On catching fatal error, prompt to save the log and report 2025-03-06 21:24:07 -05:00
7dd2dd9d2e add confirmed credits names 2025-03-06 19:43:10 -05:00
cf736d1835 animate fake damage only allow static booms 2025-03-05 19:27:10 -05:00
434577426e Make -2 the magic infinite loops value 2025-03-05 19:27:10 -05:00
0db2dc056d Add labels for animation spec node fields 2025-03-05 19:27:10 -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
e1a03ce881 Add a 'filled' option to dialogxml pict and use it in get-items
Fix #629
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
2ee2a545ef BoEB: Make more items stack
These are all cases where similar items stack but these ones for some reason didn't.

Gemstones/Ores: Ruby, Crystal, Rough Diamond
Powders: Dust of Hiding and Choking
Missiles: Poison Darts; Arrows of Life and Light; Burning and Exploding Arrows
Reagents: Asp Fangs
2025-03-02 19:13:01 -05:00
4ac049340a BoEB: Add item type flag strings 2025-03-02 19:13:01 -05:00
1ad973c59e Use the editable string picker for item type flags in the item editor. 2025-03-02 19:13:01 -05:00
0ccdd38cb1 Implement a picker for selecting an item class, using the editable string picker.
Used in special node editing and also item editing.
2025-03-02 19:13:01 -05:00
62267261f3 Implement a picker for major events, using the new editable string picker.
It's used not only in special node editing (for Event Happens and If Event Happened?)
but also in the Townperson Advanced, Talk Node, and Quest editors.
2025-03-02 19:13:01 -05:00
97cba0471b Add an editable version of the string picker, which allows you to edit each of the strings inline and even add new ones.
This just implements the guts of the dialog, without using it for anything yet.

It also fixes a bug that caused a blank page to appear in the string picker if the total number of strings was an exact multiple of 40.

Closes #563
2025-03-02 19:13:01 -05:00
36dc44ad1c Implement a picker to select a boat or horse when editing a special node 2025-03-02 19:13:01 -05:00
8ab663b620 Add a user-defined name to vehicle definitions.
This also adds partial support for a custom vehicle graphic.
2025-03-02 19:13:01 -05:00
f4bdf95617 Convert the edit vehicle dialog to relative positioning 2025-03-02 19:13:01 -05:00
1d119e1f26 Implement a toggle picker for special node fields 2025-03-02 19:13:01 -05:00
8ac6caa8c5 Implement the new string types 2025-03-02 19:13:01 -05:00
56bbdbc6f8 Implement the inline special node help button
Though this creates the framework, the actual help strings have not been filled in yet.
2025-03-02 19:13:01 -05:00
0465923992 Fix some images that became ridiculously large due to unnecessary metadata 2025-03-02 01:33:01 -05:00
1d63e76c26 More buttons for debug help window 2025-03-02 01:15:53 -05:00
0afed5db59 A feature flag denotes whether a scenario uses the new or old format for its metadata. With the old format (legacy scenarios and openBoE scenarios created prior to this PR) everything displays in the scenario picker as before, and scenario designers get 2 text fields to display however they want, and 2 text fields that are pretty much useless.
With the new format, Author and Contact info are formatted onto the first line in the scenario picker display. The scenario designer gets 1 line to write a teaser.

Fix #593

Also fix a bug where scenario ratings were appearing as integers ingame instead of the correct "G", "PG", etc.
2025-03-02 01:09:03 -05:00
0f4b1124f6 reorder make-scenario1 2025-03-02 01:03:21 -05:00
f80f8a932a Implement a feature flags system.
* Scenarios contain a string map of feature flags. The flag names are the keys, and flag versions are the values, so a typical value might be "fixed" for bug fixes or for evolving features, "V1", "V2", etc.
* The game has a map of flags to lists of supported versions. The game can therefore signal that it supports a legacy behavior for a given feature flag. The last version in the list is considered to be this build version's default behavior.
* When launching a scenario, we check to make sure the game supports the scenario's required versions of its feature flags.
* When launching a replay, we make sure the game supports the feature flags that the version of the game that made the recording did.

Fix #555
Close #591
2025-02-19 22:32:12 -05:00
a669fe0223 handle showPipes in code only. Fix #609 2025-02-18 09:37:29 -05:00
2145d88133 Remove the <os> element from scenarios
Fix #522
2025-02-16 21:41:47 -05:00
920fa0d27b fix syntax in scenario.xsd 2025-02-16 10:11:30 -05:00
d218cda8c4 Cut pre-baked buttons out of sprite sheets 2025-02-15 16:45:25 -06:00
02ef9111cd fix help-debug formatting with proper line breaks 2025-02-15 16:04:32 -05:00
7383b39e69 Debug action: Preview every dialog layout 2025-02-15 16:04:32 -05:00
ea69bea57e clean up 'Number of Dice/sides' squashed texts 2025-02-15 16:04:32 -05:00
149666f522 resolve 2 TODOs in dialogxml 2025-02-15 12:13:34 -05:00
de818699bc note which dialogs need relative positioning redos. 2025-02-15 12:13:34 -05:00
950652db68 remove outdated info from help-inventory 2025-02-15 11:01:07 -06:00