Commit Graph

313 Commits

Author SHA1 Message Date
96229d1f40 Lot more tests!
- Tests for converting legacy terrain types
- Tests for initialization to sane values

Fixes:
- cCreature no longer initializes spec1 and spec2 to 0. This probably didn't cause bugs, but who knows...
- In fact, cCreature no longer explicitly initializes anything in its cTownperson superclass. That's what the superclass constructor is for after all.
- Relatedly, cTownperson now defaults to a facial graphic of -1. Also a docile attitude.
- iLiving defaults to ap 0, direction here.
- Fix Change When Step terrains to properly support not having a sound while still allowing an arbitrary number of custom sounds.
- Add support for a lack of sound to Change When Used terrains, including at conversion time (original game supported it but OBoE was forcing the sound to a door sound).
- Fix conversion of crumbling terrain types (old conversion was allowing quickfire to destroy them)

Other:
- New addAttack method in cMonster.
- Change snd_num_t to signed, because it's been getting annoying that I can't easily use -1 to mean "no sound".
2015-10-04 18:44:58 -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
06ad776236 Remove frame_region since it was unused and misleading, and nontrivial to fix 2015-10-03 12:24:43 -04:00
a515bd0b0e Fix use of | instead of & for rect intersection 2015-10-02 13:11:11 -04:00
f6183cad63 Separate "Splits When Hit" from "Immune to Assassinate" 2015-10-01 22:53:32 -04:00
a9e7988cf9 Remove custom header from saved games.
Saved games are now just a gzipped tarball with a different file extension.
2015-10-01 10:51:54 -04:00
56c533f419 Fix scons build and tests 2015-09-30 18:57:52 -04:00
5c37fa199e Some final scenario read tests 2015-09-30 17:57:48 -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
16a09988f3 Fix Windows build 2015-09-30 02:05:22 -04:00
082e3fc9d9 Implement flood-fill tool 2015-09-27 03:15: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
371459d1b2 The game no longer refuses to play sounds greater than 100 2015-09-25 21:51:47 -04:00
67cf73e593 Fix resource manager not properly accounting for overrides 2015-09-25 20:14:55 -04:00
f66c1cb36f More init/splash streamlining, now including the scenario editor 2015-09-25 19:03:40 -04:00
3b647f33b2 Streamline initialization and splash screen code
Should be much less chance of beachballs on OSX
2015-09-25 17:31:57 -04:00
fbe80b22dd Fix startup splash
- No longer shows stone pattern before logo
- Music no longer cuts off
- Intro image properly centred in fullscreen
2015-09-25 15:10:00 -04:00
fdcaa98116 Fixed crash on exit (finally!) 2015-09-21 14:40:26 -04:00
350479ddbb Fix some issues with loading saved games 2015-09-14 15:51:04 -04:00
6b71200110 Lowercase windows.h includes for MinGW cross-compiling compatibility 2015-09-13 14:31:06 -04:00
73543caf49 Rename file to reflect its Mac-specific status 2015-09-13 11:56:13 -04:00
780b413d0c Mass replace NULL --> nullptr
(Except one instance was instead replaced with nil)
2015-09-13 10:50:21 -04:00
853c270146 scons: Get working on Windows with MSVC 2015-09-13 00:15:28 -04:00
832b8b5f91 Set up scons build system
- In its current state, it produces a valid, launchable Mac application package, though one that's not redistributable (relies on system-installed libraries)
- Partial support is already in-place for a Windows build
2015-09-11 23:10:37 -04:00
8bc8e10075 Several more map read/write test cases 2015-09-04 04:26:58 -04:00
15aeaf8876 Fix not using correct default directory for Cocoa save dialogs 2015-09-03 19:26:45 -04:00
0c7c64dfc9 Rearrange resource structure
- All resources are now under data/
- Editors and Blades of Exile Base are no longer in Scenario Editor subfolder
- User scenarios are now stored in %APPDATA% / "Application Support"
2015-09-03 19:26:19 -04:00
9fd65cd597 Vehicles fixes
- Fix boats being saved as horses
- Fix first boat/horse not saving property status in scenario map data
- Game finally supports boats that start outdoors... probably
2015-09-03 12:22:13 -04:00
d3b0b26deb More scenario record read tests 2015-09-03 12:22:12 -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
22ca77fa77 Some cleanup 2015-09-01 14:41:53 -04:00
960e4cdf23 Remove map and text bar patterns, move dither patterns to separate sheet 2015-08-31 11:37:27 -04:00
812f485809 Stop applying lexical_cast to a stream manipulator as this seems to fail with later versions of clang; also close file after showing error, instead of before 2015-08-30 22:58:08 -04:00
bbd47088e1 Basic test cases for reading town, dialogue, and outdoor records 2015-08-28 13:38:08 -04:00
dc5309a001 Reduce missing opcode log-spam 2015-08-21 14:27:58 -04:00
c0c3093140 Encode cursor hotspots into GIF comments 2015-08-21 14:27:39 -04:00
2bf1f21c4d Squelch some MSVC warnings 2015-08-19 14:00:46 -04:00
615da9fad4 Implement version fetching for Windows 2015-08-19 13:14:09 -04:00
e29e34582f Get git revision inclusion working on Windows 2015-08-19 13:13:36 -04:00
a8dd1d3b3a Save OS version to scenarios 2015-08-17 23:22:50 -04:00
8008ff6dac Show git revision on Blades of Exile title screen and in scenario editor 2015-08-17 23:13:44 -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
b4e117f0a7 Don't use isblank 2015-07-29 18:28:19 -04:00
7719d62773 Test cases for reading terrain, monster, and item definitions
- For monster attacks, 'd4' now means '1d4' instead of '0d4', and simple numbers without a 'd' are not accepted
- Pop string path after pushing it in the shop test cases
2015-07-29 15:25:19 -04:00
e9381f194e When creating a new graphics sheet, initialize it with a convenient checkerboard pattern
- Also fix a crash when first creating a graphics sheet in a scenario due to the temporary folder not being in the image search paths
2015-07-29 12:55:44 -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
c7e9e3ca6c Fix sounds sometimes not playing when they should, if it's the same sound that played earlier. 2015-07-17 16:29:05 -04:00