1
0
mirror of https://github.com/vcmi/vcmi.git synced 2024-12-28 23:06:24 +02:00
Commit Graph

229 Commits

Author SHA1 Message Date
ArseniyShestakov
c550484613 Merge pull request #181 from vcmi/feature/drawbridgeMechanics
Feature/drawbridge mechanics
2016-02-14 16:32:24 +03:00
Arseniy Shestakov
f453172d53 CBattleInterface: cleaner implementation of optional drawbridge blit
Checking against nullptr isn't clean solution so we only blit in case gate opened or destroyed.
2016-02-14 15:38:58 +03:00
Arseniy Shestakov
2cfdfca7e5 Battles: fix more cases where invalid wall hex position present 2016-02-14 14:38:24 +03:00
Arseniy Shestakov
c5cfc8467f Battles: change naming from drawbridge to gate for everything
This way code is shorter and cleaner while in future we may support towns with gate only.
2016-02-13 17:40:31 +03:00
Arseniy Shestakov
b946c52242 CBattleInterface: introduce EWallVisual instead of ids with comments 2016-02-13 17:10:14 +03:00
Arseniy Shestakov
422d5cabdf CBattleInterface: first pass on client drawbridge visualization 2016-02-10 07:10:32 +03:00
AlexVinS
ba017c443d Start from diff of pull request #124 from vcmi/issue/1372 2016-01-29 21:05:17 +03:00
Vadim Markovtsev
40cb48d65e Replace std::remove_if with vstd::erase_if 2016-01-26 10:19:58 +03:00
Arseniy Shestakov
9fd1cff090 Refactoring: always use std prefix for shared_ptr, unique_ptr and make_shared
Long time ago it's was used without prefix to make future switch from boost to std version easier.
I discusses this with Ivan and decide to drop these using from Global.h now.

