"
- var/job_count = 0
- for(var/datum/job/job in SSjob.occupations)
- if(job && IsJobUnavailable(job.title, TRUE) == JOB_AVAILABLE)
- job_count++;
- if (job_count > round(available_job_count / 2))
- dat += "
"
- var/position_class = "otherPosition"
- if (job.title in GLOB.command_positions)
- position_class = "commandPosition"
- dat += "
[job.title] ([job.current_positions])"
- if(!job_count) //if there's nowhere to go, overflow opens up.
for(var/datum/job/job in SSjob.occupations)
- if(job.title != SSjob.overflow_role)
+ if(job && IsJobUnavailable(job.title, TRUE) == JOB_AVAILABLE)
+ var/categorized = FALSE
+ for(var/jobcat in categorizedJobs)
+ var/list/jobs = categorizedJobs[jobcat]["jobs"]
+ if(job.title in categorizedJobs[jobcat]["titles"])
+ categorized = TRUE
+ if(jobcat == "Command")
+
+ if(job.title == "Captain") // Put captain at top of command jobs
+ jobs.Insert(1, job)
+ else
+ jobs += job
+ else // Put heads at top of non-command jobs
+ if(job.title in GLOB.command_positions)
+ jobs.Insert(1, job)
+ else
+ jobs += job
+ if(!categorized)
+ categorizedJobs["Miscellaneous"]["jobs"] += job
+
+
+ dat += "
| "
+ for(var/jobcat in categorizedJobs)
+ if(categorizedJobs[jobcat]["colBreak"])
+ dat += " | "
+ if(!length(categorizedJobs[jobcat]["jobs"]))
continue
- dat += "[job.title] ([job.current_positions]) "
- break
- for(var/spawner in GLOB.mob_spawners)
- job_count++
- if(job_count > round(available_job_count / 2))
- dat += "[spawner] (G) "
- dat += ""
+ var/color = categorizedJobs[jobcat]["color"]
+ dat += " "
+ dat += " |
"
+ dat += "