Arseniy Shestakov
d06d07a39b
Add ChangeFormation netpack to avoid MP desyncs
...
Previous code was working fine for single client, but would cause desync in multiplayer. Fix issue 2460.
2016-09-08 19:29:15 +03:00
Arseniy Shestakov
113bd1b9ea
CCallback::recruitCreatures: add refugee camp exception. Fix issue 2426
2016-03-13 09:02:08 +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
Arseniy Shestakov
9fd1cff090
Refactoring: always use std prefix for shared_ptr, unique_ptr and make_shared
...
Long time ago it's was used without prefix to make future switch from boost to std version easier.
I discusses this with Ivan and decide to drop these using from Global.h now.
This change wouldn't break anything because there was already code with prefix for each of three cases.
2015-12-29 05:43:33 +03:00
Ivan Savenko
7b5a7f43ad
Removed includes of CGameState from headers
2015-12-02 21:39:53 +02:00
ArseniyShestakov
b2e1ee5363
CGameState: move two pathfinding-related functions to CPathfinderHelper
...
Both getMovementCost and getNeighbours have nothing to do with gamestate.
2015-11-10 02:15:27 +03:00
ArseniyShestakov
fc6f62e633
getMovementCost: get rid of useless flying parameter
2015-10-19 07:27:00 +03:00
Rohit Nirmal
aa00fdbd0e
Fix building with Boost 1.58.
2015-05-06 19:16:51 -05:00
DjWarmonger
ec879046ca
Merge pull request #93 from ArseniyShestakov/feature/pathfindingTeleports
...
Okay let's do this!
2015-03-10 09:04:25 +01:00
ArseniyShestakov
21aaad6972
MoveHero: add transit movement option
...
Transit is new option for hero movement. If it passed for movement then hero can get get on tile without visiting of object on it.
Currently it's will be only allowed is object under destination is teleport.
2015-03-08 17:04:09 +03:00
AlexVinS
685deddac1
Start spell-relatet files reorganisation
...
* moved existing files to separate directory
-> todo: split mechanics
2015-02-26 08:39:48 +03:00
Ivan Savenko
aa0433228a
Fixed cheats - sendMesssage will also pass current object.
...
Workaround-ish but should work. Branch should be fixed now.
2014-09-21 20:35:53 +03:00
Ivan Savenko
6c0c03d74b
Refactoing of pathfinder <-> client/AI interaction to remove dependency on selected hero
...
- finished removal of server-side setSelection
- disabled some broken code (AI & cheats). TODO: fix
2014-09-21 16:42:08 +03:00
Ivan Savenko
78709e223b
Breaking things - trying to remove server-side knowledge of selected objects
2014-09-19 00:18:49 +03:00
Ivan Savenko
b2e8c92383
Cleanup:
...
- removed commented-out #includ'es
- renamed some files to match name of class
2014-06-05 20:26:50 +03:00
Ivan Savenko
652ceb2bde
Finally shattered CObjectHandler.cpp into tiny bits
...
- This file is now split into multiple smaller files in mapObjects
directory
- CObjectHandler itself now contains only core classes (Handler itself,
CGObject and interfaces)
- Cleaned up excessive #include's through whole project
2014-06-05 19:52:14 +03:00
Ivan Savenko
0afdfa529c
Moved all object-related files to lib/mapObjects directory.
...
Renamed some classes to more readable names
2014-06-05 14:19:47 +03:00
Ivan Savenko
7f276185bd
Moving files:
...
- new config for objects (config/objects/generic.json)
- renamed lib/CDefObjectHandler to lib/CObjectClassesHandler
2014-05-24 02:07:54 +03:00
DjWarmonger
30b79588db
- Moved gameState::guardingCreaturePosition() to CMap so it doesn't need to be recalculated many times for every player.
...
- Some optimizations with local cb pinter in VCAI.
2014-04-01 11:53:28 +00:00
DjWarmonger
a64df5718f
Some nontrivial optimizations based on profiling results:
...
- Movement bonuses will be calculated ONCE per pathfinder loop
- Goals will be sorted by hero to reduce number of calculatePaths calls
2014-03-31 14:26:09 +00:00
Michał W. Urbańczyk
f5d945d1b2
Fixed #1679 .
2014-03-01 12:23:33 +00:00
DjWarmonger
b368e565ab
- fixed #1714
...
- Performance improvements, refactoring
2014-02-15 19:39:03 +00:00
DjWarmonger
a9b10c8099
- Changed aggregation method so now fuzzy engine takes all the factors into consideration
...
- Heroes now will use real path cost and their movement, which has numerous advantages:
* Actual movement cost is taken into consideration
* Groups of heroes will keep order
* Fastest heroes will be used for exploration first
2014-02-07 08:23:31 +00:00
Michał W. Urbańczyk
ac5e3be435
Experiment for #1679 .
2014-02-01 21:34:14 +00:00
beegee1
68bdf71db6
- Fixed GCC compiler warnings
...
- Implemented move heroes to next scenario partially
2013-12-20 13:07:58 +00:00
DjWarmonger
d085f8eee8
First implementation of fuzzy logic in VisitTile goal.
2013-12-20 09:43:12 +00:00
beegee1
2d095cf20a
- Fixed days without castle counter
...
- Fixed 'you have only 0 days...' message
- Checks victory/loss conditions every player turn instead of every day
- Fixed mantis #1463
2013-12-06 19:44:11 +00:00
Ivan Savenko
6ec96b50d7
- compile fix
2013-09-02 13:24:32 +00:00
Michał W. Urbańczyk
385f4ab7f5
#1153 and #1395 should be fixed. Terrible, terrible, terrible.
...
Fixed crash in battles, when attempted to access <0 screen coordinates.
2013-09-01 22:55:57 +00:00
Ivan Savenko
2b45e13c5c
c++03 -> c++11 switch:
...
- use std versions of function, bind and ref
- OVERRIDE -> override
- NULL -> nullptr
- use std versions of random distributions
NOTE: this may be last revision that supports gcc-4.5
2013-06-26 11:18:27 +00:00
Michał W. Urbańczyk
17403b544c
Various fixes for quick combat.
...
Replaced several boost::bind usages with lambdas.
2013-06-23 16:09:15 +00:00
Michał W. Urbańczyk
4a0587d500
More work on auto-fight.
...
Dynamic libraries return smart-pointers to what they create.
2013-06-22 21:47:51 +00:00
Michał W. Urbańczyk
2be2143844
Game interfaces can register another interfaces to receive info on game events.
2013-06-22 18:22:44 +00:00
Michał W. Urbańczyk
79026bdfde
Introduced strongly typed QueryID.
...
Exchange between heroes is now a proper first-class query. Fixes #1269 . #66 should also be finally fully fixed.
VC projects: /Zm flag to fix compilation issues with recent Boost.
2013-05-27 10:53:28 +00:00
beegee1
c7c2686379
- Integrated the logging API into the client and the lib - Remove some more comments and switched to /// style - Fixed recursive locks - Added Global.h to CMakeLists(now visible in qt-creator) - Removed usage of shared_mutex - Added unique_ptr to CLogger targets
2013-04-09 14:31:36 +00:00
beegee1
ee51c5beb5
- Renamed /lib subfolders to lowercase
2013-04-07 10:48:07 +00:00
mateuszb
dbec99ffc7
* PlayerColor and TeamID refactoring
2013-03-03 17:06:03 +00:00
Ivan Savenko
74ac44662c
- a bit less memory usage during compilation with gcc, new file - RegisterTypes.cpp
...
- fixed several issues related to visiting town by ally
- fixed #1215
2013-02-23 12:22:23 +00:00
Michał W. Urbańczyk
01e563b579
#1211 won't crash.
2013-02-21 02:25:44 +00:00
Michał W. Urbańczyk
d45a554fec
Significant changes to saving system. Now both client and server store their lib part.
...
Desync detection upon loading. Fixed many desyncs. (more remain)
Monsters won't have creature count 0 even if that is set as creature properties.
2013-02-18 22:37:22 +00:00
mateuszb
560315bc48
* SlotID refactoring
2013-02-16 14:03:47 +00:00
mateuszb
9e00090c42
* refactoring, a few intriguing problems remain
2013-02-13 23:55:42 +00:00
mateuszb
bda766b697
* refactoring
2013-02-12 19:49:40 +00:00
alexvins
506d54478f
[mingw] finally fix broken compilation after rev 3183
2013-02-12 15:46:43 +00:00
mateuszb
8a8eecd063
* refactoring
2013-02-11 19:11:34 +00:00
mateuszb
d540723739
* refactoring
2013-02-11 14:42:09 +00:00
mateuszb
86dc9386d6
* refactoring, including a generic solution for IDs
2013-02-10 23:24:57 +00:00
Michał W. Urbańczyk
e31f5062f9
Fixed crashes when VCAI cannot find hero to recruit.
...
Bumped format version.
2013-02-09 17:37:38 +00:00
mateuszb
f1c78e3260
* creature ID refactoring
...
* double week creatures are configurable now
2013-02-07 17:34:50 +00:00
mateuszb
af5287c193
* fixed opening custom campaign selection window
...
* artifact positions refactored
* vstd::advance allows moving between enum values
2013-02-06 23:24:43 +00:00
mateuszb
bda92a4a73
* refactoring
...
* fixed bug 1143
* some work on campaigns
2013-02-05 18:48:46 +00:00
mateuszb
25663ce7af
* fixed vector<bool> serialization
...
* refactoring
2013-02-04 19:43:16 +00:00
mateuszb
8769f67c5d
* JsonReader can convert to enums
...
* refactoring
2013-02-03 21:05:44 +00:00
alexvins
4bc2fd5519
[c::b] renamed map subfolder to workaround dependency tracking bug
2013-01-03 12:19:20 +00:00
beegee1
a878f5f79a
* Separated map loading from the map object * Moved map classes to lib/Map * Renamed map.h/cpp to CMap.h/cpp * Profiling of map loading is now optional * Updated CMemoryStream
2012-11-03 13:30:47 +00:00
mateuszb
6a81c8b1af
* campaign against magic numbers
...
* ArtifactID was misleading and wrongly used in one place -- renamed and fixed
* minor changes
2012-09-23 18:01:04 +00:00
Ivan Savenko
0ca9f64573
Next part of town configuration:
...
- town screen is mostly implemented, has some minor issues
- factions are now separate from towns, neutrals have faction with id=9
- more constants to GameConstants: town-specific buildings, strings for terrains and resources
- replaced most access to builtBuildings with isBuilt() method
- replaced id's with enums for town subtype and buildings id's
2012-09-05 12:49:23 +00:00
Michał W. Urbańczyk
edccbd4809
Rewritten many parts of query handling. Fixed several scenarios leading to a hang (including #1012 ). Purged boost::function from player interface (handy but impossible to serialize). VCAI will keep description for each unanswered query, so the further debugging will be easier.
2012-07-15 15:34:00 +00:00
Michał W. Urbańczyk
722ec55384
Redid stack artifacts. Broken save compatibility. Added serializer support for boost::variant and sending CStackInstace* over network by implicitly passing IDs. Moved seeds and checksum to StartInfo. Various minor changes.
2012-04-14 02:20:22 +00:00
Michał W. Urbańczyk
7317e803db
Locking pim mutex in client pack handling method, instead of dozens playerint call-ins. GUI won't try updating in between gamestate change and call-ins about it. Should fix #912 .
...
Minor changes.
2012-04-06 15:02:15 +00:00
Michał W. Urbańczyk
13f26fc3cb
* Client is able to await for answers for multiple queries at the same time
...
* Hackish solution allowing AI undertaking actions from event-handling thread
* Fixed crash when death stare or acid breath activated on stack that was just killed
* minor fixes
2012-03-25 22:46:14 +00:00
Michał W. Urbańczyk
76eb0ed429
Rewritten VCAI::pickBestCreatures. Should fix the compilation error ( http://forum.vcmi.eu/viewtopic.php?p=6605#6605 ).
2012-03-11 01:26:11 +00:00
Michał W. Urbańczyk
d0e259864e
* Replaced boost::shared_ptr with std::shared_ptr.
...
* Brought shared_ptr and unique_ptr and their factories (make_shared, make_unique) to the global scope.
* Removed excessive usage of shared_ptr in bonus system interface.
* Fixed bonus system limiters/caching interactions. That covers #823 , #859 and a number of rare edge-cases.
* Implemented multiple-step limiters applying, fixing hasAnotherBonusLimiter and allowing transitional dependencies between bonuses.
* Bonus system should be slightly faster, since we cache limited bonuses. Some rare usages (limiting query against a foreign node) however can't use caching.
2012-03-06 16:59:55 +00:00
Ivan Savenko
9ce3c78387
- fix for compilation with gcc-4.5
...
- fix for #881
2012-02-28 11:26:08 +00:00
Michał W. Urbańczyk
b54489ecb7
Fixed #873 and #877 .
2012-02-26 18:31:59 +00:00
Michał W. Urbańczyk
e4dc00abac
* new file lib/UnlockGuard.h — unlock_guard is for unlocking a mutex for the scope time (RAII)
...
* all lock/unlock and unlock/lock pairs are done by RAII guards now
* fixed two possible crashes at the end of battle when last stack was killed by spell. That should fix #749 and #752 .
* fixed a very nasty race condition, eliminating possible deadlock at the start of battle when human hero has tactics
* fixed #422
2012-02-19 21:03:43 +00:00
Michał W. Urbańczyk
1abf089bc7
Missed fixed for #858 (TortoiseSVN tricked me...)
...
Fixed #852 .
2012-02-16 21:46:28 +00:00
DjWarmonger
2bddf29cbf
Stack artifacts part 2, not working yet.
2012-02-04 16:34:29 +00:00
DjWarmonger
b8a5d0d430
Stack artifacts - part 1
2012-01-30 16:07:52 +00:00
Michał W. Urbańczyk
046e54563c
* fixed project files for RD configuration
...
* fixed crash when creature is casting Hypnosis (ie. exped Vampire Lords)
* fixed crash when creature is casting Cure before attack (ie. exped Unicorns)
* fixed crash when creature is summoning elemental (TODO fix it)
* fixed crash when doing a bonus system operation with a hero liberated from prison (ie. entering town or battle)
* fixed deadlock when StupidAI tried to assault the turrets
* fixed never ending siege when StupidAI has to use catapult (no more deadlocks on AI-AI siege)
* fixed deadlock when a hero received a level during another player's turn (ie. when he successfully defended)
* AI can win the game by defeating all enemies if there is a specific victory condition applying only to human players
* added options to help testing adventure map AI (--onlyAI, --autoSkip and --oneGoodAI).
* many minor changes
2012-01-03 01:55:26 +00:00
beegee1
7f04ed990b
Major refactoring. First part: BattleInterface
...
Introduction of pre compiled headers,...
2011-12-13 21:23:17 +00:00
Michał W. Urbańczyk
8b7a2f179c
* Server will strictly require answering the queries before taking any actions. Let me know, if this causes any freezes.
...
* Fixed crash on new week after we lost battle with neutral monster but killed the top stack (merging failed then).
* minor changes
2011-09-06 06:00:32 +00:00
Michał W. Urbańczyk
6b9e64de91
Lazy updates of hero paths.
2011-09-03 02:54:33 +00:00
Michał W. Urbańczyk
4c3ed24fe1
Fixed #768 . More logging for #774 .
...
Fixed crash on town time event (-1 and -2 "structures" present on buildings list).
2011-08-25 20:02:38 +00:00
Michał W. Urbańczyk
3152e6d540
Fixed #771 , #772 and #787 .
...
Some minor changes and fixes.
2011-08-25 15:24:37 +00:00
Michał W. Urbańczyk
79f5b29196
Various player/AI interface related fixes and improvements.
2011-07-17 18:49:05 +00:00
Michał W. Urbańczyk
ed056cf0df
Set of minor improvements and fixes.
2011-07-05 19:05:41 +00:00
Michał W. Urbańczyk
b3234e8bfa
* CGameInterface.h/.cpp moved from client project to lib (and, appropriately, to lib subfolder).
...
* New files in lib: ResourceSet.h/.cpp -> containing new structure for managing resources logic
* Minor changes and fixes
2011-07-05 06:14:07 +00:00
Michał W. Urbańczyk
212bc13ad6
Fixed #755 and #759 .
2011-06-25 14:22:19 +00:00
Michał W. Urbańczyk
2d61fab7e9
* Probably fixed #655 .
...
* Fixed #736 , #737 .
* Fixed crash on loss/victory.
* Fixed crash on loading some AB maps.
* Fixed crash on loading map where victory/loss condition objective hero was placed inside the town.
* Fixed crash on loading map when neutral Dungeon has built Portal of Summoning.
* Mutex protecting GS will be used to prevent changes in GS when GUI might read it.
* Little more securities around moving hero and ending turn, still needed more.
2011-05-29 23:49:25 +00:00
Michał W. Urbańczyk
b4144dc616
Callback jugglery, part 1.
...
Fixed #252 .
2011-05-03 03:14:18 +00:00
Michał W. Urbańczyk
a461326380
Fixed #634 and #703 .
2011-03-12 22:29:19 +00:00
Michał W. Urbańczyk
7dbf105f6e
Surrendering and related artifacts (Statesman's Medal,
...
Diplomat's Ring, Ambassador's Sash).
2011-03-05 16:38:22 +00:00
Michał W. Urbańczyk
23d0221611
One more fix for 0.83c build.
2011-02-27 21:05:53 +00:00
mateuszb
1dd05788c9
* fixed #53
2011-02-26 17:32:56 +00:00
Michał W. Urbańczyk
236345e61d
Fixed #674 , #675 , #676 , #677 .
2011-02-25 17:57:30 +00:00
mateuszb
ab4418917a
* artillery skill fixed
2011-02-24 15:33:03 +00:00
Michał W. Urbańczyk
cab8f9e11d
AI for neutral creatures and battles and player AIs can be different. StupidAI will handle neutrals by default.
...
Fixes for issues with deserialization and handling Tactics secondary skill.
2011-02-23 03:57:45 +00:00
mateuszb
6db7f1d610
* minor improvements in spell immunity handling
2011-02-22 13:44:34 +00:00
mateuszb
519a4186de
* fixed bugs 470 and 523
...
* minor improvements
2011-02-20 18:32:39 +00:00
mateuszb
4e631fc530
* fix for bug 573
...
* minor changes
2011-02-15 19:54:55 +00:00
Michał W. Urbańczyk
2f9ed138f6
Tactics more or less working (some improvements still needed, as proper updating battle GUI).
2011-02-14 20:31:53 +00:00
mateuszb
fcdc3f0bdd
Various changes, including exprank limiter and development towards Tactics secondary skill support.
2011-02-12 16:12:48 +00:00
mateuszb
d630d88ac1
* some work towards fix of 537
...
* 338 seems to be fixed
2011-02-10 14:44:21 +00:00
mateuszb
56ec829049
* minor refactoring
...
* minor improvements in battle interface
2011-01-09 17:41:46 +00:00
Michał W. Urbańczyk
a53ec23556
Stupid AI is capable of winning / losing battle.
2011-01-08 18:33:40 +00:00
mateuszb
957f1764d7
* some progress in StupidAI
...
* refactoring of battle handling
WARNING: strange crash on entering battle
2011-01-07 10:48:31 +00:00
mateuszb
b3fd14b524
* splitted CGameState into general game state and battle game state
...
* added missing fields to serialize in CHero
2010-12-25 19:23:30 +00:00
Michał W. Urbańczyk
2cf6729eee
Towards duel support.
2010-12-25 01:43:40 +00:00
mateuszb
6383c9a013
* more extensive usage of CStack pointers instead of stack IDs
2010-12-24 21:44:48 +00:00