Commit Graph

123 Commits

Author SHA1 Message Date
c68b01c3a2 Make roads an overlay instead of a terrain trim type
Game:
- Roads now show on the automap again!
- Possible fix for undetected issue in displaying outdoor special spots
- Road conversion code for legacy scenarios now applied in towns too

Editor:
- New tool for placing roads, works the same as special dots
- Roads appear at all zoom levels

Other:
- Removed all terrain graphics that used the small road dot, replacing them with blank (white) space
- Make obvious out-of-bounds array accesses an error in the project settings
2015-09-27 22:37:12 -04:00
1222cb57f5 Move Set Town Start to Town menu and make it work the same as Set Out Start
- Also fix problem with initial starting town in new scenarios (it was uninitialized)
2015-09-27 14:50:00 -04:00
a217b91f0a Only show editing cursors while over the terrain area
- Also show eyedropper when selecting a terrain/item/monster to paint
2015-09-27 13:08:08 -04:00
96190c042c Remove a now-useless function 2015-09-27 03:16:50 -04:00
082e3fc9d9 Implement flood-fill tool 2015-09-27 03:15:05 -04:00
ab232bb31a Generalize the editor's terrain frills mechanism 2015-09-26 15:05:49 -04:00
4866081def Fix quit confirm at start screen after closing scenario 2015-09-26 02:30:25 -04:00
b437045f12 Make fields paintable 2015-09-26 02:29:45 -04:00
df6c0afa6e Make items and monsters paintable 2015-09-26 00:54:10 -04:00
26ddd47c3a Whoops! Got confused there! 2015-09-25 23:32:36 -04:00
f66c1cb36f More init/splash streamlining, now including the scenario editor 2015-09-25 19:03:40 -04:00
f1e883741c Fix scenario dirty flag being cleared when quit confirmation displayed
(regardless of your response)
2015-09-24 19:28:29 -04:00
66f84ef396 Fix several little issues with cursors
- Sometimes they didn't reappear when the program was reactivated
- Watch is now used in more places
2015-09-24 19:12:12 -04:00
6bd7987ff3 Fix ability to edit nonexistent terrain types 2015-08-19 15:42:49 -04:00
8008ff6dac Show git revision on Blades of Exile title screen and in scenario editor 2015-08-17 23:13:44 -04:00
a380aa79d9 Since item placement never fails except by random chance, remove error message 2015-08-14 23:41:42 -04:00
5762c2bb90 Tweak to error dialogs and add separate warning dialogs
(Also some error messages tweaked)
2015-08-14 23:30:18 -04:00
6852479a4c Fix terrain shortcuts being ignored for terrains above 255 2015-07-10 15:03:13 -04:00
c1fa65a01d Much better error-checking when loading scenarios
- First of all, the program no longer crashes after an error.
- A lot more constraints are now checked for, such as required elements; even some constraints not expressed in the schema
- Special node parsing now has actually useful error messages
- Map data parsing now has error messages for the few invalid cases
- Fix the XML utility exception classes originally used only by the dialog engine; they're now correctly caught and properly report the error
- Fix loading of special shop entries
- Fix accepting any character as the separator in dice constants
- Verify that the monster ability type is on the right ability tag, that the extra element is present only if needed for general abilities, and that the missile and range elements are present for non-touch general abilities
- Use "infinite" for quantity in special shop items, instead of 0
- Tweak ticpp to fill out file/line/col information for _all_ exceptions, not just parse errors
- Raise error (ie, set stream failbit) when failing to convert an enumerator, instead of silently returning a default value (they do still return a default value though, if you don't bother to check stream state)
- Fix status effect enumerator not being correctly saved/loaded
2015-06-29 19:55:59 -04:00
ec8967dfb7 Fix missing "Alt-click" text in several modes in the scenario editor 2015-06-27 20:50:26 -04:00
7d18d94f3e Fix talk nodes being deleted if cancelled while last on the list 2015-06-27 20:50:00 -04:00
ef0cdebec4 New editor commands: Resize Outdoors and Import Sector
This includes the following changes (mostly related to the above):
- Move loc_compare functor to location.hpp
- Add reattach() function to rebind a town or outdoor section to a different scenario object. (I don't think this is strictly necessary, as the scenario reference is only used in limited situations in the game itself, not in the editor, but it's better not to keep a reference to freed memory around when importing a town or sector from another scenario, even if the reference is never accessed.)
- Fix imported towns not being officially "loaded" until you explicitly use Load a New Town to reload them
- Fix Choose button in Load New Sector dialog
- More functions in the vector2d implementation
2015-06-25 23:55:55 -04:00
2951e0228c Tweak New Scenario dialog and add Save As option
- You now specify your name instead of the scenario filename in the first dialog
- A file dialog pops up after the second dialog, to let you choose the filename and location
- Fixed using Warrior's Grove even if you chose not to
- Fixed not recognizing .EXS as a valid legacy-scenario extension and appending .boes, resulting in .EXS.boes
- Adjust Difficulty scenario flag set on by default
2015-06-24 14:43:41 -04:00
269daedcd1 Add visual indication when there's more than one special node assigned to a space 2015-06-24 01:54:42 -04:00
41fb8bd056 XCode build is now completely warning free 2015-06-21 18:22:20 -04:00
3239d8e503 Bugfixes
- Fix attempt at accessing invalid placed town locations
- Fix attempt at accessing invalid terrain in editor when checking whether to apply transformations
2015-06-20 12:43:16 -04:00
a990921e90 Several tweaks/fixes
- Nuke some uses of strcpy, sprintf, etc; current info strings in the scenario editor are now stored as std::string instead of C-strings.
- A smarter method of calculating the "erase" terrain for a given terrain type. In case of impassable spaces, trims, and walkways, instead of using the ground terrain, the trim terrain (if any) is used as the erase terrain; if there's no trim, ground 0 (cave, by default) is used. The method of determining if two terrains are essentially the same (ie, whether to paint or erase) has also been improved a little.
- Also, to reduce confusion, the erase terrain is now shown beneath the paint terrain.

Terrain changes:
- Add "archetype" flag as a better way of determining which amongst a set of terrains sharing the same ground type should be considered as the most basic terrain of that ground type. It's automatically applied to any terrains using original graphics when importing an old scenario; generally, any with no terrain special will be marked as an archetype, but if the lava graphic was used, it's instead any with a terrain special. It's a crude method that may easily break, but probably not possible to do better.
- When importing old scenarios, set the two walkways to be separate ground types while the crops should have grass as their ground, and the conveyors have cave.
- Fix fly, boat, block horse LEDs not being cleared if a terrain lacks that flag when using the arrow buttons. This could lead to terrains accidentally picking up the flags of nearby terrains in the list.
- Fix the block horse flag was not correctly saved when closing the dialog.
- Fix the block horse flag not being correctly loaded from the scenario file
2015-06-11 22:32:28 -04:00
2d9c3ba2d9 Remove the arbitrary limits on the following quantities:
- Number of terrain types - as long as the last terrain in the list is unused, you can delete it
- Number of monster types - as long as the last monster in the list is unused, you can delete it
- Number of item types - as long as the last item in the list is unused, you can delete it
- Number of special items
- Number of strings (scenario, journal, outdoors, town)
- Number of signs (outdoors, town)
- Number of description rectangles (outdoors, town)
- Number of town entrances (outdoors)
- Number of dialog nodes (town); number of personalities per town is still limited, but since you can use personalities from any town and the number of towns is unlimited, you still have effectively unlimited personalities

Other related stuff:
- Fix ability to select nonexistent terrains/items/monsters from the palette
- Fix inability to find unused special strings in some cases
- Fix sometimes incorrectly selecting the current node as the next node in the chain, instead of a new node
- When cancelling from the special node dialog, it's a bit more intelligent about whether or not to drop nodes from the end of the list
- Edit string dialog now has a cancel button
- Save otherwise unused talk nodes if they contain strings, to avoid loss of data that might be important
- Fix scenario and journal strings loading incorrectly if some strings were blank
- Fix some issues with list modes activated by menu not appearing until the mouse moves over the window
- Fix incorrect instructions in list modes (it's alt-click, not command-click as the instructions indicated)
- Implement "erase town entrance" button and create a visual difference between town entrances with an assigned town and those without
- Fix inability to erase monsters after the first 60 in town
- Fix escape key accepting changes in the shop dialog, instead of cancelling
- Fix quest/shop list resetting to top after editing one
2015-06-08 22:14:47 -04:00
01d317b007 .h -> .hpp 2015-06-08 22:14:43 -04:00
722f670e3d Fix crates and barrels "stealing" the items from other containers when they are pushed over them
Fix stone blocks disappearing when pushed
2015-06-06 23:23:45 -04:00
2b4ca2d0a5 Refactor the scenario editor's monolithic handle_action function into several smaller chunks 2015-06-06 00:01:45 -04:00
9f8e6f88c2 Several little tweaks and fixes
- Fix scroll wheel in terrain area going beyond section boundaries
- Fix text not being drawn in dialog text fields when first activated
- Fix terrain being painted while scrolling the map to the east (especially with the keypad)
- Fix item or monster palette remaining active while editing outdoors
- When using a large brush, hilite all affected spaces
2015-06-05 23:25:56 -04:00
548825745b Rearrange editor tool palette and refactor the code to make it easier to rearrange again in the future
- New buttons: "place forcecage", "place stone block", and (currently non-functional) "erase town entrance"
- Forcecages with no creature inside them are now permanent
- Fix forcecages leaving the top half behind when they disappear
2015-06-05 02:13:41 -04:00
dd589001c6 Scroll wheel support
- All areas with scroll wheels can be scrolled using the scroll wheel if the mouse is in the area
- In addition, the terrain view is scrollable with the scroll wheel (hold Control for horizontal scrolling)
- The above applies in the game too, whenever the scroll arrows are visible
2015-06-04 23:51:44 -04:00
6c5e2b5118 Several tweaks and fixes
Bugs:
- Arrow keys activated the arrow buttons in the list-mode edit string dialog
- Graphics classification was not saved correctly in some cases
- Contact info was not correctly saved/loaded
- Place Monster node didn't have a choose button for the monster type
- Alt-Backspace and Alt-Delete did not work correctly in dialog text fields
- When clicking Edit Terrain Types, sometimes the list of items or monsters would appear instead
- Fix monster 0 being selectable in the choose monster dialog
- Fix the hotspots of all the cursors to be more intuitive

New:
- When interrupting a special node sequence with Cmd-. / Ctrl-C, the dialog that appears is more relevant.
- In the choose sound dialog, the sound now plays when you select a choice, so you can hear what it will sound like
- Added a tiny icon so you can distinguish fire and force barriers in the editor
2015-06-04 15:50:05 -04:00
1b754619dc Several more tweaks/fixes
- Missing special node opcodes
- Pass the party's (or in combat, the active character's) current location to special nodes triggered by timers
- Fix the set pointer node
- Fix terrain palette not correctly registering clicks while scrolled down
- Fix sheets not correctly being copied from the temporary files folder
- Fix monster abilities not being loaded from new scenarios
- Fix custom sheets not being reloaded if they have changed
- Documentation tweaks
2015-06-02 22:01:22 -04:00
7e4eabf198 Add item-monster selection palette which fills the same space as the terrain palette
- Removed the item/monster menus in the scenario editor (they weren't function anyway)
- Scrollbars can now have a maximum value of 0; if this is the case, they do not draw a thumb
2015-06-01 18:59:24 -04:00
ae3970aad1 Fix some indentation 2015-06-01 15:05:00 -04:00
4670eb7805 Allow use of arrow keys to scroll the terrain area in the scenario editor 2015-02-23 15:34:32 -05:00
0aaa299642 Implement the close and revert menu choices, as well as PC editor help
- Fix storing directions in save file as control characters
2015-02-14 13:20:41 -05:00
4fbc6cfa77 Various code cleanup stuff 2015-02-14 12:24:25 -05:00
Ben Scott
1477fef7ce Fixed warnings and IMPLEMENTED A THING in the menu item switch. 2015-02-12 01:47:48 -05:00
c3143c3a6e Introduce scrollbar for the terrain palette in the scenario editor 2015-02-07 14:47:48 -05:00
f5a43bc011 More reduction of reliance on hard-coded limits 2015-02-07 09:46:51 -05:00
2cf301eece Reduce reliance on hard-coded limits 2015-02-06 23:00:29 -05:00
7307fee425 Change town locations variable name to better reflect its use 2015-02-06 14:55:37 -05:00
7f6992da56 Store sign locations and text in the same structure 2015-02-06 14:43:26 -05:00
36491c818c Implement a dialog to edit shops in the scenario editor 2015-02-04 13:55:22 -05:00
b11e934162 Rewrite automatic trim placement to use the generalized attributes of the terrain spaces 2015-02-02 11:38:40 -05:00
e70715874a Fix terrain drawing only working while zoomed out 2015-02-02 11:38:39 -05:00