Последний раз повторю. Ось Х в conf.ini - это не крен в игре, т.е. не орган управления самолета (тангаж, руль высоты т.д.), это ось джойстика (РУС влево-вправо). Поэтому назначить ось Х на управление рулем направления или, к примеру, триммер можно, а вот назначить ось Х на качалку/педали/крутилку т.е. другую ось джойстика, нельзя.Сообщение от FilippOk
Мы с тобой просто под словом ОСЬ разных вещи понимаем.
Т.е. в моем понимании, ось Х - это AXE_X JoystickDevice0 (именно это и означает ось Х в conf.ini), а качалка это AXE_RZ JoystickDevice0 или AXE_Z JoystickDevice0.
А в твоем понимании, судя по всему, ось Х это aileron
В твоем посте 321 был такой вопрос:
Ответ на него - ДА!!!Скажи, а если назначить в игре на управление креном качалку, то ось Х в conf.ini всё равно останется осью Х на джойстике?
Назначая крен на качалку, ты тем самым прописываешь в settings.ini
AXE_RZ JoystickDevice0=aileron
Но ось AXE_RZ JoystickDevice0 соответствует оси 1RZ в conf.ini но никак не 1X.
Именно это инаписал папа LSA.Понял, умолк.Всё, не хочу больше об этом слышать, вопрос закрыт.
Каждый останется при своем мнении![]()
Ну и вдобавок, это для программы не принципиально.
Ну, судя по скриншоту 2.5, остановились все таки на "Ил2-стик"овом варианте. Там крэша не будет.Угу. А вот наша программка при таком раскладе упадёт в крэш-даун.
Блин, я о двух осях не подумал. Бум посмотреть.
Я правильно понимаю, что проблема связана с этим:Из-за этой "стандартности" для того, чтобы выцепить оттуда 10 параметров, пришлось проверять (3*8)*2=48 строк в разных вариантах.
Тогда может не перебором строки сравнивать, а применить системный подход, который сработает вне зависимости от порядка параметров?Фикус в том, что тут не просто ini-шка: имя параметра может быть как
AXE_RZ JoystickDevice0=rudder
так и
JoystickDevice0 AXE_RZ=rudder.![]()
Черт, не писал ничего уже сто лет, функции позабывал, посему попробую словами алгоритм описать.
===================================
1) Считываем очередную (1...х) строчку: AXE_RZ JoystickDevice0=rudder
2) Определяем первое вхождение знака "равно" (pos)
3) Считываем подстроку от pos+1 до конца строки.
4) Делаем ей TRIM (обрезаем ведущие и конечные пробелы)
(пп.2-4 это одна строка кода.)
Вуа-ля, что регулируем (rudder) определили. Запоминаем в переменной (control)
5) Определяем первое вхождение подстроки "JoystickDevice" (pos)
6) Считываем cимвол[pos + 14] (длина строки "JoystickDevice"). Получаем номер девайса (0). Запоминаем. (Joy_ID)
Это еще строка кода.
7) Определяем первое вхождение подстроки "AXE_" (pos)
8) Считываем 2 символа исходной строки, начиная с позиции pos+4. Если второй символ - пробел или равно, долой его. Если не пробел или равно, значит ось двухбуквенная. Запомнили название оси (axe)
9) Сформировали название оси для выпадающего списка:
control + " (Ось " + axe + " на устройстве #" + Joy_ID + ")"
(В идеале отрезаем еще ведущий минус (если есть) и делаем табличное преобразование "rudder" -> "Руль направления")
Итого имеем:
"Руль направления (Ось RZ на устройстве #0)"
10) Сформировали название оси джоя, которую надо регулировать в conf.ini:
"1" + axe + IIF(Joy_ID="0";"";Joy_ID)
Результат: "1RZ"
Вроде все. На первый взгляд более громоздко, зато не ошибемся если к примеру между параметрами окажется не 1 пробел, а два или три. Да и последовательность
AXE_RZ JoystickDevice0=rudder
JoystickDevice0 AXE_RZ=rudder.
роли играть не будет.
Сделай TRIM() для убирания ведущих/конечных пробеловДа не ноль там... А пробел+0, да с вариантами, когда может быть два пробела перед 0.
- Не гони меня, Иван-Царевич - молвил серый волк. - Я тебе еще пригожусь (с)Надо было тебя послать подальше ещё в начале, не было бы геморроев. Теперь поздно, прилип.![]()
![]()
Ура-а-а, спасибки!!!На тебе в подарок внешний вид версии 2.5.
С удовольствием приму в дар работающую версию 2.5![]()
Но 5 копеек снова вставлю![]()
ИМХО нужно убрать картинку ИЛ-2 Штурмовик из окошка с графиком.
Или как вариант, убрать график.
Вместе они не смотрятся...