Commit Graph

92 Commits

Author SHA1 Message Date
ALONSO Laurent
66ad6bdefa continue to protect vector against bad index + simplify some code... 2022-06-30 01:10:46 -04:00
ALONSO Laurent
31c5a24e81 continue to add methods to check bounds, to be continued,
+ try to do not add empty strings in encounter message
+ minimap: try to remove flickering on OsX
+ correct cScenario::get_ter_from_ground
2022-06-30 01:10:46 -04:00
ALONSO Laurent
47fd08904f all: try to protect access to journal_strs and sign_locs against bad index... 2022-06-30 01:10:46 -04:00
ALONSO Laurent
a51ba34650 add methods get_special_string to check access bounds of spec_strs... 2022-06-30 01:10:46 -04:00
C.W. Betts
77d5080435 Minor fixes. 2022-06-30 01:10:44 -04:00
3e686cb908 Tweak text colours to be less blindingly bright and closer to the original Mac BoE 2020-02-01 19:55:30 -05:00
542c037342 Integrate a new resource manager which should have better performance 2020-01-26 11:53:19 -05:00
Mark Clark
e70c360e11 Minor fixes to get build working for vs2017 project; 2018-02-25 14:55:13 -05:00
c2ce2a2cd1 Split up the graphtool files 2017-04-14 15:43:07 -04:00
e98f9381fe Move special node category into the node properties struct 2017-04-14 00:50:38 -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
20ff735d2f Add a Vahnatai PC graphic by "Kelyar-Ihrno" 2017-02-08 16:58:31 -05:00
bc810f9238 Fix warning message when setting a node that doesn't yet exist 2017-02-07 20:09:42 -05:00
f520e1ac0a Fix issues with editing dialog text
- If there were no strings following the assigned six dialog strings, the scenario editor thought the string was out of range and tried to assign a new set
- Whenever the text is edited, make sure all six strings still exist.
2017-02-02 11:44:09 -05:00
933f7e7644 Add special spot to the list of field graphics 2017-02-02 11:35:45 -05:00
583a0ab68b Fix graphic selection dialog for certain types
This prevents problems when the ID of the graphic does not correspond to
its position in the graphics selection dialog.
2017-02-02 11:34:18 -05:00
570792420a Add two more animated portals
One on grass and one on walkways
2017-02-01 14:24:06 -05:00
0e109ecd5c Fix crash when editing dialog strings 2017-01-31 21:23:12 -05:00
c54cab93ee Fix crash when editing special encounter strings 2017-01-20 21:31:15 -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
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
785943b9be More usage of standard containers instead of bare arrays 2016-08-15 12:31:45 -04:00
17095e1760 Three new wallsets and one new floorset by ADoS 2015-10-05 18:27:40 -04:00
1b95f06207 Split dlogutil.hpp into separate headers for each dialog 2015-10-04 22:45:01 -04:00
cae5fc3140 Rearrange the basic_buttons array to avoid the extra indirection step
- All buttons from the array that were strictly related to UI have been removed.
- Some new buttons have been added. The duplicate Leave button has been removed.
2015-10-04 21:11:16 -04:00
44f485cc9c Add lots of new terrain graphics by ADoS
- And also remove that Wyrmfire scenario icon
2015-09-01 22:34:12 -04:00
960e4cdf23 Remove map and text bar patterns, move dither patterns to separate sheet 2015-08-31 11:37:27 -04:00
8c33a0738d More new graphics
- Replace the Wyrmfire snow set with a snow set by ADoS
- A new wallset by ADoS and a few useful indoor tiles
- Two new large shields by ADoS
- Remove the duplicate mushrooms item graphic
2015-08-15 20:10:21 -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
0ac8c105e6 Re-add the Wyrmfire snow graphics and all Mistb0rn graphics not based on BoA or Exile I-III.
- Also update the map graphics to reflect the scrubbing
2015-08-08 12:29:43 -04:00
da33dfeda1 Fix not adding new strings if no unused ones were found 2015-08-06 20:13:51 -04:00
7655e5cc81 Add the original crystal soul monster graphics as terrain graphics
- This is including the floor background; they're still available background-free as monster graphics, too.
2015-07-28 21:38:23 -04:00
c3c5249227 New preset item graphics by ADoS
- Also a new ship graphic which is currently unused.
2015-07-28 09:56:29 -04:00
922730d89d Add new booms by ADoS
- Single-frame boom for "weird" damage
- Animated booms for "weird" and ice damage
- Magic now uses blue swirl instead of yellow swirl; yellow swirl is currently unused
2015-07-28 02:29:36 -04:00
5332270cd8 Scrub Exile/Avernum/Nethergate graphics
- New space-filling forcecage (possibly not finalized)
- New appearance for pushable stone block
- New red slime monster graphic by ADoS
- Six new item graphics by ADoS
- New bookshelf terrain by ADoS
2015-07-23 21:36:22 -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
c1dbe192a1 New positioning mode for Relocate Creature node
(Tries to place monster in nearby space if exact target space is blocked)
2015-06-30 12:51:16 -04:00
cea602ce6d Don't share the same temporary scenario directory between all programs
(Also fixes loading of unpacked scenarios)
2015-06-30 12:46:00 -04:00
860cf9d5dd Fix some rough edges when handling large pictures or full sheets
- Choose Picture dialog now scales these pictures down to fit in the available space, thus avoiding the ugly overlap issue.
- Choose Picture dialog now supports full sheets, scaling them down in a similar manner
- Due to the above, the Display Picture node now offers a Choose button
- The possibility of large (72x72) dialog pictures is now properly documented
2015-06-28 20:13:33 -04:00
1dc59f4651 Random TODO comments 2015-06-28 15:18:35 -04:00
9ae91feee6 Tiny scenario editor fixes
- Advanced monster edit dialog used stored node instead of node in text field
- Several preset item graphics missing from pick picture dialog
2015-06-28 12:14:58 -04:00
0fbb872b73 Add Give Equipment node for giving a specific PC an item,
possibly with modifiers (like equipping it)
2015-06-24 01:54:41 -04:00
580f70f49a Add a dialog in scenario editor to import/export custom sounds in WAV format 2015-06-17 01:03:17 -04:00
f6be40618b Overhaul and improve force cages
- Add instant help message
- Prevent from ending town combat if one member is in a forcecage or if everyone's in a different forcecage (you can still end it if everyone's in the same cage)
- If entering town combat while caged, everyone remains in the cage
- Penalties to melee combat if the target or attacker is in a forcecage (higher penalties if the attacker is caged, unless they're using a pole weapon)
- Instead of placing a forcecage at every location where someone gains forcecage status, the game now syncs forcecages (placing them on locations where someone has forcecage status) at the end of the move.
- The Flash Step and Word of Recall spells and any specials that move the party also clear their forcecage status, so that a new forcecage won't appear on their new location. If they're moved into a forcecage, the syncing process will give them the status at the end of the move.
- Forcecage status now supported for the Occasional Status item ability
- Forcecages now eventually expire on their own even if you can't break out. Unoccupied ones also have a slight (0.1%) chance each turn to expire.
- Affect Status node now allows forcecage status. (It also works as documented, using Extra 1c rather than 2a as the status type.)
- Preset monsters placed in preset force cages gain the status at town initialization; it's a lot more than they'd gain through the syncing process, so unless they break free, it'll last a very long time.
- Monsters/PCs with spells (and PCs with Mage Lore) now have an increased chance of resisting entrapment in a forcecage
- If the full party is subject to a forcecage, the PC with the best chance of breaking free (assuming they don't resist) is chosen to determine whether they resist. Note that this may not be the PC with the best chance of resisting in the first place.
- Protection from Forcecage now implemented as an item ability
Other stuff (though related):
- Reset party's combat pos to the null location (-1,-1) after a cutscene ends; to not do so would mess up get_loc() calls
2015-06-10 11:45:14 -04:00
f8ea8fd80b Fix the "pick boom" dialog used in Animage Fake Damage node 2015-06-08 22:14:49 -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
aa5dfe4f69 Add two special nodes
- Node to make a monster target a specific PC or monster
- Node to force town entry from outdoors
2015-06-08 22:14:40 -04:00
aaf3443900 Add choose buttons for the SDF fields in rectangle special nodes 2015-06-05 02:48:05 -04:00
5bcf220204 Add support for custom explosions with custom sound choice 2015-06-04 18:47:01 -04:00