1
0
forked from mirrors/0ad
Commit Graph

338 Commits

Author SHA1 Message Date
Stan 421fbfd278 Make Profiler2 configurable in visual mode. Non visual doesn't load the config so it's not possible. Also update the profiler2 page to be able to change the port
Differential Revision: https://code.wildfiregames.com/D2444
This was SVN commit r24340.
2020-12-07 08:11:23 +00:00
wraitii a4852c4c01 Let players remap hotkeys in-game, fix default hotkeys being qwerty-specific.
- Provide a "Hotkey" screen to let players remap hotkeys in-game using a
convenient setup.
- Make all .cfg hotkeys refer to scancodes (i.e. position on the
keyboard), so that default hotkeys now translate correctly for AZERTY,
QWERTZ and other layouts.
- 'BackSpace' is now an alias for 'Delete', and works for killing units.
This fixes #1917, as macs don't have a proper delete key and would need
to use Fn+Del otherwise. This shifts "timewarp" to Shift+BackSpace.

Functionally, this switches hotkeys to scancodes, as that makes more
sense (they are combinations of key positions, not actual text output).
SDL includes are cleaned and key names are reused.

Fixes #2850, Fixes #2604, Refs #1810, Fixes #1917.

Follows work in 3d7784d2af.

Various diffs tested by: Angen, Stan, Freagarach
Comments by: Nescio
Differential Revision: https://code.wildfiregames.com/D2814
This was SVN commit r24215.
2020-11-19 09:27:26 +00:00
Freagarach 8e547cdce5 Add num pad hotkey equivalents.
Such that now e.g. control groups can be selected using those.

Patch by: @Nescio
Differential Revision: D3029
Accepted by: @wraitii
This was SVN commit r24120.
2020-11-03 18:16:19 +00:00
vladislavbelov 26ae55cad0 Adds contrast-adaptiv-sharpening filter, also helps to partly remove FXAA texture blurring.
Patch By: OptimusShepard
Tested By: Stan
Differential Revision: https://code.wildfiregames.com/D2642
This was SVN commit r23947.
2020-08-07 22:16:55 +00:00
wraitii 5473393e30 Add an interface for Reinforcement Learning.
Implement a simple HTTP server to start games, receive the gamestate and
pass commands to the simulation.
This is mainly intended for training reinforcement learning agents in 0
AD. As such, a python client and a small example are included.

This option can be enabled using the -rl-interface flag.

Patch by: irishninja
Reviewed By: wraitii, Itms
Fixes #5548

Differential Revision: https://code.wildfiregames.com/D2199
This was SVN commit r23917.
2020-08-01 10:52:59 +00:00
wraitii e9361705ae Refactor HWDetect and rendering options setup.
Remove duplication when setting graphic options by reading the configDB
directly.
Properly protect the ModIO config keys.

Approved By: linkmauve
Refs #5538

Differential Revision: https://code.wildfiregames.com/D1931
This was SVN commit r23747.
2020-06-07 13:16:57 +00:00
bb 37980a3e48 Move all session hotkeys under session in default.cfg
This appears to comply with "This can be changed once all settings
belong to a section." from afecbf02f3 which did not set these hotkeys
under session.

Patch By: Nescio
Differential Revision: D2616
This was SVN commit r23726.
2020-06-01 15:11:26 +00:00
vladislavbelov 113b1c49b9 Adds anti-aliasing option with FXAA algorithm.
Differential Revision: https://code.wildfiregames.com/D2537
This was SVN commit r23484.
2020-02-05 21:53:10 +00:00
elexis 912dda50d6 Option to allow having the same entity in multiple control groups.
Differential Revision: https://code.wildfiregames.com/D2176
Patch By: Freagarach
This was SVN commit r23476.
2020-02-02 17:17:16 +00:00
vladislavbelov 8ea416b125 Adds an option to enable/disable building snapping by a hotkey.
Comments By: elexis, bb
Differential Revision: https://code.wildfiregames.com/D2546
This was SVN commit r23459.
2020-01-29 17:41:39 +00:00
elexis 34138a7764 Gamesetup class rewrite, fixes #5322, refs #5387.
* Decouples settings logically which in turn allows fixing many problems
arising from previous coupling.
* Fixes the persist-match-settings feature, refs #2963, refs #3049.
* Improves performance of the matchsetup by rebuilding GUI objects only
when necessary.

