Commit Graph

293 Commits

Author SHA1 Message Date
0d010f30bf Fix auto-generated frills causing the game to significantly lag 2015-01-30 21:17:51 -05:00
a23682306c Finish edit terrain type dialog in the editor and tweak some terrain properties
- Introduce enum for step sounds
- Remove union for treating terrain flags as either signed or unsigned
Editor:
- Add Choose button to select the "transform to" terrain.
- Implement Choose buttons as appropriate for the terrain flags, including editing the special that a terrain calls.
- Range-check the terrain flags.
- Add Custom button to choose a town as the combat arena.
- Fix/tweak/improve several of the terrain flag prompts.
- Fix placing shortcut key in field as its ASCII code instead of the letter
- Fix some of the range checks that were already in place but were incorrect or improperly static
Game:
- The wilderness terrain types now allow specifying how many d6's of food you get when hunting there.
- Crumbling terrain uses flag 2 instead of 3 to determine method (flag 2 was supposed to be strength but was never used)
- Merge two functions that did almost exactly the same thing (namely altering a terrain space and potentially updating conveyor/lights info)
- Merge switch_level into handle_lever since it was the only place it was called
- Remove global store_special_loc; the location is stored in the stuff_done array now
- Change when use/step on terrains will now update lighting if they changed to a terrain with a different light level
- Terrains that call a special no longer support mixed global/local modes - they either always call a local special or always call a global special
- Use previously unused swap_ter function (which did the exact same thing as the swap terrain special node)
Dialog Engine:
- Don't "erase" invisible icons or buttons; it's not necessary, since the entire window is filled with background before the draw() method is called, and it causes problems in case of overlapping elements.
2015-01-28 15:43:58 -05:00
6ed3b11399 Fix text wrap in transcript to work with pixel width of text instead of character width
Also, remove all (or at least most) of the extraneous spaces from the end of transcript messages.
2015-01-27 14:06:47 -05:00
495a0dab54 PC creation tweaks
- Allow scenario designer to specify exactly which towns allow character creation in them
- Clicking the "Empty" name in the edit party dialog is now equivalent to clicking the create button
- Fix dialog not properly focusing after deleting a PC
2015-01-26 19:34:51 -05:00
91c52fca77 Implement customizable background patterns to be displayed behind the game interface based on which town/sector the player is in and whether they are in combat mode, with cascading defaults.
- All the hard-coded background changes are no longer present and not even preserved.
2015-01-26 18:42:54 -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
9b067b62e4 Implement writing of town/outdoors map data to file 2015-01-23 18:21:20 -05:00
cf85ea7f5a Fix/update the edit placed monster dialogs
- Also, edit monster dialog now shows default facial pic
2015-01-23 13:37:47 -05:00
41db6dcfdf Fix indentation 2015-01-23 04:06:06 -05:00
5e21b8d4be Add three more map features to the map parser 2015-01-22 21:36:53 -05:00
952d81ae5a Store rect descriptions together with their rectangle and remove now-unused string-length members 2015-01-22 15:19:26 -05:00
967438ecec Add dialog to the scenario editor to let it know what type of graphics are in the custom sheets
- If you do this, it adds the graphics to all relevant select graphic dialogs, at the end, allowing you to choose custom graphics without having to remember the number schemes
2015-01-20 17:18:37 -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
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
0dece71686 Fix some issues where some aspects of the prefab party leaked into loaded games 2015-01-12 21:19:51 -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
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
bd531f9ac4 Nuke a lot of MSVC compiler warnings 2015-01-10 21:30:16 -05:00
6cae5d8bbd Add rudimentary error messages to the special nodes parser
- It tells you the line number, but not the nature of the error
- Unfortunately it can't currently cope with files that don't end in a newline
2015-01-10 19:12:33 -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
9a19db553f Fix the specials code parser not compiling in Visual Studio 2015-01-10 00:36:29 -05:00
9f57f35428 Change .h -> .hpp in tools/ directory 2015-01-09 22:32:47 -05:00
057f271fe7 Redirect VS release build log to a file in %APPDATA% rather than in the program directory
- Will be important once there's an installer, since apps may not have permission to modify the program directory
2015-01-09 14:22:40 -05:00
c96dba2678 Redirect console output to Visual Studio debugger panel
- Or to logfile for the release build
2015-01-08 22:57:15 -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
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
3b1d083575 Move pictype enum to seperate file from pict control 2015-01-07 17:10:43 -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
ec617322d0 Merge branch 'master' from Windows 2015-01-05 13:33:52 -05:00
584baa3f19 Reform scenario editor menu -> command mapping so that the non-platform-dependent code doesn't need to know where the menuitem is 2015-01-05 13:33:38 -05:00
a58f643926 Fix crashes when writing saved game 2015-01-05 13:23:20 -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
c3e801ad7a That comment was wrong. 2015-01-04 20:08:50 -05:00
e000b070ef Fix open file dialogs not working on Windows 2015-01-04 19:37:52 -05:00
d842a6a6b3 Fix Windows build 2014-12-30 17:44:45 -05:00
099a6a61b0 Fix Mac build (again) 2014-12-30 17:41:50 -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
c0642fe993 Fix Mac build 2014-12-29 15:13:52 -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