diff --git a/GainStation13/code/obj/structure/calorite_doors.dm b/GainStation13/code/obj/structure/calorite_doors.dm
index 0d0602ff..16644c50 100644
--- a/GainStation13/code/obj/structure/calorite_doors.dm
+++ b/GainStation13/code/obj/structure/calorite_doors.dm
@@ -1,5 +1,3 @@
-
-
/obj/structure/mineral_door/calorite //GS13
name = "calorite door"
icon = 'GainStation13/icons/obj/structure/calorite_door.dmi'
@@ -16,77 +14,66 @@
// override /obj/structure/mineral_door/proc/Open()
/obj/structure/mineral_door/calorite/Open() //GS13
- isSwitchingStates = 1
- playsound(src, openSound, 100, 1)
- set_opacity(FALSE)
- flick("[initial_state]opening",src)
- sleep(10)
- density = FALSE
- state = 1
- air_update_turf(1)
- update_icon()
- isSwitchingStates = 0
-
- if(close_delay != -1)
- addtimer(CALLBACK(src, .proc/Close), close_delay)
+ ..()
// start periodic loop
stuck = FALSE
- addtimer(CALLBACK(src, .proc/Fatten), fatten_delay)
+ START_PROCESSING(SSprocessing, src)
+
+/obj/structure/mineral_door/calorite/process()
+ if(!state) // Door be closed!!!
+ STOP_PROCESSING(SSprocessing, src)
+
+ Fatten()
/obj/structure/mineral_door/calorite/proc/Fatten() //GS13
- if(state == 1) // door must be open
- // check periodically
- addtimer(CALLBACK(src, .proc/Fatten), fatten_delay)
- // check for mobs in open door
- var/turf/T = get_turf(src)
- blocked = FALSE
- for(var/mob/living/carbon/M in T)
- blocked = TRUE
- // determine if mob should get stuck and be fattened
- if(M.fatness >= FATNESS_LEVEL_BARELYMOBILE)
- fatten = TRUE
- if (!stuck)
- stuck_delay = 120
- M.visible_message(
- "[M] gets stuck in the doorway!",
- "You feel yourself get stuck in the doorway!")
- else if(M.fatness >= FATNESS_LEVEL_MORBIDLY_OBESE)
- fatten = TRUE
- if (!stuck)
- stuck_delay = 50
- M.visible_message(
- "[M] barely squeezes through the doorway!",
- "You feel your sides barely squeeze through the doorway!")
- else if(M.fatness >= FATNESS_LEVEL_FATTER)
- fatten = TRUE
- if (!stuck)
- stuck_delay = 15
- M.visible_message(
- "[M]'s sides briefly smush against the doorway.",
- "You feel your sides smush against the doorway!.")
- else if(M.fatness >= FATNESS_LEVEL_FAT)
- fatten = TRUE
- if (!stuck)
- stuck_delay = 5
- M.visible_message(
- "[M]'s sides briefly brush against the doorway.",
- "You feel your sides briefly brush against the doorway!")
- else
- fatten = FALSE
- stuck = FALSE
- stuck_delay = 0
-
- if (fatten) // get stuck
- if (!stuck)
- M.Stun(stuck_delay/2) // give player time to escape
- stuck = TRUE
- if (stuck_delay > 0) // wait for stun to end
- stuck_delay = stuck_delay - fatten_delay
- if (stuck_delay <= 0)
- stuck_delay = 0
- // gain weight while stuck
- M.adjust_fatness(fat_to_add, FATTENING_TYPE_ITEM)
+ var/turf/T = get_turf(src)
+ blocked = FALSE
+ for(var/mob/living/carbon/M in T)
+ blocked = TRUE
+ // determine if mob should get stuck and be fattened
+ if(M.fatness >= FATNESS_LEVEL_BARELYMOBILE)
+ fatten = TRUE
+ if (!stuck)
+ stuck_delay = 120
+ M.visible_message(
+ "[M] gets stuck in the doorway!",
+ "You feel yourself get stuck in the doorway!")
+ else if(M.fatness >= FATNESS_LEVEL_MORBIDLY_OBESE)
+ fatten = TRUE
+ if (!stuck)
+ stuck_delay = 50
+ M.visible_message(
+ "[M] barely squeezes through the doorway!",
+ "You feel your sides barely squeeze through the doorway!")
+ else if(M.fatness >= FATNESS_LEVEL_FATTER)
+ fatten = TRUE
+ if (!stuck)
+ stuck_delay = 15
+ M.visible_message(
+ "[M]'s sides briefly smush against the doorway.",
+ "You feel your sides smush against the doorway!.")
+ else if(M.fatness >= FATNESS_LEVEL_FAT)
+ fatten = TRUE
+ if (!stuck)
+ stuck_delay = 5
+ M.visible_message(
+ "[M]'s sides briefly brush against the doorway.",
+ "You feel your sides briefly brush against the doorway!")
+ else
+ fatten = FALSE
+ stuck = FALSE
+ stuck_delay = 0
+ if (fatten) // get stuck
+ if (!stuck)
+ M.Stun(stuck_delay/2) // give player time to escape
+ stuck = TRUE
+ if (stuck_delay > 0) // wait for stun to end
+ stuck_delay = stuck_delay - fatten_delay
+ if (stuck_delay <= 0)
+ stuck_delay = 0
+ // gain weight while stuck
+ M.adjust_fatness(fat_to_add, FATTENING_TYPE_ITEM)
if (!blocked)
stuck = FALSE // ready to go again