1
0
mirror of https://github.com/vcmi/vcmi.git synced 2024-12-28 23:06:24 +02:00
Commit Graph

235 Commits

Author SHA1 Message Date
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
82e21f8b6e * minor campaign related improvements 2012-09-22 15:16:45 +00:00
mateuszb
8e3de98059 * restoring campaign features
* minor improvements
2012-09-21 17:59:54 +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
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
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
289b7b68d9 Mod Handler class. It is connected with engine, but doesn't do anything yet. 2012-08-10 13:07:53 +00:00
Ivan Savenko
e67f8afdd9 - removed multiple unused files
- config folder with all json files is used via new FS API
- fixed campaigns loading. Replaced "detect h3m starts" heuristics with CCompessedStream::getNextBlock()
2012-08-02 11:03:26 +00:00
Ivan Savenko
b3c17d2788 large filesystem update. Filesysytem is now fully functional, everything should work.
- completely replaced CLodHandler, removed bitmaph and spriteh
- replaced CLodStream in favour of CCompressedStream (2 new files)
- renamed CResourceLoaderFactory and ResourceIndetifier to shorter names
NOTES:
- campaign loading is currently broken. Will fix.
- I am going to remove several unused files in several days (e.g. LodHandler)
2012-08-01 12:02:54 +00:00
Michał W. Urbańczyk
5981ad15d4 Fixed Duel mode. Integrated some changes from programmingChallenge branch - it's possible to define duel parameters using JSON. 2012-07-26 00:48:44 +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
613172fa45 - fixed #582, #1019 and #1022
- linux readme tweaks
2012-06-27 20:44:01 +00:00
Ivan Savenko
1b50082e43 - fixed crash with necromancy dialog #1009 (russian-only)
- Client::run will catch only asio exceptions
- (linux) fixed typo that disabled debug mode
2012-06-16 17:12:58 +00:00
Ivan Savenko
d60f2d57a0 - first part of CIntObject API clean-up.
- - mostly remove usage of (de)activateSomething functions
- - CIntObject's can be safely deleted in active state or without removing from parent first
- - Added CWindowObject to use as base of all windows (will be required for such features as shadows)

Report any crashes or glitches - it should not cause any issues apart from more console output. 

