Sterowanie umiescilbym na poziomie pociagu, w calosci przy pomocy komend, odpowiednikow biezacych komend rozsylanych po skladzie.
Przerabiam właśnie Traina: wciśnięcie przycisku powoduje wywołanie metody a nie wykonanie bezpośrednio kodu. Dzięki temu można wykorzystać te metody do sterowania pojazdem z pulpitu. Wydaje mi się, że w takim wypadku zmiana kamery na np przedział maszynowy nie powinien powodować wyłączenia kabiny i sterowania nią. Można by tutaj dodać CKS do sterowania wyborem kabiny. Moim zdaniem można to zrobić dla czterech przypadków: mamy możliwość wysterowania CKS-a więc mamy załączoną kabinę A, B lub wyłączone sterowanie. Jeżeli nie mamy sterowania z pulpitu lub AI to zostaje pozycja "wszystkie kabiny włączone".
W tym momencie jest pewien bajzel w Train::OneKeyDown. Tam gdzie nie ma Shift-a są (czasem) przełączania z Shft-em i z Ctrl-em.
- UART: Tu coś trzeba pewnie wymyślić. Albo znaleźć jakąś wieloplatformową libkę, albo napisać po prostu dwie implementacje pod windowsa i unixy, z tym nie powinno być dużo problemów.
Nie wiem czy nie będę musiał przerobić trochę moich wypocin i zrobić osobną klasę do łączenia się przez port szeregowy i osobno wykorzystanie tej komunikacji. Wtedy można dopiero chyba przerabiać na coś bardziej uniwersalnego (wind i unix).
-- dodanie obslugi przez klikniecia na elementy bezposrednio w kabinie.
To jest dobry pomysł. Część ludzi będzie zachwycona takimi zmianami.
Adams napisał jak to działa w innych symkach i też nie jest to zły pomysł. Na pewno lepiej będzie zaimplementować większą jak nie wszystkie opcje (przełączniki itp) i potem zastanawiać się czy da się wyprowadzić na klawiaturę niż dokładać potem wszystko. Jeżeli ktoś ma lub robi kabinę/własne sterowanie to będzie mógł korzystać nawet jeżeli nie będzie tego na klawiaturze.
- zmodyfikować Console::Pressed tak aby oprócz wciśnięcia na klawiaturze sprawdzało też inne urządzenia. (Console::Pressed jest wywoływane z różnych miejsc sprawdzających różne klawisze co klatkę).
Właśnie starałem się z tym jakoś wygrać ale nie wyszło więc robię trochę inaczej i chciałbym prosić o przeglądnięcie pomysłu i wypowiedzenie się na jego temat. Jak skończę to dam znać ;)