Commit Graph

3588 Commits

Author SHA1 Message Date
Matthias Mailänder
9df00ad8f9 Merge pull request #5590 from Happy0/sd2windowgrab
Closes #4977
2014-06-09 20:29:29 +02:00
Gordon Martin
5eab479c34 Adding SDL2 window grab on loading the game. Made this behaviour configurable in the 'Input' tab of the Settings menu
Updated settings file for TD to expose the new 'Lock mouse to window' display configuration option

A text label notes that modifying the 'Lock mouse' check box requires a restart
2014-06-09 19:10:05 +01:00
Matthias Mailänder
13fad65c19 Merge pull request #5539 from deniz1a/repair-pause
Closes #5322
2014-06-09 16:24:34 +02:00
Matthias Mailänder
7216688baf Merge pull request #5567 from ScottNZ/perf
Refactor AutoTarget scan and GPS interaction
2014-06-09 12:01:05 +02:00
Paul Chote
decdcf44d4 Merge pull request #5504 from RoosterDragon/frozen-fog-lookup-locals
Cache some dictionary lookups
2014-06-09 17:50:38 +12:00
Paul Chote
d8e5177a36 Merge pull request #5405 from RoosterDragon/min-max
Added MinBy, MaxBy, etc.
2014-06-09 17:42:01 +12:00
Chris Forbes
1051728790 Merge pull request #5541 from RoosterDragon/enumerate-armaments-once
Avoid repeated work in AttackBase.
2014-06-09 17:07:51 +12:00
Paul Chote
2c5f1de780 Don’t queue rallypoint move if MoveIntoWorld:false. Fixes #5576. 2014-06-08 11:52:39 +12:00
Matthias Mailänder
3a1c41c8ce move pixel doubling and health bar hotkeys to shared widget
closes #5572
2014-06-07 12:26:58 +02:00
ScottNZ
7e6f7c51e1 Refactor AutoTarget scan and GPS interaction, and cache trait lookup for a slight performance boost 2014-06-07 12:01:50 +12:00
Deniz Ayıkol
5055764e04 Make repair animation pause if player has no money.
use anim.Paused

