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

119 Commits

Author SHA1 Message Date
Zyx-2000
64365fa294 additional polishing 2016-01-19 11:56:03 +01:00
Zyx-2000
170e4283ae Small improvements to FileStream 2016-01-18 21:30:06 +01:00
Zyx-2000
cf61837ced replaced std::string with boost::filesystem::path in several places 2016-01-16 16:36:16 +01:00
Zyx-2000
933b7c1f5e some modernization of CFileInputStream implementation code 2016-01-12 23:40:24 +01:00
Zyx-2000
f9b255c896 Cleaner code & MSVC compatibility 2016-01-12 22:40:05 +01:00
Zyx-2000
99cf8069d7 FileStream files 2016-01-09 21:24:20 +01:00
Zyx-2000
203b2dccc3 hopefully fixed things 2016-01-09 21:23:55 +01:00
AlexVinS
37d0dad70a Merge branch 'develop' into feature/VCMIMapFormat1
Conflicts:
	lib/CArtHandler.cpp
2016-01-01 20:28:52 +03:00
ArseniyShestakov
1c0d4e3f6f Fix filenames in file headers 2015-12-08 09:53:14 +03:00
AlexVinS
3af255d1b9 Implemented terrain serialisation
* with test
2015-12-05 12:36:34 +03:00
AlexVinS
b683c29b6e Added modification time to zip.
* it is required to consider archive valid (by some tools)
2015-12-05 12:06:49 +03:00
AlexVinS
0cc7213a27 WiP on zip serialization
(-) still not works correctly
2015-12-05 12:06:47 +03:00
AlexVinS
f2164abf1b Wip on zip serialize fixes 2015-12-05 12:06:45 +03:00
AlexVinS
27a29bd035 Start implementing actulal json serialization 2015-12-05 12:06:44 +03:00
AlexVinS
1a8faeb0b9 Start implementing map saver 2015-12-05 12:06:42 +03:00
AlexVinS
0040b459c3 Add support of CIOApi to CZipStream and CZipLoader (unused, untested) 2015-12-05 12:06:41 +03:00
AlexVinS
b3ac146ba9 Define bridge interface to minizip IOAPI 2015-12-05 12:06:40 +03:00
AlexVinS
c965f9d02d Added draft of IO memeory buffer 2015-12-05 12:06:33 +03:00
AlexVinS
221ec55f51 Define basic design of output streams 2015-12-05 12:06:32 +03:00
Vadim Markovtsev
e4b1ef1405 Add "override" to virtual overriden methods 2015-10-13 21:05:36 +03:00
ArseniyShestakov
1396476869 Merge pull request #79 from ArseniyShestakov/fixIssue1557
Only remove extension if it belongs to specified file type
2015-02-07 18:17:22 +03:00
ArseniyShestakov
4eed1716d5 Fix tiny memory leak on opening/closing new game window
Find this one when tested huge pack of 5000+ maps. Each time I opened/closed Single Scenario window memory usage was growing for ~1MB.
It's happen because inflateEnd is freed related structures, but not freed inflateState that created outside of zlib code.
2015-02-07 17:30:57 +03:00
ArseniyShestakov
8f08effe93 Check that resource type set before setName used 2015-02-06 10:51:32 +03:00
ArseniyShestakov
19d1de3142 Only remove extension if it belongs to specified file type
This one fixes issue 1557
Now it's possible to load maps with dots in filename.
2015-01-26 16:40:49 +03:00
AlexVinS
66b022f93e initializer lists part1 2014-10-02 19:43:46 +04: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
1647b3670c Merge pull request #35 from rhn/rhn
Fixes to sound handling.
2014-09-04 20:26:32 +03:00
josch
9bef590960 use system version of minizip 2014-09-02 17:00:20 +02:00
Karol
958839668c VCMIDirs update #5
- Minor fixes
- string based paths -> boost::filesystem::path paths (I hope it's
final)
- New user data path on windows
- New moving dir method on windows.
2014-08-21 22:26:28 +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
rhn
a6151a5296 added FLAC support 2014-08-06 17:19:53 +02:00
beegee1
5139378319 - migrated boost::function/ref/bind to std:: variants 2014-08-04 20:33:59 +02:00
AlexVinS
8a3b997fa5 fix a few comments. No code changes. 2014-05-21 13:02:20 +04:00
O01eg
927eb33c11 Split IGameCallback to reduce memory required to debug compilation. 2014-04-19 21:44:21 +04:00
Ivan Savenko
9c0df68cb8 Fixing spelling mistakes. Patch from josch, fixes #1759 2014-03-23 12:59:03 +00:00
Ivan Savenko
7f6f125b4c First part of submods support.
- VCMI will load mods from Mods directory recursively. Submods must be
placed into additional Mods directory, e.g.
<data dir>/Mods/<mod name>/Mods/<submod name>

- submods will be loaded only if their parent mod was enabled
- submods namespace for objects will be "<parent mod ID>.<submod ID>"

