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

440 Commits

Author SHA1 Message Date
AlexVinS
f81116e04d Fix mantiss #2208 2015-06-21 20:30:19 +03:00
AlexVinS
dca1e28bc1 SDL1 wipe, part 1. Untested. 2015-06-21 01:59:30 +03:00
AlexVinS
685deddac1 Start spell-relatet files reorganisation
* moved existing files to separate directory
-> todo: split mechanics
2015-02-26 08:39:48 +03:00
Ilya Zhuravlev
3eb3996241 Fix android build. 2014-11-02 16:19:14 +03:00
Patrick Simmons
cfa6f46d62 VERY buggy, unusable, but progress is being made... 2014-10-25 19:05:49 -04:00
Ivan Savenko
9a4aa8749f Fall back to first available resolution if config contains invalid value.
Fixes crash on starting game with unavailable resolution
2014-09-18 14:20:53 +03:00
Ivan Savenko
b551bdb725 Final part of the merge
Merging VCMI Dirs refactoring + GUI refactoring with current develop
2014-09-04 20:59:07 +03:00
Ivan Savenko
de9c5b1af7 Merge branch 'develop' of github.com:karol57/vcmi into karol57-develop 2014-09-04 20:29:24 +03:00
DjWarmonger
0edaf4fa8a Merge pull request #26 from vcmi/FFMpeg
Let's do this, way too many branches running now.
2014-09-01 10:35:30 +02:00
Karol
37bd4790f7 VCMIDirs update #6 fix
- Apple compilation fix
- Removed unnecessary macros
- Updated macros indent style
- Fixed 1. warning.
2014-08-30 15:04:00 +02:00
Karol
53ab0593b7 VCMIDirs update #6
- Minor fixes
- CLoadFile updated to boost::filesystem::path
2014-08-27 12:31:58 +02:00
Karol
1b6f2ea3b7 VCMIDirs update #5 fix
- Updated old OS detect macros.
- Fixed 1 misspell.
2014-08-26 12:19:04 +02:00
Karol
2da6d9e7dd VCMIDirs update #4 fix 2014-08-11 21:24:31 +02:00
Karol
a302f6c7ad VCMIDirs update #3
bfs = boost::filesystem;
- Updateting filenames (std::string -> bfs::path) #1
- Added platform detection, and some specyfic boost::filesystem includes
to Global.h
- Updated CBasicLogConfigurator. Now class uses bfs::path pathes.
2014-08-10 23:42:39 +02:00
Ivan Savenko
a115406fa3 Fixed data presence check 2014-08-10 10:58:56 +03:00
Ivan Savenko
b1285bc506 Merged GUI refactoring into develop, fixed conflicts 2014-08-09 15:01:55 +03:00
beegee1
5139378319 - migrated boost::function/ref/bind to std:: variants 2014-08-04 20:33:59 +02:00
Ivan Savenko
00cda400a1 Miscellaneous improvements for Launcher UI:
- Implemented "show intro" toggle in settings
- Install/Update/Enable buttons are now visible even when mod info is hidden
- Fixed behaviour of show mod info switch, added more obvious button to enable it
- Removed no longer used "Enable mods on install" switch
- Added buttons to open data, user data and temporary directories
2014-08-04 14:03:57 +03:00
Ivan Savenko
731aedf3a1 Split CIntObjectClasses into multiple smaller files. This should be the last change in files 2014-07-15 10:14:49 +03:00
Ivan Savenko
647b9c683f Reorganized client source tree:
- client/widgets for reusable GUI elements
- client/windows for independent windows
- client/gui for base GUI classes which should remain internal
2014-07-13 20:53:37 +03:00
AlexVinS
679dd64ff9 Make scale a parameter of "open" methods 2014-07-10 14:18:21 +04:00
AlexVinS
18f34e14f8 set scale to off by default 2014-07-08 22:01:01 +04:00
AlexVinS
8a488aeb86 Cleanup 2014-07-03 19:57:21 +04:00
AlexVinS
ecc7b8e05a Draw cursor on each frame. Fix TTF rendering under cursor. 2014-07-03 18:05:07 +04:00
AlexVinS
c948891fc6 Fix threaded handlers initialization, cleanup 2014-07-03 12:26:15 +04:00
AlexVinS
5a029c88d1 cleanup 2014-07-02 23:53:23 +04:00
AlexVinS
195eae48ca Merge branch 'develop' into SDL2
Conflicts:
	client/CPlayerInterface.cpp
