A aplicação Definições dentro da carreira é um ecrã deliberadamente pequeno: três secções — Idioma, Unidades, Escala da Interface — que pode alcançar sem sair de um jogo guardado. Existe para corrigir as duas coisas com maior probabilidade de o incomodar a meio de uma carreira (texto demasiado pequeno em alta resolução, unidade de velocidade errada) sem voltar ao menu principal. Cada controlo escreve nas mesmas chaves de config.db que as Definições do menu principal, por isso os dois ecrãs estão sempre de acordo.
Como abrir
- Barra lateral → Definições (ícone 19, mesmo por cima de Terminar Sessão). Disponível em todas as fases e durante a época.
- Escape, B, ou o botão Voltar do cabeçalho fecha-a.
Não há botão Guardar nem botão Aplicar. Cada clique escreve no disco e produz efeito imediatamente.
Idioma
Uma fila de botões-bandeira, um por cada idioma disponível. O ativo aparece preenchido a antracite com contorno âmbar; passar o rato por cima de qualquer um mostra o nome do idioma na sua própria língua, numa bolha de ajuda. Um idioma cuja imagem de bandeira esteja em falta recorre ao seu código em maiúsculas.
Seis idiomas integrados acompanham o jogo:
| Código | Nome | Bandeira |
|---|---|---|
en | English | gb |
fr | Français | fr |
es | Español | es |
it | Italiano | it |
de | Deutsch | de |
pt-BR | Português (BR) | br |
Além destes, a lista é lida a partir de mods/lang/*.txt no momento em que o ecrã abre: qualquer pacote de idioma da comunidade encontrado aí também é oferecido, usando as linhas de cabeçalho #name: e #flag: do ficheiro para a etiqueta e a bandeira. Um pacote não pode substituir um idioma integrado — um mods/lang/fr.txt é ignorado a favor do francês original. Na build de demonstração do Steam Next Fest, o suporte a mods está desativado em tempo de compilação e apenas os seis idiomas integrados são listados.
A mudança é a quente — sem reinício, sem recarregar o jogo guardado:
- O dicionário do novo código é carregado.
- Um contador global de época de tradução é incrementado, o que invalida todos os modelos analisados em cache no jogo (as caches de modelos misturam a época no seu hash de variáveis).
ui/languageé escrito emconfig.db.- Este ecrã descarta o seu próprio modelo em cache para se redesenhar no novo idioma na mesma frame.
Selecionar um código desconhecido recorre silenciosamente a en.
Uma exceção deliberada: a narração do tutorial é indexada por identificador de passo, por isso as instruções faladas permanecem em inglês em todos os idiomas, mesmo quando o texto no ecrã é traduzido.
Unidades
Dois botões de alternância.
| Botão | Valores | Aplica-se a |
|---|---|---|
| Velocidade | km/h ⟷ mph | «Unidade de velocidade usada em todo o jogo (HUD, dados do carro, perfis).» |
| Temperatura | °C ⟷ °F | «Unidade de temperatura para pneus, motor e leituras meteorológicas.» |
Cada clique inverte o valor, envia-o para os auxiliares de formatação Win95 partilhados (set_speed_unit_kmh / set_temp_unit_c) para que cada ecrã se redesenhe na nova unidade, e escreve a chave de imediato. São apenas conversões de apresentação — nada muda na simulação.
Escala da Interface
Três predefinições para o zoom da interface de carreira Win95: 100 %, 125 %, 150 %. A ativa aparece entre parênteses retos ([125%]). Texto ao passar o rato: «Zoom de toda a interface de carreira. Aplica-se imediatamente.»
Clicar numa predefinição chama markup::set_ui_scale, escreve a chave e descarta o modelo em cache — como o esquema muda de tamanho, o modelo analisado tem de ser reconstruído.
Esta é a solução para texto pequeno num ecrã de alta densidade, e é também a definição com maior probabilidade de fazer uma lista transbordar da sua janela. Isso está tratado: todos os ecrãs da barra lateral exceto o Ambiente de Trabalho aderem ao deslocamento de página genérico, cuja amplitude é medida a partir da altura real do conteúdo. Se algo continuar a parecer cortado a 150 %, a linha [app-scroll] escrita em debug.log a cada abertura de aplicação contém ui_scale, viewport_h, content_h, overflow e max_scroll — é essa a linha que um relatório de erro precisa. Ver Ambiente de trabalho e barra lateral da carreira.
O que esta aplicação não cobre
As Definições da carreira são um subconjunto. Em particular, a escala do HUD de corrida não está aqui — vive em Definições → Ecrã no menu principal, com a etiqueta «Escala do HUD de corrida» e as mesmas predefinições 100 / 125 / 150, e escreve hud.race_hud_scale. Como o HUD de corrida só existe durante uma sessão em curso, o caminho prático é o menu de pausa em corrida: Escape → Definições durante uma sessão abre o ecrã completo de Definições em sobreposição, e a corrida volta a ler a escala do HUD quando a sobreposição fecha.
Tudo o resto também permanece no ecrã completo de Definições: Ecrã (vsync, limite de fps, ecrã inteiro, resolução, gravação de repetições), Áudio (volumes de motor / rádio / piloto / música), cursores de Simulação, cursores de Carreira (prémios monetários, inteligência financeira da IA, multiplicadores de equilíbrio), Atalhos de teclado, Eventos (ações automáticas por evento em sessões em curso) e o separador Dev exclusivo do modo --dev.
As chaves que escreve
| Controlo | Âmbito | Chave | Valor escrito |
|---|---|---|---|
| Idioma | ui | language | o código do idioma, p. ex. fr, pt-BR |
| Unidade de velocidade | hud | speed_unit_kmh | 1 = km/h, 0 = mph |
| Unidade de temperatura | hud | temp_unit_c | 1 = °C, 0 = °F |
| Escala da interface | hud | ui_scale | 1.00 / 1.25 / 1.50 |
| (apenas Definições do menu principal) | hud | race_hud_scale | 1.00 / 1.25 / 1.50 |
config.db é um ficheiro SQLite com uma única tabela config(scope, key, value), com chave primária em (scope, key). Leituras que não encontrem nada recorrem a um valor por omissão: ui_scale → 1.0, ambos os indicadores de unidade → verdadeiro (km/h e °C).
Aprofundar
-
Desde a 0.5.1 o
config.dbde execução vive no seu diretório de dados de utilizador, já não na pasta do jogo. As definições são dados do jogador, e uma atualização do depósito Steam costumava sobrepor-se aos seus valores personalizados a cada correção.Plataforma Localização Linux $XDG_DATA_HOME/TheUndercut/caso contrário~/.local/share/TheUndercut/Windows %APPDATA%\TheUndercut\macOS ~/Library/Application Support/TheUndercut/Uma variável de ambiente
UNDERCUT_DATA_DIRtem precedência, e um ficheiro-marcador «portátil» junto ao executável força a pasta do jogo. Oconfig.dbincluído no diretório de instalação é apenas a semente: editá-lo comsqlite3não altera aquilo que um jogo em execução lê. -
A aplicação de carreira escreve ao clique; as Definições do menu principal escrevem ao guardar. Ambas aplicam as alterações em direto, mas o ecrã completo de Definições só persiste quando confirma. Se definir as unidades a partir do menu principal e sair sem guardar, elas revertem. A aplicação de carreira não tem essa armadilha.
-
Os registos de definições fundem-se, não se sobrepõem. As chaves que você (ou um mod) acrescentou à mão são preservadas.
-
As escritas em
config.dbusamsynchronous=NORMALsob WAL. É seguro contra corrupção, e significa que uma alteração de definição não faz fsync por chave. O caminho de gravação da carreira mantém deliberadamentesynchronous=FULL— aqui trata-se apenas de preferências. -
Migrações forçadas podem sobrepor-se a uma chave que ajustou. As linhas
CONFIG_MIGRATIONScorrem exatamente uma vez porconfig.db, indexadas a um identificador de migração, e existem para que uma correção de equilíbrio chegue a todos os jogadores existentes. Se um valor que definiu reverter após uma atualização, é por isso; uma linha[config_db] migration <id> applied: …emdebug.logidentifica-a. -
No Steam, uma atualização do depósito sobrepõe-se à semente
config.dbincluída, não à sua cópia de utilizador. Odisplay_config.txtestá deliberadamente excluído do empacotamento pela mesma razão — sobrepor-se ao vsync/limite de fps de um jogador a cada atualização seria indelicado. -
Os pacotes de idioma são conteúdo, não dados guardados. Ficam no
mods/lang/da pasta do jogo, por isso não são sincronizados na nuvem nem entram em conflito com o Workshop. -
Toda a interface está escrita em inglês enquanto chave de tradução. Qualquer cadeia acrescentada ao jogo é entregue com o seu par
lang/fr.txt, efr.txté o ficheiro de referência a partir do qual os outros cinco são propagados. Uma build de lançamento deve reportar 0 MISSING em todos os idiomas integrados.
Erros comuns
- Editar o
config.dbda pasta de instalação. Desde a 0.5.1 isso é apenas a semente. Altere as definições no jogo, ou edite a cópia no seu diretório de dados de utilizador. - Procurar aqui a escala do HUD de corrida. Está em Definições → Ecrã no menu principal, ou na sobreposição Escape → Definições durante a corrida.
- Procurar aqui volumes, prémios monetários ou cursores de IA. Estão nos separadores Áudio / Carreira do ecrã completo de Definições.
- Definir unidades a partir do menu principal e sair sem guardar. O ecrã do menu principal persiste ao guardar; a aplicação de carreira persiste ao clique.
- Esperar que a escala de 150 % parta as listas. Não parte — o deslocamento de página mede o conteúdo real. Se algo estiver cortado, recolha a linha
[app-scroll]dedebug.logpara o relatório. - Instalar um pacote de idioma com o nome de um idioma integrado.
mods/lang/de.txtserá simplesmente ignorado; use um código não utilizado. - Esperar que a narração do tutorial seja traduzida. É indexada por identificador de passo e permanece em inglês por opção.
Ver também
- Ambiente de trabalho e barra lateral da carreira — como a escala da interface interage com o deslocamento de página
- Hub da carreira — o ecrã mais afetado por uma mudança de escala
- Definições → Ecrã — vsync, limite de fps, gravação de repetições, escala do HUD de corrida
- Definições → Áudio — os cursores de volume
- Definições → Carreira — prémios monetários, inteligência financeira da IA, cursores de equilíbrio
- Definições → Simulação — os cursores de física e IA
- Telemetria — onde as definições de unidades aparecem nas vistas de dados