Commit Graph

3087 Commits

Author SHA1 Message Date
RoosterDragon
7fbbaa2221 Optimize AutoTarget.ChooseTarget.
Avoid using LINQ for filtering, grouping and dictionary building. Instead, we do these ourselves to reduce overhead.

Actors are checked for AutoTargetIgnoreInfo (rather than the trait) since info checks are marginally faster. This check can now be done immediately to allow us to skip such actors right away.

The ClosestTo calculation is now only run on the group on actors for the selected armament, rather than all potential armaments.
2015-12-12 20:55:22 +00:00
RoosterDragon
487727c9d0 Optimize AutoTarget.ScanForTarget.
The currentTarget parameter is null at the only call site. Inlining it allows us to make some simplifications to the logic.
2015-12-12 20:55:20 +00:00
RoosterDragon
16386873af Optimize AttackBase.ChooseArmamentsForTarget.
Remove the unused onlyEnabled parameter to avoid it needlessly being captured in the closure, and simplify the logic.

Evaluate RequiresForceFire and Weapon.IsValidAgainst last in their respective logic chains as these are the most expensive operations and benefit from short-circuiting being able to skip their evaluation.
2015-12-12 20:55:19 +00:00
RoosterDragon
0fab3ec1b2 Remove LINQ in some performance critical AutoTarget paths. 2015-12-12 20:55:18 +00:00
RoosterDragon
dcf375a412 Store Targetables in Actor.
This can be used to avoid several lookups for these traits, as well as allow Actor to provide specialised methods to deal with target types efficiently. This also reduces some code duplication.
2015-12-12 20:55:17 +00:00
RoosterDragon
c0286bb147 Remove ActorMap.ActorsInWorld.
Prefer the more direct and efficient query on World.Actors instead.
2015-12-12 20:42:44 +00:00
RoosterDragon
912a0630e2 Tweak some Render methods for efficiency. 2015-12-12 20:42:43 +00:00
RoosterDragon
cbc090dd38 Ensure frozen actors are rendered on the first tick they become visible.
The previous lazy rendering means the snapshot of the render state might be more up to date then when the frozen actor actually did become visible. Now, we take this snapshot as soon as needed. We still retain the performance of only doing this rendering when needed by avoiding extra rendering until the visibility cycles again.
2015-12-12 19:54:25 +00:00
Oliver Brakmann
01d3bbb12c Merge pull request #10067 from Mailaender/ingame-client-tooltip
Added an in-game client tooltip with IP and country
2015-12-11 21:09:05 +01:00
teees
3b65232365 Optionally discard resources when silo capacity has been reached 2015-12-11 17:55:40 +01:00
teees
9dba85def5 Use heightmap to get correct groundlevel, fix additional behavior 2015-12-11 17:10:38 +01:00
Matthias Mailänder
79dc26c978 add an in-game client tooltip without latency indicator 2015-12-11 07:29:54 +01:00
Matthias Mailänder
1f07962510 remove unused Session.Slot 2015-12-11 07:29:07 +01:00
Paul Chote
92d0261005 Overhaul LazerZap and AreaBeam rendering. 2015-12-10 23:25:59 +00:00
Paul Chote
78556ec60c Remove obsolete WorldRenderer.DrawRangeCircle. 2015-12-10 23:25:58 +00:00
Paul Chote
170ef577d7 Reimplement RenderDetectionCircle trails. 2015-12-10 23:22:47 +00:00
Paul Chote
e2d43da1d8 Use RgbaColorRenderer for range circle rendering. 2015-12-10 23:22:47 +00:00
Paul Chote
68302c9617 Use RgbaColorRenderer for pathfinder debug rendering. 2015-12-10 23:22:47 +00:00
Paul Chote
8158d25ee6 Use RgbaColorRenderer for weather rendering. 2015-12-10 23:22:46 +00:00
Paul Chote
66744ee92a Use RgbaColorRenderer for UI rendering. 2015-12-10 23:22:46 +00:00
Paul Chote
2d89f15374 Use RgbaColorRenderer for warhead debug rendering. 2015-12-10 23:22:45 +00:00
RoosterDragon
4ed5a24bbe Merge pull request #10118 from pchote/rework-order-targets
Rework order targeting crazyness.
2015-12-10 20:09:57 +00:00
Taryn Hill
9b9d3c8af5 Add DebugOverlayColor to Warhead
This allows us to render WarheadDebugOverlay circles in a
color-per-warhead fashion.
2015-12-09 20:48:10 -06:00
RoosterDragon
47224bca40 Merge pull request #10078 from penev92/actorNameOverlay
Add an actor name overlay debug option
2015-12-08 21:16:26 +00:00
RoosterDragon
0c1df850a5 Merge pull request #10185 from obrakmann/fix-lobby-chat-unread-messages-button-blinking
Fix showing unread messages count on active lobby chat button
2015-12-08 20:48:08 +00:00
atlimit8
3d2aa751a3 TraitInfoInterface base for interfaces implemented by trait infos 2015-12-07 18:22:43 -06:00
abcdefg30
0976972f7c Merge pull request #10141 from reaperrr/fix-anim-cancel
Fix actors not going back to idle animation after custom animation
2015-12-07 15:13:00 +01:00
abcdefg30
22aa548d1b Merge pull request #10126 from RoosterDragon/fuf-perf
Speed up FrozenUnderFog.Tick
2015-12-07 15:03:59 +01:00
Pavel Penev
6f8b3c45b4 Add RenderDebugState trait 2015-12-07 01:41:19 +02:00
Pavel Penev
c51bad6050 Expose HackyAI's Squads and IsEnabled fields 2015-12-07 01:41:16 +02:00
Pavel Penev
6217ec0360 Add a ShowActorTags property to DeveloperMode 2015-12-07 01:41:15 +02:00
Oliver Brakmann
40c7ada8e7 Merge pull request #9927 from atlimit8/EasierActorSelectionInMapEditor
Easier actor selection in map editor by actor bounds center
2015-12-06 21:30:38 +01:00
Oliver Brakmann
c02881e51e Merge pull request #9735 from RoosterDragon/animation-refactor
Refactor animation classes
2015-12-06 18:53:45 +01:00
Oliver Brakmann
8c8e29e2fa Merge pull request #9802 from RoosterDragon/move-min-range
Fix MoveWithinRange not moving far enough for min range checks
2015-12-06 17:11:22 +01:00
Matthias Mailänder
fa5fd5c92f Merge pull request #9710 from obrakmann/yaml-removals
Fix yaml removals
2015-12-06 17:04:47 +01:00
Oliver Brakmann
16dd2a3323 Fix showing unread messages count on active lobby chat button
The lobby chat button text would change to include the unread messages count for a split second, even when the lobby chat was the current panel, leading to the button text sort of 'blinking' in an ugly way.
2015-12-06 14:27:40 +01:00
Matthias Mailänder
995d1dd4af Merge pull request #9650 from r34ch/health-bars-on-damage
Display status bars dropdown
2015-12-05 19:45:20 +01:00
Matthias Mailänder
a9d2ec5750 Merge pull request #9619 from abcdefg30/repulsionbug
Fix aircraft repulsing other aircraft when not being repulsable themselves
2015-12-05 19:20:40 +01:00
Matthias Mailänder
142d3ef6ab Merge pull request #9438 from atlimit8/UpgradableMobile
Upgradable Mobile and replace IDisableMove
2015-12-05 18:24:40 +01:00
Oliver Brakmann
d5dc49db85 Merge pull request #10156 from abcdefg30/deathSoundsAny
Fix DeathSounds not working without DeathTypes defined
2015-12-05 18:16:50 +01:00
Matthias Mailänder
0c44bac636 Merge pull request #9357 from UberWaffe/LineImpactProjectile
Added a LineImpactProjectile (Attempt 2)
2015-12-05 18:09:12 +01:00
RoosterDragon
082ea6ba73 Refactor animation classes.
Specify pause function in constructors of Animation if required, and remove the unused pause function from AnimationWithOffset.

