1
0
mirror of https://github.com/vcmi/vcmi.git synced 2024-12-26 22:57:00 +02:00
Commit Graph

511 Commits

Author SHA1 Message Date
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
beegee1
720deba838 * Added comments to map.h * Refactoring(renamed attributes, some steps towards coding guidelines, ..) 2012-10-26 17:51:05 +00:00
Ivan Savenko
9f0d3c9944 - compile flags for fuzzylite should not be arch-specific. 2012-10-19 14:30:55 +00:00
alexvins
2942e2e824 [c::b] update projects
-boost::iostreams
*link with release boost libs always
2012-10-06 15:12:07 +00:00
Ivan Savenko
c071a03a8a - fix for #1135
- merged wall_pos.json into town config
- removed tower_shooter field from creatures.json
2012-10-05 18:03:49 +00:00
Ivan Savenko
306d64b0c4 - it is possible to read json file with vector
- town configuration:
- - all town-related texts are now in TownHandler
- - alignments are now part of faction
- - removed CTown::bonus field
2012-10-05 13:11:26 +00:00
Ivan Savenko
f113f9573d - CPack support. Works on my side, needs tweaks for Win 2012-10-05 12:38:17 +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
6934ec13e2 Post-release version bump.
Minor correction for emptyAI VS project file.
2012-09-29 21:10:39 +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
Ivan Savenko
a602d7e9da - build system update
- compile\warning fixes
2012-09-29 12:02:46 +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
57a76c297c Should not crash in #955. 2012-09-28 16:48:29 +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
Michał W. Urbańczyk
40624f96d9 Some assertions in hope to get clearer reason for #955/#1076. 2012-09-28 09:28:12 +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
Ivan Savenko
15a7f43e11 - fixed #1075, #1080, #1081
- fixed some warnings from cppcheck
2012-09-26 13:13:39 +00:00
Michał W. Urbańczyk
95b866c131 * Further work on Battle AI. Now it is able to cast a number of offensive spells. Battle callback exposes more spell-casting info.
* Took down the one Boost.Assign usage offending VC11. I'm getting impatient I guess...
2012-09-23 23:10:56 +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
8f936cd34d - added battleAI to CMake, compile fixes
- icons config for towns and creatures
2012-09-22 15:10:15 +00:00
Michał W. Urbańczyk
62e63d45b1 Work in progress on BattleAI. Related changes:
* battle AIs receive ptr to CBattleCallback (not sure why it was CPlayerBattleCallback, likely mistake)
* reworked some battle callback methods to be more generic and able to handle some hypothetic scenarios
* for testing purposes in duel mode the first AI will be taken fro mconfig and the second will remain stupid ai
* minor changes
2012-09-20 16:55:21 +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
alexvins
5118386cb4 [c::b] tweak PCH options 2012-09-16 09:12:15 +00:00
alexvins
7087be1f02 C::B project files initial import
+ workspace file (not include ERM and Battle AI)
+ project files
* svn:ignore setup
2012-09-15 18:44:55 +00:00
Michał W. Urbańczyk
c42f187608 Created a new battle AI project — BattleAI. Now it is merely a copy of StupidAI but it is meant to eventually replace it. 2012-09-13 23:42:11 +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
Michał W. Urbańczyk
838c226a31 Compile fix. 2012-08-30 15:37:43 +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
Michał W. Urbańczyk
830d94064e Fixed #1056, #1057 and #1058.
Should also fix #152.
2012-08-28 12:28:13 +00:00
DjWarmonger
3b1ddfa3ca Fixed AI building only one upgraded dwelling per town. Minor tweaks. 2012-08-28 04:13:50 +00:00
Michał W. Urbańczyk
7c09f73402 * INFINITE_DIST is now enum, it should cause least trouble that way. Uh, it's so hard to fight magic values these days.
* Fixed crashes in battles after loading game
* Fixed crash in battle AI, when stack is blocked and stands next to an enemy
* Fixes problem when server's moveStack is called with dest==position
* Above should cover #1053.
2012-08-26 19:13:57 +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
Ivan Savenko
d69f4b7632 - build system update
- fixed gcc\clang warnings
2012-08-26 09:59: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
289b7b68d9 Mod Handler class. It is connected with engine, but doesn't do anything yet. 2012-08-10 13:07:53 +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
ddaroo
69de38bf1d Tweaks for cmake build system: data dir definitions, flags for clang (not tested), missing CQuestLog.cpp file for the client, naming convention of few binaries same for autotools and cmake 2012-07-15 16:05:41 +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
ddaroo
758fb0679e Stub for a CMake build system. 2012-07-01 14:27:41 +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
Michał W. Urbańczyk
4cd77a0192 Naive solution for endianess issues. Seems to allow loading a big-endian save on little-endian build.
Fixed compile issues with CEmptyAI. Removed unnecessary methods from its.
2012-06-01 15:59:26 +00:00
Ivan Savenko
4e92859cee - fixed crash on loading of some maps
- minor fixes
2012-05-30 18:37:21 +00:00
Ivan Savenko
faaf799d95 - fixed some extra warnings. Mostly harmless.
NOTE: Please check changes in BattleState.cpp and GameHandler.cpp for possible bugs
2012-05-28 19:29:32 +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
Michał W. Urbańczyk
d2756e8c88 Partial fix for #961.
Minor fixes for VS project files.
2012-05-18 22:47:54 +00:00
DjWarmonger
d491bc1c3a Commanders can level up. It's non-interactive yet.
Printing secondary skills for Commanders.
2012-05-18 14:02:27 +00:00
Ivan Savenko
97aeaa9f28 - moved ColorPutter's to separate SDL_Pixels.h file
- added Channels namespace for accessing subpixels in format-independent way
- fixed several big-endian issues
- re-generated buld system
2012-05-17 10:44:48 +00:00
DjWarmonger
416c08260a - Basic Commander window
- First part of unified quests interface

