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 Savenko and Nordsoft91
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