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

7243 Commits

Author SHA1 Message Date
Laserlicht
6d9385b8bd outro for RoE 2024-09-05 21:31:17 +02:00
Ivan Savenko
ff8d36c350 It is now possible to define game settings in rmg template 2024-09-05 15:16:28 +00:00
Ivan Savenko
8225eb454e Added GameSettings to gamestate, potentially allowing to define game
settings per map (or in random map template)
2024-09-05 15:16:27 +00:00
Ivan Savenko
6179521364
Merge pull request #4556 from IvanSavenko/town_building_visit
Implemented explicitly visitable town buildings, e.g. hota mana vortex
2024-09-05 17:21:21 +03:00
Ivan Savenko
a72715ad31
Merge pull request #4563 from SoundSSGood/vcmiScrolls
Improvements to the artifact creation
2024-09-05 17:10:13 +03:00
SoundSSGood
7466d7452d vcmiscrolls 2024-09-05 15:51:45 +03:00
Ivan Savenko
a87ab4e4d7
Merge pull request #4557 from utzuro/fix/rmg-road-type-not-saving
RMG: Enable only those roads, that are enabled in persistentStorage.json
2024-09-05 15:06:15 +03:00
Ivan Savenko
2566576c95
Merge pull request #4565 from kaja47/one-loop-less
avoid one loop in BonusList::totalValue()
2024-09-05 15:05:48 +03:00
Ivan Savenko
c52533a961
Merge pull request #4543 from Laserlicht/chronicles_installer
Chronicles support
2024-09-05 15:04:13 +03:00
K
a6c7fda649 avoid one loop in BonusList::totalValue() 2024-09-04 23:10:54 +02:00
Ivan Savenko
44fdb71933 Machine Factory and Refugee Camp can't be owned 2024-09-04 19:46:58 +00:00
Ivan Savenko
dae9e1e316 Implement IOwnableObject interface for shipyard 2024-09-04 19:46:36 +00:00
SoundSSGood
30fa2846aa ArtifactUtils::createArtifact ArtifactUtils::createNewArtifactInstance unified 2024-09-04 21:25:55 +03:00
Ivan Savenko
b09d9d501b Pass pointer to actual caller in showBlockingDialog callWith
Fixes activation of all rewardable buildings in town on blocking dialog
answer
2024-09-04 15:14:56 +00:00
Ivan Savenko
81af66d35b Move visit query to a separate class, remove no longer needed Cast.h 2024-09-04 14:32:36 +00:00
SoundSSGood
b06426ac43 CMap removed from CArtifactSet level 2024-09-04 15:12:40 +03:00
void
de4f63da90 RMG: Enable only those roads, that are enabled in persistentStorage.json 2024-09-04 08:37:45 +09:00
Ivan Savenko
327ff01471 Implemented explicitly visitable town buildings, e.g. hota mana vortex
Added flag `manualHeroVisit` flag to town building. If this flag is set,
then building will only be activated on click and will not give its
effect on hero recrutiment, hero visit, or new day.

This allows implementing changes to Mana Vortex from HotA
2024-09-03 16:31:07 +00:00
Laserlicht
ff65a33d44
fixes bug for 8th creature 2024-09-03 11:03:37 +02:00
Laserlicht
609906f015 code review (first part) 2024-09-02 22:51:30 +02:00
Laserlicht
c7064377da code review 2024-09-01 12:23:10 +02:00
Laserlicht
e31ace2661 make sonar cloud (a little bit) happy 2024-09-01 02:16:03 +02:00
Laserlicht
0280254810 tarnum icon 2024-08-31 22:05:36 +02:00
Laserlicht
46872b764b integrate campaign intro 2024-08-31 17:57:27 +02:00
Laserlicht
36914682a5
Merge branch 'develop' into chronicles_installer 2024-08-31 16:18:52 +02:00
Laserlicht
16cbd6a7d2 allow custom loadbar-backgrounds for campaigns 2024-08-31 16:03:42 +02:00
Laserlicht
2fef4b5d69 voice override 2024-08-31 14:17:25 +02:00
Laserlicht
e4ec26e613 override 2024-08-31 13:15:07 +02:00
Ivan Savenko
39e5ba32f6
Merge pull request #4530 from IvanSavenko/town_fortifications
Support for configurable town fortifications
2024-08-31 13:59:40 +03:00
Ivan Savenko
71c7beb7a5
Merge pull request #4533 from IvanSavenko/town_growth
Change logic of neutral towns garrisons to match H3
2024-08-31 13:52:36 +03:00
Ivan Savenko
0a72a0a48e
Merge pull request #4534 from SoundSSGood/BulkEraseArtifacts
BulkEraseArtifacts network pack
2024-08-31 13:52:26 +03:00
Ivan Savenko
8cfc1c4ee1
Merge pull request #4535 from IvanSavenko/savecompat_bump
Removed save compatibility with 1.4
2024-08-31 13:51:10 +03:00
Laserlicht
46c169d20f chr loading 2024-08-31 12:39:23 +02:00
Laserlicht
0e500efe5a extract lod 2024-08-31 00:44:20 +02:00
Ivan Savenko
727cd2e9e1
Merge pull request #4539 from IvanSavenko/crashfix
Crashfixes
2024-08-30 17:19:24 +03:00
Ivan Savenko
7f926fc30e
Merge pull request #4478 from Laserlicht/resource_generation
generate assets to file
2024-08-30 15:36:51 +03:00
Ivan Savenko
01697e4387 Fix player not being marked as defeated on losing all heroes and towns 2024-08-30 12:25:34 +00:00
Ivan Savenko
82c37573fa Removed save compatibility with 1.4
All save compatibility checks targeting 1.4 saves have now been removed.
Saves from 1.5 can still be loaded in 1.6

