Merge pull request #15947 from SandPoot/bitfield-updates

Updates bitfields, admin side
This commit is contained in:
silicons
2023-01-23 13:02:28 -08:00
committed by GitHub
2 changed files with 170 additions and 3 deletions
+153
View File
@@ -68,6 +68,25 @@ DEFINE_BITFIELD(area_flags, list(
"NO_ALERTS" = NO_ALERTS,
))
DEFINE_BITFIELD(body_parts_covered, list(
"ARM_LEFT" = ARM_LEFT,
"ARM_RIGHT" = ARM_RIGHT,
"ARMS" = ARMS,
"CHEST" = CHEST,
"FEET" = FEET,
"FOOT_LEFT" = FOOT_LEFT,
"FOOT_RIGHT" = FOOT_RIGHT,
"GROIN" = GROIN,
"HAND_LEFT" = HAND_LEFT,
"HAND_RIGHT" = HAND_RIGHT,
"HANDS" = HANDS,
"HEAD" = HEAD,
"LEG_LEFT" = LEG_LEFT,
"LEG_RIGHT" = LEG_RIGHT,
"LEGS" = LEGS,
"NECK" = NECK,
))
DEFINE_BITFIELD(car_traits, list(
"CAN_KIDNAP" = CAN_KIDNAP,
))
@@ -125,6 +144,11 @@ DEFINE_BITFIELD(disease_flags, list(
"CURABLE" = CURABLE,
))
DEFINE_BITFIELD(explosion_flags, list(
"EXPLOSION_FLAG_DENSITY_DEPENDENT" = EXPLOSION_FLAG_DENSITY_DEPENDENT,
"EXPLOSION_FLAG_HARD_OBSTACLE" = EXPLOSION_FLAG_HARD_OBSTACLE,
))
DEFINE_BITFIELD(flags_1, list(
"ADMIN_SPAWNED_1" = ADMIN_SPAWNED_1,
"BLOCK_FACE_ATOM_1" = BLOCK_FACE_ATOM_1,
@@ -147,6 +171,30 @@ DEFINE_BITFIELD(flags_1, list(
"UNUSED_RESERVATION_TURF_1" = UNUSED_RESERVATION_TURF_1,
))
DEFINE_BITFIELD(flags_cover, list(
"GLASSESCOVERSEYE" = GLASSESCOVERSEYES,
"HEADCOVERSEYES" = HEADCOVERSEYES,
"HEADCOVERSMOUTH" = HEADCOVERSMOUTH,
"MASKCOVERSEYES" = MASKCOVERSEYES,
"MASKCOVERSMOUTH" = MASKCOVERSMOUTH,
))
DEFINE_BITFIELD(flags_inv, list(
"HIDEACCESSORY" = HIDEACCESSORY,
"HIDEEARS" = HIDEEARS,
"HIDEEYES" = HIDEEYES,
"HIDEFACE" = HIDEFACE,
"HIDEFACIALHAI" = HIDEFACIALHAIR,
"HIDEGLOVES" = HIDEGLOVES,
"HIDEHAIR" = HIDEHAIR,
"HIDEJUMPSUIT" = HIDEJUMPSUIT,
"HIDEMASK" = HIDEMASK,
"HIDENECK" = HIDENECK,
"HIDESHOES" = HIDESHOES,
"HIDESNOUT" = HIDESNOUT,
"HIDESUITSTORA" = HIDESUITSTORAGE,
"HIDETAUR" = HIDETAUR,
))
DEFINE_BITFIELD(flags_ricochet, list(
"RICOCHET_SHINY" = RICOCHET_SHINY,
"RICOCHET_HARD" = RICOCHET_HARD
@@ -204,6 +252,12 @@ DEFINE_BITFIELD(item_flags, list(
"SLOWS_WHILE_IN_HAND" = SLOWS_WHILE_IN_HAND,
))
DEFINE_BITFIELD(material_flags, list(
"MATERIAL_ADD_PREFIX" = MATERIAL_ADD_PREFIX,
"MATERIAL_AFFECT_STATISTICS" = MATERIAL_AFFECT_STATISTICS,
"MATERIAL_COLOR" = MATERIAL_COLOR,
))
DEFINE_BITFIELD(mob_biotypes, list(
"MOB_BEAST" = MOB_BEAST,
"MOB_BUG" = MOB_BUG,
@@ -281,7 +335,21 @@ DEFINE_BITFIELD(pass_flags, list(
"PASSCLOSEDTURF" = PASSCLOSEDTURF,
"PASSGLASS" = PASSGLASS,
"PASSGRILLE" = PASSGRILLE,
"PASSMACHINE" = PASSMACHINE,
"PASSMOB" = PASSMOB,
"PASSSTRUCTURE" = PASSSTRUCTURE,
"PASSTABLE" = PASSTABLE,
))
DEFINE_BITFIELD(pass_flags_self, list(
"LETPASSTHROW" = LETPASSTHROW,
"PASSBLOB" = PASSBLOB,
"PASSCLOSEDTURF" = PASSCLOSEDTURF,
"PASSGLASS" = PASSGLASS,
"PASSGRILLE" = PASSGRILLE,
"PASSMACHINE" = PASSMACHINE,
"PASSMOB" = PASSMOB,
"PASSSTRUCTURE" = PASSSTRUCTURE,
"PASSTABLE" = PASSTABLE,
))
@@ -343,6 +411,29 @@ DEFINE_BITFIELD(sight, list(
"SEE_TURFS" = SEE_TURFS,
))
DEFINE_BITFIELD(slot_flags, list(
"ITEM_SLOT_BACK" = ITEM_SLOT_BACK,
"ITEM_SLOT_BACKPACK" = ITEM_SLOT_BACKPACK,
"ITEM_SLOT_BELT" = ITEM_SLOT_BELT,
"ITEM_SLOT_DEX_STORAGE" = ITEM_SLOT_DEX_STORAGE,
"ITEM_SLOT_EARS" = ITEM_SLOT_EARS,
"ITEM_SLOT_EYES" = ITEM_SLOT_EYES,
"ITEM_SLOT_FEET" = ITEM_SLOT_FEET,
"ITEM_SLOT_GLOVES" = ITEM_SLOT_GLOVES,
"ITEM_SLOT_HANDCUFFED" = ITEM_SLOT_HANDCUFFED,
"ITEM_SLOT_HANDS" = ITEM_SLOT_HANDS,
"ITEM_SLOT_HEAD" = ITEM_SLOT_HEAD,
"ITEM_SLOT_ICLOTHING" = ITEM_SLOT_ICLOTHING,
"ITEM_SLOT_ID" = ITEM_SLOT_ID,
"ITEM_SLOT_LEGCUFFED" = ITEM_SLOT_LEGCUFFED,
"ITEM_SLOT_LPOCKET" = ITEM_SLOT_LPOCKET,
"ITEM_SLOT_MASK" = ITEM_SLOT_MASK,
"ITEM_SLOT_NECK" = ITEM_SLOT_NECK,
"ITEM_SLOT_OCLOTHING" = ITEM_SLOT_OCLOTHING,
"ITEM_SLOT_RPOCKET" = ITEM_SLOT_RPOCKET,
"ITEM_SLOT_SUITSTORE" = ITEM_SLOT_SUITSTORE,
))
DEFINE_BITFIELD(smooth, list(
"SMOOTH_BORDER" = SMOOTH_BORDER,
"SMOOTH_DIAGONAL" = SMOOTH_DIAGONAL,
@@ -351,6 +442,15 @@ DEFINE_BITFIELD(smooth, list(
"SMOOTH_TRUE" = SMOOTH_TRUE,
))
DEFINE_BITFIELD(status_flags, list(
"CANKNOCKDOWN" = CANKNOCKDOWN,
"CANPUSH" = CANPUSH,
"CANSTAGGER" = CANSTAGGER,
"CANSTUN" = CANSTUN,
"CANUNCONSCIOUS" = CANUNCONSCIOUS,
"GODMODE" = GODMODE,
))
DEFINE_BITFIELD(storage_flags, list(
"STORAGE_LIMIT_COMBINED_W_CLASS" = STORAGE_LIMIT_COMBINED_W_CLASS,
"STORAGE_LIMIT_MAX_ITEMS" = STORAGE_LIMIT_MAX_ITEMS,
@@ -369,6 +469,59 @@ DEFINE_BITFIELD(vis_flags, list(
"VIS_UNDERLAY" = VIS_UNDERLAY,
))
DEFINE_BITFIELD(visor_flags, list(
"ALLOWINTERNALS" = ALLOWINTERNALS,
"BLOCK_GAS_SMOKE_EFFECT" = BLOCK_GAS_SMOKE_EFFECT,
"IGNORE_HAT_TOSS" = IGNORE_HAT_TOSS,
"LAVAPROTECT" = LAVAPROTECT,
"NOSLIP" = NOSLIP,
"NOSLIP_ICE" = NOSLIP_ICE,
"SCAN_REAGENTS" = SCAN_REAGENTS,
"STOPSPRESSUREDAMAGE" = STOPSPRESSUREDAMAGE,
"THICKMATERIAL" = THICKMATERIAL,
"VOICEBOX_DISABLED" = VOICEBOX_DISABLED,
"VOICEBOX_TOGGLABLE" = VOICEBOX_TOGGLABLE,
))
DEFINE_BITFIELD(visor_flags_cover, list(
"GLASSESCOVERSEYE" = GLASSESCOVERSEYES,
"HEADCOVERSEYES" = HEADCOVERSEYES,
"HEADCOVERSMOUTH" = HEADCOVERSMOUTH,
"MASKCOVERSEYES" = MASKCOVERSEYES,
"MASKCOVERSMOUTH" = MASKCOVERSMOUTH,
))
DEFINE_BITFIELD(visor_flags_inv, list(
"HIDEACCESSORY" = HIDEACCESSORY,
"HIDEEARS" = HIDEEARS,
"HIDEEYES" = HIDEEYES,
"HIDEFACE" = HIDEFACE,
"HIDEFACIALHAI" = HIDEFACIALHAIR,
"HIDEGLOVES" = HIDEGLOVES,
"HIDEHAIR" = HIDEHAIR,
"HIDEJUMPSUIT" = HIDEJUMPSUIT,
"HIDEMASK" = HIDEMASK,
"HIDENECK" = HIDENECK,
"HIDESHOES" = HIDESHOES,
"HIDESNOUT" = HIDESNOUT,
"HIDESUITSTORA" = HIDESUITSTORAGE,
"HIDETAUR" = HIDETAUR,
))
DEFINE_BITFIELD(vore_flags, list(
"ABSORBABLE" = ABSORBABLE,
"ABSORBED" = ABSORBED,
"DEVOURABLE" = DEVOURABLE,
"DIGESTABLE" = DIGESTABLE,
"FEEDING" = FEEDING,
"LICKABLE" = LICKABLE,
"MOBVORE" = MOBVORE,
"NO_VORE" = NO_VORE,
"SMELLABLE" = SMELLABLE,
"VOREPREF_INIT" = VOREPREF_INIT,
"VORE_INIT" = VORE_INIT,
))
DEFINE_BITFIELD(zap_flags, list(
"ZAP_ALLOW_DUPLICATES" = ZAP_ALLOW_DUPLICATES,
"ZAP_MACHINE_EXPLOSIVE" = ZAP_MACHINE_EXPLOSIVE,
@@ -360,6 +360,9 @@ GLOBAL_PROTECT(VVpixelmovement)
var/original_name = "[O]"
var/var_old_text
var/var_new_text
switch(class)
if(VV_LIST)
if(!islist(var_value))
@@ -376,14 +379,25 @@ GLOBAL_PROTECT(VVpixelmovement)
for(var/V in varsvars)
var_new = replacetext(var_new,"\[[V]]","[O.vars[V]]")
if(VV_BITFIELD)
var/list/old_bitfields
for(var/bitfield in GLOB.bitfields[variable])
if(var_value & GLOB.bitfields[variable][bitfield])
LAZYADD(old_bitfields, bitfield)
var_old_text = "\n[var_value] = \n([english_list(old_bitfields, and_text = " | ", comma_text=" | ")])\n"
var/list/new_bitfields
for(var/bitfield in GLOB.bitfields[variable])
if(var_new & GLOB.bitfields[variable][bitfield])
LAZYADD(new_bitfields, bitfield)
var_new_text = "\n[var_new] = \n([english_list(new_bitfields, and_text = " | ", comma_text=" | ")])"
if (O.vv_edit_var(variable, var_new) == FALSE)
to_chat(src, "Your edit was rejected by the object.", confidential = TRUE)
return
vv_update_display(O, "varedited", VV_MSG_EDITED)
log_world("### VarEdit by [key_name(src)]: [O.type] [variable]=[var_value] => [var_new]")
log_admin("[key_name(src)] modified [original_name]'s [variable] from [html_encode("[var_value]")] to [html_encode("[var_new]")]")
var/msg = "[key_name_admin(src)] modified [original_name]'s [variable] from [var_value] to [var_new]"
log_world("### VarEdit by [key_name(src)]: [O.type] [variable]=[var_old_text ? var_old_text : var_value] => [var_new_text ? var_new_text : var_new]")
log_admin("[key_name(src)] modified [original_name]'s [variable] from [html_encode("[var_old_text ? var_old_text : var_value]")] to [html_encode("[var_new_text ? var_new_text : var_new]")]")
var/msg = "[key_name_admin(src)] modified [original_name]'s [variable] from [var_old_text ? var_old_text : var_value] to [var_new_text ? var_new_text : var_new]"
message_admins(msg)
admin_ticket_log(O, msg)
return TRUE