From 73e5c38a56ee30fe38c0c81c35b9094c7cc1acb4 Mon Sep 17 00:00:00 2001 From: "elly1989@rocketmail.com" Date: Sun, 2 Sep 2012 20:32:01 +0000 Subject: [PATCH] Preparations for reducing the number of processing machines at round-start. There are currently 8000 or so at round start, this was already pruned to 2800ish by doohl's stuff. machine.process() now uses a return value to remove itself from the processing machines list. This is more efficient and will help reduce costs especially at round start where some 5000+ machines were removed from the list using first-find. Now there is no searching involved. Instead of machines.Remove(src) just do .=PROCESS_KILL that will return the flag to the proc which called it (the MC) and trigger its removal from the list. If you're deleting something don't even bother removing it from the machines list, there is no need to. Simplified the last_processed stuff for the MC. It's now a single variable rather than 3. It is simply a typepath rather than a reference to an object (this is so it works even if said object is deleted) MC stats in admin status_panels now show the length of the processing lists (indicated by #). I've just realised I forgot to mention what the abbreviations are: The less obvious ones are: Dis=diseases; Net=pipes; Pnet=powernets; Mch=Machines; Tick=the game-mode ticker. Beach-water now uses an overlay image rather than a separate object. Fixed a typo in the shuttle console. Hydroponics trays no longer use first-find within their process() for checking the plant is in the tray (why is that even there anyway? talk about lazy) Removed some junk/placeholder procs like organ/proc/process() return Removed newscasters from the processing machines lists. git-svn-id: http://tgstation13.googlecode.com/svn/trunk@4603 316c924e-a436-60f5-8080-3fe189b3f50e --- code/ATMOSPHERICS/components/valve.dm | 2 +- code/ATMOSPHERICS/pipes.dm | 8 +- code/controllers/master_controller.dm | 76 ++++--- code/game/machinery/computer/robot.dm | 8 - code/game/machinery/hydroponics.dm | 4 +- code/game/machinery/igniter.dm | 2 +- code/game/machinery/machinery.dm | 15 +- code/game/machinery/newscaster.dm | 5 +- code/game/objects/effects/overlays.dm | 6 - code/game/supplyshuttle.dm | 2 +- code/game/turfs/unsimulated/beach.dm | 6 +- code/modules/mob/mob.dm | 6 +- code/modules/mob/organ/organ.dm | 8 +- code/modules/power/antimatter/shielding.dm | 3 +- code/modules/power/lighting.dm | 2 +- code/modules/power/singularity/emitter.dm | 30 ++- code/modules/power/singularity/generator.dm | 4 +- code/modules/power/solar.dm | 4 +- code/modules/recycling/conveyor2.dm | 2 +- code/modules/research/message_server.dm | 2 +- code/modules/research/server.dm | 4 +- code/setup.dm | 3 + maps/tgstation.2.0.9.dmm | 6 +- tgstation.dme | 214 -------------------- 24 files changed, 106 insertions(+), 316 deletions(-) diff --git a/code/ATMOSPHERICS/components/valve.dm b/code/ATMOSPHERICS/components/valve.dm index 835adeed27..bcb962857c 100644 --- a/code/ATMOSPHERICS/components/valve.dm +++ b/code/ATMOSPHERICS/components/valve.dm @@ -131,7 +131,7 @@ obj/machinery/atmospherics/valve process() ..() - machines.Remove(src) + . = PROCESS_KILL /* if(open && (!node1 || !node2)) close() diff --git a/code/ATMOSPHERICS/pipes.dm b/code/ATMOSPHERICS/pipes.dm index 422b4e941d..33f3a798c4 100644 --- a/code/ATMOSPHERICS/pipes.dm +++ b/code/ATMOSPHERICS/pipes.dm @@ -106,7 +106,7 @@ obj/machinery/atmospherics/pipe if(!parent) //This should cut back on the overhead calling build_network thousands of times per cycle ..() else - machines.Remove(src) + . = PROCESS_KILL /*if(!node1) parent.mingle_with_turf(loc, volume) @@ -339,7 +339,7 @@ obj/machinery/atmospherics/pipe if(!parent) ..() else - machines.Remove(src) + . = PROCESS_KILL /* if(!node1) parent.mingle_with_turf(loc, 200) if(!nodealert) @@ -520,7 +520,7 @@ obj/machinery/atmospherics/pipe process() if(!parent) if(build_killswitch <= 0) - machines.Remove(src) + . = PROCESS_KILL else build_killswitch-- ..() @@ -626,7 +626,7 @@ obj/machinery/atmospherics/pipe if(!parent) ..() else - machines.Remove(src) + . = PROCESS_KILL /* if(!node1) parent.mingle_with_turf(loc, 70) diff --git a/code/controllers/master_controller.dm b/code/controllers/master_controller.dm index faa7dfd8cd..248c760c4d 100644 --- a/code/controllers/master_controller.dm +++ b/code/controllers/master_controller.dm @@ -25,9 +25,7 @@ datum/controller/game_controller var/ticker_cost = 0 var/total_cost = 0 - var/obj/machinery/last_obj_processed //Used for MC 'proc break' debugging - var/datum/disease/last_disease_processed //Used for MC 'proc break' debugging - var/obj/machinery/last_machine_processed //Used for MC 'proc break' debugging + var/last_thing_processed datum/controller/game_controller/New() //There can be only one master_controller. Out with the old and in with the new. @@ -101,7 +99,6 @@ datum/controller/game_controller/proc/process() if(!Failsafe) new /datum/failsafe() var/currenttime = world.timeofday - last_tick_duration = (currenttime - last_tick_timeofday) / 10 last_tick_timeofday = currenttime @@ -110,107 +107,128 @@ datum/controller/game_controller/proc/process() var/start_time = world.timeofday controller_iteration++ + //AIR timer = world.timeofday + last_thing_processed = air_master.type air_master.process() air_cost = (world.timeofday - timer) / 10 sleep(breather_ticks) + //SUN timer = world.timeofday + last_thing_processed = sun.type sun.calc_position() sun_cost = (world.timeofday - timer) / 10 sleep(breather_ticks) + //MOBS timer = world.timeofday - for(var/i=1,i<=mob_list.len,i++) + var/i = 1 + while(i<=mob_list.len) var/mob/M = mob_list[i] if(M) + last_thing_processed = M.type M.Life() + i++ continue mob_list.Cut(i,i+1) - i-- mobs_cost = (world.timeofday - timer) / 10 sleep(breather_ticks) + //DISEASES timer = world.timeofday - for(var/i=1,i<=active_diseases.len,i++) + i = 1 + while(i<=active_diseases.len) var/datum/disease/Disease = active_diseases[i] if(Disease) - last_disease_processed = Disease + last_thing_processed = Disease.type Disease.process() + i++ continue active_diseases.Cut(i,i+1) - i-- diseases_cost = (world.timeofday - timer) / 10 sleep(breather_ticks) + //MACHINES timer = world.timeofday - for(var/i=1,i<=machines.len,i++) + i = 1 + while(i<=machines.len) var/obj/machinery/Machine = machines[i] if(Machine) - last_machine_processed = Machine - Machine.process() - if(Machine) - if(Machine.use_power) - Machine.auto_use_power() - continue + last_thing_processed = Machine.type + if(Machine.process() != PROCESS_KILL) + if(Machine) + if(Machine.use_power) + Machine.auto_use_power() + i++ + continue machines.Cut(i,i+1) - i-- machines_cost = (world.timeofday - timer) / 10 sleep(breather_ticks) + //OBJECTS timer = world.timeofday - for(var/i=1,i<=processing_objects.len,i++) + i = 1 + while(i<=processing_objects.len) var/obj/Object = processing_objects[i] if(Object) - last_obj_processed = Object + last_thing_processed = Object.type Object.process() + i++ continue processing_objects.Cut(i,i+1) - i-- objects_cost = (world.timeofday - timer) / 10 sleep(breather_ticks) + //PIPENETS timer = world.timeofday - for(var/i=1,i<=pipe_networks.len,i++) + last_thing_processed = /datum/pipe_network + i = 1 + while(i<=pipe_networks.len) var/datum/pipe_network/Network = pipe_networks[i] if(Network) Network.process() + i++ continue pipe_networks.Cut(i,i+1) - i-- networks_cost = (world.timeofday - timer) / 10 sleep(breather_ticks) + //POWERNETS timer = world.timeofday - for(var/i=1,i<=powernets.len,i++) + last_thing_processed = /datum/powernet + i = 1 + while(i<=powernets.len) var/datum/powernet/Powernet = powernets[i] if(Powernet) Powernet.reset() + i++ continue powernets.Cut(i,i+1) - i-- powernets_cost = (world.timeofday - timer) / 10 sleep(breather_ticks) + //TICKER timer = world.timeofday + last_thing_processed = ticker.type ticker.process() ticker_cost = (world.timeofday - timer) / 10 + //TIMING total_cost = air_cost + sun_cost + mobs_cost + diseases_cost + machines_cost + objects_cost + networks_cost + powernets_cost + ticker_cost var/end_time = world.timeofday if(end_time < start_time) start_time -= 864000 //deciseconds in a day sleep( round(minimum_ticks - (end_time - start_time),1) ) - else sleep(10) @@ -283,4 +301,10 @@ datum/controller/game_controller/proc/Recover() //Mostly a placeholder for now. /client/verb/spawn_FS() new /datum/failsafe() -*/ + +/client/verb/machines_list() + for(var/i=1,i<=machines.len,i++) + var/machine = machines[i] + if(istype(machine,/datum)) world.log << machine:type + else world.log << machine +*/ \ No newline at end of file diff --git a/code/game/machinery/computer/robot.dm b/code/game/machinery/computer/robot.dm index 746d00fbd8..e3f51ce211 100644 --- a/code/game/machinery/computer/robot.dm +++ b/code/game/machinery/computer/robot.dm @@ -97,14 +97,6 @@ onclose(user, "computer") return -//Why is this in robot/computer and why does it exist when /obj/machinery/computer/engine does not? -Nodrak -/*/obj/machinery/computer/engine/process() - if(stat & (NOPOWER|BROKEN)) - return - use_power(500) - src.updateDialog() - return*/ - /obj/machinery/computer/robotics/Topic(href, href_list) if(..()) return diff --git a/code/game/machinery/hydroponics.dm b/code/game/machinery/hydroponics.dm index 830ffd47ab..788dce4a55 100644 --- a/code/game/machinery/hydroponics.dm +++ b/code/game/machinery/hydroponics.dm @@ -50,8 +50,8 @@ obj/machinery/hydroponics/process() - if(myseed && !(myseed in contents)) - contents += myseed + if(myseed && (myseed.loc != src)) + myseed.loc = src if(world.time > (src.lastcycle + src.cycledelay)) src.lastcycle = world.time diff --git a/code/game/machinery/igniter.dm b/code/game/machinery/igniter.dm index 7459a175ed..0cacca07ed 100644 --- a/code/game/machinery/igniter.dm +++ b/code/game/machinery/igniter.dm @@ -16,7 +16,7 @@ src.icon_state = text("igniter[]", src.on) return -/obj/machinery/igniter/process() +/obj/machinery/igniter/process() //ugh why is this even in process()? if (src.on && !(stat & NOPOWER) ) var/turf/location = src.loc if (isturf(location)) diff --git a/code/game/machinery/machinery.dm b/code/game/machinery/machinery.dm index 6c4c5548b1..b622c169fb 100644 --- a/code/game/machinery/machinery.dm +++ b/code/game/machinery/machinery.dm @@ -93,24 +93,13 @@ Class Procs: /obj/machinery/New() ..() - machines.Add(src) + machines += src /obj/machinery/Del() - machines.Remove(src) ..() /obj/machinery/process()//If you dont use process or power why are you here - - /* - Big note: if do not call ..() in any machinery subtype process() call or it will - be removed from the list of machines to iterate. It is, however, okay to call ..() - if the machine has a parent process() call. For instance, machinery/atmospherics has a - root process() call, so things like cryocells can call ..() and not worry about - it getting removed from machines. - */ - - machines.Remove(src) // uncommented by Doohl - return + return PROCESS_KILL /obj/machinery/emp_act(severity) if(use_power && stat == 0) diff --git a/code/game/machinery/newscaster.dm b/code/game/machinery/newscaster.dm index 2c45e611fb..5bbb1b26d1 100644 --- a/code/game/machinery/newscaster.dm +++ b/code/game/machinery/newscaster.dm @@ -891,8 +891,9 @@ obj/item/weapon/newspaper/attackby(obj/item/weapon/W as obj, mob/user as mob) src.paper_remaining-- return -/obj/machinery/newscaster/process() //Was thinking of doing the icon update through process, but multiple iterations per second does not - return //bode well with a newscaster network of 10+ machines. Let's just return it, as it's added in the machines list. +//Removed for now so these aren't even checked every tick. Left this here in-case Agouri needs it later. +///obj/machinery/newscaster/process() //Was thinking of doing the icon update through process, but multiple iterations per second does not +// return //bode well with a newscaster network of 10+ machines. Let's just return it, as it's added in the machines list. /obj/machinery/newscaster/proc/newsAlert(channel) //This isn't Agouri's work, for it is ugly and vile. var/turf/T = get_turf(src) //Who the fuck uses spawn(600) anyway, jesus christ diff --git a/code/game/objects/effects/overlays.dm b/code/game/objects/effects/overlays.dm index 0df933ece3..140e5314eb 100644 --- a/code/game/objects/effects/overlays.dm +++ b/code/game/objects/effects/overlays.dm @@ -12,12 +12,6 @@ ..() spawn(10) del src -/obj/effect/overlay/water - name = "water" - icon = 'icons/misc/beach.dmi' - icon_state = "water2" - layer = MOB_LAYER+0.1 - /obj/effect/overlay/palmtree_r name = "Palm tree" icon = 'icons/misc/beach2.dmi' diff --git a/code/game/supplyshuttle.dm b/code/game/supplyshuttle.dm index dc66b2e139..de9a4e2b50 100644 --- a/code/game/supplyshuttle.dm +++ b/code/game/supplyshuttle.dm @@ -592,7 +592,7 @@ var/list/mechtoys = list( O.orderedby = idname supply_shuttle.requestlist += O - temp = "Order requst placed.
" + temp = "Order request placed.
" temp += "
OK | Authorize Order" else if(href_list["confirmorder"]) diff --git a/code/game/turfs/unsimulated/beach.dm b/code/game/turfs/unsimulated/beach.dm index 74d4d909ae..d8ce4659b0 100644 --- a/code/game/turfs/unsimulated/beach.dm +++ b/code/game/turfs/unsimulated/beach.dm @@ -13,4 +13,8 @@ /turf/unsimulated/beach/water name = "Water" - icon_state = "water" \ No newline at end of file + icon_state = "water" + +/turf/unsimulated/beach/water/New() + ..() + overlays += image("icon"='icons/misc/beach.dmi',"icon_state"="water2","layer"=MOB_LAYER+0.1) diff --git a/code/modules/mob/mob.dm b/code/modules/mob/mob.dm index b8910ba606..d1291a6268 100644 --- a/code/modules/mob/mob.dm +++ b/code/modules/mob/mob.dm @@ -674,8 +674,10 @@ note dizziness decrements automatically in the mob's Life() proc. if(master_controller) stat(null,"MasterController-[last_tick_duration] ([master_controller.processing?"On":"Off"]-[controller_iteration])") stat(null,"Air-[master_controller.air_cost]\t Sun-[master_controller.sun_cost]") - stat(null,"Mob-[master_controller.mobs_cost]\t Dis-[master_controller.diseases_cost]") - stat(null,"Mch-[master_controller.machines_cost]\t Obj-[master_controller.objects_cost]") + stat(null,"Mob-[master_controller.mobs_cost]\t #[mob_list.len]") + stat(null,"Dis-[master_controller.diseases_cost]\t #[active_diseases.len]") + stat(null,"Mch-[master_controller.machines_cost]\t #[machines.len]") + stat(null,"Obj-[master_controller.objects_cost]\t #[processing_objects.len]") stat(null,"Net-[master_controller.networks_cost]\t Pnet-[master_controller.powernets_cost]") stat(null,"Tick-[master_controller.ticker_cost]\t ALL-[master_controller.total_cost]") else diff --git a/code/modules/mob/organ/organ.dm b/code/modules/mob/organ/organ.dm index 7fe61e128d..81b45f5128 100644 --- a/code/modules/mob/organ/organ.dm +++ b/code/modules/mob/organ/organ.dm @@ -4,11 +4,11 @@ var/name = "organ" var/mob/owner = null -/datum/organ/proc/process() - return 0 +///datum/organ/proc/process() +// return 0 -/datum/organ/proc/receive_chem(chemical as obj) - return 0 +///datum/organ/proc/receive_chem(chemical as obj) +// return 0 diff --git a/code/modules/power/antimatter/shielding.dm b/code/modules/power/antimatter/shielding.dm index ffc0cd5130..9c646e25de 100644 --- a/code/modules/power/antimatter/shielding.dm +++ b/code/modules/power/antimatter/shielding.dm @@ -80,7 +80,7 @@ proc/cardinalrange(var/center) /obj/machinery/am_shielding/process() - if(!processing) ..() + if(!processing) . = PROCESS_KILL //TODO: core functions and stability //TODO: think about checking the airmix for plasma and increasing power output return @@ -174,7 +174,6 @@ proc/cardinalrange(var/center) /obj/machinery/am_shielding/proc/shutdown_core() processing = 0 - machines.Remove(src) if(!control_unit) return control_unit.linked_cores.Remove(src) control_unit.reported_core_efficiency -= efficiency diff --git a/code/modules/power/lighting.dm b/code/modules/power/lighting.dm index 73f1feeff3..c4c127c11e 100644 --- a/code/modules/power/lighting.dm +++ b/code/modules/power/lighting.dm @@ -573,7 +573,7 @@ #define LIGHTING_POWER_FACTOR 20 //20W per unit luminosity -/obj/machinery/light/process() +/obj/machinery/light/process()//TODO: remove/add this from machines to save on processing as needed ~Carn PRIORITY if(on) use_power(luminosity * LIGHTING_POWER_FACTOR, LIGHT) diff --git a/code/modules/power/singularity/emitter.dm b/code/modules/power/singularity/emitter.dm index a89f0b874c..59ad51fa7a 100644 --- a/code/modules/power/singularity/emitter.dm +++ b/code/modules/power/singularity/emitter.dm @@ -105,22 +105,20 @@ s.set_up(5, 1, src) s.start() A.dir = src.dir - if(src.dir == 1)//Up - A.yo = 20 - A.xo = 0 - else if(src.dir == 2)//Down - A.yo = -20 - A.xo = 0 - else if(src.dir == 4)//Right - A.yo = 0 - A.xo = 20 - else if(src.dir == 8)//Left - A.yo = 0 - A.xo = -20 - else // Any other - A.yo = -20 - A.xo = 0 - A.process() + switch(dir) + if(NORTH) + A.yo = 20 + A.xo = 0 + if(EAST) + A.yo = 0 + A.xo = 20 + if(WEST) + A.yo = 0 + A.xo = -20 + else // Any other + A.yo = -20 + A.xo = 0 + A.process() //TODO: Carn: check this out /obj/machinery/emitter/attackby(obj/item/W, mob/user) diff --git a/code/modules/power/singularity/generator.dm b/code/modules/power/singularity/generator.dm index 047c724012..8b20fc16ab 100644 --- a/code/modules/power/singularity/generator.dm +++ b/code/modules/power/singularity/generator.dm @@ -13,9 +13,7 @@ var/turf/T = get_turf(src) if(src.energy >= 200) new /obj/machinery/singularity/(T, 50) - spawn(0) - del(src) - return + if(src) del(src) /obj/machinery/the_singularitygen/attackby(obj/item/W, mob/user) if(istype(W, /obj/item/weapon/wrench)) diff --git a/code/modules/power/solar.dm b/code/modules/power/solar.dm index 52b1b587b8..9031c2ebc8 100644 --- a/code/modules/power/solar.dm +++ b/code/modules/power/solar.dm @@ -83,7 +83,7 @@ sunfrac = cos(p_angle) ** 2 -/obj/machinery/power/solar/process() +/obj/machinery/power/solar/process()//TODO: remove/add this from machines to save on processing as needed ~Carn PRIORITY if(stat & BROKEN) return if(!control) return if(obscured) return @@ -141,7 +141,7 @@ /obj/machinery/power/solar/fake/process() - machines.Remove(src) + . = PROCESS_KILL return diff --git a/code/modules/recycling/conveyor2.dm b/code/modules/recycling/conveyor2.dm index e3d3add7ff..0b80389d1d 100644 --- a/code/modules/recycling/conveyor2.dm +++ b/code/modules/recycling/conveyor2.dm @@ -76,7 +76,7 @@ use_power(100) affecting = loc.contents - src // moved items will be all in loc - spawn(1) // slight delay to prevent infinite propagation due to map order + spawn(1) // slight delay to prevent infinite propagation due to map order //TODO: please no spawn() in process(). It's a very bad idea var/items_moved = 0 for(var/atom/movable/A in affecting) if(!A.anchored) diff --git a/code/modules/research/message_server.dm b/code/modules/research/message_server.dm index 534fa761db..0380c90a62 100644 --- a/code/modules/research/message_server.dm +++ b/code/modules/research/message_server.dm @@ -82,7 +82,7 @@ var/global/list/obj/machinery/message_server/message_servers = list() /obj/machinery/message_server/process() //if(decryptkey == "password") // decryptkey = generateKey() - if((stat & (BROKEN|NOPOWER)) && active) + if(active && (stat & (BROKEN|NOPOWER))) active = 0 return update_icon() diff --git a/code/modules/research/server.dm b/code/modules/research/server.dm index 0ef69460fe..54807706a9 100644 --- a/code/modules/research/server.dm +++ b/code/modules/research/server.dm @@ -90,7 +90,7 @@ ..() -/obj/machinery/r_n_d/server/proc/ + //Backup files to centcomm to help admins recover data after greifer attacks /obj/machinery/r_n_d/server/proc/griefProtection() for(var/obj/machinery/r_n_d/server/centcom/C in world) @@ -190,7 +190,7 @@ no_id_servers -= S /obj/machinery/r_n_d/server/centcom/process() - return + return PROCESS_KILL //don't need process() /obj/machinery/computer/rdservercontrol diff --git a/code/setup.dm b/code/setup.dm index 295f66fadf..0317a54a73 100644 --- a/code/setup.dm +++ b/code/setup.dm @@ -495,3 +495,6 @@ var/list/liftable_structures = list(\ #define BORGMESON 1 #define BORGTHERM 2 #define BORGXRAY 4 + +//some arbitrary defines to be used by self-pruning global lists. (see master_controller) +#define PROCESS_KILL 26 //Used to trigger removal from a processing list diff --git a/maps/tgstation.2.0.9.dmm b/maps/tgstation.2.0.9.dmm index 24148e035c..a5236f4cef 100644 --- a/maps/tgstation.2.0.9.dmm +++ b/maps/tgstation.2.0.9.dmm @@ -6162,7 +6162,7 @@ "coz" = (/turf/simulated/floor/holofloor{dir = 10; icon_state = "green"},/area/holodeck/source_basketball) "coA" = (/obj/structure/holohoop{dir = 1},/turf/simulated/floor/holofloor{dir = 2; icon_state = "green"},/area/holodeck/source_basketball) "coB" = (/turf/simulated/floor/holofloor{dir = 6; icon_state = "green"},/area/holodeck/source_basketball) -"coC" = (/obj/effect/overlay/water,/turf/simulated/beach/water,/area/holodeck/source_beach) +"coC" = (/turf/simulated/beach/water,/area/holodeck/source_beach) "coD" = (/obj/structure/table/holotable,/turf/simulated/floor/holofloor{dir = 10; icon_state = "green"},/area/holodeck/source_thunderdomecourt) "coE" = (/obj/structure/table/holotable,/obj/item/clothing/head/helmet/thunderdome,/obj/item/clothing/suit/armor/tdome/green,/obj/item/clothing/under/color/green,/obj/item/weapon/holo/esword/green,/turf/simulated/floor/holofloor{dir = 2; icon_state = "green"},/area/holodeck/source_thunderdomecourt) "coF" = (/obj/structure/table/holotable,/obj/machinery/readybutton,/turf/simulated/floor/holofloor{dir = 6; icon_state = "green"},/area/holodeck/source_thunderdomecourt) @@ -6974,7 +6974,7 @@ "cEf" = (/obj/machinery/vending/cigarette,/turf/unsimulated/floor{icon_state = "cafeteria"; dir = 2},/area/centcom/holding) "cEg" = (/obj/structure/table,/turf/unsimulated/floor{icon_state = "cafeteria"; dir = 2},/area/centcom/holding) "cEh" = (/obj/machinery/vending/cola,/obj/structure/window/reinforced{dir = 4},/turf/unsimulated/floor{icon_state = "cafeteria"; dir = 2},/area/centcom/holding) -"cEi" = (/obj/effect/overlay/water,/turf/unsimulated/beach/water,/area/centcom/holding) +"cEi" = (/turf/unsimulated/beach/water,/area/centcom/holding) "cEj" = (/turf/unsimulated/floor{dir = 8; icon_state = "red"},/area/tdome) "cEk" = (/turf/unsimulated/floor{icon_state = "green"; dir = 4},/area/tdome) "cEl" = (/obj/item/weapon/storage/firstaid/regular{pixel_x = 2; pixel_y = 6},/obj/item/weapon/storage/firstaid/regular{pixel_x = -2; pixel_y = 4},/turf/simulated/shuttle/floor{icon_state = "floor3"},/area/shuttle/escape/centcom) @@ -7094,7 +7094,7 @@ "cGv" = (/turf/unsimulated/beach/coastline{density = 1; opacity = 1},/area/beach) "cGw" = (/turf/unsimulated/beach/coastline,/area/beach) "cGx" = (/turf/unsimulated/beach/water{density = 1; opacity = 1},/area/beach) -"cGy" = (/obj/effect/overlay/water,/turf/unsimulated/beach/water,/area/beach) +"cGy" = (/turf/unsimulated/beach/water,/area/beach) "cGz" = (/turf/unsimulated/wall,/area/wizard_station) "cGA" = (/obj/structure/bookcase{name = "Forbidden Knowledge"},/obj/effect/decal/cleanable/cobweb,/turf/unsimulated/floor{dir = 8; icon_state = "wood"},/area/wizard_station) "cGB" = (/obj/structure/bookcase{name = "Forbidden Knowledge"},/turf/unsimulated/floor{dir = 8; icon_state = "wood"},/area/wizard_station) diff --git a/tgstation.dme b/tgstation.dme index 5884d6e227..2f0ab65071 100644 --- a/tgstation.dme +++ b/tgstation.dme @@ -6,219 +6,6 @@ // BEGIN_FILE_DIR #define FILE_DIR . -#define FILE_DIR "code" -#define FILE_DIR "code/ATMOSPHERICS" -#define FILE_DIR "code/ATMOSPHERICS/components" -#define FILE_DIR "code/ATMOSPHERICS/components/binary_devices" -#define FILE_DIR "code/ATMOSPHERICS/components/trinary_devices" -#define FILE_DIR "code/ATMOSPHERICS/components/unary" -#define FILE_DIR "code/controllers" -#define FILE_DIR "code/datums" -#define FILE_DIR "code/datums/diseases" -#define FILE_DIR "code/datums/helper_datums" -#define FILE_DIR "code/datums/spells" -#define FILE_DIR "code/defines" -#define FILE_DIR "code/defines/area" -#define FILE_DIR "code/defines/obj" -#define FILE_DIR "code/defines/procs" -#define FILE_DIR "code/defines/tanning" -#define FILE_DIR "code/FEA" -#define FILE_DIR "code/game" -#define FILE_DIR "code/game/area" -#define FILE_DIR "code/game/asteroid" -#define FILE_DIR "code/game/gamemodes" -#define FILE_DIR "code/game/gamemodes/blob" -#define FILE_DIR "code/game/gamemodes/blob/blobs" -#define FILE_DIR "code/game/gamemodes/changeling" -#define FILE_DIR "code/game/gamemodes/cult" -#define FILE_DIR "code/game/gamemodes/events" -#define FILE_DIR "code/game/gamemodes/events/holidays" -#define FILE_DIR "code/game/gamemodes/extended" -#define FILE_DIR "code/game/gamemodes/malfunction" -#define FILE_DIR "code/game/gamemodes/meteor" -#define FILE_DIR "code/game/gamemodes/nuclear" -#define FILE_DIR "code/game/gamemodes/revolution" -#define FILE_DIR "code/game/gamemodes/sandbox" -#define FILE_DIR "code/game/gamemodes/traitor" -#define FILE_DIR "code/game/gamemodes/wizard" -#define FILE_DIR "code/game/jobs" -#define FILE_DIR "code/game/jobs/job" -#define FILE_DIR "code/game/machinery" -#define FILE_DIR "code/game/machinery/atmoalter" -#define FILE_DIR "code/game/machinery/bots" -#define FILE_DIR "code/game/machinery/computer" -#define FILE_DIR "code/game/machinery/doors" -#define FILE_DIR "code/game/machinery/embedded_controller" -#define FILE_DIR "code/game/machinery/kitchen" -#define FILE_DIR "code/game/machinery/pipe" -#define FILE_DIR "code/game/machinery/telecomms" -#define FILE_DIR "code/game/mecha" -#define FILE_DIR "code/game/mecha/combat" -#define FILE_DIR "code/game/mecha/equipment" -#define FILE_DIR "code/game/mecha/equipment/tools" -#define FILE_DIR "code/game/mecha/equipment/weapons" -#define FILE_DIR "code/game/mecha/medical" -#define FILE_DIR "code/game/mecha/working" -#define FILE_DIR "code/game/objects" -#define FILE_DIR "code/game/objects/effects" -#define FILE_DIR "code/game/objects/effects/decals" -#define FILE_DIR "code/game/objects/effects/spawners" -#define FILE_DIR "code/game/objects/items" -#define FILE_DIR "code/game/objects/items/devices" -#define FILE_DIR "code/game/objects/items/devices/PDA" -#define FILE_DIR "code/game/objects/items/devices/radio" -#define FILE_DIR "code/game/objects/items/robot" -#define FILE_DIR "code/game/objects/items/stacks" -#define FILE_DIR "code/game/objects/items/stacks/sheets" -#define FILE_DIR "code/game/objects/items/stacks/tiles" -#define FILE_DIR "code/game/objects/items/weapons" -#define FILE_DIR "code/game/objects/items/weapons/grenades" -#define FILE_DIR "code/game/objects/items/weapons/implants" -#define FILE_DIR "code/game/objects/items/weapons/secstorage" -#define FILE_DIR "code/game/objects/items/weapons/storage" -#define FILE_DIR "code/game/objects/items/weapons/tanks" -#define FILE_DIR "code/game/objects/structures" -#define FILE_DIR "code/game/objects/structures/crates_lockers" -#define FILE_DIR "code/game/objects/structures/crates_lockers/closets" -#define FILE_DIR "code/game/objects/structures/crates_lockers/closets/secure" -#define FILE_DIR "code/game/objects/structures/stool_bed_chair_nest" -#define FILE_DIR "code/game/turfs" -#define FILE_DIR "code/game/turfs/simulated" -#define FILE_DIR "code/game/turfs/unsimulated" -#define FILE_DIR "code/game/vehicles" -#define FILE_DIR "code/game/vehicles/airtight" -#define FILE_DIR "code/game/verbs" -#define FILE_DIR "code/js" -#define FILE_DIR "code/modules" -#define FILE_DIR "code/modules/admin" -#define FILE_DIR "code/modules/admin/DB ban" -#define FILE_DIR "code/modules/admin/verbs" -#define FILE_DIR "code/modules/assembly" -#define FILE_DIR "code/modules/client" -#define FILE_DIR "code/modules/clothing" -#define FILE_DIR "code/modules/clothing/glasses" -#define FILE_DIR "code/modules/clothing/gloves" -#define FILE_DIR "code/modules/clothing/head" -#define FILE_DIR "code/modules/clothing/masks" -#define FILE_DIR "code/modules/clothing/shoes" -#define FILE_DIR "code/modules/clothing/spacesuits" -#define FILE_DIR "code/modules/clothing/suits" -#define FILE_DIR "code/modules/clothing/under" -#define FILE_DIR "code/modules/clothing/under/jobs" -#define FILE_DIR "code/modules/critters" -#define FILE_DIR "code/modules/critters/hivebots" -#define FILE_DIR "code/modules/detectivework" -#define FILE_DIR "code/modules/flufftext" -#define FILE_DIR "code/modules/food" -#define FILE_DIR "code/modules/library" -#define FILE_DIR "code/modules/liquid" -#define FILE_DIR "code/modules/maps" -#define FILE_DIR "code/modules/mining" -#define FILE_DIR "code/modules/mob" -#define FILE_DIR "code/modules/mob/dead" -#define FILE_DIR "code/modules/mob/dead/observer" -#define FILE_DIR "code/modules/mob/living" -#define FILE_DIR "code/modules/mob/living/blob" -#define FILE_DIR "code/modules/mob/living/carbon" -#define FILE_DIR "code/modules/mob/living/carbon/alien" -#define FILE_DIR "code/modules/mob/living/carbon/alien/humanoid" -#define FILE_DIR "code/modules/mob/living/carbon/alien/humanoid/caste" -#define FILE_DIR "code/modules/mob/living/carbon/alien/larva" -#define FILE_DIR "code/modules/mob/living/carbon/alien/special" -#define FILE_DIR "code/modules/mob/living/carbon/brain" -#define FILE_DIR "code/modules/mob/living/carbon/human" -#define FILE_DIR "code/modules/mob/living/carbon/metroid" -#define FILE_DIR "code/modules/mob/living/carbon/monkey" -#define FILE_DIR "code/modules/mob/living/silicon" -#define FILE_DIR "code/modules/mob/living/silicon/ai" -#define FILE_DIR "code/modules/mob/living/silicon/ai/freelook" -#define FILE_DIR "code/modules/mob/living/silicon/decoy" -#define FILE_DIR "code/modules/mob/living/silicon/pai" -#define FILE_DIR "code/modules/mob/living/silicon/robot" -#define FILE_DIR "code/modules/mob/living/simple_animal" -#define FILE_DIR "code/modules/mob/new_player" -#define FILE_DIR "code/modules/mob/organ" -#define FILE_DIR "code/modules/paperwork" -#define FILE_DIR "code/modules/power" -#define FILE_DIR "code/modules/power/antimatter" -#define FILE_DIR "code/modules/power/singularity" -#define FILE_DIR "code/modules/power/singularity/particle_accelerator" -#define FILE_DIR "code/modules/projectiles" -#define FILE_DIR "code/modules/projectiles/ammunition" -#define FILE_DIR "code/modules/projectiles/guns" -#define FILE_DIR "code/modules/projectiles/guns/energy" -#define FILE_DIR "code/modules/projectiles/guns/projectile" -#define FILE_DIR "code/modules/projectiles/projectile" -#define FILE_DIR "code/modules/reagents" -#define FILE_DIR "code/modules/reagents/reagent_containers" -#define FILE_DIR "code/modules/reagents/reagent_containers/food" -#define FILE_DIR "code/modules/reagents/reagent_containers/food/drinks" -#define FILE_DIR "code/modules/reagents/reagent_containers/food/drinks/bottle" -#define FILE_DIR "code/modules/reagents/reagent_containers/food/snacks" -#define FILE_DIR "code/modules/reagents/reagent_containers/glass" -#define FILE_DIR "code/modules/reagents/reagent_containers/glass/bottle" -#define FILE_DIR "code/modules/recycling" -#define FILE_DIR "code/modules/research" -#define FILE_DIR "code/modules/scripting" -#define FILE_DIR "code/modules/scripting/AST" -#define FILE_DIR "code/modules/scripting/AST/Operators" -#define FILE_DIR "code/modules/scripting/Implementations" -#define FILE_DIR "code/modules/scripting/Interpreter" -#define FILE_DIR "code/modules/scripting/Parser" -#define FILE_DIR "code/modules/scripting/Scanner" -#define FILE_DIR "code/modules/security levels" -#define FILE_DIR "code/unused" -#define FILE_DIR "code/unused/beast" -#define FILE_DIR "code/unused/computer2" -#define FILE_DIR "code/unused/disease2" -#define FILE_DIR "code/unused/gamemodes" -#define FILE_DIR "code/unused/hivebot" -#define FILE_DIR "code/unused/mining" -#define FILE_DIR "code/unused/optics" -#define FILE_DIR "code/unused/pda2" -#define FILE_DIR "code/unused/powerarmor" -#define FILE_DIR "code/unused/spacecraft" -#define FILE_DIR "code/WorkInProgress" -#define FILE_DIR "code/WorkInProgress/carn" -#define FILE_DIR "code/WorkInProgress/mapload" -#define FILE_DIR "code/WorkInProgress/organs" -#define FILE_DIR "code/WorkInProgress/virus2" -#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/machines" -#define FILE_DIR "icons/obj/pipes" -#define FILE_DIR "icons/pda_icons" -#define FILE_DIR "icons/spideros_icons" -#define FILE_DIR "icons/Testing" -#define FILE_DIR "icons/turf" -#define FILE_DIR "icons/vehicles" -#define FILE_DIR "icons/vending_icons" -#define FILE_DIR "interface" -#define FILE_DIR "maps" -#define FILE_DIR "maps/RandomZLevels" -#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/voice" -#define FILE_DIR "sound/weapons" -#define FILE_DIR "tools" -#define FILE_DIR "tools/Redirector" // END_FILE_DIR // BEGIN_PREFERENCES @@ -1109,7 +896,6 @@ #include "code\modules\power\switch.dm" #include "code\modules\power\terminal.dm" #include "code\modules\power\tracker.dm" -#include "code\modules\power\turbine.dm" #include "code\modules\power\antimatter\containment_jar.dm" #include "code\modules\power\antimatter\control.dm" #include "code\modules\power\antimatter\shielding.dm"