diff --git a/code/modules/emotes/definitions/audible_furry_vr.dm b/code/modules/emotes/definitions/audible_furry_vr.dm index 4bb55178f6..9d4cc5348f 100644 --- a/code/modules/emotes/definitions/audible_furry_vr.dm +++ b/code/modules/emotes/definitions/audible_furry_vr.dm @@ -137,7 +137,3 @@ key = "spiderpurr" emote_message_3p = "purrs." emote_sound = 'sound/voice/spiderpurr.ogg' -/decl/emote/audible/squeaky - key = "squeaky" - emote_message_3p = "squeaks." - emote_sound = 'sound/items/drop/plushie.ogg' \ No newline at end of file diff --git a/code/modules/mob/living/carbon/human/emote.dm b/code/modules/mob/living/carbon/human/emote.dm index 862cfc5e2d..af0b13e3dd 100644 --- a/code/modules/mob/living/carbon/human/emote.dm +++ b/code/modules/mob/living/carbon/human/emote.dm @@ -1,353 +1,352 @@ -var/list/_human_default_emotes = list( - /decl/emote/visible/blink, - /decl/emote/audible/synth, - /decl/emote/audible/synth/ping, - /decl/emote/audible/synth/buzz, - /decl/emote/audible/synth/confirm, - /decl/emote/audible/synth/deny, - /decl/emote/audible/synth/scary, - /decl/emote/visible/nod, - /decl/emote/visible/shake, - /decl/emote/visible/shiver, - /decl/emote/visible/collapse, - /decl/emote/audible/gasp, - /decl/emote/audible/choke, - /decl/emote/audible/sneeze, - /decl/emote/audible/sniff, - /decl/emote/audible/snore, - /decl/emote/audible/whimper, - /decl/emote/audible/whistle, - /decl/emote/audible/whistle/quiet, - /decl/emote/audible/whistle/wolf, - /decl/emote/audible/whistle/summon, - /decl/emote/audible/yawn, - /decl/emote/audible/clap, - /decl/emote/audible/chuckle, - /decl/emote/audible/cough, - /decl/emote/audible/cry, - /decl/emote/audible/sigh, - /decl/emote/audible/laugh, - /decl/emote/audible/mumble, - /decl/emote/audible/grumble, - /decl/emote/audible/groan, - /decl/emote/audible/moan, - /decl/emote/audible/grunt, - /decl/emote/audible/slap, - /decl/emote/audible/crack, - /decl/emote/human/deathgasp, - /decl/emote/audible/giggle, - /decl/emote/audible/scream, - /decl/emote/visible/airguitar, - /decl/emote/visible/blink_r, - /decl/emote/visible/bow, - /decl/emote/visible/salute, - /decl/emote/visible/flap, - /decl/emote/visible/aflap, - /decl/emote/visible/drool, - /decl/emote/visible/eyebrow, - /decl/emote/visible/twitch, - /decl/emote/visible/dance, - /decl/emote/visible/twitch_v, - /decl/emote/visible/faint, - /decl/emote/visible/frown, - /decl/emote/visible/blush, - /decl/emote/visible/wave, - /decl/emote/visible/glare, - /decl/emote/visible/stare, - /decl/emote/visible/look, - /decl/emote/visible/point, - /decl/emote/visible/raise, - /decl/emote/visible/grin, - /decl/emote/visible/shrug, - /decl/emote/visible/smile, - /decl/emote/visible/pale, - /decl/emote/visible/tremble, - /decl/emote/visible/wink, - /decl/emote/visible/hug, - /decl/emote/visible/dap, - /decl/emote/visible/signal, - /decl/emote/visible/handshake, - /decl/emote/visible/afold, - /decl/emote/visible/alook, - /decl/emote/visible/eroll, - /decl/emote/visible/hbow, - /decl/emote/visible/hip, - /decl/emote/visible/holdup, - /decl/emote/visible/hshrug, - /decl/emote/visible/crub, - /decl/emote/visible/erub, - /decl/emote/visible/fslap, - /decl/emote/visible/ftap, - /decl/emote/visible/hrub, - /decl/emote/visible/hspread, - /decl/emote/visible/pocket, - /decl/emote/visible/rsalute, - /decl/emote/visible/rshoulder, - /decl/emote/visible/squint, - /decl/emote/visible/tfist, - /decl/emote/visible/tilt, - /decl/emote/visible/spin, - /decl/emote/visible/sidestep, - /decl/emote/audible/snap, - /decl/emote/visible/vomit, - /decl/emote/visible/floorspin, - /decl/emote/visible/flip, - //VOREStation Add - /decl/emote/audible/awoo, - /decl/emote/audible/awoo2, - /decl/emote/audible/growl, - /decl/emote/audible/woof, - /decl/emote/audible/woof2, - /decl/emote/audible/nya, - /decl/emote/audible/mrowl, - /decl/emote/audible/peep, - /decl/emote/audible/chirp, - /decl/emote/audible/hoot, - /decl/emote/audible/weh, - /decl/emote/audible/merp, - /decl/emote/audible/myarp, - /decl/emote/audible/bark, - /decl/emote/audible/bork, - /decl/emote/audible/mrow, - /decl/emote/audible/hypno, - /decl/emote/audible/hiss, - /decl/emote/audible/rattle, - /decl/emote/audible/squeak, - /decl/emote/audible/geck, - /decl/emote/audible/baa, - /decl/emote/audible/baa2, - /decl/emote/audible/mar, - /decl/emote/audible/wurble, - /decl/emote/audible/snort, - /decl/emote/audible/meow, - /decl/emote/audible/moo, - /decl/emote/audible/croak, - /decl/emote/audible/gao, - /decl/emote/audible/cackle, - /decl/emote/audible/squish, - /decl/emote/audible/spiderchitter, - /decl/emote/audible/spiderpurr, - /decl/emote/audible/squeaky, - /decl/emote/visible/mlem, - /decl/emote/visible/blep, - - /decl/emote/helper/vwag, - /decl/emote/helper/vflap, - //VOREStation Add End - - //CHOMPedit Add Start - /decl/emote/audible/prbt - //CHOMPedit Add End -) - - //VOREStation Add Start - -var/list/_simple_mob_default_emotes = list( - /decl/emote/visible/blink, - /decl/emote/visible/nod, - /decl/emote/visible/shake, - /decl/emote/visible/shiver, - /decl/emote/visible/collapse, - /decl/emote/audible/gasp, - /decl/emote/audible/choke, - /decl/emote/audible/sneeze, - /decl/emote/audible/sniff, - /decl/emote/audible/snore, - /decl/emote/audible/whimper, - /decl/emote/audible/whistle, - /decl/emote/audible/whistle/quiet, - /decl/emote/audible/whistle/wolf, - /decl/emote/audible/whistle/summon, - /decl/emote/audible/yawn, - /decl/emote/audible/clap, - /decl/emote/audible/chuckle, - /decl/emote/audible/cough, - /decl/emote/audible/cry, - /decl/emote/audible/sigh, - /decl/emote/audible/laugh, - /decl/emote/audible/mumble, - /decl/emote/audible/grumble, - /decl/emote/audible/groan, - /decl/emote/audible/moan, - /decl/emote/audible/grunt, - /decl/emote/audible/slap, - /decl/emote/audible/crack, - /decl/emote/human/deathgasp, - /decl/emote/audible/giggle, - /decl/emote/audible/scream, - /decl/emote/visible/airguitar, - /decl/emote/visible/blink_r, - /decl/emote/visible/bow, - /decl/emote/visible/salute, - /decl/emote/visible/flap, - /decl/emote/visible/aflap, - /decl/emote/visible/drool, - /decl/emote/visible/eyebrow, - /decl/emote/visible/twitch, - /decl/emote/visible/dance, - /decl/emote/visible/twitch_v, - /decl/emote/visible/faint, - /decl/emote/visible/frown, - /decl/emote/visible/blush, - /decl/emote/visible/wave, - /decl/emote/visible/glare, - /decl/emote/visible/stare, - /decl/emote/visible/look, - /decl/emote/visible/point, - /decl/emote/visible/raise, - /decl/emote/visible/grin, - /decl/emote/visible/shrug, - /decl/emote/visible/smile, - /decl/emote/visible/pale, - /decl/emote/visible/tremble, - /decl/emote/visible/wink, - /decl/emote/visible/hug, - /decl/emote/visible/signal, - /decl/emote/visible/afold, - /decl/emote/visible/alook, - /decl/emote/visible/eroll, - /decl/emote/visible/hbow, - /decl/emote/visible/hip, - /decl/emote/visible/holdup, - /decl/emote/visible/hshrug, - /decl/emote/visible/crub, - /decl/emote/visible/erub, - /decl/emote/visible/fslap, - /decl/emote/visible/ftap, - /decl/emote/visible/hrub, - /decl/emote/visible/hspread, - /decl/emote/visible/rsalute, - /decl/emote/visible/rshoulder, - /decl/emote/visible/squint, - /decl/emote/visible/tfist, - /decl/emote/visible/tilt, - /decl/emote/visible/spin, - /decl/emote/visible/sidestep, - /decl/emote/visible/vomit, - /decl/emote/visible/floorspin, - /decl/emote/visible/flip, - /decl/emote/audible/awoo, - /decl/emote/audible/awoo2, - /decl/emote/audible/growl, - /decl/emote/audible/woof, - /decl/emote/audible/woof2, - /decl/emote/audible/nya, - /decl/emote/audible/mrowl, - /decl/emote/audible/peep, - /decl/emote/audible/chirp, - /decl/emote/audible/hoot, - /decl/emote/audible/weh, - /decl/emote/audible/merp, - /decl/emote/audible/myarp, - /decl/emote/audible/bark, - /decl/emote/audible/bork, - /decl/emote/audible/mrow, - /decl/emote/audible/hypno, - /decl/emote/audible/hiss, - /decl/emote/audible/rattle, - /decl/emote/audible/squeak, - /decl/emote/audible/geck, - /decl/emote/audible/baa, - /decl/emote/audible/baa2, - /decl/emote/audible/mar, - /decl/emote/audible/wurble, - /decl/emote/audible/snort, - /decl/emote/audible/meow, - /decl/emote/audible/moo, - /decl/emote/audible/croak, - /decl/emote/audible/gao, - /decl/emote/audible/cackle, - /decl/emote/audible/squish, - /decl/emote/audible/spiderchitter, - /decl/emote/audible/spiderpurr, - /decl/emote/audible/squeaky, - /decl/emote/visible/mlem, - /decl/emote/visible/blep, - - //CHOMPEdit Add Start - /decl/emote/audible/prbt - //CHOMPEdit Add End - ) - //VOREStation Add End - -/mob/living/carbon/human/get_available_emotes() - . = global._human_default_emotes - if(length(species?.default_emotes)) - . |= species.default_emotes - -/mob/living/simple_mob/get_available_emotes() - . = global._simple_mob_default_emotes - -/mob/living/carbon/human/verb/pose() - set name = "Set Pose" - set desc = "Sets a description which will be shown when someone examines you." - set category = "IC" - - var/datum/gender/T = gender_datums[get_visible_gender()] - - pose = sanitize(input(usr, "This is [src]. [T.he]...", "Pose", null) as text) - -/mob/living/carbon/human/verb/set_flavor() - set name = "Set Flavour Text" - set desc = "Sets an extended description of your character's features." - set category = "IC" - - var/HTML = "" - HTML += "
" - HTML += "Update Flavour Text
" - HTML += "
" - HTML += "General: " - HTML += TextPreview(flavor_texts["general"]) - HTML += "
" - HTML += "Head: " - HTML += TextPreview(flavor_texts["head"]) - HTML += "
" - HTML += "Face: " - HTML += TextPreview(flavor_texts["face"]) - HTML += "
" - HTML += "Eyes: " - HTML += TextPreview(flavor_texts["eyes"]) - HTML += "
" - HTML += "Body: " - HTML += TextPreview(flavor_texts["torso"]) - HTML += "
" - HTML += "Arms: " - HTML += TextPreview(flavor_texts["arms"]) - HTML += "
" - HTML += "Hands: " - HTML += TextPreview(flavor_texts["hands"]) - HTML += "
" - HTML += "Legs: " - HTML += TextPreview(flavor_texts["legs"]) - HTML += "
" - HTML += "Feet: " - HTML += TextPreview(flavor_texts["feet"]) - HTML += "
" - HTML += "
" - HTML +="\[Done\]" - HTML += "" - src << browse(HTML, "window=flavor_changes;size=430x300") - -/mob/living/carbon/human/proc/toggle_tail(var/setting,var/message = 0) - if(!tail_style || !tail_style.ani_state) - if(message) - to_chat(src, "You don't have a tail that supports this.") - return 0 - - var/new_wagging = isnull(setting) ? !wagging : setting - if(new_wagging != wagging) - wagging = new_wagging - update_tail_showing() - return 1 - -/mob/living/carbon/human/proc/toggle_wing(var/setting,var/message = 0) - if(!wing_style || !wing_style.ani_state) - if(message) - to_chat(src, "You don't have a wingtype that supports this.") - return 0 - - var/new_flapping = isnull(setting) ? !flapping : setting - if(new_flapping != flapping) - flapping = setting - update_wing_showing() - return 1 +var/list/_human_default_emotes = list( + /decl/emote/visible/blink, + /decl/emote/audible/synth, + /decl/emote/audible/synth/ping, + /decl/emote/audible/synth/buzz, + /decl/emote/audible/synth/confirm, + /decl/emote/audible/synth/deny, + /decl/emote/audible/synth/scary, + /decl/emote/visible/nod, + /decl/emote/visible/shake, + /decl/emote/visible/shiver, + /decl/emote/visible/collapse, + /decl/emote/audible/gasp, + /decl/emote/audible/choke, + /decl/emote/audible/sneeze, + /decl/emote/audible/sniff, + /decl/emote/audible/snore, + /decl/emote/audible/whimper, + /decl/emote/audible/whistle, + /decl/emote/audible/whistle/quiet, + /decl/emote/audible/whistle/wolf, + /decl/emote/audible/whistle/summon, + /decl/emote/audible/yawn, + /decl/emote/audible/clap, + /decl/emote/audible/chuckle, + /decl/emote/audible/cough, + /decl/emote/audible/cry, + /decl/emote/audible/sigh, + /decl/emote/audible/laugh, + /decl/emote/audible/mumble, + /decl/emote/audible/grumble, + /decl/emote/audible/groan, + /decl/emote/audible/moan, + /decl/emote/audible/grunt, + /decl/emote/audible/slap, + /decl/emote/audible/crack, + /decl/emote/human/deathgasp, + /decl/emote/audible/giggle, + /decl/emote/audible/scream, + /decl/emote/visible/airguitar, + /decl/emote/visible/blink_r, + /decl/emote/visible/bow, + /decl/emote/visible/salute, + /decl/emote/visible/flap, + /decl/emote/visible/aflap, + /decl/emote/visible/drool, + /decl/emote/visible/eyebrow, + /decl/emote/visible/twitch, + /decl/emote/visible/dance, + /decl/emote/visible/twitch_v, + /decl/emote/visible/faint, + /decl/emote/visible/frown, + /decl/emote/visible/blush, + /decl/emote/visible/wave, + /decl/emote/visible/glare, + /decl/emote/visible/stare, + /decl/emote/visible/look, + /decl/emote/visible/point, + /decl/emote/visible/raise, + /decl/emote/visible/grin, + /decl/emote/visible/shrug, + /decl/emote/visible/smile, + /decl/emote/visible/pale, + /decl/emote/visible/tremble, + /decl/emote/visible/wink, + /decl/emote/visible/hug, + /decl/emote/visible/dap, + /decl/emote/visible/signal, + /decl/emote/visible/handshake, + /decl/emote/visible/afold, + /decl/emote/visible/alook, + /decl/emote/visible/eroll, + /decl/emote/visible/hbow, + /decl/emote/visible/hip, + /decl/emote/visible/holdup, + /decl/emote/visible/hshrug, + /decl/emote/visible/crub, + /decl/emote/visible/erub, + /decl/emote/visible/fslap, + /decl/emote/visible/ftap, + /decl/emote/visible/hrub, + /decl/emote/visible/hspread, + /decl/emote/visible/pocket, + /decl/emote/visible/rsalute, + /decl/emote/visible/rshoulder, + /decl/emote/visible/squint, + /decl/emote/visible/tfist, + /decl/emote/visible/tilt, + /decl/emote/visible/spin, + /decl/emote/visible/sidestep, + /decl/emote/audible/snap, + /decl/emote/visible/vomit, + /decl/emote/visible/floorspin, + /decl/emote/visible/flip, + //VOREStation Add + /decl/emote/audible/awoo, + /decl/emote/audible/awoo2, + /decl/emote/audible/growl, + /decl/emote/audible/woof, + /decl/emote/audible/woof2, + /decl/emote/audible/nya, + /decl/emote/audible/mrowl, + /decl/emote/audible/peep, + /decl/emote/audible/chirp, + /decl/emote/audible/hoot, + /decl/emote/audible/weh, + /decl/emote/audible/merp, + /decl/emote/audible/myarp, + /decl/emote/audible/bark, + /decl/emote/audible/bork, + /decl/emote/audible/mrow, + /decl/emote/audible/hypno, + /decl/emote/audible/hiss, + /decl/emote/audible/rattle, + /decl/emote/audible/squeak, + /decl/emote/audible/geck, + /decl/emote/audible/baa, + /decl/emote/audible/baa2, + /decl/emote/audible/mar, + /decl/emote/audible/wurble, + /decl/emote/audible/snort, + /decl/emote/audible/meow, + /decl/emote/audible/moo, + /decl/emote/audible/croak, + /decl/emote/audible/gao, + /decl/emote/audible/cackle, + /decl/emote/audible/squish, + /decl/emote/audible/spiderchitter, + /decl/emote/audible/spiderpurr, + + /decl/emote/visible/mlem, + /decl/emote/visible/blep, + + /decl/emote/helper/vwag, + /decl/emote/helper/vflap, + //VOREStation Add End + + //CHOMPedit Add Start + /decl/emote/audible/prbt + //CHOMPedit Add End +) + + //VOREStation Add Start + +var/list/_simple_mob_default_emotes = list( + /decl/emote/visible/blink, + /decl/emote/visible/nod, + /decl/emote/visible/shake, + /decl/emote/visible/shiver, + /decl/emote/visible/collapse, + /decl/emote/audible/gasp, + /decl/emote/audible/choke, + /decl/emote/audible/sneeze, + /decl/emote/audible/sniff, + /decl/emote/audible/snore, + /decl/emote/audible/whimper, + /decl/emote/audible/whistle, + /decl/emote/audible/whistle/quiet, + /decl/emote/audible/whistle/wolf, + /decl/emote/audible/whistle/summon, + /decl/emote/audible/yawn, + /decl/emote/audible/clap, + /decl/emote/audible/chuckle, + /decl/emote/audible/cough, + /decl/emote/audible/cry, + /decl/emote/audible/sigh, + /decl/emote/audible/laugh, + /decl/emote/audible/mumble, + /decl/emote/audible/grumble, + /decl/emote/audible/groan, + /decl/emote/audible/moan, + /decl/emote/audible/grunt, + /decl/emote/audible/slap, + /decl/emote/audible/crack, + /decl/emote/human/deathgasp, + /decl/emote/audible/giggle, + /decl/emote/audible/scream, + /decl/emote/visible/airguitar, + /decl/emote/visible/blink_r, + /decl/emote/visible/bow, + /decl/emote/visible/salute, + /decl/emote/visible/flap, + /decl/emote/visible/aflap, + /decl/emote/visible/drool, + /decl/emote/visible/eyebrow, + /decl/emote/visible/twitch, + /decl/emote/visible/dance, + /decl/emote/visible/twitch_v, + /decl/emote/visible/faint, + /decl/emote/visible/frown, + /decl/emote/visible/blush, + /decl/emote/visible/wave, + /decl/emote/visible/glare, + /decl/emote/visible/stare, + /decl/emote/visible/look, + /decl/emote/visible/point, + /decl/emote/visible/raise, + /decl/emote/visible/grin, + /decl/emote/visible/shrug, + /decl/emote/visible/smile, + /decl/emote/visible/pale, + /decl/emote/visible/tremble, + /decl/emote/visible/wink, + /decl/emote/visible/hug, + /decl/emote/visible/signal, + /decl/emote/visible/afold, + /decl/emote/visible/alook, + /decl/emote/visible/eroll, + /decl/emote/visible/hbow, + /decl/emote/visible/hip, + /decl/emote/visible/holdup, + /decl/emote/visible/hshrug, + /decl/emote/visible/crub, + /decl/emote/visible/erub, + /decl/emote/visible/fslap, + /decl/emote/visible/ftap, + /decl/emote/visible/hrub, + /decl/emote/visible/hspread, + /decl/emote/visible/rsalute, + /decl/emote/visible/rshoulder, + /decl/emote/visible/squint, + /decl/emote/visible/tfist, + /decl/emote/visible/tilt, + /decl/emote/visible/spin, + /decl/emote/visible/sidestep, + /decl/emote/visible/vomit, + /decl/emote/visible/floorspin, + /decl/emote/visible/flip, + /decl/emote/audible/awoo, + /decl/emote/audible/awoo2, + /decl/emote/audible/growl, + /decl/emote/audible/woof, + /decl/emote/audible/woof2, + /decl/emote/audible/nya, + /decl/emote/audible/mrowl, + /decl/emote/audible/peep, + /decl/emote/audible/chirp, + /decl/emote/audible/hoot, + /decl/emote/audible/weh, + /decl/emote/audible/merp, + /decl/emote/audible/myarp, + /decl/emote/audible/bark, + /decl/emote/audible/bork, + /decl/emote/audible/mrow, + /decl/emote/audible/hypno, + /decl/emote/audible/hiss, + /decl/emote/audible/rattle, + /decl/emote/audible/squeak, + /decl/emote/audible/geck, + /decl/emote/audible/baa, + /decl/emote/audible/baa2, + /decl/emote/audible/mar, + /decl/emote/audible/wurble, + /decl/emote/audible/snort, + /decl/emote/audible/meow, + /decl/emote/audible/moo, + /decl/emote/audible/croak, + /decl/emote/audible/gao, + /decl/emote/audible/cackle, + /decl/emote/audible/squish, + /decl/emote/audible/spiderchitter, + /decl/emote/audible/spiderpurr, + /decl/emote/visible/mlem, + /decl/emote/visible/blep, + + //CHOMPEdit Add Start + /decl/emote/audible/prbt + //CHOMPEdit Add End + ) + //VOREStation Add End + +/mob/living/carbon/human/get_available_emotes() + . = global._human_default_emotes + if(length(species?.default_emotes)) + . |= species.default_emotes + +/mob/living/simple_mob/get_available_emotes() + . = global._simple_mob_default_emotes + +/mob/living/carbon/human/verb/pose() + set name = "Set Pose" + set desc = "Sets a description which will be shown when someone examines you." + set category = "IC" + + var/datum/gender/T = gender_datums[get_visible_gender()] + + pose = sanitize(input(usr, "This is [src]. [T.he]...", "Pose", null) as text) + +/mob/living/carbon/human/verb/set_flavor() + set name = "Set Flavour Text" + set desc = "Sets an extended description of your character's features." + set category = "IC" + + var/HTML = "" + HTML += "
" + HTML += "Update Flavour Text
" + HTML += "
" + HTML += "General: " + HTML += TextPreview(flavor_texts["general"]) + HTML += "
" + HTML += "Head: " + HTML += TextPreview(flavor_texts["head"]) + HTML += "
" + HTML += "Face: " + HTML += TextPreview(flavor_texts["face"]) + HTML += "
" + HTML += "Eyes: " + HTML += TextPreview(flavor_texts["eyes"]) + HTML += "
" + HTML += "Body: " + HTML += TextPreview(flavor_texts["torso"]) + HTML += "
" + HTML += "Arms: " + HTML += TextPreview(flavor_texts["arms"]) + HTML += "
" + HTML += "Hands: " + HTML += TextPreview(flavor_texts["hands"]) + HTML += "
" + HTML += "Legs: " + HTML += TextPreview(flavor_texts["legs"]) + HTML += "
" + HTML += "Feet: " + HTML += TextPreview(flavor_texts["feet"]) + HTML += "
" + HTML += "
" + HTML +="\[Done\]" + HTML += "" + src << browse(HTML, "window=flavor_changes;size=430x300") + +/mob/living/carbon/human/proc/toggle_tail(var/setting,var/message = 0) + if(!tail_style || !tail_style.ani_state) + if(message) + to_chat(src, "You don't have a tail that supports this.") + return 0 + + var/new_wagging = isnull(setting) ? !wagging : setting + if(new_wagging != wagging) + wagging = new_wagging + update_tail_showing() + return 1 + +/mob/living/carbon/human/proc/toggle_wing(var/setting,var/message = 0) + if(!wing_style || !wing_style.ani_state) + if(message) + to_chat(src, "You don't have a wingtype that supports this.") + return 0 + + var/new_flapping = isnull(setting) ? !flapping : setting + if(new_flapping != flapping) + flapping = setting + update_wing_showing() + return 1