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

713 Commits

Author SHA1 Message Date
Vadim Markovtsev
2bfc8ec8cb Fix AI hero infinite move on the same tile 2016-01-19 13:14:05 +03:00
Zyx-2000
a50a702073 switched to -std=gnu++11 2016-01-18 17:49:07 +01:00
Zyx-2000
203b2dccc3 hopefully fixed things 2016-01-09 21:23:55 +01: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
Arseniy Shestakov
29a7934a99 Refactoring: avoid using namespace when it's not absolutely needed 2015-12-29 02:14:08 +03:00
Arseniy Shestakov
6f5c52a229 Refactoring: use cleaner CCreatureSet::stacksCount everywhere 2015-12-24 21:30:57 +03:00
DjWarmonger
a1f5a0a85c Removed unused code, which is not needed with new Pathfinder. 2015-12-24 11:28:14 +01:00
Ivan Savenko
a051a08a46 Merge remote-tracking branch 'origin/issue/2306' into develop 2015-12-18 22:21:11 +02:00
Vadim Markovtsev
0661aa0e6e Remove undefined behavior in requestActionASAP 2015-12-13 11:04:42 +03:00
ArseniyShestakov
ab92123da3 CPathfinder: improve support for visits and battles in teleports
Related movement code for client and AI is plumbed as well. Though at moment code still not finished because it's not teleport hero to the exit tile if he won battle.
2015-12-11 09:42:30 +03:00
ArseniyShestakov
975e049a3e SectorMap: disable knownSubterraneanGates support to avoid loops 2015-12-10 17:35:46 +03:00
ArseniyShestakov
5aadc1ed6f CasualtiesAfterBattle: dont remove catapult artifact. Fix 2346 issue 2015-12-10 13:31:03 +03:00
ArseniyShestakov
9e6f836b25 VCAI::pickBestArtifacts: don't try to move catapult between heroes 2015-12-09 18:49:22 +03:00
ArseniyShestakov
1c0d4e3f6f Fix filenames in file headers 2015-12-08 09:53:14 +03:00
ArseniyShestakov
07807fb044 Client: slience visibility error on shipyard in non-coastal town 2015-12-08 07:33:13 +03:00
ArseniyShestakov
cf4cb5c948 VCAI: silence callback on visibility check 2015-12-08 04:18:31 +03:00
ArseniyShestakov
03e9dd3bab Add hero gold cost to GameConstants 2015-12-07 00:13:58 +03:00
AlexVinS
0fab319c73 Merge remote-tracking branch 'remotes/origin/develop' into issue/2306
s reverts commit fa8a282696.

Conflicts:
	AI/VCAI/VCAI.cpp

Conflicts:
	AI/VCAI/VCAI.cpp
	client/windows/CAdvmapInterface.cpp
	lib/CPathfinder.cpp
	lib/CPathfinder.h
