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

133 Commits

Author SHA1 Message Date
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
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
alexvins
8cc586ab7f hotfix 2014-03-17 14:06:32 +00:00
alexvins
9cac0af7be [Spells] More spell related refactoring
+ smart target modifier
- CREATURE_EXPERT_MASSIVE target type
* save format changed

spell format changes already documented in http://wiki.vcmi.eu/index.php?title=Spell_Format
2014-03-17 13:11:10 +00:00
alexvins
065b8366fb [Spells] Added basic support for icons and sounds
* few changes in spell format
* save format changed
2014-03-10 16:00:58 +00:00
alexvins
4203d69525 Part 2 of new spell configuration
1) spell handler refactored to support modding in general way
2) imunnity icons moved to WoG as they depends on wog`s graphics
3) introduced new class template for handlers (todo: use this in other handlers)
4) save format changed
5) introduced "absolute immunity" - unaffected by "the Orb" etc. (todo: use it in config)
6) new format documented on wiki, added json schema.

* more split of registertypes - fixes 32 mingw build
2014-03-07 13:21:09 +00:00
beegee1
69eee05ccc - Partially fixed mantis #1065 (Gate with hex 95 can't be attacked)
- Fixed 'catapult tried to attack non-catapultable hex!' problem, now catapult attacks attackable wall parts only
- Fixed problem that the server performed applying damage on a wall part twice
- Added methods for checking what wall parts are attackable and if a wall part is potentially attackable
- Added functionality to trace net packages
- Added functionality to trace std::vectors
- Added tracing for CatapultAttack(CPack)
- Updated various toString methods to use {} instead of []
- Refactoring
2013-12-08 17:54:13 +00:00
Ivan Savenko
ee6cdbeffe went through the rest of cppcheck warnings, mostly harmless 2013-11-07 12:48:41 +00:00
Ivan Savenko
71d6b0fea9 - Fixed some warnings from cppcheck
- Minor improvements to JSON validation
- Cleanup in SDL_Extensions.cpp
- Implemented new propery for creature format: idle animation duration
- Disabled idle animation of some of conflux creatures (was clearly
broken)
2013-11-06 13:42:58 +00:00
Ivan Savenko
0e3eae3095 patch from KroArtem 2013-11-03 12:51:25 +00:00
Ivan Savenko
d09294e40a compile fix, fixes blit order of heroes in siege 2013-09-30 08:45:26 +00:00
Michał W. Urbańczyk
dca1f709a9 And another one. I'm sloppy today :( 2013-09-29 21:31:14 +00:00
Michał W. Urbańczyk
5c6d12400f Fixed AI detection of battle end (solves some freezes). 2013-09-29 20:54:29 +00:00
Michał W. Urbańczyk
4f29b526ca The battle callback method battleGetAllStacks will by default omit the arrow turrets. Fixes #1453, #1455 and related. 2013-09-27 19:42:17 +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
Ivan Savenko
8beee29482 - corrected "isToReverse" check, partially fixes 1397
- ballistics fix
- minor
2013-08-06 15:25:51 +00:00
Ivan Savenko
c81a31c74a - catapult attacks should be identical to H3
- catapult may miss and attack another part of wall instead (this is how it works in H3)
- minor fixes
2013-08-06 11:20:28 +00:00
DjWarmonger
e2de926aec Fixed #1330. 2013-08-02 08:33:56 +00:00
DjWarmonger
0c45fb95d4 Fixed crash when aiming with Archangels. 2013-07-31 17:47:31 +00:00
DjWarmonger
aa6626bc35 Fixed #1329. 2013-07-28 10:32:01 +00:00
DjWarmonger
5f310aa20f Fixed all issues with Resurrection: #123, #1358 2013-07-27 19:01:31 +00:00
DjWarmonger
b36be10e30 2013-07-25 11:53:36 +00:00
Ivan Savenko
a719e03b30 - fixed #1375
- damage done by turrets is properly increased by built buldings
2013-07-22 16:23:23 +00:00
Michał W. Urbańczyk
d8a27d8f3c Refactored player-specific data into single struct BattleState. 2013-07-21 22:01:29 +00:00
Michał W. Urbańczyk
1e11904d8a Fixed Remove Obstacle. TODO: limit its working on spell-created obstacles depending on spell school level. 2013-07-21 10:25:12 +00:00
Ivan Savenko
a148c39e0a more battles animations:
- UI will be correctly greyed-out during opponent turn
- fixed remaining issues with blit order
- a bit better handling of catapult attack
- fixes #1362
2013-07-21 10:10:38 +00:00
DjWarmonger
b0f82957ab Fixed #1336 2013-07-17 11:01:36 +00:00
Michał W. Urbańczyk
4576719abe Visual Studio 2013 Preview compile fixes:
* 0 is not convertible to std::function, nullptr should be used
* std::ref(rand) is not convertible to function<int()>, used lambdas (why we dont just pass "rand" ? )
* CFunctionList needs to be constructible from nullptr
* move constructor for CMapInfo (Visual cannot generate them :( )
* #ifdefed some stuff that is not needed anymore since cmath is updated with C99 stuff
* using std::make_unique instead of our vstd implementation

CSelector: 
* introduced a class in place of typedef
* Having an overloaded && || operators over sth that is convertible to bool… Wasn't a good idea after all. Purged the operators, replaced  with And/Or methods (chaining-style).
* constructor that is present only when constructing from class or function (SFINAE). std::function has an implicit converting constructor from T causing ambiguities (even if the overload would cause compile error in the body)
2013-07-02 12:08:30 +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
Michał W. Urbańczyk
04d11519ef Quick Combat system setting works… if user doesn't click in the meantime. 2013-06-23 11:25:48 +00:00
Michał W. Urbańczyk
06dbdd234f Further changes for duel mode. It is possible to pass names of AIs to be used by command line. Moved things in battle AI. 2013-06-21 20:59:32 +00:00
Michał W. Urbańczyk
6a88604937 * fixed crash related to cammander's SPELL_AFTER_ATTACK spell id not initialized properly (text id was resolved on copy of bonus)
* fixed duels, added no-GUI mode for automatic AI testing
* minor things
2013-06-17 15:45:55 +00:00
DjWarmonger
c9e95f76df - Fixed Phoenix fire immunity. Again.
- Cheat code with grant all artifacts, including the ones added by mods
- Some clean-up of Berserk effect, however it doesn't work at the moment.
2013-05-25 07:06:00 +00:00
Ivan Savenko
8be801a6dc - CMappedFileLoader class to remap WoG files to h3 names
- WoG should be optional, all remapped files are listed in WoG/config/wogFileOverrides.json
- fixed several cases of incorrect positioning of creatures in battles
- some missing sounds for battle effects
- negative luck support, disabled by default
- a bit hackish detection of WoG presence, VCMI should work on SoD-only installs
2013-05-04 13:14:23 +00:00
DjWarmonger
32c87f532f - Added missing abilities for devil & ghost dragon
- Stack affected by Berserk should not try to attack itself

Neither of these can be actually seen in game duo to more general engine bugs :/
2013-04-27 06:39:59 +00:00
beegee1
c7c2686379 - Integrated the logging API into the client and the lib - Remove some more comments and switched to /// style - Fixed recursive locks - Added Global.h to CMakeLists(now visible in qt-creator) - Removed usage of shared_mutex - Added unique_ptr to CLogger targets 2013-04-09 14:31:36 +00:00
alexvins
b5612624fb fix clone immunity handling for 8+ level creatures, part of issue #1234. 2013-03-10 16:16:43 +00:00
mateuszb
dbec99ffc7 * PlayerColor and TeamID refactoring 2013-03-03 17:06:03 +00:00
Michał W. Urbańczyk
459e858756 One more fix for turrets — defender should also not be turned.
Development build 0.91c.
2013-02-27 07:40:21 +00:00
Michał W. Urbańczyk
9cc7a28222 Fixed unnecessary turret turning. 2013-02-27 03:06:49 +00:00
mateuszb
9e00090c42 * refactoring, a few intriguing problems remain 2013-02-13 23:55:42 +00:00
alexvins
ceea466f54 [refactor] spell handling
* more config options for spells
  + mind immunity handled by config
  + direct damage immunity handled by config
  + immunity icon configurable
- removed mind_spell flag 
* more use of new spell identifacation
2013-02-13 19:35:43 +00:00
mateuszb
9c1a117c1c * refactoring 2013-02-12 22:24:48 +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
mateuszb
d03dbf64a6 * refactoring 2013-02-09 12:56:35 +00:00
mateuszb
9dd60b6dbe * refactoring
* moat damage went to config file
2013-02-08 21:17:39 +00:00
mateuszb
f1c78e3260 * creature ID refactoring
* double week creatures are configurable now
2013-02-07 17:34:50 +00:00
DjWarmonger
1ef205e5f1 Various tweaks / enchancements to bonus mechanics
- Added CREATURE_SPELL_POWER for commanders
- Added spell modifiers to various spells: Hypnotize (Astral), Firewall (Luna), Landmine 
- Fixed ENEMY_DEFENCE_REDUCTION, GENERAL_ATTACK_REDUCTION
- Extended usefulness of ONLY_DISTANCE_FIGHT, ONLY_MELEE_FIGHT ranges
2013-02-06 08:02:46 +00:00
mateuszb
25663ce7af * fixed vector<bool> serialization
* refactoring
2013-02-04 19:43:16 +00:00
mateuszb
8769f67c5d * JsonReader can convert to enums
* refactoring
2013-02-03 21:05:44 +00:00
mateuszb
ba3075317f * proper bool serialization
* refactoring towards more enums/typedefs
2013-02-02 19:28:39 +00:00
DjWarmonger
5194569053 - Fixed #1190
- Fixed incorrect shield effect
2013-01-29 06:47:20 +00:00
Michał W. Urbańczyk
a96f03e947 Crashes realted to illegal access to enemy hero data should be fixed, including #1178. 2013-01-20 20:29:35 +00:00
alexvins
53b684180d [refactor]
* use spells configuration (all timed effects for battle spells)
* a few more cleanups
+register erm resource types (useful in future and less noise in log now)
2013-01-16 11:19:04 +00:00
alexvins
68e91ada1c [refactor]
* spells are now more configurable (unused yet, WiP)
* a few more cleanups
2013-01-15 14:20:48 +00:00
alexvins
c0ce8712c1 add some missing licence headers 2012-12-19 14:54:10 +00:00
DjWarmonger
ca9033d0e4 - Support for "Enchanted" WoG ability.
- Precision will not be cast on non-shooters
2012-12-01 18:30:03 +00:00
DjWarmonger
7be00e97a0 Fixed #1124. Probably also other bugs related to two-hex creatures (or they were already resolved). 2012-11-30 14:06:22 +00:00
DjWarmonger
52242692f1 Fixed #1130.
Moved isToReverse() function to battleCallback so that creature rotation will be handled by core mechanics and not only GUI.
2012-11-29 15:02:55 +00:00
DjWarmonger
9d68b9d58d Compile fix. Keep StdInc consistent. 2012-11-21 09:13:33 +00:00
beegee1
2a50d8d464 * Fixed battle crash (if they're double wide creatures) 2012-10-19 13:16:14 +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
49c5f70551 Fixed #1112/#1114. 2012-09-30 11:33:19 +00:00
Michał W. Urbańczyk
dec3f9afd9 #1083 should be fixed.
To be released as dev build 0.89d.
2012-09-29 20:25:54 +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
Ivan Savenko
99dcb73a72 - filesystem.json files for wog and vcmi data
- merged puzzle map into town configuration (todo: sieges, adventure map, icons)
2012-09-20 21:28:18 +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
Michał W. Urbańczyk
d961ec0507 * Fixed crash on casting spells.
* version bump
2012-09-09 23:51:20 +00:00
Ivan Savenko
0ca9f64573 Next part of town configuration:
- town screen is mostly implemented, has some minor issues
- factions are now separate from towns, neutrals have faction with id=9
- more constants to GameConstants: town-specific buildings, strings for terrains and resources
- replaced most access to builtBuildings with isBuilt() method
- replaced id's with enums for town subtype and buildings id's
2012-09-05 12:49:23 +00:00
Michał W. Urbańczyk
5a157290d9 Fixed crash occurring after casting Armageddon and killing all stacks.
Removed some commented-out code.
2012-08-31 16:33:30 +00:00
Michał W. Urbańczyk
6530e7a1e1 * servers will not allow using out-of-range slots ( #1061 )
* server won't crash on some scenarios when they're used
* fixed some minor discrepancies with creature placement in creature banks
2012-08-30 16:01:19 +00:00
Michał W. Urbańczyk
38b6435ee4 Shackles of War implementation uses bonus system propagation instead of looking into enemy hero. Silences some warnings. 2012-08-29 15:27:24 +00:00
Michał W. Urbańczyk
0b85cfaf78 Fix for #1058. 2012-08-28 15:38:00 +00:00
Michał W. Urbańczyk
830d94064e Fixed #1056, #1057 and #1058.
Should also fix #152.
2012-08-28 12:28:13 +00:00
Michał W. Urbańczyk
a14f381d48 Fixed #1055 - hang when creature performed automatic (not controleld by player) action.
Fixed possible crash on arrow turret turn.
2012-08-27 12:34:43 +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
d5f29d134f - create temporary when INFINITE_DIST passed by reference. Should work with MSVC as well :) 2012-08-26 13:16:57 +00:00
DjWarmonger
002844b376 Compile fix. Sorry, Ivan :P 2012-08-26 12:40:55 +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