1
0
mirror of https://github.com/vcmi/vcmi.git synced 2024-12-16 10:19:47 +02:00
Commit Graph

421 Commits

Author SHA1 Message Date
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
Ivan Savenko
ec6f19ea18 Code reorganization, no changes to functionality 2023-03-05 17:48:02 +02:00
Ivan Savenko
330999fdc4 Moved files to new directory 2023-03-05 17:48:02 +02:00
Ivan Savenko
1c144637c1 Added basic overlay support for World View mode 2023-03-05 17:48:02 +02:00
Ivan Savenko
def1e35836 Use SDL BlitMode's to speed up image rendering 2023-03-05 17:48:02 +02:00
Ivan Savenko
40413ee6be Basic version of scaling for view world 2023-03-05 17:48:02 +02:00
Ivan Savenko
16e7f860ff Added debug rendering 2023-03-05 17:48:02 +02:00
Ivan Savenko
685cc91029 Cleanum & formatting 2023-03-05 17:48:02 +02:00
Ivan Savenko
ca13e7dedf Implemented terrain palette animatiions. Removed old code 2023-03-05 17:48:02 +02:00
Ivan Savenko
57d906a01c Fixed embarking & disembarking timings 2023-03-05 17:48:02 +02:00
Ivan Savenko
b5ad3a0559 Fixed in-boat movement 2023-03-05 17:48:02 +02:00
Ivan Savenko
ebe996fa74 Hero movement speed and map scrolling speed now matches H3 2023-03-05 17:48:02 +02:00
Ivan Savenko
7cf00ba87d Implemented basic hero movement animation & object fade-out 2023-03-05 17:48:02 +02:00
Ivan Savenko
4501036a04 Basic version of hero movement on map. Removed old code. 2023-03-05 17:48:02 +02:00
Ivan Savenko
d46687a9c8 Partial implementation of world view mode 2023-03-05 17:48:02 +02:00
Ivan Savenko
beb7ce5beb Refactoring of MapView 2023-03-05 17:48:02 +02:00
Ivan Savenko
67cc5a05c6 Removed old code 2023-03-05 17:48:02 +02:00
Ivan Savenko
21a48e4f0d Moved path rendering to new map renderer 2023-03-05 17:48:02 +02:00
Ivan Savenko
600054e001 Refactored access to hero paths in CPlayerInterface 2023-03-05 17:48:01 +02:00
Ivan Savenko
bb6e1f7ee1 Initial WIP of adventure map rendering rewrite 2023-03-05 17:47:12 +02:00
Ivan Savenko
acdb8d6e06 renamed Unicode -> TextOperations, to use for all text processing 2023-03-05 17:39:23 +02:00
Ivan Savenko
65c020ef34 Moved Unicode namespace out of GeneralTextHandler file 2023-03-05 17:30:38 +02:00
Andrey Filipenkov
fd56f86a84 introduce VCMI_MOBILE macro 2023-03-02 12:09:49 +03:00
Dydzio
6bd4eac27a Rename settings files 2023-02-18 17:58:22 +01:00
Dydzio
1d153f4ee9 "ForceMovementInfo" support + make other settings tab 2023-02-14 23:45:45 +01:00
Dydzio
be9c71934c Merge remote-tracking branch 'origin/develop' into settings-rework 2023-02-14 21:00:17 +01:00
Dydzio
fb06aca0bb Further progress - UI tweaks, new settings etc 2023-02-14 20:30:06 +01:00
Ivan Savenko
18d1823d44 Fix build 2023-02-14 11:32:20 +02:00
Ivan Savenko
91b17bed79 Partial encapsulation of AdvMapInt 2023-02-14 11:18:42 +02:00
Ivan Savenko
e15c7dcd33 Attempt at better encapsulation of CTerrainRect 2023-02-14 11:18:41 +02:00
Ivan Savenko
89c29206f1 Internal classes of mapHandler are now in global namespace 2023-02-14 11:18:41 +02:00
Ivan Savenko
cc0c3e5bc9 All adventure map components now use shared_ptr 2023-02-14 11:18:41 +02:00
Ivan Savenko
f8c1c46562 removed CAdvMapInt::handleRightClick method 2023-02-14 11:18:41 +02:00
Ivan Savenko
d0f57fed6f Cleaned up code of Minimap 2023-02-14 11:18:41 +02:00
Dydzio
7430616ada Move settings to separate subfolder 2023-02-12 17:29:23 +01:00
Konstantin
3cf303f1c7 vcmi/client: make ColorRGBA constexpr
1. Replace overflowing int3 to ColorRGBA, which is more semantically
   correct
2. Make ColorRGBA constexpr, to make sure than hardcoded colors can
   be initialized in compile time
2023-02-12 19:11:24 +03:00
Dydzio
fc7d2b9778 Merge remote-tracking branch 'origin/develop' into settings-rework 2023-02-12 11:55:21 +01:00
Ivan Savenko
ab8b407294 Style cleanup 2023-02-08 13:56:09 +02:00
Ivan Savenko
62151cd20c Replaced genRect with Rect constructor call 2023-02-03 19:17:59 +02: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
cfcaf5cbb6 renamed keyDown -> keyPressed 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
Dydzio
d04c53e7e0 Merge branch 'develop' into settings-rework 2023-02-02 11:55:13 +01:00
Ivan Savenko
108a42e4ba Reorganized includes for new layout. New class - IImageLoader 2023-02-01 20:42:06 +02:00
Ivan Savenko
84dfcacafd Updated CMakeLists and file headers 2023-02-01 16:42:03 +02:00
Ivan Savenko
bfea28b2b5 Remove duplicated code from changed files 2023-02-01 15:24:43 +02:00
Ivan Savenko
18adcdda14 Finish CAdvmapInterface split 2023-02-01 15:17:57 +02:00
Ivan Savenko
6fd1b9927c Restore CAdvMapInterface 2023-02-01 15:17:20 +02:00
Ivan Savenko
37d6d21e73 Moved CResDataBar into a separate file 2023-02-01 15:17:14 +02:00
Ivan Savenko
aaf981a6dc Restore CAdvMapInterface 2023-02-01 15:16:07 +02:00
Ivan Savenko
540921b96d Moved CAdventureOptions into a separate file 2023-02-01 15:15:52 +02:00
Ivan Savenko
1078c4acb6 Restore CAdvMapInterface 2023-02-01 15:14:52 +02:00
Ivan Savenko
5e0c90dc8a Moved CTerrainRect into a separate file 2023-02-01 15:13:07 +02:00
Ivan Savenko
9366506e2c Finalized split of AdventureMapClasses 2023-02-01 14:01:48 +02:00
Ivan Savenko
900cc55ed5 Merge branches 'split_cadvmappanel', 'split_cingameconsole', 'split_clist', 'split_cminimap' and 'split_cinfobar' into client_files_layout_rearrangement 2023-02-01 13:56:22 +02:00
Ivan Savenko
ef236be2da Created separate file for CInfoBar 2023-02-01 13:55:56 +02:00
Ivan Savenko
d0c6627cdb Created separate file for CList 2023-02-01 13:50:13 +02:00
Ivan Savenko
27f2e4fd33 Created separate file for CMinimap 2023-02-01 13:49:31 +02:00
Ivan Savenko
87498287f5 Created separate file for CAdvMapPanel 2023-02-01 13:48:26 +02:00
Ivan Savenko
134b40363f Created separate file for CInGameConsole 2023-02-01 13:47:05 +02:00
Ivan Savenko
8a9492d129 Moved client files to more suitable locations 2023-02-01 13:09:19 +02:00