Ivan Savenko
b1821d4442
Removed some SDL access from non-SDL code
2023-02-03 11:39:40 +02:00
Ivan Savenko
e1bd0d2a04
API for custom events no longer requires SDL access
2023-02-03 11:39:40 +02:00
Ivan Savenko
d4fba3787c
Removed usage of SDL_KeyboardEvent from UI code
2023-02-03 11:39:40 +02:00
Ivan Savenko
860fe43131
Merged two mouse button enums
2023-02-03 11:39:40 +02:00
Ivan Savenko
6669ffd4b3
Moved input-related code from SDL_Extensions to GuiHandler
2023-02-03 11:39:40 +02:00
Ivan Savenko
214fc19e74
CIntObject now receives mouse position as point instead of SDL event
2023-02-03 11:39:39 +02:00
Ivan Savenko
108a42e4ba
Reorganized includes for new layout. New class - IImageLoader
2023-02-01 20:42:06 +02:00
Ivan Savenko
4d8d886317
Move all created files into better locations
2023-02-01 16:28:48 +02:00
Ivan Savenko
dfbcfb7b3c
Remove duplicated code from new files
2023-02-01 15:56:44 +02:00
Ivan Savenko
3f1b1095e2
Finish split of cursors files
2023-02-01 15:50:36 +02:00
Ivan Savenko
769d4b3bfb
temporary rename
2023-02-01 15:50:12 +02:00
Ivan Savenko
bdc2d0c920
Split CursorSoftware into a new file
2023-02-01 15:48:59 +02:00
Ivan Savenko
418fd1491b
Split CursorHardware into a new file
2023-02-01 15:48:06 +02:00
Ivan Savenko
67e7731752
Split ICursor into a new file
2023-02-01 15:45:22 +02:00
Ivan Savenko
8a9492d129
Moved client files to more suitable locations
2023-02-01 13:09:19 +02:00
Ivan Savenko
0ba74fea73
Merge pull request #1515 from IvanSavenko/time_based_animations
...
Time based animations
2023-02-01 12:25:54 +02:00
Ivan Savenko
c3a2dee45a
Code cleanup
2023-01-31 15:00:46 +02:00
Ivan Savenko
5cc23cc286
Renamed SDL_Pixels -> SDL_PixelAccess due to similar SDL header
2023-01-30 20:06:08 +02:00
Ivan Savenko
9c3030603d
Removed most SDL includes from headers, removed SDL int's
2023-01-30 19:55:32 +02:00
Ivan Savenko
e14290fde0
Removed loading of images from file into SDL_Surface
2023-01-30 18:25:47 +02:00
Ivan Savenko
87218c63c4
CPicture now uses IImage internally
2023-01-30 17:18:59 +02:00
Ivan Savenko
42df5626d9
Added Color class to replace SDL_Color
2023-01-30 00:12:43 +02:00
Konstantin
080d4b13dd
vcmi: suppress warning on IOS
...
Let CI passes on develop.
2023-01-29 21:30:37 +03:00
Ivan Savenko
57ee9a9bf3
Merge vcmi/beta into vcmi/develop
2023-01-29 18:21:55 +02:00
Ivan Savenko
bdde9f831a
Fixed timings of building construction to match H3
2023-01-28 13:19:35 +02:00
Ivan Savenko
f1647cc3bb
Animated spellcasting cursor now has same speed as in H3
2023-01-28 13:19:35 +02:00
Ivan Savenko
50a0fc4fb2
Removed pointer to current SDL_Event from GuiHandler
2023-01-27 23:17:40 +02:00
Ivan Savenko
4d1c338503
Merge pull request #1498 from rilian-la-te/conan-v2
...
Conan as MXE replacement
2023-01-27 23:14:37 +02:00
Andrey Filipenkov
b2d2c7a2dc
Merge pull request #1501 from kambala-decapitator/townportal-doubleclick
...
handle double-click in Town Portal dialog
2023-01-25 17:42:15 +03:00
Konstantin
a7bd7232ce
CGuiHandler: fix false positive dangling pointer
...
Making this an auto variable fixes compilation with Werror.
2023-01-25 17:14:41 +03:00
Andrey Filipenkov
08b04a3527
handle double-click in Town Portal dialog
2023-01-23 15:43:55 +03:00
Andrey Filipenkov
7b2540517b
fix Main Thread Checker warnings on Apple platforms
2023-01-21 16:07:35 +03:00
Ivan Savenko
8ed115a628
Fix ios compile
2023-01-20 16:11:43 +02:00
Ivan Savenko
fc0f5a9fb3
Reduced SDL includes
2023-01-20 16:11:43 +02:00
Ivan Savenko
aae83af9f3
Fix Windows compile
2023-01-20 16:11:43 +02:00
Ivan Savenko
9be38780cd
Removed remaining parts of Geomeotries.h/cpp
2023-01-20 16:11:43 +02:00
Ivan Savenko
6e2d09d605
Cleanup
2023-01-20 16:11:43 +02:00
Ivan Savenko
ee7a573cb8
Refactoring of SDL API usage:
...
- Rect no longer inherits from SDL_Rect
- renamed vcmi functions that used SDL naming format
- moved all functions in SDL_Extensions file into CSDL_Ext namespace
- SDL_Rect is now used only by SDL_Extensions, all other code uses Rect
2023-01-20 16:11:43 +02:00
Ivan Savenko
9a30484183
Point and Rect now reside in library
2023-01-20 16:11:43 +02:00
Ivan Savenko
fd05036f3b
Hardware cursor can now be hidden
2023-01-20 15:15:19 +02:00
Ivan Savenko
5484efde90
Mobile platforms will use software cursor as default
2023-01-20 15:15:19 +02:00
Andrii Danylchenko
9a765e5f67
Remove not supported method, allow relative mode for iOS
2023-01-19 08:26:35 +02:00
Andrii Danylchenko
6c843bce0b
SDL relative pointer for android
2023-01-18 10:38:55 +02:00
Andrii Danylchenko
226668c428
Merge pull request #1453 from vcmi/android-fix-input-position-for-keyboard
...
Fix android UI shift when keyboard appears
2023-01-18 09:23:46 +02:00
Andrii Danylchenko
8f35bf8866
Fix android UI shift when keyboard appears
2023-01-17 16:44:46 +02:00
Andrii Danylchenko
c24b89fe06
2 finger rclick block adwmap scrolling and disable for iOS
2023-01-17 16:22:44 +02:00
Andrii Danylchenko
2b1511df99
SDL fix 2 finger touch when you remove fingers instantly
2023-01-16 13:39:45 +02:00
Andrii Danylchenko
7ccfcf51e9
Handle 2 fingers gesture as rclick via SDL
2023-01-16 09:46:52 +02:00
Ivan Savenko
fc4121f5ec
Rechecked & updated offsets of adventure map cursors
2023-01-15 21:18:34 +02:00
Ivan Savenko
385dda1c5b
Clean surface before using it
2023-01-15 21:18:34 +02:00
Ivan Savenko
c6d39da53e
MXE compile fix
2023-01-15 21:18:34 +02:00
Ivan Savenko
6985f2e050
Cursor type can now be set in settings.json
2023-01-15 21:18:34 +02:00
Ivan Savenko
26a1c5801b
Implemented hardware cursor support
2023-01-15 21:18:34 +02:00
Ivan Savenko
9971bdca1b
Existing software cursor logic is now in a separate class
2023-01-15 21:18:34 +02:00
Ivan Savenko
0e8ee929df
Renamed CCursorHandler -> CursorHandler
2023-01-15 21:18:34 +02:00
Ivan Savenko
d44e809369
Refactoring of CursorHandler, in preparation for HW cursor routines
2023-01-15 21:18:34 +02:00
Dydzio
4fb5548475
Remove unused stuff from code
2023-01-15 17:31:32 +02:00
Dydzio
3596d167a7
Adjust code to develop + change place in code where alpha is applied
2023-01-15 17:31:32 +02:00
Dydzio
9e7e649d37
Gradual fade-in of built building
2023-01-15 17:31:32 +02:00
Ivan Savenko
1fece0ce18
Merge pull request #1229 from IvanSavenko/battle_improvements
...
Battle: Fixing bugs & Implementation of missing features
2023-01-09 22:07:13 +02:00
Ivan Savenko
bde988ca43
Merge pull request #1329 from IvanSavenko/translate_game
...
Translations support - base functionality for main game texts
2023-01-09 20:33:56 +02:00
Andrey Filipenkov
db98575d10
fix unaligned memory access (UB) on Clang/GCC/MSVC
...
sample UBSAN report:
client/gui/CAnimation.cpp:329:24: runtime error: load of misaligned address 0x62d0004b094f for type 'const ui32' (aka 'const unsigned int'), which requires 4 byte alignment
2023-01-08 01:33:26 +02:00
Ivan Savenko
a25214ae71
Fixes graphical artifacts on toggling stack queue visibility
...
Battlefield rendering now uses local coordinates
2023-01-05 14:16:01 +02:00
Ivan Savenko
21196e822f
Fixed blue tint for clones
2023-01-04 19:36:18 +02:00
Ivan Savenko
d8c4209ded
Movement animation is now more smooth at high animation speeds
2023-01-04 17:21:40 +02:00
Ivan Savenko
ffb37f067a
Support for player-colored images in configurable UI
2023-01-04 16:40:15 +02:00
Ivan Savenko
d3ecd43aba
Merge remote-tracking branch 'vcmi/develop' into battle_improvements
2023-01-04 16:20:53 +02:00
nordsoft
e8845244f7
Fix tactic button
2023-01-03 13:02:54 +04:00
nordsoft
660d25a335
Make control panel configurable
2023-01-03 13:02:54 +04:00
Ivan Savenko
9a620a9091
Refactoring of GeneralTextHandler to reduce boilerplate code in callers
2023-01-01 15:13:02 +02:00
Ivan Savenko
01d0cd4f7a
Changed configurable UI to match text refactoring:
...
- help.txt strings are now loaded as (hover, help) pairs
- renamed string pairs from translate.json to use (hover, help) form
- interface builder will always load label texts via unified ID
- interface builder way of loading buttons text has been changed:
- - field has been renamed "zelp" -> "help" for consistency
- - "help" field now only accepts string or object json type
2023-01-01 14:56:45 +02:00
Ivan Savenko
bdb8e0ee5c
Introduced string identifiers for H3 texts, still WIP
2023-01-01 14:56:44 +02:00
Ivan Savenko
f8dec3861b
Fixed animation skipping with no sound mod and enemy having first turn
2022-12-30 11:56:26 +02:00
Ivan Savenko
5d80457eda
Merge with vcmi/develop branch
2022-12-30 00:52:23 +02:00
Ivan Savenko
7a35bcc812
Merge pull request #1221 from IvanSavenko/warnings_fix
...
Fix remaining compiler warnings
2022-12-29 21:51:55 +02:00
Ivan Savenko
bb65246aa3
Merge remote-tracking branch 'vcmi/develop' into battle_improvements
2022-12-26 01:15:44 +02:00
Ivan Savenko
d1244e3714
Fix ios compile
2022-12-25 17:44:13 +02:00
Nordsoft91
785787e454
Merge branch 'develop' into interface-builder
2022-12-24 21:56:29 +04:00
Ivan Savenko
325c29da0d
Merge remote-tracking branch 'vcmi/develop' into battle_improvements
2022-12-23 14:51:34 +02:00
Ivan Savenko
eb20a4b208
Merge remote-tracking branch 'vcmi/develop' into warnings_fix
2022-12-23 14:40:45 +02:00
Ivan Savenko
f073c676f9
Merge 1.1 release into develop
2022-12-23 14:17:18 +02:00
nordsoft
cb76cc54ac
Move logging to debug level
2022-12-22 02:08:26 +04:00
nordsoft
e245dbaf9d
Use kind-of-factory approach for widget builders
2022-12-22 02:05:29 +04:00
Ivan Savenko
4fa01c4c7e
Fix potential overflow/underflow
2022-12-21 23:39:54 +02:00
nordsoft
8f7025328f
Read default template from config, named custom types
2022-12-22 01:37:33 +04:00
Ivan Savenko
41b87088d5
Color muxer effects can now be (partially) configured by user.
...
TODO: move color muxer effects from spells into spell config
2022-12-21 23:29:56 +02:00
nordsoft
7e7071fc95
Merge remote-tracking branch 'upstream/develop' into interface-builder
2022-12-22 01:24:29 +04:00
nordsoft
c7f430f051
Added debug lines
2022-12-22 01:13:32 +04:00
nordsoft
521328addd
Adding macros for targeted object binding
2022-12-22 00:54:06 +04:00
Ivan Savenko
b5925995b1
Fix transparency checks that were broken for palette images with alpha
2022-12-19 22:57:58 +02:00
Ivan Savenko
16c4851d3b
Animated cursor for spell selection, removed hardcoded cursor ID's
2022-12-18 22:32:07 +02:00
Ivan Savenko
ba200fb079
Added enum's for rest of cursor types
2022-12-18 17:13:34 +02:00
Ivan Savenko
57dba9433c
Correctly update drag-and-drop cursor if our window gets deactivated
2022-12-18 14:34:38 +02:00
nordsoft
9b76a8000f
Making team alignments widget customizable
2022-12-17 20:38:16 +04:00
nordsoft
b1f2c7aed4
Team alignments implemented
2022-12-17 08:19:16 +04: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
291bb9b204
Expanded cursors enum to include all possible values
2022-12-16 11:22:58 +02:00
nordsoft
268b87052b
Fix for hint
2022-12-16 02:49:52 +04:00
nordsoft
1d59dfecef
Support translations
2022-12-16 02:48:07 +04:00
nordsoft
d3c3feb037
Configurable template selection
2022-12-16 02:15:53 +04: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
nordsoft
1d4209d97e
Continue refactoring
2022-12-16 00:57:10 +04:00
nordsoft
2371e3e9a2
Interface builder refactored
2022-12-16 00:46:36 +04:00
nordsoft
2fe951f819
Merge remote-tracking branch 'upstream/develop' into interface-builder
...
# Conflicts:
# client/lobby/RandomMapTab.cpp
2022-12-15 04:47:11 +04:00
Ivan Savenko
7e35a96055
Changed ColorPutter in preparation for Bloodlust & Petrify effects
2022-12-14 15:17:38 +02:00
Ivan Savenko
fb3a08e0a6
Added fading animation for fade-in effect for summons
2022-12-14 12:04:37 +02:00
Ivan Savenko
e7206cb759
Cleaned up BattleHero class
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
nordsoft
f90cb1be90
Template list prototype looks fine
2022-12-13 03:47:29 +04: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
nordsoft
690ff773f4
Remove files
2022-12-12 11:53:23 +04:00
nordsoft
cd58e8a860
Rename InterfaceBuilder
2022-12-12 11:48:39 +04:00
nordsoft
34bf741936
Fix compilation error
2022-12-12 11:43:54 +04:00
nordsoft
5e3504f578
Add improvements
2022-12-12 11:38:27 +04:00
nordsoft
3be9969154
Prevent crashes for custom config
2022-12-12 03:58:39 +04:00
nordsoft
0104c77d61
Interface builder for random map tab
2022-12-12 03:27:59 +04: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
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
facf77b3ae
vstd::unique -> std::unique
2022-12-07 23:36:20 +02:00
Ivan Savenko
6f6d350228
Formatting cleanup
2022-11-28 16:43:38 +02:00
Ivan Savenko
9f21569a79
Next batch of siege fixes
2022-11-27 22:50:18 +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
7a6ad671ab
Separated battle control panel into new class, refactoring of
...
CGStatusBar to allow shared API with battle console
2022-11-18 17:54:10 +02:00
Ivan Savenko
48be492517
Fix parameter order in case of right-to-left lines, formatting
2022-11-16 12:28:07 +02:00
Ivan Savenko
6678a747bb
Implemented ray-like projectiles for shooters
...
- Added missing support for ray-like projectiles
- Archmages, Evil Eyes and Beholders now use ray for shooting
- New method to draw 1 pixel-wide line with color gradient at arbitrary
angle
- fixed incorrect attackClimaxFrame field for Archmages
2022-11-15 21:42:16 +02:00
Andrey Filipenkov
3ab21d8491
show loading indicator when starting local server
...
single player or hosting a multiplayer game
2022-09-24 15:55:25 +03:00
Andrey Filipenkov
e1c9903a45
extract iOS helpers into a shared lib
2022-09-24 15:55:24 +03:00
Andrey Filipenkov
ff635edc0b
wrap all library code into namespace if VCMI_LIB_NAMESPACE is defined
...
preparation for having client and server in a single process
2022-09-24 15:55:21 +03:00
Andrey Filipenkov
217c83a7e7
convert text input rect to screen coordinates
...
workarounds SDL bug related to moving window ensuring that the input is always above the native keyboard
kambala-decapitator/vcmi#31
2022-09-24 15:55:19 +03:00
Andrii Danylchenko
2b0f02c832
Merge pull request #944 from AgostonSzepessy/dev/agos/937
...
Add right click to Quick Recruit Window
2022-09-23 14:01:52 +03:00
Andrii Danylchenko
43a1a8b76d
Merge pull request #928 from kambala-decapitator/quick-recruit-no-creatures
...
show message instead of the Quick Recruit dialog when there're no creatures in town
2022-09-22 18:21:45 +03:00
Andrey Filipenkov
a1cf120ea6
add missing virtual destructors
2022-09-22 11:54:09 +03:00
Agoston Szepessy
411038195c
Add clickeable area on top of creature picture
...
A class that wraps an instance of `CIntObject` creates an area
that users can right click to view information about the creature
they're buying.
The constants were based off the existing ones in the code and were
refined by guessing and checking where clicking falls inside/outside
the border of the rectangle.
2022-09-18 22:53:11 -07:00
Andrey Filipenkov
a320af837d
fix includes in client subdirectories
2022-09-18 17:43:40 +03:00
Andrey Filipenkov
d7650ce9c0
use Conan to make macOS CI builds for both Intel and ARM ( #782 )
...
* [CI] append platform to output artifact name if it's given
2022-08-30 17:29:00 +03:00
Andrey Filipenkov
7150ee565a
[macOS] text input handling must be done on main thread
...
Xcode's Main Thread Checker warns about that
2022-08-03 12:09:49 +03:00
Andrii Danylchenko
2521e7bac9
Fix flickering in fullscreen
2022-06-13 16:11:53 +03:00
Andrii Danylchenko
1128abc593
Fix hero movement animation
2022-06-07 15:00:39 +03:00
nordsoft
d92356f085
Fixed game crash: divide by zero due to threads racing
2022-05-28 14:34:36 +03:00
Konstantin
c6b198ce14
Warning fix (I moved C++17 and CI to another branch) ( #739 )
...
* clang warning fixes
* use CMake 3.10 due to MXE CI does not have 3.13 yet
Co-authored-by: Konstantin <rilian@niisi.ras.ru>
2022-05-19 15:14:50 +03:00
Andrii Danylchenko
6c36a1a2f6
Tray notifications for MXE
2022-05-14 13:23:09 +03:00
Andrii Danylchenko
2fc7cf02b0
tray notification for windows
2022-05-14 13:23:09 +03:00
Andrii Danylchenko
83f690e059
change SDL color key alpha to transparent
2021-08-21 09:32:52 +03:00