GLOBAL_LIST_INIT(bitfields, generate_bitfields()) /// Specifies a bitfield for smarter debugging /datum/bitfield /// The variable name that contains the bitfield var/variable /// An associative list of the readable flag and its true value var/list/flags /// Turns /datum/bitfield subtypes into a list for use in debugging /proc/generate_bitfields() var/list/bitfields = list() for (var/_bitfield in subtypesof(/datum/bitfield)) var/datum/bitfield/bitfield = new _bitfield bitfields[bitfield.variable] = bitfield.flags return bitfields DEFINE_BITFIELD(admin_flags, list( "ADMIN" = R_ADMIN, "REJUVINATE" = R_REJUVINATE, "BAN" = R_BAN, "BUILDMODE" = R_BUILDMODE, "DEBUG" = R_DEBUG, "FUN" = R_FUN, "PERMISSIONS" = R_PERMISSIONS, "MOD" = R_MOD, "POSSESS" = R_POSSESS, "SERVER" = R_SERVER, "SOUNDS" = R_SOUNDS, "SPAWN" = R_SPAWN, "STEALTH" = R_STEALTH, "VAREDIT" = R_VAREDIT, )) DEFINE_BITFIELD(datum_flags, list( "DF_VAR_EDITED" = DF_VAR_EDITED, "DF_ISPROCESSING" = DF_ISPROCESSING )) DEFINE_BITFIELD(appearance_flags, list( "KEEP_APART" = KEEP_APART, "KEEP_TOGETHER" = KEEP_TOGETHER, "LONG_GLIDE" = LONG_GLIDE, "NO_CLIENT_COLOR" = NO_CLIENT_COLOR, "PIXEL_SCALE" = PIXEL_SCALE, "PLANE_MASTER" = PLANE_MASTER, "RESET_ALPHA" = RESET_ALPHA, "RESET_COLOR" = RESET_COLOR, "RESET_TRANSFORM" = RESET_TRANSFORM, "TILE_BOUND" = TILE_BOUND, "PASS_MOUSE" = PASS_MOUSE, "TILE_MOVER" = TILE_MOVER )) DEFINE_BITFIELD(vis_flags, list( "VIS_HIDE" = VIS_HIDE, "VIS_INHERIT_DIR" = VIS_INHERIT_DIR, "VIS_INHERIT_ICON" = VIS_INHERIT_ICON, "VIS_INHERIT_ICON_STATE" = VIS_INHERIT_ICON_STATE, "VIS_INHERIT_ID" = VIS_INHERIT_ID, "VIS_INHERIT_LAYER" = VIS_INHERIT_LAYER, "VIS_INHERIT_PLANE" = VIS_INHERIT_PLANE, "VIS_UNDERLAY" = VIS_UNDERLAY, )) DEFINE_BITFIELD(sight, list( "BLIND" = BLIND, "SEE_BLACKNESS" = SEE_BLACKNESS, "SEE_INFRA" = SEE_INFRA, "SEE_MOBS" = SEE_MOBS, "SEE_OBJS" = SEE_OBJS, "SEE_PIXELS" = SEE_PIXELS, "SEE_SELF" = SEE_SELF, "SEE_THRU" = SEE_THRU, "SEE_TURFS" = SEE_TURFS, ))