Тема: RTrainSim DOWNLOAD
Показать сообщение отдельно
Старый 20.12.2015, 17:02   #35
Ted
Разработчик
 
Регистрация: 10.05.2007
Сообщений: 428
Вы сказали Спасибо: 85
Поблагодарили 1,497 раз(а) в 200 сообщениях
Ted стоит на развилке (репутация по умолчанию)
По умолчанию Патч 0.41.4

Патч 0.41.4
---------------------------------------------------------
- Access Violation перехватываются внутренним обработчиком, выдаётся краткая информация о месте возникновения исключения. Если возможно, RTS может попытаться сохранить состояние симуляции и/или файл минидампа.
- в окне Track Control/отладчика сценариев можно получить информацию по сигнализации, вызывая для отдельных сигнальных объектов меню. Отображается состав сигнала, аспекты, текущие ограничения скорости по каждой сигнальной голове.
- скрипты сигнализации можно указывать в sigcfg.dat отдельным параметров RTS_ScriptFile. Если в файле находится хотя бы один такой параметр, обычные ScriptFile для RTS не загружаются.

изменения по исполнению скриптов сигнализации:
- если на Б/У есть враждебная стрелка, аспект следующего сигнала всегда SIGASP_STOP.

- по умолчанию функции route_set() и block_state() выстраивают блок-участок до следующего NORMAL-сигнала. Ранее, блок-участок выстраивался до NORMAL либо до сигнала такого же типа, как данный.
Помимо этого, в данные функции можно передавать необязательный целочисленный параметр, указывающий правило построения БУ:
0 - по умолчанию, до сигнала NORMAL.
1 - до сигнала NORMAL или такого же типа как данный.
2 - до сигнала такого же типа как данный.
3 - до любого сигнала.
4 - до сигнала более значимого типа, чем данный.
5 - до сигнала более значимого или такого же типа, как данный.

- для небольших адаптаций скриптов делать отдельные файлы - не самое удобное решение и его стоит при любой возможности избегать. Внутри скрипта можно размещать блоки дефайна, в такой форме:
Код:
/*RTS# state = SIGASP_STOP; */
или, применительно к предыдущей доработке:
Код:
route_set( /*RTS# 1 */ )
В компиляторе RTS такой блок будет воспринят не как комментарий, а как часть кода:
Код:
route_set(  1  )
В других симуляторах эта часть кода будет игнорироваться.
Данная переменная в препроцессоре RTS будет равна 1, в других симуляторах - 0:
Код:
float IsRTS = 0;
/*RTS# IsRTS = 1;*/
Таким образом, можно внутри скрипта определять, что он исполняется в РТС, или выполнять отдельные инструкции, не требуемые в других симуляторах.

http://disk.zaborin.ru/010012
Ted вне форума  
Эти 13 пользователя(ей) сказали Спасибо Ted за это полезное сообщение:
Старый 01.01.2007, 12:00  
Яndex
Спонсор
 
 
Регистрация: 01.01.2007
Сообщения: 500


Реклама показывается изредка по случайному принципу
По умолчанию РЕКЛАМА