Implemeted few TODO's in serialization that were postponed to avoid
breaking save compatibility in MP for 1.5.X releases.

Fixed missed case for loading black market object from 1.5 saves
2024-08-29 18:51:53 +00:00
SoundSSGood
e15ea4fc75 BulkEraseArtifacts network pack 2024-08-29 20:22:08 +03:00
Ivan Savenko
73459876bf Initial garrison of a town should now match H3 logic 2024-08-29 15:46:22 +00:00
Ivan Savenko
b436290d16 Fix crash on right-clicking a neutral town 2024-08-29 15:45:46 +00:00
Ivan Savenko
21fc80a315 Growth of town garrison in neutral towns now uses H3 logic 2024-08-29 15:22:31 +00:00
Ivan Savenko
d0b3bb95b2 Change gamestate initialization order - list of owned objects must be
initialized before connecting towns with visiting heroes, but after
generateion of starting heroes
2024-08-29 13:18:33 +00:00
Laserlicht
f327224d45 remove original resource functionality 2024-08-28 23:44:31 +02:00
Ivan Savenko
36c1ed670f Support for configurable town fortifications
Removed most of hardcoded checks for fort level or for presence of fort/
citadel/castle buildings.

It is now possible to define which parts of town fortifications are
provided by town buildings

Configuration for H3-like fortifications is provided in
buildingsLibrary.json and will be used automatically by mods as long as
mods have buidings named "fort", "citadel" and "castle".

Alternatively, mods can separately define:
- hitpoints of walls (shared value for all sections)
- hitpoints of central, upper and lower towers (separate values)
- presence of moat
- shooters for each tower (separate values)
2024-08-28 19:42:14 +00:00
Ivan Savenko
408a632002 Deprecate artifact-related building types 2024-08-28 13:50:08 +00:00
Ivan Savenko
55fd7bd7aa Thieves guild information level is now a bonus type 2024-08-28 13:50:07 +00:00
Ivan Savenko
8ef8ffa5c4 Implemented configurable blacksmith. Deprecated ballistaYard type 2024-08-28 13:49:42 +00:00
Ivan Savenko
462aea7e9a Fix build 2024-08-28 13:12:11 +00:00
Ivan Savenko
d4ba7e12b0 Fix regressions 2024-08-28 13:03:45 +00:00
Ivan Savenko
e5f1d60298 Add save compatibility 2024-08-28 13:03:44 +00:00
Ivan Savenko
ce1e0b8875 Moved NewTurn pack generation to NewTurnProcessor 2024-08-28 13:03:24 +00:00
Ivan Savenko
10a9d777c7 Moved mana and movement points refresh to NewTurnProcessor 2024-08-28 13:03:15 +00:00
Ivan Savenko
020f1d1f46 Moved rumors generation to NewTurnProcessor 2024-08-28 13:03:15 +00:00
Ivan Savenko
691a1a666d Moved most of town growth handling to NewTurnProcessor 2024-08-28 13:03:13 +00:00
Ivan Savenko
d49a61645c All objects that can be owned by player now implement IOwnableObject 2024-08-28 12:51:28 +00:00
Ivan Savenko
a481f07daf PlayerState now stores all objects owned by player 2024-08-28 12:51:27 +00:00
Ivan Savenko
0fd9dbf240 Unified income handling, added IOwnableObject interface 2024-08-28 12:40:44 +00:00
Ivan Savenko
189cb1c762 Moved most of daily income handling to a separate method 2024-08-28 12:40:44 +00:00
Ivan Savenko
8371232d29
Merge pull request #4504 from Laserlicht/hota_bonus
disintegrate bonus
2024-08-28 14:00:11 +03:00
Laserlicht
70190ea1fe
Merge branch 'develop' into resource_generation 2024-08-28 00:03:46 +02:00
Ivan Savenko
20d5b33ea6 Remove marketModes as member
marketModes are now generated in runtime and are not a member of
IMarket. Was not a bad change, but towns load buildings before town type
is randomized, leading to case where market modes are not actually known
when building is added to town (like random towns with market built)

