Ага, но через арифметику - это шуточный вариант. В Реконе и Far Horizons используют:
bool Con(bool a, bool b) {return a && b;} //КОНЪЮНКЦИЯ
bool Dis(bool a, bool b) {return a || b;} //ДИЗЪЮНКЦИЯ
То есть некорректное if( (a && b) || c) можно превратить в работающее if( Con(a, b) || c)
Злоупотреблять Con/Dis не стоит, код может стать неудобочитаемым, но в иных случаях всё понятно, можно не плодить лишние предваряющие bool'ы.
Также важно помнить про оптимизацию (сначала базовые чеки релевантности, потом большие функции), о ней в гайде ты написал, и, например, что проверка значений атрибута обычно идёт в связке с проверкой его наличия (если только заведомо не известно, что он есть).
В качестве динамических массивов можно использовать атрибутную систему. В движке атрибуты - это отдельный класс, напоминающий рекурсивный ассоциативный массив.
Ред. Rosarak
» Корсары / Передача данных
» Корсары / Условные операторы
Злоупотреблять Con/Dis не стоит, код может стать неудобочитаемым, но в иных случаях всё понятно, можно не плодить лишние предваряющие bool'ы.
Также важно помнить про оптимизацию (сначала базовые чеки релевантности, потом большие функции), о ней в гайде ты написал, и, например, что проверка значений атрибута обычно идёт в связке с проверкой его наличия (если только заведомо не известно, что он есть).
» Корсары / Массивы