Commit Graph

100 Commits

Author SHA1 Message Date
c8df04ab04 More taking advantage of the common superclass of cTown and cOutdoors 2023-01-22 14:07:26 -05:00
2539c28fe2 Prefer to call is_on_map() for terrain bounds checking whenever possible
Fix some cCurTown field functions not having bound checking
Scenario editor now takes better advantage of cTown and cOutdoors sharing a superclass
2023-01-22 14:07:26 -05:00
6b56f4af86 Add bounds-checking to coord_to_ter in the scenario editor 2023-01-18 10:00:08 -05:00
3bdcf02be0 Handle modifier keys differently to avoid Apple flagging us as wishing to monitor input from other applications
Fixes #291
2023-01-12 21:43:45 -05:00
f70f63eead Update and clean up the Visual Studio 2017 project files
These were very shoddily put together!
It seems the person who made them never really tried building
the editors or the tests.

Also included here are a couple of minor source changes that are needed
to make the project files build.
2023-01-05 19:29:16 -05:00
5b2561d034 Disable header maps in Xcode 12 2022-07-12 20:35:41 -04:00
deac7b0cb6 Merge pull request #251 from x-qq/fix_scrollbar_segfaults
fix for scrollbar segfaults

* fixes #206
* fixes broken mousewheel scrolling of the scenedit palette
* removed boost threads dependency
* added foundation for further refactoring of the drawing and event handling code: interfaces and drawable manager with layering
* removed a bunch of unneeded redraw calls
* removed some repeated recalculation of effectively constant values (boe.actions)
* removed recalculation of effectively constant scrollbar and button positions (boe.graphics)

Closes #251
2020-02-09 15:55:51 -05:00
1d61d48ec3 Enable UI scaling in the scenario and implement Linux menus
Patch from @x-qq
Addresses #195

Note: UI scaling for the scenario editor still needs some work,
but it's basically functional.
2020-01-28 20:13:24 -05:00
c21b0b8de7 Fix #155 2018-02-18 16:26:10 -05:00
c2ce2a2cd1 Split up the graphtool files 2017-04-14 15:43:07 -04:00
82abdab695 Major code reorganization
This commit only updates the XCode project for the changes.
A later commit each will update it for scons and MSVC.

A few actual changes are mixed in:
- Add a prefix header for a handful of common definitions
- Moved current_cursor into the Cursor class as a static member
- Removed the make_cursor_sword and make_cursor_watch functions
- Include tests in the All target
- Remove redundant -l flags for Common and Common-Party (since they're included in the Link phases anyway)
2017-04-14 00:24:29 -04:00
683ab805ec Initial framework for scenario editor undo/redo
In addition to the framework, this enables undo/redo of one action - adding a new town
2017-02-12 18:27:01 -05:00
e38053d39f Remove some spurious scenario editor error messages
These errors are all no longer necessary due to the editor loading the entire scenario into memory at the same time
2017-02-12 18:19:29 -05:00
92ba1e0fb0 Fix "Center" text positioning, and replace it with context-sensitive tooltips 2017-02-07 22:24:28 -05:00
61816b7529 Fix inability to set special nodes outdoors 2017-02-07 20:09:15 -05:00
e7ae0b28a2 Fix floodfill potentially spilling off the edge of the map
(and corrupting memory)
2017-01-31 20:12:34 -05:00
5f9b9dff93 Fix inability to erase roads in town 2017-01-31 20:12:03 -05:00
63345beb9b Fix crash when deleting certain elements in town 2017-01-20 21:31:17 -05:00
88d6afce27 Merge all the town classes and remove the unimplemented templated towns
This also adds a common superclass shared by towns and outdoor sectors, and
enables towns of arbitrary sizes.
2016-09-03 02:50:29 -04:00
469d5fb8a6 Remove residual function 2016-08-25 21:28:44 -04:00
4cbd0d3013 New toolbar buttons for placing boats and horses; replaces the edit boats/horses dialogs 2016-08-25 21:28:42 -04:00
9363ab2fcf Eliminate function-scope loop index variables
This makes all loop index variables local to their loop and
fixes some issue arising from the loop variables being present
through the whole function, such as using the wrong index variable.

In addition, there has been some reduction of code duplication in
the scenario editor.
2016-08-21 00:46:40 -04:00
c59c58e7ab Fix crash when viewing monster info from menu 2016-05-07 17:57:25 -04:00
21f05c464f Fix tool buttons being unresponsive 2016-05-07 12:42:28 -04:00
8b792aea75 Eliminate some offscreen surfaces in the scenario editor
- This fixes an issue where parts of the UI were filled with black or random noise.
- This also creates some noticeable lag while drawing, though.
2016-04-29 13:36:31 -04:00
1b95f06207 Split dlogutil.hpp into separate headers for each dialog 2015-10-04 22:45:01 -04:00
62c342645a Use sword cursor at scenario editor main screen 2015-10-01 11:26:05 -04:00
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