Commit Graph

69 Commits

Author SHA1 Message Date
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
fcf0bcc324 add show-pipes attribute to <text> 2025-02-09 20:37:46 -06:00
c079d0f5a9 Allow int value for text size in dialogxml 2025-02-09 11:16:24 -06:00
de45b379e3 add max-chars attribute to text field 2025-01-23 20:12:32 -06:00
270b2bb802 fix last case of textSide 2024-12-03 09:44:40 -05:00
3bd9154412 rename new led attribute 'label-pos' 2024-12-03 09:44:40 -05:00
c35ba7cc62 LEDs allow text on the left side 2024-12-03 09:44:40 -05:00
2b01a18bb3 make text-size an optional attribute of button 2024-12-03 09:44:40 -05:00
7a1297b2c8 specify align attribute type as enum 2024-11-23 17:06:15 -06:00
af2253e5ce reconfigure about-boe.xml with right alignment convention 2024-11-16 17:47:07 -06:00
4702d19122 Add +4 as a possible enchantment 2024-09-10 22:18:59 -04:00
7e063ab1ed dialogxml schema: fix <field> missing positioning attributes 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
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
7f12c6eea4 Support underlined text in DialogXML 2020-02-26 01:20:11 -05:00
49d88c76e2 Add page definition facility to the DialogXML <stack> widget
- New <page> element in <stack>
- Visibility of elements is now remembered when switching pages
- Unstoring a <pict> on a stack page no longer resets default values
- Documentation updated for new features
2020-02-25 21:05:59 -05:00
c8549ca680 DialogXML: Support <key> in <text> with optional ref= 2020-02-23 23:02:16 -05:00
c65bac2a8f Implement relative positioning system for DialogXML
This allows widgets to be positioned relative to other widgets.

Two dialogs have been converted to use relative positioning.

Also fix some issues with calculating the dialog rect.
2020-02-23 22:00:01 -05:00
335fb87e51 Store custom graphics classifications as symbols instead of integers 2020-02-09 12:10:52 -05:00
4e9117035d Small improvements to scenario validation script
- Now works for paths containing spaces
- No longer deletes the scenario/ folder if the scenario was already called that
2016-09-17 19:23:16 -04:00
bd3aa33807 Schemas: Fix indentation 2015-10-06 22:17:27 -04:00
5667849835 Dialog schema: Convert indentation to tabs 2015-10-06 22:17:27 -04:00
f0af9ff67f Schemas: Enforce root element by eliminating global element declarations 2015-10-06 22:17:27 -04:00
68eec0fe16 Some schema updates
- Store timers as a type instead of an element in the common schema
- Fix errors in terrain and monster schemas
2015-10-06 22:17:26 -04:00
8afd3825b0 Refactor the dialog engine's event handling to make it easier to add new events in the future
- Focus event split into focus and defocus
- Scroll event added but not yet properly implemented

Also:
- Remove the useless (and ignored) clickable attributes from the schema
- Pave the way for controls other than fields to be able to recieve keyboard focus
2015-10-03 19:49:33 -04:00
8b90fa614b Make stack control a real container instead of a controller
- Also add framed/outlined attributes to it and to LED groups
2015-10-03 12:30:26 -04:00
b176918dda DialogXML: Make the frame style format parameter a first-class citizen
- It's now exposed in the schema with a new attribute, outline, on all elements that accept framed
- It now has four possible values: solid, outset, inset, double. Dashed or dotted may be added later; they're a lot harder.
- Second make scenario dialog uses a custom frame style
2015-10-03 11:13:33 -04:00
03bc3d05e6 Remove key-mod attribute from dialog schema
- Modifiers are now given in the def-key attribute, as originally intended
- Dialogs that have a help button now assign F1 to that button (replacing shift+/ in some cases)
- F1 also brings up help in the main game (in addition to shift+/)
2015-10-03 00:53:32 -04:00
1b75bb4755 Add constraint for defbtn attribute to refer to a valid name in the dialog schema 2015-10-02 23:31:02 -04:00
b39ac35298 New alternate scrollbar style, used by default in dialogs 2015-10-02 23:31:01 -04:00
4aea031914 Add linked element to scrollbars
The linked element will be updated dynamically as the scrollbar's value changes.
Also: Added long-missing hasControl() method to cDialog
2015-10-02 22:59:04 -04:00
f7daba4ead Scrollbars are finally a first-class citizen in the dialog engine.
- Add <slider> tag to put an unbound scrollbar in the dialog
- Add support for horizontal scrollbars
2015-10-02 21:44:17 -04:00
a455941d92 New scroll pane control in the dialog engine
Also:
- Use a scroll pane for the credits in the about dialog, so that new credits can be added without altering other elements
- Use a scroll pane for the list of sections to be deleted in the resize outdoors dialog
- New cContainer superclass for controls that contain other controls
- Scrollbars consider their maximum as part of their state
2015-10-02 17:03:25 -04:00
f6183cad63 Separate "Splits When Hit" from "Immune to Assassinate" 2015-10-01 22:53:32 -04:00
43e82281af More read/write tests for town and outdoors, including maps/dialogue
Fixes:
- For towns, the "has tavern" flag was not saved or loaded
- Outdoor roads were not saved or loaded
- For outdoor encounters, the "can't flee" and "forced" flags were not loaded, and "forced" was not saved
--> These two flags have also been separated in the code
2015-09-30 17:00:05 -04:00
18bb16df9c More read/write test cases for monsters, especially monster abilities
Fixes:
- For radiate abilities, the pattern was not saved and defaulted to single instead of square on load
- For summon abilities, what to summon was not saved and chance was incorrectly saved
2015-09-27 01:20:33 -04:00
ab232bb31a Generalize the editor's terrain frills mechanism 2015-09-26 15:05:49 -04:00
bbd47088e1 Basic test cases for reading town, dialogue, and outdoor records 2015-08-28 13:38:08 -04:00
9972c3d27d Various damage-related changes
- Rename unblockable damage to "weird" and special damage to "unblockable"
- Monsters now support immunity to any damage type
- Fix using wrong damage type for bonus damage in PC-on-PC attacks
- Forbid use of unblockable (formerly special) damage by the scenario designer, except in special nodes; if hacked in, it's replaced with weird (formerly unblockable) damage.
- Fix damage amount text in animations (both single-frame booms and fully animated booms)

Changed the following things from weird (formerly unblockable) damage to unblockable (formerly special) damage:
- Starvation
- Debug 'K' command
- Damage from items forcibly ending flight
- Damage from bashing doors
2015-07-19 10:59:22 -04:00
ed0810df66 Finish documentation of scenario format 2015-07-10 15:29:00 -04:00
4104e08481 Factor out some common definitions from the XML schemas 2015-07-10 15:02:50 -04:00
353ed28795 More documentation of scenario format 2015-07-10 14:46:58 -04:00
1863554154 Make the scenario validating script validate embedded dialogs, if present 2015-07-10 14:46:21 -04:00
21c5c98c24 Some tweaks to scenario format 2015-07-10 14:43:15 -04:00
72effbd05b More documentation for scenario format 2015-07-10 01:50:20 -04:00
ce24fc8d25 Tweaks and updates to scenario format docs 2015-07-09 20:37:53 -04:00
5458bc0d7b Scenario format tweaks
- Fix monster attitude enumerator not being reflected in schemas
- Store the sound ID for sound names, instead of the index into the sound name array
2015-07-09 20:32:45 -04:00
c0ab32453b Add some documentation on the new scenario format 2015-07-09 16:53:55 -04:00