Historique des versions
jrpm-0.1.0 (2026-08-14) Portage cmclient termine
Base sur le premier 0.1.0, portage des cinq lots de fonctionnalites cmclient (modded + cmclient complet) :
Nouvelles fonctionnalites (portage cmclient / modded)
- Premier lot modded : Historique des trajets des vehicules (
b89f93f9) + Vitesse de roulage des avions reglable (b89f93f9) ; - Deuxieme lot cmclient : Signets de position / Details de fret / Observation (
089480b3) ; - Lot zero cmclient : Commandes console
cmgamespeed/cmgamestats/cmexport/cmtreemap(1fd94d12) ; - Troisieme lot cmclient 1 - Surbrillance : Apercu de construction par objet (gares/voies/entrepots/aeroports), integration dans le pipeline de rendu viewport et les outils de construction (6 commits,
d97aa38a→1957bf45) ; - Troisieme lot cmclient 3 - Plans : Selection copie/rotation/16 emplacements/reconstruction (
8e08ca6b) ; - Quatrieme lot cmclient 4 - Zonage urbain : Zonage Tz + coloration growth_tiles + bloc d'archive GRWT (
9e3f95a2) ; - Cinquieme lot cmclient 5 - Rejeu de commandes :
cmdrecord/cmdreplay(f113acce28) ; - Correction des conventions de parametres console : Toutes les commandes jrpm utilisent desormais argv[1] comme premier parametre (argv[0] etant le nom de la commande).
Conclusion architecturale
- La couche d'objet de commande 2 n'a pas ete portee : Surbrillance/Plans/Rejeu utilisent respectivement
CMD_ERROR, des fermetures de commande et la serialisation native de commandes jrpm pour contourner le besoin, sans les 2251 lignes de code genere de cmclient.
Compatibilite des archives
- Les donnees growth_tiles sont stockees dans un bloc
GRWTindependant, les anciennes archives (sans ce bloc) sont entierement compatibles ; - Les fichiers d'enregistrement de commandes (
.jrcm) sont un format prive jrpm, la compatibilite entre versions n'est pas garantie.
jrpm-0.1.0 (2026-08-14)
Premiere version jrpm, basee sur jgrpp 0.73.1 + pulseXLB px-patch fusionne, avec portage de fonctionnalites modded / cmclient.
Changements
- Fusion de pulseXLB px-patch (152 commits) :
- Decouplage de locomotives : ordres d'attelage/decouplage, transfert de consignes, limite de longueur/vitesse d'attelage, double locomotive, attelage NewGRF, pathfinding d'attelage, ordonnancement independant apres decouplage ;
- Aeroports modulaires (multitile-airport) : systeme de type air, gestion aerienne PBS, pathfinding aerien YAPF, modification de disposition d'aeroport (
allow_modify_airports) ; - Nouveaux versions d'archive
SLV_MULTITILE_AIRPORTS/SLV_ORDER_DECOUPLE.
- Renommage de version :
openttd-jrpm/jrpm-0.1.0(nom de l'executable et chaine de revision). - Compatibilite multi-versions du serveur : Le serveur jrpm accepte les clients jrpm / jgrpp original / pulseXLB.
- Fonctionnalites propres a jrpm :
- Telechargement de ressources multi-miroirs + parallele au niveau fichier (nombre de connexions configurable) ;
- Groupement automatique de vehicules par ordres partages (bouton de fenetre + commande
autogroup) ; - IA consciente de la partie (API
AIGlobal+ exemple GlobalAI, controle par parametre) ; - Infobulle de cout de construction (retiree sur demande, commit
96ebfb75).
- Portage modded (premier lot) :
- Historique des trajets des vehicules (10 derniers trajets : profit/taux d'occupation/duree, bouton History dans la fenetre de details du vehicule) ;
- Vitesse de roulage des avions reglable (
vehicle.plane_taxi_speed, controle par fonctionnalite XSLF, compatible avec les anciennes archives).
- Inspiration cmclient (deuxieme lot) :
- Signets de position (
savelocation/gotolocation, 9 emplacements) ; - Fenetre de details de fret de l'entreprise (
company_cargo) ; - Aide a l'observation (
watch <company_id>).
- Signets de position (
Compatibilite des archives
- Herite des conventions jgrpp : peut charger les archives trunk (jusqu'a la version fusionnee la plus recente) ;
- Les archives jrpm (contenant les donnees d'aeroports multi-tuiles/ordres de decouplage) ne garantissent pas la lecture croisee avec les anciennes archives jgrpp ;
- Le numero de version d'archive
SAVEGAME_VERSIONest coherent avec pulseXLB (SLV_CUSTOM_SUBSIDY_DURATION) ; - Les nouvelles fonctionnalites utilisent toutes le controle de fonctionnalites etendues XSLF ou NOSAVE, sans casser les anciennes archives.
Versions amont
- jgrpp 0.73.1 : Base de ce projet (noyau OpenTTD 16.0 + toutes les fonctionnalites JGR).
- pulseXLB px-patch 2608.3 : Source du decouplage de locomotives et des aeroports modulaires.
- embeddedt/OpenTTD-modded (epoque 0.59.1) : Source de l'historique des trajets et de la vitesse de roulage.
- citymania-org/cmclient (vanilla 15.3) : Source d'inspiration pour les signets de position/details de fret/observation.
Feuille de route
- [x] Verification de construction reelle et correction des premieres erreurs de compilation
- [x] Historique des trajets + Vitesse de roulage (premier lot modded)
- [x] Signets de position + Details de fret + Observation (deuxieme lot cmclient)
- [ ] Systeme de surbrillance + Systeme de plans (troisieme lot cmclient, voir feuille de route)
- [ ] Pool de threads HTTP + Telechargement par plage Range (acceleration des gros fichiers uniques)
- [ ] Optimisation de la compression de l'envoi de carte
- [ ] Statistiques de revenus par marchandise (necessite extension du format d'archive)
- [ ] (Long terme) Integration d'un runtime serveur Rust (reference Openttd-Cluster)