Commit Graph

40 Commits

Author SHA1 Message Date
3fc1b8cd7e Fix most of the warnings in the Visual Studio build
- Fix energy-draining weapons
- Specials called when a spell is targeted on a space now work a little differently if the spell is multi-target. For each target, the special is triggered if it exists; otherwise the normal spell behaviour occurs.
2015-02-20 12:18:38 -05:00
d977a0f457 Make menu accelerator keys work on Windows 2015-02-14 15:21:26 -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
f5a43bc011 More reduction of reliance on hard-coded limits 2015-02-07 09:46:51 -05:00
c50e24b8e4 Turn sparse arrays into sets. 2015-02-06 15:37:55 -05:00
5bfae50315 Traits and races
- Vahnatai race implemented
- Pacifist trait implemented
- New trait: Anama - classified as a disadvantage but also has some perks
- PCs with bug race now immune to web fields
- PCs with undead/demon races now do that type of damage on unarmed attacks

The new races and traits probably still need some work/balancing.
2015-02-05 17:33:12 -05:00
aa938178ce Fix training dialog not functioning in the PC editor 2015-02-05 13:06:46 -05:00
e71ebdc895 Restore training dialog in-game help 2015-02-05 13:06:20 -05:00
e5792f1e09 Eliminate global variables from the training dialog 2015-02-05 02:07:08 -05:00
ae7c8e12db More removal of reliance on hard-coded limits 2015-02-02 11:38:39 -05:00
2933f1e2e7 Finish support of generalized status effects (probably)
- Negative dumbfounding increases effective magic skills; works on monsters too (though it already did)
- Martyr's Shield no longer permanent on monsters
- Invisible status effect works on monsters (same as permanent invisibility)
- Poisoned weapon status effect works on monsters (adds poison to their first melee attack)
- Restore Mind spell no longer removes negative dumbfounding
- Invulnerability status effect works on monsters (same as permanent invulnerability, and stacks with it)
- Magic resistance status effect works on monsters (halves fire/cold damage)
- Negative magic resistance doubles magic/cold damage (both on PCs and monsters)
2015-01-27 14:55:51 -05:00
4fa0efa7d8 Introduce two dialogs for debugging - a Set SDF dialog and a Debug Help dialog
- sd_legit() moved into cParty class
2015-01-26 14:36:15 -05:00
d396e459a3 Pass around iLiving references instead of target indices in most combat contexts (and some non-combat)
- Fixes PC melee attacks using webs from the wrong PC
- Support for PC-on-PC attacks is in place, though these code paths are currently not entered; could be used for charmed PCs, for example
- In many cases, status effects that don't affect monsters are now supported for them (but still don't affect them... yet)
- The "special" damage from assassination is now handled differently; support for it is no longer hard-coded into damage_monst(), and the message display for it is handled externally from damage_monst(). Also, it's no longer used for any kind of magic weapons.
- Select target special node has changed its way of selecting a specific monster/PC as the target
- Fix monster-on-monster attacks applying poison on all three attacks instead of just the first
2015-01-25 18:24:47 -05:00
99bb11dd3b Split up files so that the scenario editor will build
- cCreature split into seperate file-pair from cMonster/cTownperson
- fileio.cpp split into general, party, and scenario sections
- classes.h file deleted
2015-01-24 21:29:34 -05:00
144945587b Initial stage of major refactor - putting all PC/monster-affecting functions inside the respective classes 2015-01-24 20:02:20 -05:00
d77baefcb5 Add new shop type and enhance existing ones a little
- Shops can now sell skill upgrades without skill point costs (currently available only through special node, not through dialogue)
- Spell shops now show level and spell point cost
- Alchemy shops now show ingredients
- Make use of the constants defined for indexing the shop rects
- Support for arbitrary quantities of items in shops, rather than simply infinite for normal shops and one for magic shops (there's no hook for this yet, though, so it can't be used)
2015-01-23 22:04:48 -05:00
41db6dcfdf Fix indentation 2015-01-23 04:06:06 -05:00
e5f44de4fe Move a lot of item-related functions into the player and party classes
- Rearrange alchemy code a little to fix a possible situation with two-ingredient potions where you only have one of the first ingredient - instead of removing the second ingredient, it would have removed the next item in your inventory
- Equippable item abilities that have an ability strength now stack if you have multiple items with the same ability equipped
2015-01-16 16:40:54 -05:00
39723d1a94 Fix character editor build
(Was broken with the party splitting changes)
2015-01-16 03:40:20 -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
1a7ff2c631 Fix Windows build 2015-01-10 00:29:25 -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
38f398caa5 Several little fixes
- Save As not working when not in a scenario
- Recuperation trait not selectable
- (Mac) Reverse domain applied as file extension
- (Windows) File extension not auto-appended
- (Windows) Dialogs sometimes fell behind main window after exiting sub-dialog
2015-01-07 17:20:49 -05:00
2604be619a Fix up Windows game/PCed menus
- Journal added
- Move Reunite and Own Vehicles to end to match Mac ordering
- Fix seeing instant help for creating a PC when you already have 6 PCs
- Fix listing wrong spells in spell menus
- Fix indentation
- Disable PC editor edit menus when file not loaded
2015-01-05 19:10:34 -05:00
04b9aec921 Reform PC editor menu -> command mapping so that the non-platform-dependent code doesn't need to know where the menuitem is
- Also disable edit menus when no party loaded and fix item menus not being populated if the party is in a scenario
2015-01-05 17:17:34 -05:00
60730702a5 Split PC editor items menus into columns
- And increase columns for scenario editor items menus
2015-01-05 13:25:18 -05:00
ccd71b4597 Fix Mac PC editor build 2015-01-04 22:18:45 -05:00
f44f713cac Fix cursors not showing up on Windows.
(At least mostly; there might still be a few glitches.)
2015-01-04 22:03:24 -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
39ed049faa Get the scenario and PC editors to build 2014-12-30 23:16:49 -05:00
16d31f4a3f Rearrange Mac PC editor menus to match the Windows PC editor menus 2014-12-30 18:21:58 -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