2015-12-05 12:56:12 +03:00
ArseniyShestakov
7708810148 VCAI: don't serialize destinationTeleportPos to avoid crash
This won't affect AI functionality except if game saved while AI moving through teleporters.
Serialization for some reason don't work properly and cause save loading to fail.
2015-12-05 08:08:02 +03:00
ArseniyShestakov
0a5e9c0fbe Merge pull request #144 from vcmi/fix/teleportMultiExitPoints
Support for exit selection between multiple teleport exit points
2015-12-05 03:12:17 +03:00
ArseniyShestakov
791d1e7ab4 VCAI: finish fixing of teleport probing for whirlpools 2015-12-04 05:30:43 +03:00
Ivan Savenko
faa7cbff18 Fixed gcc/clang warnings 2015-12-04 01:17:43 +02:00
ArseniyShestakov
3800bd45b7 Movement: initialize destinationTeleportPos with invalid int3 position 2015-12-04 01:54:25 +03:00
Ivan Savenko
c2f4991e99 Replaced barrier with mutex due to data races:
Destruction of barrier while one of the threads is still in barrier.wait() is illegal. This may happen if caller thread reaches wait() after helper thread and immediately return's from the function destroying barrier which is still in use by helper thread
2015-12-04 00:12:49 +02:00
Ivan Savenko
2e56b547ee replaced references to SectorMap with shared_ptr to avoid data races in AI code 2015-12-04 00:10:51 +02:00
Ivan Savenko
73b4188fab Fixed access to unitialized memory causing StupidAI to act stupid 2015-12-03 21:28:01 +02:00
ArseniyShestakov
ee08749743 VCAI: more work on teleport exit probing 2015-12-03 21:18:40 +03:00
ArseniyShestakov
2f9ca778b2 VCAI: add channel probing support for teleporters with multiple exits 2015-12-03 17:20:03 +03:00
Ivan Savenko
7189a12df2 removed few more includes from headers 2015-12-02 22:10:46 +02:00
Ivan Savenko
7b5a7f43ad Removed includes of CGameState from headers 2015-12-02 21:39:53 +02:00
Ivan Savenko
c3ce4b25df Removed all #include's of CMap.h from headers.
To all - please, avoid #include's in headers as much as possible
This kills incremental build compile times
2015-12-02 21:05:10 +02:00
ArseniyShestakov
eb9f29e368 VCAI: restoring teleport probing feature for updated mechanics 2015-12-02 19:26:24 +03:00
ArseniyShestakov
b5100bee94 Teleport: rework code to support exit point selection for whirlpools 2015-12-02 17:56:26 +03:00
ArseniyShestakov
f55bfe41d6 Digging: implement digging status on right click. Fix issue 401
This is also fix possibility to dig on some non-blockable objects like event.
2015-11-29 12:34:23 +03:00
ArseniyShestakov
f6de3f94ca Teleports: use TTeleportExitsList typedef for exits list
There is several ideas that teleportation code have to be shared between object/spells and this way we can avoid changing showTeleportDialog declaration every time.
2015-11-28 02:41:30 +03:00
ArseniyShestakov
2ef9d7c3ec Rename getCost back to getMovementCost
Initially wanter to name main class differently and back then getCost make sense.
Then renamed class to CPathfinderHelper, but forgot to rename function back.
2015-11-10 02:30:05 +03: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
5106738160 Merge branch 'develop' into feature/pathfinderLayers 2015-11-09 19:20:13 +03:00
ArseniyShestakov
866a0a1fc0 VCAI: little improvement for 2a59cb6191 2015-11-08 23:02:59 +03:00
ArseniyShestakov
ac12a0735e Plumbing on client and server to make flying actually work 2015-11-05 10:02:13 +03:00
ArseniyShestakov
4b64bec711 EPathfindingLayer: copy other code from ETerrainType for debugging 2015-11-02 13:25:01 +03:00
ArseniyShestakov
2b6e1498d2 Pathfinding: change argument order for getPath and AUTO layer as default
This still need investigation, but likely most of external code shouldn't be aware of layers in order to work properly because only LAND and SAIL can be targeted and single tile can't have both of these layers.
2015-11-02 11:14:32 +03:00
AlexVinS
d46364c4c3 Merge branch 'develop' into issue/2306
Need to reapply changes to pathfiner

Conflicts:
	AI/VCAI/VCAI.cpp
	lib/CGameState.cpp
	lib/CGameStateFwd.h