Provides groundwork for:
* UI to control per-player handicap, such as StartingResources,
PopulationCap, StartingTechnologies, DisabledTechnologies,
DisabledTemplates, ..., refs #812.
* Map specific settings (onMapChange event), refs #4838.
* Chat notifications announcing which settings changed, refs D1195,
* Multiple controllers setting up the game (since setting types can
check for permissions in onUpdateGameAttributes without the need for a
new data model or a second gamesetup data network message type), refs
#3806, subsequently dedicated server, refs #3556.
* MapBrowser (MapCache, MapTypes, onUpdateGameAttributes interface),
refs D1703 and D1777,
* Multiplayer saved games (decoupling and setting dependent unique
logic), refs #1088.
Refs
https://wildfiregames.com/forum/index.php?/topic/20787-paid-development-2016/
https://wildfiregames.com/forum/index.php?/topic/20789-paid-development-2016/

Enable maps to restrict setting values:
* If a map specifies an AI or Civs for a playerslot, the controller
can't assign a player/other AI or Civ to that slot, refs #3049, #3013.

Fix per player StartingResources, PopulationCap, StartingTechnologies,
DisabledTechnologies, DisabledTemplates following 9177683653, refs #812,
fixes #4504. Use this for DisabledTechnologies on Polar Sea.

Persist user settings for Skirmish maps:
* All user chosen settings are persisted when changing the selected map
or maptype,
  except where the selected map overwrites the setting value and
  except for Scenario maps which still use the default value where the
map doesn't specify the setting value.

* Tickets relating to that Skirmish mapchange user setting persistance:
 - Selecting a map doesn't change the selected civilizations, fixes
#3120 (together with 7cf83f19fd removing map specified Civs).
 - Selecting a map type doesn't reset the selected settings, fixes
#5372.
 - Selecting a map doesn't change the selected victory conditions,
unless the map specifies those, refs #4661, #3209. (Atlas still writes
VictoryConditions to every map.)
 - Consume the player color palette from Skirmish maps, refs 4996d28110
/ #1580. Preserve the selected playercolors when switching the
Skirmish/Random map by chosing the most similar colors if the map comes
with a different palette.

Rated games:
* Hide and disable Rated game setting unless there are exactly two
players, fixes #3950, supersedes D2117.
* Display conspicuous warning if the game is rated, so players are
perfectly aware.

Autostarted games:
* Allow using the gamesetup page to autostart matches with arbitrary
maps, not only this one tutorial, as reported in D194 and 15e2b42525,
refs D11.

Networking:
* Keep gamesetup page open after disconnect, allowing players to read
chat messages indicating why the host stopped the server, fixes #4114.
* The message subscription system allows new and mod settings to run
custom logic on arbitrary setting changes (most importantly on map
change).
  This removes hardcoded logic restrictions from the gamesetup option
unification rewrite in b4e5858f6d/D322, refs #3994,
  such as the hardcoding of setting references in selectMap to biomes
from f2550705d3/D852 and the difficulty from 9daa7520ef/D1189,
RelicDuration, WonderDuration, LastManStanding, RegicideGarrison,
TriggerScripts, CircularMap, Garrison, DisabledTemplates.

Checkboxes:
* Display values of disabled checkboxes with Yes/No labels, fixes D2349,
reviewed by nani.

Clean g_GameAttributes of invalid values and gamesetup GUI temporaries,
refs #3049, #3883:
* Delete useless values:
 - VictoryScripts, because they are redundant with TriggerScripts,
introduced in 8915037631.
 - mapType which was written twice to g_GameAttributes following
9177683653
 - Description, Keywords, Preview since that doesn't impact simulation
and can be loaded from the MapCache
 - mapFilter, mapPath, SupportedBiomes, SupportedTriggerDifficulties
since they are only used in the gamesetup
* Delete conditional values if the condition is not met:
 - AIDiff, AIBehavior if there is no AI in that slot
 - Nomad and Size if the maptype is not Random
 - Biome, TriggerDifficulty if the map doesn't support that
 - WonderDuration, RegicideGarrison, RelicCount, RelicDuration if the
according VictoryConditions are not enabled
 - LastManStanding if TeamsLocked
 - Rating if there are more than 2 players

