تاريخ الإصدارات
jrpm-0.1.0 (2026-08-14) اكتمال نقل cmclient
بناءً على الإصدار الأولي 0.1.0، تم إكمال نقل وظائف cmclient الخمس (modded + cmclient بالكامل):
الوظائف الجديدة (نقل cmclient / modded)
- الدفعة الأولى من modded: سجل رحلة المركبة (
b89f93f9) + سرعة سير الطائرة قابلة للتعديل (b89f93f9)؛ - الدفعة الثانية من cmclient: إشارات مرجعية للموقع / تفاصيل الشحن / مشاهدة (
089480b3)؛ - الدفعة الصفرية من cmclient: أوامر الكونسول
cmgamespeed/cmgamestats/cmexport/cmtreemap(1fd94d12)؛ - الدفعة الثالثة ① من cmclient - التمييز: معاينة بناء على مستوى الكائن (محطات/سكك/مستودعات/مطارات)، مرتبطة بخط رسم viewport وأدوات البناء (6 commits،
d97aa38a←1957bf45)؛ - الدفعة الثالثة ③ من cmclient - المخططات: نسخ/تدوير/16 فتحة/إعادة بناء (
8e08ca6b)؛ - الدفعة الرابعة ④ من cmclient - تقسيم المدن: تقسيم Tz + تلوين growth_tiles + كتلة حفظ GRWT (
9e3f95a2)؛ - الدفعة الخامسة ⑤ من cmclient - إعادة تشغيل الأوامر:
cmdrecord/cmdreplay(f113acce28)؛ - إصلاح اصطلاح معاملات الكونسول: جميع أوامر jrpm تستخدم الآن argv[1] كبداية المعاملات (argv[0] هو اسم الأمر).
استنتاجات معمارية
- ② طبقة كائن الأوامر لم تُنقل: التمييز/المخططات/إعادة التشغيل تستخدم
CMD_ERROR، وإغلاق الأوامر، وتسلسل أوامر jrpm الأصلي على التوالي، متجاوزة الحاجة إلى 2251 سطراً من كود التوليد الخاص بـ cmclient.
توافق الحفظ
- بيانات growth_tiles مخزنة في كتلة
GRWTمستقلة، تحميل الحفظ القديم (بدون هذه الكتلة) متوافق تماماً؛ - ملفات تسجيل الأوامر (
.jrcm) هي تنسيق خاص بـ jrpm، غير مضمونة التوافق عبر الإصدارات.
jrpm-0.1.0 (2026-08-14)
أول إصدار من jrpm، يعتمد على jgrpp 0.73.1 + دمج pulsexlb px-patch، مع نقل ميزات modded / cmclient.
محتوى التغيير
- دمج pulsexlb px-patch (152 commit):
- فك القاطرة (decouple): أوامر الفك/الربط، نقل العلامات، حدود طول الربط/سرعة القطار، قاطرتين، ربط NewGRF، توجيه الربط، جدولة مستقلة بعد الفك؛
- مطار معياري (multitile-airport): نظام أنواع air، جدولة PBS الجوية، توجيه YAPF الجوي، تعديل تخطيط المطار (
allow_modify_airports)؛ - إصدار الحفظ يضيف
SLV_MULTITILE_AIRPORTS/SLV_ORDER_DECOUPLE.
- تغيير اسم الإصدار:
openttd-jrpm/jrpm-0.1.0(اسم الملف التنفيذي وسلسلة المراجعة). - توافق إصدارات متعددة للخادم: خادم jrpm يقبل عملاء jrpm / jgrpp الأصلي / pulsexlb.
- وظائف حصرية لـ jrpm:
- تنزيل الموارد بمرايا متعددة + توازي على مستوى الملف (عدد متزامن قابل للتكوين)؛
- تجميع المركبات تلقائياً حسب الطلبات المشتركة (زر نافذة + أمر
autogroup)؛ - ذكاء اصطناعي يدرك اللعبة بأكملها (واجهة برمجة تطبيقات
AIGlobal+ GlobalAI نموذجي، مع مفتاح تحكم في الإعدادات)؛ - تلميح سعر البناء (تمت إزالته حسب الطلب، commit
96ebfb75).
- نقل modded (الدفعة الأولى):
- سجل رحلة المركبة (آخر 10 رحلات: الربح/نسبة الإشغال/المدة، زر History في نافذة تفاصيل المركبة)؛
- سرعة سير الطائرة قابلة للتعديل (
vehicle.plane_taxi_speed، مقيدة بميزة XSLF، متوافقة مع الحفظ القديم).
- استعارة من cmclient (الدفعة الثانية):
- إشارات مرجعية للموقع (
savelocation/gotolocation، 9 فتحات)؛ - نافذة تفاصيل شحن الشركة (
company_cargo)؛ - مساعدة المشاهدة (
watch <company_id>).
- إشارات مرجعية للموقع (
توافق الحفظ
- وراثة اصطلاح jgrpp: يمكن تحميل حفظ trunk (حتى أحدث إصدار مدمج)؛
- حفظ jrpm (الذي يحتوي على بيانات المطار متعدد البلاطات/أوامر الفك) غير مضمون للقراءة المتبادلة مع حفظ jgrpp القديم؛
- رقم إصدار الحفظ
SAVEGAME_VERSIONمتوافق مع pulsexlb (SLV_CUSTOM_SUBSIDY_DURATION)؛ - جميع الميزات الجديدة تستخدم بوابة ميزة XSLF الموسعة أو NOSAVE، لا تفسد الحفظ القديم.
الإصدارات العلوية
- jgrpp 0.73.1: قاعدة هذا المشروع (نواة OpenTTD 16.0 + جميع ميزات JGR).
- pulsexlb px-patch 2608.3: مصدر فك القاطرة والمطار المعياري.
- embeddedt/OpenTTD-modded (عصر 0.59.1): مصدر سجل الرحلة وسرعة السير.
- citymania-org/cmclient (vanilla 15.3): مصدر استعارة الإشارات المرجعية/تفاصيل الشحن/المشاهدة.
خريطة الطريق
- [x] التحقق من البناء الفعلي وإصلاح أخطاء التجميع الأولى
- [x] سجل الرحلة + سرعة السير (الدفعة الأولى من modded)
- [x] إشارات مرجعية + تفاصيل الشحن + مشاهدة (الدفعة الثانية من cmclient)
- [ ] نظام التمييز + نظام المخططات (الدفعة الثالثة من cmclient، راجع خريطة الطريق)
- [ ] تجمع خيوط طبقة النقل HTTP + تنزيل مجزأ بنطاق Range (تسريع ملف واحد كبير)
- [ ] تحسين ضغط مقارنة إرسال الخريطة
- [ ] إحصائيات الإيرادات لكل بضاعة (يتطلب تمديد تنسيق الحفظ)
- [ ] (بعيد المدى) تكامل زمن تشغيل خادم Rust (بالإشارة إلى Openttd-Cluster)