From ac1a96fd432f1047d1bfef6d0e04eb75f9692c15 Mon Sep 17 00:00:00 2001 From: Incoming Date: Thu, 19 Dec 2013 11:50:33 -0500 Subject: [PATCH] feature: renames the monkeyizing var to "notransform" since that's how it was being used in the code, as a flag to tell code to ignore transformation (initially because they were already turning into a monkey). bugfix: gives notransform to etheral jaunting based on an observed edge case where a wizard was staff of changed while starting a jaunt and got stuck in bluespace for the rest of the round meta: modified revive() so I could remove all that horrible snowflake I introduced to let reviving simple mobs come back --- code/datums/diseases/transformation.dm | 4 +-- code/datums/mind.dm | 2 +- code/datums/spells/ethereal_jaunt.dm | 3 ++ code/modules/mob/death.dm | 4 +-- code/modules/mob/living/carbon/alien/death.dm | 4 +-- .../mob/living/carbon/alien/humanoid/life.dm | 2 +- .../carbon/alien/humanoid/update_icons.dm | 2 +- .../mob/living/carbon/alien/larva/life.dm | 2 +- code/modules/mob/living/carbon/brain/death.dm | 2 +- code/modules/mob/living/carbon/human/death.dm | 4 +-- code/modules/mob/living/carbon/human/life.dm | 2 +- .../mob/living/carbon/human/update_icons.dm | 2 +- .../modules/mob/living/carbon/metroid/life.dm | 2 +- .../modules/mob/living/carbon/monkey/death.dm | 4 +-- code/modules/mob/living/carbon/monkey/life.dm | 2 +- code/modules/mob/living/living.dm | 10 ++++-- code/modules/mob/living/silicon/death.dm | 4 +-- .../modules/mob/living/silicon/robot/death.dm | 4 +-- code/modules/mob/living/silicon/robot/life.dm | 2 +- code/modules/mob/mob.dm | 2 +- code/modules/mob/mob_defines.dm | 2 +- code/modules/mob/mob_movement.dm | 2 +- code/modules/mob/transform_procs.dm | 34 +++++++++---------- code/modules/projectiles/projectile/change.dm | 4 +-- code/modules/projectiles/projectile/magic.dm | 26 +++----------- code/unused/hivebot/life.dm | 2 +- 26 files changed, 61 insertions(+), 72 deletions(-) diff --git a/code/datums/diseases/transformation.dm b/code/datums/diseases/transformation.dm index b80a7383e12..40413e626af 100644 --- a/code/datums/diseases/transformation.dm +++ b/code/datums/diseases/transformation.dm @@ -39,8 +39,8 @@ if(jobban_isbanned(affected_mob, new_form)) affected_mob.death(1) return - if(affected_mob.monkeyizing) return - affected_mob.monkeyizing = 1 + if(affected_mob.notransform) return + affected_mob.notransform = 1 affected_mob.canmove = 0 affected_mob.icon = null affected_mob.overlays.Cut() diff --git a/code/datums/mind.dm b/code/datums/mind.dm index 9f058a3e9a6..7f78d7013dd 100644 --- a/code/datums/mind.dm +++ b/code/datums/mind.dm @@ -783,7 +783,7 @@ datum/mind else if (href_list["monkey"]) var/mob/living/L = current - if (L.monkeyizing) + if (L.notransform) return switch(href_list["monkey"]) if("healthy") diff --git a/code/datums/spells/ethereal_jaunt.dm b/code/datums/spells/ethereal_jaunt.dm index 4cb8a1ad6ea..347361cc8ea 100644 --- a/code/datums/spells/ethereal_jaunt.dm +++ b/code/datums/spells/ethereal_jaunt.dm @@ -17,6 +17,7 @@ /obj/effect/proc_holder/spell/targeted/ethereal_jaunt/cast(list/targets) //magnets, so mostly hardcoded for(var/mob/living/target in targets) + target.notransform = 1 //protects the mob from being transformed (replaced) midjaunt and getting stuck in bluespace spawn(0) var/mobloc = get_turf(target.loc) var/obj/effect/dummy/spell_jaunt/holder = new /obj/effect/dummy/spell_jaunt( mobloc ) @@ -51,6 +52,7 @@ if(target.Move(T)) break target.canmove = 1 + target.notransform = 0 target.client.eye = target del(animation) del(holder) @@ -77,6 +79,7 @@ if(target.Move(T)) break target.canmove = 1 + target.notransform = 0 target.client.eye = target del(animation) del(holder) diff --git a/code/modules/mob/death.dm b/code/modules/mob/death.dm index d0c60fb4609..0955e14b9a5 100644 --- a/code/modules/mob/death.dm +++ b/code/modules/mob/death.dm @@ -3,7 +3,7 @@ /mob/proc/gib() death(1) var/atom/movable/overlay/animation = null - monkeyizing = 1 + notransform = 1 canmove = 0 icon = null invisibility = 101 @@ -27,7 +27,7 @@ /mob/proc/dust() death(1) var/atom/movable/overlay/animation = null - monkeyizing = 1 + notransform = 1 canmove = 0 icon = null invisibility = 101 diff --git a/code/modules/mob/living/carbon/alien/death.dm b/code/modules/mob/living/carbon/alien/death.dm index 0f9607f16b7..5fa28c8af99 100644 --- a/code/modules/mob/living/carbon/alien/death.dm +++ b/code/modules/mob/living/carbon/alien/death.dm @@ -1,7 +1,7 @@ /mob/living/carbon/alien/gib() death(1) var/atom/movable/overlay/animation = null - monkeyizing = 1 + notransform = 1 canmove = 0 icon = null invisibility = 101 @@ -22,7 +22,7 @@ /mob/living/carbon/alien/dust() death(1) var/atom/movable/overlay/animation = null - monkeyizing = 1 + notransform = 1 canmove = 0 icon = null invisibility = 101 diff --git a/code/modules/mob/living/carbon/alien/humanoid/life.dm b/code/modules/mob/living/carbon/alien/humanoid/life.dm index 1cb0dc30104..c64fc278ff9 100644 --- a/code/modules/mob/living/carbon/alien/humanoid/life.dm +++ b/code/modules/mob/living/carbon/alien/humanoid/life.dm @@ -12,7 +12,7 @@ set invisibility = 0 set background = 1 - if (monkeyizing) + if (notransform) return ..() diff --git a/code/modules/mob/living/carbon/alien/humanoid/update_icons.dm b/code/modules/mob/living/carbon/alien/humanoid/update_icons.dm index 465a85b9c44..bfbfebf21e5 100644 --- a/code/modules/mob/living/carbon/alien/humanoid/update_icons.dm +++ b/code/modules/mob/living/carbon/alien/humanoid/update_icons.dm @@ -38,7 +38,7 @@ /mob/living/carbon/alien/humanoid/regenerate_icons() ..() - if (monkeyizing) return + if (notransform) return update_inv_r_hand(0) update_inv_l_hand(0) diff --git a/code/modules/mob/living/carbon/alien/larva/life.dm b/code/modules/mob/living/carbon/alien/larva/life.dm index 34810129f39..51544135ef7 100644 --- a/code/modules/mob/living/carbon/alien/larva/life.dm +++ b/code/modules/mob/living/carbon/alien/larva/life.dm @@ -9,7 +9,7 @@ set invisibility = 0 set background = 1 - if (monkeyizing) + if (notransform) return ..() diff --git a/code/modules/mob/living/carbon/brain/death.dm b/code/modules/mob/living/carbon/brain/death.dm index 7f5c308efaa..ca825f69d04 100644 --- a/code/modules/mob/living/carbon/brain/death.dm +++ b/code/modules/mob/living/carbon/brain/death.dm @@ -22,7 +22,7 @@ /mob/living/carbon/brain/gib() death(1) var/atom/movable/overlay/animation = null - monkeyizing = 1 + notransform = 1 canmove = 0 icon = null invisibility = 101 diff --git a/code/modules/mob/living/carbon/human/death.dm b/code/modules/mob/living/carbon/human/death.dm index b11fa29d273..a019dfa1806 100644 --- a/code/modules/mob/living/carbon/human/death.dm +++ b/code/modules/mob/living/carbon/human/death.dm @@ -1,7 +1,7 @@ /mob/living/carbon/human/gib() death(1) var/atom/movable/overlay/animation = null - monkeyizing = 1 + notransform = 1 canmove = 0 icon = null invisibility = 101 @@ -21,7 +21,7 @@ /mob/living/carbon/human/dust() death(1) var/atom/movable/overlay/animation = null - monkeyizing = 1 + notransform = 1 canmove = 0 icon = null invisibility = 101 diff --git a/code/modules/mob/living/carbon/human/life.dm b/code/modules/mob/living/carbon/human/life.dm index 94e0f6a5b81..d5bdc8cbd69 100644 --- a/code/modules/mob/living/carbon/human/life.dm +++ b/code/modules/mob/living/carbon/human/life.dm @@ -38,7 +38,7 @@ set invisibility = 0 set background = 1 - if (monkeyizing) return + if (notransform) return if(!loc) return // Fixing a null error that occurs when the mob isn't found in the world -- TLE ..() diff --git a/code/modules/mob/living/carbon/human/update_icons.dm b/code/modules/mob/living/carbon/human/update_icons.dm index 1266d9f21bd..302a2f442fa 100644 --- a/code/modules/mob/living/carbon/human/update_icons.dm +++ b/code/modules/mob/living/carbon/human/update_icons.dm @@ -339,7 +339,7 @@ Please contact me on #coderbus IRC. ~Carnie x //For legacy support. /mob/living/carbon/human/regenerate_icons() ..() - if(monkeyizing) return + if(notransform) return update_body() update_hair() update_mutations() diff --git a/code/modules/mob/living/carbon/metroid/life.dm b/code/modules/mob/living/carbon/metroid/life.dm index 642ec17de74..b3cb4436812 100644 --- a/code/modules/mob/living/carbon/metroid/life.dm +++ b/code/modules/mob/living/carbon/metroid/life.dm @@ -11,7 +11,7 @@ set invisibility = 0 set background = 1 - if (src.monkeyizing) + if (src.notransform) return ..() diff --git a/code/modules/mob/living/carbon/monkey/death.dm b/code/modules/mob/living/carbon/monkey/death.dm index a13342620cb..c7cd5d4a92b 100644 --- a/code/modules/mob/living/carbon/monkey/death.dm +++ b/code/modules/mob/living/carbon/monkey/death.dm @@ -1,7 +1,7 @@ /mob/living/carbon/monkey/gib() death(1) var/atom/movable/overlay/animation = null - monkeyizing = 1 + notransform = 1 canmove = 0 icon = null invisibility = 101 @@ -21,7 +21,7 @@ /mob/living/carbon/monkey/dust() death(1) var/atom/movable/overlay/animation = null - monkeyizing = 1 + notransform = 1 canmove = 0 icon = null invisibility = 101 diff --git a/code/modules/mob/living/carbon/monkey/life.dm b/code/modules/mob/living/carbon/monkey/life.dm index 002d7f3fde6..1e98c6e52a2 100644 --- a/code/modules/mob/living/carbon/monkey/life.dm +++ b/code/modules/mob/living/carbon/monkey/life.dm @@ -12,7 +12,7 @@ /mob/living/carbon/monkey/Life() set invisibility = 0 set background = 1 - if (monkeyizing) return + if (notransform) return ..() var/datum/gas_mixture/environment // Added to prevent null location errors-- TLE diff --git a/code/modules/mob/living/living.dm b/code/modules/mob/living/living.dm index aefe2d0f814..8b915b7a000 100644 --- a/code/modules/mob/living/living.dm +++ b/code/modules/mob/living/living.dm @@ -245,6 +245,13 @@ src.updatehealth() /mob/living/proc/revive() + if(stat == 2) + dead_mob_list -= src + living_mob_list += src + if(isanimal(src)) + var/mob/living/simple_animal/A = src + A.health = A.maxHealth + return setToxLoss(0) setOxyLoss(0) setCloneLoss(0) @@ -274,9 +281,6 @@ C.reagents.clear_reagents() for(var/datum/disease/D in viruses) D.cure(0) - if(stat == 2) - dead_mob_list -= src - living_mob_list += src stat = CONSCIOUS update_fire() regenerate_icons() diff --git a/code/modules/mob/living/silicon/death.dm b/code/modules/mob/living/silicon/death.dm index 8e1f035ce67..838d96ba034 100644 --- a/code/modules/mob/living/silicon/death.dm +++ b/code/modules/mob/living/silicon/death.dm @@ -1,7 +1,7 @@ /mob/living/silicon/gib() death(1) var/atom/movable/overlay/animation = null - monkeyizing = 1 + notransform = 1 canmove = 0 icon = null invisibility = 101 @@ -22,7 +22,7 @@ /mob/living/silicon/dust() death(1) var/atom/movable/overlay/animation = null - monkeyizing = 1 + notransform = 1 canmove = 0 icon = null invisibility = 101 diff --git a/code/modules/mob/living/silicon/robot/death.dm b/code/modules/mob/living/silicon/robot/death.dm index 41be911e75e..65d586ed447 100644 --- a/code/modules/mob/living/silicon/robot/death.dm +++ b/code/modules/mob/living/silicon/robot/death.dm @@ -1,7 +1,7 @@ /mob/living/silicon/robot/gib() //robots don't die when gibbed. instead they drop their MMI'd brain var/atom/movable/overlay/animation = null - monkeyizing = 1 + notransform = 1 canmove = 0 icon = null invisibility = 101 @@ -23,7 +23,7 @@ /mob/living/silicon/robot/dust() death(1) var/atom/movable/overlay/animation = null - monkeyizing = 1 + notransform = 1 canmove = 0 icon = null invisibility = 101 diff --git a/code/modules/mob/living/silicon/robot/life.dm b/code/modules/mob/living/silicon/robot/life.dm index 24b7c72241a..f4212146a5c 100644 --- a/code/modules/mob/living/silicon/robot/life.dm +++ b/code/modules/mob/living/silicon/robot/life.dm @@ -2,7 +2,7 @@ set invisibility = 0 set background = 1 - if (src.monkeyizing) + if (src.notransform) return diff --git a/code/modules/mob/mob.dm b/code/modules/mob/mob.dm index d9941e57a35..953f829a247 100644 --- a/code/modules/mob/mob.dm +++ b/code/modules/mob/mob.dm @@ -688,7 +688,7 @@ note dizziness decrements automatically in the mob's Life() proc. if(world.time < client.move_delay) return 0 if(stat==2) return 0 if(anchored) return 0 - if(monkeyizing) return 0 + if(notransform) return 0 if(restrained()) return 0 return 1 diff --git a/code/modules/mob/mob_defines.dm b/code/modules/mob/mob_defines.dm index cf558c2fe0d..f5c8e414940 100644 --- a/code/modules/mob/mob_defines.dm +++ b/code/modules/mob/mob_defines.dm @@ -43,7 +43,7 @@ var/disabilities = 0 //Carbon var/atom/movable/pulling = null var/next_move = null - var/monkeyizing = null //Carbon + var/notransform = null //Carbon var/hand = null var/eye_blind = null //Carbon var/eye_blurry = null //Carbon diff --git a/code/modules/mob/mob_movement.dm b/code/modules/mob/mob_movement.dm index 9f107361df7..263fb744721 100644 --- a/code/modules/mob/mob_movement.dm +++ b/code/modules/mob/mob_movement.dm @@ -143,7 +143,7 @@ /client/Move(n, direct) if(!mob) return 0 - if(mob.monkeyizing) + if(mob.notransform) return 0 //This is sota the goto stop mobs from moving var if(mob.control_object) return Move_object(direct) diff --git a/code/modules/mob/transform_procs.dm b/code/modules/mob/transform_procs.dm index bca7be9241e..5edc7dcad0c 100644 --- a/code/modules/mob/transform_procs.dm +++ b/code/modules/mob/transform_procs.dm @@ -1,5 +1,5 @@ /mob/living/carbon/proc/monkeyize(tr_flags = (TR_KEEPITEMS | TR_KEEPVIRUS | TR_DEFAULTMSG), newname = null) - if (monkeyizing) + if (notransform) return //Handle items on mob @@ -15,7 +15,7 @@ //Make mob invisible and spawn animation regenerate_icons() - monkeyizing = 1 + notransform = 1 canmove = 0 stunned = 1 icon = null @@ -86,7 +86,7 @@ //Could probably be merged with monkeyize but other transformations got their own procs, too /mob/living/carbon/proc/humanize(tr_flags = (TR_KEEPITEMS | TR_KEEPVIRUS | TR_DEFAULTMSG), newname = null) - if (monkeyizing) + if (notransform) return //Handle items on mob @@ -112,7 +112,7 @@ //Make mob invisible and spawn animation regenerate_icons() - monkeyizing = 1 + notransform = 1 canmove = 0 stunned = 1 icon = null @@ -184,7 +184,7 @@ return ..() /mob/living/carbon/human/AIize() - if (monkeyizing) + if (notransform) return for(var/t in organs) del(t) @@ -192,12 +192,12 @@ return ..() /mob/living/carbon/AIize() - if (monkeyizing) + if (notransform) return for(var/obj/item/W in src) drop_from_inventory(W) regenerate_icons() - monkeyizing = 1 + notransform = 1 canmove = 0 icon = null invisibility = 101 @@ -265,7 +265,7 @@ //human -> robot /mob/living/carbon/human/proc/Robotize(var/delete_items = 0) - if (monkeyizing) + if (notransform) return for(var/obj/item/W in src) if(delete_items) @@ -273,7 +273,7 @@ else drop_from_inventory(W) regenerate_icons() - monkeyizing = 1 + notransform = 1 canmove = 0 icon = null invisibility = 101 @@ -310,12 +310,12 @@ //human -> alien /mob/living/carbon/human/proc/Alienize() - if (monkeyizing) + if (notransform) return for(var/obj/item/W in src) drop_from_inventory(W) regenerate_icons() - monkeyizing = 1 + notransform = 1 canmove = 0 icon = null invisibility = 101 @@ -340,12 +340,12 @@ del(src) /mob/living/carbon/human/proc/slimeize(adult as num, reproduce as num) - if (monkeyizing) + if (notransform) return for(var/obj/item/W in src) drop_from_inventory(W) regenerate_icons() - monkeyizing = 1 + notransform = 1 canmove = 0 icon = null invisibility = 101 @@ -375,12 +375,12 @@ del(src) /mob/living/carbon/human/proc/corgize() - if (monkeyizing) + if (notransform) return for(var/obj/item/W in src) drop_from_inventory(W) regenerate_icons() - monkeyizing = 1 + notransform = 1 canmove = 0 icon = null invisibility = 101 @@ -404,13 +404,13 @@ usr << "\red Sorry but this mob type is currently unavailable." return - if(monkeyizing) + if(notransform) return for(var/obj/item/W in src) drop_from_inventory(W) regenerate_icons() - monkeyizing = 1 + notransform = 1 canmove = 0 icon = null invisibility = 101 diff --git a/code/modules/projectiles/projectile/change.dm b/code/modules/projectiles/projectile/change.dm index 5c623b5bfea..34c03d25919 100644 --- a/code/modules/projectiles/projectile/change.dm +++ b/code/modules/projectiles/projectile/change.dm @@ -12,8 +12,8 @@ /obj/item/projectile/change/proc/wabbajack (mob/M as mob in living_mob_list) if(istype(M, /mob/living) && M.stat != DEAD) - if(M.monkeyizing) return - M.monkeyizing = 1 + if(M.notransform) return + M.notransform = 1 M.canmove = 0 M.icon = null M.overlays.Cut() diff --git a/code/modules/projectiles/projectile/magic.dm b/code/modules/projectiles/projectile/magic.dm index 78ab4db6cd2..d87ade304a7 100644 --- a/code/modules/projectiles/projectile/magic.dm +++ b/code/modules/projectiles/projectile/magic.dm @@ -38,26 +38,8 @@ if(istype(target,/mob)) var/old_stat = target.stat - if(isanimal(target) && target.stat == DEAD) - var/mob/living/simple_animal/O = target - var/mob/living/simple_animal/A = new O.type(O.loc) - A.real_name = O.real_name - A.name = O.name - if(iscorgi(O)) - var/mob/living/simple_animal/corgi/C = O - if(C.inventory_head) - C.inventory_head.loc = C.loc - if(C.inventory_back) - C.inventory_back.loc = C.loc - if(O.mind) - O.mind.transfer_to(A) - else - A.key = O.key - del(O) - target = A - else - target.revive() - target.suiciding = 0 + target.revive() + target.suiciding = 0 if(!target.ckey) for(var/mob/dead/observer/ghost in player_list) if(target.real_name == ghost.real_name) @@ -124,8 +106,8 @@ proc/wabbajack(mob/living/M) if(istype(M)) if(istype(M, /mob/living) && M.stat != DEAD) - if(M.monkeyizing) return - M.monkeyizing = 1 + if(M.notransform) return + M.notransform = 1 M.canmove = 0 M.icon = null M.overlays.Cut() diff --git a/code/unused/hivebot/life.dm b/code/unused/hivebot/life.dm index 119efcaaa01..33198a5f310 100644 --- a/code/unused/hivebot/life.dm +++ b/code/unused/hivebot/life.dm @@ -2,7 +2,7 @@ set invisibility = 0 set background = 1 - if (src.monkeyizing) + if (src.notransform) return if (src.stat != 2)