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

137 Commits

Author SHA1 Message Date
AlexVinS
aa5e9fc959 get rid of global debug macros. 2015-02-14 22:43:16 +03:00
DjWarmonger
530a3e69bf Option to allow / ban certain types of town in a template. 2014-10-30 10:00:29 +01:00
Ivan Savenko
ab475195ac Banks now use new scheme as well
- Implemented Bank Constructor object.
- Merged Pyramid object into common Bank class. Banks can now grant
spells as part of their reward.
- Move bank config code to config/objects/creatureBanks.json. Note: WoG
banks are not updated yet, should be moved to WoG mod.
- Updated AI code so it can correctly evaluate bank danger (should be
generic enough for use with other objects)
- New files JsonRandom.* that contain routines for loading random
objects from Json (still WiP but should be stable)
2014-06-22 13:39:40 +03:00
Ivan Savenko
0a71e89f58 Created large number of missing objects in configs
Minor bugfixes in code
2014-06-17 14:57:47 +03:00
Ivan Savenko
836c466f81 - Implementation of overrides for towns
- Converted dwellings.json into new format
- Implemented "mapObject" entry in town format
- Removed capital/fort/village fields from town in favor of overrides
2014-06-15 19:43:01 +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
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
Ivan Savenko
b5160acbac Finalization of object type handler interface
- updated code to use new interface
- removed old DefObjHandler (todo - rename file)

Summary:
- most code but loading is now in place
- type names may deserve improvements (some of them are too similar)
- still barely compiles and not tested
2014-05-16 23:50:02 +03: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
29e98b2d51 - modhandler will only validate new, changed or mods that failed
validation last time.
- fixed several issues with modSettings.json file
- some refactoring of modhandler, still needs some work.
2013-11-09 19:10:16 +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
beegee1
1ac328635a - Added handler classes CRmgTemplateStorage and CTerrainViewPatternConfig to LibClasses
- Re-organized CMapGenerator
- Created CZone and CTemplate objects in the heap and used pointers
- Added stub classes CZoneGraphGenerator and CZonePlacer (include warnings of unused variables, please ignore them)
- Fixed CRandomGenerator bug that always the same number was produced
- Better structure of Visual Studio project files with using filters
- Updated project files (VS, CMake)
- Excluded compiler warning mismatched-tags (false positive)
- Fixed a bug when compiling with unit tests enabled
2013-08-17 12:46:48 +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
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
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
1e8e932323 Logging around #1237. Typos. 2013-05-30 12:14:39 +00:00
Ivan Savenko
b20f8fd3d4 - fixed uninitialized access into modHander
- fixed  #389
2013-04-28 15:06:14 +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
beegee1
f10ba48c77 - Fully integrated new logging API(ERM, Editor, missing parts) - Removed old logger 2013-04-11 15:58: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
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
alexvins
2eb8263e51 Basic Configuration for bonus types
* introduced new handler BonusTypeHandler
* config\bonusnames.json converted to common format and splitted info main and localizable parts
* hanlders initialization refactored
2013-03-06 18:49:56 +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
Ivan Savenko
5deb499e7e Last breaking change into mod system (will explain on forum)
- paths in "filesystem" node are now relative to mod directory
- "filesystem" entry in mod.json is now optional
- made "register object" log messages visible only in log
- minor fixes, including #1173
2013-01-16 14:28:49 +00:00
Ivan Savenko
ffe8b99369 - reorganized hero classes
- artifact iconIndex should work
- new file with hardcoded string constants: lib/StringConstants.h

Note: some minor bugs, will fix soon:
- slow to open hero window
- hero adventure map images serialization is broken\incorrect
2012-12-14 15:32:53 +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
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
DjWarmonger
e2bfd53c98 - Fixed some issues and crashes
- Simplified projectile handling. New creatures can now shoot.
2012-09-21 19:49:35 +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
DjWarmonger
abd4a96bf1 Very simple loading and adding new creatures. Needs testing. 2012-09-18 07:36:07 +00:00
Ivan Savenko
44cc848edc first part of town configuration:
- moved almost all loading to TownHandler
- CBuildings and CStructures are now part of CTown
- merged hall.json into buildings.json

