====== Разбор изменений движка ====== Позднее эта статья будет преобразована в changelog и встроена в справку, чтобы авторам проще было переделывать игры под новейшие версии. ===== Версии плееров ===== * 409 - смена версии на **5.6.4** * 447 - смена версии на **5.6.5** * 529 - сборка версии **5.7.0** (текущая версия классического плеера от 06.06.2010) ===== Разобранные изменения ===== Изменения, которые уже отражены в тексте справки, или это не требуется, выделены курсивом. Изменения, которые, возможно, стоит отразить в справке, выделены **жирным**. * [[http://trac.assembla.com/qsp/changeset/430|430]] - путь картинки передаётся в ONOBJADD * 432 - **игнорирование отрицательных индексов. Раньше приводились к 0.** * [[http://trac.assembla.com/qsp/changeset/433|433]] - **в ARRPOS и ARRCOMP минимальный индекс ограничен сверху размером массива (приводится к нему)** * 444 - индекс в ADDOBJ (индексация с единицы) * 461-463 - ELSEIF * 478 - необязательные параметры в COPYARR - начальный индекс и количество * [[http://trac.assembla.com/qsp/changeset/490|490]] - Небольшое изменение функции DYNEVAL: теперь она выполняет код, возвращая значение, указанное в переменной RESULT/$RESULT. * 491 - фигурные скобки как новый вид кавычек, допускающий вложенность * 492 - можно использовать числовые и текстовые индексы одновременно * [[http://trac.assembla.com/qsp/changeset/495|495]] - частичная прекомпиляция * 497 - **передача аргументов от GT/XGT в обработчик $ONNEWLOC.** * 498 - теперь подвыражения не срабатывают в {} (багфикс) * 527 - оператор "LOC" * 552 - ADDQST → ADDLIB, KILLQST → DELLIB * 554 - теперь в сохранении хранится название локации вместо индекса * 559 - **ELSE IF теперь воспринимается как ELSIF (не нужна куча END)** * 560 - **ELSE: IF не воспринимается как ELSEIF.** * 579 - Сохраняется пробел при разбиении строки с помощью " _" * 596 - ADDLIB → INCLIB, DELLIB → FREELIB * 618,619 - Необязательные аргументы INSTR, ARRPOS, ARRCOMP переставлены в конец. * 640 - **DYNAMIC/DYNEVAL - теперь блок кода вместо верхнего уровня кода** * 641 - Save RESULT value for GS/DYNAMIC too - багфикс [[https://qsp.org/index.php?option=com_agora&task=topic&id=636&Itemid=57#p14363|бага]] * 651 - Повышен приоритет операции & (конкатенации), теперь она важнее сравнения. * 669 - RAND - второй параметр теперь по умолчанию 1 вместо 0 * 687 - Переход на VS2012 * [[http://trac.assembla.com/qsp/changeset/541|541]],[[http://trac.assembla.com/qsp/changeset/542|542]] - **"Tuples"** * [[http://trac.assembla.com/qsp/changeset/545|545]],[[http://trac.assembla.com/qsp/changeset/546|546]] - **FOR** (а ещё TO и STEP) * [[https://trac.assembla.com/qsp/changeset/677|667]] - **Cache compiled regular expressions** * [[https://trac.assembla.com/qsp/changeset/692|692]] - Add lists parsing support for the assignment * [[http://trac.assembla.com/qsp/changeset/555|555]] - ''**LOCAL**'' * [[https://trac.assembla.com/qsp/changeset/625|625]] - initial local vars implementation * [[https://trac.assembla.com/qsp/changeset/644|644]] - Fix saving of the game status (hide local variables) * [[https://trac.assembla.com/qsp/changeset/645|645]] - Complete local variables * [[https://trac.assembla.com/qsp/changeset/646|646]] - Fix local vars * [[https://trac.assembla.com/qsp/changeset/652|652]] - Fix bug with locals declarations * [[https://trac.assembla.com/qsp/changeset/694|694]] - Support assignments in the local statement ===== Разобрать: ===== * Пройтись по новым изменениям движка и добавить неразобранные. ===== Немного дополнительной информации ===== 2022.12.26. Основные изменения движка отражены в справке.