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

6835 Commits

Author SHA1 Message Date
Ivan Savenko
c85ea98519
Merge pull request #4019 from IvanSavenko/simturn_tweaks
[1.5.2] Simturn tweaks
2024-05-21 14:18:42 +03:00
Ivan Savenko
ffe14fc1fc
Merge pull request #4022 from vcmi/master
Merge master -> beta
2024-05-20 18:09:51 +03:00
Ivan Savenko
52840afb24 Try to detect corrupted mod earlier 2024-05-20 11:00:35 +00:00
Ivan Savenko
215b279ea8 Contact between allies will no longer break simturns 2024-05-19 20:18:14 +00:00
Ivan Savenko
10b50cd905 It is now possible to vote for simturns and turn timer changes 2024-05-19 18:31:32 +00:00
Ivan Savenko
6f6555d19c Downgrade fatal exception to disconnection message 2024-05-19 12:54:51 +00:00
Ivan Savenko
8931121d2e
Merge pull request #3995 from IvanSavenko/old_projects_remove
[1.6] Remove old project files
2024-05-19 15:44:32 +03:00
Ivan Savenko
d5f32c27b0
Merge pull request #3996 from IvanSavenko/retaliation_tweaks
[1.5.2] Retaliation preview tweaks
2024-05-19 15:44:16 +03:00
Ivan Savenko
692cbfb7e2
Merge pull request #3992 from IvanSavenko/mod_validation_fix
Tweaks to modding docs
2024-05-19 15:43:16 +03:00
Ivan Savenko
9bfe000724 Added semi-workaround method for network thread shutdown:
Currently closing game while network thread is waiting for something is
very bug-prone, since network thread may resume during shutdown and
access partially destroyed client state.

Now if exit has been requested, the very first step would be semi-
graceful shutdown of network thread (via exception throwing). This may
in theory skip some cleanup in non-RAII code, but since game is shutting
down this does not matters much.

This logic applies to:
- shutting down while network thread is waiting for dialogs
- shuttind down while network thread waiting for animations in combat
2024-05-18 11:04:10 +00:00
Ivan Savenko
0dfa781655 Add mutex as a quick fix for concurrent access to text handler by client
and server
2024-05-18 09:02:21 +00:00
Ivan Savenko
8754e0ebb3 Code formatting and cleanup 2024-05-17 17:10:29 +00:00
Ivan Savenko
f3de2cfe1c Removed broken & unused serialization of player interface and AI 2024-05-17 16:35:53 +00:00
Ivan Savenko
31349f3052 Fix handling of missing video files 2024-05-17 15:43:21 +00:00
Ivan Savenko
7461df161c lib now uses shared_ptr for entities. Removed manual memory management. 2024-05-17 15:04:05 +00:00
Ivan Savenko
0d427980bc Entities are now non-copyable 2024-05-17 14:47:09 +00:00
Ivan Savenko
69e33e406d Try to minimize dll linkage usage 2024-05-17 13:09:45 +00:00
Ivan Savenko
03054af949 Add description for serialization changes, fix CURRENT value 2024-05-17 13:09:08 +00:00
Ivan Savenko
a688bc6b69 Remove debug code 2024-05-17 13:08:41 +00:00
Ivan Savenko
7f9df2ef6f Tweaks to retaliation damage calculation:
- method now uses early returns to avoid deeply nested if's
- assume that retaliation damage is zero if target will die from attack
- account for BLOCKS_RETALIATION bonus when computing whether target
will retaliate
2024-05-17 12:23:51 +00:00
SoundSSGood
7abfa7b42a ArtifactPosition::TRANSITION_POS now is simple ArtSlotInfo 2024-05-17 14:59:51 +03:00
Ivan Savenko
eb67e04ccb Remove old and unmaintained codeblocks project 2024-05-17 10:44:57 +00:00
Ivan Savenko
3f6eb13ee0 Delete old and unmaintained msvc project files 2024-05-17 10:44:11 +00:00
Ivan Savenko
721b15d9de Merge branch 'vcmi/master' into 'vcmi/develop' 2024-05-17 08:26:37 +00:00
Ivan Savenko
07813c9a79 Removed non-functional updateEntity in VLC 2024-05-16 22:05:26 +00:00
Ivan Savenko
a0ad810033 Remove old code 2024-05-16 19:11:33 +00:00
Ivan Savenko
2ed355952c Added proper serialization for unordered_map 2024-05-16 19:03:04 +00:00
Ivan Savenko
42f7a48fa4 Simplified integer serialization code 2024-05-16 18:53:49 +00:00
Ivan Savenko
84bc6c42db Added 'Serializeable' base class for classes serializeable by pointer 2024-05-16 18:40:59 +00:00
Ivan Savenko
65f63e862c Tweaks to modding docs & error reporting based on discovered issues 2024-05-16 15:14:36 +00:00
Ivan Savenko
f309a4eb82 Exclude some AB creatures from randomization picks
This changes handling of several campaign-only creatures to be in line
with H3 - Sharpshooters, Enchanters and Azure/Rust/Faerie/Crystal
dragons.

