ট্রেন ডিকাপলিং (ডিকাপল)
উৎস: pulsexlb/OpenTTD-patches-এর
jgrpp-decoupleবৈশিষ্ট্য ব্রাঞ্চ (১৫২ কমিটের মধ্যে মূল), git merge-এর মাধ্যমে jrpm-এ অন্তর্ভুক্ত।
বৈশিষ্ট্য পরিচিতি
"ট্রেন ডিকাপলিং" ট্রেনকে স্টেশনে/শিডিউলিং-এ বগি বা লোকো খোলা ও সংযুক্ত করতে সক্ষম করে:
- ডিকাপল: ট্রেন "ডিকাপল অর্ডার" অনুযায়ী নির্দিষ্ট স্টেশনে কিছু বগি (বা বগি+লোকো গ্রুপ) ফেলে দেয়, বাকি অংশ চলতে থাকে;
- অ্যাটাচ: ট্রেন স্টেশনে অপেক্ষা করে, অন্য একটি ট্রেনের (বা পার্ক করা বগি গ্রুপ) সাথে স্বয়ংক্রিয়ভাবে সংযুক্ত হয়;
- ডিকাপলের পর দুই ট্রেন স্বাধীনভাবে শিডিউল নির্বাহ: "শর্তসাপেক্ষ কমান্ড স্কিপ" ইত্যাদি মেকানিজমের মাধ্যমে, ডিকাপলের পর দুই ট্রেন ভিন্ন শিডিউল প্ল্যান নির্বাহ করে;
- টোকেন স্থানান্তর: ডিকাপল/অ্যাটাচের সময় টোকেন (ট্রেস রেস্ট্রিক্ট ট্যাগ) সঠিকভাবে ট্রেনের সাথে স্থানান্তরিত বা ডিডুপ্লিকেট হয়।
মূল ক্ষমতা
| ক্ষমতা | ব্যাখ্যা |
|---|---|
| ডিকাপল/অ্যাটাচ অর্ডার | নতুন অর্ডার টাইপ, "লোড/না লোড", "অ্যাটাচের জন্য অপেক্ষা", "ডিকাপল" ইত্যাদি সীমাবদ্ধতা সমর্থন করে |
| কাপলিং দৈর্ঘ্য ও গতি সীমা | ট্রেনের দৈর্ঘ্য অনুযায়ী কাপলিং অপারেশন সীমিত; কাপলিং অপারেশনের গতি সীমা আছে |
| ডুয়াল লোকো সাপোর্ট | সামনে-পেছনে ডুয়াল লোকো (NewGRF ডুয়াল-হেড লোকো সহ) সঠিকভাবে কাপল/ডিকাপল |
| কাপলিং পাথফাইন্ডিং | YAPF/NPF উভয়ই কাপলিং পাথ প্ল্যানিং সমর্থন করে; শুধু স্টেশনের ভিতরে কাপলিং |
| বিপরীত দিকে চলা | কাপলিংয়ের পর বিপরীত দিকে চলা যায়, "ডিকাপলের পর বিপরীত" ইত্যাদি শিডিউলিং কৌশল সমর্থন করে |
| NewGRF কাপলিং | NewGRF-সংজ্ঞায়িত কাপলিং বৈশিষ্ট্য সমর্থন করে (0xC6/0xF2 বৈশিষ্ট্য ইত্যাদি) |
| 存档 | SLV_ORDER_DECOUPLE存档 সংস্করণ; num_decouple গণনা স্থায়ীকৃত |
ব্যবহারের উপায়
১. স্টেশনে "ডিকাপল" অর্ডার (decouple) ব্যবহার করে ট্রেন ভাগ করুন; ২. অ্যাটাচ অর্ডার সেট করে ট্রেনকে সংযোগের জন্য অপেক্ষা করতে দিন; ৩. "শর্তসাপেক্ষ কমান্ড স্কিপ" (conditional order skip) ব্যবহার করে ডিকাপলের পর দুই ট্রেনকে ভিন্ন রুটে যেতে দিন; ৪. স্টেশনের ভিতরে ড্র্যাগ করে বগির ক্রম সামঞ্জস্য করুন, বা "দৈর্ঘ্য অনুযায়ী ফিল্টার" ইত্যাদি সহায়ক টুল ব্যবহার করুন।
সম্পর্কিত কোড
- অর্ডার:
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) ইত্যাদি দৃশ্য;
- ডিকাপল সম্পর্কিত স্ট্রিং ও GUI অন্তর্ভুক্ত করা হয়েছে (
STR_DECOUPLE*ইত্যাদি)।
আপস্ট্রিম মার্জ আপডেট 2026-09-28 (px-patch 2609.x)
pulsexlb-এর ১১৩টি নতুন কমিট মার্জ করা হয়েছে, যাতে ডিকাপল/কাপলিং সংক্রান্ত পরিবর্তন রয়েছে:
- কাপল ক্লেইম অবস্থা সেভগেমে সংরক্ষিত হয় (CPLM চাঙ্ক + XSLFI_COUPLE_CLAIM_STATE);
- টার্গেট ব্লকে অন্য যান থাকলেও কাপলিং দিকের বাইরে হলে ট্রেন ডকিং চালিয়ে যেতে পারে;
- স্টেশনে ঘুরে যাওয়ার আগে ব্লক খালি আছে কিনা নিশ্চিত করা হয়;
- ডিকাপলের পরে প্রোপালশন ত্রুটি, primary != first হলে ইউনিট নম্বর না দেখানো, স্টেশনে অটোরিফিট অকার্যকর ইত্যাদি সংশোধন;
- ডিকাপলের পরে wait-for-couple সময়সূচি ব্যবহারে ভুল লেবেল ফেরত ও কাপলের পরে লেবেল ফেরত না দেওয়ার সংশোধন;
- ডিকাপলের সময় লোড/আনলোডসহ প্ল্যাটফর্ম কমান্ড সম্পূর্ণ কপি হয়;
- কাপলের আগের শর্ত বদলালে ক্র্যাশ সংশোধন; হোম সময়সূচি ভুলে মুছে যাওয়া বন্ধ;
- ইঞ্জিনবিহীন ট্রেনের তথ্য প্যানেল; (jgrpp 0.73.3) অর্ডার ড্র্যাগ-অ্যান্ড-ড্রপ ও ডাবল-ক্লিক।