Paul Chote
d79d4479c7
Work around AI orders to invalid cells.
2018-03-22 13:52:41 +01:00
Paul Chote
7e94fa8c8a
Fix multi-turreted actors not appearing in the map editor.
2018-03-22 12:21:34 +01:00
Michael Silber
6b24271a17
Pass ActorInfo through building-placement-validation code.
2018-03-21 12:53:50 +01:00
Paul Chote
8ea1da1046
Apply map upgrade rules without instantiating the Map object.
...
This avoids a crash that stops the maps from being updated
when the base mod ruleset is not valid (e.g. a trait is missing a
FieldLoader.Required property). This also significantly improves the
upgrade performance.
2018-03-21 12:15:23 +01:00
Peter Antal
d2ff5b49fd
Allow each caller on MergeOrDefault to discard nodes.
...
Use filtering ActorInfo's to drop template actors.
2018-03-21 12:10:31 +01:00
reaperrr
40d7b41e84
Tweak Cruiser and Destroyer turret offsets
...
Moved back turret of cruiser a bit more backwards and destroyer turret a bit forward.
2018-03-21 12:09:18 +01:00
RoosterDragon
d0f7511a62
Add TrimExcess to TypeDictionary.
...
After adding is finished, this can be used to reduce the memory footprint of the dictionary.
2018-03-21 12:08:23 +01:00
RoosterDragon
e17ede34ef
Add Int32Matrix4x4 struct.
...
This allows matrices to be represented as a value type, and additionally allows avoiding array allocations when calculating rotations.
2018-03-21 12:07:53 +01:00
RoosterDragon
5bd5a384b7
Use a BitSet for representing target types.
...
- Rename Bits<T> to BitSet<T>.
- Implement set based helpers for BitSet<T>.
- When representing TargetTypes of ITargetable in various traits, use a BitSet<TargetableType> instead of HashSet<string> for better performance & reduced memory usage.
- Fix FieldLoader to trim input values when generating a BitSet<T>.
- Require T in BitSet<T> and BitSetAllocator<T> to be a class since it's just a marker value. This allows the JIT to instantiate generic code for these classes once, as they don't benefit from specialized code for T. (Typically JITs will generate shared code for all reference types, and unique code for every value type encountered).
2018-03-21 12:07:44 +01:00
Peter Antal
8fa94c5301
-Perform null check and add exception logging in RuleSet.
...
-Explicitly recognize connection termination on ServerOrder.Deserialize()
-Use explicit exception type for SDL2HardwareCursor failures.
2018-03-21 01:55:42 -03:00
reaperrr
f351f0346f
Cache map option ShortGame at game load
...
To reduce MapOptions calls.
2018-03-21 01:49:52 -03:00
RoosterDragon
0555ce9321
Reduce allocations in AutoTarget.ChooseTarget.
...
- Cache active target query.
- Prefer .Count == 0 over Any when working with Lists.
- Use helper for GetEnabledTargetTypes.
- Don't declare target variable until actually needed.
2018-03-21 01:08:59 -03:00
RoosterDragon
986025ca76
Reuse HashSets for actors entered/exited in CellTrigger & ProximityTrigger.
...
Actors involved in the trigger are determined as actors move around near the trigger - and can be expensive in some maps. This allows us to avoid allocating new sets and the CPU hit required to set it up each time.
2018-03-21 01:01:48 -03:00
abcdefg30
11b44963da
Remove duplicated rules from nod02a
...
They are already inherited from 'campaign-maprules.yaml'
and 'campaign-palettes.yaml'.
2018-03-21 00:52:18 -03:00
abcdefg30
7f55e85530
Rename DefaultCashLocked to DefaultCashDropdownLocked in yaml
2018-03-21 00:52:18 -03:00
Mustafa Alperen Seki
9122aac555
Fix rendering of IProductionIconOverlay on Spec UI
2018-03-19 23:11:48 +01:00
Paul Chote
e0bcfa918d
Fix half-pixel offset in ColorBlock rendering.
2018-03-19 17:31:44 +01:00
Paul Chote
27d9a9e6ff
Remove pre-20171014 upgrade rules.
2018-03-19 15:00:41 +01:00
David Wilson
9bc9ce4577
Color picker update with team color presets. Bots added will use available team color presets by default
2018-03-18 23:29:47 -03:00
netnazgul
b383b9abc9
Fix actors with PauseOnCondition ammo not scanning for targets when reloading
2018-03-18 22:57:18 +01:00
C. Helmig
aa829427f0
Fix silo preventing player elimination.
2018-03-18 22:11:36 +01:00
RoosterDragon
d2f2029caf
Add FirstNonEmptyBounds method for IDecorationBounds interface.
...
This provides a more efficient way of determining the bounds by avoiding LINQ. A helper that works directly on arrays prevents allocation of an enumerator when the collection is know to be an array.
2018-03-18 22:06:12 +01:00
RoosterDragon
3b642b1a79
Reuse TargetTypes collection in FrozenActor.RefreshState.
2018-03-18 16:50:20 +01:00
RoosterDragon
b4609337f8
Reuse a HashSet for deduplicating footprints in AffectsShroud.
...
Shroud footprints are recalculated as actors move around the map, and thus this gets called quite often. This allows us to avoid allocating a new set and the CPU hit required to set it up each time.
2018-03-18 16:46:07 +01:00
RoosterDragon
63810220e4
Improve some usages of Aggregate.
2018-03-18 16:44:17 +01:00
RoosterDragon
adc4538c44
Prevent crash when invalid or not yet created LAN games are discovered.
2018-03-18 16:23:06 +01:00
RoosterDragon
f47595b780
Hide map preview when no replay is selected.
...
This prevents interaction with the widget than can cause crashes as no replay is selected yet.
2018-03-18 16:06:27 +01:00
Mustafa Alperen Seki
356f24b78c
Add logic to disallowing On Hold on a queue.
2018-03-18 15:58:57 +01:00
RoosterDragon
f2e270ce06
Return IRenderable[] rather than IEnumerable<IRenderable> for animations.
...
Since some callers now know they have an array, then can enumerate it more efficiently and without allocating an enumerator.
2018-03-17 17:51:16 +01:00
fruehstueck
65c42a68ce
Add shortcuts for make.ps1 commands
2018-03-15 17:46:39 +00:00
Paul Chote
be96bafc69
Match missions using the unresolved path.
2018-03-11 16:32:10 +01:00
Paul Chote
ac7b6e42f0
Improve behaviour of Platform.UnresolvePath on Windows.
2018-03-11 16:32:10 +01:00
DESKTOP-7PLKRFC\jur_1
311cd521e3
Refinery spawned harvesters should prioritize lower ore #14827
2018-03-11 00:50:55 +01:00
xecollons
227cf35d5f
Added TooltipDescription
2018-03-10 17:55:05 +01:00
Peter Antal
3ce2417a06
Create SupportDirPrefix and IsPathRelativeToSupportDirectory() as members on Platform class.
2018-03-10 12:54:01 +00:00
reaperrr
1f4573886b
Improve TD service depot hitshape and target offsets
2018-03-10 04:44:46 +01:00
reaperrr
ce396e840d
Improve RA service depot hitshape + target offsets
2018-03-10 04:44:46 +01:00
reaperrr
fd83cbf60f
Fix WithTurretAimAnimation disabled handling
...
The old sequence was not recovering when this trait lost its required
condition while the aim anim was running.
Now it doesn't unconditionally return, but instead checks what the
current sequence is and resets to base turret sequence if AimAnim is
disabled.
2018-03-10 00:13:42 +01:00
Mustafa Alperen Seki
1d8b1906ef
Add IsPlayerPalette support to WithDecoration
2018-03-10 00:12:56 +01:00
abcdefg30
b012fa62fe
Replace 'target point' by 'center' in all descriptions
2018-03-09 23:32:07 +01:00
abcdefg30
ed6a6b61de
Throw a proper error when parsing an invalid int2
2018-03-09 23:32:07 +01:00
atlimit8
7283f9804e
Added Polygon IHitShape
2018-03-09 23:32:07 +01:00
abcdefg30
56e7b1edc2
Fix int2 arrays not being parsed
2018-03-09 23:32:07 +01:00
reaperrr
5a889c0efd
De-duplicate some WithTurretAttackAnimation code
2018-03-09 21:30:30 +01:00
reaperrr
769a49ef0b
Make WithTurretAimAnimation conditional
2018-03-09 21:30:30 +01:00
reaperrr
76da40bbda
Make WithTurretAttackAnimation conditional
2018-03-09 21:30:30 +01:00
reaperrr
02b1530300
Fix upgrade rule dates
2018-03-09 19:28:29 +01:00
reaperrr
79c78090d1
Remove WithSpriteTurret.AimSequence
...
We can now use WithTurretAimAnimation instead.
2018-03-09 19:28:29 +01:00
reaperrr
a1ad76ba74
Split *AimAnimation from WithTurretAttackAnimation
...
These two didn't interact and actually even conflicted when used at the same time, so splitting them is the sensible thing to do.
2018-03-09 19:28:29 +01:00
reaperrr
bd097730cf
Adapt TS
2018-03-09 18:58:49 +01:00