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

317 Commits

Author SHA1 Message Date
Ivan Savenko
62fddca21e Split massive CModHandler class/file into multiple parts:
- IdentifierStorage is now a separate handler in VLC
- Renamed ModHandler::Incompatibility exception to ModIncompatibility
- Extracted ModScope namespace from ModHandler
- Extracted ModUtilities namespace from ModHandler
- Split CModHandler.cpp on per-class basis
- Replaced some direct members with unique_ptr to reduce header includes
2023-07-30 22:17:47 +03:00
Dydzio
0b5cea0320 Use new adventure map state to detect opponent human turn 2023-07-27 17:26:52 +02:00
Dydzio
ff1a635e9e Unblock basic adventure map actions (scrolling / right-click) in multiplayer 2023-07-26 21:20:11 +02:00
Dydzio
a4f9cde57d Fix autosave at end of turn starting with AI turn on load 2023-07-24 18:24:57 +02:00
Ivan Savenko
07a8c75bec
Merge pull request #2305 from dydzio0614/unlimited-autosave
Ability to change autosave limit + set autosave prefix
2023-07-19 14:45:51 +03:00
Ivan Savenko
7b06c41929
Merge pull request #2338 from dydzio0614/info-box-army-management
Info box army management
2023-07-18 16:45:17 +03:00
Ivan Savenko
64a22d8590 Workaround for false double-clicking of elements in hero/town lists 2023-07-17 17:40:28 +03:00
Ivan Savenko
36efef0ee3 Do not play new day animation on game start 2023-07-17 16:30:12 +03:00
Dydzio
ee663b1595 Changes from code review 2023-07-16 15:56:42 +02:00
Dydzio
1b676933e5
Fix indent
Co-authored-by: Ivan Savenko <saven.ivan@gmail.com>
2023-07-16 15:46:43 +02:00
Dydzio
5882cbae78 Merge branch 'develop' into unlimited-autosave 2023-07-16 15:19:04 +02:00
Dydzio
fe26ab4501 Add settings entry, immediately refresh info bar on setting toggle 2023-07-16 14:52:43 +02:00
Dydzio
dbfcb5a749 Implement interactable town tooltip 2023-07-16 10:17:37 +02:00
Dydzio
013d4cd208 Fix slot deselect when selected shortly after new day animation bypass 2023-07-15 23:15:59 +02:00
Dydzio
ea0ee87299 Interactable hero status - alternative infobox component 2023-07-15 23:14:59 +02:00
Ivan Savenko
189a0c6e0d Re-center map on active object after screen resize 2023-07-15 16:09:44 +03:00
Ivan Savenko
3836217da5 Fix updating of heroes when moving to/from garrison 2023-07-15 16:09:44 +03:00
Ivan Savenko
3e1125570d Fix updating of hero & town lists on adventure map 2023-07-15 16:09:44 +03:00
Dydzio
ad66acdd79 End turn autosave support + making it default 2023-07-13 22:07:42 +02:00
Dydzio
616916714a Unrelated typo fix 2023-07-13 21:56:53 +02:00
Ivan Savenko
0deeff30b9 replaced clickPressed with clickReleased where applicable to H3 2023-07-09 17:55:39 +03:00
Ivan Savenko
ca889a5c2a Replaced clickLeft with clickPressed clickReleased methods 2023-07-08 14:33:04 +03:00
Ivan Savenko
85655d5534 Block map level toggle on maps without underground 2023-07-04 21:42:37 +03:00
Ivan Savenko
1dff721747 Fix infobox resetting to current hero during enemy turn 2023-07-04 20:28:02 +03:00
Ivan Savenko
f914ec9d57 Fix activation of in-game console in other windows 2023-07-04 20:27:45 +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
4e80356bea Do not hide minimap on human player turn 2023-07-03 19:36:10 +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
48eb8ab54f Play sound when receiving message, not just on sending ours 2023-07-03 17:12:31 +03:00
Ivan Savenko
0f8d53e978 Replaced SDL user events list with dispatching of arbitrary functors 2023-06-26 21:51:10 +03:00
Ivan Savenko
6546242c03 Workaround-ish fix for last scenario of Angel Wings (un)equipping 2023-06-25 17:42:36 +03:00
Ivan Savenko
08cfbe79cf Added encapsulation for movement points access 2023-06-25 17:42:36 +03:00
Ivan Savenko
4e7412faa6 Split mouseDragged event from mouseMoved 2023-06-22 22:11:48 +03:00
Ivan Savenko
ccc85ff4eb
Merge pull request #2246 from IvanSavenko/pathfinding_reorganization
Pathfinding code reorganization
2023-06-21 18:22:44 +03:00
Ivan Savenko
ebc7a82c2e Converted pathfinder enum's to enum class 2023-06-21 15:38:57 +03:00
Ivan Savenko
bd4d2788ed Split pathfinder into multiple smaller files 2023-06-21 13:46:09 +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
6283329aeb Added option to disable edge scrolling 2023-06-05 19:20:20 +03:00
Ivan Savenko
db1045aecd Fix panning limits for minimap 2023-06-05 19:20:08 +03:00
Ivan Savenko
e6e91c64b6 Implemented minimap panning gesture 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
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
261308b942 Hero/town lists are now scrollable with mouse wheel 2023-06-05 19:00:57 +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
acac42291e Remove excessive CMap.h includes 2023-05-31 23:18:38 +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
956ff22e64
Merge pull request #2163 from IvanSavenko/adventure_map_zoom
Adventure map zoom
2023-05-20 13:35:53 +03:00
Ivan Savenko
f4d67fe675 Restore SDL_main in CMT.cpp 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
1f513fd280 Extracted event management from GuiHandler and CIntObject 2023-05-20 01:51:49 +03:00
Ivan Savenko
be2e101c8c Fix map freeze on enemy turn 2023-05-19 13:22:18 +03:00
Ivan Savenko
872b68c59a Implemented zoom reset shortcut (backspace) 2023-05-17 14:54:19 +03:00
Ivan Savenko
9e3bc87a6b Allow zooming with mouse wheel 2023-05-17 00:49:24 +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
7838190ef4 Moved window stack management from GuiHandler to new class 2023-05-16 19:10:21 +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
c5a48a01ce Remove no longer used code 2023-05-09 13:10:33 +03:00
Ivan Savenko
edd5d11734 Fix issues discovered by self-review 2023-05-09 13:10:33 +03:00
Ivan Savenko
c01b74434c Fix cancelling spellcast with escape 2023-05-09 13:10:33 +03:00
Ivan Savenko
243773b6ef Renamed some adventure map files & classes 2023-05-09 13:10:33 +03:00
Ivan Savenko
b1bd49ecd8 Fix main menu resize on resolution change 2023-05-09 13:10:33 +03:00
Ivan Savenko
ca15bf5698 Added autoselection of in-game console log width 2023-05-09 13:10:33 +03:00
Ivan Savenko
8b27780c11 Fixed scrolling blocking with Ctrl 2023-05-09 13:10:33 +03:00
Ivan Savenko
a6fda031ed Fixed widget disabling during enemy turn & spellcasting 2023-05-09 13:10:33 +03:00
Ivan Savenko
7228b08d1d Implemeted runtime generation of player-colored background texture 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
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
a0f1bf3928 Implemented user-selectable UI scaling mode 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
d4098059b8 Proper support for player-colored buttons in UI 2023-05-09 13:10:33 +03:00
Ivan Savenko
7aacba6e55 Fix adventure map left-clicking 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
18a66a4376 Rename method to better name 2023-05-09 13:10:33 +03:00
Ivan Savenko
d96edd9f56 Added larger town list for higher resolutions 2023-05-09 13:10:33 +03:00
Ivan Savenko
4958190e82 Fixed visibility of corner gems 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
dea10e6091 Use more descriptive names for hotkeys 2023-05-01 17:59:20 +03:00
Ivan Savenko
a654cc2391 Removed vstd::advance. Added vstd::next to handle similar cases. 2023-05-01 17:58:18 +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
Ivan Savenko
fb739e7186 Merge beta -> develop 2023-04-26 22:48:08 +03:00
Ivan Savenko
80b37a3019 Fixed remaining regressions 2023-04-20 22:19:10 +03:00
Ivan Savenko
bb08a0afc8 Moved selection logic to player state 2023-04-20 22:04:24 +03:00
Ivan Savenko
e8718a46cc Fix regressions 2023-04-20 22:04:24 +03:00
Ivan Savenko
dd227d24c3 Formatting and cleanup 2023-04-20 22:04:24 +03:00
Ivan Savenko
365f552fa1 Added API for owned towns access 2023-04-20 22:04:24 +03:00
Ivan Savenko
5cbd0f8fc8 API for wandering heroes access 2023-04-20 22:04:24 +03:00
Ivan Savenko
3eac6f323e added API for sleeping heroes access 2023-04-20 22:04:24 +03:00
Ivan Savenko
6a46138617 Moved current selection to local state class 2023-04-20 22:04:24 +03:00
Ivan Savenko
f6d480cbb2 Moved player-specific heroes & towns information to new class 2023-04-20 22:04:24 +03:00
Ivan Savenko
4a169972f0 Further refactoring to cleanup code of advmap and locplint 2023-04-20 22:04:24 +03:00
Ivan Savenko
20de44d4a5 Reodered methods in file to group similar code 2023-04-20 22:04:24 +03:00
Ivan Savenko
7db67a3101 int3 now has proper hasher function 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
f1902ab247 Initial refactoring to encapsulate adventure map 2023-04-20 22:03:28 +03:00
Ivan Savenko
5c9ae8aafc Implemented spell range overlay for Dimension Door and Scuttle Boat 2023-04-20 14:15:08 +03:00
Konstantin
7a5775a9f9 vcmi: use std::optional 2023-04-17 00:43:13 +03:00
Ivan Savenko
dfa2e2a349 Merge beta into develop 2023-04-11 19:37:35 +03:00
Ivan Savenko
e2d0cd37e4
Merge pull request #1910 from IvanSavenko/beta_fixes
Fixes for 1.2 branch
2023-04-09 20:09:03 +03:00
Ivan Savenko
4d37686eb3
Merge pull request #1901 from rilian-la-te/disable-info-bar-scroll
InfoBar: disable scrollbar
2023-04-08 19:12:48 +03:00
Ivan Savenko
0abc00f82e Fix assertion failure in in-game console 2023-04-08 18:53:47 +03:00
Konstantin
50c9a57133 InfoBar: fix tiny selection with data 2023-04-08 01:44:08 +03:00
Konstantin
f8c15f3a4b InfoBar: disable scrollbar 2023-04-07 20:50:47 +03:00
Konstantin
11b237a23c vcmi: massive refactoring v1 2023-04-05 22:33:12 +03:00
krs
a8f13bb927 Add RALT key check for movement info 2023-04-01 00:20:51 +03:00
Adriankhl
8c5c943da9 Show movement cost immediately after pressing left alt key 2023-03-31 17:48:31 +02:00
Ivan Savenko
339bbce7b7 Added more checks to avoid potential nullptr dereference crash 2023-03-25 23:54:51 +02:00
Ivan Savenko
a8fe8c0f3b Converted timer event into tick event that is called every frame 2023-03-22 23:10:50 +02:00
Ivan Savenko
c81d57ab8c Remove excessive totalRedraw's 2023-03-22 00:57:08 +02:00
Ivan Savenko
bb03abdce6 Fix crash on switching players in hotseat 2023-03-21 19:06:38 +02:00
Konstantin
5462a92930 Fix #1688 again 2023-03-18 01:19:41 +03:00
Ivan Savenko
21407b26dd Fix minimap redraw on fow reveal 2023-03-16 18:36:31 +02:00
Ivan Savenko
a0e9e01b48 Renamed & reorganized all game mechanics settings names 2023-03-16 18:11:35 +02:00
Ivan Savenko
383387ef29 Integrated defaultMods into mod system 2023-03-16 17:55:09 +02:00
Konstantin
4ab9cdd75a infobar: fix tiny rendering 2023-03-15 14:35:34 +03:00
Ivan Savenko
e1310f88e3
Merge pull request #1675 from rilian-la-te/scholar-infobox
Fix #1385 and similar
2023-03-13 12:49:30 +02:00
Konstantin
40222e3f77 vcmi: fix week animation 2023-03-13 01:22:19 +03:00
Konstantin
18200d1d98 vcmi: move getEstimatedComponentHeight 2023-03-13 00:24:26 +03:00
Konstantin
3d33da0a9e vcmi: request pop all when hero is moved
This way new pickup will show immidately.
2023-03-11 21:41:57 +03:00
Konstantin
de211e9f13 vcmi: all notifications now shows inside the infobar properly
No more dangling images or text.
2023-03-11 21:41:57 +03:00
Konstantin
bc228a938a vcmi: use enum class for EComponentType
There is really no reason not to use it
2023-03-11 21:41:57 +03:00
Konstantin
1ca89c8492 vcmi: implement splitting by ID in infobar
This will get a much better result than naive sorting
2023-03-11 21:41:57 +03:00
Konstantin
a6cb7fd192 vcmi: allows to more than 8 components in infobar 2023-03-11 21:41:57 +03:00
Konstantin
a0c644a0e5 vcmi: actually implement AUTO for CInfoWindow
This is possible to use infobar interactions now.
2023-03-11 21:41:57 +03:00
Konstantin
75358a68a7 vcmi: name infobar height and width 2023-03-11 21:41:57 +03:00
Konstantin
4617ce10e5 vcmi: allow showing more than one components in infobar
Up to 8, AFAIK. So, we can show multi-reward in infobox now.
One issue remain - cannot dynamically choose components size
based on text size.
2023-03-11 21:41:57 +03:00
Konstantin
2fb2a79ca4 vcmi: fix components other than resources in infobar
Do not redraw infobar when components shows and
we request to show current adventure hero.
Player already knows which hero he used to pick up
components.
2023-03-11 21:41:57 +03:00
Konstantin
5366f9190e vcmi: reduce boost::lexical_cast usage 2023-03-09 16:36:46 +03:00
Adriankhl
368def1609 Fix sleep/wake button, now the icon is updated properly after left click 2023-03-07 13:51:05 +01:00
Ivan Savenko
7ef5163d9d
Merge pull request #1581 from IvanSavenko/map_render_rewrite
Adventure Map - rendering rewrite
2023-03-05 19:51:07 +02:00
Ivan Savenko
c328aadfed Update hero paths on new day 2023-03-05 18:02:59 +02:00
Ivan Savenko
b61cae5b37 Fixed minor issues discovered during testing 2023-03-05 18:02:59 +02:00
Ivan Savenko
58aa5c0427 Formatting 2023-03-05 18:02:59 +02:00
Ivan Savenko
b57a07b10f Restored ambient sounds functionality 2023-03-05 18:02:59 +02:00
Ivan Savenko
cdcd5a29dd Updated path to renamed directory 2023-03-05 18:02:59 +02:00
Ivan Savenko
b9e55db223 Minor fixes 2023-03-05 18:02:59 +02:00
Ivan Savenko
6196d538e7 Fix terrain tooltip 2023-03-05 18:02:59 +02:00
Ivan Savenko
45e2875342 Completely removed old TerrainRect class 2023-03-05 17:57:36 +02:00
Ivan Savenko
b9056ef248 Moved swipe handling to TerrainRect class 2023-03-05 17:57:34 +02:00
Ivan Savenko
0282e6dad0 Attempt to improve caching 2023-03-05 17:48:02 +02:00
Ivan Savenko
11e4d84749 Implemented View Earth / View Air spells 2023-03-05 17:48:02 +02:00