Merge pull request #14472 from silicons/sigh_615
makes the global antag disable pref more clear. forces savefile update to default all players to having the **disable** *disabled* (i love double negatives).
This commit is contained in:
@@ -41,11 +41,13 @@
|
||||
#define ROLE_GHOSTCAFE "ghostcafe"
|
||||
#define ROLE_MINOR_ANTAG "minorantag"
|
||||
#define ROLE_RESPAWN "respawnsystem"
|
||||
/// Not an actual antag. Lets players force all antags off.
|
||||
#define ROLE_NO_ANTAGONISM "NO_ANTAGS"
|
||||
//Missing assignment means it's not a gamemode specific role, IT'S NOT A BUG OR ERROR.
|
||||
//The gamemode specific ones are just so the gamemodes can query whether a player is old enough
|
||||
//(in game days played) to play that role
|
||||
GLOBAL_LIST_INIT(special_roles, list(
|
||||
ROLE_SYNDICATE,
|
||||
ROLE_NO_ANTAGONISM,
|
||||
ROLE_TRAITOR = /datum/game_mode/traitor,
|
||||
ROLE_BROTHER = /datum/game_mode/traitor/bros,
|
||||
ROLE_OPERATIVE = /datum/game_mode/nuclear,
|
||||
|
||||
@@ -420,7 +420,7 @@
|
||||
|
||||
for(var/mob/dead/new_player/player in players)
|
||||
if(player.client && player.ready == PLAYER_READY_TO_PLAY)
|
||||
if((role in player.client.prefs.be_special) && (ROLE_SYNDICATE in player.client.prefs.be_special))
|
||||
if((role in player.client.prefs.be_special) && !(ROLE_NO_ANTAGONISM in player.client.prefs.be_special))
|
||||
if(!jobban_isbanned(player, ROLE_SYNDICATE) && !QDELETED(player) && !jobban_isbanned(player, role) && !QDELETED(player)) //Nodrak/Carn: Antag Job-bans
|
||||
if(age_check(player.client)) //Must be older than the minimum age
|
||||
candidates += player.mind // Get a list of all the people who want to be the antagonist for this round
|
||||
|
||||
@@ -54,7 +54,7 @@ GLOBAL_LIST_EMPTY(preferences_datums)
|
||||
var/tip_delay = 500 //tip delay in milliseconds
|
||||
|
||||
//Antag preferences
|
||||
var/list/be_special = list() //Special role selection
|
||||
var/list/be_special = list() //Special role selection. ROLE_SYNDICATE being missing means they will never be antag!
|
||||
var/tmp/old_be_special = 0 //Bitflag version of be_special, used to update old savefiles and nothing more
|
||||
//If it's 0, that's good, if it's anything but 0, the owner of this prefs file's antag choices were,
|
||||
//autocorrected this round, not that you'd need to check that.
|
||||
@@ -851,6 +851,9 @@ GLOBAL_LIST_EMPTY(preferences_datums)
|
||||
|
||||
|
||||
for (var/i in GLOB.special_roles)
|
||||
if(i == ROLE_NO_ANTAGONISM)
|
||||
dat += "<b>DISABLE ALL ANTAGONISM</b> <a href='?_src_=prefs;preference=be_special;be_special_type=[i]'>[(i in be_special) ? "YES" : "NO"]</a><br>"
|
||||
continue
|
||||
if(jobban_isbanned(user, i))
|
||||
dat += "<b>Be [capitalize(i)]:</b> <a href='?_src_=prefs;jobbancheck=[i]'>BANNED</a><br>"
|
||||
else
|
||||
@@ -863,7 +866,7 @@ GLOBAL_LIST_EMPTY(preferences_datums)
|
||||
if(days_remaining)
|
||||
dat += "<b>Be [capitalize(i)]:</b> <font color=red> \[IN [days_remaining] DAYS]</font><br>"
|
||||
else
|
||||
dat += "<b>Be [i == ROLE_SYNDICATE ? "Antag": capitalize(i)]:</b> <a href='?_src_=prefs;preference=be_special;be_special_type=[i]'>[(i in be_special) ? "Enabled" : "Disabled"]</a><br>"
|
||||
dat += "<b>Be [capitalize(i)]:</b> <a href='?_src_=prefs;preference=be_special;be_special_type=[i]'>[(i in be_special) ? "Enabled" : "Disabled"]</a><br>"
|
||||
dat += "<b>Midround Antagonist:</b> <a href='?_src_=prefs;preference=allow_midround_antag'>[(toggles & MIDROUND_ANTAG) ? "Enabled" : "Disabled"]</a><br>"
|
||||
|
||||
dat += "<br>"
|
||||
|
||||
@@ -5,7 +5,7 @@
|
||||
// You do not need to raise this if you are adding new values that have sane defaults.
|
||||
// Only raise this value when changing the meaning/format/name/layout of an existing value
|
||||
// where you would want the updater procs below to run
|
||||
#define SAVEFILE_VERSION_MAX 48
|
||||
#define SAVEFILE_VERSION_MAX 50
|
||||
|
||||
/*
|
||||
SAVEFILE UPDATING/VERSIONING - 'Simplified', or rather, more coder-friendly ~Carn
|
||||
@@ -288,6 +288,13 @@ SAVEFILE UPDATING/VERSIONING - 'Simplified', or rather, more coder-friendly ~Car
|
||||
if(current_version < 48) //unlockable loadout items but we need to clear bad data from a mistake
|
||||
S["unlockable_loadout"] = list()
|
||||
|
||||
if(current_version < 50)
|
||||
var/list/L
|
||||
S["be_special"] >> L
|
||||
if(islist(L))
|
||||
L -= ROLE_SYNDICATE
|
||||
S["be_special"] << L
|
||||
|
||||
/datum/preferences/proc/load_path(ckey,filename="preferences.sav")
|
||||
if(!ckey)
|
||||
return
|
||||
|
||||
Reference in New Issue
Block a user