From fe8d1b24af5604bc730c0a269e64986ff48d36c1 Mon Sep 17 00:00:00 2001 From: Yoshax Date: Sat, 6 Aug 2016 20:27:23 +0100 Subject: [PATCH] Ensures xeno loadout validation is done correctly --- code/game/jobs/job_controller.dm | 4 ++-- code/modules/client/preference_setup/loadout/loadout.dm | 8 +++++--- 2 files changed, 7 insertions(+), 5 deletions(-) diff --git a/code/game/jobs/job_controller.dm b/code/game/jobs/job_controller.dm index 766149d412..0eb2025450 100644 --- a/code/game/jobs/job_controller.dm +++ b/code/game/jobs/job_controller.dm @@ -342,9 +342,9 @@ var/global/datum/controller/occupations/job_master else permitted = 1 - //if(G.whitelisted && !is_alien_whitelisted(H, all_species[G.whitelisted])) + if(G.whitelisted && !is_alien_whitelisted(H, all_species[G.whitelisted])) - if(G.whitelisted && (G.whitelisted != H.species.name || !is_alien_whitelisted(H, G.whitelisted))) + //if(G.whitelisted && (G.whitelisted != H.species.name || !is_alien_whitelisted(H, G.whitelisted))) permitted = 0 if(!permitted) diff --git a/code/modules/client/preference_setup/loadout/loadout.dm b/code/modules/client/preference_setup/loadout/loadout.dm index 4bee6c6566..8f2d5af598 100644 --- a/code/modules/client/preference_setup/loadout/loadout.dm +++ b/code/modules/client/preference_setup/loadout/loadout.dm @@ -56,32 +56,34 @@ var/list/gear_datums = list() var/mob/preference_mob = preference_mob() for(var/gear_name in gear_datums) var/datum/gear/G = gear_datums[gear_name] - //if(G.whitelisted && !is_alien_whitelisted(preference_mob(), all_species[G.whitelisted])) - if(G.whitelisted && !is_alien_whitelisted(preference_mob, G.whitelisted)) + if(G.whitelisted && !is_alien_whitelisted(preference_mob, all_species[G.whitelisted])) continue if(max_cost && G.cost > max_cost) continue . += gear_name /datum/category_item/player_setup_item/loadout/sanitize_character() + var/mob/preference_mob = preference_mob() if(!islist(pref.gear)) pref.gear = list() for(var/gear_name in pref.gear) if(!(gear_name in gear_datums)) pref.gear -= gear_name - var/total_cost = 0 for(var/gear_name in pref.gear) if(!gear_datums[gear_name]) + preference_mob << "You cannot have more than one of the \the [gear_name]" pref.gear -= gear_name else if(!(gear_name in valid_gear_choices())) + preference_mob << "You cannot take \the [gear_name] as you are not whitelisted for the species." pref.gear -= gear_name else var/datum/gear/G = gear_datums[gear_name] if(total_cost + G.cost > MAX_GEAR_COST) pref.gear -= gear_name + preference_mob << "You cannot afford to take \the [gear_name]" else total_cost += G.cost