- TODO: Launcher is not aware of submods yet (seems to be working but
may behave incorrectly)
2014-03-15 10:57:34 +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
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
43ef565e7e Added serializer-based class able to make deep copies of objects — CMemorySerializer.
CGameState::init will work on the deep copy of StartInfo.
Some casts to reduce warnings.
2014-02-08 21:54:35 +00:00
Ivan Savenko
562dc02b3b - fixed crash on decompressing some files from gzip stream (reported on
forums)
2014-02-08 10:30:10 +00:00
DjWarmonger
51e6961d08 Compile fix for MVS. 2013-12-29 15:48:56 +00:00
Ivan Savenko
0c5be52a42 Win/loss conditions based on logical expressions, yet another large
changeset:
- victory/defeat will be detected using triggered events
- vcmi will convert h3 conditions into set of triggered events
- it is possible to either change number of days without towns or even
remove this loss condition completely
- possibility of custom win/loss text and icons in pregame (no longer
connected to win/loss conditions)

Still missing:
- No interface to pass custom events/victory conditions into the game 
- AI would benefit from improvemets (handle all victory conditions,
select best one to fulfill)
- You have X days till defeat message still hardcoded to 7 days
2013-12-29 11:27:38 +00:00
Ivan Savenko
29f4a12814 - fixed some evil memory leaks
- fixed recursive dependency of castles
2013-12-19 19:43:16 +00:00
Ivan Savenko
c7899fc14a - improved detection of missing files
Now vcmi will detect situations when file is present in another mod
which is not marked as dependency
2013-12-13 08:53:44 +00:00
Ivan Savenko
ed329c5a1f - minor refactoring for filesystem, moved checksum calculation to
loading stage from initialization
- fixes for launcher
2013-12-11 17:12:39 +00:00
Ivan Savenko
2b3405fa50 - minor optimizations
- fixed incorrect error reporting in launcher
- set WoG version to "0.0.0" so full version will be installed from repo
in future
- updated debian required packages list
- launcher will be enabled by default
2013-11-14 13:21:09 +00:00
Ivan Savenko
29d655c621 Trying to organize mod handler a bit better.
- vcmi will now generate checksum for base game (H3 data)
- only text files in Data in config directories affect checksum
2013-11-11 20:11:51 +00:00
Ivan Savenko
f691061d94 A bit improved error reporting for checksum calculation. 2013-11-10 13:43:55 +00:00
Ivan Savenko
55577d0ac4 - fixed missing DLL_LINKAGE
- use precalculated checksum for zip files
- UNUSED macro to silence some warnings
2013-11-09 13:49:36 +00:00
Ivan Savenko
dd73573c5c - vcmi can now calculate crc32 checksum of a file
- reorganized internal filesystem structure - all files from one mod are
now grouped in same FS node
- modhandler will now calculate crc32 checksum for each mod
- modhandler now knows validation status of each mod

todo - use checksum to determine mods that have not changed since last
start and disable validation for them.
2013-11-08 20:36:26 +00:00
Ivan Savenko
ee6cdbeffe went through the rest of cppcheck warnings, mostly harmless 2013-11-07 12:48:41 +00:00
Ivan Savenko
e2c037402c Unicode support.
- boost-locale library is now required (boost 1.48 or higher)
- Unicode namespace that contains UTF-8 handling
- All non-ASCII strings from H3 data will be converted to UTF-8 during loading
- All JSON files MUST use UTF-8. 
- H3 data encoding can be selected via launcher or directly in config file
2013-10-25 21:45:14 +00:00
Ivan Savenko
208df34fc2 bigfixing & new file: launcher/jsonutils.cpp
- launcher uses json parser from vcmi lib instead of one from Qt #1469
- fixed abilities overrides for some creatures #1476
- fixed hero portraits in seer huts #1402
- ttf fonts will render text in utf-8 mode. Not really useful at this point
- new settings entry, available in launcher: encoding. Unused for now.
2013-09-21 18:29:26 +00:00
Ivan Savenko
e13dc872e0 - support for Chinese fonts (GBK 2-byte encoding)
- fixes #1446
2013-09-08 16:49:23 +00:00
DjWarmonger
0c717618c5 Project finally compiles. 2013-08-23 09:19:13 +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
DjWarmonger
937effb649 More or less working project for Visual Studio. 2013-07-31 14:08:18 +00:00
Ivan Savenko
1d9139303a introduced zip support into vcmi
- minizip library is now part of sources, located at lib/minizip
- cmakefiles will compile minizip as dynamic library (Note: only 2 files used by vcmi are included in minizip.so)
- zip files can be loaded similar to other archives via filesystem.json
- mods can use Content.zip instead of Content/ directory. Files in directory will replace files in archive.
2013-07-30 15:02:55 +00:00
Ivan Savenko
9f7c89d5e3 - more filesystem logging and possible fix for Win
- added missing destructor for loaders
- added missing override kewords
- added unused for now ARCHIVE_ZIP filetype
2013-07-29 10:08:02 +00:00
DjWarmonger
a314a81fd5 Compile fixes. Game doesn't even launch, however. 2013-07-28 18:57:07 +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
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
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
3943c10f1a fixes #1237 - if server savegame entry is missing it will be created in "update mode". 2013-05-30 16:25: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
Ivan Savenko
4db13ba845 - proper destructors for handlers and lib objects 2013-04-21 16:38:31 +00:00
Ivan Savenko
0cf969d508 - console logger by default uses same format as previously (no extra data)
- a lot of changes in configs;
- - update to creature format - abilities are now json structure
- - multiple bugfixes revealed by validation
- made schemas a bit more strict
- creatures data can be replaced via mods
- it is possible to validate vcmi configs using schemas (disabled)
2013-04-11 19:24:14 +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
ee51c5beb5 - Renamed /lib subfolders to lowercase 2013-04-07 10:48:07 +00:00