1
0
mirror of https://github.com/vcmi/vcmi.git synced 2024-12-22 22:13:35 +02:00
Commit Graph

632 Commits

Author SHA1 Message Date
Ivan Savenko
9449899098 Fix regressions 2023-07-09 17:08:37 +03:00
Ivan Savenko
ca889a5c2a Replaced clickLeft with clickPressed clickReleased methods 2023-07-08 14:33:04 +03:00
Ivan Savenko
1dff721747 Fix infobox resetting to current hero during enemy turn 2023-07-04 20:28:02 +03:00
Ivan Savenko
900b1c1763 Simplified text input handling, fixes hotkeys on windows with text input 2023-07-04 18:42:52 +03:00
Ivan Savenko
81b9aec527 Fix map edge scrolling after swiping usage 2023-07-03 23:50:09 +03:00
Ivan Savenko
8b61c0d59b Replaced CIntObject::type bitfield with bool's. Added input blocking. 2023-07-03 19:24:12 +03:00
Ivan Savenko
9cd246ab8b
Merge pull request #2259 from IvanSavenko/campaign_refactoring
Fix accumulated issues with campaigns
2023-06-30 12:59:48 +03:00
Ivan Savenko
0f8d53e978 Replaced SDL user events list with dispatching of arbitrary functors 2023-06-26 21:51:10 +03:00
Mike
75820c3bdf Fixed overlapped text display in adventure map settings 2023-06-25 16:27:00 -07: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
Ivan Savenko
56680e102d
Merge pull request #2245 from IvanSavenko/platform_settings
Allow defining default values of settings per platform
2023-06-23 13:32:30 +03:00
Ivan Savenko
69dc95c3c8
Merge pull request #2235 from IvanSavenko/hota_h3m_support
Hota h3m support
2023-06-23 13:32:10 +03:00
Ivan Savenko
a505cc464e Fixed slider's behavior, especially for mobile systems 2023-06-22 23:49:38 +03:00
Ivan Savenko
dfeeeb1f5f Removed no longer used 2023-06-22 22:12:05 +03:00
Ivan Savenko
4e7412faa6 Split mouseDragged event from mouseMoved 2023-06-22 22:11:48 +03:00
Ivan Savenko
8f602b2ef6 Allow defining default values of settings per platform 2023-06-21 10:55:30 +03:00
Ivan Savenko
967dc95867 Rename panning->gesturing for consistency 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
85a11c090e Enter popup await mode only if there is an active popup 2023-06-20 19:58:05 +03:00
Ivan Savenko
e9788e2904 Cleaned up EventDispatcher code 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
80f67337d8 Do not send mouseMoved to elements that have just unsubscribed 2023-06-20 19:37:27 +03:00
Ivan Savenko
6283329aeb Added option to disable edge scrolling 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
0f2a339ab5 Implemented pinch gesture to scale adventure map 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
0e36a3ab5a Use Scrollable class for all appropriate locations 2023-06-05 19:18:33 +03:00
Ivan Savenko
6fe00ad55c Moved slider class to a separate file 2023-06-05 19:16:01 +03:00
Ivan Savenko
57df1c3e0d Implemented gesture for town/hero lists and town/hero selection 2023-06-05 19:12:24 +03:00
Ivan Savenko
360bf48031 Implemented panning/swiping gesture for sliders 2023-06-05 19:09:56 +03:00
Ivan Savenko
dc8e9cd048 wheelScrolled event now accepts distance instead of bool 2023-06-05 19:00:57 +03:00
Ivan Savenko
48859e186e Added panning gesture, activated by mouse wheel press 2023-06-05 19:00:56 +03:00
Ivan Savenko
c9d42d59c3 Formatting fix 2023-06-05 19:00:56 +03:00
Ivan Savenko
34123c7f07 Minor refactoring of mouse input handling 2023-06-05 19:00: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
2c3e8c3390
Merge pull request #2168 from IvanSavenko/gui_handler_event_handling_refactoring
Event handling refactoring
2023-05-23 15:08:10 +03:00
Ivan Savenko
10fc6cecef
Merge pull request #2157 from IvanSavenko/interface_layouts
Update in-game settings window to recent changes
2023-05-20 19:25:34 +03:00
Ivan Savenko
956ff22e64
Merge pull request #2163 from IvanSavenko/adventure_map_zoom
Adventure map zoom
2023-05-20 13:35:53 +03:00
Ivan Savenko
6981848288 Better documentation & cleanup 2023-05-20 01:51:49 +03:00
Ivan Savenko
a4000f2fc8 Removed isActive(int) method since its usages were redundant or wrong 2023-05-20 01:51:49 +03:00
Ivan Savenko
c77f8482e3 Replaced event handling break system with key capturing 2023-05-20 01:51:49 +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
5e86b00dda Moved input handling from GuiHandler to set of classes in eventsSDL dir 2023-05-20 01:51:49 +03:00
Ivan Savenko
5bd044521a Added method descriptions 2023-05-20 01:51:49 +03:00
Ivan Savenko
6012e0cb45 Minor code reorganization 2023-05-20 01:51:49 +03:00
Ivan Savenko
d5d0ca96a8 Minor fixes and cleanup 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
008a1ebec4 split massive handleCurrentEvent method into per-event parts 2023-05-20 01:51:49 +03:00
Ivan Savenko
20ec747440 Do not show desktop-only options on mobile systems 2023-05-19 23:19:43 +03:00
Ivan Savenko
d18b240d6d Added separate borderless & exclusive fullscreen options 2023-05-19 22:43:52 +03:00
Ivan Savenko
f2dfd6de42 Updated settings window to use new layouts & library 2023-05-19 22:43:52 +03:00
Ivan Savenko
7cbfd8117e Implemented simple layout to simplify widget json definitions 2023-05-19 22:43:52 +03:00
Ivan Savenko
7cd898a87a Implemented "customTypes" in UI json to reduce duplicated definitions 2023-05-19 22:43:52 +03:00
Ivan Savenko
872b68c59a Implemented zoom reset shortcut (backspace) 2023-05-17 14:54:19 +03:00
Ivan Savenko
3e9da333cf Basic version of zoomable adventure map 2023-05-16 23:42:51 +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
051a4a3c17 Encapsulation of WindowHandler state 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
f84c2c3bb5 Removed getFrameDeltaMilliseconds from gui handler 2023-05-14 22:30:59 +03:00
Ivan Savenko
8a31aeb94b Battle animations use tick() for updates 2023-05-14 22:23:00 +03:00
Ivan Savenko
3ecdff2a21 FramerateManager now uses chrono instead of SDL_Ticks 2023-05-14 22:22:37 +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
062311d24a Fix callbacks of toggle buttons. Fixes game options window 2023-05-12 22:58:21 +03:00
Ivan Savenko
c5a48a01ce Remove no longer used code 2023-05-09 13:10:33 +03:00
Ivan Savenko
e26b18c139 Rename & cleanup of WindowHandler -> ScreenHandler 2023-05-09 13:10:33 +03:00
Ivan Savenko
61181d63bd Fixed missing hotkeys for game saving 2023-05-09 13:10:33 +03:00
Ivan Savenko
8e320d8454 Fixed world view mode 2023-05-09 13:10:33 +03:00
Ivan Savenko
5ae507505a Fixed toggleable buttons (sleep/wake & subterra/surface) 2023-05-09 13:10:33 +03:00
Ivan Savenko
fd3933e589 Support for changing resolution without game restart 2023-05-09 13:10:33 +03:00
Ivan Savenko
97426a3f7c Implemented disabling of buttons based on condition 2023-05-09 13:10:33 +03:00
Ivan Savenko
019d7b6811 Integrated shortcuts into adventure window configuration 2023-05-09 13:10:33 +03:00
Ivan Savenko
0000541291 Fixed map rendering 2023-05-09 13:10:33 +03:00
Ivan Savenko
b4e7093c01 Added IWindowHandler interface for OS screen/window utilities 2023-05-09 13:10:33 +03:00
Ivan Savenko
28f41bb472 Moved remaining render-related code from CMT 2023-05-09 13:10:33 +03:00
Ivan Savenko
c688411bab Extracted window management from CMT to new class 2023-05-09 13:10:33 +03:00
Ivan Savenko
a015bf6507 Initial part of dynamically-sized adventure map:
- removed no longer used CConfigHandler
- remove no longer use resolutions.json
- moved widget management from adventure map to a separate class
- adventure map layout is now loaded from config
2023-05-09 13:10:33 +03:00
Ivan Savenko
0662ad49dd Fix build 2023-05-01 17:59:21 +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
Ivan Savenko
dfa2e2a349 Merge beta into develop 2023-04-11 19:37:35 +03:00
Ivan Savenko
07230f3b47 Attempt to fix stack splitting on macos 2023-04-10 14:34:17 +03:00
krs
3194999809 Add SHIFT + hover shortcut to show movement highlight while pressed. 2023-04-08 20:42:37 +03:00
Ivan Savenko
454168897e Fix handling of invalid hotkeys in configurable UI 2023-04-08 19:53:13 +03:00
Ivan Savenko
507d8bf7fd Allow defining active areas for sliders. Fixes settings window. 2023-04-02 22:24:07 +03:00
Ivan Savenko
6e28b6ed90 Do not crash on invalid callback name 2023-03-31 01:28:33 +03:00
Ivan Savenko
46ccd65080 Removed largely unused signal handling, fixes build with musl c library 2023-03-30 14:56:13 +03:00
Ivan Savenko
a8fe8c0f3b Converted timer event into tick event that is called every frame 2023-03-22 23:10:50 +02:00
Konstantin
5366f9190e vcmi: reduce boost::lexical_cast usage 2023-03-09 16:36:46 +03:00
Ivan Savenko
2e69a4769d Implemented framerate limit option (not available in UI) 2023-03-05 21:06:52 +02:00
Ivan Savenko
105d988624 Remove debug code 2023-03-05 19:55:38 +02:00
Ivan Savenko
5fb5513572 Attempt to trace crash caused by iterator invalidation 2023-03-05 19:55:38 +02:00
Ivan Savenko
c976176453 Added additional buttons for movement speeds 2023-03-05 19:53:26 +02:00
Ivan Savenko
b57a07b10f Restored ambient sounds functionality 2023-03-05 18:02:59 +02:00
Andrey Filipenkov
fd56f86a84 introduce VCMI_MOBILE macro 2023-03-02 12:09:49 +03:00
Dydzio
daa2b63dde Further UI improvements 2023-02-14 22:22:11 +01:00
Ivan Savenko
34dcb4127a Removed text utilities from SDL_Extensions 2023-02-03 18:55:25 +02:00
Ivan Savenko
7c58a46279 Removed some instances of access to screen surface 2023-02-03 18:23:53 +02:00
Ivan Savenko
3fef2a5e1f Moved Colors to a separate file, updated includes 2023-02-03 11:39:40 +02:00
Ivan Savenko
aab082fd2e Remove remaining access to SDL_Events 2023-02-03 11:39:40 +02:00
Ivan Savenko
594b7614cf Fix CI build 2023-02-03 11:39:40 +02:00
Ivan Savenko
cfcaf5cbb6 renamed keyDown -> keyPressed 2023-02-03 11:39:40 +02:00
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