1
0
mirror of https://github.com/vcmi/vcmi.git synced 2024-11-28 08:48:48 +02:00
Commit Graph

803 Commits

Author SHA1 Message Date
Ivan Savenko
1c552ba9d9 Remove unused code 2023-08-21 17:55:49 +03:00
Ivan Savenko
013417fb7e Code cleanup 2023-08-21 17:55:49 +03:00
Ivan Savenko
6297140bf5 Start of stabilization - battles now start correctly 2023-08-21 17:55:49 +03:00
Ivan Savenko
44832f3797 Split BattleProcessor into few more parts 2023-08-21 17:55:49 +03:00
Dydzio
6bfbe80cc9 Allow toggling quick combat spells usage 2023-08-19 17:23:55 +02:00
Ivan Savenko
f13a53c1d9 Merge remote-tracking branch 'vcmi/beta' into develop 2023-08-12 17:28:47 +03:00
Ivan Savenko
8ba3f771be
Merge pull request #2529 from IvanSavenko/hero_defeat_fix
Fix potential access to empty std function on hero vs hero combat
2023-08-11 11:37:12 +03:00
Ivan Savenko
dc2135da7f Fix potential access to empty std function on hero vs hero combat 2023-08-09 00:46:55 +03:00
Ivan Savenko
62a5eeebbc Fixed rendering priority of battlefield background obstacles 2023-08-07 21:18:43 +03:00
Ivan Savenko
537f9fa048 Merged master into develop 2023-08-03 23:38:32 +03:00
Ivan Savenko
3213800097 Fix assertion failure on teleport cast 2023-08-03 14:20:54 +03:00
Ivan Savenko
791eb1a37b Added workaround for running game with outdated extras mod from 1.2 2023-08-01 14:47:17 +03:00
Ivan Savenko
43795c39a5 Replaced all usage of SDL_Color outside of render with ColorRGBA 2023-07-31 21:07:30 +03:00
Ivan Savenko
aed8c411fc Minor rework & cleanup of combat replays 2023-07-27 19:25:55 +03:00
Ivan Savenko
32f7a95e38 Use capture by value since thread might start after local method returns 2023-07-25 22:33:59 +03:00
Ivan Savenko
a280cc8845
Merge pull request #2384 from IvanSavenko/bugfixing_beta
Bugfixing iteration
2023-07-24 00:49:34 +03:00
Dydzio
47b6358e6e Improve feature by triggering hero window refresh in response to netpack 2023-07-22 21:51:14 +02:00
Ivan Savenko
5be4f6ec2f Fix visibility of creature amount label after casting spell before turn 2023-07-22 22:49:48 +03:00
Dydzio
05735a20e1 Fix for hero info window mana points not getting spent on spellcast 2023-07-22 15:32:00 +02:00
Ivan Savenko
e6d8b65e2c Fix toggling of auto combat 2023-07-22 12:15:27 +03:00
Ivan Savenko
cefbe5152e
Merge pull request #2359 from IvanSavenko/crashfixing
Fix crashes from 1.2.1 statistics on Google Play
2023-07-21 15:44:37 +03:00
Ivan Savenko
9e58f67ab5 Fix autocombat AI threading 2023-07-19 12:09:03 +03:00
Ivan Savenko
556763fb7b Fixed handling of tactics 2023-07-18 22:02:35 +03:00
Ivan Savenko
1bf6bbd9b6 Significantly simplified threading model in battles 2023-07-18 19:55:59 +03:00
Ivan Savenko
5e8a778e7d Attempt to fix / trace crashes from Google Play statistics 2023-07-18 17:31:21 +03:00
Dydzio
f4f789804d
Update client/battle/BattleWindow.cpp
Co-authored-by: Ivan Savenko <saven.ivan@gmail.com>
2023-07-18 15:15:58 +02:00
Dydzio
48a72f90f7 Add option for persistent hero info window as in HD mod 2023-07-17 23:25:16 +02:00
Michael
4e242f98fd
Battleintro: Skip with mouse button 2023-07-15 21:18:04 +02:00
Ivan Savenko
18db944083 Replaced clickReleased with clickPressed where applicable in H3 2023-07-09 17:48:25 +03:00
Ivan Savenko
ca889a5c2a Replaced clickLeft with clickPressed clickReleased methods 2023-07-08 14:33:04 +03:00
Ivan Savenko
85262cf4f5 Moved CGameState files into a separate directory 2023-06-26 17:15:59 +03:00
Ivan Savenko
a84ccb37c2
Merge pull request #2250 from IvanSavenko/event_handling_fixes
Slider input event fix
2023-06-25 17:39:55 +03:00
krs
27c488e62f Small changes after review. 2023-06-23 20:05:15 +03:00
krs
afe0146021 Renamed settings option to reflect that same option is used for both ranges. 2023-06-23 19:50:39 +03:00
krs
b6ab1e1505 Removed #regions 2023-06-23 19:13:39 +03:00
krs
1cba41a3c3 IsHexInRangeLimit() is now a common function
Plus some minor rearranging of code.
2023-06-23 19:13:39 +03:00
krs
1ba9a2a42a calculateRangeLimitAndHighlightImages() is now separate function 2023-06-23 19:13:39 +03:00
krs
e668ea3a03 A common function is used for getting hexes in a certain range
getRangeHexes()
2023-06-23 19:13:39 +03:00
krs
192f82152d A common function is used to get range limit hexes
getRangeLimitHexes()
2023-06-23 19:13:39 +03:00
krs
33bbbefdeb First working prototype that mimics rangedFullDamageLimit code
Next step is to create more generic functions that can be shared between the 2.
2023-06-23 19:13:39 +03:00
Ivan Savenko
4e7412faa6 Split mouseDragged event from mouseMoved 2023-06-22 22:11:48 +03:00
Ivan Savenko
967dc95867 Rename panning->gesturing for consistency 2023-06-20 19:58:05 +03:00
Ivan Savenko
0be9aff99f Fix battle queue stack highlighting 2023-06-20 19:58:05 +03:00
Ivan Savenko
06437cbde6 Renamed gesture-related methods, remove unused code 2023-06-20 19:58:05 +03:00
Ivan Savenko
563d7dd41f Renamed RCLICK -> SHOW_POPUP 2023-06-20 19:58:05 +03:00
Ivan Savenko
8ad577255f Replaced isMouseButtonPressed with isMouseLeftButtonPressed 2023-06-20 19:58:05 +03:00
Ivan Savenko
d4aa778547 Replaced clickRight event with showPopupWindow/closePopupWindow 2023-06-20 19:58:05 +03:00
Ivan Savenko
8614419954
Merge pull request #2208 from IvanSavenko/obstacles_foreground
Implemented foreground/background obstacles
2023-06-14 15:49:08 +03:00
krs
5158a5f7db Fix After Merge 2023-06-11 19:31:50 +03:00
krs
0a8daf4d02 Now less source images are used. Flipped versions will be calculated. 2023-06-11 18:46:38 +03:00
krs
21306b9097 Fixed a glitch when only top and bottom were needed. 2023-06-11 18:45:14 +03:00
krs
a8a82e89ea Some renamings for consistency 2023-06-11 18:45:14 +03:00
krs
4a3426bb70 Hex Edge Highlight Images moved to VCMI mod 2023-06-11 18:44:42 +03:00
krs
56b8fb39f3 Removed neighbouringTilesWithDirection and using
allNeighbouringTiles
2023-06-11 18:40:47 +03:00
krs
b8ad5b41f3 UnitState has getRangedFullDamageDistance() 2023-06-11 18:40:47 +03:00
krs
c562ce9c06 Using hex.isAvailable() instead of battleFieldWithoutSideColumns 2023-06-11 18:40:47 +03:00
krs
c0591573bf Working Version 2023-06-11 18:40:47 +03:00
Ivan Savenko
428fb832c6 Implemented foreground/background obstacles:
- obstacles now have "foreground" field
- if "foreground" field set, obstacle will appear on top of other
objects, such as units
- if "foreground" is not set, obstacle will appear below units
- updated schema and cleared up obstacles config
2023-06-06 15:53:14 +03:00
Ivan Savenko
4e834db017 Fix relative cursor mode 2023-06-05 19:28:29 +03:00
Ivan Savenko
238a02eb5e It is now possible to cancel attack-via-swiping by moving finger away 2023-06-05 19:20:20 +03:00
Ivan Savenko
ec55ec76b6 Show cursor (including attack direction) when swiping in battle 2023-06-05 19:20:18 +03:00
Ivan Savenko
84934d931a Minor improvements to swipe in battle 2023-06-05 19:20:08 +03:00
Ivan Savenko
b20109c830 Test version of swipe gesture for in-combat attacks 2023-06-05 19:20:08 +03:00
Ivan Savenko
1cec6918a0 Fix spellcast cancelation in battle 2023-06-05 19:20:06 +03:00
Ivan Savenko
360bf48031 Implemented panning/swiping gesture for sliders 2023-06-05 19:09:56 +03:00
Ivan Savenko
8ea0ecaec1 show/showAll methods now use Canvas instead of SDL_Surface
- added compatibility method to Canvas to allow SDL_Surface access
- added drawBorder method to Canvas to replace CSDL_Ext method
- added drawColor method to Canvas to replace CSDL_Ext method
- minor changes to Tavern and Trade windows to adapt to new API
2023-06-02 16:42:18 +03:00
Ivan Savenko
867c5355da Fix tower shooters animation updates 2023-05-20 13:11:52 +03:00
Ivan Savenko
0e70f2998f SDL event handling is now done exclusively in input handler 2023-05-20 01:51:49 +03:00
Ivan Savenko
1f513fd280 Extracted event management from GuiHandler and CIntObject 2023-05-20 01:51:49 +03:00
Ivan Savenko
ad3e54e6c0 Reduced usage of topWindow() method 2023-05-16 21:57:45 +03:00
Ivan Savenko
e2ef136003 Renamed "Int" -> "Window" in WindowHandler API 2023-05-16 19:10:22 +03:00
Ivan Savenko
7838190ef4 Moved window stack management from GuiHandler to new class 2023-05-16 19:10:21 +03:00
Ivan Savenko
8a31aeb94b Battle animations use tick() for updates 2023-05-14 22:23:00 +03:00
Ivan Savenko
03df274450 Framerate manager is now in a separate file and private member of GH 2023-05-14 22:22:37 +03:00
Ivan Savenko
64cc246358 Fix positioning of console log overlay 2023-05-13 18:00:14 +03:00
Ivan Savenko
243773b6ef Renamed some adventure map files & classes 2023-05-09 13:10:33 +03:00
Ivan Savenko
ecff5f3d12 Do not trigger multiple hotkeys when battle window wait for any key 2023-05-09 13:10:33 +03:00
Ivan Savenko
342ea138f9 Fix remaining graphical artifacts on switching from world view 2023-05-09 13:10:33 +03:00
Ivan Savenko
d4098059b8 Proper support for player-colored buttons in UI 2023-05-09 13:10:33 +03:00
Konstantin
05eccbc2bb vcmi: split bonus to enumerator and HeroBonus.h 2023-05-03 18:01:06 +03:00
Konstantin
fbc05c70ac vcmi: camelCase methods of new classes
Also use EGameSettings for clamping morale and luck
2023-05-02 12:09:13 +03:00
Ivan Savenko
6c637dd8e6 Integrated hotkeys with InterfaceObjectConfigurable 2023-05-01 17:59:21 +03:00
Ivan Savenko
dea10e6091 Use more descriptive names for hotkeys 2023-05-01 17:59:20 +03:00
Ivan Savenko
832e56e005 Implementation of (very basic) shortcuts system
- Added EShortcut enumeration that contains all in-game shortcuts
- CIntObject::keyPressed now receive values from hotkey enumeration
- On keypress, SDL key code will be translated to shortcut ID
- Removed access to SDL key codes from most of engine
2023-05-01 17:58:17 +03:00
Konstantin
86f5d6de69 vcmi: modernize headers 2023-04-30 13:35:54 +03:00
Konstantin P
b472c89276 vcmi: make some CStack properties private
There is a getters for this properties already available
2023-04-27 20:58:49 +03:00
Ivan Savenko
fb739e7186 Merge beta -> develop 2023-04-26 22:48:08 +03:00
krs
e348193f7e Tactics movement is limited to movement range 2023-04-26 21:56:20 +04:00
Ivan Savenko
4a169972f0 Further refactoring to cleanup code of advmap and locplint 2023-04-20 22:04:24 +03:00
Ivan Savenko
4ec32e4dcd Renamed CAdvMapInt to its proper full name 2023-04-20 22:04:24 +03:00
Ivan Savenko
6df85be4b3 Fixed death animation of Efreeti killed by petrification attack 2023-04-20 18:13:01 +03:00
Konstantin
7a5775a9f9 vcmi: use std::optional 2023-04-17 00:43:13 +03:00
Ivan Savenko
e3ed728193
Merge pull request #1932 from rilian-la-te/proper-teleport
VCMI: teleport redesign
2023-04-16 22:52:01 +03:00
Ivan Savenko
1704fab3a2 Fix assertion failure on fighting against AI with tactics 2023-04-15 17:20:38 +03:00
Ivan Savenko
3738171b21 Refactoring of H3M loader to make HotA format support easier
- extracted low-level reader from MapFormatH3M class
- added separate structure to define version-specific values
- cleared up some H3M format edge cases
- replaced witch hut skill vector with set
- converted several fields to enum type
2023-04-15 17:20:38 +03:00
Ivan Savenko
b354f99cc3
Merge pull request #1936 from IvanSavenko/cpp_17_upgrade
Upgrade c++ standard to c++17
2023-04-14 19:21:17 +03:00
Ivan Savenko
128764b1c9
Merge pull request #1968 from rilian-la-te/fix-caster-tactics
Fix caster tactics
2023-04-14 18:59:03 +03:00
Ivan Savenko
44b83b2e11 Merge master -> develop 2023-04-14 16:51:35 +03:00
Ivan Savenko
1978e6f8e8 Do not show unit information on dead creatures 2023-04-13 21:16:55 +03:00
Konstantin P
384ee99834 vcmi: configurable teleport v2
1. Redesign wall and teleport penalty using shortest path
This will avoid OH3 exploits with teleport inside walls

