10.02.2020, 20:53
Berserker, рискну озвучить пару своих хотелок для Эры - вдруг покажутся интересными или полезными.
Первая касается массивов SN:M - очень не хватает возможности записывать/считывать несколько элементов массива подряд одной командой, по аналогии с командой !!VR:C.
Примерный вариант синтаксиса мог бы быть такой:
!!SN:M#1/#2/#3/$1/$2/.../$n; (>=5 параметров)
#1 - id массива
#2 - id первого элемента для записи/считывания
#3 - количество записываемых/считываемых элементов (>=2)
$1..$n - записываемые/считываемые значения.
Пример:
!!SN:Mv1/i/4/20/10/y2/?y10; [записать 20/10/y2 в элементы i/i+1/i+2 массива v1 и считать в y10 значение элемента i+3]
Можно написать для этого функцию на ERM, но боюсь получится слегка костыльно.
Вторая касательно файла zsetup01.txt.
Сейчас для большинства опций в поле "item" стоит -1 (добавить в конец списка).
Это приводит к тому, что для замены/удаления отдельной опции приходится подменять весь текстовик zsetup01.
Предлагаю везде проставить нормальную нумерацию 0..n.
Польза от этого такая: для замены отдельной опции (или нескольких опций) достаточно будет ers-файла (ers-файлы перекрывают строки в zsetup01, я проверял).
Сейчас если мод A меняет опцию X и мод B меняет опцию Y => оба заменяют zsetup01 => моды A и B несовместимы между собой по опциям.
Если оба мода будут использовать для этого ers-файлы - совместимость будет сохранена.
daemon_n в своей сборке также использует измененный zsetup01.txt, и как следствие невозможно сделать мод с заменой опций, полностью совместимый и с чистой Эрой, и со сборкой daemon_n одновременно.
P.S. "re" синтаксис для циклов - это мегакруто и мегаудобно!
Первая касается массивов SN:M - очень не хватает возможности записывать/считывать несколько элементов массива подряд одной командой, по аналогии с командой !!VR:C.
Примерный вариант синтаксиса мог бы быть такой:
!!SN:M#1/#2/#3/$1/$2/.../$n; (>=5 параметров)
#1 - id массива
#2 - id первого элемента для записи/считывания
#3 - количество записываемых/считываемых элементов (>=2)
$1..$n - записываемые/считываемые значения.
Пример:
!!SN:Mv1/i/4/20/10/y2/?y10; [записать 20/10/y2 в элементы i/i+1/i+2 массива v1 и считать в y10 значение элемента i+3]
Можно написать для этого функцию на ERM, но боюсь получится слегка костыльно.
Вторая касательно файла zsetup01.txt.
Сейчас для большинства опций в поле "item" стоит -1 (добавить в конец списка).
Это приводит к тому, что для замены/удаления отдельной опции приходится подменять весь текстовик zsetup01.
Предлагаю везде проставить нормальную нумерацию 0..n.
Польза от этого такая: для замены отдельной опции (или нескольких опций) достаточно будет ers-файла (ers-файлы перекрывают строки в zsetup01, я проверял).
Сейчас если мод A меняет опцию X и мод B меняет опцию Y => оба заменяют zsetup01 => моды A и B несовместимы между собой по опциям.
Если оба мода будут использовать для этого ers-файлы - совместимость будет сохранена.
daemon_n в своей сборке также использует измененный zsetup01.txt, и как следствие невозможно сделать мод с заменой опций, полностью совместимый и с чистой Эрой, и со сборкой daemon_n одновременно.
P.S. "re" синтаксис для циклов - это мегакруто и мегаудобно!