2014-07-02 17:15:12 +04:00
Ivan Savenko
a0689fa377 Refactoring of hoverText from objects:
- removed hoverText field
- split getHoverText() method into 3:
- - getObjectName() for generic name
- - getHoverText(Player) for player-specific text
- - getHoverText(Hero) for hero-specific strings
2014-06-24 20:39:47 +03:00
AlexVinS
3b8d0e44d4 Merge branch 'develop' into SDL2 2014-06-24 14:09:44 +04:00
AlexVinS
d707e55472 restore inGuiThread flag 2014-06-13 07:55:50 +04:00
AlexVinS
41a0319985 remove separate GUI thread
+ this fixes OGL
- has some issues(f.e. hero movement)
2014-06-13 07:55:49 +04:00
AlexVinS
15fe37133c Fix compilation with SDL1
+ seems to be fully backward compatible (need more testing)
2014-06-13 07:55:48 +04:00
Ivan Savenko
8eb661461c - vcmi compiles with SDL2 on Linux, video player is disabled for now 2014-06-13 07:55:45 +04:00
AlexVinS
3db7fb4f63 Still try to fix opengl backend
- no success
+ make backend selection configurable
2014-06-13 07:55:45 +04:00
AlexVinS
d289c6a34a Prefere opengl rendering
- broken ...
2014-06-13 07:55:44 +04:00
AlexVinS
5bb3d859eb Nice fullscreen mode++ 2014-06-13 07:55:44 +04:00
AlexVinS
ac2896da42 Implemented SDL2 unicode input. Hotkeys are sill broken. 2014-06-13 07:55:42 +04:00
AlexVinS
d50976bf4a restore some SDL1 code in CMT.XXX 2014-06-13 07:55:41 +04:00
AlexVinS
0ef16feca9 Refactoring towards backward compatibility (WiP) 2014-06-13 07:55:41 +04:00
AlexVinS
1597254399 just a few tweaks and it works!
* enable video again
* set default bpp to 32 - SDL2 dont like 24 bit resolution
* now almost everything looks as expected (some issues are present though)
2014-06-13 07:55:40 +04:00
AlexVinS
cd81e85a61 fix loading to pregame. Looks awful. More work to do.
* video temprorary disabled
* multithread loading seems to be broken - disabled
2014-06-13 07:55:39 +04:00
AlexVinS
e072b2664f fix pixel format
* now it shows intro video (but then crash ...)
2014-06-13 07:55:39 +04:00
AlexVinS
62d42465de fix compilation
* may not even run
* text input disabled
2014-06-13 07:55:38 +04:00
Ivan Savenko
b2e8c92383 Cleanup:
- removed commented-out #includ'es
- renamed some files to match name of class
2014-06-05 20:26:50 +03:00
Ivan Savenko
652ceb2bde Finally shattered CObjectHandler.cpp into tiny bits
- This file is now split into multiple smaller files in mapObjects
directory
- CObjectHandler itself now contains only core classes (Handler itself,
CGObject and interfaces)
- Cleaned up excessive #include's through whole project
2014-06-05 19:52:14 +03:00
Ivan Savenko
0afdfa529c Moved all object-related files to lib/mapObjects directory.
Renamed some classes to more readable names
2014-06-05 14:19:47 +03:00
Ivan Savenko
32b6568b65 Merged changes from upstream and fixed compilation caused by API changes 2014-06-03 22:45:18 +03:00
Ivan Savenko
7f276185bd Moving files:
- new config for objects (config/objects/generic.json)
- renamed lib/CDefObjectHandler to lib/CObjectClassesHandler
2014-05-24 02:07:54 +03:00
Ilya Zhuravlev
db7cd79cf7 Android port.
Conflicts:
	lib/vcmi_endian.h
