diff --git a/.github/workflows/test.yml b/.github/workflows/test.yml index bba559c583..3bf762bbe5 100644 --- a/.github/workflows/test.yml +++ b/.github/workflows/test.yml @@ -9,28 +9,22 @@ on: - dev env: BYOND_MAJOR: "515" - BYOND_MINOR: "1623" + BYOND_MINOR: "1641" SPACEMAN_DMM_VERSION: suite-1.9 jobs: DreamChecker: - runs-on: ubuntu-20.04 + runs-on: ubuntu-latest steps: - uses: actions/checkout@v4 - - name: Setup Cache - uses: actions/cache@0c45773b623bea8c8e75f6c82b208c3cf94ea4f9 - with: - path: $HOME/spaceman_dmm/$SPACEMAN_DMM_VERSION - key: ${{ runner.os }}-spacemandmm-${{ env.SPACEMAN_DMM_VERSION }} - - name: Install Dreamchecker - run: scripts/install-spaceman-dmm.sh dreamchecker + - name: Install Tools + run: | + pip3 install setuptools + bash tools/ci/install_node.sh + bash tools/ci/install_spaceman_dmm.sh dreamchecker + tools/bootstrap/python -c '' - name: Run Dreamchecker - run: ~/dreamchecker > ${GITHUB_WORKSPACE}/output-annotations.txt 2>&1 - - name: Annotate Lints - uses: yogstation13/DreamAnnotate@8ef04ef7fbb4ac63ee2daca222af91599e0af5e1 - if: always() - with: - outputFile: output-annotations.txt + run: ~/dreamchecker 2>&1 | bash tools/ci/annotate_dm.sh - name: Run Failure Webhook env: JOB_STATUS: ${{ job.status }} @@ -43,26 +37,19 @@ jobs: chmod +x send.sh ./send.sh failure $WEBHOOK_URL Code: - runs-on: ubuntu-20.04 + runs-on: ubuntu-latest steps: - uses: actions/checkout@v4 - - name: Setup Cache - uses: actions/cache@0c45773b623bea8c8e75f6c82b208c3cf94ea4f9 - with: - path: $HOME/BYOND-${BYOND_MAJOR}.${BYOND_MINOR} - key: ${{ runner.os }}-byond-${{ env.BYOND_MAJOR }}-${{ env.BYOND_MINOR }} - name: Install Dependencies run: sudo apt-get install -y uchardet - - name: Install RUST_G Deps - run: | - sudo dpkg --add-architecture i386 - sudo apt update || true - sudo apt install libssl1.1:i386 - ldd librust_g.so - name: Run Tests env: TEST: CODE - run: test/run-test.sh + run: | + bash tools/ci/install_byond.sh + bash tools/ci/install_rust_g.sh + source $HOME/BYOND/byond/bin/byondsetup + bash test/run-test.sh - name: Run Failure Webhook env: JOB_STATUS: ${{ job.status }} @@ -75,28 +62,21 @@ jobs: chmod +x send.sh ./send.sh failure $WEBHOOK_URL Maps: - runs-on: ubuntu-20.04 + runs-on: ubuntu-latest strategy: matrix: map_path: [site53] steps: - uses: actions/checkout@v4 - - name: Setup Cache - uses: actions/cache@0c45773b623bea8c8e75f6c82b208c3cf94ea4f9 - with: - path: $HOME/BYOND-${BYOND_MAJOR}.${BYOND_MINOR} - key: ${{ runner.os }}-byond-${{ env.BYOND_MAJOR }}-${{ env.BYOND_MINOR }} - - name: Install RUST_G Deps - run: | - sudo dpkg --add-architecture i386 - sudo apt update || true - sudo apt install libssl1.1:i386 - ldd librust_g.so - name: Run Tests env: TEST: MAP MAP_PATH: ${{ matrix.map_path }} - run: test/run-test.sh + run: | + bash tools/ci/install_byond.sh + bash tools/ci/install_rust_g.sh + source $HOME/BYOND/byond/bin/byondsetup + bash test/run-test.sh - name: Run Failure Webhook env: JOB_STATUS: ${{ job.status }} diff --git a/.gitignore b/.gitignore index 0ebd71613e..a41016fd33 100644 --- a/.gitignore +++ b/.gitignore @@ -22,6 +22,20 @@ atupdate config/* sql/test_db +# byond-tracy, we intentionally do not ship this and do not want to maintain it +# https://github.com/mafemergency/byond-tracy/ +prof.dll +libprof.so + +# Tracy can read source files when it is in the root folder, even without absolute paths. +# If you're interested, run this hack: +# https://gist.github.com/Mothblocks/db5462aa84d7d6b1d1b1276b820f62da +Tracy.exe + + +# Ignore compiled linux libs in the root folder, e.g. librust_g.so +/*.so + # VisualStudioCode *.code-workspace diff --git a/.tgs.yml b/.tgs.yml new file mode 100644 index 0000000000..ad09af4d2e --- /dev/null +++ b/.tgs.yml @@ -0,0 +1,27 @@ +# This file is used by TGS (https://github.com/tgstation/tgstation-server) clients to quickly initialize a server instance for the codebase +# The format isn't documented anywhere but hopefully we never have to change it. If there are questions, contact the TGS maintainer Cyberboss/@Dominion#0444 +version: 1 +# The BYOND version to use (kept in sync with dependencies.sh by the "TGS Test Suite" CI job) +# Must be interpreted as a string, keep quoted +byond: "515.1637" +# Folders to create in "/Configuration/GameStaticFiles/" +static_files: + # Config directory should be static + - name: config + # This implies the folder should be pre-populated with contents from the repo + populate: true + # Populate the folder with the config example_files from the repo + sources: ["config/example"] + # Data directory must be static + - name: data +# String dictionary. The value is the location of the file in the repo to upload to TGS. The key is the name of the file to upload to "/Configuration/EventScripts/" +# This one is for Linux hosted servers +linux_scripts: + PreCompile.sh: tools/tgs_scripts/PreCompile.sh + WatchdogLaunch.sh: tools/tgs_scripts/WatchdogLaunch.sh + InstallDeps.sh: tools/tgs_scripts/InstallDeps.sh +# Same as above for Windows hosted servers +windows_scripts: + PreCompile.bat: tools/tgs_scripts/PreCompile.bat +# The security level the game should be run at +security: Trusted diff --git a/baystation12.dme b/baystation12.dme index 4ae38013e6..69e7bdc5c3 100644 --- a/baystation12.dme +++ b/baystation12.dme @@ -10,7 +10,8 @@ #define DEBUG // END_PREFERENCES // BEGIN_INCLUDE -#include "code\_byond_version_compat.dm" +#include "code\__byond_version_compat.dm" +#include "code\_compile_options.dm" #include "code\_debugger.dm" #include "code\_macros.dm" #include "code\_spaceman_dmm.dm" @@ -22,7 +23,6 @@ #include "code\__datastructures\globals.dm" #include "code\__datastructures\priority_queue.dm" #include "code\__datastructures\stack.dm" -#include "code\__defines\__compile_options.dm" #include "code\__defines\_click.dm" #include "code\__defines\_helpers.dm" #include "code\__defines\_lists.dm" @@ -94,6 +94,7 @@ #include "code\__defines\research.dm" #include "code\__defines\ruin_tags.dm" #include "code\__defines\rust_g.dm" +#include "code\__defines\rust_g_overrides.dm" #include "code\__defines\SCP.dm" #include "code\__defines\shields.dm" #include "code\__defines\shuttle.dm" @@ -185,6 +186,7 @@ #include "code\_helpers\unsorted.dm" #include "code\_helpers\vector.dm" #include "code\_helpers\verbs.dm" +#include "code\_helpers\view.dm" #include "code\_helpers\washing.dm" #include "code\_helpers\sorts\__main.dm" #include "code\_helpers\sorts\TimSort.dm" @@ -300,7 +302,6 @@ #include "code\controllers\subsystems\initialization\codex.dm" #include "code\controllers\subsystems\initialization\cuisine.dm" #include "code\controllers\subsystems\initialization\culture.dm" -#include "code\controllers\subsystems\initialization\customitems.dm" #include "code\controllers\subsystems\initialization\fabrication.dm" #include "code\controllers\subsystems\initialization\materials.dm" #include "code\controllers\subsystems\initialization\misc.dm" @@ -2375,7 +2376,6 @@ #include "code\modules\mob\living\silicon\pai\software_modules.dm" #include "code\modules\mob\living\silicon\robot\analyzer.dm" #include "code\modules\mob\living\silicon\robot\component.dm" -#include "code\modules\mob\living\silicon\robot\custom_sprites.dm" #include "code\modules\mob\living\silicon\robot\death.dm" #include "code\modules\mob\living\silicon\robot\examine.dm" #include "code\modules\mob\living\silicon\robot\inventory.dm" @@ -3493,7 +3493,6 @@ #include "code\modules\ZAS\Variable Settings.dm" #include "code\modules\ZAS\Zone.dm" #include "code\procs\announce.dm" -#include "code\procs\dbcore.dm" #include "code\procs\hud.dm" #include "code\procs\radio.dm" #include "code\unit_tests\_defines.dm" @@ -3553,8 +3552,8 @@ #include "maps\site53\items\bullets.dm" #include "maps\site53\items\clothes.dm" #include "maps\site53\items\guns.dm" -#include "maps\site53\items\sciprc_server.dm" #include "maps\site53\items\paperwork_dataserver.dm" +#include "maps\site53\items\sciprc_server.dm" #include "maps\site53\items\SCP_dataserver.dm" #include "maps\site53\items\storage.dm" #include "maps\site53\items\toys.dm" diff --git a/code/_byond_version_compat.dm b/code/__byond_version_compat.dm similarity index 78% rename from code/_byond_version_compat.dm rename to code/__byond_version_compat.dm index b2f57d7b64..4865594574 100644 --- a/code/_byond_version_compat.dm +++ b/code/__byond_version_compat.dm @@ -1,29 +1,19 @@ // This file contains defines allowing targeting byond versions newer than the supported //Update this whenever you need to take advantage of more recent byond features -#define MIN_COMPILER_VERSION 514 -#define MIN_COMPILER_BUILD 1584 +#define MIN_COMPILER_VERSION 515 +#define MIN_COMPILER_BUILD 1609 #if (DM_VERSION < MIN_COMPILER_VERSION || DM_BUILD < MIN_COMPILER_BUILD) && !defined(SPACEMAN_DMM) && !defined(OPENDREAM) //Don't forget to update this part #error Your version of BYOND is too out-of-date to compile this project. Go to https://secure.byond.com/download/build/514 and update. -#error You need version 514.1584 or higher +#error You need version 515.1609 or higher #endif -/* // Keep savefile compatibilty at minimum supported level -#if DM_VERSION >= 515 /savefile/byond_version = MIN_COMPILER_VERSION -#endif -*/ -// 515 split call for external libraries into call_ext -#if DM_VERSION < 515 -#define LIBCALL call -#else -#define LIBCALL call_ext -#endif // So we want to have compile time guarantees these methods exist on local type, unfortunately 515 killed the .proc/procname and .verb/verbname syntax so we have to use nameof() // For the record: GLOBAL_VERB_REF would be useless as verbs can't be global. @@ -59,15 +49,3 @@ #define GLOBAL_PROC_REF(X) (/proc/##X) #endif - -#if (DM_VERSION == 515) -/// fcopy will crash on 515 linux if given a non-existant file, instead of returning 0 like on 514 linux or 515 windows -/// var case matches documentation for fcopy. -/world/proc/__fcopy(Src, Dst) - if (istext(Src) && !fexists(Src)) - return 0 - return fcopy(Src, Dst) - -#define fcopy(Src, Dst) world.__fcopy(Src, Dst) - -#endif diff --git a/code/__defines/_click.dm b/code/__defines/_click.dm index 43915abe5d..07d044f8b8 100644 --- a/code/__defines/_click.dm +++ b/code/__defines/_click.dm @@ -1,9 +1,45 @@ -//Mouse buttons pressed/held/released +//Defines file for byond click related parameters +//this is mostly for ease of use and for finding all the things that use say RIGHT_CLICK rather then just searching "right" + +//Mouse buttons held #define RIGHT_CLICK "right" #define MIDDLE_CLICK "middle" #define LEFT_CLICK "left" +///Mouse button that was just clicked/released +///if(modifiers[BUTTON] == LEFT_CLICK) +#define BUTTON "button" + //Keys held down during the mouse action #define CTRL_CLICK "ctrl" #define ALT_CLICK "alt" #define SHIFT_CLICK "shift" + +//Cells involved if using a Grid control +#define DRAG_CELL "drag-cell" +#define DROP_CELL "drop-cell" + +//The button used for dragging (only sent for unrelated mouse up/down messages during a drag) +#define DRAG "drag" + +//If the mouse is over a link in maptext, or this event is related to clicking such a link +#define LINK "link" + +//Pixel coordinates relative to the icon's position on screen +#define VIS_X "vis-x" +#define VIS_Y "vis-y" + +//Pixel coordinates within the icon, in the icon's coordinate space +#define ICON_X "icon-x" +#define ICON_Y "icon-y" + +//Pixel coordinates in screen_loc format ("[tile_x]:[pixel_x],[tile_y]:[pixel_y]") +#define SCREEN_LOC "screen-loc" + +//https://secure.byond.com/docs/ref/info.html#/atom/var/mouse_opacity +/// Objects will ignore being clicked on regardless of their transparency (used in parallax, lighting effects, holograms, lasers, etc.) +#define MOUSE_OPACITY_TRANSPARENT 0 +/// Objects will be clicked on if it is the topmost object and the pixel isn't transparent at the position of the mouse (default behavior for 99.99% of game objects) +#define MOUSE_OPACITY_ICON 1 +/// Objects will be always be clicked on regardless of pixel transparency or other objects at that location (used in space vines, megafauna, storage containers) +#define MOUSE_OPACITY_OPAQUE 2 diff --git a/code/__defines/_planes+layers.dm b/code/__defines/_planes+layers.dm index f7fed134d6..e20460f18e 100644 --- a/code/__defines/_planes+layers.dm +++ b/code/__defines/_planes+layers.dm @@ -244,7 +244,7 @@ What is the naming convention for planes or layers? /atom/movable/screen/plane_master appearance_flags = PLANE_MASTER - screen_loc = "CENTER,CENTER" + screen_loc = "CENTER" globalscreen = 1 /atom/movable/screen/plane_master/ghost_master diff --git a/code/__defines/client.dm b/code/__defines/client.dm index 0794c852df..b8ec568420 100644 --- a/code/__defines/client.dm +++ b/code/__defines/client.dm @@ -1,2 +1,2 @@ #define CLIENT_MIN_FPS 0 -#define CLIENT_MAX_FPS 1000 +#define CLIENT_MAX_FPS 360 diff --git a/code/__defines/dcs/signals.dm b/code/__defines/dcs/signals.dm index a6d279a4b8..a26d8c6094 100644 --- a/code/__defines/dcs/signals.dm +++ b/code/__defines/dcs/signals.dm @@ -103,6 +103,11 @@ /// Called on `/mob/living/say` (/mob/living, message, /datum/language) #define COMSIG_LIVING_TREAT_MESSAGE "living_treat_message" + #define SPEECH_ARG_MESSAGE 1 + #define SPEECH_ARG_LANGUAGE 2 + #define SPEECH_ARG_VERB 3 + #define SPEECH_ARG_ALT_NAME 4 + #define SPEECH_ARG_WHISPERING 5 /// Called on `/obj/item/proc/dropped` (/mob, /obj) #define COMSIG_MOB_DROPPED_ITEM "mob_dropped_item" diff --git a/code/__defines/misc.dm b/code/__defines/misc.dm index 104e7853e7..5cba74aef8 100644 --- a/code/__defines/misc.dm +++ b/code/__defines/misc.dm @@ -31,11 +31,6 @@ #define SEE_INVISIBLE_MINIMUM 5 #define INVISIBILITY_MAXIMUM 100 -//https://secure.byond.com/docs/ref/info.html#/atom/var/mouse_opacity -#define MOUSE_OPACITY_TRANSPARENT 0 -#define MOUSE_OPACITY_ICON 1 -#define MOUSE_OPACITY_OPAQUE 2 - // Some arbitrary defines to be used by self-pruning global lists. (see master_controller) #define PROCESS_KILL 26 // Used to trigger removal from a processing list. @@ -102,24 +97,6 @@ //Ruin map template flags #define TEMPLATE_FLAG_RUIN_STARTS_DISALLOWED 32 // Ruin is not available during spawning unless another ruin permits it. -// Convoluted setup so defines can be supplied by Bay12 main server compile script. -// Should still work fine for people jamming the icons into their repo. -#ifndef CUSTOM_ITEM_CONFIG -#define CUSTOM_ITEM_CONFIG "config/custom_items/" -#endif -#ifndef CUSTOM_ITEM_SYNTH_CONFIG -#define CUSTOM_ITEM_SYNTH_CONFIG "config/custom_sprites.txt" -#endif -#ifndef CUSTOM_ITEM_OBJ -#define CUSTOM_ITEM_OBJ 'icons/obj/custom_items_obj.dmi' -#endif -#ifndef CUSTOM_ITEM_MOB -#define CUSTOM_ITEM_MOB 'icons/mob/custom_items_mob.dmi' -#endif -#ifndef CUSTOM_ITEM_SYNTH -#define CUSTOM_ITEM_SYNTH 'icons/mob/custom_synthetic.dmi' -#endif - #define WALL_CAN_OPEN 1 #define WALL_OPENING 2 diff --git a/code/__defines/rust_g.dm b/code/__defines/rust_g.dm index c35af3ca4d..7c601b62ff 100644 --- a/code/__defines/rust_g.dm +++ b/code/__defines/rust_g.dm @@ -107,6 +107,23 @@ #define rustg_cnoise_generate(percentage, smoothing_iterations, birth_limit, death_limit, width, height) \ RUSTG_CALL(RUST_G, "cnoise_generate")(percentage, smoothing_iterations, birth_limit, death_limit, width, height) +/** + * This proc generates a grid of perlin-like noise + * + * Returns a single string that goes row by row, with values of 1 representing an turned on cell, and a value of 0 representing a turned off cell. + * + * Arguments: + * * seed: seed for the function + * * accuracy: how close this is to the original perlin noise, as accuracy approaches infinity, the noise becomes more and more perlin-like + * * stamp_size: Size of a singular stamp used by the algorithm, think of this as the same stuff as frequency in perlin noise + * * world_size: size of the returned grid. + * * lower_range: lower bound of values selected for. (inclusive) + * * upper_range: upper bound of values selected for. (exclusive) + */ +#define rustg_dbp_generate(seed, accuracy, stamp_size, world_size, lower_range, upper_range) \ + RUSTG_CALL(RUST_G, "dbp_generate")(seed, accuracy, stamp_size, world_size, lower_range, upper_range) + + #define rustg_dmi_strip_metadata(fname) RUSTG_CALL(RUST_G, "dmi_strip_metadata")(fname) #define rustg_dmi_create_png(path, width, height, data) RUSTG_CALL(RUST_G, "dmi_create_png")(path, width, height, data) #define rustg_dmi_resize_png(path, width, height, resizetype) RUSTG_CALL(RUST_G, "dmi_resize_png")(path, width, height, resizetype) @@ -159,6 +176,16 @@ #define rustg_noise_get_at_coordinates(seed, x, y) RUSTG_CALL(RUST_G, "noise_get_at_coordinates")(seed, x, y) +/* + * Takes in a string and json_encode()"d lists to produce a sanitized string. + * This function operates on whitelists, there is currently no way to blacklist. + * Args: + * * text: the string to sanitize. + * * attribute_whitelist_json: a json_encode()'d list of HTML attributes to allow in the final string. + * * tag_whitelist_json: a json_encode()'d list of HTML tags to allow in the final string. + */ +#define rustg_sanitize_html(text, attribute_whitelist_json, tag_whitelist_json) RUSTG_CALL(RUST_G, "sanitize_html")(text, attribute_whitelist_json, tag_whitelist_json) + #define rustg_sql_connect_pool(options) RUSTG_CALL(RUST_G, "sql_connect_pool")(options) #define rustg_sql_query_async(handle, query, params) RUSTG_CALL(RUST_G, "sql_query_async")(handle, query, params) #define rustg_sql_query_blocking(handle, query, params) RUSTG_CALL(RUST_G, "sql_query_blocking")(handle, query, params) @@ -199,3 +226,4 @@ #define url_encode(text) rustg_url_encode(text) #define url_decode(text) rustg_url_decode(text) #endif + diff --git a/code/__defines/rust_g_overrides.dm b/code/__defines/rust_g_overrides.dm new file mode 100644 index 0000000000..57de7d96ac --- /dev/null +++ b/code/__defines/rust_g_overrides.dm @@ -0,0 +1,3 @@ +// RUSTG_OVERRIDE_BUILTINS is not used since the file APIs don't work well over Linux. +#define url_encode(text) rustg_url_encode("[text]") +#define url_decode(text) rustg_url_decode("[text]") diff --git a/code/__defines/tgs.config.dm b/code/__defines/tgs.config.dm index bc16bc8176..774b4ecad6 100644 --- a/code/__defines/tgs.config.dm +++ b/code/__defines/tgs.config.dm @@ -3,10 +3,10 @@ #define TGS_DEFINE_AND_SET_GLOBAL(Name, Value) GLOBAL_VAR_INIT(##Name, ##Value); GLOBAL_PROTECT(##Name) #define TGS_READ_GLOBAL(Name) GLOB.##Name #define TGS_WRITE_GLOBAL(Name, Value) GLOB.##Name = ##Value -#define TGS_WORLD_ANNOUNCE(message) to_chat(world, SPAN_BOLD([html_encode(##message)])) +#define TGS_WORLD_ANNOUNCE(message) to_chat(world, SPAN_BOLD("[html_encode(##message)]")) #define TGS_INFO_LOG(message) log_world("TGS Info: [##message]") #define TGS_WARNING_LOG(message) log_world("TGS Warn: [##message]") #define TGS_ERROR_LOG(message) log_world("TGS Error: [##message]") #define TGS_NOTIFY_ADMINS(event) message_staff(##event) -#define TGS_CLIENT_COUNT GLOB.clients +#define TGS_CLIENT_COUNT GLOB.clients.len #define TGS_PROTECT_DATUM(Path) // Leave blank if your codebase doesn't give administrators code reflection capabilities diff --git a/code/__defines/tgs.dm b/code/__defines/tgs.dm index 22c3827022..e2c89df90e 100644 --- a/code/__defines/tgs.dm +++ b/code/__defines/tgs.dm @@ -1,6 +1,6 @@ // tgstation-server DMAPI -#define TGS_DMAPI_VERSION "6.5.2" +#define TGS_DMAPI_VERSION "7.1.2" // All functions and datums outside this document are subject to change with any version and should not be relied on. @@ -50,6 +50,13 @@ #endif +#ifndef TGS_FILE2TEXT_NATIVE +#ifdef file2text +#error Your codebase is re-defining the BYOND proc file2text. The DMAPI requires the native version to read the result of world.Export(). You can fix this by adding "#define TGS_FILE2TEXT_NATIVE file2text" before your override of file2text to allow the DMAPI to use the native version. This will only be used for world.Export(), not regular file accesses +#endif +#define TGS_FILE2TEXT_NATIVE file2text +#endif + // EVENT CODES /// Before a reboot mode change, extras parameters are the current and new reboot mode enums. @@ -73,12 +80,12 @@ #define TGS_EVENT_REPO_MERGE_PULL_REQUEST 3 /// Before the repository makes a sychronize operation. Parameters: Absolute repostiory path. #define TGS_EVENT_REPO_PRE_SYNCHRONIZE 4 -/// Before a BYOND install operation begins. Parameters: [/datum/tgs_version] of the installing BYOND. -#define TGS_EVENT_BYOND_INSTALL_START 5 -/// When a BYOND install operation fails. Parameters: Error message -#define TGS_EVENT_BYOND_INSTALL_FAIL 6 -/// When the active BYOND version changes. Parameters: (Nullable) [/datum/tgs_version] of the current BYOND, [/datum/tgs_version] of the new BYOND. -#define TGS_EVENT_BYOND_ACTIVE_VERSION_CHANGE 7 +/// Before a engine install operation begins. Parameters: Version string of the installing engine. +#define TGS_EVENT_ENGINE_INSTALL_START 5 +/// When a engine install operation fails. Parameters: Error message +#define TGS_EVENT_ENGINE_INSTALL_FAIL 6 +/// When the active engine version changes. Parameters: (Nullable) Version string of the current engine, version string of the new engine. +#define TGS_EVENT_ENGINE_ACTIVE_VERSION_CHANGE 7 /// When the compiler starts running. Parameters: Game directory path, origin commit SHA. #define TGS_EVENT_COMPILE_START 8 /// When a compile is cancelled. No parameters. @@ -108,7 +115,7 @@ // #define TGS_EVENT_DREAM_DAEMON_LAUNCH 22 /// After a single submodule update is performed. Parameters: Updated submodule name. #define TGS_EVENT_REPO_SUBMODULE_UPDATE 23 -/// After CodeModifications are applied, before DreamMaker is run. Parameters: Game directory path, origin commit sha, byond version. +/// After CodeModifications are applied, before DreamMaker is run. Parameters: Game directory path, origin commit sha, version string of the used engine. #define TGS_EVENT_PRE_DREAM_MAKER 24 /// Whenever a deployment folder is deleted from disk. Parameters: Game directory path. #define TGS_EVENT_DEPLOYMENT_CLEANUP 25 @@ -122,6 +129,7 @@ /// The watchdog will restart on reboot. #define TGS_REBOOT_MODE_RESTART 2 +// Note that security levels are currently meaningless in OpenDream /// DreamDaemon Trusted security level. #define TGS_SECURITY_TRUSTED 0 /// DreamDaemon Safe security level. @@ -129,6 +137,18 @@ /// DreamDaemon Ultrasafe security level. #define TGS_SECURITY_ULTRASAFE 2 +/// DreamDaemon public visibility level. +#define TGS_VISIBILITY_PUBLIC 0 +/// DreamDaemon private visibility level. +#define TGS_VISIBILITY_PRIVATE 1 +/// DreamDaemon invisible visibility level. +#define TGS_VISIBILITY_INVISIBLE 2 + +/// The Build Your Own Net Dream engine. +#define TGS_ENGINE_TYPE_BYOND 0 +/// The OpenDream engine. +#define TGS_ENGINE_TYPE_OPENDREAM 1 + //REQUIRED HOOKS /** @@ -154,7 +174,7 @@ #define TGS_TOPIC var/tgs_topic_return = TgsTopic(args[1]); if(tgs_topic_return) return tgs_topic_return /** - * Call this as late as possible in [world/proc/Reboot]. + * Call this as late as possible in [world/proc/Reboot] (BEFORE ..()). */ /world/proc/TgsReboot() return @@ -292,6 +312,7 @@ var/datum/tgs_chat_embed/structure/embed /datum/tgs_message_content/New(text) + ..() if(!istext(text)) TGS_ERROR_LOG("[/datum/tgs_message_content] created with no text!") text = null @@ -334,6 +355,7 @@ var/proxy_url /datum/tgs_chat_embed/media/New(url) + ..() if(!istext(url)) CRASH("[/datum/tgs_chat_embed/media] created with no url!") @@ -347,6 +369,7 @@ var/proxy_icon_url /datum/tgs_chat_embed/footer/New(text) + ..() if(!istext(text)) CRASH("[/datum/tgs_chat_embed/footer] created with no text!") @@ -363,6 +386,7 @@ var/proxy_icon_url /datum/tgs_chat_embed/provider/author/New(name) + ..() if(!istext(name)) CRASH("[/datum/tgs_chat_embed/provider/author] created with no name!") @@ -375,6 +399,7 @@ var/is_inline /datum/tgs_chat_embed/field/New(name, value) + ..() if(!istext(name)) CRASH("[/datum/tgs_chat_embed/field] created with no name!") @@ -413,6 +438,7 @@ /** * Send a message to connected chats. This function may sleep! + * If TGS is offline when called, the message may be placed in a queue to be sent and this function will return immediately. Your message will be sent when TGS reconnects to the game. * * message - The [/datum/tgs_message_content] to send. * admin_only: If [TRUE], message will be sent to admin connected chats. Vice-versa applies. @@ -422,6 +448,7 @@ /** * Send a private message to a specific user. This function may sleep! + * If TGS is offline when called, the message may be placed in a queue to be sent and this function will return immediately. Your message will be sent when TGS reconnects to the game. * * message - The [/datum/tgs_message_content] to send. * user: The [/datum/tgs_chat_user] to PM. @@ -431,6 +458,7 @@ /** * Send a message to connected chats that are flagged as game-related in TGS. This function may sleep! + * If TGS is offline when called, the message may be placed in a queue to be sent and this function will return immediately. Your message will be sent when TGS reconnects to the game. * * message - The [/datum/tgs_message_content] to send. * channels - Optional list of [/datum/tgs_chat_channel]s to restrict the message to. @@ -442,6 +470,10 @@ /world/proc/TgsVersion() return +/// Returns the running engine type +/world/proc/TgsEngine() + return + /// Returns the current [/datum/tgs_version] of the DMAPI being used if it was activated, null otherwise. This function may sleep if the call to [/world/proc/TgsNew] is sleeping! /world/proc/TgsApiVersion() return @@ -458,6 +490,10 @@ /world/proc/TgsSecurityLevel() return +/// Returns the current BYOND visibility level as a TGS_VISIBILITY_ define if TGS is present, null otherwise. Requires TGS to be using interop API version 5 or higher otherwise the string "___unimplemented" wil be returned. This function may sleep if the call to [/world/proc/TgsNew] is sleeping! +/world/proc/TgsVisibility() + return + /// Returns a list of active [/datum/tgs_revision_information/test_merge]s if TGS is present, null otherwise. This function may sleep if the call to [/world/proc/TgsNew] is sleeping! /world/proc/TgsTestMerges() return @@ -466,10 +502,20 @@ /world/proc/TgsChatChannelInfo() return +/** + * Trigger an event in TGS. Requires TGS version >= 6.3.0. Returns [TRUE] if the event was triggered successfully, [FALSE] otherwise. This function may sleep! + * + * event_name - The name of the event to trigger + * parameters - Optional list of string parameters to pass as arguments to the event script. The first parameter passed to a script will always be the running game's directory followed by these parameters. + * wait_for_completion - If set, this function will not return until the event has run to completion. + */ +/world/proc/TgsTriggerEvent(event_name, list/parameters, wait_for_completion = FALSE) + return + /* The MIT License -Copyright (c) 2017-2023 Jordan Brown +Copyright (c) 2017-2024 Jordan Brown Permission is hereby granted, free of charge, to any person obtaining a copy of this software and diff --git a/code/__defines/turfs.dm b/code/__defines/turfs.dm index c11eb1121f..ba7f5996bb 100644 --- a/code/__defines/turfs.dm +++ b/code/__defines/turfs.dm @@ -19,7 +19,16 @@ #define SMOOTH_WHITELIST 2 //Smooth with a whitelist of subtypes #define SMOOTH_BLACKLIST 3 //Smooth with all but a blacklist of subtypes -#define RANGE_TURFS(CENTER, RADIUS) block(locate(max(CENTER.x-(RADIUS), 1), max(CENTER.y-(RADIUS),1), CENTER.z), locate(min(CENTER.x+(RADIUS), world.maxx), min(CENTER.y+(RADIUS), world.maxy), CENTER.z)) +//supposedly the fastest way to do this according to https://gist.github.com/Giacom/be635398926bb463b42a +///Returns a list of turf in a square +#define RANGE_TURFS(CENTER, RADIUS) \ + RECT_TURFS(RADIUS, RADIUS, CENTER) + +#define RECT_TURFS(H_RADIUS, V_RADIUS, CENTER) \ + block( \ + locate(max((CENTER).x-(H_RADIUS),1), max((CENTER).y-(V_RADIUS),1), (CENTER).z), \ + locate(min((CENTER).x+(H_RADIUS),world.maxx), min((CENTER).y+(V_RADIUS),world.maxy), (CENTER).z) \ + ) /** * Get the turf that `A` resides in, regardless of any containers. diff --git a/code/__defines/__compile_options.dm b/code/_compile_options.dm similarity index 52% rename from code/__defines/__compile_options.dm rename to code/_compile_options.dm index 0616d682b4..ddfedbdf54 100644 --- a/code/__defines/__compile_options.dm +++ b/code/_compile_options.dm @@ -12,6 +12,10 @@ #warn Consider switching to VSCode editor instead, where you can press Ctrl+Shift+B to build. #endif +// If this is uncommented, will attempt to load and initialize prof.dll/libprof.so. +// We do not ship byond-tracy. Build it yourself here: https://github.com/mafemergency/byond-tracy/ +//#define USE_BYOND_TRACY + ///Used to find the sources of harddels, quite laggy, don't be surpised if it freezes your client for a good while //#define REFERENCE_TRACKING #ifdef REFERENCE_TRACKING @@ -27,5 +31,30 @@ #ifdef GC_FAILURE_HARD_LOOKUP #define FIND_REF_NO_CHECK_TICK #endif //ifdef GC_FAILURE_HARD_LOOKUP - #endif //ifdef REFERENCE_TRACKING + +/// If this is uncommented, we set up the ref tracker to be used in a live environment +/// And to log events to [log_dir]/harddels.log +//#define REFERENCE_DOING_IT_LIVE +#ifdef REFERENCE_DOING_IT_LIVE +// compile the backend +#define REFERENCE_TRACKING +// actually look for refs +#define GC_FAILURE_HARD_LOOKUP +// Log references in their own file +#define REFERENCE_TRACKING_LOG_APART +#endif // REFERENCE_DOING_IT_LIVE + +/// Sets up the reftracker to be used locally, to hunt for hard deletions +/// Errors are logged to [log_dir]/harddels.log +//#define REFERENCE_TRACKING_STANDARD +#ifdef REFERENCE_TRACKING_STANDARD +// compile the backend +#define REFERENCE_TRACKING +// actually look for refs +#define GC_FAILURE_HARD_LOOKUP +// spend ALL our time searching, not just part of it +#define FIND_REF_NO_CHECK_TICK +// Log references in their own file +#define REFERENCE_TRACKING_LOG_APART +#endif // REFERENCE_TRACKING_STANDARD diff --git a/code/_debugger.dm b/code/_debugger.dm index 6f60cba6c1..2c6291fa8e 100644 --- a/code/_debugger.dm +++ b/code/_debugger.dm @@ -4,14 +4,33 @@ /datum/debugger /datum/debugger/New() - enable_debugger() +#ifdef USE_BYOND_TRACY +#warn USE_BYOND_TRACY is enabled + init_byond_tracy() +#endif + enable_debugger() /datum/debugger/proc/enable_debugger() var/dll = world.GetConfig("env", "AUXTOOLS_DEBUG_DLL") if(dll) - LIBCALL(dll, "auxtools_init")() + call_ext(dll, "auxtools_init")() enable_debugging() +/proc/init_byond_tracy() + var/library + + switch (world.system_type) + if (MS_WINDOWS) + library = "prof.dll" + if (UNIX) + library = "libprof.so" + else + CRASH("Unsupported platform: [world.system_type]") + + var/init_result = call_ext(library, "init")("block") + if (init_result != "0") + CRASH("Error initializing byond-tracy: [init_result]") + /proc/auxtools_stack_trace(msg) CRASH(msg) diff --git a/code/_global_vars/configuration.dm b/code/_global_vars/configuration.dm index b33046ff7a..c3249f1119 100644 --- a/code/_global_vars/configuration.dm +++ b/code/_global_vars/configuration.dm @@ -18,12 +18,6 @@ var/Debug2 = 0 var/gravity_is_on = 1 var/round_progressing = 1 -// Database connections. A connection is established on world creation. -// Ideally, the connection dies when the server restarts (After feedback logging.). -var/DBConnection/dbcon = new() // Feedback database (New database) -var/DBConnection/dbcon_old = new() // /tg/station database (Old database) -- see the files in the SQL folder for information on what goes where. - - // For FTP requests. (i.e. downloading runtime logs.) // However it'd be ok to use for accessing attack logs and such too, which are even laggier. var/fileaccess_timer = 0 diff --git a/code/_global_vars/lists/objects.dm b/code/_global_vars/lists/objects.dm index 63ed96b7b9..4dd6e09ed2 100644 --- a/code/_global_vars/lists/objects.dm +++ b/code/_global_vars/lists/objects.dm @@ -25,5 +25,3 @@ GLOBAL_LIST_EMPTY(meteor_list) /// List of wire colors for each object type of that round. One for airlocks, one for vendors, etc. GLOBAL_LIST_EMPTY(wire_color_directory) // This is an associative list with the `holder_type` as the key, and a list of colors as the value. - -GLOBAL_LIST(chemical_reagents_list) // List of all /datum/reagent datums indexed by reagent path. Used by chemistry stuff diff --git a/code/_global_vars/logging.dm b/code/_global_vars/logging.dm index 6084aceb5f..4a43322dbd 100644 --- a/code/_global_vars/logging.dm +++ b/code/_global_vars/logging.dm @@ -18,3 +18,7 @@ GLOBAL_VAR(tgui_log) GLOBAL_PROTECT(tgui_log) GLOBAL_VAR(world_asset_log) GLOBAL_PROTECT(world_asset_log) +#ifdef REFERENCE_TRACKING_LOG_APART +GLOBAL_VAR(harddel_log) +GLOBAL_PROTECT(harddel_log) +#endif diff --git a/code/_helpers/game.dm b/code/_helpers/game.dm index 1f76cc6c8c..7fa5ba0b13 100644 --- a/code/_helpers/game.dm +++ b/code/_helpers/game.dm @@ -540,19 +540,6 @@ /proc/round_is_spooky(spookiness_threshold = config.cult_ghostwriter_req_cultists) return (GLOB.cult.current_antagonists.len > spookiness_threshold) -/proc/getviewsize(view) - var/viewX - var/viewY - if(isnum(view)) - var/totalviewrange = 1 + 2 * view - viewX = totalviewrange - viewY = totalviewrange - else - var/list/viewrangelist = splittext(view,"x") - viewX = text2num(viewrangelist[1]) - viewY = text2num(viewrangelist[2]) - return list(viewX, viewY) - /proc/has_station_trait(trait) return is_path_in_list(trait, SSstation.station_traits) diff --git a/code/_helpers/global_access.dm b/code/_helpers/global_access.dm index b371904dfa..9fc76d74db 100644 --- a/code/_helpers/global_access.dm +++ b/code/_helpers/global_access.dm @@ -69,8 +69,6 @@ return global.SScuisine; if("SSculture") return global.SSculture; - if("SScustomitems") - return global.SScustomitems; if("SSdbcore") return global.SSdbcore; if("SSdisposals") @@ -123,8 +121,6 @@ return global.SSobj; if("SSorbit") return global.SSorbit; - if("SSoverlays") - return global.SSoverlays; if("SSpersistence") return global.SSpersistence; if("SSping") @@ -365,10 +361,6 @@ return global.custom_event_msg; if("damage_icon_parts") return global.damage_icon_parts; - if("dbcon") - return global.dbcon; - if("dbcon_old") - return global.dbcon_old; if("debug_verbs") return global.debug_verbs; if("decls_repository") @@ -411,10 +403,6 @@ return global.explosion_in_progress; if("explosion_turfs") return global.explosion_turfs; - if("failed_db_connections") - return global.failed_db_connections; - if("failed_old_db_connections") - return global.failed_old_db_connections; if("failed_unit_tests") return global.failed_unit_tests; if("file_uid") @@ -669,8 +657,6 @@ return global.responsive_carriers; if("revdata") return global.revdata; - if("robot_custom_icons") - return global.robot_custom_icons; if("robot_hud_colours") return global.robot_hud_colours; if("robot_inventory") @@ -908,8 +894,6 @@ global.SScuisine=newval; if("SSculture") global.SSculture=newval; - if("SScustomitems") - global.SScustomitems=newval; if("SSdbcore") global.SSdbcore=newval; if("SSdisposals") @@ -962,8 +946,6 @@ global.SSobj=newval; if("SSorbit") global.SSorbit=newval; - if("SSoverlays") - global.SSoverlays=newval; if("SSpersistence") global.SSpersistence=newval; if("SSping") @@ -1204,10 +1186,6 @@ global.custom_event_msg=newval; if("damage_icon_parts") global.damage_icon_parts=newval; - if("dbcon") - global.dbcon=newval; - if("dbcon_old") - global.dbcon_old=newval; if("debug_verbs") global.debug_verbs=newval; if("decls_repository") @@ -1250,10 +1228,6 @@ global.explosion_in_progress=newval; if("explosion_turfs") global.explosion_turfs=newval; - if("failed_db_connections") - global.failed_db_connections=newval; - if("failed_old_db_connections") - global.failed_old_db_connections=newval; if("failed_unit_tests") global.failed_unit_tests=newval; if("file_uid") @@ -1508,8 +1482,6 @@ global.responsive_carriers=newval; if("revdata") global.revdata=newval; - if("robot_custom_icons") - global.robot_custom_icons=newval; if("robot_hud_colours") global.robot_hud_colours=newval; if("robot_inventory") @@ -1712,7 +1684,6 @@ "SScodex", "SScuisine", "SSculture", - "SScustomitems", "SSdbcore", "SSdisposals", "SSevac", @@ -1739,7 +1710,6 @@ "SSnano", "SSobj", "SSorbit", - "SSoverlays", "SSpersistence", "SSping", "SSplants", @@ -1861,8 +1831,6 @@ "csrfz_check", "custom_event_msg", "damage_icon_parts", - "dbcon", - "dbcon_old", "debug_verbs", "decls_repository", "default_material_composition", @@ -1884,8 +1852,6 @@ "evacuation_controller", "explosion_in_progress", "explosion_turfs", - "failed_db_connections", - "failed_old_db_connections", "failed_unit_tests", "file_uid", "fileaccess_timer", @@ -2022,7 +1988,6 @@ "req_console_supplies", "responsive_carriers", "revdata", - "robot_custom_icons", "robot_hud_colours", "robot_inventory", "round_progressing", diff --git a/code/_helpers/logging.dm b/code/_helpers/logging.dm index d047144924..c418cdaca9 100644 --- a/code/_helpers/logging.dm +++ b/code/_helpers/logging.dm @@ -130,9 +130,16 @@ if(config.log_world_output) game_log("DD_OUTPUT", text) -#ifdef REFERENCE_TRACKING_LOG +#if defined(REFERENCE_TRACKING_LOG_APART) +#define log_reftracker(msg) log_harddel("## REF SEARCH [msg]") + +/proc/log_harddel(text) + to_file(GLOB.harddel_log, text) + +#elif defined(REFERENCE_TRACKING) // Doing it locally #define log_reftracker(msg) log_world("## REF SEARCH [msg]") -#else + +#else //Not tracking at all #define log_reftracker(msg) #endif diff --git a/code/_helpers/text.dm b/code/_helpers/text.dm index a1a27fc831..55c94d5cf1 100644 --- a/code/_helpers/text.dm +++ b/code/_helpers/text.dm @@ -13,11 +13,6 @@ * SQL sanitization */ -// Run all strings to be used in an SQL query through this proc first to properly escape out injection attempts. -/proc/sanitizeSQL(t as text) - var/sqltext = dbcon.Quote(t); - return copytext_char(sqltext, 2, length(sqltext));//Quote() adds quotes around input, we already do that - // Adds a prefix to the table parameter, used in SQL to unify all tables under a common prefix, i.e. "tegu__[tablename]" /proc/format_table_name(table as text) return "" + table // TODO: Remove hardcoded table prefix, make config entry instead diff --git a/code/_helpers/turfs.dm b/code/_helpers/turfs.dm index 74423336bc..ff97e3b893 100644 --- a/code/_helpers/turfs.dm +++ b/code/_helpers/turfs.dm @@ -44,18 +44,26 @@ if(turfs.len) return pick(turfs) -/proc/screen_loc2turf(text, turf/origin) - if(!origin) +///Returns a turf based on text inputs, original turf and viewing client +/proc/parse_caught_click_modifiers(list/modifiers, turf/origin, client/viewing_client) + if(!modifiers) return null - var/tZ = splittext(text, ",") - var/tX = splittext(tZ[1], "-") - var/tY = text2num(tX[2]) - tX = splittext(tZ[2], "-") - tX = text2num(tX[2]) - tZ = origin.z - tX = max(1, min(origin.x + 7 - tX, world.maxx)) - tY = max(1, min(origin.y + 7 - tY, world.maxy)) - return locate(tX, tY, tZ) + + var/screen_loc = splittext(LAZYACCESS(modifiers, SCREEN_LOC), ",") + var/list/actual_view = getviewsize(viewing_client ? viewing_client.view : world.view) + var/click_turf_x = splittext(screen_loc[1], ":") + var/click_turf_y = splittext(screen_loc[2], ":") + var/click_turf_z = origin.z + + var/click_turf_px = text2num(click_turf_x[2]) + var/click_turf_py = text2num(click_turf_y[2]) + click_turf_x = origin.x + text2num(click_turf_x[1]) - round(actual_view[1] / 2) - 1 + click_turf_y = origin.y + text2num(click_turf_y[1]) - round(actual_view[2] / 2) - 1 + + var/turf/click_turf = locate(clamp(click_turf_x, 1, world.maxx), clamp(click_turf_y, 1, world.maxy), click_turf_z) + LAZYSET(modifiers, ICON_X, "[(click_turf_px - click_turf.pixel_x) + ((click_turf_x - click_turf.x) * world.icon_size)]") + LAZYSET(modifiers, ICON_Y, "[(click_turf_py - click_turf.pixel_y) + ((click_turf_y - click_turf.y) * world.icon_size)]") + return click_turf /* Z-level Helpers diff --git a/code/_helpers/unsorted.dm b/code/_helpers/unsorted.dm index d44855b6f1..f07655a9e2 100644 --- a/code/_helpers/unsorted.dm +++ b/code/_helpers/unsorted.dm @@ -871,6 +871,24 @@ Turf and target are seperate in case you want to teleport some distance from a t mobs += M return mobs +///ultra range (no limitations on distance, faster than range for distances > 8); including areas drastically decreases performance +/proc/urange(dist = 0, atom/center = usr, orange = FALSE, areas = FALSE) + if(!dist) + if(!orange) + return list(center) + else + return list() + + var/list/turfs = RANGE_TURFS(center, dist) + if(orange) + turfs -= get_turf(center) + . = list() + for(var/turf/checked_turf as anything in turfs) + . += checked_turf + . += checked_turf.contents + if(areas) + . |= checked_turf.loc + //similar function to range(), but with no limitations on the distance; will search spiralling outwards from the center /proc/spiral_range(dist=0, center=usr, orange=0) var/list/L = list() diff --git a/code/_helpers/view.dm b/code/_helpers/view.dm new file mode 100644 index 0000000000..14689e42e1 --- /dev/null +++ b/code/_helpers/view.dm @@ -0,0 +1,15 @@ +/proc/getviewsize(view) + if(!view) // Just to avoid any runtimes that could otherwise cause constant disconnect loops. + view = world.view + + if(isnum(view)) + var/totalviewrange = (view < 0 ? -1 : 1) + 2 * view + return list(totalviewrange, totalviewrange) + else + var/list/viewrangelist = splittext(view, "x") + return list(text2num(viewrangelist[1]), text2num(viewrangelist[2])) + +/proc/getScreenSize(widescreen) + if(widescreen) + return config.default_view + return config.default_view_square diff --git a/code/_onclick/click.dm b/code/_onclick/click.dm index 3a252d3937..d5617ba6ef 100644 --- a/code/_onclick/click.dm +++ b/code/_onclick/click.dm @@ -314,7 +314,8 @@ /mob/observer/ghost/TurfAdjacent(turf/T) if(!isturf(loc) || !client) return FALSE - return z == T.z && (get_dist(loc, T) <= client.view) + var/screen_view = getviewsize(client.view) + return z == T.z && (get_dist(loc, T) <= max(screen_view[1], screen_view[2])) /* Control+Shift click @@ -393,50 +394,69 @@ return FALSE // Simple helper to face what you clicked on, in case it should be needed in more than one place -/mob/proc/face_atom(atom/A) - if(!A || !x || !y || !A.x || !A.y) return - var/dx = A.x - x - var/dy = A.y - y - if(!dx && !dy) return +/mob/proc/face_atom(atom/atom_to_face) + if(stat != CONSCIOUS || !canface() || moving || (buckled && !buckled.buckle_movable) || !x || !y || !atom_to_face.x || !atom_to_face.y) + return + + var/dx = atom_to_face.x - x + var/dy = atom_to_face.y - y + if(!dx && !dy) // Wall items are graphically shifted but on the floor + if(atom_to_face.pixel_y > 16) + setDir(NORTH) + else if(atom_to_face.pixel_y < -16) + setDir(SOUTH) + else if(atom_to_face.pixel_x > 16) + setDir(EAST) + else if(atom_to_face.pixel_x < -16) + setDir(WEST) + SetMoveCooldown(movement_delay()) + return - var/direction if(abs(dx) < abs(dy)) - if(dy > 0) direction = NORTH - else direction = SOUTH + if(dy > 0) + setDir(NORTH) + else + setDir(SOUTH) else - if(dx > 0) direction = EAST - else direction = WEST - if(direction != dir) - facedir(direction) - -GLOBAL_LIST_INIT(click_catchers, create_click_catcher()) + if(dx > 0) + setDir(EAST) + else + setDir(WEST) + SetMoveCooldown(movement_delay()) /atom/movable/screen/click_catcher icon = 'icons/mob/screen_gen.dmi' - icon_state = "click_catcher" + icon_state = "catcher" plane = CLICKCATCHER_PLANE mouse_opacity = MOUSE_OPACITY_OPAQUE - screen_loc = "CENTER-7,CENTER-7" - -/atom/movable/screen/click_catcher/Destroy() - SHOULD_CALL_PARENT(FALSE) - return QDEL_HINT_LETMELIVE - -/proc/create_click_catcher() - . = list() - for(var/i = 0, i<15, i++) - for(var/j = 0, j<15, j++) - var/atom/movable/screen/click_catcher/CC = new() - CC.screen_loc = "NORTH-[i],EAST-[j]" - . += CC + screen_loc = "CENTER" + +#define MAX_SAFE_BYOND_ICON_SCALE_PX (33 * 32) //Not using world.icon_size on purpose. +#define MAX_SAFE_BYOND_ICON_SCALE_TILES (MAX_SAFE_BYOND_ICON_SCALE_PX / world.icon_size) + +/atom/movable/screen/click_catcher/proc/UpdateGreed(view_size_x = 15, view_size_y = 15) + var/icon/newicon = icon('icons/mob/screen_gen.dmi', "catcher") + var/ox = min(MAX_SAFE_BYOND_ICON_SCALE_TILES, view_size_x) + var/oy = min(MAX_SAFE_BYOND_ICON_SCALE_TILES, view_size_y) + var/px = view_size_x * world.icon_size + var/py = view_size_y * world.icon_size + var/sx = min(MAX_SAFE_BYOND_ICON_SCALE_PX, px) + var/sy = min(MAX_SAFE_BYOND_ICON_SCALE_PX, py) + newicon.Scale(sx, sy) + icon = newicon + screen_loc = "CENTER-[(ox-1)*0.5],CENTER-[(oy-1)*0.5]" + var/matrix/M = new + M.Scale(px/sx, py/sy) + transform = M /atom/movable/screen/click_catcher/Click(location, control, params) var/list/modifiers = params2list(params) - if(modifiers["middle"] && istype(usr, /mob/living/carbon)) + if(LAZYACCESS(modifiers, MIDDLE_CLICK) && iscarbon(usr)) var/mob/living/carbon/C = usr C.swap_hand() else - var/turf/T = screen_loc2turf(screen_loc, get_turf(usr)) - if(T) - T.Click(location, control, params) + var/turf/click_turf = parse_caught_click_modifiers(modifiers, get_turf(usr.client ? usr.client.eye : usr), usr.client) + if (click_turf) + modifiers["catcher"] = TRUE + click_turf.Click(click_turf, control, list2params(modifiers)) . = 1 diff --git a/code/_onclick/hud/_defines.dm b/code/_onclick/hud/_defines.dm index ee6aa5daaf..6f189d1447 100644 --- a/code/_onclick/hud/_defines.dm +++ b/code/_onclick/hud/_defines.dm @@ -19,9 +19,9 @@ #define ui_inventory "WEST:6,SOUTH:5" //Lower center, persistant menu -#define ui_sstore1 "WEST+2:10,SOUTH:5" -#define ui_id "WEST+3:12,SOUTH:5" -#define ui_belt "WEST+4:14,SOUTH:5" +#define ui_sstore1 "CENTER-5:10,SOUTH:5" +#define ui_id "CENTER-4:12,SOUTH:5" +#define ui_belt "CENTER-3:14,SOUTH:5" #define ui_back "CENTER-2:14,SOUTH:5" #define ui_rhand "CENTER-1:16,SOUTH:5" #define ui_lhand "CENTER:16,SOUTH:5" diff --git a/code/_onclick/hud/fullscreen.dm b/code/_onclick/hud/fullscreen.dm index e5a346a9c1..e7c2e9d953 100644 --- a/code/_onclick/hud/fullscreen.dm +++ b/code/_onclick/hud/fullscreen.dm @@ -7,23 +7,18 @@ /mob/proc/overlay_fullscreen(category, type, severity) var/atom/movable/screen/fullscreen/screen = screens[category] - - if(screen) - if(screen.type != type) - clear_fullscreen(category, FALSE) - screen = null - else if(!severity || severity == screen.severity) - return null - - if(!screen) - screen = new type() + if(!screen || screen.type != type) + clear_fullscreen(category, FALSE) + screens[category] = screen = new type() + else if((!severity || severity == screen.severity) && (!client || screen.screen_loc != "CENTER-7,CENTER-7" || screen.view == client.view)) + return screen screen.icon_state = "[initial(screen.icon_state)][severity]" screen.severity = severity - - screens[category] = screen if(client && (stat != DEAD || screen.allstate)) + screen.update_for_view(client.view) client.screen += screen + return screen /mob/proc/clear_fullscreen(category, animated = 1 SECOND) @@ -33,18 +28,19 @@ screens -= category - if(animated) - spawn(0) - animate(screen, alpha = 0, time = animated) - sleep(animated) - if(client) - client.screen -= screen - qdel(screen) + if(!QDELETED(src) && animated) + animate(screen, alpha = 0, time = animated) + addtimer(CALLBACK(src, PROC_REF(clear_fullscreen_after_animate), screen), animated, TIMER_CLIENT_TIME) else if(client) client.screen -= screen qdel(screen) +/mob/proc/clear_fullscreen_after_animate(atom/movable/screen/fullscreen/screen) + if(client) + client.screen -= screen + qdel(screen) + /mob/proc/clear_fullscreens() for(var/category in screens) clear_fullscreen(category) @@ -56,8 +52,11 @@ /mob/proc/reload_fullscreen() if(client) + var/atom/movable/screen/fullscreen/screen for(var/category in screens) - client.screen |= screens[category] + screen = screens[category] + screen.update_for_view(client.view) + client.screen |= screen /atom/movable/screen/fullscreen icon = 'icons/mob/screen_full.dmi' @@ -65,9 +64,16 @@ screen_loc = "CENTER-7,CENTER-7" plane = FULLSCREEN_PLANE mouse_opacity = MOUSE_OPACITY_TRANSPARENT + var/view var/severity = 0 var/allstate = 0 //shows if it should show up for dead people too +/atom/movable/screen/fullscreen/proc/update_for_view(client_view) + if (screen_loc == "CENTER-7,CENTER-7" && view != client_view) + var/list/actualview = getviewsize(client_view) + view = client_view + transform = matrix(actualview[1] / 15, 0, 0, 0, actualview[2] / 15, 0) + /atom/movable/screen/fullscreen/Destroy() severity = 0 return ..() diff --git a/code/_onclick/hud/global_hud.dm b/code/_onclick/hud/global_hud.dm index 0ab658f589..ba5f547843 100644 --- a/code/_onclick/hud/global_hud.dm +++ b/code/_onclick/hud/global_hud.dm @@ -6,29 +6,9 @@ GLOBAL_DATUM_INIT(global_hud, /datum/global_hud, new()) /datum/global_hud - var/atom/movable/screen/nvg - var/atom/movable/screen/scramble - var/atom/movable/screen/thermal - var/atom/movable/screen/meson - var/atom/movable/screen/science var/atom/movable/screen/holomap -/datum/global_hud/proc/setup_overlay(icon_state) - var/atom/movable/screen/screen = new /atom/movable/screen() - screen.screen_loc = "1,1" - screen.icon = 'icons/obj/hud_full.dmi' - screen.icon_state = icon_state - screen.mouse_opacity = MOUSE_OPACITY_TRANSPARENT - - return screen - /datum/global_hud/New() - nvg = setup_overlay("nvg_hud") - scramble = setup_overlay("scramble_hud") - thermal = setup_overlay("thermal_hud") - meson = setup_overlay("meson_hud") - science = setup_overlay("science_hud") - //Holomap screen object is invisible and work //By setting it as n images location, without icon changes //Make it part of global hud since it's inmutable @@ -38,3 +18,21 @@ GLOBAL_DATUM_INIT(global_hud, /datum/global_hud, new()) holomap.layer = HUD_BASE_LAYER holomap.screen_loc = UI_HOLOMAP holomap.mouse_opacity = MOUSE_OPACITY_TRANSPARENT + +/atom/movable/screen/fullscreen/hud + icon = 'icons/obj/hud_full.dmi' + +/atom/movable/screen/fullscreen/hud/nvg + icon_state = "nvg_hud" + +/atom/movable/screen/fullscreen/hud/scramble + icon_state = "scramble_hud" + +/atom/movable/screen/fullscreen/hud/thermal + icon_state = "thermal_hud" + +/atom/movable/screen/fullscreen/hud/meson + icon_state = "meson_hud" + +/atom/movable/screen/fullscreen/hud/science + icon_state = "science_hud" diff --git a/code/_onclick/hud/hud.dm b/code/_onclick/hud/hud.dm index b7e859c099..bd094b829c 100644 --- a/code/_onclick/hud/hud.dm +++ b/code/_onclick/hud/hud.dm @@ -19,6 +19,8 @@ InitializePlanes() /mob/proc/InitializePlanes() + if(!client) + return if(length(effects_planemasters)) for(var/i in effects_planemasters) client.screen += effects_planemasters["[i]"] @@ -201,7 +203,7 @@ var/ui_color = mymob.client.prefs.UI_style_color var/ui_alpha = mymob.client.prefs.UI_style_alpha - + mymob.reload_fullscreen() FinalizeInstantiation(ui_style, ui_color, ui_alpha) /datum/hud/proc/FinalizeInstantiation(ui_style, ui_color, ui_alpha) @@ -221,8 +223,7 @@ return if(!client) return - if(client.view != world.view) - return + if(!client.has_default_view()) return if(hud_used.hud_shown) hud_used.hud_shown = 0 if(src.hud_used.adding) @@ -306,12 +307,6 @@ hud_used.persistant_inventory_update() update_action_buttons() -/mob/proc/add_click_catcher() - client.screen |= GLOB.click_catchers - -/mob/new_player/add_click_catcher() - return - /atom/movable/screen/stamina name = "stamina" icon = 'icons/hud/progressbar.dmi' diff --git a/code/_onclick/hud/human.dm b/code/_onclick/hud/human.dm index b580b8e652..8835df2bae 100644 --- a/code/_onclick/hud/human.dm +++ b/code/_onclick/hud/human.dm @@ -33,7 +33,7 @@ inv_box.alpha = ui_alpha var/list/slot_data = hud_data.gear[gear_slot] - inv_box.SetName(gear_slot) + inv_box.SetName(slot_data["name"]) inv_box.screen_loc = slot_data["loc"] inv_box.slot_id = slot_data["slot"] inv_box.icon_state = slot_data["state"] @@ -69,7 +69,7 @@ if(hud_data.has_m_intent) using = new /atom/movable/screen/movement() - using.SetName("movement method") + using.SetName("Movement Method") using.icon = ui_style using.icon_state = mymob.move_intent.hud_icon_state using.screen_loc = ui_movi @@ -331,10 +331,9 @@ if(ishuman(mymob)) var/mob/living/carbon/human/H = mymob - H.fov = new /atom/movable/screen/fov() + H.fov = new /atom/movable/screen/fov(null, H.client.view) + H.fov_mask = new /atom/movable/screen/fov/fov_mask(null, H.client.view) hud_elements |= H.fov - - H.fov_mask = new /atom/movable/screen/fov_mask() hud_elements |= H.fov_mask mymob.client.screen = list() diff --git a/code/_onclick/hud/movable_screen_objects.dm b/code/_onclick/hud/movable_screen_objects.dm index f4254c9afe..d500456ed7 100644 --- a/code/_onclick/hud/movable_screen_objects.dm +++ b/code/_onclick/hud/movable_screen_objects.dm @@ -45,7 +45,8 @@ screen_loc = "[screen_loc_X[1]]:[pix_X],[screen_loc_Y[1]]:[pix_Y]" /atom/movable/screen/movable/proc/encode_screen_X(X, mob/viewer) - var/view = viewer.client ? viewer.client.view : world.view + var/view = getviewsize(viewer.client ? viewer.client.view : world.view) + view = view[1] if(X > view+1) . = "EAST-[view*2 + 1-X]" else if(X < view+1) @@ -54,7 +55,8 @@ . = "CENTER" /atom/movable/screen/movable/proc/decode_screen_X(X, mob/viewer) - var/view = viewer.client ? viewer.client.view : world.view + var/view = getviewsize(viewer.client ? viewer.client.view : world.view) + view = view[1] //Find EAST/WEST implementations if(findtext(X,"EAST-")) var/num = text2num(copytext(X,6)) //Trim EAST- @@ -70,16 +72,18 @@ . = view+1 /atom/movable/screen/movable/proc/encode_screen_Y(Y, mob/viewer) - var/view = viewer.client ? viewer.client.view : world.view + var/view = getviewsize(viewer.client ? viewer.client.view : world.view) + view = view[2] if(Y > view+1) . = "NORTH-[view*2 + 1-Y]" - else if(Y < viewer.client.view+1) + else if(Y < view+1) . = "SOUTH+[Y-1]" else . = "CENTER" /atom/movable/screen/movable/proc/decode_screen_Y(Y, mob/viewer) - var/view = viewer.client ? viewer.client.view : world.view + var/view = getviewsize(viewer.client ? viewer.client.view : world.view) + view = view[2] if(findtext(Y,"NORTH-")) var/num = text2num(copytext(Y,7)) //Trim NORTH- if(!num) diff --git a/code/_onclick/hud/screen_objects.dm b/code/_onclick/hud/screen_objects.dm index 60e9fb2723..7be5484ade 100644 --- a/code/_onclick/hud/screen_objects.dm +++ b/code/_onclick/hud/screen_objects.dm @@ -159,7 +159,7 @@ add_overlay(image('icons/mob/zone_sel.dmi', "[selecting]")) /atom/movable/screen/intent - name = "intent" + name = "Intents" icon = 'icons/mob/screen1_White.dmi' icon_state = "intent_help" screen_loc = ui_acti @@ -395,8 +395,25 @@ screen_loc = "1,1" mouse_opacity = MOUSE_OPACITY_TRANSPARENT plane = VISION_CONE_PLANE + var/view -/atom/movable/screen/fov_mask +/atom/movable/screen/fov/New(loc, size) + ..() + update_size(size) + +/atom/movable/screen/fov/proc/update_size(size) + if(view == size) + return + view = size + + // Unfortunately, our vision cone icon is from the southwest of screen. + // This causes us to have to translate it (not just scale) unlike other fullscreen overlays. + var/list/actual_size = getviewsize(size) + var/x_translation = (actual_size[1] - 15) * world.icon_size / 2 + var/y_translation = (actual_size[2] - 15) * world.icon_size / 2 + transform = matrix(actual_size[1] / 15, 0, x_translation, 0, actual_size[2] / 15, y_translation) + +/atom/movable/screen/fov/fov_mask icon = 'icons/mob/hide.dmi' icon_state = "combat_mask_alt" screen_loc = "1,1" diff --git a/code/_onclick/hud/skybox.dm b/code/_onclick/hud/skybox.dm index bae712d1ec..c4d762542b 100644 --- a/code/_onclick/hud/skybox.dm +++ b/code/_onclick/hud/skybox.dm @@ -1,32 +1,67 @@ +var/global/const/SKYBOX_DIMENSION = 736 // Largest measurement for icon sides, used for offsets/scaling /obj/skybox name = "skybox" mouse_opacity = MOUSE_OPACITY_TRANSPARENT anchored = TRUE simulated = FALSE - screen_loc = "CENTER:-224,CENTER:-224" + screen_loc = "CENTER,CENTER" plane = SKYBOX_PLANE blend_mode = BLEND_MULTIPLY + var/static/max_view_dim + var/static/const/parallax_bleed_percent = 0.2 // 20% parallax offset when going from x=1 to x=max /client var/obj/skybox/skybox +/client/proc/set_skybox_offsets(x_dim, y_dim) + if(!skybox) + update_skybox(TRUE) + return + var/scale_value = 1 + if(isnum(view)) + var/target_icon_size = (view * 2 + 1) * world.icon_size + scale_value = skybox.parallax_bleed_percent + max((target_icon_size / SKYBOX_DIMENSION), 1) + skybox.screen_loc = "CENTER:-[view * world.icon_size],CENTER:-[view * world.icon_size]" + else + var/target_icon_size = max(x_dim, y_dim) * world.icon_size + scale_value = skybox.parallax_bleed_percent + max((target_icon_size / SKYBOX_DIMENSION), 1) + skybox.screen_loc = "CENTER:-[round(SKYBOX_DIMENSION * scale_value / 2)],CENTER:-[round(SKYBOX_DIMENSION * scale_value / 2)]" + + skybox.transform = matrix(x_dim / 15, 0, 0, 0, y_dim / 15, 0) + update_skybox() + /client/proc/update_skybox(rebuild) + var/turf/T = get_turf(eye) + if(!T) + return + if(!skybox) skybox = new() screen += skybox - rebuild = 1 + rebuild = TRUE - var/turf/T = get_turf(eye) - if(T) - if(rebuild) - skybox.cut_overlays() - skybox.add_overlay(SSskybox.get_skybox(T.z)) - screen |= skybox - skybox.screen_loc = "CENTER:[-224 - T.x],CENTER:[-224 - T.y]" + if(rebuild) + skybox.overlays.Cut() + var/image/I = SSskybox.get_skybox(T.z) + skybox.overlays += I + screen |= skybox + + var/view_size = getviewsize(view) + set_skybox_offsets(view_size[1], view_size[2]) + return + + if(skybox.parallax_bleed_percent > 0) + var/matrix/M = matrix() + var/view_size = getviewsize(view) + var/x_translate = -((T.x/world.maxx)-0.5) * skybox.parallax_bleed_percent * SKYBOX_DIMENSION + var/y_translate = -((T.y/world.maxy)-0.5) * skybox.parallax_bleed_percent * SKYBOX_DIMENSION + M.Translate(x_translate, y_translate) + M.Scale(view_size[1] / 15, view_size[2] / 15) + skybox.transform = M /mob/Login() ..() - client.update_skybox(1) + client.update_skybox(TRUE) /mob/Move() var/old_z = get_z(src) diff --git a/code/_spaceman_dmm.dm b/code/_spaceman_dmm.dm index dc35e07ca7..fb9ba44269 100644 --- a/code/_spaceman_dmm.dm +++ b/code/_spaceman_dmm.dm @@ -1,32 +1,77 @@ -/** -* SpacemanDMM dreamchecker extensions for suite 1.9 -* -*/ +// Interfaces for the SpacemanDMM linter, define'd to nothing when the linter +// is not in use. +// For suite version 1.9. // The SPACEMAN_DMM define is set by the linter and other tooling when it runs. #ifdef SPACEMAN_DMM + /** + * Sets a return type expression for a proc. The return type can take the forms: + + * `/typepath` - a raw typepath. The return type of the proc is the type named. + + * `param` - a typepath given as a parameter, for procs which return an instance of the passed-in type. + + * `param.type` - the static type of a passed-in parameter, for procs which + * return their input or otherwise another value of the same type. + + * `param[_].type` - the static type of a passed-in parameter, with one level + * of `/list` stripped, for procs which select one item from a list. The `[_]` + * may be repeated to strip more levels of `/list`. + */ #define RETURN_TYPE(X) set SpacemanDMM_return_type = X + /** + * If set, will enable a diagnostic on children of the proc it is set on which do + * not contain any `..()` parent calls. This can help with finding situations + * where a signal or other important handling in the parent proc is being skipped. + * Child procs may set this setting to `0` instead to override the check. + */ #define SHOULD_CALL_PARENT(X) set SpacemanDMM_should_call_parent = X - #define UNLINT(X) SpacemanDMM_unlint(X) + /** + * If set, raise a warning for any child procs that override this one, + * regardless of if it calls parent or not. + * This functions in a similar way to the `final` keyword in some languages. + * This cannot be disabled by child overrides. + */ #define SHOULD_NOT_OVERRIDE(X) set SpacemanDMM_should_not_override = X + /** + * If set, raise a warning if the proc or one of the sub-procs it calls + * uses a blocking call, such as `sleep()` or `input()` without using `set waitfor = 0` + * This cannot be disabled by child overrides. + */ #define SHOULD_NOT_SLEEP(X) set SpacemanDMM_should_not_sleep = X + /** + * If set, ensure a proc is 'pure', such that it does not make any changes + * outside itself or output. This also checks to make sure anything using + * this proc doesn't invoke it without making use of the return value. + * This cannot be disabled by child overrides. + */ #define SHOULD_BE_PURE(X) set SpacemanDMM_should_be_pure = X + ///Private procs can only be called by things of exactly the same type. #define PRIVATE_PROC(X) set SpacemanDMM_private_proc = X + ///Protected procs can only be call by things of the same type *or subtypes*. #define PROTECTED_PROC(X) set SpacemanDMM_protected_proc = X + ///If set, will not lint. + #define UNLINT(X) SpacemanDMM_unlint(X) + //If set, allows multiple definitions of a proc at the same typepath without raising a warning. #define CAN_BE_REDEFINED(X) set SpacemanDMM_can_be_redefined = X + + ///If set, overriding their value isn't permitted by types that inherit it. #define VAR_FINAL var/SpacemanDMM_final + ///Private vars can only be called by things of exactly the same type. #define VAR_PRIVATE var/SpacemanDMM_private + ///Protected vars can only be called by things of the same type *or subtypes*. #define VAR_PROTECTED var/SpacemanDMM_protected #else #define RETURN_TYPE(X) #define SHOULD_CALL_PARENT(X) - #define UNLINT(X) X #define SHOULD_NOT_OVERRIDE(X) #define SHOULD_NOT_SLEEP(X) #define SHOULD_BE_PURE(X) #define PRIVATE_PROC(X) #define PROTECTED_PROC(X) + #define UNLINT(X) X #define CAN_BE_REDEFINED(X) + #define VAR_FINAL var #define VAR_PRIVATE var #define VAR_PROTECTED var diff --git a/code/controllers/configuration.dm b/code/controllers/configuration.dm index 9b94a449af..cc4ab879cd 100644 --- a/code/controllers/configuration.dm +++ b/code/controllers/configuration.dm @@ -246,6 +246,9 @@ var/list/gamemode_cache = list() var/use_timelocks = FALSE + var/default_view = "19x15" + var/default_view_square = "15x15" + /* Cross-communications */ var/comms_key = null var/cross_comms_name = null @@ -536,6 +539,12 @@ var/list/gamemode_cache = list() if ("use_timelocks") config.use_timelocks = 1 + if("default_view") + config.default_view = value + + if("default_view_square") + config.default_view_square = value + if ("objectives_disabled") if(!value) log_misc("Could not find value for objectives_disabled in configuration.") diff --git a/code/controllers/subsystems/garbage.dm b/code/controllers/subsystems/garbage.dm index e144d666de..76d6a2c5e7 100644 --- a/code/controllers/subsystems/garbage.dm +++ b/code/controllers/subsystems/garbage.dm @@ -30,13 +30,7 @@ SUBSYSTEM_DEF(garbage) /datum/controller/subsystem/garbage/PreInit() - queues = new(GC_QUEUE_COUNT) - pass_counts = new(GC_QUEUE_COUNT) - fail_counts = new(GC_QUEUE_COUNT) - for(var/i in 1 to GC_QUEUE_COUNT) - queues[i] = list() - pass_counts[i] = 0 - fail_counts[i] = 0 + InitQueues() /datum/controller/subsystem/garbage/stat_entry(msg) var/list/counts = list() @@ -102,6 +96,16 @@ SUBSYSTEM_DEF(garbage) state = SS_RUNNING break +/datum/controller/subsystem/garbage/proc/InitQueues() + if (isnull(queues)) // Only init the queues if they don't already exist, prevents overriding of recovered lists + queues = new(GC_QUEUE_COUNT) + pass_counts = new(GC_QUEUE_COUNT) + fail_counts = new(GC_QUEUE_COUNT) + for(var/i in 1 to GC_QUEUE_COUNT) + queues[i] = list() + pass_counts[i] = 0 + fail_counts[i] = 0 + /datum/controller/subsystem/garbage/proc/HandleQueue(level = GC_QUEUE_CHECK) if (level == GC_QUEUE_CHECK) delslasttick = 0 @@ -118,6 +122,9 @@ SUBSYSTEM_DEF(garbage) lastlevel = level +// 1 from the hard reference in the queue, and 1 from the variable used before this +#define REFS_WE_EXPECT 2 + //We do this rather then for(var/refID in queue) because that sort of for loop copies the whole list. //Normally this isn't expensive, but the gc queue can grow to 40k items, and that gets costly/causes overrun. for (var/i in 1 to length(queue)) @@ -131,17 +138,17 @@ SUBSYSTEM_DEF(garbage) var/GCd_at_time = L[1] if(GCd_at_time > cut_off_time) break // Everything else is newer, skip them + count++ - var/refID = L[2] - var/datum/D - D = locate(refID) + var/datum/D = L[2] - if (!D || D.gc_destroyed != GCd_at_time) // So if something else coincidently gets the same ref, it's not deleted by mistake + // If that's all we've got, send er off + if (refcount(D) == REFS_WE_EXPECT) // So if something else coincidently gets the same ref, it's not deleted by mistake ++gcedlasttick ++totalgcs pass_counts[level]++ #ifdef REFERENCE_TRACKING - reference_find_on_fail -= refID //It's deleted we don't care anymore. + reference_find_on_fail -= ref(D) //It's deleted we don't care anymore. #endif if (MC_TICK_CHECK) return @@ -157,15 +164,18 @@ SUBSYSTEM_DEF(garbage) switch (level) if (GC_QUEUE_CHECK) #ifdef REFERENCE_TRACKING - if(reference_find_on_fail[refID]) - INVOKE_ASYNC(D, TYPE_PROC_REF(/datum, find_references)) + // Decides how many refs to look for (potentially) + // Based off the remaining and the ones we can account for + var/remaining_refs = refcount(D) - REFS_WE_EXPECT + if(reference_find_on_fail[ref(D)]) + INVOKE_ASYNC(D, TYPE_PROC_REF(/datum, find_references), remaining_refs) ref_searching = TRUE #ifdef GC_FAILURE_HARD_LOOKUP else - INVOKE_ASYNC(D, TYPE_PROC_REF(/datum, find_references)) + INVOKE_ASYNC(D, TYPE_PROC_REF(/datum, find_references), remaining_refs) ref_searching = TRUE #endif - reference_find_on_fail -= refID + reference_find_on_fail -= ref(D) #endif var/type = D.type var/datum/qdel_item/I = items[type] @@ -204,19 +214,21 @@ SUBSYSTEM_DEF(garbage) queue.Cut(1,count+1) count = 0 +#undef REFS_WE_EXPECT + /datum/controller/subsystem/garbage/proc/Queue(datum/D, level = GC_QUEUE_CHECK) if (isnull(D)) return if (level > GC_QUEUE_COUNT) HardDelete(D) return - var/gctime = world.time - var/refid = "\ref[D]" + var/queue_time = world.time - D.gc_destroyed = gctime - var/list/queue = queues[level] + if (D.gc_destroyed <= 0) + D.gc_destroyed = queue_time - queue[++queue.len] = list(gctime, refid) // not += for byond reasons + var/list/queue = queues[level] + queue[++queue.len] = list(queue_time, D) // not += for byond reasons //this is mainly to separate things profile wise. /datum/controller/subsystem/garbage/proc/HardDelete(datum/D) @@ -253,6 +265,7 @@ SUBSYSTEM_DEF(garbage) I.qdel_flags |= QDEL_ITEM_SUSPENDED_FOR_LAG /datum/controller/subsystem/garbage/Recover() + InitQueues() if (istype(SSgarbage.queues)) for (var/i in 1 to SSgarbage.queues.len) queues[i] |= SSgarbage.queues[i] @@ -333,7 +346,7 @@ SUBSYSTEM_DEF(garbage) #ifdef REFERENCE_TRACKING if (QDEL_HINT_FINDREFERENCE) //qdel will, if REFERENCE_TRACKING is enabled, display all references to this object, then queue the object for deletion. SSgarbage.Queue(D) - D.find_references() + INVOKE_ASYNC(D, TYPE_PROC_REF(/datum, find_references)) if (QDEL_HINT_IFFAIL_FINDREFERENCE) //qdel will, if REFERENCE_TRACKING is enabled and the object fails to collect, display all references to this object. SSgarbage.Queue(D) SSgarbage.reference_find_on_fail["\ref[D]"] = TRUE diff --git a/code/controllers/subsystems/initialization/customitems.dm b/code/controllers/subsystems/initialization/customitems.dm deleted file mode 100644 index 1f1c6134d3..0000000000 --- a/code/controllers/subsystems/initialization/customitems.dm +++ /dev/null @@ -1,127 +0,0 @@ -SUBSYSTEM_DEF(customitems) - name = "Custom Items" - flags = SS_NO_FIRE - init_order = SS_INIT_MISC_LATE - - var/list/custom_items_by_ckey = list() - var/list/item_states = list() - var/list/mob_states = list() - -/datum/controller/subsystem/customitems/Initialize() - - item_states = icon_states(CUSTOM_ITEM_OBJ) - mob_states = icon_states(CUSTOM_ITEM_MOB) - - if(!fexists(CUSTOM_ITEM_CONFIG)) - report_progress("Custom item directory [CUSTOM_ITEM_CONFIG] does not exist, no custom items will be loaded.") - return - - var/dir_count = -1 - var/item_count = 0 - var/list/directories_to_check = list(CUSTOM_ITEM_CONFIG) - while(length(directories_to_check)) - var/checkdir = directories_to_check[1] - directories_to_check -= checkdir - if(checkdir == "[CUSTOM_ITEM_CONFIG]examples/") - continue - for(var/checkfile in flist(checkdir)) - checkfile = "[checkdir][checkfile]" - if(copytext(checkfile, -1) == "/") - directories_to_check += checkfile - dir_count++ - else if(copytext(checkfile, -5) == ".json") - try - var/datum/custom_item/citem = new(json_decode(file2text(checkfile))) - var/result = citem.validate() - if(result) - crash_with("Invalid custom item [checkfile]: [result]") - else - LAZYOR(custom_items_by_ckey[citem.ckey], citem) - item_count++ - catch(var/exception/e) - crash_with("Exception loading custom item [checkfile]: [e] on [e.file]:[e.line]") - - report_progress("Loaded [item_count] custom item\s from [dir_count] director[dir_count == 1 ? "y" : "ies"].") - . = ..() - -// Places the item on the target mob. -/datum/controller/subsystem/customitems/proc/place_custom_item(mob/living/carbon/human/M, datum/custom_item/citem) - . = M && citem && citem.spawn_item(get_turf(M)) - if(. && !M.equip_to_appropriate_slot(.) && !M.equip_to_storage(.)) - to_chat(M, SPAN_WARNING("Your custom item, \the [.], could not be placed on your character.")) - QDEL_NULL(.) - -//gets the relevant list for the key from the listlist if it exists, check to make sure they are meant to have it and then calls the giving function -/datum/controller/subsystem/customitems/proc/equip_custom_items(mob/living/carbon/human/M) - var/list/key_list = custom_items_by_ckey[M.ckey] - if(!length(key_list)) - return - for(var/datum/custom_item/citem in key_list) - // Check for requisite ckey and character name. - if(citem.ckey != M.ckey || lowertext(citem.character_name) != lowertext(M.real_name)) - continue - // Check for required access. - var/obj/item/card/id/current_id = M.wear_id - if(length(citem.req_access) && (!istype(current_id) || !has_access(current_id.access, citem.req_access))) - continue - // Check for required job title. - if(length(citem.req_titles)) - var/check_title = M.mind.role_alt_title || M.mind.assigned_role - if(!(check_title in citem.req_titles)) - continue - - // Spawn and equip the item. - if(ispath(citem.apply_to_target_type)) - var/obj/item/existing_item = (locate(citem.apply_to_target_type) in M.get_contents()) - if(existing_item) - citem.apply_to_item(existing_item) - return - place_custom_item(M,citem) - -/datum/custom_item - var/ckey - var/character_name - var/item_icon_state - var/item_desc - var/item_name - var/item_path - var/apply_to_target_type - var/list/req_access - var/list/req_titles - var/list/additional_data - -/datum/custom_item/New(list/data) - ckey = ckey(data["ckey"]) - character_name = lowertext(data["character_name"]) - item_name = data["item_name"] - item_desc = data["item_desc"] - item_icon_state = data["item_icon_state"] - item_path = text2path(data["item_path"]) - req_access = data["req_access"] || list() - req_titles = data["req_titles"] || list() - additional_data = data["additional_data"] || list() - apply_to_target_type = text2path(data["apply_to_target_type"]) || data["apply_to_target_type"] - -/datum/custom_item/proc/validate() - if(!ispath(item_path, /obj/item)) - return SPAN_WARNING("The given item path is invalid or does not exist.") - if(apply_to_target_type && !ispath(apply_to_target_type, /obj/item)) - return SPAN_WARNING("The target item path is invalid or does not exist.") - else if(item_icon_state) - if(ispath(item_path, /obj/item/device/kit/suit)) - for(var/state in list("[item_icon_state]_suit", "[item_icon_state]_helmet")) - if(!(state in SScustomitems.item_states)) - return SPAN_WARNING("The given item icon [state] does not exist.") - if(!(state in SScustomitems.mob_states)) - return SPAN_WARNING("The given mob icon [state] does not exist.") - else - for(var/state in list(item_icon_state)) - if(!(state in SScustomitems.item_states)) - return SPAN_WARNING("The given item icon [state] does not exist.") - -/datum/custom_item/proc/spawn_item(newloc) - . = new item_path(newloc) - apply_to_item(.) - -/datum/custom_item/proc/apply_to_item(obj/item/item) - . = item.inherit_custom_item_data(src) diff --git a/code/controllers/subsystems/overlays.dm b/code/controllers/subsystems/overlays.dm index 1e25eaae1a..b585893943 100644 --- a/code/controllers/subsystems/overlays.dm +++ b/code/controllers/subsystems/overlays.dm @@ -1,191 +1,47 @@ -SUBSYSTEM_DEF(overlays) - name = "Overlay" - wait = 1 - priority = SS_PRIORITY_OVERLAY - init_order = SS_INIT_OVERLAY - runlevels = RUNLEVEL_LOBBY | RUNLEVELS_DEFAULT - - var/list/processing = list() - - var/idex = 1 - var/list/overlay_icon_state_caches = list() - var/list/overlay_icon_cache = list() - -/datum/controller/subsystem/overlays/stat_entry(msg) - .=..("[msg] Ov:[processing.len - (idex - 1)]") - -/datum/controller/subsystem/overlays/Initialize() - Flush() - . = ..() - -/datum/controller/subsystem/overlays/Recover() - overlay_icon_state_caches = SSoverlays.overlay_icon_state_caches - overlay_icon_cache = SSoverlays.overlay_icon_cache - processing = SSoverlays.processing - -/datum/controller/subsystem/overlays/fire(resumed = FALSE, mc_check = TRUE) - var/list/processing = src.processing - while(idex <= processing.len) - var/atom/thing = processing[idex++] - - if(!QDELETED(thing) && thing.overlay_queued) // Don't double-process if something already forced a compile. - thing.compile_overlays() - - if(mc_check) - if(MC_TICK_CHECK) - break - else - CHECK_TICK - - if (idex > 1) - processing.Cut(1, idex) - idex = 1 - -/datum/controller/subsystem/overlays/proc/Flush() - if(processing.len) - log_ss("overlays", "Flushing [processing.len] overlays.") - fire(mc_check = FALSE) - -/atom/proc/compile_overlays() - var/list/oo = our_overlays - var/list/po = priority_overlays - if(LAZYLEN(po) && LAZYLEN(oo)) - overlays = oo + po - else if(LAZYLEN(oo)) - overlays = oo - else if(LAZYLEN(po)) - overlays = po - else - overlays.Cut() - - overlay_queued = FALSE - /proc/iconstate2appearance(icon, iconstate) var/static/image/stringbro = new() - var/list/icon_states_cache = SSoverlays.overlay_icon_state_caches - var/list/cached_icon = icon_states_cache[icon] - if (cached_icon) - var/cached_appearance = cached_icon["[iconstate]"] - if (cached_appearance) - return cached_appearance stringbro.icon = icon stringbro.icon_state = iconstate - if (!cached_icon) //not using the macro to save an associated lookup - cached_icon = list() - icon_states_cache[icon] = cached_icon - var/cached_appearance = stringbro.appearance - cached_icon["[iconstate]"] = cached_appearance - return cached_appearance + return stringbro.appearance /proc/icon2appearance(icon) var/static/image/iconbro = new() - var/list/icon_cache = SSoverlays.overlay_icon_cache - . = icon_cache[icon] - if (!.) - iconbro.icon = icon - . = iconbro.appearance - icon_cache[icon] = . - -#define APPEARANCEIFY(origin, target) \ - if (istext(origin)) { \ - target = iconstate2appearance(icon, origin); \ - } \ - else if (isicon(origin)) { \ - target = icon2appearance(origin); \ - } \ - else { \ - appearance_bro.appearance = origin; \ - if (!ispath(origin)) { \ - appearance_bro.dir = origin.dir; \ - } \ - target = appearance_bro.appearance; \ - } - -/atom/proc/build_appearance_list(atom/new_overlays) - var/static/image/appearance_bro = new - if (islist(new_overlays)) - listclearnulls(new_overlays) - for (var/i in 1 to length(new_overlays)) - var/image/cached_overlay = new_overlays[i] - APPEARANCEIFY(cached_overlay, new_overlays[i]) - return new_overlays - else - APPEARANCEIFY(new_overlays, .) - -#undef APPEARANCEIFY -#define NOT_QUEUED_ALREADY (!(overlay_queued)) -#define QUEUE_FOR_COMPILE overlay_queued = TRUE; SSoverlays.processing += src; + iconbro.icon = icon + return iconbro.appearance + +/atom/proc/build_appearance_list(list/build_overlays) + if (!islist(build_overlays)) + build_overlays = list(build_overlays) + for (var/overlay in build_overlays) + if(!overlay) + build_overlays -= overlay + continue + if (istext(overlay)) + var/index = build_overlays.Find(overlay) + build_overlays[index] = iconstate2appearance(icon, overlay) + else if(isicon(overlay)) + var/index = build_overlays.Find(overlay) + build_overlays[index] = icon2appearance(overlay) + return build_overlays /atom/proc/cut_overlays(priority = FALSE) - var/list/cached_overlays = our_overlays - var/list/cached_priority = priority_overlays - - var/need_compile = FALSE - - if(LAZYLEN(cached_overlays)) //don't queue empty lists, don't cut priority overlays - cached_overlays.Cut() //clear regular overlays - need_compile = TRUE - - if(priority && LAZYLEN(cached_priority)) - cached_priority.Cut() - need_compile = TRUE - - if(NOT_QUEUED_ALREADY && need_compile) - QUEUE_FOR_COMPILE + overlays = null /atom/proc/cut_overlay(list/overlays_list, priority) - if(!overlays_list) + if(!overlays) return - - overlays_list = build_appearance_list(overlays_list) - - var/list/cached_overlays = our_overlays //sanic - var/list/cached_priority = priority_overlays - var/init_o_len = LAZYLEN(cached_overlays) - var/init_p_len = LAZYLEN(cached_priority) //starter pokemon - - LAZYREMOVE(cached_overlays, overlays_list) - if(priority) - LAZYREMOVE(cached_priority, overlays_list) - - if(NOT_QUEUED_ALREADY && ((init_o_len != LAZYLEN(cached_priority)) || (init_p_len != LAZYLEN(cached_overlays)))) - QUEUE_FOR_COMPILE + overlays -= build_appearance_list(overlays_list) /atom/proc/add_overlay(list/overlays_list, priority = FALSE) - if(!overlays_list) - return - - overlays_list = build_appearance_list(overlays_list) - - if (!overlays_list || (islist(overlays_list) && !overlays_list.len)) - // No point trying to compile if we don't have any overlays. + if(!overlays) return - - if(priority) - LAZYADD(priority_overlays, overlays_list) - else - LAZYADD(our_overlays, overlays_list) - - if(NOT_QUEUED_ALREADY) - QUEUE_FOR_COMPILE + overlays += build_appearance_list(overlays_list) /atom/proc/set_overlays(list/overlays_list, priority = FALSE) // Sets overlays to a list, equivalent to cut_overlays() + add_overlays(). - if (!overlays_list) + if (!overlays) return - - overlays_list = build_appearance_list(overlays_list) - - if (priority) - LAZYCLEARLIST(priority_overlays) - if (overlays_list) - LAZYADD(priority_overlays, overlays_list) - else - LAZYCLEARLIST(our_overlays) - if (overlays_list) - LAZYADD(our_overlays, overlays_list) - - if (NOT_QUEUED_ALREADY) - QUEUE_FOR_COMPILE + overlays = null + overlays += build_appearance_list(overlays_list) /atom/proc/copy_overlays(atom/other, cut_old = FALSE) //copys our_overlays from another atom if(!other) @@ -193,20 +49,14 @@ SUBSYSTEM_DEF(overlays) cut_overlays() return - var/list/cached_other = other.our_overlays - if(length(cached_other)) - if(cut_old) - LAZYCLEARLIST(our_overlays) - LAZYADD(our_overlays, cached_other) + var/list/cached_other = other.overlays.Copy() + if(cut_old) + if(cached_other) + overlays = cached_other else - LAZYOR(our_overlays, cached_other) - if(NOT_QUEUED_ALREADY) - QUEUE_FOR_COMPILE - else if(cut_old) - cut_overlays() - -#undef NOT_QUEUED_ALREADY -#undef QUEUE_FOR_COMPILE + overlays = null + else if(cached_other) + overlays += cached_other //TODO: Better solution for these? /image/proc/add_overlay(x) @@ -217,8 +67,3 @@ SUBSYSTEM_DEF(overlays) /image/proc/cut_overlays(x) overlays.Cut() - -/atom - var/tmp/list/our_overlays //our local copy of (non-priority) overlays without byond magic. Use procs in SSoverlays to manipulate - var/tmp/list/priority_overlays //overlays that should remain on top and not normally removed when using cut_overlay functions, like c4. - var/tmp/overlay_queued diff --git a/code/controllers/subsystems/statistics.dm b/code/controllers/subsystems/statistics.dm index e80cafe1ef..3a13806339 100644 --- a/code/controllers/subsystems/statistics.dm +++ b/code/controllers/subsystems/statistics.dm @@ -142,7 +142,7 @@ SUBSYSTEM_DEF(statistics) /datum/controller/subsystem/statistics/proc/report_death(mob/living/dead) - if(dead && dead.mind && dead.client) + /*if(dead && dead.mind && dead.client) var/datum/death/death = new var/area/placeofdeath = get_area(dead) death.place_of_death = placeofdeath ? placeofdeath.name : "Unknown area" @@ -168,3 +168,4 @@ SUBSYSTEM_DEF(statistics) if(!player_is_antag(dead.mind) && dead.mind.assigned_job && dead.mind.assigned_job.department_flag) crew_death_count++ +*/ diff --git a/code/controllers/subsystems/ticker.dm b/code/controllers/subsystems/ticker.dm index 8adfb44803..45017b61b8 100644 --- a/code/controllers/subsystems/ticker.dm +++ b/code/controllers/subsystems/ticker.dm @@ -345,7 +345,6 @@ Helpers captainless=0 if(!player_is_antag(player.mind, only_offstation_roles = 1)) SSjobs.equip_rank(player, player.mind.assigned_role, 0) - SScustomitems.equip_custom_items(player) if(captainless) for(var/mob/M in GLOB.player_list) if(!istype(M,/mob/new_player)) diff --git a/code/datums/browser.dm b/code/datums/browser.dm index 7f1e668d9f..438230e1db 100644 --- a/code/datums/browser.dm +++ b/code/datums/browser.dm @@ -4,7 +4,7 @@ var/window_id // window_id is used as the window name for browse and onclose var/width = 0 var/height = 0 - var/atom/ref = null + var/weakref/ref = null var/window_options = "focus=0;can_close=1;can_minimize=1;can_maximize=0;can_resize=1;titlebar=1;" // window option is set using window_id var/stylesheets[0] var/scripts[0] @@ -14,10 +14,10 @@ var/head_content = "" var/content = "" var/title_buttons = "" + var/include_common = TRUE -/datum/browser/New(nuser, nwindow_id, ntitle = 0, nwidth = 0, nheight = 0, atom/nref = null) - +/datum/browser/New(nuser, nwindow_id, ntitle = 0, nwidth = 0, nheight = 0, atom/nref = null, include_common = TRUE) user = nuser window_id = nwindow_id if (ntitle) @@ -27,11 +27,8 @@ if (nheight) height = nheight if (nref) - ref = nref - // If a client exists, but they have disabled fancy windowing, disable it! - if(user && user.client && user.client.get_preference_value(/datum/client_preference/browser_style) == GLOB.PREF_PLAIN) - return - add_stylesheet("common", 'html/browser/common.css') // this CSS sheet is common to all UIs + ref = weakref(nref) + src.include_common = include_common /datum/browser/proc/set_title(ntitle) title = format_text(ntitle) @@ -49,10 +46,20 @@ //title_image = ntitle_image /datum/browser/proc/add_stylesheet(name, file) - stylesheets[name] = file + if (istype(name, /datum/asset/spritesheet)) + var/datum/asset/spritesheet/sheet = name + stylesheets["spritesheet_[sheet.name].css"] = "data/spritesheets/[sheet.name]" + else + var/asset_name = "[name].css" + + stylesheets[asset_name] = file + + if (!SSassets.cache[asset_name]) + SSassets.transport.register_asset(asset_name, file) /datum/browser/proc/add_script(name, file) - scripts[name] = file + scripts["[ckey(name)].js"] = file + SSassets.transport.register_asset("[ckey(name)].js", file) /datum/browser/proc/set_content(ncontent) content = ncontent @@ -62,16 +69,15 @@ /datum/browser/proc/get_header() var/key - var/filename - for (key in stylesheets) - filename = "[ckey(key)].css" - send_rsc(user, stylesheets[key], filename) - head_content += "" + if (include_common) + var/datum/asset/simple/namespaced/common/common_asset = get_asset_datum(/datum/asset/simple/namespaced/common) + head_content += "" + + for (key in stylesheets) + head_content += "" for (key in scripts) - filename = "[ckey(key)].js" - send_rsc(user, scripts[key], filename) - head_content += "" + head_content += "" var/title_attributes = "class='uiTitle'" if (title_image) @@ -105,12 +111,36 @@ "} /datum/browser/proc/open(use_onclose = 1) + if(isnull(window_id)) //null check because this can potentially nuke goonchat + WARNING("Browser [title] tried to open with a null ID") + to_chat(user, SPAN_USERDANGER("The [title] browser you tried to open failed a sanity check! Please report this on github!")) + return var/window_size = "" if (width && height) window_size = "size=[width]x[height];" + if (include_common) + var/datum/asset/simple/namespaced/common/common_asset = get_asset_datum(/datum/asset/simple/namespaced/common) + common_asset.send(user) + if (stylesheets.len) + SSassets.transport.send_assets(user, stylesheets) + if (scripts.len) + SSassets.transport.send_assets(user, scripts) show_browser(user, get_content(), "window=[window_id];[window_size][window_options]") if (use_onclose) - onclose(user, window_id, ref) + setup_onclose() + + +/datum/browser/proc/setup_onclose() + set waitfor = 0 //winexists sleeps, so we don't need to. + for (var/i in 1 to 10) + if (user?.client && winexists(user, window_id)) + var/atom/send_ref + if(ref) + send_ref = ref.resolve() + if(!send_ref) + ref = null + onclose(user, window_id, send_ref) + break /datum/browser/proc/update(force_open = 0, use_onclose = 1) if(force_open) @@ -119,7 +149,10 @@ send_output(user, get_content(), "[window_id].browser") /datum/browser/proc/close() - close_browser(user, "window=[window_id]") + if(!isnull(window_id))//null check because this can potentially nuke goonchat + close_browser(user, "window=[window_id]") + else + WARNING("Browser [title] tried to close with a null ID") // This will allow you to show an icon in the browse window // This is added to mob so that it can be used without a reference to the browser object @@ -154,14 +187,12 @@ // Otherwise, the user mob's machine var will be reset directly. // /proc/onclose(mob/user, windowid, atom/ref=null) - if(!user || !user.client) return + if(!user?.client) return var/param = "null" if(ref) param = "\ref[ref]" - spawn(2) - if(!user.client) return - winset(user, windowid, "on-close=\".windowclose [param]\"") + winset(user, windowid, "on-close=\".windowclose [param]\"") // log_debug("OnClose [user]: [windowid] : ["on-close=\".windowclose [param]\""]") @@ -173,24 +204,15 @@ // otherwise, just reset the client mob's machine var. // /client/verb/windowclose(atomref as text) - set hidden = 1 // hide this verb from the user's panel - set name = ".windowclose" // no autocomplete on cmd line + set hidden = TRUE // hide this verb from the user's panel + set name = ".windowclose" // no autocomplete on cmd line -// log_debug("windowclose: [atomref]") - - if(atomref!="null") // if passed a real atomref - var/hsrc = locate(atomref) // find the reffed atom + if(atomref != "null") // if passed a real atomref + var/hsrc = locate(atomref) // find the reffed atom + var/href = "close=1" if(hsrc) -// log_debug("[src] Topic [href] [hsrc]") - usr = src.mob - src.Topic("close=1", list("close"="1"), hsrc) // this will direct to the atom's - return // Topic() proc via client.Topic() - - // no atomref specified (or not found) - // so just reset the user mob's machine var + src.Topic(href, params2list(href), hsrc) // this will direct to the atom's + return // Topic() proc via client.Topic() if(src && src.mob) -// log_debug("[src] was [src.mob.machine], setting to null") - src.mob.unset_machine() - return diff --git a/code/datums/datum.dm b/code/datums/datum.dm index 023ffae810..0751a09d76 100644 --- a/code/datums/datum.dm +++ b/code/datums/datum.dm @@ -16,8 +16,12 @@ var/list/_status_traits #ifdef REFERENCE_TRACKING - var/tmp/running_find_references - var/tmp/last_find_references = 0 + /// When was this datum last touched by a reftracker? + /// If this value doesn't match with the start of the search + /// We know this datum has never been seen before, and we should check it + var/last_find_references = 0 + /// How many references we're trying to find when searching + var/references_to_clear = 0 #ifdef REFERENCE_TRACKING_DEBUG ///Stores info about where refs are found, used for sanity checks and testing var/list/found_refs diff --git a/code/datums/reference_tracking.dm b/code/datums/reference_tracking.dm index 3154f64740..a667f0aac3 100644 --- a/code/datums/reference_tracking.dm +++ b/code/datums/reference_tracking.dm @@ -1,69 +1,77 @@ #ifdef REFERENCE_TRACKING +#define REFSEARCH_RECURSE_LIMIT 64 -/datum/proc/find_references(skip_alert) - running_find_references = type +/datum/proc/find_references(references_to_clear = INFINITY) if(usr?.client) - if(usr.client.running_find_references) - log_reftracker("CANCELLED search for references to a [usr.client.running_find_references].") - usr.client.running_find_references = null - running_find_references = null - //restart the garbage collector - SSgarbage.can_fire = TRUE - SSgarbage.next_fire = world.time + world.tick_lag - return - - if(!skip_alert && tgui_alert(usr,"Running this will lock everything up for about 5 minutes. Would you like to begin the search?", "Find References", list("Yes", "No")) != "Yes") - running_find_references = null + if(tgui_alert(usr,"Running this will lock everything up for about 5 minutes. Would you like to begin the search?", "Find References", list("Yes", "No")) != "Yes") return + src.references_to_clear = references_to_clear //this keeps the garbage collector from failing to collect objects being searched for in here SSgarbage.can_fire = FALSE - if(usr?.client) - usr.client.running_find_references = type + _search_references() - log_reftracker("Beginning search for references to a [type].") + //restart the garbage collector + SSgarbage.can_fire = TRUE + SSgarbage.next_fire = world.time + world.tick_lag - var/starting_time = world.time +/datum/proc/_search_references() + log_reftracker("Beginning search for references to a [type], looking for [references_to_clear] refs.") + var/starting_time = world.time //Time to search the whole game for our ref - DoSearchVar(GLOB, "GLOB") //globals + DoSearchVar(GLOB, "GLOB", starting_time) //globals log_reftracker("Finished searching globals") + if(src.references_to_clear == 0) + return + + //Yes we do actually need to do this. The searcher refuses to read weird lists + //And global.vars is a really weird list + var/global_vars = list() + for(var/key in global.vars) + global_vars[key] = global.vars[key] + + DoSearchVar(global_vars, "Native Global", starting_time) + log_reftracker("Finished searching native globals") + if(src.references_to_clear == 0) + return for(var/datum/thing in world) //atoms (don't beleive its lies) - DoSearchVar(thing, "World -> [thing.type]", search_time = starting_time) + DoSearchVar(thing, "World -> [thing.type]", starting_time) + if(src.references_to_clear == 0) + break log_reftracker("Finished searching atoms") + if(src.references_to_clear == 0) + return for(var/datum/thing) //datums - DoSearchVar(thing, "Datums -> [thing.type]", search_time = starting_time) + DoSearchVar(thing, "Datums -> [thing.type]", starting_time) + if(src.references_to_clear == 0) + break log_reftracker("Finished searching datums") + if(src.references_to_clear == 0) + return //Warning, attempting to search clients like this will cause crashes if done on live. Watch yourself +#ifndef REFERENCE_DOING_IT_LIVE for(var/client/thing) //clients - DoSearchVar(thing, "Clients -> [thing.type]", search_time = starting_time) + DoSearchVar(thing, "Clients -> [thing.type]", starting_time) + if(src.references_to_clear == 0) + break log_reftracker("Finished searching clients") + if(src.references_to_clear == 0) + return +#endif log_reftracker("Completed search for references to a [type].") - if(usr?.client) - usr.client.running_find_references = null - running_find_references = null - - //restart the garbage collector - SSgarbage.can_fire = TRUE - SSgarbage.next_fire = world.time + world.tick_lag - -/datum/proc/DoSearchVar(potential_container, container_name, recursive_limit = 64, search_time = world.time) - #ifdef REFERENCE_TRACKING_DEBUG - if(!found_refs) - found_refs = list() - #endif - - if(usr?.client && !usr.client.running_find_references) +/datum/proc/DoSearchVar(potential_container, container_name, search_time, recursion_count, is_special_list) + if(recursion_count >= REFSEARCH_RECURSE_LIMIT) + log_reftracker("Recursion limit reached. [container_name]") return - if(!recursive_limit) - log_reftracker("Recursion limit reached. [container_name]") + if(references_to_clear == 0) return //Check each time you go down a layer. This makes it a bit slow, but it won't effect the rest of the game at all @@ -71,7 +79,7 @@ CHECK_TICK #endif - if(istype(potential_container, /datum)) + if(isdatum(potential_container)) var/datum/datum_container = potential_container if(datum_container.last_find_references == search_time) return @@ -79,62 +87,122 @@ datum_container.last_find_references = search_time var/list/vars_list = datum_container.vars + var/is_atom = FALSE + var/is_area = FALSE + if(isatom(datum_container)) + is_atom = TRUE + if(isarea(datum_container)) + is_area = TRUE for(var/varname in vars_list) - #ifndef FIND_REF_NO_CHECK_TICK - CHECK_TICK - #endif - if (varname == "vars" || varname == "vis_locs") //Fun fact, vis_locs don't count for references - continue var/variable = vars_list[varname] - - if(variable == src) + if(islist(variable)) + //Fun fact, vis_locs don't count for references + if(varname == "vars" || (is_atom && (varname == "vis_locs" || varname == "overlays" || varname == "underlays" || varname == "filters" || varname == "verbs" || (is_area && varname == "contents")))) + continue + // We do this after the varname check to avoid area contents (reading it incures a world loop's worth of cost) + if(!length(variable)) + continue + DoSearchVar(variable,\ + "[container_name] [datum_container.ref_search_details()] -> [varname] (list)",\ + search_time,\ + recursion_count + 1,\ + /*is_special_list = */ is_atom && (varname == "contents" || varname == "vis_contents" || varname == "locs")) + else if(variable == src) #ifdef REFERENCE_TRACKING_DEBUG - found_refs[varname] = TRUE + if(SSgarbage.should_save_refs) + if(!found_refs) + found_refs = list() + found_refs[varname] = TRUE + continue //End early, don't want these logging + else + log_reftracker("Found [type] [ref(src)] in [datum_container.type]'s [datum_container.ref_search_details()] [varname] var. [container_name]") + #else + log_reftracker("Found [type] [ref(src)] in [datum_container.type]'s [datum_container.ref_search_details()] [varname] var. [container_name]") #endif - log_reftracker("Found [type] \ref[src] in [datum_container.type]'s \ref[datum_container] [varname] var. [container_name]") + references_to_clear -= 1 + if(references_to_clear == 0) + log_reftracker("All references to [type] [ref(src)] found, exiting.") + return continue - if(islist(variable)) - DoSearchVar(variable, "[container_name] \ref[datum_container] -> [varname] (list)", recursive_limit - 1, search_time) - else if(islist(potential_container)) - var/normal = IS_NORMAL_LIST(potential_container) var/list/potential_cache = potential_container for(var/element_in_list in potential_cache) - #ifndef FIND_REF_NO_CHECK_TICK - CHECK_TICK - #endif + //Check normal sublists + if(islist(element_in_list)) + if(length(element_in_list)) + DoSearchVar(element_in_list, "[container_name] -> [element_in_list] (list)", search_time, recursion_count + 1) //Check normal entrys - if(element_in_list == src) + else if(element_in_list == src) #ifdef REFERENCE_TRACKING_DEBUG - found_refs[potential_cache] = TRUE + if(SSgarbage.should_save_refs) + if(!found_refs) + found_refs = list() + found_refs[potential_cache] = TRUE + continue + else + log_reftracker("Found [type] [ref(src)] in list [container_name].") + #else + log_reftracker("Found [type] [ref(src)] in list [container_name].") #endif - log_reftracker("Found [type] \ref[src] in list [container_name].") - continue - var/assoc_val = null - if(!isnum(element_in_list) && normal) - assoc_val = potential_cache[element_in_list] - //Check assoc entrys - if(assoc_val == src) - #ifdef REFERENCE_TRACKING_DEBUG - found_refs[potential_cache] = TRUE - #endif - log_reftracker("Found [type] \ref[src] in list [container_name]\[[element_in_list]\]") - continue - //We need to run both of these checks, since our object could be hiding in either of them - //Check normal sublists - if(islist(element_in_list)) - DoSearchVar(element_in_list, "[container_name] -> [element_in_list] (list)", recursive_limit - 1, search_time) - //Check assoc sublists - if(islist(assoc_val)) - DoSearchVar(potential_container[element_in_list], "[container_name]\[[element_in_list]\] -> [assoc_val] (list)", recursive_limit - 1, search_time) + // This is dumb as hell I'm sorry + // I don't want the garbage subsystem to count as a ref for the purposes of this number + // If we find all other refs before it I want to early exit, and if we don't I want to keep searching past it + var/ignore_ref = FALSE + var/list/queues = SSgarbage.queues + for(var/list/queue in queues) + if(potential_cache in queue) + ignore_ref = TRUE + break + if(ignore_ref) + log_reftracker("[container_name] does not count as a ref for our count") + else + references_to_clear -= 1 + if(references_to_clear == 0) + log_reftracker("All references to [type] [ref(src)] found, exiting.") + return + + if(!isnum(element_in_list) && !is_special_list) + // This exists to catch an error that throws when we access a special list + // is_special_list is a hint, it can be wrong + try + var/assoc_val = potential_cache[element_in_list] + //Check assoc sublists + if(islist(assoc_val)) + if(length(assoc_val)) + DoSearchVar(potential_container[element_in_list], "[container_name]\[[element_in_list]\] -> [assoc_val] (list)", search_time, recursion_count + 1) + //Check assoc entry + else if(assoc_val == src) + #ifdef REFERENCE_TRACKING_DEBUG + if(SSgarbage.should_save_refs) + if(!found_refs) + found_refs = list() + found_refs[potential_cache] = TRUE + continue + else + log_reftracker("Found [type] [ref(src)] in list [container_name]\[[element_in_list]\]") + #else + log_reftracker("Found [type] [ref(src)] in list [container_name]\[[element_in_list]\]") + #endif + references_to_clear -= 1 + if(references_to_clear == 0) + log_reftracker("All references to [type] [ref(src)] found, exiting.") + return + catch + // So if it goes wrong we kill it + is_special_list = TRUE + log_reftracker("Curiosity: [container_name] lead to an error when acessing [element_in_list], what is it?") + +#undef REFSEARCH_RECURSE_LIMIT +#endif -/proc/qdel_and_find_ref_if_fail(datum/thing_to_del, force = FALSE) - thing_to_del.qdel_and_find_ref_if_fail(force) +// Kept outside the ifdef so overrides are easy to implement -/datum/proc/qdel_and_find_ref_if_fail(force = FALSE) - SSgarbage.reference_find_on_fail["\ref[src]"] = TRUE - qdel(src, force) +/// Return info about us for reference searching purposes +/// Will be logged as a representation of this datum if it's a part of a search chain +/datum/proc/ref_search_details() + return ref(src) -#endif +/datum/callback/ref_search_details() + return "[ref(src)] (obj: [object] proc: [delegate] args: [json_encode(arguments)])" diff --git a/code/datums/repositories/follow.dm b/code/datums/repositories/follow.dm index a6772cef52..214fe3c45f 100644 --- a/code/datums/repositories/follow.dm +++ b/code/datums/repositories/follow.dm @@ -6,6 +6,7 @@ var/list/followed_objects var/list/followed_objects_assoc var/list/followed_subtypes + var/list/followed_subtypes_tcache var/list/excluded_subtypes = list( /obj/machinery/atmospherics, // Atmos stuff calls initialize time and time again.., @@ -17,10 +18,15 @@ followed_objects = list() followed_objects_assoc = list() followed_subtypes = list() + followed_subtypes_tcache = list() for(var/fht in subtypesof(/datum/follow_holder)) var/datum/follow_holder/fh = fht followed_subtypes[initial(fh.followed_type)] = fht + followed_subtypes_tcache += initial(fh.followed_type) + + followed_subtypes_tcache = typecacheof(followed_subtypes) + excluded_subtypes = typecacheof(excluded_subtypes) /repository/follow/proc/add_subject(atom/movable/AM) cache = null @@ -79,11 +85,6 @@ cache.data = L return L -/atom/movable/Initialize() - . = ..() - if(!is_type_in_list(src, follow_repository.excluded_subtypes) && is_type_in_list(src, follow_repository.followed_subtypes)) - follow_repository.add_subject(src) - /****************** * Follow Metadata * ******************/ diff --git a/code/datums/station_traits/negative.dm b/code/datums/station_traits/negative.dm index 5d37aed8bc..25bdf38d4b 100644 --- a/code/datums/station_traits/negative.dm +++ b/code/datums/station_traits/negative.dm @@ -19,4 +19,4 @@ /datum/station_trait/disabled_lighting/on_round_start() for(var/obj/machinery/power/apc/C in SSmachines.machinery) if(!C.is_critical && (C.z in GLOB.using_map.station_levels)) - C.overload_lighting(25) // Every fourth light + C.overload_lighting(10) // Every tenth light diff --git a/code/datums/status_effects/debuffs/speech_debuffs.dm b/code/datums/status_effects/debuffs/speech_debuffs.dm index 1e86665b88..8d84062ee9 100644 --- a/code/datums/status_effects/debuffs/speech_debuffs.dm +++ b/code/datums/status_effects/debuffs/speech_debuffs.dm @@ -22,9 +22,10 @@ * Iterates over all of the characters in the passed message * and calls apply_speech() on each. */ -/datum/status_effect/speech/proc/handle_message(datum/source, message, datum/language/speaking) +/datum/status_effect/speech/proc/handle_message(datum/source, list/speech_args, datum/language/speaking) SIGNAL_HANDLER + var/message = speech_args[SPEECH_ARG_MESSAGE] if(speaking.flags & NO_STUTTER) return @@ -40,7 +41,7 @@ final_phrase += apply_speech(original_char, original_char) - message = sanitize(final_phrase) + speech_args[SPEECH_ARG_MESSAGE] = sanitize(final_phrase) /** * Applies the speech effects on the past character, changing diff --git a/code/game/antagonist/station/traitor.dm b/code/game/antagonist/station/traitor.dm index 144a030fc9..95ec63fe3f 100644 --- a/code/game/antagonist/station/traitor.dm +++ b/code/game/antagonist/station/traitor.dm @@ -14,6 +14,11 @@ GLOBAL_DATUM_INIT(traitors, /datum/antagonist/traitor, new) /datum/antagonist/traitor/Topic(href, href_list) if (..()) return 1 + + var/client/target = usr.client + if(!check_rights(R_ADMIN|R_MOD, TRUE, target)) + return 1 + if(href_list["spawn_uplink"]) spawn_uplink(locate(href_list["spawn_uplink"])) return 1 diff --git a/code/game/area/Space Station 13 areas.dm b/code/game/area/Space Station 13 areas.dm index a930e4468b..5283683897 100644 --- a/code/game/area/Space Station 13 areas.dm +++ b/code/game/area/Space Station 13 areas.dm @@ -206,52 +206,4 @@ NOTE: there are two lists of areas in the end of this file: centcom and station luminosity = 1 dynamic_lighting = 0 requires_power = 0 - var/sound/mysound = null - -/area/beach/New() - ..() - var/sound/S = new/sound() - mysound = S - S.file = 'sounds/ambience/shore.ogg' - S.repeat = 1 - S.wait = 0 - S.channel = GLOB.sound_channels.RequestChannel(/area/beach) - S.volume = 100 - S.priority = 255 - S.status = SOUND_UPDATE - process() - -/area/beach/Entered(atom/movable/Obj,atom/OldLoc) - . = ..() - if(ismob(Obj)) - var/mob/M = Obj - if(M.client) - mysound.status = SOUND_UPDATE - sound_to(M, mysound) - -/area/beach/Exited(atom/movable/Obj) - . = ..() - if(ismob(Obj)) - var/mob/M = Obj - if(M.client) - mysound.status = SOUND_PAUSED | SOUND_UPDATE - sound_to(M, mysound) - -/area/beach/proc/process() - set background = 1 - - var/sound/S = null - var/sound_delay = 0 - if(prob(25)) - S = sound(file=pick('sounds/ambience/seag1.ogg','sounds/ambience/seag2.ogg','sounds/ambience/seag3.ogg'), volume=100) - sound_delay = rand(0, 50) - - for(var/mob/living/carbon/human/H in src) - if(H.client) - mysound.status = SOUND_UPDATE - to_chat(H, mysound) - if(S) - spawn(sound_delay) - sound_to(H, S) - - spawn(60) .() + ambience = list('sounds/ambience/shore.ogg') diff --git a/code/game/machinery/computer/message.dm b/code/game/machinery/computer/message.dm index cafb55c3fc..9d0bced68c 100644 --- a/code/game/machinery/computer/message.dm +++ b/code/game/machinery/computer/message.dm @@ -42,16 +42,16 @@ // Will create sparks and print out the console's password. You will then have to wait a while for the console to be back online. // It'll take more time if there's more characters in the password.. if(!emag && operable()) - if(!isnull(src.linkedServer)) + if(src.linkedServer) emag = 1 screen = 2 spark_system.set_up(5, 0, src) src.spark_system.start() - var/obj/item/paper/monitorkey/MK = new/obj/item/paper/monitorkey + var/obj/item/paper/monitorkey/MK = new/obj/item/paper/monitorkey(src.linkedServer) MK.dropInto(loc) // Will help make emagging the console not so easy to get away with. MK.info += "

£%@%(*$%&(£&?*(%&£/{}" - spawn(100*length(src.linkedServer.decryptkey)) UnmagConsole() + addtimer(CALLBACK(src, PROC_REF(UnmagConsole)), 1 SECOND * length(src.linkedServer.decryptkey)) message = rebootmsg update_icon() return 1 @@ -304,16 +304,21 @@ /obj/item/paper/monitorkey //..() name = "Monitor Decryption Key" - var/obj/machinery/message_server/server = null -/obj/item/paper/monitorkey/New() - ..() - spawn(10) - if(message_servers) - for(var/obj/machinery/message_server/server in message_servers) - if(!isnull(server)) - if(!isnull(server.decryptkey)) - info = "

Daily Key Reset


The new message monitor key is '[server.decryptkey]'.
This key is only intended for personnel granted access to the messaging server. Keep it safe.
If necessary, change the password to a more secure one." - info_links = info - icon_state = "paper_words" - break +/obj/item/paper/monitorkey/proc/print(obj/machinery/message_server/server) + set_content("

Daily Key Reset


The new message monitor key is '[server.decryptkey]'.
This key is only intended for personnel granted access to the messaging server. Keep it safe.
If necessary, change the password to a more secure one.") + +/obj/item/paper/monitorkey/Initialize(mapload, obj/machinery/message_server/server) + . = ..() + if(server) + print(server) + return INITIALIZE_HINT_NORMAL + return INITIALIZE_HINT_LATELOAD + +/obj/item/paper/monitorkey/LateInitialize() + . = ..() + if(message_servers) + for(var/obj/machinery/message_server/server in message_servers) + if(server.decryptkey) + print(server) + break diff --git a/code/game/machinery/doors/airlock.dm b/code/game/machinery/doors/airlock.dm index 3bba914974..dd112b9b21 100644 --- a/code/game/machinery/doors/airlock.dm +++ b/code/game/machinery/doors/airlock.dm @@ -749,7 +749,6 @@ About the new airlock wires panel: add_overlay(lights_overlay) add_overlay(sparks_overlay) add_overlay(damage_overlay) - compile_overlays() /obj/machinery/door/airlock/do_animate(animation) diff --git a/code/game/machinery/doors/brigdoors.dm b/code/game/machinery/doors/brigdoors.dm index c418fef47d..17fc69f9c5 100644 --- a/code/game/machinery/doors/brigdoors.dm +++ b/code/game/machinery/doors/brigdoors.dm @@ -16,15 +16,24 @@ icon = 'icons/obj/status_display.dmi' icon_state = "frame" desc = "A remote control for a door." - req_access = list(ACCESS_BRIG) + req_access = list(ACCESS_SECURITY_LVL2) anchored = TRUE // can't pick it up density = FALSE // can walk through it. var/id = null // id of door it controls. - var/releasetime = 0 // when world.timeofday reaches it - release the prisoner - var/timing = 1 // boolean, true/1 timer is on, false/0 means it's not timing + var/timing = FALSE // boolean, true/1 timer is on, false/0 means it's not timing var/picture_state // icon_state of alert picture, if not displaying text/numbers - var/list/obj/machinery/targets = list() - var/timetoset = 0 // Used to set releasetime upon starting the timer + var/list/obj/machinery/door/window/brigdoor/doors = list() // list of weakrefs to nearby doors + var/list/obj/machinery/flasher/flashers = list() // list of weakrefs to nearby flashers + var/list/obj/structure/closet/secure_closet/brig/closets = list() // list of weakrefs to nearby closets + + // Time from activation_time before releasing. + var/timer_duration = 0 + // world.time at timer start. + var/activation_time = 0 + // Can we currently use the flashers? + var/can_flash = TRUE + // Have we logged an over-limit timer at least once during this timer? + var/have_logged = FALSE maptext_height = 26 maptext_width = 32 @@ -35,19 +44,20 @@ return INITIALIZE_HINT_LATELOAD /obj/machinery/door_timer/LateInitialize() - for(var/obj/machinery/door/window/brigdoor/M in SSmachines.machinery) - if (M.id == src.id) - targets += M + if(id) + for(var/obj/machinery/door/window/brigdoor/M in urange(20, src)) + if (M.id == src.id) + doors += weakref(M) - for(var/obj/machinery/flasher/F in SSmachines.machinery) - if(F.id_tag == src.id) - targets += F + for(var/obj/machinery/flasher/F in urange(20, src)) + if(F.id_tag == src.id) + flashers += weakref(F) - for(var/obj/structure/closet/secure_closet/brig/C in world) - if(C.id == src.id) - targets += C + for(var/obj/structure/closet/secure_closet/brig/C in urange(20, src)) + if(C.id == src.id) + closets += weakref(C) - if(targets.len==0) + if(!id || (!length(doors) && !length(flashers) && !length(closets))) set_broken(TRUE) queue_icon_update() @@ -55,26 +65,13 @@ // if it's less than 0, open door, reset timer // update the door_timer window and the icon /obj/machinery/door_timer/Process() - if(stat & (NOPOWER|BROKEN)) return - if(src.timing) - - // poorly done midnight rollover - // (no seriously there's gotta be a better way to do this) - var/timeleft = timeleft() - if(timeleft > 1e5) - src.releasetime = 0 - - - if(world.timeofday > src.releasetime) - src.timer_end(TRUE) // open doors, reset timer, clear status screen, broadcast to sec HUDs - src.timing = 0 + if(!timing) return PROCESS_KILL + if(stat & (NOPOWER|BROKEN)) return PROCESS_KILL - src.update_icon() + if(world.time - activation_time >= timer_duration) + timer_end() // open doors, reset timer, clear status screen, broadcast to sec HUDs - else - timer_end() - - return + src.update_icon() // open/closedoor checks if door_timer has power, if so it checks if the @@ -84,67 +81,73 @@ /obj/machinery/door_timer/proc/timer_start() if(stat & (NOPOWER|BROKEN)) return 0 - // Set releasetime - releasetime = world.timeofday + timetoset + activation_time = world.time + timing = TRUE + START_PROCESSING_MACHINE(src, MACHINERY_PROCESS_SELF) - //set timing - timing = 1 + for(var/weakref/door_ref as anything in doors) + var/obj/machinery/door/window/brigdoor/door = door_ref.resolve() + if(!door) + doors -= door_ref + continue + if(!door.density) + continue + INVOKE_ASYNC(door, TYPE_PROC_REF(/obj/machinery/door/window/brigdoor, close)) - for(var/obj/machinery/door/window/brigdoor/door in targets) - if(door.density) continue - spawn(0) - door.close() + for(var/weakref/closet_ref as anything in closets) + var/obj/structure/closet/secure_closet/brig/closet = closet_ref.resolve() + if(!closet) + closets -= closet_ref + continue + if(closet.broken) + continue + if(closet.opened) + continue + closet.locked = TRUE + closet.queue_icon_update() - for(var/obj/structure/closet/secure_closet/brig/C in targets) - if(C.broken) continue - if(C.opened && !C.close()) continue - C.locked = TRUE - C.queue_icon_update() return 1 // Opens and unlocks doors, power check -/obj/machinery/door_timer/proc/timer_end(broadcast_to_huds = 0) +/obj/machinery/door_timer/proc/timer_end() if(stat & (NOPOWER|BROKEN)) return 0 - // Reset releasetime - releasetime = 0 - //reset timing - timing = 0 - - if (broadcast_to_huds) - broadcast_security_hud_message("The timer for [id] has expired.", src) - - for(var/obj/machinery/door/window/brigdoor/door in targets) - if(!door.density) continue - spawn(0) - door.open() + timing = FALSE + activation_time = 0 + have_logged = FALSE + broadcast_security_hud_message("The timer for [id] has expired.", src) + STOP_PROCESSING_MACHINE(src, MACHINERY_PROCESS_SELF) + + for(var/weakref/door_ref as anything in doors) + var/obj/machinery/door/window/brigdoor/door = door_ref.resolve() + if(!door) + doors -= door_ref + continue + if(!door.density) + continue + INVOKE_ASYNC(door, TYPE_PROC_REF(/obj/machinery/door/window/brigdoor, open)) - for(var/obj/structure/closet/secure_closet/brig/C in targets) - if(C.broken) continue - if(C.opened) continue - C.locked = 0 - C.queue_icon_update() + for(var/weakref/closet_ref as anything in closets) + var/obj/structure/closet/secure_closet/brig/closet = closet_ref.resolve() + if(!closet) + closets -= closet_ref + continue + if(closet.broken) + continue + if(closet.opened) + continue + closet.locked = FALSE + closet.queue_icon_update() return 1 -// Check for releasetime timeleft +// Check for time left from timer_duration /obj/machinery/door_timer/proc/timeleft() - . = round((releasetime - world.timeofday)/10) - if(. < 0) - . = 0 - -// Set timetoset -/obj/machinery/door_timer/proc/timeset(seconds) - timetoset = seconds * 10 - - if(timetoset <= 0) - timetoset = 0 - - return + return max(timer_duration - (world.time - activation_time), 0) / 10 /obj/machinery/door_timer/interface_interact(mob/user) ui_interact(user) @@ -153,22 +156,22 @@ /obj/machinery/door_timer/ui_interact(mob/user, ui_key = "main", datum/nanoui/ui = null, force_open = 1) var/list/data = list() - var/timeval = timing ? timeleft() : timetoset/10 + var/timeval = timing ? timeleft() : timer_duration / 10 data["timing"] = timing data["minutes"] = round(timeval/60) data["seconds"] = timeval % 60 - var/list/flashes = list() - - for(var/obj/machinery/flasher/flash in targets) - var/list/flashdata = list() - if(flash.last_flash && (flash.last_flash + 150) > world.time) - flashdata["status"] = 0 - else - flashdata["status"] = 1 - flashes[++flashes.len] = flashdata - - data["flashes"] = flashes + var/can_flash = TRUE + for(var/weakref/flash_ref as anything in flashers) + var/obj/machinery/flasher/flasher = flash_ref.resolve() + if(!flasher) + flashers -= flash_ref + continue + if(flasher.last_flash && (flasher.last_flash + 15 SECONDS) > world.time) + can_flash = FALSE + break + src.can_flash = can_flash + data["flash"] = can_flash ui = SSnano.try_update_ui(user, src, ui_key, ui, data, force_open) if (!ui) @@ -188,19 +191,29 @@ timer_end() else timer_start() - if(timetoset > 18000) - log_and_message_staff("has started a brig timer over 30 minutes in length!") + if(timer_duration > 20 MINUTES) + log_and_message_staff("has started a brig timer over 20 minutes in length!") + have_logged = TRUE . = TOPIC_REFRESH if (href_list["flash"]) - for(var/obj/machinery/flasher/F in targets) - F.flash() . = TOPIC_REFRESH + if(!can_flash) + return + + for(var/weakref/flash_ref as anything in flashers) + var/obj/machinery/flasher/flasher = flash_ref.resolve() + if(!flasher) + flashers -= flash_ref + continue + flasher.flash() if (href_list["adjust"]) - timetoset += text2num(href_list["adjust"]) - timetoset = Clamp(timetoset, 0, 36000) . = TOPIC_REFRESH + if(timing) + return + timer_duration += text2num(href_list["adjust"]) + timer_duration = Clamp(timer_duration, 0, 30 MINUTES) update_icon() @@ -217,7 +230,7 @@ set_picture("ai_bsod") return if(src.timing) - var/disp1 = id + var/disp1 = name var/timeleft = timeleft() var/disp2 = "[add_zero(num2text((timeleft / 60) % 60),2)]:[add_zero(num2text(timeleft % 60), 2)]" if(length(disp2) > CHARS_PER_LINE) @@ -263,31 +276,6 @@ I.add_overlay(ID) return I - -/obj/machinery/door_timer/cell_1 - name = "Cell 1" - id = "Cell 1" - -/obj/machinery/door_timer/cell_2 - name = "Cell 2" - id = "Cell 2" - -/obj/machinery/door_timer/cell_3 - name = "Cell 3" - id = "Cell 3" - -/obj/machinery/door_timer/cell_4 - name = "Cell 4" - id = "Cell 4" - -/obj/machinery/door_timer/cell_5 - name = "Cell 5" - id = "Cell 5" - -/obj/machinery/door_timer/cell_6 - name = "Cell 6" - id = "Cell 6" - #undef FONT_SIZE #undef FONT_COLOR #undef FONT_STYLE diff --git a/code/game/machinery/suit_cycler.dm b/code/game/machinery/suit_cycler.dm index 90c562c9af..a31a814efb 100644 --- a/code/game/machinery/suit_cycler.dm +++ b/code/game/machinery/suit_cycler.dm @@ -131,9 +131,6 @@ to_chat(user, SPAN_DANGER("The cycler already contains a helmet.")) return - if(I.icon_override == CUSTOM_ITEM_MOB) - to_chat(user, "You cannot refit a customised voidsuit.") - return if(!user.unEquip(I, src)) return to_chat(user, "You fit \the [I] into the suit cycler.") @@ -152,9 +149,6 @@ to_chat(user, SPAN_DANGER("The cycler already contains a voidsuit.")) return - if(I.icon_override == CUSTOM_ITEM_MOB) - to_chat(user, "You cannot refit a customised voidsuit.") - return if(!user.unEquip(I, src)) return to_chat(user, "You fit \the [I] into the suit cycler.") diff --git a/code/game/machinery/turret_control.dm b/code/game/machinery/turret_control.dm index 58d0cabbff..9c7dc73195 100644 --- a/code/game/machinery/turret_control.dm +++ b/code/game/machinery/turret_control.dm @@ -65,20 +65,23 @@ . = ..() /obj/machinery/turretid/proc/isLocked(mob/user) + if(user.can_admin_interact()) + return FALSE + if(ailock && issilicon(user)) to_chat(user, SPAN_NOTICE("There seems to be a firewall preventing you from accessing this device.")) - return 1 + return TRUE if(malf_upgraded && master_ai) if((user == master_ai) || (user in master_ai.connected_robots)) - return 0 - return 1 + return FALSE + return TRUE if(locked && !issilicon(user)) to_chat(user, SPAN_NOTICE("Access denied.")) - return 1 + return TRUE - return 0 + return FALSE /obj/machinery/turretid/CanUseTopic(mob/user) if(isLocked(user)) diff --git a/code/game/objects/effects/misc.dm b/code/game/objects/effects/misc.dm index 58efd04e2f..9c6786c8fe 100644 --- a/code/game/objects/effects/misc.dm +++ b/code/game/objects/effects/misc.dm @@ -22,10 +22,7 @@ blend_mode = BLEND_MULTIPLY /obj/effect/paint/Initialize() - . = ..() - return INITIALIZE_HINT_LATELOAD - -/obj/effect/paint/LateInitialize() + SHOULD_CALL_PARENT(FALSE) var/turf/simulated/wall/W = get_turf(src) if(istype(W)) W.paint_color = color @@ -34,7 +31,8 @@ if(WF) WF.paint_color = color WF.update_icon() - qdel(src) + atom_flags |= ATOM_FLAG_INITIALIZED + return INITIALIZE_HINT_QDEL /obj/effect/paint/pink color = COLOR_PINK @@ -75,10 +73,7 @@ blend_mode = BLEND_MULTIPLY /obj/effect/paint_stripe/Initialize() - . = ..() - return INITIALIZE_HINT_LATELOAD - -/obj/effect/paint_stripe/LateInitialize() + SHOULD_CALL_PARENT(FALSE) var/turf/simulated/wall/W = get_turf(src) if(istype(W)) W.stripe_color = color @@ -87,7 +82,8 @@ if(WF) WF.stripe_color = color WF.update_icon() - qdel(src) + atom_flags |= ATOM_FLAG_INITIALIZED + return INITIALIZE_HINT_QDEL /obj/effect/paint_stripe/green color = COLOR_GREEN_GRAY @@ -131,4 +127,4 @@ var/datum/gas_mixture/G = P.air_temporary G.adjust_gas(GAS_OXYGEN,((pressure*P.volume)/(R_IDEAL_GAS_EQUATION*temperature))) return INITIALIZE_HINT_QDEL - + diff --git a/code/game/objects/effects/projectile/projectile_effects.dm b/code/game/objects/effects/projectile/projectile_effects.dm index 1ad832ba88..22436bfd48 100644 --- a/code/game/objects/effects/projectile/projectile_effects.dm +++ b/code/game/objects/effects/projectile/projectile_effects.dm @@ -33,9 +33,6 @@ I.color = overlay_color I.appearance_flags |= RESET_COLOR add_overlay(I) - // Projectile effects only exist for a tick or two, need to call - // this to ensure they show their overlays before expiring. - compile_overlays() /obj/effect/projectile/singularity_pull() return diff --git a/code/game/objects/items.dm b/code/game/objects/items.dm index 64eab5b0d6..051746a740 100644 --- a/code/game/objects/items.dm +++ b/code/game/objects/items.dm @@ -713,11 +713,14 @@ modules/mob/mob_movement.dm if you move you will be zoomed out modules/mob/living/carbon/human/life.dm if you die, you will be zoomed out. */ //Looking through a scope or binoculars should /not/ improve your periphereal vision. Still, increase viewsize a tiny bit so that sniping isn't as restricted to NSEW -/obj/item/proc/zoom(mob/user, tileoffset = 14,viewsize = 9) //tileoffset is client view offset in the direction the user is facing. viewsize is how far out this thing zooms. 7 is normal view +/obj/item/proc/zoom(mob/user, tileoffset = 14, viewsize) //tileoffset is client view offset in the direction the user is facing. viewsize is how far out this thing zooms. 7 is normal view if(!user.client) return if(zoom) return + if(!viewsize) + var/view_size = getviewsize(user.client.view) + viewsize = max(view_size[1], view_size[2]) + 2 if(!user.loc?.MayZoom()) return @@ -761,7 +764,7 @@ modules/mob/living/carbon/human/life.dm if you die, you will be zoomed out. if(istype(H)) H.handle_vision() - user.client.view = viewsize + user.client.change_view(viewsize) zoom = 1 RegisterSignal(src, COMSIG_PARENT_QDELETING, TYPE_PROC_REF(/obj/item, unzoom)) @@ -796,7 +799,7 @@ modules/mob/living/carbon/human/life.dm if you die, you will be zoomed out. if(!user.client) return - user.client.view = world.view + user.client.change_view(user.client.get_default_view()) if(!user.hud_used.hud_shown) user.toggle_zoom_hud() @@ -910,20 +913,6 @@ modules/mob/living/carbon/human/life.dm if you die, you will be zoomed out. attack_self(user) return TRUE -/obj/item/proc/inherit_custom_item_data(datum/custom_item/citem) - . = src - if(citem.item_name) - SetName(citem.item_name) - if(citem.item_desc) - desc = citem.item_desc - if(citem.item_icon_state) - item_state_slots = null - item_icons = null - icon = CUSTOM_ITEM_OBJ - set_icon_state(citem.item_icon_state) - item_state = null - icon_override = CUSTOM_ITEM_MOB - /obj/item/proc/attack_message_name() return "\a [src]" diff --git a/code/game/objects/items/devices/megaphone.dm b/code/game/objects/items/devices/megaphone.dm index 8f077adec5..14d9c4c7ec 100644 --- a/code/game/objects/items/devices/megaphone.dm +++ b/code/game/objects/items/devices/megaphone.dm @@ -8,44 +8,30 @@ var/spamcheck = 0 var/emagged = FALSE - var/insults = 0 var/list/insultmsg = list("FUCK EVERYONE!", "I'M A TATER!", "ALL SECURITY TO SHOOT ME ON SIGHT!", "I HAVE A BOMB!", "CAPTAIN IS A COMDOM!", "FOR THE SYNDICATE!") -/obj/item/device/megaphone/attack_self(mob/living/user as mob) - if (user.client) - if(user.client.prefs.muted & MUTE_IC) - to_chat(src, SPAN_WARNING("You cannot speak in IC (muted).")) - return - if(HAS_TRAIT(user, TRAIT_MUTE)) - return - if(spamcheck) - to_chat(user, SPAN_WARNING("\The [src] needs to recharge!")) - return +/obj/item/device/megaphone/equipped(mob/user, slot) + . = ..() + if(slot == slot_l_hand || slot == slot_r_hand) + RegisterSignal(user, COMSIG_LIVING_TREAT_MESSAGE, PROC_REF(handle_speech)) - var/message = sanitize(input(user, "Shout a message?", "Megaphone", null) as text) - if(!message) - return - message = capitalize(message) - if ((src.loc == user && usr.stat == 0)) - if(emagged) - if(insults) - for(var/mob/O in (viewers(user))) - O.show_message("[user] broadcasts, \"[pick(insultmsg)]\"",2) // 2 stands for hearable message - insults-- - else - to_chat(user, SPAN_WARNING("*BZZZZzzzzzt*")) - else - for(var/mob/O in (viewers(user))) - O.show_message("[user] broadcasts, \"[message]\"",2) // 2 stands for hearable message +/obj/item/device/megaphone/dropped(mob/user) + . = ..() + UnregisterSignal(user, COMSIG_LIVING_TREAT_MESSAGE) - spamcheck = 1 - spawn(20) - spamcheck = 0 +/obj/item/device/megaphone/proc/handle_speech(mob/living/source, list/speech_args, datum/language/speaking) + SIGNAL_HANDLER + if(world.time < spamcheck) + to_chat(source, SPAN_WARNING("\The [src] is recharging!")) return + spamcheck = world.time + 5 + if(emagged) + speech_args[SPEECH_ARG_MESSAGE] = "[capitalize(pick(insultmsg))]" + speech_args[SPEECH_ARG_MESSAGE] = "[capitalize(speech_args[SPEECH_ARG_MESSAGE])]" + /obj/item/device/megaphone/emag_act(remaining_charges, mob/user) if(!emagged) to_chat(user, SPAN_WARNING("You overload \the [src]'s voice synthesizer.")) emagged = TRUE - insults = rand(1, 3)//to prevent dickflooding return 1 diff --git a/code/game/objects/items/paintkit.dm b/code/game/objects/items/paintkit.dm index bbe14fae42..731816efed 100644 --- a/code/game/objects/items/paintkit.dm +++ b/code/game/objects/items/paintkit.dm @@ -11,13 +11,6 @@ . = ..() to_chat(user, "It has [uses] use\s left.") -/obj/item/device/kit/inherit_custom_item_data(datum/custom_item/citem) - new_name = citem.item_name - new_desc = citem.item_desc - new_icon = citem.item_icon_state - new_icon_file = CUSTOM_ITEM_OBJ - . = src - /obj/item/device/kit/proc/use(amt, mob/user) uses -= amt playsound(get_turf(user), 'sounds/items/Screwdriver.ogg', 50, 1) @@ -33,12 +26,6 @@ var/new_light_overlay var/new_mob_icon_file -/obj/item/device/kit/suit/inherit_custom_item_data(datum/custom_item/citem) - . = ..() - if(citem.additional_data["light_overlay"]) - new_light_overlay = citem.additional_data["light_overlay"] - new_mob_icon_file = CUSTOM_ITEM_MOB - /obj/item/clothing/head/helmet/space/void/attackby(obj/item/O, mob/user) if(istype(O,/obj/item/device/kit/suit)) var/obj/item/device/kit/suit/kit = O diff --git a/code/game/objects/items/weapons/storage/storage.dm b/code/game/objects/items/weapons/storage/storage.dm index 644baff60e..2585ced64c 100644 --- a/code/game/objects/items/weapons/storage/storage.dm +++ b/code/game/objects/items/weapons/storage/storage.dm @@ -380,7 +380,6 @@ max_storage_space = storage_slots*BASE_STORAGE_COST(max_w_class) storage_ui = new storage_ui(src) - prepare_ui() if(startswith) for(var/item_path in startswith) diff --git a/code/game/objects/items/weapons/storage/wallets.dm b/code/game/objects/items/weapons/storage/wallets.dm index 63226fe398..9153c954bf 100644 --- a/code/game/objects/items/weapons/storage/wallets.dm +++ b/code/game/objects/items/weapons/storage/wallets.dm @@ -91,21 +91,20 @@ else return ..() -/obj/item/storage/wallet/random/New() - ..() +/obj/item/storage/wallet/random/Initialize() + . = ..() var/item1_type = pick( /obj/item/spacecash/bundle/c10,/obj/item/spacecash/bundle/c100,/obj/item/spacecash/bundle/c1000,/obj/item/spacecash/bundle/c20,/obj/item/spacecash/bundle/c200,/obj/item/spacecash/bundle/c50, /obj/item/spacecash/bundle/c500) var/item2_type if(prob(50)) item2_type = pick( /obj/item/spacecash/bundle/c10,/obj/item/spacecash/bundle/c100,/obj/item/spacecash/bundle/c1000,/obj/item/spacecash/bundle/c20,/obj/item/spacecash/bundle/c200,/obj/item/spacecash/bundle/c50, /obj/item/spacecash/bundle/c500) var/item3_type = pick( /obj/item/material/coin/silver, /obj/item/material/coin/silver, /obj/item/material/coin/gold, /obj/item/material/coin/iron, /obj/item/material/coin/iron, /obj/item/material/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) + 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/poly diff --git a/code/game/objects/structures.dm b/code/game/objects/structures.dm index c00a04a0b4..65645cce4d 100644 --- a/code/game/objects/structures.dm +++ b/code/game/objects/structures.dm @@ -117,9 +117,8 @@ return istype(S, src) /obj/structure/proc/refresh_neighbors() - for(var/thing in RANGE_TURFS(src, 1)) - var/turf/T = thing - T.update_icon() + for(var/turf/thing as anything in RANGE_TURFS(src, 1)) + thing.update_icon() /obj/structure/proc/update_connections(propagate = 0) var/list/dirs = list() diff --git a/code/game/turfs/flooring/decals/floor_decals.dm b/code/game/turfs/flooring/decals/floor_decals.dm index a2c7237bd4..3cc78182ec 100644 --- a/code/game/turfs/flooring/decals/floor_decals.dm +++ b/code/game/turfs/flooring/decals/floor_decals.dm @@ -1,7 +1,7 @@ /obj/effect/floor_decal/reset name = "reset marker" -/obj/effect/floor_decal/reset/Initialize() +/obj/effect/floor_decal/reset/LateInitialize() SHOULD_CALL_PARENT(FALSE) var/turf/T = get_turf(src) T.remove_decals() diff --git a/code/game/turfs/flooring/flooring_decals.dm b/code/game/turfs/flooring/flooring_decals.dm index 42b0cd5a37..6716fb0679 100644 --- a/code/game/turfs/flooring/flooring_decals.dm +++ b/code/game/turfs/flooring/flooring_decals.dm @@ -8,36 +8,38 @@ var/list/floor_decals = list() icon = 'icons/turf/flooring/decals.dmi' layer = DECAL_LAYER appearance_flags = RESET_COLOR - var/supplied_dir var/detail_overlay var/detail_color -/obj/effect/floor_decal/New(newloc, newdir, newcolour, newappearance) - supplied_dir = newdir +/obj/effect/floor_decal/Initialize(mapload, newdir, newcolour, newappearance) + SHOULD_CALL_PARENT(FALSE) if(newappearance) appearance = newappearance if(newcolour) color = newcolour - ..(newloc) + if(newdir) setDir(newdir) -/obj/effect/floor_decal/Initialize() - SHOULD_CALL_PARENT(FALSE) - if(supplied_dir) setDir(supplied_dir) var/turf/T = get_turf(src) if(istype(T, /turf/simulated/floor) || istype(T, /turf/unsimulated/floor)) layer = T.is_plating() ? DECAL_PLATING_LAYER : DECAL_LAYER - var/cache_key = "[alpha]-[color]-[dir]-[icon_state]-[plane]-[layer]-[detail_overlay]-[detail_color]" - if(!floor_decals[cache_key]) - var/image/I = image(icon = src.icon, icon_state = src.icon_state, dir = src.dir) + var/cache_key = "[alpha][color][dir][icon_state][layer][detail_overlay][detail_color][appearance_flags]" + var/image/I = floor_decals[cache_key] + if(!I) + I = image(icon = src.icon, icon_state = src.icon_state, dir = src.dir) I.layer = layer I.appearance_flags = appearance_flags I.color = src.color I.alpha = src.alpha if(detail_overlay) - var/image/B = overlay_image(icon, "[detail_overlay]", flags=RESET_COLOR) - B.color = detail_color - I.add_overlay(B) + I.overlays |= overlay_image(icon, "[detail_overlay]", color = detail_color, flags = RESET_COLOR) floor_decals[cache_key] = I + if(!T.decals) T.decals = list() - T.decals |= floor_decals[cache_key] - T.add_overlay(floor_decals[cache_key]) + T.decals |= I + T.add_overlay(I) + atom_flags |= ATOM_FLAG_INITIALIZED return INITIALIZE_HINT_QDEL + +/*/obj/effect/floor_decal/LateInitialize() + SHOULD_CALL_PARENT(FALSE) + + qdel(src)*/ diff --git a/code/game/turfs/flooring/flooring_premade.dm b/code/game/turfs/flooring/flooring_premade.dm index 5b4d849c9a..e8651c7148 100644 --- a/code/game/turfs/flooring/flooring_premade.dm +++ b/code/game/turfs/flooring/flooring_premade.dm @@ -23,7 +23,7 @@ icon_state = "gcircuit" initial_flooring = /decl/flooring/reinforced/circuit/green light_outer_range = 2 - light_max_bright = 3 + light_max_bright = 1 light_color = COLOR_GREEN /turf/simulated/floor/blackgrid @@ -32,7 +32,7 @@ icon_state = "rcircuit" initial_flooring = /decl/flooring/reinforced/circuit/red light_outer_range = 2 - light_max_bright = 2 + light_max_bright = 1 light_color = COLOR_RED /turf/simulated/floor/greengrid/airless diff --git a/code/game/turfs/initialization/init.dm b/code/game/turfs/initialization/init.dm index 099515b6f5..9b2356f48f 100644 --- a/code/game/turfs/initialization/init.dm +++ b/code/game/turfs/initialization/init.dm @@ -6,7 +6,7 @@ /area/Initialize() . = ..() - for(var/turf/T in src) - if(turf_initializer) + if(turf_initializer) + for(var/turf/T in src) var/decl/turf_initializer/ti = decls_repository.get_decl(turf_initializer) ti.InitializeTurf(T) diff --git a/code/game/turfs/simulated/floor.dm b/code/game/turfs/simulated/floor.dm index b34c9ca506..6879ba7955 100644 --- a/code/game/turfs/simulated/floor.dm +++ b/code/game/turfs/simulated/floor.dm @@ -28,15 +28,16 @@ height = -FLUID_SHALLOW / 2 /turf/simulated/floor/is_plating() - return !flooring + return (!flooring && !initial_flooring) /turf/simulated/floor/protects_atom(atom/A) return (A.level <= 1 && !is_plating()) || ..() -/turf/simulated/floor/New(newloc, floortype) - ..(newloc) +/turf/simulated/floor/Initialize(mapload, floortype) + . = ..() if(!floortype && initial_flooring) floortype = initial_flooring + initial_flooring = null if(floortype) set_flooring(decls_repository.get_decl(floortype)) diff --git a/code/game/turfs/simulated/floor_icon.dm b/code/game/turfs/simulated/floor_icon.dm index 4c891d95e3..617e1dc34f 100644 --- a/code/game/turfs/simulated/floor_icon.dm +++ b/code/game/turfs/simulated/floor_icon.dm @@ -43,9 +43,6 @@ var/list/flooring_cache = list() has_smooth = ~(has_border & (NORTH | SOUTH | EAST | WEST)) - if(flooring.can_paint && decals && decals.len) - add_overlay(decals) - //We can only have inner corners if we're smoothed with something if (has_smooth && flooring.flags & TURF_HAS_INNER_CORNERS) for(var/direction in GLOB.cornerdirs) @@ -60,6 +57,9 @@ var/list/flooring_cache = list() if(!flooring.symmetric_test_link(src, get_step(src, direction))) add_overlay(get_flooring_overlay("[flooring.icon]_[flooring.icon_base]-edge-[direction]", "[flooring.icon_base]_edges", direction,(flooring.flags & TURF_HAS_EDGES))) + if(flooring.can_paint && length(decals)) + add_overlay(decals) + /* //Now lets handle those fancy floors which have many centre icons if(flooring.has_base_range) @@ -71,12 +71,6 @@ var/list/flooring_cache = list() icon_state = flooring.icon_base+"0" */ - if(decals && decals.len) - for(var/image/I in decals) - if(I.layer != DECAL_PLATING_LAYER) - continue - add_overlay(I) - if(is_plating() && !(isnull(broken) && isnull(burnt))) //temp, todo icon = 'icons/turf/flooring/plating.dmi' icon_state = "dmg[rand(1,4)]" diff --git a/code/game/turfs/simulated/wall_icon.dm b/code/game/turfs/simulated/wall_icon.dm index da90f80041..cb8b407c75 100644 --- a/code/game/turfs/simulated/wall_icon.dm +++ b/code/game/turfs/simulated/wall_icon.dm @@ -1,8 +1,4 @@ /turf/simulated/wall/proc/update_material() - - if(!material) - return - if(reinf_material) construction_stage = 6 else @@ -54,12 +50,14 @@ add_overlay(I) return - for(var/i = 1 to 4) - I = image('icons/turf/wall_masks.dmi', "[material.icon_base][wall_connections[i]]", dir = 1<<(i-1)) + var/conn_iter = 0 + for(var/connection in wall_connections) + conn_iter++ + I = image('icons/turf/wall_masks.dmi', "[material.icon_base][connection]", dir = 1<<(conn_iter-1)) I.color = base_color add_overlay(I) - if(other_connections[i] != "0") - I = image('icons/turf/wall_masks.dmi', "[material.icon_base]_other[wall_connections[i]]", dir = 1<<(i-1)) + if(other_connections[conn_iter] != "0") + I = image('icons/turf/wall_masks.dmi', "[material.icon_base]_other[connection]", dir = 1<<(conn_iter-1)) I.color = base_color add_overlay(I) @@ -116,32 +114,33 @@ var/list/wall_dirs = list() var/list/other_dirs = list() - for(var/turf/simulated/wall/W in orange(src, 1)) - switch(can_join_with(W)) - if(0) - continue - if(1) - wall_dirs += get_dir(src, W) - if(2) - wall_dirs += get_dir(src, W) - other_dirs += get_dir(src, W) - if(propagate) - W.update_connections() - W.update_icon() - - for(var/turf/T in orange(src, 1)) + for(var/turf/simulated/wall/W in RANGE_TURFS(src, 1)) + + for(var/turf/T as anything in RANGE_TURFS(src, 1)) + if(istype(T, /turf/simulated/wall)) + var/turf/simulated/wall/W = T + switch(can_join_with(W)) + if(0) + continue + if(1) + wall_dirs += get_dir(src, W) + if(2) + wall_dirs += get_dir(src, W) + other_dirs += get_dir(src, W) + if(propagate) + W.update_connections() + W.update_icon() + var/success = 0 for(var/obj/O in T) for(var/b_type in blend_objects) if(istype(O, b_type)) - success = 1 - for(var/nb_type in noblend_objects) - if(istype(O, nb_type)) - success = 0 - if(success) + success = TRUE + break + for(var/nb_type in noblend_objects) + if(istype(O, nb_type)) + success = FALSE break - if(success) - break if(success) wall_dirs += get_dir(src, T) diff --git a/code/game/turfs/simulated/wall_shuttle.dm b/code/game/turfs/simulated/wall_shuttle.dm index 9ad745253f..f8328c89a8 100644 --- a/code/game/turfs/simulated/wall_shuttle.dm +++ b/code/game/turfs/simulated/wall_shuttle.dm @@ -18,8 +18,8 @@ var/corner_overlay_state = "diagonalWall" var/image/corner_overlay -/turf/simulated/shuttle/wall/corner/New() - ..() +/turf/simulated/shuttle/wall/corner/Initialize(mapload) + . = ..(mapload, ) reset_base_appearance() reset_overlay() diff --git a/code/game/turfs/simulated/wall_types.dm b/code/game/turfs/simulated/wall_types.dm index 723e097dba..e57e9d9bfd 100644 --- a/code/game/turfs/simulated/wall_types.dm +++ b/code/game/turfs/simulated/wall_types.dm @@ -2,8 +2,8 @@ /turf/simulated/wall/prepainted paint_color = COLOR_GUNMETAL -/turf/simulated/wall/prepainted/New(newloc) - ..(newloc,MATERIAL_STEEL) +/turf/simulated/wall/prepainted/Initialize(mapload) + . = ..(mapload, MATERIAL_STEEL) /turf/simulated/wall/r_wall/prepainted paint_color = COLOR_GUNMETAL @@ -12,8 +12,8 @@ icon_state = "r_generic" explosion_block = 4 -/turf/simulated/wall/r_wall/New(newloc) - ..(newloc, MATERIAL_PLASTEEL,MATERIAL_PLASTEEL) //3strong +/turf/simulated/wall/r_wall/Initialize(mapload) + . = ..(mapload, MATERIAL_PLASTEEL, MATERIAL_PLASTEEL) //3strong /turf/simulated/wall/r_wall/hull name = "hull" @@ -28,8 +28,8 @@ /turf/simulated/wall/r_wall/prepainted paint_color = COLOR_WALL_GUNMETAL -/turf/simulated/wall/r_wall/hull/Initialize() - . = ..() +/turf/simulated/wall/r_wall/hull/Initialize(mapload) + . = ..(mapload, ) paint_color = color color = null //color is just for mapping if(prob(40)) @@ -49,113 +49,113 @@ icon_state = "titanium" explosion_block = 2 -/turf/simulated/wall/titanium/New(newloc) - ..(newloc,MATERIAL_TITANIUM) +/turf/simulated/wall/titanium/Initialize(mapload) + . = ..(mapload, MATERIAL_TITANIUM) /turf/simulated/wall/r_titanium icon_state = "r_titanium" -/turf/simulated/wall/r_titanium/New(newloc) - ..(newloc, MATERIAL_TITANIUM,MATERIAL_TITANIUM) +/turf/simulated/wall/r_titanium/Initialize(mapload) + . = ..(mapload, MATERIAL_TITANIUM, MATERIAL_TITANIUM) /turf/simulated/wall/ocp_wall icon_state = "r_ocp" explosion_block = 2 -/turf/simulated/wall/ocp_wall/New(newloc) - ..(newloc, MATERIAL_OSMIUM_CARBIDE_PLASTEEL, MATERIAL_OSMIUM_CARBIDE_PLASTEEL) +/turf/simulated/wall/ocp_wall/Initialize(mapload) + . = ..(mapload, MATERIAL_OSMIUM_CARBIDE_PLASTEEL, MATERIAL_OSMIUM_CARBIDE_PLASTEEL) //Material walls -/turf/simulated/wall/r_wall/rglass_wall/New(newloc) - ..(newloc, MATERIAL_GLASS, MATERIAL_STEEL) +/turf/simulated/wall/r_wall/rglass_wall/Initialize(mapload) + . = ..(mapload, MATERIAL_GLASS, MATERIAL_STEEL) icon_state = "r_generic" -/turf/simulated/wall/iron/New(newloc) - ..(newloc,MATERIAL_IRON) +/turf/simulated/wall/iron/Initialize(mapload) + . = ..(mapload, MATERIAL_IRON) -/turf/simulated/wall/uranium/New(newloc) - ..(newloc,MATERIAL_URANIUM) +/turf/simulated/wall/uranium/Initialize(mapload) + . = ..(mapload, MATERIAL_URANIUM) -/turf/simulated/wall/diamond/New(newloc) - ..(newloc,MATERIAL_DIAMOND) +/turf/simulated/wall/diamond/Initialize(mapload) + . = ..(mapload, MATERIAL_DIAMOND) -/turf/simulated/wall/gold/New(newloc) - ..(newloc,MATERIAL_GOLD) +/turf/simulated/wall/gold/Initialize(mapload) + . = ..(mapload, MATERIAL_GOLD) -/turf/simulated/wall/silver/New(newloc) - ..(newloc,MATERIAL_SILVER) +/turf/simulated/wall/silver/Initialize(mapload) + . = ..(mapload, MATERIAL_SILVER) -/turf/simulated/wall/phoron/New(newloc) - ..(newloc,MATERIAL_PHORON) +/turf/simulated/wall/phoron/Initialize(mapload) + . = ..(mapload, MATERIAL_PHORON) -/turf/simulated/wall/sandstone/New(newloc) - ..(newloc,MATERIAL_SANDSTONE) +/turf/simulated/wall/sandstone/Initialize(mapload) + . = ..(mapload, MATERIAL_SANDSTONE) -/turf/simulated/wall/rutile/New(newloc) - ..(newloc,MATERIAL_RUTILE) +/turf/simulated/wall/rutile/Initialize(mapload) + . = ..(mapload, MATERIAL_RUTILE) /turf/simulated/wall/wood blend_turfs = list(/turf/simulated/wall/cult, /turf/simulated/wall) icon_state = "woodneric" -/turf/simulated/wall/wood/New(newloc) - ..(newloc,MATERIAL_WOOD) +/turf/simulated/wall/wood/Initialize(mapload) + . = ..(mapload, MATERIAL_WOOD) /turf/simulated/wall/mahogany blend_turfs = list(/turf/simulated/wall/cult, /turf/simulated/wall) icon_state = "woodneric" -/turf/simulated/wall/mahogany/New(newloc) - ..(newloc,MATERIAL_MAHOGANY) +/turf/simulated/wall/mahogany/Initialize(mapload) + . = ..(mapload, MATERIAL_MAHOGANY) /turf/simulated/wall/maple blend_turfs = list(/turf/simulated/wall/cult, /turf/simulated/wall) icon_state = "woodneric" -/turf/simulated/wall/maple/New(newloc) - ..(newloc,MATERIAL_MAPLE) +/turf/simulated/wall/maple/Initialize(mapload) + . = ..(mapload, MATERIAL_MAPLE) /turf/simulated/wall/ebony blend_turfs = list(/turf/simulated/wall/cult, /turf/simulated/wall) icon_state = "woodneric" -/turf/simulated/wall/ebony/New(newloc) - ..(newloc,MATERIAL_EBONY) +/turf/simulated/wall/ebony/Initialize(mapload) + . = ..(mapload, MATERIAL_EBONY) /turf/simulated/wall/walnut blend_turfs = list(/turf/simulated/wall/cult, /turf/simulated/wall) icon_state = "woodneric" -/turf/simulated/wall/walnut/New(newloc) - ..(newloc,MATERIAL_WALNUT) +/turf/simulated/wall/walnut/Initialize(mapload) + . = ..(mapload, MATERIAL_WALNUT) -/turf/simulated/wall/ironphoron/New(newloc) - ..(newloc,MATERIAL_IRON,MATERIAL_PHORON) +/turf/simulated/wall/ironphoron/Initialize(mapload) + . = ..(mapload, MATERIAL_IRON,MATERIAL_PHORON) -/turf/simulated/wall/golddiamond/New(newloc) - ..(newloc,MATERIAL_GOLD,MATERIAL_DIAMOND) +/turf/simulated/wall/golddiamond/Initialize(mapload) + . = ..(mapload, MATERIAL_GOLD,MATERIAL_DIAMOND) -/turf/simulated/wall/silvergold/New(newloc) - ..(newloc,MATERIAL_SILVER,MATERIAL_GOLD) +/turf/simulated/wall/silvergold/Initialize(mapload) + . = ..(mapload, MATERIAL_SILVER,MATERIAL_GOLD) -/turf/simulated/wall/sandstonediamond/New(newloc) - ..(newloc,MATERIAL_SANDSTONE,MATERIAL_DIAMOND) +/turf/simulated/wall/sandstonediamond/Initialize(mapload) + . = ..(mapload, MATERIAL_SANDSTONE,MATERIAL_DIAMOND) -/turf/simulated/wall/crystal/New(newloc) - ..(newloc,MATERIAL_CRYSTAL) +/turf/simulated/wall/crystal/Initialize(mapload) + . = ..(mapload, MATERIAL_CRYSTAL) -/turf/simulated/wall/voxshuttle/New(newloc) - ..(newloc, MATERIAL_VOX) +/turf/simulated/wall/voxshuttle/Initialize(mapload) + . = ..(mapload, MATERIAL_VOX) /turf/simulated/wall/voxshuttle/attackby() return -/turf/simulated/wall/growth/New(newloc) - ..(newloc, MATERIAL_GROWTH) +/turf/simulated/wall/growth/Initialize(mapload) + . = ..(mapload, MATERIAL_GROWTH) -/turf/simulated/wall/concrete/New(newloc) - ..(newloc,MATERIAL_CONCRETE) +/turf/simulated/wall/concrete/Initialize(mapload) + . = ..(mapload, MATERIAL_CONCRETE) //Alien metal walls /turf/simulated/wall/alium @@ -163,19 +163,19 @@ floor_type = /turf/simulated/floor/fixed/alium blend_objects = newlist() -/turf/simulated/wall/alium/New(newloc) - ..(newloc,MATERIAL_ALIENALLOY) +/turf/simulated/wall/alium/Initialize(mapload) + . = ..(mapload, MATERIAL_ALIENALLOY) //Cult wall /turf/simulated/wall/cult icon_state = "cult" blend_turfs = list(/turf/simulated/wall) -/turf/simulated/wall/cult/New(newloc, reinforce = 0) - ..(newloc, MATERIAL_CULT, reinforce ? MATERIAL_REINFORCED_CULT : null) +/turf/simulated/wall/cult/Initialize(mapload, reinforce = 0) + . = ..(mapload, MATERIAL_CULT, reinforce ? MATERIAL_REINFORCED_CULT : null) -/turf/simulated/wall/cult/reinf/New(newloc) - ..(newloc, 1) +/turf/simulated/wall/cult/reinf/Initialize(mapload) + . = ..(mapload, TRUE) /turf/simulated/wall/cult/dismantle_wall() GLOB.cult.remove_cultiness(CULTINESS_PER_TURF) diff --git a/code/game/turfs/simulated/walls.dm b/code/game/turfs/simulated/walls.dm index 4a5d2b3324..bde4caac44 100644 --- a/code/game/turfs/simulated/walls.dm +++ b/code/game/turfs/simulated/walls.dm @@ -1,3 +1,7 @@ +GLOBAL_LIST_INIT(default_wall_blend_turfs, list(/turf/simulated/wall/cult, /turf/simulated/wall/wood, /turf/simulated/wall/walnut, /turf/simulated/wall/maple, /turf/simulated/wall/mahogany, /turf/simulated/wall/ebony)) +GLOBAL_LIST_INIT(default_wall_blend_objects, list(/obj/machinery/door, /obj/structure/wall_frame, /obj/structure/grille, /obj/structure/window/reinforced/full, /obj/structure/window/reinforced/polarized/full, /obj/structure/window/shuttle, ,/obj/structure/window/phoronbasic/full, /obj/structure/window/phoronreinforced/full)) +GLOBAL_LIST_INIT(default_wall_noblend_objects, list(/obj/machinery/door/window)) + /turf/simulated/wall name = "wall" desc = "A huge chunk of metal used to separate rooms." @@ -12,7 +16,7 @@ explosion_block = 1 var/damage_overlay = 0 - var/global/damage_overlays[16] + var/static/damage_overlays[16] var/active var/can_open = 0 var/material/material @@ -25,14 +29,20 @@ var/floor_type = /turf/simulated/floor/plating //turf it leaves after destruction var/paint_color var/stripe_color - var/global/list/wall_stripe_cache = list() - var/list/blend_turfs = list(/turf/simulated/wall/cult, /turf/simulated/wall/wood, /turf/simulated/wall/walnut, /turf/simulated/wall/maple, /turf/simulated/wall/mahogany, /turf/simulated/wall/ebony) - var/list/blend_objects = list(/obj/machinery/door, /obj/structure/wall_frame, /obj/structure/grille, /obj/structure/window/reinforced/full, /obj/structure/window/reinforced/polarized/full, /obj/structure/window/shuttle, ,/obj/structure/window/phoronbasic/full, /obj/structure/window/phoronreinforced/full) // Objects which to blend with - var/list/noblend_objects = list(/obj/machinery/door/window) //Objects to avoid blending with (such as children of listed blend objects.) + var/static/list/wall_stripe_cache = list() + var/list/blend_turfs // Turfs which to blend with + var/list/blend_objects // Objects which to blend with + var/list/noblend_objects //Objects to avoid blending with (such as children of listed blend objects.) var/dismantling = FALSE -/turf/simulated/wall/New(newloc, materialtype, rmaterialtype) - ..(newloc) +/turf/simulated/wall/Initialize(mapload, materialtype, rmaterialtype) + if(!blend_turfs) + blend_turfs = GLOB.default_wall_blend_turfs + if(!blend_objects) + blend_objects = GLOB.default_wall_blend_objects + if(!noblend_objects) + noblend_objects = GLOB.default_wall_noblend_objects + icon_state = "blank" if(!materialtype) materialtype = DEFAULT_WALL_MATERIAL @@ -42,7 +52,6 @@ update_material() hitsound = material.hitsound -/turf/simulated/wall/Initialize() set_extension(src, /datum/extension/penetration/proc_call, PROC_REF(CheckPenetration)) START_PROCESSING(SSturf, src) //Used for radiation. . = ..() @@ -283,10 +292,10 @@ if(material.combustion_effect(src, temperature, 0.7)) spawn(2) new /obj/structure/girder(src) - src.ChangeTurf(/turf/simulated/floor) - for(var/turf/simulated/wall/W in range(3,src)) + src.ChangeTurf(/turf/simulated/floor/plating) + for(var/turf/simulated/wall/W in RANGE_TURFS(src, 3)) W.burn((temperature/4)) - for(var/obj/machinery/door/airlock/phoron/D in range(3,src)) + for(var/obj/machinery/door/airlock/phoron/D in orange(3,src)) D.ignite(temperature/4) /turf/simulated/wall/get_color() diff --git a/code/game/world.dm b/code/game/world.dm index 818175344b..e8367512fb 100644 --- a/code/game/world.dm +++ b/code/game/world.dm @@ -489,12 +489,6 @@ GLOBAL_VAR_INIT(world_topic_last, world.timeofday) #undef SET_THROTTLE /world/Reboot(reason) - /*spawn(0) - sound_to(world, sound(pick('sounds/AI/newroundsexy.ogg','sounds/misc/apcdestroyed.ogg','sounds/misc/bangindonk.ogg')))// random end sounds!! - LastyBatsy - - */ - TgsReboot() - Master.Shutdown() if(config.server) //if you set a server location in config.txt, it sends you there instead of trying to reconnect to the same world address. -- NeoFite @@ -507,12 +501,13 @@ GLOBAL_VAR_INIT(world_topic_last, world.timeofday) to_world("World reboot waiting for external scripts. Please be patient.") return + TgsReboot() ..(reason) /world/Del() var/debug_server = world.GetConfig("env", "AUXTOOLS_DEBUG_DLL") if (debug_server) - LIBCALL(debug_server, "auxtools_shutdown")() + call_ext(debug_server, "auxtools_shutdown")() callHook("shutdown") return ..() @@ -631,82 +626,11 @@ GLOBAL_VAR_INIT(world_topic_last, world.timeofday) GLOB.world_qdel_log = file("[GLOB.log_directory]/qdel.log") GLOB.query_debug_log = file("[GLOB.log_directory]/sql.log") GLOB.tgui_log = file("[GLOB.log_directory]/tgui.log") +#ifdef REFERENCE_TRACKING_LOG_APART + GLOB.harddel_log = file("[GLOB.log_directory]/harddels.log") +#endif to_file(GLOB.world_qdel_log, "\n\nStarting up round ID [game_id]. [time_stamp()]\n---------------------") -#define FAILED_DB_CONNECTION_CUTOFF 5 -var/failed_db_connections = 0 -var/failed_old_db_connections = 0 - -/proc/setup_database_connection() - - if(failed_db_connections > FAILED_DB_CONNECTION_CUTOFF) //If it failed to establish a connection more than 5 times in a row, don't bother attempting to conenct anymore. - return 0 - - if(!dbcon) - dbcon = new() - - var/user = sqlfdbklogin - var/pass = sqlfdbkpass - var/db = sqlfdbkdb - var/address = sqladdress - var/port = sqlport - - dbcon.Connect("dbi:mysql:[db]:[address]:[port]","[user]","[pass]") - . = dbcon.IsConnected() - if ( . ) - failed_db_connections = 0 //If this connection succeeded, reset the failed connections counter. - else - failed_db_connections++ //If it failed, increase the failed connections counter. - to_world_log(dbcon.ErrorMsg()) - return . - -//This proc ensures that the connection to the feedback database (global variable dbcon) is established -/proc/establish_db_connection() - if(failed_db_connections > FAILED_DB_CONNECTION_CUTOFF) - return 0 - - if(!dbcon || !dbcon.IsConnected()) - return setup_database_connection() - else - return 1 - -//These two procs are for the old database, while it's being phased out. See the tgstation.sql file in the SQL folder for more information. -/proc/setup_old_database_connection() - - if(failed_old_db_connections > FAILED_DB_CONNECTION_CUTOFF) //If it failed to establish a connection more than 5 times in a row, don't bother attempting to conenct anymore. - return 0 - - if(!dbcon_old) - dbcon_old = new() - - var/user = sqllogin - var/pass = sqlpass - var/db = sqldb - var/address = sqladdress - var/port = sqlport - - dbcon_old.Connect("dbi:mysql:[db]:[address]:[port]","[user]","[pass]") - . = dbcon_old.IsConnected() - if ( . ) - failed_old_db_connections = 0 //If this connection succeeded, reset the failed connections counter. - else - failed_old_db_connections++ //If it failed, increase the failed connections counter. - to_world_log(dbcon.ErrorMsg()) - - return . - -//This proc ensures that the connection to the feedback database (global variable dbcon) is established -/proc/establish_old_db_connection() - if(failed_old_db_connections > FAILED_DB_CONNECTION_CUTOFF) - return 0 - - if(!dbcon_old || !dbcon_old.IsConnected()) - return setup_old_database_connection() - else - return 1 - -#undef FAILED_DB_CONNECTION_CUTOFF - /** * Sends a message to a set of cross-communications-enabled servers using world topic calls * diff --git a/code/modules/SCP/SCPs/SCP-012.dm b/code/modules/SCP/SCPs/SCP-012.dm index ce1c958ad8..b9bc29574a 100644 --- a/code/modules/SCP/SCPs/SCP-012.dm +++ b/code/modules/SCP/SCPs/SCP-012.dm @@ -49,13 +49,8 @@ return ..() //Mechanics -/obj/item/paper/scp012/proc/memetic_effect() - - var/mob/living/carbon/human/H - var/obj/item/paper/scp012/A = locate(/obj/item/paper/scp012/) in GLOB.SCP_list - if (!A) - return - if(!H || H.stat == UNCONSCIOUS || !H.can_see(A)) //Unconscious individuals cant keep hurting themselves +/obj/item/paper/scp012/proc/memetic_effect(mob/living/carbon/human/H) + if(!H || H.stat == UNCONSCIOUS || !H.can_see(src)) //Unconscious individuals cant keep hurting themselves return if(get_dist(H, src) > 1) diff --git a/code/modules/SCP/SCPs/SCP-173.dm b/code/modules/SCP/SCPs/SCP-173.dm index 270ff42b88..f70bfd6da7 100644 --- a/code/modules/SCP/SCPs/SCP-173.dm +++ b/code/modules/SCP/SCPs/SCP-173.dm @@ -191,14 +191,14 @@ /mob/living/scp173/Life() . = ..() - var/list/our_view = dview(7, istype(loc, /obj/structure/scp173_cage) ? loc : src) //In case we are caged, we must see if our cage is being looked at rather than us + var/list/our_view = dview(9, istype(loc, /obj/structure/scp173_cage) ? loc : src) //In case we are caged, we must see if our cage is being looked at rather than us for(var/mob/living/carbon/human/H in next_blinks) if(!(H in our_view)) H.disable_blink(src) next_blinks -= H for(var/mob/living/carbon/human/H in our_view) H.enable_blink(src) - next_blinks += H + next_blinks |= H handle_regular_hud_updates() process_blink_hud(src) if(!isturf(loc)) // Inside of something @@ -270,7 +270,7 @@ var/atom/A = src if(istype(loc, /obj/structure/scp173_cage)) A = loc - for(var/mob/living/L in dview(7, A)) + for(var/mob/living/L in dview(9, A)) if((istype(L, /mob/living/simple_animal/friendly/scp131)) && (InCone(L, L.dir))) return TRUE if(!istype(L, /mob/living/carbon/human)) @@ -334,7 +334,7 @@ /mob/living/scp173/proc/Defecate() var/feces_amount = CheckFeces() - if(feces_amount >= 30 && length(GLOB.clients) <= SCP.min_playercount && !client) //If we're lowpop we cant breach ourselves + if(feces_amount >= 30 && (!SCP.has_minimum_players()) && !client) //If we're lowpop we cant breach ourselves return if(!isobj(loc) && world.time > defecation_cooldown) defecation_cooldown = world.time + defecation_cooldown_time @@ -381,7 +381,7 @@ var/list/possible_human_targets = list() - for(var/mob/living/carbon/human/H in dview(14, src)) //Identifies possible human targets. Range is double regular view to allow 173 to pursue tarets outside of world.view to make evading him harder. + for(var/mob/living/carbon/human/H in dview(18, src)) //Identifies possible human targets. Range is double regular view to allow 173 to pursue tarets outside of world.view to make evading him harder. if(H.SCP || H.stat == DEAD) continue if(!LAZYLEN(get_path_to(src, H, flee_distance * 2, min_target_dist = 1))) @@ -506,7 +506,7 @@ LAZYREMOVE(steps_to_target, step_turf) /mob/living/scp173/proc/get_viable_light_target() //Gets a viable light bulb target - for(var/obj/machinery/light/light_in_view in dview(7, src)) + for(var/obj/machinery/light/light_in_view in dview(9, src)) if(get_area(light_in_view) == spawn_area) continue if(light_in_view.get_status() != LIGHT_OK) diff --git a/code/modules/SCP/SCPs/SCP-2427-3.dm b/code/modules/SCP/SCPs/SCP-2427-3.dm index 4fbe6d8be2..666700de73 100644 --- a/code/modules/SCP/SCPs/SCP-2427-3.dm +++ b/code/modules/SCP/SCPs/SCP-2427-3.dm @@ -65,7 +65,7 @@ SCP_PLAYABLE ) - SCP.min_playercount = 20 + SCP.min_playercount = 30 spawn_area = get_area(src) add_language(LANGUAGE_ENGLISH, FALSE) @@ -198,7 +198,7 @@ to_chat(src, SPAN_WARNING("\The [A] is too far away.")) return - if(!IsEnraged() && (get_area(A) == spawn_area)) + if((!IsEnraged() || !SCP.has_minimum_players()) && (get_area(A) == spawn_area)) to_chat(src, SPAN_WARNING("You cannot open blast doors in your containment zone unless enraged.")) return @@ -262,7 +262,8 @@ if(LAZYLEN(pure_check)) L = pick(pure_check) CheckPurity(L) - AdjustSatiety(-satiety_reduction_per_tick) + if(SCP.has_minimum_players()) + AdjustSatiety(-satiety_reduction_per_tick) if(satiety <= min_satiety) // Starvation, so you don't just run at mach 3 all the time adjustBruteLoss(maxHealth * starvation_damage) diff --git a/code/modules/SCP/SCPs/SCP-294.dm b/code/modules/SCP/SCPs/SCP-294.dm index 914cd4874f..1fcf3052e4 100644 --- a/code/modules/SCP/SCPs/SCP-294.dm +++ b/code/modules/SCP/SCPs/SCP-294.dm @@ -113,13 +113,12 @@ break if(!chosen_reagent) - for(var/possible in GLOB.chemical_reagents_list) - if(is_abstract(possible)) + for(var/datum/reagent/possible as anything in subtypesof(/datum/reagent)) + if(is_abstract(possible) || !initial(possible.name)) continue - var/datum/reagent/possible_reagent = possible - var/chem_name = initial(possible_reagent.name) //It dosent work if we dont do this black magic + var/chem_name = initial(possible.name) //It dosent work if we dont do this black magic if(findtext(chosen_reagen_text, chem_name)) - chosen_reagent = possible_reagent + chosen_reagent = possible break if(!chosen_reagent || (chosen_reagent in blacklist)) diff --git a/code/modules/SCP/SCPs/SCP-912.dm b/code/modules/SCP/SCPs/SCP-912.dm index 06dcf7602d..65f132d148 100644 --- a/code/modules/SCP/SCPs/SCP-912.dm +++ b/code/modules/SCP/SCPs/SCP-912.dm @@ -11,12 +11,9 @@ "SCP-912", //Name (Should not be the scp desg, more like what it can be described as to viewers) SCP_SAFE, //Obj Class "912", //Numerical Designation - SCP_PLAYABLE|SCP_ROLEPLAY + SCP_ROLEPLAY ) - SCP.min_time = 999 MINUTES - SCP.min_playercount = 999 - init_skills() var/decl/hierarchy/outfit/scp912/outfit = outfit_by_type(/decl/hierarchy/outfit/scp912) diff --git a/code/modules/SCP/scp.dm b/code/modules/SCP/scp.dm index 4db3853adb..4ad0df54c2 100644 --- a/code/modules/SCP/scp.dm +++ b/code/modules/SCP/scp.dm @@ -55,9 +55,7 @@ var/mob/pMob = parent if(LAZYLEN(name)) pMob.fully_replace_character_name(name) - - if(metaFlags & SCP_PLAYABLE) - pMob.status_flags += NO_ANTAG + pMob.status_flags += NO_ANTAG if(metaFlags & SCP_DISABLED) log_and_message_staff("Disabled SCP-[designation] spawned and subsequently deleted! Do not spawn disabled SCPs!", location = get_turf(parent)) @@ -103,6 +101,9 @@ if(job && (job.department_flag & (COM|SCI|SEC))) to_chat(examinee, SPAN_CLASS("scp", "You know this is SCP-[designation]!")) +/datum/scp/proc/has_minimum_players() + return length(GLOB.clients) >= min_playercount + /datum/scp/proc/onGain() /datum/scp/proc/onLose() diff --git a/code/modules/admin/admin.dm b/code/modules/admin/admin.dm index 6d354d5a89..4f1d5d8134 100644 --- a/code/modules/admin/admin.dm +++ b/code/modules/admin/admin.dm @@ -848,47 +848,6 @@ var/global/floorIsLava = 0 S.harvest(usr,0,0,1) log_admin("[key_name(usr)] spawned [seedtype] fruit at ([usr.x],[usr.y],[usr.z])") -/datum/admins/proc/spawn_custom_item() - set category = "Debug" - set desc = "Spawn a custom item." - set name = "Spawn Custom Item" - - if(!check_rights(R_SPAWN)) return - - var/owner = input("Select a ckey.", "Spawn Custom Item") as null|anything in SScustomitems.custom_items_by_ckey - if(!owner|| !SScustomitems.custom_items_by_ckey[owner]) - return - - var/list/possible_items = list() - for(var/datum/custom_item/item in SScustomitems.custom_items_by_ckey[owner]) - possible_items[item.item_name] = item - var/item_to_spawn = input("Select an item to spawn.", "Spawn Custom Item") as null|anything in possible_items - if(item_to_spawn && possible_items[item_to_spawn]) - var/datum/custom_item/item_datum = possible_items[item_to_spawn] - item_datum.spawn_item(get_turf(usr)) - -/datum/admins/proc/check_custom_items() - - set category = "Debug" - set desc = "Check the custom item list." - set name = "Check Custom Items" - - if(!check_rights(R_SPAWN)) return - - if(!SScustomitems.custom_items_by_ckey) - to_chat(usr, "Custom item list is null.") - return - - if(!SScustomitems.custom_items_by_ckey.len) - to_chat(usr, "Custom item list not populated.") - return - - for(var/assoc_key in SScustomitems.custom_items_by_ckey) - to_chat(usr, "[assoc_key] has:") - var/list/current_items = SScustomitems.custom_items_by_ckey[assoc_key] - for(var/datum/custom_item/item in current_items) - to_chat(usr, "- name: [item.item_name] icon: [item.item_icon_state] path: [item.item_path] desc: [item.item_desc]") - /datum/admins/proc/spawn_plant(seedtype in SSplants.seeds) set category = "Debug" set desc = "Spawn a spreading plant effect." diff --git a/code/modules/admin/admin_ranks.dm b/code/modules/admin/admin_ranks.dm index 6f72e3e4e3..75bd741668 100644 --- a/code/modules/admin/admin_ranks.dm +++ b/code/modules/admin/admin_ranks.dm @@ -106,7 +106,6 @@ var/list/admin_ranks = list() //list of all ranks with associated rights else //The current admin system uses SQL - //establish_db_connection() if(!SSdbcore.Connect()) error("Failed to connect to database in load_admins(). Reverting to legacy system.") log_misc("Failed to connect to database in load_admins(). Reverting to legacy system.") diff --git a/code/modules/admin/admin_verbs.dm b/code/modules/admin/admin_verbs.dm index 1e8cb7e04c..59aea7500b 100644 --- a/code/modules/admin/admin_verbs.dm +++ b/code/modules/admin/admin_verbs.dm @@ -135,8 +135,6 @@ var/list/admin_verbs_fun = list( var/list/admin_verbs_spawn = list( /datum/admins/proc/spawn_fruit, /datum/admins/proc/spawn_fluid_verb, - /datum/admins/proc/spawn_custom_item, - /datum/admins/proc/check_custom_items, /datum/admins/proc/spawn_plant, /datum/admins/proc/spawn_atom, // allows us to spawn instances, /datum/admins/proc/spawn_artifact, diff --git a/code/modules/admin/player_notes.dm b/code/modules/admin/player_notes.dm index f23443e74a..164322cc14 100644 --- a/code/modules/admin/player_notes.dm +++ b/code/modules/admin/player_notes.dm @@ -64,6 +64,8 @@ if(!infos || infos.len < index) return var/datum/player_info/item = infos[index] + if(!(item.author == usr.key || item.author == "Adminbot" || ishost(usr))) + return infos.Remove(item) to_save(info, infos) diff --git a/code/modules/admin/ticket.dm b/code/modules/admin/ticket.dm index c1d139b57b..ebbbc79b9c 100644 --- a/code/modules/admin/ticket.dm +++ b/code/modules/admin/ticket.dm @@ -209,6 +209,9 @@ var/list/ticket_panels = list() if(!ticket) return + if(!(check_rights(R_ADMIN|R_MOD, FALSE, usr)) && (ticket.owner.ckey != usr.ckey)) + return + switch(href_list["action"]) if("view") open_ticket = ticket diff --git a/code/modules/admin/verbs/fluids.dm b/code/modules/admin/verbs/fluids.dm index 5c23a12d82..5583420b9b 100644 --- a/code/modules/admin/verbs/fluids.dm +++ b/code/modules/admin/verbs/fluids.dm @@ -6,7 +6,9 @@ if(!check_rights(R_SPAWN)) return var/mob/user = usr if(istype(user) && user.client) - for(var/thing in trange(1, get_turf(user))) + var/turf/main_turf = get_turf(user) + log_and_message_staff("has spawned water at [main_turf.x],[main_turf.y],[main_turf.z] in [main_turf.loc]") + for(var/thing in RANGE_TURFS(get_turf(user), 1)) var/turf/T = thing T.add_fluid(2000, /datum/reagent/water) diff --git a/code/modules/ai/ai_holder_combat.dm b/code/modules/ai/ai_holder_combat.dm index 35ab2340bd..135a409f25 100644 --- a/code/modules/ai/ai_holder_combat.dm +++ b/code/modules/ai/ai_holder_combat.dm @@ -31,6 +31,8 @@ if (lose_target()) // We lost them (returns TRUE if we found something else to do) ai_log("engage_target() : Pursuing other options (last seen, or a new target).", AI_LOG_TRACE) return + if(!target) + return var/distance = get_dist(holder, target) ai_log("engage_target() : Distance to target ([target]) is [distance].", AI_LOG_TRACE) diff --git a/code/modules/asset_cache/assets/fontawesome.dm b/code/modules/asset_cache/assets/fontawesome.dm index 8f1e24d40b..32756acca0 100644 --- a/code/modules/asset_cache/assets/fontawesome.dm +++ b/code/modules/asset_cache/assets/fontawesome.dm @@ -1,10 +1,9 @@ /datum/asset/simple/namespaced/fontawesome assets = list( - "fa-regular-400.eot" = 'html/font-awesome/webfonts/fa-regular-400.eot', - "fa-regular-400.woff" = 'html/font-awesome/webfonts/fa-regular-400.woff', - "fa-solid-900.eot" = 'html/font-awesome/webfonts/fa-solid-900.eot', - "fa-solid-900.woff" = 'html/font-awesome/webfonts/fa-solid-900.woff', - "v4shim.css" = 'html/font-awesome/css/v4-shims.min.css', + "fa-regular-400.ttf" = 'html/font-awesome/webfonts/fa-regular-400.ttf', + "fa-solid-900.ttf" = 'html/font-awesome/webfonts/fa-solid-900.ttf', + "fa-v4compatibility.ttf" = 'html/font-awesome/webfonts/fa-v4compatibility.ttf', + "v4shim.css" = 'html/font-awesome/css/v4-shims.min.css', ) parents = list( "font-awesome.css" = 'html/font-awesome/css/all.min.css', diff --git a/code/modules/atmospherics/components/omni_devices/omni_base.dm b/code/modules/atmospherics/components/omni_devices/omni_base.dm index 396198ca82..db330ad89f 100644 --- a/code/modules/atmospherics/components/omni_devices/omni_base.dm +++ b/code/modules/atmospherics/components/omni_devices/omni_base.dm @@ -51,12 +51,16 @@ build_icons() /obj/machinery/atmospherics/omni/on_update_icon() + var/list/overlays_copy = list() if(stat & NOPOWER) - set_overlays(overlays_off) + overlays_copy |= overlays_off + set_overlays(overlays_copy) else if(error_check()) - set_overlays(overlays_error) + overlays_copy |= overlays_error + set_overlays(overlays_copy) else - set_overlays(use_power ? (overlays_on) : (overlays_off)) + overlays_copy |= use_power ? (overlays_on) : (overlays_off) + set_overlays(overlays_copy) underlays = underlays_current diff --git a/code/modules/client/client_defines.dm b/code/modules/client/client_defines.dm index 760ca1fd0c..19b2cb9f97 100644 --- a/code/modules/client/client_defines.dm +++ b/code/modules/client/client_defines.dm @@ -76,6 +76,8 @@ */ preload_rsc = 0 + var/atom/movable/screen/click_catcher/void + //Hide top bars var/fullscreen = FALSE //Hide status bar (bottom left) diff --git a/code/modules/client/client_procs.dm b/code/modules/client/client_procs.dm index b266234fce..7bb4cf28ca 100644 --- a/code/modules/client/client_procs.dm +++ b/code/modules/client/client_procs.dm @@ -249,6 +249,8 @@ connection_realtime = world.realtime connection_timeofday = world.timeofday + apply_clickcatcher() + if (SSmisc.changelog_hash && prefs.lastchangelog != SSmisc.changelog_hash) //bolds the changelog button on the interface so we know there are updates. to_chat(src, SPAN_INFO("You have unread updates in the changelog.")) winset(src, "infowindow.changelog", "background-color=#eaeaea;font-style=bold") @@ -472,6 +474,37 @@ if(inactivity > duration) return inactivity return 0 +/client/proc/get_default_view() + return getScreenSize(get_preference_value(/datum/client_preference/widescreen) == GLOB.PREF_YES) + +/client/proc/has_default_view() + var/default_view = get_default_view() + var/current_view = getviewsize(view) + return (current_view[1] == default_view[1]) && (current_view[2] == default_view[2]) + +/client/proc/change_view(new_size) + if(isnull(new_size)) + CRASH("change_view called without argument.") + + view = new_size + apply_clickcatcher() + update_skybox(TRUE) + if(mob) + mob.update_cone_size() + mob.reload_fullscreen() + mob.update_lighting_size() + +/client/proc/generate_clickcatcher() + if(!void) + void = new() + if(!(void in screen)) + screen += void + +/client/proc/apply_clickcatcher() + generate_clickcatcher() + var/list/actualview = getviewsize(view) + void.UpdateGreed(actualview[1], actualview[2]) + /client/proc/inactivity2text() var/seconds = inactivity/10 return "[round(seconds / 60)] minute\s, [seconds % 60] second\s" @@ -492,12 +525,13 @@ prefs?.open_setup_window(usr) /client/proc/apply_fps(client_fps) - if(world.byond_version >= 511 && byond_version >= 511 && client_fps >= CLIENT_MIN_FPS && client_fps <= CLIENT_MAX_FPS) + if(client_fps >= CLIENT_MIN_FPS && client_fps <= CLIENT_MAX_FPS) vars["fps"] = client_fps /client/proc/on_prefs_loaded(client/target, datum/preferences/prefs) SIGNAL_HANDLER apply_fps(prefs.clientfps) + change_view(get_default_view()) /client/MouseDrag(src_object, over_object, src_location, over_location, src_control, over_control, params) . = ..() diff --git a/code/modules/client/preference_setup/global/01_ui.dm b/code/modules/client/preference_setup/global/01_ui.dm index 28c95a29a1..d47b3e9483 100644 --- a/code/modules/client/preference_setup/global/01_ui.dm +++ b/code/modules/client/preference_setup/global/01_ui.dm @@ -1,5 +1,5 @@ /datum/preferences - var/clientfps = 0 + var/clientfps = 60 var/ooccolor = "#010000" //Whatever this is set to acts as 'reset' color and is thus unusable as an actual custom color var/UI_style = "Midnight" diff --git a/code/modules/client/preference_setup/global/preferences.dm b/code/modules/client/preference_setup/global/preferences.dm index 42db0cabe2..4159c95adf 100644 --- a/code/modules/client/preference_setup/global/preferences.dm +++ b/code/modules/client/preference_setup/global/preferences.dm @@ -182,11 +182,6 @@ var/list/_client_preferences_by_type key = "SHOW_PROGRESS" options = list(GLOB.PREF_SHOW, GLOB.PREF_HIDE) -/datum/client_preference/browser_style - description = "Fake NanoUI Browser Style" - key = "BROWSER_STYLED" - options = list(GLOB.PREF_FANCY, GLOB.PREF_PLAIN) - /datum/client_preference/autohiss description = "Autohiss" key = "AUTOHISS" @@ -281,6 +276,16 @@ var/list/_client_preferences_by_type options = list(GLOB.PREF_YES, GLOB.PREF_NO) default_value = GLOB.PREF_YES +/datum/client_preference/widescreen + description = "Widescreen" + key = "WIDESCREEN" + options = list(GLOB.PREF_YES, GLOB.PREF_NO) + default_value = GLOB.PREF_NO + +/datum/client_preference/widescreen/changed(mob/preference_mob, new_value) + var/new_view = getScreenSize(new_value == GLOB.PREF_YES) + preference_mob.client.change_view(new_view) + /******************** * General Staff Preferences * ********************/ diff --git a/code/modules/client/preference_setup/preference_setup.dm b/code/modules/client/preference_setup/preference_setup.dm index 78daf9a17a..cbb8cc6cb4 100644 --- a/code/modules/client/preference_setup/preference_setup.dm +++ b/code/modules/client/preference_setup/preference_setup.dm @@ -131,26 +131,26 @@ var/const/CHARACTER_PREFERENCE_INPUT_TITLE = "Character Preference" for(var/datum/category_item/player_setup_item/PI in items) PI.sanitize_character() -/datum/category_group/player_setup_category/proc/load_character(savefile/S) +/datum/category_group/player_setup_category/proc/load_character(datum/pref_record_reader/R) for(var/datum/category_item/player_setup_item/PI in items) - PI.load_character(S) + PI.load_character(R) -/datum/category_group/player_setup_category/proc/save_character(savefile/S) +/datum/category_group/player_setup_category/proc/save_character(datum/pref_record_reader/W) // Sanitize all data, then save it for(var/datum/category_item/player_setup_item/PI in items) PI.sanitize_character() for(var/datum/category_item/player_setup_item/PI in items) - PI.save_character(S) + PI.save_character(W) -/datum/category_group/player_setup_category/proc/load_preferences(savefile/S) +/datum/category_group/player_setup_category/proc/load_preferences(datum/pref_record_reader/R) for(var/datum/category_item/player_setup_item/PI in items) - PI.load_preferences(S) + PI.load_preferences(R) -/datum/category_group/player_setup_category/proc/save_preferences(savefile/S) +/datum/category_group/player_setup_category/proc/save_preferences(datum/pref_record_reader/W) for(var/datum/category_item/player_setup_item/PI in items) PI.sanitize_preferences() for(var/datum/category_item/player_setup_item/PI in items) - PI.save_preferences(S) + PI.save_preferences(W) /datum/category_group/player_setup_category/proc/content(mob/user) . = "
" diff --git a/code/modules/client/preferences.dm b/code/modules/client/preferences.dm index e0ccceb994..afeea47c6e 100644 --- a/code/modules/client/preferences.dm +++ b/code/modules/client/preferences.dm @@ -73,7 +73,9 @@ load_data() sanitize_preferences() - SEND_SIGNAL(client, COMSIG_CLIENT_PREFS_LOADED, src) + // They might disconnect while it's being loaded. We also use a few of these without a client. + if(client) + SEND_SIGNAL(client, COMSIG_CLIENT_PREFS_LOADED, src) /datum/preferences/proc/load_data() load_failed = null @@ -81,11 +83,7 @@ try var/pref_path = get_path(client_ckey, "preferences") if(!fexists(pref_path)) - stage = "migrate" - // Try to migrate legacy savefile-based preferences - if(!migrate_legacy_preferences()) - // If there's no old save, there'll be nothing to load. - return + return stage = "load" load_preferences() @@ -94,42 +92,6 @@ load_failed = "{[stage]} [E]" throw E -/datum/preferences/proc/migrate_legacy_preferences() - // We make some assumptions here: - // - all relevant savefiles were version 17, which covers anything saved from 2018+ - // - legacy saves were only made on the "torch" map - // - a maximum of 40 slots were used - - var/legacy_pref_path = get_path(client.ckey, "preferences", "sav") - if(!fexists(legacy_pref_path)) - return 0 - - var/savefile/S = new(legacy_pref_path) - if(S["version"] != 17) - return 0 - - // Legacy version 17 ~= new version 1 - var/datum/pref_record_reader/savefile/savefile_reader = new(S, 1) - - player_setup.load_preferences(savefile_reader) - var/orig_slot = default_slot - - S.cd = "/torch" - for(var/slot = 1 to 40) - if(!list_find(S.dir, "character[slot]")) - continue - S.cd = "/torch/character[slot]" - default_slot = slot - player_setup.load_character(savefile_reader) - save_character(override_key="character_torch_[slot]") - S.cd = "/torch" - S.cd = "/" - - default_slot = orig_slot - save_preferences() - - return 1 - /datum/preferences/proc/get_content(mob/user) if(!SScharacter_setup.initialized) return diff --git a/code/modules/clothing/clothing.dm b/code/modules/clothing/clothing.dm index 0c6cb3333b..1a49c421eb 100644 --- a/code/modules/clothing/clothing.dm +++ b/code/modules/clothing/clothing.dm @@ -914,11 +914,6 @@ BLIND // can't see anything if(rolled_sleeves == -1) verbs -= /obj/item/clothing/under/verb/rollsleeves -/obj/item/clothing/under/inherit_custom_item_data(datum/custom_item/citem) - . = ..() - worn_state = icon_state - update_rolldown_status() - /obj/item/clothing/under/proc/get_gender_suffix(suffix = "_s") . = suffix var/mob/living/carbon/human/H diff --git a/code/modules/clothing/glasses/eyepatch.dm b/code/modules/clothing/glasses/eyepatch.dm index 7e28a0e1cb..89bb374af3 100644 --- a/code/modules/clothing/glasses/eyepatch.dm +++ b/code/modules/clothing/glasses/eyepatch.dm @@ -81,7 +81,4 @@ vision_flags = SEE_TURFS see_invisible = SEE_INVISIBLE_NOLIGHTING eye_color = COLOR_LIME - -/obj/item/clothing/glasses/eyepatch/hud/meson/Initialize() - . = ..() - overlay = GLOB.global_hud.meson + overlay = /atom/movable/screen/fullscreen/hud/meson diff --git a/code/modules/clothing/glasses/glasses.dm b/code/modules/clothing/glasses/glasses.dm index be08ace21e..9348a5f11a 100644 --- a/code/modules/clothing/glasses/glasses.dm +++ b/code/modules/clothing/glasses/glasses.dm @@ -11,7 +11,7 @@ var/active = TRUE var/activation_sound = 'sounds/items/goggles_charge.ogg' var/deactivation_sound // set this if you want a sound on deactivation - var/atom/movable/screen/overlay = null + var/atom/movable/screen/fullscreen/overlay = null var/obj/item/clothing/glasses/hud/hud = null // Hud glasses, if any var/electric = FALSE //if the glasses should be disrupted by EMP @@ -95,14 +95,6 @@ else activate(user) -/obj/item/clothing/glasses/inherit_custom_item_data(datum/custom_item/citem) - . = ..() - if(toggleable) - if(citem.additional_data["icon_on"]) - set_icon_state(citem.additional_data["icon_on"]) - if(citem.additional_data["icon_off"]) - off_state = citem.additional_data["icon_off"] - /obj/item/clothing/glasses/meson name = "optical meson scanner" desc = "Used for seeing walls, floors, and stuff through anything." @@ -117,10 +109,7 @@ electric = TRUE species_restricted = list("exclude", SPECIES_DIONA) hidden_from_codex = FALSE - -/obj/item/clothing/glasses/meson/Initialize() - . = ..() - overlay = GLOB.global_hud.meson + overlay = /atom/movable/screen/fullscreen/hud/meson /obj/item/clothing/glasses/meson/prescription name = "prescription mesons" @@ -137,16 +126,13 @@ action_button_name = "Toggle Goggles" electric = TRUE hidden_from_codex = FALSE + overlay = /atom/movable/screen/fullscreen/hud/science /obj/item/clothing/glasses/science/prescription name = "prescription science goggles" desc = "Science goggles with prescription lenses." clothing_traits = list(TRAIT_NEARSIGHTED_CORRECTED) -/obj/item/clothing/glasses/science/Initialize() - . = ..() - overlay = GLOB.global_hud.science - /obj/item/clothing/glasses/night name = "night vision goggles" desc = "You can totally see in the dark now!" @@ -161,10 +147,7 @@ electric = TRUE species_restricted = list("exclude", SPECIES_DIONA) hidden_from_codex = FALSE - -/obj/item/clothing/glasses/night/Initialize() - . = ..() - overlay = GLOB.global_hud.nvg + overlay = /atom/movable/screen/fullscreen/hud/nvg /obj/item/clothing/glasses/tacgoggles name = "tactical goggles" diff --git a/code/modules/clothing/glasses/hud.dm b/code/modules/clothing/glasses/hud.dm index f1a22fa5cc..54111d3b53 100644 --- a/code/modules/clothing/glasses/hud.dm +++ b/code/modules/clothing/glasses/hud.dm @@ -79,10 +79,7 @@ electric = TRUE species_restricted = list("exclude", SPECIES_DIONA) hidden_from_codex = FALSE - -/obj/item/clothing/glasses/hud/security/night/Initialize() - . = ..() - overlay = GLOB.global_hud.thermal + overlay = /atom/movable/screen/fullscreen/hud/thermal /obj/item/clothing/glasses/hud/security/prescription name = "prescription security HUD" @@ -153,15 +150,11 @@ off_state = "denight" electric = TRUE visual_insulation = V_INSL_PERFECT - -/obj/item/clothing/glasses/hud/scramble/Initialize() - . = ..() - overlay = GLOB.global_hud.scramble + overlay = /atom/movable/screen/fullscreen/hud/scramble /obj/item/clothing/glasses/hud/scramble/process_hud(mob/M) process_scramble_hud(M) - /obj/item/clothing/glasses/hud/scramble/faulty // for admin shenanigans visual_insulation = V_INSL_IMPERFECT diff --git a/code/modules/clothing/glasses/thermals.dm b/code/modules/clothing/glasses/thermals.dm index edc2cd8878..89a6f88c27 100644 --- a/code/modules/clothing/glasses/thermals.dm +++ b/code/modules/clothing/glasses/thermals.dm @@ -12,10 +12,7 @@ electric = TRUE species_restricted = list("exclude", SPECIES_DIONA) hidden_from_codex = FALSE - -/obj/item/clothing/glasses/thermal/Initialize() - . = ..() - overlay = GLOB.global_hud.thermal + overlay = /atom/movable/screen/fullscreen/hud/thermal /obj/item/clothing/glasses/thermal/syndi //These are now a traitor item, concealed as mesons. -Pete name = "optical meson scanner" diff --git a/code/modules/clothing/suits/storage.dm b/code/modules/clothing/suits/storage.dm index cc9cc869d6..94ddad39e0 100644 --- a/code/modules/clothing/suits/storage.dm +++ b/code/modules/clothing/suits/storage.dm @@ -50,13 +50,6 @@ return update_clothing_icon() //so our overlays update -/obj/item/clothing/suit/storage/toggle/inherit_custom_item_data(datum/custom_item/citem) - . = ..() - if(citem.additional_data["icon_open"]) - icon_open = citem.additional_data["icon_open"] - if(citem.additional_data["icon_closed"]) - icon_closed = citem.additional_data["icon_closed"] - /obj/item/clothing/suit/storage/vest/merc slots = 4 diff --git a/code/modules/codex/entries/paperwork.dm b/code/modules/codex/entries/paperwork.dm index b111516adf..6664c6c839 100644 --- a/code/modules/codex/entries/paperwork.dm +++ b/code/modules/codex/entries/paperwork.dm @@ -42,6 +42,7 @@ \[goclogo\] : Inserts the Global Occult Coalition logo.
\[uiulogo\] : Inserts the Unusual Incidents Unit logo.
\[mcdlogo\] : Inserts the Marshall, Carter and Dark logo.
+\[grlogo\] : Inserts the Goldbaker-Reinz logo.
\[arlogo\] : Inserts the Anderson Robotics logo.
\[cilogo\] : Inserts the Chaos Insurgency logo.
\[shlogo\] : Inserts the Serpent's Hand logo.
diff --git a/code/modules/games/cards.dm b/code/modules/games/cards.dm index 3853a19040..d2d8c3a75b 100644 --- a/code/modules/games/cards.dm +++ b/code/modules/games/cards.dm @@ -7,41 +7,11 @@ /datum/playingcard/proc/card_image(concealed, deck_icon) return image(deck_icon, concealed ? back_icon : card_icon) -/datum/playingcard/custom - var/use_custom_front = TRUE - var/use_custom_back = TRUE - -/datum/playingcard/custom/card_image(concealed, deck_icon) - if(concealed) - return image((src.use_custom_back ? CUSTOM_ITEM_OBJ : deck_icon), "[back_icon]") - else - return image((src.use_custom_front ? CUSTOM_ITEM_OBJ : deck_icon), "[card_icon]") - /obj/item/deck w_class = ITEM_SIZE_SMALL icon = 'icons/obj/playing_cards.dmi' var/list/cards = list() -/obj/item/deck/inherit_custom_item_data(datum/custom_item/citem) - . = ..() - if(islist(citem.additional_data["extra_cards"])) - for(var/card_decl in citem.additional_data["extra_cards"]) - if(islist(card_decl)) - var/datum/playingcard/custom/P = new() - if(!isnull(card_decl["name"])) - P.name = card_decl["name"] - if(!isnull(card_decl["card_icon"])) - P.card_icon = card_decl["card_icon"] - if(!isnull(card_decl["back_icon"])) - P.back_icon = card_decl["back_icon"] - if(!isnull(card_decl["desc"])) - P.desc = card_decl["desc"] - if(!isnull(card_decl["use_custom_front"])) - P.use_custom_front = card_decl["use_custom_front"] - if(!isnull(card_decl["use_custom_back"])) - P.use_custom_back = card_decl["use_custom_back"] - cards += P - /obj/item/deck/holder name = "card box" desc = "A small leather case to show how classy you are compared to everyone else." diff --git a/code/modules/lighting/lighting_planemaster.dm b/code/modules/lighting/lighting_planemaster.dm index d3c659fb63..0b3e739718 100644 --- a/code/modules/lighting/lighting_planemaster.dm +++ b/code/modules/lighting/lighting_planemaster.dm @@ -18,7 +18,7 @@ /obj/lighting_general plane = LIGHTING_PLANE - screen_loc = "8,8" + screen_loc = "CENTER" icon = LIGHTING_ICON icon_state = LIGHTING_ICON_STATE_DARK @@ -29,10 +29,6 @@ /obj/lighting_general/Initialize() . = ..() - var/matrix/M = matrix() - M.Scale(world.view*2.2) - - transform = M /obj/lighting_general/proc/sync(new_colour) color = new_colour @@ -45,3 +41,12 @@ /mob/proc/change_light_colour(new_colour) if(l_general) l_general.sync(new_colour) + +/mob/proc/update_lighting_size() + if(!client) + return + if(!l_general) + return + + var/list/actual_size = getviewsize(client.view) + l_general.transform = matrix(actual_size[1], 0, 0, 0, actual_size[2], 0) diff --git a/code/modules/mob/living/carbon/human/human.dm b/code/modules/mob/living/carbon/human/human.dm index f1955ec256..16738ebf88 100644 --- a/code/modules/mob/living/carbon/human/human.dm +++ b/code/modules/mob/living/carbon/human/human.dm @@ -1057,12 +1057,11 @@ else to_chat(usr, SPAN_WARNING("You failed to check the pulse. Try again.")) -/mob/living/carbon/human/verb/lookup() +/mob/living/verb/lookup() set name = "Look up" set desc = "If you want to know what's above." set category = "IC" - if(client && !is_physically_disabled()) if(z_eye) reset_view(null) diff --git a/code/modules/mob/living/carbon/human/human_helpers.dm b/code/modules/mob/living/carbon/human/human_helpers.dm index 17171bf4e6..c81bb3ad7e 100644 --- a/code/modules/mob/living/carbon/human/human_helpers.dm +++ b/code/modules/mob/living/carbon/human/human_helpers.dm @@ -56,7 +56,7 @@ var/binoc_check if(client) - binoc_check = client.view == world.view + binoc_check = client.has_default_view() else binoc_check = TRUE diff --git a/code/modules/mob/living/carbon/human/life.dm b/code/modules/mob/living/carbon/human/life.dm index f959330096..e96db6bdb9 100644 --- a/code/modules/mob/living/carbon/human/life.dm +++ b/code/modules/mob/living/carbon/human/life.dm @@ -39,7 +39,7 @@ var/stamina = 100 var/max_stamina = 100 var/atom/movable/screen/fov/fov = null//The screen object because I can't figure out how the hell TG does their screen objects so I'm just using legacy code. - var/atom/movable/screen/fov_mask/fov_mask + var/atom/movable/screen/fov/fov_mask/fov_mask var/usefov = 1 /mob/living/carbon/human/Life() @@ -1219,7 +1219,9 @@ /mob/living/carbon/human/handle_vision() if(client) - client.screen.Remove(GLOB.global_hud.nvg, GLOB.global_hud.scramble, GLOB.global_hud.thermal, GLOB.global_hud.meson, GLOB.global_hud.science) + for(var/overlay in equipment_overlays) + var/atom/movable/screen/fullscreen/full_overlay = overlay + clear_fullscreen("hud_[initial(full_overlay.icon_state)]", animated = FALSE) if(machine) var/viewflags = machine.check_eye(src) machine.apply_visual(src) diff --git a/code/modules/mob/living/carbon/human/memetic_insulation.dm b/code/modules/mob/living/carbon/human/memetic_insulation.dm index b2b512dd64..f9c383eb28 100644 --- a/code/modules/mob/living/carbon/human/memetic_insulation.dm +++ b/code/modules/mob/living/carbon/human/memetic_insulation.dm @@ -75,7 +75,9 @@ Made by TheDarkElites return FALSE if(istype(origin.loc, /obj/item/storage)) //Cant see stuff in a backpack or hidden in a container return FALSE - if(!(origin.get_holder_or_object() in dview(7, src))) //Cant see whats not in view. View dosent pick up stuff worn or held by mobs. Therefore, if origin is is held or worn by a mob it checks if we can see the mob instead. + if(!(origin.get_holder_or_object() in dview(9, src))) //Cant see whats not in view. View dosent pick up stuff worn or held by mobs. Therefore, if origin is is held or worn by a mob it checks if we can see the mob instead. + return FALSE + if(is_blind()) return FALSE origin_turf = get_turf(origin) diff --git a/code/modules/mob/living/carbon/human/vision_cone.dm b/code/modules/mob/living/carbon/human/vision_cone.dm index c37494327d..ab81ba184b 100644 --- a/code/modules/mob/living/carbon/human/vision_cone.dm +++ b/code/modules/mob/living/carbon/human/vision_cone.dm @@ -60,6 +60,16 @@ /mob/proc/update_vision_cone() return +/mob/proc/update_cone_size() + return + +/mob/living/carbon/human/update_cone_size() + if(!client) + return + + fov.update_size(client.view) + fov_mask.update_size(client.view) + /mob/living/carbon/human/update_vision_cone() if(!client) //This doesn't actually hide shit from clientless mobs, so just keep them from running this. return diff --git a/code/modules/mob/living/carbon/human/zoom.dm b/code/modules/mob/living/carbon/human/zoom.dm index cc3dcfe6a4..90d40cf3de 100644 --- a/code/modules/mob/living/carbon/human/zoom.dm +++ b/code/modules/mob/living/carbon/human/zoom.dm @@ -18,7 +18,7 @@ var/delta_x = T.x - position.x var/delta_y = T.y - position.y - if(abs(delta_x) > 7 || abs(delta_y) > 7) + if(abs(delta_x) > 9 || abs(delta_y) > 9) return if(delta_x == 0 && delta_y == 0) return diff --git a/code/modules/mob/living/say.dm b/code/modules/mob/living/say.dm index 3e14b140d1..0e74d64092 100644 --- a/code/modules/mob/living/say.dm +++ b/code/modules/mob/living/say.dm @@ -221,7 +221,7 @@ var/list/channel_to_radio_key = new message = process_chat_markup(message) //TODO: move hardcoded checks to this signal - SEND_SIGNAL(src, COMSIG_LIVING_TREAT_MESSAGE, message, speaking) + SEND_SIGNAL(src, COMSIG_LIVING_TREAT_MESSAGE, args, speaking) if(speaking && !speaking.can_be_spoken_properly_by(src)) message = speaking.muddle(message) diff --git a/code/modules/mob/living/silicon/ai/ai.dm b/code/modules/mob/living/silicon/ai/ai.dm index a2156c39de..22be5337a1 100644 --- a/code/modules/mob/living/silicon/ai/ai.dm +++ b/code/modules/mob/living/silicon/ai/ai.dm @@ -110,7 +110,6 @@ var/list/ai_verbs_default = list( var/multitool_mode = 0 var/default_ai_icon = /datum/ai_icon/blue - var/static/list/custom_ai_icons_by_ckey_and_name /mob/living/silicon/ai/proc/add_ai_verbs() add_verb(src, ai_verbs_default) @@ -221,7 +220,6 @@ var/list/ai_verbs_default = list( to_chat(src, "These laws may be changed by other players or by other random events.") job = "AIC" - setup_icon() eyeobj.possess(src) /mob/living/silicon/ai/Destroy() @@ -241,44 +239,6 @@ var/list/ai_verbs_default = list( . = ..() -/mob/living/silicon/ai/proc/setup_icon() - if(LAZYACCESS(custom_ai_icons_by_ckey_and_name, "[ckey][real_name]")) - return - var/list/custom_icons = list() - LAZYSET(custom_ai_icons_by_ckey_and_name, "[ckey][real_name]", custom_icons) - - var/file = file2text(CUSTOM_ITEM_SYNTH_CONFIG) - var/lines = splittext(file, "\n") - - var/custom_index = 1 - var/custom_icon_states = icon_states(CUSTOM_ITEM_SYNTH) - - for(var/line in lines) - // split & clean up - var/list/Entry = splittext(line, ":") - for(var/i = 1 to Entry.len) - Entry[i] = trim(Entry[i]) - - if(Entry.len < 2) - continue - if(Entry.len == 2) // This is to handle legacy entries - Entry[++Entry.len] = Entry[1] - - if(Entry[1] == src.ckey && Entry[2] == src.real_name) - var/alive_icon_state = "[Entry[3]]-ai" - var/dead_icon_state = "[Entry[3]]-ai-crash" - - if(!(alive_icon_state in custom_icon_states)) - to_chat(src, SPAN_WARNING("Custom display entry found but the icon state '[alive_icon_state]' is missing!")) - continue - - if(!(dead_icon_state in custom_icon_states)) - dead_icon_state = "" - - selected_sprite = new/datum/ai_icon("Custom Icon [custom_index++]", alive_icon_state, dead_icon_state, COLOR_WHITE, CUSTOM_ITEM_SYNTH) - custom_icons += selected_sprite - update_icon() - /mob/living/silicon/ai/pointed(atom/A as mob|obj|turf in view()) set popup_menu = 0 set src = usr.contents @@ -290,8 +250,6 @@ var/list/ai_verbs_default = list( if(eyeobj) eyeobj.SetName("[pickedName] (AI Eye)") - setup_icon() - /mob/living/silicon/ai/proc/pick_icon() set category = "Silicon Commands" set name = "Set AI Core Display" @@ -312,9 +270,6 @@ var/list/ai_verbs_default = list( if(ai_icon.may_used_by_ai(src)) dd_insertObjectList(., ai_icon) - // Placing custom icons first to have them be at the top - . = LAZYACCESS(custom_ai_icons_by_ckey_and_name, "[ckey][real_name]") | . - /mob/living/silicon/ai/var/message_cooldown = 0 /mob/living/silicon/ai/proc/ai_announcement() set category = "Silicon Commands" diff --git a/code/modules/mob/living/silicon/robot/custom_sprites.dm b/code/modules/mob/living/silicon/robot/custom_sprites.dm deleted file mode 100644 index 546f8664f5..0000000000 --- a/code/modules/mob/living/silicon/robot/custom_sprites.dm +++ /dev/null @@ -1,35 +0,0 @@ - -//list(ckey = real_name,) -//Since the ckey is used as the icon_state, the current system will only permit a single custom robot sprite per ckey. -//While it might be possible for a ckey to use that custom sprite for several real_names, it seems rather pointless to support it. -var/list/robot_custom_icons - -/hook/startup/proc/load_robot_custom_sprites() - var/config_file = file2text(CUSTOM_ITEM_SYNTH_CONFIG) - var/list/lines = splittext(config_file, "\n") - - robot_custom_icons = list() - for(var/line in lines) - //split entry into ckey and real_name - var/split_idx = findtext(line, "-") //this works if ckey cannot contain dashes, and findtext starts from the beginning - if(!split_idx || split_idx == length(line)) - continue //bad entry - - var/ckey = copytext(line, 1, split_idx) - var/real_name = copytext(line, split_idx+1) - - robot_custom_icons[ckey] = real_name - return 1 - -/mob/living/silicon/robot/proc/set_custom_sprite() - var/rname = robot_custom_icons[ckey] - if(rname && rname == real_name) - custom_sprite = TRUE - icon = CUSTOM_ITEM_SYNTH - var/list/valid_states = icon_states(icon) - if(icon_state == "robot") - if("[ckey]-Standard" in valid_states) - icon_state = "[ckey]-Standard" - else - to_chat(src, SPAN_WARNING("Could not locate [ckey]-Standard sprite.")) - icon = 'icons/mob/robots.dmi' diff --git a/code/modules/mob/living/silicon/robot/robot.dm b/code/modules/mob/living/silicon/robot/robot.dm index 4bab772567..aba5021a59 100644 --- a/code/modules/mob/living/silicon/robot/robot.dm +++ b/code/modules/mob/living/silicon/robot/robot.dm @@ -224,20 +224,7 @@ /mob/living/silicon/robot/proc/set_module_sprites(list/new_sprites) if(new_sprites && new_sprites.len) module_sprites = new_sprites.Copy() - //Custom_sprite check and entry - - if (custom_sprite) - var/list/valid_states = icon_states(CUSTOM_ITEM_SYNTH) - if("[ckey]-[modtype]" in valid_states) - module_sprites["Custom"] = "[src.ckey]-[modtype]" - icon = CUSTOM_ITEM_SYNTH - icontype = "Custom" - else - icontype = module_sprites[1] - icon = 'icons/mob/robots.dmi' - to_chat(src, SPAN_WARNING("Custom Sprite Sheet does not contain a valid icon_state for [ckey]-[modtype]")) - else - icontype = module_sprites[1] + icontype = module_sprites[1] icon_state = module_sprites[icontype] update_icon() return module_sprites @@ -326,9 +313,6 @@ if (camera) camera.c_tag = changed_name - if(!custom_sprite) //Check for custom sprite - set_custom_sprite() - //Flavour text. if(client) var/module_flavour = client.prefs.flavour_texts_robot[modtype] diff --git a/code/modules/mob/login.dm b/code/modules/mob/login.dm index 7359c8301a..8fc40c5bce 100644 --- a/code/modules/mob/login.dm +++ b/code/modules/mob/login.dm @@ -93,11 +93,12 @@ l_general = new() client.screen += l_plane client.screen += l_general + update_lighting_size() + client.init_verbs() refresh_client_images() reload_fullscreen() // Reload any fullscreen overlays this mob has. - add_click_catcher() update_action_buttons() update_mouse_pointer() diff --git a/code/modules/mob/new_player/new_player.dm b/code/modules/mob/new_player/new_player.dm index 300f96b8c8..622c9921c5 100644 --- a/code/modules/mob/new_player/new_player.dm +++ b/code/modules/mob/new_player/new_player.dm @@ -138,7 +138,6 @@ return FALSE character = SSjobs.equip_rank(character, job.title, 1) //equips the human - SScustomitems.equip_custom_items(character) // AIs don't need a spawnpoint, they must spawn at an empty core if(character.mind.assigned_role == "AIC") diff --git a/code/modules/mob/observer/ghost/ghost.dm b/code/modules/mob/observer/ghost/ghost.dm index 4b3a81ff29..138a44f723 100644 --- a/code/modules/mob/observer/ghost/ghost.dm +++ b/code/modules/mob/observer/ghost/ghost.dm @@ -642,7 +642,7 @@ This is the proc mobs get to turn into a ghost. Forked from ghostize due to comp return FALSE if(world.time < PSCP.min_time) return FALSE - if(LAZYLEN(GLOB.clients) < PSCP.min_playercount) + if(!PSCP.has_minimum_players()) return FALSE if(PossibleSCP.client) return FALSE diff --git a/code/modules/mob/observer/virtual/base.dm b/code/modules/mob/observer/virtual/base.dm index 2bee35a8b7..0ffbea76cf 100644 --- a/code/modules/mob/observer/virtual/base.dm +++ b/code/modules/mob/observer/virtual/base.dm @@ -59,6 +59,9 @@ var/list/all_virtual_listeners = list() /atom/movable/Initialize() . = ..() + if(!follow_repository.excluded_subtypes[type] && follow_repository.followed_subtypes[type]) + follow_repository.add_subject(src) + if(shall_have_virtual_mob()) virtual_mob = new virtual_mob(get_turf(src), src) diff --git a/code/modules/modular_computers/computers/status_icons.dmi b/code/modules/modular_computers/computers/status_icons.dmi index 52127ec484..a50ffa24a9 100644 Binary files a/code/modules/modular_computers/computers/status_icons.dmi and b/code/modules/modular_computers/computers/status_icons.dmi differ diff --git a/code/modules/modular_computers/computers/subtypes/dev_laptop.dm b/code/modules/modular_computers/computers/subtypes/dev_laptop.dm index d3c922823a..4ebc010600 100644 --- a/code/modules/modular_computers/computers/subtypes/dev_laptop.dm +++ b/code/modules/modular_computers/computers/subtypes/dev_laptop.dm @@ -40,7 +40,6 @@ else cut_overlays() set_light(0) // No glow from closed laptops - compile_overlays() icon_state = icon_state_closed /obj/item/modular_computer/laptop/preset diff --git a/code/modules/modular_computers/file_system/programs/generic/library.dm b/code/modules/modular_computers/file_system/programs/generic/library.dm index 5c429ebc97..09adc45f00 100644 --- a/code/modules/modular_computers/file_system/programs/generic/library.dm +++ b/code/modules/modular_computers/file_system/programs/generic/library.dm @@ -35,20 +35,22 @@ The answer was five and a half years -ZeroBits data["current_book"] = current_book else var/list/all_entries[0] - establish_old_db_connection() - if(!dbcon_old.IsConnected()) + if(!SSdbcore.Connect()) error_message = "Unable to contact External Archive. Please contact your system administrator for assistance." else - var/datum/db_query/query = dbcon_old.NewQuery("SELECT id, author, title, category FROM library ORDER BY "+sanitizeSQL(sort_by)) + var/datum/db_query/query = SSdbcore.NewQuery( + "SELECT id, author, title, category FROM library ORDER BY :sort_by", + list(sort_by) + ) query.Execute() while(query.NextRow()) - all_entries.Add(list(list( - "id" = query.item[1], - "author" = query.item[2], - "title" = query.item[3], - "category" = query.item[4] - ))) + all_entries += list(list( + "id" = query.item[1], + "author" = query.item[2], + "title" = query.item[3], + "category" = query.item[4] + )) qdel(query) data["book_list"] = all_entries data["scanner"] = istype(scanner) @@ -67,7 +69,7 @@ The answer was five and a half years -ZeroBits view_book(href_list["viewbook"]) return 1 if(href_list["viewid"]) - view_book(sanitizeSQL(input("Enter USBN:") as num|null)) + view_book(tgui_input_number(usr, "Enter USBN", "USBN Input")) return 1 if(href_list["closebook"]) current_book = null @@ -106,18 +108,24 @@ The answer was five and a half years -ZeroBits var/choice = input(usr, "Upload [B.name] by [B.author] to the External Archive?") in list("Yes", "No") if(choice == "Yes") - establish_old_db_connection() - if(!dbcon_old.IsConnected()) + if(!SSdbcore.Connect()) error_message = "Network Error: Connection to the Archive has been severed." return 1 var/upload_category = input(usr, "Upload to which category?") in list("Fiction", "Non-Fiction", "Reference", "Religion") - var/sqltitle = sanitizeSQL(B.name) - var/sqlauthor = sanitizeSQL(B.author) - var/sqlcontent = sanitizeSQL(B.dat) - var/sqlcategory = sanitizeSQL(upload_category) - var/datum/db_query/query = dbcon_old.NewQuery("INSERT INTO library (author, title, content, category) VALUES ('[sqlauthor]', '[sqltitle]', '[sqlcontent]', '[sqlcategory]')") + var/list/query_data = list( + "author" = B.author, + "title" = B.name, + "content" = B.dat, + "category" = upload_category + ) + var/datum/db_query/query = SSdbcore.NewQuery({" + INSERT INTO library (author, title, content, category) + VALUES (:author, :title, :content, :category)"}, + query_data + ) + if(!query.Execute()) to_chat(usr, query.ErrorMsg()) error_message = "Network Error: Unable to upload to the Archive. Contact your system Administrator for assistance." @@ -157,7 +165,12 @@ The answer was five and a half years -ZeroBits print_text("Author: [current_book["author"]]
USBN: [current_book["id"]]

[current_book["title"]]


[current_book["content"]]", usr) return 1 if(href_list["sortby"]) - sort_by = href_list["sortby"] + var/list/can_sort_by = list("id", "category", "title", "author") + var/sort_by = href_list["sortby"] + if(!(sort_by in can_sort_by)) + return 1 + + src.sort_by = sort_by return 1 if(href_list["reseterror"]) if(error_message) @@ -171,13 +184,14 @@ The answer was five and a half years -ZeroBits if(current_book || !id) return 0 - var/sqlid = sanitizeSQL(id) - establish_old_db_connection() - if(!dbcon_old.IsConnected()) + if(!SSdbcore.Connect()) error_message = "Network Error: Connection to the Archive has been severed." return 1 - var/datum/db_query/query = dbcon_old.NewQuery("SELECT * FROM library WHERE id=[sqlid]") + var/datum/db_query/query = SSdbcore.NewQuery( + "SELECT * FROM library WHERE id = :id", + list("id" = id) + ) query.Execute() while(query.NextRow()) @@ -186,7 +200,7 @@ The answer was five and a half years -ZeroBits "author" = query.item[2], "title" = query.item[3], "content" = query.item[4] - ) + ) break qdel(query) return 1 diff --git a/code/modules/nano/interaction/default.dm b/code/modules/nano/interaction/default.dm index 86a38dd741..875ab3060f 100644 --- a/code/modules/nano/interaction/default.dm +++ b/code/modules/nano/interaction/default.dm @@ -11,10 +11,11 @@ GLOBAL_DATUM_INIT(default_state, /datum/topic_state/default, new) /mob/observer/ghost/default_can_use_topic(src_object) if(can_admin_interact()) - return STATUS_INTERACTIVE // Admins are more equal - if(!client || get_dist(src_object, src) > client.view) // Preventing ghosts from having a million windows open by limiting to objects in range + return STATUS_INTERACTIVE // Admins are more equal + var/view_size = getviewsize(client.view) + if(!client || get_dist(src_object, src) > max(view_size[1], view_size[2])) // Preventing ghosts from having a million windows open by limiting to objects in range return STATUS_CLOSE - return STATUS_UPDATE // Ghosts can view updates + return STATUS_UPDATE // Ghosts can view updates /mob/living/silicon/pai/default_can_use_topic(src_object) if((src_object == src || src_object == silicon_radio) && !stat) @@ -28,7 +29,8 @@ GLOBAL_DATUM_INIT(default_state, /datum/topic_state/default, new) return // robots can interact with things they can see within their view range - if((src_object in view(src)) && get_dist(src_object, src) <= src.client.view) + var/view_size = getviewsize(client.view) + if((src_object in view(src)) && get_dist(src_object, src) <= max(view_size[1], view_size[2])) return STATUS_INTERACTIVE // interactive (green visibility) return STATUS_DISABLED // no updates, completely disabled (red visibility) diff --git a/code/modules/nano/interaction/view.dm b/code/modules/nano/interaction/view.dm index 98858cdfc4..d225f31397 100644 --- a/code/modules/nano/interaction/view.dm +++ b/code/modules/nano/interaction/view.dm @@ -9,7 +9,8 @@ GLOBAL_DATUM_INIT(view_state, /datum/topic_state/view, new) /mob/proc/view_can_use_topic(src_object) if(!client) return STATUS_CLOSE - if(src_object in view(client.view, src)) + var/view_size = getviewsize(client.view) + if(src_object in view(max(view_size[1], view_size[2]), src)) return shared_nano_interaction(src_object) return STATUS_CLOSE diff --git a/code/modules/organs/internal/eyes.dm b/code/modules/organs/internal/eyes.dm index da81a1f199..7a20024bf2 100644 --- a/code/modules/organs/internal/eyes.dm +++ b/code/modules/organs/internal/eyes.dm @@ -144,9 +144,12 @@ // Blinking Mechanics /obj/item/organ/internal/eyes/proc/handle_blink() - for(var/blink_causer in owner.blink_causers) //Extra precaution to avoid lingering refrences - if(!(owner in dview(world.view, blink_causer)) && !(blink_causer in dview(world.view, owner))) - owner.disable_blink(blink_causer) + if(owner.client) + var/list/view_size = getviewsize(config.default_view) + var/to_view = max(view_size[1], view_size[2]) / 2 + for(var/blink_causer in owner.blink_causers) //Extra precaution to avoid lingering refrences + if(!(owner in dview(to_view, blink_causer)) && !(blink_causer in dview(to_view, owner))) + owner.disable_blink(blink_causer) if(!owner.is_blinking || owner.stat) owner.blink_total = null owner.blink_current = null diff --git a/code/modules/overmap/exoplanets/planet_themes/ruined_city.dm b/code/modules/overmap/exoplanets/planet_themes/ruined_city.dm index 3f87cbdded..0624701c74 100644 --- a/code/modules/overmap/exoplanets/planet_themes/ruined_city.dm +++ b/code/modules/overmap/exoplanets/planet_themes/ruined_city.dm @@ -136,8 +136,8 @@ /turf/simulated/wall/containment paint_color = COLOR_GRAY20 -/turf/simulated/wall/containment/New(newloc) - ..(newloc,MATERIAL_CONCRETE, MATERIAL_ALIENALLOY) +/turf/simulated/wall/containment/Initialize(mapload) + . = ..(mapload, MATERIAL_CONCRETE, MATERIAL_ALIENALLOY) /datum/random_map/maze/lab wall_type = /turf/simulated/wall/containment diff --git a/code/modules/overmap/ships/computers/ship.dm b/code/modules/overmap/ships/computers/ship.dm index a3e7675edc..a87b3e06b1 100644 --- a/code/modules/overmap/ships/computers/ship.dm +++ b/code/modules/overmap/ships/computers/ship.dm @@ -56,7 +56,8 @@ somewhere on that shuttle. Subtypes of these can be then used to perform ship ov if(linked) user.reset_view(linked) if(user.client) - user.client.view = world.view + extra_view + var/default_view = getviewsize(config.default_view_square) + user.client.change_view(max(default_view[1], default_view[2]) + extra_view) RegisterSignal(user, COMSIG_MOVED, TYPE_PROC_REF(/obj/machinery/computer/ship, unlook)) RegisterSignal(user, COMSIG_SET_STAT, TYPE_PROC_REF(/obj/machinery/computer/ship, unlook)) LAZYOR(viewers, weakref(user)) @@ -64,7 +65,7 @@ somewhere on that shuttle. Subtypes of these can be then used to perform ship ov /obj/machinery/computer/ship/proc/unlook(mob/user) user.reset_view(null, FALSE) if(user.client) - user.client.view = world.view + user.client.change_view(user.client.get_default_view()) UnregisterSignal(user, COMSIG_MOVED) UnregisterSignal(user, COMSIG_SET_STAT) LAZYREMOVE(viewers, weakref(user)) diff --git a/code/modules/paperwork/paper.dm b/code/modules/paperwork/paper.dm index c7830709ec..e9ffcb0750 100644 --- a/code/modules/paperwork/paper.dm +++ b/code/modules/paperwork/paper.dm @@ -190,8 +190,7 @@ html += "[stamps]" // Ported to browser datum for IE11 feature parity - var/datum/browser/window = new(user, "paper_[name]") - window.stylesheets.Remove("common") + var/datum/browser/window = new(user, "paper_[name]", include_common = FALSE) window.add_stylesheet("acs", 'html/acs.css') window.add_head_content("[name]") window.set_content(html) diff --git a/code/modules/power/cable.dm b/code/modules/power/cable.dm index 36561c6f55..f686f58b43 100644 --- a/code/modules/power/cable.dm +++ b/code/modules/power/cable.dm @@ -71,8 +71,8 @@ By design, d1 is the smallest direction and d2 is the highest /obj/structure/cable/white color = COLOR_SILVER -/obj/structure/cable/New() - ..() +/obj/structure/cable/Initialize() + . = ..() // ensure d1 & d2 reflect the icon_state for entering and exiting cable diff --git a/code/modules/power/lighting.dm b/code/modules/power/lighting.dm index 95279b6af4..99f9f8df74 100644 --- a/code/modules/power/lighting.dm +++ b/code/modules/power/lighting.dm @@ -552,8 +552,7 @@ // called when area power state changes /obj/machinery/light/power_change() - spawn(10) - seton(powered()) + seton(powered()) // called when on fire diff --git a/code/modules/projectiles/gun.dm b/code/modules/projectiles/gun.dm index 03963bfe4a..ec796458a0 100644 --- a/code/modules/projectiles/gun.dm +++ b/code/modules/projectiles/gun.dm @@ -155,8 +155,11 @@ . = FALSE else if(autofiring_by.get_active_hand() != src || autofiring_by.incapacitated()) . = FALSE - else if(!autofiring_by.client || !(autofiring_by in view(autofiring_by.client.view, autofiring_by))) + else if(!autofiring_by.client) . = FALSE + else if(autofiring_by.client) + var/view_size = getviewsize(autofiring_by.client.view) + . = (autofiring_at in view(max(view_size[1], view_size[2]), autofiring_by)) if(!.) clear_autofire() else if(can_autofire()) @@ -555,8 +558,11 @@ /obj/item/gun/proc/toggle_scope(mob/user, zoom_amount=2.0) //looking through a scope limits your periphereal vision //still, increase the view size by a tiny amount so that sniping isn't too restricted to NSEW - var/zoom_offset = round(world.view * zoom_amount) - var/view_size = round(world.view + zoom_amount) + var/default_view = getviewsize(config.default_view_square) + default_view = max(default_view[1], default_view[2]) + + var/zoom_offset = round(default_view * zoom_amount) + var/view_size = round(default_view + zoom_amount) if(zoom) unzoom(user) diff --git a/code/modules/reagents/Chemistry-Holder.dm b/code/modules/reagents/Chemistry-Holder.dm index 5522e030a4..c2481bf5d2 100644 --- a/code/modules/reagents/Chemistry-Holder.dm +++ b/code/modules/reagents/Chemistry-Holder.dm @@ -11,8 +11,6 @@ GLOBAL_DATUM_INIT(temp_reagents_holder, /obj, new) if(!istype(my_atom)) CRASH("Invalid reagents holder: [log_info_line(my_atom)]") ..() - if(!GLOB.chemical_reagents_list) - build_chemical_reagent_list() src.my_atom = my_atom src.maximum_volume = maximum_volume GLOB.reagents_datums += src @@ -21,6 +19,8 @@ GLOBAL_DATUM_INIT(temp_reagents_holder, /obj, new) . = ..() UNQUEUE_REACTIONS(src) // While marking for reactions should be avoided just before deleting if possible, the async nature means it might be impossible. QDEL_NULL_LIST(reagent_list) + if(my_atom && my_atom.reagents == src) + my_atom.reagents = null my_atom = null GLOB.reagents_datums -= src @@ -519,27 +519,3 @@ GLOBAL_DATUM_INIT(temp_reagents_holder, /obj, new) else reagents = new/datum/reagents(max_vol, src) return reagents - -// Helper procs -//Chemical Reagents - Initialises all /datum/reagent into a list indexed by reagent id -/proc/build_chemical_reagent_list() - if(GLOB.chemical_reagents_list) - return - - var/paths = subtypesof(/datum/reagent) - GLOB.chemical_reagents_list = list() - - var/datum/reagents/anti_runtime = new(20000, GLOB.temp_reagents_holder) // Self-explanatory name - for(var/path in paths) - var/datum/reagent/D = new path(anti_runtime) - if(!D.name) // Those are usually master/parent types of other stuff - qdel(D) - continue - GLOB.chemical_reagents_list[path] = D - qdel(anti_runtime) - -/proc/get_chem_id(chem_name) - for(var/X in GLOB.chemical_reagents_list) - var/datum/reagent/R = GLOB.chemical_reagents_list[X] - if(ckey(chem_name) == ckey(lowertext(R.name))) - return X diff --git a/code/modules/reagents/addiction/_addiction.dm b/code/modules/reagents/addiction/_addiction.dm index e5c5ea8a36..a947b4f203 100644 --- a/code/modules/reagents/addiction/_addiction.dm +++ b/code/modules/reagents/addiction/_addiction.dm @@ -44,8 +44,8 @@ /datum/addiction/proc/ProcessAddiction(mob/living/carbon/victim, delta_time = 2) var/current_addiction_cycle = LAZYACCESS(victim.active_addictions, type) // If this is null, we're not addicted for(var/drug_type in victim.chem_doses) // Go through the drugs in our system - var/datum/reagent/R = GLOB.chemical_reagents_list[drug_type] - for(var/addiction in R.addiction_types) // And check all of their addiction types + var/datum/reagent/R = drug_type + for(var/addiction in initial(R.addiction_types)) // And check all of their addiction types if(addiction == type && victim.chem_doses[drug_type] >= addiction_relief_treshold) // If one of them matches, and we have enough of it in our system, we're not losing addiction if(current_addiction_cycle) LAZYSET(victim.active_addictions, type, 1) // Keeps withdrawal inactive for a while diff --git a/code/modules/reagents/reagent_containers/drinkingglass/glass_types.dm b/code/modules/reagents/reagent_containers/drinkingglass/glass_types.dm index aef9b3887e..5e4fbb365f 100644 --- a/code/modules/reagents/reagent_containers/drinkingglass/glass_types.dm +++ b/code/modules/reagents/reagent_containers/drinkingglass/glass_types.dm @@ -240,13 +240,6 @@ base_name = "teacup" base_icon = "teacup" -/obj/item/reagent_containers/food/drinks/glass2/coffeecup/custom/inherit_custom_item_data(datum/custom_item/citem) - . = ..() - if(citem.additional_data["base_name"]) - base_name = citem.additional_data["base_name"] || base_name - custom_name = citem.item_name - custom_desc = citem.item_desc - /obj/item/reagent_containers/food/drinks/glass2/pineapple name = "pineapple mug" desc = "A mug made from a hollowed pineapple. Tropical!" diff --git a/code/modules/species/species.dm b/code/modules/species/species.dm index d49faaaa01..de250c30a0 100644 --- a/code/modules/species/species.dm +++ b/code/modules/species/species.dm @@ -576,7 +576,8 @@ The slots that you can use are found in items_clothing.dm and are the inventory H.set_fullscreen(how_nearsighted, "nearsighted", /atom/movable/screen/fullscreen/oxy, how_nearsighted) for(var/overlay in H.equipment_overlays) - H.client.screen |= overlay + var/atom/movable/screen/fullscreen/full_overlay = overlay + H.overlay_fullscreen("hud_[initial(full_overlay.icon_state)]", overlay) return 1 diff --git a/code/modules/submaps/submap_join.dm b/code/modules/submaps/submap_join.dm index d249198051..4d663922c7 100644 --- a/code/modules/submaps/submap_join.dm +++ b/code/modules/submaps/submap_join.dm @@ -61,51 +61,51 @@ job.current_positions++ var/mob/living/character = joining.create_character(spawn_turf) - if(istype(character)) - - var/mob/living/other_mob = job.handle_variant_join(character, job.title) - if(istype(other_mob)) - character = other_mob - - var/mob/living/carbon/human/user_human - if(ishuman(character)) - user_human = character - - // We need to make sure to use the abstract instance here; it's not the same as the one we were passed. - character.skillset.obtain_from_client(SSjobs.get_by_path(job.type), character.client) - job.equip(character, "") - job.apply_fingerprints(character) - var/list/spawn_in_storage = SSjobs.equip_custom_loadout(character, job) - if(spawn_in_storage) - for(var/datum/gear/G in spawn_in_storage) - G.spawn_in_storage_or_drop(user_human, user_human.client.prefs.Gear()[G.display_name]) - SScustomitems.equip_custom_items(user_human) - - character.job = job.title - if(character.mind) - character.mind.assigned_job = job - character.mind.assigned_role = character.job - - to_chat(character, "You are [job.total_positions == 1 ? "the" : "a"] [job.title] of the [name].") - - if(job.supervisors) - to_chat(character, "As a [job.title] you answer directly to [job.supervisors].") - var/datum/job/submap/ojob = job - if(istype(ojob) && ojob.info) - to_chat(character, ojob.info) - - if(user_human && user_human.is_nearsighted()) - user_human.equip_to_slot_or_store_or_drop(new /obj/item/clothing/glasses/prescription(user_human), slot_glasses) - - BITSET(character.hud_updateflag, ID_HUD) - BITSET(character.hud_updateflag, IMPLOYAL_HUD) - BITSET(character.hud_updateflag, SPECIALROLE_HUD) - - SSticker.mode.handle_offsite_latejoin(character) - GLOB.universe.OnPlayerLatejoin(character) - log_and_message_staff("has joined the round as offsite role [character.mind.assigned_role].", character) - if(character.cannot_stand()) equip_wheelchair(character) - job.post_equip_rank(character, job.title) - qdel(joining) + if(!istype(character)) + return + + var/mob/living/other_mob = job.handle_variant_join(character, job.title) + if(istype(other_mob)) + character = other_mob + + var/mob/living/carbon/human/user_human + if(ishuman(character)) + user_human = character + + // We need to make sure to use the abstract instance here; it's not the same as the one we were passed. + character.skillset.obtain_from_client(SSjobs.get_by_path(job.type), character.client) + job.equip(character, "") + job.apply_fingerprints(character) + var/list/spawn_in_storage = SSjobs.equip_custom_loadout(character, job) + if(spawn_in_storage) + for(var/datum/gear/G in spawn_in_storage) + G.spawn_in_storage_or_drop(user_human, user_human.client.prefs.Gear()[G.display_name]) + + character.job = job.title + if(character.mind) + character.mind.assigned_job = job + character.mind.assigned_role = character.job + + to_chat(character, "You are [job.total_positions == 1 ? "the" : "a"] [job.title] of the [name].") + + if(job.supervisors) + to_chat(character, "As a [job.title] you answer directly to [job.supervisors].") + var/datum/job/submap/ojob = job + if(istype(ojob) && ojob.info) + to_chat(character, ojob.info) + + if(user_human && user_human.is_nearsighted()) + user_human.equip_to_slot_or_store_or_drop(new /obj/item/clothing/glasses/prescription(user_human), slot_glasses) + + BITSET(character.hud_updateflag, ID_HUD) + BITSET(character.hud_updateflag, IMPLOYAL_HUD) + BITSET(character.hud_updateflag, SPECIALROLE_HUD) + + SSticker.mode.handle_offsite_latejoin(character) + GLOB.universe.OnPlayerLatejoin(character) + log_and_message_staff("has joined the round as offsite role [character.mind.assigned_role].", character) + if(character.cannot_stand()) equip_wheelchair(character) + job.post_equip_rank(character, job.title) + qdel(joining) return character diff --git a/code/modules/synthesized_instruments/samples/brass/crisis_brass/c2.ogg b/code/modules/synthesized_instruments/samples/brass/crisis_brass/c2.ogg index 9808431b25..f4e0b86467 100644 Binary files a/code/modules/synthesized_instruments/samples/brass/crisis_brass/c2.ogg and b/code/modules/synthesized_instruments/samples/brass/crisis_brass/c2.ogg differ diff --git a/code/modules/synthesized_instruments/samples/brass/crisis_brass/c3.ogg b/code/modules/synthesized_instruments/samples/brass/crisis_brass/c3.ogg index 4118cff81c..d9663ce51e 100644 Binary files a/code/modules/synthesized_instruments/samples/brass/crisis_brass/c3.ogg and b/code/modules/synthesized_instruments/samples/brass/crisis_brass/c3.ogg differ diff --git a/code/modules/synthesized_instruments/samples/brass/crisis_brass/c4.ogg b/code/modules/synthesized_instruments/samples/brass/crisis_brass/c4.ogg index ae9e1361d2..9e06d8cbb4 100644 Binary files a/code/modules/synthesized_instruments/samples/brass/crisis_brass/c4.ogg and b/code/modules/synthesized_instruments/samples/brass/crisis_brass/c4.ogg differ diff --git a/code/modules/synthesized_instruments/samples/brass/crisis_brass/c5.ogg b/code/modules/synthesized_instruments/samples/brass/crisis_brass/c5.ogg index f19ddd9300..9649830a8f 100644 Binary files a/code/modules/synthesized_instruments/samples/brass/crisis_brass/c5.ogg and b/code/modules/synthesized_instruments/samples/brass/crisis_brass/c5.ogg differ diff --git a/code/modules/synthesized_instruments/samples/brass/crisis_trombone/C2.ogg b/code/modules/synthesized_instruments/samples/brass/crisis_trombone/C2.ogg index d2c872d5a3..1d88e0b38c 100644 Binary files a/code/modules/synthesized_instruments/samples/brass/crisis_trombone/C2.ogg and b/code/modules/synthesized_instruments/samples/brass/crisis_trombone/C2.ogg differ diff --git a/code/modules/synthesized_instruments/samples/brass/crisis_trombone/C3.ogg b/code/modules/synthesized_instruments/samples/brass/crisis_trombone/C3.ogg index e1e3fc8635..a2e895db1e 100644 Binary files a/code/modules/synthesized_instruments/samples/brass/crisis_trombone/C3.ogg and b/code/modules/synthesized_instruments/samples/brass/crisis_trombone/C3.ogg differ diff --git a/code/modules/synthesized_instruments/samples/brass/crisis_trombone/C4.ogg b/code/modules/synthesized_instruments/samples/brass/crisis_trombone/C4.ogg index 42c4aa755d..48686835cf 100644 Binary files a/code/modules/synthesized_instruments/samples/brass/crisis_trombone/C4.ogg and b/code/modules/synthesized_instruments/samples/brass/crisis_trombone/C4.ogg differ diff --git a/code/modules/synthesized_instruments/samples/brass/crisis_trombone/C5.ogg b/code/modules/synthesized_instruments/samples/brass/crisis_trombone/C5.ogg index 762d2868d0..b9b7c87234 100644 Binary files a/code/modules/synthesized_instruments/samples/brass/crisis_trombone/C5.ogg and b/code/modules/synthesized_instruments/samples/brass/crisis_trombone/C5.ogg differ diff --git a/code/modules/synthesized_instruments/samples/brass/crisis_trumpet/C4.ogg b/code/modules/synthesized_instruments/samples/brass/crisis_trumpet/C4.ogg index baf71063af..b19a3fd637 100644 Binary files a/code/modules/synthesized_instruments/samples/brass/crisis_trumpet/C4.ogg and b/code/modules/synthesized_instruments/samples/brass/crisis_trumpet/C4.ogg differ diff --git a/code/modules/synthesized_instruments/samples/brass/crisis_trumpet/C5.ogg b/code/modules/synthesized_instruments/samples/brass/crisis_trumpet/C5.ogg index 92b4a11018..8c4628ee29 100644 Binary files a/code/modules/synthesized_instruments/samples/brass/crisis_trumpet/C5.ogg and b/code/modules/synthesized_instruments/samples/brass/crisis_trumpet/C5.ogg differ diff --git a/code/modules/synthesized_instruments/samples/chromatic/fluid_celeste/C2.ogg b/code/modules/synthesized_instruments/samples/chromatic/fluid_celeste/C2.ogg index 5a50a5091c..61a9a1580d 100644 Binary files a/code/modules/synthesized_instruments/samples/chromatic/fluid_celeste/C2.ogg and b/code/modules/synthesized_instruments/samples/chromatic/fluid_celeste/C2.ogg differ diff --git a/code/modules/synthesized_instruments/samples/chromatic/fluid_celeste/C3.ogg b/code/modules/synthesized_instruments/samples/chromatic/fluid_celeste/C3.ogg index f086938260..526e8e753a 100644 Binary files a/code/modules/synthesized_instruments/samples/chromatic/fluid_celeste/C3.ogg and b/code/modules/synthesized_instruments/samples/chromatic/fluid_celeste/C3.ogg differ diff --git a/code/modules/synthesized_instruments/samples/chromatic/fluid_celeste/C4.ogg b/code/modules/synthesized_instruments/samples/chromatic/fluid_celeste/C4.ogg index 1246bd5341..bfc675eb27 100644 Binary files a/code/modules/synthesized_instruments/samples/chromatic/fluid_celeste/C4.ogg and b/code/modules/synthesized_instruments/samples/chromatic/fluid_celeste/C4.ogg differ diff --git a/code/modules/synthesized_instruments/samples/chromatic/fluid_celeste/C5.ogg b/code/modules/synthesized_instruments/samples/chromatic/fluid_celeste/C5.ogg index 73680ce627..bd21027172 100644 Binary files a/code/modules/synthesized_instruments/samples/chromatic/fluid_celeste/C5.ogg and b/code/modules/synthesized_instruments/samples/chromatic/fluid_celeste/C5.ogg differ diff --git a/code/modules/synthesized_instruments/samples/chromatic/fluid_celeste/C6.ogg b/code/modules/synthesized_instruments/samples/chromatic/fluid_celeste/C6.ogg index 72841fb189..dd814d9859 100644 Binary files a/code/modules/synthesized_instruments/samples/chromatic/fluid_celeste/C6.ogg and b/code/modules/synthesized_instruments/samples/chromatic/fluid_celeste/C6.ogg differ diff --git a/code/modules/synthesized_instruments/samples/chromatic/fluid_celeste/C7.ogg b/code/modules/synthesized_instruments/samples/chromatic/fluid_celeste/C7.ogg index 47797e4c00..d1074b4dfe 100644 Binary files a/code/modules/synthesized_instruments/samples/chromatic/fluid_celeste/C7.ogg and b/code/modules/synthesized_instruments/samples/chromatic/fluid_celeste/C7.ogg differ diff --git a/code/modules/synthesized_instruments/samples/chromatic/fluid_celeste/C8.ogg b/code/modules/synthesized_instruments/samples/chromatic/fluid_celeste/C8.ogg index ea34703160..8f3336fc11 100644 Binary files a/code/modules/synthesized_instruments/samples/chromatic/fluid_celeste/C8.ogg and b/code/modules/synthesized_instruments/samples/chromatic/fluid_celeste/C8.ogg differ diff --git a/code/modules/synthesized_instruments/samples/chromatic/sgmbox/c2.ogg b/code/modules/synthesized_instruments/samples/chromatic/sgmbox/c2.ogg index 4b96dd3dd3..d910233050 100644 Binary files a/code/modules/synthesized_instruments/samples/chromatic/sgmbox/c2.ogg and b/code/modules/synthesized_instruments/samples/chromatic/sgmbox/c2.ogg differ diff --git a/code/modules/synthesized_instruments/samples/chromatic/sgmbox/c3.ogg b/code/modules/synthesized_instruments/samples/chromatic/sgmbox/c3.ogg index 25daf5372e..6a7d9fd677 100644 Binary files a/code/modules/synthesized_instruments/samples/chromatic/sgmbox/c3.ogg and b/code/modules/synthesized_instruments/samples/chromatic/sgmbox/c3.ogg differ diff --git a/code/modules/synthesized_instruments/samples/chromatic/sgmbox/c4.ogg b/code/modules/synthesized_instruments/samples/chromatic/sgmbox/c4.ogg index 9b989404e7..6f4a4839b0 100644 Binary files a/code/modules/synthesized_instruments/samples/chromatic/sgmbox/c4.ogg and b/code/modules/synthesized_instruments/samples/chromatic/sgmbox/c4.ogg differ diff --git a/code/modules/synthesized_instruments/samples/chromatic/sgmbox/c5.ogg b/code/modules/synthesized_instruments/samples/chromatic/sgmbox/c5.ogg index 7fa99d9278..953d5460ec 100644 Binary files a/code/modules/synthesized_instruments/samples/chromatic/sgmbox/c5.ogg and b/code/modules/synthesized_instruments/samples/chromatic/sgmbox/c5.ogg differ diff --git a/code/modules/synthesized_instruments/samples/chromatic/vibraphone1/c2.ogg b/code/modules/synthesized_instruments/samples/chromatic/vibraphone1/c2.ogg index 64578a8fe1..cfee1e39ec 100644 Binary files a/code/modules/synthesized_instruments/samples/chromatic/vibraphone1/c2.ogg and b/code/modules/synthesized_instruments/samples/chromatic/vibraphone1/c2.ogg differ diff --git a/code/modules/synthesized_instruments/samples/chromatic/vibraphone1/c3.ogg b/code/modules/synthesized_instruments/samples/chromatic/vibraphone1/c3.ogg index d97230ce1f..cfd560d11d 100644 Binary files a/code/modules/synthesized_instruments/samples/chromatic/vibraphone1/c3.ogg and b/code/modules/synthesized_instruments/samples/chromatic/vibraphone1/c3.ogg differ diff --git a/code/modules/synthesized_instruments/samples/chromatic/vibraphone1/c4.ogg b/code/modules/synthesized_instruments/samples/chromatic/vibraphone1/c4.ogg index eb6f80654a..f22d25e20c 100644 Binary files a/code/modules/synthesized_instruments/samples/chromatic/vibraphone1/c4.ogg and b/code/modules/synthesized_instruments/samples/chromatic/vibraphone1/c4.ogg differ diff --git a/code/modules/synthesized_instruments/samples/chromatic/vibraphone1/c5.ogg b/code/modules/synthesized_instruments/samples/chromatic/vibraphone1/c5.ogg index 8f25ee2747..8660371ee5 100644 Binary files a/code/modules/synthesized_instruments/samples/chromatic/vibraphone1/c5.ogg and b/code/modules/synthesized_instruments/samples/chromatic/vibraphone1/c5.ogg differ diff --git a/code/modules/synthesized_instruments/samples/guitar/crisis_clean/C2.ogg b/code/modules/synthesized_instruments/samples/guitar/crisis_clean/C2.ogg index 17bea8122c..2844ebd0cc 100644 Binary files a/code/modules/synthesized_instruments/samples/guitar/crisis_clean/C2.ogg and b/code/modules/synthesized_instruments/samples/guitar/crisis_clean/C2.ogg differ diff --git a/code/modules/synthesized_instruments/samples/guitar/crisis_clean/C3.ogg b/code/modules/synthesized_instruments/samples/guitar/crisis_clean/C3.ogg index 6dc0d8ad38..5d08aa3570 100644 Binary files a/code/modules/synthesized_instruments/samples/guitar/crisis_clean/C3.ogg and b/code/modules/synthesized_instruments/samples/guitar/crisis_clean/C3.ogg differ diff --git a/code/modules/synthesized_instruments/samples/guitar/crisis_clean/C4.ogg b/code/modules/synthesized_instruments/samples/guitar/crisis_clean/C4.ogg index fbbcacb372..b78a7a608b 100644 Binary files a/code/modules/synthesized_instruments/samples/guitar/crisis_clean/C4.ogg and b/code/modules/synthesized_instruments/samples/guitar/crisis_clean/C4.ogg differ diff --git a/code/modules/synthesized_instruments/samples/guitar/crisis_clean/C5.ogg b/code/modules/synthesized_instruments/samples/guitar/crisis_clean/C5.ogg index f9bb3f6e92..031bb1d68d 100644 Binary files a/code/modules/synthesized_instruments/samples/guitar/crisis_clean/C5.ogg and b/code/modules/synthesized_instruments/samples/guitar/crisis_clean/C5.ogg differ diff --git a/code/modules/synthesized_instruments/samples/guitar/crisis_muted/C2.ogg b/code/modules/synthesized_instruments/samples/guitar/crisis_muted/C2.ogg index 777a38664f..7438a2f781 100644 Binary files a/code/modules/synthesized_instruments/samples/guitar/crisis_muted/C2.ogg and b/code/modules/synthesized_instruments/samples/guitar/crisis_muted/C2.ogg differ diff --git a/code/modules/synthesized_instruments/samples/guitar/crisis_muted/C3.ogg b/code/modules/synthesized_instruments/samples/guitar/crisis_muted/C3.ogg index c14aa5ec93..6b26f25cc9 100644 Binary files a/code/modules/synthesized_instruments/samples/guitar/crisis_muted/C3.ogg and b/code/modules/synthesized_instruments/samples/guitar/crisis_muted/C3.ogg differ diff --git a/code/modules/synthesized_instruments/samples/guitar/crisis_muted/C4.ogg b/code/modules/synthesized_instruments/samples/guitar/crisis_muted/C4.ogg index b2a457b496..c845778f4c 100644 Binary files a/code/modules/synthesized_instruments/samples/guitar/crisis_muted/C4.ogg and b/code/modules/synthesized_instruments/samples/guitar/crisis_muted/C4.ogg differ diff --git a/code/modules/synthesized_instruments/samples/guitar/crisis_muted/C5.ogg b/code/modules/synthesized_instruments/samples/guitar/crisis_muted/C5.ogg index c4f5aac8bf..0339b426af 100644 Binary files a/code/modules/synthesized_instruments/samples/guitar/crisis_muted/C5.ogg and b/code/modules/synthesized_instruments/samples/guitar/crisis_muted/C5.ogg differ diff --git a/code/modules/synthesized_instruments/samples/guitar/crisis_nylon/c2.ogg b/code/modules/synthesized_instruments/samples/guitar/crisis_nylon/c2.ogg index 6a8115f004..67c43d0f5f 100644 Binary files a/code/modules/synthesized_instruments/samples/guitar/crisis_nylon/c2.ogg and b/code/modules/synthesized_instruments/samples/guitar/crisis_nylon/c2.ogg differ diff --git a/code/modules/synthesized_instruments/samples/guitar/crisis_nylon/c3.ogg b/code/modules/synthesized_instruments/samples/guitar/crisis_nylon/c3.ogg index 15ec741bb6..675a1e4df1 100644 Binary files a/code/modules/synthesized_instruments/samples/guitar/crisis_nylon/c3.ogg and b/code/modules/synthesized_instruments/samples/guitar/crisis_nylon/c3.ogg differ diff --git a/code/modules/synthesized_instruments/samples/guitar/crisis_nylon/c4.ogg b/code/modules/synthesized_instruments/samples/guitar/crisis_nylon/c4.ogg index df4ef3fb79..8101b6dbdd 100644 Binary files a/code/modules/synthesized_instruments/samples/guitar/crisis_nylon/c4.ogg and b/code/modules/synthesized_instruments/samples/guitar/crisis_nylon/c4.ogg differ diff --git a/code/modules/synthesized_instruments/samples/guitar/crisis_nylon/c5.ogg b/code/modules/synthesized_instruments/samples/guitar/crisis_nylon/c5.ogg index 961f4a6b90..286a20e71b 100644 Binary files a/code/modules/synthesized_instruments/samples/guitar/crisis_nylon/c5.ogg and b/code/modules/synthesized_instruments/samples/guitar/crisis_nylon/c5.ogg differ diff --git a/code/modules/synthesized_instruments/samples/guitar/crisis_steel/c2.ogg b/code/modules/synthesized_instruments/samples/guitar/crisis_steel/c2.ogg index 06ccf6ae51..767e4de925 100644 Binary files a/code/modules/synthesized_instruments/samples/guitar/crisis_steel/c2.ogg and b/code/modules/synthesized_instruments/samples/guitar/crisis_steel/c2.ogg differ diff --git a/code/modules/synthesized_instruments/samples/guitar/crisis_steel/c3.ogg b/code/modules/synthesized_instruments/samples/guitar/crisis_steel/c3.ogg index 14756fb249..e661c93da4 100644 Binary files a/code/modules/synthesized_instruments/samples/guitar/crisis_steel/c3.ogg and b/code/modules/synthesized_instruments/samples/guitar/crisis_steel/c3.ogg differ diff --git a/code/modules/synthesized_instruments/samples/guitar/crisis_steel/c4.ogg b/code/modules/synthesized_instruments/samples/guitar/crisis_steel/c4.ogg index 544b324786..2c1192700a 100644 Binary files a/code/modules/synthesized_instruments/samples/guitar/crisis_steel/c4.ogg and b/code/modules/synthesized_instruments/samples/guitar/crisis_steel/c4.ogg differ diff --git a/code/modules/synthesized_instruments/samples/guitar/crisis_steel/c5.ogg b/code/modules/synthesized_instruments/samples/guitar/crisis_steel/c5.ogg index df2dc8def5..63836edabe 100644 Binary files a/code/modules/synthesized_instruments/samples/guitar/crisis_steel/c5.ogg and b/code/modules/synthesized_instruments/samples/guitar/crisis_steel/c5.ogg differ diff --git a/code/modules/synthesized_instruments/samples/obsolete/piano/A#1.ogg b/code/modules/synthesized_instruments/samples/obsolete/piano/A#1.ogg index b40cc72333..b957f35e5b 100644 Binary files a/code/modules/synthesized_instruments/samples/obsolete/piano/A#1.ogg and b/code/modules/synthesized_instruments/samples/obsolete/piano/A#1.ogg differ diff --git a/code/modules/synthesized_instruments/samples/obsolete/piano/A#2.ogg b/code/modules/synthesized_instruments/samples/obsolete/piano/A#2.ogg index 2b0677d44a..c855b2a95d 100644 Binary files a/code/modules/synthesized_instruments/samples/obsolete/piano/A#2.ogg and b/code/modules/synthesized_instruments/samples/obsolete/piano/A#2.ogg differ diff --git a/code/modules/synthesized_instruments/samples/obsolete/piano/A#3.ogg b/code/modules/synthesized_instruments/samples/obsolete/piano/A#3.ogg index e8fc263d8f..d39a5bb6c9 100644 Binary files a/code/modules/synthesized_instruments/samples/obsolete/piano/A#3.ogg and b/code/modules/synthesized_instruments/samples/obsolete/piano/A#3.ogg differ diff --git a/code/modules/synthesized_instruments/samples/obsolete/piano/A#4.ogg b/code/modules/synthesized_instruments/samples/obsolete/piano/A#4.ogg index 8ba7c40d33..175e1a464b 100644 Binary files a/code/modules/synthesized_instruments/samples/obsolete/piano/A#4.ogg and b/code/modules/synthesized_instruments/samples/obsolete/piano/A#4.ogg differ diff --git a/code/modules/synthesized_instruments/samples/obsolete/piano/A#5.ogg b/code/modules/synthesized_instruments/samples/obsolete/piano/A#5.ogg index 65c14d3320..fc6dd28172 100644 Binary files a/code/modules/synthesized_instruments/samples/obsolete/piano/A#5.ogg and b/code/modules/synthesized_instruments/samples/obsolete/piano/A#5.ogg differ diff --git a/code/modules/synthesized_instruments/samples/obsolete/piano/A#6.ogg b/code/modules/synthesized_instruments/samples/obsolete/piano/A#6.ogg index 88317f7d55..fd7a53eed6 100644 Binary files a/code/modules/synthesized_instruments/samples/obsolete/piano/A#6.ogg and b/code/modules/synthesized_instruments/samples/obsolete/piano/A#6.ogg differ diff --git a/code/modules/synthesized_instruments/samples/obsolete/piano/A#7.ogg b/code/modules/synthesized_instruments/samples/obsolete/piano/A#7.ogg index e7354522fe..5b8e57d844 100644 Binary files a/code/modules/synthesized_instruments/samples/obsolete/piano/A#7.ogg and b/code/modules/synthesized_instruments/samples/obsolete/piano/A#7.ogg differ diff --git a/code/modules/synthesized_instruments/samples/obsolete/piano/A#8.ogg b/code/modules/synthesized_instruments/samples/obsolete/piano/A#8.ogg index 7d8014c059..90752941d7 100644 Binary files a/code/modules/synthesized_instruments/samples/obsolete/piano/A#8.ogg and b/code/modules/synthesized_instruments/samples/obsolete/piano/A#8.ogg differ diff --git a/code/modules/synthesized_instruments/samples/obsolete/piano/Ab1.ogg b/code/modules/synthesized_instruments/samples/obsolete/piano/Ab1.ogg index 0c5ae36216..258a0ed23d 100644 Binary files a/code/modules/synthesized_instruments/samples/obsolete/piano/Ab1.ogg and b/code/modules/synthesized_instruments/samples/obsolete/piano/Ab1.ogg differ diff --git a/code/modules/synthesized_instruments/samples/obsolete/piano/Ab2.ogg b/code/modules/synthesized_instruments/samples/obsolete/piano/Ab2.ogg index 4dabf2cc82..5c3544be9f 100644 Binary files a/code/modules/synthesized_instruments/samples/obsolete/piano/Ab2.ogg and b/code/modules/synthesized_instruments/samples/obsolete/piano/Ab2.ogg differ diff --git a/code/modules/synthesized_instruments/samples/obsolete/piano/Ab3.ogg b/code/modules/synthesized_instruments/samples/obsolete/piano/Ab3.ogg index beb96005de..61b85c5caa 100644 Binary files a/code/modules/synthesized_instruments/samples/obsolete/piano/Ab3.ogg and b/code/modules/synthesized_instruments/samples/obsolete/piano/Ab3.ogg differ diff --git a/code/modules/synthesized_instruments/samples/obsolete/piano/Ab4.ogg b/code/modules/synthesized_instruments/samples/obsolete/piano/Ab4.ogg index bfcf301877..bb67be6f42 100644 Binary files a/code/modules/synthesized_instruments/samples/obsolete/piano/Ab4.ogg and b/code/modules/synthesized_instruments/samples/obsolete/piano/Ab4.ogg differ diff --git a/code/modules/synthesized_instruments/samples/obsolete/piano/Ab5.ogg b/code/modules/synthesized_instruments/samples/obsolete/piano/Ab5.ogg index b95acaf5a0..ac58d2abc8 100644 Binary files a/code/modules/synthesized_instruments/samples/obsolete/piano/Ab5.ogg and b/code/modules/synthesized_instruments/samples/obsolete/piano/Ab5.ogg differ diff --git a/code/modules/synthesized_instruments/samples/obsolete/piano/Ab6.ogg b/code/modules/synthesized_instruments/samples/obsolete/piano/Ab6.ogg index 501f51b3e1..3c9ef5b801 100644 Binary files a/code/modules/synthesized_instruments/samples/obsolete/piano/Ab6.ogg and b/code/modules/synthesized_instruments/samples/obsolete/piano/Ab6.ogg differ diff --git a/code/modules/synthesized_instruments/samples/obsolete/piano/Ab7.ogg b/code/modules/synthesized_instruments/samples/obsolete/piano/Ab7.ogg index b96f4e0766..5a06b821c9 100644 Binary files a/code/modules/synthesized_instruments/samples/obsolete/piano/Ab7.ogg and b/code/modules/synthesized_instruments/samples/obsolete/piano/Ab7.ogg differ diff --git a/code/modules/synthesized_instruments/samples/obsolete/piano/Ab8.ogg b/code/modules/synthesized_instruments/samples/obsolete/piano/Ab8.ogg index c4bd37195b..9b9205b825 100644 Binary files a/code/modules/synthesized_instruments/samples/obsolete/piano/Ab8.ogg and b/code/modules/synthesized_instruments/samples/obsolete/piano/Ab8.ogg differ diff --git a/code/modules/synthesized_instruments/samples/obsolete/piano/An1.ogg b/code/modules/synthesized_instruments/samples/obsolete/piano/An1.ogg index 5698578e79..bd9ddaa4c7 100644 Binary files a/code/modules/synthesized_instruments/samples/obsolete/piano/An1.ogg and b/code/modules/synthesized_instruments/samples/obsolete/piano/An1.ogg differ diff --git a/code/modules/synthesized_instruments/samples/obsolete/piano/An2.ogg b/code/modules/synthesized_instruments/samples/obsolete/piano/An2.ogg index aaff9b8e65..0f460f7f99 100644 Binary files a/code/modules/synthesized_instruments/samples/obsolete/piano/An2.ogg and b/code/modules/synthesized_instruments/samples/obsolete/piano/An2.ogg differ diff --git a/code/modules/synthesized_instruments/samples/obsolete/piano/An3.ogg b/code/modules/synthesized_instruments/samples/obsolete/piano/An3.ogg index 16fe54be83..f2e3837b4a 100644 Binary files a/code/modules/synthesized_instruments/samples/obsolete/piano/An3.ogg and b/code/modules/synthesized_instruments/samples/obsolete/piano/An3.ogg differ diff --git a/code/modules/synthesized_instruments/samples/obsolete/piano/An4.ogg b/code/modules/synthesized_instruments/samples/obsolete/piano/An4.ogg index 52cfc701a0..0be9b4fdec 100644 Binary files a/code/modules/synthesized_instruments/samples/obsolete/piano/An4.ogg and b/code/modules/synthesized_instruments/samples/obsolete/piano/An4.ogg differ diff --git a/code/modules/synthesized_instruments/samples/obsolete/piano/An5.ogg b/code/modules/synthesized_instruments/samples/obsolete/piano/An5.ogg index ba4ad8ee61..bb0b4049a9 100644 Binary files a/code/modules/synthesized_instruments/samples/obsolete/piano/An5.ogg and b/code/modules/synthesized_instruments/samples/obsolete/piano/An5.ogg differ diff --git a/code/modules/synthesized_instruments/samples/obsolete/piano/An6.ogg b/code/modules/synthesized_instruments/samples/obsolete/piano/An6.ogg index 49be4e31a8..29787a47ec 100644 Binary files a/code/modules/synthesized_instruments/samples/obsolete/piano/An6.ogg and b/code/modules/synthesized_instruments/samples/obsolete/piano/An6.ogg differ diff --git a/code/modules/synthesized_instruments/samples/obsolete/piano/An7.ogg b/code/modules/synthesized_instruments/samples/obsolete/piano/An7.ogg index da5f477db7..6ae5de3944 100644 Binary files a/code/modules/synthesized_instruments/samples/obsolete/piano/An7.ogg and b/code/modules/synthesized_instruments/samples/obsolete/piano/An7.ogg differ diff --git a/code/modules/synthesized_instruments/samples/obsolete/piano/An8.ogg b/code/modules/synthesized_instruments/samples/obsolete/piano/An8.ogg index 32e5cb81e7..72e877190b 100644 Binary files a/code/modules/synthesized_instruments/samples/obsolete/piano/An8.ogg and b/code/modules/synthesized_instruments/samples/obsolete/piano/An8.ogg differ diff --git a/code/modules/synthesized_instruments/samples/obsolete/piano/B#1.ogg b/code/modules/synthesized_instruments/samples/obsolete/piano/B#1.ogg index b82c6cff8a..1a02061e30 100644 Binary files a/code/modules/synthesized_instruments/samples/obsolete/piano/B#1.ogg and b/code/modules/synthesized_instruments/samples/obsolete/piano/B#1.ogg differ diff --git a/code/modules/synthesized_instruments/samples/obsolete/piano/B#2.ogg b/code/modules/synthesized_instruments/samples/obsolete/piano/B#2.ogg index e218380629..733dbc19ac 100644 Binary files a/code/modules/synthesized_instruments/samples/obsolete/piano/B#2.ogg and b/code/modules/synthesized_instruments/samples/obsolete/piano/B#2.ogg differ diff --git a/code/modules/synthesized_instruments/samples/obsolete/piano/B#3.ogg b/code/modules/synthesized_instruments/samples/obsolete/piano/B#3.ogg index b4dd559a24..0e46ed7f22 100644 Binary files a/code/modules/synthesized_instruments/samples/obsolete/piano/B#3.ogg and b/code/modules/synthesized_instruments/samples/obsolete/piano/B#3.ogg differ diff --git a/code/modules/synthesized_instruments/samples/obsolete/piano/B#4.ogg b/code/modules/synthesized_instruments/samples/obsolete/piano/B#4.ogg index 578c45e452..660e7e6b0b 100644 Binary files a/code/modules/synthesized_instruments/samples/obsolete/piano/B#4.ogg and b/code/modules/synthesized_instruments/samples/obsolete/piano/B#4.ogg differ diff --git a/code/modules/synthesized_instruments/samples/obsolete/piano/B#5.ogg b/code/modules/synthesized_instruments/samples/obsolete/piano/B#5.ogg index 6dfd56115f..14257dc979 100644 Binary files a/code/modules/synthesized_instruments/samples/obsolete/piano/B#5.ogg and b/code/modules/synthesized_instruments/samples/obsolete/piano/B#5.ogg differ diff --git a/code/modules/synthesized_instruments/samples/obsolete/piano/B#6.ogg b/code/modules/synthesized_instruments/samples/obsolete/piano/B#6.ogg index 32996328c8..083e6434ac 100644 Binary files a/code/modules/synthesized_instruments/samples/obsolete/piano/B#6.ogg and b/code/modules/synthesized_instruments/samples/obsolete/piano/B#6.ogg differ diff --git a/code/modules/synthesized_instruments/samples/obsolete/piano/B#7.ogg b/code/modules/synthesized_instruments/samples/obsolete/piano/B#7.ogg index 89b771aa37..8e23b32e0f 100644 Binary files a/code/modules/synthesized_instruments/samples/obsolete/piano/B#7.ogg and b/code/modules/synthesized_instruments/samples/obsolete/piano/B#7.ogg differ diff --git a/code/modules/synthesized_instruments/samples/obsolete/piano/B#8.ogg b/code/modules/synthesized_instruments/samples/obsolete/piano/B#8.ogg index cca99040de..dd37fedc99 100644 Binary files a/code/modules/synthesized_instruments/samples/obsolete/piano/B#8.ogg and b/code/modules/synthesized_instruments/samples/obsolete/piano/B#8.ogg differ diff --git a/code/modules/synthesized_instruments/samples/obsolete/piano/Bb1.ogg b/code/modules/synthesized_instruments/samples/obsolete/piano/Bb1.ogg index c872abe1a9..beb8df5309 100644 Binary files a/code/modules/synthesized_instruments/samples/obsolete/piano/Bb1.ogg and b/code/modules/synthesized_instruments/samples/obsolete/piano/Bb1.ogg differ diff --git a/code/modules/synthesized_instruments/samples/obsolete/piano/Bb2.ogg b/code/modules/synthesized_instruments/samples/obsolete/piano/Bb2.ogg index acd54ab388..fb60285936 100644 Binary files a/code/modules/synthesized_instruments/samples/obsolete/piano/Bb2.ogg and b/code/modules/synthesized_instruments/samples/obsolete/piano/Bb2.ogg differ diff --git a/code/modules/synthesized_instruments/samples/obsolete/piano/Bb3.ogg b/code/modules/synthesized_instruments/samples/obsolete/piano/Bb3.ogg index 33bea9f079..1503a47e76 100644 Binary files a/code/modules/synthesized_instruments/samples/obsolete/piano/Bb3.ogg and b/code/modules/synthesized_instruments/samples/obsolete/piano/Bb3.ogg differ diff --git a/code/modules/synthesized_instruments/samples/obsolete/piano/Bb4.ogg b/code/modules/synthesized_instruments/samples/obsolete/piano/Bb4.ogg index 736fa1fc8d..5fd333d3ae 100644 Binary files a/code/modules/synthesized_instruments/samples/obsolete/piano/Bb4.ogg and b/code/modules/synthesized_instruments/samples/obsolete/piano/Bb4.ogg differ diff --git a/code/modules/synthesized_instruments/samples/obsolete/piano/Bb5.ogg b/code/modules/synthesized_instruments/samples/obsolete/piano/Bb5.ogg index 38bddcf761..9cb3fcf30c 100644 Binary files a/code/modules/synthesized_instruments/samples/obsolete/piano/Bb5.ogg and b/code/modules/synthesized_instruments/samples/obsolete/piano/Bb5.ogg differ diff --git a/code/modules/synthesized_instruments/samples/obsolete/piano/Bb6.ogg b/code/modules/synthesized_instruments/samples/obsolete/piano/Bb6.ogg index e7a0425745..69807968ce 100644 Binary files a/code/modules/synthesized_instruments/samples/obsolete/piano/Bb6.ogg and b/code/modules/synthesized_instruments/samples/obsolete/piano/Bb6.ogg differ diff --git a/code/modules/synthesized_instruments/samples/obsolete/piano/Bb7.ogg b/code/modules/synthesized_instruments/samples/obsolete/piano/Bb7.ogg index 89441baba6..4b74c2b3e6 100644 Binary files a/code/modules/synthesized_instruments/samples/obsolete/piano/Bb7.ogg and b/code/modules/synthesized_instruments/samples/obsolete/piano/Bb7.ogg differ diff --git a/code/modules/synthesized_instruments/samples/obsolete/piano/Bb8.ogg b/code/modules/synthesized_instruments/samples/obsolete/piano/Bb8.ogg index 49dce93253..7b7a93333d 100644 Binary files a/code/modules/synthesized_instruments/samples/obsolete/piano/Bb8.ogg and b/code/modules/synthesized_instruments/samples/obsolete/piano/Bb8.ogg differ diff --git a/code/modules/synthesized_instruments/samples/obsolete/piano/Bn1.ogg b/code/modules/synthesized_instruments/samples/obsolete/piano/Bn1.ogg index 2ddf3f59b8..14ede9cf8c 100644 Binary files a/code/modules/synthesized_instruments/samples/obsolete/piano/Bn1.ogg and b/code/modules/synthesized_instruments/samples/obsolete/piano/Bn1.ogg differ diff --git a/code/modules/synthesized_instruments/samples/obsolete/piano/Bn2.ogg b/code/modules/synthesized_instruments/samples/obsolete/piano/Bn2.ogg index 92b49a24ca..5d4b33853b 100644 Binary files a/code/modules/synthesized_instruments/samples/obsolete/piano/Bn2.ogg and b/code/modules/synthesized_instruments/samples/obsolete/piano/Bn2.ogg differ diff --git a/code/modules/synthesized_instruments/samples/obsolete/piano/Bn3.ogg b/code/modules/synthesized_instruments/samples/obsolete/piano/Bn3.ogg index 20aa8ca434..310e504524 100644 Binary files a/code/modules/synthesized_instruments/samples/obsolete/piano/Bn3.ogg and b/code/modules/synthesized_instruments/samples/obsolete/piano/Bn3.ogg differ diff --git a/code/modules/synthesized_instruments/samples/obsolete/piano/Bn4.ogg b/code/modules/synthesized_instruments/samples/obsolete/piano/Bn4.ogg index b2ecc85255..b6f9fd6940 100644 Binary files a/code/modules/synthesized_instruments/samples/obsolete/piano/Bn4.ogg and b/code/modules/synthesized_instruments/samples/obsolete/piano/Bn4.ogg differ diff --git a/code/modules/synthesized_instruments/samples/obsolete/piano/Bn5.ogg b/code/modules/synthesized_instruments/samples/obsolete/piano/Bn5.ogg index e03af44292..744d227ed2 100644 Binary files a/code/modules/synthesized_instruments/samples/obsolete/piano/Bn5.ogg and b/code/modules/synthesized_instruments/samples/obsolete/piano/Bn5.ogg differ diff --git a/code/modules/synthesized_instruments/samples/obsolete/piano/Bn6.ogg b/code/modules/synthesized_instruments/samples/obsolete/piano/Bn6.ogg index 1acf0d94d0..cd7e57dbbc 100644 Binary files a/code/modules/synthesized_instruments/samples/obsolete/piano/Bn6.ogg and b/code/modules/synthesized_instruments/samples/obsolete/piano/Bn6.ogg differ diff --git a/code/modules/synthesized_instruments/samples/obsolete/piano/Bn7.ogg b/code/modules/synthesized_instruments/samples/obsolete/piano/Bn7.ogg index b68372b4ab..84e14d48ae 100644 Binary files a/code/modules/synthesized_instruments/samples/obsolete/piano/Bn7.ogg and b/code/modules/synthesized_instruments/samples/obsolete/piano/Bn7.ogg differ diff --git a/code/modules/synthesized_instruments/samples/obsolete/piano/Bn8.ogg b/code/modules/synthesized_instruments/samples/obsolete/piano/Bn8.ogg index 5db915a607..7d3c8c4645 100644 Binary files a/code/modules/synthesized_instruments/samples/obsolete/piano/Bn8.ogg and b/code/modules/synthesized_instruments/samples/obsolete/piano/Bn8.ogg differ diff --git a/code/modules/synthesized_instruments/samples/obsolete/piano/C#1.ogg b/code/modules/synthesized_instruments/samples/obsolete/piano/C#1.ogg index dc3c859cae..10e5841031 100644 Binary files a/code/modules/synthesized_instruments/samples/obsolete/piano/C#1.ogg and b/code/modules/synthesized_instruments/samples/obsolete/piano/C#1.ogg differ diff --git a/code/modules/synthesized_instruments/samples/obsolete/piano/C#2.ogg b/code/modules/synthesized_instruments/samples/obsolete/piano/C#2.ogg index 5a36e244a7..df898ab5bc 100644 Binary files a/code/modules/synthesized_instruments/samples/obsolete/piano/C#2.ogg and b/code/modules/synthesized_instruments/samples/obsolete/piano/C#2.ogg differ diff --git a/code/modules/synthesized_instruments/samples/obsolete/piano/C#3.ogg b/code/modules/synthesized_instruments/samples/obsolete/piano/C#3.ogg index af3e49f21e..a3b11cdaed 100644 Binary files a/code/modules/synthesized_instruments/samples/obsolete/piano/C#3.ogg and b/code/modules/synthesized_instruments/samples/obsolete/piano/C#3.ogg differ diff --git a/code/modules/synthesized_instruments/samples/obsolete/piano/C#4.ogg b/code/modules/synthesized_instruments/samples/obsolete/piano/C#4.ogg index 8b18a4ce41..8f68b3a5bc 100644 Binary files a/code/modules/synthesized_instruments/samples/obsolete/piano/C#4.ogg and b/code/modules/synthesized_instruments/samples/obsolete/piano/C#4.ogg differ diff --git a/code/modules/synthesized_instruments/samples/obsolete/piano/C#5.ogg b/code/modules/synthesized_instruments/samples/obsolete/piano/C#5.ogg index 690bd2763e..afdc12aabf 100644 Binary files a/code/modules/synthesized_instruments/samples/obsolete/piano/C#5.ogg and b/code/modules/synthesized_instruments/samples/obsolete/piano/C#5.ogg differ diff --git a/code/modules/synthesized_instruments/samples/obsolete/piano/C#6.ogg b/code/modules/synthesized_instruments/samples/obsolete/piano/C#6.ogg index 3a27950bd3..9a38de2946 100644 Binary files a/code/modules/synthesized_instruments/samples/obsolete/piano/C#6.ogg and b/code/modules/synthesized_instruments/samples/obsolete/piano/C#6.ogg differ diff --git a/code/modules/synthesized_instruments/samples/obsolete/piano/C#7.ogg b/code/modules/synthesized_instruments/samples/obsolete/piano/C#7.ogg index 9a7bc071ea..2b7dff779c 100644 Binary files a/code/modules/synthesized_instruments/samples/obsolete/piano/C#7.ogg and b/code/modules/synthesized_instruments/samples/obsolete/piano/C#7.ogg differ diff --git a/code/modules/synthesized_instruments/samples/obsolete/piano/C#8.ogg b/code/modules/synthesized_instruments/samples/obsolete/piano/C#8.ogg index 9adc2dbbbc..904b572a5d 100644 Binary files a/code/modules/synthesized_instruments/samples/obsolete/piano/C#8.ogg and b/code/modules/synthesized_instruments/samples/obsolete/piano/C#8.ogg differ diff --git a/code/modules/synthesized_instruments/samples/obsolete/piano/Cb2.ogg b/code/modules/synthesized_instruments/samples/obsolete/piano/Cb2.ogg index 7c36759c95..ff80be07da 100644 Binary files a/code/modules/synthesized_instruments/samples/obsolete/piano/Cb2.ogg and b/code/modules/synthesized_instruments/samples/obsolete/piano/Cb2.ogg differ diff --git a/code/modules/synthesized_instruments/samples/obsolete/piano/Cb3.ogg b/code/modules/synthesized_instruments/samples/obsolete/piano/Cb3.ogg index b856963854..ade05909bb 100644 Binary files a/code/modules/synthesized_instruments/samples/obsolete/piano/Cb3.ogg and b/code/modules/synthesized_instruments/samples/obsolete/piano/Cb3.ogg differ diff --git a/code/modules/synthesized_instruments/samples/obsolete/piano/Cb4.ogg b/code/modules/synthesized_instruments/samples/obsolete/piano/Cb4.ogg index fb693c0cad..5cee3cdb32 100644 Binary files a/code/modules/synthesized_instruments/samples/obsolete/piano/Cb4.ogg and b/code/modules/synthesized_instruments/samples/obsolete/piano/Cb4.ogg differ diff --git a/code/modules/synthesized_instruments/samples/obsolete/piano/Cb5.ogg b/code/modules/synthesized_instruments/samples/obsolete/piano/Cb5.ogg index b114181e3f..9786e1cc89 100644 Binary files a/code/modules/synthesized_instruments/samples/obsolete/piano/Cb5.ogg and b/code/modules/synthesized_instruments/samples/obsolete/piano/Cb5.ogg differ diff --git a/code/modules/synthesized_instruments/samples/obsolete/piano/Cb6.ogg b/code/modules/synthesized_instruments/samples/obsolete/piano/Cb6.ogg index 42470f9f3a..a266e16425 100644 Binary files a/code/modules/synthesized_instruments/samples/obsolete/piano/Cb6.ogg and b/code/modules/synthesized_instruments/samples/obsolete/piano/Cb6.ogg differ diff --git a/code/modules/synthesized_instruments/samples/obsolete/piano/Cb7.ogg b/code/modules/synthesized_instruments/samples/obsolete/piano/Cb7.ogg index adeb34cacd..b89777a152 100644 Binary files a/code/modules/synthesized_instruments/samples/obsolete/piano/Cb7.ogg and b/code/modules/synthesized_instruments/samples/obsolete/piano/Cb7.ogg differ diff --git a/code/modules/synthesized_instruments/samples/obsolete/piano/Cb8.ogg b/code/modules/synthesized_instruments/samples/obsolete/piano/Cb8.ogg index 1f2cbb94dd..00856ad254 100644 Binary files a/code/modules/synthesized_instruments/samples/obsolete/piano/Cb8.ogg and b/code/modules/synthesized_instruments/samples/obsolete/piano/Cb8.ogg differ diff --git a/code/modules/synthesized_instruments/samples/obsolete/piano/Cb9.ogg b/code/modules/synthesized_instruments/samples/obsolete/piano/Cb9.ogg index 25c0d646c3..9bf20dbe64 100644 Binary files a/code/modules/synthesized_instruments/samples/obsolete/piano/Cb9.ogg and b/code/modules/synthesized_instruments/samples/obsolete/piano/Cb9.ogg differ diff --git a/code/modules/synthesized_instruments/samples/obsolete/piano/Cn1.ogg b/code/modules/synthesized_instruments/samples/obsolete/piano/Cn1.ogg index e05b36d325..3f2bfaaa93 100644 Binary files a/code/modules/synthesized_instruments/samples/obsolete/piano/Cn1.ogg and b/code/modules/synthesized_instruments/samples/obsolete/piano/Cn1.ogg differ diff --git a/code/modules/synthesized_instruments/samples/obsolete/piano/Cn2.ogg b/code/modules/synthesized_instruments/samples/obsolete/piano/Cn2.ogg index cc96f26570..00973cd4ed 100644 Binary files a/code/modules/synthesized_instruments/samples/obsolete/piano/Cn2.ogg and b/code/modules/synthesized_instruments/samples/obsolete/piano/Cn2.ogg differ diff --git a/code/modules/synthesized_instruments/samples/obsolete/piano/Cn3.ogg b/code/modules/synthesized_instruments/samples/obsolete/piano/Cn3.ogg index 6d2f206927..340e95f8c9 100644 Binary files a/code/modules/synthesized_instruments/samples/obsolete/piano/Cn3.ogg and b/code/modules/synthesized_instruments/samples/obsolete/piano/Cn3.ogg differ diff --git a/code/modules/synthesized_instruments/samples/obsolete/piano/Cn4.ogg b/code/modules/synthesized_instruments/samples/obsolete/piano/Cn4.ogg index d0c0f4995e..7a54301436 100644 Binary files a/code/modules/synthesized_instruments/samples/obsolete/piano/Cn4.ogg and b/code/modules/synthesized_instruments/samples/obsolete/piano/Cn4.ogg differ diff --git a/code/modules/synthesized_instruments/samples/obsolete/piano/Cn5.ogg b/code/modules/synthesized_instruments/samples/obsolete/piano/Cn5.ogg index 1d95dfa099..41c0330acd 100644 Binary files a/code/modules/synthesized_instruments/samples/obsolete/piano/Cn5.ogg and b/code/modules/synthesized_instruments/samples/obsolete/piano/Cn5.ogg differ diff --git a/code/modules/synthesized_instruments/samples/obsolete/piano/Cn6.ogg b/code/modules/synthesized_instruments/samples/obsolete/piano/Cn6.ogg index f1e847d32f..ca36d55612 100644 Binary files a/code/modules/synthesized_instruments/samples/obsolete/piano/Cn6.ogg and b/code/modules/synthesized_instruments/samples/obsolete/piano/Cn6.ogg differ diff --git a/code/modules/synthesized_instruments/samples/obsolete/piano/Cn7.ogg b/code/modules/synthesized_instruments/samples/obsolete/piano/Cn7.ogg index 85cb1dd0fe..59d1d771b9 100644 Binary files a/code/modules/synthesized_instruments/samples/obsolete/piano/Cn7.ogg and b/code/modules/synthesized_instruments/samples/obsolete/piano/Cn7.ogg differ diff --git a/code/modules/synthesized_instruments/samples/obsolete/piano/Cn8.ogg b/code/modules/synthesized_instruments/samples/obsolete/piano/Cn8.ogg index f081d91d8b..abdf85a97b 100644 Binary files a/code/modules/synthesized_instruments/samples/obsolete/piano/Cn8.ogg and b/code/modules/synthesized_instruments/samples/obsolete/piano/Cn8.ogg differ diff --git a/code/modules/synthesized_instruments/samples/obsolete/piano/Cn9.ogg b/code/modules/synthesized_instruments/samples/obsolete/piano/Cn9.ogg index 06172ca6f1..0aee394315 100644 Binary files a/code/modules/synthesized_instruments/samples/obsolete/piano/Cn9.ogg and b/code/modules/synthesized_instruments/samples/obsolete/piano/Cn9.ogg differ diff --git a/code/modules/synthesized_instruments/samples/obsolete/piano/D#1.ogg b/code/modules/synthesized_instruments/samples/obsolete/piano/D#1.ogg index bd58c7dd75..78016d1e58 100644 Binary files a/code/modules/synthesized_instruments/samples/obsolete/piano/D#1.ogg and b/code/modules/synthesized_instruments/samples/obsolete/piano/D#1.ogg differ diff --git a/code/modules/synthesized_instruments/samples/obsolete/piano/D#2.ogg b/code/modules/synthesized_instruments/samples/obsolete/piano/D#2.ogg index fc01076810..ad4f121276 100644 Binary files a/code/modules/synthesized_instruments/samples/obsolete/piano/D#2.ogg and b/code/modules/synthesized_instruments/samples/obsolete/piano/D#2.ogg differ diff --git a/code/modules/synthesized_instruments/samples/obsolete/piano/D#3.ogg b/code/modules/synthesized_instruments/samples/obsolete/piano/D#3.ogg index e437f44466..3bf52fe965 100644 Binary files a/code/modules/synthesized_instruments/samples/obsolete/piano/D#3.ogg and b/code/modules/synthesized_instruments/samples/obsolete/piano/D#3.ogg differ diff --git a/code/modules/synthesized_instruments/samples/obsolete/piano/D#4.ogg b/code/modules/synthesized_instruments/samples/obsolete/piano/D#4.ogg index 0804aa03de..702e7208a8 100644 Binary files a/code/modules/synthesized_instruments/samples/obsolete/piano/D#4.ogg and b/code/modules/synthesized_instruments/samples/obsolete/piano/D#4.ogg differ diff --git a/code/modules/synthesized_instruments/samples/obsolete/piano/D#5.ogg b/code/modules/synthesized_instruments/samples/obsolete/piano/D#5.ogg index 40889dbae5..898e331322 100644 Binary files a/code/modules/synthesized_instruments/samples/obsolete/piano/D#5.ogg and b/code/modules/synthesized_instruments/samples/obsolete/piano/D#5.ogg differ diff --git a/code/modules/synthesized_instruments/samples/obsolete/piano/D#6.ogg b/code/modules/synthesized_instruments/samples/obsolete/piano/D#6.ogg index 616481d2f9..5e74dccc5a 100644 Binary files a/code/modules/synthesized_instruments/samples/obsolete/piano/D#6.ogg and b/code/modules/synthesized_instruments/samples/obsolete/piano/D#6.ogg differ diff --git a/code/modules/synthesized_instruments/samples/obsolete/piano/D#7.ogg b/code/modules/synthesized_instruments/samples/obsolete/piano/D#7.ogg index 5c191fb7f6..9f3d3e95c7 100644 Binary files a/code/modules/synthesized_instruments/samples/obsolete/piano/D#7.ogg and b/code/modules/synthesized_instruments/samples/obsolete/piano/D#7.ogg differ diff --git a/code/modules/synthesized_instruments/samples/obsolete/piano/D#8.ogg b/code/modules/synthesized_instruments/samples/obsolete/piano/D#8.ogg index 5955ed7f8d..854300a635 100644 Binary files a/code/modules/synthesized_instruments/samples/obsolete/piano/D#8.ogg and b/code/modules/synthesized_instruments/samples/obsolete/piano/D#8.ogg differ diff --git a/code/modules/synthesized_instruments/samples/obsolete/piano/Db1.ogg b/code/modules/synthesized_instruments/samples/obsolete/piano/Db1.ogg index a33554e476..fa2fc5669f 100644 Binary files a/code/modules/synthesized_instruments/samples/obsolete/piano/Db1.ogg and b/code/modules/synthesized_instruments/samples/obsolete/piano/Db1.ogg differ diff --git a/code/modules/synthesized_instruments/samples/obsolete/piano/Db2.ogg b/code/modules/synthesized_instruments/samples/obsolete/piano/Db2.ogg index dd45c2f11d..1268950082 100644 Binary files a/code/modules/synthesized_instruments/samples/obsolete/piano/Db2.ogg and b/code/modules/synthesized_instruments/samples/obsolete/piano/Db2.ogg differ diff --git a/code/modules/synthesized_instruments/samples/obsolete/piano/Db3.ogg b/code/modules/synthesized_instruments/samples/obsolete/piano/Db3.ogg index ebfa23bbc3..b6373ac0a7 100644 Binary files a/code/modules/synthesized_instruments/samples/obsolete/piano/Db3.ogg and b/code/modules/synthesized_instruments/samples/obsolete/piano/Db3.ogg differ diff --git a/code/modules/synthesized_instruments/samples/obsolete/piano/Db4.ogg b/code/modules/synthesized_instruments/samples/obsolete/piano/Db4.ogg index 52486484eb..4d80466492 100644 Binary files a/code/modules/synthesized_instruments/samples/obsolete/piano/Db4.ogg and b/code/modules/synthesized_instruments/samples/obsolete/piano/Db4.ogg differ diff --git a/code/modules/synthesized_instruments/samples/obsolete/piano/Db5.ogg b/code/modules/synthesized_instruments/samples/obsolete/piano/Db5.ogg index 8250bbb7cb..9ff48e1b5a 100644 Binary files a/code/modules/synthesized_instruments/samples/obsolete/piano/Db5.ogg and b/code/modules/synthesized_instruments/samples/obsolete/piano/Db5.ogg differ diff --git a/code/modules/synthesized_instruments/samples/obsolete/piano/Db6.ogg b/code/modules/synthesized_instruments/samples/obsolete/piano/Db6.ogg index 8ec394da17..4ecbdcc9cf 100644 Binary files a/code/modules/synthesized_instruments/samples/obsolete/piano/Db6.ogg and b/code/modules/synthesized_instruments/samples/obsolete/piano/Db6.ogg differ diff --git a/code/modules/synthesized_instruments/samples/obsolete/piano/Db7.ogg b/code/modules/synthesized_instruments/samples/obsolete/piano/Db7.ogg index 9a6c81dc34..0d393ac814 100644 Binary files a/code/modules/synthesized_instruments/samples/obsolete/piano/Db7.ogg and b/code/modules/synthesized_instruments/samples/obsolete/piano/Db7.ogg differ diff --git a/code/modules/synthesized_instruments/samples/obsolete/piano/Db8.ogg b/code/modules/synthesized_instruments/samples/obsolete/piano/Db8.ogg index 2790f60390..afb2828dd6 100644 Binary files a/code/modules/synthesized_instruments/samples/obsolete/piano/Db8.ogg and b/code/modules/synthesized_instruments/samples/obsolete/piano/Db8.ogg differ diff --git a/code/modules/synthesized_instruments/samples/obsolete/piano/Dn1.ogg b/code/modules/synthesized_instruments/samples/obsolete/piano/Dn1.ogg index 89ac14cc14..815cd6238a 100644 Binary files a/code/modules/synthesized_instruments/samples/obsolete/piano/Dn1.ogg and b/code/modules/synthesized_instruments/samples/obsolete/piano/Dn1.ogg differ diff --git a/code/modules/synthesized_instruments/samples/obsolete/piano/Dn2.ogg b/code/modules/synthesized_instruments/samples/obsolete/piano/Dn2.ogg index bb5f18fbf7..12e4ae14b5 100644 Binary files a/code/modules/synthesized_instruments/samples/obsolete/piano/Dn2.ogg and b/code/modules/synthesized_instruments/samples/obsolete/piano/Dn2.ogg differ diff --git a/code/modules/synthesized_instruments/samples/obsolete/piano/Dn3.ogg b/code/modules/synthesized_instruments/samples/obsolete/piano/Dn3.ogg index 6a54b77549..0d92cfa489 100644 Binary files a/code/modules/synthesized_instruments/samples/obsolete/piano/Dn3.ogg and b/code/modules/synthesized_instruments/samples/obsolete/piano/Dn3.ogg differ diff --git a/code/modules/synthesized_instruments/samples/obsolete/piano/Dn4.ogg b/code/modules/synthesized_instruments/samples/obsolete/piano/Dn4.ogg index 8f930b8b50..2b1f8ca063 100644 Binary files a/code/modules/synthesized_instruments/samples/obsolete/piano/Dn4.ogg and b/code/modules/synthesized_instruments/samples/obsolete/piano/Dn4.ogg differ diff --git a/code/modules/synthesized_instruments/samples/obsolete/piano/Dn5.ogg b/code/modules/synthesized_instruments/samples/obsolete/piano/Dn5.ogg index 981d37e910..82a28e608f 100644 Binary files a/code/modules/synthesized_instruments/samples/obsolete/piano/Dn5.ogg and b/code/modules/synthesized_instruments/samples/obsolete/piano/Dn5.ogg differ diff --git a/code/modules/synthesized_instruments/samples/obsolete/piano/Dn6.ogg b/code/modules/synthesized_instruments/samples/obsolete/piano/Dn6.ogg index 112f101bb2..25c0754608 100644 Binary files a/code/modules/synthesized_instruments/samples/obsolete/piano/Dn6.ogg and b/code/modules/synthesized_instruments/samples/obsolete/piano/Dn6.ogg differ diff --git a/code/modules/synthesized_instruments/samples/obsolete/piano/Dn7.ogg b/code/modules/synthesized_instruments/samples/obsolete/piano/Dn7.ogg index ff2724463c..0be8b91e8e 100644 Binary files a/code/modules/synthesized_instruments/samples/obsolete/piano/Dn7.ogg and b/code/modules/synthesized_instruments/samples/obsolete/piano/Dn7.ogg differ diff --git a/code/modules/synthesized_instruments/samples/obsolete/piano/Dn8.ogg b/code/modules/synthesized_instruments/samples/obsolete/piano/Dn8.ogg index 5e2523f123..f7a2810e98 100644 Binary files a/code/modules/synthesized_instruments/samples/obsolete/piano/Dn8.ogg and b/code/modules/synthesized_instruments/samples/obsolete/piano/Dn8.ogg differ diff --git a/code/modules/synthesized_instruments/samples/obsolete/piano/E#1.ogg b/code/modules/synthesized_instruments/samples/obsolete/piano/E#1.ogg index c192032dc0..8f57272375 100644 Binary files a/code/modules/synthesized_instruments/samples/obsolete/piano/E#1.ogg and b/code/modules/synthesized_instruments/samples/obsolete/piano/E#1.ogg differ diff --git a/code/modules/synthesized_instruments/samples/obsolete/piano/E#2.ogg b/code/modules/synthesized_instruments/samples/obsolete/piano/E#2.ogg index da09b64979..1c44ede4a2 100644 Binary files a/code/modules/synthesized_instruments/samples/obsolete/piano/E#2.ogg and b/code/modules/synthesized_instruments/samples/obsolete/piano/E#2.ogg differ diff --git a/code/modules/synthesized_instruments/samples/obsolete/piano/E#3.ogg b/code/modules/synthesized_instruments/samples/obsolete/piano/E#3.ogg index e7a2f93535..7186e0366a 100644 Binary files a/code/modules/synthesized_instruments/samples/obsolete/piano/E#3.ogg and b/code/modules/synthesized_instruments/samples/obsolete/piano/E#3.ogg differ diff --git a/code/modules/synthesized_instruments/samples/obsolete/piano/E#4.ogg b/code/modules/synthesized_instruments/samples/obsolete/piano/E#4.ogg index b3b14b7266..da680effca 100644 Binary files a/code/modules/synthesized_instruments/samples/obsolete/piano/E#4.ogg and b/code/modules/synthesized_instruments/samples/obsolete/piano/E#4.ogg differ diff --git a/code/modules/synthesized_instruments/samples/obsolete/piano/E#5.ogg b/code/modules/synthesized_instruments/samples/obsolete/piano/E#5.ogg index 08bc2cf5a8..28ced33bc4 100644 Binary files a/code/modules/synthesized_instruments/samples/obsolete/piano/E#5.ogg and b/code/modules/synthesized_instruments/samples/obsolete/piano/E#5.ogg differ diff --git a/code/modules/synthesized_instruments/samples/obsolete/piano/E#6.ogg b/code/modules/synthesized_instruments/samples/obsolete/piano/E#6.ogg index 6060576f36..706c93af21 100644 Binary files a/code/modules/synthesized_instruments/samples/obsolete/piano/E#6.ogg and b/code/modules/synthesized_instruments/samples/obsolete/piano/E#6.ogg differ diff --git a/code/modules/synthesized_instruments/samples/obsolete/piano/E#7.ogg b/code/modules/synthesized_instruments/samples/obsolete/piano/E#7.ogg index 77a81ed570..45b0576d3b 100644 Binary files a/code/modules/synthesized_instruments/samples/obsolete/piano/E#7.ogg and b/code/modules/synthesized_instruments/samples/obsolete/piano/E#7.ogg differ diff --git a/code/modules/synthesized_instruments/samples/obsolete/piano/E#8.ogg b/code/modules/synthesized_instruments/samples/obsolete/piano/E#8.ogg index 5502fedbda..216834ec73 100644 Binary files a/code/modules/synthesized_instruments/samples/obsolete/piano/E#8.ogg and b/code/modules/synthesized_instruments/samples/obsolete/piano/E#8.ogg differ diff --git a/code/modules/synthesized_instruments/samples/obsolete/piano/Eb1.ogg b/code/modules/synthesized_instruments/samples/obsolete/piano/Eb1.ogg index 8923e11fd9..7e9d7d1f54 100644 Binary files a/code/modules/synthesized_instruments/samples/obsolete/piano/Eb1.ogg and b/code/modules/synthesized_instruments/samples/obsolete/piano/Eb1.ogg differ diff --git a/code/modules/synthesized_instruments/samples/obsolete/piano/Eb2.ogg b/code/modules/synthesized_instruments/samples/obsolete/piano/Eb2.ogg index b61faa1737..b5395a4358 100644 Binary files a/code/modules/synthesized_instruments/samples/obsolete/piano/Eb2.ogg and b/code/modules/synthesized_instruments/samples/obsolete/piano/Eb2.ogg differ diff --git a/code/modules/synthesized_instruments/samples/obsolete/piano/Eb3.ogg b/code/modules/synthesized_instruments/samples/obsolete/piano/Eb3.ogg index bf80c6eeeb..829701617a 100644 Binary files a/code/modules/synthesized_instruments/samples/obsolete/piano/Eb3.ogg and b/code/modules/synthesized_instruments/samples/obsolete/piano/Eb3.ogg differ diff --git a/code/modules/synthesized_instruments/samples/obsolete/piano/Eb4.ogg b/code/modules/synthesized_instruments/samples/obsolete/piano/Eb4.ogg index fa991d11c5..eec01a4c55 100644 Binary files a/code/modules/synthesized_instruments/samples/obsolete/piano/Eb4.ogg and b/code/modules/synthesized_instruments/samples/obsolete/piano/Eb4.ogg differ diff --git a/code/modules/synthesized_instruments/samples/obsolete/piano/Eb5.ogg b/code/modules/synthesized_instruments/samples/obsolete/piano/Eb5.ogg index e63e0143a5..1757078381 100644 Binary files a/code/modules/synthesized_instruments/samples/obsolete/piano/Eb5.ogg and b/code/modules/synthesized_instruments/samples/obsolete/piano/Eb5.ogg differ diff --git a/code/modules/synthesized_instruments/samples/obsolete/piano/Eb6.ogg b/code/modules/synthesized_instruments/samples/obsolete/piano/Eb6.ogg index e3f6ccb4c4..7217e6dbcd 100644 Binary files a/code/modules/synthesized_instruments/samples/obsolete/piano/Eb6.ogg and b/code/modules/synthesized_instruments/samples/obsolete/piano/Eb6.ogg differ diff --git a/code/modules/synthesized_instruments/samples/obsolete/piano/Eb7.ogg b/code/modules/synthesized_instruments/samples/obsolete/piano/Eb7.ogg index a7dc94edbd..991ec9ff5f 100644 Binary files a/code/modules/synthesized_instruments/samples/obsolete/piano/Eb7.ogg and b/code/modules/synthesized_instruments/samples/obsolete/piano/Eb7.ogg differ diff --git a/code/modules/synthesized_instruments/samples/obsolete/piano/Eb8.ogg b/code/modules/synthesized_instruments/samples/obsolete/piano/Eb8.ogg index f6a7f46657..2aac636185 100644 Binary files a/code/modules/synthesized_instruments/samples/obsolete/piano/Eb8.ogg and b/code/modules/synthesized_instruments/samples/obsolete/piano/Eb8.ogg differ diff --git a/code/modules/synthesized_instruments/samples/obsolete/piano/En1.ogg b/code/modules/synthesized_instruments/samples/obsolete/piano/En1.ogg index fbcb29c2de..5ea6de179d 100644 Binary files a/code/modules/synthesized_instruments/samples/obsolete/piano/En1.ogg and b/code/modules/synthesized_instruments/samples/obsolete/piano/En1.ogg differ diff --git a/code/modules/synthesized_instruments/samples/obsolete/piano/En2.ogg b/code/modules/synthesized_instruments/samples/obsolete/piano/En2.ogg index b6f4f1a5e8..48beb83ed0 100644 Binary files a/code/modules/synthesized_instruments/samples/obsolete/piano/En2.ogg and b/code/modules/synthesized_instruments/samples/obsolete/piano/En2.ogg differ diff --git a/code/modules/synthesized_instruments/samples/obsolete/piano/En3.ogg b/code/modules/synthesized_instruments/samples/obsolete/piano/En3.ogg index 5f6ade5f1b..cb288d395e 100644 Binary files a/code/modules/synthesized_instruments/samples/obsolete/piano/En3.ogg and b/code/modules/synthesized_instruments/samples/obsolete/piano/En3.ogg differ diff --git a/code/modules/synthesized_instruments/samples/obsolete/piano/En4.ogg b/code/modules/synthesized_instruments/samples/obsolete/piano/En4.ogg index 0f567ffb98..8594cd51e8 100644 Binary files a/code/modules/synthesized_instruments/samples/obsolete/piano/En4.ogg and b/code/modules/synthesized_instruments/samples/obsolete/piano/En4.ogg differ diff --git a/code/modules/synthesized_instruments/samples/obsolete/piano/En5.ogg b/code/modules/synthesized_instruments/samples/obsolete/piano/En5.ogg index 05719f2a2d..6925b843bb 100644 Binary files a/code/modules/synthesized_instruments/samples/obsolete/piano/En5.ogg and b/code/modules/synthesized_instruments/samples/obsolete/piano/En5.ogg differ diff --git a/code/modules/synthesized_instruments/samples/obsolete/piano/En6.ogg b/code/modules/synthesized_instruments/samples/obsolete/piano/En6.ogg index b1295b67ee..211c38480d 100644 Binary files a/code/modules/synthesized_instruments/samples/obsolete/piano/En6.ogg and b/code/modules/synthesized_instruments/samples/obsolete/piano/En6.ogg differ diff --git a/code/modules/synthesized_instruments/samples/obsolete/piano/En7.ogg b/code/modules/synthesized_instruments/samples/obsolete/piano/En7.ogg index 0d97b93fbc..38fdc19be7 100644 Binary files a/code/modules/synthesized_instruments/samples/obsolete/piano/En7.ogg and b/code/modules/synthesized_instruments/samples/obsolete/piano/En7.ogg differ diff --git a/code/modules/synthesized_instruments/samples/obsolete/piano/En8.ogg b/code/modules/synthesized_instruments/samples/obsolete/piano/En8.ogg index f0ea5f1ec5..48a54971f1 100644 Binary files a/code/modules/synthesized_instruments/samples/obsolete/piano/En8.ogg and b/code/modules/synthesized_instruments/samples/obsolete/piano/En8.ogg differ diff --git a/code/modules/synthesized_instruments/samples/obsolete/piano/F#1.ogg b/code/modules/synthesized_instruments/samples/obsolete/piano/F#1.ogg index ad9e0a563c..6e39129431 100644 Binary files a/code/modules/synthesized_instruments/samples/obsolete/piano/F#1.ogg and b/code/modules/synthesized_instruments/samples/obsolete/piano/F#1.ogg differ diff --git a/code/modules/synthesized_instruments/samples/obsolete/piano/F#2.ogg b/code/modules/synthesized_instruments/samples/obsolete/piano/F#2.ogg index b1e86bfeaa..437dff1ef6 100644 Binary files a/code/modules/synthesized_instruments/samples/obsolete/piano/F#2.ogg and b/code/modules/synthesized_instruments/samples/obsolete/piano/F#2.ogg differ diff --git a/code/modules/synthesized_instruments/samples/obsolete/piano/F#3.ogg b/code/modules/synthesized_instruments/samples/obsolete/piano/F#3.ogg index 53b56c5017..cc9cd00676 100644 Binary files a/code/modules/synthesized_instruments/samples/obsolete/piano/F#3.ogg and b/code/modules/synthesized_instruments/samples/obsolete/piano/F#3.ogg differ diff --git a/code/modules/synthesized_instruments/samples/obsolete/piano/F#4.ogg b/code/modules/synthesized_instruments/samples/obsolete/piano/F#4.ogg index e9d71303a1..e3b02e34c0 100644 Binary files a/code/modules/synthesized_instruments/samples/obsolete/piano/F#4.ogg and b/code/modules/synthesized_instruments/samples/obsolete/piano/F#4.ogg differ diff --git a/code/modules/synthesized_instruments/samples/obsolete/piano/F#5.ogg b/code/modules/synthesized_instruments/samples/obsolete/piano/F#5.ogg index c4cc3165ab..4a103079f6 100644 Binary files a/code/modules/synthesized_instruments/samples/obsolete/piano/F#5.ogg and b/code/modules/synthesized_instruments/samples/obsolete/piano/F#5.ogg differ diff --git a/code/modules/synthesized_instruments/samples/obsolete/piano/F#6.ogg b/code/modules/synthesized_instruments/samples/obsolete/piano/F#6.ogg index 0942095116..9348d4ba03 100644 Binary files a/code/modules/synthesized_instruments/samples/obsolete/piano/F#6.ogg and b/code/modules/synthesized_instruments/samples/obsolete/piano/F#6.ogg differ diff --git a/code/modules/synthesized_instruments/samples/obsolete/piano/F#7.ogg b/code/modules/synthesized_instruments/samples/obsolete/piano/F#7.ogg index c37dc8fb37..798c69aa51 100644 Binary files a/code/modules/synthesized_instruments/samples/obsolete/piano/F#7.ogg and b/code/modules/synthesized_instruments/samples/obsolete/piano/F#7.ogg differ diff --git a/code/modules/synthesized_instruments/samples/obsolete/piano/F#8.ogg b/code/modules/synthesized_instruments/samples/obsolete/piano/F#8.ogg index 0241e9beab..b9a3e7f286 100644 Binary files a/code/modules/synthesized_instruments/samples/obsolete/piano/F#8.ogg and b/code/modules/synthesized_instruments/samples/obsolete/piano/F#8.ogg differ diff --git a/code/modules/synthesized_instruments/samples/obsolete/piano/Fb1.ogg b/code/modules/synthesized_instruments/samples/obsolete/piano/Fb1.ogg index fbcb29c2de..3625b80b36 100644 Binary files a/code/modules/synthesized_instruments/samples/obsolete/piano/Fb1.ogg and b/code/modules/synthesized_instruments/samples/obsolete/piano/Fb1.ogg differ diff --git a/code/modules/synthesized_instruments/samples/obsolete/piano/Fb2.ogg b/code/modules/synthesized_instruments/samples/obsolete/piano/Fb2.ogg index 4cece2d9cd..c599561d16 100644 Binary files a/code/modules/synthesized_instruments/samples/obsolete/piano/Fb2.ogg and b/code/modules/synthesized_instruments/samples/obsolete/piano/Fb2.ogg differ diff --git a/code/modules/synthesized_instruments/samples/obsolete/piano/Fb3.ogg b/code/modules/synthesized_instruments/samples/obsolete/piano/Fb3.ogg index 3675271a15..d3bbdbe2a2 100644 Binary files a/code/modules/synthesized_instruments/samples/obsolete/piano/Fb3.ogg and b/code/modules/synthesized_instruments/samples/obsolete/piano/Fb3.ogg differ diff --git a/code/modules/synthesized_instruments/samples/obsolete/piano/Fb4.ogg b/code/modules/synthesized_instruments/samples/obsolete/piano/Fb4.ogg index 2608770227..392c1bb272 100644 Binary files a/code/modules/synthesized_instruments/samples/obsolete/piano/Fb4.ogg and b/code/modules/synthesized_instruments/samples/obsolete/piano/Fb4.ogg differ diff --git a/code/modules/synthesized_instruments/samples/obsolete/piano/Fb5.ogg b/code/modules/synthesized_instruments/samples/obsolete/piano/Fb5.ogg index f8016a6d24..e85202a51c 100644 Binary files a/code/modules/synthesized_instruments/samples/obsolete/piano/Fb5.ogg and b/code/modules/synthesized_instruments/samples/obsolete/piano/Fb5.ogg differ diff --git a/code/modules/synthesized_instruments/samples/obsolete/piano/Fb6.ogg b/code/modules/synthesized_instruments/samples/obsolete/piano/Fb6.ogg index 397714bdaa..81483764c8 100644 Binary files a/code/modules/synthesized_instruments/samples/obsolete/piano/Fb6.ogg and b/code/modules/synthesized_instruments/samples/obsolete/piano/Fb6.ogg differ diff --git a/code/modules/synthesized_instruments/samples/obsolete/piano/Fb7.ogg b/code/modules/synthesized_instruments/samples/obsolete/piano/Fb7.ogg index d9f630f11d..d60ab49dce 100644 Binary files a/code/modules/synthesized_instruments/samples/obsolete/piano/Fb7.ogg and b/code/modules/synthesized_instruments/samples/obsolete/piano/Fb7.ogg differ diff --git a/code/modules/synthesized_instruments/samples/obsolete/piano/Fb8.ogg b/code/modules/synthesized_instruments/samples/obsolete/piano/Fb8.ogg index 28ae958d82..abf1fe40a7 100644 Binary files a/code/modules/synthesized_instruments/samples/obsolete/piano/Fb8.ogg and b/code/modules/synthesized_instruments/samples/obsolete/piano/Fb8.ogg differ diff --git a/code/modules/synthesized_instruments/samples/obsolete/piano/Fn1.ogg b/code/modules/synthesized_instruments/samples/obsolete/piano/Fn1.ogg index 9d10f8ccf6..96439c499b 100644 Binary files a/code/modules/synthesized_instruments/samples/obsolete/piano/Fn1.ogg and b/code/modules/synthesized_instruments/samples/obsolete/piano/Fn1.ogg differ diff --git a/code/modules/synthesized_instruments/samples/obsolete/piano/Fn2.ogg b/code/modules/synthesized_instruments/samples/obsolete/piano/Fn2.ogg index 24cff105e6..fbded80aca 100644 Binary files a/code/modules/synthesized_instruments/samples/obsolete/piano/Fn2.ogg and b/code/modules/synthesized_instruments/samples/obsolete/piano/Fn2.ogg differ diff --git a/code/modules/synthesized_instruments/samples/obsolete/piano/Fn3.ogg b/code/modules/synthesized_instruments/samples/obsolete/piano/Fn3.ogg index 313c54b59a..d7f8e02bd1 100644 Binary files a/code/modules/synthesized_instruments/samples/obsolete/piano/Fn3.ogg and b/code/modules/synthesized_instruments/samples/obsolete/piano/Fn3.ogg differ diff --git a/code/modules/synthesized_instruments/samples/obsolete/piano/Fn4.ogg b/code/modules/synthesized_instruments/samples/obsolete/piano/Fn4.ogg index 3331d67fbe..d615d435e5 100644 Binary files a/code/modules/synthesized_instruments/samples/obsolete/piano/Fn4.ogg and b/code/modules/synthesized_instruments/samples/obsolete/piano/Fn4.ogg differ diff --git a/code/modules/synthesized_instruments/samples/obsolete/piano/Fn5.ogg b/code/modules/synthesized_instruments/samples/obsolete/piano/Fn5.ogg index 7294171595..733a6d105d 100644 Binary files a/code/modules/synthesized_instruments/samples/obsolete/piano/Fn5.ogg and b/code/modules/synthesized_instruments/samples/obsolete/piano/Fn5.ogg differ diff --git a/code/modules/synthesized_instruments/samples/obsolete/piano/Fn6.ogg b/code/modules/synthesized_instruments/samples/obsolete/piano/Fn6.ogg index 8218928c85..543fefff4f 100644 Binary files a/code/modules/synthesized_instruments/samples/obsolete/piano/Fn6.ogg and b/code/modules/synthesized_instruments/samples/obsolete/piano/Fn6.ogg differ diff --git a/code/modules/synthesized_instruments/samples/obsolete/piano/Fn7.ogg b/code/modules/synthesized_instruments/samples/obsolete/piano/Fn7.ogg index b459e82acd..718a075d56 100644 Binary files a/code/modules/synthesized_instruments/samples/obsolete/piano/Fn7.ogg and b/code/modules/synthesized_instruments/samples/obsolete/piano/Fn7.ogg differ diff --git a/code/modules/synthesized_instruments/samples/obsolete/piano/Fn8.ogg b/code/modules/synthesized_instruments/samples/obsolete/piano/Fn8.ogg index be14499059..f187900508 100644 Binary files a/code/modules/synthesized_instruments/samples/obsolete/piano/Fn8.ogg and b/code/modules/synthesized_instruments/samples/obsolete/piano/Fn8.ogg differ diff --git a/code/modules/synthesized_instruments/samples/obsolete/piano/G#1.ogg b/code/modules/synthesized_instruments/samples/obsolete/piano/G#1.ogg index 3ef68c0d87..26e958ab73 100644 Binary files a/code/modules/synthesized_instruments/samples/obsolete/piano/G#1.ogg and b/code/modules/synthesized_instruments/samples/obsolete/piano/G#1.ogg differ diff --git a/code/modules/synthesized_instruments/samples/obsolete/piano/G#2.ogg b/code/modules/synthesized_instruments/samples/obsolete/piano/G#2.ogg index 4d92169365..bb49a052cf 100644 Binary files a/code/modules/synthesized_instruments/samples/obsolete/piano/G#2.ogg and b/code/modules/synthesized_instruments/samples/obsolete/piano/G#2.ogg differ diff --git a/code/modules/synthesized_instruments/samples/obsolete/piano/G#3.ogg b/code/modules/synthesized_instruments/samples/obsolete/piano/G#3.ogg index 21a03c7805..0aa5690949 100644 Binary files a/code/modules/synthesized_instruments/samples/obsolete/piano/G#3.ogg and b/code/modules/synthesized_instruments/samples/obsolete/piano/G#3.ogg differ diff --git a/code/modules/synthesized_instruments/samples/obsolete/piano/G#4.ogg b/code/modules/synthesized_instruments/samples/obsolete/piano/G#4.ogg index 070ad2b453..90306db082 100644 Binary files a/code/modules/synthesized_instruments/samples/obsolete/piano/G#4.ogg and b/code/modules/synthesized_instruments/samples/obsolete/piano/G#4.ogg differ diff --git a/code/modules/synthesized_instruments/samples/obsolete/piano/G#5.ogg b/code/modules/synthesized_instruments/samples/obsolete/piano/G#5.ogg index 233256500f..39f8fb58d6 100644 Binary files a/code/modules/synthesized_instruments/samples/obsolete/piano/G#5.ogg and b/code/modules/synthesized_instruments/samples/obsolete/piano/G#5.ogg differ diff --git a/code/modules/synthesized_instruments/samples/obsolete/piano/G#6.ogg b/code/modules/synthesized_instruments/samples/obsolete/piano/G#6.ogg index 3c387fcfab..af1f14ea55 100644 Binary files a/code/modules/synthesized_instruments/samples/obsolete/piano/G#6.ogg and b/code/modules/synthesized_instruments/samples/obsolete/piano/G#6.ogg differ diff --git a/code/modules/synthesized_instruments/samples/obsolete/piano/G#7.ogg b/code/modules/synthesized_instruments/samples/obsolete/piano/G#7.ogg index 4ba6c8b658..42e597d76f 100644 Binary files a/code/modules/synthesized_instruments/samples/obsolete/piano/G#7.ogg and b/code/modules/synthesized_instruments/samples/obsolete/piano/G#7.ogg differ diff --git a/code/modules/synthesized_instruments/samples/obsolete/piano/G#8.ogg b/code/modules/synthesized_instruments/samples/obsolete/piano/G#8.ogg index b847ab1c86..5f8415c1c1 100644 Binary files a/code/modules/synthesized_instruments/samples/obsolete/piano/G#8.ogg and b/code/modules/synthesized_instruments/samples/obsolete/piano/G#8.ogg differ diff --git a/code/modules/synthesized_instruments/samples/obsolete/piano/Gb1.ogg b/code/modules/synthesized_instruments/samples/obsolete/piano/Gb1.ogg index d53e3ea9d8..3293585a2f 100644 Binary files a/code/modules/synthesized_instruments/samples/obsolete/piano/Gb1.ogg and b/code/modules/synthesized_instruments/samples/obsolete/piano/Gb1.ogg differ diff --git a/code/modules/synthesized_instruments/samples/obsolete/piano/Gb2.ogg b/code/modules/synthesized_instruments/samples/obsolete/piano/Gb2.ogg index 0ceea3ecc8..9d4c84fbc3 100644 Binary files a/code/modules/synthesized_instruments/samples/obsolete/piano/Gb2.ogg and b/code/modules/synthesized_instruments/samples/obsolete/piano/Gb2.ogg differ diff --git a/code/modules/synthesized_instruments/samples/obsolete/piano/Gb3.ogg b/code/modules/synthesized_instruments/samples/obsolete/piano/Gb3.ogg index 53b56c5017..71493f3c76 100644 Binary files a/code/modules/synthesized_instruments/samples/obsolete/piano/Gb3.ogg and b/code/modules/synthesized_instruments/samples/obsolete/piano/Gb3.ogg differ diff --git a/code/modules/synthesized_instruments/samples/obsolete/piano/Gb4.ogg b/code/modules/synthesized_instruments/samples/obsolete/piano/Gb4.ogg index c982d7beaf..82f4bdd798 100644 Binary files a/code/modules/synthesized_instruments/samples/obsolete/piano/Gb4.ogg and b/code/modules/synthesized_instruments/samples/obsolete/piano/Gb4.ogg differ diff --git a/code/modules/synthesized_instruments/samples/obsolete/piano/Gb5.ogg b/code/modules/synthesized_instruments/samples/obsolete/piano/Gb5.ogg index 787c19bed8..a733a9e400 100644 Binary files a/code/modules/synthesized_instruments/samples/obsolete/piano/Gb5.ogg and b/code/modules/synthesized_instruments/samples/obsolete/piano/Gb5.ogg differ diff --git a/code/modules/synthesized_instruments/samples/obsolete/piano/Gb6.ogg b/code/modules/synthesized_instruments/samples/obsolete/piano/Gb6.ogg index d5a5dbb2d1..682c4c6c64 100644 Binary files a/code/modules/synthesized_instruments/samples/obsolete/piano/Gb6.ogg and b/code/modules/synthesized_instruments/samples/obsolete/piano/Gb6.ogg differ diff --git a/code/modules/synthesized_instruments/samples/obsolete/piano/Gb7.ogg b/code/modules/synthesized_instruments/samples/obsolete/piano/Gb7.ogg index c6f9271680..51d0572437 100644 Binary files a/code/modules/synthesized_instruments/samples/obsolete/piano/Gb7.ogg and b/code/modules/synthesized_instruments/samples/obsolete/piano/Gb7.ogg differ diff --git a/code/modules/synthesized_instruments/samples/obsolete/piano/Gb8.ogg b/code/modules/synthesized_instruments/samples/obsolete/piano/Gb8.ogg index 85c0b70754..438a17e634 100644 Binary files a/code/modules/synthesized_instruments/samples/obsolete/piano/Gb8.ogg and b/code/modules/synthesized_instruments/samples/obsolete/piano/Gb8.ogg differ diff --git a/code/modules/synthesized_instruments/samples/obsolete/piano/Gn1.ogg b/code/modules/synthesized_instruments/samples/obsolete/piano/Gn1.ogg index d2829a4c0b..eb2f9d395b 100644 Binary files a/code/modules/synthesized_instruments/samples/obsolete/piano/Gn1.ogg and b/code/modules/synthesized_instruments/samples/obsolete/piano/Gn1.ogg differ diff --git a/code/modules/synthesized_instruments/samples/obsolete/piano/Gn2.ogg b/code/modules/synthesized_instruments/samples/obsolete/piano/Gn2.ogg index e657124c71..ba2e99f25b 100644 Binary files a/code/modules/synthesized_instruments/samples/obsolete/piano/Gn2.ogg and b/code/modules/synthesized_instruments/samples/obsolete/piano/Gn2.ogg differ diff --git a/code/modules/synthesized_instruments/samples/obsolete/piano/Gn3.ogg b/code/modules/synthesized_instruments/samples/obsolete/piano/Gn3.ogg index c1e88555f1..3906be235a 100644 Binary files a/code/modules/synthesized_instruments/samples/obsolete/piano/Gn3.ogg and b/code/modules/synthesized_instruments/samples/obsolete/piano/Gn3.ogg differ diff --git a/code/modules/synthesized_instruments/samples/obsolete/piano/Gn4.ogg b/code/modules/synthesized_instruments/samples/obsolete/piano/Gn4.ogg index bbae7fa3e8..c6a190eacc 100644 Binary files a/code/modules/synthesized_instruments/samples/obsolete/piano/Gn4.ogg and b/code/modules/synthesized_instruments/samples/obsolete/piano/Gn4.ogg differ diff --git a/code/modules/synthesized_instruments/samples/obsolete/piano/Gn5.ogg b/code/modules/synthesized_instruments/samples/obsolete/piano/Gn5.ogg index 556cd6085a..3efed1c873 100644 Binary files a/code/modules/synthesized_instruments/samples/obsolete/piano/Gn5.ogg and b/code/modules/synthesized_instruments/samples/obsolete/piano/Gn5.ogg differ diff --git a/code/modules/synthesized_instruments/samples/obsolete/piano/Gn6.ogg b/code/modules/synthesized_instruments/samples/obsolete/piano/Gn6.ogg index 6bf8c36013..22483ce13e 100644 Binary files a/code/modules/synthesized_instruments/samples/obsolete/piano/Gn6.ogg and b/code/modules/synthesized_instruments/samples/obsolete/piano/Gn6.ogg differ diff --git a/code/modules/synthesized_instruments/samples/obsolete/piano/Gn7.ogg b/code/modules/synthesized_instruments/samples/obsolete/piano/Gn7.ogg index 0637492985..a2072e38b7 100644 Binary files a/code/modules/synthesized_instruments/samples/obsolete/piano/Gn7.ogg and b/code/modules/synthesized_instruments/samples/obsolete/piano/Gn7.ogg differ diff --git a/code/modules/synthesized_instruments/samples/obsolete/piano/Gn8.ogg b/code/modules/synthesized_instruments/samples/obsolete/piano/Gn8.ogg index 85f89a198e..5f2dab2c3d 100644 Binary files a/code/modules/synthesized_instruments/samples/obsolete/piano/Gn8.ogg and b/code/modules/synthesized_instruments/samples/obsolete/piano/Gn8.ogg differ diff --git a/code/modules/synthesized_instruments/samples/organ/crisis_accordian/c2.ogg b/code/modules/synthesized_instruments/samples/organ/crisis_accordian/c2.ogg index ba20e3f4b6..bdb67737d7 100644 Binary files a/code/modules/synthesized_instruments/samples/organ/crisis_accordian/c2.ogg and b/code/modules/synthesized_instruments/samples/organ/crisis_accordian/c2.ogg differ diff --git a/code/modules/synthesized_instruments/samples/organ/crisis_accordian/c3.ogg b/code/modules/synthesized_instruments/samples/organ/crisis_accordian/c3.ogg index fcc8715e04..a38a135088 100644 Binary files a/code/modules/synthesized_instruments/samples/organ/crisis_accordian/c3.ogg and b/code/modules/synthesized_instruments/samples/organ/crisis_accordian/c3.ogg differ diff --git a/code/modules/synthesized_instruments/samples/organ/crisis_accordian/c4.ogg b/code/modules/synthesized_instruments/samples/organ/crisis_accordian/c4.ogg index aa21d7e230..7a3b5c4303 100644 Binary files a/code/modules/synthesized_instruments/samples/organ/crisis_accordian/c4.ogg and b/code/modules/synthesized_instruments/samples/organ/crisis_accordian/c4.ogg differ diff --git a/code/modules/synthesized_instruments/samples/organ/crisis_accordian/c5.ogg b/code/modules/synthesized_instruments/samples/organ/crisis_accordian/c5.ogg index ac45bc6be4..ec2cf80420 100644 Binary files a/code/modules/synthesized_instruments/samples/organ/crisis_accordian/c5.ogg and b/code/modules/synthesized_instruments/samples/organ/crisis_accordian/c5.ogg differ diff --git a/code/modules/synthesized_instruments/samples/organ/crisis_church/c2.ogg b/code/modules/synthesized_instruments/samples/organ/crisis_church/c2.ogg index 71b9280e86..ec336214c8 100644 Binary files a/code/modules/synthesized_instruments/samples/organ/crisis_church/c2.ogg and b/code/modules/synthesized_instruments/samples/organ/crisis_church/c2.ogg differ diff --git a/code/modules/synthesized_instruments/samples/organ/crisis_church/c3.ogg b/code/modules/synthesized_instruments/samples/organ/crisis_church/c3.ogg index 676a24669f..12bba467ed 100644 Binary files a/code/modules/synthesized_instruments/samples/organ/crisis_church/c3.ogg and b/code/modules/synthesized_instruments/samples/organ/crisis_church/c3.ogg differ diff --git a/code/modules/synthesized_instruments/samples/organ/crisis_church/c4.ogg b/code/modules/synthesized_instruments/samples/organ/crisis_church/c4.ogg index 24e3732d7e..6c1b59f8f0 100644 Binary files a/code/modules/synthesized_instruments/samples/organ/crisis_church/c4.ogg and b/code/modules/synthesized_instruments/samples/organ/crisis_church/c4.ogg differ diff --git a/code/modules/synthesized_instruments/samples/organ/crisis_church/c5.ogg b/code/modules/synthesized_instruments/samples/organ/crisis_church/c5.ogg index 72dc2ce764..c17f630a1e 100644 Binary files a/code/modules/synthesized_instruments/samples/organ/crisis_church/c5.ogg and b/code/modules/synthesized_instruments/samples/organ/crisis_church/c5.ogg differ diff --git a/code/modules/synthesized_instruments/samples/organ/crisis_hammond/c2.ogg b/code/modules/synthesized_instruments/samples/organ/crisis_hammond/c2.ogg index 853b7591b4..adc4c4986a 100644 Binary files a/code/modules/synthesized_instruments/samples/organ/crisis_hammond/c2.ogg and b/code/modules/synthesized_instruments/samples/organ/crisis_hammond/c2.ogg differ diff --git a/code/modules/synthesized_instruments/samples/organ/crisis_hammond/c3.ogg b/code/modules/synthesized_instruments/samples/organ/crisis_hammond/c3.ogg index 205e190379..fd04b0386b 100644 Binary files a/code/modules/synthesized_instruments/samples/organ/crisis_hammond/c3.ogg and b/code/modules/synthesized_instruments/samples/organ/crisis_hammond/c3.ogg differ diff --git a/code/modules/synthesized_instruments/samples/organ/crisis_hammond/c4.ogg b/code/modules/synthesized_instruments/samples/organ/crisis_hammond/c4.ogg index e90c28f14c..9f0008de91 100644 Binary files a/code/modules/synthesized_instruments/samples/organ/crisis_hammond/c4.ogg and b/code/modules/synthesized_instruments/samples/organ/crisis_hammond/c4.ogg differ diff --git a/code/modules/synthesized_instruments/samples/organ/crisis_hammond/c5.ogg b/code/modules/synthesized_instruments/samples/organ/crisis_hammond/c5.ogg index a56d3cc3f6..0c3d8e8a6f 100644 Binary files a/code/modules/synthesized_instruments/samples/organ/crisis_hammond/c5.ogg and b/code/modules/synthesized_instruments/samples/organ/crisis_hammond/c5.ogg differ diff --git a/code/modules/synthesized_instruments/samples/organ/crisis_harmonica/c3.ogg b/code/modules/synthesized_instruments/samples/organ/crisis_harmonica/c3.ogg index 14c5f35eef..d2a3b6d5de 100644 Binary files a/code/modules/synthesized_instruments/samples/organ/crisis_harmonica/c3.ogg and b/code/modules/synthesized_instruments/samples/organ/crisis_harmonica/c3.ogg differ diff --git a/code/modules/synthesized_instruments/samples/organ/crisis_harmonica/c4.ogg b/code/modules/synthesized_instruments/samples/organ/crisis_harmonica/c4.ogg index e06e733eb2..8a21c41182 100644 Binary files a/code/modules/synthesized_instruments/samples/organ/crisis_harmonica/c4.ogg and b/code/modules/synthesized_instruments/samples/organ/crisis_harmonica/c4.ogg differ diff --git a/code/modules/synthesized_instruments/samples/organ/crisis_harmonica/c5.ogg b/code/modules/synthesized_instruments/samples/organ/crisis_harmonica/c5.ogg index 3d21e92d53..9cf89fbe42 100644 Binary files a/code/modules/synthesized_instruments/samples/organ/crisis_harmonica/c5.ogg and b/code/modules/synthesized_instruments/samples/organ/crisis_harmonica/c5.ogg differ diff --git a/code/modules/synthesized_instruments/samples/organ/crisis_tangaccordian/c2.ogg b/code/modules/synthesized_instruments/samples/organ/crisis_tangaccordian/c2.ogg index be51b6dcd4..cc45b07dfb 100644 Binary files a/code/modules/synthesized_instruments/samples/organ/crisis_tangaccordian/c2.ogg and b/code/modules/synthesized_instruments/samples/organ/crisis_tangaccordian/c2.ogg differ diff --git a/code/modules/synthesized_instruments/samples/organ/crisis_tangaccordian/c3.ogg b/code/modules/synthesized_instruments/samples/organ/crisis_tangaccordian/c3.ogg index 7426d246a0..d55f4bf862 100644 Binary files a/code/modules/synthesized_instruments/samples/organ/crisis_tangaccordian/c3.ogg and b/code/modules/synthesized_instruments/samples/organ/crisis_tangaccordian/c3.ogg differ diff --git a/code/modules/synthesized_instruments/samples/organ/crisis_tangaccordian/c4.ogg b/code/modules/synthesized_instruments/samples/organ/crisis_tangaccordian/c4.ogg index af7b66cf19..07fc7a5480 100644 Binary files a/code/modules/synthesized_instruments/samples/organ/crisis_tangaccordian/c4.ogg and b/code/modules/synthesized_instruments/samples/organ/crisis_tangaccordian/c4.ogg differ diff --git a/code/modules/synthesized_instruments/samples/organ/crisis_tangaccordian/c5.ogg b/code/modules/synthesized_instruments/samples/organ/crisis_tangaccordian/c5.ogg index 58ff4ff216..035b61867e 100644 Binary files a/code/modules/synthesized_instruments/samples/organ/crisis_tangaccordian/c5.ogg and b/code/modules/synthesized_instruments/samples/organ/crisis_tangaccordian/c5.ogg differ diff --git a/code/modules/synthesized_instruments/samples/piano/crisis_bright_piano/c2.ogg b/code/modules/synthesized_instruments/samples/piano/crisis_bright_piano/c2.ogg index 4b7feb77a4..dae44e1b05 100644 Binary files a/code/modules/synthesized_instruments/samples/piano/crisis_bright_piano/c2.ogg and b/code/modules/synthesized_instruments/samples/piano/crisis_bright_piano/c2.ogg differ diff --git a/code/modules/synthesized_instruments/samples/piano/crisis_bright_piano/c3.ogg b/code/modules/synthesized_instruments/samples/piano/crisis_bright_piano/c3.ogg index 5e7eefa79a..2b3a2f211d 100644 Binary files a/code/modules/synthesized_instruments/samples/piano/crisis_bright_piano/c3.ogg and b/code/modules/synthesized_instruments/samples/piano/crisis_bright_piano/c3.ogg differ diff --git a/code/modules/synthesized_instruments/samples/piano/crisis_bright_piano/c4.ogg b/code/modules/synthesized_instruments/samples/piano/crisis_bright_piano/c4.ogg index 13e49d4f3a..728658a5f9 100644 Binary files a/code/modules/synthesized_instruments/samples/piano/crisis_bright_piano/c4.ogg and b/code/modules/synthesized_instruments/samples/piano/crisis_bright_piano/c4.ogg differ diff --git a/code/modules/synthesized_instruments/samples/piano/crisis_bright_piano/c5.ogg b/code/modules/synthesized_instruments/samples/piano/crisis_bright_piano/c5.ogg index 6ef00f0700..d93fe6a6fa 100644 Binary files a/code/modules/synthesized_instruments/samples/piano/crisis_bright_piano/c5.ogg and b/code/modules/synthesized_instruments/samples/piano/crisis_bright_piano/c5.ogg differ diff --git a/code/modules/synthesized_instruments/samples/piano/crisis_bright_piano/c6.ogg b/code/modules/synthesized_instruments/samples/piano/crisis_bright_piano/c6.ogg index a868249ca8..c8517c5406 100644 Binary files a/code/modules/synthesized_instruments/samples/piano/crisis_bright_piano/c6.ogg and b/code/modules/synthesized_instruments/samples/piano/crisis_bright_piano/c6.ogg differ diff --git a/code/modules/synthesized_instruments/samples/piano/crisis_bright_piano/c7.ogg b/code/modules/synthesized_instruments/samples/piano/crisis_bright_piano/c7.ogg index 2d08d98dd9..b41f2801ec 100644 Binary files a/code/modules/synthesized_instruments/samples/piano/crisis_bright_piano/c7.ogg and b/code/modules/synthesized_instruments/samples/piano/crisis_bright_piano/c7.ogg differ diff --git a/code/modules/synthesized_instruments/samples/piano/crisis_bright_piano/c8.ogg b/code/modules/synthesized_instruments/samples/piano/crisis_bright_piano/c8.ogg index 50e3cb76a7..6921bce1cf 100644 Binary files a/code/modules/synthesized_instruments/samples/piano/crisis_bright_piano/c8.ogg and b/code/modules/synthesized_instruments/samples/piano/crisis_bright_piano/c8.ogg differ diff --git a/code/modules/synthesized_instruments/samples/piano/crisis_grand_piano/c2.ogg b/code/modules/synthesized_instruments/samples/piano/crisis_grand_piano/c2.ogg index 0b87714166..2e0d9de8cf 100644 Binary files a/code/modules/synthesized_instruments/samples/piano/crisis_grand_piano/c2.ogg and b/code/modules/synthesized_instruments/samples/piano/crisis_grand_piano/c2.ogg differ diff --git a/code/modules/synthesized_instruments/samples/piano/crisis_grand_piano/c3.ogg b/code/modules/synthesized_instruments/samples/piano/crisis_grand_piano/c3.ogg index 31fd625098..2c756b2409 100644 Binary files a/code/modules/synthesized_instruments/samples/piano/crisis_grand_piano/c3.ogg and b/code/modules/synthesized_instruments/samples/piano/crisis_grand_piano/c3.ogg differ diff --git a/code/modules/synthesized_instruments/samples/piano/crisis_grand_piano/c4.ogg b/code/modules/synthesized_instruments/samples/piano/crisis_grand_piano/c4.ogg index 0ed309dbb7..0a136a3c8b 100644 Binary files a/code/modules/synthesized_instruments/samples/piano/crisis_grand_piano/c4.ogg and b/code/modules/synthesized_instruments/samples/piano/crisis_grand_piano/c4.ogg differ diff --git a/code/modules/synthesized_instruments/samples/piano/crisis_grand_piano/c5.ogg b/code/modules/synthesized_instruments/samples/piano/crisis_grand_piano/c5.ogg index 7fd820d373..34851e36e5 100644 Binary files a/code/modules/synthesized_instruments/samples/piano/crisis_grand_piano/c5.ogg and b/code/modules/synthesized_instruments/samples/piano/crisis_grand_piano/c5.ogg differ diff --git a/code/modules/synthesized_instruments/samples/piano/crisis_grand_piano/c6.ogg b/code/modules/synthesized_instruments/samples/piano/crisis_grand_piano/c6.ogg index b4ed66e27c..b17dac4e2e 100644 Binary files a/code/modules/synthesized_instruments/samples/piano/crisis_grand_piano/c6.ogg and b/code/modules/synthesized_instruments/samples/piano/crisis_grand_piano/c6.ogg differ diff --git a/code/modules/synthesized_instruments/samples/piano/crisis_grand_piano/c7.ogg b/code/modules/synthesized_instruments/samples/piano/crisis_grand_piano/c7.ogg index 13a5f7d873..a92c908c83 100644 Binary files a/code/modules/synthesized_instruments/samples/piano/crisis_grand_piano/c7.ogg and b/code/modules/synthesized_instruments/samples/piano/crisis_grand_piano/c7.ogg differ diff --git a/code/modules/synthesized_instruments/samples/piano/crisis_grand_piano/c8.ogg b/code/modules/synthesized_instruments/samples/piano/crisis_grand_piano/c8.ogg index 0169d52c21..8bb4c93976 100644 Binary files a/code/modules/synthesized_instruments/samples/piano/crisis_grand_piano/c8.ogg and b/code/modules/synthesized_instruments/samples/piano/crisis_grand_piano/c8.ogg differ diff --git a/code/modules/synthesized_instruments/samples/piano/crisis_harpsichord/c2.ogg b/code/modules/synthesized_instruments/samples/piano/crisis_harpsichord/c2.ogg index 16d49cb15e..c9efb88497 100644 Binary files a/code/modules/synthesized_instruments/samples/piano/crisis_harpsichord/c2.ogg and b/code/modules/synthesized_instruments/samples/piano/crisis_harpsichord/c2.ogg differ diff --git a/code/modules/synthesized_instruments/samples/piano/crisis_harpsichord/c3.ogg b/code/modules/synthesized_instruments/samples/piano/crisis_harpsichord/c3.ogg index 83e906cd1a..7b11d9a7e8 100644 Binary files a/code/modules/synthesized_instruments/samples/piano/crisis_harpsichord/c3.ogg and b/code/modules/synthesized_instruments/samples/piano/crisis_harpsichord/c3.ogg differ diff --git a/code/modules/synthesized_instruments/samples/piano/crisis_harpsichord/c4.ogg b/code/modules/synthesized_instruments/samples/piano/crisis_harpsichord/c4.ogg index 33f766e4aa..176d9cb4e4 100644 Binary files a/code/modules/synthesized_instruments/samples/piano/crisis_harpsichord/c4.ogg and b/code/modules/synthesized_instruments/samples/piano/crisis_harpsichord/c4.ogg differ diff --git a/code/modules/synthesized_instruments/samples/piano/crisis_harpsichord/c5.ogg b/code/modules/synthesized_instruments/samples/piano/crisis_harpsichord/c5.ogg index 6ce06dda56..e18b287bef 100644 Binary files a/code/modules/synthesized_instruments/samples/piano/crisis_harpsichord/c5.ogg and b/code/modules/synthesized_instruments/samples/piano/crisis_harpsichord/c5.ogg differ diff --git a/code/modules/synthesized_instruments/samples/piano/fluid_harpsi/C2.ogg b/code/modules/synthesized_instruments/samples/piano/fluid_harpsi/C2.ogg index 3941e7af03..0698a2eb79 100644 Binary files a/code/modules/synthesized_instruments/samples/piano/fluid_harpsi/C2.ogg and b/code/modules/synthesized_instruments/samples/piano/fluid_harpsi/C2.ogg differ diff --git a/code/modules/synthesized_instruments/samples/piano/fluid_harpsi/C3.ogg b/code/modules/synthesized_instruments/samples/piano/fluid_harpsi/C3.ogg index 4f79ee9987..d0f0ccd0a8 100644 Binary files a/code/modules/synthesized_instruments/samples/piano/fluid_harpsi/C3.ogg and b/code/modules/synthesized_instruments/samples/piano/fluid_harpsi/C3.ogg differ diff --git a/code/modules/synthesized_instruments/samples/piano/fluid_harpsi/C4.ogg b/code/modules/synthesized_instruments/samples/piano/fluid_harpsi/C4.ogg index 1d773c62e7..6d780aeff2 100644 Binary files a/code/modules/synthesized_instruments/samples/piano/fluid_harpsi/C4.ogg and b/code/modules/synthesized_instruments/samples/piano/fluid_harpsi/C4.ogg differ diff --git a/code/modules/synthesized_instruments/samples/piano/fluid_harpsi/C5.ogg b/code/modules/synthesized_instruments/samples/piano/fluid_harpsi/C5.ogg index 938a557e04..42c8496779 100644 Binary files a/code/modules/synthesized_instruments/samples/piano/fluid_harpsi/C5.ogg and b/code/modules/synthesized_instruments/samples/piano/fluid_harpsi/C5.ogg differ diff --git a/code/modules/synthesized_instruments/samples/piano/fluid_harpsi/C6.ogg b/code/modules/synthesized_instruments/samples/piano/fluid_harpsi/C6.ogg index c65f06ce3e..45b9795851 100644 Binary files a/code/modules/synthesized_instruments/samples/piano/fluid_harpsi/C6.ogg and b/code/modules/synthesized_instruments/samples/piano/fluid_harpsi/C6.ogg differ diff --git a/code/modules/synthesized_instruments/samples/piano/fluid_harpsi/C7.ogg b/code/modules/synthesized_instruments/samples/piano/fluid_harpsi/C7.ogg index 87d4943509..29407acd86 100644 Binary files a/code/modules/synthesized_instruments/samples/piano/fluid_harpsi/C7.ogg and b/code/modules/synthesized_instruments/samples/piano/fluid_harpsi/C7.ogg differ diff --git a/code/modules/synthesized_instruments/samples/piano/fluid_harpsi/C8.ogg b/code/modules/synthesized_instruments/samples/piano/fluid_harpsi/C8.ogg index 5800b2d0ff..5a1275cfbe 100644 Binary files a/code/modules/synthesized_instruments/samples/piano/fluid_harpsi/C8.ogg and b/code/modules/synthesized_instruments/samples/piano/fluid_harpsi/C8.ogg differ diff --git a/code/modules/synthesized_instruments/samples/piano/fluid_piano/c2.ogg b/code/modules/synthesized_instruments/samples/piano/fluid_piano/c2.ogg index 9ce5eee76e..cc4aa2ec2d 100644 Binary files a/code/modules/synthesized_instruments/samples/piano/fluid_piano/c2.ogg and b/code/modules/synthesized_instruments/samples/piano/fluid_piano/c2.ogg differ diff --git a/code/modules/synthesized_instruments/samples/piano/fluid_piano/c3.ogg b/code/modules/synthesized_instruments/samples/piano/fluid_piano/c3.ogg index 4644327476..42acf12d89 100644 Binary files a/code/modules/synthesized_instruments/samples/piano/fluid_piano/c3.ogg and b/code/modules/synthesized_instruments/samples/piano/fluid_piano/c3.ogg differ diff --git a/code/modules/synthesized_instruments/samples/piano/fluid_piano/c4.ogg b/code/modules/synthesized_instruments/samples/piano/fluid_piano/c4.ogg index ab6d8a2a92..5135c71fec 100644 Binary files a/code/modules/synthesized_instruments/samples/piano/fluid_piano/c4.ogg and b/code/modules/synthesized_instruments/samples/piano/fluid_piano/c4.ogg differ diff --git a/code/modules/synthesized_instruments/samples/piano/fluid_piano/c5.ogg b/code/modules/synthesized_instruments/samples/piano/fluid_piano/c5.ogg index 0041ea2e13..b7b6211e86 100644 Binary files a/code/modules/synthesized_instruments/samples/piano/fluid_piano/c5.ogg and b/code/modules/synthesized_instruments/samples/piano/fluid_piano/c5.ogg differ diff --git a/code/modules/synthesized_instruments/samples/piano/fluid_piano/c6.ogg b/code/modules/synthesized_instruments/samples/piano/fluid_piano/c6.ogg index 5d836b9f7c..36c451a706 100644 Binary files a/code/modules/synthesized_instruments/samples/piano/fluid_piano/c6.ogg and b/code/modules/synthesized_instruments/samples/piano/fluid_piano/c6.ogg differ diff --git a/code/modules/synthesized_instruments/samples/piano/fluid_piano/c7.ogg b/code/modules/synthesized_instruments/samples/piano/fluid_piano/c7.ogg index 1981572cf2..74cf4bef5b 100644 Binary files a/code/modules/synthesized_instruments/samples/piano/fluid_piano/c7.ogg and b/code/modules/synthesized_instruments/samples/piano/fluid_piano/c7.ogg differ diff --git a/code/modules/synthesized_instruments/samples/piano/fluid_piano/c8.ogg b/code/modules/synthesized_instruments/samples/piano/fluid_piano/c8.ogg index 35e5b147bc..8a45354129 100644 Binary files a/code/modules/synthesized_instruments/samples/piano/fluid_piano/c8.ogg and b/code/modules/synthesized_instruments/samples/piano/fluid_piano/c8.ogg differ diff --git a/code/modules/synthesized_instruments/samples/tones/Sawtooth.ogg b/code/modules/synthesized_instruments/samples/tones/Sawtooth.ogg index e46f5eaced..9f36472629 100644 Binary files a/code/modules/synthesized_instruments/samples/tones/Sawtooth.ogg and b/code/modules/synthesized_instruments/samples/tones/Sawtooth.ogg differ diff --git a/code/modules/synthesized_instruments/samples/tones/Sine.ogg b/code/modules/synthesized_instruments/samples/tones/Sine.ogg index e0b14869e9..5b73743f63 100644 Binary files a/code/modules/synthesized_instruments/samples/tones/Sine.ogg and b/code/modules/synthesized_instruments/samples/tones/Sine.ogg differ diff --git a/code/modules/synthesized_instruments/samples/tones/Square.ogg b/code/modules/synthesized_instruments/samples/tones/Square.ogg index 817531bcca..20020ec964 100644 Binary files a/code/modules/synthesized_instruments/samples/tones/Square.ogg and b/code/modules/synthesized_instruments/samples/tones/Square.ogg differ diff --git a/code/modules/tables/update_triggers.dm b/code/modules/tables/update_triggers.dm index b4b1308524..592eaf60c4 100644 --- a/code/modules/tables/update_triggers.dm +++ b/code/modules/tables/update_triggers.dm @@ -1,9 +1,3 @@ -/obj/structure/window/New() - ..() - for(var/obj/structure/table/T in view(src, 1)) - T.update_connections() - T.update_icon() - /obj/structure/window/Destroy() var/oldloc = loc . = ..() @@ -17,4 +11,4 @@ if(loc != oldloc) for(var/obj/structure/table/T in view(oldloc, 1) | view(loc, 1)) T.update_connections() - T.update_icon() \ No newline at end of file + T.update_icon() diff --git a/code/modules/tgs/LICENSE b/code/modules/tgs/LICENSE index 2bedf9a63a..324c48e993 100644 --- a/code/modules/tgs/LICENSE +++ b/code/modules/tgs/LICENSE @@ -1,6 +1,6 @@ The MIT License -Copyright (c) 2017-2023 Jordan Brown +Copyright (c) 2017-2024 Jordan Brown Permission is hereby granted, free of charge, to any person obtaining a copy of this software and diff --git a/code/modules/tgs/core/core.dm b/code/modules/tgs/core/core.dm index 41a0473394..15622228e9 100644 --- a/code/modules/tgs/core/core.dm +++ b/code/modules/tgs/core/core.dm @@ -42,11 +42,11 @@ var/datum/tgs_version/max_api_version = TgsMaximumApiVersion(); if(version.suite != null && version.minor != null && version.patch != null && version.deprecated_patch != null && version.deprefixed_parameter > max_api_version.deprefixed_parameter) - TGS_ERROR_LOG("Detected unknown API version! Defaulting to latest. Update the DMAPI to fix this problem.") + TGS_ERROR_LOG("Detected unknown Interop API version! Defaulting to latest. Update the DMAPI to fix this problem.") api_datum = /datum/tgs_api/latest if(!api_datum) - TGS_ERROR_LOG("Found unsupported API version: [raw_parameter]. If this is a valid version please report this, backporting is done on demand.") + TGS_ERROR_LOG("Found unsupported Interop API version: [raw_parameter]. If this is a valid version please report this, backporting is done on demand.") return TGS_INFO_LOG("Activating API for version [version.deprefixed_parameter]") @@ -107,6 +107,13 @@ if(api) return api.ApiVersion() +/world/TgsEngine() +#ifdef OPENDREAM + return TGS_ENGINE_TYPE_OPENDREAM +#else + return TGS_ENGINE_TYPE_BYOND +#endif + /world/TgsInstanceName() var/datum/tgs_api/api = TGS_READ_GLOBAL(tgs) if(api) @@ -153,4 +160,17 @@ /world/TgsSecurityLevel() var/datum/tgs_api/api = TGS_READ_GLOBAL(tgs) if(api) - api.SecurityLevel() + return api.SecurityLevel() + +/world/TgsVisibility() + var/datum/tgs_api/api = TGS_READ_GLOBAL(tgs) + if(api) + return api.Visibility() + +/world/TgsTriggerEvent(event_name, list/parameters, wait_for_completion = FALSE) + var/datum/tgs_api/api = TGS_READ_GLOBAL(tgs) + if(api) + if(!istype(parameters, /list)) + parameters = list() + + return api.TriggerEvent(event_name, parameters, wait_for_completion) diff --git a/code/modules/tgs/core/datum.dm b/code/modules/tgs/core/datum.dm index 68b0330fe8..f734fd0527 100644 --- a/code/modules/tgs/core/datum.dm +++ b/code/modules/tgs/core/datum.dm @@ -7,10 +7,19 @@ TGS_DEFINE_AND_SET_GLOBAL(tgs, null) var/list/warned_deprecated_command_runs /datum/tgs_api/New(datum/tgs_event_handler/event_handler, datum/tgs_version/version) - . = ..() + ..() src.event_handler = event_handler src.version = version +/datum/tgs_api/proc/TerminateWorld() + while(TRUE) + TGS_DEBUG_LOG("About to terminate world. Tick: [world.time], sleep_offline: [world.sleep_offline]") + world.sleep_offline = FALSE // https://www.byond.com/forum/post/2894866 + del(world) + world.sleep_offline = FALSE // just in case, this is BYOND after all... + sleep(world.tick_lag) + TGS_DEBUG_LOG("BYOND DIDN'T TERMINATE THE WORLD!!! TICK IS: [world.time], sleep_offline: [world.sleep_offline]") + /datum/tgs_api/latest parent_type = /datum/tgs_api/v5 @@ -57,3 +66,9 @@ TGS_PROTECT_DATUM(/datum/tgs_api) /datum/tgs_api/proc/SecurityLevel() return TGS_UNIMPLEMENTED + +/datum/tgs_api/proc/Visibility() + return TGS_UNIMPLEMENTED + +/datum/tgs_api/proc/TriggerEvent(event_name, list/parameters, wait_for_completion) + return FALSE diff --git a/code/modules/tgs/core/tgs_version.dm b/code/modules/tgs/core/tgs_version.dm index a5dae1241a..bc561e6748 100644 --- a/code/modules/tgs/core/tgs_version.dm +++ b/code/modules/tgs/core/tgs_version.dm @@ -1,4 +1,5 @@ /datum/tgs_version/New(raw_parameter) + ..() src.raw_parameter = raw_parameter deprefixed_parameter = replacetext(raw_parameter, "/tg/station 13 Server v", "") var/list/version_bits = splittext(deprefixed_parameter, ".") diff --git a/code/modules/tgs/v4/api.dm b/code/modules/tgs/v4/api.dm index b9a75c4abb..7c87922750 100644 --- a/code/modules/tgs/v4/api.dm +++ b/code/modules/tgs/v4/api.dm @@ -73,7 +73,7 @@ if(cached_json["apiValidateOnly"]) TGS_INFO_LOG("Validating API and exiting...") Export(TGS4_COMM_VALIDATE, list(TGS4_PARAMETER_DATA = "[minimum_required_security_level]")) - del(world) + TerminateWorld() security_level = cached_json["securityLevel"] chat_channels_json_path = cached_json["chatChannelsJson"] @@ -181,14 +181,14 @@ var/json = json_encode(data) while(requesting_new_port && !override_requesting_new_port) - sleep(1) + sleep(world.tick_lag) //we need some port open at this point to facilitate return communication if(!world.port) requesting_new_port = TRUE if(!world.OpenPort(0)) //open any port TGS_ERROR_LOG("Unable to open random port to retrieve new port![TGS4_PORT_CRITFAIL_MESSAGE]") - del(world) + TerminateWorld() //request a new port export_lock = FALSE @@ -196,20 +196,20 @@ if(!new_port_json) TGS_ERROR_LOG("No new port response from server![TGS4_PORT_CRITFAIL_MESSAGE]") - del(world) + TerminateWorld() var/new_port = new_port_json[TGS4_PARAMETER_DATA] if(!isnum(new_port) || new_port <= 0) TGS_ERROR_LOG("Malformed new port json ([json_encode(new_port_json)])![TGS4_PORT_CRITFAIL_MESSAGE]") - del(world) + TerminateWorld() if(new_port != world.port && !world.OpenPort(new_port)) TGS_ERROR_LOG("Unable to open port [new_port]![TGS4_PORT_CRITFAIL_MESSAGE]") - del(world) + TerminateWorld() requesting_new_port = FALSE while(export_lock) - sleep(1) + sleep(world.tick_lag) export_lock = TRUE last_interop_response = null @@ -217,7 +217,7 @@ text2file(json, server_commands_json_path) for(var/I = 0; I < EXPORT_TIMEOUT_DS && !last_interop_response; ++I) - sleep(1) + sleep(world.tick_lag) if(!last_interop_response) TGS_ERROR_LOG("Failed to get export result for: [json]") diff --git a/code/modules/tgs/v5/__interop_version.dm b/code/modules/tgs/v5/__interop_version.dm index 5d3d491a73..f4806f7adb 100644 --- a/code/modules/tgs/v5/__interop_version.dm +++ b/code/modules/tgs/v5/__interop_version.dm @@ -1 +1 @@ -"5.6.1" +"5.9.0" diff --git a/code/modules/tgs/v5/_defines.dm b/code/modules/tgs/v5/_defines.dm index f973338daa..92c7a8388a 100644 --- a/code/modules/tgs/v5/_defines.dm +++ b/code/modules/tgs/v5/_defines.dm @@ -8,16 +8,17 @@ #define DMAPI5_TOPIC_REQUEST_LIMIT 65528 #define DMAPI5_TOPIC_RESPONSE_LIMIT 65529 -#define DMAPI5_BRIDGE_COMMAND_PORT_UPDATE 0 #define DMAPI5_BRIDGE_COMMAND_STARTUP 1 #define DMAPI5_BRIDGE_COMMAND_PRIME 2 #define DMAPI5_BRIDGE_COMMAND_REBOOT 3 #define DMAPI5_BRIDGE_COMMAND_KILL 4 #define DMAPI5_BRIDGE_COMMAND_CHAT_SEND 5 #define DMAPI5_BRIDGE_COMMAND_CHUNK 6 +#define DMAPI5_BRIDGE_COMMAND_EVENT 7 #define DMAPI5_PARAMETER_ACCESS_IDENTIFIER "accessIdentifier" #define DMAPI5_PARAMETER_CUSTOM_COMMANDS "customCommands" +#define DMAPI5_PARAMETER_TOPIC_PORT "topicPort" #define DMAPI5_CHUNK "chunk" #define DMAPI5_CHUNK_PAYLOAD "payload" @@ -34,6 +35,7 @@ #define DMAPI5_BRIDGE_PARAMETER_VERSION "version" #define DMAPI5_BRIDGE_PARAMETER_CHAT_MESSAGE "chatMessage" #define DMAPI5_BRIDGE_PARAMETER_MINIMUM_SECURITY_LEVEL "minimumSecurityLevel" +#define DMAPI5_BRIDGE_PARAMETER_EVENT_INVOCATION "eventInvocation" #define DMAPI5_BRIDGE_RESPONSE_NEW_PORT "newPort" #define DMAPI5_BRIDGE_RESPONSE_RUNTIME_INFORMATION "runtimeInformation" @@ -48,6 +50,7 @@ #define DMAPI5_RUNTIME_INFORMATION_REVISION "revision" #define DMAPI5_RUNTIME_INFORMATION_TEST_MERGES "testMerges" #define DMAPI5_RUNTIME_INFORMATION_SECURITY_LEVEL "securityLevel" +#define DMAPI5_RUNTIME_INFORMATION_VISIBILITY "visibility" #define DMAPI5_CHAT_UPDATE_CHANNELS "channels" @@ -79,6 +82,8 @@ #define DMAPI5_TOPIC_COMMAND_WATCHDOG_REATTACH 8 #define DMAPI5_TOPIC_COMMAND_SEND_CHUNK 9 #define DMAPI5_TOPIC_COMMAND_RECEIVE_CHUNK 10 +#define DMAPI5_TOPIC_COMMAND_RECEIVE_BROADCAST 11 +#define DMAPI5_TOPIC_COMMAND_COMPLETE_EVENT 12 #define DMAPI5_TOPIC_PARAMETER_COMMAND_TYPE "commandType" #define DMAPI5_TOPIC_PARAMETER_CHAT_COMMAND "chatCommand" @@ -88,6 +93,7 @@ #define DMAPI5_TOPIC_PARAMETER_NEW_INSTANCE_NAME "newInstanceName" #define DMAPI5_TOPIC_PARAMETER_CHAT_UPDATE "chatUpdate" #define DMAPI5_TOPIC_PARAMETER_NEW_SERVER_VERSION "newServerVersion" +#define DMAPI5_TOPIC_PARAMETER_BROADCAST_MESSAGE "broadcastMessage" #define DMAPI5_TOPIC_RESPONSE_COMMAND_RESPONSE "commandResponse" #define DMAPI5_TOPIC_RESPONSE_COMMAND_RESPONSE_MESSAGE "commandResponseMessage" @@ -113,3 +119,9 @@ #define DMAPI5_CUSTOM_CHAT_COMMAND_NAME "name" #define DMAPI5_CUSTOM_CHAT_COMMAND_HELP_TEXT "helpText" #define DMAPI5_CUSTOM_CHAT_COMMAND_ADMIN_ONLY "adminOnly" + +#define DMAPI5_EVENT_ID "eventId" + +#define DMAPI5_EVENT_INVOCATION_NAME "eventName" +#define DMAPI5_EVENT_INVOCATION_PARAMETERS "parameters" +#define DMAPI5_EVENT_INVOCATION_NOTIFY_COMPLETION "notifyCompletion" diff --git a/code/modules/tgs/v5/api.dm b/code/modules/tgs/v5/api.dm index 34cc43f876..95b8edd3ee 100644 --- a/code/modules/tgs/v5/api.dm +++ b/code/modules/tgs/v5/api.dm @@ -4,11 +4,16 @@ var/instance_name var/security_level + var/visibility var/reboot_mode = TGS_REBOOT_MODE_NORMAL + /// List of chat messages list()s that attempted to be sent during a topic call. To be bundled in the result of the call var/list/intercepted_message_queue + /// List of chat messages list()s that attempted to be sent during a topic call. To be bundled in the result of the call + var/list/offline_message_queue + var/list/custom_commands var/list/test_merges @@ -16,15 +21,20 @@ var/list/chat_channels var/initialized = FALSE + var/initial_bridge_request_received = FALSE + var/datum/tgs_version/interop_version var/chunked_requests = 0 var/list/chunked_topics = list() + var/list/pending_events = list() + var/detached = FALSE /datum/tgs_api/v5/New() . = ..() - TGS_DEBUG_LOG("V5 API created") + interop_version = version + TGS_DEBUG_LOG("V5 API created: [json_encode(args)]") /datum/tgs_api/v5/ApiVersion() return new /datum/tgs_version( @@ -37,8 +47,12 @@ access_identifier = world.params[DMAPI5_PARAM_ACCESS_IDENTIFIER] var/datum/tgs_version/api_version = ApiVersion() - version = null - var/list/bridge_response = Bridge(DMAPI5_BRIDGE_COMMAND_STARTUP, list(DMAPI5_BRIDGE_PARAMETER_MINIMUM_SECURITY_LEVEL = minimum_required_security_level, DMAPI5_BRIDGE_PARAMETER_VERSION = api_version.raw_parameter, DMAPI5_PARAMETER_CUSTOM_COMMANDS = ListCustomCommands())) + version = null // we want this to be the TGS version, not the interop version + + // sleep once to prevent an issue where world.Export on the first tick can hang indefinitely + sleep(world.tick_lag) + + var/list/bridge_response = Bridge(DMAPI5_BRIDGE_COMMAND_STARTUP, list(DMAPI5_BRIDGE_PARAMETER_MINIMUM_SECURITY_LEVEL = minimum_required_security_level, DMAPI5_BRIDGE_PARAMETER_VERSION = api_version.raw_parameter, DMAPI5_PARAMETER_CUSTOM_COMMANDS = ListCustomCommands(), DMAPI5_PARAMETER_TOPIC_PORT = GetTopicPort())) if(!istype(bridge_response)) TGS_ERROR_LOG("Failed initial bridge request!") return FALSE @@ -50,10 +64,12 @@ if(runtime_information[DMAPI5_RUNTIME_INFORMATION_API_VALIDATE_ONLY]) TGS_INFO_LOG("DMAPI validation, exiting...") - del(world) + TerminateWorld() - version = new /datum/tgs_version(runtime_information[DMAPI5_RUNTIME_INFORMATION_SERVER_VERSION]) + initial_bridge_request_received = TRUE + version = new /datum/tgs_version(runtime_information[DMAPI5_RUNTIME_INFORMATION_SERVER_VERSION]) // reassigning this because it can change if TGS updates security_level = runtime_information[DMAPI5_RUNTIME_INFORMATION_SECURITY_LEVEL] + visibility = runtime_information[DMAPI5_RUNTIME_INFORMATION_VISIBILITY] instance_name = runtime_information[DMAPI5_RUNTIME_INFORMATION_INSTANCE_NAME] var/list/revisionData = runtime_information[DMAPI5_RUNTIME_INFORMATION_REVISION] @@ -100,15 +116,22 @@ initialized = TRUE return TRUE +/datum/tgs_api/v5/proc/GetTopicPort() +#if defined(OPENDREAM) && defined(OPENDREAM_TOPIC_PORT_EXISTS) + return "[world.opendream_topic_port]" +#else + return null +#endif + /datum/tgs_api/v5/proc/RequireInitialBridgeResponse() TGS_DEBUG_LOG("RequireInitialBridgeResponse()") var/logged = FALSE - while(!version) + while(!initial_bridge_request_received) if(!logged) TGS_DEBUG_LOG("RequireInitialBridgeResponse: Starting sleep") logged = TRUE - sleep(1) + sleep(world.tick_lag) TGS_DEBUG_LOG("RequireInitialBridgeResponse: Passed") @@ -181,17 +204,7 @@ var/datum/tgs_chat_channel/channel = I ids += channel.id - message2 = UpgradeDeprecatedChatMessage(message2) - - if (!length(channels)) - return - - var/list/data = message2._interop_serialize() - data[DMAPI5_CHAT_MESSAGE_CHANNEL_IDS] = ids - if(intercepted_message_queue) - intercepted_message_queue += list(data) - else - Bridge(DMAPI5_BRIDGE_COMMAND_CHAT_SEND, list(DMAPI5_BRIDGE_PARAMETER_CHAT_MESSAGE = data)) + SendChatMessageRaw(message2, ids) /datum/tgs_api/v5/ChatTargetedBroadcast(datum/tgs_message_content/message2, admin_only) var/list/channels = list() @@ -200,32 +213,82 @@ if (!channel.is_private_channel && ((channel.is_admin_channel && admin_only) || (!channel.is_admin_channel && !admin_only))) channels += channel.id + SendChatMessageRaw(message2, channels) + +/datum/tgs_api/v5/ChatPrivateMessage(datum/tgs_message_content/message2, datum/tgs_chat_user/user) + SendChatMessageRaw(message2, list(user.channel.id)) + +/datum/tgs_api/v5/proc/SendChatMessageRaw(datum/tgs_message_content/message2, list/channel_ids) message2 = UpgradeDeprecatedChatMessage(message2) - if (!length(channels)) + if (!length(channel_ids)) return var/list/data = message2._interop_serialize() - data[DMAPI5_CHAT_MESSAGE_CHANNEL_IDS] = channels + data[DMAPI5_CHAT_MESSAGE_CHANNEL_IDS] = channel_ids if(intercepted_message_queue) intercepted_message_queue += list(data) - else - Bridge(DMAPI5_BRIDGE_COMMAND_CHAT_SEND, list(DMAPI5_BRIDGE_PARAMETER_CHAT_MESSAGE = data)) + return -/datum/tgs_api/v5/ChatPrivateMessage(datum/tgs_message_content/message2, datum/tgs_chat_user/user) - message2 = UpgradeDeprecatedChatMessage(message2) - var/list/data = message2._interop_serialize() - data[DMAPI5_CHAT_MESSAGE_CHANNEL_IDS] = list(user.channel.id) - if(intercepted_message_queue) - intercepted_message_queue += list(data) + if(offline_message_queue) + offline_message_queue += list(data) + return + + if(detached) + offline_message_queue = list(data) + + WaitForReattach(FALSE) + + data = offline_message_queue + offline_message_queue = null + + for(var/queued_message in data) + SendChatDataRaw(queued_message) else - Bridge(DMAPI5_BRIDGE_COMMAND_CHAT_SEND, list(DMAPI5_BRIDGE_PARAMETER_CHAT_MESSAGE = data)) + SendChatDataRaw(data) + +/datum/tgs_api/v5/proc/SendChatDataRaw(list/data) + Bridge(DMAPI5_BRIDGE_COMMAND_CHAT_SEND, list(DMAPI5_BRIDGE_PARAMETER_CHAT_MESSAGE = data)) /datum/tgs_api/v5/ChatChannelInfo() RequireInitialBridgeResponse() WaitForReattach(TRUE) return chat_channels.Copy() +/datum/tgs_api/v5/TriggerEvent(event_name, list/parameters, wait_for_completion) + RequireInitialBridgeResponse() + WaitForReattach(TRUE) + + if(interop_version.minor < 9) + TGS_WARNING_LOG("Interop version too low for custom events!") + return FALSE + + var/str_parameters = list() + for(var/i in parameters) + str_parameters += "[i]" + + var/list/response = Bridge(DMAPI5_BRIDGE_COMMAND_EVENT, list(DMAPI5_BRIDGE_PARAMETER_EVENT_INVOCATION = list(DMAPI5_EVENT_INVOCATION_NAME = event_name, DMAPI5_EVENT_INVOCATION_PARAMETERS = str_parameters, DMAPI5_EVENT_INVOCATION_NOTIFY_COMPLETION = wait_for_completion))) + if(!response) + return FALSE + + var/event_id = response[DMAPI5_EVENT_ID] + if(!event_id) + return FALSE + + TGS_DEBUG_LOG("Created event ID: [event_id]") + if(!wait_for_completion) + return TRUE + + TGS_DEBUG_LOG("Waiting for completion of event ID: [event_id]") + + while(!pending_events[event_id]) + sleep(world.tick_lag) + + TGS_DEBUG_LOG("Completed wait on event ID: [event_id]") + pending_events -= event_id + + return TRUE + /datum/tgs_api/v5/proc/DecodeChannels(chat_update_json) TGS_DEBUG_LOG("DecodeChannels()") var/list/chat_channels_json = chat_update_json[DMAPI5_CHAT_UPDATE_CHANNELS] @@ -252,3 +315,7 @@ /datum/tgs_api/v5/SecurityLevel() RequireInitialBridgeResponse() return security_level + +/datum/tgs_api/v5/Visibility() + RequireInitialBridgeResponse() + return visibility diff --git a/code/modules/tgs/v5/bridge.dm b/code/modules/tgs/v5/bridge.dm index 37f58bcdf6..0c5e701a32 100644 --- a/code/modules/tgs/v5/bridge.dm +++ b/code/modules/tgs/v5/bridge.dm @@ -48,7 +48,9 @@ var/json = CreateBridgeData(command, data, TRUE) var/encoded_json = url_encode(json) - var/url = "http://127.0.0.1:[server_port]/Bridge?[DMAPI5_BRIDGE_DATA]=[encoded_json]" + var/api_prefix = interop_version.minor >= 8 ? "api/" : "" + + var/url = "http://127.0.0.1:[server_port]/[api_prefix]Bridge?[DMAPI5_BRIDGE_DATA]=[encoded_json]" return url /datum/tgs_api/v5/proc/CreateBridgeData(command, list/data, needs_auth) @@ -63,7 +65,7 @@ if(detached) // Wait up to one minute for(var/i in 1 to 600) - sleep(1) + sleep(world.tick_lag) if(!detached && (!require_channels || length(chat_channels))) break @@ -75,17 +77,25 @@ /datum/tgs_api/v5/proc/PerformBridgeRequest(bridge_request) WaitForReattach(FALSE) + TGS_DEBUG_LOG("Bridge request start") // This is an infinite sleep until we get a response var/export_response = world.Export(bridge_request) + TGS_DEBUG_LOG("Bridge request complete") + if(!export_response) TGS_ERROR_LOG("Failed bridge request: [bridge_request]") return - var/response_json = file2text(export_response["CONTENT"]) - if(!response_json) + var/content = export_response["CONTENT"] + if(!content) TGS_ERROR_LOG("Failed bridge request, missing content!") return + var/response_json = TGS_FILE2TEXT_NATIVE(content) + if(!response_json) + TGS_ERROR_LOG("Failed bridge request, failed to load content!") + return + var/list/bridge_response = json_decode(response_json) if(!bridge_response) TGS_ERROR_LOG("Failed bridge request, bad json: [response_json]") diff --git a/code/modules/tgs/v5/topic.dm b/code/modules/tgs/v5/topic.dm index d7d4712138..e1f2cb6385 100644 --- a/code/modules/tgs/v5/topic.dm +++ b/code/modules/tgs/v5/topic.dm @@ -94,7 +94,7 @@ if(DMAPI5_TOPIC_COMMAND_CHANGE_PORT) var/new_port = topic_parameters[DMAPI5_TOPIC_PARAMETER_NEW_PORT] if (!isnum(new_port) || !(new_port > 0)) - return TopicResponse("Invalid or missing [DMAPI5_TOPIC_PARAMETER_NEW_PORT]]") + return TopicResponse("Invalid or missing [DMAPI5_TOPIC_PARAMETER_NEW_PORT]") if(event_handler != null) event_handler.HandleEvent(TGS_EVENT_PORT_SWAP, new_port) @@ -141,7 +141,7 @@ if(DMAPI5_TOPIC_COMMAND_SERVER_PORT_UPDATE) var/new_port = topic_parameters[DMAPI5_TOPIC_PARAMETER_NEW_PORT] if (!isnum(new_port) || !(new_port > 0)) - return TopicResponse("Invalid or missing [DMAPI5_TOPIC_PARAMETER_NEW_PORT]]") + return TopicResponse("Invalid or missing [DMAPI5_TOPIC_PARAMETER_NEW_PORT]") server_port = new_port return TopicResponse() @@ -157,7 +157,7 @@ var/error_message = null if (new_port != null) if (!isnum(new_port) || !(new_port > 0)) - error_message = "Invalid [DMAPI5_TOPIC_PARAMETER_NEW_PORT]]" + error_message = "Invalid [DMAPI5_TOPIC_PARAMETER_NEW_PORT]" else server_port = new_port @@ -165,7 +165,7 @@ if (!istext(new_version_string)) if(error_message != null) error_message += ", " - error_message += "Invalid or missing [DMAPI5_TOPIC_PARAMETER_NEW_SERVER_VERSION]]" + error_message += "Invalid or missing [DMAPI5_TOPIC_PARAMETER_NEW_SERVER_VERSION]" else var/datum/tgs_version/new_version = new(new_version_string) if (event_handler) @@ -175,6 +175,11 @@ var/list/reattach_response = TopicResponse(error_message) reattach_response[DMAPI5_PARAMETER_CUSTOM_COMMANDS] = ListCustomCommands() + reattach_response[DMAPI5_PARAMETER_TOPIC_PORT] = GetTopicPort() + + for(var/eventId in pending_events) + pending_events[eventId] = TRUE + return reattach_response if(DMAPI5_TOPIC_COMMAND_SEND_CHUNK) @@ -267,4 +272,25 @@ return chunk_to_send + if(DMAPI5_TOPIC_COMMAND_RECEIVE_BROADCAST) + var/message = topic_parameters[DMAPI5_TOPIC_PARAMETER_BROADCAST_MESSAGE] + if (!istext(message)) + return TopicResponse("Invalid or missing [DMAPI5_TOPIC_PARAMETER_BROADCAST_MESSAGE]") + + TGS_WORLD_ANNOUNCE(message) + return TopicResponse() + + if(DMAPI5_TOPIC_COMMAND_COMPLETE_EVENT) + var/event_id = topic_parameters[DMAPI5_EVENT_ID] + if (!istext(event_id)) + return TopicResponse("Invalid or missing [DMAPI5_EVENT_ID]") + + TGS_DEBUG_LOG("Completing event ID [event_id]...") + pending_events[event_id] = TRUE + return TopicResponse() + return TopicResponse("Unknown command: [command]") + +/datum/tgs_api/v5/proc/WorldBroadcast(message) + set waitfor = FALSE + TGS_WORLD_ANNOUNCE(message) diff --git a/code/modules/tgs/v5/undefs.dm b/code/modules/tgs/v5/undefs.dm index c679737dfc..237207fdfd 100644 --- a/code/modules/tgs/v5/undefs.dm +++ b/code/modules/tgs/v5/undefs.dm @@ -8,16 +8,17 @@ #undef DMAPI5_TOPIC_REQUEST_LIMIT #undef DMAPI5_TOPIC_RESPONSE_LIMIT -#undef DMAPI5_BRIDGE_COMMAND_PORT_UPDATE #undef DMAPI5_BRIDGE_COMMAND_STARTUP #undef DMAPI5_BRIDGE_COMMAND_PRIME #undef DMAPI5_BRIDGE_COMMAND_REBOOT #undef DMAPI5_BRIDGE_COMMAND_KILL #undef DMAPI5_BRIDGE_COMMAND_CHAT_SEND #undef DMAPI5_BRIDGE_COMMAND_CHUNK +#undef DMAPI5_BRIDGE_COMMAND_EVENT #undef DMAPI5_PARAMETER_ACCESS_IDENTIFIER #undef DMAPI5_PARAMETER_CUSTOM_COMMANDS +#undef DMAPI5_PARAMETER_TOPIC_PORT #undef DMAPI5_CHUNK #undef DMAPI5_CHUNK_PAYLOAD @@ -34,6 +35,7 @@ #undef DMAPI5_BRIDGE_PARAMETER_VERSION #undef DMAPI5_BRIDGE_PARAMETER_CHAT_MESSAGE #undef DMAPI5_BRIDGE_PARAMETER_MINIMUM_SECURITY_LEVEL +#undef DMAPI5_BRIDGE_PARAMETER_EVENT_INVOCATION #undef DMAPI5_BRIDGE_RESPONSE_NEW_PORT #undef DMAPI5_BRIDGE_RESPONSE_RUNTIME_INFORMATION @@ -48,6 +50,7 @@ #undef DMAPI5_RUNTIME_INFORMATION_REVISION #undef DMAPI5_RUNTIME_INFORMATION_TEST_MERGES #undef DMAPI5_RUNTIME_INFORMATION_SECURITY_LEVEL +#undef DMAPI5_RUNTIME_INFORMATION_VISIBILITY #undef DMAPI5_CHAT_UPDATE_CHANNELS @@ -77,6 +80,10 @@ #undef DMAPI5_TOPIC_COMMAND_SERVER_PORT_UPDATE #undef DMAPI5_TOPIC_COMMAND_HEALTHCHECK #undef DMAPI5_TOPIC_COMMAND_WATCHDOG_REATTACH +#undef DMAPI5_TOPIC_COMMAND_SEND_CHUNK +#undef DMAPI5_TOPIC_COMMAND_RECEIVE_CHUNK +#undef DMAPI5_TOPIC_COMMAND_RECEIVE_BROADCAST +#undef DMAPI5_TOPIC_COMMAND_COMPLETE_EVENT #undef DMAPI5_TOPIC_PARAMETER_COMMAND_TYPE #undef DMAPI5_TOPIC_PARAMETER_CHAT_COMMAND @@ -86,6 +93,7 @@ #undef DMAPI5_TOPIC_PARAMETER_NEW_INSTANCE_NAME #undef DMAPI5_TOPIC_PARAMETER_CHAT_UPDATE #undef DMAPI5_TOPIC_PARAMETER_NEW_SERVER_VERSION +#undef DMAPI5_TOPIC_PARAMETER_BROADCAST_MESSAGE #undef DMAPI5_TOPIC_RESPONSE_COMMAND_RESPONSE #undef DMAPI5_TOPIC_RESPONSE_COMMAND_RESPONSE_MESSAGE @@ -111,3 +119,9 @@ #undef DMAPI5_CUSTOM_CHAT_COMMAND_NAME #undef DMAPI5_CUSTOM_CHAT_COMMAND_HELP_TEXT #undef DMAPI5_CUSTOM_CHAT_COMMAND_ADMIN_ONLY + +#undef DMAPI5_EVENT_ID + +#undef DMAPI5_EVENT_INVOCATION_NAME +#undef DMAPI5_EVENT_INVOCATION_PARAMETERS +#undef DMAPI5_EVENT_INVOCATION_NOTIFY_COMPLETION diff --git a/code/modules/tgui/states/default.dm b/code/modules/tgui/states/default.dm index 1baa635a3d..7eaf4ba4cd 100644 --- a/code/modules/tgui/states/default.dm +++ b/code/modules/tgui/states/default.dm @@ -32,7 +32,7 @@ GLOBAL_DATUM_INIT(default_tgui_state, /datum/tgui_state/default, new) // Robots can interact with anything they can see. var/list/clientviewlist = getviewsize(client.view) - if(get_dist(src, src_object) <= min(clientviewlist[1],clientviewlist[2])) + if(get_dist(src, src_object) <= max(clientviewlist[1], clientviewlist[2])) return UI_INTERACTIVE return UI_DISABLED // Otherwise they can keep the UI open. diff --git a/code/modules/tgui/status_composers.dm b/code/modules/tgui/status_composers.dm index 495c61fbef..949d67d120 100644 --- a/code/modules/tgui/status_composers.dm +++ b/code/modules/tgui/status_composers.dm @@ -68,7 +68,7 @@ /mob/living/silicon/robot/get_ui_access(atom/source) // Robots can interact with anything they can see. var/list/clientviewlist = getviewsize(client.view) - if(get_dist(src, source) <= min(clientviewlist[1],clientviewlist[2])) + if(get_dist(src, source) <= max(clientviewlist[1], clientviewlist[2])) return UI_INTERACTIVE return UI_DISABLED // Otherwise they can keep the UI open. diff --git a/code/modules/turbolift/turbolift_turfs.dm b/code/modules/turbolift/turbolift_turfs.dm index 631a5b313b..d6dc80eacd 100644 --- a/code/modules/turbolift/turbolift_turfs.dm +++ b/code/modules/turbolift/turbolift_turfs.dm @@ -1,2 +1,2 @@ -/turf/simulated/wall/elevator/New(newloc) - ..(newloc,MATERIAL_ELEVATORIUM) +/turf/simulated/wall/elevator/Initialize(mapload) + . = ..(mapload, MATERIAL_ELEVATORIUM) diff --git a/code/modules/webhooks/_webhook.dm b/code/modules/webhooks/_webhook.dm index 509b4e898d..c81c5e1192 100644 --- a/code/modules/webhooks/_webhook.dm +++ b/code/modules/webhooks/_webhook.dm @@ -10,7 +10,7 @@ if (!target_url) return -1 - var/result = LIBCALL(HTTP_POST_DLL_LOCATION, "send_post_request")(target_url, payload, json_encode(list("Content-Type" = "application/json"))) + var/result = call_ext(HTTP_POST_DLL_LOCATION, "send_post_request")(target_url, payload, json_encode(list("Content-Type" = "application/json"))) result = json_decode(result) if (result["error_code"]) diff --git a/code/procs/dbcore.dm b/code/procs/dbcore.dm deleted file mode 100644 index e9af779122..0000000000 --- a/code/procs/dbcore.dm +++ /dev/null @@ -1,208 +0,0 @@ -//cursors -#define Default_Cursor 0 -#define Client_Cursor 1 -#define Server_Cursor 2 -//conversions -#define TEXT_CONV 1 -#define RSC_FILE_CONV 2 -#define NUMBER_CONV 3 -//column flag values: -#define IS_NUMERIC (1<<0) -#define IS_BINARY (1<<1) -#define IS_NOT_NULL (1<<2) -#define IS_PRIMARY_KEY (1<<3) -#define IS_UNSIGNED (1<<4) -//types -#define TINYINT 1 -#define SMALLINT 2 -#define MEDIUMINT 3 -#define INTEGER 4 -#define BIGINT 5 -#define DECIMAL 6 -#define FLOAT 7 -#define DOUBLE 8 -#define DATE 9 -#define DATETIME 10 -#define TIMESTAMP 11 -#define TIME 12 -#define STRING 13 -#define BLOB 14 -// TODO: Investigate more recent type additions and see if I can handle them. - Nadrew - - -// Deprecated! See global.dm for new configuration vars -/* -var/DB_SERVER = "" // This is the location of your MySQL server (localhost is USUALLY fine) -var/DB_PORT = 3306 // This is the port your MySQL server is running on (3306 is the default) -*/ - -/DBConnection - var/_db_con // This variable contains a reference to the actual database connection. - var/dbi // This variable is a string containing the DBI MySQL requires. - var/user // This variable contains the username data. - var/password // This variable contains the password data. - var/default_cursor // This contains the default database cursor data. - // - var/server = "" - var/port = 3306 - -/DBConnection/New(dbi_handler,username,password_handler,cursor_handler) - src.dbi = dbi_handler - src.user = username - src.password = password_handler - src.default_cursor = cursor_handler - _db_con = _dm_db_new_con() - -/DBConnection/proc/Connect(dbi_handler=src.dbi,user_handler=src.user,password_handler=src.password,cursor_handler) - if(!sqlenabled) - return FALSE - if(!src) - return FALSE - cursor_handler = src.default_cursor - if(!cursor_handler) cursor_handler = Default_Cursor - return _dm_db_connect(_db_con,dbi_handler,user_handler,password_handler,cursor_handler,null) - -/DBConnection/proc/Disconnect() return _dm_db_close(_db_con) - -/DBConnection/proc/IsConnected() - if(!sqlenabled) - return FALSE - var/success = _dm_db_is_connected(_db_con) - return success - -/DBConnection/proc/Quote(str) return _dm_db_quote(_db_con,str) - -/DBConnection/proc/ErrorMsg() return _dm_db_error_msg(_db_con) -/DBConnection/proc/SelectDB(database_name,dbi) - if(IsConnected()) Disconnect() - //return Connect("[dbi?"[dbi]":"dbi:mysql:[database_name]:[DB_SERVER]:[DB_PORT]"]",user,password) - return Connect("[dbi?"[dbi]":"dbi:mysql:[database_name]:[sqladdress]:[sqlport]"]",user,password) -/DBConnection/proc/NewQuery(sql_query,cursor_handler=src.default_cursor) return new/DBQuery(sql_query,src,cursor_handler) - - -/DBQuery/New(sql_query,DBConnection/connection_handler,cursor_handler) - if(sql_query) src.sql = sql_query - if(connection_handler) src.db_connection = connection_handler - if(cursor_handler) src.default_cursor = cursor_handler - _db_query = _dm_db_new_query() - return ..() - - -/DBQuery - var/sql // The sql query being executed. - var/default_cursor - var/list/columns //list of DB Columns populated by Columns() - var/list/conversions - var/list/item[0] //list of data values populated by NextRow() - - var/DBConnection/db_connection - var/_db_query - -/DBQuery/proc/Connect(DBConnection/connection_handler) src.db_connection = connection_handler - -/DBQuery/proc/Execute(sql_query=src.sql,cursor_handler=default_cursor) - Close() - return _dm_db_execute(_db_query,sql_query,db_connection._db_con,cursor_handler,null) - -/DBQuery/proc/NextRow() return _dm_db_next_row(_db_query,item,conversions) - -/DBQuery/proc/RowsAffected() return _dm_db_rows_affected(_db_query) - -/DBQuery/proc/RowCount() return _dm_db_row_count(_db_query) - -/DBQuery/proc/ErrorMsg() return _dm_db_error_msg(_db_query) - -/DBQuery/proc/Columns() - if(!columns) - columns = _dm_db_columns(_db_query,/DBColumn) - return columns - -/DBQuery/proc/GetRowData() - var/list/columns = Columns() - var/list/results - if(columns.len) - results = list() - for(var/C in columns) - results+=C - var/DBColumn/cur_col = columns[C] - results[C] = src.item[(cur_col.position+1)] - return results - -/DBQuery/proc/Close() - item.len = 0 - columns = null - conversions = null - return _dm_db_close(_db_query) - -/DBQuery/proc/Quote(str) - return db_connection.Quote(str) - -/DBQuery/proc/SetConversion(column,conversion) - if(istext(column)) column = list_find(columns, column) - if(!conversions) conversions = new/list(column) - else if(conversions.len < column) conversions.len = column - conversions[column] = conversion - - -/DBColumn - var/name - var/table - var/position //1-based index into item data - var/sql_type - var/flags - var/length - var/max_length - -/DBColumn/New(name_handler,table_handler,position_handler,type_handler,flag_handler,length_handler,max_length_handler) - src.name = name_handler - src.table = table_handler - src.position = position_handler - src.sql_type = type_handler - src.flags = flag_handler - src.length = length_handler - src.max_length = max_length_handler - return ..() - - -/DBColumn/proc/SqlTypeName(type_handler=src.sql_type) - switch(type_handler) - if(TINYINT) return "TINYINT" - if(SMALLINT) return "SMALLINT" - if(MEDIUMINT) return "MEDIUMINT" - if(INTEGER) return "INTEGER" - if(BIGINT) return "BIGINT" - if(FLOAT) return "FLOAT" - if(DOUBLE) return "DOUBLE" - if(DATE) return "DATE" - if(DATETIME) return "DATETIME" - if(TIMESTAMP) return "TIMESTAMP" - if(TIME) return "TIME" - if(STRING) return "STRING" - if(BLOB) return "BLOB" - - -#undef Default_Cursor -#undef Client_Cursor -#undef Server_Cursor -#undef TEXT_CONV -#undef RSC_FILE_CONV -#undef NUMBER_CONV -#undef IS_NUMERIC -#undef IS_BINARY -#undef IS_NOT_NULL -#undef IS_PRIMARY_KEY -#undef IS_UNSIGNED -#undef TINYINT -#undef SMALLINT -#undef MEDIUMINT -#undef INTEGER -#undef BIGINT -#undef DECIMAL -#undef FLOAT -#undef DOUBLE -#undef DATE -#undef DATETIME -#undef TIMESTAMP -#undef TIME -#undef STRING -#undef BLOB diff --git a/code/unit_tests/job_tests.dm b/code/unit_tests/job_tests.dm index bd575df09a..e5906e18d1 100644 --- a/code/unit_tests/job_tests.dm +++ b/code/unit_tests/job_tests.dm @@ -72,4 +72,21 @@ fail("Some jobs share a title:\n[jointext(non_unique_titles, "\n")]") else pass("All jobs have a unique title.") - return 1 \ No newline at end of file + return 1 + + +/datum/unit_test/jobs_shall_have_short_title + name = "JOBS: All Job Datums Shall Have A Title Under 48 Characters" + +/datum/unit_test/jobs_shall_have_short_title/start_test() + var/list/too_long_titles = list() + for(var/job_type in SSjobs.types_to_datums) + var/datum/job/job = SSjobs.types_to_datums[job_type] + if(length(job.title) > 48) + too_long_titles += job.title + + if(LAZYLEN(too_long_titles)) + fail("Some jobs have a title above 48 characters:\n[jointext(too_long_titles, "\n")]") + else + pass("All jobs have a valid title.") + return 1 diff --git a/code/world.dm b/code/world.dm index d349962d81..069263df19 100644 --- a/code/world.dm +++ b/code/world.dm @@ -12,6 +12,6 @@ hub = "Exadv1.spacestation13" icon_size = WORLD_ICON_SIZE fps = 20 -#ifdef GC_FAILURE_HARD_LOOKUP +#ifdef FIND_REF_NO_CHECK_TICK loop_checks = FALSE #endif diff --git a/config/custom_items/README.md b/config/custom_items/README.md deleted file mode 100644 index 0dc9ed9e07..0000000000 --- a/config/custom_items/README.md +++ /dev/null @@ -1 +0,0 @@ -For details on how to use the custom item system, please refer to [the custom item repository](https://github.com/Baystation12/custom-items). \ No newline at end of file diff --git a/config/example/custom_sprites.txt b/config/example/custom_sprites.txt deleted file mode 100644 index db3930a4ae..0000000000 --- a/config/example/custom_sprites.txt +++ /dev/null @@ -1 +0,0 @@ -ckey-state \ No newline at end of file diff --git a/dependencies.sh b/dependencies.sh index 5e7c7a1db3..c2f1238d34 100644 --- a/dependencies.sh +++ b/dependencies.sh @@ -4,12 +4,14 @@ #Final authority on what's required to fully build the project # byond version -export BYOND_MAJOR=514 -export BYOND_MINOR=1560 +export BYOND_MAJOR=515 +export BYOND_MINOR=1641 #rust_g git tag export RUST_G_VERSION=3.0.0 -export RUST_VERSION=1.73.0 + +#rust_g git tag +export RUST_G_VERSION=3.3.0 #node version export NODE_VERSION_LTS=20.13.0 @@ -20,4 +22,4 @@ export NODE_VERSION_COMPAT=20.2.0 export SPACEMAN_DMM_VERSION=suite-1.9 # Python version for mapmerge and other tools -export PYTHON_VERSION=3.7.9 +export PYTHON_VERSION=3.9.0 diff --git a/docker/graph-example.png b/docker/graph-example.png index 8a8cf5662b..88cbd552cb 100644 Binary files a/docker/graph-example.png and b/docker/graph-example.png differ diff --git a/docs/SECURITY.md b/docs/SECURITY.md index ed808bcbc8..257b24dbbf 100644 --- a/docs/SECURITY.md +++ b/docs/SECURITY.md @@ -2,7 +2,7 @@ ## Supported Versions -This repository is built and tested against BYOND version `512.1485` at time of writing. If this version number is at odds with `BYOND_MAJOR`.`BYOND_MINOR` as defined in [`./github/workflows/test.yml`](https://github.com/Baystation12/Baystation12/blob/dev/.github/workflows/test.yml#L12), the Actions configuration should be considered authoritative and this document should be noted as out of date. Security vulnerabilities or exploits that apply to this version should be reported so that they can be closed. +This repository is built and tested against BYOND version `515.1641` at time of writing. If this version number is at odds with `BYOND_MAJOR`.`BYOND_MINOR` as defined in [`./github/workflows/test.yml`](https://github.com/Baystation12/Baystation12/blob/dev/.github/workflows/test.yml#L12), the Actions configuration should be considered authoritative and this document should be noted as out of date. Security vulnerabilities or exploits that apply to this version should be reported so that they can be closed. ## Reporting a Vulnerability diff --git a/html/88x31.png b/html/88x31.png index 0f2a0f1072..b41f299aba 100644 Binary files a/html/88x31.png and b/html/88x31.png differ diff --git a/html/auction-hammer-gavel.png b/html/auction-hammer-gavel.png index 237baefa3f..1f6bb2a2cd 100644 Binary files a/html/auction-hammer-gavel.png and b/html/auction-hammer-gavel.png differ diff --git a/html/bug-minus.png b/html/bug-minus.png index 9934db406b..a8a2293b88 100644 Binary files a/html/bug-minus.png and b/html/bug-minus.png differ diff --git a/html/burn-exclamation.png b/html/burn-exclamation.png index b2a4f670a8..c16763f0fd 100644 Binary files a/html/burn-exclamation.png and b/html/burn-exclamation.png differ diff --git a/html/chevron-expand.png b/html/chevron-expand.png index f770e33d8e..85cb1c2e5e 100644 Binary files a/html/chevron-expand.png and b/html/chevron-expand.png differ diff --git a/html/chevron.png b/html/chevron.png index b83135b690..5a34bf0d3f 100644 Binary files a/html/chevron.png and b/html/chevron.png differ diff --git a/html/cross-circle.png b/html/cross-circle.png index e6f2d3228b..9113d06602 100644 Binary files a/html/cross-circle.png and b/html/cross-circle.png differ diff --git a/html/font-awesome/css/all.min.css b/html/font-awesome/css/all.min.css index e7cdfffe75..7a283f087c 100644 --- a/html/font-awesome/css/all.min.css +++ b/html/font-awesome/css/all.min.css @@ -1,5 +1,6 @@ /*! - * Font Awesome Free 5.9.0 by @fontawesome - https://fontawesome.com + * Font Awesome Free 6.1.2 by @fontawesome - https://fontawesome.com * License - https://fontawesome.com/license/free (Icons: CC BY 4.0, Fonts: SIL OFL 1.1, Code: MIT License) + * Copyright 2022 Fonticons, Inc. */ -.fa,.fab,.fal,.far,.fas{-moz-osx-font-smoothing:grayscale;-webkit-font-smoothing:antialiased;display:inline-block;font-style:normal;font-variant:normal;text-rendering:auto;line-height:1}.fa-lg{font-size:1.33333em;line-height:.75em;vertical-align:-.0667em}.fa-xs{font-size:.75em}.fa-sm{font-size:.875em}.fa-1x{font-size:1em}.fa-2x{font-size:2em}.fa-3x{font-size:3em}.fa-4x{font-size:4em}.fa-5x{font-size:5em}.fa-6x{font-size:6em}.fa-7x{font-size:7em}.fa-8x{font-size:8em}.fa-9x{font-size:9em}.fa-10x{font-size:10em}.fa-fw{text-align:center;width:1.25em}.fa-ul{list-style-type:none;margin-left:2.5em;padding-left:0}.fa-ul>li{position:relative}.fa-li{left:-2em;position:absolute;text-align:center;width:2em;line-height:inherit}.fa-border{border:.08em solid #eee;border-radius:.1em;padding:.2em .25em .15em}.fa-pull-left{float:left}.fa-pull-right{float:right}.fa.fa-pull-left,.fab.fa-pull-left,.fal.fa-pull-left,.far.fa-pull-left,.fas.fa-pull-left{margin-right:.3em}.fa.fa-pull-right,.fab.fa-pull-right,.fal.fa-pull-right,.far.fa-pull-right,.fas.fa-pull-right{margin-left:.3em}.fa-spin{animation:fa-spin 2s infinite linear}.fa-pulse{animation:fa-spin 1s infinite steps(8)}@keyframes fa-spin{0%{transform:rotate(0deg)}to{transform:rotate(1turn)}}.fa-rotate-90{-ms-filter:"progid:DXImageTransform.Microsoft.BasicImage(rotation=1)";transform:rotate(90deg)}.fa-rotate-180{-ms-filter:"progid:DXImageTransform.Microsoft.BasicImage(rotation=2)";transform:rotate(180deg)}.fa-rotate-270{-ms-filter:"progid:DXImageTransform.Microsoft.BasicImage(rotation=3)";transform:rotate(270deg)}.fa-flip-horizontal{-ms-filter:"progid:DXImageTransform.Microsoft.BasicImage(rotation=0, mirror=1)";transform:scaleX(-1)}.fa-flip-vertical{transform:scaleY(-1)}.fa-flip-both,.fa-flip-horizontal.fa-flip-vertical,.fa-flip-vertical{-ms-filter:"progid:DXImageTransform.Microsoft.BasicImage(rotation=2, mirror=1)"}.fa-flip-both,.fa-flip-horizontal.fa-flip-vertical{transform:scale(-1)}:root .fa-flip-both,:root .fa-flip-horizontal,:root .fa-flip-vertical,:root .fa-rotate-90,:root .fa-rotate-180,:root .fa-rotate-270{filter:none}.fa-stack{display:inline-block;height:2em;line-height:2em;position:relative;vertical-align:middle;width:2.5em}.fa-stack-1x,.fa-stack-2x{left:0;position:absolute;text-align:center;width:100%}.fa-stack-1x{line-height:inherit}.fa-stack-2x{font-size:2em}.fa-inverse{color:#fff}.fa-500px:before{content:"\f26e"}.fa-accessible-icon:before{content:"\f368"}.fa-accusoft:before{content:"\f369"}.fa-acquisitions-incorporated:before{content:"\f6af"}.fa-ad:before{content:"\f641"}.fa-address-book:before{content:"\f2b9"}.fa-address-card:before{content:"\f2bb"}.fa-adjust:before{content:"\f042"}.fa-adn:before{content:"\f170"}.fa-adobe:before{content:"\f778"}.fa-adversal:before{content:"\f36a"}.fa-affiliatetheme:before{content:"\f36b"}.fa-air-freshener:before{content:"\f5d0"}.fa-airbnb:before{content:"\f834"}.fa-algolia:before{content:"\f36c"}.fa-align-center:before{content:"\f037"}.fa-align-justify:before{content:"\f039"}.fa-align-left:before{content:"\f036"}.fa-align-right:before{content:"\f038"}.fa-alipay:before{content:"\f642"}.fa-allergies:before{content:"\f461"}.fa-amazon:before{content:"\f270"}.fa-amazon-pay:before{content:"\f42c"}.fa-ambulance:before{content:"\f0f9"}.fa-american-sign-language-interpreting:before{content:"\f2a3"}.fa-amilia:before{content:"\f36d"}.fa-anchor:before{content:"\f13d"}.fa-android:before{content:"\f17b"}.fa-angellist:before{content:"\f209"}.fa-angle-double-down:before{content:"\f103"}.fa-angle-double-left:before{content:"\f100"}.fa-angle-double-right:before{content:"\f101"}.fa-angle-double-up:before{content:"\f102"}.fa-angle-down:before{content:"\f107"}.fa-angle-left:before{content:"\f104"}.fa-angle-right:before{content:"\f105"}.fa-angle-up:before{content:"\f106"}.fa-angry:before{content:"\f556"}.fa-angrycreative:before{content:"\f36e"}.fa-angular:before{content:"\f420"}.fa-ankh:before{content:"\f644"}.fa-app-store:before{content:"\f36f"}.fa-app-store-ios:before{content:"\f370"}.fa-apper:before{content:"\f371"}.fa-apple:before{content:"\f179"}.fa-apple-alt:before{content:"\f5d1"}.fa-apple-pay:before{content:"\f415"}.fa-archive:before{content:"\f187"}.fa-archway:before{content:"\f557"}.fa-arrow-alt-circle-down:before{content:"\f358"}.fa-arrow-alt-circle-left:before{content:"\f359"}.fa-arrow-alt-circle-right:before{content:"\f35a"}.fa-arrow-alt-circle-up:before{content:"\f35b"}.fa-arrow-circle-down:before{content:"\f0ab"}.fa-arrow-circle-left:before{content:"\f0a8"}.fa-arrow-circle-right:before{content:"\f0a9"}.fa-arrow-circle-up:before{content:"\f0aa"}.fa-arrow-down:before{content:"\f063"}.fa-arrow-left:before{content:"\f060"}.fa-arrow-right:before{content:"\f061"}.fa-arrow-up:before{content:"\f062"}.fa-arrows-alt:before{content:"\f0b2"}.fa-arrows-alt-h:before{content:"\f337"}.fa-arrows-alt-v:before{content:"\f338"}.fa-artstation:before{content:"\f77a"}.fa-assistive-listening-systems:before{content:"\f2a2"}.fa-asterisk:before{content:"\f069"}.fa-asymmetrik:before{content:"\f372"}.fa-at:before{content:"\f1fa"}.fa-atlas:before{content:"\f558"}.fa-atlassian:before{content:"\f77b"}.fa-atom:before{content:"\f5d2"}.fa-audible:before{content:"\f373"}.fa-audio-description:before{content:"\f29e"}.fa-autoprefixer:before{content:"\f41c"}.fa-avianex:before{content:"\f374"}.fa-aviato:before{content:"\f421"}.fa-award:before{content:"\f559"}.fa-aws:before{content:"\f375"}.fa-baby:before{content:"\f77c"}.fa-baby-carriage:before{content:"\f77d"}.fa-backspace:before{content:"\f55a"}.fa-backward:before{content:"\f04a"}.fa-bacon:before{content:"\f7e5"}.fa-balance-scale:before{content:"\f24e"}.fa-balance-scale-left:before{content:"\f515"}.fa-balance-scale-right:before{content:"\f516"}.fa-ban:before{content:"\f05e"}.fa-band-aid:before{content:"\f462"}.fa-bandcamp:before{content:"\f2d5"}.fa-barcode:before{content:"\f02a"}.fa-bars:before{content:"\f0c9"}.fa-baseball-ball:before{content:"\f433"}.fa-basketball-ball:before{content:"\f434"}.fa-bath:before{content:"\f2cd"}.fa-battery-empty:before{content:"\f244"}.fa-battery-full:before{content:"\f240"}.fa-battery-half:before{content:"\f242"}.fa-battery-quarter:before{content:"\f243"}.fa-battery-three-quarters:before{content:"\f241"}.fa-battle-net:before{content:"\f835"}.fa-bed:before{content:"\f236"}.fa-beer:before{content:"\f0fc"}.fa-behance:before{content:"\f1b4"}.fa-behance-square:before{content:"\f1b5"}.fa-bell:before{content:"\f0f3"}.fa-bell-slash:before{content:"\f1f6"}.fa-bezier-curve:before{content:"\f55b"}.fa-bible:before{content:"\f647"}.fa-bicycle:before{content:"\f206"}.fa-biking:before{content:"\f84a"}.fa-bimobject:before{content:"\f378"}.fa-binoculars:before{content:"\f1e5"}.fa-biohazard:before{content:"\f780"}.fa-birthday-cake:before{content:"\f1fd"}.fa-bitbucket:before{content:"\f171"}.fa-bitcoin:before{content:"\f379"}.fa-bity:before{content:"\f37a"}.fa-black-tie:before{content:"\f27e"}.fa-blackberry:before{content:"\f37b"}.fa-blender:before{content:"\f517"}.fa-blender-phone:before{content:"\f6b6"}.fa-blind:before{content:"\f29d"}.fa-blog:before{content:"\f781"}.fa-blogger:before{content:"\f37c"}.fa-blogger-b:before{content:"\f37d"}.fa-bluetooth:before{content:"\f293"}.fa-bluetooth-b:before{content:"\f294"}.fa-bold:before{content:"\f032"}.fa-bolt:before{content:"\f0e7"}.fa-bomb:before{content:"\f1e2"}.fa-bone:before{content:"\f5d7"}.fa-bong:before{content:"\f55c"}.fa-book:before{content:"\f02d"}.fa-book-dead:before{content:"\f6b7"}.fa-book-medical:before{content:"\f7e6"}.fa-book-open:before{content:"\f518"}.fa-book-reader:before{content:"\f5da"}.fa-bookmark:before{content:"\f02e"}.fa-bootstrap:before{content:"\f836"}.fa-border-all:before{content:"\f84c"}.fa-border-none:before{content:"\f850"}.fa-border-style:before{content:"\f853"}.fa-bowling-ball:before{content:"\f436"}.fa-box:before{content:"\f466"}.fa-box-open:before{content:"\f49e"}.fa-boxes:before{content:"\f468"}.fa-braille:before{content:"\f2a1"}.fa-brain:before{content:"\f5dc"}.fa-bread-slice:before{content:"\f7ec"}.fa-briefcase:before{content:"\f0b1"}.fa-briefcase-medical:before{content:"\f469"}.fa-broadcast-tower:before{content:"\f519"}.fa-broom:before{content:"\f51a"}.fa-brush:before{content:"\f55d"}.fa-btc:before{content:"\f15a"}.fa-buffer:before{content:"\f837"}.fa-bug:before{content:"\f188"}.fa-building:before{content:"\f1ad"}.fa-bullhorn:before{content:"\f0a1"}.fa-bullseye:before{content:"\f140"}.fa-burn:before{content:"\f46a"}.fa-buromobelexperte:before{content:"\f37f"}.fa-bus:before{content:"\f207"}.fa-bus-alt:before{content:"\f55e"}.fa-business-time:before{content:"\f64a"}.fa-buysellads:before{content:"\f20d"}.fa-calculator:before{content:"\f1ec"}.fa-calendar:before{content:"\f133"}.fa-calendar-alt:before{content:"\f073"}.fa-calendar-check:before{content:"\f274"}.fa-calendar-day:before{content:"\f783"}.fa-calendar-minus:before{content:"\f272"}.fa-calendar-plus:before{content:"\f271"}.fa-calendar-times:before{content:"\f273"}.fa-calendar-week:before{content:"\f784"}.fa-camera:before{content:"\f030"}.fa-camera-retro:before{content:"\f083"}.fa-campground:before{content:"\f6bb"}.fa-canadian-maple-leaf:before{content:"\f785"}.fa-candy-cane:before{content:"\f786"}.fa-cannabis:before{content:"\f55f"}.fa-capsules:before{content:"\f46b"}.fa-car:before{content:"\f1b9"}.fa-car-alt:before{content:"\f5de"}.fa-car-battery:before{content:"\f5df"}.fa-car-crash:before{content:"\f5e1"}.fa-car-side:before{content:"\f5e4"}.fa-caret-down:before{content:"\f0d7"}.fa-caret-left:before{content:"\f0d9"}.fa-caret-right:before{content:"\f0da"}.fa-caret-square-down:before{content:"\f150"}.fa-caret-square-left:before{content:"\f191"}.fa-caret-square-right:before{content:"\f152"}.fa-caret-square-up:before{content:"\f151"}.fa-caret-up:before{content:"\f0d8"}.fa-carrot:before{content:"\f787"}.fa-cart-arrow-down:before{content:"\f218"}.fa-cart-plus:before{content:"\f217"}.fa-cash-register:before{content:"\f788"}.fa-cat:before{content:"\f6be"}.fa-cc-amazon-pay:before{content:"\f42d"}.fa-cc-amex:before{content:"\f1f3"}.fa-cc-apple-pay:before{content:"\f416"}.fa-cc-diners-club:before{content:"\f24c"}.fa-cc-discover:before{content:"\f1f2"}.fa-cc-jcb:before{content:"\f24b"}.fa-cc-mastercard:before{content:"\f1f1"}.fa-cc-paypal:before{content:"\f1f4"}.fa-cc-stripe:before{content:"\f1f5"}.fa-cc-visa:before{content:"\f1f0"}.fa-centercode:before{content:"\f380"}.fa-centos:before{content:"\f789"}.fa-certificate:before{content:"\f0a3"}.fa-chair:before{content:"\f6c0"}.fa-chalkboard:before{content:"\f51b"}.fa-chalkboard-teacher:before{content:"\f51c"}.fa-charging-station:before{content:"\f5e7"}.fa-chart-area:before{content:"\f1fe"}.fa-chart-bar:before{content:"\f080"}.fa-chart-line:before{content:"\f201"}.fa-chart-pie:before{content:"\f200"}.fa-check:before{content:"\f00c"}.fa-check-circle:before{content:"\f058"}.fa-check-double:before{content:"\f560"}.fa-check-square:before{content:"\f14a"}.fa-cheese:before{content:"\f7ef"}.fa-chess:before{content:"\f439"}.fa-chess-bishop:before{content:"\f43a"}.fa-chess-board:before{content:"\f43c"}.fa-chess-king:before{content:"\f43f"}.fa-chess-knight:before{content:"\f441"}.fa-chess-pawn:before{content:"\f443"}.fa-chess-queen:before{content:"\f445"}.fa-chess-rook:before{content:"\f447"}.fa-chevron-circle-down:before{content:"\f13a"}.fa-chevron-circle-left:before{content:"\f137"}.fa-chevron-circle-right:before{content:"\f138"}.fa-chevron-circle-up:before{content:"\f139"}.fa-chevron-down:before{content:"\f078"}.fa-chevron-left:before{content:"\f053"}.fa-chevron-right:before{content:"\f054"}.fa-chevron-up:before{content:"\f077"}.fa-child:before{content:"\f1ae"}.fa-chrome:before{content:"\f268"}.fa-chromecast:before{content:"\f838"}.fa-church:before{content:"\f51d"}.fa-circle:before{content:"\f111"}.fa-circle-notch:before{content:"\f1ce"}.fa-city:before{content:"\f64f"}.fa-clinic-medical:before{content:"\f7f2"}.fa-clipboard:before{content:"\f328"}.fa-clipboard-check:before{content:"\f46c"}.fa-clipboard-list:before{content:"\f46d"}.fa-clock:before{content:"\f017"}.fa-clone:before{content:"\f24d"}.fa-closed-captioning:before{content:"\f20a"}.fa-cloud:before{content:"\f0c2"}.fa-cloud-download-alt:before{content:"\f381"}.fa-cloud-meatball:before{content:"\f73b"}.fa-cloud-moon:before{content:"\f6c3"}.fa-cloud-moon-rain:before{content:"\f73c"}.fa-cloud-rain:before{content:"\f73d"}.fa-cloud-showers-heavy:before{content:"\f740"}.fa-cloud-sun:before{content:"\f6c4"}.fa-cloud-sun-rain:before{content:"\f743"}.fa-cloud-upload-alt:before{content:"\f382"}.fa-cloudscale:before{content:"\f383"}.fa-cloudsmith:before{content:"\f384"}.fa-cloudversify:before{content:"\f385"}.fa-cocktail:before{content:"\f561"}.fa-code:before{content:"\f121"}.fa-code-branch:before{content:"\f126"}.fa-codepen:before{content:"\f1cb"}.fa-codiepie:before{content:"\f284"}.fa-coffee:before{content:"\f0f4"}.fa-cog:before{content:"\f013"}.fa-cogs:before{content:"\f085"}.fa-coins:before{content:"\f51e"}.fa-columns:before{content:"\f0db"}.fa-comment:before{content:"\f075"}.fa-comment-alt:before{content:"\f27a"}.fa-comment-dollar:before{content:"\f651"}.fa-comment-dots:before{content:"\f4ad"}.fa-comment-medical:before{content:"\f7f5"}.fa-comment-slash:before{content:"\f4b3"}.fa-comments:before{content:"\f086"}.fa-comments-dollar:before{content:"\f653"}.fa-compact-disc:before{content:"\f51f"}.fa-compass:before{content:"\f14e"}.fa-compress:before{content:"\f066"}.fa-compress-arrows-alt:before{content:"\f78c"}.fa-concierge-bell:before{content:"\f562"}.fa-confluence:before{content:"\f78d"}.fa-connectdevelop:before{content:"\f20e"}.fa-contao:before{content:"\f26d"}.fa-cookie:before{content:"\f563"}.fa-cookie-bite:before{content:"\f564"}.fa-copy:before{content:"\f0c5"}.fa-copyright:before{content:"\f1f9"}.fa-couch:before{content:"\f4b8"}.fa-cpanel:before{content:"\f388"}.fa-creative-commons:before{content:"\f25e"}.fa-creative-commons-by:before{content:"\f4e7"}.fa-creative-commons-nc:before{content:"\f4e8"}.fa-creative-commons-nc-eu:before{content:"\f4e9"}.fa-creative-commons-nc-jp:before{content:"\f4ea"}.fa-creative-commons-nd:before{content:"\f4eb"}.fa-creative-commons-pd:before{content:"\f4ec"}.fa-creative-commons-pd-alt:before{content:"\f4ed"}.fa-creative-commons-remix:before{content:"\f4ee"}.fa-creative-commons-sa:before{content:"\f4ef"}.fa-creative-commons-sampling:before{content:"\f4f0"}.fa-creative-commons-sampling-plus:before{content:"\f4f1"}.fa-creative-commons-share:before{content:"\f4f2"}.fa-creative-commons-zero:before{content:"\f4f3"}.fa-credit-card:before{content:"\f09d"}.fa-critical-role:before{content:"\f6c9"}.fa-crop:before{content:"\f125"}.fa-crop-alt:before{content:"\f565"}.fa-cross:before{content:"\f654"}.fa-crosshairs:before{content:"\f05b"}.fa-crow:before{content:"\f520"}.fa-crown:before{content:"\f521"}.fa-crutch:before{content:"\f7f7"}.fa-css3:before{content:"\f13c"}.fa-css3-alt:before{content:"\f38b"}.fa-cube:before{content:"\f1b2"}.fa-cubes:before{content:"\f1b3"}.fa-cut:before{content:"\f0c4"}.fa-cuttlefish:before{content:"\f38c"}.fa-d-and-d:before{content:"\f38d"}.fa-d-and-d-beyond:before{content:"\f6ca"}.fa-dashcube:before{content:"\f210"}.fa-database:before{content:"\f1c0"}.fa-deaf:before{content:"\f2a4"}.fa-delicious:before{content:"\f1a5"}.fa-democrat:before{content:"\f747"}.fa-deploydog:before{content:"\f38e"}.fa-deskpro:before{content:"\f38f"}.fa-desktop:before{content:"\f108"}.fa-dev:before{content:"\f6cc"}.fa-deviantart:before{content:"\f1bd"}.fa-dharmachakra:before{content:"\f655"}.fa-dhl:before{content:"\f790"}.fa-diagnoses:before{content:"\f470"}.fa-diaspora:before{content:"\f791"}.fa-dice:before{content:"\f522"}.fa-dice-d20:before{content:"\f6cf"}.fa-dice-d6:before{content:"\f6d1"}.fa-dice-five:before{content:"\f523"}.fa-dice-four:before{content:"\f524"}.fa-dice-one:before{content:"\f525"}.fa-dice-six:before{content:"\f526"}.fa-dice-three:before{content:"\f527"}.fa-dice-two:before{content:"\f528"}.fa-digg:before{content:"\f1a6"}.fa-digital-ocean:before{content:"\f391"}.fa-digital-tachograph:before{content:"\f566"}.fa-directions:before{content:"\f5eb"}.fa-discord:before{content:"\f392"}.fa-discourse:before{content:"\f393"}.fa-divide:before{content:"\f529"}.fa-dizzy:before{content:"\f567"}.fa-dna:before{content:"\f471"}.fa-dochub:before{content:"\f394"}.fa-docker:before{content:"\f395"}.fa-dog:before{content:"\f6d3"}.fa-dollar-sign:before{content:"\f155"}.fa-dolly:before{content:"\f472"}.fa-dolly-flatbed:before{content:"\f474"}.fa-donate:before{content:"\f4b9"}.fa-door-closed:before{content:"\f52a"}.fa-door-open:before{content:"\f52b"}.fa-dot-circle:before{content:"\f192"}.fa-dove:before{content:"\f4ba"}.fa-download:before{content:"\f019"}.fa-draft2digital:before{content:"\f396"}.fa-drafting-compass:before{content:"\f568"}.fa-dragon:before{content:"\f6d5"}.fa-draw-polygon:before{content:"\f5ee"}.fa-dribbble:before{content:"\f17d"}.fa-dribbble-square:before{content:"\f397"}.fa-dropbox:before{content:"\f16b"}.fa-drum:before{content:"\f569"}.fa-drum-steelpan:before{content:"\f56a"}.fa-drumstick-bite:before{content:"\f6d7"}.fa-drupal:before{content:"\f1a9"}.fa-dumbbell:before{content:"\f44b"}.fa-dumpster:before{content:"\f793"}.fa-dumpster-fire:before{content:"\f794"}.fa-dungeon:before{content:"\f6d9"}.fa-dyalog:before{content:"\f399"}.fa-earlybirds:before{content:"\f39a"}.fa-ebay:before{content:"\f4f4"}.fa-edge:before{content:"\f282"}.fa-edit:before{content:"\f044"}.fa-egg:before{content:"\f7fb"}.fa-eject:before{content:"\f052"}.fa-elementor:before{content:"\f430"}.fa-ellipsis-h:before{content:"\f141"}.fa-ellipsis-v:before{content:"\f142"}.fa-ello:before{content:"\f5f1"}.fa-ember:before{content:"\f423"}.fa-empire:before{content:"\f1d1"}.fa-envelope:before{content:"\f0e0"}.fa-envelope-open:before{content:"\f2b6"}.fa-envelope-open-text:before{content:"\f658"}.fa-envelope-square:before{content:"\f199"}.fa-envira:before{content:"\f299"}.fa-equals:before{content:"\f52c"}.fa-eraser:before{content:"\f12d"}.fa-erlang:before{content:"\f39d"}.fa-ethereum:before{content:"\f42e"}.fa-ethernet:before{content:"\f796"}.fa-etsy:before{content:"\f2d7"}.fa-euro-sign:before{content:"\f153"}.fa-evernote:before{content:"\f839"}.fa-exchange-alt:before{content:"\f362"}.fa-exclamation:before{content:"\f12a"}.fa-exclamation-circle:before{content:"\f06a"}.fa-exclamation-triangle:before{content:"\f071"}.fa-expand:before{content:"\f065"}.fa-expand-arrows-alt:before{content:"\f31e"}.fa-expeditedssl:before{content:"\f23e"}.fa-external-link-alt:before{content:"\f35d"}.fa-external-link-square-alt:before{content:"\f360"}.fa-eye:before{content:"\f06e"}.fa-eye-dropper:before{content:"\f1fb"}.fa-eye-slash:before{content:"\f070"}.fa-facebook:before{content:"\f09a"}.fa-facebook-f:before{content:"\f39e"}.fa-facebook-messenger:before{content:"\f39f"}.fa-facebook-square:before{content:"\f082"}.fa-fan:before{content:"\f863"}.fa-fantasy-flight-games:before{content:"\f6dc"}.fa-fast-backward:before{content:"\f049"}.fa-fast-forward:before{content:"\f050"}.fa-fax:before{content:"\f1ac"}.fa-feather:before{content:"\f52d"}.fa-feather-alt:before{content:"\f56b"}.fa-fedex:before{content:"\f797"}.fa-fedora:before{content:"\f798"}.fa-female:before{content:"\f182"}.fa-fighter-jet:before{content:"\f0fb"}.fa-figma:before{content:"\f799"}.fa-file:before{content:"\f15b"}.fa-file-alt:before{content:"\f15c"}.fa-file-archive:before{content:"\f1c6"}.fa-file-audio:before{content:"\f1c7"}.fa-file-code:before{content:"\f1c9"}.fa-file-contract:before{content:"\f56c"}.fa-file-csv:before{content:"\f6dd"}.fa-file-download:before{content:"\f56d"}.fa-file-excel:before{content:"\f1c3"}.fa-file-export:before{content:"\f56e"}.fa-file-image:before{content:"\f1c5"}.fa-file-import:before{content:"\f56f"}.fa-file-invoice:before{content:"\f570"}.fa-file-invoice-dollar:before{content:"\f571"}.fa-file-medical:before{content:"\f477"}.fa-file-medical-alt:before{content:"\f478"}.fa-file-pdf:before{content:"\f1c1"}.fa-file-powerpoint:before{content:"\f1c4"}.fa-file-prescription:before{content:"\f572"}.fa-file-signature:before{content:"\f573"}.fa-file-upload:before{content:"\f574"}.fa-file-video:before{content:"\f1c8"}.fa-file-word:before{content:"\f1c2"}.fa-fill:before{content:"\f575"}.fa-fill-drip:before{content:"\f576"}.fa-film:before{content:"\f008"}.fa-filter:before{content:"\f0b0"}.fa-fingerprint:before{content:"\f577"}.fa-fire:before{content:"\f06d"}.fa-fire-alt:before{content:"\f7e4"}.fa-fire-extinguisher:before{content:"\f134"}.fa-firefox:before{content:"\f269"}.fa-first-aid:before{content:"\f479"}.fa-first-order:before{content:"\f2b0"}.fa-first-order-alt:before{content:"\f50a"}.fa-firstdraft:before{content:"\f3a1"}.fa-fish:before{content:"\f578"}.fa-fist-raised:before{content:"\f6de"}.fa-flag:before{content:"\f024"}.fa-flag-checkered:before{content:"\f11e"}.fa-flag-usa:before{content:"\f74d"}.fa-flask:before{content:"\f0c3"}.fa-flickr:before{content:"\f16e"}.fa-flipboard:before{content:"\f44d"}.fa-flushed:before{content:"\f579"}.fa-fly:before{content:"\f417"}.fa-folder:before{content:"\f07b"}.fa-folder-minus:before{content:"\f65d"}.fa-folder-open:before{content:"\f07c"}.fa-folder-plus:before{content:"\f65e"}.fa-font:before{content:"\f031"}.fa-font-awesome:before{content:"\f2b4"}.fa-font-awesome-alt:before{content:"\f35c"}.fa-font-awesome-flag:before{content:"\f425"}.fa-font-awesome-logo-full:before{content:"\f4e6"}.fa-fonticons:before{content:"\f280"}.fa-fonticons-fi:before{content:"\f3a2"}.fa-football-ball:before{content:"\f44e"}.fa-fort-awesome:before{content:"\f286"}.fa-fort-awesome-alt:before{content:"\f3a3"}.fa-forumbee:before{content:"\f211"}.fa-forward:before{content:"\f04e"}.fa-foursquare:before{content:"\f180"}.fa-free-code-camp:before{content:"\f2c5"}.fa-freebsd:before{content:"\f3a4"}.fa-frog:before{content:"\f52e"}.fa-frown:before{content:"\f119"}.fa-frown-open:before{content:"\f57a"}.fa-fulcrum:before{content:"\f50b"}.fa-funnel-dollar:before{content:"\f662"}.fa-futbol:before{content:"\f1e3"}.fa-galactic-republic:before{content:"\f50c"}.fa-galactic-senate:before{content:"\f50d"}.fa-gamepad:before{content:"\f11b"}.fa-gas-pump:before{content:"\f52f"}.fa-gavel:before{content:"\f0e3"}.fa-gem:before{content:"\f3a5"}.fa-genderless:before{content:"\f22d"}.fa-get-pocket:before{content:"\f265"}.fa-gg:before{content:"\f260"}.fa-gg-circle:before{content:"\f261"}.fa-ghost:before{content:"\f6e2"}.fa-gift:before{content:"\f06b"}.fa-gifts:before{content:"\f79c"}.fa-git:before{content:"\f1d3"}.fa-git-alt:before{content:"\f841"}.fa-git-square:before{content:"\f1d2"}.fa-github:before{content:"\f09b"}.fa-github-alt:before{content:"\f113"}.fa-github-square:before{content:"\f092"}.fa-gitkraken:before{content:"\f3a6"}.fa-gitlab:before{content:"\f296"}.fa-gitter:before{content:"\f426"}.fa-glass-cheers:before{content:"\f79f"}.fa-glass-martini:before{content:"\f000"}.fa-glass-martini-alt:before{content:"\f57b"}.fa-glass-whiskey:before{content:"\f7a0"}.fa-glasses:before{content:"\f530"}.fa-glide:before{content:"\f2a5"}.fa-glide-g:before{content:"\f2a6"}.fa-globe:before{content:"\f0ac"}.fa-globe-africa:before{content:"\f57c"}.fa-globe-americas:before{content:"\f57d"}.fa-globe-asia:before{content:"\f57e"}.fa-globe-europe:before{content:"\f7a2"}.fa-gofore:before{content:"\f3a7"}.fa-golf-ball:before{content:"\f450"}.fa-goodreads:before{content:"\f3a8"}.fa-goodreads-g:before{content:"\f3a9"}.fa-google:before{content:"\f1a0"}.fa-google-drive:before{content:"\f3aa"}.fa-google-play:before{content:"\f3ab"}.fa-google-plus:before{content:"\f2b3"}.fa-google-plus-g:before{content:"\f0d5"}.fa-google-plus-square:before{content:"\f0d4"}.fa-google-wallet:before{content:"\f1ee"}.fa-gopuram:before{content:"\f664"}.fa-graduation-cap:before{content:"\f19d"}.fa-gratipay:before{content:"\f184"}.fa-grav:before{content:"\f2d6"}.fa-greater-than:before{content:"\f531"}.fa-greater-than-equal:before{content:"\f532"}.fa-grimace:before{content:"\f57f"}.fa-grin:before{content:"\f580"}.fa-grin-alt:before{content:"\f581"}.fa-grin-beam:before{content:"\f582"}.fa-grin-beam-sweat:before{content:"\f583"}.fa-grin-hearts:before{content:"\f584"}.fa-grin-squint:before{content:"\f585"}.fa-grin-squint-tears:before{content:"\f586"}.fa-grin-stars:before{content:"\f587"}.fa-grin-tears:before{content:"\f588"}.fa-grin-tongue:before{content:"\f589"}.fa-grin-tongue-squint:before{content:"\f58a"}.fa-grin-tongue-wink:before{content:"\f58b"}.fa-grin-wink:before{content:"\f58c"}.fa-grip-horizontal:before{content:"\f58d"}.fa-grip-lines:before{content:"\f7a4"}.fa-grip-lines-vertical:before{content:"\f7a5"}.fa-grip-vertical:before{content:"\f58e"}.fa-gripfire:before{content:"\f3ac"}.fa-grunt:before{content:"\f3ad"}.fa-guitar:before{content:"\f7a6"}.fa-gulp:before{content:"\f3ae"}.fa-h-square:before{content:"\f0fd"}.fa-hacker-news:before{content:"\f1d4"}.fa-hacker-news-square:before{content:"\f3af"}.fa-hackerrank:before{content:"\f5f7"}.fa-hamburger:before{content:"\f805"}.fa-hammer:before{content:"\f6e3"}.fa-hamsa:before{content:"\f665"}.fa-hand-holding:before{content:"\f4bd"}.fa-hand-holding-heart:before{content:"\f4be"}.fa-hand-holding-usd:before{content:"\f4c0"}.fa-hand-lizard:before{content:"\f258"}.fa-hand-middle-finger:before{content:"\f806"}.fa-hand-paper:before{content:"\f256"}.fa-hand-peace:before{content:"\f25b"}.fa-hand-point-down:before{content:"\f0a7"}.fa-hand-point-left:before{content:"\f0a5"}.fa-hand-point-right:before{content:"\f0a4"}.fa-hand-point-up:before{content:"\f0a6"}.fa-hand-pointer:before{content:"\f25a"}.fa-hand-rock:before{content:"\f255"}.fa-hand-scissors:before{content:"\f257"}.fa-hand-spock:before{content:"\f259"}.fa-hands:before{content:"\f4c2"}.fa-hands-helping:before{content:"\f4c4"}.fa-handshake:before{content:"\f2b5"}.fa-hanukiah:before{content:"\f6e6"}.fa-hard-hat:before{content:"\f807"}.fa-hashtag:before{content:"\f292"}.fa-hat-wizard:before{content:"\f6e8"}.fa-haykal:before{content:"\f666"}.fa-hdd:before{content:"\f0a0"}.fa-heading:before{content:"\f1dc"}.fa-headphones:before{content:"\f025"}.fa-headphones-alt:before{content:"\f58f"}.fa-headset:before{content:"\f590"}.fa-heart:before{content:"\f004"}.fa-heart-broken:before{content:"\f7a9"}.fa-heartbeat:before{content:"\f21e"}.fa-helicopter:before{content:"\f533"}.fa-highlighter:before{content:"\f591"}.fa-hiking:before{content:"\f6ec"}.fa-hippo:before{content:"\f6ed"}.fa-hips:before{content:"\f452"}.fa-hire-a-helper:before{content:"\f3b0"}.fa-history:before{content:"\f1da"}.fa-hockey-puck:before{content:"\f453"}.fa-holly-berry:before{content:"\f7aa"}.fa-home:before{content:"\f015"}.fa-hooli:before{content:"\f427"}.fa-hornbill:before{content:"\f592"}.fa-horse:before{content:"\f6f0"}.fa-horse-head:before{content:"\f7ab"}.fa-hospital:before{content:"\f0f8"}.fa-hospital-alt:before{content:"\f47d"}.fa-hospital-symbol:before{content:"\f47e"}.fa-hot-tub:before{content:"\f593"}.fa-hotdog:before{content:"\f80f"}.fa-hotel:before{content:"\f594"}.fa-hotjar:before{content:"\f3b1"}.fa-hourglass:before{content:"\f254"}.fa-hourglass-end:before{content:"\f253"}.fa-hourglass-half:before{content:"\f252"}.fa-hourglass-start:before{content:"\f251"}.fa-house-damage:before{content:"\f6f1"}.fa-houzz:before{content:"\f27c"}.fa-hryvnia:before{content:"\f6f2"}.fa-html5:before{content:"\f13b"}.fa-hubspot:before{content:"\f3b2"}.fa-i-cursor:before{content:"\f246"}.fa-ice-cream:before{content:"\f810"}.fa-icicles:before{content:"\f7ad"}.fa-icons:before{content:"\f86d"}.fa-id-badge:before{content:"\f2c1"}.fa-id-card:before{content:"\f2c2"}.fa-id-card-alt:before{content:"\f47f"}.fa-igloo:before{content:"\f7ae"}.fa-image:before{content:"\f03e"}.fa-images:before{content:"\f302"}.fa-imdb:before{content:"\f2d8"}.fa-inbox:before{content:"\f01c"}.fa-indent:before{content:"\f03c"}.fa-industry:before{content:"\f275"}.fa-infinity:before{content:"\f534"}.fa-info:before{content:"\f129"}.fa-info-circle:before{content:"\f05a"}.fa-instagram:before{content:"\f16d"}.fa-intercom:before{content:"\f7af"}.fa-internet-explorer:before{content:"\f26b"}.fa-invision:before{content:"\f7b0"}.fa-ioxhost:before{content:"\f208"}.fa-italic:before{content:"\f033"}.fa-itch-io:before{content:"\f83a"}.fa-itunes:before{content:"\f3b4"}.fa-itunes-note:before{content:"\f3b5"}.fa-java:before{content:"\f4e4"}.fa-jedi:before{content:"\f669"}.fa-jedi-order:before{content:"\f50e"}.fa-jenkins:before{content:"\f3b6"}.fa-jira:before{content:"\f7b1"}.fa-joget:before{content:"\f3b7"}.fa-joint:before{content:"\f595"}.fa-joomla:before{content:"\f1aa"}.fa-journal-whills:before{content:"\f66a"}.fa-js:before{content:"\f3b8"}.fa-js-square:before{content:"\f3b9"}.fa-jsfiddle:before{content:"\f1cc"}.fa-kaaba:before{content:"\f66b"}.fa-kaggle:before{content:"\f5fa"}.fa-key:before{content:"\f084"}.fa-keybase:before{content:"\f4f5"}.fa-keyboard:before{content:"\f11c"}.fa-keycdn:before{content:"\f3ba"}.fa-khanda:before{content:"\f66d"}.fa-kickstarter:before{content:"\f3bb"}.fa-kickstarter-k:before{content:"\f3bc"}.fa-kiss:before{content:"\f596"}.fa-kiss-beam:before{content:"\f597"}.fa-kiss-wink-heart:before{content:"\f598"}.fa-kiwi-bird:before{content:"\f535"}.fa-korvue:before{content:"\f42f"}.fa-landmark:before{content:"\f66f"}.fa-language:before{content:"\f1ab"}.fa-laptop:before{content:"\f109"}.fa-laptop-code:before{content:"\f5fc"}.fa-laptop-medical:before{content:"\f812"}.fa-laravel:before{content:"\f3bd"}.fa-lastfm:before{content:"\f202"}.fa-lastfm-square:before{content:"\f203"}.fa-laugh:before{content:"\f599"}.fa-laugh-beam:before{content:"\f59a"}.fa-laugh-squint:before{content:"\f59b"}.fa-laugh-wink:before{content:"\f59c"}.fa-layer-group:before{content:"\f5fd"}.fa-leaf:before{content:"\f06c"}.fa-leanpub:before{content:"\f212"}.fa-lemon:before{content:"\f094"}.fa-less:before{content:"\f41d"}.fa-less-than:before{content:"\f536"}.fa-less-than-equal:before{content:"\f537"}.fa-level-down-alt:before{content:"\f3be"}.fa-level-up-alt:before{content:"\f3bf"}.fa-life-ring:before{content:"\f1cd"}.fa-lightbulb:before{content:"\f0eb"}.fa-line:before{content:"\f3c0"}.fa-link:before{content:"\f0c1"}.fa-linkedin:before{content:"\f08c"}.fa-linkedin-in:before{content:"\f0e1"}.fa-linode:before{content:"\f2b8"}.fa-linux:before{content:"\f17c"}.fa-lira-sign:before{content:"\f195"}.fa-list:before{content:"\f03a"}.fa-list-alt:before{content:"\f022"}.fa-list-ol:before{content:"\f0cb"}.fa-list-ul:before{content:"\f0ca"}.fa-location-arrow:before{content:"\f124"}.fa-lock:before{content:"\f023"}.fa-lock-open:before{content:"\f3c1"}.fa-long-arrow-alt-down:before{content:"\f309"}.fa-long-arrow-alt-left:before{content:"\f30a"}.fa-long-arrow-alt-right:before{content:"\f30b"}.fa-long-arrow-alt-up:before{content:"\f30c"}.fa-low-vision:before{content:"\f2a8"}.fa-luggage-cart:before{content:"\f59d"}.fa-lyft:before{content:"\f3c3"}.fa-magento:before{content:"\f3c4"}.fa-magic:before{content:"\f0d0"}.fa-magnet:before{content:"\f076"}.fa-mail-bulk:before{content:"\f674"}.fa-mailchimp:before{content:"\f59e"}.fa-male:before{content:"\f183"}.fa-mandalorian:before{content:"\f50f"}.fa-map:before{content:"\f279"}.fa-map-marked:before{content:"\f59f"}.fa-map-marked-alt:before{content:"\f5a0"}.fa-map-marker:before{content:"\f041"}.fa-map-marker-alt:before{content:"\f3c5"}.fa-map-pin:before{content:"\f276"}.fa-map-signs:before{content:"\f277"}.fa-markdown:before{content:"\f60f"}.fa-marker:before{content:"\f5a1"}.fa-mars:before{content:"\f222"}.fa-mars-double:before{content:"\f227"}.fa-mars-stroke:before{content:"\f229"}.fa-mars-stroke-h:before{content:"\f22b"}.fa-mars-stroke-v:before{content:"\f22a"}.fa-mask:before{content:"\f6fa"}.fa-mastodon:before{content:"\f4f6"}.fa-maxcdn:before{content:"\f136"}.fa-medal:before{content:"\f5a2"}.fa-medapps:before{content:"\f3c6"}.fa-medium:before{content:"\f23a"}.fa-medium-m:before{content:"\f3c7"}.fa-medkit:before{content:"\f0fa"}.fa-medrt:before{content:"\f3c8"}.fa-meetup:before{content:"\f2e0"}.fa-megaport:before{content:"\f5a3"}.fa-meh:before{content:"\f11a"}.fa-meh-blank:before{content:"\f5a4"}.fa-meh-rolling-eyes:before{content:"\f5a5"}.fa-memory:before{content:"\f538"}.fa-mendeley:before{content:"\f7b3"}.fa-menorah:before{content:"\f676"}.fa-mercury:before{content:"\f223"}.fa-meteor:before{content:"\f753"}.fa-microchip:before{content:"\f2db"}.fa-microphone:before{content:"\f130"}.fa-microphone-alt:before{content:"\f3c9"}.fa-microphone-alt-slash:before{content:"\f539"}.fa-microphone-slash:before{content:"\f131"}.fa-microscope:before{content:"\f610"}.fa-microsoft:before{content:"\f3ca"}.fa-minus:before{content:"\f068"}.fa-minus-circle:before{content:"\f056"}.fa-minus-square:before{content:"\f146"}.fa-mitten:before{content:"\f7b5"}.fa-mix:before{content:"\f3cb"}.fa-mixcloud:before{content:"\f289"}.fa-mizuni:before{content:"\f3cc"}.fa-mobile:before{content:"\f10b"}.fa-mobile-alt:before{content:"\f3cd"}.fa-modx:before{content:"\f285"}.fa-monero:before{content:"\f3d0"}.fa-money-bill:before{content:"\f0d6"}.fa-money-bill-alt:before{content:"\f3d1"}.fa-money-bill-wave:before{content:"\f53a"}.fa-money-bill-wave-alt:before{content:"\f53b"}.fa-money-check:before{content:"\f53c"}.fa-money-check-alt:before{content:"\f53d"}.fa-monument:before{content:"\f5a6"}.fa-moon:before{content:"\f186"}.fa-mortar-pestle:before{content:"\f5a7"}.fa-mosque:before{content:"\f678"}.fa-motorcycle:before{content:"\f21c"}.fa-mountain:before{content:"\f6fc"}.fa-mouse-pointer:before{content:"\f245"}.fa-mug-hot:before{content:"\f7b6"}.fa-music:before{content:"\f001"}.fa-napster:before{content:"\f3d2"}.fa-neos:before{content:"\f612"}.fa-network-wired:before{content:"\f6ff"}.fa-neuter:before{content:"\f22c"}.fa-newspaper:before{content:"\f1ea"}.fa-nimblr:before{content:"\f5a8"}.fa-node:before{content:"\f419"}.fa-node-js:before{content:"\f3d3"}.fa-not-equal:before{content:"\f53e"}.fa-notes-medical:before{content:"\f481"}.fa-npm:before{content:"\f3d4"}.fa-ns8:before{content:"\f3d5"}.fa-nutritionix:before{content:"\f3d6"}.fa-object-group:before{content:"\f247"}.fa-object-ungroup:before{content:"\f248"}.fa-odnoklassniki:before{content:"\f263"}.fa-odnoklassniki-square:before{content:"\f264"}.fa-oil-can:before{content:"\f613"}.fa-old-republic:before{content:"\f510"}.fa-om:before{content:"\f679"}.fa-opencart:before{content:"\f23d"}.fa-openid:before{content:"\f19b"}.fa-opera:before{content:"\f26a"}.fa-optin-monster:before{content:"\f23c"}.fa-osi:before{content:"\f41a"}.fa-otter:before{content:"\f700"}.fa-outdent:before{content:"\f03b"}.fa-page4:before{content:"\f3d7"}.fa-pagelines:before{content:"\f18c"}.fa-pager:before{content:"\f815"}.fa-paint-brush:before{content:"\f1fc"}.fa-paint-roller:before{content:"\f5aa"}.fa-palette:before{content:"\f53f"}.fa-palfed:before{content:"\f3d8"}.fa-pallet:before{content:"\f482"}.fa-paper-plane:before{content:"\f1d8"}.fa-paperclip:before{content:"\f0c6"}.fa-parachute-box:before{content:"\f4cd"}.fa-paragraph:before{content:"\f1dd"}.fa-parking:before{content:"\f540"}.fa-passport:before{content:"\f5ab"}.fa-pastafarianism:before{content:"\f67b"}.fa-paste:before{content:"\f0ea"}.fa-patreon:before{content:"\f3d9"}.fa-pause:before{content:"\f04c"}.fa-pause-circle:before{content:"\f28b"}.fa-paw:before{content:"\f1b0"}.fa-paypal:before{content:"\f1ed"}.fa-peace:before{content:"\f67c"}.fa-pen:before{content:"\f304"}.fa-pen-alt:before{content:"\f305"}.fa-pen-fancy:before{content:"\f5ac"}.fa-pen-nib:before{content:"\f5ad"}.fa-pen-square:before{content:"\f14b"}.fa-pencil-alt:before{content:"\f303"}.fa-pencil-ruler:before{content:"\f5ae"}.fa-penny-arcade:before{content:"\f704"}.fa-people-carry:before{content:"\f4ce"}.fa-pepper-hot:before{content:"\f816"}.fa-percent:before{content:"\f295"}.fa-percentage:before{content:"\f541"}.fa-periscope:before{content:"\f3da"}.fa-person-booth:before{content:"\f756"}.fa-phabricator:before{content:"\f3db"}.fa-phoenix-framework:before{content:"\f3dc"}.fa-phoenix-squadron:before{content:"\f511"}.fa-phone:before{content:"\f095"}.fa-phone-alt:before{content:"\f879"}.fa-phone-slash:before{content:"\f3dd"}.fa-phone-square:before{content:"\f098"}.fa-phone-square-alt:before{content:"\f87b"}.fa-phone-volume:before{content:"\f2a0"}.fa-photo-video:before{content:"\f87c"}.fa-php:before{content:"\f457"}.fa-pied-piper:before{content:"\f2ae"}.fa-pied-piper-alt:before{content:"\f1a8"}.fa-pied-piper-hat:before{content:"\f4e5"}.fa-pied-piper-pp:before{content:"\f1a7"}.fa-piggy-bank:before{content:"\f4d3"}.fa-pills:before{content:"\f484"}.fa-pinterest:before{content:"\f0d2"}.fa-pinterest-p:before{content:"\f231"}.fa-pinterest-square:before{content:"\f0d3"}.fa-pizza-slice:before{content:"\f818"}.fa-place-of-worship:before{content:"\f67f"}.fa-plane:before{content:"\f072"}.fa-plane-arrival:before{content:"\f5af"}.fa-plane-departure:before{content:"\f5b0"}.fa-play:before{content:"\f04b"}.fa-play-circle:before{content:"\f144"}.fa-playstation:before{content:"\f3df"}.fa-plug:before{content:"\f1e6"}.fa-plus:before{content:"\f067"}.fa-plus-circle:before{content:"\f055"}.fa-plus-square:before{content:"\f0fe"}.fa-podcast:before{content:"\f2ce"}.fa-poll:before{content:"\f681"}.fa-poll-h:before{content:"\f682"}.fa-poo:before{content:"\f2fe"}.fa-poo-storm:before{content:"\f75a"}.fa-poop:before{content:"\f619"}.fa-portrait:before{content:"\f3e0"}.fa-pound-sign:before{content:"\f154"}.fa-power-off:before{content:"\f011"}.fa-pray:before{content:"\f683"}.fa-praying-hands:before{content:"\f684"}.fa-prescription:before{content:"\f5b1"}.fa-prescription-bottle:before{content:"\f485"}.fa-prescription-bottle-alt:before{content:"\f486"}.fa-print:before{content:"\f02f"}.fa-procedures:before{content:"\f487"}.fa-product-hunt:before{content:"\f288"}.fa-project-diagram:before{content:"\f542"}.fa-pushed:before{content:"\f3e1"}.fa-puzzle-piece:before{content:"\f12e"}.fa-python:before{content:"\f3e2"}.fa-qq:before{content:"\f1d6"}.fa-qrcode:before{content:"\f029"}.fa-question:before{content:"\f128"}.fa-question-circle:before{content:"\f059"}.fa-quidditch:before{content:"\f458"}.fa-quinscape:before{content:"\f459"}.fa-quora:before{content:"\f2c4"}.fa-quote-left:before{content:"\f10d"}.fa-quote-right:before{content:"\f10e"}.fa-quran:before{content:"\f687"}.fa-r-project:before{content:"\f4f7"}.fa-radiation:before{content:"\f7b9"}.fa-radiation-alt:before{content:"\f7ba"}.fa-rainbow:before{content:"\f75b"}.fa-random:before{content:"\f074"}.fa-raspberry-pi:before{content:"\f7bb"}.fa-ravelry:before{content:"\f2d9"}.fa-react:before{content:"\f41b"}.fa-reacteurope:before{content:"\f75d"}.fa-readme:before{content:"\f4d5"}.fa-rebel:before{content:"\f1d0"}.fa-receipt:before{content:"\f543"}.fa-recycle:before{content:"\f1b8"}.fa-red-river:before{content:"\f3e3"}.fa-reddit:before{content:"\f1a1"}.fa-reddit-alien:before{content:"\f281"}.fa-reddit-square:before{content:"\f1a2"}.fa-redhat:before{content:"\f7bc"}.fa-redo:before{content:"\f01e"}.fa-redo-alt:before{content:"\f2f9"}.fa-registered:before{content:"\f25d"}.fa-remove-format:before{content:"\f87d"}.fa-renren:before{content:"\f18b"}.fa-reply:before{content:"\f3e5"}.fa-reply-all:before{content:"\f122"}.fa-replyd:before{content:"\f3e6"}.fa-republican:before{content:"\f75e"}.fa-researchgate:before{content:"\f4f8"}.fa-resolving:before{content:"\f3e7"}.fa-restroom:before{content:"\f7bd"}.fa-retweet:before{content:"\f079"}.fa-rev:before{content:"\f5b2"}.fa-ribbon:before{content:"\f4d6"}.fa-ring:before{content:"\f70b"}.fa-road:before{content:"\f018"}.fa-robot:before{content:"\f544"}.fa-rocket:before{content:"\f135"}.fa-rocketchat:before{content:"\f3e8"}.fa-rockrms:before{content:"\f3e9"}.fa-route:before{content:"\f4d7"}.fa-rss:before{content:"\f09e"}.fa-rss-square:before{content:"\f143"}.fa-ruble-sign:before{content:"\f158"}.fa-ruler:before{content:"\f545"}.fa-ruler-combined:before{content:"\f546"}.fa-ruler-horizontal:before{content:"\f547"}.fa-ruler-vertical:before{content:"\f548"}.fa-running:before{content:"\f70c"}.fa-rupee-sign:before{content:"\f156"}.fa-sad-cry:before{content:"\f5b3"}.fa-sad-tear:before{content:"\f5b4"}.fa-safari:before{content:"\f267"}.fa-salesforce:before{content:"\f83b"}.fa-sass:before{content:"\f41e"}.fa-satellite:before{content:"\f7bf"}.fa-satellite-dish:before{content:"\f7c0"}.fa-save:before{content:"\f0c7"}.fa-schlix:before{content:"\f3ea"}.fa-school:before{content:"\f549"}.fa-screwdriver:before{content:"\f54a"}.fa-scribd:before{content:"\f28a"}.fa-scroll:before{content:"\f70e"}.fa-sd-card:before{content:"\f7c2"}.fa-search:before{content:"\f002"}.fa-search-dollar:before{content:"\f688"}.fa-search-location:before{content:"\f689"}.fa-search-minus:before{content:"\f010"}.fa-search-plus:before{content:"\f00e"}.fa-searchengin:before{content:"\f3eb"}.fa-seedling:before{content:"\f4d8"}.fa-sellcast:before{content:"\f2da"}.fa-sellsy:before{content:"\f213"}.fa-server:before{content:"\f233"}.fa-servicestack:before{content:"\f3ec"}.fa-shapes:before{content:"\f61f"}.fa-share:before{content:"\f064"}.fa-share-alt:before{content:"\f1e0"}.fa-share-alt-square:before{content:"\f1e1"}.fa-share-square:before{content:"\f14d"}.fa-shekel-sign:before{content:"\f20b"}.fa-shield-alt:before{content:"\f3ed"}.fa-ship:before{content:"\f21a"}.fa-shipping-fast:before{content:"\f48b"}.fa-shirtsinbulk:before{content:"\f214"}.fa-shoe-prints:before{content:"\f54b"}.fa-shopping-bag:before{content:"\f290"}.fa-shopping-basket:before{content:"\f291"}.fa-shopping-cart:before{content:"\f07a"}.fa-shopware:before{content:"\f5b5"}.fa-shower:before{content:"\f2cc"}.fa-shuttle-van:before{content:"\f5b6"}.fa-sign:before{content:"\f4d9"}.fa-sign-in-alt:before{content:"\f2f6"}.fa-sign-language:before{content:"\f2a7"}.fa-sign-out-alt:before{content:"\f2f5"}.fa-signal:before{content:"\f012"}.fa-signature:before{content:"\f5b7"}.fa-sim-card:before{content:"\f7c4"}.fa-simplybuilt:before{content:"\f215"}.fa-sistrix:before{content:"\f3ee"}.fa-sitemap:before{content:"\f0e8"}.fa-sith:before{content:"\f512"}.fa-skating:before{content:"\f7c5"}.fa-sketch:before{content:"\f7c6"}.fa-skiing:before{content:"\f7c9"}.fa-skiing-nordic:before{content:"\f7ca"}.fa-skull:before{content:"\f54c"}.fa-skull-crossbones:before{content:"\f714"}.fa-skyatlas:before{content:"\f216"}.fa-skype:before{content:"\f17e"}.fa-slack:before{content:"\f198"}.fa-slack-hash:before{content:"\f3ef"}.fa-slash:before{content:"\f715"}.fa-sleigh:before{content:"\f7cc"}.fa-sliders-h:before{content:"\f1de"}.fa-slideshare:before{content:"\f1e7"}.fa-smile:before{content:"\f118"}.fa-smile-beam:before{content:"\f5b8"}.fa-smile-wink:before{content:"\f4da"}.fa-smog:before{content:"\f75f"}.fa-smoking:before{content:"\f48d"}.fa-smoking-ban:before{content:"\f54d"}.fa-sms:before{content:"\f7cd"}.fa-snapchat:before{content:"\f2ab"}.fa-snapchat-ghost:before{content:"\f2ac"}.fa-snapchat-square:before{content:"\f2ad"}.fa-snowboarding:before{content:"\f7ce"}.fa-snowflake:before{content:"\f2dc"}.fa-snowman:before{content:"\f7d0"}.fa-snowplow:before{content:"\f7d2"}.fa-socks:before{content:"\f696"}.fa-solar-panel:before{content:"\f5ba"}.fa-sort:before{content:"\f0dc"}.fa-sort-alpha-down:before{content:"\f15d"}.fa-sort-alpha-down-alt:before{content:"\f881"}.fa-sort-alpha-up:before{content:"\f15e"}.fa-sort-alpha-up-alt:before{content:"\f882"}.fa-sort-amount-down:before{content:"\f160"}.fa-sort-amount-down-alt:before{content:"\f884"}.fa-sort-amount-up:before{content:"\f161"}.fa-sort-amount-up-alt:before{content:"\f885"}.fa-sort-down:before{content:"\f0dd"}.fa-sort-numeric-down:before{content:"\f162"}.fa-sort-numeric-down-alt:before{content:"\f886"}.fa-sort-numeric-up:before{content:"\f163"}.fa-sort-numeric-up-alt:before{content:"\f887"}.fa-sort-up:before{content:"\f0de"}.fa-soundcloud:before{content:"\f1be"}.fa-sourcetree:before{content:"\f7d3"}.fa-spa:before{content:"\f5bb"}.fa-space-shuttle:before{content:"\f197"}.fa-speakap:before{content:"\f3f3"}.fa-speaker-deck:before{content:"\f83c"}.fa-spell-check:before{content:"\f891"}.fa-spider:before{content:"\f717"}.fa-spinner:before{content:"\f110"}.fa-splotch:before{content:"\f5bc"}.fa-spotify:before{content:"\f1bc"}.fa-spray-can:before{content:"\f5bd"}.fa-square:before{content:"\f0c8"}.fa-square-full:before{content:"\f45c"}.fa-square-root-alt:before{content:"\f698"}.fa-squarespace:before{content:"\f5be"}.fa-stack-exchange:before{content:"\f18d"}.fa-stack-overflow:before{content:"\f16c"}.fa-stackpath:before{content:"\f842"}.fa-stamp:before{content:"\f5bf"}.fa-star:before{content:"\f005"}.fa-star-and-crescent:before{content:"\f699"}.fa-star-half:before{content:"\f089"}.fa-star-half-alt:before{content:"\f5c0"}.fa-star-of-david:before{content:"\f69a"}.fa-star-of-life:before{content:"\f621"}.fa-staylinked:before{content:"\f3f5"}.fa-steam:before{content:"\f1b6"}.fa-steam-square:before{content:"\f1b7"}.fa-steam-symbol:before{content:"\f3f6"}.fa-step-backward:before{content:"\f048"}.fa-step-forward:before{content:"\f051"}.fa-stethoscope:before{content:"\f0f1"}.fa-sticker-mule:before{content:"\f3f7"}.fa-sticky-note:before{content:"\f249"}.fa-stop:before{content:"\f04d"}.fa-stop-circle:before{content:"\f28d"}.fa-stopwatch:before{content:"\f2f2"}.fa-store:before{content:"\f54e"}.fa-store-alt:before{content:"\f54f"}.fa-strava:before{content:"\f428"}.fa-stream:before{content:"\f550"}.fa-street-view:before{content:"\f21d"}.fa-strikethrough:before{content:"\f0cc"}.fa-stripe:before{content:"\f429"}.fa-stripe-s:before{content:"\f42a"}.fa-stroopwafel:before{content:"\f551"}.fa-studiovinari:before{content:"\f3f8"}.fa-stumbleupon:before{content:"\f1a4"}.fa-stumbleupon-circle:before{content:"\f1a3"}.fa-subscript:before{content:"\f12c"}.fa-subway:before{content:"\f239"}.fa-suitcase:before{content:"\f0f2"}.fa-suitcase-rolling:before{content:"\f5c1"}.fa-sun:before{content:"\f185"}.fa-superpowers:before{content:"\f2dd"}.fa-superscript:before{content:"\f12b"}.fa-supple:before{content:"\f3f9"}.fa-surprise:before{content:"\f5c2"}.fa-suse:before{content:"\f7d6"}.fa-swatchbook:before{content:"\f5c3"}.fa-swimmer:before{content:"\f5c4"}.fa-swimming-pool:before{content:"\f5c5"}.fa-symfony:before{content:"\f83d"}.fa-synagogue:before{content:"\f69b"}.fa-sync:before{content:"\f021"}.fa-sync-alt:before{content:"\f2f1"}.fa-syringe:before{content:"\f48e"}.fa-table:before{content:"\f0ce"}.fa-table-tennis:before{content:"\f45d"}.fa-tablet:before{content:"\f10a"}.fa-tablet-alt:before{content:"\f3fa"}.fa-tablets:before{content:"\f490"}.fa-tachometer-alt:before{content:"\f3fd"}.fa-tag:before{content:"\f02b"}.fa-tags:before{content:"\f02c"}.fa-tape:before{content:"\f4db"}.fa-tasks:before{content:"\f0ae"}.fa-taxi:before{content:"\f1ba"}.fa-teamspeak:before{content:"\f4f9"}.fa-teeth:before{content:"\f62e"}.fa-teeth-open:before{content:"\f62f"}.fa-telegram:before{content:"\f2c6"}.fa-telegram-plane:before{content:"\f3fe"}.fa-temperature-high:before{content:"\f769"}.fa-temperature-low:before{content:"\f76b"}.fa-tencent-weibo:before{content:"\f1d5"}.fa-tenge:before{content:"\f7d7"}.fa-terminal:before{content:"\f120"}.fa-text-height:before{content:"\f034"}.fa-text-width:before{content:"\f035"}.fa-th:before{content:"\f00a"}.fa-th-large:before{content:"\f009"}.fa-th-list:before{content:"\f00b"}.fa-the-red-yeti:before{content:"\f69d"}.fa-theater-masks:before{content:"\f630"}.fa-themeco:before{content:"\f5c6"}.fa-themeisle:before{content:"\f2b2"}.fa-thermometer:before{content:"\f491"}.fa-thermometer-empty:before{content:"\f2cb"}.fa-thermometer-full:before{content:"\f2c7"}.fa-thermometer-half:before{content:"\f2c9"}.fa-thermometer-quarter:before{content:"\f2ca"}.fa-thermometer-three-quarters:before{content:"\f2c8"}.fa-think-peaks:before{content:"\f731"}.fa-thumbs-down:before{content:"\f165"}.fa-thumbs-up:before{content:"\f164"}.fa-thumbtack:before{content:"\f08d"}.fa-ticket-alt:before{content:"\f3ff"}.fa-times:before{content:"\f00d"}.fa-times-circle:before{content:"\f057"}.fa-tint:before{content:"\f043"}.fa-tint-slash:before{content:"\f5c7"}.fa-tired:before{content:"\f5c8"}.fa-toggle-off:before{content:"\f204"}.fa-toggle-on:before{content:"\f205"}.fa-toilet:before{content:"\f7d8"}.fa-toilet-paper:before{content:"\f71e"}.fa-toolbox:before{content:"\f552"}.fa-tools:before{content:"\f7d9"}.fa-tooth:before{content:"\f5c9"}.fa-torah:before{content:"\f6a0"}.fa-torii-gate:before{content:"\f6a1"}.fa-tractor:before{content:"\f722"}.fa-trade-federation:before{content:"\f513"}.fa-trademark:before{content:"\f25c"}.fa-traffic-light:before{content:"\f637"}.fa-train:before{content:"\f238"}.fa-tram:before{content:"\f7da"}.fa-transgender:before{content:"\f224"}.fa-transgender-alt:before{content:"\f225"}.fa-trash:before{content:"\f1f8"}.fa-trash-alt:before{content:"\f2ed"}.fa-trash-restore:before{content:"\f829"}.fa-trash-restore-alt:before{content:"\f82a"}.fa-tree:before{content:"\f1bb"}.fa-trello:before{content:"\f181"}.fa-tripadvisor:before{content:"\f262"}.fa-trophy:before{content:"\f091"}.fa-truck:before{content:"\f0d1"}.fa-truck-loading:before{content:"\f4de"}.fa-truck-monster:before{content:"\f63b"}.fa-truck-moving:before{content:"\f4df"}.fa-truck-pickup:before{content:"\f63c"}.fa-tshirt:before{content:"\f553"}.fa-tty:before{content:"\f1e4"}.fa-tumblr:before{content:"\f173"}.fa-tumblr-square:before{content:"\f174"}.fa-tv:before{content:"\f26c"}.fa-twitch:before{content:"\f1e8"}.fa-twitter:before{content:"\f099"}.fa-twitter-square:before{content:"\f081"}.fa-typo3:before{content:"\f42b"}.fa-uber:before{content:"\f402"}.fa-ubuntu:before{content:"\f7df"}.fa-uikit:before{content:"\f403"}.fa-umbrella:before{content:"\f0e9"}.fa-umbrella-beach:before{content:"\f5ca"}.fa-underline:before{content:"\f0cd"}.fa-undo:before{content:"\f0e2"}.fa-undo-alt:before{content:"\f2ea"}.fa-uniregistry:before{content:"\f404"}.fa-universal-access:before{content:"\f29a"}.fa-university:before{content:"\f19c"}.fa-unlink:before{content:"\f127"}.fa-unlock:before{content:"\f09c"}.fa-unlock-alt:before{content:"\f13e"}.fa-untappd:before{content:"\f405"}.fa-upload:before{content:"\f093"}.fa-ups:before{content:"\f7e0"}.fa-usb:before{content:"\f287"}.fa-user:before{content:"\f007"}.fa-user-alt:before{content:"\f406"}.fa-user-alt-slash:before{content:"\f4fa"}.fa-user-astronaut:before{content:"\f4fb"}.fa-user-check:before{content:"\f4fc"}.fa-user-circle:before{content:"\f2bd"}.fa-user-clock:before{content:"\f4fd"}.fa-user-cog:before{content:"\f4fe"}.fa-user-edit:before{content:"\f4ff"}.fa-user-friends:before{content:"\f500"}.fa-user-graduate:before{content:"\f501"}.fa-user-injured:before{content:"\f728"}.fa-user-lock:before{content:"\f502"}.fa-user-md:before{content:"\f0f0"}.fa-user-minus:before{content:"\f503"}.fa-user-ninja:before{content:"\f504"}.fa-user-nurse:before{content:"\f82f"}.fa-user-plus:before{content:"\f234"}.fa-user-secret:before{content:"\f21b"}.fa-user-shield:before{content:"\f505"}.fa-user-slash:before{content:"\f506"}.fa-user-tag:before{content:"\f507"}.fa-user-tie:before{content:"\f508"}.fa-user-times:before{content:"\f235"}.fa-users:before{content:"\f0c0"}.fa-users-cog:before{content:"\f509"}.fa-usps:before{content:"\f7e1"}.fa-ussunnah:before{content:"\f407"}.fa-utensil-spoon:before{content:"\f2e5"}.fa-utensils:before{content:"\f2e7"}.fa-vaadin:before{content:"\f408"}.fa-vector-square:before{content:"\f5cb"}.fa-venus:before{content:"\f221"}.fa-venus-double:before{content:"\f226"}.fa-venus-mars:before{content:"\f228"}.fa-viacoin:before{content:"\f237"}.fa-viadeo:before{content:"\f2a9"}.fa-viadeo-square:before{content:"\f2aa"}.fa-vial:before{content:"\f492"}.fa-vials:before{content:"\f493"}.fa-viber:before{content:"\f409"}.fa-video:before{content:"\f03d"}.fa-video-slash:before{content:"\f4e2"}.fa-vihara:before{content:"\f6a7"}.fa-vimeo:before{content:"\f40a"}.fa-vimeo-square:before{content:"\f194"}.fa-vimeo-v:before{content:"\f27d"}.fa-vine:before{content:"\f1ca"}.fa-vk:before{content:"\f189"}.fa-vnv:before{content:"\f40b"}.fa-voicemail:before{content:"\f897"}.fa-volleyball-ball:before{content:"\f45f"}.fa-volume-down:before{content:"\f027"}.fa-volume-mute:before{content:"\f6a9"}.fa-volume-off:before{content:"\f026"}.fa-volume-up:before{content:"\f028"}.fa-vote-yea:before{content:"\f772"}.fa-vr-cardboard:before{content:"\f729"}.fa-vuejs:before{content:"\f41f"}.fa-walking:before{content:"\f554"}.fa-wallet:before{content:"\f555"}.fa-warehouse:before{content:"\f494"}.fa-water:before{content:"\f773"}.fa-wave-square:before{content:"\f83e"}.fa-waze:before{content:"\f83f"}.fa-weebly:before{content:"\f5cc"}.fa-weibo:before{content:"\f18a"}.fa-weight:before{content:"\f496"}.fa-weight-hanging:before{content:"\f5cd"}.fa-weixin:before{content:"\f1d7"}.fa-whatsapp:before{content:"\f232"}.fa-whatsapp-square:before{content:"\f40c"}.fa-wheelchair:before{content:"\f193"}.fa-whmcs:before{content:"\f40d"}.fa-wifi:before{content:"\f1eb"}.fa-wikipedia-w:before{content:"\f266"}.fa-wind:before{content:"\f72e"}.fa-window-close:before{content:"\f410"}.fa-window-maximize:before{content:"\f2d0"}.fa-window-minimize:before{content:"\f2d1"}.fa-window-restore:before{content:"\f2d2"}.fa-windows:before{content:"\f17a"}.fa-wine-bottle:before{content:"\f72f"}.fa-wine-glass:before{content:"\f4e3"}.fa-wine-glass-alt:before{content:"\f5ce"}.fa-wix:before{content:"\f5cf"}.fa-wizards-of-the-coast:before{content:"\f730"}.fa-wolf-pack-battalion:before{content:"\f514"}.fa-won-sign:before{content:"\f159"}.fa-wordpress:before{content:"\f19a"}.fa-wordpress-simple:before{content:"\f411"}.fa-wpbeginner:before{content:"\f297"}.fa-wpexplorer:before{content:"\f2de"}.fa-wpforms:before{content:"\f298"}.fa-wpressr:before{content:"\f3e4"}.fa-wrench:before{content:"\f0ad"}.fa-x-ray:before{content:"\f497"}.fa-xbox:before{content:"\f412"}.fa-xing:before{content:"\f168"}.fa-xing-square:before{content:"\f169"}.fa-y-combinator:before{content:"\f23b"}.fa-yahoo:before{content:"\f19e"}.fa-yammer:before{content:"\f840"}.fa-yandex:before{content:"\f413"}.fa-yandex-international:before{content:"\f414"}.fa-yarn:before{content:"\f7e3"}.fa-yelp:before{content:"\f1e9"}.fa-yen-sign:before{content:"\f157"}.fa-yin-yang:before{content:"\f6ad"}.fa-yoast:before{content:"\f2b1"}.fa-youtube:before{content:"\f167"}.fa-youtube-square:before{content:"\f431"}.fa-zhihu:before{content:"\f63f"}.sr-only{border:0;clip:rect(0,0,0,0);height:1px;margin:-1px;overflow:hidden;padding:0;position:absolute;width:1px}.sr-only-focusable:active,.sr-only-focusable:focus{clip:auto;height:auto;margin:0;overflow:visible;position:static;width:auto}@font-face{font-family:"Font Awesome 5 Free";font-style:normal;font-weight:400;font-display:auto;src:url(fa-regular-400.eot);src:url(fa-regular-400.eot?#iefix) format("embedded-opentype"),url(fa-regular-400.woff) format("woff")}.far{font-weight:400}@font-face{font-family:"Font Awesome 5 Free";font-style:normal;font-weight:900;font-display:auto;src:url(fa-solid-900.eot);src:url(fa-solid-900.eot?#iefix) format("embedded-opentype"),url(fa-solid-900.woff) format("woff")}.fa,.far,.fas{font-family:"Font Awesome 5 Free"}.fa,.fas{font-weight:900} \ No newline at end of file +.fa{font-family:"Font Awesome 6 Free";font-weight:900}.fa,.fa-brands,.fa-duotone,.fa-light,.fa-regular,.fa-solid,.fa-thin,.fab,.fad,.fal,.far,.fas,.fat{-moz-osx-font-smoothing:grayscale;-webkit-font-smoothing:antialiased;display:inline-block;font-style:normal;font-variant:normal;line-height:1;text-rendering:auto}.fa-1x{font-size:1em}.fa-2x{font-size:2em}.fa-3x{font-size:3em}.fa-4x{font-size:4em}.fa-5x{font-size:5em}.fa-6x{font-size:6em}.fa-7x{font-size:7em}.fa-8x{font-size:8em}.fa-9x{font-size:9em}.fa-10x{font-size:10em}.fa-2xs{font-size:.625em;line-height:.1em;vertical-align:.225em}.fa-xs{font-size:.75em;line-height:.08333em;vertical-align:.125em}.fa-sm{font-size:.875em;line-height:.07143em;vertical-align:.05357em}.fa-lg{font-size:1.25em;line-height:.05em;vertical-align:-.075em}.fa-xl{font-size:1.5em;line-height:.04167em;vertical-align:-.125em}.fa-2xl{font-size:2em;line-height:.03125em;vertical-align:-.1875em}.fa-fw{text-align:center;width:1.25em}.fa-ul{list-style-type:none;margin-left:2.5em;padding-left:0}.fa-ul>li{position:relative}.fa-li{left:calc( 2em*-1);position:absolute;text-align:center;width:2em;line-height:inherit}.fa-border{border-radius:.1em;border:.08em solid #eee;padding:.2em .25em .15em}.fa-pull-left{float:left;margin-right:.3em}.fa-pull-right{float:right;margin-left:.3em}.fa-beat{-webkit-animation-name:fa-beat;animation-name:fa-beat;-webkit-animation-delay:0;animation-delay:0;-webkit-animation-direction:normal;animation-direction:normal;-webkit-animation-duration:1s;animation-duration:1s;-webkit-animation-iteration-count:infinite;animation-iteration-count:infinite;-webkit-animation-timing-function:ease-in-out;animation-timing-function:ease-in-out}.fa-bounce{-webkit-animation-name:fa-bounce;animation-name:fa-bounce;-webkit-animation-delay:0;animation-delay:0;-webkit-animation-direction:normal;animation-direction:normal;-webkit-animation-duration:1s;animation-duration:1s;-webkit-animation-iteration-count:infinite;animation-iteration-count:infinite;-webkit-animation-timing-function:cubic-bezier(.28,.84,.42,1);animation-timing-function:cubic-bezier(.28,.84,.42,1)}.fa-fade{-webkit-animation-name:fa-fade;animation-name:fa-fade;-webkit-animation-iteration-count:infinite;animation-iteration-count:infinite;-webkit-animation-timing-function:cubic-bezier(.4,0,.6,1);animation-timing-function:cubic-bezier(.4,0,.6,1)}.fa-beat-fade,.fa-fade{-webkit-animation-delay:0;animation-delay:0;-webkit-animation-direction:normal;animation-direction:normal;-webkit-animation-duration:1s;animation-duration:1s}.fa-beat-fade{-webkit-animation-name:fa-beat-fade;animation-name:fa-beat-fade;-webkit-animation-iteration-count:infinite;animation-iteration-count:infinite;-webkit-animation-timing-function:cubic-bezier(.4,0,.6,1);animation-timing-function:cubic-bezier(.4,0,.6,1)}.fa-flip{-webkit-animation-name:fa-flip;animation-name:fa-flip;-webkit-animation-delay:0;animation-delay:0;-webkit-animation-direction:normal;animation-direction:normal;-webkit-animation-duration:1s;animation-duration:1s;-webkit-animation-iteration-count:infinite;animation-iteration-count:infinite;-webkit-animation-timing-function:ease-in-out;animation-timing-function:ease-in-out}.fa-shake{-webkit-animation-name:fa-shake;animation-name:fa-shake;-webkit-animation-duration:1s;animation-duration:1s;-webkit-animation-iteration-count:infinite;animation-iteration-count:infinite;-webkit-animation-timing-function:linear;animation-timing-function:linear}.fa-shake,.fa-spin{-webkit-animation-delay:0;animation-delay:0;-webkit-animation-direction:normal;animation-direction:normal}.fa-spin{-webkit-animation-name:fa-spin;animation-name:fa-spin;-webkit-animation-duration:2s;animation-duration:2s;-webkit-animation-iteration-count:infinite;animation-iteration-count:infinite;-webkit-animation-timing-function:linear;animation-timing-function:linear}.fa-spin-reverse{--fa-animation-direction:reverse}.fa-pulse,.fa-spin-pulse{-webkit-animation-name:fa-spin;animation-name:fa-spin;-webkit-animation-direction:normal;animation-direction:normal;-webkit-animation-duration:1s;animation-duration:1s;-webkit-animation-iteration-count:infinite;animation-iteration-count:infinite;-webkit-animation-timing-function:steps(8);animation-timing-function:steps(8)}@media (prefers-reduced-motion:reduce){.fa-beat,.fa-beat-fade,.fa-bounce,.fa-fade,.fa-flip,.fa-pulse,.fa-shake,.fa-spin,.fa-spin-pulse{-webkit-animation-delay:-1ms;animation-delay:-1ms;-webkit-animation-duration:1ms;animation-duration:1ms;-webkit-animation-iteration-count:1;animation-iteration-count:1;transition-delay:0s;transition-duration:0s}}@-webkit-keyframes fa-beat{0%,90%{-webkit-transform:scale(1);transform:scale(1)}45%{-webkit-transform:scale(1.25);transform:scale(1.25)}}@keyframes fa-beat{0%,90%{-webkit-transform:scale(1);transform:scale(1)}45%{-webkit-transform:scale(1.25);transform:scale(1.25)}}@-webkit-keyframes fa-bounce{0%{-webkit-transform:scale(1) translateY(0);transform:scale(1) translateY(0)}10%{-webkit-transform:scale(1.1,.9) translateY(0);transform:scale(1.1,.9) translateY(0)}30%{-webkit-transform:scale(.9,1.1) translateY(-.5em);transform:scale(.9,1.1) translateY(-.5em)}50%{-webkit-transform:scale(1.05,.95) translateY(0);transform:scale(1.05,.95) translateY(0)}57%{-webkit-transform:scale(1) translateY(-.125em);transform:scale(1) translateY(-.125em)}64%{-webkit-transform:scale(1) translateY(0);transform:scale(1) translateY(0)}to{-webkit-transform:scale(1) translateY(0);transform:scale(1) translateY(0)}}@keyframes fa-bounce{0%{-webkit-transform:scale(1) translateY(0);transform:scale(1) translateY(0)}10%{-webkit-transform:scale(1.1,.9) translateY(0);transform:scale(1.1,.9) translateY(0)}30%{-webkit-transform:scale(.9,1.1) translateY(-.5em);transform:scale(.9,1.1) translateY(-.5em)}50%{-webkit-transform:scale(1.05,.95) translateY(0);transform:scale(1.05,.95) translateY(0)}57%{-webkit-transform:scale(1) translateY(-.125em);transform:scale(1) translateY(-.125em)}64%{-webkit-transform:scale(1) translateY(0);transform:scale(1) translateY(0)}to{-webkit-transform:scale(1) translateY(0);transform:scale(1) translateY(0)}}@-webkit-keyframes fa-fade{50%{opacity:.4}}@keyframes fa-fade{50%{opacity:.4}}@-webkit-keyframes fa-beat-fade{0%,to{opacity:.4;-webkit-transform:scale(1);transform:scale(1)}50%{opacity:1;-webkit-transform:scale(1.125);transform:scale(1.125)}}@keyframes fa-beat-fade{0%,to{opacity:.4;-webkit-transform:scale(1);transform:scale(1)}50%{opacity:1;-webkit-transform:scale(1.125);transform:scale(1.125)}}@-webkit-keyframes fa-flip{50%{-webkit-transform:rotate3d(0,1,0,-180deg);transform:rotate3d(0,1,0,-180deg)}}@keyframes fa-flip{50%{-webkit-transform:rotate3d(0,1,0,-180deg);transform:rotate3d(0,1,0,-180deg)}}@-webkit-keyframes fa-shake{0%{-webkit-transform:rotate(-15deg);transform:rotate(-15deg)}4%{-webkit-transform:rotate(15deg);transform:rotate(15deg)}8%,24%{-webkit-transform:rotate(-18deg);transform:rotate(-18deg)}12%,28%{-webkit-transform:rotate(18deg);transform:rotate(18deg)}16%{-webkit-transform:rotate(-22deg);transform:rotate(-22deg)}20%{-webkit-transform:rotate(22deg);transform:rotate(22deg)}32%{-webkit-transform:rotate(-12deg);transform:rotate(-12deg)}36%{-webkit-transform:rotate(12deg);transform:rotate(12deg)}40%,to{-webkit-transform:rotate(0deg);transform:rotate(0deg)}}@keyframes fa-shake{0%{-webkit-transform:rotate(-15deg);transform:rotate(-15deg)}4%{-webkit-transform:rotate(15deg);transform:rotate(15deg)}8%,24%{-webkit-transform:rotate(-18deg);transform:rotate(-18deg)}12%,28%{-webkit-transform:rotate(18deg);transform:rotate(18deg)}16%{-webkit-transform:rotate(-22deg);transform:rotate(-22deg)}20%{-webkit-transform:rotate(22deg);transform:rotate(22deg)}32%{-webkit-transform:rotate(-12deg);transform:rotate(-12deg)}36%{-webkit-transform:rotate(12deg);transform:rotate(12deg)}40%,to{-webkit-transform:rotate(0deg);transform:rotate(0deg)}}@-webkit-keyframes fa-spin{0%{-webkit-transform:rotate(0deg);transform:rotate(0deg)}to{-webkit-transform:rotate(1turn);transform:rotate(1turn)}}@keyframes fa-spin{0%{-webkit-transform:rotate(0deg);transform:rotate(0deg)}to{-webkit-transform:rotate(1turn);transform:rotate(1turn)}}.fa-rotate-90{-ms-filter: "progid:DXImageTransform.Microsoft.BasicImage(rotation=1)";-webkit-transform:rotate(90deg);transform:rotate(90deg)}.fa-rotate-180{-ms-filter: "progid:DXImageTransform.Microsoft.BasicImage(rotation=2)";-webkit-transform:rotate(180deg);transform:rotate(180deg)}.fa-rotate-270{-ms-filter: "progid:DXImageTransform.Microsoft.BasicImage(rotation=3)";-webkit-transform:rotate(270deg);transform:rotate(270deg)}.fa-flip-horizontal{-webkit-transform:scaleX(-1);transform:scaleX(-1)}.fa-flip-vertical{-webkit-transform:scaleY(-1);transform:scaleY(-1)}.fa-flip-both,.fa-flip-horizontal.fa-flip-vertical{-webkit-transform:scale(-1);transform:scale(-1)}.fa-rotate-by{-webkit-transform:rotate(none);transform:rotate(none)}.fa-stack{display:inline-block;height:2em;line-height:2em;position:relative;vertical-align:middle;width:2.5em}.fa-stack-1x,.fa-stack-2x{left:0;position:absolute;text-align:center;width:100%;z-index:auto}.fa-stack-1x{line-height:inherit}.fa-stack-2x{font-size:2em}.fa-inverse{color:#fff}.fa-0:before{content:"\30"}.fa-1:before{content:"\31"}.fa-2:before{content:"\32"}.fa-3:before{content:"\33"}.fa-4:before{content:"\34"}.fa-5:before{content:"\35"}.fa-6:before{content:"\36"}.fa-7:before{content:"\37"}.fa-8:before{content:"\38"}.fa-9:before{content:"\39"}.fa-a:before{content:"\41"}.fa-address-book:before,.fa-contact-book:before{content:"\f2b9"}.fa-address-card:before,.fa-contact-card:before,.fa-vcard:before{content:"\f2bb"}.fa-align-center:before{content:"\f037"}.fa-align-justify:before{content:"\f039"}.fa-align-left:before{content:"\f036"}.fa-align-right:before{content:"\f038"}.fa-anchor:before{content:"\f13d"}.fa-anchor-circle-check:before{content:"\e4aa"}.fa-anchor-circle-exclamation:before{content:"\e4ab"}.fa-anchor-circle-xmark:before{content:"\e4ac"}.fa-anchor-lock:before{content:"\e4ad"}.fa-angle-down:before{content:"\f107"}.fa-angle-left:before{content:"\f104"}.fa-angle-right:before{content:"\f105"}.fa-angle-up:before{content:"\f106"}.fa-angle-double-down:before,.fa-angles-down:before{content:"\f103"}.fa-angle-double-left:before,.fa-angles-left:before{content:"\f100"}.fa-angle-double-right:before,.fa-angles-right:before{content:"\f101"}.fa-angle-double-up:before,.fa-angles-up:before{content:"\f102"}.fa-ankh:before{content:"\f644"}.fa-apple-alt:before,.fa-apple-whole:before{content:"\f5d1"}.fa-archway:before{content:"\f557"}.fa-arrow-down:before{content:"\f063"}.fa-arrow-down-1-9:before,.fa-sort-numeric-asc:before,.fa-sort-numeric-down:before{content:"\f162"}.fa-arrow-down-9-1:before,.fa-sort-numeric-desc:before,.fa-sort-numeric-down-alt:before{content:"\f886"}.fa-arrow-down-a-z:before,.fa-sort-alpha-asc:before,.fa-sort-alpha-down:before{content:"\f15d"}.fa-arrow-down-long:before,.fa-long-arrow-down:before{content:"\f175"}.fa-arrow-down-short-wide:before,.fa-sort-amount-desc:before,.fa-sort-amount-down-alt:before{content:"\f884"}.fa-arrow-down-up-across-line:before{content:"\e4af"}.fa-arrow-down-up-lock:before{content:"\e4b0"}.fa-arrow-down-wide-short:before,.fa-sort-amount-asc:before,.fa-sort-amount-down:before{content:"\f160"}.fa-arrow-down-z-a:before,.fa-sort-alpha-desc:before,.fa-sort-alpha-down-alt:before{content:"\f881"}.fa-arrow-left:before{content:"\f060"}.fa-arrow-left-long:before,.fa-long-arrow-left:before{content:"\f177"}.fa-arrow-pointer:before,.fa-mouse-pointer:before{content:"\f245"}.fa-arrow-right:before{content:"\f061"}.fa-arrow-right-arrow-left:before,.fa-exchange:before{content:"\f0ec"}.fa-arrow-right-from-bracket:before,.fa-sign-out:before{content:"\f08b"}.fa-arrow-right-long:before,.fa-long-arrow-right:before{content:"\f178"}.fa-arrow-right-to-bracket:before,.fa-sign-in:before{content:"\f090"}.fa-arrow-right-to-city:before{content:"\e4b3"}.fa-arrow-left-rotate:before,.fa-arrow-rotate-back:before,.fa-arrow-rotate-backward:before,.fa-arrow-rotate-left:before,.fa-undo:before{content:"\f0e2"}.fa-arrow-right-rotate:before,.fa-arrow-rotate-forward:before,.fa-arrow-rotate-right:before,.fa-redo:before{content:"\f01e"}.fa-arrow-trend-down:before{content:"\e097"}.fa-arrow-trend-up:before{content:"\e098"}.fa-arrow-turn-down:before,.fa-level-down:before{content:"\f149"}.fa-arrow-turn-up:before,.fa-level-up:before{content:"\f148"}.fa-arrow-up:before{content:"\f062"}.fa-arrow-up-1-9:before,.fa-sort-numeric-up:before{content:"\f163"}.fa-arrow-up-9-1:before,.fa-sort-numeric-up-alt:before{content:"\f887"}.fa-arrow-up-a-z:before,.fa-sort-alpha-up:before{content:"\f15e"}.fa-arrow-up-from-bracket:before{content:"\e09a"}.fa-arrow-up-from-ground-water:before{content:"\e4b5"}.fa-arrow-up-from-water-pump:before{content:"\e4b6"}.fa-arrow-up-long:before,.fa-long-arrow-up:before{content:"\f176"}.fa-arrow-up-right-dots:before{content:"\e4b7"}.fa-arrow-up-right-from-square:before,.fa-external-link:before{content:"\f08e"}.fa-arrow-up-short-wide:before,.fa-sort-amount-up-alt:before{content:"\f885"}.fa-arrow-up-wide-short:before,.fa-sort-amount-up:before{content:"\f161"}.fa-arrow-up-z-a:before,.fa-sort-alpha-up-alt:before{content:"\f882"}.fa-arrows-down-to-line:before{content:"\e4b8"}.fa-arrows-down-to-people:before{content:"\e4b9"}.fa-arrows-h:before,.fa-arrows-left-right:before{content:"\f07e"}.fa-arrows-left-right-to-line:before{content:"\e4ba"}.fa-arrows-rotate:before,.fa-refresh:before,.fa-sync:before{content:"\f021"}.fa-arrows-spin:before{content:"\e4bb"}.fa-arrows-split-up-and-left:before{content:"\e4bc"}.fa-arrows-to-circle:before{content:"\e4bd"}.fa-arrows-to-dot:before{content:"\e4be"}.fa-arrows-to-eye:before{content:"\e4bf"}.fa-arrows-turn-right:before{content:"\e4c0"}.fa-arrows-turn-to-dots:before{content:"\e4c1"}.fa-arrows-up-down:before,.fa-arrows-v:before{content:"\f07d"}.fa-arrows-up-down-left-right:before,.fa-arrows:before{content:"\f047"}.fa-arrows-up-to-line:before{content:"\e4c2"}.fa-asterisk:before{content:"\2a"}.fa-at:before{content:"\40"}.fa-atom:before{content:"\f5d2"}.fa-audio-description:before{content:"\f29e"}.fa-austral-sign:before{content:"\e0a9"}.fa-award:before{content:"\f559"}.fa-b:before{content:"\42"}.fa-baby:before{content:"\f77c"}.fa-baby-carriage:before,.fa-carriage-baby:before{content:"\f77d"}.fa-backward:before{content:"\f04a"}.fa-backward-fast:before,.fa-fast-backward:before{content:"\f049"}.fa-backward-step:before,.fa-step-backward:before{content:"\f048"}.fa-bacon:before{content:"\f7e5"}.fa-bacteria:before{content:"\e059"}.fa-bacterium:before{content:"\e05a"}.fa-bag-shopping:before,.fa-shopping-bag:before{content:"\f290"}.fa-bahai:before,.fa-haykal:before{content:"\f666"}.fa-baht-sign:before{content:"\e0ac"}.fa-ban:before,.fa-cancel:before{content:"\f05e"}.fa-ban-smoking:before,.fa-smoking-ban:before{content:"\f54d"}.fa-band-aid:before,.fa-bandage:before{content:"\f462"}.fa-barcode:before{content:"\f02a"}.fa-bars:before,.fa-navicon:before{content:"\f0c9"}.fa-bars-progress:before,.fa-tasks-alt:before{content:"\f828"}.fa-bars-staggered:before,.fa-reorder:before,.fa-stream:before{content:"\f550"}.fa-baseball-ball:before,.fa-baseball:before{content:"\f433"}.fa-baseball-bat-ball:before{content:"\f432"}.fa-basket-shopping:before,.fa-shopping-basket:before{content:"\f291"}.fa-basketball-ball:before,.fa-basketball:before{content:"\f434"}.fa-bath:before,.fa-bathtub:before{content:"\f2cd"}.fa-battery-0:before,.fa-battery-empty:before{content:"\f244"}.fa-battery-5:before,.fa-battery-full:before,.fa-battery:before{content:"\f240"}.fa-battery-3:before,.fa-battery-half:before{content:"\f242"}.fa-battery-2:before,.fa-battery-quarter:before{content:"\f243"}.fa-battery-4:before,.fa-battery-three-quarters:before{content:"\f241"}.fa-bed:before{content:"\f236"}.fa-bed-pulse:before,.fa-procedures:before{content:"\f487"}.fa-beer-mug-empty:before,.fa-beer:before{content:"\f0fc"}.fa-bell:before{content:"\f0f3"}.fa-bell-concierge:before,.fa-concierge-bell:before{content:"\f562"}.fa-bell-slash:before{content:"\f1f6"}.fa-bezier-curve:before{content:"\f55b"}.fa-bicycle:before{content:"\f206"}.fa-binoculars:before{content:"\f1e5"}.fa-biohazard:before{content:"\f780"}.fa-bitcoin-sign:before{content:"\e0b4"}.fa-blender:before{content:"\f517"}.fa-blender-phone:before{content:"\f6b6"}.fa-blog:before{content:"\f781"}.fa-bold:before{content:"\f032"}.fa-bolt:before,.fa-zap:before{content:"\f0e7"}.fa-bolt-lightning:before{content:"\e0b7"}.fa-bomb:before{content:"\f1e2"}.fa-bone:before{content:"\f5d7"}.fa-bong:before{content:"\f55c"}.fa-book:before{content:"\f02d"}.fa-atlas:before,.fa-book-atlas:before{content:"\f558"}.fa-bible:before,.fa-book-bible:before{content:"\f647"}.fa-book-bookmark:before{content:"\e0bb"}.fa-book-journal-whills:before,.fa-journal-whills:before{content:"\f66a"}.fa-book-medical:before{content:"\f7e6"}.fa-book-open:before{content:"\f518"}.fa-book-open-reader:before,.fa-book-reader:before{content:"\f5da"}.fa-book-quran:before,.fa-quran:before{content:"\f687"}.fa-book-dead:before,.fa-book-skull:before{content:"\f6b7"}.fa-book-tanakh:before,.fa-tanakh:before{content:"\f827"}.fa-bookmark:before{content:"\f02e"}.fa-border-all:before{content:"\f84c"}.fa-border-none:before{content:"\f850"}.fa-border-style:before,.fa-border-top-left:before{content:"\f853"}.fa-bore-hole:before{content:"\e4c3"}.fa-bottle-droplet:before{content:"\e4c4"}.fa-bottle-water:before{content:"\e4c5"}.fa-bowl-food:before{content:"\e4c6"}.fa-bowl-rice:before{content:"\e2eb"}.fa-bowling-ball:before{content:"\f436"}.fa-box:before{content:"\f466"}.fa-archive:before,.fa-box-archive:before{content:"\f187"}.fa-box-open:before{content:"\f49e"}.fa-box-tissue:before{content:"\e05b"}.fa-boxes-packing:before{content:"\e4c7"}.fa-boxes-alt:before,.fa-boxes-stacked:before,.fa-boxes:before{content:"\f468"}.fa-braille:before{content:"\f2a1"}.fa-brain:before{content:"\f5dc"}.fa-brazilian-real-sign:before{content:"\e46c"}.fa-bread-slice:before{content:"\f7ec"}.fa-bridge:before{content:"\e4c8"}.fa-bridge-circle-check:before{content:"\e4c9"}.fa-bridge-circle-exclamation:before{content:"\e4ca"}.fa-bridge-circle-xmark:before{content:"\e4cb"}.fa-bridge-lock:before{content:"\e4cc"}.fa-bridge-water:before{content:"\e4ce"}.fa-briefcase:before{content:"\f0b1"}.fa-briefcase-medical:before{content:"\f469"}.fa-broom:before{content:"\f51a"}.fa-broom-ball:before,.fa-quidditch-broom-ball:before,.fa-quidditch:before{content:"\f458"}.fa-brush:before{content:"\f55d"}.fa-bucket:before{content:"\e4cf"}.fa-bug:before{content:"\f188"}.fa-bug-slash:before{content:"\e490"}.fa-bugs:before{content:"\e4d0"}.fa-building:before{content:"\f1ad"}.fa-building-circle-arrow-right:before{content:"\e4d1"}.fa-building-circle-check:before{content:"\e4d2"}.fa-building-circle-exclamation:before{content:"\e4d3"}.fa-building-circle-xmark:before{content:"\e4d4"}.fa-bank:before,.fa-building-columns:before,.fa-institution:before,.fa-museum:before,.fa-university:before{content:"\f19c"}.fa-building-flag:before{content:"\e4d5"}.fa-building-lock:before{content:"\e4d6"}.fa-building-ngo:before{content:"\e4d7"}.fa-building-shield:before{content:"\e4d8"}.fa-building-un:before{content:"\e4d9"}.fa-building-user:before{content:"\e4da"}.fa-building-wheat:before{content:"\e4db"}.fa-bullhorn:before{content:"\f0a1"}.fa-bullseye:before{content:"\f140"}.fa-burger:before,.fa-hamburger:before{content:"\f805"}.fa-burst:before{content:"\e4dc"}.fa-bus:before{content:"\f207"}.fa-bus-alt:before,.fa-bus-simple:before{content:"\f55e"}.fa-briefcase-clock:before,.fa-business-time:before{content:"\f64a"}.fa-c:before{content:"\43"}.fa-cable-car:before,.fa-tram:before{content:"\f7da"}.fa-birthday-cake:before,.fa-cake-candles:before,.fa-cake:before{content:"\f1fd"}.fa-calculator:before{content:"\f1ec"}.fa-calendar:before{content:"\f133"}.fa-calendar-check:before{content:"\f274"}.fa-calendar-day:before{content:"\f783"}.fa-calendar-alt:before,.fa-calendar-days:before{content:"\f073"}.fa-calendar-minus:before{content:"\f272"}.fa-calendar-plus:before{content:"\f271"}.fa-calendar-week:before{content:"\f784"}.fa-calendar-times:before,.fa-calendar-xmark:before{content:"\f273"}.fa-camera-alt:before,.fa-camera:before{content:"\f030"}.fa-camera-retro:before{content:"\f083"}.fa-camera-rotate:before{content:"\e0d8"}.fa-campground:before{content:"\f6bb"}.fa-candy-cane:before{content:"\f786"}.fa-cannabis:before{content:"\f55f"}.fa-capsules:before{content:"\f46b"}.fa-automobile:before,.fa-car:before{content:"\f1b9"}.fa-battery-car:before,.fa-car-battery:before{content:"\f5df"}.fa-car-burst:before,.fa-car-crash:before{content:"\f5e1"}.fa-car-on:before{content:"\e4dd"}.fa-car-alt:before,.fa-car-rear:before{content:"\f5de"}.fa-car-side:before{content:"\f5e4"}.fa-car-tunnel:before{content:"\e4de"}.fa-caravan:before{content:"\f8ff"}.fa-caret-down:before{content:"\f0d7"}.fa-caret-left:before{content:"\f0d9"}.fa-caret-right:before{content:"\f0da"}.fa-caret-up:before{content:"\f0d8"}.fa-carrot:before{content:"\f787"}.fa-cart-arrow-down:before{content:"\f218"}.fa-cart-flatbed:before,.fa-dolly-flatbed:before{content:"\f474"}.fa-cart-flatbed-suitcase:before,.fa-luggage-cart:before{content:"\f59d"}.fa-cart-plus:before{content:"\f217"}.fa-cart-shopping:before,.fa-shopping-cart:before{content:"\f07a"}.fa-cash-register:before{content:"\f788"}.fa-cat:before{content:"\f6be"}.fa-cedi-sign:before{content:"\e0df"}.fa-cent-sign:before{content:"\e3f5"}.fa-certificate:before{content:"\f0a3"}.fa-chair:before{content:"\f6c0"}.fa-blackboard:before,.fa-chalkboard:before{content:"\f51b"}.fa-chalkboard-teacher:before,.fa-chalkboard-user:before{content:"\f51c"}.fa-champagne-glasses:before,.fa-glass-cheers:before{content:"\f79f"}.fa-charging-station:before{content:"\f5e7"}.fa-area-chart:before,.fa-chart-area:before{content:"\f1fe"}.fa-bar-chart:before,.fa-chart-bar:before{content:"\f080"}.fa-chart-column:before{content:"\e0e3"}.fa-chart-gantt:before{content:"\e0e4"}.fa-chart-line:before,.fa-line-chart:before{content:"\f201"}.fa-chart-pie:before,.fa-pie-chart:before{content:"\f200"}.fa-chart-simple:before{content:"\e473"}.fa-check:before{content:"\f00c"}.fa-check-double:before{content:"\f560"}.fa-check-to-slot:before,.fa-vote-yea:before{content:"\f772"}.fa-cheese:before{content:"\f7ef"}.fa-chess:before{content:"\f439"}.fa-chess-bishop:before{content:"\f43a"}.fa-chess-board:before{content:"\f43c"}.fa-chess-king:before{content:"\f43f"}.fa-chess-knight:before{content:"\f441"}.fa-chess-pawn:before{content:"\f443"}.fa-chess-queen:before{content:"\f445"}.fa-chess-rook:before{content:"\f447"}.fa-chevron-down:before{content:"\f078"}.fa-chevron-left:before{content:"\f053"}.fa-chevron-right:before{content:"\f054"}.fa-chevron-up:before{content:"\f077"}.fa-child:before{content:"\f1ae"}.fa-child-dress:before{content:"\e59c"}.fa-child-reaching:before{content:"\e59d"}.fa-child-rifle:before{content:"\e4e0"}.fa-children:before{content:"\e4e1"}.fa-church:before{content:"\f51d"}.fa-circle:before{content:"\f111"}.fa-arrow-circle-down:before,.fa-circle-arrow-down:before{content:"\f0ab"}.fa-arrow-circle-left:before,.fa-circle-arrow-left:before{content:"\f0a8"}.fa-arrow-circle-right:before,.fa-circle-arrow-right:before{content:"\f0a9"}.fa-arrow-circle-up:before,.fa-circle-arrow-up:before{content:"\f0aa"}.fa-check-circle:before,.fa-circle-check:before{content:"\f058"}.fa-chevron-circle-down:before,.fa-circle-chevron-down:before{content:"\f13a"}.fa-chevron-circle-left:before,.fa-circle-chevron-left:before{content:"\f137"}.fa-chevron-circle-right:before,.fa-circle-chevron-right:before{content:"\f138"}.fa-chevron-circle-up:before,.fa-circle-chevron-up:before{content:"\f139"}.fa-circle-dollar-to-slot:before,.fa-donate:before{content:"\f4b9"}.fa-circle-dot:before,.fa-dot-circle:before{content:"\f192"}.fa-arrow-alt-circle-down:before,.fa-circle-down:before{content:"\f358"}.fa-circle-exclamation:before,.fa-exclamation-circle:before{content:"\f06a"}.fa-circle-h:before,.fa-hospital-symbol:before{content:"\f47e"}.fa-adjust:before,.fa-circle-half-stroke:before{content:"\f042"}.fa-circle-info:before,.fa-info-circle:before{content:"\f05a"}.fa-arrow-alt-circle-left:before,.fa-circle-left:before{content:"\f359"}.fa-circle-minus:before,.fa-minus-circle:before{content:"\f056"}.fa-circle-nodes:before{content:"\e4e2"}.fa-circle-notch:before{content:"\f1ce"}.fa-circle-pause:before,.fa-pause-circle:before{content:"\f28b"}.fa-circle-play:before,.fa-play-circle:before{content:"\f144"}.fa-circle-plus:before,.fa-plus-circle:before{content:"\f055"}.fa-circle-question:before,.fa-question-circle:before{content:"\f059"}.fa-circle-radiation:before,.fa-radiation-alt:before{content:"\f7ba"}.fa-arrow-alt-circle-right:before,.fa-circle-right:before{content:"\f35a"}.fa-circle-stop:before,.fa-stop-circle:before{content:"\f28d"}.fa-arrow-alt-circle-up:before,.fa-circle-up:before{content:"\f35b"}.fa-circle-user:before,.fa-user-circle:before{content:"\f2bd"}.fa-circle-xmark:before,.fa-times-circle:before,.fa-xmark-circle:before{content:"\f057"}.fa-city:before{content:"\f64f"}.fa-clapperboard:before{content:"\e131"}.fa-clipboard:before{content:"\f328"}.fa-clipboard-check:before{content:"\f46c"}.fa-clipboard-list:before{content:"\f46d"}.fa-clipboard-question:before{content:"\e4e3"}.fa-clipboard-user:before{content:"\f7f3"}.fa-clock-four:before,.fa-clock:before{content:"\f017"}.fa-clock-rotate-left:before,.fa-history:before{content:"\f1da"}.fa-clone:before{content:"\f24d"}.fa-closed-captioning:before{content:"\f20a"}.fa-cloud:before{content:"\f0c2"}.fa-cloud-arrow-down:before,.fa-cloud-download-alt:before,.fa-cloud-download:before{content:"\f0ed"}.fa-cloud-arrow-up:before,.fa-cloud-upload-alt:before,.fa-cloud-upload:before{content:"\f0ee"}.fa-cloud-bolt:before,.fa-thunderstorm:before{content:"\f76c"}.fa-cloud-meatball:before{content:"\f73b"}.fa-cloud-moon:before{content:"\f6c3"}.fa-cloud-moon-rain:before{content:"\f73c"}.fa-cloud-rain:before{content:"\f73d"}.fa-cloud-showers-heavy:before{content:"\f740"}.fa-cloud-showers-water:before{content:"\e4e4"}.fa-cloud-sun:before{content:"\f6c4"}.fa-cloud-sun-rain:before{content:"\f743"}.fa-clover:before{content:"\e139"}.fa-code:before{content:"\f121"}.fa-code-branch:before{content:"\f126"}.fa-code-commit:before{content:"\f386"}.fa-code-compare:before{content:"\e13a"}.fa-code-fork:before{content:"\e13b"}.fa-code-merge:before{content:"\f387"}.fa-code-pull-request:before{content:"\e13c"}.fa-coins:before{content:"\f51e"}.fa-colon-sign:before{content:"\e140"}.fa-comment:before{content:"\f075"}.fa-comment-dollar:before{content:"\f651"}.fa-comment-dots:before,.fa-commenting:before{content:"\f4ad"}.fa-comment-medical:before{content:"\f7f5"}.fa-comment-slash:before{content:"\f4b3"}.fa-comment-sms:before,.fa-sms:before{content:"\f7cd"}.fa-comments:before{content:"\f086"}.fa-comments-dollar:before{content:"\f653"}.fa-compact-disc:before{content:"\f51f"}.fa-compass:before{content:"\f14e"}.fa-compass-drafting:before,.fa-drafting-compass:before{content:"\f568"}.fa-compress:before{content:"\f066"}.fa-computer:before{content:"\e4e5"}.fa-computer-mouse:before,.fa-mouse:before{content:"\f8cc"}.fa-cookie:before{content:"\f563"}.fa-cookie-bite:before{content:"\f564"}.fa-copy:before{content:"\f0c5"}.fa-copyright:before{content:"\f1f9"}.fa-couch:before{content:"\f4b8"}.fa-cow:before{content:"\f6c8"}.fa-credit-card-alt:before,.fa-credit-card:before{content:"\f09d"}.fa-crop:before{content:"\f125"}.fa-crop-alt:before,.fa-crop-simple:before{content:"\f565"}.fa-cross:before{content:"\f654"}.fa-crosshairs:before{content:"\f05b"}.fa-crow:before{content:"\f520"}.fa-crown:before{content:"\f521"}.fa-crutch:before{content:"\f7f7"}.fa-cruzeiro-sign:before{content:"\e152"}.fa-cube:before{content:"\f1b2"}.fa-cubes:before{content:"\f1b3"}.fa-cubes-stacked:before{content:"\e4e6"}.fa-d:before{content:"\44"}.fa-database:before{content:"\f1c0"}.fa-backspace:before,.fa-delete-left:before{content:"\f55a"}.fa-democrat:before{content:"\f747"}.fa-desktop-alt:before,.fa-desktop:before{content:"\f390"}.fa-dharmachakra:before{content:"\f655"}.fa-diagram-next:before{content:"\e476"}.fa-diagram-predecessor:before{content:"\e477"}.fa-diagram-project:before,.fa-project-diagram:before{content:"\f542"}.fa-diagram-successor:before{content:"\e47a"}.fa-diamond:before{content:"\f219"}.fa-diamond-turn-right:before,.fa-directions:before{content:"\f5eb"}.fa-dice:before{content:"\f522"}.fa-dice-d20:before{content:"\f6cf"}.fa-dice-d6:before{content:"\f6d1"}.fa-dice-five:before{content:"\f523"}.fa-dice-four:before{content:"\f524"}.fa-dice-one:before{content:"\f525"}.fa-dice-six:before{content:"\f526"}.fa-dice-three:before{content:"\f527"}.fa-dice-two:before{content:"\f528"}.fa-disease:before{content:"\f7fa"}.fa-display:before{content:"\e163"}.fa-divide:before{content:"\f529"}.fa-dna:before{content:"\f471"}.fa-dog:before{content:"\f6d3"}.fa-dollar-sign:before,.fa-dollar:before,.fa-usd:before{content:"\24"}.fa-dolly-box:before,.fa-dolly:before{content:"\f472"}.fa-dong-sign:before{content:"\e169"}.fa-door-closed:before{content:"\f52a"}.fa-door-open:before{content:"\f52b"}.fa-dove:before{content:"\f4ba"}.fa-compress-alt:before,.fa-down-left-and-up-right-to-center:before{content:"\f422"}.fa-down-long:before,.fa-long-arrow-alt-down:before{content:"\f309"}.fa-download:before{content:"\f019"}.fa-dragon:before{content:"\f6d5"}.fa-draw-polygon:before{content:"\f5ee"}.fa-droplet:before,.fa-tint:before{content:"\f043"}.fa-droplet-slash:before,.fa-tint-slash:before{content:"\f5c7"}.fa-drum:before{content:"\f569"}.fa-drum-steelpan:before{content:"\f56a"}.fa-drumstick-bite:before{content:"\f6d7"}.fa-dumbbell:before{content:"\f44b"}.fa-dumpster:before{content:"\f793"}.fa-dumpster-fire:before{content:"\f794"}.fa-dungeon:before{content:"\f6d9"}.fa-e:before{content:"\45"}.fa-deaf:before,.fa-deafness:before,.fa-ear-deaf:before,.fa-hard-of-hearing:before{content:"\f2a4"}.fa-assistive-listening-systems:before,.fa-ear-listen:before{content:"\f2a2"}.fa-earth-africa:before,.fa-globe-africa:before{content:"\f57c"}.fa-earth-america:before,.fa-earth-americas:before,.fa-earth:before,.fa-globe-americas:before{content:"\f57d"}.fa-earth-asia:before,.fa-globe-asia:before{content:"\f57e"}.fa-earth-europe:before,.fa-globe-europe:before{content:"\f7a2"}.fa-earth-oceania:before,.fa-globe-oceania:before{content:"\e47b"}.fa-egg:before{content:"\f7fb"}.fa-eject:before{content:"\f052"}.fa-elevator:before{content:"\e16d"}.fa-ellipsis-h:before,.fa-ellipsis:before{content:"\f141"}.fa-ellipsis-v:before,.fa-ellipsis-vertical:before{content:"\f142"}.fa-envelope:before{content:"\f0e0"}.fa-envelope-circle-check:before{content:"\e4e8"}.fa-envelope-open:before{content:"\f2b6"}.fa-envelope-open-text:before{content:"\f658"}.fa-envelopes-bulk:before,.fa-mail-bulk:before{content:"\f674"}.fa-equals:before{content:"\3d"}.fa-eraser:before{content:"\f12d"}.fa-ethernet:before{content:"\f796"}.fa-eur:before,.fa-euro-sign:before,.fa-euro:before{content:"\f153"}.fa-exclamation:before{content:"\21"}.fa-expand:before{content:"\f065"}.fa-explosion:before{content:"\e4e9"}.fa-eye:before{content:"\f06e"}.fa-eye-dropper-empty:before,.fa-eye-dropper:before,.fa-eyedropper:before{content:"\f1fb"}.fa-eye-low-vision:before,.fa-low-vision:before{content:"\f2a8"}.fa-eye-slash:before{content:"\f070"}.fa-f:before{content:"\46"}.fa-angry:before,.fa-face-angry:before{content:"\f556"}.fa-dizzy:before,.fa-face-dizzy:before{content:"\f567"}.fa-face-flushed:before,.fa-flushed:before{content:"\f579"}.fa-face-frown:before,.fa-frown:before{content:"\f119"}.fa-face-frown-open:before,.fa-frown-open:before{content:"\f57a"}.fa-face-grimace:before,.fa-grimace:before{content:"\f57f"}.fa-face-grin:before,.fa-grin:before{content:"\f580"}.fa-face-grin-beam:before,.fa-grin-beam:before{content:"\f582"}.fa-face-grin-beam-sweat:before,.fa-grin-beam-sweat:before{content:"\f583"}.fa-face-grin-hearts:before,.fa-grin-hearts:before{content:"\f584"}.fa-face-grin-squint:before,.fa-grin-squint:before{content:"\f585"}.fa-face-grin-squint-tears:before,.fa-grin-squint-tears:before{content:"\f586"}.fa-face-grin-stars:before,.fa-grin-stars:before{content:"\f587"}.fa-face-grin-tears:before,.fa-grin-tears:before{content:"\f588"}.fa-face-grin-tongue:before,.fa-grin-tongue:before{content:"\f589"}.fa-face-grin-tongue-squint:before,.fa-grin-tongue-squint:before{content:"\f58a"}.fa-face-grin-tongue-wink:before,.fa-grin-tongue-wink:before{content:"\f58b"}.fa-face-grin-wide:before,.fa-grin-alt:before{content:"\f581"}.fa-face-grin-wink:before,.fa-grin-wink:before{content:"\f58c"}.fa-face-kiss:before,.fa-kiss:before{content:"\f596"}.fa-face-kiss-beam:before,.fa-kiss-beam:before{content:"\f597"}.fa-face-kiss-wink-heart:before,.fa-kiss-wink-heart:before{content:"\f598"}.fa-face-laugh:before,.fa-laugh:before{content:"\f599"}.fa-face-laugh-beam:before,.fa-laugh-beam:before{content:"\f59a"}.fa-face-laugh-squint:before,.fa-laugh-squint:before{content:"\f59b"}.fa-face-laugh-wink:before,.fa-laugh-wink:before{content:"\f59c"}.fa-face-meh:before,.fa-meh:before{content:"\f11a"}.fa-face-meh-blank:before,.fa-meh-blank:before{content:"\f5a4"}.fa-face-rolling-eyes:before,.fa-meh-rolling-eyes:before{content:"\f5a5"}.fa-face-sad-cry:before,.fa-sad-cry:before{content:"\f5b3"}.fa-face-sad-tear:before,.fa-sad-tear:before{content:"\f5b4"}.fa-face-smile:before,.fa-smile:before{content:"\f118"}.fa-face-smile-beam:before,.fa-smile-beam:before{content:"\f5b8"}.fa-face-smile-wink:before,.fa-smile-wink:before{content:"\f4da"}.fa-face-surprise:before,.fa-surprise:before{content:"\f5c2"}.fa-face-tired:before,.fa-tired:before{content:"\f5c8"}.fa-fan:before{content:"\f863"}.fa-faucet:before{content:"\e005"}.fa-faucet-drip:before{content:"\e006"}.fa-fax:before{content:"\f1ac"}.fa-feather:before{content:"\f52d"}.fa-feather-alt:before,.fa-feather-pointed:before{content:"\f56b"}.fa-ferry:before{content:"\e4ea"}.fa-file:before{content:"\f15b"}.fa-file-arrow-down:before,.fa-file-download:before{content:"\f56d"}.fa-file-arrow-up:before,.fa-file-upload:before{content:"\f574"}.fa-file-audio:before{content:"\f1c7"}.fa-file-circle-check:before{content:"\e5a0"}.fa-file-circle-exclamation:before{content:"\e4eb"}.fa-file-circle-minus:before{content:"\e4ed"}.fa-file-circle-plus:before{content:"\e494"}.fa-file-circle-question:before{content:"\e4ef"}.fa-file-circle-xmark:before{content:"\e5a1"}.fa-file-code:before{content:"\f1c9"}.fa-file-contract:before{content:"\f56c"}.fa-file-csv:before{content:"\f6dd"}.fa-file-excel:before{content:"\f1c3"}.fa-arrow-right-from-file:before,.fa-file-export:before{content:"\f56e"}.fa-file-image:before{content:"\f1c5"}.fa-arrow-right-to-file:before,.fa-file-import:before{content:"\f56f"}.fa-file-invoice:before{content:"\f570"}.fa-file-invoice-dollar:before{content:"\f571"}.fa-file-alt:before,.fa-file-lines:before,.fa-file-text:before{content:"\f15c"}.fa-file-medical:before{content:"\f477"}.fa-file-pdf:before{content:"\f1c1"}.fa-file-edit:before,.fa-file-pen:before{content:"\f31c"}.fa-file-powerpoint:before{content:"\f1c4"}.fa-file-prescription:before{content:"\f572"}.fa-file-shield:before{content:"\e4f0"}.fa-file-signature:before{content:"\f573"}.fa-file-video:before{content:"\f1c8"}.fa-file-medical-alt:before,.fa-file-waveform:before{content:"\f478"}.fa-file-word:before{content:"\f1c2"}.fa-file-archive:before,.fa-file-zipper:before{content:"\f1c6"}.fa-fill:before{content:"\f575"}.fa-fill-drip:before{content:"\f576"}.fa-film:before{content:"\f008"}.fa-filter:before{content:"\f0b0"}.fa-filter-circle-dollar:before,.fa-funnel-dollar:before{content:"\f662"}.fa-filter-circle-xmark:before{content:"\e17b"}.fa-fingerprint:before{content:"\f577"}.fa-fire:before{content:"\f06d"}.fa-fire-burner:before{content:"\e4f1"}.fa-fire-extinguisher:before{content:"\f134"}.fa-fire-alt:before,.fa-fire-flame-curved:before{content:"\f7e4"}.fa-burn:before,.fa-fire-flame-simple:before{content:"\f46a"}.fa-fish:before{content:"\f578"}.fa-fish-fins:before{content:"\e4f2"}.fa-flag:before{content:"\f024"}.fa-flag-checkered:before{content:"\f11e"}.fa-flag-usa:before{content:"\f74d"}.fa-flask:before{content:"\f0c3"}.fa-flask-vial:before{content:"\e4f3"}.fa-floppy-disk:before,.fa-save:before{content:"\f0c7"}.fa-florin-sign:before{content:"\e184"}.fa-folder-blank:before,.fa-folder:before{content:"\f07b"}.fa-folder-closed:before{content:"\e185"}.fa-folder-minus:before{content:"\f65d"}.fa-folder-open:before{content:"\f07c"}.fa-folder-plus:before{content:"\f65e"}.fa-folder-tree:before{content:"\f802"}.fa-font:before{content:"\f031"}.fa-football-ball:before,.fa-football:before{content:"\f44e"}.fa-forward:before{content:"\f04e"}.fa-fast-forward:before,.fa-forward-fast:before{content:"\f050"}.fa-forward-step:before,.fa-step-forward:before{content:"\f051"}.fa-franc-sign:before{content:"\e18f"}.fa-frog:before{content:"\f52e"}.fa-futbol-ball:before,.fa-futbol:before,.fa-soccer-ball:before{content:"\f1e3"}.fa-g:before{content:"\47"}.fa-gamepad:before{content:"\f11b"}.fa-gas-pump:before{content:"\f52f"}.fa-dashboard:before,.fa-gauge-med:before,.fa-gauge:before,.fa-tachometer-alt-average:before{content:"\f624"}.fa-gauge-high:before,.fa-tachometer-alt-fast:before,.fa-tachometer-alt:before{content:"\f625"}.fa-gauge-simple-med:before,.fa-gauge-simple:before,.fa-tachometer-average:before{content:"\f629"}.fa-gauge-simple-high:before,.fa-tachometer-fast:before,.fa-tachometer:before{content:"\f62a"}.fa-gavel:before,.fa-legal:before{content:"\f0e3"}.fa-cog:before,.fa-gear:before{content:"\f013"}.fa-cogs:before,.fa-gears:before{content:"\f085"}.fa-gem:before{content:"\f3a5"}.fa-genderless:before{content:"\f22d"}.fa-ghost:before{content:"\f6e2"}.fa-gift:before{content:"\f06b"}.fa-gifts:before{content:"\f79c"}.fa-glass-water:before{content:"\e4f4"}.fa-glass-water-droplet:before{content:"\e4f5"}.fa-glasses:before{content:"\f530"}.fa-globe:before{content:"\f0ac"}.fa-golf-ball-tee:before,.fa-golf-ball:before{content:"\f450"}.fa-gopuram:before{content:"\f664"}.fa-graduation-cap:before,.fa-mortar-board:before{content:"\f19d"}.fa-greater-than:before{content:"\3e"}.fa-greater-than-equal:before{content:"\f532"}.fa-grip-horizontal:before,.fa-grip:before{content:"\f58d"}.fa-grip-lines:before{content:"\f7a4"}.fa-grip-lines-vertical:before{content:"\f7a5"}.fa-grip-vertical:before{content:"\f58e"}.fa-group-arrows-rotate:before{content:"\e4f6"}.fa-guarani-sign:before{content:"\e19a"}.fa-guitar:before{content:"\f7a6"}.fa-gun:before{content:"\e19b"}.fa-h:before{content:"\48"}.fa-hammer:before{content:"\f6e3"}.fa-hamsa:before{content:"\f665"}.fa-hand-paper:before,.fa-hand:before{content:"\f256"}.fa-hand-back-fist:before,.fa-hand-rock:before{content:"\f255"}.fa-allergies:before,.fa-hand-dots:before{content:"\f461"}.fa-fist-raised:before,.fa-hand-fist:before{content:"\f6de"}.fa-hand-holding:before{content:"\f4bd"}.fa-hand-holding-dollar:before,.fa-hand-holding-usd:before{content:"\f4c0"}.fa-hand-holding-droplet:before,.fa-hand-holding-water:before{content:"\f4c1"}.fa-hand-holding-hand:before{content:"\e4f7"}.fa-hand-holding-heart:before{content:"\f4be"}.fa-hand-holding-medical:before{content:"\e05c"}.fa-hand-lizard:before{content:"\f258"}.fa-hand-middle-finger:before{content:"\f806"}.fa-hand-peace:before{content:"\f25b"}.fa-hand-point-down:before{content:"\f0a7"}.fa-hand-point-left:before{content:"\f0a5"}.fa-hand-point-right:before{content:"\f0a4"}.fa-hand-point-up:before{content:"\f0a6"}.fa-hand-pointer:before{content:"\f25a"}.fa-hand-scissors:before{content:"\f257"}.fa-hand-sparkles:before{content:"\e05d"}.fa-hand-spock:before{content:"\f259"}.fa-handcuffs:before{content:"\e4f8"}.fa-hands:before,.fa-sign-language:before,.fa-signing:before{content:"\f2a7"}.fa-american-sign-language-interpreting:before,.fa-asl-interpreting:before,.fa-hands-american-sign-language-interpreting:before,.fa-hands-asl-interpreting:before{content:"\f2a3"}.fa-hands-bound:before{content:"\e4f9"}.fa-hands-bubbles:before,.fa-hands-wash:before{content:"\e05e"}.fa-hands-clapping:before{content:"\e1a8"}.fa-hands-holding:before{content:"\f4c2"}.fa-hands-holding-child:before{content:"\e4fa"}.fa-hands-holding-circle:before{content:"\e4fb"}.fa-hands-praying:before,.fa-praying-hands:before{content:"\f684"}.fa-handshake:before{content:"\f2b5"}.fa-hands-helping:before,.fa-handshake-angle:before{content:"\f4c4"}.fa-handshake-alt:before,.fa-handshake-simple:before{content:"\f4c6"}.fa-handshake-alt-slash:before,.fa-handshake-simple-slash:before{content:"\e05f"}.fa-handshake-slash:before{content:"\e060"}.fa-hanukiah:before{content:"\f6e6"}.fa-hard-drive:before,.fa-hdd:before{content:"\f0a0"}.fa-hashtag:before{content:"\23"}.fa-hat-cowboy:before{content:"\f8c0"}.fa-hat-cowboy-side:before{content:"\f8c1"}.fa-hat-wizard:before{content:"\f6e8"}.fa-head-side-cough:before{content:"\e061"}.fa-head-side-cough-slash:before{content:"\e062"}.fa-head-side-mask:before{content:"\e063"}.fa-head-side-virus:before{content:"\e064"}.fa-header:before,.fa-heading:before{content:"\f1dc"}.fa-headphones:before{content:"\f025"}.fa-headphones-alt:before,.fa-headphones-simple:before{content:"\f58f"}.fa-headset:before{content:"\f590"}.fa-heart:before{content:"\f004"}.fa-heart-circle-bolt:before{content:"\e4fc"}.fa-heart-circle-check:before{content:"\e4fd"}.fa-heart-circle-exclamation:before{content:"\e4fe"}.fa-heart-circle-minus:before{content:"\e4ff"}.fa-heart-circle-plus:before{content:"\e500"}.fa-heart-circle-xmark:before{content:"\e501"}.fa-heart-broken:before,.fa-heart-crack:before{content:"\f7a9"}.fa-heart-pulse:before,.fa-heartbeat:before{content:"\f21e"}.fa-helicopter:before{content:"\f533"}.fa-helicopter-symbol:before{content:"\e502"}.fa-hard-hat:before,.fa-hat-hard:before,.fa-helmet-safety:before{content:"\f807"}.fa-helmet-un:before{content:"\e503"}.fa-highlighter:before{content:"\f591"}.fa-hill-avalanche:before{content:"\e507"}.fa-hill-rockslide:before{content:"\e508"}.fa-hippo:before{content:"\f6ed"}.fa-hockey-puck:before{content:"\f453"}.fa-holly-berry:before{content:"\f7aa"}.fa-horse:before{content:"\f6f0"}.fa-horse-head:before{content:"\f7ab"}.fa-hospital-alt:before,.fa-hospital-wide:before,.fa-hospital:before{content:"\f0f8"}.fa-hospital-user:before{content:"\f80d"}.fa-hot-tub-person:before,.fa-hot-tub:before{content:"\f593"}.fa-hotdog:before{content:"\f80f"}.fa-hotel:before{content:"\f594"}.fa-hourglass-empty:before,.fa-hourglass:before{content:"\f254"}.fa-hourglass-3:before,.fa-hourglass-end:before{content:"\f253"}.fa-hourglass-2:before,.fa-hourglass-half:before{content:"\f252"}.fa-hourglass-1:before,.fa-hourglass-start:before{content:"\f251"}.fa-home-alt:before,.fa-home-lg-alt:before,.fa-home:before,.fa-house:before{content:"\f015"}.fa-home-lg:before,.fa-house-chimney:before{content:"\e3af"}.fa-house-chimney-crack:before,.fa-house-damage:before{content:"\f6f1"}.fa-clinic-medical:before,.fa-house-chimney-medical:before{content:"\f7f2"}.fa-house-chimney-user:before{content:"\e065"}.fa-house-chimney-window:before{content:"\e00d"}.fa-house-circle-check:before{content:"\e509"}.fa-house-circle-exclamation:before{content:"\e50a"}.fa-house-circle-xmark:before{content:"\e50b"}.fa-house-crack:before{content:"\e3b1"}.fa-house-fire:before{content:"\e50c"}.fa-house-flag:before{content:"\e50d"}.fa-house-flood-water:before{content:"\e50e"}.fa-house-flood-water-circle-arrow-right:before{content:"\e50f"}.fa-house-laptop:before,.fa-laptop-house:before{content:"\e066"}.fa-house-lock:before{content:"\e510"}.fa-house-medical:before{content:"\e3b2"}.fa-house-medical-circle-check:before{content:"\e511"}.fa-house-medical-circle-exclamation:before{content:"\e512"}.fa-house-medical-circle-xmark:before{content:"\e513"}.fa-house-medical-flag:before{content:"\e514"}.fa-house-signal:before{content:"\e012"}.fa-house-tsunami:before{content:"\e515"}.fa-home-user:before,.fa-house-user:before{content:"\e1b0"}.fa-hryvnia-sign:before,.fa-hryvnia:before{content:"\f6f2"}.fa-hurricane:before{content:"\f751"}.fa-i:before{content:"\49"}.fa-i-cursor:before{content:"\f246"}.fa-ice-cream:before{content:"\f810"}.fa-icicles:before{content:"\f7ad"}.fa-heart-music-camera-bolt:before,.fa-icons:before{content:"\f86d"}.fa-id-badge:before{content:"\f2c1"}.fa-drivers-license:before,.fa-id-card:before{content:"\f2c2"}.fa-id-card-alt:before,.fa-id-card-clip:before{content:"\f47f"}.fa-igloo:before{content:"\f7ae"}.fa-image:before{content:"\f03e"}.fa-image-portrait:before,.fa-portrait:before{content:"\f3e0"}.fa-images:before{content:"\f302"}.fa-inbox:before{content:"\f01c"}.fa-indent:before{content:"\f03c"}.fa-indian-rupee-sign:before,.fa-indian-rupee:before,.fa-inr:before{content:"\e1bc"}.fa-industry:before{content:"\f275"}.fa-infinity:before{content:"\f534"}.fa-info:before{content:"\f129"}.fa-italic:before{content:"\f033"}.fa-j:before{content:"\4a"}.fa-jar:before{content:"\e516"}.fa-jar-wheat:before{content:"\e517"}.fa-jedi:before{content:"\f669"}.fa-fighter-jet:before,.fa-jet-fighter:before{content:"\f0fb"}.fa-jet-fighter-up:before{content:"\e518"}.fa-joint:before{content:"\f595"}.fa-jug-detergent:before{content:"\e519"}.fa-k:before{content:"\4b"}.fa-kaaba:before{content:"\f66b"}.fa-key:before{content:"\f084"}.fa-keyboard:before{content:"\f11c"}.fa-khanda:before{content:"\f66d"}.fa-kip-sign:before{content:"\e1c4"}.fa-first-aid:before,.fa-kit-medical:before{content:"\f479"}.fa-kitchen-set:before{content:"\e51a"}.fa-kiwi-bird:before{content:"\f535"}.fa-l:before{content:"\4c"}.fa-land-mine-on:before{content:"\e51b"}.fa-landmark:before{content:"\f66f"}.fa-landmark-alt:before,.fa-landmark-dome:before{content:"\f752"}.fa-landmark-flag:before{content:"\e51c"}.fa-language:before{content:"\f1ab"}.fa-laptop:before{content:"\f109"}.fa-laptop-code:before{content:"\f5fc"}.fa-laptop-file:before{content:"\e51d"}.fa-laptop-medical:before{content:"\f812"}.fa-lari-sign:before{content:"\e1c8"}.fa-layer-group:before{content:"\f5fd"}.fa-leaf:before{content:"\f06c"}.fa-left-long:before,.fa-long-arrow-alt-left:before{content:"\f30a"}.fa-arrows-alt-h:before,.fa-left-right:before{content:"\f337"}.fa-lemon:before{content:"\f094"}.fa-less-than:before{content:"\3c"}.fa-less-than-equal:before{content:"\f537"}.fa-life-ring:before{content:"\f1cd"}.fa-lightbulb:before{content:"\f0eb"}.fa-lines-leaning:before{content:"\e51e"}.fa-chain:before,.fa-link:before{content:"\f0c1"}.fa-chain-broken:before,.fa-chain-slash:before,.fa-link-slash:before,.fa-unlink:before{content:"\f127"}.fa-lira-sign:before{content:"\f195"}.fa-list-squares:before,.fa-list:before{content:"\f03a"}.fa-list-check:before,.fa-tasks:before{content:"\f0ae"}.fa-list-1-2:before,.fa-list-numeric:before,.fa-list-ol:before{content:"\f0cb"}.fa-list-dots:before,.fa-list-ul:before{content:"\f0ca"}.fa-litecoin-sign:before{content:"\e1d3"}.fa-location-arrow:before{content:"\f124"}.fa-location-crosshairs:before,.fa-location:before{content:"\f601"}.fa-location-dot:before,.fa-map-marker-alt:before{content:"\f3c5"}.fa-location-pin:before,.fa-map-marker:before{content:"\f041"}.fa-location-pin-lock:before{content:"\e51f"}.fa-lock:before{content:"\f023"}.fa-lock-open:before{content:"\f3c1"}.fa-locust:before{content:"\e520"}.fa-lungs:before{content:"\f604"}.fa-lungs-virus:before{content:"\e067"}.fa-m:before{content:"\4d"}.fa-magnet:before{content:"\f076"}.fa-magnifying-glass:before,.fa-search:before{content:"\f002"}.fa-magnifying-glass-arrow-right:before{content:"\e521"}.fa-magnifying-glass-chart:before{content:"\e522"}.fa-magnifying-glass-dollar:before,.fa-search-dollar:before{content:"\f688"}.fa-magnifying-glass-location:before,.fa-search-location:before{content:"\f689"}.fa-magnifying-glass-minus:before,.fa-search-minus:before{content:"\f010"}.fa-magnifying-glass-plus:before,.fa-search-plus:before{content:"\f00e"}.fa-manat-sign:before{content:"\e1d5"}.fa-map:before{content:"\f279"}.fa-map-location:before,.fa-map-marked:before{content:"\f59f"}.fa-map-location-dot:before,.fa-map-marked-alt:before{content:"\f5a0"}.fa-map-pin:before{content:"\f276"}.fa-marker:before{content:"\f5a1"}.fa-mars:before{content:"\f222"}.fa-mars-and-venus:before{content:"\f224"}.fa-mars-and-venus-burst:before{content:"\e523"}.fa-mars-double:before{content:"\f227"}.fa-mars-stroke:before{content:"\f229"}.fa-mars-stroke-h:before,.fa-mars-stroke-right:before{content:"\f22b"}.fa-mars-stroke-up:before,.fa-mars-stroke-v:before{content:"\f22a"}.fa-glass-martini-alt:before,.fa-martini-glass:before{content:"\f57b"}.fa-cocktail:before,.fa-martini-glass-citrus:before{content:"\f561"}.fa-glass-martini:before,.fa-martini-glass-empty:before{content:"\f000"}.fa-mask:before{content:"\f6fa"}.fa-mask-face:before{content:"\e1d7"}.fa-mask-ventilator:before{content:"\e524"}.fa-masks-theater:before,.fa-theater-masks:before{content:"\f630"}.fa-mattress-pillow:before{content:"\e525"}.fa-expand-arrows-alt:before,.fa-maximize:before{content:"\f31e"}.fa-medal:before{content:"\f5a2"}.fa-memory:before{content:"\f538"}.fa-menorah:before{content:"\f676"}.fa-mercury:before{content:"\f223"}.fa-comment-alt:before,.fa-message:before{content:"\f27a"}.fa-meteor:before{content:"\f753"}.fa-microchip:before{content:"\f2db"}.fa-microphone:before{content:"\f130"}.fa-microphone-alt:before,.fa-microphone-lines:before{content:"\f3c9"}.fa-microphone-alt-slash:before,.fa-microphone-lines-slash:before{content:"\f539"}.fa-microphone-slash:before{content:"\f131"}.fa-microscope:before{content:"\f610"}.fa-mill-sign:before{content:"\e1ed"}.fa-compress-arrows-alt:before,.fa-minimize:before{content:"\f78c"}.fa-minus:before,.fa-subtract:before{content:"\f068"}.fa-mitten:before{content:"\f7b5"}.fa-mobile-android:before,.fa-mobile-phone:before,.fa-mobile:before{content:"\f3ce"}.fa-mobile-button:before{content:"\f10b"}.fa-mobile-retro:before{content:"\e527"}.fa-mobile-android-alt:before,.fa-mobile-screen:before{content:"\f3cf"}.fa-mobile-alt:before,.fa-mobile-screen-button:before{content:"\f3cd"}.fa-money-bill:before{content:"\f0d6"}.fa-money-bill-1:before,.fa-money-bill-alt:before{content:"\f3d1"}.fa-money-bill-1-wave:before,.fa-money-bill-wave-alt:before{content:"\f53b"}.fa-money-bill-transfer:before{content:"\e528"}.fa-money-bill-trend-up:before{content:"\e529"}.fa-money-bill-wave:before{content:"\f53a"}.fa-money-bill-wheat:before{content:"\e52a"}.fa-money-bills:before{content:"\e1f3"}.fa-money-check:before{content:"\f53c"}.fa-money-check-alt:before,.fa-money-check-dollar:before{content:"\f53d"}.fa-monument:before{content:"\f5a6"}.fa-moon:before{content:"\f186"}.fa-mortar-pestle:before{content:"\f5a7"}.fa-mosque:before{content:"\f678"}.fa-mosquito:before{content:"\e52b"}.fa-mosquito-net:before{content:"\e52c"}.fa-motorcycle:before{content:"\f21c"}.fa-mound:before{content:"\e52d"}.fa-mountain:before{content:"\f6fc"}.fa-mountain-city:before{content:"\e52e"}.fa-mountain-sun:before{content:"\e52f"}.fa-mug-hot:before{content:"\f7b6"}.fa-coffee:before,.fa-mug-saucer:before{content:"\f0f4"}.fa-music:before{content:"\f001"}.fa-n:before{content:"\4e"}.fa-naira-sign:before{content:"\e1f6"}.fa-network-wired:before{content:"\f6ff"}.fa-neuter:before{content:"\f22c"}.fa-newspaper:before{content:"\f1ea"}.fa-not-equal:before{content:"\f53e"}.fa-notdef:before{content:"\e1fe"}.fa-note-sticky:before,.fa-sticky-note:before{content:"\f249"}.fa-notes-medical:before{content:"\f481"}.fa-o:before{content:"\4f"}.fa-object-group:before{content:"\f247"}.fa-object-ungroup:before{content:"\f248"}.fa-oil-can:before{content:"\f613"}.fa-oil-well:before{content:"\e532"}.fa-om:before{content:"\f679"}.fa-otter:before{content:"\f700"}.fa-dedent:before,.fa-outdent:before{content:"\f03b"}.fa-p:before{content:"\50"}.fa-pager:before{content:"\f815"}.fa-paint-roller:before{content:"\f5aa"}.fa-paint-brush:before,.fa-paintbrush:before{content:"\f1fc"}.fa-palette:before{content:"\f53f"}.fa-pallet:before{content:"\f482"}.fa-panorama:before{content:"\e209"}.fa-paper-plane:before{content:"\f1d8"}.fa-paperclip:before{content:"\f0c6"}.fa-parachute-box:before{content:"\f4cd"}.fa-paragraph:before{content:"\f1dd"}.fa-passport:before{content:"\f5ab"}.fa-file-clipboard:before,.fa-paste:before{content:"\f0ea"}.fa-pause:before{content:"\f04c"}.fa-paw:before{content:"\f1b0"}.fa-peace:before{content:"\f67c"}.fa-pen:before{content:"\f304"}.fa-pen-alt:before,.fa-pen-clip:before{content:"\f305"}.fa-pen-fancy:before{content:"\f5ac"}.fa-pen-nib:before{content:"\f5ad"}.fa-pen-ruler:before,.fa-pencil-ruler:before{content:"\f5ae"}.fa-edit:before,.fa-pen-to-square:before{content:"\f044"}.fa-pencil-alt:before,.fa-pencil:before{content:"\f303"}.fa-people-arrows-left-right:before,.fa-people-arrows:before{content:"\e068"}.fa-people-carry-box:before,.fa-people-carry:before{content:"\f4ce"}.fa-people-group:before{content:"\e533"}.fa-people-line:before{content:"\e534"}.fa-people-pulling:before{content:"\e535"}.fa-people-robbery:before{content:"\e536"}.fa-people-roof:before{content:"\e537"}.fa-pepper-hot:before{content:"\f816"}.fa-percent:before,.fa-percentage:before{content:"\25"}.fa-male:before,.fa-person:before{content:"\f183"}.fa-person-arrow-down-to-line:before{content:"\e538"}.fa-person-arrow-up-from-line:before{content:"\e539"}.fa-biking:before,.fa-person-biking:before{content:"\f84a"}.fa-person-booth:before{content:"\f756"}.fa-person-breastfeeding:before{content:"\e53a"}.fa-person-burst:before{content:"\e53b"}.fa-person-cane:before{content:"\e53c"}.fa-person-chalkboard:before{content:"\e53d"}.fa-person-circle-check:before{content:"\e53e"}.fa-person-circle-exclamation:before{content:"\e53f"}.fa-person-circle-minus:before{content:"\e540"}.fa-person-circle-plus:before{content:"\e541"}.fa-person-circle-question:before{content:"\e542"}.fa-person-circle-xmark:before{content:"\e543"}.fa-digging:before,.fa-person-digging:before{content:"\f85e"}.fa-diagnoses:before,.fa-person-dots-from-line:before{content:"\f470"}.fa-female:before,.fa-person-dress:before{content:"\f182"}.fa-person-dress-burst:before{content:"\e544"}.fa-person-drowning:before{content:"\e545"}.fa-person-falling:before{content:"\e546"}.fa-person-falling-burst:before{content:"\e547"}.fa-person-half-dress:before{content:"\e548"}.fa-person-harassing:before{content:"\e549"}.fa-hiking:before,.fa-person-hiking:before{content:"\f6ec"}.fa-person-military-pointing:before{content:"\e54a"}.fa-person-military-rifle:before{content:"\e54b"}.fa-person-military-to-person:before{content:"\e54c"}.fa-person-praying:before,.fa-pray:before{content:"\f683"}.fa-person-pregnant:before{content:"\e31e"}.fa-person-rays:before{content:"\e54d"}.fa-person-rifle:before{content:"\e54e"}.fa-person-running:before,.fa-running:before{content:"\f70c"}.fa-person-shelter:before{content:"\e54f"}.fa-person-skating:before,.fa-skating:before{content:"\f7c5"}.fa-person-skiing:before,.fa-skiing:before{content:"\f7c9"}.fa-person-skiing-nordic:before,.fa-skiing-nordic:before{content:"\f7ca"}.fa-person-snowboarding:before,.fa-snowboarding:before{content:"\f7ce"}.fa-person-swimming:before,.fa-swimmer:before{content:"\f5c4"}.fa-person-through-window:before{content:"\e5a9"}.fa-person-walking:before,.fa-walking:before{content:"\f554"}.fa-person-walking-arrow-loop-left:before{content:"\e551"}.fa-person-walking-arrow-right:before{content:"\e552"}.fa-person-walking-dashed-line-arrow-right:before{content:"\e553"}.fa-person-walking-luggage:before{content:"\e554"}.fa-blind:before,.fa-person-walking-with-cane:before{content:"\f29d"}.fa-peseta-sign:before{content:"\e221"}.fa-peso-sign:before{content:"\e222"}.fa-phone:before{content:"\f095"}.fa-phone-alt:before,.fa-phone-flip:before{content:"\f879"}.fa-phone-slash:before{content:"\f3dd"}.fa-phone-volume:before,.fa-volume-control-phone:before{content:"\f2a0"}.fa-photo-film:before,.fa-photo-video:before{content:"\f87c"}.fa-piggy-bank:before{content:"\f4d3"}.fa-pills:before{content:"\f484"}.fa-pizza-slice:before{content:"\f818"}.fa-place-of-worship:before{content:"\f67f"}.fa-plane:before{content:"\f072"}.fa-plane-arrival:before{content:"\f5af"}.fa-plane-circle-check:before{content:"\e555"}.fa-plane-circle-exclamation:before{content:"\e556"}.fa-plane-circle-xmark:before{content:"\e557"}.fa-plane-departure:before{content:"\f5b0"}.fa-plane-lock:before{content:"\e558"}.fa-plane-slash:before{content:"\e069"}.fa-plane-up:before{content:"\e22d"}.fa-plant-wilt:before{content:"\e5aa"}.fa-plate-wheat:before{content:"\e55a"}.fa-play:before{content:"\f04b"}.fa-plug:before{content:"\f1e6"}.fa-plug-circle-bolt:before{content:"\e55b"}.fa-plug-circle-check:before{content:"\e55c"}.fa-plug-circle-exclamation:before{content:"\e55d"}.fa-plug-circle-minus:before{content:"\e55e"}.fa-plug-circle-plus:before{content:"\e55f"}.fa-plug-circle-xmark:before{content:"\e560"}.fa-add:before,.fa-plus:before{content:"\2b"}.fa-plus-minus:before{content:"\e43c"}.fa-podcast:before{content:"\f2ce"}.fa-poo:before{content:"\f2fe"}.fa-poo-bolt:before,.fa-poo-storm:before{content:"\f75a"}.fa-poop:before{content:"\f619"}.fa-power-off:before{content:"\f011"}.fa-prescription:before{content:"\f5b1"}.fa-prescription-bottle:before{content:"\f485"}.fa-prescription-bottle-alt:before,.fa-prescription-bottle-medical:before{content:"\f486"}.fa-print:before{content:"\f02f"}.fa-pump-medical:before{content:"\e06a"}.fa-pump-soap:before{content:"\e06b"}.fa-puzzle-piece:before{content:"\f12e"}.fa-q:before{content:"\51"}.fa-qrcode:before{content:"\f029"}.fa-question:before{content:"\3f"}.fa-quote-left-alt:before,.fa-quote-left:before{content:"\f10d"}.fa-quote-right-alt:before,.fa-quote-right:before{content:"\f10e"}.fa-r:before{content:"\52"}.fa-radiation:before{content:"\f7b9"}.fa-radio:before{content:"\f8d7"}.fa-rainbow:before{content:"\f75b"}.fa-ranking-star:before{content:"\e561"}.fa-receipt:before{content:"\f543"}.fa-record-vinyl:before{content:"\f8d9"}.fa-ad:before,.fa-rectangle-ad:before{content:"\f641"}.fa-list-alt:before,.fa-rectangle-list:before{content:"\f022"}.fa-rectangle-times:before,.fa-rectangle-xmark:before,.fa-times-rectangle:before,.fa-window-close:before{content:"\f410"}.fa-recycle:before{content:"\f1b8"}.fa-registered:before{content:"\f25d"}.fa-repeat:before{content:"\f363"}.fa-mail-reply:before,.fa-reply:before{content:"\f3e5"}.fa-mail-reply-all:before,.fa-reply-all:before{content:"\f122"}.fa-republican:before{content:"\f75e"}.fa-restroom:before{content:"\f7bd"}.fa-retweet:before{content:"\f079"}.fa-ribbon:before{content:"\f4d6"}.fa-right-from-bracket:before,.fa-sign-out-alt:before{content:"\f2f5"}.fa-exchange-alt:before,.fa-right-left:before{content:"\f362"}.fa-long-arrow-alt-right:before,.fa-right-long:before{content:"\f30b"}.fa-right-to-bracket:before,.fa-sign-in-alt:before{content:"\f2f6"}.fa-ring:before{content:"\f70b"}.fa-road:before{content:"\f018"}.fa-road-barrier:before{content:"\e562"}.fa-road-bridge:before{content:"\e563"}.fa-road-circle-check:before{content:"\e564"}.fa-road-circle-exclamation:before{content:"\e565"}.fa-road-circle-xmark:before{content:"\e566"}.fa-road-lock:before{content:"\e567"}.fa-road-spikes:before{content:"\e568"}.fa-robot:before{content:"\f544"}.fa-rocket:before{content:"\f135"}.fa-rotate:before,.fa-sync-alt:before{content:"\f2f1"}.fa-rotate-back:before,.fa-rotate-backward:before,.fa-rotate-left:before,.fa-undo-alt:before{content:"\f2ea"}.fa-redo-alt:before,.fa-rotate-forward:before,.fa-rotate-right:before{content:"\f2f9"}.fa-route:before{content:"\f4d7"}.fa-feed:before,.fa-rss:before{content:"\f09e"}.fa-rouble:before,.fa-rub:before,.fa-ruble-sign:before,.fa-ruble:before{content:"\f158"}.fa-rug:before{content:"\e569"}.fa-ruler:before{content:"\f545"}.fa-ruler-combined:before{content:"\f546"}.fa-ruler-horizontal:before{content:"\f547"}.fa-ruler-vertical:before{content:"\f548"}.fa-rupee-sign:before,.fa-rupee:before{content:"\f156"}.fa-rupiah-sign:before{content:"\e23d"}.fa-s:before{content:"\53"}.fa-sack-dollar:before{content:"\f81d"}.fa-sack-xmark:before{content:"\e56a"}.fa-sailboat:before{content:"\e445"}.fa-satellite:before{content:"\f7bf"}.fa-satellite-dish:before{content:"\f7c0"}.fa-balance-scale:before,.fa-scale-balanced:before{content:"\f24e"}.fa-balance-scale-left:before,.fa-scale-unbalanced:before{content:"\f515"}.fa-balance-scale-right:before,.fa-scale-unbalanced-flip:before{content:"\f516"}.fa-school:before{content:"\f549"}.fa-school-circle-check:before{content:"\e56b"}.fa-school-circle-exclamation:before{content:"\e56c"}.fa-school-circle-xmark:before{content:"\e56d"}.fa-school-flag:before{content:"\e56e"}.fa-school-lock:before{content:"\e56f"}.fa-cut:before,.fa-scissors:before{content:"\f0c4"}.fa-screwdriver:before{content:"\f54a"}.fa-screwdriver-wrench:before,.fa-tools:before{content:"\f7d9"}.fa-scroll:before{content:"\f70e"}.fa-scroll-torah:before,.fa-torah:before{content:"\f6a0"}.fa-sd-card:before{content:"\f7c2"}.fa-section:before{content:"\e447"}.fa-seedling:before,.fa-sprout:before{content:"\f4d8"}.fa-server:before{content:"\f233"}.fa-shapes:before,.fa-triangle-circle-square:before{content:"\f61f"}.fa-arrow-turn-right:before,.fa-mail-forward:before,.fa-share:before{content:"\f064"}.fa-share-from-square:before,.fa-share-square:before{content:"\f14d"}.fa-share-alt:before,.fa-share-nodes:before{content:"\f1e0"}.fa-sheet-plastic:before{content:"\e571"}.fa-ils:before,.fa-shekel-sign:before,.fa-shekel:before,.fa-sheqel-sign:before,.fa-sheqel:before{content:"\f20b"}.fa-shield-blank:before,.fa-shield:before{content:"\f132"}.fa-shield-cat:before{content:"\e572"}.fa-shield-dog:before{content:"\e573"}.fa-shield-alt:before,.fa-shield-halved:before{content:"\f3ed"}.fa-shield-heart:before{content:"\e574"}.fa-shield-virus:before{content:"\e06c"}.fa-ship:before{content:"\f21a"}.fa-shirt:before,.fa-t-shirt:before,.fa-tshirt:before{content:"\f553"}.fa-shoe-prints:before{content:"\f54b"}.fa-shop:before,.fa-store-alt:before{content:"\f54f"}.fa-shop-lock:before{content:"\e4a5"}.fa-shop-slash:before,.fa-store-alt-slash:before{content:"\e070"}.fa-shower:before{content:"\f2cc"}.fa-shrimp:before{content:"\e448"}.fa-random:before,.fa-shuffle:before{content:"\f074"}.fa-shuttle-space:before,.fa-space-shuttle:before{content:"\f197"}.fa-sign-hanging:before,.fa-sign:before{content:"\f4d9"}.fa-signal-5:before,.fa-signal-perfect:before,.fa-signal:before{content:"\f012"}.fa-signature:before{content:"\f5b7"}.fa-map-signs:before,.fa-signs-post:before{content:"\f277"}.fa-sim-card:before{content:"\f7c4"}.fa-sink:before{content:"\e06d"}.fa-sitemap:before{content:"\f0e8"}.fa-skull:before{content:"\f54c"}.fa-skull-crossbones:before{content:"\f714"}.fa-slash:before{content:"\f715"}.fa-sleigh:before{content:"\f7cc"}.fa-sliders-h:before,.fa-sliders:before{content:"\f1de"}.fa-smog:before{content:"\f75f"}.fa-smoking:before{content:"\f48d"}.fa-snowflake:before{content:"\f2dc"}.fa-snowman:before{content:"\f7d0"}.fa-snowplow:before{content:"\f7d2"}.fa-soap:before{content:"\e06e"}.fa-socks:before{content:"\f696"}.fa-solar-panel:before{content:"\f5ba"}.fa-sort:before,.fa-unsorted:before{content:"\f0dc"}.fa-sort-desc:before,.fa-sort-down:before{content:"\f0dd"}.fa-sort-asc:before,.fa-sort-up:before{content:"\f0de"}.fa-spa:before{content:"\f5bb"}.fa-pastafarianism:before,.fa-spaghetti-monster-flying:before{content:"\f67b"}.fa-spell-check:before{content:"\f891"}.fa-spider:before{content:"\f717"}.fa-spinner:before{content:"\f110"}.fa-splotch:before{content:"\f5bc"}.fa-spoon:before,.fa-utensil-spoon:before{content:"\f2e5"}.fa-spray-can:before{content:"\f5bd"}.fa-air-freshener:before,.fa-spray-can-sparkles:before{content:"\f5d0"}.fa-square:before{content:"\f0c8"}.fa-external-link-square:before,.fa-square-arrow-up-right:before{content:"\f14c"}.fa-caret-square-down:before,.fa-square-caret-down:before{content:"\f150"}.fa-caret-square-left:before,.fa-square-caret-left:before{content:"\f191"}.fa-caret-square-right:before,.fa-square-caret-right:before{content:"\f152"}.fa-caret-square-up:before,.fa-square-caret-up:before{content:"\f151"}.fa-check-square:before,.fa-square-check:before{content:"\f14a"}.fa-envelope-square:before,.fa-square-envelope:before{content:"\f199"}.fa-square-full:before{content:"\f45c"}.fa-h-square:before,.fa-square-h:before{content:"\f0fd"}.fa-minus-square:before,.fa-square-minus:before{content:"\f146"}.fa-square-nfi:before{content:"\e576"}.fa-parking:before,.fa-square-parking:before{content:"\f540"}.fa-pen-square:before,.fa-pencil-square:before,.fa-square-pen:before{content:"\f14b"}.fa-square-person-confined:before{content:"\e577"}.fa-phone-square:before,.fa-square-phone:before{content:"\f098"}.fa-phone-square-alt:before,.fa-square-phone-flip:before{content:"\f87b"}.fa-plus-square:before,.fa-square-plus:before{content:"\f0fe"}.fa-poll-h:before,.fa-square-poll-horizontal:before{content:"\f682"}.fa-poll:before,.fa-square-poll-vertical:before{content:"\f681"}.fa-square-root-alt:before,.fa-square-root-variable:before{content:"\f698"}.fa-rss-square:before,.fa-square-rss:before{content:"\f143"}.fa-share-alt-square:before,.fa-square-share-nodes:before{content:"\f1e1"}.fa-external-link-square-alt:before,.fa-square-up-right:before{content:"\f360"}.fa-square-virus:before{content:"\e578"}.fa-square-xmark:before,.fa-times-square:before,.fa-xmark-square:before{content:"\f2d3"}.fa-rod-asclepius:before,.fa-rod-snake:before,.fa-staff-aesculapius:before,.fa-staff-snake:before{content:"\e579"}.fa-stairs:before{content:"\e289"}.fa-stamp:before{content:"\f5bf"}.fa-stapler:before{content:"\e5af"}.fa-star:before{content:"\f005"}.fa-star-and-crescent:before{content:"\f699"}.fa-star-half:before{content:"\f089"}.fa-star-half-alt:before,.fa-star-half-stroke:before{content:"\f5c0"}.fa-star-of-david:before{content:"\f69a"}.fa-star-of-life:before{content:"\f621"}.fa-gbp:before,.fa-pound-sign:before,.fa-sterling-sign:before{content:"\f154"}.fa-stethoscope:before{content:"\f0f1"}.fa-stop:before{content:"\f04d"}.fa-stopwatch:before{content:"\f2f2"}.fa-stopwatch-20:before{content:"\e06f"}.fa-store:before{content:"\f54e"}.fa-store-slash:before{content:"\e071"}.fa-street-view:before{content:"\f21d"}.fa-strikethrough:before{content:"\f0cc"}.fa-stroopwafel:before{content:"\f551"}.fa-subscript:before{content:"\f12c"}.fa-suitcase:before{content:"\f0f2"}.fa-medkit:before,.fa-suitcase-medical:before{content:"\f0fa"}.fa-suitcase-rolling:before{content:"\f5c1"}.fa-sun:before{content:"\f185"}.fa-sun-plant-wilt:before{content:"\e57a"}.fa-superscript:before{content:"\f12b"}.fa-swatchbook:before{content:"\f5c3"}.fa-synagogue:before{content:"\f69b"}.fa-syringe:before{content:"\f48e"}.fa-t:before{content:"\54"}.fa-table:before{content:"\f0ce"}.fa-table-cells:before,.fa-th:before{content:"\f00a"}.fa-table-cells-large:before,.fa-th-large:before{content:"\f009"}.fa-columns:before,.fa-table-columns:before{content:"\f0db"}.fa-table-list:before,.fa-th-list:before{content:"\f00b"}.fa-ping-pong-paddle-ball:before,.fa-table-tennis-paddle-ball:before,.fa-table-tennis:before{content:"\f45d"}.fa-tablet-android:before,.fa-tablet:before{content:"\f3fb"}.fa-tablet-button:before{content:"\f10a"}.fa-tablet-alt:before,.fa-tablet-screen-button:before{content:"\f3fa"}.fa-tablets:before{content:"\f490"}.fa-digital-tachograph:before,.fa-tachograph-digital:before{content:"\f566"}.fa-tag:before{content:"\f02b"}.fa-tags:before{content:"\f02c"}.fa-tape:before{content:"\f4db"}.fa-tarp:before{content:"\e57b"}.fa-tarp-droplet:before{content:"\e57c"}.fa-cab:before,.fa-taxi:before{content:"\f1ba"}.fa-teeth:before{content:"\f62e"}.fa-teeth-open:before{content:"\f62f"}.fa-temperature-arrow-down:before,.fa-temperature-down:before{content:"\e03f"}.fa-temperature-arrow-up:before,.fa-temperature-up:before{content:"\e040"}.fa-temperature-0:before,.fa-temperature-empty:before,.fa-thermometer-0:before,.fa-thermometer-empty:before{content:"\f2cb"}.fa-temperature-4:before,.fa-temperature-full:before,.fa-thermometer-4:before,.fa-thermometer-full:before{content:"\f2c7"}.fa-temperature-2:before,.fa-temperature-half:before,.fa-thermometer-2:before,.fa-thermometer-half:before{content:"\f2c9"}.fa-temperature-high:before{content:"\f769"}.fa-temperature-low:before{content:"\f76b"}.fa-temperature-1:before,.fa-temperature-quarter:before,.fa-thermometer-1:before,.fa-thermometer-quarter:before{content:"\f2ca"}.fa-temperature-3:before,.fa-temperature-three-quarters:before,.fa-thermometer-3:before,.fa-thermometer-three-quarters:before{content:"\f2c8"}.fa-tenge-sign:before,.fa-tenge:before{content:"\f7d7"}.fa-tent:before{content:"\e57d"}.fa-tent-arrow-down-to-line:before{content:"\e57e"}.fa-tent-arrow-left-right:before{content:"\e57f"}.fa-tent-arrow-turn-left:before{content:"\e580"}.fa-tent-arrows-down:before{content:"\e581"}.fa-tents:before{content:"\e582"}.fa-terminal:before{content:"\f120"}.fa-text-height:before{content:"\f034"}.fa-remove-format:before,.fa-text-slash:before{content:"\f87d"}.fa-text-width:before{content:"\f035"}.fa-thermometer:before{content:"\f491"}.fa-thumbs-down:before{content:"\f165"}.fa-thumbs-up:before{content:"\f164"}.fa-thumb-tack:before,.fa-thumbtack:before{content:"\f08d"}.fa-ticket:before{content:"\f145"}.fa-ticket-alt:before,.fa-ticket-simple:before{content:"\f3ff"}.fa-timeline:before{content:"\e29c"}.fa-toggle-off:before{content:"\f204"}.fa-toggle-on:before{content:"\f205"}.fa-toilet:before{content:"\f7d8"}.fa-toilet-paper:before{content:"\f71e"}.fa-toilet-paper-slash:before{content:"\e072"}.fa-toilet-portable:before{content:"\e583"}.fa-toilets-portable:before{content:"\e584"}.fa-toolbox:before{content:"\f552"}.fa-tooth:before{content:"\f5c9"}.fa-torii-gate:before{content:"\f6a1"}.fa-tornado:before{content:"\f76f"}.fa-broadcast-tower:before,.fa-tower-broadcast:before{content:"\f519"}.fa-tower-cell:before{content:"\e585"}.fa-tower-observation:before{content:"\e586"}.fa-tractor:before{content:"\f722"}.fa-trademark:before{content:"\f25c"}.fa-traffic-light:before{content:"\f637"}.fa-trailer:before{content:"\e041"}.fa-train:before{content:"\f238"}.fa-subway:before,.fa-train-subway:before{content:"\f239"}.fa-train-tram:before{content:"\e5b4"}.fa-transgender-alt:before,.fa-transgender:before{content:"\f225"}.fa-trash:before{content:"\f1f8"}.fa-trash-arrow-up:before,.fa-trash-restore:before{content:"\f829"}.fa-trash-alt:before,.fa-trash-can:before{content:"\f2ed"}.fa-trash-can-arrow-up:before,.fa-trash-restore-alt:before{content:"\f82a"}.fa-tree:before{content:"\f1bb"}.fa-tree-city:before{content:"\e587"}.fa-exclamation-triangle:before,.fa-triangle-exclamation:before,.fa-warning:before{content:"\f071"}.fa-trophy:before{content:"\f091"}.fa-trowel:before{content:"\e589"}.fa-trowel-bricks:before{content:"\e58a"}.fa-truck:before{content:"\f0d1"}.fa-truck-arrow-right:before{content:"\e58b"}.fa-truck-droplet:before{content:"\e58c"}.fa-shipping-fast:before,.fa-truck-fast:before{content:"\f48b"}.fa-truck-field:before{content:"\e58d"}.fa-truck-field-un:before{content:"\e58e"}.fa-truck-front:before{content:"\e2b7"}.fa-ambulance:before,.fa-truck-medical:before{content:"\f0f9"}.fa-truck-monster:before{content:"\f63b"}.fa-truck-moving:before{content:"\f4df"}.fa-truck-pickup:before{content:"\f63c"}.fa-truck-plane:before{content:"\e58f"}.fa-truck-loading:before,.fa-truck-ramp-box:before{content:"\f4de"}.fa-teletype:before,.fa-tty:before{content:"\f1e4"}.fa-try:before,.fa-turkish-lira-sign:before,.fa-turkish-lira:before{content:"\e2bb"}.fa-level-down-alt:before,.fa-turn-down:before{content:"\f3be"}.fa-level-up-alt:before,.fa-turn-up:before{content:"\f3bf"}.fa-television:before,.fa-tv-alt:before,.fa-tv:before{content:"\f26c"}.fa-u:before{content:"\55"}.fa-umbrella:before{content:"\f0e9"}.fa-umbrella-beach:before{content:"\f5ca"}.fa-underline:before{content:"\f0cd"}.fa-universal-access:before{content:"\f29a"}.fa-unlock:before{content:"\f09c"}.fa-unlock-alt:before,.fa-unlock-keyhole:before{content:"\f13e"}.fa-arrows-alt-v:before,.fa-up-down:before{content:"\f338"}.fa-arrows-alt:before,.fa-up-down-left-right:before{content:"\f0b2"}.fa-long-arrow-alt-up:before,.fa-up-long:before{content:"\f30c"}.fa-expand-alt:before,.fa-up-right-and-down-left-from-center:before{content:"\f424"}.fa-external-link-alt:before,.fa-up-right-from-square:before{content:"\f35d"}.fa-upload:before{content:"\f093"}.fa-user:before{content:"\f007"}.fa-user-astronaut:before{content:"\f4fb"}.fa-user-check:before{content:"\f4fc"}.fa-user-clock:before{content:"\f4fd"}.fa-user-doctor:before,.fa-user-md:before{content:"\f0f0"}.fa-user-cog:before,.fa-user-gear:before{content:"\f4fe"}.fa-user-graduate:before{content:"\f501"}.fa-user-friends:before,.fa-user-group:before{content:"\f500"}.fa-user-injured:before{content:"\f728"}.fa-user-alt:before,.fa-user-large:before{content:"\f406"}.fa-user-alt-slash:before,.fa-user-large-slash:before{content:"\f4fa"}.fa-user-lock:before{content:"\f502"}.fa-user-minus:before{content:"\f503"}.fa-user-ninja:before{content:"\f504"}.fa-user-nurse:before{content:"\f82f"}.fa-user-edit:before,.fa-user-pen:before{content:"\f4ff"}.fa-user-plus:before{content:"\f234"}.fa-user-secret:before{content:"\f21b"}.fa-user-shield:before{content:"\f505"}.fa-user-slash:before{content:"\f506"}.fa-user-tag:before{content:"\f507"}.fa-user-tie:before{content:"\f508"}.fa-user-times:before,.fa-user-xmark:before{content:"\f235"}.fa-users:before{content:"\f0c0"}.fa-users-between-lines:before{content:"\e591"}.fa-users-cog:before,.fa-users-gear:before{content:"\f509"}.fa-users-line:before{content:"\e592"}.fa-users-rays:before{content:"\e593"}.fa-users-rectangle:before{content:"\e594"}.fa-users-slash:before{content:"\e073"}.fa-users-viewfinder:before{content:"\e595"}.fa-cutlery:before,.fa-utensils:before{content:"\f2e7"}.fa-v:before{content:"\56"}.fa-shuttle-van:before,.fa-van-shuttle:before{content:"\f5b6"}.fa-vault:before{content:"\e2c5"}.fa-vector-square:before{content:"\f5cb"}.fa-venus:before{content:"\f221"}.fa-venus-double:before{content:"\f226"}.fa-venus-mars:before{content:"\f228"}.fa-vest:before{content:"\e085"}.fa-vest-patches:before{content:"\e086"}.fa-vial:before{content:"\f492"}.fa-vial-circle-check:before{content:"\e596"}.fa-vial-virus:before{content:"\e597"}.fa-vials:before{content:"\f493"}.fa-video-camera:before,.fa-video:before{content:"\f03d"}.fa-video-slash:before{content:"\f4e2"}.fa-vihara:before{content:"\f6a7"}.fa-virus:before{content:"\e074"}.fa-virus-covid:before{content:"\e4a8"}.fa-virus-covid-slash:before{content:"\e4a9"}.fa-virus-slash:before{content:"\e075"}.fa-viruses:before{content:"\e076"}.fa-voicemail:before{content:"\f897"}.fa-volcano:before{content:"\f770"}.fa-volleyball-ball:before,.fa-volleyball:before{content:"\f45f"}.fa-volume-high:before,.fa-volume-up:before{content:"\f028"}.fa-volume-down:before,.fa-volume-low:before{content:"\f027"}.fa-volume-off:before{content:"\f026"}.fa-volume-mute:before,.fa-volume-times:before,.fa-volume-xmark:before{content:"\f6a9"}.fa-vr-cardboard:before{content:"\f729"}.fa-w:before{content:"\57"}.fa-walkie-talkie:before{content:"\f8ef"}.fa-wallet:before{content:"\f555"}.fa-magic:before,.fa-wand-magic:before{content:"\f0d0"}.fa-magic-wand-sparkles:before,.fa-wand-magic-sparkles:before{content:"\e2ca"}.fa-wand-sparkles:before{content:"\f72b"}.fa-warehouse:before{content:"\f494"}.fa-water:before{content:"\f773"}.fa-ladder-water:before,.fa-swimming-pool:before,.fa-water-ladder:before{content:"\f5c5"}.fa-wave-square:before{content:"\f83e"}.fa-weight-hanging:before{content:"\f5cd"}.fa-weight-scale:before,.fa-weight:before{content:"\f496"}.fa-wheat-alt:before,.fa-wheat-awn:before{content:"\e2cd"}.fa-wheat-awn-circle-exclamation:before{content:"\e598"}.fa-wheelchair:before{content:"\f193"}.fa-wheelchair-alt:before,.fa-wheelchair-move:before{content:"\e2ce"}.fa-glass-whiskey:before,.fa-whiskey-glass:before{content:"\f7a0"}.fa-wifi-3:before,.fa-wifi-strong:before,.fa-wifi:before{content:"\f1eb"}.fa-wind:before{content:"\f72e"}.fa-window-maximize:before{content:"\f2d0"}.fa-window-minimize:before{content:"\f2d1"}.fa-window-restore:before{content:"\f2d2"}.fa-wine-bottle:before{content:"\f72f"}.fa-wine-glass:before{content:"\f4e3"}.fa-wine-glass-alt:before,.fa-wine-glass-empty:before{content:"\f5ce"}.fa-krw:before,.fa-won-sign:before,.fa-won:before{content:"\f159"}.fa-worm:before{content:"\e599"}.fa-wrench:before{content:"\f0ad"}.fa-x:before{content:"\58"}.fa-x-ray:before{content:"\f497"}.fa-close:before,.fa-multiply:before,.fa-remove:before,.fa-times:before,.fa-xmark:before{content:"\f00d"}.fa-xmarks-lines:before{content:"\e59a"}.fa-y:before{content:"\59"}.fa-cny:before,.fa-jpy:before,.fa-rmb:before,.fa-yen-sign:before,.fa-yen:before{content:"\f157"}.fa-yin-yang:before{content:"\f6ad"}.fa-z:before{content:"\5a"}.fa-sr-only,.fa-sr-only-focusable:not(:focus),.sr-only,.sr-only-focusable:not(:focus){position:absolute;width:1px;height:1px;padding:0;margin:-1px;overflow:hidden;clip:rect(0,0,0,0);white-space:nowrap;border-width:0}:host,:root{--fa-font-brands:normal 400 1em/1 "Font Awesome 6 Brands"}.fa-brands,.fab{font-family:"Font Awesome 6 Brands";font-weight:400}.fa-42-group:before,.fa-innosoft:before{content:"\e080"}.fa-500px:before{content:"\f26e"}.fa-accessible-icon:before{content:"\f368"}.fa-accusoft:before{content:"\f369"}.fa-adn:before{content:"\f170"}.fa-adversal:before{content:"\f36a"}.fa-affiliatetheme:before{content:"\f36b"}.fa-airbnb:before{content:"\f834"}.fa-algolia:before{content:"\f36c"}.fa-alipay:before{content:"\f642"}.fa-amazon:before{content:"\f270"}.fa-amazon-pay:before{content:"\f42c"}.fa-amilia:before{content:"\f36d"}.fa-android:before{content:"\f17b"}.fa-angellist:before{content:"\f209"}.fa-angrycreative:before{content:"\f36e"}.fa-angular:before{content:"\f420"}.fa-app-store:before{content:"\f36f"}.fa-app-store-ios:before{content:"\f370"}.fa-apper:before{content:"\f371"}.fa-apple:before{content:"\f179"}.fa-apple-pay:before{content:"\f415"}.fa-artstation:before{content:"\f77a"}.fa-asymmetrik:before{content:"\f372"}.fa-atlassian:before{content:"\f77b"}.fa-audible:before{content:"\f373"}.fa-autoprefixer:before{content:"\f41c"}.fa-avianex:before{content:"\f374"}.fa-aviato:before{content:"\f421"}.fa-aws:before{content:"\f375"}.fa-bandcamp:before{content:"\f2d5"}.fa-battle-net:before{content:"\f835"}.fa-behance:before{content:"\f1b4"}.fa-bilibili:before{content:"\e3d9"}.fa-bimobject:before{content:"\f378"}.fa-bitbucket:before{content:"\f171"}.fa-bitcoin:before{content:"\f379"}.fa-bity:before{content:"\f37a"}.fa-black-tie:before{content:"\f27e"}.fa-blackberry:before{content:"\f37b"}.fa-blogger:before{content:"\f37c"}.fa-blogger-b:before{content:"\f37d"}.fa-bluetooth:before{content:"\f293"}.fa-bluetooth-b:before{content:"\f294"}.fa-bootstrap:before{content:"\f836"}.fa-bots:before{content:"\e340"}.fa-btc:before{content:"\f15a"}.fa-buffer:before{content:"\f837"}.fa-buromobelexperte:before{content:"\f37f"}.fa-buy-n-large:before{content:"\f8a6"}.fa-buysellads:before{content:"\f20d"}.fa-canadian-maple-leaf:before{content:"\f785"}.fa-cc-amazon-pay:before{content:"\f42d"}.fa-cc-amex:before{content:"\f1f3"}.fa-cc-apple-pay:before{content:"\f416"}.fa-cc-diners-club:before{content:"\f24c"}.fa-cc-discover:before{content:"\f1f2"}.fa-cc-jcb:before{content:"\f24b"}.fa-cc-mastercard:before{content:"\f1f1"}.fa-cc-paypal:before{content:"\f1f4"}.fa-cc-stripe:before{content:"\f1f5"}.fa-cc-visa:before{content:"\f1f0"}.fa-centercode:before{content:"\f380"}.fa-centos:before{content:"\f789"}.fa-chrome:before{content:"\f268"}.fa-chromecast:before{content:"\f838"}.fa-cloudflare:before{content:"\e07d"}.fa-cloudscale:before{content:"\f383"}.fa-cloudsmith:before{content:"\f384"}.fa-cloudversify:before{content:"\f385"}.fa-cmplid:before{content:"\e360"}.fa-codepen:before{content:"\f1cb"}.fa-codiepie:before{content:"\f284"}.fa-confluence:before{content:"\f78d"}.fa-connectdevelop:before{content:"\f20e"}.fa-contao:before{content:"\f26d"}.fa-cotton-bureau:before{content:"\f89e"}.fa-cpanel:before{content:"\f388"}.fa-creative-commons:before{content:"\f25e"}.fa-creative-commons-by:before{content:"\f4e7"}.fa-creative-commons-nc:before{content:"\f4e8"}.fa-creative-commons-nc-eu:before{content:"\f4e9"}.fa-creative-commons-nc-jp:before{content:"\f4ea"}.fa-creative-commons-nd:before{content:"\f4eb"}.fa-creative-commons-pd:before{content:"\f4ec"}.fa-creative-commons-pd-alt:before{content:"\f4ed"}.fa-creative-commons-remix:before{content:"\f4ee"}.fa-creative-commons-sa:before{content:"\f4ef"}.fa-creative-commons-sampling:before{content:"\f4f0"}.fa-creative-commons-sampling-plus:before{content:"\f4f1"}.fa-creative-commons-share:before{content:"\f4f2"}.fa-creative-commons-zero:before{content:"\f4f3"}.fa-critical-role:before{content:"\f6c9"}.fa-css3:before{content:"\f13c"}.fa-css3-alt:before{content:"\f38b"}.fa-cuttlefish:before{content:"\f38c"}.fa-d-and-d:before{content:"\f38d"}.fa-d-and-d-beyond:before{content:"\f6ca"}.fa-dailymotion:before{content:"\e052"}.fa-dashcube:before{content:"\f210"}.fa-deezer:before{content:"\e077"}.fa-delicious:before{content:"\f1a5"}.fa-deploydog:before{content:"\f38e"}.fa-deskpro:before{content:"\f38f"}.fa-dev:before{content:"\f6cc"}.fa-deviantart:before{content:"\f1bd"}.fa-dhl:before{content:"\f790"}.fa-diaspora:before{content:"\f791"}.fa-digg:before{content:"\f1a6"}.fa-digital-ocean:before{content:"\f391"}.fa-discord:before{content:"\f392"}.fa-discourse:before{content:"\f393"}.fa-dochub:before{content:"\f394"}.fa-docker:before{content:"\f395"}.fa-draft2digital:before{content:"\f396"}.fa-dribbble:before{content:"\f17d"}.fa-dropbox:before{content:"\f16b"}.fa-drupal:before{content:"\f1a9"}.fa-dyalog:before{content:"\f399"}.fa-earlybirds:before{content:"\f39a"}.fa-ebay:before{content:"\f4f4"}.fa-edge:before{content:"\f282"}.fa-edge-legacy:before{content:"\e078"}.fa-elementor:before{content:"\f430"}.fa-ello:before{content:"\f5f1"}.fa-ember:before{content:"\f423"}.fa-empire:before{content:"\f1d1"}.fa-envira:before{content:"\f299"}.fa-erlang:before{content:"\f39d"}.fa-ethereum:before{content:"\f42e"}.fa-etsy:before{content:"\f2d7"}.fa-evernote:before{content:"\f839"}.fa-expeditedssl:before{content:"\f23e"}.fa-facebook:before{content:"\f09a"}.fa-facebook-f:before{content:"\f39e"}.fa-facebook-messenger:before{content:"\f39f"}.fa-fantasy-flight-games:before{content:"\f6dc"}.fa-fedex:before{content:"\f797"}.fa-fedora:before{content:"\f798"}.fa-figma:before{content:"\f799"}.fa-firefox:before{content:"\f269"}.fa-firefox-browser:before{content:"\e007"}.fa-first-order:before{content:"\f2b0"}.fa-first-order-alt:before{content:"\f50a"}.fa-firstdraft:before{content:"\f3a1"}.fa-flickr:before{content:"\f16e"}.fa-flipboard:before{content:"\f44d"}.fa-fly:before{content:"\f417"}.fa-font-awesome-flag:before,.fa-font-awesome-logo-full:before,.fa-font-awesome:before{content:"\f2b4"}.fa-fonticons:before{content:"\f280"}.fa-fonticons-fi:before{content:"\f3a2"}.fa-fort-awesome:before{content:"\f286"}.fa-fort-awesome-alt:before{content:"\f3a3"}.fa-forumbee:before{content:"\f211"}.fa-foursquare:before{content:"\f180"}.fa-free-code-camp:before{content:"\f2c5"}.fa-freebsd:before{content:"\f3a4"}.fa-fulcrum:before{content:"\f50b"}.fa-galactic-republic:before{content:"\f50c"}.fa-galactic-senate:before{content:"\f50d"}.fa-get-pocket:before{content:"\f265"}.fa-gg:before{content:"\f260"}.fa-gg-circle:before{content:"\f261"}.fa-git:before{content:"\f1d3"}.fa-git-alt:before{content:"\f841"}.fa-github:before{content:"\f09b"}.fa-github-alt:before{content:"\f113"}.fa-gitkraken:before{content:"\f3a6"}.fa-gitlab:before{content:"\f296"}.fa-gitter:before{content:"\f426"}.fa-glide:before{content:"\f2a5"}.fa-glide-g:before{content:"\f2a6"}.fa-gofore:before{content:"\f3a7"}.fa-golang:before{content:"\e40f"}.fa-goodreads:before{content:"\f3a8"}.fa-goodreads-g:before{content:"\f3a9"}.fa-google:before{content:"\f1a0"}.fa-google-drive:before{content:"\f3aa"}.fa-google-pay:before{content:"\e079"}.fa-google-play:before{content:"\f3ab"}.fa-google-plus:before{content:"\f2b3"}.fa-google-plus-g:before{content:"\f0d5"}.fa-google-wallet:before{content:"\f1ee"}.fa-gratipay:before{content:"\f184"}.fa-grav:before{content:"\f2d6"}.fa-gripfire:before{content:"\f3ac"}.fa-grunt:before{content:"\f3ad"}.fa-guilded:before{content:"\e07e"}.fa-gulp:before{content:"\f3ae"}.fa-hacker-news:before{content:"\f1d4"}.fa-hackerrank:before{content:"\f5f7"}.fa-hashnode:before{content:"\e499"}.fa-hips:before{content:"\f452"}.fa-hire-a-helper:before{content:"\f3b0"}.fa-hive:before{content:"\e07f"}.fa-hooli:before{content:"\f427"}.fa-hornbill:before{content:"\f592"}.fa-hotjar:before{content:"\f3b1"}.fa-houzz:before{content:"\f27c"}.fa-html5:before{content:"\f13b"}.fa-hubspot:before{content:"\f3b2"}.fa-ideal:before{content:"\e013"}.fa-imdb:before{content:"\f2d8"}.fa-instagram:before{content:"\f16d"}.fa-instalod:before{content:"\e081"}.fa-intercom:before{content:"\f7af"}.fa-internet-explorer:before{content:"\f26b"}.fa-invision:before{content:"\f7b0"}.fa-ioxhost:before{content:"\f208"}.fa-itch-io:before{content:"\f83a"}.fa-itunes:before{content:"\f3b4"}.fa-itunes-note:before{content:"\f3b5"}.fa-java:before{content:"\f4e4"}.fa-jedi-order:before{content:"\f50e"}.fa-jenkins:before{content:"\f3b6"}.fa-jira:before{content:"\f7b1"}.fa-joget:before{content:"\f3b7"}.fa-joomla:before{content:"\f1aa"}.fa-js:before{content:"\f3b8"}.fa-jsfiddle:before{content:"\f1cc"}.fa-kaggle:before{content:"\f5fa"}.fa-keybase:before{content:"\f4f5"}.fa-keycdn:before{content:"\f3ba"}.fa-kickstarter:before{content:"\f3bb"}.fa-kickstarter-k:before{content:"\f3bc"}.fa-korvue:before{content:"\f42f"}.fa-laravel:before{content:"\f3bd"}.fa-lastfm:before{content:"\f202"}.fa-leanpub:before{content:"\f212"}.fa-less:before{content:"\f41d"}.fa-line:before{content:"\f3c0"}.fa-linkedin:before{content:"\f08c"}.fa-linkedin-in:before{content:"\f0e1"}.fa-linode:before{content:"\f2b8"}.fa-linux:before{content:"\f17c"}.fa-lyft:before{content:"\f3c3"}.fa-magento:before{content:"\f3c4"}.fa-mailchimp:before{content:"\f59e"}.fa-mandalorian:before{content:"\f50f"}.fa-markdown:before{content:"\f60f"}.fa-mastodon:before{content:"\f4f6"}.fa-maxcdn:before{content:"\f136"}.fa-mdb:before{content:"\f8ca"}.fa-medapps:before{content:"\f3c6"}.fa-medium-m:before,.fa-medium:before{content:"\f23a"}.fa-medrt:before{content:"\f3c8"}.fa-meetup:before{content:"\f2e0"}.fa-megaport:before{content:"\f5a3"}.fa-mendeley:before{content:"\f7b3"}.fa-meta:before{content:"\e49b"}.fa-microblog:before{content:"\e01a"}.fa-microsoft:before{content:"\f3ca"}.fa-mix:before{content:"\f3cb"}.fa-mixcloud:before{content:"\f289"}.fa-mixer:before{content:"\e056"}.fa-mizuni:before{content:"\f3cc"}.fa-modx:before{content:"\f285"}.fa-monero:before{content:"\f3d0"}.fa-napster:before{content:"\f3d2"}.fa-neos:before{content:"\f612"}.fa-nfc-directional:before{content:"\e530"}.fa-nfc-symbol:before{content:"\e531"}.fa-nimblr:before{content:"\f5a8"}.fa-node:before{content:"\f419"}.fa-node-js:before{content:"\f3d3"}.fa-npm:before{content:"\f3d4"}.fa-ns8:before{content:"\f3d5"}.fa-nutritionix:before{content:"\f3d6"}.fa-octopus-deploy:before{content:"\e082"}.fa-odnoklassniki:before{content:"\f263"}.fa-old-republic:before{content:"\f510"}.fa-opencart:before{content:"\f23d"}.fa-openid:before{content:"\f19b"}.fa-opera:before{content:"\f26a"}.fa-optin-monster:before{content:"\f23c"}.fa-orcid:before{content:"\f8d2"}.fa-osi:before{content:"\f41a"}.fa-padlet:before{content:"\e4a0"}.fa-page4:before{content:"\f3d7"}.fa-pagelines:before{content:"\f18c"}.fa-palfed:before{content:"\f3d8"}.fa-patreon:before{content:"\f3d9"}.fa-paypal:before{content:"\f1ed"}.fa-perbyte:before{content:"\e083"}.fa-periscope:before{content:"\f3da"}.fa-phabricator:before{content:"\f3db"}.fa-phoenix-framework:before{content:"\f3dc"}.fa-phoenix-squadron:before{content:"\f511"}.fa-php:before{content:"\f457"}.fa-pied-piper:before{content:"\f2ae"}.fa-pied-piper-alt:before{content:"\f1a8"}.fa-pied-piper-hat:before{content:"\f4e5"}.fa-pied-piper-pp:before{content:"\f1a7"}.fa-pinterest:before{content:"\f0d2"}.fa-pinterest-p:before{content:"\f231"}.fa-pix:before{content:"\e43a"}.fa-playstation:before{content:"\f3df"}.fa-product-hunt:before{content:"\f288"}.fa-pushed:before{content:"\f3e1"}.fa-python:before{content:"\f3e2"}.fa-qq:before{content:"\f1d6"}.fa-quinscape:before{content:"\f459"}.fa-quora:before{content:"\f2c4"}.fa-r-project:before{content:"\f4f7"}.fa-raspberry-pi:before{content:"\f7bb"}.fa-ravelry:before{content:"\f2d9"}.fa-react:before{content:"\f41b"}.fa-reacteurope:before{content:"\f75d"}.fa-readme:before{content:"\f4d5"}.fa-rebel:before{content:"\f1d0"}.fa-red-river:before{content:"\f3e3"}.fa-reddit:before{content:"\f1a1"}.fa-reddit-alien:before{content:"\f281"}.fa-redhat:before{content:"\f7bc"}.fa-renren:before{content:"\f18b"}.fa-replyd:before{content:"\f3e6"}.fa-researchgate:before{content:"\f4f8"}.fa-resolving:before{content:"\f3e7"}.fa-rev:before{content:"\f5b2"}.fa-rocketchat:before{content:"\f3e8"}.fa-rockrms:before{content:"\f3e9"}.fa-rust:before{content:"\e07a"}.fa-safari:before{content:"\f267"}.fa-salesforce:before{content:"\f83b"}.fa-sass:before{content:"\f41e"}.fa-schlix:before{content:"\f3ea"}.fa-screenpal:before{content:"\e570"}.fa-scribd:before{content:"\f28a"}.fa-searchengin:before{content:"\f3eb"}.fa-sellcast:before{content:"\f2da"}.fa-sellsy:before{content:"\f213"}.fa-servicestack:before{content:"\f3ec"}.fa-shirtsinbulk:before{content:"\f214"}.fa-shopify:before{content:"\e057"}.fa-shopware:before{content:"\f5b5"}.fa-simplybuilt:before{content:"\f215"}.fa-sistrix:before{content:"\f3ee"}.fa-sith:before{content:"\f512"}.fa-sitrox:before{content:"\e44a"}.fa-sketch:before{content:"\f7c6"}.fa-skyatlas:before{content:"\f216"}.fa-skype:before{content:"\f17e"}.fa-slack-hash:before,.fa-slack:before{content:"\f198"}.fa-slideshare:before{content:"\f1e7"}.fa-snapchat-ghost:before,.fa-snapchat:before{content:"\f2ab"}.fa-soundcloud:before{content:"\f1be"}.fa-sourcetree:before{content:"\f7d3"}.fa-space-awesome:before{content:"\e5ac"}.fa-speakap:before{content:"\f3f3"}.fa-speaker-deck:before{content:"\f83c"}.fa-spotify:before{content:"\f1bc"}.fa-behance-square:before,.fa-square-behance:before{content:"\f1b5"}.fa-dribbble-square:before,.fa-square-dribbble:before{content:"\f397"}.fa-facebook-square:before,.fa-square-facebook:before{content:"\f082"}.fa-square-font-awesome:before{content:"\e5ad"}.fa-font-awesome-alt:before,.fa-square-font-awesome-stroke:before{content:"\f35c"}.fa-git-square:before,.fa-square-git:before{content:"\f1d2"}.fa-github-square:before,.fa-square-github:before{content:"\f092"}.fa-gitlab-square:before,.fa-square-gitlab:before{content:"\e5ae"}.fa-google-plus-square:before,.fa-square-google-plus:before{content:"\f0d4"}.fa-hacker-news-square:before,.fa-square-hacker-news:before{content:"\f3af"}.fa-instagram-square:before,.fa-square-instagram:before{content:"\e055"}.fa-js-square:before,.fa-square-js:before{content:"\f3b9"}.fa-lastfm-square:before,.fa-square-lastfm:before{content:"\f203"}.fa-odnoklassniki-square:before,.fa-square-odnoklassniki:before{content:"\f264"}.fa-pied-piper-square:before,.fa-square-pied-piper:before{content:"\e01e"}.fa-pinterest-square:before,.fa-square-pinterest:before{content:"\f0d3"}.fa-reddit-square:before,.fa-square-reddit:before{content:"\f1a2"}.fa-snapchat-square:before,.fa-square-snapchat:before{content:"\f2ad"}.fa-square-steam:before,.fa-steam-square:before{content:"\f1b7"}.fa-square-tumblr:before,.fa-tumblr-square:before{content:"\f174"}.fa-square-twitter:before,.fa-twitter-square:before{content:"\f081"}.fa-square-viadeo:before,.fa-viadeo-square:before{content:"\f2aa"}.fa-square-vimeo:before,.fa-vimeo-square:before{content:"\f194"}.fa-square-whatsapp:before,.fa-whatsapp-square:before{content:"\f40c"}.fa-square-xing:before,.fa-xing-square:before{content:"\f169"}.fa-square-youtube:before,.fa-youtube-square:before{content:"\f431"}.fa-squarespace:before{content:"\f5be"}.fa-stack-exchange:before{content:"\f18d"}.fa-stack-overflow:before{content:"\f16c"}.fa-stackpath:before{content:"\f842"}.fa-staylinked:before{content:"\f3f5"}.fa-steam:before{content:"\f1b6"}.fa-steam-symbol:before{content:"\f3f6"}.fa-sticker-mule:before{content:"\f3f7"}.fa-strava:before{content:"\f428"}.fa-stripe:before{content:"\f429"}.fa-stripe-s:before{content:"\f42a"}.fa-studiovinari:before{content:"\f3f8"}.fa-stumbleupon:before{content:"\f1a4"}.fa-stumbleupon-circle:before{content:"\f1a3"}.fa-superpowers:before{content:"\f2dd"}.fa-supple:before{content:"\f3f9"}.fa-suse:before{content:"\f7d6"}.fa-swift:before{content:"\f8e1"}.fa-symfony:before{content:"\f83d"}.fa-teamspeak:before{content:"\f4f9"}.fa-telegram-plane:before,.fa-telegram:before{content:"\f2c6"}.fa-tencent-weibo:before{content:"\f1d5"}.fa-the-red-yeti:before{content:"\f69d"}.fa-themeco:before{content:"\f5c6"}.fa-themeisle:before{content:"\f2b2"}.fa-think-peaks:before{content:"\f731"}.fa-tiktok:before{content:"\e07b"}.fa-trade-federation:before{content:"\f513"}.fa-trello:before{content:"\f181"}.fa-tumblr:before{content:"\f173"}.fa-twitch:before{content:"\f1e8"}.fa-twitter:before{content:"\f099"}.fa-typo3:before{content:"\f42b"}.fa-uber:before{content:"\f402"}.fa-ubuntu:before{content:"\f7df"}.fa-uikit:before{content:"\f403"}.fa-umbraco:before{content:"\f8e8"}.fa-uncharted:before{content:"\e084"}.fa-uniregistry:before{content:"\f404"}.fa-unity:before{content:"\e049"}.fa-unsplash:before{content:"\e07c"}.fa-untappd:before{content:"\f405"}.fa-ups:before{content:"\f7e0"}.fa-usb:before{content:"\f287"}.fa-usps:before{content:"\f7e1"}.fa-ussunnah:before{content:"\f407"}.fa-vaadin:before{content:"\f408"}.fa-viacoin:before{content:"\f237"}.fa-viadeo:before{content:"\f2a9"}.fa-viber:before{content:"\f409"}.fa-vimeo:before{content:"\f40a"}.fa-vimeo-v:before{content:"\f27d"}.fa-vine:before{content:"\f1ca"}.fa-vk:before{content:"\f189"}.fa-vnv:before{content:"\f40b"}.fa-vuejs:before{content:"\f41f"}.fa-watchman-monitoring:before{content:"\e087"}.fa-waze:before{content:"\f83f"}.fa-weebly:before{content:"\f5cc"}.fa-weibo:before{content:"\f18a"}.fa-weixin:before{content:"\f1d7"}.fa-whatsapp:before{content:"\f232"}.fa-whmcs:before{content:"\f40d"}.fa-wikipedia-w:before{content:"\f266"}.fa-windows:before{content:"\f17a"}.fa-wirsindhandwerk:before,.fa-wsh:before{content:"\e2d0"}.fa-wix:before{content:"\f5cf"}.fa-wizards-of-the-coast:before{content:"\f730"}.fa-wodu:before{content:"\e088"}.fa-wolf-pack-battalion:before{content:"\f514"}.fa-wordpress:before{content:"\f19a"}.fa-wordpress-simple:before{content:"\f411"}.fa-wpbeginner:before{content:"\f297"}.fa-wpexplorer:before{content:"\f2de"}.fa-wpforms:before{content:"\f298"}.fa-rendact:before,.fa-wpressr:before{content:"\f3e4"}.fa-xbox:before{content:"\f412"}.fa-xing:before{content:"\f168"}.fa-y-combinator:before{content:"\f23b"}.fa-yahoo:before{content:"\f19e"}.fa-yammer:before{content:"\f840"}.fa-yandex:before{content:"\f413"}.fa-yandex-international:before{content:"\f414"}.fa-yarn:before{content:"\f7e3"}.fa-yelp:before{content:"\f1e9"}.fa-yoast:before{content:"\f2b1"}.fa-youtube:before{content:"\f167"}.fa-zhihu:before{content:"\f63f"}:host,:root{--fa-font-regular:normal 400 1em/1 "Font Awesome 6 Free"}@font-face{font-family:"Font Awesome 6 Free";font-style:normal;font-weight:400;font-display:block;src:url(fa-regular-400.ttf) format("truetype")}.fa-regular,.far{font-family:"Font Awesome 6 Free";font-weight:400}:host,:root{--fa-font-solid:normal 900 1em/1 "Font Awesome 6 Free"}@font-face{font-family:"Font Awesome 6 Free";font-style:normal;font-weight:900;font-display:block;src:url(fa-solid-900.ttf) format("truetype")}.fa-solid,.fas{font-family:"Font Awesome 6 Free";font-weight:900}@font-face{font-family:"Font Awesome 5 Free";font-display:block;font-weight:900;src:url(fa-solid-900.ttf) format("truetype")}@font-face{font-family:"Font Awesome 5 Free";font-display:block;font-weight:400;src:url(fa-regular-400.ttf) format("truetype")}@font-face{font-family:"FontAwesome";font-display:block;src:url(fa-solid-900.ttf) format("truetype")}@font-face{font-family:"FontAwesome";font-display:block;src:url(fa-regular-400.ttf) format("truetype");unicode-range:u+f003,u+f006,u+f014,u+f016-f017,u+f01a-f01b,u+f01d,u+f022,u+f03e,u+f044,u+f046,u+f05c-f05d,u+f06e,u+f070,u+f087-f088,u+f08a,u+f094,u+f096-f097,u+f09d,u+f0a0,u+f0a2,u+f0a4-f0a7,u+f0c5,u+f0c7,u+f0e5-f0e6,u+f0eb,u+f0f6-f0f8,u+f10c,u+f114-f115,u+f118-f11a,u+f11c-f11d,u+f133,u+f147,u+f14e,u+f150-f152,u+f185-f186,u+f18e,u+f190-f192,u+f196,u+f1c1-f1c9,u+f1d9,u+f1db,u+f1e3,u+f1ea,u+f1f7,u+f1f9,u+f20a,u+f247-f248,u+f24a,u+f24d,u+f255-f25b,u+f25d,u+f271-f274,u+f278,u+f27b,u+f28c,u+f28e,u+f29c,u+f2b5,u+f2b7,u+f2ba,u+f2bc,u+f2be,u+f2c0-f2c1,u+f2c3,u+f2d0,u+f2d2,u+f2d4,u+f2dc}@font-face{font-family:"FontAwesome";font-display:block;src:url(fa-v4compatibility.ttf) format("truetype");unicode-range:u+f041,u+f047,u+f065-f066,u+f07d-f07e,u+f080,u+f08b,u+f08e,u+f090,u+f09a,u+f0ac,u+f0ae,u+f0b2,u+f0d0,u+f0d6,u+f0e4,u+f0ec,u+f10a-f10b,u+f123,u+f13e,u+f148-f149,u+f14c,u+f156,u+f15e,u+f160-f161,u+f163,u+f175-f178,u+f195,u+f1f8,u+f219,u+f27a} diff --git a/html/font-awesome/css/v4-shims.min.css b/html/font-awesome/css/v4-shims.min.css index 5f3fdc598c..2f6252b52a 100644 --- a/html/font-awesome/css/v4-shims.min.css +++ b/html/font-awesome/css/v4-shims.min.css @@ -1,5 +1,6 @@ /*! - * Font Awesome Free 5.9.0 by @fontawesome - https://fontawesome.com + * Font Awesome Free 6.1.2 by @fontawesome - https://fontawesome.com * License - https://fontawesome.com/license/free (Icons: CC BY 4.0, Fonts: SIL OFL 1.1, Code: MIT License) + * Copyright 2022 Fonticons, Inc. */ -.fa.fa-glass:before{content:"\f000"}.fa.fa-meetup{font-family:"Font Awesome 5 Brands";font-weight:400}.fa.fa-star-o{font-family:"Font Awesome 5 Free";font-weight:400}.fa.fa-star-o:before{content:"\f005"}.fa.fa-close:before,.fa.fa-remove:before{content:"\f00d"}.fa.fa-gear:before{content:"\f013"}.fa.fa-trash-o{font-family:"Font Awesome 5 Free";font-weight:400}.fa.fa-trash-o:before{content:"\f2ed"}.fa.fa-file-o{font-family:"Font Awesome 5 Free";font-weight:400}.fa.fa-file-o:before{content:"\f15b"}.fa.fa-clock-o{font-family:"Font Awesome 5 Free";font-weight:400}.fa.fa-clock-o:before{content:"\f017"}.fa.fa-arrow-circle-o-down{font-family:"Font Awesome 5 Free";font-weight:400}.fa.fa-arrow-circle-o-down:before{content:"\f358"}.fa.fa-arrow-circle-o-up{font-family:"Font Awesome 5 Free";font-weight:400}.fa.fa-arrow-circle-o-up:before{content:"\f35b"}.fa.fa-play-circle-o{font-family:"Font Awesome 5 Free";font-weight:400}.fa.fa-play-circle-o:before{content:"\f144"}.fa.fa-repeat:before,.fa.fa-rotate-right:before{content:"\f01e"}.fa.fa-refresh:before{content:"\f021"}.fa.fa-list-alt{font-family:"Font Awesome 5 Free";font-weight:400}.fa.fa-dedent:before{content:"\f03b"}.fa.fa-video-camera:before{content:"\f03d"}.fa.fa-picture-o{font-family:"Font Awesome 5 Free";font-weight:400}.fa.fa-picture-o:before{content:"\f03e"}.fa.fa-photo{font-family:"Font Awesome 5 Free";font-weight:400}.fa.fa-photo:before{content:"\f03e"}.fa.fa-image{font-family:"Font Awesome 5 Free";font-weight:400}.fa.fa-image:before{content:"\f03e"}.fa.fa-pencil:before{content:"\f303"}.fa.fa-map-marker:before{content:"\f3c5"}.fa.fa-pencil-square-o{font-family:"Font Awesome 5 Free";font-weight:400}.fa.fa-pencil-square-o:before{content:"\f044"}.fa.fa-share-square-o{font-family:"Font Awesome 5 Free";font-weight:400}.fa.fa-share-square-o:before{content:"\f14d"}.fa.fa-check-square-o{font-family:"Font Awesome 5 Free";font-weight:400}.fa.fa-check-square-o:before{content:"\f14a"}.fa.fa-arrows:before{content:"\f0b2"}.fa.fa-times-circle-o{font-family:"Font Awesome 5 Free";font-weight:400}.fa.fa-times-circle-o:before{content:"\f057"}.fa.fa-check-circle-o{font-family:"Font Awesome 5 Free";font-weight:400}.fa.fa-check-circle-o:before{content:"\f058"}.fa.fa-mail-forward:before{content:"\f064"}.fa.fa-eye,.fa.fa-eye-slash{font-family:"Font Awesome 5 Free";font-weight:400}.fa.fa-warning:before{content:"\f071"}.fa.fa-calendar:before{content:"\f073"}.fa.fa-arrows-v:before{content:"\f338"}.fa.fa-arrows-h:before{content:"\f337"}.fa.fa-bar-chart{font-family:"Font Awesome 5 Free";font-weight:400}.fa.fa-bar-chart:before{content:"\f080"}.fa.fa-bar-chart-o{font-family:"Font Awesome 5 Free";font-weight:400}.fa.fa-bar-chart-o:before{content:"\f080"}.fa.fa-facebook-square,.fa.fa-twitter-square{font-family:"Font Awesome 5 Brands";font-weight:400}.fa.fa-gears:before{content:"\f085"}.fa.fa-thumbs-o-up{font-family:"Font Awesome 5 Free";font-weight:400}.fa.fa-thumbs-o-up:before{content:"\f164"}.fa.fa-thumbs-o-down{font-family:"Font Awesome 5 Free";font-weight:400}.fa.fa-thumbs-o-down:before{content:"\f165"}.fa.fa-heart-o{font-family:"Font Awesome 5 Free";font-weight:400}.fa.fa-heart-o:before{content:"\f004"}.fa.fa-sign-out:before{content:"\f2f5"}.fa.fa-linkedin-square{font-family:"Font Awesome 5 Brands";font-weight:400}.fa.fa-linkedin-square:before{content:"\f08c"}.fa.fa-thumb-tack:before{content:"\f08d"}.fa.fa-external-link:before{content:"\f35d"}.fa.fa-sign-in:before{content:"\f2f6"}.fa.fa-github-square{font-family:"Font Awesome 5 Brands";font-weight:400}.fa.fa-lemon-o{font-family:"Font Awesome 5 Free";font-weight:400}.fa.fa-lemon-o:before{content:"\f094"}.fa.fa-square-o{font-family:"Font Awesome 5 Free";font-weight:400}.fa.fa-square-o:before{content:"\f0c8"}.fa.fa-bookmark-o{font-family:"Font Awesome 5 Free";font-weight:400}.fa.fa-bookmark-o:before{content:"\f02e"}.fa.fa-facebook,.fa.fa-twitter{font-family:"Font Awesome 5 Brands";font-weight:400}.fa.fa-facebook:before{content:"\f39e"}.fa.fa-facebook-f{font-family:"Font Awesome 5 Brands";font-weight:400}.fa.fa-facebook-f:before{content:"\f39e"}.fa.fa-github{font-family:"Font Awesome 5 Brands";font-weight:400}.fa.fa-credit-card{font-family:"Font Awesome 5 Free";font-weight:400}.fa.fa-feed:before{content:"\f09e"}.fa.fa-hdd-o{font-family:"Font Awesome 5 Free";font-weight:400}.fa.fa-hdd-o:before{content:"\f0a0"}.fa.fa-hand-o-right{font-family:"Font Awesome 5 Free";font-weight:400}.fa.fa-hand-o-right:before{content:"\f0a4"}.fa.fa-hand-o-left{font-family:"Font Awesome 5 Free";font-weight:400}.fa.fa-hand-o-left:before{content:"\f0a5"}.fa.fa-hand-o-up{font-family:"Font Awesome 5 Free";font-weight:400}.fa.fa-hand-o-up:before{content:"\f0a6"}.fa.fa-hand-o-down{font-family:"Font Awesome 5 Free";font-weight:400}.fa.fa-hand-o-down:before{content:"\f0a7"}.fa.fa-arrows-alt:before{content:"\f31e"}.fa.fa-group:before{content:"\f0c0"}.fa.fa-chain:before{content:"\f0c1"}.fa.fa-scissors:before{content:"\f0c4"}.fa.fa-files-o{font-family:"Font Awesome 5 Free";font-weight:400}.fa.fa-files-o:before{content:"\f0c5"}.fa.fa-floppy-o{font-family:"Font Awesome 5 Free";font-weight:400}.fa.fa-floppy-o:before{content:"\f0c7"}.fa.fa-navicon:before,.fa.fa-reorder:before{content:"\f0c9"}.fa.fa-google-plus,.fa.fa-google-plus-square,.fa.fa-pinterest,.fa.fa-pinterest-square{font-family:"Font Awesome 5 Brands";font-weight:400}.fa.fa-google-plus:before{content:"\f0d5"}.fa.fa-money{font-family:"Font Awesome 5 Free";font-weight:400}.fa.fa-money:before{content:"\f3d1"}.fa.fa-unsorted:before{content:"\f0dc"}.fa.fa-sort-desc:before{content:"\f0dd"}.fa.fa-sort-asc:before{content:"\f0de"}.fa.fa-linkedin{font-family:"Font Awesome 5 Brands";font-weight:400}.fa.fa-linkedin:before{content:"\f0e1"}.fa.fa-rotate-left:before{content:"\f0e2"}.fa.fa-legal:before{content:"\f0e3"}.fa.fa-dashboard:before,.fa.fa-tachometer:before{content:"\f3fd"}.fa.fa-comment-o{font-family:"Font Awesome 5 Free";font-weight:400}.fa.fa-comment-o:before{content:"\f075"}.fa.fa-comments-o{font-family:"Font Awesome 5 Free";font-weight:400}.fa.fa-comments-o:before{content:"\f086"}.fa.fa-flash:before{content:"\f0e7"}.fa.fa-clipboard,.fa.fa-paste{font-family:"Font Awesome 5 Free";font-weight:400}.fa.fa-paste:before{content:"\f328"}.fa.fa-lightbulb-o{font-family:"Font Awesome 5 Free";font-weight:400}.fa.fa-lightbulb-o:before{content:"\f0eb"}.fa.fa-exchange:before{content:"\f362"}.fa.fa-cloud-download:before{content:"\f381"}.fa.fa-cloud-upload:before{content:"\f382"}.fa.fa-bell-o{font-family:"Font Awesome 5 Free";font-weight:400}.fa.fa-bell-o:before{content:"\f0f3"}.fa.fa-cutlery:before{content:"\f2e7"}.fa.fa-file-text-o{font-family:"Font Awesome 5 Free";font-weight:400}.fa.fa-file-text-o:before{content:"\f15c"}.fa.fa-building-o{font-family:"Font Awesome 5 Free";font-weight:400}.fa.fa-building-o:before{content:"\f1ad"}.fa.fa-hospital-o{font-family:"Font Awesome 5 Free";font-weight:400}.fa.fa-hospital-o:before{content:"\f0f8"}.fa.fa-tablet:before{content:"\f3fa"}.fa.fa-mobile-phone:before,.fa.fa-mobile:before{content:"\f3cd"}.fa.fa-circle-o{font-family:"Font Awesome 5 Free";font-weight:400}.fa.fa-circle-o:before{content:"\f111"}.fa.fa-mail-reply:before{content:"\f3e5"}.fa.fa-github-alt{font-family:"Font Awesome 5 Brands";font-weight:400}.fa.fa-folder-o{font-family:"Font Awesome 5 Free";font-weight:400}.fa.fa-folder-o:before{content:"\f07b"}.fa.fa-folder-open-o{font-family:"Font Awesome 5 Free";font-weight:400}.fa.fa-folder-open-o:before{content:"\f07c"}.fa.fa-smile-o{font-family:"Font Awesome 5 Free";font-weight:400}.fa.fa-smile-o:before{content:"\f118"}.fa.fa-frown-o{font-family:"Font Awesome 5 Free";font-weight:400}.fa.fa-frown-o:before{content:"\f119"}.fa.fa-meh-o{font-family:"Font Awesome 5 Free";font-weight:400}.fa.fa-meh-o:before{content:"\f11a"}.fa.fa-keyboard-o{font-family:"Font Awesome 5 Free";font-weight:400}.fa.fa-keyboard-o:before{content:"\f11c"}.fa.fa-flag-o{font-family:"Font Awesome 5 Free";font-weight:400}.fa.fa-flag-o:before{content:"\f024"}.fa.fa-mail-reply-all:before{content:"\f122"}.fa.fa-star-half-o{font-family:"Font Awesome 5 Free";font-weight:400}.fa.fa-star-half-o:before{content:"\f089"}.fa.fa-star-half-empty{font-family:"Font Awesome 5 Free";font-weight:400}.fa.fa-star-half-empty:before{content:"\f089"}.fa.fa-star-half-full{font-family:"Font Awesome 5 Free";font-weight:400}.fa.fa-star-half-full:before{content:"\f089"}.fa.fa-code-fork:before{content:"\f126"}.fa.fa-chain-broken:before{content:"\f127"}.fa.fa-shield:before{content:"\f3ed"}.fa.fa-calendar-o{font-family:"Font Awesome 5 Free";font-weight:400}.fa.fa-calendar-o:before{content:"\f133"}.fa.fa-css3,.fa.fa-html5,.fa.fa-maxcdn{font-family:"Font Awesome 5 Brands";font-weight:400}.fa.fa-ticket:before{content:"\f3ff"}.fa.fa-minus-square-o{font-family:"Font Awesome 5 Free";font-weight:400}.fa.fa-minus-square-o:before{content:"\f146"}.fa.fa-level-up:before{content:"\f3bf"}.fa.fa-level-down:before{content:"\f3be"}.fa.fa-pencil-square:before{content:"\f14b"}.fa.fa-external-link-square:before{content:"\f360"}.fa.fa-compass{font-family:"Font Awesome 5 Free";font-weight:400}.fa.fa-caret-square-o-down{font-family:"Font Awesome 5 Free";font-weight:400}.fa.fa-caret-square-o-down:before{content:"\f150"}.fa.fa-toggle-down{font-family:"Font Awesome 5 Free";font-weight:400}.fa.fa-toggle-down:before{content:"\f150"}.fa.fa-caret-square-o-up{font-family:"Font Awesome 5 Free";font-weight:400}.fa.fa-caret-square-o-up:before{content:"\f151"}.fa.fa-toggle-up{font-family:"Font Awesome 5 Free";font-weight:400}.fa.fa-toggle-up:before{content:"\f151"}.fa.fa-caret-square-o-right{font-family:"Font Awesome 5 Free";font-weight:400}.fa.fa-caret-square-o-right:before{content:"\f152"}.fa.fa-toggle-right{font-family:"Font Awesome 5 Free";font-weight:400}.fa.fa-toggle-right:before{content:"\f152"}.fa.fa-eur:before,.fa.fa-euro:before{content:"\f153"}.fa.fa-gbp:before{content:"\f154"}.fa.fa-dollar:before,.fa.fa-usd:before{content:"\f155"}.fa.fa-inr:before,.fa.fa-rupee:before{content:"\f156"}.fa.fa-cny:before,.fa.fa-jpy:before,.fa.fa-rmb:before,.fa.fa-yen:before{content:"\f157"}.fa.fa-rouble:before,.fa.fa-rub:before,.fa.fa-ruble:before{content:"\f158"}.fa.fa-krw:before,.fa.fa-won:before{content:"\f159"}.fa.fa-bitcoin,.fa.fa-btc{font-family:"Font Awesome 5 Brands";font-weight:400}.fa.fa-bitcoin:before{content:"\f15a"}.fa.fa-file-text:before{content:"\f15c"}.fa.fa-sort-alpha-asc:before{content:"\f15d"}.fa.fa-sort-alpha-desc:before{content:"\f15e"}.fa.fa-sort-amount-asc:before{content:"\f160"}.fa.fa-sort-amount-desc:before{content:"\f161"}.fa.fa-sort-numeric-asc:before{content:"\f162"}.fa.fa-sort-numeric-desc:before{content:"\f163"}.fa.fa-xing,.fa.fa-xing-square,.fa.fa-youtube,.fa.fa-youtube-play,.fa.fa-youtube-square{font-family:"Font Awesome 5 Brands";font-weight:400}.fa.fa-youtube-play:before{content:"\f167"}.fa.fa-adn,.fa.fa-bitbucket,.fa.fa-bitbucket-square,.fa.fa-dropbox,.fa.fa-flickr,.fa.fa-instagram,.fa.fa-stack-overflow{font-family:"Font Awesome 5 Brands";font-weight:400}.fa.fa-bitbucket-square:before{content:"\f171"}.fa.fa-tumblr,.fa.fa-tumblr-square{font-family:"Font Awesome 5 Brands";font-weight:400}.fa.fa-long-arrow-down:before{content:"\f309"}.fa.fa-long-arrow-up:before{content:"\f30c"}.fa.fa-long-arrow-left:before{content:"\f30a"}.fa.fa-long-arrow-right:before{content:"\f30b"}.fa.fa-android,.fa.fa-apple,.fa.fa-dribbble,.fa.fa-foursquare,.fa.fa-gittip,.fa.fa-gratipay,.fa.fa-linux,.fa.fa-skype,.fa.fa-trello,.fa.fa-windows{font-family:"Font Awesome 5 Brands";font-weight:400}.fa.fa-gittip:before{content:"\f184"}.fa.fa-sun-o{font-family:"Font Awesome 5 Free";font-weight:400}.fa.fa-sun-o:before{content:"\f185"}.fa.fa-moon-o{font-family:"Font Awesome 5 Free";font-weight:400}.fa.fa-moon-o:before{content:"\f186"}.fa.fa-pagelines,.fa.fa-renren,.fa.fa-stack-exchange,.fa.fa-vk,.fa.fa-weibo{font-family:"Font Awesome 5 Brands";font-weight:400}.fa.fa-arrow-circle-o-right{font-family:"Font Awesome 5 Free";font-weight:400}.fa.fa-arrow-circle-o-right:before{content:"\f35a"}.fa.fa-arrow-circle-o-left{font-family:"Font Awesome 5 Free";font-weight:400}.fa.fa-arrow-circle-o-left:before{content:"\f359"}.fa.fa-caret-square-o-left{font-family:"Font Awesome 5 Free";font-weight:400}.fa.fa-caret-square-o-left:before{content:"\f191"}.fa.fa-toggle-left{font-family:"Font Awesome 5 Free";font-weight:400}.fa.fa-toggle-left:before{content:"\f191"}.fa.fa-dot-circle-o{font-family:"Font Awesome 5 Free";font-weight:400}.fa.fa-dot-circle-o:before{content:"\f192"}.fa.fa-vimeo-square{font-family:"Font Awesome 5 Brands";font-weight:400}.fa.fa-try:before,.fa.fa-turkish-lira:before{content:"\f195"}.fa.fa-plus-square-o{font-family:"Font Awesome 5 Free";font-weight:400}.fa.fa-plus-square-o:before{content:"\f0fe"}.fa.fa-openid,.fa.fa-slack,.fa.fa-wordpress{font-family:"Font Awesome 5 Brands";font-weight:400}.fa.fa-bank:before,.fa.fa-institution:before{content:"\f19c"}.fa.fa-mortar-board:before{content:"\f19d"}.fa.fa-delicious,.fa.fa-digg,.fa.fa-drupal,.fa.fa-google,.fa.fa-joomla,.fa.fa-pied-piper-alt,.fa.fa-pied-piper-pp,.fa.fa-reddit,.fa.fa-reddit-square,.fa.fa-stumbleupon,.fa.fa-stumbleupon-circle,.fa.fa-yahoo{font-family:"Font Awesome 5 Brands";font-weight:400}.fa.fa-spoon:before{content:"\f2e5"}.fa.fa-behance,.fa.fa-behance-square,.fa.fa-steam,.fa.fa-steam-square{font-family:"Font Awesome 5 Brands";font-weight:400}.fa.fa-automobile:before{content:"\f1b9"}.fa.fa-cab:before{content:"\f1ba"}.fa.fa-envelope-o{font-family:"Font Awesome 5 Free";font-weight:400}.fa.fa-envelope-o:before{content:"\f0e0"}.fa.fa-deviantart,.fa.fa-soundcloud{font-family:"Font Awesome 5 Brands";font-weight:400}.fa.fa-file-pdf-o{font-family:"Font Awesome 5 Free";font-weight:400}.fa.fa-file-pdf-o:before{content:"\f1c1"}.fa.fa-file-word-o{font-family:"Font Awesome 5 Free";font-weight:400}.fa.fa-file-word-o:before{content:"\f1c2"}.fa.fa-file-excel-o{font-family:"Font Awesome 5 Free";font-weight:400}.fa.fa-file-excel-o:before{content:"\f1c3"}.fa.fa-file-powerpoint-o{font-family:"Font Awesome 5 Free";font-weight:400}.fa.fa-file-powerpoint-o:before{content:"\f1c4"}.fa.fa-file-image-o{font-family:"Font Awesome 5 Free";font-weight:400}.fa.fa-file-image-o:before{content:"\f1c5"}.fa.fa-file-photo-o{font-family:"Font Awesome 5 Free";font-weight:400}.fa.fa-file-photo-o:before{content:"\f1c5"}.fa.fa-file-picture-o{font-family:"Font Awesome 5 Free";font-weight:400}.fa.fa-file-picture-o:before{content:"\f1c5"}.fa.fa-file-archive-o{font-family:"Font Awesome 5 Free";font-weight:400}.fa.fa-file-archive-o:before{content:"\f1c6"}.fa.fa-file-zip-o{font-family:"Font Awesome 5 Free";font-weight:400}.fa.fa-file-zip-o:before{content:"\f1c6"}.fa.fa-file-audio-o{font-family:"Font Awesome 5 Free";font-weight:400}.fa.fa-file-audio-o:before{content:"\f1c7"}.fa.fa-file-sound-o{font-family:"Font Awesome 5 Free";font-weight:400}.fa.fa-file-sound-o:before{content:"\f1c7"}.fa.fa-file-video-o{font-family:"Font Awesome 5 Free";font-weight:400}.fa.fa-file-video-o:before{content:"\f1c8"}.fa.fa-file-movie-o{font-family:"Font Awesome 5 Free";font-weight:400}.fa.fa-file-movie-o:before{content:"\f1c8"}.fa.fa-file-code-o{font-family:"Font Awesome 5 Free";font-weight:400}.fa.fa-file-code-o:before{content:"\f1c9"}.fa.fa-codepen,.fa.fa-jsfiddle,.fa.fa-vine{font-family:"Font Awesome 5 Brands";font-weight:400}.fa.fa-life-bouy,.fa.fa-life-ring{font-family:"Font Awesome 5 Free";font-weight:400}.fa.fa-life-bouy:before{content:"\f1cd"}.fa.fa-life-buoy{font-family:"Font Awesome 5 Free";font-weight:400}.fa.fa-life-buoy:before{content:"\f1cd"}.fa.fa-life-saver{font-family:"Font Awesome 5 Free";font-weight:400}.fa.fa-life-saver:before{content:"\f1cd"}.fa.fa-support{font-family:"Font Awesome 5 Free";font-weight:400}.fa.fa-support:before{content:"\f1cd"}.fa.fa-circle-o-notch:before{content:"\f1ce"}.fa.fa-ra,.fa.fa-rebel{font-family:"Font Awesome 5 Brands";font-weight:400}.fa.fa-ra:before{content:"\f1d0"}.fa.fa-resistance{font-family:"Font Awesome 5 Brands";font-weight:400}.fa.fa-resistance:before{content:"\f1d0"}.fa.fa-empire,.fa.fa-ge{font-family:"Font Awesome 5 Brands";font-weight:400}.fa.fa-ge:before{content:"\f1d1"}.fa.fa-git,.fa.fa-git-square,.fa.fa-hacker-news,.fa.fa-y-combinator-square{font-family:"Font Awesome 5 Brands";font-weight:400}.fa.fa-y-combinator-square:before{content:"\f1d4"}.fa.fa-yc-square{font-family:"Font Awesome 5 Brands";font-weight:400}.fa.fa-yc-square:before{content:"\f1d4"}.fa.fa-qq,.fa.fa-tencent-weibo,.fa.fa-wechat,.fa.fa-weixin{font-family:"Font Awesome 5 Brands";font-weight:400}.fa.fa-wechat:before{content:"\f1d7"}.fa.fa-send:before{content:"\f1d8"}.fa.fa-paper-plane-o{font-family:"Font Awesome 5 Free";font-weight:400}.fa.fa-paper-plane-o:before{content:"\f1d8"}.fa.fa-send-o{font-family:"Font Awesome 5 Free";font-weight:400}.fa.fa-send-o:before{content:"\f1d8"}.fa.fa-circle-thin{font-family:"Font Awesome 5 Free";font-weight:400}.fa.fa-circle-thin:before{content:"\f111"}.fa.fa-header:before{content:"\f1dc"}.fa.fa-sliders:before{content:"\f1de"}.fa.fa-futbol-o{font-family:"Font Awesome 5 Free";font-weight:400}.fa.fa-futbol-o:before{content:"\f1e3"}.fa.fa-soccer-ball-o{font-family:"Font Awesome 5 Free";font-weight:400}.fa.fa-soccer-ball-o:before{content:"\f1e3"}.fa.fa-slideshare,.fa.fa-twitch,.fa.fa-yelp{font-family:"Font Awesome 5 Brands";font-weight:400}.fa.fa-newspaper-o{font-family:"Font Awesome 5 Free";font-weight:400}.fa.fa-newspaper-o:before{content:"\f1ea"}.fa.fa-cc-amex,.fa.fa-cc-discover,.fa.fa-cc-mastercard,.fa.fa-cc-paypal,.fa.fa-cc-stripe,.fa.fa-cc-visa,.fa.fa-google-wallet,.fa.fa-paypal{font-family:"Font Awesome 5 Brands";font-weight:400}.fa.fa-bell-slash-o{font-family:"Font Awesome 5 Free";font-weight:400}.fa.fa-bell-slash-o:before{content:"\f1f6"}.fa.fa-trash:before{content:"\f2ed"}.fa.fa-copyright{font-family:"Font Awesome 5 Free";font-weight:400}.fa.fa-eyedropper:before{content:"\f1fb"}.fa.fa-area-chart:before{content:"\f1fe"}.fa.fa-pie-chart:before{content:"\f200"}.fa.fa-line-chart:before{content:"\f201"}.fa.fa-angellist,.fa.fa-ioxhost,.fa.fa-lastfm,.fa.fa-lastfm-square{font-family:"Font Awesome 5 Brands";font-weight:400}.fa.fa-cc{font-family:"Font Awesome 5 Free";font-weight:400}.fa.fa-cc:before{content:"\f20a"}.fa.fa-ils:before,.fa.fa-shekel:before,.fa.fa-sheqel:before{content:"\f20b"}.fa.fa-meanpath{font-family:"Font Awesome 5 Brands";font-weight:400}.fa.fa-meanpath:before{content:"\f2b4"}.fa.fa-buysellads,.fa.fa-connectdevelop,.fa.fa-dashcube,.fa.fa-forumbee,.fa.fa-leanpub,.fa.fa-sellsy,.fa.fa-shirtsinbulk,.fa.fa-simplybuilt,.fa.fa-skyatlas{font-family:"Font Awesome 5 Brands";font-weight:400}.fa.fa-diamond{font-family:"Font Awesome 5 Free";font-weight:400}.fa.fa-diamond:before{content:"\f3a5"}.fa.fa-intersex:before{content:"\f224"}.fa.fa-facebook-official{font-family:"Font Awesome 5 Brands";font-weight:400}.fa.fa-facebook-official:before{content:"\f09a"}.fa.fa-pinterest-p,.fa.fa-whatsapp{font-family:"Font Awesome 5 Brands";font-weight:400}.fa.fa-hotel:before{content:"\f236"}.fa.fa-medium,.fa.fa-viacoin,.fa.fa-y-combinator,.fa.fa-yc{font-family:"Font Awesome 5 Brands";font-weight:400}.fa.fa-yc:before{content:"\f23b"}.fa.fa-expeditedssl,.fa.fa-opencart,.fa.fa-optin-monster{font-family:"Font Awesome 5 Brands";font-weight:400}.fa.fa-battery-4:before,.fa.fa-battery:before{content:"\f240"}.fa.fa-battery-3:before{content:"\f241"}.fa.fa-battery-2:before{content:"\f242"}.fa.fa-battery-1:before{content:"\f243"}.fa.fa-battery-0:before{content:"\f244"}.fa.fa-object-group,.fa.fa-object-ungroup,.fa.fa-sticky-note-o{font-family:"Font Awesome 5 Free";font-weight:400}.fa.fa-sticky-note-o:before{content:"\f249"}.fa.fa-cc-diners-club,.fa.fa-cc-jcb{font-family:"Font Awesome 5 Brands";font-weight:400}.fa.fa-clone,.fa.fa-hourglass-o{font-family:"Font Awesome 5 Free";font-weight:400}.fa.fa-hourglass-o:before{content:"\f254"}.fa.fa-hourglass-1:before{content:"\f251"}.fa.fa-hourglass-2:before{content:"\f252"}.fa.fa-hourglass-3:before{content:"\f253"}.fa.fa-hand-rock-o{font-family:"Font Awesome 5 Free";font-weight:400}.fa.fa-hand-rock-o:before{content:"\f255"}.fa.fa-hand-grab-o{font-family:"Font Awesome 5 Free";font-weight:400}.fa.fa-hand-grab-o:before{content:"\f255"}.fa.fa-hand-paper-o{font-family:"Font Awesome 5 Free";font-weight:400}.fa.fa-hand-paper-o:before{content:"\f256"}.fa.fa-hand-stop-o{font-family:"Font Awesome 5 Free";font-weight:400}.fa.fa-hand-stop-o:before{content:"\f256"}.fa.fa-hand-scissors-o{font-family:"Font Awesome 5 Free";font-weight:400}.fa.fa-hand-scissors-o:before{content:"\f257"}.fa.fa-hand-lizard-o{font-family:"Font Awesome 5 Free";font-weight:400}.fa.fa-hand-lizard-o:before{content:"\f258"}.fa.fa-hand-spock-o{font-family:"Font Awesome 5 Free";font-weight:400}.fa.fa-hand-spock-o:before{content:"\f259"}.fa.fa-hand-pointer-o{font-family:"Font Awesome 5 Free";font-weight:400}.fa.fa-hand-pointer-o:before{content:"\f25a"}.fa.fa-hand-peace-o{font-family:"Font Awesome 5 Free";font-weight:400}.fa.fa-hand-peace-o:before{content:"\f25b"}.fa.fa-registered{font-family:"Font Awesome 5 Free";font-weight:400}.fa.fa-chrome,.fa.fa-creative-commons,.fa.fa-firefox,.fa.fa-get-pocket,.fa.fa-gg,.fa.fa-gg-circle,.fa.fa-internet-explorer,.fa.fa-odnoklassniki,.fa.fa-odnoklassniki-square,.fa.fa-opera,.fa.fa-safari,.fa.fa-tripadvisor,.fa.fa-wikipedia-w{font-family:"Font Awesome 5 Brands";font-weight:400}.fa.fa-television:before{content:"\f26c"}.fa.fa-500px,.fa.fa-amazon,.fa.fa-contao{font-family:"Font Awesome 5 Brands";font-weight:400}.fa.fa-calendar-plus-o{font-family:"Font Awesome 5 Free";font-weight:400}.fa.fa-calendar-plus-o:before{content:"\f271"}.fa.fa-calendar-minus-o{font-family:"Font Awesome 5 Free";font-weight:400}.fa.fa-calendar-minus-o:before{content:"\f272"}.fa.fa-calendar-times-o{font-family:"Font Awesome 5 Free";font-weight:400}.fa.fa-calendar-times-o:before{content:"\f273"}.fa.fa-calendar-check-o{font-family:"Font Awesome 5 Free";font-weight:400}.fa.fa-calendar-check-o:before{content:"\f274"}.fa.fa-map-o{font-family:"Font Awesome 5 Free";font-weight:400}.fa.fa-map-o:before{content:"\f279"}.fa.fa-commenting:before{content:"\f4ad"}.fa.fa-commenting-o{font-family:"Font Awesome 5 Free";font-weight:400}.fa.fa-commenting-o:before{content:"\f4ad"}.fa.fa-houzz,.fa.fa-vimeo{font-family:"Font Awesome 5 Brands";font-weight:400}.fa.fa-vimeo:before{content:"\f27d"}.fa.fa-black-tie,.fa.fa-edge,.fa.fa-fonticons,.fa.fa-reddit-alien{font-family:"Font Awesome 5 Brands";font-weight:400}.fa.fa-credit-card-alt:before{content:"\f09d"}.fa.fa-codiepie,.fa.fa-fort-awesome,.fa.fa-mixcloud,.fa.fa-modx,.fa.fa-product-hunt,.fa.fa-scribd,.fa.fa-usb{font-family:"Font Awesome 5 Brands";font-weight:400}.fa.fa-pause-circle-o{font-family:"Font Awesome 5 Free";font-weight:400}.fa.fa-pause-circle-o:before{content:"\f28b"}.fa.fa-stop-circle-o{font-family:"Font Awesome 5 Free";font-weight:400}.fa.fa-stop-circle-o:before{content:"\f28d"}.fa.fa-bluetooth,.fa.fa-bluetooth-b,.fa.fa-envira,.fa.fa-gitlab,.fa.fa-wheelchair-alt,.fa.fa-wpbeginner,.fa.fa-wpforms{font-family:"Font Awesome 5 Brands";font-weight:400}.fa.fa-wheelchair-alt:before{content:"\f368"}.fa.fa-question-circle-o{font-family:"Font Awesome 5 Free";font-weight:400}.fa.fa-question-circle-o:before{content:"\f059"}.fa.fa-volume-control-phone:before{content:"\f2a0"}.fa.fa-asl-interpreting:before{content:"\f2a3"}.fa.fa-deafness:before,.fa.fa-hard-of-hearing:before{content:"\f2a4"}.fa.fa-glide,.fa.fa-glide-g{font-family:"Font Awesome 5 Brands";font-weight:400}.fa.fa-signing:before{content:"\f2a7"}.fa.fa-first-order,.fa.fa-google-plus-official,.fa.fa-pied-piper,.fa.fa-snapchat,.fa.fa-snapchat-ghost,.fa.fa-snapchat-square,.fa.fa-themeisle,.fa.fa-viadeo,.fa.fa-viadeo-square,.fa.fa-yoast{font-family:"Font Awesome 5 Brands";font-weight:400}.fa.fa-google-plus-official:before{content:"\f2b3"}.fa.fa-google-plus-circle{font-family:"Font Awesome 5 Brands";font-weight:400}.fa.fa-google-plus-circle:before{content:"\f2b3"}.fa.fa-fa,.fa.fa-font-awesome{font-family:"Font Awesome 5 Brands";font-weight:400}.fa.fa-fa:before{content:"\f2b4"}.fa.fa-handshake-o{font-family:"Font Awesome 5 Free";font-weight:400}.fa.fa-handshake-o:before{content:"\f2b5"}.fa.fa-envelope-open-o{font-family:"Font Awesome 5 Free";font-weight:400}.fa.fa-envelope-open-o:before{content:"\f2b6"}.fa.fa-linode{font-family:"Font Awesome 5 Brands";font-weight:400}.fa.fa-address-book-o{font-family:"Font Awesome 5 Free";font-weight:400}.fa.fa-address-book-o:before{content:"\f2b9"}.fa.fa-vcard:before{content:"\f2bb"}.fa.fa-address-card-o{font-family:"Font Awesome 5 Free";font-weight:400}.fa.fa-address-card-o:before{content:"\f2bb"}.fa.fa-vcard-o{font-family:"Font Awesome 5 Free";font-weight:400}.fa.fa-vcard-o:before{content:"\f2bb"}.fa.fa-user-circle-o{font-family:"Font Awesome 5 Free";font-weight:400}.fa.fa-user-circle-o:before{content:"\f2bd"}.fa.fa-user-o{font-family:"Font Awesome 5 Free";font-weight:400}.fa.fa-user-o:before{content:"\f007"}.fa.fa-id-badge{font-family:"Font Awesome 5 Free";font-weight:400}.fa.fa-drivers-license:before{content:"\f2c2"}.fa.fa-id-card-o{font-family:"Font Awesome 5 Free";font-weight:400}.fa.fa-id-card-o:before{content:"\f2c2"}.fa.fa-drivers-license-o{font-family:"Font Awesome 5 Free";font-weight:400}.fa.fa-drivers-license-o:before{content:"\f2c2"}.fa.fa-free-code-camp,.fa.fa-quora,.fa.fa-telegram{font-family:"Font Awesome 5 Brands";font-weight:400}.fa.fa-thermometer-4:before,.fa.fa-thermometer:before{content:"\f2c7"}.fa.fa-thermometer-3:before{content:"\f2c8"}.fa.fa-thermometer-2:before{content:"\f2c9"}.fa.fa-thermometer-1:before{content:"\f2ca"}.fa.fa-thermometer-0:before{content:"\f2cb"}.fa.fa-bathtub:before,.fa.fa-s15:before{content:"\f2cd"}.fa.fa-window-maximize,.fa.fa-window-restore{font-family:"Font Awesome 5 Free";font-weight:400}.fa.fa-times-rectangle:before{content:"\f410"}.fa.fa-window-close-o{font-family:"Font Awesome 5 Free";font-weight:400}.fa.fa-window-close-o:before{content:"\f410"}.fa.fa-times-rectangle-o{font-family:"Font Awesome 5 Free";font-weight:400}.fa.fa-times-rectangle-o:before{content:"\f410"}.fa.fa-bandcamp,.fa.fa-eercast,.fa.fa-etsy,.fa.fa-grav,.fa.fa-imdb,.fa.fa-ravelry{font-family:"Font Awesome 5 Brands";font-weight:400}.fa.fa-eercast:before{content:"\f2da"}.fa.fa-snowflake-o{font-family:"Font Awesome 5 Free";font-weight:400}.fa.fa-snowflake-o:before{content:"\f2dc"}.fa.fa-spotify,.fa.fa-superpowers,.fa.fa-wpexplorer{font-family:"Font Awesome 5 Brands";font-weight:400} \ No newline at end of file +.fa.fa-glass:before{content:"\f000"}.fa.fa-envelope-o{font-family:"Font Awesome 6 Free";font-weight:400}.fa.fa-envelope-o:before{content:"\f0e0"}.fa.fa-star-o{font-family:"Font Awesome 6 Free";font-weight:400}.fa.fa-star-o:before{content:"\f005"}.fa.fa-close:before,.fa.fa-remove:before{content:"\f00d"}.fa.fa-gear:before{content:"\f013"}.fa.fa-trash-o{font-family:"Font Awesome 6 Free";font-weight:400}.fa.fa-trash-o:before{content:"\f2ed"}.fa.fa-home:before{content:"\f015"}.fa.fa-file-o{font-family:"Font Awesome 6 Free";font-weight:400}.fa.fa-file-o:before{content:"\f15b"}.fa.fa-clock-o{font-family:"Font Awesome 6 Free";font-weight:400}.fa.fa-clock-o:before{content:"\f017"}.fa.fa-arrow-circle-o-down{font-family:"Font Awesome 6 Free";font-weight:400}.fa.fa-arrow-circle-o-down:before{content:"\f358"}.fa.fa-arrow-circle-o-up{font-family:"Font Awesome 6 Free";font-weight:400}.fa.fa-arrow-circle-o-up:before{content:"\f35b"}.fa.fa-play-circle-o{font-family:"Font Awesome 6 Free";font-weight:400}.fa.fa-play-circle-o:before{content:"\f144"}.fa.fa-repeat:before,.fa.fa-rotate-right:before{content:"\f01e"}.fa.fa-refresh:before{content:"\f021"}.fa.fa-list-alt{font-family:"Font Awesome 6 Free";font-weight:400}.fa.fa-list-alt:before{content:"\f022"}.fa.fa-dedent:before{content:"\f03b"}.fa.fa-video-camera:before{content:"\f03d"}.fa.fa-picture-o{font-family:"Font Awesome 6 Free";font-weight:400}.fa.fa-picture-o:before{content:"\f03e"}.fa.fa-photo{font-family:"Font Awesome 6 Free";font-weight:400}.fa.fa-photo:before{content:"\f03e"}.fa.fa-image{font-family:"Font Awesome 6 Free";font-weight:400}.fa.fa-image:before{content:"\f03e"}.fa.fa-map-marker:before{content:"\f3c5"}.fa.fa-pencil-square-o{font-family:"Font Awesome 6 Free";font-weight:400}.fa.fa-pencil-square-o:before{content:"\f044"}.fa.fa-edit{font-family:"Font Awesome 6 Free";font-weight:400}.fa.fa-edit:before{content:"\f044"}.fa.fa-share-square-o:before{content:"\f14d"}.fa.fa-check-square-o{font-family:"Font Awesome 6 Free";font-weight:400}.fa.fa-check-square-o:before{content:"\f14a"}.fa.fa-arrows:before{content:"\f0b2"}.fa.fa-times-circle-o{font-family:"Font Awesome 6 Free";font-weight:400}.fa.fa-times-circle-o:before{content:"\f057"}.fa.fa-check-circle-o{font-family:"Font Awesome 6 Free";font-weight:400}.fa.fa-check-circle-o:before{content:"\f058"}.fa.fa-mail-forward:before{content:"\f064"}.fa.fa-expand:before{content:"\f424"}.fa.fa-compress:before{content:"\f422"}.fa.fa-eye,.fa.fa-eye-slash{font-family:"Font Awesome 6 Free";font-weight:400}.fa.fa-warning:before{content:"\f071"}.fa.fa-calendar:before{content:"\f073"}.fa.fa-arrows-v:before{content:"\f338"}.fa.fa-arrows-h:before{content:"\f337"}.fa.fa-bar-chart-o:before,.fa.fa-bar-chart:before{content:"\e0e3"}.fa.fa-twitter-square{font-family:"Font Awesome 6 Brands";font-weight:400}.fa.fa-twitter-square:before{content:"\f081"}.fa.fa-facebook-square{font-family:"Font Awesome 6 Brands";font-weight:400}.fa.fa-facebook-square:before{content:"\f082"}.fa.fa-gears:before{content:"\f085"}.fa.fa-thumbs-o-up{font-family:"Font Awesome 6 Free";font-weight:400}.fa.fa-thumbs-o-up:before{content:"\f164"}.fa.fa-thumbs-o-down{font-family:"Font Awesome 6 Free";font-weight:400}.fa.fa-thumbs-o-down:before{content:"\f165"}.fa.fa-heart-o{font-family:"Font Awesome 6 Free";font-weight:400}.fa.fa-heart-o:before{content:"\f004"}.fa.fa-sign-out:before{content:"\f2f5"}.fa.fa-linkedin-square{font-family:"Font Awesome 6 Brands";font-weight:400}.fa.fa-linkedin-square:before{content:"\f08c"}.fa.fa-thumb-tack:before{content:"\f08d"}.fa.fa-external-link:before{content:"\f35d"}.fa.fa-sign-in:before{content:"\f2f6"}.fa.fa-github-square{font-family:"Font Awesome 6 Brands";font-weight:400}.fa.fa-github-square:before{content:"\f092"}.fa.fa-lemon-o{font-family:"Font Awesome 6 Free";font-weight:400}.fa.fa-lemon-o:before{content:"\f094"}.fa.fa-square-o{font-family:"Font Awesome 6 Free";font-weight:400}.fa.fa-square-o:before{content:"\f0c8"}.fa.fa-bookmark-o{font-family:"Font Awesome 6 Free";font-weight:400}.fa.fa-bookmark-o:before{content:"\f02e"}.fa.fa-facebook,.fa.fa-twitter{font-family:"Font Awesome 6 Brands";font-weight:400}.fa.fa-facebook:before{content:"\f39e"}.fa.fa-facebook-f{font-family:"Font Awesome 6 Brands";font-weight:400}.fa.fa-facebook-f:before{content:"\f39e"}.fa.fa-github{font-family:"Font Awesome 6 Brands";font-weight:400}.fa.fa-credit-card{font-family:"Font Awesome 6 Free";font-weight:400}.fa.fa-feed:before{content:"\f09e"}.fa.fa-hdd-o{font-family:"Font Awesome 6 Free";font-weight:400}.fa.fa-hdd-o:before{content:"\f0a0"}.fa.fa-hand-o-right{font-family:"Font Awesome 6 Free";font-weight:400}.fa.fa-hand-o-right:before{content:"\f0a4"}.fa.fa-hand-o-left{font-family:"Font Awesome 6 Free";font-weight:400}.fa.fa-hand-o-left:before{content:"\f0a5"}.fa.fa-hand-o-up{font-family:"Font Awesome 6 Free";font-weight:400}.fa.fa-hand-o-up:before{content:"\f0a6"}.fa.fa-hand-o-down{font-family:"Font Awesome 6 Free";font-weight:400}.fa.fa-hand-o-down:before{content:"\f0a7"}.fa.fa-globe:before{content:"\f57d"}.fa.fa-tasks:before{content:"\f828"}.fa.fa-arrows-alt:before{content:"\f31e"}.fa.fa-group:before{content:"\f0c0"}.fa.fa-chain:before{content:"\f0c1"}.fa.fa-cut:before{content:"\f0c4"}.fa.fa-files-o{font-family:"Font Awesome 6 Free";font-weight:400}.fa.fa-files-o:before{content:"\f0c5"}.fa.fa-floppy-o{font-family:"Font Awesome 6 Free";font-weight:400}.fa.fa-floppy-o:before{content:"\f0c7"}.fa.fa-save{font-family:"Font Awesome 6 Free";font-weight:400}.fa.fa-save:before{content:"\f0c7"}.fa.fa-navicon:before,.fa.fa-reorder:before{content:"\f0c9"}.fa.fa-magic:before{content:"\e2ca"}.fa.fa-pinterest,.fa.fa-pinterest-square{font-family:"Font Awesome 6 Brands";font-weight:400}.fa.fa-pinterest-square:before{content:"\f0d3"}.fa.fa-google-plus-square{font-family:"Font Awesome 6 Brands";font-weight:400}.fa.fa-google-plus-square:before{content:"\f0d4"}.fa.fa-google-plus{font-family:"Font Awesome 6 Brands";font-weight:400}.fa.fa-google-plus:before{content:"\f0d5"}.fa.fa-money:before{content:"\f3d1"}.fa.fa-unsorted:before{content:"\f0dc"}.fa.fa-sort-desc:before{content:"\f0dd"}.fa.fa-sort-asc:before{content:"\f0de"}.fa.fa-linkedin{font-family:"Font Awesome 6 Brands";font-weight:400}.fa.fa-linkedin:before{content:"\f0e1"}.fa.fa-rotate-left:before{content:"\f0e2"}.fa.fa-legal:before{content:"\f0e3"}.fa.fa-dashboard:before,.fa.fa-tachometer:before{content:"\f625"}.fa.fa-comment-o{font-family:"Font Awesome 6 Free";font-weight:400}.fa.fa-comment-o:before{content:"\f075"}.fa.fa-comments-o{font-family:"Font Awesome 6 Free";font-weight:400}.fa.fa-comments-o:before{content:"\f086"}.fa.fa-flash:before{content:"\f0e7"}.fa.fa-clipboard:before{content:"\f0ea"}.fa.fa-lightbulb-o{font-family:"Font Awesome 6 Free";font-weight:400}.fa.fa-lightbulb-o:before{content:"\f0eb"}.fa.fa-exchange:before{content:"\f362"}.fa.fa-cloud-download:before{content:"\f0ed"}.fa.fa-cloud-upload:before{content:"\f0ee"}.fa.fa-bell-o{font-family:"Font Awesome 6 Free";font-weight:400}.fa.fa-bell-o:before{content:"\f0f3"}.fa.fa-cutlery:before{content:"\f2e7"}.fa.fa-file-text-o{font-family:"Font Awesome 6 Free";font-weight:400}.fa.fa-file-text-o:before{content:"\f15c"}.fa.fa-building-o{font-family:"Font Awesome 6 Free";font-weight:400}.fa.fa-building-o:before{content:"\f1ad"}.fa.fa-hospital-o{font-family:"Font Awesome 6 Free";font-weight:400}.fa.fa-hospital-o:before{content:"\f0f8"}.fa.fa-tablet:before{content:"\f3fa"}.fa.fa-mobile-phone:before,.fa.fa-mobile:before{content:"\f3cd"}.fa.fa-circle-o{font-family:"Font Awesome 6 Free";font-weight:400}.fa.fa-circle-o:before{content:"\f111"}.fa.fa-mail-reply:before{content:"\f3e5"}.fa.fa-github-alt{font-family:"Font Awesome 6 Brands";font-weight:400}.fa.fa-folder-o{font-family:"Font Awesome 6 Free";font-weight:400}.fa.fa-folder-o:before{content:"\f07b"}.fa.fa-folder-open-o{font-family:"Font Awesome 6 Free";font-weight:400}.fa.fa-folder-open-o:before{content:"\f07c"}.fa.fa-smile-o{font-family:"Font Awesome 6 Free";font-weight:400}.fa.fa-smile-o:before{content:"\f118"}.fa.fa-frown-o{font-family:"Font Awesome 6 Free";font-weight:400}.fa.fa-frown-o:before{content:"\f119"}.fa.fa-meh-o{font-family:"Font Awesome 6 Free";font-weight:400}.fa.fa-meh-o:before{content:"\f11a"}.fa.fa-keyboard-o{font-family:"Font Awesome 6 Free";font-weight:400}.fa.fa-keyboard-o:before{content:"\f11c"}.fa.fa-flag-o{font-family:"Font Awesome 6 Free";font-weight:400}.fa.fa-flag-o:before{content:"\f024"}.fa.fa-mail-reply-all:before{content:"\f122"}.fa.fa-star-half-o{font-family:"Font Awesome 6 Free";font-weight:400}.fa.fa-star-half-o:before{content:"\f5c0"}.fa.fa-star-half-empty{font-family:"Font Awesome 6 Free";font-weight:400}.fa.fa-star-half-empty:before{content:"\f5c0"}.fa.fa-star-half-full{font-family:"Font Awesome 6 Free";font-weight:400}.fa.fa-star-half-full:before{content:"\f5c0"}.fa.fa-code-fork:before{content:"\f126"}.fa.fa-chain-broken:before,.fa.fa-unlink:before{content:"\f127"}.fa.fa-calendar-o{font-family:"Font Awesome 6 Free";font-weight:400}.fa.fa-calendar-o:before{content:"\f133"}.fa.fa-css3,.fa.fa-html5,.fa.fa-maxcdn{font-family:"Font Awesome 6 Brands";font-weight:400}.fa.fa-unlock-alt:before{content:"\f09c"}.fa.fa-minus-square-o{font-family:"Font Awesome 6 Free";font-weight:400}.fa.fa-minus-square-o:before{content:"\f146"}.fa.fa-level-up:before{content:"\f3bf"}.fa.fa-level-down:before{content:"\f3be"}.fa.fa-pencil-square:before{content:"\f14b"}.fa.fa-external-link-square:before{content:"\f360"}.fa.fa-compass{font-family:"Font Awesome 6 Free";font-weight:400}.fa.fa-caret-square-o-down{font-family:"Font Awesome 6 Free";font-weight:400}.fa.fa-caret-square-o-down:before{content:"\f150"}.fa.fa-toggle-down{font-family:"Font Awesome 6 Free";font-weight:400}.fa.fa-toggle-down:before{content:"\f150"}.fa.fa-caret-square-o-up{font-family:"Font Awesome 6 Free";font-weight:400}.fa.fa-caret-square-o-up:before{content:"\f151"}.fa.fa-toggle-up{font-family:"Font Awesome 6 Free";font-weight:400}.fa.fa-toggle-up:before{content:"\f151"}.fa.fa-caret-square-o-right{font-family:"Font Awesome 6 Free";font-weight:400}.fa.fa-caret-square-o-right:before{content:"\f152"}.fa.fa-toggle-right{font-family:"Font Awesome 6 Free";font-weight:400}.fa.fa-toggle-right:before{content:"\f152"}.fa.fa-eur:before,.fa.fa-euro:before{content:"\f153"}.fa.fa-gbp:before{content:"\f154"}.fa.fa-dollar:before,.fa.fa-usd:before{content:"\24"}.fa.fa-inr:before,.fa.fa-rupee:before{content:"\e1bc"}.fa.fa-cny:before,.fa.fa-jpy:before,.fa.fa-rmb:before,.fa.fa-yen:before{content:"\f157"}.fa.fa-rouble:before,.fa.fa-rub:before,.fa.fa-ruble:before{content:"\f158"}.fa.fa-krw:before,.fa.fa-won:before{content:"\f159"}.fa.fa-bitcoin,.fa.fa-btc{font-family:"Font Awesome 6 Brands";font-weight:400}.fa.fa-bitcoin:before{content:"\f15a"}.fa.fa-file-text:before{content:"\f15c"}.fa.fa-sort-alpha-asc:before{content:"\f15d"}.fa.fa-sort-alpha-desc:before{content:"\f881"}.fa.fa-sort-amount-asc:before{content:"\f884"}.fa.fa-sort-amount-desc:before{content:"\f160"}.fa.fa-sort-numeric-asc:before{content:"\f162"}.fa.fa-sort-numeric-desc:before{content:"\f886"}.fa.fa-youtube-square{font-family:"Font Awesome 6 Brands";font-weight:400}.fa.fa-youtube-square:before{content:"\f431"}.fa.fa-xing,.fa.fa-xing-square,.fa.fa-youtube{font-family:"Font Awesome 6 Brands";font-weight:400}.fa.fa-xing-square:before{content:"\f169"}.fa.fa-youtube-play{font-family:"Font Awesome 6 Brands";font-weight:400}.fa.fa-youtube-play:before{content:"\f167"}.fa.fa-adn,.fa.fa-bitbucket,.fa.fa-bitbucket-square,.fa.fa-dropbox,.fa.fa-flickr,.fa.fa-instagram,.fa.fa-stack-overflow{font-family:"Font Awesome 6 Brands";font-weight:400}.fa.fa-bitbucket-square:before{content:"\f171"}.fa.fa-tumblr,.fa.fa-tumblr-square{font-family:"Font Awesome 6 Brands";font-weight:400}.fa.fa-tumblr-square:before{content:"\f174"}.fa.fa-long-arrow-down:before{content:"\f309"}.fa.fa-long-arrow-up:before{content:"\f30c"}.fa.fa-long-arrow-left:before{content:"\f30a"}.fa.fa-long-arrow-right:before{content:"\f30b"}.fa.fa-android,.fa.fa-apple,.fa.fa-dribbble,.fa.fa-foursquare,.fa.fa-gittip,.fa.fa-gratipay,.fa.fa-linux,.fa.fa-skype,.fa.fa-trello,.fa.fa-windows{font-family:"Font Awesome 6 Brands";font-weight:400}.fa.fa-gittip:before{content:"\f184"}.fa.fa-sun-o{font-family:"Font Awesome 6 Free";font-weight:400}.fa.fa-sun-o:before{content:"\f185"}.fa.fa-moon-o{font-family:"Font Awesome 6 Free";font-weight:400}.fa.fa-moon-o:before{content:"\f186"}.fa.fa-pagelines,.fa.fa-renren,.fa.fa-stack-exchange,.fa.fa-vk,.fa.fa-weibo{font-family:"Font Awesome 6 Brands";font-weight:400}.fa.fa-arrow-circle-o-right{font-family:"Font Awesome 6 Free";font-weight:400}.fa.fa-arrow-circle-o-right:before{content:"\f35a"}.fa.fa-arrow-circle-o-left{font-family:"Font Awesome 6 Free";font-weight:400}.fa.fa-arrow-circle-o-left:before{content:"\f359"}.fa.fa-caret-square-o-left{font-family:"Font Awesome 6 Free";font-weight:400}.fa.fa-caret-square-o-left:before{content:"\f191"}.fa.fa-toggle-left{font-family:"Font Awesome 6 Free";font-weight:400}.fa.fa-toggle-left:before{content:"\f191"}.fa.fa-dot-circle-o{font-family:"Font Awesome 6 Free";font-weight:400}.fa.fa-dot-circle-o:before{content:"\f192"}.fa.fa-vimeo-square{font-family:"Font Awesome 6 Brands";font-weight:400}.fa.fa-vimeo-square:before{content:"\f194"}.fa.fa-try:before,.fa.fa-turkish-lira:before{content:"\e2bb"}.fa.fa-plus-square-o{font-family:"Font Awesome 6 Free";font-weight:400}.fa.fa-plus-square-o:before{content:"\f0fe"}.fa.fa-openid,.fa.fa-slack,.fa.fa-wordpress{font-family:"Font Awesome 6 Brands";font-weight:400}.fa.fa-bank:before,.fa.fa-institution:before{content:"\f19c"}.fa.fa-mortar-board:before{content:"\f19d"}.fa.fa-google,.fa.fa-reddit,.fa.fa-reddit-square,.fa.fa-yahoo{font-family:"Font Awesome 6 Brands";font-weight:400}.fa.fa-reddit-square:before{content:"\f1a2"}.fa.fa-behance,.fa.fa-behance-square,.fa.fa-delicious,.fa.fa-digg,.fa.fa-drupal,.fa.fa-joomla,.fa.fa-pied-piper-alt,.fa.fa-pied-piper-pp,.fa.fa-stumbleupon,.fa.fa-stumbleupon-circle{font-family:"Font Awesome 6 Brands";font-weight:400}.fa.fa-behance-square:before{content:"\f1b5"}.fa.fa-steam,.fa.fa-steam-square{font-family:"Font Awesome 6 Brands";font-weight:400}.fa.fa-steam-square:before{content:"\f1b7"}.fa.fa-automobile:before{content:"\f1b9"}.fa.fa-cab:before{content:"\f1ba"}.fa.fa-deviantart,.fa.fa-soundcloud,.fa.fa-spotify{font-family:"Font Awesome 6 Brands";font-weight:400}.fa.fa-file-pdf-o{font-family:"Font Awesome 6 Free";font-weight:400}.fa.fa-file-pdf-o:before{content:"\f1c1"}.fa.fa-file-word-o{font-family:"Font Awesome 6 Free";font-weight:400}.fa.fa-file-word-o:before{content:"\f1c2"}.fa.fa-file-excel-o{font-family:"Font Awesome 6 Free";font-weight:400}.fa.fa-file-excel-o:before{content:"\f1c3"}.fa.fa-file-powerpoint-o{font-family:"Font Awesome 6 Free";font-weight:400}.fa.fa-file-powerpoint-o:before{content:"\f1c4"}.fa.fa-file-image-o{font-family:"Font Awesome 6 Free";font-weight:400}.fa.fa-file-image-o:before{content:"\f1c5"}.fa.fa-file-photo-o{font-family:"Font Awesome 6 Free";font-weight:400}.fa.fa-file-photo-o:before{content:"\f1c5"}.fa.fa-file-picture-o{font-family:"Font Awesome 6 Free";font-weight:400}.fa.fa-file-picture-o:before{content:"\f1c5"}.fa.fa-file-archive-o{font-family:"Font Awesome 6 Free";font-weight:400}.fa.fa-file-archive-o:before{content:"\f1c6"}.fa.fa-file-zip-o{font-family:"Font Awesome 6 Free";font-weight:400}.fa.fa-file-zip-o:before{content:"\f1c6"}.fa.fa-file-audio-o{font-family:"Font Awesome 6 Free";font-weight:400}.fa.fa-file-audio-o:before{content:"\f1c7"}.fa.fa-file-sound-o{font-family:"Font Awesome 6 Free";font-weight:400}.fa.fa-file-sound-o:before{content:"\f1c7"}.fa.fa-file-video-o{font-family:"Font Awesome 6 Free";font-weight:400}.fa.fa-file-video-o:before{content:"\f1c8"}.fa.fa-file-movie-o{font-family:"Font Awesome 6 Free";font-weight:400}.fa.fa-file-movie-o:before{content:"\f1c8"}.fa.fa-file-code-o{font-family:"Font Awesome 6 Free";font-weight:400}.fa.fa-file-code-o:before{content:"\f1c9"}.fa.fa-codepen,.fa.fa-jsfiddle,.fa.fa-vine{font-family:"Font Awesome 6 Brands";font-weight:400}.fa.fa-life-bouy:before,.fa.fa-life-buoy:before,.fa.fa-life-saver:before,.fa.fa-support:before{content:"\f1cd"}.fa.fa-circle-o-notch:before{content:"\f1ce"}.fa.fa-ra,.fa.fa-rebel{font-family:"Font Awesome 6 Brands";font-weight:400}.fa.fa-ra:before{content:"\f1d0"}.fa.fa-resistance{font-family:"Font Awesome 6 Brands";font-weight:400}.fa.fa-resistance:before{content:"\f1d0"}.fa.fa-empire,.fa.fa-ge{font-family:"Font Awesome 6 Brands";font-weight:400}.fa.fa-ge:before{content:"\f1d1"}.fa.fa-git-square{font-family:"Font Awesome 6 Brands";font-weight:400}.fa.fa-git-square:before{content:"\f1d2"}.fa.fa-git,.fa.fa-hacker-news,.fa.fa-y-combinator-square{font-family:"Font Awesome 6 Brands";font-weight:400}.fa.fa-y-combinator-square:before{content:"\f1d4"}.fa.fa-yc-square{font-family:"Font Awesome 6 Brands";font-weight:400}.fa.fa-yc-square:before{content:"\f1d4"}.fa.fa-qq,.fa.fa-tencent-weibo,.fa.fa-wechat,.fa.fa-weixin{font-family:"Font Awesome 6 Brands";font-weight:400}.fa.fa-wechat:before{content:"\f1d7"}.fa.fa-send:before{content:"\f1d8"}.fa.fa-paper-plane-o{font-family:"Font Awesome 6 Free";font-weight:400}.fa.fa-paper-plane-o:before{content:"\f1d8"}.fa.fa-send-o{font-family:"Font Awesome 6 Free";font-weight:400}.fa.fa-send-o:before{content:"\f1d8"}.fa.fa-circle-thin{font-family:"Font Awesome 6 Free";font-weight:400}.fa.fa-circle-thin:before{content:"\f111"}.fa.fa-header:before{content:"\f1dc"}.fa.fa-futbol-o{font-family:"Font Awesome 6 Free";font-weight:400}.fa.fa-futbol-o:before{content:"\f1e3"}.fa.fa-soccer-ball-o{font-family:"Font Awesome 6 Free";font-weight:400}.fa.fa-soccer-ball-o:before{content:"\f1e3"}.fa.fa-slideshare,.fa.fa-twitch,.fa.fa-yelp{font-family:"Font Awesome 6 Brands";font-weight:400}.fa.fa-newspaper-o{font-family:"Font Awesome 6 Free";font-weight:400}.fa.fa-newspaper-o:before{content:"\f1ea"}.fa.fa-cc-amex,.fa.fa-cc-discover,.fa.fa-cc-mastercard,.fa.fa-cc-paypal,.fa.fa-cc-stripe,.fa.fa-cc-visa,.fa.fa-google-wallet,.fa.fa-paypal{font-family:"Font Awesome 6 Brands";font-weight:400}.fa.fa-bell-slash-o{font-family:"Font Awesome 6 Free";font-weight:400}.fa.fa-bell-slash-o:before{content:"\f1f6"}.fa.fa-trash:before{content:"\f2ed"}.fa.fa-copyright{font-family:"Font Awesome 6 Free";font-weight:400}.fa.fa-eyedropper:before{content:"\f1fb"}.fa.fa-area-chart:before{content:"\f1fe"}.fa.fa-pie-chart:before{content:"\f200"}.fa.fa-line-chart:before{content:"\f201"}.fa.fa-lastfm,.fa.fa-lastfm-square{font-family:"Font Awesome 6 Brands";font-weight:400}.fa.fa-lastfm-square:before{content:"\f203"}.fa.fa-angellist,.fa.fa-ioxhost{font-family:"Font Awesome 6 Brands";font-weight:400}.fa.fa-cc{font-family:"Font Awesome 6 Free";font-weight:400}.fa.fa-cc:before{content:"\f20a"}.fa.fa-ils:before,.fa.fa-shekel:before,.fa.fa-sheqel:before{content:"\f20b"}.fa.fa-buysellads,.fa.fa-connectdevelop,.fa.fa-dashcube,.fa.fa-forumbee,.fa.fa-leanpub,.fa.fa-sellsy,.fa.fa-shirtsinbulk,.fa.fa-simplybuilt,.fa.fa-skyatlas{font-family:"Font Awesome 6 Brands";font-weight:400}.fa.fa-diamond{font-family:"Font Awesome 6 Free";font-weight:400}.fa.fa-diamond:before{content:"\f3a5"}.fa.fa-intersex:before,.fa.fa-transgender:before{content:"\f224"}.fa.fa-transgender-alt:before{content:"\f225"}.fa.fa-facebook-official{font-family:"Font Awesome 6 Brands";font-weight:400}.fa.fa-facebook-official:before{content:"\f09a"}.fa.fa-pinterest-p,.fa.fa-whatsapp{font-family:"Font Awesome 6 Brands";font-weight:400}.fa.fa-hotel:before{content:"\f236"}.fa.fa-medium,.fa.fa-viacoin,.fa.fa-y-combinator,.fa.fa-yc{font-family:"Font Awesome 6 Brands";font-weight:400}.fa.fa-yc:before{content:"\f23b"}.fa.fa-expeditedssl,.fa.fa-opencart,.fa.fa-optin-monster{font-family:"Font Awesome 6 Brands";font-weight:400}.fa.fa-battery-4:before,.fa.fa-battery:before{content:"\f240"}.fa.fa-battery-3:before{content:"\f241"}.fa.fa-battery-2:before{content:"\f242"}.fa.fa-battery-1:before{content:"\f243"}.fa.fa-battery-0:before{content:"\f244"}.fa.fa-object-group,.fa.fa-object-ungroup,.fa.fa-sticky-note-o{font-family:"Font Awesome 6 Free";font-weight:400}.fa.fa-sticky-note-o:before{content:"\f249"}.fa.fa-cc-diners-club,.fa.fa-cc-jcb{font-family:"Font Awesome 6 Brands";font-weight:400}.fa.fa-clone{font-family:"Font Awesome 6 Free";font-weight:400}.fa.fa-hourglass-o:before{content:"\f254"}.fa.fa-hourglass-1:before{content:"\f251"}.fa.fa-hourglass-2:before{content:"\f252"}.fa.fa-hourglass-3:before{content:"\f253"}.fa.fa-hand-rock-o{font-family:"Font Awesome 6 Free";font-weight:400}.fa.fa-hand-rock-o:before{content:"\f255"}.fa.fa-hand-grab-o{font-family:"Font Awesome 6 Free";font-weight:400}.fa.fa-hand-grab-o:before{content:"\f255"}.fa.fa-hand-paper-o{font-family:"Font Awesome 6 Free";font-weight:400}.fa.fa-hand-paper-o:before{content:"\f256"}.fa.fa-hand-stop-o{font-family:"Font Awesome 6 Free";font-weight:400}.fa.fa-hand-stop-o:before{content:"\f256"}.fa.fa-hand-scissors-o{font-family:"Font Awesome 6 Free";font-weight:400}.fa.fa-hand-scissors-o:before{content:"\f257"}.fa.fa-hand-lizard-o{font-family:"Font Awesome 6 Free";font-weight:400}.fa.fa-hand-lizard-o:before{content:"\f258"}.fa.fa-hand-spock-o{font-family:"Font Awesome 6 Free";font-weight:400}.fa.fa-hand-spock-o:before{content:"\f259"}.fa.fa-hand-pointer-o{font-family:"Font Awesome 6 Free";font-weight:400}.fa.fa-hand-pointer-o:before{content:"\f25a"}.fa.fa-hand-peace-o{font-family:"Font Awesome 6 Free";font-weight:400}.fa.fa-hand-peace-o:before{content:"\f25b"}.fa.fa-registered{font-family:"Font Awesome 6 Free";font-weight:400}.fa.fa-creative-commons,.fa.fa-gg,.fa.fa-gg-circle,.fa.fa-odnoklassniki,.fa.fa-odnoklassniki-square{font-family:"Font Awesome 6 Brands";font-weight:400}.fa.fa-odnoklassniki-square:before{content:"\f264"}.fa.fa-chrome,.fa.fa-firefox,.fa.fa-get-pocket,.fa.fa-internet-explorer,.fa.fa-opera,.fa.fa-safari,.fa.fa-wikipedia-w{font-family:"Font Awesome 6 Brands";font-weight:400}.fa.fa-television:before{content:"\f26c"}.fa.fa-500px,.fa.fa-amazon,.fa.fa-contao{font-family:"Font Awesome 6 Brands";font-weight:400}.fa.fa-calendar-plus-o{font-family:"Font Awesome 6 Free";font-weight:400}.fa.fa-calendar-plus-o:before{content:"\f271"}.fa.fa-calendar-minus-o{font-family:"Font Awesome 6 Free";font-weight:400}.fa.fa-calendar-minus-o:before{content:"\f272"}.fa.fa-calendar-times-o{font-family:"Font Awesome 6 Free";font-weight:400}.fa.fa-calendar-times-o:before{content:"\f273"}.fa.fa-calendar-check-o{font-family:"Font Awesome 6 Free";font-weight:400}.fa.fa-calendar-check-o:before{content:"\f274"}.fa.fa-map-o{font-family:"Font Awesome 6 Free";font-weight:400}.fa.fa-map-o:before{content:"\f279"}.fa.fa-commenting:before{content:"\f4ad"}.fa.fa-commenting-o{font-family:"Font Awesome 6 Free";font-weight:400}.fa.fa-commenting-o:before{content:"\f4ad"}.fa.fa-houzz,.fa.fa-vimeo{font-family:"Font Awesome 6 Brands";font-weight:400}.fa.fa-vimeo:before{content:"\f27d"}.fa.fa-black-tie,.fa.fa-edge,.fa.fa-fonticons,.fa.fa-reddit-alien{font-family:"Font Awesome 6 Brands";font-weight:400}.fa.fa-credit-card-alt:before{content:"\f09d"}.fa.fa-codiepie,.fa.fa-fort-awesome,.fa.fa-mixcloud,.fa.fa-modx,.fa.fa-product-hunt,.fa.fa-scribd,.fa.fa-usb{font-family:"Font Awesome 6 Brands";font-weight:400}.fa.fa-pause-circle-o{font-family:"Font Awesome 6 Free";font-weight:400}.fa.fa-pause-circle-o:before{content:"\f28b"}.fa.fa-stop-circle-o{font-family:"Font Awesome 6 Free";font-weight:400}.fa.fa-stop-circle-o:before{content:"\f28d"}.fa.fa-bluetooth,.fa.fa-bluetooth-b,.fa.fa-envira,.fa.fa-gitlab,.fa.fa-wheelchair-alt,.fa.fa-wpbeginner,.fa.fa-wpforms{font-family:"Font Awesome 6 Brands";font-weight:400}.fa.fa-wheelchair-alt:before{content:"\f368"}.fa.fa-question-circle-o{font-family:"Font Awesome 6 Free";font-weight:400}.fa.fa-question-circle-o:before{content:"\f059"}.fa.fa-volume-control-phone:before{content:"\f2a0"}.fa.fa-asl-interpreting:before{content:"\f2a3"}.fa.fa-deafness:before,.fa.fa-hard-of-hearing:before{content:"\f2a4"}.fa.fa-glide,.fa.fa-glide-g{font-family:"Font Awesome 6 Brands";font-weight:400}.fa.fa-signing:before{content:"\f2a7"}.fa.fa-viadeo,.fa.fa-viadeo-square{font-family:"Font Awesome 6 Brands";font-weight:400}.fa.fa-viadeo-square:before{content:"\f2aa"}.fa.fa-snapchat,.fa.fa-snapchat-ghost{font-family:"Font Awesome 6 Brands";font-weight:400}.fa.fa-snapchat-ghost:before{content:"\f2ab"}.fa.fa-snapchat-square{font-family:"Font Awesome 6 Brands";font-weight:400}.fa.fa-snapchat-square:before{content:"\f2ad"}.fa.fa-first-order,.fa.fa-google-plus-official,.fa.fa-pied-piper,.fa.fa-themeisle,.fa.fa-yoast{font-family:"Font Awesome 6 Brands";font-weight:400}.fa.fa-google-plus-official:before{content:"\f2b3"}.fa.fa-google-plus-circle{font-family:"Font Awesome 6 Brands";font-weight:400}.fa.fa-google-plus-circle:before{content:"\f2b3"}.fa.fa-fa,.fa.fa-font-awesome{font-family:"Font Awesome 6 Brands";font-weight:400}.fa.fa-fa:before{content:"\f2b4"}.fa.fa-handshake-o{font-family:"Font Awesome 6 Free";font-weight:400}.fa.fa-handshake-o:before{content:"\f2b5"}.fa.fa-envelope-open-o{font-family:"Font Awesome 6 Free";font-weight:400}.fa.fa-envelope-open-o:before{content:"\f2b6"}.fa.fa-linode{font-family:"Font Awesome 6 Brands";font-weight:400}.fa.fa-address-book-o{font-family:"Font Awesome 6 Free";font-weight:400}.fa.fa-address-book-o:before{content:"\f2b9"}.fa.fa-vcard:before{content:"\f2bb"}.fa.fa-address-card-o{font-family:"Font Awesome 6 Free";font-weight:400}.fa.fa-address-card-o:before{content:"\f2bb"}.fa.fa-vcard-o{font-family:"Font Awesome 6 Free";font-weight:400}.fa.fa-vcard-o:before{content:"\f2bb"}.fa.fa-user-circle-o{font-family:"Font Awesome 6 Free";font-weight:400}.fa.fa-user-circle-o:before{content:"\f2bd"}.fa.fa-user-o{font-family:"Font Awesome 6 Free";font-weight:400}.fa.fa-user-o:before{content:"\f007"}.fa.fa-id-badge{font-family:"Font Awesome 6 Free";font-weight:400}.fa.fa-drivers-license:before{content:"\f2c2"}.fa.fa-id-card-o{font-family:"Font Awesome 6 Free";font-weight:400}.fa.fa-id-card-o:before{content:"\f2c2"}.fa.fa-drivers-license-o{font-family:"Font Awesome 6 Free";font-weight:400}.fa.fa-drivers-license-o:before{content:"\f2c2"}.fa.fa-free-code-camp,.fa.fa-quora,.fa.fa-telegram{font-family:"Font Awesome 6 Brands";font-weight:400}.fa.fa-thermometer-4:before,.fa.fa-thermometer:before{content:"\f2c7"}.fa.fa-thermometer-3:before{content:"\f2c8"}.fa.fa-thermometer-2:before{content:"\f2c9"}.fa.fa-thermometer-1:before{content:"\f2ca"}.fa.fa-thermometer-0:before{content:"\f2cb"}.fa.fa-bathtub:before,.fa.fa-s15:before{content:"\f2cd"}.fa.fa-window-maximize,.fa.fa-window-restore{font-family:"Font Awesome 6 Free";font-weight:400}.fa.fa-times-rectangle:before{content:"\f410"}.fa.fa-window-close-o{font-family:"Font Awesome 6 Free";font-weight:400}.fa.fa-window-close-o:before{content:"\f410"}.fa.fa-times-rectangle-o{font-family:"Font Awesome 6 Free";font-weight:400}.fa.fa-times-rectangle-o:before{content:"\f410"}.fa.fa-bandcamp,.fa.fa-eercast,.fa.fa-etsy,.fa.fa-grav,.fa.fa-imdb,.fa.fa-ravelry{font-family:"Font Awesome 6 Brands";font-weight:400}.fa.fa-eercast:before{content:"\f2da"}.fa.fa-snowflake-o{font-family:"Font Awesome 6 Free";font-weight:400}.fa.fa-snowflake-o:before{content:"\f2dc"}.fa.fa-meetup,.fa.fa-superpowers,.fa.fa-wpexplorer{font-family:"Font Awesome 6 Brands";font-weight:400} \ No newline at end of file diff --git a/html/font-awesome/webfonts/fa-regular-400.eot b/html/font-awesome/webfonts/fa-regular-400.eot deleted file mode 100644 index d62be2fad8..0000000000 Binary files a/html/font-awesome/webfonts/fa-regular-400.eot and /dev/null differ diff --git a/html/font-awesome/webfonts/fa-regular-400.ttf b/html/font-awesome/webfonts/fa-regular-400.ttf new file mode 100644 index 0000000000..c5ac009577 Binary files /dev/null and b/html/font-awesome/webfonts/fa-regular-400.ttf differ diff --git a/html/font-awesome/webfonts/fa-regular-400.woff b/html/font-awesome/webfonts/fa-regular-400.woff deleted file mode 100644 index 43b1a9ae49..0000000000 Binary files a/html/font-awesome/webfonts/fa-regular-400.woff and /dev/null differ diff --git a/html/font-awesome/webfonts/fa-solid-900.eot b/html/font-awesome/webfonts/fa-solid-900.eot deleted file mode 100644 index c77baa8d46..0000000000 Binary files a/html/font-awesome/webfonts/fa-solid-900.eot and /dev/null differ diff --git a/html/font-awesome/webfonts/fa-solid-900.ttf b/html/font-awesome/webfonts/fa-solid-900.ttf new file mode 100644 index 0000000000..43ba1cc7d9 Binary files /dev/null and b/html/font-awesome/webfonts/fa-solid-900.ttf differ diff --git a/html/font-awesome/webfonts/fa-solid-900.woff b/html/font-awesome/webfonts/fa-solid-900.woff deleted file mode 100644 index 77c1786227..0000000000 Binary files a/html/font-awesome/webfonts/fa-solid-900.woff and /dev/null differ diff --git a/html/font-awesome/webfonts/fa-v4compatibility.ttf b/html/font-awesome/webfonts/fa-v4compatibility.ttf new file mode 100644 index 0000000000..243bc25bd5 Binary files /dev/null and b/html/font-awesome/webfonts/fa-v4compatibility.ttf differ diff --git a/html/hard-hat-exclamation.png b/html/hard-hat-exclamation.png index e22eb61b8f..fbb3659440 100644 Binary files a/html/hard-hat-exclamation.png and b/html/hard-hat-exclamation.png differ diff --git a/html/image-minus.png b/html/image-minus.png index b2bac2c45a..43f9a605f5 100644 Binary files a/html/image-minus.png and b/html/image-minus.png differ diff --git a/html/image-plus.png b/html/image-plus.png index 308c1ae0a2..a8169cb6c4 100644 Binary files a/html/image-plus.png and b/html/image-plus.png differ diff --git a/html/images/admin.png b/html/images/admin.png index cb330ec585..e92a9abc74 100644 Binary files a/html/images/admin.png and b/html/images/admin.png differ diff --git a/html/images/aiad.png b/html/images/aiad.png index 12b247d11d..776912e40f 100644 Binary files a/html/images/aiad.png and b/html/images/aiad.png differ diff --git a/html/images/amd.png b/html/images/amd.png index 8f968d487d..bcf1ef5adb 100644 Binary files a/html/images/amd.png and b/html/images/amd.png differ diff --git a/html/images/ar.png b/html/images/ar.png index 363e80453e..2d5065b3c4 100644 Binary files a/html/images/ar.png and b/html/images/ar.png differ diff --git a/html/images/ci.png b/html/images/ci.png index d26693caa8..29160b1d24 100644 Binary files a/html/images/ci.png and b/html/images/ci.png differ diff --git a/html/images/cmax.png b/html/images/cmax.png index c3f46b6577..9306faa189 100644 Binary files a/html/images/cmax.png and b/html/images/cmax.png differ diff --git a/html/images/coc.png b/html/images/coc.png index 7f97d8756d..4d3e27466b 100644 Binary files a/html/images/coc.png and b/html/images/coc.png differ diff --git a/html/images/cotbg.png b/html/images/cotbg.png index 5301d6c380..93e1a58bd3 100644 Binary files a/html/images/cotbg.png and b/html/images/cotbg.png differ diff --git a/html/images/dcd.png b/html/images/dcd.png index 1ccda87dbb..4c2c3ccd16 100644 Binary files a/html/images/dcd.png and b/html/images/dcd.png differ diff --git a/html/images/dea.png b/html/images/dea.png index 2e2d835821..c6a01ff63a 100644 Binary files a/html/images/dea.png and b/html/images/dea.png differ diff --git a/html/images/eng.png b/html/images/eng.png index e15ea23022..c5e07c63bf 100644 Binary files a/html/images/eng.png and b/html/images/eng.png differ diff --git a/html/images/ethics.png b/html/images/ethics.png index c448d231b5..44492da013 100644 Binary files a/html/images/ethics.png and b/html/images/ethics.png differ diff --git a/html/images/fsd.png b/html/images/fsd.png index 620974b2ca..0ea2852eb2 100644 Binary files a/html/images/fsd.png and b/html/images/fsd.png differ diff --git a/html/images/gr.PNG b/html/images/gr.PNG index 15574b8f3b..f7e55cf0b1 100644 Binary files a/html/images/gr.PNG and b/html/images/gr.PNG differ diff --git a/html/images/int.png b/html/images/int.png index 1265779fd9..58a40998ad 100644 Binary files a/html/images/int.png and b/html/images/int.png differ diff --git a/html/images/isd.png b/html/images/isd.png index 823dc056d2..f71c5fbdff 100644 Binary files a/html/images/isd.png and b/html/images/isd.png differ diff --git a/html/images/log.png b/html/images/log.png index acf935f848..221803151d 100644 Binary files a/html/images/log.png and b/html/images/log.png differ diff --git a/html/images/man.png b/html/images/man.png index bd057c0205..21aa13975c 100644 Binary files a/html/images/man.png and b/html/images/man.png differ diff --git a/html/images/mcd4.png b/html/images/mcd4.png index 2804168769..6d7a391f51 100644 Binary files a/html/images/mcd4.png and b/html/images/mcd4.png differ diff --git a/html/images/mcf.png b/html/images/mcf.png index d82d3222a5..8c8f09a661 100644 Binary files a/html/images/mcf.png and b/html/images/mcf.png differ diff --git a/html/images/med.png b/html/images/med.png index 62138a9b08..f9bf514d8c 100644 Binary files a/html/images/med.png and b/html/images/med.png differ diff --git a/html/images/misi.png b/html/images/misi.png index 0a12ab4e1b..a2ae88883c 100644 Binary files a/html/images/misi.png and b/html/images/misi.png differ diff --git a/html/images/mtf.png b/html/images/mtf.png index e12c225c01..23904ebcb1 100644 Binary files a/html/images/mtf.png and b/html/images/mtf.png differ diff --git a/html/images/o5.png b/html/images/o5.png index 488209acfb..d42f051bec 100644 Binary files a/html/images/o5.png and b/html/images/o5.png differ diff --git a/html/images/pata.png b/html/images/pata.png index fb82f740e6..ccc53c30b5 100644 Binary files a/html/images/pata.png and b/html/images/pata.png differ diff --git a/html/images/raisa.png b/html/images/raisa.png index 80f6e86e17..76bbef6e06 100644 Binary files a/html/images/raisa.png and b/html/images/raisa.png differ diff --git a/html/images/sci.png b/html/images/sci.png index 2661127243..66f36111ce 100644 Binary files a/html/images/sci.png and b/html/images/sci.png differ diff --git a/html/images/scplogo.png b/html/images/scplogo.png index 985ecd3641..5ca5e195a4 100644 Binary files a/html/images/scplogo.png and b/html/images/scplogo.png differ diff --git a/html/images/sec.png b/html/images/sec.png index ce3e00d598..be6e6552d3 100644 Binary files a/html/images/sec.png and b/html/images/sec.png differ diff --git a/html/images/sh.png b/html/images/sh.png index 5e50d536ff..6504ab35f5 100644 Binary files a/html/images/sh.png and b/html/images/sh.png differ diff --git a/html/images/spc.png b/html/images/spc.png index 99648975df..91d3fa67ee 100644 Binary files a/html/images/spc.png and b/html/images/spc.png differ diff --git a/html/images/talisman.png b/html/images/talisman.png index 48855ecab8..76dec2fea0 100644 Binary files a/html/images/talisman.png and b/html/images/talisman.png differ diff --git a/html/images/trib.png b/html/images/trib.png index d718645431..05bde0e9a6 100644 Binary files a/html/images/trib.png and b/html/images/trib.png differ diff --git a/html/images/uiu.png b/html/images/uiu.png index 442fdfed1e..a67666954e 100644 Binary files a/html/images/uiu.png and b/html/images/uiu.png differ diff --git a/html/images/ungoc.png b/html/images/ungoc.png index b69b6d85d8..dd5ed0029b 100644 Binary files a/html/images/ungoc.png and b/html/images/ungoc.png differ diff --git a/html/images/wws.png b/html/images/wws.png index 5437aa56e4..0de8facd9c 100644 Binary files a/html/images/wws.png and b/html/images/wws.png differ diff --git a/html/map-pencil.png b/html/map-pencil.png index a3804e18f4..77b7e9e1e4 100644 Binary files a/html/map-pencil.png and b/html/map-pencil.png differ diff --git a/html/music-minus.png b/html/music-minus.png index 1b9478f43e..24ed58b67e 100644 Binary files a/html/music-minus.png and b/html/music-minus.png differ diff --git a/html/music-plus.png b/html/music-plus.png index ea7f36c6ba..41bdabc3c8 100644 Binary files a/html/music-plus.png and b/html/music-plus.png differ diff --git a/html/scales.png b/html/scales.png index bb28dc9b59..c4073feba1 100644 Binary files a/html/scales.png and b/html/scales.png differ diff --git a/html/spell-check.png b/html/spell-check.png index 70b066d12a..820779e9d0 100644 Binary files a/html/spell-check.png and b/html/spell-check.png differ diff --git a/html/statbrowser.js b/html/statbrowser.js index 23ce6fbb34..9d3ee1bccb 100644 --- a/html/statbrowser.js +++ b/html/statbrowser.js @@ -230,7 +230,7 @@ function tab_change(tab) { draw_debug(); } else if (tab == turfname) { draw_listedturf(); - } else if (tab == "Subsystems"){ + } else if (tab == "Subsystems") { draw_borg_subsystems(); } else { statcontentdiv.textContext = "Loading..."; @@ -761,7 +761,6 @@ Byond.subscribeTo("add_borg_subsystems", function () { } addPermanentTab("Subsystems"); - }); Byond.subscribeTo("update_borg_subsystems", function (new_borg_subsystems) { diff --git a/html/tick-circle.png b/html/tick-circle.png index bcc4dc24b2..be90b850c9 100644 Binary files a/html/tick-circle.png and b/html/tick-circle.png differ diff --git a/html/wrench-screwdriver.png b/html/wrench-screwdriver.png index 1a59de688d..c8f7be463c 100644 Binary files a/html/wrench-screwdriver.png and b/html/wrench-screwdriver.png differ diff --git a/icons/480x480.dmi b/icons/480x480.dmi index 0b6d072855..b96947241c 100644 Binary files a/icons/480x480.dmi and b/icons/480x480.dmi differ diff --git a/icons/48x48/walls48.dmi b/icons/48x48/walls48.dmi index 7e3dbe8bf6..69d39a5fc7 100644 Binary files a/icons/48x48/walls48.dmi and b/icons/48x48/walls48.dmi differ diff --git a/icons/FoundationSymbol.dmi b/icons/FoundationSymbol.dmi index 9590ed2182..80ed4b8f48 100644 Binary files a/icons/FoundationSymbol.dmi and b/icons/FoundationSymbol.dmi differ diff --git a/icons/SCP/SCP-131.dmi b/icons/SCP/SCP-131.dmi index cd0b2a2b02..83b49e3d65 100644 Binary files a/icons/SCP/SCP-131.dmi and b/icons/SCP/SCP-131.dmi differ diff --git a/icons/SCP/SCP-914-32x64.dmi b/icons/SCP/SCP-914-32x64.dmi index 3f384b25aa..cb1484866a 100644 Binary files a/icons/SCP/SCP-914-32x64.dmi and b/icons/SCP/SCP-914-32x64.dmi differ diff --git a/icons/SCP/SCP-914-64x64.dmi b/icons/SCP/SCP-914-64x64.dmi index d8e5d609d3..aaa5d54a87 100644 Binary files a/icons/SCP/SCP-914-64x64.dmi and b/icons/SCP/SCP-914-64x64.dmi differ diff --git a/icons/SCP/cage.dmi b/icons/SCP/cage.dmi index 4eace4c469..aec11db579 100644 Binary files a/icons/SCP/cage.dmi and b/icons/SCP/cage.dmi differ diff --git a/icons/SCP/hud_scramble.dmi b/icons/SCP/hud_scramble.dmi index df62905594..1eb02a6613 100644 Binary files a/icons/SCP/hud_scramble.dmi and b/icons/SCP/hud_scramble.dmi differ diff --git a/icons/SCP/scp-012.dmi b/icons/SCP/scp-012.dmi index fff7006cb4..40378b3a1d 100644 Binary files a/icons/SCP/scp-012.dmi and b/icons/SCP/scp-012.dmi differ diff --git a/icons/SCP/scp-017.dmi b/icons/SCP/scp-017.dmi index 6e6dd3cb7e..c5ef174056 100644 Binary files a/icons/SCP/scp-017.dmi and b/icons/SCP/scp-017.dmi differ diff --git a/icons/SCP/scp-049.dmi b/icons/SCP/scp-049.dmi index 52547c3ba6..bb3c139db2 100644 Binary files a/icons/SCP/scp-049.dmi and b/icons/SCP/scp-049.dmi differ diff --git a/icons/SCP/scp-066.dmi b/icons/SCP/scp-066.dmi index 409972db08..9ded467c2f 100644 Binary files a/icons/SCP/scp-066.dmi and b/icons/SCP/scp-066.dmi differ diff --git a/icons/SCP/scp-080.dmi b/icons/SCP/scp-080.dmi index fae0ce8a67..1357a51f6c 100644 Binary files a/icons/SCP/scp-080.dmi and b/icons/SCP/scp-080.dmi differ diff --git a/icons/SCP/scp-082.dmi b/icons/SCP/scp-082.dmi index 0b02198c33..23b9cb743d 100644 Binary files a/icons/SCP/scp-082.dmi and b/icons/SCP/scp-082.dmi differ diff --git a/icons/SCP/scp-096.dmi b/icons/SCP/scp-096.dmi index 88b09cdbcb..d82dc237a5 100644 Binary files a/icons/SCP/scp-096.dmi and b/icons/SCP/scp-096.dmi differ diff --git a/icons/SCP/scp-106.dmi b/icons/SCP/scp-106.dmi index 706960def2..52a5b4c46b 100644 Binary files a/icons/SCP/scp-106.dmi and b/icons/SCP/scp-106.dmi differ diff --git a/icons/SCP/scp-113.dmi b/icons/SCP/scp-113.dmi index 563f64d119..560955dab3 100644 Binary files a/icons/SCP/scp-113.dmi and b/icons/SCP/scp-113.dmi differ diff --git a/icons/SCP/scp-1499.dmi b/icons/SCP/scp-1499.dmi index 1c42c11dc5..89414086d9 100644 Binary files a/icons/SCP/scp-1499.dmi and b/icons/SCP/scp-1499.dmi differ diff --git a/icons/SCP/scp-1507.dmi b/icons/SCP/scp-1507.dmi index e03799e68c..e5590419ad 100644 Binary files a/icons/SCP/scp-1507.dmi and b/icons/SCP/scp-1507.dmi differ diff --git a/icons/SCP/scp-173.dmi b/icons/SCP/scp-173.dmi index 8082d664ba..81cdc68100 100644 Binary files a/icons/SCP/scp-173.dmi and b/icons/SCP/scp-173.dmi differ diff --git a/icons/SCP/scp-178.dmi b/icons/SCP/scp-178.dmi index 23defa071a..4c7c768611 100644 Binary files a/icons/SCP/scp-178.dmi and b/icons/SCP/scp-178.dmi differ diff --git a/icons/SCP/scp-2020.dmi b/icons/SCP/scp-2020.dmi index 2e969a4023..51544ee15c 100644 Binary files a/icons/SCP/scp-2020.dmi and b/icons/SCP/scp-2020.dmi differ diff --git a/icons/SCP/scp-2398.dmi b/icons/SCP/scp-2398.dmi index b9797e2b23..a477de1396 100644 Binary files a/icons/SCP/scp-2398.dmi and b/icons/SCP/scp-2398.dmi differ diff --git a/icons/SCP/scp-2427-3.dmi b/icons/SCP/scp-2427-3.dmi index 5da8899134..e8b7287e7a 100644 Binary files a/icons/SCP/scp-2427-3.dmi and b/icons/SCP/scp-2427-3.dmi differ diff --git a/icons/SCP/scp-247.dmi b/icons/SCP/scp-247.dmi index 6a1e40ffdd..da4dd92a1c 100644 Binary files a/icons/SCP/scp-247.dmi and b/icons/SCP/scp-247.dmi differ diff --git a/icons/SCP/scp-263.dmi b/icons/SCP/scp-263.dmi index b2235ab304..973b1f84a4 100644 Binary files a/icons/SCP/scp-263.dmi and b/icons/SCP/scp-263.dmi differ diff --git a/icons/SCP/scp-280.dmi b/icons/SCP/scp-280.dmi index 61ca5c1192..9a285d004d 100644 Binary files a/icons/SCP/scp-280.dmi and b/icons/SCP/scp-280.dmi differ diff --git a/icons/SCP/scp-343.dmi b/icons/SCP/scp-343.dmi index d4bba27e6a..a098c6ff5a 100644 Binary files a/icons/SCP/scp-343.dmi and b/icons/SCP/scp-343.dmi differ diff --git a/icons/SCP/scp-399.dmi b/icons/SCP/scp-399.dmi index ee50c9e584..41f99f49eb 100644 Binary files a/icons/SCP/scp-399.dmi and b/icons/SCP/scp-399.dmi differ diff --git a/icons/SCP/scp-457.dmi b/icons/SCP/scp-457.dmi index 4ede743bd7..362368f08c 100644 Binary files a/icons/SCP/scp-457.dmi and b/icons/SCP/scp-457.dmi differ diff --git a/icons/SCP/scp-513-1.dmi b/icons/SCP/scp-513-1.dmi index 3065a3b002..00dc4b4992 100644 Binary files a/icons/SCP/scp-513-1.dmi and b/icons/SCP/scp-513-1.dmi differ diff --git a/icons/SCP/scp-513.dmi b/icons/SCP/scp-513.dmi index 3b4298196d..025f9157a3 100644 Binary files a/icons/SCP/scp-513.dmi and b/icons/SCP/scp-513.dmi differ diff --git a/icons/SCP/scp-527.dmi b/icons/SCP/scp-527.dmi index 2ee9ccb807..d9088f7844 100644 Binary files a/icons/SCP/scp-527.dmi and b/icons/SCP/scp-527.dmi differ diff --git a/icons/SCP/scp-529.dmi b/icons/SCP/scp-529.dmi index ab979d2889..096e6b01ee 100644 Binary files a/icons/SCP/scp-529.dmi and b/icons/SCP/scp-529.dmi differ diff --git a/icons/SCP/scp-714.dmi b/icons/SCP/scp-714.dmi index 812f941555..38cbffae31 100644 Binary files a/icons/SCP/scp-714.dmi and b/icons/SCP/scp-714.dmi differ diff --git a/icons/SCP/scp-999.dmi b/icons/SCP/scp-999.dmi index 244e4176d6..c29432bced 100644 Binary files a/icons/SCP/scp-999.dmi and b/icons/SCP/scp-999.dmi differ diff --git a/icons/SCP/scp294.dmi b/icons/SCP/scp294.dmi index 5b31c02fad..f43eab0db4 100644 Binary files a/icons/SCP/scp294.dmi and b/icons/SCP/scp294.dmi differ diff --git a/icons/SCP/scp347/organs.dmi b/icons/SCP/scp347/organs.dmi index 0374afe8cf..955fedd070 100644 Binary files a/icons/SCP/scp347/organs.dmi and b/icons/SCP/scp347/organs.dmi differ diff --git a/icons/SCP/scp347/scp-347-eyes.dmi b/icons/SCP/scp347/scp-347-eyes.dmi index 059e746266..aa8c60f513 100644 Binary files a/icons/SCP/scp347/scp-347-eyes.dmi and b/icons/SCP/scp347/scp-347-eyes.dmi differ diff --git a/icons/SCP/scp347/scp-347.dmi b/icons/SCP/scp347/scp-347.dmi index 2dc849345f..fccfde8371 100644 Binary files a/icons/SCP/scp347/scp-347.dmi and b/icons/SCP/scp347/scp-347.dmi differ diff --git a/icons/SCP/scp_2343.dmi b/icons/SCP/scp_2343.dmi index 0612eea528..d5edd22893 100644 Binary files a/icons/SCP/scp_2343.dmi and b/icons/SCP/scp_2343.dmi differ diff --git a/icons/SCP/syringe.dmi b/icons/SCP/syringe.dmi index ebf9ae6399..4c094d5c50 100644 Binary files a/icons/SCP/syringe.dmi and b/icons/SCP/syringe.dmi differ diff --git a/icons/Testing/Zone.dmi b/icons/Testing/Zone.dmi index 1d8ab85166..c45b9b1657 100644 Binary files a/icons/Testing/Zone.dmi and b/icons/Testing/Zone.dmi differ diff --git a/icons/Testing/air_meter.dmi b/icons/Testing/air_meter.dmi index 56d1ff18a5..ca0dcd5f3f 100644 Binary files a/icons/Testing/air_meter.dmi and b/icons/Testing/air_meter.dmi differ diff --git a/icons/Testing/atmos_testing.dmi b/icons/Testing/atmos_testing.dmi index 142bd4cbb1..5459364f87 100644 Binary files a/icons/Testing/atmos_testing.dmi and b/icons/Testing/atmos_testing.dmi differ diff --git a/icons/Testing/turf_analysis.dmi b/icons/Testing/turf_analysis.dmi index e3aac1ebd0..7ba5818195 100644 Binary files a/icons/Testing/turf_analysis.dmi and b/icons/Testing/turf_analysis.dmi differ diff --git a/icons/VendingMachineBG.png b/icons/VendingMachineBG.png index 5d7f010d1d..7d70590c16 100644 Binary files a/icons/VendingMachineBG.png and b/icons/VendingMachineBG.png differ diff --git a/icons/am_engine.dmi b/icons/am_engine.dmi index bcaa8e49a7..770ed4965e 100644 Binary files a/icons/am_engine.dmi and b/icons/am_engine.dmi differ diff --git a/icons/atmos/clamp.dmi b/icons/atmos/clamp.dmi index 95a9c40662..5425ecb9bd 100644 Binary files a/icons/atmos/clamp.dmi and b/icons/atmos/clamp.dmi differ diff --git a/icons/atmos/connector.dmi b/icons/atmos/connector.dmi index cf4ea7a3c8..70c529fd42 100644 Binary files a/icons/atmos/connector.dmi and b/icons/atmos/connector.dmi differ diff --git a/icons/atmos/digital_tvalve.dmi b/icons/atmos/digital_tvalve.dmi index b34d2903b5..06332abff2 100644 Binary files a/icons/atmos/digital_tvalve.dmi and b/icons/atmos/digital_tvalve.dmi differ diff --git a/icons/atmos/digital_valve.dmi b/icons/atmos/digital_valve.dmi index b1adc8b651..ee05b910f2 100644 Binary files a/icons/atmos/digital_valve.dmi and b/icons/atmos/digital_valve.dmi differ diff --git a/icons/atmos/filter.dmi b/icons/atmos/filter.dmi index 8b5cd81c70..55b30ef259 100644 Binary files a/icons/atmos/filter.dmi and b/icons/atmos/filter.dmi differ diff --git a/icons/atmos/heat.dmi b/icons/atmos/heat.dmi index 1014c2015b..33cec280b3 100644 Binary files a/icons/atmos/heat.dmi and b/icons/atmos/heat.dmi differ diff --git a/icons/atmos/injector.dmi b/icons/atmos/injector.dmi index 03a60d2e5d..f2e9b31fef 100644 Binary files a/icons/atmos/injector.dmi and b/icons/atmos/injector.dmi differ diff --git a/icons/atmos/junction.dmi b/icons/atmos/junction.dmi index 892f5823f2..4157fabd3c 100644 Binary files a/icons/atmos/junction.dmi and b/icons/atmos/junction.dmi differ diff --git a/icons/atmos/manifold.dmi b/icons/atmos/manifold.dmi index b7c5d0a2f1..bd424edda2 100644 Binary files a/icons/atmos/manifold.dmi and b/icons/atmos/manifold.dmi differ diff --git a/icons/atmos/mixer.dmi b/icons/atmos/mixer.dmi index 0fcb92820f..25b424276a 100644 Binary files a/icons/atmos/mixer.dmi and b/icons/atmos/mixer.dmi differ diff --git a/icons/atmos/omni_devices.dmi b/icons/atmos/omni_devices.dmi index 494ea7e24d..ed95dd9ebe 100644 Binary files a/icons/atmos/omni_devices.dmi and b/icons/atmos/omni_devices.dmi differ diff --git a/icons/atmos/oxyregenerator.dmi b/icons/atmos/oxyregenerator.dmi index f40b94096e..2de77af714 100644 Binary files a/icons/atmos/oxyregenerator.dmi and b/icons/atmos/oxyregenerator.dmi differ diff --git a/icons/atmos/passive_gate.dmi b/icons/atmos/passive_gate.dmi index ff1b7a5a52..dfbf0aefd3 100644 Binary files a/icons/atmos/passive_gate.dmi and b/icons/atmos/passive_gate.dmi differ diff --git a/icons/atmos/pipe-sparker.dmi b/icons/atmos/pipe-sparker.dmi index a0acc909ee..e55dcbcd71 100644 Binary files a/icons/atmos/pipe-sparker.dmi and b/icons/atmos/pipe-sparker.dmi differ diff --git a/icons/atmos/pipe_underlays.dmi b/icons/atmos/pipe_underlays.dmi index f6f38a9a7d..add96605db 100644 Binary files a/icons/atmos/pipe_underlays.dmi and b/icons/atmos/pipe_underlays.dmi differ diff --git a/icons/atmos/pipes.dmi b/icons/atmos/pipes.dmi index 5b3e84bf90..d753da386a 100644 Binary files a/icons/atmos/pipes.dmi and b/icons/atmos/pipes.dmi differ diff --git a/icons/atmos/pump.dmi b/icons/atmos/pump.dmi index a1e2d43ca2..3aee434286 100644 Binary files a/icons/atmos/pump.dmi and b/icons/atmos/pump.dmi differ diff --git a/icons/atmos/tank.dmi b/icons/atmos/tank.dmi index c36c231a14..fa6f12513f 100644 Binary files a/icons/atmos/tank.dmi and b/icons/atmos/tank.dmi differ diff --git a/icons/atmos/tvalve.dmi b/icons/atmos/tvalve.dmi index 197862b32a..5a1cd6ad97 100644 Binary files a/icons/atmos/tvalve.dmi and b/icons/atmos/tvalve.dmi differ diff --git a/icons/atmos/valve.dmi b/icons/atmos/valve.dmi index 04351917b6..c80b236d02 100644 Binary files a/icons/atmos/valve.dmi and b/icons/atmos/valve.dmi differ diff --git a/icons/atmos/vent_pump.dmi b/icons/atmos/vent_pump.dmi index 70243d322c..31cf239763 100644 Binary files a/icons/atmos/vent_pump.dmi and b/icons/atmos/vent_pump.dmi differ diff --git a/icons/atmos/vent_scrubber.dmi b/icons/atmos/vent_scrubber.dmi index 65894e4dc1..fba529a39e 100644 Binary files a/icons/atmos/vent_scrubber.dmi and b/icons/atmos/vent_scrubber.dmi differ diff --git a/icons/atmos/volume_pump.dmi b/icons/atmos/volume_pump.dmi index 9114b6ac31..52b7cfff52 100644 Binary files a/icons/atmos/volume_pump.dmi and b/icons/atmos/volume_pump.dmi differ diff --git a/icons/chatbadges.dmi b/icons/chatbadges.dmi index f8cea6a9fa..d2e85b57b7 100644 Binary files a/icons/chatbadges.dmi and b/icons/chatbadges.dmi differ diff --git a/icons/chattags.dmi b/icons/chattags.dmi index 1bbf0d93ce..779531044b 100644 Binary files a/icons/chattags.dmi and b/icons/chattags.dmi differ diff --git a/icons/covershield.dmi b/icons/covershield.dmi index b3d8b21e8d..c8cc407db8 100644 Binary files a/icons/covershield.dmi and b/icons/covershield.dmi differ diff --git a/icons/default_lobby.png b/icons/default_lobby.png index 51265e3975..2cdf803dc2 100644 Binary files a/icons/default_lobby.png and b/icons/default_lobby.png differ diff --git a/icons/dispensebutton_bg.png b/icons/dispensebutton_bg.png index 195c02114e..760af7e168 100644 Binary files a/icons/dispensebutton_bg.png and b/icons/dispensebutton_bg.png differ diff --git a/icons/effects/128x48.dmi b/icons/effects/128x48.dmi index 71038ffdbf..f4f4a6c743 100644 Binary files a/icons/effects/128x48.dmi and b/icons/effects/128x48.dmi differ diff --git a/icons/effects/160x160.dmi b/icons/effects/160x160.dmi index 84c7a18c4c..5005271b3d 100644 Binary files a/icons/effects/160x160.dmi and b/icons/effects/160x160.dmi differ diff --git a/icons/effects/224x224.dmi b/icons/effects/224x224.dmi index bc5c4692ad..a10c5a9319 100644 Binary files a/icons/effects/224x224.dmi and b/icons/effects/224x224.dmi differ diff --git a/icons/effects/288x288.dmi b/icons/effects/288x288.dmi index c434b4334b..41b84a9960 100644 Binary files a/icons/effects/288x288.dmi and b/icons/effects/288x288.dmi differ diff --git a/icons/effects/352x352.dmi b/icons/effects/352x352.dmi index b5e369d91d..77b0d796e9 100644 Binary files a/icons/effects/352x352.dmi and b/icons/effects/352x352.dmi differ diff --git a/icons/effects/416x416.dmi b/icons/effects/416x416.dmi index 93f4ba7d52..a02615b049 100644 Binary files a/icons/effects/416x416.dmi and b/icons/effects/416x416.dmi differ diff --git a/icons/effects/64x64.dmi b/icons/effects/64x64.dmi index 5ebf9ff164..6010fb64ee 100644 Binary files a/icons/effects/64x64.dmi and b/icons/effects/64x64.dmi differ diff --git a/icons/effects/96x96.dmi b/icons/effects/96x96.dmi index 0746b2a1a8..c38b199028 100644 Binary files a/icons/effects/96x96.dmi and b/icons/effects/96x96.dmi differ diff --git a/icons/effects/Targeted.dmi b/icons/effects/Targeted.dmi index 6d61505e6c..643f1b0646 100644 Binary files a/icons/effects/Targeted.dmi and b/icons/effects/Targeted.dmi differ diff --git a/icons/effects/alert.dmi b/icons/effects/alert.dmi index 51b8175033..bb42f1540b 100644 Binary files a/icons/effects/alert.dmi and b/icons/effects/alert.dmi differ diff --git a/icons/effects/alphacolors.dmi b/icons/effects/alphacolors.dmi index 02316fbf64..572eae45de 100644 Binary files a/icons/effects/alphacolors.dmi and b/icons/effects/alphacolors.dmi differ diff --git a/icons/effects/beam.dmi b/icons/effects/beam.dmi index 0e588d2a45..0f07830a75 100644 Binary files a/icons/effects/beam.dmi and b/icons/effects/beam.dmi differ diff --git a/icons/effects/blood.dmi b/icons/effects/blood.dmi index 5973d96c96..22f9c09848 100644 Binary files a/icons/effects/blood.dmi and b/icons/effects/blood.dmi differ diff --git a/icons/effects/bloodspatter.dmi b/icons/effects/bloodspatter.dmi index c41b7cb6b4..6221565f48 100644 Binary files a/icons/effects/bloodspatter.dmi and b/icons/effects/bloodspatter.dmi differ diff --git a/icons/effects/cameravis.dmi b/icons/effects/cameravis.dmi index 2b819836fc..3b7c4679ae 100644 Binary files a/icons/effects/cameravis.dmi and b/icons/effects/cameravis.dmi differ diff --git a/icons/effects/chemsmoke.dmi b/icons/effects/chemsmoke.dmi index 4308e3d40b..7f8244e58d 100644 Binary files a/icons/effects/chemsmoke.dmi and b/icons/effects/chemsmoke.dmi differ diff --git a/icons/effects/contamination.dmi b/icons/effects/contamination.dmi index 367394213b..060d384f8b 100644 Binary files a/icons/effects/contamination.dmi and b/icons/effects/contamination.dmi differ diff --git a/icons/effects/crayondecal.dmi b/icons/effects/crayondecal.dmi index e1966e9bb5..c9b9f2391b 100644 Binary files a/icons/effects/crayondecal.dmi and b/icons/effects/crayondecal.dmi differ diff --git a/icons/effects/drip.dmi b/icons/effects/drip.dmi index a756bc10f8..5559d2f59a 100644 Binary files a/icons/effects/drip.dmi and b/icons/effects/drip.dmi differ diff --git a/icons/effects/effects.dmi b/icons/effects/effects.dmi index 8926e030c3..0a11b69c42 100644 Binary files a/icons/effects/effects.dmi and b/icons/effects/effects.dmi differ diff --git a/icons/effects/fire.dmi b/icons/effects/fire.dmi index 90e3bb4125..6913483d03 100644 Binary files a/icons/effects/fire.dmi and b/icons/effects/fire.dmi differ diff --git a/icons/effects/fluidtracks.dmi b/icons/effects/fluidtracks.dmi index 534c7d47f8..1b9b99ab3a 100644 Binary files a/icons/effects/fluidtracks.dmi and b/icons/effects/fluidtracks.dmi differ diff --git a/icons/effects/footprints.dmi b/icons/effects/footprints.dmi index b849de00ff..b3e0b59fac 100644 Binary files a/icons/effects/footprints.dmi and b/icons/effects/footprints.dmi differ diff --git a/icons/effects/genetics.dmi b/icons/effects/genetics.dmi index 8e31fea961..9573559700 100644 Binary files a/icons/effects/genetics.dmi and b/icons/effects/genetics.dmi differ diff --git a/icons/effects/landmarks.dmi b/icons/effects/landmarks.dmi index e46f23ae8d..3e166ac4e8 100644 Binary files a/icons/effects/landmarks.dmi and b/icons/effects/landmarks.dmi differ diff --git a/icons/effects/lens_flare.dmi b/icons/effects/lens_flare.dmi index 7d0c3ecbfa..96bef399ca 100644 Binary files a/icons/effects/lens_flare.dmi and b/icons/effects/lens_flare.dmi differ diff --git a/icons/effects/lighting.dmi b/icons/effects/lighting.dmi index e79e69e6a6..cf909fd80d 100644 Binary files a/icons/effects/lighting.dmi and b/icons/effects/lighting.dmi differ diff --git a/icons/effects/lighting_overlay.dmi b/icons/effects/lighting_overlay.dmi index 8e4c8ca9e0..c8c754353b 100644 Binary files a/icons/effects/lighting_overlay.dmi and b/icons/effects/lighting_overlay.dmi differ diff --git a/icons/effects/lighting_overlay.png b/icons/effects/lighting_overlay.png index b317268b70..12854ce6ca 100644 Binary files a/icons/effects/lighting_overlay.png and b/icons/effects/lighting_overlay.png differ diff --git a/icons/effects/liquid.dmi b/icons/effects/liquid.dmi index 258a0fb2e6..c2a40f0eb6 100644 Binary files a/icons/effects/liquid.dmi and b/icons/effects/liquid.dmi differ diff --git a/icons/effects/liquids.dmi b/icons/effects/liquids.dmi index 3236224036..079f336885 100644 Binary files a/icons/effects/liquids.dmi and b/icons/effects/liquids.dmi differ diff --git a/icons/effects/magic_orb.dmi b/icons/effects/magic_orb.dmi index f20acae4a7..2de9d64653 100644 Binary files a/icons/effects/magic_orb.dmi and b/icons/effects/magic_orb.dmi differ diff --git a/icons/effects/medical_decals.dmi b/icons/effects/medical_decals.dmi index 688631a927..09525a6d6d 100644 Binary files a/icons/effects/medical_decals.dmi and b/icons/effects/medical_decals.dmi differ diff --git a/icons/effects/mouse_pointers/examine_pointer.dmi b/icons/effects/mouse_pointers/examine_pointer.dmi index 41a9cec13b..93659a86e3 100644 Binary files a/icons/effects/mouse_pointers/examine_pointer.dmi and b/icons/effects/mouse_pointers/examine_pointer.dmi differ diff --git a/icons/effects/particles.dmi b/icons/effects/particles.dmi index 4825d9701c..16a323f282 100644 Binary files a/icons/effects/particles.dmi and b/icons/effects/particles.dmi differ diff --git a/icons/effects/plasma.dmi b/icons/effects/plasma.dmi index dc07f1bd01..2099969bec 100644 Binary files a/icons/effects/plasma.dmi and b/icons/effects/plasma.dmi differ diff --git a/icons/effects/projectiles.dmi b/icons/effects/projectiles.dmi index e01aa3606b..14263fdf5a 100644 Binary files a/icons/effects/projectiles.dmi and b/icons/effects/projectiles.dmi differ diff --git a/icons/effects/projectiles/impact.dmi b/icons/effects/projectiles/impact.dmi index de5a8656d3..918421f6fb 100644 Binary files a/icons/effects/projectiles/impact.dmi and b/icons/effects/projectiles/impact.dmi differ diff --git a/icons/effects/projectiles/muzzle.dmi b/icons/effects/projectiles/muzzle.dmi index b09e1c1755..414982308d 100644 Binary files a/icons/effects/projectiles/muzzle.dmi and b/icons/effects/projectiles/muzzle.dmi differ diff --git a/icons/effects/projectiles/tracer.dmi b/icons/effects/projectiles/tracer.dmi index 28d6f4b902..e577a640d0 100644 Binary files a/icons/effects/projectiles/tracer.dmi and b/icons/effects/projectiles/tracer.dmi differ diff --git a/icons/effects/psi_aura_small.dmi b/icons/effects/psi_aura_small.dmi index f5e222b61f..e324a893ee 100644 Binary files a/icons/effects/psi_aura_small.dmi and b/icons/effects/psi_aura_small.dmi differ diff --git a/icons/effects/razorweb.dmi b/icons/effects/razorweb.dmi index 1aa902d091..ccadda7a05 100644 Binary files a/icons/effects/razorweb.dmi and b/icons/effects/razorweb.dmi differ diff --git a/icons/effects/sound_effect.dmi b/icons/effects/sound_effect.dmi index d6f9ec87c1..84f1b588dc 100644 Binary files a/icons/effects/sound_effect.dmi and b/icons/effects/sound_effect.dmi differ diff --git a/icons/effects/spacevines.dmi b/icons/effects/spacevines.dmi index 7087416ae7..f9fe6873d7 100644 Binary files a/icons/effects/spacevines.dmi and b/icons/effects/spacevines.dmi differ diff --git a/icons/effects/species.dmi b/icons/effects/species.dmi index 8c231b9b68..5e48afeef3 100644 Binary files a/icons/effects/species.dmi and b/icons/effects/species.dmi differ diff --git a/icons/effects/ss13_dark_alpha6.dmi b/icons/effects/ss13_dark_alpha6.dmi index 742337358d..f87dcd7789 100644 Binary files a/icons/effects/ss13_dark_alpha6.dmi and b/icons/effects/ss13_dark_alpha6.dmi differ diff --git a/icons/effects/ss13_dark_alpha7.dmi b/icons/effects/ss13_dark_alpha7.dmi index b270621719..d1fca9b7d8 100644 Binary files a/icons/effects/ss13_dark_alpha7.dmi and b/icons/effects/ss13_dark_alpha7.dmi differ diff --git a/icons/effects/ss13_dark_alpha7_DEBUG.dmi b/icons/effects/ss13_dark_alpha7_DEBUG.dmi index 91beaddd08..ce30d74677 100644 Binary files a/icons/effects/ss13_dark_alpha7_DEBUG.dmi and b/icons/effects/ss13_dark_alpha7_DEBUG.dmi differ diff --git a/icons/effects/ss13_dark_alpha7_old.dmi b/icons/effects/ss13_dark_alpha7_old.dmi index 85178c4e46..af2310b479 100644 Binary files a/icons/effects/ss13_dark_alpha7_old.dmi and b/icons/effects/ss13_dark_alpha7_old.dmi differ diff --git a/icons/effects/static.dmi b/icons/effects/static.dmi index 63f6a1e6f6..45bb998bd4 100644 Binary files a/icons/effects/static.dmi and b/icons/effects/static.dmi differ diff --git a/icons/effects/station_explosion.dmi b/icons/effects/station_explosion.dmi index 3edf02c264..7b34bc44cb 100644 Binary files a/icons/effects/station_explosion.dmi and b/icons/effects/station_explosion.dmi differ diff --git a/icons/effects/tile_effects.dmi b/icons/effects/tile_effects.dmi index a1b92ff11d..e54d0979fd 100644 Binary files a/icons/effects/tile_effects.dmi and b/icons/effects/tile_effects.dmi differ diff --git a/icons/effects/tomatodecal.dmi b/icons/effects/tomatodecal.dmi index a67e1a5e93..d819891c9d 100644 Binary files a/icons/effects/tomatodecal.dmi and b/icons/effects/tomatodecal.dmi differ diff --git a/icons/effects/turf_fire.dmi b/icons/effects/turf_fire.dmi index f20bd64a4e..3b79801473 100644 Binary files a/icons/effects/turf_fire.dmi and b/icons/effects/turf_fire.dmi differ diff --git a/icons/effects/uristrunes.dmi b/icons/effects/uristrunes.dmi index ce195cf993..a241b9f1b9 100644 Binary files a/icons/effects/uristrunes.dmi and b/icons/effects/uristrunes.dmi differ diff --git a/icons/effects/vomit.dmi b/icons/effects/vomit.dmi index ee3fc3a6ad..94dcfba775 100644 Binary files a/icons/effects/vomit.dmi and b/icons/effects/vomit.dmi differ diff --git a/icons/effects/wallrot.dmi b/icons/effects/wallrot.dmi index 3ca5467712..f984a7e43b 100644 Binary files a/icons/effects/wallrot.dmi and b/icons/effects/wallrot.dmi differ diff --git a/icons/effects/warning_stripes.dmi b/icons/effects/warning_stripes.dmi index a0cf5e3244..d269cb6132 100644 Binary files a/icons/effects/warning_stripes.dmi and b/icons/effects/warning_stripes.dmi differ diff --git a/icons/effects/water.dmi b/icons/effects/water.dmi index 0db9328155..25622bfb2a 100644 Binary files a/icons/effects/water.dmi and b/icons/effects/water.dmi differ diff --git a/icons/effects/writing.dmi b/icons/effects/writing.dmi index bbf4055bce..c066c862f9 100644 Binary files a/icons/effects/writing.dmi and b/icons/effects/writing.dmi differ diff --git a/icons/hud/actions.dmi b/icons/hud/actions.dmi index 1438993861..e715788572 100644 Binary files a/icons/hud/actions.dmi and b/icons/hud/actions.dmi differ diff --git a/icons/hud/organs.dmi b/icons/hud/organs.dmi index a7aaf3f80b..7bc3c07a0f 100644 Binary files a/icons/hud/organs.dmi and b/icons/hud/organs.dmi differ diff --git a/icons/hud/progressbar.dmi b/icons/hud/progressbar.dmi index f055a07ba1..4588e56af0 100644 Binary files a/icons/hud/progressbar.dmi and b/icons/hud/progressbar.dmi differ diff --git a/icons/hud/progressbar_interactive.dmi b/icons/hud/progressbar_interactive.dmi index 8244aaf339..fd0d06e101 100644 Binary files a/icons/hud/progressbar_interactive.dmi and b/icons/hud/progressbar_interactive.dmi differ diff --git a/icons/hud/progressbar_target.dmi b/icons/hud/progressbar_target.dmi index f873f41e8b..1ea2259064 100644 Binary files a/icons/hud/progressbar_target.dmi and b/icons/hud/progressbar_target.dmi differ diff --git a/icons/hud/psi.dmi b/icons/hud/psi.dmi index 569d374de7..815f860b52 100644 Binary files a/icons/hud/psi.dmi and b/icons/hud/psi.dmi differ diff --git a/icons/hud/radial/basic.dmi b/icons/hud/radial/basic.dmi index ce8cb8ba9f..9e5e163943 100644 Binary files a/icons/hud/radial/basic.dmi and b/icons/hud/radial/basic.dmi differ diff --git a/icons/hud/radial/palletes/default.dmi b/icons/hud/radial/palletes/default.dmi index d61142f8b1..14343777bb 100644 Binary files a/icons/hud/radial/palletes/default.dmi and b/icons/hud/radial/palletes/default.dmi differ diff --git a/icons/hud/screen_ai.dmi b/icons/hud/screen_ai.dmi index 4429405fd5..a34ff844a5 100644 Binary files a/icons/hud/screen_ai.dmi and b/icons/hud/screen_ai.dmi differ diff --git a/icons/hud/screen_alert.dmi b/icons/hud/screen_alert.dmi index 680bcd093a..ac370852c4 100644 Binary files a/icons/hud/screen_alert.dmi and b/icons/hud/screen_alert.dmi differ diff --git a/icons/hud/screen_ghost.dmi b/icons/hud/screen_ghost.dmi index c52faa686d..01c4632442 100644 Binary files a/icons/hud/screen_ghost.dmi and b/icons/hud/screen_ghost.dmi differ diff --git a/icons/jungle.dmi b/icons/jungle.dmi index a4ee3d5350..7d22ef19bc 100644 Binary files a/icons/jungle.dmi and b/icons/jungle.dmi differ diff --git a/icons/mecha/backup.dmi b/icons/mecha/backup.dmi index a499acda17..561c346d94 100644 Binary files a/icons/mecha/backup.dmi and b/icons/mecha/backup.dmi differ diff --git a/icons/mecha/ballistic_shield.dmi b/icons/mecha/ballistic_shield.dmi index d5b7118eea..75d9d8ae1e 100644 Binary files a/icons/mecha/ballistic_shield.dmi and b/icons/mecha/ballistic_shield.dmi differ diff --git a/icons/mecha/mech_bay.dmi b/icons/mecha/mech_bay.dmi index e46f668f0d..c18b2d3b2a 100644 Binary files a/icons/mecha/mech_bay.dmi and b/icons/mecha/mech_bay.dmi differ diff --git a/icons/mecha/mech_construct.dmi b/icons/mecha/mech_construct.dmi index 9213e418ff..da4902f350 100644 Binary files a/icons/mecha/mech_construct.dmi and b/icons/mecha/mech_construct.dmi differ diff --git a/icons/mecha/mech_construction.dmi b/icons/mecha/mech_construction.dmi index 5cf5b9cae7..79a0f93496 100644 Binary files a/icons/mecha/mech_construction.dmi and b/icons/mecha/mech_construction.dmi differ diff --git a/icons/mecha/mech_decals.dmi b/icons/mecha/mech_decals.dmi index b0de8d7e8e..42a0274f46 100644 Binary files a/icons/mecha/mech_decals.dmi and b/icons/mecha/mech_decals.dmi differ diff --git a/icons/mecha/mech_equipment.dmi b/icons/mecha/mech_equipment.dmi index 93ad439f7c..6d904afffe 100644 Binary files a/icons/mecha/mech_equipment.dmi and b/icons/mecha/mech_equipment.dmi differ diff --git a/icons/mecha/mech_fab.dmi b/icons/mecha/mech_fab.dmi index 3a2ab9e488..d1becfd941 100644 Binary files a/icons/mecha/mech_fab.dmi and b/icons/mecha/mech_fab.dmi differ diff --git a/icons/mecha/mech_hud.dmi b/icons/mecha/mech_hud.dmi index 16dbd9d4e5..0da14ff890 100644 Binary files a/icons/mecha/mech_hud.dmi and b/icons/mecha/mech_hud.dmi differ diff --git a/icons/mecha/mech_part_items.dmi b/icons/mecha/mech_part_items.dmi index b6072b7ca0..e0796a3104 100644 Binary files a/icons/mecha/mech_part_items.dmi and b/icons/mecha/mech_part_items.dmi differ diff --git a/icons/mecha/mech_parts.dmi b/icons/mecha/mech_parts.dmi index ca4c35b15d..d3a3626cab 100644 Binary files a/icons/mecha/mech_parts.dmi and b/icons/mecha/mech_parts.dmi differ diff --git a/icons/mecha/mech_parts_held.dmi b/icons/mecha/mech_parts_held.dmi index 0276b3fb0a..f8c3c6fe32 100644 Binary files a/icons/mecha/mech_parts_held.dmi and b/icons/mecha/mech_parts_held.dmi differ diff --git a/icons/mecha/mech_weapon_overlays.dmi b/icons/mecha/mech_weapon_overlays.dmi index 5e4f5bde7b..8702cbd889 100644 Binary files a/icons/mecha/mech_weapon_overlays.dmi and b/icons/mecha/mech_weapon_overlays.dmi differ diff --git a/icons/mecha/mecha.dmi b/icons/mecha/mecha.dmi index 25ef7f5151..b9b49cd9e1 100644 Binary files a/icons/mecha/mecha.dmi and b/icons/mecha/mecha.dmi differ diff --git a/icons/mecha/mecha_equipment.dmi b/icons/mecha/mecha_equipment.dmi index 5f1898b857..a6b3049e63 100644 Binary files a/icons/mecha/mecha_equipment.dmi and b/icons/mecha/mecha_equipment.dmi differ diff --git a/icons/mecha/mecha_mouse.dmi b/icons/mecha/mecha_mouse.dmi index 4b46a44684..3ca677b6c1 100644 Binary files a/icons/mecha/mecha_mouse.dmi and b/icons/mecha/mecha_mouse.dmi differ diff --git a/icons/mecha/shield.dmi b/icons/mecha/shield.dmi index c4c41e9180..8ec072e12e 100644 Binary files a/icons/mecha/shield.dmi and b/icons/mecha/shield.dmi differ diff --git a/icons/meteor_turret.dmi b/icons/meteor_turret.dmi index 3f62c56b1b..ba5d6e218f 100644 Binary files a/icons/meteor_turret.dmi and b/icons/meteor_turret.dmi differ diff --git a/icons/minimap.dmi b/icons/minimap.dmi index 26aecb84b9..bfc3691684 100644 Binary files a/icons/minimap.dmi and b/icons/minimap.dmi differ diff --git a/icons/misc/beach.dmi b/icons/misc/beach.dmi index 09bee586d7..8ab9b49ef4 100644 Binary files a/icons/misc/beach.dmi and b/icons/misc/beach.dmi differ diff --git a/icons/misc/beach2.dmi b/icons/misc/beach2.dmi index 0de278efce..57afd00dca 100644 Binary files a/icons/misc/beach2.dmi and b/icons/misc/beach2.dmi differ diff --git a/icons/misc/buildmode.dmi b/icons/misc/buildmode.dmi index 04d236dea8..cf07a9bf7c 100644 Binary files a/icons/misc/buildmode.dmi and b/icons/misc/buildmode.dmi differ diff --git a/icons/misc/debug_connect.dmi b/icons/misc/debug_connect.dmi index 0c96c86daa..33bcd66415 100644 Binary files a/icons/misc/debug_connect.dmi and b/icons/misc/debug_connect.dmi differ diff --git a/icons/misc/debug_group.dmi b/icons/misc/debug_group.dmi index 2da8244b11..b0e75d88d6 100644 Binary files a/icons/misc/debug_group.dmi and b/icons/misc/debug_group.dmi differ diff --git a/icons/misc/debug_rebuild.dmi b/icons/misc/debug_rebuild.dmi index b7cde5aaf0..737d89966e 100644 Binary files a/icons/misc/debug_rebuild.dmi and b/icons/misc/debug_rebuild.dmi differ diff --git a/icons/misc/debug_space.dmi b/icons/misc/debug_space.dmi index 44d01dfe76..493a64baff 100644 Binary files a/icons/misc/debug_space.dmi and b/icons/misc/debug_space.dmi differ diff --git a/icons/misc/holomap_markers.dmi b/icons/misc/holomap_markers.dmi index 3ea32c120d..c2ba7e1ea6 100644 Binary files a/icons/misc/holomap_markers.dmi and b/icons/misc/holomap_markers.dmi differ diff --git a/icons/misc/hudmenu.dmi b/icons/misc/hudmenu.dmi index 2cd821a874..456da6500a 100644 Binary files a/icons/misc/hudmenu.dmi and b/icons/misc/hudmenu.dmi differ diff --git a/icons/misc/imap.dmi b/icons/misc/imap.dmi index 3185c883a5..d2717e792b 100644 Binary files a/icons/misc/imap.dmi and b/icons/misc/imap.dmi differ diff --git a/icons/misc/inpipe.dmi b/icons/misc/inpipe.dmi index 18b19d12ad..a2ca51efd6 100644 Binary files a/icons/misc/inpipe.dmi and b/icons/misc/inpipe.dmi differ diff --git a/icons/misc/mark.dmi b/icons/misc/mark.dmi index bec1920bcc..f583d93c31 100644 Binary files a/icons/misc/mark.dmi and b/icons/misc/mark.dmi differ diff --git a/icons/misc/security_state.dmi b/icons/misc/security_state.dmi index 069681415d..7fcc7baccf 100644 Binary files a/icons/misc/security_state.dmi and b/icons/misc/security_state.dmi differ diff --git a/icons/misc/static.dmi b/icons/misc/static.dmi index 09fc1c20ed..f688687b24 100644 Binary files a/icons/misc/static.dmi and b/icons/misc/static.dmi differ diff --git a/icons/misc/tooltip.dmi b/icons/misc/tooltip.dmi index 97f1968078..81ad84b746 100644 Binary files a/icons/misc/tooltip.dmi and b/icons/misc/tooltip.dmi differ diff --git a/icons/mob/32x64.dmi b/icons/mob/32x64.dmi index 9f2682decf..35808ad584 100644 Binary files a/icons/mob/32x64.dmi and b/icons/mob/32x64.dmi differ diff --git a/icons/mob/48x64.dmi b/icons/mob/48x64.dmi index 956b4df048..f2e8ba00e3 100644 Binary files a/icons/mob/48x64.dmi and b/icons/mob/48x64.dmi differ diff --git a/icons/mob/AI.dmi b/icons/mob/AI.dmi index b0c2752abf..51392c8a13 100644 Binary files a/icons/mob/AI.dmi and b/icons/mob/AI.dmi differ diff --git a/icons/mob/OnFire.dmi b/icons/mob/OnFire.dmi index 8bf6e2c774..1785bb9c76 100644 Binary files a/icons/mob/OnFire.dmi and b/icons/mob/OnFire.dmi differ diff --git a/icons/mob/Shafra.dmi b/icons/mob/Shafra.dmi index 827539ce15..a4d341bdc5 100644 Binary files a/icons/mob/Shafra.dmi and b/icons/mob/Shafra.dmi differ diff --git a/icons/mob/actions.dmi b/icons/mob/actions.dmi index 400db51deb..d017092d93 100644 Binary files a/icons/mob/actions.dmi and b/icons/mob/actions.dmi differ diff --git a/icons/mob/alien.dmi b/icons/mob/alien.dmi index 171abcf1c0..a9d14e3719 100644 Binary files a/icons/mob/alien.dmi and b/icons/mob/alien.dmi differ diff --git a/icons/mob/alienqueen.dmi b/icons/mob/alienqueen.dmi index 1562152023..214570d2aa 100644 Binary files a/icons/mob/alienqueen.dmi and b/icons/mob/alienqueen.dmi differ diff --git a/icons/mob/amorph.dmi b/icons/mob/amorph.dmi index 5425adce88..139b9971f0 100644 Binary files a/icons/mob/amorph.dmi and b/icons/mob/amorph.dmi differ diff --git a/icons/mob/animal.dmi b/icons/mob/animal.dmi index c4fcbf4ad1..98a3c3051e 100644 Binary files a/icons/mob/animal.dmi and b/icons/mob/animal.dmi differ diff --git a/icons/mob/armalis.dmi b/icons/mob/armalis.dmi index dc471f91fe..a05828d4ce 100644 Binary files a/icons/mob/armalis.dmi and b/icons/mob/armalis.dmi differ diff --git a/icons/mob/bandage.dmi b/icons/mob/bandage.dmi index bab279f6c1..4bf62fd644 100644 Binary files a/icons/mob/bandage.dmi and b/icons/mob/bandage.dmi differ diff --git a/icons/mob/bats.dmi b/icons/mob/bats.dmi index 7446693507..b78e8792bc 100644 Binary files a/icons/mob/bats.dmi and b/icons/mob/bats.dmi differ diff --git a/icons/mob/biocraps.dmi b/icons/mob/biocraps.dmi index 1bcbec018f..7b4c7a78c3 100644 Binary files a/icons/mob/biocraps.dmi and b/icons/mob/biocraps.dmi differ diff --git a/icons/mob/blob.dmi b/icons/mob/blob.dmi index f89d667fb0..a0e7ecfc4d 100644 Binary files a/icons/mob/blob.dmi and b/icons/mob/blob.dmi differ diff --git a/icons/mob/borer_ui.dmi b/icons/mob/borer_ui.dmi index 8c0fad3722..9eb0b31f84 100644 Binary files a/icons/mob/borer_ui.dmi and b/icons/mob/borer_ui.dmi differ diff --git a/icons/mob/bot/ED209.dmi b/icons/mob/bot/ED209.dmi index 7b529bac79..5e7c9481e8 100644 Binary files a/icons/mob/bot/ED209.dmi and b/icons/mob/bot/ED209.dmi differ diff --git a/icons/mob/bot/cleanbot.dmi b/icons/mob/bot/cleanbot.dmi index 3ff00990f0..cba102f012 100644 Binary files a/icons/mob/bot/cleanbot.dmi and b/icons/mob/bot/cleanbot.dmi differ diff --git a/icons/mob/bot/farmbot.dmi b/icons/mob/bot/farmbot.dmi index 22b419db3e..847dbc4082 100644 Binary files a/icons/mob/bot/farmbot.dmi and b/icons/mob/bot/farmbot.dmi differ diff --git a/icons/mob/bot/fetchbot.dmi b/icons/mob/bot/fetchbot.dmi index 86ea0242f2..3cb6d828d2 100644 Binary files a/icons/mob/bot/fetchbot.dmi and b/icons/mob/bot/fetchbot.dmi differ diff --git a/icons/mob/bot/floorbot.dmi b/icons/mob/bot/floorbot.dmi index 447b1e50a5..a0d7a624dc 100644 Binary files a/icons/mob/bot/floorbot.dmi and b/icons/mob/bot/floorbot.dmi differ diff --git a/icons/mob/bot/honkbuddy.dmi b/icons/mob/bot/honkbuddy.dmi index 889d4dceee..1d7c5f3fcd 100644 Binary files a/icons/mob/bot/honkbuddy.dmi and b/icons/mob/bot/honkbuddy.dmi differ diff --git a/icons/mob/bot/medibot.dmi b/icons/mob/bot/medibot.dmi index 36e24b7370..8726ce8d0f 100644 Binary files a/icons/mob/bot/medibot.dmi and b/icons/mob/bot/medibot.dmi differ diff --git a/icons/mob/bot/medibot_skins.dmi b/icons/mob/bot/medibot_skins.dmi index 009fbde0da..45fe649995 100644 Binary files a/icons/mob/bot/medibot_skins.dmi and b/icons/mob/bot/medibot_skins.dmi differ diff --git a/icons/mob/bot/mulebot.dmi b/icons/mob/bot/mulebot.dmi index 2a2848fd54..066889083b 100644 Binary files a/icons/mob/bot/mulebot.dmi and b/icons/mob/bot/mulebot.dmi differ diff --git a/icons/mob/bot/placeholder.dmi b/icons/mob/bot/placeholder.dmi index 92e9cb7631..79053ef251 100644 Binary files a/icons/mob/bot/placeholder.dmi and b/icons/mob/bot/placeholder.dmi differ diff --git a/icons/mob/bot/secbot.dmi b/icons/mob/bot/secbot.dmi index 5b9327f440..ec873d2beb 100644 Binary files a/icons/mob/bot/secbot.dmi and b/icons/mob/bot/secbot.dmi differ diff --git a/icons/mob/collar.dmi b/icons/mob/collar.dmi index b2f95e6329..38ce3c67c3 100644 Binary files a/icons/mob/collar.dmi and b/icons/mob/collar.dmi differ diff --git a/icons/mob/corgi_back.dmi b/icons/mob/corgi_back.dmi index 81626df033..745a6406ac 100644 Binary files a/icons/mob/corgi_back.dmi and b/icons/mob/corgi_back.dmi differ diff --git a/icons/mob/corgi_head.dmi b/icons/mob/corgi_head.dmi index 105bdf4750..7be0649ea1 100644 Binary files a/icons/mob/corgi_head.dmi and b/icons/mob/corgi_head.dmi differ diff --git a/icons/mob/critter.dmi b/icons/mob/critter.dmi index 043b388e90..9ba072fcbf 100644 Binary files a/icons/mob/critter.dmi and b/icons/mob/critter.dmi differ diff --git a/icons/mob/crow.dmi b/icons/mob/crow.dmi index 8cefef2a26..facb62a542 100644 Binary files a/icons/mob/crow.dmi and b/icons/mob/crow.dmi differ diff --git a/icons/mob/custom_items_mob.dmi b/icons/mob/custom_items_mob.dmi deleted file mode 100644 index e69de29bb2..0000000000 diff --git a/icons/mob/custom_synthetic.dmi b/icons/mob/custom_synthetic.dmi deleted file mode 100644 index e69de29bb2..0000000000 diff --git a/icons/mob/deity_big.dmi b/icons/mob/deity_big.dmi index 0a188a9c6a..12a9f20d44 100644 Binary files a/icons/mob/deity_big.dmi and b/icons/mob/deity_big.dmi differ diff --git a/icons/mob/eye.dmi b/icons/mob/eye.dmi index 64ca1b100e..fdf4534d9e 100644 Binary files a/icons/mob/eye.dmi and b/icons/mob/eye.dmi differ diff --git a/icons/mob/gestalt.dmi b/icons/mob/gestalt.dmi index 0a2d3ed70b..2ef38060c6 100644 Binary files a/icons/mob/gestalt.dmi and b/icons/mob/gestalt.dmi differ diff --git a/icons/mob/gimmick_head.dmi b/icons/mob/gimmick_head.dmi index 8fe24175c2..738fa8afed 100644 Binary files a/icons/mob/gimmick_head.dmi and b/icons/mob/gimmick_head.dmi differ diff --git a/icons/mob/hide.dmi b/icons/mob/hide.dmi index 7d8e0cb88e..8f99226063 100644 Binary files a/icons/mob/hide.dmi and b/icons/mob/hide.dmi differ diff --git a/icons/mob/hivebot.dmi b/icons/mob/hivebot.dmi index e18209733d..dab14a0529 100644 Binary files a/icons/mob/hivebot.dmi and b/icons/mob/hivebot.dmi differ diff --git a/icons/mob/holder_complex.dmi b/icons/mob/holder_complex.dmi index 0c0235da02..58e9c18c87 100644 Binary files a/icons/mob/holder_complex.dmi and b/icons/mob/holder_complex.dmi differ diff --git a/icons/mob/hologram.dmi b/icons/mob/hologram.dmi index 6ccf6b27da..936dcc714d 100644 Binary files a/icons/mob/hologram.dmi and b/icons/mob/hologram.dmi differ diff --git a/icons/mob/hud.dmi b/icons/mob/hud.dmi index 6fbe6d727d..3f47be59c0 100644 Binary files a/icons/mob/hud.dmi and b/icons/mob/hud.dmi differ diff --git a/icons/mob/hud_blink.dmi b/icons/mob/hud_blink.dmi index cdc2093788..e6aebdced1 100644 Binary files a/icons/mob/hud_blink.dmi and b/icons/mob/hud_blink.dmi differ diff --git a/icons/mob/hud_med.dmi b/icons/mob/hud_med.dmi index 705886a549..35ad297f8b 100644 Binary files a/icons/mob/hud_med.dmi and b/icons/mob/hud_med.dmi differ diff --git a/icons/mob/human.dmi b/icons/mob/human.dmi index 39e8fa20fd..1ed61a7f84 100644 Binary files a/icons/mob/human.dmi and b/icons/mob/human.dmi differ diff --git a/icons/mob/human_face.dmi b/icons/mob/human_face.dmi index 0580b7a38d..032ff990d8 100644 Binary files a/icons/mob/human_face.dmi and b/icons/mob/human_face.dmi differ diff --git a/icons/mob/human_races/cyberlimbs/bishop/bishop_alt.dmi b/icons/mob/human_races/cyberlimbs/bishop/bishop_alt.dmi index e403436daf..56e49c6be9 100644 Binary files a/icons/mob/human_races/cyberlimbs/bishop/bishop_alt.dmi and b/icons/mob/human_races/cyberlimbs/bishop/bishop_alt.dmi differ diff --git a/icons/mob/human_races/cyberlimbs/bishop/bishop_main.dmi b/icons/mob/human_races/cyberlimbs/bishop/bishop_main.dmi index 2e221c242f..35f6ad282f 100644 Binary files a/icons/mob/human_races/cyberlimbs/bishop/bishop_main.dmi and b/icons/mob/human_races/cyberlimbs/bishop/bishop_main.dmi differ diff --git a/icons/mob/human_races/cyberlimbs/bishop/bishop_monitor.dmi b/icons/mob/human_races/cyberlimbs/bishop/bishop_monitor.dmi index edd2236cfb..b9878ee61b 100644 Binary files a/icons/mob/human_races/cyberlimbs/bishop/bishop_monitor.dmi and b/icons/mob/human_races/cyberlimbs/bishop/bishop_monitor.dmi differ diff --git a/icons/mob/human_races/cyberlimbs/bishop/bishop_rook.dmi b/icons/mob/human_races/cyberlimbs/bishop/bishop_rook.dmi index f3994befa7..b8733b0999 100644 Binary files a/icons/mob/human_races/cyberlimbs/bishop/bishop_rook.dmi and b/icons/mob/human_races/cyberlimbs/bishop/bishop_rook.dmi differ diff --git a/icons/mob/human_races/cyberlimbs/hephaestus/hephaestus_alt.dmi b/icons/mob/human_races/cyberlimbs/hephaestus/hephaestus_alt.dmi index 3b6daa48bc..bf96c2e0b7 100644 Binary files a/icons/mob/human_races/cyberlimbs/hephaestus/hephaestus_alt.dmi and b/icons/mob/human_races/cyberlimbs/hephaestus/hephaestus_alt.dmi differ diff --git a/icons/mob/human_races/cyberlimbs/hephaestus/hephaestus_main.dmi b/icons/mob/human_races/cyberlimbs/hephaestus/hephaestus_main.dmi index 482ee1650c..a144cb0dad 100644 Binary files a/icons/mob/human_races/cyberlimbs/hephaestus/hephaestus_main.dmi and b/icons/mob/human_races/cyberlimbs/hephaestus/hephaestus_main.dmi differ diff --git a/icons/mob/human_races/cyberlimbs/hephaestus/hephaestus_monitor.dmi b/icons/mob/human_races/cyberlimbs/hephaestus/hephaestus_monitor.dmi index 5f3d72f3fc..8e5d81a8bf 100644 Binary files a/icons/mob/human_races/cyberlimbs/hephaestus/hephaestus_monitor.dmi and b/icons/mob/human_races/cyberlimbs/hephaestus/hephaestus_monitor.dmi differ diff --git a/icons/mob/human_races/cyberlimbs/hephaestus/hephaestus_titan.dmi b/icons/mob/human_races/cyberlimbs/hephaestus/hephaestus_titan.dmi index f41a74127b..bf2ce48ca2 100644 Binary files a/icons/mob/human_races/cyberlimbs/hephaestus/hephaestus_titan.dmi and b/icons/mob/human_races/cyberlimbs/hephaestus/hephaestus_titan.dmi differ diff --git a/icons/mob/human_races/cyberlimbs/morpheus/morpheus_airborne.dmi b/icons/mob/human_races/cyberlimbs/morpheus/morpheus_airborne.dmi index 2b3fd738f1..21f4ddab57 100644 Binary files a/icons/mob/human_races/cyberlimbs/morpheus/morpheus_airborne.dmi and b/icons/mob/human_races/cyberlimbs/morpheus/morpheus_airborne.dmi differ diff --git a/icons/mob/human_races/cyberlimbs/morpheus/morpheus_alt.dmi b/icons/mob/human_races/cyberlimbs/morpheus/morpheus_alt.dmi index 7a0211e603..6786fe39b8 100644 Binary files a/icons/mob/human_races/cyberlimbs/morpheus/morpheus_alt.dmi and b/icons/mob/human_races/cyberlimbs/morpheus/morpheus_alt.dmi differ diff --git a/icons/mob/human_races/cyberlimbs/morpheus/morpheus_atlantis.dmi b/icons/mob/human_races/cyberlimbs/morpheus/morpheus_atlantis.dmi index 26f2ccb4e7..6223e7dd67 100644 Binary files a/icons/mob/human_races/cyberlimbs/morpheus/morpheus_atlantis.dmi and b/icons/mob/human_races/cyberlimbs/morpheus/morpheus_atlantis.dmi differ diff --git a/icons/mob/human_races/cyberlimbs/morpheus/morpheus_blitz.dmi b/icons/mob/human_races/cyberlimbs/morpheus/morpheus_blitz.dmi index 9bc6ada7f6..96e410a898 100644 Binary files a/icons/mob/human_races/cyberlimbs/morpheus/morpheus_blitz.dmi and b/icons/mob/human_races/cyberlimbs/morpheus/morpheus_blitz.dmi differ diff --git a/icons/mob/human_races/cyberlimbs/morpheus/morpheus_main.dmi b/icons/mob/human_races/cyberlimbs/morpheus/morpheus_main.dmi index ab34e1b840..5af2e2610e 100644 Binary files a/icons/mob/human_races/cyberlimbs/morpheus/morpheus_main.dmi and b/icons/mob/human_races/cyberlimbs/morpheus/morpheus_main.dmi differ diff --git a/icons/mob/human_races/cyberlimbs/morpheus/morpheus_mantis.dmi b/icons/mob/human_races/cyberlimbs/morpheus/morpheus_mantis.dmi index c013926769..982705a032 100644 Binary files a/icons/mob/human_races/cyberlimbs/morpheus/morpheus_mantis.dmi and b/icons/mob/human_races/cyberlimbs/morpheus/morpheus_mantis.dmi differ diff --git a/icons/mob/human_races/cyberlimbs/morpheus/morpheus_monitor.dmi b/icons/mob/human_races/cyberlimbs/morpheus/morpheus_monitor.dmi index e913224ca1..2068b6fcfe 100644 Binary files a/icons/mob/human_races/cyberlimbs/morpheus/morpheus_monitor.dmi and b/icons/mob/human_races/cyberlimbs/morpheus/morpheus_monitor.dmi differ diff --git a/icons/mob/human_races/cyberlimbs/morpheus/morpheus_prime.dmi b/icons/mob/human_races/cyberlimbs/morpheus/morpheus_prime.dmi index 8c46c6213e..36951724ec 100644 Binary files a/icons/mob/human_races/cyberlimbs/morpheus/morpheus_prime.dmi and b/icons/mob/human_races/cyberlimbs/morpheus/morpheus_prime.dmi differ diff --git a/icons/mob/human_races/cyberlimbs/nanotrasen/nanotrasen_main.dmi b/icons/mob/human_races/cyberlimbs/nanotrasen/nanotrasen_main.dmi index 47fdc187a3..f526666218 100644 Binary files a/icons/mob/human_races/cyberlimbs/nanotrasen/nanotrasen_main.dmi and b/icons/mob/human_races/cyberlimbs/nanotrasen/nanotrasen_main.dmi differ diff --git a/icons/mob/human_races/cyberlimbs/robotic.dmi b/icons/mob/human_races/cyberlimbs/robotic.dmi index 1ddfb09ca3..4eb42d5833 100644 Binary files a/icons/mob/human_races/cyberlimbs/robotic.dmi and b/icons/mob/human_races/cyberlimbs/robotic.dmi differ diff --git a/icons/mob/human_races/cyberlimbs/shellguard/shellguard_alt.dmi b/icons/mob/human_races/cyberlimbs/shellguard/shellguard_alt.dmi index f17b0f9f40..30b7a910bb 100644 Binary files a/icons/mob/human_races/cyberlimbs/shellguard/shellguard_alt.dmi and b/icons/mob/human_races/cyberlimbs/shellguard/shellguard_alt.dmi differ diff --git a/icons/mob/human_races/cyberlimbs/shellguard/shellguard_main.dmi b/icons/mob/human_races/cyberlimbs/shellguard/shellguard_main.dmi index f27b5246b4..806d5ec78e 100644 Binary files a/icons/mob/human_races/cyberlimbs/shellguard/shellguard_main.dmi and b/icons/mob/human_races/cyberlimbs/shellguard/shellguard_main.dmi differ diff --git a/icons/mob/human_races/cyberlimbs/shellguard/shellguard_monitor.dmi b/icons/mob/human_races/cyberlimbs/shellguard/shellguard_monitor.dmi index 8de798c2a8..7d7531ee90 100644 Binary files a/icons/mob/human_races/cyberlimbs/shellguard/shellguard_monitor.dmi and b/icons/mob/human_races/cyberlimbs/shellguard/shellguard_monitor.dmi differ diff --git a/icons/mob/human_races/cyberlimbs/veymed/veymed_main.dmi b/icons/mob/human_races/cyberlimbs/veymed/veymed_main.dmi index 07446b598a..4981e365b9 100644 Binary files a/icons/mob/human_races/cyberlimbs/veymed/veymed_main.dmi and b/icons/mob/human_races/cyberlimbs/veymed/veymed_main.dmi differ diff --git a/icons/mob/human_races/cyberlimbs/vox/improvised.dmi b/icons/mob/human_races/cyberlimbs/vox/improvised.dmi index 4f99efe28e..f8c658f911 100644 Binary files a/icons/mob/human_races/cyberlimbs/vox/improvised.dmi and b/icons/mob/human_races/cyberlimbs/vox/improvised.dmi differ diff --git a/icons/mob/human_races/cyberlimbs/vox/primalis.dmi b/icons/mob/human_races/cyberlimbs/vox/primalis.dmi index a093e6982d..ac197d8018 100644 Binary files a/icons/mob/human_races/cyberlimbs/vox/primalis.dmi and b/icons/mob/human_races/cyberlimbs/vox/primalis.dmi differ diff --git a/icons/mob/human_races/cyberlimbs/wardtakahashi/wardtakahashi_alt.dmi b/icons/mob/human_races/cyberlimbs/wardtakahashi/wardtakahashi_alt.dmi index 10ea9c9514..bc2b8b90b3 100644 Binary files a/icons/mob/human_races/cyberlimbs/wardtakahashi/wardtakahashi_alt.dmi and b/icons/mob/human_races/cyberlimbs/wardtakahashi/wardtakahashi_alt.dmi differ diff --git a/icons/mob/human_races/cyberlimbs/wardtakahashi/wardtakahashi_economy.dmi b/icons/mob/human_races/cyberlimbs/wardtakahashi/wardtakahashi_economy.dmi index a077b5239d..de1ed873ed 100644 Binary files a/icons/mob/human_races/cyberlimbs/wardtakahashi/wardtakahashi_economy.dmi and b/icons/mob/human_races/cyberlimbs/wardtakahashi/wardtakahashi_economy.dmi differ diff --git a/icons/mob/human_races/cyberlimbs/wardtakahashi/wardtakahashi_main.dmi b/icons/mob/human_races/cyberlimbs/wardtakahashi/wardtakahashi_main.dmi index eda9969ad7..717b34bcef 100644 Binary files a/icons/mob/human_races/cyberlimbs/wardtakahashi/wardtakahashi_main.dmi and b/icons/mob/human_races/cyberlimbs/wardtakahashi/wardtakahashi_main.dmi differ diff --git a/icons/mob/human_races/cyberlimbs/wardtakahashi/wardtakahashi_monitor.dmi b/icons/mob/human_races/cyberlimbs/wardtakahashi/wardtakahashi_monitor.dmi index 2777d06ff8..5bb75d491f 100644 Binary files a/icons/mob/human_races/cyberlimbs/wardtakahashi/wardtakahashi_monitor.dmi and b/icons/mob/human_races/cyberlimbs/wardtakahashi/wardtakahashi_monitor.dmi differ diff --git a/icons/mob/human_races/cyberlimbs/xion/xion_alt.dmi b/icons/mob/human_races/cyberlimbs/xion/xion_alt.dmi index 84a7fec2a9..f460b0faf2 100644 Binary files a/icons/mob/human_races/cyberlimbs/xion/xion_alt.dmi and b/icons/mob/human_races/cyberlimbs/xion/xion_alt.dmi differ diff --git a/icons/mob/human_races/cyberlimbs/xion/xion_econo.dmi b/icons/mob/human_races/cyberlimbs/xion/xion_econo.dmi index f6d11e4ff3..20f98fad80 100644 Binary files a/icons/mob/human_races/cyberlimbs/xion/xion_econo.dmi and b/icons/mob/human_races/cyberlimbs/xion/xion_econo.dmi differ diff --git a/icons/mob/human_races/cyberlimbs/xion/xion_main.dmi b/icons/mob/human_races/cyberlimbs/xion/xion_main.dmi index 0020beacdf..74b187c9f7 100644 Binary files a/icons/mob/human_races/cyberlimbs/xion/xion_main.dmi and b/icons/mob/human_races/cyberlimbs/xion/xion_main.dmi differ diff --git a/icons/mob/human_races/cyberlimbs/xion/xion_monitor.dmi b/icons/mob/human_races/cyberlimbs/xion/xion_monitor.dmi index 0a049fc759..d7e7850a2b 100644 Binary files a/icons/mob/human_races/cyberlimbs/xion/xion_monitor.dmi and b/icons/mob/human_races/cyberlimbs/xion/xion_monitor.dmi differ diff --git a/icons/mob/human_races/cyberlimbs/zenghu/zenghu_main.dmi b/icons/mob/human_races/cyberlimbs/zenghu/zenghu_main.dmi index 6c4088fc88..a63ce13936 100644 Binary files a/icons/mob/human_races/cyberlimbs/zenghu/zenghu_main.dmi and b/icons/mob/human_races/cyberlimbs/zenghu/zenghu_main.dmi differ diff --git a/icons/mob/human_races/cyberlimbs/zenghu/zenghu_spirit.dmi b/icons/mob/human_races/cyberlimbs/zenghu/zenghu_spirit.dmi index fad00d34db..d08dce7967 100644 Binary files a/icons/mob/human_races/cyberlimbs/zenghu/zenghu_spirit.dmi and b/icons/mob/human_races/cyberlimbs/zenghu/zenghu_spirit.dmi differ diff --git a/icons/mob/human_races/markings.dmi b/icons/mob/human_races/markings.dmi index d319604aef..b6e21bf807 100644 Binary files a/icons/mob/human_races/markings.dmi and b/icons/mob/human_races/markings.dmi differ diff --git a/icons/mob/human_races/masks/blood_human.dmi b/icons/mob/human_races/masks/blood_human.dmi index dc54991c84..169a34e143 100644 Binary files a/icons/mob/human_races/masks/blood_human.dmi and b/icons/mob/human_races/masks/blood_human.dmi differ diff --git a/icons/mob/human_races/masks/blood_monkey.dmi b/icons/mob/human_races/masks/blood_monkey.dmi index 5d5dd66d75..22e20de474 100644 Binary files a/icons/mob/human_races/masks/blood_monkey.dmi and b/icons/mob/human_races/masks/blood_monkey.dmi differ diff --git a/icons/mob/human_races/masks/blood_nabber.dmi b/icons/mob/human_races/masks/blood_nabber.dmi index 7f4ff338df..0d437b8fe5 100644 Binary files a/icons/mob/human_races/masks/blood_nabber.dmi and b/icons/mob/human_races/masks/blood_nabber.dmi differ diff --git a/icons/mob/human_races/masks/dam_human.dmi b/icons/mob/human_races/masks/dam_human.dmi index cb6bf82d98..3836e66afd 100644 Binary files a/icons/mob/human_races/masks/dam_human.dmi and b/icons/mob/human_races/masks/dam_human.dmi differ diff --git a/icons/mob/human_races/masks/dam_mask_human.dmi b/icons/mob/human_races/masks/dam_mask_human.dmi index db55b5a6b5..883b6f1ff0 100644 Binary files a/icons/mob/human_races/masks/dam_mask_human.dmi and b/icons/mob/human_races/masks/dam_mask_human.dmi differ diff --git a/icons/mob/human_races/masks/dam_mask_monkey.dmi b/icons/mob/human_races/masks/dam_mask_monkey.dmi index 4761f21fbd..d34e27cbf4 100644 Binary files a/icons/mob/human_races/masks/dam_mask_monkey.dmi and b/icons/mob/human_races/masks/dam_mask_monkey.dmi differ diff --git a/icons/mob/human_races/masks/dam_monkey.dmi b/icons/mob/human_races/masks/dam_monkey.dmi index 43d1f2c7a7..9aa6246956 100644 Binary files a/icons/mob/human_races/masks/dam_monkey.dmi and b/icons/mob/human_races/masks/dam_monkey.dmi differ diff --git a/icons/mob/human_races/masks/dam_template.dmi b/icons/mob/human_races/masks/dam_template.dmi index 31986efb86..8ea3897d09 100644 Binary files a/icons/mob/human_races/masks/dam_template.dmi and b/icons/mob/human_races/masks/dam_template.dmi differ diff --git a/icons/mob/human_races/monkeys/r_farwa.dmi b/icons/mob/human_races/monkeys/r_farwa.dmi index 585fa3bcf3..a086ba3fa9 100644 Binary files a/icons/mob/human_races/monkeys/r_farwa.dmi and b/icons/mob/human_races/monkeys/r_farwa.dmi differ diff --git a/icons/mob/human_races/monkeys/r_monkey.dmi b/icons/mob/human_races/monkeys/r_monkey.dmi index ed6121587f..3a523a98b9 100644 Binary files a/icons/mob/human_races/monkeys/r_monkey.dmi and b/icons/mob/human_races/monkeys/r_monkey.dmi differ diff --git a/icons/mob/human_races/monkeys/r_neaera.dmi b/icons/mob/human_races/monkeys/r_neaera.dmi index 69183f0d4b..b1dbc89a12 100644 Binary files a/icons/mob/human_races/monkeys/r_neaera.dmi and b/icons/mob/human_races/monkeys/r_neaera.dmi differ diff --git a/icons/mob/human_races/monkeys/r_stok.dmi b/icons/mob/human_races/monkeys/r_stok.dmi index 28af62205c..28a2b24daf 100644 Binary files a/icons/mob/human_races/monkeys/r_stok.dmi and b/icons/mob/human_races/monkeys/r_stok.dmi differ diff --git a/icons/mob/human_races/r_armalis.dmi b/icons/mob/human_races/r_armalis.dmi index b7609d9427..200a885a1c 100644 Binary files a/icons/mob/human_races/r_armalis.dmi and b/icons/mob/human_races/r_armalis.dmi differ diff --git a/icons/mob/human_races/r_bogani.dmi b/icons/mob/human_races/r_bogani.dmi index 42e5db8832..f161a38ebd 100644 Binary files a/icons/mob/human_races/r_bogani.dmi and b/icons/mob/human_races/r_bogani.dmi differ diff --git a/icons/mob/human_races/r_bogani_small.dmi b/icons/mob/human_races/r_bogani_small.dmi index bd7144236b..3f96c8dc3f 100644 Binary files a/icons/mob/human_races/r_bogani_small.dmi and b/icons/mob/human_races/r_bogani_small.dmi differ diff --git a/icons/mob/human_races/r_def_human.dmi b/icons/mob/human_races/r_def_human.dmi index e622ef14b5..d75fc783c2 100644 Binary files a/icons/mob/human_races/r_def_human.dmi and b/icons/mob/human_races/r_def_human.dmi differ diff --git a/icons/mob/human_races/r_def_lizard.dmi b/icons/mob/human_races/r_def_lizard.dmi index 6c1f4d94fc..7e8599e699 100644 Binary files a/icons/mob/human_races/r_def_lizard.dmi and b/icons/mob/human_races/r_def_lizard.dmi differ diff --git a/icons/mob/human_races/r_def_plant.dmi b/icons/mob/human_races/r_def_plant.dmi index 1fe04e70ff..dcf5d477de 100644 Binary files a/icons/mob/human_races/r_def_plant.dmi and b/icons/mob/human_races/r_def_plant.dmi differ diff --git a/icons/mob/human_races/r_def_skrell.dmi b/icons/mob/human_races/r_def_skrell.dmi index 1dd654054b..ab6c70f866 100644 Binary files a/icons/mob/human_races/r_def_skrell.dmi and b/icons/mob/human_races/r_def_skrell.dmi differ diff --git a/icons/mob/human_races/r_def_tajaran.dmi b/icons/mob/human_races/r_def_tajaran.dmi index 44cda2ea86..49387ce7bf 100644 Binary files a/icons/mob/human_races/r_def_tajaran.dmi and b/icons/mob/human_races/r_def_tajaran.dmi differ diff --git a/icons/mob/human_races/r_def_vox.dmi b/icons/mob/human_races/r_def_vox.dmi index 037056eef5..366fb43710 100644 Binary files a/icons/mob/human_races/r_def_vox.dmi and b/icons/mob/human_races/r_def_vox.dmi differ diff --git a/icons/mob/human_races/r_diona.dmi b/icons/mob/human_races/r_diona.dmi index 91757faf7c..faad1623ea 100644 Binary files a/icons/mob/human_races/r_diona.dmi and b/icons/mob/human_races/r_diona.dmi differ diff --git a/icons/mob/human_races/r_golem.dmi b/icons/mob/human_races/r_golem.dmi index f9cfb8e157..241f086c68 100644 Binary files a/icons/mob/human_races/r_golem.dmi and b/icons/mob/human_races/r_golem.dmi differ diff --git a/icons/mob/human_races/r_human.dmi b/icons/mob/human_races/r_human.dmi index 9c8b428155..91d4c31ab3 100644 Binary files a/icons/mob/human_races/r_human.dmi and b/icons/mob/human_races/r_human.dmi differ diff --git a/icons/mob/human_races/r_lizard.dmi b/icons/mob/human_races/r_lizard.dmi index bd0725904d..43f5c8eb03 100644 Binary files a/icons/mob/human_races/r_lizard.dmi and b/icons/mob/human_races/r_lizard.dmi differ diff --git a/icons/mob/human_races/r_machine.dmi b/icons/mob/human_races/r_machine.dmi index 65f66c3238..cd55aebac1 100644 Binary files a/icons/mob/human_races/r_machine.dmi and b/icons/mob/human_races/r_machine.dmi differ diff --git a/icons/mob/human_races/r_nabber.dmi b/icons/mob/human_races/r_nabber.dmi index ca2110fbb7..c74e386f3a 100644 Binary files a/icons/mob/human_races/r_nabber.dmi and b/icons/mob/human_races/r_nabber.dmi differ diff --git a/icons/mob/human_races/r_nabber_threat.dmi b/icons/mob/human_races/r_nabber_threat.dmi index bf405c3524..4f2b6c19a1 100644 Binary files a/icons/mob/human_races/r_nabber_threat.dmi and b/icons/mob/human_races/r_nabber_threat.dmi differ diff --git a/icons/mob/human_races/r_shadow.dmi b/icons/mob/human_races/r_shadow.dmi index 70450af690..336b9e8ec4 100644 Binary files a/icons/mob/human_races/r_shadow.dmi and b/icons/mob/human_races/r_shadow.dmi differ diff --git a/icons/mob/human_races/r_skeleton.dmi b/icons/mob/human_races/r_skeleton.dmi index 4bf2e4bcc3..4d0282373e 100644 Binary files a/icons/mob/human_races/r_skeleton.dmi and b/icons/mob/human_races/r_skeleton.dmi differ diff --git a/icons/mob/human_races/r_skrell.dmi b/icons/mob/human_races/r_skrell.dmi index 131fe57507..dccaed1740 100644 Binary files a/icons/mob/human_races/r_skrell.dmi and b/icons/mob/human_races/r_skrell.dmi differ diff --git a/icons/mob/human_races/r_slime.dmi b/icons/mob/human_races/r_slime.dmi index 287779d3c7..4ff7e8c1ca 100644 Binary files a/icons/mob/human_races/r_slime.dmi and b/icons/mob/human_races/r_slime.dmi differ diff --git a/icons/mob/human_races/r_tajaran.dmi b/icons/mob/human_races/r_tajaran.dmi index c06160c9c7..5034f08bde 100644 Binary files a/icons/mob/human_races/r_tajaran.dmi and b/icons/mob/human_races/r_tajaran.dmi differ diff --git a/icons/mob/human_races/r_template.dmi b/icons/mob/human_races/r_template.dmi index 1545497146..60644aa2ca 100644 Binary files a/icons/mob/human_races/r_template.dmi and b/icons/mob/human_races/r_template.dmi differ diff --git a/icons/mob/human_races/r_template_tall.dmi b/icons/mob/human_races/r_template_tall.dmi index e9862bab5a..df40ce5312 100644 Binary files a/icons/mob/human_races/r_template_tall.dmi and b/icons/mob/human_races/r_template_tall.dmi differ diff --git a/icons/mob/human_races/r_vox.dmi b/icons/mob/human_races/r_vox.dmi index ce5a869100..6d9b3849a5 100644 Binary files a/icons/mob/human_races/r_vox.dmi and b/icons/mob/human_races/r_vox.dmi differ diff --git a/icons/mob/human_races/robotic.dmi b/icons/mob/human_races/robotic.dmi index e98d2e3512..18731d7169 100644 Binary files a/icons/mob/human_races/robotic.dmi and b/icons/mob/human_races/robotic.dmi differ diff --git a/icons/mob/human_races/species/adherent/blood_mask.dmi b/icons/mob/human_races/species/adherent/blood_mask.dmi index 31fb414a87..f6a6829d42 100644 Binary files a/icons/mob/human_races/species/adherent/blood_mask.dmi and b/icons/mob/human_races/species/adherent/blood_mask.dmi differ diff --git a/icons/mob/human_races/species/adherent/body.dmi b/icons/mob/human_races/species/adherent/body.dmi index 9367cc1595..9bf2b300b1 100644 Binary files a/icons/mob/human_races/species/adherent/body.dmi and b/icons/mob/human_races/species/adherent/body.dmi differ diff --git a/icons/mob/human_races/species/adherent/damage_mask.dmi b/icons/mob/human_races/species/adherent/damage_mask.dmi index f42eb2760e..ee8c3a8aab 100644 Binary files a/icons/mob/human_races/species/adherent/damage_mask.dmi and b/icons/mob/human_races/species/adherent/damage_mask.dmi differ diff --git a/icons/mob/human_races/species/adherent/damage_overlay.dmi b/icons/mob/human_races/species/adherent/damage_overlay.dmi index 69854751e9..c2e29d876a 100644 Binary files a/icons/mob/human_races/species/adherent/damage_overlay.dmi and b/icons/mob/human_races/species/adherent/damage_overlay.dmi differ diff --git a/icons/mob/human_races/species/adherent/eyes.dmi b/icons/mob/human_races/species/adherent/eyes.dmi index e025a36065..8775d3080e 100644 Binary files a/icons/mob/human_races/species/adherent/eyes.dmi and b/icons/mob/human_races/species/adherent/eyes.dmi differ diff --git a/icons/mob/human_races/species/adherent/organs.dmi b/icons/mob/human_races/species/adherent/organs.dmi index 570b4ca7f9..737c19028e 100644 Binary files a/icons/mob/human_races/species/adherent/organs.dmi and b/icons/mob/human_races/species/adherent/organs.dmi differ diff --git a/icons/mob/human_races/species/adherent/preview.dmi b/icons/mob/human_races/species/adherent/preview.dmi index 8d2963d6df..98349df067 100644 Binary files a/icons/mob/human_races/species/adherent/preview.dmi and b/icons/mob/human_races/species/adherent/preview.dmi differ diff --git a/icons/mob/human_races/species/adherent/template.dmi b/icons/mob/human_races/species/adherent/template.dmi index 31fb414a87..f6a6829d42 100644 Binary files a/icons/mob/human_races/species/adherent/template.dmi and b/icons/mob/human_races/species/adherent/template.dmi differ diff --git a/icons/mob/human_races/species/ascent/alate/blood_mask.dmi b/icons/mob/human_races/species/ascent/alate/blood_mask.dmi index 07ec7c16b1..70fd17e013 100644 Binary files a/icons/mob/human_races/species/ascent/alate/blood_mask.dmi and b/icons/mob/human_races/species/ascent/alate/blood_mask.dmi differ diff --git a/icons/mob/human_races/species/ascent/alate/body.dmi b/icons/mob/human_races/species/ascent/alate/body.dmi index 5bf7b2f708..b234ec082b 100644 Binary files a/icons/mob/human_races/species/ascent/alate/body.dmi and b/icons/mob/human_races/species/ascent/alate/body.dmi differ diff --git a/icons/mob/human_races/species/ascent/alate/damage_mask.dmi b/icons/mob/human_races/species/ascent/alate/damage_mask.dmi index 83ce10fad8..48c1eec6e2 100644 Binary files a/icons/mob/human_races/species/ascent/alate/damage_mask.dmi and b/icons/mob/human_races/species/ascent/alate/damage_mask.dmi differ diff --git a/icons/mob/human_races/species/ascent/alate/eyes.dmi b/icons/mob/human_races/species/ascent/alate/eyes.dmi index 4918b390eb..e5083c56b0 100644 Binary files a/icons/mob/human_races/species/ascent/alate/eyes.dmi and b/icons/mob/human_races/species/ascent/alate/eyes.dmi differ diff --git a/icons/mob/human_races/species/ascent/alate/husk.dmi b/icons/mob/human_races/species/ascent/alate/husk.dmi index 4f5867e07e..4dc158a338 100644 Binary files a/icons/mob/human_races/species/ascent/alate/husk.dmi and b/icons/mob/human_races/species/ascent/alate/husk.dmi differ diff --git a/icons/mob/human_races/species/ascent/alate/preview.dmi b/icons/mob/human_races/species/ascent/alate/preview.dmi index 7e8de54b50..c4e5ce7879 100644 Binary files a/icons/mob/human_races/species/ascent/alate/preview.dmi and b/icons/mob/human_races/species/ascent/alate/preview.dmi differ diff --git a/icons/mob/human_races/species/ascent/gyne/blood_mask.dmi b/icons/mob/human_races/species/ascent/gyne/blood_mask.dmi index 0b83e1d7a6..069f8ba4a3 100644 Binary files a/icons/mob/human_races/species/ascent/gyne/blood_mask.dmi and b/icons/mob/human_races/species/ascent/gyne/blood_mask.dmi differ diff --git a/icons/mob/human_races/species/ascent/gyne/body.dmi b/icons/mob/human_races/species/ascent/gyne/body.dmi index dd66ef775d..bcbed7e905 100644 Binary files a/icons/mob/human_races/species/ascent/gyne/body.dmi and b/icons/mob/human_races/species/ascent/gyne/body.dmi differ diff --git a/icons/mob/human_races/species/ascent/gyne/damage_mask.dmi b/icons/mob/human_races/species/ascent/gyne/damage_mask.dmi index 5f9fa8f491..71f8aaa11c 100644 Binary files a/icons/mob/human_races/species/ascent/gyne/damage_mask.dmi and b/icons/mob/human_races/species/ascent/gyne/damage_mask.dmi differ diff --git a/icons/mob/human_races/species/ascent/gyne/eyes.dmi b/icons/mob/human_races/species/ascent/gyne/eyes.dmi index c6f583e3f1..7e1242f7c6 100644 Binary files a/icons/mob/human_races/species/ascent/gyne/eyes.dmi and b/icons/mob/human_races/species/ascent/gyne/eyes.dmi differ diff --git a/icons/mob/human_races/species/ascent/gyne/preview.dmi b/icons/mob/human_races/species/ascent/gyne/preview.dmi index add0531b9d..42c0b8ad22 100644 Binary files a/icons/mob/human_races/species/ascent/gyne/preview.dmi and b/icons/mob/human_races/species/ascent/gyne/preview.dmi differ diff --git a/icons/mob/human_races/species/ascent/gyne/template.dmi b/icons/mob/human_races/species/ascent/gyne/template.dmi index b03bb80855..59fdcb8bc8 100644 Binary files a/icons/mob/human_races/species/ascent/gyne/template.dmi and b/icons/mob/human_races/species/ascent/gyne/template.dmi differ diff --git a/icons/mob/human_races/species/ascent/organs.dmi b/icons/mob/human_races/species/ascent/organs.dmi index e29f068fc0..6594ab87ac 100644 Binary files a/icons/mob/human_races/species/ascent/organs.dmi and b/icons/mob/human_races/species/ascent/organs.dmi differ diff --git a/icons/mob/human_races/species/blueforged/body.dmi b/icons/mob/human_races/species/blueforged/body.dmi index ab01b87ae3..632a136097 100644 Binary files a/icons/mob/human_races/species/blueforged/body.dmi and b/icons/mob/human_races/species/blueforged/body.dmi differ diff --git a/icons/mob/human_races/species/blueforged/eyes.dmi b/icons/mob/human_races/species/blueforged/eyes.dmi index f502872b66..a672c3c5ee 100644 Binary files a/icons/mob/human_races/species/blueforged/eyes.dmi and b/icons/mob/human_races/species/blueforged/eyes.dmi differ diff --git a/icons/mob/human_races/species/blueforged/organs.dmi b/icons/mob/human_races/species/blueforged/organs.dmi index 6e7ab69d1b..4946d47d98 100644 Binary files a/icons/mob/human_races/species/blueforged/organs.dmi and b/icons/mob/human_races/species/blueforged/organs.dmi differ diff --git a/icons/mob/human_races/species/default_eyes.dmi b/icons/mob/human_races/species/default_eyes.dmi index e6c0e2fc80..ee2fd69e8e 100644 Binary files a/icons/mob/human_races/species/default_eyes.dmi and b/icons/mob/human_races/species/default_eyes.dmi differ diff --git a/icons/mob/human_races/species/default_husk.dmi b/icons/mob/human_races/species/default_husk.dmi index 5979656cc0..643deeab1a 100644 Binary files a/icons/mob/human_races/species/default_husk.dmi and b/icons/mob/human_races/species/default_husk.dmi differ diff --git a/icons/mob/human_races/species/default_markings.dmi b/icons/mob/human_races/species/default_markings.dmi index d38fccc8db..6aedbd118f 100644 Binary files a/icons/mob/human_races/species/default_markings.dmi and b/icons/mob/human_races/species/default_markings.dmi differ diff --git a/icons/mob/human_races/species/diona/body.dmi b/icons/mob/human_races/species/diona/body.dmi index 6c35a7ac8e..498d833015 100644 Binary files a/icons/mob/human_races/species/diona/body.dmi and b/icons/mob/human_races/species/diona/body.dmi differ diff --git a/icons/mob/human_races/species/diona/deformed_body.dmi b/icons/mob/human_races/species/diona/deformed_body.dmi index 1fe04e70ff..dcf5d477de 100644 Binary files a/icons/mob/human_races/species/diona/deformed_body.dmi and b/icons/mob/human_races/species/diona/deformed_body.dmi differ diff --git a/icons/mob/human_races/species/diona/eyes.dmi b/icons/mob/human_races/species/diona/eyes.dmi index 9bda2175ed..b3a30d8bca 100644 Binary files a/icons/mob/human_races/species/diona/eyes.dmi and b/icons/mob/human_races/species/diona/eyes.dmi differ diff --git a/icons/mob/human_races/species/diona/preview.dmi b/icons/mob/human_races/species/diona/preview.dmi index b99fed178e..61a37ed52c 100644 Binary files a/icons/mob/human_races/species/diona/preview.dmi and b/icons/mob/human_races/species/diona/preview.dmi differ diff --git a/icons/mob/human_races/species/eyes.dmi b/icons/mob/human_races/species/eyes.dmi index e0e31003d3..1db90922ce 100644 Binary files a/icons/mob/human_races/species/eyes.dmi and b/icons/mob/human_races/species/eyes.dmi differ diff --git a/icons/mob/human_races/species/golem/body.dmi b/icons/mob/human_races/species/golem/body.dmi index d480ec4d28..f3ed627c5e 100644 Binary files a/icons/mob/human_races/species/golem/body.dmi and b/icons/mob/human_races/species/golem/body.dmi differ diff --git a/icons/mob/human_races/species/golem/husk.dmi b/icons/mob/human_races/species/golem/husk.dmi index d98f2560e1..1203e05432 100644 Binary files a/icons/mob/human_races/species/golem/husk.dmi and b/icons/mob/human_races/species/golem/husk.dmi differ diff --git a/icons/mob/human_races/species/human/blood_mask.dmi b/icons/mob/human_races/species/human/blood_mask.dmi index dc54991c84..169a34e143 100644 Binary files a/icons/mob/human_races/species/human/blood_mask.dmi and b/icons/mob/human_races/species/human/blood_mask.dmi differ diff --git a/icons/mob/human_races/species/human/body.dmi b/icons/mob/human_races/species/human/body.dmi index 893555866b..e6a7d950da 100644 Binary files a/icons/mob/human_races/species/human/body.dmi and b/icons/mob/human_races/species/human/body.dmi differ diff --git a/icons/mob/human_races/species/human/damage_mask.dmi b/icons/mob/human_races/species/human/damage_mask.dmi index db55b5a6b5..883b6f1ff0 100644 Binary files a/icons/mob/human_races/species/human/damage_mask.dmi and b/icons/mob/human_races/species/human/damage_mask.dmi differ diff --git a/icons/mob/human_races/species/human/damage_overlay.dmi b/icons/mob/human_races/species/human/damage_overlay.dmi index cb6bf82d98..3836e66afd 100644 Binary files a/icons/mob/human_races/species/human/damage_overlay.dmi and b/icons/mob/human_races/species/human/damage_overlay.dmi differ diff --git a/icons/mob/human_races/species/human/deformed_body.dmi b/icons/mob/human_races/species/human/deformed_body.dmi index e622ef14b5..d75fc783c2 100644 Binary files a/icons/mob/human_races/species/human/deformed_body.dmi and b/icons/mob/human_races/species/human/deformed_body.dmi differ diff --git a/icons/mob/human_races/species/human/facial.dmi b/icons/mob/human_races/species/human/facial.dmi index 25fde2d870..827620cbbc 100644 Binary files a/icons/mob/human_races/species/human/facial.dmi and b/icons/mob/human_races/species/human/facial.dmi differ diff --git a/icons/mob/human_races/species/human/hair.dmi b/icons/mob/human_races/species/human/hair.dmi index c88bd488f6..ef99aa1a37 100644 Binary files a/icons/mob/human_races/species/human/hair.dmi and b/icons/mob/human_races/species/human/hair.dmi differ diff --git a/icons/mob/human_races/species/human/hair_fade.dmi b/icons/mob/human_races/species/human/hair_fade.dmi index 2d3d499286..7df6a654a9 100644 Binary files a/icons/mob/human_races/species/human/hair_fade.dmi and b/icons/mob/human_races/species/human/hair_fade.dmi differ diff --git a/icons/mob/human_races/species/human/lips.dmi b/icons/mob/human_races/species/human/lips.dmi index e5c02b221b..59a2c9d353 100644 Binary files a/icons/mob/human_races/species/human/lips.dmi and b/icons/mob/human_races/species/human/lips.dmi differ diff --git a/icons/mob/human_races/species/human/preview.dmi b/icons/mob/human_races/species/human/preview.dmi index 9a8fd2e412..fa99052840 100644 Binary files a/icons/mob/human_races/species/human/preview.dmi and b/icons/mob/human_races/species/human/preview.dmi differ diff --git a/icons/mob/human_races/species/human/skeleton.dmi b/icons/mob/human_races/species/human/skeleton.dmi index 1cedb1196f..bed4990141 100644 Binary files a/icons/mob/human_races/species/human/skeleton.dmi and b/icons/mob/human_races/species/human/skeleton.dmi differ diff --git a/icons/mob/human_races/species/human/subspecies/booster_mods.dmi b/icons/mob/human_races/species/human/subspecies/booster_mods.dmi index 90fde122cc..f49c127a78 100644 Binary files a/icons/mob/human_races/species/human/subspecies/booster_mods.dmi and b/icons/mob/human_races/species/human/subspecies/booster_mods.dmi differ diff --git a/icons/mob/human_races/species/human/subspecies/gravworlder_body.dmi b/icons/mob/human_races/species/human/subspecies/gravworlder_body.dmi index c4fadee47d..1472c27297 100644 Binary files a/icons/mob/human_races/species/human/subspecies/gravworlder_body.dmi and b/icons/mob/human_races/species/human/subspecies/gravworlder_body.dmi differ diff --git a/icons/mob/human_races/species/human/subspecies/gravworlder_preview.dmi b/icons/mob/human_races/species/human/subspecies/gravworlder_preview.dmi index 08ee4fc940..da9cd1c445 100644 Binary files a/icons/mob/human_races/species/human/subspecies/gravworlder_preview.dmi and b/icons/mob/human_races/species/human/subspecies/gravworlder_preview.dmi differ diff --git a/icons/mob/human_races/species/human/subspecies/spacer_body.dmi b/icons/mob/human_races/species/human/subspecies/spacer_body.dmi index bc872f7a66..de921cd7ab 100644 Binary files a/icons/mob/human_races/species/human/subspecies/spacer_body.dmi and b/icons/mob/human_races/species/human/subspecies/spacer_body.dmi differ diff --git a/icons/mob/human_races/species/human/subspecies/spacer_preview.dmi b/icons/mob/human_races/species/human/subspecies/spacer_preview.dmi index 70cdd9a85a..e68733c7d8 100644 Binary files a/icons/mob/human_races/species/human/subspecies/spacer_preview.dmi and b/icons/mob/human_races/species/human/subspecies/spacer_preview.dmi differ diff --git a/icons/mob/human_races/species/human/subspecies/tritonian_body.dmi b/icons/mob/human_races/species/human/subspecies/tritonian_body.dmi index a5618b69ec..4202c6f7a5 100644 Binary files a/icons/mob/human_races/species/human/subspecies/tritonian_body.dmi and b/icons/mob/human_races/species/human/subspecies/tritonian_body.dmi differ diff --git a/icons/mob/human_races/species/human/subspecies/tritonian_preview.dmi b/icons/mob/human_races/species/human/subspecies/tritonian_preview.dmi index 482cdb2036..7c384d7883 100644 Binary files a/icons/mob/human_races/species/human/subspecies/tritonian_preview.dmi and b/icons/mob/human_races/species/human/subspecies/tritonian_preview.dmi differ diff --git a/icons/mob/human_races/species/human/subspecies/vatgrown_body.dmi b/icons/mob/human_races/species/human/subspecies/vatgrown_body.dmi index a6f201d56f..825d4432b8 100644 Binary files a/icons/mob/human_races/species/human/subspecies/vatgrown_body.dmi and b/icons/mob/human_races/species/human/subspecies/vatgrown_body.dmi differ diff --git a/icons/mob/human_races/species/human/subspecies/vatgrown_preview.dmi b/icons/mob/human_races/species/human/subspecies/vatgrown_preview.dmi index 10fb1060b7..8afe57cb40 100644 Binary files a/icons/mob/human_races/species/human/subspecies/vatgrown_preview.dmi and b/icons/mob/human_races/species/human/subspecies/vatgrown_preview.dmi differ diff --git a/icons/mob/human_races/species/human/tatt1.dmi b/icons/mob/human_races/species/human/tatt1.dmi index 264cd63675..bd3ede79d3 100644 Binary files a/icons/mob/human_races/species/human/tatt1.dmi and b/icons/mob/human_races/species/human/tatt1.dmi differ diff --git a/icons/mob/human_races/species/humanoid/body.dmi b/icons/mob/human_races/species/humanoid/body.dmi index 6e8a68669b..2ccd999b0a 100644 Binary files a/icons/mob/human_races/species/humanoid/body.dmi and b/icons/mob/human_races/species/humanoid/body.dmi differ diff --git a/icons/mob/human_races/species/ipc/preview.dmi b/icons/mob/human_races/species/ipc/preview.dmi index 92d5c51a6b..f19b371709 100644 Binary files a/icons/mob/human_races/species/ipc/preview.dmi and b/icons/mob/human_races/species/ipc/preview.dmi differ diff --git a/icons/mob/human_races/species/lips.dmi b/icons/mob/human_races/species/lips.dmi index e5c02b221b..59a2c9d353 100644 Binary files a/icons/mob/human_races/species/lips.dmi and b/icons/mob/human_races/species/lips.dmi differ diff --git a/icons/mob/human_races/species/monkey/blood_mask.dmi b/icons/mob/human_races/species/monkey/blood_mask.dmi index 5d5dd66d75..22e20de474 100644 Binary files a/icons/mob/human_races/species/monkey/blood_mask.dmi and b/icons/mob/human_races/species/monkey/blood_mask.dmi differ diff --git a/icons/mob/human_races/species/monkey/damage_mask.dmi b/icons/mob/human_races/species/monkey/damage_mask.dmi index 4761f21fbd..d34e27cbf4 100644 Binary files a/icons/mob/human_races/species/monkey/damage_mask.dmi and b/icons/mob/human_races/species/monkey/damage_mask.dmi differ diff --git a/icons/mob/human_races/species/monkey/damage_overlays.dmi b/icons/mob/human_races/species/monkey/damage_overlays.dmi index 43d1f2c7a7..9aa6246956 100644 Binary files a/icons/mob/human_races/species/monkey/damage_overlays.dmi and b/icons/mob/human_races/species/monkey/damage_overlays.dmi differ diff --git a/icons/mob/human_races/species/monkey/farwa_body.dmi b/icons/mob/human_races/species/monkey/farwa_body.dmi index 585fa3bcf3..a086ba3fa9 100644 Binary files a/icons/mob/human_races/species/monkey/farwa_body.dmi and b/icons/mob/human_races/species/monkey/farwa_body.dmi differ diff --git a/icons/mob/human_races/species/monkey/monkey_body.dmi b/icons/mob/human_races/species/monkey/monkey_body.dmi index e9c497331c..730f55f254 100644 Binary files a/icons/mob/human_races/species/monkey/monkey_body.dmi and b/icons/mob/human_races/species/monkey/monkey_body.dmi differ diff --git a/icons/mob/human_races/species/monkey/neaera_body.dmi b/icons/mob/human_races/species/monkey/neaera_body.dmi index 69183f0d4b..b1dbc89a12 100644 Binary files a/icons/mob/human_races/species/monkey/neaera_body.dmi and b/icons/mob/human_races/species/monkey/neaera_body.dmi differ diff --git a/icons/mob/human_races/species/monkey/stok_body.dmi b/icons/mob/human_races/species/monkey/stok_body.dmi index 28af62205c..28a2b24daf 100644 Binary files a/icons/mob/human_races/species/monkey/stok_body.dmi and b/icons/mob/human_races/species/monkey/stok_body.dmi differ diff --git a/icons/mob/human_races/species/nabber/blood_mask.dmi b/icons/mob/human_races/species/nabber/blood_mask.dmi index 7f4ff338df..0d437b8fe5 100644 Binary files a/icons/mob/human_races/species/nabber/blood_mask.dmi and b/icons/mob/human_races/species/nabber/blood_mask.dmi differ diff --git a/icons/mob/human_races/species/nabber/body.dmi b/icons/mob/human_races/species/nabber/body.dmi index ca2110fbb7..c74e386f3a 100644 Binary files a/icons/mob/human_races/species/nabber/body.dmi and b/icons/mob/human_races/species/nabber/body.dmi differ diff --git a/icons/mob/human_races/species/nabber/body_msw.dmi b/icons/mob/human_races/species/nabber/body_msw.dmi index 0091b2f4d5..f77bc94e4e 100644 Binary files a/icons/mob/human_races/species/nabber/body_msw.dmi and b/icons/mob/human_races/species/nabber/body_msw.dmi differ diff --git a/icons/mob/human_races/species/nabber/eyes.dmi b/icons/mob/human_races/species/nabber/eyes.dmi index 1401300689..57610ec76b 100644 Binary files a/icons/mob/human_races/species/nabber/eyes.dmi and b/icons/mob/human_races/species/nabber/eyes.dmi differ diff --git a/icons/mob/human_races/species/nabber/msq/blood_mask.dmi b/icons/mob/human_races/species/nabber/msq/blood_mask.dmi index 3ca7e004a4..7e361447d9 100644 Binary files a/icons/mob/human_races/species/nabber/msq/blood_mask.dmi and b/icons/mob/human_races/species/nabber/msq/blood_mask.dmi differ diff --git a/icons/mob/human_races/species/nabber/msq/body.dmi b/icons/mob/human_races/species/nabber/msq/body.dmi index 432869e296..70442ff1eb 100644 Binary files a/icons/mob/human_races/species/nabber/msq/body.dmi and b/icons/mob/human_races/species/nabber/msq/body.dmi differ diff --git a/icons/mob/human_races/species/nabber/msq/damage_mask.dmi b/icons/mob/human_races/species/nabber/msq/damage_mask.dmi index 08355e8552..fdfc1f6ed4 100644 Binary files a/icons/mob/human_races/species/nabber/msq/damage_mask.dmi and b/icons/mob/human_races/species/nabber/msq/damage_mask.dmi differ diff --git a/icons/mob/human_races/species/nabber/msq/eyes.dmi b/icons/mob/human_races/species/nabber/msq/eyes.dmi index a6fb693dd5..2ec2859950 100644 Binary files a/icons/mob/human_races/species/nabber/msq/eyes.dmi and b/icons/mob/human_races/species/nabber/msq/eyes.dmi differ diff --git a/icons/mob/human_races/species/nabber/msq/preview.dmi b/icons/mob/human_races/species/nabber/msq/preview.dmi index 0af9aa1447..574d887e6f 100644 Binary files a/icons/mob/human_races/species/nabber/msq/preview.dmi and b/icons/mob/human_races/species/nabber/msq/preview.dmi differ diff --git a/icons/mob/human_races/species/nabber/preview.dmi b/icons/mob/human_races/species/nabber/preview.dmi index eb50618ca9..c90be855a7 100644 Binary files a/icons/mob/human_races/species/nabber/preview.dmi and b/icons/mob/human_races/species/nabber/preview.dmi differ diff --git a/icons/mob/human_races/species/nabber/threat.dmi b/icons/mob/human_races/species/nabber/threat.dmi index bf405c3524..4f2b6c19a1 100644 Binary files a/icons/mob/human_races/species/nabber/threat.dmi and b/icons/mob/human_races/species/nabber/threat.dmi differ diff --git a/icons/mob/human_races/species/shadow/body.dmi b/icons/mob/human_races/species/shadow/body.dmi index 47aee45e5b..f8ce2a46a8 100644 Binary files a/icons/mob/human_races/species/shadow/body.dmi and b/icons/mob/human_races/species/shadow/body.dmi differ diff --git a/icons/mob/human_races/species/shadow/husk.dmi b/icons/mob/human_races/species/shadow/husk.dmi index c1f14c0bb6..490cc9f921 100644 Binary files a/icons/mob/human_races/species/shadow/husk.dmi and b/icons/mob/human_races/species/shadow/husk.dmi differ diff --git a/icons/mob/human_races/species/skrell/body.dmi b/icons/mob/human_races/species/skrell/body.dmi index 5c54d40297..952594f973 100644 Binary files a/icons/mob/human_races/species/skrell/body.dmi and b/icons/mob/human_races/species/skrell/body.dmi differ diff --git a/icons/mob/human_races/species/skrell/deformed_body.dmi b/icons/mob/human_races/species/skrell/deformed_body.dmi index 600daf5a38..f543d2fa14 100644 Binary files a/icons/mob/human_races/species/skrell/deformed_body.dmi and b/icons/mob/human_races/species/skrell/deformed_body.dmi differ diff --git a/icons/mob/human_races/species/skrell/eyes.dmi b/icons/mob/human_races/species/skrell/eyes.dmi index ebc1b1387a..92b4b7990a 100644 Binary files a/icons/mob/human_races/species/skrell/eyes.dmi and b/icons/mob/human_races/species/skrell/eyes.dmi differ diff --git a/icons/mob/human_races/species/skrell/hair.dmi b/icons/mob/human_races/species/skrell/hair.dmi index 7d9ba0e861..5ff7537428 100644 Binary files a/icons/mob/human_races/species/skrell/hair.dmi and b/icons/mob/human_races/species/skrell/hair.dmi differ diff --git a/icons/mob/human_races/species/skrell/organs.dmi b/icons/mob/human_races/species/skrell/organs.dmi index 11774a8afb..e1882ab23c 100644 Binary files a/icons/mob/human_races/species/skrell/organs.dmi and b/icons/mob/human_races/species/skrell/organs.dmi differ diff --git a/icons/mob/human_races/species/skrell/preview.dmi b/icons/mob/human_races/species/skrell/preview.dmi index 049ba698b2..b2ea36fefc 100644 Binary files a/icons/mob/human_races/species/skrell/preview.dmi and b/icons/mob/human_races/species/skrell/preview.dmi differ diff --git a/icons/mob/human_races/species/starborn/body.dmi b/icons/mob/human_races/species/starborn/body.dmi index c55dc951af..b0bbcf1a79 100644 Binary files a/icons/mob/human_races/species/starborn/body.dmi and b/icons/mob/human_races/species/starborn/body.dmi differ diff --git a/icons/mob/human_races/species/starborn/husk.dmi b/icons/mob/human_races/species/starborn/husk.dmi index cb1bea82cc..96c1880939 100644 Binary files a/icons/mob/human_races/species/starborn/husk.dmi and b/icons/mob/human_races/species/starborn/husk.dmi differ diff --git a/icons/mob/human_races/species/template.dmi b/icons/mob/human_races/species/template.dmi index 1545497146..60644aa2ca 100644 Binary files a/icons/mob/human_races/species/template.dmi and b/icons/mob/human_races/species/template.dmi differ diff --git a/icons/mob/human_races/species/template_tall.dmi b/icons/mob/human_races/species/template_tall.dmi index e9862bab5a..df40ce5312 100644 Binary files a/icons/mob/human_races/species/template_tall.dmi and b/icons/mob/human_races/species/template_tall.dmi differ diff --git a/icons/mob/human_races/species/unathi/body.dmi b/icons/mob/human_races/species/unathi/body.dmi index db8a6c2c95..f861d32ad3 100644 Binary files a/icons/mob/human_races/species/unathi/body.dmi and b/icons/mob/human_races/species/unathi/body.dmi differ diff --git a/icons/mob/human_races/species/unathi/default_markings.dmi b/icons/mob/human_races/species/unathi/default_markings.dmi index 8e23f222a3..ed474686aa 100644 Binary files a/icons/mob/human_races/species/unathi/default_markings.dmi and b/icons/mob/human_races/species/unathi/default_markings.dmi differ diff --git a/icons/mob/human_races/species/unathi/deformed_body.dmi b/icons/mob/human_races/species/unathi/deformed_body.dmi index 4d0f25e727..1744817e0f 100644 Binary files a/icons/mob/human_races/species/unathi/deformed_body.dmi and b/icons/mob/human_races/species/unathi/deformed_body.dmi differ diff --git a/icons/mob/human_races/species/unathi/eyes.dmi b/icons/mob/human_races/species/unathi/eyes.dmi index f0d1d9c966..c6fab69d50 100644 Binary files a/icons/mob/human_races/species/unathi/eyes.dmi and b/icons/mob/human_races/species/unathi/eyes.dmi differ diff --git a/icons/mob/human_races/species/unathi/hair.dmi b/icons/mob/human_races/species/unathi/hair.dmi index 365e241d39..af10649940 100644 Binary files a/icons/mob/human_races/species/unathi/hair.dmi and b/icons/mob/human_races/species/unathi/hair.dmi differ diff --git a/icons/mob/human_races/species/unathi/husk.dmi b/icons/mob/human_races/species/unathi/husk.dmi index 53004b8437..87d73d2cdb 100644 Binary files a/icons/mob/human_races/species/unathi/husk.dmi and b/icons/mob/human_races/species/unathi/husk.dmi differ diff --git a/icons/mob/human_races/species/unathi/organs.dmi b/icons/mob/human_races/species/unathi/organs.dmi index f5a0299d4e..1ec6d82a96 100644 Binary files a/icons/mob/human_races/species/unathi/organs.dmi and b/icons/mob/human_races/species/unathi/organs.dmi differ diff --git a/icons/mob/human_races/species/unathi/preview.dmi b/icons/mob/human_races/species/unathi/preview.dmi index 067cb02d45..fe9f8e0f49 100644 Binary files a/icons/mob/human_races/species/unathi/preview.dmi and b/icons/mob/human_races/species/unathi/preview.dmi differ diff --git a/icons/mob/human_races/species/vox/armalis_body.dmi b/icons/mob/human_races/species/vox/armalis_body.dmi index 45b45c21b7..f095daf181 100644 Binary files a/icons/mob/human_races/species/vox/armalis_body.dmi and b/icons/mob/human_races/species/vox/armalis_body.dmi differ diff --git a/icons/mob/human_races/species/vox/armalis_eyes.dmi b/icons/mob/human_races/species/vox/armalis_eyes.dmi index 53bd92ba68..51c0504d6d 100644 Binary files a/icons/mob/human_races/species/vox/armalis_eyes.dmi and b/icons/mob/human_races/species/vox/armalis_eyes.dmi differ diff --git a/icons/mob/human_races/species/vox/armalis_husk.dmi b/icons/mob/human_races/species/vox/armalis_husk.dmi index 427e50d694..849588d4d2 100644 Binary files a/icons/mob/human_races/species/vox/armalis_husk.dmi and b/icons/mob/human_races/species/vox/armalis_husk.dmi differ diff --git a/icons/mob/human_races/species/vox/armalis_preview.dmi b/icons/mob/human_races/species/vox/armalis_preview.dmi index 29ced53af5..d3ebda9730 100644 Binary files a/icons/mob/human_races/species/vox/armalis_preview.dmi and b/icons/mob/human_races/species/vox/armalis_preview.dmi differ diff --git a/icons/mob/human_races/species/vox/blood_mask.dmi b/icons/mob/human_races/species/vox/blood_mask.dmi index 91416abef5..71975b42ec 100644 Binary files a/icons/mob/human_races/species/vox/blood_mask.dmi and b/icons/mob/human_races/species/vox/blood_mask.dmi differ diff --git a/icons/mob/human_races/species/vox/blood_mask_armalis.dmi b/icons/mob/human_races/species/vox/blood_mask_armalis.dmi index e36d2a0c4f..e40dd3d511 100644 Binary files a/icons/mob/human_races/species/vox/blood_mask_armalis.dmi and b/icons/mob/human_races/species/vox/blood_mask_armalis.dmi differ diff --git a/icons/mob/human_races/species/vox/body.dmi b/icons/mob/human_races/species/vox/body.dmi index 533dd237c6..b48072d1d8 100644 Binary files a/icons/mob/human_races/species/vox/body.dmi and b/icons/mob/human_races/species/vox/body.dmi differ diff --git a/icons/mob/human_races/species/vox/damage_mask.dmi b/icons/mob/human_races/species/vox/damage_mask.dmi index d81d1f788a..6fd2e68f79 100644 Binary files a/icons/mob/human_races/species/vox/damage_mask.dmi and b/icons/mob/human_races/species/vox/damage_mask.dmi differ diff --git a/icons/mob/human_races/species/vox/damage_mask_armalis.dmi b/icons/mob/human_races/species/vox/damage_mask_armalis.dmi index ce9033eb5f..271e4af177 100644 Binary files a/icons/mob/human_races/species/vox/damage_mask_armalis.dmi and b/icons/mob/human_races/species/vox/damage_mask_armalis.dmi differ diff --git a/icons/mob/human_races/species/vox/damage_overlay.dmi b/icons/mob/human_races/species/vox/damage_overlay.dmi index a3870528e8..94bc2551ee 100644 Binary files a/icons/mob/human_races/species/vox/damage_overlay.dmi and b/icons/mob/human_races/species/vox/damage_overlay.dmi differ diff --git a/icons/mob/human_races/species/vox/damage_overlay_armalis.dmi b/icons/mob/human_races/species/vox/damage_overlay_armalis.dmi index d007b4d41c..8165c9d121 100644 Binary files a/icons/mob/human_races/species/vox/damage_overlay_armalis.dmi and b/icons/mob/human_races/species/vox/damage_overlay_armalis.dmi differ diff --git a/icons/mob/human_races/species/vox/deformed_body.dmi b/icons/mob/human_races/species/vox/deformed_body.dmi index 12538fa074..6ed33e1fc4 100644 Binary files a/icons/mob/human_races/species/vox/deformed_body.dmi and b/icons/mob/human_races/species/vox/deformed_body.dmi differ diff --git a/icons/mob/human_races/species/vox/eyes.dmi b/icons/mob/human_races/species/vox/eyes.dmi index bfbe90ddac..ccc4d8bc92 100644 Binary files a/icons/mob/human_races/species/vox/eyes.dmi and b/icons/mob/human_races/species/vox/eyes.dmi differ diff --git a/icons/mob/human_races/species/vox/hair.dmi b/icons/mob/human_races/species/vox/hair.dmi index 07ab206a56..7a5fa737d2 100644 Binary files a/icons/mob/human_races/species/vox/hair.dmi and b/icons/mob/human_races/species/vox/hair.dmi differ diff --git a/icons/mob/human_races/species/vox/husk.dmi b/icons/mob/human_races/species/vox/husk.dmi index b7ab9e1215..6987293ae6 100644 Binary files a/icons/mob/human_races/species/vox/husk.dmi and b/icons/mob/human_races/species/vox/husk.dmi differ diff --git a/icons/mob/human_races/subspecies/r_gravworlder.dmi b/icons/mob/human_races/subspecies/r_gravworlder.dmi index 5ceeb44049..88b289d560 100644 Binary files a/icons/mob/human_races/subspecies/r_gravworlder.dmi and b/icons/mob/human_races/subspecies/r_gravworlder.dmi differ diff --git a/icons/mob/human_races/subspecies/r_spacer.dmi b/icons/mob/human_races/subspecies/r_spacer.dmi index ceb27d2904..8d28870412 100644 Binary files a/icons/mob/human_races/subspecies/r_spacer.dmi and b/icons/mob/human_races/subspecies/r_spacer.dmi differ diff --git a/icons/mob/human_races/subspecies/r_upliftedchimp.dmi b/icons/mob/human_races/subspecies/r_upliftedchimp.dmi index eb26c817cc..a84655bdce 100644 Binary files a/icons/mob/human_races/subspecies/r_upliftedchimp.dmi and b/icons/mob/human_races/subspecies/r_upliftedchimp.dmi differ diff --git a/icons/mob/human_races/subspecies/r_vatgrown.dmi b/icons/mob/human_races/subspecies/r_vatgrown.dmi index 0cdfef98e3..4b438d7f24 100644 Binary files a/icons/mob/human_races/subspecies/r_vatgrown.dmi and b/icons/mob/human_races/subspecies/r_vatgrown.dmi differ diff --git a/icons/mob/human_races/tatt1.dmi b/icons/mob/human_races/tatt1.dmi index 264cd63675..bd3ede79d3 100644 Binary files a/icons/mob/human_races/tatt1.dmi and b/icons/mob/human_races/tatt1.dmi differ diff --git a/icons/mob/human_races/xenos/r_xenos_drone.dmi b/icons/mob/human_races/xenos/r_xenos_drone.dmi index a85d55da51..aaf275242e 100644 Binary files a/icons/mob/human_races/xenos/r_xenos_drone.dmi and b/icons/mob/human_races/xenos/r_xenos_drone.dmi differ diff --git a/icons/mob/human_races/xenos/r_xenos_hunter.dmi b/icons/mob/human_races/xenos/r_xenos_hunter.dmi index 642934e5a7..ce728d9997 100644 Binary files a/icons/mob/human_races/xenos/r_xenos_hunter.dmi and b/icons/mob/human_races/xenos/r_xenos_hunter.dmi differ diff --git a/icons/mob/human_races/xenos/r_xenos_queen.dmi b/icons/mob/human_races/xenos/r_xenos_queen.dmi index 388fdb9882..65799059fc 100644 Binary files a/icons/mob/human_races/xenos/r_xenos_queen.dmi and b/icons/mob/human_races/xenos/r_xenos_queen.dmi differ diff --git a/icons/mob/human_races/xenos/r_xenos_sentinel.dmi b/icons/mob/human_races/xenos/r_xenos_sentinel.dmi index e99441346a..76304604e4 100644 Binary files a/icons/mob/human_races/xenos/r_xenos_sentinel.dmi and b/icons/mob/human_races/xenos/r_xenos_sentinel.dmi differ diff --git a/icons/mob/light_overlays.dmi b/icons/mob/light_overlays.dmi index 31caab12e0..4c79d8d2ad 100644 Binary files a/icons/mob/light_overlays.dmi and b/icons/mob/light_overlays.dmi differ diff --git a/icons/mob/livestock.dmi b/icons/mob/livestock.dmi index 538e14b1ea..3affc7bf03 100644 Binary files a/icons/mob/livestock.dmi and b/icons/mob/livestock.dmi differ diff --git a/icons/mob/lizard_face.dmi b/icons/mob/lizard_face.dmi index 0c5d69ecff..4452077dd2 100644 Binary files a/icons/mob/lizard_face.dmi and b/icons/mob/lizard_face.dmi differ diff --git a/icons/mob/mecha.dmi b/icons/mob/mecha.dmi index a6d3b13773..0a6999ebed 100644 Binary files a/icons/mob/mecha.dmi and b/icons/mob/mecha.dmi differ diff --git a/icons/mob/mob.dmi b/icons/mob/mob.dmi index 1f17b47244..a4f32d01f1 100644 Binary files a/icons/mob/mob.dmi and b/icons/mob/mob.dmi differ diff --git a/icons/mob/monitor_icons.dmi b/icons/mob/monitor_icons.dmi index b82955c992..2371dc6fb4 100644 Binary files a/icons/mob/monitor_icons.dmi and b/icons/mob/monitor_icons.dmi differ diff --git a/icons/mob/nabber_face.dmi b/icons/mob/nabber_face.dmi index 1bc27b9e45..91718cf273 100644 Binary files a/icons/mob/nabber_face.dmi and b/icons/mob/nabber_face.dmi differ diff --git a/icons/mob/onmob/Unathi/back.dmi b/icons/mob/onmob/Unathi/back.dmi index ab70a76625..c92e2dca34 100644 Binary files a/icons/mob/onmob/Unathi/back.dmi and b/icons/mob/onmob/Unathi/back.dmi differ diff --git a/icons/mob/onmob/Unathi/belt.dmi b/icons/mob/onmob/Unathi/belt.dmi index c0c6d6b9ef..ffef354be2 100644 Binary files a/icons/mob/onmob/Unathi/belt.dmi and b/icons/mob/onmob/Unathi/belt.dmi differ diff --git a/icons/mob/onmob/Unathi/belt_mirror.dmi b/icons/mob/onmob/Unathi/belt_mirror.dmi index f5b9e961ab..af6d85c561 100644 Binary files a/icons/mob/onmob/Unathi/belt_mirror.dmi and b/icons/mob/onmob/Unathi/belt_mirror.dmi differ diff --git a/icons/mob/onmob/Unathi/ears.dmi b/icons/mob/onmob/Unathi/ears.dmi index 412e8982f9..34dd255050 100644 Binary files a/icons/mob/onmob/Unathi/ears.dmi and b/icons/mob/onmob/Unathi/ears.dmi differ diff --git a/icons/mob/onmob/Unathi/eyes.dmi b/icons/mob/onmob/Unathi/eyes.dmi index 7d79c901e7..57e2606c87 100644 Binary files a/icons/mob/onmob/Unathi/eyes.dmi and b/icons/mob/onmob/Unathi/eyes.dmi differ diff --git a/icons/mob/onmob/Unathi/feet.dmi b/icons/mob/onmob/Unathi/feet.dmi index 6aaca03c38..6130d8e7a8 100644 Binary files a/icons/mob/onmob/Unathi/feet.dmi and b/icons/mob/onmob/Unathi/feet.dmi differ diff --git a/icons/mob/onmob/Unathi/hands.dmi b/icons/mob/onmob/Unathi/hands.dmi index 608af005d5..60d7b8660e 100644 Binary files a/icons/mob/onmob/Unathi/hands.dmi and b/icons/mob/onmob/Unathi/hands.dmi differ diff --git a/icons/mob/onmob/Unathi/head.dmi b/icons/mob/onmob/Unathi/head.dmi index d468fb9e27..bd5f62d1c9 100644 Binary files a/icons/mob/onmob/Unathi/head.dmi and b/icons/mob/onmob/Unathi/head.dmi differ diff --git a/icons/mob/onmob/Unathi/id.dmi b/icons/mob/onmob/Unathi/id.dmi index 6445aeb808..9850b159d5 100644 Binary files a/icons/mob/onmob/Unathi/id.dmi and b/icons/mob/onmob/Unathi/id.dmi differ diff --git a/icons/mob/onmob/Unathi/mask.dmi b/icons/mob/onmob/Unathi/mask.dmi index e4688021f6..892ed399b8 100644 Binary files a/icons/mob/onmob/Unathi/mask.dmi and b/icons/mob/onmob/Unathi/mask.dmi differ diff --git a/icons/mob/onmob/Unathi/misc.dmi b/icons/mob/onmob/Unathi/misc.dmi index 6afd19085a..cc2923c984 100644 Binary files a/icons/mob/onmob/Unathi/misc.dmi and b/icons/mob/onmob/Unathi/misc.dmi differ diff --git a/icons/mob/onmob/Unathi/nanotrasen.dmi b/icons/mob/onmob/Unathi/nanotrasen.dmi index b5dbbe5e7f..f59efca176 100644 Binary files a/icons/mob/onmob/Unathi/nanotrasen.dmi and b/icons/mob/onmob/Unathi/nanotrasen.dmi differ diff --git a/icons/mob/onmob/Unathi/pants.dmi b/icons/mob/onmob/Unathi/pants.dmi index d2bfbee9f9..c74f2d3c0a 100644 Binary files a/icons/mob/onmob/Unathi/pants.dmi and b/icons/mob/onmob/Unathi/pants.dmi differ diff --git a/icons/mob/onmob/Unathi/rig_back.dmi b/icons/mob/onmob/Unathi/rig_back.dmi index 0bab1e1327..c062b0ca1c 100644 Binary files a/icons/mob/onmob/Unathi/rig_back.dmi and b/icons/mob/onmob/Unathi/rig_back.dmi differ diff --git a/icons/mob/onmob/Unathi/rig_modules.dmi b/icons/mob/onmob/Unathi/rig_modules.dmi index 98c7eddfa9..cfca7755ac 100644 Binary files a/icons/mob/onmob/Unathi/rig_modules.dmi and b/icons/mob/onmob/Unathi/rig_modules.dmi differ diff --git a/icons/mob/onmob/Unathi/suit.dmi b/icons/mob/onmob/Unathi/suit.dmi index c1026cae20..216fdc1d5c 100644 Binary files a/icons/mob/onmob/Unathi/suit.dmi and b/icons/mob/onmob/Unathi/suit.dmi differ diff --git a/icons/mob/onmob/Unathi/ties.dmi b/icons/mob/onmob/Unathi/ties.dmi index 4876f73844..69b70a7743 100644 Binary files a/icons/mob/onmob/Unathi/ties.dmi and b/icons/mob/onmob/Unathi/ties.dmi differ diff --git a/icons/mob/onmob/Unathi/uniform.dmi b/icons/mob/onmob/Unathi/uniform.dmi index 86fc3262d6..af04f6e9e7 100644 Binary files a/icons/mob/onmob/Unathi/uniform.dmi and b/icons/mob/onmob/Unathi/uniform.dmi differ diff --git a/icons/mob/onmob/back.dmi b/icons/mob/onmob/back.dmi index 5ea07c72c8..2983194b64 100644 Binary files a/icons/mob/onmob/back.dmi and b/icons/mob/onmob/back.dmi differ diff --git a/icons/mob/onmob/belt.dmi b/icons/mob/onmob/belt.dmi index 87cb3e2427..0410327f28 100644 Binary files a/icons/mob/onmob/belt.dmi and b/icons/mob/onmob/belt.dmi differ diff --git a/icons/mob/onmob/belt_mirror.dmi b/icons/mob/onmob/belt_mirror.dmi index 9358ba3cd9..212c51c407 100644 Binary files a/icons/mob/onmob/belt_mirror.dmi and b/icons/mob/onmob/belt_mirror.dmi differ diff --git a/icons/mob/onmob/ears.dmi b/icons/mob/onmob/ears.dmi index 0e4ea05929..aadcf8d044 100644 Binary files a/icons/mob/onmob/ears.dmi and b/icons/mob/onmob/ears.dmi differ diff --git a/icons/mob/onmob/eyes.dmi b/icons/mob/onmob/eyes.dmi index 3f1106e29c..92683876f7 100644 Binary files a/icons/mob/onmob/eyes.dmi and b/icons/mob/onmob/eyes.dmi differ diff --git a/icons/mob/onmob/feet.dmi b/icons/mob/onmob/feet.dmi index c5a4fa8f6a..15899ed610 100644 Binary files a/icons/mob/onmob/feet.dmi and b/icons/mob/onmob/feet.dmi differ diff --git a/icons/mob/onmob/hands.dmi b/icons/mob/onmob/hands.dmi index dab23d6ce7..cf7e53e7d3 100644 Binary files a/icons/mob/onmob/hands.dmi and b/icons/mob/onmob/hands.dmi differ diff --git a/icons/mob/onmob/head.dmi b/icons/mob/onmob/head.dmi index 42441bf4de..7b0f7d0388 100644 Binary files a/icons/mob/onmob/head.dmi and b/icons/mob/onmob/head.dmi differ diff --git a/icons/mob/onmob/id.dmi b/icons/mob/onmob/id.dmi index 518bd9a176..02e9f88854 100644 Binary files a/icons/mob/onmob/id.dmi and b/icons/mob/onmob/id.dmi differ diff --git a/icons/mob/onmob/items/lefthand.dmi b/icons/mob/onmob/items/lefthand.dmi index 21c41447ad..030cb0376f 100644 Binary files a/icons/mob/onmob/items/lefthand.dmi and b/icons/mob/onmob/items/lefthand.dmi differ diff --git a/icons/mob/onmob/items/lefthand_backpacks.dmi b/icons/mob/onmob/items/lefthand_backpacks.dmi index b90915fc69..35730adcc2 100644 Binary files a/icons/mob/onmob/items/lefthand_backpacks.dmi and b/icons/mob/onmob/items/lefthand_backpacks.dmi differ diff --git a/icons/mob/onmob/items/lefthand_guns.dmi b/icons/mob/onmob/items/lefthand_guns.dmi index dd76ceb6ac..9a8fa47b1f 100644 Binary files a/icons/mob/onmob/items/lefthand_guns.dmi and b/icons/mob/onmob/items/lefthand_guns.dmi differ diff --git a/icons/mob/onmob/items/lefthand_guns_secure.dmi b/icons/mob/onmob/items/lefthand_guns_secure.dmi index b7ea0250db..eb38bd9af0 100644 Binary files a/icons/mob/onmob/items/lefthand_guns_secure.dmi and b/icons/mob/onmob/items/lefthand_guns_secure.dmi differ diff --git a/icons/mob/onmob/items/lefthand_hats.dmi b/icons/mob/onmob/items/lefthand_hats.dmi index 2dd2bf72fe..a44f33ffcf 100644 Binary files a/icons/mob/onmob/items/lefthand_hats.dmi and b/icons/mob/onmob/items/lefthand_hats.dmi differ diff --git a/icons/mob/onmob/items/lefthand_holder.dmi b/icons/mob/onmob/items/lefthand_holder.dmi index 033c63ba63..ceb6c088c9 100644 Binary files a/icons/mob/onmob/items/lefthand_holder.dmi and b/icons/mob/onmob/items/lefthand_holder.dmi differ diff --git a/icons/mob/onmob/items/lefthand_spacesuits.dmi b/icons/mob/onmob/items/lefthand_spacesuits.dmi index 5c5e66e9d3..ce039c0eb5 100644 Binary files a/icons/mob/onmob/items/lefthand_spacesuits.dmi and b/icons/mob/onmob/items/lefthand_spacesuits.dmi differ diff --git a/icons/mob/onmob/items/lefthand_uniforms.dmi b/icons/mob/onmob/items/lefthand_uniforms.dmi index 03adf341be..911c4c1fe1 100644 Binary files a/icons/mob/onmob/items/lefthand_uniforms.dmi and b/icons/mob/onmob/items/lefthand_uniforms.dmi differ diff --git a/icons/mob/onmob/items/righthand.dmi b/icons/mob/onmob/items/righthand.dmi index 67bddab9ed..53e5ac222e 100644 Binary files a/icons/mob/onmob/items/righthand.dmi and b/icons/mob/onmob/items/righthand.dmi differ diff --git a/icons/mob/onmob/items/righthand_backpacks.dmi b/icons/mob/onmob/items/righthand_backpacks.dmi index d020b6593c..be5b948dc4 100644 Binary files a/icons/mob/onmob/items/righthand_backpacks.dmi and b/icons/mob/onmob/items/righthand_backpacks.dmi differ diff --git a/icons/mob/onmob/items/righthand_guns.dmi b/icons/mob/onmob/items/righthand_guns.dmi index 2a5ffe7f9b..7e79463988 100644 Binary files a/icons/mob/onmob/items/righthand_guns.dmi and b/icons/mob/onmob/items/righthand_guns.dmi differ diff --git a/icons/mob/onmob/items/righthand_guns_secure.dmi b/icons/mob/onmob/items/righthand_guns_secure.dmi index d2f8c4400d..187c68be15 100644 Binary files a/icons/mob/onmob/items/righthand_guns_secure.dmi and b/icons/mob/onmob/items/righthand_guns_secure.dmi differ diff --git a/icons/mob/onmob/items/righthand_hats.dmi b/icons/mob/onmob/items/righthand_hats.dmi index 9b99d255be..3c26cb6f82 100644 Binary files a/icons/mob/onmob/items/righthand_hats.dmi and b/icons/mob/onmob/items/righthand_hats.dmi differ diff --git a/icons/mob/onmob/items/righthand_holder.dmi b/icons/mob/onmob/items/righthand_holder.dmi index 532eecc96c..7eba3533f8 100644 Binary files a/icons/mob/onmob/items/righthand_holder.dmi and b/icons/mob/onmob/items/righthand_holder.dmi differ diff --git a/icons/mob/onmob/items/righthand_spacesuits.dmi b/icons/mob/onmob/items/righthand_spacesuits.dmi index 7a61362689..cb99d53eac 100644 Binary files a/icons/mob/onmob/items/righthand_spacesuits.dmi and b/icons/mob/onmob/items/righthand_spacesuits.dmi differ diff --git a/icons/mob/onmob/items/righthand_uniforms.dmi b/icons/mob/onmob/items/righthand_uniforms.dmi index 16eecfd1be..583a1c6958 100644 Binary files a/icons/mob/onmob/items/righthand_uniforms.dmi and b/icons/mob/onmob/items/righthand_uniforms.dmi differ diff --git a/icons/mob/onmob/mask.dmi b/icons/mob/onmob/mask.dmi index 71e55181ba..fa7af15efd 100644 Binary files a/icons/mob/onmob/mask.dmi and b/icons/mob/onmob/mask.dmi differ diff --git a/icons/mob/onmob/misc.dmi b/icons/mob/onmob/misc.dmi index e846904e32..c193e425f1 100644 Binary files a/icons/mob/onmob/misc.dmi and b/icons/mob/onmob/misc.dmi differ diff --git a/icons/mob/onmob/modular_armor.dmi b/icons/mob/onmob/modular_armor.dmi index e704cf2728..8b9cdbf03f 100644 Binary files a/icons/mob/onmob/modular_armor.dmi and b/icons/mob/onmob/modular_armor.dmi differ diff --git a/icons/mob/onmob/nanotrasen.dmi b/icons/mob/onmob/nanotrasen.dmi index 3ff306b25d..f646e8d7ab 100644 Binary files a/icons/mob/onmob/nanotrasen.dmi and b/icons/mob/onmob/nanotrasen.dmi differ diff --git a/icons/mob/onmob/onmob_accessories.dmi b/icons/mob/onmob/onmob_accessories.dmi index ed7ee666c1..cf75d889b8 100644 Binary files a/icons/mob/onmob/onmob_accessories.dmi and b/icons/mob/onmob/onmob_accessories.dmi differ diff --git a/icons/mob/onmob/onmob_back.dmi b/icons/mob/onmob/onmob_back.dmi index 6a14e0769a..28543ac9f3 100644 Binary files a/icons/mob/onmob/onmob_back.dmi and b/icons/mob/onmob/onmob_back.dmi differ diff --git a/icons/mob/onmob/onmob_belt.dmi b/icons/mob/onmob/onmob_belt.dmi index eb3c00f1fc..8738668a76 100644 Binary files a/icons/mob/onmob/onmob_belt.dmi and b/icons/mob/onmob/onmob_belt.dmi differ diff --git a/icons/mob/onmob/onmob_belt_mirror.dmi b/icons/mob/onmob/onmob_belt_mirror.dmi index 3ae9a3e52e..47bb8fa4da 100644 Binary files a/icons/mob/onmob/onmob_belt_mirror.dmi and b/icons/mob/onmob/onmob_belt_mirror.dmi differ diff --git a/icons/mob/onmob/onmob_cuff.dmi b/icons/mob/onmob/onmob_cuff.dmi index e846904e32..c193e425f1 100644 Binary files a/icons/mob/onmob/onmob_cuff.dmi and b/icons/mob/onmob/onmob_cuff.dmi differ diff --git a/icons/mob/onmob/onmob_ears.dmi b/icons/mob/onmob/onmob_ears.dmi index fa4cd61d82..989017eda6 100644 Binary files a/icons/mob/onmob/onmob_ears.dmi and b/icons/mob/onmob/onmob_ears.dmi differ diff --git a/icons/mob/onmob/onmob_eyes.dmi b/icons/mob/onmob/onmob_eyes.dmi index 6eae1a5261..462fd95ef9 100644 Binary files a/icons/mob/onmob/onmob_eyes.dmi and b/icons/mob/onmob/onmob_eyes.dmi differ diff --git a/icons/mob/onmob/onmob_feet.dmi b/icons/mob/onmob/onmob_feet.dmi index 7e7ba69b21..62d9d848a8 100644 Binary files a/icons/mob/onmob/onmob_feet.dmi and b/icons/mob/onmob/onmob_feet.dmi differ diff --git a/icons/mob/onmob/onmob_hands.dmi b/icons/mob/onmob/onmob_hands.dmi index c30c6010af..a1774126a6 100644 Binary files a/icons/mob/onmob/onmob_hands.dmi and b/icons/mob/onmob/onmob_hands.dmi differ diff --git a/icons/mob/onmob/onmob_head.dmi b/icons/mob/onmob/onmob_head.dmi index bd03224538..0146d14059 100644 Binary files a/icons/mob/onmob/onmob_head.dmi and b/icons/mob/onmob/onmob_head.dmi differ diff --git a/icons/mob/onmob/onmob_id.dmi b/icons/mob/onmob/onmob_id.dmi index b677a36877..add7f94e8c 100644 Binary files a/icons/mob/onmob/onmob_id.dmi and b/icons/mob/onmob/onmob_id.dmi differ diff --git a/icons/mob/onmob/onmob_mask.dmi b/icons/mob/onmob/onmob_mask.dmi index 6a4d123e07..17081bba21 100644 Binary files a/icons/mob/onmob/onmob_mask.dmi and b/icons/mob/onmob/onmob_mask.dmi differ diff --git a/icons/mob/onmob/onmob_modular_armor.dmi b/icons/mob/onmob/onmob_modular_armor.dmi index 3033eab2cc..51f42014d3 100644 Binary files a/icons/mob/onmob/onmob_modular_armor.dmi and b/icons/mob/onmob/onmob_modular_armor.dmi differ diff --git a/icons/mob/onmob/onmob_rig_back.dmi b/icons/mob/onmob/onmob_rig_back.dmi index af43004e6a..53f703e92d 100644 Binary files a/icons/mob/onmob/onmob_rig_back.dmi and b/icons/mob/onmob/onmob_rig_back.dmi differ diff --git a/icons/mob/onmob/onmob_rig_modules.dmi b/icons/mob/onmob/onmob_rig_modules.dmi index 2330c31177..0700577c40 100644 Binary files a/icons/mob/onmob/onmob_rig_modules.dmi and b/icons/mob/onmob/onmob_rig_modules.dmi differ diff --git a/icons/mob/onmob/onmob_suit.dmi b/icons/mob/onmob/onmob_suit.dmi index 0222ab0935..1c585ca9dd 100644 Binary files a/icons/mob/onmob/onmob_suit.dmi and b/icons/mob/onmob/onmob_suit.dmi differ diff --git a/icons/mob/onmob/onmob_under.dmi b/icons/mob/onmob/onmob_under.dmi index 04f8f24631..28e195ca32 100644 Binary files a/icons/mob/onmob/onmob_under.dmi and b/icons/mob/onmob/onmob_under.dmi differ diff --git a/icons/mob/onmob/onmob_under_corporate.dmi b/icons/mob/onmob/onmob_under_corporate.dmi index f19153dd7d..efc8ed18bc 100644 Binary files a/icons/mob/onmob/onmob_under_corporate.dmi and b/icons/mob/onmob/onmob_under_corporate.dmi differ diff --git a/icons/mob/onmob/onmob_under_pants.dmi b/icons/mob/onmob/onmob_under_pants.dmi index eb449c18ed..1cf658c340 100644 Binary files a/icons/mob/onmob/onmob_under_pants.dmi and b/icons/mob/onmob/onmob_under_pants.dmi differ diff --git a/icons/mob/onmob/pants.dmi b/icons/mob/onmob/pants.dmi index eb449c18ed..1cf658c340 100644 Binary files a/icons/mob/onmob/pants.dmi and b/icons/mob/onmob/pants.dmi differ diff --git a/icons/mob/onmob/rig_back.dmi b/icons/mob/onmob/rig_back.dmi index 893e598947..21c0eeacbe 100644 Binary files a/icons/mob/onmob/rig_back.dmi and b/icons/mob/onmob/rig_back.dmi differ diff --git a/icons/mob/onmob/rig_modules.dmi b/icons/mob/onmob/rig_modules.dmi index fa99ae1355..0796e18d46 100644 Binary files a/icons/mob/onmob/rig_modules.dmi and b/icons/mob/onmob/rig_modules.dmi differ diff --git a/icons/mob/onmob/suit.dmi b/icons/mob/onmob/suit.dmi index 5eb9ccb4b8..0395f2ec62 100644 Binary files a/icons/mob/onmob/suit.dmi and b/icons/mob/onmob/suit.dmi differ diff --git a/icons/mob/onmob/ties.dmi b/icons/mob/onmob/ties.dmi index 00bb9b9885..dd4e86f409 100644 Binary files a/icons/mob/onmob/ties.dmi and b/icons/mob/onmob/ties.dmi differ diff --git a/icons/mob/onmob/uniform.dmi b/icons/mob/onmob/uniform.dmi index 358b34aa55..8c27f7570b 100644 Binary files a/icons/mob/onmob/uniform.dmi and b/icons/mob/onmob/uniform.dmi differ diff --git a/icons/mob/pai.dmi b/icons/mob/pai.dmi index ad45e2dceb..8293995425 100644 Binary files a/icons/mob/pai.dmi and b/icons/mob/pai.dmi differ diff --git a/icons/mob/parrot.dmi b/icons/mob/parrot.dmi index 1a7ffcc8a4..0a56587ea1 100644 Binary files a/icons/mob/parrot.dmi and b/icons/mob/parrot.dmi differ diff --git a/icons/mob/roaper.dmi b/icons/mob/roaper.dmi index 272251ec8a..6094888041 100644 Binary files a/icons/mob/roaper.dmi and b/icons/mob/roaper.dmi differ diff --git a/icons/mob/robots.dmi b/icons/mob/robots.dmi index 34bf9dd061..7d5a8954c8 100644 Binary files a/icons/mob/robots.dmi and b/icons/mob/robots.dmi differ diff --git a/icons/mob/robots_drones.dmi b/icons/mob/robots_drones.dmi index d547d637e9..d013c6ffa2 100644 Binary files a/icons/mob/robots_drones.dmi and b/icons/mob/robots_drones.dmi differ diff --git a/icons/mob/robots_flying.dmi b/icons/mob/robots_flying.dmi index 45cdf4b77d..863393d71c 100644 Binary files a/icons/mob/robots_flying.dmi and b/icons/mob/robots_flying.dmi differ diff --git a/icons/mob/robots_gibs.dmi b/icons/mob/robots_gibs.dmi index ab92dedb14..857c5dde09 100644 Binary files a/icons/mob/robots_gibs.dmi and b/icons/mob/robots_gibs.dmi differ diff --git a/icons/mob/robots_misc.dmi b/icons/mob/robots_misc.dmi index a16ff46085..684bbedb7d 100644 Binary files a/icons/mob/robots_misc.dmi and b/icons/mob/robots_misc.dmi differ diff --git a/icons/mob/screen/midnight.dmi b/icons/mob/screen/midnight.dmi index 975473dc67..37312639b8 100644 Binary files a/icons/mob/screen/midnight.dmi and b/icons/mob/screen/midnight.dmi differ diff --git a/icons/mob/screen/minimalist.dmi b/icons/mob/screen/minimalist.dmi index 80bf315cfd..331ba3b289 100644 Binary files a/icons/mob/screen/minimalist.dmi and b/icons/mob/screen/minimalist.dmi differ diff --git a/icons/mob/screen/old-noborder.dmi b/icons/mob/screen/old-noborder.dmi index 3b3864809c..3294e6228d 100644 Binary files a/icons/mob/screen/old-noborder.dmi and b/icons/mob/screen/old-noborder.dmi differ diff --git a/icons/mob/screen/old.dmi b/icons/mob/screen/old.dmi index 52be9aeed0..cd68835c9a 100644 Binary files a/icons/mob/screen/old.dmi and b/icons/mob/screen/old.dmi differ diff --git a/icons/mob/screen/orange.dmi b/icons/mob/screen/orange.dmi index b098fa11dd..7262c03993 100644 Binary files a/icons/mob/screen/orange.dmi and b/icons/mob/screen/orange.dmi differ diff --git a/icons/mob/screen/pai.dmi b/icons/mob/screen/pai.dmi index a73ff1b8e7..5265f77f70 100644 Binary files a/icons/mob/screen/pai.dmi and b/icons/mob/screen/pai.dmi differ diff --git a/icons/mob/screen/white.dmi b/icons/mob/screen/white.dmi index e4d025e45e..9265b400d3 100644 Binary files a/icons/mob/screen/white.dmi and b/icons/mob/screen/white.dmi differ diff --git a/icons/mob/screen1.dmi b/icons/mob/screen1.dmi index 82da8e5805..ad15c2ab74 100644 Binary files a/icons/mob/screen1.dmi and b/icons/mob/screen1.dmi differ diff --git a/icons/mob/screen1_Midnight.dmi b/icons/mob/screen1_Midnight.dmi index bf7d9a2866..de9e37b0da 100644 Binary files a/icons/mob/screen1_Midnight.dmi and b/icons/mob/screen1_Midnight.dmi differ diff --git a/icons/mob/screen1_Orange.dmi b/icons/mob/screen1_Orange.dmi index 1f48a8e2b7..f2c619d16b 100644 Binary files a/icons/mob/screen1_Orange.dmi and b/icons/mob/screen1_Orange.dmi differ diff --git a/icons/mob/screen1_White.dmi b/icons/mob/screen1_White.dmi index cb3627b484..1fd13dd27b 100644 Binary files a/icons/mob/screen1_White.dmi and b/icons/mob/screen1_White.dmi differ diff --git a/icons/mob/screen1_alien.dmi b/icons/mob/screen1_alien.dmi index ca11c4254d..ce54e37942 100644 Binary files a/icons/mob/screen1_alien.dmi and b/icons/mob/screen1_alien.dmi differ diff --git a/icons/mob/screen1_construct.dmi b/icons/mob/screen1_construct.dmi index 67a37ccd73..419a6adfe7 100644 Binary files a/icons/mob/screen1_construct.dmi and b/icons/mob/screen1_construct.dmi differ diff --git a/icons/mob/screen1_health.dmi b/icons/mob/screen1_health.dmi index 9cd7a41342..03b83b697b 100644 Binary files a/icons/mob/screen1_health.dmi and b/icons/mob/screen1_health.dmi differ diff --git a/icons/mob/screen1_robot.dmi b/icons/mob/screen1_robot.dmi index d8ea718e6d..791e5b76d4 100644 Binary files a/icons/mob/screen1_robot.dmi and b/icons/mob/screen1_robot.dmi differ diff --git a/icons/mob/screen_chorus_big.dmi b/icons/mob/screen_chorus_big.dmi index ff3320b77f..7cde786620 100644 Binary files a/icons/mob/screen_chorus_big.dmi and b/icons/mob/screen_chorus_big.dmi differ diff --git a/icons/mob/screen_full.dmi b/icons/mob/screen_full.dmi index e8602a41ce..4feda14c4e 100644 Binary files a/icons/mob/screen_full.dmi and b/icons/mob/screen_full.dmi differ diff --git a/icons/mob/screen_gen.dmi b/icons/mob/screen_gen.dmi index 436fb1169a..50a3616991 100644 Binary files a/icons/mob/screen_gen.dmi and b/icons/mob/screen_gen.dmi differ diff --git a/icons/mob/screen_phenomena.dmi b/icons/mob/screen_phenomena.dmi index f1d05fa973..011017799f 100644 Binary files a/icons/mob/screen_phenomena.dmi and b/icons/mob/screen_phenomena.dmi differ diff --git a/icons/mob/screen_spells.dmi b/icons/mob/screen_spells.dmi index 2df0f5cc9b..9f35f698c7 100644 Binary files a/icons/mob/screen_spells.dmi and b/icons/mob/screen_spells.dmi differ diff --git a/icons/mob/simple_animal/abominable_infestation/32x32.dmi b/icons/mob/simple_animal/abominable_infestation/32x32.dmi index 55a492853b..9f1544ccc9 100644 Binary files a/icons/mob/simple_animal/abominable_infestation/32x32.dmi and b/icons/mob/simple_animal/abominable_infestation/32x32.dmi differ diff --git a/icons/mob/simple_animal/abominable_infestation/32x48.dmi b/icons/mob/simple_animal/abominable_infestation/32x48.dmi index 52ea334418..094dc37891 100644 Binary files a/icons/mob/simple_animal/abominable_infestation/32x48.dmi and b/icons/mob/simple_animal/abominable_infestation/32x48.dmi differ diff --git a/icons/mob/simple_animal/abominable_infestation/48x48.dmi b/icons/mob/simple_animal/abominable_infestation/48x48.dmi index 9845a10164..29b56d0eae 100644 Binary files a/icons/mob/simple_animal/abominable_infestation/48x48.dmi and b/icons/mob/simple_animal/abominable_infestation/48x48.dmi differ diff --git a/icons/mob/simple_animal/abominable_infestation/64x64.dmi b/icons/mob/simple_animal/abominable_infestation/64x64.dmi index 252b601b75..4faeb11068 100644 Binary files a/icons/mob/simple_animal/abominable_infestation/64x64.dmi and b/icons/mob/simple_animal/abominable_infestation/64x64.dmi differ diff --git a/icons/mob/simple_animal/animal.dmi b/icons/mob/simple_animal/animal.dmi index 60cccf825c..5dcf3223e5 100644 Binary files a/icons/mob/simple_animal/animal.dmi and b/icons/mob/simple_animal/animal.dmi differ diff --git a/icons/mob/simple_animal/antlion.dmi b/icons/mob/simple_animal/antlion.dmi index 6ae64b028d..6ada742ae9 100644 Binary files a/icons/mob/simple_animal/antlion.dmi and b/icons/mob/simple_animal/antlion.dmi differ diff --git a/icons/mob/simple_animal/aquatic.dmi b/icons/mob/simple_animal/aquatic.dmi index a5d06a467a..6fad3edbd9 100644 Binary files a/icons/mob/simple_animal/aquatic.dmi and b/icons/mob/simple_animal/aquatic.dmi differ diff --git a/icons/mob/simple_animal/ascent.dmi b/icons/mob/simple_animal/ascent.dmi index 1d8e1e729f..27b5366442 100644 Binary files a/icons/mob/simple_animal/ascent.dmi and b/icons/mob/simple_animal/ascent.dmi differ diff --git a/icons/mob/simple_animal/bats.dmi b/icons/mob/simple_animal/bats.dmi index 7446693507..b78e8792bc 100644 Binary files a/icons/mob/simple_animal/bats.dmi and b/icons/mob/simple_animal/bats.dmi differ diff --git a/icons/mob/simple_animal/biocraps.dmi b/icons/mob/simple_animal/biocraps.dmi index 786ff05f51..03090622ee 100644 Binary files a/icons/mob/simple_animal/biocraps.dmi and b/icons/mob/simple_animal/biocraps.dmi differ diff --git a/icons/mob/simple_animal/carp.dmi b/icons/mob/simple_animal/carp.dmi index 5f4b56fbb9..cffa1fc1af 100644 Binary files a/icons/mob/simple_animal/carp.dmi and b/icons/mob/simple_animal/carp.dmi differ diff --git a/icons/mob/simple_animal/corgi_back.dmi b/icons/mob/simple_animal/corgi_back.dmi index 81626df033..745a6406ac 100644 Binary files a/icons/mob/simple_animal/corgi_back.dmi and b/icons/mob/simple_animal/corgi_back.dmi differ diff --git a/icons/mob/simple_animal/corgi_head.dmi b/icons/mob/simple_animal/corgi_head.dmi index 105bdf4750..7be0649ea1 100644 Binary files a/icons/mob/simple_animal/corgi_head.dmi and b/icons/mob/simple_animal/corgi_head.dmi differ diff --git a/icons/mob/simple_animal/critter.dmi b/icons/mob/simple_animal/critter.dmi index 043b388e90..9ba072fcbf 100644 Binary files a/icons/mob/simple_animal/critter.dmi and b/icons/mob/simple_animal/critter.dmi differ diff --git a/icons/mob/simple_animal/crow.dmi b/icons/mob/simple_animal/crow.dmi index 8cefef2a26..facb62a542 100644 Binary files a/icons/mob/simple_animal/crow.dmi and b/icons/mob/simple_animal/crow.dmi differ diff --git a/icons/mob/simple_animal/drake.dmi b/icons/mob/simple_animal/drake.dmi index 8eeaf45b2b..c345059b63 100644 Binary files a/icons/mob/simple_animal/drake.dmi and b/icons/mob/simple_animal/drake.dmi differ diff --git a/icons/mob/simple_animal/goose.dmi b/icons/mob/simple_animal/goose.dmi index cc5e3039e3..fde2aa20b4 100644 Binary files a/icons/mob/simple_animal/goose.dmi and b/icons/mob/simple_animal/goose.dmi differ diff --git a/icons/mob/simple_animal/hivebot.dmi b/icons/mob/simple_animal/hivebot.dmi index cb13996361..a730bfc30b 100644 Binary files a/icons/mob/simple_animal/hivebot.dmi and b/icons/mob/simple_animal/hivebot.dmi differ diff --git a/icons/mob/simple_animal/human_enemies.dmi b/icons/mob/simple_animal/human_enemies.dmi index fa5fa04458..f0b28756f1 100644 Binary files a/icons/mob/simple_animal/human_enemies.dmi and b/icons/mob/simple_animal/human_enemies.dmi differ diff --git a/icons/mob/simple_animal/juvenile_space_whale.dmi b/icons/mob/simple_animal/juvenile_space_whale.dmi index 8f54eb958b..9c81e233d1 100644 Binary files a/icons/mob/simple_animal/juvenile_space_whale.dmi and b/icons/mob/simple_animal/juvenile_space_whale.dmi differ diff --git a/icons/mob/simple_animal/king_of_goats.dmi b/icons/mob/simple_animal/king_of_goats.dmi index 69b67ff2c4..d37d1d8840 100644 Binary files a/icons/mob/simple_animal/king_of_goats.dmi and b/icons/mob/simple_animal/king_of_goats.dmi differ diff --git a/icons/mob/simple_animal/livestock.dmi b/icons/mob/simple_animal/livestock.dmi index 538e14b1ea..3affc7bf03 100644 Binary files a/icons/mob/simple_animal/livestock.dmi and b/icons/mob/simple_animal/livestock.dmi differ diff --git a/icons/mob/simple_animal/megabot.dmi b/icons/mob/simple_animal/megabot.dmi index 0d0318bdb3..95e6e9bdbb 100644 Binary files a/icons/mob/simple_animal/megabot.dmi and b/icons/mob/simple_animal/megabot.dmi differ diff --git a/icons/mob/simple_animal/megaleech.dmi b/icons/mob/simple_animal/megaleech.dmi index 174ad10865..91b5476a2f 100644 Binary files a/icons/mob/simple_animal/megaleech.dmi and b/icons/mob/simple_animal/megaleech.dmi differ diff --git a/icons/mob/simple_animal/nightmaremonsters.dmi b/icons/mob/simple_animal/nightmaremonsters.dmi index 2af0c01e28..169f553cfa 100644 Binary files a/icons/mob/simple_animal/nightmaremonsters.dmi and b/icons/mob/simple_animal/nightmaremonsters.dmi differ diff --git a/icons/mob/simple_animal/parrot.dmi b/icons/mob/simple_animal/parrot.dmi index 1fc62b5f84..67d769e0fc 100644 Binary files a/icons/mob/simple_animal/parrot.dmi and b/icons/mob/simple_animal/parrot.dmi differ diff --git a/icons/mob/simple_animal/possum.dmi b/icons/mob/simple_animal/possum.dmi index dac7e7e7c6..81f831e3d1 100644 Binary files a/icons/mob/simple_animal/possum.dmi and b/icons/mob/simple_animal/possum.dmi differ diff --git a/icons/mob/simple_animal/random_monster.dmi b/icons/mob/simple_animal/random_monster.dmi index ed6df3de9c..184d9e396c 100644 Binary files a/icons/mob/simple_animal/random_monster.dmi and b/icons/mob/simple_animal/random_monster.dmi differ diff --git a/icons/mob/simple_animal/slimes.dmi b/icons/mob/simple_animal/slimes.dmi index 3e6b915efa..b661e27269 100644 Binary files a/icons/mob/simple_animal/slimes.dmi and b/icons/mob/simple_animal/slimes.dmi differ diff --git a/icons/mob/simple_animal/space_whale.dmi b/icons/mob/simple_animal/space_whale.dmi index d8bb179561..dd4e5ee9e0 100644 Binary files a/icons/mob/simple_animal/space_whale.dmi and b/icons/mob/simple_animal/space_whale.dmi differ diff --git a/icons/mob/simple_animal/spaceshark.dmi b/icons/mob/simple_animal/spaceshark.dmi index 494b4a19ef..8091b50399 100644 Binary files a/icons/mob/simple_animal/spaceshark.dmi and b/icons/mob/simple_animal/spaceshark.dmi differ diff --git a/icons/mob/simple_animal/spider.dmi b/icons/mob/simple_animal/spider.dmi index d870c627c5..086a70c0a2 100644 Binary files a/icons/mob/simple_animal/spider.dmi and b/icons/mob/simple_animal/spider.dmi differ diff --git a/icons/mob/simple_animal/white_night.dmi b/icons/mob/simple_animal/white_night.dmi index 087e6ddd6f..7d59b306ac 100644 Binary files a/icons/mob/simple_animal/white_night.dmi and b/icons/mob/simple_animal/white_night.dmi differ diff --git a/icons/mob/slimes.dmi b/icons/mob/slimes.dmi index 3e6b915efa..b661e27269 100644 Binary files a/icons/mob/slimes.dmi and b/icons/mob/slimes.dmi differ diff --git a/icons/mob/spaceshark.dmi b/icons/mob/spaceshark.dmi index 615fd87a01..3a34b48c5e 100644 Binary files a/icons/mob/spaceshark.dmi and b/icons/mob/spaceshark.dmi differ diff --git a/icons/mob/species/adherent/onmob_accessories_adherent.dmi b/icons/mob/species/adherent/onmob_accessories_adherent.dmi index 05e74e4c85..859a21d33d 100644 Binary files a/icons/mob/species/adherent/onmob_accessories_adherent.dmi and b/icons/mob/species/adherent/onmob_accessories_adherent.dmi differ diff --git a/icons/mob/species/adherent/onmob_under_adherent.dmi b/icons/mob/species/adherent/onmob_under_adherent.dmi index 3db3c7d921..fab5ec080b 100644 Binary files a/icons/mob/species/adherent/onmob_under_adherent.dmi and b/icons/mob/species/adherent/onmob_under_adherent.dmi differ diff --git a/icons/mob/species/bogani/back.dmi b/icons/mob/species/bogani/back.dmi index 7fe161ead8..92efb49d80 100644 Binary files a/icons/mob/species/bogani/back.dmi and b/icons/mob/species/bogani/back.dmi differ diff --git a/icons/mob/species/bogani/helmet.dmi b/icons/mob/species/bogani/helmet.dmi index 492f051118..3eaf7e0d0b 100644 Binary files a/icons/mob/species/bogani/helmet.dmi and b/icons/mob/species/bogani/helmet.dmi differ diff --git a/icons/mob/species/bogani/suits.dmi b/icons/mob/species/bogani/suits.dmi index 1ce7357d11..4bb976a0f8 100644 Binary files a/icons/mob/species/bogani/suits.dmi and b/icons/mob/species/bogani/suits.dmi differ diff --git a/icons/mob/species/bogani/uniform.dmi b/icons/mob/species/bogani/uniform.dmi index 5647077bbe..f7ad09f133 100644 Binary files a/icons/mob/species/bogani/uniform.dmi and b/icons/mob/species/bogani/uniform.dmi differ diff --git a/icons/mob/species/egyno/back.dmi b/icons/mob/species/egyno/back.dmi index 96f45ed9fb..2e480a0970 100644 Binary files a/icons/mob/species/egyno/back.dmi and b/icons/mob/species/egyno/back.dmi differ diff --git a/icons/mob/species/mantid/onmob_back_alate.dmi b/icons/mob/species/mantid/onmob_back_alate.dmi index 1c5691a7fd..affc2ee8e7 100644 Binary files a/icons/mob/species/mantid/onmob_back_alate.dmi and b/icons/mob/species/mantid/onmob_back_alate.dmi differ diff --git a/icons/mob/species/mantid/onmob_back_gyne.dmi b/icons/mob/species/mantid/onmob_back_gyne.dmi index 5efb585852..a740361fc9 100644 Binary files a/icons/mob/species/mantid/onmob_back_gyne.dmi and b/icons/mob/species/mantid/onmob_back_gyne.dmi differ diff --git a/icons/mob/species/mantid/onmob_gloves_alate.dmi b/icons/mob/species/mantid/onmob_gloves_alate.dmi index d6d5b79607..0a885344f4 100644 Binary files a/icons/mob/species/mantid/onmob_gloves_alate.dmi and b/icons/mob/species/mantid/onmob_gloves_alate.dmi differ diff --git a/icons/mob/species/mantid/onmob_gloves_gyne.dmi b/icons/mob/species/mantid/onmob_gloves_gyne.dmi index ea27e5c48e..6867bf640c 100644 Binary files a/icons/mob/species/mantid/onmob_gloves_gyne.dmi and b/icons/mob/species/mantid/onmob_gloves_gyne.dmi differ diff --git a/icons/mob/species/mantid/onmob_head_alate.dmi b/icons/mob/species/mantid/onmob_head_alate.dmi index 92da94d97e..b21b5bd5c6 100644 Binary files a/icons/mob/species/mantid/onmob_head_alate.dmi and b/icons/mob/species/mantid/onmob_head_alate.dmi differ diff --git a/icons/mob/species/mantid/onmob_head_gyne.dmi b/icons/mob/species/mantid/onmob_head_gyne.dmi index 729b7722d8..99c42e7356 100644 Binary files a/icons/mob/species/mantid/onmob_head_gyne.dmi and b/icons/mob/species/mantid/onmob_head_gyne.dmi differ diff --git a/icons/mob/species/mantid/onmob_lefthand_doodads_alate.dmi b/icons/mob/species/mantid/onmob_lefthand_doodads_alate.dmi index a830e50dce..5faffa6ebc 100644 Binary files a/icons/mob/species/mantid/onmob_lefthand_doodads_alate.dmi and b/icons/mob/species/mantid/onmob_lefthand_doodads_alate.dmi differ diff --git a/icons/mob/species/mantid/onmob_lefthand_doodads_gyne.dmi b/icons/mob/species/mantid/onmob_lefthand_doodads_gyne.dmi index ba8cfd0481..2a245d48d3 100644 Binary files a/icons/mob/species/mantid/onmob_lefthand_doodads_gyne.dmi and b/icons/mob/species/mantid/onmob_lefthand_doodads_gyne.dmi differ diff --git a/icons/mob/species/mantid/onmob_lefthand_particle_rifle_alate.dmi b/icons/mob/species/mantid/onmob_lefthand_particle_rifle_alate.dmi index 9a71d7e697..2e65fb23e6 100644 Binary files a/icons/mob/species/mantid/onmob_lefthand_particle_rifle_alate.dmi and b/icons/mob/species/mantid/onmob_lefthand_particle_rifle_alate.dmi differ diff --git a/icons/mob/species/mantid/onmob_lefthand_particle_rifle_gyne.dmi b/icons/mob/species/mantid/onmob_lefthand_particle_rifle_gyne.dmi index 07c388fb0b..1a2971c119 100644 Binary files a/icons/mob/species/mantid/onmob_lefthand_particle_rifle_gyne.dmi and b/icons/mob/species/mantid/onmob_lefthand_particle_rifle_gyne.dmi differ diff --git a/icons/mob/species/mantid/onmob_mask_alate.dmi b/icons/mob/species/mantid/onmob_mask_alate.dmi index a930154c5d..a5b49feabd 100644 Binary files a/icons/mob/species/mantid/onmob_mask_alate.dmi and b/icons/mob/species/mantid/onmob_mask_alate.dmi differ diff --git a/icons/mob/species/mantid/onmob_righthand_doodads_alate.dmi b/icons/mob/species/mantid/onmob_righthand_doodads_alate.dmi index f5a59a8360..9c3ec3d3c2 100644 Binary files a/icons/mob/species/mantid/onmob_righthand_doodads_alate.dmi and b/icons/mob/species/mantid/onmob_righthand_doodads_alate.dmi differ diff --git a/icons/mob/species/mantid/onmob_righthand_doodads_gyne.dmi b/icons/mob/species/mantid/onmob_righthand_doodads_gyne.dmi index dacc441f5d..953997a40d 100644 Binary files a/icons/mob/species/mantid/onmob_righthand_doodads_gyne.dmi and b/icons/mob/species/mantid/onmob_righthand_doodads_gyne.dmi differ diff --git a/icons/mob/species/mantid/onmob_righthand_particle_rifle_alate.dmi b/icons/mob/species/mantid/onmob_righthand_particle_rifle_alate.dmi index 66d596749c..cab433c570 100644 Binary files a/icons/mob/species/mantid/onmob_righthand_particle_rifle_alate.dmi and b/icons/mob/species/mantid/onmob_righthand_particle_rifle_alate.dmi differ diff --git a/icons/mob/species/mantid/onmob_righthand_particle_rifle_gyne.dmi b/icons/mob/species/mantid/onmob_righthand_particle_rifle_gyne.dmi index abc4675858..7583f9897d 100644 Binary files a/icons/mob/species/mantid/onmob_righthand_particle_rifle_gyne.dmi and b/icons/mob/species/mantid/onmob_righthand_particle_rifle_gyne.dmi differ diff --git a/icons/mob/species/mantid/onmob_shoes_alate.dmi b/icons/mob/species/mantid/onmob_shoes_alate.dmi index cd7a7c62a0..6a38bf8ec1 100644 Binary files a/icons/mob/species/mantid/onmob_shoes_alate.dmi and b/icons/mob/species/mantid/onmob_shoes_alate.dmi differ diff --git a/icons/mob/species/mantid/onmob_shoes_gyne.dmi b/icons/mob/species/mantid/onmob_shoes_gyne.dmi index 85bc5febe1..b10ee2294c 100644 Binary files a/icons/mob/species/mantid/onmob_shoes_gyne.dmi and b/icons/mob/species/mantid/onmob_shoes_gyne.dmi differ diff --git a/icons/mob/species/mantid/onmob_suit_alate.dmi b/icons/mob/species/mantid/onmob_suit_alate.dmi index 44f3a9660c..904b7c7c9e 100644 Binary files a/icons/mob/species/mantid/onmob_suit_alate.dmi and b/icons/mob/species/mantid/onmob_suit_alate.dmi differ diff --git a/icons/mob/species/mantid/onmob_suit_gyne.dmi b/icons/mob/species/mantid/onmob_suit_gyne.dmi index b9843127cd..640b4a7d07 100644 Binary files a/icons/mob/species/mantid/onmob_suit_gyne.dmi and b/icons/mob/species/mantid/onmob_suit_gyne.dmi differ diff --git a/icons/mob/species/mantid/onmob_under_alate.dmi b/icons/mob/species/mantid/onmob_under_alate.dmi index ac7431c316..e3ae758eb9 100644 Binary files a/icons/mob/species/mantid/onmob_under_alate.dmi and b/icons/mob/species/mantid/onmob_under_alate.dmi differ diff --git a/icons/mob/species/mantid/onmob_under_gyne.dmi b/icons/mob/species/mantid/onmob_under_gyne.dmi index c506b01412..fcfd3071dd 100644 Binary files a/icons/mob/species/mantid/onmob_under_gyne.dmi and b/icons/mob/species/mantid/onmob_under_gyne.dmi differ diff --git a/icons/mob/species/monkey/onmob_accessories_monkey.dmi b/icons/mob/species/monkey/onmob_accessories_monkey.dmi index 6055ae9c39..319ce269e0 100644 Binary files a/icons/mob/species/monkey/onmob_accessories_monkey.dmi and b/icons/mob/species/monkey/onmob_accessories_monkey.dmi differ diff --git a/icons/mob/species/monkey/onmob_under_monkey.dmi b/icons/mob/species/monkey/onmob_under_monkey.dmi index f714af376d..c842505389 100644 Binary files a/icons/mob/species/monkey/onmob_under_monkey.dmi and b/icons/mob/species/monkey/onmob_under_monkey.dmi differ diff --git a/icons/mob/species/monkey/ties.dmi b/icons/mob/species/monkey/ties.dmi index 6055ae9c39..319ce269e0 100644 Binary files a/icons/mob/species/monkey/ties.dmi and b/icons/mob/species/monkey/ties.dmi differ diff --git a/icons/mob/species/monkey/uniform.dmi b/icons/mob/species/monkey/uniform.dmi index f714af376d..c842505389 100644 Binary files a/icons/mob/species/monkey/uniform.dmi and b/icons/mob/species/monkey/uniform.dmi differ diff --git a/icons/mob/species/nabber/gloves.dmi b/icons/mob/species/nabber/gloves.dmi index f3127e60c2..ed2cc74b32 100644 Binary files a/icons/mob/species/nabber/gloves.dmi and b/icons/mob/species/nabber/gloves.dmi differ diff --git a/icons/mob/species/nabber/msq/onmob_back_msq.dmi b/icons/mob/species/nabber/msq/onmob_back_msq.dmi index dbc8a77094..c0d69be6d8 100644 Binary files a/icons/mob/species/nabber/msq/onmob_back_msq.dmi and b/icons/mob/species/nabber/msq/onmob_back_msq.dmi differ diff --git a/icons/mob/species/nabber/msq/onmob_hands_msq.dmi b/icons/mob/species/nabber/msq/onmob_hands_msq.dmi index 2abeb95e2e..882d14591e 100644 Binary files a/icons/mob/species/nabber/msq/onmob_hands_msq.dmi and b/icons/mob/species/nabber/msq/onmob_hands_msq.dmi differ diff --git a/icons/mob/species/nabber/msq/onmob_head_msq.dmi b/icons/mob/species/nabber/msq/onmob_head_msq.dmi index 697e465d7f..f1f8ef9131 100644 Binary files a/icons/mob/species/nabber/msq/onmob_head_msq.dmi and b/icons/mob/species/nabber/msq/onmob_head_msq.dmi differ diff --git a/icons/mob/species/nabber/msq/onmob_lefthand_particle_rifle.dmi b/icons/mob/species/nabber/msq/onmob_lefthand_particle_rifle.dmi index a814e10049..4f4cf123e6 100644 Binary files a/icons/mob/species/nabber/msq/onmob_lefthand_particle_rifle.dmi and b/icons/mob/species/nabber/msq/onmob_lefthand_particle_rifle.dmi differ diff --git a/icons/mob/species/nabber/msq/onmob_mask_msq.dmi b/icons/mob/species/nabber/msq/onmob_mask_msq.dmi index 6cd5e0b0fb..dd6b32b513 100644 Binary files a/icons/mob/species/nabber/msq/onmob_mask_msq.dmi and b/icons/mob/species/nabber/msq/onmob_mask_msq.dmi differ diff --git a/icons/mob/species/nabber/msq/onmob_righthand_particle_rifle.dmi b/icons/mob/species/nabber/msq/onmob_righthand_particle_rifle.dmi index 931aa75bfc..d874674454 100644 Binary files a/icons/mob/species/nabber/msq/onmob_righthand_particle_rifle.dmi and b/icons/mob/species/nabber/msq/onmob_righthand_particle_rifle.dmi differ diff --git a/icons/mob/species/nabber/msq/onmob_suit_msq.dmi b/icons/mob/species/nabber/msq/onmob_suit_msq.dmi index 844fe09c3d..33a81d469f 100644 Binary files a/icons/mob/species/nabber/msq/onmob_suit_msq.dmi and b/icons/mob/species/nabber/msq/onmob_suit_msq.dmi differ diff --git a/icons/mob/species/nabber/msq/onmob_under_msq.dmi b/icons/mob/species/nabber/msq/onmob_under_msq.dmi index 6d770ddfbd..675f788bbe 100644 Binary files a/icons/mob/species/nabber/msq/onmob_under_msq.dmi and b/icons/mob/species/nabber/msq/onmob_under_msq.dmi differ diff --git a/icons/mob/species/nabber/onmob_accessories_gas.dmi b/icons/mob/species/nabber/onmob_accessories_gas.dmi index 90d5355875..7c7f444b6b 100644 Binary files a/icons/mob/species/nabber/onmob_accessories_gas.dmi and b/icons/mob/species/nabber/onmob_accessories_gas.dmi differ diff --git a/icons/mob/species/nabber/onmob_back_gas.dmi b/icons/mob/species/nabber/onmob_back_gas.dmi index 623e01fa47..7d0f9ea7ed 100644 Binary files a/icons/mob/species/nabber/onmob_back_gas.dmi and b/icons/mob/species/nabber/onmob_back_gas.dmi differ diff --git a/icons/mob/species/nabber/onmob_hands_gas.dmi b/icons/mob/species/nabber/onmob_hands_gas.dmi index 442a1e7bab..bfae600558 100644 Binary files a/icons/mob/species/nabber/onmob_hands_gas.dmi and b/icons/mob/species/nabber/onmob_hands_gas.dmi differ diff --git a/icons/mob/species/nabber/onmob_head_gas.dmi b/icons/mob/species/nabber/onmob_head_gas.dmi index 1836cd0a96..a145ef645a 100644 Binary files a/icons/mob/species/nabber/onmob_head_gas.dmi and b/icons/mob/species/nabber/onmob_head_gas.dmi differ diff --git a/icons/mob/species/nabber/onmob_lefthand_particle_rifle.dmi b/icons/mob/species/nabber/onmob_lefthand_particle_rifle.dmi index 2b520e8f32..5f8fe5e3b3 100644 Binary files a/icons/mob/species/nabber/onmob_lefthand_particle_rifle.dmi and b/icons/mob/species/nabber/onmob_lefthand_particle_rifle.dmi differ diff --git a/icons/mob/species/nabber/onmob_righthand_particle_rifle.dmi b/icons/mob/species/nabber/onmob_righthand_particle_rifle.dmi index 583a6783fc..92835a2c7c 100644 Binary files a/icons/mob/species/nabber/onmob_righthand_particle_rifle.dmi and b/icons/mob/species/nabber/onmob_righthand_particle_rifle.dmi differ diff --git a/icons/mob/species/nabber/onmob_suit_gas.dmi b/icons/mob/species/nabber/onmob_suit_gas.dmi index de9ca34343..767b8d6adf 100644 Binary files a/icons/mob/species/nabber/onmob_suit_gas.dmi and b/icons/mob/species/nabber/onmob_suit_gas.dmi differ diff --git a/icons/mob/species/nabber/onmob_under_gas.dmi b/icons/mob/species/nabber/onmob_under_gas.dmi index 3bff89b1b6..05bcd8a29a 100644 Binary files a/icons/mob/species/nabber/onmob_under_gas.dmi and b/icons/mob/species/nabber/onmob_under_gas.dmi differ diff --git a/icons/mob/species/nabber/ties.dmi b/icons/mob/species/nabber/ties.dmi index 90d5355875..7c7f444b6b 100644 Binary files a/icons/mob/species/nabber/ties.dmi and b/icons/mob/species/nabber/ties.dmi differ diff --git a/icons/mob/species/nabber/uniform.dmi b/icons/mob/species/nabber/uniform.dmi index 3bff89b1b6..05bcd8a29a 100644 Binary files a/icons/mob/species/nabber/uniform.dmi and b/icons/mob/species/nabber/uniform.dmi differ diff --git a/icons/mob/species/skrell/helmet.dmi b/icons/mob/species/skrell/helmet.dmi index d8eb315be2..2dbb397e73 100644 Binary files a/icons/mob/species/skrell/helmet.dmi and b/icons/mob/species/skrell/helmet.dmi differ diff --git a/icons/mob/species/skrell/onmob_back_rig_skrell.dmi b/icons/mob/species/skrell/onmob_back_rig_skrell.dmi index 9c61a0c936..3e1fc66310 100644 Binary files a/icons/mob/species/skrell/onmob_back_rig_skrell.dmi and b/icons/mob/species/skrell/onmob_back_rig_skrell.dmi differ diff --git a/icons/mob/species/skrell/onmob_chest_rig_skrell.dmi b/icons/mob/species/skrell/onmob_chest_rig_skrell.dmi index 977f94950d..d12c6e04d7 100644 Binary files a/icons/mob/species/skrell/onmob_chest_rig_skrell.dmi and b/icons/mob/species/skrell/onmob_chest_rig_skrell.dmi differ diff --git a/icons/mob/species/skrell/onmob_feet_rig_skrell.dmi b/icons/mob/species/skrell/onmob_feet_rig_skrell.dmi index c426b4ba1d..4eae006863 100644 Binary files a/icons/mob/species/skrell/onmob_feet_rig_skrell.dmi and b/icons/mob/species/skrell/onmob_feet_rig_skrell.dmi differ diff --git a/icons/mob/species/skrell/onmob_hands_rig_skrell.dmi b/icons/mob/species/skrell/onmob_hands_rig_skrell.dmi index b6c626c42c..48b838d54b 100644 Binary files a/icons/mob/species/skrell/onmob_hands_rig_skrell.dmi and b/icons/mob/species/skrell/onmob_hands_rig_skrell.dmi differ diff --git a/icons/mob/species/skrell/onmob_head_rig_skrell.dmi b/icons/mob/species/skrell/onmob_head_rig_skrell.dmi index 4603b25094..78098c296e 100644 Binary files a/icons/mob/species/skrell/onmob_head_rig_skrell.dmi and b/icons/mob/species/skrell/onmob_head_rig_skrell.dmi differ diff --git a/icons/mob/species/skrell/onmob_head_skrell.dmi b/icons/mob/species/skrell/onmob_head_skrell.dmi index 0940760c6e..08370cae84 100644 Binary files a/icons/mob/species/skrell/onmob_head_skrell.dmi and b/icons/mob/species/skrell/onmob_head_skrell.dmi differ diff --git a/icons/mob/species/skrell/onmob_suit_skrell.dmi b/icons/mob/species/skrell/onmob_suit_skrell.dmi index a6e755173b..2fef8ad9a3 100644 Binary files a/icons/mob/species/skrell/onmob_suit_skrell.dmi and b/icons/mob/species/skrell/onmob_suit_skrell.dmi differ diff --git a/icons/mob/species/skrell/suit.dmi b/icons/mob/species/skrell/suit.dmi index b35f9bb5fa..4070a49bee 100644 Binary files a/icons/mob/species/skrell/suit.dmi and b/icons/mob/species/skrell/suit.dmi differ diff --git a/icons/mob/species/tajaran/helmet.dmi b/icons/mob/species/tajaran/helmet.dmi index 774f63a28d..33a7c49e8c 100644 Binary files a/icons/mob/species/tajaran/helmet.dmi and b/icons/mob/species/tajaran/helmet.dmi differ diff --git a/icons/mob/species/tajaran/mask.dmi b/icons/mob/species/tajaran/mask.dmi index f5522a8e5a..e7cc9f20bc 100644 Binary files a/icons/mob/species/tajaran/mask.dmi and b/icons/mob/species/tajaran/mask.dmi differ diff --git a/icons/mob/species/tajaran/suit.dmi b/icons/mob/species/tajaran/suit.dmi index 04ce34fc3f..727612ebc0 100644 Binary files a/icons/mob/species/tajaran/suit.dmi and b/icons/mob/species/tajaran/suit.dmi differ diff --git a/icons/mob/species/tajaran/tail.dmi b/icons/mob/species/tajaran/tail.dmi index 62a432ae76..57b538e622 100644 Binary files a/icons/mob/species/tajaran/tail.dmi and b/icons/mob/species/tajaran/tail.dmi differ diff --git a/icons/mob/species/tajaran/uniform.dmi b/icons/mob/species/tajaran/uniform.dmi index 2d391567b2..6e1f3aacd6 100644 Binary files a/icons/mob/species/tajaran/uniform.dmi and b/icons/mob/species/tajaran/uniform.dmi differ diff --git a/icons/mob/species/unathi/generated/onmob_accessories_unathi.dmi b/icons/mob/species/unathi/generated/onmob_accessories_unathi.dmi index f8b8c0a789..3026a3b423 100644 Binary files a/icons/mob/species/unathi/generated/onmob_accessories_unathi.dmi and b/icons/mob/species/unathi/generated/onmob_accessories_unathi.dmi differ diff --git a/icons/mob/species/unathi/generated/onmob_back_unathi.dmi b/icons/mob/species/unathi/generated/onmob_back_unathi.dmi index ab70a76625..c92e2dca34 100644 Binary files a/icons/mob/species/unathi/generated/onmob_back_unathi.dmi and b/icons/mob/species/unathi/generated/onmob_back_unathi.dmi differ diff --git a/icons/mob/species/unathi/generated/onmob_belt_mirror_unathi.dmi b/icons/mob/species/unathi/generated/onmob_belt_mirror_unathi.dmi index f5b9e961ab..af6d85c561 100644 Binary files a/icons/mob/species/unathi/generated/onmob_belt_mirror_unathi.dmi and b/icons/mob/species/unathi/generated/onmob_belt_mirror_unathi.dmi differ diff --git a/icons/mob/species/unathi/generated/onmob_belt_unathi.dmi b/icons/mob/species/unathi/generated/onmob_belt_unathi.dmi index c0c6d6b9ef..ffef354be2 100644 Binary files a/icons/mob/species/unathi/generated/onmob_belt_unathi.dmi and b/icons/mob/species/unathi/generated/onmob_belt_unathi.dmi differ diff --git a/icons/mob/species/unathi/generated/onmob_ears_unathi.dmi b/icons/mob/species/unathi/generated/onmob_ears_unathi.dmi index 412e8982f9..34dd255050 100644 Binary files a/icons/mob/species/unathi/generated/onmob_ears_unathi.dmi and b/icons/mob/species/unathi/generated/onmob_ears_unathi.dmi differ diff --git a/icons/mob/species/unathi/generated/onmob_eyes_unathi.dmi b/icons/mob/species/unathi/generated/onmob_eyes_unathi.dmi index 653cafce7a..94c9fca149 100644 Binary files a/icons/mob/species/unathi/generated/onmob_eyes_unathi.dmi and b/icons/mob/species/unathi/generated/onmob_eyes_unathi.dmi differ diff --git a/icons/mob/species/unathi/generated/onmob_feet_unathi.dmi b/icons/mob/species/unathi/generated/onmob_feet_unathi.dmi index 048a908424..b9c497f99b 100644 Binary files a/icons/mob/species/unathi/generated/onmob_feet_unathi.dmi and b/icons/mob/species/unathi/generated/onmob_feet_unathi.dmi differ diff --git a/icons/mob/species/unathi/generated/onmob_hands_unathi.dmi b/icons/mob/species/unathi/generated/onmob_hands_unathi.dmi index fd39dc660c..9f3a301086 100644 Binary files a/icons/mob/species/unathi/generated/onmob_hands_unathi.dmi and b/icons/mob/species/unathi/generated/onmob_hands_unathi.dmi differ diff --git a/icons/mob/species/unathi/generated/onmob_head_unathi.dmi b/icons/mob/species/unathi/generated/onmob_head_unathi.dmi index de41529326..9f827388b2 100644 Binary files a/icons/mob/species/unathi/generated/onmob_head_unathi.dmi and b/icons/mob/species/unathi/generated/onmob_head_unathi.dmi differ diff --git a/icons/mob/species/unathi/generated/onmob_id_unathi.dmi b/icons/mob/species/unathi/generated/onmob_id_unathi.dmi index 6445aeb808..9850b159d5 100644 Binary files a/icons/mob/species/unathi/generated/onmob_id_unathi.dmi and b/icons/mob/species/unathi/generated/onmob_id_unathi.dmi differ diff --git a/icons/mob/species/unathi/generated/onmob_mask_unathi.dmi b/icons/mob/species/unathi/generated/onmob_mask_unathi.dmi index e4688021f6..892ed399b8 100644 Binary files a/icons/mob/species/unathi/generated/onmob_mask_unathi.dmi and b/icons/mob/species/unathi/generated/onmob_mask_unathi.dmi differ diff --git a/icons/mob/species/unathi/generated/onmob_misc_unathi.dmi b/icons/mob/species/unathi/generated/onmob_misc_unathi.dmi index 6afd19085a..cc2923c984 100644 Binary files a/icons/mob/species/unathi/generated/onmob_misc_unathi.dmi and b/icons/mob/species/unathi/generated/onmob_misc_unathi.dmi differ diff --git a/icons/mob/species/unathi/generated/onmob_rig_back_unathi.dmi b/icons/mob/species/unathi/generated/onmob_rig_back_unathi.dmi index aceee5dd07..d2fcfeefad 100644 Binary files a/icons/mob/species/unathi/generated/onmob_rig_back_unathi.dmi and b/icons/mob/species/unathi/generated/onmob_rig_back_unathi.dmi differ diff --git a/icons/mob/species/unathi/generated/onmob_rig_modules_unathi.dmi b/icons/mob/species/unathi/generated/onmob_rig_modules_unathi.dmi index 98c7eddfa9..cfca7755ac 100644 Binary files a/icons/mob/species/unathi/generated/onmob_rig_modules_unathi.dmi and b/icons/mob/species/unathi/generated/onmob_rig_modules_unathi.dmi differ diff --git a/icons/mob/species/unathi/generated/onmob_suit_unathi.dmi b/icons/mob/species/unathi/generated/onmob_suit_unathi.dmi index ec607c6614..a59542527d 100644 Binary files a/icons/mob/species/unathi/generated/onmob_suit_unathi.dmi and b/icons/mob/species/unathi/generated/onmob_suit_unathi.dmi differ diff --git a/icons/mob/species/unathi/generated/onmob_under_corporate_unathi.dmi b/icons/mob/species/unathi/generated/onmob_under_corporate_unathi.dmi index 42a6820849..14dd1d84fa 100644 Binary files a/icons/mob/species/unathi/generated/onmob_under_corporate_unathi.dmi and b/icons/mob/species/unathi/generated/onmob_under_corporate_unathi.dmi differ diff --git a/icons/mob/species/unathi/generated/onmob_under_pants_unathi.dmi b/icons/mob/species/unathi/generated/onmob_under_pants_unathi.dmi index d2bfbee9f9..c74f2d3c0a 100644 Binary files a/icons/mob/species/unathi/generated/onmob_under_pants_unathi.dmi and b/icons/mob/species/unathi/generated/onmob_under_pants_unathi.dmi differ diff --git a/icons/mob/species/unathi/generated/onmob_under_unathi.dmi b/icons/mob/species/unathi/generated/onmob_under_unathi.dmi index 86fc3262d6..af04f6e9e7 100644 Binary files a/icons/mob/species/unathi/generated/onmob_under_unathi.dmi and b/icons/mob/species/unathi/generated/onmob_under_unathi.dmi differ diff --git a/icons/mob/species/unathi/helmet.dmi b/icons/mob/species/unathi/helmet.dmi index cc137a3ccd..4302e5076a 100644 Binary files a/icons/mob/species/unathi/helmet.dmi and b/icons/mob/species/unathi/helmet.dmi differ diff --git a/icons/mob/species/unathi/mask.dmi b/icons/mob/species/unathi/mask.dmi index cf3be6425f..73de8d08b4 100644 Binary files a/icons/mob/species/unathi/mask.dmi and b/icons/mob/species/unathi/mask.dmi differ diff --git a/icons/mob/species/unathi/onmob_accessories_sol_unathi.dmi b/icons/mob/species/unathi/onmob_accessories_sol_unathi.dmi index 2959bd18eb..5474f14fe8 100644 Binary files a/icons/mob/species/unathi/onmob_accessories_sol_unathi.dmi and b/icons/mob/species/unathi/onmob_accessories_sol_unathi.dmi differ diff --git a/icons/mob/species/unathi/onmob_accessories_unathi.dmi b/icons/mob/species/unathi/onmob_accessories_unathi.dmi index 3ceb08c332..1940cf5369 100644 Binary files a/icons/mob/species/unathi/onmob_accessories_unathi.dmi and b/icons/mob/species/unathi/onmob_accessories_unathi.dmi differ diff --git a/icons/mob/species/unathi/onmob_head_helmet_unathi.dmi b/icons/mob/species/unathi/onmob_head_helmet_unathi.dmi index 33a51af2ee..bb076d959f 100644 Binary files a/icons/mob/species/unathi/onmob_head_helmet_unathi.dmi and b/icons/mob/species/unathi/onmob_head_helmet_unathi.dmi differ diff --git a/icons/mob/species/unathi/onmob_head_unathi.dmi b/icons/mob/species/unathi/onmob_head_unathi.dmi index 113d8369b5..69673c6c10 100644 Binary files a/icons/mob/species/unathi/onmob_head_unathi.dmi and b/icons/mob/species/unathi/onmob_head_unathi.dmi differ diff --git a/icons/mob/species/unathi/onmob_mask_unathi.dmi b/icons/mob/species/unathi/onmob_mask_unathi.dmi index cf3be6425f..73de8d08b4 100644 Binary files a/icons/mob/species/unathi/onmob_mask_unathi.dmi and b/icons/mob/species/unathi/onmob_mask_unathi.dmi differ diff --git a/icons/mob/species/unathi/onmob_suit_unathi.dmi b/icons/mob/species/unathi/onmob_suit_unathi.dmi index 273780025a..3190364664 100644 Binary files a/icons/mob/species/unathi/onmob_suit_unathi.dmi and b/icons/mob/species/unathi/onmob_suit_unathi.dmi differ diff --git a/icons/mob/species/unathi/onmob_under_unathi.dmi b/icons/mob/species/unathi/onmob_under_unathi.dmi index d044ce543b..6d50336fc0 100644 Binary files a/icons/mob/species/unathi/onmob_under_unathi.dmi and b/icons/mob/species/unathi/onmob_under_unathi.dmi differ diff --git a/icons/mob/species/unathi/suit.dmi b/icons/mob/species/unathi/suit.dmi index 2cbd6a8a87..e0f0771fb1 100644 Binary files a/icons/mob/species/unathi/suit.dmi and b/icons/mob/species/unathi/suit.dmi differ diff --git a/icons/mob/species/unathi/tail.dmi b/icons/mob/species/unathi/tail.dmi index c7ee60e3f6..1d81afe314 100644 Binary files a/icons/mob/species/unathi/tail.dmi and b/icons/mob/species/unathi/tail.dmi differ diff --git a/icons/mob/species/unathi/unathi_tail.dmi b/icons/mob/species/unathi/unathi_tail.dmi index 2c2d08811a..62798845ee 100644 Binary files a/icons/mob/species/unathi/unathi_tail.dmi and b/icons/mob/species/unathi/unathi_tail.dmi differ diff --git a/icons/mob/species/vox/eyes.dmi b/icons/mob/species/vox/eyes.dmi index 6e15b3e58c..43f4a2f46c 100644 Binary files a/icons/mob/species/vox/eyes.dmi and b/icons/mob/species/vox/eyes.dmi differ diff --git a/icons/mob/species/vox/gloves.dmi b/icons/mob/species/vox/gloves.dmi index 16b4706c4a..345b9db989 100644 Binary files a/icons/mob/species/vox/gloves.dmi and b/icons/mob/species/vox/gloves.dmi differ diff --git a/icons/mob/species/vox/head.dmi b/icons/mob/species/vox/head.dmi index d0097e8d00..c117a670ab 100644 Binary files a/icons/mob/species/vox/head.dmi and b/icons/mob/species/vox/head.dmi differ diff --git a/icons/mob/species/vox/masks.dmi b/icons/mob/species/vox/masks.dmi index 06efbb2c67..73b06eabe4 100644 Binary files a/icons/mob/species/vox/masks.dmi and b/icons/mob/species/vox/masks.dmi differ diff --git a/icons/mob/species/vox/onmob_eyes_vox.dmi b/icons/mob/species/vox/onmob_eyes_vox.dmi index da38b74212..9023cf3426 100644 Binary files a/icons/mob/species/vox/onmob_eyes_vox.dmi and b/icons/mob/species/vox/onmob_eyes_vox.dmi differ diff --git a/icons/mob/species/vox/onmob_eyes_vox_armalis.dmi b/icons/mob/species/vox/onmob_eyes_vox_armalis.dmi index d6d8ce0e6b..e5d82fca8d 100644 Binary files a/icons/mob/species/vox/onmob_eyes_vox_armalis.dmi and b/icons/mob/species/vox/onmob_eyes_vox_armalis.dmi differ diff --git a/icons/mob/species/vox/onmob_feet_vox.dmi b/icons/mob/species/vox/onmob_feet_vox.dmi index 90cc42fe44..aeca47d8e7 100644 Binary files a/icons/mob/species/vox/onmob_feet_vox.dmi and b/icons/mob/species/vox/onmob_feet_vox.dmi differ diff --git a/icons/mob/species/vox/onmob_hands_vox.dmi b/icons/mob/species/vox/onmob_hands_vox.dmi index f49526e9e3..a73e6509bf 100644 Binary files a/icons/mob/species/vox/onmob_hands_vox.dmi and b/icons/mob/species/vox/onmob_hands_vox.dmi differ diff --git a/icons/mob/species/vox/onmob_hands_vox_armalis.dmi b/icons/mob/species/vox/onmob_hands_vox_armalis.dmi index da51536ab8..794255116d 100644 Binary files a/icons/mob/species/vox/onmob_hands_vox_armalis.dmi and b/icons/mob/species/vox/onmob_hands_vox_armalis.dmi differ diff --git a/icons/mob/species/vox/onmob_head_vox.dmi b/icons/mob/species/vox/onmob_head_vox.dmi index df4c84f633..d43bd923bd 100644 Binary files a/icons/mob/species/vox/onmob_head_vox.dmi and b/icons/mob/species/vox/onmob_head_vox.dmi differ diff --git a/icons/mob/species/vox/onmob_head_vox_armalis.dmi b/icons/mob/species/vox/onmob_head_vox_armalis.dmi index a5fad8492e..812daf5319 100644 Binary files a/icons/mob/species/vox/onmob_head_vox_armalis.dmi and b/icons/mob/species/vox/onmob_head_vox_armalis.dmi differ diff --git a/icons/mob/species/vox/onmob_mask_vox.dmi b/icons/mob/species/vox/onmob_mask_vox.dmi index 24b01c7e3a..ab104ca0f3 100644 Binary files a/icons/mob/species/vox/onmob_mask_vox.dmi and b/icons/mob/species/vox/onmob_mask_vox.dmi differ diff --git a/icons/mob/species/vox/onmob_mask_vox_armalis.dmi b/icons/mob/species/vox/onmob_mask_vox_armalis.dmi index ae8b030868..ff32687e1f 100644 Binary files a/icons/mob/species/vox/onmob_mask_vox_armalis.dmi and b/icons/mob/species/vox/onmob_mask_vox_armalis.dmi differ diff --git a/icons/mob/species/vox/onmob_suit_vox.dmi b/icons/mob/species/vox/onmob_suit_vox.dmi index 65959fbdeb..ac3cd6023d 100644 Binary files a/icons/mob/species/vox/onmob_suit_vox.dmi and b/icons/mob/species/vox/onmob_suit_vox.dmi differ diff --git a/icons/mob/species/vox/onmob_suit_vox_armalis.dmi b/icons/mob/species/vox/onmob_suit_vox_armalis.dmi index 28d95b8741..cbd00d5bd0 100644 Binary files a/icons/mob/species/vox/onmob_suit_vox_armalis.dmi and b/icons/mob/species/vox/onmob_suit_vox_armalis.dmi differ diff --git a/icons/mob/species/vox/onmob_under_vox.dmi b/icons/mob/species/vox/onmob_under_vox.dmi index 5ed2bca2ff..71dc06b4f5 100644 Binary files a/icons/mob/species/vox/onmob_under_vox.dmi and b/icons/mob/species/vox/onmob_under_vox.dmi differ diff --git a/icons/mob/species/vox/onmob_under_vox_armalis.dmi b/icons/mob/species/vox/onmob_under_vox_armalis.dmi index e35ee8a2b1..f95c878bd1 100644 Binary files a/icons/mob/species/vox/onmob_under_vox_armalis.dmi and b/icons/mob/species/vox/onmob_under_vox_armalis.dmi differ diff --git a/icons/mob/species/vox/shoes.dmi b/icons/mob/species/vox/shoes.dmi index 822174fbd4..97f3b97461 100644 Binary files a/icons/mob/species/vox/shoes.dmi and b/icons/mob/species/vox/shoes.dmi differ diff --git a/icons/mob/species/vox/suit.dmi b/icons/mob/species/vox/suit.dmi index 96e37f91ca..0f7303fb1e 100644 Binary files a/icons/mob/species/vox/suit.dmi and b/icons/mob/species/vox/suit.dmi differ diff --git a/icons/mob/species/vox/uniform.dmi b/icons/mob/species/vox/uniform.dmi index 55c056ea23..ebfe5250c5 100644 Binary files a/icons/mob/species/vox/uniform.dmi and b/icons/mob/species/vox/uniform.dmi differ diff --git a/icons/mob/status_blink.dmi b/icons/mob/status_blink.dmi index 03fc071de4..e7eb258e20 100644 Binary files a/icons/mob/status_blink.dmi and b/icons/mob/status_blink.dmi differ diff --git a/icons/mob/status_hunger.dmi b/icons/mob/status_hunger.dmi index db92eb3558..41cd9056dd 100644 Binary files a/icons/mob/status_hunger.dmi and b/icons/mob/status_hunger.dmi differ diff --git a/icons/mob/status_indicators.dmi b/icons/mob/status_indicators.dmi index 80baa88177..578742387d 100644 Binary files a/icons/mob/status_indicators.dmi and b/icons/mob/status_indicators.dmi differ diff --git a/icons/mob/status_sanity.dmi b/icons/mob/status_sanity.dmi index 3e61fdedca..297da3c97e 100644 Binary files a/icons/mob/status_sanity.dmi and b/icons/mob/status_sanity.dmi differ diff --git a/icons/mob/surgery.dmi b/icons/mob/surgery.dmi index 8457a59526..f3c39a499b 100644 Binary files a/icons/mob/surgery.dmi and b/icons/mob/surgery.dmi differ diff --git a/icons/mob/talk.dmi b/icons/mob/talk.dmi index cdb7c7b8aa..77794f6552 100644 Binary files a/icons/mob/talk.dmi and b/icons/mob/talk.dmi differ diff --git a/icons/mob/uniform_fat.dmi b/icons/mob/uniform_fat.dmi index c887239f1f..2921a43bdb 100644 Binary files a/icons/mob/uniform_fat.dmi and b/icons/mob/uniform_fat.dmi differ diff --git a/icons/mob/unused.dmi b/icons/mob/unused.dmi index 548d475be1..149d7d8893 100644 Binary files a/icons/mob/unused.dmi and b/icons/mob/unused.dmi differ diff --git a/icons/mob/virtual.dmi b/icons/mob/virtual.dmi index 13813bb512..1cf0130a89 100644 Binary files a/icons/mob/virtual.dmi and b/icons/mob/virtual.dmi differ diff --git a/icons/mob/zone_sel.dmi b/icons/mob/zone_sel.dmi index 516874f2a6..9621cbe2be 100644 Binary files a/icons/mob/zone_sel.dmi and b/icons/mob/zone_sel.dmi differ diff --git a/icons/obj/Cryogenic2.dmi b/icons/obj/Cryogenic2.dmi index 48e19ed3a7..a377358639 100644 Binary files a/icons/obj/Cryogenic2.dmi and b/icons/obj/Cryogenic2.dmi differ diff --git a/icons/obj/aibots.dmi b/icons/obj/aibots.dmi index 3d4d3eb5c1..54141d1fba 100644 Binary files a/icons/obj/aibots.dmi and b/icons/obj/aibots.dmi differ diff --git a/icons/obj/airlock_machines.dmi b/icons/obj/airlock_machines.dmi index 4ab6fec1f5..402eb428e7 100644 Binary files a/icons/obj/airlock_machines.dmi and b/icons/obj/airlock_machines.dmi differ diff --git a/icons/obj/alien.dmi b/icons/obj/alien.dmi index e1685e216f..dff26ebcb2 100644 Binary files a/icons/obj/alien.dmi and b/icons/obj/alien.dmi differ diff --git a/icons/obj/ammo.dmi b/icons/obj/ammo.dmi index c38087d2d9..fa421d7baa 100644 Binary files a/icons/obj/ammo.dmi and b/icons/obj/ammo.dmi differ diff --git a/icons/obj/apc.dmi b/icons/obj/apc.dmi index 7511f66aa4..408faa5467 100644 Binary files a/icons/obj/apc.dmi and b/icons/obj/apc.dmi differ diff --git a/icons/obj/apc_repair.dmi b/icons/obj/apc_repair.dmi index a0dc37c67a..279dc0ebca 100644 Binary files a/icons/obj/apc_repair.dmi and b/icons/obj/apc_repair.dmi differ diff --git a/icons/obj/apiary_bees_etc.dmi b/icons/obj/apiary_bees_etc.dmi index 130120bb08..734fd804b4 100644 Binary files a/icons/obj/apiary_bees_etc.dmi and b/icons/obj/apiary_bees_etc.dmi differ diff --git a/icons/obj/artifacts.dmi b/icons/obj/artifacts.dmi index 0a8aa78f1b..063fba54f4 100644 Binary files a/icons/obj/artifacts.dmi and b/icons/obj/artifacts.dmi differ diff --git a/icons/obj/artillery.dmi b/icons/obj/artillery.dmi index f0653ab1bd..d8e2edf7ed 100644 Binary files a/icons/obj/artillery.dmi and b/icons/obj/artillery.dmi differ diff --git a/icons/obj/ascent.dmi b/icons/obj/ascent.dmi index f4afacd2ab..7d7cdcd674 100644 Binary files a/icons/obj/ascent.dmi and b/icons/obj/ascent.dmi differ diff --git a/icons/obj/ascent_doodads.dmi b/icons/obj/ascent_doodads.dmi index 7ccfed8a8d..a005effd18 100644 Binary files a/icons/obj/ascent_doodads.dmi and b/icons/obj/ascent_doodads.dmi differ diff --git a/icons/obj/ascent_sleepers.dmi b/icons/obj/ascent_sleepers.dmi index 4a6e9f946d..b1d5f01d13 100644 Binary files a/icons/obj/ascent_sleepers.dmi and b/icons/obj/ascent_sleepers.dmi differ diff --git a/icons/obj/assemblies.dmi b/icons/obj/assemblies.dmi index 93f5bb50f6..42ba3152ec 100644 Binary files a/icons/obj/assemblies.dmi and b/icons/obj/assemblies.dmi differ diff --git a/icons/obj/assemblies/electronic_components.dmi b/icons/obj/assemblies/electronic_components.dmi index 5e0d30ac43..e76e05572a 100644 Binary files a/icons/obj/assemblies/electronic_components.dmi and b/icons/obj/assemblies/electronic_components.dmi differ diff --git a/icons/obj/assemblies/electronic_misc.dmi b/icons/obj/assemblies/electronic_misc.dmi index 226b82e499..a76230a543 100644 Binary files a/icons/obj/assemblies/electronic_misc.dmi and b/icons/obj/assemblies/electronic_misc.dmi differ diff --git a/icons/obj/assemblies/electronic_setups.dmi b/icons/obj/assemblies/electronic_setups.dmi index 7faa3b93c6..bafc13569e 100644 Binary files a/icons/obj/assemblies/electronic_setups.dmi and b/icons/obj/assemblies/electronic_setups.dmi differ diff --git a/icons/obj/assemblies/electronic_tools.dmi b/icons/obj/assemblies/electronic_tools.dmi index 975f2fc9a8..2d82242f31 100644 Binary files a/icons/obj/assemblies/electronic_tools.dmi and b/icons/obj/assemblies/electronic_tools.dmi differ diff --git a/icons/obj/assemblies/new_assemblies.dmi b/icons/obj/assemblies/new_assemblies.dmi index 96b36bbf36..bdf50eaa2b 100644 Binary files a/icons/obj/assemblies/new_assemblies.dmi and b/icons/obj/assemblies/new_assemblies.dmi differ diff --git a/icons/obj/atmos.dmi b/icons/obj/atmos.dmi index 4d51b4e6f8..e85c02a762 100644 Binary files a/icons/obj/atmos.dmi and b/icons/obj/atmos.dmi differ diff --git a/icons/obj/atmospherics/blue_pipe_tank.dmi b/icons/obj/atmospherics/blue_pipe_tank.dmi index 8cec4370f6..a0da413404 100644 Binary files a/icons/obj/atmospherics/blue_pipe_tank.dmi and b/icons/obj/atmospherics/blue_pipe_tank.dmi differ diff --git a/icons/obj/atmospherics/cold_sink.dmi b/icons/obj/atmospherics/cold_sink.dmi index 09f9be4351..7a217cc098 100644 Binary files a/icons/obj/atmospherics/cold_sink.dmi and b/icons/obj/atmospherics/cold_sink.dmi differ diff --git a/icons/obj/atmospherics/digital_valve.dmi b/icons/obj/atmospherics/digital_valve.dmi index 0b3dffd0ae..55e94c4215 100644 Binary files a/icons/obj/atmospherics/digital_valve.dmi and b/icons/obj/atmospherics/digital_valve.dmi differ diff --git a/icons/obj/atmospherics/dp_vent_pump.dmi b/icons/obj/atmospherics/dp_vent_pump.dmi index be5106c247..f77844932b 100644 Binary files a/icons/obj/atmospherics/dp_vent_pump.dmi and b/icons/obj/atmospherics/dp_vent_pump.dmi differ diff --git a/icons/obj/atmospherics/filter.dmi b/icons/obj/atmospherics/filter.dmi index 3bb85fdb64..2b43e9a3bc 100644 Binary files a/icons/obj/atmospherics/filter.dmi and b/icons/obj/atmospherics/filter.dmi differ diff --git a/icons/obj/atmospherics/heat_exchanger.dmi b/icons/obj/atmospherics/heat_exchanger.dmi index 31836c5ec4..7f94df29b8 100644 Binary files a/icons/obj/atmospherics/heat_exchanger.dmi and b/icons/obj/atmospherics/heat_exchanger.dmi differ diff --git a/icons/obj/atmospherics/m_filter.dmi b/icons/obj/atmospherics/m_filter.dmi index 70261633eb..227960e9d7 100644 Binary files a/icons/obj/atmospherics/m_filter.dmi and b/icons/obj/atmospherics/m_filter.dmi differ diff --git a/icons/obj/atmospherics/m_mixer.dmi b/icons/obj/atmospherics/m_mixer.dmi index 81c6bbb5e1..07d2cb95c0 100644 Binary files a/icons/obj/atmospherics/m_mixer.dmi and b/icons/obj/atmospherics/m_mixer.dmi differ diff --git a/icons/obj/atmospherics/mainspipe.dmi b/icons/obj/atmospherics/mainspipe.dmi index 4518a5b0a7..9f0403e54e 100644 Binary files a/icons/obj/atmospherics/mainspipe.dmi and b/icons/obj/atmospherics/mainspipe.dmi differ diff --git a/icons/obj/atmospherics/mixer.dmi b/icons/obj/atmospherics/mixer.dmi index 79b62c87df..cafc07719f 100644 Binary files a/icons/obj/atmospherics/mixer.dmi and b/icons/obj/atmospherics/mixer.dmi differ diff --git a/icons/obj/atmospherics/n2o_pipe_tank.dmi b/icons/obj/atmospherics/n2o_pipe_tank.dmi index 71a8381a68..e22b58f55c 100644 Binary files a/icons/obj/atmospherics/n2o_pipe_tank.dmi and b/icons/obj/atmospherics/n2o_pipe_tank.dmi differ diff --git a/icons/obj/atmospherics/omni_devices.dmi b/icons/obj/atmospherics/omni_devices.dmi index 398fd5f159..7ea3e996fa 100644 Binary files a/icons/obj/atmospherics/omni_devices.dmi and b/icons/obj/atmospherics/omni_devices.dmi differ diff --git a/icons/obj/atmospherics/orange_pipe_tank.dmi b/icons/obj/atmospherics/orange_pipe_tank.dmi index fccd6eb5c5..2477c2b92b 100644 Binary files a/icons/obj/atmospherics/orange_pipe_tank.dmi and b/icons/obj/atmospherics/orange_pipe_tank.dmi differ diff --git a/icons/obj/atmospherics/outlet_injector.dmi b/icons/obj/atmospherics/outlet_injector.dmi index 60ecc2e937..98e076eae1 100644 Binary files a/icons/obj/atmospherics/outlet_injector.dmi and b/icons/obj/atmospherics/outlet_injector.dmi differ diff --git a/icons/obj/atmospherics/oxygen_generator.dmi b/icons/obj/atmospherics/oxygen_generator.dmi index 0c94506c36..793aca0911 100644 Binary files a/icons/obj/atmospherics/oxygen_generator.dmi and b/icons/obj/atmospherics/oxygen_generator.dmi differ diff --git a/icons/obj/atmospherics/passive_gate.dmi b/icons/obj/atmospherics/passive_gate.dmi index be8be8b709..9692602943 100644 Binary files a/icons/obj/atmospherics/passive_gate.dmi and b/icons/obj/atmospherics/passive_gate.dmi differ diff --git a/icons/obj/atmospherics/pipe_manifold.dmi b/icons/obj/atmospherics/pipe_manifold.dmi index 0687e9e8bc..077a7d874d 100644 Binary files a/icons/obj/atmospherics/pipe_manifold.dmi and b/icons/obj/atmospherics/pipe_manifold.dmi differ diff --git a/icons/obj/atmospherics/pipe_tank.dmi b/icons/obj/atmospherics/pipe_tank.dmi index e6925d0eda..25ff346f4e 100644 Binary files a/icons/obj/atmospherics/pipe_tank.dmi and b/icons/obj/atmospherics/pipe_tank.dmi differ diff --git a/icons/obj/atmospherics/pipe_vent.dmi b/icons/obj/atmospherics/pipe_vent.dmi index 6086af9383..6a7dd7b28f 100644 Binary files a/icons/obj/atmospherics/pipe_vent.dmi and b/icons/obj/atmospherics/pipe_vent.dmi differ diff --git a/icons/obj/atmospherics/portables_connector.dmi b/icons/obj/atmospherics/portables_connector.dmi index 0268014c24..6dd4efc098 100644 Binary files a/icons/obj/atmospherics/portables_connector.dmi and b/icons/obj/atmospherics/portables_connector.dmi differ diff --git a/icons/obj/atmospherics/pump.dmi b/icons/obj/atmospherics/pump.dmi index bd08c60197..4d16cdd4b7 100644 Binary files a/icons/obj/atmospherics/pump.dmi and b/icons/obj/atmospherics/pump.dmi differ diff --git a/icons/obj/atmospherics/red_orange_pipe_tank.dmi b/icons/obj/atmospherics/red_orange_pipe_tank.dmi index 9c4ce51c06..aa65ba8044 100644 Binary files a/icons/obj/atmospherics/red_orange_pipe_tank.dmi and b/icons/obj/atmospherics/red_orange_pipe_tank.dmi differ diff --git a/icons/obj/atmospherics/red_pipe.dmi b/icons/obj/atmospherics/red_pipe.dmi index ff9d9e8a59..d632d22011 100644 Binary files a/icons/obj/atmospherics/red_pipe.dmi and b/icons/obj/atmospherics/red_pipe.dmi differ diff --git a/icons/obj/atmospherics/red_pipe_tank.dmi b/icons/obj/atmospherics/red_pipe_tank.dmi index f38632d139..ee6ffd1217 100644 Binary files a/icons/obj/atmospherics/red_pipe_tank.dmi and b/icons/obj/atmospherics/red_pipe_tank.dmi differ diff --git a/icons/obj/atmospherics/relief_valve.dmi b/icons/obj/atmospherics/relief_valve.dmi index 313081dae1..fd821e31e0 100644 Binary files a/icons/obj/atmospherics/relief_valve.dmi and b/icons/obj/atmospherics/relief_valve.dmi differ diff --git a/icons/obj/atmospherics/t_mixer.dmi b/icons/obj/atmospherics/t_mixer.dmi index 1535a52ee3..0e546a51e4 100644 Binary files a/icons/obj/atmospherics/t_mixer.dmi and b/icons/obj/atmospherics/t_mixer.dmi differ diff --git a/icons/obj/atmospherics/valve.dmi b/icons/obj/atmospherics/valve.dmi index beaff23c28..cf05330ebe 100644 Binary files a/icons/obj/atmospherics/valve.dmi and b/icons/obj/atmospherics/valve.dmi differ diff --git a/icons/obj/atmospherics/vent_pump.dmi b/icons/obj/atmospherics/vent_pump.dmi index 5616a9d7d7..0ad0adb87f 100644 Binary files a/icons/obj/atmospherics/vent_pump.dmi and b/icons/obj/atmospherics/vent_pump.dmi differ diff --git a/icons/obj/atmospherics/vent_scrubber.dmi b/icons/obj/atmospherics/vent_scrubber.dmi index 83536121c4..457df27fa7 100644 Binary files a/icons/obj/atmospherics/vent_scrubber.dmi and b/icons/obj/atmospherics/vent_scrubber.dmi differ diff --git a/icons/obj/atmospherics/volume_pump.dmi b/icons/obj/atmospherics/volume_pump.dmi index fed0d47945..91ef2c730a 100644 Binary files a/icons/obj/atmospherics/volume_pump.dmi and b/icons/obj/atmospherics/volume_pump.dmi differ diff --git a/icons/obj/augment_tools.dmi b/icons/obj/augment_tools.dmi index cedfe88eec..e148396650 100644 Binary files a/icons/obj/augment_tools.dmi and b/icons/obj/augment_tools.dmi differ diff --git a/icons/obj/auto_cpr.dmi b/icons/obj/auto_cpr.dmi index f99ddfde7b..ce6deae162 100644 Binary files a/icons/obj/auto_cpr.dmi and b/icons/obj/auto_cpr.dmi differ diff --git a/icons/obj/banner.dmi b/icons/obj/banner.dmi index 87c7b75f99..f14bb8fd88 100644 Binary files a/icons/obj/banner.dmi and b/icons/obj/banner.dmi differ diff --git a/icons/obj/barsigns.dmi b/icons/obj/barsigns.dmi index dd6d8d06a3..3b729ea728 100644 Binary files a/icons/obj/barsigns.dmi and b/icons/obj/barsigns.dmi differ diff --git a/icons/obj/basketball.dmi b/icons/obj/basketball.dmi index e938d8d720..e4c60002d2 100644 Binary files a/icons/obj/basketball.dmi and b/icons/obj/basketball.dmi differ diff --git a/icons/obj/bedsheet.dmi b/icons/obj/bedsheet.dmi index d53251aa4c..7c7cacf774 100644 Binary files a/icons/obj/bedsheet.dmi and b/icons/obj/bedsheet.dmi differ diff --git a/icons/obj/beekeeping.dmi b/icons/obj/beekeeping.dmi index 569122d4a5..93703741ab 100644 Binary files a/icons/obj/beekeeping.dmi and b/icons/obj/beekeeping.dmi differ diff --git a/icons/obj/bike.dmi b/icons/obj/bike.dmi index 589c21fdd9..add6d878e8 100644 Binary files a/icons/obj/bike.dmi and b/icons/obj/bike.dmi differ diff --git a/icons/obj/biogenerator.dmi b/icons/obj/biogenerator.dmi index 65e2d3d195..5595a254a4 100644 Binary files a/icons/obj/biogenerator.dmi and b/icons/obj/biogenerator.dmi differ diff --git a/icons/obj/bloodpack.dmi b/icons/obj/bloodpack.dmi index 69c3484849..d85c84d343 100644 Binary files a/icons/obj/bloodpack.dmi and b/icons/obj/bloodpack.dmi differ diff --git a/icons/obj/bodybag.dmi b/icons/obj/bodybag.dmi index a1f9903128..fd226f9a12 100644 Binary files a/icons/obj/bodybag.dmi and b/icons/obj/bodybag.dmi differ diff --git a/icons/obj/boombox.dmi b/icons/obj/boombox.dmi index f7bfc7e986..67eda81dec 100644 Binary files a/icons/obj/boombox.dmi and b/icons/obj/boombox.dmi differ diff --git a/icons/obj/buildingobject.dmi b/icons/obj/buildingobject.dmi index c360ab93a0..211140312f 100644 Binary files a/icons/obj/buildingobject.dmi and b/icons/obj/buildingobject.dmi differ diff --git a/icons/obj/bureaucracy.dmi b/icons/obj/bureaucracy.dmi index 9a53600c1b..0a13fe01e5 100644 Binary files a/icons/obj/bureaucracy.dmi and b/icons/obj/bureaucracy.dmi differ diff --git a/icons/obj/butchery.dmi b/icons/obj/butchery.dmi index 26923c1674..83def8d737 100644 Binary files a/icons/obj/butchery.dmi and b/icons/obj/butchery.dmi differ diff --git a/icons/obj/candle.dmi b/icons/obj/candle.dmi index 73d807cf6d..dc2304f21d 100644 Binary files a/icons/obj/candle.dmi and b/icons/obj/candle.dmi differ diff --git a/icons/obj/card.dmi b/icons/obj/card.dmi index 4e9797b7d0..5696fecf5f 100644 Binary files a/icons/obj/card.dmi and b/icons/obj/card.dmi differ diff --git a/icons/obj/cash.dmi b/icons/obj/cash.dmi index 3ac7207c83..d34eec8230 100644 Binary files a/icons/obj/cash.dmi and b/icons/obj/cash.dmi differ diff --git a/icons/obj/catwalks.dmi b/icons/obj/catwalks.dmi index 20c5e1f4d9..23970557dc 100644 Binary files a/icons/obj/catwalks.dmi and b/icons/obj/catwalks.dmi differ diff --git a/icons/obj/cellrack.dmi b/icons/obj/cellrack.dmi index 0e52e3fd47..84650c5ac7 100644 Binary files a/icons/obj/cellrack.dmi and b/icons/obj/cellrack.dmi differ diff --git a/icons/obj/chairs_wide.dmi b/icons/obj/chairs_wide.dmi index 9b0e9fc24d..8e65f44d93 100644 Binary files a/icons/obj/chairs_wide.dmi and b/icons/obj/chairs_wide.dmi differ diff --git a/icons/obj/chemical.dmi b/icons/obj/chemical.dmi index 8ef421021d..3af0da4908 100644 Binary files a/icons/obj/chemical.dmi and b/icons/obj/chemical.dmi differ diff --git a/icons/obj/chempuff.dmi b/icons/obj/chempuff.dmi index 811c5e8214..163eae3934 100644 Binary files a/icons/obj/chempuff.dmi and b/icons/obj/chempuff.dmi differ diff --git a/icons/obj/christmas.dmi b/icons/obj/christmas.dmi index a42d14ecff..72cff95c7c 100644 Binary files a/icons/obj/christmas.dmi and b/icons/obj/christmas.dmi differ diff --git a/icons/obj/cigarettes.dmi b/icons/obj/cigarettes.dmi index beba9a7c22..fd22f4092d 100644 Binary files a/icons/obj/cigarettes.dmi and b/icons/obj/cigarettes.dmi differ diff --git a/icons/obj/cloning.dmi b/icons/obj/cloning.dmi index af0bb42e60..9595ed5d36 100644 Binary files a/icons/obj/cloning.dmi and b/icons/obj/cloning.dmi differ diff --git a/icons/obj/closet.dmi b/icons/obj/closet.dmi index 27b9273328..0e4c7198bf 100644 Binary files a/icons/obj/closet.dmi and b/icons/obj/closet.dmi differ diff --git a/icons/obj/closet_new.dmi b/icons/obj/closet_new.dmi index 6238bd34aa..0443060d0b 100644 Binary files a/icons/obj/closet_new.dmi and b/icons/obj/closet_new.dmi differ diff --git a/icons/obj/closets/bases/cabinet.dmi b/icons/obj/closets/bases/cabinet.dmi index 236b164ca6..0f08067b0d 100644 Binary files a/icons/obj/closets/bases/cabinet.dmi and b/icons/obj/closets/bases/cabinet.dmi differ diff --git a/icons/obj/closets/bases/cart.dmi b/icons/obj/closets/bases/cart.dmi index 852e539b4d..c59023fbe3 100644 Binary files a/icons/obj/closets/bases/cart.dmi and b/icons/obj/closets/bases/cart.dmi differ diff --git a/icons/obj/closets/bases/closet.dmi b/icons/obj/closets/bases/closet.dmi index 551435629e..a333e9601d 100644 Binary files a/icons/obj/closets/bases/closet.dmi and b/icons/obj/closets/bases/closet.dmi differ diff --git a/icons/obj/closets/bases/crate.dmi b/icons/obj/closets/bases/crate.dmi index e8e26686fc..ecee80e835 100644 Binary files a/icons/obj/closets/bases/crate.dmi and b/icons/obj/closets/bases/crate.dmi differ diff --git a/icons/obj/closets/bases/large_crate.dmi b/icons/obj/closets/bases/large_crate.dmi index 1cdac27783..28633248d7 100644 Binary files a/icons/obj/closets/bases/large_crate.dmi and b/icons/obj/closets/bases/large_crate.dmi differ diff --git a/icons/obj/closets/bases/wall.dmi b/icons/obj/closets/bases/wall.dmi index 6689e59cfc..c0308daade 100644 Binary files a/icons/obj/closets/bases/wall.dmi and b/icons/obj/closets/bases/wall.dmi differ diff --git a/icons/obj/closets/bodybag.dmi b/icons/obj/closets/bodybag.dmi index d6922f8bbe..e4809b2dc6 100644 Binary files a/icons/obj/closets/bodybag.dmi and b/icons/obj/closets/bodybag.dmi differ diff --git a/icons/obj/closets/coffin.dmi b/icons/obj/closets/coffin.dmi index 022f8cb93f..42e8be6b1d 100644 Binary files a/icons/obj/closets/coffin.dmi and b/icons/obj/closets/coffin.dmi differ diff --git a/icons/obj/closets/coffin_wood.dmi b/icons/obj/closets/coffin_wood.dmi index a4a83d9b44..34ad8ac485 100644 Binary files a/icons/obj/closets/coffin_wood.dmi and b/icons/obj/closets/coffin_wood.dmi differ diff --git a/icons/obj/closets/cryobag.dmi b/icons/obj/closets/cryobag.dmi index 1681a884d8..415fc5509f 100644 Binary files a/icons/obj/closets/cryobag.dmi and b/icons/obj/closets/cryobag.dmi differ diff --git a/icons/obj/closets/decals/cart.dmi b/icons/obj/closets/decals/cart.dmi index c4d71bcde8..ac0312ef3e 100644 Binary files a/icons/obj/closets/decals/cart.dmi and b/icons/obj/closets/decals/cart.dmi differ diff --git a/icons/obj/closets/decals/closet.dmi b/icons/obj/closets/decals/closet.dmi index ea42c1f535..fe645d4948 100644 Binary files a/icons/obj/closets/decals/closet.dmi and b/icons/obj/closets/decals/closet.dmi differ diff --git a/icons/obj/closets/decals/crate.dmi b/icons/obj/closets/decals/crate.dmi index b0e600aeff..e5cee94f07 100644 Binary files a/icons/obj/closets/decals/crate.dmi and b/icons/obj/closets/decals/crate.dmi differ diff --git a/icons/obj/closets/decals/large_crate.dmi b/icons/obj/closets/decals/large_crate.dmi index 4876570265..91c40cc26e 100644 Binary files a/icons/obj/closets/decals/large_crate.dmi and b/icons/obj/closets/decals/large_crate.dmi differ diff --git a/icons/obj/closets/decals/wall.dmi b/icons/obj/closets/decals/wall.dmi index b9b207407e..67d5cf1912 100644 Binary files a/icons/obj/closets/decals/wall.dmi and b/icons/obj/closets/decals/wall.dmi differ diff --git a/icons/obj/closets/fridge.dmi b/icons/obj/closets/fridge.dmi index afb2672bbf..5f877da671 100644 Binary files a/icons/obj/closets/fridge.dmi and b/icons/obj/closets/fridge.dmi differ diff --git a/icons/obj/closets/rescuebag.dmi b/icons/obj/closets/rescuebag.dmi index 7ed654f5f7..f688a0dd42 100644 Binary files a/icons/obj/closets/rescuebag.dmi and b/icons/obj/closets/rescuebag.dmi differ diff --git a/icons/obj/clothing/aviators.dmi b/icons/obj/clothing/aviators.dmi index 0a0929345b..6a6c9c633f 100644 Binary files a/icons/obj/clothing/aviators.dmi and b/icons/obj/clothing/aviators.dmi differ diff --git a/icons/obj/clothing/belts.dmi b/icons/obj/clothing/belts.dmi index a2a24d28e2..b749cada86 100644 Binary files a/icons/obj/clothing/belts.dmi and b/icons/obj/clothing/belts.dmi differ diff --git a/icons/obj/clothing/ears.dmi b/icons/obj/clothing/ears.dmi index b5bbff0a46..657d507cdd 100644 Binary files a/icons/obj/clothing/ears.dmi and b/icons/obj/clothing/ears.dmi differ diff --git a/icons/obj/clothing/glasses.dmi b/icons/obj/clothing/glasses.dmi index 159e8e4e39..f2c94fdc69 100644 Binary files a/icons/obj/clothing/glasses.dmi and b/icons/obj/clothing/glasses.dmi differ diff --git a/icons/obj/clothing/gloves.dmi b/icons/obj/clothing/gloves.dmi index b3872f627c..bd0f4fe7a7 100644 Binary files a/icons/obj/clothing/gloves.dmi and b/icons/obj/clothing/gloves.dmi differ diff --git a/icons/obj/clothing/hats.dmi b/icons/obj/clothing/hats.dmi index 5cdda68333..63666c001f 100644 Binary files a/icons/obj/clothing/hats.dmi and b/icons/obj/clothing/hats.dmi differ diff --git a/icons/obj/clothing/masks.dmi b/icons/obj/clothing/masks.dmi index 0fa75ac5ff..12af34a90a 100644 Binary files a/icons/obj/clothing/masks.dmi and b/icons/obj/clothing/masks.dmi differ diff --git a/icons/obj/clothing/modular_armor.dmi b/icons/obj/clothing/modular_armor.dmi index 10bffa0857..a7c1935f63 100644 Binary files a/icons/obj/clothing/modular_armor.dmi and b/icons/obj/clothing/modular_armor.dmi differ diff --git a/icons/obj/clothing/monitor.dmi b/icons/obj/clothing/monitor.dmi index e73c924d20..3eab08f5b8 100644 Binary files a/icons/obj/clothing/monitor.dmi and b/icons/obj/clothing/monitor.dmi differ diff --git a/icons/obj/clothing/obj_accessories.dmi b/icons/obj/clothing/obj_accessories.dmi index 88eb656903..e62a75b2b9 100644 Binary files a/icons/obj/clothing/obj_accessories.dmi and b/icons/obj/clothing/obj_accessories.dmi differ diff --git a/icons/obj/clothing/obj_belt.dmi b/icons/obj/clothing/obj_belt.dmi index 804050b982..e275319b3a 100644 Binary files a/icons/obj/clothing/obj_belt.dmi and b/icons/obj/clothing/obj_belt.dmi differ diff --git a/icons/obj/clothing/obj_belt_overlays.dmi b/icons/obj/clothing/obj_belt_overlays.dmi index 3e4a7b6d4a..8a08fbcb46 100644 Binary files a/icons/obj/clothing/obj_belt_overlays.dmi and b/icons/obj/clothing/obj_belt_overlays.dmi differ diff --git a/icons/obj/clothing/obj_ears.dmi b/icons/obj/clothing/obj_ears.dmi index b5bbff0a46..657d507cdd 100644 Binary files a/icons/obj/clothing/obj_ears.dmi and b/icons/obj/clothing/obj_ears.dmi differ diff --git a/icons/obj/clothing/obj_eyes.dmi b/icons/obj/clothing/obj_eyes.dmi index 80727314db..b5979d5baf 100644 Binary files a/icons/obj/clothing/obj_eyes.dmi and b/icons/obj/clothing/obj_eyes.dmi differ diff --git a/icons/obj/clothing/obj_feet.dmi b/icons/obj/clothing/obj_feet.dmi index 00ca77ab76..24e2f3a610 100644 Binary files a/icons/obj/clothing/obj_feet.dmi and b/icons/obj/clothing/obj_feet.dmi differ diff --git a/icons/obj/clothing/obj_hands.dmi b/icons/obj/clothing/obj_hands.dmi index 5822ba8709..a7304e748e 100644 Binary files a/icons/obj/clothing/obj_hands.dmi and b/icons/obj/clothing/obj_hands.dmi differ diff --git a/icons/obj/clothing/obj_hands_ring.dmi b/icons/obj/clothing/obj_hands_ring.dmi index 0e72620f9c..e0310ae2a5 100644 Binary files a/icons/obj/clothing/obj_hands_ring.dmi and b/icons/obj/clothing/obj_hands_ring.dmi differ diff --git a/icons/obj/clothing/obj_head.dmi b/icons/obj/clothing/obj_head.dmi index b01cd17b30..a03398b052 100644 Binary files a/icons/obj/clothing/obj_head.dmi and b/icons/obj/clothing/obj_head.dmi differ diff --git a/icons/obj/clothing/obj_head_ipc.dmi b/icons/obj/clothing/obj_head_ipc.dmi index 8804df63a3..1dc6096298 100644 Binary files a/icons/obj/clothing/obj_head_ipc.dmi and b/icons/obj/clothing/obj_head_ipc.dmi differ diff --git a/icons/obj/clothing/obj_mask.dmi b/icons/obj/clothing/obj_mask.dmi index 1e777f3b94..f5c8645735 100644 Binary files a/icons/obj/clothing/obj_mask.dmi and b/icons/obj/clothing/obj_mask.dmi differ diff --git a/icons/obj/clothing/obj_suit.dmi b/icons/obj/clothing/obj_suit.dmi index 5c4220b05f..a9af931b87 100644 Binary files a/icons/obj/clothing/obj_suit.dmi and b/icons/obj/clothing/obj_suit.dmi differ diff --git a/icons/obj/clothing/obj_suit_modular_armor.dmi b/icons/obj/clothing/obj_suit_modular_armor.dmi index b4b490e002..2fda4bf564 100644 Binary files a/icons/obj/clothing/obj_suit_modular_armor.dmi and b/icons/obj/clothing/obj_suit_modular_armor.dmi differ diff --git a/icons/obj/clothing/obj_under.dmi b/icons/obj/clothing/obj_under.dmi index 26c3a3508c..2d9af03f43 100644 Binary files a/icons/obj/clothing/obj_under.dmi and b/icons/obj/clothing/obj_under.dmi differ diff --git a/icons/obj/clothing/rings.dmi b/icons/obj/clothing/rings.dmi index 5274bf8735..802143b56f 100644 Binary files a/icons/obj/clothing/rings.dmi and b/icons/obj/clothing/rings.dmi differ diff --git a/icons/obj/clothing/shoes.dmi b/icons/obj/clothing/shoes.dmi index f79c9171a1..8c04beb21d 100644 Binary files a/icons/obj/clothing/shoes.dmi and b/icons/obj/clothing/shoes.dmi differ diff --git a/icons/obj/clothing/species/bogani/hats.dmi b/icons/obj/clothing/species/bogani/hats.dmi index 714fda6e35..c363e85544 100644 Binary files a/icons/obj/clothing/species/bogani/hats.dmi and b/icons/obj/clothing/species/bogani/hats.dmi differ diff --git a/icons/obj/clothing/species/bogani/suits.dmi b/icons/obj/clothing/species/bogani/suits.dmi index 77cc751cb3..2a0c522f57 100644 Binary files a/icons/obj/clothing/species/bogani/suits.dmi and b/icons/obj/clothing/species/bogani/suits.dmi differ diff --git a/icons/obj/clothing/species/bogani/uniform.dmi b/icons/obj/clothing/species/bogani/uniform.dmi index a27c106538..847faaee59 100644 Binary files a/icons/obj/clothing/species/bogani/uniform.dmi and b/icons/obj/clothing/species/bogani/uniform.dmi differ diff --git a/icons/obj/clothing/species/resomi/hats.dmi b/icons/obj/clothing/species/resomi/hats.dmi index dbf944be85..ee2740c66c 100644 Binary files a/icons/obj/clothing/species/resomi/hats.dmi and b/icons/obj/clothing/species/resomi/hats.dmi differ diff --git a/icons/obj/clothing/species/resomi/suits.dmi b/icons/obj/clothing/species/resomi/suits.dmi index a34dcc3a59..ceb9de6e7f 100644 Binary files a/icons/obj/clothing/species/resomi/suits.dmi and b/icons/obj/clothing/species/resomi/suits.dmi differ diff --git a/icons/obj/clothing/species/resomi/uniform.dmi b/icons/obj/clothing/species/resomi/uniform.dmi index dd59ea8b93..0ecea52699 100644 Binary files a/icons/obj/clothing/species/resomi/uniform.dmi and b/icons/obj/clothing/species/resomi/uniform.dmi differ diff --git a/icons/obj/clothing/species/skrell/hats.dmi b/icons/obj/clothing/species/skrell/hats.dmi index 326fa8fcf0..5c09eb1b43 100644 Binary files a/icons/obj/clothing/species/skrell/hats.dmi and b/icons/obj/clothing/species/skrell/hats.dmi differ diff --git a/icons/obj/clothing/species/skrell/obj_head_skrell.dmi b/icons/obj/clothing/species/skrell/obj_head_skrell.dmi index e33cea64fe..6a95bc535b 100644 Binary files a/icons/obj/clothing/species/skrell/obj_head_skrell.dmi and b/icons/obj/clothing/species/skrell/obj_head_skrell.dmi differ diff --git a/icons/obj/clothing/species/skrell/obj_suit_skrell.dmi b/icons/obj/clothing/species/skrell/obj_suit_skrell.dmi index cf18f7a1af..628b59118d 100644 Binary files a/icons/obj/clothing/species/skrell/obj_suit_skrell.dmi and b/icons/obj/clothing/species/skrell/obj_suit_skrell.dmi differ diff --git a/icons/obj/clothing/species/skrell/suits.dmi b/icons/obj/clothing/species/skrell/suits.dmi index f0f4416fc3..13a07e6496 100644 Binary files a/icons/obj/clothing/species/skrell/suits.dmi and b/icons/obj/clothing/species/skrell/suits.dmi differ diff --git a/icons/obj/clothing/species/tajaran/hats.dmi b/icons/obj/clothing/species/tajaran/hats.dmi index 01b023f0dc..3b8418871a 100644 Binary files a/icons/obj/clothing/species/tajaran/hats.dmi and b/icons/obj/clothing/species/tajaran/hats.dmi differ diff --git a/icons/obj/clothing/species/tajaran/suits.dmi b/icons/obj/clothing/species/tajaran/suits.dmi index e44881c22c..04192995ea 100644 Binary files a/icons/obj/clothing/species/tajaran/suits.dmi and b/icons/obj/clothing/species/tajaran/suits.dmi differ diff --git a/icons/obj/clothing/species/unathi/hats.dmi b/icons/obj/clothing/species/unathi/hats.dmi index 72815338f2..15914239d2 100644 Binary files a/icons/obj/clothing/species/unathi/hats.dmi and b/icons/obj/clothing/species/unathi/hats.dmi differ diff --git a/icons/obj/clothing/species/unathi/obj_head_unathi.dmi b/icons/obj/clothing/species/unathi/obj_head_unathi.dmi index d77997d9cc..8c6f7686c7 100644 Binary files a/icons/obj/clothing/species/unathi/obj_head_unathi.dmi and b/icons/obj/clothing/species/unathi/obj_head_unathi.dmi differ diff --git a/icons/obj/clothing/species/unathi/obj_suit_unathi.dmi b/icons/obj/clothing/species/unathi/obj_suit_unathi.dmi index 966f896623..943f45fd13 100644 Binary files a/icons/obj/clothing/species/unathi/obj_suit_unathi.dmi and b/icons/obj/clothing/species/unathi/obj_suit_unathi.dmi differ diff --git a/icons/obj/clothing/species/unathi/suits.dmi b/icons/obj/clothing/species/unathi/suits.dmi index da6ed06196..86b6d58177 100644 Binary files a/icons/obj/clothing/species/unathi/suits.dmi and b/icons/obj/clothing/species/unathi/suits.dmi differ diff --git a/icons/obj/clothing/species/vox/obj_head_vox.dmi b/icons/obj/clothing/species/vox/obj_head_vox.dmi index 8939e2a88f..e5bdb3a23b 100644 Binary files a/icons/obj/clothing/species/vox/obj_head_vox.dmi and b/icons/obj/clothing/species/vox/obj_head_vox.dmi differ diff --git a/icons/obj/clothing/species/vox/obj_suit_vox.dmi b/icons/obj/clothing/species/vox/obj_suit_vox.dmi index 8257bcfe8d..530f5f6807 100644 Binary files a/icons/obj/clothing/species/vox/obj_suit_vox.dmi and b/icons/obj/clothing/species/vox/obj_suit_vox.dmi differ diff --git a/icons/obj/clothing/suits.dmi b/icons/obj/clothing/suits.dmi index 998bcccb29..27bdc0e8ef 100644 Binary files a/icons/obj/clothing/suits.dmi and b/icons/obj/clothing/suits.dmi differ diff --git a/icons/obj/clothing/ties.dmi b/icons/obj/clothing/ties.dmi index 1910445d44..97c1dee439 100644 Binary files a/icons/obj/clothing/ties.dmi and b/icons/obj/clothing/ties.dmi differ diff --git a/icons/obj/clothing/uniforms.dmi b/icons/obj/clothing/uniforms.dmi index 8f2e415c68..f4a833908a 100644 Binary files a/icons/obj/clothing/uniforms.dmi and b/icons/obj/clothing/uniforms.dmi differ diff --git a/icons/obj/clothing/unused.dmi b/icons/obj/clothing/unused.dmi index f309bbd7f6..9e5a4a6d51 100644 Binary files a/icons/obj/clothing/unused.dmi and b/icons/obj/clothing/unused.dmi differ diff --git a/icons/obj/coatrack.dmi b/icons/obj/coatrack.dmi index 7471bb3aad..853568b8b1 100644 Binary files a/icons/obj/coatrack.dmi and b/icons/obj/coatrack.dmi differ diff --git a/icons/obj/coilgun.dmi b/icons/obj/coilgun.dmi index 238bbd9a3d..4b8e481a99 100644 Binary files a/icons/obj/coilgun.dmi and b/icons/obj/coilgun.dmi differ diff --git a/icons/obj/coin.dmi b/icons/obj/coin.dmi index 179271fd8b..526b32cdbe 100644 Binary files a/icons/obj/coin.dmi and b/icons/obj/coin.dmi differ diff --git a/icons/obj/computer.dmi b/icons/obj/computer.dmi index f503ca548a..d49d69af44 100644 Binary files a/icons/obj/computer.dmi and b/icons/obj/computer.dmi differ diff --git a/icons/obj/contraband.dmi b/icons/obj/contraband.dmi index bc8a56f908..158c58256c 100644 Binary files a/icons/obj/contraband.dmi and b/icons/obj/contraband.dmi differ diff --git a/icons/obj/cooking_machines.dmi b/icons/obj/cooking_machines.dmi index 6577147a92..b65c36cbfc 100644 Binary files a/icons/obj/cooking_machines.dmi and b/icons/obj/cooking_machines.dmi differ diff --git a/icons/obj/crafting_icons.dmi b/icons/obj/crafting_icons.dmi index 3733993270..a456e93ac9 100644 Binary files a/icons/obj/crafting_icons.dmi and b/icons/obj/crafting_icons.dmi differ diff --git a/icons/obj/crates_new.dmi b/icons/obj/crates_new.dmi index 9422a6cfeb..1261238592 100644 Binary files a/icons/obj/crates_new.dmi and b/icons/obj/crates_new.dmi differ diff --git a/icons/obj/crayons.dmi b/icons/obj/crayons.dmi index 7ebabd5a81..74399a45bb 100644 Binary files a/icons/obj/crayons.dmi and b/icons/obj/crayons.dmi differ diff --git a/icons/obj/cryobag.dmi b/icons/obj/cryobag.dmi index e8cb81e1b1..fef493b409 100644 Binary files a/icons/obj/cryobag.dmi and b/icons/obj/cryobag.dmi differ diff --git a/icons/obj/cryogenics.dmi b/icons/obj/cryogenics.dmi index ae4681657c..f7ef2f2de3 100644 Binary files a/icons/obj/cryogenics.dmi and b/icons/obj/cryogenics.dmi differ diff --git a/icons/obj/cryogenics_split.dmi b/icons/obj/cryogenics_split.dmi index a25513a143..e85ab92b02 100644 Binary files a/icons/obj/cryogenics_split.dmi and b/icons/obj/cryogenics_split.dmi differ diff --git a/icons/obj/crystal_tools.dmi b/icons/obj/crystal_tools.dmi index 033176cd04..4798170733 100644 Binary files a/icons/obj/crystal_tools.dmi and b/icons/obj/crystal_tools.dmi differ diff --git a/icons/obj/cult.dmi b/icons/obj/cult.dmi index 8e723201e4..ca48206fbc 100644 Binary files a/icons/obj/cult.dmi and b/icons/obj/cult.dmi differ diff --git a/icons/obj/cult_tall.dmi b/icons/obj/cult_tall.dmi index 9a580a303b..9efe6a3b41 100644 Binary files a/icons/obj/cult_tall.dmi and b/icons/obj/cult_tall.dmi differ diff --git a/icons/obj/curtain.dmi b/icons/obj/curtain.dmi index 69b7de1dc0..d83241eb51 100644 Binary files a/icons/obj/curtain.dmi and b/icons/obj/curtain.dmi differ diff --git a/icons/obj/custom_items_obj.dmi b/icons/obj/custom_items_obj.dmi deleted file mode 100644 index e69de29bb2..0000000000 diff --git a/icons/obj/decal_warning_stripes.dmi b/icons/obj/decal_warning_stripes.dmi index a0cf5e3244..d269cb6132 100644 Binary files a/icons/obj/decal_warning_stripes.dmi and b/icons/obj/decal_warning_stripes.dmi differ diff --git a/icons/obj/decals.dmi b/icons/obj/decals.dmi index c5131950b5..ef1541b037 100644 Binary files a/icons/obj/decals.dmi and b/icons/obj/decals.dmi differ diff --git a/icons/obj/defibrillator.dmi b/icons/obj/defibrillator.dmi index f399f37f4b..d74eaf23f7 100644 Binary files a/icons/obj/defibrillator.dmi and b/icons/obj/defibrillator.dmi differ diff --git a/icons/obj/device.dmi b/icons/obj/device.dmi index f5adbe14d1..da4e109dc9 100644 Binary files a/icons/obj/device.dmi and b/icons/obj/device.dmi differ diff --git a/icons/obj/dice.dmi b/icons/obj/dice.dmi index f6a209b468..3217808472 100644 Binary files a/icons/obj/dice.dmi and b/icons/obj/dice.dmi differ diff --git a/icons/obj/diona.dmi b/icons/obj/diona.dmi index a1a96b5b38..0554ab7d27 100644 Binary files a/icons/obj/diona.dmi and b/icons/obj/diona.dmi differ diff --git a/icons/obj/disperser.dmi b/icons/obj/disperser.dmi index ab07489d17..550e132dcf 100644 Binary files a/icons/obj/disperser.dmi and b/icons/obj/disperser.dmi differ diff --git a/icons/obj/doors/1x2blast_hor.dmi b/icons/obj/doors/1x2blast_hor.dmi index a0a3d9351f..65a596dee6 100644 Binary files a/icons/obj/doors/1x2blast_hor.dmi and b/icons/obj/doors/1x2blast_hor.dmi differ diff --git a/icons/obj/doors/1x2blast_vert.dmi b/icons/obj/doors/1x2blast_vert.dmi index 6e810457d1..34a3bdaa3e 100644 Binary files a/icons/obj/doors/1x2blast_vert.dmi and b/icons/obj/doors/1x2blast_vert.dmi differ diff --git a/icons/obj/doors/1x4blast_hor.dmi b/icons/obj/doors/1x4blast_hor.dmi index d43298973c..e7ad530a1d 100644 Binary files a/icons/obj/doors/1x4blast_hor.dmi and b/icons/obj/doors/1x4blast_hor.dmi differ diff --git a/icons/obj/doors/1x4blast_vert.dmi b/icons/obj/doors/1x4blast_vert.dmi index 26c730b983..33aaaa67c0 100644 Binary files a/icons/obj/doors/1x4blast_vert.dmi and b/icons/obj/doors/1x4blast_vert.dmi differ diff --git a/icons/obj/doors/Door1.dmi b/icons/obj/doors/Door1.dmi index 59ef7116c3..aebd84872f 100644 Binary files a/icons/obj/doors/Door1.dmi and b/icons/obj/doors/Door1.dmi differ diff --git a/icons/obj/doors/DoorHazard2x1.dmi b/icons/obj/doors/DoorHazard2x1.dmi index 081f44087c..67bbc8b181 100644 Binary files a/icons/obj/doors/DoorHazard2x1.dmi and b/icons/obj/doors/DoorHazard2x1.dmi differ diff --git a/icons/obj/doors/Doorf.dmi b/icons/obj/doors/Doorf.dmi index 5ece7e6cd9..a4bd1c6c59 100644 Binary files a/icons/obj/doors/Doorf.dmi and b/icons/obj/doors/Doorf.dmi differ diff --git a/icons/obj/doors/Doorglass.dmi b/icons/obj/doors/Doorglass.dmi index f4afd02c99..433d610555 100644 Binary files a/icons/obj/doors/Doorglass.dmi and b/icons/obj/doors/Doorglass.dmi differ diff --git a/icons/obj/doors/ascent/base.dmi b/icons/obj/doors/ascent/base.dmi index a67b337dd7..6376cdfcd4 100644 Binary files a/icons/obj/doors/ascent/base.dmi and b/icons/obj/doors/ascent/base.dmi differ diff --git a/icons/obj/doors/ascent/emag.dmi b/icons/obj/doors/ascent/emag.dmi index c81124414b..7f1b78d119 100644 Binary files a/icons/obj/doors/ascent/emag.dmi and b/icons/obj/doors/ascent/emag.dmi differ diff --git a/icons/obj/doors/ascent/lights_bolts.dmi b/icons/obj/doors/ascent/lights_bolts.dmi index d20ed9037f..76878f02e9 100644 Binary files a/icons/obj/doors/ascent/lights_bolts.dmi and b/icons/obj/doors/ascent/lights_bolts.dmi differ diff --git a/icons/obj/doors/ascent/lights_deny.dmi b/icons/obj/doors/ascent/lights_deny.dmi index 7a5ff1faf7..eecbf09f70 100644 Binary files a/icons/obj/doors/ascent/lights_deny.dmi and b/icons/obj/doors/ascent/lights_deny.dmi differ diff --git a/icons/obj/doors/ascent/lights_green.dmi b/icons/obj/doors/ascent/lights_green.dmi index b6d46559d1..2a7ab5b730 100644 Binary files a/icons/obj/doors/ascent/lights_green.dmi and b/icons/obj/doors/ascent/lights_green.dmi differ diff --git a/icons/obj/doors/ascent/panel.dmi b/icons/obj/doors/ascent/panel.dmi index b470a59088..a59c6c7b7e 100644 Binary files a/icons/obj/doors/ascent/panel.dmi and b/icons/obj/doors/ascent/panel.dmi differ diff --git a/icons/obj/doors/ascent/sparks_broken.dmi b/icons/obj/doors/ascent/sparks_broken.dmi index c34af0e725..f197728e76 100644 Binary files a/icons/obj/doors/ascent/sparks_broken.dmi and b/icons/obj/doors/ascent/sparks_broken.dmi differ diff --git a/icons/obj/doors/ascent/sparks_damaged.dmi b/icons/obj/doors/ascent/sparks_damaged.dmi index b21f418a6f..9cc7bc0ac2 100644 Binary files a/icons/obj/doors/ascent/sparks_damaged.dmi and b/icons/obj/doors/ascent/sparks_damaged.dmi differ diff --git a/icons/obj/doors/ascent/welded.dmi b/icons/obj/doors/ascent/welded.dmi index eae1c9715c..a5a8223fea 100644 Binary files a/icons/obj/doors/ascent/welded.dmi and b/icons/obj/doors/ascent/welded.dmi differ diff --git a/icons/obj/doors/centcomm/door.dmi b/icons/obj/doors/centcomm/door.dmi index 7430449e83..63fe4e313a 100644 Binary files a/icons/obj/doors/centcomm/door.dmi and b/icons/obj/doors/centcomm/door.dmi differ diff --git a/icons/obj/doors/centcomm/fill_steel.dmi b/icons/obj/doors/centcomm/fill_steel.dmi index 29fabd9182..a4b9ab95b9 100644 Binary files a/icons/obj/doors/centcomm/fill_steel.dmi and b/icons/obj/doors/centcomm/fill_steel.dmi differ diff --git a/icons/obj/doors/door_assembly2x1.dmi b/icons/obj/doors/door_assembly2x1.dmi index 1dfadb3bfb..6f2a4ed33e 100644 Binary files a/icons/obj/doors/door_assembly2x1.dmi and b/icons/obj/doors/door_assembly2x1.dmi differ diff --git a/icons/obj/doors/door_light_plalettes.dmi b/icons/obj/doors/door_light_plalettes.dmi index 820e2eb8c1..5d2016e979 100644 Binary files a/icons/obj/doors/door_light_plalettes.dmi and b/icons/obj/doors/door_light_plalettes.dmi differ diff --git a/icons/obj/doors/doorint.dmi b/icons/obj/doors/doorint.dmi index 1b847d3741..818649b8e4 100644 Binary files a/icons/obj/doors/doorint.dmi and b/icons/obj/doors/doorint.dmi differ diff --git a/icons/obj/doors/doorlift.dmi b/icons/obj/doors/doorlift.dmi index 3b037a8956..2a7dc520bc 100644 Binary files a/icons/obj/doors/doorlift.dmi and b/icons/obj/doors/doorlift.dmi differ diff --git a/icons/obj/doors/doormorgue.dmi b/icons/obj/doors/doormorgue.dmi index c0ed114732..6bc34e7e44 100644 Binary files a/icons/obj/doors/doormorgue.dmi and b/icons/obj/doors/doormorgue.dmi differ diff --git a/icons/obj/doors/double/color.dmi b/icons/obj/doors/double/color.dmi index e660fd4c71..dd462ed4c3 100644 Binary files a/icons/obj/doors/double/color.dmi and b/icons/obj/doors/double/color.dmi differ diff --git a/icons/obj/doors/double/door.dmi b/icons/obj/doors/double/door.dmi index 75c194ec90..4e20b4e33a 100644 Binary files a/icons/obj/doors/double/door.dmi and b/icons/obj/doors/double/door.dmi differ diff --git a/icons/obj/doors/double/emag.dmi b/icons/obj/doors/double/emag.dmi index ef65451a18..7073d0978d 100644 Binary files a/icons/obj/doors/double/emag.dmi and b/icons/obj/doors/double/emag.dmi differ diff --git a/icons/obj/doors/double/fill_color.dmi b/icons/obj/doors/double/fill_color.dmi index 8bd0690bdc..e92fc9a623 100644 Binary files a/icons/obj/doors/double/fill_color.dmi and b/icons/obj/doors/double/fill_color.dmi differ diff --git a/icons/obj/doors/double/fill_glass.dmi b/icons/obj/doors/double/fill_glass.dmi index 104d39bbaa..bdf82672a5 100644 Binary files a/icons/obj/doors/double/fill_glass.dmi and b/icons/obj/doors/double/fill_glass.dmi differ diff --git a/icons/obj/doors/double/fill_steel.dmi b/icons/obj/doors/double/fill_steel.dmi index f55619888a..13da9c040f 100644 Binary files a/icons/obj/doors/double/fill_steel.dmi and b/icons/obj/doors/double/fill_steel.dmi differ diff --git a/icons/obj/doors/double/fill_stripe.dmi b/icons/obj/doors/double/fill_stripe.dmi index 0d04fd445b..25e96f0e18 100644 Binary files a/icons/obj/doors/double/fill_stripe.dmi and b/icons/obj/doors/double/fill_stripe.dmi differ diff --git a/icons/obj/doors/double/lights_bolts.dmi b/icons/obj/doors/double/lights_bolts.dmi index 2446574687..da045f9224 100644 Binary files a/icons/obj/doors/double/lights_bolts.dmi and b/icons/obj/doors/double/lights_bolts.dmi differ diff --git a/icons/obj/doors/double/lights_deny.dmi b/icons/obj/doors/double/lights_deny.dmi index 46a615d620..9894df5b9d 100644 Binary files a/icons/obj/doors/double/lights_deny.dmi and b/icons/obj/doors/double/lights_deny.dmi differ diff --git a/icons/obj/doors/double/lights_green.dmi b/icons/obj/doors/double/lights_green.dmi index 60fb3ce8c0..9a0f88d0ae 100644 Binary files a/icons/obj/doors/double/lights_green.dmi and b/icons/obj/doors/double/lights_green.dmi differ diff --git a/icons/obj/doors/double/panel.dmi b/icons/obj/doors/double/panel.dmi index 96c5648e17..8c12c8b0dd 100644 Binary files a/icons/obj/doors/double/panel.dmi and b/icons/obj/doors/double/panel.dmi differ diff --git a/icons/obj/doors/double/stripe.dmi b/icons/obj/doors/double/stripe.dmi index d56e43347d..3d1ded033c 100644 Binary files a/icons/obj/doors/double/stripe.dmi and b/icons/obj/doors/double/stripe.dmi differ diff --git a/icons/obj/doors/double/welded.dmi b/icons/obj/doors/double/welded.dmi index 78b40ad64d..7e3773df1c 100644 Binary files a/icons/obj/doors/double/welded.dmi and b/icons/obj/doors/double/welded.dmi differ diff --git a/icons/obj/doors/edge_Doorfire.dmi b/icons/obj/doors/edge_Doorfire.dmi index 0c253bb070..847e441c0f 100644 Binary files a/icons/obj/doors/edge_Doorfire.dmi and b/icons/obj/doors/edge_Doorfire.dmi differ diff --git a/icons/obj/doors/elevator/door.dmi b/icons/obj/doors/elevator/door.dmi index 3cfbc002d3..d012da33f1 100644 Binary files a/icons/obj/doors/elevator/door.dmi and b/icons/obj/doors/elevator/door.dmi differ diff --git a/icons/obj/doors/elevator/fill_glass.dmi b/icons/obj/doors/elevator/fill_glass.dmi index 97506255fa..e12dda492f 100644 Binary files a/icons/obj/doors/elevator/fill_glass.dmi and b/icons/obj/doors/elevator/fill_glass.dmi differ diff --git a/icons/obj/doors/elevator/fill_steel.dmi b/icons/obj/doors/elevator/fill_steel.dmi index 2dcb67dce9..f092e2ebc5 100644 Binary files a/icons/obj/doors/elevator/fill_steel.dmi and b/icons/obj/doors/elevator/fill_steel.dmi differ diff --git a/icons/obj/doors/elevator/lights_bolts.dmi b/icons/obj/doors/elevator/lights_bolts.dmi index 682eecd4e9..1712ba8288 100644 Binary files a/icons/obj/doors/elevator/lights_bolts.dmi and b/icons/obj/doors/elevator/lights_bolts.dmi differ diff --git a/icons/obj/doors/elevator/lights_deny.dmi b/icons/obj/doors/elevator/lights_deny.dmi index bd9471fd4d..9c0f6bf10a 100644 Binary files a/icons/obj/doors/elevator/lights_deny.dmi and b/icons/obj/doors/elevator/lights_deny.dmi differ diff --git a/icons/obj/doors/elevator/lights_green.dmi b/icons/obj/doors/elevator/lights_green.dmi index faafc7836a..3880d2d062 100644 Binary files a/icons/obj/doors/elevator/lights_green.dmi and b/icons/obj/doors/elevator/lights_green.dmi differ diff --git a/icons/obj/doors/elevator/welded.dmi b/icons/obj/doors/elevator/welded.dmi index 90af33643b..cb7ae49212 100644 Binary files a/icons/obj/doors/elevator/welded.dmi and b/icons/obj/doors/elevator/welded.dmi differ diff --git a/icons/obj/doors/external/color.dmi b/icons/obj/doors/external/color.dmi index 0ee607e9b5..dc7979db4d 100644 Binary files a/icons/obj/doors/external/color.dmi and b/icons/obj/doors/external/color.dmi differ diff --git a/icons/obj/doors/external/door.dmi b/icons/obj/doors/external/door.dmi index 77cd10c88d..f8ae41082c 100644 Binary files a/icons/obj/doors/external/door.dmi and b/icons/obj/doors/external/door.dmi differ diff --git a/icons/obj/doors/external/emag.dmi b/icons/obj/doors/external/emag.dmi index ace966c362..ca207b3eb6 100644 Binary files a/icons/obj/doors/external/emag.dmi and b/icons/obj/doors/external/emag.dmi differ diff --git a/icons/obj/doors/external/fill_color.dmi b/icons/obj/doors/external/fill_color.dmi index 3e34587dee..6258262963 100644 Binary files a/icons/obj/doors/external/fill_color.dmi and b/icons/obj/doors/external/fill_color.dmi differ diff --git a/icons/obj/doors/external/fill_glass.dmi b/icons/obj/doors/external/fill_glass.dmi index a65ac23510..ee9a9cf6a4 100644 Binary files a/icons/obj/doors/external/fill_glass.dmi and b/icons/obj/doors/external/fill_glass.dmi differ diff --git a/icons/obj/doors/external/fill_steel.dmi b/icons/obj/doors/external/fill_steel.dmi index 5daf6473c0..d924477707 100644 Binary files a/icons/obj/doors/external/fill_steel.dmi and b/icons/obj/doors/external/fill_steel.dmi differ diff --git a/icons/obj/doors/external/lights_bolts.dmi b/icons/obj/doors/external/lights_bolts.dmi index 3b0afea508..27192c82ff 100644 Binary files a/icons/obj/doors/external/lights_bolts.dmi and b/icons/obj/doors/external/lights_bolts.dmi differ diff --git a/icons/obj/doors/external/lights_deny.dmi b/icons/obj/doors/external/lights_deny.dmi index 38c652d9f6..856c7433ab 100644 Binary files a/icons/obj/doors/external/lights_deny.dmi and b/icons/obj/doors/external/lights_deny.dmi differ diff --git a/icons/obj/doors/external/lights_green.dmi b/icons/obj/doors/external/lights_green.dmi index b296a0925d..ddf2f9201a 100644 Binary files a/icons/obj/doors/external/lights_green.dmi and b/icons/obj/doors/external/lights_green.dmi differ diff --git a/icons/obj/doors/hatch/door.dmi b/icons/obj/doors/hatch/door.dmi index e5813fcbf0..5068d64e0f 100644 Binary files a/icons/obj/doors/hatch/door.dmi and b/icons/obj/doors/hatch/door.dmi differ diff --git a/icons/obj/doors/hatch/emag.dmi b/icons/obj/doors/hatch/emag.dmi index 4fd7e141b3..22f901fcfe 100644 Binary files a/icons/obj/doors/hatch/emag.dmi and b/icons/obj/doors/hatch/emag.dmi differ diff --git a/icons/obj/doors/hatch/fill_steel.dmi b/icons/obj/doors/hatch/fill_steel.dmi index 1da12d292f..acd226df2c 100644 Binary files a/icons/obj/doors/hatch/fill_steel.dmi and b/icons/obj/doors/hatch/fill_steel.dmi differ diff --git a/icons/obj/doors/hatch/fill_stripe.dmi b/icons/obj/doors/hatch/fill_stripe.dmi index f0bb1513fe..9ecd1faa96 100644 Binary files a/icons/obj/doors/hatch/fill_stripe.dmi and b/icons/obj/doors/hatch/fill_stripe.dmi differ diff --git a/icons/obj/doors/hatch/lights_bolts.dmi b/icons/obj/doors/hatch/lights_bolts.dmi index 1a17f01ca6..8b428e572a 100644 Binary files a/icons/obj/doors/hatch/lights_bolts.dmi and b/icons/obj/doors/hatch/lights_bolts.dmi differ diff --git a/icons/obj/doors/hatch/lights_deny.dmi b/icons/obj/doors/hatch/lights_deny.dmi index 1fe72d724f..0ff2ff3d06 100644 Binary files a/icons/obj/doors/hatch/lights_deny.dmi and b/icons/obj/doors/hatch/lights_deny.dmi differ diff --git a/icons/obj/doors/hatch/lights_green.dmi b/icons/obj/doors/hatch/lights_green.dmi index a8f1b44a9c..2df8d1b4aa 100644 Binary files a/icons/obj/doors/hatch/lights_green.dmi and b/icons/obj/doors/hatch/lights_green.dmi differ diff --git a/icons/obj/doors/hatch/panel.dmi b/icons/obj/doors/hatch/panel.dmi index 572e7827f0..251949ea69 100644 Binary files a/icons/obj/doors/hatch/panel.dmi and b/icons/obj/doors/hatch/panel.dmi differ diff --git a/icons/obj/doors/hatch/stripe.dmi b/icons/obj/doors/hatch/stripe.dmi index 005c6e55aa..4b5d0f358c 100644 Binary files a/icons/obj/doors/hatch/stripe.dmi and b/icons/obj/doors/hatch/stripe.dmi differ diff --git a/icons/obj/doors/hatch/welded.dmi b/icons/obj/doors/hatch/welded.dmi index a0a5f36344..cdb075ab58 100644 Binary files a/icons/obj/doors/hatch/welded.dmi and b/icons/obj/doors/hatch/welded.dmi differ diff --git a/icons/obj/doors/hazard/door.dmi b/icons/obj/doors/hazard/door.dmi index e245c08d1e..56ede91332 100644 Binary files a/icons/obj/doors/hazard/door.dmi and b/icons/obj/doors/hazard/door.dmi differ diff --git a/icons/obj/doors/hazard/panel.dmi b/icons/obj/doors/hazard/panel.dmi index b982632785..d63c4aa088 100644 Binary files a/icons/obj/doors/hazard/panel.dmi and b/icons/obj/doors/hazard/panel.dmi differ diff --git a/icons/obj/doors/hazard/welded.dmi b/icons/obj/doors/hazard/welded.dmi index 7293d4144c..60d1d3984d 100644 Binary files a/icons/obj/doors/hazard/welded.dmi and b/icons/obj/doors/hazard/welded.dmi differ diff --git a/icons/obj/doors/hightechsecurity.dmi b/icons/obj/doors/hightechsecurity.dmi index 236995e914..05e9fb64ea 100644 Binary files a/icons/obj/doors/hightechsecurity.dmi and b/icons/obj/doors/hightechsecurity.dmi differ diff --git a/icons/obj/doors/material_doors.dmi b/icons/obj/doors/material_doors.dmi index 5f90312aac..71deea8db2 100644 Binary files a/icons/obj/doors/material_doors.dmi and b/icons/obj/doors/material_doors.dmi differ diff --git a/icons/obj/doors/material_doors_reflection.dmi b/icons/obj/doors/material_doors_reflection.dmi index 4184aa2451..64485d2f3e 100644 Binary files a/icons/obj/doors/material_doors_reflection.dmi and b/icons/obj/doors/material_doors_reflection.dmi differ diff --git a/icons/obj/doors/rapid_pdoor.dmi b/icons/obj/doors/rapid_pdoor.dmi index 3934a616da..8e31e66d50 100644 Binary files a/icons/obj/doors/rapid_pdoor.dmi and b/icons/obj/doors/rapid_pdoor.dmi differ diff --git a/icons/obj/doors/secure/door.dmi b/icons/obj/doors/secure/door.dmi index c85bbe642e..7ae6be5d9a 100644 Binary files a/icons/obj/doors/secure/door.dmi and b/icons/obj/doors/secure/door.dmi differ diff --git a/icons/obj/doors/secure/fill_steel.dmi b/icons/obj/doors/secure/fill_steel.dmi index dcb42c609a..3dd36f18ea 100644 Binary files a/icons/obj/doors/secure/fill_steel.dmi and b/icons/obj/doors/secure/fill_steel.dmi differ diff --git a/icons/obj/doors/station/color.dmi b/icons/obj/doors/station/color.dmi index 065dbb7d09..b216bd5fc1 100644 Binary files a/icons/obj/doors/station/color.dmi and b/icons/obj/doors/station/color.dmi differ diff --git a/icons/obj/doors/station/door.dmi b/icons/obj/doors/station/door.dmi index 19ee86494f..a841f80456 100644 Binary files a/icons/obj/doors/station/door.dmi and b/icons/obj/doors/station/door.dmi differ diff --git a/icons/obj/doors/station/emag.dmi b/icons/obj/doors/station/emag.dmi index 90947fe3d0..0a86f08450 100644 Binary files a/icons/obj/doors/station/emag.dmi and b/icons/obj/doors/station/emag.dmi differ diff --git a/icons/obj/doors/station/fill_color.dmi b/icons/obj/doors/station/fill_color.dmi index 1bf2e4f881..2265945dd4 100644 Binary files a/icons/obj/doors/station/fill_color.dmi and b/icons/obj/doors/station/fill_color.dmi differ diff --git a/icons/obj/doors/station/fill_glass.dmi b/icons/obj/doors/station/fill_glass.dmi index 0a97fa5ea1..cc015000b9 100644 Binary files a/icons/obj/doors/station/fill_glass.dmi and b/icons/obj/doors/station/fill_glass.dmi differ diff --git a/icons/obj/doors/station/fill_steel.dmi b/icons/obj/doors/station/fill_steel.dmi index 5502b711d8..b7967bbfcf 100644 Binary files a/icons/obj/doors/station/fill_steel.dmi and b/icons/obj/doors/station/fill_steel.dmi differ diff --git a/icons/obj/doors/station/fill_stripe.dmi b/icons/obj/doors/station/fill_stripe.dmi index 7dda51c7dc..fde70df5d7 100644 Binary files a/icons/obj/doors/station/fill_stripe.dmi and b/icons/obj/doors/station/fill_stripe.dmi differ diff --git a/icons/obj/doors/station/lights_bolts.dmi b/icons/obj/doors/station/lights_bolts.dmi index b8151373f2..6e7bbda30e 100644 Binary files a/icons/obj/doors/station/lights_bolts.dmi and b/icons/obj/doors/station/lights_bolts.dmi differ diff --git a/icons/obj/doors/station/lights_deny.dmi b/icons/obj/doors/station/lights_deny.dmi index fff1fd8445..40948796e5 100644 Binary files a/icons/obj/doors/station/lights_deny.dmi and b/icons/obj/doors/station/lights_deny.dmi differ diff --git a/icons/obj/doors/station/lights_green.dmi b/icons/obj/doors/station/lights_green.dmi index 6af375fae8..c73b81c1ad 100644 Binary files a/icons/obj/doors/station/lights_green.dmi and b/icons/obj/doors/station/lights_green.dmi differ diff --git a/icons/obj/doors/station/panel.dmi b/icons/obj/doors/station/panel.dmi index 3db260a623..094b30e8c1 100644 Binary files a/icons/obj/doors/station/panel.dmi and b/icons/obj/doors/station/panel.dmi differ diff --git a/icons/obj/doors/station/sparks_broken.dmi b/icons/obj/doors/station/sparks_broken.dmi index 06ad95ef51..8940b8b59e 100644 Binary files a/icons/obj/doors/station/sparks_broken.dmi and b/icons/obj/doors/station/sparks_broken.dmi differ diff --git a/icons/obj/doors/station/sparks_damaged.dmi b/icons/obj/doors/station/sparks_damaged.dmi index 64c6f96f55..59fde95710 100644 Binary files a/icons/obj/doors/station/sparks_damaged.dmi and b/icons/obj/doors/station/sparks_damaged.dmi differ diff --git a/icons/obj/doors/station/stripe.dmi b/icons/obj/doors/station/stripe.dmi index 4819abffee..1805b39ba0 100644 Binary files a/icons/obj/doors/station/stripe.dmi and b/icons/obj/doors/station/stripe.dmi differ diff --git a/icons/obj/doors/station/welded.dmi b/icons/obj/doors/station/welded.dmi index e79421af0c..fa0d9a4b12 100644 Binary files a/icons/obj/doors/station/welded.dmi and b/icons/obj/doors/station/welded.dmi differ diff --git a/icons/obj/doors/vault.dmi b/icons/obj/doors/vault.dmi index b001f8c869..7e9ba0d24d 100644 Binary files a/icons/obj/doors/vault.dmi and b/icons/obj/doors/vault.dmi differ diff --git a/icons/obj/doors/vault/door.dmi b/icons/obj/doors/vault/door.dmi index 7467feea34..7741228dd3 100644 Binary files a/icons/obj/doors/vault/door.dmi and b/icons/obj/doors/vault/door.dmi differ diff --git a/icons/obj/doors/vault/fill_steel.dmi b/icons/obj/doors/vault/fill_steel.dmi index dcb42c609a..3dd36f18ea 100644 Binary files a/icons/obj/doors/vault/fill_steel.dmi and b/icons/obj/doors/vault/fill_steel.dmi differ diff --git a/icons/obj/doors/windoor.dmi b/icons/obj/doors/windoor.dmi index 7a2f5ff0a9..18b653a683 100644 Binary files a/icons/obj/doors/windoor.dmi and b/icons/obj/doors/windoor.dmi differ diff --git a/icons/obj/drain.dmi b/icons/obj/drain.dmi index 6d3dd19751..de24334c16 100644 Binary files a/icons/obj/drain.dmi and b/icons/obj/drain.dmi differ diff --git a/icons/obj/drink_glasses/carafe.dmi b/icons/obj/drink_glasses/carafe.dmi index 568f661916..3965a860d4 100644 Binary files a/icons/obj/drink_glasses/carafe.dmi and b/icons/obj/drink_glasses/carafe.dmi differ diff --git a/icons/obj/drink_glasses/cocktail.dmi b/icons/obj/drink_glasses/cocktail.dmi index ecd115bb8c..228e94f69c 100644 Binary files a/icons/obj/drink_glasses/cocktail.dmi and b/icons/obj/drink_glasses/cocktail.dmi differ diff --git a/icons/obj/drink_glasses/coconut.dmi b/icons/obj/drink_glasses/coconut.dmi index a6552e1e9d..c0ba326c13 100644 Binary files a/icons/obj/drink_glasses/coconut.dmi and b/icons/obj/drink_glasses/coconut.dmi differ diff --git a/icons/obj/drink_glasses/coffecup.dmi b/icons/obj/drink_glasses/coffecup.dmi index 7e48ac2c83..abbf312c43 100644 Binary files a/icons/obj/drink_glasses/coffecup.dmi and b/icons/obj/drink_glasses/coffecup.dmi differ diff --git a/icons/obj/drink_glasses/coffecup_tall.dmi b/icons/obj/drink_glasses/coffecup_tall.dmi index 076b703c79..18efa6bb97 100644 Binary files a/icons/obj/drink_glasses/coffecup_tall.dmi and b/icons/obj/drink_glasses/coffecup_tall.dmi differ diff --git a/icons/obj/drink_glasses/cognac.dmi b/icons/obj/drink_glasses/cognac.dmi index a009ed21df..0c023a3364 100644 Binary files a/icons/obj/drink_glasses/cognac.dmi and b/icons/obj/drink_glasses/cognac.dmi differ diff --git a/icons/obj/drink_glasses/extras.dmi b/icons/obj/drink_glasses/extras.dmi index bd95fa117b..c222b76d13 100644 Binary files a/icons/obj/drink_glasses/extras.dmi and b/icons/obj/drink_glasses/extras.dmi differ diff --git a/icons/obj/drink_glasses/fitness.dmi b/icons/obj/drink_glasses/fitness.dmi index 2164e52fca..a8427f34e2 100644 Binary files a/icons/obj/drink_glasses/fitness.dmi and b/icons/obj/drink_glasses/fitness.dmi differ diff --git a/icons/obj/drink_glasses/flute.dmi b/icons/obj/drink_glasses/flute.dmi index a2ee5bf5f8..d9fed9c318 100644 Binary files a/icons/obj/drink_glasses/flute.dmi and b/icons/obj/drink_glasses/flute.dmi differ diff --git a/icons/obj/drink_glasses/goblet.dmi b/icons/obj/drink_glasses/goblet.dmi index c233514195..76a6113e91 100644 Binary files a/icons/obj/drink_glasses/goblet.dmi and b/icons/obj/drink_glasses/goblet.dmi differ diff --git a/icons/obj/drink_glasses/mug.dmi b/icons/obj/drink_glasses/mug.dmi index ed4a8d7143..59d7b8abbb 100644 Binary files a/icons/obj/drink_glasses/mug.dmi and b/icons/obj/drink_glasses/mug.dmi differ diff --git a/icons/obj/drink_glasses/pineapple.dmi b/icons/obj/drink_glasses/pineapple.dmi index dadb67e656..5a2bb9d64d 100644 Binary files a/icons/obj/drink_glasses/pineapple.dmi and b/icons/obj/drink_glasses/pineapple.dmi differ diff --git a/icons/obj/drink_glasses/pint.dmi b/icons/obj/drink_glasses/pint.dmi index e5ef4c9c68..22ea897358 100644 Binary files a/icons/obj/drink_glasses/pint.dmi and b/icons/obj/drink_glasses/pint.dmi differ diff --git a/icons/obj/drink_glasses/rocks.dmi b/icons/obj/drink_glasses/rocks.dmi index 7404460dbf..5865ff971d 100644 Binary files a/icons/obj/drink_glasses/rocks.dmi and b/icons/obj/drink_glasses/rocks.dmi differ diff --git a/icons/obj/drink_glasses/shake.dmi b/icons/obj/drink_glasses/shake.dmi index 64ee7cb358..92b57d9f7f 100644 Binary files a/icons/obj/drink_glasses/shake.dmi and b/icons/obj/drink_glasses/shake.dmi differ diff --git a/icons/obj/drink_glasses/shot.dmi b/icons/obj/drink_glasses/shot.dmi index d6d010561c..2b24f2a983 100644 Binary files a/icons/obj/drink_glasses/shot.dmi and b/icons/obj/drink_glasses/shot.dmi differ diff --git a/icons/obj/drink_glasses/square.dmi b/icons/obj/drink_glasses/square.dmi index ff07563c2f..ad4cd229c3 100644 Binary files a/icons/obj/drink_glasses/square.dmi and b/icons/obj/drink_glasses/square.dmi differ diff --git a/icons/obj/drink_glasses/teacup.dmi b/icons/obj/drink_glasses/teacup.dmi index e54a7e2dbb..8a5cb1e5ee 100644 Binary files a/icons/obj/drink_glasses/teacup.dmi and b/icons/obj/drink_glasses/teacup.dmi differ diff --git a/icons/obj/drink_glasses/wine.dmi b/icons/obj/drink_glasses/wine.dmi index 197f3b321e..3e1d9c1741 100644 Binary files a/icons/obj/drink_glasses/wine.dmi and b/icons/obj/drink_glasses/wine.dmi differ diff --git a/icons/obj/drinks.dmi b/icons/obj/drinks.dmi index 2f484db7ed..0bf9ebaa18 100644 Binary files a/icons/obj/drinks.dmi and b/icons/obj/drinks.dmi differ diff --git a/icons/obj/dropper.dmi b/icons/obj/dropper.dmi index 40fa42fafd..12c7b55453 100644 Binary files a/icons/obj/dropper.dmi and b/icons/obj/dropper.dmi differ diff --git a/icons/obj/ecig.dmi b/icons/obj/ecig.dmi index 7329ca25f9..eb9b8ba6af 100644 Binary files a/icons/obj/ecig.dmi and b/icons/obj/ecig.dmi differ diff --git a/icons/obj/electronic_assemblies.dmi b/icons/obj/electronic_assemblies.dmi index d16b898555..ab9b901535 100644 Binary files a/icons/obj/electronic_assemblies.dmi and b/icons/obj/electronic_assemblies.dmi differ diff --git a/icons/obj/engine.dmi b/icons/obj/engine.dmi index 115fbd628b..93df9feb53 100644 Binary files a/icons/obj/engine.dmi and b/icons/obj/engine.dmi differ diff --git a/icons/obj/extinguisher.dmi b/icons/obj/extinguisher.dmi index 760bfe5049..73a353d988 100644 Binary files a/icons/obj/extinguisher.dmi and b/icons/obj/extinguisher.dmi differ diff --git a/icons/obj/eyes.dmi b/icons/obj/eyes.dmi index 5cc157ab1d..435b11a95b 100644 Binary files a/icons/obj/eyes.dmi and b/icons/obj/eyes.dmi differ diff --git a/icons/obj/firealarm.dmi b/icons/obj/firealarm.dmi index 70089b0812..329d30f058 100644 Binary files a/icons/obj/firealarm.dmi and b/icons/obj/firealarm.dmi differ diff --git a/icons/obj/flamethrower.dmi b/icons/obj/flamethrower.dmi index 0c3ad248c4..0982cacf53 100644 Binary files a/icons/obj/flamethrower.dmi and b/icons/obj/flamethrower.dmi differ diff --git a/icons/obj/flamethrower_new.dmi b/icons/obj/flamethrower_new.dmi index 082863918d..875fb40e40 100644 Binary files a/icons/obj/flamethrower_new.dmi and b/icons/obj/flamethrower_new.dmi differ diff --git a/icons/obj/flora/ausflora.dmi b/icons/obj/flora/ausflora.dmi index 720e4bd742..30eb8306f0 100644 Binary files a/icons/obj/flora/ausflora.dmi and b/icons/obj/flora/ausflora.dmi differ diff --git a/icons/obj/flora/deadtrees.dmi b/icons/obj/flora/deadtrees.dmi index f76ffd442f..3a8576024a 100644 Binary files a/icons/obj/flora/deadtrees.dmi and b/icons/obj/flora/deadtrees.dmi differ diff --git a/icons/obj/flora/greygrass.dmi b/icons/obj/flora/greygrass.dmi index 4b8c89d9f8..b6884944ac 100644 Binary files a/icons/obj/flora/greygrass.dmi and b/icons/obj/flora/greygrass.dmi differ diff --git a/icons/obj/flora/pinetrees.dmi b/icons/obj/flora/pinetrees.dmi index 875434b850..2bb2dd8eec 100644 Binary files a/icons/obj/flora/pinetrees.dmi and b/icons/obj/flora/pinetrees.dmi differ diff --git a/icons/obj/flora/rocks.dmi b/icons/obj/flora/rocks.dmi index a1f6a0df0a..8160325f74 100644 Binary files a/icons/obj/flora/rocks.dmi and b/icons/obj/flora/rocks.dmi differ diff --git a/icons/obj/flora/snowflora.dmi b/icons/obj/flora/snowflora.dmi index 11cbf5a505..6e446931ad 100644 Binary files a/icons/obj/flora/snowflora.dmi and b/icons/obj/flora/snowflora.dmi differ diff --git a/icons/obj/folding_knife.dmi b/icons/obj/folding_knife.dmi index 2fabce8b97..aca22a663f 100644 Binary files a/icons/obj/folding_knife.dmi and b/icons/obj/folding_knife.dmi differ diff --git a/icons/obj/food.dmi b/icons/obj/food.dmi index 6728e700d9..9934554114 100644 Binary files a/icons/obj/food.dmi and b/icons/obj/food.dmi differ diff --git a/icons/obj/food_canned.dmi b/icons/obj/food_canned.dmi index 405ea82b79..297751c23d 100644 Binary files a/icons/obj/food_canned.dmi and b/icons/obj/food_canned.dmi differ diff --git a/icons/obj/food_custom.dmi b/icons/obj/food_custom.dmi index 4ad776cf0d..af7642a28a 100644 Binary files a/icons/obj/food_custom.dmi and b/icons/obj/food_custom.dmi differ diff --git a/icons/obj/food_ingredients.dmi b/icons/obj/food_ingredients.dmi index ad4ecd8d83..bab7fd4714 100644 Binary files a/icons/obj/food_ingredients.dmi and b/icons/obj/food_ingredients.dmi differ diff --git a/icons/obj/forensics.dmi b/icons/obj/forensics.dmi index b02f9449b3..ba8764c214 100644 Binary files a/icons/obj/forensics.dmi and b/icons/obj/forensics.dmi differ diff --git a/icons/obj/fountain.dmi b/icons/obj/fountain.dmi index 2d1152fcbc..54a912e5c4 100644 Binary files a/icons/obj/fountain.dmi and b/icons/obj/fountain.dmi differ diff --git a/icons/obj/furniture.dmi b/icons/obj/furniture.dmi index 4c87535692..5d6a9d4198 100644 Binary files a/icons/obj/furniture.dmi and b/icons/obj/furniture.dmi differ diff --git a/icons/obj/gate.dmi b/icons/obj/gate.dmi deleted file mode 100644 index e69de29bb2..0000000000 diff --git a/icons/obj/goal_paperwork.dmi b/icons/obj/goal_paperwork.dmi index e8f62e662d..ef3fd37042 100644 Binary files a/icons/obj/goal_paperwork.dmi and b/icons/obj/goal_paperwork.dmi differ diff --git a/icons/obj/gravestone.dmi b/icons/obj/gravestone.dmi index 3d4138edca..666b6050cd 100644 Binary files a/icons/obj/gravestone.dmi and b/icons/obj/gravestone.dmi differ diff --git a/icons/obj/grenade.dmi b/icons/obj/grenade.dmi index 3f0c63e3a4..ba31a2e095 100644 Binary files a/icons/obj/grenade.dmi and b/icons/obj/grenade.dmi differ diff --git a/icons/obj/grille.dmi b/icons/obj/grille.dmi index 983aa86640..939cd6dbcf 100644 Binary files a/icons/obj/grille.dmi and b/icons/obj/grille.dmi differ diff --git a/icons/obj/grille_cult.dmi b/icons/obj/grille_cult.dmi index aba266a00e..f066c3d1b1 100644 Binary files a/icons/obj/grille_cult.dmi and b/icons/obj/grille_cult.dmi differ diff --git a/icons/obj/gun.dmi b/icons/obj/gun.dmi index cd976a22b0..ef7b04dabd 100644 Binary files a/icons/obj/gun.dmi and b/icons/obj/gun.dmi differ diff --git a/icons/obj/gun_wide.dmi b/icons/obj/gun_wide.dmi index 103b5c17fe..979f5cc874 100644 Binary files a/icons/obj/gun_wide.dmi and b/icons/obj/gun_wide.dmi differ diff --git a/icons/obj/guncabinet.dmi b/icons/obj/guncabinet.dmi index 70fdb3ef19..7888173230 100644 Binary files a/icons/obj/guncabinet.dmi and b/icons/obj/guncabinet.dmi differ diff --git a/icons/obj/guns/adv_egun.dmi b/icons/obj/guns/adv_egun.dmi index dbb1ad85d4..026c991dc2 100644 Binary files a/icons/obj/guns/adv_egun.dmi and b/icons/obj/guns/adv_egun.dmi differ diff --git a/icons/obj/guns/assault_rifle.dmi b/icons/obj/guns/assault_rifle.dmi index b781074d99..9ebec70145 100644 Binary files a/icons/obj/guns/assault_rifle.dmi and b/icons/obj/guns/assault_rifle.dmi differ diff --git a/icons/obj/guns/basic_energy.dmi b/icons/obj/guns/basic_energy.dmi index 8bb6958195..4837f1133f 100644 Binary files a/icons/obj/guns/basic_energy.dmi and b/icons/obj/guns/basic_energy.dmi differ diff --git a/icons/obj/guns/battlerifle.dmi b/icons/obj/guns/battlerifle.dmi index 47d1ffc92d..b6bf938d7b 100644 Binary files a/icons/obj/guns/battlerifle.dmi and b/icons/obj/guns/battlerifle.dmi differ diff --git a/icons/obj/guns/boltaction.dmi b/icons/obj/guns/boltaction.dmi index 36ef69e839..8e3f19b90a 100644 Binary files a/icons/obj/guns/boltaction.dmi and b/icons/obj/guns/boltaction.dmi differ diff --git a/icons/obj/guns/broomstick.dmi b/icons/obj/guns/broomstick.dmi index caa43b98d9..8a773e6393 100644 Binary files a/icons/obj/guns/broomstick.dmi and b/icons/obj/guns/broomstick.dmi differ diff --git a/icons/obj/guns/bullpup_rifle.dmi b/icons/obj/guns/bullpup_rifle.dmi index 65d796e9ad..947610b513 100644 Binary files a/icons/obj/guns/bullpup_rifle.dmi and b/icons/obj/guns/bullpup_rifle.dmi differ diff --git a/icons/obj/guns/caplaser.dmi b/icons/obj/guns/caplaser.dmi index 45521ae456..dd8a776b61 100644 Binary files a/icons/obj/guns/caplaser.dmi and b/icons/obj/guns/caplaser.dmi differ diff --git a/icons/obj/guns/coilgun.dmi b/icons/obj/guns/coilgun.dmi index 37b254b1c2..c9beb96542 100644 Binary files a/icons/obj/guns/coilgun.dmi and b/icons/obj/guns/coilgun.dmi differ diff --git a/icons/obj/guns/confuseray.dmi b/icons/obj/guns/confuseray.dmi index 42e7949f61..ed0d713210 100644 Binary files a/icons/obj/guns/confuseray.dmi and b/icons/obj/guns/confuseray.dmi differ diff --git a/icons/obj/guns/crossbow.dmi b/icons/obj/guns/crossbow.dmi index 2cc2173095..c09b702384 100644 Binary files a/icons/obj/guns/crossbow.dmi and b/icons/obj/guns/crossbow.dmi differ diff --git a/icons/obj/guns/darkcannon.dmi b/icons/obj/guns/darkcannon.dmi index d7c310c3c9..529d9938e8 100644 Binary files a/icons/obj/guns/darkcannon.dmi and b/icons/obj/guns/darkcannon.dmi differ diff --git a/icons/obj/guns/dartgun.dmi b/icons/obj/guns/dartgun.dmi index 016b3213e5..31171facfa 100644 Binary files a/icons/obj/guns/dartgun.dmi and b/icons/obj/guns/dartgun.dmi differ diff --git a/icons/obj/guns/decloner.dmi b/icons/obj/guns/decloner.dmi index 45c6d4e025..99c7bf7425 100644 Binary files a/icons/obj/guns/decloner.dmi and b/icons/obj/guns/decloner.dmi differ diff --git a/icons/obj/guns/energy_crossbow.dmi b/icons/obj/guns/energy_crossbow.dmi index 1ebd7fd818..15efd63b6c 100644 Binary files a/icons/obj/guns/energy_crossbow.dmi and b/icons/obj/guns/energy_crossbow.dmi differ diff --git a/icons/obj/guns/energy_gun.dmi b/icons/obj/guns/energy_gun.dmi index 71affc15a6..f5d7b7e369 100644 Binary files a/icons/obj/guns/energy_gun.dmi and b/icons/obj/guns/energy_gun.dmi differ diff --git a/icons/obj/guns/energy_gun_secure.dmi b/icons/obj/guns/energy_gun_secure.dmi index 60ed533184..b12ec6d1c4 100644 Binary files a/icons/obj/guns/energy_gun_secure.dmi and b/icons/obj/guns/energy_gun_secure.dmi differ diff --git a/icons/obj/guns/energy_revolver.dmi b/icons/obj/guns/energy_revolver.dmi index fe1c4a6a5d..d1539dd25c 100644 Binary files a/icons/obj/guns/energy_revolver.dmi and b/icons/obj/guns/energy_revolver.dmi differ diff --git a/icons/obj/guns/flaregun.dmi b/icons/obj/guns/flaregun.dmi index de1737cb56..1728102786 100644 Binary files a/icons/obj/guns/flaregun.dmi and b/icons/obj/guns/flaregun.dmi differ diff --git a/icons/obj/guns/flechette.dmi b/icons/obj/guns/flechette.dmi index f99e2ae035..e419f7b4d8 100644 Binary files a/icons/obj/guns/flechette.dmi and b/icons/obj/guns/flechette.dmi differ diff --git a/icons/obj/guns/floral.dmi b/icons/obj/guns/floral.dmi index b119dae9f2..7b30201e42 100644 Binary files a/icons/obj/guns/floral.dmi and b/icons/obj/guns/floral.dmi differ diff --git a/icons/obj/guns/foam.dmi b/icons/obj/guns/foam.dmi index b1155c7404..bd6d09461e 100644 Binary files a/icons/obj/guns/foam.dmi and b/icons/obj/guns/foam.dmi differ diff --git a/icons/obj/guns/foundation.dmi b/icons/obj/guns/foundation.dmi index 151e94432a..d34655527e 100644 Binary files a/icons/obj/guns/foundation.dmi and b/icons/obj/guns/foundation.dmi differ diff --git a/icons/obj/guns/freezegun.dmi b/icons/obj/guns/freezegun.dmi index 1b0b7e040a..8db797f583 100644 Binary files a/icons/obj/guns/freezegun.dmi and b/icons/obj/guns/freezegun.dmi differ diff --git a/icons/obj/guns/garand.dmi b/icons/obj/guns/garand.dmi index bfbfa8b637..c0e30fd051 100644 Binary files a/icons/obj/guns/garand.dmi and b/icons/obj/guns/garand.dmi differ diff --git a/icons/obj/guns/gui.dmi b/icons/obj/guns/gui.dmi index 48ea898faf..f32c3a222a 100644 Binary files a/icons/obj/guns/gui.dmi and b/icons/obj/guns/gui.dmi differ diff --git a/icons/obj/guns/gyropistol.dmi b/icons/obj/guns/gyropistol.dmi index b1ef8bb7b2..faee4b5691 100644 Binary files a/icons/obj/guns/gyropistol.dmi and b/icons/obj/guns/gyropistol.dmi differ diff --git a/icons/obj/guns/heavysniper.dmi b/icons/obj/guns/heavysniper.dmi index c279bb8808..24b1c46cb5 100644 Binary files a/icons/obj/guns/heavysniper.dmi and b/icons/obj/guns/heavysniper.dmi differ diff --git a/icons/obj/guns/holdout_pistol.dmi b/icons/obj/guns/holdout_pistol.dmi index 64d2fb1b25..127bd7e3c1 100644 Binary files a/icons/obj/guns/holdout_pistol.dmi and b/icons/obj/guns/holdout_pistol.dmi differ diff --git a/icons/obj/guns/incendiary_laser.dmi b/icons/obj/guns/incendiary_laser.dmi index b75d106991..13d8343519 100644 Binary files a/icons/obj/guns/incendiary_laser.dmi and b/icons/obj/guns/incendiary_laser.dmi differ diff --git a/icons/obj/guns/ion_pistol.dmi b/icons/obj/guns/ion_pistol.dmi index f3ce481462..620c2d3c16 100644 Binary files a/icons/obj/guns/ion_pistol.dmi and b/icons/obj/guns/ion_pistol.dmi differ diff --git a/icons/obj/guns/ion_rifle.dmi b/icons/obj/guns/ion_rifle.dmi index db06841d53..389cc0fed3 100644 Binary files a/icons/obj/guns/ion_rifle.dmi and b/icons/obj/guns/ion_rifle.dmi differ diff --git a/icons/obj/guns/laser_cannon.dmi b/icons/obj/guns/laser_cannon.dmi index 71b13d6c5d..55fb21fe6d 100644 Binary files a/icons/obj/guns/laser_cannon.dmi and b/icons/obj/guns/laser_cannon.dmi differ diff --git a/icons/obj/guns/laser_carbine.dmi b/icons/obj/guns/laser_carbine.dmi index 4c21fd9950..31574abade 100644 Binary files a/icons/obj/guns/laser_carbine.dmi and b/icons/obj/guns/laser_carbine.dmi differ diff --git a/icons/obj/guns/laser_sniper.dmi b/icons/obj/guns/laser_sniper.dmi index 04ec1da5bb..8a9a1ca287 100644 Binary files a/icons/obj/guns/laser_sniper.dmi and b/icons/obj/guns/laser_sniper.dmi differ diff --git a/icons/obj/guns/lasertag.dmi b/icons/obj/guns/lasertag.dmi index 51a7dcb66c..2f79f53fae 100644 Binary files a/icons/obj/guns/lasertag.dmi and b/icons/obj/guns/lasertag.dmi differ diff --git a/icons/obj/guns/launchers.dmi b/icons/obj/guns/launchers.dmi index cc44cd6504..69ff22860d 100644 Binary files a/icons/obj/guns/launchers.dmi and b/icons/obj/guns/launchers.dmi differ diff --git a/icons/obj/guns/machine_pistol.dmi b/icons/obj/guns/machine_pistol.dmi index db89bb974d..11b61e15bb 100644 Binary files a/icons/obj/guns/machine_pistol.dmi and b/icons/obj/guns/machine_pistol.dmi differ diff --git a/icons/obj/guns/magnum_pistol.dmi b/icons/obj/guns/magnum_pistol.dmi index 9e55fd5961..b837bd80e4 100644 Binary files a/icons/obj/guns/magnum_pistol.dmi and b/icons/obj/guns/magnum_pistol.dmi differ diff --git a/icons/obj/guns/merc_smg.dmi b/icons/obj/guns/merc_smg.dmi index ee2f142902..1de5dae408 100644 Binary files a/icons/obj/guns/merc_smg.dmi and b/icons/obj/guns/merc_smg.dmi differ diff --git a/icons/obj/guns/military_pistol.dmi b/icons/obj/guns/military_pistol.dmi index de445159a6..4e512b4fcb 100644 Binary files a/icons/obj/guns/military_pistol.dmi and b/icons/obj/guns/military_pistol.dmi differ diff --git a/icons/obj/guns/military_pistol2.dmi b/icons/obj/guns/military_pistol2.dmi index aa4aec29a2..c40b8c2201 100644 Binary files a/icons/obj/guns/military_pistol2.dmi and b/icons/obj/guns/military_pistol2.dmi differ diff --git a/icons/obj/guns/noise.dmi b/icons/obj/guns/noise.dmi index 931773c0fe..12910b5d1f 100644 Binary files a/icons/obj/guns/noise.dmi and b/icons/obj/guns/noise.dmi differ diff --git a/icons/obj/guns/particle_rifle.dmi b/icons/obj/guns/particle_rifle.dmi index faff64943b..60e5fb71f4 100644 Binary files a/icons/obj/guns/particle_rifle.dmi and b/icons/obj/guns/particle_rifle.dmi differ diff --git a/icons/obj/guns/pistol.dmi b/icons/obj/guns/pistol.dmi index 4fd5d63b12..ede235ecec 100644 Binary files a/icons/obj/guns/pistol.dmi and b/icons/obj/guns/pistol.dmi differ diff --git a/icons/obj/guns/pistol_throwback.dmi b/icons/obj/guns/pistol_throwback.dmi index d83257d933..75f14fe673 100644 Binary files a/icons/obj/guns/pistol_throwback.dmi and b/icons/obj/guns/pistol_throwback.dmi differ diff --git a/icons/obj/guns/plasma_stun.dmi b/icons/obj/guns/plasma_stun.dmi index 6e16de9b74..f3377f6b85 100644 Binary files a/icons/obj/guns/plasma_stun.dmi and b/icons/obj/guns/plasma_stun.dmi differ diff --git a/icons/obj/guns/plasmacutter.dmi b/icons/obj/guns/plasmacutter.dmi index 5fb4e1814f..e83030dae8 100644 Binary files a/icons/obj/guns/plasmacutter.dmi and b/icons/obj/guns/plasmacutter.dmi differ diff --git a/icons/obj/guns/pneumatic.dmi b/icons/obj/guns/pneumatic.dmi index af1f044ec5..932f931a92 100644 Binary files a/icons/obj/guns/pneumatic.dmi and b/icons/obj/guns/pneumatic.dmi differ diff --git a/icons/obj/guns/prototype_smg.dmi b/icons/obj/guns/prototype_smg.dmi index 52eb2966b6..2857c428d6 100644 Binary files a/icons/obj/guns/prototype_smg.dmi and b/icons/obj/guns/prototype_smg.dmi differ diff --git a/icons/obj/guns/pulse_carbine.dmi b/icons/obj/guns/pulse_carbine.dmi index 871de65960..e723a63732 100644 Binary files a/icons/obj/guns/pulse_carbine.dmi and b/icons/obj/guns/pulse_carbine.dmi differ diff --git a/icons/obj/guns/pulse_pistol.dmi b/icons/obj/guns/pulse_pistol.dmi index 6c47f01354..45321b86d6 100644 Binary files a/icons/obj/guns/pulse_pistol.dmi and b/icons/obj/guns/pulse_pistol.dmi differ diff --git a/icons/obj/guns/pulse_rifle.dmi b/icons/obj/guns/pulse_rifle.dmi index 68f0bf4047..40b2ff5306 100644 Binary files a/icons/obj/guns/pulse_rifle.dmi and b/icons/obj/guns/pulse_rifle.dmi differ diff --git a/icons/obj/guns/railgun.dmi b/icons/obj/guns/railgun.dmi index 41f4305708..0bf54eb63e 100644 Binary files a/icons/obj/guns/railgun.dmi and b/icons/obj/guns/railgun.dmi differ diff --git a/icons/obj/guns/railgun_adv.dmi b/icons/obj/guns/railgun_adv.dmi index 5348238ee7..cd544ea5ab 100644 Binary files a/icons/obj/guns/railgun_adv.dmi and b/icons/obj/guns/railgun_adv.dmi differ diff --git a/icons/obj/guns/railgun_heavy.dmi b/icons/obj/guns/railgun_heavy.dmi index c941c06e20..526f3e6c9d 100644 Binary files a/icons/obj/guns/railgun_heavy.dmi and b/icons/obj/guns/railgun_heavy.dmi differ diff --git a/icons/obj/guns/railgun_old.dmi b/icons/obj/guns/railgun_old.dmi index bba77b23bc..f470ca23d4 100644 Binary files a/icons/obj/guns/railgun_old.dmi and b/icons/obj/guns/railgun_old.dmi differ diff --git a/icons/obj/guns/railgun_old_heavy.dmi b/icons/obj/guns/railgun_old_heavy.dmi index fe6340fa74..9cf445c106 100644 Binary files a/icons/obj/guns/railgun_old_heavy.dmi and b/icons/obj/guns/railgun_old_heavy.dmi differ diff --git a/icons/obj/guns/retro_laser.dmi b/icons/obj/guns/retro_laser.dmi index abc1569933..c5a89d02d7 100644 Binary files a/icons/obj/guns/retro_laser.dmi and b/icons/obj/guns/retro_laser.dmi differ diff --git a/icons/obj/guns/revolvers.dmi b/icons/obj/guns/revolvers.dmi index 9182614bda..f94d43bbc0 100644 Binary files a/icons/obj/guns/revolvers.dmi and b/icons/obj/guns/revolvers.dmi differ diff --git a/icons/obj/guns/saw.dmi b/icons/obj/guns/saw.dmi index fec94789df..836dbe9ee7 100644 Binary files a/icons/obj/guns/saw.dmi and b/icons/obj/guns/saw.dmi differ diff --git a/icons/obj/guns/sec_smg.dmi b/icons/obj/guns/sec_smg.dmi index 8068c7659f..8f03319c3c 100644 Binary files a/icons/obj/guns/sec_smg.dmi and b/icons/obj/guns/sec_smg.dmi differ diff --git a/icons/obj/guns/semistrip.dmi b/icons/obj/guns/semistrip.dmi index 4926895bdf..a5f8d19336 100644 Binary files a/icons/obj/guns/semistrip.dmi and b/icons/obj/guns/semistrip.dmi differ diff --git a/icons/obj/guns/shotguns.dmi b/icons/obj/guns/shotguns.dmi index 2e8e0a40f9..6078eecc19 100644 Binary files a/icons/obj/guns/shotguns.dmi and b/icons/obj/guns/shotguns.dmi differ diff --git a/icons/obj/guns/skrell_carbine.dmi b/icons/obj/guns/skrell_carbine.dmi index 5c264e6b10..cf0c712f70 100644 Binary files a/icons/obj/guns/skrell_carbine.dmi and b/icons/obj/guns/skrell_carbine.dmi differ diff --git a/icons/obj/guns/skrell_pistol.dmi b/icons/obj/guns/skrell_pistol.dmi index 7a0aa67aeb..d43c82787b 100644 Binary files a/icons/obj/guns/skrell_pistol.dmi and b/icons/obj/guns/skrell_pistol.dmi differ diff --git a/icons/obj/guns/skrell_rifle.dmi b/icons/obj/guns/skrell_rifle.dmi index 554cdcf5b4..1e5eccd774 100644 Binary files a/icons/obj/guns/skrell_rifle.dmi and b/icons/obj/guns/skrell_rifle.dmi differ diff --git a/icons/obj/guns/small_egun.dmi b/icons/obj/guns/small_egun.dmi index e7ba8e55c4..29188ed596 100644 Binary files a/icons/obj/guns/small_egun.dmi and b/icons/obj/guns/small_egun.dmi differ diff --git a/icons/obj/guns/small_egun_secure.dmi b/icons/obj/guns/small_egun_secure.dmi index 203f9ddb21..b68ee20092 100644 Binary files a/icons/obj/guns/small_egun_secure.dmi and b/icons/obj/guns/small_egun_secure.dmi differ diff --git a/icons/obj/guns/spikethrower.dmi b/icons/obj/guns/spikethrower.dmi index 655684a586..fba3eaa34b 100644 Binary files a/icons/obj/guns/spikethrower.dmi and b/icons/obj/guns/spikethrower.dmi differ diff --git a/icons/obj/guns/staff.dmi b/icons/obj/guns/staff.dmi index e1f651afec..386f137131 100644 Binary files a/icons/obj/guns/staff.dmi and b/icons/obj/guns/staff.dmi differ diff --git a/icons/obj/guns/stunrevolver.dmi b/icons/obj/guns/stunrevolver.dmi index 4be81f8252..67186e2361 100644 Binary files a/icons/obj/guns/stunrevolver.dmi and b/icons/obj/guns/stunrevolver.dmi differ diff --git a/icons/obj/guns/stunrevolver_secure.dmi b/icons/obj/guns/stunrevolver_secure.dmi index 647980cf6b..6e4e155777 100644 Binary files a/icons/obj/guns/stunrevolver_secure.dmi and b/icons/obj/guns/stunrevolver_secure.dmi differ diff --git a/icons/obj/guns/stunrifle.dmi b/icons/obj/guns/stunrifle.dmi index 7e88896b68..e134fdb266 100644 Binary files a/icons/obj/guns/stunrifle.dmi and b/icons/obj/guns/stunrifle.dmi differ diff --git a/icons/obj/guns/syringegun.dmi b/icons/obj/guns/syringegun.dmi index d0e75ac271..ee19252ba3 100644 Binary files a/icons/obj/guns/syringegun.dmi and b/icons/obj/guns/syringegun.dmi differ diff --git a/icons/obj/guns/t12.dmi b/icons/obj/guns/t12.dmi index 5137e41785..006315c141 100644 Binary files a/icons/obj/guns/t12.dmi and b/icons/obj/guns/t12.dmi differ diff --git a/icons/obj/guns/taser.dmi b/icons/obj/guns/taser.dmi index 873303f005..ddeddb8229 100644 Binary files a/icons/obj/guns/taser.dmi and b/icons/obj/guns/taser.dmi differ diff --git a/icons/obj/guns/taser_carbine.dmi b/icons/obj/guns/taser_carbine.dmi index d6e7d2af7b..4bd80faf10 100644 Binary files a/icons/obj/guns/taser_carbine.dmi and b/icons/obj/guns/taser_carbine.dmi differ diff --git a/icons/obj/guns/toxgun.dmi b/icons/obj/guns/toxgun.dmi index df3deb2152..fea09af79e 100644 Binary files a/icons/obj/guns/toxgun.dmi and b/icons/obj/guns/toxgun.dmi differ diff --git a/icons/obj/guns/xray.dmi b/icons/obj/guns/xray.dmi index cc22044736..b4ede621f6 100644 Binary files a/icons/obj/guns/xray.dmi and b/icons/obj/guns/xray.dmi differ diff --git a/icons/obj/guns/xray_pistol.dmi b/icons/obj/guns/xray_pistol.dmi index c19bff5d5e..e4ad3a2aa5 100644 Binary files a/icons/obj/guns/xray_pistol.dmi and b/icons/obj/guns/xray_pistol.dmi differ diff --git a/icons/obj/guns/zipgun.dmi b/icons/obj/guns/zipgun.dmi index ac911801c5..465f09061f 100644 Binary files a/icons/obj/guns/zipgun.dmi and b/icons/obj/guns/zipgun.dmi differ diff --git a/icons/obj/heartmonitor.dmi b/icons/obj/heartmonitor.dmi index dcbdfa4f54..4ff7bebb4e 100644 Binary files a/icons/obj/heartmonitor.dmi and b/icons/obj/heartmonitor.dmi differ diff --git a/icons/obj/holosign.dmi b/icons/obj/holosign.dmi index cf1781d423..149850367f 100644 Binary files a/icons/obj/holosign.dmi and b/icons/obj/holosign.dmi differ diff --git a/icons/obj/hud_full.dmi b/icons/obj/hud_full.dmi index ba0087bd3f..b1939ac66b 100644 Binary files a/icons/obj/hud_full.dmi and b/icons/obj/hud_full.dmi differ diff --git a/icons/obj/hud_tile.dmi b/icons/obj/hud_tile.dmi index 18cb52142d..77120421a7 100644 Binary files a/icons/obj/hud_tile.dmi and b/icons/obj/hud_tile.dmi differ diff --git a/icons/obj/hydroponics_growing.dmi b/icons/obj/hydroponics_growing.dmi index 9300edc49a..6857732c6c 100644 Binary files a/icons/obj/hydroponics_growing.dmi and b/icons/obj/hydroponics_growing.dmi differ diff --git a/icons/obj/hydroponics_large.dmi b/icons/obj/hydroponics_large.dmi index 5694b754c5..e96ae8bc83 100644 Binary files a/icons/obj/hydroponics_large.dmi and b/icons/obj/hydroponics_large.dmi differ diff --git a/icons/obj/hydroponics_machines.dmi b/icons/obj/hydroponics_machines.dmi index f67484030f..9a572d67a0 100644 Binary files a/icons/obj/hydroponics_machines.dmi and b/icons/obj/hydroponics_machines.dmi differ diff --git a/icons/obj/hydroponics_misc.dmi b/icons/obj/hydroponics_misc.dmi index a5c594d93f..b511d2b21f 100644 Binary files a/icons/obj/hydroponics_misc.dmi and b/icons/obj/hydroponics_misc.dmi differ diff --git a/icons/obj/hydroponics_products.dmi b/icons/obj/hydroponics_products.dmi index a0492f6f15..be3d6b173b 100644 Binary files a/icons/obj/hydroponics_products.dmi and b/icons/obj/hydroponics_products.dmi differ diff --git a/icons/obj/hydroponics_vines.dmi b/icons/obj/hydroponics_vines.dmi index f692fcccbf..085ca62707 100644 Binary files a/icons/obj/hydroponics_vines.dmi and b/icons/obj/hydroponics_vines.dmi differ diff --git a/icons/obj/inflatable.dmi b/icons/obj/inflatable.dmi index 403e39c637..d0fa5c378d 100644 Binary files a/icons/obj/inflatable.dmi and b/icons/obj/inflatable.dmi differ diff --git a/icons/obj/ironing.dmi b/icons/obj/ironing.dmi index ce773f4708..f701adbb67 100644 Binary files a/icons/obj/ironing.dmi and b/icons/obj/ironing.dmi differ diff --git a/icons/obj/items.dmi b/icons/obj/items.dmi index ca53fde34f..fe2fb986d4 100644 Binary files a/icons/obj/items.dmi and b/icons/obj/items.dmi differ diff --git a/icons/obj/iv_drip.dmi b/icons/obj/iv_drip.dmi index b4c3704e98..7af77c9291 100644 Binary files a/icons/obj/iv_drip.dmi and b/icons/obj/iv_drip.dmi differ diff --git a/icons/obj/janitor.dmi b/icons/obj/janitor.dmi index 28bcf76132..21be8910f8 100644 Binary files a/icons/obj/janitor.dmi and b/icons/obj/janitor.dmi differ diff --git a/icons/obj/job_terminal.dmi b/icons/obj/job_terminal.dmi deleted file mode 100644 index e69de29bb2..0000000000 diff --git a/icons/obj/jukebox.dmi b/icons/obj/jukebox.dmi index 9109049704..53646f745a 100644 Binary files a/icons/obj/jukebox.dmi and b/icons/obj/jukebox.dmi differ diff --git a/icons/obj/jukebox_new.dmi b/icons/obj/jukebox_new.dmi index dfeec5a91c..3aed4d5960 100644 Binary files a/icons/obj/jukebox_new.dmi and b/icons/obj/jukebox_new.dmi differ diff --git a/icons/obj/kinetic_harvester.dmi b/icons/obj/kinetic_harvester.dmi index fa9fda3b0e..1677a71a7e 100644 Binary files a/icons/obj/kinetic_harvester.dmi and b/icons/obj/kinetic_harvester.dmi differ diff --git a/icons/obj/kitchen.dmi b/icons/obj/kitchen.dmi index 6b98090ebe..df8e91055c 100644 Binary files a/icons/obj/kitchen.dmi and b/icons/obj/kitchen.dmi differ diff --git a/icons/obj/knife.dmi b/icons/obj/knife.dmi index 595c3a2ca7..901edbb92a 100644 Binary files a/icons/obj/knife.dmi and b/icons/obj/knife.dmi differ diff --git a/icons/obj/lavatory.dmi b/icons/obj/lavatory.dmi index 8af1a53c28..24e0bb4def 100644 Binary files a/icons/obj/lavatory.dmi and b/icons/obj/lavatory.dmi differ diff --git a/icons/obj/library.dmi b/icons/obj/library.dmi index 1ed766c121..8898c6783d 100644 Binary files a/icons/obj/library.dmi and b/icons/obj/library.dmi differ diff --git a/icons/obj/light_overlays.dmi b/icons/obj/light_overlays.dmi index 118765f0f5..39ea0f61c0 100644 Binary files a/icons/obj/light_overlays.dmi and b/icons/obj/light_overlays.dmi differ diff --git a/icons/obj/lighters.dmi b/icons/obj/lighters.dmi index 7559a03d83..0e84b719ff 100644 Binary files a/icons/obj/lighters.dmi and b/icons/obj/lighters.dmi differ diff --git a/icons/obj/lighting.dmi b/icons/obj/lighting.dmi index 609abd3643..b0af1b0ead 100644 Binary files a/icons/obj/lighting.dmi and b/icons/obj/lighting.dmi differ diff --git a/icons/obj/lighting_nav.dmi b/icons/obj/lighting_nav.dmi index 44b401d273..df9e8283d6 100644 Binary files a/icons/obj/lighting_nav.dmi and b/icons/obj/lighting_nav.dmi differ diff --git a/icons/obj/lockwall.dmi b/icons/obj/lockwall.dmi index a143d16018..c67436ac33 100644 Binary files a/icons/obj/lockwall.dmi and b/icons/obj/lockwall.dmi differ diff --git a/icons/obj/machines/adherent.dmi b/icons/obj/machines/adherent.dmi index a814c79d01..aa1675ff96 100644 Binary files a/icons/obj/machines/adherent.dmi and b/icons/obj/machines/adherent.dmi differ diff --git a/icons/obj/machines/am_engine.dmi b/icons/obj/machines/am_engine.dmi index 8c5a5aa015..8bae677618 100644 Binary files a/icons/obj/machines/am_engine.dmi and b/icons/obj/machines/am_engine.dmi differ diff --git a/icons/obj/machines/antimatter.dmi b/icons/obj/machines/antimatter.dmi index 4e20f20e7b..f440d551e8 100644 Binary files a/icons/obj/machines/antimatter.dmi and b/icons/obj/machines/antimatter.dmi differ diff --git a/icons/obj/machines/artillery.dmi b/icons/obj/machines/artillery.dmi index 28f40800c2..214a5a47c9 100644 Binary files a/icons/obj/machines/artillery.dmi and b/icons/obj/machines/artillery.dmi differ diff --git a/icons/obj/machines/contraband_detector.dmi b/icons/obj/machines/contraband_detector.dmi index 3a8ee8ef4b..24cb251b4b 100644 Binary files a/icons/obj/machines/contraband_detector.dmi and b/icons/obj/machines/contraband_detector.dmi differ diff --git a/icons/obj/machines/conveyor.dmi b/icons/obj/machines/conveyor.dmi index a7ca3091e0..f8405f681b 100644 Binary files a/icons/obj/machines/conveyor.dmi and b/icons/obj/machines/conveyor.dmi differ diff --git a/icons/obj/machines/cracker.dmi b/icons/obj/machines/cracker.dmi index 325b87eb49..6cfd550598 100644 Binary files a/icons/obj/machines/cracker.dmi and b/icons/obj/machines/cracker.dmi differ diff --git a/icons/obj/machines/drone_fab.dmi b/icons/obj/machines/drone_fab.dmi index 066b51c258..e564033e17 100644 Binary files a/icons/obj/machines/drone_fab.dmi and b/icons/obj/machines/drone_fab.dmi differ diff --git a/icons/obj/machines/fabricators/autolathe.dmi b/icons/obj/machines/fabricators/autolathe.dmi index bf1ab87f84..aa9e2ea299 100644 Binary files a/icons/obj/machines/fabricators/autolathe.dmi and b/icons/obj/machines/fabricators/autolathe.dmi differ diff --git a/icons/obj/machines/fabricators/microlathe.dmi b/icons/obj/machines/fabricators/microlathe.dmi index 49ac1b0e11..899f6fad8f 100644 Binary files a/icons/obj/machines/fabricators/microlathe.dmi and b/icons/obj/machines/fabricators/microlathe.dmi differ diff --git a/icons/obj/machines/fabricators/nanofabricator.dmi b/icons/obj/machines/fabricators/nanofabricator.dmi index 15f457da57..7a7c2c9e04 100644 Binary files a/icons/obj/machines/fabricators/nanofabricator.dmi and b/icons/obj/machines/fabricators/nanofabricator.dmi differ diff --git a/icons/obj/machines/fabricators/replicator.dmi b/icons/obj/machines/fabricators/replicator.dmi index e126b656fc..a014fcb19a 100644 Binary files a/icons/obj/machines/fabricators/replicator.dmi and b/icons/obj/machines/fabricators/replicator.dmi differ diff --git a/icons/obj/machines/fiber.dmi b/icons/obj/machines/fiber.dmi index 952c391f9b..1f9a3ca946 100644 Binary files a/icons/obj/machines/fiber.dmi and b/icons/obj/machines/fiber.dmi differ diff --git a/icons/obj/machines/field_generator.dmi b/icons/obj/machines/field_generator.dmi index fcb083f846..ecc1cdb87e 100644 Binary files a/icons/obj/machines/field_generator.dmi and b/icons/obj/machines/field_generator.dmi differ diff --git a/icons/obj/machines/floodlight.dmi b/icons/obj/machines/floodlight.dmi index 084c7c99c2..87773076e1 100644 Binary files a/icons/obj/machines/floodlight.dmi and b/icons/obj/machines/floodlight.dmi differ diff --git a/icons/obj/machines/floor_light.dmi b/icons/obj/machines/floor_light.dmi index c238649280..cce40475eb 100644 Binary files a/icons/obj/machines/floor_light.dmi and b/icons/obj/machines/floor_light.dmi differ diff --git a/icons/obj/machines/gateway.dmi b/icons/obj/machines/gateway.dmi index cfe4c26709..d8dc9d6c19 100644 Binary files a/icons/obj/machines/gateway.dmi and b/icons/obj/machines/gateway.dmi differ diff --git a/icons/obj/machines/heat_sources.dmi b/icons/obj/machines/heat_sources.dmi index eda6f12008..cb28e70f08 100644 Binary files a/icons/obj/machines/heat_sources.dmi and b/icons/obj/machines/heat_sources.dmi differ diff --git a/icons/obj/machines/heavy_lathe.dmi b/icons/obj/machines/heavy_lathe.dmi index 1189687d86..f1dc0bbc62 100644 Binary files a/icons/obj/machines/heavy_lathe.dmi and b/icons/obj/machines/heavy_lathe.dmi differ diff --git a/icons/obj/machines/implantchair.dmi b/icons/obj/machines/implantchair.dmi index 94adefcbf2..5c9d4e79ff 100644 Binary files a/icons/obj/machines/implantchair.dmi and b/icons/obj/machines/implantchair.dmi differ diff --git a/icons/obj/machines/lasers.dmi b/icons/obj/machines/lasers.dmi index e114313ee9..5ded324dee 100644 Binary files a/icons/obj/machines/lasers.dmi and b/icons/obj/machines/lasers.dmi differ diff --git a/icons/obj/machines/mantid_charger.dmi b/icons/obj/machines/mantid_charger.dmi index 7b6b13ffaa..bdca7992a7 100644 Binary files a/icons/obj/machines/mantid_charger.dmi and b/icons/obj/machines/mantid_charger.dmi differ diff --git a/icons/obj/machines/mantid_hydroponics.dmi b/icons/obj/machines/mantid_hydroponics.dmi index 90774a6bed..1652c604e8 100644 Binary files a/icons/obj/machines/mantid_hydroponics.dmi and b/icons/obj/machines/mantid_hydroponics.dmi differ diff --git a/icons/obj/machines/mining_machines.dmi b/icons/obj/machines/mining_machines.dmi index 903e11de50..dfc3aff50e 100644 Binary files a/icons/obj/machines/mining_machines.dmi and b/icons/obj/machines/mining_machines.dmi differ diff --git a/icons/obj/machines/particle_accelerator.dmi b/icons/obj/machines/particle_accelerator.dmi index db412286c0..c2e796e49c 100644 Binary files a/icons/obj/machines/particle_accelerator.dmi and b/icons/obj/machines/particle_accelerator.dmi differ diff --git a/icons/obj/machines/particle_accelerator2.dmi b/icons/obj/machines/particle_accelerator2.dmi index a489510e55..04c7987b77 100644 Binary files a/icons/obj/machines/particle_accelerator2.dmi and b/icons/obj/machines/particle_accelerator2.dmi differ diff --git a/icons/obj/machines/power/fusion.dmi b/icons/obj/machines/power/fusion.dmi index 2caae04cc7..359f0df875 100644 Binary files a/icons/obj/machines/power/fusion.dmi and b/icons/obj/machines/power/fusion.dmi differ diff --git a/icons/obj/machines/power/fusion_core.dmi b/icons/obj/machines/power/fusion_core.dmi index 76904a1200..4640989bd2 100644 Binary files a/icons/obj/machines/power/fusion_core.dmi and b/icons/obj/machines/power/fusion_core.dmi differ diff --git a/icons/obj/machines/power/mantid_smes.dmi b/icons/obj/machines/power/mantid_smes.dmi index 974e05ff0f..6f01c7f24d 100644 Binary files a/icons/obj/machines/power/mantid_smes.dmi and b/icons/obj/machines/power/mantid_smes.dmi differ diff --git a/icons/obj/machines/psimeter.dmi b/icons/obj/machines/psimeter.dmi index 585465dd27..c45e839349 100644 Binary files a/icons/obj/machines/psimeter.dmi and b/icons/obj/machines/psimeter.dmi differ diff --git a/icons/obj/machines/rad_collector.dmi b/icons/obj/machines/rad_collector.dmi index d37a0aa387..ed46abf3b0 100644 Binary files a/icons/obj/machines/rad_collector.dmi and b/icons/obj/machines/rad_collector.dmi differ diff --git a/icons/obj/machines/research.dmi b/icons/obj/machines/research.dmi index f1cef78fa2..ccd8c8a5b1 100644 Binary files a/icons/obj/machines/research.dmi and b/icons/obj/machines/research.dmi differ diff --git a/icons/obj/machines/self_destruct.dmi b/icons/obj/machines/self_destruct.dmi index c2d00738f3..7fad738863 100644 Binary files a/icons/obj/machines/self_destruct.dmi and b/icons/obj/machines/self_destruct.dmi differ diff --git a/icons/obj/machines/shielding.dmi b/icons/obj/machines/shielding.dmi index f839450926..21202e3b27 100644 Binary files a/icons/obj/machines/shielding.dmi and b/icons/obj/machines/shielding.dmi differ diff --git a/icons/obj/machines/stationmap.dmi b/icons/obj/machines/stationmap.dmi index f57bf08913..59ae03959e 100644 Binary files a/icons/obj/machines/stationmap.dmi and b/icons/obj/machines/stationmap.dmi differ diff --git a/icons/obj/machines/turret_control.dmi b/icons/obj/machines/turret_control.dmi index 69cd4ccbb7..45f8f5b142 100644 Binary files a/icons/obj/machines/turret_control.dmi and b/icons/obj/machines/turret_control.dmi differ diff --git a/icons/obj/machines/washing_machine.dmi b/icons/obj/machines/washing_machine.dmi index 4ec8a6cbc0..4a6008570a 100644 Binary files a/icons/obj/machines/washing_machine.dmi and b/icons/obj/machines/washing_machine.dmi differ diff --git a/icons/obj/magic.dmi b/icons/obj/magic.dmi index f92243d6bc..bb92c68f3c 100644 Binary files a/icons/obj/magic.dmi and b/icons/obj/magic.dmi differ diff --git a/icons/obj/mainframe.dmi b/icons/obj/mainframe.dmi index aaf6f934b6..62c4d0ef3c 100644 Binary files a/icons/obj/mainframe.dmi and b/icons/obj/mainframe.dmi differ diff --git a/icons/obj/marking_beacon.dmi b/icons/obj/marking_beacon.dmi index f3ac801458..be0c04ac17 100644 Binary files a/icons/obj/marking_beacon.dmi and b/icons/obj/marking_beacon.dmi differ diff --git a/icons/obj/materials.dmi b/icons/obj/materials.dmi index 88494549e4..e25e325c72 100644 Binary files a/icons/obj/materials.dmi and b/icons/obj/materials.dmi differ diff --git a/icons/obj/materials/ore.dmi b/icons/obj/materials/ore.dmi index f96653e3c6..c82d4a8f99 100644 Binary files a/icons/obj/materials/ore.dmi and b/icons/obj/materials/ore.dmi differ diff --git a/icons/obj/med_pouch.dmi b/icons/obj/med_pouch.dmi index cb662c5e7e..9b65493417 100644 Binary files a/icons/obj/med_pouch.dmi and b/icons/obj/med_pouch.dmi differ diff --git a/icons/obj/medical_kits.dmi b/icons/obj/medical_kits.dmi index 5e630a6fae..21e1d0c93b 100644 Binary files a/icons/obj/medical_kits.dmi and b/icons/obj/medical_kits.dmi differ diff --git a/icons/obj/mediwall.dmi b/icons/obj/mediwall.dmi index aa077eaec2..22f0ff6424 100644 Binary files a/icons/obj/mediwall.dmi and b/icons/obj/mediwall.dmi differ diff --git a/icons/obj/meteor.dmi b/icons/obj/meteor.dmi index 757dac8363..2754119472 100644 Binary files a/icons/obj/meteor.dmi and b/icons/obj/meteor.dmi differ diff --git a/icons/obj/meter.dmi b/icons/obj/meter.dmi index 5f3051d8c0..4babf858f0 100644 Binary files a/icons/obj/meter.dmi and b/icons/obj/meter.dmi differ diff --git a/icons/obj/mining.dmi b/icons/obj/mining.dmi index 25e53c58d8..dfc6cb3362 100644 Binary files a/icons/obj/mining.dmi and b/icons/obj/mining.dmi differ diff --git a/icons/obj/mining_drill.dmi b/icons/obj/mining_drill.dmi index 95aab5f5be..21d951cf38 100644 Binary files a/icons/obj/mining_drill.dmi and b/icons/obj/mining_drill.dmi differ diff --git a/icons/obj/missile.dmi b/icons/obj/missile.dmi index 5a695f99f6..620b7921c1 100644 Binary files a/icons/obj/missile.dmi and b/icons/obj/missile.dmi differ diff --git a/icons/obj/modular_components.dmi b/icons/obj/modular_components.dmi index dc4529bfc8..037dfb68dd 100644 Binary files a/icons/obj/modular_components.dmi and b/icons/obj/modular_components.dmi differ diff --git a/icons/obj/modular_console.dmi b/icons/obj/modular_console.dmi index 521d14ddf8..12a3a1c675 100644 Binary files a/icons/obj/modular_console.dmi and b/icons/obj/modular_console.dmi differ diff --git a/icons/obj/modular_pda.dmi b/icons/obj/modular_pda.dmi index feac348b4a..cd7316259c 100644 Binary files a/icons/obj/modular_pda.dmi and b/icons/obj/modular_pda.dmi differ diff --git a/icons/obj/modular_tablet.dmi b/icons/obj/modular_tablet.dmi index 4452183794..0190852fd3 100644 Binary files a/icons/obj/modular_tablet.dmi and b/icons/obj/modular_tablet.dmi differ diff --git a/icons/obj/modular_telescreen.dmi b/icons/obj/modular_telescreen.dmi index eee9853a93..ac58ebbd65 100644 Binary files a/icons/obj/modular_telescreen.dmi and b/icons/obj/modular_telescreen.dmi differ diff --git a/icons/obj/module.dmi b/icons/obj/module.dmi index 41c73e7f79..7d1f37a4a3 100644 Binary files a/icons/obj/module.dmi and b/icons/obj/module.dmi differ diff --git a/icons/obj/monitors.dmi b/icons/obj/monitors.dmi index d6ea9f5b00..930e8bacee 100644 Binary files a/icons/obj/monitors.dmi and b/icons/obj/monitors.dmi differ diff --git a/icons/obj/monolith.dmi b/icons/obj/monolith.dmi index 0f479e3b23..9b9371a471 100644 Binary files a/icons/obj/monolith.dmi and b/icons/obj/monolith.dmi differ diff --git a/icons/obj/munitions.dmi b/icons/obj/munitions.dmi index 4631b35ba4..3022dc51ce 100644 Binary files a/icons/obj/munitions.dmi and b/icons/obj/munitions.dmi differ diff --git a/icons/obj/musician.dmi b/icons/obj/musician.dmi index 734a896944..c5861af42f 100644 Binary files a/icons/obj/musician.dmi and b/icons/obj/musician.dmi differ diff --git a/icons/obj/nanopaste.dmi b/icons/obj/nanopaste.dmi index 8068fdae27..2de5cb91c2 100644 Binary files a/icons/obj/nanopaste.dmi and b/icons/obj/nanopaste.dmi differ diff --git a/icons/obj/narsie_spawn_anim.dmi b/icons/obj/narsie_spawn_anim.dmi index 4f3de372e7..746fa44e28 100644 Binary files a/icons/obj/narsie_spawn_anim.dmi and b/icons/obj/narsie_spawn_anim.dmi differ diff --git a/icons/obj/nuclear_cylinder.dmi b/icons/obj/nuclear_cylinder.dmi index 9eb7419a8e..930e43f393 100644 Binary files a/icons/obj/nuclear_cylinder.dmi and b/icons/obj/nuclear_cylinder.dmi differ diff --git a/icons/obj/nuke.dmi b/icons/obj/nuke.dmi index cd73a11d95..79db954a0a 100644 Binary files a/icons/obj/nuke.dmi and b/icons/obj/nuke.dmi differ diff --git a/icons/obj/nuke_station.dmi b/icons/obj/nuke_station.dmi index c7cffca475..2e79ce5538 100644 Binary files a/icons/obj/nuke_station.dmi and b/icons/obj/nuke_station.dmi differ diff --git a/icons/obj/objects.dmi b/icons/obj/objects.dmi index de9cf2f525..4785599f6e 100644 Binary files a/icons/obj/objects.dmi and b/icons/obj/objects.dmi differ diff --git a/icons/obj/overmap.dmi b/icons/obj/overmap.dmi index 3cda65da5e..4f3cd70207 100644 Binary files a/icons/obj/overmap.dmi and b/icons/obj/overmap.dmi differ diff --git a/icons/obj/paper.dmi b/icons/obj/paper.dmi index ca4663df18..126274c3d3 100644 Binary files a/icons/obj/paper.dmi and b/icons/obj/paper.dmi differ diff --git a/icons/obj/passport.dmi b/icons/obj/passport.dmi index bd1fc7fdaa..bd62080d43 100644 Binary files a/icons/obj/passport.dmi and b/icons/obj/passport.dmi differ diff --git a/icons/obj/pda.dmi b/icons/obj/pda.dmi index 16ffe84d8e..d2749398fd 100644 Binary files a/icons/obj/pda.dmi and b/icons/obj/pda.dmi differ diff --git a/icons/obj/photography.dmi b/icons/obj/photography.dmi index d1503804b1..d9bde301a7 100644 Binary files a/icons/obj/photography.dmi and b/icons/obj/photography.dmi differ diff --git a/icons/obj/pieces.dmi b/icons/obj/pieces.dmi index 7759c07807..933558929b 100644 Binary files a/icons/obj/pieces.dmi and b/icons/obj/pieces.dmi differ diff --git a/icons/obj/pinpointer.dmi b/icons/obj/pinpointer.dmi index 9e418b4920..81094dc621 100644 Binary files a/icons/obj/pinpointer.dmi and b/icons/obj/pinpointer.dmi differ diff --git a/icons/obj/pipe-item.dmi b/icons/obj/pipe-item.dmi index 77bc716b3e..ee1526e768 100644 Binary files a/icons/obj/pipe-item.dmi and b/icons/obj/pipe-item.dmi differ diff --git a/icons/obj/pipes.dmi b/icons/obj/pipes.dmi index 684524912a..9d42783703 100644 Binary files a/icons/obj/pipes.dmi and b/icons/obj/pipes.dmi differ diff --git a/icons/obj/pipes/disposal.dmi b/icons/obj/pipes/disposal.dmi index 4a3037b7de..366995cbcc 100644 Binary files a/icons/obj/pipes/disposal.dmi and b/icons/obj/pipes/disposal.dmi differ diff --git a/icons/obj/pipes/large.dmi b/icons/obj/pipes/large.dmi index 55aad8e2f1..8f47df9850 100644 Binary files a/icons/obj/pipes/large.dmi and b/icons/obj/pipes/large.dmi differ diff --git a/icons/obj/pipes/regular.dmi b/icons/obj/pipes/regular.dmi index 3bc0f0b764..3908f2446b 100644 Binary files a/icons/obj/pipes/regular.dmi and b/icons/obj/pipes/regular.dmi differ diff --git a/icons/obj/pipes/transit_tube.dmi b/icons/obj/pipes/transit_tube.dmi index 45b2abc3c3..45cf450fe7 100644 Binary files a/icons/obj/pipes/transit_tube.dmi and b/icons/obj/pipes/transit_tube.dmi differ diff --git a/icons/obj/pipes/transit_tube_pod.dmi b/icons/obj/pipes/transit_tube_pod.dmi index a52b80f820..a8b4851688 100644 Binary files a/icons/obj/pipes/transit_tube_pod.dmi and b/icons/obj/pipes/transit_tube_pod.dmi differ diff --git a/icons/obj/pipes/transit_tube_station.dmi b/icons/obj/pipes/transit_tube_station.dmi index ca8515fded..5c44748b08 100644 Binary files a/icons/obj/pipes/transit_tube_station.dmi and b/icons/obj/pipes/transit_tube_station.dmi differ diff --git a/icons/obj/pipes2.dmi b/icons/obj/pipes2.dmi index 6e800711aa..960d5eabb3 100644 Binary files a/icons/obj/pipes2.dmi and b/icons/obj/pipes2.dmi differ diff --git a/icons/obj/pipeturbine.dmi b/icons/obj/pipeturbine.dmi index fccec4c9dd..1e6491c556 100644 Binary files a/icons/obj/pipeturbine.dmi and b/icons/obj/pipeturbine.dmi differ diff --git a/icons/obj/pit.dmi b/icons/obj/pit.dmi index 76ac50d185..6efe790ae3 100644 Binary files a/icons/obj/pit.dmi and b/icons/obj/pit.dmi differ diff --git a/icons/obj/plants.dmi b/icons/obj/plants.dmi index 356684885f..99ed69fc5f 100644 Binary files a/icons/obj/plants.dmi and b/icons/obj/plants.dmi differ diff --git a/icons/obj/playing_cards.dmi b/icons/obj/playing_cards.dmi index 2f4c01b707..cc9c60ec13 100644 Binary files a/icons/obj/playing_cards.dmi and b/icons/obj/playing_cards.dmi differ diff --git a/icons/obj/plunger.dmi b/icons/obj/plunger.dmi index 92d87c89d5..58f3b4ab2f 100644 Binary files a/icons/obj/plunger.dmi and b/icons/obj/plunger.dmi differ diff --git a/icons/obj/podwindows.dmi b/icons/obj/podwindows.dmi index 75bd1d9805..30e9183544 100644 Binary files a/icons/obj/podwindows.dmi and b/icons/obj/podwindows.dmi differ diff --git a/icons/obj/power.dmi b/icons/obj/power.dmi index 2524fafedc..741f3050c6 100644 Binary files a/icons/obj/power.dmi and b/icons/obj/power.dmi differ diff --git a/icons/obj/power_cond_heavy.dmi b/icons/obj/power_cond_heavy.dmi index 69b9ef085b..baabb90b4a 100644 Binary files a/icons/obj/power_cond_heavy.dmi and b/icons/obj/power_cond_heavy.dmi differ diff --git a/icons/obj/power_cond_white.dmi b/icons/obj/power_cond_white.dmi index f9f3d9da7a..b88b1bc1de 100644 Binary files a/icons/obj/power_cond_white.dmi and b/icons/obj/power_cond_white.dmi differ diff --git a/icons/obj/power_local.dmi b/icons/obj/power_local.dmi index b2b4373505..dd7edb5628 100644 Binary files a/icons/obj/power_local.dmi and b/icons/obj/power_local.dmi differ diff --git a/icons/obj/projectiles.dmi b/icons/obj/projectiles.dmi index 7598ae3363..e7aa0d4fe2 100644 Binary files a/icons/obj/projectiles.dmi and b/icons/obj/projectiles.dmi differ diff --git a/icons/obj/projector.dmi b/icons/obj/projector.dmi index 6e4012c09e..6fa8dfdeeb 100644 Binary files a/icons/obj/projector.dmi and b/icons/obj/projector.dmi differ diff --git a/icons/obj/psychic_powers.dmi b/icons/obj/psychic_powers.dmi index e527fe5805..31d3352676 100644 Binary files a/icons/obj/psychic_powers.dmi and b/icons/obj/psychic_powers.dmi differ diff --git a/icons/obj/pylon.dmi b/icons/obj/pylon.dmi index 0e2f0d8ddc..45f31206f7 100644 Binary files a/icons/obj/pylon.dmi and b/icons/obj/pylon.dmi differ diff --git a/icons/obj/quicksand.dmi b/icons/obj/quicksand.dmi index 2bea4ad6a0..b64d2ac3dc 100644 Binary files a/icons/obj/quicksand.dmi and b/icons/obj/quicksand.dmi differ diff --git a/icons/obj/radio.dmi b/icons/obj/radio.dmi index b68d8bee2d..7ff6ed96d4 100644 Binary files a/icons/obj/radio.dmi and b/icons/obj/radio.dmi differ diff --git a/icons/obj/railgun.dmi b/icons/obj/railgun.dmi index 0b00e7a156..ff819f7c0d 100644 Binary files a/icons/obj/railgun.dmi and b/icons/obj/railgun.dmi differ diff --git a/icons/obj/railing.dmi b/icons/obj/railing.dmi index 6518908d54..21fa1ef51a 100644 Binary files a/icons/obj/railing.dmi and b/icons/obj/railing.dmi differ diff --git a/icons/obj/reagentfillings.dmi b/icons/obj/reagentfillings.dmi index 98b4a49bb8..ebf037d9cd 100644 Binary files a/icons/obj/reagentfillings.dmi and b/icons/obj/reagentfillings.dmi differ diff --git a/icons/obj/recycling.dmi b/icons/obj/recycling.dmi index 3b0b86d7f7..2df026ce16 100644 Binary files a/icons/obj/recycling.dmi and b/icons/obj/recycling.dmi differ diff --git a/icons/obj/rift.dmi b/icons/obj/rift.dmi index 85b7510386..00610729c9 100644 Binary files a/icons/obj/rift.dmi and b/icons/obj/rift.dmi differ diff --git a/icons/obj/rig_modules.dmi b/icons/obj/rig_modules.dmi index d2ca801a68..3763ccea86 100644 Binary files a/icons/obj/rig_modules.dmi and b/icons/obj/rig_modules.dmi differ diff --git a/icons/obj/robot_component.dmi b/icons/obj/robot_component.dmi index d46d185a76..2cca711813 100644 Binary files a/icons/obj/robot_component.dmi and b/icons/obj/robot_component.dmi differ diff --git a/icons/obj/robot_parts.dmi b/icons/obj/robot_parts.dmi index 9461028091..bbfe356538 100644 Binary files a/icons/obj/robot_parts.dmi and b/icons/obj/robot_parts.dmi differ diff --git a/icons/obj/robot_parts_flying.dmi b/icons/obj/robot_parts_flying.dmi index 90033c41ff..4b821e74c3 100644 Binary files a/icons/obj/robot_parts_flying.dmi and b/icons/obj/robot_parts_flying.dmi differ diff --git a/icons/obj/robot_storage.dmi b/icons/obj/robot_storage.dmi index 5a996c01e7..2d76fb6a5b 100644 Binary files a/icons/obj/robot_storage.dmi and b/icons/obj/robot_storage.dmi differ diff --git a/icons/obj/robotics.dmi b/icons/obj/robotics.dmi index 5939f215b7..6d50aac945 100644 Binary files a/icons/obj/robotics.dmi and b/icons/obj/robotics.dmi differ diff --git a/icons/obj/rollerbed.dmi b/icons/obj/rollerbed.dmi index 40074fde90..1ee95f2aae 100644 Binary files a/icons/obj/rollerbed.dmi and b/icons/obj/rollerbed.dmi differ diff --git a/icons/obj/rubble.dmi b/icons/obj/rubble.dmi index 0f9cc1cf78..563d788d46 100644 Binary files a/icons/obj/rubble.dmi and b/icons/obj/rubble.dmi differ diff --git a/icons/obj/rune.dmi b/icons/obj/rune.dmi index c3c0bf2250..5e87b43cec 100644 Binary files a/icons/obj/rune.dmi and b/icons/obj/rune.dmi differ diff --git a/icons/obj/scarlet-king.dmi b/icons/obj/scarlet-king.dmi index 0c1efacbd3..d14b7c9fd9 100644 Binary files a/icons/obj/scarlet-king.dmi and b/icons/obj/scarlet-king.dmi differ diff --git a/icons/obj/scp.dmi b/icons/obj/scp.dmi index 3ff1816713..eaf9788068 100644 Binary files a/icons/obj/scp.dmi and b/icons/obj/scp.dmi differ diff --git a/icons/obj/sec-lockers.dmi b/icons/obj/sec-lockers.dmi index 11d0e9166b..f8664ae9d9 100644 Binary files a/icons/obj/sec-lockers.dmi and b/icons/obj/sec-lockers.dmi differ diff --git a/icons/obj/sec-lockers_new.dmi b/icons/obj/sec-lockers_new.dmi index 42329dadfe..145a9583b9 100644 Binary files a/icons/obj/sec-lockers_new.dmi and b/icons/obj/sec-lockers_new.dmi differ diff --git a/icons/obj/seeds.dmi b/icons/obj/seeds.dmi index e82f690f7a..5bcbbc644a 100644 Binary files a/icons/obj/seeds.dmi and b/icons/obj/seeds.dmi differ diff --git a/icons/obj/shards.dmi b/icons/obj/shards.dmi index e8bee2d57f..58e9db4026 100644 Binary files a/icons/obj/shards.dmi and b/icons/obj/shards.dmi differ diff --git a/icons/obj/ship_engine.dmi b/icons/obj/ship_engine.dmi index 62e7afc0f1..35ce98bdd2 100644 Binary files a/icons/obj/ship_engine.dmi and b/icons/obj/ship_engine.dmi differ diff --git a/icons/obj/shipping_crates.dmi b/icons/obj/shipping_crates.dmi index b545a9a7b7..cae8545c95 100644 Binary files a/icons/obj/shipping_crates.dmi and b/icons/obj/shipping_crates.dmi differ diff --git a/icons/obj/signs_scp.dmi b/icons/obj/signs_scp.dmi index 3f3d9958f4..ffaa6ed3e9 100644 Binary files a/icons/obj/signs_scp.dmi and b/icons/obj/signs_scp.dmi differ diff --git a/icons/obj/singularity.dmi b/icons/obj/singularity.dmi index 329ab2be21..81c13ac755 100644 Binary files a/icons/obj/singularity.dmi and b/icons/obj/singularity.dmi differ diff --git a/icons/obj/smoothlattice.dmi b/icons/obj/smoothlattice.dmi index 264e88ac6f..a06b7a1865 100644 Binary files a/icons/obj/smoothlattice.dmi and b/icons/obj/smoothlattice.dmi differ diff --git a/icons/obj/soap.dmi b/icons/obj/soap.dmi index f3a845ab87..24e17f1dcd 100644 Binary files a/icons/obj/soap.dmi and b/icons/obj/soap.dmi differ diff --git a/icons/obj/stairs.dmi b/icons/obj/stairs.dmi index b0c14147e5..b84de3c3d9 100644 Binary files a/icons/obj/stairs.dmi and b/icons/obj/stairs.dmi differ diff --git a/icons/obj/stationobjs.dmi b/icons/obj/stationobjs.dmi index 692ed20650..e00f978630 100644 Binary files a/icons/obj/stationobjs.dmi and b/icons/obj/stationobjs.dmi differ diff --git a/icons/obj/statue.dmi b/icons/obj/statue.dmi index 5da8a1386d..e43c87e872 100644 Binary files a/icons/obj/statue.dmi and b/icons/obj/statue.dmi differ diff --git a/icons/obj/status_display.dmi b/icons/obj/status_display.dmi index cfc11ba55d..7c995f3320 100644 Binary files a/icons/obj/status_display.dmi and b/icons/obj/status_display.dmi differ diff --git a/icons/obj/stickynotes.dmi b/icons/obj/stickynotes.dmi index dfcf3f5787..90cac3893c 100644 Binary files a/icons/obj/stickynotes.dmi and b/icons/obj/stickynotes.dmi differ diff --git a/icons/obj/stock_parts.dmi b/icons/obj/stock_parts.dmi index c9313672d2..ca97b07588 100644 Binary files a/icons/obj/stock_parts.dmi and b/icons/obj/stock_parts.dmi differ diff --git a/icons/obj/storage.dmi b/icons/obj/storage.dmi index 600d0d1364..95e9dd9ead 100644 Binary files a/icons/obj/storage.dmi and b/icons/obj/storage.dmi differ diff --git a/icons/obj/structures.dmi b/icons/obj/structures.dmi index 43ba5c2f49..40b4047da3 100644 Binary files a/icons/obj/structures.dmi and b/icons/obj/structures.dmi differ diff --git a/icons/obj/structures/glass_table.dmi b/icons/obj/structures/glass_table.dmi index 47f9ee992b..fa291944da 100644 Binary files a/icons/obj/structures/glass_table.dmi and b/icons/obj/structures/glass_table.dmi differ diff --git a/icons/obj/structures/plants.dmi b/icons/obj/structures/plants.dmi index 2fc12cca9c..ffd44edffb 100644 Binary files a/icons/obj/structures/plants.dmi and b/icons/obj/structures/plants.dmi differ diff --git a/icons/obj/structures/reinforced_table.dmi b/icons/obj/structures/reinforced_table.dmi index d11bc76cb6..1eaf6be96e 100644 Binary files a/icons/obj/structures/reinforced_table.dmi and b/icons/obj/structures/reinforced_table.dmi differ diff --git a/icons/obj/structures/rglass_table.dmi b/icons/obj/structures/rglass_table.dmi index a4518ba420..fcaf10ec9c 100644 Binary files a/icons/obj/structures/rglass_table.dmi and b/icons/obj/structures/rglass_table.dmi differ diff --git a/icons/obj/structures/table.dmi b/icons/obj/structures/table.dmi index e5f0537f80..9b0be3af3c 100644 Binary files a/icons/obj/structures/table.dmi and b/icons/obj/structures/table.dmi differ diff --git a/icons/obj/subliminator.dmi b/icons/obj/subliminator.dmi index 7a8395ec67..298433eeaf 100644 Binary files a/icons/obj/subliminator.dmi and b/icons/obj/subliminator.dmi differ diff --git a/icons/obj/suitcooler.dmi b/icons/obj/suitcooler.dmi index f881e07d1f..7ae4bc0246 100644 Binary files a/icons/obj/suitcooler.dmi and b/icons/obj/suitcooler.dmi differ diff --git a/icons/obj/suitstorage.dmi b/icons/obj/suitstorage.dmi index 1f4748862e..bb37362dd1 100644 Binary files a/icons/obj/suitstorage.dmi and b/icons/obj/suitstorage.dmi differ diff --git a/icons/obj/supermatter.dmi b/icons/obj/supermatter.dmi index 933fc3335f..6212cf5612 100644 Binary files a/icons/obj/supermatter.dmi and b/icons/obj/supermatter.dmi differ diff --git a/icons/obj/supplybeacon.dmi b/icons/obj/supplybeacon.dmi index 9734d85458..5cdd55949d 100644 Binary files a/icons/obj/supplybeacon.dmi and b/icons/obj/supplybeacon.dmi differ diff --git a/icons/obj/surgery.dmi b/icons/obj/surgery.dmi index 3e86b78776..ebc0a78ca1 100644 Binary files a/icons/obj/surgery.dmi and b/icons/obj/surgery.dmi differ diff --git a/icons/obj/sushi.dmi b/icons/obj/sushi.dmi index 942f4638c0..a1151026eb 100644 Binary files a/icons/obj/sushi.dmi and b/icons/obj/sushi.dmi differ diff --git a/icons/obj/swiss_knife.dmi b/icons/obj/swiss_knife.dmi index 094a1ee017..9b90fa9696 100644 Binary files a/icons/obj/swiss_knife.dmi and b/icons/obj/swiss_knife.dmi differ diff --git a/icons/obj/syndieweapons.dmi b/icons/obj/syndieweapons.dmi index bccb01e17f..0f96be6b53 100644 Binary files a/icons/obj/syndieweapons.dmi and b/icons/obj/syndieweapons.dmi differ diff --git a/icons/obj/syringe.dmi b/icons/obj/syringe.dmi index ad1df8c754..f1a20f4a4f 100644 Binary files a/icons/obj/syringe.dmi and b/icons/obj/syringe.dmi differ diff --git a/icons/obj/syringefilling.dmi b/icons/obj/syringefilling.dmi index 5c5cac840e..6640398052 100644 Binary files a/icons/obj/syringefilling.dmi and b/icons/obj/syringefilling.dmi differ diff --git a/icons/obj/tables.dmi b/icons/obj/tables.dmi index 8f7b9bfd5d..d3753a8175 100644 Binary files a/icons/obj/tables.dmi and b/icons/obj/tables.dmi differ diff --git a/icons/obj/tank.dmi b/icons/obj/tank.dmi index fe9bebc370..01a533f38c 100644 Binary files a/icons/obj/tank.dmi and b/icons/obj/tank.dmi differ diff --git a/icons/obj/teleporter.dmi b/icons/obj/teleporter.dmi index a1206d3469..5c92d215b7 100644 Binary files a/icons/obj/teleporter.dmi and b/icons/obj/teleporter.dmi differ diff --git a/icons/obj/telescience.dmi b/icons/obj/telescience.dmi index dcd7f39d73..8bd8069b51 100644 Binary files a/icons/obj/telescience.dmi and b/icons/obj/telescience.dmi differ diff --git a/icons/obj/terminals.dmi b/icons/obj/terminals.dmi index 1afdc104b4..13e37056a3 100644 Binary files a/icons/obj/terminals.dmi and b/icons/obj/terminals.dmi differ diff --git a/icons/obj/tiles.dmi b/icons/obj/tiles.dmi index 755a203e6a..032d55c081 100644 Binary files a/icons/obj/tiles.dmi and b/icons/obj/tiles.dmi differ diff --git a/icons/obj/tools.dmi b/icons/obj/tools.dmi index 079508da31..3fcb40b2fa 100644 Binary files a/icons/obj/tools.dmi and b/icons/obj/tools.dmi differ diff --git a/icons/obj/toy.dmi b/icons/obj/toy.dmi index f420bc4b64..b54a389ecf 100644 Binary files a/icons/obj/toy.dmi and b/icons/obj/toy.dmi differ diff --git a/icons/obj/trash.dmi b/icons/obj/trash.dmi index 6202651414..bc5671805e 100644 Binary files a/icons/obj/trash.dmi and b/icons/obj/trash.dmi differ diff --git a/icons/obj/tubing.dmi b/icons/obj/tubing.dmi index 89c4bf45e3..3141ae76f5 100644 Binary files a/icons/obj/tubing.dmi and b/icons/obj/tubing.dmi differ diff --git a/icons/obj/turbolift.dmi b/icons/obj/turbolift.dmi index cffc8aa140..0941e60515 100644 Binary files a/icons/obj/turbolift.dmi and b/icons/obj/turbolift.dmi differ diff --git a/icons/obj/turbolift_preview_2x2.dmi b/icons/obj/turbolift_preview_2x2.dmi index f0f1ec491e..0955703472 100644 Binary files a/icons/obj/turbolift_preview_2x2.dmi and b/icons/obj/turbolift_preview_2x2.dmi differ diff --git a/icons/obj/turbolift_preview_3x3.dmi b/icons/obj/turbolift_preview_3x3.dmi index e054a6b9aa..dbfbd9bcfe 100644 Binary files a/icons/obj/turbolift_preview_3x3.dmi and b/icons/obj/turbolift_preview_3x3.dmi differ diff --git a/icons/obj/turrets.dmi b/icons/obj/turrets.dmi index b3a2036742..86dded6b46 100644 Binary files a/icons/obj/turrets.dmi and b/icons/obj/turrets.dmi differ diff --git a/icons/obj/undies_wardrobe.dmi b/icons/obj/undies_wardrobe.dmi index 171269a9fe..f5aa48221e 100644 Binary files a/icons/obj/undies_wardrobe.dmi and b/icons/obj/undies_wardrobe.dmi differ diff --git a/icons/obj/urn.dmi b/icons/obj/urn.dmi index e2d43cf594..d1ee6069e8 100644 Binary files a/icons/obj/urn.dmi and b/icons/obj/urn.dmi differ diff --git a/icons/obj/vehicles.dmi b/icons/obj/vehicles.dmi index e70275591f..1b25725023 100644 Binary files a/icons/obj/vehicles.dmi and b/icons/obj/vehicles.dmi differ diff --git a/icons/obj/vending.dmi b/icons/obj/vending.dmi index ce190d71e0..3140c187b3 100644 Binary files a/icons/obj/vending.dmi and b/icons/obj/vending.dmi differ diff --git a/icons/obj/vialbox.dmi b/icons/obj/vialbox.dmi index c08b5cfeab..35e7db5588 100644 Binary files a/icons/obj/vialbox.dmi and b/icons/obj/vialbox.dmi differ diff --git a/icons/obj/virology.dmi b/icons/obj/virology.dmi index 224c4c9014..ea1317587a 100644 Binary files a/icons/obj/virology.dmi and b/icons/obj/virology.dmi differ diff --git a/icons/obj/wall_frame.dmi b/icons/obj/wall_frame.dmi index 7306cf8cdd..582f98e0ee 100644 Binary files a/icons/obj/wall_frame.dmi and b/icons/obj/wall_frame.dmi differ diff --git a/icons/obj/wallet.dmi b/icons/obj/wallet.dmi index a623c0e146..36893b0791 100644 Binary files a/icons/obj/wallet.dmi and b/icons/obj/wallet.dmi differ diff --git a/icons/obj/walllocker.dmi b/icons/obj/walllocker.dmi index 8f112b0521..18f7e976d2 100644 Binary files a/icons/obj/walllocker.dmi and b/icons/obj/walllocker.dmi differ diff --git a/icons/obj/watercloset.dmi b/icons/obj/watercloset.dmi index 5d81f16b94..3e76b68a89 100644 Binary files a/icons/obj/watercloset.dmi and b/icons/obj/watercloset.dmi differ diff --git a/icons/obj/weapons.dmi b/icons/obj/weapons.dmi index 0716579451..7c678366ac 100644 Binary files a/icons/obj/weapons.dmi and b/icons/obj/weapons.dmi differ diff --git a/icons/obj/weapons/hammer.dmi b/icons/obj/weapons/hammer.dmi index ea2cdb04f5..81e5c6216c 100644 Binary files a/icons/obj/weapons/hammer.dmi and b/icons/obj/weapons/hammer.dmi differ diff --git a/icons/obj/weapons/melee_energy.dmi b/icons/obj/weapons/melee_energy.dmi index 57c2c1ca83..24678cfd95 100644 Binary files a/icons/obj/weapons/melee_energy.dmi and b/icons/obj/weapons/melee_energy.dmi differ diff --git a/icons/obj/weapons/melee_physical.dmi b/icons/obj/weapons/melee_physical.dmi index 14f5935fcf..49831f75bc 100644 Binary files a/icons/obj/weapons/melee_physical.dmi and b/icons/obj/weapons/melee_physical.dmi differ diff --git a/icons/obj/weapons/other.dmi b/icons/obj/weapons/other.dmi index 6a4c462044..a44102ae97 100644 Binary files a/icons/obj/weapons/other.dmi and b/icons/obj/weapons/other.dmi differ diff --git a/icons/obj/window.dmi b/icons/obj/window.dmi index 5a961763e3..9cec369d92 100644 Binary files a/icons/obj/window.dmi and b/icons/obj/window.dmi differ diff --git a/icons/obj/wizard.dmi b/icons/obj/wizard.dmi index 81838140d0..51e9e4ad71 100644 Binary files a/icons/obj/wizard.dmi and b/icons/obj/wizard.dmi differ diff --git a/icons/obj/xenoarchaeology.dmi b/icons/obj/xenoarchaeology.dmi index db29a30075..140ba9afef 100644 Binary files a/icons/obj/xenoarchaeology.dmi and b/icons/obj/xenoarchaeology.dmi differ diff --git a/icons/patron/Aptare.dmi b/icons/patron/Aptare.dmi index c4d760e60d..d3ca77d890 100644 Binary files a/icons/patron/Aptare.dmi and b/icons/patron/Aptare.dmi differ diff --git a/icons/pdrink.dmi b/icons/pdrink.dmi index 24dedabb39..1af6255720 100644 Binary files a/icons/pdrink.dmi and b/icons/pdrink.dmi differ diff --git a/icons/policetape.dmi b/icons/policetape.dmi index b3e2e02b9c..2b2d51d090 100644 Binary files a/icons/policetape.dmi and b/icons/policetape.dmi differ diff --git a/icons/prototype.dmi b/icons/prototype.dmi index 8964030e07..f88d3a7bd8 100644 Binary files a/icons/prototype.dmi and b/icons/prototype.dmi differ diff --git a/icons/reagentname_bg.png b/icons/reagentname_bg.png index 879179edd8..3a9d10765f 100644 Binary files a/icons/reagentname_bg.png and b/icons/reagentname_bg.png differ diff --git a/icons/scp.png b/icons/scp.png index 2b7c3de5f2..f0dfee5fa8 100644 Binary files a/icons/scp.png and b/icons/scp.png differ diff --git a/icons/scp_64x64.png b/icons/scp_64x64.png index 7809c7f61c..567c1290fe 100644 Binary files a/icons/scp_64x64.png and b/icons/scp_64x64.png differ diff --git a/icons/skybox/electrobox.dmi b/icons/skybox/electrobox.dmi index 52e9f5d8cc..dcd1a41be9 100644 Binary files a/icons/skybox/electrobox.dmi and b/icons/skybox/electrobox.dmi differ diff --git a/icons/skybox/ionbox.dmi b/icons/skybox/ionbox.dmi index 7f5c5b15d6..dcd3b82bd8 100644 Binary files a/icons/skybox/ionbox.dmi and b/icons/skybox/ionbox.dmi differ diff --git a/icons/skybox/planet.dmi b/icons/skybox/planet.dmi index 45497b6e5f..f43a7c96c8 100644 Binary files a/icons/skybox/planet.dmi and b/icons/skybox/planet.dmi differ diff --git a/icons/skybox/planet_rings.dmi b/icons/skybox/planet_rings.dmi index b122605206..605b92e6e5 100644 Binary files a/icons/skybox/planet_rings.dmi and b/icons/skybox/planet_rings.dmi differ diff --git a/icons/skybox/radbox.dmi b/icons/skybox/radbox.dmi index 8b44c21257..ca2fc670b0 100644 Binary files a/icons/skybox/radbox.dmi and b/icons/skybox/radbox.dmi differ diff --git a/icons/skybox/rockbox.dmi b/icons/skybox/rockbox.dmi index 3a4d97595c..bcd4471fe0 100644 Binary files a/icons/skybox/rockbox.dmi and b/icons/skybox/rockbox.dmi differ diff --git a/icons/skybox/skybox.dmi b/icons/skybox/skybox.dmi index e7d6fb3c58..dfdb3f6463 100644 Binary files a/icons/skybox/skybox.dmi and b/icons/skybox/skybox.dmi differ diff --git a/icons/skybox/skybox_rock_128.dmi b/icons/skybox/skybox_rock_128.dmi index 732eaf1136..4a17ca9e90 100644 Binary files a/icons/skybox/skybox_rock_128.dmi and b/icons/skybox/skybox_rock_128.dmi differ diff --git a/icons/skybox/skybox_rocks.dmi b/icons/skybox/skybox_rocks.dmi index b917bc9eaa..a873e629eb 100644 Binary files a/icons/skybox/skybox_rocks.dmi and b/icons/skybox/skybox_rocks.dmi differ diff --git a/icons/ss13_32.png b/icons/ss13_32.png index 41b98b02e8..5d7258714e 100644 Binary files a/icons/ss13_32.png and b/icons/ss13_32.png differ diff --git a/icons/ss13_64.png b/icons/ss13_64.png index d7eea9a38d..cc38d250e4 100644 Binary files a/icons/ss13_64.png and b/icons/ss13_64.png differ diff --git a/icons/turf/areas.dmi b/icons/turf/areas.dmi index be82279128..4f5efd5b44 100644 Binary files a/icons/turf/areas.dmi and b/icons/turf/areas.dmi differ diff --git a/icons/turf/chlorine.dmi b/icons/turf/chlorine.dmi index 3cf6bba30f..b4aa47cbc9 100644 Binary files a/icons/turf/chlorine.dmi and b/icons/turf/chlorine.dmi differ diff --git a/icons/turf/cliff.dmi b/icons/turf/cliff.dmi index a54e13656e..e82d45fb32 100644 Binary files a/icons/turf/cliff.dmi and b/icons/turf/cliff.dmi differ diff --git a/icons/turf/desert.dmi b/icons/turf/desert.dmi index b080a82642..56098965bf 100644 Binary files a/icons/turf/desert.dmi and b/icons/turf/desert.dmi differ diff --git a/icons/turf/doona.dmi b/icons/turf/doona.dmi index 5d28c3a489..7842b0d52c 100644 Binary files a/icons/turf/doona.dmi and b/icons/turf/doona.dmi differ diff --git a/icons/turf/excavation_overlays.dmi b/icons/turf/excavation_overlays.dmi index 1f7c8e128d..be97ebfda0 100644 Binary files a/icons/turf/excavation_overlays.dmi and b/icons/turf/excavation_overlays.dmi differ diff --git a/icons/turf/flooring/alium.dmi b/icons/turf/flooring/alium.dmi index 33665c8e05..4fe2df944e 100644 Binary files a/icons/turf/flooring/alium.dmi and b/icons/turf/flooring/alium.dmi differ diff --git a/icons/turf/flooring/asteroid.dmi b/icons/turf/flooring/asteroid.dmi index eaba3e7626..f7a56ad657 100644 Binary files a/icons/turf/flooring/asteroid.dmi and b/icons/turf/flooring/asteroid.dmi differ diff --git a/icons/turf/flooring/carpet.dmi b/icons/turf/flooring/carpet.dmi index 8dfd9076cf..393c753db3 100644 Binary files a/icons/turf/flooring/carpet.dmi and b/icons/turf/flooring/carpet.dmi differ diff --git a/icons/turf/flooring/circuit.dmi b/icons/turf/flooring/circuit.dmi index 3617171b97..38d927a3e9 100644 Binary files a/icons/turf/flooring/circuit.dmi and b/icons/turf/flooring/circuit.dmi differ diff --git a/icons/turf/flooring/corp_floor.dmi b/icons/turf/flooring/corp_floor.dmi index 17e762b32f..981eedee43 100644 Binary files a/icons/turf/flooring/corp_floor.dmi and b/icons/turf/flooring/corp_floor.dmi differ diff --git a/icons/turf/flooring/crystal.dmi b/icons/turf/flooring/crystal.dmi index 00c7a13cb7..6e3f8d8f65 100644 Binary files a/icons/turf/flooring/crystal.dmi and b/icons/turf/flooring/crystal.dmi differ diff --git a/icons/turf/flooring/cult.dmi b/icons/turf/flooring/cult.dmi index 47898ff712..a41d1e3faa 100644 Binary files a/icons/turf/flooring/cult.dmi and b/icons/turf/flooring/cult.dmi differ diff --git a/icons/turf/flooring/damage.dmi b/icons/turf/flooring/damage.dmi index e7af92ce64..991dd65f0f 100644 Binary files a/icons/turf/flooring/damage.dmi and b/icons/turf/flooring/damage.dmi differ diff --git a/icons/turf/flooring/decals.dmi b/icons/turf/flooring/decals.dmi index ab5f459fdc..885e8f70ab 100644 Binary files a/icons/turf/flooring/decals.dmi and b/icons/turf/flooring/decals.dmi differ diff --git a/icons/turf/flooring/decals_scp.dmi b/icons/turf/flooring/decals_scp.dmi index b5fc5e2a52..7fca027286 100644 Binary files a/icons/turf/flooring/decals_scp.dmi and b/icons/turf/flooring/decals_scp.dmi differ diff --git a/icons/turf/flooring/dirt.dmi b/icons/turf/flooring/dirt.dmi index 28d1862456..556ee4c7c6 100644 Binary files a/icons/turf/flooring/dirt.dmi and b/icons/turf/flooring/dirt.dmi differ diff --git a/icons/turf/flooring/flesh.dmi b/icons/turf/flooring/flesh.dmi index 72871eddc4..0b02e314cc 100644 Binary files a/icons/turf/flooring/flesh.dmi and b/icons/turf/flooring/flesh.dmi differ diff --git a/icons/turf/flooring/grass.dmi b/icons/turf/flooring/grass.dmi index a3378505f4..1334ee1d0e 100644 Binary files a/icons/turf/flooring/grass.dmi and b/icons/turf/flooring/grass.dmi differ diff --git a/icons/turf/flooring/lava.dmi b/icons/turf/flooring/lava.dmi index c70c039b8e..c7817f33ec 100644 Binary files a/icons/turf/flooring/lava.dmi and b/icons/turf/flooring/lava.dmi differ diff --git a/icons/turf/flooring/misc.dmi b/icons/turf/flooring/misc.dmi index fc0eb605f3..09cc614e91 100644 Binary files a/icons/turf/flooring/misc.dmi and b/icons/turf/flooring/misc.dmi differ diff --git a/icons/turf/flooring/plating.dmi b/icons/turf/flooring/plating.dmi index 0e58f898e6..e5fb9802b6 100644 Binary files a/icons/turf/flooring/plating.dmi and b/icons/turf/flooring/plating.dmi differ diff --git a/icons/turf/flooring/pool.dmi b/icons/turf/flooring/pool.dmi index a45cf848ef..3f8aea1884 100644 Binary files a/icons/turf/flooring/pool.dmi and b/icons/turf/flooring/pool.dmi differ diff --git a/icons/turf/flooring/shadows.dmi b/icons/turf/flooring/shadows.dmi index 2db9e6a645..563736fc8f 100644 Binary files a/icons/turf/flooring/shadows.dmi and b/icons/turf/flooring/shadows.dmi differ diff --git a/icons/turf/flooring/techfloor.dmi b/icons/turf/flooring/techfloor.dmi index 5124ff3146..5dc45912eb 100644 Binary files a/icons/turf/flooring/techfloor.dmi and b/icons/turf/flooring/techfloor.dmi differ diff --git a/icons/turf/flooring/tiles.dmi b/icons/turf/flooring/tiles.dmi index 1b29a10ed3..75835817ab 100644 Binary files a/icons/turf/flooring/tiles.dmi and b/icons/turf/flooring/tiles.dmi differ diff --git a/icons/turf/flooring/wood.dmi b/icons/turf/flooring/wood.dmi index 95ccf30196..b4e31e6d46 100644 Binary files a/icons/turf/flooring/wood.dmi and b/icons/turf/flooring/wood.dmi differ diff --git a/icons/turf/floors.dmi b/icons/turf/floors.dmi index 7eed06aec6..723b2d71d6 100644 Binary files a/icons/turf/floors.dmi and b/icons/turf/floors.dmi differ diff --git a/icons/turf/jungle.dmi b/icons/turf/jungle.dmi index 4f5a7c1681..f64bc7666e 100644 Binary files a/icons/turf/jungle.dmi and b/icons/turf/jungle.dmi differ diff --git a/icons/turf/mining_decals.dmi b/icons/turf/mining_decals.dmi index 14024a1de1..a17e2c1691 100644 Binary files a/icons/turf/mining_decals.dmi and b/icons/turf/mining_decals.dmi differ diff --git a/icons/turf/open_space.dmi b/icons/turf/open_space.dmi index 2c09dc6042..bdf1bf56e4 100644 Binary files a/icons/turf/open_space.dmi and b/icons/turf/open_space.dmi differ diff --git a/icons/turf/overlays.dmi b/icons/turf/overlays.dmi index 110c1ee197..62b2dd23fd 100644 Binary files a/icons/turf/overlays.dmi and b/icons/turf/overlays.dmi differ diff --git a/icons/turf/rockbox.dmi b/icons/turf/rockbox.dmi index 8821ad2b25..77955de590 100644 Binary files a/icons/turf/rockbox.dmi and b/icons/turf/rockbox.dmi differ diff --git a/icons/turf/seafloor.dmi b/icons/turf/seafloor.dmi index 241f9122d2..8fc4dad922 100644 Binary files a/icons/turf/seafloor.dmi and b/icons/turf/seafloor.dmi differ diff --git a/icons/turf/shrouded.dmi b/icons/turf/shrouded.dmi index ce90ed185f..dba684cb4f 100644 Binary files a/icons/turf/shrouded.dmi and b/icons/turf/shrouded.dmi differ diff --git a/icons/turf/shuttle.dmi b/icons/turf/shuttle.dmi index 77ecf3619c..6b74e19aed 100644 Binary files a/icons/turf/shuttle.dmi and b/icons/turf/shuttle.dmi differ diff --git a/icons/turf/skrellturf.dmi b/icons/turf/skrellturf.dmi index 452595aa89..e215a3cf97 100644 Binary files a/icons/turf/skrellturf.dmi and b/icons/turf/skrellturf.dmi differ diff --git a/icons/turf/skybox.dmi b/icons/turf/skybox.dmi index b2c6585b63..c3127e9ec7 100644 Binary files a/icons/turf/skybox.dmi and b/icons/turf/skybox.dmi differ diff --git a/icons/turf/skybox_rocks.dmi b/icons/turf/skybox_rocks.dmi index b917bc9eaa..a873e629eb 100644 Binary files a/icons/turf/skybox_rocks.dmi and b/icons/turf/skybox_rocks.dmi differ diff --git a/icons/turf/snow.dmi b/icons/turf/snow.dmi index dc33f6dac5..7ed090c7e3 100644 Binary files a/icons/turf/snow.dmi and b/icons/turf/snow.dmi differ diff --git a/icons/turf/space.dmi b/icons/turf/space.dmi index 055face17a..58169532de 100644 Binary files a/icons/turf/space.dmi and b/icons/turf/space.dmi differ diff --git a/icons/turf/space_dust.dmi b/icons/turf/space_dust.dmi index 8328b3dba9..2770e19175 100644 Binary files a/icons/turf/space_dust.dmi and b/icons/turf/space_dust.dmi differ diff --git a/icons/turf/space_skybox_comp1.dmi b/icons/turf/space_skybox_comp1.dmi index e93cc831d4..7e552bae9a 100644 Binary files a/icons/turf/space_skybox_comp1.dmi and b/icons/turf/space_skybox_comp1.dmi differ diff --git a/icons/turf/space_skybox_comp2.dmi b/icons/turf/space_skybox_comp2.dmi index 0c9d95b638..105c483a75 100644 Binary files a/icons/turf/space_skybox_comp2.dmi and b/icons/turf/space_skybox_comp2.dmi differ diff --git a/icons/turf/space_skybox_comp3.dmi b/icons/turf/space_skybox_comp3.dmi index 2dbbb39e46..caa4a31f04 100644 Binary files a/icons/turf/space_skybox_comp3.dmi and b/icons/turf/space_skybox_comp3.dmi differ diff --git a/icons/turf/structures.dmi b/icons/turf/structures.dmi index 36da6f2e02..e52f561f65 100644 Binary files a/icons/turf/structures.dmi and b/icons/turf/structures.dmi differ diff --git a/icons/turf/wall_masks.dmi b/icons/turf/wall_masks.dmi index f60de15fd8..ee48b4ae35 100644 Binary files a/icons/turf/wall_masks.dmi and b/icons/turf/wall_masks.dmi differ diff --git a/icons/turf/wall_template.dmi b/icons/turf/wall_template.dmi index 04418c7617..9119a210cf 100644 Binary files a/icons/turf/wall_template.dmi and b/icons/turf/wall_template.dmi differ diff --git a/icons/turf/wall_texture.dmi b/icons/turf/wall_texture.dmi index 265e997b93..5f8e526fa9 100644 Binary files a/icons/turf/wall_texture.dmi and b/icons/turf/wall_texture.dmi differ diff --git a/icons/turf/walls.dmi b/icons/turf/walls.dmi index 7a621e6d90..a248ad3054 100644 Binary files a/icons/turf/walls.dmi and b/icons/turf/walls.dmi differ diff --git a/icons/unsorted/123.dmi b/icons/unsorted/123.dmi index 8a476fa851..ec647ba74d 100644 Binary files a/icons/unsorted/123.dmi and b/icons/unsorted/123.dmi differ diff --git a/icons/unsorted/128tree.dmi b/icons/unsorted/128tree.dmi index d88180d058..fec64a6864 100644 Binary files a/icons/unsorted/128tree.dmi and b/icons/unsorted/128tree.dmi differ diff --git a/icons/unsorted/SCPCommissionPackage.dmi b/icons/unsorted/SCPCommissionPackage.dmi index aa7109ec87..ab07c55bc3 100644 Binary files a/icons/unsorted/SCPCommissionPackage.dmi and b/icons/unsorted/SCPCommissionPackage.dmi differ diff --git a/icons/unsorted/ammo.dmi b/icons/unsorted/ammo.dmi index ec9d12818c..9baec15b56 100644 Binary files a/icons/unsorted/ammo.dmi and b/icons/unsorted/ammo.dmi differ diff --git a/icons/unsorted/bookcase.dmi b/icons/unsorted/bookcase.dmi index 27b2adb8e8..0309a15637 100644 Binary files a/icons/unsorted/bookcase.dmi and b/icons/unsorted/bookcase.dmi differ diff --git a/icons/unsorted/deadtrees.dmi b/icons/unsorted/deadtrees.dmi index f76ffd442f..3a8576024a 100644 Binary files a/icons/unsorted/deadtrees.dmi and b/icons/unsorted/deadtrees.dmi differ diff --git a/icons/unsorted/decals.dmi b/icons/unsorted/decals.dmi index 7f7b34d2f9..d3ee8e0649 100644 Binary files a/icons/unsorted/decals.dmi and b/icons/unsorted/decals.dmi differ diff --git a/icons/unsorted/don.dmi b/icons/unsorted/don.dmi index 6924422995..4cc9fca8b4 100644 Binary files a/icons/unsorted/don.dmi and b/icons/unsorted/don.dmi differ diff --git a/icons/unsorted/donate_icons.dmi b/icons/unsorted/donate_icons.dmi index 1e47142e61..8af00966db 100644 Binary files a/icons/unsorted/donate_icons.dmi and b/icons/unsorted/donate_icons.dmi differ diff --git a/icons/unsorted/donate_on_mob.dmi b/icons/unsorted/donate_on_mob.dmi index 4a91825d43..c006867c8e 100644 Binary files a/icons/unsorted/donate_on_mob.dmi and b/icons/unsorted/donate_on_mob.dmi differ diff --git a/icons/unsorted/doors.dmi b/icons/unsorted/doors.dmi index 9998b3389c..0e38ec2d33 100644 Binary files a/icons/unsorted/doors.dmi and b/icons/unsorted/doors.dmi differ diff --git a/icons/unsorted/dronPidor.dmi b/icons/unsorted/dronPidor.dmi index 7aff64d7d4..b87771b6a2 100644 Binary files a/icons/unsorted/dronPidor.dmi and b/icons/unsorted/dronPidor.dmi differ diff --git a/icons/unsorted/eng_donut.dmi b/icons/unsorted/eng_donut.dmi index 63a18e7d65..6b6e425ea4 100644 Binary files a/icons/unsorted/eng_donut.dmi and b/icons/unsorted/eng_donut.dmi differ diff --git a/icons/unsorted/flora.dmi b/icons/unsorted/flora.dmi index e1bcb559d5..e5278b8f53 100644 Binary files a/icons/unsorted/flora.dmi and b/icons/unsorted/flora.dmi differ diff --git a/icons/unsorted/gun.dmi b/icons/unsorted/gun.dmi index 6317690369..a53cef68c8 100644 Binary files a/icons/unsorted/gun.dmi and b/icons/unsorted/gun.dmi differ diff --git a/icons/unsorted/lefthand_guns.dmi b/icons/unsorted/lefthand_guns.dmi index 3f30e126ca..d840e05541 100644 Binary files a/icons/unsorted/lefthand_guns.dmi and b/icons/unsorted/lefthand_guns.dmi differ diff --git a/icons/unsorted/miscobjs.dmi b/icons/unsorted/miscobjs.dmi index ffc2003bb2..0b89aab655 100644 Binary files a/icons/unsorted/miscobjs.dmi and b/icons/unsorted/miscobjs.dmi differ diff --git a/icons/unsorted/objects.dmi b/icons/unsorted/objects.dmi index 02879d388a..ae60da0ebb 100644 Binary files a/icons/unsorted/objects.dmi and b/icons/unsorted/objects.dmi differ diff --git a/icons/unsorted/omnibus_mobs_x64_v1a.dmi b/icons/unsorted/omnibus_mobs_x64_v1a.dmi index 8fbc115809..b5797e90c8 100644 Binary files a/icons/unsorted/omnibus_mobs_x64_v1a.dmi and b/icons/unsorted/omnibus_mobs_x64_v1a.dmi differ diff --git a/icons/unsorted/righthand_guns.dmi b/icons/unsorted/righthand_guns.dmi index 5d1ab1a80d..19caaa2e57 100644 Binary files a/icons/unsorted/righthand_guns.dmi and b/icons/unsorted/righthand_guns.dmi differ diff --git a/icons/unsorted/robots.dmi b/icons/unsorted/robots.dmi index 1648195cea..aeb96420f4 100644 Binary files a/icons/unsorted/robots.dmi and b/icons/unsorted/robots.dmi differ diff --git a/icons/unsorted/scommobs.dmi b/icons/unsorted/scommobs.dmi index b7d2847135..07b183a9c1 100644 Binary files a/icons/unsorted/scommobs.dmi and b/icons/unsorted/scommobs.dmi differ diff --git a/icons/unsorted/show2.dmi b/icons/unsorted/show2.dmi index 73ea22a005..eb937e3328 100644 Binary files a/icons/unsorted/show2.dmi and b/icons/unsorted/show2.dmi differ diff --git a/icons/unsorted/simple_human.dmi b/icons/unsorted/simple_human.dmi index dda9ec05ff..c99fb56563 100644 Binary files a/icons/unsorted/simple_human.dmi and b/icons/unsorted/simple_human.dmi differ diff --git a/icons/unsorted/simpleanimals.dmi b/icons/unsorted/simpleanimals.dmi index 0c49e79a95..5a8f106c0c 100644 Binary files a/icons/unsorted/simpleanimals.dmi and b/icons/unsorted/simpleanimals.dmi differ diff --git a/icons/unsorted/statue.dmi b/icons/unsorted/statue.dmi index 9e438f7b87..710f76fd00 100644 Binary files a/icons/unsorted/statue.dmi and b/icons/unsorted/statue.dmi differ diff --git a/icons/unsorted/structures.dmi b/icons/unsorted/structures.dmi index 189cb464f6..e334932bb8 100644 Binary files a/icons/unsorted/structures.dmi and b/icons/unsorted/structures.dmi differ diff --git a/icons/unsorted/tables.dmi b/icons/unsorted/tables.dmi index 6bd53c875e..8c7d03ecf7 100644 Binary files a/icons/unsorted/tables.dmi and b/icons/unsorted/tables.dmi differ diff --git a/icons/unsorted/urist_ammo.dmi b/icons/unsorted/urist_ammo.dmi index 1b95bcf90b..bd4b7d670e 100644 Binary files a/icons/unsorted/urist_ammo.dmi and b/icons/unsorted/urist_ammo.dmi differ diff --git a/icons/unsorted/urist_guns.dmi b/icons/unsorted/urist_guns.dmi index eb083ccd24..5ed1419388 100644 Binary files a/icons/unsorted/urist_guns.dmi and b/icons/unsorted/urist_guns.dmi differ diff --git a/icons/unsorted/urist_leftguns.dmi b/icons/unsorted/urist_leftguns.dmi index 45303b92d4..e18b4a8d06 100644 Binary files a/icons/unsorted/urist_leftguns.dmi and b/icons/unsorted/urist_leftguns.dmi differ diff --git a/icons/unsorted/urist_rightguns.dmi b/icons/unsorted/urist_rightguns.dmi index 0157c39aba..e702641e69 100644 Binary files a/icons/unsorted/urist_rightguns.dmi and b/icons/unsorted/urist_rightguns.dmi differ diff --git a/icons/unsorted/urist_storageslots.dmi b/icons/unsorted/urist_storageslots.dmi index 48e58991d9..98d1c5be05 100644 Binary files a/icons/unsorted/urist_storageslots.dmi and b/icons/unsorted/urist_storageslots.dmi differ diff --git a/icons/vending_icons/vendingslot_bg.png b/icons/vending_icons/vendingslot_bg.png index 6fb6fdcf8b..6003cfb057 100644 Binary files a/icons/vending_icons/vendingslot_bg.png and b/icons/vending_icons/vendingslot_bg.png differ diff --git a/install-byond.sh b/install-byond.sh deleted file mode 100755 index 3b0170c16b..0000000000 --- a/install-byond.sh +++ /dev/null @@ -1,15 +0,0 @@ -#!/bin/sh -set -e -if [ -f "$HOME/BYOND-${BYOND_MAJOR}.${BYOND_MINOR}/byond/bin/DreamMaker" ]; -then - echo "Using cached directory." -else - echo "Setting up BYOND." - mkdir -p "$HOME/BYOND-${BYOND_MAJOR}.${BYOND_MINOR}" - cd "$HOME/BYOND-${BYOND_MAJOR}.${BYOND_MINOR}" - echo "Installing DreamMaker to $PWD" - curl "http://www.byond.com/download/build/${BYOND_MAJOR}/${BYOND_MAJOR}.${BYOND_MINOR}_byond_linux.zip" -o byond.zip - unzip -o byond.zip - cd byond - make here -fi diff --git a/libmysql.dll b/libmysql.dll deleted file mode 100644 index 86453b952e..0000000000 Binary files a/libmysql.dll and /dev/null differ diff --git a/librust_g.so b/librust_g.so deleted file mode 100644 index 0277fc8c8b..0000000000 Binary files a/librust_g.so and /dev/null differ diff --git a/lobby.dmi b/lobby.dmi index 85baaf6c3d..b5427dfdd3 100644 Binary files a/lobby.dmi and b/lobby.dmi differ diff --git a/maps/away/wizard_den/wizard_den_areas.dmi b/maps/away/wizard_den/wizard_den_areas.dmi index 5c48e2c430..c78faa0b40 100644 Binary files a/maps/away/wizard_den/wizard_den_areas.dmi and b/maps/away/wizard_den/wizard_den_areas.dmi differ diff --git a/maps/site53/icons/assignment_hud.dmi b/maps/site53/icons/assignment_hud.dmi index 4b1c7690c7..98d3a9e1af 100644 Binary files a/maps/site53/icons/assignment_hud.dmi and b/maps/site53/icons/assignment_hud.dmi differ diff --git a/maps/site53/icons/lobby.dmi b/maps/site53/icons/lobby.dmi index 7d32641cb5..f8754fadec 100644 Binary files a/maps/site53/icons/lobby.dmi and b/maps/site53/icons/lobby.dmi differ diff --git a/maps/site53/site53-2.dmm b/maps/site53/site53-2.dmm index d6c240c251..98dda9b9b9 100644 --- a/maps/site53/site53-2.dmm +++ b/maps/site53/site53-2.dmm @@ -13175,10 +13175,6 @@ /turf/simulated/floor/tiled/white/monotile, /area/site53/ulcz/scp151) "aJH" = ( -/obj/machinery/door_timer/cell_2{ - pixel_x = -32; - req_access = list("ACCESS_SECURITY_LEVEL2") - }, /obj/effect/floor_decal/corner/black/mono, /obj/structure/table/reinforced, /turf/simulated/floor/tiled/white/monotile, @@ -29972,16 +29968,12 @@ /turf/simulated/floor/tiled/monotile, /area/site53/uhcz/scp247observation) "gsR" = ( -/obj/effect/floor_decal/corner/black/border{ - dir = 4 - }, -/obj/machinery/button/flasher{ - id_tag = "isolator5"; - pixel_x = 25; - dir = 8; - name = "Cell 5 Flasher" +/obj/effect/paint_stripe/orange, +/obj/machinery/door_timer{ + id = "isolator4"; + name = "Cell 4" }, -/turf/simulated/floor/tiled/white/monotile, +/turf/simulated/wall/r_titanium, /area/site53/llcz/dclass/isolation) "gth" = ( /obj/effect/floor_decal/corner/red/border{ @@ -30243,13 +30235,12 @@ /turf/simulated/floor, /area/site53/ulcz/humanoidcontainment) "gCL" = ( -/obj/structure/table/reinforced, -/obj/machinery/door_timer/cell_4{ - pixel_x = -32; - req_access = list("ACCESS_SECURITY_LEVEL2") +/obj/effect/paint_stripe/orange, +/obj/machinery/door_timer{ + id = "isolator7"; + name = "Cell 7" }, -/obj/effect/floor_decal/corner/black/mono, -/turf/simulated/floor/tiled/white/monotile, +/turf/simulated/wall/r_titanium, /area/site53/llcz/dclass/isolation) "gCY" = ( /obj/structure/table/standard, @@ -36952,16 +36943,12 @@ /turf/simulated/floor/tiled/vertical, /area/site53/lowertrams/hub) "kmn" = ( -/obj/effect/floor_decal/corner/black/border{ - dir = 4 - }, -/obj/machinery/button/flasher{ - id_tag = "isolator8"; - pixel_x = 25; - dir = 8; - name = "Cell 8 Flasher" +/obj/effect/paint_stripe/orange, +/obj/machinery/door_timer{ + id = "isolator6"; + name = "Cell 6" }, -/turf/simulated/floor/tiled/white/monotile, +/turf/simulated/wall/r_titanium, /area/site53/llcz/dclass/isolation) "kmz" = ( /obj/machinery/door/airlock/glass/security{ @@ -39729,13 +39716,12 @@ /turf/simulated/floor/tiled/dark/monotile, /area/site53/lhcz/hczguardgear) "lPM" = ( -/obj/structure/table/reinforced, -/obj/machinery/door_timer/cell_6{ - pixel_x = -32; - req_access = list("ACCESS_SECURITY_LEVEL2") +/obj/effect/paint_stripe/orange, +/obj/machinery/door_timer{ + id = "isolator1"; + name = "Cell 1" }, -/obj/effect/floor_decal/corner/black/mono, -/turf/simulated/floor/tiled/white/monotile, +/turf/simulated/wall/r_titanium, /area/site53/llcz/dclass/isolation) "lPZ" = ( /obj/structure/table/rack{ @@ -43171,18 +43157,6 @@ }, /turf/simulated/floor/tiled/dark/horizontal, /area/site53/ulcz/scp914) -"nBL" = ( -/obj/effect/floor_decal/corner/black/border{ - dir = 4 - }, -/obj/machinery/button/flasher{ - id_tag = "isolator3"; - pixel_x = 25; - dir = 8; - name = "Cell 3 Flasher" - }, -/turf/simulated/floor/tiled/white/monotile, -/area/site53/llcz/dclass/isolation) "nBV" = ( /obj/effect/floor_decal/corner/safe/border{ dir = 10 @@ -47502,16 +47476,12 @@ /turf/simulated/floor, /area/site53/lowertrams/hczmaint) "pPF" = ( -/obj/effect/floor_decal/corner/black/border{ - dir = 4 - }, -/obj/machinery/button/flasher{ - id_tag = "isolator1"; - pixel_x = 25; - dir = 8; - name = "Cell 1 Flasher" +/obj/effect/paint_stripe/orange, +/obj/machinery/door_timer{ + id = "isolator5"; + name = "Cell 5" }, -/turf/simulated/floor/tiled/white/monotile, +/turf/simulated/wall/r_titanium, /area/site53/llcz/dclass/isolation) "pPJ" = ( /obj/machinery/door/airlock/highsecurity{ @@ -47933,6 +47903,19 @@ }, /turf/simulated/floor/tiled/monotile, /area/site53/science/aiccore) +"qcn" = ( +/obj/structure/cable/green{ + d1 = 1; + d2 = 2; + icon_state = "1-2" + }, +/obj/structure/cable/green{ + d1 = 2; + d2 = 4; + icon_state = "2-4" + }, +/turf/simulated/floor/tiled/white/vertical, +/area/site53/ulcz/hallways) "qcu" = ( /obj/effect/floor_decal/corner/red/border, /turf/simulated/floor/tiled/white/monotile, @@ -48818,16 +48801,12 @@ /turf/simulated/floor/tiled/white/monotile, /area/site53/llcz/entrance_checkpoint) "qAP" = ( -/obj/effect/floor_decal/corner/black/border{ - dir = 4 - }, -/obj/machinery/button/flasher{ - id_tag = "isolator4"; - pixel_x = 25; - dir = 8; - name = "Cell 4 Flasher" +/obj/effect/paint_stripe/orange, +/obj/machinery/door_timer{ + id = "isolator8"; + name = "Cell 8" }, -/turf/simulated/floor/tiled/white/monotile, +/turf/simulated/wall/r_titanium, /area/site53/llcz/dclass/isolation) "qAX" = ( /obj/machinery/door/airlock/command{ @@ -49218,16 +49197,12 @@ /turf/simulated/floor, /area/site53/ulcz/humanoidcontainment) "qMF" = ( -/obj/effect/floor_decal/corner/black/border{ - dir = 4 - }, -/obj/machinery/button/flasher{ - id_tag = "isolator2"; - pixel_x = 25; - dir = 8; - name = "Cell 2 Flasher" +/obj/effect/paint_stripe/orange, +/obj/machinery/door_timer{ + id = "isolator2"; + name = "Cell 2" }, -/turf/simulated/floor/tiled/white/monotile, +/turf/simulated/wall/r_titanium, /area/site53/llcz/dclass/isolation) "qNc" = ( /obj/effect/floor_decal/industrial/warning{ @@ -51547,15 +51522,6 @@ }, /turf/simulated/floor/tiled/white/monotile, /area/site53/llcz/scp294) -"rWn" = ( -/obj/structure/table/reinforced, -/obj/machinery/door_timer/cell_5{ - pixel_x = -32; - req_access = list("ACCESS_SECURITY_LEVEL2") - }, -/obj/effect/floor_decal/corner/black/mono, -/turf/simulated/floor/tiled/white/monotile, -/area/site53/llcz/dclass/isolation) "rWv" = ( /obj/effect/floor_decal/corner/green/border{ dir = 1 @@ -51580,15 +51546,6 @@ }, /turf/simulated/floor/tiled/white/monotile, /area/site53/ulcz/generalpurpose) -"rWM" = ( -/obj/structure/table/reinforced, -/obj/machinery/door_timer/cell_1{ - pixel_x = -32; - req_access = list("ACCESS_SECURITY_LEVEL2") - }, -/obj/effect/floor_decal/corner/black/mono, -/turf/simulated/floor/tiled/white/monotile, -/area/site53/llcz/dclass/isolation) "rWP" = ( /obj/effect/wallframe_spawn/reinforced/titanium, /obj/machinery/door/blast/regular/open{ @@ -52891,18 +52848,6 @@ }, /turf/simulated/floor/tiled/dark/monotile, /area/vacant/prototype/engine) -"sDW" = ( -/obj/effect/floor_decal/corner/black/border{ - dir = 4 - }, -/obj/machinery/button/flasher{ - id_tag = "isolator7"; - pixel_x = 25; - dir = 8; - name = "Cell 7 Flasher" - }, -/turf/simulated/floor/tiled/white/monotile, -/area/site53/llcz/dclass/isolation) "sEr" = ( /obj/machinery/atmospherics/unary/vent_pump/on{ dir = 4 @@ -58398,18 +58343,6 @@ /obj/item/modular_computer/console/preset/cardslot/command, /turf/simulated/floor/tiled/techfloor, /area/site53/surface/bunker) -"vPT" = ( -/obj/effect/floor_decal/corner/black/border{ - dir = 4 - }, -/obj/machinery/button/flasher{ - id_tag = "isolator6"; - pixel_x = 25; - dir = 8; - name = "Cell 6 Flasher" - }, -/turf/simulated/floor/tiled/white/monotile, -/area/site53/llcz/dclass/isolation) "vQk" = ( /obj/structure/catwalk, /obj/structure/cable/cyan{ @@ -59594,15 +59527,12 @@ }, /area/site53/logistics/logistics) "wBn" = ( -/obj/structure/table/reinforced, -/obj/machinery/door_timer/cell_6{ - pixel_x = -32; - req_access = list("ACCESS_SECURITY_LEVEL2"); - id = "Cell 8"; - name = "Cell 8" +/obj/effect/paint_stripe/orange, +/obj/machinery/door_timer{ + id = "isolator3"; + name = "Cell 3" }, -/obj/effect/floor_decal/corner/black/mono, -/turf/simulated/floor/tiled/white/monotile, +/turf/simulated/wall/r_titanium, /area/site53/llcz/dclass/isolation) "wBv" = ( /obj/effect/floor_decal/corner/keter/bordercorner, @@ -60753,15 +60683,6 @@ }, /turf/simulated/floor/tiled/white/monotile, /area/site53/llcz/scp529) -"xfE" = ( -/obj/structure/table/reinforced, -/obj/machinery/door_timer/cell_3{ - pixel_x = -32; - req_access = list("ACCESS_SECURITY_LEVEL2") - }, -/obj/effect/floor_decal/corner/black/mono, -/turf/simulated/floor/tiled/white/monotile, -/area/site53/llcz/dclass/isolation) "xfG" = ( /obj/effect/catwalk_plated/dark, /obj/structure/cable/green{ @@ -61683,12 +61604,6 @@ /area/site53/ulcz/scp2427_3) "xGy" = ( /obj/structure/table/reinforced, -/obj/machinery/door_timer/cell_6{ - pixel_x = -32; - req_access = list("ACCESS_SECURITY_LEVEL2"); - id = "Cell 7"; - name = "Cell 7" - }, /obj/effect/floor_decal/corner/black/mono, /turf/simulated/floor/tiled/white/monotile, /area/site53/llcz/dclass/isolation) @@ -62182,6 +62097,17 @@ /obj/effect/floor_decal/spline/fancy/black, /turf/simulated/floor/tiled/horizontal, /area/site53/logistics/logistics) +"xWe" = ( +/obj/effect/floor_decal/corner/safe/border{ + dir = 4 + }, +/obj/structure/cable/green{ + d1 = 4; + d2 = 8; + icon_state = "4-8" + }, +/turf/simulated/floor/tiled/white/monotile, +/area/site53/ulcz/hallways) "xWw" = ( /obj/machinery/camera/network/lcz{ name = "SCP-263" @@ -63268,28 +63194,28 @@ vRO vRO vRO vRO +lPM vRO vRO +qMF vRO vRO +wBn vRO vRO +gsR vRO vRO +pPF vRO vRO +kmn vRO vRO +gCL vRO vRO -vRO -vRO -vRO -vRO -vRO -vRO -vRO -vRO +qAP vRO vRO kwD @@ -63525,28 +63451,28 @@ vRO tnS fHB poh -rWM +xGy xys poh aJH xys poh -xfE +xGy xys poh -gCL +xGy xys poh -rWn +xGy xys poh -lPM +xGy xys poh xGy xys poh -wBn +xGy xys vRO xcT @@ -64038,28 +63964,28 @@ azA vRO bsp rVG -pPF lwG lwG -qMF lwG lwG -nBL lwG lwG -qAP lwG lwG -gsR lwG lwG -vPT lwG lwG -sDW lwG lwG -kmn +lwG +lwG +lwG +lwG +lwG +lwG +lwG +lwG lwG nRC vRO @@ -75307,10 +75233,10 @@ los giE sqL bJx +qcn tNo tNo -tNo -tNo +qcn tNo abZ tNo @@ -75564,10 +75490,10 @@ dJZ kwX evx dJS -fVr +xWe jqb nLr -fVr +xWe ylk bdf nAL diff --git a/maps/site53/site53-4.dmm b/maps/site53/site53-4.dmm index 6eeaec4765..e4e1d1de84 100644 --- a/maps/site53/site53-4.dmm +++ b/maps/site53/site53-4.dmm @@ -445,6 +445,14 @@ }, /turf/simulated/floor/carpet/orange, /area/site53/uez/commandpanicbunker) +"bC" = ( +/obj/effect/paint_stripe/blue, +/obj/machinery/door_timer{ + name = "Cell 4"; + id = "EZ Security Cell 4" + }, +/turf/simulated/wall/r_titanium, +/area/site53/uez/equipmentroom) "bD" = ( /turf/simulated/floor/carpet/blue, /area/site53/uez/equipmentroom) @@ -3282,6 +3290,13 @@ /obj/structure/flora/pottedplant/large, /turf/simulated/floor/tiled/white, /area/site53/upper_surface/commstower) +"kM" = ( +/obj/effect/floor_decal/corner/grey/mono, +/obj/machinery/flasher{ + id_tag = "EZ Security Cell 4" + }, +/turf/simulated/floor/tiled/dark/monotile, +/area/site53/uez/equipmentroom) "kN" = ( /obj/effect/floor_decal/corner/orange/half, /turf/simulated/floor/tiled/horizontal, @@ -6661,6 +6676,15 @@ }, /turf/simulated/floor/tiled/dark/corner, /area/site53/uez/equipmentroom) +"zP" = ( +/obj/effect/floor_decal/corner/grey/border{ + dir = 4 + }, +/obj/machinery/flasher{ + id_tag = "ezsecflasher" + }, +/turf/simulated/floor/tiled/dark/vertical, +/area/site53/uez/equipmentroom) "zQ" = ( /obj/effect/floor_decal/corner/red/border{ dir = 9 @@ -6977,6 +7001,13 @@ dir = 4 }, /area/site53/uez/equipmentroom) +"Bk" = ( +/obj/effect/floor_decal/corner/grey/mono, +/obj/machinery/flasher{ + id_tag = "EZ Security Cell 3" + }, +/turf/simulated/floor/tiled/dark/monotile, +/area/site53/uez/equipmentroom) "Bn" = ( /obj/machinery/door/airlock/command{ name = "Site Director's Office"; @@ -7627,7 +7658,7 @@ /obj/structure/table/reinforced, /obj/machinery/photocopier/faxmachine{ department = "RAISA's Office"; - send_access = list("ACCESS_SECURITY_LEVEL4") + send_access = list("ACCESS_SECURITY_LEVEL3") }, /turf/simulated/floor/carpet/red, /area/site53/uez/equipmentroom) @@ -8005,6 +8036,14 @@ }, /turf/simulated/floor/tiled/dark/corner, /area/site53/uez/armory) +"FU" = ( +/obj/effect/paint_stripe/blue, +/obj/machinery/door_timer{ + name = "Cell 1"; + id = "EZ Security Cell 1" + }, +/turf/simulated/wall/r_titanium, +/area/site53/uez/equipmentroom) "FV" = ( /obj/structure/bed/chair/office/comfy/blue{ dir = 8 @@ -8178,6 +8217,14 @@ }, /turf/simulated/floor/tiled/dark/monotile, /area/site53/uez/commandpanicbunker) +"GG" = ( +/obj/effect/paint_stripe/blue, +/obj/machinery/door_timer{ + name = "Cell 3"; + id = "EZ Security Cell 3" + }, +/turf/simulated/wall/r_titanium, +/area/site53/uez/equipmentroom) "GH" = ( /obj/structure/table/woodentable_reinforced/mahogany, /obj/structure/window/phoronreinforced, @@ -8310,6 +8357,14 @@ }, /turf/simulated/floor/tiled/dark/vertical, /area/site53/uez/hallway) +"Hn" = ( +/obj/effect/paint_stripe/blue, +/obj/machinery/door_timer{ + name = "Cell 2"; + id = "EZ Security Cell 2" + }, +/turf/simulated/wall/r_titanium, +/area/site53/uez/equipmentroom) "Hp" = ( /obj/effect/floor_decal/spline/fancy/wood{ dir = 8 @@ -9211,6 +9266,12 @@ }, /turf/simulated/floor/wood/walnut, /area/site53/uez/repoffice/ethics) +"LA" = ( +/obj/machinery/flasher{ + id_tag = "ezsecflasher" + }, +/turf/simulated/floor/tiled/dark/monotile, +/area/site53/uez/equipmentroom) "LD" = ( /obj/structure/cable/green{ d1 = 4; @@ -9307,6 +9368,13 @@ /obj/effect/floor_decal/corner/paleblue/diagonal, /turf/simulated/floor/tiled/white, /area/site53/uez/commandpanicbunker) +"LR" = ( +/obj/effect/floor_decal/corner/grey/mono, +/obj/machinery/flasher{ + id_tag = "EZ Security Cell 2" + }, +/turf/simulated/floor/tiled/dark/monotile, +/area/site53/uez/equipmentroom) "LS" = ( /obj/structure/table/woodentable_reinforced/ebony, /obj/machinery/microwave{ @@ -10031,6 +10099,13 @@ }, /turf/simulated/floor/tiled/dark/vertical, /area/site53/uez/equipmentroom) +"Pp" = ( +/obj/effect/floor_decal/corner/grey/mono, +/obj/machinery/flasher{ + id_tag = "EZ Security Cell 1" + }, +/turf/simulated/floor/tiled/dark/monotile, +/area/site53/uez/equipmentroom) "Pr" = ( /obj/effect/floor_decal/corner/red/border{ dir = 6 @@ -10551,6 +10626,15 @@ /obj/structure/bed/chair/office/dark, /turf/simulated/floor/wood/maple, /area/site53/uez/hallway) +"Rt" = ( +/obj/effect/floor_decal/corner/grey/border{ + dir = 8 + }, +/obj/machinery/flasher{ + id_tag = "ezsecflasher" + }, +/turf/simulated/floor/tiled/dark/vertical, +/area/site53/uez/equipmentroom) "Ru" = ( /obj/structure/closet/secure_closet/administration/ethicscommittee, /obj/item/implantcase/death_alarm, @@ -11491,7 +11575,13 @@ id_tag = "EZPermaLockdown"; name = "EZ Confinement Lockdown Control"; req_access = list("ACCESS_SECURITY_LEVEL2"); - pixel_y = 2 + pixel_y = 7 + }, +/obj/machinery/button/flasher{ + pixel_y = -2; + name = "EZ Yard Flasher"; + id_tag = "ezsecflasher"; + req_access = list("ACCESS_SECURITY_LEVEL2") }, /turf/simulated/floor/carpet/red, /area/site53/uez/equipmentroom) @@ -52610,12 +52700,12 @@ hk hk uP wZ -wZ +Pp wZ sb cj jD -Rd +Rt jD hU HE @@ -52869,7 +52959,7 @@ uP uL Xa zt -uP +FU Bd VF Fo @@ -53381,7 +53471,7 @@ hk hk uP wZ -wZ +LR wZ Bz Bd @@ -53640,7 +53730,7 @@ uP uL Xa zt -uP +Hn JP VF VF @@ -53901,7 +53991,7 @@ uP bP na LX -VF +LA xn SH VE @@ -54152,7 +54242,7 @@ hk hk uP wZ -wZ +Bk wZ Gd Bd @@ -54411,7 +54501,7 @@ uP uL Xa zt -uP +GG Bd VF Fo @@ -54923,7 +55013,7 @@ hk hk uP wZ -wZ +kM wZ bq Bd @@ -55182,10 +55272,10 @@ uP uL Xa zt -uP +bC cY Pm -Qi +zP Pm bF uP diff --git a/maps/site53/z1_admin.dmm b/maps/site53/z1_admin.dmm index 15556e785e..b54d55fcc6 100644 --- a/maps/site53/z1_admin.dmm +++ b/maps/site53/z1_admin.dmm @@ -35817,24 +35817,24 @@ ab ab ab ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa ab ab ab @@ -36019,24 +36019,24 @@ ab ab ab ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab +aa +rZ +rZ +rZ +rZ +rZ +rZ +rZ +rZ +rZ +rZ +rZ +rZ +rZ +rZ +rZ +rZ +aa ab ab ab @@ -36222,22 +36222,22 @@ ab ab ab aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa +rZ +rZ +rZ +rZ +rZ +rZ +rZ +rZ +rZ +rZ +rZ +rZ +rZ +rZ +rZ +rZ aa ab ab @@ -39656,22 +39656,22 @@ ab ab ab aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa +rZ +rZ +rZ +rZ +rZ +rZ +rZ +rZ +rZ +rZ +rZ +rZ +rZ +rZ +rZ +rZ aa ab ab @@ -39857,24 +39857,24 @@ ab ab ab ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab +aa +rZ +rZ +rZ +rZ +rZ +rZ +rZ +rZ +rZ +rZ +rZ +rZ +rZ +rZ +rZ +rZ +aa ab ab ab @@ -40059,24 +40059,24 @@ ab ab ab ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa ab ab ab diff --git a/maps/torch/icons/assignment_hud.dmi b/maps/torch/icons/assignment_hud.dmi index 299f267c22..ccae1c1df9 100644 Binary files a/maps/torch/icons/assignment_hud.dmi and b/maps/torch/icons/assignment_hud.dmi differ diff --git a/maps/torch/icons/lobby.dmi b/maps/torch/icons/lobby.dmi index 59ea7e824f..b947b34e92 100644 Binary files a/maps/torch/icons/lobby.dmi and b/maps/torch/icons/lobby.dmi differ diff --git a/maps/torch/icons/mob/onmob_accessories_solgov.dmi b/maps/torch/icons/mob/onmob_accessories_solgov.dmi index d4c2cb2558..72de4afdf8 100644 Binary files a/maps/torch/icons/mob/onmob_accessories_solgov.dmi and b/maps/torch/icons/mob/onmob_accessories_solgov.dmi differ diff --git a/maps/torch/icons/mob/onmob_accessories_terran.dmi b/maps/torch/icons/mob/onmob_accessories_terran.dmi index 75c0aa36c3..e5a9fb29ca 100644 Binary files a/maps/torch/icons/mob/onmob_accessories_terran.dmi and b/maps/torch/icons/mob/onmob_accessories_terran.dmi differ diff --git a/maps/torch/icons/mob/onmob_feet_solgov.dmi b/maps/torch/icons/mob/onmob_feet_solgov.dmi index f154a92f0c..0fe0f7df7d 100644 Binary files a/maps/torch/icons/mob/onmob_feet_solgov.dmi and b/maps/torch/icons/mob/onmob_feet_solgov.dmi differ diff --git a/maps/torch/icons/mob/onmob_hands_solgov.dmi b/maps/torch/icons/mob/onmob_hands_solgov.dmi index ed8d2a16a0..f91437b623 100644 Binary files a/maps/torch/icons/mob/onmob_hands_solgov.dmi and b/maps/torch/icons/mob/onmob_hands_solgov.dmi differ diff --git a/maps/torch/icons/mob/onmob_head_solgov.dmi b/maps/torch/icons/mob/onmob_head_solgov.dmi index f68071c2da..5c15ea51d0 100644 Binary files a/maps/torch/icons/mob/onmob_head_solgov.dmi and b/maps/torch/icons/mob/onmob_head_solgov.dmi differ diff --git a/maps/torch/icons/mob/onmob_head_terran.dmi b/maps/torch/icons/mob/onmob_head_terran.dmi index 14bc9d0eae..dc8d541d1e 100644 Binary files a/maps/torch/icons/mob/onmob_head_terran.dmi and b/maps/torch/icons/mob/onmob_head_terran.dmi differ diff --git a/maps/torch/icons/mob/onmob_suit_solgov.dmi b/maps/torch/icons/mob/onmob_suit_solgov.dmi index 8c10dcef06..a0c02914e5 100644 Binary files a/maps/torch/icons/mob/onmob_suit_solgov.dmi and b/maps/torch/icons/mob/onmob_suit_solgov.dmi differ diff --git a/maps/torch/icons/mob/onmob_suit_terran.dmi b/maps/torch/icons/mob/onmob_suit_terran.dmi index 05a25993f2..906a75980b 100644 Binary files a/maps/torch/icons/mob/onmob_suit_terran.dmi and b/maps/torch/icons/mob/onmob_suit_terran.dmi differ diff --git a/maps/torch/icons/mob/onmob_under_solgov.dmi b/maps/torch/icons/mob/onmob_under_solgov.dmi index 0825f20de7..a7acd99931 100644 Binary files a/maps/torch/icons/mob/onmob_under_solgov.dmi and b/maps/torch/icons/mob/onmob_under_solgov.dmi differ diff --git a/maps/torch/icons/mob/onmob_under_terran.dmi b/maps/torch/icons/mob/onmob_under_terran.dmi index df2bba7ed5..ae6ced43a4 100644 Binary files a/maps/torch/icons/mob/onmob_under_terran.dmi and b/maps/torch/icons/mob/onmob_under_terran.dmi differ diff --git a/maps/torch/icons/mob/skrell/onmob_head_solgov_skrell.dmi b/maps/torch/icons/mob/skrell/onmob_head_solgov_skrell.dmi index 3941b7d604..aeed49b836 100644 Binary files a/maps/torch/icons/mob/skrell/onmob_head_solgov_skrell.dmi and b/maps/torch/icons/mob/skrell/onmob_head_solgov_skrell.dmi differ diff --git a/maps/torch/icons/mob/skrell/onmob_suit_solgov_skrell.dmi b/maps/torch/icons/mob/skrell/onmob_suit_solgov_skrell.dmi index e99ded5760..ff68bbf01d 100644 Binary files a/maps/torch/icons/mob/skrell/onmob_suit_solgov_skrell.dmi and b/maps/torch/icons/mob/skrell/onmob_suit_solgov_skrell.dmi differ diff --git a/maps/torch/icons/mob/solgov-accessory.dmi b/maps/torch/icons/mob/solgov-accessory.dmi index c801f29a84..a918475524 100644 Binary files a/maps/torch/icons/mob/solgov-accessory.dmi and b/maps/torch/icons/mob/solgov-accessory.dmi differ diff --git a/maps/torch/icons/mob/solgov-feet.dmi b/maps/torch/icons/mob/solgov-feet.dmi index 7ed9a5b6f3..8a2b76af68 100644 Binary files a/maps/torch/icons/mob/solgov-feet.dmi and b/maps/torch/icons/mob/solgov-feet.dmi differ diff --git a/maps/torch/icons/mob/solgov-hands.dmi b/maps/torch/icons/mob/solgov-hands.dmi index fe839b2737..c2cdfe1ea5 100644 Binary files a/maps/torch/icons/mob/solgov-hands.dmi and b/maps/torch/icons/mob/solgov-hands.dmi differ diff --git a/maps/torch/icons/mob/solgov-head.dmi b/maps/torch/icons/mob/solgov-head.dmi index f101f5f630..e4dba7dfcc 100644 Binary files a/maps/torch/icons/mob/solgov-head.dmi and b/maps/torch/icons/mob/solgov-head.dmi differ diff --git a/maps/torch/icons/mob/solgov-suit.dmi b/maps/torch/icons/mob/solgov-suit.dmi index a3621e61d7..091676c2e8 100644 Binary files a/maps/torch/icons/mob/solgov-suit.dmi and b/maps/torch/icons/mob/solgov-suit.dmi differ diff --git a/maps/torch/icons/mob/solgov-under.dmi b/maps/torch/icons/mob/solgov-under.dmi index e5b006ab8f..8d96ba4d3d 100644 Binary files a/maps/torch/icons/mob/solgov-under.dmi and b/maps/torch/icons/mob/solgov-under.dmi differ diff --git a/maps/torch/icons/mob/unathi/onmob_head_solgov_unathi.dmi b/maps/torch/icons/mob/unathi/onmob_head_solgov_unathi.dmi index 238e87b69d..5ad2d14bba 100644 Binary files a/maps/torch/icons/mob/unathi/onmob_head_solgov_unathi.dmi and b/maps/torch/icons/mob/unathi/onmob_head_solgov_unathi.dmi differ diff --git a/maps/torch/icons/mob/unathi/onmob_suit_solgov_unathi.dmi b/maps/torch/icons/mob/unathi/onmob_suit_solgov_unathi.dmi index b46e490c6e..7687b409d5 100644 Binary files a/maps/torch/icons/mob/unathi/onmob_suit_solgov_unathi.dmi and b/maps/torch/icons/mob/unathi/onmob_suit_solgov_unathi.dmi differ diff --git a/maps/torch/icons/obj/explshotgun.dmi b/maps/torch/icons/obj/explshotgun.dmi index 59aebdfe97..cff1db9251 100644 Binary files a/maps/torch/icons/obj/explshotgun.dmi and b/maps/torch/icons/obj/explshotgun.dmi differ diff --git a/maps/torch/icons/obj/obj_accessories_solgov.dmi b/maps/torch/icons/obj/obj_accessories_solgov.dmi index e80b2b9278..fbc6190f39 100644 Binary files a/maps/torch/icons/obj/obj_accessories_solgov.dmi and b/maps/torch/icons/obj/obj_accessories_solgov.dmi differ diff --git a/maps/torch/icons/obj/obj_accessories_terran.dmi b/maps/torch/icons/obj/obj_accessories_terran.dmi index 2ee1f92f01..76797c794f 100644 Binary files a/maps/torch/icons/obj/obj_accessories_terran.dmi and b/maps/torch/icons/obj/obj_accessories_terran.dmi differ diff --git a/maps/torch/icons/obj/obj_feet_solgov.dmi b/maps/torch/icons/obj/obj_feet_solgov.dmi index e5fe8ec6f4..0e56ed0306 100644 Binary files a/maps/torch/icons/obj/obj_feet_solgov.dmi and b/maps/torch/icons/obj/obj_feet_solgov.dmi differ diff --git a/maps/torch/icons/obj/obj_hands_solgov.dmi b/maps/torch/icons/obj/obj_hands_solgov.dmi index 2d55f1b96b..3b69dfeb8f 100644 Binary files a/maps/torch/icons/obj/obj_hands_solgov.dmi and b/maps/torch/icons/obj/obj_hands_solgov.dmi differ diff --git a/maps/torch/icons/obj/obj_head_solgov.dmi b/maps/torch/icons/obj/obj_head_solgov.dmi index 31f1e9362b..180e281fea 100644 Binary files a/maps/torch/icons/obj/obj_head_solgov.dmi and b/maps/torch/icons/obj/obj_head_solgov.dmi differ diff --git a/maps/torch/icons/obj/obj_head_terran.dmi b/maps/torch/icons/obj/obj_head_terran.dmi index 9549e1da32..307875f03d 100644 Binary files a/maps/torch/icons/obj/obj_head_terran.dmi and b/maps/torch/icons/obj/obj_head_terran.dmi differ diff --git a/maps/torch/icons/obj/obj_suit_solgov.dmi b/maps/torch/icons/obj/obj_suit_solgov.dmi index 150e297712..15a37e3f25 100644 Binary files a/maps/torch/icons/obj/obj_suit_solgov.dmi and b/maps/torch/icons/obj/obj_suit_solgov.dmi differ diff --git a/maps/torch/icons/obj/obj_suit_terran.dmi b/maps/torch/icons/obj/obj_suit_terran.dmi index 4f8b80c654..c9f4b41f7a 100644 Binary files a/maps/torch/icons/obj/obj_suit_terran.dmi and b/maps/torch/icons/obj/obj_suit_terran.dmi differ diff --git a/maps/torch/icons/obj/obj_under_solgov.dmi b/maps/torch/icons/obj/obj_under_solgov.dmi index 37abdf7c73..b82081e30c 100644 Binary files a/maps/torch/icons/obj/obj_under_solgov.dmi and b/maps/torch/icons/obj/obj_under_solgov.dmi differ diff --git a/maps/torch/icons/obj/obj_under_terran.dmi b/maps/torch/icons/obj/obj_under_terran.dmi index 596faa7725..d67bfbfe6a 100644 Binary files a/maps/torch/icons/obj/obj_under_terran.dmi and b/maps/torch/icons/obj/obj_under_terran.dmi differ diff --git a/maps/torch/icons/obj/skrell/obj_head_solgov_skrell.dmi b/maps/torch/icons/obj/skrell/obj_head_solgov_skrell.dmi index 71b77ea2e1..50aa48d414 100644 Binary files a/maps/torch/icons/obj/skrell/obj_head_solgov_skrell.dmi and b/maps/torch/icons/obj/skrell/obj_head_solgov_skrell.dmi differ diff --git a/maps/torch/icons/obj/skrell/obj_suit_solgov_skrell.dmi b/maps/torch/icons/obj/skrell/obj_suit_solgov_skrell.dmi index ece7cb402f..3132806e80 100644 Binary files a/maps/torch/icons/obj/skrell/obj_suit_solgov_skrell.dmi and b/maps/torch/icons/obj/skrell/obj_suit_solgov_skrell.dmi differ diff --git a/maps/torch/icons/obj/solbanner.dmi b/maps/torch/icons/obj/solbanner.dmi index c81bd60a8d..34f19deaab 100644 Binary files a/maps/torch/icons/obj/solbanner.dmi and b/maps/torch/icons/obj/solbanner.dmi differ diff --git a/maps/torch/icons/obj/solgov-64x.dmi b/maps/torch/icons/obj/solgov-64x.dmi index 631f44ddba..92293acb53 100644 Binary files a/maps/torch/icons/obj/solgov-64x.dmi and b/maps/torch/icons/obj/solgov-64x.dmi differ diff --git a/maps/torch/icons/obj/solgov-accessory.dmi b/maps/torch/icons/obj/solgov-accessory.dmi index 4a791279fb..a7546d0b75 100644 Binary files a/maps/torch/icons/obj/solgov-accessory.dmi and b/maps/torch/icons/obj/solgov-accessory.dmi differ diff --git a/maps/torch/icons/obj/solgov-decals.dmi b/maps/torch/icons/obj/solgov-decals.dmi index 464b4a5639..e3f92b180a 100644 Binary files a/maps/torch/icons/obj/solgov-decals.dmi and b/maps/torch/icons/obj/solgov-decals.dmi differ diff --git a/maps/torch/icons/obj/solgov-feet.dmi b/maps/torch/icons/obj/solgov-feet.dmi index 7899b2b226..402f410bc9 100644 Binary files a/maps/torch/icons/obj/solgov-feet.dmi and b/maps/torch/icons/obj/solgov-feet.dmi differ diff --git a/maps/torch/icons/obj/solgov-hands.dmi b/maps/torch/icons/obj/solgov-hands.dmi index 0a488a3d2e..7f595e4469 100644 Binary files a/maps/torch/icons/obj/solgov-hands.dmi and b/maps/torch/icons/obj/solgov-hands.dmi differ diff --git a/maps/torch/icons/obj/solgov-head.dmi b/maps/torch/icons/obj/solgov-head.dmi index ae39ffb42c..fc8097d515 100644 Binary files a/maps/torch/icons/obj/solgov-head.dmi and b/maps/torch/icons/obj/solgov-head.dmi differ diff --git a/maps/torch/icons/obj/solgov-suit.dmi b/maps/torch/icons/obj/solgov-suit.dmi index f08812e4be..d22e52dc25 100644 Binary files a/maps/torch/icons/obj/solgov-suit.dmi and b/maps/torch/icons/obj/solgov-suit.dmi differ diff --git a/maps/torch/icons/obj/solgov-under.dmi b/maps/torch/icons/obj/solgov-under.dmi index 6a0e3e0de8..d7ac6d5a35 100644 Binary files a/maps/torch/icons/obj/solgov-under.dmi and b/maps/torch/icons/obj/solgov-under.dmi differ diff --git a/maps/torch/icons/obj/solgov_floor.dmi b/maps/torch/icons/obj/solgov_floor.dmi index c7cd8dd0c6..c1ce962295 100644 Binary files a/maps/torch/icons/obj/solgov_floor.dmi and b/maps/torch/icons/obj/solgov_floor.dmi differ diff --git a/maps/torch/icons/obj/unathi/obj_head_solgov_unathi.dmi b/maps/torch/icons/obj/unathi/obj_head_solgov_unathi.dmi index b918ef0a28..9f8d5f0513 100644 Binary files a/maps/torch/icons/obj/unathi/obj_head_solgov_unathi.dmi and b/maps/torch/icons/obj/unathi/obj_head_solgov_unathi.dmi differ diff --git a/maps/torch/icons/obj/unathi/obj_suit_solgov_unathi.dmi b/maps/torch/icons/obj/unathi/obj_suit_solgov_unathi.dmi index ed18ed78a6..24bf2cb415 100644 Binary files a/maps/torch/icons/obj/unathi/obj_suit_solgov_unathi.dmi and b/maps/torch/icons/obj/unathi/obj_suit_solgov_unathi.dmi differ diff --git a/maps/torch/icons/obj/uniques.dmi b/maps/torch/icons/obj/uniques.dmi index 859dbc61e3..931f541998 100644 Binary files a/maps/torch/icons/obj/uniques.dmi and b/maps/torch/icons/obj/uniques.dmi differ diff --git a/maps/torch/icons/security_state.dmi b/maps/torch/icons/security_state.dmi index d471a0557c..f5c94a25a8 100644 Binary files a/maps/torch/icons/security_state.dmi and b/maps/torch/icons/security_state.dmi differ diff --git a/nano/images/example/example-1.png b/nano/images/example/example-1.png index d3f74bc239..bf58fec95f 100644 Binary files a/nano/images/example/example-1.png and b/nano/images/example/example-1.png differ diff --git a/nano/images/example/example-2.png b/nano/images/example/example-2.png index a623ad868b..0b3ac490c4 100644 Binary files a/nano/images/example/example-2.png and b/nano/images/example/example-2.png differ diff --git a/nano/images/example/example-3.png b/nano/images/example/example-3.png index 905c3714a4..6624cf398d 100644 Binary files a/nano/images/example/example-3.png and b/nano/images/example/example-3.png differ diff --git a/nano/images/exodus/exodus-1.png b/nano/images/exodus/exodus-1.png index 62e9a3520d..f688d074e4 100644 Binary files a/nano/images/exodus/exodus-1.png and b/nano/images/exodus/exodus-1.png differ diff --git a/nano/images/exodus/exodus-2.png b/nano/images/exodus/exodus-2.png index 5e4f831b88..4eaa67409b 100644 Binary files a/nano/images/exodus/exodus-2.png and b/nano/images/exodus/exodus-2.png differ diff --git a/nano/images/overmap_example/overmap_example-1.png b/nano/images/overmap_example/overmap_example-1.png index 954f21b5c2..12b3a3d5a8 100644 Binary files a/nano/images/overmap_example/overmap_example-1.png and b/nano/images/overmap_example/overmap_example-1.png differ diff --git a/nano/images/overmap_example/overmap_example-2.png b/nano/images/overmap_example/overmap_example-2.png index 1d60c5348e..bfc52da676 100644 Binary files a/nano/images/overmap_example/overmap_example-2.png and b/nano/images/overmap_example/overmap_example-2.png differ diff --git a/nano/images/site53/site53-1.png b/nano/images/site53/site53-1.png index b9b9b88e1f..adfb32b40a 100644 Binary files a/nano/images/site53/site53-1.png and b/nano/images/site53/site53-1.png differ diff --git a/nano/images/site53/site53-2.png b/nano/images/site53/site53-2.png index 70ef22acdb..2cba06ea77 100644 Binary files a/nano/images/site53/site53-2.png and b/nano/images/site53/site53-2.png differ diff --git a/nano/images/site53/site53-3.png b/nano/images/site53/site53-3.png index e9610018f2..6e0ba19cab 100644 Binary files a/nano/images/site53/site53-3.png and b/nano/images/site53/site53-3.png differ diff --git a/nano/images/site53/site53-4.png b/nano/images/site53/site53-4.png index f08ee5b5a1..130b63642f 100644 Binary files a/nano/images/site53/site53-4.png and b/nano/images/site53/site53-4.png differ diff --git a/nano/images/torch/torch-1.png b/nano/images/torch/torch-1.png index c7b367a161..afdc142415 100644 Binary files a/nano/images/torch/torch-1.png and b/nano/images/torch/torch-1.png differ diff --git a/nano/images/torch/torch-2.png b/nano/images/torch/torch-2.png index db216c324e..cb5124dea1 100644 Binary files a/nano/images/torch/torch-2.png and b/nano/images/torch/torch-2.png differ diff --git a/nano/images/torch/torch-3.png b/nano/images/torch/torch-3.png index 508d8b45b9..8d5630a556 100644 Binary files a/nano/images/torch/torch-3.png and b/nano/images/torch/torch-3.png differ diff --git a/nano/images/torch/torch-4.png b/nano/images/torch/torch-4.png index b8b08cb0ff..4ee1f824a6 100644 Binary files a/nano/images/torch/torch-4.png and b/nano/images/torch/torch-4.png differ diff --git a/nano/images/torch/torch-5.png b/nano/images/torch/torch-5.png index 07e70fb987..dfb3656dc9 100644 Binary files a/nano/images/torch/torch-5.png and b/nano/images/torch/torch-5.png differ diff --git a/nano/images/torch/torch-6.png b/nano/images/torch/torch-6.png index 6da79156ac..65eb234a88 100644 Binary files a/nano/images/torch/torch-6.png and b/nano/images/torch/torch-6.png differ diff --git a/nano/images/uiBackground-Syndicate.png b/nano/images/uiBackground-Syndicate.png index 3ca932cb83..e14d8682df 100644 Binary files a/nano/images/uiBackground-Syndicate.png and b/nano/images/uiBackground-Syndicate.png differ diff --git a/nano/images/uiBackground.png b/nano/images/uiBackground.png index 32aa9dd7f6..8332af56fd 100644 Binary files a/nano/images/uiBackground.png and b/nano/images/uiBackground.png differ diff --git a/nano/images/uiBasicBackground.png b/nano/images/uiBasicBackground.png index 03131d1e94..0ce173fce5 100644 Binary files a/nano/images/uiBasicBackground.png and b/nano/images/uiBasicBackground.png differ diff --git a/nano/images/uiIcons16.png b/nano/images/uiIcons16.png index d2a19f3779..f21aa2a6dc 100644 Binary files a/nano/images/uiIcons16.png and b/nano/images/uiIcons16.png differ diff --git a/nano/images/uiIcons16Green.png b/nano/images/uiIcons16Green.png index 800b196f58..fea9f73d01 100644 Binary files a/nano/images/uiIcons16Green.png and b/nano/images/uiIcons16Green.png differ diff --git a/nano/images/uiIcons16Red.png b/nano/images/uiIcons16Red.png index e089af698b..3e93ca0f29 100644 Binary files a/nano/images/uiIcons16Red.png and b/nano/images/uiIcons16Red.png differ diff --git a/nano/images/uiIcons24.png b/nano/images/uiIcons24.png index ddf88b0dcd..3ac62d82a1 100644 Binary files a/nano/images/uiIcons24.png and b/nano/images/uiIcons24.png differ diff --git a/nano/images/uiIcons64.png b/nano/images/uiIcons64.png index b58eb78f62..451db52e15 100644 Binary files a/nano/images/uiIcons64.png and b/nano/images/uiIcons64.png differ diff --git a/nano/images/uiMaskBackground.png b/nano/images/uiMaskBackground.png index 6494f78a61..4dc75fd9f2 100644 Binary files a/nano/images/uiMaskBackground.png and b/nano/images/uiMaskBackground.png differ diff --git a/nano/images/uiTitleFluff-Syndicate.png b/nano/images/uiTitleFluff-Syndicate.png index b09f5ba6b2..ded1cb92bf 100644 Binary files a/nano/images/uiTitleFluff-Syndicate.png and b/nano/images/uiTitleFluff-Syndicate.png differ diff --git a/nano/images/uiTitleFluff.png b/nano/images/uiTitleFluff.png index 513ba0c496..08b25a7e75 100644 Binary files a/nano/images/uiTitleFluff.png and b/nano/images/uiTitleFluff.png differ diff --git a/nano/mapbase1024.png b/nano/mapbase1024.png index a927a71b6e..46f6f83eb4 100644 Binary files a/nano/mapbase1024.png and b/nano/mapbase1024.png differ diff --git a/nano/templates/brig_timer.tmpl b/nano/templates/brig_timer.tmpl index 542ecec844..3779e04d07 100644 --- a/nano/templates/brig_timer.tmpl +++ b/nano/templates/brig_timer.tmpl @@ -4,9 +4,7 @@
{{:helper.link(data.timing ? 'Stop' : 'Start' , 'clock', {'toggle' : 1}, null, null)}} - {{for data.flashes}} - {{:helper.link(value.status ? 'Flash' : 'Recharging' , 'lightbulb', {'flash' : 1}, value.status ? null : 'disabled', null)}} - {{/for}} + {{:helper.link(data.flash ? 'Flash' : 'Recharging' , 'lightbulb', {'flash' : 1}, data.flash ? null : 'disabled', null)}}
{{:helper.link('
' , 'minus', {'adjust' : -600}, data.timing ? 'disabled' : null, null)}} diff --git a/rust_g.dll b/rust_g.dll index 30f63e72f4..d3aebf7121 100644 Binary files a/rust_g.dll and b/rust_g.dll differ diff --git a/sounds/AI/049.ogg b/sounds/AI/049.ogg index 530591296a..46922ba267 100644 Binary files a/sounds/AI/049.ogg and b/sounds/AI/049.ogg differ diff --git a/sounds/AI/173.ogg b/sounds/AI/173.ogg index ef48565e37..a5390eb3ef 100644 Binary files a/sounds/AI/173.ogg and b/sounds/AI/173.ogg differ diff --git a/sounds/AI/ARES_Self_Destruct_10m_FULL.ogg b/sounds/AI/ARES_Self_Destruct_10m_FULL.ogg index ebf8c94e2b..34c9ad31d7 100644 Binary files a/sounds/AI/ARES_Self_Destruct_10m_FULL.ogg and b/sounds/AI/ARES_Self_Destruct_10m_FULL.ogg differ diff --git a/sounds/AI/ARES_Self_Destruct_5m_CANCELED.ogg b/sounds/AI/ARES_Self_Destruct_5m_CANCELED.ogg index a908b52d92..e88866a570 100644 Binary files a/sounds/AI/ARES_Self_Destruct_5m_CANCELED.ogg and b/sounds/AI/ARES_Self_Destruct_5m_CANCELED.ogg differ diff --git a/sounds/AI/acidic_degredation.ogg b/sounds/AI/acidic_degredation.ogg index 9f9c6206ab..2b81e43fcf 100644 Binary files a/sounds/AI/acidic_degredation.ogg and b/sounds/AI/acidic_degredation.ogg differ diff --git a/sounds/AI/aimalf.ogg b/sounds/AI/aimalf.ogg index 50b7688d5a..9a4a1720eb 100644 Binary files a/sounds/AI/aimalf.ogg and b/sounds/AI/aimalf.ogg differ diff --git a/sounds/AI/aliens.ogg b/sounds/AI/aliens.ogg index 9813204830..f17ee3fb95 100644 Binary files a/sounds/AI/aliens.ogg and b/sounds/AI/aliens.ogg differ diff --git a/sounds/AI/animes.ogg b/sounds/AI/animes.ogg index a46a207edc..40977c9a89 100644 Binary files a/sounds/AI/animes.ogg and b/sounds/AI/animes.ogg differ diff --git a/sounds/AI/announcer/codeblack.ogg b/sounds/AI/announcer/codeblack.ogg index 4c41cfc4d7..c925fa1608 100644 Binary files a/sounds/AI/announcer/codeblack.ogg and b/sounds/AI/announcer/codeblack.ogg differ diff --git a/sounds/AI/announcer/codegreen.ogg b/sounds/AI/announcer/codegreen.ogg index 39a9120a75..2b66f07a56 100644 Binary files a/sounds/AI/announcer/codegreen.ogg and b/sounds/AI/announcer/codegreen.ogg differ diff --git a/sounds/AI/announcer/codered.ogg b/sounds/AI/announcer/codered.ogg index efeadefc4e..629da1437a 100644 Binary files a/sounds/AI/announcer/codered.ogg and b/sounds/AI/announcer/codered.ogg differ diff --git a/sounds/AI/announcer/commandreport.ogg b/sounds/AI/announcer/commandreport.ogg index 7bf7485152..8b7a4135db 100644 Binary files a/sounds/AI/announcer/commandreport.ogg and b/sounds/AI/announcer/commandreport.ogg differ diff --git a/sounds/AI/announcer/delta.ogg b/sounds/AI/announcer/delta.ogg index 329bf14160..eddcdd84c9 100644 Binary files a/sounds/AI/announcer/delta.ogg and b/sounds/AI/announcer/delta.ogg differ diff --git a/sounds/AI/announcer/industrialalarm.ogg b/sounds/AI/announcer/industrialalarm.ogg index 420dc6929e..a0f59bbb63 100644 Binary files a/sounds/AI/announcer/industrialalarm.ogg and b/sounds/AI/announcer/industrialalarm.ogg differ diff --git a/sounds/AI/announcer/poweroff.ogg b/sounds/AI/announcer/poweroff.ogg index ac73ec8ca0..8d638291b9 100644 Binary files a/sounds/AI/announcer/poweroff.ogg and b/sounds/AI/announcer/poweroff.ogg differ diff --git a/sounds/AI/announcer/poweron.ogg b/sounds/AI/announcer/poweron.ogg index a43f0f555e..844fad0611 100644 Binary files a/sounds/AI/announcer/poweron.ogg and b/sounds/AI/announcer/poweron.ogg differ diff --git a/sounds/AI/announcer/rocks.ogg b/sounds/AI/announcer/rocks.ogg index 0ebc007c5a..64d88a507d 100644 Binary files a/sounds/AI/announcer/rocks.ogg and b/sounds/AI/announcer/rocks.ogg differ diff --git a/sounds/AI/bioscan.ogg b/sounds/AI/bioscan.ogg index 3ab30d73b2..6843d45cdd 100644 Binary files a/sounds/AI/bioscan.ogg and b/sounds/AI/bioscan.ogg differ diff --git a/sounds/AI/code_blue_elevated.ogg b/sounds/AI/code_blue_elevated.ogg index d69edbda7b..27bb71b7cd 100644 Binary files a/sounds/AI/code_blue_elevated.ogg and b/sounds/AI/code_blue_elevated.ogg differ diff --git a/sounds/AI/code_blue_lowered.ogg b/sounds/AI/code_blue_lowered.ogg index bf0a7c9113..fdc86dc334 100644 Binary files a/sounds/AI/code_blue_lowered.ogg and b/sounds/AI/code_blue_lowered.ogg differ diff --git a/sounds/AI/code_green.ogg b/sounds/AI/code_green.ogg index cd4666c991..e1cca12d90 100644 Binary files a/sounds/AI/code_green.ogg and b/sounds/AI/code_green.ogg differ diff --git a/sounds/AI/code_red_elevated.ogg b/sounds/AI/code_red_elevated.ogg index 3b2de8368f..0f7aa81c8c 100644 Binary files a/sounds/AI/code_red_elevated.ogg and b/sounds/AI/code_red_elevated.ogg differ diff --git a/sounds/AI/code_red_lowered.ogg b/sounds/AI/code_red_lowered.ogg index 4409d345ba..eb7f89ee11 100644 Binary files a/sounds/AI/code_red_lowered.ogg and b/sounds/AI/code_red_lowered.ogg differ diff --git a/sounds/AI/commandreport.ogg b/sounds/AI/commandreport.ogg index 3692140439..2337ae5b9d 100644 Binary files a/sounds/AI/commandreport.ogg and b/sounds/AI/commandreport.ogg differ diff --git a/sounds/AI/distressbeacon.ogg b/sounds/AI/distressbeacon.ogg index 77defb64f8..8951a59228 100644 Binary files a/sounds/AI/distressbeacon.ogg and b/sounds/AI/distressbeacon.ogg differ diff --git a/sounds/AI/distressreceived.ogg b/sounds/AI/distressreceived.ogg index 1f819146c5..c79c1850d5 100644 Binary files a/sounds/AI/distressreceived.ogg and b/sounds/AI/distressreceived.ogg differ diff --git a/sounds/AI/dropship_emergency.ogg b/sounds/AI/dropship_emergency.ogg index c8ff2903df..a216a9cc39 100644 Binary files a/sounds/AI/dropship_emergency.ogg and b/sounds/AI/dropship_emergency.ogg differ diff --git a/sounds/AI/evacuate.ogg b/sounds/AI/evacuate.ogg index a0fe44536b..2ad67be31c 100644 Binary files a/sounds/AI/evacuate.ogg and b/sounds/AI/evacuate.ogg differ diff --git a/sounds/AI/evacuate_cancelled.ogg b/sounds/AI/evacuate_cancelled.ogg index ebb74b6d4e..be221b9801 100644 Binary files a/sounds/AI/evacuate_cancelled.ogg and b/sounds/AI/evacuate_cancelled.ogg differ diff --git a/sounds/AI/evacuation_complete.ogg b/sounds/AI/evacuation_complete.ogg index d611f7c528..e6444ac579 100644 Binary files a/sounds/AI/evacuation_complete.ogg and b/sounds/AI/evacuation_complete.ogg differ diff --git a/sounds/AI/evacuation_confirmed.ogg b/sounds/AI/evacuation_confirmed.ogg index a1fccb0ccb..f382312b7a 100644 Binary files a/sounds/AI/evacuation_confirmed.ogg and b/sounds/AI/evacuation_confirmed.ogg differ diff --git a/sounds/AI/granomalies.ogg b/sounds/AI/granomalies.ogg index 89a776c385..eb4c9864ee 100644 Binary files a/sounds/AI/granomalies.ogg and b/sounds/AI/granomalies.ogg differ diff --git a/sounds/AI/hijack.ogg b/sounds/AI/hijack.ogg index 1fd5401852..f998499fb7 100644 Binary files a/sounds/AI/hijack.ogg and b/sounds/AI/hijack.ogg differ diff --git a/sounds/AI/intercept.ogg b/sounds/AI/intercept.ogg index c0a3c6c783..720b743e42 100644 Binary files a/sounds/AI/intercept.ogg and b/sounds/AI/intercept.ogg differ diff --git a/sounds/AI/ionstorm.ogg b/sounds/AI/ionstorm.ogg index 4bb414e5c9..e3b7a1d5d3 100644 Binary files a/sounds/AI/ionstorm.ogg and b/sounds/AI/ionstorm.ogg differ diff --git a/sounds/AI/lockdown.ogg b/sounds/AI/lockdown.ogg index 52195ba1c4..6ba2b2129d 100644 Binary files a/sounds/AI/lockdown.ogg and b/sounds/AI/lockdown.ogg differ diff --git a/sounds/AI/meteors.ogg b/sounds/AI/meteors.ogg index 4e7cdd11cc..8bc2e2b0af 100644 Binary files a/sounds/AI/meteors.ogg and b/sounds/AI/meteors.ogg differ diff --git a/sounds/AI/newAI.ogg b/sounds/AI/newAI.ogg index d21967d055..946bc2bedf 100644 Binary files a/sounds/AI/newAI.ogg and b/sounds/AI/newAI.ogg differ diff --git a/sounds/AI/newroundsexy.ogg b/sounds/AI/newroundsexy.ogg index afe5630f04..40939416fa 100644 Binary files a/sounds/AI/newroundsexy.ogg and b/sounds/AI/newroundsexy.ogg differ diff --git a/sounds/AI/newroundsexy2.ogg b/sounds/AI/newroundsexy2.ogg index 531bba1001..83d6944803 100644 Binary files a/sounds/AI/newroundsexy2.ogg and b/sounds/AI/newroundsexy2.ogg differ diff --git a/sounds/AI/outbreak5.ogg b/sounds/AI/outbreak5.ogg index fbdb8eed00..e5bbb6ac47 100644 Binary files a/sounds/AI/outbreak5.ogg and b/sounds/AI/outbreak5.ogg differ diff --git a/sounds/AI/outbreak7.ogg b/sounds/AI/outbreak7.ogg index f35e65be9a..d5f012a01f 100644 Binary files a/sounds/AI/outbreak7.ogg and b/sounds/AI/outbreak7.ogg differ diff --git a/sounds/AI/poweroff.ogg b/sounds/AI/poweroff.ogg index f445f195c1..27f6470653 100644 Binary files a/sounds/AI/poweroff.ogg and b/sounds/AI/poweroff.ogg differ diff --git a/sounds/AI/poweron.ogg b/sounds/AI/poweron.ogg index 8cc3058ca0..12746284b7 100644 Binary files a/sounds/AI/poweron.ogg and b/sounds/AI/poweron.ogg differ diff --git a/sounds/AI/radiation.ogg b/sounds/AI/radiation.ogg index 18e112a768..deb4b9b641 100644 Binary files a/sounds/AI/radiation.ogg and b/sounds/AI/radiation.ogg differ diff --git a/sounds/AI/selfdestruct.ogg b/sounds/AI/selfdestruct.ogg index 0dc503f865..5afe884d96 100644 Binary files a/sounds/AI/selfdestruct.ogg and b/sounds/AI/selfdestruct.ogg differ diff --git a/sounds/AI/selfdestruct_deactivated.ogg b/sounds/AI/selfdestruct_deactivated.ogg index b214440a34..91d329a966 100644 Binary files a/sounds/AI/selfdestruct_deactivated.ogg and b/sounds/AI/selfdestruct_deactivated.ogg differ diff --git a/sounds/AI/shuttlecalled.ogg b/sounds/AI/shuttlecalled.ogg index 79ec47f97e..90da96c774 100644 Binary files a/sounds/AI/shuttlecalled.ogg and b/sounds/AI/shuttlecalled.ogg differ diff --git a/sounds/AI/shuttledock.ogg b/sounds/AI/shuttledock.ogg index 82fac215d6..520e3f4cdb 100644 Binary files a/sounds/AI/shuttledock.ogg and b/sounds/AI/shuttledock.ogg differ diff --git a/sounds/AI/shuttlerecalled.ogg b/sounds/AI/shuttlerecalled.ogg index 352990875c..fde4fa1978 100644 Binary files a/sounds/AI/shuttlerecalled.ogg and b/sounds/AI/shuttlerecalled.ogg differ diff --git a/sounds/AI/spanomalies.ogg b/sounds/AI/spanomalies.ogg index e5ababeab7..a8076ea35e 100644 Binary files a/sounds/AI/spanomalies.ogg and b/sounds/AI/spanomalies.ogg differ diff --git a/sounds/AI/torch/abandonship.ogg b/sounds/AI/torch/abandonship.ogg index 678546d06c..d803b3c035 100644 Binary files a/sounds/AI/torch/abandonship.ogg and b/sounds/AI/torch/abandonship.ogg differ diff --git a/sounds/AI/torch/aliens.ogg b/sounds/AI/torch/aliens.ogg index b7b72e0d27..17829ececf 100644 Binary files a/sounds/AI/torch/aliens.ogg and b/sounds/AI/torch/aliens.ogg differ diff --git a/sounds/AI/torch/commandreport.ogg b/sounds/AI/torch/commandreport.ogg index 2b0579ac01..7ef7882bb7 100644 Binary files a/sounds/AI/torch/commandreport.ogg and b/sounds/AI/torch/commandreport.ogg differ diff --git a/sounds/AI/torch/electricalstormmajor.ogg b/sounds/AI/torch/electricalstormmajor.ogg index efcb7401e2..5901b9da61 100644 Binary files a/sounds/AI/torch/electricalstormmajor.ogg and b/sounds/AI/torch/electricalstormmajor.ogg differ diff --git a/sounds/AI/torch/electricalstormmoderate.ogg b/sounds/AI/torch/electricalstormmoderate.ogg index cd401fb076..3c761ee948 100644 Binary files a/sounds/AI/torch/electricalstormmoderate.ogg and b/sounds/AI/torch/electricalstormmoderate.ogg differ diff --git a/sounds/AI/torch/gravanomalies.ogg b/sounds/AI/torch/gravanomalies.ogg index dd45efc281..f61aabb684 100644 Binary files a/sounds/AI/torch/gravanomalies.ogg and b/sounds/AI/torch/gravanomalies.ogg differ diff --git a/sounds/AI/torch/meteors.ogg b/sounds/AI/torch/meteors.ogg index 6e486f0fa5..d9fea9fe81 100644 Binary files a/sounds/AI/torch/meteors.ogg and b/sounds/AI/torch/meteors.ogg differ diff --git a/sounds/AI/torch/outbreak5.ogg b/sounds/AI/torch/outbreak5.ogg index 2dd1227ff8..2f97e8d615 100644 Binary files a/sounds/AI/torch/outbreak5.ogg and b/sounds/AI/torch/outbreak5.ogg differ diff --git a/sounds/AI/torch/outbreak7.ogg b/sounds/AI/torch/outbreak7.ogg index cc148150f9..b8ac53ec3c 100644 Binary files a/sounds/AI/torch/outbreak7.ogg and b/sounds/AI/torch/outbreak7.ogg differ diff --git a/sounds/AI/torch/outbreak7viral.ogg b/sounds/AI/torch/outbreak7viral.ogg index 515d36b8e6..77076e4f74 100644 Binary files a/sounds/AI/torch/outbreak7viral.ogg and b/sounds/AI/torch/outbreak7viral.ogg differ diff --git a/sounds/AI/torch/poweroff.ogg b/sounds/AI/torch/poweroff.ogg index c3287a79d8..9dc418ffe3 100644 Binary files a/sounds/AI/torch/poweroff.ogg and b/sounds/AI/torch/poweroff.ogg differ diff --git a/sounds/AI/torch/poweron.ogg b/sounds/AI/torch/poweron.ogg index 0a9803246c..5f3385ac2b 100644 Binary files a/sounds/AI/torch/poweron.ogg and b/sounds/AI/torch/poweron.ogg differ diff --git a/sounds/AI/torch/radiation.ogg b/sounds/AI/torch/radiation.ogg index c1522105ff..74a324b83f 100644 Binary files a/sounds/AI/torch/radiation.ogg and b/sounds/AI/torch/radiation.ogg differ diff --git a/sounds/AI/torch/radiation2.ogg b/sounds/AI/torch/radiation2.ogg index 36a784295a..9a59eaf864 100644 Binary files a/sounds/AI/torch/radiation2.ogg and b/sounds/AI/torch/radiation2.ogg differ diff --git a/sounds/AI/torch/spanomalies.ogg b/sounds/AI/torch/spanomalies.ogg index 00e20e648a..d8d52af6cd 100644 Binary files a/sounds/AI/torch/spanomalies.ogg and b/sounds/AI/torch/spanomalies.ogg differ diff --git a/sounds/AI/welcome.ogg b/sounds/AI/welcome.ogg index 2224cabb2c..4ffbae6799 100644 Binary files a/sounds/AI/welcome.ogg and b/sounds/AI/welcome.ogg differ diff --git a/sounds/ambience/alarm4.ogg b/sounds/ambience/alarm4.ogg index a86bfd155f..c05e018369 100644 Binary files a/sounds/ambience/alarm4.ogg and b/sounds/ambience/alarm4.ogg differ diff --git a/sounds/ambience/alarm5.ogg b/sounds/ambience/alarm5.ogg index 4c5b3587d1..2ca3ca6e8b 100644 Binary files a/sounds/ambience/alarm5.ogg and b/sounds/ambience/alarm5.ogg differ diff --git a/sounds/ambience/ambiatm1.ogg b/sounds/ambience/ambiatm1.ogg index db8ceeebf9..f3a460f029 100644 Binary files a/sounds/ambience/ambiatm1.ogg and b/sounds/ambience/ambiatm1.ogg differ diff --git a/sounds/ambience/ambicha1.ogg b/sounds/ambience/ambicha1.ogg index 4055a831b5..012819be27 100644 Binary files a/sounds/ambience/ambicha1.ogg and b/sounds/ambience/ambicha1.ogg differ diff --git a/sounds/ambience/ambicha2.ogg b/sounds/ambience/ambicha2.ogg index c95f16af08..3838577f9d 100644 Binary files a/sounds/ambience/ambicha2.ogg and b/sounds/ambience/ambicha2.ogg differ diff --git a/sounds/ambience/ambicha3.ogg b/sounds/ambience/ambicha3.ogg index 6297f7df1c..40bbcf3c65 100644 Binary files a/sounds/ambience/ambicha3.ogg and b/sounds/ambience/ambicha3.ogg differ diff --git a/sounds/ambience/ambicha4.ogg b/sounds/ambience/ambicha4.ogg index 1139fa7797..264dfeef30 100644 Binary files a/sounds/ambience/ambicha4.ogg and b/sounds/ambience/ambicha4.ogg differ diff --git a/sounds/ambience/ambieng1.ogg b/sounds/ambience/ambieng1.ogg index 357f3c7242..5905e49869 100644 Binary files a/sounds/ambience/ambieng1.ogg and b/sounds/ambience/ambieng1.ogg differ diff --git a/sounds/ambience/ambigen1.ogg b/sounds/ambience/ambigen1.ogg index 6a5a2d27c9..5d07a96e3b 100644 Binary files a/sounds/ambience/ambigen1.ogg and b/sounds/ambience/ambigen1.ogg differ diff --git a/sounds/ambience/ambigen10.ogg b/sounds/ambience/ambigen10.ogg index 2a8177f274..a78c2818d3 100644 Binary files a/sounds/ambience/ambigen10.ogg and b/sounds/ambience/ambigen10.ogg differ diff --git a/sounds/ambience/ambigen11.ogg b/sounds/ambience/ambigen11.ogg index 604a013a5e..8db9ca53f2 100644 Binary files a/sounds/ambience/ambigen11.ogg and b/sounds/ambience/ambigen11.ogg differ diff --git a/sounds/ambience/ambigen12.ogg b/sounds/ambience/ambigen12.ogg index 522aec4afe..5f1b9d567c 100644 Binary files a/sounds/ambience/ambigen12.ogg and b/sounds/ambience/ambigen12.ogg differ diff --git a/sounds/ambience/ambigen13.ogg b/sounds/ambience/ambigen13.ogg index 0ae24a9a68..381f3faaa6 100644 Binary files a/sounds/ambience/ambigen13.ogg and b/sounds/ambience/ambigen13.ogg differ diff --git a/sounds/ambience/ambigen14.ogg b/sounds/ambience/ambigen14.ogg index 30171814ad..78fc3b9633 100644 Binary files a/sounds/ambience/ambigen14.ogg and b/sounds/ambience/ambigen14.ogg differ diff --git a/sounds/ambience/ambigen2.ogg b/sounds/ambience/ambigen2.ogg index 6a5a2d27c9..8fc9103f5f 100644 Binary files a/sounds/ambience/ambigen2.ogg and b/sounds/ambience/ambigen2.ogg differ diff --git a/sounds/ambience/ambigen3.ogg b/sounds/ambience/ambigen3.ogg index 6e7372811d..4d8ef02820 100644 Binary files a/sounds/ambience/ambigen3.ogg and b/sounds/ambience/ambigen3.ogg differ diff --git a/sounds/ambience/ambigen4.ogg b/sounds/ambience/ambigen4.ogg index bf7237cc70..1dbfb73f2e 100644 Binary files a/sounds/ambience/ambigen4.ogg and b/sounds/ambience/ambigen4.ogg differ diff --git a/sounds/ambience/ambigen5.ogg b/sounds/ambience/ambigen5.ogg index 90cc999b32..6921d79eb4 100644 Binary files a/sounds/ambience/ambigen5.ogg and b/sounds/ambience/ambigen5.ogg differ diff --git a/sounds/ambience/ambigen6.ogg b/sounds/ambience/ambigen6.ogg index ae366e1359..dff251b934 100644 Binary files a/sounds/ambience/ambigen6.ogg and b/sounds/ambience/ambigen6.ogg differ diff --git a/sounds/ambience/ambigen7.ogg b/sounds/ambience/ambigen7.ogg index be3cf1b703..2fb655c5ab 100644 Binary files a/sounds/ambience/ambigen7.ogg and b/sounds/ambience/ambigen7.ogg differ diff --git a/sounds/ambience/ambigen8.ogg b/sounds/ambience/ambigen8.ogg index 9562178a2b..cce8591bd9 100644 Binary files a/sounds/ambience/ambigen8.ogg and b/sounds/ambience/ambigen8.ogg differ diff --git a/sounds/ambience/ambigen9.ogg b/sounds/ambience/ambigen9.ogg index 4214afd9b8..fbccf3eff2 100644 Binary files a/sounds/ambience/ambigen9.ogg and b/sounds/ambience/ambigen9.ogg differ diff --git a/sounds/ambience/ambimalf.ogg b/sounds/ambience/ambimalf.ogg index e5b32dc1a7..b138021daa 100644 Binary files a/sounds/ambience/ambimalf.ogg and b/sounds/ambience/ambimalf.ogg differ diff --git a/sounds/ambience/ambimine.ogg b/sounds/ambience/ambimine.ogg index 6a7fbc391d..1ae8a1d73c 100644 Binary files a/sounds/ambience/ambimine.ogg and b/sounds/ambience/ambimine.ogg differ diff --git a/sounds/ambience/ambimo1.ogg b/sounds/ambience/ambimo1.ogg index da0d522ad2..7df628545c 100644 Binary files a/sounds/ambience/ambimo1.ogg and b/sounds/ambience/ambimo1.ogg differ diff --git a/sounds/ambience/ambimo2.ogg b/sounds/ambience/ambimo2.ogg index bc77cd28c6..65b88462e6 100644 Binary files a/sounds/ambience/ambimo2.ogg and b/sounds/ambience/ambimo2.ogg differ diff --git a/sounds/ambience/ambisin1.ogg b/sounds/ambience/ambisin1.ogg index a31c7b226e..6e8c18e0d1 100644 Binary files a/sounds/ambience/ambisin1.ogg and b/sounds/ambience/ambisin1.ogg differ diff --git a/sounds/ambience/ambisin2.ogg b/sounds/ambience/ambisin2.ogg index fbac9a73e9..dd6ddd8125 100644 Binary files a/sounds/ambience/ambisin2.ogg and b/sounds/ambience/ambisin2.ogg differ diff --git a/sounds/ambience/ambisin3.ogg b/sounds/ambience/ambisin3.ogg index c71d1ae293..f09f5a21fe 100644 Binary files a/sounds/ambience/ambisin3.ogg and b/sounds/ambience/ambisin3.ogg differ diff --git a/sounds/ambience/ambisin4.ogg b/sounds/ambience/ambisin4.ogg index 76be2ef85c..bdb212f963 100644 Binary files a/sounds/ambience/ambisin4.ogg and b/sounds/ambience/ambisin4.ogg differ diff --git a/sounds/ambience/ambispace.ogg b/sounds/ambience/ambispace.ogg index 6e23d0e383..b313ae0dd1 100644 Binary files a/sounds/ambience/ambispace.ogg and b/sounds/ambience/ambispace.ogg differ diff --git a/sounds/ambience/ambispace1.ogg b/sounds/ambience/ambispace1.ogg index ab8334cd62..200775c594 100644 Binary files a/sounds/ambience/ambispace1.ogg and b/sounds/ambience/ambispace1.ogg differ diff --git a/sounds/ambience/ambispace2.ogg b/sounds/ambience/ambispace2.ogg index 3a039c43e8..22107c5822 100644 Binary files a/sounds/ambience/ambispace2.ogg and b/sounds/ambience/ambispace2.ogg differ diff --git a/sounds/ambience/ambispace3.ogg b/sounds/ambience/ambispace3.ogg index c8a0076660..8937b9ed97 100644 Binary files a/sounds/ambience/ambispace3.ogg and b/sounds/ambience/ambispace3.ogg differ diff --git a/sounds/ambience/ambispace4.ogg b/sounds/ambience/ambispace4.ogg index c5afa06c3b..8de03cebf2 100644 Binary files a/sounds/ambience/ambispace4.ogg and b/sounds/ambience/ambispace4.ogg differ diff --git a/sounds/ambience/ambispace5.ogg b/sounds/ambience/ambispace5.ogg index f6818b5548..31dd2043f1 100644 Binary files a/sounds/ambience/ambispace5.ogg and b/sounds/ambience/ambispace5.ogg differ diff --git a/sounds/ambience/eeriejungle1.ogg b/sounds/ambience/eeriejungle1.ogg index 8b07c53744..a33b4e4db1 100644 Binary files a/sounds/ambience/eeriejungle1.ogg and b/sounds/ambience/eeriejungle1.ogg differ diff --git a/sounds/ambience/eeriejungle2.ogg b/sounds/ambience/eeriejungle2.ogg index cb471de03a..11d95745d7 100644 Binary files a/sounds/ambience/eeriejungle2.ogg and b/sounds/ambience/eeriejungle2.ogg differ diff --git a/sounds/ambience/hcz/049/Room049.ogg b/sounds/ambience/hcz/049/Room049.ogg index 900320a13d..f45882cd6e 100644 Binary files a/sounds/ambience/hcz/049/Room049.ogg and b/sounds/ambience/hcz/049/Room049.ogg differ diff --git a/sounds/ambience/jungle.ogg b/sounds/ambience/jungle.ogg index e7cee832f2..c5c81d9977 100644 Binary files a/sounds/ambience/jungle.ogg and b/sounds/ambience/jungle.ogg differ diff --git a/sounds/ambience/jungle_amb1.ogg b/sounds/ambience/jungle_amb1.ogg index c6b404b6d5..ef62d7a0e6 100644 Binary files a/sounds/ambience/jungle_amb1.ogg and b/sounds/ambience/jungle_amb1.ogg differ diff --git a/sounds/ambience/lcz/crb/Ambient2.ogg b/sounds/ambience/lcz/crb/Ambient2.ogg index 54fc741f95..fd72551441 100644 Binary files a/sounds/ambience/lcz/crb/Ambient2.ogg and b/sounds/ambience/lcz/crb/Ambient2.ogg differ diff --git a/sounds/ambience/lcz/crb/Ambient3.ogg b/sounds/ambience/lcz/crb/Ambient3.ogg index be52eb4867..11bfa2e678 100644 Binary files a/sounds/ambience/lcz/crb/Ambient3.ogg and b/sounds/ambience/lcz/crb/Ambient3.ogg differ diff --git a/sounds/ambience/lcz/crb/Ambient8.ogg b/sounds/ambience/lcz/crb/Ambient8.ogg index bfa767f8b4..dc27875a0d 100644 Binary files a/sounds/ambience/lcz/crb/Ambient8.ogg and b/sounds/ambience/lcz/crb/Ambient8.ogg differ diff --git a/sounds/ambience/lcz/crb/AnnouncAfter1.ogg b/sounds/ambience/lcz/crb/AnnouncAfter1.ogg index 6b5ea6e21f..018898e79a 100644 Binary files a/sounds/ambience/lcz/crb/AnnouncAfter1.ogg and b/sounds/ambience/lcz/crb/AnnouncAfter1.ogg differ diff --git a/sounds/ambience/lcz/crb/Commotion15.ogg b/sounds/ambience/lcz/crb/Commotion15.ogg index 4db995db5c..6b61013b4e 100644 Binary files a/sounds/ambience/lcz/crb/Commotion15.ogg and b/sounds/ambience/lcz/crb/Commotion15.ogg differ diff --git a/sounds/ambience/lcz/crb/Commotion19.ogg b/sounds/ambience/lcz/crb/Commotion19.ogg index 2ea1979bc6..b9192e97d0 100644 Binary files a/sounds/ambience/lcz/crb/Commotion19.ogg and b/sounds/ambience/lcz/crb/Commotion19.ogg differ diff --git a/sounds/ambience/lcz/crb/Commotion21.ogg b/sounds/ambience/lcz/crb/Commotion21.ogg index 247ed38b2b..7f6c40ad54 100644 Binary files a/sounds/ambience/lcz/crb/Commotion21.ogg and b/sounds/ambience/lcz/crb/Commotion21.ogg differ diff --git a/sounds/ambience/lcz/crb/Commotion3.ogg b/sounds/ambience/lcz/crb/Commotion3.ogg index 5bd49edabb..fe88020952 100644 Binary files a/sounds/ambience/lcz/crb/Commotion3.ogg and b/sounds/ambience/lcz/crb/Commotion3.ogg differ diff --git a/sounds/ambience/lcz/crb/EmilyScream.ogg b/sounds/ambience/lcz/crb/EmilyScream.ogg index 59967cb123..6b981378b9 100644 Binary files a/sounds/ambience/lcz/crb/EmilyScream.ogg and b/sounds/ambience/lcz/crb/EmilyScream.ogg differ diff --git a/sounds/ambience/lcz/crb/alarm.ogg b/sounds/ambience/lcz/crb/alarm.ogg index b83062abfd..af5ba7112f 100644 Binary files a/sounds/ambience/lcz/crb/alarm.ogg and b/sounds/ambience/lcz/crb/alarm.ogg differ diff --git a/sounds/ambience/lcz/general/Ambient1.ogg b/sounds/ambience/lcz/general/Ambient1.ogg index 5f7ff37f3a..66d3070432 100644 Binary files a/sounds/ambience/lcz/general/Ambient1.ogg and b/sounds/ambience/lcz/general/Ambient1.ogg differ diff --git a/sounds/ambience/lcz/general/Ambient2.ogg b/sounds/ambience/lcz/general/Ambient2.ogg index 3b7b6e389b..c588fc2727 100644 Binary files a/sounds/ambience/lcz/general/Ambient2.ogg and b/sounds/ambience/lcz/general/Ambient2.ogg differ diff --git a/sounds/ambience/lcz/general/Ambient3.ogg b/sounds/ambience/lcz/general/Ambient3.ogg index f524b8b62d..acc53ee5f0 100644 Binary files a/sounds/ambience/lcz/general/Ambient3.ogg and b/sounds/ambience/lcz/general/Ambient3.ogg differ diff --git a/sounds/ambience/lcz/general/Ambient4.ogg b/sounds/ambience/lcz/general/Ambient4.ogg index 12089c5f43..c4ead88c8a 100644 Binary files a/sounds/ambience/lcz/general/Ambient4.ogg and b/sounds/ambience/lcz/general/Ambient4.ogg differ diff --git a/sounds/ambience/lcz/general/Ambient5.ogg b/sounds/ambience/lcz/general/Ambient5.ogg index a1b7a4ae12..c8bb299123 100644 Binary files a/sounds/ambience/lcz/general/Ambient5.ogg and b/sounds/ambience/lcz/general/Ambient5.ogg differ diff --git a/sounds/ambience/lcz/general/Ambient6.ogg b/sounds/ambience/lcz/general/Ambient6.ogg index d91296d556..5f02bf0441 100644 Binary files a/sounds/ambience/lcz/general/Ambient6.ogg and b/sounds/ambience/lcz/general/Ambient6.ogg differ diff --git a/sounds/ambience/lcz/general/Ambient7.ogg b/sounds/ambience/lcz/general/Ambient7.ogg index e473e3df3e..ef52434779 100644 Binary files a/sounds/ambience/lcz/general/Ambient7.ogg and b/sounds/ambience/lcz/general/Ambient7.ogg differ diff --git a/sounds/ambience/lcz/general/Ambient8.ogg b/sounds/ambience/lcz/general/Ambient8.ogg index 0db906c21a..498df211cc 100644 Binary files a/sounds/ambience/lcz/general/Ambient8.ogg and b/sounds/ambience/lcz/general/Ambient8.ogg differ diff --git a/sounds/ambience/lcz/general/Ambient9.ogg b/sounds/ambience/lcz/general/Ambient9.ogg index 4504c74631..928c73cc84 100644 Binary files a/sounds/ambience/lcz/general/Ambient9.ogg and b/sounds/ambience/lcz/general/Ambient9.ogg differ diff --git a/sounds/ambience/magma.ogg b/sounds/ambience/magma.ogg index 09ccc6bf92..2a984a800a 100644 Binary files a/sounds/ambience/magma.ogg and b/sounds/ambience/magma.ogg differ diff --git a/sounds/ambience/maintambience.ogg b/sounds/ambience/maintambience.ogg index 1e98d9db13..bc1d94e2bb 100644 Binary files a/sounds/ambience/maintambience.ogg and b/sounds/ambience/maintambience.ogg differ diff --git a/sounds/ambience/matteralarm.ogg b/sounds/ambience/matteralarm.ogg index c341077d36..7c6c625af0 100644 Binary files a/sounds/ambience/matteralarm.ogg and b/sounds/ambience/matteralarm.ogg differ diff --git a/sounds/ambience/meat_monster_arrival.ogg b/sounds/ambience/meat_monster_arrival.ogg index 588307e0a1..40953dec72 100644 Binary files a/sounds/ambience/meat_monster_arrival.ogg and b/sounds/ambience/meat_monster_arrival.ogg differ diff --git a/sounds/ambience/ominous1.ogg b/sounds/ambience/ominous1.ogg index 34d71edc84..d869338f52 100644 Binary files a/sounds/ambience/ominous1.ogg and b/sounds/ambience/ominous1.ogg differ diff --git a/sounds/ambience/ominous2.ogg b/sounds/ambience/ominous2.ogg index 7aa00848de..76623864d3 100644 Binary files a/sounds/ambience/ominous2.ogg and b/sounds/ambience/ominous2.ogg differ diff --git a/sounds/ambience/ominous3.ogg b/sounds/ambience/ominous3.ogg index a7c2df0e73..dad2bce13f 100644 Binary files a/sounds/ambience/ominous3.ogg and b/sounds/ambience/ominous3.ogg differ diff --git a/sounds/ambience/seag1.ogg b/sounds/ambience/seag1.ogg index 8b26eeefc4..59400526ea 100644 Binary files a/sounds/ambience/seag1.ogg and b/sounds/ambience/seag1.ogg differ diff --git a/sounds/ambience/seag2.ogg b/sounds/ambience/seag2.ogg index b0c714b77b..29bf0110a5 100644 Binary files a/sounds/ambience/seag2.ogg and b/sounds/ambience/seag2.ogg differ diff --git a/sounds/ambience/seag3.ogg b/sounds/ambience/seag3.ogg index 6385e87e1d..399da606f5 100644 Binary files a/sounds/ambience/seag3.ogg and b/sounds/ambience/seag3.ogg differ diff --git a/sounds/ambience/shipambience.ogg b/sounds/ambience/shipambience.ogg index 51e090b02c..6bad394c90 100644 Binary files a/sounds/ambience/shipambience.ogg and b/sounds/ambience/shipambience.ogg differ diff --git a/sounds/ambience/shore.ogg b/sounds/ambience/shore.ogg index d3edf17961..58ec5d8ad3 100644 Binary files a/sounds/ambience/shore.ogg and b/sounds/ambience/shore.ogg differ diff --git a/sounds/ambience/signal.ogg b/sounds/ambience/signal.ogg index 83de659ba7..9f04b752c0 100644 Binary files a/sounds/ambience/signal.ogg and b/sounds/ambience/signal.ogg differ diff --git a/sounds/ambience/sonar.ogg b/sounds/ambience/sonar.ogg index 55aa5ef93b..84b6f32d76 100644 Binary files a/sounds/ambience/sonar.ogg and b/sounds/ambience/sonar.ogg differ diff --git a/sounds/ambience/song_game.ogg b/sounds/ambience/song_game.ogg index 16b85f662f..25e9123d91 100644 Binary files a/sounds/ambience/song_game.ogg and b/sounds/ambience/song_game.ogg differ diff --git a/sounds/ambience/spookyspace1.ogg b/sounds/ambience/spookyspace1.ogg index 9f8f9a78de..82ed495d03 100644 Binary files a/sounds/ambience/spookyspace1.ogg and b/sounds/ambience/spookyspace1.ogg differ diff --git a/sounds/ambience/spookyspace2.ogg b/sounds/ambience/spookyspace2.ogg index 89c607057b..60831cd451 100644 Binary files a/sounds/ambience/spookyspace2.ogg and b/sounds/ambience/spookyspace2.ogg differ diff --git a/sounds/ambience/tank_driving.ogg b/sounds/ambience/tank_driving.ogg index 31a6d0ac32..ba949ea54e 100644 Binary files a/sounds/ambience/tank_driving.ogg and b/sounds/ambience/tank_driving.ogg differ diff --git a/sounds/ambience/vents.ogg b/sounds/ambience/vents.ogg index bf207e5ed6..da0e92dc7f 100644 Binary files a/sounds/ambience/vents.ogg and b/sounds/ambience/vents.ogg differ diff --git a/sounds/arcade/Ori_begin.ogg b/sounds/arcade/Ori_begin.ogg index 2e8f2d262b..50222c72bb 100644 Binary files a/sounds/arcade/Ori_begin.ogg and b/sounds/arcade/Ori_begin.ogg differ diff --git a/sounds/arcade/Ori_fail.ogg b/sounds/arcade/Ori_fail.ogg index 7347c6f02c..281e0c39aa 100644 Binary files a/sounds/arcade/Ori_fail.ogg and b/sounds/arcade/Ori_fail.ogg differ diff --git a/sounds/arcade/Ori_win.ogg b/sounds/arcade/Ori_win.ogg index 14dd7888c4..6fec465820 100644 Binary files a/sounds/arcade/Ori_win.ogg and b/sounds/arcade/Ori_win.ogg differ diff --git a/sounds/arcade/boom.ogg b/sounds/arcade/boom.ogg index 8adfb2bc43..aa10469257 100644 Binary files a/sounds/arcade/boom.ogg and b/sounds/arcade/boom.ogg differ diff --git a/sounds/arcade/explo.ogg b/sounds/arcade/explo.ogg index d99132a26a..a67cbb0f9c 100644 Binary files a/sounds/arcade/explo.ogg and b/sounds/arcade/explo.ogg differ diff --git a/sounds/arcade/get_fuel.ogg b/sounds/arcade/get_fuel.ogg index 57ed7dd137..37d8b5683e 100644 Binary files a/sounds/arcade/get_fuel.ogg and b/sounds/arcade/get_fuel.ogg differ diff --git a/sounds/arcade/heal.ogg b/sounds/arcade/heal.ogg index 26f47195c6..3b70801dda 100644 Binary files a/sounds/arcade/heal.ogg and b/sounds/arcade/heal.ogg differ diff --git a/sounds/arcade/hit.ogg b/sounds/arcade/hit.ogg index 0bf18679a6..2fc3142220 100644 Binary files a/sounds/arcade/hit.ogg and b/sounds/arcade/hit.ogg differ diff --git a/sounds/arcade/kill_crew.ogg b/sounds/arcade/kill_crew.ogg index e72533200d..6eaeb3d506 100644 Binary files a/sounds/arcade/kill_crew.ogg and b/sounds/arcade/kill_crew.ogg differ diff --git a/sounds/arcade/lose.ogg b/sounds/arcade/lose.ogg index dd2145737c..3a67fa9f0c 100644 Binary files a/sounds/arcade/lose.ogg and b/sounds/arcade/lose.ogg differ diff --git a/sounds/arcade/lose_fuel.ogg b/sounds/arcade/lose_fuel.ogg index 9ac5e98db3..e739f4b03f 100644 Binary files a/sounds/arcade/lose_fuel.ogg and b/sounds/arcade/lose_fuel.ogg differ diff --git a/sounds/arcade/mana.ogg b/sounds/arcade/mana.ogg index 7f26ae53fe..ffcc1d0fae 100644 Binary files a/sounds/arcade/mana.ogg and b/sounds/arcade/mana.ogg differ diff --git a/sounds/arcade/raid.ogg b/sounds/arcade/raid.ogg index 135a013fb0..8cb23d54df 100644 Binary files a/sounds/arcade/raid.ogg and b/sounds/arcade/raid.ogg differ diff --git a/sounds/arcade/steal.ogg b/sounds/arcade/steal.ogg index 9c7b3be2a5..6ab5d3d67c 100644 Binary files a/sounds/arcade/steal.ogg and b/sounds/arcade/steal.ogg differ diff --git a/sounds/arcade/win.ogg b/sounds/arcade/win.ogg index 27fb9725f2..260dad384e 100644 Binary files a/sounds/arcade/win.ogg and b/sounds/arcade/win.ogg differ diff --git a/sounds/bullets/acid_impact1.ogg b/sounds/bullets/acid_impact1.ogg index 8e3d041ee5..8bebe8b685 100644 Binary files a/sounds/bullets/acid_impact1.ogg and b/sounds/bullets/acid_impact1.ogg differ diff --git a/sounds/bullets/bullet_armor1.ogg b/sounds/bullets/bullet_armor1.ogg index 49d47ddbfc..e7f081729d 100644 Binary files a/sounds/bullets/bullet_armor1.ogg and b/sounds/bullets/bullet_armor1.ogg differ diff --git a/sounds/bullets/bullet_armor2.ogg b/sounds/bullets/bullet_armor2.ogg index b774b62cdf..f7e66dbca8 100644 Binary files a/sounds/bullets/bullet_armor2.ogg and b/sounds/bullets/bullet_armor2.ogg differ diff --git a/sounds/bullets/bullet_armor3.ogg b/sounds/bullets/bullet_armor3.ogg index 4ec2939293..a052015d84 100644 Binary files a/sounds/bullets/bullet_armor3.ogg and b/sounds/bullets/bullet_armor3.ogg differ diff --git a/sounds/bullets/bullet_armor4.ogg b/sounds/bullets/bullet_armor4.ogg index 3b448d4be1..8efae884aa 100644 Binary files a/sounds/bullets/bullet_armor4.ogg and b/sounds/bullets/bullet_armor4.ogg differ diff --git a/sounds/bullets/bullet_impact1.ogg b/sounds/bullets/bullet_impact1.ogg index 4c0cd5b5ee..863ef797b7 100644 Binary files a/sounds/bullets/bullet_impact1.ogg and b/sounds/bullets/bullet_impact1.ogg differ diff --git a/sounds/bullets/bullet_impact2.ogg b/sounds/bullets/bullet_impact2.ogg index bfffcfeadf..0341508fce 100644 Binary files a/sounds/bullets/bullet_impact2.ogg and b/sounds/bullets/bullet_impact2.ogg differ diff --git a/sounds/bullets/bullet_impact3.ogg b/sounds/bullets/bullet_impact3.ogg index 0356dc6c88..9a7bf09fdb 100644 Binary files a/sounds/bullets/bullet_impact3.ogg and b/sounds/bullets/bullet_impact3.ogg differ diff --git a/sounds/bullets/bullet_miss1.ogg b/sounds/bullets/bullet_miss1.ogg index ae3e7a4b66..d2a03df7b6 100644 Binary files a/sounds/bullets/bullet_miss1.ogg and b/sounds/bullets/bullet_miss1.ogg differ diff --git a/sounds/bullets/bullet_miss2.ogg b/sounds/bullets/bullet_miss2.ogg index 8ae5417ab0..395eeeed4c 100644 Binary files a/sounds/bullets/bullet_miss2.ogg and b/sounds/bullets/bullet_miss2.ogg differ diff --git a/sounds/bullets/bullet_miss3.ogg b/sounds/bullets/bullet_miss3.ogg index 340a1a2faf..9123fb3a35 100644 Binary files a/sounds/bullets/bullet_miss3.ogg and b/sounds/bullets/bullet_miss3.ogg differ diff --git a/sounds/bullets/bullet_miss4.ogg b/sounds/bullets/bullet_miss4.ogg index ba8cb80e40..d90b20302f 100644 Binary files a/sounds/bullets/bullet_miss4.ogg and b/sounds/bullets/bullet_miss4.ogg differ diff --git a/sounds/bullets/bullet_ricochet1.ogg b/sounds/bullets/bullet_ricochet1.ogg index 1045159562..9f9c492939 100644 Binary files a/sounds/bullets/bullet_ricochet1.ogg and b/sounds/bullets/bullet_ricochet1.ogg differ diff --git a/sounds/bullets/bullet_ricochet2.ogg b/sounds/bullets/bullet_ricochet2.ogg index 53014c1c6f..c3d3df3971 100644 Binary files a/sounds/bullets/bullet_ricochet2.ogg and b/sounds/bullets/bullet_ricochet2.ogg differ diff --git a/sounds/bullets/bullet_ricochet3.ogg b/sounds/bullets/bullet_ricochet3.ogg index a52a3b0544..ca2e97effb 100644 Binary files a/sounds/bullets/bullet_ricochet3.ogg and b/sounds/bullets/bullet_ricochet3.ogg differ diff --git a/sounds/bullets/bullet_ricochet4.ogg b/sounds/bullets/bullet_ricochet4.ogg index 1add99f83a..de4d02d30c 100644 Binary files a/sounds/bullets/bullet_ricochet4.ogg and b/sounds/bullets/bullet_ricochet4.ogg differ diff --git a/sounds/bullets/bullet_ricochet5.ogg b/sounds/bullets/bullet_ricochet5.ogg index 57a87edef3..2085a92eec 100644 Binary files a/sounds/bullets/bullet_ricochet5.ogg and b/sounds/bullets/bullet_ricochet5.ogg differ diff --git a/sounds/bullets/bullet_ricochet6.ogg b/sounds/bullets/bullet_ricochet6.ogg index 03fbe6d070..2335fb5051 100644 Binary files a/sounds/bullets/bullet_ricochet6.ogg and b/sounds/bullets/bullet_ricochet6.ogg differ diff --git a/sounds/bullets/bullet_ricochet7.ogg b/sounds/bullets/bullet_ricochet7.ogg index 1ba37eceb1..eb9ed094c9 100644 Binary files a/sounds/bullets/bullet_ricochet7.ogg and b/sounds/bullets/bullet_ricochet7.ogg differ diff --git a/sounds/bullets/bullet_ricochet8.ogg b/sounds/bullets/bullet_ricochet8.ogg index b8499ea269..50c1275354 100644 Binary files a/sounds/bullets/bullet_ricochet8.ogg and b/sounds/bullets/bullet_ricochet8.ogg differ diff --git a/sounds/bullets/energy_impact1.ogg b/sounds/bullets/energy_impact1.ogg index e9d6305972..f3fe23c4c9 100644 Binary files a/sounds/bullets/energy_impact1.ogg and b/sounds/bullets/energy_impact1.ogg differ diff --git a/sounds/bullets/energy_miss1.ogg b/sounds/bullets/energy_miss1.ogg index 55839b14d3..8e3309be66 100644 Binary files a/sounds/bullets/energy_miss1.ogg and b/sounds/bullets/energy_miss1.ogg differ diff --git a/sounds/bullets/energy_ricochet1.ogg b/sounds/bullets/energy_ricochet1.ogg index 7601f7823a..7570070f82 100644 Binary files a/sounds/bullets/energy_ricochet1.ogg and b/sounds/bullets/energy_ricochet1.ogg differ diff --git a/sounds/bullets/rocket_ricochet1.ogg b/sounds/bullets/rocket_ricochet1.ogg index b1a81339cb..3fc029e0df 100644 Binary files a/sounds/bullets/rocket_ricochet1.ogg and b/sounds/bullets/rocket_ricochet1.ogg differ diff --git a/sounds/bullets/rocket_ricochet2.ogg b/sounds/bullets/rocket_ricochet2.ogg index 435094c686..6d586fd657 100644 Binary files a/sounds/bullets/rocket_ricochet2.ogg and b/sounds/bullets/rocket_ricochet2.ogg differ diff --git a/sounds/bullets/rocket_ricochet3.ogg b/sounds/bullets/rocket_ricochet3.ogg index 3f6f03eba4..08fb1d1451 100644 Binary files a/sounds/bullets/rocket_ricochet3.ogg and b/sounds/bullets/rocket_ricochet3.ogg differ diff --git a/sounds/bullets/spear_armor1.ogg b/sounds/bullets/spear_armor1.ogg index 2a95a0a946..9f31de9f18 100644 Binary files a/sounds/bullets/spear_armor1.ogg and b/sounds/bullets/spear_armor1.ogg differ diff --git a/sounds/bullets/spear_impact1.ogg b/sounds/bullets/spear_impact1.ogg index c4af009469..9d67edb8a3 100644 Binary files a/sounds/bullets/spear_impact1.ogg and b/sounds/bullets/spear_impact1.ogg differ diff --git a/sounds/bullets/spear_ricochet1.ogg b/sounds/bullets/spear_ricochet1.ogg index 287a94d1d9..2e87f09ac9 100644 Binary files a/sounds/bullets/spear_ricochet1.ogg and b/sounds/bullets/spear_ricochet1.ogg differ diff --git a/sounds/bullets/spear_ricochet2.ogg b/sounds/bullets/spear_ricochet2.ogg index 5dd0ac7e28..7a7040cd83 100644 Binary files a/sounds/bullets/spear_ricochet2.ogg and b/sounds/bullets/spear_ricochet2.ogg differ diff --git a/sounds/effects/-adminhelp.ogg b/sounds/effects/-adminhelp.ogg index 7386395858..f91c1d3ee7 100644 Binary files a/sounds/effects/-adminhelp.ogg and b/sounds/effects/-adminhelp.ogg differ diff --git a/sounds/effects/EMPulse.ogg b/sounds/effects/EMPulse.ogg index f9b7066454..218b1bed4c 100644 Binary files a/sounds/effects/EMPulse.ogg and b/sounds/effects/EMPulse.ogg differ diff --git a/sounds/effects/Evacuation.ogg b/sounds/effects/Evacuation.ogg index 1825435216..1d1f452d5c 100644 Binary files a/sounds/effects/Evacuation.ogg and b/sounds/effects/Evacuation.ogg differ diff --git a/sounds/effects/Explosion1.ogg b/sounds/effects/Explosion1.ogg index 14df2c88cc..e689fa000c 100644 Binary files a/sounds/effects/Explosion1.ogg and b/sounds/effects/Explosion1.ogg differ diff --git a/sounds/effects/Explosion2.ogg b/sounds/effects/Explosion2.ogg index 4c74233720..6c865c1b64 100644 Binary files a/sounds/effects/Explosion2.ogg and b/sounds/effects/Explosion2.ogg differ diff --git a/sounds/effects/Glassbr1.ogg b/sounds/effects/Glassbr1.ogg index 40938309a0..03af9c8f84 100644 Binary files a/sounds/effects/Glassbr1.ogg and b/sounds/effects/Glassbr1.ogg differ diff --git a/sounds/effects/Glassbr2.ogg b/sounds/effects/Glassbr2.ogg index 9dba184098..dcb5bcb4df 100644 Binary files a/sounds/effects/Glassbr2.ogg and b/sounds/effects/Glassbr2.ogg differ diff --git a/sounds/effects/Glassbr3.ogg b/sounds/effects/Glassbr3.ogg index 4f46dd1a1c..0f436f91aa 100644 Binary files a/sounds/effects/Glassbr3.ogg and b/sounds/effects/Glassbr3.ogg differ diff --git a/sounds/effects/Glasshit.ogg b/sounds/effects/Glasshit.ogg index 500afcd5d0..b0d92d25cf 100644 Binary files a/sounds/effects/Glasshit.ogg and b/sounds/effects/Glasshit.ogg differ diff --git a/sounds/effects/Glasshit_old.ogg b/sounds/effects/Glasshit_old.ogg index 80f59bf3fb..c159645f8e 100644 Binary files a/sounds/effects/Glasshit_old.ogg and b/sounds/effects/Glasshit_old.ogg differ diff --git a/sounds/effects/Heart Beat.ogg b/sounds/effects/Heart Beat.ogg index 6d99aa371c..ccc4f32f01 100644 Binary files a/sounds/effects/Heart Beat.ogg and b/sounds/effects/Heart Beat.ogg differ diff --git a/sounds/effects/TrainLeavingSite.ogg b/sounds/effects/TrainLeavingSite.ogg index 685cdbf6b3..dc8da5aa21 100644 Binary files a/sounds/effects/TrainLeavingSite.ogg and b/sounds/effects/TrainLeavingSite.ogg differ diff --git a/sounds/effects/Traininmotion.ogg b/sounds/effects/Traininmotion.ogg index ab93cb8075..24f04da2ff 100644 Binary files a/sounds/effects/Traininmotion.ogg and b/sounds/effects/Traininmotion.ogg differ diff --git a/sounds/effects/adminhelp-error.ogg b/sounds/effects/adminhelp-error.ogg index bcdb326790..39610d5e1a 100644 Binary files a/sounds/effects/adminhelp-error.ogg and b/sounds/effects/adminhelp-error.ogg differ diff --git a/sounds/effects/adminhelp-reply.ogg b/sounds/effects/adminhelp-reply.ogg index 67ce9b51d9..b9b0a8ae5a 100644 Binary files a/sounds/effects/adminhelp-reply.ogg and b/sounds/effects/adminhelp-reply.ogg differ diff --git a/sounds/effects/adminhelp.ogg b/sounds/effects/adminhelp.ogg index 704c0fd6d2..809f08a9e6 100644 Binary files a/sounds/effects/adminhelp.ogg and b/sounds/effects/adminhelp.ogg differ diff --git a/sounds/effects/adminhelp_new.ogg b/sounds/effects/adminhelp_new.ogg index fb15e78081..aebc68c6a5 100644 Binary files a/sounds/effects/adminhelp_new.ogg and b/sounds/effects/adminhelp_new.ogg differ diff --git a/sounds/effects/alert.ogg b/sounds/effects/alert.ogg index 69bc52bdb8..70c0b1a476 100644 Binary files a/sounds/effects/alert.ogg and b/sounds/effects/alert.ogg differ diff --git a/sounds/effects/alien_egg_burst.ogg b/sounds/effects/alien_egg_burst.ogg index bd9c65d105..9e0aba0bf4 100644 Binary files a/sounds/effects/alien_egg_burst.ogg and b/sounds/effects/alien_egg_burst.ogg differ diff --git a/sounds/effects/alien_egg_move.ogg b/sounds/effects/alien_egg_move.ogg index 00819bed18..32cbb41593 100644 Binary files a/sounds/effects/alien_egg_move.ogg and b/sounds/effects/alien_egg_move.ogg differ diff --git a/sounds/effects/alien_footstep_charge1.ogg b/sounds/effects/alien_footstep_charge1.ogg index e402b8bad4..e6c9ebf1da 100644 Binary files a/sounds/effects/alien_footstep_charge1.ogg and b/sounds/effects/alien_footstep_charge1.ogg differ diff --git a/sounds/effects/alien_footstep_charge2.ogg b/sounds/effects/alien_footstep_charge2.ogg index 70a3aa580a..f9cc273eaf 100644 Binary files a/sounds/effects/alien_footstep_charge2.ogg and b/sounds/effects/alien_footstep_charge2.ogg differ diff --git a/sounds/effects/alien_footstep_charge3.ogg b/sounds/effects/alien_footstep_charge3.ogg index 6ca66f6780..a04b9884a9 100644 Binary files a/sounds/effects/alien_footstep_charge3.ogg and b/sounds/effects/alien_footstep_charge3.ogg differ diff --git a/sounds/effects/alien_footstep_large1.ogg b/sounds/effects/alien_footstep_large1.ogg index 5292006352..3f4e115a6f 100644 Binary files a/sounds/effects/alien_footstep_large1.ogg and b/sounds/effects/alien_footstep_large1.ogg differ diff --git a/sounds/effects/alien_footstep_large2.ogg b/sounds/effects/alien_footstep_large2.ogg index c5ff7040a2..76f856400e 100644 Binary files a/sounds/effects/alien_footstep_large2.ogg and b/sounds/effects/alien_footstep_large2.ogg differ diff --git a/sounds/effects/alien_footstep_large3.ogg b/sounds/effects/alien_footstep_large3.ogg index d5a6d280db..d7b9472981 100644 Binary files a/sounds/effects/alien_footstep_large3.ogg and b/sounds/effects/alien_footstep_large3.ogg differ diff --git a/sounds/effects/alien_footstep_medium1.ogg b/sounds/effects/alien_footstep_medium1.ogg index dd68658f8a..6f7616674e 100644 Binary files a/sounds/effects/alien_footstep_medium1.ogg and b/sounds/effects/alien_footstep_medium1.ogg differ diff --git a/sounds/effects/alien_footstep_medium2.ogg b/sounds/effects/alien_footstep_medium2.ogg index 59acd63e2b..2f9ed962a3 100644 Binary files a/sounds/effects/alien_footstep_medium2.ogg and b/sounds/effects/alien_footstep_medium2.ogg differ diff --git a/sounds/effects/alien_footstep_medium3.ogg b/sounds/effects/alien_footstep_medium3.ogg index bc1b6589de..d6f56c00e0 100644 Binary files a/sounds/effects/alien_footstep_medium3.ogg and b/sounds/effects/alien_footstep_medium3.ogg differ diff --git a/sounds/effects/alien_resin_break1.ogg b/sounds/effects/alien_resin_break1.ogg index 030820b16a..cada4bbd9e 100644 Binary files a/sounds/effects/alien_resin_break1.ogg and b/sounds/effects/alien_resin_break1.ogg differ diff --git a/sounds/effects/alien_resin_break2.ogg b/sounds/effects/alien_resin_break2.ogg index bf2cd2053a..2437af6fd2 100644 Binary files a/sounds/effects/alien_resin_break2.ogg and b/sounds/effects/alien_resin_break2.ogg differ diff --git a/sounds/effects/alien_resin_break3.ogg b/sounds/effects/alien_resin_break3.ogg index 57e13bfc94..bb033982bc 100644 Binary files a/sounds/effects/alien_resin_break3.ogg and b/sounds/effects/alien_resin_break3.ogg differ diff --git a/sounds/effects/alien_resin_build1.ogg b/sounds/effects/alien_resin_build1.ogg index 3c47e7fa75..51450749a6 100644 Binary files a/sounds/effects/alien_resin_build1.ogg and b/sounds/effects/alien_resin_build1.ogg differ diff --git a/sounds/effects/alien_resin_build2.ogg b/sounds/effects/alien_resin_build2.ogg index 0c284424ea..882e205a25 100644 Binary files a/sounds/effects/alien_resin_build2.ogg and b/sounds/effects/alien_resin_build2.ogg differ diff --git a/sounds/effects/alien_resin_build3.ogg b/sounds/effects/alien_resin_build3.ogg index 0fec07a104..f561858ed8 100644 Binary files a/sounds/effects/alien_resin_build3.ogg and b/sounds/effects/alien_resin_build3.ogg differ diff --git a/sounds/effects/alien_resin_move1.ogg b/sounds/effects/alien_resin_move1.ogg index 078af38d07..82dab3b01d 100644 Binary files a/sounds/effects/alien_resin_move1.ogg and b/sounds/effects/alien_resin_move1.ogg differ diff --git a/sounds/effects/alien_resin_move2.ogg b/sounds/effects/alien_resin_move2.ogg index a740767254..4e153612c8 100644 Binary files a/sounds/effects/alien_resin_move2.ogg and b/sounds/effects/alien_resin_move2.ogg differ diff --git a/sounds/effects/alien_tail_swipe1.ogg b/sounds/effects/alien_tail_swipe1.ogg index bffe7f42d1..f5cf94f368 100644 Binary files a/sounds/effects/alien_tail_swipe1.ogg and b/sounds/effects/alien_tail_swipe1.ogg differ diff --git a/sounds/effects/alien_tail_swipe2.ogg b/sounds/effects/alien_tail_swipe2.ogg index 5705cf9051..01612f2362 100644 Binary files a/sounds/effects/alien_tail_swipe2.ogg and b/sounds/effects/alien_tail_swipe2.ogg differ diff --git a/sounds/effects/alien_tail_swipe3.ogg b/sounds/effects/alien_tail_swipe3.ogg index bd6c72a60f..9d6830bb52 100644 Binary files a/sounds/effects/alien_tail_swipe3.ogg and b/sounds/effects/alien_tail_swipe3.ogg differ diff --git a/sounds/effects/alien_ventcrawl1.ogg b/sounds/effects/alien_ventcrawl1.ogg index 278c7ad06b..fc7bc5dac4 100644 Binary files a/sounds/effects/alien_ventcrawl1.ogg and b/sounds/effects/alien_ventcrawl1.ogg differ diff --git a/sounds/effects/alien_ventcrawl2.ogg b/sounds/effects/alien_ventcrawl2.ogg index db6266f4b4..9db677e54c 100644 Binary files a/sounds/effects/alien_ventcrawl2.ogg and b/sounds/effects/alien_ventcrawl2.ogg differ diff --git a/sounds/effects/alien_ventpass1.ogg b/sounds/effects/alien_ventpass1.ogg index 4cc3799da6..9c4ac09dff 100644 Binary files a/sounds/effects/alien_ventpass1.ogg and b/sounds/effects/alien_ventpass1.ogg differ diff --git a/sounds/effects/alien_ventpass2.ogg b/sounds/effects/alien_ventpass2.ogg index c81d761d5e..911715d87d 100644 Binary files a/sounds/effects/alien_ventpass2.ogg and b/sounds/effects/alien_ventpass2.ogg differ diff --git a/sounds/effects/angrybug.ogg b/sounds/effects/angrybug.ogg index b6086a16cd..756399cf53 100644 Binary files a/sounds/effects/angrybug.ogg and b/sounds/effects/angrybug.ogg differ diff --git a/sounds/effects/attackblob.ogg b/sounds/effects/attackblob.ogg index 57dbda2fd2..1a289ddfc7 100644 Binary files a/sounds/effects/attackblob.ogg and b/sounds/effects/attackblob.ogg differ diff --git a/sounds/effects/bamf.ogg b/sounds/effects/bamf.ogg index 541153672a..680ce8ef68 100644 Binary files a/sounds/effects/bamf.ogg and b/sounds/effects/bamf.ogg differ diff --git a/sounds/effects/bang.ogg b/sounds/effects/bang.ogg index 87c535e486..a8a2b6d7c9 100644 Binary files a/sounds/effects/bang.ogg and b/sounds/effects/bang.ogg differ diff --git a/sounds/effects/bangtaper.ogg b/sounds/effects/bangtaper.ogg index 28979696f9..6aeb064f16 100644 Binary files a/sounds/effects/bangtaper.ogg and b/sounds/effects/bangtaper.ogg differ diff --git a/sounds/effects/barbed_wire_movement.ogg b/sounds/effects/barbed_wire_movement.ogg index 787be1b69e..bbe211fe3c 100644 Binary files a/sounds/effects/barbed_wire_movement.ogg and b/sounds/effects/barbed_wire_movement.ogg differ diff --git a/sounds/effects/basscannon.ogg b/sounds/effects/basscannon.ogg index c0bc8efe44..22e00f4fe5 100644 Binary files a/sounds/effects/basscannon.ogg and b/sounds/effects/basscannon.ogg differ diff --git a/sounds/effects/beam.ogg b/sounds/effects/beam.ogg index 009f1cbb52..20f214e883 100644 Binary files a/sounds/effects/beam.ogg and b/sounds/effects/beam.ogg differ diff --git a/sounds/effects/bells.ogg b/sounds/effects/bells.ogg index 7ddd07b0b7..ef649b3ce0 100644 Binary files a/sounds/effects/bells.ogg and b/sounds/effects/bells.ogg differ diff --git a/sounds/effects/binoctarget.ogg b/sounds/effects/binoctarget.ogg index 49ec632db8..463dce5f9c 100644 Binary files a/sounds/effects/binoctarget.ogg and b/sounds/effects/binoctarget.ogg differ diff --git a/sounds/effects/blobattack.ogg b/sounds/effects/blobattack.ogg index eec2ee571f..840bdba094 100644 Binary files a/sounds/effects/blobattack.ogg and b/sounds/effects/blobattack.ogg differ diff --git a/sounds/effects/bomb_fall.ogg b/sounds/effects/bomb_fall.ogg index 434112e59c..9fda150c31 100644 Binary files a/sounds/effects/bomb_fall.ogg and b/sounds/effects/bomb_fall.ogg differ diff --git a/sounds/effects/bone_break1.ogg b/sounds/effects/bone_break1.ogg index ac459e926e..ae3a0c914f 100644 Binary files a/sounds/effects/bone_break1.ogg and b/sounds/effects/bone_break1.ogg differ diff --git a/sounds/effects/bone_break2.ogg b/sounds/effects/bone_break2.ogg index dd2d22ec79..671d45caea 100644 Binary files a/sounds/effects/bone_break2.ogg and b/sounds/effects/bone_break2.ogg differ diff --git a/sounds/effects/bone_break3.ogg b/sounds/effects/bone_break3.ogg index aa2537f894..fbd1937230 100644 Binary files a/sounds/effects/bone_break3.ogg and b/sounds/effects/bone_break3.ogg differ diff --git a/sounds/effects/bone_break4.ogg b/sounds/effects/bone_break4.ogg index 9f66324be3..aa6db1ac47 100644 Binary files a/sounds/effects/bone_break4.ogg and b/sounds/effects/bone_break4.ogg differ diff --git a/sounds/effects/bone_break5.ogg b/sounds/effects/bone_break5.ogg index bbdfac1ecf..5b7d4ddf22 100644 Binary files a/sounds/effects/bone_break5.ogg and b/sounds/effects/bone_break5.ogg differ diff --git a/sounds/effects/bone_break6.ogg b/sounds/effects/bone_break6.ogg index dfee0e9baa..c6defe522e 100644 Binary files a/sounds/effects/bone_break6.ogg and b/sounds/effects/bone_break6.ogg differ diff --git a/sounds/effects/bone_break7.ogg b/sounds/effects/bone_break7.ogg index d41cc8d7cf..9f55f578f5 100644 Binary files a/sounds/effects/bone_break7.ogg and b/sounds/effects/bone_break7.ogg differ diff --git a/sounds/effects/bonebreak1.ogg b/sounds/effects/bonebreak1.ogg index 96e6487a24..6d8807c827 100644 Binary files a/sounds/effects/bonebreak1.ogg and b/sounds/effects/bonebreak1.ogg differ diff --git a/sounds/effects/bonebreak2.ogg b/sounds/effects/bonebreak2.ogg index 6f8c3c3806..d390cabe06 100644 Binary files a/sounds/effects/bonebreak2.ogg and b/sounds/effects/bonebreak2.ogg differ diff --git a/sounds/effects/bonebreak3.ogg b/sounds/effects/bonebreak3.ogg index 54b90aa847..6c56bcd58a 100644 Binary files a/sounds/effects/bonebreak3.ogg and b/sounds/effects/bonebreak3.ogg differ diff --git a/sounds/effects/bonebreak4.ogg b/sounds/effects/bonebreak4.ogg index 2139d1ad9e..1788d6dca8 100644 Binary files a/sounds/effects/bonebreak4.ogg and b/sounds/effects/bonebreak4.ogg differ diff --git a/sounds/effects/bonerattle.ogg b/sounds/effects/bonerattle.ogg index 0d0a71cd6b..ba75bd0bc6 100644 Binary files a/sounds/effects/bonerattle.ogg and b/sounds/effects/bonerattle.ogg differ diff --git a/sounds/effects/break_stone.ogg b/sounds/effects/break_stone.ogg index 711fd50d48..e2f8208afd 100644 Binary files a/sounds/effects/break_stone.ogg and b/sounds/effects/break_stone.ogg differ diff --git a/sounds/effects/bubbles.ogg b/sounds/effects/bubbles.ogg index 39af85cf08..6283af1fd9 100644 Binary files a/sounds/effects/bubbles.ogg and b/sounds/effects/bubbles.ogg differ diff --git a/sounds/effects/bubbles2.ogg b/sounds/effects/bubbles2.ogg index 6cd52f0f43..a8f81f1890 100644 Binary files a/sounds/effects/bubbles2.ogg and b/sounds/effects/bubbles2.ogg differ diff --git a/sounds/effects/buckle.ogg b/sounds/effects/buckle.ogg index 4196c9efb3..980e058a0e 100644 Binary files a/sounds/effects/buckle.ogg and b/sounds/effects/buckle.ogg differ diff --git a/sounds/effects/cannon30.ogg b/sounds/effects/cannon30.ogg index 922b8f0e55..aaeb45157b 100644 Binary files a/sounds/effects/cannon30.ogg and b/sounds/effects/cannon30.ogg differ diff --git a/sounds/effects/canopen.ogg b/sounds/effects/canopen.ogg index 8e266c30b4..0f3d36175e 100644 Binary files a/sounds/effects/canopen.ogg and b/sounds/effects/canopen.ogg differ diff --git a/sounds/effects/cascade.ogg b/sounds/effects/cascade.ogg index 9de7b01b0c..e5749c305f 100644 Binary files a/sounds/effects/cascade.ogg and b/sounds/effects/cascade.ogg differ diff --git a/sounds/effects/caution.ogg b/sounds/effects/caution.ogg index c30886dfc3..7d15adb63a 100644 Binary files a/sounds/effects/caution.ogg and b/sounds/effects/caution.ogg differ diff --git a/sounds/effects/checkout.ogg b/sounds/effects/checkout.ogg index d1e9015b64..b3a841abfa 100644 Binary files a/sounds/effects/checkout.ogg and b/sounds/effects/checkout.ogg differ diff --git a/sounds/effects/clang.ogg b/sounds/effects/clang.ogg index 11090f4ce3..1dbd3ff57c 100644 Binary files a/sounds/effects/clang.ogg and b/sounds/effects/clang.ogg differ diff --git a/sounds/effects/cloak_scout_off.ogg b/sounds/effects/cloak_scout_off.ogg index 2281c03a74..e08a24abd2 100644 Binary files a/sounds/effects/cloak_scout_off.ogg and b/sounds/effects/cloak_scout_off.ogg differ diff --git a/sounds/effects/cloak_scout_on.ogg b/sounds/effects/cloak_scout_on.ogg index 366b10d990..991e06186b 100644 Binary files a/sounds/effects/cloak_scout_on.ogg and b/sounds/effects/cloak_scout_on.ogg differ diff --git a/sounds/effects/closet_close.ogg b/sounds/effects/closet_close.ogg index 56d9594ee8..58e3d6403a 100644 Binary files a/sounds/effects/closet_close.ogg and b/sounds/effects/closet_close.ogg differ diff --git a/sounds/effects/closet_open.ogg b/sounds/effects/closet_open.ogg index 6e7a02e13a..f8c35adc08 100644 Binary files a/sounds/effects/closet_open.ogg and b/sounds/effects/closet_open.ogg differ diff --git a/sounds/effects/clownstep1.ogg b/sounds/effects/clownstep1.ogg index 740fb5fd9f..66caf9a3f4 100644 Binary files a/sounds/effects/clownstep1.ogg and b/sounds/effects/clownstep1.ogg differ diff --git a/sounds/effects/clownstep2.ogg b/sounds/effects/clownstep2.ogg index 5a5426b3fe..06977f48be 100644 Binary files a/sounds/effects/clownstep2.ogg and b/sounds/effects/clownstep2.ogg differ diff --git a/sounds/effects/clue1.ogg b/sounds/effects/clue1.ogg index 5ce55ff7ab..efeda91962 100644 Binary files a/sounds/effects/clue1.ogg and b/sounds/effects/clue1.ogg differ diff --git a/sounds/effects/clue2.ogg b/sounds/effects/clue2.ogg index eea3496f16..536f606a7f 100644 Binary files a/sounds/effects/clue2.ogg and b/sounds/effects/clue2.ogg differ diff --git a/sounds/effects/coin_flip.ogg b/sounds/effects/coin_flip.ogg index 81176acc57..13cd375e38 100644 Binary files a/sounds/effects/coin_flip.ogg and b/sounds/effects/coin_flip.ogg differ diff --git a/sounds/effects/compbeep1.ogg b/sounds/effects/compbeep1.ogg index a24b794e20..b9a876402c 100644 Binary files a/sounds/effects/compbeep1.ogg and b/sounds/effects/compbeep1.ogg differ diff --git a/sounds/effects/compbeep2.ogg b/sounds/effects/compbeep2.ogg index 34fa87dc07..e4e1c65e56 100644 Binary files a/sounds/effects/compbeep2.ogg and b/sounds/effects/compbeep2.ogg differ diff --git a/sounds/effects/compbeep3.ogg b/sounds/effects/compbeep3.ogg index 14ee70bb73..72d578761c 100644 Binary files a/sounds/effects/compbeep3.ogg and b/sounds/effects/compbeep3.ogg differ diff --git a/sounds/effects/compbeep4.ogg b/sounds/effects/compbeep4.ogg index 49f55575b1..d6fe8910a2 100644 Binary files a/sounds/effects/compbeep4.ogg and b/sounds/effects/compbeep4.ogg differ diff --git a/sounds/effects/compbeep5.ogg b/sounds/effects/compbeep5.ogg index 6233072ee2..b6c5c9d22e 100644 Binary files a/sounds/effects/compbeep5.ogg and b/sounds/effects/compbeep5.ogg differ diff --git a/sounds/effects/cowboysting.ogg b/sounds/effects/cowboysting.ogg index ef8870489b..e77ebf9cd7 100644 Binary files a/sounds/effects/cowboysting.ogg and b/sounds/effects/cowboysting.ogg differ diff --git a/sounds/effects/death_heartbeat.ogg b/sounds/effects/death_heartbeat.ogg index 219f41ace5..55ab4b2a71 100644 Binary files a/sounds/effects/death_heartbeat.ogg and b/sounds/effects/death_heartbeat.ogg differ diff --git a/sounds/effects/ding.ogg b/sounds/effects/ding.ogg index 33516f793f..684fa1c23b 100644 Binary files a/sounds/effects/ding.ogg and b/sounds/effects/ding.ogg differ diff --git a/sounds/effects/ding2.ogg b/sounds/effects/ding2.ogg index b8bd61b217..16fae2f432 100644 Binary files a/sounds/effects/ding2.ogg and b/sounds/effects/ding2.ogg differ diff --git a/sounds/effects/doorcreaky.ogg b/sounds/effects/doorcreaky.ogg index 3d60aca56b..9b8b11bc58 100644 Binary files a/sounds/effects/doorcreaky.ogg and b/sounds/effects/doorcreaky.ogg differ diff --git a/sounds/effects/drill.ogg b/sounds/effects/drill.ogg index 23230b3d98..fd727da0dd 100644 Binary files a/sounds/effects/drill.ogg and b/sounds/effects/drill.ogg differ diff --git a/sounds/effects/engine_cargoshuttle_landing.ogg b/sounds/effects/engine_cargoshuttle_landing.ogg index ede7fea831..268a4bf8a9 100644 Binary files a/sounds/effects/engine_cargoshuttle_landing.ogg and b/sounds/effects/engine_cargoshuttle_landing.ogg differ diff --git a/sounds/effects/engine_cargoshuttle_startup.ogg b/sounds/effects/engine_cargoshuttle_startup.ogg index f8a77d8f33..7d8b9fb42a 100644 Binary files a/sounds/effects/engine_cargoshuttle_startup.ogg and b/sounds/effects/engine_cargoshuttle_startup.ogg differ diff --git a/sounds/effects/engine_landing.ogg b/sounds/effects/engine_landing.ogg index 03fb649a97..20aed12348 100644 Binary files a/sounds/effects/engine_landing.ogg and b/sounds/effects/engine_landing.ogg differ diff --git a/sounds/effects/engine_startup.ogg b/sounds/effects/engine_startup.ogg index 473d01a464..833a5239ed 100644 Binary files a/sounds/effects/engine_startup.ogg and b/sounds/effects/engine_startup.ogg differ diff --git a/sounds/effects/escape_pod_launch.ogg b/sounds/effects/escape_pod_launch.ogg index 85e4f268a2..10905ccd16 100644 Binary files a/sounds/effects/escape_pod_launch.ogg and b/sounds/effects/escape_pod_launch.ogg differ diff --git a/sounds/effects/escape_pod_warmup.ogg b/sounds/effects/escape_pod_warmup.ogg index 17876f4da1..05dae85305 100644 Binary files a/sounds/effects/escape_pod_warmup.ogg and b/sounds/effects/escape_pod_warmup.ogg differ diff --git a/sounds/effects/explosionfar.ogg b/sounds/effects/explosionfar.ogg index aecdd0aab1..c508923f89 100644 Binary files a/sounds/effects/explosionfar.ogg and b/sounds/effects/explosionfar.ogg differ diff --git a/sounds/effects/extin.ogg b/sounds/effects/extin.ogg index 30bbebeb11..bdcec9ef0c 100644 Binary files a/sounds/effects/extin.ogg and b/sounds/effects/extin.ogg differ diff --git a/sounds/effects/extinguish.ogg b/sounds/effects/extinguish.ogg index d59ea9f32f..449bda3da6 100644 Binary files a/sounds/effects/extinguish.ogg and b/sounds/effects/extinguish.ogg differ diff --git a/sounds/effects/extout.ogg b/sounds/effects/extout.ogg index e1716a99d1..90ad5679e1 100644 Binary files a/sounds/effects/extout.ogg and b/sounds/effects/extout.ogg differ diff --git a/sounds/effects/fastbeep.ogg b/sounds/effects/fastbeep.ogg index ae4a9e9101..df9256ad15 100644 Binary files a/sounds/effects/fastbeep.ogg and b/sounds/effects/fastbeep.ogg differ diff --git a/sounds/effects/fire_crackle.ogg b/sounds/effects/fire_crackle.ogg index 8156edf797..f53e95bcfa 100644 Binary files a/sounds/effects/fire_crackle.ogg and b/sounds/effects/fire_crackle.ogg differ diff --git a/sounds/effects/flare_end.ogg b/sounds/effects/flare_end.ogg index 7dc06a022c..e69de29bb2 100644 Binary files a/sounds/effects/flare_end.ogg and b/sounds/effects/flare_end.ogg differ diff --git a/sounds/effects/flare_start.ogg b/sounds/effects/flare_start.ogg index ddf937f4cd..e69de29bb2 100644 Binary files a/sounds/effects/flare_start.ogg and b/sounds/effects/flare_start.ogg differ diff --git a/sounds/effects/flashlight.ogg b/sounds/effects/flashlight.ogg index 627675997c..f030e1d7a1 100644 Binary files a/sounds/effects/flashlight.ogg and b/sounds/effects/flashlight.ogg differ diff --git a/sounds/effects/footstep/asteroid1.ogg b/sounds/effects/footstep/asteroid1.ogg index 1cb215dc78..30e2d821e9 100644 Binary files a/sounds/effects/footstep/asteroid1.ogg and b/sounds/effects/footstep/asteroid1.ogg differ diff --git a/sounds/effects/footstep/asteroid2.ogg b/sounds/effects/footstep/asteroid2.ogg index 331d0ef241..89483e750c 100644 Binary files a/sounds/effects/footstep/asteroid2.ogg and b/sounds/effects/footstep/asteroid2.ogg differ diff --git a/sounds/effects/footstep/asteroid3.ogg b/sounds/effects/footstep/asteroid3.ogg index 90fbf251a0..22a99487ff 100644 Binary files a/sounds/effects/footstep/asteroid3.ogg and b/sounds/effects/footstep/asteroid3.ogg differ diff --git a/sounds/effects/footstep/asteroid4.ogg b/sounds/effects/footstep/asteroid4.ogg index 186ff17a43..053b255ed8 100644 Binary files a/sounds/effects/footstep/asteroid4.ogg and b/sounds/effects/footstep/asteroid4.ogg differ diff --git a/sounds/effects/footstep/asteroid5.ogg b/sounds/effects/footstep/asteroid5.ogg index 0ea4c962d0..18b3bb5b38 100644 Binary files a/sounds/effects/footstep/asteroid5.ogg and b/sounds/effects/footstep/asteroid5.ogg differ diff --git a/sounds/effects/footstep/blank.ogg b/sounds/effects/footstep/blank.ogg index a8732ae21e..818c1d53ab 100644 Binary files a/sounds/effects/footstep/blank.ogg and b/sounds/effects/footstep/blank.ogg differ diff --git a/sounds/effects/footstep/carpet1.ogg b/sounds/effects/footstep/carpet1.ogg index 2735a9bf3d..a41a893cad 100644 Binary files a/sounds/effects/footstep/carpet1.ogg and b/sounds/effects/footstep/carpet1.ogg differ diff --git a/sounds/effects/footstep/carpet2.ogg b/sounds/effects/footstep/carpet2.ogg index 07e5f2320a..4ebe5ec981 100644 Binary files a/sounds/effects/footstep/carpet2.ogg and b/sounds/effects/footstep/carpet2.ogg differ diff --git a/sounds/effects/footstep/carpet3.ogg b/sounds/effects/footstep/carpet3.ogg index edb0193f6e..4c27587e90 100644 Binary files a/sounds/effects/footstep/carpet3.ogg and b/sounds/effects/footstep/carpet3.ogg differ diff --git a/sounds/effects/footstep/carpet4.ogg b/sounds/effects/footstep/carpet4.ogg index c9598e2b73..391ded4a9d 100644 Binary files a/sounds/effects/footstep/carpet4.ogg and b/sounds/effects/footstep/carpet4.ogg differ diff --git a/sounds/effects/footstep/carpet5.ogg b/sounds/effects/footstep/carpet5.ogg index 076818323a..48c4c0c2c8 100644 Binary files a/sounds/effects/footstep/carpet5.ogg and b/sounds/effects/footstep/carpet5.ogg differ diff --git a/sounds/effects/footstep/catwalk1.ogg b/sounds/effects/footstep/catwalk1.ogg index 5d6ad7b4a0..4860ae699d 100644 Binary files a/sounds/effects/footstep/catwalk1.ogg and b/sounds/effects/footstep/catwalk1.ogg differ diff --git a/sounds/effects/footstep/catwalk2.ogg b/sounds/effects/footstep/catwalk2.ogg index 07a624dbe4..71c9731710 100644 Binary files a/sounds/effects/footstep/catwalk2.ogg and b/sounds/effects/footstep/catwalk2.ogg differ diff --git a/sounds/effects/footstep/catwalk3.ogg b/sounds/effects/footstep/catwalk3.ogg index acff22e386..d8ccd8319d 100644 Binary files a/sounds/effects/footstep/catwalk3.ogg and b/sounds/effects/footstep/catwalk3.ogg differ diff --git a/sounds/effects/footstep/catwalk4.ogg b/sounds/effects/footstep/catwalk4.ogg index 7235a6b9fe..ac12642511 100644 Binary files a/sounds/effects/footstep/catwalk4.ogg and b/sounds/effects/footstep/catwalk4.ogg differ diff --git a/sounds/effects/footstep/catwalk5.ogg b/sounds/effects/footstep/catwalk5.ogg index c33f248acd..ff0a8d281d 100644 Binary files a/sounds/effects/footstep/catwalk5.ogg and b/sounds/effects/footstep/catwalk5.ogg differ diff --git a/sounds/effects/footstep/floor1.ogg b/sounds/effects/footstep/floor1.ogg index 1e3e155839..0d6a1375f7 100644 Binary files a/sounds/effects/footstep/floor1.ogg and b/sounds/effects/footstep/floor1.ogg differ diff --git a/sounds/effects/footstep/floor2.ogg b/sounds/effects/footstep/floor2.ogg index cce5a25d82..f2979400d2 100644 Binary files a/sounds/effects/footstep/floor2.ogg and b/sounds/effects/footstep/floor2.ogg differ diff --git a/sounds/effects/footstep/floor3.ogg b/sounds/effects/footstep/floor3.ogg index 16ab67f729..8d716e60fe 100644 Binary files a/sounds/effects/footstep/floor3.ogg and b/sounds/effects/footstep/floor3.ogg differ diff --git a/sounds/effects/footstep/floor4.ogg b/sounds/effects/footstep/floor4.ogg index 9ef15430ff..2ffa8be2d9 100644 Binary files a/sounds/effects/footstep/floor4.ogg and b/sounds/effects/footstep/floor4.ogg differ diff --git a/sounds/effects/footstep/floor5.ogg b/sounds/effects/footstep/floor5.ogg index 0f6a66057d..5b700a1e6e 100644 Binary files a/sounds/effects/footstep/floor5.ogg and b/sounds/effects/footstep/floor5.ogg differ diff --git a/sounds/effects/footstep/grass1.ogg b/sounds/effects/footstep/grass1.ogg index 357547cd77..ea93f345b0 100644 Binary files a/sounds/effects/footstep/grass1.ogg and b/sounds/effects/footstep/grass1.ogg differ diff --git a/sounds/effects/footstep/grass2.ogg b/sounds/effects/footstep/grass2.ogg index 75bf8657e8..660898a45c 100644 Binary files a/sounds/effects/footstep/grass2.ogg and b/sounds/effects/footstep/grass2.ogg differ diff --git a/sounds/effects/footstep/grass3.ogg b/sounds/effects/footstep/grass3.ogg index 04f82872b1..ce1b3d7cc2 100644 Binary files a/sounds/effects/footstep/grass3.ogg and b/sounds/effects/footstep/grass3.ogg differ diff --git a/sounds/effects/footstep/grass4.ogg b/sounds/effects/footstep/grass4.ogg index 6d736f2fb2..0efa00388f 100644 Binary files a/sounds/effects/footstep/grass4.ogg and b/sounds/effects/footstep/grass4.ogg differ diff --git a/sounds/effects/footstep/hull1.ogg b/sounds/effects/footstep/hull1.ogg index 615df6c550..ecfc12c662 100644 Binary files a/sounds/effects/footstep/hull1.ogg and b/sounds/effects/footstep/hull1.ogg differ diff --git a/sounds/effects/footstep/hull2.ogg b/sounds/effects/footstep/hull2.ogg index 3aecb743f7..ef76c7526f 100644 Binary files a/sounds/effects/footstep/hull2.ogg and b/sounds/effects/footstep/hull2.ogg differ diff --git a/sounds/effects/footstep/hull3.ogg b/sounds/effects/footstep/hull3.ogg index 03339131f6..d3547c8f7d 100644 Binary files a/sounds/effects/footstep/hull3.ogg and b/sounds/effects/footstep/hull3.ogg differ diff --git a/sounds/effects/footstep/hull4.ogg b/sounds/effects/footstep/hull4.ogg index 2fba89d318..de2cde5d8a 100644 Binary files a/sounds/effects/footstep/hull4.ogg and b/sounds/effects/footstep/hull4.ogg differ diff --git a/sounds/effects/footstep/hull5.ogg b/sounds/effects/footstep/hull5.ogg index 10c5912b97..808d2a79cc 100644 Binary files a/sounds/effects/footstep/hull5.ogg and b/sounds/effects/footstep/hull5.ogg differ diff --git a/sounds/effects/footstep/lava1.ogg b/sounds/effects/footstep/lava1.ogg index e26dbaf8bd..262261ab4d 100644 Binary files a/sounds/effects/footstep/lava1.ogg and b/sounds/effects/footstep/lava1.ogg differ diff --git a/sounds/effects/footstep/lava2.ogg b/sounds/effects/footstep/lava2.ogg index 90b73f840b..7ece5aee9e 100644 Binary files a/sounds/effects/footstep/lava2.ogg and b/sounds/effects/footstep/lava2.ogg differ diff --git a/sounds/effects/footstep/lava3.ogg b/sounds/effects/footstep/lava3.ogg index 3436381510..0e322402be 100644 Binary files a/sounds/effects/footstep/lava3.ogg and b/sounds/effects/footstep/lava3.ogg differ diff --git a/sounds/effects/footstep/plating1.ogg b/sounds/effects/footstep/plating1.ogg index 0df770e663..046f3df98f 100644 Binary files a/sounds/effects/footstep/plating1.ogg and b/sounds/effects/footstep/plating1.ogg differ diff --git a/sounds/effects/footstep/plating2.ogg b/sounds/effects/footstep/plating2.ogg index 314b9133d2..8c0723a0a9 100644 Binary files a/sounds/effects/footstep/plating2.ogg and b/sounds/effects/footstep/plating2.ogg differ diff --git a/sounds/effects/footstep/plating3.ogg b/sounds/effects/footstep/plating3.ogg index 5c571d77eb..81a52af678 100644 Binary files a/sounds/effects/footstep/plating3.ogg and b/sounds/effects/footstep/plating3.ogg differ diff --git a/sounds/effects/footstep/plating4.ogg b/sounds/effects/footstep/plating4.ogg index 5953262764..839aa27b3a 100644 Binary files a/sounds/effects/footstep/plating4.ogg and b/sounds/effects/footstep/plating4.ogg differ diff --git a/sounds/effects/footstep/plating5.ogg b/sounds/effects/footstep/plating5.ogg index 4676a637a6..1f28c4d158 100644 Binary files a/sounds/effects/footstep/plating5.ogg and b/sounds/effects/footstep/plating5.ogg differ diff --git a/sounds/effects/footstep/sand1.ogg b/sounds/effects/footstep/sand1.ogg index 63de531f22..41cf7aa478 100644 Binary files a/sounds/effects/footstep/sand1.ogg and b/sounds/effects/footstep/sand1.ogg differ diff --git a/sounds/effects/footstep/sand2.ogg b/sounds/effects/footstep/sand2.ogg index e9d597fd94..7eaefdc9f5 100644 Binary files a/sounds/effects/footstep/sand2.ogg and b/sounds/effects/footstep/sand2.ogg differ diff --git a/sounds/effects/footstep/sand3.ogg b/sounds/effects/footstep/sand3.ogg index 51c92e49f3..7a0242dc4b 100644 Binary files a/sounds/effects/footstep/sand3.ogg and b/sounds/effects/footstep/sand3.ogg differ diff --git a/sounds/effects/footstep/sand4.ogg b/sounds/effects/footstep/sand4.ogg index 9bc430db51..14a29c0b7b 100644 Binary files a/sounds/effects/footstep/sand4.ogg and b/sounds/effects/footstep/sand4.ogg differ diff --git a/sounds/effects/footstep/scp049/plating1.ogg b/sounds/effects/footstep/scp049/plating1.ogg index 865904e86a..f35ee673f1 100644 Binary files a/sounds/effects/footstep/scp049/plating1.ogg and b/sounds/effects/footstep/scp049/plating1.ogg differ diff --git a/sounds/effects/footstep/scp049/plating2.ogg b/sounds/effects/footstep/scp049/plating2.ogg index 77e1780d74..8a9776ec03 100644 Binary files a/sounds/effects/footstep/scp049/plating2.ogg and b/sounds/effects/footstep/scp049/plating2.ogg differ diff --git a/sounds/effects/footstep/scp049/plating3.ogg b/sounds/effects/footstep/scp049/plating3.ogg index f5e9aa8c37..3bfc14045c 100644 Binary files a/sounds/effects/footstep/scp049/plating3.ogg and b/sounds/effects/footstep/scp049/plating3.ogg differ diff --git a/sounds/effects/footstep/scp106/step1.ogg b/sounds/effects/footstep/scp106/step1.ogg index 490134898d..08747f4384 100644 Binary files a/sounds/effects/footstep/scp106/step1.ogg and b/sounds/effects/footstep/scp106/step1.ogg differ diff --git a/sounds/effects/footstep/scp106/step2.ogg b/sounds/effects/footstep/scp106/step2.ogg index aac49a7fe3..4a50f70a30 100644 Binary files a/sounds/effects/footstep/scp106/step2.ogg and b/sounds/effects/footstep/scp106/step2.ogg differ diff --git a/sounds/effects/footstep/scp106/step3.ogg b/sounds/effects/footstep/scp106/step3.ogg index 897380e32e..a5731783de 100644 Binary files a/sounds/effects/footstep/scp106/step3.ogg and b/sounds/effects/footstep/scp106/step3.ogg differ diff --git a/sounds/effects/footstep/snow1.ogg b/sounds/effects/footstep/snow1.ogg index 8434e8ee36..47e1519fdc 100644 Binary files a/sounds/effects/footstep/snow1.ogg and b/sounds/effects/footstep/snow1.ogg differ diff --git a/sounds/effects/footstep/snow2.ogg b/sounds/effects/footstep/snow2.ogg index 8e7e6efc8d..540ccab6e1 100644 Binary files a/sounds/effects/footstep/snow2.ogg and b/sounds/effects/footstep/snow2.ogg differ diff --git a/sounds/effects/footstep/snow3.ogg b/sounds/effects/footstep/snow3.ogg index ee468aa3f4..57fe8875e5 100644 Binary files a/sounds/effects/footstep/snow3.ogg and b/sounds/effects/footstep/snow3.ogg differ diff --git a/sounds/effects/footstep/snow4.ogg b/sounds/effects/footstep/snow4.ogg index b180f10ba5..c525ab762f 100644 Binary files a/sounds/effects/footstep/snow4.ogg and b/sounds/effects/footstep/snow4.ogg differ diff --git a/sounds/effects/footstep/snow5.ogg b/sounds/effects/footstep/snow5.ogg index ec5d1a47f9..e9617ac9bd 100644 Binary files a/sounds/effects/footstep/snow5.ogg and b/sounds/effects/footstep/snow5.ogg differ diff --git a/sounds/effects/footstep/special/servostep.ogg b/sounds/effects/footstep/special/servostep.ogg index 757b4523da..761de64986 100644 Binary files a/sounds/effects/footstep/special/servostep.ogg and b/sounds/effects/footstep/special/servostep.ogg differ diff --git a/sounds/effects/footstep/water1.ogg b/sounds/effects/footstep/water1.ogg index f22cbf2848..274f680615 100644 Binary files a/sounds/effects/footstep/water1.ogg and b/sounds/effects/footstep/water1.ogg differ diff --git a/sounds/effects/footstep/water2.ogg b/sounds/effects/footstep/water2.ogg index e2a47650c6..8ca42541ab 100644 Binary files a/sounds/effects/footstep/water2.ogg and b/sounds/effects/footstep/water2.ogg differ diff --git a/sounds/effects/footstep/water3.ogg b/sounds/effects/footstep/water3.ogg index 97ce152a5c..c6430d6a2b 100644 Binary files a/sounds/effects/footstep/water3.ogg and b/sounds/effects/footstep/water3.ogg differ diff --git a/sounds/effects/footstep/water4.ogg b/sounds/effects/footstep/water4.ogg index 5778a52560..c58c6bc161 100644 Binary files a/sounds/effects/footstep/water4.ogg and b/sounds/effects/footstep/water4.ogg differ diff --git a/sounds/effects/footstep/wood1.ogg b/sounds/effects/footstep/wood1.ogg index c76fc423fc..e0517d9bb3 100644 Binary files a/sounds/effects/footstep/wood1.ogg and b/sounds/effects/footstep/wood1.ogg differ diff --git a/sounds/effects/footstep/wood2.ogg b/sounds/effects/footstep/wood2.ogg index 71dc1aa967..987bad456f 100644 Binary files a/sounds/effects/footstep/wood2.ogg and b/sounds/effects/footstep/wood2.ogg differ diff --git a/sounds/effects/footstep/wood3.ogg b/sounds/effects/footstep/wood3.ogg index bf86889006..9caabefad7 100644 Binary files a/sounds/effects/footstep/wood3.ogg and b/sounds/effects/footstep/wood3.ogg differ diff --git a/sounds/effects/footstep/wood4.ogg b/sounds/effects/footstep/wood4.ogg index 44734425ce..451ac699fd 100644 Binary files a/sounds/effects/footstep/wood4.ogg and b/sounds/effects/footstep/wood4.ogg differ diff --git a/sounds/effects/footstep/wood5.ogg b/sounds/effects/footstep/wood5.ogg index 5ad4fa81e7..36d392da40 100644 Binary files a/sounds/effects/footstep/wood5.ogg and b/sounds/effects/footstep/wood5.ogg differ diff --git a/sounds/effects/ghost.ogg b/sounds/effects/ghost.ogg index e6b6da36e5..11c478cf0a 100644 Binary files a/sounds/effects/ghost.ogg and b/sounds/effects/ghost.ogg differ diff --git a/sounds/effects/ghost2.ogg b/sounds/effects/ghost2.ogg index ed384e40d2..7b3a77604b 100644 Binary files a/sounds/effects/ghost2.ogg and b/sounds/effects/ghost2.ogg differ diff --git a/sounds/effects/glass_crack1.ogg b/sounds/effects/glass_crack1.ogg index 0221b238d7..4db826689f 100644 Binary files a/sounds/effects/glass_crack1.ogg and b/sounds/effects/glass_crack1.ogg differ diff --git a/sounds/effects/glass_crack2.ogg b/sounds/effects/glass_crack2.ogg index e5e3702458..dfa5bd6cdb 100644 Binary files a/sounds/effects/glass_crack2.ogg and b/sounds/effects/glass_crack2.ogg differ diff --git a/sounds/effects/glass_crack3.ogg b/sounds/effects/glass_crack3.ogg index 631c584462..0c1160720b 100644 Binary files a/sounds/effects/glass_crack3.ogg and b/sounds/effects/glass_crack3.ogg differ diff --git a/sounds/effects/glass_crack4.ogg b/sounds/effects/glass_crack4.ogg index 5d6302e88b..24e45c0075 100644 Binary files a/sounds/effects/glass_crack4.ogg and b/sounds/effects/glass_crack4.ogg differ diff --git a/sounds/effects/glass_step.ogg b/sounds/effects/glass_step.ogg index 2793056b90..a544235a3a 100644 Binary files a/sounds/effects/glass_step.ogg and b/sounds/effects/glass_step.ogg differ diff --git a/sounds/effects/glassbash.ogg b/sounds/effects/glassbash.ogg index 59931e6a73..865fec8473 100644 Binary files a/sounds/effects/glassbash.ogg and b/sounds/effects/glassbash.ogg differ diff --git a/sounds/effects/glassknock.ogg b/sounds/effects/glassknock.ogg index 8878dda801..be5b237c0f 100644 Binary files a/sounds/effects/glassknock.ogg and b/sounds/effects/glassknock.ogg differ diff --git a/sounds/effects/glowstick.ogg b/sounds/effects/glowstick.ogg index 769c86a201..46c1c37fcb 100644 Binary files a/sounds/effects/glowstick.ogg and b/sounds/effects/glowstick.ogg differ diff --git a/sounds/effects/grillehit.ogg b/sounds/effects/grillehit.ogg index e5227b90d0..bad9cf2fd0 100644 Binary files a/sounds/effects/grillehit.ogg and b/sounds/effects/grillehit.ogg differ diff --git a/sounds/effects/gurgle1.ogg b/sounds/effects/gurgle1.ogg index c527ea7187..8961454b3b 100644 Binary files a/sounds/effects/gurgle1.ogg and b/sounds/effects/gurgle1.ogg differ diff --git a/sounds/effects/gurgle2.ogg b/sounds/effects/gurgle2.ogg index af61db3465..5662e00c1c 100644 Binary files a/sounds/effects/gurgle2.ogg and b/sounds/effects/gurgle2.ogg differ diff --git a/sounds/effects/gurgle3.ogg b/sounds/effects/gurgle3.ogg index 63ed0bbc00..0fc8d6ef57 100644 Binary files a/sounds/effects/gurgle3.ogg and b/sounds/effects/gurgle3.ogg differ diff --git a/sounds/effects/gurgle4.ogg b/sounds/effects/gurgle4.ogg index 0b861feeb0..7c96bfc5bf 100644 Binary files a/sounds/effects/gurgle4.ogg and b/sounds/effects/gurgle4.ogg differ diff --git a/sounds/effects/heartbeat_low.ogg b/sounds/effects/heartbeat_low.ogg index ddac31ca51..526c124dd5 100644 Binary files a/sounds/effects/heartbeat_low.ogg and b/sounds/effects/heartbeat_low.ogg differ diff --git a/sounds/effects/heartbeatpurr.ogg b/sounds/effects/heartbeatpurr.ogg index 1a4432599c..2f653345d9 100644 Binary files a/sounds/effects/heartbeatpurr.ogg and b/sounds/effects/heartbeatpurr.ogg differ diff --git a/sounds/effects/heavy_cannon_blast.ogg b/sounds/effects/heavy_cannon_blast.ogg index b54b2c0d36..652712cbe6 100644 Binary files a/sounds/effects/heavy_cannon_blast.ogg and b/sounds/effects/heavy_cannon_blast.ogg differ diff --git a/sounds/effects/helicopter.ogg b/sounds/effects/helicopter.ogg index 674df97a39..22103125bd 100644 Binary files a/sounds/effects/helicopter.ogg and b/sounds/effects/helicopter.ogg differ diff --git a/sounds/effects/hit_on_shattered_glass.ogg b/sounds/effects/hit_on_shattered_glass.ogg index dfeca0ba62..c808da4561 100644 Binary files a/sounds/effects/hit_on_shattered_glass.ogg and b/sounds/effects/hit_on_shattered_glass.ogg differ diff --git a/sounds/effects/holster/holsterin.ogg b/sounds/effects/holster/holsterin.ogg index a0f3c639db..f14c9fc9a4 100644 Binary files a/sounds/effects/holster/holsterin.ogg and b/sounds/effects/holster/holsterin.ogg differ diff --git a/sounds/effects/holster/holsterout.ogg b/sounds/effects/holster/holsterout.ogg index 743280a40d..a2f9902cf8 100644 Binary files a/sounds/effects/holster/holsterout.ogg and b/sounds/effects/holster/holsterout.ogg differ diff --git a/sounds/effects/holster/sheathin.ogg b/sounds/effects/holster/sheathin.ogg index 10fcbdf460..7c572baa29 100644 Binary files a/sounds/effects/holster/sheathin.ogg and b/sounds/effects/holster/sheathin.ogg differ diff --git a/sounds/effects/holster/sheathout.ogg b/sounds/effects/holster/sheathout.ogg index 6b20f970a0..83793fc981 100644 Binary files a/sounds/effects/holster/sheathout.ogg and b/sounds/effects/holster/sheathout.ogg differ diff --git a/sounds/effects/holster/tactiholsterin.ogg b/sounds/effects/holster/tactiholsterin.ogg index aaec847ebc..c36b68182a 100644 Binary files a/sounds/effects/holster/tactiholsterin.ogg and b/sounds/effects/holster/tactiholsterin.ogg differ diff --git a/sounds/effects/holster/tactiholsterout.ogg b/sounds/effects/holster/tactiholsterout.ogg index f1c44c4586..74a4ed48ce 100644 Binary files a/sounds/effects/holster/tactiholsterout.ogg and b/sounds/effects/holster/tactiholsterout.ogg differ diff --git a/sounds/effects/hypospray.ogg b/sounds/effects/hypospray.ogg index e4dd0331d0..9e8712eff4 100644 Binary files a/sounds/effects/hypospray.ogg and b/sounds/effects/hypospray.ogg differ diff --git a/sounds/effects/internals.ogg b/sounds/effects/internals.ogg index a8c951df5e..7907e852f1 100644 Binary files a/sounds/effects/internals.ogg and b/sounds/effects/internals.ogg differ diff --git a/sounds/effects/ladder.ogg b/sounds/effects/ladder.ogg index 7872c8a68a..6eb4484578 100644 Binary files a/sounds/effects/ladder.ogg and b/sounds/effects/ladder.ogg differ diff --git a/sounds/effects/ladder2.ogg b/sounds/effects/ladder2.ogg index 1af48947f9..d8df1f90bb 100644 Binary files a/sounds/effects/ladder2.ogg and b/sounds/effects/ladder2.ogg differ diff --git a/sounds/effects/ladder3.ogg b/sounds/effects/ladder3.ogg index 5d10cd6bcd..c54758def8 100644 Binary files a/sounds/effects/ladder3.ogg and b/sounds/effects/ladder3.ogg differ diff --git a/sounds/effects/ladder4.ogg b/sounds/effects/ladder4.ogg index 94790afb9f..c0158c911f 100644 Binary files a/sounds/effects/ladder4.ogg and b/sounds/effects/ladder4.ogg differ diff --git a/sounds/effects/lift_heavy_start.ogg b/sounds/effects/lift_heavy_start.ogg index d805b10aba..9c359ee3bb 100644 Binary files a/sounds/effects/lift_heavy_start.ogg and b/sounds/effects/lift_heavy_start.ogg differ diff --git a/sounds/effects/lift_heavy_stop.ogg b/sounds/effects/lift_heavy_stop.ogg index 9d823810e0..21c9ad41a0 100644 Binary files a/sounds/effects/lift_heavy_stop.ogg and b/sounds/effects/lift_heavy_stop.ogg differ diff --git a/sounds/effects/locker_close.ogg b/sounds/effects/locker_close.ogg index 86913e51a2..d503012d03 100644 Binary files a/sounds/effects/locker_close.ogg and b/sounds/effects/locker_close.ogg differ diff --git a/sounds/effects/locker_open.ogg b/sounds/effects/locker_open.ogg index 4a254c2b0b..974453fc87 100644 Binary files a/sounds/effects/locker_open.ogg and b/sounds/effects/locker_open.ogg differ diff --git a/sounds/effects/magnetclamp.ogg b/sounds/effects/magnetclamp.ogg index 0405d853a0..feae45a41b 100644 Binary files a/sounds/effects/magnetclamp.ogg and b/sounds/effects/magnetclamp.ogg differ diff --git a/sounds/effects/memetic_spasm.ogg b/sounds/effects/memetic_spasm.ogg index db6ac69256..394d958541 100644 Binary files a/sounds/effects/memetic_spasm.ogg and b/sounds/effects/memetic_spasm.ogg differ diff --git a/sounds/effects/menu_click.ogg b/sounds/effects/menu_click.ogg index a7829684aa..75d31c0edd 100644 Binary files a/sounds/effects/menu_click.ogg and b/sounds/effects/menu_click.ogg differ diff --git a/sounds/effects/metal_close.ogg b/sounds/effects/metal_close.ogg index 5a45d74327..7be85f4b02 100644 Binary files a/sounds/effects/metal_close.ogg and b/sounds/effects/metal_close.ogg differ diff --git a/sounds/effects/metal_crash.ogg b/sounds/effects/metal_crash.ogg index 6218ecdc79..07a403b1e6 100644 Binary files a/sounds/effects/metal_crash.ogg and b/sounds/effects/metal_crash.ogg differ diff --git a/sounds/effects/metal_creaking.ogg b/sounds/effects/metal_creaking.ogg index 6d6dde2a7c..5b790b7ce9 100644 Binary files a/sounds/effects/metal_creaking.ogg and b/sounds/effects/metal_creaking.ogg differ diff --git a/sounds/effects/metalhit.ogg b/sounds/effects/metalhit.ogg index edc32ffb33..d78658cc7b 100644 Binary files a/sounds/effects/metalhit.ogg and b/sounds/effects/metalhit.ogg differ diff --git a/sounds/effects/metalscrape1.ogg b/sounds/effects/metalscrape1.ogg index 77cd19d93c..ef3cb80d86 100644 Binary files a/sounds/effects/metalscrape1.ogg and b/sounds/effects/metalscrape1.ogg differ diff --git a/sounds/effects/metalscrape2.ogg b/sounds/effects/metalscrape2.ogg index 39da935a92..da6873ff7f 100644 Binary files a/sounds/effects/metalscrape2.ogg and b/sounds/effects/metalscrape2.ogg differ diff --git a/sounds/effects/metalscrape3.ogg b/sounds/effects/metalscrape3.ogg index 219b0cee30..e0347485bf 100644 Binary files a/sounds/effects/metalscrape3.ogg and b/sounds/effects/metalscrape3.ogg differ diff --git a/sounds/effects/meteorimpact.ogg b/sounds/effects/meteorimpact.ogg index bd960ec0f6..2c54904780 100644 Binary files a/sounds/effects/meteorimpact.ogg and b/sounds/effects/meteorimpact.ogg differ diff --git a/sounds/effects/mousesqueek.ogg b/sounds/effects/mousesqueek.ogg index 7b413d6da2..e084bed2c9 100644 Binary files a/sounds/effects/mousesqueek.ogg and b/sounds/effects/mousesqueek.ogg differ diff --git a/sounds/effects/nightvision.ogg b/sounds/effects/nightvision.ogg index 6e24e7c340..5e07aac3db 100644 Binary files a/sounds/effects/nightvision.ogg and b/sounds/effects/nightvision.ogg differ diff --git a/sounds/effects/nostalgia1.ogg b/sounds/effects/nostalgia1.ogg index 79e6547fc7..31632be03f 100644 Binary files a/sounds/effects/nostalgia1.ogg and b/sounds/effects/nostalgia1.ogg differ diff --git a/sounds/effects/nostalgia2.ogg b/sounds/effects/nostalgia2.ogg index ce2ffd5d59..ceb0222df8 100644 Binary files a/sounds/effects/nostalgia2.ogg and b/sounds/effects/nostalgia2.ogg differ diff --git a/sounds/effects/nostalgia3.ogg b/sounds/effects/nostalgia3.ogg index 9b626e4031..51ae60db7d 100644 Binary files a/sounds/effects/nostalgia3.ogg and b/sounds/effects/nostalgia3.ogg differ diff --git a/sounds/effects/nostalgia4.ogg b/sounds/effects/nostalgia4.ogg index 662d9a8d2b..bb511fcbfc 100644 Binary files a/sounds/effects/nostalgia4.ogg and b/sounds/effects/nostalgia4.ogg differ diff --git a/sounds/effects/nostalgia5.ogg b/sounds/effects/nostalgia5.ogg index fea04aaa85..d07ebb686e 100644 Binary files a/sounds/effects/nostalgia5.ogg and b/sounds/effects/nostalgia5.ogg differ diff --git a/sounds/effects/nostalgia5B.ogg b/sounds/effects/nostalgia5B.ogg index f02a611b94..2a89fedc9b 100644 Binary files a/sounds/effects/nostalgia5B.ogg and b/sounds/effects/nostalgia5B.ogg differ diff --git a/sounds/effects/ointment.ogg b/sounds/effects/ointment.ogg index efafb431a4..09172dd5cd 100644 Binary files a/sounds/effects/ointment.ogg and b/sounds/effects/ointment.ogg differ diff --git a/sounds/effects/pageturn1.ogg b/sounds/effects/pageturn1.ogg index 0fe537cd1d..4cf6e560a6 100644 Binary files a/sounds/effects/pageturn1.ogg and b/sounds/effects/pageturn1.ogg differ diff --git a/sounds/effects/pageturn2.ogg b/sounds/effects/pageturn2.ogg index e34f7fdd50..b4f2cc8be8 100644 Binary files a/sounds/effects/pageturn2.ogg and b/sounds/effects/pageturn2.ogg differ diff --git a/sounds/effects/pageturn3.ogg b/sounds/effects/pageturn3.ogg index 8b2d61fdc6..8aad392fa3 100644 Binary files a/sounds/effects/pageturn3.ogg and b/sounds/effects/pageturn3.ogg differ diff --git a/sounds/effects/peelz.ogg b/sounds/effects/peelz.ogg index fa30b5e325..3860565246 100644 Binary files a/sounds/effects/peelz.ogg and b/sounds/effects/peelz.ogg differ diff --git a/sounds/effects/pen1.ogg b/sounds/effects/pen1.ogg index 064624c1fc..ee7fcaa4d7 100644 Binary files a/sounds/effects/pen1.ogg and b/sounds/effects/pen1.ogg differ diff --git a/sounds/effects/pen2.ogg b/sounds/effects/pen2.ogg index 2a6781b45f..30ac91045f 100644 Binary files a/sounds/effects/pen2.ogg and b/sounds/effects/pen2.ogg differ diff --git a/sounds/effects/phasein.ogg b/sounds/effects/phasein.ogg index 9bb4d443f0..45630a9c68 100644 Binary files a/sounds/effects/phasein.ogg and b/sounds/effects/phasein.ogg differ diff --git a/sounds/effects/ping.ogg b/sounds/effects/ping.ogg index a5d2cd77e9..6e9a16f7f5 100644 Binary files a/sounds/effects/ping.ogg and b/sounds/effects/ping.ogg differ diff --git a/sounds/effects/plunger.ogg b/sounds/effects/plunger.ogg index ba6b60121e..5ab590b3f8 100644 Binary files a/sounds/effects/plunger.ogg and b/sounds/effects/plunger.ogg differ diff --git a/sounds/effects/pop.ogg b/sounds/effects/pop.ogg index 9b9b4b4e1d..ee51122dbd 100644 Binary files a/sounds/effects/pop.ogg and b/sounds/effects/pop.ogg differ diff --git a/sounds/effects/pour.ogg b/sounds/effects/pour.ogg index e22c062750..b8dd7a0e72 100644 Binary files a/sounds/effects/pour.ogg and b/sounds/effects/pour.ogg differ diff --git a/sounds/effects/powerloss.ogg b/sounds/effects/powerloss.ogg index 9a78714c22..5f4aed3bec 100644 Binary files a/sounds/effects/powerloss.ogg and b/sounds/effects/powerloss.ogg differ diff --git a/sounds/effects/pred_cloakoff.ogg b/sounds/effects/pred_cloakoff.ogg index ec7a922dd3..b8b29d01dd 100644 Binary files a/sounds/effects/pred_cloakoff.ogg and b/sounds/effects/pred_cloakoff.ogg differ diff --git a/sounds/effects/pred_cloakon.ogg b/sounds/effects/pred_cloakon.ogg index 9b081e6700..2ef1fff8fd 100644 Binary files a/sounds/effects/pred_cloakon.ogg and b/sounds/effects/pred_cloakon.ogg differ diff --git a/sounds/effects/pred_countdown.ogg b/sounds/effects/pred_countdown.ogg index a65383ab67..5b250874e8 100644 Binary files a/sounds/effects/pred_countdown.ogg and b/sounds/effects/pred_countdown.ogg differ diff --git a/sounds/effects/pred_vision.ogg b/sounds/effects/pred_vision.ogg index a1a79e30be..82715151ac 100644 Binary files a/sounds/effects/pred_vision.ogg and b/sounds/effects/pred_vision.ogg differ diff --git a/sounds/effects/projectile_impact/bullet_meat1.ogg b/sounds/effects/projectile_impact/bullet_meat1.ogg index 57cacc637c..9549a227f8 100644 Binary files a/sounds/effects/projectile_impact/bullet_meat1.ogg and b/sounds/effects/projectile_impact/bullet_meat1.ogg differ diff --git a/sounds/effects/projectile_impact/bullet_meat2.ogg b/sounds/effects/projectile_impact/bullet_meat2.ogg index 075e4b8770..6342fda86e 100644 Binary files a/sounds/effects/projectile_impact/bullet_meat2.ogg and b/sounds/effects/projectile_impact/bullet_meat2.ogg differ diff --git a/sounds/effects/projectile_impact/bullet_meat3.ogg b/sounds/effects/projectile_impact/bullet_meat3.ogg index 1207121608..e3055d72df 100644 Binary files a/sounds/effects/projectile_impact/bullet_meat3.ogg and b/sounds/effects/projectile_impact/bullet_meat3.ogg differ diff --git a/sounds/effects/projectile_impact/bullet_meat4.ogg b/sounds/effects/projectile_impact/bullet_meat4.ogg index 4d1e38abb9..2a4cfc2567 100644 Binary files a/sounds/effects/projectile_impact/bullet_meat4.ogg and b/sounds/effects/projectile_impact/bullet_meat4.ogg differ diff --git a/sounds/effects/projectile_impact/bullet_metal1.ogg b/sounds/effects/projectile_impact/bullet_metal1.ogg index 1ffe4483a4..314f067da1 100644 Binary files a/sounds/effects/projectile_impact/bullet_metal1.ogg and b/sounds/effects/projectile_impact/bullet_metal1.ogg differ diff --git a/sounds/effects/projectile_impact/bullet_metal2.ogg b/sounds/effects/projectile_impact/bullet_metal2.ogg index bb9003810e..fb0581261d 100644 Binary files a/sounds/effects/projectile_impact/bullet_metal2.ogg and b/sounds/effects/projectile_impact/bullet_metal2.ogg differ diff --git a/sounds/effects/projectile_impact/bullet_metal3.ogg b/sounds/effects/projectile_impact/bullet_metal3.ogg index e6ffcd0b5a..37a30aeb7c 100644 Binary files a/sounds/effects/projectile_impact/bullet_metal3.ogg and b/sounds/effects/projectile_impact/bullet_metal3.ogg differ diff --git a/sounds/effects/projectile_impact/energy_meat1.ogg b/sounds/effects/projectile_impact/energy_meat1.ogg index e82535a53d..93529155ec 100644 Binary files a/sounds/effects/projectile_impact/energy_meat1.ogg and b/sounds/effects/projectile_impact/energy_meat1.ogg differ diff --git a/sounds/effects/projectile_impact/energy_meat2.ogg b/sounds/effects/projectile_impact/energy_meat2.ogg index 4f0194facf..b66531f15e 100644 Binary files a/sounds/effects/projectile_impact/energy_meat2.ogg and b/sounds/effects/projectile_impact/energy_meat2.ogg differ diff --git a/sounds/effects/projectile_impact/energy_metal1.ogg b/sounds/effects/projectile_impact/energy_metal1.ogg index b8394657c7..35a663f92e 100644 Binary files a/sounds/effects/projectile_impact/energy_metal1.ogg and b/sounds/effects/projectile_impact/energy_metal1.ogg differ diff --git a/sounds/effects/projectile_impact/energy_metal2.ogg b/sounds/effects/projectile_impact/energy_metal2.ogg index 9c2849ceb1..ac04ee8fbc 100644 Binary files a/sounds/effects/projectile_impact/energy_metal2.ogg and b/sounds/effects/projectile_impact/energy_metal2.ogg differ diff --git a/sounds/effects/psi/power_evoke.ogg b/sounds/effects/psi/power_evoke.ogg index 37d9c5a540..16ca3ca416 100644 Binary files a/sounds/effects/psi/power_evoke.ogg and b/sounds/effects/psi/power_evoke.ogg differ diff --git a/sounds/effects/psi/power_fabrication.ogg b/sounds/effects/psi/power_fabrication.ogg index 8720d196a8..8ea6a59057 100644 Binary files a/sounds/effects/psi/power_fabrication.ogg and b/sounds/effects/psi/power_fabrication.ogg differ diff --git a/sounds/effects/psi/power_fail.ogg b/sounds/effects/psi/power_fail.ogg index 75364171dd..1017a9df97 100644 Binary files a/sounds/effects/psi/power_fail.ogg and b/sounds/effects/psi/power_fail.ogg differ diff --git a/sounds/effects/psi/power_feedback.ogg b/sounds/effects/psi/power_feedback.ogg index 139dfba0bd..1c1da711b0 100644 Binary files a/sounds/effects/psi/power_feedback.ogg and b/sounds/effects/psi/power_feedback.ogg differ diff --git a/sounds/effects/psi/power_unlock.ogg b/sounds/effects/psi/power_unlock.ogg index 3ba24f81b3..1f05aca2ce 100644 Binary files a/sounds/effects/psi/power_unlock.ogg and b/sounds/effects/psi/power_unlock.ogg differ diff --git a/sounds/effects/psi/power_used.ogg b/sounds/effects/psi/power_used.ogg index aa0978f14b..500d09cd4d 100644 Binary files a/sounds/effects/psi/power_used.ogg and b/sounds/effects/psi/power_used.ogg differ diff --git a/sounds/effects/radio_chatter.ogg b/sounds/effects/radio_chatter.ogg index 6e5b3ecfbf..39c5bf78ff 100644 Binary files a/sounds/effects/radio_chatter.ogg and b/sounds/effects/radio_chatter.ogg differ diff --git a/sounds/effects/radiohiss.ogg b/sounds/effects/radiohiss.ogg index 75d52083e7..49a94f77c1 100644 Binary files a/sounds/effects/radiohiss.ogg and b/sounds/effects/radiohiss.ogg differ diff --git a/sounds/effects/radiostatic.ogg b/sounds/effects/radiostatic.ogg index 60e2094a20..0f356bfc1c 100644 Binary files a/sounds/effects/radiostatic.ogg and b/sounds/effects/radiostatic.ogg differ diff --git a/sounds/effects/razorweb.ogg b/sounds/effects/razorweb.ogg index f78b190496..1df5ac732c 100644 Binary files a/sounds/effects/razorweb.ogg and b/sounds/effects/razorweb.ogg differ diff --git a/sounds/effects/razorweb_break.ogg b/sounds/effects/razorweb_break.ogg index 36d0f5922a..9072c95350 100644 Binary files a/sounds/effects/razorweb_break.ogg and b/sounds/effects/razorweb_break.ogg differ diff --git a/sounds/effects/razorweb_hiss.ogg b/sounds/effects/razorweb_hiss.ogg index 09d3b13b2e..ff5fee4b56 100644 Binary files a/sounds/effects/razorweb_hiss.ogg and b/sounds/effects/razorweb_hiss.ogg differ diff --git a/sounds/effects/razorweb_twang.ogg b/sounds/effects/razorweb_twang.ogg index 01653eab33..31efb8b379 100644 Binary files a/sounds/effects/razorweb_twang.ogg and b/sounds/effects/razorweb_twang.ogg differ diff --git a/sounds/effects/refill.ogg b/sounds/effects/refill.ogg index 4915bd0013..f461041858 100644 Binary files a/sounds/effects/refill.ogg and b/sounds/effects/refill.ogg differ diff --git a/sounds/effects/rip1.ogg b/sounds/effects/rip1.ogg index ab0fabbb3d..ac2f7ec792 100644 Binary files a/sounds/effects/rip1.ogg and b/sounds/effects/rip1.ogg differ diff --git a/sounds/effects/rip2.ogg b/sounds/effects/rip2.ogg index 93a5cec50f..3d0d8dc377 100644 Binary files a/sounds/effects/rip2.ogg and b/sounds/effects/rip2.ogg differ diff --git a/sounds/effects/rocket.ogg b/sounds/effects/rocket.ogg index 25b0c0d1c3..dca06f0eb7 100644 Binary files a/sounds/effects/rocket.ogg and b/sounds/effects/rocket.ogg differ diff --git a/sounds/effects/rocket_backwards.ogg b/sounds/effects/rocket_backwards.ogg index 0be08cf3e8..79e7e97dd6 100644 Binary files a/sounds/effects/rocket_backwards.ogg and b/sounds/effects/rocket_backwards.ogg differ diff --git a/sounds/effects/rustle1.ogg b/sounds/effects/rustle1.ogg index 6c91ccf99b..2dad074e3b 100644 Binary files a/sounds/effects/rustle1.ogg and b/sounds/effects/rustle1.ogg differ diff --git a/sounds/effects/rustle2.ogg b/sounds/effects/rustle2.ogg index df2d9c889f..2c91b0a902 100644 Binary files a/sounds/effects/rustle2.ogg and b/sounds/effects/rustle2.ogg differ diff --git a/sounds/effects/rustle3.ogg b/sounds/effects/rustle3.ogg index 3930750064..c4b9c28785 100644 Binary files a/sounds/effects/rustle3.ogg and b/sounds/effects/rustle3.ogg differ diff --git a/sounds/effects/rustle4.ogg b/sounds/effects/rustle4.ogg index b9a3fa3272..39cec3c1c4 100644 Binary files a/sounds/effects/rustle4.ogg and b/sounds/effects/rustle4.ogg differ diff --git a/sounds/effects/rustle5.ogg b/sounds/effects/rustle5.ogg index c7bd8ccfd5..d63c0e2c13 100644 Binary files a/sounds/effects/rustle5.ogg and b/sounds/effects/rustle5.ogg differ diff --git a/sounds/effects/scanbeep.ogg b/sounds/effects/scanbeep.ogg index c9aeea71b3..a5db0ed609 100644 Binary files a/sounds/effects/scanbeep.ogg and b/sounds/effects/scanbeep.ogg differ diff --git a/sounds/effects/screech.ogg b/sounds/effects/screech.ogg index b90f612621..049304f92c 100644 Binary files a/sounds/effects/screech.ogg and b/sounds/effects/screech.ogg differ diff --git a/sounds/effects/screech2.ogg b/sounds/effects/screech2.ogg index aa84383c65..15f9dfa87f 100644 Binary files a/sounds/effects/screech2.ogg and b/sounds/effects/screech2.ogg differ diff --git a/sounds/effects/shieldbash.ogg b/sounds/effects/shieldbash.ogg index ffcea66956..d29d02956a 100644 Binary files a/sounds/effects/shieldbash.ogg and b/sounds/effects/shieldbash.ogg differ diff --git a/sounds/effects/shuttle_landing.ogg b/sounds/effects/shuttle_landing.ogg index fcb723416b..6d4a6f2e13 100644 Binary files a/sounds/effects/shuttle_landing.ogg and b/sounds/effects/shuttle_landing.ogg differ diff --git a/sounds/effects/shuttle_takeoff.ogg b/sounds/effects/shuttle_takeoff.ogg index 06dac1c788..eede5e0547 100644 Binary files a/sounds/effects/shuttle_takeoff.ogg and b/sounds/effects/shuttle_takeoff.ogg differ diff --git a/sounds/effects/singlebeat.ogg b/sounds/effects/singlebeat.ogg index 8dd550d5d8..4e4b40ff82 100644 Binary files a/sounds/effects/singlebeat.ogg and b/sounds/effects/singlebeat.ogg differ diff --git a/sounds/effects/sink.ogg b/sounds/effects/sink.ogg index f195db7873..a2091cb26a 100644 Binary files a/sounds/effects/sink.ogg and b/sounds/effects/sink.ogg differ diff --git a/sounds/effects/sink_long.ogg b/sounds/effects/sink_long.ogg index 003f46bd89..397bbcce62 100644 Binary files a/sounds/effects/sink_long.ogg and b/sounds/effects/sink_long.ogg differ diff --git a/sounds/effects/siren.ogg b/sounds/effects/siren.ogg index 908f0d1f55..7999f4219b 100644 Binary files a/sounds/effects/siren.ogg and b/sounds/effects/siren.ogg differ diff --git a/sounds/effects/slosh.ogg b/sounds/effects/slosh.ogg index 2448e60ab4..79659ab1de 100644 Binary files a/sounds/effects/slosh.ogg and b/sounds/effects/slosh.ogg differ diff --git a/sounds/effects/smoke.ogg b/sounds/effects/smoke.ogg index 1a1aa3733e..8b32b9ce1b 100644 Binary files a/sounds/effects/smoke.ogg and b/sounds/effects/smoke.ogg differ diff --git a/sounds/effects/snap.ogg b/sounds/effects/snap.ogg index d8804bc6e9..821daf23c9 100644 Binary files a/sounds/effects/snap.ogg and b/sounds/effects/snap.ogg differ diff --git a/sounds/effects/sos-morse-code.ogg b/sounds/effects/sos-morse-code.ogg index bd20616117..e57371037c 100644 Binary files a/sounds/effects/sos-morse-code.ogg and b/sounds/effects/sos-morse-code.ogg differ diff --git a/sounds/effects/sparks1.ogg b/sounds/effects/sparks1.ogg index 11861ebf4b..4c1b8d4568 100644 Binary files a/sounds/effects/sparks1.ogg and b/sounds/effects/sparks1.ogg differ diff --git a/sounds/effects/sparks2.ogg b/sounds/effects/sparks2.ogg index ccea7b38d1..004c531af1 100644 Binary files a/sounds/effects/sparks2.ogg and b/sounds/effects/sparks2.ogg differ diff --git a/sounds/effects/sparks3.ogg b/sounds/effects/sparks3.ogg index 11f353e924..71652e66a9 100644 Binary files a/sounds/effects/sparks3.ogg and b/sounds/effects/sparks3.ogg differ diff --git a/sounds/effects/sparks4.ogg b/sounds/effects/sparks4.ogg index 9dc62ac477..2353bd3625 100644 Binary files a/sounds/effects/sparks4.ogg and b/sounds/effects/sparks4.ogg differ diff --git a/sounds/effects/spider_loop.ogg b/sounds/effects/spider_loop.ogg index 3a98df83e2..b669a78192 100644 Binary files a/sounds/effects/spider_loop.ogg and b/sounds/effects/spider_loop.ogg differ diff --git a/sounds/effects/spike_attack.ogg b/sounds/effects/spike_attack.ogg index d007ddeaee..740cf4c4aa 100644 Binary files a/sounds/effects/spike_attack.ogg and b/sounds/effects/spike_attack.ogg differ diff --git a/sounds/effects/spin.ogg b/sounds/effects/spin.ogg index fdabcad2e8..f7ef7e5c99 100644 Binary files a/sounds/effects/spin.ogg and b/sounds/effects/spin.ogg differ diff --git a/sounds/effects/splat.ogg b/sounds/effects/splat.ogg index bc84113d34..ba17123abd 100644 Binary files a/sounds/effects/splat.ogg and b/sounds/effects/splat.ogg differ diff --git a/sounds/effects/spray.ogg b/sounds/effects/spray.ogg index 9df3fa6032..6d8fbabebe 100644 Binary files a/sounds/effects/spray.ogg and b/sounds/effects/spray.ogg differ diff --git a/sounds/effects/spray2.ogg b/sounds/effects/spray2.ogg index b29abf385a..294f162b2f 100644 Binary files a/sounds/effects/spray2.ogg and b/sounds/effects/spray2.ogg differ diff --git a/sounds/effects/spray3.ogg b/sounds/effects/spray3.ogg index 3ea4574ea6..d49f61a809 100644 Binary files a/sounds/effects/spray3.ogg and b/sounds/effects/spray3.ogg differ diff --git a/sounds/effects/squelch1.ogg b/sounds/effects/squelch1.ogg index 6e00b7f8f3..2bb5b09038 100644 Binary files a/sounds/effects/squelch1.ogg and b/sounds/effects/squelch1.ogg differ diff --git a/sounds/effects/squelch2.ogg b/sounds/effects/squelch2.ogg index 4deba11b46..0de3234130 100644 Binary files a/sounds/effects/squelch2.ogg and b/sounds/effects/squelch2.ogg differ diff --git a/sounds/effects/stairs_step.ogg b/sounds/effects/stairs_step.ogg index 14f3d4963e..8fe52305e6 100644 Binary files a/sounds/effects/stairs_step.ogg and b/sounds/effects/stairs_step.ogg differ diff --git a/sounds/effects/stamp.ogg b/sounds/effects/stamp.ogg index f243cc9683..865a67b591 100644 Binary files a/sounds/effects/stamp.ogg and b/sounds/effects/stamp.ogg differ diff --git a/sounds/effects/stealthoff.ogg b/sounds/effects/stealthoff.ogg index 865f9e28b0..3d56a1e8d1 100644 Binary files a/sounds/effects/stealthoff.ogg and b/sounds/effects/stealthoff.ogg differ diff --git a/sounds/effects/stonedoor_openclose.ogg b/sounds/effects/stonedoor_openclose.ogg index 9f3919ed65..c4b1032e4f 100644 Binary files a/sounds/effects/stonedoor_openclose.ogg and b/sounds/effects/stonedoor_openclose.ogg differ diff --git a/sounds/effects/storage/box.ogg b/sounds/effects/storage/box.ogg index 9d25a761cc..289470f34d 100644 Binary files a/sounds/effects/storage/box.ogg and b/sounds/effects/storage/box.ogg differ diff --git a/sounds/effects/storage/briefcase.ogg b/sounds/effects/storage/briefcase.ogg index e841e03747..9e155d9dd8 100644 Binary files a/sounds/effects/storage/briefcase.ogg and b/sounds/effects/storage/briefcase.ogg differ diff --git a/sounds/effects/storage/pillbottle.ogg b/sounds/effects/storage/pillbottle.ogg index 1c47fbeb73..c65f69af2b 100644 Binary files a/sounds/effects/storage/pillbottle.ogg and b/sounds/effects/storage/pillbottle.ogg differ diff --git a/sounds/effects/storage/toolbox.ogg b/sounds/effects/storage/toolbox.ogg index ec1ff0cde5..8c71dc6062 100644 Binary files a/sounds/effects/storage/toolbox.ogg and b/sounds/effects/storage/toolbox.ogg differ diff --git a/sounds/effects/storage/unzip.ogg b/sounds/effects/storage/unzip.ogg index f91345ebac..249d4b6cfd 100644 Binary files a/sounds/effects/storage/unzip.ogg and b/sounds/effects/storage/unzip.ogg differ diff --git a/sounds/effects/supermatter.ogg b/sounds/effects/supermatter.ogg index 83081a5e9b..c7a0fc09e7 100644 Binary files a/sounds/effects/supermatter.ogg and b/sounds/effects/supermatter.ogg differ diff --git a/sounds/effects/tape.ogg b/sounds/effects/tape.ogg index 7a7047e324..8e00e4b96c 100644 Binary files a/sounds/effects/tape.ogg and b/sounds/effects/tape.ogg differ diff --git a/sounds/effects/teleport.ogg b/sounds/effects/teleport.ogg index 650867782b..4fb577c29e 100644 Binary files a/sounds/effects/teleport.ogg and b/sounds/effects/teleport.ogg differ diff --git a/sounds/effects/thud.ogg b/sounds/effects/thud.ogg index 222879a40d..7b4626707f 100644 Binary files a/sounds/effects/thud.ogg and b/sounds/effects/thud.ogg differ diff --git a/sounds/effects/trauma2.ogg b/sounds/effects/trauma2.ogg index 2dc04e0c3c..6a22fddd15 100644 Binary files a/sounds/effects/trauma2.ogg and b/sounds/effects/trauma2.ogg differ diff --git a/sounds/effects/vegetation_hit.ogg b/sounds/effects/vegetation_hit.ogg index 2de7942208..fbedebdcbc 100644 Binary files a/sounds/effects/vegetation_hit.ogg and b/sounds/effects/vegetation_hit.ogg differ diff --git a/sounds/effects/vegetation_walk_0.ogg b/sounds/effects/vegetation_walk_0.ogg index dc9f9a7a63..dee2937e55 100644 Binary files a/sounds/effects/vegetation_walk_0.ogg and b/sounds/effects/vegetation_walk_0.ogg differ diff --git a/sounds/effects/vegetation_walk_1.ogg b/sounds/effects/vegetation_walk_1.ogg index 2a18c9a561..4ec5edf958 100644 Binary files a/sounds/effects/vegetation_walk_1.ogg and b/sounds/effects/vegetation_walk_1.ogg differ diff --git a/sounds/effects/vegetation_walk_2.ogg b/sounds/effects/vegetation_walk_2.ogg index fba10f2526..a2c3cda1a6 100644 Binary files a/sounds/effects/vegetation_walk_2.ogg and b/sounds/effects/vegetation_walk_2.ogg differ diff --git a/sounds/effects/walkieon.ogg b/sounds/effects/walkieon.ogg index 686beb5c1e..a88b0cb236 100644 Binary files a/sounds/effects/walkieon.ogg and b/sounds/effects/walkieon.ogg differ diff --git a/sounds/effects/walkietalkie.ogg b/sounds/effects/walkietalkie.ogg index 405391b44f..fff9e71134 100644 Binary files a/sounds/effects/walkietalkie.ogg and b/sounds/effects/walkietalkie.ogg differ diff --git a/sounds/effects/watersplash.ogg b/sounds/effects/watersplash.ogg index ed2eccbff6..b3ccba05e1 100644 Binary files a/sounds/effects/watersplash.ogg and b/sounds/effects/watersplash.ogg differ diff --git a/sounds/effects/weightdrop.ogg b/sounds/effects/weightdrop.ogg index 07945daaf8..57c1357fd1 100644 Binary files a/sounds/effects/weightdrop.ogg and b/sounds/effects/weightdrop.ogg differ diff --git a/sounds/effects/weightlifter.ogg b/sounds/effects/weightlifter.ogg index 51a0d49785..869c767f55 100644 Binary files a/sounds/effects/weightlifter.ogg and b/sounds/effects/weightlifter.ogg differ diff --git a/sounds/effects/wind/desert0.ogg b/sounds/effects/wind/desert0.ogg index a0c0892c63..3c6d2d54ee 100644 Binary files a/sounds/effects/wind/desert0.ogg and b/sounds/effects/wind/desert0.ogg differ diff --git a/sounds/effects/wind/desert1.ogg b/sounds/effects/wind/desert1.ogg index 81ee235d55..3b6b04698a 100644 Binary files a/sounds/effects/wind/desert1.ogg and b/sounds/effects/wind/desert1.ogg differ diff --git a/sounds/effects/wind/desert2.ogg b/sounds/effects/wind/desert2.ogg index 7a59fd5511..aca90c0ea5 100644 Binary files a/sounds/effects/wind/desert2.ogg and b/sounds/effects/wind/desert2.ogg differ diff --git a/sounds/effects/wind/desert3.ogg b/sounds/effects/wind/desert3.ogg index 30d8017735..edec7f3f44 100644 Binary files a/sounds/effects/wind/desert3.ogg and b/sounds/effects/wind/desert3.ogg differ diff --git a/sounds/effects/wind/desert4.ogg b/sounds/effects/wind/desert4.ogg index 5dfa7dc21d..a86c6de546 100644 Binary files a/sounds/effects/wind/desert4.ogg and b/sounds/effects/wind/desert4.ogg differ diff --git a/sounds/effects/wind/desert5.ogg b/sounds/effects/wind/desert5.ogg index 4259427dce..ac8a6b8964 100644 Binary files a/sounds/effects/wind/desert5.ogg and b/sounds/effects/wind/desert5.ogg differ diff --git a/sounds/effects/wind/spooky0.ogg b/sounds/effects/wind/spooky0.ogg index e8b4f6391c..fab30dec4a 100644 Binary files a/sounds/effects/wind/spooky0.ogg and b/sounds/effects/wind/spooky0.ogg differ diff --git a/sounds/effects/wind/spooky1.ogg b/sounds/effects/wind/spooky1.ogg index b1e5dba197..57c1ce6a03 100644 Binary files a/sounds/effects/wind/spooky1.ogg and b/sounds/effects/wind/spooky1.ogg differ diff --git a/sounds/effects/wind/tundra0.ogg b/sounds/effects/wind/tundra0.ogg index e0f78258b4..4f247ac18f 100644 Binary files a/sounds/effects/wind/tundra0.ogg and b/sounds/effects/wind/tundra0.ogg differ diff --git a/sounds/effects/wind/tundra1.ogg b/sounds/effects/wind/tundra1.ogg index 7d799942ff..87d7a4120b 100644 Binary files a/sounds/effects/wind/tundra1.ogg and b/sounds/effects/wind/tundra1.ogg differ diff --git a/sounds/effects/wind/tundra2.ogg b/sounds/effects/wind/tundra2.ogg index b96e3b2e3e..c50e467808 100644 Binary files a/sounds/effects/wind/tundra2.ogg and b/sounds/effects/wind/tundra2.ogg differ diff --git a/sounds/effects/wind/wind_2_1.ogg b/sounds/effects/wind/wind_2_1.ogg index 127602083b..1e84e3759c 100644 Binary files a/sounds/effects/wind/wind_2_1.ogg and b/sounds/effects/wind/wind_2_1.ogg differ diff --git a/sounds/effects/wind/wind_2_2.ogg b/sounds/effects/wind/wind_2_2.ogg index 19fe2207d6..86f42fecc3 100644 Binary files a/sounds/effects/wind/wind_2_2.ogg and b/sounds/effects/wind/wind_2_2.ogg differ diff --git a/sounds/effects/wind/wind_3_1.ogg b/sounds/effects/wind/wind_3_1.ogg index b7dd7b58eb..134c600cbf 100644 Binary files a/sounds/effects/wind/wind_3_1.ogg and b/sounds/effects/wind/wind_3_1.ogg differ diff --git a/sounds/effects/wind/wind_4_1.ogg b/sounds/effects/wind/wind_4_1.ogg index 9ca7f68c8b..cb0229c023 100644 Binary files a/sounds/effects/wind/wind_4_1.ogg and b/sounds/effects/wind/wind_4_1.ogg differ diff --git a/sounds/effects/wind/wind_4_2.ogg b/sounds/effects/wind/wind_4_2.ogg index 7cd1822168..c030bd05b9 100644 Binary files a/sounds/effects/wind/wind_4_2.ogg and b/sounds/effects/wind/wind_4_2.ogg differ diff --git a/sounds/effects/wind/wind_5_1.ogg b/sounds/effects/wind/wind_5_1.ogg index 169837345c..bdbff07b99 100644 Binary files a/sounds/effects/wind/wind_5_1.ogg and b/sounds/effects/wind/wind_5_1.ogg differ diff --git a/sounds/effects/woodhit.ogg b/sounds/effects/woodhit.ogg index ffcb40fa02..424fc6c400 100644 Binary files a/sounds/effects/woodhit.ogg and b/sounds/effects/woodhit.ogg differ diff --git a/sounds/effects/wounds/bonebreak1.ogg b/sounds/effects/wounds/bonebreak1.ogg index 96e6487a24..0378420cd2 100644 Binary files a/sounds/effects/wounds/bonebreak1.ogg and b/sounds/effects/wounds/bonebreak1.ogg differ diff --git a/sounds/effects/wounds/bonebreak2.ogg b/sounds/effects/wounds/bonebreak2.ogg index 6f8c3c3806..c79826d729 100644 Binary files a/sounds/effects/wounds/bonebreak2.ogg and b/sounds/effects/wounds/bonebreak2.ogg differ diff --git a/sounds/effects/wounds/bonebreak3.ogg b/sounds/effects/wounds/bonebreak3.ogg index 54b90aa847..1254fcb00b 100644 Binary files a/sounds/effects/wounds/bonebreak3.ogg and b/sounds/effects/wounds/bonebreak3.ogg differ diff --git a/sounds/effects/wounds/bonebreak4.ogg b/sounds/effects/wounds/bonebreak4.ogg index 2139d1ad9e..8f4479efb9 100644 Binary files a/sounds/effects/wounds/bonebreak4.ogg and b/sounds/effects/wounds/bonebreak4.ogg differ diff --git a/sounds/effects/wounds/crack1.ogg b/sounds/effects/wounds/crack1.ogg index aa3bf0ab01..aa457bc2e8 100644 Binary files a/sounds/effects/wounds/crack1.ogg and b/sounds/effects/wounds/crack1.ogg differ diff --git a/sounds/effects/wounds/crack2.ogg b/sounds/effects/wounds/crack2.ogg index cef226c98b..4c307f3e89 100644 Binary files a/sounds/effects/wounds/crack2.ogg and b/sounds/effects/wounds/crack2.ogg differ diff --git a/sounds/effects/wounds/crack3.ogg b/sounds/effects/wounds/crack3.ogg index ea07f13d48..ddff7b7454 100644 Binary files a/sounds/effects/wounds/crack3.ogg and b/sounds/effects/wounds/crack3.ogg differ diff --git a/sounds/effects/wounds/sizzle1.ogg b/sounds/effects/wounds/sizzle1.ogg index 4a3d229018..cd07a734c4 100644 Binary files a/sounds/effects/wounds/sizzle1.ogg and b/sounds/effects/wounds/sizzle1.ogg differ diff --git a/sounds/effects/wounds/sizzle2.ogg b/sounds/effects/wounds/sizzle2.ogg index 409206e58a..4a476800f6 100644 Binary files a/sounds/effects/wounds/sizzle2.ogg and b/sounds/effects/wounds/sizzle2.ogg differ diff --git a/sounds/effects/xeno_evolveready.ogg b/sounds/effects/xeno_evolveready.ogg index 0548073d51..eeb5a66993 100644 Binary files a/sounds/effects/xeno_evolveready.ogg and b/sounds/effects/xeno_evolveready.ogg differ diff --git a/sounds/effects/xeno_newlarva.ogg b/sounds/effects/xeno_newlarva.ogg index 3d9a40a6bc..fd9c00d4d3 100644 Binary files a/sounds/effects/xeno_newlarva.ogg and b/sounds/effects/xeno_newlarva.ogg differ diff --git a/sounds/effects/xylophone1.ogg b/sounds/effects/xylophone1.ogg index 516d0f1a71..e51c3bc3a5 100644 Binary files a/sounds/effects/xylophone1.ogg and b/sounds/effects/xylophone1.ogg differ diff --git a/sounds/effects/xylophone2.ogg b/sounds/effects/xylophone2.ogg index b5adafcc5c..8d6663d215 100644 Binary files a/sounds/effects/xylophone2.ogg and b/sounds/effects/xylophone2.ogg differ diff --git a/sounds/effects/xylophone3.ogg b/sounds/effects/xylophone3.ogg index a3e7907d4a..7f6e1025ad 100644 Binary files a/sounds/effects/xylophone3.ogg and b/sounds/effects/xylophone3.ogg differ diff --git a/sounds/effects/zapbeep.ogg b/sounds/effects/zapbeep.ogg index 75161ce23c..c6441ff4b3 100644 Binary files a/sounds/effects/zapbeep.ogg and b/sounds/effects/zapbeep.ogg differ diff --git a/sounds/effects/zzzt.ogg b/sounds/effects/zzzt.ogg index b41b564264..28bf215dbb 100644 Binary files a/sounds/effects/zzzt.ogg and b/sounds/effects/zzzt.ogg differ diff --git a/sounds/hallucinations/behind_you1.ogg b/sounds/hallucinations/behind_you1.ogg index d3ddef7480..78c4c73962 100644 Binary files a/sounds/hallucinations/behind_you1.ogg and b/sounds/hallucinations/behind_you1.ogg differ diff --git a/sounds/hallucinations/behind_you2.ogg b/sounds/hallucinations/behind_you2.ogg index 530a71698c..d33224772a 100644 Binary files a/sounds/hallucinations/behind_you2.ogg and b/sounds/hallucinations/behind_you2.ogg differ diff --git a/sounds/hallucinations/far_noise.ogg b/sounds/hallucinations/far_noise.ogg index 11d849a89f..3ca42550f7 100644 Binary files a/sounds/hallucinations/far_noise.ogg and b/sounds/hallucinations/far_noise.ogg differ diff --git a/sounds/hallucinations/growl1.ogg b/sounds/hallucinations/growl1.ogg index 80aca01ce7..d207b7217f 100644 Binary files a/sounds/hallucinations/growl1.ogg and b/sounds/hallucinations/growl1.ogg differ diff --git a/sounds/hallucinations/growl2.ogg b/sounds/hallucinations/growl2.ogg index f10abf0fb2..295d2c7c36 100644 Binary files a/sounds/hallucinations/growl2.ogg and b/sounds/hallucinations/growl2.ogg differ diff --git a/sounds/hallucinations/growl3.ogg b/sounds/hallucinations/growl3.ogg index 3f3799bc0f..cd057ea238 100644 Binary files a/sounds/hallucinations/growl3.ogg and b/sounds/hallucinations/growl3.ogg differ diff --git a/sounds/hallucinations/i_see_you1.ogg b/sounds/hallucinations/i_see_you1.ogg index 66d5b65d59..f0039e47c7 100644 Binary files a/sounds/hallucinations/i_see_you1.ogg and b/sounds/hallucinations/i_see_you1.ogg differ diff --git a/sounds/hallucinations/i_see_you2.ogg b/sounds/hallucinations/i_see_you2.ogg index da908f2c4b..7ac0dab8a9 100644 Binary files a/sounds/hallucinations/i_see_you2.ogg and b/sounds/hallucinations/i_see_you2.ogg differ diff --git a/sounds/hallucinations/im_here1.ogg b/sounds/hallucinations/im_here1.ogg index b3a7142365..9c16af6b00 100644 Binary files a/sounds/hallucinations/im_here1.ogg and b/sounds/hallucinations/im_here1.ogg differ diff --git a/sounds/hallucinations/im_here2.ogg b/sounds/hallucinations/im_here2.ogg index bd841bcdb1..c8a6dc12e7 100644 Binary files a/sounds/hallucinations/im_here2.ogg and b/sounds/hallucinations/im_here2.ogg differ diff --git a/sounds/hallucinations/look_up1.ogg b/sounds/hallucinations/look_up1.ogg index 045d5d4a76..d8360205f4 100644 Binary files a/sounds/hallucinations/look_up1.ogg and b/sounds/hallucinations/look_up1.ogg differ diff --git a/sounds/hallucinations/look_up2.ogg b/sounds/hallucinations/look_up2.ogg index 1e6f14b21b..a65fb90edf 100644 Binary files a/sounds/hallucinations/look_up2.ogg and b/sounds/hallucinations/look_up2.ogg differ diff --git a/sounds/hallucinations/over_here1.ogg b/sounds/hallucinations/over_here1.ogg index 90f557b005..f92310fc45 100644 Binary files a/sounds/hallucinations/over_here1.ogg and b/sounds/hallucinations/over_here1.ogg differ diff --git a/sounds/hallucinations/over_here2.ogg b/sounds/hallucinations/over_here2.ogg index 2719e204a2..aedee156b8 100644 Binary files a/sounds/hallucinations/over_here2.ogg and b/sounds/hallucinations/over_here2.ogg differ diff --git a/sounds/hallucinations/over_here3.ogg b/sounds/hallucinations/over_here3.ogg index 1ef1a1d834..a9bd2143ea 100644 Binary files a/sounds/hallucinations/over_here3.ogg and b/sounds/hallucinations/over_here3.ogg differ diff --git a/sounds/hallucinations/turn_around1.ogg b/sounds/hallucinations/turn_around1.ogg index 7a83755a93..96008c8368 100644 Binary files a/sounds/hallucinations/turn_around1.ogg and b/sounds/hallucinations/turn_around1.ogg differ diff --git a/sounds/hallucinations/turn_around2.ogg b/sounds/hallucinations/turn_around2.ogg index f4328458dd..91b48fcd3b 100644 Binary files a/sounds/hallucinations/turn_around2.ogg and b/sounds/hallucinations/turn_around2.ogg differ diff --git a/sounds/hallucinations/veryfar_noise.ogg b/sounds/hallucinations/veryfar_noise.ogg index b27ce5dce9..64046d0166 100644 Binary files a/sounds/hallucinations/veryfar_noise.ogg and b/sounds/hallucinations/veryfar_noise.ogg differ diff --git a/sounds/hallucinations/wail.ogg b/sounds/hallucinations/wail.ogg index 66318be3e9..c600fad26c 100644 Binary files a/sounds/hallucinations/wail.ogg and b/sounds/hallucinations/wail.ogg differ diff --git a/sounds/items/AirHorn.ogg b/sounds/items/AirHorn.ogg index f70e6bf137..409f76ce61 100644 Binary files a/sounds/items/AirHorn.ogg and b/sounds/items/AirHorn.ogg differ diff --git a/sounds/items/Crowbar.ogg b/sounds/items/Crowbar.ogg index 47dcd7b2b6..53ed3a1686 100644 Binary files a/sounds/items/Crowbar.ogg and b/sounds/items/Crowbar.ogg differ diff --git a/sounds/items/Deconstruct.ogg b/sounds/items/Deconstruct.ogg index 49c206a2d7..6ec48f9e40 100644 Binary files a/sounds/items/Deconstruct.ogg and b/sounds/items/Deconstruct.ogg differ diff --git a/sounds/items/PSHOOM.ogg b/sounds/items/PSHOOM.ogg index 5628842f53..dd2f47592b 100644 Binary files a/sounds/items/PSHOOM.ogg and b/sounds/items/PSHOOM.ogg differ diff --git a/sounds/items/Ratchet.ogg b/sounds/items/Ratchet.ogg index 9cfb963962..4446ac4fc0 100644 Binary files a/sounds/items/Ratchet.ogg and b/sounds/items/Ratchet.ogg differ diff --git a/sounds/items/Screwdriver.ogg b/sounds/items/Screwdriver.ogg index 2ba9e831e3..3fb37212fb 100644 Binary files a/sounds/items/Screwdriver.ogg and b/sounds/items/Screwdriver.ogg differ diff --git a/sounds/items/Screwdriver2.ogg b/sounds/items/Screwdriver2.ogg index 5974a16e0d..d6659acf28 100644 Binary files a/sounds/items/Screwdriver2.ogg and b/sounds/items/Screwdriver2.ogg differ diff --git a/sounds/items/Welder.ogg b/sounds/items/Welder.ogg index 9e3339dc1e..c176b74b63 100644 Binary files a/sounds/items/Welder.ogg and b/sounds/items/Welder.ogg differ diff --git a/sounds/items/Welder2.ogg b/sounds/items/Welder2.ogg index fc2ce3e3cf..25700b2597 100644 Binary files a/sounds/items/Welder2.ogg and b/sounds/items/Welder2.ogg differ diff --git a/sounds/items/Wirecutter.ogg b/sounds/items/Wirecutter.ogg index a406c1fa84..2370279db5 100644 Binary files a/sounds/items/Wirecutter.ogg and b/sounds/items/Wirecutter.ogg differ diff --git a/sounds/items/air_horn_1.ogg b/sounds/items/air_horn_1.ogg index 09278c7c37..4a0c27f1b1 100644 Binary files a/sounds/items/air_horn_1.ogg and b/sounds/items/air_horn_1.ogg differ diff --git a/sounds/items/air_horn_2.ogg b/sounds/items/air_horn_2.ogg index 956102bf7e..6bfd22fcba 100644 Binary files a/sounds/items/air_horn_2.ogg and b/sounds/items/air_horn_2.ogg differ diff --git a/sounds/items/bikehorn.ogg b/sounds/items/bikehorn.ogg index 91b4585d43..bb2ec02737 100644 Binary files a/sounds/items/bikehorn.ogg and b/sounds/items/bikehorn.ogg differ diff --git a/sounds/items/bubblewrap.ogg b/sounds/items/bubblewrap.ogg index 5ea4726ecc..4c26600745 100644 Binary files a/sounds/items/bubblewrap.ogg and b/sounds/items/bubblewrap.ogg differ diff --git a/sounds/items/countdown.ogg b/sounds/items/countdown.ogg index bb19300ba9..fd78fdb3f4 100644 Binary files a/sounds/items/countdown.ogg and b/sounds/items/countdown.ogg differ diff --git a/sounds/items/defib_charge.ogg b/sounds/items/defib_charge.ogg index 0ac2d815ef..569c552c6c 100644 Binary files a/sounds/items/defib_charge.ogg and b/sounds/items/defib_charge.ogg differ diff --git a/sounds/items/defib_release.ogg b/sounds/items/defib_release.ogg index 7f16d673ed..9aea6530d8 100644 Binary files a/sounds/items/defib_release.ogg and b/sounds/items/defib_release.ogg differ diff --git a/sounds/items/detector.ogg b/sounds/items/detector.ogg index 7b4d42605f..6cee4cc9b9 100644 Binary files a/sounds/items/detector.ogg and b/sounds/items/detector.ogg differ diff --git a/sounds/items/drink.ogg b/sounds/items/drink.ogg index 4dc9f88be4..c176cc28e7 100644 Binary files a/sounds/items/drink.ogg and b/sounds/items/drink.ogg differ diff --git a/sounds/items/eatfood.ogg b/sounds/items/eatfood.ogg index 84c67abe44..d727dc91ad 100644 Binary files a/sounds/items/eatfood.ogg and b/sounds/items/eatfood.ogg differ diff --git a/sounds/items/electronic_assembly_empty.ogg b/sounds/items/electronic_assembly_empty.ogg index 9144b414df..4d146d8b6a 100644 Binary files a/sounds/items/electronic_assembly_empty.ogg and b/sounds/items/electronic_assembly_empty.ogg differ diff --git a/sounds/items/electronic_assembly_emptying.ogg b/sounds/items/electronic_assembly_emptying.ogg index 70e47e7f83..7c41fcd3a2 100644 Binary files a/sounds/items/electronic_assembly_emptying.ogg and b/sounds/items/electronic_assembly_emptying.ogg differ diff --git a/sounds/items/gavel.ogg b/sounds/items/gavel.ogg index 22a851e1f3..53c01b5c20 100644 Binary files a/sounds/items/gavel.ogg and b/sounds/items/gavel.ogg differ diff --git a/sounds/items/geiger.ogg b/sounds/items/geiger.ogg index 5959f1debf..4bef09f067 100644 Binary files a/sounds/items/geiger.ogg and b/sounds/items/geiger.ogg differ diff --git a/sounds/items/goggles_charge.ogg b/sounds/items/goggles_charge.ogg index b41bbf1d06..1d594fe4ea 100644 Binary files a/sounds/items/goggles_charge.ogg and b/sounds/items/goggles_charge.ogg differ diff --git a/sounds/items/healthanalyzer.ogg b/sounds/items/healthanalyzer.ogg index 56fd762cdd..c060b88275 100644 Binary files a/sounds/items/healthanalyzer.ogg and b/sounds/items/healthanalyzer.ogg differ diff --git a/sounds/items/helmet_close.ogg b/sounds/items/helmet_close.ogg index d29b8b6a6b..4bb3571549 100644 Binary files a/sounds/items/helmet_close.ogg and b/sounds/items/helmet_close.ogg differ diff --git a/sounds/items/helmet_open.ogg b/sounds/items/helmet_open.ogg index ce28d7294b..6cdb129f35 100644 Binary files a/sounds/items/helmet_open.ogg and b/sounds/items/helmet_open.ogg differ diff --git a/sounds/items/holster_sword1.ogg b/sounds/items/holster_sword1.ogg index f21ffbfa6a..87a7eb2f6a 100644 Binary files a/sounds/items/holster_sword1.ogg and b/sounds/items/holster_sword1.ogg differ diff --git a/sounds/items/holster_sword2.ogg b/sounds/items/holster_sword2.ogg index 86d2fbb59c..bf52cd453e 100644 Binary files a/sounds/items/holster_sword2.ogg and b/sounds/items/holster_sword2.ogg differ diff --git a/sounds/items/hypospray.ogg b/sounds/items/hypospray.ogg index 4348d39f63..6a8c6ee81b 100644 Binary files a/sounds/items/hypospray.ogg and b/sounds/items/hypospray.ogg differ diff --git a/sounds/items/jaws_pry.ogg b/sounds/items/jaws_pry.ogg index 05178bd466..a3a2bcabbe 100644 Binary files a/sounds/items/jaws_pry.ogg and b/sounds/items/jaws_pry.ogg differ diff --git a/sounds/items/lighter1.ogg b/sounds/items/lighter1.ogg index e6af78e093..42b2a40f5e 100644 Binary files a/sounds/items/lighter1.ogg and b/sounds/items/lighter1.ogg differ diff --git a/sounds/items/lighter2.ogg b/sounds/items/lighter2.ogg index f476e49203..2bb425bacd 100644 Binary files a/sounds/items/lighter2.ogg and b/sounds/items/lighter2.ogg differ diff --git a/sounds/items/lighter3.ogg b/sounds/items/lighter3.ogg index 9296ba22b0..b970bc9aec 100644 Binary files a/sounds/items/lighter3.ogg and b/sounds/items/lighter3.ogg differ diff --git a/sounds/items/manydings.ogg b/sounds/items/manydings.ogg index 7fd7bacc94..f5ab2ee51b 100644 Binary files a/sounds/items/manydings.ogg and b/sounds/items/manydings.ogg differ diff --git a/sounds/items/match.ogg b/sounds/items/match.ogg index 84f5f39729..fc05536ca6 100644 Binary files a/sounds/items/match.ogg and b/sounds/items/match.ogg differ diff --git a/sounds/items/multitool_pulse.ogg b/sounds/items/multitool_pulse.ogg index a0419182e0..78603ff5df 100644 Binary files a/sounds/items/multitool_pulse.ogg and b/sounds/items/multitool_pulse.ogg differ diff --git a/sounds/items/oneding.ogg b/sounds/items/oneding.ogg index 33526c080e..c7c5f8dd8c 100644 Binary files a/sounds/items/oneding.ogg and b/sounds/items/oneding.ogg differ diff --git a/sounds/items/penclick.ogg b/sounds/items/penclick.ogg index 2e0f37655b..e9c7bb8961 100644 Binary files a/sounds/items/penclick.ogg and b/sounds/items/penclick.ogg differ diff --git a/sounds/items/polaroid1.ogg b/sounds/items/polaroid1.ogg index d5a6d7d78a..b4ea3ac55f 100644 Binary files a/sounds/items/polaroid1.ogg and b/sounds/items/polaroid1.ogg differ diff --git a/sounds/items/polaroid2.ogg b/sounds/items/polaroid2.ogg index 27f492a456..414bf70d6c 100644 Binary files a/sounds/items/polaroid2.ogg and b/sounds/items/polaroid2.ogg differ diff --git a/sounds/items/poster_being_created.ogg b/sounds/items/poster_being_created.ogg index 6f4e9bce68..808cedc6c5 100644 Binary files a/sounds/items/poster_being_created.ogg and b/sounds/items/poster_being_created.ogg differ diff --git a/sounds/items/poster_ripped.ogg b/sounds/items/poster_ripped.ogg index e42e36ce97..c8722cd42c 100644 Binary files a/sounds/items/poster_ripped.ogg and b/sounds/items/poster_ripped.ogg differ diff --git a/sounds/items/pshred.ogg b/sounds/items/pshred.ogg index a722f30068..15fc7ed2d1 100644 Binary files a/sounds/items/pshred.ogg and b/sounds/items/pshred.ogg differ diff --git a/sounds/items/rped.ogg b/sounds/items/rped.ogg index 93dca60d34..8479631a71 100644 Binary files a/sounds/items/rped.ogg and b/sounds/items/rped.ogg differ diff --git a/sounds/items/syringeproj.ogg b/sounds/items/syringeproj.ogg index 25b94915a1..8349d82be1 100644 Binary files a/sounds/items/syringeproj.ogg and b/sounds/items/syringeproj.ogg differ diff --git a/sounds/items/threedings.ogg b/sounds/items/threedings.ogg index ebbffffd27..023446bafa 100644 Binary files a/sounds/items/threedings.ogg and b/sounds/items/threedings.ogg differ diff --git a/sounds/items/tick.ogg b/sounds/items/tick.ogg index 87b0997fbe..78ee25b44a 100644 Binary files a/sounds/items/tick.ogg and b/sounds/items/tick.ogg differ diff --git a/sounds/items/time.ogg b/sounds/items/time.ogg index 3cfd919b88..0307ef1595 100644 Binary files a/sounds/items/time.ogg and b/sounds/items/time.ogg differ diff --git a/sounds/items/timer.ogg b/sounds/items/timer.ogg index a13db015be..84a88ce145 100644 Binary files a/sounds/items/timer.ogg and b/sounds/items/timer.ogg differ diff --git a/sounds/items/trayhit1.ogg b/sounds/items/trayhit1.ogg index 4eb48c680e..340791ab33 100644 Binary files a/sounds/items/trayhit1.ogg and b/sounds/items/trayhit1.ogg differ diff --git a/sounds/items/trayhit2.ogg b/sounds/items/trayhit2.ogg index 066e44bf0b..8cc26f5e73 100644 Binary files a/sounds/items/trayhit2.ogg and b/sounds/items/trayhit2.ogg differ diff --git a/sounds/items/unholster.ogg b/sounds/items/unholster.ogg index 327aea6482..88e43ad97c 100644 Binary files a/sounds/items/unholster.ogg and b/sounds/items/unholster.ogg differ diff --git a/sounds/items/unholster_knife.ogg b/sounds/items/unholster_knife.ogg index 99191b257b..54bb6c0f35 100644 Binary files a/sounds/items/unholster_knife.ogg and b/sounds/items/unholster_knife.ogg differ diff --git a/sounds/items/unholster_sword01.ogg b/sounds/items/unholster_sword01.ogg index 67e05cca76..6133d8b55a 100644 Binary files a/sounds/items/unholster_sword01.ogg and b/sounds/items/unholster_sword01.ogg differ diff --git a/sounds/items/unholster_sword02.ogg b/sounds/items/unholster_sword02.ogg index d5149e3905..67966ecd8b 100644 Binary files a/sounds/items/unholster_sword02.ogg and b/sounds/items/unholster_sword02.ogg differ diff --git a/sounds/items/welderactivate.ogg b/sounds/items/welderactivate.ogg index e01102a9ed..46eccdea97 100644 Binary files a/sounds/items/welderactivate.ogg and b/sounds/items/welderactivate.ogg differ diff --git a/sounds/items/welderdeactivate.ogg b/sounds/items/welderdeactivate.ogg index 22ac4f445c..78a6c1afdc 100644 Binary files a/sounds/items/welderdeactivate.ogg and b/sounds/items/welderdeactivate.ogg differ diff --git a/sounds/items/weldingtool_off.ogg b/sounds/items/weldingtool_off.ogg index c7cd388bbc..ee31c00bfd 100644 Binary files a/sounds/items/weldingtool_off.ogg and b/sounds/items/weldingtool_off.ogg differ diff --git a/sounds/items/weldingtool_on.ogg b/sounds/items/weldingtool_on.ogg index 8e0061e159..cf3c6bef95 100644 Binary files a/sounds/items/weldingtool_on.ogg and b/sounds/items/weldingtool_on.ogg differ diff --git a/sounds/items/weldingtool_weld.ogg b/sounds/items/weldingtool_weld.ogg index abe65e825c..3a3d0dd08b 100644 Binary files a/sounds/items/weldingtool_weld.ogg and b/sounds/items/weldingtool_weld.ogg differ diff --git a/sounds/items/whistle.ogg b/sounds/items/whistle.ogg index 8e276d5226..c27abfbc54 100644 Binary files a/sounds/items/whistle.ogg and b/sounds/items/whistle.ogg differ diff --git a/sounds/items/wineglass.ogg b/sounds/items/wineglass.ogg index e91f12ca7b..0d2b556111 100644 Binary files a/sounds/items/wineglass.ogg and b/sounds/items/wineglass.ogg differ diff --git a/sounds/items/zip.ogg b/sounds/items/zip.ogg index fff4b3e355..3fca146b2d 100644 Binary files a/sounds/items/zip.ogg and b/sounds/items/zip.ogg differ diff --git a/sounds/items/zippo_close.ogg b/sounds/items/zippo_close.ogg index 8d51263dfd..fdd68d4ffd 100644 Binary files a/sounds/items/zippo_close.ogg and b/sounds/items/zippo_close.ogg differ diff --git a/sounds/items/zippo_open.ogg b/sounds/items/zippo_open.ogg index 1c1681d999..1550c58d1a 100644 Binary files a/sounds/items/zippo_open.ogg and b/sounds/items/zippo_open.ogg differ diff --git a/sounds/machines/AirlockClose.ogg b/sounds/machines/AirlockClose.ogg index 58a06817f0..02fc82a5d1 100644 Binary files a/sounds/machines/AirlockClose.ogg and b/sounds/machines/AirlockClose.ogg differ diff --git a/sounds/machines/AirlockClose_heavy.ogg b/sounds/machines/AirlockClose_heavy.ogg index 26690ccf37..bc041e32fd 100644 Binary files a/sounds/machines/AirlockClose_heavy.ogg and b/sounds/machines/AirlockClose_heavy.ogg differ diff --git a/sounds/machines/AirlockClose_heavy_old.ogg b/sounds/machines/AirlockClose_heavy_old.ogg index 26690ccf37..1c0456ca45 100644 Binary files a/sounds/machines/AirlockClose_heavy_old.ogg and b/sounds/machines/AirlockClose_heavy_old.ogg differ diff --git a/sounds/machines/Alarm.ogg b/sounds/machines/Alarm.ogg index 2aec35bd32..3aff3e0d65 100644 Binary files a/sounds/machines/Alarm.ogg and b/sounds/machines/Alarm.ogg differ diff --git a/sounds/machines/BoltsDown.ogg b/sounds/machines/BoltsDown.ogg index c7320a04df..26fc6218b2 100644 Binary files a/sounds/machines/BoltsDown.ogg and b/sounds/machines/BoltsDown.ogg differ diff --git a/sounds/machines/BoltsUp.ogg b/sounds/machines/BoltsUp.ogg index bc422e2872..7a4cb45254 100644 Binary files a/sounds/machines/BoltsUp.ogg and b/sounds/machines/BoltsUp.ogg differ diff --git a/sounds/machines/DoorClose1.ogg b/sounds/machines/DoorClose1.ogg index 7ebbb38fbc..328cdef8ce 100644 Binary files a/sounds/machines/DoorClose1.ogg and b/sounds/machines/DoorClose1.ogg differ diff --git a/sounds/machines/DoorClose2.ogg b/sounds/machines/DoorClose2.ogg index 3a7a6aa9fd..fb996ca0be 100644 Binary files a/sounds/machines/DoorClose2.ogg and b/sounds/machines/DoorClose2.ogg differ diff --git a/sounds/machines/DoorOpen1.ogg b/sounds/machines/DoorOpen1.ogg index 22af6605d9..a25cc6d712 100644 Binary files a/sounds/machines/DoorOpen1.ogg and b/sounds/machines/DoorOpen1.ogg differ diff --git a/sounds/machines/DoorOpen2.ogg b/sounds/machines/DoorOpen2.ogg index 3d71dd94e5..32e1b9e588 100644 Binary files a/sounds/machines/DoorOpen2.ogg and b/sounds/machines/DoorOpen2.ogg differ diff --git a/sounds/machines/airalarm.ogg b/sounds/machines/airalarm.ogg index cc543b444e..6c8c54a6e5 100644 Binary files a/sounds/machines/airalarm.ogg and b/sounds/machines/airalarm.ogg differ diff --git a/sounds/machines/airlock.ogg b/sounds/machines/airlock.ogg index 3a49c1562c..ac7d94efab 100644 Binary files a/sounds/machines/airlock.ogg and b/sounds/machines/airlock.ogg differ diff --git a/sounds/machines/airlock_close.ogg b/sounds/machines/airlock_close.ogg index bd928cad8b..46e36a28e5 100644 Binary files a/sounds/machines/airlock_close.ogg and b/sounds/machines/airlock_close.ogg differ diff --git a/sounds/machines/airlock_close_force.ogg b/sounds/machines/airlock_close_force.ogg index 28b190d8e0..817b95f57b 100644 Binary files a/sounds/machines/airlock_close_force.ogg and b/sounds/machines/airlock_close_force.ogg differ diff --git a/sounds/machines/airlock_creaking.ogg b/sounds/machines/airlock_creaking.ogg index e69ebc275f..0805f74ca5 100644 Binary files a/sounds/machines/airlock_creaking.ogg and b/sounds/machines/airlock_creaking.ogg differ diff --git a/sounds/machines/airlock_heavy.ogg b/sounds/machines/airlock_heavy.ogg index 3ad3e61862..22835a0a19 100644 Binary files a/sounds/machines/airlock_heavy.ogg and b/sounds/machines/airlock_heavy.ogg differ diff --git a/sounds/machines/airlock_heavy_old.ogg b/sounds/machines/airlock_heavy_old.ogg index 3ad3e61862..f736b1432d 100644 Binary files a/sounds/machines/airlock_heavy_old.ogg and b/sounds/machines/airlock_heavy_old.ogg differ diff --git a/sounds/machines/airlock_open.ogg b/sounds/machines/airlock_open.ogg index d47c40d3fc..229a7d62ad 100644 Binary files a/sounds/machines/airlock_open.ogg and b/sounds/machines/airlock_open.ogg differ diff --git a/sounds/machines/airlock_open_force.ogg b/sounds/machines/airlock_open_force.ogg index 4caefc0b9e..ed2ebf26c6 100644 Binary files a/sounds/machines/airlock_open_force.ogg and b/sounds/machines/airlock_open_force.ogg differ diff --git a/sounds/machines/apc_nopower.ogg b/sounds/machines/apc_nopower.ogg index b73c50d9b0..21f4cecc44 100644 Binary files a/sounds/machines/apc_nopower.ogg and b/sounds/machines/apc_nopower.ogg differ diff --git a/sounds/machines/beepalert.ogg b/sounds/machines/beepalert.ogg index 94b5419477..90557bfe45 100644 Binary files a/sounds/machines/beepalert.ogg and b/sounds/machines/beepalert.ogg differ diff --git a/sounds/machines/beepconfused.ogg b/sounds/machines/beepconfused.ogg index eb02ae25da..bc6761a30a 100644 Binary files a/sounds/machines/beepconfused.ogg and b/sounds/machines/beepconfused.ogg differ diff --git a/sounds/machines/beepsad.ogg b/sounds/machines/beepsad.ogg index 2fd3aba528..c98f8699e7 100644 Binary files a/sounds/machines/beepsad.ogg and b/sounds/machines/beepsad.ogg differ diff --git a/sounds/machines/blastdoor.ogg b/sounds/machines/blastdoor.ogg index 67691584ed..ea36880398 100644 Binary files a/sounds/machines/blastdoor.ogg and b/sounds/machines/blastdoor.ogg differ diff --git a/sounds/machines/blastdoor_close.ogg b/sounds/machines/blastdoor_close.ogg index c48a0bd7d6..0e67be6591 100644 Binary files a/sounds/machines/blastdoor_close.ogg and b/sounds/machines/blastdoor_close.ogg differ diff --git a/sounds/machines/blastdoor_open.ogg b/sounds/machines/blastdoor_open.ogg index 4f61ea2302..c435e25f2e 100644 Binary files a/sounds/machines/blastdoor_open.ogg and b/sounds/machines/blastdoor_open.ogg differ diff --git a/sounds/machines/blender.ogg b/sounds/machines/blender.ogg index 2497b97e01..bdedef8f1b 100644 Binary files a/sounds/machines/blender.ogg and b/sounds/machines/blender.ogg differ diff --git a/sounds/machines/bolts_down.ogg b/sounds/machines/bolts_down.ogg index 02040d1d08..222663eefe 100644 Binary files a/sounds/machines/bolts_down.ogg and b/sounds/machines/bolts_down.ogg differ diff --git a/sounds/machines/bolts_up.ogg b/sounds/machines/bolts_up.ogg index ee81520723..5ddd00acf7 100644 Binary files a/sounds/machines/bolts_up.ogg and b/sounds/machines/bolts_up.ogg differ diff --git a/sounds/machines/boop1.ogg b/sounds/machines/boop1.ogg index 86eb5be006..5e9c76e68b 100644 Binary files a/sounds/machines/boop1.ogg and b/sounds/machines/boop1.ogg differ diff --git a/sounds/machines/boop2.ogg b/sounds/machines/boop2.ogg index 76a47c5a9b..4914a99d12 100644 Binary files a/sounds/machines/boop2.ogg and b/sounds/machines/boop2.ogg differ diff --git a/sounds/machines/button1.ogg b/sounds/machines/button1.ogg index 3499e2d172..9471708b38 100644 Binary files a/sounds/machines/button1.ogg and b/sounds/machines/button1.ogg differ diff --git a/sounds/machines/button2.ogg b/sounds/machines/button2.ogg index 83970986e3..ded3126456 100644 Binary files a/sounds/machines/button2.ogg and b/sounds/machines/button2.ogg differ diff --git a/sounds/machines/button3.ogg b/sounds/machines/button3.ogg index a28da269ad..85f989e1bf 100644 Binary files a/sounds/machines/button3.ogg and b/sounds/machines/button3.ogg differ diff --git a/sounds/machines/button4.ogg b/sounds/machines/button4.ogg index 9fceed1611..c5d2b87aae 100644 Binary files a/sounds/machines/button4.ogg and b/sounds/machines/button4.ogg differ diff --git a/sounds/machines/buttonbeep.ogg b/sounds/machines/buttonbeep.ogg index 347ea13544..b3abcbb241 100644 Binary files a/sounds/machines/buttonbeep.ogg and b/sounds/machines/buttonbeep.ogg differ diff --git a/sounds/machines/buzz-sigh.ogg b/sounds/machines/buzz-sigh.ogg index 109c196e2c..aadce7fa1d 100644 Binary files a/sounds/machines/buzz-sigh.ogg and b/sounds/machines/buzz-sigh.ogg differ diff --git a/sounds/machines/buzz-two.ogg b/sounds/machines/buzz-two.ogg index 3f79e2a0e9..9edd71ae35 100644 Binary files a/sounds/machines/buzz-two.ogg and b/sounds/machines/buzz-two.ogg differ diff --git a/sounds/machines/cb_button.ogg b/sounds/machines/cb_button.ogg index e6563b0f01..27fc7aac29 100644 Binary files a/sounds/machines/cb_button.ogg and b/sounds/machines/cb_button.ogg differ diff --git a/sounds/machines/cb_button_fail.ogg b/sounds/machines/cb_button_fail.ogg index 24a50cee8a..0abbfa9174 100644 Binary files a/sounds/machines/cb_button_fail.ogg and b/sounds/machines/cb_button_fail.ogg differ diff --git a/sounds/machines/chime.ogg b/sounds/machines/chime.ogg index 20548c73cd..585da2ed58 100644 Binary files a/sounds/machines/chime.ogg and b/sounds/machines/chime.ogg differ diff --git a/sounds/machines/click.ogg b/sounds/machines/click.ogg index 23a4fa1bb1..9157c5031c 100644 Binary files a/sounds/machines/click.ogg and b/sounds/machines/click.ogg differ diff --git a/sounds/machines/computer_typing1.ogg b/sounds/machines/computer_typing1.ogg index cfebd6c0e7..6cbc1ebd6b 100644 Binary files a/sounds/machines/computer_typing1.ogg and b/sounds/machines/computer_typing1.ogg differ diff --git a/sounds/machines/computer_typing2.ogg b/sounds/machines/computer_typing2.ogg index 93b1c5756b..61fa3aa38b 100644 Binary files a/sounds/machines/computer_typing2.ogg and b/sounds/machines/computer_typing2.ogg differ diff --git a/sounds/machines/computer_typing3.ogg b/sounds/machines/computer_typing3.ogg index c110a3fee8..d7e7b9f431 100644 Binary files a/sounds/machines/computer_typing3.ogg and b/sounds/machines/computer_typing3.ogg differ diff --git a/sounds/machines/copier.ogg b/sounds/machines/copier.ogg index 4e407a573d..7dbdb89d1d 100644 Binary files a/sounds/machines/copier.ogg and b/sounds/machines/copier.ogg differ diff --git a/sounds/machines/defib_SafetyOn.ogg b/sounds/machines/defib_SafetyOn.ogg index cf26153646..be04aee59a 100644 Binary files a/sounds/machines/defib_SafetyOn.ogg and b/sounds/machines/defib_SafetyOn.ogg differ diff --git a/sounds/machines/defib_charge.ogg b/sounds/machines/defib_charge.ogg index 3e2be160fd..43498124c5 100644 Binary files a/sounds/machines/defib_charge.ogg and b/sounds/machines/defib_charge.ogg differ diff --git a/sounds/machines/defib_failed.ogg b/sounds/machines/defib_failed.ogg index 341f70ce84..cd68e8065a 100644 Binary files a/sounds/machines/defib_failed.ogg and b/sounds/machines/defib_failed.ogg differ diff --git a/sounds/machines/defib_ready.ogg b/sounds/machines/defib_ready.ogg index 718128602e..ee45dc5a50 100644 Binary files a/sounds/machines/defib_ready.ogg and b/sounds/machines/defib_ready.ogg differ diff --git a/sounds/machines/defib_safetyOff.ogg b/sounds/machines/defib_safetyOff.ogg index 6ab57097de..c6c847aab9 100644 Binary files a/sounds/machines/defib_safetyOff.ogg and b/sounds/machines/defib_safetyOff.ogg differ diff --git a/sounds/machines/defib_success.ogg b/sounds/machines/defib_success.ogg index 3f71438c16..7b690ad149 100644 Binary files a/sounds/machines/defib_success.ogg and b/sounds/machines/defib_success.ogg differ diff --git a/sounds/machines/defib_zap.ogg b/sounds/machines/defib_zap.ogg index 5612db39a4..d76502951b 100644 Binary files a/sounds/machines/defib_zap.ogg and b/sounds/machines/defib_zap.ogg differ diff --git a/sounds/machines/deniedboop.ogg b/sounds/machines/deniedboop.ogg index 2bcb70e70f..fd3a18834d 100644 Binary files a/sounds/machines/deniedboop.ogg and b/sounds/machines/deniedboop.ogg differ diff --git a/sounds/machines/ding.ogg b/sounds/machines/ding.ogg index 664a52e99a..f2875893c8 100644 Binary files a/sounds/machines/ding.ogg and b/sounds/machines/ding.ogg differ diff --git a/sounds/machines/disperser_fire.ogg b/sounds/machines/disperser_fire.ogg index 19244ff69d..b4537751cc 100644 Binary files a/sounds/machines/disperser_fire.ogg and b/sounds/machines/disperser_fire.ogg differ diff --git a/sounds/machines/disposalflush.ogg b/sounds/machines/disposalflush.ogg index 33818256ad..892f5b645b 100644 Binary files a/sounds/machines/disposalflush.ogg and b/sounds/machines/disposalflush.ogg differ diff --git a/sounds/machines/door_close.ogg b/sounds/machines/door_close.ogg index e0e6c01b68..9e913b4bff 100644 Binary files a/sounds/machines/door_close.ogg and b/sounds/machines/door_close.ogg differ diff --git a/sounds/machines/door_locked.ogg b/sounds/machines/door_locked.ogg index 4a59d6bf84..35210dff9f 100644 Binary files a/sounds/machines/door_locked.ogg and b/sounds/machines/door_locked.ogg differ diff --git a/sounds/machines/door_open.ogg b/sounds/machines/door_open.ogg index 2303efcaf4..e74e3d996a 100644 Binary files a/sounds/machines/door_open.ogg and b/sounds/machines/door_open.ogg differ diff --git a/sounds/machines/dotprinter.ogg b/sounds/machines/dotprinter.ogg index 6ab9cd9421..7f410d7fd5 100644 Binary files a/sounds/machines/dotprinter.ogg and b/sounds/machines/dotprinter.ogg differ diff --git a/sounds/machines/ekg_alert.ogg b/sounds/machines/ekg_alert.ogg index ecc04d4c07..83d8cfab7d 100644 Binary files a/sounds/machines/ekg_alert.ogg and b/sounds/machines/ekg_alert.ogg differ diff --git a/sounds/machines/elevator_move.ogg b/sounds/machines/elevator_move.ogg index 30b9f2fdb6..367e182c35 100644 Binary files a/sounds/machines/elevator_move.ogg and b/sounds/machines/elevator_move.ogg differ diff --git a/sounds/machines/elevator_openclose.ogg b/sounds/machines/elevator_openclose.ogg index bb2d58ad1d..974a64f3a1 100644 Binary files a/sounds/machines/elevator_openclose.ogg and b/sounds/machines/elevator_openclose.ogg differ diff --git a/sounds/machines/emergency_shutter.ogg b/sounds/machines/emergency_shutter.ogg index f9dbb271ad..c145ba7bfa 100644 Binary files a/sounds/machines/emergency_shutter.ogg and b/sounds/machines/emergency_shutter.ogg differ diff --git a/sounds/machines/engine.ogg b/sounds/machines/engine.ogg index d56bbaf6c6..a8cfa1d190 100644 Binary files a/sounds/machines/engine.ogg and b/sounds/machines/engine.ogg differ diff --git a/sounds/machines/fax.ogg b/sounds/machines/fax.ogg index 488b76adb6..4fdcd67b14 100644 Binary files a/sounds/machines/fax.ogg and b/sounds/machines/fax.ogg differ diff --git a/sounds/machines/fire_alarm.ogg b/sounds/machines/fire_alarm.ogg index 8ee1628680..6209906d16 100644 Binary files a/sounds/machines/fire_alarm.ogg and b/sounds/machines/fire_alarm.ogg differ diff --git a/sounds/machines/firedoor.ogg b/sounds/machines/firedoor.ogg index e10d4339fd..e24bd235c6 100644 Binary files a/sounds/machines/firedoor.ogg and b/sounds/machines/firedoor.ogg differ diff --git a/sounds/machines/flatline.ogg b/sounds/machines/flatline.ogg index 422ae26576..f004b04f34 100644 Binary files a/sounds/machines/flatline.ogg and b/sounds/machines/flatline.ogg differ diff --git a/sounds/machines/grinder.ogg b/sounds/machines/grinder.ogg index 18b095914d..be9f6038e9 100644 Binary files a/sounds/machines/grinder.ogg and b/sounds/machines/grinder.ogg differ diff --git a/sounds/machines/hiss.ogg b/sounds/machines/hiss.ogg index 23f18200e3..98071bcd33 100644 Binary files a/sounds/machines/hiss.ogg and b/sounds/machines/hiss.ogg differ diff --git a/sounds/machines/hydraulics_1.ogg b/sounds/machines/hydraulics_1.ogg index c599305218..c7be37b404 100644 Binary files a/sounds/machines/hydraulics_1.ogg and b/sounds/machines/hydraulics_1.ogg differ diff --git a/sounds/machines/hydraulics_2.ogg b/sounds/machines/hydraulics_2.ogg index f418479bb3..bc8d7816bc 100644 Binary files a/sounds/machines/hydraulics_2.ogg and b/sounds/machines/hydraulics_2.ogg differ diff --git a/sounds/machines/juicer.ogg b/sounds/machines/juicer.ogg index 2c76f0fdb4..4699e4f04b 100644 Binary files a/sounds/machines/juicer.ogg and b/sounds/machines/juicer.ogg differ diff --git a/sounds/machines/juicer_old.ogg b/sounds/machines/juicer_old.ogg index dad905fc6c..b9c02493c7 100644 Binary files a/sounds/machines/juicer_old.ogg and b/sounds/machines/juicer_old.ogg differ diff --git a/sounds/machines/keyboard/keypress1.ogg b/sounds/machines/keyboard/keypress1.ogg index 582a7eaf12..a1c328a218 100644 Binary files a/sounds/machines/keyboard/keypress1.ogg and b/sounds/machines/keyboard/keypress1.ogg differ diff --git a/sounds/machines/keyboard/keypress2.ogg b/sounds/machines/keyboard/keypress2.ogg index 20f3e6697c..86a8a22d62 100644 Binary files a/sounds/machines/keyboard/keypress2.ogg and b/sounds/machines/keyboard/keypress2.ogg differ diff --git a/sounds/machines/keyboard/keypress3.ogg b/sounds/machines/keyboard/keypress3.ogg index 852478f06e..60bfaabc28 100644 Binary files a/sounds/machines/keyboard/keypress3.ogg and b/sounds/machines/keyboard/keypress3.ogg differ diff --git a/sounds/machines/keyboard/keypress4.ogg b/sounds/machines/keyboard/keypress4.ogg index 2cc664bf58..d53ee128d7 100644 Binary files a/sounds/machines/keyboard/keypress4.ogg and b/sounds/machines/keyboard/keypress4.ogg differ diff --git a/sounds/machines/keyboard/keystroke1.ogg b/sounds/machines/keyboard/keystroke1.ogg index dc2b4bf343..a769475012 100644 Binary files a/sounds/machines/keyboard/keystroke1.ogg and b/sounds/machines/keyboard/keystroke1.ogg differ diff --git a/sounds/machines/keyboard/keystroke2.ogg b/sounds/machines/keyboard/keystroke2.ogg index 35fbaedbf7..6a2394944d 100644 Binary files a/sounds/machines/keyboard/keystroke2.ogg and b/sounds/machines/keyboard/keystroke2.ogg differ diff --git a/sounds/machines/keyboard/keystroke3.ogg b/sounds/machines/keyboard/keystroke3.ogg index 01bd8d900c..b8585cfbbd 100644 Binary files a/sounds/machines/keyboard/keystroke3.ogg and b/sounds/machines/keyboard/keystroke3.ogg differ diff --git a/sounds/machines/keyboard/keystroke4.ogg b/sounds/machines/keyboard/keystroke4.ogg index 8647c2b310..733f9742c5 100644 Binary files a/sounds/machines/keyboard/keystroke4.ogg and b/sounds/machines/keyboard/keystroke4.ogg differ diff --git a/sounds/machines/keycardenied.ogg b/sounds/machines/keycardenied.ogg index 63bdf351e8..cf406cb9d9 100644 Binary files a/sounds/machines/keycardenied.ogg and b/sounds/machines/keycardenied.ogg differ diff --git a/sounds/machines/lever_flip.ogg b/sounds/machines/lever_flip.ogg index fcd2538692..944e8286cf 100644 Binary files a/sounds/machines/lever_flip.ogg and b/sounds/machines/lever_flip.ogg differ diff --git a/sounds/machines/lightson.ogg b/sounds/machines/lightson.ogg index 92b6c6cd21..0990a9f036 100644 Binary files a/sounds/machines/lightson.ogg and b/sounds/machines/lightson.ogg differ diff --git a/sounds/machines/lockenable.ogg b/sounds/machines/lockenable.ogg index 5003b3fe15..184ce1bcf6 100644 Binary files a/sounds/machines/lockenable.ogg and b/sounds/machines/lockenable.ogg differ diff --git a/sounds/machines/lockreset.ogg b/sounds/machines/lockreset.ogg index 6f61430ad7..aabd018a1e 100644 Binary files a/sounds/machines/lockreset.ogg and b/sounds/machines/lockreset.ogg differ diff --git a/sounds/machines/medbayscanner.ogg b/sounds/machines/medbayscanner.ogg index a3402e3304..df0a372575 100644 Binary files a/sounds/machines/medbayscanner.ogg and b/sounds/machines/medbayscanner.ogg differ diff --git a/sounds/machines/medevac_extend.ogg b/sounds/machines/medevac_extend.ogg index 80f83eca7b..e4c479d755 100644 Binary files a/sounds/machines/medevac_extend.ogg and b/sounds/machines/medevac_extend.ogg differ diff --git a/sounds/machines/pda_click.ogg b/sounds/machines/pda_click.ogg index fbca04f5f9..647d6d08c3 100644 Binary files a/sounds/machines/pda_click.ogg and b/sounds/machines/pda_click.ogg differ diff --git a/sounds/machines/ping.ogg b/sounds/machines/ping.ogg index 3516d48d25..ed16a35ac5 100644 Binary files a/sounds/machines/ping.ogg and b/sounds/machines/ping.ogg differ diff --git a/sounds/machines/pipeleak.ogg b/sounds/machines/pipeleak.ogg index c6af803323..c3410bedc5 100644 Binary files a/sounds/machines/pipeleak.ogg and b/sounds/machines/pipeleak.ogg differ diff --git a/sounds/machines/pump.ogg b/sounds/machines/pump.ogg index 967a2e49a7..29d0761369 100644 Binary files a/sounds/machines/pump.ogg and b/sounds/machines/pump.ogg differ diff --git a/sounds/machines/quiet_beep.ogg b/sounds/machines/quiet_beep.ogg index 332d409591..ce87ce47a3 100644 Binary files a/sounds/machines/quiet_beep.ogg and b/sounds/machines/quiet_beep.ogg differ diff --git a/sounds/machines/quiet_double_beep.ogg b/sounds/machines/quiet_double_beep.ogg index ebfedbdf85..f4f66c128c 100644 Binary files a/sounds/machines/quiet_double_beep.ogg and b/sounds/machines/quiet_double_beep.ogg differ diff --git a/sounds/machines/scrubber-active.ogg b/sounds/machines/scrubber-active.ogg index cd3e828e14..704b5dc63f 100644 Binary files a/sounds/machines/scrubber-active.ogg and b/sounds/machines/scrubber-active.ogg differ diff --git a/sounds/machines/shutters_close.ogg b/sounds/machines/shutters_close.ogg index 548cea96c5..5f3163137b 100644 Binary files a/sounds/machines/shutters_close.ogg and b/sounds/machines/shutters_close.ogg differ diff --git a/sounds/machines/shutters_open.ogg b/sounds/machines/shutters_open.ogg index b8e0869c53..6659f43ca9 100644 Binary files a/sounds/machines/shutters_open.ogg and b/sounds/machines/shutters_open.ogg differ diff --git a/sounds/machines/signal.ogg b/sounds/machines/signal.ogg index 824e1adb94..66a3b651e0 100644 Binary files a/sounds/machines/signal.ogg and b/sounds/machines/signal.ogg differ diff --git a/sounds/machines/slide_change.ogg b/sounds/machines/slide_change.ogg index 129af6db72..b60d8698f9 100644 Binary files a/sounds/machines/slide_change.ogg and b/sounds/machines/slide_change.ogg differ diff --git a/sounds/machines/stove_on.ogg b/sounds/machines/stove_on.ogg index 2ddc5da735..487abcf9e1 100644 Binary files a/sounds/machines/stove_on.ogg and b/sounds/machines/stove_on.ogg differ diff --git a/sounds/machines/suitstorage_cycledoor.ogg b/sounds/machines/suitstorage_cycledoor.ogg index 0ff329a560..ad9c45e926 100644 Binary files a/sounds/machines/suitstorage_cycledoor.ogg and b/sounds/machines/suitstorage_cycledoor.ogg differ diff --git a/sounds/machines/suitstorage_lockdoor.ogg b/sounds/machines/suitstorage_lockdoor.ogg index ee81520723..c180ca1e23 100644 Binary files a/sounds/machines/suitstorage_lockdoor.ogg and b/sounds/machines/suitstorage_lockdoor.ogg differ diff --git a/sounds/machines/switch.ogg b/sounds/machines/switch.ogg index 0898a14818..2d4ff9570e 100644 Binary files a/sounds/machines/switch.ogg and b/sounds/machines/switch.ogg differ diff --git a/sounds/machines/switch1.ogg b/sounds/machines/switch1.ogg index 96f2a0e19c..49a2470c89 100644 Binary files a/sounds/machines/switch1.ogg and b/sounds/machines/switch1.ogg differ diff --git a/sounds/machines/switch2.ogg b/sounds/machines/switch2.ogg index 346ab69a32..e137d5c55f 100644 Binary files a/sounds/machines/switch2.ogg and b/sounds/machines/switch2.ogg differ diff --git a/sounds/machines/switch3.ogg b/sounds/machines/switch3.ogg index 1529b0009a..cd0371ac2c 100644 Binary files a/sounds/machines/switch3.ogg and b/sounds/machines/switch3.ogg differ diff --git a/sounds/machines/switch4.ogg b/sounds/machines/switch4.ogg index cd51d4deb0..3b724e6eb6 100644 Binary files a/sounds/machines/switch4.ogg and b/sounds/machines/switch4.ogg differ diff --git a/sounds/machines/synth_no.ogg b/sounds/machines/synth_no.ogg index f0d2c3bfb0..a0dc65923c 100644 Binary files a/sounds/machines/synth_no.ogg and b/sounds/machines/synth_no.ogg differ diff --git a/sounds/machines/synth_yes.ogg b/sounds/machines/synth_yes.ogg index 300cad132e..dc17185703 100644 Binary files a/sounds/machines/synth_yes.ogg and b/sounds/machines/synth_yes.ogg differ diff --git a/sounds/machines/thruster.ogg b/sounds/machines/thruster.ogg index 7564bde67a..f93a2f07c5 100644 Binary files a/sounds/machines/thruster.ogg and b/sounds/machines/thruster.ogg differ diff --git a/sounds/machines/triple_beep.ogg b/sounds/machines/triple_beep.ogg index dcd3539c81..de02dc4168 100644 Binary files a/sounds/machines/triple_beep.ogg and b/sounds/machines/triple_beep.ogg differ diff --git a/sounds/machines/twobeep.ogg b/sounds/machines/twobeep.ogg index 55929a4bd8..a4488cf888 100644 Binary files a/sounds/machines/twobeep.ogg and b/sounds/machines/twobeep.ogg differ diff --git a/sounds/machines/vending_machine.ogg b/sounds/machines/vending_machine.ogg index c3db21a302..54514dcbfc 100644 Binary files a/sounds/machines/vending_machine.ogg and b/sounds/machines/vending_machine.ogg differ diff --git a/sounds/machines/ventcrawl.ogg b/sounds/machines/ventcrawl.ogg index 2df8b5c898..015e657ad2 100644 Binary files a/sounds/machines/ventcrawl.ogg and b/sounds/machines/ventcrawl.ogg differ diff --git a/sounds/machines/warning-buzzer.ogg b/sounds/machines/warning-buzzer.ogg index 28a124588b..4ac34a14f0 100644 Binary files a/sounds/machines/warning-buzzer.ogg and b/sounds/machines/warning-buzzer.ogg differ diff --git a/sounds/machines/windowdoor.ogg b/sounds/machines/windowdoor.ogg index bc753a3d7d..18c3cab951 100644 Binary files a/sounds/machines/windowdoor.ogg and b/sounds/machines/windowdoor.ogg differ diff --git a/sounds/magic/blind.ogg b/sounds/magic/blind.ogg index ded32a594e..dab1743f8f 100644 Binary files a/sounds/magic/blind.ogg and b/sounds/magic/blind.ogg differ diff --git a/sounds/magic/blink.ogg b/sounds/magic/blink.ogg index 58b7cc8562..aeef89fefd 100644 Binary files a/sounds/magic/blink.ogg and b/sounds/magic/blink.ogg differ diff --git a/sounds/magic/castsummon.ogg b/sounds/magic/castsummon.ogg index 493fb23976..7df7cd813a 100644 Binary files a/sounds/magic/castsummon.ogg and b/sounds/magic/castsummon.ogg differ diff --git a/sounds/magic/charge.ogg b/sounds/magic/charge.ogg index bf27fb9ae9..4417647cc8 100644 Binary files a/sounds/magic/charge.ogg and b/sounds/magic/charge.ogg differ diff --git a/sounds/magic/churchbell.ogg b/sounds/magic/churchbell.ogg index ad9c4ee3c1..013aceb335 100644 Binary files a/sounds/magic/churchbell.ogg and b/sounds/magic/churchbell.ogg differ diff --git a/sounds/magic/cowhead_curse.ogg b/sounds/magic/cowhead_curse.ogg index 993b50566f..603ef2d77c 100644 Binary files a/sounds/magic/cowhead_curse.ogg and b/sounds/magic/cowhead_curse.ogg differ diff --git a/sounds/magic/demon_attack1.ogg b/sounds/magic/demon_attack1.ogg index e3c765afd0..8a318c1392 100644 Binary files a/sounds/magic/demon_attack1.ogg and b/sounds/magic/demon_attack1.ogg differ diff --git a/sounds/magic/disable_tech.ogg b/sounds/magic/disable_tech.ogg index 478dd042b5..c33712db22 100644 Binary files a/sounds/magic/disable_tech.ogg and b/sounds/magic/disable_tech.ogg differ diff --git a/sounds/magic/disintegrate.ogg b/sounds/magic/disintegrate.ogg index d36217a5b3..ce8a387a24 100644 Binary files a/sounds/magic/disintegrate.ogg and b/sounds/magic/disintegrate.ogg differ diff --git a/sounds/magic/drain.ogg b/sounds/magic/drain.ogg index e27a68443a..60d7a71440 100644 Binary files a/sounds/magic/drain.ogg and b/sounds/magic/drain.ogg differ diff --git a/sounds/magic/end_of_everything.ogg b/sounds/magic/end_of_everything.ogg index 06b6f2fb4c..33db2ecece 100644 Binary files a/sounds/magic/end_of_everything.ogg and b/sounds/magic/end_of_everything.ogg differ diff --git a/sounds/magic/ethereal_enter.ogg b/sounds/magic/ethereal_enter.ogg index a0c7222c16..240d027f9e 100644 Binary files a/sounds/magic/ethereal_enter.ogg and b/sounds/magic/ethereal_enter.ogg differ diff --git a/sounds/magic/ethereal_exit.ogg b/sounds/magic/ethereal_exit.ogg index bd60ca8c69..77f3496ec0 100644 Binary files a/sounds/magic/ethereal_exit.ogg and b/sounds/magic/ethereal_exit.ogg differ diff --git a/sounds/magic/fire.ogg b/sounds/magic/fire.ogg index bafc5003a0..c155666449 100644 Binary files a/sounds/magic/fire.ogg and b/sounds/magic/fire.ogg differ diff --git a/sounds/magic/fireball.ogg b/sounds/magic/fireball.ogg index b9f6937f06..703c2d00b3 100644 Binary files a/sounds/magic/fireball.ogg and b/sounds/magic/fireball.ogg differ diff --git a/sounds/magic/forcewall.ogg b/sounds/magic/forcewall.ogg index 4fbca3f42b..0ecb5caa9f 100644 Binary files a/sounds/magic/forcewall.ogg and b/sounds/magic/forcewall.ogg differ diff --git a/sounds/magic/horsehead_curse.ogg b/sounds/magic/horsehead_curse.ogg index 598d096036..665a311074 100644 Binary files a/sounds/magic/horsehead_curse.ogg and b/sounds/magic/horsehead_curse.ogg differ diff --git a/sounds/magic/ice.ogg b/sounds/magic/ice.ogg index a2b1ba8eff..239049505f 100644 Binary files a/sounds/magic/ice.ogg and b/sounds/magic/ice.ogg differ diff --git a/sounds/magic/knock.ogg b/sounds/magic/knock.ogg index fe2f54f97a..460ac5b49d 100644 Binary files a/sounds/magic/knock.ogg and b/sounds/magic/knock.ogg differ diff --git a/sounds/magic/lightning_bolt.ogg b/sounds/magic/lightning_bolt.ogg index e5f6a5731a..552999d728 100644 Binary files a/sounds/magic/lightning_bolt.ogg and b/sounds/magic/lightning_bolt.ogg differ diff --git a/sounds/magic/lightningshock.ogg b/sounds/magic/lightningshock.ogg index 341a2934d6..b8f31a2733 100644 Binary files a/sounds/magic/lightningshock.ogg and b/sounds/magic/lightningshock.ogg differ diff --git a/sounds/magic/magic_missile.ogg b/sounds/magic/magic_missile.ogg index 9d0799d82e..ddbb699b1a 100644 Binary files a/sounds/magic/magic_missile.ogg and b/sounds/magic/magic_missile.ogg differ diff --git a/sounds/magic/magic_spell.ogg b/sounds/magic/magic_spell.ogg index 491dfb7b11..623187ba72 100644 Binary files a/sounds/magic/magic_spell.ogg and b/sounds/magic/magic_spell.ogg differ diff --git a/sounds/magic/mandswap.ogg b/sounds/magic/mandswap.ogg index 2f4848becb..9bb8e96d15 100644 Binary files a/sounds/magic/mandswap.ogg and b/sounds/magic/mandswap.ogg differ diff --git a/sounds/magic/mm_hit.ogg b/sounds/magic/mm_hit.ogg index 4f09ef46d5..afc2937707 100644 Binary files a/sounds/magic/mm_hit.ogg and b/sounds/magic/mm_hit.ogg differ diff --git a/sounds/magic/mutate.ogg b/sounds/magic/mutate.ogg index d31514f310..65ef9e369d 100644 Binary files a/sounds/magic/mutate.ogg and b/sounds/magic/mutate.ogg differ diff --git a/sounds/magic/orb_ambience.ogg b/sounds/magic/orb_ambience.ogg index 569066751d..52b21ad467 100644 Binary files a/sounds/magic/orb_ambience.ogg and b/sounds/magic/orb_ambience.ogg differ diff --git a/sounds/magic/orb_pickup.ogg b/sounds/magic/orb_pickup.ogg index be476fbdac..5f63590cbc 100644 Binary files a/sounds/magic/orb_pickup.ogg and b/sounds/magic/orb_pickup.ogg differ diff --git a/sounds/magic/pestilence.ogg b/sounds/magic/pestilence.ogg index a779823e46..bc0ba45bc3 100644 Binary files a/sounds/magic/pestilence.ogg and b/sounds/magic/pestilence.ogg differ diff --git a/sounds/magic/repulse.ogg b/sounds/magic/repulse.ogg index ed01037075..bbb91e7255 100644 Binary files a/sounds/magic/repulse.ogg and b/sounds/magic/repulse.ogg differ diff --git a/sounds/magic/scarlet/rise.ogg b/sounds/magic/scarlet/rise.ogg index 73a3d88287..cf2e71c2ba 100644 Binary files a/sounds/magic/scarlet/rise.ogg and b/sounds/magic/scarlet/rise.ogg differ diff --git a/sounds/magic/scarlet/second_rise.ogg b/sounds/magic/scarlet/second_rise.ogg index 1f5a1f7df2..60aced12d9 100644 Binary files a/sounds/magic/scarlet/second_rise.ogg and b/sounds/magic/scarlet/second_rise.ogg differ diff --git a/sounds/magic/scarlet/third_rise.ogg b/sounds/magic/scarlet/third_rise.ogg index 11926e7d4b..15c1451d1b 100644 Binary files a/sounds/magic/scarlet/third_rise.ogg and b/sounds/magic/scarlet/third_rise.ogg differ diff --git a/sounds/magic/shot.ogg b/sounds/magic/shot.ogg index 67ea43349b..274084eb50 100644 Binary files a/sounds/magic/shot.ogg and b/sounds/magic/shot.ogg differ diff --git a/sounds/magic/smoke.ogg b/sounds/magic/smoke.ogg index ca50a34967..979bf18bf2 100644 Binary files a/sounds/magic/smoke.ogg and b/sounds/magic/smoke.ogg differ diff --git a/sounds/magic/spell_steal.ogg b/sounds/magic/spell_steal.ogg index c7e4bd31ad..5cddb5169e 100644 Binary files a/sounds/magic/spell_steal.ogg and b/sounds/magic/spell_steal.ogg differ diff --git a/sounds/magic/staff_door.ogg b/sounds/magic/staff_door.ogg index 220f812482..d3dc75af14 100644 Binary files a/sounds/magic/staff_door.ogg and b/sounds/magic/staff_door.ogg differ diff --git a/sounds/magic/staff_healing.ogg b/sounds/magic/staff_healing.ogg index af2a56049c..12d5f1d076 100644 Binary files a/sounds/magic/staff_healing.ogg and b/sounds/magic/staff_healing.ogg differ diff --git a/sounds/magic/summon_carp.ogg b/sounds/magic/summon_carp.ogg index d3890776f6..5b7f8f7240 100644 Binary files a/sounds/magic/summon_carp.ogg and b/sounds/magic/summon_carp.ogg differ diff --git a/sounds/magic/summonitems_generic.ogg b/sounds/magic/summonitems_generic.ogg index 80cc412a4a..d4e57f8b4b 100644 Binary files a/sounds/magic/summonitems_generic.ogg and b/sounds/magic/summonitems_generic.ogg differ diff --git a/sounds/magic/wandodeath.ogg b/sounds/magic/wandodeath.ogg index 4412609657..25da2cc3e4 100644 Binary files a/sounds/magic/wandodeath.ogg and b/sounds/magic/wandodeath.ogg differ diff --git a/sounds/magic/water.ogg b/sounds/magic/water.ogg index 377ed94215..a46cca9eaf 100644 Binary files a/sounds/magic/water.ogg and b/sounds/magic/water.ogg differ diff --git a/sounds/magic/words.ogg b/sounds/magic/words.ogg index 497fc97a89..9a213c3bab 100644 Binary files a/sounds/magic/words.ogg and b/sounds/magic/words.ogg differ diff --git a/sounds/mecha/LongNanoActivation.ogg b/sounds/mecha/LongNanoActivation.ogg index 7295064632..4911500338 100644 Binary files a/sounds/mecha/LongNanoActivation.ogg and b/sounds/mecha/LongNanoActivation.ogg differ diff --git a/sounds/mecha/LongSyndiActivation.ogg b/sounds/mecha/LongSyndiActivation.ogg index d2554ce89c..9dc332bc08 100644 Binary files a/sounds/mecha/LongSyndiActivation.ogg and b/sounds/mecha/LongSyndiActivation.ogg differ diff --git a/sounds/mecha/critdestr.ogg b/sounds/mecha/critdestr.ogg index 8d41f46338..62cadaf677 100644 Binary files a/sounds/mecha/critdestr.ogg and b/sounds/mecha/critdestr.ogg differ diff --git a/sounds/mecha/critdestrnano.ogg b/sounds/mecha/critdestrnano.ogg index 07607a9c47..4e645b2c5e 100644 Binary files a/sounds/mecha/critdestrnano.ogg and b/sounds/mecha/critdestrnano.ogg differ diff --git a/sounds/mecha/critdestrsyndi.ogg b/sounds/mecha/critdestrsyndi.ogg index d2acdf6bef..948e995743 100644 Binary files a/sounds/mecha/critdestrsyndi.ogg and b/sounds/mecha/critdestrsyndi.ogg differ diff --git a/sounds/mecha/critnano.ogg b/sounds/mecha/critnano.ogg index ac6c18985b..888b87c65c 100644 Binary files a/sounds/mecha/critnano.ogg and b/sounds/mecha/critnano.ogg differ diff --git a/sounds/mecha/hydraulic.ogg b/sounds/mecha/hydraulic.ogg index ef0bb57bd4..7d12a76986 100644 Binary files a/sounds/mecha/hydraulic.ogg and b/sounds/mecha/hydraulic.ogg differ diff --git a/sounds/mecha/imag_enh.ogg b/sounds/mecha/imag_enh.ogg index 624c6504dd..96c2927b3e 100644 Binary files a/sounds/mecha/imag_enh.ogg and b/sounds/mecha/imag_enh.ogg differ diff --git a/sounds/mecha/imag_enhnano.ogg b/sounds/mecha/imag_enhnano.ogg index b1b7830d41..56027e8d9d 100644 Binary files a/sounds/mecha/imag_enhnano.ogg and b/sounds/mecha/imag_enhnano.ogg differ diff --git a/sounds/mecha/imag_enhsyndi.ogg b/sounds/mecha/imag_enhsyndi.ogg index f80d7be115..0f501f2c0f 100644 Binary files a/sounds/mecha/imag_enhsyndi.ogg and b/sounds/mecha/imag_enhsyndi.ogg differ diff --git a/sounds/mecha/internaldmgalarm.ogg b/sounds/mecha/internaldmgalarm.ogg index b4f8613a0d..6c5ec66802 100644 Binary files a/sounds/mecha/internaldmgalarm.ogg and b/sounds/mecha/internaldmgalarm.ogg differ diff --git a/sounds/mecha/lowpower.ogg b/sounds/mecha/lowpower.ogg index 5a6c799263..7493df0a5e 100644 Binary files a/sounds/mecha/lowpower.ogg and b/sounds/mecha/lowpower.ogg differ diff --git a/sounds/mecha/lowpowernano.ogg b/sounds/mecha/lowpowernano.ogg index 42f9cd756d..5f8cd8373e 100644 Binary files a/sounds/mecha/lowpowernano.ogg and b/sounds/mecha/lowpowernano.ogg differ diff --git a/sounds/mecha/lowpowersyndi.ogg b/sounds/mecha/lowpowersyndi.ogg index 4de37ea0ea..a5307ea570 100644 Binary files a/sounds/mecha/lowpowersyndi.ogg and b/sounds/mecha/lowpowersyndi.ogg differ diff --git a/sounds/mecha/mech-shutdown.ogg b/sounds/mecha/mech-shutdown.ogg index 9733bb26df..5d27fa7bf4 100644 Binary files a/sounds/mecha/mech-shutdown.ogg and b/sounds/mecha/mech-shutdown.ogg differ diff --git a/sounds/mecha/mech_hatch_toggle.ogg b/sounds/mecha/mech_hatch_toggle.ogg index 0ff329a560..e5639387db 100644 Binary files a/sounds/mecha/mech_hatch_toggle.ogg and b/sounds/mecha/mech_hatch_toggle.ogg differ diff --git a/sounds/mecha/mech_lock_toggle.ogg b/sounds/mecha/mech_lock_toggle.ogg index a7e7e3cab7..d0a5fc5fd5 100644 Binary files a/sounds/mecha/mech_lock_toggle.ogg and b/sounds/mecha/mech_lock_toggle.ogg differ diff --git a/sounds/mecha/mech_maints_toggle.ogg b/sounds/mecha/mech_maints_toggle.ogg index ee81520723..30fe42f0be 100644 Binary files a/sounds/mecha/mech_maints_toggle.ogg and b/sounds/mecha/mech_maints_toggle.ogg differ diff --git a/sounds/mecha/mechambience.ogg b/sounds/mecha/mechambience.ogg index 8347a4762d..557bc95d46 100644 Binary files a/sounds/mecha/mechambience.ogg and b/sounds/mecha/mechambience.ogg differ diff --git a/sounds/mecha/mechdrill.ogg b/sounds/mecha/mechdrill.ogg index 573b8b3732..21db42229d 100644 Binary files a/sounds/mecha/mechdrill.ogg and b/sounds/mecha/mechdrill.ogg differ diff --git a/sounds/mecha/mechmove01.ogg b/sounds/mecha/mechmove01.ogg index 9a3ce595a8..28bfc2c20a 100644 Binary files a/sounds/mecha/mechmove01.ogg and b/sounds/mecha/mechmove01.ogg differ diff --git a/sounds/mecha/mechmove03.ogg b/sounds/mecha/mechmove03.ogg index 5eca39d8e9..289233480d 100644 Binary files a/sounds/mecha/mechmove03.ogg and b/sounds/mecha/mechmove03.ogg differ diff --git a/sounds/mecha/mechmove04.ogg b/sounds/mecha/mechmove04.ogg index fab264aea5..b81e29f291 100644 Binary files a/sounds/mecha/mechmove04.ogg and b/sounds/mecha/mechmove04.ogg differ diff --git a/sounds/mecha/mechstep.ogg b/sounds/mecha/mechstep.ogg index 66540860df..26cb56ee32 100644 Binary files a/sounds/mecha/mechstep.ogg and b/sounds/mecha/mechstep.ogg differ diff --git a/sounds/mecha/mechturn.ogg b/sounds/mecha/mechturn.ogg index 67dc345c02..32bfaf89d6 100644 Binary files a/sounds/mecha/mechturn.ogg and b/sounds/mecha/mechturn.ogg differ diff --git a/sounds/mecha/nominal.ogg b/sounds/mecha/nominal.ogg index 3b44021e78..897f78150b 100644 Binary files a/sounds/mecha/nominal.ogg and b/sounds/mecha/nominal.ogg differ diff --git a/sounds/mecha/nominalnano.ogg b/sounds/mecha/nominalnano.ogg index 6ccb7dbee4..d0ecb87d79 100644 Binary files a/sounds/mecha/nominalnano.ogg and b/sounds/mecha/nominalnano.ogg differ diff --git a/sounds/mecha/nominalsyndi.ogg b/sounds/mecha/nominalsyndi.ogg index 8cec7b645e..2dead1f15e 100644 Binary files a/sounds/mecha/nominalsyndi.ogg and b/sounds/mecha/nominalsyndi.ogg differ diff --git a/sounds/mecha/powerloader_attack.ogg b/sounds/mecha/powerloader_attack.ogg index 6cff269d30..237f8fb80c 100644 Binary files a/sounds/mecha/powerloader_attack.ogg and b/sounds/mecha/powerloader_attack.ogg differ diff --git a/sounds/mecha/powerloader_buckle.ogg b/sounds/mecha/powerloader_buckle.ogg index 6f39a5beb5..111811105e 100644 Binary files a/sounds/mecha/powerloader_buckle.ogg and b/sounds/mecha/powerloader_buckle.ogg differ diff --git a/sounds/mecha/powerloader_step.ogg b/sounds/mecha/powerloader_step.ogg index af427df865..47964cbb24 100644 Binary files a/sounds/mecha/powerloader_step.ogg and b/sounds/mecha/powerloader_step.ogg differ diff --git a/sounds/mecha/powerloader_step2.ogg b/sounds/mecha/powerloader_step2.ogg index 60aaa6bd34..89c262dbfc 100644 Binary files a/sounds/mecha/powerloader_step2.ogg and b/sounds/mecha/powerloader_step2.ogg differ diff --git a/sounds/mecha/powerloader_turn.ogg b/sounds/mecha/powerloader_turn.ogg index bccdc879d0..ad40222cd6 100644 Binary files a/sounds/mecha/powerloader_turn.ogg and b/sounds/mecha/powerloader_turn.ogg differ diff --git a/sounds/mecha/powerloader_turn2.ogg b/sounds/mecha/powerloader_turn2.ogg index c3816df9d9..00f50fbd4f 100644 Binary files a/sounds/mecha/powerloader_turn2.ogg and b/sounds/mecha/powerloader_turn2.ogg differ diff --git a/sounds/mecha/powerloader_unbuckle.ogg b/sounds/mecha/powerloader_unbuckle.ogg index 98e53bfd7d..c1da0dc940 100644 Binary files a/sounds/mecha/powerloader_unbuckle.ogg and b/sounds/mecha/powerloader_unbuckle.ogg differ diff --git a/sounds/mecha/powerup.ogg b/sounds/mecha/powerup.ogg index dc15796079..8c10f7eb9e 100644 Binary files a/sounds/mecha/powerup.ogg and b/sounds/mecha/powerup.ogg differ diff --git a/sounds/mecha/weapdestr.ogg b/sounds/mecha/weapdestr.ogg index 3864de002e..1b4d75a9ba 100644 Binary files a/sounds/mecha/weapdestr.ogg and b/sounds/mecha/weapdestr.ogg differ diff --git a/sounds/mecha/weapdestrnano.ogg b/sounds/mecha/weapdestrnano.ogg index e1f2c2d025..dfe0133630 100644 Binary files a/sounds/mecha/weapdestrnano.ogg and b/sounds/mecha/weapdestrnano.ogg differ diff --git a/sounds/mecha/weapdestrsyndi.ogg b/sounds/mecha/weapdestrsyndi.ogg index 34522196ed..2c19036aec 100644 Binary files a/sounds/mecha/weapdestrsyndi.ogg and b/sounds/mecha/weapdestrsyndi.ogg differ diff --git a/sounds/misc/Game_Over_Man.ogg b/sounds/misc/Game_Over_Man.ogg index 88f4bf0166..33df2f12e4 100644 Binary files a/sounds/misc/Game_Over_Man.ogg and b/sounds/misc/Game_Over_Man.ogg differ diff --git a/sounds/misc/Rerun.ogg b/sounds/misc/Rerun.ogg index 87bd2a51dc..975aee8a9e 100644 Binary files a/sounds/misc/Rerun.ogg and b/sounds/misc/Rerun.ogg differ diff --git a/sounds/misc/TestLoop1.ogg b/sounds/misc/TestLoop1.ogg index 5e1210bfd0..0c8952a31c 100644 Binary files a/sounds/misc/TestLoop1.ogg and b/sounds/misc/TestLoop1.ogg differ diff --git a/sounds/misc/announce_command.ogg b/sounds/misc/announce_command.ogg index 0ee0f36d56..64799e574b 100644 Binary files a/sounds/misc/announce_command.ogg and b/sounds/misc/announce_command.ogg differ diff --git a/sounds/misc/announce_loudalarm.ogg b/sounds/misc/announce_loudalarm.ogg index 535f9595d2..6346f733ac 100644 Binary files a/sounds/misc/announce_loudalarm.ogg and b/sounds/misc/announce_loudalarm.ogg differ diff --git a/sounds/misc/announce_music.ogg b/sounds/misc/announce_music.ogg index 7ef6a3c548..d9085acb2f 100644 Binary files a/sounds/misc/announce_music.ogg and b/sounds/misc/announce_music.ogg differ diff --git a/sounds/misc/announce_pa.ogg b/sounds/misc/announce_pa.ogg index 2342d2eb50..d2bbdb9b19 100644 Binary files a/sounds/misc/announce_pa.ogg and b/sounds/misc/announce_pa.ogg differ diff --git a/sounds/misc/announce_pa_system.ogg b/sounds/misc/announce_pa_system.ogg index 49c255bd0e..f462cc24a4 100644 Binary files a/sounds/misc/announce_pa_system.ogg and b/sounds/misc/announce_pa_system.ogg differ diff --git a/sounds/misc/apcdestroyed.ogg b/sounds/misc/apcdestroyed.ogg index 7fe77dd523..c4ceebe1fb 100644 Binary files a/sounds/misc/apcdestroyed.ogg and b/sounds/misc/apcdestroyed.ogg differ diff --git a/sounds/misc/asses_kicked.ogg b/sounds/misc/asses_kicked.ogg index cde2c4584a..355ecf5edd 100644 Binary files a/sounds/misc/asses_kicked.ogg and b/sounds/misc/asses_kicked.ogg differ diff --git a/sounds/misc/bangindonk.ogg b/sounds/misc/bangindonk.ogg index b3a3624de5..69193ad54a 100644 Binary files a/sounds/misc/bangindonk.ogg and b/sounds/misc/bangindonk.ogg differ diff --git a/sounds/misc/biohazardalarm.ogg b/sounds/misc/biohazardalarm.ogg index 2c934e1bf1..ab18169a4b 100644 Binary files a/sounds/misc/biohazardalarm.ogg and b/sounds/misc/biohazardalarm.ogg differ diff --git a/sounds/misc/bloblarm.ogg b/sounds/misc/bloblarm.ogg index 50ba29739f..bd9d277dbe 100644 Binary files a/sounds/misc/bloblarm.ogg and b/sounds/misc/bloblarm.ogg differ diff --git a/sounds/misc/bloop.ogg b/sounds/misc/bloop.ogg index 260e9e926e..5d529feb24 100644 Binary files a/sounds/misc/bloop.ogg and b/sounds/misc/bloop.ogg differ diff --git a/sounds/misc/boatswain.ogg b/sounds/misc/boatswain.ogg index fba976d480..ca9c8d5af0 100644 Binary files a/sounds/misc/boatswain.ogg and b/sounds/misc/boatswain.ogg differ diff --git a/sounds/misc/burp_long.ogg b/sounds/misc/burp_long.ogg index 1027645c8e..d958e7f0d3 100644 Binary files a/sounds/misc/burp_long.ogg and b/sounds/misc/burp_long.ogg differ diff --git a/sounds/misc/burp_short.ogg b/sounds/misc/burp_short.ogg index ef15cea76e..d2d26bf190 100644 Binary files a/sounds/misc/burp_short.ogg and b/sounds/misc/burp_short.ogg differ diff --git a/sounds/misc/clap.ogg b/sounds/misc/clap.ogg index c67c353c07..00fb5ce3fb 100644 Binary files a/sounds/misc/clap.ogg and b/sounds/misc/clap.ogg differ diff --git a/sounds/misc/clap1.ogg b/sounds/misc/clap1.ogg index da0f7eded7..119947f2e8 100644 Binary files a/sounds/misc/clap1.ogg and b/sounds/misc/clap1.ogg differ diff --git a/sounds/misc/clap2.ogg b/sounds/misc/clap2.ogg index 72e26d4a24..8305fd4f09 100644 Binary files a/sounds/misc/clap2.ogg and b/sounds/misc/clap2.ogg differ diff --git a/sounds/misc/clap3.ogg b/sounds/misc/clap3.ogg index 7a72ab9bf3..86d40671ad 100644 Binary files a/sounds/misc/clap3.ogg and b/sounds/misc/clap3.ogg differ diff --git a/sounds/misc/clap4.ogg b/sounds/misc/clap4.ogg index cdc533ca77..a837e2a946 100644 Binary files a/sounds/misc/clap4.ogg and b/sounds/misc/clap4.ogg differ diff --git a/sounds/misc/distressbeacon_Sunshine.ogg b/sounds/misc/distressbeacon_Sunshine.ogg index 1030fe0590..396d59835f 100644 Binary files a/sounds/misc/distressbeacon_Sunshine.ogg and b/sounds/misc/distressbeacon_Sunshine.ogg differ diff --git a/sounds/misc/eventhorizon_shiplog.ogg b/sounds/misc/eventhorizon_shiplog.ogg index 1ffa6d9bfc..a0f0775f9a 100644 Binary files a/sounds/misc/eventhorizon_shiplog.ogg and b/sounds/misc/eventhorizon_shiplog.ogg differ diff --git a/sounds/misc/facehugged_female.ogg b/sounds/misc/facehugged_female.ogg index a9f71b4a86..d736ecccf7 100644 Binary files a/sounds/misc/facehugged_female.ogg and b/sounds/misc/facehugged_female.ogg differ diff --git a/sounds/misc/facehugged_male.ogg b/sounds/misc/facehugged_male.ogg index abab018d32..b831b16dfb 100644 Binary files a/sounds/misc/facehugged_male.ogg and b/sounds/misc/facehugged_male.ogg differ diff --git a/sounds/misc/fart_long.ogg b/sounds/misc/fart_long.ogg index 20fb2e082a..3db9ffa3c2 100644 Binary files a/sounds/misc/fart_long.ogg and b/sounds/misc/fart_long.ogg differ diff --git a/sounds/misc/fart_short.ogg b/sounds/misc/fart_short.ogg index 2b8bc72433..ae9f8f2c19 100644 Binary files a/sounds/misc/fart_short.ogg and b/sounds/misc/fart_short.ogg differ diff --git a/sounds/misc/golfclap.ogg b/sounds/misc/golfclap.ogg index 96e01335ef..deec3c5e64 100644 Binary files a/sounds/misc/golfclap.ogg and b/sounds/misc/golfclap.ogg differ diff --git a/sounds/misc/gone_to_plaid.ogg b/sounds/misc/gone_to_plaid.ogg index a73b1adc28..7fcc5d76cb 100644 Binary files a/sounds/misc/gone_to_plaid.ogg and b/sounds/misc/gone_to_plaid.ogg differ diff --git a/sounds/misc/good_is_dumb.ogg b/sounds/misc/good_is_dumb.ogg index 31e1cb8f54..ce93438133 100644 Binary files a/sounds/misc/good_is_dumb.ogg and b/sounds/misc/good_is_dumb.ogg differ diff --git a/sounds/misc/hardon.ogg b/sounds/misc/hardon.ogg index 7fa065cf63..36f24ed48f 100644 Binary files a/sounds/misc/hardon.ogg and b/sounds/misc/hardon.ogg differ diff --git a/sounds/misc/hell_march.ogg b/sounds/misc/hell_march.ogg index c889ecfb60..817ce6dacd 100644 Binary files a/sounds/misc/hell_march.ogg and b/sounds/misc/hell_march.ogg differ diff --git a/sounds/misc/interference.ogg b/sounds/misc/interference.ogg index e6d7b34002..991c133dac 100644 Binary files a/sounds/misc/interference.ogg and b/sounds/misc/interference.ogg differ diff --git a/sounds/misc/multichirp.ogg b/sounds/misc/multichirp.ogg index 2db358e942..e0b54c649f 100644 Binary files a/sounds/misc/multichirp.ogg and b/sounds/misc/multichirp.ogg differ diff --git a/sounds/misc/notice1.ogg b/sounds/misc/notice1.ogg index da6454ce3c..f1372ed232 100644 Binary files a/sounds/misc/notice1.ogg and b/sounds/misc/notice1.ogg differ diff --git a/sounds/misc/notice2.ogg b/sounds/misc/notice2.ogg index 3489ca3e15..e8dcf16865 100644 Binary files a/sounds/misc/notice2.ogg and b/sounds/misc/notice2.ogg differ diff --git a/sounds/misc/notice3.ogg b/sounds/misc/notice3.ogg index 8ceda31805..6ebe81d7cd 100644 Binary files a/sounds/misc/notice3.ogg and b/sounds/misc/notice3.ogg differ diff --git a/sounds/misc/null.ogg b/sounds/misc/null.ogg index 698709398a..0e3320eea7 100644 Binary files a/sounds/misc/null.ogg and b/sounds/misc/null.ogg differ diff --git a/sounds/misc/nymphchirp.ogg b/sounds/misc/nymphchirp.ogg index e0e573d497..ddbc7ce32d 100644 Binary files a/sounds/misc/nymphchirp.ogg and b/sounds/misc/nymphchirp.ogg differ diff --git a/sounds/misc/outstanding_marines.ogg b/sounds/misc/outstanding_marines.ogg index e6ecf82427..e5cd86b093 100644 Binary files a/sounds/misc/outstanding_marines.ogg and b/sounds/misc/outstanding_marines.ogg differ diff --git a/sounds/misc/queen_alarm.ogg b/sounds/misc/queen_alarm.ogg index 4565e99919..df0f0d2122 100644 Binary files a/sounds/misc/queen_alarm.ogg and b/sounds/misc/queen_alarm.ogg differ diff --git a/sounds/misc/redalert1.ogg b/sounds/misc/redalert1.ogg index 49800f1f67..228948b562 100644 Binary files a/sounds/misc/redalert1.ogg and b/sounds/misc/redalert1.ogg differ diff --git a/sounds/misc/robotic scream.ogg b/sounds/misc/robotic scream.ogg index d874dfd9ac..66f80b5779 100644 Binary files a/sounds/misc/robotic scream.ogg and b/sounds/misc/robotic scream.ogg differ diff --git a/sounds/misc/sadtrombone.ogg b/sounds/misc/sadtrombone.ogg index 788d263cba..62f3a21783 100644 Binary files a/sounds/misc/sadtrombone.ogg and b/sounds/misc/sadtrombone.ogg differ diff --git a/sounds/misc/salute.ogg b/sounds/misc/salute.ogg index 76521a6354..4c536752cc 100644 Binary files a/sounds/misc/salute.ogg and b/sounds/misc/salute.ogg differ diff --git a/sounds/misc/server-ready.ogg b/sounds/misc/server-ready.ogg index 216533b6f3..ef3f3e61bf 100644 Binary files a/sounds/misc/server-ready.ogg and b/sounds/misc/server-ready.ogg differ diff --git a/sounds/misc/slip.ogg b/sounds/misc/slip.ogg index 3ec12b56e6..affe1e6f3c 100644 Binary files a/sounds/misc/slip.ogg and b/sounds/misc/slip.ogg differ diff --git a/sounds/misc/surrounded_by_assholes.ogg b/sounds/misc/surrounded_by_assholes.ogg index f1ee56cca9..44b46e5057 100644 Binary files a/sounds/misc/surrounded_by_assholes.ogg and b/sounds/misc/surrounded_by_assholes.ogg differ diff --git a/sounds/music/1.ogg b/sounds/music/1.ogg index 6c573d6ced..ac51230589 100644 Binary files a/sounds/music/1.ogg and b/sounds/music/1.ogg differ diff --git a/sounds/music/420J.ogg b/sounds/music/420J.ogg index de7fa6e530..77a414c42f 100644 Binary files a/sounds/music/420J.ogg and b/sounds/music/420J.ogg differ diff --git a/sounds/music/914.ogg b/sounds/music/914.ogg index e645ab1b53..48e04ddc38 100644 Binary files a/sounds/music/914.ogg and b/sounds/music/914.ogg differ diff --git a/sounds/music/Clouds_of_Neptune.ogg b/sounds/music/Clouds_of_Neptune.ogg index 025c2c2ff4..f4cebed8ef 100644 Binary files a/sounds/music/Clouds_of_Neptune.ogg and b/sounds/music/Clouds_of_Neptune.ogg differ diff --git a/sounds/music/Perdition.ogg b/sounds/music/Perdition.ogg index af85b1e44f..a7cb3e6487 100644 Binary files a/sounds/music/Perdition.ogg and b/sounds/music/Perdition.ogg differ diff --git a/sounds/music/SpaceHero.ogg b/sounds/music/SpaceHero.ogg index 611bb1fa80..3559750cdd 100644 Binary files a/sounds/music/SpaceHero.ogg and b/sounds/music/SpaceHero.ogg differ diff --git a/sounds/music/THUNDERDOME.ogg b/sounds/music/THUNDERDOME.ogg index ea1be6b74a..3884bf774d 100644 Binary files a/sounds/music/THUNDERDOME.ogg and b/sounds/music/THUNDERDOME.ogg differ diff --git a/sounds/music/Torch.ogg b/sounds/music/Torch.ogg index 342a64c7f5..80ccf336aa 100644 Binary files a/sounds/music/Torch.ogg and b/sounds/music/Torch.ogg differ diff --git a/sounds/music/Visager-Battle.ogg b/sounds/music/Visager-Battle.ogg index addce3c309..90d446765a 100644 Binary files a/sounds/music/Visager-Battle.ogg and b/sounds/music/Visager-Battle.ogg differ diff --git a/sounds/music/Visager-Miniboss_Fight.ogg b/sounds/music/Visager-Miniboss_Fight.ogg index c2eeca0a11..8f700acc05 100644 Binary files a/sounds/music/Visager-Miniboss_Fight.ogg and b/sounds/music/Visager-Miniboss_Fight.ogg differ diff --git a/sounds/music/ajoura.ogg b/sounds/music/ajoura.ogg index 0ac3bd142f..2d6cb45923 100644 Binary files a/sounds/music/ajoura.ogg and b/sounds/music/ajoura.ogg differ diff --git a/sounds/music/animosity.ogg b/sounds/music/animosity.ogg index 187d40223c..5033978684 100644 Binary files a/sounds/music/animosity.ogg and b/sounds/music/animosity.ogg differ diff --git a/sounds/music/animosity_v2.ogg b/sounds/music/animosity_v2.ogg index 5582dcb688..74c70c1f7f 100644 Binary files a/sounds/music/animosity_v2.ogg and b/sounds/music/animosity_v2.ogg differ diff --git a/sounds/music/b12_combined_start.ogg b/sounds/music/b12_combined_start.ogg index c515927220..502ff51288 100644 Binary files a/sounds/music/b12_combined_start.ogg and b/sounds/music/b12_combined_start.ogg differ diff --git a/sounds/music/battle_for_ganzir.ogg b/sounds/music/battle_for_ganzir.ogg index e1f722c151..35f9c96734 100644 Binary files a/sounds/music/battle_for_ganzir.ogg and b/sounds/music/battle_for_ganzir.ogg differ diff --git a/sounds/music/bookburners.ogg b/sounds/music/bookburners.ogg index 64d5f608af..45701c0d1c 100644 Binary files a/sounds/music/bookburners.ogg and b/sounds/music/bookburners.ogg differ diff --git a/sounds/music/businessend.ogg b/sounds/music/businessend.ogg index c4ed1dee19..e329a8ec42 100644 Binary files a/sounds/music/businessend.ogg and b/sounds/music/businessend.ogg differ diff --git a/sounds/music/chaos_insurgency.ogg b/sounds/music/chaos_insurgency.ogg index 3ce0725f94..0938eb7683 100644 Binary files a/sounds/music/chaos_insurgency.ogg and b/sounds/music/chaos_insurgency.ogg differ diff --git a/sounds/music/chasing_time.ogg b/sounds/music/chasing_time.ogg index 413b884d34..5ee93ba114 100644 Binary files a/sounds/music/chasing_time.ogg and b/sounds/music/chasing_time.ogg differ diff --git a/sounds/music/clown.ogg b/sounds/music/clown.ogg index 3214da56fa..485835c14e 100644 Binary files a/sounds/music/clown.ogg and b/sounds/music/clown.ogg differ diff --git a/sounds/music/comet_haley.ogg b/sounds/music/comet_haley.ogg index 2a3b8b0d37..076c05cc9c 100644 Binary files a/sounds/music/comet_haley.ogg and b/sounds/music/comet_haley.ogg differ diff --git a/sounds/music/days.ogg b/sounds/music/days.ogg index 9dd3ff17a0..92576f6f81 100644 Binary files a/sounds/music/days.ogg and b/sounds/music/days.ogg differ diff --git a/sounds/music/dread.ogg b/sounds/music/dread.ogg index eebef27d1a..3a8544d806 100644 Binary files a/sounds/music/dread.ogg and b/sounds/music/dread.ogg differ diff --git a/sounds/music/duplicity_and_disillusion.ogg b/sounds/music/duplicity_and_disillusion.ogg index ae2fa99787..ffc936f712 100644 Binary files a/sounds/music/duplicity_and_disillusion.ogg and b/sounds/music/duplicity_and_disillusion.ogg differ diff --git a/sounds/music/elevatormusic.ogg b/sounds/music/elevatormusic.ogg index 9665f371b3..b355e32af8 100644 Binary files a/sounds/music/elevatormusic.ogg and b/sounds/music/elevatormusic.ogg differ diff --git a/sounds/music/elibao.ogg b/sounds/music/elibao.ogg index 3aa6d430d1..7fcb3b5f36 100644 Binary files a/sounds/music/elibao.ogg and b/sounds/music/elibao.ogg differ diff --git a/sounds/music/epic2015.ogg b/sounds/music/epic2015.ogg index 9f477cb0a8..1774a9bf69 100644 Binary files a/sounds/music/epic2015.ogg and b/sounds/music/epic2015.ogg differ diff --git a/sounds/music/epic2017.ogg b/sounds/music/epic2017.ogg index 28c1f9526c..d12074541b 100644 Binary files a/sounds/music/epic2017.ogg and b/sounds/music/epic2017.ogg differ diff --git a/sounds/music/europa/80salloveragain.ogg b/sounds/music/europa/80salloveragain.ogg index 97c968d677..cc0616831d 100644 Binary files a/sounds/music/europa/80salloveragain.ogg and b/sounds/music/europa/80salloveragain.ogg differ diff --git a/sounds/music/europa/Chronox_-_03_-_In_Orbit.ogg b/sounds/music/europa/Chronox_-_03_-_In_Orbit.ogg index cd26df24eb..a2bbd54716 100644 Binary files a/sounds/music/europa/Chronox_-_03_-_In_Orbit.ogg and b/sounds/music/europa/Chronox_-_03_-_In_Orbit.ogg differ diff --git a/sounds/music/europa/Macamoto_-_05_-_Torn.ogg b/sounds/music/europa/Macamoto_-_05_-_Torn.ogg index 3800762b5e..95725f14e0 100644 Binary files a/sounds/music/europa/Macamoto_-_05_-_Torn.ogg and b/sounds/music/europa/Macamoto_-_05_-_Torn.ogg differ diff --git a/sounds/music/europa/Martian Cowboy.ogg b/sounds/music/europa/Martian Cowboy.ogg index 0291620bb8..5146f498c4 100644 Binary files a/sounds/music/europa/Martian Cowboy.ogg and b/sounds/music/europa/Martian Cowboy.ogg differ diff --git a/sounds/music/europa/Pulse_Emitter_-_04_-_Nebula.ogg b/sounds/music/europa/Pulse_Emitter_-_04_-_Nebula.ogg index 6ecbcd902e..35ea63c5da 100644 Binary files a/sounds/music/europa/Pulse_Emitter_-_04_-_Nebula.ogg and b/sounds/music/europa/Pulse_Emitter_-_04_-_Nebula.ogg differ diff --git a/sounds/music/europa/Six_Umbrellas_-_05_-_Monument.ogg b/sounds/music/europa/Six_Umbrellas_-_05_-_Monument.ogg index 5d3ec5c451..853ac04a5e 100644 Binary files a/sounds/music/europa/Six_Umbrellas_-_05_-_Monument.ogg and b/sounds/music/europa/Six_Umbrellas_-_05_-_Monument.ogg differ diff --git a/sounds/music/europa/WildEncounters.ogg b/sounds/music/europa/WildEncounters.ogg index a1b6595904..43dae9a0d4 100644 Binary files a/sounds/music/europa/WildEncounters.ogg and b/sounds/music/europa/WildEncounters.ogg differ diff --git a/sounds/music/europa/asfarasitgets.ogg b/sounds/music/europa/asfarasitgets.ogg index 6486d9b4d2..1d2c307ad8 100644 Binary files a/sounds/music/europa/asfarasitgets.ogg and b/sounds/music/europa/asfarasitgets.ogg differ diff --git a/sounds/music/final_flash_of_existence.ogg b/sounds/music/final_flash_of_existence.ogg index 374a5de4bf..e5decfc9b9 100644 Binary files a/sounds/music/final_flash_of_existence.ogg and b/sounds/music/final_flash_of_existence.ogg differ diff --git a/sounds/music/foundation.ogg b/sounds/music/foundation.ogg index 47eac38df0..f80f6d3ced 100644 Binary files a/sounds/music/foundation.ogg and b/sounds/music/foundation.ogg differ diff --git a/sounds/music/howitends.ogg b/sounds/music/howitends.ogg index 585b056e3c..3887ee4a9f 100644 Binary files a/sounds/music/howitends.ogg and b/sounds/music/howitends.ogg differ diff --git a/sounds/music/hull_rupture.ogg b/sounds/music/hull_rupture.ogg index 15bbb31bbd..4ea9aee3f6 100644 Binary files a/sounds/music/hull_rupture.ogg and b/sounds/music/hull_rupture.ogg differ diff --git a/sounds/music/human.ogg b/sounds/music/human.ogg index 11aeb3f98a..205cdcf1ea 100644 Binary files a/sounds/music/human.ogg and b/sounds/music/human.ogg differ diff --git a/sounds/music/humanity.ogg b/sounds/music/humanity.ogg index 8318acc62c..98404f736a 100644 Binary files a/sounds/music/humanity.ogg and b/sounds/music/humanity.ogg differ diff --git a/sounds/music/lasers_rip_apart_the_bulkhead.ogg b/sounds/music/lasers_rip_apart_the_bulkhead.ogg index 4d197bf656..0ecb03af31 100644 Binary files a/sounds/music/lasers_rip_apart_the_bulkhead.ogg and b/sounds/music/lasers_rip_apart_the_bulkhead.ogg differ diff --git a/sounds/music/lasers_rip_apart_the_bulkhead_looped.ogg b/sounds/music/lasers_rip_apart_the_bulkhead_looped.ogg index 4e22d40bc2..5de6e04a22 100644 Binary files a/sounds/music/lasers_rip_apart_the_bulkhead_looped.ogg and b/sounds/music/lasers_rip_apart_the_bulkhead_looped.ogg differ diff --git a/sounds/music/lithium.ogg b/sounds/music/lithium.ogg index 70d943c5cf..b0c6f5eae3 100644 Binary files a/sounds/music/lithium.ogg and b/sounds/music/lithium.ogg differ diff --git a/sounds/music/lysendraa.ogg b/sounds/music/lysendraa.ogg index 01add6da48..c1d5befedd 100644 Binary files a/sounds/music/lysendraa.ogg and b/sounds/music/lysendraa.ogg differ diff --git a/sounds/music/main.ogg b/sounds/music/main.ogg index 8a40b2c836..53aca6a91e 100644 Binary files a/sounds/music/main.ogg and b/sounds/music/main.ogg differ diff --git a/sounds/music/main_astowo.ogg b/sounds/music/main_astowo.ogg index b7fa472d3d..72eb46d9a7 100644 Binary files a/sounds/music/main_astowo.ogg and b/sounds/music/main_astowo.ogg differ diff --git a/sounds/music/marhaba.ogg b/sounds/music/marhaba.ogg index d8d7cbe861..36724e1f2a 100644 Binary files a/sounds/music/marhaba.ogg and b/sounds/music/marhaba.ogg differ diff --git a/sounds/music/melancholy.ogg b/sounds/music/melancholy.ogg index 90b39abb4c..ae8cb4eadc 100644 Binary files a/sounds/music/melancholy.ogg and b/sounds/music/melancholy.ogg differ diff --git a/sounds/music/misanthropic_corridors.ogg b/sounds/music/misanthropic_corridors.ogg index 1ff58c0e25..4fc6812351 100644 Binary files a/sounds/music/misanthropic_corridors.ogg and b/sounds/music/misanthropic_corridors.ogg differ diff --git a/sounds/music/on_the_rocks.ogg b/sounds/music/on_the_rocks.ogg index 6a9241316d..2c9bf72801 100644 Binary files a/sounds/music/on_the_rocks.ogg and b/sounds/music/on_the_rocks.ogg differ diff --git a/sounds/music/purge_protocol.ogg b/sounds/music/purge_protocol.ogg index 6c877d9292..3d2186e945 100644 Binary files a/sounds/music/purge_protocol.ogg and b/sounds/music/purge_protocol.ogg differ diff --git a/sounds/music/pwmur.ogg b/sounds/music/pwmur.ogg index 7bea1c330b..bad3659a04 100644 Binary files a/sounds/music/pwmur.ogg and b/sounds/music/pwmur.ogg differ diff --git a/sounds/music/rimward_cruise.ogg b/sounds/music/rimward_cruise.ogg index 479039ea5b..1819b4cbd6 100644 Binary files a/sounds/music/rimward_cruise.ogg and b/sounds/music/rimward_cruise.ogg differ diff --git a/sounds/music/salutjohn.ogg b/sounds/music/salutjohn.ogg index 1fbbc5c664..2b22630d8c 100644 Binary files a/sounds/music/salutjohn.ogg and b/sounds/music/salutjohn.ogg differ diff --git a/sounds/music/sentenced_to_death.ogg b/sounds/music/sentenced_to_death.ogg index 3c5ed37dea..c84c613515 100644 Binary files a/sounds/music/sentenced_to_death.ogg and b/sounds/music/sentenced_to_death.ogg differ diff --git a/sounds/music/space.ogg b/sounds/music/space.ogg index e6c79a6eaa..daed14f39b 100644 Binary files a/sounds/music/space.ogg and b/sounds/music/space.ogg differ diff --git a/sounds/music/space_oddity.ogg b/sounds/music/space_oddity.ogg index be19e1db3e..abcf45eef8 100644 Binary files a/sounds/music/space_oddity.ogg and b/sounds/music/space_oddity.ogg differ diff --git a/sounds/music/title1.ogg b/sounds/music/title1.ogg index d60348ce5b..f966c9eb0c 100644 Binary files a/sounds/music/title1.ogg and b/sounds/music/title1.ogg differ diff --git a/sounds/music/title2.ogg b/sounds/music/title2.ogg index 35e3289453..6143f8d5f5 100644 Binary files a/sounds/music/title2.ogg and b/sounds/music/title2.ogg differ diff --git a/sounds/music/title3.ogg b/sounds/music/title3.ogg index cd1e4835a5..7d7f736b71 100644 Binary files a/sounds/music/title3.ogg and b/sounds/music/title3.ogg differ diff --git a/sounds/music/traitor.ogg b/sounds/music/traitor.ogg index ae15de2fb2..3bde84b2fe 100644 Binary files a/sounds/music/traitor.ogg and b/sounds/music/traitor.ogg differ diff --git a/sounds/music/treacherous_voyage.ogg b/sounds/music/treacherous_voyage.ogg index d6b7209f3f..d6d38d4858 100644 Binary files a/sounds/music/treacherous_voyage.ogg and b/sounds/music/treacherous_voyage.ogg differ diff --git a/sounds/music/uiu_spawn.ogg b/sounds/music/uiu_spawn.ogg index d4d53aab46..8bb4eccdd7 100644 Binary files a/sounds/music/uiu_spawn.ogg and b/sounds/music/uiu_spawn.ogg differ diff --git a/sounds/music/voidsent.ogg b/sounds/music/voidsent.ogg index 6f337cb76c..73a7048719 100644 Binary files a/sounds/music/voidsent.ogg and b/sounds/music/voidsent.ogg differ diff --git a/sounds/music/wake.ogg b/sounds/music/wake.ogg index b9d02a7a7a..fbf5b06eb8 100644 Binary files a/sounds/music/wake.ogg and b/sounds/music/wake.ogg differ diff --git a/sounds/piano/A#1.ogg b/sounds/piano/A#1.ogg index b40cc72333..a59f739256 100644 Binary files a/sounds/piano/A#1.ogg and b/sounds/piano/A#1.ogg differ diff --git a/sounds/piano/A#2.ogg b/sounds/piano/A#2.ogg index 2b0677d44a..1ebe2b7477 100644 Binary files a/sounds/piano/A#2.ogg and b/sounds/piano/A#2.ogg differ diff --git a/sounds/piano/A#3.ogg b/sounds/piano/A#3.ogg index e8fc263d8f..a6890a8f2e 100644 Binary files a/sounds/piano/A#3.ogg and b/sounds/piano/A#3.ogg differ diff --git a/sounds/piano/A#4.ogg b/sounds/piano/A#4.ogg index 8ba7c40d33..ed45522475 100644 Binary files a/sounds/piano/A#4.ogg and b/sounds/piano/A#4.ogg differ diff --git a/sounds/piano/A#5.ogg b/sounds/piano/A#5.ogg index 65c14d3320..4c1419dcbb 100644 Binary files a/sounds/piano/A#5.ogg and b/sounds/piano/A#5.ogg differ diff --git a/sounds/piano/A#6.ogg b/sounds/piano/A#6.ogg index 88317f7d55..6631095ea3 100644 Binary files a/sounds/piano/A#6.ogg and b/sounds/piano/A#6.ogg differ diff --git a/sounds/piano/A#7.ogg b/sounds/piano/A#7.ogg index e7354522fe..d7609448b3 100644 Binary files a/sounds/piano/A#7.ogg and b/sounds/piano/A#7.ogg differ diff --git a/sounds/piano/A#8.ogg b/sounds/piano/A#8.ogg index 7d8014c059..4fe29a35b9 100644 Binary files a/sounds/piano/A#8.ogg and b/sounds/piano/A#8.ogg differ diff --git a/sounds/piano/Ab1.ogg b/sounds/piano/Ab1.ogg index 0c5ae36216..89525407d5 100644 Binary files a/sounds/piano/Ab1.ogg and b/sounds/piano/Ab1.ogg differ diff --git a/sounds/piano/Ab2.ogg b/sounds/piano/Ab2.ogg index 4dabf2cc82..c432382048 100644 Binary files a/sounds/piano/Ab2.ogg and b/sounds/piano/Ab2.ogg differ diff --git a/sounds/piano/Ab3.ogg b/sounds/piano/Ab3.ogg index beb96005de..f4e2f912d4 100644 Binary files a/sounds/piano/Ab3.ogg and b/sounds/piano/Ab3.ogg differ diff --git a/sounds/piano/Ab4.ogg b/sounds/piano/Ab4.ogg index bfcf301877..0cb7c26692 100644 Binary files a/sounds/piano/Ab4.ogg and b/sounds/piano/Ab4.ogg differ diff --git a/sounds/piano/Ab5.ogg b/sounds/piano/Ab5.ogg index b95acaf5a0..6ec55f1979 100644 Binary files a/sounds/piano/Ab5.ogg and b/sounds/piano/Ab5.ogg differ diff --git a/sounds/piano/Ab6.ogg b/sounds/piano/Ab6.ogg index 501f51b3e1..8390906482 100644 Binary files a/sounds/piano/Ab6.ogg and b/sounds/piano/Ab6.ogg differ diff --git a/sounds/piano/Ab7.ogg b/sounds/piano/Ab7.ogg index b96f4e0766..ac2c5e965c 100644 Binary files a/sounds/piano/Ab7.ogg and b/sounds/piano/Ab7.ogg differ diff --git a/sounds/piano/Ab8.ogg b/sounds/piano/Ab8.ogg index c4bd37195b..cba20b7624 100644 Binary files a/sounds/piano/Ab8.ogg and b/sounds/piano/Ab8.ogg differ diff --git a/sounds/piano/An1.ogg b/sounds/piano/An1.ogg index 5698578e79..74f11b5a50 100644 Binary files a/sounds/piano/An1.ogg and b/sounds/piano/An1.ogg differ diff --git a/sounds/piano/An2.ogg b/sounds/piano/An2.ogg index aaff9b8e65..9a22a07dd8 100644 Binary files a/sounds/piano/An2.ogg and b/sounds/piano/An2.ogg differ diff --git a/sounds/piano/An3.ogg b/sounds/piano/An3.ogg index 16fe54be83..6adf38fbae 100644 Binary files a/sounds/piano/An3.ogg and b/sounds/piano/An3.ogg differ diff --git a/sounds/piano/An4.ogg b/sounds/piano/An4.ogg index 52cfc701a0..9d21de90b3 100644 Binary files a/sounds/piano/An4.ogg and b/sounds/piano/An4.ogg differ diff --git a/sounds/piano/An5.ogg b/sounds/piano/An5.ogg index ba4ad8ee61..34cd40ffba 100644 Binary files a/sounds/piano/An5.ogg and b/sounds/piano/An5.ogg differ diff --git a/sounds/piano/An6.ogg b/sounds/piano/An6.ogg index 49be4e31a8..2be8f13cb7 100644 Binary files a/sounds/piano/An6.ogg and b/sounds/piano/An6.ogg differ diff --git a/sounds/piano/An7.ogg b/sounds/piano/An7.ogg index da5f477db7..70ca5d517b 100644 Binary files a/sounds/piano/An7.ogg and b/sounds/piano/An7.ogg differ diff --git a/sounds/piano/An8.ogg b/sounds/piano/An8.ogg index 32e5cb81e7..0c56a4cfbf 100644 Binary files a/sounds/piano/An8.ogg and b/sounds/piano/An8.ogg differ diff --git a/sounds/piano/B#1.ogg b/sounds/piano/B#1.ogg index b82c6cff8a..12afeb9fc3 100644 Binary files a/sounds/piano/B#1.ogg and b/sounds/piano/B#1.ogg differ diff --git a/sounds/piano/B#2.ogg b/sounds/piano/B#2.ogg index e218380629..31a499f156 100644 Binary files a/sounds/piano/B#2.ogg and b/sounds/piano/B#2.ogg differ diff --git a/sounds/piano/B#3.ogg b/sounds/piano/B#3.ogg index b4dd559a24..1832b1ba4c 100644 Binary files a/sounds/piano/B#3.ogg and b/sounds/piano/B#3.ogg differ diff --git a/sounds/piano/B#4.ogg b/sounds/piano/B#4.ogg index 578c45e452..4245c9ab73 100644 Binary files a/sounds/piano/B#4.ogg and b/sounds/piano/B#4.ogg differ diff --git a/sounds/piano/B#5.ogg b/sounds/piano/B#5.ogg index 6dfd56115f..13e2892718 100644 Binary files a/sounds/piano/B#5.ogg and b/sounds/piano/B#5.ogg differ diff --git a/sounds/piano/B#6.ogg b/sounds/piano/B#6.ogg index 32996328c8..166b8c6f98 100644 Binary files a/sounds/piano/B#6.ogg and b/sounds/piano/B#6.ogg differ diff --git a/sounds/piano/B#7.ogg b/sounds/piano/B#7.ogg index 89b771aa37..9e10da80aa 100644 Binary files a/sounds/piano/B#7.ogg and b/sounds/piano/B#7.ogg differ diff --git a/sounds/piano/B#8.ogg b/sounds/piano/B#8.ogg index cca99040de..47461ad440 100644 Binary files a/sounds/piano/B#8.ogg and b/sounds/piano/B#8.ogg differ diff --git a/sounds/piano/Bb1.ogg b/sounds/piano/Bb1.ogg index c872abe1a9..99ce728404 100644 Binary files a/sounds/piano/Bb1.ogg and b/sounds/piano/Bb1.ogg differ diff --git a/sounds/piano/Bb2.ogg b/sounds/piano/Bb2.ogg index acd54ab388..bf0f231880 100644 Binary files a/sounds/piano/Bb2.ogg and b/sounds/piano/Bb2.ogg differ diff --git a/sounds/piano/Bb3.ogg b/sounds/piano/Bb3.ogg index 33bea9f079..f5ffe4a4c4 100644 Binary files a/sounds/piano/Bb3.ogg and b/sounds/piano/Bb3.ogg differ diff --git a/sounds/piano/Bb4.ogg b/sounds/piano/Bb4.ogg index 736fa1fc8d..af1ed30fd5 100644 Binary files a/sounds/piano/Bb4.ogg and b/sounds/piano/Bb4.ogg differ diff --git a/sounds/piano/Bb5.ogg b/sounds/piano/Bb5.ogg index 38bddcf761..6e77676428 100644 Binary files a/sounds/piano/Bb5.ogg and b/sounds/piano/Bb5.ogg differ diff --git a/sounds/piano/Bb6.ogg b/sounds/piano/Bb6.ogg index e7a0425745..236afeede0 100644 Binary files a/sounds/piano/Bb6.ogg and b/sounds/piano/Bb6.ogg differ diff --git a/sounds/piano/Bb7.ogg b/sounds/piano/Bb7.ogg index 89441baba6..30b7ac3ae5 100644 Binary files a/sounds/piano/Bb7.ogg and b/sounds/piano/Bb7.ogg differ diff --git a/sounds/piano/Bb8.ogg b/sounds/piano/Bb8.ogg index 49dce93253..403487b4fb 100644 Binary files a/sounds/piano/Bb8.ogg and b/sounds/piano/Bb8.ogg differ diff --git a/sounds/piano/Bn1.ogg b/sounds/piano/Bn1.ogg index 2ddf3f59b8..78dc669d68 100644 Binary files a/sounds/piano/Bn1.ogg and b/sounds/piano/Bn1.ogg differ diff --git a/sounds/piano/Bn2.ogg b/sounds/piano/Bn2.ogg index 92b49a24ca..f8b71af438 100644 Binary files a/sounds/piano/Bn2.ogg and b/sounds/piano/Bn2.ogg differ diff --git a/sounds/piano/Bn3.ogg b/sounds/piano/Bn3.ogg index 20aa8ca434..20cf6df577 100644 Binary files a/sounds/piano/Bn3.ogg and b/sounds/piano/Bn3.ogg differ diff --git a/sounds/piano/Bn4.ogg b/sounds/piano/Bn4.ogg index b2ecc85255..8e8cac3016 100644 Binary files a/sounds/piano/Bn4.ogg and b/sounds/piano/Bn4.ogg differ diff --git a/sounds/piano/Bn5.ogg b/sounds/piano/Bn5.ogg index e03af44292..23f3b6b5f6 100644 Binary files a/sounds/piano/Bn5.ogg and b/sounds/piano/Bn5.ogg differ diff --git a/sounds/piano/Bn6.ogg b/sounds/piano/Bn6.ogg index 1acf0d94d0..5125951dcc 100644 Binary files a/sounds/piano/Bn6.ogg and b/sounds/piano/Bn6.ogg differ diff --git a/sounds/piano/Bn7.ogg b/sounds/piano/Bn7.ogg index b68372b4ab..626d581fe4 100644 Binary files a/sounds/piano/Bn7.ogg and b/sounds/piano/Bn7.ogg differ diff --git a/sounds/piano/Bn8.ogg b/sounds/piano/Bn8.ogg index 5db915a607..76d66ad269 100644 Binary files a/sounds/piano/Bn8.ogg and b/sounds/piano/Bn8.ogg differ diff --git a/sounds/piano/C#1.ogg b/sounds/piano/C#1.ogg index dc3c859cae..6864b43646 100644 Binary files a/sounds/piano/C#1.ogg and b/sounds/piano/C#1.ogg differ diff --git a/sounds/piano/C#2.ogg b/sounds/piano/C#2.ogg index 5a36e244a7..edf613b3aa 100644 Binary files a/sounds/piano/C#2.ogg and b/sounds/piano/C#2.ogg differ diff --git a/sounds/piano/C#3.ogg b/sounds/piano/C#3.ogg index af3e49f21e..062ceb24cb 100644 Binary files a/sounds/piano/C#3.ogg and b/sounds/piano/C#3.ogg differ diff --git a/sounds/piano/C#4.ogg b/sounds/piano/C#4.ogg index 8b18a4ce41..74271fd202 100644 Binary files a/sounds/piano/C#4.ogg and b/sounds/piano/C#4.ogg differ diff --git a/sounds/piano/C#5.ogg b/sounds/piano/C#5.ogg index 690bd2763e..8d7c461097 100644 Binary files a/sounds/piano/C#5.ogg and b/sounds/piano/C#5.ogg differ diff --git a/sounds/piano/C#6.ogg b/sounds/piano/C#6.ogg index 3a27950bd3..7a0a75b9f1 100644 Binary files a/sounds/piano/C#6.ogg and b/sounds/piano/C#6.ogg differ diff --git a/sounds/piano/C#7.ogg b/sounds/piano/C#7.ogg index 9a7bc071ea..bc240c7ed1 100644 Binary files a/sounds/piano/C#7.ogg and b/sounds/piano/C#7.ogg differ diff --git a/sounds/piano/C#8.ogg b/sounds/piano/C#8.ogg index 9adc2dbbbc..2b01150348 100644 Binary files a/sounds/piano/C#8.ogg and b/sounds/piano/C#8.ogg differ diff --git a/sounds/piano/Cb2.ogg b/sounds/piano/Cb2.ogg index 7c36759c95..852726d5e4 100644 Binary files a/sounds/piano/Cb2.ogg and b/sounds/piano/Cb2.ogg differ diff --git a/sounds/piano/Cb3.ogg b/sounds/piano/Cb3.ogg index b856963854..4dcbd0bc04 100644 Binary files a/sounds/piano/Cb3.ogg and b/sounds/piano/Cb3.ogg differ diff --git a/sounds/piano/Cb4.ogg b/sounds/piano/Cb4.ogg index fb693c0cad..682c25dc08 100644 Binary files a/sounds/piano/Cb4.ogg and b/sounds/piano/Cb4.ogg differ diff --git a/sounds/piano/Cb5.ogg b/sounds/piano/Cb5.ogg index b114181e3f..aa6ba4c6e8 100644 Binary files a/sounds/piano/Cb5.ogg and b/sounds/piano/Cb5.ogg differ diff --git a/sounds/piano/Cb6.ogg b/sounds/piano/Cb6.ogg index 42470f9f3a..494f30876a 100644 Binary files a/sounds/piano/Cb6.ogg and b/sounds/piano/Cb6.ogg differ diff --git a/sounds/piano/Cb7.ogg b/sounds/piano/Cb7.ogg index adeb34cacd..4243cda3bd 100644 Binary files a/sounds/piano/Cb7.ogg and b/sounds/piano/Cb7.ogg differ diff --git a/sounds/piano/Cb8.ogg b/sounds/piano/Cb8.ogg index 1f2cbb94dd..ea4adfe6f5 100644 Binary files a/sounds/piano/Cb8.ogg and b/sounds/piano/Cb8.ogg differ diff --git a/sounds/piano/Cb9.ogg b/sounds/piano/Cb9.ogg index 25c0d646c3..a45bb6b721 100644 Binary files a/sounds/piano/Cb9.ogg and b/sounds/piano/Cb9.ogg differ diff --git a/sounds/piano/Cn1.ogg b/sounds/piano/Cn1.ogg index e05b36d325..888f5f5d82 100644 Binary files a/sounds/piano/Cn1.ogg and b/sounds/piano/Cn1.ogg differ diff --git a/sounds/piano/Cn2.ogg b/sounds/piano/Cn2.ogg index cc96f26570..14f5c4dab2 100644 Binary files a/sounds/piano/Cn2.ogg and b/sounds/piano/Cn2.ogg differ diff --git a/sounds/piano/Cn3.ogg b/sounds/piano/Cn3.ogg index 6d2f206927..fbd70de644 100644 Binary files a/sounds/piano/Cn3.ogg and b/sounds/piano/Cn3.ogg differ diff --git a/sounds/piano/Cn4.ogg b/sounds/piano/Cn4.ogg index d0c0f4995e..907d8d46a2 100644 Binary files a/sounds/piano/Cn4.ogg and b/sounds/piano/Cn4.ogg differ diff --git a/sounds/piano/Cn5.ogg b/sounds/piano/Cn5.ogg index 1d95dfa099..e25cee9230 100644 Binary files a/sounds/piano/Cn5.ogg and b/sounds/piano/Cn5.ogg differ diff --git a/sounds/piano/Cn6.ogg b/sounds/piano/Cn6.ogg index f1e847d32f..ea8be260f4 100644 Binary files a/sounds/piano/Cn6.ogg and b/sounds/piano/Cn6.ogg differ diff --git a/sounds/piano/Cn7.ogg b/sounds/piano/Cn7.ogg index 85cb1dd0fe..125c0ad710 100644 Binary files a/sounds/piano/Cn7.ogg and b/sounds/piano/Cn7.ogg differ diff --git a/sounds/piano/Cn8.ogg b/sounds/piano/Cn8.ogg index f081d91d8b..caa450549f 100644 Binary files a/sounds/piano/Cn8.ogg and b/sounds/piano/Cn8.ogg differ diff --git a/sounds/piano/Cn9.ogg b/sounds/piano/Cn9.ogg index 06172ca6f1..07d1de798f 100644 Binary files a/sounds/piano/Cn9.ogg and b/sounds/piano/Cn9.ogg differ diff --git a/sounds/piano/D#1.ogg b/sounds/piano/D#1.ogg index bd58c7dd75..596b419bda 100644 Binary files a/sounds/piano/D#1.ogg and b/sounds/piano/D#1.ogg differ diff --git a/sounds/piano/D#2.ogg b/sounds/piano/D#2.ogg index fc01076810..7caffa72bd 100644 Binary files a/sounds/piano/D#2.ogg and b/sounds/piano/D#2.ogg differ diff --git a/sounds/piano/D#3.ogg b/sounds/piano/D#3.ogg index e437f44466..0248834574 100644 Binary files a/sounds/piano/D#3.ogg and b/sounds/piano/D#3.ogg differ diff --git a/sounds/piano/D#4.ogg b/sounds/piano/D#4.ogg index 0804aa03de..c87ec631c7 100644 Binary files a/sounds/piano/D#4.ogg and b/sounds/piano/D#4.ogg differ diff --git a/sounds/piano/D#5.ogg b/sounds/piano/D#5.ogg index 40889dbae5..ad005d8214 100644 Binary files a/sounds/piano/D#5.ogg and b/sounds/piano/D#5.ogg differ diff --git a/sounds/piano/D#6.ogg b/sounds/piano/D#6.ogg index 616481d2f9..12b814a60a 100644 Binary files a/sounds/piano/D#6.ogg and b/sounds/piano/D#6.ogg differ diff --git a/sounds/piano/D#7.ogg b/sounds/piano/D#7.ogg index 5c191fb7f6..9e8c30d898 100644 Binary files a/sounds/piano/D#7.ogg and b/sounds/piano/D#7.ogg differ diff --git a/sounds/piano/D#8.ogg b/sounds/piano/D#8.ogg index 5955ed7f8d..489fef67f8 100644 Binary files a/sounds/piano/D#8.ogg and b/sounds/piano/D#8.ogg differ diff --git a/sounds/piano/Db1.ogg b/sounds/piano/Db1.ogg index a33554e476..e3e0f9bed2 100644 Binary files a/sounds/piano/Db1.ogg and b/sounds/piano/Db1.ogg differ diff --git a/sounds/piano/Db2.ogg b/sounds/piano/Db2.ogg index dd45c2f11d..692b62ce03 100644 Binary files a/sounds/piano/Db2.ogg and b/sounds/piano/Db2.ogg differ diff --git a/sounds/piano/Db3.ogg b/sounds/piano/Db3.ogg index ebfa23bbc3..5bf988a1a5 100644 Binary files a/sounds/piano/Db3.ogg and b/sounds/piano/Db3.ogg differ diff --git a/sounds/piano/Db4.ogg b/sounds/piano/Db4.ogg index 52486484eb..20c5860204 100644 Binary files a/sounds/piano/Db4.ogg and b/sounds/piano/Db4.ogg differ diff --git a/sounds/piano/Db5.ogg b/sounds/piano/Db5.ogg index 8250bbb7cb..cb08f2b070 100644 Binary files a/sounds/piano/Db5.ogg and b/sounds/piano/Db5.ogg differ diff --git a/sounds/piano/Db6.ogg b/sounds/piano/Db6.ogg index 8ec394da17..996ab7992b 100644 Binary files a/sounds/piano/Db6.ogg and b/sounds/piano/Db6.ogg differ diff --git a/sounds/piano/Db7.ogg b/sounds/piano/Db7.ogg index 9a6c81dc34..ea456f7619 100644 Binary files a/sounds/piano/Db7.ogg and b/sounds/piano/Db7.ogg differ diff --git a/sounds/piano/Db8.ogg b/sounds/piano/Db8.ogg index 2790f60390..36eb650f77 100644 Binary files a/sounds/piano/Db8.ogg and b/sounds/piano/Db8.ogg differ diff --git a/sounds/piano/Dn1.ogg b/sounds/piano/Dn1.ogg index 89ac14cc14..13a54f5099 100644 Binary files a/sounds/piano/Dn1.ogg and b/sounds/piano/Dn1.ogg differ diff --git a/sounds/piano/Dn2.ogg b/sounds/piano/Dn2.ogg index bb5f18fbf7..0ed8d5b08a 100644 Binary files a/sounds/piano/Dn2.ogg and b/sounds/piano/Dn2.ogg differ diff --git a/sounds/piano/Dn3.ogg b/sounds/piano/Dn3.ogg index 6a54b77549..dd18573d1b 100644 Binary files a/sounds/piano/Dn3.ogg and b/sounds/piano/Dn3.ogg differ diff --git a/sounds/piano/Dn4.ogg b/sounds/piano/Dn4.ogg index 8f930b8b50..8ba6dd8c26 100644 Binary files a/sounds/piano/Dn4.ogg and b/sounds/piano/Dn4.ogg differ diff --git a/sounds/piano/Dn5.ogg b/sounds/piano/Dn5.ogg index 981d37e910..d0ce30c55d 100644 Binary files a/sounds/piano/Dn5.ogg and b/sounds/piano/Dn5.ogg differ diff --git a/sounds/piano/Dn6.ogg b/sounds/piano/Dn6.ogg index 112f101bb2..3fd66f7c88 100644 Binary files a/sounds/piano/Dn6.ogg and b/sounds/piano/Dn6.ogg differ diff --git a/sounds/piano/Dn7.ogg b/sounds/piano/Dn7.ogg index ff2724463c..d22140d681 100644 Binary files a/sounds/piano/Dn7.ogg and b/sounds/piano/Dn7.ogg differ diff --git a/sounds/piano/Dn8.ogg b/sounds/piano/Dn8.ogg index 5e2523f123..9383be5c79 100644 Binary files a/sounds/piano/Dn8.ogg and b/sounds/piano/Dn8.ogg differ diff --git a/sounds/piano/E#1.ogg b/sounds/piano/E#1.ogg index c192032dc0..2e559ef9c0 100644 Binary files a/sounds/piano/E#1.ogg and b/sounds/piano/E#1.ogg differ diff --git a/sounds/piano/E#2.ogg b/sounds/piano/E#2.ogg index da09b64979..5ea8d59833 100644 Binary files a/sounds/piano/E#2.ogg and b/sounds/piano/E#2.ogg differ diff --git a/sounds/piano/E#3.ogg b/sounds/piano/E#3.ogg index e7a2f93535..79d24e07be 100644 Binary files a/sounds/piano/E#3.ogg and b/sounds/piano/E#3.ogg differ diff --git a/sounds/piano/E#4.ogg b/sounds/piano/E#4.ogg index b3b14b7266..61a24f26d7 100644 Binary files a/sounds/piano/E#4.ogg and b/sounds/piano/E#4.ogg differ diff --git a/sounds/piano/E#5.ogg b/sounds/piano/E#5.ogg index 08bc2cf5a8..26fece1e47 100644 Binary files a/sounds/piano/E#5.ogg and b/sounds/piano/E#5.ogg differ diff --git a/sounds/piano/E#6.ogg b/sounds/piano/E#6.ogg index 6060576f36..beb484ec56 100644 Binary files a/sounds/piano/E#6.ogg and b/sounds/piano/E#6.ogg differ diff --git a/sounds/piano/E#7.ogg b/sounds/piano/E#7.ogg index 77a81ed570..6dafd5849a 100644 Binary files a/sounds/piano/E#7.ogg and b/sounds/piano/E#7.ogg differ diff --git a/sounds/piano/E#8.ogg b/sounds/piano/E#8.ogg index 5502fedbda..70ff0a271c 100644 Binary files a/sounds/piano/E#8.ogg and b/sounds/piano/E#8.ogg differ diff --git a/sounds/piano/Eb1.ogg b/sounds/piano/Eb1.ogg index 8923e11fd9..38036b5dc6 100644 Binary files a/sounds/piano/Eb1.ogg and b/sounds/piano/Eb1.ogg differ diff --git a/sounds/piano/Eb2.ogg b/sounds/piano/Eb2.ogg index b61faa1737..d1936385a0 100644 Binary files a/sounds/piano/Eb2.ogg and b/sounds/piano/Eb2.ogg differ diff --git a/sounds/piano/Eb3.ogg b/sounds/piano/Eb3.ogg index bf80c6eeeb..2b63762c56 100644 Binary files a/sounds/piano/Eb3.ogg and b/sounds/piano/Eb3.ogg differ diff --git a/sounds/piano/Eb4.ogg b/sounds/piano/Eb4.ogg index fa991d11c5..9aff89ca24 100644 Binary files a/sounds/piano/Eb4.ogg and b/sounds/piano/Eb4.ogg differ diff --git a/sounds/piano/Eb5.ogg b/sounds/piano/Eb5.ogg index e63e0143a5..5fcee84859 100644 Binary files a/sounds/piano/Eb5.ogg and b/sounds/piano/Eb5.ogg differ diff --git a/sounds/piano/Eb6.ogg b/sounds/piano/Eb6.ogg index e3f6ccb4c4..71467c8500 100644 Binary files a/sounds/piano/Eb6.ogg and b/sounds/piano/Eb6.ogg differ diff --git a/sounds/piano/Eb7.ogg b/sounds/piano/Eb7.ogg index a7dc94edbd..e0c39c1889 100644 Binary files a/sounds/piano/Eb7.ogg and b/sounds/piano/Eb7.ogg differ diff --git a/sounds/piano/Eb8.ogg b/sounds/piano/Eb8.ogg index f6a7f46657..b5401c3e30 100644 Binary files a/sounds/piano/Eb8.ogg and b/sounds/piano/Eb8.ogg differ diff --git a/sounds/piano/En1.ogg b/sounds/piano/En1.ogg index fbcb29c2de..64c262c0bf 100644 Binary files a/sounds/piano/En1.ogg and b/sounds/piano/En1.ogg differ diff --git a/sounds/piano/En2.ogg b/sounds/piano/En2.ogg index b6f4f1a5e8..a897de2f01 100644 Binary files a/sounds/piano/En2.ogg and b/sounds/piano/En2.ogg differ diff --git a/sounds/piano/En3.ogg b/sounds/piano/En3.ogg index 5f6ade5f1b..2390159f9d 100644 Binary files a/sounds/piano/En3.ogg and b/sounds/piano/En3.ogg differ diff --git a/sounds/piano/En4.ogg b/sounds/piano/En4.ogg index 0f567ffb98..ac2f0f66a2 100644 Binary files a/sounds/piano/En4.ogg and b/sounds/piano/En4.ogg differ diff --git a/sounds/piano/En5.ogg b/sounds/piano/En5.ogg index 05719f2a2d..d29b88a1d1 100644 Binary files a/sounds/piano/En5.ogg and b/sounds/piano/En5.ogg differ diff --git a/sounds/piano/En6.ogg b/sounds/piano/En6.ogg index b1295b67ee..d398c8e2c9 100644 Binary files a/sounds/piano/En6.ogg and b/sounds/piano/En6.ogg differ diff --git a/sounds/piano/En7.ogg b/sounds/piano/En7.ogg index 0d97b93fbc..2606fd1c2d 100644 Binary files a/sounds/piano/En7.ogg and b/sounds/piano/En7.ogg differ diff --git a/sounds/piano/En8.ogg b/sounds/piano/En8.ogg index f0ea5f1ec5..2a3d9daa98 100644 Binary files a/sounds/piano/En8.ogg and b/sounds/piano/En8.ogg differ diff --git a/sounds/piano/F#1.ogg b/sounds/piano/F#1.ogg index ad9e0a563c..9f726678b7 100644 Binary files a/sounds/piano/F#1.ogg and b/sounds/piano/F#1.ogg differ diff --git a/sounds/piano/F#2.ogg b/sounds/piano/F#2.ogg index b1e86bfeaa..423cf26e49 100644 Binary files a/sounds/piano/F#2.ogg and b/sounds/piano/F#2.ogg differ diff --git a/sounds/piano/F#3.ogg b/sounds/piano/F#3.ogg index 53b56c5017..6b8be31854 100644 Binary files a/sounds/piano/F#3.ogg and b/sounds/piano/F#3.ogg differ diff --git a/sounds/piano/F#4.ogg b/sounds/piano/F#4.ogg index e9d71303a1..149c290b21 100644 Binary files a/sounds/piano/F#4.ogg and b/sounds/piano/F#4.ogg differ diff --git a/sounds/piano/F#5.ogg b/sounds/piano/F#5.ogg index c4cc3165ab..761fd45107 100644 Binary files a/sounds/piano/F#5.ogg and b/sounds/piano/F#5.ogg differ diff --git a/sounds/piano/F#6.ogg b/sounds/piano/F#6.ogg index 0942095116..f2da6d5daf 100644 Binary files a/sounds/piano/F#6.ogg and b/sounds/piano/F#6.ogg differ diff --git a/sounds/piano/F#7.ogg b/sounds/piano/F#7.ogg index c37dc8fb37..58952235f8 100644 Binary files a/sounds/piano/F#7.ogg and b/sounds/piano/F#7.ogg differ diff --git a/sounds/piano/F#8.ogg b/sounds/piano/F#8.ogg index 0241e9beab..ee38b189df 100644 Binary files a/sounds/piano/F#8.ogg and b/sounds/piano/F#8.ogg differ diff --git a/sounds/piano/Fb1.ogg b/sounds/piano/Fb1.ogg index fbcb29c2de..c7401eac07 100644 Binary files a/sounds/piano/Fb1.ogg and b/sounds/piano/Fb1.ogg differ diff --git a/sounds/piano/Fb2.ogg b/sounds/piano/Fb2.ogg index 4cece2d9cd..87a7ca14c8 100644 Binary files a/sounds/piano/Fb2.ogg and b/sounds/piano/Fb2.ogg differ diff --git a/sounds/piano/Fb3.ogg b/sounds/piano/Fb3.ogg index 3675271a15..eb4d5b0c36 100644 Binary files a/sounds/piano/Fb3.ogg and b/sounds/piano/Fb3.ogg differ diff --git a/sounds/piano/Fb4.ogg b/sounds/piano/Fb4.ogg index 2608770227..29d3941c13 100644 Binary files a/sounds/piano/Fb4.ogg and b/sounds/piano/Fb4.ogg differ diff --git a/sounds/piano/Fb5.ogg b/sounds/piano/Fb5.ogg index f8016a6d24..cdde06566e 100644 Binary files a/sounds/piano/Fb5.ogg and b/sounds/piano/Fb5.ogg differ diff --git a/sounds/piano/Fb6.ogg b/sounds/piano/Fb6.ogg index 397714bdaa..e1a66ae234 100644 Binary files a/sounds/piano/Fb6.ogg and b/sounds/piano/Fb6.ogg differ diff --git a/sounds/piano/Fb7.ogg b/sounds/piano/Fb7.ogg index d9f630f11d..f02fc16c6f 100644 Binary files a/sounds/piano/Fb7.ogg and b/sounds/piano/Fb7.ogg differ diff --git a/sounds/piano/Fb8.ogg b/sounds/piano/Fb8.ogg index 28ae958d82..0dc69553b3 100644 Binary files a/sounds/piano/Fb8.ogg and b/sounds/piano/Fb8.ogg differ diff --git a/sounds/piano/Fn1.ogg b/sounds/piano/Fn1.ogg index 9d10f8ccf6..a66ed88af8 100644 Binary files a/sounds/piano/Fn1.ogg and b/sounds/piano/Fn1.ogg differ diff --git a/sounds/piano/Fn2.ogg b/sounds/piano/Fn2.ogg index 24cff105e6..507eb38bc1 100644 Binary files a/sounds/piano/Fn2.ogg and b/sounds/piano/Fn2.ogg differ diff --git a/sounds/piano/Fn3.ogg b/sounds/piano/Fn3.ogg index 313c54b59a..930fcc50a9 100644 Binary files a/sounds/piano/Fn3.ogg and b/sounds/piano/Fn3.ogg differ diff --git a/sounds/piano/Fn4.ogg b/sounds/piano/Fn4.ogg index 3331d67fbe..d65d4362d9 100644 Binary files a/sounds/piano/Fn4.ogg and b/sounds/piano/Fn4.ogg differ diff --git a/sounds/piano/Fn5.ogg b/sounds/piano/Fn5.ogg index 7294171595..b072bebb1f 100644 Binary files a/sounds/piano/Fn5.ogg and b/sounds/piano/Fn5.ogg differ diff --git a/sounds/piano/Fn6.ogg b/sounds/piano/Fn6.ogg index 8218928c85..ddeb433b50 100644 Binary files a/sounds/piano/Fn6.ogg and b/sounds/piano/Fn6.ogg differ diff --git a/sounds/piano/Fn7.ogg b/sounds/piano/Fn7.ogg index b459e82acd..18a375f5be 100644 Binary files a/sounds/piano/Fn7.ogg and b/sounds/piano/Fn7.ogg differ diff --git a/sounds/piano/Fn8.ogg b/sounds/piano/Fn8.ogg index be14499059..c2a3b27764 100644 Binary files a/sounds/piano/Fn8.ogg and b/sounds/piano/Fn8.ogg differ diff --git a/sounds/piano/G#1.ogg b/sounds/piano/G#1.ogg index 3ef68c0d87..116c2c5b70 100644 Binary files a/sounds/piano/G#1.ogg and b/sounds/piano/G#1.ogg differ diff --git a/sounds/piano/G#2.ogg b/sounds/piano/G#2.ogg index 4d92169365..a8dbc0e8cc 100644 Binary files a/sounds/piano/G#2.ogg and b/sounds/piano/G#2.ogg differ diff --git a/sounds/piano/G#3.ogg b/sounds/piano/G#3.ogg index 21a03c7805..c9c91955e6 100644 Binary files a/sounds/piano/G#3.ogg and b/sounds/piano/G#3.ogg differ diff --git a/sounds/piano/G#4.ogg b/sounds/piano/G#4.ogg index 070ad2b453..5ef4d59528 100644 Binary files a/sounds/piano/G#4.ogg and b/sounds/piano/G#4.ogg differ diff --git a/sounds/piano/G#5.ogg b/sounds/piano/G#5.ogg index 233256500f..d1bf35e7e2 100644 Binary files a/sounds/piano/G#5.ogg and b/sounds/piano/G#5.ogg differ diff --git a/sounds/piano/G#6.ogg b/sounds/piano/G#6.ogg index 3c387fcfab..801c51fd2c 100644 Binary files a/sounds/piano/G#6.ogg and b/sounds/piano/G#6.ogg differ diff --git a/sounds/piano/G#7.ogg b/sounds/piano/G#7.ogg index 4ba6c8b658..4a2aa42c97 100644 Binary files a/sounds/piano/G#7.ogg and b/sounds/piano/G#7.ogg differ diff --git a/sounds/piano/G#8.ogg b/sounds/piano/G#8.ogg index b847ab1c86..b5af7e97e9 100644 Binary files a/sounds/piano/G#8.ogg and b/sounds/piano/G#8.ogg differ diff --git a/sounds/piano/Gb1.ogg b/sounds/piano/Gb1.ogg index d53e3ea9d8..e3bd3c7e5f 100644 Binary files a/sounds/piano/Gb1.ogg and b/sounds/piano/Gb1.ogg differ diff --git a/sounds/piano/Gb2.ogg b/sounds/piano/Gb2.ogg index 0ceea3ecc8..78da0aa1de 100644 Binary files a/sounds/piano/Gb2.ogg and b/sounds/piano/Gb2.ogg differ diff --git a/sounds/piano/Gb3.ogg b/sounds/piano/Gb3.ogg index 53b56c5017..9c888d92ef 100644 Binary files a/sounds/piano/Gb3.ogg and b/sounds/piano/Gb3.ogg differ diff --git a/sounds/piano/Gb4.ogg b/sounds/piano/Gb4.ogg index c982d7beaf..000a328cb4 100644 Binary files a/sounds/piano/Gb4.ogg and b/sounds/piano/Gb4.ogg differ diff --git a/sounds/piano/Gb5.ogg b/sounds/piano/Gb5.ogg index 787c19bed8..1a5682be02 100644 Binary files a/sounds/piano/Gb5.ogg and b/sounds/piano/Gb5.ogg differ diff --git a/sounds/piano/Gb6.ogg b/sounds/piano/Gb6.ogg index d5a5dbb2d1..30988c5f55 100644 Binary files a/sounds/piano/Gb6.ogg and b/sounds/piano/Gb6.ogg differ diff --git a/sounds/piano/Gb7.ogg b/sounds/piano/Gb7.ogg index c6f9271680..9856dea3e0 100644 Binary files a/sounds/piano/Gb7.ogg and b/sounds/piano/Gb7.ogg differ diff --git a/sounds/piano/Gb8.ogg b/sounds/piano/Gb8.ogg index 85c0b70754..9119d6a761 100644 Binary files a/sounds/piano/Gb8.ogg and b/sounds/piano/Gb8.ogg differ diff --git a/sounds/piano/Gn1.ogg b/sounds/piano/Gn1.ogg index d2829a4c0b..e459af4e90 100644 Binary files a/sounds/piano/Gn1.ogg and b/sounds/piano/Gn1.ogg differ diff --git a/sounds/piano/Gn2.ogg b/sounds/piano/Gn2.ogg index e657124c71..9d1274cf70 100644 Binary files a/sounds/piano/Gn2.ogg and b/sounds/piano/Gn2.ogg differ diff --git a/sounds/piano/Gn3.ogg b/sounds/piano/Gn3.ogg index c1e88555f1..c555abcb82 100644 Binary files a/sounds/piano/Gn3.ogg and b/sounds/piano/Gn3.ogg differ diff --git a/sounds/piano/Gn4.ogg b/sounds/piano/Gn4.ogg index bbae7fa3e8..9a17086fc9 100644 Binary files a/sounds/piano/Gn4.ogg and b/sounds/piano/Gn4.ogg differ diff --git a/sounds/piano/Gn5.ogg b/sounds/piano/Gn5.ogg index 556cd6085a..cf3d89fef3 100644 Binary files a/sounds/piano/Gn5.ogg and b/sounds/piano/Gn5.ogg differ diff --git a/sounds/piano/Gn6.ogg b/sounds/piano/Gn6.ogg index 6bf8c36013..8e4771955f 100644 Binary files a/sounds/piano/Gn6.ogg and b/sounds/piano/Gn6.ogg differ diff --git a/sounds/piano/Gn7.ogg b/sounds/piano/Gn7.ogg index 0637492985..269a4aa732 100644 Binary files a/sounds/piano/Gn7.ogg and b/sounds/piano/Gn7.ogg differ diff --git a/sounds/piano/Gn8.ogg b/sounds/piano/Gn8.ogg index 85f89a198e..5ba6f496bc 100644 Binary files a/sounds/piano/Gn8.ogg and b/sounds/piano/Gn8.ogg differ diff --git a/sounds/scp/012/012.ogg b/sounds/scp/012/012.ogg index 334ae1b956..8879de677c 100644 Binary files a/sounds/scp/012/012.ogg and b/sounds/scp/012/012.ogg differ diff --git a/sounds/scp/066/BeethovenLOUD.ogg b/sounds/scp/066/BeethovenLOUD.ogg index 1e446c228e..a19f63d279 100644 Binary files a/sounds/scp/066/BeethovenLOUD.ogg and b/sounds/scp/066/BeethovenLOUD.ogg differ diff --git a/sounds/scp/066/Eric1.ogg b/sounds/scp/066/Eric1.ogg index 2070dbaa87..124f1c9be8 100644 Binary files a/sounds/scp/066/Eric1.ogg and b/sounds/scp/066/Eric1.ogg differ diff --git a/sounds/scp/066/Eric2.ogg b/sounds/scp/066/Eric2.ogg index 3441a7a281..f21eb4a6f2 100644 Binary files a/sounds/scp/066/Eric2.ogg and b/sounds/scp/066/Eric2.ogg differ diff --git a/sounds/scp/066/Eric3.ogg b/sounds/scp/066/Eric3.ogg index 08aac13f47..b34309f121 100644 Binary files a/sounds/scp/066/Eric3.ogg and b/sounds/scp/066/Eric3.ogg differ diff --git a/sounds/scp/066/Notes1.ogg b/sounds/scp/066/Notes1.ogg index ef3e69afed..41304be387 100644 Binary files a/sounds/scp/066/Notes1.ogg and b/sounds/scp/066/Notes1.ogg differ diff --git a/sounds/scp/066/Notes2.ogg b/sounds/scp/066/Notes2.ogg index 86011157a0..a3421ce192 100644 Binary files a/sounds/scp/066/Notes2.ogg and b/sounds/scp/066/Notes2.ogg differ diff --git a/sounds/scp/066/Notes3.ogg b/sounds/scp/066/Notes3.ogg index 2f5f4679e7..5fd9d35897 100644 Binary files a/sounds/scp/066/Notes3.ogg and b/sounds/scp/066/Notes3.ogg differ diff --git a/sounds/scp/066/Notes4.ogg b/sounds/scp/066/Notes4.ogg index 3fffb08670..ba5b3a2c02 100644 Binary files a/sounds/scp/066/Notes4.ogg and b/sounds/scp/066/Notes4.ogg differ diff --git a/sounds/scp/066/Notes5.ogg b/sounds/scp/066/Notes5.ogg index 47e6741ff5..96bccdedc6 100644 Binary files a/sounds/scp/066/Notes5.ogg and b/sounds/scp/066/Notes5.ogg differ diff --git a/sounds/scp/066/Notes6.ogg b/sounds/scp/066/Notes6.ogg index f584d789ab..00292bba53 100644 Binary files a/sounds/scp/066/Notes6.ogg and b/sounds/scp/066/Notes6.ogg differ diff --git a/sounds/scp/066/Roll.ogg b/sounds/scp/066/Roll.ogg index 06db2b78d5..38cab63638 100644 Binary files a/sounds/scp/066/Roll.ogg and b/sounds/scp/066/Roll.ogg differ diff --git a/sounds/scp/096/096-chase.ogg b/sounds/scp/096/096-chase.ogg index 8ba2525e8e..af85cd4368 100644 Binary files a/sounds/scp/096/096-chase.ogg and b/sounds/scp/096/096-chase.ogg differ diff --git a/sounds/scp/096/096-idle.ogg b/sounds/scp/096/096-idle.ogg index 752a531772..242cd37288 100644 Binary files a/sounds/scp/096/096-idle.ogg and b/sounds/scp/096/096-idle.ogg differ diff --git a/sounds/scp/096/096-kill.ogg b/sounds/scp/096/096-kill.ogg index 8e2d6d21e2..d203fcde6f 100644 Binary files a/sounds/scp/096/096-kill.ogg and b/sounds/scp/096/096-kill.ogg differ diff --git a/sounds/scp/096/096-rage.ogg b/sounds/scp/096/096-rage.ogg index 0081a899f6..97a8149a4d 100644 Binary files a/sounds/scp/096/096-rage.ogg and b/sounds/scp/096/096-rage.ogg differ diff --git a/sounds/scp/106/breathing.ogg b/sounds/scp/106/breathing.ogg index 3c1efc82c6..63b6a65515 100644 Binary files a/sounds/scp/106/breathing.ogg and b/sounds/scp/106/breathing.ogg differ diff --git a/sounds/scp/106/decay1.ogg b/sounds/scp/106/decay1.ogg index e65a838e48..b1f461249b 100644 Binary files a/sounds/scp/106/decay1.ogg and b/sounds/scp/106/decay1.ogg differ diff --git a/sounds/scp/106/decay2.ogg b/sounds/scp/106/decay2.ogg index b1e0a10e2f..3a1e9b7b20 100644 Binary files a/sounds/scp/106/decay2.ogg and b/sounds/scp/106/decay2.ogg differ diff --git a/sounds/scp/106/decay3.ogg b/sounds/scp/106/decay3.ogg index cfe8b52925..8ab7367cfa 100644 Binary files a/sounds/scp/106/decay3.ogg and b/sounds/scp/106/decay3.ogg differ diff --git a/sounds/scp/106/laugh.ogg b/sounds/scp/106/laugh.ogg index 13b6bc8e5d..bf6b83428e 100644 Binary files a/sounds/scp/106/laugh.ogg and b/sounds/scp/106/laugh.ogg differ diff --git a/sounds/scp/106/wall_decay.ogg b/sounds/scp/106/wall_decay.ogg index 56bdff733d..2bc4178c6b 100644 Binary files a/sounds/scp/106/wall_decay.ogg and b/sounds/scp/106/wall_decay.ogg differ diff --git a/sounds/scp/1507/attack1.ogg b/sounds/scp/1507/attack1.ogg index 68921fa0a3..b250a2ef9a 100644 Binary files a/sounds/scp/1507/attack1.ogg and b/sounds/scp/1507/attack1.ogg differ diff --git a/sounds/scp/1507/attack2.ogg b/sounds/scp/1507/attack2.ogg index 85c4f0b733..65a711fb9c 100644 Binary files a/sounds/scp/1507/attack2.ogg and b/sounds/scp/1507/attack2.ogg differ diff --git a/sounds/scp/1507/attack3.ogg b/sounds/scp/1507/attack3.ogg index 3f2c2aaa0d..9b36c73ff3 100644 Binary files a/sounds/scp/1507/attack3.ogg and b/sounds/scp/1507/attack3.ogg differ diff --git a/sounds/scp/1507/attack4.ogg b/sounds/scp/1507/attack4.ogg index 749a899f64..54a308397c 100644 Binary files a/sounds/scp/1507/attack4.ogg and b/sounds/scp/1507/attack4.ogg differ diff --git a/sounds/scp/1507/attack5.ogg b/sounds/scp/1507/attack5.ogg index c2c2764de4..58bf8e5ab7 100644 Binary files a/sounds/scp/1507/attack5.ogg and b/sounds/scp/1507/attack5.ogg differ diff --git a/sounds/scp/1507/attack6.ogg b/sounds/scp/1507/attack6.ogg index 195e193650..a0a0b51d41 100644 Binary files a/sounds/scp/1507/attack6.ogg and b/sounds/scp/1507/attack6.ogg differ diff --git a/sounds/scp/173/rattle.ogg b/sounds/scp/173/rattle.ogg index 7fd921b9c4..aefd9fba31 100644 Binary files a/sounds/scp/173/rattle.ogg and b/sounds/scp/173/rattle.ogg differ diff --git a/sounds/scp/2427/consume.ogg b/sounds/scp/2427/consume.ogg index 1610d8a1d2..3741f78717 100644 Binary files a/sounds/scp/2427/consume.ogg and b/sounds/scp/2427/consume.ogg differ diff --git a/sounds/scp/2427/stab.ogg b/sounds/scp/2427/stab.ogg index 641738c036..61a8b28c0b 100644 Binary files a/sounds/scp/2427/stab.ogg and b/sounds/scp/2427/stab.ogg differ diff --git a/sounds/scp/294/dispense1.ogg b/sounds/scp/294/dispense1.ogg index 4891c2d48e..ee884c24ca 100644 Binary files a/sounds/scp/294/dispense1.ogg and b/sounds/scp/294/dispense1.ogg differ diff --git a/sounds/scp/294/dispense2.ogg b/sounds/scp/294/dispense2.ogg index 231d15b2b2..664661d815 100644 Binary files a/sounds/scp/294/dispense2.ogg and b/sounds/scp/294/dispense2.ogg differ diff --git a/sounds/scp/294/dispense3.ogg b/sounds/scp/294/dispense3.ogg index 48181c693e..95e54eb128 100644 Binary files a/sounds/scp/294/dispense3.ogg and b/sounds/scp/294/dispense3.ogg differ diff --git a/sounds/scp/427/effect.ogg b/sounds/scp/427/effect.ogg index ae0d9bc8c8..c108b91ed3 100644 Binary files a/sounds/scp/427/effect.ogg and b/sounds/scp/427/effect.ogg differ diff --git a/sounds/scp/427/transform.ogg b/sounds/scp/427/transform.ogg index 7bb47487bf..122097fddf 100644 Binary files a/sounds/scp/427/transform.ogg and b/sounds/scp/427/transform.ogg differ diff --git a/sounds/scp/513/Bell1.ogg b/sounds/scp/513/Bell1.ogg index bad36ddc1a..f5ef671421 100644 Binary files a/sounds/scp/513/Bell1.ogg and b/sounds/scp/513/Bell1.ogg differ diff --git a/sounds/scp/513/Bell2.ogg b/sounds/scp/513/Bell2.ogg index 0390bc80b9..c699c55af4 100644 Binary files a/sounds/scp/513/Bell2.ogg and b/sounds/scp/513/Bell2.ogg differ diff --git a/sounds/scp/914/door_close.ogg b/sounds/scp/914/door_close.ogg index dc76bf7b04..9396815b89 100644 Binary files a/sounds/scp/914/door_close.ogg and b/sounds/scp/914/door_close.ogg differ diff --git a/sounds/scp/914/door_open.ogg b/sounds/scp/914/door_open.ogg index 7059092672..16324549c1 100644 Binary files a/sounds/scp/914/door_open.ogg and b/sounds/scp/914/door_open.ogg differ diff --git a/sounds/scp/914/mob_use.ogg b/sounds/scp/914/mob_use.ogg index 292110adb6..ef09b73992 100644 Binary files a/sounds/scp/914/mob_use.ogg and b/sounds/scp/914/mob_use.ogg differ diff --git a/sounds/scp/914/refine.ogg b/sounds/scp/914/refine.ogg index acfaedd6f0..3c8d542138 100644 Binary files a/sounds/scp/914/refine.ogg and b/sounds/scp/914/refine.ogg differ diff --git a/sounds/scp/Announcement1.ogg b/sounds/scp/Announcement1.ogg index 939da93333..85ebfc398d 100644 Binary files a/sounds/scp/Announcement1.ogg and b/sounds/scp/Announcement1.ogg differ diff --git a/sounds/scp/Announcement2.ogg b/sounds/scp/Announcement2.ogg index bc7b4659b4..30f7817e3b 100644 Binary files a/sounds/scp/Announcement2.ogg and b/sounds/scp/Announcement2.ogg differ diff --git a/sounds/scp/Announcement3.ogg b/sounds/scp/Announcement3.ogg index 0b9a8ab834..e563d1c4bf 100644 Binary files a/sounds/scp/Announcement3.ogg and b/sounds/scp/Announcement3.ogg differ diff --git a/sounds/scp/Announcement4.ogg b/sounds/scp/Announcement4.ogg index 30ba3a1a36..ab0f741297 100644 Binary files a/sounds/scp/Announcement4.ogg and b/sounds/scp/Announcement4.ogg differ diff --git a/sounds/scp/Announcement5.ogg b/sounds/scp/Announcement5.ogg index d4f23c1af1..9f37f023ad 100644 Binary files a/sounds/scp/Announcement5.ogg and b/sounds/scp/Announcement5.ogg differ diff --git a/sounds/scp/Announcement6.ogg b/sounds/scp/Announcement6.ogg index 4b59d47c24..79384c1aa1 100644 Binary files a/sounds/scp/Announcement6.ogg and b/sounds/scp/Announcement6.ogg differ diff --git a/sounds/scp/Announcement7.ogg b/sounds/scp/Announcement7.ogg index 4dd31d971e..38661fccd6 100644 Binary files a/sounds/scp/Announcement7.ogg and b/sounds/scp/Announcement7.ogg differ diff --git a/sounds/scp/Blue_Feather_60s.ogg b/sounds/scp/Blue_Feather_60s.ogg index b6a25bb92a..1d141e8f67 100644 Binary files a/sounds/scp/Blue_Feather_60s.ogg and b/sounds/scp/Blue_Feather_60s.ogg differ diff --git a/sounds/scp/abnormality/white_night/apostle_bell.ogg b/sounds/scp/abnormality/white_night/apostle_bell.ogg index 6830f8cb7c..507188a147 100644 Binary files a/sounds/scp/abnormality/white_night/apostle_bell.ogg and b/sounds/scp/abnormality/white_night/apostle_bell.ogg differ diff --git a/sounds/scp/abnormality/white_night/apostle_charge.ogg b/sounds/scp/abnormality/white_night/apostle_charge.ogg index f54d31aca9..cae2d48188 100644 Binary files a/sounds/scp/abnormality/white_night/apostle_charge.ogg and b/sounds/scp/abnormality/white_night/apostle_charge.ogg differ diff --git a/sounds/scp/abnormality/white_night/apostle_convert.ogg b/sounds/scp/abnormality/white_night/apostle_convert.ogg index 8ca8291b89..fb467b6a05 100644 Binary files a/sounds/scp/abnormality/white_night/apostle_convert.ogg and b/sounds/scp/abnormality/white_night/apostle_convert.ogg differ diff --git a/sounds/scp/abnormality/white_night/apostle_death.ogg b/sounds/scp/abnormality/white_night/apostle_death.ogg index 6477868220..6fb48bb3ae 100644 Binary files a/sounds/scp/abnormality/white_night/apostle_death.ogg and b/sounds/scp/abnormality/white_night/apostle_death.ogg differ diff --git a/sounds/scp/abnormality/white_night/apostle_death_final.ogg b/sounds/scp/abnormality/white_night/apostle_death_final.ogg index 19411dd014..1a59fa6259 100644 Binary files a/sounds/scp/abnormality/white_night/apostle_death_final.ogg and b/sounds/scp/abnormality/white_night/apostle_death_final.ogg differ diff --git a/sounds/scp/abnormality/white_night/apostle_fire.ogg b/sounds/scp/abnormality/white_night/apostle_fire.ogg index df506268ad..e2be426fe4 100644 Binary files a/sounds/scp/abnormality/white_night/apostle_fire.ogg and b/sounds/scp/abnormality/white_night/apostle_fire.ogg differ diff --git a/sounds/scp/abnormality/white_night/apostle_growl.ogg b/sounds/scp/abnormality/white_night/apostle_growl.ogg index 96f007e747..ba162e1934 100644 Binary files a/sounds/scp/abnormality/white_night/apostle_growl.ogg and b/sounds/scp/abnormality/white_night/apostle_growl.ogg differ diff --git a/sounds/scp/abnormality/white_night/apostle_heal.ogg b/sounds/scp/abnormality/white_night/apostle_heal.ogg index 8ef5efb88b..e83e775735 100644 Binary files a/sounds/scp/abnormality/white_night/apostle_heal.ogg and b/sounds/scp/abnormality/white_night/apostle_heal.ogg differ diff --git a/sounds/scp/abnormality/white_night/apostle_movement.ogg b/sounds/scp/abnormality/white_night/apostle_movement.ogg index eb820667a8..d03227daf1 100644 Binary files a/sounds/scp/abnormality/white_night/apostle_movement.ogg and b/sounds/scp/abnormality/white_night/apostle_movement.ogg differ diff --git a/sounds/scp/abnormality/white_night/apostle_shout.ogg b/sounds/scp/abnormality/white_night/apostle_shout.ogg index 35410ecb5a..4d443fce6d 100644 Binary files a/sounds/scp/abnormality/white_night/apostle_shout.ogg and b/sounds/scp/abnormality/white_night/apostle_shout.ogg differ diff --git a/sounds/scp/abnormality/white_night/apostle_spell.ogg b/sounds/scp/abnormality/white_night/apostle_spell.ogg index e740fb406a..8930977158 100644 Binary files a/sounds/scp/abnormality/white_night/apostle_spell.ogg and b/sounds/scp/abnormality/white_night/apostle_spell.ogg differ diff --git a/sounds/scp/abnormality/white_night/ark_damage.ogg b/sounds/scp/abnormality/white_night/ark_damage.ogg index 1834ee5b1f..1130ca92c4 100644 Binary files a/sounds/scp/abnormality/white_night/ark_damage.ogg and b/sounds/scp/abnormality/white_night/ark_damage.ogg differ diff --git a/sounds/scp/abnormality/white_night/rapture.ogg b/sounds/scp/abnormality/white_night/rapture.ogg index 06467089e7..d8ffa21558 100644 Binary files a/sounds/scp/abnormality/white_night/rapture.ogg and b/sounds/scp/abnormality/white_night/rapture.ogg differ diff --git a/sounds/scp/abnormality/white_night/rapture2.ogg b/sounds/scp/abnormality/white_night/rapture2.ogg index 413f9baeba..3c3e705ac8 100644 Binary files a/sounds/scp/abnormality/white_night/rapture2.ogg and b/sounds/scp/abnormality/white_night/rapture2.ogg differ diff --git a/sounds/scp/abnormality/white_night/scythe.ogg b/sounds/scp/abnormality/white_night/scythe.ogg index 3bfe8a00c9..e8e6e8863a 100644 Binary files a/sounds/scp/abnormality/white_night/scythe.ogg and b/sounds/scp/abnormality/white_night/scythe.ogg differ diff --git a/sounds/scp/abnormality/white_night/scythe_gib.ogg b/sounds/scp/abnormality/white_night/scythe_gib.ogg index 1bed9efedd..0fe33fd589 100644 Binary files a/sounds/scp/abnormality/white_night/scythe_gib.ogg and b/sounds/scp/abnormality/white_night/scythe_gib.ogg differ diff --git a/sounds/scp/abnormality/white_night/scythe_spell.ogg b/sounds/scp/abnormality/white_night/scythe_spell.ogg index b985a28dd2..f6b0b0139f 100644 Binary files a/sounds/scp/abnormality/white_night/scythe_spell.ogg and b/sounds/scp/abnormality/white_night/scythe_spell.ogg differ diff --git a/sounds/scp/abnormality/white_night/spear.ogg b/sounds/scp/abnormality/white_night/spear.ogg index af902498b7..a4d331aa2f 100644 Binary files a/sounds/scp/abnormality/white_night/spear.ogg and b/sounds/scp/abnormality/white_night/spear.ogg differ diff --git a/sounds/scp/abnormality/white_night/spear_charge.ogg b/sounds/scp/abnormality/white_night/spear_charge.ogg index 370fe4b783..4a9e7b933e 100644 Binary files a/sounds/scp/abnormality/white_night/spear_charge.ogg and b/sounds/scp/abnormality/white_night/spear_charge.ogg differ diff --git a/sounds/scp/abnormality/white_night/spear_dash.ogg b/sounds/scp/abnormality/white_night/spear_dash.ogg index d6ce75b348..54c520cd12 100644 Binary files a/sounds/scp/abnormality/white_night/spear_dash.ogg and b/sounds/scp/abnormality/white_night/spear_dash.ogg differ diff --git a/sounds/scp/abnormality/white_night/staff_attack.ogg b/sounds/scp/abnormality/white_night/staff_attack.ogg index c11c58d662..208eb9584e 100644 Binary files a/sounds/scp/abnormality/white_night/staff_attack.ogg and b/sounds/scp/abnormality/white_night/staff_attack.ogg differ diff --git a/sounds/scp/abnormality/white_night/staff_end.ogg b/sounds/scp/abnormality/white_night/staff_end.ogg index 7ab2d70ffd..3eb2ccb0ce 100644 Binary files a/sounds/scp/abnormality/white_night/staff_end.ogg and b/sounds/scp/abnormality/white_night/staff_end.ogg differ diff --git a/sounds/scp/abnormality/white_night/staff_prepare.ogg b/sounds/scp/abnormality/white_night/staff_prepare.ogg index fb559302fc..28a7ba2ad1 100644 Binary files a/sounds/scp/abnormality/white_night/staff_prepare.ogg and b/sounds/scp/abnormality/white_night/staff_prepare.ogg differ diff --git a/sounds/scp/abnormality/white_night/whisper.ogg b/sounds/scp/abnormality/white_night/whisper.ogg index 05ed409491..1bbecc8a8c 100644 Binary files a/sounds/scp/abnormality/white_night/whisper.ogg and b/sounds/scp/abnormality/white_night/whisper.ogg differ diff --git a/sounds/scp/abnormality/white_night/whisper_short.ogg b/sounds/scp/abnormality/white_night/whisper_short.ogg index 2f7bd71a50..35c2dca55c 100644 Binary files a/sounds/scp/abnormality/white_night/whisper_short.ogg and b/sounds/scp/abnormality/white_night/whisper_short.ogg differ diff --git a/sounds/scp/chase/049_chase.ogg b/sounds/scp/chase/049_chase.ogg index f6d8399079..5f4b5f4bfd 100644 Binary files a/sounds/scp/chase/049_chase.ogg and b/sounds/scp/chase/049_chase.ogg differ diff --git a/sounds/scp/chase/scp106chase.ogg b/sounds/scp/chase/scp106chase.ogg index 804075d0e4..f1e8e1727b 100644 Binary files a/sounds/scp/chase/scp106chase.ogg and b/sounds/scp/chase/scp106chase.ogg differ diff --git a/sounds/scp/firstpersonsnap.ogg b/sounds/scp/firstpersonsnap.ogg index fbfdfea448..3a8f3f1d04 100644 Binary files a/sounds/scp/firstpersonsnap.ogg and b/sounds/scp/firstpersonsnap.ogg differ diff --git a/sounds/scp/firstpersonsnap2.ogg b/sounds/scp/firstpersonsnap2.ogg index c84cc80fc0..6bacd45fc1 100644 Binary files a/sounds/scp/firstpersonsnap2.ogg and b/sounds/scp/firstpersonsnap2.ogg differ diff --git a/sounds/scp/firstpersonsnap3.ogg b/sounds/scp/firstpersonsnap3.ogg index 9f991aaf58..99c8b66f2e 100644 Binary files a/sounds/scp/firstpersonsnap3.ogg and b/sounds/scp/firstpersonsnap3.ogg differ diff --git a/sounds/scp/machinery/femur_breaker.ogg b/sounds/scp/machinery/femur_breaker.ogg index 84adeac004..15d29babfb 100644 Binary files a/sounds/scp/machinery/femur_breaker.ogg and b/sounds/scp/machinery/femur_breaker.ogg differ diff --git a/sounds/scp/machinery/femur_breaker_death.ogg b/sounds/scp/machinery/femur_breaker_death.ogg index 74fd1c0df2..758e39a8ce 100644 Binary files a/sounds/scp/machinery/femur_breaker_death.ogg and b/sounds/scp/machinery/femur_breaker_death.ogg differ diff --git a/sounds/scp/machinery/femur_breaker_success.ogg b/sounds/scp/machinery/femur_breaker_success.ogg index 6d5e269a93..f11c2d0226 100644 Binary files a/sounds/scp/machinery/femur_breaker_success.ogg and b/sounds/scp/machinery/femur_breaker_success.ogg differ diff --git a/sounds/scp/machinery/magnet_down.ogg b/sounds/scp/machinery/magnet_down.ogg index 8112b9c5ff..48f6e47817 100644 Binary files a/sounds/scp/machinery/magnet_down.ogg and b/sounds/scp/machinery/magnet_down.ogg differ diff --git a/sounds/scp/machinery/magnet_up.ogg b/sounds/scp/machinery/magnet_up.ogg index cfbed4d893..6fdba0fe00 100644 Binary files a/sounds/scp/machinery/magnet_up.ogg and b/sounds/scp/machinery/magnet_up.ogg differ diff --git a/sounds/scp/scare1.ogg b/sounds/scp/scare1.ogg index e73141a19e..eecb7f9805 100644 Binary files a/sounds/scp/scare1.ogg and b/sounds/scp/scare1.ogg differ diff --git a/sounds/scp/scare2.ogg b/sounds/scp/scare2.ogg index daa58c8e92..b46f24b29a 100644 Binary files a/sounds/scp/scare2.ogg and b/sounds/scp/scare2.ogg differ diff --git a/sounds/scp/scare3.ogg b/sounds/scp/scare3.ogg index 3d92c2fb68..93c29fd5ff 100644 Binary files a/sounds/scp/scare3.ogg and b/sounds/scp/scare3.ogg differ diff --git a/sounds/scp/scare4.ogg b/sounds/scp/scare4.ogg index 79e36e1857..bb64be7a7b 100644 Binary files a/sounds/scp/scare4.ogg and b/sounds/scp/scare4.ogg differ diff --git a/sounds/scp/spook/Bell2.ogg b/sounds/scp/spook/Bell2.ogg index bad36ddc1a..62f9284273 100644 Binary files a/sounds/scp/spook/Bell2.ogg and b/sounds/scp/spook/Bell2.ogg differ diff --git a/sounds/scp/spook/Bell3.ogg b/sounds/scp/spook/Bell3.ogg index 0390bc80b9..9398b96814 100644 Binary files a/sounds/scp/spook/Bell3.ogg and b/sounds/scp/spook/Bell3.ogg differ diff --git a/sounds/scp/spook/NeckSnap1.ogg b/sounds/scp/spook/NeckSnap1.ogg index d9d8fca7c7..3c1c75286a 100644 Binary files a/sounds/scp/spook/NeckSnap1.ogg and b/sounds/scp/spook/NeckSnap1.ogg differ diff --git a/sounds/scp/spook/NeckSnap3.ogg b/sounds/scp/spook/NeckSnap3.ogg index 423f10d534..9ba172abb4 100644 Binary files a/sounds/scp/spook/NeckSnap3.ogg and b/sounds/scp/spook/NeckSnap3.ogg differ diff --git a/sounds/scp/voice/049_1/zombierand1.ogg b/sounds/scp/voice/049_1/zombierand1.ogg index 62c55338db..9e9cd04248 100644 Binary files a/sounds/scp/voice/049_1/zombierand1.ogg and b/sounds/scp/voice/049_1/zombierand1.ogg differ diff --git a/sounds/scp/voice/049_1/zombierand2.ogg b/sounds/scp/voice/049_1/zombierand2.ogg index b035fddc08..84f938fa7d 100644 Binary files a/sounds/scp/voice/049_1/zombierand2.ogg and b/sounds/scp/voice/049_1/zombierand2.ogg differ diff --git a/sounds/scp/voice/049_1/zombierand3.ogg b/sounds/scp/voice/049_1/zombierand3.ogg index 11bd398b67..8b65cabdfa 100644 Binary files a/sounds/scp/voice/049_1/zombierand3.ogg and b/sounds/scp/voice/049_1/zombierand3.ogg differ diff --git a/sounds/scp/voice/049_1/zombierand4.ogg b/sounds/scp/voice/049_1/zombierand4.ogg index 6c88dbe83c..3ce379bdc8 100644 Binary files a/sounds/scp/voice/049_1/zombierand4.ogg and b/sounds/scp/voice/049_1/zombierand4.ogg differ diff --git a/sounds/scp/voice/049_1/zombierand5.ogg b/sounds/scp/voice/049_1/zombierand5.ogg index 064e847140..8a61e669f3 100644 Binary files a/sounds/scp/voice/049_1/zombierand5.ogg and b/sounds/scp/voice/049_1/zombierand5.ogg differ diff --git a/sounds/scp/voice/049_1/zombierand6.ogg b/sounds/scp/voice/049_1/zombierand6.ogg index 478df4c97c..1fbff4dceb 100644 Binary files a/sounds/scp/voice/049_1/zombierand6.ogg and b/sounds/scp/voice/049_1/zombierand6.ogg differ diff --git a/sounds/scp/voice/049_1/zombierand7.ogg b/sounds/scp/voice/049_1/zombierand7.ogg index 9002aebf39..fa8a758054 100644 Binary files a/sounds/scp/voice/049_1/zombierand7.ogg and b/sounds/scp/voice/049_1/zombierand7.ogg differ diff --git a/sounds/scp/voice/049_1/zombiescratch.ogg b/sounds/scp/voice/049_1/zombiescratch.ogg index d95386bba8..aa3174ddf1 100644 Binary files a/sounds/scp/voice/049_1/zombiescratch.ogg and b/sounds/scp/voice/049_1/zombiescratch.ogg differ diff --git a/sounds/scp/voice/SCP049_1.ogg b/sounds/scp/voice/SCP049_1.ogg index acd18d7130..b68185a2a0 100644 Binary files a/sounds/scp/voice/SCP049_1.ogg and b/sounds/scp/voice/SCP049_1.ogg differ diff --git a/sounds/scp/voice/SCP049_2.ogg b/sounds/scp/voice/SCP049_2.ogg index 5e2cb49ca4..2a62f0039f 100644 Binary files a/sounds/scp/voice/SCP049_2.ogg and b/sounds/scp/voice/SCP049_2.ogg differ diff --git a/sounds/scp/voice/SCP049_3.ogg b/sounds/scp/voice/SCP049_3.ogg index f0a28803ed..9a8dc52b25 100644 Binary files a/sounds/scp/voice/SCP049_3.ogg and b/sounds/scp/voice/SCP049_3.ogg differ diff --git a/sounds/scp/voice/SCP049_4.ogg b/sounds/scp/voice/SCP049_4.ogg index 32f0d86df9..62e4da5176 100644 Binary files a/sounds/scp/voice/SCP049_4.ogg and b/sounds/scp/voice/SCP049_4.ogg differ diff --git a/sounds/scp/voice/SCP049_5.ogg b/sounds/scp/voice/SCP049_5.ogg index 26019f69ee..ffb6575229 100644 Binary files a/sounds/scp/voice/SCP049_5.ogg and b/sounds/scp/voice/SCP049_5.ogg differ diff --git a/sounds/scp/voice/SCP049_Cure1.ogg b/sounds/scp/voice/SCP049_Cure1.ogg index a5849af855..d1df1eedfe 100644 Binary files a/sounds/scp/voice/SCP049_Cure1.ogg and b/sounds/scp/voice/SCP049_Cure1.ogg differ diff --git a/sounds/scp/voice/SCP049_Cure2.ogg b/sounds/scp/voice/SCP049_Cure2.ogg index f588edffc0..9396c47180 100644 Binary files a/sounds/scp/voice/SCP049_Cure2.ogg and b/sounds/scp/voice/SCP049_Cure2.ogg differ diff --git a/sounds/simple_mob/abominable_infestation/aggregate/attack.ogg b/sounds/simple_mob/abominable_infestation/aggregate/attack.ogg index 655fe9cc92..b3c7c61a28 100644 Binary files a/sounds/simple_mob/abominable_infestation/aggregate/attack.ogg and b/sounds/simple_mob/abominable_infestation/aggregate/attack.ogg differ diff --git a/sounds/simple_mob/abominable_infestation/aggregate/death.ogg b/sounds/simple_mob/abominable_infestation/aggregate/death.ogg index 3b0ff3242b..2b9ec97c7e 100644 Binary files a/sounds/simple_mob/abominable_infestation/aggregate/death.ogg and b/sounds/simple_mob/abominable_infestation/aggregate/death.ogg differ diff --git a/sounds/simple_mob/abominable_infestation/aggregate/spawn_meatchip.ogg b/sounds/simple_mob/abominable_infestation/aggregate/spawn_meatchip.ogg index 3f9477cecc..6f35bcfce8 100644 Binary files a/sounds/simple_mob/abominable_infestation/aggregate/spawn_meatchip.ogg and b/sounds/simple_mob/abominable_infestation/aggregate/spawn_meatchip.ogg differ diff --git a/sounds/simple_mob/abominable_infestation/alien_04.ogg b/sounds/simple_mob/abominable_infestation/alien_04.ogg index f012ad7797..938b63511b 100644 Binary files a/sounds/simple_mob/abominable_infestation/alien_04.ogg and b/sounds/simple_mob/abominable_infestation/alien_04.ogg differ diff --git a/sounds/simple_mob/abominable_infestation/alien_05.ogg b/sounds/simple_mob/abominable_infestation/alien_05.ogg index a762400655..69fda1d374 100644 Binary files a/sounds/simple_mob/abominable_infestation/alien_05.ogg and b/sounds/simple_mob/abominable_infestation/alien_05.ogg differ diff --git a/sounds/simple_mob/abominable_infestation/alien_06.ogg b/sounds/simple_mob/abominable_infestation/alien_06.ogg index 512512bbf6..1a4d337af6 100644 Binary files a/sounds/simple_mob/abominable_infestation/alien_06.ogg and b/sounds/simple_mob/abominable_infestation/alien_06.ogg differ diff --git a/sounds/simple_mob/abominable_infestation/alien_09.ogg b/sounds/simple_mob/abominable_infestation/alien_09.ogg index 765df11a70..b1da984b23 100644 Binary files a/sounds/simple_mob/abominable_infestation/alien_09.ogg and b/sounds/simple_mob/abominable_infestation/alien_09.ogg differ diff --git a/sounds/simple_mob/abominable_infestation/assembler/ambient_1.ogg b/sounds/simple_mob/abominable_infestation/assembler/ambient_1.ogg index 25745c672a..b7038f4fe9 100644 Binary files a/sounds/simple_mob/abominable_infestation/assembler/ambient_1.ogg and b/sounds/simple_mob/abominable_infestation/assembler/ambient_1.ogg differ diff --git a/sounds/simple_mob/abominable_infestation/broodling/ambient_1.ogg b/sounds/simple_mob/abominable_infestation/broodling/ambient_1.ogg index e3662c4f30..efeb1b9142 100644 Binary files a/sounds/simple_mob/abominable_infestation/broodling/ambient_1.ogg and b/sounds/simple_mob/abominable_infestation/broodling/ambient_1.ogg differ diff --git a/sounds/simple_mob/abominable_infestation/broodling/ambient_2.ogg b/sounds/simple_mob/abominable_infestation/broodling/ambient_2.ogg index cfa36cc33c..d08b8b386d 100644 Binary files a/sounds/simple_mob/abominable_infestation/broodling/ambient_2.ogg and b/sounds/simple_mob/abominable_infestation/broodling/ambient_2.ogg differ diff --git a/sounds/simple_mob/abominable_infestation/broodling/death.ogg b/sounds/simple_mob/abominable_infestation/broodling/death.ogg index d0184ffc14..c04a31f7f2 100644 Binary files a/sounds/simple_mob/abominable_infestation/broodling/death.ogg and b/sounds/simple_mob/abominable_infestation/broodling/death.ogg differ diff --git a/sounds/simple_mob/abominable_infestation/bug_03.ogg b/sounds/simple_mob/abominable_infestation/bug_03.ogg index 1b09e54631..39b014ef1e 100644 Binary files a/sounds/simple_mob/abominable_infestation/bug_03.ogg and b/sounds/simple_mob/abominable_infestation/bug_03.ogg differ diff --git a/sounds/simple_mob/abominable_infestation/bug_04.ogg b/sounds/simple_mob/abominable_infestation/bug_04.ogg index 2e981a561f..805078e37d 100644 Binary files a/sounds/simple_mob/abominable_infestation/bug_04.ogg and b/sounds/simple_mob/abominable_infestation/bug_04.ogg differ diff --git a/sounds/simple_mob/abominable_infestation/bug_05.ogg b/sounds/simple_mob/abominable_infestation/bug_05.ogg index 7188ba4083..f0a6b650c8 100644 Binary files a/sounds/simple_mob/abominable_infestation/bug_05.ogg and b/sounds/simple_mob/abominable_infestation/bug_05.ogg differ diff --git a/sounds/simple_mob/abominable_infestation/bug_06.ogg b/sounds/simple_mob/abominable_infestation/bug_06.ogg index a1fafd2cfc..2c43c4bc09 100644 Binary files a/sounds/simple_mob/abominable_infestation/bug_06.ogg and b/sounds/simple_mob/abominable_infestation/bug_06.ogg differ diff --git a/sounds/simple_mob/abominable_infestation/bug_08.ogg b/sounds/simple_mob/abominable_infestation/bug_08.ogg index 5520b4a432..eb8c7366c1 100644 Binary files a/sounds/simple_mob/abominable_infestation/bug_08.ogg and b/sounds/simple_mob/abominable_infestation/bug_08.ogg differ diff --git a/sounds/simple_mob/abominable_infestation/bug_09.ogg b/sounds/simple_mob/abominable_infestation/bug_09.ogg index f4e2d95ad9..71554e4c59 100644 Binary files a/sounds/simple_mob/abominable_infestation/bug_09.ogg and b/sounds/simple_mob/abominable_infestation/bug_09.ogg differ diff --git a/sounds/simple_mob/abominable_infestation/bug_10.ogg b/sounds/simple_mob/abominable_infestation/bug_10.ogg index 2b08cf8726..1c43898b08 100644 Binary files a/sounds/simple_mob/abominable_infestation/bug_10.ogg and b/sounds/simple_mob/abominable_infestation/bug_10.ogg differ diff --git a/sounds/simple_mob/abominable_infestation/bug_11.ogg b/sounds/simple_mob/abominable_infestation/bug_11.ogg index f46c6894da..210a94f4d0 100644 Binary files a/sounds/simple_mob/abominable_infestation/bug_11.ogg and b/sounds/simple_mob/abominable_infestation/bug_11.ogg differ diff --git a/sounds/simple_mob/abominable_infestation/bug_12.ogg b/sounds/simple_mob/abominable_infestation/bug_12.ogg index be89ae926c..5bdbd5d3b4 100644 Binary files a/sounds/simple_mob/abominable_infestation/bug_12.ogg and b/sounds/simple_mob/abominable_infestation/bug_12.ogg differ diff --git a/sounds/simple_mob/abominable_infestation/bug_13.ogg b/sounds/simple_mob/abominable_infestation/bug_13.ogg index 6a9f56dddb..80f4246e07 100644 Binary files a/sounds/simple_mob/abominable_infestation/bug_13.ogg and b/sounds/simple_mob/abominable_infestation/bug_13.ogg differ diff --git a/sounds/simple_mob/abominable_infestation/eviscerator/aggro_1.ogg b/sounds/simple_mob/abominable_infestation/eviscerator/aggro_1.ogg index 87a5c6535b..49e797dcff 100644 Binary files a/sounds/simple_mob/abominable_infestation/eviscerator/aggro_1.ogg and b/sounds/simple_mob/abominable_infestation/eviscerator/aggro_1.ogg differ diff --git a/sounds/simple_mob/abominable_infestation/eviscerator/aggro_2.ogg b/sounds/simple_mob/abominable_infestation/eviscerator/aggro_2.ogg index 291895ef20..73c74f39da 100644 Binary files a/sounds/simple_mob/abominable_infestation/eviscerator/aggro_2.ogg and b/sounds/simple_mob/abominable_infestation/eviscerator/aggro_2.ogg differ diff --git a/sounds/simple_mob/abominable_infestation/eviscerator/aggro_3.ogg b/sounds/simple_mob/abominable_infestation/eviscerator/aggro_3.ogg index 3d1945dd02..ff720a9be0 100644 Binary files a/sounds/simple_mob/abominable_infestation/eviscerator/aggro_3.ogg and b/sounds/simple_mob/abominable_infestation/eviscerator/aggro_3.ogg differ diff --git a/sounds/simple_mob/abominable_infestation/eviscerator/attack.ogg b/sounds/simple_mob/abominable_infestation/eviscerator/attack.ogg index ceddc7b1e3..f3afd68bf6 100644 Binary files a/sounds/simple_mob/abominable_infestation/eviscerator/attack.ogg and b/sounds/simple_mob/abominable_infestation/eviscerator/attack.ogg differ diff --git a/sounds/simple_mob/abominable_infestation/eviscerator/death_1.ogg b/sounds/simple_mob/abominable_infestation/eviscerator/death_1.ogg index 4ca0361af0..979291d90a 100644 Binary files a/sounds/simple_mob/abominable_infestation/eviscerator/death_1.ogg and b/sounds/simple_mob/abominable_infestation/eviscerator/death_1.ogg differ diff --git a/sounds/simple_mob/abominable_infestation/eviscerator/death_2.ogg b/sounds/simple_mob/abominable_infestation/eviscerator/death_2.ogg index 6e213a349e..0d89500714 100644 Binary files a/sounds/simple_mob/abominable_infestation/eviscerator/death_2.ogg and b/sounds/simple_mob/abominable_infestation/eviscerator/death_2.ogg differ diff --git a/sounds/simple_mob/abominable_infestation/eviscerator/step.ogg b/sounds/simple_mob/abominable_infestation/eviscerator/step.ogg index 6190eb6d10..e165df8a9a 100644 Binary files a/sounds/simple_mob/abominable_infestation/eviscerator/step.ogg and b/sounds/simple_mob/abominable_infestation/eviscerator/step.ogg differ diff --git a/sounds/simple_mob/abominable_infestation/floatfly/death.ogg b/sounds/simple_mob/abominable_infestation/floatfly/death.ogg index 2e981a561f..329442baf5 100644 Binary files a/sounds/simple_mob/abominable_infestation/floatfly/death.ogg and b/sounds/simple_mob/abominable_infestation/floatfly/death.ogg differ diff --git a/sounds/simple_mob/abominable_infestation/floatfly/fly.ogg b/sounds/simple_mob/abominable_infestation/floatfly/fly.ogg index 733b8190e3..3f38e83ce1 100644 Binary files a/sounds/simple_mob/abominable_infestation/floatfly/fly.ogg and b/sounds/simple_mob/abominable_infestation/floatfly/fly.ogg differ diff --git a/sounds/simple_mob/abominable_infestation/heart_death.ogg b/sounds/simple_mob/abominable_infestation/heart_death.ogg index 24e2a3b474..a8ef614116 100644 Binary files a/sounds/simple_mob/abominable_infestation/heart_death.ogg and b/sounds/simple_mob/abominable_infestation/heart_death.ogg differ diff --git a/sounds/simple_mob/abominable_infestation/larva/ambient_1.ogg b/sounds/simple_mob/abominable_infestation/larva/ambient_1.ogg index 3e7a4dbb8e..d359938c71 100644 Binary files a/sounds/simple_mob/abominable_infestation/larva/ambient_1.ogg and b/sounds/simple_mob/abominable_infestation/larva/ambient_1.ogg differ diff --git a/sounds/simple_mob/abominable_infestation/larva/ambient_2.ogg b/sounds/simple_mob/abominable_infestation/larva/ambient_2.ogg index 41d87e12de..40090a4cf5 100644 Binary files a/sounds/simple_mob/abominable_infestation/larva/ambient_2.ogg and b/sounds/simple_mob/abominable_infestation/larva/ambient_2.ogg differ diff --git a/sounds/simple_mob/abominable_infestation/larva/ambient_3.ogg b/sounds/simple_mob/abominable_infestation/larva/ambient_3.ogg index 299fc01fc4..8fe5cb2d1e 100644 Binary files a/sounds/simple_mob/abominable_infestation/larva/ambient_3.ogg and b/sounds/simple_mob/abominable_infestation/larva/ambient_3.ogg differ diff --git a/sounds/simple_mob/abominable_infestation/larva/death_1.ogg b/sounds/simple_mob/abominable_infestation/larva/death_1.ogg index 738fd8f7c9..f7b64a0a25 100644 Binary files a/sounds/simple_mob/abominable_infestation/larva/death_1.ogg and b/sounds/simple_mob/abominable_infestation/larva/death_1.ogg differ diff --git a/sounds/simple_mob/abominable_infestation/larva/death_2.ogg b/sounds/simple_mob/abominable_infestation/larva/death_2.ogg index afa9580d3e..1154b37df9 100644 Binary files a/sounds/simple_mob/abominable_infestation/larva/death_2.ogg and b/sounds/simple_mob/abominable_infestation/larva/death_2.ogg differ diff --git a/sounds/simple_mob/abominable_infestation/larva/implant.ogg b/sounds/simple_mob/abominable_infestation/larva/implant.ogg index 0c7ba431bf..065f843ab6 100644 Binary files a/sounds/simple_mob/abominable_infestation/larva/implant.ogg and b/sounds/simple_mob/abominable_infestation/larva/implant.ogg differ diff --git a/sounds/simple_mob/abominable_infestation/larva/spawn.ogg b/sounds/simple_mob/abominable_infestation/larva/spawn.ogg index 820e500b33..3e90d79bc0 100644 Binary files a/sounds/simple_mob/abominable_infestation/larva/spawn.ogg and b/sounds/simple_mob/abominable_infestation/larva/spawn.ogg differ diff --git a/sounds/simple_mob/abominable_infestation/lurker/ambient_1.ogg b/sounds/simple_mob/abominable_infestation/lurker/ambient_1.ogg index bcb4150847..6edc13b956 100644 Binary files a/sounds/simple_mob/abominable_infestation/lurker/ambient_1.ogg and b/sounds/simple_mob/abominable_infestation/lurker/ambient_1.ogg differ diff --git a/sounds/simple_mob/abominable_infestation/lurker/death.ogg b/sounds/simple_mob/abominable_infestation/lurker/death.ogg index a2655089a0..06509d94d1 100644 Binary files a/sounds/simple_mob/abominable_infestation/lurker/death.ogg and b/sounds/simple_mob/abominable_infestation/lurker/death.ogg differ diff --git a/sounds/simple_mob/abominable_infestation/meatchip/death.ogg b/sounds/simple_mob/abominable_infestation/meatchip/death.ogg index 3cf2b3aa12..3de2126d48 100644 Binary files a/sounds/simple_mob/abominable_infestation/meatchip/death.ogg and b/sounds/simple_mob/abominable_infestation/meatchip/death.ogg differ diff --git a/sounds/simple_mob/abominable_infestation/rhino/death.ogg b/sounds/simple_mob/abominable_infestation/rhino/death.ogg index 3222a77c21..5ea8467e61 100644 Binary files a/sounds/simple_mob/abominable_infestation/rhino/death.ogg and b/sounds/simple_mob/abominable_infestation/rhino/death.ogg differ diff --git a/sounds/simple_mob/abominable_infestation/rhino/roar.ogg b/sounds/simple_mob/abominable_infestation/rhino/roar.ogg index 39845a8867..3a03a02379 100644 Binary files a/sounds/simple_mob/abominable_infestation/rhino/roar.ogg and b/sounds/simple_mob/abominable_infestation/rhino/roar.ogg differ diff --git a/sounds/simple_mob/abominable_infestation/rhino/step.ogg b/sounds/simple_mob/abominable_infestation/rhino/step.ogg index dd68658f8a..60fe108a8e 100644 Binary files a/sounds/simple_mob/abominable_infestation/rhino/step.ogg and b/sounds/simple_mob/abominable_infestation/rhino/step.ogg differ diff --git a/sounds/simple_mob/abominable_infestation/rhino/step_angry.ogg b/sounds/simple_mob/abominable_infestation/rhino/step_angry.ogg index c5ff7040a2..9df63965f2 100644 Binary files a/sounds/simple_mob/abominable_infestation/rhino/step_angry.ogg and b/sounds/simple_mob/abominable_infestation/rhino/step_angry.ogg differ diff --git a/sounds/simple_mob/abominable_infestation/spitter/ambient_1.ogg b/sounds/simple_mob/abominable_infestation/spitter/ambient_1.ogg index 41d87e12de..8ce7dcef22 100644 Binary files a/sounds/simple_mob/abominable_infestation/spitter/ambient_1.ogg and b/sounds/simple_mob/abominable_infestation/spitter/ambient_1.ogg differ diff --git a/sounds/simple_mob/abominable_infestation/spitter/ambient_2.ogg b/sounds/simple_mob/abominable_infestation/spitter/ambient_2.ogg index 299fc01fc4..0127292285 100644 Binary files a/sounds/simple_mob/abominable_infestation/spitter/ambient_2.ogg and b/sounds/simple_mob/abominable_infestation/spitter/ambient_2.ogg differ diff --git a/sounds/simple_mob/abominable_infestation/spitter/attack.ogg b/sounds/simple_mob/abominable_infestation/spitter/attack.ogg index 3b6ff6f1b0..f258d24d5d 100644 Binary files a/sounds/simple_mob/abominable_infestation/spitter/attack.ogg and b/sounds/simple_mob/abominable_infestation/spitter/attack.ogg differ diff --git a/sounds/simple_mob/abominable_infestation/spitter/death.ogg b/sounds/simple_mob/abominable_infestation/spitter/death.ogg index 8dcbeb4e55..caf8573acf 100644 Binary files a/sounds/simple_mob/abominable_infestation/spitter/death.ogg and b/sounds/simple_mob/abominable_infestation/spitter/death.ogg differ diff --git a/sounds/simple_mob/abominable_infestation/stand_down.ogg b/sounds/simple_mob/abominable_infestation/stand_down.ogg index 63db2c0fb7..8f57ec06e9 100644 Binary files a/sounds/simple_mob/abominable_infestation/stand_down.ogg and b/sounds/simple_mob/abominable_infestation/stand_down.ogg differ diff --git a/sounds/simple_mob/abominable_infestation/threat.ogg b/sounds/simple_mob/abominable_infestation/threat.ogg index 79e720f3e1..da666d2375 100644 Binary files a/sounds/simple_mob/abominable_infestation/threat.ogg and b/sounds/simple_mob/abominable_infestation/threat.ogg differ diff --git a/sounds/theme/neutral_hopeful1.ogg b/sounds/theme/neutral_hopeful1.ogg index 7f875d9de4..1054f64fde 100644 Binary files a/sounds/theme/neutral_hopeful1.ogg and b/sounds/theme/neutral_hopeful1.ogg differ diff --git a/sounds/theme/neutral_hopeful2.ogg b/sounds/theme/neutral_hopeful2.ogg index f0a2910c63..2a4ace479c 100644 Binary files a/sounds/theme/neutral_hopeful2.ogg and b/sounds/theme/neutral_hopeful2.ogg differ diff --git a/sounds/theme/neutral_melancholy1.ogg b/sounds/theme/neutral_melancholy1.ogg index 98ceee1ae1..63c1bca67e 100644 Binary files a/sounds/theme/neutral_melancholy1.ogg and b/sounds/theme/neutral_melancholy1.ogg differ diff --git a/sounds/theme/neutral_melancholy2.ogg b/sounds/theme/neutral_melancholy2.ogg index 9d9019f4e2..30f10c0de4 100644 Binary files a/sounds/theme/neutral_melancholy2.ogg and b/sounds/theme/neutral_melancholy2.ogg differ diff --git a/sounds/theme/nuclear_detonation1.ogg b/sounds/theme/nuclear_detonation1.ogg index 938ebc6c14..b92771112f 100644 Binary files a/sounds/theme/nuclear_detonation1.ogg and b/sounds/theme/nuclear_detonation1.ogg differ diff --git a/sounds/theme/nuclear_detonation2.ogg b/sounds/theme/nuclear_detonation2.ogg index d6fc71b428..6a164f2c4c 100644 Binary files a/sounds/theme/nuclear_detonation2.ogg and b/sounds/theme/nuclear_detonation2.ogg differ diff --git a/sounds/theme/sad_loss1.ogg b/sounds/theme/sad_loss1.ogg index a455d02eb3..c9820c0fb5 100644 Binary files a/sounds/theme/sad_loss1.ogg and b/sounds/theme/sad_loss1.ogg differ diff --git a/sounds/theme/sad_loss2.ogg b/sounds/theme/sad_loss2.ogg index 79a5ceb996..9b5bff339b 100644 Binary files a/sounds/theme/sad_loss2.ogg and b/sounds/theme/sad_loss2.ogg differ diff --git a/sounds/theme/winning_triumph1.ogg b/sounds/theme/winning_triumph1.ogg index a9d8dfbb71..8fa06fa6af 100644 Binary files a/sounds/theme/winning_triumph1.ogg and b/sounds/theme/winning_triumph1.ogg differ diff --git a/sounds/theme/winning_triumph2.ogg b/sounds/theme/winning_triumph2.ogg index a3838ed689..c90e06be61 100644 Binary files a/sounds/theme/winning_triumph2.ogg and b/sounds/theme/winning_triumph2.ogg differ diff --git a/sounds/voice/096-kill.ogg b/sounds/voice/096-kill.ogg index 8e2d6d21e2..546a26ca89 100644 Binary files a/sounds/voice/096-kill.ogg and b/sounds/voice/096-kill.ogg differ diff --git a/sounds/voice/096-rage.ogg b/sounds/voice/096-rage.ogg index 0081a899f6..eb92166b11 100644 Binary files a/sounds/voice/096-rage.ogg and b/sounds/voice/096-rage.ogg differ diff --git a/sounds/voice/4_xeno_roars.ogg b/sounds/voice/4_xeno_roars.ogg index 14849c6284..209db26d3e 100644 Binary files a/sounds/voice/4_xeno_roars.ogg and b/sounds/voice/4_xeno_roars.ogg differ diff --git a/sounds/voice/AISyndiHack.ogg b/sounds/voice/AISyndiHack.ogg index d60c86f240..9579ba4216 100644 Binary files a/sounds/voice/AISyndiHack.ogg and b/sounds/voice/AISyndiHack.ogg differ diff --git a/sounds/voice/Bug.ogg b/sounds/voice/Bug.ogg index 83486e436f..1d13594dfd 100644 Binary files a/sounds/voice/Bug.ogg and b/sounds/voice/Bug.ogg differ diff --git a/sounds/voice/BugBuzz.ogg b/sounds/voice/BugBuzz.ogg index 43fda8be42..6a93f523e8 100644 Binary files a/sounds/voice/BugBuzz.ogg and b/sounds/voice/BugBuzz.ogg differ diff --git a/sounds/voice/BugHiss.ogg b/sounds/voice/BugHiss.ogg index 3ab342f5c9..1a69e42917 100644 Binary files a/sounds/voice/BugHiss.ogg and b/sounds/voice/BugHiss.ogg differ diff --git a/sounds/voice/EDPlaceholder.ogg b/sounds/voice/EDPlaceholder.ogg index 501f8f33c3..7bc3d30f3d 100644 Binary files a/sounds/voice/EDPlaceholder.ogg and b/sounds/voice/EDPlaceholder.ogg differ diff --git a/sounds/voice/LizardBellow.ogg b/sounds/voice/LizardBellow.ogg index bda80a6c50..c9d0a089ce 100644 Binary files a/sounds/voice/LizardBellow.ogg and b/sounds/voice/LizardBellow.ogg differ diff --git a/sounds/voice/LizardSqueal.ogg b/sounds/voice/LizardSqueal.ogg index f4624376e2..9624b56431 100644 Binary files a/sounds/voice/LizardSqueal.ogg and b/sounds/voice/LizardSqueal.ogg differ diff --git a/sounds/voice/ManUp1.ogg b/sounds/voice/ManUp1.ogg index 9239a02e17..f309f0decb 100644 Binary files a/sounds/voice/ManUp1.ogg and b/sounds/voice/ManUp1.ogg differ diff --git a/sounds/voice/Serithi/Shuttlehere.ogg b/sounds/voice/Serithi/Shuttlehere.ogg index 095d0eb433..43bb628ee9 100644 Binary files a/sounds/voice/Serithi/Shuttlehere.ogg and b/sounds/voice/Serithi/Shuttlehere.ogg differ diff --git a/sounds/voice/Serithi/pretenddemoc.ogg b/sounds/voice/Serithi/pretenddemoc.ogg index 2265aeae4c..93a249728c 100644 Binary files a/sounds/voice/Serithi/pretenddemoc.ogg and b/sounds/voice/Serithi/pretenddemoc.ogg differ diff --git a/sounds/voice/Serithi/weneedvote.ogg b/sounds/voice/Serithi/weneedvote.ogg index 4bc18b70a6..377385248d 100644 Binary files a/sounds/voice/Serithi/weneedvote.ogg and b/sounds/voice/Serithi/weneedvote.ogg differ diff --git a/sounds/voice/abomination1.ogg b/sounds/voice/abomination1.ogg index f012ad7797..0595eb71bc 100644 Binary files a/sounds/voice/abomination1.ogg and b/sounds/voice/abomination1.ogg differ diff --git a/sounds/voice/abomination2.ogg b/sounds/voice/abomination2.ogg index a762400655..7adab618c3 100644 Binary files a/sounds/voice/abomination2.ogg and b/sounds/voice/abomination2.ogg differ diff --git a/sounds/voice/abomination3.ogg b/sounds/voice/abomination3.ogg index 512512bbf6..d8abc8ab51 100644 Binary files a/sounds/voice/abomination3.ogg and b/sounds/voice/abomination3.ogg differ diff --git a/sounds/voice/abomination4.ogg b/sounds/voice/abomination4.ogg index 765df11a70..984742e863 100644 Binary files a/sounds/voice/abomination4.ogg and b/sounds/voice/abomination4.ogg differ diff --git a/sounds/voice/abomination5.ogg b/sounds/voice/abomination5.ogg index a1fafd2cfc..283c83284b 100644 Binary files a/sounds/voice/abomination5.ogg and b/sounds/voice/abomination5.ogg differ diff --git a/sounds/voice/abomination6.ogg b/sounds/voice/abomination6.ogg index 5520b4a432..a52ebb492f 100644 Binary files a/sounds/voice/abomination6.ogg and b/sounds/voice/abomination6.ogg differ diff --git a/sounds/voice/abomination7.ogg b/sounds/voice/abomination7.ogg index 7188ba4083..6183e1ce01 100644 Binary files a/sounds/voice/abomination7.ogg and b/sounds/voice/abomination7.ogg differ diff --git a/sounds/voice/abomination8.ogg b/sounds/voice/abomination8.ogg index f4e2d95ad9..602c474b30 100644 Binary files a/sounds/voice/abomination8.ogg and b/sounds/voice/abomination8.ogg differ diff --git a/sounds/voice/alien_cena.ogg b/sounds/voice/alien_cena.ogg index cf9fc6d8ea..2366b1f134 100644 Binary files a/sounds/voice/alien_cena.ogg and b/sounds/voice/alien_cena.ogg differ diff --git a/sounds/voice/alien_chestburst.ogg b/sounds/voice/alien_chestburst.ogg index 620b344fad..b49905e629 100644 Binary files a/sounds/voice/alien_chestburst.ogg and b/sounds/voice/alien_chestburst.ogg differ diff --git a/sounds/voice/alien_chestburst2.ogg b/sounds/voice/alien_chestburst2.ogg index 23230ce778..b9464c1738 100644 Binary files a/sounds/voice/alien_chestburst2.ogg and b/sounds/voice/alien_chestburst2.ogg differ diff --git a/sounds/voice/alien_death.ogg b/sounds/voice/alien_death.ogg index 3762b1e683..99fe301533 100644 Binary files a/sounds/voice/alien_death.ogg and b/sounds/voice/alien_death.ogg differ diff --git a/sounds/voice/alien_death2.ogg b/sounds/voice/alien_death2.ogg index 9cb00d374d..636997353a 100644 Binary files a/sounds/voice/alien_death2.ogg and b/sounds/voice/alien_death2.ogg differ diff --git a/sounds/voice/alien_distantroar_3.ogg b/sounds/voice/alien_distantroar_3.ogg index 26179e65e6..18ae2cc4b8 100644 Binary files a/sounds/voice/alien_distantroar_3.ogg and b/sounds/voice/alien_distantroar_3.ogg differ diff --git a/sounds/voice/alien_drool1.ogg b/sounds/voice/alien_drool1.ogg index 41366e7e0c..727f7ac9b4 100644 Binary files a/sounds/voice/alien_drool1.ogg and b/sounds/voice/alien_drool1.ogg differ diff --git a/sounds/voice/alien_drool2.ogg b/sounds/voice/alien_drool2.ogg index aa727d6b39..92ed5a8427 100644 Binary files a/sounds/voice/alien_drool2.ogg and b/sounds/voice/alien_drool2.ogg differ diff --git a/sounds/voice/alien_facehugger_dies.ogg b/sounds/voice/alien_facehugger_dies.ogg index 36b9bca856..bf54b4bcc7 100644 Binary files a/sounds/voice/alien_facehugger_dies.ogg and b/sounds/voice/alien_facehugger_dies.ogg differ diff --git a/sounds/voice/alien_growl1.ogg b/sounds/voice/alien_growl1.ogg index 5ce08a3533..1e5c5c42e4 100644 Binary files a/sounds/voice/alien_growl1.ogg and b/sounds/voice/alien_growl1.ogg differ diff --git a/sounds/voice/alien_growl2.ogg b/sounds/voice/alien_growl2.ogg index 171049fcc7..95e9cda5a4 100644 Binary files a/sounds/voice/alien_growl2.ogg and b/sounds/voice/alien_growl2.ogg differ diff --git a/sounds/voice/alien_growl3.ogg b/sounds/voice/alien_growl3.ogg index 12b0edb482..b0df4887c8 100644 Binary files a/sounds/voice/alien_growl3.ogg and b/sounds/voice/alien_growl3.ogg differ diff --git a/sounds/voice/alien_help1.ogg b/sounds/voice/alien_help1.ogg index 9948030670..6a027fbb31 100644 Binary files a/sounds/voice/alien_help1.ogg and b/sounds/voice/alien_help1.ogg differ diff --git a/sounds/voice/alien_help2.ogg b/sounds/voice/alien_help2.ogg index 601e088a18..9d3a4ec84d 100644 Binary files a/sounds/voice/alien_help2.ogg and b/sounds/voice/alien_help2.ogg differ diff --git a/sounds/voice/alien_hiss1.ogg b/sounds/voice/alien_hiss1.ogg index f29323687b..5825c995d1 100644 Binary files a/sounds/voice/alien_hiss1.ogg and b/sounds/voice/alien_hiss1.ogg differ diff --git a/sounds/voice/alien_hiss2.ogg b/sounds/voice/alien_hiss2.ogg index ea6a0a960c..11f35e7f05 100644 Binary files a/sounds/voice/alien_hiss2.ogg and b/sounds/voice/alien_hiss2.ogg differ diff --git a/sounds/voice/alien_hiss3.ogg b/sounds/voice/alien_hiss3.ogg index 8cee9b4f15..f68ed13ff5 100644 Binary files a/sounds/voice/alien_hiss3.ogg and b/sounds/voice/alien_hiss3.ogg differ diff --git a/sounds/voice/alien_pounce.ogg b/sounds/voice/alien_pounce.ogg index 38b79b1c2c..9f28c2e6ca 100644 Binary files a/sounds/voice/alien_pounce.ogg and b/sounds/voice/alien_pounce.ogg differ diff --git a/sounds/voice/alien_pounce2.ogg b/sounds/voice/alien_pounce2.ogg index b3dbc78f67..17580cfbb2 100644 Binary files a/sounds/voice/alien_pounce2.ogg and b/sounds/voice/alien_pounce2.ogg differ diff --git a/sounds/voice/alien_queen_breath1.ogg b/sounds/voice/alien_queen_breath1.ogg index 098a2d9f04..06667660a7 100644 Binary files a/sounds/voice/alien_queen_breath1.ogg and b/sounds/voice/alien_queen_breath1.ogg differ diff --git a/sounds/voice/alien_queen_breath2.ogg b/sounds/voice/alien_queen_breath2.ogg index 8139051daf..677cfbb698 100644 Binary files a/sounds/voice/alien_queen_breath2.ogg and b/sounds/voice/alien_queen_breath2.ogg differ diff --git a/sounds/voice/alien_queen_command.ogg b/sounds/voice/alien_queen_command.ogg index 924b5ccece..2e6a7019b1 100644 Binary files a/sounds/voice/alien_queen_command.ogg and b/sounds/voice/alien_queen_command.ogg differ diff --git a/sounds/voice/alien_queen_command2.ogg b/sounds/voice/alien_queen_command2.ogg index aca3579d6b..fbc9737291 100644 Binary files a/sounds/voice/alien_queen_command2.ogg and b/sounds/voice/alien_queen_command2.ogg differ diff --git a/sounds/voice/alien_queen_command3.ogg b/sounds/voice/alien_queen_command3.ogg index 3c7f1ae693..46fc728bae 100644 Binary files a/sounds/voice/alien_queen_command3.ogg and b/sounds/voice/alien_queen_command3.ogg differ diff --git a/sounds/voice/alien_queen_died.ogg b/sounds/voice/alien_queen_died.ogg index 4f2ca1607c..1c4c8fede3 100644 Binary files a/sounds/voice/alien_queen_died.ogg and b/sounds/voice/alien_queen_died.ogg differ diff --git a/sounds/voice/alien_queen_screech.ogg b/sounds/voice/alien_queen_screech.ogg index 8b99aebe96..94519dc534 100644 Binary files a/sounds/voice/alien_queen_screech.ogg and b/sounds/voice/alien_queen_screech.ogg differ diff --git a/sounds/voice/alien_queen_xmas.ogg b/sounds/voice/alien_queen_xmas.ogg index 5f191ba30f..6e1ea7569b 100644 Binary files a/sounds/voice/alien_queen_xmas.ogg and b/sounds/voice/alien_queen_xmas.ogg differ diff --git a/sounds/voice/alien_roar1.ogg b/sounds/voice/alien_roar1.ogg index 302ebf8104..425d45eb48 100644 Binary files a/sounds/voice/alien_roar1.ogg and b/sounds/voice/alien_roar1.ogg differ diff --git a/sounds/voice/alien_roar2.ogg b/sounds/voice/alien_roar2.ogg index c670730c4f..90d51b716f 100644 Binary files a/sounds/voice/alien_roar2.ogg and b/sounds/voice/alien_roar2.ogg differ diff --git a/sounds/voice/alien_roar3.ogg b/sounds/voice/alien_roar3.ogg index 73da74d97a..b4b423eba1 100644 Binary files a/sounds/voice/alien_roar3.ogg and b/sounds/voice/alien_roar3.ogg differ diff --git a/sounds/voice/alien_roar4.ogg b/sounds/voice/alien_roar4.ogg index e5c7a6b985..ed8f71bbd1 100644 Binary files a/sounds/voice/alien_roar4.ogg and b/sounds/voice/alien_roar4.ogg differ diff --git a/sounds/voice/alien_roar5.ogg b/sounds/voice/alien_roar5.ogg index 4f96d740c0..058e572d45 100644 Binary files a/sounds/voice/alien_roar5.ogg and b/sounds/voice/alien_roar5.ogg differ diff --git a/sounds/voice/alien_roar6.ogg b/sounds/voice/alien_roar6.ogg index 868e926f77..81a9cfe002 100644 Binary files a/sounds/voice/alien_roar6.ogg and b/sounds/voice/alien_roar6.ogg differ diff --git a/sounds/voice/alien_roar_larva1.ogg b/sounds/voice/alien_roar_larva1.ogg index 8d60b6d935..45de5a71c8 100644 Binary files a/sounds/voice/alien_roar_larva1.ogg and b/sounds/voice/alien_roar_larva1.ogg differ diff --git a/sounds/voice/alien_roar_larva2.ogg b/sounds/voice/alien_roar_larva2.ogg index 27563b37b4..fb1df0aad9 100644 Binary files a/sounds/voice/alien_roar_larva2.ogg and b/sounds/voice/alien_roar_larva2.ogg differ diff --git a/sounds/voice/alien_spitacid.ogg b/sounds/voice/alien_spitacid.ogg index b4aa578b17..89fd494e37 100644 Binary files a/sounds/voice/alien_spitacid.ogg and b/sounds/voice/alien_spitacid.ogg differ diff --git a/sounds/voice/alien_spitacid2.ogg b/sounds/voice/alien_spitacid2.ogg index 243d1aa174..d1c6cac5f0 100644 Binary files a/sounds/voice/alien_spitacid2.ogg and b/sounds/voice/alien_spitacid2.ogg differ diff --git a/sounds/voice/alien_talk.ogg b/sounds/voice/alien_talk.ogg index a6cd1d901b..11b3f38be5 100644 Binary files a/sounds/voice/alien_talk.ogg and b/sounds/voice/alien_talk.ogg differ diff --git a/sounds/voice/alien_talk2.ogg b/sounds/voice/alien_talk2.ogg index 8766ef4c88..5c50f37892 100644 Binary files a/sounds/voice/alien_talk2.ogg and b/sounds/voice/alien_talk2.ogg differ diff --git a/sounds/voice/alien_talk3.ogg b/sounds/voice/alien_talk3.ogg index d2b4a14ce7..4612dbb873 100644 Binary files a/sounds/voice/alien_talk3.ogg and b/sounds/voice/alien_talk3.ogg differ diff --git a/sounds/voice/ascent1.ogg b/sounds/voice/ascent1.ogg index efd064bc6c..7ed15b1ed6 100644 Binary files a/sounds/voice/ascent1.ogg and b/sounds/voice/ascent1.ogg differ diff --git a/sounds/voice/ascent2.ogg b/sounds/voice/ascent2.ogg index 36779fcf69..9ec96d0c4d 100644 Binary files a/sounds/voice/ascent2.ogg and b/sounds/voice/ascent2.ogg differ diff --git a/sounds/voice/ascent3.ogg b/sounds/voice/ascent3.ogg index 3f8df21a71..2bdd637dc4 100644 Binary files a/sounds/voice/ascent3.ogg and b/sounds/voice/ascent3.ogg differ diff --git a/sounds/voice/ascent4.ogg b/sounds/voice/ascent4.ogg index 335f3f01b3..48390bbd24 100644 Binary files a/sounds/voice/ascent4.ogg and b/sounds/voice/ascent4.ogg differ diff --git a/sounds/voice/ascent5.ogg b/sounds/voice/ascent5.ogg index 11c022f158..458eecf1bf 100644 Binary files a/sounds/voice/ascent5.ogg and b/sounds/voice/ascent5.ogg differ diff --git a/sounds/voice/ascent6.ogg b/sounds/voice/ascent6.ogg index 80b91057ba..52a066cbb8 100644 Binary files a/sounds/voice/ascent6.ogg and b/sounds/voice/ascent6.ogg differ diff --git a/sounds/voice/ashriek.ogg b/sounds/voice/ashriek.ogg index 125ba868fd..26d09eb47a 100644 Binary files a/sounds/voice/ashriek.ogg and b/sounds/voice/ashriek.ogg differ diff --git a/sounds/voice/bcreep.ogg b/sounds/voice/bcreep.ogg index 748171443e..4b3af52a2a 100644 Binary files a/sounds/voice/bcreep.ogg and b/sounds/voice/bcreep.ogg differ diff --git a/sounds/voice/bcriminal.ogg b/sounds/voice/bcriminal.ogg index 5a3da31bcd..42b3a869b3 100644 Binary files a/sounds/voice/bcriminal.ogg and b/sounds/voice/bcriminal.ogg differ diff --git a/sounds/voice/bfreeze.ogg b/sounds/voice/bfreeze.ogg index 488f429870..33dfdda4ca 100644 Binary files a/sounds/voice/bfreeze.ogg and b/sounds/voice/bfreeze.ogg differ diff --git a/sounds/voice/bgod.ogg b/sounds/voice/bgod.ogg index 66d5043de8..b9115f6795 100644 Binary files a/sounds/voice/bgod.ogg and b/sounds/voice/bgod.ogg differ diff --git a/sounds/voice/biamthelaw.ogg b/sounds/voice/biamthelaw.ogg index 93f71d30a4..e74dc458c4 100644 Binary files a/sounds/voice/biamthelaw.ogg and b/sounds/voice/biamthelaw.ogg differ diff --git a/sounds/voice/binsult.ogg b/sounds/voice/binsult.ogg index 449be1c53d..24ca257005 100644 Binary files a/sounds/voice/binsult.ogg and b/sounds/voice/binsult.ogg differ diff --git a/sounds/voice/bjustice.ogg b/sounds/voice/bjustice.ogg index ae998dd95b..aae7567527 100644 Binary files a/sounds/voice/bjustice.ogg and b/sounds/voice/bjustice.ogg differ diff --git a/sounds/voice/bradio.ogg b/sounds/voice/bradio.ogg index 2b6a7769dd..c218f9890a 100644 Binary files a/sounds/voice/bradio.ogg and b/sounds/voice/bradio.ogg differ diff --git a/sounds/voice/bsecureday.ogg b/sounds/voice/bsecureday.ogg index 340f6bdac1..43e90eadd3 100644 Binary files a/sounds/voice/bsecureday.ogg and b/sounds/voice/bsecureday.ogg differ diff --git a/sounds/voice/chime.ogg b/sounds/voice/chime.ogg index 86d7280cac..a76e72ecea 100644 Binary files a/sounds/voice/chime.ogg and b/sounds/voice/chime.ogg differ diff --git a/sounds/voice/cpvoice/ds (1).ogg b/sounds/voice/cpvoice/ds (1).ogg index b6be415495..4f5f363573 100644 Binary files a/sounds/voice/cpvoice/ds (1).ogg and b/sounds/voice/cpvoice/ds (1).ogg differ diff --git a/sounds/voice/cpvoice/ds (10).ogg b/sounds/voice/cpvoice/ds (10).ogg index dd0cc49176..d9bc2d6469 100644 Binary files a/sounds/voice/cpvoice/ds (10).ogg and b/sounds/voice/cpvoice/ds (10).ogg differ diff --git a/sounds/voice/cpvoice/ds (11).ogg b/sounds/voice/cpvoice/ds (11).ogg index e93d4c715e..2dda82c97c 100644 Binary files a/sounds/voice/cpvoice/ds (11).ogg and b/sounds/voice/cpvoice/ds (11).ogg differ diff --git a/sounds/voice/cpvoice/ds (12).ogg b/sounds/voice/cpvoice/ds (12).ogg index 8fc40d2546..c8b4003de0 100644 Binary files a/sounds/voice/cpvoice/ds (12).ogg and b/sounds/voice/cpvoice/ds (12).ogg differ diff --git a/sounds/voice/cpvoice/ds (13).ogg b/sounds/voice/cpvoice/ds (13).ogg index eba6e53583..7bf00781aa 100644 Binary files a/sounds/voice/cpvoice/ds (13).ogg and b/sounds/voice/cpvoice/ds (13).ogg differ diff --git a/sounds/voice/cpvoice/ds (14).ogg b/sounds/voice/cpvoice/ds (14).ogg index a0635c8c5d..0382d00406 100644 Binary files a/sounds/voice/cpvoice/ds (14).ogg and b/sounds/voice/cpvoice/ds (14).ogg differ diff --git a/sounds/voice/cpvoice/ds (15).ogg b/sounds/voice/cpvoice/ds (15).ogg index 5394fd001f..a3800011b3 100644 Binary files a/sounds/voice/cpvoice/ds (15).ogg and b/sounds/voice/cpvoice/ds (15).ogg differ diff --git a/sounds/voice/cpvoice/ds (16).ogg b/sounds/voice/cpvoice/ds (16).ogg index 449180dbff..5f3b0fb3c1 100644 Binary files a/sounds/voice/cpvoice/ds (16).ogg and b/sounds/voice/cpvoice/ds (16).ogg differ diff --git a/sounds/voice/cpvoice/ds (17).ogg b/sounds/voice/cpvoice/ds (17).ogg index 067c0398b6..9b81c2d420 100644 Binary files a/sounds/voice/cpvoice/ds (17).ogg and b/sounds/voice/cpvoice/ds (17).ogg differ diff --git a/sounds/voice/cpvoice/ds (18).ogg b/sounds/voice/cpvoice/ds (18).ogg index 6d2f06130a..32dd91c106 100644 Binary files a/sounds/voice/cpvoice/ds (18).ogg and b/sounds/voice/cpvoice/ds (18).ogg differ diff --git a/sounds/voice/cpvoice/ds (19).ogg b/sounds/voice/cpvoice/ds (19).ogg index a325d90d40..839699db98 100644 Binary files a/sounds/voice/cpvoice/ds (19).ogg and b/sounds/voice/cpvoice/ds (19).ogg differ diff --git a/sounds/voice/cpvoice/ds (2).ogg b/sounds/voice/cpvoice/ds (2).ogg index 6011f21131..5628a89f61 100644 Binary files a/sounds/voice/cpvoice/ds (2).ogg and b/sounds/voice/cpvoice/ds (2).ogg differ diff --git a/sounds/voice/cpvoice/ds (20).ogg b/sounds/voice/cpvoice/ds (20).ogg index 13af7928a3..f4c383229c 100644 Binary files a/sounds/voice/cpvoice/ds (20).ogg and b/sounds/voice/cpvoice/ds (20).ogg differ diff --git a/sounds/voice/cpvoice/ds (21).ogg b/sounds/voice/cpvoice/ds (21).ogg index 4c30002a5e..6a95b4ee6e 100644 Binary files a/sounds/voice/cpvoice/ds (21).ogg and b/sounds/voice/cpvoice/ds (21).ogg differ diff --git a/sounds/voice/cpvoice/ds (22).ogg b/sounds/voice/cpvoice/ds (22).ogg index 928eb40bbe..0f7b4b1cc3 100644 Binary files a/sounds/voice/cpvoice/ds (22).ogg and b/sounds/voice/cpvoice/ds (22).ogg differ diff --git a/sounds/voice/cpvoice/ds (23).ogg b/sounds/voice/cpvoice/ds (23).ogg index 9a7b1877bb..8077bef678 100644 Binary files a/sounds/voice/cpvoice/ds (23).ogg and b/sounds/voice/cpvoice/ds (23).ogg differ diff --git a/sounds/voice/cpvoice/ds (24).ogg b/sounds/voice/cpvoice/ds (24).ogg index 5066be0561..11ce658a91 100644 Binary files a/sounds/voice/cpvoice/ds (24).ogg and b/sounds/voice/cpvoice/ds (24).ogg differ diff --git a/sounds/voice/cpvoice/ds (25).ogg b/sounds/voice/cpvoice/ds (25).ogg index 1dbba72bbc..efac6c67ca 100644 Binary files a/sounds/voice/cpvoice/ds (25).ogg and b/sounds/voice/cpvoice/ds (25).ogg differ diff --git a/sounds/voice/cpvoice/ds (26).ogg b/sounds/voice/cpvoice/ds (26).ogg index 05f53f2a81..e3f8121f23 100644 Binary files a/sounds/voice/cpvoice/ds (26).ogg and b/sounds/voice/cpvoice/ds (26).ogg differ diff --git a/sounds/voice/cpvoice/ds (27).ogg b/sounds/voice/cpvoice/ds (27).ogg index 466a4fcaa5..e32e42bd02 100644 Binary files a/sounds/voice/cpvoice/ds (27).ogg and b/sounds/voice/cpvoice/ds (27).ogg differ diff --git a/sounds/voice/cpvoice/ds (3).ogg b/sounds/voice/cpvoice/ds (3).ogg index b52377588b..f8601072a7 100644 Binary files a/sounds/voice/cpvoice/ds (3).ogg and b/sounds/voice/cpvoice/ds (3).ogg differ diff --git a/sounds/voice/cpvoice/ds (4).ogg b/sounds/voice/cpvoice/ds (4).ogg index 944f29043b..20a266c3c5 100644 Binary files a/sounds/voice/cpvoice/ds (4).ogg and b/sounds/voice/cpvoice/ds (4).ogg differ diff --git a/sounds/voice/cpvoice/ds (5).ogg b/sounds/voice/cpvoice/ds (5).ogg index c63e95a21f..a27922fee3 100644 Binary files a/sounds/voice/cpvoice/ds (5).ogg and b/sounds/voice/cpvoice/ds (5).ogg differ diff --git a/sounds/voice/cpvoice/ds (6).ogg b/sounds/voice/cpvoice/ds (6).ogg index a9cc2b3dcf..8ccb0aa6f6 100644 Binary files a/sounds/voice/cpvoice/ds (6).ogg and b/sounds/voice/cpvoice/ds (6).ogg differ diff --git a/sounds/voice/cpvoice/ds (7).ogg b/sounds/voice/cpvoice/ds (7).ogg index 873f83b968..d1ae10940a 100644 Binary files a/sounds/voice/cpvoice/ds (7).ogg and b/sounds/voice/cpvoice/ds (7).ogg differ diff --git a/sounds/voice/cpvoice/ds (8).ogg b/sounds/voice/cpvoice/ds (8).ogg index bf27e7b21d..f7ed721e41 100644 Binary files a/sounds/voice/cpvoice/ds (8).ogg and b/sounds/voice/cpvoice/ds (8).ogg differ diff --git a/sounds/voice/cpvoice/ds (9).ogg b/sounds/voice/cpvoice/ds (9).ogg index ceb0f60a44..53e5d30dc1 100644 Binary files a/sounds/voice/cpvoice/ds (9).ogg and b/sounds/voice/cpvoice/ds (9).ogg differ diff --git a/sounds/voice/ding.ogg b/sounds/voice/ding.ogg index b8bd61b217..de384f4fa6 100644 Binary files a/sounds/voice/ding.ogg and b/sounds/voice/ding.ogg differ diff --git a/sounds/voice/ed209_20sec.ogg b/sounds/voice/ed209_20sec.ogg index d1ab901084..adc3c4e7b5 100644 Binary files a/sounds/voice/ed209_20sec.ogg and b/sounds/voice/ed209_20sec.ogg differ diff --git a/sounds/voice/emotes/female_cough1.ogg b/sounds/voice/emotes/female_cough1.ogg index 35cea5a5c9..80e11ecf53 100644 Binary files a/sounds/voice/emotes/female_cough1.ogg and b/sounds/voice/emotes/female_cough1.ogg differ diff --git a/sounds/voice/emotes/female_cough2.ogg b/sounds/voice/emotes/female_cough2.ogg index 1322ed0548..5569559e87 100644 Binary files a/sounds/voice/emotes/female_cough2.ogg and b/sounds/voice/emotes/female_cough2.ogg differ diff --git a/sounds/voice/emotes/female_cough3.ogg b/sounds/voice/emotes/female_cough3.ogg index 97c2d8104d..d4ad892029 100644 Binary files a/sounds/voice/emotes/female_cough3.ogg and b/sounds/voice/emotes/female_cough3.ogg differ diff --git a/sounds/voice/emotes/female_cough4.ogg b/sounds/voice/emotes/female_cough4.ogg index bb0b32888c..37b26e4bd3 100644 Binary files a/sounds/voice/emotes/female_cough4.ogg and b/sounds/voice/emotes/female_cough4.ogg differ diff --git a/sounds/voice/emotes/female_cough5.ogg b/sounds/voice/emotes/female_cough5.ogg index 4f95822a22..c0ce3375cb 100644 Binary files a/sounds/voice/emotes/female_cough5.ogg and b/sounds/voice/emotes/female_cough5.ogg differ diff --git a/sounds/voice/emotes/female_cough6.ogg b/sounds/voice/emotes/female_cough6.ogg index debd775ef7..eb8916f7ac 100644 Binary files a/sounds/voice/emotes/female_cough6.ogg and b/sounds/voice/emotes/female_cough6.ogg differ diff --git a/sounds/voice/emotes/female_cry1.ogg b/sounds/voice/emotes/female_cry1.ogg index 7e99ec63c0..871d459745 100644 Binary files a/sounds/voice/emotes/female_cry1.ogg and b/sounds/voice/emotes/female_cry1.ogg differ diff --git a/sounds/voice/emotes/female_cry2.ogg b/sounds/voice/emotes/female_cry2.ogg index 36348d1c73..9799075833 100644 Binary files a/sounds/voice/emotes/female_cry2.ogg and b/sounds/voice/emotes/female_cry2.ogg differ diff --git a/sounds/voice/emotes/female_giggle1.ogg b/sounds/voice/emotes/female_giggle1.ogg index 87961f5ccb..db53831c89 100644 Binary files a/sounds/voice/emotes/female_giggle1.ogg and b/sounds/voice/emotes/female_giggle1.ogg differ diff --git a/sounds/voice/emotes/female_giggle2.ogg b/sounds/voice/emotes/female_giggle2.ogg index bd1e99de76..26621476d5 100644 Binary files a/sounds/voice/emotes/female_giggle2.ogg and b/sounds/voice/emotes/female_giggle2.ogg differ diff --git a/sounds/voice/emotes/female_laugh1.ogg b/sounds/voice/emotes/female_laugh1.ogg index 064d464505..c2797111d0 100644 Binary files a/sounds/voice/emotes/female_laugh1.ogg and b/sounds/voice/emotes/female_laugh1.ogg differ diff --git a/sounds/voice/emotes/female_laugh2.ogg b/sounds/voice/emotes/female_laugh2.ogg index de301f5c82..65c5ae784d 100644 Binary files a/sounds/voice/emotes/female_laugh2.ogg and b/sounds/voice/emotes/female_laugh2.ogg differ diff --git a/sounds/voice/emotes/female_laugh3.ogg b/sounds/voice/emotes/female_laugh3.ogg index ed80538fa0..ff4eb88387 100644 Binary files a/sounds/voice/emotes/female_laugh3.ogg and b/sounds/voice/emotes/female_laugh3.ogg differ diff --git a/sounds/voice/emotes/female_scream1.ogg b/sounds/voice/emotes/female_scream1.ogg index 2355aca1e0..9fe0a0209d 100644 Binary files a/sounds/voice/emotes/female_scream1.ogg and b/sounds/voice/emotes/female_scream1.ogg differ diff --git a/sounds/voice/emotes/female_scream2.ogg b/sounds/voice/emotes/female_scream2.ogg index 9bc33fe835..86867f2544 100644 Binary files a/sounds/voice/emotes/female_scream2.ogg and b/sounds/voice/emotes/female_scream2.ogg differ diff --git a/sounds/voice/emotes/female_whimper.ogg b/sounds/voice/emotes/female_whimper.ogg index ee987108ad..099964f763 100644 Binary files a/sounds/voice/emotes/female_whimper.ogg and b/sounds/voice/emotes/female_whimper.ogg differ diff --git a/sounds/voice/emotes/female_yawn1.ogg b/sounds/voice/emotes/female_yawn1.ogg index cd7db50906..a01782f0a5 100644 Binary files a/sounds/voice/emotes/female_yawn1.ogg and b/sounds/voice/emotes/female_yawn1.ogg differ diff --git a/sounds/voice/emotes/female_yawn2.ogg b/sounds/voice/emotes/female_yawn2.ogg index a7c8e80a77..aac451ec6a 100644 Binary files a/sounds/voice/emotes/female_yawn2.ogg and b/sounds/voice/emotes/female_yawn2.ogg differ diff --git a/sounds/voice/emotes/female_yawn3.ogg b/sounds/voice/emotes/female_yawn3.ogg index 12d42db244..7b3e04c638 100644 Binary files a/sounds/voice/emotes/female_yawn3.ogg and b/sounds/voice/emotes/female_yawn3.ogg differ diff --git a/sounds/voice/emotes/fingersnap.ogg b/sounds/voice/emotes/fingersnap.ogg index f704640351..cf45487488 100644 Binary files a/sounds/voice/emotes/fingersnap.ogg and b/sounds/voice/emotes/fingersnap.ogg differ diff --git a/sounds/voice/emotes/girl_laugh1.ogg b/sounds/voice/emotes/girl_laugh1.ogg index 30edc1cd87..c6837d54fe 100644 Binary files a/sounds/voice/emotes/girl_laugh1.ogg and b/sounds/voice/emotes/girl_laugh1.ogg differ diff --git a/sounds/voice/emotes/hem_female.ogg b/sounds/voice/emotes/hem_female.ogg index e72f1547a8..f7a8d53e05 100644 Binary files a/sounds/voice/emotes/hem_female.ogg and b/sounds/voice/emotes/hem_female.ogg differ diff --git a/sounds/voice/emotes/hem_male.ogg b/sounds/voice/emotes/hem_male.ogg index 1eea74f3e3..2d931c0349 100644 Binary files a/sounds/voice/emotes/hem_male.ogg and b/sounds/voice/emotes/hem_male.ogg differ diff --git a/sounds/voice/emotes/male_alert.ogg b/sounds/voice/emotes/male_alert.ogg index a0dd5e1a8f..34db947a06 100644 Binary files a/sounds/voice/emotes/male_alert.ogg and b/sounds/voice/emotes/male_alert.ogg differ diff --git a/sounds/voice/emotes/male_cough1.ogg b/sounds/voice/emotes/male_cough1.ogg index 142d90b214..eb28ec1eab 100644 Binary files a/sounds/voice/emotes/male_cough1.ogg and b/sounds/voice/emotes/male_cough1.ogg differ diff --git a/sounds/voice/emotes/male_cough2.ogg b/sounds/voice/emotes/male_cough2.ogg index 7dde1e86ad..c622c52ffa 100644 Binary files a/sounds/voice/emotes/male_cough2.ogg and b/sounds/voice/emotes/male_cough2.ogg differ diff --git a/sounds/voice/emotes/male_cough3.ogg b/sounds/voice/emotes/male_cough3.ogg index 35cc3e7aa5..a7a53d9947 100644 Binary files a/sounds/voice/emotes/male_cough3.ogg and b/sounds/voice/emotes/male_cough3.ogg differ diff --git a/sounds/voice/emotes/male_cough4.ogg b/sounds/voice/emotes/male_cough4.ogg index 1687844821..2ba844b40f 100644 Binary files a/sounds/voice/emotes/male_cough4.ogg and b/sounds/voice/emotes/male_cough4.ogg differ diff --git a/sounds/voice/emotes/male_cry1.ogg b/sounds/voice/emotes/male_cry1.ogg index f639884dfa..55e4cbf995 100644 Binary files a/sounds/voice/emotes/male_cry1.ogg and b/sounds/voice/emotes/male_cry1.ogg differ diff --git a/sounds/voice/emotes/male_cry2.ogg b/sounds/voice/emotes/male_cry2.ogg index 3c4ff4a60a..b2f033b4bc 100644 Binary files a/sounds/voice/emotes/male_cry2.ogg and b/sounds/voice/emotes/male_cry2.ogg differ diff --git a/sounds/voice/emotes/male_laugh1.ogg b/sounds/voice/emotes/male_laugh1.ogg index 7522a4b4d9..12d13cb637 100644 Binary files a/sounds/voice/emotes/male_laugh1.ogg and b/sounds/voice/emotes/male_laugh1.ogg differ diff --git a/sounds/voice/emotes/male_laugh2.ogg b/sounds/voice/emotes/male_laugh2.ogg index 89805016ef..9a0b248c08 100644 Binary files a/sounds/voice/emotes/male_laugh2.ogg and b/sounds/voice/emotes/male_laugh2.ogg differ diff --git a/sounds/voice/emotes/male_laugh3.ogg b/sounds/voice/emotes/male_laugh3.ogg index 8892c8868b..526012c03f 100644 Binary files a/sounds/voice/emotes/male_laugh3.ogg and b/sounds/voice/emotes/male_laugh3.ogg differ diff --git a/sounds/voice/emotes/male_scream1.ogg b/sounds/voice/emotes/male_scream1.ogg index ce36de6bf0..35929f3c18 100644 Binary files a/sounds/voice/emotes/male_scream1.ogg and b/sounds/voice/emotes/male_scream1.ogg differ diff --git a/sounds/voice/emotes/male_scream2.ogg b/sounds/voice/emotes/male_scream2.ogg index ce36de6bf0..635e02f0e3 100644 Binary files a/sounds/voice/emotes/male_scream2.ogg and b/sounds/voice/emotes/male_scream2.ogg differ diff --git a/sounds/voice/emotes/male_whimper.ogg b/sounds/voice/emotes/male_whimper.ogg index 816134a64d..9dcddc18ea 100644 Binary files a/sounds/voice/emotes/male_whimper.ogg and b/sounds/voice/emotes/male_whimper.ogg differ diff --git a/sounds/voice/emotes/male_yawn1.ogg b/sounds/voice/emotes/male_yawn1.ogg index b5b7373ee1..d923e8603d 100644 Binary files a/sounds/voice/emotes/male_yawn1.ogg and b/sounds/voice/emotes/male_yawn1.ogg differ diff --git a/sounds/voice/emotes/male_yawn2.ogg b/sounds/voice/emotes/male_yawn2.ogg index 5ba119ea79..4141504efd 100644 Binary files a/sounds/voice/emotes/male_yawn2.ogg and b/sounds/voice/emotes/male_yawn2.ogg differ diff --git a/sounds/voice/emotes/mumble_female.ogg b/sounds/voice/emotes/mumble_female.ogg index e231b9189e..fef13bb39a 100644 Binary files a/sounds/voice/emotes/mumble_female.ogg and b/sounds/voice/emotes/mumble_female.ogg differ diff --git a/sounds/voice/emotes/mumble_male.ogg b/sounds/voice/emotes/mumble_male.ogg index 0ae95967ac..19579c9ad0 100644 Binary files a/sounds/voice/emotes/mumble_male.ogg and b/sounds/voice/emotes/mumble_male.ogg differ diff --git a/sounds/voice/emotes/sigh_female.ogg b/sounds/voice/emotes/sigh_female.ogg index df60080bad..311fceae3a 100644 Binary files a/sounds/voice/emotes/sigh_female.ogg and b/sounds/voice/emotes/sigh_female.ogg differ diff --git a/sounds/voice/emotes/sigh_male.ogg b/sounds/voice/emotes/sigh_male.ogg index eb464d91a3..e54748164b 100644 Binary files a/sounds/voice/emotes/sigh_male.ogg and b/sounds/voice/emotes/sigh_male.ogg differ diff --git a/sounds/voice/emotes/sneezef1.ogg b/sounds/voice/emotes/sneezef1.ogg index 2794147957..f6ce41fc14 100644 Binary files a/sounds/voice/emotes/sneezef1.ogg and b/sounds/voice/emotes/sneezef1.ogg differ diff --git a/sounds/voice/emotes/sneezef2.ogg b/sounds/voice/emotes/sneezef2.ogg index 91c9d9d150..9589e53d0a 100644 Binary files a/sounds/voice/emotes/sneezef2.ogg and b/sounds/voice/emotes/sneezef2.ogg differ diff --git a/sounds/voice/emotes/sneezem1.ogg b/sounds/voice/emotes/sneezem1.ogg index b36b86eb45..1a84aed1a3 100644 Binary files a/sounds/voice/emotes/sneezem1.ogg and b/sounds/voice/emotes/sneezem1.ogg differ diff --git a/sounds/voice/emotes/sneezem2.ogg b/sounds/voice/emotes/sneezem2.ogg index d473e4ad1b..f26ac1f234 100644 Binary files a/sounds/voice/emotes/sneezem2.ogg and b/sounds/voice/emotes/sneezem2.ogg differ diff --git a/sounds/voice/emotes/sniff.ogg b/sounds/voice/emotes/sniff.ogg index bab9580ff4..0420554656 100644 Binary files a/sounds/voice/emotes/sniff.ogg and b/sounds/voice/emotes/sniff.ogg differ diff --git a/sounds/voice/emotes/throatclear_female.ogg b/sounds/voice/emotes/throatclear_female.ogg index dbf97fa6bb..dba365c78d 100644 Binary files a/sounds/voice/emotes/throatclear_female.ogg and b/sounds/voice/emotes/throatclear_female.ogg differ diff --git a/sounds/voice/emotes/throatclear_male.ogg b/sounds/voice/emotes/throatclear_male.ogg index 0493e9147e..d00d4d2cef 100644 Binary files a/sounds/voice/emotes/throatclear_male.ogg and b/sounds/voice/emotes/throatclear_male.ogg differ diff --git a/sounds/voice/halt.ogg b/sounds/voice/halt.ogg index 4885bc1948..8a8ed824d2 100644 Binary files a/sounds/voice/halt.ogg and b/sounds/voice/halt.ogg differ diff --git a/sounds/voice/hiss1.ogg b/sounds/voice/hiss1.ogg index f226d32c4a..1affd1529a 100644 Binary files a/sounds/voice/hiss1.ogg and b/sounds/voice/hiss1.ogg differ diff --git a/sounds/voice/hiss2.ogg b/sounds/voice/hiss2.ogg index f518943aec..2186d4f599 100644 Binary files a/sounds/voice/hiss2.ogg and b/sounds/voice/hiss2.ogg differ diff --git a/sounds/voice/hiss3.ogg b/sounds/voice/hiss3.ogg index 380f43194f..9d0cfe47e0 100644 Binary files a/sounds/voice/hiss3.ogg and b/sounds/voice/hiss3.ogg differ diff --git a/sounds/voice/hiss4.ogg b/sounds/voice/hiss4.ogg index 7a3365610d..9ea9223360 100644 Binary files a/sounds/voice/hiss4.ogg and b/sounds/voice/hiss4.ogg differ diff --git a/sounds/voice/hiss5.ogg b/sounds/voice/hiss5.ogg index 522ead8751..9f9bbea251 100644 Binary files a/sounds/voice/hiss5.ogg and b/sounds/voice/hiss5.ogg differ diff --git a/sounds/voice/hiss6.ogg b/sounds/voice/hiss6.ogg index af82cbd975..a4d7d02eea 100644 Binary files a/sounds/voice/hiss6.ogg and b/sounds/voice/hiss6.ogg differ diff --git a/sounds/voice/human/manlaugh1.ogg b/sounds/voice/human/manlaugh1.ogg index 957d7a6529..333e2e9309 100644 Binary files a/sounds/voice/human/manlaugh1.ogg and b/sounds/voice/human/manlaugh1.ogg differ diff --git a/sounds/voice/human/manlaugh2.ogg b/sounds/voice/human/manlaugh2.ogg index fe6c0c9b7b..ce790c6122 100644 Binary files a/sounds/voice/human/manlaugh2.ogg and b/sounds/voice/human/manlaugh2.ogg differ diff --git a/sounds/voice/human/womanlaugh.ogg b/sounds/voice/human/womanlaugh.ogg index 1313bd445f..707aa33d53 100644 Binary files a/sounds/voice/human/womanlaugh.ogg and b/sounds/voice/human/womanlaugh.ogg differ diff --git a/sounds/voice/human_female_grenadethrow_1.ogg b/sounds/voice/human_female_grenadethrow_1.ogg index a4898413fb..5cbc8a709b 100644 Binary files a/sounds/voice/human_female_grenadethrow_1.ogg and b/sounds/voice/human_female_grenadethrow_1.ogg differ diff --git a/sounds/voice/human_female_grenadethrow_2.ogg b/sounds/voice/human_female_grenadethrow_2.ogg index f9d73df9dd..e3c03e1e7d 100644 Binary files a/sounds/voice/human_female_grenadethrow_2.ogg and b/sounds/voice/human_female_grenadethrow_2.ogg differ diff --git a/sounds/voice/human_female_grenadethrow_3.ogg b/sounds/voice/human_female_grenadethrow_3.ogg index c83b31efee..657b610895 100644 Binary files a/sounds/voice/human_female_grenadethrow_3.ogg and b/sounds/voice/human_female_grenadethrow_3.ogg differ diff --git a/sounds/voice/human_female_medic.ogg b/sounds/voice/human_female_medic.ogg index 0c28c77ef6..8ee8916fb5 100644 Binary files a/sounds/voice/human_female_medic.ogg and b/sounds/voice/human_female_medic.ogg differ diff --git a/sounds/voice/human_female_pain_1.ogg b/sounds/voice/human_female_pain_1.ogg index f697996e56..9481564a3f 100644 Binary files a/sounds/voice/human_female_pain_1.ogg and b/sounds/voice/human_female_pain_1.ogg differ diff --git a/sounds/voice/human_female_pain_2.ogg b/sounds/voice/human_female_pain_2.ogg index aa2eaba352..f1be26f095 100644 Binary files a/sounds/voice/human_female_pain_2.ogg and b/sounds/voice/human_female_pain_2.ogg differ diff --git a/sounds/voice/human_female_pain_3.ogg b/sounds/voice/human_female_pain_3.ogg index c21d462ba5..2bdb49e478 100644 Binary files a/sounds/voice/human_female_pain_3.ogg and b/sounds/voice/human_female_pain_3.ogg differ diff --git a/sounds/voice/human_female_scream_1.ogg b/sounds/voice/human_female_scream_1.ogg index 4d53b5b59c..5b6dbef184 100644 Binary files a/sounds/voice/human_female_scream_1.ogg and b/sounds/voice/human_female_scream_1.ogg differ diff --git a/sounds/voice/human_female_scream_2.ogg b/sounds/voice/human_female_scream_2.ogg index 09f2eadedb..fad3a4f1b0 100644 Binary files a/sounds/voice/human_female_scream_2.ogg and b/sounds/voice/human_female_scream_2.ogg differ diff --git a/sounds/voice/human_female_scream_3.ogg b/sounds/voice/human_female_scream_3.ogg index e2547362fc..dcae398a57 100644 Binary files a/sounds/voice/human_female_scream_3.ogg and b/sounds/voice/human_female_scream_3.ogg differ diff --git a/sounds/voice/human_female_scream_4.ogg b/sounds/voice/human_female_scream_4.ogg index 71a8a34b6a..b4d21c3110 100644 Binary files a/sounds/voice/human_female_scream_4.ogg and b/sounds/voice/human_female_scream_4.ogg differ diff --git a/sounds/voice/human_female_scream_5.ogg b/sounds/voice/human_female_scream_5.ogg index 8c90464816..a0282b0b37 100644 Binary files a/sounds/voice/human_female_scream_5.ogg and b/sounds/voice/human_female_scream_5.ogg differ diff --git a/sounds/voice/human_male_grenadethrow_1.ogg b/sounds/voice/human_male_grenadethrow_1.ogg index 508445d973..aa41f3a5eb 100644 Binary files a/sounds/voice/human_male_grenadethrow_1.ogg and b/sounds/voice/human_male_grenadethrow_1.ogg differ diff --git a/sounds/voice/human_male_grenadethrow_2.ogg b/sounds/voice/human_male_grenadethrow_2.ogg index e121cacc4f..6c5aaa4141 100644 Binary files a/sounds/voice/human_male_grenadethrow_2.ogg and b/sounds/voice/human_male_grenadethrow_2.ogg differ diff --git a/sounds/voice/human_male_grenadethrow_3.ogg b/sounds/voice/human_male_grenadethrow_3.ogg index 8198876135..5787c2332b 100644 Binary files a/sounds/voice/human_male_grenadethrow_3.ogg and b/sounds/voice/human_male_grenadethrow_3.ogg differ diff --git a/sounds/voice/human_male_medic.ogg b/sounds/voice/human_male_medic.ogg index 59cea917db..b381a63ba4 100644 Binary files a/sounds/voice/human_male_medic.ogg and b/sounds/voice/human_male_medic.ogg differ diff --git a/sounds/voice/human_male_medic2.ogg b/sounds/voice/human_male_medic2.ogg index 65c2ee46c6..29509ec7de 100644 Binary files a/sounds/voice/human_male_medic2.ogg and b/sounds/voice/human_male_medic2.ogg differ diff --git a/sounds/voice/human_male_pain_1.ogg b/sounds/voice/human_male_pain_1.ogg index 0dbedfe7e8..56a1901594 100644 Binary files a/sounds/voice/human_male_pain_1.ogg and b/sounds/voice/human_male_pain_1.ogg differ diff --git a/sounds/voice/human_male_pain_2.ogg b/sounds/voice/human_male_pain_2.ogg index 6f4a314c5c..393315c19c 100644 Binary files a/sounds/voice/human_male_pain_2.ogg and b/sounds/voice/human_male_pain_2.ogg differ diff --git a/sounds/voice/human_male_pain_3.ogg b/sounds/voice/human_male_pain_3.ogg index 7b13505345..e276225b9a 100644 Binary files a/sounds/voice/human_male_pain_3.ogg and b/sounds/voice/human_male_pain_3.ogg differ diff --git a/sounds/voice/human_male_scream_1.ogg b/sounds/voice/human_male_scream_1.ogg index dc36553769..9605c318c3 100644 Binary files a/sounds/voice/human_male_scream_1.ogg and b/sounds/voice/human_male_scream_1.ogg differ diff --git a/sounds/voice/human_male_scream_2.ogg b/sounds/voice/human_male_scream_2.ogg index 4a07676f67..87284d75e7 100644 Binary files a/sounds/voice/human_male_scream_2.ogg and b/sounds/voice/human_male_scream_2.ogg differ diff --git a/sounds/voice/human_male_scream_3.ogg b/sounds/voice/human_male_scream_3.ogg index 27e047cfc0..b3909335e6 100644 Binary files a/sounds/voice/human_male_scream_3.ogg and b/sounds/voice/human_male_scream_3.ogg differ diff --git a/sounds/voice/human_male_scream_4.ogg b/sounds/voice/human_male_scream_4.ogg index 30c44d4890..7ee3f69097 100644 Binary files a/sounds/voice/human_male_scream_4.ogg and b/sounds/voice/human_male_scream_4.ogg differ diff --git a/sounds/voice/human_male_scream_5.ogg b/sounds/voice/human_male_scream_5.ogg index c2999afdb9..ad02310177 100644 Binary files a/sounds/voice/human_male_scream_5.ogg and b/sounds/voice/human_male_scream_5.ogg differ diff --git a/sounds/voice/liveagain.ogg b/sounds/voice/liveagain.ogg index 9d07629ae4..7805700777 100644 Binary files a/sounds/voice/liveagain.ogg and b/sounds/voice/liveagain.ogg differ diff --git a/sounds/voice/lizard.ogg b/sounds/voice/lizard.ogg index 7d5604d3fb..e0021714d1 100644 Binary files a/sounds/voice/lizard.ogg and b/sounds/voice/lizard.ogg differ diff --git a/sounds/voice/monkey.ogg b/sounds/voice/monkey.ogg index e11cbee8d6..6ded6a2500 100644 Binary files a/sounds/voice/monkey.ogg and b/sounds/voice/monkey.ogg differ diff --git a/sounds/voice/moth_scream.ogg b/sounds/voice/moth_scream.ogg index c94644fc17..dadbf9fd8e 100644 Binary files a/sounds/voice/moth_scream.ogg and b/sounds/voice/moth_scream.ogg differ diff --git a/sounds/voice/pred_anytime.ogg b/sounds/voice/pred_anytime.ogg index 885f6dde27..46c0dbcb8e 100644 Binary files a/sounds/voice/pred_anytime.ogg and b/sounds/voice/pred_anytime.ogg differ diff --git a/sounds/voice/pred_click1.ogg b/sounds/voice/pred_click1.ogg index f69579475f..b8e946f87d 100644 Binary files a/sounds/voice/pred_click1.ogg and b/sounds/voice/pred_click1.ogg differ diff --git a/sounds/voice/pred_click2.ogg b/sounds/voice/pred_click2.ogg index 09f2b85453..13898563cd 100644 Binary files a/sounds/voice/pred_click2.ogg and b/sounds/voice/pred_click2.ogg differ diff --git a/sounds/voice/pred_facehugged.ogg b/sounds/voice/pred_facehugged.ogg index bb4b1012f5..087a6c0e06 100644 Binary files a/sounds/voice/pred_facehugged.ogg and b/sounds/voice/pred_facehugged.ogg differ diff --git a/sounds/voice/pred_helpme.ogg b/sounds/voice/pred_helpme.ogg index 820ced5b5f..17c73d0ba7 100644 Binary files a/sounds/voice/pred_helpme.ogg and b/sounds/voice/pred_helpme.ogg differ diff --git a/sounds/voice/pred_itsatrap.ogg b/sounds/voice/pred_itsatrap.ogg index 26fa03a426..cf79f602cf 100644 Binary files a/sounds/voice/pred_itsatrap.ogg and b/sounds/voice/pred_itsatrap.ogg differ diff --git a/sounds/voice/pred_laugh1.ogg b/sounds/voice/pred_laugh1.ogg index d4ecac476f..9e8319f923 100644 Binary files a/sounds/voice/pred_laugh1.ogg and b/sounds/voice/pred_laugh1.ogg differ diff --git a/sounds/voice/pred_laugh2.ogg b/sounds/voice/pred_laugh2.ogg index a0d62469c4..b9f11abd1f 100644 Binary files a/sounds/voice/pred_laugh2.ogg and b/sounds/voice/pred_laugh2.ogg differ diff --git a/sounds/voice/pred_laugh3.ogg b/sounds/voice/pred_laugh3.ogg index fbc9fc04d0..1538266c19 100644 Binary files a/sounds/voice/pred_laugh3.ogg and b/sounds/voice/pred_laugh3.ogg differ diff --git a/sounds/voice/pred_overhere.ogg b/sounds/voice/pred_overhere.ogg index 4b882befa5..cf568ca8aa 100644 Binary files a/sounds/voice/pred_overhere.ogg and b/sounds/voice/pred_overhere.ogg differ diff --git a/sounds/voice/pred_roar1.ogg b/sounds/voice/pred_roar1.ogg index 06a58af597..1e124fcc6a 100644 Binary files a/sounds/voice/pred_roar1.ogg and b/sounds/voice/pred_roar1.ogg differ diff --git a/sounds/voice/pred_roar2.ogg b/sounds/voice/pred_roar2.ogg index 80e160b45b..ec7b5629ba 100644 Binary files a/sounds/voice/pred_roar2.ogg and b/sounds/voice/pred_roar2.ogg differ diff --git a/sounds/voice/pred_turnaround.ogg b/sounds/voice/pred_turnaround.ogg index e908c57f4a..286f5a0b42 100644 Binary files a/sounds/voice/pred_turnaround.ogg and b/sounds/voice/pred_turnaround.ogg differ diff --git a/sounds/voice/predalien_click.ogg b/sounds/voice/predalien_click.ogg index 60c6270bbb..0938ac9513 100644 Binary files a/sounds/voice/predalien_click.ogg and b/sounds/voice/predalien_click.ogg differ diff --git a/sounds/voice/predalien_death.ogg b/sounds/voice/predalien_death.ogg index 47174e1b8e..7d4ee7743c 100644 Binary files a/sounds/voice/predalien_death.ogg and b/sounds/voice/predalien_death.ogg differ diff --git a/sounds/voice/predalien_growl.ogg b/sounds/voice/predalien_growl.ogg index 0ec0ff9769..55f293f057 100644 Binary files a/sounds/voice/predalien_growl.ogg and b/sounds/voice/predalien_growl.ogg differ diff --git a/sounds/voice/predalien_hiss.ogg b/sounds/voice/predalien_hiss.ogg index 29bd007fd8..a528b1bdd2 100644 Binary files a/sounds/voice/predalien_hiss.ogg and b/sounds/voice/predalien_hiss.ogg differ diff --git a/sounds/voice/predalien_pounce.ogg b/sounds/voice/predalien_pounce.ogg index 2eb747cb0d..0df08d02f0 100644 Binary files a/sounds/voice/predalien_pounce.ogg and b/sounds/voice/predalien_pounce.ogg differ diff --git a/sounds/voice/predalien_roar.ogg b/sounds/voice/predalien_roar.ogg index 6f20074954..2712be139e 100644 Binary files a/sounds/voice/predalien_roar.ogg and b/sounds/voice/predalien_roar.ogg differ diff --git a/sounds/voice/scream_horror1.ogg b/sounds/voice/scream_horror1.ogg index 1f92d35249..da721435bf 100644 Binary files a/sounds/voice/scream_horror1.ogg and b/sounds/voice/scream_horror1.ogg differ diff --git a/sounds/voice/scream_horror2.ogg b/sounds/voice/scream_horror2.ogg index 4951be4e81..49204002cc 100644 Binary files a/sounds/voice/scream_horror2.ogg and b/sounds/voice/scream_horror2.ogg differ diff --git a/sounds/voice/sec_death.ogg b/sounds/voice/sec_death.ogg index 25f9b24c31..64b54c05b1 100644 Binary files a/sounds/voice/sec_death.ogg and b/sounds/voice/sec_death.ogg differ diff --git a/sounds/voice/sec_speak.ogg b/sounds/voice/sec_speak.ogg index ca1f9b377c..e69de29bb2 100644 Binary files a/sounds/voice/sec_speak.ogg and b/sounds/voice/sec_speak.ogg differ diff --git a/sounds/voice/shriek1.ogg b/sounds/voice/shriek1.ogg index bb13db1ca0..0e8d5f6cfd 100644 Binary files a/sounds/voice/shriek1.ogg and b/sounds/voice/shriek1.ogg differ diff --git a/sounds/voice/start_your_voting.ogg b/sounds/voice/start_your_voting.ogg index 4c5b3587d1..167e6c9fa3 100644 Binary files a/sounds/voice/start_your_voting.ogg and b/sounds/voice/start_your_voting.ogg differ diff --git a/sounds/voice/syndicate intro.ogg b/sounds/voice/syndicate intro.ogg index c99549d962..0d28c2e04d 100644 Binary files a/sounds/voice/syndicate intro.ogg and b/sounds/voice/syndicate intro.ogg differ diff --git a/sounds/voice/xenos_roaring.ogg b/sounds/voice/xenos_roaring.ogg index 98ceffd1d2..814225e423 100644 Binary files a/sounds/voice/xenos_roaring.ogg and b/sounds/voice/xenos_roaring.ogg differ diff --git a/sounds/weapons/Egloves.ogg b/sounds/weapons/Egloves.ogg index 5df3a1498f..7266380963 100644 Binary files a/sounds/weapons/Egloves.ogg and b/sounds/weapons/Egloves.ogg differ diff --git a/sounds/weapons/Genhit.ogg b/sounds/weapons/Genhit.ogg index 9a354b9a00..8fcfe17a16 100644 Binary files a/sounds/weapons/Genhit.ogg and b/sounds/weapons/Genhit.ogg differ diff --git a/sounds/weapons/Gunshot.ogg b/sounds/weapons/Gunshot.ogg index e35b6ababf..686dc78fe8 100644 Binary files a/sounds/weapons/Gunshot.ogg and b/sounds/weapons/Gunshot.ogg differ diff --git a/sounds/weapons/Laser.ogg b/sounds/weapons/Laser.ogg index 4e566c1cf5..6f857a6b81 100644 Binary files a/sounds/weapons/Laser.ogg and b/sounds/weapons/Laser.ogg differ diff --git a/sounds/weapons/Laser2.ogg b/sounds/weapons/Laser2.ogg index 24c17bbdbf..674798b225 100644 Binary files a/sounds/weapons/Laser2.ogg and b/sounds/weapons/Laser2.ogg differ diff --git a/sounds/weapons/TargetOff.ogg b/sounds/weapons/TargetOff.ogg index b8657aab27..0f3527c091 100644 Binary files a/sounds/weapons/TargetOff.ogg and b/sounds/weapons/TargetOff.ogg differ diff --git a/sounds/weapons/TargetOn.ogg b/sounds/weapons/TargetOn.ogg index 93a2f68f32..f71265003d 100644 Binary files a/sounds/weapons/TargetOn.ogg and b/sounds/weapons/TargetOn.ogg differ diff --git a/sounds/weapons/Taser.ogg b/sounds/weapons/Taser.ogg index f6bcb64821..2106201aef 100644 Binary files a/sounds/weapons/Taser.ogg and b/sounds/weapons/Taser.ogg differ diff --git a/sounds/weapons/alien_bite1.ogg b/sounds/weapons/alien_bite1.ogg index 3e90b90e3b..51c816ab86 100644 Binary files a/sounds/weapons/alien_bite1.ogg and b/sounds/weapons/alien_bite1.ogg differ diff --git a/sounds/weapons/alien_bite2.ogg b/sounds/weapons/alien_bite2.ogg index 0f0361a7c6..c0c5bc418e 100644 Binary files a/sounds/weapons/alien_bite2.ogg and b/sounds/weapons/alien_bite2.ogg differ diff --git a/sounds/weapons/alien_claw_block.ogg b/sounds/weapons/alien_claw_block.ogg index a7c16ef022..298c7f380e 100644 Binary files a/sounds/weapons/alien_claw_block.ogg and b/sounds/weapons/alien_claw_block.ogg differ diff --git a/sounds/weapons/alien_claw_flesh1.ogg b/sounds/weapons/alien_claw_flesh1.ogg index 7853503c8f..7fd30e4f86 100644 Binary files a/sounds/weapons/alien_claw_flesh1.ogg and b/sounds/weapons/alien_claw_flesh1.ogg differ diff --git a/sounds/weapons/alien_claw_flesh2.ogg b/sounds/weapons/alien_claw_flesh2.ogg index 2a1ba20dc4..79c4e7f7f7 100644 Binary files a/sounds/weapons/alien_claw_flesh2.ogg and b/sounds/weapons/alien_claw_flesh2.ogg differ diff --git a/sounds/weapons/alien_claw_flesh3.ogg b/sounds/weapons/alien_claw_flesh3.ogg index fe866ca747..8d99392392 100644 Binary files a/sounds/weapons/alien_claw_flesh3.ogg and b/sounds/weapons/alien_claw_flesh3.ogg differ diff --git a/sounds/weapons/alien_claw_metal1.ogg b/sounds/weapons/alien_claw_metal1.ogg index 0316d97376..d9e9d504ce 100644 Binary files a/sounds/weapons/alien_claw_metal1.ogg and b/sounds/weapons/alien_claw_metal1.ogg differ diff --git a/sounds/weapons/alien_claw_metal2.ogg b/sounds/weapons/alien_claw_metal2.ogg index 19d7027c65..4c70022f11 100644 Binary files a/sounds/weapons/alien_claw_metal2.ogg and b/sounds/weapons/alien_claw_metal2.ogg differ diff --git a/sounds/weapons/alien_claw_metal3.ogg b/sounds/weapons/alien_claw_metal3.ogg index 47990ed0eb..8222f530e5 100644 Binary files a/sounds/weapons/alien_claw_metal3.ogg and b/sounds/weapons/alien_claw_metal3.ogg differ diff --git a/sounds/weapons/alien_claw_swipe.ogg b/sounds/weapons/alien_claw_swipe.ogg index d37977f66e..3aa40ec1b6 100644 Binary files a/sounds/weapons/alien_claw_swipe.ogg and b/sounds/weapons/alien_claw_swipe.ogg differ diff --git a/sounds/weapons/alien_knockdown.ogg b/sounds/weapons/alien_knockdown.ogg index 073f7e97f2..e9d3a86c56 100644 Binary files a/sounds/weapons/alien_knockdown.ogg and b/sounds/weapons/alien_knockdown.ogg differ diff --git a/sounds/weapons/alien_spit.ogg b/sounds/weapons/alien_spit.ogg index 243d1aa174..b5efa819e9 100644 Binary files a/sounds/weapons/alien_spit.ogg and b/sounds/weapons/alien_spit.ogg differ diff --git a/sounds/weapons/alien_tail_attack.ogg b/sounds/weapons/alien_tail_attack.ogg index 1c67cbb3f2..e8f42a43aa 100644 Binary files a/sounds/weapons/alien_tail_attack.ogg and b/sounds/weapons/alien_tail_attack.ogg differ diff --git a/sounds/weapons/armbomb.ogg b/sounds/weapons/armbomb.ogg index fccf4f668d..6d29661eb2 100644 Binary files a/sounds/weapons/armbomb.ogg and b/sounds/weapons/armbomb.ogg differ diff --git a/sounds/weapons/bite.ogg b/sounds/weapons/bite.ogg index 596d332960..f69e1a3050 100644 Binary files a/sounds/weapons/bite.ogg and b/sounds/weapons/bite.ogg differ diff --git a/sounds/weapons/blade1.ogg b/sounds/weapons/blade1.ogg index b590ffc9fd..4b1f2f9b1c 100644 Binary files a/sounds/weapons/blade1.ogg and b/sounds/weapons/blade1.ogg differ diff --git a/sounds/weapons/bladeslice.ogg b/sounds/weapons/bladeslice.ogg index 8f72857bd1..638771f411 100644 Binary files a/sounds/weapons/bladeslice.ogg and b/sounds/weapons/bladeslice.ogg differ diff --git a/sounds/weapons/blaster.ogg b/sounds/weapons/blaster.ogg index 9e72dcf76e..e12d725390 100644 Binary files a/sounds/weapons/blaster.ogg and b/sounds/weapons/blaster.ogg differ diff --git a/sounds/weapons/bombwhine.ogg b/sounds/weapons/bombwhine.ogg index 65816d53b9..1faf625f28 100644 Binary files a/sounds/weapons/bombwhine.ogg and b/sounds/weapons/bombwhine.ogg differ diff --git a/sounds/weapons/bulletcasing_bounce.ogg b/sounds/weapons/bulletcasing_bounce.ogg index c33a27fa50..c77411fa1c 100644 Binary files a/sounds/weapons/bulletcasing_bounce.ogg and b/sounds/weapons/bulletcasing_bounce.ogg differ diff --git a/sounds/weapons/bulletcasing_fall.ogg b/sounds/weapons/bulletcasing_fall.ogg index f8d516643b..f61b0a579e 100644 Binary files a/sounds/weapons/bulletcasing_fall.ogg and b/sounds/weapons/bulletcasing_fall.ogg differ diff --git a/sounds/weapons/bulletcasing_fall2.ogg b/sounds/weapons/bulletcasing_fall2.ogg index 84e6707062..fe48246286 100644 Binary files a/sounds/weapons/bulletcasing_fall2.ogg and b/sounds/weapons/bulletcasing_fall2.ogg differ diff --git a/sounds/weapons/bulletcasing_shotgun_fall.ogg b/sounds/weapons/bulletcasing_shotgun_fall.ogg index 324543b625..de07d56735 100644 Binary files a/sounds/weapons/bulletcasing_shotgun_fall.ogg and b/sounds/weapons/bulletcasing_shotgun_fall.ogg differ diff --git a/sounds/weapons/cablecuff.ogg b/sounds/weapons/cablecuff.ogg index f1d60184eb..6dc4702b12 100644 Binary files a/sounds/weapons/cablecuff.ogg and b/sounds/weapons/cablecuff.ogg differ diff --git a/sounds/weapons/chop1.ogg b/sounds/weapons/chop1.ogg index 534a2b7bd0..af01b37fdc 100644 Binary files a/sounds/weapons/chop1.ogg and b/sounds/weapons/chop1.ogg differ diff --git a/sounds/weapons/chop2.ogg b/sounds/weapons/chop2.ogg index e3a15d198a..bcbccb8fce 100644 Binary files a/sounds/weapons/chop2.ogg and b/sounds/weapons/chop2.ogg differ diff --git a/sounds/weapons/chop3.ogg b/sounds/weapons/chop3.ogg index f82fe1541f..c3340854e0 100644 Binary files a/sounds/weapons/chop3.ogg and b/sounds/weapons/chop3.ogg differ diff --git a/sounds/weapons/circsawhit.ogg b/sounds/weapons/circsawhit.ogg index 60098571dc..ef931e75a7 100644 Binary files a/sounds/weapons/circsawhit.ogg and b/sounds/weapons/circsawhit.ogg differ diff --git a/sounds/weapons/confuseray.ogg b/sounds/weapons/confuseray.ogg index b79bafddd4..61a5ef77d9 100644 Binary files a/sounds/weapons/confuseray.ogg and b/sounds/weapons/confuseray.ogg differ diff --git a/sounds/weapons/eLuger.ogg b/sounds/weapons/eLuger.ogg index e7e21511f3..f2afd6333a 100644 Binary files a/sounds/weapons/eLuger.ogg and b/sounds/weapons/eLuger.ogg differ diff --git a/sounds/weapons/emitter.ogg b/sounds/weapons/emitter.ogg index 4ea4d24555..aee573d350 100644 Binary files a/sounds/weapons/emitter.ogg and b/sounds/weapons/emitter.ogg differ diff --git a/sounds/weapons/emitter2.ogg b/sounds/weapons/emitter2.ogg index a3d8a28acd..dd5fe7f581 100644 Binary files a/sounds/weapons/emitter2.ogg and b/sounds/weapons/emitter2.ogg differ diff --git a/sounds/weapons/empty.ogg b/sounds/weapons/empty.ogg index 12ef9e5fce..6b4387f84e 100644 Binary files a/sounds/weapons/empty.ogg and b/sounds/weapons/empty.ogg differ diff --git a/sounds/weapons/flash.ogg b/sounds/weapons/flash.ogg index eed2ed0d52..d243128476 100644 Binary files a/sounds/weapons/flash.ogg and b/sounds/weapons/flash.ogg differ diff --git a/sounds/weapons/flash_ring.ogg b/sounds/weapons/flash_ring.ogg index 006141ac0b..5b6214ecad 100644 Binary files a/sounds/weapons/flash_ring.ogg and b/sounds/weapons/flash_ring.ogg differ diff --git a/sounds/weapons/flashbang.ogg b/sounds/weapons/flashbang.ogg index 68829e2f85..730324e751 100644 Binary files a/sounds/weapons/flashbang.ogg and b/sounds/weapons/flashbang.ogg differ diff --git a/sounds/weapons/flipblade.ogg b/sounds/weapons/flipblade.ogg index ca09831fff..9ab62c5b09 100644 Binary files a/sounds/weapons/flipblade.ogg and b/sounds/weapons/flipblade.ogg differ diff --git a/sounds/weapons/foamblaster.ogg b/sounds/weapons/foamblaster.ogg index 430baf6bf0..ff63d081fa 100644 Binary files a/sounds/weapons/foamblaster.ogg and b/sounds/weapons/foamblaster.ogg differ diff --git a/sounds/weapons/genhit1.ogg b/sounds/weapons/genhit1.ogg index dfb47c88a9..bed30b63fc 100644 Binary files a/sounds/weapons/genhit1.ogg and b/sounds/weapons/genhit1.ogg differ diff --git a/sounds/weapons/genhit2.ogg b/sounds/weapons/genhit2.ogg index e57752aaa6..c2e5ee609c 100644 Binary files a/sounds/weapons/genhit2.ogg and b/sounds/weapons/genhit2.ogg differ diff --git a/sounds/weapons/genhit3.ogg b/sounds/weapons/genhit3.ogg index 9a8b0b1796..5f82f32001 100644 Binary files a/sounds/weapons/genhit3.ogg and b/sounds/weapons/genhit3.ogg differ diff --git a/sounds/weapons/gun_44mag.ogg b/sounds/weapons/gun_44mag.ogg index c83eb63c4c..d33f2801ed 100644 Binary files a/sounds/weapons/gun_44mag.ogg and b/sounds/weapons/gun_44mag.ogg differ diff --git a/sounds/weapons/gun_44mag2.ogg b/sounds/weapons/gun_44mag2.ogg index e65f2b0a06..bca2ed44cf 100644 Binary files a/sounds/weapons/gun_44mag2.ogg and b/sounds/weapons/gun_44mag2.ogg differ diff --git a/sounds/weapons/gun_ak47.ogg b/sounds/weapons/gun_ak47.ogg index c0b6ae9249..b7add2950a 100644 Binary files a/sounds/weapons/gun_ak47.ogg and b/sounds/weapons/gun_ak47.ogg differ diff --git a/sounds/weapons/gun_c99.ogg b/sounds/weapons/gun_c99.ogg index 66af87b32c..eafe5a25c2 100644 Binary files a/sounds/weapons/gun_c99.ogg and b/sounds/weapons/gun_c99.ogg differ diff --git a/sounds/weapons/gun_chimp70.ogg b/sounds/weapons/gun_chimp70.ogg index d4d71bdb12..f97f103260 100644 Binary files a/sounds/weapons/gun_chimp70.ogg and b/sounds/weapons/gun_chimp70.ogg differ diff --git a/sounds/weapons/gun_cocked2.ogg b/sounds/weapons/gun_cocked2.ogg index 3d914184f0..f0a36e4232 100644 Binary files a/sounds/weapons/gun_cocked2.ogg and b/sounds/weapons/gun_cocked2.ogg differ diff --git a/sounds/weapons/gun_empty.ogg b/sounds/weapons/gun_empty.ogg index 086b9ed8c3..e3a702839e 100644 Binary files a/sounds/weapons/gun_empty.ogg and b/sounds/weapons/gun_empty.ogg differ diff --git a/sounds/weapons/gun_flamethrower1.ogg b/sounds/weapons/gun_flamethrower1.ogg index dea47f9a87..fb64551fff 100644 Binary files a/sounds/weapons/gun_flamethrower1.ogg and b/sounds/weapons/gun_flamethrower1.ogg differ diff --git a/sounds/weapons/gun_flamethrower2.ogg b/sounds/weapons/gun_flamethrower2.ogg index 5be59bdc70..2463459a08 100644 Binary files a/sounds/weapons/gun_flamethrower2.ogg and b/sounds/weapons/gun_flamethrower2.ogg differ diff --git a/sounds/weapons/gun_flamethrower3.ogg b/sounds/weapons/gun_flamethrower3.ogg index 8254d8533b..d822c536b9 100644 Binary files a/sounds/weapons/gun_flamethrower3.ogg and b/sounds/weapons/gun_flamethrower3.ogg differ diff --git a/sounds/weapons/gun_flamethrower_empty.ogg b/sounds/weapons/gun_flamethrower_empty.ogg index 735d635927..0d2f759be2 100644 Binary files a/sounds/weapons/gun_flamethrower_empty.ogg and b/sounds/weapons/gun_flamethrower_empty.ogg differ diff --git a/sounds/weapons/gun_flare.ogg b/sounds/weapons/gun_flare.ogg index cf3ed6d5e9..5238553e7f 100644 Binary files a/sounds/weapons/gun_flare.ogg and b/sounds/weapons/gun_flare.ogg differ diff --git a/sounds/weapons/gun_flare_explode.ogg b/sounds/weapons/gun_flare_explode.ogg index 3bb6fb00d5..152b0581be 100644 Binary files a/sounds/weapons/gun_flare_explode.ogg and b/sounds/weapons/gun_flare_explode.ogg differ diff --git a/sounds/weapons/gun_glock.ogg b/sounds/weapons/gun_glock.ogg index c769e801db..45ebc0c87c 100644 Binary files a/sounds/weapons/gun_glock.ogg and b/sounds/weapons/gun_glock.ogg differ diff --git a/sounds/weapons/gun_kt42.ogg b/sounds/weapons/gun_kt42.ogg index 4661d2d98f..60ec0066d6 100644 Binary files a/sounds/weapons/gun_kt42.ogg and b/sounds/weapons/gun_kt42.ogg differ diff --git a/sounds/weapons/gun_m39.ogg b/sounds/weapons/gun_m39.ogg index 54b9832915..0ff9a48423 100644 Binary files a/sounds/weapons/gun_m39.ogg and b/sounds/weapons/gun_m39.ogg differ diff --git a/sounds/weapons/gun_m41a_1.ogg b/sounds/weapons/gun_m41a_1.ogg index 5d567b7fca..7852c317ed 100644 Binary files a/sounds/weapons/gun_m41a_1.ogg and b/sounds/weapons/gun_m41a_1.ogg differ diff --git a/sounds/weapons/gun_m41a_2.ogg b/sounds/weapons/gun_m41a_2.ogg index 9891482865..a27c6fc8da 100644 Binary files a/sounds/weapons/gun_m41a_2.ogg and b/sounds/weapons/gun_m41a_2.ogg differ diff --git a/sounds/weapons/gun_m41a_3.ogg b/sounds/weapons/gun_m41a_3.ogg index 89eb9fcc98..b8c218500c 100644 Binary files a/sounds/weapons/gun_m41a_3.ogg and b/sounds/weapons/gun_m41a_3.ogg differ diff --git a/sounds/weapons/gun_m41a_4.ogg b/sounds/weapons/gun_m41a_4.ogg index 1973d433eb..07ca99fe10 100644 Binary files a/sounds/weapons/gun_m41a_4.ogg and b/sounds/weapons/gun_m41a_4.ogg differ diff --git a/sounds/weapons/gun_m41a_5.ogg b/sounds/weapons/gun_m41a_5.ogg index 7f41ffa167..32f9c4b6c8 100644 Binary files a/sounds/weapons/gun_m41a_5.ogg and b/sounds/weapons/gun_m41a_5.ogg differ diff --git a/sounds/weapons/gun_m41a_6.ogg b/sounds/weapons/gun_m41a_6.ogg index cce7682e3d..0fc2c91b94 100644 Binary files a/sounds/weapons/gun_m41a_6.ogg and b/sounds/weapons/gun_m41a_6.ogg differ diff --git a/sounds/weapons/gun_m4ra.ogg b/sounds/weapons/gun_m4ra.ogg index 5ce24298eb..cdf3d74032 100644 Binary files a/sounds/weapons/gun_m4ra.ogg and b/sounds/weapons/gun_m4ra.ogg differ diff --git a/sounds/weapons/gun_m92_attachable.ogg b/sounds/weapons/gun_m92_attachable.ogg index dc26088980..16e08bbd88 100644 Binary files a/sounds/weapons/gun_m92_attachable.ogg and b/sounds/weapons/gun_m92_attachable.ogg differ diff --git a/sounds/weapons/gun_m92_cocked.ogg b/sounds/weapons/gun_m92_cocked.ogg index f222c86081..1ce4905dfa 100644 Binary files a/sounds/weapons/gun_m92_cocked.ogg and b/sounds/weapons/gun_m92_cocked.ogg differ diff --git a/sounds/weapons/gun_mar40.ogg b/sounds/weapons/gun_mar40.ogg index e54e1d7ae0..307e5620aa 100644 Binary files a/sounds/weapons/gun_mar40.ogg and b/sounds/weapons/gun_mar40.ogg differ diff --git a/sounds/weapons/gun_mateba.ogg b/sounds/weapons/gun_mateba.ogg index b0679d703d..42f99841bd 100644 Binary files a/sounds/weapons/gun_mateba.ogg and b/sounds/weapons/gun_mateba.ogg differ diff --git a/sounds/weapons/gun_minigun.ogg b/sounds/weapons/gun_minigun.ogg index 208462ca42..5f3aed80ca 100644 Binary files a/sounds/weapons/gun_minigun.ogg and b/sounds/weapons/gun_minigun.ogg differ diff --git a/sounds/weapons/gun_minigun_cocked.ogg b/sounds/weapons/gun_minigun_cocked.ogg index 4a51b5a0d4..f188d291eb 100644 Binary files a/sounds/weapons/gun_minigun_cocked.ogg and b/sounds/weapons/gun_minigun_cocked.ogg differ diff --git a/sounds/weapons/gun_mortar_fire.ogg b/sounds/weapons/gun_mortar_fire.ogg index 5977caa3fc..42dfc56281 100644 Binary files a/sounds/weapons/gun_mortar_fire.ogg and b/sounds/weapons/gun_mortar_fire.ogg differ diff --git a/sounds/weapons/gun_mortar_reload.ogg b/sounds/weapons/gun_mortar_reload.ogg index a3a5ee4754..a889f85879 100644 Binary files a/sounds/weapons/gun_mortar_reload.ogg and b/sounds/weapons/gun_mortar_reload.ogg differ diff --git a/sounds/weapons/gun_mortar_travel.ogg b/sounds/weapons/gun_mortar_travel.ogg index 965e6ddbfa..697c489e01 100644 Binary files a/sounds/weapons/gun_mortar_travel.ogg and b/sounds/weapons/gun_mortar_travel.ogg differ diff --git a/sounds/weapons/gun_mortar_unpack.ogg b/sounds/weapons/gun_mortar_unpack.ogg index 32058c8e0a..a13af8ab52 100644 Binary files a/sounds/weapons/gun_mortar_unpack.ogg and b/sounds/weapons/gun_mortar_unpack.ogg differ diff --git a/sounds/weapons/gun_p90.ogg b/sounds/weapons/gun_p90.ogg index e4bfcfb703..909f2e1719 100644 Binary files a/sounds/weapons/gun_p90.ogg and b/sounds/weapons/gun_p90.ogg differ diff --git a/sounds/weapons/gun_pistol_cocked.ogg b/sounds/weapons/gun_pistol_cocked.ogg index a9ab76f142..434dd1f1d1 100644 Binary files a/sounds/weapons/gun_pistol_cocked.ogg and b/sounds/weapons/gun_pistol_cocked.ogg differ diff --git a/sounds/weapons/gun_pistol_draw.ogg b/sounds/weapons/gun_pistol_draw.ogg index 389682fc2b..c85e1d29cc 100644 Binary files a/sounds/weapons/gun_pistol_draw.ogg and b/sounds/weapons/gun_pistol_draw.ogg differ diff --git a/sounds/weapons/gun_pistol_holdout.ogg b/sounds/weapons/gun_pistol_holdout.ogg index 141a068b08..62174746b7 100644 Binary files a/sounds/weapons/gun_pistol_holdout.ogg and b/sounds/weapons/gun_pistol_holdout.ogg differ diff --git a/sounds/weapons/gun_pistol_large.ogg b/sounds/weapons/gun_pistol_large.ogg index 8ba468e4ca..6dc9b977cc 100644 Binary files a/sounds/weapons/gun_pistol_large.ogg and b/sounds/weapons/gun_pistol_large.ogg differ diff --git a/sounds/weapons/gun_pistol_medium.ogg b/sounds/weapons/gun_pistol_medium.ogg index 0d00ba4308..4b21e4ce98 100644 Binary files a/sounds/weapons/gun_pistol_medium.ogg and b/sounds/weapons/gun_pistol_medium.ogg differ diff --git a/sounds/weapons/gun_pistol_sheathe.ogg b/sounds/weapons/gun_pistol_sheathe.ogg index 0723b7c654..141d9d938a 100644 Binary files a/sounds/weapons/gun_pistol_sheathe.ogg and b/sounds/weapons/gun_pistol_sheathe.ogg differ diff --git a/sounds/weapons/gun_reload.ogg b/sounds/weapons/gun_reload.ogg index a2b098cdad..13bff5cbfa 100644 Binary files a/sounds/weapons/gun_reload.ogg and b/sounds/weapons/gun_reload.ogg differ diff --git a/sounds/weapons/gun_revolver_cocked.ogg b/sounds/weapons/gun_revolver_cocked.ogg index a5f24251e2..a411479f8a 100644 Binary files a/sounds/weapons/gun_revolver_cocked.ogg and b/sounds/weapons/gun_revolver_cocked.ogg differ diff --git a/sounds/weapons/gun_revolver_load3.ogg b/sounds/weapons/gun_revolver_load3.ogg index a312ff30b7..498165abb7 100644 Binary files a/sounds/weapons/gun_revolver_load3.ogg and b/sounds/weapons/gun_revolver_load3.ogg differ diff --git a/sounds/weapons/gun_revolver_spun.ogg b/sounds/weapons/gun_revolver_spun.ogg index 13b8ba3410..8e0b337a8a 100644 Binary files a/sounds/weapons/gun_revolver_spun.ogg and b/sounds/weapons/gun_revolver_spun.ogg differ diff --git a/sounds/weapons/gun_revolver_unload.ogg b/sounds/weapons/gun_revolver_unload.ogg index c9e3c2c06d..802961de48 100644 Binary files a/sounds/weapons/gun_revolver_unload.ogg and b/sounds/weapons/gun_revolver_unload.ogg differ diff --git a/sounds/weapons/gun_rifle.ogg b/sounds/weapons/gun_rifle.ogg index ed9d740b5e..fc1634e345 100644 Binary files a/sounds/weapons/gun_rifle.ogg and b/sounds/weapons/gun_rifle.ogg differ diff --git a/sounds/weapons/gun_rifle_draw.ogg b/sounds/weapons/gun_rifle_draw.ogg index 58d0d571e8..00aa70bf85 100644 Binary files a/sounds/weapons/gun_rifle_draw.ogg and b/sounds/weapons/gun_rifle_draw.ogg differ diff --git a/sounds/weapons/gun_rifle_reload.ogg b/sounds/weapons/gun_rifle_reload.ogg index 4d964e8e13..40e72a5414 100644 Binary files a/sounds/weapons/gun_rifle_reload.ogg and b/sounds/weapons/gun_rifle_reload.ogg differ diff --git a/sounds/weapons/gun_servicepistol.ogg b/sounds/weapons/gun_servicepistol.ogg index cbd58aefaa..67f8038167 100644 Binary files a/sounds/weapons/gun_servicepistol.ogg and b/sounds/weapons/gun_servicepistol.ogg differ diff --git a/sounds/weapons/gun_shotgun.ogg b/sounds/weapons/gun_shotgun.ogg index 2d1ecd9e46..7ddcb1f1fe 100644 Binary files a/sounds/weapons/gun_shotgun.ogg and b/sounds/weapons/gun_shotgun.ogg differ diff --git a/sounds/weapons/gun_shotgun_automatic.ogg b/sounds/weapons/gun_shotgun_automatic.ogg index 2deeecb67d..5c19c77c83 100644 Binary files a/sounds/weapons/gun_shotgun_automatic.ogg and b/sounds/weapons/gun_shotgun_automatic.ogg differ diff --git a/sounds/weapons/gun_shotgun_heavy.ogg b/sounds/weapons/gun_shotgun_heavy.ogg index 34e3f3ea6f..5fa38aee14 100644 Binary files a/sounds/weapons/gun_shotgun_heavy.ogg and b/sounds/weapons/gun_shotgun_heavy.ogg differ diff --git a/sounds/weapons/gun_shotgun_open2.ogg b/sounds/weapons/gun_shotgun_open2.ogg index 9bcb5d2d24..7444ce35ab 100644 Binary files a/sounds/weapons/gun_shotgun_open2.ogg and b/sounds/weapons/gun_shotgun_open2.ogg differ diff --git a/sounds/weapons/gun_shotgun_pump.ogg b/sounds/weapons/gun_shotgun_pump.ogg index 203f9bba1f..13c63f092c 100644 Binary files a/sounds/weapons/gun_shotgun_pump.ogg and b/sounds/weapons/gun_shotgun_pump.ogg differ diff --git a/sounds/weapons/gun_shotgun_reload.ogg b/sounds/weapons/gun_shotgun_reload.ogg index 2d3484fa2c..8b94c5ab4a 100644 Binary files a/sounds/weapons/gun_shotgun_reload.ogg and b/sounds/weapons/gun_shotgun_reload.ogg differ diff --git a/sounds/weapons/gun_shotgun_shell_insert.ogg b/sounds/weapons/gun_shotgun_shell_insert.ogg index 4c76d42228..3570e719b9 100644 Binary files a/sounds/weapons/gun_shotgun_shell_insert.ogg and b/sounds/weapons/gun_shotgun_shell_insert.ogg differ diff --git a/sounds/weapons/gun_shotgun_small.ogg b/sounds/weapons/gun_shotgun_small.ogg index 7e6765bf0a..ae77690adc 100644 Binary files a/sounds/weapons/gun_shotgun_small.ogg and b/sounds/weapons/gun_shotgun_small.ogg differ diff --git a/sounds/weapons/gun_silenced_shot1.ogg b/sounds/weapons/gun_silenced_shot1.ogg index 8064de78cd..2f70217a4e 100644 Binary files a/sounds/weapons/gun_silenced_shot1.ogg and b/sounds/weapons/gun_silenced_shot1.ogg differ diff --git a/sounds/weapons/gun_silenced_shot2.ogg b/sounds/weapons/gun_silenced_shot2.ogg index e54c93d99f..5a790d372b 100644 Binary files a/sounds/weapons/gun_silenced_shot2.ogg and b/sounds/weapons/gun_silenced_shot2.ogg differ diff --git a/sounds/weapons/gun_skorpion.ogg b/sounds/weapons/gun_skorpion.ogg index f84368aaad..837e4b4b40 100644 Binary files a/sounds/weapons/gun_skorpion.ogg and b/sounds/weapons/gun_skorpion.ogg differ diff --git a/sounds/weapons/gun_smartgun1.ogg b/sounds/weapons/gun_smartgun1.ogg index 1232b0901f..b87ed8a904 100644 Binary files a/sounds/weapons/gun_smartgun1.ogg and b/sounds/weapons/gun_smartgun1.ogg differ diff --git a/sounds/weapons/gun_smartgun2.ogg b/sounds/weapons/gun_smartgun2.ogg index 78bd9af8ce..cf6b6f9a97 100644 Binary files a/sounds/weapons/gun_smartgun2.ogg and b/sounds/weapons/gun_smartgun2.ogg differ diff --git a/sounds/weapons/gun_smartgun3.ogg b/sounds/weapons/gun_smartgun3.ogg index 43a984371a..909fe94732 100644 Binary files a/sounds/weapons/gun_smartgun3.ogg and b/sounds/weapons/gun_smartgun3.ogg differ diff --git a/sounds/weapons/gun_smg.ogg b/sounds/weapons/gun_smg.ogg index b98e8c3961..4ed2731bf4 100644 Binary files a/sounds/weapons/gun_smg.ogg and b/sounds/weapons/gun_smg.ogg differ diff --git a/sounds/weapons/gun_sniper.ogg b/sounds/weapons/gun_sniper.ogg index 631319e939..e2a2eda1bf 100644 Binary files a/sounds/weapons/gun_sniper.ogg and b/sounds/weapons/gun_sniper.ogg differ diff --git a/sounds/weapons/gun_thump.ogg b/sounds/weapons/gun_thump.ogg index dec68ad00e..8c4917a7c8 100644 Binary files a/sounds/weapons/gun_thump.ogg and b/sounds/weapons/gun_thump.ogg differ diff --git a/sounds/weapons/gun_type71.ogg b/sounds/weapons/gun_type71.ogg index 48e3f5cfe6..4fb4116d9d 100644 Binary files a/sounds/weapons/gun_type71.ogg and b/sounds/weapons/gun_type71.ogg differ diff --git a/sounds/weapons/guns/casingfall1.ogg b/sounds/weapons/guns/casingfall1.ogg index 72a04c0fca..8488a20608 100644 Binary files a/sounds/weapons/guns/casingfall1.ogg and b/sounds/weapons/guns/casingfall1.ogg differ diff --git a/sounds/weapons/guns/casingfall2.ogg b/sounds/weapons/guns/casingfall2.ogg index 2317ff5d75..284a52ea09 100644 Binary files a/sounds/weapons/guns/casingfall2.ogg and b/sounds/weapons/guns/casingfall2.ogg differ diff --git a/sounds/weapons/guns/casingfall3.ogg b/sounds/weapons/guns/casingfall3.ogg index 39639055c2..8b3c7acd72 100644 Binary files a/sounds/weapons/guns/casingfall3.ogg and b/sounds/weapons/guns/casingfall3.ogg differ diff --git a/sounds/weapons/guns/flamethrower/flamethrower1.ogg b/sounds/weapons/guns/flamethrower/flamethrower1.ogg index 447245d50b..a64f70c0b0 100644 Binary files a/sounds/weapons/guns/flamethrower/flamethrower1.ogg and b/sounds/weapons/guns/flamethrower/flamethrower1.ogg differ diff --git a/sounds/weapons/guns/flamethrower/flamethrower2.ogg b/sounds/weapons/guns/flamethrower/flamethrower2.ogg index 66cef56e15..2a4b793820 100644 Binary files a/sounds/weapons/guns/flamethrower/flamethrower2.ogg and b/sounds/weapons/guns/flamethrower/flamethrower2.ogg differ diff --git a/sounds/weapons/guns/flamethrower/flamethrower3.ogg b/sounds/weapons/guns/flamethrower/flamethrower3.ogg index 0c0d75d93e..b5eb99e590 100644 Binary files a/sounds/weapons/guns/flamethrower/flamethrower3.ogg and b/sounds/weapons/guns/flamethrower/flamethrower3.ogg differ diff --git a/sounds/weapons/guns/flamethrower/flamethrower_empty.ogg b/sounds/weapons/guns/flamethrower/flamethrower_empty.ogg index 0b1f0c520b..46104fc25b 100644 Binary files a/sounds/weapons/guns/flamethrower/flamethrower_empty.ogg and b/sounds/weapons/guns/flamethrower/flamethrower_empty.ogg differ diff --git a/sounds/weapons/guns/interaction/batrifle_magin.ogg b/sounds/weapons/guns/interaction/batrifle_magin.ogg index 6e557b892a..7e7196a635 100644 Binary files a/sounds/weapons/guns/interaction/batrifle_magin.ogg and b/sounds/weapons/guns/interaction/batrifle_magin.ogg differ diff --git a/sounds/weapons/guns/interaction/batrifle_magout.ogg b/sounds/weapons/guns/interaction/batrifle_magout.ogg index 591599f523..0024d87d00 100644 Binary files a/sounds/weapons/guns/interaction/batrifle_magout.ogg and b/sounds/weapons/guns/interaction/batrifle_magout.ogg differ diff --git a/sounds/weapons/guns/interaction/bullet_insert.ogg b/sounds/weapons/guns/interaction/bullet_insert.ogg index d68b0a61a0..788d9c7807 100644 Binary files a/sounds/weapons/guns/interaction/bullet_insert.ogg and b/sounds/weapons/guns/interaction/bullet_insert.ogg differ diff --git a/sounds/weapons/guns/interaction/garand_magout.ogg b/sounds/weapons/guns/interaction/garand_magout.ogg index 603debbd89..d6894617bd 100644 Binary files a/sounds/weapons/guns/interaction/garand_magout.ogg and b/sounds/weapons/guns/interaction/garand_magout.ogg differ diff --git a/sounds/weapons/guns/interaction/hpistol_magin.ogg b/sounds/weapons/guns/interaction/hpistol_magin.ogg index c74160fdb5..1c79797dd6 100644 Binary files a/sounds/weapons/guns/interaction/hpistol_magin.ogg and b/sounds/weapons/guns/interaction/hpistol_magin.ogg differ diff --git a/sounds/weapons/guns/interaction/hpistol_magout.ogg b/sounds/weapons/guns/interaction/hpistol_magout.ogg index ddad68ed7d..54f2239eb3 100644 Binary files a/sounds/weapons/guns/interaction/hpistol_magout.ogg and b/sounds/weapons/guns/interaction/hpistol_magout.ogg differ diff --git a/sounds/weapons/guns/interaction/launcher_reload.ogg b/sounds/weapons/guns/interaction/launcher_reload.ogg index f7d07c1560..76c37ff854 100644 Binary files a/sounds/weapons/guns/interaction/launcher_reload.ogg and b/sounds/weapons/guns/interaction/launcher_reload.ogg differ diff --git a/sounds/weapons/guns/interaction/lmg_magin.ogg b/sounds/weapons/guns/interaction/lmg_magin.ogg index 12a11584d5..9379d4e890 100644 Binary files a/sounds/weapons/guns/interaction/lmg_magin.ogg and b/sounds/weapons/guns/interaction/lmg_magin.ogg differ diff --git a/sounds/weapons/guns/interaction/lmg_magout.ogg b/sounds/weapons/guns/interaction/lmg_magout.ogg index d5a70b20b2..f250d70f4a 100644 Binary files a/sounds/weapons/guns/interaction/lmg_magout.ogg and b/sounds/weapons/guns/interaction/lmg_magout.ogg differ diff --git a/sounds/weapons/guns/interaction/ltrifle_magin.ogg b/sounds/weapons/guns/interaction/ltrifle_magin.ogg index 2afb05fb81..2a85153a3b 100644 Binary files a/sounds/weapons/guns/interaction/ltrifle_magin.ogg and b/sounds/weapons/guns/interaction/ltrifle_magin.ogg differ diff --git a/sounds/weapons/guns/interaction/ltrifle_magout.ogg b/sounds/weapons/guns/interaction/ltrifle_magout.ogg index 3ddf2c83bf..b790a6af53 100644 Binary files a/sounds/weapons/guns/interaction/ltrifle_magout.ogg and b/sounds/weapons/guns/interaction/ltrifle_magout.ogg differ diff --git a/sounds/weapons/guns/interaction/pistol_magin.ogg b/sounds/weapons/guns/interaction/pistol_magin.ogg index c442f8b162..6dd44a722a 100644 Binary files a/sounds/weapons/guns/interaction/pistol_magin.ogg and b/sounds/weapons/guns/interaction/pistol_magin.ogg differ diff --git a/sounds/weapons/guns/interaction/pistol_magout.ogg b/sounds/weapons/guns/interaction/pistol_magout.ogg index 334d1a12f2..d1d21a4816 100644 Binary files a/sounds/weapons/guns/interaction/pistol_magout.ogg and b/sounds/weapons/guns/interaction/pistol_magout.ogg differ diff --git a/sounds/weapons/guns/interaction/rev_magin.ogg b/sounds/weapons/guns/interaction/rev_magin.ogg index 838974489a..9634370be9 100644 Binary files a/sounds/weapons/guns/interaction/rev_magin.ogg and b/sounds/weapons/guns/interaction/rev_magin.ogg differ diff --git a/sounds/weapons/guns/interaction/rev_magout.ogg b/sounds/weapons/guns/interaction/rev_magout.ogg index 75412e787f..18880864b9 100644 Binary files a/sounds/weapons/guns/interaction/rev_magout.ogg and b/sounds/weapons/guns/interaction/rev_magout.ogg differ diff --git a/sounds/weapons/guns/interaction/rifle_boltback.ogg b/sounds/weapons/guns/interaction/rifle_boltback.ogg index d7b1f368db..2e41bedfa9 100644 Binary files a/sounds/weapons/guns/interaction/rifle_boltback.ogg and b/sounds/weapons/guns/interaction/rifle_boltback.ogg differ diff --git a/sounds/weapons/guns/interaction/rifle_boltforward.ogg b/sounds/weapons/guns/interaction/rifle_boltforward.ogg index 5bb57f7943..8756592098 100644 Binary files a/sounds/weapons/guns/interaction/rifle_boltforward.ogg and b/sounds/weapons/guns/interaction/rifle_boltforward.ogg differ diff --git a/sounds/weapons/guns/interaction/rifle_load.ogg b/sounds/weapons/guns/interaction/rifle_load.ogg index 8309e26b6d..da31cfcf06 100644 Binary files a/sounds/weapons/guns/interaction/rifle_load.ogg and b/sounds/weapons/guns/interaction/rifle_load.ogg differ diff --git a/sounds/weapons/guns/interaction/shotgun_instert.ogg b/sounds/weapons/guns/interaction/shotgun_instert.ogg index cd5c5e31aa..4ef801f680 100644 Binary files a/sounds/weapons/guns/interaction/shotgun_instert.ogg and b/sounds/weapons/guns/interaction/shotgun_instert.ogg differ diff --git a/sounds/weapons/guns/interaction/smg_magin.ogg b/sounds/weapons/guns/interaction/smg_magin.ogg index 2bdb3c99e7..29d720c098 100644 Binary files a/sounds/weapons/guns/interaction/smg_magin.ogg and b/sounds/weapons/guns/interaction/smg_magin.ogg differ diff --git a/sounds/weapons/guns/interaction/smg_magout.ogg b/sounds/weapons/guns/interaction/smg_magout.ogg index d85ff5a40c..820decc23f 100644 Binary files a/sounds/weapons/guns/interaction/smg_magout.ogg and b/sounds/weapons/guns/interaction/smg_magout.ogg differ diff --git a/sounds/weapons/guns/miss1.ogg b/sounds/weapons/guns/miss1.ogg index f1e159e230..b2fba8487a 100644 Binary files a/sounds/weapons/guns/miss1.ogg and b/sounds/weapons/guns/miss1.ogg differ diff --git a/sounds/weapons/guns/miss2.ogg b/sounds/weapons/guns/miss2.ogg index 2c4eb439a5..fa7afa82a9 100644 Binary files a/sounds/weapons/guns/miss2.ogg and b/sounds/weapons/guns/miss2.ogg differ diff --git a/sounds/weapons/guns/miss3.ogg b/sounds/weapons/guns/miss3.ogg index b6f8e47b1c..5a7720438e 100644 Binary files a/sounds/weapons/guns/miss3.ogg and b/sounds/weapons/guns/miss3.ogg differ diff --git a/sounds/weapons/guns/miss4.ogg b/sounds/weapons/guns/miss4.ogg index dabc0d2017..692d09bf46 100644 Binary files a/sounds/weapons/guns/miss4.ogg and b/sounds/weapons/guns/miss4.ogg differ diff --git a/sounds/weapons/guns/ricochet1.ogg b/sounds/weapons/guns/ricochet1.ogg index 6d4088889c..c1b875fee0 100644 Binary files a/sounds/weapons/guns/ricochet1.ogg and b/sounds/weapons/guns/ricochet1.ogg differ diff --git a/sounds/weapons/guns/ricochet2.ogg b/sounds/weapons/guns/ricochet2.ogg index 35a7b3e1ec..b40e265c49 100644 Binary files a/sounds/weapons/guns/ricochet2.ogg and b/sounds/weapons/guns/ricochet2.ogg differ diff --git a/sounds/weapons/guns/ricochet3.ogg b/sounds/weapons/guns/ricochet3.ogg index d06f231d9d..ac3ef490db 100644 Binary files a/sounds/weapons/guns/ricochet3.ogg and b/sounds/weapons/guns/ricochet3.ogg differ diff --git a/sounds/weapons/guns/ricochet4.ogg b/sounds/weapons/guns/ricochet4.ogg index b1d83d6459..cce301dceb 100644 Binary files a/sounds/weapons/guns/ricochet4.ogg and b/sounds/weapons/guns/ricochet4.ogg differ diff --git a/sounds/weapons/guns/selector.ogg b/sounds/weapons/guns/selector.ogg index 298181609e..b8a618b947 100644 Binary files a/sounds/weapons/guns/selector.ogg and b/sounds/weapons/guns/selector.ogg differ diff --git a/sounds/weapons/guns/shotgun_fall.ogg b/sounds/weapons/guns/shotgun_fall.ogg index 6a89109a12..6aba0e9378 100644 Binary files a/sounds/weapons/guns/shotgun_fall.ogg and b/sounds/weapons/guns/shotgun_fall.ogg differ diff --git a/sounds/weapons/gunshot/M412.ogg b/sounds/weapons/gunshot/M412.ogg index df39af28ad..f30eb78df4 100644 Binary files a/sounds/weapons/gunshot/M412.ogg and b/sounds/weapons/gunshot/M412.ogg differ diff --git a/sounds/weapons/gunshot/autorifle-1.ogg b/sounds/weapons/gunshot/autorifle-1.ogg index 180a4082ca..e6a67b9ca7 100644 Binary files a/sounds/weapons/gunshot/autorifle-1.ogg and b/sounds/weapons/gunshot/autorifle-1.ogg differ diff --git a/sounds/weapons/gunshot/autorifle-2.ogg b/sounds/weapons/gunshot/autorifle-2.ogg index 5ec76fe445..0e6d92f159 100644 Binary files a/sounds/weapons/gunshot/autorifle-2.ogg and b/sounds/weapons/gunshot/autorifle-2.ogg differ diff --git a/sounds/weapons/gunshot/autorifle-3.ogg b/sounds/weapons/gunshot/autorifle-3.ogg index 3ceaee8f8e..120cb1bbc4 100644 Binary files a/sounds/weapons/gunshot/autorifle-3.ogg and b/sounds/weapons/gunshot/autorifle-3.ogg differ diff --git a/sounds/weapons/gunshot/gunshot.ogg b/sounds/weapons/gunshot/gunshot.ogg index 2547b98af9..d05cf939c9 100644 Binary files a/sounds/weapons/gunshot/gunshot.ogg and b/sounds/weapons/gunshot/gunshot.ogg differ diff --git a/sounds/weapons/gunshot/gunshot2.ogg b/sounds/weapons/gunshot/gunshot2.ogg index 4b26d5e7e6..67e0ff673f 100644 Binary files a/sounds/weapons/gunshot/gunshot2.ogg and b/sounds/weapons/gunshot/gunshot2.ogg differ diff --git a/sounds/weapons/gunshot/gunshot3.ogg b/sounds/weapons/gunshot/gunshot3.ogg index 49c2b0c554..f3ae15bc50 100644 Binary files a/sounds/weapons/gunshot/gunshot3.ogg and b/sounds/weapons/gunshot/gunshot3.ogg differ diff --git a/sounds/weapons/gunshot/gunshot_4mm.ogg b/sounds/weapons/gunshot/gunshot_4mm.ogg index 2dfc6fc1e9..b78f8cd30a 100644 Binary files a/sounds/weapons/gunshot/gunshot_4mm.ogg and b/sounds/weapons/gunshot/gunshot_4mm.ogg differ diff --git a/sounds/weapons/gunshot/gunshot_9mm.ogg b/sounds/weapons/gunshot/gunshot_9mm.ogg index a808f86907..52106782eb 100644 Binary files a/sounds/weapons/gunshot/gunshot_9mm.ogg and b/sounds/weapons/gunshot/gunshot_9mm.ogg differ diff --git a/sounds/weapons/gunshot/gunshot_pistol.ogg b/sounds/weapons/gunshot/gunshot_pistol.ogg index c9d6322992..4388fac02a 100644 Binary files a/sounds/weapons/gunshot/gunshot_pistol.ogg and b/sounds/weapons/gunshot/gunshot_pistol.ogg differ diff --git a/sounds/weapons/gunshot/gunshot_smg.ogg b/sounds/weapons/gunshot/gunshot_smg.ogg index 5c0000bb32..406a3f28e6 100644 Binary files a/sounds/weapons/gunshot/gunshot_smg.ogg and b/sounds/weapons/gunshot/gunshot_smg.ogg differ diff --git a/sounds/weapons/gunshot/gunshot_strong.ogg b/sounds/weapons/gunshot/gunshot_strong.ogg index 6794bfa08e..3263bdd850 100644 Binary files a/sounds/weapons/gunshot/gunshot_strong.ogg and b/sounds/weapons/gunshot/gunshot_strong.ogg differ diff --git a/sounds/weapons/gunshot/launcher.ogg b/sounds/weapons/gunshot/launcher.ogg index f7bbddeccf..d3c4483716 100644 Binary files a/sounds/weapons/gunshot/launcher.ogg and b/sounds/weapons/gunshot/launcher.ogg differ diff --git a/sounds/weapons/gunshot/launcher_empty.ogg b/sounds/weapons/gunshot/launcher_empty.ogg index e3689f30fb..d45b8a336d 100644 Binary files a/sounds/weapons/gunshot/launcher_empty.ogg and b/sounds/weapons/gunshot/launcher_empty.ogg differ diff --git a/sounds/weapons/gunshot/m16.ogg b/sounds/weapons/gunshot/m16.ogg index d7f5b22067..86becd2fa7 100644 Binary files a/sounds/weapons/gunshot/m16.ogg and b/sounds/weapons/gunshot/m16.ogg differ diff --git a/sounds/weapons/gunshot/money_launcher.ogg b/sounds/weapons/gunshot/money_launcher.ogg index c5a6949485..cb633f099c 100644 Binary files a/sounds/weapons/gunshot/money_launcher.ogg and b/sounds/weapons/gunshot/money_launcher.ogg differ diff --git a/sounds/weapons/gunshot/money_launcher_jackpot.ogg b/sounds/weapons/gunshot/money_launcher_jackpot.ogg index 7b6579b958..54a30f69c7 100644 Binary files a/sounds/weapons/gunshot/money_launcher_jackpot.ogg and b/sounds/weapons/gunshot/money_launcher_jackpot.ogg differ diff --git a/sounds/weapons/gunshot/p90.ogg b/sounds/weapons/gunshot/p90.ogg index df57b8d608..065bfb111e 100644 Binary files a/sounds/weapons/gunshot/p90.ogg and b/sounds/weapons/gunshot/p90.ogg differ diff --git a/sounds/weapons/gunshot/revolver.ogg b/sounds/weapons/gunshot/revolver.ogg index 08b7c61c15..aa65ad9214 100644 Binary files a/sounds/weapons/gunshot/revolver.ogg and b/sounds/weapons/gunshot/revolver.ogg differ diff --git a/sounds/weapons/gunshot/revolver_heavy.ogg b/sounds/weapons/gunshot/revolver_heavy.ogg index 5c74ea8d86..223fc219f4 100644 Binary files a/sounds/weapons/gunshot/revolver_heavy.ogg and b/sounds/weapons/gunshot/revolver_heavy.ogg differ diff --git a/sounds/weapons/gunshot/revolver_light.ogg b/sounds/weapons/gunshot/revolver_light.ogg index 68b7fada6e..2ce6baa807 100644 Binary files a/sounds/weapons/gunshot/revolver_light.ogg and b/sounds/weapons/gunshot/revolver_light.ogg differ diff --git a/sounds/weapons/gunshot/shotgun.ogg b/sounds/weapons/gunshot/shotgun.ogg index e999bb9bb7..edf7a5bada 100644 Binary files a/sounds/weapons/gunshot/shotgun.ogg and b/sounds/weapons/gunshot/shotgun.ogg differ diff --git a/sounds/weapons/gunshot/smg.ogg b/sounds/weapons/gunshot/smg.ogg index cb3c1a49b5..53370cb974 100644 Binary files a/sounds/weapons/gunshot/smg.ogg and b/sounds/weapons/gunshot/smg.ogg differ diff --git a/sounds/weapons/gunshot/smg_alt.ogg b/sounds/weapons/gunshot/smg_alt.ogg index 3dabedba1a..75743dd2c3 100644 Binary files a/sounds/weapons/gunshot/smg_alt.ogg and b/sounds/weapons/gunshot/smg_alt.ogg differ diff --git a/sounds/weapons/gunshot/smg_strong.ogg b/sounds/weapons/gunshot/smg_strong.ogg index 5c0000bb32..55f6aecae5 100644 Binary files a/sounds/weapons/gunshot/smg_strong.ogg and b/sounds/weapons/gunshot/smg_strong.ogg differ diff --git a/sounds/weapons/gunshot/sniper.ogg b/sounds/weapons/gunshot/sniper.ogg index 4c23868da1..75a7660a96 100644 Binary files a/sounds/weapons/gunshot/sniper.ogg and b/sounds/weapons/gunshot/sniper.ogg differ diff --git a/sounds/weapons/handcuffs.ogg b/sounds/weapons/handcuffs.ogg index 05fbf4e0d5..0a57371450 100644 Binary files a/sounds/weapons/handcuffs.ogg and b/sounds/weapons/handcuffs.ogg differ diff --git a/sounds/weapons/heavysmash.ogg b/sounds/weapons/heavysmash.ogg index 609e20fd96..f02f9a5e73 100644 Binary files a/sounds/weapons/heavysmash.ogg and b/sounds/weapons/heavysmash.ogg differ diff --git a/sounds/weapons/laser3.ogg b/sounds/weapons/laser3.ogg index 134be315fc..92b3fb4f77 100644 Binary files a/sounds/weapons/laser3.ogg and b/sounds/weapons/laser3.ogg differ diff --git a/sounds/weapons/lasercannonfire.ogg b/sounds/weapons/lasercannonfire.ogg index 612d608db8..fd40919f2b 100644 Binary files a/sounds/weapons/lasercannonfire.ogg and b/sounds/weapons/lasercannonfire.ogg differ diff --git a/sounds/weapons/marauder.ogg b/sounds/weapons/marauder.ogg index 0829aeb299..3644ec0007 100644 Binary files a/sounds/weapons/marauder.ogg and b/sounds/weapons/marauder.ogg differ diff --git a/sounds/weapons/mine_armed.ogg b/sounds/weapons/mine_armed.ogg index 7ffd5ea4c4..059d7daf3f 100644 Binary files a/sounds/weapons/mine_armed.ogg and b/sounds/weapons/mine_armed.ogg differ diff --git a/sounds/weapons/mine_tripped.ogg b/sounds/weapons/mine_tripped.ogg index 1630ab5c97..378bc8e337 100644 Binary files a/sounds/weapons/mine_tripped.ogg and b/sounds/weapons/mine_tripped.ogg differ diff --git a/sounds/weapons/pierce.ogg b/sounds/weapons/pierce.ogg index bc7320dccb..0d7dfb3daa 100644 Binary files a/sounds/weapons/pierce.ogg and b/sounds/weapons/pierce.ogg differ diff --git a/sounds/weapons/plasma_cutter.ogg b/sounds/weapons/plasma_cutter.ogg index ba95317cc1..b3e51c495e 100644 Binary files a/sounds/weapons/plasma_cutter.ogg and b/sounds/weapons/plasma_cutter.ogg differ diff --git a/sounds/weapons/pred_lasercannon.ogg b/sounds/weapons/pred_lasercannon.ogg index b62dc5c82a..84bb25a29a 100644 Binary files a/sounds/weapons/pred_lasercannon.ogg and b/sounds/weapons/pred_lasercannon.ogg differ diff --git a/sounds/weapons/pred_plasma_shot.ogg b/sounds/weapons/pred_plasma_shot.ogg index e315aa4da8..30451dfedc 100644 Binary files a/sounds/weapons/pred_plasma_shot.ogg and b/sounds/weapons/pred_plasma_shot.ogg differ diff --git a/sounds/weapons/pred_plasmacaster_fire.ogg b/sounds/weapons/pred_plasmacaster_fire.ogg index ce0eca582e..ca36eefc2d 100644 Binary files a/sounds/weapons/pred_plasmacaster_fire.ogg and b/sounds/weapons/pred_plasmacaster_fire.ogg differ diff --git a/sounds/weapons/pred_plasmacaster_off.ogg b/sounds/weapons/pred_plasmacaster_off.ogg index 0f3e9bf4b2..283a3a918f 100644 Binary files a/sounds/weapons/pred_plasmacaster_off.ogg and b/sounds/weapons/pred_plasmacaster_off.ogg differ diff --git a/sounds/weapons/pred_plasmacaster_on.ogg b/sounds/weapons/pred_plasmacaster_on.ogg index eaeb2ea5d8..e2d5fa78dc 100644 Binary files a/sounds/weapons/pred_plasmacaster_on.ogg and b/sounds/weapons/pred_plasmacaster_on.ogg differ diff --git a/sounds/weapons/pulse.ogg b/sounds/weapons/pulse.ogg index 617b903231..87ade2c221 100644 Binary files a/sounds/weapons/pulse.ogg and b/sounds/weapons/pulse.ogg differ diff --git a/sounds/weapons/pulse2.ogg b/sounds/weapons/pulse2.ogg index 44c46fc715..1850530d9b 100644 Binary files a/sounds/weapons/pulse2.ogg and b/sounds/weapons/pulse2.ogg differ diff --git a/sounds/weapons/pulse3.ogg b/sounds/weapons/pulse3.ogg index b275fba2a8..122b1d3e6c 100644 Binary files a/sounds/weapons/pulse3.ogg and b/sounds/weapons/pulse3.ogg differ diff --git a/sounds/weapons/punch1.ogg b/sounds/weapons/punch1.ogg index 3442ea3333..b2124c7f89 100644 Binary files a/sounds/weapons/punch1.ogg and b/sounds/weapons/punch1.ogg differ diff --git a/sounds/weapons/punch2.ogg b/sounds/weapons/punch2.ogg index 21e5869914..a9dbc22202 100644 Binary files a/sounds/weapons/punch2.ogg and b/sounds/weapons/punch2.ogg differ diff --git a/sounds/weapons/punch3.ogg b/sounds/weapons/punch3.ogg index 3ab2c500d8..257c2e89e7 100644 Binary files a/sounds/weapons/punch3.ogg and b/sounds/weapons/punch3.ogg differ diff --git a/sounds/weapons/punch4.ogg b/sounds/weapons/punch4.ogg index 7b7f05ce0f..fe78a4d43a 100644 Binary files a/sounds/weapons/punch4.ogg and b/sounds/weapons/punch4.ogg differ diff --git a/sounds/weapons/punchmiss.ogg b/sounds/weapons/punchmiss.ogg index fca95037da..acb38eb0ad 100644 Binary files a/sounds/weapons/punchmiss.ogg and b/sounds/weapons/punchmiss.ogg differ diff --git a/sounds/weapons/pushhiss.ogg b/sounds/weapons/pushhiss.ogg index e1e8ea2f3e..9c39aab335 100644 Binary files a/sounds/weapons/pushhiss.ogg and b/sounds/weapons/pushhiss.ogg differ diff --git a/sounds/weapons/railgun.ogg b/sounds/weapons/railgun.ogg index 0b939fd9a6..4b96340784 100644 Binary files a/sounds/weapons/railgun.ogg and b/sounds/weapons/railgun.ogg differ diff --git a/sounds/weapons/rapidslice.ogg b/sounds/weapons/rapidslice.ogg index a428c18efe..aa583a9d9c 100644 Binary files a/sounds/weapons/rapidslice.ogg and b/sounds/weapons/rapidslice.ogg differ diff --git a/sounds/weapons/revoff.ogg b/sounds/weapons/revoff.ogg index b9a090294d..e74229c473 100644 Binary files a/sounds/weapons/revoff.ogg and b/sounds/weapons/revoff.ogg differ diff --git a/sounds/weapons/revolver_spin.ogg b/sounds/weapons/revolver_spin.ogg index 8e40848d69..32486e6f7b 100644 Binary files a/sounds/weapons/revolver_spin.ogg and b/sounds/weapons/revolver_spin.ogg differ diff --git a/sounds/weapons/revon.ogg b/sounds/weapons/revon.ogg index 8f648cab3d..26ecb0b57d 100644 Binary files a/sounds/weapons/revon.ogg and b/sounds/weapons/revon.ogg differ diff --git a/sounds/weapons/ring.ogg b/sounds/weapons/ring.ogg index 2b2fe8f072..9e33ab2a1f 100644 Binary files a/sounds/weapons/ring.ogg and b/sounds/weapons/ring.ogg differ diff --git a/sounds/weapons/saberoff.ogg b/sounds/weapons/saberoff.ogg index dc93188675..cddd56839d 100644 Binary files a/sounds/weapons/saberoff.ogg and b/sounds/weapons/saberoff.ogg differ diff --git a/sounds/weapons/saberon.ogg b/sounds/weapons/saberon.ogg index e1f9be527f..e47153c6b9 100644 Binary files a/sounds/weapons/saberon.ogg and b/sounds/weapons/saberon.ogg differ diff --git a/sounds/weapons/sawhit.ogg b/sounds/weapons/sawhit.ogg index 8e17d3a5b1..24e9280adf 100644 Binary files a/sounds/weapons/sawhit.ogg and b/sounds/weapons/sawhit.ogg differ diff --git a/sounds/weapons/scan.ogg b/sounds/weapons/scan.ogg index b8868cbeb6..4b7493e48a 100644 Binary files a/sounds/weapons/scan.ogg and b/sounds/weapons/scan.ogg differ diff --git a/sounds/weapons/shotgunpump.ogg b/sounds/weapons/shotgunpump.ogg index 1b9a671ffa..8010b90529 100644 Binary files a/sounds/weapons/shotgunpump.ogg and b/sounds/weapons/shotgunpump.ogg differ diff --git a/sounds/weapons/slash.ogg b/sounds/weapons/slash.ogg index 87ab82dafb..e15e659a56 100644 Binary files a/sounds/weapons/slash.ogg and b/sounds/weapons/slash.ogg differ diff --git a/sounds/weapons/slashmiss.ogg b/sounds/weapons/slashmiss.ogg index a0eb8dd30c..f162dd96f2 100644 Binary files a/sounds/weapons/slashmiss.ogg and b/sounds/weapons/slashmiss.ogg differ diff --git a/sounds/weapons/slice.ogg b/sounds/weapons/slice.ogg index cb5e8f366d..47dd9c449d 100644 Binary files a/sounds/weapons/slice.ogg and b/sounds/weapons/slice.ogg differ diff --git a/sounds/weapons/smartgun.ogg b/sounds/weapons/smartgun.ogg index 00a63448ab..52d1753d34 100644 Binary files a/sounds/weapons/smartgun.ogg and b/sounds/weapons/smartgun.ogg differ diff --git a/sounds/weapons/smash.ogg b/sounds/weapons/smash.ogg index ba76cf89e6..0a7339f0b2 100644 Binary files a/sounds/weapons/smash.ogg and b/sounds/weapons/smash.ogg differ diff --git a/sounds/weapons/smg_empty_alarm.ogg b/sounds/weapons/smg_empty_alarm.ogg index f031b4e1d8..14002f8d1e 100644 Binary files a/sounds/weapons/smg_empty_alarm.ogg and b/sounds/weapons/smg_empty_alarm.ogg differ diff --git a/sounds/weapons/smg_heavy.ogg b/sounds/weapons/smg_heavy.ogg index fd9b9c35b9..efc7cfb9fb 100644 Binary files a/sounds/weapons/smg_heavy.ogg and b/sounds/weapons/smg_heavy.ogg differ diff --git a/sounds/weapons/smg_light.ogg b/sounds/weapons/smg_light.ogg index d1adee6bc5..a89978a02c 100644 Binary files a/sounds/weapons/smg_light.ogg and b/sounds/weapons/smg_light.ogg differ diff --git a/sounds/weapons/sniper_heavy.ogg b/sounds/weapons/sniper_heavy.ogg index 013dddc9c0..767991c29c 100644 Binary files a/sounds/weapons/sniper_heavy.ogg and b/sounds/weapons/sniper_heavy.ogg differ diff --git a/sounds/weapons/spiderlunge.ogg b/sounds/weapons/spiderlunge.ogg index fc2d91e079..d7966dd531 100644 Binary files a/sounds/weapons/spiderlunge.ogg and b/sounds/weapons/spiderlunge.ogg differ diff --git a/sounds/weapons/spike.ogg b/sounds/weapons/spike.ogg index b22c702f52..e69de29bb2 100644 Binary files a/sounds/weapons/spike.ogg and b/sounds/weapons/spike.ogg differ diff --git a/sounds/weapons/tablehit1.ogg b/sounds/weapons/tablehit1.ogg index 23409a03a4..943124d997 100644 Binary files a/sounds/weapons/tablehit1.ogg and b/sounds/weapons/tablehit1.ogg differ diff --git a/sounds/weapons/tank_cannon_distant1.ogg b/sounds/weapons/tank_cannon_distant1.ogg index 99d7936411..e965e9ccca 100644 Binary files a/sounds/weapons/tank_cannon_distant1.ogg and b/sounds/weapons/tank_cannon_distant1.ogg differ diff --git a/sounds/weapons/tank_cannon_distant2.ogg b/sounds/weapons/tank_cannon_distant2.ogg index 9f4a39d52b..34132a3980 100644 Binary files a/sounds/weapons/tank_cannon_distant2.ogg and b/sounds/weapons/tank_cannon_distant2.ogg differ diff --git a/sounds/weapons/tank_cannon_fire1.ogg b/sounds/weapons/tank_cannon_fire1.ogg index 77aa46b7a6..7aeb81e402 100644 Binary files a/sounds/weapons/tank_cannon_fire1.ogg and b/sounds/weapons/tank_cannon_fire1.ogg differ diff --git a/sounds/weapons/tank_cannon_fire2.ogg b/sounds/weapons/tank_cannon_fire2.ogg index 66b84b9f95..a812a45500 100644 Binary files a/sounds/weapons/tank_cannon_fire2.ogg and b/sounds/weapons/tank_cannon_fire2.ogg differ diff --git a/sounds/weapons/tank_flamethrower.ogg b/sounds/weapons/tank_flamethrower.ogg index 71421c88f0..c43de37a54 100644 Binary files a/sounds/weapons/tank_flamethrower.ogg and b/sounds/weapons/tank_flamethrower.ogg differ diff --git a/sounds/weapons/tank_minigun_loop.ogg b/sounds/weapons/tank_minigun_loop.ogg index ea6ee0c6c7..8b4718225d 100644 Binary files a/sounds/weapons/tank_minigun_loop.ogg and b/sounds/weapons/tank_minigun_loop.ogg differ diff --git a/sounds/weapons/tank_minigun_select.ogg b/sounds/weapons/tank_minigun_select.ogg index 4e8e0925ca..56be28e355 100644 Binary files a/sounds/weapons/tank_minigun_select.ogg and b/sounds/weapons/tank_minigun_select.ogg differ diff --git a/sounds/weapons/tank_minigun_start.ogg b/sounds/weapons/tank_minigun_start.ogg index b22400be9f..2371dd38ad 100644 Binary files a/sounds/weapons/tank_minigun_start.ogg and b/sounds/weapons/tank_minigun_start.ogg differ diff --git a/sounds/weapons/tank_minigun_stop.ogg b/sounds/weapons/tank_minigun_stop.ogg index 4132e19dbb..9971cabe6c 100644 Binary files a/sounds/weapons/tank_minigun_stop.ogg and b/sounds/weapons/tank_minigun_stop.ogg differ diff --git a/sounds/weapons/tank_smokelauncher_fire.ogg b/sounds/weapons/tank_smokelauncher_fire.ogg index 889499866f..6bc447c0ad 100644 Binary files a/sounds/weapons/tank_smokelauncher_fire.ogg and b/sounds/weapons/tank_smokelauncher_fire.ogg differ diff --git a/sounds/weapons/taser2.ogg b/sounds/weapons/taser2.ogg index 2cdab84378..82fbcf563b 100644 Binary files a/sounds/weapons/taser2.ogg and b/sounds/weapons/taser2.ogg differ diff --git a/sounds/weapons/throwtap.ogg b/sounds/weapons/throwtap.ogg index 7806a78981..b84950f8f4 100644 Binary files a/sounds/weapons/throwtap.ogg and b/sounds/weapons/throwtap.ogg differ diff --git a/sounds/weapons/thudswoosh.ogg b/sounds/weapons/thudswoosh.ogg index 68c2948bdc..06148e8829 100644 Binary files a/sounds/weapons/thudswoosh.ogg and b/sounds/weapons/thudswoosh.ogg differ diff --git a/sounds/weapons/towelwhip.ogg b/sounds/weapons/towelwhip.ogg index 49dab750a8..84273ff972 100644 Binary files a/sounds/weapons/towelwhip.ogg and b/sounds/weapons/towelwhip.ogg differ diff --git a/sounds/weapons/towelwipe.ogg b/sounds/weapons/towelwipe.ogg index 2bee55c38d..db2039aabe 100644 Binary files a/sounds/weapons/towelwipe.ogg and b/sounds/weapons/towelwipe.ogg differ diff --git a/sounds/weapons/unload.ogg b/sounds/weapons/unload.ogg index b5a6c867e1..bd926744d0 100644 Binary files a/sounds/weapons/unload.ogg and b/sounds/weapons/unload.ogg differ diff --git a/sounds/weapons/uzi.ogg b/sounds/weapons/uzi.ogg index 434cf3ffb6..ba259377ab 100644 Binary files a/sounds/weapons/uzi.ogg and b/sounds/weapons/uzi.ogg differ diff --git a/sounds/weapons/vp70.ogg b/sounds/weapons/vp70.ogg index ff9f472bdd..f511e2b37c 100644 Binary files a/sounds/weapons/vp70.ogg and b/sounds/weapons/vp70.ogg differ diff --git a/sounds/weapons/wave.ogg b/sounds/weapons/wave.ogg index 039996341a..28b980dad9 100644 Binary files a/sounds/weapons/wave.ogg and b/sounds/weapons/wave.ogg differ diff --git a/sounds/weapons/wristblades_hit.ogg b/sounds/weapons/wristblades_hit.ogg index 82b5f88167..909caa8d9f 100644 Binary files a/sounds/weapons/wristblades_hit.ogg and b/sounds/weapons/wristblades_hit.ogg differ diff --git a/sounds/weapons/wristblades_off.ogg b/sounds/weapons/wristblades_off.ogg index b52c44d9d9..279de46575 100644 Binary files a/sounds/weapons/wristblades_off.ogg and b/sounds/weapons/wristblades_off.ogg differ diff --git a/sounds/weapons/wristblades_on.ogg b/sounds/weapons/wristblades_on.ogg index d74db1f590..01bc52d382 100644 Binary files a/sounds/weapons/wristblades_on.ogg and b/sounds/weapons/wristblades_on.ogg differ diff --git a/sql/migrate/V009__Fix_job_length.sql b/sql/migrate/V009__Fix_job_length.sql new file mode 100644 index 0000000000..f9b4ada708 --- /dev/null +++ b/sql/migrate/V009__Fix_job_length.sql @@ -0,0 +1,2 @@ +ALTER TABLE `erro_ban` + MODIFY `job` varchar(48) DEFAULT NULL; diff --git a/test/run-test.sh b/test/run-test.sh index fa58b054e6..1bdb56e455 100755 --- a/test/run-test.sh +++ b/test/run-test.sh @@ -72,9 +72,6 @@ FAILED_BYNAME=() # Global counter of passed tests PASSED=0 -# Version of Node to install for tgui -NODE_VERSION=4 - function msg { echo -e "\t\e[34mtest\e[0m: $*" } @@ -209,7 +206,7 @@ function run_code_tests { run_test "indentation check" "awk -f tools/indentation.awk **/*.dm" run_test "check tags" "python3 tools/TagMatcher/tag-matcher.py ." run_test "check punctuation" "python3 tools/PunctuationChecker/punctuation-checker.py ." - run_test "check icon state limit" "python3 tools/dmitool/check_icon_state_limit.py ." + run_test "check icon states validity" "tools/bootstrap/python -m dmi.test" } function run_byond_tests { @@ -220,11 +217,6 @@ function run_byond_tests { else msg "configured map is '$MAP_PATH'" fi cp config/example/* config/ - if [[ "$CI" == "true" ]]; then - msg "installing BYOND" - ./install-byond.sh || exit 1 - source $HOME/BYOND-${BYOND_MAJOR}.${BYOND_MINOR}/byond/bin/byondsetup - fi #run_test_ci "check globals build" "python3 tools/GenerateGlobalVarAccess/gen_globals.py baystation12.dme code/_helpers/global_access.dm" #run_test "check globals unchanged" "md5sum -c - <<< '867473a8a8375e5b73b8bd0d58433c2a *code/_helpers/global_access.dm'" whatever run_test "build map unit tests" "tools/build/build --ci dm -DUNIT_TEST -M$MAP_PATH | tee build_log.txt" diff --git a/tgui/packages/tgui-panel/chat/actions.js b/tgui/packages/tgui-panel/chat/actions.js index 3814fbe611..cb3931b3fb 100644 --- a/tgui/packages/tgui-panel/chat/actions.js +++ b/tgui/packages/tgui-panel/chat/actions.js @@ -9,6 +9,7 @@ import { createAction } from 'common/redux'; import { createPage } from './model'; export const loadChat = createAction('chat/load'); +export const clearChat = createAction('chat/clear'); export const rebuildChat = createAction('chat/rebuild'); export const updateMessageCount = createAction('chat/updateMessageCount'); export const addChatPage = createAction('chat/addPage', () => ({ diff --git a/tgui/packages/tgui-panel/chat/middleware.js b/tgui/packages/tgui-panel/chat/middleware.js index 6ef893e0af..f9e4bef067 100644 --- a/tgui/packages/tgui-panel/chat/middleware.js +++ b/tgui/packages/tgui-panel/chat/middleware.js @@ -13,6 +13,7 @@ import { addChatPage, changeChatPage, changeScrollTracking, + clearChat, loadChat, rebuildChat, removeChatPage, @@ -144,6 +145,10 @@ export const chatMiddleware = (store) => { chatRenderer.saveToDisk(); return; } + if (type === clearChat.type) { + chatRenderer.clearChat(); + return; + } return next(action); }; }; diff --git a/tgui/packages/tgui-panel/chat/renderer.js b/tgui/packages/tgui-panel/chat/renderer.js index 2b69d43620..212a6cbc91 100644 --- a/tgui/packages/tgui-panel/chat/renderer.js +++ b/tgui/packages/tgui-panel/chat/renderer.js @@ -496,6 +496,29 @@ class ChatRenderer { }); } + /** + * @clearChat + * @copyright 2023 + * @author Cheffie + * @link https://github.com/CheffieGithub + * @license MIT + */ + clearChat() { + const messages = this.visibleMessages; + this.visibleMessages = []; + for (let i = 0; i < messages.length; i++) { + const message = messages[i]; + this.rootNode.removeChild(message.node); + // Mark this message as pruned + message.node = 'pruned'; + } + // Remove pruned messages from the message array + this.messages = this.messages.filter( + (message) => message.node !== 'pruned', + ); + logger.log(`Cleared chat`); + } + saveToDisk() { // Allow only on IE11 if (Byond.IS_LTE_IE10) { diff --git a/tgui/packages/tgui-panel/settings/SettingsPanel.js b/tgui/packages/tgui-panel/settings/SettingsPanel.js index f04cdd66d9..3dadd6b771 100644 --- a/tgui/packages/tgui-panel/settings/SettingsPanel.js +++ b/tgui/packages/tgui-panel/settings/SettingsPanel.js @@ -24,7 +24,7 @@ import { } from 'tgui/components'; import { ChatPageSettings } from '../chat'; -import { rebuildChat, saveChatToDisk } from '../chat/actions'; +import { clearChat, rebuildChat, saveChatToDisk } from '../chat/actions'; import { THEMES } from '../themes'; import { changeSettingsTab, updateSettings } from './actions'; import { FONTS, SETTINGS_TABS } from './constants'; @@ -241,9 +241,26 @@ export const SettingsGeneral = (props, context) => { - + + + + + + dispatch(clearChat())} + > + Clear chat + + + ); }; diff --git a/tgui/packages/tgui/components/Button.js b/tgui/packages/tgui/components/Button.js index f553d0434f..d3b1e3bf21 100644 --- a/tgui/packages/tgui/components/Button.js +++ b/tgui/packages/tgui/components/Button.js @@ -157,10 +157,14 @@ export class ButtonConfirm extends Component { this.state = { clickedOnce: false, }; - this.handleClick = () => { - if (this.state.clickedOnce) { - this.setClickedOnce(false); + this.handleClick = (event, onClick) => { + if (!this.state.clickedOnce) { + this.setClickedOnce(true); + return; } + + onClick(event); + this.setClickedOnce(false); }; } @@ -168,15 +172,11 @@ export class ButtonConfirm extends Component { this.setState({ clickedOnce, }); - if (clickedOnce) { - setTimeout(() => window.addEventListener('click', this.handleClick)); - } else { - window.removeEventListener('click', this.handleClick); - } } render() { const { + children, confirmContent = 'Confirm?', confirmColor = 'bad', confirmIcon, @@ -188,14 +188,13 @@ export class ButtonConfirm extends Component { } = this.props; return ( ); } } diff --git a/tgui/packages/tgui/interfaces/NtosNetMonitor.js b/tgui/packages/tgui/interfaces/NtosNetMonitor.js index d75724b6f6..1f057cfd9f 100644 --- a/tgui/packages/tgui/interfaces/NtosNetMonitor.js +++ b/tgui/packages/tgui/interfaces/NtosNetMonitor.js @@ -40,10 +40,11 @@ export const NtosNetMonitor = (props, context) => { buttons={ act('toggleWireless')} - /> + > + {ntnetstatus ? 'ENABLED' : 'DISABLED'} + } > {ntnetrelays ? ( @@ -170,11 +171,9 @@ export const NtosNetMonitor = (props, context) => { title="System Log" level={2} buttons={ - act('purgelogs')} - /> + act('purgelogs')}> + Clear Logs + } > {ntnetlogs.map((log) => ( diff --git a/tgui/packages/tgui/interfaces/PlayerPanel.js b/tgui/packages/tgui/interfaces/PlayerPanel.js index 1fcb940866..ad4d2f287d 100644 --- a/tgui/packages/tgui/interfaces/PlayerPanel.js +++ b/tgui/packages/tgui/interfaces/PlayerPanel.js @@ -294,17 +294,20 @@ const GeneralActions = (props, context) => { confirmColor="average" disabled={!hasPermission(data, 'mob_kill')} onClick={() => act('mob_kill')} - /> + > + Kill + act('mob_gib')} - /> + > + Gib + @@ -313,23 +316,26 @@ const GeneralActions = (props, context) => { act('mob_bring')} - /> + > + Bring + act('mob_follow')} - /> + > + Follow + act('send_to')} - /> + > + Send To + - }> + } + > Additional Information: {error} ); @@ -57,7 +66,8 @@ const ServerSelect = (props, context) => { icon="server" onClick={() => act('PRG_connect_to_server', { uid: server.uid }) - }> + } + > {server.sysadmin ? 'Connect to Server (sysadmin)' : 'Connect to Server'} @@ -89,7 +99,8 @@ const Messages = (props, context) => { verticalAlign="top" style={{ width: '200px', - }}> + }} + > {servername} {sysadmin && ( @@ -138,7 +149,8 @@ const Messages = (props, context) => { verticalAlign="top" style={{ width: '150px', - }}> + }} + > {channel_open && ( { )} {channel_open & sysadmin && ( - act('PRG_delete_channel')} - /> + act('PRG_delete_channel')}> + Delete Channel + - }> + } + > {region_access.map((region = [], index) => (
{region.map((access) => ( @@ -201,7 +212,8 @@ const UserAccess = (props, context) => { checked={access.required} onClick={() => act('PRG_change_access_user', { access: access.id }) - }> + } + > {access.desc} ))} @@ -221,7 +233,8 @@ const AdminAccess = (props, context) => { - }> + } + > {region_access.map((region = [], index) => (
{region.map((access) => ( @@ -230,7 +243,8 @@ const AdminAccess = (props, context) => { checked={access.required} onClick={() => act('PRG_change_access_admin', { access: access.id }) - }> + } + > {access.desc} ))} diff --git a/tools/SS13SmoothingCutter/ExampleDiagInput.dmi b/tools/SS13SmoothingCutter/ExampleDiagInput.dmi index f147bd4b5a..73977db4dc 100644 Binary files a/tools/SS13SmoothingCutter/ExampleDiagInput.dmi and b/tools/SS13SmoothingCutter/ExampleDiagInput.dmi differ diff --git a/tools/SS13SmoothingCutter/ExampleInput.dmi b/tools/SS13SmoothingCutter/ExampleInput.dmi index b9e6f655e2..76670c90ae 100644 Binary files a/tools/SS13SmoothingCutter/ExampleInput.dmi and b/tools/SS13SmoothingCutter/ExampleInput.dmi differ diff --git a/tools/SS13SmoothingCutter/WallInput.dmi b/tools/SS13SmoothingCutter/WallInput.dmi index 96dbcfea63..d617a95d35 100644 Binary files a/tools/SS13SmoothingCutter/WallInput.dmi and b/tools/SS13SmoothingCutter/WallInput.dmi differ diff --git a/tools/bootstrap/python36._pth b/tools/bootstrap/python36._pth deleted file mode 100644 index 2bd2e8a7d6..0000000000 --- a/tools/bootstrap/python36._pth +++ /dev/null @@ -1,6 +0,0 @@ -python36.zip -. -..\..\.. - -# Uncomment to run site.main() automatically -import site diff --git a/tools/bootstrap/python37._pth b/tools/bootstrap/python37._pth deleted file mode 100644 index 4fe5437261..0000000000 --- a/tools/bootstrap/python37._pth +++ /dev/null @@ -1,6 +0,0 @@ -python37.zip -. -..\..\.. - -# Uncomment to run site.main() automatically -import site diff --git a/tools/bootstrap/python_.ps1 b/tools/bootstrap/python_.ps1 index 93a6f75696..f37589f106 100644 --- a/tools/bootstrap/python_.ps1 +++ b/tools/bootstrap/python_.ps1 @@ -49,8 +49,13 @@ if (!(Test-Path $PythonExe -PathType Leaf)) { [System.IO.Compression.ZipFile]::ExtractToDirectory($Archive, $PythonDir) + $PythonVersionArray = $PythonVersion.Split(".") + $PythonVersionString = "python$($PythonVersionArray[0])$($PythonVersionArray[1])" + Write-Output "Generating PATH descriptor." + New-Item "$Cache/$PythonVersionString._pth" | Out-Null + Set-Content "$Cache/$PythonVersionString._pth" "$PythonVersionString.zip`n.`n..\..\..`nimport site`n" # Copy a ._pth file without "import site" commented, so pip will work - Copy-Item "$Bootstrap/python37._pth" $PythonDir ` + Copy-Item "$Cache/$PythonVersionString._pth" $PythonDir ` -ErrorAction Stop Remove-Item $Archive diff --git a/tools/build/build.js b/tools/build/build.js index 367c59934c..5bc0729c43 100644 --- a/tools/build/build.js +++ b/tools/build/build.js @@ -34,13 +34,22 @@ export const PortParameter = new Juke.Parameter({ alias: "p", }); -export const CiParameter = new Juke.Parameter({ type: "boolean" }); +export const DmVersionParameter = new Juke.Parameter({ + type: 'string', +}); + +export const CiParameter = new Juke.Parameter({ type: 'boolean' }); export const WarningParameter = new Juke.Parameter({ type: "string[]", alias: "W", }); +export const NoWarningParameter = new Juke.Parameter({ + type: 'string[]', + alias: 'I', +}); + export const DmMapsIncludeTarget = new Juke.Target({ executes: async () => { const folders = [ @@ -59,26 +68,26 @@ export const DmMapsIncludeTarget = new Juke.Target({ }); export const DmTarget = new Juke.Target({ - parameters: [DefineParameter], + parameters: [DefineParameter, DmVersionParameter, WarningParameter, NoWarningParameter], dependsOn: ({ get }) => [ get(DefineParameter).includes("ALL_MAPS") && DmMapsIncludeTarget, ], inputs: [ "maps/**", "code/**", - "goon/**", "html/**", "icons/**", "interface/**", - "packs/**", "mod_celadon/**", `${DME_NAME}.dme`, ], outputs: [`${DME_NAME}.dmb`, `${DME_NAME}.rsc`], executes: async ({ get }) => { await DreamMaker(`${DME_NAME}.dme`, { - defines: ["CBT", ...get(DefineParameter)], - warningsAsErrors: get(WarningParameter).includes("error"), + defines: ['CBT', ...get(DefineParameter)], + warningsAsErrors: get(WarningParameter).includes('error'), + ignoreWarningCodes: get(NoWarningParameter), + namedDmVersion: get(DmVersionParameter), }); }, }); diff --git a/tools/build/lib/byond.js b/tools/build/lib/byond.js index c77d9180c3..69ccec0647 100644 --- a/tools/build/lib/byond.js +++ b/tools/build/lib/byond.js @@ -8,7 +8,12 @@ import { regQuery } from './winreg.js'; */ let dmPath; -const getDmPath = async () => { + +const getDmPath = async (namedVersion) => { + // Use specific named version + if(namedVersion) { + return getNamedByondVersionPath(namedVersion); + } if (dmPath) { return dmPath; } @@ -16,6 +21,7 @@ const getDmPath = async () => { // Search in array of paths const paths = [ ...((process.env.DM_EXE && process.env.DM_EXE.split(',')) || []), + ...getDefaultNamedByondVersionPath(), 'C:\\Program Files\\BYOND\\bin\\dm.exe', 'C:\\Program Files (x86)\\BYOND\\bin\\dm.exe', ['reg', 'HKLM\\Software\\Dantom\\BYOND', 'installpath'], @@ -58,56 +64,143 @@ const getDmPath = async () => { return dmPath; }; -/** - * @param {string} dmeFile - * @param {{ - * defines?: string[]; - * warningsAsErrors?: boolean; - * }} options - */ -export const DreamMaker = async (dmeFile, options = {}) => { - const dmPath = await getDmPath(); - // Get project basename - const dmeBaseName = dmeFile.replace(/\.dme$/, ''); - // Make sure output files are writable - const testOutputFile = (name) => { - try { - fs.closeSync(fs.openSync(name, 'r+')); - } - catch (err) { - if (err && err.code === 'ENOENT') { - return; - } - if (err && err.code === 'EBUSY') { - Juke.logger.error(`File '${name}' is locked by the DreamDaemon process.`); - Juke.logger.error(`Stop the currently running server and try again.`); +const getNamedByondVersionPath = (namedVersion) =>{ + const all_entries = getAllNamedDmVersions(true) + const map_entry = all_entries.find(x => x.name === namedVersion); + if(map_entry === undefined){ + Juke.logger.error(`No named byond version with name "${namedVersion}" found.`); + throw new Juke.ExitCode(1); + } + return map_entry.path; +} + +const getDefaultNamedByondVersionPath = () =>{ + const all_entries = getAllNamedDmVersions(false) + const map_entry = all_entries.find(x => x.default == true); + if(map_entry === undefined) + return [] + return [map_entry.path]; +} + +/** @type {[{ name, path, default }]} */ +let namedDmVersionList; +export const NamedVersionFile = "tools/build/dm_versions.json" + +const getAllNamedDmVersions = (throw_on_fail) => { + if(!namedDmVersionList){ + if(!fs.existsSync(NamedVersionFile)){ + if(throw_on_fail){ + Juke.logger.error(`No byond version map file found.`); throw new Juke.ExitCode(1); } - throw err; + namedDmVersionList = [] + return namedDmVersionList; } - }; - testOutputFile(`${dmeBaseName}.dmb`); - testOutputFile(`${dmeBaseName}.rsc`); - const runWithWarningChecks = async (dmeFile, args) => { - const execReturn = await Juke.exec(dmeFile, args); - if (options.warningsAsErrors && execReturn.combined.match(/\d+:warning: /)) { - Juke.logger.error(`Compile warnings treated as errors`); - throw new Juke.ExitCode(2); + try{ + namedDmVersionList = JSON.parse(fs.readFileSync(NamedVersionFile)); + } + catch(err){ + if(throw_on_fail){ + Juke.logger.error(`Failed to parse byond version map file. ${err}`); + throw new Juke.ExitCode(1); + } + namedDmVersionList = [] + return namedDmVersionList; } - return execReturn; - } - // Compile - const { defines } = options; - if (defines && defines.length > 0) { - Juke.logger.info('Using defines:', defines.join(', ')); } - await runWithWarningChecks(dmPath, [...defines.map(def => `-D${def}`), dmeFile]); + return namedDmVersionList; +} + +/** + * @param {string} dmeFile + * @param {{ +* defines?: string[]; +* warningsAsErrors?: boolean; +* namedDmVersion?: string; +* }} options +*/ +export const DreamMaker = async (dmeFile, options = {}) => { + if(options.namedDmVersion !== null){ + Juke.logger.info('Using named byond version:', options.namedDmVersion); + } + const dmPath = await getDmPath(options.namedDmVersion); + // Get project basename + const dmeBaseName = dmeFile.replace(/\.dme$/, ''); + // Make sure output files are writable + const testOutputFile = (name) => { + try { + fs.closeSync(fs.openSync(name, 'r+')); + } + catch (err) { + if (err && err.code === 'ENOENT') { + return; + } + if (err && err.code === 'EBUSY') { + Juke.logger.error(`File '${name}' is locked by the DreamDaemon process.`); + Juke.logger.error(`Stop the currently running server and try again.`); + throw new Juke.ExitCode(1); + } + throw err; + } + }; + + const testDmVersion = async (dmPath) => { + const execReturn = await Juke.exec(dmPath, [], { silent: true, throw: false }); + const version = execReturn.combined.match(`DM compiler version (\\d+)\\.(\\d+)`) + if(version == null){ + Juke.logger.error(`Unexpected DreamMaker return, ensure "${dmPath}" is correct DM path.`) + throw new Juke.ExitCode(1); + } + const requiredMajorVersion = 515; + const requiredMinorVersion = 1597 // First with -D switch functionality + const major = Number(version[1]); + const minor = Number(version[2]); + if(major < requiredMajorVersion || major == requiredMajorVersion && minor < requiredMinorVersion){ + Juke.logger.error(`${requiredMajorVersion}.${requiredMinorVersion} or later DM version required. Version ${major}.${minor} found at: ${dmPath}`) + throw new Juke.ExitCode(1); + } + } + + await testDmVersion(dmPath); + testOutputFile(`${dmeBaseName}.dmb`); + testOutputFile(`${dmeBaseName}.rsc`); + + const runWithWarningChecks = async (dmPath, args) => { + const execReturn = await Juke.exec(dmPath, args); + if(options.warningsAsErrors){ + const ignoredWarningCodes = options.ignoreWarningCodes ?? []; + if(ignoredWarningCodes.length > 0 ){ + Juke.logger.info('Ignored warning codes:', ignoredWarningCodes.join(', ')); + } + const base_regex = '\\d+:warning( \\([a-z_]*\\))?:' + const with_ignores = `\\d+:warning( \\([a-z_]*\\))?:(?!(${ignoredWarningCodes.map(x => `.*${x}.*$`).join('|')}))` + const reg = ignoredWarningCodes.length > 0 ? new RegExp(with_ignores, "m") : new RegExp(base_regex,"m") + if (options.warningsAsErrors && execReturn.combined.match(reg)) { + Juke.logger.error(`Compile warnings treated as errors`); + throw new Juke.ExitCode(2); + } + } + return execReturn; + } + // Compile + const { defines } = options; + if (defines && defines.length > 0) { + Juke.logger.info('Using defines:', defines.join(', ')); + } + + await runWithWarningChecks(dmPath, [...defines.map(def => `-D${def}`), dmeFile]); }; -export const DreamDaemon = async (dmbFile, ...args) => { - const dmPath = await getDmPath(); +/** +* @param {{ +* dmbFile: string; +* namedDmVersion?: string; +* }} options +*/ +export const DreamDaemon = async (options, ...args) => { + const dmPath = await getDmPath(options.namedDmVersion); const baseDir = path.dirname(dmPath); const ddExeName = process.platform === 'win32' ? 'dreamdaemon.exe' : 'DreamDaemon'; const ddExePath = baseDir === '.' ? ddExeName : path.join(baseDir, ddExeName); - return Juke.exec(ddExePath, [dmbFile, ...args]); -}; + return Juke.exec(ddExePath, [options.dmbFile, ...args]); +}; \ No newline at end of file diff --git a/tools/ci/annotate_dm.sh b/tools/ci/annotate_dm.sh new file mode 100644 index 0000000000..e43f930ba1 --- /dev/null +++ b/tools/ci/annotate_dm.sh @@ -0,0 +1,4 @@ +#!/bin/bash + +set -euo pipefail +tools/bootstrap/python -m dm_annotator "$@" diff --git a/tools/ci/install_byond.sh b/tools/ci/install_byond.sh index 4a688755d3..9108bde5eb 100644 --- a/tools/ci/install_byond.sh +++ b/tools/ci/install_byond.sh @@ -1,7 +1,10 @@ #!/bin/bash set -euo pipefail -source dependencies.sh +# BYOND_MAJOR and BYOND_MINOR can be explicitly set, such as in alt_byond_versions.txt +if [ -z "${BYOND_MAJOR+x}" ]; then + source dependencies.sh +fi if [ -d "$HOME/BYOND/byond/bin" ] && grep -Fxq "${BYOND_MAJOR}.${BYOND_MINOR}" $HOME/BYOND/version.txt; then diff --git a/tools/ci/install_node.sh b/tools/ci/install_node.sh index c21b8f0110..906984ed3f 100644 --- a/tools/ci/install_node.sh +++ b/tools/ci/install_node.sh @@ -5,6 +5,6 @@ source dependencies.sh if [[ -e ~/.nvm/nvm.sh ]]; then source ~/.nvm/nvm.sh - nvm install $NODE_VERSION - nvm use $NODE_VERSION + nvm install $NODE_VERSION_COMPAT + nvm use $NODE_VERSION_COMPAT fi diff --git a/tools/dm_annotator/__main__.py b/tools/dm_annotator/__main__.py new file mode 100644 index 0000000000..4948fd0865 --- /dev/null +++ b/tools/dm_annotator/__main__.py @@ -0,0 +1,51 @@ +import sys +import re +import os.path as path + +# Usage: tools/bootstrap/python -m dm_annotator [filename] +# If filename is not provided, stdin is checked instead + +def red(text): + return "\033[31m" + str(text) + "\033[0m" + +def green(text): + return "\033[32m" + str(text) + "\033[0m" + +def yellow(text): + return "\033[33m" + str(text) + "\033[0m" + +def annotate(raw_output): + # Remove ANSI escape codes + raw_output = re.sub(r'(\x9B|\x1B\[)[0-?]*[ -\/]*[@-~]', '', raw_output) + + print("::group::DreamChecker Output") + print(raw_output) + print("::endgroup::") + + annotation_regex = r'(?P.*?), line (?P\d+), column (?P\d+):\s{1,2}(?Perror|warning): (?P.*)' + has_issues = False + + print("DM Code Annotations:") + for annotation in re.finditer(annotation_regex, raw_output): + print(f"::{annotation['type']} file={annotation['filename']},line={annotation['line']},col={annotation['column']}::{annotation['message']}") + has_issues = True + + if not has_issues: + print(green("No DM issues found")) + +def main(): + if len(sys.argv) > 1: + if not path.exists(sys.argv[1]): + print(red(f"Error: Annotations file '{sys.argv[1]}' does not exist")) + sys.exit(1) + with open(sys.argv[1], 'r') as f: + annotate(f.read()) + elif not sys.stdin.isatty(): + annotate(sys.stdin.read()) + else: + print(red("Error: No input provided")) + print("Usage: tools/bootstrap/python -m dm_annotator [filename]") + sys.exit(1) + +if __name__ == '__main__': + main() diff --git a/tools/dmitool/.gitignore b/tools/dmitool/.gitignore deleted file mode 100644 index 06b36cfb15..0000000000 --- a/tools/dmitool/.gitignore +++ /dev/null @@ -1,6 +0,0 @@ -bin -.gradle -.classpath -.settings -.project -*.class \ No newline at end of file diff --git a/tools/dmitool/README.txt b/tools/dmitool/README.txt deleted file mode 100644 index 409ab873c3..0000000000 --- a/tools/dmitool/README.txt +++ /dev/null @@ -1,5 +0,0 @@ -Uses PNGJ: https://code.google.com/p/pngj/. - -For help, use "java -jar dmitool.jar help". - -Requires Java 7. \ No newline at end of file diff --git a/tools/dmitool/build.gradle b/tools/dmitool/build.gradle deleted file mode 100644 index 2e5fbc5b08..0000000000 --- a/tools/dmitool/build.gradle +++ /dev/null @@ -1,16 +0,0 @@ -apply plugin: 'java' - -repositories { - mavenCentral() -} - -dependencies { - compile group: 'ar.com.hjg', name: 'pngj', version: '2.1.0' -} - -jar { - from { configurations.compile.collect { it.isDirectory() ? it : zipTree(it) } } - manifest { - attributes 'Main-Class': 'dmitool.Main' - } -} \ No newline at end of file diff --git a/tools/dmitool/check_icon_state_limit.py b/tools/dmitool/check_icon_state_limit.py deleted file mode 100644 index 92efb57753..0000000000 --- a/tools/dmitool/check_icon_state_limit.py +++ /dev/null @@ -1,28 +0,0 @@ -import argparse, re, sys -from os import path, walk -import dmitool # This import is why this script is here. If someone can import this file cleanly from [repo root]/test/ instead, feel free - -opt = argparse.ArgumentParser() -opt.add_argument('dir', help='The directory to scan for *.dmi files with an excess number of icon states.') -args = opt.parse_args() - -if(not path.isdir(args.dir)): - print('Not a directory') - sys.exit(1) - -bad_dmi_files = [] - -# This section parses all *.dmi files in the given directory, recursively. -for root, subdirs, files in walk(args.dir): - for filename in files: - if filename.endswith('.dmi'): - file_path = path.join(root, filename) - dmi_info = dmitool.info(file_path) - number_of_icon_states = len(dmi_info["states"]) - if number_of_icon_states > 512: - bad_dmi_files.append((file_path, number_of_icon_states)) - -if len(bad_dmi_files) > 0: - for dmi_path, icon_states in bad_dmi_files: - print("{0} had too many icon states. {1}/512.".format(dmi_path, icon_states)) - sys.exit(1) diff --git a/tools/dmitool/dmimerge.sh b/tools/dmitool/dmimerge.sh deleted file mode 100644 index dbe846fc6a..0000000000 --- a/tools/dmitool/dmimerge.sh +++ /dev/null @@ -1,8 +0,0 @@ -java -jar tools/dmitool/dmitool.jar merge $1 $2 $3 $2 -if [ "$?" -gt 0 ] -then - echo "Unable to automatically resolve all icon_state conflicts, please merge manually." - exit 1 -fi - -exit 0 diff --git a/tools/dmitool/dmitool.jar b/tools/dmitool/dmitool.jar deleted file mode 100644 index 6e7903a2c6..0000000000 Binary files a/tools/dmitool/dmitool.jar and /dev/null differ diff --git a/tools/dmitool/dmitool.py b/tools/dmitool/dmitool.py deleted file mode 100644 index f6716782b0..0000000000 --- a/tools/dmitool/dmitool.py +++ /dev/null @@ -1,116 +0,0 @@ -""" Python 2.7 wrapper for dmitool. -""" -from __future__ import print_function -import os -import re -from subprocess import Popen, PIPE - -_JAVA_PATH = ["java"] -_DMITOOL_CMD = ["-jar", os.path.dirname(os.path.realpath(__file__)) + "/dmitool.jar"] - - -def _dmitool_call(*dmitool_args, **popen_args): - return Popen(_JAVA_PATH + _DMITOOL_CMD + [str(arg) for arg in dmitool_args], **popen_args) - - -def parse_prop(dict, key, deferred_value): - try: - dict[key] = deferred_value() - except Exception as e: - raise Exception("Could not parse property '{}': {}".format(key, e)) - return False - - -def version(): - """ Returns the version as a string. """ - stdout, stderr = _dmitool_call("version", stdout=PIPE).communicate() - return str(stdout).strip() - - -def help(): - """ Returns the help text as a string. """ - stdout, stderr = _dmitool_call("help", stdout=PIPE).communicate() - return str(stdout).strip() - - -def info(filepath): - """ Totally not a hack that parses the output from dmitool into a dictionary. - May break at any moment. - """ - subproc = _dmitool_call("info", filepath, stdout=PIPE) - stdout, stderr = subproc.communicate() - - if subproc.returncode != 0: - print("Error in dmitool parsing {} - possibly empty or invalid DMI:\nstdout:\n{}\nstderr:\n{}".format(filepath, stdout, stderr)) - raise Exception("dmitool execution failed") - - result = {} - data = stdout.decode('UTF-8').split(os.linesep)[1:] - # for s in data: print s - - # parse header line - if len(data) > 0: - header = data.pop(0).split(",") - # don't need to parse states, it's redundant - parse_prop(result, "images", lambda: int(header[0].split()[0].strip())) - parse_prop(result, "size", lambda: header[2].split()[1].strip()) - - # parse state information - states = [] - for item in data: - if not len(item): - continue - - stateinfo = {} - item = [x.strip() for x in re.split(r', (?=(?:"[^"]*?(?: [^"]*)*))|, (?=[^",]+(?:,|$))', item)] - - frames = item[2].split()[0].strip() - parse_prop(stateinfo, "name", lambda: item[0].split()[1].strip(" \"")) - parse_prop(stateinfo, "dirs", lambda: int(item[1].split()[0].strip())) - parse_prop(stateinfo, "frames", lambda: frames if frames == 'loop(infinite)' else int(frames)) - if len(item) > 3: - stateinfo["misc"] = item[3] - - states.append(stateinfo) - - result["states"] = states - return result - - -def extract_state(input_path, output_path, icon_state, direction=None, frame=None): - """ Extracts an icon state as a png to a given path. - If provided direction should be a string, one of S, N, E, W, SE, SW, NE, NW. - If provided frame should be a frame number or a string of two frame number separated by a dash. - """ - args = ["extract", input_path, icon_state, output_path] - if direction is not None: - args.extend(("direction", str(direction))) - if frame is not None: - args.extend(("frame", str(frame))) - return _dmitool_call(*args) - - -def import_state(target_path, input_path, icon_state, replace=False, delays=None, rewind=False, loop=None, ismovement=False, direction=None, frame=None): - """ Inserts an input png given by the input_path into the target_path. - """ - args = ["import", target_path, icon_state, input_path] - - if replace: - args.append("nodup") - if rewind: - args.append("rewind") - if ismovement: - args.append("movement") - if delays: - args.extend(("delays", ",".join(delays))) - if direction is not None: - args.extend(("direction", direction)) - if frame is not None: - args.extend(("frame", frame)) - - if loop in ("inf", "infinity"): - args.append("loop") - elif loop: - args.extend(("loopn", loop)) - - return _dmitool_call(*args) diff --git a/tools/dmitool/git_merge_installer.bat b/tools/dmitool/git_merge_installer.bat deleted file mode 100644 index c7ba2fa23a..0000000000 --- a/tools/dmitool/git_merge_installer.bat +++ /dev/null @@ -1,6 +0,0 @@ -@echo off -set tab= -echo. >> ../../.git/config -echo [merge "merge-dmi"] >> ../../.git/config -echo %tab%name = iconfile merge driver >> ../../.git/config -echo %tab%driver = ./tools/dmitool/dmimerge.sh %%O %%A %%B >> ../../.git/config diff --git a/tools/dmitool/git_merge_installer.sh b/tools/dmitool/git_merge_installer.sh deleted file mode 100644 index e0c48823b1..0000000000 --- a/tools/dmitool/git_merge_installer.sh +++ /dev/null @@ -1,6 +0,0 @@ -F="../../.git/config" - -echo '' >> $F -echo '[merge "merge-dmi"]' >> $F -echo ' name = iconfile merge driver' >> $F -echo ' driver = ./tools/dmitool/dmimerge.sh %O %A %B' >> $F diff --git a/tools/dmitool/merging.txt b/tools/dmitool/merging.txt deleted file mode 100644 index 8aa1e2194e..0000000000 --- a/tools/dmitool/merging.txt +++ /dev/null @@ -1,14 +0,0 @@ -1. Install java(http://www.java.com/en/download/index.jsp) -2. Make sure java is in your PATH. To test this, open git bash, and type "java". If it says unknown command, you need to add JAVA/bin to your PATH variable (A guide for this can be found at https://www.java.com/en/download/help/path.xml ). - -Merging -The easiest way to do merging is to install the merge driver. For this, open `ColonialMarines/.git/config` in a text editor, and paste the following lines to the end of it: - -[merge "merge-dmi"] - name = iconfile merge driver - driver = ./tools/dmitool/dmimerge.sh %O %A %B - -You may optionally instead run git_merge_installer.bat or git_merge_installer.sh which should automatically insert these lines for you at the appropriate location. - -After this, merging DMI files should happen automagically unless there are conflicts (an icon_state that both you and someone else changed). -If there are conflicts, you will unfortunately still be stuck with opening both versions in the editor, and manually resolving the issues with those states. diff --git a/tools/dmitool/src/main/java/dmitool/DMI.java b/tools/dmitool/src/main/java/dmitool/DMI.java deleted file mode 100644 index 3235bca7b3..0000000000 --- a/tools/dmitool/src/main/java/dmitool/DMI.java +++ /dev/null @@ -1,458 +0,0 @@ -package dmitool; - -import ar.com.hjg.pngj.ImageInfo; -import ar.com.hjg.pngj.ImageLineInt; -import ar.com.hjg.pngj.PngReader; -import ar.com.hjg.pngj.PngWriter; -import ar.com.hjg.pngj.PngjInputException; -import ar.com.hjg.pngj.chunks.PngChunkPLTE; -import java.io.ByteArrayInputStream; -import java.io.ByteArrayOutputStream; -import java.io.DataInputStream; -import java.io.DataOutputStream; -import java.io.File; -import java.io.FileInputStream; -import java.io.FileNotFoundException; -import java.io.IOException; -import java.io.InputStream; -import java.io.OutputStream; -import java.util.ArrayDeque; -import java.util.ArrayList; -import java.util.Collections; -import java.util.Comparator; -import java.util.Deque; -import java.util.HashMap; -import java.util.List; - -public class DMI implements Comparator { - int w, h; - List images; - int totalImages = 0; - RGBA[] palette; - boolean isPaletted; - - public DMI(int w, int h) { - this.w = w; - this.h = h; - images = new ArrayList<>(); - isPaletted = false; - palette = null; - } - - public DMI(String f) throws DMIException, FileNotFoundException { - this(new File(f)); - } - - public DMI(File f) throws DMIException, FileNotFoundException { - if(!f.canRead()) { - throw new FileNotFoundException("File cannot be found or is unreadable!"); - } - if(f.length() == 0) { // Empty .dmi is empty file - w = 32; - h = 32; - images = new ArrayList<>(); - isPaletted = false; - palette = null; - return; - } - InputStream in = new FileInputStream(f); - PngReader pngr; - try { - pngr = new PngReader(in); - } catch(PngjInputException pie) { - throw new DMIException("Bad file format!", pie); - } - String descriptor = pngr.getMetadata().getTxtForKey("Description"); - String[] lines = descriptor.split("\n"); - - if(Main.VERBOSITY > 0) System.out.println("Descriptor has " + lines.length + " lines."); - if(Main.VERBOSITY > 3) { - System.out.println("Descriptor:"); - System.out.println(descriptor); - } - - /* length 6 is: - # BEGIN DMI - version = 4.0 - state = "state" - dirs = 1 - frames = 1 - # END DMI - */ - if(lines.length < 6) throw new DMIException(null, 0, "Descriptor too short!"); - - if(!"# BEGIN DMI".equals(lines[0])) throw new DMIException(lines, 0, "Expected '# BEGIN DMI'"); - if(!"# END DMI".equals(lines[lines.length-1])) throw new DMIException(lines, lines.length-1, "Expected '# END DMI'"); - if(!"version = 4.0".equals(lines[1])) throw new DMIException(lines, 1, "Unknown version, expected 'version = 4.0'"); - - this.w = 32; - this.h = 32; - - int i = 2; - - if(lines[i].startsWith("\twidth = ")) { - this.w = Integer.parseInt(lines[2].substring("\twidth = ".length())); - i++; - } - if(lines[i].startsWith("\theight = ")) { - this.h = Integer.parseInt(lines[3].substring("\theight = ".length())); - i++; - } - - List states = new ArrayList<>(); - - while(i < lines.length - 1) { - long imagesInState = 1; - if(!lines[i].startsWith("state = \"") || !lines[i].endsWith("\"")) throw new DMIException(lines, i, "Error reading state string"); - String stateName = lines[i].substring("state = \"".length(), lines[i].length()-1); - i++; - int dirs = 1; - int frames = 1; - float[] delays = null; - boolean rewind = false; - int loop = -1; - String hotspot = null; - boolean movement = false; - while(lines[i].startsWith("\t")) { - if(lines[i].startsWith("\tdirs = ")) { - dirs = Integer.parseInt(lines[i].substring("\tdirs = ".length())); - imagesInState *= dirs; - i++; - } else if(lines[i].startsWith("\tframes = ")) { - frames = Integer.parseInt(lines[i].substring("\tframes = ".length())); - imagesInState *= frames; - i++; - } else if(lines[i].startsWith("\tdelay = ")) { - String delayString = lines[i].substring("\tdelay = ".length()); - String[] delayVals = delayString.split(","); - delays = new float[delayVals.length]; - for(int d=0; d 0) System.out.println(pal.getNentries() + " palette entries"); - - palette = new RGBA[pal.getNentries()]; - int[] rgb = new int[3]; - for(int q=0; q 0) System.out.println("Non-paletted image"); - } - - int iw = pngr.imgInfo.cols; - int ih = pngr.imgInfo.rows; - - if(totalImages > iw * ih) - throw new DMIException(null, 0, "Impossible number of images!"); - - if(Main.VERBOSITY > 0) System.out.println("Image size " + iw+"x"+ih); - int[][] px = new int[ih][]; - - for(int y=0; y statesY) - // this should NEVER happen, we pre-check it - throw new DMIException(null, 0, "CRITICAL: End of image reached with states to go!"); - } - } - if(is.delays != null) { - if((Main.STRICT && is.delays.length*is.dirs != img.length) || is.delays.length*is.dirs < img.length) - throw new DMIException(null, 0, "Delay array size mismatch: " + is.delays.length*is.dirs + " vs " + img.length + "!"); - } - is.images = img; - } - } - - public IconState getIconState(String name) { - for(IconState is: images) { - if(is.name.equals(name)) { - return is; - } - } - return null; - } - - /** - * Makes a copy, unless name is null. - */ - public void addIconState(String name, IconState is) { - if(name == null) { - images.add(is); - totalImages += is.dirs * is.frames; - } else { - IconState newState = (IconState)is.clone(); - newState.name = name; - images.add(newState); - totalImages += is.dirs * is.frames; - } - } - - public boolean removeIconState(String name) { - for(IconState is: images) { - if(is.name.equals(name)) { - images.remove(is); - totalImages -= is.dirs * is.frames; - return true; - } - } - return false; - } - - public boolean setIconState(IconState is) { - for(int i=0; i 0) System.out.println("Fixing PNG chunks..."); - out.writeInt(in.readInt()); - out.writeInt(in.readInt()); - - Deque notZTXT = new ArrayDeque<>(); - - PNGChunk c = null; - - while(c == null || c.type != IEND) { - c = new PNGChunk(in); - if(c.type == zTXt && notZTXT != null) { - PNGChunk cc = null; - while(cc == null || cc.type != IHDR) { - cc = notZTXT.pop(); - cc.write(out); - } - c.write(out); - while(notZTXT.size() != 0) { - PNGChunk pc = notZTXT.pop(); - pc.write(out); - } - notZTXT = null; - } else if(notZTXT != null) { - notZTXT.add(c); - } else { - c.write(out); - } - } - if(Main.VERBOSITY > 0) System.out.println("Chunks fixed."); - } - - @Override public int compare(IconState arg0, IconState arg1) { - return arg0.name.compareTo(arg1.name); - } - - public void writeDMI(OutputStream os) throws IOException { - writeDMI(os, false); - } - public void writeDMI(OutputStream os, boolean sortStates) throws IOException { - if(totalImages == 0) { // Empty .dmis are empty files - os.close(); - return; - } - - // Setup chunk-fix buffer - ByteArrayOutputStream baos = new ByteArrayOutputStream(); - - if(sortStates) { - Collections.sort(images, this); - } - - // Write the dmi into the buffer - int sx = (int)Math.ceil(Math.sqrt(totalImages)); - int sy = totalImages / sx; - if(sx*sy < totalImages) { - sy++; - } - if(Main.VERBOSITY > 0) System.out.println("Image size: " + w + "x" + h + "; number of images " + sx + "x" + sy + " (" + totalImages + ")"); - int ix = sx * w; - int iy = sy * h; - ImageInfo ii = new ImageInfo(ix, iy, 8, true); - PngWriter out = new PngWriter(baos, ii); - out.setCompLevel(9); // Maximum compression - String description = getDescriptor(); - if(Main.VERBOSITY > 0) System.out.println("Descriptor has " + (description.split("\n").length) + " lines."); - out.getMetadata().setText("Description", description, true, true); - - Image[][] img = new Image[sx][sy]; - { - int k = 0; - int r = 0; - for(IconState is: images) { - for(Image i: is.images) { - img[k++][r] = i; - - if(k == sx) { - k = 0; - r++; - } - } - } - } - - for(int irow=0; irow myIS = new HashMap<>(); - HashMap dmiIS = new HashMap<>(); - - for(IconState is: images) { - myIS.put(is.name, is); - } - for(IconState is: dmi.images) { - dmiIS.put(is.name, is); - } - if(!myIS.keySet().equals(dmiIS.keySet())) return false; - for(String s: myIS.keySet()) { - if(!myIS.get(s).equals(dmiIS.get(s))) return false; - } - - return true; - } -} diff --git a/tools/dmitool/src/main/java/dmitool/DMIDiff.java b/tools/dmitool/src/main/java/dmitool/DMIDiff.java deleted file mode 100644 index 431d9c1d15..0000000000 --- a/tools/dmitool/src/main/java/dmitool/DMIDiff.java +++ /dev/null @@ -1,194 +0,0 @@ -package dmitool; - -import java.util.Arrays; -import java.util.HashMap; -import java.util.HashSet; -import java.util.Map; -import java.util.Set; - -public class DMIDiff { - Map newIconStates; - Map modifiedIconStates = new HashMap<>(); - Set removedIconStates; - - DMIDiff() { - newIconStates = new HashMap<>(); - removedIconStates = new HashSet<>(); - } - - public DMIDiff(DMI base, DMI mod) { - if(base.h != mod.h || base.w != mod.w) throw new IllegalArgumentException("Cannot compare non-identically-sized DMIs!"); - - HashMap baseIS = new HashMap<>(); - for(IconState is: base.images) { - baseIS.put(is.name, is); - } - - HashMap modIS = new HashMap<>(); - for(IconState is: mod.images) { - modIS.put(is.name, is); - } - - newIconStates = ((HashMap)modIS.clone()); - for(String s: baseIS.keySet()) { - newIconStates.remove(s); - } - - removedIconStates = new HashSet<>(); - removedIconStates.addAll(baseIS.keySet()); - removedIconStates.removeAll(modIS.keySet()); - - Set retainedStates = new HashSet<>(); - retainedStates.addAll(baseIS.keySet()); - retainedStates.retainAll(modIS.keySet()); - - for(String s: retainedStates) { - if(!baseIS.get(s).equals(modIS.get(s))) { - modifiedIconStates.put(s, new IconStateDiff(baseIS.get(s), modIS.get(s))); - } - } - } - /** - * ASSUMES NO MERGE CONFLICTS - MERGE DIFFS FIRST. - */ - public void applyToDMI(DMI dmi) { - for(String s: removedIconStates) { - dmi.removeIconState(s); - } - for(String s: modifiedIconStates.keySet()) { - dmi.setIconState(modifiedIconStates.get(s).newState); - } - for(String s: newIconStates.keySet()) { - dmi.addIconState(null, newIconStates.get(s)); - } - } - - /** - * @param other The diff to merge with - * @param conflictDMI A DMI to add conflicted icon_states to - * @param merged An empty DMIDiff to merge into - * @param aName The log name for this diff - * @param bName The log name for {@code other} - * @return A Set containing all icon_states which conflicted, along with what was done in each diff, in the format "icon_state: here|there"; here and there are one of "added", "modified", and "removed" - */ - public Set mergeDiff(DMIDiff other, DMI conflictDMI, DMIDiff merged, String aName, String bName) { - HashSet myTouched = new HashSet<>(); - myTouched.addAll(removedIconStates); - myTouched.addAll(newIconStates.keySet()); - myTouched.addAll(modifiedIconStates.keySet()); - - HashSet otherTouched = new HashSet<>(); - otherTouched.addAll(other.removedIconStates); - otherTouched.addAll(other.newIconStates.keySet()); - otherTouched.addAll(other.modifiedIconStates.keySet()); - - HashSet bothTouched = (HashSet)myTouched.clone(); - bothTouched.retainAll(otherTouched); // this set now contains the list of icon_states that *both* diffs modified, which we'll put in conflictDMI for manual merge (unless they were deletions - - if(Main.VERBOSITY > 0) { - System.out.println("a: " + Arrays.toString(myTouched.toArray())); - System.out.println("b: " + Arrays.toString(otherTouched.toArray())); - System.out.println("both: " + Arrays.toString(bothTouched.toArray())); - } - - HashSet whatHappened = new HashSet<>(); - - for(String s: bothTouched) { - String here, there; - if(removedIconStates.contains(s)) { - here = "removed"; - } else if(newIconStates.containsKey(s)) { - here = "added"; - } else if(modifiedIconStates.containsKey(s)) { - here = "modified"; - } else { - System.out.println("Unknown error; state="+s); - here = "???"; - } - - if(other.removedIconStates.contains(s)) { - there = "removed"; - } else if(other.newIconStates.containsKey(s)) { - there = "added"; - } else if(other.modifiedIconStates.containsKey(s)) { - there = "modified"; - } else { - System.out.println("Unknown error; state="+s); - there = "???"; - } - - whatHappened.add(s + ": " + here + "|" + there); - } - - // Removals - for(String s: removedIconStates) { - if(!bothTouched.contains(s)) { - merged.removedIconStates.add(s); - } - } - for(String s: other.removedIconStates) { - if(!bothTouched.contains(s)) { - merged.removedIconStates.add(s); - } - } - - // Modifications - for(String s: modifiedIconStates.keySet()) { - if(!bothTouched.contains(s)) { - merged.modifiedIconStates.put(s, modifiedIconStates.get(s)); - } else { - conflictDMI.addIconState(aName + "|" + s, modifiedIconStates.get(s).newState); - } - } - for(String s: other.modifiedIconStates.keySet()) { - if(!bothTouched.contains(s)) { - merged.modifiedIconStates.put(s, other.modifiedIconStates.get(s)); - } else { - conflictDMI.addIconState(bName + "|" + s, other.modifiedIconStates.get(s).newState); - } - } - - // Additions - for(String s: newIconStates.keySet()) { - if(!bothTouched.contains(s)) { - merged.newIconStates.put(s, newIconStates.get(s)); - } else { - conflictDMI.addIconState(aName + s, newIconStates.get(s)); - } - } - for(String s: other.newIconStates.keySet()) { - if(!bothTouched.contains(s)) { - merged.newIconStates.put(s, other.newIconStates.get(s)); - } else { - conflictDMI.addIconState(bName + s, other.newIconStates.get(s)); - } - } - - return whatHappened; - } - - @Override public String toString() { - String s = ""; - String t = "\t"; - String q = "\""; - String n = "\n"; - if(!removedIconStates.isEmpty()) { - s += "Removed:\n"; - for(String state: removedIconStates) - s += t + q + state + q + n; - } - if(!modifiedIconStates.isEmpty()) { - s += "Modified:\n"; - for(String state: modifiedIconStates.keySet()) - s += t + q + state + q + " [" + modifiedIconStates.get(state).toString() + "]\n"; - } - if(!newIconStates.isEmpty()) { - s += "Added:\n"; - for(String state: newIconStates.keySet()) - s += t + q + state + q + " " + newIconStates.get(state).infoStr() + n; - } - if("".equals(s)) - return "No changes"; - return s; - } -} \ No newline at end of file diff --git a/tools/dmitool/src/main/java/dmitool/DMIException.java b/tools/dmitool/src/main/java/dmitool/DMIException.java deleted file mode 100644 index e929316289..0000000000 --- a/tools/dmitool/src/main/java/dmitool/DMIException.java +++ /dev/null @@ -1,24 +0,0 @@ -package dmitool; - -public class DMIException extends Exception { - String[] desc = null; - int line = 0; - public DMIException(String[] descriptor, int line, String what) { - super(what); - desc = descriptor; - this.line = line; - } - public DMIException(String what) { - super(what); - } - public DMIException(String what, Exception cause) { - super(what, cause); - } - - @Override public String getMessage() { - if(desc != null) - return "\"" + desc[line] + "\" - " + super.getMessage(); - - return super.getMessage(); - } -} \ No newline at end of file diff --git a/tools/dmitool/src/main/java/dmitool/IconState.java b/tools/dmitool/src/main/java/dmitool/IconState.java deleted file mode 100644 index d0b7e20646..0000000000 --- a/tools/dmitool/src/main/java/dmitool/IconState.java +++ /dev/null @@ -1,281 +0,0 @@ -package dmitool; - -import java.util.Arrays; -import ar.com.hjg.pngj.ImageInfo; -import ar.com.hjg.pngj.ImageLineInt; -import ar.com.hjg.pngj.PngWriter; -import ar.com.hjg.pngj.PngReader; -import ar.com.hjg.pngj.PngjInputException; -import java.io.InputStream; -import java.io.OutputStream; - -public class IconState { - String name; - int dirs; - int frames; - float[] delays; - Image[] images; // dirs come first - boolean rewind; - int loop; - String hotspot; - boolean movement; - - public String getInfoLine() { - String extraInfo = ""; - if(rewind) extraInfo += " rewind"; - if(frames != 1) { - extraInfo += " loop(" + (loop==-1 ? "infinite" : loop) + ")"; - } - if(hotspot != null) extraInfo += " hotspot('" + hotspot + "')"; - if(movement) extraInfo += " movement"; - if(extraInfo.equals("")) { - return String.format("state \"%s\", %d dir(s), %d frame(s)", name, dirs, frames); - } else { - return String.format("state \"%s\", %d dir(s), %d frame(s),%s", name, dirs, frames, extraInfo); - } - } - - @Override public IconState clone() { - IconState is = new IconState(name, dirs, frames, images.clone(), delays==null ? null : delays.clone(), rewind, loop, hotspot, movement); - is.delays = delays != null ? delays.clone() : null; - is.rewind = rewind; - - return is; - } - - public IconState(String name, int dirs, int frames, Image[] images, float[] delays, boolean rewind, int loop, String hotspot, boolean movement) { - if(delays != null) { - if(Main.STRICT && delays.length != frames) { - throw new IllegalArgumentException("Delays and frames must be the same length!"); - } - } - this.name = name; - this.dirs = dirs; - this.frames = frames; - this.images = images; - this.rewind = rewind; - this.loop = loop; - this.hotspot = hotspot; - this.delays = delays; - this.movement = movement; - } - void setDelays(float[] delays) { - this.delays = delays; - } - void setRewind(boolean b) { - rewind = b; - } - @Override public boolean equals(Object obj) { - if(obj == this) return true; - if(!(obj instanceof IconState)) return false; - - IconState is = (IconState)obj; - - if(!is.name.equals(name)) return false; - if(is.dirs != dirs) return false; - if(is.frames != frames) return false; - if(!Arrays.equals(images, is.images)) return false; - if(is.rewind != rewind) return false; - if(is.loop != loop) return false; - if(!Arrays.equals(delays, is.delays)) return false; - if(!(is.hotspot == null ? hotspot == null : is.hotspot.equals(hotspot))) return false; - if(is.movement != movement) return false; - - return true; - } - public String infoStr() { - return "[" + frames + " frame(s), " + dirs + " dir(s)]"; - } - public String getDescriptorFragment() { - String s = ""; - String q = "\""; - String n = "\n"; - s += "state = " + q + name + q + n; - s += "\tdirs = " + dirs + n; - s += "\tframes = " + frames + n; - if(delays != null) { - s += "\tdelay = " + delayArrayToString(delays) + n; - } - if(rewind) { - s += "\trewind = 1\n"; - } - if(loop != -1) { - s += "\tloop = " + loop + n; - } - if(hotspot != null) { - s += "\thotspot = " + hotspot + n; - } - if(movement) { - s += "\tmovement = 1\n"; - } - return s; - } - - private static String delayArrayToString(float[] d) { - String s = ""; - for(float f: d) { - s += ","+f; - } - return s.substring(1); - } - - /** - * Dump the state to the given OutputStream in PNG format. Frames will be dumped along the X axis of the image, and directions will be dumped along the Y. - */ - public void dumpToPNG(OutputStream outS, int minDir, int maxDir, int minFrame, int maxFrame) { - int totalDirs = maxDir - minDir + 1; - int totalFrames = maxFrame - minFrame + 1; - - int w = images[minDir + minFrame * this.dirs].w; - int h = images[minDir + minFrame * this.dirs].h; - - if(Main.VERBOSITY > 0) System.out.println("Writing " + totalDirs + " dir(s), " + totalFrames + " frame(s), " + totalDirs*totalFrames + " image(s) total."); - ImageInfo ii = new ImageInfo(totalFrames * w, totalDirs * h, 8, true); - PngWriter out = new PngWriter(outS, ii); - out.setCompLevel(9); - - Image[][] img = new Image[totalFrames][totalDirs]; - { - for(int i=0; i= frames) - throw new IllegalArgumentException("Provided frame is out of range: " + frame); - if(dir < 0 || dir >= dirs) - throw new IllegalArgumentException("Provided dir is out of range: " + dir); - - images[getIndex(dir, frame)] = splice; - } -} - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - diff --git a/tools/dmitool/src/main/java/dmitool/IconStateDiff.java b/tools/dmitool/src/main/java/dmitool/IconStateDiff.java deleted file mode 100644 index a5d30db7fe..0000000000 --- a/tools/dmitool/src/main/java/dmitool/IconStateDiff.java +++ /dev/null @@ -1,126 +0,0 @@ -package dmitool; - -import java.util.HashMap; -import java.util.HashSet; - -public class IconStateDiff { - static class ISAddress { - int dir; - int frame; - - public ISAddress(int dir, int frame) { - this.dir = dir; - this.frame = frame; - } - - public String infoStr(int maxDir, int maxFrame) { - if(maxDir == 1 && maxFrame == 1) { - return ""; - } else if(maxDir == 1) { - return "{" + frame + "}"; - } else if(maxFrame == 1) { - return "{" + Main.dirs[dir] + "}"; - } else { - return "{" + Main.dirs[dir] + " " + frame + "}"; - } - } - } - int oldFrameCount = 0; - int oldDirectionCount = 0; - boolean oldRewind = false; - int oldLoop = -1; - String oldHotspot = null; - - int newFrameCount = 0; - int newDirectionCount = 0; - boolean newRewind = false; - int newLoop = -1; - String newHotspot = null; - - IconState newState; - HashMap modifiedFrames = new HashMap<>(); - HashMap newFrames = new HashMap<>(); - HashSet removedFrames = new HashSet<>(); - - public IconStateDiff(IconState base, IconState mod) { - int maxDir = Math.max(base.dirs, mod.dirs); - int maxFrame = Math.max(base.frames, mod.frames); - - oldFrameCount = base.frames; - oldDirectionCount = base.dirs; - oldRewind = base.rewind; - oldLoop = base.loop; - oldHotspot = base.hotspot; - - newFrameCount = mod.frames; - newDirectionCount = mod.dirs; - newRewind = mod.rewind; - newLoop = mod.loop; - newHotspot = mod.hotspot; - - newState = mod; - - Image baseI, modI; - for(int d=0; d d && base.frames > f) { - baseI = base.images[f * base.dirs + d]; - } else baseI = null; - if(mod.dirs > d && mod.frames > f) { - modI = mod.images[f * mod.dirs + d]; - } else modI = null; - - if(baseI == null && modI == null) continue; - - if(baseI == null) newFrames.put(new ISAddress(d, f), modI); - else if(modI == null) removedFrames.add(new ISAddress(d, f)); - else if(!baseI.equals(modI)) { - modifiedFrames.put(new ISAddress(d, f), modI); - } - } - } - } - - @Override public String toString() { - String s = ""; - String tmp; - - if(newDirectionCount != oldDirectionCount) - s += " | dirs " + oldDirectionCount + "->" + newDirectionCount; - - if(newFrameCount != oldFrameCount) - s += " | frames " + oldFrameCount + "->" + newFrameCount; - - if(newRewind != oldRewind) { - s += " | rewind " + oldRewind + "->" + newRewind; - } - - if(newLoop != oldLoop) { - s += " | loop " + oldLoop + "->" + newLoop; - } - - if(newHotspot == null ? oldHotspot != null : !newHotspot.equals(oldHotspot)) { - s += " | hotspot " + oldHotspot + "->" + newHotspot; - } - - if(!modifiedFrames.isEmpty()) { - int total_frames = Math.min(oldFrameCount, newFrameCount) * Math.min(oldDirectionCount, newDirectionCount); - tmp = ""; - for(ISAddress isa: modifiedFrames.keySet()) { - String str = isa.infoStr(oldDirectionCount, oldFrameCount); - if(!"".equals(str)) { - tmp += ", " + str; - } - } - if(!"".equals(tmp)) { - s += " | modified " + modifiedFrames.size() + " of " + total_frames + ": " + tmp.substring(1); - } else { - s += " | modified " + modifiedFrames.size() + " of " + total_frames; - } - } - - if("".equals(s)) - return "No change"; - return s.substring(3); - } -} \ No newline at end of file diff --git a/tools/dmitool/src/main/java/dmitool/Image.java b/tools/dmitool/src/main/java/dmitool/Image.java deleted file mode 100644 index 2ea7ff4192..0000000000 --- a/tools/dmitool/src/main/java/dmitool/Image.java +++ /dev/null @@ -1,32 +0,0 @@ -package dmitool; - -import java.io.IOException; -import java.io.OutputStream; - -public abstract class Image { - int w, h; - - abstract RGBA getPixel(int x, int y); - - public Image(int w, int h) { - this.w = w; - this.h = h; - } - - @Override public boolean equals(Object obj) { - if(obj == this) return true; - if(!(obj instanceof Image)) return false; - - Image im = (Image) obj; - - if(w != im.w || h != im.h) return false; - - for(int i=0; i argq = new ArrayDeque<>(); - for(String s: args) { - argq.addLast(s); - } - if(argq.size() == 0) { - System.out.println("No command found; use 'help' for help"); - return; - } - String switches = argq.peekFirst(); - if(switches.startsWith("-")) { - for(char c: switches.substring(1).toCharArray()) { - switch(c) { - case 'v': VERBOSITY++; break; - case 'q': VERBOSITY--; break; - case 'S': STRICT = true; break; - } - } - argq.pollFirst(); - } - String op = argq.pollFirst(); - - switch(op) { - case "diff": { - if(argq.size() < 2) { - System.out.println("Insufficient arguments for command!"); - System.out.println(helpStr); - return; - } - String a = argq.pollFirst(); - String b = argq.pollFirst(); - - if(VERBOSITY >= 0) System.out.println("Loading " + a); - DMI dmi = doDMILoad(a); - if(VERBOSITY >= 0) dmi.printInfo(); - - if(VERBOSITY >= 0) System.out.println("Loading " + b); - DMI dmi2 = doDMILoad(b); - if(VERBOSITY >= 0) dmi2.printInfo(); - - DMIDiff dmid = new DMIDiff(dmi, dmi2); - System.out.println(dmid); - break; - } - case "sort": { - if(argq.size() < 1) { - System.out.println("Insufficient arguments for command!"); - System.out.println(helpStr); - return; - } - String f = argq.pollFirst(); - - if(VERBOSITY >= 0) System.out.println("Loading " + f); - DMI dmi = doDMILoad(f); - if(VERBOSITY >= 0) dmi.printInfo(); - - if(VERBOSITY >= 0) System.out.println("Saving " + f); - dmi.writeDMI(new FileOutputStream(f), true); - break; - } - case "merge": { - if(argq.size() < 4) { - System.out.println("Insufficient arguments for command!"); - System.out.println(helpStr); - return; - } - String baseF = argq.pollFirst(), - aF = argq.pollFirst(), - bF = argq.pollFirst(), - mergedF = argq.pollFirst(); - if(VERBOSITY >= 0) System.out.println("Loading " + baseF); - DMI base = doDMILoad(baseF); - if(VERBOSITY >= 0) base.printInfo(); - - if(VERBOSITY >= 0) System.out.println("Loading " + aF); - DMI aDMI = doDMILoad(aF); - if(VERBOSITY >= 0) aDMI.printInfo(); - - if(VERBOSITY >= 0) System.out.println("Loading " + bF); - DMI bDMI = doDMILoad(bF); - if(VERBOSITY >= 0) bDMI.printInfo(); - - DMIDiff aDiff = new DMIDiff(base, aDMI); - DMIDiff bDiff = new DMIDiff(base, bDMI); - DMIDiff mergedDiff = new DMIDiff(); - DMI conflictDMI = new DMI(32, 32); - - Set cf = aDiff.mergeDiff(bDiff, conflictDMI, mergedDiff, aF, bF); - - mergedDiff.applyToDMI(base); - - base.writeDMI(new FileOutputStream(mergedF)); - - if(!cf.isEmpty()) { - if(VERBOSITY >= 0) for(String s: cf) { - System.out.println(s); - } - conflictDMI.writeDMI(new FileOutputStream(mergedF + ".conflict.dmi"), true); - System.out.println("Add/modify conflicts placed in '" + mergedF + ".conflict.dmi'"); - System.exit(1); // Git expects non-zero on merge conflict - } else { - System.out.println("No conflicts"); - System.exit(0); - } - break; - } - case "extract": { - if(argq.size() < 3) { - System.out.println("Insufficient arguments for command!"); - System.out.println(helpStr); - return; - } - String file = argq.pollFirst(), - state = argq.pollFirst(), - outFile = argq.pollFirst(); - - DMI dmi = doDMILoad(file); - if(VERBOSITY >= 0) dmi.printInfo(); - - IconState is = dmi.getIconState(state); - if(is == null) { - System.out.println("icon_state '"+state+"' does not exist!"); - return; - } - // minDir, Maxdir, minFrame, Maxframe - int mDir=0, Mdir=is.dirs-1; - int mFrame=0, Mframe=is.frames-1; - - while(argq.size() > 1) { - String arg = argq.pollFirst(); - - switch(arg) { - case "d": - case "dir": - case "dirs": - case "direction": - case "directions": - String dString = argq.pollFirst(); - if(dString.contains("-")) { - String[] splitD = dString.split("-"); - if(splitD.length == 2) { - mDir = parseDir(splitD[0], is); - Mdir = parseDir(splitD[1], is); - } else { - System.out.println("Illegal dir string: '" + dString + "'!"); - return; - } - } else { - mDir = parseDir(dString, is); - Mdir = mDir; - } - // Invalid value check, warnings are printed in parseDir() - if(mDir == -1 || Mdir == -1) return; - if(Mdir < mDir) { - System.out.println("Maximum dir greater than minimum dir!"); - System.out.println("Textual direction order is S, N, E, W, SE, SW, NE, NW increasing 0 (S) to 7 (NW)"); - return; - } - break; - case "f": - case "frame": - case "frames": - String fString = argq.pollFirst(); - if(fString.contains("-")) { - String[] splitF = fString.split("-"); - if(splitF.length == 2) { - mFrame = parseFrame(splitF[0], is); - Mframe = parseFrame(splitF[1], is); - } else { - System.out.println("Illegal frame string: '" + fString + "'!"); - return; - } - } else { - mFrame = parseFrame(fString, is); - Mframe = mFrame; - } - // Invalid value check, warnings are printed in parseFrame() - if(mFrame == -1 || Mframe == -1) return; - if(Mframe < mFrame) { - System.out.println("Maximum frame greater than minimum frame!"); - return; - } - break; - default: - System.out.println("Unknown argument '" + arg + "' detected, ignoring."); - } - } - if(!argq.isEmpty()) { - System.out.println("Extra argument '" + argq.pollFirst() + "' detected, ignoring."); - } - is.dumpToPNG(new FileOutputStream(outFile), mDir, Mdir, mFrame, Mframe); - break; - } - case "import": { - if(argq.size() < 3) { - System.out.println("Insufficient arguments for command!"); - System.out.println(helpStr); - return; - } - String dmiFile = argq.pollFirst(), - stateName = argq.pollFirst(), - pngFile = argq.pollFirst(); - - boolean noDup = false; - boolean rewind = false; - int loop = 0; - boolean movement = false; - String hotspot = null; - float[] delays = null; - String replaceDir = null; - String replaceFrame = null; - while(!argq.isEmpty()) { - String s = argq.pollFirst(); - switch(s.toLowerCase()) { - case "nodup": - case "nd": - case "n": - noDup = true; - break; - case "rewind": - case "rw": - case "r": - rewind = true; - break; - case "loop": - case "lp": - case "l": - loop = -1; - break; - case "loopn": - case "lpn": - case "ln": - if(!argq.isEmpty()) { - String loopTimes = argq.pollFirst(); - try { - loop = Integer.parseInt(loopTimes); - } catch(NumberFormatException nfe) { - System.out.println("Illegal number '" + loopTimes + "' as argument to '" + s + "'!"); - return; - } - } else { - System.out.println("Argument '" + s + "' requires a numeric argument following it!"); - return; - } - break; - case "movement": - case "move": - case "mov": - case "m": - movement = true; - break; - case "delays": - case "delay": - case "del": - case "d": - if(!argq.isEmpty()) { - String delaysString = argq.pollFirst(); - String[] delaysSplit = delaysString.split(","); - delays = new float[delaysSplit.length]; - for(int i=0; i= 0) System.out.println("Loading " + dmiFile); - DMI toImportTo = doDMILoad(dmiFile); - if(VERBOSITY >= 0) toImportTo.printInfo(); - IconState is = IconState.importFromPNG(toImportTo, new FileInputStream(pngFile), stateName, delays, rewind, loop, hotspot, movement); - - //image insertion - if(replaceDir != null || replaceFrame != null) { - - IconState targetIs = toImportTo.getIconState(stateName); - if(targetIs == null) { - System.out.println("'direction' or 'frame' specified and no icon state '" + stateName + "' found, aborting!"); - return; - } - if(is.images.length == 0) { - System.out.println("'direction' or 'frame' specified and imported is empty, aborting!"); - return; - } - - if(!noDup) targetIs = targetIs.clone(); - - int dirToReplace, frameToReplace; - if(replaceDir != null && replaceFrame != null) { - frameToReplace = parseFrame(replaceFrame, targetIs); - dirToReplace = parseDir(replaceDir, targetIs); - targetIs.insertImage(dirToReplace, frameToReplace, is.images[0]); - } - else if(replaceDir != null) { - dirToReplace = parseDir(replaceDir, targetIs); - targetIs.insertDir(dirToReplace, is.images); - } - else if(replaceFrame != null) { - frameToReplace = parseFrame(replaceFrame, targetIs); - targetIs.insertFrame(frameToReplace, is.images); - } - - if(!noDup) toImportTo.addIconState(null, targetIs); - } - else { - if(noDup) { - if(!toImportTo.setIconState(is)) { - toImportTo.addIconState(null, is); - } - } else { - toImportTo.addIconState(null, is); - } - } - - if(VERBOSITY >= 0) toImportTo.printInfo(); - - if(VERBOSITY >= 0) System.out.println("Saving " + dmiFile); - toImportTo.writeDMI(new FileOutputStream(dmiFile)); - break; - } - case "verify": { - if(argq.size() < 1) { - System.out.println("Insufficient arguments for command!"); - System.out.println(helpStr); - return; - } - String vF = argq.pollFirst(); - if(VERBOSITY >= 0) System.out.println("Loading " + vF); - DMI v = doDMILoad(vF); - if(VERBOSITY >= 0) v.printInfo(); - break; - } - case "info": { - if(argq.size() < 1) { - System.out.println("Insufficient arguments for command!"); - System.out.println(helpStr); - return; - } - String infoFile = argq.pollFirst(); - if(VERBOSITY >= 0) System.out.println("Loading " + infoFile); - DMI info = doDMILoad(infoFile); - info.printInfo(); - info.printStateList(); - break; - } - case "version": - System.out.println(VERSION); - return; - default: - System.out.println("Command '" + op + "' not found!"); - case "help": - System.out.println(helpStr); - break; - } - } - - static int parseDir(String s, IconState is) { - try { - int i = Integer.parseInt(s); - if(0 <= i && i < is.dirs) { - return i; - } else { - System.out.println("Direction not in valid range [0, "+(is.dirs-1)+"]!"); - return -1; - } - } catch(NumberFormatException nfe) { - for(int q=0; q