TODO:
- remove redundant (de)activate and show(All) calls
- decrease usage of blitAtLoc\printAtLoc methods
- switch all windows to new base
2012-06-02 15:16:54 +00:00
Michał W. Urbańczyk
017013a5a4 Throwing runtime_errors instead of string (or even char*) objects. 2012-04-22 07:32:45 +00:00
Ivan Savenko
fef876e1ec - fixed #934 (batte screen after changing resolution) 2012-04-19 21:21:11 +00:00
Michał W. Urbańczyk
722ec55384 Redid stack artifacts. Broken save compatibility. Added serializer support for boost::variant and sending CStackInstace* over network by implicitly passing IDs. Moved seeds and checksum to StartInfo. Various minor changes. 2012-04-14 02:20:22 +00:00
Michał W. Urbańczyk
7317e803db Locking pim mutex in client pack handling method, instead of dozens playerint call-ins. GUI won't try updating in between gamestate change and call-ins about it. Should fix #912.
Minor changes.
2012-04-06 15:02:15 +00:00
Michał W. Urbańczyk
c698181c4c * simple mechanism for detecting desync after init
* moving stacks in tactics phase won't affect stack queue  (part of #760)
* moved all boost headers in server to PCH
2012-03-27 20:08:54 +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
Michał W. Urbańczyk
d0e259864e * Replaced boost::shared_ptr with std::shared_ptr.
* Brought shared_ptr and unique_ptr and their factories (make_shared, make_unique) to the global scope. 
* Removed excessive usage of shared_ptr in bonus system interface. 
* Fixed bonus system limiters/caching interactions. That covers #823, #859 and a number of rare edge-cases. 
* Implemented multiple-step limiters applying, fixing hasAnotherBonusLimiter  and allowing transitional dependencies between bonuses. 
* Bonus system should be slightly faster, since we cache limited bonuses. Some rare usages (limiting query against a foreign node) however can't use caching.
2012-03-06 16:59:55 +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
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
Ivan Savenko
86e7d96b39 - setting system: replaced settings.txt + sysopt.bin with json-based system (defaultSetting.json + settings.json)
- some work on system settings window
- new menu for selecting resolution (reused town portal graphics), can be opened from system settings
2012-01-12 15:23:00 +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
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
7f04ed990b Major refactoring. First part: BattleInterface
Introduction of pre compiled headers,...
2011-12-13 21:23:17 +00:00
Ivan Savenko
0f2e00c780 -(linux) Moved all (I hope) files created by VCMI to ~/.vcmi to prevents crash on launch from read-only directory
- minor fixes for #362 #835 #836
2011-11-01 12:58:01 +00:00
ori.bar
ebacb433fe auto_ptr -> shared_ptr see http://gcc.gnu.org/onlinedocs/libstdc++/manual/auto_ptr.html 2011-09-10 09:42:09 +00:00
Michał W. Urbańczyk
8b7a2f179c * Server will strictly require answering the queries before taking any actions. Let me know, if this causes any freezes.
* Fixed crash on new week after we lost battle with neutral monster but killed the top stack (merging failed then).
* minor changes
2011-09-06 06:00:32 +00:00
Frank Zago
2ae53395d7 Removed duplicate function initVillagesCapitols(), and simplified its clone loadTownDInfos(). 2011-09-04 18:07:26 +00:00
Michał W. Urbańczyk
d71ed76a0f Fixed villages/capitols not appearing. 2011-09-03 03:04:06 +00:00
Michał W. Urbańczyk
6b9e64de91 Lazy updates of hero paths. 2011-09-03 02:54:33 +00:00
Michał W. Urbańczyk
20a53b04fd Removed object recycling that was causing #796. Fixed text nr typo.
Corrected json include in client/Client.cpp.
2011-09-01 01:40:46 +00:00
Frank Zago
d49058049e Created towns_defs.json from townsDefs.txt. 2011-09-01 00:11:34 +00:00
Michał W. Urbańczyk
4f20c5a376 Fixed #731. 2011-08-25 21:08:53 +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
Ivan Savenko
8054c85091 - some work on sound and music players:
-- Adventure map music will update with hero movement
-- implemented battle intro sounds
-- battle music tracks will  be selected randomly each time
- fixed #781
2011-08-19 19:50:24 +00:00
Michał W. Urbańczyk
79f5b29196 Various player/AI interface related fixes and improvements. 2011-07-17 18:49:05 +00:00
Ivan Savenko
48e79b163c - missed file from previous commit
- minor fixes
2011-07-01 16:26:36 +00:00
Michał W. Urbańczyk
212bc13ad6 Fixed #755 and #759. 2011-06-25 14:22:19 +00:00
Michał W. Urbańczyk
580c4e4c9b ERM is now a separate project, linking to ./Scripting/ERM.dll and consisting all ERM* files from ./lib.
Little changes around handling ERM. New class in lib: CFileUtility, so the code for scanning files with given extension is not duplicated.
2011-06-20 11:41:04 +00:00
DjWarmonger
361e58eddb Applied patch from #749 2011-06-18 04:56:32 +00:00
Frank Zago
4b7d0f3092 Partial integration of Android patches, from Pelya. 2011-06-15 02:15:05 +00:00
Frank Zago
eecb470e74 Fixed all warnings "take address of temporary". 2011-06-11 04:54:41 +00:00
Michał W. Urbańczyk
9775f88045 Version bump.
Initial support for IF:M elements and string formatting.
Various minor changes related to ERM interpreter.

The following script should be functional now:
ZVSE
!?PI;
!!DO1/0/6/1&v2777<>1:P0;

