Skip to content

فك القاطرة (decouple) ​

المصدر: فرع الميزات jgrpp-decouple من pulsexlb/OpenTTD-patches (أساسي من 152 commit)، تم دمجه في jrpm عبر git merge.

مقدمة الوظيفة ​

يتيح "فك القاطرة" للقطارات فصل وربط العربات أو القاطرات داخل المحطات/أثناء الجدولة، مما يحقق:

  • الفك: يقوم القطار بـ "فك" جزء من العربات (أو عربات + مجموعة قاطرات) في محطة محددة وفقاً لـ "أمر فك"، ويستمر الجزء المتبقي في السير؛
  • الربط: ينتظر القطار في المحطة ليلتقط تلقائياً مع قطار آخر (أو مجموعة عربات متوقفة)؛
  • بعد الفك، يعمل القطاران بشكل مستقل: من خلال آليات مثل "تخطي الأوامر الشرطية"، ينفذ القطاران بعد الفك خطط جدولة مختلفة؛
  • نقل العلامات: عند الفك/الربط، يتم نقل العلامات (تسميات تقييد التتبع) بشكل صحيح مع القطار أو إزالة التكرار.

القدرات الأساسية ​

القدرةالوصف
أوامر الفك/الربطأنواع أوامر جديدة، تدعم قيود مثل "تحميل/لا تحميل" "انتظار الربط" "فك"
حدود طول الربط وسرعة القطارتقييد عملية الربط حسب طول القطار؛ عملية الربط لها حد سرعة
دعم قاطرتينالربط/الفك الصحيح لقاطرتين أمامية وخلفية (بما في ذلك القاطرات مزدوجة الرأس NewGRF)
توجيه الربطيدعم YAPF/NPF تخطيط مسار الربط؛ الربط فقط داخل المحطات
السير للخلفيمكن عكس الاتجاه بعد الربط، يدعم حيل الجدولة مثل "العكس بعد الفك"
ربط NewGRFيدعم خصائص الربط المحددة بواسطة NewGRF (الخصائص 0xC6/0xF2، إلخ)
الحفظإصدار حفظ SLV_ORDER_DECOUPLE؛ استمرار عداد num_decouple

طريقة الاستخدام ​

  1. استخدم أمر "فك" (decouple) في المحطة لتقسيم القطار؛
  2. قم بتعيين أمر ربط لانتظار القطار للالتقاط؛
  3. استخدم "تخطي الأوامر الشرطية" (conditional order skip) لجعل القطارين بعد الفك يسلكان مسارات مختلفة؛
  4. اسحب داخل المحطة لترتيب تسلسل العربات، أو استخدم أدوات مساعدة مثل "التصفية حسب الطول".

الكود ذو الصلة ​

  • الأوامر: src/order_cmd.cpp، src/order_gui.cpp، src/order_type.h
  • القطارات: src/train_cmd.cpp، src/train.h
  • التوجيه: src/pathfinder/yapf، src/pathfinder/npf
  • الحفظ: src/sl/saveload_common.h (SLV_ORDER_DECOUPLE)

ملاحظات ​

  • تتضمن هذه الميزة تغييرات عميقة في الترتيب الفيزيائي للقطار/منطق حجز الإشارات، يوصى بالتركيز على الاختبارات الانحدارية بعد التجميع الفعلي: الفك، الربط، العكس، إصلاح التصادم، الاستبدال التلقائي (autoreplace) وغيرها من السيناريوهات؛
  • السلاسل النصية وواجهة المستخدم المتعلقة بالفك تم دمجها (STR_DECOUPLE*، إلخ).

تحديث دمج المنبع 2026-09-28 (px-patch 2609.x) ​

دُمج 113 تكريداً جديداً من pulsexlb تتعلق بفصل/قاطرات القاطرات:

  • حالة مطالبة الاقتران (couple claim) تُحفظ في ملف اللعب (كتلة CPLM + XSLFI_COUPLE_CLAIM_STATE)؛
  • يمكن للقطار متابعة التوجه للاقتران حتى لو كانت مركبات أخرى في الكتلة الهدف خارج اتجاه الاقتران؛
  • الاستدارة في المحطة تضمن خلو الكتلة أولاً؛
  • إصلاحات: خطأ الدفع بعد الفصل، رقم الوحدة عند primary != first، إعادة التجهيز التلقائي في المحطة، وغيرها؛
  • إصلاح إرجاع العلامات (tracerestrict) بعد الفصل مع جداول انتظار الاقتران وبعد الاقتران؛
  • أوامر الرصيف ذات التحميل/التنزيل والجدول تُنسخ بالكامل عند الفصل؛
  • إصلاح الانهيار عند تغير الشرط قبل الاقتران؛ لم يعد الجدول الرئيسي يُحذف بالخطأ؛
  • لوحة معلومات للقطارات بدون محرك؛ (jgrpp 0.73.3) سحب وإفلات الطلبات والنقر المزدوج.