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
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
afac28a2f5
VCAI little fix for typo in retreiveVisitableObjs
2015-03-08 17:56:59 +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
AlexVinS
f4c683cd5e
Move VievXXX logic to server side (except expert ViewEarth)
2015-02-26 17:15:17 +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
AlexVinS
3bca68fd2d
Initial refactoring
...
* reduce registerTypes* templtates instantiation
2014-12-21 17:29:42 +03:00
DjWarmonger
95e442898e
Fixed #1900
2014-10-01 13:26:04 +02:00
Ivan Savenko
33c0e24940
Fixes 1895 - Properly select upper army for recruitment
2014-09-23 14:28:55 +03:00
Ivan Savenko
b67618ab53
First batch of AI fixes:
...
- wiped not actually used set/get selection
- replaced isReachable with VCAI::isAccessible
2014-09-21 17:03:20 +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
1157111fcf
More bugfixing:
...
- Fixed compile in VCAI (precompiled headers should not include VCMI headers)
- Fixed crash on visiting observatories, including shroud of darkness
2014-06-29 17:23:06 +03:00
Haryaalcar
88122ee253
another build fix:
...
Undefined symbols for architecture x86_64:
"operator<<(std::__1::basic_ostream<char, std::__1::char_traits<char> >&, EVictoryLossCheckResult const&)
2014-06-26 02:19:10 +03:00
Ivan Savenko
32240da34e
Reduced number of #include's in headers. May break compilation on Win
...
since some net packs now need DLL_LINKAGE
2014-06-25 17:11:07 +03:00
Ivan Savenko
a0689fa377
Refactoring of hoverText from objects:
...
- removed hoverText field
- split getHoverText() method into 3:
- - getObjectName() for generic name
- - getHoverText(Player) for player-specific text
- - getHoverText(Hero) for hero-specific strings
2014-06-24 20:39:47 +03:00
DjWarmonger
3ac306f501
Merge pull request #19 from vcmi/feature/mapObjects
...
Feature/map objects
2014-06-22 14:49:42 +02:00
Haryaalcar
2ee139977f
crash in VCAI::completeGoal() fixed
2014-06-09 11:24:17 +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
32b6568b65
Merged changes from upstream and fixed compilation caused by API changes
2014-06-03 22:45:18 +03:00
DjWarmonger
aee748d8d6
- Added monoliths between remote zones
...
- Fixed land connections between zones, now they're generated correctly.
2014-06-01 12:02:43 +02:00
Ivan Savenko
1d17d60449
gcc update:
...
- removed support for 4.6
- compilation fixes for 4.7
2014-05-29 13:42:05 +03:00
DjWarmonger
6658e173f1
- Possible fix for #1769
...
- Fixed all possible (even unexpected) crashes when AI looses active hero
2014-05-18 13:13:31 +02:00
Macron1Robot
21c2efbc64
Update VCAI.cpp
...
Deleted commented text and optimized estimateIncome
2014-04-28 10:33:42 +04:00
Macron1Robot
ede9818b38
Update VCAI.cpp
...
corrected typo
2014-04-28 08:26:21 +04:00
Macron1Robot
8ec7a9b919
Moved "max heroes on map per player", "max heroes available for player" to "defaultMods.json"
2014-04-27 10:43:46 +04:00
Macron1Robot
907caedb13
Added "produce" section in "building" structure. Changed dailyIncome.
2014-04-26 18:23:35 +04:00
Macron1Robot
b7b890acff
Added "tavernVideo","guildBackground" to "faction" JSON config and schema. If "primaryResource" is set to "gold", silo will generate 500 gold per day
2014-04-24 23:36:18 +04:00
Ivan Savenko
43ba3d30ea
Breaking things - first commit towards configurable object(s).
...
- New files: lib/CObjectWithReward.h/cpp
- Classes that will be replaced by configurable object are now in this
fil
Status: far from functional, currently at "it compiles" point, some
essential pieces are still missing.
2014-04-06 23:14:26 +03:00
DjWarmonger
2da3d7d7c3
Removed AI bottleneck on water-based maps.
2014-04-03 09:57:44 +00: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
DjWarmonger
8683c8c0eb
- Added and improved some propagators, including Crystal Dragons ability ( #1232 )
...
- Minor refactoring in AI
2014-03-29 21:39:19 +00:00
Ivan Savenko
771c1ce255
- some effords to get rid of bottlenecks in AI code
...
- fixes, probably partially #1577
- enabled code for reading map object templates from json, still not
used
- disabled PCH for launcher due to speed issues.
2014-03-23 16:36:16 +00:00
DjWarmonger
441e4b2cb2
Improvements for AI speed ( #1760 )
...
AI heroes will be excluded from exploration if:
- There is no clear way to next exploration point or
- There is no possible exploration point at all
AI heroes will be erased from the list above if:
- FoW changes
- New object is added
- To prevent lock, primary hero will be erased at the start of each turn
2014-03-23 16:00:43 +00:00
Ivan Savenko
9c0df68cb8
Fixing spelling mistakes. Patch from josch, fixes #1759
2014-03-23 12:59:03 +00:00
beegee1
fe1b16a7ec
Some preparation towards mantis #1743 :
...
- refactored CRandomGenerator (added util methods, improved method names)
- usages of std::minstd_ran are replaced by CRandomGenerator (not in entire code base, C rand() usages are still not replaced)
- refactored getArtSync method of CArtHandler -> now named pickRandomArtifact
- fixed some compiler warnings
- updated source code URL in VCMI spec
2014-03-17 19:51:07 +00:00
Michał W. Urbańczyk
93b8d2e59a
AI crash — do not modify container when iterating it.
2014-03-01 12:53:09 +00:00
DjWarmonger
8ce6659633
Important fix for unreserving objects.
2014-02-23 20:37:33 +00:00
DjWarmonger
94c8f01732
Commiting some minor tweaks before next dev version.
2014-02-23 16:55:42 +00:00
DjWarmonger
15edeb231b
Fixed two heroes getting stuck on both sides of gate.
2014-02-21 09:32:24 +00:00
DjWarmonger
1196eb5d81
AI can finally clear Subterranean Gate with guard on the other side :)
2014-02-21 07:48:38 +00:00
DjWarmonger
b0b0249524
- Implemented serialization of Goals. Loaded games work, at least.
...
- Attempts to add Subterranean Gates to SectorMap
- Extensive use of ClearWayTo goal.
2014-02-20 20:18:49 +00:00
DjWarmonger
8683b982c7
- A simple method to break loop in goal decomposition (which consumed time)
...
- Finally corrected canGetArmy conditions (which also consumed time)
- Removed some unused code, general cleaning
2014-02-19 16:23:47 +00:00
DjWarmonger
a3cad2883f
- Restored correct specialty serialization ( #1599 and all its children)
...
- Fixed rare AI crash
- Fixed AI visiting some objects many times
- Some cleanup and refactoring
2014-02-17 17:28:39 +00:00
DjWarmonger
6ee823298a
- Various improvements for exploration
...
* Heroes will try to use SectorMap if there are no accessible tiles
* Remove some loopholes and pitfalls when all the ways are blocked
* Fixed AI not conquering some (reserved) objects
Still missing: SectorMap does not use Subterranean Gates :(
- Improvements for army exchange
* Fixed exchange condition
* Bidirectional exchange is possible
2014-02-17 07:36:03 +00:00
DjWarmonger
afacb40f5a
- Fixed secondary heroes stalking main hero
...
- Fixed exotic crash when all nearby tiles are occupied
2014-02-15 21:32:49 +00:00
DjWarmonger
b368e565ab
- fixed #1714
...
- Performance improvements, refactoring
2014-02-15 19:39:03 +00:00
DjWarmonger
d8933b5c36
- AI will now use SectorMap to find a way to guarded / covered objects.
...
- Improvements to SectorMap needed for use of multiple heroes
2014-02-15 16:38:51 +00:00
DjWarmonger
e459984897
Cleanup in AI.
2014-02-15 08:10:06 +00:00
DjWarmonger
d17b3a14bd
- Significantly improved exploration algorithm
...
- Workaround to make AI gather army when exploration is not possible anymore
- Possibly fixed issue with AI not capturing guarded objects
2014-02-07 20:09:15 +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
DjWarmonger
54fbdfec5e
- Finally fixed wander crash
...
- Smoothed values of terms to improve differentiation and stability
2014-02-06 06:05:45 +00:00
DjWarmonger
486cd4b001
- Fixed (common) issue when AI found neutral stacks infinitely strong
...
- Fixed non-fuzzy performance of some functions. Now AI really considers all options and uses multiple heroes, who don't spend their time wandering a lot.
2014-02-05 18:45:51 +00:00
DjWarmonger
5e58027496
Fix for rare crash in previous commit.
2014-02-05 09:04:09 +00:00
DjWarmonger
c708a631c1
- Improved AI logging messages
...
- Cut wandering time of AI
2014-02-04 21:49:04 +00:00
Ivan Savenko
3779a54ddd
- probably fixed 1671
...
- fixed missing loss condition in Birth of Barbarian
- fixed some bugs found by cppcheck
2014-01-30 11:08:37 +00:00
Ivan Savenko
2c4c964a45
Large rewrite of adventure map objects:
...
- replaced CDefObjInfo with ObjectTemplate class
- ObjectTempate is a direct member of objects instead of pointer with
shared ownership across CMap, handler and game objects
- simplified handling of objects that can change appearance (e.g. towns)
- all object queries regarding object appearance/blockmaps use h3m pos
instead of relative positions
- removed need of modhandler::reload
- cleanup of some old code
2014-01-02 23:48:38 +00:00
beegee1
5971ceaa7f
- Fixed hero / army strength handling
2013-12-31 16:11:18 +00:00
DjWarmonger
344783efb5
An attempt to handle spawning objects. However, on a day of double growth, when multiple monsters spawn, game freezes. Looks like engine issue, code is commented out.
2013-12-28 16:39:47 +00:00
DjWarmonger
9ec299931d
- Fixed VisitHero goal. Now heroes can exchange armies again.
...
- AI should not get lazy in endgame.
- Removed unused code.
2013-12-27 13:20:40 +00:00
DjWarmonger
e5b011abe0
- Fixed heroes stalling. Locked heroes now try to decompose their goals exhaustively, which FINALLY works as intended.
...
- Fixed multiple issues with ClearWayTo goal.
2013-12-26 09:53:37 +00:00
DjWarmonger
7af9b0ea74
Replaced AI vectors by sets for both performance and safety.
2013-12-25 13:38:20 +00:00
DjWarmonger
a8539b2b28
- Fixes for Quest Guard and goal completion, in particular For Sale map ( #894 )
...
- Fixes for ally players handling by AI
2013-12-24 22:01:16 +00:00
DjWarmonger
aec04d920e
Endless crusade against AI issues and loopholes!
...
- Fixed #1126
- ClearWayTo and GatherArmy goals will also consider multiple subgoals
- GatherArmy may include building dwellings in town (experimental)
2013-12-23 20:46:01 +00:00
DjWarmonger
362a54b4df
More fixes and tweaks for AI, including #1590 .
2013-12-21 21:31:28 +00:00
DjWarmonger
a6ce282f8a
Dramatically reduced exploration complexity. AI will check only nearby objects.
2013-12-21 19:17:27 +00:00
DjWarmonger
473250e223
- Removed slow and buggy part of exploration code
...
- Various tweaks and performance improvements. remove_if on long vector is a bad idea.
2013-12-21 17:34:59 +00:00
DjWarmonger
1b04f4fa9f
Hopefully fixed ALL the cases when hero could use invalid path, for good.
2013-12-20 10:15:29 +00:00
DjWarmonger
983c0496d0
Some work towards fuzzy goal comparison.
2013-12-19 20:21:21 +00:00
Ivan Savenko
881a7cf862
- added check to avoid recursion in AI town building code
...
- restored previously missing AI shield during AI turn
2013-12-19 17:29:35 +00:00
Ivan Savenko
ee1b0459e6
Extended building dependencies:
...
- buiding/structure lists must use object format. This may break some
outdated mods.
- generic support for logical expressions that consist from and/or/not
operators.
- string ID's for buidings are now actually used.
2013-12-02 11:58:02 +00:00
DjWarmonger
54c52869cf
- Fixed some more cases when heroes could block each other
...
- More generous checking of complete goals and their dependencies
2013-11-24 19:15:08 +00:00
DjWarmonger
b0bdfff117
Compile fixes, refactoring
2013-11-24 15:30:17 +00:00
DjWarmonger
74a1d09871
Fixed new issue with hero trying to visit himself.
2013-11-24 08:56:02 +00:00
DjWarmonger
cedb3ea82a
Some more logging for goal completion.
...
Stub of fuzzy goal selection.
2013-11-24 08:21:51 +00:00
DjWarmonger
0ab7b498f5
VCAI is now functional again!
...
Implemented Visitor pattern for double-dispatch (actually only goal type dispatch).
2013-11-23 18:16:25 +00:00
DjWarmonger
e6bb39d3a4
More work on VCAI Goals, still derived functions are not called :/
2013-11-23 12:30:10 +00:00
beegee1
3e4407593f
- Refactoring for checking victory/loss conditions (use enum class instead of magic numbers)
...
- Improved showing player lost message for one special case
2013-11-17 17:57:04 +00:00
DjWarmonger
900d7a03f0
Template magic. Implemented method chaining + clone pattern for Goals.
2013-11-15 17:30:16 +00:00
Ivan Savenko
3560bbb7f3
two patches/pull requests from janisozaur
...
- replace our custom bmap with std::map::at()
- compile fixes for editor
2013-11-12 10:45:42 +00:00
DjWarmonger
1657f124e1
- Compile fixes for MVS
...
- AI goals will now be handled by smart pointers
2013-11-09 21:29:46 +00:00
Ivan Savenko
55577d0ac4
- fixed missing DLL_LINKAGE
...
- use precalculated checksum for zip files
- UNUSED macro to silence some warnings
2013-11-09 13:49:36 +00:00
Ivan Savenko
ee6cdbeffe
went through the rest of cppcheck warnings, mostly harmless
2013-11-07 12:48:41 +00:00
Ivan Savenko
0e3eae3095
patch from KroArtem
2013-11-03 12:51:25 +00:00
Ivan Savenko
012212698e
compile fixes, cmake files update
2013-10-20 13:51:05 +00:00
DjWarmonger
c77fa499e7
Some more.
2013-10-19 11:37:22 +00:00
DjWarmonger
7b4964b882
Constructors for Goals.
2013-10-19 06:16:21 +00:00
DjWarmonger
f0248dd245
More AI refactoring.
2013-10-19 05:52:30 +00:00
DjWarmonger
9950bc6ec3
First part of AI refactoring. Trying to split AI into three distinct parts:
...
- Core with callback handling and processing
- Logic (goal decomposition)
- Utility and helper functions based on simple mechanics
Also, Goals will now be organized in object-oriented fashion.
2013-10-18 20:17:25 +00:00
Michał W. Urbańczyk
0e8fa04d9f
Fixed #1487 .
2013-10-13 15:24:02 +00:00
Michał W. Urbańczyk
30a0237fb8
Merged the 092c-compat branch.
2013-09-28 12:31:06 +00:00
Michał W. Urbańczyk
c6c53a5b1e
Few more freeze-related fixes.
2013-09-28 00:30:12 +00:00
Michał W. Urbańczyk
d1807585ad
Fixed at least two #1428 freezes, likely more.
...
They were occurring when AI hero visited bank that was also guarded by neutral creature nearby,
2013-09-27 23:46:58 +00:00
Michał W. Urbańczyk
b62bb096a7
Fixed #1430 , work-around to make #1435 non-crashing.
...
Fixed at least one of the #1428 infinite turns cases.
2013-09-11 21:57:08 +00:00
Michał W. Urbańczyk
dd72261193
Fixed #1437 .
2013-09-05 22:11:13 +00:00
Michał W. Urbańczyk
92246a2c17
* Fixed #1417 — infinite loop of AI trying to visit allied creture generator
...
* Fixed #1401 — battle AI won't attempt attacks with First Aid Tent
2013-08-25 13:03:29 +00:00
Ivan Savenko
5654fef901
- ZipArchive namespace for operations with zip archives, located in CZipLoader.h/cpp.
...
- new fields in mod format, for use with mod manager (check config/shemas/mod.json for details)
- removed some 0.92 compatibility from mods loading
- several compile fixes
2013-08-19 11:50:53 +00:00
Michał W. Urbańczyk
3b42cff3ec
#1409 should not crash anymore.
...
Fixed crash on serializing empty path. [How did it got there...?]
operator<< for boost::optional.
2013-08-18 15:46:28 +00:00
Michał W. Urbańczyk
e9d51a2670
Fixed issue that allowed to build multiple boats in town. Renamed state() to sth more sensible.
2013-07-21 10:08:32 +00:00
Ivan Savenko
f82122d9be
second part of c++11 update. gcc 4.5 and VS 2010 are no longer supported
...
- BOOST_FOREACH -> for
- replaced several boost classes with std (e.g. unordered)
- removed gcc-4.5 workarounds
- ran clang c++11 migration tool to detect some cases:
- - pointer initialized with "0" to nullptr
- - replace for with iterators with range-based for
- - use auto in some situations (type name specified twice, avoid long iterators type names)
2013-06-29 13:05:48 +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
Ivan Savenko
dd808ef5cc
bugfixing:
...
- support for one more Russian localisation, fixes #1321
- fixed icon for level 1 town hall, #1294
- correct portraits for first heroes from mods, #1297 and probably #1298
And a lot of gcc compile fixes
2013-06-23 19:35:54 +00:00
Michał W. Urbańczyk
254f194220
Some very early work towards autofight feature.
...
Added EmptyAI to the solution.
Passing callbacks by shared_ptr.
2013-06-22 14:47:20 +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
Ivan Savenko
dca8e9fa6f
- removed access to one wog file
...
- removed way to avoid dependency checking in identifiers resolution
- minor fixes
2013-05-21 22:11:44 +00:00
Michał W. Urbańczyk
5c2473d436
Support for saving/loading in player interfaces, including VCAI.
...
Minor changes.
2013-05-09 11:09:23 +00:00
Ivan Savenko
c6cc6e6301
Large changeset, first part of editing H3 objects via mods feature. Changes:
...
- loading of all objects (including H3 objects) will be directed by mod handlers
- common base for all handlers accessible from mod system (IHanderBase)
- json format changes: use struct with string ID's instead of vector
- fixed some gcc/clang errors and warnings
- fixed several cases of memory leaks and invalid memory access (mostly related to usage of bonus system and/or identifiers resolution)
Note that right now loading is much slower than before due to excessive json validation (or not fast enough validator)
2013-04-21 12:49:26 +00:00
Michał W. Urbańczyk
d30571aa4d
AI won't access enemy heroes' objects that went under FoW. Fixes #1235 .
2013-04-21 12:11:13 +00:00
Michał W. Urbańczyk
e8354908c3
Big change: Introduced new mechanism to handle queries. It should not cause any visible changes ATM apart from fixing several long-standing bugs realted to handling post-visit/battle/levelup callback, including infamous creature bank issues: #955 , #1053 , #1063 , #1191 . Needs testing.
...
Minor changes:
* default log level set to trace
* LOG_TRACE raii guardian lifetime will last till the end of block
* compile fixes
* minor refactorings
2013-04-20 11:34:01 +00:00
beegee1
45fccfb1a6
- Added new trace macro LOG_TRACE which autom. appends leaving func message - Removed old trace macros - Small refactoring in CMapEditManager - Changed documentation comments to /// style for various mapping header files
2013-04-16 13:16:58 +00:00
beegee1
c10266ed97
- Reduced complexity to use the CMapGenerator(simpler interface) - Removed h3m.txt and tchar_amigaos4.h
2013-04-14 18:52:05 +00:00
beegee1
abf96a5b66
- Integrated the logging API into the AI subprojects - Added macros for tracing the control flow - Added methods isDebug/TraceEnabled for performance-critical sections
2013-04-10 16:28:14 +00:00
Ivan Savenko
c4c592b773
- bugfixing: #1243 , #1227 , #1241 , #1236 , #1233
2013-03-14 20:44:00 +00:00
mateuszb
dbec99ffc7
* PlayerColor and TeamID refactoring
2013-03-03 17:06:03 +00:00
alexvins
d99bc7ca07
[mingw]
...
*VCAI fix build
2013-02-23 22:43:02 +00:00
DjWarmonger
f40863b82f
Fixed AI trying to realize incorrect goals, which could lead to crash
2013-02-23 19:13:15 +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
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
d03dbf64a6
* refactoring
2013-02-09 12:56:35 +00:00
mateuszb
f1c78e3260
* creature ID refactoring
...
* double week creatures are configurable now
2013-02-07 17:34:50 +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
DjWarmonger
beb1ca1bf8
- getDate function now uses enum for different modes
...
- Fixed Black Market (#1195 )
- Fixed one-week bonuses removed eveyr day (#976 )
2013-02-02 08:29:57 +00:00
mateuszb
c4e03ef0de
* enum serialization/deserialization (si32 as basetype ought to be enough for anybody)
...
* some fields in classes refactored to use appropriate enums (not yet finished)
2013-02-01 22:04:25 +00:00
Michał W. Urbańczyk
d4c30667b8
Fixed #1168 and #1170 .
2013-01-06 04:48:05 +00:00
alexvins
9b106bb0f7
fix build
2012-12-24 15:52:56 +00:00
alexvins
616cedb2f2
get rid of few more magic numbers (obj types)
...
+stub for wog objects
2012-12-24 15:07:30 +00:00
alexvins
e775ad8804
small cleanup
2012-12-16 16:54:20 +00:00
Ivan Savenko
72ea5e4ac9
- fixed crash in AI logging (objID is object index, not hero ID)
2012-12-12 13:32:37 +00:00
Ivan Savenko
8eba824ada
- updated icons + psd file
...
- better log messages if server failed to open port
- 1148 should be fixed. Cleanup in CGameHandler::moveHero()
- compile fixes
2012-11-15 21:29:22 +00:00
DjWarmonger
c54b983663
Some improvements for AI logging.
2012-11-15 10:40:40 +00:00
DjWarmonger
a7cea94247
- Hopefully fixed #1103
...
- Fixed #1137
2012-11-14 14:27:18 +00:00
beegee1
105083dd70
* Code convention updates * Default values for CMap types * Updated BinaryReader c-tor * Converted "bool" int types to bool in CMap classes * Removed map event operators in favor of member methods
2012-11-06 16:39:29 +00:00
beegee1
720deba838
* Added comments to map.h * Refactoring(renamed attributes, some steps towards coding guidelines, ..)
2012-10-26 17:51:05 +00:00
DjWarmonger
b3acde24d5
Fixed #1131 - AI will use subterranean gate for exploration
2012-10-04 10:17:51 +00:00
DjWarmonger
4bacd97497
Quests now handled by pointers again, this time without bugs.
...
Fixed some issues with quests and AI.
2012-10-03 14:49:29 +00:00
DjWarmonger
977acfafc8
- Fixed possible crash at invalid quest
...
- Fixed incorrect victory condition for AI (capture town/monster/hero)
- Possible fix for GET_OBJ not being completed (goal engine needs more work)
- So tweaks
2012-10-03 09:29:55 +00:00
DjWarmonger
1cf99f7be1
- Improved exploration algorithm. AI will avoid dead-end barriers and thus explore much faster.
...
- Fixed crash when there are no heroes available to recruit in the map. TODO: make AI handle it
- Fixed crash when Chain Lightning has not enough targets
- Fixed crash at Hill Fort (?)
- AI will buy Spellbook for its heroes
- AI will try to use Cartographer and Observatory when exploring
- AI will not visit Prison when heroes are at max
- Experiment: AI will try to capture Mines and Dwellings when there are no enemies around (part of CONQUER goal)
2012-10-01 18:25:43 +00:00
Michał W. Urbańczyk
f30ee8ff04
* fixed possible corruption of pack sent by server when player request is rejected
...
* BattleAI will restore callback to its previous state, fixes freeze after battle #1104
* BattleAI won't lose turn when unable to correctly evaluate a spell
* VCAI will correctly recognize hero standing on town entrance
* War machines of defender will have correctly set side
* Faction 9 as neutral causes crashes, changing to -1 as used elsewhere in the code
2012-09-29 14:44:06 +00:00
Michał W. Urbańczyk
f8a27a9fdb
* Moved CConfigHandler from client to lib, CMake/Makefile need updating. I believe other projects besides client also need access to settings. (surprisingly there was a "server" category used only by client... and now VCAI.)
...
* It is possible to set the battle ai that'll be used by neutrals by typing in VCMI console:
setBattleAI <AIName>
VCAI also respects that setting and uses given AI as its battle back-end.
2012-09-29 10:59:43 +00:00
Michał W. Urbańczyk
2ba0427432
* Fixed #1096
...
* serializing icon index, otherwise creature portraits are gone after loading a game
* VCAI: fixed crash on attempting revisiting a boat (that is no longer present because it was boarded)
* Fixed strange crash with "neutral hero" (there should be no such thing... but somehow it appears, needs further investigation)
2012-09-28 20:49:23 +00:00
Michał W. Urbańczyk
a669831fc6
* VCAI: fixed crash when a locked hero died when attempting realizing a goal
2012-09-28 19:50:09 +00:00
Michał W. Urbańczyk
8bb4abb75a
* VCAI: fixed possible endless loop of realizing GATHERRESOURCE goal
...
* an assertion failing when quest object cannot find its targeted monster ("crash early" policy), related to #1076
2012-09-28 16:20:18 +00:00
DjWarmonger
0435d5a4f1
- Removed pointer usage for CQuest. may look rough, but works and fixes #1051 .
...
- Better autoSkip mode, now info windows are not displayed.
2012-09-28 15:46:09 +00:00
DjWarmonger
ecda63683e
Fixed Bonus parser crashing at unspecified value. Assigning empty objects is also not good solution.
2012-09-27 17:58:14 +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
DjWarmonger
554a98dbd7
Quests will now be handled as object member instead of inheritance. Enabled quest objects for AI.
2012-09-16 13:34:01 +00:00
Ivan Savenko
a138db7c9e
- removed lib headers from PCH
...
- fixed #1062
- correct terrain penalty check
2012-09-06 10:39:48 +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
Ivan Savenko
44cc848edc
first part of town configuration:
...
- moved almost all loading to TownHandler
- CBuildings and CStructures are now part of CTown
- merged hall.json into buildings.json
Should not cause any crashes or glitches
2012-09-02 10:33:41 +00:00
Ivan Savenko
6c84bd9c71
- typo fix: placing semicolon after "if" is a bad idea.
...
- manual fixes:
- - update for Linux-specific notes
- - update for settings notes
2012-08-30 21:10:00 +00:00
DjWarmonger
9abcca32bc
Fixed AI trying to pick more than 7 stacks from town.
2012-08-30 18:28:40 +00:00
DjWarmonger
78fe412375
Hopefully complete solution for taking last stack from heroes (without splitting stacks).
2012-08-29 15:23:47 +00:00
DjWarmonger
4e726f0eb2
- Handling for Hill fort and (kinda) Magic Well
...
- Improved hero exchange
- Fixed strange case when AI found allied town extremely dangerous, resulting in endless loop
2012-08-29 09:19:20 +00:00
DjWarmonger
e913d94c62
VCAI can now exchange armies between heroes. By default, it will pass army to main hero.
2012-08-28 15:04:05 +00:00
DjWarmonger
3b1ddfa3ca
Fixed AI building only one upgraded dwelling per town. Minor tweaks.
2012-08-28 04:13:50 +00:00
Ivan Savenko
656999e99f
- fixed bug in AI town development
...
- fixed too slow generation of FowChange package
2012-08-26 12:26:07 +00:00
Michał W. Urbańczyk
d390113c23
* New files for lib: CBattleCallback.cpp and CBattleCallback.h
...
* Updated MSVC project files
* Filesystem: My version of .SND archive does not have \0 after WAV extension. Fixed (though hardcoded 3-char extension length).
* New bonus types: BLOCK_MAGIC_ABOVE for blocking casting spells above given level and BLOCK_ALL_MAGIC for blocking all magic.
* Heavy rewrite of battle callbacks. Fixed some minor bugs. Code reusage between lib/client/server (removed proxy calls). Better access control and support for various perspectives.
* Fixed #1031
* Fixed Orb of Inhibition and Recanter's Cloak (they were incorrectly implemented). Fixed #97 .
* Fleeing hero won't lose artifacts. Spellbook won't be captured. Fixed #980 .
* Fixed crash when attacking stack dies before counterattack (ie. because of Fire Shield)
* Server does some basic checks if action requests during battle are valid
* Minor stuff.
2012-08-26 09:07:48 +00:00
DjWarmonger
edbc7f1223
- Some hardcoded settings will now be read from config/defaultMods.json
...
- Fixed AI crash when it was placed in closed and safe area
2012-08-11 09:06:23 +00:00
DjWarmonger
55f321f3f3
- Fixed AI crash at "gather resource" quest
...
- AI will now understand threat of Abandoned Mine. For sure.
- Fixed incorrect creeps quantities info
2012-08-08 08:27:52 +00:00
Ivan Savenko
9cbc1f1058
- merged basicCreatures and upgradedCreatures into single array
...
- missing fix for savegames
2012-08-07 21:46:24 +00:00
Ivan Savenko
708ad6ac7f
- music player uses URI's instead of enum from music base
...
- #1045 and #1046 should be fixed
- moved pregame backgrounds to config/mainmenu
- animation can be overriden with .json multiple times
2012-08-06 07:34:37 +00:00
DjWarmonger
356e675a65
- VCAI can now complete all types of Seer Hut Mission. GATHERTROOP victory condition should also work.
...
- Minor tweaks.
2012-07-21 07:15:53 +00:00
Ivan Savenko
e4c88d5088
- moved ParseBonus to JsonNode.cpp (linkage errors)
...
- fixes to CMakeLists - vcmi can be compiled and started with cmake
- gcc\clang warnings fixes
2012-07-19 18:52:44 +00:00
DjWarmonger
4c0537c420
- AI will now wander with all the heroes that have spare movement points. It should prevent stalling.
...
- Fixed #1030
2012-07-19 16:29:29 +00:00
DjWarmonger
d8cb3a34d3
-Fixed crash #1037
...
-AI can now successfully complete several types of quests.
-Lots of tweaks for AI
TODO: fix bizarre crash when opening borderguard
2012-07-19 09:10:55 +00:00
DjWarmonger
6a7327d38a
VCAI will now not be confused by Border Gates and attempt to find Keymaster to cross them.
2012-07-18 13:23:46 +00:00
DjWarmonger
624908e403
- Fixed unserialized GrowingArtifact, causing crash
...
- An attempt to teach AI completing quests
- Gathering army is now continuous, abstract goal
- Lots of fixes and tweaks in AI
2012-07-18 10:10:14 +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
Ivan Savenko
55c78e9f16
- ComponentBox usage in 2 windows: levelup and build screen
...
- Components have selectable image size
- fixed #794
2012-07-07 13:32:37 +00:00
DjWarmonger
10a2dfefd1
VCAI will answer CommanderGotLevel query.
2012-07-06 14:09:34 +00:00
Ivan Savenko
235cf458d7
- fixed text duplication in choice windows
...
- fixed compile issues
- added unused and untested for now CComponentBox
2012-07-02 21:51:48 +00:00
Michał W. Urbańczyk
fcdad0d323
Added class HeroPtr to VCAI that should replace CGHeroInstance*. HeroPtr is able to detect when the hero under it becomes unavailable.
...
Hopefully fixed #954 (and all bugs caused by keeping a reference to hero that got killed: #998 , #1002 , #1008 , #1011 , #1018 ).
If not, assertions should pop up earlier.
2012-06-30 23:48:40 +00:00
Ivan Savenko
613172fa45
- fixed #582 , #1019 and #1022
...
- linux readme tweaks
2012-06-27 20:44:01 +00:00
Michał W. Urbańczyk
759f85767b
Solved #985 .
2012-06-01 16:14:33 +00:00
DjWarmonger
18e53a1717
- Fixed a scenario when AI could visit the town without picking troops, resulting in a lock
...
- Added ench0's patch for creature range tooltip (#948 )
2012-05-22 10:15:16 +00:00
Ivan Savenko
a13a62537b
- fixed crash in hero window ( #963 )
...
- added unused for now image scaling algorithm
2012-05-19 21:38:01 +00:00
Ivan Savenko
665837d656
- hopefully better town development for AI
...
- fixed minimap blitting
- fixed crash on attacking town without moat
2012-05-19 16:22:34 +00:00
Michał W. Urbańczyk
7116377e4e
More robust fix for #957 / #938 .
...
AI won't try clearing way by attacking its own heroes.
2012-05-19 00:38:25 +00:00
Michał W. Urbańczyk
c9af2bb251
Fixed #957 / #938 .
...
AI won't try visit objects on which another non-enemy hero stands.
2012-05-19 00:11:20 +00:00
DjWarmonger
b597171f91
- EXPLORE goal can now be complete soAI won't get stuck
...
- AI won't try to visit tiles occupied by allied heroes by default
2012-05-09 07:56:39 +00:00
DjWarmonger
05742afd60
Final fix. AI heroes won't loose their turn when visiting adjacent objects.
2012-05-08 09:38:01 +00:00
DjWarmonger
b316be1701
- Introduced a mechanism to set abstract goals for AI
...
- Fixed new crash when AI hero lost a battle
2012-05-08 08:10:40 +00:00
DjWarmonger
9cbbfcf258
- Fixed all bugs with battle interface. It's now more consistent.
...
- Minor cleaning.
2012-05-07 16:04:43 +00:00
DjWarmonger
ee2768ab07
- Some work for commanders
...
- New creature window - visit forum for package with necessary graphics: http://forum.vcmi.eu/viewtopic.php?p=6908#6908
- More AI optimizations - heroes will be processed starting from the fastest one.
- AI will check is GATHER_ARMY object is reachable
2012-05-07 12:54:22 +00:00
DjWarmonger
9894deee55
Little, but significant improvement in AI exploration.
2012-05-05 13:08:15 +00:00
DjWarmonger
b4c58a5644
Fixed path glitchicng.
2012-05-05 08:57:32 +00:00
DjWarmonger
7d706ba8a3
Proper solution for locking & unlocking heroes.
...
However, "tiles are not neighbouring" glitches now became more visible.
2012-05-05 06:42:18 +00:00
DjWarmonger
d6873d7570
- No battle actions will be available during tactics phase
...
- Fixed moving stacks during tactics
- Fixed Genie spell targeting
- Fixed AI getting stuck at Tree of Knowledge when no resources
2012-04-28 13:01:39 +00:00
Michał W. Urbańczyk
918452d37c
Fixed #930 .
2012-04-17 15:08:38 +00:00
Michał W. Urbańczyk
cd4c93318d
#928 and #931 should be fixed.
...
Ignoring savegames from newer versions of VCMI.
2012-04-17 12:46:21 +00:00
DjWarmonger
aeb9cf9460
- First part of battle interface rewrite. Untested. May work or not work randomly.
...
- Tweaks for AI logging.
2012-04-16 17:12:39 +00:00
Michał W. Urbańczyk
b5526f0f54
Fixed #925 .
2012-04-14 07:22:08 +00:00
Ivan Savenko
f426a48d09
- fixes for gcc-4.7
...
- added missing virtual destructors (new warning from gcc)
2012-04-08 10:34:23 +00:00
DjWarmonger
2193f8912e
- Framework of new battle interface
...
- Minor fixes for AI
2012-04-04 08:03:52 +00:00
DjWarmonger
e046f06421
Small fix for previous commit.
2012-03-29 18:29:47 +00:00
DjWarmonger
81367ef6d5
- A complete solutions for reserved adventure objects
...
- AI won't get stuck at School of War / School of Magic when no money
2012-03-29 18:26:06 +00:00
Michał W. Urbańczyk
7b7ddf987a
Fixed #909 .
...
Minor fix in using requestActionASAP (capture by val).
2012-03-26 11:38:51 +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
DjWarmonger
a3f36ccc71
- Unified interface for visitable objects
...
- AI will manage visitable objects smarter
2012-03-14 13:02:38 +00:00
DjWarmonger
c8c4c5b682
AI heroes won't trash for objects when exploring area together.
...
String logging for goal types. Fixes.
2012-03-13 20:33:00 +00:00
DjWarmonger
9518474ec7
First attempt to replace rule-of-a-thumb behavior with actual reasoning
...
- GATHER_ARMY goal replaces wander function
- Heroes will remember their own goals until they are fulfilled
- Goal search handles mutual dependency
- AI will recruit multiple heroes for exploration
- Lots of tweaks
2012-03-13 12:47:47 +00:00
Michał W. Urbańczyk
6db3c5bc7e
* VCAI: can't request actions from action handling thread
...
* Save game screen and returning to main menu will work if game was started with --start option
* GUI controls can selectively capture keyboard events. CTextInput won't capture Enter. Fixes #654 .
2012-03-11 16:29:01 +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
59681be0a4
Fixed #906 .
2012-03-10 19:14:45 +00:00
DjWarmonger
88e9dec974
Fixed Thieves Guild window showing for all players.
...
It needed 11 files modified... :/
2012-03-07 14:05:54 +00:00
DjWarmonger
0793ce2c4a
AI will now always pick best stacks from towns.
...
It will also crash when picking stacks from objects, work in progress.
2012-03-06 18:49:23 +00:00
DjWarmonger
bdd71b4f38
AI can now use external dwellings.
...
AI will weekly revisit dwellings & mills.
2012-03-05 19:11:28 +00:00
DjWarmonger
cd0ed39fbf
Implemented rule-based evaluation of tactical advantage between armies.
...
AI will creep more agressively and smarter.
2012-03-04 10:43:46 +00:00
DjWarmonger
1354351a40
Fixed AI recklessly visting Utopia.
...
Made algorithm asctually working. Library fixes were needed.
2012-03-03 11:39:54 +00:00
DjWarmonger
998d8bf501
Added trivial fuzzy logic to handle creature banks estimation.
...
Check http://forum.vcmi.eu/viewtopic.php?p=6570#6570 for new library used.
2012-03-03 10:08:01 +00:00
Michał W. Urbańczyk
f2642cb62c
Added VCAI and EmptyAI to the VS solution. Removed from it GeniusAI.
...
Fixed #329 , #884 , #885 .
2012-02-29 01:31:48 +00:00
Michał W. Urbańczyk
b54489ecb7
Fixed #873 and #877 .
2012-02-26 18:31:59 +00:00
Michał W. Urbańczyk
4f182744e7
* Fixed in game scenario info and save game screens
...
* AI will now use tlog6 (teal color) for logs
2012-02-22 19:22:11 +00:00
Michał W. Urbańczyk
e18419f5d2
* adventure map GUI should be properly blocked during AI turn
...
* battle window will wait till all dialogs are closed
* fixed problems with AI working after the game ended
* fixed problems with overzealous redrawing of infobar
2012-02-22 13:41:27 +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
0867451f26
Fixed path issues: #491 , #834 , #845 .
...
Fixed AI crash when enemy hero was teleported onto tile not visible for AI.
2012-02-18 14:59:37 +00:00
Michał W. Urbańczyk
1abf089bc7
Missed fixed for #858 (TortoiseSVN tricked me...)
...
Fixed #852 .
2012-02-16 21:46:28 +00:00
Ivan Savenko
0c3e88226f
- (linux) replaced Genius with VCAI
...
- gcc set to c++0x mode
- most of gcc warnings fixed
- replaced boost::assign with initialization lists (if available in compiler)
- new cheat code: vcmiarmenelos - build everything
- updated linux readme
- minor fixes, applied patch for #98
2012-02-16 17:10:58 +00:00
Michał W. Urbańczyk
7a66c1bf2b
* added an initial version of adventure AI: VCAI, more details here: http://forum.vcmi.eu/viewtopic.php?p=6508#6508
...
* VCAI set as default adventure AI
* several adjustments in GUI (hourglass during AI turn), minor changes
2012-02-14 18:04:45 +00:00