diff --git a/app.go b/app.go index 409370d..954d389 100644 --- a/app.go +++ b/app.go @@ -174,15 +174,16 @@ type Result struct { } type ExtraOptions struct { - Freeplay bool `json:"freeplay"` - EnableRendering flat.DebugRendering `json:"enableRendering"` - EnableStateSetting bool `json:"enableStateSetting"` - InstantStart bool `json:"instantStart"` - SkipReplays bool `json:"skipReplays"` - AutoSaveReplay bool `json:"autoSaveReplay"` - ExistingMatchBehavior byte `json:"existingMatchBehavior"` - AutoStartAgents bool `json:"autoStartAgents"` - WaitForAgents bool `json:"waitForAgents"` + Freeplay bool `json:"freeplay"` + EnableRendering flat.DebugRendering `json:"enableRendering"` + EnableStateSetting bool `json:"enableStateSetting"` + InstantStart bool `json:"instantStart"` + SkipReplays bool `json:"skipReplays"` + AutoSaveReplay bool `json:"autoSaveReplay"` + ExistingMatchBehavior byte `json:"existingMatchBehavior"` + AutoStartAgents bool `json:"autoStartAgents"` + WaitForAgents bool `json:"waitForAgents"` + PerformanceMonitor flat.PerformanceMonitor `json:"performanceMonitor"` } type StartMatchOptions struct { @@ -424,6 +425,7 @@ func (a *App) StartMatch(options StartMatchOptions) Result { Freeplay: options.ExtraOptions.Freeplay, EnableRendering: options.ExtraOptions.EnableRendering, EnableStateSetting: options.ExtraOptions.EnableStateSetting, + PerformanceMonitor: options.ExtraOptions.PerformanceMonitor, InstantStart: options.ExtraOptions.InstantStart, SkipReplays: options.ExtraOptions.SkipReplays, AutoSaveReplay: options.ExtraOptions.AutoSaveReplay, diff --git a/frontend/src/components/MatchSettings/Main.svelte b/frontend/src/components/MatchSettings/Main.svelte index 8a95d49..871d861 100644 --- a/frontend/src/components/MatchSettings/Main.svelte +++ b/frontend/src/components/MatchSettings/Main.svelte @@ -36,6 +36,12 @@ const renderingOptions: { [n: string]: number } = { "Always off": 2, }; +const performanceMonitorOptions: { [n: string]: number } = { + "Show when suboptimal": 0, + "Always show": 1, + "Never show": 2, +}; + function cleanCase(toClean: string): string { const halfClean = toClean.replaceAll("_", " "); return halfClean.charAt(0).toUpperCase() + halfClean.slice(1); @@ -205,6 +211,10 @@ const ALL_MAPS = getMaps();

+

Performance Monitor

+ +
+
{ let extraOptions: ExtraOptions = $state({ existingMatchBehavior: ExistingMatchBehavior.ExistingMatchBehaviorRestart, enableRendering: DebugRendering.DebugRenderingOffByDefault, + performanceMonitor: PerformanceMonitor.PerformanceMonitorShowWhenSuboptimal, enableStateSetting: true, autoStartAgents: true, waitForAgents: true, diff --git a/go.mod b/go.mod index 1ac205a..b4d87da 100644 --- a/go.mod +++ b/go.mod @@ -6,7 +6,7 @@ toolchain go1.24.4 require ( github.com/BurntSushi/toml v1.5.0 - github.com/RLBot/go-interface v0.0.0-20250705224140-6c179505c975 + github.com/RLBot/go-interface v0.0.0-20260602190105-919cd596b426 github.com/ncruces/zenity v0.10.14 github.com/ulikunitz/xz v0.5.15 github.com/wailsapp/mimetype v1.4.1 @@ -31,7 +31,7 @@ require ( github.com/go-ole/go-ole v1.3.0 // indirect github.com/godbus/dbus/v5 v5.1.0 // indirect github.com/golang/groupcache v0.0.0-20241129210726-2c02b8208cf8 // indirect - github.com/google/flatbuffers v25.9.23+incompatible // indirect + github.com/google/flatbuffers v25.12.19+incompatible // indirect github.com/google/uuid v1.6.0 // indirect github.com/jbenet/go-context v0.0.0-20150711004518-d14ea06fba99 // indirect github.com/jchv/go-winloader v0.0.0-20250406163304-c1995be93bd1 // indirect diff --git a/go.sum b/go.sum index 181f7f9..272b6e1 100644 --- a/go.sum +++ b/go.sum @@ -7,8 +7,8 @@ github.com/Microsoft/go-winio v0.6.2 h1:F2VQgta7ecxGYO8k3ZZz3RS8fVIXVxONVUPlNERo github.com/Microsoft/go-winio v0.6.2/go.mod h1:yd8OoFMLzJbo9gZq8j5qaps8bJ9aShtEA8Ipt1oGCvU= github.com/ProtonMail/go-crypto v1.3.0 h1:ILq8+Sf5If5DCpHQp4PbZdS1J7HDFRXz/+xKBiRGFrw= github.com/ProtonMail/go-crypto v1.3.0/go.mod h1:9whxjD8Rbs29b4XWbB8irEcE8KHMqaR2e7GWU1R+/PE= -github.com/RLBot/go-interface v0.0.0-20250705224140-6c179505c975 h1:vw1+2F2mY7qlw1d8dCvW8r+f+zxyq1H03NL+XrmzBiM= -github.com/RLBot/go-interface v0.0.0-20250705224140-6c179505c975/go.mod h1:zogQvXLJKb2EQ4bb/PUH168VPwxBdzG1SSFJt9uJM5c= +github.com/RLBot/go-interface v0.0.0-20260602190105-919cd596b426 h1:UH1GscdLmZTpBlj2pxk2M00w11T7WvDcHZN3fiIKIPo= +github.com/RLBot/go-interface v0.0.0-20260602190105-919cd596b426/go.mod h1:h1OFzIrmgkjVcRrRSKlTjRAMWwZzD8APhem7ZzPDkmw= github.com/adrg/xdg v0.5.3 h1:xRnxJXne7+oWDatRhR1JLnvuccuIeCoBu2rtuLqQB78= github.com/adrg/xdg v0.5.3/go.mod h1:nlTsY+NNiCBGCK2tpm09vRqfVzrc2fLmXGpBLF0zlTQ= github.com/akavel/rsrc v0.10.2 h1:Zxm8V5eI1hW4gGaYsJQUhxpjkENuG91ki8B4zCrvEsw= @@ -50,8 +50,8 @@ github.com/godbus/dbus/v5 v5.1.0 h1:4KLkAxT3aOY8Li4FRJe/KvhoNFFxo0m6fNuFUO8QJUk= github.com/godbus/dbus/v5 v5.1.0/go.mod h1:xhWf0FNVPg57R7Z0UbKHbJfkEywrmjJnf7w5xrFpKfA= github.com/golang/groupcache v0.0.0-20241129210726-2c02b8208cf8 h1:f+oWsMOmNPc8JmEHVZIycC7hBoQxHH9pNKQORJNozsQ= github.com/golang/groupcache v0.0.0-20241129210726-2c02b8208cf8/go.mod h1:wcDNUvekVysuuOpQKo3191zZyTpiI6se1N1ULghS0sw= -github.com/google/flatbuffers v25.9.23+incompatible h1:rGZKv+wOb6QPzIdkM2KxhBZCDrA0DeN6DNmRDrqIsQU= -github.com/google/flatbuffers v25.9.23+incompatible/go.mod h1:1AeVuKshWv4vARoZatz6mlQ0JxURH0Kv5+zNeJKJCa8= +github.com/google/flatbuffers v25.12.19+incompatible h1:haMV2JRRJCe1998HeW/p0X9UaMTK6SDo0ffLn2+DbLs= +github.com/google/flatbuffers v25.12.19+incompatible/go.mod h1:1AeVuKshWv4vARoZatz6mlQ0JxURH0Kv5+zNeJKJCa8= github.com/google/go-cmp v0.7.0 h1:wk8382ETsv4JYUZwIsn6YpYiWiBsYLSJiTsyBybVuN8= github.com/google/go-cmp v0.7.0/go.mod h1:pXiqmnSA92OHEEa9HXL2W4E7lf9JzCmGVUdgjX3N/iU= github.com/google/uuid v1.6.0 h1:NIvaJDMOsjHA8n1jAhLSgzrAzy1Hgr+hNrb57e+94F0=