Commit Graph

117 Commits

Author SHA1 Message Date
f394cfb411 more comments and simplification of graphics sheet export 2025-05-19 21:41:12 -05:00
9b2773bec1 Fix saving monster thrash number 2025-05-19 21:41:00 -05:00
20f26db42c XML changes 2025-05-11 10:51:35 -05:00
757532b7af save and reload new editor state 2025-05-11 10:51:09 -05:00
21536fa1fa extract editor state vars in cScenario to a new struct 2025-05-11 10:51:08 -05:00
005d40806c Flesh out acid as a real damage type 2025-05-11 10:51:08 -05:00
e95d4dcaf8 Write editor state to a new, separate xml file (fix #728) 2025-05-11 10:51:02 -05:00
da653a4334 fix file picker location preview in town 2025-05-06 15:24:13 -05:00
d89d149d5b Skip reading more things for file previews 2025-05-06 15:24:13 -05:00
7cce42ce12 Scenario editor can launch unpacked scenario 2025-03-30 11:51:09 -05:00
6f14c01487 skip more for file load preview 2025-03-16 14:03:53 -04:00
ea8dbbc06c skip reading some things for file picker previews 2025-03-16 14:03:53 -04:00
2053381ea9 rename and invert the 'manual' arg to 'preview' in load_party() 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
50637d3ddd Use an editable string picker for job boards when editing quests or 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
723ea965e1 allow party loading to fail silently when not manual 2025-03-07 08:43:19 -05:00
b7a647c489 record and replay fake fancy file picker 2025-03-07 08:43:18 -05:00
18294b4f1b make fancy file picker function game-specific 2025-03-07 08:43:16 -05:00
5bc1643be7 Do autosaves 2025-03-07 08:43:15 -05:00
2396637d23 Implement file picker load/save normal 2025-03-07 08:43:09 -05:00
da55e6f65d Function to get files in folder sorted by mtime 2025-03-07 08:31:36 -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
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
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
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
8ba173e5eb Record replays into AppData 2025-02-23 09:38:23 -06: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
6fc55ed311 Fix multiple inconsistencies when saving (#550)
* debug_leave_town use same logic as normal town exit. fix #549
* Standardize all save party code paths

Fix #480
Fix #204
Fix #267

* remove file_in_mem now that it is redundant
* Print message when save file not chosen
2025-01-26 12:56:57 -05:00
37640bf349 fix compiler warnings 2025-01-20 09:41:29 -05:00
80aa0341a1 properly force string prefs to be quoted on win/linux 2025-01-15 23:05:53 -05:00
b3d8a64e79 start implementing scenario editor launch function 2025-01-15 23:05:52 -05:00
5936b1c579 global vector for extra scenario directories 2025-01-15 23:05:52 -05:00
636da00220 debug builds look for scenarios in test/replays/scenarios 2024-11-30 22:52:53 -05:00
77297c2a88 wrap load_party base64 data 2024-11-10 00:32:17 -05:00
cd50a0183d track whether current scenario pushed paths 2024-09-21 20:57:22 -04:00
34b7eb9a76 Issue #101 unit test (should fail) 2024-09-21 20:57:22 -04:00
38de505723 merge check_for_intel() into mac_is_intel() 2024-09-21 20:57:22 -04:00
d76787932d Make check_for_intel() call automatically
This will avoid future repeats of the situation where it took way too long
to figure out why a unit test wasn't working
2024-09-21 20:57:22 -04:00
4702d19122 Add +4 as a possible enchantment 2024-09-10 22:18:59 -04:00
a4231005f6 Add a new "rechargeable" flag to items
A way to set this flag is not yet exposed in the scenario editor.
The flag is intended only for non-stackable items, but this currently isn't enforced.
Items now have a maximum number of charges, which is equal to their default number set in the item record.
Enchanted items with charges are now rechargeable.
2024-09-10 22:18:59 -04:00
753dbbcc59 Add a new dialogue mode to recharge items
This is currently useless, as exhausting an item's charges currently deletes it, but it is part of a work in progress
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
23e0db9922 Add enum for creature status 2024-08-21 23:47:44 -04:00
33f7562bfc Use a CDATA section for preferences in replays 2024-08-10 15:47:01 -04:00
4d4ab09395 Update Catch to v2.13.10 2024-08-10 15:16:24 -04:00
a52ce5189b Fix a bunch of undefined behaviour detected by the static analyzer in the saved game format. 2024-08-10 00:16:52 -04:00