Cleanup Animation.cs and reduce code duplication.
2015-12-05 16:58:26 +00:00
abcdefg30
6df67cf451 Merge pull request #9595 from ChaoticMind/middle_click
Middle click to cancel directly (skips onhold) & ctrl+cancel to cancel entire queue
2015-12-05 16:06:09 +01:00
Kevin Azzam
7b22023d57 Implement middle click to cancel (skips onhold) and ctrl+cancel to cancel entire queue 2015-12-05 15:50:41 +01:00
atlimit8
e9b0691f70 Improve rule upgrade logic for immobilization 2015-12-04 19:30:39 -06:00
atlimit8
c827dbe183 Replace IDisableMove with upgradability 2015-12-04 19:26:49 -06:00
atlimit8
0fc04b7a4a Make Mobile upgradable 2015-12-04 19:22:23 -06:00
atlimit8
f5460f9f56 Upgrade(s) while loading cargo 2015-12-04 19:17:16 -06:00
abcdefg30
e5bafe835f Merge pull request #9541 from reaperrr/rename-rendertraits-xy
Rename WithTurret, WithBarrel and WithReloadingTurret to include 'Sprite' in trait name
2015-12-05 00:24:37 +01:00
UberWaffe
f7f0dde4bb Added LineImpactProjectile. 2015-12-05 00:23:55 +02:00