diff --git a/project.hxp b/project.hxp index 065d02953..092dc7ed1 100644 --- a/project.hxp +++ b/project.hxp @@ -210,6 +210,14 @@ class Project extends HXProject */ static final UNLOCK_EVERYTHING:FeatureFlag = "UNLOCK_EVERYTHING"; + /** + * `-DMOBILE_CENSORSHIP` + * The Android platform specifically dislikes the words "fuck" and "cunt", + * but "cock", implied nudity/covered sex, etc. are fine, so fully disabling naughtyness is overly broad. + * If this flag is enabled, some censorship will be applied to the game even if naughtyness is on. + */ + static final MOBILE_CENSORSHIP:FeatureFlag = "MOBILE_CENSORSHIP"; + /** * `-DFEATURE_DEBUG_FUNCTIONS` * If this flag is enabled, the game will have all playtester-only debugging functionality enabled. @@ -404,6 +412,7 @@ class Project extends HXProject /** * `-DFEATURE_NAUGHTYNESS` * If this feature flag is enabled, naughtyness will be a toggleable option in the Options Menu. + * If disabled, the option will be hidden and the game will always be censored. */ static final FEATURE_NAUGHTYNESS:FeatureFlag = "FEATURE_NAUGHTYNESS"; @@ -764,8 +773,11 @@ class Project extends HXProject // Should be true only on mobile builds. FEATURE_TOUCH_CONTROLS.apply(this, isMobile()); - // Should be true on everything other than mobile. - FEATURE_NAUGHTYNESS.apply(this, !isMobile()); + // Should be true on mobile builds. + MOBILE_CENSORSHIP.apply(this, isMobile()); + + // Should be true on everything. + FEATURE_NAUGHTYNESS.apply(this, true); // Should be true only on mobile release builds. Remember you can add the flag manually for testing. FEATURE_MOBILE_ADVERTISEMENTS.apply(this, (isMobile() && isRelease() && envConfig != null)); diff --git a/source/funkin/Preferences.hx b/source/funkin/Preferences.hx index c8843e8d5..196e5bd93 100644 --- a/source/funkin/Preferences.hx +++ b/source/funkin/Preferences.hx @@ -65,6 +65,10 @@ class Preferences static function set_naughtyness(value:Bool):Bool { + #if NO_FEATURE_NAUGHTYNESS + value = false; + #end + var save:Save = Save.instance; save.options.naughtyness = value; save.flush(); diff --git a/source/funkin/util/Constants.hx b/source/funkin/util/Constants.hx index 9a998f073..0367e2646 100644 --- a/source/funkin/util/Constants.hx +++ b/source/funkin/util/Constants.hx @@ -559,6 +559,11 @@ class Constants public static final GHOST_TAP_DELAY:Float = 3 / 8; #end + /** + * Otherwise known as "The FuckCunt Variable" + */ + public static final MOBILE_CENSORSHIP:Bool = #if (MOBILE_CENSORSHIP || NO_FEATURE_NAUGHTYNESS) true #else false #end; + /** * The maximum number of previous file paths for the Chart Editor to remember. */