Commit Graph

742 Commits

Author SHA1 Message Date
0911d35696 Fix preview town/outdoor dialog crash 2025-05-11 10:49:36 -05:00
e2e7907e1a example preview button for ONCE_DIALOG 2025-05-11 10:49:36 -05:00
203edc46f1 Scaffold for dialog previews in the scen editor 2025-05-11 10:49:35 -05:00
58107f1856 str("") is unsafe on its own for clearing stream 2025-05-11 10:49:27 -05:00
06624d810c try to fix linker errors without new globals 2025-05-11 10:49:23 -05:00
6f2ae680de declare map_visible to make editors compile
Please forgive me
2025-05-11 10:49:23 -05:00
7cce42ce12 Scenario editor can launch unpacked scenario 2025-03-30 11:51:09 -05:00
1ab5a9f5e9 move choose_status_effect to common code for a debug action 2025-03-19 19:31:22 -05:00
4bb83e6f59 Update labels for If Context node and add a picker for the spell when context is "targeting" 2025-03-17 19:37:49 -04:00
c73cb6220b Fix a crash when editing a special node. 2025-03-16 14:09:05 -04:00
bcf8bf963e Show road to the right of the toolbar when the road tool is active, like what happens with other field types. 2025-03-16 14:09:05 -04:00
4e736a7e93 Fix foreground terrain to the right of the toolbar being drawn as a tiny square when the item palette is active and an item with a tiny graphic is selected. 2025-03-16 14:09:05 -04:00
2fd35b1053 Rework the scenario editor toolbars.
* The rightmost column is now mostly dedicated to non-modifying operations – eyedropper and zoom are moved there, pushing the 3 palette buttons down in town mode.
* Set Starting Location and Set Town Boundaries moved from the menus into the toolbar.
* Place Same Creature and Place Same Monster removed, since placing a monster or creature no longer resets the mode, so you can place as many of the same one as you like.
* Erase Town Entrance removed – what is it even good for? Removing the entrance without removing the town terrain is nonsensical. A town entrance can now be erased just by painting over it.
* Copy Item, Copy Monster, and Copy Terrain added. The latter copies a rectangle of terrain.
* Paste Special is removed. Instead there's a generic Paste button which pastes whatever type of thing you copied last, whether it be a special, a monster, an item, or even some terrain.
* Horse and boat no longer share a row with road. Instead, some of the fields have been reshuffled, so now fields take up three rows (though not three complete rows)
2025-03-16 14:09:05 -04:00
61c4bfdc99 Add two new town sizes to the create town dialog.
Huge towns are a whopping 128x128 tiles and don't fit in the terrain view even when fully zoomed out.

Tiny towns are just 24x24 tiles.
2025-03-16 14:09:05 -04:00
96e92b1655 Allow selecting any preset terrain when creating a town.
The option of "grass with flowers" is removed. If you want that, select grass, then select frill up terrain.
2025-03-16 14:09:05 -04:00
ca07ef172b Rework base processing to be more generic.
It now makes no assumptions about the terrains that might be defined in the base scenario.
* The existing terrain in the base's outdoors (previously ignored entirely) is now partitioned into 9 segments and plopped down to form the border of the new scenario's outdoors.
* It treats the locations (23,23) amd (24,24) specially, assuming they contain a sign and a town respectively. These are left as-is in the top left sector but replaced with the base ground in every other sector.
* Since there are now two separate bases, one for cave and one for surface, no substitution of terrain is done in the starter town.
2025-03-16 14:09:05 -04:00
16703ae7a2 Don't implicitly call recalcRect() 2025-03-16 14:03:53 -04:00
5cfc6ba328 Fix all the compile warnings that occur on Mac.
(Except the OpenGL deprecation warning and some warnings coming from Boost.Process.)
2025-03-08 20:43:04 -05:00
44f1f449c2 Add a stub for the rectangle picker that hasn't been implemented. 2025-03-08 20:05:12 -05:00
e92904e153 Implement the quest picker for the special node editor, even though it's currently unused. 2025-03-08 20:05:12 -05:00
f58381d707 Fix sound picker overwriting the value even when you click cancel. 2025-03-08 20:05:12 -05:00
678518a053 Add a string editor for the Story Dialog special node 2025-03-08 20:05:12 -05:00
3c811ef43d Use SDF picker in Townperson Advanced and Outdoor Encounter dialogs 2025-03-08 20:05:12 -05:00
c032307280 Add picker buttons and a cancel button to the Set Variable Town Entry dialog
Partially addresses #685
2025-03-08 20:05:12 -05:00
c1303f6e97 Use the personality picker for the Start Conversation special node 2025-03-08 20:05:12 -05: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
aad5460acb Implement the special version of the skill picker for the Has Enough of Statisic? node 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
b546f9c5e5 Omit the Create New String option for sign and area rect strings, as creating one here would leave it orphaned 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
18294b4f1b make fancy file picker function game-specific 2025-03-07 08:43:16 -05:00
5696b97491 Fix Scenario Details 2025-03-06 20:17:23 -05:00
Nathan R
598fd4836a Fixed up: Move file-static RenderWindow and RenderTexture instances inside functions to fix GL race condition on startup (#682) 2025-03-06 19:40:40 -05:00
cf736d1835 animate fake damage only allow static booms 2025-03-05 19:27:10 -05:00
bb3937d40a New feature: dialogs with pictures can animate 2025-03-05 19:27:10 -05:00
7ceeb51c50 allow choosing animated booms in pict dlg 2025-03-05 19:27:10 -05:00
9b4af4e69c Let individual dialogs toggle pict animations 2025-03-05 19:27:10 -05:00
df215d32f4 Clarify why the comment is there 2025-03-05 19:25:07 -05:00
90d5e1b778 use nested map for SDF names to save stack space.
Update semantics of the SDF array to (row, column) form to match
the picker space

Fix #674
2025-03-05 19:25:07 -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
9b05c23d15 Rework parentage and naming of dialog controls.
All controls now store a reference to their direct parent,
whether it be the dialog itself or a container control.

Every dialog control now has a guaranteed parent, which abstracts away
the three possible types of parents (dialog, container, and plain window).

The control name is now stored in the control from the moment it is parsed from the XML.
This means that it's set before the parseContent function, though after parseAttribute.
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
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
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