From 48403dcc8e6036bdd2ab73cbb2edd56d373c3f4f Mon Sep 17 00:00:00 2001 From: ZomgPonies Date: Thu, 16 Jan 2014 09:18:49 -0500 Subject: [PATCH] A lot of fixing up job preferences. --- code/game/jobs/job/civilian.dm | 2 +- code/game/jobs/job/security.dm | 2 +- code/game/jobs/job/supervisor.dm | 4 +- code/game/jobs/jobs.dm | 12 ++++-- code/modules/client/preferences.dm | 45 +++++++++++++++++++++ code/modules/client/preferences_savefile.dm | 9 +++++ 6 files changed, 66 insertions(+), 8 deletions(-) diff --git a/code/game/jobs/job/civilian.dm b/code/game/jobs/job/civilian.dm index 3c10fbce253..abb930c4163 100644 --- a/code/game/jobs/job/civilian.dm +++ b/code/game/jobs/job/civilian.dm @@ -381,7 +381,7 @@ /datum/job/barber title = "Barber" flag = BARBER - department_flag = CIVILIAN + department_flag = KARMA faction = "Station" total_positions = 1 spawn_positions = 1 diff --git a/code/game/jobs/job/security.dm b/code/game/jobs/job/security.dm index a62198aead2..d97f9fdc79f 100644 --- a/code/game/jobs/job/security.dm +++ b/code/game/jobs/job/security.dm @@ -171,7 +171,7 @@ /datum/job/customs title = "Customs Officer" flag = CUSTOMS - department_flag = ENGSEC + department_flag = KARMA faction = "Station" total_positions = 1 spawn_positions = 1 diff --git a/code/game/jobs/job/supervisor.dm b/code/game/jobs/job/supervisor.dm index 2399dc4aaba..362909a4713 100644 --- a/code/game/jobs/job/supervisor.dm +++ b/code/game/jobs/job/supervisor.dm @@ -98,7 +98,7 @@ /datum/job/nanotrasenrep title = "Nanotrasen Representative" flag = NANO - department_flag = CIVILIAN + department_flag = KARMA faction = "Station" total_positions = 1 spawn_positions = 1 @@ -144,7 +144,7 @@ /datum/job/blueshield title = "Blueshield" flag = BLUESHIELD - department_flag = CIVILIAN + department_flag = KARMA faction = "Station" total_positions = 1 spawn_positions = 1 diff --git a/code/game/jobs/jobs.dm b/code/game/jobs/jobs.dm index ba0568158c8..7a3cb68b3eb 100644 --- a/code/game/jobs/jobs.dm +++ b/code/game/jobs/jobs.dm @@ -44,10 +44,14 @@ var/const/CHAPLAIN =(1<<10) var/const/CLOWN =(1<<11) var/const/MIME =(1<<12) var/const/ASSISTANT =(1<<13) -var/const/NANO =(1<<14) -var/const/BLUESHIELD =(1<<15) -var/const/CUSTOMS =(1<<16) -var/const/BARBER =(1<<17) + + +var/const/KARMA =(1<<3) + +var/const/NANO =(1<<0) +var/const/BLUESHIELD =(1<<1) +var/const/CUSTOMS =(1<<2) +var/const/BARBER =(1<<3) var/list/assistant_occupations = list( diff --git a/code/modules/client/preferences.dm b/code/modules/client/preferences.dm index 0de42a51dd5..cc80d0aef50 100644 --- a/code/modules/client/preferences.dm +++ b/code/modules/client/preferences.dm @@ -90,6 +90,10 @@ datum/preferences var/job_engsec_med = 0 var/job_engsec_low = 0 + var/job_karma_high = 0 + var/job_karma_med = 0 + var/job_karma_low = 0 + //Keeps track of preferrence for not getting any wanted jobs var/alternate_option = 0 @@ -483,9 +487,11 @@ datum/preferences job_civilian_med |= job_civilian_high job_engsec_med |= job_engsec_high job_medsci_med |= job_medsci_high + job_karma_med |= job_karma_high job_civilian_high = 0 job_engsec_high = 0 job_medsci_high = 0 + job_karma_high = 0 if (job.department_flag == CIVILIAN) job_civilian_low &= ~job.flag @@ -529,6 +535,20 @@ datum/preferences job_medsci_low |= job.flag return 1 + else if (job.department_flag == KARMA) + job_karma_low &= ~job.flag + job_karma_med &= ~job.flag + job_karma_high &= ~job.flag + + switch(level) + if (1) + job_karma_high |= job.flag + if (2) + job_karma_med |= job.flag + if (3) + job_karma_low |= job.flag + + return 1 return 0 @@ -675,6 +695,10 @@ datum/preferences job_engsec_med = 0 job_engsec_low = 0 + job_karma_high = 0 + job_karma_med = 0 + job_karma_low = 0 + proc/GetJobDepartment(var/datum/job/job, var/level) if(!job || !level) return 0 @@ -703,6 +727,14 @@ datum/preferences return job_engsec_med if(3) return job_engsec_low + if(KARMA) + switch(level) + if(1) + return job_karma_high + if(2) + return job_karma_med + if(3) + return job_karma_low return 0 proc/SetJobDepartment(var/datum/job/job, var/level) @@ -712,14 +744,17 @@ datum/preferences job_civilian_high = 0 job_medsci_high = 0 job_engsec_high = 0 + job_karma_high = 0 return 1 if(2)//Set current highs to med, then reset them job_civilian_med |= job_civilian_high job_medsci_med |= job_medsci_high job_engsec_med |= job_engsec_high + job_karma_med |= job_karma_high job_civilian_high = 0 job_medsci_high = 0 job_engsec_high = 0 + job_karma_high = 0 switch(job.department_flag) if(CIVILIAN) @@ -752,6 +787,16 @@ datum/preferences job_engsec_low &= ~job.flag else job_engsec_low |= job.flag + if(KARMA) + switch(level) + if(2) + job_karma_high = job.flag + job_karma_med &= ~job.flag + if(3) + job_karma_med |= job.flag + job_karma_low &= ~job.flag + else + job_karma_low |= job.flag return 1 proc/process_link(mob/user, list/href_list) diff --git a/code/modules/client/preferences_savefile.dm b/code/modules/client/preferences_savefile.dm index 1f33848115e..4152a8f0bd6 100644 --- a/code/modules/client/preferences_savefile.dm +++ b/code/modules/client/preferences_savefile.dm @@ -132,6 +132,9 @@ S["job_engsec_high"] >> job_engsec_high S["job_engsec_med"] >> job_engsec_med S["job_engsec_low"] >> job_engsec_low + S["job_karma_high"] >> job_karma_high + S["job_karma_med"] >> job_karma_med + S["job_karma_low"] >> job_karma_low //Miscellaneous S["flavor_text"] >> flavor_text @@ -182,6 +185,9 @@ job_engsec_high = sanitize_integer(job_engsec_high, 0, 65535, initial(job_engsec_high)) job_engsec_med = sanitize_integer(job_engsec_med, 0, 65535, initial(job_engsec_med)) job_engsec_low = sanitize_integer(job_engsec_low, 0, 65535, initial(job_engsec_low)) + job_karma_high = sanitize_integer(job_karma_high, 0, 65535, initial(job_karma_high)) + job_karma_med = sanitize_integer(job_karma_med, 0, 65535, initial(job_karma_med)) + job_karma_low = sanitize_integer(job_karma_low, 0, 65535, initial(job_karma_low)) if(isnull(disabilities)) disabilities = 0 if(!player_alt_titles) player_alt_titles = new() @@ -358,6 +364,9 @@ S["job_engsec_high"] << job_engsec_high S["job_engsec_med"] << job_engsec_med S["job_engsec_low"] << job_engsec_low + S["job_karma_high"] << job_karma_high + S["job_karma_med"] << job_karma_med + S["job_karma_low"] << job_karma_low //Miscellaneous S["flavor_text"] << flavor_text