Commit Graph
100 Commits
Author SHA1 Message Date
Ivan Savenko ced2ece954 Fixes #809 - do not print error message after stepping onto mine 2022-12-17 14:40:54 +02:00
Ivan Savenko 2e22b04c4a Fixes #1045 - Berserk now lasts until attack 2022-12-17 12:55:34 +02:00
Ivan Savenko 70eac47f08 Fixes #1051, #1042 - highlight creatures that will be affected by spell 2022-12-17 00:10:12 +02:00
Ivan Savenko 4d5311789e Fixes #831 - do not process any incoming Packs until opening is over 2022-12-16 23:22:04 +02:00
Ivan Savenko 9e5f72166b Fix animation ordering for moving with rotation 2022-12-16 22:38:14 +02:00
Ivan Savenko bbabc991ee Clean up logging 2022-12-16 22:37:44 +02:00
Ivan Savenko 6c04581655 Fix stack rendering order during movement 2022-12-16 22:07:46 +02:00
Ivan Savenko a1ab90fb05 Creatures with double strike will not hit 2nd time after blinding 2022-12-16 21:52:46 +02:00
Ivan Savenko 39a54ff8ff Fixes #1139 - Unicorns now cast blind at expert level 2022-12-16 21:46:52 +02:00
Ivan Savenko 733f21f8dc Petrify will freeze stack animations 2022-12-16 18:34:35 +02:00
Ivan Savenko 8665f36778 Fix another case of assertion failure on exit 2022-12-16 16:53:21 +02:00
Ivan Savenko 39367473d2 Removed no longer used code 2022-12-16 16:23:50 +02:00
Ivan Savenko 3403b42cd8 Fix transparency checks that were broken for palette images with alpha 2022-12-16 16:23:07 +02:00
Ivan Savenko 4d628a8ba1 Fixed several assertion failures on shutting down game 2022-12-16 16:19:57 +02:00
Ivan Savenko 291bb9b204 Expanded cursors enum to include all possible values 2022-12-16 11:22:58 +02:00
Ivan Savenko 864990db13 Implemented Bloodlust & Petrification effect
- ColorFilter is now in separate file
- Moved lerp function into global.h
- Bloodlust visuals mostly matches H3
- Petrify visual matches H3
- TODO: Adjust timing of all ColorFilter efects to match H3
- TODO: Petrify should pause stack animations
- TODO: ColorFilter-powered effects should be configurable in Spell system
2022-12-15 23:24:03 +02:00
Ivan Savenko 7e35a96055 Changed ColorPutter in preparation for Bloodlust & Petrify effects 2022-12-14 15:17:38 +02:00
Ivan Savenko 3693184e51 Fix cast animation for Genie and heroes 2022-12-14 14:48:02 +02:00
Ivan Savenko 7857668158 Implemented group attack animations for dragons/Hydras/etc 2022-12-14 14:21:58 +02:00
Ivan Savenko 814f6ed684 Made Clone color filter identical to H3 2022-12-14 13:00:40 +02:00
Ivan Savenko fb3a08e0a6 Added fading animation for fade-in effect for summons 2022-12-14 12:04:37 +02:00
Ivan Savenko b2f5a87a0f Spell animation will now wait for hero animation before playing 2022-12-13 21:31:49 +02:00
Ivan Savenko e7206cb759 Cleaned up BattleHero class 2022-12-13 21:31:49 +02:00
Ivan Savenko c172e3c8e0 Cleaned up BattleAnimationClasses file 2022-12-13 21:31:49 +02:00
Ivan Savenko 776d00d901 Cleaned up UI blocking conditions 2022-12-13 21:31:49 +02:00
Ivan Savenko e791323502 Implemented placement sound for obstacles 2022-12-13 21:31:49 +02:00
Ivan Savenko 2148b76911 Fix lambda captures lifetime 2022-12-13 21:31:49 +02:00
Ivan Savenko 60a00b450e Multiple fixes & improvements to animation ordering 2022-12-13 21:31:49 +02:00
Ivan Savenko 0020d76d1d Introduced animation phases for beter ordering of visuals in battles 2022-12-13 21:31:49 +02:00
Ivan Savenko c79634b6a7 Moved all animation ordering logic to callers
Previously, CBattleAnimation & inheritors were controlling animation
ordering - e.g. which animations should play after which.
Now, this is controlled by caller, e.g. BattleInterface & its
controllers.
H3 animations are fairly linear and can be split in stages which are
already somewhat implemented via waitForAnims
2022-12-13 21:31:49 +02:00
Ivan Savenko e750bd2713 Reverse death animation for resurrection spells 2022-12-13 21:31:49 +02:00
Ivan Savenko 1dea1854ae Moved battle animation enum's into new file 2022-12-13 21:31:49 +02:00
Ivan Savenko b3deea24e0 Earthquake spell: do not target already destroyed sections 2022-12-13 21:31:49 +02:00
Ivan Savenko 155f776ae8 Merge pull request #1172 from IvanSavenko/battleint_refactor
[1.2] Refactoring of BattleInterface class
2022-12-13 21:31:18 +02:00
Ivan Savenko d94076c618 Fix msvc build 2022-12-13 16:54:49 +02:00
Ivan Savenko 55d0f0ad9f Fixed infinite loop 2022-12-13 15:17:42 +02:00
Ivan Savenko 99e5569ab5 Changes according to review 2022-12-13 15:10:31 +02:00
Ivan Savenko 264f5c91e8 Applied suggestions from review 2022-12-13 13:58:16 +02:00
Ivan Savenko 602e52127b Cleaned up forward declarations 2022-12-12 18:26:04 +02:00
Ivan Savenko d40d5250b7 changes to status bar according to review comments:
- renamed IStatusBar API to more clear names
- removed "locking" of status bar
- added comments for IStatusBar API
- removed dynamic_casts to CGStatusBar, now IStatusBar API is fully
sufficient
2022-12-12 18:23:41 +02:00
Ivan Savenko 1558c28c0a Fix obstacle rendering 2022-12-12 00:05:00 +02:00
Ivan Savenko c302efd315 Fix crash on accessing not yet created object 2022-12-12 00:04:46 +02:00
Ivan Savenko ac839ad26a Changes to rest of the code according to review:
- renamed status bar method clearMatching -> clearIfMatching
- renamed class ColorShifterAddMul -> ColorShifterMultiplyAndAdd
- fixed missing return from function
- fixed potential access to deleted object
2022-12-11 23:43:43 +02:00
Ivan Savenko 49a6d056d9 Changes for BattleInterface classes according to code review:
- added documentation comments for classes, members and methods
- added const specifier to methods where applicable
- renamed some methods with more clear name
- removed some commented-out or unused code
2022-12-11 23:16:23 +02:00
Ivan Savenko 7f5e5259c8 Changes to Canvas class according to review:
- renamed CCanvas -> Canvas.cpp
- replaced shared_ptr<Canvas> with Canvas&
- removed getSurface method
2022-12-11 22:09:57 +02:00
Ivan Savenko c855823528 Renamed files in client/battle to match new names of classes 2022-12-09 13:38:46 +02:00
Ivan Savenko 3f9a0a855e Renamed most of classes in client/battle directory to match current code
style
2022-12-09 13:26:17 +02:00
Ivan Savenko a06d7ec80e Fix Armaggeddon visual effect 2022-12-06 14:29:31 +02:00
Ivan Savenko 3c037ed620 Fix spellcaster animations 2022-12-06 14:12:13 +02:00
Ivan Savenko f247a98373 Fix non-siege battles 2022-12-06 14:11:37 +02:00
Ivan Savenko 2c05f588fd Moved CBattleRenderer into a separate file 2022-12-06 13:41:29 +02:00
Ivan Savenko 1b4c5be4de Implemented proper rendering order generation for battlefield objects 2022-12-02 17:49:38 +02:00
Ivan Savenko 90a25cb28d Fix tower shooter rendering 2022-12-02 02:13:02 +02:00
Ivan Savenko 15051c33ce Remove casting sound from quick sands - should be applied on obstacle
creation
2022-12-02 01:57:04 +02:00
Ivan Savenko 58ba5f1aee Fixes to effects of earthquake, obstacle-creating and offensive spells 2022-12-02 01:55:09 +02:00
Ivan Savenko d8742dac3f Show correct error message on attempting to cast Remove Obstacle on
fields with no removable obstacles
2022-12-02 00:27:48 +02:00
Ivan Savenko 215932b520 Fix compile after merge 2022-12-02 00:06:57 +02:00
Ivan Savenko 495e0b3657 Merge remote-tracking branch 'vcmi/develop' into battleint_refactor 2022-12-01 23:58:01 +02:00
Ivan Savenko 2442d38b9a Fix ranged attack animations 2022-12-01 23:40:03 +02:00
Ivan Savenko bbd4d361e4 Send hover event to buttons in battle UI 2022-12-01 23:39:43 +02:00
Ivan Savenko c721d7c4f3 Fix overwriting of hover text of buttons in combat 2022-12-01 23:36:41 +02:00
Ivan Savenko 5094fab4d9 Refactoring of spell animations, multiple fixes for spell visuals 2022-12-01 22:06:42 +02:00
Ivan Savenko 92ca0d9877 cleared up rendering of tower shooters 2022-11-30 22:05:25 +02:00
Ivan Savenko 7c410ab5ce Fix potential crash due to iterator invalidation 2022-11-30 18:07:21 +02:00
Ivan Savenko 5cd405bce8 Fixed meta field handling in JsonUtils::inherit function, removed
workarounds
2022-11-30 17:38:53 +02:00
Ivan Savenko 79c96e94fa Cleared up comments 2022-11-30 17:37:36 +02:00
Ivan Savenko 36ae26bc37 Fixed several scenarios which could lead to json with incorrectly set
mod origin info, leading to non-resolving identifiers
2022-11-29 22:34:32 +02:00
Ivan Savenko abe11aaf54 Introduced "map" scope for accessing identifier on map loading.
Currently it allows access to all mods, should be restricted to mods
that map depends on
2022-11-29 22:33:08 +02:00
Ivan Savenko 4a42ef29d9 VCMI mod version bump 2022-11-29 19:07:21 +02:00
Ivan SavenkoandNordsoft91 c233e57079 Apply suggestions from code review
Co-authored-by: Nordsoft91 <nordsoft@yahoo.com>
2022-11-29 18:24:03 +02:00
Ivan Savenko 6d4bcba842 Fix moat rendering position 2022-11-29 17:18:43 +02:00
Ivan Savenko de5616bb3b Fix combat log position 2022-11-29 17:18:30 +02:00
Ivan Savenko a512e0d58f Fixed ugly solid-white status bars in pregame, removed operator* from
CPicture
2022-11-29 17:07:21 +02:00
Ivan Savenko 26a2ac72b8 Added default tower shooter icons to all standard factions 2022-11-29 15:14:57 +02:00
Ivan Savenko 8b7ca176f8 Updated schema 2022-11-29 15:14:10 +02:00
Ivan Savenko 178cd0226f Show town-specific tower icon in battle queue, if such icon exists 2022-11-29 14:59:50 +02:00
Ivan Savenko 861a6849f9 Added possibility to define per-town tower icon for battle queue in siege 2022-11-29 14:47:51 +02:00
Ivan Savenko 3d1f6df0e2 Added simple icon for tower shooter creature, fixes #791 2022-11-29 12:18:27 +02:00
Ivan Savenko 88d8655f01 Fix forward declarations for ios single-app build 2022-11-29 02:00:08 +02:00
Ivan Savenko 1e2793af3a Attempt to fix cmake with older gcc 2022-11-28 23:05:36 +02:00
Ivan Savenko 86616a5a3b Fix visibility of stack amount box on start of combat 2022-11-28 22:47:28 +02:00
Ivan Savenko 9e11b8f38a Fixes for creature rendering order 2022-11-28 22:35:38 +02:00
Ivan Savenko f5f719b78e Enabled -Wmismatched-tags warning for gcc/clang since this apparently
lead to MSVC linker error
2022-11-28 21:46:24 +02:00
Ivan Savenko 95e6035a23 Attempt to fix MSVC compilation 2022-11-28 21:44:16 +02:00
Ivan Savenko a0157d6117 replaced C array with std::array 2022-11-28 21:20:46 +02:00
Ivan Savenko 6f6d350228 Formatting cleanup 2022-11-28 16:43:38 +02:00
Ivan Savenko 3e58d1e3c5 Merge remote-tracking branch 'refs/remotes/vcmi/develop' into battleint_refactor 2022-11-28 16:10:13 +02:00
Ivan Savenko 7c4e04c1ec Refactoring/cleanup of classes in CBattleAnimations.cpp 2022-11-28 16:02:46 +02:00
Ivan Savenko 8a059301d2 Fix blitting order of battlefield objects 2022-11-27 23:42:18 +02:00
Ivan Savenko 055824654e (partially) fix catapult explosion effect 2022-11-27 23:26:28 +02:00
Ivan Savenko 9f21569a79 Next batch of siege fixes 2022-11-27 22:50:18 +02:00
Ivan Savenko 35576834c9 Fixing sieges, part 1 2022-11-27 20:21:51 +02:00
Ivan Savenko b5d1cb4996 Fixes for projectile playback. TODO: check catapult projectile 2022-11-27 17:24:45 +02:00
Ivan Savenko 15b588b164 Fix stack reactivation leading to broken spellcasting 2022-11-27 15:10:27 +02:00
Ivan Savenko e76cd1b6a7 Bugfixing: fix crashes on battle start & most noticeable glitches 2022-11-27 02:26:02 +02:00
Ivan Savenko 0cae259f53 Most of rendering in BattleInt is done via canvas
- refactoring of CBattleStacksController.cpp
- moved EAlignment enum to Geometries.h from CIntObject
- renamed EAlignment to ETextAlignment, to avoid conflict with good/evil
alignemt
- ETextAlignment is now enum class
2022-11-26 23:12:20 +02:00
Ivan Savenko 4f91b062db Refactoring of projectile controller
- projectiles now separated based on type
- each type has its own rendering method
- refactoring of CShootingAnimation
2022-11-25 16:32:23 +02:00
Ivan Savenko abb553d975 Next step of code refactoring:
- refactoring of CBattleFieldController code (except for 2 arcane
methods)
- introduced class CCanvas for encapsulated rendering surface
- battleint rendering is now partially done with CCanvas
- removed unused includes of CBitmapHandler
2022-11-25 11:46:47 +02:00
Ivan Savenko 6b3beb05e5 BattleInt split is finished, start of refactoring:
- Refactoring of siege controller code
- Replaced some usages of C struct SDL_Surface with proper c++ class
IImage
- Refactoring of rendering of battlefield objects (WIP)
2022-11-25 00:26:14 +02:00
Ivan Savenko cb6fe1eedf Moved battle effects into a new class 2022-11-24 16:30:04 +02:00