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