From 705a264dcfee92b075d376eaaab9c28080b8b374 Mon Sep 17 00:00:00 2001 From: tkdrg Date: Sat, 15 Nov 2014 18:24:59 -0300 Subject: [PATCH 1/6] Makes data huds passive. --- code/__DEFINES/misc.dm | 9 +- code/_globalvars/lists/objects.dm | 2 - code/datums/diseases/_MobProcs.dm | 7 +- code/datums/diseases/_disease.dm | 9 +- code/datums/diseases/advance/advance.dm | 2 +- code/game/data_huds.dm | 248 ++++++++++-------- .../gamemodes/changeling/powers/revive.dm | 6 +- code/game/jobs/job/captain.dm | 1 + code/game/jobs/job/security.dm | 4 + code/game/machinery/computer/security.dm | 3 +- code/game/machinery/doors/brigdoors.dm | 9 +- code/game/mecha/medical/odysseus.dm | 93 +------ code/game/objects/items.dm | 3 - .../objects/items/weapons/implants/implant.dm | 5 +- code/modules/clothing/clothing.dm | 18 +- code/modules/clothing/glasses/hud.dm | 27 +- code/modules/events/disease_outbreak.dm | 4 +- .../events/spontaneous_appendicitis.dm | 4 +- code/modules/mining/laborcamp/laborstacker.dm | 9 +- .../carbon/alien/special/alien_embryo.dm | 11 +- code/modules/mob/living/carbon/human/death.dm | 4 +- code/modules/mob/living/carbon/human/human.dm | 12 +- .../mob/living/carbon/human/human_damage.dm | 2 + .../mob/living/carbon/human/inventory.dm | 11 +- code/modules/mob/living/carbon/human/life.dm | 3 - .../mob/living/carbon/human/species.dm | 3 - code/modules/mob/living/carbon/slime/hud.dm | 2 - code/modules/mob/living/carbon/slime/life.dm | 2 - code/modules/mob/living/silicon/ai/ai.dm | 1 + code/modules/mob/living/silicon/ai/life.dm | 7 +- code/modules/mob/living/silicon/pai/life.dm | 6 - .../mob/living/silicon/pai/software.dm | 12 +- code/modules/mob/living/silicon/robot/life.dm | 7 +- code/modules/mob/living/silicon/silicon.dm | 8 +- code/modules/mob/mob_helpers.dm | 8 - code/modules/mob/transform_procs.dm | 2 + code/modules/surgery/implant_removal.dm | 5 +- tgstation.dme | 1 - 38 files changed, 277 insertions(+), 293 deletions(-) delete mode 100644 code/modules/mob/living/carbon/slime/hud.dm diff --git a/code/__DEFINES/misc.dm b/code/__DEFINES/misc.dm index 2991fe66569..fd18334c90f 100644 --- a/code/__DEFINES/misc.dm +++ b/code/__DEFINES/misc.dm @@ -50,4 +50,11 @@ #define STAGE_TWO 3 #define STAGE_THREE 5 #define STAGE_FOUR 7 -#define STAGE_FIVE 9 \ No newline at end of file +#define STAGE_FIVE 9 + +//data HUD (medhud, sechud) defines +#define DATA_HUD_MEDICAL 1 +#define DATA_HUD_SECURITY 2 + +#define DATA_HUD_BASIC 1 +#define DATA_HUD_ADVANCED 2 diff --git a/code/_globalvars/lists/objects.dm b/code/_globalvars/lists/objects.dm index e50f6555116..f1a89798a86 100644 --- a/code/_globalvars/lists/objects.dm +++ b/code/_globalvars/lists/objects.dm @@ -14,5 +14,3 @@ var/global/list/chemical_reactions_list //list of all /datum/chemical_reactio var/global/list/chemical_reagents_list //list of all /datum/reagent datums indexed by reagent id. Used by chemistry stuff var/global/list/surgeries_list = list() //list of all surgeries by name, associated with their path. var/global/list/table_recipes = list() //list of all table craft recipes -var/global/list/med_hud_users = list() //list of all entities using a medical HUD. -var/global/list/sec_hud_users = list() //list of all entities using a security HUD. \ No newline at end of file diff --git a/code/datums/diseases/_MobProcs.dm b/code/datums/diseases/_MobProcs.dm index e342a65d324..7acf190187f 100644 --- a/code/datums/diseases/_MobProcs.dm +++ b/code/datums/diseases/_MobProcs.dm @@ -37,8 +37,11 @@ DD.affected_mob = src DD.holder = src if(DD.disease_flags & CAN_CARRY && prob(5)) - DD.carrier++ + DD.carrier = 1 +/mob/living/carbon/human/AddDisease(var/datum/disease/D) + ..() + med_hud_set_status() /mob/living/carbon/ContractDisease(var/datum/disease/D) if(!CanContractDisease(D)) @@ -122,4 +125,4 @@ /mob/proc/ForceContractDisease(var/datum/disease/D) if(!CanContractDisease(D)) return 0 - AddDisease(D) \ No newline at end of file + AddDisease(D) diff --git a/code/datums/diseases/_disease.dm b/code/datums/diseases/_disease.dm index f9a6a6ef648..0ca334161ae 100644 --- a/code/datums/diseases/_disease.dm +++ b/code/datums/diseases/_disease.dm @@ -153,7 +153,7 @@ var/list/diseases = typesof(/datum/disease) - /datum/disease if(disease_flags & CAN_RESIST) if(!(type in affected_mob.resistances)) affected_mob.resistances += type - affected_mob.viruses -= src + remove_virus() del(src) @@ -193,3 +193,10 @@ var/list/diseases = typesof(/datum/disease) - /datum/disease if(spread_flags & CONTACT_FEET || spread_flags & CONTACT_HANDS || spread_flags & CONTACT_GENERAL) return 1 return 0 + +//don't use this proc directly. this should only ever be called by cure() +/datum/disease/proc/remove_virus() + affected_mob.viruses -= src //remove the datum from the list + if(istype(affected_mob, /mob/living/carbon/human)) + var/mob/living/carbon/human/H = affected_mob + H.med_hud_set_status() diff --git a/code/datums/diseases/advance/advance.dm b/code/datums/diseases/advance/advance.dm index d3b859ba89b..714844f30eb 100644 --- a/code/datums/diseases/advance/advance.dm +++ b/code/datums/diseases/advance/advance.dm @@ -106,7 +106,7 @@ var/list/advance_cures = list( var/id = "[GetDiseaseID()]" if(resistance && !(id in affected_mob.resistances)) affected_mob.resistances[id] = id - affected_mob.viruses -= src //remove the datum from the list + remove_virus() del(src) //delete the datum to stop it processing // Returns the advance disease with a different reference memory. diff --git a/code/game/data_huds.dm b/code/game/data_huds.dm index 603170f6dd0..d1296b1d3a7 100644 --- a/code/game/data_huds.dm +++ b/code/game/data_huds.dm @@ -1,21 +1,91 @@ -/* Using the HUD procs is simple. Call these procs in the life.dm of the intended mob. -Use the regular_hud_updates() proc before process_med_hud(mob) or process_sec_hud(mob) so -the HUD updates properly! */ +/* + * Data HUDs are now passive in order to reduce lag. + * Add then to a mob using add_data_hud. + * Update them when needed with the appropriate proc. (see below) + */ -//Deletes the current HUD images so they can be refreshed with new ones. -mob/proc/regular_hud_updates() //Used in the life.dm of mobs that can use HUDs. +var/list/basic_med_hud_users = list() //yes, this is, in fact, needed + +/* + * GENERIC HUD PROCS + */ + +//Deletes all current HUD images +/mob/proc/reset_all_data_huds() if(client) for(var/image/hud in client.images) - if(copytext(hud.icon_state,1,4) == "hud") + if(findtext(hud.icon_state,"hud",1,4)) client.images -= hud - med_hud_users -= src - sec_hud_users -= src + basic_med_hud_users -= src + +//Adds one set of data hud images +/mob/proc/add_data_hud(var/hud_type, var/hud_mode) + if(!client) + return + + for(var/mob/living/carbon/human/H in mob_list) + switch(hud_type) + if(DATA_HUD_MEDICAL) + if(hud_mode == DATA_HUD_BASIC) + basic_med_hud_users += src + add_med_hud(hud_mode,H) + if(DATA_HUD_SECURITY) + add_sec_hud(hud_mode,H) -//Medical HUD procs +/*********************************************** + Medical HUD! Basic mode needs suit sensors on. +************************************************/ -proc/RoundHealth(health) +/* + * THESE SHOULD BE CALLED BY THE MOB SEEING THE HUD + */ +/mob/proc/add_med_hud(var/mode, var/mob/living/carbon/human/patient) + if(mode == DATA_HUD_BASIC) //Used for the AI's MedHUD, only works if the patient has activated suit sensors. + if(!patient.w_uniform) return + var/obj/item/clothing/under/U = patient.w_uniform + if(U.sensor_mode <= 2) return + add_single_med_hud(patient) + +//Adds a single mob's med HUD to view +/mob/proc/add_single_med_hud(var/mob/living/carbon/human/H) + if(client) + client.images += H.hud_list[HEALTH_HUD] + client.images += H.hud_list[STATUS_HUD] + +//Deletes a single mob's med HUD from view +/mob/proc/remove_single_med_hud(var/mob/living/carbon/human/H) + if(client) + client.images -= H.hud_list[HEALTH_HUD] + client.images -= H.hud_list[STATUS_HUD] + + +/* + * THESE SHOULD BE CALLED BY THE MOB SHOWING THE HUD + */ + +//called when a human changes suit sensors +/mob/living/carbon/human/proc/update_suit_sensors(var/obj/item/clothing/under/w_uniform) + var/sensor_level = 0 + if(w_uniform) sensor_level = w_uniform.sensor_mode + update_med_hud_suit_sensors(sensor_level) + ..() + +//called when a human changes suit sensors +/mob/living/carbon/human/proc/update_med_hud_suit_sensors(sensor_level) + for(var/mob/M in basic_med_hud_users) + sensor_level > 2 ? M.add_single_med_hud(src) : M.remove_single_med_hud(src) + +//called when a human changes virus +/mob/living/carbon/human/proc/check_virus() + for(var/datum/disease/D in viruses) + if((!(D.visibility_flags & HIDDEN_SCANNER)) && (D.severity != NONTHREAT)) + return 1 + return 0 + +//helper for getting the appropriate health status +/proc/RoundHealth(health) switch(health) if(100 to INFINITY) return "health100" @@ -37,146 +107,94 @@ proc/RoundHealth(health) return "health-100" return "0" -/*Called by the Life() proc of the mob using it, usually. Items can call it as well. -Called with this syntax: (The user mob, the type of hud in use, the advanced or basic version of the hud,eye object in the case of an AI) */ - -proc/process_data_hud(var/mob/M, var/hud_type, var/hud_mode, var/mob/eye) - #define DATA_HUD_MEDICAL 1 - #define DATA_HUD_SECURITY 2 - - #define DATA_HUD_BASIC 1 - #define DATA_HUD_ADVANCED 2 - - if(!M) - return - if(!M.client) - return - - var/turf/T - if(eye) - T = get_turf(eye) - else - T = get_turf(M) - - - for(var/mob/living/carbon/human/H in mob_list) - if(get_dist(H, T) > M.client.view) //Ignores any humans outside of the user's view distance. - continue - - switch(hud_type) - if(DATA_HUD_MEDICAL) - med_hud_users |= M - process_med_hud(M,hud_mode,T,H) - - if(DATA_HUD_SECURITY) - sec_hud_users |= M //Used for Security HUD alerts. - process_sec_hud(M,hud_mode,T,H) - -/*********************************************** -Medical HUD outputs! Advanced mode ignores suit sensors. -************************************************/ -proc/process_med_hud(var/mob/M, var/mode, var/turf/T, var/mob/living/carbon/human/patient) - - var/client/C = M.client - - if(mode == DATA_HUD_BASIC && !med_hud_suit_sensors(patient)) //Used for the AI's MedHUD, only works if the patient has activated suit sensors. - return - - - var/foundVirus = med_hud_find_virus(patient) //Detects non-hidden diseases in a patient, returns as a binary value. - - C.images += med_hud_get_health(patient) //Generates a patient's health bar. - C.images += med_hud_get_status(patient, foundVirus) //Determines the type of status icon to show. - - -proc/med_hud_suit_sensors(var/mob/living/carbon/human/patient) - if(istype(patient.w_uniform, /obj/item/clothing/under)) - var/obj/item/clothing/under/U = patient.w_uniform - if(U.sensor_mode > 2) - return 1 - else - return 0 - -proc/med_hud_find_virus(var/mob/living/carbon/human/patient) - for(var/datum/disease/D in patient.viruses) - if(!(D.visibility_flags & HIDDEN_SCANNER)) - if(D.severity != NONTHREAT) - return 1 - -proc/med_hud_get_health(var/mob/living/carbon/human/patient) - var/image/holder = patient.hud_list[HEALTH_HUD] - if(patient.stat == 2) +//called when a human changes health +/mob/living/carbon/human/proc/med_hud_set_health() + var/image/holder = hud_list[HEALTH_HUD] + if(stat == 2) holder.icon_state = "hudhealth-100" else - holder.icon_state = "hud[RoundHealth(patient.health)]" - return holder + holder.icon_state = "hud[RoundHealth(health)]" -proc/med_hud_get_status(var/mob/living/carbon/human/patient, var/foundVirus) - var/image/holder = patient.hud_list[STATUS_HUD] - if(patient.stat == 2) +//called when a human changes stat, virus or XENO_HOST +/mob/living/carbon/human/proc/med_hud_set_status() + var/image/holder = hud_list[STATUS_HUD] + if(stat == 2) holder.icon_state = "huddead" - else if(patient.status_flags & XENO_HOST) + else if(status_flags & XENO_HOST) holder.icon_state = "hudxeno" - else if(foundVirus) + else if(check_virus()) holder.icon_state = "hudill" else holder.icon_state = "hudhealthy" - return holder /*********************************************** - Security HUDs. - Pass a value for the second argument to enable implant viewing or other special features. + Security HUDs! Basic mode shows only the job. ************************************************/ -proc/process_sec_hud(var/mob/M, var/mode, var/turf/T, var/mob/living/carbon/human/perp) - var/client/C = M.client +/* + * THESE SHOULD BE CALLED BY THE MOB SEEING THE HUD + */ - sec_hud_get_ID(C, perp) //Provides the perp's job icon. +/mob/proc/add_sec_hud(var/mode, var/mob/living/carbon/human/perp) + add_single_sec_hud_basic(perp) - if(mode == DATA_HUD_ADVANCED) //If not set to "DATA_HUD_ADVANCED, the Sec HUD will only display the job. - sec_hud_get_implants(C, perp) //Returns the perp's implants, if any. - sec_hud_get_security_status(C, perp) //Gives the perp's arrest record, if there is one. + if(mode == DATA_HUD_ADVANCED) //If not set to DATA_HUD_ADVANCED, the Sec HUD will only display the job. + add_single_sec_hud_advanced(perp) +//Adds a single mob's basic sec HUD to view +/mob/proc/add_single_sec_hud_basic(var/mob/living/carbon/human/H) + if(client) + client.images += H.hud_list[ID_HUD] -proc/sec_hud_get_ID(var/client/C, var/mob/living/carbon/human/perp) - var/image/holder - holder = perp.hud_list[ID_HUD] +//Adds a single mob's advanced sec HUD to view +/mob/proc/add_single_sec_hud_advanced(var/mob/living/carbon/human/H) + if(client) + client.images += H.hud_list[IMPTRACK_HUD] + client.images += H.hud_list[IMPLOYAL_HUD] + client.images += H.hud_list[IMPCHEM_HUD] + client.images += H.hud_list[WANTED_HUD] + +/* + * THESE SHOULD BE CALLED BY THE MOB SHOWING THE HUD + */ + +//These should only be called when necessary in order to reduce lag +/mob/living/carbon/human/proc/sec_hud_set_ID() + var/image/holder = hud_list[ID_HUD] holder.icon_state = "hudno_id" - if(perp.wear_id) - holder.icon_state = "hud[ckey(perp.wear_id.GetJobName())]" - C.images += holder + if(wear_id) + holder.icon_state = "hud[ckey(wear_id.GetJobName())]" -proc/sec_hud_get_implants(var/client/C, var/mob/living/carbon/human/perp) +/mob/living/carbon/human/proc/sec_hud_set_implants() var/image/holder - for(var/obj/item/weapon/implant/I in perp) + for(var/I in list(IMPTRACK_HUD, IMPLOYAL_HUD, IMPCHEM_HUD)) + holder = hud_list[I] + holder.icon_state = null + for(var/obj/item/weapon/implant/I in src) if(I.implanted) if(istype(I,/obj/item/weapon/implant/tracking)) - holder = perp.hud_list[IMPTRACK_HUD] + holder = hud_list[IMPTRACK_HUD] holder.icon_state = "hud_imp_tracking" else if(istype(I,/obj/item/weapon/implant/loyalty)) - holder = perp.hud_list[IMPLOYAL_HUD] + holder = hud_list[IMPLOYAL_HUD] holder.icon_state = "hud_imp_loyal" else if(istype(I,/obj/item/weapon/implant/chem)) - holder = perp.hud_list[IMPCHEM_HUD] + holder = hud_list[IMPCHEM_HUD] holder.icon_state = "hud_imp_chem" else continue - C.images += holder - break -proc/sec_hud_get_security_status(var/client/C, var/mob/living/carbon/human/perp) +/mob/living/carbon/human/proc/sec_hud_set_security_status() var/image/holder - var/perpname = perp.get_face_name(perp.get_id_name("")) + var/perpname = get_face_name(get_id_name("")) if(perpname) var/datum/data/record/R = find_record("name", perpname, data_core.security) if(R) - holder = perp.hud_list[WANTED_HUD] + holder = hud_list[WANTED_HUD] switch(R.fields["criminal"]) if("*Arrest*") holder.icon_state = "hudwanted" if("Incarcerated") holder.icon_state = "hudincarcerated" if("Parolled") holder.icon_state = "hudparolled" - if("Discharged") holder.icon_state = "huddischarged" - else - return - C.images += holder \ No newline at end of file + if("Discharged") holder.icon_state = "huddischarged" + else holder.icon_state = null diff --git a/code/game/gamemodes/changeling/powers/revive.dm b/code/game/gamemodes/changeling/powers/revive.dm index 36842d319c5..71aab2d901d 100644 --- a/code/game/gamemodes/changeling/powers/revive.dm +++ b/code/game/gamemodes/changeling/powers/revive.dm @@ -25,5 +25,9 @@ user.status_flags &= ~(FAKEDEATH) user.update_canmove() user.mind.changeling.purchasedpowers -= src + if(istype(user, /mob/living/carbon/human)) + var/mob/living/carbon/human/H = user + H.med_hud_set_status() + H.med_hud_set_health() feedback_add_details("changeling_powers","CR") - return 1 \ No newline at end of file + return 1 diff --git a/code/game/jobs/job/captain.dm b/code/game/jobs/job/captain.dm index 84ab61c9e0c..360d10cd342 100644 --- a/code/game/jobs/job/captain.dm +++ b/code/game/jobs/job/captain.dm @@ -43,6 +43,7 @@ Captain var/obj/item/weapon/implant/loyalty/L = new/obj/item/weapon/implant/loyalty(H) L.imp_in = H L.implanted = 1 + H.sec_hud_set_implants() minor_announce("Captain [H.real_name] on deck!") diff --git a/code/game/jobs/job/security.dm b/code/game/jobs/job/security.dm index 3636f968e3e..e28532f1d85 100644 --- a/code/game/jobs/job/security.dm +++ b/code/game/jobs/job/security.dm @@ -53,6 +53,7 @@ Head of Security var/obj/item/weapon/implant/loyalty/L = new/obj/item/weapon/implant/loyalty(H) L.imp_in = H L.implanted = 1 + H.sec_hud_set_implants() /* Warden @@ -94,6 +95,7 @@ Warden var/obj/item/weapon/implant/loyalty/L = new/obj/item/weapon/implant/loyalty(H) L.imp_in = H L.implanted = 1 + H.sec_hud_set_implants() /datum/job/warden/get_access() var/list/L = list() @@ -143,6 +145,7 @@ Detective var/obj/item/weapon/implant/loyalty/L = new/obj/item/weapon/implant/loyalty(H) L.imp_in = H L.implanted = 1 + H.sec_hud_set_implants() /* Security Officer @@ -187,6 +190,7 @@ Security Officer var/obj/item/weapon/implant/loyalty/L = new/obj/item/weapon/implant/loyalty(H) L.imp_in = H L.implanted = 1 + H.sec_hud_set_implants() /datum/job/officer/get_access() var/list/L = list() diff --git a/code/game/machinery/computer/security.dm b/code/game/machinery/computer/security.dm index 3372945212b..5fe0b91cc05 100644 --- a/code/game/machinery/computer/security.dm +++ b/code/game/machinery/computer/security.dm @@ -628,7 +628,8 @@ What a mess.*/ if("released") active2.fields["criminal"] = "Discharged" investigate_log("[active1.fields["name"]] has been set from [old_field] to [active2.fields["criminal"]] by [usr.name] ([usr.key]).", "records") - + for(var/mob/living/carbon/human/H in mob_list) //thanks for forcing me to do this, whoever wrote this shitty records system + H.sec_hud_set_security_status() if ("Delete Record (Security) Execute") investigate_log("[usr.name] ([usr.key]) has deleted the security records for [active1.fields["name"]].", "records") if (active2) diff --git a/code/game/machinery/doors/brigdoors.dm b/code/game/machinery/doors/brigdoors.dm index 8061ba7f4d2..f3bee16d85f 100644 --- a/code/game/machinery/doors/brigdoors.dm +++ b/code/game/machinery/doors/brigdoors.dm @@ -24,9 +24,10 @@ var/id = null // id of door it controls. var/releasetime = 0 // when world.time reaches it - release the prisoneer var/timelength = 0 // the length of time this door will be set for - var/timing = 1 // boolean, true/1 timer is on, false/0 means it's not timing + var/timing = 0 // boolean, true/1 timer is on, false/0 means it's not timing var/picture_state // icon_state of alert picture, if not displaying text/numbers var/list/obj/machinery/targets = list() + var/obj/item/device/radio/Radio //needed to send messages to sec radio maptext_height = 26 maptext_width = 32 @@ -34,6 +35,9 @@ /obj/machinery/door_timer/New() ..() + Radio = new/obj/item/device/radio(src) + Radio.listening = 0 + pixel_x = ((src.dir & 3)? (0) : (src.dir == 4 ? 32 : -32)) pixel_y = ((src.dir & 3)? (src.dir ==1 ? 24 : -32) : (0)) @@ -64,7 +68,8 @@ if(stat & (NOPOWER|BROKEN)) return if(timing) if(world.time > src.releasetime) - broadcast_hud_message("[src]'s timer has expired. Releasing prisoner.", src) + Radio.set_frequency(SEC_FREQ) + Radio.talk_into(src, "Timer has expired. Releasing prisoner.", SEC_FREQ) src.timer_end() // open doors, reset timer, clear status screen timing = 0 timeset(0) diff --git a/code/game/mecha/medical/odysseus.dm b/code/game/mecha/medical/odysseus.dm index 795ff390d64..fe4b1eaf95f 100644 --- a/code/game/mecha/medical/odysseus.dm +++ b/code/game/mecha/medical/odysseus.dm @@ -9,102 +9,23 @@ internal_damage_threshold = 35 deflect_chance = 15 step_energy_drain = 6 - var/obj/item/clothing/glasses/hud/health/mech/hud - -/obj/mecha/medical/odysseus/New() - ..() - hud = new /obj/item/clothing/glasses/hud/health/mech(src) - return + var/builtin_hud_user = 0 /obj/mecha/medical/odysseus/moved_inside(var/mob/living/carbon/human/H as mob) if(..()) - if(H.glasses) - occupant_message("[H.glasses] prevent you from using [src] [hud]") + if(H.glasses && istype(H.glasses, /obj/item/clothing/glasses/hud)) + occupant_message("Your [H.glasses] prevent you from using the built-in medical hud.") else - H.glasses = hud + H.add_data_hud(DATA_HUD_MEDICAL, DATA_HUD_ADVANCED) + builtin_hud_user = 1 return 1 else return 0 /obj/mecha/medical/odysseus/go_out() - if(ishuman(occupant)) + if(ishuman(occupant) && builtin_hud_user) var/mob/living/carbon/human/H = occupant - if(H.glasses == hud) - H.glasses = null + H.reset_all_data_huds() ..() return -/* -/obj/mecha/medical/odysseus/verb/set_perspective() - set name = "Set client perspective." - set category = "Exosuit Interface" - set src = usr.loc - var/perspective = input("Select a perspective type.", - "Client perspective", - occupant.client.perspective) in list(MOB_PERSPECTIVE,EYE_PERSPECTIVE) - world << "[perspective]" - occupant.client.perspective = perspective - return -/obj/mecha/medical/odysseus/verb/toggle_eye() - set name = "Toggle eye." - set category = "Exosuit Interface" - set src = usr.loc - if(occupant.client.eye == occupant) - occupant.client.eye = src - else - occupant.client.eye = occupant - world << "[occupant.client.eye]" - return -*/ - -//TODO - Check documentation for client.eye and client.perspective... -/obj/item/clothing/glasses/hud/health/mech - name = "integrated medical Hud" - - -/obj/item/clothing/glasses/hud/health/mech/process_hud(var/mob/M) -/* - world<< "view(M)" - for(var/mob/mob in view(M)) - world << "[mob]" - world<< "view(M.client)" - for(var/mob/mob in view(M.client)) - world << "[mob]" - world<< "view(M.loc)" - for(var/mob/mob in view(M.loc)) - world << "[mob]" -*/ - - if(!M || M.stat || !(M in view(M))) return - if(!M.client) return - var/client/C = M.client - var/image/holder - for(var/mob/living/carbon/human/patient in view(M.loc)) - if(M.see_invisible < patient.invisibility) - continue - var/foundVirus = 0 - for(var/datum/disease/D in patient.viruses) - if(!(D.visibility_flags & HIDDEN_SCANNER)) - if(D.severity != NONTHREAT) - foundVirus++ - //if(patient.virus2) - // foundVirus++ - - holder = patient.hud_list[HEALTH_HUD] - if(patient.stat == 2) - holder.icon_state = "hudhealth-100" - C.images += holder - else - holder.icon_state = "hud[RoundHealth(patient.health)]" - C.images += holder - - holder = patient.hud_list[STATUS_HUD] - if(patient.stat == 2) - holder.icon_state = "huddead" - else if(patient.status_flags & XENO_HOST) - holder.icon_state = "hudxeno" - else if(foundVirus) - holder.icon_state = "hudill" - else - holder.icon_state = "hudhealthy" - C.images += holder diff --git a/code/game/objects/items.dm b/code/game/objects/items.dm index be405a167fb..c3ad66f6a1f 100644 --- a/code/game/objects/items.dm +++ b/code/game/objects/items.dm @@ -221,9 +221,6 @@ /obj/item/proc/talk_into(mob/M as mob, text) return -/obj/item/proc/moved(mob/user as mob, old_loc as turf) - return - /obj/item/proc/dropped(mob/user as mob) ..() diff --git a/code/game/objects/items/weapons/implants/implant.dm b/code/game/objects/items/weapons/implants/implant.dm index 6932525dd09..af34671bef5 100644 --- a/code/game/objects/items/weapons/implants/implant.dm +++ b/code/game/objects/items/weapons/implants/implant.dm @@ -27,6 +27,9 @@ /obj/item/weapon/implant/proc/implanted(var/mob/source) if(activated) action_button_name = "Activate [src.name]" + if(istype(source, /mob/living/carbon/human)) + var/mob/living/carbon/human/H = source + H.sec_hud_set_implants() return 1 @@ -205,4 +208,4 @@ /obj/item/weapon/implant/emp/activate() if (src.uses < 1) return 0 src.uses-- - empulse(imp_in, 3, 5) \ No newline at end of file + empulse(imp_in, 3, 5) diff --git a/code/modules/clothing/clothing.dm b/code/modules/clothing/clothing.dm index 3de1b0b4916..16a22819adf 100644 --- a/code/modules/clothing/clothing.dm +++ b/code/modules/clothing/clothing.dm @@ -33,14 +33,10 @@ var/darkness_view = 2//Base human is 2 var/invis_view = SEE_INVISIBLE_LIVING var/emagged = 0 - var/hud = null var/list/icon/current = list() //the current hud icons strip_delay = 20 put_on_delay = 25 -/obj/item/clothing/glasses/proc/process_hud(var/mob/M) - return - /* SEE_SELF // can see self, no matter what SEE_MOBS // can see all mobs, no matter what @@ -268,7 +264,7 @@ atom/proc/generate_female_clothing(index,t_color,icon) var/mob/M = usr if (istype(M, /mob/dead/)) return - if (!can_use(usr)) + if (!can_use(M)) return if(src.has_sensor >= 2) usr << "The controls are locked." @@ -281,13 +277,17 @@ atom/proc/generate_female_clothing(index,t_color,icon) src.sensor_mode = 0 switch(src.sensor_mode) if(0) - usr << "You disable your suit's remote sensing equipment." + M << "You disable your suit's remote sensing equipment." if(1) - usr << "Your suit will now report whether you are live or dead." + M << "Your suit will now report whether you are live or dead." if(2) - usr << "Your suit will now report your vital lifesigns." + M << "Your suit will now report your vital lifesigns." if(3) - usr << "Your suit will now report your vital lifesigns as well as your coordinate position." + M << "Your suit will now report your vital lifesigns as well as your coordinate position." + if(istype(M,/mob/living/carbon/human)) + var/mob/living/carbon/human/H = M + if(H.w_uniform == src) + H.update_suit_sensors(src) ..() /obj/item/clothing/under/verb/rolldown() diff --git a/code/modules/clothing/glasses/hud.dm b/code/modules/clothing/glasses/hud.dm index 25e6b20f94a..be35409acb0 100644 --- a/code/modules/clothing/glasses/hud.dm +++ b/code/modules/clothing/glasses/hud.dm @@ -3,7 +3,23 @@ desc = "A heads-up display that provides important info in (almost) real time." flags = null //doesn't protect eyes because it's a monocle, duh origin_tech = "magnets=3;biotech=2" - hud = 1 + action_button_name = "Enable HUD" + var/hud_type = null + var/hud_on = 0 + +/obj/item/clothing/glasses/hud/attack_self(mob/user) + if(istype(user, /mob/living/carbon/human)) + var/mob/living/carbon/human/H = user + if(H.glasses == src) + hud_on = !hud_on + hud_on ? user.add_data_hud(hud_type,DATA_HUD_ADVANCED) : user.reset_all_data_huds() + H << "You [hud_on ? "enable" : "disable"] the HUD glasses." + else + H << "You are not wearing the HUD glasses." + +/obj/item/clothing/glasses/hud/dropped(mob/user) + user.reset_all_data_huds() + hud_on = 0 /* /obj/item/clothing/glasses/hud/attackby(obj/item/weapon/W as obj, mob/user as mob) ..() @@ -25,11 +41,7 @@ name = "Health Scanner HUD" desc = "A heads-up display that scans the humans in view and provides accurate data about their health status." icon_state = "healthhud" - - -/obj/item/clothing/glasses/hud/health/process_hud(var/mob/M) - process_data_hud(M,DATA_HUD_MEDICAL,DATA_HUD_ADVANCED) - + hud_type = DATA_HUD_MEDICAL /obj/item/clothing/glasses/hud/health/night name = "Night Vision Health Scanner HUD" @@ -43,6 +55,7 @@ name = "Security HUD" desc = "A heads-up display that scans the humans in view and provides accurate data about their ID status and security records." icon_state = "securityhud" + hud_type = DATA_HUD_SECURITY /obj/item/clothing/glasses/hud/security/eyepatch name = "Eyepatch HUD" @@ -68,5 +81,3 @@ emagged = 1 desc = desc + " The display flickers slightly." -/obj/item/clothing/glasses/hud/security/process_hud(var/mob/M) - process_data_hud(M,DATA_HUD_SECURITY,DATA_HUD_ADVANCED) diff --git a/code/modules/events/disease_outbreak.dm b/code/modules/events/disease_outbreak.dm index 142e58fa0f6..7ff6b0ead14 100644 --- a/code/modules/events/disease_outbreak.dm +++ b/code/modules/events/disease_outbreak.dm @@ -45,7 +45,5 @@ else D = new virus_type() D.carrier = 1 - D.holder = H - D.affected_mob = H - H.viruses += D + H.AddDisease(D) break \ No newline at end of file diff --git a/code/modules/events/spontaneous_appendicitis.dm b/code/modules/events/spontaneous_appendicitis.dm index a55038ea1e3..6219d1fda69 100644 --- a/code/modules/events/spontaneous_appendicitis.dm +++ b/code/modules/events/spontaneous_appendicitis.dm @@ -14,7 +14,5 @@ continue var/datum/disease/D = new /datum/disease/appendicitis - D.holder = H - D.affected_mob = H - H.viruses += D + H.AddDisease(D) break \ No newline at end of file diff --git a/code/modules/mining/laborcamp/laborstacker.dm b/code/modules/mining/laborcamp/laborstacker.dm index bb07bb2f569..18b9f1d9e45 100644 --- a/code/modules/mining/laborcamp/laborstacker.dm +++ b/code/modules/mining/laborcamp/laborstacker.dm @@ -12,9 +12,13 @@ var/obj/item/weapon/card/id/prisoner/inserted_id var/obj/machinery/door/airlock/release_door var/door_tag = "prisonshuttle" + var/obj/item/device/radio/Radio //needed to send messages to sec radio + /obj/machinery/mineral/labor_claim_console/New() ..() + Radio = new/obj/item/device/radio(src) + Radio.listening = 0 spawn(7) src.machine = locate(/obj/machinery/mineral/stacking_machine, get_step(src, machinedir)) var/t @@ -93,7 +97,8 @@ if(s.location == /area/shuttle/laborcamp/outpost) if(alone_in_area(get_area(loc), usr)) if (s.move_shuttle(0)) // No delay, to stop people from getting on while it is departing. - broadcast_hud_message("[inserted_id.registered_name] has met their quota and has returned to the station. Minerals and Prisoner ID card ready for retrieval.", src) + Radio.set_frequency(SEC_FREQ) + Radio.talk_into(src, "[inserted_id.registered_name] has returned to the station. Minerals and Prisoner ID card ready for retrieval.", SEC_FREQ) usr << "Shuttle recieved message and will be sent shortly." else usr << "Shuttle is already moving." @@ -162,4 +167,4 @@ else user << "Error: Invalid ID" return - ..() \ No newline at end of file + ..() diff --git a/code/modules/mob/living/carbon/alien/special/alien_embryo.dm b/code/modules/mob/living/carbon/alien/special/alien_embryo.dm index b895068c1c2..a8c5300a573 100644 --- a/code/modules/mob/living/carbon/alien/special/alien_embryo.dm +++ b/code/modules/mob/living/carbon/alien/special/alien_embryo.dm @@ -14,6 +14,9 @@ var/const/ALIEN_AFK_BRACKET = 450 // 45 seconds if(istype(loc, /mob/living)) affected_mob = loc affected_mob.status_flags |= XENO_HOST + if(istype(affected_mob,/mob/living/carbon/human)) + var/mob/living/carbon/human/H = affected_mob + H.med_hud_set_status() processing_objects.Add(src) spawn(0) AddInfectionImages(affected_mob) @@ -23,6 +26,9 @@ var/const/ALIEN_AFK_BRACKET = 450 // 45 seconds /obj/item/alien_embryo/Destroy() if(affected_mob) affected_mob.status_flags &= ~(XENO_HOST) + if(istype(affected_mob,/mob/living/carbon/human)) + var/mob/living/carbon/human/H = affected_mob + H.med_hud_set_status() spawn(0) RemoveInfectionImages(affected_mob) ..() @@ -31,6 +37,9 @@ var/const/ALIEN_AFK_BRACKET = 450 // 45 seconds if(!affected_mob) return if(loc != affected_mob) affected_mob.status_flags &= ~(XENO_HOST) + if(istype(affected_mob,/mob/living/carbon/human)) + var/mob/living/carbon/human/H = affected_mob + H.med_hud_set_status() processing_objects.Remove(src) spawn(0) RemoveInfectionImages(affected_mob) @@ -132,4 +141,4 @@ Des: Removes all images from the mob infected by this embryo if(alien.client) for(var/image/I in alien.client.images) if(dd_hasprefix_case(I.icon_state, "infected") && I.loc == affected_mob) - qdel(I) \ No newline at end of file + qdel(I) diff --git a/code/modules/mob/living/carbon/human/death.dm b/code/modules/mob/living/carbon/human/death.dm index 045ca305efa..ede9ea44ada 100644 --- a/code/modules/mob/living/carbon/human/death.dm +++ b/code/modules/mob/living/carbon/human/death.dm @@ -36,6 +36,8 @@ if(dna) dna.species.spec_death(gibbed,src) + med_hud_set_health() + med_hud_set_status() tod = worldtime2text() //weasellos time of death patch if(mind) mind.store_memory("Time of death: [tod]", 0) @@ -66,4 +68,4 @@ /mob/living/carbon/proc/Drain() ChangeToHusk() mutations |= NOCLONE - return 1 \ No newline at end of file + return 1 diff --git a/code/modules/mob/living/carbon/human/human.dm b/code/modules/mob/living/carbon/human/human.dm index 9df56ed3037..0a959524e50 100644 --- a/code/modules/mob/living/carbon/human/human.dm +++ b/code/modules/mob/living/carbon/human/human.dm @@ -28,7 +28,13 @@ internal_organs += new /obj/item/organ/brain for(var/i=0;i<7;i++) // 2 for medHUDs and 5 for secHUDs - hud_list += image('icons/mob/hud.dmi', src, "hudunknown") + hud_list += image('icons/mob/hud.dmi', src, "") + + med_hud_set_health() + med_hud_set_status() + sec_hud_set_ID() + sec_hud_set_implants() + sec_hud_set_security_status() // for spawned humans; overwritten by other code create_dna(src) @@ -400,9 +406,7 @@ if(setcriminal != "Cancel") investigate_log("[src.key] has been set from [R.fields["criminal"]] to [setcriminal] by [usr.name] ([usr.key]).", "records") R.fields["criminal"] = setcriminal - - spawn() - H.handle_regular_hud_updates() + sec_hud_set_security_status() return if(href_list["view"]) diff --git a/code/modules/mob/living/carbon/human/human_damage.dm b/code/modules/mob/living/carbon/human/human_damage.dm index 633e72059db..ab55bba100e 100644 --- a/code/modules/mob/living/carbon/human/human_damage.dm +++ b/code/modules/mob/living/carbon/human/human_damage.dm @@ -13,6 +13,8 @@ //TODO: fix husking if( ((maxHealth - total_burn) < config.health_threshold_dead) && stat == DEAD ) ChangeToHusk() + med_hud_set_health() + med_hud_set_status() return diff --git a/code/modules/mob/living/carbon/human/inventory.dm b/code/modules/mob/living/carbon/human/inventory.dm index c08ffd36903..49b51a2c0df 100644 --- a/code/modules/mob/living/carbon/human/inventory.dm +++ b/code/modules/mob/living/carbon/human/inventory.dm @@ -260,6 +260,7 @@ if(belt) unEquip(belt) w_uniform = null + update_suit_sensors(w_uniform) update_inv_w_uniform(0) else if(I == gloves) gloves = null @@ -289,9 +290,11 @@ if(internals) internals.icon_state = "internal0" internal = null + sec_hud_set_ID() update_inv_wear_mask(0) else if(I == wear_id) wear_id = null + sec_hud_set_ID() update_inv_wear_id(0) else if(I == r_store) r_store = null @@ -330,6 +333,7 @@ wear_mask = I if(wear_mask.flags & BLOCKHAIR) update_hair(redraw_mob) //rebuild hair + sec_hud_set_ID() update_inv_wear_mask(redraw_mob) if(slot_handcuffed) handcuffed = I @@ -348,6 +352,7 @@ update_inv_belt(redraw_mob) if(slot_wear_id) wear_id = I + sec_hud_set_ID() update_inv_wear_id(redraw_mob) if(slot_ears) ears = I @@ -373,6 +378,7 @@ update_inv_wear_suit(redraw_mob) if(slot_w_uniform) w_uniform = I + update_suit_sensors(w_uniform) update_inv_w_uniform(redraw_mob) if(slot_l_store) l_store = I @@ -387,7 +393,8 @@ if(get_active_hand() == I) unEquip(I) I.loc = back - return else src << "You are trying to equip this item to an unsupported inventory slot. Report this to a coder!" - return \ No newline at end of file + return + update_action_buttons() + diff --git a/code/modules/mob/living/carbon/human/life.dm b/code/modules/mob/living/carbon/human/life.dm index 366d08617cb..93a04ade9ec 100644 --- a/code/modules/mob/living/carbon/human/life.dm +++ b/code/modules/mob/living/carbon/human/life.dm @@ -97,7 +97,6 @@ //Update our name based on whether our face is obscured/disfigured name = get_visible_name() - handle_regular_hud_updates() if(dna) dna.species.spec_life(src) // for mutantraces @@ -583,8 +582,6 @@ /mob/living/carbon/human/proc/handle_regular_hud_updates() if(!client) return 0 - regular_hud_updates() //For MED/SEC HUD icon deletion - client.screen.Remove(global_hud.blurry, global_hud.druggy, global_hud.vimpaired, global_hud.darkMask) update_action_buttons() diff --git a/code/modules/mob/living/carbon/human/species.dm b/code/modules/mob/living/carbon/human/species.dm index e73f2466b48..3d26f84da37 100644 --- a/code/modules/mob/living/carbon/human/species.dm +++ b/code/modules/mob/living/carbon/human/species.dm @@ -457,9 +457,6 @@ H.sight |= G.vision_flags H.see_in_dark = G.darkness_view H.see_invisible = G.invis_view - if(G.hud) - G.process_hud(H) - if(H.druggy) //Override for druggy H.see_invisible = see_temp diff --git a/code/modules/mob/living/carbon/slime/hud.dm b/code/modules/mob/living/carbon/slime/hud.dm deleted file mode 100644 index ad8ac6a00f6..00000000000 --- a/code/modules/mob/living/carbon/slime/hud.dm +++ /dev/null @@ -1,2 +0,0 @@ -/mob/living/carbon/slime/regular_hud_updates() - return \ No newline at end of file diff --git a/code/modules/mob/living/carbon/slime/life.dm b/code/modules/mob/living/carbon/slime/life.dm index bdb63e28c37..495686752d7 100644 --- a/code/modules/mob/living/carbon/slime/life.dm +++ b/code/modules/mob/living/carbon/slime/life.dm @@ -35,8 +35,6 @@ //to find it. src.blinded = null - regular_hud_updates() // Basically just deletes any screen objects :< - if(environment) handle_environment(environment) // Handle temperature/pressure differences between body and environment diff --git a/code/modules/mob/living/silicon/ai/ai.dm b/code/modules/mob/living/silicon/ai/ai.dm index ca1c3fec17b..e2fb40f91b4 100644 --- a/code/modules/mob/living/silicon/ai/ai.dm +++ b/code/modules/mob/living/silicon/ai/ai.dm @@ -20,6 +20,7 @@ var/list/ai_list = list() density = 1 status_flags = CANSTUN|CANPARALYSE|CANPUSH force_compose = 1 //This ensures that the AI always composes it's own hear message. Needed for hrefs and job display. + sensor_level = DATA_HUD_BASIC var/list/network = list("SS13") var/obj/machinery/camera/current = null var/list/connected_robots = list() diff --git a/code/modules/mob/living/silicon/ai/life.dm b/code/modules/mob/living/silicon/ai/life.dm index ea50f2e80b1..54cff59b181 100644 --- a/code/modules/mob/living/silicon/ai/life.dm +++ b/code/modules/mob/living/silicon/ai/life.dm @@ -163,11 +163,6 @@ sleep(50) theAPC = null - regular_hud_updates() - - if(sensor_mode) //Data HUDs, such as Security or Medical HUDS. Passes the AI's eye since it seems from that instead of itself. - process_data_hud(src,sensor_mode,DATA_HUD_BASIC,src.eyeobj) - /mob/living/silicon/ai/updatehealth() if(status_flags & GODMODE) health = maxHealth @@ -175,4 +170,4 @@ return health = maxHealth - getOxyLoss() - getToxLoss() - getBruteLoss() if(!fire_res_on_core) - health -= getFireLoss() \ No newline at end of file + health -= getFireLoss() diff --git a/code/modules/mob/living/silicon/pai/life.dm b/code/modules/mob/living/silicon/pai/life.dm index f8a7d0c2ef1..874828a6f69 100644 --- a/code/modules/mob/living/silicon/pai/life.dm +++ b/code/modules/mob/living/silicon/pai/life.dm @@ -8,12 +8,6 @@ M.show_message("[src.cable] rapidly retracts back into its spool.", 3, "You hear a click and the sound of wire spooling rapidly.", 2) qdel(src.cable) cable = null - - regular_hud_updates() - if(secHUD == 1) - process_data_hud(src, DATA_HUD_SECURITY,DATA_HUD_ADVANCED) - if(medHUD == 1) - process_data_hud(src, DATA_HUD_MEDICAL,DATA_HUD_ADVANCED) if(silence_time) if(world.timeofday >= silence_time) silence_time = null diff --git a/code/modules/mob/living/silicon/pai/software.dm b/code/modules/mob/living/silicon/pai/software.dm index c7ac1b347d5..546ddad55bf 100644 --- a/code/modules/mob/living/silicon/pai/software.dm +++ b/code/modules/mob/living/silicon/pai/software.dm @@ -238,10 +238,18 @@ temp = "Unable to locate requested security record. Record may have been deleted, or never have existed." if("securityhud") if(href_list["toggle"]) - src.secHUD = !src.secHUD + if(secHUD) + reset_all_data_huds() + else + add_data_hud(DATA_HUD_SECURITY,sensor_level) + secHUD = !secHUD if("medicalhud") if(href_list["toggle"]) - src.medHUD = !src.medHUD + if(medHUD) + reset_all_data_huds() + else + add_data_hud(DATA_HUD_MEDICAL,sensor_level) + medHUD = !medHUD if("translator") if(href_list["toggle"]) languages = languages == ALL ? HUMAN & ROBOT : ALL diff --git a/code/modules/mob/living/silicon/robot/life.dm b/code/modules/mob/living/silicon/robot/life.dm index 9ffd615c845..61b4f3487de 100644 --- a/code/modules/mob/living/silicon/robot/life.dm +++ b/code/modules/mob/living/silicon/robot/life.dm @@ -166,11 +166,6 @@ if(see_override) see_invisible = see_override - regular_hud_updates() //Handles MED/SEC HUDs for borgs. - - if(sensor_mode) - process_data_hud(src,sensor_mode,DATA_HUD_ADVANCED) - if (src.healths) if (src.stat != 2) switch(health) @@ -310,4 +305,4 @@ /mob/living/silicon/robot/update_canmove() if(paralysis || stunned || weakened || buckled || lockcharge) canmove = 0 else canmove = 1 - return canmove \ No newline at end of file + return canmove diff --git a/code/modules/mob/living/silicon/silicon.dm b/code/modules/mob/living/silicon/silicon.dm index e11c255358f..22f014e2937 100644 --- a/code/modules/mob/living/silicon/silicon.dm +++ b/code/modules/mob/living/silicon/silicon.dm @@ -15,7 +15,7 @@ var/lawcheck[1] var/ioncheck[1] - var/sensor_mode = 0 //Determines the current HUD. + var/sensor_level = DATA_HUD_ADVANCED //Determines the sensor level to use /mob/living/silicon/proc/cancelAlarm() return @@ -320,15 +320,15 @@ /mob/living/silicon/verb/sensor_mode() set name = "Set Sensor Augmentation" var/sensor_type = input("Please select sensor type.", "Sensor Integration", null) in list("Security", "Medical","Disable") + reset_all_data_huds() switch(sensor_type) if ("Security") - sensor_mode = DATA_HUD_SECURITY + add_data_hud(DATA_HUD_SECURITY,sensor_level) src << "Security records overlay enabled." if ("Medical") - sensor_mode = DATA_HUD_MEDICAL + add_data_hud(DATA_HUD_MEDICAL,sensor_level) src << "Life signs monitor overlay enabled." if ("Disable") - sensor_mode = 0 src << "Sensor augmentations disabled." diff --git a/code/modules/mob/mob_helpers.dm b/code/modules/mob/mob_helpers.dm index 7252eafa2bb..ed782e6daaf 100644 --- a/code/modules/mob/mob_helpers.dm +++ b/code/modules/mob/mob_helpers.dm @@ -463,11 +463,3 @@ proc/is_special_character(mob/M) // returns 1 for special characters and 2 for h else return -/proc/broadcast_hud_message(var/message, var/broadcast_source) - var/turf/sourceturf = get_turf(broadcast_source) - var/user_list = sec_hud_users //A local var is used for easy addition of other HUD types. - var/hud_icon = /obj/item/weapon/restraints/handcuffs //Icon displayed when the HUD triggered. Handcuffs for Sec HUDs. - for(var/mob/hud_user in user_list) - var/turf/userturf = get_turf(hud_user) - if(userturf.z == sourceturf.z) //Must have same z-level. - hud_user.show_message("\icon[hud_icon] [message]", 1) diff --git a/code/modules/mob/transform_procs.dm b/code/modules/mob/transform_procs.dm index 8b088f09835..90ec8f9336c 100644 --- a/code/modules/mob/transform_procs.dm +++ b/code/modules/mob/transform_procs.dm @@ -163,6 +163,7 @@ viruses = list() for(var/datum/disease/D in O.viruses) D.affected_mob = O + O.med_hud_set_status() //keep damage? if (tr_flags & TR_KEEPDAMAGE) @@ -175,6 +176,7 @@ for(var/obj/item/weapon/implant/I in implants) I.loc = O I.implanted = O + O.sec_hud_set_implants() if(mind) mind.transfer_to(O) diff --git a/code/modules/surgery/implant_removal.dm b/code/modules/surgery/implant_removal.dm index 054ad9a19d7..bcd0bb32bc1 100644 --- a/code/modules/surgery/implant_removal.dm +++ b/code/modules/surgery/implant_removal.dm @@ -29,6 +29,9 @@ if(istype(I, /obj/item/weapon/implant/loyalty)) target << "You feel a sense of liberation as Nanotrasen's grip on your mind fades away." qdel(I) + if(istype(user, /mob/living/carbon/human)) + var/mob/living/carbon/human/H = user + H.sec_hud_set_implants() else user.visible_message("[user] can't find anything in [target]'s [target_zone].") - return 1 \ No newline at end of file + return 1 diff --git a/tgstation.dme b/tgstation.dme index 0cffe7c043f..7fadcb03746 100644 --- a/tgstation.dme +++ b/tgstation.dme @@ -1068,7 +1068,6 @@ #include "code\modules\mob\living\carbon\slime\death.dm" #include "code\modules\mob\living\carbon\slime\emote.dm" #include "code\modules\mob\living\carbon\slime\examine.dm" -#include "code\modules\mob\living\carbon\slime\hud.dm" #include "code\modules\mob\living\carbon\slime\life.dm" #include "code\modules\mob\living\carbon\slime\login.dm" #include "code\modules\mob\living\carbon\slime\powers.dm" From 10aaf42b5b704941491a74ccb2c05449c5354748 Mon Sep 17 00:00:00 2001 From: tkdrg Date: Sun, 16 Nov 2014 13:06:36 -0300 Subject: [PATCH 2/6] Data hud revamp improvements and bugsquashing Adds a changelog for the HUD change. --- code/game/data_huds.dm | 115 ++++++++++++------ code/modules/clothing/glasses/hud.dm | 29 +---- code/modules/mob/living/carbon/human/human.dm | 2 + .../mob/living/silicon/pai/software.dm | 10 +- html/changelogs/Tkdrg-HUDs.yml | 5 + 5 files changed, 92 insertions(+), 69 deletions(-) create mode 100644 html/changelogs/Tkdrg-HUDs.yml diff --git a/code/game/data_huds.dm b/code/game/data_huds.dm index d1296b1d3a7..14fab9be85a 100644 --- a/code/game/data_huds.dm +++ b/code/game/data_huds.dm @@ -4,10 +4,15 @@ * Update them when needed with the appropriate proc. (see below) */ -var/list/basic_med_hud_users = list() //yes, this is, in fact, needed +var/list/med_hud_users = list() +var/list/sec_hud_users = list() + +/*********************************************** + GENERIC HUD PROCS: These apply to all data HUDs +************************************************/ /* - * GENERIC HUD PROCS + * THESE SHOULD BE CALLED BY THE MOB SEEING THE HUD */ //Deletes all current HUD images @@ -16,7 +21,8 @@ var/list/basic_med_hud_users = list() //yes, this is, in fact, needed for(var/image/hud in client.images) if(findtext(hud.icon_state,"hud",1,4)) client.images -= hud - basic_med_hud_users -= src + med_hud_users -= src + sec_hud_users -= src //Adds one set of data hud images /mob/proc/add_data_hud(var/hud_type, var/hud_mode) @@ -26,12 +32,43 @@ var/list/basic_med_hud_users = list() //yes, this is, in fact, needed for(var/mob/living/carbon/human/H in mob_list) switch(hud_type) if(DATA_HUD_MEDICAL) - if(hud_mode == DATA_HUD_BASIC) - basic_med_hud_users += src - add_med_hud(hud_mode,H) + med_hud_users[src] = hud_mode + add_single_med_hud(H) if(DATA_HUD_SECURITY) - add_sec_hud(hud_mode,H) + sec_hud_users[src] = hud_mode + add_single_sec_hud(H) +/* + * THESE SHOULD BE CALLED BY THE MOB SHOWING THE HUD + */ + +/mob/living/carbon/human/proc/add_to_all_data_huds() + add_to_data_hud(DATA_HUD_MEDICAL) + add_to_data_hud(DATA_HUD_SECURITY) + +//Add a mob's HUD to all HUD users +/mob/living/carbon/human/proc/add_to_data_hud(var/hud_type) + switch(hud_type) + if(DATA_HUD_MEDICAL) + for(var/mob/M in med_hud_users) + M.add_single_med_hud(src) + if(DATA_HUD_SECURITY) + for(var/mob/M in sec_hud_users) + M.add_single_sec_hud(src) + +/mob/living/carbon/human/proc/remove_from_all_data_huds() + remove_from_data_hud(DATA_HUD_MEDICAL) + remove_from_data_hud(DATA_HUD_SECURITY) + +//Removes a mob's HUD from all HUD users +/mob/living/carbon/human/proc/remove_from_data_hud(var/hud_type) + switch(hud_type) + if(DATA_HUD_MEDICAL) + for(var/mob/M in med_hud_users) + M.remove_single_med_hud(src) + if(DATA_HUD_SECURITY) + for(var/mob/M in sec_hud_users) + M.remove_single_sec_hud(src) /*********************************************** Medical HUD! Basic mode needs suit sensors on. @@ -41,24 +78,24 @@ var/list/basic_med_hud_users = list() //yes, this is, in fact, needed * THESE SHOULD BE CALLED BY THE MOB SEEING THE HUD */ -/mob/proc/add_med_hud(var/mode, var/mob/living/carbon/human/patient) - if(mode == DATA_HUD_BASIC) //Used for the AI's MedHUD, only works if the patient has activated suit sensors. - if(!patient.w_uniform) return - var/obj/item/clothing/under/U = patient.w_uniform - if(U.sensor_mode <= 2) return - add_single_med_hud(patient) - //Adds a single mob's med HUD to view /mob/proc/add_single_med_hud(var/mob/living/carbon/human/H) - if(client) - client.images += H.hud_list[HEALTH_HUD] - client.images += H.hud_list[STATUS_HUD] + var/mode = med_hud_users[src] + if(!mode || !client) + return + if(mode == DATA_HUD_BASIC) //Used for the AI's MedHUD, only works if the patient has activated suit sensors. + if(!H.w_uniform) return + var/obj/item/clothing/under/U = H.w_uniform + if(U.sensor_mode <= 2) return + client.images += H.hud_list[HEALTH_HUD] + client.images += H.hud_list[STATUS_HUD] //Deletes a single mob's med HUD from view /mob/proc/remove_single_med_hud(var/mob/living/carbon/human/H) - if(client) - client.images -= H.hud_list[HEALTH_HUD] - client.images -= H.hud_list[STATUS_HUD] + if(!client) + return + client.images -= H.hud_list[HEALTH_HUD] + client.images -= H.hud_list[STATUS_HUD] /* @@ -74,8 +111,9 @@ var/list/basic_med_hud_users = list() //yes, this is, in fact, needed //called when a human changes suit sensors /mob/living/carbon/human/proc/update_med_hud_suit_sensors(sensor_level) - for(var/mob/M in basic_med_hud_users) - sensor_level > 2 ? M.add_single_med_hud(src) : M.remove_single_med_hud(src) + for(var/mob/M in med_hud_users) + if(med_hud_users[M] == DATA_HUD_BASIC) + sensor_level > 2 ? M.add_single_med_hud(src) : M.remove_single_med_hud(src) //called when a human changes virus /mob/living/carbon/human/proc/check_virus() @@ -135,26 +173,28 @@ var/list/basic_med_hud_users = list() //yes, this is, in fact, needed /* * THESE SHOULD BE CALLED BY THE MOB SEEING THE HUD */ - -/mob/proc/add_sec_hud(var/mode, var/mob/living/carbon/human/perp) - add_single_sec_hud_basic(perp) - +//Adds a single mob's sec HUD to view +/mob/proc/add_single_sec_hud(var/mob/living/carbon/human/H) + var/mode = sec_hud_users[src] + if(!mode || !client) + return + client.images += H.hud_list[ID_HUD] if(mode == DATA_HUD_ADVANCED) //If not set to DATA_HUD_ADVANCED, the Sec HUD will only display the job. - add_single_sec_hud_advanced(perp) - -//Adds a single mob's basic sec HUD to view -/mob/proc/add_single_sec_hud_basic(var/mob/living/carbon/human/H) - if(client) - client.images += H.hud_list[ID_HUD] - -//Adds a single mob's advanced sec HUD to view -/mob/proc/add_single_sec_hud_advanced(var/mob/living/carbon/human/H) - if(client) client.images += H.hud_list[IMPTRACK_HUD] client.images += H.hud_list[IMPLOYAL_HUD] client.images += H.hud_list[IMPCHEM_HUD] client.images += H.hud_list[WANTED_HUD] +//Deletes a single mob's sec HUD from view +/mob/proc/remove_single_sec_hud(var/mob/living/carbon/human/H) + if(!client) + return + client.images -= H.hud_list[ID_HUD] + client.images -= H.hud_list[IMPTRACK_HUD] + client.images -= H.hud_list[IMPLOYAL_HUD] + client.images -= H.hud_list[IMPCHEM_HUD] + client.images -= H.hud_list[WANTED_HUD] + /* * THESE SHOULD BE CALLED BY THE MOB SHOWING THE HUD */ @@ -197,4 +237,5 @@ var/list/basic_med_hud_users = list() //yes, this is, in fact, needed if("Incarcerated") holder.icon_state = "hudincarcerated" if("Parolled") holder.icon_state = "hudparolled" if("Discharged") holder.icon_state = "huddischarged" - else holder.icon_state = null + else holder.icon_state = null + diff --git a/code/modules/clothing/glasses/hud.dm b/code/modules/clothing/glasses/hud.dm index be35409acb0..153141b046b 100644 --- a/code/modules/clothing/glasses/hud.dm +++ b/code/modules/clothing/glasses/hud.dm @@ -3,40 +3,20 @@ desc = "A heads-up display that provides important info in (almost) real time." flags = null //doesn't protect eyes because it's a monocle, duh origin_tech = "magnets=3;biotech=2" - action_button_name = "Enable HUD" var/hud_type = null - var/hud_on = 0 -/obj/item/clothing/glasses/hud/attack_self(mob/user) - if(istype(user, /mob/living/carbon/human)) - var/mob/living/carbon/human/H = user - if(H.glasses == src) - hud_on = !hud_on - hud_on ? user.add_data_hud(hud_type,DATA_HUD_ADVANCED) : user.reset_all_data_huds() - H << "You [hud_on ? "enable" : "disable"] the HUD glasses." - else - H << "You are not wearing the HUD glasses." +/obj/item/clothing/glasses/hud/equipped(mob/living/carbon/human/user, slot) + if(slot == slot_glasses) + user.add_data_hud(hud_type,DATA_HUD_ADVANCED) -/obj/item/clothing/glasses/hud/dropped(mob/user) +/obj/item/clothing/glasses/hud/dropped(mob/living/carbon/human/user) user.reset_all_data_huds() - hud_on = 0 - -/* /obj/item/clothing/glasses/hud/attackby(obj/item/weapon/W as obj, mob/user as mob) - ..() - if(istype(W, /obj/item/weapon/card/emag)) - if(emagged == 0) - emagged = 1 - user << "PZZTTPFFFT" - desc = desc+ " The display flickers slightly." - else - user << "It is already emagged!" */ //No emags allowed /obj/item/clothing/glasses/hud/emp_act(severity) if(emagged == 0) emagged = 1 desc = desc + " The display flickers slightly." - /obj/item/clothing/glasses/hud/health name = "Health Scanner HUD" desc = "A heads-up display that scans the humans in view and provides accurate data about their health status." @@ -69,6 +49,7 @@ darkness_view = 1 flash_protect = 1 tint = 1 + /obj/item/clothing/glasses/hud/security/night name = "Night Vision Security HUD" desc = "An advanced heads-up display which provides id data and vision in complete darkness." diff --git a/code/modules/mob/living/carbon/human/human.dm b/code/modules/mob/living/carbon/human/human.dm index 0a959524e50..4b379b28c70 100644 --- a/code/modules/mob/living/carbon/human/human.dm +++ b/code/modules/mob/living/carbon/human/human.dm @@ -35,6 +35,7 @@ sec_hud_set_ID() sec_hud_set_implants() sec_hud_set_security_status() + add_to_all_data_huds() // for spawned humans; overwritten by other code create_dna(src) @@ -46,6 +47,7 @@ /mob/living/carbon/human/Destroy() for(var/atom/movable/organelle in organs) qdel(organelle) + remove_from_all_data_huds() return ..() /mob/living/carbon/human/Bump(atom/movable/AM as mob|obj, yes) diff --git a/code/modules/mob/living/silicon/pai/software.dm b/code/modules/mob/living/silicon/pai/software.dm index 546ddad55bf..0e4f1c968ff 100644 --- a/code/modules/mob/living/silicon/pai/software.dm +++ b/code/modules/mob/living/silicon/pai/software.dm @@ -238,18 +238,12 @@ temp = "Unable to locate requested security record. Record may have been deleted, or never have existed." if("securityhud") if(href_list["toggle"]) - if(secHUD) - reset_all_data_huds() - else - add_data_hud(DATA_HUD_SECURITY,sensor_level) secHUD = !secHUD + secHUD ? add_data_hud(DATA_HUD_SECURITY,sensor_level) : reset_all_data_huds() if("medicalhud") if(href_list["toggle"]) - if(medHUD) - reset_all_data_huds() - else - add_data_hud(DATA_HUD_MEDICAL,sensor_level) medHUD = !medHUD + medHUD ? add_data_hud(DATA_HUD_MEDICAL,sensor_level) : reset_all_data_huds() if("translator") if(href_list["toggle"]) languages = languages == ALL ? HUMAN & ROBOT : ALL diff --git a/html/changelogs/Tkdrg-HUDs.yml b/html/changelogs/Tkdrg-HUDs.yml new file mode 100644 index 00000000000..192dba145fb --- /dev/null +++ b/html/changelogs/Tkdrg-HUDs.yml @@ -0,0 +1,5 @@ +author: Tkdrg +delete-after: True + +changes: + - tweak: Security/Medical HUDs are now more responsive and less laggy. From e9ec8645bb826bd1a0521f4349ae7b46674ace31 Mon Sep 17 00:00:00 2001 From: tkdrg Date: Mon, 17 Nov 2014 01:28:45 -0300 Subject: [PATCH 3/6] Hud rewrite rewrite. Now datum-based and somewhat generic. --- code/__DEFINES/misc.dm | 11 +- code/game/atoms.dm | 3 + code/game/data_huds.dm | 289 +++++++++--------- code/game/mecha/medical/odysseus.dm | 6 +- code/modules/clothing/glasses/hud.dm | 10 +- code/modules/mob/living/carbon/human/human.dm | 34 ++- .../mob/living/silicon/pai/software.dm | 4 +- code/modules/mob/living/silicon/silicon.dm | 7 +- 8 files changed, 202 insertions(+), 162 deletions(-) diff --git a/code/__DEFINES/misc.dm b/code/__DEFINES/misc.dm index fd18334c90f..21b3b0cb144 100644 --- a/code/__DEFINES/misc.dm +++ b/code/__DEFINES/misc.dm @@ -53,8 +53,15 @@ #define STAGE_FIVE 9 //data HUD (medhud, sechud) defines -#define DATA_HUD_MEDICAL 1 -#define DATA_HUD_SECURITY 2 +//Don't forget to update human/New() if you change these! +#define DATA_HUD_SECURITY 1 +#define DATA_HUD_MEDICAL 2 #define DATA_HUD_BASIC 1 #define DATA_HUD_ADVANCED 2 + +#define DATA_HUD_SECURITY_BASIC 1 +#define DATA_HUD_SECURITY_ADVANCED 2 +#define DATA_HUD_MEDICAL_BASIC 3 +#define DATA_HUD_MEDICAL_ADVANCED 4 + diff --git a/code/game/atoms.dm b/code/game/atoms.dm index 2f1b1f6e074..9b7041c00c5 100644 --- a/code/game/atoms.dm +++ b/code/game/atoms.dm @@ -12,6 +12,9 @@ ///Chemistry. var/datum/reagents/reagents = null + //This atom's HUDs. associative list, e.g. hud_list[DATA_HUD_SECURITY] = list(sec_hud_images) + var/list/image/hud_list = list() + //var/chem_is_open_container = 0 // replaced by OPENCONTAINER flags and atom/proc/is_open_container() ///Chemistry. diff --git a/code/game/data_huds.dm b/code/game/data_huds.dm index 14fab9be85a..77c2ebf1f6a 100644 --- a/code/game/data_huds.dm +++ b/code/game/data_huds.dm @@ -1,119 +1,154 @@ -/* + /* * Data HUDs are now passive in order to reduce lag. * Add then to a mob using add_data_hud. * Update them when needed with the appropriate proc. (see below) */ -var/list/med_hud_users = list() -var/list/sec_hud_users = list() +/* HUD DATUMS */ -/*********************************************** - GENERIC HUD PROCS: These apply to all data HUDs -************************************************/ +var/datum/hud/huds = list( \ + DATA_HUD_SECURITY_BASIC = new/datum/hud/data/security/basic(), \ + DATA_HUD_SECURITY_ADVANCED = new/datum/hud/data/security/advanced(), \ + DATA_HUD_MEDICAL_BASIC = new/datum/hud/data/medical/basic(), \ + DATA_HUD_MEDICAL_ADVANCED = new/datum/hud/data/medical/advanced() \ + ) -/* - * THESE SHOULD BE CALLED BY THE MOB SEEING THE HUD - */ +/atom/proc/add_to_all_huds() + for(var/datum/hud/hud in huds) hud.add_to_hud(src) -//Deletes all current HUD images -/mob/proc/reset_all_data_huds() - if(client) - for(var/image/hud in client.images) - if(findtext(hud.icon_state,"hud",1,4)) - client.images -= hud - med_hud_users -= src - sec_hud_users -= src +/atom/proc/remove_from_all_huds() + for(var/datum/hud/hud in huds) hud.remove_from_hud(src) -//Adds one set of data hud images -/mob/proc/add_data_hud(var/hud_type, var/hud_mode) - if(!client) +//this is ugly +//don't use these if you don't need to +/proc/get_data_hud_datum(hud_type, hud_level) + var/myhud = 0 + switch(hud_type) + if(DATA_HUD_SECURITY) + switch(hud_level) + if(DATA_HUD_BASIC) + myhud = DATA_HUD_SECURITY_BASIC + if(DATA_HUD_ADVANCED) + myhud = DATA_HUD_SECURITY_ADVANCED + if(DATA_HUD_MEDICAL) + switch(hud_level) + if(DATA_HUD_BASIC) + myhud = DATA_HUD_MEDICAL_BASIC + if(DATA_HUD_ADVANCED) + myhud = DATA_HUD_MEDICAL_ADVANCED + return myhud + +/mob/proc/access_data_hud(hud_type, hud_level) + var/myhud = get_data_hud_datum(hud_type, hud_level) + if(myhud) + var/datum/hud/data/H = huds[myhud] + H.add_hud_to(src) + +/mob/proc/reset_data_hud(hud_type, hud_level) + var/myhud = get_data_hud_datum(hud_type, hud_level) + if(myhud) + var/datum/hud/data/H = huds[myhud] + H.remove_hud_from(src) + +/datum/hud + var/list/image/hudimages = list() //list of all hud image overlays + var/list/mob/hudusers = list() //list with all mobs who can see the hud + var/hud_type = 0 //hud_list[hud_type] will have icons to be shown. see __DEFINES/misc.dm for a list of the available types + var/list/hud_icons = list() //these will be the indexes for hud_list[hud_type][] + +/datum/hud/proc/remove_hud_from(var/mob/M) + if(!M.client) return + M.client.images -= hudimages + hudusers -= M - for(var/mob/living/carbon/human/H in mob_list) - switch(hud_type) - if(DATA_HUD_MEDICAL) - med_hud_users[src] = hud_mode - add_single_med_hud(H) - if(DATA_HUD_SECURITY) - sec_hud_users[src] = hud_mode - add_single_sec_hud(H) +/datum/hud/proc/remove_from_hud(var/atom/A) + for(var/image/I in hudimages) + if(I.loc == A) + hudimages -= I + for(var/mob/M in hudusers) + M.client.images -= I + +/datum/hud/proc/remove_from_single_hud(var/mob/M, var/atom/A) + if(!M.client || !(hud_type in A.hud_list) || !(M in hudusers)) + return + for(var/icontype in hud_icons) + M.client.images -= A.hud_list[hud_type][hud_icons] + +/datum/hud/proc/add_hud_to(var/mob/M) + if(!M.client) + return + hudusers |= M + add_images_to(M) + +/datum/hud/proc/add_images_to(var/mob/M) + M.client.images += hudimages + +/datum/hud/proc/add_to_hud(var/atom/A) + if(hud_type in A.hud_list) + for(var/icontype in hud_icons) + var/list/image/AH = A.hud_list[hud_type][hud_icons] + hudimages += AH + for(var/mob/M in hudusers) + if(M.client) + M.client.images += AH + +/datum/hud/proc/add_to_single_hud(var/mob/M, var/atom/A) + if(!M.client || !(hud_type in A.hud_list) || !(M in hudusers)) + return + for(var/icontype in hud_icons) + M.client.images |= A.hud_list[hud_type][hud_icons] + +/datum/hud/data + +/datum/hud/data/medical + hud_type = DATA_HUD_MEDICAL + hud_icons = list(HEALTH_HUD, STATUS_HUD) + +/datum/hud/data/medical/basic + +/datum/hud/data/medical/basic/add_images_to(var/mob/M) + for(var/image/I in hudimages) + var/mob/living/carbon/human/H = I.loc + var/obj/item/clothing/under/U = H.w_uniform + if(!istype(U)) continue + if(U.sensor_mode <= 2) continue + M.client.images += I + +/datum/hud/data/medical/basic/proc/update_suit_sensors(var/mob/living/carbon/human/H, sensor_level) + if(!istype(H)) return + var/list/image/Himages = list() + for(var/image/I in hudimages) + if(I.loc == H) Himages |= I + for(var/mob/M in hudusers) + if(!M.client) continue + if(sensor_level <= 2) + M.client.images -= Himages + else + M.client.images |= Himages + +/datum/hud/data/medical/advanced + +/datum/hud/data/security + hud_type = DATA_HUD_SECURITY + +/datum/hud/data/security/basic + hud_icons = list(ID_HUD) + +/datum/hud/data/security/advanced + hud_icons = list(ID_HUD, IMPTRACK_HUD, IMPLOYAL_HUD, IMPCHEM_HUD, WANTED_HUD) + +/* MED/SEC HUD HOOKS */ /* - * THESE SHOULD BE CALLED BY THE MOB SHOWING THE HUD + * THESE HOOKS SHOULD BE CALLED BY THE MOB SHOWING THE HUD */ -/mob/living/carbon/human/proc/add_to_all_data_huds() - add_to_data_hud(DATA_HUD_MEDICAL) - add_to_data_hud(DATA_HUD_SECURITY) - -//Add a mob's HUD to all HUD users -/mob/living/carbon/human/proc/add_to_data_hud(var/hud_type) - switch(hud_type) - if(DATA_HUD_MEDICAL) - for(var/mob/M in med_hud_users) - M.add_single_med_hud(src) - if(DATA_HUD_SECURITY) - for(var/mob/M in sec_hud_users) - M.add_single_sec_hud(src) - -/mob/living/carbon/human/proc/remove_from_all_data_huds() - remove_from_data_hud(DATA_HUD_MEDICAL) - remove_from_data_hud(DATA_HUD_SECURITY) - -//Removes a mob's HUD from all HUD users -/mob/living/carbon/human/proc/remove_from_data_hud(var/hud_type) - switch(hud_type) - if(DATA_HUD_MEDICAL) - for(var/mob/M in med_hud_users) - M.remove_single_med_hud(src) - if(DATA_HUD_SECURITY) - for(var/mob/M in sec_hud_users) - M.remove_single_sec_hud(src) - /*********************************************** Medical HUD! Basic mode needs suit sensors on. ************************************************/ -/* - * THESE SHOULD BE CALLED BY THE MOB SEEING THE HUD - */ - -//Adds a single mob's med HUD to view -/mob/proc/add_single_med_hud(var/mob/living/carbon/human/H) - var/mode = med_hud_users[src] - if(!mode || !client) - return - if(mode == DATA_HUD_BASIC) //Used for the AI's MedHUD, only works if the patient has activated suit sensors. - if(!H.w_uniform) return - var/obj/item/clothing/under/U = H.w_uniform - if(U.sensor_mode <= 2) return - client.images += H.hud_list[HEALTH_HUD] - client.images += H.hud_list[STATUS_HUD] - -//Deletes a single mob's med HUD from view -/mob/proc/remove_single_med_hud(var/mob/living/carbon/human/H) - if(!client) - return - client.images -= H.hud_list[HEALTH_HUD] - client.images -= H.hud_list[STATUS_HUD] - - -/* - * THESE SHOULD BE CALLED BY THE MOB SHOWING THE HUD - */ - -//called when a human changes suit sensors -/mob/living/carbon/human/proc/update_suit_sensors(var/obj/item/clothing/under/w_uniform) - var/sensor_level = 0 - if(w_uniform) sensor_level = w_uniform.sensor_mode - update_med_hud_suit_sensors(sensor_level) - ..() - -//called when a human changes suit sensors -/mob/living/carbon/human/proc/update_med_hud_suit_sensors(sensor_level) - for(var/mob/M in med_hud_users) - if(med_hud_users[M] == DATA_HUD_BASIC) - sensor_level > 2 ? M.add_single_med_hud(src) : M.remove_single_med_hud(src) +//HELPERS //called when a human changes virus /mob/living/carbon/human/proc/check_virus() @@ -145,9 +180,18 @@ var/list/sec_hud_users = list() return "health-100" return "0" +//HOOKS + +//called when a human changes suit sensors +/mob/living/carbon/human/proc/update_suit_sensors(var/obj/item/clothing/under/w_uniform) + var/sensor_level = 0 + if(w_uniform) sensor_level = w_uniform.sensor_mode + var/datum/hud/data/medical/basic/B = huds[DATA_HUD_MEDICAL_BASIC] + B.update_suit_sensors(src, sensor_level) + //called when a human changes health /mob/living/carbon/human/proc/med_hud_set_health() - var/image/holder = hud_list[HEALTH_HUD] + var/image/holder = hud_list[DATA_HUD_MEDICAL][HEALTH_HUD] if(stat == 2) holder.icon_state = "hudhealth-100" else @@ -155,7 +199,7 @@ var/list/sec_hud_users = list() //called when a human changes stat, virus or XENO_HOST /mob/living/carbon/human/proc/med_hud_set_status() - var/image/holder = hud_list[STATUS_HUD] + var/image/holder = hud_list[DATA_HUD_MEDICAL][STATUS_HUD] if(stat == 2) holder.icon_state = "huddead" else if(status_flags & XENO_HOST) @@ -170,38 +214,10 @@ var/list/sec_hud_users = list() Security HUDs! Basic mode shows only the job. ************************************************/ -/* - * THESE SHOULD BE CALLED BY THE MOB SEEING THE HUD - */ -//Adds a single mob's sec HUD to view -/mob/proc/add_single_sec_hud(var/mob/living/carbon/human/H) - var/mode = sec_hud_users[src] - if(!mode || !client) - return - client.images += H.hud_list[ID_HUD] - if(mode == DATA_HUD_ADVANCED) //If not set to DATA_HUD_ADVANCED, the Sec HUD will only display the job. - client.images += H.hud_list[IMPTRACK_HUD] - client.images += H.hud_list[IMPLOYAL_HUD] - client.images += H.hud_list[IMPCHEM_HUD] - client.images += H.hud_list[WANTED_HUD] +//HOOKS -//Deletes a single mob's sec HUD from view -/mob/proc/remove_single_sec_hud(var/mob/living/carbon/human/H) - if(!client) - return - client.images -= H.hud_list[ID_HUD] - client.images -= H.hud_list[IMPTRACK_HUD] - client.images -= H.hud_list[IMPLOYAL_HUD] - client.images -= H.hud_list[IMPCHEM_HUD] - client.images -= H.hud_list[WANTED_HUD] - -/* - * THESE SHOULD BE CALLED BY THE MOB SHOWING THE HUD - */ - -//These should only be called when necessary in order to reduce lag /mob/living/carbon/human/proc/sec_hud_set_ID() - var/image/holder = hud_list[ID_HUD] + var/image/holder = hud_list[DATA_HUD_SECURITY][ID_HUD] holder.icon_state = "hudno_id" if(wear_id) holder.icon_state = "hud[ckey(wear_id.GetJobName())]" @@ -209,21 +225,19 @@ var/list/sec_hud_users = list() /mob/living/carbon/human/proc/sec_hud_set_implants() var/image/holder for(var/I in list(IMPTRACK_HUD, IMPLOYAL_HUD, IMPCHEM_HUD)) - holder = hud_list[I] + holder = hud_list[DATA_HUD_SECURITY][I] holder.icon_state = null for(var/obj/item/weapon/implant/I in src) if(I.implanted) if(istype(I,/obj/item/weapon/implant/tracking)) - holder = hud_list[IMPTRACK_HUD] + holder = hud_list[DATA_HUD_SECURITY][IMPTRACK_HUD] holder.icon_state = "hud_imp_tracking" else if(istype(I,/obj/item/weapon/implant/loyalty)) - holder = hud_list[IMPLOYAL_HUD] + holder = hud_list[DATA_HUD_SECURITY][IMPLOYAL_HUD] holder.icon_state = "hud_imp_loyal" else if(istype(I,/obj/item/weapon/implant/chem)) - holder = hud_list[IMPCHEM_HUD] + holder = hud_list[DATA_HUD_SECURITY][IMPCHEM_HUD] holder.icon_state = "hud_imp_chem" - else - continue /mob/living/carbon/human/proc/sec_hud_set_security_status() var/image/holder @@ -231,11 +245,10 @@ var/list/sec_hud_users = list() if(perpname) var/datum/data/record/R = find_record("name", perpname, data_core.security) if(R) - holder = hud_list[WANTED_HUD] + holder = hud_list[DATA_HUD_SECURITY][WANTED_HUD] switch(R.fields["criminal"]) if("*Arrest*") holder.icon_state = "hudwanted" if("Incarcerated") holder.icon_state = "hudincarcerated" if("Parolled") holder.icon_state = "hudparolled" if("Discharged") holder.icon_state = "huddischarged" - else holder.icon_state = null - + else holder.icon_state = null diff --git a/code/game/mecha/medical/odysseus.dm b/code/game/mecha/medical/odysseus.dm index fe4b1eaf95f..4eb74496ddd 100644 --- a/code/game/mecha/medical/odysseus.dm +++ b/code/game/mecha/medical/odysseus.dm @@ -16,7 +16,8 @@ if(H.glasses && istype(H.glasses, /obj/item/clothing/glasses/hud)) occupant_message("Your [H.glasses] prevent you from using the built-in medical hud.") else - H.add_data_hud(DATA_HUD_MEDICAL, DATA_HUD_ADVANCED) + var/datum/hud/data/medical/advanced/A = huds[DATA_HUD_MEDICAL_ADVANCED] + A.add_hud_to(H) builtin_hud_user = 1 return 1 else @@ -25,7 +26,8 @@ /obj/mecha/medical/odysseus/go_out() if(ishuman(occupant) && builtin_hud_user) var/mob/living/carbon/human/H = occupant - H.reset_all_data_huds() + var/datum/hud/data/medical/advanced/A = huds[DATA_HUD_MEDICAL_ADVANCED] + A.remove_hud_from(H) ..() return diff --git a/code/modules/clothing/glasses/hud.dm b/code/modules/clothing/glasses/hud.dm index 153141b046b..ca98414000f 100644 --- a/code/modules/clothing/glasses/hud.dm +++ b/code/modules/clothing/glasses/hud.dm @@ -7,10 +7,12 @@ /obj/item/clothing/glasses/hud/equipped(mob/living/carbon/human/user, slot) if(slot == slot_glasses) - user.add_data_hud(hud_type,DATA_HUD_ADVANCED) + var/datum/hud/H = huds[hud_type] + H.add_hud_to(user) /obj/item/clothing/glasses/hud/dropped(mob/living/carbon/human/user) - user.reset_all_data_huds() + var/datum/hud/H = huds[hud_type] + H.remove_hud_from(user) /obj/item/clothing/glasses/hud/emp_act(severity) if(emagged == 0) @@ -21,7 +23,7 @@ name = "Health Scanner HUD" desc = "A heads-up display that scans the humans in view and provides accurate data about their health status." icon_state = "healthhud" - hud_type = DATA_HUD_MEDICAL + hud_type = DATA_HUD_MEDICAL_ADVANCED /obj/item/clothing/glasses/hud/health/night name = "Night Vision Health Scanner HUD" @@ -35,7 +37,7 @@ name = "Security HUD" desc = "A heads-up display that scans the humans in view and provides accurate data about their ID status and security records." icon_state = "securityhud" - hud_type = DATA_HUD_SECURITY + hud_type = DATA_HUD_SECURITY_ADVANCED /obj/item/clothing/glasses/hud/security/eyepatch name = "Eyepatch HUD" diff --git a/code/modules/mob/living/carbon/human/human.dm b/code/modules/mob/living/carbon/human/human.dm index 4b379b28c70..31826e9b362 100644 --- a/code/modules/mob/living/carbon/human/human.dm +++ b/code/modules/mob/living/carbon/human/human.dm @@ -4,7 +4,6 @@ voice_name = "Unknown" icon = 'icons/mob/human.dmi' icon_state = "caucasian1_m_s" - var/list/hud_list = list() @@ -27,15 +26,7 @@ internal_organs += new /obj/item/organ/heart internal_organs += new /obj/item/organ/brain - for(var/i=0;i<7;i++) // 2 for medHUDs and 5 for secHUDs - hud_list += image('icons/mob/hud.dmi', src, "") - - med_hud_set_health() - med_hud_set_status() - sec_hud_set_ID() - sec_hud_set_implants() - sec_hud_set_security_status() - add_to_all_data_huds() + prepare_data_huds() // for spawned humans; overwritten by other code create_dna(src) @@ -44,10 +35,31 @@ ..() +/mob/living/carbon/human/proc/prepare_data_huds() + //Populates the human hud_list + for(var/i=1;i<=2;i++) // Humans have 2 sets of data hud icons + hud_list[i] = list() + + for(var/i=1;i<=2;i++) // 2 icons for medHUDs... + hud_list[DATA_HUD_MEDICAL] += image('icons/mob/hud.dmi', src, "") + + for(var/i=1;i<=5;i++) // ...and 5 for secHUDs + hud_list[DATA_HUD_SECURITY] += image('icons/mob/hud.dmi', src, "") + + //Update all our hud images... + med_hud_set_health() + med_hud_set_status() + sec_hud_set_ID() + sec_hud_set_implants() + sec_hud_set_security_status() + //...and display them + add_to_all_huds() + + /mob/living/carbon/human/Destroy() for(var/atom/movable/organelle in organs) qdel(organelle) - remove_from_all_data_huds() + remove_from_all_huds() return ..() /mob/living/carbon/human/Bump(atom/movable/AM as mob|obj, yes) diff --git a/code/modules/mob/living/silicon/pai/software.dm b/code/modules/mob/living/silicon/pai/software.dm index 0e4f1c968ff..ea710a42e85 100644 --- a/code/modules/mob/living/silicon/pai/software.dm +++ b/code/modules/mob/living/silicon/pai/software.dm @@ -239,11 +239,11 @@ if("securityhud") if(href_list["toggle"]) secHUD = !secHUD - secHUD ? add_data_hud(DATA_HUD_SECURITY,sensor_level) : reset_all_data_huds() + secHUD ? access_data_hud(DATA_HUD_SECURITY,sensor_level) : reset_data_hud(DATA_HUD_SECURITY,sensor_level) if("medicalhud") if(href_list["toggle"]) medHUD = !medHUD - medHUD ? add_data_hud(DATA_HUD_MEDICAL,sensor_level) : reset_all_data_huds() + medHUD ? access_data_hud(DATA_HUD_MEDICAL,sensor_level) : reset_data_hud(DATA_HUD_MEDICAL,sensor_level) if("translator") if(href_list["toggle"]) languages = languages == ALL ? HUMAN & ROBOT : ALL diff --git a/code/modules/mob/living/silicon/silicon.dm b/code/modules/mob/living/silicon/silicon.dm index 22f014e2937..73ddcdfba9e 100644 --- a/code/modules/mob/living/silicon/silicon.dm +++ b/code/modules/mob/living/silicon/silicon.dm @@ -320,13 +320,14 @@ /mob/living/silicon/verb/sensor_mode() set name = "Set Sensor Augmentation" var/sensor_type = input("Please select sensor type.", "Sensor Integration", null) in list("Security", "Medical","Disable") - reset_all_data_huds() + reset_data_hud(DATA_HUD_SECURITY, sensor_level) + reset_data_hud(DATA_HUD_MEDICAL, sensor_level) switch(sensor_type) if ("Security") - add_data_hud(DATA_HUD_SECURITY,sensor_level) + access_data_hud(DATA_HUD_SECURITY,sensor_level) src << "Security records overlay enabled." if ("Medical") - add_data_hud(DATA_HUD_MEDICAL,sensor_level) + access_data_hud(DATA_HUD_MEDICAL,sensor_level) src << "Life signs monitor overlay enabled." if ("Disable") src << "Sensor augmentations disabled." From fae2ffc3ee12618a51a5c7a022c7c4bf384259ef Mon Sep 17 00:00:00 2001 From: tkdrg Date: Mon, 17 Nov 2014 18:00:06 -0300 Subject: [PATCH 4/6] Datum-based huds! Lays down the framework not only for data huds but also for antag huds. --- code/__DEFINES/misc.dm | 6 - code/__DEFINES/sight.dm | 4 +- code/datums/hud.dm | 51 ++++++ code/game/data_huds.dm | 154 +++--------------- code/modules/clothing/clothing.dm | 2 +- code/modules/mob/living/carbon/human/human.dm | 12 +- .../mob/living/carbon/human/inventory.dm | 5 +- code/modules/mob/living/silicon/ai/ai.dm | 3 +- .../mob/living/silicon/pai/software.dm | 8 +- code/modules/mob/living/silicon/silicon.dm | 24 ++- tgstation.dme | 1 + 11 files changed, 113 insertions(+), 157 deletions(-) create mode 100644 code/datums/hud.dm diff --git a/code/__DEFINES/misc.dm b/code/__DEFINES/misc.dm index 21b3b0cb144..4bd75185e3a 100644 --- a/code/__DEFINES/misc.dm +++ b/code/__DEFINES/misc.dm @@ -54,12 +54,6 @@ //data HUD (medhud, sechud) defines //Don't forget to update human/New() if you change these! -#define DATA_HUD_SECURITY 1 -#define DATA_HUD_MEDICAL 2 - -#define DATA_HUD_BASIC 1 -#define DATA_HUD_ADVANCED 2 - #define DATA_HUD_SECURITY_BASIC 1 #define DATA_HUD_SECURITY_ADVANCED 2 #define DATA_HUD_MEDICAL_BASIC 3 diff --git a/code/__DEFINES/sight.dm b/code/__DEFINES/sight.dm index 6d8865816df..69ced6e7ec2 100644 --- a/code/__DEFINES/sight.dm +++ b/code/__DEFINES/sight.dm @@ -22,7 +22,9 @@ #define BORGTHERM 2 #define BORGXRAY 4 -// for secHUDs and medHUDs and variants. The number is the location of the image on the list hud_list of humans. +// for secHUDs and medHUDs and variants. The number is the location of the image on the list hud_list +// note: if you add more HUDs, even for non-human atoms, make sure to use unique numbers for the defines! +// /datum/hud expects these to be unique #define HEALTH_HUD 1 // dead, alive, sick, health status #define STATUS_HUD 2 // a simple line rounding the mob's number health #define ID_HUD 3 // the job asigned to your ID diff --git a/code/datums/hud.dm b/code/datums/hud.dm new file mode 100644 index 00000000000..01175665528 --- /dev/null +++ b/code/datums/hud.dm @@ -0,0 +1,51 @@ +/* HUD DATUMS */ + +var/datum/hud/huds = list( \ + DATA_HUD_SECURITY_BASIC = new/datum/hud/data/security/basic(), \ + DATA_HUD_SECURITY_ADVANCED = new/datum/hud/data/security/advanced(), \ + DATA_HUD_MEDICAL_BASIC = new/datum/hud/data/medical/basic(), \ + DATA_HUD_MEDICAL_ADVANCED = new/datum/hud/data/medical/advanced() \ + ) + +/atom/proc/add_to_all_huds() + for(var/datum/hud/hud in huds) hud.add_to_hud(src) + +/atom/proc/remove_from_all_huds() + for(var/datum/hud/hud in huds) hud.remove_from_hud(src) + +/datum/hud + var/list/atom/hudatoms = list() //list of all atoms which display this hud + var/list/mob/hudusers = list() //list with all mobs who can see the hud + var/list/hud_icons = list() //these will be the indexes for the atom's hud_list + +/datum/hud/proc/remove_hud_from(var/mob/M) + for(var/atom/A in hudatoms) + remove_from_single_hud(M, A) + hudusers -= M + +/datum/hud/proc/remove_from_hud(var/atom/A) + for(var/mob/M in hudusers) + remove_from_single_hud(M, A) + hudatoms -= A + +/datum/hud/proc/remove_from_single_hud(var/mob/M, var/atom/A) //unsafe, no sanity apart from client + if(!M.client) + return + for(var/i in hud_icons) + M.client.images -= A.hud_list[i] + +/datum/hud/proc/add_hud_to(var/mob/M) + hudusers |= M + for(var/atom/A in hudatoms) + add_to_single_hud(M, A) + +/datum/hud/proc/add_to_hud(var/atom/A) + hudatoms |= A + for(var/mob/M in hudusers) + add_to_single_hud(M, A) + +/datum/hud/proc/add_to_single_hud(var/mob/M, var/atom/A) //unsafe, no sanity apart from client + if(!M.client) + return + for(var/i in hud_icons) + M.client.images |= A.hud_list[i] diff --git a/code/game/data_huds.dm b/code/game/data_huds.dm index 77c2ebf1f6a..908024c2835 100644 --- a/code/game/data_huds.dm +++ b/code/game/data_huds.dm @@ -1,136 +1,35 @@ - /* +/* * Data HUDs are now passive in order to reduce lag. * Add then to a mob using add_data_hud. * Update them when needed with the appropriate proc. (see below) */ -/* HUD DATUMS */ - -var/datum/hud/huds = list( \ - DATA_HUD_SECURITY_BASIC = new/datum/hud/data/security/basic(), \ - DATA_HUD_SECURITY_ADVANCED = new/datum/hud/data/security/advanced(), \ - DATA_HUD_MEDICAL_BASIC = new/datum/hud/data/medical/basic(), \ - DATA_HUD_MEDICAL_ADVANCED = new/datum/hud/data/medical/advanced() \ - ) - -/atom/proc/add_to_all_huds() - for(var/datum/hud/hud in huds) hud.add_to_hud(src) - -/atom/proc/remove_from_all_huds() - for(var/datum/hud/hud in huds) hud.remove_from_hud(src) - -//this is ugly -//don't use these if you don't need to -/proc/get_data_hud_datum(hud_type, hud_level) - var/myhud = 0 - switch(hud_type) - if(DATA_HUD_SECURITY) - switch(hud_level) - if(DATA_HUD_BASIC) - myhud = DATA_HUD_SECURITY_BASIC - if(DATA_HUD_ADVANCED) - myhud = DATA_HUD_SECURITY_ADVANCED - if(DATA_HUD_MEDICAL) - switch(hud_level) - if(DATA_HUD_BASIC) - myhud = DATA_HUD_MEDICAL_BASIC - if(DATA_HUD_ADVANCED) - myhud = DATA_HUD_MEDICAL_ADVANCED - return myhud - -/mob/proc/access_data_hud(hud_type, hud_level) - var/myhud = get_data_hud_datum(hud_type, hud_level) - if(myhud) - var/datum/hud/data/H = huds[myhud] - H.add_hud_to(src) - -/mob/proc/reset_data_hud(hud_type, hud_level) - var/myhud = get_data_hud_datum(hud_type, hud_level) - if(myhud) - var/datum/hud/data/H = huds[myhud] - H.remove_hud_from(src) - -/datum/hud - var/list/image/hudimages = list() //list of all hud image overlays - var/list/mob/hudusers = list() //list with all mobs who can see the hud - var/hud_type = 0 //hud_list[hud_type] will have icons to be shown. see __DEFINES/misc.dm for a list of the available types - var/list/hud_icons = list() //these will be the indexes for hud_list[hud_type][] - -/datum/hud/proc/remove_hud_from(var/mob/M) - if(!M.client) - return - M.client.images -= hudimages - hudusers -= M - -/datum/hud/proc/remove_from_hud(var/atom/A) - for(var/image/I in hudimages) - if(I.loc == A) - hudimages -= I - for(var/mob/M in hudusers) - M.client.images -= I - -/datum/hud/proc/remove_from_single_hud(var/mob/M, var/atom/A) - if(!M.client || !(hud_type in A.hud_list) || !(M in hudusers)) - return - for(var/icontype in hud_icons) - M.client.images -= A.hud_list[hud_type][hud_icons] - -/datum/hud/proc/add_hud_to(var/mob/M) - if(!M.client) - return - hudusers |= M - add_images_to(M) - -/datum/hud/proc/add_images_to(var/mob/M) - M.client.images += hudimages - -/datum/hud/proc/add_to_hud(var/atom/A) - if(hud_type in A.hud_list) - for(var/icontype in hud_icons) - var/list/image/AH = A.hud_list[hud_type][hud_icons] - hudimages += AH - for(var/mob/M in hudusers) - if(M.client) - M.client.images += AH - -/datum/hud/proc/add_to_single_hud(var/mob/M, var/atom/A) - if(!M.client || !(hud_type in A.hud_list) || !(M in hudusers)) - return - for(var/icontype in hud_icons) - M.client.images |= A.hud_list[hud_type][hud_icons] +//see code/datum/hud.dm for the generic hud datum /datum/hud/data /datum/hud/data/medical - hud_type = DATA_HUD_MEDICAL hud_icons = list(HEALTH_HUD, STATUS_HUD) /datum/hud/data/medical/basic -/datum/hud/data/medical/basic/add_images_to(var/mob/M) - for(var/image/I in hudimages) - var/mob/living/carbon/human/H = I.loc - var/obj/item/clothing/under/U = H.w_uniform - if(!istype(U)) continue - if(U.sensor_mode <= 2) continue - M.client.images += I +/datum/hud/data/medical/basic/proc/check_sensors(var/mob/living/carbon/human/H) + if(!istype(H)) return 0 + var/obj/item/clothing/under/U = H.w_uniform + if(!istype(U)) return 0 + if(U.sensor_mode <= 2) return 0 + return 1 -/datum/hud/data/medical/basic/proc/update_suit_sensors(var/mob/living/carbon/human/H, sensor_level) - if(!istype(H)) return - var/list/image/Himages = list() - for(var/image/I in hudimages) - if(I.loc == H) Himages |= I - for(var/mob/M in hudusers) - if(!M.client) continue - if(sensor_level <= 2) - M.client.images -= Himages - else - M.client.images |= Himages +/datum/hud/data/medical/basic/add_to_single_hud(var/mob/M, var/mob/living/carbon/human/H) + if(check_sensors(H)) + ..() + +/datum/hud/data/medical/basic/proc/update_suit_sensors(var/mob/living/carbon/human/H) + check_sensors(H) ? add_to_hud(H) : remove_from_hud(H) /datum/hud/data/medical/advanced /datum/hud/data/security - hud_type = DATA_HUD_SECURITY /datum/hud/data/security/basic hud_icons = list(ID_HUD) @@ -183,15 +82,13 @@ var/datum/hud/huds = list( \ //HOOKS //called when a human changes suit sensors -/mob/living/carbon/human/proc/update_suit_sensors(var/obj/item/clothing/under/w_uniform) - var/sensor_level = 0 - if(w_uniform) sensor_level = w_uniform.sensor_mode +/mob/living/carbon/human/proc/update_suit_sensors() var/datum/hud/data/medical/basic/B = huds[DATA_HUD_MEDICAL_BASIC] - B.update_suit_sensors(src, sensor_level) + B.update_suit_sensors(src) //called when a human changes health /mob/living/carbon/human/proc/med_hud_set_health() - var/image/holder = hud_list[DATA_HUD_MEDICAL][HEALTH_HUD] + var/image/holder = hud_list[HEALTH_HUD] if(stat == 2) holder.icon_state = "hudhealth-100" else @@ -199,7 +96,7 @@ var/datum/hud/huds = list( \ //called when a human changes stat, virus or XENO_HOST /mob/living/carbon/human/proc/med_hud_set_status() - var/image/holder = hud_list[DATA_HUD_MEDICAL][STATUS_HUD] + var/image/holder = hud_list[STATUS_HUD] if(stat == 2) holder.icon_state = "huddead" else if(status_flags & XENO_HOST) @@ -217,26 +114,26 @@ var/datum/hud/huds = list( \ //HOOKS /mob/living/carbon/human/proc/sec_hud_set_ID() - var/image/holder = hud_list[DATA_HUD_SECURITY][ID_HUD] + var/image/holder = hud_list[ID_HUD] holder.icon_state = "hudno_id" if(wear_id) holder.icon_state = "hud[ckey(wear_id.GetJobName())]" /mob/living/carbon/human/proc/sec_hud_set_implants() var/image/holder - for(var/I in list(IMPTRACK_HUD, IMPLOYAL_HUD, IMPCHEM_HUD)) - holder = hud_list[DATA_HUD_SECURITY][I] + for(var/i in list(IMPTRACK_HUD, IMPLOYAL_HUD, IMPCHEM_HUD)) + holder = hud_list[i] holder.icon_state = null for(var/obj/item/weapon/implant/I in src) if(I.implanted) if(istype(I,/obj/item/weapon/implant/tracking)) - holder = hud_list[DATA_HUD_SECURITY][IMPTRACK_HUD] + holder = hud_list[IMPTRACK_HUD] holder.icon_state = "hud_imp_tracking" else if(istype(I,/obj/item/weapon/implant/loyalty)) - holder = hud_list[DATA_HUD_SECURITY][IMPLOYAL_HUD] + holder = hud_list[IMPLOYAL_HUD] holder.icon_state = "hud_imp_loyal" else if(istype(I,/obj/item/weapon/implant/chem)) - holder = hud_list[DATA_HUD_SECURITY][IMPCHEM_HUD] + holder = hud_list[IMPCHEM_HUD] holder.icon_state = "hud_imp_chem" /mob/living/carbon/human/proc/sec_hud_set_security_status() @@ -245,10 +142,11 @@ var/datum/hud/huds = list( \ if(perpname) var/datum/data/record/R = find_record("name", perpname, data_core.security) if(R) - holder = hud_list[DATA_HUD_SECURITY][WANTED_HUD] + holder = hud_list[WANTED_HUD] switch(R.fields["criminal"]) if("*Arrest*") holder.icon_state = "hudwanted" if("Incarcerated") holder.icon_state = "hudincarcerated" if("Parolled") holder.icon_state = "hudparolled" if("Discharged") holder.icon_state = "huddischarged" else holder.icon_state = null + diff --git a/code/modules/clothing/clothing.dm b/code/modules/clothing/clothing.dm index 16a22819adf..3f96cd45378 100644 --- a/code/modules/clothing/clothing.dm +++ b/code/modules/clothing/clothing.dm @@ -287,7 +287,7 @@ atom/proc/generate_female_clothing(index,t_color,icon) if(istype(M,/mob/living/carbon/human)) var/mob/living/carbon/human/H = M if(H.w_uniform == src) - H.update_suit_sensors(src) + H.update_suit_sensors() ..() /obj/item/clothing/under/verb/rolldown() diff --git a/code/modules/mob/living/carbon/human/human.dm b/code/modules/mob/living/carbon/human/human.dm index 31826e9b362..83ede6120b3 100644 --- a/code/modules/mob/living/carbon/human/human.dm +++ b/code/modules/mob/living/carbon/human/human.dm @@ -36,15 +36,8 @@ ..() /mob/living/carbon/human/proc/prepare_data_huds() - //Populates the human hud_list - for(var/i=1;i<=2;i++) // Humans have 2 sets of data hud icons - hud_list[i] = list() - - for(var/i=1;i<=2;i++) // 2 icons for medHUDs... - hud_list[DATA_HUD_MEDICAL] += image('icons/mob/hud.dmi', src, "") - - for(var/i=1;i<=5;i++) // ...and 5 for secHUDs - hud_list[DATA_HUD_SECURITY] += image('icons/mob/hud.dmi', src, "") + for(var/i=1;i<=7;i++) // 2 icons for medHUDs and 5 for secHUDs + hud_list += image('icons/mob/hud.dmi', src, "") //Update all our hud images... med_hud_set_health() @@ -55,7 +48,6 @@ //...and display them add_to_all_huds() - /mob/living/carbon/human/Destroy() for(var/atom/movable/organelle in organs) qdel(organelle) diff --git a/code/modules/mob/living/carbon/human/inventory.dm b/code/modules/mob/living/carbon/human/inventory.dm index 49b51a2c0df..6da553aaf24 100644 --- a/code/modules/mob/living/carbon/human/inventory.dm +++ b/code/modules/mob/living/carbon/human/inventory.dm @@ -260,7 +260,7 @@ if(belt) unEquip(belt) w_uniform = null - update_suit_sensors(w_uniform) + update_suit_sensors() update_inv_w_uniform(0) else if(I == gloves) gloves = null @@ -378,7 +378,7 @@ update_inv_wear_suit(redraw_mob) if(slot_w_uniform) w_uniform = I - update_suit_sensors(w_uniform) + update_suit_sensors() update_inv_w_uniform(redraw_mob) if(slot_l_store) l_store = I @@ -396,5 +396,4 @@ else src << "You are trying to equip this item to an unsupported inventory slot. Report this to a coder!" return - update_action_buttons() diff --git a/code/modules/mob/living/silicon/ai/ai.dm b/code/modules/mob/living/silicon/ai/ai.dm index e2fb40f91b4..1604a5941a4 100644 --- a/code/modules/mob/living/silicon/ai/ai.dm +++ b/code/modules/mob/living/silicon/ai/ai.dm @@ -20,7 +20,8 @@ var/list/ai_list = list() density = 1 status_flags = CANSTUN|CANPARALYSE|CANPUSH force_compose = 1 //This ensures that the AI always composes it's own hear message. Needed for hrefs and job display. - sensor_level = DATA_HUD_BASIC + med_hud = DATA_HUD_MEDICAL_BASIC + sec_hud = DATA_HUD_SECURITY_BASIC var/list/network = list("SS13") var/obj/machinery/camera/current = null var/list/connected_robots = list() diff --git a/code/modules/mob/living/silicon/pai/software.dm b/code/modules/mob/living/silicon/pai/software.dm index ea710a42e85..c57a52c8a8f 100644 --- a/code/modules/mob/living/silicon/pai/software.dm +++ b/code/modules/mob/living/silicon/pai/software.dm @@ -239,11 +239,15 @@ if("securityhud") if(href_list["toggle"]) secHUD = !secHUD - secHUD ? access_data_hud(DATA_HUD_SECURITY,sensor_level) : reset_data_hud(DATA_HUD_SECURITY,sensor_level) + remove_med_sec_hud() + if(secHUD) + add_sec_hud() if("medicalhud") if(href_list["toggle"]) medHUD = !medHUD - medHUD ? access_data_hud(DATA_HUD_MEDICAL,sensor_level) : reset_data_hud(DATA_HUD_MEDICAL,sensor_level) + remove_med_sec_hud() + if(medHUD) + add_med_hud() if("translator") if(href_list["toggle"]) languages = languages == ALL ? HUMAN & ROBOT : ALL diff --git a/code/modules/mob/living/silicon/silicon.dm b/code/modules/mob/living/silicon/silicon.dm index 73ddcdfba9e..36dbd64137f 100644 --- a/code/modules/mob/living/silicon/silicon.dm +++ b/code/modules/mob/living/silicon/silicon.dm @@ -15,7 +15,8 @@ var/lawcheck[1] var/ioncheck[1] - var/sensor_level = DATA_HUD_ADVANCED //Determines the sensor level to use + var/med_hud = DATA_HUD_MEDICAL_ADVANCED //Determines the med hud to use + var/sec_hud = DATA_HUD_SECURITY_ADVANCED //Determines the sec hud to use /mob/living/silicon/proc/cancelAlarm() return @@ -317,17 +318,30 @@ /mob/living/silicon/assess_threat() //Secbots won't hunt silicon units return -10 +/mob/living/silicon/proc/remove_med_sec_hud() + var/datum/hud/secsensor = huds[sec_hud] + var/datum/hud/medsensor = huds[med_hud] + secsensor.remove_hud_from(src) + medsensor.remove_hud_from(src) + +/mob/living/silicon/proc/add_sec_hud() + var/datum/hud/secsensor = huds[sec_hud] + secsensor.add_hud_to(src) + +/mob/living/silicon/proc/add_med_hud() + var/datum/hud/medsensor = huds[med_hud] + medsensor.add_hud_to(src) + /mob/living/silicon/verb/sensor_mode() set name = "Set Sensor Augmentation" var/sensor_type = input("Please select sensor type.", "Sensor Integration", null) in list("Security", "Medical","Disable") - reset_data_hud(DATA_HUD_SECURITY, sensor_level) - reset_data_hud(DATA_HUD_MEDICAL, sensor_level) + remove_med_sec_hud() switch(sensor_type) if ("Security") - access_data_hud(DATA_HUD_SECURITY,sensor_level) + add_sec_hud() src << "Security records overlay enabled." if ("Medical") - access_data_hud(DATA_HUD_MEDICAL,sensor_level) + add_med_hud() src << "Life signs monitor overlay enabled." if ("Disable") src << "Sensor augmentations disabled." diff --git a/tgstation.dme b/tgstation.dme index 7fadcb03746..435daef1607 100644 --- a/tgstation.dme +++ b/tgstation.dme @@ -129,6 +129,7 @@ #include "code\datums\datacore.dm" #include "code\datums\datumvars.dm" #include "code\datums\gas_mixture.dm" +#include "code\datums\hud.dm" #include "code\datums\mind.dm" #include "code\datums\mixed.dm" #include "code\datums\modules.dm" From 3bb478f12f5e8e50445ad6f33d9e75d8d8e62f0d Mon Sep 17 00:00:00 2001 From: tkdrg Date: Wed, 19 Nov 2014 19:21:00 -0300 Subject: [PATCH 5/6] Includes antag HUDs in the datum hud overhaul Makes hud_list associative, and introduces the /atom list hud_possible, which lists all the possible hud images a certain atom can provide. Replaces all the awful procs in the gamemodes with their new /datum/atom_hud versions, which are much shorter, simpler and faster. --- code/__DEFINES/hud.dm | 26 ++++ code/__DEFINES/misc.dm | 8 - code/__DEFINES/sight.dm | 11 -- code/datums/hud.dm | 52 +++++-- code/datums/mind.dm | 1 + code/game/atoms.dm | 4 +- code/game/data_huds.dm | 37 +++-- code/game/gamemodes/antag_hud.dm | 14 ++ code/game/gamemodes/cult/cult.dm | 49 +----- code/game/gamemodes/gang/gang.dm | 142 ++++-------------- code/game/gamemodes/nuclear/nuclear.dm | 43 +----- code/game/gamemodes/revolution/revolution.dm | 124 ++------------- code/game/machinery/cloning.dm | 15 +- code/game/mecha/medical/odysseus.dm | 4 +- code/modules/admin/verbs/one_click_antag.dm | 2 - code/modules/clothing/glasses/hud.dm | 4 +- code/modules/hydroponics/hydroponics.dm | 19 +-- code/modules/mob/dead/observer/observer.dm | 2 + code/modules/mob/living/carbon/human/human.dm | 15 +- .../mob/living/carbon/human/human_defines.dm | 3 +- code/modules/mob/living/carbon/human/life.dm | 1 + code/modules/mob/living/carbon/human/login.dm | 2 - code/modules/mob/living/login.dm | 56 +------ code/modules/mob/living/silicon/silicon.dm | 8 +- code/modules/mob/mob.dm | 6 +- code/modules/mob/mob_defines.dm | 1 + icons/mob/hud.dmi | Bin 2981 -> 3498 bytes icons/mob/mob.dmi | Bin 180398 -> 184272 bytes tgstation.dme | 2 + 29 files changed, 188 insertions(+), 463 deletions(-) create mode 100644 code/__DEFINES/hud.dm create mode 100644 code/game/gamemodes/antag_hud.dm diff --git a/code/__DEFINES/hud.dm b/code/__DEFINES/hud.dm new file mode 100644 index 00000000000..8842b23e433 --- /dev/null +++ b/code/__DEFINES/hud.dm @@ -0,0 +1,26 @@ +// for secHUDs and medHUDs and variants. The number is the location of the image on the list hud_list +// note: if you add more HUDs, even for non-human atoms, make sure to use unique numbers for the defines! +// /datum/atom_hud expects these to be unique +// these need to be strings in order to make them associative lists +#define HEALTH_HUD "1" // dead, alive, sick, health status +#define STATUS_HUD "2" // a simple line rounding the mob's number health +#define ID_HUD "3" // the job asigned to your ID +#define WANTED_HUD "4" // wanted, released, parroled, security status +#define IMPLOYAL_HUD "5" // loyality implant +#define IMPCHEM_HUD "6" // chemical implant +#define IMPTRACK_HUD "7" // tracking implant +//for antag huds. these are used at the /mob level +#define ANTAG_HUD "8" + +//data HUD (medhud, sechud) defines +//Don't forget to update human/New() if you change these! +#define DATA_HUD_SECURITY_BASIC 1 +#define DATA_HUD_SECURITY_ADVANCED 2 +#define DATA_HUD_MEDICAL_BASIC 3 +#define DATA_HUD_MEDICAL_ADVANCED 4 +//antag HUD defines +#define ANTAG_HUD_CULT 5 +#define ANTAG_HUD_REV 6 +#define ANTAG_HUD_OPS 7 +#define ANTAG_HUD_GANG_A 8 +#define ANTAG_HUD_GANG_B 9 diff --git a/code/__DEFINES/misc.dm b/code/__DEFINES/misc.dm index 4bd75185e3a..4af1675b4e7 100644 --- a/code/__DEFINES/misc.dm +++ b/code/__DEFINES/misc.dm @@ -51,11 +51,3 @@ #define STAGE_THREE 5 #define STAGE_FOUR 7 #define STAGE_FIVE 9 - -//data HUD (medhud, sechud) defines -//Don't forget to update human/New() if you change these! -#define DATA_HUD_SECURITY_BASIC 1 -#define DATA_HUD_SECURITY_ADVANCED 2 -#define DATA_HUD_MEDICAL_BASIC 3 -#define DATA_HUD_MEDICAL_ADVANCED 4 - diff --git a/code/__DEFINES/sight.dm b/code/__DEFINES/sight.dm index 69ced6e7ec2..40c56793bac 100644 --- a/code/__DEFINES/sight.dm +++ b/code/__DEFINES/sight.dm @@ -21,14 +21,3 @@ #define BORGMESON 1 #define BORGTHERM 2 #define BORGXRAY 4 - -// for secHUDs and medHUDs and variants. The number is the location of the image on the list hud_list -// note: if you add more HUDs, even for non-human atoms, make sure to use unique numbers for the defines! -// /datum/hud expects these to be unique -#define HEALTH_HUD 1 // dead, alive, sick, health status -#define STATUS_HUD 2 // a simple line rounding the mob's number health -#define ID_HUD 3 // the job asigned to your ID -#define WANTED_HUD 4 // wanted, released, parroled, security status -#define IMPLOYAL_HUD 5 // loyality implant -#define IMPCHEM_HUD 6 // chemical implant -#define IMPTRACK_HUD 7 // tracking implant diff --git a/code/datums/hud.dm b/code/datums/hud.dm index 01175665528..be80338e64e 100644 --- a/code/datums/hud.dm +++ b/code/datums/hud.dm @@ -1,50 +1,70 @@ /* HUD DATUMS */ -var/datum/hud/huds = list( \ - DATA_HUD_SECURITY_BASIC = new/datum/hud/data/security/basic(), \ - DATA_HUD_SECURITY_ADVANCED = new/datum/hud/data/security/advanced(), \ - DATA_HUD_MEDICAL_BASIC = new/datum/hud/data/medical/basic(), \ - DATA_HUD_MEDICAL_ADVANCED = new/datum/hud/data/medical/advanced() \ +//GLOBAL HUD LIST +var/datum/atom_hud/huds = list( \ + DATA_HUD_SECURITY_BASIC = new/datum/atom_hud/data/security/basic(), \ + DATA_HUD_SECURITY_ADVANCED = new/datum/atom_hud/data/security/advanced(), \ + DATA_HUD_MEDICAL_BASIC = new/datum/atom_hud/data/medical/basic(), \ + DATA_HUD_MEDICAL_ADVANCED = new/datum/atom_hud/data/medical/advanced(), \ + ANTAG_HUD_CULT = new/datum/atom_hud/antag(), \ + ANTAG_HUD_REV = new/datum/atom_hud/antag(), \ + ANTAG_HUD_OPS = new/datum/atom_hud/antag(), \ + ANTAG_HUD_GANG_A = new/datum/atom_hud/antag(), \ + ANTAG_HUD_GANG_B = new/datum/atom_hud/antag(), \ ) -/atom/proc/add_to_all_huds() - for(var/datum/hud/hud in huds) hud.add_to_hud(src) +/mob/proc/refresh_huds(var/mob/inherited_from = null) + var/mob/seek_for = (inherited_from) ? inherited_from : src + var/image/oldantagicon = seek_for.hud_list[ANTAG_HUD] + var/image/newantagicon = hud_list[ANTAG_HUD] + newantagicon.icon_state = oldantagicon.icon_state + if(istype(inherited_from, /mob/dead/observer)) + var/mob/dead/observer/G = inherited_from + for(var/datum/atom_hud/hud in G.oldhuds) + readd_hud(hud) + else + for(var/datum/atom_hud/hud in huds) + if(seek_for in hud.hudusers) + readd_hud(hud) -/atom/proc/remove_from_all_huds() - for(var/datum/hud/hud in huds) hud.remove_from_hud(src) +/mob/proc/readd_hud(var/datum/atom_hud/hud) + hud.add_hud_to(src) -/datum/hud +/mob/dead/observer/readd_hud(var/datum/atom_hud/hud) + oldhuds |= hud + +/datum/atom_hud var/list/atom/hudatoms = list() //list of all atoms which display this hud var/list/mob/hudusers = list() //list with all mobs who can see the hud var/list/hud_icons = list() //these will be the indexes for the atom's hud_list -/datum/hud/proc/remove_hud_from(var/mob/M) +/datum/atom_hud/proc/remove_hud_from(var/mob/M) for(var/atom/A in hudatoms) remove_from_single_hud(M, A) hudusers -= M -/datum/hud/proc/remove_from_hud(var/atom/A) +/datum/atom_hud/proc/remove_from_hud(var/atom/A) for(var/mob/M in hudusers) remove_from_single_hud(M, A) hudatoms -= A -/datum/hud/proc/remove_from_single_hud(var/mob/M, var/atom/A) //unsafe, no sanity apart from client +/datum/atom_hud/proc/remove_from_single_hud(var/mob/M, var/atom/A) //unsafe, no sanity apart from client if(!M.client) return for(var/i in hud_icons) M.client.images -= A.hud_list[i] -/datum/hud/proc/add_hud_to(var/mob/M) +/datum/atom_hud/proc/add_hud_to(var/mob/M) hudusers |= M for(var/atom/A in hudatoms) add_to_single_hud(M, A) -/datum/hud/proc/add_to_hud(var/atom/A) +/datum/atom_hud/proc/add_to_hud(var/atom/A) hudatoms |= A for(var/mob/M in hudusers) add_to_single_hud(M, A) -/datum/hud/proc/add_to_single_hud(var/mob/M, var/atom/A) //unsafe, no sanity apart from client +/datum/atom_hud/proc/add_to_single_hud(var/mob/M, var/atom/A) //unsafe, no sanity apart from client if(!M.client) return for(var/i in hud_icons) diff --git a/code/datums/mind.dm b/code/datums/mind.dm index 914c80fe622..51e2fa251f7 100644 --- a/code/datums/mind.dm +++ b/code/datums/mind.dm @@ -75,6 +75,7 @@ if(new_character.mind) //disassociate any mind currently in our new body's mind variable new_character.mind.current = null + new_character.refresh_huds(current) //inherit the HUDs from the old body current = new_character //associate ourself with our new body new_character.mind = src //and associate our new body with ourself diff --git a/code/game/atoms.dm b/code/game/atoms.dm index 9b7041c00c5..7a712a2001a 100644 --- a/code/game/atoms.dm +++ b/code/game/atoms.dm @@ -12,8 +12,10 @@ ///Chemistry. var/datum/reagents/reagents = null - //This atom's HUDs. associative list, e.g. hud_list[DATA_HUD_SECURITY] = list(sec_hud_images) + //This atom's HUD (med/sec, etc) images. Associative list. var/list/image/hud_list = list() + //HUD images that this atom can provide. + var/list/hud_possible //var/chem_is_open_container = 0 // replaced by OPENCONTAINER flags and atom/proc/is_open_container() diff --git a/code/game/data_huds.dm b/code/game/data_huds.dm index 908024c2835..19b37ee8d30 100644 --- a/code/game/data_huds.dm +++ b/code/game/data_huds.dm @@ -1,40 +1,47 @@ /* - * Data HUDs are now passive in order to reduce lag. - * Add then to a mob using add_data_hud. - * Update them when needed with the appropriate proc. (see below) + * Data HUDs have been rewritten in a more generic way. + * In short, they now use an observer-listener pattern. + * See code/datum/hud.dm for the generic hud datum. + * Update the HUD icons when needed with the appropriate hook. (see below) */ -//see code/datum/hud.dm for the generic hud datum +/* DATA HUD DATUMS */ -/datum/hud/data +/atom/proc/add_to_all_data_huds() + for(var/datum/atom_hud/data/hud in huds) hud.add_to_hud(src) -/datum/hud/data/medical +/atom/proc/remove_from_all_data_huds() + for(var/datum/atom_hud/data/hud in huds) hud.remove_from_hud(src) + +/datum/atom_hud/data + +/datum/atom_hud/data/medical hud_icons = list(HEALTH_HUD, STATUS_HUD) -/datum/hud/data/medical/basic +/datum/atom_hud/data/medical/basic -/datum/hud/data/medical/basic/proc/check_sensors(var/mob/living/carbon/human/H) +/datum/atom_hud/data/medical/basic/proc/check_sensors(var/mob/living/carbon/human/H) if(!istype(H)) return 0 var/obj/item/clothing/under/U = H.w_uniform if(!istype(U)) return 0 if(U.sensor_mode <= 2) return 0 return 1 -/datum/hud/data/medical/basic/add_to_single_hud(var/mob/M, var/mob/living/carbon/human/H) +/datum/atom_hud/data/medical/basic/add_to_single_hud(var/mob/M, var/mob/living/carbon/human/H) if(check_sensors(H)) ..() -/datum/hud/data/medical/basic/proc/update_suit_sensors(var/mob/living/carbon/human/H) +/datum/atom_hud/data/medical/basic/proc/update_suit_sensors(var/mob/living/carbon/human/H) check_sensors(H) ? add_to_hud(H) : remove_from_hud(H) -/datum/hud/data/medical/advanced +/datum/atom_hud/data/medical/advanced -/datum/hud/data/security +/datum/atom_hud/data/security -/datum/hud/data/security/basic +/datum/atom_hud/data/security/basic hud_icons = list(ID_HUD) -/datum/hud/data/security/advanced +/datum/atom_hud/data/security/advanced hud_icons = list(ID_HUD, IMPTRACK_HUD, IMPLOYAL_HUD, IMPCHEM_HUD, WANTED_HUD) /* MED/SEC HUD HOOKS */ @@ -83,7 +90,7 @@ //called when a human changes suit sensors /mob/living/carbon/human/proc/update_suit_sensors() - var/datum/hud/data/medical/basic/B = huds[DATA_HUD_MEDICAL_BASIC] + var/datum/atom_hud/data/medical/basic/B = huds[DATA_HUD_MEDICAL_BASIC] B.update_suit_sensors(src) //called when a human changes health diff --git a/code/game/gamemodes/antag_hud.dm b/code/game/gamemodes/antag_hud.dm new file mode 100644 index 00000000000..62a4f23b976 --- /dev/null +++ b/code/game/gamemodes/antag_hud.dm @@ -0,0 +1,14 @@ +/datum/atom_hud/antag + hud_icons = list(ANTAG_HUD) + +/datum/atom_hud/antag/proc/join_hud(var/mob/M) + add_to_hud(M) + add_hud_to(M) + +/datum/atom_hud/antag/proc/leave_hud(var/mob/M) + remove_from_hud(M) + remove_hud_from(M) + +/datum/game_mode/proc/set_antag_hud(var/mob/M, var/new_icon_state) + var/image/holder = M.hud_list[ANTAG_HUD] + holder.icon_state = new_icon_state diff --git a/code/game/gamemodes/cult/cult.dm b/code/game/gamemodes/cult/cult.dm index eb67ca4895d..a8394f6235f 100644 --- a/code/game/gamemodes/cult/cult.dm +++ b/code/game/gamemodes/cult/cult.dm @@ -241,52 +241,15 @@ for(var/mob/M in viewers(cult_mind.current)) M << "[cult_mind.current] looks like they just reverted to their old faith!" -/datum/game_mode/proc/update_all_cult_icons() - spawn(0) - for(var/datum/mind/cultist in cult) - if(cultist.current) - if(cultist.current.client) - for(var/image/I in cultist.current.client.images) - if(I.icon_state == "cult") - del(I) - - for(var/datum/mind/cultist in cult) - if(cultist.current) - if(cultist.current.client) - for(var/datum/mind/cultist_1 in cult) - if(cultist_1.current) - var/I = image('icons/mob/mob.dmi', loc = cultist_1.current, icon_state = "cult") - cultist.current.client.images += I - - /datum/game_mode/proc/update_cult_icons_added(datum/mind/cult_mind) - spawn(0) - for(var/datum/mind/cultist in cult) - if(cultist.current) - if(cultist.current.client) - var/I = image('icons/mob/mob.dmi', loc = cult_mind.current, icon_state = "cult") - cultist.current.client.images += I - if(cult_mind.current) - if(cult_mind.current.client) - var/image/J = image('icons/mob/mob.dmi', loc = cultist.current, icon_state = "cult") - cult_mind.current.client.images += J - + var/datum/atom_hud/antag/culthud = huds[ANTAG_HUD_CULT] + culthud.join_hud(cult_mind.current) + set_antag_hud(cult_mind.current, "cult") /datum/game_mode/proc/update_cult_icons_removed(datum/mind/cult_mind) - spawn(0) - for(var/datum/mind/cultist in cult) - if(cultist.current) - if(cultist.current.client) - for(var/image/I in cultist.current.client.images) - if(I.icon_state == "cult" && I.loc == cult_mind.current) - del(I) - - if(cult_mind.current) - if(cult_mind.current.client) - for(var/image/I in cult_mind.current.client.images) - if(I.icon_state == "cult") - del(I) - + var/datum/atom_hud/antag/culthud = huds[ANTAG_HUD_CULT] + culthud.leave_hud(cult_mind.current) + set_antag_hud(cult_mind.current, null) /datum/game_mode/cult/proc/get_unconvertables() var/list/ucs = list() diff --git a/code/game/gamemodes/gang/gang.dm b/code/game/gamemodes/gang/gang.dm index 9a4374959f7..718f9ad8d65 100644 --- a/code/game/gamemodes/gang/gang.dm +++ b/code/game/gamemodes/gang/gang.dm @@ -233,127 +233,41 @@ gangster_mind.current.visible_message("[gangster_mind.current] looks like they've given up the life of crime!") gangster_mind.current << "You have been reformed! You are no longer a gangster!" - update_gang_icons_removed(gangster_mind) + update_gang_icons_removed(gangster_mind, gang) +/////////////////////// +//Add/remove gang HUD// +/////////////////////// +/datum/game_mode/proc/get_gang_hud(var/gang) + var/datum/atom_hud/antag/ganghud = null + switch(gang) + if("A") ganghud = huds[ANTAG_HUD_GANG_A] + if("B") ganghud = huds[ANTAG_HUD_GANG_B] + return ganghud -///////////////////////////////////////////////////////////////////////////////////////////////// -//Keeps track of players having the correct icons//////////////////////////////////////////////// -///////////////////////////////////////////////////////////////////////////////////////////////// -/datum/game_mode/proc/update_all_gang_icons() - spawn(0) - var/list/all_gangsters = A_bosses + B_bosses + A_gangsters + B_gangsters +/datum/game_mode/proc/get_gang_bosses(var/gang) + var/bosses = null + switch(gang) + if("A") bosses = A_bosses + if("B") bosses = B_bosses + return bosses - //Delete all gang icons - for(var/datum/mind/gang_mind in all_gangsters) - if(gang_mind.current) - if(gang_mind.current.client) - for(var/image/I in gang_mind.current.client.images) - if(I.icon_state == "gangster" || I.icon_state == "gang_boss") - del(I) - - update_gang_icons("A") - update_gang_icons("B") - -/datum/game_mode/proc/update_gang_icons(var/gang) - var/list/bosses - var/list/gangsters - if(gang == "A") - bosses = A_bosses - gangsters = A_gangsters - else if(gang == "B") - bosses = B_bosses - gangsters = B_gangsters - else - world << "ERROR: Invalid gang in update_gang_icons()" - - //Update gang icons for boss' visions - for(var/datum/mind/boss_mind in bosses) - if(boss_mind.current) - if(boss_mind.current.client) - for(var/datum/mind/gangster_mind in gangsters) - if(gangster_mind.current) - var/I = image('icons/mob/mob.dmi', loc = gangster_mind.current, icon_state = "gangster") - boss_mind.current.client.images += I - for(var/datum/mind/boss2_mind in bosses) - if(boss2_mind.current) - var/I = image('icons/mob/mob.dmi', loc = boss2_mind.current, icon_state = "gang_boss") - boss_mind.current.client.images += I - - //Update boss and self icons for gangsters' visions - for(var/datum/mind/gangster_mind in gangsters) - if(gangster_mind.current) - if(gangster_mind.current.client) - for(var/datum/mind/boss_mind in bosses) - if(boss_mind.current) - var/I = image('icons/mob/mob.dmi', loc = boss_mind.current, icon_state = "gang_boss") - gangster_mind.current.client.images += I - //Tag themselves to see - var/K - if(gangster_mind in bosses) //If the new gangster is a boss himself - K = image('icons/mob/mob.dmi', loc = gangster_mind.current, icon_state = "gang_boss") - else - K = image('icons/mob/mob.dmi', loc = gangster_mind.current, icon_state = "gangster") - gangster_mind.current.client.images += K - -///////////////////////////////////////////////// -//Assigns icons when a new gangster is recruited// -///////////////////////////////////////////////// /datum/game_mode/proc/update_gang_icons_added(datum/mind/recruit_mind, var/gang) - var/list/bosses - if(gang == "A") - bosses = A_bosses - else if(gang == "B") - bosses = B_bosses - if(!gang) - world << "ERROR: Invalid gang in update_gang_icons_added()" + var/datum/atom_hud/antag/ganghud = get_gang_hud(gang) + var/bosses = get_gang_bosses(gang) + if(!ganghud) + ERROR("Invalid gang in update_gang_icons_added(): [gang]") - spawn(0) - for(var/datum/mind/boss_mind in bosses) - //Tagging the new gangster for the bosses to see - if(boss_mind.current) - if(boss_mind.current.client) - var/I - if(recruit_mind in bosses) //If the new gangster is a boss himself - I = image('icons/mob/mob.dmi', loc = recruit_mind.current, icon_state = "gang_boss") - else - I = image('icons/mob/mob.dmi', loc = recruit_mind.current, icon_state = "gangster") - boss_mind.current.client.images += I - //Tagging every boss for the new gangster to see - if(recruit_mind.current) - if(recruit_mind.current.client) - var/image/J = image('icons/mob/mob.dmi', loc = boss_mind.current, icon_state = "gang_boss") - recruit_mind.current.client.images += J - //Tag themselves to see - if(recruit_mind.current) - if(recruit_mind.current.client) - var/K - if(recruit_mind in bosses) //If the new gangster is a boss himself - K = image('icons/mob/mob.dmi', loc = recruit_mind.current, icon_state = "gang_boss") - else - K = image('icons/mob/mob.dmi', loc = recruit_mind.current, icon_state = "gangster") - recruit_mind.current.client.images += K + ganghud.join_hud(recruit_mind.current) + set_antag_hud(recruit_mind.current, ((recruit_mind in bosses) ? "gang_boss" : "gangster")) -//////////////////////////////////////// -//Keeps track of deconverted gangsters// -//////////////////////////////////////// -/datum/game_mode/proc/update_gang_icons_removed(datum/mind/defector_mind) - var/list/all_gangsters = A_bosses + B_bosses + A_gangsters + B_gangsters +/datum/game_mode/proc/update_gang_icons_removed(datum/mind/defector_mind, var/gang) + var/datum/atom_hud/antag/ganghud = get_gang_hud(gang) + if(!ganghud) + ERROR("Invalid gang in update_gang_icons_removed(): [gang]") - spawn(0) - //Remove defector's icon from gangsters' visions - for(var/datum/mind/boss_mind in all_gangsters) - if(boss_mind.current) - if(boss_mind.current.client) - for(var/image/I in boss_mind.current.client.images) - if((I.icon_state == "gangster" || I.icon_state == "gang_boss") && I.loc == defector_mind.current) - del(I) - - //Remove gang icons from defector's vision - if(defector_mind.current) - if(defector_mind.current.client) - for(var/image/I in defector_mind.current.client.images) - if(I.icon_state == "gangster" || I.icon_state == "gang_boss") - del(I) + ganghud.leave_hud(defector_mind.current) + set_antag_hud(defector_mind.current, null) /////////////////////////// //Checks for gang victory// diff --git a/code/game/gamemodes/nuclear/nuclear.dm b/code/game/gamemodes/nuclear/nuclear.dm index 913aaef67bd..ef02adb36ba 100644 --- a/code/game/gamemodes/nuclear/nuclear.dm +++ b/code/game/gamemodes/nuclear/nuclear.dm @@ -48,44 +48,15 @@ //////////////////////////////////////////////////////////////////////////////////////// //////////////////////////////////////////////////////////////////////////////////////// -/datum/game_mode/proc/update_all_synd_icons() - spawn(0) - for(var/datum/mind/synd_mind in syndicates) - if(synd_mind.current) - if(synd_mind.current.client) - for(var/image/I in synd_mind.current.client.images) - if(I.icon_state == "synd") - del(I) - - for(var/datum/mind/synd_mind in syndicates) - if(synd_mind.current) - if(synd_mind.current.client) - for(var/datum/mind/synd_mind_1 in syndicates) - if(synd_mind_1.current) - var/I = image('icons/mob/mob.dmi', loc = synd_mind_1.current, icon_state = "synd") - synd_mind.current.client.images += I - /datum/game_mode/proc/update_synd_icons_added(datum/mind/synd_mind) - spawn(0) - if(synd_mind.current) - if(synd_mind.current.client) - var/I = image('icons/mob/mob.dmi', loc = synd_mind.current, icon_state = "synd") - synd_mind.current.client.images += I + var/datum/atom_hud/antag/opshud = huds[ANTAG_HUD_OPS] + opshud.join_hud(synd_mind.current) + set_antag_hud(synd_mind.current, "synd") /datum/game_mode/proc/update_synd_icons_removed(datum/mind/synd_mind) - spawn(0) - for(var/datum/mind/synd in syndicates) - if(synd.current) - if(synd.current.client) - for(var/image/I in synd.current.client.images) - if(I.icon_state == "synd" && I.loc == synd_mind.current) - del(I) - - if(synd_mind.current) - if(synd_mind.current.client) - for(var/image/I in synd_mind.current.client.images) - if(I.icon_state == "synd") - del(I) + var/datum/atom_hud/antag/opshud = huds[ANTAG_HUD_OPS] + opshud.leave_hud(synd_mind.current) + set_antag_hud(synd_mind.current, null) //////////////////////////////////////////////////////////////////////////////////////// //////////////////////////////////////////////////////////////////////////////////////// @@ -129,8 +100,6 @@ spawnpos++ update_synd_icons_added(synd_mind) - update_all_synd_icons() - if(uplinklocker) new /obj/structure/closet/syndicate/nuclear(uplinklocker.loc) if(nuke_spawn && synd_spawn.len > 0) diff --git a/code/game/gamemodes/revolution/revolution.dm b/code/game/gamemodes/revolution/revolution.dm index b7dbbce85bc..3dc96cba6fb 100644 --- a/code/game/gamemodes/revolution/revolution.dm +++ b/code/game/gamemodes/revolution/revolution.dm @@ -4,7 +4,6 @@ // Just make sure the converter is a head before you call it! // To remove a rev (from brainwashing or w/e), call ticker.mode:remove_revolutionary(_THE_PLAYERS_MIND_), // this will also check they're not a head, so it can just be called freely -// If the rev icons start going wrong for some reason, ticker.mode:update_all_rev_icons() can be called to correct them. // If the game somtimes isn't registering a win properly, then ticker.mode.check_win() isn't being called somewhere. /datum/game_mode @@ -258,120 +257,21 @@ else M << "[rev_mind.current] looks like they just remembered their real allegiance!" - -///////////////////////////////////////////////////////////////////////////////////////////////// -//Keeps track of players having the correct icons//////////////////////////////////////////////// -//CURRENTLY CONTAINS BUGS://///////////////////////////////////////////////////////////////////// -//-PLAYERS THAT HAVE BEEN REVS FOR AWHILE OBTAIN THE BLUE ICON WHILE STILL NOT BEING A REV HEAD// -// -Possibly caused by cloning of a standard rev///////////////////////////////////////////////// -//-UNCONFIRMED: DECONVERTED REVS NOT LOSING THEIR ICON PROPERLY////////////////////////////////// -///////////////////////////////////////////////////////////////////////////////////////////////// -/datum/game_mode/proc/update_all_rev_icons() - spawn(0) - for(var/datum/mind/head_rev_mind in head_revolutionaries) - if(head_rev_mind.current) - if(head_rev_mind.current.client) - for(var/image/I in head_rev_mind.current.client.images) - if(I.icon_state == "rev" || I.icon_state == "rev_head") - del(I) - - for(var/datum/mind/rev_mind in revolutionaries) - if(rev_mind.current) - if(rev_mind.current.client) - for(var/image/I in rev_mind.current.client.images) - if(I.icon_state == "rev" || I.icon_state == "rev_head") - del(I) - - for(var/datum/mind/head_rev in head_revolutionaries) - if(head_rev.current) - if(head_rev.current.client) - for(var/datum/mind/rev in revolutionaries) - if(rev.current) - var/I = image('icons/mob/mob.dmi', loc = rev.current, icon_state = "rev") - head_rev.current.client.images += I - for(var/datum/mind/head_rev_1 in head_revolutionaries) - if(head_rev_1.current) - var/I = image('icons/mob/mob.dmi', loc = head_rev_1.current, icon_state = "rev_head") - head_rev.current.client.images += I - - for(var/datum/mind/rev in revolutionaries) - if(rev.current) - if(rev.current.client) - for(var/datum/mind/head_rev in head_revolutionaries) - if(head_rev.current) - var/I = image('icons/mob/mob.dmi', loc = head_rev.current, icon_state = "rev_head") - rev.current.client.images += I - for(var/datum/mind/rev_1 in revolutionaries) - if(rev_1.current) - var/I = image('icons/mob/mob.dmi', loc = rev_1.current, icon_state = "rev") - rev.current.client.images += I - -//////////////////////////////////////////////////// -//Keeps track of converted revs icons/////////////// -//Refer to above bugs. They may apply here as well// -//////////////////////////////////////////////////// +///////////////////////////////////// +//Adds the rev hud to a new convert// +///////////////////////////////////// /datum/game_mode/proc/update_rev_icons_added(datum/mind/rev_mind) - spawn(0) - for(var/datum/mind/head_rev_mind in head_revolutionaries) + var/datum/atom_hud/antag/revhud = huds[ANTAG_HUD_REV] + revhud.join_hud(rev_mind.current) + set_antag_hud(rev_mind.current, ((rev_mind in head_revolutionaries) ? "rev_head" : "rev")) - //Tagging the new rev for revheads to see - if(head_rev_mind.current) - if(head_rev_mind.current.client) - var/I - if(rev_mind in head_revolutionaries) //If the new rev is a head rev - I = image('icons/mob/mob.dmi', loc = rev_mind.current, icon_state = "rev_head") - else - I = image('icons/mob/mob.dmi', loc = rev_mind.current, icon_state = "rev") - head_rev_mind.current.client.images += I - - //Tagging the revheads for new rev to see - if(rev_mind.current) - if(rev_mind.current.client) - var/image/J = image('icons/mob/mob.dmi', loc = head_rev_mind.current, icon_state = "rev_head") - rev_mind.current.client.images += J - - for(var/datum/mind/rev_mind_1 in revolutionaries) - - //Tagging the new rev for fellow revs to see - if(rev_mind_1.current) - if(rev_mind_1.current.client) - var/I - if(rev_mind in head_revolutionaries) //If the new rev is a head rev - I = image('icons/mob/mob.dmi', loc = rev_mind.current, icon_state = "rev_head") - else - I = image('icons/mob/mob.dmi', loc = rev_mind.current, icon_state = "rev") - rev_mind_1.current.client.images += I - - //Tagging fellow revs for the new rev to see - if(rev_mind.current) - if(rev_mind.current.client) - var/image/J = image('icons/mob/mob.dmi', loc = rev_mind_1.current, icon_state = "rev") - rev_mind.current.client.images += J - -/////////////////////////////////// -//Keeps track of deconverted revs// -/////////////////////////////////// +///////////////////////////////////////// +//Removes the hud from deconverted revs// +///////////////////////////////////////// /datum/game_mode/proc/update_rev_icons_removed(datum/mind/rev_mind) - spawn(0) - for(var/datum/mind/head_rev_mind in head_revolutionaries) - if(head_rev_mind.current) - if(head_rev_mind.current.client) - for(var/image/I in head_rev_mind.current.client.images) - if((I.icon_state == "rev" || I.icon_state == "rev_head") && I.loc == rev_mind.current) - del(I) - - for(var/datum/mind/rev_mind_1 in revolutionaries) - if(rev_mind_1.current) - if(rev_mind_1.current.client) - for(var/image/I in rev_mind_1.current.client.images) - if((I.icon_state == "rev" || I.icon_state == "rev_head") && I.loc == rev_mind.current) - del(I) - - if(rev_mind.current) - if(rev_mind.current.client) - for(var/image/I in rev_mind.current.client.images) - if(I.icon_state == "rev" || I.icon_state == "rev_head") - del(I) + var/datum/atom_hud/antag/revhud = huds[ANTAG_HUD_REV] + revhud.leave_hud(rev_mind.current) + set_antag_hud(rev_mind.current, null) ////////////////////////// //Checks for rev victory// diff --git a/code/game/machinery/cloning.dm b/code/game/machinery/cloning.dm index f971345f42f..bc18f0d9985 100644 --- a/code/game/machinery/cloning.dm +++ b/code/game/machinery/cloning.dm @@ -168,24 +168,11 @@ //Here let's calculate their health so the pod doesn't immediately eject them!!! H.updatehealth() + H.refresh_huds(clonemind.current) clonemind.transfer_to(H) H.ckey = ckey H << "Consciousness slowly creeps over you as your body regenerates.
So this is what cloning feels like?
" - // -- Mode/mind specific stuff goes here - - if((H.mind in ticker.mode.revolutionaries) || (H.mind in ticker.mode.head_revolutionaries)) - ticker.mode.update_all_rev_icons() //So the icon actually appears - if((H.mind in ticker.mode.A_bosses) || ((H.mind in ticker.mode.A_gangsters) || (H.mind in ticker.mode.B_bosses)) || (H.mind in ticker.mode.B_gangsters)) - ticker.mode.update_all_gang_icons() - if(H.mind in ticker.mode.syndicates) - ticker.mode.update_all_synd_icons() - if (H.mind in ticker.mode.cult) - ticker.mode.add_cultist(src.occupant.mind) - ticker.mode.update_all_cult_icons() //So the icon actually appears - - // -- End mode specific stuff - hardset_dna(H, ui, se, null, null, mrace, mcolor) if(efficiency > 2) diff --git a/code/game/mecha/medical/odysseus.dm b/code/game/mecha/medical/odysseus.dm index 4eb74496ddd..fa7d79e6113 100644 --- a/code/game/mecha/medical/odysseus.dm +++ b/code/game/mecha/medical/odysseus.dm @@ -16,7 +16,7 @@ if(H.glasses && istype(H.glasses, /obj/item/clothing/glasses/hud)) occupant_message("Your [H.glasses] prevent you from using the built-in medical hud.") else - var/datum/hud/data/medical/advanced/A = huds[DATA_HUD_MEDICAL_ADVANCED] + var/datum/atom_hud/data/medical/advanced/A = huds[DATA_HUD_MEDICAL_ADVANCED] A.add_hud_to(H) builtin_hud_user = 1 return 1 @@ -26,7 +26,7 @@ /obj/mecha/medical/odysseus/go_out() if(ishuman(occupant) && builtin_hud_user) var/mob/living/carbon/human/H = occupant - var/datum/hud/data/medical/advanced/A = huds[DATA_HUD_MEDICAL_ADVANCED] + var/datum/atom_hud/data/medical/advanced/A = huds[DATA_HUD_MEDICAL_ADVANCED] A.remove_hud_from(H) ..() return diff --git a/code/modules/admin/verbs/one_click_antag.dm b/code/modules/admin/verbs/one_click_antag.dm index 4a5110e6016..8b9e6e3ccf6 100644 --- a/code/modules/admin/verbs/one_click_antag.dm +++ b/code/modules/admin/verbs/one_click_antag.dm @@ -302,8 +302,6 @@ client/proc/one_click_antag() new_character.mind.make_Nuke(synd_spawn[spawnpos],nuke_code) spawnpos++ - ticker.mode.update_all_synd_icons() - return 1 diff --git a/code/modules/clothing/glasses/hud.dm b/code/modules/clothing/glasses/hud.dm index ca98414000f..9b6ab29fda5 100644 --- a/code/modules/clothing/glasses/hud.dm +++ b/code/modules/clothing/glasses/hud.dm @@ -7,11 +7,11 @@ /obj/item/clothing/glasses/hud/equipped(mob/living/carbon/human/user, slot) if(slot == slot_glasses) - var/datum/hud/H = huds[hud_type] + var/datum/atom_hud/H = huds[hud_type] H.add_hud_to(user) /obj/item/clothing/glasses/hud/dropped(mob/living/carbon/human/user) - var/datum/hud/H = huds[hud_type] + var/datum/atom_hud/H = huds[hud_type] H.remove_hud_from(user) /obj/item/clothing/glasses/hud/emp_act(severity) diff --git a/code/modules/hydroponics/hydroponics.dm b/code/modules/hydroponics/hydroponics.dm index 34bb9efa0c3..735480138c1 100644 --- a/code/modules/hydroponics/hydroponics.dm +++ b/code/modules/hydroponics/hydroponics.dm @@ -812,29 +812,12 @@ obj/machinery/hydroponics/attackby(var/obj/item/O as obj, var/mob/user as mob) podman.real_name = realName else podman.real_name = "Pod Person [rand(0,999)]" + podman.refresh_huds(mind.current) var/oldactive = mind.active mind.active = 1 mind.transfer_to(podman) mind.active = oldactive - // -- Mode/mind specific stuff goes here. TODO! Broken :( Should be merged into mob/living/Login - if((podman.mind in ticker.mode.A_bosses) || (podman.mind in ticker.mode.A_gangsters) || (podman.mind in ticker.mode.B_bosses) || (podman.mind in ticker.mode.B_gangsters)) - ticker.mode.update_all_gang_icons() - if(podman.mind in ticker.mode:revolutionaries) - ticker.mode.add_revolutionary(podman.mind) - ticker.mode.update_all_rev_icons() //So the icon actually appears - if(podman.mind in ticker.mode:head_revolutionaries) - ticker.mode.add_revolutionary(podman.mind) - ticker.mode.update_all_rev_icons() - if(podman.mind in ticker.mode:syndicates) - ticker.mode:update_all_synd_icons() - if(podman.mind in ticker.mode:cult) - ticker.mode:add_cultist(podman.mind) - ticker.mode:update_all_cult_icons() //So the icon actually appears - - // -- End mode specific stuff - podman.gender = ghost.gender - //dna stuff hardset_dna(podman, ui, se, null, null, null, !prob(potency) ? /datum/species/plant/pod : null, "#59CE00") //makes sure podman has dna and sets the dna's ui/se/mutantrace/real_name etc variables diff --git a/code/modules/mob/dead/observer/observer.dm b/code/modules/mob/dead/observer/observer.dm index f7da665c052..d8aac764edd 100644 --- a/code/modules/mob/dead/observer/observer.dm +++ b/code/modules/mob/dead/observer/observer.dm @@ -19,6 +19,7 @@ //Note that this is not a reliable way to determine if admins started as observers, since they change mobs a lot. var/atom/movable/following = null var/fun_verbs = 0 + var/list/datum/atom_hud/oldhuds = null //old antag hud, gets readded in cloning/plantpodding /mob/dead/observer/New(mob/body) sight |= SEE_TURFS | SEE_MOBS | SEE_OBJS | SEE_SELF @@ -69,6 +70,7 @@ Works together with spawning an observer, noted above. var/mob/dead/observer/ghost = new(src) //Transfer safety to observer spawning proc. ghost.can_reenter_corpse = can_reenter_corpse ghost.key = key + ghost.refresh_huds(src) //inherit the HUDs return ghost /* diff --git a/code/modules/mob/living/carbon/human/human.dm b/code/modules/mob/living/carbon/human/human.dm index 83ede6120b3..0e4f3d8fe82 100644 --- a/code/modules/mob/living/carbon/human/human.dm +++ b/code/modules/mob/living/carbon/human/human.dm @@ -26,8 +26,6 @@ internal_organs += new /obj/item/organ/heart internal_organs += new /obj/item/organ/brain - prepare_data_huds() - // for spawned humans; overwritten by other code create_dna(src) ready_dna(src) @@ -35,23 +33,24 @@ ..() +/mob/living/carbon/human/prepare_huds() + ..() + prepare_data_huds() + /mob/living/carbon/human/proc/prepare_data_huds() - for(var/i=1;i<=7;i++) // 2 icons for medHUDs and 5 for secHUDs - hud_list += image('icons/mob/hud.dmi', src, "") - - //Update all our hud images... + //Update all our data hud images... med_hud_set_health() med_hud_set_status() sec_hud_set_ID() sec_hud_set_implants() sec_hud_set_security_status() //...and display them - add_to_all_huds() + add_to_all_data_huds() /mob/living/carbon/human/Destroy() for(var/atom/movable/organelle in organs) qdel(organelle) - remove_from_all_huds() + remove_from_all_data_huds() return ..() /mob/living/carbon/human/Bump(atom/movable/AM as mob|obj, yes) diff --git a/code/modules/mob/living/carbon/human/human_defines.dm b/code/modules/mob/living/carbon/human/human_defines.dm index 1cc63bab99c..09ac10b4d51 100644 --- a/code/modules/mob/living/carbon/human/human_defines.dm +++ b/code/modules/mob/living/carbon/human/human_defines.dm @@ -1,5 +1,6 @@ /mob/living/carbon/human languages = HUMAN + hud_possible = list(HEALTH_HUD,STATUS_HUD,ID_HUD,WANTED_HUD,IMPLOYAL_HUD,IMPCHEM_HUD,IMPTRACK_HUD, ANTAG_HUD) //Hair colour and style var/hair_color = "000" var/hair_style = "Bald" @@ -46,4 +47,4 @@ var/xylophone = 0 //For the spoooooooky xylophone cooldown - var/gender_ambiguous = 0 //if something goes wrong during gender reassignment this generates a line in examine \ No newline at end of file + var/gender_ambiguous = 0 //if something goes wrong during gender reassignment this generates a line in examine diff --git a/code/modules/mob/living/carbon/human/life.dm b/code/modules/mob/living/carbon/human/life.dm index 93a04ade9ec..6985cf97e93 100644 --- a/code/modules/mob/living/carbon/human/life.dm +++ b/code/modules/mob/living/carbon/human/life.dm @@ -97,6 +97,7 @@ //Update our name based on whether our face is obscured/disfigured name = get_visible_name() + handle_regular_hud_updates() if(dna) dna.species.spec_life(src) // for mutantraces diff --git a/code/modules/mob/living/carbon/human/login.dm b/code/modules/mob/living/carbon/human/login.dm index 98ae4a6e6d3..7877b6f6072 100644 --- a/code/modules/mob/living/carbon/human/login.dm +++ b/code/modules/mob/living/carbon/human/login.dm @@ -1,6 +1,4 @@ /mob/living/carbon/human/Login() ..() update_hud() - if(ticker.mode) - ticker.mode.update_all_synd_icons() //This proc only sounds CPU-expensive on paper. It is O(n^2), but the outer for-loop only iterates through syndicates, which are only prsenet in nuke rounds and even when they exist, there's usually 6 of them. return diff --git a/code/modules/mob/living/login.dm b/code/modules/mob/living/login.dm index 0d2e5ad541b..889afd142a1 100644 --- a/code/modules/mob/living/login.dm +++ b/code/modules/mob/living/login.dm @@ -4,64 +4,16 @@ sync_mind() mind.show_memory(src, 0) - //Round specific stuff like hud updates + //Round specific stuff if(ticker && ticker.mode) switch(ticker.mode.name) if("sandbox") CanBuild() - if("revolution") - if((mind in ticker.mode.revolutionaries) || (src.mind in ticker.mode:head_revolutionaries)) - ticker.mode.update_rev_icons_added(src.mind) - if("gang") - if((mind in ticker.mode.A_bosses) || (mind in ticker.mode.A_gangsters)) - ticker.mode.update_gang_icons_added(src.mind,"A") - if((mind in ticker.mode.B_bosses) || (mind in ticker.mode.B_gangsters)) - ticker.mode.update_gang_icons_added(src.mind,"B") - if("cult") - if(mind in ticker.mode:cult) - ticker.mode.update_cult_icons_added(src.mind) - if("nuclear emergency") - if(mind in ticker.mode:syndicates) - ticker.mode.update_all_synd_icons() + + //HUD updates (antag hud, etc) + refresh_huds() if(ventcrawler) src << "You can ventcrawl! Use alt+click on vents to quickly travel about the station." update_interface() return . - -//This stuff needs to be merged from cloning.dm but I'm not in the mood to be shouted at for breaking all the things :< ~Carn - /* clones - switch(ticker.mode.name) - if("revolution") - if(src.occupant.mind in ticker.mode:revolutionaries) - ticker.mode:update_all_rev_icons() //So the icon actually appears - if(src.occupant.mind in ticker.mode:head_revolutionaries) - ticker.mode:update_all_rev_icons() - if("nuclear emergency") - if (src.occupant.mind in ticker.mode:syndicates) - ticker.mode:update_all_synd_icons() - if("cult") - if (src.occupant.mind in ticker.mode:cult) - ticker.mode:add_cultist(src.occupant.mind) - ticker.mode:update_all_cult_icons() //So the icon actually appears - */ - - /* Plantpeople - switch(ticker.mode.name) - if ("revolution") - if (podman.mind in ticker.mode:revolutionaries) - ticker.mode:add_revolutionary(podman.mind) - ticker.mode:update_all_rev_icons() //So the icon actually appears - if (podman.mind in ticker.mode:head_revolutionaries) - ticker.mode:update_all_rev_icons() - if ("nuclear emergency") - if (podman.mind in ticker.mode:syndicates) - ticker.mode:update_all_synd_icons() - if ("cult") - if (podman.mind in ticker.mode:cult) - ticker.mode:add_cultist(podman.mind) - ticker.mode:update_all_cult_icons() //So the icon actually appears - if ("changeling") - if (podman.mind in ticker.mode:changelings) - podman.make_changeling() - */ \ No newline at end of file diff --git a/code/modules/mob/living/silicon/silicon.dm b/code/modules/mob/living/silicon/silicon.dm index 36dbd64137f..a1d4cc93437 100644 --- a/code/modules/mob/living/silicon/silicon.dm +++ b/code/modules/mob/living/silicon/silicon.dm @@ -319,17 +319,17 @@ return -10 /mob/living/silicon/proc/remove_med_sec_hud() - var/datum/hud/secsensor = huds[sec_hud] - var/datum/hud/medsensor = huds[med_hud] + var/datum/atom_hud/secsensor = huds[sec_hud] + var/datum/atom_hud/medsensor = huds[med_hud] secsensor.remove_hud_from(src) medsensor.remove_hud_from(src) /mob/living/silicon/proc/add_sec_hud() - var/datum/hud/secsensor = huds[sec_hud] + var/datum/atom_hud/secsensor = huds[sec_hud] secsensor.add_hud_to(src) /mob/living/silicon/proc/add_med_hud() - var/datum/hud/medsensor = huds[med_hud] + var/datum/atom_hud/medsensor = huds[med_hud] medsensor.add_hud_to(src) /mob/living/silicon/verb/sensor_mode() diff --git a/code/modules/mob/mob.dm b/code/modules/mob/mob.dm index 0ea87f92744..918437895bb 100644 --- a/code/modules/mob/mob.dm +++ b/code/modules/mob/mob.dm @@ -13,7 +13,6 @@ /mob/proc/sac_act(var/obj/effect/rune/R, var/mob/victim as mob) return - var/next_mob_id = 0 /mob/New() tag = "mob_[next_mob_id++]" @@ -22,8 +21,13 @@ var/next_mob_id = 0 dead_mob_list += src else living_mob_list += src + prepare_huds() ..() +/mob/proc/prepare_huds() + for(var/hud in hud_possible) + hud_list[hud] = image('icons/mob/hud.dmi', src, "") + /mob/proc/Cell() set category = "Admin" set hidden = 1 diff --git a/code/modules/mob/mob_defines.dm b/code/modules/mob/mob_defines.dm index f13d82a7c8e..6b66ca59f6e 100644 --- a/code/modules/mob/mob_defines.dm +++ b/code/modules/mob/mob_defines.dm @@ -3,6 +3,7 @@ layer = 4 animate_movement = 2 flags = NOREACT | HEAR + hud_possible = list(ANTAG_HUD) var/datum/mind/mind var/stat = 0 //Whether a mob is alive or dead. TODO: Move this to living - Nodrak diff --git a/icons/mob/hud.dmi b/icons/mob/hud.dmi index 648866f97d74165e9730554a198e3f8df1fa5c7d..12fe2bf881204d81369768395e7c7f0a089915d8 100644 GIT binary patch delta 3188 zcmZ8hX*kr27aq%G&)_m-X)wxCCQ(8|!<0dZ$i5ZXvZt|0G) zvSwFyGs&)EVzOSt-~IN#_k20qbDs0O=e*|>z>CF6NS3%txr;1-4=XF=-UtK|t_o2V zF%S_n6D$h5(%js9<;~$b8=GpcYRXD#=(GdB4S##KTVEL=7q9KwtIBW7KiyFP&w+TS+KcPAokt^ z=Kv4CKo4IZ2mlFs@ht6z&(t|s)Yz6noJ*#Nu>^b~(Cm^tYfZO6oPdVl=^Wg%{GY{z z^sX%#KF=KweXf(;yLeS(IsB_slMWhnQ73y*%h>v^6~TTQaOignscc{A{O+Uu;7q(y zXQEwE#qn}GU&&;YPeaB)X@04W?^3m%)n`R^tmfjrp zyqR{>i9TxfBC~mR`T6bJe5q(YO}nq9hpKcTQ7=7vX)ZG6;%L@))#zqYLY&YW4K=}Z zq4U!Iu7({7U9Yh2{dba6%S1OS-?Tf~N>aPM_K^32)=4vmS&`PAW%D3;g7YzJtAa%( zk!2+-A6Rx~8|LHa7}JiTT~oVbKAEo7X>k3{9Jq!hv36E&btr(J621>BCJYs}y>wxZ zo&9*Gw553I>Z7>k5X00Q$ZMp0xCi5woT1Y^dX=MBb*_lvr2kr8__&CD`u)g|5l(W} z$4<11yVBW|*N)6(Q%?o>pn~Cz7Z&U()voERDS%5JUwfMf<{ff!T&4Q&Un0$eQ4PXH zv0$Vn$T|ZpIri+X`?!&Nv(`<2YgJBb@l6S2L-;~s>N%v^#_j8*_pwi}+*w8k7o}j` zSCO=?d~OA#=l-%^#j~ z%@+ElM&Hl2{l!4i*ptqszHbWK@N6~Nt@Gq92MC1A+W?C(4|=hh#b+trDI8tkwU_jx zLS9aw%%cS2Z{ruKQYB$|Ou|%VJ;$j)0XU}B`Z`9Ecc(3vFX!RUQ{IO`Zmv)(VhFt| zldqLBps3NgG*bFVirUz--mmi7Tocj0ZUe~-VevW$hGf?7SZhh{4ot0d0Yk?62R)B8 zH`FIJc!#lYWmqNX5c0W&dn1^j$FH=!NuynVRc|T$+d@1G4BHe84b1{+v?WQvsE}Nm z*L1az>?j`gpgD%!p75Cxg!!N+sP=2>uj(_)plmR7_f=#t7W1A>%-&>7PP(upK%!`^(W=^~@ z2Jo7rCQu6F^)Py}vRGN!i0Oy?N{wPVx%0C-Y;SK5I-O(LQj$`u#IxDzM)W7DIcNi8 zs@UTnz%FCbz~dJP4gT90s$q$44L3|t{>zT49e`QPD)Ex5p|2P7fTNLk~kE>jtSZmozszO$(r#zRxhYI#(8;`o9VLCx&Y8k6E$JokB`C*&uW8CS6eT zr?&Jv&1%}Kqoma<)05HT6xjZv*l2inAN$Vb3&vI9{%|9ZH=pzAXY$EV+s>CfX&yX{SrcI0S4hRL|~o)@7-5m<{;&<&>=ny3H_H9#x;ryOyMeO9D%#V zOjH9n74`|K--UvxBa9D6_L898Xj~cM9zhfXhQmNF_+r{%14EXxDs1+GN24yzccYkm z>BfnAyd1~But6X*cChUho8jFX`oGtc&9-J9thNA!RGmESjQHea^!o~Y_&iffy>Mmp zY=$eJ$G~Xebn^NvGR^Vqr^Nmdx6dsf0gpeioS4}lJkZ~_lITO-!@*nzlnE@!?YY#M z_EZy5%!(CjitiwoNk57w<5Wf}d$;3^IRaON(6W0?uDR6G1}!L9FGegdPDgMHC=%Nw zfdJ2#$FTgk`o>el0pAl^9ZBYxS@=0&b6hERtP-vq(P;1l-KOTDmn)3q(cGL08m`Cx zndZiWYwBbB4>~{PK`9EK)()jpfVqF~aah)ANp)4m((~tHVL_uU+2pS|I&URkKCFli z);<+d5nZD{wGhh$_LIdGEsH-mmQ~EfWj8iz&`j!3mWm5|RdzHwJ_=mg#ATL5^62;n+($7ky2{gE3>nOAo*55!klDT^ol2kU5=WsRL64_ zX0Gr@q`zl!{{;6R!6eHYg(VJ$_z!()hO^!@3zNg{a-RQ;E8LQMwPhM`lpw5W?0g>k zxpIG>!#z7Y@a0}FqHRGJo%M#1$#yUa_Ph^%>uKD4LNP6kK5e~NUU8YE!r4eCzO*FB zY>X4`ZLWR)Zr@^pC+ySShhzi23lq^)$InjL-XSB=j^6p!nA(L;Rrrzdf%>rXZ2RmH z-s&J?Bj5XivihMv-V=DZu=YI`;l6snM15!gfcT#3f@|GJA2{CTg1wMp*O$cC(m9~= zJ!Sh(oWf3poxTq8Q>+4t`F87yx#WTCd}XCo{>79!i}La^=25M>;ju6v-s0$j#4tVk z?C04QiE>?xtC%%*g3x)eSJCzkBcP?^75W3mz3N4!jcN)&uK9rxRxUrAd93El8I>}Q zD3}XP08gRi|8Nak(L{CCi<1aBU~yP&#v>5u{#<>moQdXty9Dhzx8d}462|7cc|I5{1X1|&Pb~>-=0b%b_v*k8+ zVZOl?9~>MUb4^qcI4Gw{6PNx9sS9oBsAx;@%LkiH6MiEG zTaw<1LJC{kKxeS0_Uo5>IFxqd!<6b(?k6v+?k z0+_XTmrHg8 zGc(rI2xoiO6|4&*mLvYIXx~pPM^v)LBW!guOUbKlU(vqWhiemzf682Vh?g*CSGR$R znAjmjoW4*^C5l*1CbQ!)H~izh)w5SA4uIdkddp`=7- zE_LzrwlBlrHfb-y;l~p8Re0+@S(Ja3qkVKB#y}YMf7>`Rn{W0VvNV~mRluZqd;Uoo MTs6kN(RBj<2j_j?`v3p{ delta 2667 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 F{y)?8^rZj* delta 164253 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 Date: Mon, 24 Nov 2014 22:22:58 -0300 Subject: [PATCH 6/6] Fixes roundstart runtime involving HUDs --- code/datums/hud.dm | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) diff --git a/code/datums/hud.dm b/code/datums/hud.dm index be80338e64e..4a57ca08417 100644 --- a/code/datums/hud.dm +++ b/code/datums/hud.dm @@ -17,7 +17,8 @@ var/datum/atom_hud/huds = list( \ var/mob/seek_for = (inherited_from) ? inherited_from : src var/image/oldantagicon = seek_for.hud_list[ANTAG_HUD] var/image/newantagicon = hud_list[ANTAG_HUD] - newantagicon.icon_state = oldantagicon.icon_state + if(oldantagicon && oldantagicon.icon_state) + newantagicon.icon_state = oldantagicon.icon_state if(istype(inherited_from, /mob/dead/observer)) var/mob/dead/observer/G = inherited_from for(var/datum/atom_hud/hud in G.oldhuds)