Редактирование:
Binary flags
(раздел)
Перейти к навигации
Перейти к поиску
Внимание:
Вы не вошли в систему. Ваш IP-адрес будет общедоступен, если вы запишете какие-либо изменения. Если вы
войдёте
или
создадите учётную запись
, её имя будет использоваться вместо IP-адреса, наряду с другими преимуществами.
Анти-спам проверка.
Не
заполняйте это!
=== Setting a bitflag === Above we did the following: var/f = 255 //0b11111111 v3 = c & f What happened was that completely irrespective of what c was, v3 became 0b11111111, since anything OR 1 = 1. But we don't have to have the entire row of ones. What if we just add a single 1 in there. After all 0 OR anything = anything. The 0 doesn't change the value. So let's write a proc, where ''dis'' is the disability we want to add (DISABILITY_EYE, DISABILITY_EAR, etc): mob/proc/add_disability(var/dis) disabilities = disabilities | dis So if disabilities were 0b0000 before we called it, and we called it with DISABILITY_EAR, which is 2, we would get the following calculation calling M.add_disability(DISABILITY_EAR) disabilities = 0b0000 | 0b0010 0b0000 OR 0b0010 = 0b0010 So the ''disabilities'' variable now becomes 0010, which indicates it has the poor hearing disability. But what if we called the same proc again, with the same argument DISABILITY_EAR, would anything change? calling M.add_disability(DISABILITY_EAR) disabilities = 0b0010 | 0b0010 0b0010 OR 0b0010 = 0b0010 Nope. It remains the same, as it should. And if we want to add another leg disability (DISABILITY_LEG)? calling M.add_disability(DISABILITY_LEG) disabilities = 0b0010 | 0b0100 0b0010 OR 0b0100 = 0b0110 The old ear disability remains untouched, and the new leg disability is added.
Описание изменений:
Пожалуйста, учтите, что любой ваш вклад в проект «MassMeta» может быть отредактирован или удалён другими участниками. Если вы не хотите, чтобы кто-либо изменял ваши тексты, не помещайте их сюда.
Вы также подтверждаете, что являетесь автором вносимых дополнений, или скопировали их из источника, допускающего свободное распространение и изменение своего содержимого (см.
MassMeta:Авторские права
).
НЕ РАЗМЕЩАЙТЕ БЕЗ РАЗРЕШЕНИЯ ОХРАНЯЕМЫЕ АВТОРСКИМ ПРАВОМ МАТЕРИАЛЫ!
Отменить
Справка по редактированию
(в новом окне)
Навигация
Персональные инструменты
Вы не представились системе
Обсуждение
Вклад
Создать учётную запись
Войти
Пространства имён
Статья
Обсуждение
русский
Просмотры
Читать
Править
Править код
История
Ещё
Поиск
/tg/station 13
Главная страница
Новым игрокам
Правила
Профессии
Гайды
Предметы
Локации
Карты
Игровые режимы
Вклад
Руководство по участию в разработке билда
Маппинг
Спрайтинг
Руководство по пониманию кода
Разработка
Wiki
Свежие правки
Случайная страница
Инструменты
Ссылки сюда
Связанные правки
Служебные страницы
Сведения о странице