diff --git a/SQL/database_changelog.txt b/SQL/database_changelog.txt
index 6e6bd7f7ca..83bc78050d 100644
--- a/SQL/database_changelog.txt
+++ b/SQL/database_changelog.txt
@@ -2,14 +2,22 @@ Any time you make a change to the schema files, remember to increment the databa
The latest database version is 4.1; The query to update the schema revision table is:
-INSERT INTO `schema_revision` (`major`, `minor`) VALUES (4, 1);
+INSERT INTO `schema_revision` (`major`, `minor`) VALUES (4, 2);
or
-INSERT INTO `SS13_schema_revision` (`major`, `minor`) VALUES (4, 1);
+INSERT INTO `SS13_schema_revision` (`major`, `minor`) VALUES (4, 2);
In any query remember to add a prefix to the table names if you use one.
----------------------------------------------------
+Version 4.2, 17 April 2018, by Jordie0608
+Modified table 'admin', adding the columns 'round_id' and 'target'
+ALTER TABLE `admin_log`
+ ADD COLUMN `round_id` INT UNSIGNED NOT NULL AFTER `datetime`,
+ ADD COLUMN `target` VARCHAR(32) NOT NULL AFTER `operation`;
+
+----------------------------------------------------
+
Version 4.1, 3 February 2018, by Jordie0608
Modified tables 'admin', 'admin_log' and 'admin_rank', removing unnecessary columns and adding support for excluding rights flags from admin ranks.
This change was made to enable use of sql-based admin loading.
@@ -41,7 +49,6 @@ ALTER TABLE `admin_ranks`
DROP PRIMARY KEY,
ADD PRIMARY KEY (`rank`);
-
----------------------------------------------------
Version 4.0, 12 November 2017, by Jordie0608
diff --git a/SQL/tgstation_schema.sql b/SQL/tgstation_schema.sql
index ddd31a7e80..92411ea895 100644
--- a/SQL/tgstation_schema.sql
+++ b/SQL/tgstation_schema.sql
@@ -33,9 +33,11 @@ DROP TABLE IF EXISTS `admin_log`;
CREATE TABLE `admin_log` (
`id` int(11) NOT NULL AUTO_INCREMENT,
`datetime` datetime NOT NULL,
+ `round_id` int(11) unsigned NOT NULL,
`adminckey` varchar(32) NOT NULL,
`adminip` int(10) unsigned NOT NULL,
`operation` enum('add admin','remove admin','change admin rank','add rank','remove rank','change rank flags') NOT NULL,
+ `target` varchar(32) NOT NULL,
`log` varchar(1000) NOT NULL,
PRIMARY KEY (`id`)
) ENGINE=InnoDB DEFAULT CHARSET=latin1;
diff --git a/SQL/tgstation_schema_prefixed.sql b/SQL/tgstation_schema_prefixed.sql
index 01e0ed150b..de9d67e335 100644
--- a/SQL/tgstation_schema_prefixed.sql
+++ b/SQL/tgstation_schema_prefixed.sql
@@ -33,9 +33,11 @@ DROP TABLE IF EXISTS `SS13_admin_log`;
CREATE TABLE `SS13_admin_log` (
`id` int(11) NOT NULL AUTO_INCREMENT,
`datetime` datetime NOT NULL,
+ `round_id` int(11) unsigned NOT NULL,
`adminckey` varchar(32) NOT NULL,
`adminip` int(10) unsigned NOT NULL,
`operation` enum('add admin','remove admin','change admin rank','add rank','remove rank','change rank flags') NOT NULL,
+ `target` varchar(32) NOT NULL,
`log` varchar(1000) NOT NULL,
PRIMARY KEY (`id`)
) ENGINE=InnoDB DEFAULT CHARSET=latin1;
diff --git a/code/__DEFINES/atmospherics.dm b/code/__DEFINES/atmospherics.dm
index a1a1a25724..a05aaf3265 100644
--- a/code/__DEFINES/atmospherics.dm
+++ b/code/__DEFINES/atmospherics.dm
@@ -56,6 +56,8 @@
#define FIRE_SPREAD_RADIOSITY_SCALE 0.85
#define FIRE_GROWTH_RATE 40000 //For small fires
#define PLASMA_MINIMUM_BURN_TEMPERATURE (100+T0C)
+#define PLASMA_UPPER_TEMPERATURE (1370+T0C)
+#define PLASMA_OXYGEN_FULLBURN 10
//GASES
#define MIN_TOXIC_GAS_DAMAGE 1
diff --git a/code/__DEFINES/flags.dm b/code/__DEFINES/flags.dm
index f871ac6a44..8513f40577 100644
--- a/code/__DEFINES/flags.dm
+++ b/code/__DEFINES/flags.dm
@@ -10,13 +10,9 @@ GLOBAL_LIST_INIT(bitflags, list(1, 2, 4, 8, 16, 32, 64, 128, 256, 512, 1024, 204
#define DF_USE_TAG (1<<0)
#define DF_VAR_EDITED (1<<1)
-//FLAGS BITMASK
-#define STOPSPRESSUREDMAGE_1 (1<<0) //This flag is used on the flags_1 variable for SUIT and HEAD items which stop pressure damage. Note that the flag 1 was previous used as ONBACK, so it is possible for some code to use (flags & 1) when checking if something can be put on your back. Replace this code with (inv_flags & SLOT_BACK) if you see it anywhere
-//To successfully stop you taking all pressure damage you must have both a suit and head item with this flag.
-
#define NODROP_1 (1<<1) // This flag makes it so that an item literally cannot be removed at all, or at least that's how it should be. Only deleted.
#define NOBLUDGEON_1 (1<<2) // when an item has this it produces no "X has been hit by Y with Z" message in the default attackby()
-#define MASKINTERNALS_1 (1<<3) // mask allows internals
+
#define HEAR_1 (1<<4) // This flag is what recursive_hear_check() uses to determine wether to add an item to the hearer list or not.
#define CHECK_RICOCHET_1 (1<<5) // Projectiels will check ricochet on things impacted that have this.
#define CONDUCT_1 (1<<6) // conducts electricity (metal etc.)
@@ -25,11 +21,6 @@ GLOBAL_LIST_INIT(bitflags, list(1, 2, 4, 8, 16, 32, 64, 128, 256, 512, 1024, 204
#define OVERLAY_QUEUED_1 (1<<8) // atom queued to SSoverlay
#define ON_BORDER_1 (1<<9) // item has priority to check when entering or leaving
-#define NOSLIP_1 (1<<10) //prevents from slipping on wet floors, in space etc
-
-// BLOCK_GAS_SMOKE_EFFECT_1 only used in masks at the moment.
-#define BLOCK_GAS_SMOKE_EFFECT_1 (1<<12) // blocks the effect that chemical clouds would have on a mob --glasses, mask and helmets ONLY!
-#define THICKMATERIAL_1 (1<<13) //prevents syringes, parapens and hypos if the external suit or helmet (if targeting head) has this flag. Example: space suits, biosuit, bombsuits, thick suits that cover your body.
#define DROPDEL_1 (1<<14) // When dropped, it calls qdel on itself
#define PREVENT_CLICK_UNDER_1 (1<<15) //Prevent clicking things below it on the same turf eg. doors/ fulltile windows
@@ -57,9 +48,6 @@ GLOBAL_LIST_INIT(bitflags, list(1, 2, 4, 8, 16, 32, 64, 128, 256, 512, 1024, 204
// Stops you from putting things like an RCD or other items into an ORM or protolathe for materials.
#define NO_MAT_REDEMPTION_2 (1<<10)
-// LAVA_PROTECT used on the flags_2 variable for both SUIT and HEAD items, and stops lava damage. Must be present in both to stop lava damage.
-#define LAVA_PROTECT_2 (1<<11)
-
//turf-only flags
#define NOJAUNT_1 (1<<0)
#define UNUSED_TRANSIT_TURF_1 (1<<1)
diff --git a/code/__DEFINES/inventory.dm b/code/__DEFINES/inventory.dm
index beea132890..7ad5041344 100644
--- a/code/__DEFINES/inventory.dm
+++ b/code/__DEFINES/inventory.dm
@@ -14,76 +14,76 @@
#define STORAGE_VIEW_DEPTH 2
//ITEM INVENTORY SLOT BITMASKS
-#define SLOT_OCLOTHING (1<<0)
-#define SLOT_ICLOTHING (1<<1)
-#define SLOT_GLOVES (1<<2)
-#define SLOT_EYES (1<<3)
-#define SLOT_EARS (1<<4)
-#define SLOT_MASK (1<<5)
-#define SLOT_HEAD (1<<6)
-#define SLOT_FEET (1<<7)
-#define SLOT_ID (1<<8)
-#define SLOT_BELT (1<<9)
-#define SLOT_BACK (1<<10)
-#define SLOT_POCKET (1<<11) // this is to allow items with a w_class of WEIGHT_CLASS_NORMAL or WEIGHT_CLASS_BULKY to fit in pockets.
-#define SLOT_DENYPOCKET (1<<12) // this is to deny items with a w_class of WEIGHT_CLASS_SMALL or WEIGHT_CLASS_TINY to fit in pockets.
-#define SLOT_NECK (1<<13)
+#define ITEM_SLOT_OCLOTHING (1<<0)
+#define ITEM_SLOT_ICLOTHING (1<<1)
+#define ITEM_SLOT_GLOVES (1<<2)
+#define ITEM_SLOT_EYES (1<<3)
+#define ITEM_SLOT_EARS (1<<4)
+#define ITEM_SLOT_MASK (1<<5)
+#define ITEM_SLOT_HEAD (1<<6)
+#define ITEM_SLOT_FEET (1<<7)
+#define ITEM_SLOT_ID (1<<8)
+#define ITEM_SLOT_BELT (1<<9)
+#define ITEM_SLOT_BACK (1<<10)
+#define ITEM_SLOT_POCKET (1<<11) // this is to allow items with a w_class of WEIGHT_CLASS_NORMAL or WEIGHT_CLASS_BULKY to fit in pockets.
+#define ITEM_SLOT_DENYPOCKET (1<<12) // this is to deny items with a w_class of WEIGHT_CLASS_SMALL or WEIGHT_CLASS_TINY to fit in pockets.
+#define ITEM_SLOT_NECK (1<<13)
//SLOTS
-#define slot_back 1
-#define slot_wear_mask 2
-#define slot_handcuffed 3
-#define slot_hands 4 //wherever you provide a slot for hands you provide slot_hands
- //slot_hands as a slot will pick ANY available hand
-#define slot_belt 5
-#define slot_wear_id 6
-#define slot_ears 7
-#define slot_glasses 8
-#define slot_gloves 9
-#define slot_neck 10
-#define slot_head 11
-#define slot_shoes 12
-#define slot_wear_suit 13
-#define slot_w_uniform 14
-#define slot_l_store 15
-#define slot_r_store 16
-#define slot_s_store 17
-#define slot_in_backpack 18
-#define slot_legcuffed 19
-#define slot_generic_dextrous_storage 20
+#define SLOT_BACK 1
+#define SLOT_WEAR_MASK 2
+#define SLOT_HANDCUFFED 3
+#define SLOT_HANDS 4 //wherever you provide a slot for hands you provide SLOT_HANDS
+ //SLOT_HANDS as a slot will pick ANY available hand
+#define SLOT_BELT 5
+#define SLOT_WEAR_ID 6
+#define SLOT_EARS 7
+#define SLOT_GLASSES 8
+#define SLOT_GLOVES 9
+#define SLOT_NECK 10
+#define SLOT_HEAD 11
+#define SLOT_SHOES 12
+#define SLOT_WEAR_SUIT 13
+#define SLOT_W_UNIFORM 14
+#define SLOT_L_STORE 15
+#define SLOT_R_STORE 16
+#define SLOT_S_STORE 17
+#define SLOT_IN_BACKPACK 18
+#define SLOT_LEGCUFFED 19
+#define SLOT_GENERC_DEXTROUS_STORAGE 20
-#define slots_amt 20 // Keep this up to date!
+#define SLOTS_AMT 20 // Keep this up to date!
//I hate that this has to exist
/proc/slotdefine2slotbit(slotdefine) //Keep this up to date with the value of SLOT BITMASKS and SLOTS (the two define sections above)
. = 0
switch(slotdefine)
- if(slot_back)
- . = SLOT_BACK
- if(slot_wear_mask)
- . = SLOT_MASK
- if(slot_neck)
- . = SLOT_NECK
- if(slot_belt)
- . = SLOT_BELT
- if(slot_wear_id)
- . = SLOT_ID
- if(slot_ears)
- . = SLOT_EARS
- if(slot_glasses)
- . = SLOT_EYES
- if(slot_gloves)
- . = SLOT_GLOVES
- if(slot_head)
- . = SLOT_HEAD
- if(slot_shoes)
- . = SLOT_FEET
- if(slot_wear_suit)
- . = SLOT_OCLOTHING
- if(slot_w_uniform)
- . = SLOT_ICLOTHING
- if(slot_l_store, slot_r_store)
- . = SLOT_POCKET
+ if(SLOT_BACK)
+ . = ITEM_SLOT_BACK
+ if(SLOT_WEAR_MASK)
+ . = ITEM_SLOT_MASK
+ if(SLOT_NECK)
+ . = ITEM_SLOT_NECK
+ if(SLOT_BELT)
+ . = ITEM_SLOT_BELT
+ if(SLOT_WEAR_ID)
+ . = ITEM_SLOT_ID
+ if(SLOT_EARS)
+ . = ITEM_SLOT_EARS
+ if(SLOT_GLASSES)
+ . = ITEM_SLOT_EYES
+ if(SLOT_GLOVES)
+ . = ITEM_SLOT_GLOVES
+ if(SLOT_HEAD)
+ . = ITEM_SLOT_HEAD
+ if(SLOT_SHOES)
+ . = ITEM_SLOT_FEET
+ if(SLOT_WEAR_SUIT)
+ . = ITEM_SLOT_OCLOTHING
+ if(SLOT_W_UNIFORM)
+ . = ITEM_SLOT_ICLOTHING
+ if(SLOT_L_STORE, SLOT_R_STORE)
+ . = ITEM_SLOT_POCKET
//Bit flags for the flags_inv variable, which determine when a piece of clothing hides another. IE a helmet hiding glasses.
diff --git a/code/__DEFINES/obj_flags.dm b/code/__DEFINES/obj_flags.dm
index bfbf6f866a..1f4739491a 100644
--- a/code/__DEFINES/obj_flags.dm
+++ b/code/__DEFINES/obj_flags.dm
@@ -18,3 +18,12 @@
#define IN_INVENTORY (1<<1) //is this item equipped into an inventory slot or hand of a mob? used for tooltips
#define FORCE_STRING_OVERRIDE (1<<2) // used for tooltips
#define NEEDS_PERMIT (1<<3) //Used by security bots to determine if this item is safe for public use.
+
+// Flags for the clothing_flags var on /obj/item/clothing
+
+#define LAVAPROTECT (1<<0)
+#define STOPSPRESSUREDAMAGE (1<<1) //SUIT and HEAD items which stop pressure damage. To stop you taking all pressure damage you must have both a suit and head item with this flag.
+#define BLOCK_GAS_SMOKE_EFFECT (1<<2) // blocks the effect that chemical clouds would have on a mob --glasses, mask and helmets ONLY!
+#define MASKINTERNALS (1<<3) // mask allows internals
+#define NOSLIP (1<<4) //prevents from slipping on wet floors, in space etc
+#define THICKMATERIAL (1<<5) //prevents syringes, parapens and hypos if the external suit or helmet (if targeting head) has this flag. Example: space suits, biosuit, bombsuits, thick suits that cover your body.
diff --git a/code/__DEFINES/subsystems.dm b/code/__DEFINES/subsystems.dm
index 2b5e42e339..9b49ec2e9d 100644
--- a/code/__DEFINES/subsystems.dm
+++ b/code/__DEFINES/subsystems.dm
@@ -1,7 +1,7 @@
//Update this whenever the db schema changes
//make sure you add an update to the schema_version stable in the db changelog
#define DB_MAJOR_VERSION 4
-#define DB_MINOR_VERSION 1
+#define DB_MINOR_VERSION 2
//Timing subsystem
//Don't run if there is an identical unique timer active
@@ -82,6 +82,7 @@
// Subsystem fire priority, from lowest to highest priority
// If the subsystem isn't listed here it's either DEFAULT or PROCESS (if it's a processing subsystem child)
+#define FIRE_PRIORITY_PING 10
#define FIRE_PRIORITY_IDLE_NPC 10
#define FIRE_PRIORITY_SERVER_MAINT 10
#define FIRE_PRIORITY_RESEARCH 10
diff --git a/code/__HELPERS/pronouns.dm b/code/__HELPERS/pronouns.dm
index 801940eca1..d1add9cb4c 100644
--- a/code/__HELPERS/pronouns.dm
+++ b/code/__HELPERS/pronouns.dm
@@ -203,56 +203,56 @@
/mob/living/carbon/human/p_they(capitalized, temp_gender)
var/list/obscured = check_obscured_slots()
var/skipface = (wear_mask && (wear_mask.flags_inv & HIDEFACE)) || (head && (head.flags_inv & HIDEFACE))
- if((slot_w_uniform in obscured) && skipface)
+ if((SLOT_W_UNIFORM in obscured) && skipface)
temp_gender = PLURAL
return ..()
/mob/living/carbon/human/p_their(capitalized, temp_gender)
var/list/obscured = check_obscured_slots()
var/skipface = (wear_mask && (wear_mask.flags_inv & HIDEFACE)) || (head && (head.flags_inv & HIDEFACE))
- if((slot_w_uniform in obscured) && skipface)
+ if((SLOT_W_UNIFORM in obscured) && skipface)
temp_gender = PLURAL
return ..()
/mob/living/carbon/human/p_them(capitalized, temp_gender)
var/list/obscured = check_obscured_slots()
var/skipface = (wear_mask && (wear_mask.flags_inv & HIDEFACE)) || (head && (head.flags_inv & HIDEFACE))
- if((slot_w_uniform in obscured) && skipface)
+ if((SLOT_W_UNIFORM in obscured) && skipface)
temp_gender = PLURAL
return ..()
/mob/living/carbon/human/p_have(temp_gender)
var/list/obscured = check_obscured_slots()
var/skipface = (wear_mask && (wear_mask.flags_inv & HIDEFACE)) || (head && (head.flags_inv & HIDEFACE))
- if((slot_w_uniform in obscured) && skipface)
+ if((SLOT_W_UNIFORM in obscured) && skipface)
temp_gender = PLURAL
return ..()
/mob/living/carbon/human/p_are(temp_gender)
var/list/obscured = check_obscured_slots()
var/skipface = (wear_mask && (wear_mask.flags_inv & HIDEFACE)) || (head && (head.flags_inv & HIDEFACE))
- if((slot_w_uniform in obscured) && skipface)
+ if((SLOT_W_UNIFORM in obscured) && skipface)
temp_gender = PLURAL
return ..()
/mob/living/carbon/human/p_were(temp_gender)
var/list/obscured = check_obscured_slots()
var/skipface = (wear_mask && (wear_mask.flags_inv & HIDEFACE)) || (head && (head.flags_inv & HIDEFACE))
- if((slot_w_uniform in obscured) && skipface)
+ if((SLOT_W_UNIFORM in obscured) && skipface)
temp_gender = PLURAL
return ..()
/mob/living/carbon/human/p_do(temp_gender)
var/list/obscured = check_obscured_slots()
var/skipface = (wear_mask && (wear_mask.flags_inv & HIDEFACE)) || (head && (head.flags_inv & HIDEFACE))
- if((slot_w_uniform in obscured) && skipface)
+ if((SLOT_W_UNIFORM in obscured) && skipface)
temp_gender = PLURAL
return ..()
/mob/living/carbon/human/p_s(temp_gender)
var/list/obscured = check_obscured_slots()
var/skipface = (wear_mask && (wear_mask.flags_inv & HIDEFACE)) || (head && (head.flags_inv & HIDEFACE))
- if((slot_w_uniform in obscured) && skipface)
+ if((SLOT_W_UNIFORM in obscured) && skipface)
temp_gender = PLURAL
return ..()
diff --git a/code/__HELPERS/roundend.dm b/code/__HELPERS/roundend.dm
index fcf5a5dd4a..4a0be437c3 100644
--- a/code/__HELPERS/roundend.dm
+++ b/code/__HELPERS/roundend.dm
@@ -290,19 +290,26 @@
parts += "[GLOB.TAB]Nobody died this shift! "
return parts.Join(" ")
-/datum/controller/subsystem/ticker/proc/show_roundend_report(client/C,common_report, popcount)
- var/list/report_parts = list()
-
- report_parts += personal_report(C, popcount)
- report_parts += common_report
+/client/proc/roundend_report_file()
+ return "data/roundend_reports/[ckey].html"
+/datum/controller/subsystem/ticker/proc/show_roundend_report(client/C, previous = FALSE)
var/datum/browser/roundend_report = new(C, "roundend")
roundend_report.width = 800
roundend_report.height = 600
- roundend_report.set_content(report_parts.Join())
+ var/content
+ var/filename = C.roundend_report_file()
+ if(!previous)
+ var/list/report_parts = list(personal_report(C), GLOB.common_report)
+ content = report_parts.Join()
+ C.verbs -= /client/proc/show_previous_roundend_report
+ fdel(filename)
+ text2file(content, filename)
+ else
+ content = file2text(filename)
+ roundend_report.set_content(content)
roundend_report.stylesheets = list()
- roundend_report.add_stylesheet("roundend",'html/browser/roundend.css')
-
+ roundend_report.add_stylesheet("roundend", 'html/browser/roundend.css')
roundend_report.open(0)
/datum/controller/subsystem/ticker/proc/personal_report(client/C, popcount)
@@ -327,8 +334,6 @@
else
parts += "
"
parts += " "
- if(!GLOB.survivor_report)
- GLOB.survivor_report = survivor_report(popcount)
parts += GLOB.survivor_report
parts += "
"
@@ -336,8 +341,9 @@
/datum/controller/subsystem/ticker/proc/display_report(popcount)
GLOB.common_report = build_roundend_report()
+ GLOB.survivor_report = survivor_report(popcount)
for(var/client/C in GLOB.clients)
- show_roundend_report(C,GLOB.common_report, popcount)
+ show_roundend_report(C, FALSE)
give_show_report_button(C)
CHECK_TICK
@@ -458,7 +464,7 @@
/datum/action/report/Trigger()
if(owner && GLOB.common_report && SSticker.current_state == GAME_STATE_FINISHED)
- SSticker.show_roundend_report(owner.client,GLOB.common_report)
+ SSticker.show_roundend_report(owner.client, FALSE)
/datum/action/report/IsAvailable()
return 1
diff --git a/code/__HELPERS/type2type.dm b/code/__HELPERS/type2type.dm
index 79f6a2c007..1f788cf445 100644
--- a/code/__HELPERS/type2type.dm
+++ b/code/__HELPERS/type2type.dm
@@ -400,25 +400,25 @@
/proc/slot2body_zone(slot)
switch(slot)
- if(slot_back, slot_wear_suit, slot_w_uniform, slot_belt, slot_wear_id)
+ if(SLOT_BACK, SLOT_WEAR_SUIT, SLOT_W_UNIFORM, SLOT_BELT, SLOT_WEAR_ID)
return BODY_ZONE_CHEST
- if(slot_gloves, slot_hands, slot_handcuffed)
+ if(SLOT_GLOVES, SLOT_HANDS, SLOT_HANDCUFFED)
return pick(BODY_ZONE_PRECISE_L_HAND, BODY_ZONE_PRECISE_R_HAND)
- if(slot_head, slot_neck, slot_neck, slot_ears)
+ if(SLOT_HEAD, SLOT_NECK, SLOT_NECK, SLOT_EARS)
return BODY_ZONE_HEAD
- if(slot_wear_mask)
+ if(SLOT_WEAR_MASK)
return BODY_ZONE_PRECISE_MOUTH
- if(slot_glasses)
+ if(SLOT_GLASSES)
return BODY_ZONE_PRECISE_EYES
- if(slot_shoes)
+ if(SLOT_SHOES)
return pick(BODY_ZONE_PRECISE_R_FOOT, BODY_ZONE_PRECISE_L_FOOT)
- if(slot_legcuffed)
+ if(SLOT_LEGCUFFED)
return pick(BODY_ZONE_L_LEG, BODY_ZONE_R_LEG)
//adapted from http://www.tannerhelland.com/4435/convert-temperature-rgb-algorithm-code/
diff --git a/code/_globalvars/bitfields.dm b/code/_globalvars/bitfields.dm
index 168863708c..aad1622a52 100644
--- a/code/_globalvars/bitfields.dm
+++ b/code/_globalvars/bitfields.dm
@@ -106,17 +106,15 @@ GLOBAL_LIST_INIT(bitfields, list(
"REAGENT_NOREACT" = REAGENT_NOREACT
),
"flags_1" = list(
- "STOPSPRESSUREDMAGE_1 / NOJAUNT_1 (turfs)" = STOPSPRESSUREDMAGE_1,
+ "NOJAUNT_1" = NOJAUNT_1,
"NODROP_1 / UNUSED_TRANSIT_TURF_1 (turfs)" = NODROP_1,
"NOBLUDGEON_1 / CAN_BE_DIRTY_1 (turfs)" = NOBLUDGEON_1,
- "MASKINTERNALS_1" = MASKINTERNALS_1,
"HEAR_1 / NO_DEATHRATTLE_1 (turfs)" = HEAR_1,
"CHECK_RICOCHET_1 / NO_RUINS_1 (turfs)" = CHECK_RICOCHET_1,
"CONDUCT_1 / NO_LAVA_GEN_1" = CONDUCT_1,
"ABSTRACT_1" = ABSTRACT_1,
"NODECONSTRUCT_1" = NODECONSTRUCT_1,
"OVERLAY_QUEUED_1" = OVERLAY_QUEUED_1,
- "NOSLIP_1" = NOSLIP_1
),
"flags_2" = list(
"SLOWS_WHILE_IN_HAND_2" = SLOWS_WHILE_IN_HAND_2,
@@ -127,7 +125,14 @@ GLOBAL_LIST_INIT(bitfields, list(
"HEALS_EARS_2" = HEALS_EARS_2,
"OMNITONGUE_2" = OMNITONGUE_2,
"TESLA_IGNORE_2" = TESLA_IGNORE_2,
- "NO_MAT_REDEMPTION_2" = NO_MAT_REDEMPTION_2,
- "LAVA_PROTECT_2" = LAVA_PROTECT_2
- )
+ "NO_MAT_REDEMPTION_2" = NO_MAT_REDEMPTION_2
+ ),
+ "clothing_flags" = list(
+ "LAVAPROTECT" = LAVAPROTECT,
+ "STOPSPRESSUREDAMAGE" = STOPSPRESSUREDAMAGE,
+ "BLOCK_GAS_SMOKE_EFFECT" = BLOCK_GAS_SMOKE_EFFECT,
+ "MASKINTERNALS" = MASKINTERNALS,
+ "NOSLIP" = NOSLIP,
+ "THICKMATERIAL" = THICKMATERIAL,
+ )
))
diff --git a/code/_globalvars/lists/typecache.dm b/code/_globalvars/lists/typecache.dm
index f1e2b03790..f4e73f2994 100644
--- a/code/_globalvars/lists/typecache.dm
+++ b/code/_globalvars/lists/typecache.dm
@@ -10,3 +10,5 @@ GLOBAL_LIST_INIT(typecache_living, typecacheof(/mob/living))
GLOBAL_LIST_INIT(typecache_machine_or_structure, typecacheof(list(/obj/machinery, /obj/structure)))
GLOBAL_LIST_INIT(typecache_shuttle_area, typecacheof(/area/shuttle))
+
+GLOBAL_LIST_INIT(typecache_clothing, typecacheof(/obj/item/clothing))
diff --git a/code/_onclick/hud/drones.dm b/code/_onclick/hud/drones.dm
index b6708b266d..8e39d96bf6 100644
--- a/code/_onclick/hud/drones.dm
+++ b/code/_onclick/hud/drones.dm
@@ -8,7 +8,7 @@
inv_box.icon_state = "suit_storage"
// inv_box.icon_full = "template"
inv_box.screen_loc = ui_drone_storage
- inv_box.slot_id = slot_generic_dextrous_storage
+ inv_box.slot_id = SLOT_GENERC_DEXTROUS_STORAGE
static_inventory += inv_box
inv_box = new /obj/screen/inventory()
@@ -17,7 +17,7 @@
inv_box.icon_state = "mask"
// inv_box.icon_full = "template"
inv_box.screen_loc = ui_drone_head
- inv_box.slot_id = slot_head
+ inv_box.slot_id = SLOT_HEAD
static_inventory += inv_box
for(var/obj/screen/inventory/inv in (static_inventory + toggleable_inventory))
diff --git a/code/_onclick/hud/guardian.dm b/code/_onclick/hud/guardian.dm
index dc57c2b25c..628efbffe5 100644
--- a/code/_onclick/hud/guardian.dm
+++ b/code/_onclick/hud/guardian.dm
@@ -45,7 +45,7 @@
inv_box.icon = ui_style
inv_box.icon_state = "suit_storage"
inv_box.screen_loc = ui_id
- inv_box.slot_id = slot_generic_dextrous_storage
+ inv_box.slot_id = SLOT_GENERC_DEXTROUS_STORAGE
static_inventory += inv_box
using = new /obj/screen/guardian/Communicate()
diff --git a/code/_onclick/hud/hud.dm b/code/_onclick/hud/hud.dm
index e5de695789..e4318059d6 100644
--- a/code/_onclick/hud/hud.dm
+++ b/code/_onclick/hud/hud.dm
@@ -33,7 +33,7 @@
var/list/obj/screen/hotkeybuttons = list() //the buttons that can be used via hotkeys
var/list/infodisplay = list() //the screen objects that display mob info (health, alien plasma, etc...)
var/list/screenoverlays = list() //the screen objects used as whole screen overlays (flash, damageoverlay, etc...)
- var/list/inv_slots[slots_amt] // /obj/screen/inventory objects, ordered by their slot ID.
+ var/list/inv_slots[SLOTS_AMT] // /obj/screen/inventory objects, ordered by their slot ID.
var/list/hand_slots // /obj/screen/inventory/hand objects, assoc list of "[held_index]" = object
var/list/obj/screen/plane_master/plane_masters = list() // see "appearance_flags" in the ref, assoc list of "[plane]" = object
@@ -196,7 +196,9 @@
screenmob.client.screen -= infodisplay
for(var/thing in plane_masters)
- screenmob.client.screen += plane_masters[thing]
+ var/obj/screen/plane_master/PM = plane_masters[thing]
+ PM.backdrop(screenmob)
+ screenmob.client.screen += PM
hud_version = display_hud_version
persistent_inventory_update(screenmob)
diff --git a/code/_onclick/hud/human.dm b/code/_onclick/hud/human.dm
index 501c5fb601..2ac0f14f95 100644
--- a/code/_onclick/hud/human.dm
+++ b/code/_onclick/hud/human.dm
@@ -139,7 +139,7 @@
inv_box = new /obj/screen/inventory()
inv_box.name = "i_clothing"
inv_box.icon = ui_style
- inv_box.slot_id = slot_w_uniform
+ inv_box.slot_id = SLOT_W_UNIFORM
inv_box.icon_state = "uniform"
inv_box.screen_loc = ui_iclothing
toggleable_inventory += inv_box
@@ -147,7 +147,7 @@
inv_box = new /obj/screen/inventory()
inv_box.name = "o_clothing"
inv_box.icon = ui_style
- inv_box.slot_id = slot_wear_suit
+ inv_box.slot_id = SLOT_WEAR_SUIT
inv_box.icon_state = "suit"
inv_box.screen_loc = ui_oclothing
toggleable_inventory += inv_box
@@ -171,7 +171,7 @@
inv_box.icon = ui_style
inv_box.icon_state = "id"
inv_box.screen_loc = ui_id
- inv_box.slot_id = slot_wear_id
+ inv_box.slot_id = SLOT_WEAR_ID
static_inventory += inv_box
inv_box = new /obj/screen/inventory()
@@ -179,7 +179,7 @@
inv_box.icon = ui_style
inv_box.icon_state = "mask"
inv_box.screen_loc = ui_mask
- inv_box.slot_id = slot_wear_mask
+ inv_box.slot_id = SLOT_WEAR_MASK
toggleable_inventory += inv_box
inv_box = new /obj/screen/inventory()
@@ -187,7 +187,7 @@
inv_box.icon = ui_style
inv_box.icon_state = "neck"
inv_box.screen_loc = ui_neck
- inv_box.slot_id = slot_neck
+ inv_box.slot_id = SLOT_NECK
toggleable_inventory += inv_box
inv_box = new /obj/screen/inventory()
@@ -195,7 +195,7 @@
inv_box.icon = ui_style
inv_box.icon_state = "back"
inv_box.screen_loc = ui_back
- inv_box.slot_id = slot_back
+ inv_box.slot_id = SLOT_BACK
static_inventory += inv_box
inv_box = new /obj/screen/inventory()
@@ -203,7 +203,7 @@
inv_box.icon = ui_style
inv_box.icon_state = "pocket"
inv_box.screen_loc = ui_storage1
- inv_box.slot_id = slot_l_store
+ inv_box.slot_id = SLOT_L_STORE
static_inventory += inv_box
inv_box = new /obj/screen/inventory()
@@ -211,7 +211,7 @@
inv_box.icon = ui_style
inv_box.icon_state = "pocket"
inv_box.screen_loc = ui_storage2
- inv_box.slot_id = slot_r_store
+ inv_box.slot_id = SLOT_R_STORE
static_inventory += inv_box
inv_box = new /obj/screen/inventory()
@@ -219,7 +219,7 @@
inv_box.icon = ui_style
inv_box.icon_state = "suit_storage"
inv_box.screen_loc = ui_sstore1
- inv_box.slot_id = slot_s_store
+ inv_box.slot_id = SLOT_S_STORE
static_inventory += inv_box
using = new /obj/screen/resist()
@@ -254,7 +254,7 @@
inv_box.icon = ui_style
inv_box.icon_state = "gloves"
inv_box.screen_loc = ui_gloves
- inv_box.slot_id = slot_gloves
+ inv_box.slot_id = SLOT_GLOVES
toggleable_inventory += inv_box
inv_box = new /obj/screen/inventory()
@@ -262,7 +262,7 @@
inv_box.icon = ui_style
inv_box.icon_state = "glasses"
inv_box.screen_loc = ui_glasses
- inv_box.slot_id = slot_glasses
+ inv_box.slot_id = SLOT_GLASSES
toggleable_inventory += inv_box
inv_box = new /obj/screen/inventory()
@@ -270,7 +270,7 @@
inv_box.icon = ui_style
inv_box.icon_state = "ears"
inv_box.screen_loc = ui_ears
- inv_box.slot_id = slot_ears
+ inv_box.slot_id = SLOT_EARS
toggleable_inventory += inv_box
inv_box = new /obj/screen/inventory()
@@ -278,7 +278,7 @@
inv_box.icon = ui_style
inv_box.icon_state = "head"
inv_box.screen_loc = ui_head
- inv_box.slot_id = slot_head
+ inv_box.slot_id = SLOT_HEAD
toggleable_inventory += inv_box
inv_box = new /obj/screen/inventory()
@@ -286,7 +286,7 @@
inv_box.icon = ui_style
inv_box.icon_state = "shoes"
inv_box.screen_loc = ui_shoes
- inv_box.slot_id = slot_shoes
+ inv_box.slot_id = SLOT_SHOES
toggleable_inventory += inv_box
inv_box = new /obj/screen/inventory()
@@ -295,7 +295,7 @@
inv_box.icon_state = "belt"
// inv_box.icon_full = "template_small"
inv_box.screen_loc = ui_belt
- inv_box.slot_id = slot_belt
+ inv_box.slot_id = SLOT_BELT
static_inventory += inv_box
throw_icon = new /obj/screen/throw_catch()
diff --git a/code/_onclick/hud/monkey.dm b/code/_onclick/hud/monkey.dm
index 06dbf15cd7..c469c1ef20 100644
--- a/code/_onclick/hud/monkey.dm
+++ b/code/_onclick/hud/monkey.dm
@@ -1,155 +1,155 @@
-/datum/hud/monkey/New(mob/living/carbon/monkey/owner, ui_style = 'icons/mob/screen_midnight.dmi')
- ..()
- var/obj/screen/using
- var/obj/screen/inventory/inv_box
-
- action_intent = new /obj/screen/act_intent()
- action_intent.icon = ui_style
- action_intent.icon_state = mymob.a_intent
- action_intent.screen_loc = ui_acti
- static_inventory += action_intent
-
- using = new /obj/screen/mov_intent()
- using.icon = ui_style
- using.icon_state = (mymob.m_intent == MOVE_INTENT_RUN ? "running" : "walking")
- using.screen_loc = ui_movi
- static_inventory += using
-
- using = new/obj/screen/language_menu
- using.icon = ui_style
- static_inventory += using
-
- using = new /obj/screen/drop()
- using.icon = ui_style
- using.screen_loc = ui_drop_throw
- static_inventory += using
-
- build_hand_slots(ui_style)
-
- using = new /obj/screen/swap_hand()
- using.icon = ui_style
- using.icon_state = "swap_1_m" //extra wide!
- using.screen_loc = ui_swaphand_position(owner,1)
- static_inventory += using
-
- using = new /obj/screen/swap_hand()
- using.icon = ui_style
- using.icon_state = "swap_2"
- using.screen_loc = ui_swaphand_position(owner,2)
- static_inventory += using
-
- inv_box = new /obj/screen/inventory()
- inv_box.name = "mask"
- inv_box.icon = ui_style
- inv_box.icon_state = "mask"
-// inv_box.icon_full = "template"
- inv_box.screen_loc = ui_monkey_mask
- inv_box.slot_id = slot_wear_mask
- static_inventory += inv_box
-
- inv_box = new /obj/screen/inventory()
- inv_box.name = "neck"
- inv_box.icon = ui_style
- inv_box.icon_state = "neck"
-// inv_box.icon_full = "template"
- inv_box.screen_loc = ui_monkey_neck
- inv_box.slot_id = slot_neck
- static_inventory += inv_box
-
- inv_box = new /obj/screen/inventory()
- inv_box.name = "head"
- inv_box.icon = ui_style
- inv_box.icon_state = "head"
-// inv_box.icon_full = "template"
- inv_box.screen_loc = ui_monkey_head
- inv_box.slot_id = slot_head
- static_inventory += inv_box
-
- inv_box = new /obj/screen/inventory()
- inv_box.name = "back"
- inv_box.icon = ui_style
- inv_box.icon_state = "back"
- inv_box.screen_loc = ui_monkey_back
- inv_box.slot_id = slot_back
- static_inventory += inv_box
-
- throw_icon = new /obj/screen/throw_catch()
- throw_icon.icon = ui_style
- throw_icon.screen_loc = ui_drop_throw
- hotkeybuttons += throw_icon
-
- internals = new /obj/screen/internals()
- infodisplay += internals
-
- healths = new /obj/screen/healths()
- infodisplay += healths
-
- pull_icon = new /obj/screen/pull()
- pull_icon.icon = ui_style
- pull_icon.update_icon(mymob)
- pull_icon.screen_loc = ui_pull_resist
- static_inventory += pull_icon
-
- lingchemdisplay = new /obj/screen/ling/chems()
- infodisplay += lingchemdisplay
-
- lingstingdisplay = new /obj/screen/ling/sting()
- infodisplay += lingstingdisplay
-
-
- zone_select = new /obj/screen/zone_sel()
- zone_select.icon = ui_style
- zone_select.update_icon(mymob)
- static_inventory += zone_select
-
- mymob.client.screen = list()
-
- using = new /obj/screen/resist()
- using.icon = ui_style
- using.screen_loc = ui_pull_resist
- hotkeybuttons += using
-
- for(var/obj/screen/inventory/inv in (static_inventory + toggleable_inventory))
- if(inv.slot_id)
- inv.hud = src
- inv_slots[inv.slot_id] = inv
- inv.update_icon()
-
-/datum/hud/monkey/persistent_inventory_update()
- if(!mymob)
- return
- var/mob/living/carbon/monkey/M = mymob
-
- if(hud_shown)
- if(M.back)
- M.back.screen_loc = ui_monkey_back
- M.client.screen += M.back
- if(M.wear_mask)
- M.wear_mask.screen_loc = ui_monkey_mask
- M.client.screen += M.wear_mask
- if(M.wear_neck)
- M.wear_neck.screen_loc = ui_monkey_neck
- M.client.screen += M.wear_neck
- if(M.head)
- M.head.screen_loc = ui_monkey_head
- M.client.screen += M.head
- else
- if(M.back)
- M.back.screen_loc = null
- if(M.wear_mask)
- M.wear_mask.screen_loc = null
- if(M.head)
- M.head.screen_loc = null
-
- if(hud_version != HUD_STYLE_NOHUD)
- for(var/obj/item/I in M.held_items)
- I.screen_loc = ui_hand_position(M.get_held_index_of_item(I))
- M.client.screen += I
- else
- for(var/obj/item/I in M.held_items)
- I.screen_loc = null
- M.client.screen -= I
-
-/mob/living/carbon/monkey/create_mob_hud()
- if(client && !hud_used)
- hud_used = new /datum/hud/monkey(src, ui_style2icon(client.prefs.UI_style))
+/datum/hud/monkey/New(mob/living/carbon/monkey/owner, ui_style = 'icons/mob/screen_midnight.dmi')
+ ..()
+ var/obj/screen/using
+ var/obj/screen/inventory/inv_box
+
+ action_intent = new /obj/screen/act_intent()
+ action_intent.icon = ui_style
+ action_intent.icon_state = mymob.a_intent
+ action_intent.screen_loc = ui_acti
+ static_inventory += action_intent
+
+ using = new /obj/screen/mov_intent()
+ using.icon = ui_style
+ using.icon_state = (mymob.m_intent == MOVE_INTENT_RUN ? "running" : "walking")
+ using.screen_loc = ui_movi
+ static_inventory += using
+
+ using = new/obj/screen/language_menu
+ using.icon = ui_style
+ static_inventory += using
+
+ using = new /obj/screen/drop()
+ using.icon = ui_style
+ using.screen_loc = ui_drop_throw
+ static_inventory += using
+
+ build_hand_slots(ui_style)
+
+ using = new /obj/screen/swap_hand()
+ using.icon = ui_style
+ using.icon_state = "swap_1_m" //extra wide!
+ using.screen_loc = ui_swaphand_position(owner,1)
+ static_inventory += using
+
+ using = new /obj/screen/swap_hand()
+ using.icon = ui_style
+ using.icon_state = "swap_2"
+ using.screen_loc = ui_swaphand_position(owner,2)
+ static_inventory += using
+
+ inv_box = new /obj/screen/inventory()
+ inv_box.name = "mask"
+ inv_box.icon = ui_style
+ inv_box.icon_state = "mask"
+// inv_box.icon_full = "template"
+ inv_box.screen_loc = ui_monkey_mask
+ inv_box.slot_id = SLOT_WEAR_MASK
+ static_inventory += inv_box
+
+ inv_box = new /obj/screen/inventory()
+ inv_box.name = "neck"
+ inv_box.icon = ui_style
+ inv_box.icon_state = "neck"
+// inv_box.icon_full = "template"
+ inv_box.screen_loc = ui_monkey_neck
+ inv_box.slot_id = SLOT_NECK
+ static_inventory += inv_box
+
+ inv_box = new /obj/screen/inventory()
+ inv_box.name = "head"
+ inv_box.icon = ui_style
+ inv_box.icon_state = "head"
+// inv_box.icon_full = "template"
+ inv_box.screen_loc = ui_monkey_head
+ inv_box.slot_id = SLOT_HEAD
+ static_inventory += inv_box
+
+ inv_box = new /obj/screen/inventory()
+ inv_box.name = "back"
+ inv_box.icon = ui_style
+ inv_box.icon_state = "back"
+ inv_box.screen_loc = ui_monkey_back
+ inv_box.slot_id = SLOT_BACK
+ static_inventory += inv_box
+
+ throw_icon = new /obj/screen/throw_catch()
+ throw_icon.icon = ui_style
+ throw_icon.screen_loc = ui_drop_throw
+ hotkeybuttons += throw_icon
+
+ internals = new /obj/screen/internals()
+ infodisplay += internals
+
+ healths = new /obj/screen/healths()
+ infodisplay += healths
+
+ pull_icon = new /obj/screen/pull()
+ pull_icon.icon = ui_style
+ pull_icon.update_icon(mymob)
+ pull_icon.screen_loc = ui_pull_resist
+ static_inventory += pull_icon
+
+ lingchemdisplay = new /obj/screen/ling/chems()
+ infodisplay += lingchemdisplay
+
+ lingstingdisplay = new /obj/screen/ling/sting()
+ infodisplay += lingstingdisplay
+
+
+ zone_select = new /obj/screen/zone_sel()
+ zone_select.icon = ui_style
+ zone_select.update_icon(mymob)
+ static_inventory += zone_select
+
+ mymob.client.screen = list()
+
+ using = new /obj/screen/resist()
+ using.icon = ui_style
+ using.screen_loc = ui_pull_resist
+ hotkeybuttons += using
+
+ for(var/obj/screen/inventory/inv in (static_inventory + toggleable_inventory))
+ if(inv.slot_id)
+ inv.hud = src
+ inv_slots[inv.slot_id] = inv
+ inv.update_icon()
+
+/datum/hud/monkey/persistent_inventory_update()
+ if(!mymob)
+ return
+ var/mob/living/carbon/monkey/M = mymob
+
+ if(hud_shown)
+ if(M.back)
+ M.back.screen_loc = ui_monkey_back
+ M.client.screen += M.back
+ if(M.wear_mask)
+ M.wear_mask.screen_loc = ui_monkey_mask
+ M.client.screen += M.wear_mask
+ if(M.wear_neck)
+ M.wear_neck.screen_loc = ui_monkey_neck
+ M.client.screen += M.wear_neck
+ if(M.head)
+ M.head.screen_loc = ui_monkey_head
+ M.client.screen += M.head
+ else
+ if(M.back)
+ M.back.screen_loc = null
+ if(M.wear_mask)
+ M.wear_mask.screen_loc = null
+ if(M.head)
+ M.head.screen_loc = null
+
+ if(hud_version != HUD_STYLE_NOHUD)
+ for(var/obj/item/I in M.held_items)
+ I.screen_loc = ui_hand_position(M.get_held_index_of_item(I))
+ M.client.screen += I
+ else
+ for(var/obj/item/I in M.held_items)
+ I.screen_loc = null
+ M.client.screen -= I
+
+/mob/living/carbon/monkey/create_mob_hud()
+ if(client && !hud_used)
+ hud_used = new /datum/hud/monkey(src, ui_style2icon(client.prefs.UI_style))
diff --git a/code/_onclick/hud/plane_master.dm b/code/_onclick/hud/plane_master.dm
index 84add465c6..d4559ed66d 100644
--- a/code/_onclick/hud/plane_master.dm
+++ b/code/_onclick/hud/plane_master.dm
@@ -29,6 +29,7 @@
blend_mode = BLEND_OVERLAY
/obj/screen/plane_master/game_world/backdrop(mob/mymob)
+ filters = list()
if(istype(mymob) && mymob.client && mymob.client.prefs && mymob.client.prefs.ambientocclusion)
filters += AMBIENT_OCCLUSION
diff --git a/code/_onclick/hud/screen_objects.dm b/code/_onclick/hud/screen_objects.dm
index 0b895cb600..02ece81b41 100644
--- a/code/_onclick/hud/screen_objects.dm
+++ b/code/_onclick/hud/screen_objects.dm
@@ -264,7 +264,7 @@
var/obj/item/clothing/mask/M = C.wear_mask
if(M.mask_adjusted) // if mask on face but pushed down
M.adjustmask(C) // adjust it back
- if( !(M.flags_1 & MASKINTERNALS_1) )
+ if( !(M.clothing_flags & MASKINTERNALS) )
to_chat(C, "You are not wearing an internals mask! ")
return
diff --git a/code/_onclick/telekinesis.dm b/code/_onclick/telekinesis.dm
index eb5f623035..a060cbb834 100644
--- a/code/_onclick/telekinesis.dm
+++ b/code/_onclick/telekinesis.dm
@@ -99,7 +99,7 @@
//stops TK grabs being equipped anywhere but into hands
/obj/item/tk_grab/equipped(mob/user, slot)
- if(slot == slot_hands)
+ if(slot == SLOT_HANDS)
return
qdel(src)
return
diff --git a/code/controllers/subsystem/ping.dm b/code/controllers/subsystem/ping.dm
new file mode 100644
index 0000000000..2cf88bc7ad
--- /dev/null
+++ b/code/controllers/subsystem/ping.dm
@@ -0,0 +1,32 @@
+SUBSYSTEM_DEF(ping)
+ name = "Ping"
+ priority = FIRE_PRIORITY_PING
+ wait = 3 SECONDS
+ flags = SS_NO_INIT
+
+ var/list/currentrun = list()
+
+/datum/controller/subsystem/ping/stat_entry()
+ ..("P:[GLOB.clients.len]")
+
+
+/datum/controller/subsystem/ping/fire(resumed = 0)
+ if (!resumed)
+ src.currentrun = GLOB.clients.Copy()
+
+ //cache for sanic speed (lists are references anyways)
+ var/list/currentrun = src.currentrun
+
+ while (currentrun.len)
+ var/client/C = currentrun[currentrun.len]
+ currentrun.len--
+
+ if (!C || !C.chatOutput || !C.chatOutput.loaded)
+ if (MC_TICK_CHECK)
+ return
+ continue
+
+ // softPang isn't handled anywhere but it'll always reset the opts.lastPang.
+ C.chatOutput.ehjax_send(data = C.is_afk(29) ? "softPang" : "pang")
+ if (MC_TICK_CHECK)
+ return
diff --git a/code/datums/action.dm b/code/datums/action.dm
index f7b1d6b258..f9575a56ef 100644
--- a/code/datums/action.dm
+++ b/code/datums/action.dm
@@ -480,7 +480,7 @@
H.attack_self(owner)
return
var/obj/item/I = target
- if(owner.can_equip(I, slot_hands))
+ if(owner.can_equip(I, SLOT_HANDS))
owner.temporarilyRemoveItemFromInventory(I)
owner.put_in_hands(I)
I.attack_self(owner)
diff --git a/code/datums/diseases/_MobProcs.dm b/code/datums/diseases/_MobProcs.dm
index 74d4b90493..ba570eca06 100644
--- a/code/datums/diseases/_MobProcs.dm
+++ b/code/datums/diseases/_MobProcs.dm
@@ -79,8 +79,8 @@
if(isobj(H.wear_suit))
Cl = H.wear_suit
passed = prob((Cl.permeability_coefficient*100) - 1)
- if(passed && isobj(slot_w_uniform))
- Cl = slot_w_uniform
+ if(passed && isobj(SLOT_W_UNIFORM))
+ Cl = SLOT_W_UNIFORM
passed = prob((Cl.permeability_coefficient*100) - 1)
if(BODY_ZONE_L_ARM, BODY_ZONE_R_ARM)
if(isobj(H.wear_suit) && H.wear_suit.body_parts_covered&HANDS)
diff --git a/code/datums/diseases/wizarditis.dm b/code/datums/diseases/wizarditis.dm
index cfc848000b..919eaa6e12 100644
--- a/code/datums/diseases/wizarditis.dm
+++ b/code/datums/diseases/wizarditis.dm
@@ -61,19 +61,19 @@ STI KALY - blind
if(!istype(H.head, /obj/item/clothing/head/wizard))
if(!H.dropItemToGround(H.head))
qdel(H.head)
- H.equip_to_slot_or_del(new /obj/item/clothing/head/wizard(H), slot_head)
+ H.equip_to_slot_or_del(new /obj/item/clothing/head/wizard(H), SLOT_HEAD)
return
if(prob(chance))
if(!istype(H.wear_suit, /obj/item/clothing/suit/wizrobe))
if(!H.dropItemToGround(H.wear_suit))
qdel(H.wear_suit)
- H.equip_to_slot_or_del(new /obj/item/clothing/suit/wizrobe(H), slot_wear_suit)
+ H.equip_to_slot_or_del(new /obj/item/clothing/suit/wizrobe(H), SLOT_WEAR_SUIT)
return
if(prob(chance))
if(!istype(H.shoes, /obj/item/clothing/shoes/sandal/magic))
if(!H.dropItemToGround(H.shoes))
qdel(H.shoes)
- H.equip_to_slot_or_del(new /obj/item/clothing/shoes/sandal/magic(H), slot_shoes)
+ H.equip_to_slot_or_del(new /obj/item/clothing/shoes/sandal/magic(H), SLOT_SHOES)
return
else
var/mob/living/carbon/H = affected_mob
diff --git a/code/datums/martial/boxing.dm b/code/datums/martial/boxing.dm
index 5f97db0827..68b021bc7d 100644
--- a/code/datums/martial/boxing.dm
+++ b/code/datums/martial/boxing.dm
@@ -53,7 +53,7 @@
/obj/item/clothing/gloves/boxing/equipped(mob/user, slot)
if(!ishuman(user))
return
- if(slot == slot_gloves)
+ if(slot == SLOT_GLOVES)
var/mob/living/carbon/human/H = user
style.teach(H,1)
return
@@ -62,6 +62,6 @@
if(!ishuman(user))
return
var/mob/living/carbon/human/H = user
- if(H.get_item_by_slot(slot_gloves) == src)
+ if(H.get_item_by_slot(SLOT_GLOVES) == src)
style.remove(H)
return
diff --git a/code/datums/martial/krav_maga.dm b/code/datums/martial/krav_maga.dm
index 82497adf45..21a82c7b7e 100644
--- a/code/datums/martial/krav_maga.dm
+++ b/code/datums/martial/krav_maga.dm
@@ -170,7 +170,7 @@
/obj/item/clothing/gloves/krav_maga/equipped(mob/user, slot)
if(!ishuman(user))
return
- if(slot == slot_gloves)
+ if(slot == SLOT_GLOVES)
var/mob/living/carbon/human/H = user
style.teach(H,1)
@@ -178,7 +178,7 @@
if(!ishuman(user))
return
var/mob/living/carbon/human/H = user
- if(H.get_item_by_slot(slot_gloves) == src)
+ if(H.get_item_by_slot(SLOT_GLOVES) == src)
style.remove(H)
/obj/item/clothing/gloves/krav_maga/sec//more obviously named, given to sec
diff --git a/code/datums/martial/sleeping_carp.dm b/code/datums/martial/sleeping_carp.dm
index 2ec94a930c..cda88187cd 100644
--- a/code/datums/martial/sleeping_carp.dm
+++ b/code/datums/martial/sleeping_carp.dm
@@ -161,7 +161,7 @@
desc = "A long, tall staff made of polished wood. Traditionally used in ancient old-Earth martial arts. Can be wielded to both kill and incapacitate."
force = 10
w_class = WEIGHT_CLASS_BULKY
- slot_flags = SLOT_BACK
+ slot_flags = ITEM_SLOT_BACK
force_unwielded = 10
force_wielded = 24
throwforce = 20
diff --git a/code/datums/martial/wrestling.dm b/code/datums/martial/wrestling.dm
index 8ac7e76cdb..62a03af933 100644
--- a/code/datums/martial/wrestling.dm
+++ b/code/datums/martial/wrestling.dm
@@ -448,7 +448,7 @@
/obj/item/storage/belt/champion/wrestling/equipped(mob/user, slot)
if(!ishuman(user))
return
- if(slot == slot_belt)
+ if(slot == SLOT_BELT)
var/mob/living/carbon/human/H = user
style.teach(H,1)
return
@@ -457,6 +457,6 @@
if(!ishuman(user))
return
var/mob/living/carbon/human/H = user
- if(H.get_item_by_slot(slot_belt) == src)
+ if(H.get_item_by_slot(SLOT_BELT) == src)
style.remove(H)
return
diff --git a/code/datums/outfit.dm b/code/datums/outfit.dm
index e5e13f597f..90feeacb79 100755
--- a/code/datums/outfit.dm
+++ b/code/datums/outfit.dm
@@ -39,31 +39,31 @@
//Start with uniform,suit,backpack for additional slots
if(uniform)
- H.equip_to_slot_or_del(new uniform(H),slot_w_uniform)
+ H.equip_to_slot_or_del(new uniform(H),SLOT_W_UNIFORM)
if(suit)
- H.equip_to_slot_or_del(new suit(H),slot_wear_suit)
+ H.equip_to_slot_or_del(new suit(H),SLOT_WEAR_SUIT)
if(back)
- H.equip_to_slot_or_del(new back(H),slot_back)
+ H.equip_to_slot_or_del(new back(H),SLOT_BACK)
if(belt)
- H.equip_to_slot_or_del(new belt(H),slot_belt)
+ H.equip_to_slot_or_del(new belt(H),SLOT_BELT)
if(gloves)
- H.equip_to_slot_or_del(new gloves(H),slot_gloves)
+ H.equip_to_slot_or_del(new gloves(H),SLOT_GLOVES)
if(shoes)
- H.equip_to_slot_or_del(new shoes(H),slot_shoes)
+ H.equip_to_slot_or_del(new shoes(H),SLOT_SHOES)
if(head)
- H.equip_to_slot_or_del(new head(H),slot_head)
+ H.equip_to_slot_or_del(new head(H),SLOT_HEAD)
if(mask)
- H.equip_to_slot_or_del(new mask(H),slot_wear_mask)
+ H.equip_to_slot_or_del(new mask(H),SLOT_WEAR_MASK)
if(neck)
- H.equip_to_slot_or_del(new neck(H),slot_neck)
+ H.equip_to_slot_or_del(new neck(H),SLOT_NECK)
if(ears)
- H.equip_to_slot_or_del(new ears(H),slot_ears)
+ H.equip_to_slot_or_del(new ears(H),SLOT_EARS)
if(glasses)
- H.equip_to_slot_or_del(new glasses(H),slot_glasses)
+ H.equip_to_slot_or_del(new glasses(H),SLOT_GLASSES)
if(id)
- H.equip_to_slot_or_del(new id(H),slot_wear_id)
+ H.equip_to_slot_or_del(new id(H),SLOT_WEAR_ID)
if(suit_store)
- H.equip_to_slot_or_del(new suit_store(H),slot_s_store)
+ H.equip_to_slot_or_del(new suit_store(H),SLOT_S_STORE)
if(accessory)
var/obj/item/clothing/under/U = H.w_uniform
@@ -79,16 +79,16 @@
if(!visualsOnly) // Items in pockets or backpack don't show up on mob's icon.
if(l_pocket)
- H.equip_to_slot_or_del(new l_pocket(H),slot_l_store)
+ H.equip_to_slot_or_del(new l_pocket(H),SLOT_L_STORE)
if(r_pocket)
- H.equip_to_slot_or_del(new r_pocket(H),slot_r_store)
+ H.equip_to_slot_or_del(new r_pocket(H),SLOT_R_STORE)
if(backpack_contents)
for(var/path in backpack_contents)
var/number = backpack_contents[path]
if(!isnum(number))//Default to 1
number = 1
for(var/i in 1 to number)
- H.equip_to_slot_or_del(new path(H),slot_in_backpack)
+ H.equip_to_slot_or_del(new path(H),SLOT_IN_BACKPACK)
if(!H.head && toggle_helmet && istype(H.wear_suit, /obj/item/clothing/suit/space/hardsuit))
var/obj/item/clothing/suit/space/hardsuit/HS = H.wear_suit
diff --git a/code/datums/traits/_quirk.dm b/code/datums/traits/_quirk.dm
index 5f0d1be1f2..b39da84575 100644
--- a/code/datums/traits/_quirk.dm
+++ b/code/datums/traits/_quirk.dm
@@ -120,7 +120,7 @@ Use this as a guideline
var/mob/living/carbon/human/H = quirk_holder
var/obj/item/clothing/glasses/regular/glasses = new(get_turf(H))
H.put_in_hands(glasses)
- H.equip_to_slot(glasses, slot_glasses)
+ H.equip_to_slot(glasses, SLOT_GLASSES)
H.regenerate_icons()
//This whole proc is called automatically
@@ -130,3 +130,5 @@ Use this as a guideline
//If you don't need any special effects like spawning glasses, then you don't need an add()
*/
+
+
diff --git a/code/datums/traits/negative.dm b/code/datums/traits/negative.dm
index 0a2ce2f24c..7752cc31c3 100644
--- a/code/datums/traits/negative.dm
+++ b/code/datums/traits/negative.dm
@@ -58,9 +58,9 @@
/obj/item/dice/d20)
heirloom = new heirloom_type(get_turf(quirk_holder))
var/list/slots = list(
- "in your backpack" = slot_in_backpack,
- "in your left pocket" = slot_l_store,
- "in your right pocket" = slot_r_store
+ "in your backpack" = SLOT_IN_BACKPACK,
+ "in your left pocket" = SLOT_L_STORE,
+ "in your right pocket" = SLOT_R_STORE
)
var/where = H.equip_in_one_of_slots(heirloom, slots)
if(!where)
@@ -121,7 +121,7 @@
var/mob/living/carbon/human/H = quirk_holder
var/obj/item/clothing/glasses/regular/glasses = new(get_turf(H))
H.put_in_hands(glasses)
- H.equip_to_slot(glasses, slot_glasses)
+ H.equip_to_slot(glasses, SLOT_GLASSES)
H.regenerate_icons() //this is to remove the inhand icon, which persists even if it's not in their hands
diff --git a/code/game/gamemodes/changeling/changeling.dm b/code/game/gamemodes/changeling/changeling.dm
index a77bf196c2..93d77209e0 100644
--- a/code/game/gamemodes/changeling/changeling.dm
+++ b/code/game/gamemodes/changeling/changeling.dm
@@ -1,6 +1,6 @@
GLOBAL_LIST_INIT(possible_changeling_IDs, list("Alpha","Beta","Gamma","Delta","Epsilon","Zeta","Eta","Theta","Iota","Kappa","Lambda","Mu","Nu","Xi","Omicron","Pi","Rho","Sigma","Tau","Upsilon","Phi","Chi","Psi","Omega"))
GLOBAL_LIST_INIT(slots, list("head", "wear_mask", "back", "wear_suit", "w_uniform", "shoes", "belt", "gloves", "glasses", "ears", "wear_id", "s_store"))
-GLOBAL_LIST_INIT(slot2slot, list("head" = slot_head, "wear_mask" = slot_wear_mask, "neck" = slot_neck, "back" = slot_back, "wear_suit" = slot_wear_suit, "w_uniform" = slot_w_uniform, "shoes" = slot_shoes, "belt" = slot_belt, "gloves" = slot_gloves, "glasses" = slot_glasses, "ears" = slot_ears, "wear_id" = slot_wear_id, "s_store" = slot_s_store))
+GLOBAL_LIST_INIT(slot2slot, list("head" = SLOT_HEAD, "wear_mask" = SLOT_WEAR_MASK, "neck" = SLOT_NECK, "back" = SLOT_BACK, "wear_suit" = SLOT_WEAR_SUIT, "w_uniform" = SLOT_W_UNIFORM, "shoes" = SLOT_SHOES, "belt" = SLOT_BELT, "gloves" = SLOT_GLOVES, "glasses" = SLOT_GLASSES, "ears" = SLOT_EARS, "wear_id" = SLOT_WEAR_ID, "s_store" = SLOT_S_STORE))
GLOBAL_LIST_INIT(slot2type, list("head" = /obj/item/clothing/head/changeling, "wear_mask" = /obj/item/clothing/mask/changeling, "back" = /obj/item/changeling, "wear_suit" = /obj/item/clothing/suit/changeling, "w_uniform" = /obj/item/clothing/under/changeling, "shoes" = /obj/item/clothing/shoes/changeling, "belt" = /obj/item/changeling, "gloves" = /obj/item/clothing/gloves/changeling, "glasses" = /obj/item/clothing/glasses/changeling, "ears" = /obj/item/changeling, "wear_id" = /obj/item/changeling, "s_store" = /obj/item/changeling))
GLOBAL_VAR(changeling_team_objective_type) //If this is not null, we hand our this objective to all lings
diff --git a/code/game/gamemodes/clock_cult/clock_cult.dm b/code/game/gamemodes/clock_cult/clock_cult.dm
index 457bab6c3c..355dd869b1 100644
--- a/code/game/gamemodes/clock_cult/clock_cult.dm
+++ b/code/game/gamemodes/clock_cult/clock_cult.dm
@@ -198,7 +198,7 @@ Credit where due:
L.equipOutfit(/datum/outfit/servant_of_ratvar)
var/obj/item/clockwork/slab/S = new
var/slot = "At your feet"
- var/list/slots = list("In your left pocket" = slot_l_store, "In your right pocket" = slot_r_store, "In your backpack" = slot_in_backpack, "On your belt" = slot_belt)
+ var/list/slots = list("In your left pocket" = SLOT_L_STORE, "In your right pocket" = SLOT_R_STORE, "In your backpack" = SLOT_IN_BACKPACK, "On your belt" = SLOT_BELT)
if(ishuman(L))
var/mob/living/carbon/human/H = L
slot = H.equip_in_one_of_slots(S, slots)
diff --git a/code/game/gamemodes/clown_ops/bananium_bomb.dm b/code/game/gamemodes/clown_ops/bananium_bomb.dm
index 86db2e94f9..c7212a671c 100644
--- a/code/game/gamemodes/clown_ops/bananium_bomb.dm
+++ b/code/game/gamemodes/clown_ops/bananium_bomb.dm
@@ -43,17 +43,17 @@
if(!H.w_uniform || H.dropItemToGround(H.w_uniform))
C = new /obj/item/clothing/under/rank/clown(H)
C.flags_1 |= NODROP_1 //mwahaha
- H.equip_to_slot_or_del(C, slot_w_uniform)
+ H.equip_to_slot_or_del(C, SLOT_W_UNIFORM)
if(!H.shoes || H.dropItemToGround(H.shoes))
C = new /obj/item/clothing/shoes/clown_shoes(H)
C.flags_1 |= NODROP_1
- H.equip_to_slot_or_del(C, slot_shoes)
+ H.equip_to_slot_or_del(C, SLOT_SHOES)
if(!H.wear_mask || H.dropItemToGround(H.wear_mask))
C = new /obj/item/clothing/mask/gas/clown_hat(H)
C.flags_1 |= NODROP_1
- H.equip_to_slot_or_del(C, slot_wear_mask)
+ H.equip_to_slot_or_del(C, SLOT_WEAR_MASK)
H.dna.add_mutation(CLOWNMUT)
H.gain_trauma(/datum/brain_trauma/mild/phobia, TRAUMA_RESILIENCE_LOBOTOMY, "clowns") //MWA HA HA
diff --git a/code/game/gamemodes/clown_ops/clown_weapons.dm b/code/game/gamemodes/clown_ops/clown_weapons.dm
index 1c1e46b59c..067bb8c84c 100644
--- a/code/game/gamemodes/clown_ops/clown_weapons.dm
+++ b/code/game/gamemodes/clown_ops/clown_weapons.dm
@@ -15,7 +15,7 @@
/obj/item/clothing/shoes/clown_shoes/combat
name = "combat clown shoes"
desc = "advanced clown shoes that protect the wearer and render them nearly immune to slipping on their own peels. They also squeek at 100% capacity."
- flags_1 = NOSLIP_1
+ clothing_flags = NOSLIP
slowdown = SHOES_SLOWDOWN
armor = list("melee" = 25, "bullet" = 25, "laser" = 25, "energy" = 25, "bomb" = 50, "bio" = 10, "rad" = 0, "fire" = 70, "acid" = 50)
strip_delay = 70
@@ -209,7 +209,7 @@
if(!istype(M.wear_mask, /obj/item/clothing/mask/gas/clown_hat) && !istype(M.wear_mask, /obj/item/clothing/mask/gas/mime) )
if(!M.wear_mask || M.dropItemToGround(M.wear_mask))
var/obj/item/clothing/mask/fakemoustache/sticky/the_stash = new /obj/item/clothing/mask/fakemoustache/sticky()
- M.equip_to_slot_or_del(the_stash, slot_wear_mask, TRUE, TRUE, TRUE, TRUE)
+ M.equip_to_slot_or_del(the_stash, SLOT_WEAR_MASK, TRUE, TRUE, TRUE, TRUE)
/obj/item/clothing/mask/fakemoustache/sticky
var/unstick_time = 600
diff --git a/code/game/gamemodes/nuclear/nuclear.dm b/code/game/gamemodes/nuclear/nuclear.dm
index b6ea8c5234..3b7dca1a81 100644
--- a/code/game/gamemodes/nuclear/nuclear.dm
+++ b/code/game/gamemodes/nuclear/nuclear.dm
@@ -155,7 +155,7 @@
if(tc)
var/obj/item/radio/uplink/U = new uplink_type(H, H.key, tc)
- H.equip_to_slot_or_del(U, slot_in_backpack)
+ H.equip_to_slot_or_del(U, SLOT_IN_BACKPACK)
var/obj/item/implant/weapons_auth/W = new/obj/item/implant/weapons_auth(H)
W.implant(H)
@@ -171,7 +171,7 @@
mask = /obj/item/clothing/mask/gas/syndicate
suit = /obj/item/clothing/suit/space/hardsuit/syndi
r_pocket = /obj/item/tank/internals/emergency_oxygen/engi
- internals_slot = slot_r_store
+ internals_slot = SLOT_R_STORE
belt = /obj/item/storage/belt/military
r_hand = /obj/item/gun/ballistic/automatic/shotgun/bulldog
backpack_contents = list(/obj/item/storage/box/syndie=1,\
diff --git a/code/game/gamemodes/objective.dm b/code/game/gamemodes/objective.dm
index fd9a1abd4a..7559e21e21 100644
--- a/code/game/gamemodes/objective.dm
+++ b/code/game/gamemodes/objective.dm
@@ -114,7 +114,7 @@ GLOBAL_LIST_EMPTY(objectives)
if(receiver && receiver.current)
if(ishuman(receiver.current))
var/mob/living/carbon/human/H = receiver.current
- var/list/slots = list("backpack" = slot_in_backpack)
+ var/list/slots = list("backpack" = SLOT_IN_BACKPACK)
for(var/eq_path in special_equipment)
var/obj/O = new eq_path
H.equip_in_one_of_slots(O, slots)
diff --git a/code/game/machinery/constructable_frame.dm b/code/game/machinery/constructable_frame.dm
index 7aab26dc63..59bf9f86fd 100644
--- a/code/game/machinery/constructable_frame.dm
+++ b/code/game/machinery/constructable_frame.dm
@@ -4,7 +4,7 @@
icon_state = "box_0"
density = TRUE
max_integrity = 250
- var/obj/item/circuitboard/circuit = null
+ var/obj/item/circuitboard/machine/circuit = null
var/state = 1
/obj/structure/frame/examine(user)
@@ -165,6 +165,13 @@
icon_state = "box_1"
return
+ if(istype(P, /obj/item/wrench) && !circuit.needs_anchored)
+ to_chat(user, "You start [anchored ? "un" : ""]securing [name]... ")
+ if(P.use_tool(src, user, 40, volume=75))
+ to_chat(user, "You [anchored ? "un" : ""]secure [name]. ")
+ anchored = !anchored
+ return
+
if(istype(P, /obj/item/screwdriver))
var/component_check = 1
for(var/R in req_components)
diff --git a/code/game/machinery/doors/airlock.dm b/code/game/machinery/doors/airlock.dm
index 76a0c39021..db0a9a5866 100644
--- a/code/game/machinery/doors/airlock.dm
+++ b/code/game/machinery/doors/airlock.dm
@@ -1070,10 +1070,8 @@
else
playsound(src.loc, 'sound/machines/airlockforced.ogg', 30, 1)
- if(autoclose && normalspeed)
- addtimer(CALLBACK(src, .proc/autoclose), 150)
- else if(autoclose && !normalspeed)
- addtimer(CALLBACK(src, .proc/autoclose), 15)
+ if(autoclose)
+ autoclose_in(normalspeed ? 150 : 15)
if(!density)
return TRUE
@@ -1106,7 +1104,7 @@
if(safe)
for(var/atom/movable/M in get_turf(src))
if(M.density && M != src) //something is blocking the door
- addtimer(CALLBACK(src, .proc/autoclose), 60)
+ autoclose_in(60)
return
if(forced < 2)
diff --git a/code/game/machinery/doors/door.dm b/code/game/machinery/doors/door.dm
index 7c16f05fd1..ed92d9f385 100644
--- a/code/game/machinery/doors/door.dm
+++ b/code/game/machinery/doors/door.dm
@@ -274,7 +274,7 @@
for(var/atom/movable/M in get_turf(src))
if(M.density && M != src) //something is blocking the door
if(autoclose)
- addtimer(CALLBACK(src, .proc/autoclose), 60)
+ autoclose_in(60)
return
operating = TRUE
@@ -326,6 +326,9 @@
if(!QDELETED(src) && !density && !operating && !locked && !welded && autoclose)
close()
+/obj/machinery/door/proc/autoclose_in(wait)
+ addtimer(CALLBACK(src, .proc/autoclose), wait, TIMER_UNIQUE | TIMER_NO_HASH_WAIT | TIMER_OVERRIDE)
+
/obj/machinery/door/proc/requiresID()
return 1
diff --git a/code/game/machinery/doors/firedoor.dm b/code/game/machinery/doors/firedoor.dm
index 3f26e7d80d..4a2df11151 100644
--- a/code/game/machinery/doors/firedoor.dm
+++ b/code/game/machinery/doors/firedoor.dm
@@ -144,9 +144,7 @@
else
close()
-/obj/machinery/door/firedoor/interact(mob/user)
- if(!issilicon(user))
- return TRUE
+/obj/machinery/door/firedoor/attack_ai(mob/user)
add_fingerprint(user)
if(welded || operating || stat & NOPOWER)
return TRUE
@@ -156,6 +154,9 @@
close()
return TRUE
+/obj/machinery/door/firedoor/attack_robot(mob/user)
+ return attack_ai(user)
+
/obj/machinery/door/firedoor/attack_alien(mob/user)
add_fingerprint(user)
if(welded)
diff --git a/code/game/machinery/launch_pad.dm b/code/game/machinery/launch_pad.dm
index 93a6cfca62..95bf10bc6c 100644
--- a/code/game/machinery/launch_pad.dm
+++ b/code/game/machinery/launch_pad.dm
@@ -242,7 +242,7 @@
icon = 'icons/obj/telescience.dmi'
icon_state = "blpad-remote"
w_class = WEIGHT_CLASS_SMALL
- slot_flags = SLOT_BELT
+ slot_flags = ITEM_SLOT_BELT
var/sending = TRUE
var/obj/machinery/launchpad/briefcase/pad
diff --git a/code/game/objects/effects/glowshroom.dm b/code/game/objects/effects/glowshroom.dm
index 8dab6e4246..42d0f097d9 100644
--- a/code/game/objects/effects/glowshroom.dm
+++ b/code/game/objects/effects/glowshroom.dm
@@ -78,7 +78,7 @@
pixel_x = -32
icon_state = "[base_icon_state][rand(1,3)]"
else //if on the floor, glowshroom on-floor sprite
- icon_state = "[base_icon_state]f"
+ icon_state = base_icon_state
addtimer(CALLBACK(src, .proc/Spread), delay)
diff --git a/code/game/objects/effects/spawners/bombspawner.dm b/code/game/objects/effects/spawners/bombspawner.dm
index 2de7770b72..b1bb3e6b4d 100644
--- a/code/game/objects/effects/spawners/bombspawner.dm
+++ b/code/game/objects/effects/spawners/bombspawner.dm
@@ -1,46 +1,67 @@
+#define CELSIUS_TO_KELVIN(T_K) ((T_K) + T0C)
+
+#define OPTIMAL_TEMP_K_PLA_BURN_SCALE(PRESSURE_P,PRESSURE_O,TEMP_O) (((PRESSURE_P) * GLOB.meta_gas_info[/datum/gas/plasma][META_GAS_SPECIFIC_HEAT]) / (((PRESSURE_P) * GLOB.meta_gas_info[/datum/gas/plasma][META_GAS_SPECIFIC_HEAT] + (PRESSURE_O) * GLOB.meta_gas_info[/datum/gas/oxygen][META_GAS_SPECIFIC_HEAT]) / PLASMA_UPPER_TEMPERATURE - (PRESSURE_O) * GLOB.meta_gas_info[/datum/gas/oxygen][META_GAS_SPECIFIC_HEAT] / CELSIUS_TO_KELVIN(TEMP_O)))
+#define OPTIMAL_TEMP_K_PLA_BURN_RATIO(PRESSURE_P,PRESSURE_O,TEMP_O) (CELSIUS_TO_KELVIN(TEMP_O) * PLASMA_OXYGEN_FULLBURN * (PRESSURE_P) / (PRESSURE_O))
+
/obj/effect/spawner/newbomb
name = "bomb"
icon = 'icons/mob/screen_gen.dmi'
icon_state = "x"
- var/btemp1 = 1500
- var/btemp2 = 1000 // tank temperatures
+ var/temp_p = 1500
+ var/temp_o = 1000 // tank temperatures
+ var/pressure_p = 10 * ONE_ATMOSPHERE
+ var/pressure_o = 10 * ONE_ATMOSPHERE //tank pressures
var/assembly_type
/obj/effect/spawner/newbomb/Initialize()
. = ..()
var/obj/item/transfer_valve/V = new(src.loc)
- var/obj/item/tank/internals/plasma/full/PT = new(V)
+ var/obj/item/tank/internals/plasma/PT = new(V)
var/obj/item/tank/internals/oxygen/OT = new(V)
- PT.air_contents.temperature = btemp1 + T0C
- OT.air_contents.temperature = btemp2 + T0C
+ PT.air_contents.assert_gas(/datum/gas/plasma)
+ PT.air_contents.gases[/datum/gas/plasma][MOLES] = pressure_p*PT.volume/(R_IDEAL_GAS_EQUATION*CELSIUS_TO_KELVIN(temp_p))
+ PT.air_contents.temperature = CELSIUS_TO_KELVIN(temp_p)
+
+ OT.air_contents.assert_gas(/datum/gas/oxygen)
+ OT.air_contents.gases[/datum/gas/oxygen][MOLES] = pressure_o*OT.volume/(R_IDEAL_GAS_EQUATION*CELSIUS_TO_KELVIN(temp_o))
+ OT.air_contents.temperature = CELSIUS_TO_KELVIN(temp_o)
V.tank_one = PT
V.tank_two = OT
PT.master = V
OT.master = V
-
+
if(assembly_type)
var/obj/item/assembly/A = new assembly_type(V)
V.attached_device = A
A.holder = V
- A.toggle_secure()
V.update_icon()
-
+
return INITIALIZE_HINT_QDEL
+/obj/effect/spawner/newbomb/timer/syndicate/Initialize()
+ temp_p = (OPTIMAL_TEMP_K_PLA_BURN_SCALE(pressure_p, pressure_o, temp_o)/2 + OPTIMAL_TEMP_K_PLA_BURN_RATIO(pressure_p, pressure_o, temp_o)/2) - T0C
+ . = ..()
+
/obj/effect/spawner/newbomb/timer
assembly_type = /obj/item/assembly/timer
/obj/effect/spawner/newbomb/timer/syndicate
- btemp1 = 150
- btemp2 = 20
+ pressure_o = TANK_LEAK_PRESSURE - 1
+ temp_o = 20
+
+ pressure_p = TANK_LEAK_PRESSURE - 1
/obj/effect/spawner/newbomb/proximity
assembly_type = /obj/item/assembly/prox_sensor
/obj/effect/spawner/newbomb/radio
assembly_type = /obj/item/assembly/signaler
-
+
+#undef CELSIUS_TO_KELVIN
+
+#undef OPTIMAL_TEMP_K_PLA_BURN_SCALE
+#undef OPTIMAL_TEMP_K_PLA_BURN_RATIO
diff --git a/code/game/objects/items.dm b/code/game/objects/items.dm
index 9211c77cb9..042ff6d8f0 100644
--- a/code/game/objects/items.dm
+++ b/code/game/objects/items.dm
@@ -381,7 +381,7 @@ GLOBAL_VAR_INIT(rpg_loot_items, FALSE)
//sometimes we only want to grant the item's action if it's equipped in a specific slot.
/obj/item/proc/item_action_slot_check(slot, mob/user)
- if(slot == slot_in_backpack || slot == slot_legcuffed) //these aren't true slots, so avoid granting actions there
+ if(slot == SLOT_IN_BACKPACK || slot == SLOT_LEGCUFFED) //these aren't true slots, so avoid granting actions there
return FALSE
return TRUE
@@ -545,29 +545,29 @@ GLOBAL_VAR_INIT(rpg_loot_items, FALSE)
return
var/mob/owner = loc
var/flags = slot_flags
- if(flags & SLOT_OCLOTHING)
+ if(flags & ITEM_SLOT_OCLOTHING)
owner.update_inv_wear_suit()
- if(flags & SLOT_ICLOTHING)
+ if(flags & ITEM_SLOT_ICLOTHING)
owner.update_inv_w_uniform()
- if(flags & SLOT_GLOVES)
+ if(flags & ITEM_SLOT_GLOVES)
owner.update_inv_gloves()
- if(flags & SLOT_EYES)
+ if(flags & ITEM_SLOT_EYES)
owner.update_inv_glasses()
- if(flags & SLOT_EARS)
+ if(flags & ITEM_SLOT_EARS)
owner.update_inv_ears()
- if(flags & SLOT_MASK)
+ if(flags & ITEM_SLOT_MASK)
owner.update_inv_wear_mask()
- if(flags & SLOT_HEAD)
+ if(flags & ITEM_SLOT_HEAD)
owner.update_inv_head()
- if(flags & SLOT_FEET)
+ if(flags & ITEM_SLOT_FEET)
owner.update_inv_shoes()
- if(flags & SLOT_ID)
+ if(flags & ITEM_SLOT_ID)
owner.update_inv_wear_id()
- if(flags & SLOT_BELT)
+ if(flags & ITEM_SLOT_BELT)
owner.update_inv_belt()
- if(flags & SLOT_BACK)
+ if(flags & ITEM_SLOT_BACK)
owner.update_inv_back()
- if(flags & SLOT_NECK)
+ if(flags & ITEM_SLOT_NECK)
owner.update_inv_neck()
/obj/item/proc/is_hot()
@@ -592,7 +592,7 @@ GLOBAL_VAR_INIT(rpg_loot_items, FALSE)
if(ismob(location))
var/mob/M = location
var/success = FALSE
- if(src == M.get_item_by_slot(slot_wear_mask))
+ if(src == M.get_item_by_slot(SLOT_WEAR_MASK))
success = TRUE
if(success)
location = get_turf(M)
diff --git a/code/game/objects/items/airlock_painter.dm b/code/game/objects/items/airlock_painter.dm
index c51917b695..be9cb0b89a 100644
--- a/code/game/objects/items/airlock_painter.dm
+++ b/code/game/objects/items/airlock_painter.dm
@@ -10,7 +10,7 @@
materials = list(MAT_METAL=50, MAT_GLASS=50)
flags_1 = CONDUCT_1 | NOBLUDGEON_1
- slot_flags = SLOT_BELT
+ slot_flags = ITEM_SLOT_BELT
usesound = 'sound/effects/spray2.ogg'
var/obj/item/toner/ink = null
diff --git a/code/game/objects/items/cards_ids.dm b/code/game/objects/items/cards_ids.dm
index 08e6204c63..ea332c77de 100644
--- a/code/game/objects/items/cards_ids.dm
+++ b/code/game/objects/items/cards_ids.dm
@@ -97,7 +97,7 @@
item_state = "card-id"
lefthand_file = 'icons/mob/inhands/equipment/idcards_lefthand.dmi'
righthand_file = 'icons/mob/inhands/equipment/idcards_righthand.dmi'
- slot_flags = SLOT_ID
+ slot_flags = ITEM_SLOT_ID
armor = list("melee" = 0, "bullet" = 0, "laser" = 0, "energy" = 0, "bomb" = 0, "bio" = 0, "rad" = 0, "fire" = 100, "acid" = 100)
resistance_flags = FIRE_PROOF | ACID_PROOF
var/mining_points = 0 //For redeeming at mining equipment vendors
diff --git a/code/game/objects/items/chrono_eraser.dm b/code/game/objects/items/chrono_eraser.dm
index 107e4eb5db..d861b515f8 100644
--- a/code/game/objects/items/chrono_eraser.dm
+++ b/code/game/objects/items/chrono_eraser.dm
@@ -9,7 +9,7 @@
lefthand_file = 'icons/mob/inhands/equipment/backpack_lefthand.dmi'
righthand_file = 'icons/mob/inhands/equipment/backpack_righthand.dmi'
w_class = WEIGHT_CLASS_BULKY
- slot_flags = SLOT_BACK
+ slot_flags = ITEM_SLOT_BACK
slowdown = 1
actions_types = list(/datum/action/item_action/equip_unequip_TED_Gun)
var/obj/item/gun/energy/chrono_gun/PA = null
@@ -38,7 +38,7 @@
user.put_in_hands(PA)
/obj/item/chrono_eraser/item_action_slot_check(slot, mob/user)
- if(slot == slot_back)
+ if(slot == SLOT_BACK)
return 1
/obj/item/gun/energy/chrono_gun
diff --git a/code/game/objects/items/cigs_lighters.dm b/code/game/objects/items/cigs_lighters.dm
index db2232278f..02db0a4914 100644
--- a/code/game/objects/items/cigs_lighters.dm
+++ b/code/game/objects/items/cigs_lighters.dm
@@ -86,7 +86,7 @@ CIGARETTE PACKETS ARE IN FANCY.DM
..()
/obj/item/proc/help_light_cig(mob/living/M)
- var/mask_item = M.get_item_by_slot(slot_wear_mask)
+ var/mask_item = M.get_item_by_slot(SLOT_WEAR_MASK)
if(istype(mask_item, /obj/item/clothing/mask/cigarette))
return mask_item
@@ -129,7 +129,7 @@ CIGARETTE PACKETS ARE IN FANCY.DM
reagents.add_reagent_list(list_reagents)
if(starts_lit)
light()
- AddComponent(/datum/component/knockoff,90,list(BODY_ZONE_PRECISE_MOUTH),list(slot_wear_mask))//90% to knock off when wearing a mask
+ AddComponent(/datum/component/knockoff,90,list(BODY_ZONE_PRECISE_MOUTH),list(SLOT_WEAR_MASK))//90% to knock off when wearing a mask
/obj/item/clothing/mask/cigarette/Destroy()
STOP_PROCESSING(SSobj, src)
@@ -489,7 +489,7 @@ CIGARETTE PACKETS ARE IN FANCY.DM
item_state = "zippo"
w_class = WEIGHT_CLASS_TINY
flags_1 = CONDUCT_1
- slot_flags = SLOT_BELT
+ slot_flags = ITEM_SLOT_BELT
var/lit = 0
var/fancy = TRUE
heat = 1500
@@ -749,7 +749,7 @@ CIGARETTE PACKETS ARE IN FANCY.DM
return
/obj/item/clothing/mask/vape/equipped(mob/user, slot)
- if(slot == slot_wear_mask)
+ if(slot == SLOT_WEAR_MASK)
if(!screw)
to_chat(user, "You start puffing on the vape. ")
reagents.set_reacting(TRUE)
@@ -759,7 +759,7 @@ CIGARETTE PACKETS ARE IN FANCY.DM
/obj/item/clothing/mask/vape/dropped(mob/user)
var/mob/living/carbon/C = user
- if(C.get_item_by_slot(slot_wear_mask) == src)
+ if(C.get_item_by_slot(SLOT_WEAR_MASK) == src)
reagents.set_reacting(FALSE)
STOP_PROCESSING(SSobj, src)
diff --git a/code/game/objects/items/defib.dm b/code/game/objects/items/defib.dm
index 5b7312d680..f38c880b06 100644
--- a/code/game/objects/items/defib.dm
+++ b/code/game/objects/items/defib.dm
@@ -9,7 +9,7 @@
item_state = "defibunit"
lefthand_file = 'icons/mob/inhands/equipment/medical_lefthand.dmi'
righthand_file = 'icons/mob/inhands/equipment/medical_righthand.dmi'
- slot_flags = SLOT_BACK
+ slot_flags = ITEM_SLOT_BACK
force = 5
throwforce = 6
w_class = WEIGHT_CLASS_BULKY
@@ -46,11 +46,11 @@
update_charge()
/obj/item/defibrillator/proc/update_power()
- if(cell)
- if(cell.charge < paddles.revivecost)
+ if(!QDELETED(cell))
+ if(QDELETED(paddles) || cell.charge < paddles.revivecost)
powered = FALSE
else
- powered = 1
+ powered = TRUE
else
powered = FALSE
@@ -67,7 +67,7 @@
/obj/item/defibrillator/proc/update_charge()
if(powered) //so it doesn't show charge if it's unpowered
- if(cell)
+ if(!QDELETED(cell))
var/ratio = cell.charge / cell.maxcharge
ratio = CEILING(ratio*4, 1) * 25
add_overlay("[initial(icon_state)]-charge[ratio]")
@@ -83,14 +83,14 @@
//ATTACK HAND IGNORING PARENT RETURN VALUE
/obj/item/defibrillator/attack_hand(mob/user)
if(loc == user)
- if(slot_flags == SLOT_BACK)
- if(user.get_item_by_slot(slot_back) == src)
+ if(slot_flags == ITEM_SLOT_BACK)
+ if(user.get_item_by_slot(SLOT_BACK) == src)
ui_action_click()
else
to_chat(user, "Put the defibrillator on your back first! ")
- else if(slot_flags == SLOT_BELT)
- if(user.get_item_by_slot(slot_belt) == src)
+ else if(slot_flags == ITEM_SLOT_BELT)
+ if(user.get_item_by_slot(SLOT_BELT) == src)
ui_action_click()
else
to_chat(user, "Strap the defibrillator's belt on first! ")
@@ -185,7 +185,7 @@
/obj/item/defibrillator/equipped(mob/user, slot)
..()
- if((slot_flags == SLOT_BACK && slot != slot_back) || (slot_flags == SLOT_BELT && slot != slot_belt))
+ if((slot_flags == ITEM_SLOT_BACK && slot != SLOT_BACK) || (slot_flags == ITEM_SLOT_BELT && slot != SLOT_BELT))
remove_paddles(user)
update_icon()
@@ -238,7 +238,7 @@
icon_state = "defibcompact"
item_state = "defibcompact"
w_class = WEIGHT_CLASS_NORMAL
- slot_flags = SLOT_BELT
+ slot_flags = ITEM_SLOT_BELT
/obj/item/defibrillator/compact/item_action_slot_check(slot, mob/user)
if(slot == user.getBeltSlot())
diff --git a/code/game/objects/items/devices/PDA/PDA.dm b/code/game/objects/items/devices/PDA/PDA.dm
index 29897a4506..093ee1c4b7 100644
--- a/code/game/objects/items/devices/PDA/PDA.dm
+++ b/code/game/objects/items/devices/PDA/PDA.dm
@@ -21,7 +21,7 @@ GLOBAL_LIST_EMPTY(PDAs)
righthand_file = 'icons/mob/inhands/misc/devices_righthand.dmi'
flags_1 = NOBLUDGEON_1
w_class = WEIGHT_CLASS_TINY
- slot_flags = SLOT_ID | SLOT_BELT
+ slot_flags = ITEM_SLOT_ID | ITEM_SLOT_BELT
armor = list("melee" = 0, "bullet" = 0, "laser" = 0, "energy" = 0, "bomb" = 0, "bio" = 0, "rad" = 0, "fire" = 100, "acid" = 100)
resistance_flags = FIRE_PROOF | ACID_PROOF
diff --git a/code/game/objects/items/devices/aicard.dm b/code/game/objects/items/devices/aicard.dm
index 3ee5441824..c1de90f3f0 100644
--- a/code/game/objects/items/devices/aicard.dm
+++ b/code/game/objects/items/devices/aicard.dm
@@ -7,7 +7,7 @@
lefthand_file = 'icons/mob/inhands/misc/devices_lefthand.dmi'
righthand_file = 'icons/mob/inhands/misc/devices_righthand.dmi'
w_class = WEIGHT_CLASS_SMALL
- slot_flags = SLOT_BELT
+ slot_flags = ITEM_SLOT_BELT
flags_1 = NOBLUDGEON_1
var/flush = FALSE
var/mob/living/silicon/ai/AI
diff --git a/code/game/objects/items/devices/chameleonproj.dm b/code/game/objects/items/devices/chameleonproj.dm
index 181ae9eb41..d5d025619c 100644
--- a/code/game/objects/items/devices/chameleonproj.dm
+++ b/code/game/objects/items/devices/chameleonproj.dm
@@ -3,7 +3,7 @@
icon = 'icons/obj/device.dmi'
icon_state = "shield0"
flags_1 = CONDUCT_1 | NOBLUDGEON_1
- slot_flags = SLOT_BELT
+ slot_flags = ITEM_SLOT_BELT
item_state = "electronic"
lefthand_file = 'icons/mob/inhands/misc/devices_lefthand.dmi'
righthand_file = 'icons/mob/inhands/misc/devices_righthand.dmi'
diff --git a/code/game/objects/items/devices/flashlight.dm b/code/game/objects/items/devices/flashlight.dm
index 8ba7a55d93..3386b975e3 100644
--- a/code/game/objects/items/devices/flashlight.dm
+++ b/code/game/objects/items/devices/flashlight.dm
@@ -8,7 +8,7 @@
righthand_file = 'icons/mob/inhands/misc/devices_righthand.dmi'
w_class = WEIGHT_CLASS_SMALL
flags_1 = CONDUCT_1
- slot_flags = SLOT_BELT
+ slot_flags = ITEM_SLOT_BELT
materials = list(MAT_METAL=50, MAT_GLASS=20)
actions_types = list(/datum/action/item_action/toggle_light)
var/on = FALSE
@@ -348,7 +348,7 @@
icon_state = "slime"
item_state = "slime"
w_class = WEIGHT_CLASS_SMALL
- slot_flags = SLOT_BELT
+ slot_flags = ITEM_SLOT_BELT
materials = list()
brightness_on = 6 //luminosity when on
diff --git a/code/game/objects/items/devices/forcefieldprojector.dm b/code/game/objects/items/devices/forcefieldprojector.dm
index f9c8084ea5..bb0914eeec 100644
--- a/code/game/objects/items/devices/forcefieldprojector.dm
+++ b/code/game/objects/items/devices/forcefieldprojector.dm
@@ -3,7 +3,7 @@
desc = "An experimental device that can create several forcefields at a distance."
icon = 'icons/obj/device.dmi'
icon_state = "signmaker_engi"
- slot_flags = SLOT_BELT
+ slot_flags = ITEM_SLOT_BELT
w_class = WEIGHT_CLASS_SMALL
flags_1 = NOBLUDGEON_1
item_state = "electronic"
diff --git a/code/game/objects/items/devices/geiger_counter.dm b/code/game/objects/items/devices/geiger_counter.dm
index fab8900fe1..1b4bb55f99 100644
--- a/code/game/objects/items/devices/geiger_counter.dm
+++ b/code/game/objects/items/devices/geiger_counter.dm
@@ -17,7 +17,7 @@
lefthand_file = 'icons/mob/inhands/equipment/tools_lefthand.dmi'
righthand_file = 'icons/mob/inhands/equipment/tools_righthand.dmi'
w_class = WEIGHT_CLASS_SMALL
- slot_flags = SLOT_BELT
+ slot_flags = ITEM_SLOT_BELT
materials = list(MAT_METAL = 150, MAT_GLASS = 150)
var/grace = RAD_GRACE_PERIOD
diff --git a/code/game/objects/items/devices/gps.dm b/code/game/objects/items/devices/gps.dm
index f07a95ef20..0030eabcdd 100644
--- a/code/game/objects/items/devices/gps.dm
+++ b/code/game/objects/items/devices/gps.dm
@@ -5,7 +5,7 @@ GLOBAL_LIST_EMPTY(GPS_list)
icon = 'icons/obj/telescience.dmi'
icon_state = "gps-c"
w_class = WEIGHT_CLASS_SMALL
- slot_flags = SLOT_BELT
+ slot_flags = ITEM_SLOT_BELT
obj_flags = UNIQUE_RENAME
var/gpstag = "COM0"
var/emped = FALSE
diff --git a/code/game/objects/items/devices/instruments.dm b/code/game/objects/items/devices/instruments.dm
index 7274531420..427437866d 100644
--- a/code/game/objects/items/devices/instruments.dm
+++ b/code/game/objects/items/devices/instruments.dm
@@ -198,7 +198,7 @@
icon_state = "harmonica"
item_state = "harmonica"
instrumentId = "harmonica"
- slot_flags = SLOT_MASK
+ slot_flags = ITEM_SLOT_MASK
force = 5
w_class = WEIGHT_CLASS_SMALL
actions_types = list(/datum/action/item_action/instrument)
diff --git a/code/game/objects/items/devices/laserpointer.dm b/code/game/objects/items/devices/laserpointer.dm
index d1eb1cf1de..32a266dbfb 100644
--- a/code/game/objects/items/devices/laserpointer.dm
+++ b/code/game/objects/items/devices/laserpointer.dm
@@ -6,7 +6,7 @@
item_state = "pen"
var/pointer_icon_state
flags_1 = CONDUCT_1 | NOBLUDGEON_1
- slot_flags = SLOT_BELT
+ slot_flags = ITEM_SLOT_BELT
materials = list(MAT_METAL=500, MAT_GLASS=500)
w_class = WEIGHT_CLASS_SMALL
var/turf/pointer_loc
diff --git a/code/game/objects/items/devices/lightreplacer.dm b/code/game/objects/items/devices/lightreplacer.dm
index 3fde35383f..750e2a9a9b 100644
--- a/code/game/objects/items/devices/lightreplacer.dm
+++ b/code/game/objects/items/devices/lightreplacer.dm
@@ -50,7 +50,7 @@
righthand_file = 'icons/mob/inhands/misc/devices_righthand.dmi'
flags_1 = CONDUCT_1
- slot_flags = SLOT_BELT
+ slot_flags = ITEM_SLOT_BELT
force = 8
var/max_uses = 20
diff --git a/code/game/objects/items/devices/paicard.dm b/code/game/objects/items/devices/paicard.dm
index 25f3070d9e..f6d3192bce 100644
--- a/code/game/objects/items/devices/paicard.dm
+++ b/code/game/objects/items/devices/paicard.dm
@@ -6,7 +6,7 @@
lefthand_file = 'icons/mob/inhands/misc/devices_lefthand.dmi'
righthand_file = 'icons/mob/inhands/misc/devices_righthand.dmi'
w_class = WEIGHT_CLASS_SMALL
- slot_flags = SLOT_BELT
+ slot_flags = ITEM_SLOT_BELT
var/mob/living/silicon/pai/pai
resistance_flags = FIRE_PROOF | ACID_PROOF | INDESTRUCTIBLE
diff --git a/code/game/objects/items/devices/radio/electropack.dm b/code/game/objects/items/devices/radio/electropack.dm
index 7e2c5234fb..1734fa5bfb 100644
--- a/code/game/objects/items/devices/radio/electropack.dm
+++ b/code/game/objects/items/devices/radio/electropack.dm
@@ -7,7 +7,7 @@
lefthand_file = 'icons/mob/inhands/misc/devices_lefthand.dmi'
righthand_file = 'icons/mob/inhands/misc/devices_righthand.dmi'
flags_1 = CONDUCT_1
- slot_flags = SLOT_BACK
+ slot_flags = ITEM_SLOT_BACK
w_class = WEIGHT_CLASS_HUGE
materials = list(MAT_METAL=10000, MAT_GLASS=2500)
var/on = TRUE
diff --git a/code/game/objects/items/devices/radio/headset.dm b/code/game/objects/items/devices/radio/headset.dm
index d16ac424b6..f7caacf816 100644
--- a/code/game/objects/items/devices/radio/headset.dm
+++ b/code/game/objects/items/devices/radio/headset.dm
@@ -7,7 +7,7 @@
subspace_transmission = TRUE
canhear_range = 0 // can't hear headsets from very far away
- slot_flags = SLOT_EARS
+ slot_flags = ITEM_SLOT_EARS
var/obj/item/encryptionkey/keyslot2 = null
dog_fashion = null
diff --git a/code/game/objects/items/devices/radio/radio.dm b/code/game/objects/items/devices/radio/radio.dm
index 361222e3cd..c4ebbd5daf 100644
--- a/code/game/objects/items/devices/radio/radio.dm
+++ b/code/game/objects/items/devices/radio/radio.dm
@@ -8,7 +8,7 @@
flags_1 = CONDUCT_1 | HEAR_1
flags_2 = NO_EMP_WIRES_2
- slot_flags = SLOT_BELT
+ slot_flags = ITEM_SLOT_BELT
throw_speed = 3
throw_range = 7
w_class = WEIGHT_CLASS_SMALL
diff --git a/code/game/objects/items/devices/reverse_bear_trap.dm b/code/game/objects/items/devices/reverse_bear_trap.dm
index 58a0ef2874..b33a0eef2d 100644
--- a/code/game/objects/items/devices/reverse_bear_trap.dm
+++ b/code/game/objects/items/devices/reverse_bear_trap.dm
@@ -3,7 +3,7 @@
desc = "A horrifying set of shut metal jaws, rigged to a kitchen timer and secured by padlock to a head-mounted clamp. To apply, hit someone with it."
icon = 'icons/obj/device.dmi'
icon_state = "reverse_bear_trap"
- slot_flags = SLOT_HEAD
+ slot_flags = ITEM_SLOT_HEAD
flags_1 = CONDUCT_1
resistance_flags = FIRE_PROOF | UNACIDABLE
w_class = WEIGHT_CLASS_NORMAL
@@ -48,7 +48,7 @@
/obj/item/reverse_bear_trap/attack_hand(mob/user)
if(iscarbon(user))
var/mob/living/carbon/C = user
- if(C.get_item_by_slot(slot_head) == src)
+ if(C.get_item_by_slot(SLOT_HEAD) == src)
if(flags_1 & NODROP_1 && !struggling)
struggling = TRUE
var/fear_string
@@ -88,20 +88,20 @@
target.visible_message("[user] starts forcing [src] onto [target]'s head! ", \
"[target] starts forcing [src] onto your head! ", "You hear clanking. ")
to_chat(user, "You start forcing [src] onto [target]'s head... ")
- if(!do_after(user, 30, target = target) || target.get_item_by_slot(slot_head))
+ if(!do_after(user, 30, target = target) || target.get_item_by_slot(SLOT_HEAD))
return
target.visible_message("[user] forces and locks [src] onto [target]'s head! ", \
"[target] locks [src] onto your head! ", "You hear a click, and then a timer ticking down. ")
to_chat(user, "You force [src] onto [target]'s head and click the padlock shut. ")
user.dropItemToGround(src)
- target.equip_to_slot_if_possible(src, slot_head)
+ target.equip_to_slot_if_possible(src, SLOT_HEAD)
arm()
notify_ghosts("[user] put a reverse bear trap on [target]!", source = src, action = NOTIFY_ORBIT, ghost_sound = 'sound/machines/beep.ogg')
/obj/item/reverse_bear_trap/proc/snap()
reset()
var/mob/living/carbon/human/H = loc
- if(!istype(H) || H.get_item_by_slot(slot_head) != src)
+ if(!istype(H) || H.get_item_by_slot(SLOT_HEAD) != src)
visible_message("[src]'s jaws snap open with an ear-piercing crack! ")
playsound(src, 'sound/effects/snap.ogg', 75, TRUE)
else
diff --git a/code/game/objects/items/devices/scanners.dm b/code/game/objects/items/devices/scanners.dm
index f174e833ae..332b73c688 100644
--- a/code/game/objects/items/devices/scanners.dm
+++ b/code/game/objects/items/devices/scanners.dm
@@ -12,7 +12,7 @@ GAS ANALYZER
icon = 'icons/obj/device.dmi'
icon_state = "t-ray0"
var/on = FALSE
- slot_flags = SLOT_BELT
+ slot_flags = ITEM_SLOT_BELT
w_class = WEIGHT_CLASS_SMALL
item_state = "electronic"
lefthand_file = 'icons/mob/inhands/misc/devices_lefthand.dmi'
@@ -67,7 +67,7 @@ GAS ANALYZER
righthand_file = 'icons/mob/inhands/equipment/medical_righthand.dmi'
desc = "A hand-held body scanner able to distinguish vital signs of the subject."
flags_1 = CONDUCT_1 | NOBLUDGEON_1
- slot_flags = SLOT_BELT
+ slot_flags = ITEM_SLOT_BELT
throwforce = 3
w_class = WEIGHT_CLASS_TINY
throw_speed = 3
@@ -347,7 +347,7 @@ GAS ANALYZER
righthand_file = 'icons/mob/inhands/equipment/tools_righthand.dmi'
w_class = WEIGHT_CLASS_SMALL
flags_1 = CONDUCT_1 | NOBLUDGEON_1
- slot_flags = SLOT_BELT
+ slot_flags = ITEM_SLOT_BELT
throwforce = 0
throw_speed = 3
throw_range = 7
diff --git a/code/game/objects/items/devices/sensor_device.dm b/code/game/objects/items/devices/sensor_device.dm
index 8aa2ec7d4e..79d26776a9 100644
--- a/code/game/objects/items/devices/sensor_device.dm
+++ b/code/game/objects/items/devices/sensor_device.dm
@@ -4,7 +4,7 @@
icon = 'icons/obj/device.dmi'
icon_state = "scanner"
w_class = WEIGHT_CLASS_SMALL
- slot_flags = SLOT_BELT
+ slot_flags = ITEM_SLOT_BELT
/obj/item/sensor_device/attack_self(mob/user)
GLOB.crewmonitor.show(user,src) //Proc already exists, just had to call it
diff --git a/code/game/objects/items/devices/taperecorder.dm b/code/game/objects/items/devices/taperecorder.dm
index 182565da22..50cdbe9c48 100644
--- a/code/game/objects/items/devices/taperecorder.dm
+++ b/code/game/objects/items/devices/taperecorder.dm
@@ -8,7 +8,7 @@
righthand_file = 'icons/mob/inhands/equipment/tools_righthand.dmi'
w_class = WEIGHT_CLASS_SMALL
flags_1 = HEAR_1
- slot_flags = SLOT_BELT
+ slot_flags = ITEM_SLOT_BELT
materials = list(MAT_METAL=60, MAT_GLASS=30)
force = 2
throwforce = 0
diff --git a/code/game/objects/items/devices/traitordevices.dm b/code/game/objects/items/devices/traitordevices.dm
index 9dd6ae5622..c3720f7ac4 100644
--- a/code/game/objects/items/devices/traitordevices.dm
+++ b/code/game/objects/items/devices/traitordevices.dm
@@ -177,7 +177,7 @@ effective or pretty fucking useless.
icon = 'icons/obj/clothing/belts.dmi'
icon_state = "utilitybelt"
item_state = "utility"
- slot_flags = SLOT_BELT
+ slot_flags = ITEM_SLOT_BELT
attack_verb = list("whipped", "lashed", "disciplined")
var/mob/living/carbon/human/user = null
@@ -188,7 +188,7 @@ effective or pretty fucking useless.
actions_types = list(/datum/action/item_action/toggle)
/obj/item/shadowcloak/ui_action_click(mob/user)
- if(user.get_item_by_slot(slot_belt) == src)
+ if(user.get_item_by_slot(SLOT_BELT) == src)
if(!on)
Activate(usr)
else
@@ -196,7 +196,7 @@ effective or pretty fucking useless.
return
/obj/item/shadowcloak/item_action_slot_check(slot, mob/user)
- if(slot == slot_belt)
+ if(slot == SLOT_BELT)
return 1
/obj/item/shadowcloak/proc/Activate(mob/living/carbon/human/user)
@@ -218,11 +218,11 @@ effective or pretty fucking useless.
/obj/item/shadowcloak/dropped(mob/user)
..()
- if(user && user.get_item_by_slot(slot_belt) != src)
+ if(user && user.get_item_by_slot(SLOT_BELT) != src)
Deactivate()
/obj/item/shadowcloak/process()
- if(user.get_item_by_slot(slot_belt) != src)
+ if(user.get_item_by_slot(SLOT_BELT) != src)
Deactivate()
return
var/turf/T = get_turf(src)
diff --git a/code/game/objects/items/granters.dm b/code/game/objects/items/granters.dm
index 9938b8a918..3f97321710 100644
--- a/code/game/objects/items/granters.dm
+++ b/code/game/objects/items/granters.dm
@@ -258,7 +258,7 @@
magichead.voicechange = TRUE //NEEEEIIGHH
if(!user.dropItemToGround(user.wear_mask))
qdel(user.wear_mask)
- user.equip_to_slot_if_possible(magichead, slot_wear_mask, TRUE, TRUE)
+ user.equip_to_slot_if_possible(magichead, SLOT_WEAR_MASK, TRUE, TRUE)
qdel(src)
else
to_chat(user,"I say thee neigh ") //It still lives here
diff --git a/code/game/objects/items/grenades/chem_grenade.dm b/code/game/objects/items/grenades/chem_grenade.dm
index 9d3df9cf7a..8bc1665a3f 100644
--- a/code/game/objects/items/grenades/chem_grenade.dm
+++ b/code/game/objects/items/grenades/chem_grenade.dm
@@ -163,8 +163,10 @@
for(var/obj/item/reagent_containers/glass/G in beakers)
reactants += G.reagents
- if(!chem_splash(get_turf(src), affected_area, reactants, ignition_temp, threatscale) && !no_splash)
- playsound(loc, 'sound/items/screwdriver2.ogg', 50, 1)
+ var/turf/detonation_turf = get_turf(src)
+
+ if(!chem_splash(detonation_turf, affected_area, reactants, ignition_temp, threatscale) && !no_splash)
+ playsound(src, 'sound/items/screwdriver2.ogg', 50, 1)
if(beakers.len)
for(var/obj/O in beakers)
O.forceMove(drop_location())
@@ -172,17 +174,15 @@
stage_change(EMPTY)
return
+ var/areas_name = get_area_name(src, TRUE)
+
if(nadeassembly)
var/mob/M = get_mob_by_ckey(assemblyattacher)
var/mob/last = get_mob_by_ckey(nadeassembly.fingerprintslast)
- var/turf/T = get_turf(src)
- var/area/A = get_area(T)
- message_admins("grenade primed by an assembly, attached by [ADMIN_LOOKUPFLW(M)] and last touched by [ADMIN_LOOKUPFLW(last)] ([nadeassembly.a_left.name] and [nadeassembly.a_right.name]) at [A.name] [ADMIN_JMP(T)].")
- log_game("grenade primed by an assembly, attached by [key_name(M)] and last touched by [key_name(last)] ([nadeassembly.a_left.name] and [nadeassembly.a_right.name]) at [A.name] [COORD(T)]")
+ message_admins("grenade primed by an assembly, attached by [ADMIN_LOOKUPFLW(M)] and last touched by [ADMIN_LOOKUPFLW(last)] ([nadeassembly.a_left.name] and [nadeassembly.a_right.name]) at [areas_name] [ADMIN_JMP(detonation_turf)].")
+ log_game("grenade primed by an assembly, attached by [key_name(M)] and last touched by [key_name(last)] ([nadeassembly.a_left.name] and [nadeassembly.a_right.name]) at [areas_name] [COORD(detonation_turf)]")
- var/turf/DT = get_turf(src)
- var/area/DA = get_area(DT)
- log_game("A grenade detonated at [DA.name] [COORD(DT)]")
+ log_game("A grenade detonated at [areas_name] [COORD(detonation_turf)]")
update_mob()
diff --git a/code/game/objects/items/grenades/ghettobomb.dm b/code/game/objects/items/grenades/ghettobomb.dm
index 5b96b74f41..d450764702 100644
--- a/code/game/objects/items/grenades/ghettobomb.dm
+++ b/code/game/objects/items/grenades/ghettobomb.dm
@@ -12,7 +12,7 @@
throw_speed = 3
throw_range = 7
flags_1 = CONDUCT_1
- slot_flags = SLOT_BELT
+ slot_flags = ITEM_SLOT_BELT
active = 0
det_time = 50
display_timer = 0
diff --git a/code/game/objects/items/grenades/grenade.dm b/code/game/objects/items/grenades/grenade.dm
index 929c649e4d..6a08777e61 100644
--- a/code/game/objects/items/grenades/grenade.dm
+++ b/code/game/objects/items/grenades/grenade.dm
@@ -10,7 +10,7 @@
throw_speed = 3
throw_range = 7
flags_1 = CONDUCT_1
- slot_flags = SLOT_BELT
+ slot_flags = ITEM_SLOT_BELT
resistance_flags = FLAMMABLE
max_integrity = 40
var/active = 0
diff --git a/code/game/objects/items/grenades/smokebomb.dm b/code/game/objects/items/grenades/smokebomb.dm
index f5a27cf5c8..d822ede78c 100644
--- a/code/game/objects/items/grenades/smokebomb.dm
+++ b/code/game/objects/items/grenades/smokebomb.dm
@@ -1,31 +1,31 @@
-/obj/item/grenade/smokebomb
- name = "smoke grenade"
- desc = "The word 'Dank' is scribbled on it in crayon."
- icon = 'icons/obj/grenade.dmi'
- icon_state = "smokewhite"
- det_time = 20
- item_state = "flashbang"
- slot_flags = SLOT_BELT
- var/datum/effect_system/smoke_spread/bad/smoke
-
-/obj/item/grenade/smokebomb/New()
- ..()
- src.smoke = new /datum/effect_system/smoke_spread/bad
- src.smoke.attach(src)
-
-/obj/item/grenade/smokebomb/Destroy()
- qdel(smoke)
- return ..()
-
-/obj/item/grenade/smokebomb/prime()
- update_mob()
- playsound(src.loc, 'sound/effects/smoke.ogg', 50, 1, -3)
- smoke.set_up(4, src)
- smoke.start()
-
-
- for(var/obj/structure/blob/B in view(8,src))
- var/damage = round(30/(get_dist(B,src)+1))
- B.take_damage(damage, BURN, "melee", 0)
- sleep(80)
- qdel(src)
+/obj/item/grenade/smokebomb
+ name = "smoke grenade"
+ desc = "The word 'Dank' is scribbled on it in crayon."
+ icon = 'icons/obj/grenade.dmi'
+ icon_state = "smokewhite"
+ det_time = 20
+ item_state = "flashbang"
+ slot_flags = ITEM_SLOT_BELT
+ var/datum/effect_system/smoke_spread/bad/smoke
+
+/obj/item/grenade/smokebomb/New()
+ ..()
+ src.smoke = new /datum/effect_system/smoke_spread/bad
+ src.smoke.attach(src)
+
+/obj/item/grenade/smokebomb/Destroy()
+ qdel(smoke)
+ return ..()
+
+/obj/item/grenade/smokebomb/prime()
+ update_mob()
+ playsound(src.loc, 'sound/effects/smoke.ogg', 50, 1, -3)
+ smoke.set_up(4, src)
+ smoke.start()
+
+
+ for(var/obj/structure/blob/B in view(8,src))
+ var/damage = round(30/(get_dist(B,src)+1))
+ B.take_damage(damage, BURN, "melee", 0)
+ sleep(80)
+ qdel(src)
diff --git a/code/game/objects/items/handcuffs.dm b/code/game/objects/items/handcuffs.dm
index 09abc25cc1..735bcaeb27 100644
--- a/code/game/objects/items/handcuffs.dm
+++ b/code/game/objects/items/handcuffs.dm
@@ -29,7 +29,7 @@
lefthand_file = 'icons/mob/inhands/equipment/security_lefthand.dmi'
righthand_file = 'icons/mob/inhands/equipment/security_righthand.dmi'
flags_1 = CONDUCT_1
- slot_flags = SLOT_BELT
+ slot_flags = ITEM_SLOT_BELT
throwforce = 0
w_class = WEIGHT_CLASS_SMALL
throw_speed = 3
diff --git a/code/game/objects/items/holy_weapons.dm b/code/game/objects/items/holy_weapons.dm
index 13ca2b35d6..560a972ee8 100644
--- a/code/game/objects/items/holy_weapons.dm
+++ b/code/game/objects/items/holy_weapons.dm
@@ -75,7 +75,7 @@
desc = "It has a mysterious, protective aura."
w_class = WEIGHT_CLASS_HUGE
force = 5
- slot_flags = SLOT_BACK
+ slot_flags = ITEM_SLOT_BACK
block_chance = 50
var/shield_icon = "shield-red"
@@ -98,7 +98,7 @@
name = "holy claymore"
desc = "A weapon fit for a crusade!"
w_class = WEIGHT_CLASS_HUGE
- slot_flags = SLOT_BACK|SLOT_BELT
+ slot_flags = ITEM_SLOT_BACK|ITEM_SLOT_BELT
block_chance = 30
sharpness = IS_SHARP
hitsound = 'sound/weapons/bladeslice.ogg'
@@ -118,7 +118,7 @@
inhand_y_dimension = 64
name = "dark blade"
desc = "Spread the glory of the dark gods!"
- slot_flags = SLOT_BELT
+ slot_flags = ITEM_SLOT_BELT
hitsound = 'sound/hallucinations/growl1.ogg'
/obj/item/nullrod/claymore/chainsaw_sword
@@ -126,7 +126,7 @@
item_state = "chainswordon"
name = "sacred chainsaw sword"
desc = "Suffer not a heretic to live."
- slot_flags = SLOT_BELT
+ slot_flags = ITEM_SLOT_BELT
attack_verb = list("sawed", "torn", "cut", "chopped", "diced")
hitsound = 'sound/weapons/chainsawhit.ogg'
@@ -135,21 +135,21 @@
item_state = "swordon"
name = "force weapon"
desc = "The blade glows with the power of faith. Or possibly a battery."
- slot_flags = SLOT_BELT
+ slot_flags = ITEM_SLOT_BELT
/obj/item/nullrod/claymore/katana
name = "hanzo steel"
desc = "Capable of cutting clean through a holy claymore."
icon_state = "katana"
item_state = "katana"
- slot_flags = SLOT_BELT | SLOT_BACK
+ slot_flags = ITEM_SLOT_BELT | ITEM_SLOT_BACK
/obj/item/nullrod/claymore/multiverse
name = "extradimensional blade"
desc = "Once the harbinger of an interdimensional war, its sharpness fluctuates wildly."
icon_state = "multiverse"
item_state = "multiverse"
- slot_flags = SLOT_BELT
+ slot_flags = ITEM_SLOT_BELT
/obj/item/nullrod/claymore/multiverse/attack(mob/living/carbon/M, mob/living/carbon/user)
force = rand(1, 30)
@@ -161,7 +161,7 @@
icon_state = "swordblue"
item_state = "swordblue"
desc = "If you strike me down, I shall become more robust than you can possibly imagine."
- slot_flags = SLOT_BELT
+ slot_flags = ITEM_SLOT_BELT
/obj/item/nullrod/claymore/saber/red
name = "dark energy sword"
@@ -182,7 +182,7 @@
item_state = "sord"
lefthand_file = 'icons/mob/inhands/weapons/swords_lefthand.dmi'
righthand_file = 'icons/mob/inhands/weapons/swords_righthand.dmi'
- slot_flags = SLOT_BELT
+ slot_flags = ITEM_SLOT_BELT
force = 4.13
throwforce = 1
hitsound = 'sound/weapons/bladeslice.ogg'
@@ -197,7 +197,7 @@
desc = "Ask not for whom the bell tolls..."
w_class = WEIGHT_CLASS_BULKY
armour_penetration = 35
- slot_flags = SLOT_BACK
+ slot_flags = ITEM_SLOT_BACK
sharpness = IS_SHARP
attack_verb = list("chopped", "sliced", "cut", "reaped")
@@ -279,7 +279,7 @@
item_state = "chainswordon"
name = "possessed chainsaw sword"
desc = "Suffer not a heretic to live."
- slot_flags = SLOT_BELT
+ slot_flags = ITEM_SLOT_BELT
force = 30
attack_verb = list("sawed", "torn", "cut", "chopped", "diced")
hitsound = 'sound/weapons/chainsawhit.ogg'
@@ -292,7 +292,7 @@
righthand_file = 'icons/mob/inhands/weapons/hammers_righthand.dmi'
name = "relic war hammer"
desc = "This war hammer cost the chaplain forty thousand space dollars."
- slot_flags = SLOT_BELT
+ slot_flags = ITEM_SLOT_BELT
w_class = WEIGHT_CLASS_HUGE
attack_verb = list("smashed", "bashed", "hammered", "crunched")
@@ -330,7 +330,7 @@
force = 16
throwforce = 15
w_class = 4
- slot_flags = SLOT_BACK
+ slot_flags = ITEM_SLOT_BACK
attack_verb = list("attacked", "smashed", "crushed", "splattered", "cracked")
hitsound = 'sound/weapons/blade1.ogg'
@@ -350,7 +350,7 @@
item_state = "chain"
lefthand_file = 'icons/mob/inhands/weapons/melee_lefthand.dmi'
righthand_file = 'icons/mob/inhands/weapons/melee_righthand.dmi'
- slot_flags = SLOT_BELT
+ slot_flags = ITEM_SLOT_BELT
attack_verb = list("whipped", "lashed")
hitsound = 'sound/weapons/chainhit.ogg'
@@ -359,7 +359,7 @@
desc = "The brim of the hat is as sharp as your wit. The edge would hurt almost as much as disproving the existence of God."
icon_state = "fedora"
item_state = "fedora"
- slot_flags = SLOT_HEAD
+ slot_flags = ITEM_SLOT_HEAD
icon = 'icons/obj/clothing/hats.dmi'
force = 0
throw_speed = 4
@@ -414,7 +414,7 @@
w_class = WEIGHT_CLASS_BULKY
force = 15
block_chance = 40
- slot_flags = SLOT_BACK
+ slot_flags = ITEM_SLOT_BACK
sharpness = IS_BLUNT
hitsound = "swing_hit"
attack_verb = list("smashed", "slammed", "whacked", "thwacked")
diff --git a/code/game/objects/items/melee/misc.dm b/code/game/objects/items/melee/misc.dm
index 32af3587f4..5ceaa9c514 100644
--- a/code/game/objects/items/melee/misc.dm
+++ b/code/game/objects/items/melee/misc.dm
@@ -17,7 +17,7 @@
lefthand_file = 'icons/mob/inhands/weapons/melee_lefthand.dmi'
righthand_file = 'icons/mob/inhands/weapons/melee_righthand.dmi'
flags_1 = CONDUCT_1
- slot_flags = SLOT_BELT
+ slot_flags = ITEM_SLOT_BELT
force = 10
throwforce = 7
w_class = WEIGHT_CLASS_NORMAL
@@ -96,7 +96,7 @@
item_state = "classic_baton"
lefthand_file = 'icons/mob/inhands/equipment/security_lefthand.dmi'
righthand_file = 'icons/mob/inhands/equipment/security_righthand.dmi'
- slot_flags = SLOT_BELT
+ slot_flags = ITEM_SLOT_BELT
force = 12 //9 hit crit
w_class = WEIGHT_CLASS_NORMAL
var/cooldown = 0
@@ -159,7 +159,7 @@
lefthand_file = 'icons/mob/inhands/weapons/melee_lefthand.dmi'
righthand_file = 'icons/mob/inhands/weapons/melee_righthand.dmi'
item_state = null
- slot_flags = SLOT_BELT
+ slot_flags = ITEM_SLOT_BELT
w_class = WEIGHT_CLASS_SMALL
item_flags = NONE
force = 0
@@ -196,7 +196,7 @@
to_chat(user, "You collapse the baton. ")
icon_state = "telebaton_0"
item_state = null //no sprite for concealment even when in hand
- slot_flags = SLOT_BELT
+ slot_flags = ITEM_SLOT_BELT
w_class = WEIGHT_CLASS_SMALL
force = 0 //not so robust now
attack_verb = list("hit", "poked")
@@ -308,7 +308,7 @@
item_state = "chain"
lefthand_file = 'icons/mob/inhands/weapons/melee_lefthand.dmi'
righthand_file = 'icons/mob/inhands/weapons/melee_righthand.dmi'
- slot_flags = SLOT_BELT
+ slot_flags = ITEM_SLOT_BELT
force = 15
w_class = WEIGHT_CLASS_NORMAL
attack_verb = list("flogged", "whipped", "lashed", "disciplined")
@@ -326,7 +326,7 @@
desc = "A telescopic roasting stick with a miniature shield generator designed to ensure entry into various high-tech shielded cooking ovens and firepits."
icon_state = "roastingstick_0"
item_state = "null"
- slot_flags = SLOT_BELT
+ slot_flags = ITEM_SLOT_BELT
w_class = WEIGHT_CLASS_SMALL
item_flags = NONE
force = 0
diff --git a/code/game/objects/items/pinpointer.dm b/code/game/objects/items/pinpointer.dm
index 788cfc56f9..d6262c10a5 100644
--- a/code/game/objects/items/pinpointer.dm
+++ b/code/game/objects/items/pinpointer.dm
@@ -5,7 +5,7 @@
icon = 'icons/obj/device.dmi'
icon_state = "pinpointer"
flags_1 = CONDUCT_1
- slot_flags = SLOT_BELT
+ slot_flags = ITEM_SLOT_BELT
w_class = WEIGHT_CLASS_SMALL
item_state = "electronic"
lefthand_file = 'icons/mob/inhands/misc/devices_lefthand.dmi'
diff --git a/code/game/objects/items/religion.dm b/code/game/objects/items/religion.dm
index 1d873ed7cc..696168d69d 100644
--- a/code/game/objects/items/religion.dm
+++ b/code/game/objects/items/religion.dm
@@ -325,7 +325,7 @@
icon_state = "crusader"
w_class = WEIGHT_CLASS_NORMAL
armor = list("melee" = 50, "bullet" = 50, "laser" = 50, "energy" = 40, "bomb" = 60, "bio" = 0, "rad" = 0, "fire" = 60, "acid" = 60) //does this even do anything on boots?
- flags_1 = NOSLIP_1
+ clothing_flags = NOSLIP
cold_protection = FEET
min_cold_protection_temperature = SHOES_MIN_TEMP_PROTECT
heat_protection = FEET
diff --git a/code/game/objects/items/shields.dm b/code/game/objects/items/shields.dm
index 367a10d21f..d6bb54bddf 100644
--- a/code/game/objects/items/shields.dm
+++ b/code/game/objects/items/shields.dm
@@ -10,7 +10,7 @@
icon_state = "riot"
lefthand_file = 'icons/mob/inhands/equipment/shields_lefthand.dmi'
righthand_file = 'icons/mob/inhands/equipment/shields_righthand.dmi'
- slot_flags = SLOT_BACK
+ slot_flags = ITEM_SLOT_BACK
force = 10
throwforce = 5
throw_speed = 2
@@ -143,7 +143,7 @@
throwforce = 5
throw_speed = 2
w_class = WEIGHT_CLASS_BULKY
- slot_flags = SLOT_BACK
+ slot_flags = ITEM_SLOT_BACK
to_chat(user, "You extend \the [src]. ")
else
force = 3
diff --git a/code/game/objects/items/singularityhammer.dm b/code/game/objects/items/singularityhammer.dm
index 5d96213934..11248aad50 100644
--- a/code/game/objects/items/singularityhammer.dm
+++ b/code/game/objects/items/singularityhammer.dm
@@ -5,7 +5,7 @@
lefthand_file = 'icons/mob/inhands/weapons/hammers_lefthand.dmi'
righthand_file = 'icons/mob/inhands/weapons/hammers_righthand.dmi'
flags_1 = CONDUCT_1
- slot_flags = SLOT_BACK
+ slot_flags = ITEM_SLOT_BACK
force = 5
force_unwielded = 5
force_wielded = 20
@@ -76,7 +76,7 @@
lefthand_file = 'icons/mob/inhands/weapons/hammers_lefthand.dmi'
righthand_file = 'icons/mob/inhands/weapons/hammers_righthand.dmi'
flags_1 = CONDUCT_1
- slot_flags = SLOT_BACK
+ slot_flags = ITEM_SLOT_BACK
force = 5
force_unwielded = 5
force_wielded = 25
diff --git a/code/game/objects/items/storage/backpack.dm b/code/game/objects/items/storage/backpack.dm
index a899820b6f..ec41395090 100644
--- a/code/game/objects/items/storage/backpack.dm
+++ b/code/game/objects/items/storage/backpack.dm
@@ -17,7 +17,7 @@
lefthand_file = 'icons/mob/inhands/equipment/backpack_lefthand.dmi'
righthand_file = 'icons/mob/inhands/equipment/backpack_righthand.dmi'
w_class = WEIGHT_CLASS_BULKY
- slot_flags = SLOT_BACK //ERROOOOO
+ slot_flags = ITEM_SLOT_BACK //ERROOOOO
resistance_flags = NONE
max_integrity = 300
diff --git a/code/game/objects/items/storage/bags.dm b/code/game/objects/items/storage/bags.dm
index 3afae40c47..3b68372e2b 100644
--- a/code/game/objects/items/storage/bags.dm
+++ b/code/game/objects/items/storage/bags.dm
@@ -17,7 +17,7 @@
// Generic non-item
/obj/item/storage/bag
- slot_flags = SLOT_BELT
+ slot_flags = ITEM_SLOT_BELT
/obj/item/storage/bag/ComponentInitialize()
. = ..()
@@ -94,7 +94,7 @@
desc = "This little bugger can be used to store and transport ores."
icon = 'icons/obj/mining.dmi'
icon_state = "satchel"
- slot_flags = SLOT_BELT | SLOT_POCKET
+ slot_flags = ITEM_SLOT_BELT | ITEM_SLOT_POCKET
w_class = WEIGHT_CLASS_NORMAL
component_type = /datum/component/storage/concrete/stack
var/spam_protection = FALSE //If this is TRUE, the holder won't receive any messages when they fail to pick up ore through crossing it
diff --git a/code/game/objects/items/storage/belt.dm b/code/game/objects/items/storage/belt.dm
index 94ef1f5fa5..f7cde410aa 100755
--- a/code/game/objects/items/storage/belt.dm
+++ b/code/game/objects/items/storage/belt.dm
@@ -6,7 +6,7 @@
item_state = "utility"
lefthand_file = 'icons/mob/inhands/equipment/belt_lefthand.dmi'
righthand_file = 'icons/mob/inhands/equipment/belt_righthand.dmi'
- slot_flags = SLOT_BELT
+ slot_flags = ITEM_SLOT_BELT
attack_verb = list("whipped", "lashed", "disciplined")
max_integrity = 300
var/content_overlays = FALSE //If this is true, the belt will gain overlays based on what it's holding
diff --git a/code/game/objects/items/storage/book.dm b/code/game/objects/items/storage/book.dm
index 44c41e419b..db47fd3d0b 100644
--- a/code/game/objects/items/storage/book.dm
+++ b/code/game/objects/items/storage/book.dm
@@ -74,7 +74,7 @@ GLOBAL_LIST_INIT(bibleitemstates, list("bible", "koran", "scrapbook", "bible",
if(B.icon_state == "honk1" || B.icon_state == "honk2")
var/mob/living/carbon/human/H = usr
H.dna.add_mutation(CLOWNMUT)
- H.equip_to_slot_or_del(new /obj/item/clothing/mask/gas/clown_hat(H), slot_wear_mask)
+ H.equip_to_slot_or_del(new /obj/item/clothing/mask/gas/clown_hat(H), SLOT_WEAR_MASK)
SSreligion.bible_icon_state = B.icon_state
SSreligion.bible_item_state = B.item_state
diff --git a/code/game/objects/items/storage/boxes.dm b/code/game/objects/items/storage/boxes.dm
index 88a0dd0135..e47ceee7ad 100644
--- a/code/game/objects/items/storage/boxes.dm
+++ b/code/game/objects/items/storage/boxes.dm
@@ -544,7 +544,7 @@
icon_state = "matchbox"
item_state = "zippo"
w_class = WEIGHT_CLASS_TINY
- slot_flags = SLOT_BELT
+ slot_flags = ITEM_SLOT_BELT
/obj/item/storage/box/matches/ComponentInitialize()
. = ..()
diff --git a/code/game/objects/items/storage/fancy.dm b/code/game/objects/items/storage/fancy.dm
index c0389b6bfc..f86188984f 100644
--- a/code/game/objects/items/storage/fancy.dm
+++ b/code/game/objects/items/storage/fancy.dm
@@ -109,7 +109,7 @@
icon_type = "candle"
item_state = "candlebox5"
throwforce = 2
- slot_flags = SLOT_BELT
+ slot_flags = ITEM_SLOT_BELT
spawn_type = /obj/item/candle
fancy_open = TRUE
@@ -132,7 +132,7 @@
item_state = "cigpacket"
w_class = WEIGHT_CLASS_TINY
throwforce = 0
- slot_flags = SLOT_BELT
+ slot_flags = ITEM_SLOT_BELT
icon_type = "cigarette"
spawn_type = /obj/item/clothing/mask/cigarette/space_cigarette
@@ -189,7 +189,7 @@
if(M == user && contents.len > 0 && !user.wear_mask)
var/obj/item/clothing/mask/cigarette/W = cig
SendSignal(COMSIG_TRY_STORAGE_TAKE, W, M)
- M.equip_to_slot_if_possible(W, slot_wear_mask)
+ M.equip_to_slot_if_possible(W, SLOT_WEAR_MASK)
contents -= W
to_chat(user, "You take a [icon_type] out of the pack. ")
else
diff --git a/code/game/objects/items/storage/toolbox.dm b/code/game/objects/items/storage/toolbox.dm
index c78a20a0ef..689319e672 100644
--- a/code/game/objects/items/storage/toolbox.dm
+++ b/code/game/objects/items/storage/toolbox.dm
@@ -168,7 +168,7 @@
new /obj/item/weldingtool/experimental/brass(src)
/obj/item/storage/toolbox/brass/prefilled/servant
- slot_flags = SLOT_BELT
+ slot_flags = ITEM_SLOT_BELT
fabricator_type = null
/obj/item/storage/toolbox/brass/prefilled/ratvar
diff --git a/code/game/objects/items/storage/wallets.dm b/code/game/objects/items/storage/wallets.dm
index e2e9eb9929..4b14388336 100644
--- a/code/game/objects/items/storage/wallets.dm
+++ b/code/game/objects/items/storage/wallets.dm
@@ -1,95 +1,95 @@
-/obj/item/storage/wallet
- name = "wallet"
- desc = "It can hold a few small and personal things."
- icon_state = "wallet"
- w_class = WEIGHT_CLASS_SMALL
- resistance_flags = FLAMMABLE
- slot_flags = SLOT_ID
-
- var/obj/item/card/id/front_id = null
- var/list/combined_access
-
-/obj/item/storage/wallet/ComponentInitialize()
- . = ..()
- GET_COMPONENT(STR, /datum/component/storage)
- STR.max_items = 4
- STR.can_hold = typecacheof(list(
- /obj/item/stack/spacecash,
- /obj/item/card,
- /obj/item/clothing/mask/cigarette,
- /obj/item/flashlight/pen,
- /obj/item/seeds,
- /obj/item/stack/medical,
- /obj/item/toy/crayon,
- /obj/item/coin,
- /obj/item/dice,
- /obj/item/disk,
- /obj/item/implanter,
- /obj/item/lighter,
- /obj/item/lipstick,
- /obj/item/match,
- /obj/item/paper,
- /obj/item/pen,
- /obj/item/photo,
- /obj/item/reagent_containers/dropper,
- /obj/item/reagent_containers/syringe,
- /obj/item/screwdriver,
- /obj/item/stamp))
-
-/obj/item/storage/wallet/Exited(atom/movable/AM)
- . = ..()
- // The loc has not actually changed yet when this proc is called, so call
- // refreshID and have it ignore the outgoing atom.
- refreshID(AM)
-
-/obj/item/storage/wallet/proc/refreshID(atom/movable/removed)
- LAZYCLEARLIST(combined_access)
- if(!(front_id in src) || front_id == removed)
- front_id = null
- for(var/obj/item/card/id/I in contents)
- if(I == removed)
- continue
- if(!front_id)
- front_id = I
- LAZYINITLIST(combined_access)
- combined_access |= I.access
- update_icon()
-
-/obj/item/storage/wallet/Entered(atom/movable/AM)
- . = ..()
- refreshID()
-
-/obj/item/storage/wallet/update_icon()
- var/new_state = "wallet"
- if(front_id)
- new_state = "wallet_[front_id.icon_state]"
- if(new_state != icon_state) //avoid so many icon state changes.
- icon_state = new_state
-
-/obj/item/storage/wallet/GetID()
- return front_id
-
-/obj/item/storage/wallet/GetAccess()
- if(LAZYLEN(combined_access))
- return combined_access
- else
- return ..()
-
-/obj/item/storage/wallet/random
- icon_state = "random_wallet"
-
-/obj/item/storage/wallet/random/PopulateContents()
- var/item1_type = pick( /obj/item/stack/spacecash/c10, /obj/item/stack/spacecash/c100, /obj/item/stack/spacecash/c1000, /obj/item/stack/spacecash/c20, /obj/item/stack/spacecash/c200, /obj/item/stack/spacecash/c50, /obj/item/stack/spacecash/c500)
- var/item2_type
- if(prob(50))
- item2_type = pick( /obj/item/stack/spacecash/c10, /obj/item/stack/spacecash/c100, /obj/item/stack/spacecash/c1000, /obj/item/stack/spacecash/c20, /obj/item/stack/spacecash/c200, /obj/item/stack/spacecash/c50, /obj/item/stack/spacecash/c500)
- var/item3_type = pick( /obj/item/coin/silver, /obj/item/coin/silver, /obj/item/coin/gold, /obj/item/coin/iron, /obj/item/coin/iron, /obj/item/coin/iron )
-
- spawn(2)
- if(item1_type)
- new item1_type(src)
- if(item2_type)
- new item2_type(src)
- if(item3_type)
- new item3_type(src)
- update_icon()
+/obj/item/storage/wallet
+ name = "wallet"
+ desc = "It can hold a few small and personal things."
+ icon_state = "wallet"
+ w_class = WEIGHT_CLASS_SMALL
+ resistance_flags = FLAMMABLE
+ slot_flags = ITEM_SLOT_ID
+
+ var/obj/item/card/id/front_id = null
+ var/list/combined_access
+
+/obj/item/storage/wallet/ComponentInitialize()
+ . = ..()
+ GET_COMPONENT(STR, /datum/component/storage)
+ STR.max_items = 4
+ STR.can_hold = typecacheof(list(
+ /obj/item/stack/spacecash,
+ /obj/item/card,
+ /obj/item/clothing/mask/cigarette,
+ /obj/item/flashlight/pen,
+ /obj/item/seeds,
+ /obj/item/stack/medical,
+ /obj/item/toy/crayon,
+ /obj/item/coin,
+ /obj/item/dice,
+ /obj/item/disk,
+ /obj/item/implanter,
+ /obj/item/lighter,
+ /obj/item/lipstick,
+ /obj/item/match,
+ /obj/item/paper,
+ /obj/item/pen,
+ /obj/item/photo,
+ /obj/item/reagent_containers/dropper,
+ /obj/item/reagent_containers/syringe,
+ /obj/item/screwdriver,
+ /obj/item/stamp))
+
+/obj/item/storage/wallet/Exited(atom/movable/AM)
+ . = ..()
+ // The loc has not actually changed yet when this proc is called, so call
+ // refreshID and have it ignore the outgoing atom.
+ refreshID(AM)
+
+/obj/item/storage/wallet/proc/refreshID(atom/movable/removed)
+ LAZYCLEARLIST(combined_access)
+ if(!(front_id in src) || front_id == removed)
+ front_id = null
+ for(var/obj/item/card/id/I in contents)
+ if(I == removed)
+ continue
+ if(!front_id)
+ front_id = I
+ LAZYINITLIST(combined_access)
+ combined_access |= I.access
+ update_icon()
+
+/obj/item/storage/wallet/Entered(atom/movable/AM)
+ . = ..()
+ refreshID()
+
+/obj/item/storage/wallet/update_icon()
+ var/new_state = "wallet"
+ if(front_id)
+ new_state = "wallet_[front_id.icon_state]"
+ if(new_state != icon_state) //avoid so many icon state changes.
+ icon_state = new_state
+
+/obj/item/storage/wallet/GetID()
+ return front_id
+
+/obj/item/storage/wallet/GetAccess()
+ if(LAZYLEN(combined_access))
+ return combined_access
+ else
+ return ..()
+
+/obj/item/storage/wallet/random
+ icon_state = "random_wallet"
+
+/obj/item/storage/wallet/random/PopulateContents()
+ var/item1_type = pick( /obj/item/stack/spacecash/c10, /obj/item/stack/spacecash/c100, /obj/item/stack/spacecash/c1000, /obj/item/stack/spacecash/c20, /obj/item/stack/spacecash/c200, /obj/item/stack/spacecash/c50, /obj/item/stack/spacecash/c500)
+ var/item2_type
+ if(prob(50))
+ item2_type = pick( /obj/item/stack/spacecash/c10, /obj/item/stack/spacecash/c100, /obj/item/stack/spacecash/c1000, /obj/item/stack/spacecash/c20, /obj/item/stack/spacecash/c200, /obj/item/stack/spacecash/c50, /obj/item/stack/spacecash/c500)
+ var/item3_type = pick( /obj/item/coin/silver, /obj/item/coin/silver, /obj/item/coin/gold, /obj/item/coin/iron, /obj/item/coin/iron, /obj/item/coin/iron )
+
+ spawn(2)
+ if(item1_type)
+ new item1_type(src)
+ if(item2_type)
+ new item2_type(src)
+ if(item3_type)
+ new item3_type(src)
+ update_icon()
diff --git a/code/game/objects/items/stunbaton.dm b/code/game/objects/items/stunbaton.dm
index 612082866c..76cf5283e1 100644
--- a/code/game/objects/items/stunbaton.dm
+++ b/code/game/objects/items/stunbaton.dm
@@ -5,7 +5,7 @@
item_state = "baton"
lefthand_file = 'icons/mob/inhands/equipment/security_lefthand.dmi'
righthand_file = 'icons/mob/inhands/equipment/security_righthand.dmi'
- slot_flags = SLOT_BELT
+ slot_flags = ITEM_SLOT_BELT
force = 10
throwforce = 7
w_class = WEIGHT_CLASS_NORMAL
@@ -195,7 +195,7 @@
stunforce = 100
hitcost = 2000
throw_hit_chance = 10
- slot_flags = SLOT_BACK
+ slot_flags = ITEM_SLOT_BACK
var/obj/item/assembly/igniter/sparkler = 0
/obj/item/melee/baton/cattleprod/Initialize()
diff --git a/code/game/objects/items/tanks/tank_types.dm b/code/game/objects/items/tanks/tank_types.dm
index 4a687b458d..f4eb763847 100644
--- a/code/game/objects/items/tanks/tank_types.dm
+++ b/code/game/objects/items/tanks/tank_types.dm
@@ -137,7 +137,7 @@
/obj/item/tank/internals/plasmaman/belt
icon_state = "plasmaman_tank_belt"
item_state = "plasmaman_tank_belt"
- slot_flags = SLOT_BELT
+ slot_flags = ITEM_SLOT_BELT
force = 5
volume = 6
w_class = WEIGHT_CLASS_SMALL //thanks i forgot this
@@ -157,7 +157,7 @@
desc = "Used for emergencies. Contains very little oxygen, so try to conserve it until you actually need it."
icon_state = "emergency"
flags_1 = CONDUCT_1
- slot_flags = SLOT_BELT
+ slot_flags = ITEM_SLOT_BELT
w_class = WEIGHT_CLASS_SMALL
force = 4
distribute_pressure = TANK_DEFAULT_RELEASE_PRESSURE
diff --git a/code/game/objects/items/tanks/tanks.dm b/code/game/objects/items/tanks/tanks.dm
index f841822f21..91058528e6 100644
--- a/code/game/objects/items/tanks/tanks.dm
+++ b/code/game/objects/items/tanks/tanks.dm
@@ -4,7 +4,7 @@
lefthand_file = 'icons/mob/inhands/equipment/tanks_lefthand.dmi'
righthand_file = 'icons/mob/inhands/equipment/tanks_righthand.dmi'
flags_1 = CONDUCT_1
- slot_flags = SLOT_BACK
+ slot_flags = ITEM_SLOT_BACK
hitsound = 'sound/weapons/smash.ogg'
pressure_resistance = ONE_ATMOSPHERE * 5
force = 5
@@ -38,7 +38,7 @@
return
if(H.wear_mask.mask_adjusted)
H.wear_mask.adjustmask(H)
- if(!(H.wear_mask.flags_1 & MASKINTERNALS_1))
+ if(!(H.wear_mask.clothing_flags & MASKINTERNALS))
to_chat(H, "[H.wear_mask] can't use [src]! ")
return
diff --git a/code/game/objects/items/tanks/watertank.dm b/code/game/objects/items/tanks/watertank.dm
index 2a5e92d375..b8eb2dcc00 100644
--- a/code/game/objects/items/tanks/watertank.dm
+++ b/code/game/objects/items/tanks/watertank.dm
@@ -6,7 +6,7 @@
icon_state = "waterbackpack"
item_state = "waterbackpack"
w_class = WEIGHT_CLASS_BULKY
- slot_flags = SLOT_BACK
+ slot_flags = ITEM_SLOT_BACK
slowdown = 1
actions_types = list(/datum/action/item_action/toggle_mister)
max_integrity = 200
@@ -59,7 +59,7 @@
/obj/item/watertank/equipped(mob/user, slot)
..()
- if(slot != slot_back)
+ if(slot != SLOT_BACK)
remove_noz()
/obj/item/watertank/proc/remove_noz()
@@ -343,7 +343,7 @@
icon_state = "waterbackpackatmos"
item_state = "waterbackpackatmos"
w_class = WEIGHT_CLASS_BULKY
- slot_flags = SLOT_BACK
+ slot_flags = ITEM_SLOT_BACK
slowdown = 1
actions_types = list(/datum/action/item_action/activate_injector)
@@ -360,14 +360,14 @@
toggle_injection()
/obj/item/reagent_containers/chemtank/item_action_slot_check(slot, mob/user)
- if(slot == slot_back)
+ if(slot == SLOT_BACK)
return 1
/obj/item/reagent_containers/chemtank/proc/toggle_injection()
var/mob/living/carbon/human/user = usr
if(!istype(user))
return
- if (user.get_item_by_slot(slot_back) != src)
+ if (user.get_item_by_slot(SLOT_BACK) != src)
to_chat(user, "The chemtank needs to be on your back before you can activate it! ")
return
if(on)
diff --git a/code/game/objects/items/tools/crowbar.dm b/code/game/objects/items/tools/crowbar.dm
index ed6233a0b6..0684da08b2 100644
--- a/code/game/objects/items/tools/crowbar.dm
+++ b/code/game/objects/items/tools/crowbar.dm
@@ -7,7 +7,7 @@
righthand_file = 'icons/mob/inhands/equipment/tools_righthand.dmi'
usesound = 'sound/items/crowbar.ogg'
flags_1 = CONDUCT_1
- slot_flags = SLOT_BELT
+ slot_flags = ITEM_SLOT_BELT
force = 5
throwforce = 7
w_class = WEIGHT_CLASS_SMALL
diff --git a/code/game/objects/items/tools/screwdriver.dm b/code/game/objects/items/tools/screwdriver.dm
index 56537e703a..a29c103fda 100644
--- a/code/game/objects/items/tools/screwdriver.dm
+++ b/code/game/objects/items/tools/screwdriver.dm
@@ -7,7 +7,7 @@
lefthand_file = 'icons/mob/inhands/equipment/tools_lefthand.dmi'
righthand_file = 'icons/mob/inhands/equipment/tools_righthand.dmi'
flags_1 = CONDUCT_1
- slot_flags = SLOT_BELT
+ slot_flags = ITEM_SLOT_BELT
force = 5
w_class = WEIGHT_CLASS_TINY
throwforce = 5
diff --git a/code/game/objects/items/tools/weldingtool.dm b/code/game/objects/items/tools/weldingtool.dm
index dc496187bc..229aa70ee0 100644
--- a/code/game/objects/items/tools/weldingtool.dm
+++ b/code/game/objects/items/tools/weldingtool.dm
@@ -1,372 +1,372 @@
-#define WELDER_FUEL_BURN_INTERVAL 13
-/obj/item/weldingtool
- name = "welding tool"
- desc = "A standard edition welder provided by Nanotrasen."
- icon = 'icons/obj/tools.dmi'
- icon_state = "welder"
- item_state = "welder"
- lefthand_file = 'icons/mob/inhands/equipment/tools_lefthand.dmi'
- righthand_file = 'icons/mob/inhands/equipment/tools_righthand.dmi'
- flags_1 = CONDUCT_1
- slot_flags = SLOT_BELT
- force = 3
- throwforce = 5
- hitsound = "swing_hit"
- usesound = list('sound/items/welder.ogg', 'sound/items/welder2.ogg')
- var/acti_sound = 'sound/items/welderactivate.ogg'
- var/deac_sound = 'sound/items/welderdeactivate.ogg'
- throw_speed = 3
- throw_range = 5
- w_class = WEIGHT_CLASS_SMALL
- armor = list("melee" = 0, "bullet" = 0, "laser" = 0, "energy" = 0, "bomb" = 0, "bio" = 0, "rad" = 0, "fire" = 100, "acid" = 30)
- resistance_flags = FIRE_PROOF
-
- materials = list(MAT_METAL=70, MAT_GLASS=30)
- var/welding = 0 //Whether or not the welding tool is off(0), on(1) or currently welding(2)
- var/status = TRUE //Whether the welder is secured or unsecured (able to attach rods to it to make a flamethrower)
- var/max_fuel = 20 //The max amount of fuel the welder can hold
- var/change_icons = 1
- var/can_off_process = 0
- var/light_intensity = 2 //how powerful the emitted light is when used.
- var/progress_flash_divisor = 10
- var/burned_fuel_for = 0 //when fuel was last removed
- heat = 3800
- tool_behaviour = TOOL_WELDER
- toolspeed = 1
-
-/obj/item/weldingtool/Initialize()
- . = ..()
- create_reagents(max_fuel)
- reagents.add_reagent("welding_fuel", max_fuel)
- update_icon()
-
-
-/obj/item/weldingtool/proc/update_torch()
- if(welding)
- add_overlay("[initial(icon_state)]-on")
- item_state = "[initial(item_state)]1"
- else
- item_state = "[initial(item_state)]"
-
-
-/obj/item/weldingtool/update_icon()
- cut_overlays()
- if(change_icons)
- var/ratio = get_fuel() / max_fuel
- ratio = CEILING(ratio*4, 1) * 25
- add_overlay("[initial(icon_state)][ratio]")
- update_torch()
- return
-
-
-/obj/item/weldingtool/process()
- switch(welding)
- if(0)
- force = 3
- damtype = "brute"
- update_icon()
- if(!can_off_process)
- STOP_PROCESSING(SSobj, src)
- return
- //Welders left on now use up fuel, but lets not have them run out quite that fast
- if(1)
- force = 15
- damtype = "fire"
- ++burned_fuel_for
- if(burned_fuel_for >= WELDER_FUEL_BURN_INTERVAL)
- use(1)
- update_icon()
-
- //This is to start fires. process() is only called if the welder is on.
- open_flame()
-
-
-/obj/item/weldingtool/suicide_act(mob/user)
- user.visible_message("[user] welds [user.p_their()] every orifice closed! It looks like [user.p_theyre()] trying to commit suicide! ")
- return (FIRELOSS)
-
-
-/obj/item/weldingtool/attackby(obj/item/I, mob/user, params)
- if(istype(I, /obj/item/screwdriver))
- flamethrower_screwdriver(I, user)
- else if(istype(I, /obj/item/stack/rods))
- flamethrower_rods(I, user)
- else
- . = ..()
- update_icon()
-
-/obj/item/weldingtool/proc/explode()
- var/turf/T = get_turf(loc)
- var/plasmaAmount = reagents.get_reagent_amount("plasma")
- dyn_explosion(T, plasmaAmount/5)//20 plasma in a standard welder has a 4 power explosion. no breaches, but enough to kill/dismember holder
- qdel(src)
-
-/obj/item/weldingtool/attack(mob/living/carbon/human/H, mob/user)
- if(!istype(H))
- return ..()
-
- var/obj/item/bodypart/affecting = H.get_bodypart(check_zone(user.zone_selected))
-
- if(affecting && affecting.status == BODYPART_ROBOTIC && user.a_intent != INTENT_HARM)
- if(src.use_tool(H, user, 0, volume=50, amount=1))
- if(user == H)
- user.visible_message("[user] starts to fix some of the dents on [H]'s [affecting.name]. ",
- "You start fixing some of the dents on [H]'s [affecting.name]. ")
- if(!do_mob(user, H, 50))
- return
- item_heal_robotic(H, user, 15, 0)
- else
- return ..()
-
-
-/obj/item/weldingtool/afterattack(atom/O, mob/user, proximity)
- if(!proximity)
- return
- if(!status && O.is_refillable())
- reagents.trans_to(O, reagents.total_volume)
- to_chat(user, "You empty [src]'s fuel tank into [O]. ")
- update_icon()
- if(isOn())
- use(1)
- var/turf/location = get_turf(user)
- location.hotspot_expose(700, 50, 1)
- if(get_fuel() <= 0)
- set_light(0)
-
- if(isliving(O))
- var/mob/living/L = O
- if(L.IgniteMob())
- message_admins("[key_name_admin(user)] set [key_name_admin(L)] on fire")
- log_game("[key_name(user)] set [key_name(L)] on fire")
-
-
-/obj/item/weldingtool/attack_self(mob/user)
- if(src.reagents.has_reagent("plasma"))
- message_admins("[key_name_admin(user)] activated a rigged welder.")
- explode()
- switched_on(user)
- if(welding)
- set_light(light_intensity)
-
- update_icon()
-
-
-// Returns the amount of fuel in the welder
-/obj/item/weldingtool/proc/get_fuel()
- return reagents.get_reagent_amount("welding_fuel")
-
-
-// Uses fuel from the welding tool.
-/obj/item/weldingtool/use(used = 0)
- if(!isOn() || !check_fuel())
- return FALSE
-
- if(used)
- burned_fuel_for = 0
- if(get_fuel() >= used)
- reagents.remove_reagent("welding_fuel", used)
- check_fuel()
- return TRUE
- else
- return FALSE
-
-
-//Turns off the welder if there is no more fuel (does this really need to be its own proc?)
-/obj/item/weldingtool/proc/check_fuel(mob/user)
- if(get_fuel() <= 0 && welding)
- switched_on(user)
- update_icon()
- //mob icon update
- if(ismob(loc))
- var/mob/M = loc
- M.update_inv_hands(0)
-
- return 0
- return 1
-
-//Switches the welder on
-/obj/item/weldingtool/proc/switched_on(mob/user)
- if(!status)
- to_chat(user, "[src] can't be turned on while unsecured! ")
- return
- welding = !welding
- if(welding)
- if(get_fuel() >= 1)
- to_chat(user, "You switch [src] on. ")
- playsound(loc, acti_sound, 50, 1)
- force = 15
- damtype = "fire"
- hitsound = 'sound/items/welder.ogg'
- update_icon()
- START_PROCESSING(SSobj, src)
- else
- to_chat(user, "You need more fuel! ")
- switched_off(user)
- else
- to_chat(user, "You switch [src] off. ")
- playsound(loc, deac_sound, 50, 1)
- switched_off(user)
-
-//Switches the welder off
-/obj/item/weldingtool/proc/switched_off(mob/user)
- welding = 0
- set_light(0)
-
- force = 3
- damtype = "brute"
- hitsound = "swing_hit"
- update_icon()
-
-
-/obj/item/weldingtool/examine(mob/user)
- ..()
- to_chat(user, "It contains [get_fuel()] unit\s of fuel out of [max_fuel].")
-
-/obj/item/weldingtool/is_hot()
- return welding * heat
-
-//Returns whether or not the welding tool is currently on.
-/obj/item/weldingtool/proc/isOn()
- return welding
-
-// When welding is about to start, run a normal tool_use_check, then flash a mob if it succeeds.
-/obj/item/weldingtool/tool_start_check(mob/living/user, amount=0)
- . = tool_use_check(user, amount)
- if(. && user)
- user.flash_act(light_intensity)
-
-// Flash the user during welding progress
-/obj/item/weldingtool/tool_check_callback(mob/living/user, amount, datum/callback/extra_checks)
- . = ..()
- if(. && user)
- if (progress_flash_divisor == 0)
- user.flash_act(min(light_intensity,1))
- progress_flash_divisor = initial(progress_flash_divisor)
- else
- progress_flash_divisor--
-
-// If welding tool ran out of fuel during a construction task, construction fails.
-/obj/item/weldingtool/tool_use_check(mob/living/user, amount)
- if(!isOn() || !check_fuel())
- to_chat(user, "[src] has to be on to complete this task! ")
- return FALSE
-
- if(get_fuel() >= amount)
- return TRUE
- else
- to_chat(user, "You need more welding fuel to complete this task! ")
- return FALSE
-
-
-/obj/item/weldingtool/proc/flamethrower_screwdriver(obj/item/I, mob/user)
- if(welding)
- to_chat(user, "Turn it off first! ")
- return
- status = !status
- if(status)
- to_chat(user, "You resecure [src] and close the fuel tank. ")
- container_type = NONE
- else
- to_chat(user, "[src] can now be attached, modified, and refuelled. ")
- container_type = OPENCONTAINER
- add_fingerprint(user)
-
-/obj/item/weldingtool/proc/flamethrower_rods(obj/item/I, mob/user)
- if(!status)
- var/obj/item/stack/rods/R = I
- if (R.use(1))
- var/obj/item/flamethrower/F = new /obj/item/flamethrower(user.loc)
- if(!remove_item_from_storage(F))
- user.transferItemToLoc(src, F, TRUE)
- F.weldtool = src
- add_fingerprint(user)
- to_chat(user, "You add a rod to a welder, starting to build a flamethrower. ")
- user.put_in_hands(F)
- else
- to_chat(user, "You need one rod to start building a flamethrower! ")
-
-/obj/item/weldingtool/ignition_effect(atom/A, mob/user)
- if(use_tool(A, user, 0, amount=1))
- return "[user] casually lights [A] with [src], what a badass. "
- else
- return ""
-
-/obj/item/weldingtool/largetank
- name = "industrial welding tool"
- desc = "A slightly larger welder with a larger tank."
- icon_state = "indwelder"
- max_fuel = 40
- materials = list(MAT_GLASS=60)
-
-/obj/item/weldingtool/largetank/cyborg
- name = "integrated welding tool"
- desc = "An advanced welder designed to be used in robotic systems."
- toolspeed = 0.5
-
-/obj/item/weldingtool/largetank/flamethrower_screwdriver()
- return
-
-
-/obj/item/weldingtool/mini
- name = "emergency welding tool"
- desc = "A miniature welder used during emergencies."
- icon_state = "miniwelder"
- max_fuel = 10
- w_class = WEIGHT_CLASS_TINY
- materials = list(MAT_METAL=30, MAT_GLASS=10)
- change_icons = 0
-
-/obj/item/weldingtool/mini/flamethrower_screwdriver()
- return
-
-/obj/item/weldingtool/abductor
- name = "alien welding tool"
- desc = "An alien welding tool. Whatever fuel it uses, it never runs out."
- icon = 'icons/obj/abductor.dmi'
- icon_state = "welder"
- toolspeed = 0.1
- light_intensity = 0
- change_icons = 0
-
-/obj/item/weldingtool/abductor/process()
- if(get_fuel() <= max_fuel)
- reagents.add_reagent("welding_fuel", 1)
- ..()
-
-/obj/item/weldingtool/hugetank
- name = "upgraded industrial welding tool"
- desc = "An upgraded welder based of the industrial welder."
- icon_state = "upindwelder"
- item_state = "upindwelder"
- max_fuel = 80
- materials = list(MAT_METAL=70, MAT_GLASS=120)
-
-/obj/item/weldingtool/experimental
- name = "experimental welding tool"
- desc = "An experimental welder capable of self-fuel generation and less harmful to the eyes."
- icon_state = "exwelder"
- item_state = "exwelder"
- max_fuel = 40
- materials = list(MAT_METAL=70, MAT_GLASS=120)
- var/last_gen = 0
- change_icons = 0
- can_off_process = 1
- light_intensity = 1
- toolspeed = 0.5
- var/nextrefueltick = 0
-
-/obj/item/weldingtool/experimental/brass
- name = "brass welding tool"
- desc = "A brass welder that seems to constantly refuel itself. It is faintly warm to the touch."
- resistance_flags = FIRE_PROOF | ACID_PROOF
- icon_state = "brasswelder"
- item_state = "brasswelder"
-
-
-/obj/item/weldingtool/experimental/process()
- ..()
- if(get_fuel() < max_fuel && nextrefueltick < world.time)
- nextrefueltick = world.time + 10
- reagents.add_reagent("welding_fuel", 1)
-
-#undef WELDER_FUEL_BURN_INTERVAL
+#define WELDER_FUEL_BURN_INTERVAL 13
+/obj/item/weldingtool
+ name = "welding tool"
+ desc = "A standard edition welder provided by Nanotrasen."
+ icon = 'icons/obj/tools.dmi'
+ icon_state = "welder"
+ item_state = "welder"
+ lefthand_file = 'icons/mob/inhands/equipment/tools_lefthand.dmi'
+ righthand_file = 'icons/mob/inhands/equipment/tools_righthand.dmi'
+ flags_1 = CONDUCT_1
+ slot_flags = ITEM_SLOT_BELT
+ force = 3
+ throwforce = 5
+ hitsound = "swing_hit"
+ usesound = list('sound/items/welder.ogg', 'sound/items/welder2.ogg')
+ var/acti_sound = 'sound/items/welderactivate.ogg'
+ var/deac_sound = 'sound/items/welderdeactivate.ogg'
+ throw_speed = 3
+ throw_range = 5
+ w_class = WEIGHT_CLASS_SMALL
+ armor = list("melee" = 0, "bullet" = 0, "laser" = 0, "energy" = 0, "bomb" = 0, "bio" = 0, "rad" = 0, "fire" = 100, "acid" = 30)
+ resistance_flags = FIRE_PROOF
+
+ materials = list(MAT_METAL=70, MAT_GLASS=30)
+ var/welding = 0 //Whether or not the welding tool is off(0), on(1) or currently welding(2)
+ var/status = TRUE //Whether the welder is secured or unsecured (able to attach rods to it to make a flamethrower)
+ var/max_fuel = 20 //The max amount of fuel the welder can hold
+ var/change_icons = 1
+ var/can_off_process = 0
+ var/light_intensity = 2 //how powerful the emitted light is when used.
+ var/progress_flash_divisor = 10
+ var/burned_fuel_for = 0 //when fuel was last removed
+ heat = 3800
+ tool_behaviour = TOOL_WELDER
+ toolspeed = 1
+
+/obj/item/weldingtool/Initialize()
+ . = ..()
+ create_reagents(max_fuel)
+ reagents.add_reagent("welding_fuel", max_fuel)
+ update_icon()
+
+
+/obj/item/weldingtool/proc/update_torch()
+ if(welding)
+ add_overlay("[initial(icon_state)]-on")
+ item_state = "[initial(item_state)]1"
+ else
+ item_state = "[initial(item_state)]"
+
+
+/obj/item/weldingtool/update_icon()
+ cut_overlays()
+ if(change_icons)
+ var/ratio = get_fuel() / max_fuel
+ ratio = CEILING(ratio*4, 1) * 25
+ add_overlay("[initial(icon_state)][ratio]")
+ update_torch()
+ return
+
+
+/obj/item/weldingtool/process()
+ switch(welding)
+ if(0)
+ force = 3
+ damtype = "brute"
+ update_icon()
+ if(!can_off_process)
+ STOP_PROCESSING(SSobj, src)
+ return
+ //Welders left on now use up fuel, but lets not have them run out quite that fast
+ if(1)
+ force = 15
+ damtype = "fire"
+ ++burned_fuel_for
+ if(burned_fuel_for >= WELDER_FUEL_BURN_INTERVAL)
+ use(1)
+ update_icon()
+
+ //This is to start fires. process() is only called if the welder is on.
+ open_flame()
+
+
+/obj/item/weldingtool/suicide_act(mob/user)
+ user.visible_message("[user] welds [user.p_their()] every orifice closed! It looks like [user.p_theyre()] trying to commit suicide! ")
+ return (FIRELOSS)
+
+
+/obj/item/weldingtool/attackby(obj/item/I, mob/user, params)
+ if(istype(I, /obj/item/screwdriver))
+ flamethrower_screwdriver(I, user)
+ else if(istype(I, /obj/item/stack/rods))
+ flamethrower_rods(I, user)
+ else
+ . = ..()
+ update_icon()
+
+/obj/item/weldingtool/proc/explode()
+ var/turf/T = get_turf(loc)
+ var/plasmaAmount = reagents.get_reagent_amount("plasma")
+ dyn_explosion(T, plasmaAmount/5)//20 plasma in a standard welder has a 4 power explosion. no breaches, but enough to kill/dismember holder
+ qdel(src)
+
+/obj/item/weldingtool/attack(mob/living/carbon/human/H, mob/user)
+ if(!istype(H))
+ return ..()
+
+ var/obj/item/bodypart/affecting = H.get_bodypart(check_zone(user.zone_selected))
+
+ if(affecting && affecting.status == BODYPART_ROBOTIC && user.a_intent != INTENT_HARM)
+ if(src.use_tool(H, user, 0, volume=50, amount=1))
+ if(user == H)
+ user.visible_message("[user] starts to fix some of the dents on [H]'s [affecting.name]. ",
+ "You start fixing some of the dents on [H]'s [affecting.name]. ")
+ if(!do_mob(user, H, 50))
+ return
+ item_heal_robotic(H, user, 15, 0)
+ else
+ return ..()
+
+
+/obj/item/weldingtool/afterattack(atom/O, mob/user, proximity)
+ if(!proximity)
+ return
+ if(!status && O.is_refillable())
+ reagents.trans_to(O, reagents.total_volume)
+ to_chat(user, "You empty [src]'s fuel tank into [O]. ")
+ update_icon()
+ if(isOn())
+ use(1)
+ var/turf/location = get_turf(user)
+ location.hotspot_expose(700, 50, 1)
+ if(get_fuel() <= 0)
+ set_light(0)
+
+ if(isliving(O))
+ var/mob/living/L = O
+ if(L.IgniteMob())
+ message_admins("[key_name_admin(user)] set [key_name_admin(L)] on fire")
+ log_game("[key_name(user)] set [key_name(L)] on fire")
+
+
+/obj/item/weldingtool/attack_self(mob/user)
+ if(src.reagents.has_reagent("plasma"))
+ message_admins("[key_name_admin(user)] activated a rigged welder.")
+ explode()
+ switched_on(user)
+ if(welding)
+ set_light(light_intensity)
+
+ update_icon()
+
+
+// Returns the amount of fuel in the welder
+/obj/item/weldingtool/proc/get_fuel()
+ return reagents.get_reagent_amount("welding_fuel")
+
+
+// Uses fuel from the welding tool.
+/obj/item/weldingtool/use(used = 0)
+ if(!isOn() || !check_fuel())
+ return FALSE
+
+ if(used)
+ burned_fuel_for = 0
+ if(get_fuel() >= used)
+ reagents.remove_reagent("welding_fuel", used)
+ check_fuel()
+ return TRUE
+ else
+ return FALSE
+
+
+//Turns off the welder if there is no more fuel (does this really need to be its own proc?)
+/obj/item/weldingtool/proc/check_fuel(mob/user)
+ if(get_fuel() <= 0 && welding)
+ switched_on(user)
+ update_icon()
+ //mob icon update
+ if(ismob(loc))
+ var/mob/M = loc
+ M.update_inv_hands(0)
+
+ return 0
+ return 1
+
+//Switches the welder on
+/obj/item/weldingtool/proc/switched_on(mob/user)
+ if(!status)
+ to_chat(user, "[src] can't be turned on while unsecured! ")
+ return
+ welding = !welding
+ if(welding)
+ if(get_fuel() >= 1)
+ to_chat(user, "You switch [src] on. ")
+ playsound(loc, acti_sound, 50, 1)
+ force = 15
+ damtype = "fire"
+ hitsound = 'sound/items/welder.ogg'
+ update_icon()
+ START_PROCESSING(SSobj, src)
+ else
+ to_chat(user, "You need more fuel! ")
+ switched_off(user)
+ else
+ to_chat(user, "You switch [src] off. ")
+ playsound(loc, deac_sound, 50, 1)
+ switched_off(user)
+
+//Switches the welder off
+/obj/item/weldingtool/proc/switched_off(mob/user)
+ welding = 0
+ set_light(0)
+
+ force = 3
+ damtype = "brute"
+ hitsound = "swing_hit"
+ update_icon()
+
+
+/obj/item/weldingtool/examine(mob/user)
+ ..()
+ to_chat(user, "It contains [get_fuel()] unit\s of fuel out of [max_fuel].")
+
+/obj/item/weldingtool/is_hot()
+ return welding * heat
+
+//Returns whether or not the welding tool is currently on.
+/obj/item/weldingtool/proc/isOn()
+ return welding
+
+// When welding is about to start, run a normal tool_use_check, then flash a mob if it succeeds.
+/obj/item/weldingtool/tool_start_check(mob/living/user, amount=0)
+ . = tool_use_check(user, amount)
+ if(. && user)
+ user.flash_act(light_intensity)
+
+// Flash the user during welding progress
+/obj/item/weldingtool/tool_check_callback(mob/living/user, amount, datum/callback/extra_checks)
+ . = ..()
+ if(. && user)
+ if (progress_flash_divisor == 0)
+ user.flash_act(min(light_intensity,1))
+ progress_flash_divisor = initial(progress_flash_divisor)
+ else
+ progress_flash_divisor--
+
+// If welding tool ran out of fuel during a construction task, construction fails.
+/obj/item/weldingtool/tool_use_check(mob/living/user, amount)
+ if(!isOn() || !check_fuel())
+ to_chat(user, "[src] has to be on to complete this task! ")
+ return FALSE
+
+ if(get_fuel() >= amount)
+ return TRUE
+ else
+ to_chat(user, "You need more welding fuel to complete this task! ")
+ return FALSE
+
+
+/obj/item/weldingtool/proc/flamethrower_screwdriver(obj/item/I, mob/user)
+ if(welding)
+ to_chat(user, "Turn it off first! ")
+ return
+ status = !status
+ if(status)
+ to_chat(user, "You resecure [src] and close the fuel tank. ")
+ container_type = NONE
+ else
+ to_chat(user, "[src] can now be attached, modified, and refuelled. ")
+ container_type = OPENCONTAINER
+ add_fingerprint(user)
+
+/obj/item/weldingtool/proc/flamethrower_rods(obj/item/I, mob/user)
+ if(!status)
+ var/obj/item/stack/rods/R = I
+ if (R.use(1))
+ var/obj/item/flamethrower/F = new /obj/item/flamethrower(user.loc)
+ if(!remove_item_from_storage(F))
+ user.transferItemToLoc(src, F, TRUE)
+ F.weldtool = src
+ add_fingerprint(user)
+ to_chat(user, "You add a rod to a welder, starting to build a flamethrower. ")
+ user.put_in_hands(F)
+ else
+ to_chat(user, "You need one rod to start building a flamethrower! ")
+
+/obj/item/weldingtool/ignition_effect(atom/A, mob/user)
+ if(use_tool(A, user, 0, amount=1))
+ return "[user] casually lights [A] with [src], what a badass. "
+ else
+ return ""
+
+/obj/item/weldingtool/largetank
+ name = "industrial welding tool"
+ desc = "A slightly larger welder with a larger tank."
+ icon_state = "indwelder"
+ max_fuel = 40
+ materials = list(MAT_GLASS=60)
+
+/obj/item/weldingtool/largetank/cyborg
+ name = "integrated welding tool"
+ desc = "An advanced welder designed to be used in robotic systems."
+ toolspeed = 0.5
+
+/obj/item/weldingtool/largetank/flamethrower_screwdriver()
+ return
+
+
+/obj/item/weldingtool/mini
+ name = "emergency welding tool"
+ desc = "A miniature welder used during emergencies."
+ icon_state = "miniwelder"
+ max_fuel = 10
+ w_class = WEIGHT_CLASS_TINY
+ materials = list(MAT_METAL=30, MAT_GLASS=10)
+ change_icons = 0
+
+/obj/item/weldingtool/mini/flamethrower_screwdriver()
+ return
+
+/obj/item/weldingtool/abductor
+ name = "alien welding tool"
+ desc = "An alien welding tool. Whatever fuel it uses, it never runs out."
+ icon = 'icons/obj/abductor.dmi'
+ icon_state = "welder"
+ toolspeed = 0.1
+ light_intensity = 0
+ change_icons = 0
+
+/obj/item/weldingtool/abductor/process()
+ if(get_fuel() <= max_fuel)
+ reagents.add_reagent("welding_fuel", 1)
+ ..()
+
+/obj/item/weldingtool/hugetank
+ name = "upgraded industrial welding tool"
+ desc = "An upgraded welder based of the industrial welder."
+ icon_state = "upindwelder"
+ item_state = "upindwelder"
+ max_fuel = 80
+ materials = list(MAT_METAL=70, MAT_GLASS=120)
+
+/obj/item/weldingtool/experimental
+ name = "experimental welding tool"
+ desc = "An experimental welder capable of self-fuel generation and less harmful to the eyes."
+ icon_state = "exwelder"
+ item_state = "exwelder"
+ max_fuel = 40
+ materials = list(MAT_METAL=70, MAT_GLASS=120)
+ var/last_gen = 0
+ change_icons = 0
+ can_off_process = 1
+ light_intensity = 1
+ toolspeed = 0.5
+ var/nextrefueltick = 0
+
+/obj/item/weldingtool/experimental/brass
+ name = "brass welding tool"
+ desc = "A brass welder that seems to constantly refuel itself. It is faintly warm to the touch."
+ resistance_flags = FIRE_PROOF | ACID_PROOF
+ icon_state = "brasswelder"
+ item_state = "brasswelder"
+
+
+/obj/item/weldingtool/experimental/process()
+ ..()
+ if(get_fuel() < max_fuel && nextrefueltick < world.time)
+ nextrefueltick = world.time + 10
+ reagents.add_reagent("welding_fuel", 1)
+
+#undef WELDER_FUEL_BURN_INTERVAL
diff --git a/code/game/objects/items/tools/wirecutters.dm b/code/game/objects/items/tools/wirecutters.dm
index f189c26bb2..33c7be5dfd 100644
--- a/code/game/objects/items/tools/wirecutters.dm
+++ b/code/game/objects/items/tools/wirecutters.dm
@@ -7,7 +7,7 @@
lefthand_file = 'icons/mob/inhands/equipment/tools_lefthand.dmi'
righthand_file = 'icons/mob/inhands/equipment/tools_righthand.dmi'
flags_1 = CONDUCT_1
- slot_flags = SLOT_BELT
+ slot_flags = ITEM_SLOT_BELT
force = 6
throw_speed = 3
throw_range = 7
diff --git a/code/game/objects/items/tools/wrench.dm b/code/game/objects/items/tools/wrench.dm
index 6e399c0909..9a9a3684c3 100644
--- a/code/game/objects/items/tools/wrench.dm
+++ b/code/game/objects/items/tools/wrench.dm
@@ -6,7 +6,7 @@
lefthand_file = 'icons/mob/inhands/equipment/tools_lefthand.dmi'
righthand_file = 'icons/mob/inhands/equipment/tools_righthand.dmi'
flags_1 = CONDUCT_1
- slot_flags = SLOT_BELT
+ slot_flags = ITEM_SLOT_BELT
force = 5
throwforce = 7
w_class = WEIGHT_CLASS_SMALL
diff --git a/code/game/objects/items/toys.dm b/code/game/objects/items/toys.dm
index 812fae4ed3..ef82c074a6 100644
--- a/code/game/objects/items/toys.dm
+++ b/code/game/objects/items/toys.dm
@@ -143,7 +143,7 @@
lefthand_file = 'icons/mob/inhands/weapons/guns_lefthand.dmi'
righthand_file = 'icons/mob/inhands/weapons/guns_righthand.dmi'
flags_1 = CONDUCT_1
- slot_flags = SLOT_BELT
+ slot_flags = ITEM_SLOT_BELT
w_class = WEIGHT_CLASS_NORMAL
materials = list(MAT_METAL=10, MAT_GLASS=10)
attack_verb = list("struck", "pistol whipped", "hit", "bashed")
@@ -341,7 +341,7 @@
lefthand_file = 'icons/mob/inhands/weapons/swords_lefthand.dmi'
righthand_file = 'icons/mob/inhands/weapons/swords_righthand.dmi'
flags_1 = CONDUCT_1
- slot_flags = SLOT_BELT | SLOT_BACK
+ slot_flags = ITEM_SLOT_BELT | ITEM_SLOT_BACK
force = 5
throwforce = 5
w_class = WEIGHT_CLASS_NORMAL
@@ -1064,7 +1064,7 @@
desc = "A stylish steampunk watch made out of thousands of tiny cogwheels."
icon = 'icons/obj/clockwork_objects.dmi'
icon_state = "dread_ipad"
- slot_flags = SLOT_BELT
+ slot_flags = ITEM_SLOT_BELT
w_class = WEIGHT_CLASS_SMALL
var/cooldown = 0
diff --git a/code/game/objects/items/twohanded.dm b/code/game/objects/items/twohanded.dm
index 91d5c4539c..6526eaf561 100644
--- a/code/game/objects/items/twohanded.dm
+++ b/code/game/objects/items/twohanded.dm
@@ -41,7 +41,7 @@
else //something wrong
name = "[initial(name)]"
update_icon()
- if(user.get_item_by_slot(slot_back) == src)
+ if(user.get_item_by_slot(SLOT_BACK) == src)
user.update_inv_back()
else
user.update_inv_hands()
@@ -191,7 +191,7 @@
return
qdel(O)
return
- if(slot == slot_hands)
+ if(slot == SLOT_HANDS)
wield(user)
else
unwield(user)
@@ -224,7 +224,7 @@
force = 5
throwforce = 15
w_class = WEIGHT_CLASS_BULKY
- slot_flags = SLOT_BACK
+ slot_flags = ITEM_SLOT_BACK
force_unwielded = 5
force_wielded = 24
attack_verb = list("attacked", "chopped", "cleaved", "torn", "cut")
@@ -458,7 +458,7 @@
desc = "A haphazardly-constructed yet still deadly weapon of ancient design."
force = 10
w_class = WEIGHT_CLASS_BULKY
- slot_flags = SLOT_BACK
+ slot_flags = ITEM_SLOT_BACK
force_unwielded = 10
force_wielded = 18
throwforce = 20
@@ -744,7 +744,7 @@
sharpness = IS_SHARP
attack_verb = list("cut", "sliced", "diced")
w_class = WEIGHT_CLASS_BULKY
- slot_flags = SLOT_BACK
+ slot_flags = ITEM_SLOT_BACK
hitsound = 'sound/weapons/bladeslice.ogg'
/obj/item/twohanded/vibro_weapon/Initialize()
@@ -791,7 +791,7 @@
desc = "A haphazardly-constructed yet still deadly weapon. The pinnacle of modern technology."
force = 11
w_class = WEIGHT_CLASS_BULKY
- slot_flags = SLOT_BACK
+ slot_flags = ITEM_SLOT_BACK
force_unwielded = 11
force_wielded = 20 //I have no idea how to balance
throwforce = 22
diff --git a/code/game/objects/items/weaponry.dm b/code/game/objects/items/weaponry.dm
index f3be1828ea..fd6fca0a3f 100644
--- a/code/game/objects/items/weaponry.dm
+++ b/code/game/objects/items/weaponry.dm
@@ -3,7 +3,7 @@
name = "banhammer"
icon = 'icons/obj/items_and_weapons.dmi'
icon_state = "toyhammer"
- slot_flags = SLOT_BELT
+ slot_flags = ITEM_SLOT_BELT
throwforce = 0
force = 1
w_class = WEIGHT_CLASS_TINY
@@ -34,7 +34,7 @@
item_state = "sord"
lefthand_file = 'icons/mob/inhands/weapons/swords_lefthand.dmi'
righthand_file = 'icons/mob/inhands/weapons/swords_righthand.dmi'
- slot_flags = SLOT_BELT
+ slot_flags = ITEM_SLOT_BELT
force = 2
throwforce = 1
w_class = WEIGHT_CLASS_NORMAL
@@ -55,7 +55,7 @@
righthand_file = 'icons/mob/inhands/weapons/swords_righthand.dmi'
hitsound = 'sound/weapons/bladeslice.ogg'
flags_1 = CONDUCT_1
- slot_flags = SLOT_BELT | SLOT_BACK
+ slot_flags = ITEM_SLOT_BELT | ITEM_SLOT_BACK
force = 40
throwforce = 10
w_class = WEIGHT_CLASS_NORMAL
@@ -206,7 +206,7 @@
lefthand_file = 'icons/mob/inhands/weapons/swords_lefthand.dmi'
righthand_file = 'icons/mob/inhands/weapons/swords_righthand.dmi'
flags_1 = CONDUCT_1
- slot_flags = SLOT_BELT | SLOT_BACK
+ slot_flags = ITEM_SLOT_BELT | ITEM_SLOT_BACK
force = 40
throwforce = 10
w_class = WEIGHT_CLASS_HUGE
diff --git a/code/game/objects/structures/bedsheet_bin.dm b/code/game/objects/structures/bedsheet_bin.dm
index cc447a19ad..85e498e9e4 100644
--- a/code/game/objects/structures/bedsheet_bin.dm
+++ b/code/game/objects/structures/bedsheet_bin.dm
@@ -10,7 +10,7 @@ LINEN BINS
icon = 'icons/obj/bedsheets.dmi'
icon_state = "sheetwhite"
item_state = "bedsheet"
- slot_flags = SLOT_NECK
+ slot_flags = ITEM_SLOT_NECK
layer = MOB_LAYER
throwforce = 0
throw_speed = 1
diff --git a/code/game/objects/structures/crates_lockers/closets/secure/scientist.dm b/code/game/objects/structures/crates_lockers/closets/secure/scientist.dm
index 5de453beb0..6e5c425b2b 100644
--- a/code/game/objects/structures/crates_lockers/closets/secure/scientist.dm
+++ b/code/game/objects/structures/crates_lockers/closets/secure/scientist.dm
@@ -24,5 +24,4 @@
new /obj/item/assembly/flash/handheld(src)
new /obj/item/laser_pointer(src)
new /obj/item/door_remote/research_director(src)
- new /obj/item/storage/box/firingpins(src)
new /obj/item/circuitboard/machine/techfab/department/science(src)
diff --git a/code/game/turfs/simulated/lava.dm b/code/game/turfs/simulated/lava.dm
index 316391f8de..b6f862cab5 100644
--- a/code/game/turfs/simulated/lava.dm
+++ b/code/game/turfs/simulated/lava.dm
@@ -128,10 +128,10 @@
continue
if(iscarbon(L))
var/mob/living/carbon/C = L
- var/obj/item/clothing/S = C.get_item_by_slot(slot_wear_suit)
- var/obj/item/clothing/H = C.get_item_by_slot(slot_head)
+ var/obj/item/clothing/S = C.get_item_by_slot(SLOT_WEAR_SUIT)
+ var/obj/item/clothing/H = C.get_item_by_slot(SLOT_HEAD)
- if(S && H && S.flags_2 & LAVA_PROTECT_2 && H.flags_2 & LAVA_PROTECT_2)
+ if(S && H && S.clothing_flags & LAVAPROTECT && H.clothing_flags & LAVAPROTECT)
return
L.adjustFireLoss(20)
diff --git a/code/modules/admin/admin_ranks.dm b/code/modules/admin/admin_ranks.dm
index dee4787753..7873a97f7c 100644
--- a/code/modules/admin/admin_ranks.dm
+++ b/code/modules/admin/admin_ranks.dm
@@ -242,7 +242,6 @@ GLOBAL_PROTECT(protected_ranks)
var/skip
if(rank_names[admin_rank] == null)
message_admins("[admin_ckey] loaded with invalid admin rank [admin_rank].")
- log_sql("[admin_ckey] loaded with invalid admin rank [admin_rank].")
skip = 1
if(GLOB.admin_datums[admin_ckey] || GLOB.deadmins[admin_ckey])
skip = 1
diff --git a/code/modules/admin/create_poll.dm b/code/modules/admin/create_poll.dm
index b1cda46ece..90fd6c66c9 100644
--- a/code/modules/admin/create_poll.dm
+++ b/code/modules/admin/create_poll.dm
@@ -73,7 +73,7 @@
if(!option)
return
option = sanitizeSQL(option)
- var/default_percentage_calc
+ var/default_percentage_calc = 0
if(polltype != POLLTYPE_IRV)
switch(alert("Should this option be included by default when poll result percentages are generated?",,"Yes","No","Cancel"))
if("Yes")
diff --git a/code/modules/admin/permissionedit.dm b/code/modules/admin/permissionedit.dm
index f7bb770079..1d0bdddf03 100644
--- a/code/modules/admin/permissionedit.dm
+++ b/code/modules/admin/permissionedit.dm
@@ -6,56 +6,106 @@
return
usr.client.holder.edit_admin_permissions()
-/datum/admins/proc/edit_admin_permissions()
+/datum/admins/proc/edit_admin_permissions(action, target, operation, page)
if(!check_rights(R_PERMISSIONS))
return
-
- var/list/output = list({"
-
-
-Permissions Panel
-
-
-
-
-
-Search:
-
-"}
-
- usr << browse(jointext(output, ""),"window=editrights;size=1000x650")
+ var/list/output = list("\[Permissions\] ")
+ if(action)
+ output += " | \[Log\] | \[Management\] "
+ else
+ output += "\[Log\] \[Management\] "
+ if(action == 1)
+ var/list/searchlist = list(" WHERE ")
+ if(target)
+ searchlist += "ckey = '[sanitizeSQL(target)]'"
+ if(operation)
+ if(target)
+ searchlist += " AND "
+ searchlist += "operation = '[sanitizeSQL(operation)]'"
+ var/search
+ if(searchlist.len > 1)
+ search = searchlist.Join("")
+ var/logcount = 0
+ var/logssperpage = 20
+ var/pagecount = 0
+ page = text2num(page)
+ var/datum/DBQuery/query_count_admin_logs = SSdbcore.NewQuery("SELECT COUNT(id) FROM [format_table_name("admin_log")][search]")
+ if(!query_count_admin_logs.warn_execute())
+ return
+ if(query_count_admin_logs.NextRow())
+ logcount = text2num(query_count_admin_logs.item[1])
+ if(logcount > logssperpage)
+ output += "Page: "
+ while(logcount > 0)
+ output += "|[pagecount == page ? "\[[pagecount]\] " : "\[[pagecount]\]"] "
+ logcount -= logssperpage
+ pagecount++
+ output += "|"
+ var/limit = " LIMIT [logssperpage * page], [logssperpage]"
+ var/datum/DBQuery/query_search_admin_logs = SSdbcore.NewQuery("SELECT datetime, round_id, adminckey, operation, target, log FROM [format_table_name("admin_log")][search] ORDER BY datetime DESC[limit]")
+ if(!query_search_admin_logs.warn_execute())
+ return
+ while(query_search_admin_logs.NextRow())
+ var/datetime = query_search_admin_logs.item[1]
+ var/round_id = query_search_admin_logs.item[2]
+ var/admin_ckey = query_search_admin_logs.item[3]
+ operation = query_search_admin_logs.item[4]
+ target = query_search_admin_logs.item[5]
+ var/log = query_search_admin_logs.item[6]
+ output += "[datetime] | Round ID [round_id] | Admin [admin_ckey] | Operation [operation] on [target] [log]
"
+ if(action == 2)
+ output += "Admin ckeys with invalid ranks "
+ var/datum/DBQuery/query_check_admin_errors = SSdbcore.NewQuery("SELECT ckey, [format_table_name("admin")].rank FROM [format_table_name("admin")] LEFT JOIN [format_table_name("admin_ranks")] ON [format_table_name("admin_ranks")].rank = [format_table_name("admin")].rank WHERE [format_table_name("admin_ranks")].rank IS NULL")
+ if(!query_check_admin_errors.warn_execute())
+ return
+ while(query_check_admin_errors.NextRow())
+ var/admin_ckey = query_check_admin_errors.item[1]
+ var/admin_rank = query_check_admin_errors.item[2]
+ output += "[admin_ckey] has non-existant rank [admin_rank] | \[Change Rank\] | \[Remove\] "
+ output += " "
+ output += "Unused ranks "
+ var/datum/DBQuery/query_check_unused_rank = SSdbcore.NewQuery("SELECT [format_table_name("admin_ranks")].rank FROM [format_table_name("admin_ranks")] LEFT JOIN [format_table_name("admin")] ON [format_table_name("admin")].rank = [format_table_name("admin_ranks")].rank WHERE [format_table_name("admin")].rank IS NULL")
+ if(!query_check_unused_rank.warn_execute())
+ return
+ while(query_check_unused_rank.NextRow())
+ var/admin_rank = query_check_unused_rank.item[1]
+ output += "Rank [admin_rank] is not held by any admin | \[Remove\] "
+ output += " "
+ else if(!action)
+ output += {"
+ Permissions Panel
+
+
+
+ Search:
"
+ usr << browse("[jointext(output, "")]","window=editrights;size=1000x650")
/datum/admins/proc/edit_rights_topic(list/href_list)
if(!check_rights(R_PERMISSIONS))
@@ -142,10 +192,17 @@
return FALSE
if(use_db)
. = sanitizeSQL(.)
+ //if an admin exists without a datum they won't be caught by the above
+ var/datum/DBQuery/query_admin_in_db = SSdbcore.NewQuery("SELECT 1 FROM [format_table_name("admin_ranks")] WHERE ckey = '[.]'")
+ if(!query_admin_in_db.warn_execute())
+ return FALSE
+ if(query_admin_in_db.NextRow())
+ to_chat(usr, "[.] already listed in admin database. Check the Management tab if they don't appear in the list of admins. ")
+ return FALSE
var/datum/DBQuery/query_add_admin = SSdbcore.NewQuery("INSERT INTO [format_table_name("admin")] (ckey, rank) VALUES ('[.]', 'NEW ADMIN')")
if(!query_add_admin.warn_execute())
return FALSE
- var/datum/DBQuery/query_add_admin_log = SSdbcore.NewQuery("INSERT INTO [format_table_name("admin_log")] (datetime, adminckey, adminip, operation, log) VALUES ('[SQLtime()]', '[sanitizeSQL(usr.ckey)]', INET_ATON('[sanitizeSQL(usr.client.address)]'), 'add admin', 'New admin added: [.]')")
+ var/datum/DBQuery/query_add_admin_log = SSdbcore.NewQuery("INSERT INTO [format_table_name("admin_log")] (datetime, round_id, adminckey, adminip, operation, target, log) VALUES ('[SQLtime()]', '[GLOB.round_id]', '[sanitizeSQL(usr.ckey)]', INET_ATON('[sanitizeSQL(usr.client.address)]'), 'add admin', '[.]', 'New admin added: [.]')")
if(!query_add_admin_log.warn_execute())
return FALSE
@@ -153,12 +210,13 @@
if(alert("Are you sure you want to remove [admin_ckey]?","Confirm Removal","Do it","Cancel") == "Do it")
GLOB.admin_datums -= admin_ckey
GLOB.deadmins -= admin_ckey
- D.disassociate()
+ if(D)
+ D.disassociate()
if(use_db)
var/datum/DBQuery/query_add_rank = SSdbcore.NewQuery("DELETE FROM [format_table_name("admin")] WHERE ckey = '[admin_ckey]'")
if(!query_add_rank.warn_execute())
return
- var/datum/DBQuery/query_add_rank_log = SSdbcore.NewQuery("INSERT INTO [format_table_name("admin_log")] (datetime, adminckey, adminip, operation, log) VALUES ('[SQLtime()]', '[sanitizeSQL(usr.ckey)]', INET_ATON('[sanitizeSQL(usr.client.address)]'), 'remove admin', 'Admin removed: [admin_ckey]')")
+ var/datum/DBQuery/query_add_rank_log = SSdbcore.NewQuery("INSERT INTO [format_table_name("admin_log")] (datetime, round_id, adminckey, adminip, operation, target, log) VALUES ('[SQLtime()]', '[GLOB.round_id]', '[sanitizeSQL(usr.ckey)]', INET_ATON('[sanitizeSQL(usr.client.address)]'), 'remove admin', '[admin_ckey]', 'Admin removed: [admin_ckey]')")
if(!query_add_rank_log.warn_execute())
return
message_admins("[key_name_admin(usr)] removed [admin_ckey] from the admins list [use_db ? "permanently" : "temporarily"]")
@@ -216,13 +274,13 @@
var/datum/DBQuery/query_add_rank = SSdbcore.NewQuery("INSERT INTO [format_table_name("admin_ranks")] (rank, flags, exclude_flags, can_edit_flags) VALUES ('[new_rank]', '0', '0', '0')")
if(!query_add_rank.warn_execute())
return
- var/datum/DBQuery/query_add_rank_log = SSdbcore.NewQuery("INSERT INTO [format_table_name("admin_log")] (datetime, adminckey, adminip, operation, log) VALUES ('[SQLtime()]', '[sanitizeSQL(usr.ckey)]', INET_ATON('[sanitizeSQL(usr.client.address)]'), 'add rank', 'New rank added: [admin_ckey]')")
+ var/datum/DBQuery/query_add_rank_log = SSdbcore.NewQuery("INSERT INTO [format_table_name("admin_log")] (datetime, round_id, adminckey, adminip, operation, target, log) VALUES ('[SQLtime()]', '[GLOB.round_id]', '[sanitizeSQL(usr.ckey)]', INET_ATON('[sanitizeSQL(usr.client.address)]'), 'add rank', '[new_rank]', 'New rank added: [new_rank]')")
if(!query_add_rank_log.warn_execute())
return
var/datum/DBQuery/query_change_rank = SSdbcore.NewQuery("UPDATE [format_table_name("admin")] SET rank = '[new_rank]' WHERE ckey = '[admin_ckey]'")
if(!query_change_rank.warn_execute())
return
- var/datum/DBQuery/query_change_rank_log = SSdbcore.NewQuery("INSERT INTO [format_table_name("admin_log")] (datetime, adminckey, adminip, operation, log) VALUES ('[SQLtime()]', '[sanitizeSQL(usr.ckey)]', INET_ATON('[sanitizeSQL(usr.client.address)]'), 'change admin rank', 'Rank of [admin_ckey] changed from [old_rank] to [new_rank]')")
+ var/datum/DBQuery/query_change_rank_log = SSdbcore.NewQuery("INSERT INTO [format_table_name("admin_log")] (datetime, round_id, adminckey, adminip, operation, target, log) VALUES ('[SQLtime()]', '[GLOB.round_id]', '[sanitizeSQL(usr.ckey)]', INET_ATON('[sanitizeSQL(usr.client.address)]'), 'change admin rank', '[admin_ckey]', 'Rank of [admin_ckey] changed from [old_rank] to [new_rank]')")
if(!query_change_rank_log.warn_execute())
return
if(D) //they were previously an admin
@@ -259,7 +317,7 @@
var/datum/DBQuery/query_change_rank_flags = SSdbcore.NewQuery("UPDATE [format_table_name("admin_ranks")] SET flags = '[new_flags]', exclude_flags = '[new_exclude_flags]', can_edit_flags = '[new_can_edit_flags]' WHERE rank = '[D.rank.name]'")
if(!query_change_rank_flags.warn_execute())
return
- var/datum/DBQuery/query_change_rank_flags_log = SSdbcore.NewQuery("INSERT INTO [format_table_name("admin_log")] (datetime, adminckey, adminip, operation, log) VALUES ('[SQLtime()]', '[sanitizeSQL(usr.ckey)]', INET_ATON('[sanitizeSQL(usr.client.address)]'), 'change rank flags', 'Permissions of [admin_ckey] changed from[rights2text(old_flags," ")][rights2text(old_exclude_flags," ", "-")][rights2text(old_can_edit_flags," ", "*")] to[rights2text(new_flags," ")][rights2text(new_exclude_flags," ", "-")][rights2text(new_can_edit_flags," ", "*")]')")
+ var/datum/DBQuery/query_change_rank_flags_log = SSdbcore.NewQuery("INSERT INTO [format_table_name("admin_log")] (datetime, round_id, adminckey, adminip, operation, target, log) VALUES ('[SQLtime()]', '[GLOB.round_id]', '[sanitizeSQL(usr.ckey)]', INET_ATON('[sanitizeSQL(usr.client.address)]'), 'change rank flags', '[D.rank.name]', 'Permissions of [D.rank.name] changed from[rights2text(old_flags," ")][rights2text(old_exclude_flags," ", "-")][rights2text(old_can_edit_flags," ", "*")] to[rights2text(new_flags," ")][rights2text(new_exclude_flags," ", "-")][rights2text(new_can_edit_flags," ", "*")]')")
if(!query_change_rank_flags_log.warn_execute())
return
for(var/datum/admin_rank/R in GLOB.admin_ranks)
@@ -294,6 +352,36 @@
message_admins("[key_name_admin(usr)] edited the permissions of [use_db ? " rank [D.rank.name] permanently" : "[admin_ckey] temporarily"]")
log_admin("[key_name(usr)] edited the permissions of [use_db ? " rank [D.rank.name] permanently" : "[admin_ckey] temporarily"]")
+/datum/admins/proc/remove_rank(admin_rank)
+ if(!admin_rank)
+ return
+ for(var/datum/admin_rank/R in GLOB.admin_ranks)
+ if(R.name == admin_rank && (!(R.rights & usr.client.holder.rank.can_edit_rights) == R.rights))
+ to_chat(usr, "You don't have edit rights to all the rights this rank has, rank deletion not permitted. ")
+ return
+ if(!CONFIG_GET(flag/admin_legacy_system) && CONFIG_GET(flag/protect_legacy_ranks) && (admin_rank in GLOB.protected_ranks))
+ to_chat(usr, "Deletion of protected ranks is not permitted, it must be removed from admin_ranks.txt. ")
+ return
+ if(CONFIG_GET(flag/load_legacy_ranks_only))
+ to_chat(usr, "Rank deletion not permitted while database rank loading is disabled. ")
+ return
+ admin_rank = sanitizeSQL(admin_rank)
+ var/datum/DBQuery/query_admins_with_rank = SSdbcore.NewQuery("SELECT 1 FROM [format_table_name("admin")] WHERE rank = '[admin_rank]'")
+ if(!query_admins_with_rank.warn_execute())
+ return
+ if(query_admins_with_rank.NextRow())
+ to_chat(usr, "Error: Rank deletion attempted while rank still used; Tell a coder, this shouldn't happen. ")
+ return
+ if(alert("Are you sure you want to remove [admin_rank]?","Confirm Removal","Do it","Cancel") == "Do it")
+ var/datum/DBQuery/query_add_rank = SSdbcore.NewQuery("DELETE FROM [format_table_name("admin_ranks")] WHERE rank = '[admin_rank]'")
+ if(!query_add_rank.warn_execute())
+ return
+ var/datum/DBQuery/query_add_rank_log = SSdbcore.NewQuery("INSERT INTO [format_table_name("admin_log")] (datetime, round_id, adminckey, adminip, operation, target, log) VALUES ('[SQLtime()]', '[GLOB.round_id]', '[sanitizeSQL(usr.ckey)]', INET_ATON('[sanitizeSQL(usr.client.address)]'), 'remove rank', '[admin_rank]', 'Rank removed: [admin_rank]')")
+ if(!query_add_rank_log.warn_execute())
+ return
+ message_admins("[key_name_admin(usr)] removed rank [admin_rank] permanently")
+ log_admin("[key_name(usr)] removed rank [admin_rank] permanently")
+
/datum/admins/proc/sync_lastadminrank(admin_ckey, datum/admins/D)
var/sqlrank = sanitizeSQL(D.rank.name)
admin_ckey = sanitizeSQL(admin_ckey)
diff --git a/code/modules/admin/secrets.dm b/code/modules/admin/secrets.dm
index a8e92db53a..5138089a6c 100644
--- a/code/modules/admin/secrets.dm
+++ b/code/modules/admin/secrets.dm
@@ -430,7 +430,7 @@
var/obj/item/clothing/under/schoolgirl/I = new seifuku
var/olduniform = H.w_uniform
H.temporarilyRemoveItemFromInventory(H.w_uniform, TRUE, FALSE)
- H.equip_to_slot_or_del(I, slot_w_uniform)
+ H.equip_to_slot_or_del(I, SLOT_W_UNIFORM)
qdel(olduniform)
if(droptype == "Yes")
I.flags_1 |= NODROP_1
diff --git a/code/modules/admin/topic.dm b/code/modules/admin/topic.dm
index 56ff2e816e..bff420320c 100644
--- a/code/modules/admin/topic.dm
+++ b/code/modules/admin/topic.dm
@@ -273,6 +273,21 @@
return
create_message("note", banckey, null, banreason, null, null, 0, 0)
+ else if(href_list["editrightsbrowser"])
+ edit_admin_permissions(0)
+
+ else if(href_list["editrightsbrowserlog"])
+ edit_admin_permissions(1, href_list["editrightstarget"], href_list["editrightsoperation"], href_list["editrightspage"])
+
+ if(href_list["editrightsbrowsermanage"])
+ if(href_list["editrightschange"])
+ change_admin_rank(href_list["editrightschange"], TRUE)
+ else if(href_list["editrightsremove"])
+ remove_admin(href_list["editrightsremove"], TRUE)
+ else if(href_list["editrightsremoverank"])
+ remove_rank(href_list["editrightsremoverank"])
+ edit_admin_permissions(2)
+
else if(href_list["editrights"])
edit_rights_topic(href_list)
@@ -1493,8 +1508,8 @@
if(ishuman(L))
var/mob/living/carbon/human/observer = L
- observer.equip_to_slot_or_del(new /obj/item/clothing/under/suit_jacket(observer), slot_w_uniform)
- observer.equip_to_slot_or_del(new /obj/item/clothing/shoes/sneakers/black(observer), slot_shoes)
+ observer.equip_to_slot_or_del(new /obj/item/clothing/under/suit_jacket(observer), SLOT_W_UNIFORM)
+ observer.equip_to_slot_or_del(new /obj/item/clothing/shoes/sneakers/black(observer), SLOT_SHOES)
L.Unconscious(100)
sleep(5)
L.forceMove(pick(GLOB.tdomeobserve))
diff --git a/code/modules/admin/verbs/debug.dm b/code/modules/admin/verbs/debug.dm
index 68854b7978..28fb4a485d 100644
--- a/code/modules/admin/verbs/debug.dm
+++ b/code/modules/admin/verbs/debug.dm
@@ -480,7 +480,7 @@ GLOBAL_PROTECT(AdminProcCallSpamPrevention)
id.forceMove(W)
W.update_icon()
else
- H.equip_to_slot(id,slot_wear_id)
+ H.equip_to_slot(id,SLOT_WEAR_ID)
else
alert("Invalid mob")
diff --git a/code/modules/antagonists/abductor/equipment/abduction_gear.dm b/code/modules/antagonists/abductor/equipment/abduction_gear.dm
index f92b24c4dc..b6b6cd12c6 100644
--- a/code/modules/antagonists/abductor/equipment/abduction_gear.dm
+++ b/code/modules/antagonists/abductor/equipment/abduction_gear.dm
@@ -53,7 +53,7 @@
A.UpdateButtonIcon()
/obj/item/clothing/suit/armor/abductor/vest/item_action_slot_check(slot, mob/user)
- if(slot == slot_wear_suit) //we only give the mob the ability to activate the vest if he's actually wearing it.
+ if(slot == SLOT_WEAR_SUIT) //we only give the mob the ability to activate the vest if he's actually wearing it.
return 1
/obj/item/clothing/suit/armor/abductor/vest/proc/SetDisguise(datum/icon_snapshot/entry)
@@ -338,7 +338,7 @@
if(QDELETED(G))
return
- if(istype(C.get_item_by_slot(slot_head), /obj/item/clothing/head/foilhat))
+ if(istype(C.get_item_by_slot(SLOT_HEAD), /obj/item/clothing/head/foilhat))
to_chat(user, "Your target seems to have some sort of protective headgear on, blocking the message from being sent! ")
return
@@ -425,7 +425,7 @@ Congratulations! You are now trained for invasive xenobiology research!"}
item_state = "wonderprod"
lefthand_file = 'icons/mob/inhands/antag/abductor_lefthand.dmi'
righthand_file = 'icons/mob/inhands/antag/abductor_righthand.dmi'
- slot_flags = SLOT_BELT
+ slot_flags = ITEM_SLOT_BELT
force = 7
w_class = WEIGHT_CLASS_NORMAL
actions_types = list(/datum/action/item_action/toggle_mode)
@@ -515,7 +515,7 @@ Congratulations! You are now trained for invasive xenobiology research!"}
/obj/item/abductor_baton/proc/SleepAttack(mob/living/L,mob/living/user)
if(L.incapacitated(TRUE, TRUE))
- if(istype(L.get_item_by_slot(slot_head), /obj/item/clothing/head/foilhat))
+ if(istype(L.get_item_by_slot(SLOT_HEAD), /obj/item/clothing/head/foilhat))
to_chat(user, "The specimen's protective headgear is interfering with the sleep inducement! ")
L.visible_message("[user] tried to induced sleep in [L] with [src], but [L.p_their()] headgear protected [L.p_them()]! ", \
"You feel a strange wave of heavy drowsiness wash over you, but your headgear deflects most of it! ")
@@ -527,7 +527,7 @@ Congratulations! You are now trained for invasive xenobiology research!"}
L.Sleeping(1200)
add_logs(user, L, "put to sleep")
else
- if(istype(L.get_item_by_slot(slot_head), /obj/item/clothing/head/foilhat))
+ if(istype(L.get_item_by_slot(SLOT_HEAD), /obj/item/clothing/head/foilhat))
to_chat(user, "The specimen's protective headgear is completely blocking our sleep inducement methods! ")
L.visible_message("[user] tried to induce sleep in [L] with [src], but [L.p_their()] headgear completely protected [L.p_them()]! ", \
"Any sense of drowsiness is quickly diminished as your headgear deflects the effects! ")
diff --git a/code/modules/antagonists/abductor/machinery/console.dm b/code/modules/antagonists/abductor/machinery/console.dm
index 08776318c8..e629a0b47d 100644
--- a/code/modules/antagonists/abductor/machinery/console.dm
+++ b/code/modules/antagonists/abductor/machinery/console.dm
@@ -167,7 +167,7 @@
c.console = src
/obj/machinery/abductor/console/proc/AddSnapshot(mob/living/carbon/human/target)
- if(istype(target.get_item_by_slot(slot_head), /obj/item/clothing/head/foilhat))
+ if(istype(target.get_item_by_slot(SLOT_HEAD), /obj/item/clothing/head/foilhat))
say("Subject wearing specialized protective headgear, unable to get a proper scan!")
return
var/datum/icon_snapshot/entry = new
diff --git a/code/modules/antagonists/changeling/powers/biodegrade.dm b/code/modules/antagonists/changeling/powers/biodegrade.dm
index dbb0e3a88a..1e8eaed383 100644
--- a/code/modules/antagonists/changeling/powers/biodegrade.dm
+++ b/code/modules/antagonists/changeling/powers/biodegrade.dm
@@ -13,7 +13,7 @@
return 0
if(user.handcuffed)
- var/obj/O = user.get_item_by_slot(slot_handcuffed)
+ var/obj/O = user.get_item_by_slot(SLOT_HANDCUFFED)
if(!istype(O))
return 0
user.visible_message("[user] vomits a glob of acid on [user.p_their()] [O]! ", \
@@ -23,7 +23,7 @@
used = TRUE
if(user.wear_suit && user.wear_suit.breakouttime && !used)
- var/obj/item/clothing/suit/S = user.get_item_by_slot(slot_wear_suit)
+ var/obj/item/clothing/suit/S = user.get_item_by_slot(SLOT_WEAR_SUIT)
if(!istype(S))
return 0
user.visible_message("[user] vomits a glob of acid across the front of [user.p_their()] [S]! ", \
diff --git a/code/modules/antagonists/changeling/powers/mutations.dm b/code/modules/antagonists/changeling/powers/mutations.dm
index 0c03f7420c..dbc8446fca 100644
--- a/code/modules/antagonists/changeling/powers/mutations.dm
+++ b/code/modules/antagonists/changeling/powers/mutations.dm
@@ -119,8 +119,8 @@
user.dropItemToGround(user.head)
user.dropItemToGround(user.wear_suit)
- user.equip_to_slot_if_possible(new suit_type(user), slot_wear_suit, 1, 1, 1)
- user.equip_to_slot_if_possible(new helmet_type(user), slot_head, 1, 1, 1)
+ user.equip_to_slot_if_possible(new suit_type(user), SLOT_WEAR_SUIT, 1, 1, 1)
+ user.equip_to_slot_if_possible(new helmet_type(user), SLOT_HEAD, 1, 1, 1)
var/datum/antagonist/changeling/changeling = user.mind.has_antag_datum(/datum/antagonist/changeling)
changeling.chem_recharge_slowdown += recharge_slowdown
@@ -445,7 +445,8 @@
name = "flesh mass"
icon_state = "lingspacesuit"
desc = "A huge, bulky mass of pressure and temperature-resistant organic tissue, evolved to facilitate space travel."
- flags_1 = STOPSPRESSUREDMAGE_1 | NODROP_1 | DROPDEL_1 //Not THICKMATERIAL_1 because it's organic tissue, so if somebody tries to inject something into it, it still ends up in your blood. (also balance but muh fluff)
+ flags_1 = NODROP_1 | DROPDEL_1
+ clothing_flags = STOPSPRESSUREDAMAGE //Not THICKMATERIAL because it's organic tissue, so if somebody tries to inject something into it, it still ends up in your blood. (also balance but muh fluff)
allowed = list(/obj/item/flashlight, /obj/item/tank/internals/emergency_oxygen, /obj/item/tank/internals/oxygen)
armor = list("melee" = 0, "bullet" = 0, "laser" = 0,"energy" = 0, "bomb" = 0, "bio" = 0, "rad" = 0, "fire" = 90, "acid" = 90) //No armor at all.
@@ -464,7 +465,8 @@
name = "flesh mass"
icon_state = "lingspacehelmet"
desc = "A covering of pressure and temperature-resistant organic tissue with a glass-like chitin front."
- flags_1 = STOPSPRESSUREDMAGE_1 | NODROP_1 | DROPDEL_1 //Again, no THICKMATERIAL_1.
+ flags_1 = NODROP_1 | DROPDEL_1
+ clothing_flags = STOPSPRESSUREDAMAGE
armor = list("melee" = 0, "bullet" = 0, "laser" = 0,"energy" = 0, "bomb" = 0, "bio" = 0, "rad" = 0, "fire" = 90, "acid" = 90)
flags_cover = HEADCOVERSEYES | HEADCOVERSMOUTH
diff --git a/code/modules/antagonists/clockcult/clock_items/clockwork_armor.dm b/code/modules/antagonists/clockcult/clock_items/clockwork_armor.dm
index a9c73ef4c4..32bf870886 100644
--- a/code/modules/antagonists/clockcult/clock_items/clockwork_armor.dm
+++ b/code/modules/antagonists/clockcult/clock_items/clockwork_armor.dm
@@ -21,23 +21,23 @@
/obj/item/clothing/head/helmet/clockwork/ratvar_act()
if(GLOB.ratvar_awakens)
armor = list("melee" = 100, "bullet" = 100, "laser" = 100, "energy" = 100, "bomb" = 100, "bio" = 100, "rad" = 100, "fire" = 100, "acid" = 100)
- flags_1 |= STOPSPRESSUREDMAGE_1
+ clothing_flags |= STOPSPRESSUREDAMAGE
max_heat_protection_temperature = FIRE_IMMUNITY_SUIT_MAX_TEMP_PROTECT
min_cold_protection_temperature = SPACE_HELM_MIN_TEMP_PROTECT
else if(GLOB.ratvar_approaches)
armor = list("melee" = 70, "bullet" = 80, "laser" = -15, "energy" = 25, "bomb" = 70, "bio" = 0, "rad" = 0, "fire" = 100, "acid" = 100)
- flags_1 |= STOPSPRESSUREDMAGE_1
+ clothing_flags |= STOPSPRESSUREDAMAGE
max_heat_protection_temperature = FIRE_IMMUNITY_SUIT_MAX_TEMP_PROTECT
min_cold_protection_temperature = SPACE_HELM_MIN_TEMP_PROTECT
else
armor = list("melee" = 60, "bullet" = 70, "laser" = -25, "energy" = 0, "bomb" = 60, "bio" = 0, "rad" = 0, "fire" = 100, "acid" = 100)
- flags_1 &= ~STOPSPRESSUREDMAGE_1
+ clothing_flags &= ~STOPSPRESSUREDAMAGE
max_heat_protection_temperature = initial(max_heat_protection_temperature)
min_cold_protection_temperature = initial(min_cold_protection_temperature)
/obj/item/clothing/head/helmet/clockwork/equipped(mob/living/user, slot)
..()
- if(slot == slot_head && !is_servant_of_ratvar(user))
+ if(slot == SLOT_HEAD && !is_servant_of_ratvar(user))
if(!iscultist(user))
to_chat(user, "\"Now now, this is for my servants, not you.\" ")
user.visible_message("As [user] puts [src] on, it flickers off [user.p_their()] head! ", "The helmet flickers off your head, leaving only nausea! ")
@@ -82,17 +82,17 @@
/obj/item/clothing/suit/armor/clockwork/ratvar_act()
if(GLOB.ratvar_awakens)
armor = list("melee" = 100, "bullet" = 100, "laser" = 100, "energy" = 100, "bomb" = 100, "bio" = 100, "rad" = 100, "fire" = 100, "acid" = 100)
- flags_1 |= STOPSPRESSUREDMAGE_1
+ clothing_flags |= STOPSPRESSUREDAMAGE
max_heat_protection_temperature = FIRE_IMMUNITY_SUIT_MAX_TEMP_PROTECT
min_cold_protection_temperature = SPACE_HELM_MIN_TEMP_PROTECT
else if(GLOB.ratvar_approaches)
armor = list("melee" = 70, "bullet" = 80, "laser" = -15, "energy" = 25, "bomb" = 70, "bio" = 0, "rad" = 0, "fire" = 100, "acid" = 100)
- flags_1 |= STOPSPRESSUREDMAGE_1
+ clothing_flags |= STOPSPRESSUREDAMAGE
max_heat_protection_temperature = FIRE_IMMUNITY_SUIT_MAX_TEMP_PROTECT
min_cold_protection_temperature = SPACE_HELM_MIN_TEMP_PROTECT
else
armor = list("melee" = 60, "bullet" = 70, "laser" = -25, "energy" = 0, "bomb" = 60, "bio" = 0, "rad" = 0, "fire" = 100, "acid" = 100)
- flags_1 &= ~STOPSPRESSUREDMAGE_1
+ clothing_flags &= ~STOPSPRESSUREDAMAGE
max_heat_protection_temperature = initial(max_heat_protection_temperature)
min_cold_protection_temperature = initial(min_cold_protection_temperature)
@@ -103,7 +103,7 @@
/obj/item/clothing/suit/armor/clockwork/equipped(mob/living/user, slot)
..()
- if(slot == slot_wear_suit && !is_servant_of_ratvar(user))
+ if(slot == SLOT_WEAR_SUIT && !is_servant_of_ratvar(user))
if(!iscultist(user))
to_chat(user, "\"Now now, this is for my servants, not you.\" ")
user.visible_message("As [user] puts [src] on, it flickers off [user.p_their()] body! ", "The curiass flickers off your body, leaving only nausea! ")
@@ -148,12 +148,12 @@
/obj/item/clothing/gloves/clockwork/ratvar_act()
if(GLOB.ratvar_awakens)
armor = list("melee" = 100, "bullet" = 100, "laser" = 100, "energy" = 100, "bomb" = 100, "bio" = 100, "rad" = 100, "fire" = 100, "acid" = 100)
- flags_1 |= STOPSPRESSUREDMAGE_1
+ clothing_flags |= STOPSPRESSUREDAMAGE
max_heat_protection_temperature = FIRE_IMMUNITY_SUIT_MAX_TEMP_PROTECT
min_cold_protection_temperature = SPACE_HELM_MIN_TEMP_PROTECT
else
armor = list("melee" = 80, "bullet" = 70, "laser" = -25, "energy" = 0, "bomb" = 60, "bio" = 0, "rad" = 0, "fire" = 100, "acid" = 100)
- flags_1 &= ~STOPSPRESSUREDMAGE_1
+ clothing_flags &= ~STOPSPRESSUREDAMAGE
max_heat_protection_temperature = initial(max_heat_protection_temperature)
min_cold_protection_temperature = initial(min_cold_protection_temperature)
@@ -164,7 +164,7 @@
/obj/item/clothing/gloves/clockwork/equipped(mob/living/user, slot)
..()
- if(slot == slot_gloves && !is_servant_of_ratvar(user))
+ if(slot == SLOT_GLOVES && !is_servant_of_ratvar(user))
if(!iscultist(user))
to_chat(user, "\"Now now, this is for my servants, not you.\" ")
user.visible_message("As [user] puts [src] on, it flickers off [user.p_their()] arms! ", "The gauntlets flicker off your arms, leaving only nausea! ")
@@ -203,9 +203,9 @@
/obj/item/clothing/shoes/clockwork/ratvar_act()
if(GLOB.ratvar_awakens)
- flags_1 |= NOSLIP_1
+ clothing_flags |= NOSLIP
else
- flags_1 &= ~NOSLIP_1
+ clothing_flags &= ~NOSLIP
/obj/item/clothing/shoes/clockwork/mob_can_equip(mob/M, mob/equipper, slot, disable_warning = 0)
if(equipper && !is_servant_of_ratvar(equipper))
@@ -214,7 +214,7 @@
/obj/item/clothing/shoes/clockwork/equipped(mob/living/user, slot)
..()
- if(slot == slot_shoes && !is_servant_of_ratvar(user))
+ if(slot == SLOT_SHOES && !is_servant_of_ratvar(user))
if(!iscultist(user))
to_chat(user, "\"Now now, this is for my servants, not you.\" ")
user.visible_message("As [user] puts [src] on, it flickers off [user.p_their()] feet! ", "The treads flicker off your feet, leaving only nausea! ")
diff --git a/code/modules/antagonists/clockcult/clock_items/clockwork_slab.dm b/code/modules/antagonists/clockcult/clock_items/clockwork_slab.dm
index 5f5bc1b58a..c464656150 100644
--- a/code/modules/antagonists/clockcult/clock_items/clockwork_slab.dm
+++ b/code/modules/antagonists/clockcult/clock_items/clockwork_slab.dm
@@ -9,7 +9,7 @@
righthand_file = 'icons/mob/inhands/antag/clockwork_righthand.dmi'
var/inhand_overlay //If applicable, this overlay will be applied to the slab's inhand
- slot_flags = SLOT_BELT
+ slot_flags = ITEM_SLOT_BELT
w_class = WEIGHT_CLASS_SMALL
var/busy //If the slab is currently being used by something
diff --git a/code/modules/antagonists/clockcult/clock_items/construct_chassis.dm b/code/modules/antagonists/clockcult/clock_items/construct_chassis.dm
index ca5fe74f2e..3f3bb58598 100644
--- a/code/modules/antagonists/clockcult/clock_items/construct_chassis.dm
+++ b/code/modules/antagonists/clockcult/clock_items/construct_chassis.dm
@@ -115,4 +115,4 @@
S.no_cost = TRUE
if(seasonal_hat && seasonal_hat != "none")
var/obj/item/hat = new seasonal_hat(construct)
- construct.equip_to_slot_or_del(hat, slot_head)
+ construct.equip_to_slot_or_del(hat, SLOT_HEAD)
diff --git a/code/modules/antagonists/clockcult/clock_items/judicial_visor.dm b/code/modules/antagonists/clockcult/clock_items/judicial_visor.dm
index 4cba81595f..f54d88fc49 100644
--- a/code/modules/antagonists/clockcult/clock_items/judicial_visor.dm
+++ b/code/modules/antagonists/clockcult/clock_items/judicial_visor.dm
@@ -28,13 +28,13 @@
return ..()
/obj/item/clothing/glasses/judicial_visor/item_action_slot_check(slot, mob/user)
- if(slot != slot_glasses)
+ if(slot != SLOT_GLASSES)
return 0
return ..()
/obj/item/clothing/glasses/judicial_visor/equipped(mob/living/user, slot)
..()
- if(slot != slot_glasses)
+ if(slot != SLOT_GLASSES)
update_status(FALSE)
if(blaster.ranged_ability_user)
blaster.remove_ranged_ability()
@@ -55,13 +55,13 @@
addtimer(CALLBACK(src, .proc/check_on_mob, user), 1) //dropped is called before the item is out of the slot, so we need to check slightly later
/obj/item/clothing/glasses/judicial_visor/proc/check_on_mob(mob/user)
- if(user && src != user.get_item_by_slot(slot_glasses)) //if we happen to check and we AREN'T in the slot, we need to remove our shit from whoever we got dropped from
+ if(user && src != user.get_item_by_slot(SLOT_GLASSES)) //if we happen to check and we AREN'T in the slot, we need to remove our shit from whoever we got dropped from
update_status(FALSE)
if(blaster.ranged_ability_user)
blaster.remove_ranged_ability()
/obj/item/clothing/glasses/judicial_visor/attack_self(mob/user)
- if(is_servant_of_ratvar(user) && src == user.get_item_by_slot(slot_glasses))
+ if(is_servant_of_ratvar(user) && src == user.get_item_by_slot(SLOT_GLASSES))
blaster.toggle(user)
/obj/item/clothing/glasses/judicial_visor/proc/update_status(change_to)
@@ -89,7 +89,7 @@
if(!src)
return 0
recharging = FALSE
- if(user && src == user.get_item_by_slot(slot_glasses))
+ if(user && src == user.get_item_by_slot(SLOT_GLASSES))
to_chat(user, "Your [name] hums. It is ready. ")
else
active = FALSE
@@ -115,7 +115,7 @@
/obj/effect/proc_holder/judicial_visor/InterceptClickOn(mob/living/caller, params, atom/target)
if(..())
return
- if(ranged_ability_user.incapacitated() || !visor || visor != ranged_ability_user.get_item_by_slot(slot_glasses))
+ if(ranged_ability_user.incapacitated() || !visor || visor != ranged_ability_user.get_item_by_slot(SLOT_GLASSES))
remove_ranged_ability()
return
diff --git a/code/modules/antagonists/clockcult/clock_items/wraith_spectacles.dm b/code/modules/antagonists/clockcult/clock_items/wraith_spectacles.dm
index c1bf94842d..dab12dc304 100644
--- a/code/modules/antagonists/clockcult/clock_items/wraith_spectacles.dm
+++ b/code/modules/antagonists/clockcult/clock_items/wraith_spectacles.dm
@@ -74,7 +74,7 @@
/obj/item/clothing/glasses/wraith_spectacles/equipped(mob/living/user, slot)
..()
- if(slot != slot_glasses || up)
+ if(slot != SLOT_GLASSES || up)
return
if(user.has_trait(TRAIT_BLIND))
to_chat(user, "\"You're blind, idiot. Stop embarrassing yourself.\" " )
diff --git a/code/modules/antagonists/clockcult/clock_scriptures/scripture_scripts.dm b/code/modules/antagonists/clockcult/clock_scriptures/scripture_scripts.dm
index 9a78c64942..4e1a5b42cb 100644
--- a/code/modules/antagonists/clockcult/clock_scriptures/scripture_scripts.dm
+++ b/code/modules/antagonists/clockcult/clock_scriptures/scripture_scripts.dm
@@ -160,18 +160,18 @@
/datum/action/innate/clockwork_armaments/Activate()
var/do_message = 0
- var/obj/item/I = owner.get_item_by_slot(slot_wear_suit)
+ var/obj/item/I = owner.get_item_by_slot(SLOT_WEAR_SUIT)
if(remove_item_if_better(I, owner))
- do_message += owner.equip_to_slot_or_del(new/obj/item/clothing/suit/armor/clockwork(null), slot_wear_suit)
- I = owner.get_item_by_slot(slot_head)
+ do_message += owner.equip_to_slot_or_del(new/obj/item/clothing/suit/armor/clockwork(null), SLOT_WEAR_SUIT)
+ I = owner.get_item_by_slot(SLOT_HEAD)
if(remove_item_if_better(I, owner))
- do_message += owner.equip_to_slot_or_del(new/obj/item/clothing/head/helmet/clockwork(null), slot_head)
- I = owner.get_item_by_slot(slot_gloves)
+ do_message += owner.equip_to_slot_or_del(new/obj/item/clothing/head/helmet/clockwork(null), SLOT_HEAD)
+ I = owner.get_item_by_slot(SLOT_GLOVES)
if(remove_item_if_better(I, owner))
- do_message += owner.equip_to_slot_or_del(new/obj/item/clothing/gloves/clockwork(null), slot_gloves)
- I = owner.get_item_by_slot(slot_shoes)
+ do_message += owner.equip_to_slot_or_del(new/obj/item/clothing/gloves/clockwork(null), SLOT_GLOVES)
+ I = owner.get_item_by_slot(SLOT_SHOES)
if(remove_item_if_better(I, owner))
- do_message += owner.equip_to_slot_or_del(new/obj/item/clothing/shoes/clockwork(null), slot_shoes)
+ do_message += owner.equip_to_slot_or_del(new/obj/item/clothing/shoes/clockwork(null), SLOT_SHOES)
if(do_message)
owner.visible_message("Strange armor appears on [owner]! ", "A bright shimmer runs down your body, equipping you with Ratvarian armor. ")
playsound(owner, 'sound/magic/clockwork/fellowship_armory.ogg', 15 * do_message, TRUE) //get sound loudness based on how much we equipped
diff --git a/code/modules/antagonists/cult/blood_magic.dm b/code/modules/antagonists/cult/blood_magic.dm
index 62c6ec806f..3df3d63ebd 100644
--- a/code/modules/antagonists/cult/blood_magic.dm
+++ b/code/modules/antagonists/cult/blood_magic.dm
@@ -605,11 +605,11 @@
uses--
var/mob/living/carbon/C = target
C.visible_message("Otherworldly armor suddenly appears on [C]! ")
- C.equip_to_slot_or_del(new /obj/item/clothing/under/color/black,slot_w_uniform)
- C.equip_to_slot_or_del(new /obj/item/clothing/head/culthood/alt(user), slot_head)
- C.equip_to_slot_or_del(new /obj/item/clothing/suit/cultrobes/alt(user), slot_wear_suit)
- C.equip_to_slot_or_del(new /obj/item/clothing/shoes/cult/alt(user), slot_shoes)
- C.equip_to_slot_or_del(new /obj/item/storage/backpack/cultpack(user), slot_back)
+ C.equip_to_slot_or_del(new /obj/item/clothing/under/color/black,SLOT_W_UNIFORM)
+ C.equip_to_slot_or_del(new /obj/item/clothing/head/culthood/alt(user), SLOT_HEAD)
+ C.equip_to_slot_or_del(new /obj/item/clothing/suit/cultrobes/alt(user), SLOT_WEAR_SUIT)
+ C.equip_to_slot_or_del(new /obj/item/clothing/shoes/cult/alt(user), SLOT_SHOES)
+ C.equip_to_slot_or_del(new /obj/item/storage/backpack/cultpack(user), SLOT_BACK)
if(C == user)
qdel(src) //Clears the hands
C.put_in_hands(new /obj/item/melee/cultblade(user))
diff --git a/code/modules/antagonists/cult/cult.dm b/code/modules/antagonists/cult/cult.dm
index 81d93d0233..0c7fb025c7 100644
--- a/code/modules/antagonists/cult/cult.dm
+++ b/code/modules/antagonists/cult/cult.dm
@@ -81,9 +81,9 @@
/datum/antagonist/cult/proc/cult_give_item(obj/item/item_path, mob/living/carbon/human/mob)
var/list/slots = list(
- "backpack" = slot_in_backpack,
- "left pocket" = slot_l_store,
- "right pocket" = slot_r_store
+ "backpack" = SLOT_IN_BACKPACK,
+ "left pocket" = SLOT_L_STORE,
+ "right pocket" = SLOT_R_STORE
)
var/T = new item_path(mob)
diff --git a/code/modules/antagonists/cult/runes.dm b/code/modules/antagonists/cult/runes.dm
index 71e02fdf4c..a1241d5998 100644
--- a/code/modules/antagonists/cult/runes.dm
+++ b/code/modules/antagonists/cult/runes.dm
@@ -1061,7 +1061,7 @@ structure_check() searches for nearby cultist structures required for the invoca
/proc/hudFix(mob/living/carbon/human/target)
if(!target || !target.client)
return
- var/obj/O = target.get_item_by_slot(slot_glasses)
+ var/obj/O = target.get_item_by_slot(SLOT_GLASSES)
if(istype(O, /obj/item/clothing/glasses/hud/security))
var/datum/atom_hud/AH = GLOB.huds[DATA_HUD_SECURITY_ADVANCED]
AH.add_hud_to(target)
diff --git a/code/modules/antagonists/devil/devil.dm b/code/modules/antagonists/devil/devil.dm
index 55a33820f0..3852eb6de1 100644
--- a/code/modules/antagonists/devil/devil.dm
+++ b/code/modules/antagonists/devil/devil.dm
@@ -456,10 +456,10 @@ GLOBAL_LIST_INIT(devil_suffix, list(" the Red", " the Soulless", " the Master",
return -1
currentMob.change_mob_type( /mob/living/carbon/human, targetturf, null, 1)
var/mob/living/carbon/human/H = owner.current
- H.equip_to_slot_or_del(new /obj/item/clothing/under/lawyer/black(H), slot_w_uniform)
- H.equip_to_slot_or_del(new /obj/item/clothing/shoes/laceup(H), slot_shoes)
- H.equip_to_slot_or_del(new /obj/item/storage/briefcase(H), slot_hands)
- H.equip_to_slot_or_del(new /obj/item/pen(H), slot_l_store)
+ H.equip_to_slot_or_del(new /obj/item/clothing/under/lawyer/black(H), SLOT_W_UNIFORM)
+ H.equip_to_slot_or_del(new /obj/item/clothing/shoes/laceup(H), SLOT_SHOES)
+ H.equip_to_slot_or_del(new /obj/item/storage/briefcase(H), SLOT_HANDS)
+ H.equip_to_slot_or_del(new /obj/item/pen(H), SLOT_L_STORE)
if(SOULVALUE >= BLOOD_THRESHOLD)
H.set_species(/datum/species/lizard, 1)
H.underwear = "Nude"
diff --git a/code/modules/antagonists/highlander/highlander.dm b/code/modules/antagonists/highlander/highlander.dm
index 84faf34387..c55f177b7a 100644
--- a/code/modules/antagonists/highlander/highlander.dm
+++ b/code/modules/antagonists/highlander/highlander.dm
@@ -46,11 +46,11 @@
qdel(I)
for(var/obj/item/I in H.held_items)
qdel(I)
- H.equip_to_slot_or_del(new /obj/item/clothing/under/kilt/highlander(H), slot_w_uniform)
- H.equip_to_slot_or_del(new /obj/item/radio/headset/heads/captain(H), slot_ears)
- H.equip_to_slot_or_del(new /obj/item/clothing/head/beret/highlander(H), slot_head)
- H.equip_to_slot_or_del(new /obj/item/clothing/shoes/combat(H), slot_shoes)
- H.equip_to_slot_or_del(new /obj/item/pinpointer/nuke(H), slot_l_store)
+ H.equip_to_slot_or_del(new /obj/item/clothing/under/kilt/highlander(H), SLOT_W_UNIFORM)
+ H.equip_to_slot_or_del(new /obj/item/radio/headset/heads/captain(H), SLOT_EARS)
+ H.equip_to_slot_or_del(new /obj/item/clothing/head/beret/highlander(H), SLOT_HEAD)
+ H.equip_to_slot_or_del(new /obj/item/clothing/shoes/combat(H), SLOT_SHOES)
+ H.equip_to_slot_or_del(new /obj/item/pinpointer/nuke(H), SLOT_L_STORE)
for(var/obj/item/pinpointer/nuke/P in H)
P.attack_self(H)
var/obj/item/card/id/W = new(H)
@@ -61,7 +61,7 @@
W.registered_name = H.real_name
W.flags_1 |= NODROP_1
W.update_label(H.real_name)
- H.equip_to_slot_or_del(W, slot_wear_id)
+ H.equip_to_slot_or_del(W, SLOT_WEAR_ID)
sword = new(H)
if(!GLOB.highlander)
diff --git a/code/modules/antagonists/revolution/revolution.dm b/code/modules/antagonists/revolution/revolution.dm
index bfeab0b1e5..19c3a43020 100644
--- a/code/modules/antagonists/revolution/revolution.dm
+++ b/code/modules/antagonists/revolution/revolution.dm
@@ -235,9 +235,9 @@
if(give_flash)
var/obj/item/assembly/flash/T = new(H)
var/list/slots = list (
- "backpack" = slot_in_backpack,
- "left pocket" = slot_l_store,
- "right pocket" = slot_r_store
+ "backpack" = SLOT_IN_BACKPACK,
+ "left pocket" = SLOT_L_STORE,
+ "right pocket" = SLOT_R_STORE
)
var/where = H.equip_in_one_of_slots(T, slots)
if (!where)
diff --git a/code/modules/antagonists/traitor/datum_traitor.dm b/code/modules/antagonists/traitor/datum_traitor.dm
index e09b92a083..f3ea4ef2ea 100644
--- a/code/modules/antagonists/traitor/datum_traitor.dm
+++ b/code/modules/antagonists/traitor/datum_traitor.dm
@@ -296,9 +296,9 @@
folder = new/obj/item/folder/syndicate/blue(mob.loc)
var/list/slots = list (
- "backpack" = slot_in_backpack,
- "left pocket" = slot_l_store,
- "right pocket" = slot_r_store
+ "backpack" = SLOT_IN_BACKPACK,
+ "left pocket" = SLOT_L_STORE,
+ "right pocket" = SLOT_R_STORE
)
var/where = "At your feet"
diff --git a/code/modules/antagonists/wizard/equipment/artefact.dm b/code/modules/antagonists/wizard/equipment/artefact.dm
index 1f22c785bd..1427f5ab68 100644
--- a/code/modules/antagonists/wizard/equipment/artefact.dm
+++ b/code/modules/antagonists/wizard/equipment/artefact.dm
@@ -204,12 +204,12 @@
H.dropItemToGround(I)
var/hat = pick(/obj/item/clothing/head/helmet/roman, /obj/item/clothing/head/helmet/roman/legionaire)
- H.equip_to_slot_or_del(new hat(H), slot_head)
- H.equip_to_slot_or_del(new /obj/item/clothing/under/roman(H), slot_w_uniform)
- H.equip_to_slot_or_del(new /obj/item/clothing/shoes/roman(H), slot_shoes)
+ H.equip_to_slot_or_del(new hat(H), SLOT_HEAD)
+ H.equip_to_slot_or_del(new /obj/item/clothing/under/roman(H), SLOT_W_UNIFORM)
+ H.equip_to_slot_or_del(new /obj/item/clothing/shoes/roman(H), SLOT_SHOES)
H.put_in_hands(new /obj/item/shield/riot/roman(H), TRUE)
H.put_in_hands(new /obj/item/claymore(H), TRUE)
- H.equip_to_slot_or_del(new /obj/item/twohanded/spear(H), slot_back)
+ H.equip_to_slot_or_del(new /obj/item/twohanded/spear(H), SLOT_BACK)
/obj/item/voodoo
diff --git a/code/modules/antagonists/wizard/equipment/soulstone.dm b/code/modules/antagonists/wizard/equipment/soulstone.dm
index 976e13faa3..e26c1e6d39 100644
--- a/code/modules/antagonists/wizard/equipment/soulstone.dm
+++ b/code/modules/antagonists/wizard/equipment/soulstone.dm
@@ -8,7 +8,7 @@
layer = HIGH_OBJ_LAYER
desc = "A fragment of the legendary treasure known simply as the 'Soul Stone'. The shard still flickers with a fraction of the full artefact's power."
w_class = WEIGHT_CLASS_TINY
- slot_flags = SLOT_BELT
+ slot_flags = ITEM_SLOT_BELT
var/usability = 0
var/old_shard = FALSE
diff --git a/code/modules/antagonists/wizard/wizard.dm b/code/modules/antagonists/wizard/wizard.dm
index 1e071bbf84..c5bc0cc5f7 100644
--- a/code/modules/antagonists/wizard/wizard.dm
+++ b/code/modules/antagonists/wizard/wizard.dm
@@ -238,17 +238,17 @@
if(!istype(master_mob) || !istype(H))
return
if(master_mob.ears)
- H.equip_to_slot_or_del(new master_mob.ears.type, slot_ears)
+ H.equip_to_slot_or_del(new master_mob.ears.type, SLOT_EARS)
if(master_mob.w_uniform)
- H.equip_to_slot_or_del(new master_mob.w_uniform.type, slot_w_uniform)
+ H.equip_to_slot_or_del(new master_mob.w_uniform.type, SLOT_W_UNIFORM)
if(master_mob.shoes)
- H.equip_to_slot_or_del(new master_mob.shoes.type, slot_shoes)
+ H.equip_to_slot_or_del(new master_mob.shoes.type, SLOT_SHOES)
if(master_mob.wear_suit)
- H.equip_to_slot_or_del(new master_mob.wear_suit.type, slot_wear_suit)
+ H.equip_to_slot_or_del(new master_mob.wear_suit.type, SLOT_WEAR_SUIT)
if(master_mob.head)
- H.equip_to_slot_or_del(new master_mob.head.type, slot_head)
+ H.equip_to_slot_or_del(new master_mob.head.type, SLOT_HEAD)
if(master_mob.back)
- H.equip_to_slot_or_del(new master_mob.back.type, slot_back)
+ H.equip_to_slot_or_del(new master_mob.back.type, SLOT_BACK)
//Operation: Fuck off and scare people
owner.AddSpell(new /obj/effect/proc_holder/spell/targeted/area_teleport/teleport(null))
diff --git a/code/modules/assembly/flash.dm b/code/modules/assembly/flash.dm
index 3cefdaf005..6093b4a97c 100644
--- a/code/modules/assembly/flash.dm
+++ b/code/modules/assembly/flash.dm
@@ -244,7 +244,7 @@
item_state = "flashshield"
lefthand_file = 'icons/mob/inhands/equipment/shields_lefthand.dmi'
righthand_file = 'icons/mob/inhands/equipment/shields_righthand.dmi'
- slot_flags = SLOT_BACK
+ slot_flags = ITEM_SLOT_BACK
force = 10
throwforce = 5
throw_speed = 2
diff --git a/code/modules/atmospherics/environmental/LINDA_fire.dm b/code/modules/atmospherics/environmental/LINDA_fire.dm
index c58d14f4d4..a3c9c68d55 100644
--- a/code/modules/atmospherics/environmental/LINDA_fire.dm
+++ b/code/modules/atmospherics/environmental/LINDA_fire.dm
@@ -94,7 +94,7 @@
for(var/A in location)
var/atom/AT = A
- if(AT && AT != src) // It's possible that the item is deleted in temperature_expose
+ if(!QDELETED(AT) && AT != src) // It's possible that the item is deleted in temperature_expose
AT.fire_act(temperature, volume)
return
diff --git a/code/modules/atmospherics/gasmixtures/reactions.dm b/code/modules/atmospherics/gasmixtures/reactions.dm
index 8118b44b70..dd953dcb11 100644
--- a/code/modules/atmospherics/gasmixtures/reactions.dm
+++ b/code/modules/atmospherics/gasmixtures/reactions.dm
@@ -1,10 +1,8 @@
//Plasma fire properties
#define OXYGEN_BURN_RATE_BASE 1.4
#define PLASMA_BURN_RATE_DELTA 9
-#define PLASMA_UPPER_TEMPERATURE (1370+T0C)
#define PLASMA_MINIMUM_OXYGEN_NEEDED 2
#define PLASMA_MINIMUM_OXYGEN_PLASMA_RATIO 30
-#define PLASMA_OXYGEN_FULLBURN 10
#define FIRE_CARBON_ENERGY_RELEASED 100000 //Amount of heat released per mole of burnt carbon into the tile
#define FIRE_HYDROGEN_ENERGY_RELEASED 280000 // Amount of heat released per mole of burnt hydrogen and/or tritium(hydrogen isotope)
#define FIRE_PLASMA_ENERGY_RELEASED 3000000 //Amount of heat released per mole of burnt plasma into the tile
@@ -429,10 +427,8 @@
#undef OXYGEN_BURN_RATE_BASE
#undef PLASMA_BURN_RATE_DELTA
-#undef PLASMA_UPPER_TEMPERATURE
#undef PLASMA_MINIMUM_OXYGEN_NEEDED
#undef PLASMA_MINIMUM_OXYGEN_PLASMA_RATIO
-#undef PLASMA_OXYGEN_FULLBURN
#undef FIRE_CARBON_ENERGY_RELEASED
#undef FIRE_PLASMA_ENERGY_RELEASED
#undef WATER_VAPOR_FREEZE
diff --git a/code/modules/awaymissions/capture_the_flag.dm b/code/modules/awaymissions/capture_the_flag.dm
index 8e602577ac..cc6344cf06 100644
--- a/code/modules/awaymissions/capture_the_flag.dm
+++ b/code/modules/awaymissions/capture_the_flag.dm
@@ -496,10 +496,10 @@
W.update_label(W.registered_name, W.assignment)
// The shielded hardsuit is already NODROP_1
- no_drops += H.get_item_by_slot(slot_gloves)
- no_drops += H.get_item_by_slot(slot_shoes)
- no_drops += H.get_item_by_slot(slot_w_uniform)
- no_drops += H.get_item_by_slot(slot_ears)
+ no_drops += H.get_item_by_slot(SLOT_GLOVES)
+ no_drops += H.get_item_by_slot(SLOT_SHOES)
+ no_drops += H.get_item_by_slot(SLOT_W_UNIFORM)
+ no_drops += H.get_item_by_slot(SLOT_EARS)
for(var/i in no_drops)
var/obj/item/I = i
I.flags_1 |= NODROP_1
diff --git a/code/modules/client/asset_cache.dm b/code/modules/client/asset_cache.dm
index d3c09b2348..28a3ec23b9 100644
--- a/code/modules/client/asset_cache.dm
+++ b/code/modules/client/asset_cache.dm
@@ -467,7 +467,12 @@ GLOBAL_LIST_EMPTY(asset_datums)
/datum/asset/simple/IRV
assets = list(
"jquery-ui.custom-core-widgit-mouse-sortable-min.js" = 'html/IRV/jquery-ui.custom-core-widgit-mouse-sortable-min.js',
- "jquery-1.10.2.min.js" = 'html/IRV/jquery-1.10.2.min.js'
+ )
+
+/datum/asset/group/IRV
+ children = list(
+ /datum/asset/simple/jquery,
+ /datum/asset/simple/IRV
)
/datum/asset/simple/changelog
diff --git a/code/modules/client/client_procs.dm b/code/modules/client/client_procs.dm
index 47cc5e0d25..dfecc6f633 100644
--- a/code/modules/client/client_procs.dm
+++ b/code/modules/client/client_procs.dm
@@ -223,6 +223,9 @@ GLOBAL_LIST_EMPTY(external_rsc_urls)
prefs.last_id = computer_id //these are gonna be used for banning
fps = prefs.clientfps
+ if(fexists(roundend_report_file()))
+ verbs += /client/proc/show_previous_roundend_report
+
log_access("Login: [key_name(src)] from [address ? address : "localhost"]-[computer_id] || BYOND v[byond_version]")
var/alert_mob_dupe_login = FALSE
if(CONFIG_GET(flag/log_access))
diff --git a/code/modules/client/preferences.dm b/code/modules/client/preferences.dm
index 231d375bb3..7eb1c25455 100644
--- a/code/modules/client/preferences.dm
+++ b/code/modules/client/preferences.dm
@@ -1537,9 +1537,7 @@ GLOBAL_LIST_EMPTY(preferences_datums)
ambientocclusion = !ambientocclusion
if(parent && parent.screen && parent.screen.len)
var/obj/screen/plane_master/game_world/PM = locate(/obj/screen/plane_master/game_world) in parent.screen
- PM.filters -= AMBIENT_OCCLUSION
- if(ambientocclusion)
- PM.filters += AMBIENT_OCCLUSION
+ PM.backdrop(parent.mob)
if("save")
save_preferences()
diff --git a/code/modules/client/verbs/ooc.dm b/code/modules/client/verbs/ooc.dm
index e9c4c29a5e..ccf99b5b7e 100644
--- a/code/modules/client/verbs/ooc.dm
+++ b/code/modules/client/verbs/ooc.dm
@@ -294,3 +294,10 @@ GLOBAL_VAR_INIT(normal_ooc_colour, OOC_COLOR)
to_chat(src, "You can't ignore yourself.")
return
ignore_key(selection)
+
+/client/proc/show_previous_roundend_report()
+ set name = "Your Last Round"
+ set category = "OOC"
+ set desc = "View the last round end report you've seen"
+
+ SSticker.show_roundend_report(src, TRUE)
diff --git a/code/modules/clothing/chameleon.dm b/code/modules/clothing/chameleon.dm
index 80562a5c80..4be9df8298 100644
--- a/code/modules/clothing/chameleon.dm
+++ b/code/modules/clothing/chameleon.dm
@@ -63,8 +63,8 @@
// it's NODROP_1
D.dropItemToGround(target, TRUE)
qdel(old_headgear)
- // where is `slot_head` defined? WHO KNOWS
- D.equip_to_slot(new_headgear, slot_head)
+ // where is `SLOT_HEAD` defined? WHO KNOWS
+ D.equip_to_slot(new_headgear, SLOT_HEAD)
return 1
@@ -331,8 +331,7 @@
item_state = "gas_alt"
resistance_flags = NONE
armor = list("melee" = 5, "bullet" = 5, "laser" = 5, "energy" = 0, "bomb" = 0, "bio" = 0, "rad" = 0, "fire" = 50, "acid" = 50)
-
- flags_1 = BLOCK_GAS_SMOKE_EFFECT_1 | MASKINTERNALS_1
+ clothing_flags = BLOCK_GAS_SMOKE_EFFECT | MASKINTERNALS
flags_inv = HIDEEARS|HIDEEYES|HIDEFACE|HIDEFACIALHAIR
gas_transfer_coefficient = 0.01
permeability_coefficient = 0.01
@@ -408,7 +407,7 @@
icon_state = "black"
item_color = "black"
desc = "A pair of black shoes."
- flags_1 = NOSLIP_1
+ clothing_flags = NOSLIP
/obj/item/clothing/shoes/chameleon/noslip/broken/Initialize()
. = ..()
@@ -637,4 +636,3 @@
/obj/item/pda/chameleon/broken/Initialize()
. = ..()
chameleon_action.emp_randomise(INFINITY)
-
diff --git a/code/modules/clothing/clothing.dm b/code/modules/clothing/clothing.dm
index 9ab929ba20..e303e3c1c2 100644
--- a/code/modules/clothing/clothing.dm
+++ b/code/modules/clothing/clothing.dm
@@ -24,9 +24,11 @@
var/can_flashlight = 0
var/scan_reagents = 0 //Can the wearer see reagents while it's equipped?
+ var/clothing_flags = NONE
+
//Var modification - PLEASE be careful with this I know who you are and where you live
- var/list/user_vars_to_edit = list() //VARNAME = VARVALUE eg: "name" = "butts"
- var/list/user_vars_remembered = list() //Auto built by the above + dropped() + equipped()
+ var/list/user_vars_to_edit //VARNAME = VARVALUE eg: "name" = "butts"
+ var/list/user_vars_remembered //Auto built by the above + dropped() + equipped()
var/pocket_storage_component_path
@@ -72,12 +74,12 @@
..()
if(!istype(user))
return
- if(user_vars_remembered && user_vars_remembered.len)
+ if(LAZYLEN(user_vars_remembered))
for(var/variable in user_vars_remembered)
if(variable in user.vars)
if(user.vars[variable] == user_vars_to_edit[variable]) //Is it still what we set it to? (if not we best not change it)
user.vars[variable] = user_vars_remembered[variable]
- user_vars_remembered = list()
+ user_vars_remembered = initial(user_vars_remembered) // Effectively this sets it to null.
/obj/item/clothing/equipped(mob/user, slot)
..()
@@ -88,7 +90,7 @@
for(var/variable in user_vars_to_edit)
if(variable in user.vars)
LAZYSET(user_vars_remembered, variable, user.vars[variable])
- user.vv_edit_var(variable, user_vars_to_edit[variable])
+ user.vars[variable] = user_vars_to_edit[variable]
/obj/item/clothing/examine(mob/user)
..()
@@ -262,7 +264,7 @@ BLIND // can't see anything
/obj/item/clothing/proc/visor_toggling() //handles all the actual toggling of flags
up = !up
- flags_1 ^= visor_flags
+ clothing_flags ^= visor_flags
flags_inv ^= visor_flags_inv
flags_cover ^= initial(flags_cover)
icon_state = "[initial(icon_state)][up ? "up" : ""]"
diff --git a/code/modules/clothing/ears/_ears.dm b/code/modules/clothing/ears/_ears.dm
index 0ff1bdefe3..3a1e246d04 100644
--- a/code/modules/clothing/ears/_ears.dm
+++ b/code/modules/clothing/ears/_ears.dm
@@ -1,46 +1,46 @@
+//Ears: currently only used for headsets and earmuffs
+
/obj/item/clothing/ears
+
name = "ears"
+
w_class = WEIGHT_CLASS_TINY
+
throwforce = 0
+
slot_flags = ITEM_SLOT_EARS
+
resistance_flags = NONE
-//Ears: currently only used for headsets and earmuffs
-/obj/item/clothing/ears
- name = "ears"
- w_class = WEIGHT_CLASS_TINY
- throwforce = 0
- slot_flags = SLOT_EARS
- resistance_flags = NONE
+
/obj/item/clothing/ears/earmuffs
+
name = "earmuffs"
+
desc = "Protects your hearing from loud noises, and quiet ones as well."
+
icon_state = "earmuffs"
+
item_state = "earmuffs"
+
strip_delay = 15
+
equip_delay_other = 25
+
resistance_flags = FLAMMABLE
+
flags_2 = BANG_PROTECT_2|HEALS_EARS_2
-/obj/item/clothing/ears/earmuffs
- name = "earmuffs"
- desc = "Protects your hearing from loud noises, and quiet ones as well."
- icon_state = "earmuffs"
- item_state = "earmuffs"
- strip_delay = 15
- equip_delay_other = 25
- resistance_flags = FLAMMABLE
- flags_2 = BANG_PROTECT_2|HEALS_EARS_2
+
/obj/item/clothing/ears/headphones
+
name = "headphones"
+
desc = "Unce unce unce unce. Boop!"
+
icon = 'icons/obj/clothing/accessories.dmi'
+
icon_state = "headphones"
+
item_state = "headphones"
+
slot_flags = ITEM_SLOT_EARS | ITEM_SLOT_HEAD | ITEM_SLOT_NECK //Fluff item, put it whereever you want!
+
actions_types = list(/datum/action/item_action/toggle_headphones)
+
var/headphones_on = FALSE
-/obj/item/clothing/ears/headphones
- name = "headphones"
- desc = "Unce unce unce unce. Boop!"
- icon = 'icons/obj/clothing/accessories.dmi'
- icon_state = "headphones"
- item_state = "headphones"
- slot_flags = SLOT_EARS | SLOT_HEAD | SLOT_NECK //Fluff item, put it whereever you want!
- actions_types = list(/datum/action/item_action/toggle_headphones)
- var/headphones_on = FALSE
+
/obj/item/clothing/ears/headphones/Initialize()
+
. = ..()
+
update_icon()
-/obj/item/clothing/ears/headphones/Initialize()
- . = ..()
- update_icon()
+
/obj/item/clothing/ears/headphones/update_icon()
+
icon_state = "[initial(icon_state)]_[headphones_on? "on" : "off"]"
+
item_state = "[initial(item_state)]_[headphones_on? "on" : "off"]"
-/obj/item/clothing/ears/headphones/update_icon()
- icon_state = "[initial(icon_state)]_[headphones_on? "on" : "off"]"
- item_state = "[initial(item_state)]_[headphones_on? "on" : "off"]"
-
-/obj/item/clothing/ears/headphones/proc/toggle(owner)
- headphones_on = !headphones_on
- update_icon()
- var/mob/living/carbon/human/H = owner
- if(istype(H))
- H.update_inv_ears()
- H.update_inv_neck()
- H.update_inv_head()
- to_chat(owner, "You turn the music [headphones_on? "on. Untz Untz Untz!" : "off."] ")
+
/obj/item/clothing/ears/headphones/proc/toggle(owner)
+
headphones_on = !headphones_on
+
update_icon()
+
var/mob/living/carbon/human/H = owner
+
if(istype(H))
+
H.update_inv_ears()
+
H.update_inv_neck()
+
H.update_inv_head()
+
to_chat(owner, "You turn the music [headphones_on? "on. Untz Untz Untz!" : "off."] ")
+
\ No newline at end of file
diff --git a/code/modules/clothing/glasses/_glasses.dm b/code/modules/clothing/glasses/_glasses.dm
index 7b8b417561..179054bee7 100644
--- a/code/modules/clothing/glasses/_glasses.dm
+++ b/code/modules/clothing/glasses/_glasses.dm
@@ -4,7 +4,7 @@
icon = 'icons/obj/clothing/glasses.dmi'
w_class = WEIGHT_CLASS_SMALL
flags_cover = GLASSESCOVERSEYES
- slot_flags = SLOT_EYES
+ slot_flags = ITEM_SLOT_EYES
strip_delay = 20
equip_delay_other = 25
resistance_flags = NONE
@@ -100,7 +100,7 @@
armor = list("melee" = 0, "bullet" = 0, "laser" = 0, "energy" = 0, "bomb" = 0, "bio" = 0, "rad" = 0, "fire" = 80, "acid" = 100)
/obj/item/clothing/glasses/science/item_action_slot_check(slot)
- if(slot == slot_glasses)
+ if(slot == SLOT_GLASSES)
return 1
/obj/item/clothing/glasses/night
@@ -263,7 +263,7 @@
/obj/item/clothing/glasses/sunglasses/blindfold/equipped(mob/living/carbon/human/user, slot)
. = ..()
- if(slot == slot_glasses)
+ if(slot == SLOT_GLASSES)
user.become_blind("blindfold_[REF(src)]")
/obj/item/clothing/glasses/sunglasses/blindfold/dropped(mob/living/carbon/human/user)
diff --git a/code/modules/clothing/glasses/engine_goggles.dm b/code/modules/clothing/glasses/engine_goggles.dm
index 347bc809a3..336881106e 100644
--- a/code/modules/clothing/glasses/engine_goggles.dm
+++ b/code/modules/clothing/glasses/engine_goggles.dm
@@ -123,7 +123,7 @@
item_state = icon_state
if(isliving(loc))
var/mob/living/user = loc
- if(user.get_item_by_slot(slot_glasses) == src)
+ if(user.get_item_by_slot(SLOT_GLASSES) == src)
user.update_inv_glasses()
else
user.update_inv_hands()
diff --git a/code/modules/clothing/glasses/hud.dm b/code/modules/clothing/glasses/hud.dm
index 626bf4f542..6364826942 100644
--- a/code/modules/clothing/glasses/hud.dm
+++ b/code/modules/clothing/glasses/hud.dm
@@ -6,7 +6,7 @@
/obj/item/clothing/glasses/hud/equipped(mob/living/carbon/human/user, slot)
..()
- if(hud_type && slot == slot_glasses)
+ if(hud_type && slot == SLOT_GLASSES)
var/datum/atom_hud/H = GLOB.huds[hud_type]
H.add_hud_to(user)
diff --git a/code/modules/clothing/gloves/_gloves.dm b/code/modules/clothing/gloves/_gloves.dm
index ca534f5a58..0e9be23aed 100644
--- a/code/modules/clothing/gloves/_gloves.dm
+++ b/code/modules/clothing/gloves/_gloves.dm
@@ -5,7 +5,7 @@
icon = 'icons/obj/clothing/gloves.dmi'
siemens_coefficient = 0.5
body_parts_covered = HANDS
- slot_flags = SLOT_GLOVES
+ slot_flags = ITEM_SLOT_GLOVES
attack_verb = list("challenged")
var/transfer_prints = FALSE
strip_delay = 20
diff --git a/code/modules/clothing/gloves/color.dm b/code/modules/clothing/gloves/color.dm
index 09f5993cb4..1b20501f21 100644
--- a/code/modules/clothing/gloves/color.dm
+++ b/code/modules/clothing/gloves/color.dm
@@ -209,7 +209,7 @@
var/obj/item/clothing/gloves/color/selected = pick(gloves)
if(ishuman(loc))
var/mob/living/carbon/human/H = loc
- H.equip_to_slot_or_del(new selected(H), slot_gloves)
+ H.equip_to_slot_or_del(new selected(H), SLOT_GLOVES)
else
new selected(loc)
return INITIALIZE_HINT_QDEL
diff --git a/code/modules/clothing/head/_head.dm b/code/modules/clothing/head/_head.dm
index d3dfa189d8..6a3082b558 100644
--- a/code/modules/clothing/head/_head.dm
+++ b/code/modules/clothing/head/_head.dm
@@ -4,7 +4,7 @@
icon_state = "top_hat"
item_state = "that"
body_parts_covered = HEAD
- slot_flags = SLOT_HEAD
+ slot_flags = ITEM_SLOT_HEAD
var/blockTracking = 0 //For AI tracking
var/can_toggle = null
dynamic_hair_suffix = "+generic"
diff --git a/code/modules/clothing/head/hardhat.dm b/code/modules/clothing/head/hardhat.dm
index db3dda1dd2..ae4d80a0e4 100644
--- a/code/modules/clothing/head/hardhat.dm
+++ b/code/modules/clothing/head/hardhat.dm
@@ -46,7 +46,7 @@
item_color = "red"
dog_fashion = null
name = "firefighter helmet"
- flags_1 = STOPSPRESSUREDMAGE_1
+ clothing_flags = STOPSPRESSUREDAMAGE
heat_protection = HEAD
max_heat_protection_temperature = FIRE_HELM_MAX_TEMP_PROTECT
cold_protection = HEAD
@@ -56,7 +56,7 @@
icon_state = "hardhat0_white"
item_state = "hardhat0_white"
item_color = "white"
- flags_1 = STOPSPRESSUREDMAGE_1
+ clothing_flags = STOPSPRESSUREDAMAGE
heat_protection = HEAD
max_heat_protection_temperature = FIRE_HELM_MAX_TEMP_PROTECT
cold_protection = HEAD
@@ -76,7 +76,7 @@
dog_fashion = null
name = "atmospheric technician's firefighting helmet"
desc = "A firefighter's helmet, able to keep the user cool in any situation."
- flags_1 = STOPSPRESSUREDMAGE_1 | THICKMATERIAL_1
+ clothing_flags = STOPSPRESSUREDAMAGE | THICKMATERIAL | BLOCK_GAS_SMOKE_EFFECT
flags_inv = HIDEMASK|HIDEEARS|HIDEEYES|HIDEFACE|HIDEHAIR|HIDEFACIALHAIR
heat_protection = HEAD
max_heat_protection_temperature = FIRE_IMMUNITY_HELM_MAX_TEMP_PROTECT
diff --git a/code/modules/clothing/head/helmet.dm b/code/modules/clothing/head/helmet.dm
index 4bf68c3bd0..4aea3d8056 100644
--- a/code/modules/clothing/head/helmet.dm
+++ b/code/modules/clothing/head/helmet.dm
@@ -122,7 +122,7 @@
min_cold_protection_temperature = SPACE_HELM_MIN_TEMP_PROTECT
heat_protection = HEAD
max_heat_protection_temperature = SPACE_HELM_MAX_TEMP_PROTECT
- flags_1 = STOPSPRESSUREDMAGE_1
+ clothing_flags = STOPSPRESSUREDAMAGE
strip_delay = 80
dog_fashion = null
diff --git a/code/modules/clothing/head/misc_special.dm b/code/modules/clothing/head/misc_special.dm
index b58c9fc414..86763e060b 100644
--- a/code/modules/clothing/head/misc_special.dm
+++ b/code/modules/clothing/head/misc_special.dm
@@ -131,7 +131,7 @@
dog_fashion = /datum/dog_fashion/head/kitty
/obj/item/clothing/head/kitty/equipped(mob/living/carbon/human/user, slot)
- if(ishuman(user) && slot == slot_head)
+ if(ishuman(user) && slot == SLOT_HEAD)
update_icon(user)
user.update_inv_head() //Color might have been changed by update_icon.
..()
@@ -169,7 +169,7 @@
/obj/item/clothing/head/cardborg/equipped(mob/living/user, slot)
..()
- if(ishuman(user) && slot == slot_head)
+ if(ishuman(user) && slot == SLOT_HEAD)
var/mob/living/carbon/human/H = user
if(istype(H.wear_suit, /obj/item/clothing/suit/cardborg))
var/obj/item/clothing/suit/cardborg/CB = H.wear_suit
@@ -240,7 +240,7 @@
/obj/item/clothing/head/foilhat/equipped(mob/living/carbon/human/user, slot)
..()
- if(slot == slot_head)
+ if(slot == SLOT_HEAD)
if(paranoia)
QDEL_NULL(paranoia)
paranoia = new()
diff --git a/code/modules/clothing/head/vg_hats.dm b/code/modules/clothing/head/vg_hats.dm
index 56844193c6..be57619a7a 100644
--- a/code/modules/clothing/head/vg_hats.dm
+++ b/code/modules/clothing/head/vg_hats.dm
@@ -10,7 +10,6 @@
min_cold_protection_temperature = SPACE_HELM_MIN_TEMP_PROTECT
heat_protection = HEAD
max_heat_protection_temperature = SPACE_HELM_MAX_TEMP_PROTECT
- flags_1 = STOPSPRESSUREDMAGE_1
strip_delay = 80
dog_fashion = null
icon_override = 'modular_citadel/icons/mob/citadel/head.dmi'
diff --git a/code/modules/clothing/masks/_masks.dm b/code/modules/clothing/masks/_masks.dm
index 562375e897..da3e114edd 100644
--- a/code/modules/clothing/masks/_masks.dm
+++ b/code/modules/clothing/masks/_masks.dm
@@ -2,7 +2,7 @@
name = "mask"
icon = 'icons/obj/clothing/masks.dmi'
body_parts_covered = HEAD
- slot_flags = SLOT_MASK
+ slot_flags = ITEM_SLOT_MASK
strip_delay = 40
equip_delay_other = 40
var/mask_adjusted = 0
@@ -33,7 +33,7 @@
src.icon_state = initial(icon_state)
gas_transfer_coefficient = initial(gas_transfer_coefficient)
permeability_coefficient = initial(permeability_coefficient)
- flags_1 |= visor_flags
+ clothing_flags |= visor_flags
flags_inv |= visor_flags_inv
flags_cover |= visor_flags_cover
to_chat(user, "You push \the [src] back into place. ")
@@ -43,11 +43,11 @@
to_chat(user, "You push \the [src] out of the way. ")
gas_transfer_coefficient = null
permeability_coefficient = null
- flags_1 &= ~visor_flags
+ clothing_flags &= ~visor_flags
flags_inv &= ~visor_flags_inv
flags_cover &= ~visor_flags_cover
if(adjusted_flags)
slot_flags = adjusted_flags
if(user)
user.wear_mask_update(src, toggle_off = mask_adjusted)
- user.update_action_buttons_icon() //when mask is adjusted out, we update all buttons icon so the user's potential internal tank correctly shows as off.
\ No newline at end of file
+ user.update_action_buttons_icon() //when mask is adjusted out, we update all buttons icon so the user's potential internal tank correctly shows as off.
diff --git a/code/modules/clothing/masks/breath.dm b/code/modules/clothing/masks/breath.dm
index ce8a8520df..145d3cb3fe 100644
--- a/code/modules/clothing/masks/breath.dm
+++ b/code/modules/clothing/masks/breath.dm
@@ -4,8 +4,8 @@
icon_state = "breath"
item_state = "m_mask"
body_parts_covered = 0
- flags_1 = MASKINTERNALS_1
- visor_flags = MASKINTERNALS_1
+ clothing_flags = MASKINTERNALS
+ visor_flags = MASKINTERNALS
w_class = WEIGHT_CLASS_SMALL
gas_transfer_coefficient = 0.1
permeability_coefficient = 0.5
diff --git a/code/modules/clothing/masks/gasmask.dm b/code/modules/clothing/masks/gasmask.dm
index 694c290f4b..726670762e 100644
--- a/code/modules/clothing/masks/gasmask.dm
+++ b/code/modules/clothing/masks/gasmask.dm
@@ -2,7 +2,7 @@
name = "gas mask"
desc = "A face-covering mask that can be connected to an air supply. While good for concealing your identity, it isn't good for blocking gas flow." //More accurate
icon_state = "gas_alt"
- flags_1 = BLOCK_GAS_SMOKE_EFFECT_1 | MASKINTERNALS_1
+ clothing_flags = BLOCK_GAS_SMOKE_EFFECT | MASKINTERNALS
flags_inv = HIDEEARS|HIDEEYES|HIDEFACE|HIDEFACIALHAIR
w_class = WEIGHT_CLASS_NORMAL
item_state = "gas_alt"
@@ -51,7 +51,7 @@
/obj/item/clothing/mask/gas/clown_hat
name = "clown wig and mask"
desc = "A true prankster's facial attire. A clown is incomplete without his wig and mask."
- flags_1 = MASKINTERNALS_1
+ clothing_flags = MASKINTERNALS
icon_state = "clown"
item_state = "clown_hat"
flags_cover = MASKCOVERSEYES
@@ -83,7 +83,7 @@
/obj/item/clothing/mask/gas/sexyclown
name = "sexy-clown wig and mask"
desc = "A feminine clown mask for the dabbling crossdressers or female entertainers."
- flags_1 = MASKINTERNALS_1
+ clothing_flags = MASKINTERNALS
icon_state = "sexyclown"
item_state = "sexyclown"
flags_cover = MASKCOVERSEYES
@@ -92,7 +92,7 @@
/obj/item/clothing/mask/gas/mime
name = "mime mask"
desc = "The traditional mime's mask. It has an eerie facial posture."
- flags_1 = MASKINTERNALS_1
+ clothing_flags = MASKINTERNALS
icon_state = "mime"
item_state = "mime"
flags_cover = MASKCOVERSEYES
@@ -124,7 +124,7 @@
/obj/item/clothing/mask/gas/monkeymask
name = "monkey mask"
desc = "A mask used when acting as a monkey."
- flags_1 = MASKINTERNALS_1
+ clothing_flags = MASKINTERNALS
icon_state = "monkeymask"
item_state = "monkeymask"
flags_cover = MASKCOVERSEYES
@@ -133,7 +133,7 @@
/obj/item/clothing/mask/gas/sexymime
name = "sexy mime mask"
desc = "A traditional female mime's mask."
- flags_1 = MASKINTERNALS_1
+ clothing_flags = MASKINTERNALS
icon_state = "sexymime"
item_state = "sexymime"
flags_cover = MASKCOVERSEYES
@@ -154,7 +154,7 @@
name = "owl mask"
desc = "Twoooo!"
icon_state = "owl"
- flags_1 = MASKINTERNALS_1
+ clothing_flags = MASKINTERNALS
flags_cover = MASKCOVERSEYES
resistance_flags = FLAMMABLE
diff --git a/code/modules/clothing/masks/hailer.dm b/code/modules/clothing/masks/hailer.dm
index 51caf8335e..0d78e11874 100644
--- a/code/modules/clothing/masks/hailer.dm
+++ b/code/modules/clothing/masks/hailer.dm
@@ -7,10 +7,10 @@
actions_types = list(/datum/action/item_action/halt, /datum/action/item_action/adjust)
icon_state = "sechailer"
item_state = "sechailer"
- flags_1 = BLOCK_GAS_SMOKE_EFFECT_1 | MASKINTERNALS_1
+ clothing_flags = BLOCK_GAS_SMOKE_EFFECT | MASKINTERNALS
flags_inv = HIDEFACIALHAIR|HIDEFACE
w_class = WEIGHT_CLASS_SMALL
- visor_flags = BLOCK_GAS_SMOKE_EFFECT_1 | MASKINTERNALS_1
+ visor_flags = BLOCK_GAS_SMOKE_EFFECT | MASKINTERNALS
visor_flags_inv = HIDEFACE
flags_cover = MASKCOVERSMOUTH
visor_flags_cover = MASKCOVERSMOUTH
diff --git a/code/modules/clothing/masks/miscellaneous.dm b/code/modules/clothing/masks/miscellaneous.dm
index 96b8517e92..ad77f1d350 100644
--- a/code/modules/clothing/masks/miscellaneous.dm
+++ b/code/modules/clothing/masks/miscellaneous.dm
@@ -222,8 +222,8 @@ obj/item/clothing/mask/frog/cursed
flags_inv = HIDEFACE|HIDEFACIALHAIR
visor_flags_inv = HIDEFACE|HIDEFACIALHAIR
visor_flags_cover = MASKCOVERSMOUTH
- slot_flags = SLOT_MASK
- adjusted_flags = SLOT_HEAD
+ slot_flags = ITEM_SLOT_MASK
+ adjusted_flags = ITEM_SLOT_HEAD
icon_state = "bandbotany"
/obj/item/clothing/mask/bandana/attack_self(mob/user)
diff --git a/code/modules/clothing/neck/_neck.dm b/code/modules/clothing/neck/_neck.dm
index 1d92ab6e62..cb797c34d4 100644
--- a/code/modules/clothing/neck/_neck.dm
+++ b/code/modules/clothing/neck/_neck.dm
@@ -2,7 +2,7 @@
name = "necklace"
icon = 'icons/obj/clothing/neck.dmi'
body_parts_covered = NECK
- slot_flags = SLOT_NECK
+ slot_flags = ITEM_SLOT_NECK
strip_delay = 40
equip_delay_other = 40
diff --git a/code/modules/clothing/shoes/_shoes.dm b/code/modules/clothing/shoes/_shoes.dm
index 0758013698..e3c32cd26c 100644
--- a/code/modules/clothing/shoes/_shoes.dm
+++ b/code/modules/clothing/shoes/_shoes.dm
@@ -6,7 +6,7 @@
var/chained = 0
body_parts_covered = FEET
- slot_flags = SLOT_FEET
+ slot_flags = ITEM_SLOT_FEET
permeability_coefficient = 0.5
slowdown = SHOES_SLOWDOWN
diff --git a/code/modules/clothing/shoes/bananashoes.dm b/code/modules/clothing/shoes/bananashoes.dm
index df3aa5007f..3dc80e0ded 100644
--- a/code/modules/clothing/shoes/bananashoes.dm
+++ b/code/modules/clothing/shoes/bananashoes.dm
@@ -13,7 +13,7 @@
AddComponent(/datum/component/material_container, list(MAT_BANANIUM), 200000, TRUE, list(/obj/item/stack))
AddComponent(/datum/component/squeak, list('sound/items/bikehorn.ogg'=1), 75)
if(always_noslip)
- flags_1 |= NOSLIP_1
+ clothing_flags |= NOSLIP
/obj/item/clothing/shoes/clown_shoes/banana_shoes/step_action()
. = ..()
@@ -22,7 +22,7 @@
if(bananium.amount(MAT_BANANIUM) < 100)
on = !on
if(!always_noslip)
- flags_1 &= ~NOSLIP_1
+ clothing_flags &= ~NOSLIP
update_icon()
to_chat(loc, "You ran out of bananium! ")
else
@@ -49,9 +49,9 @@
to_chat(user, "You [on ? "activate" : "deactivate"] the prototype shoes. ")
if(!always_noslip)
if(on)
- flags_1 |= NOSLIP_1
+ clothing_flags |= NOSLIP
else
- flags_1 &= ~NOSLIP_1
+ clothing_flags &= ~NOSLIP
else
to_chat(user, "You need bananium to turn the prototype shoes on! ")
diff --git a/code/modules/clothing/shoes/magboots.dm b/code/modules/clothing/shoes/magboots.dm
index e669ce3826..0f5b381326 100644
--- a/code/modules/clothing/shoes/magboots.dm
+++ b/code/modules/clothing/shoes/magboots.dm
@@ -21,12 +21,12 @@
/obj/item/clothing/shoes/magboots/attack_self(mob/user)
- if(src.magpulse)
- src.flags_1 &= ~NOSLIP_1
- src.slowdown = SHOES_SLOWDOWN
+ if(magpulse)
+ clothing_flags &= ~NOSLIP
+ slowdown = SHOES_SLOWDOWN
else
- src.flags_1 |= NOSLIP_1
- src.slowdown = slowdown_active
+ clothing_flags |= NOSLIP
+ slowdown = slowdown_active
magpulse = !magpulse
icon_state = "[magboot_state][magpulse]"
to_chat(user, "You [magpulse ? "enable" : "disable"] the mag-pulse traction system. ")
@@ -37,7 +37,7 @@
A.UpdateButtonIcon()
/obj/item/clothing/shoes/magboots/negates_gravity()
- return flags_1 & NOSLIP_1
+ return clothing_flags & NOSLIP
/obj/item/clothing/shoes/magboots/examine(mob/user)
..()
diff --git a/code/modules/clothing/shoes/miscellaneous.dm b/code/modules/clothing/shoes/miscellaneous.dm
index 3dad0d464e..9f0d8358ac 100644
--- a/code/modules/clothing/shoes/miscellaneous.dm
+++ b/code/modules/clothing/shoes/miscellaneous.dm
@@ -23,7 +23,7 @@
name = "\improper SWAT boots"
desc = "High speed, no drag combat boots."
permeability_coefficient = 0.01
- flags_1 = NOSLIP_1
+ clothing_flags = NOSLIP
armor = list("melee" = 40, "bullet" = 30, "laser" = 25, "energy" = 25, "bomb" = 50, "bio" = 30, "rad" = 30, "fire" = 90, "acid" = 50)
/obj/item/clothing/shoes/sandal
@@ -50,7 +50,7 @@
name = "galoshes"
icon_state = "galoshes"
permeability_coefficient = 0.01
- flags_1 = NOSLIP_1
+ clothing_flags = NOSLIP
slowdown = SHOES_SLOWDOWN+1
strip_delay = 50
equip_delay_other = 50
@@ -264,7 +264,7 @@
/obj/item/clothing/shoes/wheelys/ui_action_click(mob/user, action)
if(!isliving(user))
return
- if(!istype(user.get_item_by_slot(slot_shoes), /obj/item/clothing/shoes/wheelys))
+ if(!istype(user.get_item_by_slot(SLOT_SHOES), /obj/item/clothing/shoes/wheelys))
to_chat(user, "You must be wearing the wheely-heels to use them! ")
return
if(!(W.is_occupant(user)))
@@ -311,4 +311,4 @@
else
set_light(0)
lightCycle = 0
- active = FALSE
\ No newline at end of file
+ active = FALSE
diff --git a/code/modules/clothing/spacesuits/_spacesuits.dm b/code/modules/clothing/spacesuits/_spacesuits.dm
index 8630d9a3bc..6224e2a3d9 100644
--- a/code/modules/clothing/spacesuits/_spacesuits.dm
+++ b/code/modules/clothing/spacesuits/_spacesuits.dm
@@ -4,7 +4,7 @@
name = "space helmet"
icon_state = "spaceold"
desc = "A special helmet with solar UV shielding to protect your eyes from harmful rays."
- flags_1 = STOPSPRESSUREDMAGE_1 | THICKMATERIAL_1
+ clothing_flags = STOPSPRESSUREDAMAGE | THICKMATERIAL
item_state = "spaceold"
permeability_coefficient = 0.01
armor = list("melee" = 0, "bullet" = 0, "laser" = 0,"energy" = 0, "bomb" = 0, "bio" = 100, "rad" = 50, "fire" = 80, "acid" = 70)
@@ -30,7 +30,7 @@
w_class = WEIGHT_CLASS_BULKY
gas_transfer_coefficient = 0.01
permeability_coefficient = 0.02
- flags_1 = STOPSPRESSUREDMAGE_1 | THICKMATERIAL_1
+ clothing_flags = STOPSPRESSUREDAMAGE | THICKMATERIAL
body_parts_covered = CHEST|GROIN|LEGS|FEET|ARMS|HANDS
allowed = list(/obj/item/flashlight, /obj/item/tank/internals)
slowdown = 1
@@ -42,4 +42,4 @@
max_heat_protection_temperature = SPACE_SUIT_MAX_TEMP_PROTECT
strip_delay = 80
equip_delay_other = 80
- resistance_flags = NONE
\ No newline at end of file
+ resistance_flags = NONE
diff --git a/code/modules/clothing/spacesuits/chronosuit.dm b/code/modules/clothing/spacesuits/chronosuit.dm
index 94553b3964..3040af756e 100644
--- a/code/modules/clothing/spacesuits/chronosuit.dm
+++ b/code/modules/clothing/spacesuits/chronosuit.dm
@@ -115,7 +115,7 @@
teleport_now.UpdateButtonIcon()
- var/list/nonsafe_slots = list(slot_belt, slot_back)
+ var/list/nonsafe_slots = list(SLOT_BELT, SLOT_BACK)
var/list/exposed = list()
for(var/slot in nonsafe_slots)
var/obj/item/slot_item = user.get_item_by_slot(slot)
diff --git a/code/modules/clothing/spacesuits/flightsuit.dm b/code/modules/clothing/spacesuits/flightsuit.dm
index be381e5d3a..d7d0da7582 100644
--- a/code/modules/clothing/spacesuits/flightsuit.dm
+++ b/code/modules/clothing/spacesuits/flightsuit.dm
@@ -22,7 +22,7 @@
actions_types = list(/datum/action/item_action/flightpack/toggle_flight, /datum/action/item_action/flightpack/engage_boosters, /datum/action/item_action/flightpack/toggle_stabilizers, /datum/action/item_action/flightpack/change_power, /datum/action/item_action/flightpack/toggle_airbrake)
armor = list("melee" = 20, "bullet" = 20, "laser" = 20, "energy" = 10, "bomb" = 30, "bio" = 100, "rad" = 75, "fire" = 100, "acid" = 75)
w_class = WEIGHT_CLASS_BULKY
- slot_flags = SLOT_BACK
+ slot_flags = ITEM_SLOT_BACK
resistance_flags = FIRE_PROOF
var/processing_mode = FLIGHTSUIT_PROCESSING_FULL
@@ -546,7 +546,7 @@
..()
/obj/item/flightpack/item_action_slot_check(slot)
- if(slot == SLOT_BACK)
+ if(slot == ITEM_SLOT_BACK)
return TRUE
/obj/item/flightpack/equipped(mob/user, slot)
@@ -573,7 +573,7 @@
momentum_speed = max(momentum_speed_x, momentum_speed_y)
/obj/item/flightpack/item_action_slot_check(slot)
- return slot == slot_back
+ return slot == SLOT_BACK
/obj/item/flightpack/proc/enable_stabilizers()
if(requires_suit && suit && !suit.deployedshoes)
@@ -724,12 +724,12 @@
if(suit)
active = toggle
if(active)
- src.flags_1 |= NOSLIP_1
+ clothing_flags |= NOSLIP
if(!active)
- src.flags_1 &= ~NOSLIP_1
+ clothing_flags &= ~NOSLIP
/obj/item/clothing/shoes/flightshoes/item_action_slot_check(slot)
- return slot == slot_shoes
+ return slot == SLOT_SHOES
/obj/item/clothing/shoes/flightshoes/proc/delink_suit()
if(suit)
@@ -894,7 +894,7 @@
if(user.back)
usermessage("You're already wearing something on your back!", "boldwarning")
return FALSE
- user.equip_to_slot_if_possible(pack,slot_back,0,0,1)
+ user.equip_to_slot_if_possible(pack,SLOT_BACK,0,0,1)
pack.flags_1 |= NODROP_1
resync()
user.visible_message("A [pack.name] extends from [user]'s [name] and clamps to [user.p_their()] back! ")
@@ -932,7 +932,7 @@
if(user.shoes)
usermessage("You're already wearing something on your feet!", "boldwarning")
return FALSE
- user.equip_to_slot_if_possible(shoes,slot_shoes,0,0,1)
+ user.equip_to_slot_if_possible(shoes,SLOT_SHOES,0,0,1)
shoes.flags_1 |= NODROP_1
user.visible_message("[user]'s [name] extends a pair of [shoes.name] over [user.p_their()] feet! ")
user.update_inv_wear_suit()
@@ -963,7 +963,7 @@
/obj/item/clothing/suit/space/hardsuit/flightsuit/equipped(mob/M, slot)
if(ishuman(M))
user = M
- if(slot != slot_wear_suit)
+ if(slot != SLOT_WEAR_SUIT)
if(deployedpack)
retract_flightpack(TRUE)
if(deployedshoes)
@@ -998,7 +998,7 @@
/obj/item/clothing/suit/space/hardsuit/flightsuit/attackby(obj/item/I, mob/wearer, params)
user = wearer
- if(src == user.get_item_by_slot(slot_wear_suit))
+ if(src == user.get_item_by_slot(SLOT_WEAR_SUIT))
usermessage("You can not perform any service without taking the suit off!", "boldwarning")
return FALSE
else if(locked)
diff --git a/code/modules/clothing/spacesuits/hardsuit.dm b/code/modules/clothing/spacesuits/hardsuit.dm
index f5b4a31290..4a8e368208 100644
--- a/code/modules/clothing/spacesuits/hardsuit.dm
+++ b/code/modules/clothing/spacesuits/hardsuit.dm
@@ -48,12 +48,12 @@
soundloop.stop(user)
/obj/item/clothing/head/helmet/space/hardsuit/item_action_slot_check(slot)
- if(slot == slot_head)
+ if(slot == SLOT_HEAD)
return 1
/obj/item/clothing/head/helmet/space/hardsuit/equipped(mob/user, slot)
..()
- if(slot != slot_head)
+ if(slot != SLOT_HEAD)
if(suit)
suit.RemoveHelmet()
soundloop.stop(user)
@@ -119,7 +119,7 @@
if(jetpack)
to_chat(user, "[src] already has a jetpack installed. ")
return
- if(src == user.get_item_by_slot(slot_wear_suit)) //Make sure the player is not wearing the suit before applying the upgrade.
+ if(src == user.get_item_by_slot(SLOT_WEAR_SUIT)) //Make sure the player is not wearing the suit before applying the upgrade.
to_chat(user, "You cannot install the upgrade to [src] while wearing it. ")
return
@@ -131,7 +131,7 @@
if(!jetpack)
to_chat(user, "[src] has no jetpack installed. ")
return
- if(src == user.get_item_by_slot(slot_wear_suit))
+ if(src == user.get_item_by_slot(SLOT_WEAR_SUIT))
to_chat(user, "You cannot remove the jetpack from [src] while wearing it. ")
return
@@ -146,7 +146,7 @@
/obj/item/clothing/suit/space/hardsuit/equipped(mob/user, slot)
..()
if(jetpack)
- if(slot == slot_wear_suit)
+ if(slot == SLOT_WEAR_SUIT)
for(var/X in jetpack.actions)
var/datum/action/A = X
A.Grant(user)
@@ -159,7 +159,7 @@
A.Remove(user)
/obj/item/clothing/suit/space/hardsuit/item_action_slot_check(slot)
- if(slot == slot_wear_suit) //we only give the mob the ability to toggle the helmet if he's wearing the hardsuit.
+ if(slot == SLOT_WEAR_SUIT) //we only give the mob the ability to toggle the helmet if he's wearing the hardsuit.
return 1
//Engineering
@@ -272,7 +272,7 @@
var/obj/item/clothing/suit/space/hardsuit/syndi/linkedsuit = null
actions_types = list(/datum/action/item_action/toggle_helmet_mode)
visor_flags_inv = HIDEMASK|HIDEEYES|HIDEFACE|HIDEFACIALHAIR
- visor_flags = STOPSPRESSUREDMAGE_1
+ visor_flags = STOPSPRESSUREDAMAGE
/obj/item/clothing/head/helmet/space/hardsuit/syndi/update_icon()
icon_state = "hardsuit[on]-[item_color]"
@@ -292,7 +292,7 @@
name = initial(name)
desc = initial(desc)
set_light(brightness_on)
- flags_1 |= visor_flags
+ clothing_flags |= visor_flags
flags_cover |= HEADCOVERSEYES | HEADCOVERSMOUTH
flags_inv |= visor_flags_inv
cold_protection |= HEAD
@@ -301,7 +301,7 @@
name += " (combat)"
desc = alt_desc
set_light(0)
- flags_1 &= ~visor_flags
+ clothing_flags &= ~visor_flags
flags_cover &= ~(HEADCOVERSEYES | HEADCOVERSMOUTH)
flags_inv &= ~visor_flags_inv
cold_protection &= ~HEAD
@@ -322,13 +322,13 @@
linkedsuit.name = initial(linkedsuit.name)
linkedsuit.desc = initial(linkedsuit.desc)
linkedsuit.slowdown = 1
- linkedsuit.flags_1 |= STOPSPRESSUREDMAGE_1
+ linkedsuit.clothing_flags |= STOPSPRESSUREDAMAGE
linkedsuit.cold_protection |= CHEST | GROIN | LEGS | FEET | ARMS | HANDS
else
linkedsuit.name += " (combat)"
linkedsuit.desc = linkedsuit.alt_desc
linkedsuit.slowdown = 0
- linkedsuit.flags_1 &= ~(STOPSPRESSUREDMAGE_1)
+ linkedsuit.clothing_flags &= ~STOPSPRESSUREDAMAGE
linkedsuit.cold_protection &= ~(CHEST | GROIN | LEGS | FEET | ARMS | HANDS)
linkedsuit.icon_state = "hardsuit[on]-[item_color]"
@@ -469,7 +469,7 @@
/obj/item/clothing/head/helmet/space/hardsuit/rd/equipped(mob/living/carbon/human/user, slot)
..()
- if (slot == slot_head)
+ if (slot == SLOT_HEAD)
var/datum/atom_hud/DHUD = GLOB.huds[DATA_HUD_DIAGNOSTIC_BASIC]
DHUD.add_hud_to(user)
@@ -624,7 +624,7 @@
/obj/item/clothing/suit/space/hardsuit/ancient/equipped(mob/user, slot)
. = ..()
- if (slot == slot_wear_suit)
+ if (slot == SLOT_WEAR_SUIT)
if (mobhook && mobhook.parent != user)
QDEL_NULL(mobhook)
if (!mobhook)
@@ -713,7 +713,7 @@
icon_state = "ert_medical"
item_state = "ert_medical"
item_color = "ert_medical"
- flags_1 = STOPSPRESSUREDMAGE_1 | THICKMATERIAL_1 | NODROP_1 //Dont want people changing into the other teams gear
+ flags_1 = NODROP_1 //Dont want people changing into the other teams gear
helmettype = /obj/item/clothing/head/helmet/space/hardsuit/shielded/ctf
armor = list("melee" = 0, "bullet" = 30, "laser" = 30, "energy" = 30, "bomb" = 50, "bio" = 100, "rad" = 100, "fire" = 95, "acid" = 95)
slowdown = 0
diff --git a/code/modules/clothing/spacesuits/miscellaneous.dm b/code/modules/clothing/spacesuits/miscellaneous.dm
index c2dad1a8f3..f3975d1f81 100644
--- a/code/modules/clothing/spacesuits/miscellaneous.dm
+++ b/code/modules/clothing/spacesuits/miscellaneous.dm
@@ -59,7 +59,6 @@ Contains:
icon_state = "beret_badge"
dynamic_hair_suffix = "+generic"
dynamic_fhair_suffix = "+generic"
- flags_1 = STOPSPRESSUREDMAGE_1
flags_inv = 0
armor = list("melee" = 80, "bullet" = 80, "laser" = 50, "energy" = 50, "bomb" = 100, "bio" = 100, "rad" = 100, "fire" = 100, "acid" = 100)
strip_delay = 130
@@ -114,7 +113,6 @@ Contains:
name = "Santa's hat"
desc = "Ho ho ho. Merrry X-mas!"
icon_state = "santahat"
- flags_1 = STOPSPRESSUREDMAGE_1
flags_cover = HEADCOVERSEYES
dog_fashion = /datum/dog_fashion/head/santa
@@ -125,7 +123,6 @@ Contains:
icon_state = "santa"
item_state = "santa"
slowdown = 0
- flags_1 = STOPSPRESSUREDMAGE_1
allowed = list(/obj/item) //for stuffing exta special presents
@@ -136,7 +133,6 @@ Contains:
icon_state = "pirate"
item_state = "pirate"
armor = list("melee" = 30, "bullet" = 50, "laser" = 30,"energy" = 15, "bomb" = 30, "bio" = 30, "rad" = 30, "fire" = 60, "acid" = 75)
- flags_1 = STOPSPRESSUREDMAGE_1
flags_inv = HIDEHAIR
strip_delay = 40
equip_delay_other = 20
@@ -169,7 +165,7 @@ Contains:
item_color = "ert_commander"
armor = list("melee" = 65, "bullet" = 50, "laser" = 50, "energy" = 50, "bomb" = 50, "bio" = 100, "rad" = 100, "fire" = 80, "acid" = 80)
strip_delay = 130
- flags_1 = STOPSPRESSUREDMAGE_1 | THICKMATERIAL_1 | NODROP_1
+ flags_1 = NODROP_1
brightness_on = 7
/obj/item/clothing/suit/space/hardsuit/ert
@@ -269,7 +265,7 @@ Contains:
armor = list("melee" = -20, "bullet" = 0, "laser" = 0, "energy" = 0, "bomb" = 0, "bio" = 100, "rad" = 75, "fire" = 60, "acid" = 75) //As whimpy as a space carp
brightness_on = 0 //luminosity when on
actions_types = list()
- flags_1 = STOPSPRESSUREDMAGE_1 | THICKMATERIAL_1 | NODROP_1
+ flags_1 = NODROP_1
/obj/item/clothing/suit/space/hardsuit/carp
@@ -351,11 +347,9 @@ Contains:
/obj/item/clothing/suit/space/fragile/hit_reaction(mob/living/carbon/human/owner, atom/movable/hitby, attack_text = "the attack", final_block_chance = 0, damage = 0, attack_type = MELEE_ATTACK)
if(!torn && prob(50))
to_chat(owner, "[src] tears from the damage, breaking the air-tight seal! ")
- src.flags_1 &= ~STOPSPRESSUREDMAGE_1
- src.name = "torn [src]."
- src.desc = "A bulky suit meant to protect the user during emergency situations, at least until someone tore a hole in the suit."
- src.torn = TRUE
+ clothing_flags &= ~STOPSPRESSUREDAMAGE
+ name = "torn [src]."
+ desc = "A bulky suit meant to protect the user during emergency situations, at least until someone tore a hole in the suit."
+ torn = TRUE
playsound(loc, 'sound/weapons/slashmiss.ogg', 50, 1)
playsound(loc, 'sound/effects/refill.ogg', 50, 1)
-
-
diff --git a/code/modules/clothing/suits/_suits.dm b/code/modules/clothing/suits/_suits.dm
index 1cf1d4640d..6aabee0c81 100644
--- a/code/modules/clothing/suits/_suits.dm
+++ b/code/modules/clothing/suits/_suits.dm
@@ -4,7 +4,7 @@
var/fire_resist = T0C+100
allowed = list(/obj/item/tank/internals/emergency_oxygen, /obj/item/tank/internals/plasmaman)
armor = list("melee" = 0, "bullet" = 0, "laser" = 0,"energy" = 0, "bomb" = 0, "bio" = 0, "rad" = 0, "fire" = 0, "acid" = 0)
- slot_flags = SLOT_OCLOTHING
+ slot_flags = ITEM_SLOT_OCLOTHING
var/blood_overlay_type = "suit"
var/togglename = null
var/suittoggled = FALSE
diff --git a/code/modules/clothing/suits/bio.dm b/code/modules/clothing/suits/bio.dm
index bffba4a36f..d38c625ee2 100644
--- a/code/modules/clothing/suits/bio.dm
+++ b/code/modules/clothing/suits/bio.dm
@@ -4,7 +4,7 @@
icon_state = "bio"
desc = "A hood that protects the head and face from biological comtaminants."
permeability_coefficient = 0.01
- flags_1 = THICKMATERIAL_1
+ clothing_flags = THICKMATERIAL | BLOCK_GAS_SMOKE_EFFECT
armor = list("melee" = 0, "bullet" = 0, "laser" = 0,"energy" = 0, "bomb" = 0, "bio" = 100, "rad" = 80, "fire" = 30, "acid" = 100)
flags_inv = HIDEMASK|HIDEEARS|HIDEEYES|HIDEHAIR|HIDEFACIALHAIR|HIDEFACE
resistance_flags = ACID_PROOF
@@ -18,7 +18,7 @@
w_class = WEIGHT_CLASS_BULKY
gas_transfer_coefficient = 0.01
permeability_coefficient = 0.01
- flags_1 = THICKMATERIAL_1
+ clothing_flags = THICKMATERIAL
body_parts_covered = CHEST|GROIN|LEGS|FEET|ARMS|HANDS
slowdown = 1
allowed = list(/obj/item/tank/internals/emergency_oxygen, /obj/item/tank/internals/plasmaman, /obj/item/pen, /obj/item/flashlight/pen, /obj/item/reagent_containers/dropper, /obj/item/reagent_containers/syringe, /obj/item/reagent_containers/hypospray)
diff --git a/code/modules/clothing/suits/miscellaneous.dm b/code/modules/clothing/suits/miscellaneous.dm
index 1022ae4e4f..f6cb6a44ad 100644
--- a/code/modules/clothing/suits/miscellaneous.dm
+++ b/code/modules/clothing/suits/miscellaneous.dm
@@ -173,7 +173,7 @@
/obj/item/clothing/suit/cardborg/equipped(mob/living/user, slot)
..()
- if(slot == slot_wear_suit)
+ if(slot == SLOT_WEAR_SUIT)
disguise(user)
/obj/item/clothing/suit/cardborg/dropped(mob/living/user)
@@ -279,7 +279,7 @@
icon_state = "bee"
item_state = "labcoat"
body_parts_covered = CHEST|GROIN|ARMS
- flags_1 = THICKMATERIAL_1
+ clothing_flags = THICKMATERIAL
hoodtype = /obj/item/clothing/head/hooded/bee_hood
/obj/item/clothing/head/hooded/bee_hood
@@ -287,7 +287,7 @@
desc = "A hood attached to a bee costume."
icon_state = "bee"
body_parts_covered = HEAD
- flags_1 = THICKMATERIAL_1
+ clothing_flags = THICKMATERIAL
flags_inv = HIDEHAIR|HIDEEARS
dynamic_hair_suffix = ""
diff --git a/code/modules/clothing/suits/toggles.dm b/code/modules/clothing/suits/toggles.dm
index d09db447a8..c7d91604cf 100644
--- a/code/modules/clothing/suits/toggles.dm
+++ b/code/modules/clothing/suits/toggles.dm
@@ -24,11 +24,11 @@
ToggleHood()
/obj/item/clothing/suit/hooded/item_action_slot_check(slot, mob/user)
- if(slot == slot_wear_suit)
+ if(slot == SLOT_WEAR_SUIT)
return 1
/obj/item/clothing/suit/hooded/equipped(mob/user, slot)
- if(slot != slot_wear_suit)
+ if(slot != SLOT_WEAR_SUIT)
RemoveHood()
..()
@@ -59,7 +59,7 @@
if(H.head)
to_chat(H, "You're already wearing something on your head! ")
return
- else if(H.equip_to_slot_if_possible(hood,slot_head,0,0,1))
+ else if(H.equip_to_slot_if_possible(hood,SLOT_HEAD,0,0,1))
suittoggled = TRUE
src.icon_state = "[initial(icon_state)]_t"
H.update_inv_wear_suit()
@@ -83,7 +83,7 @@
/obj/item/clothing/head/hooded/equipped(mob/user, slot)
..()
- if(slot != slot_head)
+ if(slot != SLOT_HEAD)
if(suit)
suit.RemoveHood()
else
@@ -155,7 +155,7 @@
/obj/item/clothing/suit/space/hardsuit/equipped(mob/user, slot)
if(!helmettype)
return
- if(slot != slot_wear_suit)
+ if(slot != SLOT_WEAR_SUIT)
RemoveHelmet()
..()
@@ -192,7 +192,7 @@
if(H.head)
to_chat(H, "You're already wearing something on your head! ")
return
- else if(H.equip_to_slot_if_possible(helmet,slot_head,0,0,1))
+ else if(H.equip_to_slot_if_possible(helmet,SLOT_HEAD,0,0,1))
to_chat(H, "You engage the helmet on the hardsuit. ")
suittoggled = TRUE
H.update_inv_wear_suit()
diff --git a/code/modules/clothing/suits/utility.dm b/code/modules/clothing/suits/utility.dm
index 28b82a1c43..3a9a72a543 100644
--- a/code/modules/clothing/suits/utility.dm
+++ b/code/modules/clothing/suits/utility.dm
@@ -21,7 +21,7 @@
allowed = list(/obj/item/flashlight, /obj/item/tank/internals/emergency_oxygen, /obj/item/tank/internals/plasmaman, /obj/item/extinguisher, /obj/item/crowbar)
slowdown = 1
flags_inv = HIDEGLOVES|HIDESHOES|HIDEJUMPSUIT
- flags_1 = STOPSPRESSUREDMAGE_1 | THICKMATERIAL_1
+ clothing_flags = STOPSPRESSUREDAMAGE | THICKMATERIAL
heat_protection = CHEST|GROIN|LEGS|FEET|ARMS|HANDS
max_heat_protection_temperature = FIRE_SUIT_MAX_TEMP_PROTECT
cold_protection = CHEST|GROIN|LEGS|FEET|ARMS|HANDS
@@ -56,7 +56,7 @@
name = "bomb hood"
desc = "Use in case of bomb."
icon_state = "bombsuit"
- flags_1 = THICKMATERIAL_1
+ clothing_flags = THICKMATERIAL
armor = list("melee" = 20, "bullet" = 0, "laser" = 20,"energy" = 10, "bomb" = 100, "bio" = 0, "rad" = 0, "fire" = 80, "acid" = 50)
flags_inv = HIDEFACE|HIDEMASK|HIDEEARS|HIDEEYES|HIDEHAIR|HIDEFACIALHAIR
dynamic_hair_suffix = ""
@@ -79,7 +79,7 @@
w_class = WEIGHT_CLASS_BULKY
gas_transfer_coefficient = 0.01
permeability_coefficient = 0.01
- flags_1 = THICKMATERIAL_1
+ clothing_flags = THICKMATERIAL
body_parts_covered = CHEST|GROIN|LEGS|FEET|ARMS|HANDS
slowdown = 2
armor = list("melee" = 20, "bullet" = 0, "laser" = 20,"energy" = 10, "bomb" = 100, "bio" = 0, "rad" = 0, "fire" = 80, "acid" = 50)
@@ -119,7 +119,7 @@
name = "radiation hood"
icon_state = "rad"
desc = "A hood with radiation protective properties. The label reads, 'Made with lead. Please do not consume insulation.'"
- flags_1 = THICKMATERIAL_1
+ clothing_flags = THICKMATERIAL
flags_inv = HIDEMASK|HIDEEARS|HIDEFACE|HIDEEYES|HIDEHAIR|HIDEFACIALHAIR
armor = list("melee" = 0, "bullet" = 0, "laser" = 0,"energy" = 0, "bomb" = 0, "bio" = 60, "rad" = 100, "fire" = 30, "acid" = 30)
strip_delay = 60
@@ -139,7 +139,7 @@
w_class = WEIGHT_CLASS_BULKY
gas_transfer_coefficient = 0.9
permeability_coefficient = 0.5
- flags_1 = THICKMATERIAL_1
+ clothing_flags = THICKMATERIAL
body_parts_covered = CHEST|GROIN|LEGS|FEET|ARMS|HANDS
allowed = list(/obj/item/flashlight, /obj/item/tank/internals/emergency_oxygen, /obj/item/tank/internals/plasmaman, /obj/item/geiger_counter)
slowdown = 1.5
@@ -153,4 +153,4 @@
. = ..()
AddComponent(/datum/component/rad_insulation, RAD_NO_INSULATION, TRUE, FALSE)
// Just don't want things to be irradiated inside this
- // Except things on the mob aren't even inside the suit so ehhhhhh
\ No newline at end of file
+ // Except things on the mob aren't even inside the suit so ehhhhhh
diff --git a/code/modules/clothing/under/_under.dm b/code/modules/clothing/under/_under.dm
index dd290fdaa2..4d037d652b 100644
--- a/code/modules/clothing/under/_under.dm
+++ b/code/modules/clothing/under/_under.dm
@@ -3,7 +3,7 @@
name = "under"
body_parts_covered = CHEST|GROIN|LEGS|ARMS
permeability_coefficient = 0.9
- slot_flags = SLOT_ICLOTHING
+ slot_flags = ITEM_SLOT_ICLOTHING
armor = list("melee" = 0, "bullet" = 0, "laser" = 0,"energy" = 0, "bomb" = 0, "bio" = 0, "rad" = 0, "fire" = 0, "acid" = 0)
var/fitted = FEMALE_UNIFORM_FULL // For use in alternate clothing styles for women
var/has_sensor = HAS_SENSORS // For the crew computer
@@ -65,7 +65,7 @@
adjusted = DIGITIGRADE_STYLE
H.update_inv_w_uniform()
- if(attached_accessory && slot != slot_hands && ishuman(user))
+ if(attached_accessory && slot != SLOT_HANDS && ishuman(user))
var/mob/living/carbon/human/H = user
attached_accessory.on_uniform_equip(src, user)
if(attached_accessory.above_suit)
diff --git a/code/modules/clothing/under/color.dm b/code/modules/clothing/under/color.dm
index 3a12f00a05..afb9bff1c1 100644
--- a/code/modules/clothing/under/color.dm
+++ b/code/modules/clothing/under/color.dm
@@ -9,7 +9,7 @@
var/obj/item/clothing/under/color/C = pick(subtypesof(/obj/item/clothing/under/color) - /obj/item/clothing/under/color/random - /obj/item/clothing/under/color/grey/glorf - /obj/item/clothing/under/color/black/ghost)
if(ishuman(loc))
var/mob/living/carbon/human/H = loc
- H.equip_to_slot_or_del(new C(H), slot_w_uniform) //or else you end up with naked assistants running around everywhere...
+ H.equip_to_slot_or_del(new C(H), SLOT_W_UNIFORM) //or else you end up with naked assistants running around everywhere...
else
new C(loc)
return INITIALIZE_HINT_QDEL
diff --git a/code/modules/detectivework/scanner.dm b/code/modules/detectivework/scanner.dm
index 5623b082a4..c323f1edf2 100644
--- a/code/modules/detectivework/scanner.dm
+++ b/code/modules/detectivework/scanner.dm
@@ -12,7 +12,7 @@
lefthand_file = 'icons/mob/inhands/misc/devices_lefthand.dmi'
righthand_file = 'icons/mob/inhands/misc/devices_righthand.dmi'
flags_1 = CONDUCT_1 | NOBLUDGEON_1
- slot_flags = SLOT_BELT
+ slot_flags = ITEM_SLOT_BELT
var/scanning = 0
var/list/log = list()
var/range = 8
diff --git a/code/modules/events/wizard/curseditems.dm b/code/modules/events/wizard/curseditems.dm
index 9de5a93292..180589b4f1 100644
--- a/code/modules/events/wizard/curseditems.dm
+++ b/code/modules/events/wizard/curseditems.dm
@@ -11,29 +11,29 @@
/datum/round_event/wizard/cursed_items/start()
var/item_set = pick("wizardmimic", "swords", "bigfatdoobie", "boxing", "voicemodulators", "catgirls2015")
- var/list/loadout[slots_amt]
+ var/list/loadout[SLOTS_AMT]
var/ruins_spaceworthiness
var/ruins_wizard_loadout
switch(item_set)
if("wizardmimic")
- loadout[slot_wear_suit] = /obj/item/clothing/suit/wizrobe
- loadout[slot_shoes] = /obj/item/clothing/shoes/sandal/magic
- loadout[slot_head] = /obj/item/clothing/head/wizard
+ loadout[SLOT_WEAR_SUIT] = /obj/item/clothing/suit/wizrobe
+ loadout[SLOT_SHOES] = /obj/item/clothing/shoes/sandal/magic
+ loadout[SLOT_HEAD] = /obj/item/clothing/head/wizard
ruins_spaceworthiness = 1
if("swords")
- loadout[slot_hands] = /obj/item/katana/cursed
+ loadout[SLOT_HANDS] = /obj/item/katana/cursed
if("bigfatdoobie")
- loadout[slot_wear_mask] = /obj/item/clothing/mask/cigarette/rollie/trippy
+ loadout[SLOT_WEAR_MASK] = /obj/item/clothing/mask/cigarette/rollie/trippy
ruins_spaceworthiness = 1
if("boxing")
- loadout[slot_wear_mask] = /obj/item/clothing/mask/luchador
- loadout[slot_gloves] = /obj/item/clothing/gloves/boxing
+ loadout[SLOT_WEAR_MASK] = /obj/item/clothing/mask/luchador
+ loadout[SLOT_GLOVES] = /obj/item/clothing/gloves/boxing
ruins_spaceworthiness = 1
if("voicemodulators")
- loadout[slot_wear_mask] = /obj/item/clothing/mask/chameleon
+ loadout[SLOT_WEAR_MASK] = /obj/item/clothing/mask/chameleon
if("catgirls2015")
- loadout[slot_head] = /obj/item/clothing/head/kitty
+ loadout[SLOT_HEAD] = /obj/item/clothing/head/kitty
ruins_spaceworthiness = 1
ruins_wizard_loadout = 1
diff --git a/code/modules/food_and_drinks/food/snacks_bread.dm b/code/modules/food_and_drinks/food/snacks_bread.dm
index 2e2759913b..4282015eb5 100644
--- a/code/modules/food_and_drinks/food/snacks_bread.dm
+++ b/code/modules/food_and_drinks/food/snacks_bread.dm
@@ -13,7 +13,7 @@
custom_food_type = /obj/item/reagent_containers/food/snacks/customizable/sandwich
filling_color = "#FFA500"
list_reagents = list("nutriment" = 2)
- slot_flags = SLOT_HEAD
+ slot_flags = ITEM_SLOT_HEAD
customfoodfilling = 0 //to avoid infinite bread-ception
foodtype = GRAIN
diff --git a/code/modules/goonchat/browserOutput.dm b/code/modules/goonchat/browserOutput.dm
index 7fe939ea29..be06f99d61 100644
--- a/code/modules/goonchat/browserOutput.dm
+++ b/code/modules/goonchat/browserOutput.dm
@@ -105,19 +105,10 @@ GLOBAL_DATUM_INIT(iconCache, /savefile, new("data/iconCache.sav")) //Cache of ic
//do not convert to to_chat()
SEND_TEXT(owner, "Failed to load fancy chat, reverting to old chat. Certain features won't work. ")
- pingLoop()
-
/datum/chatOutput/proc/showChat()
winset(owner, "output", "is-visible=false")
winset(owner, "browseroutput", "is-disabled=false;is-visible=true")
-/datum/chatOutput/proc/pingLoop()
- set waitfor = FALSE
-
- while (owner)
- ehjax_send(data = owner.is_afk(29) ? "softPang" : "pang") // SoftPang isn't handled anywhere but it'll always reset the opts.lastPang.
- sleep(30)
-
/datum/chatOutput/proc/ehjax_send(client/C = owner, window = "browseroutput", data)
if(islist(data))
data = json_encode(data)
diff --git a/code/modules/hydroponics/beekeeping/beebox.dm b/code/modules/hydroponics/beekeeping/beebox.dm
index 7075b8502e..5a35597a34 100644
--- a/code/modules/hydroponics/beekeeping/beebox.dm
+++ b/code/modules/hydroponics/beekeeping/beebox.dm
@@ -18,8 +18,11 @@
/mob/living/carbon/human/bee_friendly()
if(dna && dna.species && dna.species.id == "pod") //bees pollinate plants, duh.
return 1
- if((wear_suit && (wear_suit.flags_1 & THICKMATERIAL_1)) && (head && (head.flags_1 & THICKMATERIAL_1)))
- return 1
+ if (wear_suit && head && is_type_in_typecache(wear_suit, GLOB.typecache_clothing) && is_type_in_typecache(wear_suit, GLOB.typecache_clothing))
+ var/obj/item/clothing/CS = wear_suit
+ var/obj/item/clothing/CH = head
+ if (CS.clothing_flags & CH.clothing_flags & THICKMATERIAL)
+ return 1
return 0
diff --git a/code/modules/hydroponics/beekeeping/beekeeper_suit.dm b/code/modules/hydroponics/beekeeping/beekeeper_suit.dm
index b871951b0f..7fa1a0dd2c 100644
--- a/code/modules/hydroponics/beekeeping/beekeeper_suit.dm
+++ b/code/modules/hydroponics/beekeeping/beekeeper_suit.dm
@@ -4,7 +4,7 @@
desc = "Keeps the lil buzzing buggers out of your eyes."
icon_state = "beekeeper"
item_state = "beekeeper"
- flags_1 = THICKMATERIAL_1
+ clothing_flags = THICKMATERIAL
/obj/item/clothing/suit/beekeeper_suit
@@ -12,5 +12,4 @@
desc = "Keeps the lil buzzing buggers away from your squishy bits."
icon_state = "beekeeper"
item_state = "beekeeper"
- flags_1 = THICKMATERIAL_1
-
+ clothing_flags = THICKMATERIAL
diff --git a/code/modules/hydroponics/grown/ambrosia.dm b/code/modules/hydroponics/grown/ambrosia.dm
index 05cd54a9f0..5883b4dd64 100644
--- a/code/modules/hydroponics/grown/ambrosia.dm
+++ b/code/modules/hydroponics/grown/ambrosia.dm
@@ -4,7 +4,7 @@
name = "ambrosia branch"
desc = "This is a plant."
icon_state = "ambrosiavulgaris"
- slot_flags = SLOT_HEAD
+ slot_flags = ITEM_SLOT_HEAD
filling_color = "#008000"
bitesize_mod = 2
foodtype = VEGETABLES
diff --git a/code/modules/hydroponics/grown/flowers.dm b/code/modules/hydroponics/grown/flowers.dm
index 18eae2f4fd..8455df887e 100644
--- a/code/modules/hydroponics/grown/flowers.dm
+++ b/code/modules/hydroponics/grown/flowers.dm
@@ -22,7 +22,7 @@
name = "poppy"
desc = "Long-used as a symbol of rest, peace, and death."
icon_state = "poppy"
- slot_flags = SLOT_HEAD
+ slot_flags = ITEM_SLOT_HEAD
filling_color = "#FF6347"
bitesize_mod = 3
foodtype = VEGETABLES | GROSS
@@ -86,7 +86,7 @@
name = "harebell"
desc = "\"I'll sweeten thy sad grave: thou shalt not lack the flower that's like thy face, pale primrose, nor the azured hare-bell, like thy veins; no, nor the leaf of eglantine, whom not to slander, out-sweeten'd not thy breath.\""
icon_state = "harebell"
- slot_flags = SLOT_HEAD
+ slot_flags = ITEM_SLOT_HEAD
filling_color = "#E6E6FA"
bitesize_mod = 3
@@ -118,7 +118,7 @@
righthand_file = 'icons/mob/inhands/weapons/plants_righthand.dmi'
damtype = "fire"
force = 0
- slot_flags = SLOT_HEAD
+ slot_flags = ITEM_SLOT_HEAD
throwforce = 0
w_class = WEIGHT_CLASS_TINY
throw_speed = 1
@@ -149,7 +149,7 @@
name = "moonflower"
desc = "Store in a location at least 50 yards away from werewolves."
icon_state = "moonflower"
- slot_flags = SLOT_HEAD
+ slot_flags = ITEM_SLOT_HEAD
filling_color = "#E6E6FA"
bitesize_mod = 2
@@ -176,7 +176,7 @@
righthand_file = 'icons/mob/inhands/weapons/plants_righthand.dmi'
damtype = "fire"
force = 0
- slot_flags = SLOT_HEAD
+ slot_flags = ITEM_SLOT_HEAD
throwforce = 0
w_class = WEIGHT_CLASS_TINY
throw_speed = 1
diff --git a/code/modules/hydroponics/hydroitemdefines.dm b/code/modules/hydroponics/hydroitemdefines.dm
index 31e888fdad..591fdfd535 100644
--- a/code/modules/hydroponics/hydroitemdefines.dm
+++ b/code/modules/hydroponics/hydroitemdefines.dm
@@ -8,7 +8,7 @@
lefthand_file = 'icons/mob/inhands/equipment/tools_lefthand.dmi'
righthand_file = 'icons/mob/inhands/equipment/tools_righthand.dmi'
w_class = WEIGHT_CLASS_TINY
- slot_flags = SLOT_BELT
+ slot_flags = ITEM_SLOT_BELT
materials = list(MAT_METAL=30, MAT_GLASS=20)
// *************************************
@@ -112,7 +112,7 @@
w_class = WEIGHT_CLASS_BULKY
flags_1 = CONDUCT_1
armour_penetration = 20
- slot_flags = SLOT_BACK
+ slot_flags = ITEM_SLOT_BACK
attack_verb = list("chopped", "sliced", "cut", "reaped")
hitsound = 'sound/weapons/bladeslice.ogg'
var/swiping = FALSE
diff --git a/code/modules/hydroponics/hydroponics.dm b/code/modules/hydroponics/hydroponics.dm
index 3890c8e317..fb6915aef9 100644
--- a/code/modules/hydroponics/hydroponics.dm
+++ b/code/modules/hydroponics/hydroponics.dm
@@ -56,22 +56,19 @@
return ..()
/obj/machinery/hydroponics/constructable/attackby(obj/item/I, mob/user, params)
- if(default_deconstruction_screwdriver(user, "hydrotray3", "hydrotray3", I))
- return
-
- if(default_pry_open(I))
- return
-
- if(default_unfasten_wrench(user, I))
- return
-
- if(istype(I, /obj/item/crowbar))
- if(using_irrigation)
- to_chat(user, "Disconnect the hoses first! ")
- else if(default_deconstruction_crowbar(I, 1))
+ if (user.a_intent != INTENT_HARM)
+ // handle opening the panel
+ if(default_deconstruction_screwdriver(user, icon_state, icon_state, I))
return
- else
- return ..()
+
+ // handle deconstructing the machine, if permissible
+ if (I.tool_behaviour == TOOL_CROWBAR && using_irrigation)
+ to_chat(user, "Disconnect the hoses first! ")
+ return
+ else if(default_deconstruction_crowbar(I))
+ return
+
+ return ..()
/obj/machinery/hydroponics/proc/FindConnected()
var/list/connected = list()
@@ -787,31 +784,13 @@
for(var/obj/item/reagent_containers/food/snacks/grown/G in locate(user.x,user.y,user.z))
O.SendSignal(COMSIG_TRY_STORAGE_INSERT, G, user, TRUE)
- else if(istype(O, /obj/item/wrench) && unwrenchable)
- if(using_irrigation)
- to_chat(user, "Disconnect the hoses first! ")
- return
-
- if(!anchored && !isinspace())
- user.visible_message("[user] begins to wrench [src] into place.", \
- "You begin to wrench [src] in place... ")
- if (O.use_tool(src, user, 20, volume=50))
- if(anchored)
- return
- anchored = TRUE
- user.visible_message("[user] wrenches [src] into place.", \
- "You wrench [src] in place. ")
- else if(anchored)
- user.visible_message("[user] begins to unwrench [src].", \
- "You begin to unwrench [src]... ")
- if (O.use_tool(src, user, 20, volume=50))
- if(!anchored)
- return
- anchored = FALSE
- user.visible_message("[user] unwrenches [src].", \
- "You unwrench [src]. ")
+ else if(default_unfasten_wrench(user, O))
+ return
else if(istype(O, /obj/item/wirecutters) && unwrenchable)
+ if (!anchored)
+ to_chat(user, "Anchor the tray first! ")
+ return
using_irrigation = !using_irrigation
O.play_tool_sound(src)
user.visible_message("[user] [using_irrigation ? "" : "dis"]connects [src]'s irrigation hoses. ", \
@@ -840,6 +819,17 @@
else
return ..()
+/obj/machinery/hydroponics/can_be_unfasten_wrench(mob/user, silent)
+ if (!unwrenchable) // case also covered by NODECONSTRUCT checks in default_unfasten_wrench
+ return CANT_UNFASTEN
+
+ if (using_irrigation)
+ if (!silent)
+ to_chat(user, "Disconnect the hoses first! ")
+ return FAILED_UNFASTEN
+
+ return ..()
+
/obj/machinery/hydroponics/attack_hand(mob/user)
. = ..()
if(.)
diff --git a/code/modules/integrated_electronics/core/saved_circuits.dm b/code/modules/integrated_electronics/core/saved_circuits.dm
index bc85cc4d9a..f58378cf6d 100644
--- a/code/modules/integrated_electronics/core/saved_circuits.dm
+++ b/code/modules/integrated_electronics/core/saved_circuits.dm
@@ -146,7 +146,7 @@
// Validate name and color
if(assembly_params["name"] && !reject_bad_name(assembly_params["name"], TRUE))
return "Bad assembly name."
- if(assembly_params["desc"] && !reject_bad_text(assembly_params["desc"], TRUE))
+ if(assembly_params["desc"] && !reject_bad_text(assembly_params["desc"]))
return "Bad assembly description."
if(assembly_params["detail_color"] && !(assembly_params["detail_color"] in color_whitelist))
return "Bad assembly color."
diff --git a/code/modules/jobs/job_types/cargo_service.dm b/code/modules/jobs/job_types/cargo_service.dm
index 479230e5be..1351d2beeb 100644
--- a/code/modules/jobs/job_types/cargo_service.dm
+++ b/code/modules/jobs/job_types/cargo_service.dm
@@ -111,7 +111,7 @@ Shaft Miner
mask = /obj/item/clothing/mask/gas/explorer
glasses = /obj/item/clothing/glasses/meson
suit_store = /obj/item/tank/internals/oxygen
- internals_slot = slot_s_store
+ internals_slot = SLOT_S_STORE
backpack_contents = list(
/obj/item/storage/bag/ore=1,
/obj/item/kitchen/knife/combat/survival=1,
@@ -220,7 +220,7 @@ Cook
var/list/possible_boxes = subtypesof(/obj/item/storage/box/ingredients)
var/chosen_box = pick(possible_boxes)
var/obj/item/storage/box/I = new chosen_box(src)
- H.equip_to_slot_or_del(I,slot_in_backpack)
+ H.equip_to_slot_or_del(I,SLOT_IN_BACKPACK)
var/datum/martial_art/cqc/under_siege/justacook = new
justacook.teach(H)
diff --git a/code/modules/jobs/job_types/civilian_chaplain.dm b/code/modules/jobs/job_types/civilian_chaplain.dm
index 09eb9f34e9..1ef6be2e60 100644
--- a/code/modules/jobs/job_types/civilian_chaplain.dm
+++ b/code/modules/jobs/job_types/civilian_chaplain.dm
@@ -31,7 +31,7 @@ Chaplain
B.icon_state = SSreligion.bible_icon_state
B.item_state = SSreligion.bible_item_state
to_chat(H, "There is already an established religion onboard the station. You are an acolyte of [SSreligion.deity]. Defer to the Chaplain.")
- H.equip_to_slot_or_del(B, slot_in_backpack)
+ H.equip_to_slot_or_del(B, SLOT_IN_BACKPACK)
var/nrt = SSreligion.holy_weapon_type || /obj/item/nullrod
var/obj/item/nullrod/N = new nrt(H)
H.put_in_hands(N)
@@ -79,7 +79,7 @@ Chaplain
SSreligion.bible_name = B.name
SSreligion.deity = B.deity_name
- H.equip_to_slot_or_del(B, slot_in_backpack)
+ H.equip_to_slot_or_del(B, SLOT_IN_BACKPACK)
SSblackbox.record_feedback("text", "religion_name", 1, "[new_religion]", 1)
SSblackbox.record_feedback("text", "religion_deity", 1, "[new_deity]", 1)
diff --git a/code/modules/jobs/job_types/engineering.dm b/code/modules/jobs/job_types/engineering.dm
index 9717062770..d7f23f48c9 100644
--- a/code/modules/jobs/job_types/engineering.dm
+++ b/code/modules/jobs/job_types/engineering.dm
@@ -48,7 +48,7 @@ Chief Engineer
satchel = /obj/item/storage/backpack/satchel/eng
duffelbag = /obj/item/storage/backpack/duffelbag/engineering
box = /obj/item/storage/box/engineer
- pda_slot = slot_l_store
+ pda_slot = SLOT_L_STORE
/datum/outfit/job/ce/rig
name = "Chief Engineer (Hardsuit)"
@@ -59,7 +59,7 @@ Chief Engineer
suit_store = /obj/item/tank/internals/oxygen
gloves = /obj/item/clothing/gloves/color/yellow
head = null
- internals_slot = slot_s_store
+ internals_slot = SLOT_S_STORE
/*
@@ -102,7 +102,7 @@ Station Engineer
satchel = /obj/item/storage/backpack/satchel/eng
duffelbag = /obj/item/storage/backpack/duffelbag/engineering
box = /obj/item/storage/box/engineer
- pda_slot = slot_l_store
+ pda_slot = SLOT_L_STORE
backpack_contents = list(/obj/item/modular_computer/tablet/preset/advanced=1)
/datum/outfit/job/engineer/gloved
@@ -116,7 +116,7 @@ Station Engineer
suit = /obj/item/clothing/suit/space/hardsuit/engine
suit_store = /obj/item/tank/internals/oxygen
head = null
- internals_slot = slot_s_store
+ internals_slot = SLOT_S_STORE
/*
@@ -156,7 +156,7 @@ Atmospheric Technician
satchel = /obj/item/storage/backpack/satchel/eng
duffelbag = /obj/item/storage/backpack/duffelbag/engineering
box = /obj/item/storage/box/engineer
- pda_slot = slot_l_store
+ pda_slot = SLOT_L_STORE
backpack_contents = list(/obj/item/modular_computer/tablet/preset/advanced=1)
/datum/outfit/job/atmos/rig
@@ -165,4 +165,4 @@ Atmospheric Technician
mask = /obj/item/clothing/mask/gas
suit = /obj/item/clothing/suit/space/hardsuit/engine/atmos
suit_store = /obj/item/tank/internals/oxygen
- internals_slot = slot_s_store
+ internals_slot = SLOT_S_STORE
diff --git a/code/modules/jobs/job_types/job.dm b/code/modules/jobs/job_types/job.dm
index 65ac5ea0d8..156e975a65 100644
--- a/code/modules/jobs/job_types/job.dm
+++ b/code/modules/jobs/job_types/job.dm
@@ -151,7 +151,7 @@
var/duffelbag = /obj/item/storage/backpack/duffelbag
var/box = /obj/item/storage/box/survival
- var/pda_slot = slot_belt
+ var/pda_slot = SLOT_BELT
/datum/outfit/job/pre_equip(mob/living/carbon/human/H, visualsOnly = FALSE)
switch(H.backbag)
diff --git a/code/modules/jobs/job_types/science.dm b/code/modules/jobs/job_types/science.dm
index d2f77319fc..b82a5d85d2 100644
--- a/code/modules/jobs/job_types/science.dm
+++ b/code/modules/jobs/job_types/science.dm
@@ -56,7 +56,7 @@ Research Director
mask = /obj/item/clothing/mask/breath
suit = /obj/item/clothing/suit/space/hardsuit/rd
suit_store = /obj/item/tank/internals/oxygen
- internals_slot = slot_s_store
+ internals_slot = SLOT_S_STORE
/*
Scientist
@@ -128,4 +128,4 @@ Roboticist
backpack = /obj/item/storage/backpack/science
satchel = /obj/item/storage/backpack/satchel/tox
- pda_slot = slot_l_store
+ pda_slot = SLOT_L_STORE
diff --git a/code/modules/jobs/job_types/security.dm b/code/modules/jobs/job_types/security.dm
index cc842d8e59..6295e9964e 100644
--- a/code/modules/jobs/job_types/security.dm
+++ b/code/modules/jobs/job_types/security.dm
@@ -244,7 +244,7 @@ GLOBAL_LIST_INIT(available_depts, list(SEC_DEPT_ENGINEERING, SEC_DEPT_MEDICAL, S
if(ears)
if(H.ears)
qdel(H.ears)
- H.equip_to_slot_or_del(new ears(H),slot_ears)
+ H.equip_to_slot_or_del(new ears(H),SLOT_EARS)
var/obj/item/card/id/W = H.wear_id
W.access |= dep_access
diff --git a/code/modules/keybindings/bindings_human.dm b/code/modules/keybindings/bindings_human.dm
index 7c52917386..14890cc7e2 100644
--- a/code/modules/keybindings/bindings_human.dm
+++ b/code/modules/keybindings/bindings_human.dm
@@ -3,12 +3,12 @@
switch(_key)
if("E") // Put held thing in belt or take out most recent thing from belt
var/obj/item/thing = get_active_held_item()
- var/obj/item/storage/equipped_belt = get_item_by_slot(slot_belt)
+ var/obj/item/storage/equipped_belt = get_item_by_slot(SLOT_BELT)
if(!equipped_belt) // We also let you equip a belt like this
if(!thing)
to_chat(user, "You have no belt to take something out of. ")
return
- equip_to_slot_if_possible(thing, slot_belt)
+ equip_to_slot_if_possible(thing, SLOT_BELT)
return
if(!istype(equipped_belt)) // not a storage item
if(!thing)
@@ -31,12 +31,12 @@
if("B") // Put held thing in backpack or take out most recent thing from backpack
var/obj/item/thing = get_active_held_item()
- var/obj/item/storage/equipped_backpack = get_item_by_slot(slot_back)
+ var/obj/item/storage/equipped_backpack = get_item_by_slot(SLOT_BACK)
if(!equipped_backpack) // We also let you equip a backpack like this
if(!thing)
to_chat(user, "You have no backpack to take something out of. ")
return
- equip_to_slot_if_possible(thing, slot_back)
+ equip_to_slot_if_possible(thing, SLOT_BACK)
return
if(!istype(equipped_backpack)) // not a storage item
if(!thing)
diff --git a/code/modules/mining/equipment/explorer_gear.dm b/code/modules/mining/equipment/explorer_gear.dm
index 36eb9d5e1b..61d439667d 100644
--- a/code/modules/mining/equipment/explorer_gear.dm
+++ b/code/modules/mining/equipment/explorer_gear.dm
@@ -37,7 +37,7 @@
name = "explorer gas mask"
desc = "A military-grade gas mask that can be connected to an air supply."
icon_state = "gas_mining"
- visor_flags = BLOCK_GAS_SMOKE_EFFECT_1 | MASKINTERNALS_1
+ visor_flags = BLOCK_GAS_SMOKE_EFFECT | MASKINTERNALS
visor_flags_inv = HIDEFACIALHAIR
visor_flags_cover = MASKCOVERSMOUTH
actions_types = list(/datum/action/item_action/adjust)
@@ -60,7 +60,7 @@
desc = "Hostile Environment Cross-Kinetic Suit: A suit designed to withstand the wide variety of hazards from Lavaland. It wasn't enough for its last owner."
icon_state = "hostile_env"
item_state = "hostile_env"
- flags_1 = THICKMATERIAL_1 //not spaceproof
+ clothing_flags = THICKMATERIAL //not spaceproof
max_heat_protection_temperature = FIRE_IMMUNITY_SUIT_MAX_TEMP_PROTECT
resistance_flags = FIRE_PROOF | LAVA_PROOF
slowdown = 0
@@ -92,7 +92,7 @@
item_state = "hostile_env"
w_class = WEIGHT_CLASS_NORMAL
max_heat_protection_temperature = FIRE_IMMUNITY_HELM_MAX_TEMP_PROTECT
- flags_1 = THICKMATERIAL_1 // no space protection
+ clothing_flags = THICKMATERIAL // no space protection
armor = list("melee" = 70, "bullet" = 40, "laser" = 10, "energy" = 10, "bomb" = 50, "bio" = 100, "rad" = 100, "fire" = 100, "acid" = 100)
resistance_flags = FIRE_PROOF | LAVA_PROOF
@@ -114,4 +114,3 @@
var/mutable_appearance/M = mutable_appearance('icons/mob/head.dmi', "hostile_env_glass")
M.appearance_flags = RESET_COLOR
. += M
-
diff --git a/code/modules/mining/equipment/kinetic_crusher.dm b/code/modules/mining/equipment/kinetic_crusher.dm
index 5b86a2d340..558147af23 100644
--- a/code/modules/mining/equipment/kinetic_crusher.dm
+++ b/code/modules/mining/equipment/kinetic_crusher.dm
@@ -10,7 +10,7 @@
While it is an effective mining tool, it did little to aid any but the most skilled and/or suicidal miners against local fauna."
force = 20 //As much as a bone spear, but this is significantly more annoying to carry around due to requiring the use of both hands at all times
w_class = WEIGHT_CLASS_BULKY
- slot_flags = SLOT_BACK
+ slot_flags = ITEM_SLOT_BACK
force_unwielded = 20 //It's never not wielded so these are the same
force_wielded = 20
throwforce = 5
diff --git a/code/modules/mining/equipment/mineral_scanner.dm b/code/modules/mining/equipment/mineral_scanner.dm
index 7327b0c314..d7cdba8f7b 100644
--- a/code/modules/mining/equipment/mineral_scanner.dm
+++ b/code/modules/mining/equipment/mineral_scanner.dm
@@ -8,7 +8,7 @@
righthand_file = 'icons/mob/inhands/equipment/tools_righthand.dmi'
w_class = WEIGHT_CLASS_SMALL
flags_1 = CONDUCT_1
- slot_flags = SLOT_BELT
+ slot_flags = ITEM_SLOT_BELT
var/cooldown = 35
var/current_cooldown = 0
@@ -37,7 +37,7 @@
righthand_file = 'icons/mob/inhands/equipment/tools_righthand.dmi'
w_class = WEIGHT_CLASS_SMALL
flags_1 = CONDUCT_1
- slot_flags = SLOT_BELT
+ slot_flags = ITEM_SLOT_BELT
var/cooldown = 35
var/current_cooldown = 0
var/range = 7
diff --git a/code/modules/mining/equipment/mining_tools.dm b/code/modules/mining/equipment/mining_tools.dm
index beab70aaad..cd6afa20f7 100644
--- a/code/modules/mining/equipment/mining_tools.dm
+++ b/code/modules/mining/equipment/mining_tools.dm
@@ -4,7 +4,7 @@
icon = 'icons/obj/mining.dmi'
icon_state = "pickaxe"
flags_1 = CONDUCT_1
- slot_flags = SLOT_BELT | SLOT_BACK
+ slot_flags = ITEM_SLOT_BELT | ITEM_SLOT_BACK
force = 15
throwforce = 10
item_state = "pickaxe"
@@ -30,7 +30,7 @@
icon_state = "minipick"
force = 10
throwforce = 7
- slot_flags = SLOT_BELT
+ slot_flags = ITEM_SLOT_BELT
w_class = WEIGHT_CLASS_NORMAL
materials = list(MAT_METAL=1000)
@@ -54,7 +54,7 @@
name = "mining drill"
icon_state = "handdrill"
item_state = "jackhammer"
- slot_flags = SLOT_BELT
+ slot_flags = ITEM_SLOT_BELT
toolspeed = 0.6 //available from roundstart, faster than a pickaxe.
usesound = 'sound/weapons/drill.ogg'
hitsound = 'sound/weapons/drill.ogg'
@@ -93,7 +93,7 @@
lefthand_file = 'icons/mob/inhands/equipment/mining_lefthand.dmi'
righthand_file = 'icons/mob/inhands/equipment/mining_righthand.dmi'
flags_1 = CONDUCT_1
- slot_flags = SLOT_BELT
+ slot_flags = ITEM_SLOT_BELT
force = 8
tool_behaviour = TOOL_SHOVEL
toolspeed = 1
diff --git a/code/modules/mining/equipment/wormhole_jaunter.dm b/code/modules/mining/equipment/wormhole_jaunter.dm
index 0737612211..b8ae25a87a 100644
--- a/code/modules/mining/equipment/wormhole_jaunter.dm
+++ b/code/modules/mining/equipment/wormhole_jaunter.dm
@@ -11,7 +11,7 @@
w_class = WEIGHT_CLASS_SMALL
throw_speed = 3
throw_range = 5
- slot_flags = SLOT_BELT
+ slot_flags = ITEM_SLOT_BELT
/obj/item/wormhole_jaunter/attack_self(mob/user)
user.visible_message("[user.name] activates the [src.name]! ")
@@ -53,7 +53,7 @@
/obj/item/wormhole_jaunter/emp_act(power)
var/triggered = FALSE
- if(usr.get_item_by_slot(slot_belt) == src)
+ if(usr.get_item_by_slot(SLOT_BELT) == src)
if(power == 1)
triggered = TRUE
else if(power == 2 && prob(50))
@@ -65,8 +65,8 @@
activate(usr)
/obj/item/wormhole_jaunter/proc/chasm_react(mob/user)
- if(user.get_item_by_slot(slot_belt) == src)
- to_chat(user, "Your [src] activates, saving you from the chasm!")
+ if(user.get_item_by_slot(SLOT_BELT) == src)
+ to_chat(user, "Your [name] activates, saving you from the chasm!")
SSblackbox.record_feedback("tally", "jaunter", 1, "Chasm") // chasm automatic activation
activate(user, FALSE)
else
diff --git a/code/modules/mining/lavaland/necropolis_chests.dm b/code/modules/mining/lavaland/necropolis_chests.dm
index 3912fddc7d..609ab904c3 100644
--- a/code/modules/mining/lavaland/necropolis_chests.dm
+++ b/code/modules/mining/lavaland/necropolis_chests.dm
@@ -438,7 +438,7 @@
desc = "Somehow, it's in two places at once."
icon = 'icons/obj/storage.dmi'
icon_state = "cultpack"
- slot_flags = SLOT_BACK
+ slot_flags = ITEM_SLOT_BACK
resistance_flags = INDESTRUCTIBLE
/obj/item/shared_storage/red
@@ -558,7 +558,7 @@
inhand_y_dimension = 64
icon_state = "cleaving_saw"
icon_state_on = "cleaving_saw_open"
- slot_flags = SLOT_BELT
+ slot_flags = ITEM_SLOT_BELT
attack_verb_off = list("attacked", "sawed", "sliced", "torn", "ripped", "diced", "cut")
attack_verb_on = list("cleaved", "swiped", "slashed", "chopped")
hitsound = 'sound/weapons/bladeslice.ogg'
@@ -816,7 +816,7 @@
lefthand_file = 'icons/mob/inhands/weapons/staves_lefthand.dmi'
righthand_file = 'icons/mob/inhands/weapons/staves_righthand.dmi'
icon = 'icons/obj/guns/magic.dmi'
- slot_flags = SLOT_BACK
+ slot_flags = ITEM_SLOT_BACK
w_class = WEIGHT_CLASS_BULKY
force = 25
damtype = BURN
@@ -993,7 +993,7 @@
righthand_file = 'icons/mob/inhands/64x64_righthand.dmi'
inhand_x_dimension = 64
inhand_y_dimension = 64
- slot_flags = SLOT_BACK
+ slot_flags = ITEM_SLOT_BACK
w_class = WEIGHT_CLASS_BULKY
force = 15
attack_verb = list("clubbed", "beat", "pummeled")
diff --git a/code/modules/mob/dead/new_player/new_player.dm b/code/modules/mob/dead/new_player/new_player.dm
index c6cc8a70ac..9de78d307d 100644
--- a/code/modules/mob/dead/new_player/new_player.dm
+++ b/code/modules/mob/dead/new_player/new_player.dm
@@ -234,6 +234,7 @@
if(POLLTYPE_IRV)
if (!href_list["IRVdata"])
to_chat(src, "No ordering data found. Please try again or contact an administrator. ")
+ return
var/list/votelist = splittext(href_list["IRVdata"], ",")
if (!vote_on_irv_poll(pollid, votelist))
to_chat(src, "Vote failed, please try again or contact an administrator. ")
diff --git a/code/modules/mob/dead/new_player/poll.dm b/code/modules/mob/dead/new_player/poll.dm
index d10e32a887..ce710e5186 100644
--- a/code/modules/mob/dead/new_player/poll.dm
+++ b/code/modules/mob/dead/new_player/poll.dm
@@ -211,7 +211,7 @@
src << browse(null ,"window=playerpolllist")
src << browse(output,"window=playerpoll;size=500x250")
if(POLLTYPE_IRV)
- var/datum/asset/irv_assets = get_asset_datum(/datum/asset/simple/IRV)
+ var/datum/asset/irv_assets = get_asset_datum(/datum/asset/group/IRV)
irv_assets.send(src)
var/datum/DBQuery/query_irv_get_votes = SSdbcore.NewQuery("SELECT optionid FROM [format_table_name("poll_vote")] WHERE pollid = [pollid] AND ckey = '[ckey]'")
@@ -267,7 +267,7 @@
-
+