diff --git a/code/__HELPERS/_lists.dm b/code/__HELPERS/_lists.dm index 40c12e6e0c7..b12890139ec 100644 --- a/code/__HELPERS/_lists.dm +++ b/code/__HELPERS/_lists.dm @@ -1002,3 +1002,15 @@ if(i < target_list.len) CHECK_TICK return ret + +/// Runtimes if the passed in list is not sorted +/proc/assert_sorted(list/list, name, cmp = /proc/cmp_numeric_asc) + var/last_value = list[1] + + for (var/index in 2 to list.len) + var/value = list[index] + + if (call(cmp)(value, last_value) < 0) + stack_trace("[name] is not sorted. value at [index] ([value]) is in the wrong place compared to the previous value of [last_value] (when compared to by [cmp])") + + last_value = value diff --git a/code/__HELPERS/level_traits.dm b/code/__HELPERS/level_traits.dm index 7f1c2dd7053..805e9466aec 100644 --- a/code/__HELPERS/level_traits.dm +++ b/code/__HELPERS/level_traits.dm @@ -3,7 +3,22 @@ // Basic levels #define is_centcom_level(z) SSmapping.level_trait(z, ZTRAIT_CENTCOM) -#define is_station_level(z) SSmapping.level_trait(z, ZTRAIT_STATION) +GLOBAL_LIST_EMPTY(station_levels_cache) + +// Used to prevent z from being re-evaluated +GLOBAL_VAR(station_level_z_scratch) + +// Called a lot, somewhat slow, so has its own cache +#define is_station_level(z) \ + ( \ + ( \ + /* The right hand side of this guarantees that we'll have the space to fill later on, while also not failing the condition */ \ + (GLOB.station_levels_cache.len < (GLOB.station_level_z_scratch = z) && (GLOB.station_levels_cache.len = GLOB.station_level_z_scratch)) \ + || isnull(GLOB.station_levels_cache[GLOB.station_level_z_scratch]) \ + ) \ + ? (GLOB.station_levels_cache[GLOB.station_level_z_scratch] = !!SSmapping.level_trait(z, ZTRAIT_STATION)) \ + : GLOB.station_levels_cache[GLOB.station_level_z_scratch] \ + ) #define is_mining_level(z) SSmapping.level_trait(z, ZTRAIT_MINING) diff --git a/code/game/area/areas/misc.dm b/code/game/area/areas/misc.dm index fd6d0452d84..610662ac3f6 100644 --- a/code/game/area/areas/misc.dm +++ b/code/game/area/areas/misc.dm @@ -5,8 +5,8 @@ requires_power = TRUE always_unpowered = TRUE static_lighting = FALSE + area_has_base_lighting = FALSE - base_lighting_alpha = 255 power_light = FALSE power_equip = FALSE power_environ = FALSE @@ -17,6 +17,11 @@ sound_environment = SOUND_AREA_SPACE ambient_buzz = null //Space is deafeningly quiet +/area/space/Initialize(mapload) + . = ..() + + add_overlay(GLOB.fullbright_overlay) + /area/space/nearstation icon_state = "space_near" area_flags = UNIQUE_AREA | NO_ALERTS | AREA_USES_STARLIGHT diff --git a/code/game/atoms.dm b/code/game/atoms.dm index 5d73d2ac717..8d70248b678 100644 --- a/code/game/atoms.dm +++ b/code/game/atoms.dm @@ -139,9 +139,9 @@ var/bottom_left_corner ///Smoothing variable var/bottom_right_corner - ///What smoothing groups does this atom belongs to, to match canSmoothWith. If null, nobody can smooth with it. + ///What smoothing groups does this atom belongs to, to match canSmoothWith. If null, nobody can smooth with it. Must be sorted. var/list/smoothing_groups = null - ///List of smoothing groups this atom can smooth with. If this is null and atom is smooth, it smooths only with itself. + ///List of smoothing groups this atom can smooth with. If this is null and atom is smooth, it smooths only with itself. Must be sorted. var/list/canSmoothWith = null ///Reference to atom being orbited var/atom/orbit_target @@ -227,6 +227,7 @@ /atom/proc/Initialize(mapload, ...) SHOULD_NOT_SLEEP(TRUE) SHOULD_CALL_PARENT(TRUE) + if(flags_1 & INITIALIZED_1) stack_trace("Warning: [src]([type]) initialized multiple times!") flags_1 |= INITIALIZED_1 @@ -245,12 +246,20 @@ update_light() if (length(smoothing_groups)) - sortTim(smoothing_groups) //In case it's not properly ordered, let's avoid duplicate entries with the same values. + #ifdef UNIT_TESTS + assert_sorted(smoothing_groups, "[type].smoothing_groups") + #endif + SET_BITFLAG_LIST(smoothing_groups) + if (length(canSmoothWith)) - sortTim(canSmoothWith) + #ifdef UNIT_TESTS + assert_sorted(canSmoothWith, "[type].canSmoothWith") + #endif + if(canSmoothWith[length(canSmoothWith)] > MAX_S_TURF) //If the last element is higher than the maximum turf-only value, then it must scan turf contents for smoothing targets. smoothing_flags |= SMOOTH_OBJ + SET_BITFLAG_LIST(canSmoothWith) if(uses_integrity) @@ -260,6 +269,7 @@ armor = getArmor() else if (!istype(armor, /datum/armor)) stack_trace("Invalid type [armor.type] found in .armor during /atom Initialize()") + atom_integrity = max_integrity // apply materials properly from the default custom_materials value diff --git a/code/game/machinery/deployable.dm b/code/game/machinery/deployable.dm index 618ab50fcce..4e7763a92ac 100644 --- a/code/game/machinery/deployable.dm +++ b/code/game/machinery/deployable.dm @@ -108,7 +108,7 @@ bar_material = SAND smoothing_flags = SMOOTH_BITMASK smoothing_groups = list(SMOOTH_GROUP_SANDBAGS) - canSmoothWith = list(SMOOTH_GROUP_SANDBAGS, SMOOTH_GROUP_WALLS, SMOOTH_GROUP_SECURITY_BARRICADE) + canSmoothWith = list(SMOOTH_GROUP_WALLS, SMOOTH_GROUP_SECURITY_BARRICADE, SMOOTH_GROUP_SANDBAGS) /obj/structure/barricade/sandbags/Initialize(mapload) . = ..() diff --git a/code/game/objects/effects/decals/cleanable/misc.dm b/code/game/objects/effects/decals/cleanable/misc.dm index 6d2602b9a2f..27dced05e99 100644 --- a/code/game/objects/effects/decals/cleanable/misc.dm +++ b/code/game/objects/effects/decals/cleanable/misc.dm @@ -62,7 +62,7 @@ base_icon_state = "dirt" smoothing_flags = NONE smoothing_groups = list(SMOOTH_GROUP_CLEANABLE_DIRT) - canSmoothWith = list(SMOOTH_GROUP_CLEANABLE_DIRT, SMOOTH_GROUP_WALLS) + canSmoothWith = list(SMOOTH_GROUP_WALLS, SMOOTH_GROUP_CLEANABLE_DIRT) mouse_opacity = MOUSE_OPACITY_TRANSPARENT beauty = -75 diff --git a/code/game/objects/effects/spawners/structure.dm b/code/game/objects/effects/spawners/structure.dm index e2066c6c5f2..86b4a5868ae 100644 --- a/code/game/objects/effects/spawners/structure.dm +++ b/code/game/objects/effects/spawners/structure.dm @@ -10,9 +10,10 @@ again. /obj/effect/spawner/structure/Initialize(mapload) . = ..() - if(spawn_list?.len) - for(var/I in spawn_list) - new I(get_turf(src)) + + for(var/spawn_type in spawn_list) + new spawn_type(loc) + return INITIALIZE_HINT_QDEL @@ -28,9 +29,8 @@ again. /obj/effect/spawner/structure/window/Initialize(mapload) . = ..() - if (is_station_level(z)) - var/turf/current_turf = get_turf(src) - current_turf.rcd_memory = RCD_MEMORY_WINDOWGRILLE + var/turf/current_turf = loc + current_turf.rcd_memory = RCD_MEMORY_WINDOWGRILLE /obj/effect/spawner/structure/window/hollow name = "hollow window spawner" diff --git a/code/game/objects/structures/aliens.dm b/code/game/objects/structures/aliens.dm index f39f2c44037..c80e53b48df 100644 --- a/code/game/objects/structures/aliens.dm +++ b/code/game/objects/structures/aliens.dm @@ -143,7 +143,7 @@ max_integrity = 15 smoothing_flags = SMOOTH_BITMASK smoothing_groups = list(SMOOTH_GROUP_ALIEN_RESIN, SMOOTH_GROUP_ALIEN_WEEDS) - canSmoothWith = list(SMOOTH_GROUP_ALIEN_WEEDS, SMOOTH_GROUP_WALLS) + canSmoothWith = list(SMOOTH_GROUP_WALLS, SMOOTH_GROUP_ALIEN_WEEDS) ///the range of the weeds going to be affected by the node var/node_range = NODERANGE ///the parent node that will determine if we grow or die diff --git a/code/game/objects/structures/false_walls.dm b/code/game/objects/structures/false_walls.dm index 1ccadddfc5d..61d587fc1d7 100644 --- a/code/game/objects/structures/false_walls.dm +++ b/code/game/objects/structures/false_walls.dm @@ -14,7 +14,7 @@ opacity = TRUE max_integrity = 100 smoothing_flags = SMOOTH_BITMASK - smoothing_groups = list(SMOOTH_GROUP_CLOSED_TURFS, SMOOTH_GROUP_WALLS) + smoothing_groups = list(SMOOTH_GROUP_WALLS, SMOOTH_GROUP_CLOSED_TURFS) // SKYRAT EDIT CHANGE - Sorting them because /tg/ forgot to. canSmoothWith = list(SMOOTH_GROUP_WALLS) can_be_unanchored = FALSE can_atmos_pass = ATMOS_PASS_DENSITY @@ -315,7 +315,7 @@ mineral = /obj/item/stack/sheet/mineral/bamboo walltype = /turf/closed/wall/mineral/bamboo smoothing_flags = SMOOTH_BITMASK - smoothing_groups = list(SMOOTH_GROUP_CLOSED_TURFS, SMOOTH_GROUP_WALLS, SMOOTH_GROUP_BAMBOO_WALLS) + smoothing_groups = list(SMOOTH_GROUP_BAMBOO_WALLS, SMOOTH_GROUP_WALLS, SMOOTH_GROUP_CLOSED_TURFS) // SKYRAT EDIT CHANGE - Sorting them because /tg/ forgot to canSmoothWith = list(SMOOTH_GROUP_BAMBOO_WALLS) /obj/structure/falsewall/iron @@ -376,7 +376,7 @@ base_icon_state = "materialwall" walltype = /turf/closed/wall/material smoothing_flags = SMOOTH_BITMASK - smoothing_groups = list(SMOOTH_GROUP_CLOSED_TURFS, SMOOTH_GROUP_WALLS, SMOOTH_GROUP_MATERIAL_WALLS) + smoothing_groups = list(SMOOTH_GROUP_WALLS, SMOOTH_GROUP_CLOSED_TURFS, SMOOTH_GROUP_MATERIAL_WALLS) // SKYRAT EDIT CHANGE - Sorting them because /tg/ forgot to canSmoothWith = list(SMOOTH_GROUP_MATERIAL_WALLS) material_flags = MATERIAL_EFFECTS | MATERIAL_ADD_PREFIX | MATERIAL_COLOR | MATERIAL_AFFECT_STATISTICS diff --git a/code/game/objects/structures/lattice.dm b/code/game/objects/structures/lattice.dm index 8c924eac990..b3044a60855 100644 --- a/code/game/objects/structures/lattice.dm +++ b/code/game/objects/structures/lattice.dm @@ -13,7 +13,7 @@ obj_flags = CAN_BE_HIT | BLOCK_Z_OUT_DOWN smoothing_flags = SMOOTH_BITMASK smoothing_groups = list(SMOOTH_GROUP_LATTICE) - canSmoothWith = list(SMOOTH_GROUP_LATTICE, SMOOTH_GROUP_OPEN_FLOOR, SMOOTH_GROUP_WALLS) + canSmoothWith = list(SMOOTH_GROUP_OPEN_FLOOR, SMOOTH_GROUP_WALLS, SMOOTH_GROUP_LATTICE) var/number_of_mats = 1 var/build_material = /obj/item/stack/rods @@ -77,7 +77,7 @@ base_icon_state = "catwalk" number_of_mats = 2 smoothing_flags = SMOOTH_BITMASK - smoothing_groups = list(SMOOTH_GROUP_LATTICE, SMOOTH_GROUP_CATWALK, SMOOTH_GROUP_OPEN_FLOOR) + smoothing_groups = list(SMOOTH_GROUP_OPEN_FLOOR, SMOOTH_GROUP_LATTICE, SMOOTH_GROUP_CATWALK) canSmoothWith = list(SMOOTH_GROUP_CATWALK) obj_flags = CAN_BE_HIT | BLOCK_Z_OUT_DOWN | BLOCK_Z_IN_UP @@ -113,7 +113,7 @@ number_of_mats = 1 color = "#5286b9ff" smoothing_flags = SMOOTH_BITMASK - smoothing_groups = list(SMOOTH_GROUP_LATTICE, SMOOTH_GROUP_OPEN_FLOOR) + smoothing_groups = list(SMOOTH_GROUP_OPEN_FLOOR, SMOOTH_GROUP_LATTICE) canSmoothWith = list(SMOOTH_GROUP_LATTICE) obj_flags = CAN_BE_HIT | BLOCK_Z_OUT_DOWN | BLOCK_Z_IN_UP resistance_flags = FIRE_PROOF | LAVA_PROOF diff --git a/code/game/objects/structures/window.dm b/code/game/objects/structures/window.dm index 87fa8b9c9f2..c3033747a2f 100644 --- a/code/game/objects/structures/window.dm +++ b/code/game/objects/structures/window.dm @@ -715,7 +715,7 @@ heat_resistance = 1600 armor = list(MELEE = 90, BULLET = 0, LASER = 0, ENERGY = 0, BOMB = 50, BIO = 0, FIRE = 80, ACID = 100) smoothing_flags = SMOOTH_BITMASK - smoothing_groups = list(SMOOTH_GROUP_SHUTTLE_PARTS, SMOOTH_GROUP_WINDOW_FULLTILE_SHUTTLE) + smoothing_groups = list(SMOOTH_GROUP_WINDOW_FULLTILE_SHUTTLE, SMOOTH_GROUP_SHUTTLE_PARTS) canSmoothWith = list(SMOOTH_GROUP_WINDOW_FULLTILE_SHUTTLE) explosion_block = 3 glass_type = /obj/item/stack/sheet/titaniumglass @@ -754,7 +754,7 @@ heat_resistance = 1600 armor = list(MELEE = 95, BULLET = 0, LASER = 0, ENERGY = 0, BOMB = 50, BIO = 0, FIRE = 80, ACID = 100) smoothing_flags = SMOOTH_BITMASK - smoothing_groups = list(SMOOTH_GROUP_SHUTTLE_PARTS, SMOOTH_GROUP_WINDOW_FULLTILE_PLASTITANIUM) + smoothing_groups = list(SMOOTH_GROUP_WINDOW_FULLTILE_PLASTITANIUM, SMOOTH_GROUP_SHUTTLE_PARTS) canSmoothWith = list(SMOOTH_GROUP_WINDOW_FULLTILE_PLASTITANIUM) explosion_block = 3 damage_deflection = 21 //The same as reinforced plasma windows.3 diff --git a/code/game/turfs/closed/_closed.dm b/code/game/turfs/closed/_closed.dm index e722e8a57f3..7f12b5481b1 100644 --- a/code/game/turfs/closed/_closed.dm +++ b/code/game/turfs/closed/_closed.dm @@ -124,7 +124,7 @@ INITIALIZE_IMMEDIATE(/turf/closed/indestructible/splashscreen) icon_state = "reinforced_wall-0" base_icon_state = "reinforced_wall" smoothing_flags = SMOOTH_BITMASK - smoothing_groups = list(SMOOTH_GROUP_CLOSED_TURFS, SMOOTH_GROUP_WALLS) + smoothing_groups = list(SMOOTH_GROUP_WALLS, SMOOTH_GROUP_CLOSED_TURFS) // SKYRAT EDIT CHANGE - Sorting them because /tg/ forgot to canSmoothWith = list(SMOOTH_GROUP_WALLS) @@ -141,8 +141,8 @@ INITIALIZE_IMMEDIATE(/turf/closed/indestructible/splashscreen) icon_state = "plastitanium_wall-0" base_icon_state = "plastitanium_wall" smoothing_flags = SMOOTH_BITMASK - smoothing_groups = list(SMOOTH_GROUP_CLOSED_TURFS, SMOOTH_GROUP_WALLS, SMOOTH_GROUP_SYNDICATE_WALLS) - canSmoothWith = list(SMOOTH_GROUP_SYNDICATE_WALLS, SMOOTH_GROUP_PLASTITANIUM_WALLS, SMOOTH_GROUP_AIRLOCK, SMOOTH_GROUP_SHUTTLE_PARTS) + smoothing_groups = list(SMOOTH_GROUP_WALLS, SMOOTH_GROUP_CLOSED_TURFS, SMOOTH_GROUP_SYNDICATE_WALLS) // SKYRAT EDIT CHANGE - Sorting them because /tg/ forgot to + canSmoothWith = list(SMOOTH_GROUP_PLASTITANIUM_WALLS, SMOOTH_GROUP_SYNDICATE_WALLS, SMOOTH_GROUP_AIRLOCK, SMOOTH_GROUP_SHUTTLE_PARTS) // SKYRAT EDIT CHANGE - Sorting them because /tg/ forgot to /turf/closed/indestructible/riveted/uranium icon = 'icons/turf/walls/uranium_wall.dmi' @@ -157,7 +157,7 @@ INITIALIZE_IMMEDIATE(/turf/closed/indestructible/splashscreen) icon_state = "plastinum_wall-0" base_icon_state = "plastinum_wall" smoothing_flags = SMOOTH_BITMASK | SMOOTH_DIAGONAL_CORNERS - smoothing_groups = list(SMOOTH_GROUP_CLOSED_TURFS, SMOOTH_GROUP_WALLS, SMOOTH_GROUP_PLASTINUM_WALLS) + smoothing_groups = list(SMOOTH_GROUP_PLASTINUM_WALLS, SMOOTH_GROUP_WALLS, SMOOTH_GROUP_CLOSED_TURFS) // SKYRAT EDIT CHANGE - Sorting them because /tg/ forgot to canSmoothWith = list(SMOOTH_GROUP_PLASTINUM_WALLS) /turf/closed/indestructible/riveted/plastinum/nodiagonal @@ -169,7 +169,7 @@ INITIALIZE_IMMEDIATE(/turf/closed/indestructible/splashscreen) icon_state = "wood_wall-0" base_icon_state = "wood_wall" smoothing_flags = SMOOTH_BITMASK - smoothing_groups = list(SMOOTH_GROUP_CLOSED_TURFS, SMOOTH_GROUP_WALLS, SMOOTH_GROUP_WOOD_WALLS) + smoothing_groups = list(SMOOTH_GROUP_WALLS, SMOOTH_GROUP_WOOD_WALLS, SMOOTH_GROUP_CLOSED_TURFS) // SKYRAT EDIT CHANGE - Sorting them because /tg/ forgot to. canSmoothWith = list(SMOOTH_GROUP_WOOD_WALLS) @@ -180,7 +180,7 @@ INITIALIZE_IMMEDIATE(/turf/closed/indestructible/splashscreen) icon_state = "abductor_wall-0" base_icon_state = "abductor_wall" smoothing_flags = SMOOTH_BITMASK | SMOOTH_DIAGONAL_CORNERS - smoothing_groups = list(SMOOTH_GROUP_CLOSED_TURFS, SMOOTH_GROUP_WALLS, SMOOTH_GROUP_ABDUCTOR_WALLS) + smoothing_groups = list(SMOOTH_GROUP_WALLS, SMOOTH_GROUP_ABDUCTOR_WALLS, SMOOTH_GROUP_CLOSED_TURFS) // SKYRAT EDIT CHANGE - Sorting them because /tg/ forgot to canSmoothWith = list(SMOOTH_GROUP_ABDUCTOR_WALLS) @@ -191,7 +191,7 @@ INITIALIZE_IMMEDIATE(/turf/closed/indestructible/splashscreen) icon_state = "cult_wall-0" base_icon_state = "cult_wall" smoothing_flags = SMOOTH_BITMASK - smoothing_groups = list(SMOOTH_GROUP_CLOSED_TURFS, SMOOTH_GROUP_WALLS) + smoothing_groups = list(SMOOTH_GROUP_WALLS, SMOOTH_GROUP_CLOSED_TURFS) // SKYRAT EDIT CHANGE - Sorting them because /tg/ forgot to canSmoothWith = list(SMOOTH_GROUP_WALLS) @@ -224,7 +224,7 @@ INITIALIZE_IMMEDIATE(/turf/closed/indestructible/splashscreen) base_icon_state = "plastitanium_window" opacity = FALSE smoothing_flags = SMOOTH_BITMASK - smoothing_groups = list(SMOOTH_GROUP_SHUTTLE_PARTS, SMOOTH_GROUP_WINDOW_FULLTILE_PLASTITANIUM) + smoothing_groups = list(SMOOTH_GROUP_WINDOW_FULLTILE_PLASTITANIUM, SMOOTH_GROUP_SHUTTLE_PARTS) canSmoothWith = list(SMOOTH_GROUP_WINDOW_FULLTILE_PLASTITANIUM) /turf/closed/indestructible/opsglass/Initialize(mapload) @@ -294,7 +294,7 @@ INITIALIZE_IMMEDIATE(/turf/closed/indestructible/splashscreen) icon_state = "iron_wall-0" base_icon_state = "iron_wall" smoothing_flags = SMOOTH_BITMASK - smoothing_groups = list(SMOOTH_GROUP_CLOSED_TURFS, SMOOTH_GROUP_WALLS, SMOOTH_GROUP_IRON_WALLS) + smoothing_groups = list(SMOOTH_GROUP_WALLS, SMOOTH_GROUP_IRON_WALLS, SMOOTH_GROUP_CLOSED_TURFS) // SKYRAT EDIT CHANGE - Sorting them because /tg/ forgot to canSmoothWith = list(SMOOTH_GROUP_IRON_WALLS) opacity = FALSE diff --git a/code/game/turfs/closed/wall/material_walls.dm b/code/game/turfs/closed/wall/material_walls.dm index e1de7f8a98d..701c39cf55b 100644 --- a/code/game/turfs/closed/wall/material_walls.dm +++ b/code/game/turfs/closed/wall/material_walls.dm @@ -5,7 +5,7 @@ icon_state = "materialwall-0" base_icon_state = "materialwall" smoothing_flags = SMOOTH_BITMASK - smoothing_groups = list(SMOOTH_GROUP_CLOSED_TURFS, SMOOTH_GROUP_WALLS, SMOOTH_GROUP_MATERIAL_WALLS) + smoothing_groups = list(SMOOTH_GROUP_WALLS, SMOOTH_GROUP_CLOSED_TURFS, SMOOTH_GROUP_MATERIAL_WALLS) // SKYRAT EDIT CHANGE - Sorting them because /tg/ forgot to canSmoothWith = list(SMOOTH_GROUP_MATERIAL_WALLS) rcd_memory = null material_flags = MATERIAL_EFFECTS | MATERIAL_ADD_PREFIX | MATERIAL_COLOR | MATERIAL_AFFECT_STATISTICS diff --git a/code/game/turfs/closed/wall/mineral_walls.dm b/code/game/turfs/closed/wall/mineral_walls.dm index 1d576b1a931..f50d341e7df 100644 --- a/code/game/turfs/closed/wall/mineral_walls.dm +++ b/code/game/turfs/closed/wall/mineral_walls.dm @@ -16,7 +16,7 @@ sheet_type = /obj/item/stack/sheet/mineral/gold hardness = 65 //gold is soft explosion_block = 0 //gold is a soft metal you dingus. - smoothing_groups = list(SMOOTH_GROUP_CLOSED_TURFS, SMOOTH_GROUP_WALLS, SMOOTH_GROUP_GOLD_WALLS) + smoothing_groups = list(SMOOTH_GROUP_WALLS, SMOOTH_GROUP_GOLD_WALLS, SMOOTH_GROUP_CLOSED_TURFS) // SKYRAT EDIT CHANGE - Sorting them because /tg/ forgot to canSmoothWith = list(SMOOTH_GROUP_GOLD_WALLS) custom_materials = list(/datum/material/gold = 4000) @@ -29,7 +29,7 @@ sheet_type = /obj/item/stack/sheet/mineral/silver hardness = 65 //silver is also soft according to moh's scale smoothing_flags = SMOOTH_BITMASK - smoothing_groups = list(SMOOTH_GROUP_CLOSED_TURFS, SMOOTH_GROUP_WALLS, SMOOTH_GROUP_SILVER_WALLS) + smoothing_groups = list(SMOOTH_GROUP_WALLS, SMOOTH_GROUP_SILVER_WALLS, SMOOTH_GROUP_CLOSED_TURFS) // SKYRAT EDIT CHANGE - Sorting them because /tg/ forgot to canSmoothWith = list(SMOOTH_GROUP_SILVER_WALLS) custom_materials = list(/datum/material/silver = 4000) @@ -44,7 +44,7 @@ slicing_duration = 200 //diamond wall takes twice as much time to slice explosion_block = 3 smoothing_flags = SMOOTH_BITMASK - smoothing_groups = list(SMOOTH_GROUP_CLOSED_TURFS, SMOOTH_GROUP_WALLS, SMOOTH_GROUP_DIAMOND_WALLS) + smoothing_groups = list(SMOOTH_GROUP_WALLS, SMOOTH_GROUP_DIAMOND_WALLS, SMOOTH_GROUP_CLOSED_TURFS) // SKYRAT EDIT CHANGE - Sorting them because /tg/ forgot to canSmoothWith = list(SMOOTH_GROUP_DIAMOND_WALLS) custom_materials = list(/datum/material/diamond = 4000) @@ -60,7 +60,7 @@ sheet_type = /obj/item/stack/sheet/mineral/bananium hardness = 70 //it's banana smoothing_flags = SMOOTH_BITMASK - smoothing_groups = list(SMOOTH_GROUP_CLOSED_TURFS, SMOOTH_GROUP_WALLS, SMOOTH_GROUP_BANANIUM_WALLS) + smoothing_groups = list(SMOOTH_GROUP_WALLS, SMOOTH_GROUP_BANANIUM_WALLS, SMOOTH_GROUP_CLOSED_TURFS) // SKYRAT EDIT CHANGE - Sorting them because /tg/ forgot to canSmoothWith = list(SMOOTH_GROUP_BANANIUM_WALLS) custom_materials = list(/datum/material/bananium = 4000) @@ -74,7 +74,7 @@ hardness = 50 //moh says this is apparently 6-7 on it's scale explosion_block = 0 smoothing_flags = SMOOTH_BITMASK - smoothing_groups = list(SMOOTH_GROUP_CLOSED_TURFS, SMOOTH_GROUP_WALLS, SMOOTH_GROUP_SANDSTONE_WALLS) + smoothing_groups = list(SMOOTH_GROUP_WALLS, SMOOTH_GROUP_SANDSTONE_WALLS, SMOOTH_GROUP_CLOSED_TURFS) // SKYRAT EDIT CHANGE - Sorting them because /tg/ forgot to canSmoothWith = list(SMOOTH_GROUP_SANDSTONE_WALLS) custom_materials = list(/datum/material/sandstone = 4000) @@ -88,7 +88,7 @@ sheet_type = /obj/item/stack/sheet/mineral/uranium hardness = 40 //uranium is a 6 on moh's scale smoothing_flags = SMOOTH_BITMASK - smoothing_groups = list(SMOOTH_GROUP_CLOSED_TURFS, SMOOTH_GROUP_WALLS, SMOOTH_GROUP_URANIUM_WALLS) + smoothing_groups = list(SMOOTH_GROUP_WALLS, SMOOTH_GROUP_URANIUM_WALLS, SMOOTH_GROUP_CLOSED_TURFS) // SKYRAT EDIT CHANGE - Sorting them because /tg/ forgot to canSmoothWith = list(SMOOTH_GROUP_URANIUM_WALLS) custom_materials = list(/datum/material/uranium = 4000) @@ -145,7 +145,7 @@ hardness = 70 // I'll tentatively compare it to Bismuth thermal_conductivity = 0.04 smoothing_flags = SMOOTH_BITMASK - smoothing_groups = list(SMOOTH_GROUP_CLOSED_TURFS, SMOOTH_GROUP_WALLS, SMOOTH_GROUP_PLASMA_WALLS) + smoothing_groups = list(SMOOTH_GROUP_WALLS, SMOOTH_GROUP_PLASMA_WALLS, SMOOTH_GROUP_CLOSED_TURFS) // SKYRAT EDIT CHANGE - Sorting them because /tg/ forgot to. canSmoothWith = list(SMOOTH_GROUP_PLASMA_WALLS) custom_materials = list(/datum/material/plasma = 4000) @@ -160,7 +160,7 @@ turf_flags = IS_SOLID explosion_block = 0 smoothing_flags = SMOOTH_BITMASK - smoothing_groups = list(SMOOTH_GROUP_CLOSED_TURFS, SMOOTH_GROUP_WALLS, SMOOTH_GROUP_WOOD_WALLS) + smoothing_groups = list(SMOOTH_GROUP_WALLS, SMOOTH_GROUP_WOOD_WALLS, SMOOTH_GROUP_CLOSED_TURFS) // SKYRAT EDIT CHANGE - Sorting them because /tg/ forgot to. canSmoothWith = list(SMOOTH_GROUP_WOOD_WALLS) custom_materials = list(/datum/material/wood = 4000) @@ -188,7 +188,7 @@ icon = 'icons/turf/walls/bamboo_wall.dmi' icon_state = "bamboo" smoothing_flags = SMOOTH_BITMASK - smoothing_groups = list(SMOOTH_GROUP_CLOSED_TURFS, SMOOTH_GROUP_WALLS, SMOOTH_GROUP_BAMBOO_WALLS) + smoothing_groups = list(SMOOTH_GROUP_BAMBOO_WALLS, SMOOTH_GROUP_WALLS, SMOOTH_GROUP_CLOSED_TURFS) // SKYRAT EDIT CHANGE - Sorting them because /tg/ forgot to canSmoothWith = list(SMOOTH_GROUP_BAMBOO_WALLS) sheet_type = /obj/item/stack/sheet/mineral/bamboo hardness = 80 //it's not a mineral... @@ -203,7 +203,7 @@ hardness = 60 sheet_amount = 5 smoothing_flags = SMOOTH_BITMASK - smoothing_groups = list(SMOOTH_GROUP_CLOSED_TURFS, SMOOTH_GROUP_WALLS, SMOOTH_GROUP_IRON_WALLS) + smoothing_groups = list(SMOOTH_GROUP_WALLS, SMOOTH_GROUP_IRON_WALLS, SMOOTH_GROUP_CLOSED_TURFS) // SKYRAT EDIT CHANGE - Sorting them because /tg/ forgot to canSmoothWith = list(SMOOTH_GROUP_IRON_WALLS) custom_materials = list(/datum/material/iron = 5000) @@ -238,7 +238,7 @@ slicing_duration = 200 //alien wall takes twice as much time to slice explosion_block = 3 smoothing_flags = SMOOTH_BITMASK | SMOOTH_DIAGONAL_CORNERS - smoothing_groups = list(SMOOTH_GROUP_CLOSED_TURFS, SMOOTH_GROUP_WALLS, SMOOTH_GROUP_ABDUCTOR_WALLS) + smoothing_groups = list(SMOOTH_GROUP_WALLS, SMOOTH_GROUP_ABDUCTOR_WALLS, SMOOTH_GROUP_CLOSED_TURFS) // SKYRAT EDIT CHANGE - Sorting them because /tg/ forgot to canSmoothWith = list(SMOOTH_GROUP_ABDUCTOR_WALLS) custom_materials = list(/datum/material/alloy/alien = 4000) @@ -256,7 +256,7 @@ sheet_type = /obj/item/stack/sheet/mineral/titanium hardness = 40 //6 on moh's scale smoothing_flags = SMOOTH_BITMASK | SMOOTH_DIAGONAL_CORNERS - smoothing_groups = list(SMOOTH_GROUP_CLOSED_TURFS, SMOOTH_GROUP_WALLS, SMOOTH_GROUP_TITANIUM_WALLS) + smoothing_groups = list(SMOOTH_GROUP_WALLS, SMOOTH_GROUP_TITANIUM_WALLS, SMOOTH_GROUP_CLOSED_TURFS) // SKYRAT EDIT CHANGE - Sorting them because /tg/ forgot to. canSmoothWith = list(SMOOTH_GROUP_TITANIUM_WALLS, SMOOTH_GROUP_AIRLOCK, SMOOTH_GROUP_SHUTTLE_PARTS) custom_materials = list(/datum/material/titanium = 4000) @@ -294,7 +294,7 @@ icon_state = "survival_pod_walls-0" base_icon_state = "survival_pod_walls" smoothing_flags = SMOOTH_BITMASK | SMOOTH_DIAGONAL_CORNERS - canSmoothWith = list(SMOOTH_GROUP_TITANIUM_WALLS, SMOOTH_GROUP_AIRLOCK, SMOOTH_GROUP_WINDOW_FULLTILE, SMOOTH_GROUP_SHUTTLE_PARTS) + canSmoothWith = list(SMOOTH_GROUP_TITANIUM_WALLS, SMOOTH_GROUP_WINDOW_FULLTILE, SMOOTH_GROUP_AIRLOCK, SMOOTH_GROUP_SHUTTLE_PARTS) /turf/closed/wall/mineral/titanium/survival/nodiagonal icon = 'icons/turf/walls/survival_pod_walls.dmi' @@ -303,7 +303,7 @@ smoothing_flags = SMOOTH_BITMASK /turf/closed/wall/mineral/titanium/survival/pod - smoothing_groups = list(SMOOTH_GROUP_CLOSED_TURFS, SMOOTH_GROUP_WALLS, SMOOTH_GROUP_TITANIUM_WALLS, SMOOTH_GROUP_SURVIVAL_TITANIUM_POD) + smoothing_groups = list(SMOOTH_GROUP_WALLS, SMOOTH_GROUP_TITANIUM_WALLS, SMOOTH_GROUP_SURVIVAL_TITANIUM_POD, SMOOTH_GROUP_CLOSED_TURFS) // SKYRAT EDIT CHANGE - Sorting them because /tg/ forgot to canSmoothWith = list(SMOOTH_GROUP_SURVIVAL_TITANIUM_POD) /////////////////////Plastitanium walls///////////////////// @@ -318,8 +318,8 @@ sheet_type = /obj/item/stack/sheet/mineral/plastitanium hardness = 25 //upgrade on titanium smoothing_flags = SMOOTH_BITMASK | SMOOTH_DIAGONAL_CORNERS - smoothing_groups = list(SMOOTH_GROUP_CLOSED_TURFS, SMOOTH_GROUP_WALLS, SMOOTH_GROUP_PLASTITANIUM_WALLS) - canSmoothWith = list(SMOOTH_GROUP_PLASTITANIUM_WALLS, SMOOTH_GROUP_SYNDICATE_WALLS, SMOOTH_GROUP_AIRLOCK, SMOOTH_GROUP_SHUTTLE_PARTS) + smoothing_groups = list(SMOOTH_GROUP_WALLS, SMOOTH_GROUP_PLASTITANIUM_WALLS, SMOOTH_GROUP_CLOSED_TURFS) // SKYRAT EDIT CHANGE - Sorting them because /tg/ forgot to + canSmoothWith = list(SMOOTH_GROUP_PLASTITANIUM_WALLS, SMOOTH_GROUP_SYNDICATE_WALLS, SMOOTH_GROUP_AIRLOCK, SMOOTH_GROUP_SHUTTLE_PARTS) // SKYRAT EDIT CHANGE - Sorting them because /tg/ forgot to custom_materials = list(/datum/material/alloy/plastitanium = 4000) /turf/closed/wall/mineral/plastitanium/rust_heretic_act() diff --git a/code/game/turfs/closed/wall/reinf_walls.dm b/code/game/turfs/closed/wall/reinf_walls.dm index 763f898ae1c..8dbb0741bd7 100644 --- a/code/game/turfs/closed/wall/reinf_walls.dm +++ b/code/game/turfs/closed/wall/reinf_walls.dm @@ -249,8 +249,8 @@ hardness = 25 //plastitanium turf_flags = IS_SOLID smoothing_flags = SMOOTH_BITMASK | SMOOTH_DIAGONAL_CORNERS - smoothing_groups = list(SMOOTH_GROUP_CLOSED_TURFS, SMOOTH_GROUP_WALLS, SMOOTH_GROUP_SYNDICATE_WALLS) - canSmoothWith = list(SMOOTH_GROUP_SYNDICATE_WALLS, SMOOTH_GROUP_PLASTITANIUM_WALLS, SMOOTH_GROUP_AIRLOCK, SMOOTH_GROUP_SHUTTLE_PARTS) + smoothing_groups = list(SMOOTH_GROUP_WALLS, SMOOTH_GROUP_CLOSED_TURFS, SMOOTH_GROUP_SYNDICATE_WALLS) // SKYRAT EDIT CHANGE - Sorting them because /tg/ forgot to + canSmoothWith = list(SMOOTH_GROUP_PLASTITANIUM_WALLS, SMOOTH_GROUP_SYNDICATE_WALLS, SMOOTH_GROUP_AIRLOCK, SMOOTH_GROUP_SHUTTLE_PARTS) // SKYRAT EDIT CHANGE - Sorting them because /tg/ forgot to /turf/closed/wall/r_wall/syndicate/rcd_vals(mob/user, obj/item/construction/rcd/the_rcd) return FALSE diff --git a/code/game/turfs/closed/walls.dm b/code/game/turfs/closed/walls.dm index c1dd0f0a1a7..c6b83678af9 100644 --- a/code/game/turfs/closed/walls.dm +++ b/code/game/turfs/closed/walls.dm @@ -16,7 +16,7 @@ flags_ricochet = RICOCHET_HARD smoothing_flags = SMOOTH_BITMASK - smoothing_groups = list(SMOOTH_GROUP_CLOSED_TURFS, SMOOTH_GROUP_WALLS) + smoothing_groups = list(SMOOTH_GROUP_WALLS, SMOOTH_GROUP_CLOSED_TURFS) // SKYRAT EDIT CHANGE - Sorting them because /tg/ forgot to canSmoothWith = list(SMOOTH_GROUP_WALLS) rcd_memory = RCD_MEMORY_WALL diff --git a/code/game/turfs/open/floor.dm b/code/game/turfs/open/floor.dm index 6340f50412d..bc1f275ae9f 100644 --- a/code/game/turfs/open/floor.dm +++ b/code/game/turfs/open/floor.dm @@ -12,7 +12,7 @@ flags_1 = CAN_BE_DIRTY_1 | IS_SOLID turf_flags = IS_SOLID smoothing_groups = list(SMOOTH_GROUP_TURF_OPEN, SMOOTH_GROUP_OPEN_FLOOR) - canSmoothWith = list(SMOOTH_GROUP_OPEN_FLOOR, SMOOTH_GROUP_TURF_OPEN) + canSmoothWith = list(SMOOTH_GROUP_TURF_OPEN, SMOOTH_GROUP_OPEN_FLOOR) thermal_conductivity = 0.04 heat_capacity = 10000 diff --git a/code/game/turfs/open/grass.dm b/code/game/turfs/open/grass.dm index 5321841111f..f10c71829cd 100644 --- a/code/game/turfs/open/grass.dm +++ b/code/game/turfs/open/grass.dm @@ -12,7 +12,7 @@ heavyfootstep = FOOTSTEP_GENERIC_HEAVY smoothing_flags = SMOOTH_BITMASK smoothing_groups = list(SMOOTH_GROUP_TURF_OPEN, SMOOTH_GROUP_FLOOR_GRASS) - canSmoothWith = list(SMOOTH_GROUP_CLOSED_TURFS, SMOOTH_GROUP_FLOOR_GRASS) + canSmoothWith = list(SMOOTH_GROUP_FLOOR_GRASS, SMOOTH_GROUP_CLOSED_TURFS) layer = HIGH_TURF_LAYER var/damaged_dmi = 'icons/turf/floors/grass.dmi' var/smooth_icon = 'icons/turf/floors/grass.dmi' diff --git a/code/game/turfs/open/misc.dm b/code/game/turfs/open/misc.dm index e706198136e..18e146ad64e 100644 --- a/code/game/turfs/open/misc.dm +++ b/code/game/turfs/open/misc.dm @@ -16,7 +16,7 @@ underfloor_accessibility = UNDERFLOOR_INTERACTABLE smoothing_groups = list(SMOOTH_GROUP_TURF_OPEN) - canSmoothWith = list(SMOOTH_GROUP_OPEN_FLOOR, SMOOTH_GROUP_TURF_OPEN) + canSmoothWith = list(SMOOTH_GROUP_TURF_OPEN, SMOOTH_GROUP_OPEN_FLOOR) thermal_conductivity = 0.04 heat_capacity = 10000 diff --git a/code/game/turfs/turf.dm b/code/game/turfs/turf.dm index 10cfeff9788..0f8b54eee57 100644 --- a/code/game/turfs/turf.dm +++ b/code/game/turfs/turf.dm @@ -113,17 +113,25 @@ GLOBAL_LIST_EMPTY(station_turfs) levelupdate() if (length(smoothing_groups)) - sortTim(smoothing_groups) //In case it's not properly ordered, let's avoid duplicate entries with the same values. + #ifdef UNIT_TESTS + assert_sorted(smoothing_groups, "[type].smoothing_groups") + #endif + SET_BITFLAG_LIST(smoothing_groups) if (length(canSmoothWith)) - sortTim(canSmoothWith) + #ifdef UNIT_TESTS + assert_sorted(canSmoothWith, "[type].canSmoothWith") + #endif + if(canSmoothWith[length(canSmoothWith)] > MAX_S_TURF) //If the last element is higher than the maximum turf-only value, then it must scan turf contents for smoothing targets. smoothing_flags |= SMOOTH_OBJ SET_BITFLAG_LIST(canSmoothWith) if (smoothing_flags & (SMOOTH_CORNERS|SMOOTH_BITMASK)) QUEUE_SMOOTH(src) - visibilityChanged() + // visibilityChanged() will never hit any path with side effects during mapload + if (!mapload) + visibilityChanged() for(var/atom/movable/content as anything in src) Entered(content, null) @@ -149,7 +157,8 @@ GLOBAL_LIST_EMPTY(station_turfs) directional_opacity = ALL_CARDINALS // apply materials properly from the default custom_materials value - set_custom_materials(custom_materials) + if (!length(custom_materials)) + set_custom_materials(custom_materials) if(uses_integrity) atom_integrity = max_integrity diff --git a/code/modules/industrial_lift/tram_walls.dm b/code/modules/industrial_lift/tram_walls.dm index 17844dbfa5d..5a72cf678c3 100644 --- a/code/modules/industrial_lift/tram_walls.dm +++ b/code/modules/industrial_lift/tram_walls.dm @@ -13,7 +13,7 @@ opacity = FALSE max_integrity = 100 smoothing_flags = SMOOTH_BITMASK - smoothing_groups = list(SMOOTH_GROUP_CLOSED_TURFS, SMOOTH_GROUP_WALLS) + smoothing_groups = list(SMOOTH_GROUP_WALLS, SMOOTH_GROUP_CLOSED_TURFS) // SKYRAT EDIT CHANGE - Sorting them because /tg/ forgot to canSmoothWith = list(SMOOTH_GROUP_WALLS) can_be_unanchored = FALSE can_atmos_pass = ATMOS_PASS_DENSITY @@ -106,7 +106,7 @@ mineral = /obj/item/stack/sheet/mineral/gold tram_wall_type = /obj/structure/tramwall/gold explosion_block = 0 //gold is a soft metal you dingus. - smoothing_groups = list(SMOOTH_GROUP_CLOSED_TURFS, SMOOTH_GROUP_WALLS, SMOOTH_GROUP_GOLD_WALLS) + smoothing_groups = list(SMOOTH_GROUP_WALLS, SMOOTH_GROUP_GOLD_WALLS, SMOOTH_GROUP_CLOSED_TURFS) // SKYRAT EDIT CHANGE - Sorting them because /tg/ forgot to canSmoothWith = list(SMOOTH_GROUP_GOLD_WALLS) custom_materials = list(/datum/material/gold = 4000) @@ -119,7 +119,7 @@ mineral = /obj/item/stack/sheet/mineral/silver tram_wall_type = /obj/structure/tramwall/silver smoothing_flags = SMOOTH_BITMASK - smoothing_groups = list(SMOOTH_GROUP_CLOSED_TURFS, SMOOTH_GROUP_WALLS, SMOOTH_GROUP_SILVER_WALLS) + smoothing_groups = list(SMOOTH_GROUP_WALLS, SMOOTH_GROUP_SILVER_WALLS, SMOOTH_GROUP_CLOSED_TURFS) // SKYRAT EDIT CHANGE - Sorting them because /tg/ forgot to canSmoothWith = list(SMOOTH_GROUP_SILVER_WALLS) custom_materials = list(/datum/material/silver = 4000) @@ -135,7 +135,7 @@ max_integrity = 800 explosion_block = 3 smoothing_flags = SMOOTH_BITMASK - smoothing_groups = list(SMOOTH_GROUP_CLOSED_TURFS, SMOOTH_GROUP_WALLS, SMOOTH_GROUP_DIAMOND_WALLS) + smoothing_groups = list(SMOOTH_GROUP_WALLS, SMOOTH_GROUP_DIAMOND_WALLS, SMOOTH_GROUP_CLOSED_TURFS) // SKYRAT EDIT CHANGE - Sorting them because /tg/ forgot to canSmoothWith = list(SMOOTH_GROUP_DIAMOND_WALLS) custom_materials = list(/datum/material/diamond = 4000) @@ -148,7 +148,7 @@ mineral = /obj/item/stack/sheet/mineral/bananium tram_wall_type = /obj/structure/tramwall/bananium smoothing_flags = SMOOTH_BITMASK - smoothing_groups = list(SMOOTH_GROUP_CLOSED_TURFS, SMOOTH_GROUP_WALLS, SMOOTH_GROUP_BANANIUM_WALLS) + smoothing_groups = list(SMOOTH_GROUP_WALLS, SMOOTH_GROUP_BANANIUM_WALLS, SMOOTH_GROUP_CLOSED_TURFS) // SKYRAT EDIT CHANGE - Sorting them because /tg/ forgot to canSmoothWith = list(SMOOTH_GROUP_BANANIUM_WALLS) custom_materials = list(/datum/material/bananium = 4000) @@ -162,7 +162,7 @@ tram_wall_type = /obj/structure/tramwall/sandstone explosion_block = 0 smoothing_flags = SMOOTH_BITMASK - smoothing_groups = list(SMOOTH_GROUP_CLOSED_TURFS, SMOOTH_GROUP_WALLS, SMOOTH_GROUP_SANDSTONE_WALLS) + smoothing_groups = list(SMOOTH_GROUP_WALLS, SMOOTH_GROUP_SANDSTONE_WALLS, SMOOTH_GROUP_CLOSED_TURFS) // SKYRAT EDIT CHANGE - Sorting them because /tg/ forgot to canSmoothWith = list(SMOOTH_GROUP_SANDSTONE_WALLS) custom_materials = list(/datum/material/sandstone = 4000) @@ -176,7 +176,7 @@ mineral = /obj/item/stack/sheet/mineral/uranium tram_wall_type = /obj/structure/tramwall/uranium smoothing_flags = SMOOTH_BITMASK - smoothing_groups = list(SMOOTH_GROUP_CLOSED_TURFS, SMOOTH_GROUP_WALLS, SMOOTH_GROUP_URANIUM_WALLS) + smoothing_groups = list(SMOOTH_GROUP_WALLS, SMOOTH_GROUP_URANIUM_WALLS, SMOOTH_GROUP_CLOSED_TURFS) // SKYRAT EDIT CHANGE - Sorting them because /tg/ forgot to canSmoothWith = list(SMOOTH_GROUP_URANIUM_WALLS) custom_materials = list(/datum/material/uranium = 4000) @@ -221,7 +221,7 @@ mineral = /obj/item/stack/sheet/mineral/plasma tram_wall_type = /obj/structure/tramwall/plasma smoothing_flags = SMOOTH_BITMASK - smoothing_groups = list(SMOOTH_GROUP_CLOSED_TURFS, SMOOTH_GROUP_WALLS, SMOOTH_GROUP_PLASMA_WALLS) + smoothing_groups = list(SMOOTH_GROUP_WALLS, SMOOTH_GROUP_PLASMA_WALLS, SMOOTH_GROUP_CLOSED_TURFS) // SKYRAT EDIT CHANGE - Sorting them because /tg/ forgot to canSmoothWith = list(SMOOTH_GROUP_PLASMA_WALLS) custom_materials = list(/datum/material/plasma = 4000) @@ -235,7 +235,7 @@ tram_wall_type = /obj/structure/tramwall/wood explosion_block = 0 smoothing_flags = SMOOTH_BITMASK - smoothing_groups = list(SMOOTH_GROUP_CLOSED_TURFS, SMOOTH_GROUP_WALLS, SMOOTH_GROUP_WOOD_WALLS) + smoothing_groups = list(SMOOTH_GROUP_WALLS, SMOOTH_GROUP_WOOD_WALLS, SMOOTH_GROUP_CLOSED_TURFS) // SKYRAT EDIT CHANGE - Sorting them because /tg/ forgot to canSmoothWith = list(SMOOTH_GROUP_WOOD_WALLS) custom_materials = list(/datum/material/wood = 4000) @@ -255,7 +255,7 @@ icon = 'icons/turf/walls/bamboo_wall.dmi' icon_state = "bamboo" smoothing_flags = SMOOTH_BITMASK - smoothing_groups = list(SMOOTH_GROUP_CLOSED_TURFS, SMOOTH_GROUP_WALLS, SMOOTH_GROUP_BAMBOO_WALLS) + smoothing_groups = list(SMOOTH_GROUP_BAMBOO_WALLS, SMOOTH_GROUP_WALLS, SMOOTH_GROUP_CLOSED_TURFS) // SKYRAT EDIT CHANGE - Sorting them because /tg/ forgot to canSmoothWith = list(SMOOTH_GROUP_BAMBOO_WALLS) mineral = /obj/item/stack/sheet/mineral/bamboo tram_wall_type = /obj/structure/tramwall/bamboo @@ -270,7 +270,7 @@ mineral_amount = 5 tram_wall_type = /obj/structure/tramwall/iron smoothing_flags = SMOOTH_BITMASK - smoothing_groups = list(SMOOTH_GROUP_CLOSED_TURFS, SMOOTH_GROUP_WALLS, SMOOTH_GROUP_IRON_WALLS) + smoothing_groups = list(SMOOTH_GROUP_WALLS, SMOOTH_GROUP_IRON_WALLS, SMOOTH_GROUP_CLOSED_TURFS) // SKYRAT EDIT CHANGE - Sorting them because /tg/ forgot to canSmoothWith = list(SMOOTH_GROUP_IRON_WALLS) custom_materials = list(/datum/material/iron = 5000) @@ -285,7 +285,7 @@ slicing_duration = 200 //alien wall takes twice as much time to slice explosion_block = 3 smoothing_flags = SMOOTH_BITMASK - smoothing_groups = list(SMOOTH_GROUP_CLOSED_TURFS, SMOOTH_GROUP_WALLS, SMOOTH_GROUP_ABDUCTOR_WALLS) + smoothing_groups = list(SMOOTH_GROUP_WALLS, SMOOTH_GROUP_ABDUCTOR_WALLS, SMOOTH_GROUP_CLOSED_TURFS) // SKYRAT EDIT CHANGE - Sorting them because /tg/ forgot to canSmoothWith = list(SMOOTH_GROUP_ABDUCTOR_WALLS) custom_materials = list(/datum/material/alloy/alien = 4000) @@ -296,7 +296,7 @@ icon_state = "materialwall-0" base_icon_state = "materialwall" smoothing_flags = SMOOTH_BITMASK - smoothing_groups = list(SMOOTH_GROUP_CLOSED_TURFS, SMOOTH_GROUP_WALLS, SMOOTH_GROUP_MATERIAL_WALLS) + smoothing_groups = list(SMOOTH_GROUP_WALLS, SMOOTH_GROUP_CLOSED_TURFS, SMOOTH_GROUP_MATERIAL_WALLS) // SKYRAT EDIT CHANGE - Sorting them because /tg/ forgot to canSmoothWith = list(SMOOTH_GROUP_MATERIAL_WALLS) material_flags = MATERIAL_EFFECTS | MATERIAL_ADD_PREFIX | MATERIAL_COLOR | MATERIAL_AFFECT_STATISTICS diff --git a/code/modules/mining/equipment/survival_pod.dm b/code/modules/mining/equipment/survival_pod.dm index 5b3f319b506..1ab338d8b1c 100644 --- a/code/modules/mining/equipment/survival_pod.dm +++ b/code/modules/mining/equipment/survival_pod.dm @@ -88,7 +88,7 @@ icon_state = "pod_window-0" base_icon_state = "pod_window" smoothing_flags = SMOOTH_BITMASK - smoothing_groups = list(SMOOTH_GROUP_SHUTTLE_PARTS, SMOOTH_GROUP_SURVIVAL_TITANIUM_POD) + smoothing_groups = list(SMOOTH_GROUP_SURVIVAL_TITANIUM_POD, SMOOTH_GROUP_SHUTTLE_PARTS) canSmoothWith = list(SMOOTH_GROUP_SURVIVAL_TITANIUM_POD) /obj/structure/window/reinforced/shuttle/survival_pod/spawner/north @@ -111,7 +111,7 @@ icon = 'icons/obj/doors/airlocks/survival/survival.dmi' overlays_file = 'icons/obj/doors/airlocks/survival/survival_overlays.dmi' assemblytype = /obj/structure/door_assembly/door_assembly_pod - smoothing_groups = list(SMOOTH_GROUP_AIRLOCK, SMOOTH_GROUP_SURVIVAL_TITANIUM_POD) + smoothing_groups = list(SMOOTH_GROUP_SURVIVAL_TITANIUM_POD, SMOOTH_GROUP_AIRLOCK) /obj/machinery/door/airlock/survival_pod/glass opacity = FALSE diff --git a/modular_skyrat/modules/aesthetics/windows/code/windows.dm b/modular_skyrat/modules/aesthetics/windows/code/windows.dm index a73526951f1..cee29ce0895 100644 --- a/modular_skyrat/modules/aesthetics/windows/code/windows.dm +++ b/modular_skyrat/modules/aesthetics/windows/code/windows.dm @@ -1,27 +1,27 @@ /obj/structure/window/fulltile icon = 'modular_skyrat/modules/aesthetics/windows/icons/window.dmi' - canSmoothWith = list(SMOOTH_GROUP_WINDOW_FULLTILE, SMOOTH_GROUP_WALLS, SMOOTH_GROUP_AIRLOCK) + canSmoothWith = list(SMOOTH_GROUP_WALLS, SMOOTH_GROUP_WINDOW_FULLTILE, SMOOTH_GROUP_AIRLOCK) /obj/structure/window/reinforced/fulltile icon = 'modular_skyrat/modules/aesthetics/windows/icons/r_window.dmi' - canSmoothWith = list(SMOOTH_GROUP_WINDOW_FULLTILE, SMOOTH_GROUP_WALLS, SMOOTH_GROUP_AIRLOCK) + canSmoothWith = list(SMOOTH_GROUP_WALLS, SMOOTH_GROUP_WINDOW_FULLTILE, SMOOTH_GROUP_AIRLOCK) /obj/structure/window/reinforced/tinted/fulltile icon = 'modular_skyrat/modules/aesthetics/windows/icons/r_window_tinted.dmi' icon_state = "reinforced_window-0" base_icon_state = "reinforced_window" - canSmoothWith = list(SMOOTH_GROUP_WINDOW_FULLTILE, SMOOTH_GROUP_WALLS, SMOOTH_GROUP_AIRLOCK) + canSmoothWith = list(SMOOTH_GROUP_WALLS, SMOOTH_GROUP_WINDOW_FULLTILE, SMOOTH_GROUP_AIRLOCK) /obj/structure/window/plasma/fulltile icon = 'modular_skyrat/modules/aesthetics/windows/icons/window_plasma.dmi' icon_state = "window-0" base_icon_state = "window" - canSmoothWith = list(SMOOTH_GROUP_WINDOW_FULLTILE, SMOOTH_GROUP_WALLS, SMOOTH_GROUP_AIRLOCK) + canSmoothWith = list(SMOOTH_GROUP_WALLS, SMOOTH_GROUP_WINDOW_FULLTILE, SMOOTH_GROUP_AIRLOCK) /obj/structure/window/reinforced/plasma/fulltile icon = 'modular_skyrat/modules/aesthetics/windows/icons/r_window_plasma.dmi' icon_state = "reinforced_window-0" base_icon_state = "reinforced_window" - canSmoothWith = list(SMOOTH_GROUP_WINDOW_FULLTILE, SMOOTH_GROUP_WALLS, SMOOTH_GROUP_AIRLOCK) + canSmoothWith = list(SMOOTH_GROUP_WALLS, SMOOTH_GROUP_WINDOW_FULLTILE, SMOOTH_GROUP_AIRLOCK) /obj/structure/window/reinforced/fulltile/ice diff --git a/modular_skyrat/modules/assault_operatives/code/areas.dm b/modular_skyrat/modules/assault_operatives/code/areas.dm index 3b628947c0b..0ffb4915333 100644 --- a/modular_skyrat/modules/assault_operatives/code/areas.dm +++ b/modular_skyrat/modules/assault_operatives/code/areas.dm @@ -50,7 +50,7 @@ smoothing_groups = list(SMOOTH_GROUP_SHUTTERS) /turf/closed/wall/r_wall/syndicate/cruiser - canSmoothWith = list(SMOOTH_GROUP_SYNDICATE_WALLS, SMOOTH_GROUP_PLASTITANIUM_WALLS, SMOOTH_GROUP_AIRLOCK, SMOOTH_GROUP_SHUTTLE_PARTS, SMOOTH_GROUP_SHUTTERS) + canSmoothWith = list(SMOOTH_GROUP_PLASTITANIUM_WALLS, SMOOTH_GROUP_SYNDICATE_WALLS, SMOOTH_GROUP_AIRLOCK, SMOOTH_GROUP_SHUTTLE_PARTS, SMOOTH_GROUP_SHUTTERS) /obj/effect/landmark/start/assaultop name = "assaultop" diff --git a/modular_skyrat/modules/central_command_module/code/obj/wall.dm b/modular_skyrat/modules/central_command_module/code/obj/wall.dm index 5657c55747b..19b123bc95e 100644 --- a/modular_skyrat/modules/central_command_module/code/obj/wall.dm +++ b/modular_skyrat/modules/central_command_module/code/obj/wall.dm @@ -11,7 +11,7 @@ flags_1 = CAN_BE_DIRTY_1 flags_ricochet = RICOCHET_SHINY | RICOCHET_HARD smoothing_flags = SMOOTH_BITMASK | SMOOTH_DIAGONAL_CORNERS - smoothing_groups = list(SMOOTH_GROUP_CLOSED_TURFS, SMOOTH_GROUP_WALLS, SMOOTH_GROUP_TITANIUM_WALLS) + smoothing_groups = list(SMOOTH_GROUP_WALLS, SMOOTH_GROUP_TITANIUM_WALLS, SMOOTH_GROUP_CLOSED_TURFS) canSmoothWith = list(SMOOTH_GROUP_TITANIUM_WALLS, SMOOTH_GROUP_AIRLOCK, SMOOTH_GROUP_SHUTTLE_PARTS) /turf/closed/indestructible/titanium/nodiagonal diff --git a/modular_skyrat/modules/liquids/code/height_floors.dm b/modular_skyrat/modules/liquids/code/height_floors.dm index 37675d52220..4a88d29c121 100644 --- a/modular_skyrat/modules/liquids/code/height_floors.dm +++ b/modular_skyrat/modules/liquids/code/height_floors.dm @@ -38,8 +38,8 @@ icon_state = "elevated_plasteel-0" base_icon_state = "elevated_plasteel" smoothing_flags = SMOOTH_BITMASK - smoothing_groups = list(SMOOTH_GROUP_CLOSED_TURFS, SMOOTH_GROUP_WALLS, SMOOTH_GROUP_ELEVATED_PLASTEEL) - canSmoothWith = list(SMOOTH_GROUP_WALLS, SMOOTH_GROUP_ELEVATED_PLASTEEL) + smoothing_groups = list(SMOOTH_GROUP_ELEVATED_PLASTEEL, SMOOTH_GROUP_WALLS, SMOOTH_GROUP_CLOSED_TURFS) + canSmoothWith = list(SMOOTH_GROUP_ELEVATED_PLASTEEL, SMOOTH_GROUP_WALLS) liquid_height = 30 turf_height = 30 @@ -59,8 +59,8 @@ icon_state = "lowered_plasteel-0" base_icon_state = "lowered_plasteel" smoothing_flags = SMOOTH_BITMASK - smoothing_groups = list(SMOOTH_GROUP_CLOSED_TURFS, SMOOTH_GROUP_WALLS, SMOOTH_GROUP_LOWERED_PLASTEEL) - canSmoothWith = list(SMOOTH_GROUP_WALLS, SMOOTH_GROUP_LOWERED_PLASTEEL) + smoothing_groups = list(SMOOTH_GROUP_LOWERED_PLASTEEL, SMOOTH_GROUP_WALLS, SMOOTH_GROUP_CLOSED_TURFS) + canSmoothWith = list(SMOOTH_GROUP_LOWERED_PLASTEEL, SMOOTH_GROUP_WALLS) liquid_height = -30 turf_height = -30 diff --git a/modular_skyrat/modules/mapping/code/spaceship_turfs.dm b/modular_skyrat/modules/mapping/code/spaceship_turfs.dm index fb8faca052b..e0f752d4b02 100644 --- a/modular_skyrat/modules/mapping/code/spaceship_turfs.dm +++ b/modular_skyrat/modules/mapping/code/spaceship_turfs.dm @@ -7,8 +7,8 @@ icon_state = "ship_walls-0" base_icon_state = "ship_walls" sheet_type = /obj/item/stack/sheet/spaceship - smoothing_groups = list(SMOOTH_GROUP_CLOSED_TURFS, SMOOTH_GROUP_WALLS, SMOOTH_GROUP_SHIPWALLS) - canSmoothWith = list(SMOOTH_GROUP_SHIPWALLS, SMOOTH_GROUP_AIRLOCK, SMOOTH_GROUP_SURVIVAL_TITANIUM_POD, SMOOTH_GROUP_SHUTTLE_PARTS) + smoothing_groups = list(SMOOTH_GROUP_WALLS, SMOOTH_GROUP_SHIPWALLS, SMOOTH_GROUP_CLOSED_TURFS) // SKYRAT EDIT CHANGE - Sorting them because /tg/ forgot to + canSmoothWith = list(SMOOTH_GROUP_SURVIVAL_TITANIUM_POD, SMOOTH_GROUP_SHIPWALLS, SMOOTH_GROUP_AIRLOCK, SMOOTH_GROUP_SHUTTLE_PARTS) /turf/closed/wall/mineral/titanium/spaceship/nodiagonal icon_state = "map-shuttle_nd" @@ -52,7 +52,7 @@ base_icon_state = "pod_window" glass_type = /obj/item/stack/sheet/spaceshipglass smoothing_flags = SMOOTH_BITMASK - smoothing_groups = list(SMOOTH_GROUP_SHUTTLE_PARTS, SMOOTH_GROUP_WINDOW_FULLTILE_SHUTTLE, SMOOTH_GROUP_SHIPWALLS) + smoothing_groups = list(SMOOTH_GROUP_SHIPWALLS, SMOOTH_GROUP_WINDOW_FULLTILE_SHUTTLE, SMOOTH_GROUP_SHUTTLE_PARTS) canSmoothWith = list(SMOOTH_GROUP_WINDOW_FULLTILE_SHUTTLE) /obj/structure/window/reinforced/shuttle/spaceship/tinted diff --git a/modular_skyrat/modules/stone/code/stone.dm b/modular_skyrat/modules/stone/code/stone.dm index c90ccd45ab1..ef74097d15b 100644 --- a/modular_skyrat/modules/stone/code/stone.dm +++ b/modular_skyrat/modules/stone/code/stone.dm @@ -72,7 +72,7 @@ GLOBAL_LIST_INIT(stone_recipes, list ( \ slicing_duration = 1.5 SECONDS //literal rock explosion_block = 2 smoothing_flags = SMOOTH_BITMASK - smoothing_groups = list(SMOOTH_GROUP_CLOSED_TURFS, SMOOTH_GROUP_WALLS, SMOOTH_GROUP_STONE_WALLS) + smoothing_groups = list(SMOOTH_GROUP_WALLS, SMOOTH_GROUP_STONE_WALLS, SMOOTH_GROUP_CLOSED_TURFS) canSmoothWith = list(SMOOTH_GROUP_STONE_WALLS) custom_materials = list(/datum/material/stone = 4000) @@ -83,7 +83,7 @@ GLOBAL_LIST_INIT(stone_recipes, list ( \ icon_state = "wall-0" base_icon_state = "wall" smoothing_flags = SMOOTH_BITMASK - smoothing_groups = list(SMOOTH_GROUP_CLOSED_TURFS, SMOOTH_GROUP_WALLS, SMOOTH_GROUP_STONE_WALLS) + smoothing_groups = list(SMOOTH_GROUP_WALLS, SMOOTH_GROUP_STONE_WALLS, SMOOTH_GROUP_CLOSED_TURFS) canSmoothWith = list(SMOOTH_GROUP_STONE_WALLS) custom_materials = list(/datum/material/stone = 4000) @@ -96,5 +96,5 @@ GLOBAL_LIST_INIT(stone_recipes, list ( \ mineral = /obj/item/stack/sheet/mineral/stone walltype = /turf/closed/wall/mineral/stone smoothing_flags = SMOOTH_BITMASK - smoothing_groups = list(SMOOTH_GROUP_CLOSED_TURFS, SMOOTH_GROUP_WALLS, SMOOTH_GROUP_STONE_WALLS) + smoothing_groups = list(SMOOTH_GROUP_WALLS, SMOOTH_GROUP_STONE_WALLS, SMOOTH_GROUP_CLOSED_TURFS) canSmoothWith = list(SMOOTH_GROUP_STONE_WALLS) diff --git a/tools/read_init_times.py b/tools/read_init_times.py index 4dca61c40f7..c95af704a0a 100644 --- a/tools/read_init_times.py +++ b/tools/read_init_times.py @@ -1,5 +1,6 @@ # When passed an `init_times.json` file (received from enabling `PROFILE_MAPLOAD_INIT_ATOM`), # and an optional max-depth level, this will output init times from worst to best. +import errno import json import sys @@ -19,4 +20,10 @@ for (type, time) in init_times.items(): init_times_per_type[type] = init_times_per_type.get(type, 0) + time for (type, time) in sorted(init_times_per_type.items(), key = lambda x: x[1], reverse = True): - print(type, time) + try: + print(type, time) + except IOError as error: + # Prevents broken pipe error if you do something like `read_init_times.py init_times.json | head` + if error.errno == errno.EPIPE: + sys.stderr.close() + sys.exit(0)