diff --git a/GainStation13/code/mechanics/fatness.dm b/GainStation13/code/mechanics/fatness.dm
index e8d9dbec..82c5dd31 100644
--- a/GainStation13/code/mechanics/fatness.dm
+++ b/GainStation13/code/mechanics/fatness.dm
@@ -149,6 +149,11 @@ GLOBAL_LIST_INIT(uncapped_resize_areas, list(/area/bridge, /area/crew_quarters,
fatness = min(fatness, (client?.prefs?.max_weight - 1)) //Apply max weight prefs
/mob/living/carbon/proc/adjust_perma(adjustment_amount, type_of_fattening = FATTENING_TYPE_ITEM)
+ if(!client)
+ return FALSE
+ if(!client.prefs.weight_gain_permanent)
+ return FALSE
+
if(!adjustment_amount || !type_of_fattening)
return FALSE
diff --git a/GainStation13/code/modules/client/preferences/preferences.dm b/GainStation13/code/modules/client/preferences/preferences.dm
index d7d2ce81..99a0f618 100644
--- a/GainStation13/code/modules/client/preferences/preferences.dm
+++ b/GainStation13/code/modules/client/preferences/preferences.dm
@@ -19,6 +19,8 @@
var/blueberry_inflation = FALSE
///Extreme weight gain
var/weight_gain_extreme = FALSE
+ ///Permanent weight gain
+ var/weight_gain_permanent = FALSE
/// At what weight will you start to get stuck in airlocks?
var/stuckage = FALSE
/// At what weight will you start to break chairs?
diff --git a/code/modules/client/preferences.dm b/code/modules/client/preferences.dm
index b05aae85..8be93308 100644
--- a/code/modules/client/preferences.dm
+++ b/code/modules/client/preferences.dm
@@ -1077,6 +1077,7 @@ GLOBAL_LIST_EMPTY(preferences_datums)
dat += "This preference functions similar to the one before but allows for items with more drastic effects. Do not enable this if you aren't okay with more drastic things happening to your character.
"
dat += "Extreme Fatness Vulnerability:[extreme_fatness_vulnerable == TRUE ? "Enabled" : "Disabled"]
"
dat += "Extreme Weight Gain (Sprite Size scales with weight):[weight_gain_extreme == TRUE ? "Enabled" : "Disabled"]
"
+ dat += "Weight Gain Permanent (special weight persists between rounds):[weight_gain_permanent == TRUE ? "Enabled" : "Disabled"]
"
dat += "
GS13 Helplessness Preferences
"
dat += "Please be careful when using these mechanics as not to use them in a way that negatively impacts those around you. If you are seriously needed for something, especially something station critical, do not use these as an excuse to ignore your duty.
"
@@ -2666,6 +2667,8 @@ GLOBAL_LIST_EMPTY(preferences_datums)
weight_gain_nanites = !weight_gain_nanites
if("weight_gain_extreme")
weight_gain_extreme = !weight_gain_extreme
+ if("weight_gain_permanent")
+ weight_gain_permanent = !weight_gain_permanent
if("noncon_weight_gain")
noncon_weight_gain = !noncon_weight_gain
if("bot_feeding")
diff --git a/code/modules/client/preferences_savefile.dm b/code/modules/client/preferences_savefile.dm
index dab7cfb7..f669a2ea 100644
--- a/code/modules/client/preferences_savefile.dm
+++ b/code/modules/client/preferences_savefile.dm
@@ -146,36 +146,6 @@ SAVEFILE UPDATING/VERSIONING - 'Simplified', or rather, more coder-friendly ~Car
S["importantroles"] >> importantroles
S["pins"] >> pins
- //GS13 code
- S["weight_gain_food"] >> weight_gain_food
- S["weight_gain_chems"] >> weight_gain_chems
- S["weight_gain_items"] >> weight_gain_items
- S["weight_gain_magic"] >> weight_gain_magic
- S["weight_gain_viruses"] >> weight_gain_viruses
- S["weight_gain_nanites"] >> weight_gain_nanites
- S["weight_gain_weapons"] >> weight_gain_weapons
- S["weight_gain_extreme"] >> weight_gain_extreme
- S["wg_rate"] >> wg_rate
- S["wl_rate"] >> wl_rate
- S["noncon_weight_gain"] >> noncon_weight_gain
- S["bot_feeding"] >> bot_feeding
- S["max_weight"] >> max_weight
- S["helplessness_no_movement"] >> helplessness_no_movement
- S["helplessness_clumsy"] >> helplessness_clumsy
- S["helplessness_nearsighted"] >> helplessness_nearsighted
- S["helplessness_hidden_face"] >> helplessness_hidden_face
- S["helplessness_mute"] >> helplessness_mute
- S["helplessness_immobile_arms"] >> helplessness_immobile_arms
- S["helplessness_clothing_jumpsuit"] >> helplessness_clothing_jumpsuit
- S["helplessness_clothing_misc"] >> helplessness_clothing_misc
- S["helplessness_clothing_back"] >> helplessness_clothing_back
- S["helplessness_no_buckle"] >> helplessness_no_buckle
- S["stuckage"] >> stuckage
- S["chair_breakage"] >> chair_breakage
- S["fatness_vulnerable"] >> fatness_vulnerable
- S["extreme_fatness_vulnerable"] >> extreme_fatness_vulnerable
- S["blueberry_inflation"] >> blueberry_inflation
-
//try to fix any outdated data if necessfary
if(needs_update >= 0)
@@ -303,35 +273,6 @@ SAVEFILE UPDATING/VERSIONING - 'Simplified', or rather, more coder-friendly ~Car
//Hyper
WRITE_FILE(S["noncon"], noncon)
WRITE_FILE(S["pins"], pins)
- //GS13
- WRITE_FILE(S["weight_gain_food"], weight_gain_food)
- WRITE_FILE(S["weight_gain_items"], weight_gain_items)
- WRITE_FILE(S["weight_gain_magic"], weight_gain_magic)
- WRITE_FILE(S["weight_gain_viruses"], weight_gain_viruses)
- WRITE_FILE(S["weight_gain_nanites"], weight_gain_nanites)
- WRITE_FILE(S["weight_gain_chems"], weight_gain_chems)
- WRITE_FILE(S["weight_gain_weapons"], weight_gain_weapons)
- WRITE_FILE(S["weight_gain_extreme"], weight_gain_extreme)
- WRITE_FILE(S["wg_rate"], wg_rate)
- WRITE_FILE(S["wl_rate"], wl_rate)
- WRITE_FILE(S["noncon_weight_gain"], noncon_weight_gain)
- WRITE_FILE(S["bot_feeding"], bot_feeding)
- WRITE_FILE(S["max_weight"], max_weight)
- WRITE_FILE(S["helplessness_no_movement"], helplessness_no_movement)
- WRITE_FILE(S["helplessness_clumsy"], helplessness_clumsy)
- WRITE_FILE(S["helplessness_nearsighted"], helplessness_nearsighted)
- WRITE_FILE(S["helplessness_hidden_face"], helplessness_hidden_face)
- WRITE_FILE(S["helplessness_mute"], helplessness_mute)
- WRITE_FILE(S["helplessness_immobile_arms"], helplessness_immobile_arms)
- WRITE_FILE(S["helplessness_clothing_jumpsuit"], helplessness_clothing_jumpsuit)
- WRITE_FILE(S["helplessness_clothing_misc"], helplessness_clothing_misc)
- WRITE_FILE(S["helplessness_clothing_back"], helplessness_clothing_back)
- WRITE_FILE(S["helplessness_no_buckle"], helplessness_no_buckle)
- WRITE_FILE(S["stuckage"], stuckage)
- WRITE_FILE(S["chair_breakage"], chair_breakage)
- WRITE_FILE(S["fatness_vulnerable"], fatness_vulnerable)
- WRITE_FILE(S["extreme_fatness_vulnerable"], extreme_fatness_vulnerable)
- WRITE_FILE(S["blueberry_inflation"], blueberry_inflation)
return 1
@@ -545,6 +486,37 @@ SAVEFILE UPDATING/VERSIONING - 'Simplified', or rather, more coder-friendly ~Car
else
S["feature_ooc_text"] >> features["ooc_text"]
+ //GS13 code preferences
+ S["weight_gain_food"] >> weight_gain_food
+ S["weight_gain_chems"] >> weight_gain_chems
+ S["weight_gain_items"] >> weight_gain_items
+ S["weight_gain_magic"] >> weight_gain_magic
+ S["weight_gain_viruses"] >> weight_gain_viruses
+ S["weight_gain_nanites"] >> weight_gain_nanites
+ S["weight_gain_weapons"] >> weight_gain_weapons
+ S["weight_gain_extreme"] >> weight_gain_extreme
+ S["weight_gain_permanent"] >> weight_gain_permanent
+ S["wg_rate"] >> wg_rate
+ S["wl_rate"] >> wl_rate
+ S["noncon_weight_gain"] >> noncon_weight_gain
+ S["bot_feeding"] >> bot_feeding
+ S["max_weight"] >> max_weight
+ S["helplessness_no_movement"] >> helplessness_no_movement
+ S["helplessness_clumsy"] >> helplessness_clumsy
+ S["helplessness_nearsighted"] >> helplessness_nearsighted
+ S["helplessness_hidden_face"] >> helplessness_hidden_face
+ S["helplessness_mute"] >> helplessness_mute
+ S["helplessness_immobile_arms"] >> helplessness_immobile_arms
+ S["helplessness_clothing_jumpsuit"] >> helplessness_clothing_jumpsuit
+ S["helplessness_clothing_misc"] >> helplessness_clothing_misc
+ S["helplessness_clothing_back"] >> helplessness_clothing_back
+ S["helplessness_no_buckle"] >> helplessness_no_buckle
+ S["stuckage"] >> stuckage
+ S["chair_breakage"] >> chair_breakage
+ S["fatness_vulnerable"] >> fatness_vulnerable
+ S["extreme_fatness_vulnerable"] >> extreme_fatness_vulnerable
+ S["blueberry_inflation"] >> blueberry_inflation
+
//try to fix any outdated data if necessary
if(needs_update >= 0)
update_character(needs_update, S) //needs_update == savefile_version if we need an update (positive integer)
@@ -733,6 +705,37 @@ SAVEFILE UPDATING/VERSIONING - 'Simplified', or rather, more coder-friendly ~Car
WRITE_FILE(S["hide_ckey"] , hide_ckey)
WRITE_FILE(S["all_quirks"] , all_quirks)
+ //GS13 PREFS
+ WRITE_FILE(S["weight_gain_food"], weight_gain_food)
+ WRITE_FILE(S["weight_gain_items"], weight_gain_items)
+ WRITE_FILE(S["weight_gain_magic"], weight_gain_magic)
+ WRITE_FILE(S["weight_gain_viruses"], weight_gain_viruses)
+ WRITE_FILE(S["weight_gain_nanites"], weight_gain_nanites)
+ WRITE_FILE(S["weight_gain_chems"], weight_gain_chems)
+ WRITE_FILE(S["weight_gain_weapons"], weight_gain_weapons)
+ WRITE_FILE(S["weight_gain_extreme"], weight_gain_extreme)
+ WRITE_FILE(S["weight_gain_permanent"], weight_gain_permanent)
+ WRITE_FILE(S["wg_rate"], wg_rate)
+ WRITE_FILE(S["wl_rate"], wl_rate)
+ WRITE_FILE(S["noncon_weight_gain"], noncon_weight_gain)
+ WRITE_FILE(S["bot_feeding"], bot_feeding)
+ WRITE_FILE(S["max_weight"], max_weight)
+ WRITE_FILE(S["helplessness_no_movement"], helplessness_no_movement)
+ WRITE_FILE(S["helplessness_clumsy"], helplessness_clumsy)
+ WRITE_FILE(S["helplessness_nearsighted"], helplessness_nearsighted)
+ WRITE_FILE(S["helplessness_hidden_face"], helplessness_hidden_face)
+ WRITE_FILE(S["helplessness_mute"], helplessness_mute)
+ WRITE_FILE(S["helplessness_immobile_arms"], helplessness_immobile_arms)
+ WRITE_FILE(S["helplessness_clothing_jumpsuit"], helplessness_clothing_jumpsuit)
+ WRITE_FILE(S["helplessness_clothing_misc"], helplessness_clothing_misc)
+ WRITE_FILE(S["helplessness_clothing_back"], helplessness_clothing_back)
+ WRITE_FILE(S["helplessness_no_buckle"], helplessness_no_buckle)
+ WRITE_FILE(S["stuckage"], stuckage)
+ WRITE_FILE(S["chair_breakage"], chair_breakage)
+ WRITE_FILE(S["fatness_vulnerable"], fatness_vulnerable)
+ WRITE_FILE(S["extreme_fatness_vulnerable"], extreme_fatness_vulnerable)
+ WRITE_FILE(S["blueberry_inflation"], blueberry_inflation)
+
cit_character_pref_save(S)
return 1