From fcc038c41a8e46e1de41ec87ac8bf59a5268cd17 Mon Sep 17 00:00:00 2001 From: Poojawa Date: Tue, 6 Mar 2018 21:05:15 -0600 Subject: [PATCH] defines, helpers, globalvars --- code/__DEFINES/admin.dm | 1 + code/__DEFINES/lighting.dm | 2 +- code/__DEFINES/qdel.dm | 1 + code/__DEFINES/subsystems.dm | 2 +- code/__HELPERS/roundend.dm | 25 ++++++++++++++++++++++ code/__HELPERS/type2type.dm | 40 +++++++++++++++++++----------------- code/_globalvars/misc.dm | 3 ++- 7 files changed, 52 insertions(+), 22 deletions(-) diff --git a/code/__DEFINES/admin.dm b/code/__DEFINES/admin.dm index e8b744ce5b..b5bbcd341e 100644 --- a/code/__DEFINES/admin.dm +++ b/code/__DEFINES/admin.dm @@ -34,6 +34,7 @@ #define R_SOUNDS 0x800 #define R_SPAWN 0x1000 #define R_AUTOLOGIN 0x2000 +#define R_DBRANKS 0x4000 #define R_DEFAULT R_AUTOLOGIN diff --git a/code/__DEFINES/lighting.dm b/code/__DEFINES/lighting.dm index f68657c3e9..b7cc207735 100644 --- a/code/__DEFINES/lighting.dm +++ b/code/__DEFINES/lighting.dm @@ -52,7 +52,7 @@ #define LIGHT_RANGE_FIRE 3 //How many tiles standard fires glow. #define LIGHTING_PLANE_ALPHA_VISIBLE 255 -#define LIGHTING_PLANE_ALPHA_NV_TRAIT 250 +#define LIGHTING_PLANE_ALPHA_NV_TRAIT 245 #define LIGHTING_PLANE_ALPHA_MOSTLY_VISIBLE 192 #define LIGHTING_PLANE_ALPHA_MOSTLY_INVISIBLE 128 //For lighting alpha, small amounts lead to big changes. even at 128 its hard to figure out what is dark and what is light, at 64 you almost can't even tell. #define LIGHTING_PLANE_ALPHA_INVISIBLE 0 diff --git a/code/__DEFINES/qdel.dm b/code/__DEFINES/qdel.dm index 8749218847..d9db6e89a2 100644 --- a/code/__DEFINES/qdel.dm +++ b/code/__DEFINES/qdel.dm @@ -22,3 +22,4 @@ #define QDELING(X) (X.gc_destroyed) #define QDELETED(X) (!X || QDELING(X)) #define QDESTROYING(X) (!X || X.gc_destroyed == GC_CURRENTLY_BEING_QDELETED) + diff --git a/code/__DEFINES/subsystems.dm b/code/__DEFINES/subsystems.dm index 770d3053c6..232da0d2ca 100644 --- a/code/__DEFINES/subsystems.dm +++ b/code/__DEFINES/subsystems.dm @@ -1,7 +1,7 @@ //Update this whenever the db schema changes //make sure you add an update to the schema_version stable in the db changelog #define DB_MAJOR_VERSION 4 -#define DB_MINOR_VERSION 0 +#define DB_MINOR_VERSION 1 //Timing subsystem //Don't run if there is an identical unique timer active diff --git a/code/__HELPERS/roundend.dm b/code/__HELPERS/roundend.dm index b0bc653b01..b0e76bbcf3 100644 --- a/code/__HELPERS/roundend.dm +++ b/code/__HELPERS/roundend.dm @@ -500,3 +500,28 @@ objective_parts += "Objective #[count]: [objective.explanation_text] Fail." count++ return objective_parts.Join("
") + +/datum/controller/subsystem/ticker/proc/save_admin_data() + if(CONFIG_GET(flag/admin_legacy_system)) //we're already using legacy system so there's nothing to save + return + else if(load_admins()) //returns true if there was a database failure and the backup was loaded from + return + var/datum/DBQuery/query_admin_rank_update = SSdbcore.NewQuery("UPDATE [format_table_name("player")] p INNER JOIN [format_table_name("admin")] a ON p.ckey = a.ckey SET p.lastadminrank = a.rank") + query_admin_rank_update.Execute() + //json format backup file generation stored per server + var/json_file = file("data/admins_backup.json") + var/list/file_data = list("ranks" = list(), "admins" = list()) + for(var/datum/admin_rank/R in GLOB.admin_ranks) + file_data["ranks"]["[R.name]"] = list() + file_data["ranks"]["[R.name]"]["include rights"] = R.include_rights + file_data["ranks"]["[R.name]"]["exclude rights"] = R.exclude_rights + file_data["ranks"]["[R.name]"]["can edit rights"] = R.can_edit_rights + for(var/i in GLOB.admin_datums+GLOB.deadmins) + var/datum/admins/A = GLOB.admin_datums[i] + if(!A) + A = GLOB.deadmins[i] + if (!A) + continue + file_data["admins"]["[i]"] = A.rank.name + fdel(json_file) + WRITE_FILE(json_file, json_encode(file_data)) diff --git a/code/__HELPERS/type2type.dm b/code/__HELPERS/type2type.dm index 9778596d77..c06484f556 100644 --- a/code/__HELPERS/type2type.dm +++ b/code/__HELPERS/type2type.dm @@ -182,38 +182,40 @@ return ICON_OVERLAY //Converts a rights bitfield into a string -/proc/rights2text(rights, seperator="", list/adds, list/subs) +/proc/rights2text(rights, seperator="", prefix = "+") + seperator += prefix if(rights & R_BUILDMODE) - . += "[seperator]+BUILDMODE" + . += "[seperator]BUILDMODE" if(rights & R_ADMIN) - . += "[seperator]+ADMIN" + . += "[seperator]ADMIN" if(rights & R_BAN) - . += "[seperator]+BAN" + . += "[seperator]BAN" if(rights & R_FUN) - . += "[seperator]+FUN" + . += "[seperator]FUN" if(rights & R_SERVER) - . += "[seperator]+SERVER" + . += "[seperator]SERVER" if(rights & R_DEBUG) - . += "[seperator]+DEBUG" + . += "[seperator]DEBUG" if(rights & R_POSSESS) - . += "[seperator]+POSSESS" + . += "[seperator]POSSESS" if(rights & R_PERMISSIONS) - . += "[seperator]+PERMISSIONS" + . += "[seperator]PERMISSIONS" if(rights & R_STEALTH) - . += "[seperator]+STEALTH" + . += "[seperator]STEALTH" if(rights & R_POLL) - . += "[seperator]+POLL" + . += "[seperator]POLL" if(rights & R_VAREDIT) - . += "[seperator]+VAREDIT" + . += "[seperator]VAREDIT" if(rights & R_SOUNDS) - . += "[seperator]+SOUND" + . += "[seperator]SOUND" if(rights & R_SPAWN) - . += "[seperator]+SPAWN" - - for(var/verbpath in adds) - . += "[seperator]+[verbpath]" - for(var/verbpath in subs) - . += "[seperator]-[verbpath]" + . += "[seperator]SPAWN" + if(rights & R_AUTOLOGIN) + . += "[seperator]AUTOLOGIN" + if(rights & R_DBRANKS) + . += "[seperator]DBRANKS" + if(!.) + . = "NONE" return . /proc/ui_style2icon(ui_style) diff --git a/code/_globalvars/misc.dm b/code/_globalvars/misc.dm index 807ec5c5fe..7a5c95d690 100644 --- a/code/_globalvars/misc.dm +++ b/code/_globalvars/misc.dm @@ -22,5 +22,6 @@ GLOBAL_LIST_EMPTY(player_details) // ckey -> /datum/player_details GLOBAL_LIST_INIT(bitfields, list( "obj_flags" = list("EMAGGED" = EMAGGED, "IN_USE" = IN_USE, "CAN_BE_HIT" = CAN_BE_HIT, "BEING_SHOCKED" = BEING_SHOCKED, "DANGEROUS_POSSESSION" = DANGEROUS_POSSESSION, "ON_BLUEPRINTS" = ON_BLUEPRINTS, "UNIQUE_RENAME" = UNIQUE_RENAME), "datum_flags" = list("DF_USE_TAG" = DF_USE_TAG, "DF_VAR_EDITED" = DF_VAR_EDITED), - "item_flags" = list("BEING_REMOVED" = BEING_REMOVED, "IN_INVENTORY" = IN_INVENTORY, "FORCE_STRING_OVERRIDE" = FORCE_STRING_OVERRIDE, "NEEDS_PERMIT" = NEEDS_PERMIT) + "item_flags" = list("BEING_REMOVED" = BEING_REMOVED, "IN_INVENTORY" = IN_INVENTORY, "FORCE_STRING_OVERRIDE" = FORCE_STRING_OVERRIDE, "NEEDS_PERMIT" = NEEDS_PERMIT), + "admin_flags" = list("BUILDMODE" = R_BUILDMODE, "ADMIN" = R_ADMIN, "BAN" = R_BAN, "FUN" = R_FUN, "SERVER" = R_SERVER, "DEBUG" = R_DEBUG, "POSSESS" = R_POSSESS, "PERMISSIONS" = R_PERMISSIONS, "STEALTH" = R_STEALTH, "POLL" = R_POLL, "VAREDIT" = R_VAREDIT, "SOUNDS" = R_SOUNDS, "SPAWN" = R_SPAWN, "AUTOLOGIN" = R_AUTOLOGIN, "DBRANKS" = R_DBRANKS) ))