Now these creatures will not be picked for
- random creatures in Refugee Camp
- as replacement for Random Monster object from map editor

Random map generator is not affected and can still pick this creatures
(confirmed to be same in H3)
2024-05-16 09:53:37 +00:00
Ivan Savenko
f963b827e9 Add more descriptive error messages 2024-05-16 08:03:06 +00:00
Ivan Savenko
cce3f1cb2d Implemented compact serialization of integer numbers 2024-05-15 19:50:01 +00:00
Ivan Savenko
87eac164e6 Implemented string deduplication for serializer
Every unique string will now be serialized only once.
Reduces save size by ~20%
2024-05-15 19:49:59 +00:00
Ivan Savenko
5b182c31df Add 'hasFeature' method for convenience 2024-05-15 19:49:34 +00:00
Ivan Savenko
7ad64207ed Prefer high-quality bik's to smk's 2024-05-15 17:05:17 +00:00
Ivan Savenko
1b1f724de1
Merge pull request #3970 from Laserlicht/extra
ExtraOptions improvements
2024-05-15 15:20:59 +03:00
Ivan Savenko
35954dc41b Simple workaround to fix vcmiserver shutdown procedure
At the moment, vcmilobby *requires* async writes in order to handle
multiple connections with different speeds and at optimal performance,
without hanging if one player is too slow and can't eat all data server
sent to him at once.