MapCache:
* Refactor to MapCache class, store maps of all types and use it in the
replaymenu, lobby and session as well.

SettingTabsPanel:
* Remove hardcodings and coupling of the SettingTabsPanel with
biomes/difficulties/chat UI from D1027/ac7b5ce861.

GamesetupPage.xml:
* Restructure the page to use hierarchical object organization
(topPanel, centerPanel, centerLeftPanel, bottomPanel, centerCenterPanel,
centerRightPanel, bottomLeftPanel, bottomRightPanel), allowing to
deduplicate object position margins and size math and ease navigation.

New defaults:
* Check LockedTeams default in multiplayer (not only rated games).
* Persist the rated game setting instead of defaulting to true when
restarting a match, which often lead to unintentional rated games when
rehosting.
* 60 FPS in menus since they are animated

Autocomplete sorting fixed (playernames should be completed first).
Refactoring encompasses the one proposed in Polakrity and bb D1651.

Differential Revision: https://code.wildfiregames.com/D2483
Tested by: nani
Discussed with:
* nani for blackbox testing, code architecture, performance and
MapBrowser in PMs on 2019-12-19, 2019-12-31, 2020-01-06
* Angen for the simulation diff on
http://irclogs.wildfiregames.com/2020-01/2020-01-03-QuakeNet-%230ad-dev.log
* bb on SettingsTabPanel on
http://irclogs.wildfiregames.com/2020-01/2020-01-05-QuakeNet-%230ad-dev.log
* Imarok on data model and revised multi-controller plans for #3806 on
http://irclogs.wildfiregames.com/2020-01/2020-01-07-QuakeNet-%230ad-dev.log
Emojis by: asterix, Imarok, fpre, nani, Krinkle, Stan, Angen, Freagarach
This was SVN commit r23374.
2020-01-11 20:14:17 +00:00
vladislavbelov 8e48e1b17e Adds optional fixed shadows without swimming effect
Fixed shadows have fixed rendering distance. Also they don't have a
swimming (blinking) effect on camera movement/rotation.

Comments By: Stan
Differential Revision: https://code.wildfiregames.com/D2465
This was SVN commit r23333.
2020-01-05 22:44:39 +00:00
vladislavbelov a8f241da5d Adds snapping to edges for buildings
Allows to place buildings a bit faster and more perfectly aligned. Also
it helps to find a nearest placeable position in some cases.

Reviewed By: elexis
Comments By: Stan, wraitii
Differential Revision: https://code.wildfiregames.com/D2079
This was SVN commit r23330.
2020-01-05 01:08:05 +00:00
elexis c16eddaedc Rewrite loading screen to use class semantics, refs #5387.
Add config option to display the loading screen stage description.
Add tip functions for future use, refs D1730.
Harmonize coordinates.

Differential Revision: https://code.wildfiregames.com/D2418
This was SVN commit r23150.
2019-11-12 15:54:09 +00:00
elexis 38e06fce7e Rewrite FPS/Realtime/Gametime/Ceasefire counters to use object semantics using class notation, refs #5387.
Rebuild the counters every 250ms instead of every frame and minimize
object creation.

Differential Revision: https://code.wildfiregames.com/D2391
Comments By: Stan
This was SVN commit r23096.
2019-10-27 12:39:28 +00:00
elexis 0ecc005654 Remove nonexistent hotkey used in cccc55ce97, undefined until 50166bb456, unused since a964e83c79.
refs #wfg 2008-07-12

This was SVN commit r22822.
2019-09-01 11:22:43 +00:00
elexis 214f805f83 Diplomacy and Objectives dialog hotkey.
Delete unused pauseMenuButton from 7a7ebaa983.

Differential Revision: https://code.wildfiregames.com/D2132
Reported By: minohaka
This was SVN commit r22650.
2019-08-12 10:54:25 +00:00
Imarok bc93f51a1c Add an experience status bar
Earlier version reviewed by: bb
Comments by: elexis
Differential Revision: https://code.wildfiregames.com/D1460
This was SVN commit r22226.
2019-04-25 15:58:54 +00:00
Imarok 6fb7479109 Acoustic notification when people join a hosted game
Patch by Polakrity.
Sound by Samulis.
Reviewed by: Imarok
Fixes: #4101
Differential Revision: https://code.wildfiregames.com/D932
This was SVN commit r22088.
2019-02-15 18:55:38 +00:00
elexis 6fe427664b Bump version to alpha 24.
Last alpha 23 commit was 0044c5c2e8.

