|
1 | | -/mob/living/human/proc/get_raw_medical_data(var/tag = FALSE) |
2 | | - var/mob/living/human/H = src |
3 | | - var/list/scan = list() |
4 | | - |
5 | | - scan["name"] = H.name |
6 | | - scan["time"] = stationtime2text() |
| 1 | +/mob/living/proc/get_raw_medical_data(var/tag = FALSE) |
| 2 | + . = list() |
| 3 | + .["name"] = name |
| 4 | + .["time"] = stationtime2text() |
7 | 5 | var/brain_result |
8 | | - if(H.should_have_organ(BP_BRAIN)) |
9 | | - var/obj/item/organ/internal/brain = GET_INTERNAL_ORGAN(H, BP_BRAIN) |
10 | | - if(!brain || H.stat == DEAD || (H.status_flags & FAKEDEATH)) |
| 6 | + if(should_have_organ(BP_BRAIN)) |
| 7 | + var/obj/item/organ/internal/brain = GET_INTERNAL_ORGAN(src, BP_BRAIN) |
| 8 | + if(!brain || stat == DEAD || (status_flags & FAKEDEATH)) |
11 | 9 | brain_result = 0 |
12 | | - else if(H.stat != DEAD) |
| 10 | + else if(stat != DEAD) |
13 | 11 | brain_result = round(max(0,(1 - brain.damage/brain.max_damage)*100)) |
14 | 12 | else |
15 | 13 | brain_result = -1 |
16 | | - scan["brain_activity"] = brain_result |
| 14 | + .["brain_activity"] = brain_result |
17 | 15 |
|
18 | 16 | var/pulse_result |
19 | | - if(H.should_have_organ(BP_HEART)) |
20 | | - var/obj/item/organ/internal/heart/heart = H.get_organ(BP_HEART, /obj/item/organ/internal/heart) |
| 17 | + if(should_have_organ(BP_HEART)) |
| 18 | + var/obj/item/organ/internal/heart/heart = get_organ(BP_HEART, /obj/item/organ/internal/heart) |
21 | 19 | if(!heart) |
22 | 20 | pulse_result = 0 |
23 | 21 | else if(BP_IS_PROSTHETIC(heart)) |
24 | 22 | pulse_result = -2 |
25 | | - else if(H.status_flags & FAKEDEATH) |
| 23 | + else if(status_flags & FAKEDEATH) |
26 | 24 | pulse_result = 0 |
27 | 25 | else |
28 | | - pulse_result = H.get_pulse_as_string(GETPULSE_TOOL) |
| 26 | + pulse_result = get_pulse_as_string(GETPULSE_TOOL) |
29 | 27 | else |
30 | 28 | pulse_result = -1 |
31 | 29 |
|
32 | 30 | if(pulse_result == ">250") |
33 | 31 | pulse_result = -3 |
34 | | - scan["pulse"] = text2num(pulse_result) |
35 | | - |
36 | | - scan["blood_pressure"] = H.get_blood_pressure() |
37 | | - scan["blood_o2"] = H.get_blood_oxygenation() |
38 | | - scan["blood_volume"] = H.vessel.total_volume |
39 | | - scan["blood_volume_max"] = H.vessel.maximum_volume |
40 | | - scan["temperature"] = H.bodytemperature |
41 | | - scan["trauma"] = H.get_damage(BRUTE) |
42 | | - scan["burn"] = H.get_damage(BURN) |
43 | | - scan["toxin"] = H.get_damage(TOX) |
44 | | - scan["oxygen"] = H.get_damage(OXY) |
45 | | - scan["radiation"] = H.radiation |
46 | | - scan["genetic"] = H.get_damage(CLONE) |
47 | | - scan["paralysis"] = GET_STATUS(H, STAT_PARA) |
48 | | - scan["immune_system"] = H.get_immunity() |
49 | | - scan["reagents"] = list() |
50 | | - |
51 | | - if(H.reagents?.total_volume) |
52 | | - for(var/liquid_type in H.reagents.liquid_volumes) |
| 32 | + .["pulse"] = text2num(pulse_result) |
| 33 | + |
| 34 | + .["temperature"] = bodytemperature |
| 35 | + .["trauma"] = get_damage(BRUTE) |
| 36 | + .["burn"] = get_damage(BURN) |
| 37 | + .["toxin"] = get_damage(TOX) |
| 38 | + .["oxygen"] = get_damage(OXY) |
| 39 | + .["radiation"] = radiation |
| 40 | + .["genetic"] = get_damage(CLONE) |
| 41 | + .["paralysis"] = GET_STATUS(src, STAT_PARA) |
| 42 | + .["immune_system"] = get_immunity() |
| 43 | + .["reagents"] = list() |
| 44 | + |
| 45 | + if(reagents?.total_volume) |
| 46 | + for(var/liquid_type in reagents.liquid_volumes) |
53 | 47 | var/decl/material/R = GET_DECL(liquid_type) |
54 | 48 | var/list/reagent = list() |
55 | | - reagent["name"]= R.get_reagent_name(H.reagents, MAT_PHASE_LIQUID) |
56 | | - reagent["quantity"] = round(REAGENT_VOLUME(H.reagents, R.type),1) |
| 49 | + reagent["name"]= R.get_reagent_name(reagents, MAT_PHASE_LIQUID) |
| 50 | + reagent["quantity"] = round(REAGENT_VOLUME(reagents, R.type),1) |
57 | 51 | reagent["scannable"] = R.scannable |
58 | | - scan["reagents"] += list(reagent) |
| 52 | + .["reagents"] += list(reagent) |
59 | 53 |
|
60 | | - for(var/solid_type in H.reagents.solid_volumes) |
| 54 | + for(var/solid_type in reagents.solid_volumes) |
61 | 55 | var/decl/material/R = GET_DECL(solid_type) |
62 | 56 | var/list/reagent = list() |
63 | | - reagent["name"]= R.get_reagent_name(H.reagents, MAT_PHASE_SOLID) |
64 | | - reagent["quantity"] = round(REAGENT_VOLUME(H.reagents, R.type),1) |
| 57 | + reagent["name"]= R.get_reagent_name(reagents, MAT_PHASE_SOLID) |
| 58 | + reagent["quantity"] = round(REAGENT_VOLUME(reagents, R.type),1) |
65 | 59 | reagent["scannable"] = R.scannable |
66 | | - scan["reagents"] += list(reagent) |
| 60 | + .["reagents"] += list(reagent) |
67 | 61 |
|
68 | | - scan["external_organs"] = list() |
69 | | - for(var/obj/item/organ/external/E in H.get_external_organs()) |
| 62 | + .["external_organs"] = list() |
| 63 | + for(var/obj/item/organ/external/E in get_external_organs()) |
70 | 64 | var/list/O = list() |
71 | 65 | O["name"] = E.name |
72 | 66 | O["brute_ratio"] = E.brute_ratio |
|
77 | 71 | O["scan_results"] = E.get_scan_results(tag) |
78 | 72 | O["tumors"] = E.has_growths() |
79 | 73 | O["ailments"] = E.has_diagnosable_ailments(scanner = TRUE) |
80 | | - scan["external_organs"] += list(O) |
| 74 | + .["external_organs"] += list(O) |
81 | 75 |
|
82 | | - scan["internal_organs"] = list() |
83 | | - var/list/internal_organs = H.get_internal_organs() |
| 76 | + .["internal_organs"] = list() |
| 77 | + var/list/internal_organs = get_internal_organs() |
84 | 78 | for(var/obj/item/organ/internal/I in internal_organs) |
85 | 79 | var/list/O = list() |
86 | 80 | O["name"] = I.name |
|
89 | 83 | O["is_damaged"] = I.damage > 0 |
90 | 84 | O["scan_results"] = I.get_scan_results(tag) |
91 | 85 | O["ailments"] = I.has_diagnosable_ailments(scanner = TRUE) |
92 | | - scan["internal_organs"] += list(O) |
| 86 | + .["internal_organs"] += list(O) |
93 | 87 |
|
94 | | - scan["missing_organs"] = list() |
| 88 | + .["missing_organs"] = list() |
95 | 89 | var/decl/bodytype/root_bodytype = get_bodytype() |
96 | 90 | for(var/organ_name in root_bodytype.has_organ) |
97 | | - if(!GET_INTERNAL_ORGAN(H, organ_name)) |
98 | | - scan["missing_organs"] += organ_name |
99 | | - if(H.has_genetic_condition(GENE_COND_BLINDED)) |
100 | | - scan["blind"] = TRUE |
101 | | - if(H.has_genetic_condition(GENE_COND_NEARSIGHTED)) |
102 | | - scan["nearsight"] = TRUE |
103 | | - return scan |
| 91 | + if(!GET_INTERNAL_ORGAN(src, organ_name)) |
| 92 | + .["missing_organs"] += organ_name |
| 93 | + if(has_genetic_condition(GENE_COND_BLINDED)) |
| 94 | + .["blind"] = TRUE |
| 95 | + if(has_genetic_condition(GENE_COND_NEARSIGHTED)) |
| 96 | + .["nearsight"] = TRUE |
| 97 | + |
| 98 | +/mob/living/human/get_raw_medical_data(var/tag = FALSE) |
| 99 | + . = ..() |
| 100 | + .["blood_pressure"] = get_blood_pressure() |
| 101 | + .["blood_o2"] = get_blood_oxygenation() |
| 102 | + if(vessel) |
| 103 | + .["blood_volume"] = vessel.total_volume |
| 104 | + .["blood_volume_max"] = vessel.maximum_volume |
104 | 105 |
|
105 | 106 | /proc/display_medical_data_header(var/list/scan, skill_level = SKILL_DEFAULT) |
106 | 107 | //In case of problems, abort. |
|
0 commit comments