This change wouldn't break anything because there was already code with prefix for each of three cases.
2015-12-29 05:43:33 +03:00
AlexVinS
e645b46aed Revert "Merge pull request #124 from vcmi/issue/1372"
This reverts commit da01af319b, reversing
changes made to 8b6b4e2e0b.
2015-11-07 11:35:02 +03:00
AlexVinS
4b5cb3599a Do not try to rise demons from war machines 2015-11-03 02:20:26 +03:00
AlexVinS
6a9dc78dcd [WiP]Added some checks for RISE_DEMONS action. 2015-11-03 02:18:36 +03:00
AlexVinS
2677d4a677 Fixed action cancel on active stack remove 2015-10-08 08:15:29 +03:00
AlexVinS
f99bf099ca Made player interface tolerant to active stack removal. 2015-10-06 03:46:35 +03:00
AlexVinS
a06e34cf61 Cleanup 2015-09-29 19:14:24 +03:00
AlexVinS
70d9be8447 Use ISpellCaster in battle callback 2015-09-29 17:26:52 +03:00
AlexVinS
d9cbe487c7 remove useless function CSpell::getTargetInfo 2015-09-29 17:26:47 +03:00
AlexVinS
2b434111bf More hero|creature casting unification 2015-09-29 17:26:40 +03:00
AlexVinS
92990c887c Fix creatures can always cast on self 2015-09-29 17:26:37 +03:00
AlexVinS
caf8ae62cc Allow custom effect animation on any stack during spell cast. 2015-09-14 06:21:49 +03:00
AlexVinS
0f0e67dbe3 Do not include resisted stacks in affected 2015-09-14 05:45:05 +03:00
AlexVinS
075b65b31b Use dummy animations 2015-09-12 21:09:53 +03:00
AlexVinS
832d69ec11 Hide battle log algorithm in spell classes.
* not finished, to be moved to json of splitted between mechanics classes
2015-09-12 21:09:51 +03:00
AlexVinS
5d0ecd9cdf More battle log refactoring 2015-09-12 21:09:50 +03:00
AlexVinS
7cf9bd36b7 Display AGE effect with any value (not only -50%). 2015-09-12 21:09:49 +03:00
AlexVinS
3a5a02e73b Use boost::fromat in CBattleInterface::spellCast 2015-09-12 21:09:48 +03:00
AlexVinS
805c839761 More CBattleInterface::spellCast refactoring 2015-09-12 21:09:47 +03:00
AlexVinS
8171924eb4 More simplification of CBattleInterface::spellCast
* was started in previous branch
2015-09-12 21:09:46 +03:00
AlexVinS
9482852020 few tweaks 2015-09-12 21:09:45 +03:00
AlexVinS
fb5903d610 Initial experiments on hero & creature casting unification 2015-09-12 21:09:44 +03:00
AlexVinS
2cb6cb7baa Remove useless durationType selector
* duration is a mask, equality comparison is not enough
2015-06-02 07:12:02 +03:00
AlexVinS
e1deff089d Actually use ANY_CREATURE possible action
* this fixes mantiss 0002140
2015-04-11 10:56:35 +03:00
AlexVinS
a061e3c2f7 Fix use-after-free in spell window 2015-04-11 10:18:40 +03:00
Fay
1cb54689cf Prevents first aid tents from melee attacking;
Moves attack possibility checks to battle callback (for consistency with shooting checks);
2015-04-09 21:49:11 +02:00
AlexVinS
67a7cd8350 Allow FREE_LOCATION action over dead stack. This fixes 0001560 2015-03-29 16:24:43 +03:00
AlexVinS
9600446cf9 +smart target, +hit animation 2015-03-18 17:48:32 +03:00
AlexVinS
69c458e881 initial implementation. 2015-03-18 13:27:07 +03:00
AlexVinS
025a00362b Simplify CBattleInterface::spellCast 2015-02-26 08:39:58 +03:00
AlexVinS
685deddac1 Start spell-relatet files reorganisation
* moved existing files to separate directory
-> todo: split mechanics
2015-02-26 08:39:48 +03:00
AlexVinS
a3f2667376 Remove some deprecated fields from CSpell
* now only new SpellScholl API is used
(!) untested
2015-02-26 08:39:43 +03:00
Fay
4b5b6edd44 Added space between both text entries; 2015-01-26 17:16:39 +01:00
Fay
413523956f Fixed missing info about dealt damage in combat log when there were casualties;
Fixed blank row in combat log in the same case;
2015-01-25 18:03:34 +01:00
AlexVinS
d94f15bdf4 Added configurable animation for SPELL_LIKE_ATTACK 2014-11-28 00:36:14 +03:00
AlexVinS
943a5bf0d3 cleanup 2014-11-27 22:10:36 +03:00
AlexVinS
0612042928 Tweak creature spell projectile start position
* need more finetuning
2014-11-27 21:33:57 +03:00
AlexVinS
04202eb030 Shoot spell projectile from creature 2014-11-27 21:06:11 +03:00
AlexVinS
657385e32c We need to know caster stack ID for proper projectile animation 2014-11-27 20:47:37 +03:00
AlexVinS
6893509f65 Fix manaGain animation always showing 2014-11-27 19:09:59 +03:00
AlexVinS
c67f52732a Fix CSpellEffectAnimation call parameters
(!) need check areaEffect usage
2014-11-27 17:39:37 +03:00
AlexVinS
75b93b070d Implemented configurable hit/affect animation
* need more testing
2014-11-27 16:51:16 +03:00
AlexVinS
256894d18a Use configuration for spell projectile 2014-11-27 00:27:38 +03:00
AlexVinS
f7ff61ce4f Merge remote-tracking branch 'remotes/origin/develop' into SpellsRefactoring4 2014-11-24 12:41:17 +03:00
DjWarmonger
c094e70784 Replaced legacy sprintf with boost::format. 2014-11-22 12:45:13 +01:00
KroArtem
82b278307f fixed typo 2014-11-17 23:08:08 +03:00
KroArtem
e73c60740c corrected text in vcmibuilder, corrected errors and warnings from cppcheck 2014-11-16 20:48:29 +03:00
AlexVinS
752965ff69 Merge branch 'develop' into SpellsRefactoring4
Conflicts:
	lib/CSpellHandler.cpp
