Preference logic tweaks.

Reduces copy-paste. Adds the ability to easily toggle settings.
No functional changes otherwise.
This commit is contained in:
PsiOmegaDelta
2016-03-31 16:31:24 -04:00
committed by Datraen
parent 41996815ae
commit f7bd00521b
2 changed files with 26 additions and 14 deletions
@@ -11,6 +11,13 @@ var/list/_client_preferences_by_type
_client_preferences += new client_type()
return _client_preferences
/proc/get_client_preference(var/datum/client_preference/preference)
if(istype(preference))
return preference
if(ispath(preference))
return get_client_preference_by_type(preference)
return get_client_preference_by_key(preference)
/proc/get_client_preference_by_key(var/preference)
if(!_client_preferences_by_key)
_client_preferences_by_key = list()
@@ -129,6 +136,7 @@ var/list/_client_preferences_by_type
********************/
/datum/client_preference/admin/may_toggle(var/mob/preference_mob)
return check_rights(R_ADMIN, 0, preference_mob)
/datum/client_preference/mod/may_toggle(var/mob/preference_mob)
return check_rights(R_MOD|R_ADMIN, 0, preference_mob)