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

142 Commits

Author SHA1 Message Date
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
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
5523e08cb7 Players affected by event is now stored as std::set instead of bitmask 2024-08-14 14:13:49 +00:00
4aa73b40c9 Split CTownHandler into smaller chunks 2024-07-21 18:21:48 +00:00
1aa391fdf8 Split CGeneralTextHandler file into 1 file per class form
All text processing code is now located in lib/texts.
No changes other than code being moved around and adjustment of includes

Moved without changes:
Languages.h           -> texts/Languages.h
MetaString.*          -> texts/MetaString.*
TextOperations.*      -> texts/TextOperations.*

Split into parts:
CGeneralTextHandler.* -> texts/CGeneralTextHandler.*
                      -> texts/CLegacyConfigParser.*
                      -> texts/TextLocalizationContainer.*
                      -> texts/TextIdentifier.h
2024-07-20 12:55:17 +00:00
63bcf7d83c Replaced most of usages of CRandomGenerator with vstd::RNG in library 2024-07-16 13:13:07 +00:00
c00a1e1b0c Fixed new issues detected by SonarCloud 2024-07-15 07:46:40 +00:00
02e429e973 Fix typos using https://github.com/crate-ci/typos
Changes were reviewed manually
2024-06-24 03:47:19 +02:00
31401e219f Fix possible crash on nullptr dereference 2024-05-11 13:19:07 +00:00
8ed940d538 cleanup 2024-04-03 22:24:19 +02:00
9f048888dd Restore previous removeObject 2024-04-03 22:17:36 +02:00
2a213f2276 Reindex objects to show interactive objects on top 2024-04-03 14:48:04 +02:00
263d439605 Fix uninitialized variable 2024-03-24 07:54:11 +01:00
fd17133da3 Fix editor build 2024-02-06 00:40:26 +02:00
2e4895766a Implemented tracking of objects destroyed by players 2024-01-31 01:37:33 +02:00
ffd604c114 Removed unnecessary access to IHandler::objects 2024-01-19 13:56:06 +02:00
e67e4430ba Removed most of non-const static fields in lib. Reduced header includes. 2024-01-19 13:55:22 +02:00
a15366f5a5 Make IObjectInterface::cb non-static 2024-01-19 13:55:21 +02:00
ebf2055afc - Unban hero if related Prison is destroyed during map generation
- Move prison counter to PrisonHeroPlacer
2023-12-24 09:36:26 +01:00
8fe6a103cd - Move Hero / Prison distribution to separate modificator
- Protect rolling and banning hero with mutex
2023-12-11 07:37:23 +01:00
a7d6068bf6 Do not ignore block-visit objects when computing guardian locations 2023-11-28 19:32:03 +02:00
e979fb7056 Better fix for allowed heroes in h3m - allow all heroes from mods 2023-11-22 19:11:22 +02:00
c872f8418f Implemented serialization of MapObjectSubID, refactoring of related code 2023-11-17 21:18:34 +02:00
9f906ff1d2 Remove pointer to CGObjectInstance from map header 2023-11-17 16:39:15 +02:00
76956cfe3a Merge pull request #3188 from IvanSavenko/remove_identifier_implicit_int_conversion2
Remove implicit conversion of identifier to integer
2023-11-16 17:26:32 +02:00
6cb1f6ff11 Remove all remaining implicit conversion in lib 2023-11-15 15:55:19 +02:00
96c81be68e Win/loss conditions now use VariantIdentifier. Removed non-implemented
options
2023-11-15 15:55:19 +02:00
0842f5afee Removed remaining usages of std::vector<bool> 2023-11-15 15:55:18 +02:00
20ef3a69e7 Fix most of memleaks discovered by valgrind 2023-11-13 16:27:15 +02:00
8d5fa41a19 Minor fixes 2023-11-03 16:03:29 +02:00
3634fb2158 Remove int <=> Identifier comparisons 2023-11-03 16:03:29 +02:00
885dce0c27 Replace static_cast's of Identifiers with getNum call 2023-11-03 16:03:29 +02:00
03e1169781 Reduced number of accesses to CGObjectInstance::subID 2023-11-01 14:43:20 +02:00
a1a5bc28c2 convert line endings from CRLF (Windows) to LF (Linux/Unix)
Mixed line endings cause problems when exporting patches with
git-format-patch and then trying to "git am" a patch with mixed and
non-matching line endings. In such a situation git will fail to apply
the patch.

This commit runs the dos2unix tools on the remaining files with CRLF
(\r\n) line endings to convert them to line-feeds (\n) only.

Files that are Windows specific like *.vcxproj and *.props files were
not converted.

Closes: #3073
2023-10-19 16:23:21 +02:00
00c8c2eb82 Event message meta string 2023-09-27 23:28:17 +02:00
0ac893b80f Rumors meta string 2023-09-27 23:22:45 +02:00
f47def3588 refactoring 2023-09-19 13:31:57 +03:00
6e3817f18c Events serialization 2023-09-10 01:54:55 +02:00
a30e7ba321 Remove bitmasks of PlayerColor's. Add encode/decode methods 2023-09-04 18:56:16 +03:00
17d3d663ee Converted creature ID and spell ID to new form 2023-08-25 13:38:02 +03:00
03b3771f19 Ban Navigation on maps without water 2023-07-18 10:54:36 +02:00
025b0814c8 + Handled banning spells and artifacts
+ Rename allowedSpell => allowedSpells
2023-07-17 17:21:28 +02:00
a200e87640 Merge remote-tracking branch 'origin/develop' into ban_stuff_on_water_maps 2023-07-15 14:36:32 +02:00
37f3560b9c Fix build in debug mode 2023-07-11 15:21:31 +03:00
700d8459ac Checking flags and conditions 2023-07-09 11:16:36 +02:00
9b5f6ec7cf CArtifact getters setters 2023-07-05 15:48:08 +03:00
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
d51fe62804 Win/loss condition texts use MetaString 2023-06-20 19:37:27 +03:00
0901c8feaf Use boost::multiarray instead of manual memory management in CMap 2023-06-16 17:59:10 +03:00