Commit Graph

181 Commits

Author SHA1 Message Date
7b55262ed4 Several little fixes
- Fix custom missiles causing a crash if graphic not found
- Fix display in transcript of damage taken by monsters
- Fix missile start items not having their missile graphic set
- Fix immunity fields being signed (which would've prevented immunities from working properly)
- Don't bother generating a random number if min and max are the same
- Fix monster attack types not showing right
- Fix checking for item abilities returning 0 instead of 24 when not found
- Fix not updating screen when switching active PC
2015-01-15 15:03:32 -05:00
399572adf6 Rewrite the implementation of monster abilities
- Abilities are much more generic, but also much more complex; a set of "templates" is provided to try to make it more accessible
- There is now a possibility for monsters to charm each other
2015-01-14 22:37:43 -05:00
f282c06bfa Write the code to save the general scenario data to a file
- See monster strings are now fetched from the same list as the special encounter strings instead of a list of their own
- There is now a possibility for the scenario intro dialog to have a different icon than the scenario icon
- Remove unused intro_mess_len field
- Add method to the XML printer class to push a simple element with no attributes or child elements
- Automatically close any elements before writing the document to the stream
- Fix scenario editor File menu having an invisible "Close All" option that appeared when the option key was pressed
2015-01-13 20:54:51 -05:00
45bbed03f3 Remove the "reserved" fields from cItem 2015-01-13 16:38:25 -05:00
5587bbb0f2 Allow items to specify their missile animation and also allow for custom missiles
- Custom missiles are untested
- Items with custom missiles export the missile graphics in the party sheet
2015-01-13 14:40:53 -05:00
52c7bc126f Rename m_num_t -> mon_num_t 2015-01-13 13:52:02 -05:00
2a3ff63846 Use the defined constants for monster abilities as much as possible
- New monster ability: radiate blade fields
- Fix permanent martyr's shield giving immunity to fire walls
- Fix paralysis ray giving immunity to ice walls
- All monsters that radiate fields are now immune to the fields they radiate
2015-01-13 13:24:18 -05:00
2a41b68129 Split monster immunities bitfield into more comprehensible chunks.
- Monsters now properly decide whether they can enter damaging terrains
- The possibility of being unusually vulnerable to a damage type is introduce - such monsters would take double damage from that type
2015-01-13 12:33:04 -05:00
12c87a85af Merge more item abilities
- The strength, dexterity, and intelligence abilities have been merged; it's now possible to make items that boost some other skill, though the handling for this is not yet implemented.
- The occasional haste/bless/disease abilities have been merged.
- Move affect_pc and affect_party functions into cPlayer and cParty respectively
2015-01-13 11:45:45 -05:00
d6aeba8e0f Merge and generalize more item abilities
- It's now possible to create an item that protects from any type of damage, status effect, or species (though some status effects may not be implemented)
- It's now possible to create slayer weapons for any species
2015-01-13 10:35:12 -05:00
84689cacaf Strictify damage type enum 2015-01-13 00:12:47 -05:00
0dece71686 Fix some issues where some aspects of the prefab party leaked into loaded games 2015-01-12 21:19:51 -05:00
25ef2ed713 Initial reformation of item abilities
- Merge most of the spell usable abilities into a single "cast spell" ability which can take any spell as an additional parameter
- Merge the affect status usable abilities into a single "affect status" ability which can take any status as an additional parameter
- Merge acidic and poisoned weapon into a single "status weapon" ability which can take any status as an additional parameter (though the handling for other statuses isn't yet implemented)
- Fix mass charm spell getting worse as you intelligence bonus increases
- Mass charm item spell is now easier to resist (an unintended side-effect)
- PC versions of Wrack and Unholy Ravaging implemented (for use as item spells)
2015-01-12 21:18:45 -05:00
3a285f47da Eliminate data size members from the scenario record
- Also move town_hidden array to the town record flags
2015-01-12 14:05:46 -05:00
ac7a1c1d88 Several little tweaks.
- Unify PC start adjustments into the cPlayer class; add start items for vahnatai race
- Allow healing missiles to heal PCs
- Fix display of spell names in the spellcasting dialog
- Expand list of statuses that affect_pc allows to be negative
2015-01-12 01:10:12 -05:00
908652d168 Housekeeping
- Rename cItemRec -> cItem and cItemRec::type -> cItem::weap_type
- Clear out a lot of commented code
- Remove the flag_x members in the scenario that used to store the scenario's password hash (or something like that)
2015-01-12 01:01:24 -05:00
43e4bcc048 Fix several more warnings
- As a side-effect, weapons with key skills other than the conventional three (edged, bashing, pole) are now fully supported (though the scenario editor UI doesn't yet support them)
2015-01-11 16:47:32 -05:00
f5db91547c Fix Windows build 2015-01-11 15:18:35 -05:00
bd531f9ac4 Nuke a lot of MSVC compiler warnings 2015-01-10 21:30:16 -05:00
6b107f8273 Write the code to save special nodes, as well as a skeletal outline of the new scenario format output code 2015-01-10 20:08:35 -05:00
2e0c994b9b Switch the special node parser over to the older, better-documented version of Boost.Spirit 2015-01-10 02:38:12 -05:00
9f57f35428 Change .h -> .hpp in tools/ directory 2015-01-09 22:32:47 -05:00
3ef98712d5 Purge all uses of printf, fprintf, perror and most uses of sprintf
Also:
- Print "Target Spell" before the explanatory prompts, instead of after (when fancy targeting)
- Fix sell costs being drawn on top of the button
- String-insensitive comparing for dialogue keys
2015-01-08 22:26:41 -05:00
8350a22ecb Allow taking items from a scenario even if they summon monsters or have custom graphics. Breaks older saved games.
(Older saved games might still work if not in a scenario.)
- Remove items that call a special node when entering a new scenario
- Remove stone block if a monster is placed on it
- Monsters captured by Capture Soul now persist across scenarios
- Fix barrels/crates not being restored when re-entering the town
- Fix issue when saving monster status effects
- Fix version number stored in saved game file; also, it's now stored in hexadecimal
- Fix issue with saving which would have caused all but the first timer to be ignored when loading the saved game
- Fix timers being written to out-of-bounds memory when loading a saved game
- Fix use of std::skipws where std::ws was intended
- Fix issue with the fields array being shifted right by one tile on loading; also, fields array is now saved as hexadecimal
- Fields and terrain array use the town's dimension instead of dimension hard-coded (in the case of fields) or stored in the file
- Fix PC editor remove from scenario option not working properly
- Reconstruct the universe when loading a saved game to ensure there isn't leakage from the previous universe
- Fix excess padding in output tarballs when the filesize is a multiple of 512
- Add hasFile function to tarball class
2015-01-08 17:46:54 -05:00
095ab3be49 Fix preset creatures not showing up on Windows 2015-01-07 18:30:30 -05:00
3b1d083575 Move pictype enum to seperate file from pict control 2015-01-07 17:10:43 -05:00
a58f643926 Fix crashes when writing saved game 2015-01-05 13:23:20 -05:00
daee11da8a Fix graphics being squished slightly due to the Windows menubar being attached to the window 2015-01-04 19:16:21 -05:00
0b330432b4 Get the game to compile, at least
- Scenario and PC editors still don't link
- Copy files stage set up in the Common project
- Scenario and PC editors now placed in Scenario Editor subfolder in the output directory
- Disabled some totally useless warnings
- "About" menuitem now considered to belong to "Help" menu (even on Mac code) as far as the handlers are concerned
- Dialog string filter is now a function instead of a custom iterator
- Modal session now requires parent window as additional parameter
- Preferences and menus work! Cursors still need some work.
- Since Visual Studio has no way of showing program output that I can find, stdout and stderr are now redirected to a file.
2014-12-30 17:20:22 -05:00
b11199d7d9 Set up a Visual Studio project and tweak things until it compiles
- It doesn't link yet, but that was expected
- Fixed some issues with global variables having different types in different files.
2014-12-29 14:52:54 -05:00
af0ee110c6 Rename osx directory to src since it's now the official source base 2014-12-28 12:12:38 -05:00