Since altar requires CArtifactSet for work, IMarket will now always
contain it, but it will only be accessible if market supports altar
mode.
2024-08-27 14:07:00 +00:00
Ivan Savenko
f765f212bb Restore save compatibility 2024-08-26 20:52:37 +00:00
Ivan Savenko
ac271c09b9 Add mechanism to provide save compatibility if class is removed or
addded
2024-08-26 20:06:36 +00:00
Ivan Savenko
c64dcfaa0f Fix build 2024-08-26 20:06:36 +00:00
Ivan Savenko
77faa14119 Added explicit indexing of type indexes for serialization 2024-08-26 20:06:35 +00:00
Ivan Savenko
01396b62b7 Extracted handling of type ID's from serializer into a separate class 2024-08-26 19:48:46 +00:00
Ivan Savenko
232a759db7 Remove type registration from library pack applying 2024-08-26 19:48:46 +00:00
Ivan Savenko
11e8b04ac5
Merge pull request #4463 from SoundSSGood/IMarket-refactoring
IMarket refactoring
2024-08-26 22:48:23 +03:00
Ivan Savenko
897bc65e64
Merge pull request #4508 from kaja47/dead-code-must-die
remove never used code in CBonusSystemNode
2024-08-26 19:11:03 +03:00
Ivan Savenko
3d39963a1c Merge branch 'master' into 'develop' 2024-08-26 14:01:00 +00:00
K
462c79e190 remove never used code in CBonusSystemNode
Method CBonusSystemNode::getAllBonuses have 'root' parameter which is never
set to anythig else than nullptr. This patch removes the parameter and all
code that depends on it as preparatory work for further bonus system
optimization.
2024-08-25 14:15:21 +02:00
Tomasz Zieliński
bfe75a6a02 It is now possible to copy object settings between zones 2024-08-24 20:18:36 +02:00
Ivan Savenko
a819c3fc29
Merge pull request #4482 from MichalZr6/mapeditor_fixes
Mapeditor refactor, fixes and additional validation checks
2024-08-24 16:18:53 +03:00
Tomasz Zieliński
64fc2e5ed0 Move ObjectConfig to ObjectInfo.cpp. Preliminary version of banning object categories. 2024-08-24 15:12:22 +02:00
Ivan Savenko
51fafe66cb
Merge pull request #4485 from kaja47/opto-isinthemap
Optimize CMap::isInTheMap
2024-08-24 16:06:44 +03:00
Ivan Savenko
3e605253db
Merge pull request #4481 from Laserlicht/fix_hota
fix for 8th creature
2024-08-24 16:06:12 +03:00
SoundSSGood
4035ab1550 added CMarketWindow::getMarketTitle() 2024-08-24 13:52:54 +03:00
SoundSSGood
0c5022cae8 Loading market modes from json 2024-08-24 11:51:57 +03:00
Laserlicht
9c4d4e89d6 disintegrate 2024-08-24 00:29:36 +02:00
MichalZr6
0d5a9b8e3b Refactor for previous fix in CSpellHandler 2024-08-23 09:43:41 +02:00
MichalZr6
a82ce2f96a Fix negative QColor values 2024-08-23 09:43:40 +02:00
MichalZr6
568a792f88 Refactor containers names in CObjectClassesHandler 2024-08-23 09:43:40 +02:00
Ivan Savenko
d1aa55de91 Fix rewards not rerolling correctly on reset due to cached variables 2024-08-22 16:38:53 +00:00
godric3
cda66c4196 attempt to fix hero placeholder while reading h3m 2024-08-22 17:09:23 +02:00
godric3
355bf4ec3e read reservedCampaignHeroes from vmaps 2024-08-22 16:52:35 +02:00
K
18a69dfeb5 move CMap::isInTheMap to the header file and make it inline 2024-08-22 14:27:01 +02:00
K
3a27725fcb Optimize CMap::isInTheMap
replace x >= 0 && x < size by (unsigned)x < size