Differential Revision: https://code.wildfiregames.com/D1705
Reviewed By: Itms
Comments By: Stan, smiley, bb
This was SVN commit r21951.
2018-12-26 11:28:37 +00:00
Itms d0dd3ccbc8 New mod signing key for A23b.
Fix indentation in previous commit (3e2c7f88e0).

Differential Revision: https://code.wildfiregames.com/D1686
This was SVN commit r21944.
2018-12-08 20:49:59 +00:00
user1 3e2c7f88e0 Update client\'s default.cfg for the new muc room arena23b
This was SVN commit r21943.
2018-12-06 13:36:28 +00:00
elexis 1bd9f4393b Allow users to disable TLS encryption entirely in the GUI to ease use of the lobby if gloox/GnuTLS crashes upon TLS handshake, refs #5349, #4705.
Differential Revision: https://code.wildfiregames.com/D1679
Based on patch by: Itms
Tested on Fedora: Itms, bb and myself

This was SVN commit r21932.
2018-11-27 14:41:44 +00:00
elexis 237c706dff Allow the user to print and save the text of the terms and conditions before the conclusion of the contract and use the word "Clickwrap agreement".
See EU Court of Justice decision C-322/14, refs #5257.
Adds one string.

Differential Revision: https://code.wildfiregames.com/D1657
This was SVN commit r21919.
2018-10-25 12:32:28 +00:00
elexis 54e5ad2ae9 Lobby Privacy Policy.
Restricts the previous Terms of Service clauses that asked for a
universal grant for personal data processing without explicitly
mentioning chatlogs or IP address logs (possibly in violation of the
Data Protection Directive).
Hopefully establishes GDPR compliance for the lobby by mentioning all
data procsessed, purposes and new user rights, fixes #5257.
Explain why the service is not directed to children < 13 and a COPPA
compliance note.
Add severability clause.
Add licensing note for terms.

Differential Revision: https://code.wildfiregames.com/D1590
Accepted By: Itms
refs https://wildfiregames.com/forum/index.php?/topic/24325-gdpr/

This was SVN commit r21908.
2018-10-16 13:46:18 +00:00
elexis 0e2adda813 Display lobby TLS certificate verification errors from gloox, refs #4705.
Update to the most reason why TLS certificate verification fails.
Don't use translation yet..

Differential Revision: https://code.wildfiregames.com/D1620
Upstream bugreport: https://bugs.camaya.net/ticket/?id=280

This was SVN commit r21901.
2018-10-09 17:50:08 +00:00
elexis 209bab0255 New UserReporter Terms and Conditions, hopefully GDPR compliant, refs #5257.
Require SSL for the UserReporter clientside.

Differential Revision: https://code.wildfiregames.com/D1598
Includes contributions by bb and Itms

This was SVN commit r21898.
2018-10-05 22:19:28 +00:00
elexis 27c107a448 Inform users that they are subject to the mod.io Terms and Conditions and Privacy Policy and provide links following 833c9f108c / D1029. Refs GDPR #5257.
Add link to feedback.wildfiregames.com, which demonstrates users how
their data is going to be used.

