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

505 Commits

Author SHA1 Message Date
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
AlexVinS
ecaa9f5d0b Entities redesign and a few ERM features
* Made most Handlers derived from CHandlerBase and moved service API there.
* Declared existing Entity APIs.
* Added basic script context caching
* Started Lua script module
* Started Lua spell effect API
* Started script state persistence
* Started battle info callback binding
* CommitPackage removed
* Extracted spells::Caster to own header; Expanded Spell API.
* implemented !!MC:S, !!FU:E, !!FU:P, !!MA, !!VR:H, !!VR:C
* !!BU:C, !!BU:E, !!BU:G, !!BU:M implemented
* Allow use of "MC:S@varName@" to declare normal variable (technically v-variable with string key)
* Re-enabled VERM macros.
* !?GM0 added
* !?TM implemented
* Added !!MF:N
* Started !?OB, !!BM, !!HE, !!OW, !!UN
* Added basic support of w-variables
* Added support for ERM indirect variables
* Made !?FU regular trigger
* !!re (ERA loop receiver) implemented
* Fixed ERM receivers with zero args.
2021-02-14 19:05:43 +03:00
John Bolton
c61bae4060 Fixed RETURN_IF_BATTLE(). Undid disabled warnings. Fixed indentation. 2020-10-05 16:28:28 -07:00
John Bolton
a05ae78e67 Fixed lots of warnings.
Disabled the following (for MSVC only) that couldn't (or shouldn't) be fixed.

