Ivan Savenko
48859e186e
Added panning gesture, activated by mouse wheel press
2023-06-05 19:00:56 +03:00
Ivan Savenko
1e9eea30e1
Merge remote-tracking branch 'soundsgood/CArtHandler-rework' into develop
2023-06-05 18:53:17 +03:00
Ivan Savenko
8d278e653f
Merge pull request #2202 from IvanSavenko/map_objects_reorganization
...
Map objects code reorganization
2023-06-05 18:35:05 +03:00
Ivan Savenko
d6a357fd17
Split some map object files into smaller files. Reduced includes usage.
2023-06-02 21:47:37 +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
d5d0ca96a8
Minor fixes and cleanup
2023-05-20 01:51:49 +03:00
SoundSSGood
021f94a579
artifact utils
2023-05-17 17:00:31 +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
c5a48a01ce
Remove no longer used code
2023-05-09 13:10:33 +03:00
Konstantin
a6de9097be
vcmi: rename HeroBonus.h to Bonus.h
2023-05-02 11:20:58 +03:00
Konstantin
6fa1b2b19f
vcmi: move bonuses to its own folder
2023-05-02 00:53:50 +03:00
Ivan Savenko
916b41d9a7
Merge pull request #2078 from IvanSavenko/shortcuts
...
Basic shortcuts system
2023-05-01 21:45:52 +03:00
nordsoft
68fa7aaf35
Remove limitations for amount of skills
2023-05-01 21:49:37 +04:00
nordsoft
07f7c318dc
Adjust client part for markets
2023-05-01 21:49:37 +04:00
nordsoft
59bc9326e9
Remove excess pointer from market interface
2023-05-01 21:49:37 +04: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
SoundSSGood
a8220c551f
fixed init CArtifactsOfHero
2023-04-23 14:33:47 +03:00
nordsoft
de159df481
Rename boats
2023-04-20 21:20:51 +04:00
nordsoft
ed798b06da
Prepare transport enum
2023-04-18 13:04:49 +04:00
Ivan Savenko
644f0f4b32
Removed ARRAY_COUNT in favor of std::size
2023-04-12 01:04:26 +03:00
Ivan Savenko
506c3d29bc
Replaced vstd clamp with std version
2023-04-12 01:03:14 +03:00
Konstantin
11b237a23c
vcmi: massive refactoring v1
2023-04-05 22:33:12 +03:00
Ivan Savenko
c661419897
Merge pull request #1700 from rilian-la-te/resource-array
...
Modernize resourceSet.
2023-04-02 20:12:45 +03:00
Konstantin
c1fd7309ad
ResourceSet: composition
2023-03-31 14:00:49 +03:00
SoundSSGood
f0f9eecf97
Backpack limit part5. End of battle. Other stuff
2023-03-21 12:14:33 +02:00
SoundSSGood
9f8aa25297
Backpack limit part4 (Using cheats, buying)
2023-03-21 12:14:33 +02:00
SoundSSGood
72122fb433
CArtifact, CArtifactInstance, CCombinedArtifactInstance reorganization
2023-03-21 12:14:33 +02:00
Konstantin
bbbbfe00f0
Modernize resourceSet
2023-03-17 02:26:54 +03: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
Ivan Savenko
77f92e56ac
Merge pull request #1689 from IvanSavenko/map_renderer_fixes
...
Map renderer fixes
2023-03-16 14:48:57 +02:00
Ivan Savenko
2a2af34788
Merge pull request #1650 from SoundSSGood/arts-swap-regression-fix
...
Arts swap regression fixed
2023-03-16 14:47:31 +02:00
Ivan Savenko
d3533150b8
Fix misplaced width/height in UI
2023-03-15 12:17:08 +02:00
Konstantin
5366f9190e
vcmi: reduce boost::lexical_cast usage
2023-03-09 16:36:46 +03:00
SoundSSGood
e24eb6cc12
regression fixed
2023-03-08 17:20:38 +02: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
ec6f19ea18
Code reorganization, no changes to functionality
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
4501036a04
Basic version of hero movement on map. Removed old code.
2023-03-05 17:48:02 +02:00
Ivan Savenko
260f6d626c
Implemented translations for H3M maps
2023-03-05 17:39:27 +02:00
Ivan Savenko
acdb8d6e06
renamed Unicode -> TextOperations, to use for all text processing
2023-03-05 17:39:23 +02:00
Dydzio
be9c71934c
Merge remote-tracking branch 'origin/develop' into settings-rework
2023-02-14 21:00:17 +01:00
Ivan Savenko
e15c7dcd33
Attempt at better encapsulation of CTerrainRect
2023-02-14 11:18:41 +02:00
Konstantin
6d8eac320d
vcmi/client: add missing include to GUIclasses.cpp
...
Fix building with clang++ version 15.
2023-02-12 19:11:24 +03:00
Dydzio
2f171fcc0e
Merge branch 'develop' into settings-rework
2023-02-12 15:03:33 +01:00
Ivan Savenko
c8c38ac922
Merge pull request #1386 from IvanSavenko/resolutions_filter
...
Do not allow selecting resolutions not supported by display
2023-02-12 14:33:39 +02: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
70c0937972
Moved SDL-specific code to SDL_Extensions
2023-02-03 13:02:05 +02:00
Ivan Savenko
01322aa4c5
Do not allow selecting resolution no supported by display
2023-02-03 12:57:38 +02:00
Ivan Savenko
9833edcf73
Removed using namespace SDL_Ext
2023-02-03 11:39:40 +02:00
Ivan Savenko
d87fb43dcd
Replaced SDL access with VCMI methods
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
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
9c3030603d
Removed most SDL includes from headers, removed SDL int's
2023-01-30 19:55:32 +02:00
Ivan Savenko
e35a669eeb
Refactoring of CPicture class to improve encapsulation
2023-01-30 13:58:13 +02:00
Dydzio
e3578d0bc8
Extract options stuff to separate file
2023-01-29 17:36:33 +01:00
Dydzio
0fdfd8bdcb
Configurable interface for game settings, change sound/music sliders
2023-01-29 16:49:47 +01: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
Andrey Filipenkov
08b04a3527
handle double-click in Town Portal dialog
2023-01-23 15:43:55 +03:00
Andrey Filipenkov
919c592e67
fix closing Buy Boat dialog with Escape button
2023-01-21 16:00:29 +03: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
05a1d7c6e3
All text for factions/towns/building are passed through translator
2023-01-20 15:18:36 +02:00
Ivan Savenko
d2b837b116
All creature-related texts go through translator
2023-01-20 15:18:36 +02:00
Ivan Savenko
fa6f7513e8
All heroes-related strings are passed through translator
2023-01-20 15:18:36 +02:00
Ivan Savenko
e22f6283c2
Secondary skills strings are now passed through translator
2023-01-20 15:18:36 +02:00
Ivan Savenko
0e8ee929df
Renamed CCursorHandler -> CursorHandler
2023-01-15 21:18:34 +02:00
Ivan Savenko
6ea7add4bb
Merge pull request #1394 from SoundSSGood/art-move-fix
...
Artifact movement refactoring
2023-01-15 17:29:36 +02:00
SoundSSGood
a0568823a9
swap contitutient
2023-01-11 13:17:33 +02:00
SoundSSGood
4005b48360
Regressions fixed
2023-01-08 23:31:12 +02:00
Ivan Savenko
c479504646
Formatting cleanup
2023-01-01 22:50:38 +02:00
Ivan Savenko
7c0d5666a0
Return string by copy to fix cases when string is constructed on stack
2023-01-01 20:55:43 +02:00
Ivan Savenko
bdb8e0ee5c
Introduced string identifiers for H3 texts, still WIP
2023-01-01 14:56:44 +02:00
Ivan Savenko
405b2976d5
Renamed getUpgradeInfo -> fillUpgradeInfo
2022-12-25 14:03:43 +02:00
Ivan Savenko
eb20a4b208
Merge remote-tracking branch 'vcmi/develop' into warnings_fix
2022-12-23 14:40:45 +02:00
Ivan Savenko
d29c9d6445
Fortify CLabel interface to prevent unchecked access
2022-12-19 22:04:50 +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
65802d958b
Integrated valid fixes from PR #1143
2022-12-07 18:13:54 +02:00
Ivan Savenko
a512e0d58f
Fixed ugly solid-white status bars in pregame, removed operator* from
...
CPicture
2022-11-29 17:07:21 +02:00
Ivan Savenko
7c4e04c1ec
Refactoring/cleanup of classes in CBattleAnimations.cpp
2022-11-28 16:02:46 +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
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
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
Andrii Danylchenko
6974d4ea53
Merge pull request #1130 from IvanSavenko/banned_skills_fix
...
Fixes #1096 - do not propose banned skills on levelup
2022-11-15 09:32:12 +02:00
Ivan Savenko
729357824b
Added common method for secondary skill availability checks
2022-11-14 19:08:49 +02:00
SoundSSGood
3142f32cbb
Fix for callback return. More code optimization
2022-11-11 01:28:04 +02:00
SoundSSGood
9647758812
Apply suggested changes next part
2022-11-10 23:24:41 +02:00
SoundSSGood
ad47a7573c
Code style. Typo. Code clean up.
2022-11-10 18:29:39 +02:00
SoundSSGood
ff63167553
warnings fixed
2022-11-07 18:31:22 +02:00
SoundSSGood
f72a3e3884
function ArtifactUtils::checkSpellbookIsNeeded for the artifacts like a Titan's thunder
2022-11-07 00:18:05 +02:00
SoundSSGood
d0895e30ef
callback functions and cleaning up unused code
2022-11-06 23:41:29 +02:00
Andrey Filipenkov
c9ae43abe8
highlight current resolution in the resolution selector in game options
2022-10-01 10:33:48 +03:00
Andrey Filipenkov
76b36b8951
iOS can use any resolution
2022-09-27 11:56:12 +03:00
Andrey Filipenkov
6e6bf1e77b
don't list resolutions larger than the current screen's in the game options
2022-09-27 11:56:12 +03:00
Andrey Filipenkov
f0b909f772
code improvement
2022-09-27 11:56:12 +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
2ce78ba8c9
fix operator precedence
2022-09-22 11:54:09 +03:00
Andrey Filipenkov
a320af837d
fix includes in client subdirectories
2022-09-18 17:43:40 +03:00
DjWarmonger
7ba271edf1
Rotation rebase2 ( #912 )
...
* Instead of [x][y][z] coordinates, map will be stored as [z][x][y].
* Nullkiller AI can get it too.
* Use boost::multi_array instead of nested vectors
* In MapHandler too
* Rotate foreach algorithms, too
* VCAI gets rotated, too
2022-09-18 17:39:10 +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
84948820b2
exchange window move single stacks buttons
2022-01-03 15:13:46 +02:00
Andrii Danylchenko
0fd13d2f3b
Change HD mod assets
2022-01-03 15:13:46 +02:00
Andrii Danylchenko
78efd09e2e
Refactor HD mod army exchange
2022-01-03 15:13:46 +02:00
Andrii Danylchenko
3c0935a5b9
Artifact exchange
2022-01-03 15:13:46 +02:00
Andrii Danylchenko
8fa0b30985
Army exchange implementation
2022-01-03 15:13:46 +02:00
Andrii Danylchenko
2ce73fd4e1
Army exchange implementation
2022-01-03 15:13:46 +02:00
Arseniy Lartsev
222a0e40c7
Added code to display some HD mod buttons in hero exchange window
2022-01-03 15:13:46 +02:00
Arseniy Lartsev
24d2d5b702
New layout for hero exchange dialog with HD mod features
2022-01-03 15:13:46 +02: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
Dmitry Orlov
d6a4767865
Mod system improvement: Patch 2
2020-10-25 01:04:34 +03:00
Dmitry Orlov
f4816b0824
Mod system improvement Part I : Special buildings should work in the modders towns
2020-10-07 12:35:11 +03: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
Dydzio
61ae6ce286
Remove useless and wrong recruit conditions
2019-06-01 20:29:49 +03:00
AlexVinS
614cde4a55
Fixed two memory leaks
2018-11-14 20:58:37 +03:00
Dydzio
22ce535a2a
Fix not responding statusbar
2018-10-29 14:12:07 +01: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
Raphnalor
0f00dbf8cf
Fix highlighting of a selected bonus for campaign. ( #432 )
2018-03-17 12:23:22 +08:00
Arseniy Shestakov
8bbe747e8e
Cleanup undef for min / max. NOMINMAX is already in Global.h
2018-02-11 05:42:49 +03:00
FeniksFire
a4f701014b
Quick Army Purhase in Town Screen
...
Mouse click on castle icon (it is now clickable) - quick recruit of all
available creatures.
2017-11-12 17:37:08 +01:00
Henning Koehler
abdca71828
skill names and descriptions are fully managed by CSkillHandler
2017-08-30 22:35:23 +12:00
Henning Koehler
0357a4fe3b
enabled config of skill descriptions
2017-08-26 10:08:06 +12:00
ArseniyShestakov
cb40c093f8
Avoid boost::optional assignment for Boost 1.64 compatibility ( #360 )
...
Two options here: to use emplace from 1.56 or boost::make_optional.
Unfortunately Ubuntu 14.04 is using 1.54 and I'd rather not to break it.
2017-08-05 16:09:29 +03:00
Arseniy Shestakov
6d9f99d4de
Code style: and one more pass on lambda expressions parameter list
2017-07-19 02:11:17 +03:00
Arseniy Shestakov
b540ab73ed
Code style: add empty parameters list to more lambda expressions
2017-07-19 01:39:38 +03:00
Arseniy Shestakov
2da3d8a563
Code style: remove senseless comments
2017-07-18 00:04:00 +03:00
ArseniyShestakov
b2f74a93cf
Code style: add empty parameter list to all lambda expressions ( #345 )
2017-07-17 15:35:57 +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
AlexVinS
dbaf3cb023
Cleanup & formatting
2017-07-04 01:32:40 +03:00
AlexVinS
a65befaa08
Moved town portal logic to mechanics class
2017-07-03 21:43:04 +03:00
AlexVinS
3d1a84875e
Queries refactoring
...
* Moved SUMMON_BOAT special case to mechanics
* Partially moved Town portal logic to mechanics class
* Added generic query reply to CCallback
* Redesigned Queries so that base API do not depends on CGameHandler
* Got rid of CGameHandler::castSpellRequest
* Removed CGameHandler::castSpell
* Added new Query type for town portal dialog (not used yet)
2017-07-03 21:43:04 +03:00
AlexVinS
a31c28ec33
Unified war machine mechanics.
...
* it is possible to define new war machines
* added warMachine field to artifact configuration
2017-06-06 19:18:26 +03:00
FeniksFire
3de891b4b4
Moving/dividing classes from BattleState to separate files.
2017-03-17 16:48:44 +01:00
AlexVinS
2dd6a47764
try to plug a few coverity false positives
2016-11-28 02:50:41 +03:00
AlexVinS
6196ae7fca
Fixed a few CWE-457
2016-11-27 19:00:16 +03:00
AlexVinS
8b6543bef2
Fixed CID 1366365, CID 1288839
2016-11-25 19:58:52 +03:00
AlexVinS
63cbf960df
cleaned up spell window creation
2016-10-16 09:27:22 +03:00