RiftWorks
Найти
Персональное меню
Вы не представились системе
user-interface-preferences
Персональные инструменты
Обсуждение
Вклад
Создать учётную запись
Войти
Параметры
notifications
Редактирование:
Binary flags
(раздел)
associated-pages
Статья
Обсуждение
Просмотры
Читать
Править
Править код
История
Внимание:
Вы не вошли в систему. Ваш 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.
Описание изменений:
Обратите внимание, что все изменения в RiftWorks рассматриваются как выпущенные на условиях лицензии Creative Commons Attribution-NonCommercial-ShareAlike (см.
RiftWorks:Авторские права
). Если вы не хотите, чтобы ваши тексты свободно распространялись и редактировались любым желающим, не помещайте их сюда.
Вы также подтверждаете, что являетесь автором вносимых дополнений или скопировали их из источника в общественном достоянии или под совместимой лицензией.
Не размещайте без разрешения материалы, защищённые авторским правом!
Отменить
Справка по редактированию
(в новом окне)