mirror of
https://gitea.wildfiregames.com/0ad/0ad.git
synced 2026-07-26 13:31:26 +00:00
Extend the config parser to support ini-style config files. Refs #1810.
Config settings in a section are stored as "sectionname.setting" internally. Do not write section headers when writing config files as we would need to write settings without a dot first or ignore them. This can be changed once all settings belong to a section. This was SVN commit r15986.
This commit is contained in:
+249
-237
@@ -119,263 +119,275 @@ materialmgr.PARALLAX_VHQ_DIST.max = 0
|
|||||||
; Replace alpha-blending with alpha-testing, for performance experiments
|
; Replace alpha-blending with alpha-testing, for performance experiments
|
||||||
forcealphatest = false
|
forcealphatest = false
|
||||||
|
|
||||||
; Opt-in online user reporting system
|
|
||||||
userreport.url = "http://feedback.wildfiregames.com/report/upload/v1/"
|
|
||||||
|
|
||||||
; Colour of the sky (in "r g b" format)
|
; Colour of the sky (in "r g b" format)
|
||||||
skycolor = "0 0 0"
|
skycolor = "0 0 0"
|
||||||
|
|
||||||
; GENERAL PREFERENCES:
|
|
||||||
|
|
||||||
sound.mastergain = 0.9
|
|
||||||
sound.musicgain = 0.2
|
|
||||||
sound.ambientgain = 0.6
|
|
||||||
sound.actiongain = 0.7
|
|
||||||
sound.uigain = 0.7
|
|
||||||
|
|
||||||
; Camera control settings
|
|
||||||
view.scroll.speed = 120.0
|
|
||||||
view.scroll.speed.modifier = 1.05 ; Multiplier for changing scroll speed
|
|
||||||
view.rotate.x.speed = 1.2
|
|
||||||
view.rotate.x.min = 28.0
|
|
||||||
view.rotate.x.max = 60.0
|
|
||||||
view.rotate.x.default = 35.0
|
|
||||||
view.rotate.y.speed = 2.0
|
|
||||||
view.rotate.y.speed.wheel = 0.45
|
|
||||||
view.rotate.y.default = 0.0
|
|
||||||
view.rotate.speed.modifier = 1.05 ; Multiplier for changing rotation speed
|
|
||||||
view.drag.speed = 0.5
|
|
||||||
view.zoom.speed = 256.0
|
|
||||||
view.zoom.speed.wheel = 32.0
|
|
||||||
view.zoom.min = 50.0
|
|
||||||
view.zoom.max = 200.0
|
|
||||||
view.zoom.default = 120.0
|
|
||||||
view.zoom.speed.modifier = 1.05 ; Multiplier for changing zoom speed
|
|
||||||
view.pos.smoothness = 0.1
|
|
||||||
view.zoom.smoothness = 0.4
|
|
||||||
view.rotate.x.smoothness = 0.5
|
|
||||||
view.rotate.y.smoothness = 0.3
|
|
||||||
view.near = 2.0 ; Near plane distance
|
|
||||||
view.far = 4096.0 ; Far plane distance
|
|
||||||
view.fov = 45.0 ; Field of view (degrees), lower is narrow, higher is wide
|
|
||||||
view.height.smoothness = 0.5
|
|
||||||
view.height.min = 16
|
|
||||||
|
|
||||||
; How close do we have to be to the actual location in order to jump back to the previous one?
|
|
||||||
camerajump.threshold = 40
|
|
||||||
|
|
||||||
; HOTKEY MAPPINGS:
|
|
||||||
|
|
||||||
|
[hotkey]
|
||||||
; Each one of the specified keys will trigger the action on the left
|
; Each one of the specified keys will trigger the action on the left
|
||||||
; for multiple-key combinations, separate keys with '+' and enclose the entire thing
|
; for multiple-key combinations, separate keys with '+'.
|
||||||
; in doublequotes.
|
|
||||||
; See keys.txt for the list of key names.
|
; See keys.txt for the list of key names.
|
||||||
|
|
||||||
; > SYSTEM SETTINGS
|
; > SYSTEM SETTINGS
|
||||||
hotkey.exit = "Alt+F4", "Ctrl+Break", "Super+Q" ; Exit to desktop
|
exit = "Alt+F4", "Ctrl+Break", "Super+Q" ; Exit to desktop
|
||||||
hotkey.leave = Escape ; End current game or Exit
|
leave = Escape ; End current game or Exit
|
||||||
hotkey.confirm = Return ; Confirm the current command.
|
confirm = Return ; Confirm the current command.
|
||||||
hotkey.pause = Pause ; Pause/unpause game
|
pause = Pause ; Pause/unpause game
|
||||||
hotkey.screenshot = F2 ; Take PNG screenshot
|
screenshot = F2 ; Take PNG screenshot
|
||||||
hotkey.bigscreenshot = "Shift+F2" ; Take large BMP screenshot
|
bigscreenshot = "Shift+F2" ; Take large BMP screenshot
|
||||||
hotkey.togglefullscreen = "Alt+Return" ; Toggle fullscreen/windowed mode
|
togglefullscreen = "Alt+Return" ; Toggle fullscreen/windowed mode
|
||||||
hotkey.screenshot.watermark = "Alt+K" ; Toggle product/company watermark for official screenshots
|
screenshot.watermark = "Alt+K" ; Toggle product/company watermark for official screenshots
|
||||||
hotkey.wireframe = "Alt+W" ; Toggle wireframe mode
|
wireframe = "Alt+W" ; Toggle wireframe mode
|
||||||
hotkey.silhouettes = "Alt+S" ; Toggle unit silhouettes
|
silhouettes = "Alt+S" ; Toggle unit silhouettes
|
||||||
hotkey.showsky = "Alt+Z" ; Toggle sky
|
showsky = "Alt+Z" ; Toggle sky
|
||||||
|
|
||||||
; > CAMERA SETTINGS
|
|
||||||
hotkey.camera.reset = "R" ; Reset camera rotation to default.
|
|
||||||
hotkey.camera.follow = "F" ; Follow the first unit in the selection
|
|
||||||
hotkey.camera.zoom.in = Plus, Equals, NumPlus ; Zoom camera in (continuous control)
|
|
||||||
hotkey.camera.zoom.out = Minus, NumMinus ; Zoom camera out (continuous control)
|
|
||||||
hotkey.camera.zoom.wheel.in = WheelUp ; Zoom camera in (stepped control)
|
|
||||||
hotkey.camera.zoom.wheel.out = WheelDown ; Zoom camera out (stepped control)
|
|
||||||
hotkey.camera.rotate.up = "Ctrl+UpArrow", "Ctrl+W" ; Rotate camera to look upwards
|
|
||||||
hotkey.camera.rotate.down = "Ctrl+DownArrow", "Ctrl+S" ; Rotate camera to look downwards
|
|
||||||
hotkey.camera.rotate.cw = "Ctrl+LeftArrow", "Ctrl+A", Q ; Rotate camera clockwise around terrain
|
|
||||||
hotkey.camera.rotate.ccw = "Ctrl+RightArrow", "Ctrl+D", E ; Rotate camera anticlockwise around terrain
|
|
||||||
hotkey.camera.rotate.wheel.cw = "Shift+WheelUp", MouseX1 ; Rotate camera clockwise around terrain (stepped control)
|
|
||||||
hotkey.camera.rotate.wheel.ccw = "Shift+WheelDown", MouseX2 ; Rotate camera anticlockwise around terrain (stepped control)
|
|
||||||
hotkey.camera.pan = MouseMiddle ; Enable scrolling by moving mouse
|
|
||||||
hotkey.camera.left = A, LeftArrow ; Scroll or rotate left
|
|
||||||
hotkey.camera.right = D, RightArrow ; Scroll or rotate right
|
|
||||||
hotkey.camera.up = W, UpArrow ; Scroll or rotate up/forwards
|
|
||||||
hotkey.camera.down = S, DownArrow ; Scroll or rotate down/backwards
|
|
||||||
hotkey.camera.scroll.speed.increase = "Ctrl+Shift+S" ; Increase scroll speed
|
|
||||||
hotkey.camera.scroll.speed.decrease = "Ctrl+Alt+S" ; Decrease scroll speed
|
|
||||||
hotkey.camera.rotate.speed.increase = "Ctrl+Shift+R" ; Increase rotation speed
|
|
||||||
hotkey.camera.rotate.speed.decrease = "Ctrl+Alt+R" ; Decrease rotation speed
|
|
||||||
hotkey.camera.zoom.speed.increase = "Ctrl+Shift+Z" ; Increase zoom speed
|
|
||||||
hotkey.camera.zoom.speed.decrease = "Ctrl+Alt+Z" ; Decrease zoom speed
|
|
||||||
hotkey.camera.jump.1 = F5 ; Jump to position N
|
|
||||||
hotkey.camera.jump.2 = F6
|
|
||||||
hotkey.camera.jump.3 = F7
|
|
||||||
hotkey.camera.jump.4 = F8
|
|
||||||
;hotkey.camera.jump.5 =
|
|
||||||
;hotkey.camera.jump.6 =
|
|
||||||
;hotkey.camera.jump.7 =
|
|
||||||
;hotkey.camera.jump.8 =
|
|
||||||
;hotkey.camera.jump.9 =
|
|
||||||
;hotkey.camera.jump.10 =
|
|
||||||
hotkey.camera.jump.set.1 = "Ctrl+F5" ; Set jump position N
|
|
||||||
hotkey.camera.jump.set.2 = "Ctrl+F6"
|
|
||||||
hotkey.camera.jump.set.3 = "Ctrl+F7"
|
|
||||||
hotkey.camera.jump.set.4 = "Ctrl+F8"
|
|
||||||
;hotkey.camera.jump.set.5 =
|
|
||||||
;hotkey.camera.jump.set.6 =
|
|
||||||
;hotkey.camera.jump.set.7 =
|
|
||||||
;hotkey.camera.jump.set.8 =
|
|
||||||
;hotkey.camera.jump.set.9 =
|
|
||||||
;hotkey.camera.jump.set.10 =
|
|
||||||
|
|
||||||
; > CONSOLE SETTINGS
|
|
||||||
hotkey.console.toggle = BackQuote, F9 ; Open/close console
|
|
||||||
|
|
||||||
; > CLIPBOARD CONTROLS
|
; > CLIPBOARD CONTROLS
|
||||||
hotkey.copy = "Ctrl+C" ; Copy to clipboard
|
copy = "Ctrl+C" ; Copy to clipboard
|
||||||
hotkey.paste = "Ctrl+V" ; Paste from clipboard
|
paste = "Ctrl+V" ; Paste from clipboard
|
||||||
hotkey.cut = "Ctrl+X" ; Cut selected text and copy to the clipboard
|
cut = "Ctrl+X" ; Cut selected text and copy to the clipboard
|
||||||
|
|
||||||
; > ENTITY SELECTION
|
; > CONSOLE SETTINGS
|
||||||
hotkey.selection.add = Shift ; Add units to selection
|
console.toggle = BackQuote, F9 ; Open/close console
|
||||||
hotkey.selection.milonly = Alt ; Add only military units to selection
|
|
||||||
hotkey.selection.remove = Ctrl ; Remove units from selection
|
|
||||||
hotkey.selection.cancel = Esc ; Un-select all units and cancel building placement
|
|
||||||
hotkey.selection.idleworker = Period ; Select next idle worker
|
|
||||||
hotkey.selection.idlewarrior = ForwardSlash ; Select next idle warrior
|
|
||||||
hotkey.selection.offscreen = Alt ; Include offscreen units in selection
|
|
||||||
hotkey.selection.group.select.0 = 0
|
|
||||||
hotkey.selection.group.save.0 = "Ctrl+0"
|
|
||||||
hotkey.selection.group.add.0 = "Shift+0"
|
|
||||||
hotkey.selection.group.select.1 = 1
|
|
||||||
hotkey.selection.group.save.1 = "Ctrl+1"
|
|
||||||
hotkey.selection.group.add.1 = "Shift+1"
|
|
||||||
hotkey.selection.group.select.2 = 2
|
|
||||||
hotkey.selection.group.save.2 = "Ctrl+2"
|
|
||||||
hotkey.selection.group.add.2 = "Shift+2"
|
|
||||||
hotkey.selection.group.select.3 = 3
|
|
||||||
hotkey.selection.group.save.3 = "Ctrl+3"
|
|
||||||
hotkey.selection.group.add.3 = "Shift+3"
|
|
||||||
hotkey.selection.group.select.4 = 4
|
|
||||||
hotkey.selection.group.save.4 = "Ctrl+4"
|
|
||||||
hotkey.selection.group.add.4 = "Shift+4"
|
|
||||||
hotkey.selection.group.select.5 = 5
|
|
||||||
hotkey.selection.group.save.5 = "Ctrl+5"
|
|
||||||
hotkey.selection.group.add.5 = "Shift+5"
|
|
||||||
hotkey.selection.group.select.6 = 6
|
|
||||||
hotkey.selection.group.save.6 = "Ctrl+6"
|
|
||||||
hotkey.selection.group.add.6 = "Shift+6"
|
|
||||||
hotkey.selection.group.select.7 = 7
|
|
||||||
hotkey.selection.group.save.7 = "Ctrl+7"
|
|
||||||
hotkey.selection.group.add.7 = "Shift+7"
|
|
||||||
hotkey.selection.group.select.8 = 8
|
|
||||||
hotkey.selection.group.save.8 = "Ctrl+8"
|
|
||||||
hotkey.selection.group.add.8 = "Shift+8"
|
|
||||||
hotkey.selection.group.select.9 = 9
|
|
||||||
hotkey.selection.group.save.9 = "Ctrl+9"
|
|
||||||
hotkey.selection.group.add.9 = "Shift+9"
|
|
||||||
|
|
||||||
; > SESSION CONTROLS
|
|
||||||
hotkey.session.kill = Delete ; Destroy selected units
|
|
||||||
hotkey.session.stop = "H" ; Stop the current action
|
|
||||||
hotkey.session.attack = "Ctrl+Alt" ; Modifier to force attack instead of another action
|
|
||||||
hotkey.session.attackmove = Ctrl ; Modifier to attackmove when clicking on a point
|
|
||||||
hotkey.session.attackmoveUnit = "Ctrl+Q" ; Modifier to attackmove targeting only units when clicking on a point (should contain the attackmove keys)
|
|
||||||
hotkey.session.garrison = Ctrl ; Modifier to garrison when clicking on building
|
|
||||||
hotkey.session.autorallypoint = Ctrl ; Modifier to set the rally point on the building itself
|
|
||||||
hotkey.session.guard = "G" ; Modifier to escort/guard when clicking on unit/building
|
|
||||||
hotkey.session.queue = Shift ; Modifier to queue unit orders instead of replacing
|
|
||||||
hotkey.session.batchtrain = Shift ; Modifier to train units in batches
|
|
||||||
hotkey.session.massbarter = Shift ; Modifier to barter bunch of resources
|
|
||||||
hotkey.session.masstribute = Shift ; Modifier to tribute bunch of resources
|
|
||||||
hotkey.session.fulltradeswap = Shift ; Modifier to put the desired trade resource to 100%
|
|
||||||
hotkey.session.unloadtype = Shift ; Modifier to unload all units of type
|
|
||||||
hotkey.session.deselectgroup = Ctrl ; Modifier to deselect units when clicking group icon, instead of selecting
|
|
||||||
hotkey.session.rotate.cw = RightBracket ; Rotate building placement preview clockwise
|
|
||||||
hotkey.session.rotate.ccw = LeftBracket ; Rotate building placement preview anticlockwise
|
|
||||||
hotkey.timewarp.fastforward = Space ; If timewarp mode enabled, speed up the game
|
|
||||||
hotkey.timewarp.rewind = Backspace ; If timewarp mode enabled, go back to earlier point in the game
|
|
||||||
|
|
||||||
; > UNIT TRAINING
|
|
||||||
hotkey.session.queueunit.1 = "Z" ; add first unit type to queue
|
|
||||||
hotkey.session.queueunit.2 = "X" ; add second unit type to queue
|
|
||||||
hotkey.session.queueunit.3 = "C" ; add third unit type to queue
|
|
||||||
hotkey.session.queueunit.4 = "V" ; add fourth unit type to queue
|
|
||||||
hotkey.session.queueunit.5 = "B" ; add fivth unit type to queue
|
|
||||||
hotkey.session.queueunit.6 = "N" ; add sixth unit type to queue
|
|
||||||
hotkey.session.queueunit.7 = "M" ; add seventh unit type to queue
|
|
||||||
hotkey.session.queueunit.8 = Comma ; add eighth unit type to queue
|
|
||||||
|
|
||||||
; > OVERLAY KEYS
|
; > OVERLAY KEYS
|
||||||
hotkey.fps.toggle = "Alt+F" ; Toggle frame counter
|
fps.toggle = "Alt+F" ; Toggle frame counter
|
||||||
hotkey.realtime.toggle = "Alt+T" ; Toggle current display of computer time
|
realtime.toggle = "Alt+T" ; Toggle current display of computer time
|
||||||
hotkey.session.devcommands.toggle = "Alt+D" ; Toggle developer commands panel
|
session.devcommands.toggle = "Alt+D" ; Toggle developer commands panel
|
||||||
hotkey.session.gui.toggle = "Alt+G" ; Toggle visibility of session GUI
|
session.gui.toggle = "Alt+G" ; Toggle visibility of session GUI
|
||||||
hotkey.menu.toggle = "F10" ; Toggle in-game menu
|
menu.toggle = "F10" ; Toggle in-game menu
|
||||||
hotkey.timeelapsedcounter.toggle = "F12" ; Toggle time elapsed counter
|
timeelapsedcounter.toggle = "F12" ; Toggle time elapsed counter
|
||||||
hotkey.session.showstatusbars = Tab ; Toggle display of status bars
|
session.showstatusbars = Tab ; Toggle display of status bars
|
||||||
hotkey.session.highlightguarding = PgDn ; Toggle highlight of guarding units
|
session.highlightguarding = PgDn ; Toggle highlight of guarding units
|
||||||
hotkey.session.highlightguarded = PgUp ; Toggle highlight of guarded units
|
session.highlightguarded = PgUp ; Toggle highlight of guarded units
|
||||||
|
|
||||||
; > HOTKEYS ONLY
|
; > HOTKEYS ONLY
|
||||||
hotkey.chat = Return ; Toggle chat window
|
chat = Return ; Toggle chat window
|
||||||
hotkey.teamchat = "T" ; Toggle chat window in team chat mode
|
teamchat = "T" ; Toggle chat window in team chat mode
|
||||||
|
|
||||||
; > GUI TEXTBOX HOTKEYS
|
|
||||||
hotkey.text.delete.left = "Ctrl+Backspace" ; Delete word to the left of cursor
|
|
||||||
hotkey.text.delete.right = "Ctrl+Del" ; Delete word to the right of cursor
|
|
||||||
hotkey.text.move.left = "Ctrl+LeftArrow" ; Move cursor to start of word to the left of cursor
|
|
||||||
hotkey.text.move.right = "Ctrl+RightArrow" ; Move cursor to start of word to the right of cursor
|
|
||||||
|
|
||||||
; > PROFILER
|
|
||||||
hotkey.profile.toggle = "F11" ; Enable/disable real-time profiler
|
|
||||||
hotkey.profile.save = "Shift+F11" ; Save current profiler data to logs/profile.txt
|
|
||||||
hotkey.profile2.toggle = "Ctrl+F11" ; Enable/disable HTTP/GPU modes for new profiler
|
|
||||||
|
|
||||||
profiler2.autoenable = false ; Enable HTTP server output at startup (default off for security/performance)
|
|
||||||
profiler2.script.enable = false ; Enable Javascript profiling. Needs to be set before startup and can't be changed later. (default off for performance)
|
|
||||||
profiler2.gpu.arb.enable = true ; Allow GL_ARB_timer_query timing mode when available
|
|
||||||
profiler2.gpu.ext.enable = true ; Allow GL_EXT_timer_query timing mode when available
|
|
||||||
profiler2.gpu.intel.enable = true ; Allow GL_INTEL_performance_queries timing mode when available
|
|
||||||
|
|
||||||
; Developer options
|
|
||||||
jsdebugger.enable = false ; Enable Javascript debugging. The Debugger is currently broken and can't be enabled until the SpiderMonkey upgrade is done and the debugger is updated for the new API.
|
|
||||||
tinygettext.debug = false ; Enable Tinygettext debugging information. If true, Tinygettext prints error messages each time that a translation for an English string is not found.
|
|
||||||
|
|
||||||
; > QUICKSAVE
|
; > QUICKSAVE
|
||||||
hotkey.quicksave = "Shift+F5"
|
quicksave = "Shift+F5"
|
||||||
hotkey.quickload = "Shift+F8"
|
quickload = "Shift+F8"
|
||||||
|
|
||||||
; EXPERIMENTAL: joystick/gamepad settings
|
[hotkey.camera]
|
||||||
joystick.enable = false
|
reset = "R" ; Reset camera rotation to default.
|
||||||
joystick.deadzone = 8192
|
follow = "F" ; Follow the first unit in the selection
|
||||||
joystick.camera.pan.x = 0
|
zoom.in = Plus, Equals, NumPlus ; Zoom camera in (continuous control)
|
||||||
joystick.camera.pan.y = 1
|
zoom.out = Minus, NumMinus ; Zoom camera out (continuous control)
|
||||||
joystick.camera.rotate.x = 3
|
zoom.wheel.in = WheelUp ; Zoom camera in (stepped control)
|
||||||
joystick.camera.rotate.y = 2
|
zoom.wheel.out = WheelDown ; Zoom camera out (stepped control)
|
||||||
joystick.camera.zoom.in = 5
|
rotate.up = "Ctrl+UpArrow", "Ctrl+W" ; Rotate camera to look upwards
|
||||||
joystick.camera.zoom.out = 4
|
rotate.down = "Ctrl+DownArrow", "Ctrl+S" ; Rotate camera to look downwards
|
||||||
|
rotate.cw = "Ctrl+LeftArrow", "Ctrl+A", Q ; Rotate camera clockwise around terrain
|
||||||
|
rotate.ccw = "Ctrl+RightArrow", "Ctrl+D", E ; Rotate camera anticlockwise around terrain
|
||||||
|
rotate.wheel.cw = "Shift+WheelUp", MouseX1 ; Rotate camera clockwise around terrain (stepped control)
|
||||||
|
rotate.wheel.ccw = "Shift+WheelDown", MouseX2 ; Rotate camera anticlockwise around terrain (stepped control)
|
||||||
|
pan = MouseMiddle ; Enable scrolling by moving mouse
|
||||||
|
left = A, LeftArrow ; Scroll or rotate left
|
||||||
|
right = D, RightArrow ; Scroll or rotate right
|
||||||
|
up = W, UpArrow ; Scroll or rotate up/forwards
|
||||||
|
down = S, DownArrow ; Scroll or rotate down/backwards
|
||||||
|
scroll.speed.increase = "Ctrl+Shift+S" ; Increase scroll speed
|
||||||
|
scroll.speed.decrease = "Ctrl+Alt+S" ; Decrease scroll speed
|
||||||
|
rotate.speed.increase = "Ctrl+Shift+R" ; Increase rotation speed
|
||||||
|
rotate.speed.decrease = "Ctrl+Alt+R" ; Decrease rotation speed
|
||||||
|
zoom.speed.increase = "Ctrl+Shift+Z" ; Increase zoom speed
|
||||||
|
zoom.speed.decrease = "Ctrl+Alt+Z" ; Decrease zoom speed
|
||||||
|
|
||||||
; SESSION GUI SETTINGS
|
[hotkey.camera.jump]
|
||||||
gui.session.timeelapsedcounter = false ; Show the game duration in the top right corner
|
1 = F5 ; Jump to position N
|
||||||
gui.session.attacknotificationmessage = true ; Show attack notification messages
|
2 = F6
|
||||||
gui.session.minimap.pingduration = 50.0 ; The duration for which an entity will be pinged after an attack notification
|
3 = F7
|
||||||
gui.session.minimap.blinkduration = 1.7 ; The blink duration while pinging
|
4 = F8
|
||||||
|
;5 =
|
||||||
|
;6 =
|
||||||
|
;7 =
|
||||||
|
;8 =
|
||||||
|
;9 =
|
||||||
|
;10 =
|
||||||
|
[hotkey.camera.jump.set]
|
||||||
|
1 = "Ctrl+F5" ; Set jump position N
|
||||||
|
2 = "Ctrl+F6"
|
||||||
|
3 = "Ctrl+F7"
|
||||||
|
4 = "Ctrl+F8"
|
||||||
|
;5 =
|
||||||
|
;6 =
|
||||||
|
;7 =
|
||||||
|
;8 =
|
||||||
|
;9 =
|
||||||
|
;10 =
|
||||||
|
|
||||||
; GENERAL GUI SETTINGS
|
[hotkey.profile]
|
||||||
gui.cursorblinkrate = 0.5 ; Cursor blink rate in seconds (0.0 to disable blinking)
|
toggle = "F11" ; Enable/disable real-time profiler
|
||||||
|
save = "Shift+F11" ; Save current profiler data to logs/profile.txt
|
||||||
|
[hotkey.profile2]
|
||||||
|
toggle = "Ctrl+F11" ; Enable/disable HTTP/GPU modes for new profiler
|
||||||
|
|
||||||
; Multiplayer lobby preferences
|
[hotkey.selection]
|
||||||
lobby.server = "lobby.wildfiregames.com" ; Address of lobby server
|
add = Shift ; Add units to selection
|
||||||
lobby.xpartamupp = "wfgbot18" ; Name of the server-side xmpp client that manage games
|
milonly = Alt ; Add only military units to selection
|
||||||
lobby.chattimestamp = false ; Show time chat message was posted
|
remove = Ctrl ; Remove units from selection
|
||||||
lobby.room = "arena18" ; Default MUC room to join
|
cancel = Esc ; Un-select all units and cancel building placement
|
||||||
lobby.history = 0 ; Number of past messages to display on join
|
idleworker = Period ; Select next idle worker
|
||||||
|
idlewarrior = ForwardSlash ; Select next idle warrior
|
||||||
|
offscreen = Alt ; Include offscreen units in selection
|
||||||
|
[hotkey.selection.group.add]
|
||||||
|
0 = "Shift+0"
|
||||||
|
1 = "Shift+1"
|
||||||
|
2 = "Shift+2"
|
||||||
|
3 = "Shift+3"
|
||||||
|
4 = "Shift+4"
|
||||||
|
5 = "Shift+5"
|
||||||
|
6 = "Shift+6"
|
||||||
|
7 = "Shift+7"
|
||||||
|
8 = "Shift+8"
|
||||||
|
9 = "Shift+9"
|
||||||
|
[hotkey.selection.group.save]
|
||||||
|
0 = "Ctrl+0"
|
||||||
|
1 = "Ctrl+1"
|
||||||
|
2 = "Ctrl+2"
|
||||||
|
3 = "Ctrl+3"
|
||||||
|
4 = "Ctrl+4"
|
||||||
|
5 = "Ctrl+5"
|
||||||
|
6 = "Ctrl+6"
|
||||||
|
7 = "Ctrl+7"
|
||||||
|
8 = "Ctrl+8"
|
||||||
|
9 = "Ctrl+9"
|
||||||
|
[hotkey.selection.group.select]
|
||||||
|
0 = 0
|
||||||
|
1 = 1
|
||||||
|
2 = 2
|
||||||
|
3 = 3
|
||||||
|
4 = 4
|
||||||
|
5 = 5
|
||||||
|
6 = 6
|
||||||
|
7 = 7
|
||||||
|
8 = 8
|
||||||
|
9 = 9
|
||||||
|
|
||||||
; Overlay Preferences
|
[hotkey.session]
|
||||||
overlay.fps = "false" ; Show frames per second in top right corner
|
kill = Delete ; Destroy selected units
|
||||||
overlay.realtime = "false" ; Show current system time in top right corner
|
stop = "H" ; Stop the current action
|
||||||
|
attack = "Ctrl+Alt" ; Modifier to force attack instead of another action
|
||||||
|
attackmove = Ctrl ; Modifier to attackmove when clicking on a point
|
||||||
|
attackmoveUnit = "Ctrl+Q" ; Modifier to attackmove targeting only units when clicking on a point (should contain the attackmove keys)
|
||||||
|
garrison = Ctrl ; Modifier to garrison when clicking on building
|
||||||
|
autorallypoint = Ctrl ; Modifier to set the rally point on the building itself
|
||||||
|
guard = "G" ; Modifier to escort/guard when clicking on unit/building
|
||||||
|
queue = Shift ; Modifier to queue unit orders instead of replacing
|
||||||
|
batchtrain = Shift ; Modifier to train units in batches
|
||||||
|
massbarter = Shift ; Modifier to barter bunch of resources
|
||||||
|
masstribute = Shift ; Modifier to tribute bunch of resources
|
||||||
|
fulltradeswap = Shift ; Modifier to put the desired trade resource to 100%
|
||||||
|
unloadtype = Shift ; Modifier to unload all units of type
|
||||||
|
deselectgroup = Ctrl ; Modifier to deselect units when clicking group icon, instead of selecting
|
||||||
|
rotate.cw = RightBracket ; Rotate building placement preview clockwise
|
||||||
|
rotate.ccw = LeftBracket ; Rotate building placement preview anticlockwise
|
||||||
|
|
||||||
; MOD SETTINGS
|
[hotkey.session.queueunit] ; > UNIT TRAINING
|
||||||
mod.enabledmods = "mod public"
|
1 = "Z" ; add first unit type to queue
|
||||||
|
2 = "X" ; add second unit type to queue
|
||||||
|
3 = "C" ; add third unit type to queue
|
||||||
|
4 = "V" ; add fourth unit type to queue
|
||||||
|
5 = "B" ; add fivth unit type to queue
|
||||||
|
6 = "N" ; add sixth unit type to queue
|
||||||
|
7 = "M" ; add seventh unit type to queue
|
||||||
|
8 = Comma ; add eighth unit type to queue
|
||||||
|
|
||||||
|
[hotkey.session.timewarp]
|
||||||
|
fastforward = Space ; If timewarp mode enabled, speed up the game
|
||||||
|
rewind = Backspace ; If timewarp mode enabled, go back to earlier point in the game
|
||||||
|
|
||||||
|
[hotkey.text] ; > GUI TEXTBOX HOTKEYS
|
||||||
|
delete.left = "Ctrl+Backspace" ; Delete word to the left of cursor
|
||||||
|
delete.right = "Ctrl+Del" ; Delete word to the right of cursor
|
||||||
|
move.left = "Ctrl+LeftArrow" ; Move cursor to start of word to the left of cursor
|
||||||
|
move.right = "Ctrl+RightArrow" ; Move cursor to start of word to the right of cursor
|
||||||
|
|
||||||
|
[gui]
|
||||||
|
cursorblinkrate = 0.5 ; Cursor blink rate in seconds (0.0 to disable blinking)
|
||||||
|
|
||||||
|
[gui.session]
|
||||||
|
attacknotificationmessage = true ; Show attack notification messages
|
||||||
|
camerajump.threshold = 40 ; How close do we have to be to the actual location in order to jump back to the previous one?
|
||||||
|
timeelapsedcounter = false ; Show the game duration in the top right corner
|
||||||
|
|
||||||
|
[gui.session.minimap]
|
||||||
|
blinkduration = 1.7 ; The blink duration while pinging
|
||||||
|
pingduration = 50.0 ; The duration for which an entity will be pinged after an attack notification
|
||||||
|
|
||||||
|
[joystick] ; EXPERIMENTAL: joystick/gamepad settings
|
||||||
|
enable = false
|
||||||
|
deadzone = 8192
|
||||||
|
[joystick.camera]
|
||||||
|
pan.x = 0
|
||||||
|
pan.y = 1
|
||||||
|
rotate.x = 3
|
||||||
|
rotate.y = 2
|
||||||
|
zoom.in = 5
|
||||||
|
zoom.out = 4
|
||||||
|
|
||||||
|
[jsdebugger]
|
||||||
|
; The Debugger is currently broken and can't be enabled until the SpiderMonkey upgrade is done and the debugger is updated for the new API.
|
||||||
|
enable = false ; Enable Javascript debugging.
|
||||||
|
|
||||||
|
[lobby]
|
||||||
|
chattimestamp = false ; Show time chat message was posted
|
||||||
|
history = 0 ; Number of past messages to display on join
|
||||||
|
room = "arena18" ; Default MUC room to join
|
||||||
|
server = "lobby.wildfiregames.com" ; Address of lobby server
|
||||||
|
xpartamupp = "wfgbot18" ; Name of the server-side xmpp client that manage games
|
||||||
|
|
||||||
|
[mod]
|
||||||
|
enabledmods = "mod public"
|
||||||
|
|
||||||
|
[overlay]
|
||||||
|
fps = "false" ; Show frames per second in top right corner
|
||||||
|
realtime = "false" ; Show current system time in top right corner
|
||||||
|
|
||||||
|
[profiler2]
|
||||||
|
autoenable = false ; Enable HTTP server output at startup (default off for security/performance)
|
||||||
|
script.enable = false ; Enable Javascript profiling. Needs to be set before startup and can't be changed later. (default off for performance)
|
||||||
|
gpu.arb.enable = true ; Allow GL_ARB_timer_query timing mode when available
|
||||||
|
gpu.ext.enable = true ; Allow GL_EXT_timer_query timing mode when available
|
||||||
|
gpu.intel.enable = true ; Allow GL_INTEL_performance_queries timing mode when available
|
||||||
|
|
||||||
|
[sound]
|
||||||
|
mastergain = 0.9
|
||||||
|
musicgain = 0.2
|
||||||
|
ambientgain = 0.6
|
||||||
|
actiongain = 0.7
|
||||||
|
uigain = 0.7
|
||||||
|
|
||||||
|
[tinygettext]
|
||||||
|
debug = false ; Print error messages each time a translation for an English string is not found.
|
||||||
|
|
||||||
|
[userreport] ; Opt-in online user reporting system
|
||||||
|
url = "http://feedback.wildfiregames.com/report/upload/v1/"
|
||||||
|
|
||||||
|
[view] ; Camera control settings
|
||||||
|
scroll.speed = 120.0
|
||||||
|
scroll.speed.modifier = 1.05 ; Multiplier for changing scroll speed
|
||||||
|
rotate.x.speed = 1.2
|
||||||
|
rotate.x.min = 28.0
|
||||||
|
rotate.x.max = 60.0
|
||||||
|
rotate.x.default = 35.0
|
||||||
|
rotate.y.speed = 2.0
|
||||||
|
rotate.y.speed.wheel = 0.45
|
||||||
|
rotate.y.default = 0.0
|
||||||
|
rotate.speed.modifier = 1.05 ; Multiplier for changing rotation speed
|
||||||
|
drag.speed = 0.5
|
||||||
|
zoom.speed = 256.0
|
||||||
|
zoom.speed.wheel = 32.0
|
||||||
|
zoom.min = 50.0
|
||||||
|
zoom.max = 200.0
|
||||||
|
zoom.default = 120.0
|
||||||
|
zoom.speed.modifier = 1.05 ; Multiplier for changing zoom speed
|
||||||
|
pos.smoothness = 0.1
|
||||||
|
zoom.smoothness = 0.4
|
||||||
|
rotate.x.smoothness = 0.5
|
||||||
|
rotate.y.smoothness = 0.3
|
||||||
|
near = 2.0 ; Near plane distance
|
||||||
|
far = 4096.0 ; Far plane distance
|
||||||
|
fov = 45.0 ; Field of view (degrees), lower is narrow, higher is wide
|
||||||
|
height.smoothness = 0.5
|
||||||
|
height.min = 16
|
||||||
|
|||||||
@@ -840,11 +840,11 @@ function handleInputAfterGui(ev)
|
|||||||
// Handle the time-warp testing features, restricted to single-player
|
// Handle the time-warp testing features, restricted to single-player
|
||||||
if (!g_IsNetworked && Engine.GetGUIObjectByName("devTimeWarp").checked)
|
if (!g_IsNetworked && Engine.GetGUIObjectByName("devTimeWarp").checked)
|
||||||
{
|
{
|
||||||
if (ev.type == "hotkeydown" && ev.hotkey == "timewarp.fastforward")
|
if (ev.type == "hotkeydown" && ev.hotkey == "session.timewarp.fastforward")
|
||||||
Engine.SetSimRate(20.0);
|
Engine.SetSimRate(20.0);
|
||||||
else if (ev.type == "hotkeyup" && ev.hotkey == "timewarp.fastforward")
|
else if (ev.type == "hotkeyup" && ev.hotkey == "session.timewarp.fastforward")
|
||||||
Engine.SetSimRate(1.0);
|
Engine.SetSimRate(1.0);
|
||||||
else if (ev.type == "hotkeyup" && ev.hotkey == "timewarp.rewind")
|
else if (ev.type == "hotkeyup" && ev.hotkey == "session.timewarp.rewind")
|
||||||
Engine.RewindTimeWarp();
|
Engine.RewindTimeWarp();
|
||||||
}
|
}
|
||||||
|
|
||||||
@@ -1256,16 +1256,18 @@ function exchangeResources(command)
|
|||||||
// Camera jumping: when the user presses a hotkey the current camera location is marked.
|
// Camera jumping: when the user presses a hotkey the current camera location is marked.
|
||||||
// When they press another hotkey the camera jumps back to that position. If the camera is already roughly at that location,
|
// When they press another hotkey the camera jumps back to that position. If the camera is already roughly at that location,
|
||||||
// jump back to where it was previously.
|
// jump back to where it was previously.
|
||||||
var jumpCameraPositions = [], jumpCameraLast;
|
var jumpCameraPositions = [];
|
||||||
|
var jumpCameraLast;
|
||||||
|
var jumpCameraDistanceThreshold = Engine.ConfigDB_GetValue("user", "gui.session.camerajump.threshold");
|
||||||
|
|
||||||
function jumpCamera(index)
|
function jumpCamera(index)
|
||||||
{
|
{
|
||||||
var position = jumpCameraPositions[index], distanceThreshold = Engine.ConfigDB_GetValue("user", "camerajump.threshold");
|
var position = jumpCameraPositions[index];
|
||||||
if (position)
|
if (position)
|
||||||
{
|
{
|
||||||
if (jumpCameraLast &&
|
if (jumpCameraLast &&
|
||||||
Math.abs(Engine.CameraGetX() - position.x) < distanceThreshold &&
|
Math.abs(Engine.CameraGetX() - position.x) < jumpCameraDistanceThreshold &&
|
||||||
Math.abs(Engine.CameraGetZ() - position.z) < distanceThreshold)
|
Math.abs(Engine.CameraGetZ() - position.z) < jumpCameraDistanceThreshold)
|
||||||
Engine.CameraMoveTo(jumpCameraLast.x, jumpCameraLast.z);
|
Engine.CameraMoveTo(jumpCameraLast.x, jumpCameraLast.z);
|
||||||
else
|
else
|
||||||
{
|
{
|
||||||
|
|||||||
+35
-7
@@ -232,6 +232,7 @@ bool CConfigDB::Reload(EConfigNamespace ns)
|
|||||||
char *filebufend = filebuf+buflen;
|
char *filebufend = filebuf+buflen;
|
||||||
|
|
||||||
bool quoted = false;
|
bool quoted = false;
|
||||||
|
CStr header;
|
||||||
CStr name;
|
CStr name;
|
||||||
CStr value;
|
CStr value;
|
||||||
int line = 1;
|
int line = 1;
|
||||||
@@ -248,6 +249,32 @@ bool CConfigDB::Reload(EConfigNamespace ns)
|
|||||||
case '\r':
|
case '\r':
|
||||||
continue; // ignore
|
continue; // ignore
|
||||||
|
|
||||||
|
case '[':
|
||||||
|
header.clear();
|
||||||
|
for (++pos; pos < filebufend && *pos != '\n' && *pos != ']'; ++pos)
|
||||||
|
header.push_back(*pos);
|
||||||
|
|
||||||
|
if (pos == filebufend || *pos == '\n')
|
||||||
|
{
|
||||||
|
LOGERROR(L"Config header with missing close tag encountered on line %d in '%ls'", line, m_ConfigFile[ns].string().c_str());
|
||||||
|
header.clear();
|
||||||
|
++line;
|
||||||
|
continue;
|
||||||
|
}
|
||||||
|
|
||||||
|
LOGMESSAGE(L"Found config header '%hs'", header.c_str());
|
||||||
|
header.push_back('.');
|
||||||
|
while (++pos < filebufend && *pos != '\n' && *pos != ';')
|
||||||
|
if (*pos != ' ' && *pos != '\r')
|
||||||
|
{
|
||||||
|
LOGERROR(L"Config settings on the same line as a header on line %d in '%ls'", line, m_ConfigFile[ns].string().c_str());
|
||||||
|
break;
|
||||||
|
}
|
||||||
|
while (pos < filebufend && *pos != '\n')
|
||||||
|
++pos;
|
||||||
|
++line;
|
||||||
|
continue;
|
||||||
|
|
||||||
case '=':
|
case '=':
|
||||||
// Parse parameters (comma separated, possibly quoted)
|
// Parse parameters (comma separated, possibly quoted)
|
||||||
for (++pos; pos < filebufend && *pos != '\n' && *pos != ';'; ++pos)
|
for (++pos; pos < filebufend && *pos != '\n' && *pos != ';'; ++pos)
|
||||||
@@ -307,16 +334,17 @@ bool CConfigDB::Reload(EConfigNamespace ns)
|
|||||||
// Store the setting
|
// Store the setting
|
||||||
if (!name.empty() && !values.empty())
|
if (!name.empty() && !values.empty())
|
||||||
{
|
{
|
||||||
newMap[name] = values;
|
CStr key(header + name);
|
||||||
if (name == "lobby.password")
|
newMap[key] = values;
|
||||||
LOGMESSAGE(L"Loaded config string \"%hs\"", name.c_str());
|
if (key == "lobby.password")
|
||||||
|
LOGMESSAGE(L"Loaded config string \"%hs\"", key.c_str());
|
||||||
else
|
else
|
||||||
{
|
{
|
||||||
std::string vals;
|
std::string vals;
|
||||||
for (size_t i = 0; i < newMap[name].size() - 1; ++i)
|
for (size_t i = 0; i < newMap[key].size() - 1; ++i)
|
||||||
vals += "\"" + EscapeString(newMap[name][i]) + "\", ";
|
vals += "\"" + EscapeString(newMap[key][i]) + "\", ";
|
||||||
vals += "\"" + EscapeString(newMap[name][values.size()-1]) + "\"";
|
vals += "\"" + EscapeString(newMap[key][values.size()-1]) + "\"";
|
||||||
LOGMESSAGE(L"Loaded config string \"%hs\" = %hs", name.c_str(), vals.c_str());
|
LOGMESSAGE(L"Loaded config string \"%hs\" = %hs", key.c_str(), vals.c_str());
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
else if (!name.empty())
|
else if (!name.empty())
|
||||||
|
|||||||
Reference in New Issue
Block a user