From 882288778414c4785b4aa66829328ea404c13b7a Mon Sep 17 00:00:00 2001 From: Mark van Alphen Date: Mon, 3 Jun 2019 01:21:03 +0200 Subject: [PATCH] Compile fix and asteroid turf placement fix --- code/game/objects/items.dm | 2 +- code/game/turfs/simulated/floor.dm | 37 ++++++++++-------- code/game/turfs/simulated/floor/asteroid.dm | 7 +++- code/game/turfs/simulated/floor/plating.dm | 39 ++++++++++++++----- code/game/turfs/simulated/minerals.dm | 2 +- code/game/turfs/turf.dm | 7 ++-- code/modules/awaymissions/maploader/reader.dm | 2 +- .../mining/lavaland/loot/ashdragon_loot.dm | 4 +- 8 files changed, 62 insertions(+), 38 deletions(-) diff --git a/code/game/objects/items.dm b/code/game/objects/items.dm index fafb533cad1..073cd0df669 100644 --- a/code/game/objects/items.dm +++ b/code/game/objects/items.dm @@ -151,7 +151,7 @@ var/global/image/fire_overlay = image("icon" = 'icons/goonstation/effects/fire.d /obj/item/water_act(volume, temperature, source, method = TOUCH) . = ..() - O.extinguish() + extinguish() /obj/item/verb/move_to_top() set name = "Move To Top" diff --git a/code/game/turfs/simulated/floor.dm b/code/game/turfs/simulated/floor.dm index 2877f9f01d5..7a3e7c74328 100644 --- a/code/game/turfs/simulated/floor.dm +++ b/code/game/turfs/simulated/floor.dm @@ -120,30 +120,31 @@ var/list/icons_to_ignore_at_floor_init = list("damaged1","damaged2","damaged3"," /turf/simulated/floor/proc/make_plating() return ChangeTurf(/turf/simulated/floor/plating) -/turf/simulated/floor/ChangeTurf(turf/simulated/floor/T, defer_change = FALSE, keep_icon = TRUE) - if(!istype(src,/turf/simulated/floor)) return ..() //fucking turfs switch the fucking src of the fucking running procs - if(!ispath(T,/turf/simulated/floor)) return ..() - var/old_icon = icon_regular_floor - var/old_plating = icon_plating - var/old_dir = dir +/turf/simulated/floor/ChangeTurf(turf/simulated/floor/T, defer_change = FALSE, ignore_air = FALSE) + if(!istype(src,/turf/simulated/floor)) + return ..() //fucking turfs switch the fucking src of the fucking running procs + if(!ispath(T,/turf/simulated/floor)) + return ..() + var/turf/simulated/floor/W = ..() - if(keep_icon) - W.icon_regular_floor = old_icon - W.icon_plating = old_plating - W.dir = old_dir + W.update_icon() return W /turf/simulated/floor/attackby(obj/item/C as obj, mob/user as mob, params) if(!C || !user) - return 1 + return TRUE + if(..()) - return 1 + return TRUE + if(intact && iscrowbar(C)) pry_tile(C, user) - return 1 + return TRUE + if(intact && istype(C, /obj/item/stack/tile)) try_replace_tile(C, user, params) + if(istype(C, /obj/item/pipe)) var/obj/item/pipe/P = C if(P.pipe_type != -1) // ANY PIPE @@ -152,6 +153,7 @@ var/list/icons_to_ignore_at_floor_init = list("damaged1","damaged2","damaged3"," "You slide [P] along \the [src].", \ "You hear the scrape of metal against something.") user.drop_item() + if(P.is_bent_pipe()) // bent pipe rotation fix see construction.dm P.dir = 5 if(user.dir == 1) @@ -161,13 +163,14 @@ var/list/icons_to_ignore_at_floor_init = list("damaged1","damaged2","damaged3"," else if(user.dir == 4) P.dir = 10 else - P.dir = user.dir + P.setDir(user.dir) + P.x = src.x P.y = src.y P.z = src.z - P.loc = src - return 1 - return 0 + P.forceMove(src) + return TRUE + return FALSE /turf/simulated/floor/proc/try_replace_tile(obj/item/stack/tile/T, mob/user, params) if(T.turf_type == type) diff --git a/code/game/turfs/simulated/floor/asteroid.dm b/code/game/turfs/simulated/floor/asteroid.dm index 23e80d5e612..52dcf899894 100644 --- a/code/game/turfs/simulated/floor/asteroid.dm +++ b/code/game/turfs/simulated/floor/asteroid.dm @@ -18,6 +18,9 @@ if(prob(floor_variance)) icon_state = "[environment_type][rand(0,12)]" +/turf/simulated/floor/plating/asteroid/try_replace_tile(obj/item/stack/tile/T, mob/user, params) + return + /turf/simulated/floor/plating/asteroid/burn_tile() return @@ -58,14 +61,14 @@ gets_dug() return - if(istype(W,/obj/item/storage/bag/ore)) + else if(istype(W,/obj/item/storage/bag/ore)) var/obj/item/storage/bag/ore/S = W if(S.collection_mode == 1) for(var/obj/item/stack/ore/O in src.contents) O.attackby(W,user) return - if(istype(W, /obj/item/stack/tile)) + else if(istype(W, /obj/item/stack/tile)) var/obj/item/stack/tile/Z = W if(!Z.use(1)) return diff --git a/code/game/turfs/simulated/floor/plating.dm b/code/game/turfs/simulated/floor/plating.dm index 6218b2a702d..a125f9ff543 100644 --- a/code/game/turfs/simulated/floor/plating.dm +++ b/code/game/turfs/simulated/floor/plating.dm @@ -25,16 +25,16 @@ /turf/simulated/floor/plating/attackby(obj/item/C, mob/user, params) if(..()) - return 1 + return TRUE if(istype(C, /obj/item/stack/rods)) if(broken || burnt) to_chat(user, "Repair the plating first!") - return 1 + return TRUE var/obj/item/stack/rods/R = C if(R.get_amount() < 2) to_chat(user, "You need two rods to make a reinforced floor!") - return 1 + return TRUE else to_chat(user, "You begin reinforcing the floor...") if(do_after(user, 30 * C.toolspeed, target = src)) @@ -43,7 +43,7 @@ playsound(src, C.usesound, 80, 1) R.use(2) to_chat(user, "You reinforce the floor.") - return 1 + return TRUE else if(istype(C, /obj/item/stack/tile)) if(!broken && !burnt) @@ -54,20 +54,20 @@ playsound(src, 'sound/weapons/genhit.ogg', 50, 1) else to_chat(user, "This section is too damaged to support a tile! Use a welder to fix the damage.") - return 1 + return TRUE else if(istype(C, /obj/item/weldingtool)) var/obj/item/weldingtool/welder = C - if( welder.isOn() && (broken || burnt) ) - if(welder.remove_fuel(0,user)) + if(welder.isOn() && (broken || burnt)) + if(welder.remove_fuel(0, user)) to_chat(user, "You fix some dents on the broken plating.") playsound(src, welder.usesound, 80, 1) overlays -= current_overlay current_overlay = null - burnt = 0 - broken = 0 + burnt = FALSE + broken = FALSE update_icon() - return 1 + return TRUE /turf/simulated/floor/plating/airless icon_state = "plating" @@ -103,6 +103,9 @@ /turf/simulated/floor/engine/attack_hand(mob/user as mob) user.Move_Pulled(src) +/turf/simulated/floor/engine/try_replace_tile(obj/item/stack/tile/T, mob/user, params) + return + /turf/simulated/floor/engine/attackby(obj/item/C as obj, mob/user as mob, params) if(!C || !user) return @@ -115,6 +118,7 @@ new /obj/item/stack/rods(src, 2) ChangeTurf(/turf/simulated/floor/plating) return + if(istype(C, /obj/item/stack/sheet/plasteel) && !insulated) //Insulating the floor to_chat(user, "You begin insulating [src]...") if(do_after(user, 40, target = src) && !insulated) //You finish insulating the insulated insulated insulated insulated insulated insulated insulated insulated vacuum floor @@ -220,6 +224,9 @@ /turf/simulated/floor/snow/ex_act(severity) return +/turf/simulated/floor/snow/try_replace_tile(obj/item/stack/tile/T, mob/user, params) + return + /turf/simulated/floor/plating/metalfoam name = "foamed metal plating" icon_state = "metalfoam" @@ -236,6 +243,9 @@ if(MFOAM_IRON) icon_state = "ironfoam" +/turf/simulated/floor/plating/metalfoam/try_replace_tile(obj/item/stack/tile/T, mob/user, params) + return + /turf/simulated/floor/plating/metalfoam/attackby(var/obj/item/C, mob/user, params) if(..()) return 1 @@ -277,3 +287,12 @@ /turf/simulated/floor/plating/abductor/New() ..() icon_state = "alienpod[rand(1,9)]" + +/turf/simulated/floor/plating/abductor/break_tile() + return //unbreakable + +/turf/simulated/floor/plating/abductor/burn_tile() + return //unburnable + +/turf/simulated/floor/plating/abductor/try_replace_tile(obj/item/stack/tile/T, mob/user, params) + return diff --git a/code/game/turfs/simulated/minerals.dm b/code/game/turfs/simulated/minerals.dm index ad3e981154d..119f0b000d9 100644 --- a/code/game/turfs/simulated/minerals.dm +++ b/code/game/turfs/simulated/minerals.dm @@ -22,7 +22,7 @@ var/spreadChance = 0 //the percentual chance of an ore spreading to the neighbouring tiles var/last_act = 0 var/scan_state = null //Holder for the image we display when we're pinged by a mining scanner - var/defer_change = 0 + var/defer_change = FALSE /turf/simulated/mineral/New() if (!canSmoothWith) diff --git a/code/game/turfs/turf.dm b/code/game/turfs/turf.dm index 19090102611..1a8c0b4cb87 100644 --- a/code/game/turfs/turf.dm +++ b/code/game/turfs/turf.dm @@ -180,11 +180,11 @@ if(L) qdel(L) -/turf/proc/TerraformTurf(path, defer_change = FALSE, keep_icon = TRUE, ignore_air = FALSE) - return ChangeTurf(path, defer_change, keep_icon, ignore_air) +/turf/proc/TerraformTurf(path, defer_change = FALSE, ignore_air = FALSE) + return ChangeTurf(path, ignore_air) //Creates a new turf -/turf/proc/ChangeTurf(path, defer_change = FALSE, keep_icon = TRUE, ignore_air = FALSE) +/turf/proc/ChangeTurf(path, defer_change = FALSE, ignore_air = FALSE) if(!path) return if(!use_preloader && path == type) // Don't no-op if the map loader requires it to be reconstructed @@ -209,7 +209,6 @@ if(!defer_change) W.AfterChange(ignore_air) - W.blueprint_data = old_blueprint_data recalc_atom_opacity() diff --git a/code/modules/awaymissions/maploader/reader.dm b/code/modules/awaymissions/maploader/reader.dm index 816007d4ff8..1505f731362 100644 --- a/code/modules/awaymissions/maploader/reader.dm +++ b/code/modules/awaymissions/maploader/reader.dm @@ -176,7 +176,7 @@ var/global/dmm_suite/preloader/_preloader = new for(var/t in block(locate(bounds[MAP_MINX], bounds[MAP_MINY], bounds[MAP_MINZ]), locate(bounds[MAP_MAXX], bounds[MAP_MAXY], bounds[MAP_MAXZ]))) var/turf/T = t //we do this after we load everything in. if we don't; we'll have weird atmos bugs regarding atmos adjacent turfs - T.AfterChange(1,keep_cabling = TRUE) + T.AfterChange(1, keep_cabling = TRUE) return bounds /** diff --git a/code/modules/mining/lavaland/loot/ashdragon_loot.dm b/code/modules/mining/lavaland/loot/ashdragon_loot.dm index 971a1fc6827..a39b1bbf8c6 100644 --- a/code/modules/mining/lavaland/loot/ashdragon_loot.dm +++ b/code/modules/mining/lavaland/loot/ashdragon_loot.dm @@ -198,7 +198,7 @@ user.visible_message("[user] turns \the [T] into [transform_string]!") message_admins("[key_name_admin(user)] fired the lava staff at [get_area(target)] (JMP).") log_game("[key_name(user)] fired the lava staff at [get_area(target)] ([T.x], [T.y], [T.z]).") - T.TerraformTurf(turf_type, keep_icon = FALSE) + T.TerraformTurf(turf_type) timer = world.time + create_cooldown qdel(L) else @@ -207,7 +207,7 @@ return else user.visible_message("[user] turns \the [T] into [reset_string]!") - T.TerraformTurf(reset_turf_type, keep_icon = FALSE) + T.TerraformTurf(reset_turf_type) timer = world.time + reset_cooldown playsound(T,'sound/magic/fireball.ogg', 200, 1)