However server (and potentially - client) can not handle this mode and
may shutdown either socket or entire asio service too early, before all
writes are performed, leading to weird freeze on ending scenario where
client would not receive notifications about end of game.
2024-05-14 19:40:20 +00:00
Ivan Savenko
da9d82b697
Merge pull request #3973 from vcmi/master
Merge master -> beta
2024-05-14 16:59:10 +03:00
Ivan Savenko
00728ded88 Report more information on exception 2024-05-14 12:48:19 +00:00
Ivan Savenko
c92a5bbbab Attempt to track crashes with unclear cause 2024-05-14 09:44:40 +00:00
Ivan Savenko
bb5627e98c
Merge pull request #3954 from IvanSavenko/fix_compile
Fix compilation issues
2024-05-14 12:16:27 +03:00
Laserlicht
941c1576c5
improve extraoptions 2024-05-14 00:33:30 +02:00
Ivan Savenko
c786354af3 Add better crash message for zero-length battlefield list 2024-05-13 21:03:06 +00:00
Ivan Savenko
62b564650d Fix possibly hanging pointer to deleted CGObjectInstance
Was stored by CRemoveObjectOperation and accessed on destruction even
though it has been removed by the game
2024-05-13 16:19:14 +00:00
Ivan Savenko
93da58beed Do not use locks on single-threaded server.
Especially since this lock is global and is shared between client and
server for no reason
2024-05-13 15:42:33 +00:00
Ivan Savenko
95d761bbb8 Handle corrupted H3 data - show message box instead of silent crash 2024-05-13 15:41:47 +00:00
Ivan Savenko
93038b791e Fix connection termination handling 2024-05-13 14:09:59 +00:00
Ivan Savenko
58d1c93c1b
Merge pull request #3931 from IvanSavenko/retaliation_preview
[1.5.1] Retaliation preview
2024-05-13 14:40:00 +03:00
Ivan Savenko
6d08ec6323 More robust handling of connection errors
Fixes potentially hanging by heartbeat sockets
2024-05-12 19:13:17 +00:00
Ivan Savenko
62c2be160a Added changing thread name for FreeBSD 2024-05-12 15:10:29 +00:00
Ivan Savenko
06aab2ccbb
Merge pull request #3924 from vcmi/fix_road_routing
Route roads away from zone borders
2024-05-12 16:02:38 +03:00
Ivan Savenko
33fd18e828
Merge pull request #3938 from IvanSavenko/lobby_fixes
[1.5.1] Fixes for issues with lobby server
2024-05-12 10:13:00 +03:00
Ivan Savenko
9049fb738a
Merge pull request #3946 from dydzio0614/mana-vortex-hero-order
Fix "bonusing" town building visiting hero order
2024-05-11 21:58:23 +03:00
Ivan Savenko
0ce78cae06
Merge pull request #3926 from IvanSavenko/optimize_map_list_load
[1.5.1] Improve performance of parsing of map headers for map list
2024-05-11 21:56:58 +03:00
Dydzio
f20ef4f1b3 Fix hero order for giving bonuses in town to match H3. 2024-05-11 20:21:02 +02:00
Ivan Savenko
dae3569077 Fix build 2024-05-11 16:18:21 +00:00
Ivan Savenko
0403626c93 Fix excessive calls of steady_timer::async_wait 2024-05-11 16:10:07 +00:00
Ivan Savenko
67604e1e01 Reapply "Simple implementation of heartbeat package"
This reverts commit ede92c1a9c.
2024-05-11 16:10:08 +00:00
Ivan Savenko
4c3aac8f19 Use async_write to prevent locks if receiver is too slow 2024-05-11 16:09:03 +00:00
Ivan Savenko
147db10a28 Avoid crash if configs file is missing, e.g. broken version of mod 2024-05-11 13:19:07 +00:00
Ivan Savenko
1bc7c29111 Add workaround for visiting Altar of Sacrifice on 1.4 saves 2024-05-11 13:19:07 +00:00
Ivan Savenko
16f43254b5 Use async_resolve to avoid crash on resolve error 2024-05-11 13:19:07 +00:00
Ivan Savenko
31401e219f Fix possible crash on nullptr dereference 2024-05-11 13:19:07 +00:00
Ivan Savenko
ac4204f660 Fixed calculation of retaliation damage 2024-05-10 19:40:14 +00:00
Tomasz Zieliński
5a979e42e2 Satisfy SonarCloud 2024-05-10 21:14:15 +02:00
Tomasz Zieliński
ee27a79aa1 Sonarcloud issues 2024-05-10 17:07:09 +02:00
Ivan Savenko
3acc1f1845 Improve performance of parsing of map headers for map list 2024-05-10 14:30:39 +00:00
Tomasz Zieliński
21bb61fc4d Unused variable 2024-05-10 15:56:49 +02:00
Tomasz Zieliński
7cb17afe7a Fix diagonal paths if we need to use them 2024-05-10 15:53:54 +02:00
Ivan Savenko
2521557f68 Fixed some newly reported issues from SonarCloud 2024-05-10 13:40:24 +00:00
Tomasz Zieliński
a6fa6855dc Route roads away from zone borders 2024-05-10 15:35:33 +02:00
Ivan Savenko
2ddb41e654 Merge branch 'vcmi/master' into 'vcmi/develop' 2024-05-10 08:09:51 +00:00
Ivan Savenko
b4af84a3ce
Merge pull request #3911 from vcmi/penrose_cleanup
Clean up excessive operations and logs
2024-05-08 22:43:28 +03:00
Tomasz Zieliński
2297e09fcb Clean up excessive operations and logs 2024-05-08 15:51:42 +02:00
Ivan Savenko
718d42f0d6
Merge pull request #3910 from vcmi/center_penrose
Shift center of tiling to center of the map
2024-05-08 16:40:00 +03:00
Ivan Savenko
72703f89fe
Merge pull request #3909 from IvanSavenko/clean_rmg_crash
Disable 'catch everything' block in RMG in favor of clean crash
2024-05-08 16:39:52 +03:00
Tomasz Zieliński
37d062f1eb Fix incorrect comparison operator 2024-05-08 15:09:11 +02:00
Tomasz Zieliński
eece03d24f Fix for centering the tiles, extra logs 2024-05-08 13:16:26 +02:00
Tomasz Zieliński
ec20e9e907 Shift center of tiling to center of the map 2024-05-08 12:16:42 +02:00
Ivan Savenko
f5824ccea4 Re-throw exception on RMG failure to prevent weird crashes later 2024-05-08 09:55:34 +00:00
Ivan Savenko
8b861fc58f Do not check for guards when teleporting using means other than DD 2024-05-07 20:05:23 +00:00
Ivan Savenko
4769c86c82
Merge pull request #3902 from vcmi/underground_biomes
Option to define surface or underground level for obstacle set
2024-05-07 16:42:33 +03:00
Ivan Savenko
10a91cb1d8
Merge pull request #3901 from IvanSavenko/sonar_fix
[1.6] Fix some new issues reported by Sonar Cloud
2024-05-07 11:59:17 +03:00
Ivan Savenko
66e2e13ba1 Add few more safety checks to network connection logic 2024-05-07 08:34:47 +00:00
Ivan Savenko
ede92c1a9c Revert "Simple implementation of heartbeat package"
This reverts commit 5f344e410a.
2024-05-07 08:31:08 +00:00
Tomasz Zieliński
9763ea2ecb Style 2024-05-07 09:14:16 +02:00
DjWarmonger
4949b98ed3
Merge pull request #3759 from Laserlicht/bio
Let's try this
2024-05-07 09:05:14 +02:00
Tomasz Zieliński
dd55188b77 Option to define surface or underground level for obstacle set 2024-05-07 07:15:00 +02:00
Ivan Savenko
66f1f48d4c
Merge pull request #3867 from IvanSavenko/heartbeat
Simple implementation of heartbeat package
2024-05-06 22:35:58 +03:00
Ivan Savenko
30e0a16ee9 Fix some 'new' issues reported by Sonar Cloud 2024-05-06 15:33:30 +00:00
Andrii Danylchenko
157443c1df #3876 - allow to embark after battle for AI pathfinder 2024-05-05 13:52:57 +03:00
Ivan Savenko
6ac67775f5
Merge pull request #3861 from Laserlicht/pvp_options
Pvp options
2024-05-03 10:38:42 +03:00
Laserlicht
1f209fd94a use MetaString 2024-05-02 21:03:23 +02:00
Ivan Savenko
47c3e6f4b6 Simplified code 2024-05-02 17:53:36 +03:00
Ivan Savenko
08ce3a8338 Clarified code 2024-05-02 17:32:38 +03:00
Ivan Savenko
f6e5f09d50 Fix possible uninitialized variables 2024-05-02 17:32:27 +03:00
Laserlicht
812e96ebb1 Guest can also use & renaming 2024-05-01 15:58:22 +02:00
Tomasz Zieliński
20176521eb Actually revert this change, it's not better. 2024-05-01 15:27:19 +02:00
Tomasz Zieliński
4d13c3b94f Final fixes and tweaks 2024-05-01 13:58:24 +02:00
Tomasz Zieliński
186b6629c7 Do not hide roads behind objects 2024-05-01 12:15:07 +02:00
Tomasz Zieliński
d5b6e31223 Fix guard check 2024-05-01 11:38:44 +02:00
Tomasz Zieliński
5315beec8c Fixes for guard condition 2024-05-01 11:34:34 +02:00
Tomasz Zieliński
acab1d38cf Build fix 2024-05-01 10:45:01 +02:00
Tomasz Zieliński
7f3cf607a7 Allow guards not stronger than 1/3 max value next to roads 2024-05-01 10:24:21 +02:00
Tomasz Zieliński
67447acd0e First implementation that works 2024-05-01 09:16:10 +02:00
Tomasz Zieliński
4d948e8c6d Also, this 2024-05-01 07:58:47 +02:00
Tomasz Zieliński
9301bb9af5 Do not place guardes treasure on roads. Do not place guards next to roads. 2024-05-01 07:58:17 +02:00
Laserlicht
e505aab29a scrolling works 2024-05-01 00:49:33 +02:00
Ivan Savenko
5f344e410a Simple implementation of heartbeat package 2024-04-30 22:44:31 +03:00
Laserlicht
0565c062e5 Server functionality 2024-04-30 01:52:49 +02:00
Ivan Savenko
151075f088 Fix save compatibility with 1.4 that was broken by artifact costumes 2024-04-28 20:54:33 +03:00
Ivan Savenko
c74d728f5a
Merge pull request #3833 from SoundSSGood/artifacts-costumes
Artifacts costumes
2024-04-28 16:10:24 +03:00
SoundSSGood
0ac7108293
Update lib/CPlayerState.h
Co-authored-by: Ivan Savenko <saven.ivan@gmail.com>
2024-04-28 13:02:27 +02:00
Ivan Savenko
b0effdbbf4
Merge pull request #3836 from vcmi/unpropagate_bonus
Fixes issue of bonuses not correctly removed
2024-04-28 13:10:23 +03:00
SoundSSGood
ce68b3f45d class CArtifactsOfHeroMain : public CKeyShortcut 2024-04-27 21:35:38 +03:00
SoundSSGood
ce9d2d8ab8 Switching costume 2024-04-27 21:35:37 +03:00
SoundSSGood
25dea7e364 Saving costume 2024-04-27 21:35:37 +03:00
Laserlicht
ab50bf9198
biography to description 2024-04-27 18:41:21 +02:00
Andrii Danylchenko
39e19f79f4 Fix #3754, #2316 2024-04-27 13:57:50 +03:00
Tomasz Zieliński
914cea5877 Tweaks 2024-04-26 19:33:26 +02:00
Tomasz Zieliński
04691c851f Fixes issue of bonuses not correctly removed 2024-04-26 19:22:20 +02:00
Ivan Savenko
5010344df0 Added serialization of turn timer handler 2024-04-26 13:16:02 +03:00
Ivan Savenko
75aae66858 Fix off-by-one error - turnLimit 1 should work after 1st turn, not 2nd 2024-04-26 12:44:42 +03:00
Ivan Savenko
01c2814d35
Merge pull request #3821 from SoundSSGood/CWindowWithArtifacts-refactoring
CWindowWithArtifacts refactoring
2024-04-26 11:58:38 +03:00
Ivan Savenko
6413747fff
Merge pull request #3828 from IvanSavenko/fix_rewardable
Fix crash on visiting misconfigured rewardable object
2024-04-26 11:58:27 +03:00
Ivan Savenko
1dc962804e Fixed possible crash on having selectable reward with no visual image 2024-04-25 14:04:45 +03:00
Ivan Savenko
428c88d8c1
Merge pull request #3776 from IvanSavenko/lobby_room_compatibility_check
Check for game version and mods compatibility in lobby
2024-04-25 11:46:40 +03:00
Ivan Savenko
7f732b6d0a Fix thrown exception on random monster initialization 2024-04-24 22:57:13 +03:00
SoundSSGood
20471c9c2f virtual CWindowObject 2024-04-23 18:58:41 +03:00
Ivan Savenko
3e23a55c66 Fix build 2024-04-23 17:15:59 +03:00
Ivan Savenko
526ac9807b Enabled 'keepalive' option to detect dead connections 2024-04-23 17:15:59 +03:00
Ivan Savenko
1840666327 Implemented join room dialog 2024-04-23 17:15:59 +03:00
Ivan Savenko
e5f8cefa7f Store and send mod list and game version for game rooms 2024-04-23 17:15:59 +03:00
Ivan Savenko
6ba6e0d55b Moved serialization of ModCompatibilityInfo from MapFormat 2024-04-23 17:15:59 +03:00
Ivan Savenko
62d15ed23c
Merge pull request #3820 from IvanSavenko/bugfixing
Bugfixing
2024-04-23 13:03:36 +03:00
Ivan Savenko
5454d01316 Provide more information in thrown exceptions for unfixed crashes 2024-04-22 16:40:43 +03:00
Ivan Savenko
a6dead7725 Fixed loading of text strings for hota quests 2024-04-22 13:49:17 +03:00
Ivan Savenko
ffec4b9154 Explicitly ban 'large' dwellings from random selection
Old code was relying on specific sorting order leading to easy to break
logic
2024-04-22 12:35:55 +03:00
Ivan Savenko
438ec08d72 AI will only ignore garrisons in 'Steadwick Fall' mission (H3 logic) 2024-04-22 11:14:58 +03:00
Ivan Savenko
21dff9413e
Merge pull request #3786 from IvanSavenko/instant_movement
Instant movement
2024-04-22 11:08:00 +03:00
Ivan Savenko
55756dbc43
Merge pull request #3785 from dydzio0614/bank-revisit-fix
Empty treasure bank does not ask for enter anymore
2024-04-22 11:06:58 +03:00
Ivan Savenko
1b469036a3
Merge pull request #3784 from dydzio0614/quick-dwellings-visit
Add handling for yes/no dialogs that can be safely skipped by player
2024-04-22 11:06:40 +03:00
Andrii Danylchenko
ae69311023 #3788 - fix passing wirlpool with only commander alive 2024-04-20 15:28:57 +03:00
Ivan Savenko
d5a2ad1be8 Allow sending requests to move across multiple tiles at once 2024-04-20 12:28:50 +03:00
Ivan Savenko
9353e24fa5
Merge pull request #3792 from IvanSavenko/bugfixing
Fixes for minor issues
2024-04-19 12:35:25 +03:00
Ivan Savenko
d8baa3c145
Merge pull request #3789 from dydzio0614/fix-sounds
Fix some missing/redundant sounds to match H3
2024-04-18 21:34:53 +03:00
Ivan Savenko
16b73bccba
Merge pull request #3787 from kdmcser/damage_crash_fix
Fix creature min damage greater than max will cause game crash. #3780
2024-04-18 21:34:12 +03:00
Ivan Savenko
c87e60740b Fixes hota prisons replacing every h3 prison on h3m maps 2024-04-18 19:13:32 +03:00
Ivan Savenko
6af2609e0f Do not write mods that do not affect gameplay to saved games 2024-04-18 19:13:02 +03:00