4003: not enough actual parameters for macro 'identifier'
4250: 'class1' : inherits 'class2::member' via dominance
4251: 'type' : class 'type1' needs to have dll-interface to be used by clients of class 'type2'
4275: non dll-interface class 'type1' used as base for dll-interface class 'type2'
2020-10-04 02:20:18 -07:00
Victor Luchits
604246bc7a VS 2019/Windows 10 Kit fix 2020-05-05 15:25:07 +03:00
Arseniy Lartsev
fca9bcdd7f
Fixed possible freezes while dragging visible area on minimap (#638) 2020-05-03 01:26:30 +03:00
toneyisnow
1319175bdc Removed the create functions in the ColorShifter classes. 2020-01-27 00:34:59 -08:00
toneyisnow
8db638c054 Fix tiny space issue and remove reference of SDL.h 2020-01-26 00:05:38 -08:00
toneyisnow
468584d469 Update the originalPalette, and use SDL_Palette methods to improve memory management. 2020-01-26 00:01:48 -08:00
toneyisnow
0f4a9e5106 Updated resolved some issues. 2020-01-25 18:49:53 -08:00
toneyisnow
0f3dabab9a Initialize the change:
1. Make color shifter for CAnimation, and use that in the clone effect.
2. Update the original position of the cloned object.
2020-01-25 01:21:26 -08:00
Zsolt Sz. Sztupák
e6f1ab6539 Fix SDL letterboxing on Android builds
On Android calling `SDL_RenderSetLogicalSize` with dimensions having a different aspect ratio than the screen will cause letterboxing with blinking garbage data in that areas (instead of having black bars). This is annoying and makes the game really hard to play.

This change will make sure that on Android `SDL_RenderSetLogicalSize` will always be called with dimensions where the aspect ratio is the same as the screen to make sure there is no letterboxing.

The only problem with this is that during drawing the adventure map nothing will clear out the areas that would have been letterboxes, so there is an added explicit clear screen command for `totalRedraw()`.

The changes are only applied to Android builds in order not to affect PC builds - but some changes, especially clearing the screen could be easily added to the PC builds as well
2020-01-06 18:46:56 +00:00
KasyanDiGris
fa5a14e2d8 Stabilize vcmi (#488)
* Shared statusbar
* Fixed server fails on client disconnected
2018-08-26 19:09:56 +03:00
Alexander Shishkin
75f8c8b29a Gui cleanup4 (#446)
* use smart pointers for almost all widget fields
* use SDL2 texture for cursor
* a lot af small tweaks and formatting
* removed CompImage class, it is actually useless as long as regular SDLImage support margins
* CGuiHandler: use smart pointers for [push|pop]Int
2018-07-25 01:36:48 +03:00
Alexander Shishkin
5c09f751b3 Gui cleanup3 - UI refactoring to use smart pointers (#440)
* Changed most gui classes to use shared pointers
* Store and use IImage as shared_ptr
* CSpellWindow redesign
* AdventureMapClasses cleanup
* CLabel: store background as smart pointer
* Store CObjectList items as smart pointers
* Removed destroy function of list item
* Store toggle buttons as smart pointers
* Use CComponent as smart pointer
* Attempt to fix artifact merchant drawing
2018-04-07 18:34:11 +07:00
Arseniy Shestakov
ac66fc7f42 Full rework of pre-game interface and networking
New features for players:
* Loading for multiplayer. Any save could be used for multiplayer.
* Restart for multiplayer. All clients will restart together.
* Loading from single save.
* Hotseat mixed with network game. Multiple players per client.
* Now connection to server could be cancelled.
* Return to menu on disconnections instead of crashes.
* Restoring of last selected map, save or campaign on next run.

TLDR on important changes in engine code:
* UI: work with server separated from UI
* UI: all explitic blitting replaced with IntObject's
* UI: all new code use smart pointers instead of DISPOSE
* Gameplay always start through lobby controlled by server.
* Threads receiving netpacks now shared for lobby and gameplay.
* Campaigns: heroes for crossover now serialized as JsonNode.
2018-04-04 14:24:26 +07:00
AlexVinS
43acfa160b [tweaks] IImage * -> auto 2018-03-30 14:02:04 +03:00
AlexVinS
cac83379f5 Fixed https://bugs.vcmi.eu/view.php?id=2928 2018-03-22 12:56:15 +07:00
Arseniy Shestakov
69dbf339fc CGuiHandler: fix invalid read on event handling 2018-01-18 06:34:57 +03:00
Arseniy Shestakov
f15cadc87b Implement configurable object sounds: ambient, visit and removal
* If there more than one sound for visit or removal random is played
* At moment only the first ambient sound will be used
2018-01-02 09:49:03 +01:00
Michał Kalinowski
26a222ac62 Change JsonType to enum class (#393)
Change enum JsonType to enum class JsonType
2017-11-27 00:18:18 +03:00
AlexVinS
39194a0629 Merge branch 'SplittingShortcuts' into develop 2017-11-15 22:31:55 +03:00
FeniksFire
f2b7c85811 Adding object construction macro with parameter
- Adding macro "OBJECT_CONSTRUCTION_CAPTURING" that take as parameter
action flag.
- Fixed minor errors
2017-11-14 08:52:33 +01:00
AlexVinS
654fea56a4 Fixed memory leak in CAnimation (regression of #376) 2017-11-04 06:03:43 +03:00
AlexVinS
97d73f47b0 Fixed https://bugs.vcmi.eu/view.php?id=2817 2017-11-03 18:39:43 +03:00
AlexVinS
270e1b75ce Support for creature 2-hex attack, alternate death and cast animation types
* margin option .json animation
* Use ranged attack animation for spell cast if there is no cast animation, display cast animation only on active casting.
2017-09-12 19:51:54 +03:00
Arseniy Shestakov
494872937a CGuiHandler: use std:atomic to sync breaks in event handling 2017-09-11 12:18:16 +03:00
Arseniy Shestakov
986fc08b1e CGuiHandler: use SDL_PushEvent in fakeMouseMove to avoid crashes
Somehow this worked on other platforms, but on macOS it's cause constant crashes.
2017-09-11 12:18:16 +03:00
AlexVinS
3bbff27127 Wiped CDefEssential 2017-09-06 15:13:28 +03:00
AlexVinS
6cd0dd9843 Use CAnimation for creature projectiles 2017-09-05 20:04:17 +03:00
AlexVinS
05bb8b13e9 Use CAnimation for battle creature animation 2017-09-05 18:59:26 +03:00
AlexVinS
882e279818 Use CAnimation in CBattleInterfaceClasses 2017-09-05 16:44:27 +03:00
AlexVinS
69c6643893 More CCursorHandler style tweaks
# Conflicts:
#	AI/FuzzyLite
2017-09-05 15:25:49 +03:00
AlexVinS
9423555015 Declare ownership of CCursorHandler::dndObject
# Conflicts:
#	AI/FuzzyLite
#	client/gui/CGuiHandler.cpp
2017-09-05 15:25:31 +03:00
AlexVinS
ce4b206472 More complete support of .def format 2017-09-05 14:32:52 +03:00
AlexVinS
2f7968b803 Fixed wrong animation paths 2017-09-04 18:41:22 +03:00
AlexVinS
b964a53abe Fixed battle animation 2017-09-04 17:52:36 +03:00
AlexVinS
df34a2cc96 Dirty hackfix for https://bugs.vcmi.eu/view.php?id=2780 2017-09-03 23:38:15 +03:00
Arseniy Shestakov
fad2a0a3fb Fix memory leak and remove some garbage files added in last commit 2017-08-13 22:15:25 +03:00
Arseniy Shestakov
cd98dd0b89 CGuiHandler: make terminate_cond non-static
Static variable might be not yet initialized by the time it's used inside CGuiHandler constructor.
This fix let us avoid crash that occur when built with Xcode 8.2.1
2017-08-13 21:54:07 +03:00
AlexVinS
64d9dadd64 Logging cleanup. 2017-08-11 15:47:50 +03:00
AlexVinS
61e241308d Logging cleanup 2017-08-10 19:52:05 +03:00
Arseniy Shestakov
2da3d8a563 Code style: remove senseless comments 2017-07-18 00:04:00 +03:00
ArseniyShestakov
a4c0ad94b1 Code style: remove default value hints in definitions (#342)
Some are outdated and this is something IDE are useful for.
2017-07-15 14:08:20 +03:00
Arseniy Shestakov
f1e5797834 Code style: move or add licensing information on top of every file 2017-07-14 01:26:03 +03:00
Arseniy Shestakov
dbcd79c48a Code cleanup: remove double and unneded semicolons 2017-07-12 22:01:10 +03:00
Dydzio
182210421d Fix #2 for bug #2476 2017-07-11 14:04:43 +02:00
DJWarmonger
9623f7caf3 - Restored MSVS project files
- Fixed VCAI bu pointed out by Tow
2017-06-11 08:01:41 +02:00
Fay
65e88639a3 Minor: code format; 2017-06-08 21:07:09 +02:00
Fay
02fa478bfb Refactor: unified logic for notyfing CIntObjs about left/right mouse click events;
Added support for middle-click;
2017-06-07 20:16:18 +02:00
Arseniy Shestakov
3f7cb9f893 Client: add some shortcuts for spectator mode
Following mode only work when client is started in spectator mode:
F5 - Pause / resume game by locking of pim
F6 - Toggle spectate-ignore-hero
F7 - Toggle spectate-skip-battle
F8 - Toggle spectate-skip-battle-result
F9 - Skip current battle
2017-06-06 07:30:16 +03:00
Arseniy Shestakov
18161d3688 Client: implement spectator mode via command-line options
If running with --spectate/-s CPlayerInterface will appear even without human players.
Following command-line options also available:
 --spectate-ignore-hero
 --spectate-hero-speed=N
 --spectate-battle-speed=N
 --spectate-skip-battle
 --spectate-skip-battle-result
Boolean options can also be changed in runtime via client console:
 set spectate-ignore-hero on / off
Spectator mode also:
 - Work with --onlyAI option when starting game or loading saves.
 - Allow to use any cheat codes.
 - Give recon on towns and heroes.
2017-06-06 07:30:16 +03:00
dydzio
944edaf0bb Fix bug #2476 2017-03-27 23:47:26 +02:00
AlexVinS
8f7b0dac45 Fixed CID 1197332 2016-12-05 06:00:32 +03:00
AlexVinS
45ae1ef165 Fixed CID 1197342 2016-12-05 03:17:03 +03:00
AlexVinS
abe4beebc6 Fixed CID 1197516 2016-11-27 19:13:40 +03:00
AlexVinS
c4ab962cc0 Fixed a few CWE-457 2016-11-27 17:48:18 +03:00
AlexVinS
20de754141 def2bmp CLI command converted to CAnimation 2016-11-25 15:23:28 +03:00
AlexVinS
9e6bd48038 fix 2016-11-10 14:38:33 +03:00
AlexVinS
b248642468 fixes and cleanup 2016-11-09 09:32:44 +03:00
AlexVinS
a8a661b159 Map handler refactoring, part 2. 2016-11-08 00:19:53 +03:00
AlexVinS
aad675a7c4 Revert "Merge branch 'p254_4' into develop"
This reverts commit 37f68713a7, reversing
changes made to 4477b7c35d.
2016-11-08 00:17:20 +03:00
AlexVinS
4d510c172d Terrain drawing converted to CAnimation. 2016-11-07 23:48:30 +03:00
AlexVinS
6a272d8f0c FoW drawing converted to CAnimation 2016-11-06 05:27:45 +03:00
AlexVinS
c11a660d21 Fixed and cleanup 2016-11-06 05:27:44 +03:00
AlexVinS
186cd7a163 Mao object drawing converted to CAnimation 2016-11-06 05:27:26 +03:00
AlexVinS
ffeaef2bda fixes 2016-10-27 18:19:45 +03:00
AlexVinS
f32097339c Use CSDL_Ext blit for paletted sprites, use SDL blit otherwise.
*  No solution found to blit paletted images with alpha channel with SDL
2016-10-27 17:32:31 +03:00
AlexVinS
3dddbcf2e8 try to use CAnimation for Hero path 2016-10-27 16:34:15 +03:00
Vadim Markovtsev
4bcc43d3d0 Fix Mantis #2234
CPlayerInterface instances were removed from CClient::playerint with
clear() and finish() was not called on each. Added multiple insurance.
2016-10-22 16:22:00 +02:00
AlexVinS
3a52a3c663 Allow CAnimImage to share animation object. 2016-10-16 12:58:18 +03:00
AlexVinS
e6829bf271 Removed unused debug data in CAnimation. 2016-10-16 12:02:50 +03:00
AlexVinS
5506ae036a Reworked CHillFortWindow
* fixed displaying free upgrades
* do not try to print 3rd or more resource in slot cost (in theory possible with mods)
** we need dynamic gui for that
* CDefEssential--
2016-10-16 08:03:52 +03:00
AlexVinS
055c84bc7a cleanup 2016-10-16 04:23:38 +03:00
AlexVinS
153af6e07b cleanup 2016-10-16 02:47:03 +03:00
Arseniy Shestakov
10dbbead2d Fix indentation of logging code and around it
That wouldn't be as big issue if problem affected few files, but it everywhere in codebase.
Fixed it everywhere since in most files that is the only code with wrong indentation.
2016-03-12 04:46:21 +03:00
Zyx-2000
7fbd5479e2 alignment & makefile fix 2016-01-29 16:08:44 +01:00
Zyx-2000
3a1a8e3d47 further refactoring-related changes 2016-01-29 15:16:14 +01:00
Ivan Savenko
7b5a7f43ad Removed includes of CGameState from headers 2015-12-02 21:39:53 +02:00
ArseniyShestakov
fc06db4c4f Move STRONG_INLINE define into Global.h 2015-11-22 07:14:52 +03:00
Vadim Markovtsev
d24fd10e21 Fix std::abs warning
Recent clang wants std::abs instead of plain abs
2015-10-13 21:05:46 +03:00
Vadim Markovtsev
e4b1ef1405 Add "override" to virtual overriden methods 2015-10-13 21:05:36 +03:00
AlexVinS
28087099b8 More correct usage of SDL_Palette 2015-09-05 15:03:37 +03:00
AlexVinS
b512005d38 Get rid of CSDL_Ext::colorSetAlpha 2015-09-02 18:49:29 +03:00
Sandy Carter
6a3c2d3071 gui: Fix in parameter for scroll events
Refetch mouse position before checking if mouse is in widget Rect
Give acurate position of the mouse when scrolling
2015-08-22 12:40:14 -04:00
AlexVinS
371e4b8714 Fix mantiss 2235, 2237 2015-08-22 16:47:40 +03:00
AlexVinS
5f7a90237c More smooth fps counter 2015-06-23 01:08:25 +03:00
AlexVinS
32c15a8266 Extract fps counter drawing 2015-06-22 23:57:34 +03:00
AlexVinS
cc669b0ae7 Move gui locking to GUIHandler 2015-06-22 21:53:47 +03:00
AlexVinS
ed281a3cc6 SDL1 wipe, part 4. Codebase cleanup finished. Untested. 2015-06-21 01:59:32 +03:00
AlexVinS
8c236e30bb SDL1 wipe, part 3. Untested. 2015-06-21 01:59:32 +03:00
AlexVinS
b6a2323e01 SDL1 wipe, part 2. Untested. 2015-06-21 01:59:31 +03:00
AlexVinS
dca1e28bc1 SDL1 wipe, part 1. Untested. 2015-06-21 01:59:30 +03:00
DjWarmonger
6ac00873b9 Compilation fixes - allow SDL1.
Please do not define class-specific constants that are static at same time.
2015-02-18 15:31:55 +01:00
DjWarmonger
2a082e6c21 Merge pull request #84 from Fayth/test/advMapFading
If no one objects, I will try to merge this.
2015-02-18 09:52:09 +01:00
AlexVinS
c46999bcb8 Conurrency related tweaks. Crashes in renderFrame should be fixed, but synchronization is still not perfect 2015-02-15 04:53:01 +03:00
AlexVinS
b71d985d49 cleanup 2015-02-15 01:46:47 +03:00
Fay
5a7a208617 Minor fixes (possible surface leak); 2015-02-02 17:42:42 +01:00
Fay
5e78a3147a Abstracted fading into separate class;
Smoother fade animations;
Added fading when recentering hero after switching levels;
2015-01-30 23:37:28 +01:00
Fay
4b248c2762 World view impl -- initial; 2015-01-13 20:57:41 +01:00
Ilya Zhuravlev
b22973e717 Fixed crash, "pure virtual method called", when calling doUpdate lambda from CGPreGame. 2014-11-10 20:21:39 +03:00
Ivan Savenko
4092929b70 Fixed endianness 2014-08-11 16:21:23 +03:00
Ivan Savenko
1e5e02c7df Compilation fixes caused by merge, replaced some remaining boost::bind with std's 2014-08-09 15:14:31 +03:00
Ivan Savenko
b1285bc506 Merged GUI refactoring into develop, fixed conflicts 2014-08-09 15:01:55 +03:00
Ivan Savenko
4d6ab2c32d Fixed rendering of bitmap fonts shadow 2014-08-07 19:53:07 +03:00
beegee1
5139378319 - migrated boost::function/ref/bind to std:: variants 2014-08-04 20:33:59 +02:00
Ivan Savenko
10fc1892a8 Large refactoring of button classes:
- renamed CAdventureMapButton to more expectable CButton
- merged CButtonBase into CButton
- created more generic class for clickable elements
- created more generic class for selectable elements
- renamed CHighlightableButton to CToggleButton
- renamed CHighlightableButtonsGrous to CToggleGroup
- minimized differences between API of all these classes
- removed all but one contructors in buttons, with same parameters across all classes
2014-08-03 14:16:19 +03:00
Ivan Savenko
731aedf3a1 Split CIntObjectClasses into multiple smaller files. This should be the last change in files 2014-07-15 10:14:49 +03:00
Ivan Savenko
92d22bae63 Merge branch 'feature/creatureWindow' into refactoring/guiClasses 2014-07-14 17:23:24 +03:00
Ivan Savenko
647b9c683f Reorganized client source tree:
- client/widgets for reusable GUI elements
- client/windows for independent windows
- client/gui for base GUI classes which should remain internal
2014-07-13 20:53:37 +03:00
Ivan Savenko
cec9161f8f Added missing files 2014-07-13 18:40:13 +03:00
Ivan Savenko
83099fdb78 Moved all non-window GUI elements out from GUI classes file. TODO: reorganize source tree 2014-07-13 18:39:45 +03:00
Ivan Savenko
55ff933b7f Reducing size of GUI classes. Split trade windows into a separate file 2014-07-13 16:31:00 +03:00
Ivan Savenko
09bedf9aa9 Reducing size of GUIClasses. Moved Garrison Int into a separate file. 2014-07-13 16:11:25 +03:00
Ivan Savenko
7e76a5dd0e Moved some code from GUIClasses into two smaller files:
- CArtifactHolder.*
- CComponent.*

Goal: reorganize artifacts UI to decrease dependency on CGHeroInstance class
2014-07-13 14:56:30 +03:00
AlexVinS
0edd10078f Fix usage of fillRect.
* proper fix for slider drawing
2014-07-05 01:52:11 +04:00
Ivan Savenko
20f7071d11 Implemented stack experience/commander experience display for window 2014-07-04 12:48:09 +03:00
AlexVinS
74d3effa98 More safe way of update locking 2014-07-03 22:30:56 +04:00
Ivan Savenko
e4e9d71143 Fixed texts:
- added new texts to translate.json
- implemented texts for abilities

Remaining TODO's:
- handling of stack artifact
- handling of commander artifacts
- stack experience
2014-07-03 21:09:17 +03:00
AlexVinS
9b8ad51cd3 Run all rendering with pim lock if possible 2014-07-03 22:05:59 +04:00
AlexVinS
8a488aeb86 Cleanup 2014-07-03 19:57:21 +04:00
AlexVinS
57f82f2bed Add a comment. 2014-07-03 18:46:23 +04:00