Commit Graph

494 Commits

Author SHA1 Message Date
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
3a354752e6 Implement a picker to select a sector in Relocate Outdoors 2025-03-02 19:13:01 -05:00
2b93d739e8 Implement a mechanism for a special node picker to affect two fields
Use it for the MSG_PAIR picker and the PIC_NONE picker.
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
4174ccd470 Rework the special node button dictionary (#607) 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
89dbe98b2b Refactor special node properties struct to isolate the magic characters.
Basically what that means is that the magic characters are only parsed at startup – the scenario editor code doesn't need to understand them, instead using an enum.

This is part of the work for #607
2025-03-02 19:13:01 -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
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
2145d88133 Remove the <os> element from scenarios
Fix #522
2025-02-16 21:41:47 -05:00
8b873ffea5 fix crash bug when editing single text 2025-02-16 19:33:57 -06:00
8cff2428a9 DRY advanced town help. Fix #611 2025-02-16 00:02:22 -05:00
1ac6aeda05 scenario editor warn about outdated help windows 2025-02-15 11:00:19 -06:00
66256b305c Delete the "make shop random" button in favour of a preset selection when first creating the shop - this also adds "healing" to the list of presets 2025-02-15 11:33:40 -05:00
65cf27bc81 Reorganize Advanced Town Details and add some instant help
It now uses relative positioning as well.

Fix #546
2025-02-15 11:33:40 -05:00
9b513068bd Select monster current attack type. Fix #145 2025-02-08 23:10:12 -05:00
a7d0a142e3 launch terrain type documentation to fix #553 2025-02-07 09:51:45 -05:00
c20dbbf88e DRY launch doc url 2025-02-07 09:51:45 -05:00
9fd468f578 Merge pull request #548 from NQNStudios:talk-keys
Better editing for talk node keys

* The fields start out empty, and it is *allowed* to keep *one of them* empty. (A node only needs one key to be useful, right?
* When the node is saved, empty strings are replaced with `"    "`. If this is not harmless to the game logic, then I'll need to make the game aware that either key might be `"    "`.
* You cannot type more than 4 characters in these fields (unless there's a way to insert characters I'm not aware of).
* If you put 'buy' in a field, it automatically becomes 'purc'.
* There is a note next to the response keys (kind of squished in the corner) enumerating the special logic of the in-game Buy and Sell buttons.
2025-02-02 13:57:55 -05:00
1dcc400923 Create/Edit button for Receive Quest node 2025-01-24 09:56:44 -05:00
e082edf24a Remove reference to Blades of Exile license.
I don't know what it was, but I don't think we could enforce
one even if we wanted to. And it was probably to protect
Spiderweb's IP in the game, which is now Free, so there's
not much point.
2025-01-24 09:56:44 -05:00
77b11fe12a stricter maximum for talk node scrollbar. fix #144 2025-01-24 09:56:44 -05:00
f5afcea2b5 Choose button for personality of a talk node 2025-01-24 09:56:44 -05:00
06ac8569a7 guided enchantment choices in talk node 2025-01-24 09:56:44 -05:00
042aaafcac convert upper-case letters 2025-01-23 21:09:42 -06:00
9a9df8e7fa buy -> purc. They'll thank us later 2025-01-23 20:29:06 -06:00
cb9e43519f allow empty strings in talk node keys 2025-01-23 20:28:43 -06:00
c39172bd0f Merge pull request #543 from NQNStudios:editor-bounds
Scenedit Quality of life: be helpful when scrolling past boundaries

I've implemented 2 features here:
* When scrolling past the boundaries of the current outdoor section, you will get a yes/no prompt which can load the adjacent section for you at the corresponding center position.
* When scrolling past the boundaries (literal, not the changeable rectangle) of the current town, the editor will ask if you want to jump to the town's entrance in the outdoors. If there are more than one, you can choose.

I did this because I need to be able to find town entrances in the built-in scenarios so I can debug things.
2025-01-23 09:25:36 -05:00
4fd6d39aa1 fix 'launch scenario' with new scenario/renamed file 2025-01-22 09:26:16 -05:00
145824ea84 Handle exiting town with multiple entrances 2025-01-21 16:26:56 -06:00
e303363900 prompt to go to town's entrance in the outdoors 2025-01-21 16:02:37 -06:00
6b575a0463 when hopping sections, make cen_x and cen_y match last pos 2025-01-21 15:43:13 -06:00
74dbc07e23 editing outdoor terrain: prompt to jump to next sections 2025-01-21 15:36:22 -06:00
7b92779e13 make switching outdoor sections DRY 2025-01-21 14:35:31 -06:00
37640bf349 fix compiler warnings 2025-01-20 09:41:29 -05:00
17a4c25d3c Merge pull request #534 from NQNStudios:fix-479
Fixing text buffer texture/font corruption (#479)

* #479 demonstrates that the contents of the text buffer are NOT irrelevant for reproducing bugs. So I set up recording/replay for the burma shave easter egg. This also makes an easy way to mess with the buffer state when debugging (just mash &/\*/&/\*/&/\* n times)
* When a replay throws an error, it puts up a showError() dialog. If the next action is a control_click, the system will try to click that control on the error dialog--which is totally divergent from the replay's intended behavior. So we should just stop replaying when an error happens.
* If you have a long replay and want to run it very fast, but then slow down when you get to the sequence that reproduces your bug, now you can add a `<change_fps>` to your replay to achieve that.
* Fixes for the 2 legacy replay errors that I opened recently

Fix #479 
Fix #532 
Fix #533
2025-01-20 09:10:17 -05:00
34785c3254 fix check_for_interrupt stubs in editors 2025-01-16 16:53:37 -06:00
62313e5bd6 allow interrupting replay 2025-01-16 16:53:34 -06:00
3daf1d55e4 Update source files required for scenario editor target 2025-01-15 23:10:05 -05:00
1a2c0ed07b editor validate the debug party preference 2025-01-15 23:05:53 -05:00
5d1532afda all launch types can reset story 2025-01-15 23:05:53 -05:00
897047a566 use the exe-args format for child process 2025-01-15 23:05:53 -05:00
832ceffe8e launch from start: restart scenario if already in it 2025-01-15 23:05:53 -05:00
4eee43cd7e make eLaunchType enum class 2025-01-15 23:05:53 -05:00
fa2eb743f9 allow setting the debug party with file browser 2025-01-15 23:05:53 -05:00
5d56415299 pass debug party preference to launch command 2025-01-15 23:05:53 -05:00
59de48f25e Make scenedit prefs accessible on Windows 2025-01-15 23:05:53 -05:00
491857d0f9 clear error when working directory is wrong 2025-01-15 23:05:53 -05:00