2. Teleport is now configurable
2023-04-13 11:24:19 +03:00
Konstantin
bc1aad3b26 vcmi: remove deprecated CStack::getCreature()
Function battle::Unit::unitType() does the same.
2023-04-13 11:24:19 +03:00
Konstantin
8397bd91fb BattleActionsController: do not pass unused caster
This is unused, so, remove this parameter to prepare for teleport action
2023-04-13 11:24:19 +03:00
Konstantin
15031d2e16 vcmi: do not block interface on setup spells 2023-04-13 01:06:36 +03:00
Ivan Savenko
506c3d29bc Replaced vstd clamp with std version 2023-04-12 01:03:14 +03:00
Nordsoft91
3951bbb395
Merge pull request #1108 from Nordsoft91/battle-dialog
[HDMod features] Quick combat
2023-04-11 21:18:04 +04:00
Ivan Savenko
dfa2e2a349 Merge beta into develop 2023-04-11 19:37:35 +03:00
nordsoft
bfc75ccd39 Merge remote-tracking branch 'upstream/develop' into battle-dialog 2023-04-11 02:22:42 +04:00
Ivan Savenko
02c9a3f3d8 Correctly reset UI on aborting Clone/Sacrifice 2023-04-10 14:33:24 +03:00
krs
7eda4b6c1e replaced SDLK_LSHIFT check with GH.isKeyboardShiftDown() 2023-04-08 20:42:37 +03:00
krs
3194999809 Add SHIFT + hover shortcut to show movement highlight while pressed. 2023-04-08 20:42:37 +03:00
krs
aba5840a6f Removed Max Movement Highlight stubs 2023-04-08 20:40:30 +03:00
krs
1644cab938 Added combat option Highlight Movement on Hover 2023-04-08 20:40:30 +03:00
krs
9012a25276 Stub For Max Movement Range highlight
When a creature is hovered., besides movement, for max possible movement, a hex in center of map is now highlighted.
2023-04-08 20:39:59 +03:00
krs
51ad49532b Fix for wrong merge :( 2023-04-08 20:39:59 +03:00
krs
dab07bdef9 Now unit range is shown in Tactics phase as well
A new parameter: isActiveStack was needed in battleGetAvailableHexes, so that we show the propper Tactics range.
2023-04-08 20:39:59 +03:00
krs
e1c388465a HD mod highlighting of movement for hovered stack.
Does not work as intended in tactics mode.
2023-04-08 20:39:59 +03:00
Ivan Savenko
e35a1ba471
Merge pull request #1876 from rilian-la-te/refactoring-v1
VCMI Refactoring
2023-04-08 11:14:05 +03:00
nordsoft
52b53ab307 Feature and setting implemented 2023-04-08 01:49:59 +04:00
nordsoft
b1d06b6141 Complete quick combat feature 2023-04-06 22:49:38 +04:00
nordsoft
ce3028bd73 Intermediate commit 2023-04-06 19:34:07 +04:00
Konstantin
11b237a23c vcmi: massive refactoring v1 2023-04-05 22:33:12 +03:00
Ivan Savenko
a3c5f75600 Fix visibility of alternative actions button in tactics stage 2023-04-05 18:36:10 +03:00
Ivan Savenko
cf966015bb Correctly update battle queue state after changing its state 2023-04-05 18:35:45 +03:00
Konstantin
e0715a76c8 vcmi: reduce CStack usage a little bit 2023-04-04 23:02:54 +03:00
Ivan Savenko
307065a633 Merge beta into develop 2023-04-04 16:06:20 +03:00
Ivan Savenko
e9aed2761c Fix target selection for teleport 2023-03-31 23:18:45 +03:00
Konstantin
d83e58f948 vcmi: use new animation functions in client 2023-03-31 01:01:25 +03:00
Konstantin
eff41f66ed vcmi: now obstacles can have disappearing anim
It is a reverse version of appearingAnimation.
2023-03-31 01:01:25 +03:00
Konstantin
7543fdf787 vcmi: add reverse effect animation type
To be used later with obstacle removal
2023-03-31 01:01:25 +03:00
Konstantin
c4d5a7a2d6 vcmi:towns now can choose if moat render is needed
Using invalid points. Also removed unused variable.
2023-03-31 01:01:25 +03:00
Ivan Savenko
484f0a175a Blocked movement of war machines in tactics phase 2023-03-30 12:20:13 +03:00
Ivan Savenko
974be97e6d
Merge pull request #1792 from IvanSavenko/happy_dydzio
Fixes for beta - graphical artifacts
2023-03-30 00:11:19 +03:00
Ivan Savenko
a42dc923e4 Remove hardcoded constant 2023-03-29 14:33:44 +03:00
Ivan Savenko
1fcaeba8e0 Fix stack amount boxes flickering between actions 2023-03-29 13:21:43 +03:00
Ivan Savenko
3af829e6af Fix stack label position updates 2023-03-29 13:03:40 +03:00
Ivan Savenko
06f9759aee Fix crash on using Teleport/Sacrifice spells 2023-03-28 23:50:42 +03:00
Ivan Savenko
0ce06e0f30 Improved rendering of stack amount boxes 2023-03-28 23:50:22 +03:00
Ivan Savenko
238de8a5d7 Properly disable combat panel during spell targeting 2023-03-28 18:14:09 +03:00
Ivan Savenko
fd3f80e860 Fix game hang on invalid shooter animation config 2023-03-28 17:04:18 +03:00
Konstantin
1b893fa525 client: do not show obstacles placed by another player 2023-03-26 21:23:54 +03:00
Ivan Savenko
da3a05bc8b Fix special colors in battle 2023-03-26 00:46:21 +02:00
Ivan Savenko
4c311da21b Clamp potential kills tooltip to target unit size 2023-03-26 00:07:21 +02:00
Ivan Savenko
4eed0b2c9e Added workaround for Dungeon towers 2023-03-25 23:54:51 +02:00
Ivan Savenko
49fa628e9b Turret creature cutoff position should match H3 2023-03-25 23:54:51 +02:00
Ivan Savenko
dcff463d36 Fixed handling of special palette colors in palette transformations
Fixes black color turning semi-transparent in some creatures from mods
2023-03-25 23:54:51 +02:00
Ivan Savenko
2167cb2a68 Fix battle startup with "no intro sound" mod 2023-03-25 23:54:51 +02:00
Ivan Savenko
5288e3761e
Merge pull request #1764 from IvanSavenko/selectable_spellcaster
Implemented support for multi-spell casters
2023-03-25 20:08:47 +02:00
Ivan Savenko
6f631a0aa7
Merge pull request #1759 from IvanSavenko/kills_in_tooltip
Show potential kill amount in attack tooltip
2023-03-25 20:03:27 +02:00
Ivan Savenko
9a19feaf4a Fix spellcasters with massive spells 2023-03-25 01:23:49 +02:00
Ivan Savenko
dc099b2a35 Implemented support for multi-spell casters 2023-03-25 00:48:14 +02:00