From 1c70008d0c453c1e79d88e6bcff44464f1cb7658 Mon Sep 17 00:00:00 2001 From: Robson Richards Date: Fri, 11 Oct 2013 19:11:55 +0100 Subject: [PATCH 1/4] Changes Limbs into Obj's Reworked all the paths for it Reworked all the procs for it --- code/WorkInProgress/virus2/base.dm | 2 +- code/_onclick/other_mobs.dm | 2 +- code/game/gamemodes/cult/cult_items.dm | 2 +- code/game/gamemodes/cult/runes.dm | 2 +- code/game/machinery/doors/airlock.dm | 2 +- code/game/mecha/combat/combat.dm | 2 +- code/game/objects/items.dm | 2 +- code/game/objects/items/devices/scanners.dm | 2 +- code/game/objects/items/stacks/medical.dm | 4 +- .../game/objects/items/stacks/sheets/glass.dm | 2 +- .../objects/items/weapons/storage/bible.dm | 2 +- code/modules/assembly/mousetrap.dm | 2 +- code/modules/hydroponics/hydroitemcode.dm | 4 +- code/modules/mob/living/carbon/carbon.dm | 6 +- code/modules/mob/living/carbon/human/human.dm | 16 +- .../living/carbon/human/human_attackalien.dm | 2 +- .../living/carbon/human/human_attackhand.dm | 4 +- .../living/carbon/human/human_attackpaw.dm | 2 +- .../mob/living/carbon/human/human_damage.dm | 38 +-- .../mob/living/carbon/human/human_defense.dm | 8 +- .../mob/living/carbon/human/human_helpers.dm | 2 +- .../mob/living/carbon/human/update_icons.dm | 2 +- code/modules/mob/living/living.dm | 4 +- .../mob/living/simple_animal/hostile/bear.dm | 2 +- code/modules/mob/mob_helpers.dm | 2 +- code/modules/power/lighting.dm | 2 +- .../projectiles/guns/projectile/revolver.dm | 2 +- code/modules/reagents/Chemistry-Reagents.dm | 2 +- .../reagent_containers/food/drinks/bottle.dm | 2 +- code/modules/surgery/organs/organ.dm | 117 +++++++- code/unused/_debug.dm | 2 +- code/{datums => unused}/limbs.dm | 280 +++++++++--------- code/unused/pain.dm | 4 +- code/unused/traps.dm | 2 +- tgstation.dme | 41 ++- 35 files changed, 363 insertions(+), 209 deletions(-) rename code/{datums => unused}/limbs.dm (95%) diff --git a/code/WorkInProgress/virus2/base.dm b/code/WorkInProgress/virus2/base.dm index 0b77bc4a662..bebc719b88f 100644 --- a/code/WorkInProgress/virus2/base.dm +++ b/code/WorkInProgress/virus2/base.dm @@ -487,7 +487,7 @@ name = "Disarming Syndrome" stage = 4 activate(var/mob/living/carbon/mob,var/multiplier) - var/datum/limb/org = mob.organs["r_arm"] + var/obj/item/organ/limb/org = mob.organs["r_arm"] org.take_damage(3,0,0,0) mob << "\red You feel a sting in your right arm."*/ diff --git a/code/_onclick/other_mobs.dm b/code/_onclick/other_mobs.dm index 69c4f3e0ce3..1d79994ef81 100644 --- a/code/_onclick/other_mobs.dm +++ b/code/_onclick/other_mobs.dm @@ -72,7 +72,7 @@ return var/mob/living/carbon/ML = A var/dam_zone = pick("chest", "l_hand", "r_hand", "l_leg", "r_leg") - var/datum/limb/affecting = null + var/obj/item/organ/limb/affecting = null if(ishuman(ML)) // why the hell is this not more general affecting = ML:get_organ(ran_zone(dam_zone)) var/armor = ML.run_armor_check(affecting, "melee") diff --git a/code/game/gamemodes/cult/cult_items.dm b/code/game/gamemodes/cult/cult_items.dm index 1d3ebb0c812..606d63aa994 100644 --- a/code/game/gamemodes/cult/cult_items.dm +++ b/code/game/gamemodes/cult/cult_items.dm @@ -18,7 +18,7 @@ user.Paralyse(5) user << "\red An unexplicable force powerfully repels the sword from [target]!" var/organ = ((user.hand ? "l_":"r_") + "arm") - var/datum/limb/affecting = user.get_organ(organ) + var/obj/item/organ/limb/affecting = user.get_organ(organ) if(affecting.take_damage(rand(force/2, force))) //random amount of damage between half of the blade's force and the full force of the blade. user.update_damage_overlays(0) return diff --git a/code/game/gamemodes/cult/runes.dm b/code/game/gamemodes/cult/runes.dm index 925300219ee..3a75944e52f 100644 --- a/code/game/gamemodes/cult/runes.dm +++ b/code/game/gamemodes/cult/runes.dm @@ -267,7 +267,7 @@ var/list/sacrificed = list() usr << "\red You require a restless spirit which clings to this world. Beckon their prescence with the sacred chants of Nar-Sie." return fizzle() - for(var/datum/limb/affecting in corpse_to_raise.organs) + for(var/obj/item/organ/limb/affecting in corpse_to_raise.organs) affecting.heal_damage(1000, 1000) corpse_to_raise.setToxLoss(0) corpse_to_raise.setOxyLoss(0) diff --git a/code/game/machinery/doors/airlock.dm b/code/game/machinery/doors/airlock.dm index af482d86c25..6108c955f4a 100644 --- a/code/game/machinery/doors/airlock.dm +++ b/code/game/machinery/doors/airlock.dm @@ -610,7 +610,7 @@ About the new airlock wires panel: playsound(src.loc, 'sound/effects/bang.ogg', 25, 1) if(!istype(H.head, /obj/item/clothing/head/helmet)) visible_message("\red [user] headbutts the airlock.") - var/datum/limb/affecting = H.get_organ("head") + var/obj/item/organ/limb/affecting = H.get_organ("head") H.Stun(8) H.Weaken(5) if(affecting.take_damage(10, 0)) diff --git a/code/game/mecha/combat/combat.dm b/code/game/mecha/combat/combat.dm index 34ca60dcdec..47a9dceb58f 100644 --- a/code/game/mecha/combat/combat.dm +++ b/code/game/mecha/combat/combat.dm @@ -41,7 +41,7 @@ var/mob/living/carbon/human/H = target // if (M.health <= 0) return - var/datum/limb/temp = H.get_organ(pick("chest", "chest", "chest", "head")) + var/obj/item/organ/limb/temp = H.get_organ(pick("chest", "chest", "chest", "head")) if(temp) var/update = 0 switch(damtype) diff --git a/code/game/objects/items.dm b/code/game/objects/items.dm index eecbc64e0cc..625f4c610db 100644 --- a/code/game/objects/items.dm +++ b/code/game/objects/items.dm @@ -501,7 +501,7 @@ "\red You stab yourself in the eyes with [src]!" \ ) if(istype(M, /mob/living/carbon/human)) - var/datum/limb/affecting = M:get_organ("head") + var/obj/item/organ/limb/affecting = M:get_organ("head") if(affecting.take_damage(7)) M:update_damage_overlays(0) else diff --git a/code/game/objects/items/devices/scanners.dm b/code/game/objects/items/devices/scanners.dm index b88cf112237..1c08b4ca68b 100644 --- a/code/game/objects/items/devices/scanners.dm +++ b/code/game/objects/items/devices/scanners.dm @@ -125,7 +125,7 @@ MASS SPECTROMETER var/list/damaged = H.get_damaged_organs(1,1) user.show_message("Localized Damage, Burn/Brute:",1) if(length(damaged)>0) - for(var/datum/limb/org in damaged) + for(var/obj/item/organ/limb/org in damaged) user.show_message(text("\t []: []-[]", capitalize(org.getDisplayName()), (org.burn_dam > 0) ? "[org.burn_dam]" : 0, (org.brute_dam > 0) ? "[org.brute_dam]" : 0), 1) else user.show_message("\t Limbs are OK.",1) diff --git a/code/game/objects/items/stacks/medical.dm b/code/game/objects/items/stacks/medical.dm index 2b5fd33050e..9358adfc4a1 100644 --- a/code/game/objects/items/stacks/medical.dm +++ b/code/game/objects/items/stacks/medical.dm @@ -50,13 +50,13 @@ if (istype(M, /mob/living/carbon/human)) var/mob/living/carbon/human/H = M - var/datum/limb/affecting = H.get_organ("chest") + var/obj/item/organ/limb/affecting = H.get_organ("chest") if(istype(user, /mob/living/carbon/human)) var/mob/living/carbon/human/user2 = user affecting = H.get_organ(check_zone(user2.zone_sel.selecting)) else - if(!istype(affecting, /datum/limb) || affecting:burn_dam <= 0) + if(!istype(affecting, /obj/item/organ/limb) || affecting:burn_dam <= 0) affecting = H.get_organ("head") if (affecting.heal_damage(src.heal_brute, src.heal_burn)) diff --git a/code/game/objects/items/stacks/sheets/glass.dm b/code/game/objects/items/stacks/sheets/glass.dm index 5130265ab81..ef821073ee0 100644 --- a/code/game/objects/items/stacks/sheets/glass.dm +++ b/code/game/objects/items/stacks/sheets/glass.dm @@ -280,7 +280,7 @@ if(!H.gloves) H << "[src] cuts into your hand!" var/organ = (H.hand ? "l_" : "r_") + "arm" - var/datum/limb/affecting = H.get_organ(organ) + var/obj/item/organ/limb/affecting = H.get_organ(organ) if(affecting.take_damage(force / 2)) H.update_damage_overlays(0) else if(isliving(user)) diff --git a/code/game/objects/items/weapons/storage/bible.dm b/code/game/objects/items/weapons/storage/bible.dm index 28f007f30db..7c1c11c1899 100644 --- a/code/game/objects/items/weapons/storage/bible.dm +++ b/code/game/objects/items/weapons/storage/bible.dm @@ -26,7 +26,7 @@ if(ishuman(M)) var/mob/living/carbon/human/H = M var/heal_amt = 10 - for(var/datum/limb/affecting in H.organs) + for(var/obj/item/organ/limb/affecting in H.organs) if(affecting.heal_damage(heal_amt, heal_amt)) H.update_damage_overlays(0) return diff --git a/code/modules/assembly/mousetrap.dm b/code/modules/assembly/mousetrap.dm index e6a435a20e8..702b33e00d5 100644 --- a/code/modules/assembly/mousetrap.dm +++ b/code/modules/assembly/mousetrap.dm @@ -39,7 +39,7 @@ proc/triggered(mob/target as mob, var/type = "feet") if(!armed) return - var/datum/limb/affecting = null + var/obj/item/organ/limb/affecting = null if(ishuman(target)) var/mob/living/carbon/human/H = target switch(type) diff --git a/code/modules/hydroponics/hydroitemcode.dm b/code/modules/hydroponics/hydroitemcode.dm index eaec018f589..5923ee8af38 100644 --- a/code/modules/hydroponics/hydroitemcode.dm +++ b/code/modules/hydroponics/hydroitemcode.dm @@ -33,7 +33,7 @@ user << "\red The nettle burns your bare hand!" if(istype(user, /mob/living/carbon/human)) var/organ = ((user.hand ? "l_":"r_") + "arm") - var/datum/limb/affecting = user.get_organ(organ) + var/obj/item/organ/limb/affecting = user.get_organ(organ) if(affecting.take_damage(0,force)) user.update_damage_overlays(0) else @@ -57,7 +57,7 @@ if(!user.gloves) if(istype(user, /mob/living/carbon/human)) var/organ = ((user.hand ? "l_":"r_") + "arm") - var/datum/limb/affecting = user.get_organ(organ) + var/obj/item/organ/limb/affecting = user.get_organ(organ) if(affecting.take_damage(0,force)) user.update_damage_overlays(0) else diff --git a/code/modules/mob/living/carbon/carbon.dm b/code/modules/mob/living/carbon/carbon.dm index 75fb2d0b87f..73a037fd4a6 100644 --- a/code/modules/mob/living/carbon/carbon.dm +++ b/code/modules/mob/living/carbon/carbon.dm @@ -20,8 +20,8 @@ if(istype(src, /mob/living/carbon/human)) var/mob/living/carbon/human/H = src var/organ = H.get_organ("chest") - if (istype(organ, /datum/limb)) - var/datum/limb/temp = organ + if (istype(organ, /obj/item/organ/limb)) + var/obj/item/organ/limb/temp = organ if(temp.take_damage(d, 0)) H.update_damage_overlays(0) H.updatehealth() @@ -146,7 +146,7 @@ "[src] examines \himself.", \ "You check yourself for injuries.") - for(var/datum/limb/org in H.organs) + for(var/obj/item/organ/limb/org in H.organs) var/status = "" var/brutedamage = org.brute_dam var/burndamage = org.burn_dam diff --git a/code/modules/mob/living/carbon/human/human.dm b/code/modules/mob/living/carbon/human/human.dm index 5adb01ed182..372e6893efc 100644 --- a/code/modules/mob/living/carbon/human/human.dm +++ b/code/modules/mob/living/carbon/human/human.dm @@ -18,9 +18,9 @@ verbs += /mob/living/proc/mob_sleep verbs += /mob/living/proc/lay_down //initialise organs - organs = newlist(/datum/limb/chest, /datum/limb/head, /datum/limb/l_arm, - /datum/limb/r_arm, /datum/limb/r_leg, /datum/limb/l_leg) - for(var/datum/limb/O in organs) + organs = newlist(/obj/item/organ/limb/chest, /obj/item/organ/limb/head, /obj/item/organ/limb/l_arm, + /obj/item/organ/limb/r_arm, /obj/item/organ/limb/r_leg, /obj/item/organ/limb/l_leg) + for(var/obj/item/organ/limb/O in organs) O.owner = src internal_organs += new /obj/item/organ/appendix internal_organs += new /obj/item/organ/heart @@ -186,7 +186,7 @@ Paralyse(10) var/update = 0 - for(var/datum/limb/temp in organs) + for(var/obj/item/organ/limb/temp in organs) switch(temp.name) if("head") update |= temp.take_damage(b_loss * 0.2, f_loss * 0.2) @@ -207,7 +207,7 @@ if(stat == 2) return show_message("\red The blob attacks you!") var/dam_zone = pick("chest", "l_hand", "r_hand", "l_leg", "r_leg") - var/datum/limb/affecting = get_organ(ran_zone(dam_zone)) + var/obj/item/organ/limb/affecting = get_organ(ran_zone(dam_zone)) apply_damage(rand(20,30), BRUTE, affecting, run_armor_check(affecting, "melee")) return @@ -216,7 +216,7 @@ if ((M.client && !( M.blinded ))) M.show_message("\red [src] has been hit by [O]", 1) if (health > 0) - var/datum/limb/affecting = get_organ(pick("chest", "chest", "chest", "head")) + var/obj/item/organ/limb/affecting = get_organ(pick("chest", "chest", "chest", "head")) if(!affecting) return if (istype(O, /obj/effect/immovablerod)) if(affecting.take_damage(101, 0)) @@ -240,7 +240,7 @@ src.attack_log += text("\[[time_stamp()]\] was attacked by [M.name] ([M.ckey])") var/damage = rand(M.melee_damage_lower, M.melee_damage_upper) var/dam_zone = pick("chest", "l_hand", "r_hand", "l_leg", "r_leg") - var/datum/limb/affecting = get_organ(ran_zone(dam_zone)) + var/obj/item/organ/limb/affecting = get_organ(ran_zone(dam_zone)) var/armor = run_armor_check(affecting, "melee") apply_damage(damage, BRUTE, affecting, armor) if(armor >= 2) return @@ -265,7 +265,7 @@ var/dam_zone = pick("head", "chest", "l_arm", "r_arm", "l_leg", "r_leg", "groin") - var/datum/limb/affecting = get_organ(ran_zone(dam_zone)) + var/obj/item/organ/limb/affecting = get_organ(ran_zone(dam_zone)) var/armor_block = run_armor_check(affecting, "melee") apply_damage(damage, BRUTE, affecting, armor_block) diff --git a/code/modules/mob/living/carbon/human/human_attackalien.dm b/code/modules/mob/living/carbon/human/human_attackalien.dm index d8440350bc6..8bd5f4783c2 100644 --- a/code/modules/mob/living/carbon/human/human_attackalien.dm +++ b/code/modules/mob/living/carbon/human/human_attackalien.dm @@ -30,7 +30,7 @@ playsound(loc, 'sound/weapons/slashmiss.ogg', 50, 1, -1) visible_message("\red [M] has lunged at [src]!") return 0 - var/datum/limb/affecting = get_organ(ran_zone(M.zone_sel.selecting)) + var/obj/item/organ/limb/affecting = get_organ(ran_zone(M.zone_sel.selecting)) var/armor_block = run_armor_check(affecting, "melee") playsound(loc, 'sound/weapons/slice.ogg', 25, 1, -1) diff --git a/code/modules/mob/living/carbon/human/human_attackhand.dm b/code/modules/mob/living/carbon/human/human_attackhand.dm index 028df8c757d..4125971cf02 100644 --- a/code/modules/mob/living/carbon/human/human_attackhand.dm +++ b/code/modules/mob/living/carbon/human/human_attackhand.dm @@ -80,7 +80,7 @@ return 0 - var/datum/limb/affecting = get_organ(ran_zone(M.zone_sel.selecting)) + var/obj/item/organ/limb/affecting = get_organ(ran_zone(M.zone_sel.selecting)) var/armor_block = run_armor_check(affecting, "melee") if(HULK in M.mutations) @@ -111,7 +111,7 @@ if(w_uniform) w_uniform.add_fingerprint(M) - var/datum/limb/affecting = get_organ(ran_zone(M.zone_sel.selecting)) + var/obj/item/organ/limb/affecting = get_organ(ran_zone(M.zone_sel.selecting)) var/randn = rand(1, 100) if(randn <= 25) apply_effect(2, WEAKEN, run_armor_check(affecting, "melee")) diff --git a/code/modules/mob/living/carbon/human/human_attackpaw.dm b/code/modules/mob/living/carbon/human/human_attackpaw.dm index 28695c54844..0f810bd0917 100644 --- a/code/modules/mob/living/carbon/human/human_attackpaw.dm +++ b/code/modules/mob/living/carbon/human/human_attackpaw.dm @@ -11,7 +11,7 @@ var/damage = rand(1, 3) var/dam_zone = pick("chest", "l_hand", "r_hand", "l_leg", "r_leg") - var/datum/limb/affecting = get_organ(ran_zone(dam_zone)) + var/obj/item/organ/limb/affecting = get_organ(ran_zone(dam_zone)) apply_damage(damage, BRUTE, affecting, run_armor_check(affecting, "melee")) for(var/datum/disease/D in M.viruses) diff --git a/code/modules/mob/living/carbon/human/human_damage.dm b/code/modules/mob/living/carbon/human/human_damage.dm index 1ad89612dd2..eaae2e942b0 100644 --- a/code/modules/mob/living/carbon/human/human_damage.dm +++ b/code/modules/mob/living/carbon/human/human_damage.dm @@ -6,7 +6,7 @@ return var/total_burn = 0 var/total_brute = 0 - for(var/datum/limb/O in organs) //hardcoded to streamline things a bit + for(var/obj/item/organ/limb/O in organs) //hardcoded to streamline things a bit total_brute += O.brute_dam total_burn += O.burn_dam health = maxHealth - getOxyLoss() - getToxLoss() - getCloneLoss() - total_burn - total_brute @@ -19,13 +19,13 @@ //These procs fetch a cumulative total damage from all organs /mob/living/carbon/human/getBruteLoss() var/amount = 0 - for(var/datum/limb/O in organs) + for(var/obj/item/organ/limb/O in organs) amount += O.brute_dam return amount /mob/living/carbon/human/getFireLoss() var/amount = 0 - for(var/datum/limb/O in organs) + for(var/obj/item/organ/limb/O in organs) amount += O.burn_dam return amount @@ -58,16 +58,16 @@ //Returns a list of damaged organs /mob/living/carbon/human/proc/get_damaged_organs(var/brute, var/burn) - var/list/datum/limb/parts = list() - for(var/datum/limb/O in organs) + var/list/obj/item/organ/limb/parts = list() + for(var/obj/item/organ/limb/O in organs) if((brute && O.brute_dam) || (burn && O.burn_dam)) parts += O return parts //Returns a list of damageable organs /mob/living/carbon/human/proc/get_damageable_organs() - var/list/datum/limb/parts = list() - for(var/datum/limb/O in organs) + var/list/obj/item/organ/limb/parts = list() + for(var/obj/item/organ/limb/O in organs) if(O.brute_dam + O.burn_dam < O.max_damage) parts += O return parts @@ -76,9 +76,9 @@ //It automatically updates damage overlays if necesary //It automatically updates health status /mob/living/carbon/human/heal_organ_damage(var/brute, var/burn) - var/list/datum/limb/parts = get_damaged_organs(brute,burn) + var/list/obj/item/organ/limb/parts = get_damaged_organs(brute,burn) if(!parts.len) return - var/datum/limb/picked = pick(parts) + var/obj/item/organ/limb/picked = pick(parts) if(picked.heal_damage(brute,burn)) update_damage_overlays(0) updatehealth() @@ -87,9 +87,9 @@ //It automatically updates damage overlays if necesary //It automatically updates health status /mob/living/carbon/human/take_organ_damage(var/brute, var/burn) - var/list/datum/limb/parts = get_damageable_organs() + var/list/obj/item/organ/limb/parts = get_damageable_organs() if(!parts.len) return - var/datum/limb/picked = pick(parts) + var/obj/item/organ/limb/picked = pick(parts) if(picked.take_damage(brute,burn)) update_damage_overlays(0) updatehealth() @@ -97,11 +97,11 @@ //Heal MANY external organs, in random order /mob/living/carbon/human/heal_overall_damage(var/brute, var/burn) - var/list/datum/limb/parts = get_damaged_organs(brute,burn) + var/list/obj/item/organ/limb/parts = get_damaged_organs(brute,burn) var/update = 0 while(parts.len && (brute>0 || burn>0) ) - var/datum/limb/picked = pick(parts) + var/obj/item/organ/limb/picked = pick(parts) var/brute_was = picked.brute_dam var/burn_was = picked.burn_dam @@ -118,10 +118,10 @@ // damage MANY external organs, in random order /mob/living/carbon/human/take_overall_damage(var/brute, var/burn) if(status_flags & GODMODE) return //godmode - var/list/datum/limb/parts = get_damageable_organs() + var/list/obj/item/organ/limb/parts = get_damageable_organs() var/update = 0 while(parts.len && (brute>0 || burn>0) ) - var/datum/limb/picked = pick(parts) + var/obj/item/organ/limb/picked = pick(parts) var/brute_was = picked.brute_dam var/burn_was = picked.burn_dam @@ -140,8 +140,8 @@ //////////////////////////////////////////// /mob/living/carbon/human/proc/HealDamage(zone, brute, burn) - var/datum/limb/E = get_organ(zone) - if(istype(E, /datum/limb)) + var/obj/item/organ/limb/E = get_organ(zone) + if(istype(E, /obj/item/organ/limb)) if (E.heal_damage(brute, burn)) update_damage_overlays(0) else @@ -151,7 +151,7 @@ /mob/living/carbon/human/proc/get_organ(var/zone) if(!zone) zone = "chest" - for(var/datum/limb/O in organs) + for(var/obj/item/organ/limb/O in organs) if(O.name == zone) return O return null @@ -164,7 +164,7 @@ if(blocked >= 2) return 0 - var/datum/limb/organ = null + var/obj/item/organ/limb/organ = null if(isorgan(def_zone)) organ = def_zone else diff --git a/code/modules/mob/living/carbon/human/human_defense.dm b/code/modules/mob/living/carbon/human/human_defense.dm index 1c2ed337040..3615496212e 100644 --- a/code/modules/mob/living/carbon/human/human_defense.dm +++ b/code/modules/mob/living/carbon/human/human_defense.dm @@ -15,18 +15,18 @@ emp_act if(def_zone) if(isorgan(def_zone)) return checkarmor(def_zone, type) - var/datum/limb/affecting = get_organ(ran_zone(def_zone)) + var/obj/item/organ/limb/affecting = get_organ(ran_zone(def_zone)) return checkarmor(affecting, type) //If a specific bodypart is targetted, check how that bodypart is protected and return the value. //If you don't specify a bodypart, it checks ALL your bodyparts for protection, and averages out the values - for(var/datum/limb/organ in organs) + for(var/obj/item/organ/limb/organ in organs) armorval += checkarmor(organ, type) organnum++ return (armorval/max(organnum, 1)) -/mob/living/carbon/human/proc/checkarmor(var/datum/limb/def_zone, var/type) +/mob/living/carbon/human/proc/checkarmor(var/obj/item/organ/limb/def_zone, var/type) if(!type) return 0 var/protection = 0 var/list/body_parts = list(head, wear_mask, wear_suit, w_uniform) @@ -120,7 +120,7 @@ emp_act /mob/living/carbon/human/proc/attacked_by(var/obj/item/I, var/mob/living/user, var/def_zone) if(!I || !user) return 0 - var/datum/limb/affecting = get_organ(ran_zone(user.zone_sel.selecting)) + var/obj/item/organ/limb/affecting = get_organ(ran_zone(user.zone_sel.selecting)) var/hit_area = parse_zone(affecting.name) diff --git a/code/modules/mob/living/carbon/human/human_helpers.dm b/code/modules/mob/living/carbon/human/human_helpers.dm index ac4ea3dc30d..725053058ea 100644 --- a/code/modules/mob/living/carbon/human/human_helpers.dm +++ b/code/modules/mob/living/carbon/human/human_helpers.dm @@ -50,7 +50,7 @@ return if_no_face if( head && (head.flags_inv&HIDEFACE) ) return if_no_face //Likewise for hats - var/datum/limb/O = get_organ("head") + var/obj/item/organ/limb/O = get_organ("head") if( (status_flags&DISFIGURED) || (O.brutestate+O.burnstate)>2 || cloneloss>50 || !real_name ) //disfigured. use id-name if possible return if_no_face return real_name diff --git a/code/modules/mob/living/carbon/human/update_icons.dm b/code/modules/mob/living/carbon/human/update_icons.dm index ad010da7866..f14f25b3f3b 100644 --- a/code/modules/mob/living/carbon/human/update_icons.dm +++ b/code/modules/mob/living/carbon/human/update_icons.dm @@ -161,7 +161,7 @@ Please contact me on #coderbus IRC. ~Carnie x overlays_standing[DAMAGE_LAYER] = standing overlays_lying[DAMAGE_LAYER] = lying - for(var/datum/limb/O in organs) + for(var/obj/item/organ/limb/O in organs) if(O.brutestate) standing.overlays += "[O.icon_name]_[O.brutestate]0" //we're adding icon_states of the base image as overlays lying.overlays += "[O.icon_name]2_[O.brutestate]0" diff --git a/code/modules/mob/living/living.dm b/code/modules/mob/living/living.dm index 287c7a87700..5d3990f69f8 100644 --- a/code/modules/mob/living/living.dm +++ b/code/modules/mob/living/living.dm @@ -38,7 +38,7 @@ var/mob/living/carbon/human/H = src //make this damage method divide the damage to be done among all the body parts, then burn each body part for that much damage. will have better effect then just randomly picking a body part var/divided_damage = (burn_amount)/(H.organs.len) var/extradam = 0 //added to when organ is at max dam - for(var/datum/limb/affecting in H.organs) + for(var/obj/item/organ/limb/affecting in H.organs) if(!affecting) continue if(affecting.take_damage(0, divided_damage+extradam)) //TODO: fix the extradam stuff. Or, ebtter yet...rewrite this entire proc ~Carn H.update_damage_overlays(0) @@ -216,7 +216,7 @@ var/t = shooter:zone_sel.selecting if ((t in list( "eyes", "mouth" ))) t = "head" - var/datum/limb/def_zone = ran_zone(t) + var/obj/item/organ/limb/def_zone = ran_zone(t) return def_zone diff --git a/code/modules/mob/living/simple_animal/hostile/bear.dm b/code/modules/mob/living/simple_animal/hostile/bear.dm index 0a83d7aa5d1..3f1fdd5ccfb 100644 --- a/code/modules/mob/living/simple_animal/hostile/bear.dm +++ b/code/modules/mob/living/simple_animal/hostile/bear.dm @@ -135,7 +135,7 @@ if(ishuman(target)) var/mob/living/carbon/human/H = target var/dam_zone = pick("chest", "l_hand", "r_hand", "l_leg", "r_leg") - var/datum/limb/affecting = H.get_organ(ran_zone(dam_zone)) + var/obj/item/organ/limb/affecting = H.get_organ(ran_zone(dam_zone)) H.apply_damage(damage, BRUTE, affecting, H.run_armor_check(affecting, "melee")) return H else if(isliving(target)) diff --git a/code/modules/mob/mob_helpers.dm b/code/modules/mob/mob_helpers.dm index 19d492c55aa..d978bbfed94 100644 --- a/code/modules/mob/mob_helpers.dm +++ b/code/modules/mob/mob_helpers.dm @@ -121,7 +121,7 @@ proc/isovermind(A) return 0 proc/isorgan(A) - if(istype(A, /datum/limb)) + if(istype(A, /obj/item/organ/limb)) return 1 return 0 diff --git a/code/modules/power/lighting.dm b/code/modules/power/lighting.dm index 1ad24c77dc5..100bb072268 100644 --- a/code/modules/power/lighting.dm +++ b/code/modules/power/lighting.dm @@ -496,7 +496,7 @@ else user << "You try to remove the light [fitting], but you burn your hand on it!" - var/datum/limb/affecting = H.get_organ("[user.hand ? "l" : "r" ]_arm") + var/obj/item/organ/limb/affecting = H.get_organ("[user.hand ? "l" : "r" ]_arm") if(affecting.take_damage( 0, 5 )) // 5 burn damage H.update_damage_overlays(0) diff --git a/code/modules/projectiles/guns/projectile/revolver.dm b/code/modules/projectiles/guns/projectile/revolver.dm index 14095030c6a..66cf1927142 100644 --- a/code/modules/projectiles/guns/projectile/revolver.dm +++ b/code/modules/projectiles/guns/projectile/revolver.dm @@ -161,7 +161,7 @@ if(isliving(target) && isliving(user)) if(target == user) - var/datum/limb/affecting = user.zone_sel.selecting + var/obj/item/organ/limb/affecting = user.zone_sel.selecting if(affecting == "head") var/obj/item/ammo_casing/AC = loaded[1] diff --git a/code/modules/reagents/Chemistry-Reagents.dm b/code/modules/reagents/Chemistry-Reagents.dm index 6dff771e6ad..9dd630c9766 100644 --- a/code/modules/reagents/Chemistry-Reagents.dm +++ b/code/modules/reagents/Chemistry-Reagents.dm @@ -1628,7 +1628,7 @@ datum if(!M.unacidable) if(istype(M, /mob/living/carbon/human) && volume >= 3) var/mob/living/carbon/human/H = M - var/datum/limb/affecting = H.get_organ("head") + var/obj/item/organ/limb/affecting = H.get_organ("head") if(affecting) if(affecting.take_damage(4*toxpwr, 2*toxpwr)) H.update_damage_overlays(0) diff --git a/code/modules/reagents/reagent_containers/food/drinks/bottle.dm b/code/modules/reagents/reagent_containers/food/drinks/bottle.dm index bc123b35196..3216877d305 100644 --- a/code/modules/reagents/reagent_containers/food/drinks/bottle.dm +++ b/code/modules/reagents/reagent_containers/food/drinks/bottle.dm @@ -43,7 +43,7 @@ force = 15 //Smashing bottles over someoen's head hurts. - var/datum/limb/affecting = user.zone_sel.selecting //Find what the player is aiming at + var/obj/item/organ/limb/affecting = user.zone_sel.selecting //Find what the player is aiming at var/armor_block = 0 //Get the target's armour values for normal attack damage. var/armor_duration = 0 //The more force the bottle has, the longer the duration. diff --git a/code/modules/surgery/organs/organ.dm b/code/modules/surgery/organs/organ.dm index a63655b5537..b0c771fe3f7 100644 --- a/code/modules/surgery/organs/organ.dm +++ b/code/modules/surgery/organs/organ.dm @@ -28,4 +28,119 @@ //Looking for brains? -//Try code/modules/mob/living/carbon/brain/brain_item.dm \ No newline at end of file +//Try code/modules/mob/living/carbon/brain/brain_item.dm + +/obj/item/organ/limb + name = "limb" + var/mob/owner = null + var/icon_name = null + var/body_part = null + var/brutestate = 0 + var/burnstate = 0 + var/brute_dam = 0 + var/burn_dam = 0 + var/max_damage = 0 + +/obj/item/organ/limb/chest + name = "chest" + icon_name = "chest" + max_damage = 200 + body_part = CHEST + +/obj/item/organ/limb/head + name = "head" + icon_name = "head" + max_damage = 200 + body_part = HEAD + +/obj/item/organ/limb/l_arm + name = "l_arm" + icon_name = "l_arm" + max_damage = 75 + body_part = ARM_LEFT + +/obj/item/organ/limb/l_leg + name = "l_leg" + icon_name = "l_leg" + max_damage = 75 + body_part = LEG_LEFT + +/obj/item/organ/limb/r_arm + name = "r_arm" + icon_name = "r_arm" + max_damage = 75 + body_part = ARM_RIGHT + +/obj/item/organ/limb/r_leg + name = "r_leg" + icon_name = "r_leg" + max_damage = 75 + body_part = LEG_RIGHT + + +//Applies brute and burn damage to the organ. Returns 1 if the damage-icon states changed at all. +//Damage will not exceed max_damage using this proc +//Cannot apply negative damage +/obj/item/organ/limb/proc/take_damage(brute, burn) + if(owner && (owner.status_flags & GODMODE)) return 0 //godmode + brute = max(brute,0) + burn = max(burn,0) + + var/can_inflict = max_damage - (brute_dam + burn_dam) + if(!can_inflict) return 0 + + if((brute + burn) < can_inflict) + brute_dam += brute + burn_dam += burn + else + if(brute > 0) + if(burn > 0) + brute = round( (brute/(brute+burn)) * can_inflict, 1 ) + burn = can_inflict - brute //gets whatever damage is left over + brute_dam += brute + burn_dam += burn + else + brute_dam += can_inflict + else + if(burn > 0) + burn_dam += can_inflict + else + return 0 + return update_organ_icon() + + +//Heals brute and burn damage for the organ. Returns 1 if the damage-icon states changed at all. +//Damage cannot go below zero. +//Cannot remove negative damage (i.e. apply damage) +/obj/item/organ/limb/proc/heal_damage(brute, burn) + brute = max(brute, 0) + burn = max(burn, 0) + brute_dam = max(brute_dam - brute, 0) + burn_dam = max(burn_dam - burn, 0) + return update_organ_icon() + + +//Returns total damage...kinda pointless really +/obj/item/organ/limb/proc/get_damage() + return brute_dam + burn_dam + + +//Updates an organ's brute/burn states for use by update_damage_overlays() +//Returns 1 if we need to update overlays. 0 otherwise. +/obj/item/organ/limb/proc/update_organ_icon() + var/tbrute = round( (brute_dam/max_damage)*3, 1 ) + var/tburn = round( (burn_dam/max_damage)*3, 1 ) + if((tbrute != brutestate) || (tburn != burnstate)) + brutestate = tbrute + burnstate = tburn + return 1 + return 0 + +//Returns a display name for the organ +/obj/item/organ/limb/proc/getDisplayName() + switch(name) + if("l_leg") return "left leg" + if("r_leg") return "right leg" + if("l_arm") return "left arm" + if("r_arm") return "right arm" + else return name diff --git a/code/unused/_debug.dm b/code/unused/_debug.dm index 7def5f45c90..dc02d5c4755 100644 --- a/code/unused/_debug.dm +++ b/code/unused/_debug.dm @@ -480,7 +480,7 @@ Doing this because FindTurfs() isn't even used if(stat > 1) stat=0 disabilities = initial(disabilities) sdisabilities = initial(sdisabilities) - for(var/datum/limb/e in src) + for(var/obj/item/organ/limb/e in src) e.brute_dam = 0.0 e.burn_dam = 0.0 e.bandaged = 0.0 diff --git a/code/datums/limbs.dm b/code/unused/limbs.dm similarity index 95% rename from code/datums/limbs.dm rename to code/unused/limbs.dm index ef73eec5ece..b9a95ba889e 100644 --- a/code/datums/limbs.dm +++ b/code/unused/limbs.dm @@ -1,140 +1,140 @@ -/datum/limb - var/name = "limb" - var/mob/owner = null - var/icon_name = null - var/body_part = null - var/brutestate = 0 - var/burnstate = 0 - var/brute_dam = 0 - var/burn_dam = 0 - var/max_damage = 0 - -/datum/limb/chest - name = "chest" - icon_name = "chest" - max_damage = 200 - body_part = CHEST - -/datum/limb/head - name = "head" - icon_name = "head" - max_damage = 200 - body_part = HEAD - -/datum/limb/l_arm - name = "l_arm" - icon_name = "l_arm" - max_damage = 75 - body_part = ARM_LEFT - -/datum/limb/l_leg - name = "l_leg" - icon_name = "l_leg" - max_damage = 75 - body_part = LEG_LEFT - -/datum/limb/r_arm - name = "r_arm" - icon_name = "r_arm" - max_damage = 75 - body_part = ARM_RIGHT - -/datum/limb/r_leg - name = "r_leg" - icon_name = "r_leg" - max_damage = 75 - body_part = LEG_RIGHT - -/*Leaving these here in case we want to use them later -/datum/limb/l_foot - name = "l foot" - icon_name = "l_foot" - body_part = FOOT_LEFT - -/datum/limb/r_foot - name = "r foot" - icon_name = "r_foot" - body_part = FOOT_RIGHT - -/datum/limb/r_hand - name = "r hand" - icon_name = "r_hand" - body_part = HAND_RIGHT - -/datum/limb/l_hand - name = "l hand" - icon_name = "l_hand" - body_part = HAND_LEFT - -/datum/limb/groin - name = "groin" - icon_name = "groin" - body_part = GROIN -*/ - -//Applies brute and burn damage to the organ. Returns 1 if the damage-icon states changed at all. -//Damage will not exceed max_damage using this proc -//Cannot apply negative damage -/datum/limb/proc/take_damage(brute, burn) - if(owner && (owner.status_flags & GODMODE)) return 0 //godmode - brute = max(brute,0) - burn = max(burn,0) - - var/can_inflict = max_damage - (brute_dam + burn_dam) - if(!can_inflict) return 0 - - if((brute + burn) < can_inflict) - brute_dam += brute - burn_dam += burn - else - if(brute > 0) - if(burn > 0) - brute = round( (brute/(brute+burn)) * can_inflict, 1 ) - burn = can_inflict - brute //gets whatever damage is left over - brute_dam += brute - burn_dam += burn - else - brute_dam += can_inflict - else - if(burn > 0) - burn_dam += can_inflict - else - return 0 - return update_icon() - - -//Heals brute and burn damage for the organ. Returns 1 if the damage-icon states changed at all. -//Damage cannot go below zero. -//Cannot remove negative damage (i.e. apply damage) -/datum/limb/proc/heal_damage(brute, burn) - brute = max(brute, 0) - burn = max(burn, 0) - brute_dam = max(brute_dam - brute, 0) - burn_dam = max(burn_dam - burn, 0) - return update_icon() - - -//Returns total damage...kinda pointless really -/datum/limb/proc/get_damage() - return brute_dam + burn_dam - - -//Updates an organ's brute/burn states for use by update_damage_overlays() -//Returns 1 if we need to update overlays. 0 otherwise. -/datum/limb/proc/update_icon() - var/tbrute = round( (brute_dam/max_damage)*3, 1 ) - var/tburn = round( (burn_dam/max_damage)*3, 1 ) - if((tbrute != brutestate) || (tburn != burnstate)) - brutestate = tbrute - burnstate = tburn - return 1 - return 0 - -//Returns a display name for the organ -/datum/limb/proc/getDisplayName() - switch(name) - if("l_leg") return "left leg" - if("r_leg") return "right leg" - if("l_arm") return "left arm" - if("r_arm") return "right arm" - else return name +/datum/limb + var/name = "limb" + var/mob/owner = null + var/icon_name = null + var/body_part = null + var/brutestate = 0 + var/burnstate = 0 + var/brute_dam = 0 + var/burn_dam = 0 + var/max_damage = 0 + +/datum/limb/chest + name = "chest" + icon_name = "chest" + max_damage = 200 + body_part = CHEST + +/datum/limb/head + name = "head" + icon_name = "head" + max_damage = 200 + body_part = HEAD + +/datum/limb/l_arm + name = "l_arm" + icon_name = "l_arm" + max_damage = 75 + body_part = ARM_LEFT + +/datum/limb/l_leg + name = "l_leg" + icon_name = "l_leg" + max_damage = 75 + body_part = LEG_LEFT + +/datum/limb/r_arm + name = "r_arm" + icon_name = "r_arm" + max_damage = 75 + body_part = ARM_RIGHT + +/datum/limb/r_leg + name = "r_leg" + icon_name = "r_leg" + max_damage = 75 + body_part = LEG_RIGHT + +/*Leaving these here in case we want to use them later +/datum/limb/l_foot + name = "l foot" + icon_name = "l_foot" + body_part = FOOT_LEFT + +/datum/limb/r_foot + name = "r foot" + icon_name = "r_foot" + body_part = FOOT_RIGHT + +/datum/limb/r_hand + name = "r hand" + icon_name = "r_hand" + body_part = HAND_RIGHT + +/datum/limb/l_hand + name = "l hand" + icon_name = "l_hand" + body_part = HAND_LEFT + +/datum/limb/groin + name = "groin" + icon_name = "groin" + body_part = GROIN +*/ + +//Applies brute and burn damage to the organ. Returns 1 if the damage-icon states changed at all. +//Damage will not exceed max_damage using this proc +//Cannot apply negative damage +/datum/limb/proc/take_damage(brute, burn) + if(owner && (owner.status_flags & GODMODE)) return 0 //godmode + brute = max(brute,0) + burn = max(burn,0) + + var/can_inflict = max_damage - (brute_dam + burn_dam) + if(!can_inflict) return 0 + + if((brute + burn) < can_inflict) + brute_dam += brute + burn_dam += burn + else + if(brute > 0) + if(burn > 0) + brute = round( (brute/(brute+burn)) * can_inflict, 1 ) + burn = can_inflict - brute //gets whatever damage is left over + brute_dam += brute + burn_dam += burn + else + brute_dam += can_inflict + else + if(burn > 0) + burn_dam += can_inflict + else + return 0 + return update_icon() + + +//Heals brute and burn damage for the organ. Returns 1 if the damage-icon states changed at all. +//Damage cannot go below zero. +//Cannot remove negative damage (i.e. apply damage) +/datum/limb/proc/heal_damage(brute, burn) + brute = max(brute, 0) + burn = max(burn, 0) + brute_dam = max(brute_dam - brute, 0) + burn_dam = max(burn_dam - burn, 0) + return update_icon() + + +//Returns total damage...kinda pointless really +/datum/limb/proc/get_damage() + return brute_dam + burn_dam + + +//Updates an organ's brute/burn states for use by update_damage_overlays() +//Returns 1 if we need to update overlays. 0 otherwise. +/datum/limb/proc/update_icon() + var/tbrute = round( (brute_dam/max_damage)*3, 1 ) + var/tburn = round( (burn_dam/max_damage)*3, 1 ) + if((tbrute != brutestate) || (tburn != burnstate)) + brutestate = tbrute + burnstate = tburn + return 1 + return 0 + +//Returns a display name for the organ +/datum/limb/proc/getDisplayName() + switch(name) + if("l_leg") return "left leg" + if("r_leg") return "right leg" + if("l_arm") return "left arm" + if("r_arm") return "right arm" + else return name diff --git a/code/unused/pain.dm b/code/unused/pain.dm index 3505103fc5f..09ac590ee1f 100644 --- a/code/unused/pain.dm +++ b/code/unused/pain.dm @@ -43,9 +43,9 @@ mob/living/carbon/human/proc/handle_pain() if(reagents.has_reagent("oxycodone")) return var/maxdam = 0 - var/datum/limb/damaged_organ = null + var/obj/item/organ/limb/damaged_organ = null for(var/name in organs) - var/datum/limb/E = organs[name] + var/obj/item/organ/limb/E = organs[name] var/dam = E.get_damage() // make the choice of the organ depend on damage, // but also sometimes use one of the less damaged ones diff --git a/code/unused/traps.dm b/code/unused/traps.dm index da08b42372e..b96f8b770b2 100644 --- a/code/unused/traps.dm +++ b/code/unused/traps.dm @@ -193,7 +193,7 @@ var/dmg = rand(rock_min_dmg,rock_max_dmg) if(istype(victim, /mob/living/carbon/human)) var/mob/living/carbon/human/H = victim - var/datum/limb/affecting = H.organs["head"] + var/obj/item/organ/limb/affecting = H.organs["head"] affecting.take_damage(dmg) H.updatehealth() else diff --git a/tgstation.dme b/tgstation.dme index 57c7ea70817..b27c5c8033a 100644 --- a/tgstation.dme +++ b/tgstation.dme @@ -6,6 +6,46 @@ // BEGIN_FILE_DIR #define FILE_DIR . +#define FILE_DIR "html" +#define FILE_DIR "icons" +#define FILE_DIR "icons/effects" +#define FILE_DIR "icons/mecha" +#define FILE_DIR "icons/misc" +#define FILE_DIR "icons/mob" +#define FILE_DIR "icons/obj" +#define FILE_DIR "icons/obj/assemblies" +#define FILE_DIR "icons/obj/atmospherics" +#define FILE_DIR "icons/obj/clothing" +#define FILE_DIR "icons/obj/doors" +#define FILE_DIR "icons/obj/flora" +#define FILE_DIR "icons/obj/machines" +#define FILE_DIR "icons/obj/pipes" +#define FILE_DIR "icons/obj/power_cond" +#define FILE_DIR "icons/pda_icons" +#define FILE_DIR "icons/spideros_icons" +#define FILE_DIR "icons/stamp_icons" +#define FILE_DIR "icons/Testing" +#define FILE_DIR "icons/turf" +#define FILE_DIR "icons/vending_icons" +#define FILE_DIR "nano" +#define FILE_DIR "nano/images" +#define FILE_DIR "sound" +#define FILE_DIR "sound/AI" +#define FILE_DIR "sound/ambience" +#define FILE_DIR "sound/effects" +#define FILE_DIR "sound/hallucinations" +#define FILE_DIR "sound/items" +#define FILE_DIR "sound/machines" +#define FILE_DIR "sound/mecha" +#define FILE_DIR "sound/misc" +#define FILE_DIR "sound/piano" +#define FILE_DIR "sound/violin" +#define FILE_DIR "sound/voice" +#define FILE_DIR "sound/voice/complionator" +#define FILE_DIR "sound/weapons" +#define FILE_DIR "tools" +#define FILE_DIR "tools/AddToChangelog" +#define FILE_DIR "tools/AddToChangelog/AddToChangelog" // END_FILE_DIR // BEGIN_PREFERENCES @@ -92,7 +132,6 @@ #include "code\datums\datacore.dm" #include "code\datums\datumvars.dm" #include "code\datums\disease.dm" -#include "code\datums\limbs.dm" #include "code\datums\mind.dm" #include "code\datums\mixed.dm" #include "code\datums\modules.dm" From 6aeb425326ef41bdef2dbcd537238dcbf58389f2 Mon Sep 17 00:00:00 2001 From: Robson Richards Date: Sat, 12 Oct 2013 15:51:00 +0100 Subject: [PATCH 2/4] Fixes the DME (I hope) Removes some Stray Colons. --- code/game/objects/items.dm | 6 ++++-- tgstation.dme | 40 -------------------------------------- 2 files changed, 4 insertions(+), 42 deletions(-) diff --git a/code/game/objects/items.dm b/code/game/objects/items.dm index 625f4c610db..40f9e3b0ded 100644 --- a/code/game/objects/items.dm +++ b/code/game/objects/items.dm @@ -501,9 +501,11 @@ "\red You stab yourself in the eyes with [src]!" \ ) if(istype(M, /mob/living/carbon/human)) - var/obj/item/organ/limb/affecting = M:get_organ("head") + var/mob/living/carbon/human/U = M + var/obj/item/organ/limb/affecting = U.get_organ("head") if(affecting.take_damage(7)) - M:update_damage_overlays(0) + U.update_damage_overlays(0) + else M.take_organ_damage(7) M.eye_blurry += rand(3,4) diff --git a/tgstation.dme b/tgstation.dme index b27c5c8033a..28c4b803790 100644 --- a/tgstation.dme +++ b/tgstation.dme @@ -6,46 +6,6 @@ // BEGIN_FILE_DIR #define FILE_DIR . -#define FILE_DIR "html" -#define FILE_DIR "icons" -#define FILE_DIR "icons/effects" -#define FILE_DIR "icons/mecha" -#define FILE_DIR "icons/misc" -#define FILE_DIR "icons/mob" -#define FILE_DIR "icons/obj" -#define FILE_DIR "icons/obj/assemblies" -#define FILE_DIR "icons/obj/atmospherics" -#define FILE_DIR "icons/obj/clothing" -#define FILE_DIR "icons/obj/doors" -#define FILE_DIR "icons/obj/flora" -#define FILE_DIR "icons/obj/machines" -#define FILE_DIR "icons/obj/pipes" -#define FILE_DIR "icons/obj/power_cond" -#define FILE_DIR "icons/pda_icons" -#define FILE_DIR "icons/spideros_icons" -#define FILE_DIR "icons/stamp_icons" -#define FILE_DIR "icons/Testing" -#define FILE_DIR "icons/turf" -#define FILE_DIR "icons/vending_icons" -#define FILE_DIR "nano" -#define FILE_DIR "nano/images" -#define FILE_DIR "sound" -#define FILE_DIR "sound/AI" -#define FILE_DIR "sound/ambience" -#define FILE_DIR "sound/effects" -#define FILE_DIR "sound/hallucinations" -#define FILE_DIR "sound/items" -#define FILE_DIR "sound/machines" -#define FILE_DIR "sound/mecha" -#define FILE_DIR "sound/misc" -#define FILE_DIR "sound/piano" -#define FILE_DIR "sound/violin" -#define FILE_DIR "sound/voice" -#define FILE_DIR "sound/voice/complionator" -#define FILE_DIR "sound/weapons" -#define FILE_DIR "tools" -#define FILE_DIR "tools/AddToChangelog" -#define FILE_DIR "tools/AddToChangelog/AddToChangelog" // END_FILE_DIR // BEGIN_PREFERENCES From 9d9f64254210a2745c61e347d54b4fa491309b40 Mon Sep 17 00:00:00 2001 From: Robson Richards Date: Mon, 21 Oct 2013 16:01:58 +0100 Subject: [PATCH 3/4] Makes Icon_name Redundant due to Obj Limbs update_icons.dm altered to reflect this. --- .../mob/living/carbon/human/update_icons.dm | 8 +++---- code/modules/surgery/organs/organ.dm | 23 +++++++++++++------ 2 files changed, 20 insertions(+), 11 deletions(-) diff --git a/code/modules/mob/living/carbon/human/update_icons.dm b/code/modules/mob/living/carbon/human/update_icons.dm index f14f25b3f3b..e2e7a04547c 100644 --- a/code/modules/mob/living/carbon/human/update_icons.dm +++ b/code/modules/mob/living/carbon/human/update_icons.dm @@ -163,11 +163,11 @@ Please contact me on #coderbus IRC. ~Carnie x for(var/obj/item/organ/limb/O in organs) if(O.brutestate) - standing.overlays += "[O.icon_name]_[O.brutestate]0" //we're adding icon_states of the base image as overlays - lying.overlays += "[O.icon_name]2_[O.brutestate]0" + standing.overlays += "[O.icon_state]_[O.brutestate]0" //we're adding icon_states of the base image as overlays //made icon_name redundant - RR + lying.overlays += "[O.icon_state]2_[O.brutestate]0" if(O.burnstate) - standing.overlays += "[O.icon_name]_0[O.burnstate]" - lying.overlays += "[O.icon_name]2_0[O.burnstate]" + standing.overlays += "[O.icon_state]_0[O.burnstate]" + lying.overlays += "[O.icon_state]2_0[O.burnstate]" apply_overlay(DAMAGE_LAYER) diff --git a/code/modules/surgery/organs/organ.dm b/code/modules/surgery/organs/organ.dm index b0c771fe3f7..7cb75a09e86 100644 --- a/code/modules/surgery/organs/organ.dm +++ b/code/modules/surgery/organs/organ.dm @@ -33,7 +33,6 @@ /obj/item/organ/limb name = "limb" var/mob/owner = null - var/icon_name = null var/body_part = null var/brutestate = 0 var/burnstate = 0 @@ -43,37 +42,37 @@ /obj/item/organ/limb/chest name = "chest" - icon_name = "chest" + icon_state = "chest" max_damage = 200 body_part = CHEST /obj/item/organ/limb/head name = "head" - icon_name = "head" + icon_state = "head" max_damage = 200 body_part = HEAD /obj/item/organ/limb/l_arm name = "l_arm" - icon_name = "l_arm" + icon_state = "l_arm" max_damage = 75 body_part = ARM_LEFT /obj/item/organ/limb/l_leg name = "l_leg" - icon_name = "l_leg" + icon_state = "l_leg" max_damage = 75 body_part = LEG_LEFT /obj/item/organ/limb/r_arm name = "r_arm" - icon_name = "r_arm" + icon_state = "r_arm" max_damage = 75 body_part = ARM_RIGHT /obj/item/organ/limb/r_leg name = "r_leg" - icon_name = "r_leg" + icon_state = "r_leg" max_damage = 75 body_part = LEG_RIGHT @@ -144,3 +143,13 @@ if("l_arm") return "left arm" if("r_arm") return "right arm" else return name +/* +/mob/living/carbon/human/proc/LimbRemoved() + for(/obj/item/organ/limb in organs) + var/mob/living/carbon/human/H + if(H.HasLimb(/obj/item/organ/limb)) + //do the thing + else + return +*/ + From a3e0921814ffbea092f185794536951eaab0d4ed Mon Sep 17 00:00:00 2001 From: Robson Richards Date: Mon, 21 Oct 2013 16:06:58 +0100 Subject: [PATCH 4/4] Removes super secret definitely not a proc for Augments This should never have happened! --- code/modules/surgery/organs/organ.dm | 10 +--------- 1 file changed, 1 insertion(+), 9 deletions(-) diff --git a/code/modules/surgery/organs/organ.dm b/code/modules/surgery/organs/organ.dm index 7cb75a09e86..d3ce4ca8f8f 100644 --- a/code/modules/surgery/organs/organ.dm +++ b/code/modules/surgery/organs/organ.dm @@ -143,13 +143,5 @@ if("l_arm") return "left arm" if("r_arm") return "right arm" else return name -/* -/mob/living/carbon/human/proc/LimbRemoved() - for(/obj/item/organ/limb in organs) - var/mob/living/carbon/human/H - if(H.HasLimb(/obj/item/organ/limb)) - //do the thing - else - return -*/ +