RoosterDragon
e11c8436bd
Misc changes to reduce allocation:
...
- Avoid creating new strings in SpriteRenderer.Flush.
- ProductionQueue.CancelUnbuildableItems can exit early if the queue is empty. It can also use a set of names for quicker lookups.
- OpenGL.CheckGLError avoids a Enum.HasFlag call.
2020-10-17 23:48:48 +02:00
RoosterDragon
c23efea402
Comments to justify GC.Collect calls, compact LOH during load.
2020-10-17 23:48:48 +02:00
RoosterDragon
87389d3051
Reuse a list in FrozenActor.RefreshState
2020-10-17 23:48:48 +02:00
RoosterDragon
71e3ca4493
Sort renderables in-place in WorldRenderer.GenerateRenderables
2020-10-17 23:48:48 +02:00
RoosterDragon
094ccf76b0
Prefer Min/MaxBy overloads to OrderBy().First() patterns
2020-10-17 23:48:48 +02:00
RoosterDragon
bb116034c7
Avoid or reduce LINQ allocations required in various areas.
2020-10-17 23:48:48 +02:00
Matthias Mailänder
4da14cee0a
Disable UPnP on local games.
2020-10-16 18:14:33 +01:00
abcdefg30
8a7020b4ef
Ignore the length requirement of sync orders we want to drop
2020-10-14 19:53:49 +02:00
abcdefg30
1bc19e788c
Drop and log sync orders with mismatching length
2020-10-14 19:53:49 +02:00
abcdefg30
c17110dac5
Make OrderManager fields readonly where possible
2020-10-14 19:53:49 +02:00
abcdefg30
d07b34e67e
Style fixups in ReplayConnection.cs
2020-10-14 19:53:49 +02:00
abcdefg30
accecee018
Fix savegames not saving sync packets correctly
2020-10-14 19:53:49 +02:00
abcdefg30
1861174d38
Add a Order.SyncHashOrderLength const
2020-10-14 19:53:49 +02:00
Paul Chote
a375f0e58a
Rewrite spawn point assignment logic.
2020-10-13 20:41:39 +02:00
RoosterDragon
b2b639434c
ThreadedGraphicsContext improvements.
...
- VertexBuffer interface redefined to remove an IntPtr overload for SetData. This removes some unsafe code in TerrainSpriteLayer. This also allows the ThreadedVertexBuffer to use a buffer and post these calls, meaning the SetData call can now be non-blocking.
- ThreadedTexture SetData now checks the incoming array size. As the arrays sent here are usually large (megabytes) this allows us to avoid creating temp arrays in the LOH and skip Array.Copy calls on large arrays. This means the call is now blocking more often, but significantly reduces memory churn and GC Gen2 collections.
2020-10-13 15:54:53 +02:00
Curtis Shmyr
5eadd26f66
Set lobby bool display values to start uppercase
2020-10-12 22:05:35 +02:00
RoosterDragon
8fb65fd9bf
Use string pooling in MiniYaml to de-duplicate strings in memory.
...
These config files often contain many repeated strings which result in different string references in memory. By using a pool, we can detect when the strings are equal and reuse an existing reference as strings are immutable.
The FromLines will now use a pool to de-duplicate strings for a single call. By allowing a pool to be provided as a parameter, we can reuse even more strings. The MapCache defines such a pool so that strings are reused across all maps in the cache for even more savings.
2020-10-12 21:57:08 +02:00
RoosterDragon
9072d645fd
Use TrimExcess to shrink lists used by MiniYaml after loading
2020-10-12 21:57:08 +02:00
Paul Chote
597b8b1caa
Hide legacy GL support behind a feature flag.
2020-10-12 12:24:22 +02:00
Paul Chote
2c0d512727
Package and default to GLES via ANGLE on windows.
2020-10-12 12:24:22 +02:00
Paul Chote
87c5cc96ad
Add an "Automatic" GL profile.
2020-10-12 12:24:22 +02:00
Paul Chote
1ddbe50b3f
Add inline node inclusion support to mod.yaml.
2020-10-11 01:42:59 +02:00
Paul Chote
dd7b8b24af
Use tileset ID in sequences instead of the TileSet object.
2020-10-11 01:23:15 +02:00
reaperrr
f67b7ad837
Cache IResolveOrder traits on Actor
...
Avoids looking up all of them each time
an actor is given an order.
2020-10-10 13:59:40 +01:00
reaperrr
a4a409f39b
Pass world directly to UnitOrders.ResolveOrder
...
Avoids order.Subject.World look-ups.
Also removes validOrders parameter,
we can get that directly from World now.
2020-10-10 13:59:40 +01:00
reaperrr
904a5f60d1
Cache IOrderValidator traits on World
2020-10-10 13:59:40 +01:00
Clément Bœsch
815bbc6ee8
Save disconnect frame in the GameInformation
...
This information is useful to infer a winner in case the winstate is
unknown.
2020-10-10 01:17:39 +02:00
Clément Bœsch
ca8870a5cf
Server: handle wins/losses using Sync hash
...
Signed-off-by: Paul Chote <pchote@users.noreply.github.com >
2020-10-10 01:17:39 +02:00
Clément Bœsch
e5da58e2b4
Server: add basic replay recording
...
Signed-off-by: Paul Chote <pchote@users.noreply.github.com >
2020-10-10 01:17:39 +02:00
Paul Chote
dd18829def
Traits: add ICreatePlayersInfo
...
Signed-off-by: Clément Bœsch <u@pkh.me >
2020-10-10 01:17:39 +02:00
Paul Chote
41814a881d
Player: move player name resolve in a dedicated function
...
Signed-off-by: Paul Chote <pchote@users.noreply.github.com >
2020-10-10 01:17:39 +02:00
Clément Bœsch
d708f46d50
Orders: make SyncHash packet size check more accurate
2020-10-10 01:17:39 +02:00
Clément Bœsch
11f57b2b26
Protocol: add defeat state bitfields to Sync packets
...
Signed-off-by: Paul Chote <pchote@users.noreply.github.com >
2020-10-10 01:17:39 +02:00
Trevor Nichols
6f32196f89
Support List<> for FieldSaver/FieldLoader
2020-10-07 22:04:10 +02:00
Paul Chote
0672553a07
Lock Server.LobbyInfo to prevent races with callback threads.
2020-10-04 20:31:07 +02:00
abcdefg30
e4e1878a4b
Remove an used TerrainTemplateInfo constructor
2020-10-02 12:09:42 +02:00
abcdefg30
1a4b773fda
Replace 'is' by 'as' and a null check in ScriptMemberWrapper
2020-09-27 22:17:20 +02:00
Matthias Mailänder
930f8ab207
Reset lobby ready state when options change server side.
2020-09-27 15:06:48 +02:00
abcdefg30
82a2148300
Fix grouped orders not being validated correctly
2020-09-15 10:16:50 +02:00
Paul Chote
7f7bce50dc
Add dictionary support for ActorReference.
2020-09-15 09:27:50 +02:00
Paul Chote
ad4d6eaec9
Improve --check-missing-sprites error handling.
2020-09-12 17:52:46 +02:00
Paul Chote
ac8b312140
Generalize --check-sequence-sprites to --check-missing-sprites.
2020-09-12 17:52:46 +02:00
Paul Chote
3e849568ff
Improve exception message for bogus tileset definitions.
2020-09-12 17:52:46 +02:00
Paul Chote
94180f6a0a
Add SequenceReference support for dictionaries.
2020-09-12 17:52:46 +02:00
Paul Chote
7803686aec
Rewrite sequence linting / missing file handling.
...
- Distinguish between missing sequences and missing sprites
- Lint default sequences as well as maps
- Improved performance
- Correctly handle null images
2020-09-12 17:52:46 +02:00
Paul Chote
ffdb3f86d7
Move mod-specific lint attributes to Mods.Common.
2020-09-12 17:52:46 +02:00
Paul Chote
9cd6df2929
Replace DecorationPosition with mod-defined string ids.
2020-09-09 23:16:05 +02:00
Matthias Mailänder
b16cbeacb6
Sort contents before merging to unify UIDs across filesystems.
2020-09-07 17:25:24 +02:00
teinarss
2cf6b74295
Refactoring on GetEventBounds in Widget
2020-09-01 17:56:12 +02:00
Aigamo
06a1c88e86
Replace 0x7FFFFFFF with int.MaxValue
2020-08-29 12:37:20 +01:00