Add link buttons to the Terms dialog (refs #4583), so that users are
informed of the terms prior to becoming subject to them.
Don't link the DMCA / copyright terms of mod.io now since I found no UI
with support for 3 buttons that doesn't appear unsatisfyingly ugly.
Adds 3 button captions and 1 tooltip string.

Differential Revision: https://code.wildfiregames.com/D1627
A Comment and a relatable patch in D1601 by smiley / (-_-).

This was SVN commit r21890.
2018-09-22 16:27:49 +00:00
elexis da49aa1541 Refactor lobby terms and conditions UI from 80dbd1f2a3 / D1568 to a new terms dialog UI and reuse that for mod.io and the UserReporter, refs #5257, #5218.
Reuse all existing strings, use a FileExists hack for mod.io until the
new strings are committed.
Rename prelobby/common/terms/terms.js to termslobby.js for easier
distinction from common/terms.js.

Based on patch by: bb
Differential Revision: https://code.wildfiregames.com/D1602
refs https://code.wildfiregames.com/D1601
refs https://github.com/bb-bb/0ad/tree/terms
refs https://github.com/elexis1/0ad/tree/terms

This was SVN commit r21887.
2018-09-14 15:14:48 +00:00
elexis 78d7702262 Always require lobby authentication for lobby matches, refs #3549 / 0fd8aa2a77 / D897.
This is due to too many oversteppings of the lobby Terms of Use
following JS mods that implemented an UI for players to join lobby games
with arbitrary nicknames or 'replace' / impersonate other players in
lobby games.

Agreed with: user1, Dunedan
Code proofread by: Vladislav
Minor discussions with: Imarok, Hannibal_Barca, smiley, fpre, bb, nani
refs
https://wildfiregames.com/forum/index.php?/topic/24722-improving-mod-security/

This was SVN commit r21877.
2018-08-25 14:34:30 +00:00
elexis 1beb96cb20 Lobby to optionally require TLS certificate and certificate verification, refs #4737, #5257.
These are config options because developers should be able to test a
local lobby server quickly without going through the hassle to create a
valid or invalid certificate or modify and compile the client.
To protect from malicious JS mods reducing these security config
options, these options as well as the hostname would have to be
protected from JS access.
The user might still connect to other lobbies through a hypothetical UI
if there were a non-modifiable GUI confirmation dialog prior to the
connection.

Proofreading and feature design discussion by Vladislav and Dunedan on
irc on 2018-08-19 and 2018-08-23.

This was SVN commit r21875.
2018-08-24 11:29:38 +00:00
elexis 468d963e78 Persist the lobby Terms Of Use and Terms Of Service checkbox if the logged in user and the accepted versions of the pages didn't change since last login, refs #5218.
This way the user is only forced to read the Terms again that changed or
if the user logged in from a different machine.
Use md5sum since it is sufficiently resistant against collisions and
doesn't freeze the window for 2 seconds like EncryptPassword / SHA256
does, refs #4399.
Use 0 instead of empty string in default.cfg, refs #3990.

Differential Revision: https://code.wildfiregames.com/D1575
Partial review by: Vladislav
This was SVN commit r21850.
2018-06-21 16:38:08 +00:00
elexis 88eb3527b7 Remove leftover debug line from previous.
This was SVN commit r21848.
2018-06-11 16:08:49 +00:00
elexis 80dbd1f2a3 Rewrite the prelobby pages and add the Terms of Service, Terms of Use and the agreement checkbox to the login page.
Ensure lobby players cannot join without acceptance of the terms in case
they change, fixes #5218, as agreed in last staff meeting.

Separate lobby entrance, lobby login and lobby register GUI page.
Since bffe917914 they were squashed into a single GUI page;
 Adding lots of hardcode to set the visibility of GUI objects;
 Reinventing a GUI page manager in JS;
 Unintentionally persisting data between pages;
 Requiring lots of errorprone case distinctions which are unneeded once
relevant GUI objects and code is loaded exclusively.

Add the remember-password checkbox from b6b547d5f8 / D822 to the
registration page too.

Revert the revert of ccb534259d in 9f9db45a03 and continue to prefer
objects with separate functions per C++ GUI message type,
reducing the nesting of conditionals per function and reveal codeflow by
making input and output variables explicit.

Fix oversight in 0940db3fc0 by moving the registrationrate string from
0e2d2610c9 from the "disconnect" to the "error" case.

Differential Revision: https://code.wildfiregames.com/D1568
Few comments by: Vladislav, Imarok, gallaecio
This was SVN commit r21847.
2018-06-11 15:59:22 +00:00
elexis eda236522c Prevent players from disconnecting during the loading screen by increasing the timeout tolerance to 60 seconds for that period, fixes #5163.
The NetClient runs in the main thread, so any part of the loading screen
consuming several seconds makes that client timeout.
This is a workaround because threading the NetClient would have prevent
these timeouts, refs #3700.
Coutnerintuitively, since enet timeout tolerance is proportional to the
latency, the better the connection of the player, the more likely it was
to drop on gamestart.

This problem became very frequent in Alpha 23, at least due to the Aura
bugfix 583b6ec625, AIInterface being particularly slow and that not
having been disabled yet in the loading screen resulting in additional
10 second freezes during the loading screen, even on empty maps, refs
#5200, 8e168f85e6.

Differential Revision: https://code.wildfiregames.com/D1513
Based on patch by: causative
This was SVN commit r21842.
2018-06-06 22:09:38 +00:00
Itms 833c9f108c mod.io support.
mod.io is a new platform for sharing mods, that 0 A.D. can make use of
in order to download mods and install them.

Based on patch by leper, numerous changes from s0600204, vladislavbelov,
Imarok, elexis, temple and myself.
Differential Revision: https://code.wildfiregames.com/D1029
This was SVN commit r21759.
2018-04-22 18:14:45 +00:00
Itms e6106afc05 Send rating related requests directly to EcheLOn.
Patch By: Dunedan
Differential Revision: https://code.wildfiregames.com/D1177
This was SVN commit r21719.
2018-04-14 12:50:54 +00:00
s0600204 23b23a6ece Change key shortcut for Structure Tree.
So it doesn't collide with silhouette toggling.

Ok'd by: fpre
Refs: #4970, D846, 760a47335d, 760a47335d

This was SVN commit r21681.
2018-04-09 15:18:44 +00:00
temple 3be63d9865 Add ceasefirecounter to default.cfg, rename watershadows to shadowsonwater
Differential Revision: https://code.wildfiregames.com/D1379
Reviewed by: bb
This was SVN commit r21585.
2018-03-18 19:02:18 +00:00
elexis eee8217b45 Implement basic color editing in the options page and use it for the diplomacy colors, refs #4747, 7819ea434e.
Update the RangeOverlay config option only when the options dialog was
closed, not each turn, refs ee5bb1fd61.

Patch By: temple
Differential Revision: https://code.wildfiregames.com/D1291
This was SVN commit r21527.
2018-03-12 04:48:38 +00:00
Imarok 0fd8aa2a77 Secure lobby authentication - prevent joins as a different player
Reviewed by: Dunedan, elexis, Itms
Fixes #3549
Differential Revision: https://code.wildfiregames.com/D897
This was SVN commit r21520.
2018-03-12 00:23:40 +00:00
Imarok fede6cccf1 Wheel-adjustable batch size
Reviewed by: bb
Fixes #4767
Differential Revision: https://code.wildfiregames.com/D1034
This was SVN commit r21497.
2018-03-10 20:15:51 +00:00
s0600204 760a47335d Add buttons for changing between, and hotkeys for opening, the civinfo and structree
Patch by: fpre
Reviewed By: s0600204
Fixes: #4970
Differential Revision: https://code.wildfiregames.com/D846
This was SVN commit r21339.
2018-02-23 20:54:28 +00:00
vladislavbelov b6b547d5f8 Adds remember password checkbox
Reviewed By: elexis
Differential Revision: https://code.wildfiregames.com/D822
This was SVN commit r21311.
2018-02-21 22:01:03 +00:00
temple bebf68f8f5 Change hotkey.diplomacycolors to hotkey.session.diplomacycolors
This was SVN commit r21217.
2018-02-15 19:10:23 +00:00
temple f0b26e95ef Add a hotkey to toggle diplomacy colors
Differential Revision: https://code.wildfiregames.com/D1292
Reviewed by: elexis
This was SVN commit r21173.
2018-02-10 22:45:36 +00:00
Imarok 776899c254 Show rank icon above status bars
Reviewed by: bb
Fixes: #5005
Differential Revision: https://code.wildfiregames.com/D717
This was SVN commit r21076.
2018-01-30 15:10:20 +00:00
bb 7e14a33411 Make the resource/pop tooltips sortable
Patch By: ffffffff
Differential Revision: https://code.wildfiregames.com/D1113
This was SVN commit r21071.
2018-01-29 23:12:12 +00:00
elexis 36821e0937 Use Tab and Shift+Tab as the default hotkey to switch tabs.
Patch By: fpre / ffffffff
Comments By: bb
Differential Revision: https://code.wildfiregames.com/D1176
Refs #4982

This was SVN commit r20959.
2018-01-22 05:06:52 +00:00
bb ac7b5ce861 New UI for gamesetup settings
Nuke the more options window
Create 3 tabs containing all options from more options and map options,
giving more space for new options
Rename options => settings in gamesetup

Reviewed By: elexis
Comments By: ffffffff and gentz
Differential Revision: https://code.wildfiregames.com/D1027
This was SVN commit r20945.
2018-01-21 12:35:47 +00:00