diff --git a/code/game/gamemodes/gameticker.dm b/code/game/gamemodes/gameticker.dm index 305687656be..a06678a92da 100644 --- a/code/game/gamemodes/gameticker.dm +++ b/code/game/gamemodes/gameticker.dm @@ -264,6 +264,8 @@ var/global/datum/controller/gameticker/ticker if(player.mind.assigned_role=="AI") player.close_spawn_windows() player.AIize() + else if(!player.mind.assigned_role) + continue else player.create_character() del(player) diff --git a/code/game/jobs/job_controller.dm b/code/game/jobs/job_controller.dm index 1dea42fe849..4585837f802 100644 --- a/code/game/jobs/job_controller.dm +++ b/code/game/jobs/job_controller.dm @@ -1,5 +1,9 @@ var/global/datum/controller/occupations/job_master +#define GET_RANDOM_JOB 0 +#define BE_ASSISTANT 1 +#define RETURN_TO_LOBBY 2 + /datum/controller/occupations //List of all jobs var/list/occupations = list() @@ -270,9 +274,8 @@ var/global/datum/controller/occupations/job_master // Hand out random jobs to the people who didn't get any in the last check // Also makes sure that they got their preference correct for(var/mob/new_player/player in unassigned) - if(player.client.prefs.userandomjob) + if(player.client.prefs.alternate_option == GET_RANDOM_JOB) GiveRandomJob(player) - /* Old job system for(var/level = 1 to 3) @@ -297,8 +300,14 @@ var/global/datum/controller/occupations/job_master // For those who wanted to be assistant if their preferences were filled, here you go. for(var/mob/new_player/player in unassigned) - Debug("AC2 Assistant located, Player: [player]") - AssignRole(player, "Assistant") + if(player.client.prefs.alternate_option == BE_ASSISTANT) + Debug("AC2 Assistant located, Player: [player]") + AssignRole(player, "Assistant") + + //For ones returning to lobby + for(var/mob/new_player/player in unassigned) + if(player.client.prefs.alternate_option == RETURN_TO_LOBBY) + unassigned -= player return 1 diff --git a/code/modules/client/preferences.dm b/code/modules/client/preferences.dm index 4799dcffbc4..20a45e3da7e 100644 --- a/code/modules/client/preferences.dm +++ b/code/modules/client/preferences.dm @@ -19,6 +19,10 @@ var/global/list/special_roles = list( //keep synced with the defines BE_* in set var/const/MAX_SAVE_SLOTS = 10 +//used for alternate_option +#define GET_RANDOM_JOB 0 +#define BE_ASSISTANT 1 +#define RETURN_TO_LOBBY 2 datum/preferences //doohickeys for savefiles @@ -32,7 +36,6 @@ datum/preferences var/last_ip var/last_id - //game-preferences var/lastchangelog = "" //Saved changlog filesize to detect if there was a change var/ooccolor = "#b82e00" @@ -79,9 +82,8 @@ datum/preferences var/job_engsec_med = 0 var/job_engsec_low = 0 - // Want randomjob if preferences already filled - Donkie - var/userandomjob = 1 //defaults to 1 for fewer assistants - + //Keeps track of preferrence for not getting any wanted jobs + var/alternate_option = 0 var/used_skillpoints = 0 var/skill_specialization = null @@ -441,7 +443,15 @@ datum/preferences HTML += "" - HTML += "