Should not cause any crashes or glitches
2012-09-02 10:33:41 +00:00
Ivan Savenko
2dd9d943c9 - fix for missing grail 2012-08-25 13:29:46 +00:00
Ivan Savenko
cf15ca1cf0 - replaced loadToIt with better H3 parser.
- moved hero class to heroes.json
2012-08-25 08:44:51 +00:00
DjWarmonger
39d433c1c7 Moved game Modules to config file. 2012-08-24 09:37:52 +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
8040a81eec - fixed save games issues (#1044)
- hopefully some speedup for filesystem loading (#1048)
2012-08-07 11:28:52 +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
41480a489e Win compile fix (#974) 2012-05-25 14:53:56 +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
3bf76cb719 Fixed #216 and #907.
* CTRL+T will open marketplace window
* T in adventure map will switch to next town
* T in castle window will open a tavern window (if available)
* G will open thieves guild window if player owns at least one town with tavern
* various minor changes
2012-04-08 01:15:18 +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
Frank Zago
1a2323996e Move CTownHandler::loadStructures inside CTownHandler::loadNames and rename the latter with the former. 2011-08-26 03:10:56 +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
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
mateuszb
36fb9b0b6e * some progress in VERM interpreter 2011-04-16 17:39:38 +00:00
mateuszb
033c067144 * it shouldn't parse scripts yet 2011-04-10 16:42:20 +00:00
mateuszb
382e239e47 * a bit more of ERM/VERM interpreter 2011-04-10 16:39:34 +00:00
mateuszb
7874d84c4e * basic structure of ERM interpreter
* SHOW_FPS moved to settings.txt
* minor changes
2011-04-06 20:30:59 +00:00
mateuszb
ccecc6637f * partially done support for VERM
* MSVC compilation fix (using boost::ref is an error)
2011-04-01 19:09:05 +00:00
Ivan Savenko
407acce4c6 - gcc 4.5 / boost 1.46 compilation fixes
- configure will accept CXXFLAGS parameter correctly
- boost version check in ERMParser - to skip compilation with old boost
2011-03-29 17:16:10 +00:00
Michał W. Urbańczyk
07ea131c97 ERM parser won't crash when there is no Data/s folder (addressing issue #717) 2011-03-20 16:45:18 +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
mateuszb
b3ed75ab03 * first part of ERM parser 2011-03-19 17:06:46 +00:00
beegee1
fb929fa9b0 AB campaign selection screen added 2011-03-19 14:27:51 +00:00
Michał W. Urbańczyk
c9189119b9 Little more work on artifacts. 2010-12-29 21:04:22 +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
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
DjWarmonger
f6b97704c7 Partial support for random wandering stacks. Well, they are not 'that' random as don't use global ran() function. 2010-08-22 07:11:46 +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
d69ae9aa4c More logging for #520 2010-07-14 02:53:21 +00:00
mateuszb
8637b021cc * (hopefully) full reading of h3c
* minor changes
2010-02-12 15:04:01 +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
mateuszb
399f58f1af * partially implemented puzzle map 2009-08-31 15:57:15 +00:00
mateuszb
adcfb3c020 * second part of sieges
* minor changes
2009-08-26 14:09:55 +00:00
Michał W. Urbańczyk
9ff6501ba3 Mostly done .BIK video handling (WIN only).
Refactoring.
2009-06-23 08:14:49 +00:00
Michał W. Urbańczyk
1d5565b3a3 * updated project files for MSVC
* fixed a few includes paths
* it's possible to enter Tavern via Brotherhood of Sword
* fixes for statusbar
* fixes for townlist
* fixed crashes on building / clicking some buildings
* bumped version number to 0.71c
* bonuses from wearing more than one same artifact won't cumulate
2009-05-21 23:50:45 +00:00
Michał W. Urbańczyk
90fd75e66c * Removed trailing newline from settings.txt (caused warning)
* Sprite/Bitmap handlers moved to VCMI_Lib
* Moved volume sliders 1px down for better look
2009-05-09 16:18:27 +00:00
mateuszb
f9ae91d88c * further changes towards support for ranged spells
* added info about author & license in files
2009-04-15 14:03:31 +00:00
Michał W. Urbańczyk
7a9e323297 * fixed 8 hero limit to check only for wandering heroes (not garrisoned)
* srand at the beginning of handleConnection
2009-04-09 15:05:20 +00:00
Michał W. Urbańczyk
e3222fd34f * fixed mana limit info in the hero window
* added support for Scholar object
* possibly fixed problems with handling obstacles info
2009-04-08 19:55:50 +00:00
mateuszb
02309c5bb8 * fixed positions of stack queue and battle result window when resolution is != 800x600
* attack is now possible when hex under cursor is not displayed
* first part of obstacles support
2009-02-07 16:07:29 +00:00
Vadim Glazunov
8523fcbb43 Small GCC fixes. Autoconf/automake project files updated 2009-01-30 18:36:00 +00:00
Michał W. Urbańczyk
b895fa35cb * saving and resuming games should work!
(loading from the main menu, saving using "save [NAME]" command)
2009-01-12 20:05:56 +00:00
Michał W. Urbańczyk
3474fdaf05 * save/load partially working
* Arena and Witch Hut support
* improved support for Resources
* minor fixes and changes
2009-01-10 22:08:18 +00:00
Michał W. Urbańczyk
c6bcd61aba * animation of water tiles
* minor changes
2008-11-30 00:15:38 +00:00
Michał W. Urbańczyk
c4bcf7b880 * better support for non-800x600 resolutions
* Merged CPreGameTextHandler into CGeneralTextHandler and moved to VCMI_Lib.dll (update your project files)
* Genius AI will be used as a default AI
* more code for save/load
2008-11-28 01:36:34 +00:00
Michał W. Urbańczyk
856698bd80 * fixes for MSVC (it needs to have global variables from library explicitly exported)
* renamed logging variables to tlogX ('_' in var names looks ugly)
* cleaned it improved setting formations
* fixed crashbug on maps with random hero
2008-09-19 08:16:19 +00:00
Vadim Glazunov
a1dd7f22f9 gcc fixes(bad idea to call global vars such as log2, this name used by math function). Colored log support on some non-win32 platforms. Small Automake project update 2008-09-18 20:24:53 +00:00
Michał W. Urbańczyk
629d934810 * moved CConsoleHandler to lib (update project files)
* using winapi for better console handling with MSVC (I hope I didn't break anything at GCC)
* new logging system (use log0 - log5 for different priorities and colors (at msvc))
* using lists for storing activated interface objects
* more proper closing of server
2008-09-17 10:18:22 +00:00
Michał W. Urbańczyk
22ade5efbe * make compatible with boost 1.36.0 (there was breaking change in boost::function)
* randomizing spells in towns
* fixed reading forbidden structures
* support for heroes starting in town garrisons
* hopefully fixed problems with wrong town defs (village/fort/capitol)
* moved CSpellHandler.* to VCMI_Lib (project files must be updated)
* redone reading spell info
* added missing features to the fort screen
* minor improvements

* partially done mage guild screen
2008-08-20 06:57:53 +00:00
Michał W. Urbańczyk
e5a064f36b Improved threa-safety, almost finished building structures in towns. 2008-08-01 11:21:15 +00:00
Michał W. Urbańczyk
0c139e72f5 More changes for netcode/serialization
Removed not needed stuff
2008-07-25 17:28:28 +00:00
Michał W. Urbańczyk
300d540663 More changes / project files. 2008-06-14 10:20:18 +00:00