This graphics package is needed:
http://forum.vcmi.eu/viewtopic.php?p=6943#6943
2012-05-16 17:29:05 +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
Ivan Savenko
f2f39f1497 - makefiles for fuzzylite (#911)
- fixes for gcc compilation
- fixed #908
2012-03-12 20:11:46 +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
Michał W. Urbańczyk
0ef1085555 Changes around FuzzyLite library based on patch by q4a.
http://forum.vcmi.eu/viewtopic.php?p=6592#6592
2012-03-06 16:28:32 +00:00
DjWarmonger
bdd71b4f38 AI can now use external dwellings.
AI will weekly revisit dwellings & mills.
2012-03-05 19:11:28 +00:00
Ivan Savenko
e7783479d2 - (linux) version bump
- compile fixes
2012-03-05 13:31:59 +00:00
DjWarmonger
1ea2f3d3bb Added fixed FuzzyLite library to sources. It compiles without additional settings under MVS2010 and should also compile with other tools (straightforward include structure).
Did not add it to project files to avoid mess.

Fixed NaN / infinity issues.
2012-03-05 12:01:41 +00:00
DjWarmonger
71e482ce7f Few tweaks for discrete values. 2012-03-04 11:19:34 +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
c5007f8bef Fixed #891.
Minor tweaks.
2012-03-03 12:42:53 +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
672468a738 Deleted GeniusAI. 2012-03-01 16:32:14 +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
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
Ivan Savenko
91c0ce33f4 - re-generated build system
- fixed several gcc issues
2011-12-31 10:03:29 +00:00
beegee1
156aa6e4d9 * Updated class - file - handling
* Renamed color constants
* Renamed class AdventureMapButton to CAdventureMapButton
* Moved basic controls like CTextBox from GuiClasses to CIntObjectClasses
* Moved new creature window from GuiClasses to CCreatureWindow
2011-12-22 13:05:19 +00:00
beegee1
2f5d6f2684 * CHexField renamed to CBattleHex
* CHexFieldControl renamed to CClickableHex
* CCreatureAnimation.cpp/.h moved to BattleInterface/CCreatureAnimation.cpp/.h
* Removed unused project files
* Added VCMI_client filters file for VS 2010
* Gathered common parts of StdInc.h in Global.h
* Boost.Spirit has been included in PCH for ERM project
* StopWatch renamed to CStopWatch
* GuiBase.cpp split up in UIFramework/...
2011-12-17 18:59:59 +00:00
beegee1
cce814c41b * Final commit 2011-12-13 21:35:28 +00:00
beegee1
7f04ed990b Major refactoring. First part: BattleInterface
Introduction of pre compiled headers,...
2011-12-13 21:23:17 +00:00
Frank Zago
a62634cf94 Add support for SDL 1.3 in compatibility mode. 2011-11-17 00:24:27 +00:00
Ivan Savenko
ede7fd5a7a - (linux) Fixed gcc linking issues 2011-10-31 18:00:44 +00:00
DjWarmonger
0903d6037c New pack - BattleEffectTrigger for various one-shot effects with animation 2011-10-08 13:02:58 +00:00
Frank Zago
8963293c07 Avoid soname versioning for AI libraries. These libraries are dlopened so there is no need to make them versioned at all.
Signed-off-by: Peter Lemenkov <lemenkov@gmail.com>
2011-10-06 01:21:25 +00:00
Michał W. Urbańczyk
623325ca61 Ouch. Thing was for branch only. 2011-09-27 22:03:43 +00:00
Michał W. Urbańczyk
bdd66b6537 Zmiany do Programming challenge. 2011-09-27 21:54:40 +00:00
Michał W. Urbańczyk
9621cbcaa7 * fixed crash on calculating dmg dealt by stack under Curse
* fixed crash on sea battles (obstacles data got corrupted during conversion)
* fixed crash when StupidAI had a catapult
* minor fixes and refactorings (typename for bonus list under shared ptr)
2011-09-06 13:59:26 +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
26a83d7680 http://forum.vcmi.eu/viewtopic.php?p=5956#5956
Significant changes in project files:
* new library package required! URL: http://download.vcmi.eu/msvc-pack.7z
* created VCMI_global.props property sheet for settings common to all VCMI projects
* added configuration for x64 builds
2011-08-15 21:53:03 +00:00
beegee1
f609c4ad9a * Fixed #33 -> Creatures tend to stop at every hex during movement 2011-08-01 17:36:18 +00:00
Ivan Savenko
b8448e4c3b - (linux) build system update
- gcc errors/warnings fixes
2011-07-05 11:31:26 +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
Ivan Savenko
a89895452a - (linux) fixed searching/loading of scripting libraries
- (linux) moved AI libraries to /lib/vcmi/AI/lib*, ERM lib to /lib/vcmi/Scripting/*
- gcc compile and warnings fixes
2011-06-28 14:19:16 +00:00
DjWarmonger
9ca5d9048a Fixed total spell immunity granted by 2212.
Improvements for Life Drain.
2011-06-25 15:05:01 +00:00
DjWarmonger
af8d8cbfc7 Implemented #479 2011-06-21 12:45:57 +00:00
Frank Zago
129c9d521e Warning fixes + typo. 2011-06-18 23:56:48 +00:00
ozsy1023
671e7bc3ec Modified and added some functions in BattleHelper.cpp. 2011-06-09 13:23:38 +00:00
Frank Zago
4af4f0a707 Compile and warning fixes. 2011-05-27 22:34:58 +00:00
Michał W. Urbańczyk
617e1f962e New files for lib:
* lib/ERMScriptModule.cpp
* lib/ERMScriptModule.h
* lib/CObstacleInstance.h

More jugglery with callbacks. Moving stuff from CGameState to CGameInfoCallback. Work on unified game events interface for player (AI or GUI) and script module. Directing events to ERM interpretetr, first attempts of calling some triggers. Crashy, if there any scripts.
Some other changes, including fighting amount of includes in includes and tracking of hero visits (need further work).
2011-05-09 22:20:47 +00:00
Frank Zago
0c3f3c67a9 Callback naming fix. 2011-05-04 02:32:35 +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
d092eaf9d1 Artifact Merchant: selling artifacts. Messy, but completes H3 town structures functionalities.
BTW updating screen after closing marketplace is broken.
2011-04-22 21:51:10 +00:00
Frank Zago
ecb3508690 (linux) Added configure test for the icc and clang compilers, and set some extra parameters for them. 2011-04-09 17:28:51 +00:00
Ivan Savenko
407acce4c6 - gcc 4.5 / boost 1.46 compilation fixes
- configure will accept CXXFLAGS parameter correctly
- boost version check in ERMParser - to skip compilation with old boost
2011-03-29 17:16:10 +00:00
Michał W. Urbańczyk
4d3776058d My project files for VC10. 2011-03-17 23:06:48 +00:00
Michał W. Urbańczyk
a382b641b7 Removing old, VC9 project files. 2011-03-12 22:53:52 +00:00
Ivan Savenko
a2f512813f - gcc compile fixes
- fixed locale issue
- Makefiles for StupidAI
- fix for #671 (not tested)
- linux readme update, including #598
2011-02-28 15:14:26 +00:00
mateuszb
13af78edca * unnecessary arguments removed 2011-02-26 17:34:23 +00:00
mateuszb
1dd05788c9 * fixed #53 2011-02-26 17:32:56 +00:00
Michał W. Urbańczyk
1afcaf2817 * CThreadHelper.cpp now belongs to VCMI_lib project
* fixed console on Windows (restored old code)
 * GeniusAI won't get blocked when it has a hero with tactics in battle
 * fixed an issue with switching turns in hot-seat mode when there is Cover of Darkness active
 * suppressed bonus system console output: it goes only to the logfile
 * [win32] setting thread names (debug purposes)
 * minor fixes
2011-02-24 13:57:47 +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
DjWarmonger
9d313d3d2c Minor fixes and tweaks. 2011-02-22 14:23:09 +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
DjWarmonger
125f39275d Compile fix for previous commit. 2011-02-06 17:37:51 +00:00
Ivan Savenko
2ff07fa66a - Next part of animation system:
-- Reduced memory usage for images with margins
-- Implemented RLE compression
- Linux-related changes:
-- build system updated to include changed paths
-- new dependency: boost-program-options
-- configure option --disable-debug will produce optimized build

- Several gcc compile fixes
- Optimized CPU usage on town screens
- Removed several includes from headers
- Possible fix for #496
2011-02-06 17:26:27 +00:00
Michał W. Urbańczyk
31fc8f6db3 Merged Warmonger's changes from trunk 2011-02-06 08:32:05 +00:00
DjWarmonger
78fc212489 A little more work on Expert System. 2011-02-05 18:24:32 +00:00
DjWarmonger
094bb6fd8f Moving some work in progress from one computer to another. It shall not explode.
Fixed video issue from #670.
2011-02-01 18:10:43 +00:00
Frank Zago
872a057aa7 Fixed bad prototype. 2011-01-29 19:07:49 +00:00
Michał W. Urbańczyk
f52d4f7cd6 Merged changes from trunk. 2011-01-15 02:35:46 +00:00
mateuszb
56ec829049 * minor refactoring
* minor improvements in battle interface
2011-01-09 17:41:46 +00:00
Michał W. Urbańczyk
c1bd81abdd Mostly fixed battle animations.
Added proper ending for duel mode.
2011-01-08 19:38:42 +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
Michał W. Urbańczyk
471c23ba71 Compile fixes, more work on new artifact system. 2010-12-26 14:34:11 +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
a82469a205 Ooops. Some obvious corrections to previous commit. 2010-12-25 01:48:02 +00:00
Michał W. Urbańczyk
2cf6729eee Towards duel support. 2010-12-25 01:43:40 +00:00
Ivan Savenko
3d9dc0642d - gcc compile fixes
- corrected projectiles for some units
2010-12-24 15:37:48 +00:00
mateuszb
4929cf9782 * enum for secondary skills
* THex for battle positions
* towards removal of battleGetStackByID

TODO:
investigate the necessity of putting implementation of BattleAction CGlobalAI::activeStack( const CStack * stack ) in CGeniusAI.cpp
2010-12-23 20:18:10 +00:00
Michał W. Urbańczyk
2fe8b07f4f Little more development for duel mode. 2010-12-23 00:33:48 +00:00
Michał W. Urbańczyk
cde0e8933f Moved StupidAI to AI/ subfolder. 2010-12-22 22:23:19 +00:00
mateuszb
49083c4e5a * ConstTransitive CGI more or less done
* hch contents distributed to more appropriate folders
2010-12-20 21:22:53 +00:00
Michał W. Urbańczyk
e677cd5b07 Merged r1880. 2010-12-11 20:30:33 +00:00
Michał W. Urbańczyk
69b97e0a51 Little more changes. 2010-12-09 23:10:28 +00:00
mateuszb
ad48681d91 * cleanup 2010-12-08 20:17:05 +00:00
Michał W. Urbańczyk
f020562570 Merged changes from trunk. 2010-12-05 23:26:56 +00:00
Michał W. Urbańczyk
848a00bc6f Stacks #4 -> giving creatures still needs to be fixed. 2010-12-05 23:10:02 +00:00
mateuszb
6f56b5bb30 * a few more consts 2010-12-04 19:44:23 +00:00
mateuszb
efedb1a55a * minor cleanup 2010-12-04 19:15:20 +00:00
DjWarmonger
ea03273c8e Some work towards useful AI:
-It is possible to toggle adventure AI on / off typing "ai" in the console (default is true)
-General cleaning and formatting of code
-Some minor optimizations
-Teal console log for AI

AI tends to hang in the maze of mutexes and current player interface, further investigation is needed.

Fixed #580
minor tweaks
2010-11-28 16:39:13 +00:00
Michał W. Urbańczyk
7c3f3d20c3 Stacks #2 -> towards new system of stack operations. 2010-11-27 01:46:19 +00:00
Michał W. Urbańczyk
32ce20af15 Moving stack system to pointers, part #1 2010-11-22 00:34:46 +00:00
Michał W. Urbańczyk
9250cc8adf Separated CStack and CStackInstance. 2010-11-20 17:36:02 +00:00
DjWarmonger
67baa3d8e4 I hope that's final shape of universal Expert System, now it's time to add some functionality. 2010-11-13 19:25:21 +00:00
DjWarmonger
e2f4a60c4b A bit more metamagic for expert system. 2010-11-12 15:20:44 +00:00
DjWarmonger
6da5c8ee56 A framework for generic expert system, currently aimed at Bonus processing. 2010-11-11 21:01:35 +00:00
Frank Zago
e252c2d06c Build files update. 2010-08-21 00:41:40 +00:00
Frank Zago
fdad7e34e1 Remove line break in comment. 2010-08-04 03:33:10 +00:00
Frank Zago
006a7d1f11 serialID is gone. 2010-08-04 03:32:24 +00:00
mateuszb
54496ddee1 * player's serialID removed (save format broken, new game seems to work)
* building bonus (campaigns) supported
2010-08-03 11:36:52 +00:00
DjWarmonger
695c862638 Support for creature damage bonus.
TODO: display it in a creature window
2010-07-16 06:18:41 +00:00
mateuszb
71b73bad53 * mostly working hero flying and water walking; support for artifacts:
- Angel's Wings
- Boots of levitation
and spells
- fly
- water walk
2010-05-16 13:42:19 +00:00
Frank Zago
df151cceba Various compile and warning fixes. 2010-05-12 02:32:56 +00:00
Michał W. Urbańczyk
a14606f32d New bonus system. Unified HeroBonus and StackFeature. Still early version, will need improvements and development.
If you encounter any new crashes / bugs / unacceptable slowdowns, please PM me.
2010-05-02 18:20:26 +00:00
Michał W. Urbańczyk
993036e4a1 New non battle stack class. (Base for future improved bonus system, stack exp / arts)
Fixed #443
2010-04-02 02:07:40 +00:00
mateuszb
ac7bc76b7b * implemented first aid kit including first aid secondary ability 2010-03-07 17:40:33 +00:00
Michał W. Urbańczyk
0a950c508b Grail digging and construction.
Minor fixes.
2010-02-24 13:03:36 +00:00
Michał W. Urbańczyk
e6f31b7500 Compilation fixes for VC10.
Changes towards hot-seat support.
2010-02-20 13:24:38 +00:00
Frank Zago
3ec6cfd115 (linux) Meved version to 0.75 (at last) and regenerated the makefiles. 2010-01-25 03:19:55 +00:00
Michał W. Urbańczyk
eb6f7fffc9 Support for smart pointer serialization. Fixed creature banks serialization. Minor fixes. 2009-12-29 01:07:17 +00:00
Michał W. Urbańczyk
01831e912a Fixes for adventure AI: battles where AI is the attacker should work, fixed drawing AI heroes under FoW.
Restructured thread structure: no new thread on yourturn, instead of that introduced update() method called by thread dispatching GUI events. 

Further changes are planned.
2009-12-28 04:08:24 +00:00
Michał W. Urbańczyk
7f97a56a28 Fixed crash on casting spell. Fixed giving resources from towns. Version set to 0.74c. Incremented save format version.
Disabled adventure AI. Will be released as dev build.
2009-11-28 01:42:08 +00:00
red1939
f7a1b74092 Next batch of code clearing. 2009-11-01 20:13:12 +00:00
red1939
3f3c019784 Next part of AI code cleaning/reformatting. 2009-10-28 16:28:52 +00:00
red1939
ed9b75b447 First part of reformatting the code, renaming variables, rewriting tricky part. Basically making the code more readable, maintainable and ready for further additions. 2009-10-22 22:04:42 +00:00
Frank Zago
1609b8fdb9 Made all paths dependent on DATA_DIR, USER_DIR, BIN_DIR or LIB_DIR. Data access can now be separated from saved games and binaries.
Fixed a file handle leak.
Bumped revision to 0.74b (linux).
Reworked the build system to remove uneeded dependencies (linux).
Removed use of PATHSEPARATOR since Windows can use / too.
2009-10-04 02:02:45 +00:00
Michał W. Urbańczyk
4c458a7e47 Bumped version, restored AI and Cage. 2009-10-01 22:18:37 +00:00
Michał W. Urbańczyk
5073365eb9 Disable AI and Cage of Warlorlds for release (crashes) 2009-10-01 22:13:11 +00:00
Michał W. Urbańczyk
307c20e7dc * fixed crash on clicking on the map frame
* battle settings will be stored
* fixed calculating battle casualties
* fixed crash when clicking on enemy stack without moving mouse when we receive action
* fixed issue when splitting stack to the hero with only one creatures
2009-09-24 13:23:52 +00:00
Michał W. Urbańczyk
a424032ec3 Bumped version to 0.73d, restored AI. 2009-09-20 13:22:47 +00:00
Michał W. Urbańczyk
ee3c318ed9 Version for development release 0.73c
* version set to 0.73c, bumped save format version, updated changelog
* new stack queue for higher resolutions (needs new graphics!)
* improved stack ordering during battle
* many minor fixes
* temporarily disabled AI
2009-09-20 12:47:40 +00:00
mateuszb
1a08772bc8 * reading of creature banks' names 2009-09-17 11:05:50 +00:00
mateuszb
c8ac6cf914 * certain improvements for animations in battles
* obstacles won't be placed on battlefield when creature bank is attacked
2009-09-11 12:46:26 +00:00
Frank Zago
a9617b3dfd Fixed prototype. 2009-09-10 14:06:28 +00:00
OnionKnight
3d2ab9c753 * Garrison dialogs for garrisons. Required a bit restructuring of the code to take removable units into account. All showGarrisonDialog methods and the GarrisonDialog struct now takes it as a parameter. Visiting ally towns would benefit from this other than garrisons.
* Garrison right-click information shown, but not taking detailed info into account.
* Town info dialogs centered around cursor.
2009-09-09 17:49:03 +00:00
Michał W. Urbańczyk
956a87f264 * redone stack queue algorithm
* recalculating paths only after finished movement / switching selection
* moving hero uses "new" pathfinder
* moving hero by arrow keys / numpad
* VCMI window should start centered
* fixed pairing Subterranean Gates
* fixed issues with creatures sounds after loading
* several minor changes and improvements
2009-09-07 02:29:44 +00:00
mateuszb
a4df8e8831 * partial support for arrow turrets 2009-09-04 14:11:42 +00:00
Frank Zago
f92b6fc2b6 Depending on the distros, ffmpeg headers aren't always installed in the same directory. Fix from Szpak. 2009-08-29 15:52:29 +00:00
Michał W. Urbańczyk
1f0a1bd771 More fixes. 2009-08-28 19:34:08 +00:00
Frank Zago
90c31d5cd5 Typo. 2009-08-28 00:27:25 +00:00
DjWarmonger
82ddb607e6 1.blocked critical AI call
2.Yet another chapter of epic battle with creature banks
2009-08-24 14:59:24 +00:00
Michał W. Urbańczyk
66dd31fd8a * attacking and capturing towns
* r-click popups on selected town/hero.bonus and teams in pregame
* disabled music due to bugs in SDL_mixer and smpeg (probably it was the source of reported random crashes / hangups)
* minor fixes
2009-08-22 13:59:15 +00:00
Trevor Standley
f4743d2fc6 Various fixes. Temporarily replaced neural network's output with random number. 2009-08-21 18:18:52 +00:00
Trevor Standley
af1a55e063 More AI stuff. 2009-08-19 10:18:14 +00:00
Frank Zago
81109b3897 Added missing headers. 2009-08-19 05:01:25 +00:00
Frank Zago
a7b7b0a431 Add new files to makefiles. 2009-08-19 04:45:33 +00:00
Trevor Standley
a3b6bb4892 AI loads .brain file which contains a list of objects to visit and what features are necessary to determine how valuable that objective is.
AI creates random neural networks and assumes that their outputs are trained values.
2009-08-18 07:37:45 +00:00
mateuszb
49a142b92e * minor changes 2009-08-17 13:08:05 +00:00
DjWarmonger
dd91e7e406 1. Support for Pandora Box
2. Improved functions handling experience. Now it works with values over 65K, but still didn't with event giving 99M exp
I have no idea what it has to do with AI though
2009-08-16 15:39:18 +00:00
Frank Zago
69217ff217 Compile fix for g++. 2009-08-12 02:08:59 +00:00
Frank Zago
575840f641 Use amin instead of min. 2009-08-08 06:13:56 +00:00
Trevor Standley
3d93e0acf0 AI doesn't try to visit itself. AI doesn't try to visit OPW/OPH objects that have been visited. Soon AI will be able to learn priorities. 2009-08-07 08:41:40 +00:00
Trevor Standley
184676d7c4 AI now performs almost all basic operations.
-builds buildings
-recruits creatures/heroes
-upgrades creatures
-moves heroes to random destinations.
-passes units to heroes/upgrades heroes' units
-attacks weaker parties
-and more.
2009-08-06 09:59:33 +00:00
Trevor Standley
cd4d3e6db3 2009-08-06 09:52:07 +00:00
Frank Zago
9aca713050 Compile fixes. 2009-08-06 05:08:17 +00:00
mateuszb
507597301f * new spells: resurrection, animate dead
* a lot of minor fixes in battles
* resolution & depth in settings.txt reverted to 800x600 and 24bpp
2009-08-05 12:46:08 +00:00
Michał W. Urbańczyk
64f098017b Fixed linker problems. 2009-08-05 12:24:31 +00:00
Trevor Standley
48581962ab More AI changes. Minor associated fixes. 2009-08-05 09:46:55 +00:00