2014-05-16 23:24:29 +04:00
Ivan Savenko
9c0df68cb8 Fixing spelling mistakes. Patch from josch, fixes #1759 2014-03-23 12:59:03 +00:00
Ivan Savenko
760ae7d44a Changes related to Debian packaging, based on josch patch
- AUTHORS file is now in UTF-8
- tags for desktop files
- fixed some typos
- better reaction on --help and --version commands
- vcmibuilder should work with both avconf and ffmpeg
2014-03-20 18:17:40 +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
Ivan Savenko
d2ae847ecf - files in local directories (saves & configs) now always have higher
priority than mods. Fixes #1685 and #1733
- fixed possible crash on exit in dispose() function
- (vcmibuilder) fixes problem with partial mp3 -> ogg conversion
2014-03-08 16:05:23 +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
Ivan Savenko
5cbec833c2 - (linux) XDG filesystem support
BIG NOTE TO LINUX USERS
All user data has been moved according to XDG specs:
- Game data (H3 files and mods) and saves: from ~/.vcmi to ~/.local/
- Temporary files, including logs: from ~/.vcmi to ~/.cache/vcmi
- Config files: from ~/.vcmi/config to ~/.config/vcmi

For compatibility VCMI will read game data from ~/.vcmi as well but this
is temporary behavior and will be removed
2014-03-04 14:51:10 +00:00
Michał W. Urbańczyk
f6c2c96cdc Copyright update. 2014-03-01 18:46:54 +00:00
Michał W. Urbańczyk
93856dbe98 Quick solution for #1688. 2014-02-27 20:44:20 +00:00
Michał W. Urbańczyk
55271e621b Possibility to switch autoskip in the runtime. 2014-02-02 14:39:32 +00:00
alexvins
a740f7989c [c::b] update projects, disable PHC for now, +few fixes (still wip) 2014-01-05 17:48:50 +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
Ivan Savenko
29f4a12814 - fixed some evil memory leaks
- fixed recursive dependency of castles
2013-12-19 19:43:16 +00:00
beegee1
d1002f7e8f - Fixed starting another map from campaign bonus selection screen while playing a campaign mission 2013-12-17 12:12:25 +00:00
beegee1
b9b25ef552 - Fixed mantis #1422 (starting another scenario crashes VCMI for now)
- Refactoring
2013-12-16 18:39:56 +00:00
beegee1
f2cc630e2c - Show confirmation dialog when pressing Alt + F4 to quit the game 2013-12-07 18:26:15 +00:00
beegee1
c786a3076a - Refactored victory loss condition checks
- Added toString() method to EVictoryLossCheckResult enum class to improve debugging
- Removed mostly unused CFunctionList2
- Added missing header files for vcmiclient project to CMakeLists
- Tweaked SDL suggests bpp message a bit
- Added showInfoDialogAndWait (info dialog and waits, used from client thread) and showOkDialog (callback to ok click, used from GUI thread) to player interface
- Added showOkDialog method to CInfoWindow (unused for now, but may be used later)
2013-11-30 09:43:31 +00:00
Ivan Savenko
84dea676f2 compile fix, fixes missing end-of-line #1483 2013-09-28 13:32:49 +00:00
Ivan Savenko
e13dc872e0 - support for Chinese fonts (GBK 2-byte encoding)
- fixes #1446
2013-09-08 16:49:23 +00:00
Ivan Savenko
6bee105d7d Some refactoring of text display widgets:
- renamed some methods/classes with better names + some consistency (no more print, setTxt and setText that do exactly same thing)
- TextBox now contains label widget instead of inheriting it
- smooth scrolling support (up/down buttons still scroll one line)
2013-08-29 13:46:27 +00:00
Ivan Savenko
77496bcea9 - fixed several cases of accessing full path to files in archives 2013-07-29 11:38:18 +00:00
Ivan Savenko
b87897096c Filesystem handling is now more flexible
- removed CResourceLoader class in favor of one that implements resource loader interface
- removed global pool of files, in favour of more dynamic approach
- renamed some files to match current situation
All these changes are needed mostly for future mod manager + .zip support
2013-07-28 14:49:50 +00:00
Ivan Savenko
91cd88ba97 - compile fix for OSX 2013-07-11 20:10:17 +00:00
Ivan Savenko
4ac2a6e8b6 minor refactoring of VCMIDirs, bugfixing
- VCMIDirs represent XDG specification more closely (partial #1310)
- Minor bugfixing, including #1327 #1328 and #1306
2013-07-08 20:55:22 +00:00
Michał W. Urbańczyk
a1f545792b Compile fixes specific for VS 2012"
* Reverted std::bind to boost::bind. std::bind on Visual 2012 doesn't work in some cases (especially with std::ref), not sure why [but it seems to be a bug, since 2013 preview compiles the same code fine]. 
 * Move assignment operator for VS 2012.
2013-07-02 15:23: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
Michał W. Urbańczyk
4a0587d500 More work on auto-fight.
Dynamic libraries return smart-pointers to what they create.
2013-06-22 21:47:51 +00:00
Michał W. Urbańczyk
2be2143844 Game interfaces can register another interfaces to receive info on game events. 2013-06-22 18:22:44 +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
Ivan Savenko
6737c270c9 gcc 4.5 compatibility fixes. Mostly due to lack of fully finctional nullptr class 2013-06-19 21:26:27 +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
Ivan Savenko
08b2af3ccb - fixed "get txt" console command
- command "extract" to extract file by name
- command "def2bmp" to convert def into set of frames.
2013-06-10 17:02:37 +00:00
Michał W. Urbańczyk
fc6e72dc75 * Fixed enchantments (#1265). Their effects were not properly added when reading config. Battle interface will be little less likely to block itself after corrupted spell cast.
* Fail gracefully when the file from which game is started is in invalid version.
* Bumped versions.
2013-05-19 15:14:23 +00:00
Michał W. Urbańczyk
be7c2bd07f CGHeroInstance* can be serialized over network even when hero has been defeated. Strongly typed hero type ID introduced.
Should fix #1260.
2013-05-18 22:30:48 +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
Ivan Savenko
3285f1910b - finally, solution for imageIndex fields. All image lists will be generated in runtime
- iconIndex fields from json are no longer used
- simple check for missing icons on startup
2013-04-22 19:51:22 +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
d1d67caa0b Get rid of some old serialization workaround code that is not needed because serializer was improved in the meantime.
Fixing #1254.
Fixed possible race causing corruption of the server savegame.
2013-04-20 18:44:55 +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
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
f10ba48c77 - Fully integrated new logging API(ERM, Editor, missing parts) - Removed old logger 2013-04-11 15:58:01 +00:00
beegee1
6827fcdb53 - Integrated the logging API into the server project - Simplified CBasicLogConfigurator usage(exception handling, logging, log file appending) 2013-04-10 17:18:01 +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
beegee1
30bcec42c6 - Renamed client/BattleInterface to client/battle and client/UIFramework to client/gui 2013-04-07 11:52:07 +00:00
beegee1
ee51c5beb5 - Renamed /lib subfolders to lowercase 2013-04-07 10:48:07 +00:00
Ivan Savenko
c927913f5f - Improved json validation. Now it support most of features from latest json schema draft
- Set of schemas in config/schemas directory that are used to validate input from mods.
2013-04-02 17:06:43 +00:00
Ivan Savenko
5082dafd62 - h3 hero classes and artifacts can be modified via json
- commander artifacts are now merged into main artifacts.json, todo - split 2.5k file into something manageable
2013-03-12 14:56:23 +00:00
mateuszb
dbec99ffc7 * PlayerColor and TeamID refactoring 2013-03-03 17:06:03 +00:00
Ivan Savenko
b5fcefe455 - moved all system-specific handling of filesystem to VCMIDirs.cpp (new file)
- fixed #1128, artifact constituents are now stored as pointers
2013-03-02 18:41:25 +00:00
Michał W. Urbańczyk
8c7c4789ca Attempt to apply patch from stopiccot. 2013-03-01 21:32:26 +00:00
Ivan Savenko
74ac44662c - a bit less memory usage during compilation with gcc, new file - RegisterTypes.cpp
- fixed several issues related to visiting town by ally
- fixed #1215
2013-02-23 12:22:23 +00:00
mateuszb
bda766b697 * refactoring 2013-02-12 19:49:40 +00:00
mateuszb
af5287c193 * fixed opening custom campaign selection window
* artifact positions refactored
* vstd::advance allows moving between enum values
2013-02-06 23:24:43 +00:00
Ivan Savenko
56ffd05648 patch from stoppicot:
1. vcmiclient now usese custom Info.plist 
 2. Original H3 game data is now also stored in Application Support folder
2013-02-06 15:39:34 +00:00
Michał W. Urbańczyk
17755caa10 * fixed #1199
* fixed advancing between misisons in campaigns
2013-02-05 20:06:13 +00:00
Ivan Savenko
46eb0b3daf - wrokaround/fix for #1177
- removed assert in Fonts.cpp (can be triggered a lot by old pregame\battles code)
- fixed battle console text positioning
- fixed some new compiler warnings
2013-01-20 22:49:34 +00:00
Michał W. Urbańczyk
5b919d88eb "More stable" opening AI. 2013-01-20 12:06:49 +00:00
Ivan Savenko
62e99a1ae5 - basic loading screen, no progress bar
- startGame() call will run in separate thread if loading screen is used (looks OK so far)
2012-12-17 18:01:17 +00:00
Ivan Savenko
423a226e31 OS X patch from stopiccot 2012-12-15 07:24:25 +00:00
Ivan Savenko
04358ed0c6 multiple changes in config system, breaks existing mods. See upcoming post on forums.
- filesystem initialization works in conjuction with modHandler
- (config) split buildings.json in multiple files in "factions" directory
- (mods) merged filesystem.json and config/mod.json into mod.json
2012-12-12 11:13:57 +00:00
Ivan Savenko
c9dd80ea6d - moved json-related functions (e.g. ParseBonus) into JsonUtils namespace
- replaced JsonNode::toStdVector with more universal convertTo
- some renaming in StartInfo
2012-12-02 12:21:44 +00:00
Ivan Savenko
2643762f08 Mac OS patch from stopiccot 2012-12-01 06:30:52 +00:00
Ivan Savenko
f7915d9e61 - removed creature-related code from ModHandler
- new towns can be loaded as mods
 - removed separate DefInfos for towns\capitals
 - a bit simpler handling of adventure map def's
2012-11-13 11:52:23 +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
mateuszb
18bd898cb1 * fixed bug when starting certain maps in campaigns
* introduced TPlayerColor typedef
2012-09-24 16:14:53 +00:00
DjWarmonger
e2bfd53c98 - Fixed some issues and crashes
- Simplified projectile handling. New creatures can now shoot.
2012-09-21 19:49:35 +00:00
mateuszb
8e3de98059 * restoring campaign features
* minor improvements
2012-09-21 17:59:54 +00:00
mateuszb
4010978a91 * a bit of work on campaigns 2012-09-19 17:41:22 +00:00
mateuszb
fb2f19b4c5 * some work on campaigns 2012-09-18 17:47:52 +00:00
Michał W. Urbańczyk
96a92d0f45 * fixed remaining part of #1071 — the screen surface has always to be created in the main thread
* hold events in the queue by value (less ptr jugglery)
2012-09-11 14:25:19 +00:00
Michał W. Urbańczyk
d935e87dd8 #1071 should be fixed. 2012-09-09 23:57:22 +00:00
Ivan Savenko
deb22b3674 - (linux) use empty video player if av_register_protocol function was not found 2012-08-18 10:29:54 +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
79f8e0ea3c Fail gracefully when file pointed by --start path doesn't exist. 2012-07-20 20:57:18 +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
Ivan Savenko
770a6e077c - handling of incorrect or missing configuration files (settings.json\defaultSettings.json)
- better code for recruitment window, fixes #1013
- minor tweak to adv.map classes
2012-06-22 11:40:16 +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
Ivan Savenko
49495c9caf - possibly fixed #966 and #958
- fixed crash on shutdown 
- fixed compile issue #973
2012-05-25 11:49:56 +00:00
Michał W. Urbańczyk
ee6e9fcc7f Fixed #947. 2012-05-22 21:08:16 +00:00
Ivan Savenko
45c2809a40 - pregame will use same resolution as main game
- disabled most of now unused code for changing resolution
- added missing spell effect sounds
- adventure map spells sounds
- remaining fixes for big endian systems
2012-05-18 17:35:46 +00:00
Ivan Savenko
90ff99d4eb - fixed ancient #31
- fixed #603
2012-05-14 16:29:06 +00:00
Ivan Savenko
82b60c00a2 - fixed compile issues. Renamed several "battleobstacleSplaced" to "battleobstacleplaced"
- implemented --disable-video command line switch
2012-05-05 08:32:55 +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
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
8baec8b093 Implemented #715 (load game from sys options). Fixed #224. Minor improvements. 2012-04-09 02:53:50 +00:00
Michał W. Urbańczyk
d9064f4f7d Implemented #714 — restart functionality, including quick restart tweak (bound to CTRL+R). 2012-04-08 03:06:27 +00:00
Michał W. Urbańczyk
d6223dd137 Fixed #686.
Minor changes.
2012-04-08 02:29:11 +00:00
Michał W. Urbańczyk
b874295b3a Really fixed #918. 2012-04-08 01:43:40 +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
77b13404c0 Fixed #888. 2012-03-01 13:36:58 +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
Ivan Savenko
2018fc09a4 - fullscreen config option will take effect immediately
- fixed bug with highlightable buttons
- added several missing spells sounds
2012-02-24 20:41:14 +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
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
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
Frank Zago
1f9e97005f When changing resolution, both screen? and res? must be set. Fixes #813. 2011-09-25 16:39:13 +00:00
Frank Zago
6dd9d416b4 Fixed #812. 2011-09-24 01:24:11 +00:00
Frank Zago
c4b8039c1e Added a missing rturn in CGameHandler::isAllowedExchangeForQuery. Fixed several typos. 2011-09-24 01:15:36 +00:00
Frank Zago
4cad2f4587 Cache the selected graphic resolution instead of looking it up many times. 2011-08-24 04:13:45 +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
a043bfa44a * Reinstated music player. Added terrain music. To MSVC users: you need the recently uploaded libraries pack for this to work! [ http://download.vcmi.eu/msvc-pack.7z ]
* Not crash on empty (or 1-byte) lod file. (Case in SoD+WoG installations, where h3ab*.lod are dummies.
2011-08-17 20:44:14 +00:00
Michał W. Urbańczyk
05f166f751 Portability fix for „Win64”. 32-bit DLLs (bink, smack) cannot be loaded, so an empty player-placeholder is used to capture calls we can't properly handle.
Probably some fixes for Linux will be needed. (I guess the whole thing could use some refactoring to unify more code)
2011-08-08 07:12:18 +00:00
beegee1
55e7959fd9 * Bonus system caching updated, partially rewritten, much more robust, thread-safe
* Adjusted projectile speed, trebuchet canon speed
2011-07-13 18:39:02 +00:00
Michał W. Urbańczyk
d88b6b1bb3 Interactive mode for ERM interpreter. 2011-06-23 21:42:30 +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
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
Michał W. Urbańczyk
601bee9c0f Fixed unitialized ptr from previous commit. Added classicCreatureWindow option to the config, deciding whether classic or the new creature window will be used. Added switchCreWin console command for switching this option run-time. Garrison slots now shouldn't redraw themselves on top of creature window. 2011-05-25 13:11:03 +00:00
beegee1
66b708c168 * PreGame interface gets now redrawn every frame.
* Changed PreGame event handling and update/draw order.
* Changed mouse cursor drawing in PreGame
* Fixed linux bug where main menu WOG animation gets played only once, windows/linux video handling is now more similar
* Minor code improvements
2011-04-17 18:02:13 +00:00
beegee1
157002fe68 Better implementation of the framerate manager, FPS timer added, minor improvements 2011-04-05 17:38:24 +00:00
Ivan Savenko
c6f1d87ede - fix for #95 and #602
- implemented animation for new town buildings
2011-03-22 13:19:07 +00:00
Ivan Savenko
7209f158a1 - gcc/Linux fixes
- added --nointro parameter to skip intro videos
- minor fixes to scenario selection menu
2011-03-19 22:27:05 +00:00
Michał W. Urbańczyk
207e573001 Fixed #645 by reverting support for screen scrolling [there are still some remains in settings file]
Removed some unused code.
2011-03-01 09:57:18 +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
ed07cfe073 Configurable duels. 2011-01-21 02:36:30 +00:00
Michał W. Urbańczyk
a940daba5e A handful of fixes for artifacts, minor for for battles. 2011-01-15 02:17:56 +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
2cf6729eee Towards duel support. 2010-12-25 01:43:40 +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
b15deaa203 * more constTransitivePointers in GameInfo, separated client GUI classes from it, moved def handlers from CGDefInfo 2010-12-19 14:39:56 +00:00
mateuszb
5806976a9a * towards ConstTranssitivePointers in CGI 2010-12-18 22:11:28 +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
Ivan Savenko
9771dd12ff - changes in LodHandler:
-- file type (text, image...) can be specified in getFile(), all hacks removed
-- replaced Nodrze with std::set
-  some gcc warnings fixed
2010-11-09 11:27:58 +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
mateuszb
fc79b9b6cf * partial implementation of hero crossover
* minor fixes to resolution handling
* other minor fixes and changes
2010-08-28 14:52:20 +00:00
mateuszb
d1bfe4cbd6 * a bit better screen scrolling for small resolutions
* a bit optimized terrainRect
2010-08-26 15:33:55 +00:00
mateuszb
7cad2364fe * minor fixes for screen scrolling 2010-08-23 16:13:30 +00:00
mateuszb
6b8718b046 * partially done support for resolutions smaller than 800x600 by screen scrolling 2010-08-23 15:16:40 +00:00
mateuszb
d681afe1c1 Changes towards campaign support. 2010-08-20 13:34:39 +00:00
Michał W. Urbańczyk
4aa60cd40e Minor changes. 2010-08-18 09:50:25 +00:00
DjWarmonger
084a0148c7 Compile fix + minor changes. 2010-08-17 15:16:08 +00:00
mateuszb
9445e5b184 * small refactoring
Please don't touch CGI->state directly in client code - use callbacks instead. I'd like to make some mechanics-critical handlers in CGI const - a lot of work, certain changes have been done here.
2010-08-16 09:54:09 +00:00
Michał W. Urbańczyk
78f44dc648 Support for 16bpp displays. Possible optimizations. 2010-08-05 11:02:18 +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
4140711b6d Version set to 0.82.
Updated changelog.
Fixed crashes on losing.
2010-08-01 14:46:19 +00:00
Michał W. Urbańczyk
c6653949e1 Fixed #90, #581, #567.
Broken #87
2010-08-01 14:04:48 +00:00
Michał W. Urbańczyk
ff078dc440 Fixed #522 (probably), #529, #540.
Version to be released as dev build 0.81b
2010-07-24 11:46:04 +00:00
Michał W. Urbańczyk
9febb357ff Fixed #504. More logging for #419. 2010-07-14 01:08:27 +00:00
Michał W. Urbańczyk
fa4ee94cf9 Fixed #484. Preliminary support for bonus limiters/ 2010-07-12 10:20:25 +00:00
Michał W. Urbańczyk
9af18cf487 Fixed #464 and #467 2010-05-31 20:38:14 +00:00
mateuszb
adbc142ff0 * a bit of campaign support 2010-05-08 18:56:38 +00:00
mateuszb
943c433d3f * moved mapHandler to client folder 2010-04-06 08:59:24 +00:00
Frank Zago
d2d076cd23 Added command line parser. 2010-04-03 22:06:50 +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
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
85f463e479 Several fixes for pregame:
Fixed #240, #255, #397, #411
2010-03-05 22:51:09 +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
mateuszb
4d9d54735f * campaigns, part 1
* minor changes
2010-02-08 14:38:06 +00:00
Ivan Savenko
3aefb896fe - Created config file for true type fonts (disabled by default)
- Implemented buildings with bonuses for defending hero (glyphs of fear, fountain of fortune, some grails)
- Minor fixes
2010-02-04 15:50:59 +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
mateuszb
23a32ebf7a * fixed bug #20
* minor changes
2010-01-29 16:19:12 +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
Frank Zago
39ad6b0270 Only include SDL_syswm.h on Windows. 2009-12-03 04:01:14 +00:00
Michał W. Urbańczyk
4bfc161adc Fixed #237.
Implemented #132 for Windows.
2009-11-28 17:21:54 +00:00
Frank Zago
6b5feb63e6 Implemented "main menu" in-game option. 2009-11-01 01:15:16 +00:00
Frank Zago
7471372074 Fixed several crashes when exiting. 2009-10-26 05:39:30 +00:00
Frank Zago
b02d4c1c2f (linux) Manage one directory per user for save games and config. 2009-10-10 05:47:59 +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
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
Michał W. Urbańczyk
6bdfddd0c4 Mostly implemented Scenario Information and Save Game windows. Adventure Options Window (crash after closing it is known, will be soon fixed). Several minor improvements for pregame. Arrogance will be selected by default when starting a new game. 2009-08-27 08:04:32 +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
mateuszb
e892913635 * support for battles in creature banks (hopefully) 2009-08-17 10:47:08 +00:00
Michał W. Urbańczyk
b4070c6b3e Third part of GUI reorganization:
* Rewritten pregame
* FNT fonts support
* Several additions to GUI system. 

Changes are significant, some things may be broken.
2009-08-17 08:50:31 +00:00
Michał W. Urbańczyk
1d765e8f29 Second part of GUI reorganization. Some things may not work properly. 2009-08-11 16:05:33 +00:00
Michał W. Urbańczyk
425791f27e "onlyai" command - game starts with no human players, only AI. 2009-08-07 23:17:12 +00:00
Michał W. Urbańczyk
a91ab8872b First part of GUI reorganization: extracted CGuiHandler from CPlayerInterface.
Minor fixes for Creature Generators and recruitment window.
2009-08-06 22:36:51 +00:00
Michał W. Urbańczyk
92ef19942f Splitting buttons in the exchange window. Minor fixes. Updated changelog. Version set to 0.73. 2009-08-01 19:25:12 +00:00
Michał W. Urbańczyk
78afb07f52 New, experimental crashhandler for windows (creates minidumps).
Several minor fixes and improvements.
2009-07-31 20:10:22 +00:00
Michał W. Urbańczyk
ec3b254c83 Castle interface: improved town scrolling.
Minor changes for future loading-without-restarting.
2009-07-20 08:18:33 +00:00
Michał W. Urbańczyk
eb40ade906 * saving system options
* saving hero direction
* minor changes in saving
2009-07-18 03:13:13 +00:00
Michał W. Urbańczyk
ac175895b1 MKinor bugfixes.
(cf http://vcmi.antypika.aplus.pl/forum/viewtopic.php?p=2980#2980 )
2009-07-15 23:58:47 +00:00
Michał W. Urbańczyk
db2f8c1d7c * capitol bar in town hall is grey (not red) if already one exists
* disabled autosaving on first turn
* bonuses from bonus artifacts
* fixed crash on battle with neutral creatures
* minor improvements
2009-07-10 23:40:10 +00:00
Michał W. Urbańczyk
b551f6a72b Partially done support for external creature dwellings. 2009-07-06 19:41:27 +00:00
Frank Zago
6be7a77fee Linux video player updates. 2009-06-27 23:33:59 +00:00
Michał W. Urbańczyk
60f7048662 Finished BIK handler. Refactored CVideoPlayer. Added intro and main menu animation. (Win only). 2009-06-24 06:56:36 +00:00
Michał W. Urbańczyk
9ff6501ba3 Mostly done .BIK video handling (WIN only).
Refactoring.
2009-06-23 08:14:49 +00:00
Frank Zago
a11ea59418 Video player compilation. 2009-06-20 01:40:52 +00:00
Frank Zago
be806d7942 Use right path separator. 2009-06-09 05:02:22 +00:00
Michał W. Urbańczyk
a17936908a * updated changelog
* version set to 0.72
* integrated save format version to the CLoadFile
* fixed problems on entering non-number as resolution number
* minor improvements
2009-06-01 22:31:11 +00:00
Frank Zago
566a99932b Enable key repeats. Useful for the map selection screen. 2009-05-29 03:03:19 +00:00
Michał W. Urbańczyk
4581c30b20 * VCMI won't try to calculate path when clicking terrain on the other map level then that of currently selected hero (caused hangs)
* Mines / Resource Silos won't give income in the first turn
* Double click on hero slot during stack splitting won't crash
* Fixed problems with updating buttons / minimap
2009-05-24 23:21:55 +00:00
Frank Zago
8e2a6466e2 Split audioh into soundh and musich. Derive both from a new CAudioBase class. Fixed crash when there is no sound card present. 2009-05-22 04:14:59 +00:00
mateuszb
429b226517 * moved a few files 2009-05-20 10:08:56 +00:00