2014-11-14 05:28:23 +03:00
AlexVinS
81fb2ae584 Fix crash when casting firewall-like spells after creature casting
#1910
2014-11-14 04:12:50 +03:00
AlexVinS
9e8b09d747 Use clearAffected flag 2014-11-13 15:00:45 +03:00
AlexVinS
66b022f93e initializer lists part1 2014-10-02 19:43:46 +04:00
Ivan Savenko
a5c3ed080f Fixes 1892 - properly handle animation of dying clones 2014-09-23 16:02:30 +03:00
Ivan Savenko
1e5e02c7df Compilation fixes caused by merge, replaced some remaining boost::bind with std's 2014-08-09 15:14:31 +03:00
Ivan Savenko
b1285bc506 Merged GUI refactoring into develop, fixed conflicts 2014-08-09 15:01:55 +03:00
beegee1
5139378319 - migrated boost::function/ref/bind to std:: variants 2014-08-04 20:33:59 +02:00
Ivan Savenko
10fc1892a8 Large refactoring of button classes:
- renamed CAdventureMapButton to more expectable CButton
- merged CButtonBase into CButton
- created more generic class for clickable elements
- created more generic class for selectable elements
- renamed CHighlightableButton to CToggleButton
- renamed CHighlightableButtonsGrous to CToggleGroup
- minimized differences between API of all these classes
- removed all but one contructors in buttons, with same parameters across all classes
2014-08-03 14:16:19 +03:00
Ivan Savenko
731aedf3a1 Split CIntObjectClasses into multiple smaller files. This should be the last change in files 2014-07-15 10:14:49 +03:00
Ivan Savenko
92d22bae63 Merge branch 'feature/creatureWindow' into refactoring/guiClasses 2014-07-14 17:23:24 +03:00
Ivan Savenko
647b9c683f Reorganized client source tree:
- client/widgets for reusable GUI elements
- client/windows for independent windows
- client/gui for base GUI classes which should remain internal
2014-07-13 20:53:37 +03:00
Ivan Savenko
7a9547bb44 New creature window made without use of H3 graphics
This is import of ancient unfinished branch from svn. As of now window is largely finished but commander-related elements are still TODO.

Note that I also uploading graphical content - this is intended and necessary for final goal - to make VCMI functional without any additional graphical pack.
2014-07-02 21:38:38 +03:00
AlexVinS
638dac90af centralize key color management 2014-07-02 22:20:54 +04:00
AlexVinS
082c9a506e Fix battle absolute obstactes rendering 2014-07-02 21:38:15 +04:00
Ivan Savenko
b2e8c92383 Cleanup:
- removed commented-out #includ'es
- renamed some files to match name of class
2014-06-05 20:26:50 +03:00
Ivan Savenko
652ceb2bde Finally shattered CObjectHandler.cpp into tiny bits
- This file is now split into multiple smaller files in mapObjects
directory
- CObjectHandler itself now contains only core classes (Handler itself,
CGObject and interfaces)
- Cleaned up excessive #include's through whole project
2014-06-05 19:52:14 +03:00
Ivan Savenko
0afdfa529c Moved all object-related files to lib/mapObjects directory.
Renamed some classes to more readable names
2014-06-05 14:19:47 +03:00
beegee1
1d57b75bc5 - random number generation refactoring
- fixed mantis #1743
2014-04-10 19:22:32 +02:00
Ivan Savenko
9c0df68cb8 Fixing spelling mistakes. Patch from josch, fixes #1759 2014-03-23 12:59:03 +00:00
alexvins
9cac0af7be [Spells] More spell related refactoring
+ smart target modifier
- CREATURE_EXPERT_MASSIVE target type
* save format changed