2015-11-01 01:49:57 +03:00
Vadim Markovtsev
fa8a282696 Fix pthread_mutex_lock abort() in requestActionASAP impl 2015-10-31 18:04:06 +03:00
DjWarmonger
1e36f3cecd Cache SectorMap where possible and update when necessary. 2015-10-26 16:38:17 +01:00
AlexVinS
c9e03405f2 fix a warning 2015-10-25 23:17:33 +03:00
AlexVinS
e8e484bbca Merge branch 'mutexRelax_fix' into develop 2015-10-25 22:35:19 +03:00
DjWarmonger
2a59cb6191 Fixed #2308 - AI didn't attack enemy heroes at all. 2015-10-25 11:55:50 +01:00
DjWarmonger
768b1ca289 More consitent code. 2015-10-25 11:16:43 +01:00
DjWarmonger
87f838f286 AI should poke inaccessible Quest Guards less often. 2015-10-25 08:39:03 +01:00
DjWarmonger
520e42bcd7 Fixed #2317 2015-10-25 08:21:15 +01:00
DjWarmonger
4e444abf66 Few more uses of cached visibleTiles. 2015-10-24 20:46:55 +02:00
DjWarmonger
a6ea0981b6 Merge branch 'develop' into mutexRelax 2015-10-24 18:30:43 +02:00
Alexander Shishkin
fca4deaad2 Merge pull request #122 from vmarkovtsev/feature/warnings
Fix warnings produced by recent Clang build
2015-10-14 07:28:47 +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
AlexVinS
a4d4851d80 Fix typo: casted->cast 2015-09-29 17:26:48 +03:00
DjWarmonger
e14faea181 Merge branch 'develop' of https://github.com/vcmi/vcmi into mutexRelax 2015-09-20 09:46:52 +02:00
AlexVinS
466ddb37b3 fix 1556 2015-09-14 18:38:41 +03:00
DjWarmonger
fe2a72f543 Minor optimization. 2015-08-31 10:08:50 +02:00
DjWarmonger
afe65d1264 Relaxed some locks in VCAI. 2015-08-31 09:18:24 +02:00
DjWarmonger
1c14dbf7b2 Cache SectorMaps to evaluate multiple goals -> huge performance boost 2015-08-31 08:25:33 +02:00
DjWarmonger
a3ce1521e5 Cache visible tiles within SectorMap for quicker access. 2015-08-31 07:39:03 +02:00
DjWarmonger
2012d53dd6 Fixed issues with exchanging combo artifacts (#2132). 2015-08-30 15:15:04 +02:00
DjWarmonger
6af8db2c69 Fixed logic discrepancy for (in)visible objects. Fixes #2224, #2225 and possibly more. 2015-08-30 09:14:54 +02:00
AlexVinS
782c8ec40b Changed windows minimum version back to winxp due to mingw bug
* will be changed back after newer mingw tests
2015-08-20 04:22:54 +03:00
AlexVinS
03a295f1a0 Added debug mingw64 build, minimum Windows version set to windows 7, SDL suffixes removed from Build Tagerts 2015-08-20 03:28:04 +03:00
DjWarmonger
2dfcead9ef - Updated MSVS project
- Updated changelog to 0.98c
2015-08-01 17:49:12 +02:00
AlexVinS
53b85d16be Cleanup C::B projects 2015-06-21 01:59:33 +03:00
DjWarmonger
f3c7774576 AiI will ignore winning conditions that require defeating his own objects. Fixes #2174 2015-04-13 18:45:43 +02:00
DjWarmonger
f7387becb4 Merge branch 'develop' of https://github.com/vcmi/vcmi into develop 2015-04-11 08:53:14 +02:00
DjWarmonger
3e8c395156 - More fixes for wander targets
- SectorMap won't find paths through the rock
2015-04-10 08:50:21 +02:00
Dmitry Marakasov
eab0b1e674 Fix build with clang 3.6
This is backported commit 509ccac9dd53932b158ee10b47e95d495deb3fd9
from fuzzylite
2015-04-09 13:18:33 +03:00
DjWarmonger
d32461d9d1 Complete solution for artifact equip & exchange. 2015-04-09 09:53:17 +02:00
DjWarmonger
b3f482b8a8 Restored artifact selection & exchange, work in progress. 2015-04-07 22:48:35 +02:00
DjWarmonger
264a0c4fe7 - Restored evaluation of wander targets at every step.
- First wander target will be sorted by distance (closest) as well.
2015-04-07 08:55:13 +02:00
DjWarmonger
2f588b548e Fixed one case when heroes exchanged armies until ran out of movement points. 2015-04-07 08:43:10 +02:00
DjWarmonger
6cfc89dc7c A number of fixes for wander / SectorMap. 2015-04-05 21:13:47 +02:00
DjWarmonger
a208afeee6 Removed new code, it was enough to fix the old one. 2015-03-30 16:54:32 +02:00
DjWarmonger
b2a75551c8 - Extensive use of SectorMap. AI will not eagerly pick guarded and blocked treasures.
- Fixed usage of boats, added Boat building as a part of Explore goal. This resolves #2151
2015-03-30 15:32:23 +02:00
DjWarmonger
299e9d5a0b Experiment - do not prioritize reserved objects during wandering to prevent running back and forth. 2015-03-30 10:07:37 +02:00
DjWarmonger
8820bc05a9 MSVS compiler doesn't allow default arguments for Lambdas. 2015-03-10 10:06:45 +01: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
11d4b4291c VCAI: always clear teleport channel probing list if we lost hero 2015-03-10 03:23:36 +03:00
ArseniyShestakov
431f3bd857 VCAI: use cannotFulfillGoalException instead of runtime_error 2015-03-09 17:09:34 +03:00
ArseniyShestakov
f7a999f0f3 VCAI: add destinationTeleport to serialization 2015-03-09 15:37:54 +03:00
ArseniyShestakov
8524bdbc25 VCAI: use copy_if instead of erase_if for teleport exit probing list 2015-03-09 03:24:39 +03:00
ArseniyShestakov
496338813c VCAI: explicitly check for teleportation between subterranean gates 2015-03-09 02:27:49 +03:00
ArseniyShestakov
8f8d237d5d Use isTeleportChannel callback functions to check teleport channel type 2015-03-09 02:13:40 +03:00
ArseniyShestakov
8d901ad4d0 VCAI Explore goal: fix switch formatting 2015-03-09 01:25:52 +03:00
ArseniyShestakov
f490ea1fcd VCAI Explore goal: remove useless check 2015-03-08 18:36:25 +03:00
ArseniyShestakov
afac28a2f5 VCAI little fix for typo in retreiveVisitableObjs 2015-03-08 17:56:59 +03:00
ArseniyShestakov
9ece636cf8 VCAI Explore goal: add monolith's exploration support
Explore will also suggest AI to re-enter bidirectional teleporter in case of one of it's exits is not visible for some reason.

Also now AI won't try to visit teleporters in case if it's know that it's channel is impassable. E.g if map have several entrance monoliths of with same same SubID that don't have exit then AI will only try to visit one of them and later of he'll know that all other monoliths of this subtype is blocked because they all using same channel.
2015-03-08 17:49:14 +03:00
ArseniyShestakov
12cf883740 VCAI: add all new movement code include teleports and transit support 2015-03-08 17:47:58 +03:00
ArseniyShestakov
665712c196 VCAI: add any newly found teleports to knownTeleportChannels
Now all new objects added to visitableObjs only using addVisitableObj so we can catch them for teleports handling.
I also simplified one of retreiveVisitableObjs functions because it's only used for inserting things into visitableObjs.
2015-03-08 17:38:09 +03:00
ArseniyShestakov
ab7ad4741a AIStatus: add teleport channel probing mode
When AI going through bidirectional teleport it's always getting list of all available exits.
If some of exits are invisible it's will attempt to visit each of them teleport probing begins.
2015-03-08 17:23:56 +03:00
ArseniyShestakov
25656aa586 Add showTeleportDialog everywhere except actual code for AI and player
Just like TeleportDialog it's based off showBlockingDialog, but as number of package is higher when possible showTeleportDialog will be after other dialogs handling code.
2015-03-08 16:52:50 +03:00
AlexVinS
f4c683cd5e Move VievXXX logic to server side (except expert ViewEarth) 2015-02-26 17:15:17 +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
ArseniyShestakov
ea46be03f3 AI: check if hero killed while visiting object he stayed on
This is need to avoid crashes like one happen in 2084, but then game bahaviour incorrect.
I'm not exactly sure if this possible currently, but I can imaging this would happen if hero decide to attack bank while staying on it.
2015-02-22 20:56:50 +03:00
DjWarmonger
60932d9ed0 AI won't ignore owned objects taken by enemies. 2015-01-24 21:38:22 +01:00