By converting signed coordinate to unsigned number, negative values became
very large positive ones, larger than every positive signed number and
therefore also bigger than the map size. As a result check against size
also implicitly checks if coordinate is negative.

Compiler cannot do this transformation automatically because it doesn't
know that map dimensions are always positive.

The change shrinks isInTheMap from 19 instructions to 11 on x86.
2024-08-22 11:39:24 +02:00
Laserlicht
c2290f5f6e fix 2024-08-21 23:01:32 +02:00
Andrii Danylchenko
ff8a745a50 BattleAI: optional simulation depth 2024-08-21 23:27:42 +03:00
Laserlicht
02002ce69d
Merge branch 'develop' into resource_generation 2024-08-21 21:52:08 +02:00
Laserlicht
43fc741a15 cleaner 2024-08-21 21:24:06 +02:00
Andrii Danylchenko
8cdfa26fb5 BattleAI: fix bait for archers when need to go long way 2024-08-21 22:18:40 +03:00
Ivan Savenko
4386339354 Fix crash on rmg generation (regression from previous commit) 2024-08-21 18:19:58 +00:00
Tomasz Zieliński
85ee859b6e First version that works - banning objects is possible 2024-08-21 20:16:41 +02:00
Ivan Savenko
ff33fbd3a0
Merge pull request #4480 from IvanSavenko/update_prebuilts
Update ffmpeg
2024-08-21 15:57:50 +03:00
SoundSSGood
2e3e6b1553 market->getObjInstanceID() 2024-08-21 01:01:23 +03:00
Laserlicht
d8869a33da remove resource 2024-08-20 22:45:11 +02:00
Ivan Savenko
efcf1e1ba9 Add .ogv (HD Edition) as recognized extension for video 2024-08-20 19:23:55 +00:00
Laserlicht
01e55beef1
Merge branch 'develop' into resource_generation 2024-08-20 20:26:52 +02:00
Laserlicht
01c14ae9ce
Merge branch 'develop' into extended_statistic 2024-08-20 20:25:16 +02:00
SoundSSGood
58bb2b58e3 IMarket suggestions
Co-authored-by: Ivan Savenko <saven.ivan@gmail.com>
2024-08-20 18:49:48 +03:00
SoundSSGood
cd7ebea9e3 cleanup unused code 2024-08-20 18:49:47 +03:00
SoundSSGood
39bb6d5f39 IMarket now able to store artifacts 2024-08-20 18:49:47 +03:00
SoundSSGood
fd45b5144d IMarket serializeable 2024-08-20 18:49:47 +03:00
Ivan Savenko
85f6030c7c
Merge pull request #4318 from IvanSavenko/upscaled_render
Support for xBRZ upscaling filter
2024-08-20 14:23:30 +03:00
Laserlicht
c2b181dc0c Merge branch 'develop' into resource_generation 2024-08-19 23:43:24 +02:00
Laserlicht
17cb45f692 fix 2024-08-19 23:33:23 +02:00
Laserlicht
fff0159ef6 resource generation 2024-08-19 23:18:14 +02:00
Ivan Savenko
6fa2bb7e91 Deprecate previously hardcoded buildings 2024-08-19 11:47:13 +00:00
Ivan Savenko
22a126cf2d Restored replacement of town building bonuses via building upgrade 2024-08-19 11:47:13 +00:00
Ivan Savenko
2f3f3c21df Rename town building types to more clear names 2024-08-19 11:47:13 +00:00
Ivan Savenko
abfb467f68 Cleanup old code, add compatibility for 1.5 mods 2024-08-19 11:47:13 +00:00
Ivan Savenko
01a9509ccb Remove unused code, reduce includes 2024-08-19 11:47:13 +00:00
Ivan Savenko
f1e63792f0 Greatly simplify town buildings logic 2024-08-19 11:47:13 +00:00
Ivan Savenko
57430c101f Extracted common properties of buildings into a shared file 2024-08-19 11:47:13 +00:00
Ivan Savenko
5b49c7525a
Merge pull request #4475 from MichalZr6/CSpellHandler_allow_lowercase_x
Allow lowercase 'X' in spellRangeInHexes JSON property
2024-08-18 21:51:36 +03:00
MichalZr6
e7b94014e1 allow lowercase 'X' in spellRangeInHexes 2024-08-18 18:46:54 +02:00
Ivan Savenko
f0448acaa3 TBB is now a dependency of lib. Implemented multithreaded xBRZ scale 2024-08-17 15:25:26 +00:00
Ivan Savenko
4171026035 First iteration of upscaled rendering 2024-08-17 15:25:25 +00:00
Warzyw647
0f7c9e7657 Fix config setting blackMarketRestockPeriod.
When set to x it was restocking on all days except every x days.
2024-08-17 11:59:15 +02:00
Ivan Savenko
be42a8c58b Try to fix saving of corrupted random maps 2024-08-15 16:03:00 +00:00
Ivan Savenko
d09fb07362 Use throwing ::at to prevent undefined behavior 2024-08-15 13:14:51 +00:00
Laserlicht
5743f151a1 icon drawing 2024-08-15 00:21:02 +02:00
Laserlicht
b693ce120a code review 2024-08-14 22:36:54 +02:00
Laserlicht
a42afa2910 code review 2024-08-14 21:51:08 +02:00
Laserlicht
39aaa6fe32 data to clipboard; simplify types 2024-08-14 21:01:37 +02:00
Laserlicht
81b1704e39
Merge branch 'vcmi:develop' into extended_statistic 2024-08-14 20:32:47 +02:00
Laserlicht
7964f77f27 fix dragon utopia 2024-08-14 19:55:14 +02:00
Laserlicht
ec2163b974 add val; stat at end turn; events 2024-08-14 19:24:40 +02:00
Ivan Savenko
72896d4ed5 Added (mostly) complete schema for validation of rewardable 2024-08-14 17:04:44 +00:00
Ivan Savenko
2151a7fc88 Moved configuration of rewardable town building to 'configuration' entry 2024-08-14 17:04:43 +00:00
Ivan Savenko
fc7554797c Fix reset of configurable building state on new week 2024-08-14 17:04:43 +00:00
Ivan Savenko
19838e2654 Fix auto-visit of configurable objects on new day 2024-08-14 17:04:42 +00:00
Ivan Savenko
162535e6d8 Workaround on crash on visiting configurable building with "bonus"
duration
2024-08-14 17:03:25 +00:00
Ivan Savenko
67132b3e7f Fixed visitation of configurable town buildings by newly recruited heroes
and on building construction
2024-08-14 17:03:25 +00:00
Ivan Savenko
abdb23f78f Removed getMappedValue methods in favor of existing vstd method 2024-08-14 17:03:25 +00:00
Ivan Savenko
f4a78bb31f
Merge pull request #4439 from IvanSavenko/event_timing
Trigger map and town events on start of player turn
2024-08-14 19:01:17 +03:00
Ivan Savenko
49c5f650f7
Merge pull request #4437 from IvanSavenko/battle_sides
Unified handling of battle sides ID's
2024-08-14 18:37:05 +03:00
Ivan Savenko
350749a1a6 Removed no longer used netpacks 2024-08-14 14:13:50 +00:00
Ivan Savenko
26fdaacbe5 Map and town events are now processed on start of player turn instead of
on start of new day, in line with H3
2024-08-14 14:13:50 +00:00
Ivan Savenko
5523e08cb7 Players affected by event is now stored as std::set instead of bitmask 2024-08-14 14:13:49 +00:00
Ivan Savenko
5c7c4a7810
Merge pull request #4443 from IvanSavenko/fix_sonar
Fix miscellaneous issues discovered by Sonar
2024-08-14 17:12:27 +03:00
Ivan Savenko
6ab97bad7e
Merge pull request #4433 from IvanSavenko/spell_cleanup
Minor cleanup of SpellHandler
2024-08-14 17:05:22 +03:00
Ivan Savenko
ac717d57ea
Merge pull request #4445 from IvanSavenko/fix_ranged_attack
Do not try to shoot at 2nd hex of wide creatures
2024-08-14 17:05:12 +03:00
Ivan Savenko
38311244a4
Merge pull request #4402 from Laserlicht/8th_creature
support for 8th creature (Factory)
2024-08-14 17:04:32 +03:00
Ivan Savenko
1fb8ab5f70
Merge pull request #4429 from Laserlicht/regions
defining own regions extend
2024-08-14 17:04:13 +03:00
Ivan Savenko
cd6d55fe75 Do not try to shoot at 2nd hex of wide creatures 2024-08-14 10:38:59 +00:00
Laserlicht
e83a30ea11 darkened; added values 2024-08-14 02:49:54 +02:00
Laserlicht
cac778ffed fix 2024-08-13 00:50:10 +02:00