spell format changes already documented in http://wiki.vcmi.eu/index.php?title=Spell_Format
2014-03-17 13:11:10 +00:00
alexvins
065b8366fb [Spells] Added basic support for icons and sounds
* few changes in spell format
* save format changed
2014-03-10 16:00:58 +00:00
alexvins
4203d69525 Part 2 of new spell configuration
1) spell handler refactored to support modding in general way
2) imunnity icons moved to WoG as they depends on wog`s graphics
3) introduced new class template for handlers (todo: use this in other handlers)
4) save format changed
5) introduced "absolute immunity" - unaffected by "the Orb" etc. (todo: use it in config)
6) new format documented on wiki, added json schema.

* more split of registertypes - fixes 32 mingw build
2014-03-07 13:21:09 +00:00
Ivan Savenko
47c91e03b5 - fix to last commit
- workaround to crash on disabling auto-battle (somehow client
"remembers" one command given during auto-battle)
2014-01-14 14:34:08 +00:00
Ivan Savenko
c5b74a2dce Miscellaneous fixes:
- proper block of "back" button in campaign menu.
- proper block of AI switch in battles
- vertical garrisons can now be attacked from top
- better UI logging, vcmi will print to log file all pressed buttons
- server will not try to build already existing building
2014-01-13 17:44:21 +00:00
beegee1
69eee05ccc - Partially fixed mantis #1065 (Gate with hex 95 can't be attacked)
- Fixed 'catapult tried to attack non-catapultable hex!' problem, now catapult attacks attackable wall parts only
- Fixed problem that the server performed applying damage on a wall part twice
- Added methods for checking what wall parts are attackable and if a wall part is potentially attackable
- Added functionality to trace net packages
- Added functionality to trace std::vectors
- Added tracing for CatapultAttack(CPack)
- Updated various toString methods to use {} instead of []
- Refactoring
2013-12-08 17:54:13 +00:00
beegee1
e01ef8e36a - Fixed mantis #1576 (doesn't hang game)
- Implemented output stream operator<< for various classes(BattleAction, BattleHex,...) to improve debugging and logging
2013-11-09 16:25:20 +00:00
Ivan Savenko
ee6cdbeffe went through the rest of cppcheck warnings, mostly harmless 2013-11-07 12:48:41 +00:00
Ivan Savenko
71d6b0fea9 - Fixed some warnings from cppcheck
- Minor improvements to JSON validation
- Cleanup in SDL_Extensions.cpp
- Implemented new propery for creature format: idle animation duration
- Disabled idle animation of some of conflux creatures (was clearly
broken)
2013-11-06 13:42:58 +00:00
beegee1
94bee3fd1b - Changed visibility of curInt member of BattleInterface from public to private and provided a getter method 2013-11-03 16:44:47 +00:00
Ivan Savenko
0e3eae3095 patch from KroArtem 2013-11-03 12:51:25 +00:00
beegee1
aa1c193b88 Fixed mantis #1582 2013-11-02 20:07:45 +00:00
Ivan Savenko
6cb3cb006d Several minor fixes/features
- moved all traslatable strings into one json file, removed threats.txt file
- implemented "spellbook animation" option
- fixed missing central tower when attacking fort
2013-10-27 13:05:01 +00:00
Ivan Savenko
d09294e40a compile fix, fixes blit order of heroes in siege 2013-09-30 08:45:26 +00:00
Michał W. Urbańczyk
0abbe71b25 Merged fixes from the branch. 2013-09-28 00:58:33 +00:00
Michał W. Urbańczyk
4f29b526ca The battle callback method battleGetAllStacks will by default omit the arrow turrets. Fixes #1453, #1455 and related. 2013-09-27 19:42:17 +00:00
DjWarmonger
d06b02638b Partially implemented #481 2013-09-17 12:02:33 +00:00
Michał W. Urbańczyk
b62bb096a7 Fixed #1430, work-around to make #1435 non-crashing.
Fixed at least one of the #1428 infinite turns cases.
2013-09-11 21:57:08 +00:00
Ivan Savenko
76c77d58f6 const-ified CTown. May fix #1444 2013-09-06 21:57:16 +00:00
Ivan Savenko
8beee29482 - corrected "isToReverse" check, partially fixes 1397
- ballistics fix
- minor
2013-08-06 15:25:51 +00:00
Ivan Savenko
c81a31c74a - catapult attacks should be identical to H3
- catapult may miss and attack another part of wall instead (this is how it works in H3)
- minor fixes
2013-08-06 11:20:28 +00:00
Michał W. Urbańczyk
58ccaa2e93 The cmath "fix" was not needed after all, the includes order decides. 2013-08-02 08:28:52 +00:00
Michał W. Urbańczyk
7a90ead051 VS-2013 issue. 2013-08-01 11:58:30 +00:00
Ivan Savenko
b57b14b752 - fixed several bugs with siege graphics, including #1389
- removed "shooterHeight" property - seems to be same in all towns.
2013-07-31 22:24:44 +00:00
Ivan Savenko
b87897096c Filesystem handling is now more flexible
- removed CResourceLoader class in favor of one that implements resource loader interface
- removed global pool of files, in favour of more dynamic approach
- renamed some files to match current situation
All these changes are needed mostly for future mod manager + .zip support
2013-07-28 14:49:50 +00:00
DjWarmonger
5f310aa20f Fixed all issues with Resurrection: #123, #1358 2013-07-27 19:01:31 +00:00
DjWarmonger
b36be10e30 2013-07-25 11:53:36 +00:00
Michał W. Urbańczyk
d8a27d8f3c Refactored player-specific data into single struct BattleState. 2013-07-21 22:01:29 +00:00
Ivan Savenko
a148c39e0a more battles animations:
- UI will be correctly greyed-out during opponent turn
- fixed remaining issues with blit order
- a bit better handling of catapult attack
- fixes #1362
2013-07-21 10:10:38 +00:00
Michał W. Urbańczyk
e45d174ba5 Fixed crashes on Land Mines / Fire Wall casting. 2013-07-20 21:35:12 +00:00
Ivan Savenko
096d6ebf9c refactoring of CBattleInterface::show() and all related code
fixes most of blit order-related bugs in battles (#1200, #1238, #226)

known issues, will fix soon:
- there are still some minor blitting issues during movement
- destruction of walls in siege is out of sync with catapult projectile movement
2013-07-19 16:35:16 +00:00
Ivan Savenko
43db5587a1 - minor fixes to battle animations
- fixes crash on siege start
2013-07-16 22:59:39 +00:00
Ivan Savenko
1a77fee7f7 more improvements for battle animations
- synchronized attack/defence animation
- spell animation speed uses game settings
- added logging domain for battle animations

- fixed disrupting ray duration
2013-07-16 18:12:47 +00:00
DjWarmonger
4f7c6b8d34 Fixed #688 2013-07-15 08:51:48 +00:00
Michał W. Urbańczyk
d4ce091d2b A patch from Gernsworth related to #1204 — spell effects will be layered along with the creatures. 2013-07-10 10:45:51 +00:00
Ivan Savenko
410ec92668 Minor fixes:
- removed unused functionality from CCreatureAnimation
- simplified postioning of units in battle, should fix remaining issues with unit positioning
- fixed unit tests compilation
2013-07-07 19:44:08 +00:00
Michał W. Urbańczyk
516684aaab Visual 2012 compile fixes.
Unfortunately no C99 math nor uniform initialization till VS 2013.
2013-07-07 08:27:27 +00:00
Ivan Savenko
146a5e5ef8 Made speed of most of battle animations time-based
- speed of creature-related animation no longer depends on framerate
- most of values from cranim.txt are now used correctly
- removed BMPPalette struct in favor of SDL_Color
- animation group "DEAD" that is used to display dead stacks, by default consists from last frame of "DEATH" group

Notes:
- animation speed may still need some adjustments
- range of config property "battle/animationSpeed" has been changed. This may result in extremely fast animation. To fix - change animation speed via options.
2013-07-06 16:10:20 +00:00
Michał W. Urbańczyk
a1f545792b Compile fixes specific for VS 2012"
* Reverted std::bind to boost::bind. std::bind on Visual 2012 doesn't work in some cases (especially with std::ref), not sure why [but it seems to be a bug, since 2013 preview compiles the same code fine]. 
 * Move assignment operator for VS 2012.
2013-07-02 15:23:32 +00:00
Ivan Savenko
f82122d9be second part of c++11 update. gcc 4.5 and VS 2010 are no longer supported
- BOOST_FOREACH -> for
- replaced several boost classes with std (e.g. unordered)
- removed gcc-4.5 workarounds
- ran clang c++11 migration tool to detect some cases:
- - pointer initialized with "0" to nullptr
- - replace for with iterators with range-based for
- - use auto in some situations (type name specified twice, avoid long iterators type names)
2013-06-29 13:05:48 +00:00
Ivan Savenko
2b45e13c5c c++03 -> c++11 switch:
- use std versions of function, bind and ref
- OVERRIDE -> override
- NULL -> nullptr
- use std versions of random distributions

NOTE: this may be last revision that supports gcc-4.5
2013-06-26 11:18:27 +00:00
Michał W. Urbańczyk
1a2c8de6ad Minor improvements. 2013-06-24 14:35:27 +00:00
Ivan Savenko
dd808ef5cc bugfixing:
- support for one more Russian localisation, fixes #1321
 - fixed icon for level 1 town hall, #1294
 - correct portraits for first heroes from mods, #1297 and probably #1298
And a lot of gcc compile fixes
2013-06-23 19:35:54 +00:00
Michał W. Urbańczyk
06f0a29b31 Compile fixes for gcc, as per http://forum.vcmi.eu/viewtopic.php?p=9638#9638 2013-06-23 12:36:18 +00:00
Michał W. Urbańczyk
04d11519ef Quick Combat system setting works… if user doesn't click in the meantime. 2013-06-23 11:25:48 +00:00
Michał W. Urbańczyk
4a0587d500 More work on auto-fight.
Dynamic libraries return smart-pointers to what they create.
2013-06-22 21:47:51 +00:00
Michał W. Urbańczyk
254f194220 Some very early work towards autofight feature.
Added EmptyAI to the solution.
Passing callbacks by shared_ptr.
2013-06-22 14:47:20 +00:00
Michał W. Urbańczyk
6a88604937 * fixed crash related to cammander's SPELL_AFTER_ATTACK spell id not initialized properly (text id was resolved on copy of bonus)
* fixed duels, added no-GUI mode for automatic AI testing
* minor things
2013-06-17 15:45:55 +00:00
Michał W. Urbańczyk
30fb552fb4 Patch from Gernsworth fixing #1283. 2013-06-15 22:09:15 +00:00
Michał W. Urbańczyk
fc6e72dc75 * Fixed enchantments (#1265). Their effects were not properly added when reading config. Battle interface will be little less likely to block itself after corrupted spell cast.
* Fail gracefully when the file from which game is started is in invalid version.
* Bumped versions.
2013-05-19 15:14:23 +00:00
Ivan Savenko
8be801a6dc - CMappedFileLoader class to remap WoG files to h3 names
- WoG should be optional, all remapped files are listed in WoG/config/wogFileOverrides.json
- fixed several cases of incorrect positioning of creatures in battles
- some missing sounds for battle effects
- negative luck support, disabled by default
- a bit hackish detection of WoG presence, VCMI should work on SoD-only installs
2013-05-04 13:14:23 +00:00
Ivan Savenko
c6cc6e6301 Large changeset, first part of editing H3 objects via mods feature. Changes:
- loading of all objects (including H3 objects) will be directed by mod handlers
- common base for all handlers accessible from mod system (IHanderBase)
- json format changes: use struct with string ID's instead of vector

- fixed some gcc/clang errors and warnings
- fixed several cases of memory leaks and invalid memory access (mostly related to usage of bonus system and/or identifiers resolution)

Note that right now loading is much slower than before due to excessive json validation (or not fast enough validator)
2013-04-21 12:49:26 +00:00
beegee1
c7c2686379 - Integrated the logging API into the client and the lib - Remove some more comments and switched to /// style - Fixed recursive locks - Added Global.h to CMakeLists(now visible in qt-creator) - Removed usage of shared_mutex - Added unique_ptr to CLogger targets 2013-04-09 14:31:36 +00:00
beegee1
30bcec42c6 - Renamed client/BattleInterface to client/battle and client/UIFramework to client/gui 2013-04-07 11:52:07 +00:00