From b722359efd111dd08797fb974a4f23149bbac355 Mon Sep 17 00:00:00 2001
From: BongaTheProto <93835010+BongaTheProto@users.noreply.github.com>
Date: Sun, 9 Oct 2022 19:17:42 -0500
Subject: [PATCH] new butthole sprite
squished alt
---
code/__DEFINES/citadel_defines.dm | 2 ++
code/__HELPERS/mobs.dm | 1 +
code/modules/client/preferences.dm | 8 ++++++++
code/modules/client/preferences_savefile.dm | 8 +++++---
.../arousal/genitals_sprite_accessories.dm | 10 +++++++---
.../code/modules/arousal/organs/anus.dm | 5 ++++-
.../icons/obj/genitals/anus_onmob.dmi | Bin 1041 -> 1550 bytes
7 files changed, 27 insertions(+), 7 deletions(-)
diff --git a/code/__DEFINES/citadel_defines.dm b/code/__DEFINES/citadel_defines.dm
index b27d2c18ab..04715aad6c 100644
--- a/code/__DEFINES/citadel_defines.dm
+++ b/code/__DEFINES/citadel_defines.dm
@@ -79,6 +79,8 @@
#define BELLY_SIZE_DEF 1
#define BELLY_SIZE_MAX 10
+#define DEF_ANUS_SHAPE "donut"
+
//visibility toggles defines to avoid errors typos code errors.
#define GEN_VISIBLE_ALWAYS "Always visible"
#define GEN_VISIBLE_NO_CLOTHES "Hidden by clothes"
diff --git a/code/__HELPERS/mobs.dm b/code/__HELPERS/mobs.dm
index 292b501c1c..8918fddc6e 100644
--- a/code/__HELPERS/mobs.dm
+++ b/code/__HELPERS/mobs.dm
@@ -224,6 +224,7 @@
//SPLURT's anus stuff
"has_anus" = FALSE,
"anus_color" = pick("FFFFFF","7F7F7F", "7FFF7F", "7F7FFF", "FF7F7F", "7FFFFF", "FF7FFF", "FFFF7F"),
+ "anus_shape" = DEF_ANUS_SHAPE,
//SPLURT's anus stuff
"balls_visibility" = GEN_VISIBLE_NO_UNDIES,
diff --git a/code/modules/client/preferences.dm b/code/modules/client/preferences.dm
index e6a2b2e670..fc482e4828 100644
--- a/code/modules/client/preferences.dm
+++ b/code/modules/client/preferences.dm
@@ -215,6 +215,7 @@ GLOBAL_LIST_EMPTY(preferences_datums)
"has_belly" = FALSE,
"has_anus" = FALSE,
"anus_color" = "ffffff",
+"anus_shape" = DEF_ANUS_SHAPE,
"belly_color" = "ffffff",
"belly_size" = BELLY_SIZE_DEF,
"balls_visibility" = GEN_VISIBLE_NO_UNDIES,
@@ -985,6 +986,7 @@ GLOBAL_LIST_EMPTY(preferences_datums)
dat += "[SKINTONE2HEX(skin_tone)](Skin tone overriding)
"
else
dat += "#[features["anus_color"]] Change
"
+ dat += "Butthole Shape: [features["anus_shape"]]"
dat += "Butthole Visibility:[features["anus_visibility"]]"
dat += "Egg Stuffing:[features["anus_stuffing"] == TRUE ? "Yes" : "No"]"
dat += ""
@@ -2875,6 +2877,12 @@ GLOBAL_LIST_EMPTY(preferences_datums)
else
to_chat(user, "Invalid color. Your color is not bright enough.")
+ if("anus_shape")
+ var/new_shape
+ new_shape = input(user, "Butthole Shape", "Character Preference") as null|anything in GLOB.anus_shapes_list
+ if(new_shape)
+ features["anus_shape"] = new_shape
+
if("belly_size")
var/min_belly = CONFIG_GET(number/belly_min_size_prefs)
var/max_belly = CONFIG_GET(number/belly_max_size_prefs)
diff --git a/code/modules/client/preferences_savefile.dm b/code/modules/client/preferences_savefile.dm
index d7a2064ffb..214b6d94b9 100644
--- a/code/modules/client/preferences_savefile.dm
+++ b/code/modules/client/preferences_savefile.dm
@@ -764,6 +764,7 @@ SAVEFILE UPDATING/VERSIONING - 'Simplified', or rather, more coder-friendly ~Car
"belly_color" = "ffffff",
"has_anus" = FALSE,
"anus_color" = "ffffff",
+"anus_shape" = DEF_ANUS_SHAPE,
"balls_visibility" = GEN_VISIBLE_NO_UNDIES,
"breasts_visibility"= GEN_VISIBLE_NO_UNDIES,
"cock_visibility" = GEN_VISIBLE_NO_UNDIES,
@@ -963,8 +964,6 @@ SAVEFILE UPDATING/VERSIONING - 'Simplified', or rather, more coder-friendly ~Car
S["feature_balls_size"] >> features["balls_size"]
S["feature_balls_visibility"] >> features["balls_visibility"]
S["feature_balls_fluid"] >> features["balls_fluid"]
- S["feature_womb_fluid"] >> features["womb_fluid"]
- S["feature_balls_shape"] >> features["balls_shape"]
//breasts features
S["feature_has_breasts"] >> features["has_breasts"]
S["feature_breasts_size"] >> features["breasts_size"]
@@ -980,6 +979,7 @@ SAVEFILE UPDATING/VERSIONING - 'Simplified', or rather, more coder-friendly ~Car
S["feature_vag_visibility"] >> features["vag_visibility"]
//womb features
S["feature_has_womb"] >> features["has_womb"]
+ S["feature_womb_fluid"] >> features["womb_fluid"]
//butt features
S["feature_has_butt"] >> features["has_butt"]
S["feature_butt_color"] >> features["butt_color"]
@@ -993,6 +993,7 @@ SAVEFILE UPDATING/VERSIONING - 'Simplified', or rather, more coder-friendly ~Car
//anus features
S["feature_has_anus"] >> features["has_anus"]
S["feature_anus_color"] >> features["anus_color"]
+ S["feature_anus_shape"] >> features["anus_shape"]
S["feature_anus_visibility"] >> features["anus_visibility"]
// Flavor texts, Made into a standard.
@@ -1160,6 +1161,7 @@ SAVEFILE UPDATING/VERSIONING - 'Simplified', or rather, more coder-friendly ~Car
features["cock_shape"] = sanitize_inlist(features["cock_shape"], GLOB.cock_shapes_list, DEF_COCK_SHAPE)
features["balls_shape"] = sanitize_inlist(features["balls_shape"], GLOB.balls_shapes_list, DEF_BALLS_SHAPE)
features["vag_shape"] = sanitize_inlist(features["vag_shape"], GLOB.vagina_shapes_list, DEF_VAGINA_SHAPE)
+ features["anus_shape"] = sanitize_inlist(features["anus_shape"], GLOB.anus_shapes_list, DEF_ANUS_SHAPE)
features["breasts_color"] = sanitize_hexcolor(features["breasts_color"], 6, FALSE, "FFFFFF")
features["cock_color"] = sanitize_hexcolor(features["cock_color"], 6, FALSE, "FFFFFF")
features["balls_color"] = sanitize_hexcolor(features["balls_color"], 6, FALSE, "FFFFFF")
@@ -1343,7 +1345,6 @@ SAVEFILE UPDATING/VERSIONING - 'Simplified', or rather, more coder-friendly ~Car
WRITE_FILE(S["feature_balls_size"], features["balls_size"])
WRITE_FILE(S["feature_balls_visibility"], features["balls_visibility"])
WRITE_FILE(S["feature_balls_stuffing"], features["balls_stuffing"])
- WRITE_FILE(S["feature_balls_shape"], features["balls_shape"])
WRITE_FILE(S["feature_balls_fluid"], features["balls_fluid"])
WRITE_FILE(S["feature_has_breasts"], features["has_breasts"])
@@ -1379,6 +1380,7 @@ SAVEFILE UPDATING/VERSIONING - 'Simplified', or rather, more coder-friendly ~Car
WRITE_FILE(S["feature_has_anus"], features["has_anus"])
WRITE_FILE(S["feature_anus_color"], features["anus_color"])
WRITE_FILE(S["feature_anus_visibility"], features["anus_visibility"])
+ WRITE_FILE(S["feature_anus_shape"], features["anus_shape"])
WRITE_FILE(S["feature_anus_stuffing"], features["anus_stuffing"])
WRITE_FILE(S["feature_inert_eggs"], features["inert_eggs"])
diff --git a/modular_splurt/code/modules/arousal/genitals_sprite_accessories.dm b/modular_splurt/code/modules/arousal/genitals_sprite_accessories.dm
index e9d7138b4e..e7674470f4 100644
--- a/modular_splurt/code/modules/arousal/genitals_sprite_accessories.dm
+++ b/modular_splurt/code/modules/arousal/genitals_sprite_accessories.dm
@@ -35,6 +35,10 @@
name = "anus"
color_src = "anus_color"
-/datum/sprite_accessory/anus/donut
- icon_state = "donut"
- name = "donut"
+/datum/sprite_accessory/anus/gape
+ icon_state = DEF_ANUS_SHAPE
+ name = DEF_ANUS_SHAPE
+
+/datum/sprite_accessory/anus/squished
+ icon_state = "squished"
+ name = "squished"
diff --git a/modular_splurt/code/modules/arousal/organs/anus.dm b/modular_splurt/code/modules/arousal/organs/anus.dm
index 2645d91f78..08a5e1276d 100644
--- a/modular_splurt/code/modules/arousal/organs/anus.dm
+++ b/modular_splurt/code/modules/arousal/organs/anus.dm
@@ -20,9 +20,11 @@
update_appearance()
/obj/item/organ/genital/anus/update_appearance(updates)
- var/lowershape = lowertext(shape)
var/u_His = owner?.p_their() || "their"
+ var/datum/sprite_accessory/anus/S = GLOB.anus_shapes_list[shape]
+ var/lowershape = lowertext(S?.icon_state || DEF_ANUS_SHAPE)
+
desc = "You see [u_His] squishy [lowershape] pucker parting [u_His] asscheeks"
icon_state = "anus_[lowershape]_[size]"
@@ -43,6 +45,7 @@
color = SKINTONE2HEX(H.skin_tone)
else
color = "#[D.features["anus_color"]]"
+ shape = D.features["anus_shape"]
toggle_visibility(D.features["anus_visibility"], FALSE)
if(D.features["anus_stuffing"])
toggle_visibility(GEN_ALLOW_EGG_STUFFING, FALSE)
diff --git a/modular_splurt/icons/obj/genitals/anus_onmob.dmi b/modular_splurt/icons/obj/genitals/anus_onmob.dmi
index 6449cf0e96585c361fa366def5732dbe72e9f64d..b46a582544bd53f24841563bb39cdc575c778dce 100644
GIT binary patch
delta 1506
zcmY*Z3p5jY9Ns*xHrFE)U5~Odk6e~=$+L|~h+KwpSX0Ezs|@9_O&i{P>|M|Y(_dn-%ew1z3euZ7}aCcGwYk&a&
zfP(W;lqUcHWJrp2eY~%V-g{d;OXuKK)jngD=sb-U?+oel;YOHpagmsSSQNn5sWd-RcjsRX}Lk3;OS>(fJ7^=00i56xXwgphJm<)JnsdRWQF
zSI?@DHRqP^hbMTUBRDf%@TV)+CR~Z%1DE%xVNYBR+@8_1v$3~MAtS;xJTuTvPt#N3
zN`{$39<(PHdlW8zU=dT~NAljVg7in4QFxw^e!(9UUYLYgP=1=lD24(51{O-0
zNry^#h%1xFZNrEu!k|L^InrafmvQN%9r?}a0Dz2#GYW~mP|TkVDB_qa|1uJ)9nmS1
z&FbxMY@mw8`bI_9Ya;C7SiRNa5YP>c6+a4H`%k^OO9Rc9Er;s{w5+maX-jxMs*^r7;ZyUa-jp2fONd
z)nuk2iT}Z;z2vnY;^iBrp{PAcsgfs4b(`wACrUtt)_&n*5dBmbJ@Q3rGYkq0_8MrJ
zcSxJBNR033@YN>HEl+4yz93uCb#>V&uTSe50bn@JwbGaduMI*s$2l3>U3RTmSpYN1
z%xY1+;L~VrDpSQHlHI5o=2|7RUZjS#ki@M~z_zGwP!J65JGUt%87K+J;vVrYaSlr|
z`FXatmq67N*#>Ukh*YG}nQ%mG2k&^
z&^}nAJr{z;V;6;E3AW{t?e6=L4zn`%y6IB#P5cEJM@734hhV
zJzn8;0%*+ONMIO?@bM7r2vQnole6rB9qvh=`6}JzHnmvwUnc-y!@L}K)g%R9?(mgt
z7oM18v~BCHN$yeGFo)W4TVDec&d9GTTYGFo>$g
z2v^w(XmJwR@0)9Du(nGzaz<&(D*njalmeGlq|&^vi5-h;v&%F;rEifOp{P{Ih+TEX
z0zW3x8J%3ZwEWSiLZusnFrNH=W5%FRD0D=Kd%!M3yQnlT|2P5CAGUidA2DAg05Fk5
z8kL;E1Bu{+0xmdw#;I~IsO7hYMO6{QjgAg
z(8SYH$;0>YKHa3<$_k5X7yld>iA#LYRTG_-7y{5g{<1dFD&&;?=o|@zL2{sp2+bQL
z*$7(F*6$kwOUiNAOkP)$e6Vkq24zIsEjMh2t00BtBWb1jp(R6^F#_^Cp_azT+HfZ*
zY`C|t!>$}-zW`CS*su{LuUeZij*F89v~zb*lVqn-&o3f>b3d0NgowzqDZ})`PKtE#
zu7=q6ti`n-`}PNxvT#NN5g2PH81;GUSB$(t4UC?e_SwuYp&LHc(*58VqW@yn;1CpQ
k*~jDgqgg_cI)L1=1lPjb@eJ~;_x|v3c63MGx5r-k2aN%&6#xJL
delta 993
zcmV<710MX243P*WiBL{Q4GJ0x0000DNk~Le0003X0003X2m=5B03%&qvH$=8QIRD;
zf2^#mzrVk;v$KbXhc-4gB_$>QW;0jfFDZ*Bkpc$}ToI}5@v6o%nB`4yqvr8h5&i?m7yBZzwlG&LDaB}v=AZ?K?a;TrHw+&hvQ?GRnUzX`{|}Ns2dwn(5;B?<0g81
zbl*Sj_ln22`_t13RChp~o%D>cnkdtAc9b^NDO9J`K|8KaSOcd=Q%zfBiIrOrSZX
zKa@>5_&R8gf|iw1cZjv6&UdaaDs}(!qZag|?uRt=f-?E@3jhEB002HY|IfA}POTU8
zhWFq64>Je=00000003U6`Lp-rfDw&16j3q**5Oa70aishmehhy$5Yz{nL#V8L54W!Z5#Hj7nFSejTr<000000e*gfl)BM?ca=>9|
zyrE&ZWCpCmKc)s)HC*ad7
z#IyJD=>Ku?@V|k8`@Fjors1!P0iFZCXR6!buXzEc;hz=*443^r@dlte{PlWG3s4KX
zK0Q5M7Yj0jmS>PPGiZ4Yaur*-ils|`ftuebCesf9000000000003X6H{39c5mBqc~
P00000NkvXXu0mjfurs{O