1
0
mirror of https://github.com/vcmi/vcmi.git synced 2025-06-15 00:05:02 +02:00
Commit Graph

73 Commits

Author SHA1 Message Date
025ad58561 map editor: check hero artifacts during mod assessment 2024-12-03 21:17:04 +01:00
ba9e3dca9d Mod management rework, part 1
- Replaced CModInfo class with constant ModDescription class
- Simplified mod loading logic
- Extracted some functionality from ModHandler into separate classes for
future reuse by Launcher
2024-11-26 13:55:46 +00:00
08fbcd5239 TerrainTile now uses identifiers instead of pointers to VLC 2024-10-30 16:22:11 +00:00
c2e49bd10a Merge pull request #4821 from IvanSavenko/flaggable
Basic support for configurable flaggable objects
2024-10-27 21:19:22 +02:00
152962354d Don't paste objects that cannot be placed, show warning only if error occurred 2024-10-26 12:20:13 +02:00
8a5ac73438 Basic support for configurable flaggable objects
Converted CGLighthouse class into FlaggableMapObject

Bonus provided by Lighthouse/Flaggable is now defined in config and is
accessible to mods.
2024-10-25 16:48:10 +00:00
604e3b5c67 Merge pull request #4763 from IvanSavenko/herohandler_split
Split CHeroHandler.cpp/.h into 1 file per class
2024-10-14 19:05:48 +03:00
10ad0fc760 Split CHeroHandler.cpp/.h into 1 file per class
All parts of CHeroHandler.cpp are now in lib/entities/hero
Adjusted includes to use new paths
No functionality changes
2024-10-13 14:01:09 +00:00
31095248ab Removed typeName and subtypeName properties from CGObjectInstance 2024-10-13 13:05:50 +00:00
4bdc503186 Workaround for prison hero reset on loading map in editor 2024-10-13 08:28:37 +00:00
3dd4fa2528 Reduce usage of pointers to VLC entities
Final goal (of multiple PR's) is to remove all remaining pointers from
serializeable game state, and replace them with either identifiers or
with shared/unique pointers.

CGTownInstance::town and CGHeroInstance::type members have been removed.
Now this data is computed dynamically using subID member.

VLC entity of a town can now be accessed via following methods:
- getFactionID() returns ID of a faction
- getFaction() returns pointer to a faction
- getTown() returns pointer to a town

VLC entity of a hero can now be accessed via following methods:
- getHeroTypeID() returns ID of a hero
- getHeroClassID() returns ID of a hero class
- getHeroType() returns pointer to a hero
- getHeroClass() returns pointer to a hero class
2024-10-10 12:28:08 +00:00
30fa2846aa ArtifactUtils::createArtifact ArtifactUtils::createNewArtifactInstance unified 2024-09-04 21:25:55 +03:00
11e8b04ac5 Merge pull request #4463 from SoundSSGood/IMarket-refactoring
IMarket refactoring
2024-08-26 22:48:23 +03:00
0be5a1a2ad Code review followup with additional refactor
Changes following review
2024-08-23 10:43:48 +02:00
58bb2b58e3 IMarket suggestions
Co-authored-by: Ivan Savenko <saven.ivan@gmail.com>
2024-08-20 18:49:48 +03:00
78aa376d50 introduce getModScope into AObjectTypeHandler 2024-08-12 13:58:03 +02:00
c34956e912 introduce getModScope method toEntity class and subclasses 2024-08-10 16:08:04 +02:00
18e96171de map editor: check hero and town spells during mod assessment 2024-08-07 21:29:21 +02:00
63bcf7d83c Replaced most of usages of CRandomGenerator with vstd::RNG in library 2024-07-16 13:13:07 +00:00
3bea383b59 Merge branch 'vcmi/beta' into 'vcmi/develop' 2024-06-21 12:58:36 +00:00
b5cc3e8dc6 [editor] fix crash on quit with an opened map 2024-06-13 21:35:30 +03:00
9438c5f9f7 code style 2024-06-13 21:35:30 +03:00
7461df161c lib now uses shared_ptr for entities. Removed manual memory management. 2024-05-17 15:04:05 +00:00
acceca0139 map editor: Allow to customize hero spells 2024-03-24 10:01:20 +01:00
ec735aa959 Fix mine resource and productivity on map load, also made them non editable 2024-02-03 11:30:09 +01:00
d5c4478816 Remove most of non-const access to VLC entities 2024-01-19 13:54:49 +02:00
817ab1d53d Actually fix quest artifacts not getting banned at all 2024-01-16 17:16:03 +01:00
285bafdbf4 Do not ban heroes in Prisons, they might be rehired after they are defeated.
Restore hero to pool if Prison fails to be placed.
2024-01-15 07:41:29 +01:00
9b40271ab1 Update editor and tests 2023-12-22 17:56:43 +02:00
10e110320b Remove std::vector<boo> from Json Serializer, simplify affected code 2023-11-15 15:55:18 +02:00
8346d71c98 Remove more subID access 2023-11-01 14:44:05 +02:00
b9a660f6c3 Redesign map editor rendering 2023-10-20 01:25:06 +02:00
037efdf5fc Improvements to type safety of Identifier class
- Constructor of Identifier from integer is now explicit
- Lobby hero/town selection now uses Identifiers instead of int's
- Removed serialization workaround for hero portraits
- Added dummy objects for custom heroes portraits for ID resolver to use
- HeroInstance now stores portrait ID only in case of custom portrait
- Fixed loading of campaign heroes portraits on RoE maps
2023-10-04 18:05:23 +03:00
7d56b704a2 Fix events/rumors identifiers 2023-10-01 13:38:16 +02:00
9c5725da66 Convertion finished 2023-10-01 13:32:35 +02:00
cb02e221f3 Couple fixes 2023-09-30 04:33:41 +02:00
a05f8339ae Proper mod compatibility check system 2023-09-21 04:31:08 +02:00
5136305455 Fix hero type for random hero 2023-09-11 20:37:25 +02:00
e8453916cf Merge remote-tracking branch 'vcmi/beta' into develop 2023-09-08 18:49:06 +03:00
db32c2387e Fix hero initialization form random map 2023-09-04 02:58:16 +04:00
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
025b0814c8 + Handled banning spells and artifacts
+ Rename allowedSpell => allowedSpells
2023-07-17 17:21:28 +02:00
1e9eea30e1 Merge remote-tracking branch 'soundsgood/CArtHandler-rework' into develop 2023-06-05 18:53:17 +03:00
d6a357fd17 Split some map object files into smaller files. Reduced includes usage. 2023-06-02 21:47:37 +03:00
acac42291e Remove excessive CMap.h includes 2023-05-31 23:18:38 +03:00
62595cb039 Split massive CMap.h a bit 2023-05-31 23:01:57 +03:00
ccaece9d71 Refactor mapController to use precalculated obstacle set. 2023-05-20 10:57:05 +02:00
cf0515dcd3 Moved Modificators to separate folder 2023-05-20 10:17:37 +02:00
73d9f5bd0a Parallel RMG works fine for maps without water. 2023-05-19 20:30:15 +02:00
1175990724 fixup 2023-05-19 01:55:11 +03:00