Historico de Versoes
jrpm-0.1.0 (2026-08-14) Portabilidade do cmclient concluida
Com base na versao inicial 0.1.0, a portabilidade dos cinco lotes de recursos do cmclient (modded + cmclient completo) foi concluida:
Novos Recursos (Portabilidade cmclient / modded)
- Primeiro lote modded: Historico de viagens de veiculos (
b89f93f9) + Velocidade de taxi de aeronaves ajustavel (b89f93f9); - Segundo lote cmclient: Marcadores de posicao / Detalhes de carga / Observacao (
089480b3); - Lote zero cmclient: Comandos de console
cmgamespeed/cmgamestats/cmexport/cmtreemap(1fd94d12); - Terceiro lote cmclient 1 Destaque: Pre-visualizacao de construcao em nivel de objeto (estacoes/trilhos/garagens/aeroportos), conectado ao pipeline de renderizacao viewport e ferramentas de construcao (6 commits,
d97aa38a->1957bf45); - Terceiro lote cmclient 3 Blueprint: Selecao de area/copia/rotacao/16 slots/reconstrucao (
8e08ca6b); - Quarto lote cmclient 4 Zoneamento urbano: Zonas Tz + coloracao growth_tiles + bloco de salvamento GRWT (
9e3f95a2); - Quinto lote cmclient 5 Reproducao de comandos:
cmdrecord/cmdreplay(f113acce28); - Correcao de convencao de parametros do console: Todos os comandos jrpm agora usam argv[1] como parametro inicial (argv[0] e o nome do comando).
Conclusao Arquitetural
- 2 Camada de objeto de comando nao portada: Destaque/blueprint/reproducao usam
CMD_ERROR, fechamentos de comando e serializacao nativa de comandos jrpm respectivamente, sem necessidade dos 2251 linhas de codigo gerado do cmclient.
Compatibilidade de Arquivos Salvos
- Dados growth_tiles armazenados no chunk independente
GRWT, arquivos antigos (sem esse chunk) carregam com compatibilidade total; - Arquivos de gravacao de comando (
.jrcm) sao formato privado do jrpm, sem garantia de compatibilidade entre versoes.
jrpm-0.1.0 (2026-08-14)
Primeira versao do jrpm, baseada no jgrpp 0.73.1 + pulsexlb px-patch mesclados, com recursos portados do modded / cmclient.
Alteracoes
- Mesclagem do pulsexlb px-patch (152 commits):
- Desacoplamento de locomotivas (decouple): Ordens de desengate/engate, transferencia de tiquetes, limites de comprimento/velocidade de acoplamento, cabecas duplas, acoplamento NewGRF, navegacao de acoplamento, despacho independente apos desengate;
- Aeroportos modulares (multitile-airport): Sistema de tipos air, despacho aereo PBS, navegacao aerea YAPF, modificacao de layout de aeroporto (
allow_modify_airports); - Nova versao de salvamento:
SLV_MULTITILE_AIRPORTS/SLV_ORDER_DECOUPLE.
- Renomeacao de versao:
openttd-jrpm/jrpm-0.1.0(nome do executavel e string de revisao). - Compatibilidade de multiplas versoes no servidor: Servidor jrpm aceita clientes jrpm / jgrpp original / pulsexlb.
- Recursos exclusivos do jrpm:
- Download de recursos com multiplos espelhos + paralelo em nivel de arquivo (concorrencia configuravel);
- Agrupamento automatico de veiculos por ordens compartilhadas (botao de janela + comando
autogroup); - IA de percepcao global (API
AIGlobal+ exemplo GlobalAI, controlado por configuracao); - Dica de custo de construcao (removida conforme solicitado, commit
96ebfb75).
- Portabilidade modded (primeiro lote):
- Historico de viagens de veiculos (ultimas 10 viagens: lucro/taxa de ocupacao/duracao, botao History na janela de detalhes do veiculo);
- Velocidade de taxi de aeronaves ajustavel (
vehicle.plane_taxi_speed, controlado por XSLF, compativel com arquivos antigos).
- Inspirado no cmclient (segundo lote):
- Marcadores de posicao (
savelocation/gotolocation, 9 slots); - Janela de detalhes de carga da empresa (
company_cargo); - Auxilio de observacao (
watch <company_id>).
- Marcadores de posicao (
Compatibilidade de Arquivos Salvos
- Herda a convencao do jgrpp: pode carregar arquivos trunk (ate a versao incorporada mais recente);
- Arquivos salvos jrpm (com dados de aeroportos multibloco/ordens de desengate) nao garantem leitura mutua com arquivos jgrpp antigos;
- Numero de versao de salvamento
SAVEGAME_VERSIONe consistente com pulsexlb (SLV_CUSTOM_SUBSIDY_DURATION); - Novos recursos usam XSLF ou NOSAVE, sem quebrar arquivos antigos.
Versoes Upstream
- jgrpp 0.73.1: Base do projeto (kernel OpenTTD 16.0 + todos os recursos JGR).
- pulsexlb px-patch 2608.3: Fonte do desacoplamento de locomotivas e aeroportos modulares.
- embeddedt/OpenTTD-modded (era 0.59.1): Fonte do historico de viagens e velocidade de taxi.
- citymania-org/cmclient (vanilla 15.3): Fonte de inspiracao para marcadores de posicao/detalhes de carga/observacao.
Roteiro
- [x] Verificacao de construcao real e correcao de erros de primeira compilacao
- [x] Historico de viagens + Velocidade de taxi (primeiro lote modded)
- [x] Marcadores de posicao + Detalhes de carga + Observacao (segundo lote cmclient)
- [ ] Sistema de destaque + Sistema de blueprint (terceiro lote cmclient, veja Roteiro)
- [ ] Pool de threads da camada de transporte HTTP + download por partes Range (aceleracao de arquivos grandes)
- [ ] Otimizacao de compressao de envio de mapa
- [ ] Estatisticas de receita por carga (requer extensao de formato de salvamento)
- [ ] (Futuro) Integracao de runtime de servidor Rust (referencia Openttd-Cluster)