!?FU1;
!!IF:M^Hello world number %X16!^;
2011-06-10 23:50:32 +00:00
Frank Zago
aca118b613 Fixed creature bonus parser. Fixed several uninitialized variables. Updated data build script to v0.85. 2011-06-03 03:23:50 +00:00
Frank Zago
ff49b852df Silenced several "warning: suggest parentheses around ‘&&’ within ‘||’": added some parenthesis, optimized a couple statments and fix a bug in another. 2011-05-30 19:20:14 +00:00
Michał W. Urbańczyk
2d61fab7e9 * Probably fixed #655.
* Fixed #736, #737.
* Fixed crash on loss/victory.
* Fixed crash on loading some AB maps.
* Fixed crash on loading map where victory/loss condition objective hero was placed inside the town.
* Fixed crash on loading map when neutral Dungeon has built Portal of Summoning.
* Mutex protecting GS will be used to prevent changes in GS when GUI might read it.
* Little more securities around moving hero and ending turn, still needed more.
2011-05-29 23:49:25 +00:00
Michał W. Urbańczyk
c32242b4e9 For 0.84b dev build. 2011-05-25 23:52:27 +00:00
mateuszb
94166b83aa * some changes 2011-05-22 18:46:52 +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
Michał W. Urbańczyk
03fdd22b1a Version set to 0.83c, to be released as development build.
Code reorganizations in bonus system, allowing defining bonusNode-like classes.
Fixed some issues with artifact handling (proper updating of GUI when moving, minor fixes). 
Restoring battle AI for neutrals after loading game.
2011-02-27 19:58:14 +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
Michał W. Urbańczyk
a46ad0b7ef Next set of fixes, mostly for deserialization. 2011-02-22 09:47:25 +00:00
Michał W. Urbańczyk
15011e611d Merged Ivan's changes from trunk (r1921) 2011-01-28 02:33:26 +00:00
Michał W. Urbańczyk
a75a37008f Practically finished combined artifacts changes, many other fixes. 2011-01-28 02:11:58 +00:00
Ivan Savenko
551d1f1b26 - Possible support for sounds in GOG version
- Fixed all issues with Russian localisation
- (Linux) fixed #637
2011-01-17 16:07:08 +00:00
mateuszb
56ec829049 * minor refactoring
* minor improvements in battle interface
2011-01-09 17:41:46 +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
2cf6729eee Towards duel support. 2010-12-25 01:43:40 +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
mateuszb
af2c4633ad * partially done duel mode
* program options parsing via boost::program_options
* Stupid AI - a stupid battle-only AI
* precompiled headers for server and Stupid AI on MSVC
2010-12-22 20:14:40 +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
mateuszb
8b831c1f46 Const-transitiveness of CGI almost reached 2010-12-20 13:04:24 +00:00
mateuszb
5806976a9a * towards ConstTranssitivePointers in CGI 2010-12-18 22:11:28 +00:00
mateuszb
ad48681d91 * cleanup 2010-12-08 20:17:05 +00:00
Michał W. Urbańczyk
1c8d909433 Hotfix for loading game. 2010-11-03 11:34:25 +00:00
Frank Zago
dbe38a7062 A few bug fixes and arious warning fixes: unused code/variables, out of order initializations, ... 2010-10-30 21:53:41 +00:00
Michał W. Urbańczyk
daeb3af67a Early changes towards MP support.
It's possible to connect several clients (running on localhost) and enter MP pregame. The actual MP game still not playable. (though it can be started)
2010-10-24 11:35:14 +00:00
Michał W. Urbańczyk
aa131bbf15 Reverted r1811, r1812, r1813 2010-10-24 11:23:43 +00:00
DjWarmonger
b75cf89f86 Partial support for customizable artifacts and Spell Scroll. Still doesn't work, though. 2010-10-03 17:52:11 +00:00
Frank Zago
4b8be22fb6 Several compile/link fixes. 2010-09-04 14:47:39 +00:00
mateuszb
4ba3c68ced Chenges (networking for PG, minor fixes) 2010-09-03 18:42:54 +00:00
mateuszb
d681afe1c1 Changes towards campaign support. 2010-08-20 13:34:39 +00:00
mateuszb
9aa6d0a7b9 * refactoring of map handler and minor changes 2010-08-16 13:51:31 +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
Michał W. Urbańczyk
ec6342d9a7 Serializer will now smartly send over network CArtifact* and CHero*. Unified handling of items stored in vector.
Started making support for Black Market / Artifact merchant.
2010-06-26 16:02:10 +00:00
mateuszb
adbc142ff0 * a bit of campaign support 2010-05-08 18:56:38 +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
mateuszb
5d3d9689e8 * luck support
* support for distance/wall penalties & no * penalty abilities
* reworked damage calculation to fit OH3 formula better
2010-04-06 13:19:54 +00:00
Michał W. Urbańczyk
80f49badc9 Implemented Scuttle Boat and Dimension Door spells.
Fixed #417 and #418.
Moved / refactored some code. Minor fixes.
2010-03-20 22:17:19 +00:00
Michał W. Urbańczyk
ad841f7fea Implemented Summon Boat spell. 2010-03-10 23:16:30 +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
Michał W. Urbańczyk
78f54ffcd3 Fixed game loading.
Release 0.75d
2010-02-13 21:45:46 +00:00
Michał W. Urbańczyk
96819379c5 Fixed #109, #352, #359.
Possibly also #344, #353.
Allowed switching heroes with l-click when another hero is selected. (works for not accessible heroes)
2010-02-13 04:47:31 +00:00
Michał W. Urbańczyk
6803d08c6c Further victory conditions supported:
Transport artifact
Find artifact
Gather army
Gather resource
Build city
2010-01-30 12:46:15 +00:00
Michał W. Urbańczyk
5279e2e9fc First part of support for victory & loss conditions.
Implemented and tested are
victory:
Defeat hero
Capture town
Defeat monster
Flag dwellings
Flag mines

Lose:
Loss hero
Time expire

**

Some others may work but not has been tested yet.
I've added a new page in VCMI Status spreadsheet with status of various victory/loss conditions.
2010-01-29 20:52:45 +00:00
Michał W. Urbańczyk
226935fd89 More missing virtual d-tors. GCC should be pleased.
Moved some code.
2010-01-02 01:48:44 +00:00
Michał W. Urbańczyk
5be449b6ca Fixed crash on closing. Fixed #326. Max movement points values follow H3 more closely. Minor fixes. 2009-12-31 11:04:29 +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
1c32679f93 Implemented flagged garrisons passableness ( #150 ). Full support for BorderGates. 2009-12-20 17:14:14 +00:00
Michał W. Urbańczyk
d037bec1be Fixed #229, #290.
Fixed problems with accessing shared memory sometimes occurring after application has previously crashed.
2009-12-19 12:31:57 +00:00
Frank Zago
6b5feb63e6 Implemented "main menu" in-game option. 2009-11-01 01:15:16 +00:00