Инструменты пользователя

Инструменты сайта


Боковая панель

dev:razbor_izmenenij_dvizhka

Это старая версия документа.


Разбор изменений движка

Позднее эта статья будет преобразована в changelog и встроена в справку, чтобы авторам проще было переделывать игры под новейшие версии.

Версии плееров

  • 409 - смена версии на 5.6.4
  • 447 - смена версии на 5.6.5
  • 529 - сборка версии 5.7.0 (текущая версия классического плеера от 06.06.2010)

Разобранные изменения

Изменения, которые уже отражены в тексте справки, или это не требуется, выделены курсивом. Изменения, которые, возможно, стоит отразить в справке, выделены жирным.

  • 430 - путь картинки передаётся в ONOBJADD
  • 432 - игнорирование отрицательных индексов. Раньше приводились к 0.
  • 433 - в ARRPOS и ARRCOMP минимальный индекс ограничен сверху размером массива (приводится к нему)
  • 444 - индекс в ADDOBJ (индексация с единицы)
  • 461-463 - ELSEIF
  • 478 - необязательные параметры в COPYARR - начальный индекс и количество
  • 490 - Небольшое изменение функции DYNEVAL: теперь она выполняет код, возвращая значение, указанное в переменной RESULT/$RESULT.
  • 491 - фигурные скобки как новый вид кавычек, допускающий вложенность
  • 492 - можно использовать числовые и текстовые индексы одновременно
  • 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 - багфикс бага
  • 651 - Повышен приоритет операции & (конкатенации), теперь она важнее сравнения.
  • 669 - RAND - второй параметр теперь по умолчанию 1 вместо 0
  • 687 - Переход на VS2012

Разобрать:

  • 541,542 - "Tuples"
  • 545,546 - FOR (а ещё TO и STEP)
  • 667 - Cache compiled regular expressions
  • 692 - Add lists parsing support for the assignment

Local variables

  • 555 - LOCAL
  • 625 - initial local vars implementation
  • 644 - Fix saving of the game status (hide local variables)
  • 645 - Complete local variables
  • 646 - Fix local vars
  • 652 - Fix bug with locals declarations
  • 694 - Support assignments in the local statement

Немного дополнительной информации

Будут списки. Из-за них более удобное использование многомерных массивов: arr[1,2,3]=455

Локальные переменные: local a=4,b=6,$c='qqq' Локальны для текущего блока кода, при выходе восстанавливаются предыдущие значения. Объявление локальных переменных через кортежи:

local a,b,$c=4,6,'qqq'
Представленное выше объявление не работает в 5.8.0

dev/razbor_izmenenij_dvizhka.1621093852.txt.gz · Последние изменения: 2021/05/15 15:50 — aleks_versus