При написании игры без использования
QGen, исходный текст не зашифрован и может редактироваться любым текстовым редактором.
Это также даёт возможность обработать текстовый файл игры перед тем как он будет превращен в qsp-файл, например удалить отладочный код или не используемые фрагменты текста, также собрать один файл из нескольких мелких.
В мире программирование на
C эта возможность называется "препроцессинг" и выполняется утилитой
cpp, которая идет в пакете с компиляторами C.
В нашем случае удобно использовать утилиту которая не привязана к языку С и и может быть использована отдельно от компилятора —
GPP для Win32.
Что бы воспользоваться этим, нужно добавить в текст специальные инструкции и обработать текст утилитой GPP, после такой обработки текст уже не будет содержать инструкции и может быть преобразован в qsp-файл без ошибок.
Инструкции (основные):
#define <имя> — определить флажек, на который можно будет позже ссылаться
#define <имя> <значение> — определить значение, которое можно будет позже ссылаться
#undef <имя> — удаление значения, или флажка
#ifdef <имя> — если флаг или значение определены, то весь текст после этого условия до #endif или до #else будет выведен в итоговый файл
#else — окончание фрагмента регулируемого инструкцией #ifdef, последующий текст выводится если условие в #ifdef не выполнено
#endif — окончание фрагмента регулируемого инструкцией #ifdef или #else
#ifndef — аналогично #ifdef, однако проверяется что флаг или значение не определены, весь текст после этого условия до #endif или до #else будет выведен в итоговый файл.
#include "<имя файла>" — в выходной файл вставляет текст из указанного файла (из той же папки), если файл содержит инструкции он также будет обработан
Поскольку в
txt2gam по умолчанию для обозначения начала локации используется символ
"#" важно что бы имена локаций не назывались бы по имени инструкции (
define,
ifdef, и т.п.). Также не стоит включать инструкции в комментарии и строки, лучше их записывать на отдельных строчках.
Доступны также и другие инструкции, о них можно узнать в документации или спросить в этой теме.
Для запуска текста игры на обработку нужно открыть текстовый терминал и набрать команду:
gpp.exe <входной файл> -o <выходной файл>
Другие ключи запуска можно узнать запустив как: gpp.exe --help
Приведу пример использования
Исходный файл:
#define HTML
# Start
#ifdef HTML
USEHTML 1
#endif
- Start
после обработки в выходной файл запишется
# Start
USEHTML 1
- Start
Если же убрать инструкцию #define например заменив на #undef то после обработки в выходной файл запишется
# Start
- Start
То есть текст закрытый регулируемый инструкцией #ifdef был вымаран из конечного результата.
Прошу задавать вопросы в этой теме.
P.S.
Документация на английском и домашний
сайт GPP