These were very shoddily put together!
It seems the person who made them never really tried building
the editors or the tests.
Also included here are a couple of minor source changes that are needed
to make the project files build.
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)
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.
- Nuke global preference variables (they're now fetched with get_xxx_pref whenever needed)
- Nuke magic SDFs that store preferences and other info
- The only preferences now stored in the saved game are those related to difficulty
- play_sound no longer takes an option repeat parameter, but instead takes a delay which will be used if sounds are disabled
- SDF array increased to 350x50
- When saving a legacy scenario, a dialog is shown to remind you to update and to allow you to clear the legacy flag
This includes an added optimization to the resource manager - it now uses unordered (hash) maps instead of ordered (tree) maps to keep track of loaded resources and paths, for the average constant lookup time.
- In the game, text placement is better-aligned on the main-menu buttons, in the PC stat area (both PC info and food/gold/day), in the PC items area, and in the text info bar.
- Fix leaving artifacts of previous titles in the PC stats area
- Title of PC items area is now in yellow, to match the PC stats area
- Bold text now actually looks bold (affects all programs)
- In the scenario editor, the location of the info strings above and below the toolbar are fixed
- Text in the PC editor has received numerous tweaks too numerous to list. In particular, text on the right buttons is better centred, and gold and food aren't stuck together.
- PC editor now shows race even if it's a monster race
- PC editor now recognizes the presence of the forcecage status
- PC editor now shows all traits and status effects, even if the PC has every trait or every status effect in the game.
- 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.
- 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)
- cCreature split into seperate file-pair from cMonster/cTownperson
- fileio.cpp split into general, party, and scenario sections
- classes.h file deleted
- 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)
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
- 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.