Вышла FireURQ версии 1.8 (скачать).
Нововведений много, форматирование на форуме неудобное, поэтому распишу всё здесь. Итак, новые фичи.
Инклюды
Фурка теперь позволяет «собирать» код игры из нескольких файлов. Для этого следует использовать макрос %include <имя_файла.qst>. При этом действуют следующие правила:
- Макрос инклюда должен быть один на строке.
- Инклюды обрабатываются при загрузке квеста, поэтому подстановки там не действуют. Только чистый текст
, только хардкор.Комментарии тоже нельзя, к слову. Наверное, это временно.Комментарии можно. - Каждый файл включается один раз. Другими словами, %include не вставляет код из файла в то место, где он был вызван, а просто указывает, что этот код должен присутствовать в квесте. Данное поведение похоже на команду require в PHP.
- Имена меток и переменных сквозные. Следите, чтобы метки в разных файлах назывались по-разному.
- Возможно использовать относительные пути, например %include inc/mylib.qst, при этом путь указывается относительно того файла, в котором вызывается макрос. Т.е. если вы в вышеприведённом mylib.qst вызовете %include more/lowlevel.qst, то lowlevel.qst должен лежать в папке inc/more, относительно главного файла квеста.
- Все ресурсы игры (картинки, музыка, шрифты) вызываются относительно главного файла квеста, в каких бы инклюдах и папках не находился код, их вызывающий.
- При упаковке в QSZ главный файл квеста должен называться main.qst или game.qst (qs1, qs2), чтобы интерпретатор понял, с чего начинать. Если FireURQ не найдёт такого файла в архиве, то вызовет первый попавшийся.
Ссылки в текстовых декораторах
Текстовые декораторы теперь поддерживают ссылки. На них можно кликать и будет происходить всякое. Поддерживается полный спектр возможностей — обычные переходы, локальные действия и меню. Синтаксис ссылок никак не отличается от ссылок в основном тексте (в реальности, это одна и та же процедура в коде фурки). Нюансы касаются лишь способа задания цветов, т.к. у текстового декоратора их теперь три: цвет текста, цвет ссылки и цвет подсветки при наведении мыши. Отсюда следующее:
- Команда DECORADD позволяет задать от одного до трёх цветов для текстового декоратора.
- Переменные decor_имя_linkcolor и decor_имя_linkhcolor задают цвет ссылки и цвет подсветки соответственно.
- DECORCOL теперь работает так. Если после имени декоратора задан один параметр — это цвет текста. Если два — это цвет текста и период времени, за который его надо поменять. Если три — это цвет текста, ссылки и подсветки. Если четыре — это три цвета и время, за которое они меняются. Подобным же образом действуют команды col и colx в скрипте декоратора. Обратите внимание, что синтаксис col/colx, при котором компоненты цвета задаются отдельно, для текстового декоратора не работает.
- Альфа-составляющая у цвета ссылок всегда наследуется от цвета текста. Невозможно сделать ссылки более или менее прозрачными, чем основной текст декоратора.
Остальные изменения
- Новая команда CLSL — делает неактивными все ссылки в основном тексте. Удобно, если надо деактивировать ссылки, не переходя на новую локацию (в локальном действии, например).
- Системная переменная inventory_enabled, по умолчанию равная 1, отвечает за доступность инвентаря. Если она равна 0, то инвентарь будет недоступен.
- Упрощённый формат ссылок. Можно задать ссылку как [[ссылка]], что будет равнозначно [[ссылка|ссылка]], т.е. она будет ссылаться на локацию «ссылка». Можно добавлять модификаторы, например [[%меню]] — модификатор на экран не выводится.
- Всяческий багфикс. 🙂
- Инсталлятор теперь добавляет для файлов квестов в Проводнике команду «Запустить в режиме отладки», которую можно вызвать, нажав на файл квеста правой кнопкой мыши и выбрав соответствующий пункт из выпавшего меню (привет, Евг!).
Собственно, это всё. Пишите игры.
Суперски! Надо инклюды попробовать. Да да, и не только Евг, мне тоже привет, а то я вечно не знаю как в дебаг режиме запустить.
Отлично! 🙂