Администратор ryancoolround Опубликовано 17 мая, 2021 Администратор Опубликовано 17 мая, 2021 Pragma это переменные (Да, смейтесь, я не силен в терминологии SourceMod), которые обычно при написании плагина мы указываем в самом верху исходника. Обычно это что то вроде: #pragma semicolon 1 #pragma tabsize 0 #pragma newdecls optional #pragma newdecls required Так вот, чисто для себя, оставлю здесь полный Pragma Case. Возможно мне пригодится в будущем. case tpPRAGMA: if (!SKIPPING) { if (lex(&val, &str) == tSYMBOL) { if (strcmp(str, "ctrlchar") == 0) { while (*lptr <= ' ' && *lptr != '\0') lptr++; if (*lptr == '\0') { sc_ctrlchar = sc_ctrlchar_org; } else { if (lex(&val, &str) != tNUMBER) error(27); /* invalid character constant */ sc_ctrlchar = (char)val; } } else if (strcmp(str, "deprecated") == 0) { while (*lptr <= ' ' && *lptr != '\0') lptr++; pc_deprecate = (char*)lptr; lptr = (unsigned char*)strchr( (char*)lptr, '\0'); /* skip to end (ignore "extra characters on line") */ } else if (strcmp(str, "dynamic") == 0) { preproc_expr(&pc_stksize, NULL); } else if (strcmp(str, "rational") == 0) { while (*lptr != '\0') lptr++; } else if (strcmp(str, "semicolon") == 0) { cell val; preproc_expr(&val, NULL); sc_needsemicolon = (int)val; } else if (strcmp(str, "newdecls") == 0) { while (*lptr <= ' ' && *lptr != '\0') lptr++; if (strncmp((char*)lptr, "required", 8) == 0) sc_require_newdecls = 1; else if (strncmp((char*)lptr, "optional", 8) == 0) sc_require_newdecls = 0; else error(146); lptr = (unsigned char*)strchr( (char*)lptr, '\0'); /* skip to end (ignore "extra characters on line") */ } else if (strcmp(str, "tabsize") == 0) { cell val; preproc_expr(&val, NULL); sc_tabsize = (int)val; } else if (strcmp(str, "unused") == 0) { char name[sNAMEMAX + 1]; size_t i; int comma; symbol* sym; do { /* get the name */ while (*lptr <= ' ' && *lptr != '\0') lptr++; for (i = 0; i < sizeof name && alphanum(*lptr); i++, lptr++) name[i] = *lptr; name[i] = '\0'; /* get the symbol */ sym = findloc(name); if (sym == NULL) sym = findglb(name); if (sym != NULL) { sym->usage |= uREAD; if (sym->ident == iVARIABLE || sym->ident == iREFERENCE || sym->ident == iARRAY || sym->ident == iREFARRAY) sym->usage |= uWRITTEN; } else { error(17, name); /* undefined symbol */ } /* see if a comma follows the name */ while (*lptr <= ' ' && *lptr != '\0') lptr++; comma = (*lptr == ','); if (comma) lptr++; } while (comma); } else { error(207); /* unknown #pragma */ } } else { error(207); /* unknown #pragma */ } check_empty(lptr); } break; «Успех – это приятно, но он не должен быть единственной причиной, по которой вы – музыкант». - Честер Беннингтон
Рекомендуемые сообщения
Для публикации сообщений создайте учётную запись или авторизуйтесь
Вы должны быть пользователем, чтобы оставить комментарий
Создать аккаунт
Зарегистрируйте новый аккаунт в нашем сообществе. Это очень просто!
Регистрация нового пользователяВойти
Уже есть аккаунт? Войти в систему.
Войти