removed the using line
2014-06-04 22:15:18 +03:00
RoosterDragon
0027434fbd Avoid multiple enumerations of armaments in AttackBase.
- Avoid enumerating the collection more than once in a method as it is not trivial.
2014-06-04 02:17:44 +01:00
Paul Chote
3803efb161 Merge pull request #5523 from Mailaender/dead-repair-indicator
avoid InvalidOperation and NullReferenceException
2014-06-02 22:36:56 +12:00
Matthias Mailänder
e66358792e fix a rare NullReferenceException in CanUnload
closes #5528
2014-06-02 10:18:09 +02:00
Matthias Mailänder
1700a36286 avoid InvalidOperation and NullReferenceException
fixes #5522
2014-06-02 09:27:36 +02:00
Paul Chote
c0d7c7d840 Make RenderSprites aware of EffectiveOwner. Fixes #5526. 2014-06-02 18:21:06 +12:00
Matthias Mailänder
75e19ca281 use ToLowerInvariant everywhere 2014-06-01 11:24:39 +02:00
Paul Chote
104272cee5 Merge pull request #5476 from Mailaender/production-rallypoint-cache
Moved RallyPoint trait lookup into the constructor of Production
2014-06-01 19:04:58 +12:00
Matthias Mailänder
8a008447b3 Merge pull request #5489 from pchote/transport-fix
Simplify MoveAdjacentTo logic. Fixes #4449
2014-06-01 07:12:36 +02:00
Paul Chote
40eff95a10 Simplify MoveAdjacentTo logic. Fixes #5445. 2014-06-01 10:58:44 +12:00
RoosterDragon
f180f44542 Cache some dictionary lookups in FrozenUnderFog.Tick.
Since FrozenUnderFog.Tick gets called a lot, these dictionary lookups were actually getting repeated a fair amount. Avoiding the repeated work is a minor performance improvement.
2014-05-31 18:29:31 +01:00
Matthias Mailänder
a900f24466 calculate exitLocation before FrameEndTask
and add more null and dead checks to be safe
2014-05-31 16:11:50 +02:00
Paul Chote
e1501d5b7c Add clock overlay to support power beacons. 2014-05-31 18:41:02 +12:00
Paul Chote
91126b9c48 Move support power beacons into Airstrike/Nuke.
This allows each instance to close over the individual beacons. Fixes #5455.
2014-05-31 17:10:46 +12:00
Matthias Mailänder
c1f8a8e315 move RallyPoint lookup into a Lazy 2014-05-28 10:51:53 +02:00
Matthias Mailänder
4c50757b18 catch trait lookup in constructor
closes #5472
2014-05-27 17:17:02 +02:00
RoosterDragon
0c8bdff5be Formatting fixes.
Spaces to tabs, indents, etc.
2014-05-26 18:10:59 +01:00
Kanar
b6a758494b Small Polish: Adds voices for aircraft's stop-orders 2014-05-26 03:28:51 +02:00
Matthias Mailänder
4d933481ce Merge pull request #5444 from ScottNZ/bleed
Closes #5439
2014-05-25 14:10:57 +02:00
ScottNZ
40e9fb93d6 Revert project file changes by RoosterDragon which would cause the TD mod to fail to load for some reason on Windows (de7a837d94, #5403).
VS will also generate a warning if it tries to source an icon from somewhere not in the project directory, so added it to the CrashDialog folder.
2014-05-26 00:07:30 +12:00
Matthias Mailänder
683edd2c37 fix frozen actors not visible under fog 2014-05-25 09:07:25 +02:00
Chris Forbes
5eb61dbdd2 Merge pull request #5411 from RoosterDragon/general-clean
General Cleanup
2014-05-25 11:03:03 +12:00
Chris Forbes
51b70777bd Merge pull request #5432 from Mailaender/replay-filter-nre
Fixed NullReferenceException when there are no replays
2014-05-25 10:56:02 +12:00
Chris Forbes
f7c91a9932 Merge pull request #5433 from RoosterDragon/main-loop-alloc
Reduce memory allocations in the main loop.
2014-05-25 10:38:27 +12:00
Matthias Mailänder
f83e27ae9a Merge pull request #5403 from RoosterDragon/solution-config
Unify settings for solution and project setups.
2014-05-24 17:13:43 +02:00
Matthias Mailänder
ca0fe59c41 make sure replays is always initialized
fixes #5431
2014-05-24 17:10:13 +02:00
Paul Chote
cb13335b8d Separate ping lifetime from beacons. Fixes #5424. 2014-05-24 23:05:22 +12:00
Paul Chote
932765d0c4 Adjust news dialog layout. 2014-05-24 20:08:48 +12:00
RoosterDragon
b733465f33 General uncontroversial cleanup:
- Made private methods static where possible (runtime can elide checking the object for null).
- Declared attribute classes as sealed (allows reflection on attributes to complete faster).
- Moved some static cctor's into field initializers (static cctor's are slower than static field initializers).
- Made classes static if they contained only static methods (can't create instances of useless objects).
- Use inferable Exts.Lazy and not new Lazy<T>().
- Added required STAThread attribute to CrashDialog.
- Removed unused parameters in private methods.
- Added Serializable attribute to exceptions.
- Added parameter name in calls to ArgumentNullException.
- Use of as operator instead of is + cast.
- Changed (x as Foo).Bar anti-pattern into ((Foo)x).Bar. Results in sensible cast exceptions on error rather than null dereferences.
- Removed unused method in NullShader.
2014-05-23 15:50:54 +01:00
RoosterDragon
a0db80cb6a Changes to reduce allocations in the main loop.
Targeted some methods that generated allocated a lot of memory in the main game loop:
- Actor.Render - Changed LINQ calls into equivalent loops. No allocation for delegates.
- Animation.Render - Returned an array rather than a yield expression. The array uses less memory than the complier generated enumerable.
- FrozenActor and FrozenUnderFog - Materialize the footprint into an array: The enumerable is not-trivial to evaluate is and evaluated many times inside the Tick function. The memory needed is minimal. Changed LINQ into equivalent loops to prevent delegate allocation. Should result in overall much faster calls.
- Widget.GetEventBounds - Changed LINQ calls into equivalent loops.
- MobileInfo.CanEnterCell - Changed LINQ calls into equivalent loops. Don't materialize list of blocking actors every time, instead enumerate them and only when they need to be checked.
- FrozenUnderFog.TickRender - Generate the renderables lazily and also remove a no-op Select call.
2014-05-23 14:48:11 +01:00
RoosterDragon
0ea3509ee4 Added MinBy, MaxBy, MinByOrDefault and MaxByOrDefault methods and replaced calls of the style OrderBy[Descending]().First[OrDefault]() which is not as performant. 2014-05-23 08:23:42 +01:00
RoosterDragon
de7a837d94 Unify settings for solution and project setups.
Create a single solution platform named x86.
Ensure both Debug and Release configs build to the root for all projects.
Ensure all Release configs generate pdbs.
2014-05-23 08:16:09 +01:00
Squiggles211
7e2599c898 Fixes #5394 Spawnpoint dropdown count
Fixes where the spawn point dropdown would show the same number of spawn
points as the number of players rather than the actual number of
available spawn points.
2014-05-23 02:14:16 -05:00
Pavlos Touboulidis
b8bbd55598 Misc changes
* Use Pair instead of KeyValuePair
* double -> var
* Butcher XML comments
* Change WinState default to Undefined and use it instead of the new GameOutcome
* Other changes
2014-05-22 21:57:07 +03:00
Pavlos Touboulidis
f4c52eefae Change date labels
Change "Last Week" to "Last 7 days" and "Last Month" to "Last 30 days".
Also added a "Last 14 days" option.
2014-05-22 21:54:15 +03:00
Pavlos Touboulidis
de0a5ebd43 Improve replay metadata and the replay browser
List of changes:

* Better and more filters with new layout, for both mods.

* Rename/Delete/Detele all functionality.

* Simplified ReplayMetadata class considerably by introducing a new
GameInformation data object. The new GameInformation class contains
more information than previously available so the new solution is not
compatible with old replays, meaning it can't read old replays.

* Better and cleaner game information gathering in order to be written
at the end of the replay file.

* Revert changes to ReplayConnection, no longer necessary.

* Better exception message on missing sprites and fonts.

* New "SpawnOccupant" class that holds all the information needed by the
MapPreviewWidget to visualize a spawn point. It was using Session.Client
before and it was necessary to separate it to be able to show information
not available at lobby time.

* Fix keyboard focus UI bug when closing a window would not remove focus.
2014-05-22 21:54:14 +03:00
Pavlos Touboulidis
042910bd5e New common dialog: TextInputPrompt to get a string from the user
For both ra and cnc
2014-05-22 21:54:14 +03:00
Pavlos Touboulidis
ce8c42b552 Style & nit fixes 2014-05-22 21:54:14 +03:00
Pavlos Touboulidis
a80c4f086a Add filters to the replay browser dialog
This closes issue #2152. The filters added are:

* Game type (singleplayer / multiplayer)
* Date
* Duration
* Outcome
* Player name

Other changes:

* Added a 'CollapseHiddenChildren' option to the ScrollPanelWidget to
make hidden children take up no space.
* Removed the extension (.rep) from the replay filenames in the
replay browser.
2014-05-22 21:54:14 +03:00
Pavlos Touboulidis
98a05b61b3 Add metadata block to replays
The replay files are just streams all network communication so to
get any info out of them it is necessary to play back the stream
until the wanted information is reached.

This introduces a new metadata block placed at the end of the
replay files and logic to read the new block, or fall back to
playing back the stream for older files.

The replay browser is also updated to use the metadata information
instead of reading the replay stream directly.
2014-05-22 21:54:14 +03:00