Ivan Savenko
823ffa7a07
Always use ResourcePath for referencing images and animations
2023-09-04 18:22:34 +03:00
Ivan Savenko
ce20d913e0
Fix checking PlayerColor's for validness
2023-08-27 01:35:38 +03:00
Ivan Savenko
e2718db791
Converted several enumerations into constants
2023-08-25 13:38:02 +03:00
Ivan Savenko
e54287ea5d
Converted remaining identifier to new system
2023-08-25 13:38:02 +03:00
Ivan Savenko
0240ee886d
Converted (almost) all namespace enum's to enum classes
2023-08-25 13:38:02 +03:00
Ivan Savenko
62cd8b12d4
Converted several namespace enums to enum class
2023-08-25 13:38:02 +03:00
Ivan Savenko
17d3d663ee
Converted creature ID and spell ID to new form
2023-08-25 13:38:02 +03:00
Ivan Savenko
ec8d31bbfc
First step at unifying game identifiers code
2023-08-25 13:38:01 +03:00
Nordsoft91
96e820ddac
Merge pull request #2517 from Laserlicht/folders
2023-08-17 10:09:37 +04:00
Ivan Savenko
f13a53c1d9
Merge remote-tracking branch 'vcmi/beta' into develop
2023-08-12 17:28:47 +03:00
Michael
52f00ec308
extra function: getFormattedDateTime
2023-08-12 01:13:03 +02:00
Michael
4d507f3d8a
format fix
2023-08-12 00:00:35 +02:00
Michael
f0b60cf166
suggestions; use internally uppercase; fix; fullname
2023-08-11 23:56:20 +02:00
Ivan Savenko
f0ede46186
Clear spell list, not hero army
2023-08-07 19:12:04 +03:00
Ivan Savenko
62fddca21e
Split massive CModHandler class/file into multiple parts:
...
- IdentifierStorage is now a separate handler in VLC
- Renamed ModHandler::Incompatibility exception to ModIncompatibility
- Extracted ModScope namespace from ModHandler
- Extracted ModUtilities namespace from ModHandler
- Split CModHandler.cpp on per-class basis
- Replaced some direct members with unique_ptr to reduce header includes
2023-07-30 22:17:47 +03:00
Ivan Savenko
4d08a131d3
Reorganization of boost filesystem usage
...
- Removed (most of) boost filesystem namespace usings
- Replaced boost::filesystem::fstream with std::fstream and different
constructor that should be available on any plaftorm
2023-07-28 19:12:04 +03:00
Tomasz Zieliński
ad5081f9fe
Merge remote-tracking branch 'origin/develop' into ban_stuff_on_water_maps
2023-07-19 12:05:30 +02:00
Tomasz Zieliński
03b3771f19
Ban Navigation on maps without water
2023-07-18 10:54:36 +02:00
Tomasz Zieliński
025b0814c8
+ Handled banning spells and artifacts
...
+ Rename allowedSpell => allowedSpells
2023-07-17 17:21:28 +02:00
Ivan Savenko
6fd3c0f8bc
Fixes loading of hota maps with enabled wog mod (identifiers conflict)
2023-07-17 16:38:23 +03:00
Ivan Savenko
22b09f7164
Fixed parsing of some hota campaigns
2023-07-17 16:22:43 +03:00
Ivan Savenko
81d0ac4d6b
Removed excessive warnings from console - this is legal case
2023-07-17 16:22:29 +03:00
Tomasz Zieliński
bda126a1fd
Merge remote-tracking branch 'origin/develop' into ban_stuff_on_water_maps
2023-07-16 18:54:50 +02:00
Ivan Savenko
463efea7bb
Fix hero retreating handling & code cleanup
2023-07-15 19:55:30 +03:00
Ivan Savenko
19ace6a849
Moved hero pool logic to the separate files
2023-07-15 19:55:29 +03:00
Tomasz Zieliński
a200e87640
Merge remote-tracking branch 'origin/develop' into ban_stuff_on_water_maps
2023-07-15 14:36:32 +02:00
Ivan Savenko
37f3560b9c
Fix build in debug mode
2023-07-11 15:21:31 +03:00
Tomasz Zieliński
700d8459ac
Checking flags and conditions
2023-07-09 11:16:36 +02:00
SoundSSGood
9b5f6ec7cf
CArtifact getters setters
2023-07-05 15:48:08 +03:00
SoundSSGood
fd9c7352a0
suggested changes
2023-07-03 22:54:03 +03:00
Ivan Savenko
4a5c1556a1
Always use std::vector<uint8_t> to store binary map
2023-06-27 16:27:35 +03:00
Ivan Savenko
cc91be3518
Added workaround for loading spellbook existance status
2023-06-27 13:58:45 +03:00
Ivan Savenko
7fc66c2797
Fix loading of experience for predefined heroes
2023-06-26 20:02:43 +03:00
Ivan Savenko
48ac84110b
Replaced hero crossover logic with one that actually matches H3
2023-06-26 17:15:59 +03:00
Ivan Savenko
f6b2f58da9
Use inheritance instead of composition for campaign header
2023-06-26 17:15:59 +03:00
Ivan Savenko
8420a90aa4
Reorganization of campaigns code
2023-06-26 17:15:59 +03:00
Ivan Savenko
d1e5a347ff
Refactoring of campaign handler: rename types and use strong typing
2023-06-26 17:15:59 +03:00
Ivan Savenko
2882e2d248
Added loading of reserved heroes from H3M
2023-06-26 17:15:59 +03:00
Ivan Savenko
f7b27da00e
Implemented support for "coast visitable" objects:
...
- objects marked as coast visitable can be visited from land even when
placed in water
- added isBlockedVisitable and isCoastVisitable method to
CGObjectInstance
- implemented json config for these properties in banks
2023-06-25 17:42:33 +03:00
Ivan Savenko
c4772ae59d
Load new hota quests as empty quests, to avoid unexpected behavior
2023-06-20 19:37:27 +03:00
Ivan Savenko
6564502a0e
Implemented mapping of hero portraits
2023-06-20 19:37:27 +03:00
Ivan Savenko
d4728f78ce
Support for hota victory conditions
2023-06-20 19:37:27 +03:00
Ivan Savenko
a84666edf6
MetaString can be serialized in json
2023-06-20 19:37:27 +03:00
Ivan Savenko
d51fe62804
Win/loss condition texts use MetaString
2023-06-20 19:37:27 +03:00
Ivan Savenko
f35b3a0dc3
Replace MetaString operator << with member function
2023-06-20 19:37:27 +03:00
Ivan Savenko
c43783db58
Use string ID's instead of raw strings for win/loss conditions
2023-06-20 19:37:27 +03:00
Ivan Savenko
6f743916db
Moved CGCreature to a new file
2023-06-20 19:37:27 +03:00
Ivan Savenko
7c88bb7e4f
Detect mirror maps
2023-06-20 19:37:27 +03:00
Ivan Savenko
636b2ea856
Removed no longer used code - moved to hota mod
2023-06-20 19:37:27 +03:00
Ivan Savenko
d742b6b809
Fix mapping of map objects linked to game entities
2023-06-20 19:37:27 +03:00
Ivan Savenko
4d947be287
Adventure map shipyard nwo has configurable boat type
2023-06-16 17:59:50 +03:00
Ivan Savenko
0901c8feaf
Use boost::multiarray instead of manual memory management in CMap
2023-06-16 17:59:10 +03:00
Ivan Savenko
1e9eea30e1
Merge remote-tracking branch 'soundsgood/CArtHandler-rework' into develop
2023-06-05 18:53:17 +03:00
Ivan Savenko
d6a357fd17
Split some map object files into smaller files. Reduced includes usage.
2023-06-02 21:47:37 +03:00
Ivan Savenko
2f9073e13a
Fix assertion
2023-06-01 16:03:37 +03:00
Ivan Savenko
fce5f9f907
Fix buildings loading
2023-05-31 23:18:39 +03:00
Ivan Savenko
312b703a78
Fixed mapping of hota objects
2023-05-31 23:18:39 +03:00
Ivan Savenko
952708e865
Basic version of object templates mapping
2023-05-31 23:18:39 +03:00
Ivan Savenko
b3ca6c8cee
Fixed detection of campaign format
2023-05-31 23:18:39 +03:00
Ivan Savenko
e1c01ca636
Fix CI build
2023-05-31 23:18:39 +03:00
Ivan Savenko
acac42291e
Remove excessive CMap.h includes
2023-05-31 23:18:38 +03:00
Ivan Savenko
62595cb039
Split massive CMap.h a bit
2023-05-31 23:01:57 +03:00
Ivan Savenko
bf720200f9
Implemented identifiers remapping for game entities
2023-05-31 23:01:57 +03:00
Ivan Savenko
c51e0ef052
Added information on Heroes Chronicles map ID's
2023-05-31 23:01:57 +03:00
Ivan Savenko
8d0dcd6ad7
All h3m bitsets are now loaded inside mapReader
2023-05-31 23:01:57 +03:00
Ivan Savenko
5fe5d0c045
Fix loading of buildings of random town
2023-05-31 23:01:57 +03:00
Ivan Savenko
ffd7144df8
Implemented identifiers mapping for town buildings
2023-05-31 23:01:57 +03:00
Ivan Savenko
de769a04d6
Remove unnecessary includes from headers
2023-05-31 23:01:57 +03:00
Ivan Savenko
daaaf84392
Icon index for map format is now defined in config
2023-05-31 23:01:57 +03:00
Ivan Savenko
402823e3d5
Fix loading of some user-made maps
2023-05-31 23:01:57 +03:00
Tomasz Zieliński
edf47f5769
Fix StdInc.h
2023-05-21 07:26:36 +02:00
Tomasz Zieliński
5ffbdb10ef
Another build fix
2023-05-20 14:07:16 +02:00
Tomasz Zieliński
c7f4fe8243
Another compile fix.
2023-05-20 13:47:36 +02:00
Tomasz Zieliński
a1531b58db
More fixes
2023-05-20 13:38:14 +02:00
Tomasz Zieliński
ae97912b1e
Fix warning
2023-05-20 13:23:27 +02:00
Tomasz Zieliński
219e897db0
Added missing files.
2023-05-20 12:02:30 +02: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
Konstantin
86f5d6de69
vcmi: modernize headers
2023-04-30 13:35:54 +03:00
Konstantin P
e5f78a8997
vcmi: fix tests with latest develop
2023-04-27 20:59:55 +03:00
Konstantin
bcf8ca1268
vcmi: fix map format for teams number
2023-04-27 20:59:55 +03:00
nordsoft
de22132cdf
Fix loading
2023-04-20 19:46:27 +04:00
nordsoft
db33558abc
Load custom campaigns from gzip
2023-04-20 19:22:27 +04:00
nordsoft
9ecf16ca23
Fix minor bugs
2023-04-20 03:20:00 +04:00
nordsoft
5cf9fbbe02
Fix compiling
2023-04-19 03:11:13 +04:00
nordsoft
f464ca3560
Merge remote-tracking branch 'upstream/develop' into vcmi-campaign
...
# Conflicts:
# lib/mapping/CCampaignHandler.cpp
2023-04-19 02:45:49 +04:00
nordsoft
ecf8b9934b
Further refactoring
2023-04-17 23:19:56 +04: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
nordsoft
91b4782a2f
Refactor more fields from campaign header
2023-04-17 04:47:54 +04:00
nordsoft
70f4cc5e0f
Refactor campaign regions
2023-04-17 04:26:35 +04:00
Konstantin
7a5775a9f9
vcmi: use std::optional
2023-04-17 00:43:13 +03:00
nordsoft
0c87d0a26c
Add a comment
2023-04-16 21:49:43 +04:00
nordsoft
954a2abb71
Verifying mods before starting map
2023-04-16 15:38:13 +04:00
nordsoft
67e1b48d47
Remove unused interface
2023-04-16 14:00:01 +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
Ivan Savenko
b354f99cc3
Merge pull request #1936 from IvanSavenko/cpp_17_upgrade
...
Upgrade c++ standard to c++17
2023-04-14 19:21:17 +03:00
Ivan Savenko
44b83b2e11
Merge master -> develop
2023-04-14 16:51:35 +03:00
Ivan Savenko
2dc48496ef
Fix generation of roads and rivers near map edge
2023-04-13 16:26:03 +03:00
nordsoft
d244702abc
Read and write mods into map
2023-04-12 02:59:55 +04:00
nordsoft
617a4385a2
Add mods fields into map header
2023-04-12 02:14:22 +04:00
Ivan Savenko
644f0f4b32
Removed ARRAY_COUNT in favor of std::size
2023-04-12 01:04:26 +03:00
nordsoft
30281d5991
Merge remote-tracking branch 'upstream/develop' into vcmi-campaign
2023-04-11 21:44:31 +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
nordsoft
3166fd05f4
Handle array exceed limit potential crash
2023-04-09 14:43:51 +04:00
nordsoft
23e411cacd
Adding logging and error handling
2023-04-09 13:29:07 +04:00
nordsoft
7c13246851
Keep creatures and arts
2023-04-09 05:02:34 +04:00
nordsoft
08809f1cdc
String building id
2023-04-09 04:53:06 +04:00
nordsoft
6ed8f748b3
Use string ids for most of bonuses
2023-04-09 04:26:04 +04:00
nordsoft
307fb071a2
VCMI campaign format support prototype
2023-04-09 03:24:40 +04: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
Ivan Savenko
c5acb8bb7d
Fixed empty scope on resolving map overrides
2023-04-03 15:15:29 +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
f42a894723
Implemented h3c translations
2023-03-14 19:46:15 +02:00
Ivan Savenko
a4ef9fd0b8
Added h3m strings generation to 'convert txt' command
2023-03-14 17:54:37 +02:00
Konstantin
c84a9f32f6
vcmi: fix road and river loading
...
It actually catched by MapFormat.Terrain test crash.
So, this is a fix (functions does not trowing exceptons, it returns NULL
if something is wrong).
2023-03-05 22:41:38 +03: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
57ee9a9bf3
Merge vcmi/beta into vcmi/develop
2023-01-29 18:21:55 +02:00
Ivan Savenko
eebc6fd625
Map object use format mod:object (or mod:object.subobject)
2023-01-26 23:32:56 +02:00
Ivan Savenko
6c472339ce
Refactoring of ObjectClassesHandler
2023-01-26 23:26:49 +02: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
d2b837b116
All creature-related texts go 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
Dydzio
54d62a5eb9
Fix roads and rivers saving in map editor
2023-01-19 23:04:12 +04: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
c455986a55
Fix regressions in RMG & map editor
2023-01-10 01:05:28 +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
64885bdf6b
Better names for terrain parameters. Support for new movement sounds.
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
bde988ca43
Merge pull request #1329 from IvanSavenko/translate_game
...
Translations support - base functionality for main game texts
2023-01-09 20:33:56 +02:00
Ivan Savenko
2f5ee44cbe
Fixes patrol position initialization on H3M load
2023-01-09 18:34:13 +02:00
Ivan Savenko
cb4f5edae9
All Heroes 3 texts are now passed through translator
2023-01-01 14:56:45 +02:00
Ivan Savenko
bdb8e0ee5c
Introduced string identifiers for H3 texts, still WIP
2023-01-01 14:56:44 +02:00
Ivan Savenko
7a35bcc812
Merge pull request #1221 from IvanSavenko/warnings_fix
...
Fix remaining compiler warnings
2022-12-29 21:51:55 +02:00
Nordsoft91
785787e454
Merge branch 'develop' into interface-builder
2022-12-24 21:56:29 +04:00
Ivan Savenko
eb20a4b208
Merge remote-tracking branch 'vcmi/develop' into warnings_fix
2022-12-23 14:40:45 +02:00
nordsoft
b3d60ec418
Add new map sizes
2022-12-12 04:46:42 +04: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
db2a40600d
Fixed some of the warnings detected by CI run
2022-12-08 23:20:42 +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
Ivan Savenko
2cbe6bcb47
Added common method to get names of hardcoded mod scopes
2022-12-07 15:18:19 +02:00
nordsoft
2f2c980a0c
Fix crash on map destroying
2022-12-03 20:56:05 +04:00
Andrii Danylchenko
d9c4b28ccc
Merge pull request #1177 from IvanSavenko/fix_mod_identifiers
...
Fix mod identifiers registration & incorrect mod validation
2022-12-02 09:20:49 +02:00
Ivan Savenko
abe11aaf54
Introduced "map" scope for accessing identifier on map loading.
...
Currently it allows access to all mods, should be restricted to mods
that map depends on
2022-11-29 22:33: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
Andrii Danylchenko
04490b709a
Merge pull request #1000 from vcmi/multiplayer
...
Multiplayer
2022-10-03 20:16:39 +03:00
nordsoft
628abd1428
Fix campaign serialization
2022-10-03 01:48:03 +04: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
20c102e648
Remove T prefix from new typedefs
2022-09-29 11:44:46 +02:00
Tomasz Zieliński
475f835769
More style tweaks
2022-09-28 11:38:08 +02: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
Tomasz Zieliński
cd3a1a02c2
More style tweaks
2022-09-25 21:47:44 +02:00
Tomasz Zieliński
4ea57ea7fc
A variety of suggested style tweaks
2022-09-25 09:33:56 +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
Nordsoft91
e4ac0d4370
Editor prerequisites [part 2] ( #889 )
2022-09-17 14:04:01 +03:00
DjWarmonger
3d2dc2335b
Switch ObjectTemplate to shared_ptr<const> ( #870 )
2022-09-11 16:13:53 +03:00
Nordsoft91
4bd0ff680a
Random map generator refactoring ( #762 )
...
random map generator refactoring and improvements
2022-09-11 11:31:27 +03:00
Andrii Danylchenko
4b4cc3cf4b
battlefields in VLC and custom bonuses for terrain patches
2022-09-11 11:31:27 +03:00
Nordsoft91
c4035134e5
New battlegrounds ( #758 )
2022-09-11 11:31:26 +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
Andrii Danylchenko
9c8d776398
Merge branch 'develop' into handlersAbstraction
...
# Conflicts:
# CI/linux/before_install.sh
# CI/mac/before_install.sh
# CI/mxe/before_install.sh
# lib/CModHandler.cpp
# lib/mapObjects/CObjectClassesHandler.cpp
# lib/mapObjects/CObjectClassesHandler.h
# lib/mapObjects/CommonConstructors.cpp
# server/CGameHandler.cpp
# test/CMakeLists.txt
# test/spells/effects/TeleportTest.cpp
2021-07-16 00:32:13 +03:00
Andrii Danylchenko
6d8373a473
Configure github actions
2021-07-13 14:56:35 +01: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
Michał Kalinowski
ac6b477aa2
Simplify statements
...
-Simplify return statements across the code
2019-03-31 09:43:14 +03:00
AlexVinS
b3c26615df
Fixed map format regression: there is no default difficulty.
2019-01-26 17:05:35 +03:00
Alexander Shishkin
b00e935e4d
Warnings fixes ( #538 )
...
Warnings fixes
* Suppress `missing-braces` for Clang
* Fixed many C4275 warnings
* Fixed almost all Clang/GCC warnings
* Silence most frequent MSVC warning.
* Fixed some pessimizing-move warnings
* Fixed some unused capture warnings
2019-01-19 13:52:02 +03:00
Michał Janiszewski
0ff2e1180d
Throw std::runtime_exception instead of a pointer to new one
...
cf. https://isocpp.org/wiki/faq/exceptions#what-to-throw
2018-10-31 07:27:54 +01:00
Arseniy Shestakov
ac66fc7f42
Full rework of pre-game interface and networking
...
New features for players:
* Loading for multiplayer. Any save could be used for multiplayer.
* Restart for multiplayer. All clients will restart together.
* Loading from single save.
* Hotseat mixed with network game. Multiple players per client.
* Now connection to server could be cancelled.
* Return to menu on disconnections instead of crashes.
* Restoring of last selected map, save or campaign on next run.
TLDR on important changes in engine code:
* UI: work with server separated from UI
* UI: all explitic blitting replaced with IntObject's
* UI: all new code use smart pointers instead of DISPOSE
* Gameplay always start through lobby controlled by server.
* Threads receiving netpacks now shared for lobby and gameplay.
* Campaigns: heroes for crossover now serialized as JsonNode.
2018-04-04 14:24:26 +07: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
AlexVinS
f917ec5254
Revert "Fixed ancient backward compatibility regression"
...
This reverts commit 3c67e12620
.
2018-02-28 15:00:38 +08:00
AlexVinS
3c67e12620
Fixed ancient backward compatibility regression
2018-02-24 19:48:49 +03:00
Nikolay Shalakin
3795985de9
Eliminate warnings / errors. Pull request #388
2018-02-11 15:17:14 +03:00
AlexVinS
0b70baa95e
Spells configuration version 2 (effect-based)
...
* Indirect spell effects loading
* Json serializer improvements
* spell->canBeCastAt do not allow useless cast for any spell
* Added proxy caster class for spell-created obstacles
* Handle damage from spell-created obstacles inside mechanics
* Experimental GameState integration/regression tests
* Ignore mod settings and load only "vcmi" mod when running tests
* fixed https://bugs.vcmi.eu/view.php?id=2765 (with tests)
* Huge improvements of BattleAI regarding spell casts
* AI can cast almost any combat spell except TELEPORT, SACRIFICE and obstacle placement spells.
* Possible fix for https://bugs.vcmi.eu/view.php?id=1811
* CStack factored out to several classes
* [Battle] Allowed RETURN_AFTER_STRIKE effect on server side to be optional
* [Battle] Allowed BattleAction have multiple destinations
* [Spells] Converted limit|immunity to target condition
* [Spells] Use partial configuration reload for backward compatibility handling
* [Tests] Started tests for CUnitState
* Partial fixes of fire shield effect
* [Battle] Do HP calculations in 64 bits
* [BattleAI] Use threading for spell cast evaluation
* [BattleAI] Made AI be able to evaluate modified turn order (on hypothetical battle state)
* Implemented https://bugs.vcmi.eu/view.php?id=2811
* plug rare freeze when hypnotized unit shots vertically
* Correctly apply ONLY_MELEE_FIGHT / ONLY_DISTANCE_FIGHT for unit damage, attack & defense
* [BattleAI] Try to not waste a cast if battle is actually won already
* Extended JsonSerializeFormat API
* fixed https://bugs.vcmi.eu/view.php?id=2847
* Any unit effect can be now chained (not only damage like Chain Lightning)
** only damage effect for now actually uses "chainFactor"
* Possible quick fix for https://bugs.vcmi.eu/view.php?id=2860
2018-02-08 11:37:21 +03:00
Michał Kalinowski
26a222ac62
Change JsonType to enum class ( #393 )
...
Change enum JsonType to enum class JsonType
2017-11-27 00:18:18 +03:00
AlexVinS
d7366f04a9
[Map format, PreGame] allow selection of any allowed faction
2017-11-16 02:06:07 +03:00
AlexVinS
b8d0dfac5f
[Map format] fixed player options "canPlay" field
2017-11-16 00:03:27 +03:00
AlexVinS
8c0fab1dcf
fixes
2017-08-12 14:36:37 +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
046e1a7c29
Prepared JsonNode for new logging API.
2017-08-11 16:27:42 +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
AlexVinS
12b42f4495
Improved map format tests
2017-08-03 13:50:54 +03:00
ArseniyShestakov
9d9c026c85
Code style: serialize everything on own lines for easier debugging ( #357 )
2017-07-31 16:35:42 +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
f1e5797834
Code style: move or add licensing information on top of every file
2017-07-14 01:26:03 +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
c82afe7156
switch CMapService API to ResourceID
2017-06-04 22:42:48 +03:00
Alexander Shishkin
7e1b0d71c5
Added option for saving generated maps on client side ( #307 )
...
* new configuration option 'general.saveRandomMaps'
* maps being saved to 'userCachePath/RandomMaps'
* no deletion of old random maps
* map filename generated based on template name and random seed
2017-06-04 20:33:28 +03:00
AlexVinS
c66c66c5ae
Fixed https://bugs.vcmi.eu/view.php?id=2686
2017-05-29 12:42:23 +03:00
AlexVinS
70a092f58c
[Refactoring] use virtual method for object specific actions when new map object is created
...
* --TODO
* fixes CID 1366291, CID 1366297
2017-05-28 16:23:42 +03:00
AlexVinS
fc55efb72d
Fixed CID 1375681
2017-05-28 15:16:40 +03:00
AlexVinS
7a1dd7bd7d
Fixed CID 1375707
2017-05-28 14:40:34 +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
DjWarmonger
cc452bdfa9
Improved road routing so they can go under any passable object.
2016-12-21 10:10:37 +01:00
AlexVinS
609c6f81bd
Fixed a few CWE-457
2016-11-27 22:37:41 +03:00
AlexVinS
384c5827ae
Fixed CID 1197490, CID 1197491
2016-11-25 17:21:27 +03:00
AlexVinS
ca13bb8412
Fixed CID 1366375, CID 1197633
2016-11-25 17:04:30 +03:00
AlexVinS
4ba3c6fecc
Fixed CID 1288855
2016-11-25 16:40:11 +03:00
Arseniy Shestakov
1e60ba6516
Only delete CQuest in CMap destructor and not with IQuestObject
...
Quest information must remain accessible even if map object removed. Fix issue 2472
2016-09-13 01:30:47 +03:00
Arseniy Shestakov
02f70464fb
Fix mismatched-tags Clang warnings
...
They're not important at all, but sicne there only few of them left just fix them.
2016-09-08 19:42:59 +03:00
AlexVinS
42e7128acc
Fixed possible use-after-free crash with artifacts registration in RMG.
2016-09-08 14:48:48 +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
AlexVinS
437eadf1ed
do not leak scenarioOpts in CMapInfo
2016-08-31 06:18:01 +03:00