[[help:txt2gam|Назад: Краткое руководство по TXT2GAM]] ====== Тем, кто применяет TXT2GAM (использование препроцессора) ====== При написании игры без использования QGen, исходный текст не зашифрован и может редактироваться любым текстовым редактором. Это также дает возможность обработать текстовый файл игры перед тем, как он будет превращен в QSP-файл - например, удалить отладочный код или неиспользуемые фрагменты текста, а также собрать один файл из нескольких мелких. В мире программирования на Си эта возможность называется "препроцессинг" и выполняется утилитой cpp, которая идет в пакете с компиляторами C. В нашем случае удобно использовать утилиту, которая не привязана к языку С и и может быть использована отдельно от компилятора — GPP для Win32. Чтобы воспользоваться этим, нужно добавить в текст специальные инструкции и обработать текст утилитой GPP. После такой обработки текст уже не будет содержать инструкции и может быть преобразован в QSP-файл без ошибок. ===== Инструкции (основные) ===== **#mode quote** — отключает обработку символа "\" как служебного, рекомендуется поставить первой строчкой файла **#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,** был удален из конечного результата. Прошу задавать вопросы на форуме. Ссылки: * [[http://yumbrik.ru/gpp-2.24.o1.win32.zip|Скачать GPP]] * [[http://files.nothingisreal.com/software/gpp/gpp.html|Документация на английском]] * [[http://en.nothingisreal.com/wiki/GPP|Домашний сайт GPP]] АВТОР: **NTROPY** 07.04.2010 18:47