Ivan Savenko
ffd7144df8
Implemented identifiers mapping for town buildings
2023-05-31 23:01:57 +03:00
SoundSSGood
021f94a579
artifact utils
2023-05-17 17:00:31 +03:00
Konstantin
05eccbc2bb
vcmi: split bonus to enumerator and HeroBonus.h
2023-05-03 18:01:06 +03:00
nordsoft
80220fda5b
Merge remote-tracking branch 'upstream/develop' into vcmi-campaign
...
# Conflicts:
# lib/mapping/CMap.h
2023-04-17 04:54:57 +04:00
Ivan Savenko
65e4ce9ffe
Update to c++17
2023-04-15 17:20:38 +03:00
Ivan Savenko
5589e973a8
Fixed parsing of hota 'arena' map format hacks
2023-04-15 17:20:38 +03:00
Ivan Savenko
22558551bf
Fix parsing of invalid data from h3m
2023-04-15 17:20:38 +03:00
Ivan Savenko
2c2c2c8fe0
Slight tweaking of logging of h3m edge cases
2023-04-15 17:20:38 +03:00
Ivan Savenko
f84665b5ec
Fixed loading of maps with objects owned by non-existing players
2023-04-15 17:20:38 +03:00
Ivan Savenko
f997241da1
Throw exception on loading not supported hota duel/arena maps
2023-04-15 17:20:38 +03:00
Ivan Savenko
d6a3c0e666
Cleaned up handling of hota map format versioning
2023-04-15 17:20:38 +03:00
Ivan Savenko
5b658462a1
Renamed army formation enum value
2023-04-15 17:20:38 +03:00
Ivan Savenko
b1e7774bbd
Fixed parsing of hota format '0'
2023-04-15 17:20:38 +03:00
Ivan Savenko
1b6ece1367
Formatting and renames of H3M readers, no functionality changes
2023-04-15 17:20:38 +03:00
Ivan Savenko
de855085f0
Added information on banks, seer hut and monster properties
2023-04-15 17:20:38 +03:00
Ivan Savenko
ea8aeef8c0
Implemeted parsing of HotA Seer Huts
2023-04-15 17:20:38 +03:00
Ivan Savenko
88096de7e4
Fixed parsing of HotA H3M format, including Seer Huts
2023-04-15 17:20:38 +03:00
Ivan Savenko
46239215af
Implemented parsing of HotA map objects (except for Seer Hut)
2023-04-15 17:20:38 +03:00
Ivan Savenko
3790661fa6
Refactored loadObject() monstrocity into set of smaller methods.
2023-04-15 17:20:38 +03:00
Ivan Savenko
c0e9eb6eb1
HotA maps up to objects block can be parsed
2023-04-15 17:20:38 +03:00
Ivan Savenko
838d45b32c
Implemented parsing of HotA h3m header
2023-04-15 17:20:38 +03:00
Ivan Savenko
f93335d678
Cleanup and formatting of H3M loader code
2023-04-15 17:20:38 +03:00
Ivan Savenko
3738171b21
Refactoring of H3M loader to make HotA format support easier
...
- extracted low-level reader from MapFormatH3M class
- added separate structure to define version-specific values
- cleared up some H3M format edge cases
- replaced witch hut skill vector with set
- converted several fields to enum type
2023-04-15 17:20:38 +03:00
nordsoft
d244702abc
Read and write mods into map
2023-04-12 02:59:55 +04:00
Konstantin
fedf7d377c
vcmi: remove TFaction
...
This is a huge change and will break save compatibility
2023-04-10 19:28:16 +03:00
Konstantin
11b237a23c
vcmi: massive refactoring v1
2023-04-05 22:33:12 +03:00
Ivan Savenko
307065a633
Merge beta into develop
2023-04-04 16:06:20 +03:00
Tomasz Zieliński
392061e97e
Fix loading towns which in OH3 editor have defined horde buildings level 1 - 5 (inluding random town).
2023-03-25 11:17:49 +01:00
Konstantin
bbbbfe00f0
Modernize resourceSet
2023-03-17 02:26:54 +03:00
Ivan Savenko
06e5d37fbd
Fixed incorrect error messages from translations
2023-03-14 19:55:08 +02:00
Ivan Savenko
a4ef9fd0b8
Added h3m strings generation to 'convert txt' command
2023-03-14 17:54:37 +02:00
Ivan Savenko
27cf4d1cd5
Removed non-translatable string
2023-03-05 17:39:27 +02:00
Ivan Savenko
260f6d626c
Implemented translations for H3M maps
2023-03-05 17:39:27 +02:00
Ivan Savenko
5b767d8b0d
Keep new skills from mods active in h3m maps
2023-03-05 17:39:27 +02:00
Ivan Savenko
f653d22f99
Fixed encoding of strings in h3m maps
2023-03-05 17:39:27 +02:00
Ivan Savenko
4260726e4b
Provide encoding information to maps & campaigns loaders
2023-03-05 17:39:27 +02:00
Ivan Savenko
bd70b6fabd
Unicode conversion functions now require source encoding
2023-03-05 17:39:27 +02:00
Ivan Savenko
f65c6ad275
fix regressions from modernization
2023-02-15 14:27:12 +02:00
Konstantin
b16f66477c
vcmi: modernize lib/mapping
2023-02-14 14:22:13 +03:00
Ivan Savenko
05a1d7c6e3
All text for factions/towns/building are passed through translator
2023-01-20 15:18:36 +02:00
Ivan Savenko
388ed88b5d
All artifact strings now pass through translator
2023-01-20 15:18:36 +02:00
Ivan Savenko
fa6f7513e8
All heroes-related strings are passed through translator
2023-01-20 15:18:36 +02:00
Ivan Savenko
e48bd39b9c
Moved road & river handlers into a separate file
2023-01-11 15:17:24 +02:00
Ivan Savenko
1e37e66e6c
Replaced Terrain::BORDER and WRONG with NONE
2023-01-10 20:09:09 +02:00
Ivan Savenko
4f3ea0d1d9
Renamed Terrain.h/cpp -> TerrainHandler.h/cpp
2023-01-10 00:01:35 +02:00
Ivan Savenko
7c7ae26e67
Map/Road/River identifiers are now private members
2023-01-10 00:01:35 +02:00
Ivan Savenko
e1799379dd
Terrain/Road/River handler are now in compileable state
2023-01-10 00:01:35 +02:00
Ivan Savenko
1468f6aded
Converted terrainTypeHandler into proper handler class
2023-01-10 00:01:35 +02:00
Ivan Savenko
2f5ee44cbe
Fixes patrol position initialization on H3M load
2023-01-09 18:34:13 +02:00
Ivan Savenko
25bceda4ea
Added convertToVisitablePos/convertFromVisitablePos to CGHeroInstance
...
This method replaces old convertPosition, but with more clear names and
without hardcoded magic constants.
2022-12-09 14:42:47 +02:00
Ivan Savenko
facf77b3ae
vstd::unique -> std::unique
2022-12-07 23:36:20 +02:00
Ivan Savenko
d85ee019ec
Removed CGHeroInstance::convertPosition method
2022-12-07 22:51:32 +02:00
Ivan Savenko
49cbd5adc9
CGHeroInstance::convertPosition is no longer static method
2022-12-07 22:34:08 +02:00
SoundSSGood
909dcb82fa
use ArtifactID
2022-11-29 00:32:18 +02:00
lainon
7fdad4e0f6
Code refactor following C++ standard and condition fixes
2022-11-15 03:20:55 +03:00
Andrii Danylchenko
7618bc7425
Mantis-2934: fix conditions to upgrade town in h3m format parser
2022-10-23 16:40:07 +03:00
Andrey Filipenkov
aa217236b3
check amount of artifacts on hero when checking requirements of a quest that requires artifact(s)
...
fixes case when 2 or more identical artifacts are required
2022-10-01 09:28:32 +03:00
Tomasz Zieliński
f386f42166
Merge remote-tracking branch 'origin/develop' into terrain-rewrite
...
# Conflicts:
# lib/Terrain.cpp
# lib/Terrain.h
# lib/battle/CBattleInfoEssentials.cpp
# lib/rmg/ObstaclePlacer.cpp
# lib/rmg/RiverPlacer.cpp
2022-09-27 07:50:17 +02:00
Tomasz Zieliński
25f66097cc
Handle RoadType by value / reference
2022-09-26 10:20:39 +02:00
Tomasz Zieliński
f804f8a326
Store RiverType by value, handle by reference
2022-09-26 09:51:36 +02:00
Tomasz Zieliński
2bd30556a3
Store TerrainType by havlue and handle by reference
2022-09-26 09:17:55 +02:00
Andrey Filipenkov
ff635edc0b
wrap all library code into namespace if VCMI_LIB_NAMESPACE is defined
...
preparation for having client and server in a single process
2022-09-24 15:55:21 +03:00
Tomasz Zieliński
ebe45d512d
Moved roads and rivers to TerrainTypeHandler, by analogy to TerrainType.
2022-09-23 16:24:01 +02:00
Tomasz Zieliński
494b0f0226
First version that compiles
2022-09-21 11:34:23 +02:00
DjWarmonger
7ba271edf1
Rotation rebase2 ( #912 )
...
* Instead of [x][y][z] coordinates, map will be stored as [z][x][y].
* Nullkiller AI can get it too.
* Use boost::multi_array instead of nested vectors
* In MapHandler too
* Rotate foreach algorithms, too
* VCAI gets rotated, too
2022-09-18 17:39:10 +03:00
DjWarmonger
3d2dc2335b
Switch ObjectTemplate to shared_ptr<const> ( #870 )
2022-09-11 16:13:53 +03:00
Nordsoft91
aaa07e4d2e
New terrain support - part 1 ( #755 )
...
Initial support of new terrains
2022-09-11 11:31:26 +03:00
Dmitry Orlov
9e3c4b69c4
Minor fixes
2021-12-22 21:37:56 +02:00
Dmitry Orlov
a65feb29f5
Fixed: Advanced options window issues
2021-11-13 17:02:11 +02:00
AlexVinS
ecaa9f5d0b
Entities redesign and a few ERM features
...
* Made most Handlers derived from CHandlerBase and moved service API there.
* Declared existing Entity APIs.
* Added basic script context caching
* Started Lua script module
* Started Lua spell effect API
* Started script state persistence
* Started battle info callback binding
* CommitPackage removed
* Extracted spells::Caster to own header; Expanded Spell API.
* implemented !!MC:S, !!FU:E, !!FU:P, !!MA, !!VR:H, !!VR:C
* !!BU:C, !!BU:E, !!BU:G, !!BU:M implemented
* Allow use of "MC:S@varName@" to declare normal variable (technically v-variable with string key)
* Re-enabled VERM macros.
* !?GM0 added
* !?TM implemented
* Added !!MF:N
* Started !?OB, !!BM, !!HE, !!OW, !!UN
* Added basic support of w-variables
* Added support for ERM indirect variables
* Made !?FU regular trigger
* !!re (ERA loop receiver) implemented
* Fixed ERM receivers with zero args.
2021-02-14 19:05:43 +03:00
Dmitry Orlov
39de2f6435
Fix: Morale bonus should be shown correctly
2020-11-11 22:43:40 +03:00
John Bolton
a05ae78e67
Fixed lots of warnings.
...
Disabled the following (for MSVC only) that couldn't (or shouldn't) be fixed.
4003: not enough actual parameters for macro 'identifier'
4250: 'class1' : inherits 'class2::member' via dominance
4251: 'type' : class 'type1' needs to have dll-interface to be used by clients of class 'type2'
4275: non dll-interface class 'type1' used as base for dll-interface class 'type2'
2020-10-04 02:20:18 -07:00
Dydzio
2f15ca9406
Do not build pseudo-buildings explicitly with events
2019-06-04 22:29:07 +02:00
Henning Koehler
6ddcb079a4
Enabled new secondary skills to be created ( #438 )
...
* Universities, Scholars and Witch Huts may offer new skills
* Moved encode/decodeSkill to CSkillHandler
* Refactored CSkill interface and CSkill::LevelInfo image storage
* Legacy game constants renamed to ORIGINAL_XXX_QUANTITY
2018-03-31 12:56:40 +07:00
Nikolay Shalakin
3795985de9
Eliminate warnings / errors. Pull request #388
2018-02-11 15:17:14 +03:00
AlexVinS
15138c23de
Finished conversion to new logging API
...
* removed logger streams
* (float3|int3)::operator() -> (float3|int3)::toString(), it was too ugly and confusing.
2017-08-11 23:06:27 +03:00
AlexVinS
85e952f25f
Logging cleanup 3
2017-08-10 20:17:10 +03:00
AlexVinS
61e241308d
Logging cleanup
2017-08-10 19:52:05 +03:00
ArseniyShestakov
a4c0ad94b1
Code style: remove default value hints in definitions ( #342 )
...
Some are outdated and this is something IDE are useful for.
2017-07-15 14:08:20 +03:00
Arseniy Shestakov
dbcd79c48a
Code cleanup: remove double and unneded semicolons
2017-07-12 22:01:10 +03:00
AlexVinS
a31c28ec33
Unified war machine mechanics.
...
* it is possible to define new war machines
* added warMachine field to artifact configuration
2017-06-06 19:18:26 +03:00
AlexVinS
c66c66c5ae
Fixed https://bugs.vcmi.eu/view.php?id=2686
2017-05-29 12:42:23 +03:00
AlexVinS
fc55efb72d
Fixed CID 1375681
2017-05-28 15:16:40 +03:00
AlexVinS
a85b4cf2a5
* WIP on event condition format
...
* Hero portrait serialization
* Fix town spells serialization
* Added support for float exponential part in Json
* Added support for int64 in Json
* Added basic Hero definitions serialization
* Added rumors serialization
* Advanced player info serialization.
* Added Disposed heroes serialization, (!) not covered with tests yet
* Added Local event serialization
* Added Pandoras box serialization
* Added Seer hut reward serialization
* Added CQuest serialization
* Added API for map object instance names serialization.
* Added random dwelling options serialization
* Advanced town options serialization
* Advanced hero options serialization
* More map format tests
* A lot of fixes, cleanup and refactoring
2017-05-27 00:23:19 +03:00
AlexVinS
6dc47a2de0
Fixed use-after-free crash with quests registration in RMG.
...
* code taken from PR #200
2016-09-08 14:48:46 +03:00
Arseniy Shestakov
10dbbead2d
Fix indentation of logging code and around it
...
That wouldn't be as big issue if problem affected few files, but it everywhere in codebase.
Fixed it everywhere since in most files that is the only code with wrong indentation.
2016-03-12 04:46:21 +03:00
AlexVinS
4a37ed99ea
Fix duplicated block-visit regression
2016-02-26 00:42:49 +03:00
AlexVinS
dc5ad7d7b3
Make string instance names persistent
2016-02-22 19:26:42 +03:00
AlexVinS
4ebafa17b4
Remove unused placeholdedHeroes field
2016-02-21 22:12:58 +03:00
AlexVinS
e0af4a665a
Added hacks fot spell scroll support.
2016-02-13 19:43:05 +03:00
Vadim Markovtsev
3926920103
Rename radious -> radius
...
There is no such English word, "radious"
Some files get new lines in the end - BSD sed bug + best practices
2016-01-31 18:01:58 +03:00
ArseniyShestakov
6bb205b15b
CPathfinder: patrol support using getTilesInRange
...
For now we use getTilesInRange which isn't really correct for patrol, but good enough for first version.
2015-11-28 20:34:50 +03:00
ArseniyShestakov
d6a142ca3d
CMapLoaderH3M: support for patrol initialPos in readHero
2015-11-27 11:34:03 +03:00
ArseniyShestakov
7eebcb9d60
Artifacts: replace few more ints by ArtifactID
2015-11-07 11:46:58 +03:00
DjWarmonger
9577ef4bda
Minor tweak.
2015-04-07 13:43:33 +02: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
ArseniyShestakov
937ef0227b
Use ArtifactID instead of int when possible
2014-12-24 18:49:12 +03:00
Ivan Savenko
d1dd7eef48
Proper fix for #1712 - Building requirement tests are now fixed
...
- added minimize() method in logical expressions that will remove excessive elements
- replaced forEach() with morph() that allows replacing types in variant
2014-08-07 19:53:07 +03:00
Ivan Savenko
955552488e
- H3M parser will create objects that don't have data in map file via
...
object handler.
- Added large number of missing objects to config
2014-06-25 20:26:47 +03: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