From c7c2e4b531af74fc3942e0f401301c157dec85e6 Mon Sep 17 00:00:00 2001 From: Arkatos1 <43862960+Arkatos1@users.noreply.github.com> Date: Sun, 29 Mar 2020 23:00:39 +0200 Subject: [PATCH] Mouse pointer icons cleanup (#50241) About The Pull Request This PR reorganizes all mouse pointers icons in the codebase into a single folder under /effects, and removes 4 unused mouse pointer icons, all of which are remnants of the Clockwork Cult. Also removes one rogue white pixel in blind_target.dmi. Why It's Good For The Game Better organization and less space taken by unused icons. Changelog cl Arkatos code: Mouse pointer icons were reorganized to be more easily used in the future. /cl --- code/game/mecha/combat/combat.dm | 4 ++-- code/game/mecha/mecha_defense.dm | 2 +- code/modules/antagonists/cult/blood_magic.dm | 2 +- code/modules/antagonists/cult/cult_comms.dm | 8 ++++---- .../traitor/equipment/Malf_Modules.dm | 4 ++-- code/modules/cargo/centcom_podlauncher.dm | 4 ++-- .../living/simple_animal/hostile/giant_spider.dm | 2 +- code/modules/spells/spell_types/blind.dm | 2 +- code/modules/spells/spell_types/mind_transfer.dm | 2 +- code/modules/spells/spell_types/pointed.dm | 2 +- code/modules/vehicles/cars/clowncar.dm | 2 +- icons/effects/blind_target.dmi | Bin 366 -> 0 bytes icons/effects/compromise_target.dmi | Bin 718 -> 0 bytes icons/effects/mouse_pointers/blind_target.dmi | Bin 0 -> 358 bytes .../effects/{ => mouse_pointers}/cult_target.dmi | Bin .../mouse_pointers}/mecha_mouse-disable.dmi | Bin .../mouse_pointers}/mecha_mouse.dmi | Bin .../{ => mouse_pointers}/mindswap_target.dmi | Bin .../overload_machine_target.dmi | Bin .../override_machine_target.dmi | Bin .../supplypod_down_target.dmi | Bin .../{ => mouse_pointers}/supplypod_target.dmi | Bin .../{ => mouse_pointers}/throw_target.dmi | Bin .../effects/{ => mouse_pointers}/wrap_target.dmi | Bin icons/effects/vanguard_target.dmi | Bin 412 -> 0 bytes icons/effects/visor_reticule.dmi | Bin 960 -> 0 bytes icons/effects/volt_target.dmi | Bin 1517 -> 0 bytes 27 files changed, 17 insertions(+), 17 deletions(-) delete mode 100644 icons/effects/blind_target.dmi delete mode 100644 icons/effects/compromise_target.dmi create mode 100644 icons/effects/mouse_pointers/blind_target.dmi rename icons/effects/{ => mouse_pointers}/cult_target.dmi (100%) rename icons/{mecha => effects/mouse_pointers}/mecha_mouse-disable.dmi (100%) rename icons/{mecha => effects/mouse_pointers}/mecha_mouse.dmi (100%) rename icons/effects/{ => mouse_pointers}/mindswap_target.dmi (100%) rename icons/effects/{ => mouse_pointers}/overload_machine_target.dmi (100%) rename icons/effects/{ => mouse_pointers}/override_machine_target.dmi (100%) rename icons/effects/{ => mouse_pointers}/supplypod_down_target.dmi (100%) rename icons/effects/{ => mouse_pointers}/supplypod_target.dmi (100%) rename icons/effects/{ => mouse_pointers}/throw_target.dmi (100%) rename icons/effects/{ => mouse_pointers}/wrap_target.dmi (100%) delete mode 100644 icons/effects/vanguard_target.dmi delete mode 100644 icons/effects/visor_reticule.dmi delete mode 100644 icons/effects/volt_target.dmi diff --git a/code/game/mecha/combat/combat.dm b/code/game/mecha/combat/combat.dm index d977bb4f56d..0834f28d008 100644 --- a/code/game/mecha/combat/combat.dm +++ b/code/game/mecha/combat/combat.dm @@ -3,12 +3,12 @@ internals_req_access = list(ACCESS_MECH_SCIENCE, ACCESS_MECH_SECURITY) internal_damage_threshold = 50 armor = list("melee" = 30, "bullet" = 30, "laser" = 15, "energy" = 20, "bomb" = 20, "bio" = 0, "rad" = 0, "fire" = 100, "acid" = 100) - mouse_pointer = 'icons/mecha/mecha_mouse.dmi' + mouse_pointer = 'icons/effects/mouse_pointers/mecha_mouse.dmi' destruction_sleep_duration = 40 exit_delay = 40 /obj/mecha/combat/restore_equipment() - mouse_pointer = 'icons/mecha/mecha_mouse.dmi' + mouse_pointer = 'icons/effects/mouse_pointers/mecha_mouse.dmi' . = ..() /obj/mecha/combat/proc/max_ammo() //Max the ammo stored for Nuke Ops mechs, or anyone else that calls this diff --git a/code/game/mecha/mecha_defense.dm b/code/game/mecha/mecha_defense.dm index 334aaad8b63..2707e5b9439 100644 --- a/code/game/mecha/mecha_defense.dm +++ b/code/game/mecha/mecha_defense.dm @@ -151,7 +151,7 @@ log_message("EMP detected", LOG_MECHA, color="red") if(istype(src, /obj/mecha/combat)) - mouse_pointer = 'icons/mecha/mecha_mouse-disable.dmi' + mouse_pointer = 'icons/effects/mouse_pointers/mecha_mouse-disable.dmi' occupant?.update_mouse_pointer() if(!equipment_disabled && occupant) //prevent spamming this message with back-to-back EMPs to_chat(occupant, "Error -- Connection to equipment control unit has been lost.") diff --git a/code/modules/antagonists/cult/blood_magic.dm b/code/modules/antagonists/cult/blood_magic.dm index 110b959dda1..277edd59347 100644 --- a/code/modules/antagonists/cult/blood_magic.dm +++ b/code/modules/antagonists/cult/blood_magic.dm @@ -232,7 +232,7 @@ /obj/effect/proc_holder/horror active = FALSE - ranged_mousepointer = 'icons/effects/cult_target.dmi' + ranged_mousepointer = 'icons/effects/mouse_pointers/cult_target.dmi' var/datum/action/innate/cult/blood_spell/attached_action /obj/effect/proc_holder/horror/Destroy() diff --git a/code/modules/antagonists/cult/cult_comms.dm b/code/modules/antagonists/cult/cult_comms.dm index 03fe9b2c429..f1f4b77a739 100644 --- a/code/modules/antagonists/cult/cult_comms.dm +++ b/code/modules/antagonists/cult/cult_comms.dm @@ -239,7 +239,7 @@ /obj/effect/proc_holder/cultmark active = FALSE - ranged_mousepointer = 'icons/effects/cult_target.dmi' + ranged_mousepointer = 'icons/effects/mouse_pointers/cult_target.dmi' var/datum/action/innate/cult/master/cultmark/attached_action /obj/effect/proc_holder/cultmark/Destroy() @@ -272,7 +272,7 @@ var/area/A = get_area(target) attached_action.cooldown = world.time + attached_action.base_cooldown addtimer(CALLBACK(attached_action.owner, /mob.proc/update_action_buttons_icon), attached_action.base_cooldown) - C.cult_team.blood_target_image = image('icons/effects/cult_target.dmi', target, "glow", ABOVE_MOB_LAYER) + C.cult_team.blood_target_image = image('icons/effects/mouse_pointers/cult_target.dmi', target, "glow", ABOVE_MOB_LAYER) C.cult_team.blood_target_image.appearance_flags = RESET_COLOR C.cult_team.blood_target_image.pixel_x = -target.pixel_x C.cult_team.blood_target_image.pixel_y = -target.pixel_y @@ -351,7 +351,7 @@ var/area/A = get_area(target) cooldown = world.time + base_cooldown addtimer(CALLBACK(owner, /mob.proc/update_action_buttons_icon), base_cooldown) - C.cult_team.blood_target_image = image('icons/effects/cult_target.dmi', target, "glow", ABOVE_MOB_LAYER) + C.cult_team.blood_target_image = image('icons/effects/mouse_pointers/cult_target.dmi', target, "glow", ABOVE_MOB_LAYER) C.cult_team.blood_target_image.appearance_flags = RESET_COLOR C.cult_team.blood_target_image.pixel_x = -target.pixel_x C.cult_team.blood_target_image.pixel_y = -target.pixel_y @@ -412,7 +412,7 @@ /obj/effect/proc_holder/pulse active = FALSE - ranged_mousepointer = 'icons/effects/throw_target.dmi' + ranged_mousepointer = 'icons/effects/mouse_pointers/throw_target.dmi' var/datum/action/innate/cult/master/pulse/attached_action /obj/effect/proc_holder/pulse/Destroy() diff --git a/code/modules/antagonists/traitor/equipment/Malf_Modules.dm b/code/modules/antagonists/traitor/equipment/Malf_Modules.dm index 16e939058cd..d07060b7673 100644 --- a/code/modules/antagonists/traitor/equipment/Malf_Modules.dm +++ b/code/modules/antagonists/traitor/equipment/Malf_Modules.dm @@ -383,7 +383,7 @@ GLOBAL_LIST_INIT(malf_modules, subtypesof(/datum/AI_Module)) /obj/effect/proc_holder/ranged_ai/override_machine active = FALSE - ranged_mousepointer = 'icons/effects/override_machine_target.dmi' + ranged_mousepointer = 'icons/effects/mouse_pointers/override_machine_target.dmi' enable_text = "You tap into the station's powernet. Click on a machine to animate it, or use the ability again to cancel." disable_text = "You release your hold on the powernet." @@ -466,7 +466,7 @@ GLOBAL_LIST_INIT(malf_modules, subtypesof(/datum/AI_Module)) /obj/effect/proc_holder/ranged_ai/overload_machine active = FALSE - ranged_mousepointer = 'icons/effects/overload_machine_target.dmi' + ranged_mousepointer = 'icons/effects/mouse_pointers/overload_machine_target.dmi' enable_text = "You tap into the station's powernet. Click on a machine to detonate it, or use the ability again to cancel." disable_text = "You release your hold on the powernet." diff --git a/code/modules/cargo/centcom_podlauncher.dm b/code/modules/cargo/centcom_podlauncher.dm index c557a207b99..52310187939 100644 --- a/code/modules/cargo/centcom_podlauncher.dm +++ b/code/modules/cargo/centcom_podlauncher.dm @@ -445,8 +445,8 @@ force_open = FALSE, datum/tgui/master_ui = null, datum/ui_state/state = GLOB.adm /datum/centcom_podlauncher/proc/updateCursor(var/launching) //Update the moues of the user if (holder) //Check to see if we have a client if (launching) //If the launching param is true, we give the user new mouse icons. - holder.mouse_up_icon = 'icons/effects/supplypod_target.dmi' //Icon for when mouse is released - holder.mouse_down_icon = 'icons/effects/supplypod_down_target.dmi' //Icon for when mouse is pressed + holder.mouse_up_icon = 'icons/effects/mouse_pointers/supplypod_target.dmi' //Icon for when mouse is released + holder.mouse_down_icon = 'icons/effects/mouse_pointers/supplypod_down_target.dmi' //Icon for when mouse is pressed holder.mouse_pointer_icon = holder.mouse_up_icon //Icon for idle mouse (same as icon for when released) holder.click_intercept = src //Create a click_intercept so we know where the user is clicking else diff --git a/code/modules/mob/living/simple_animal/hostile/giant_spider.dm b/code/modules/mob/living/simple_animal/hostile/giant_spider.dm index c22a22c979e..4ffc83005eb 100644 --- a/code/modules/mob/living/simple_animal/hostile/giant_spider.dm +++ b/code/modules/mob/living/simple_animal/hostile/giant_spider.dm @@ -389,7 +389,7 @@ active = FALSE datum/action/spell_action/action = null desc = "Wrap something or someone in a cocoon. If it's a living being, you'll also consume them, allowing you to lay eggs." - ranged_mousepointer = 'icons/effects/wrap_target.dmi' + ranged_mousepointer = 'icons/effects/mouse_pointers/wrap_target.dmi' action_icon = 'icons/mob/actions/actions_animal.dmi' action_icon_state = "wrap_0" action_background_icon_state = "bg_alien" diff --git a/code/modules/spells/spell_types/blind.dm b/code/modules/spells/spell_types/blind.dm index 387bcbd80ce..aaccefc745d 100644 --- a/code/modules/spells/spell_types/blind.dm +++ b/code/modules/spells/spell_types/blind.dm @@ -9,7 +9,7 @@ message = "Your eyes cry out in pain!" cooldown_min = 50 //12 deciseconds reduction per rank starting_spells = list("/obj/effect/proc_holder/spell/targeted/inflict_handler/blind", "/obj/effect/proc_holder/spell/targeted/genetic/blind") - ranged_mousepointer = 'icons/effects/blind_target.dmi' + ranged_mousepointer = 'icons/effects/mouse_pointers/blind_target.dmi' action_icon_state = "blind" active_msg = "You prepare to blind a target..." diff --git a/code/modules/spells/spell_types/mind_transfer.dm b/code/modules/spells/spell_types/mind_transfer.dm index c14f5d83b44..723fdb20b4f 100644 --- a/code/modules/spells/spell_types/mind_transfer.dm +++ b/code/modules/spells/spell_types/mind_transfer.dm @@ -8,7 +8,7 @@ invocation_type = "whisper" range = 1 cooldown_min = 200 //100 deciseconds reduction per rank - ranged_mousepointer = 'icons/effects/mindswap_target.dmi' + ranged_mousepointer = 'icons/effects/mouse_pointers/mindswap_target.dmi' action_icon_state = "mindswap" active_msg = "You prepare to swap minds with a target..." /// For how long is the caster stunned for after the spell diff --git a/code/modules/spells/spell_types/pointed.dm b/code/modules/spells/spell_types/pointed.dm index 75060b78491..bb1608c5902 100644 --- a/code/modules/spells/spell_types/pointed.dm +++ b/code/modules/spells/spell_types/pointed.dm @@ -1,6 +1,6 @@ /obj/effect/proc_holder/spell/pointed name = "pointed spell" - ranged_mousepointer = 'icons/effects/throw_target.dmi' + ranged_mousepointer = 'icons/effects/mouse_pointers/throw_target.dmi' action_icon_state = "projectile" /// Message showing to the spell owner upon deactivating pointed spell. var/deactive_msg = "You dispel the magic..." diff --git a/code/modules/vehicles/cars/clowncar.dm b/code/modules/vehicles/cars/clowncar.dm index 4b9cb9b64bc..136258fe9c0 100644 --- a/code/modules/vehicles/cars/clowncar.dm +++ b/code/modules/vehicles/cars/clowncar.dm @@ -173,7 +173,7 @@ /obj/vehicle/sealed/car/clowncar/proc/EnterCannonMode() - mouse_pointer = 'icons/mecha/mecha_mouse.dmi' + mouse_pointer = 'icons/effects/mouse_pointers/mecha_mouse.dmi' cannonmode = TRUE cannonbusy = FALSE for(var/mob/living/L in return_controllers_with_flag(VEHICLE_CONTROL_DRIVE)) diff --git a/icons/effects/blind_target.dmi b/icons/effects/blind_target.dmi deleted file mode 100644 index 792d90dfbbb89c727406cd2ff56346cf5f23f1ba..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 366 zcmeAS@N?(olHy`uVBq!ia0vp^2|(+XczhDN3XE)M-oa(BOh!U67;^d;tf|AVqJO+k}Il*BCMWx@r z1Q&e#`b5iHSL@uF^T8WJ4K5l#c%*aQNAn~@QBUs<3*#W;%f?;`a~@4PGATqM*t4_S zSatIXi4!JI9{Ff{o$+nm@Q_QWxQJubN%mV_0fAnDNmhbgpSTM&gTe~F7Bf~0F&q(e zI6dd*<*PtvGh(Z3>e#>|{+2 z+|_vGq%xmRNV=-0C=38%drl^AQVR7nfnxf+O;vFc4RR$hM|2260nd|Y2c=P{SKNq%XZH2 zwYU!tGeM7rHlIsOZz$YOXA*mK9H4N$kO)4`fj?8&vWG%rm!%=$VlGgSB%ay6{I^5m zvL=Rt>^s?a^2cgS+I+5YF59`zrS%WjVwg1aXy^cPd|8VhZ}r_FH6#s?oOaILg};&*SuE&_2Fwk^0I7h|wR?U9EBak*5uO{2 z{qztTN8NVLy~7WdF|>1}CH>6^2rsT#*uof^JJFi{Y6NKRl>ckQJ3!G^jBinYH3CZR zlu|VRoJIZ36m&)>O6Fi|`g{%mLj%BU(op5lQ>S4exoN#qzrLtN7d z%lcv#wCqHr)2b{W7DJnbSkcdJ$Q*I3qh>>-b^T}>8VX08RHb23jFQf`t}hxe2N3ew z-`MqIKXuv|8Z781&xR%%W}o;JF>2a2qtE96Fv%&1oX@V~=`Aq~15}^&0bsZWfMIjS`;uMfD~ z2$+#hC200^b1^ia^*;sc1HkY(0F3$i0Q4I02LaTbmQ1l{cK`qY07*qoM6N<$f{kKG AMgRZ+ diff --git a/icons/effects/mouse_pointers/blind_target.dmi b/icons/effects/mouse_pointers/blind_target.dmi new file mode 100644 index 0000000000000000000000000000000000000000..1d33fc7a4c2bde7292dc10f27fd82050d8c719dc GIT binary patch literal 358 zcmeAS@N?(olHy`uVBq!ia0vp^2|(Rhi70VNElw`VEGWs$&tqVym=hdUP*nQ;OK`!* zuTQkRb+yi&IUl?s)Zn7=gGV~&eKb!p6!rA(urLlXzHIEJFz3;vBa=cDf;~ICja4_V zkT_xTf#ovew0 zL(-(1Gb%u=h9AfD_*6c;Ty&7tm$42g($f^!z$>70@8z1tgpYptye?C&eYxfklj)nz w%X4JvwUTQG99%MO1*AN5)@H6x6nVhHARX+qucGd&GSC?ep00i_>zopr05%SXiU0rr literal 0 HcmV?d00001 diff --git a/icons/effects/cult_target.dmi b/icons/effects/mouse_pointers/cult_target.dmi similarity index 100% rename from icons/effects/cult_target.dmi rename to icons/effects/mouse_pointers/cult_target.dmi diff --git a/icons/mecha/mecha_mouse-disable.dmi b/icons/effects/mouse_pointers/mecha_mouse-disable.dmi similarity index 100% rename from icons/mecha/mecha_mouse-disable.dmi rename to icons/effects/mouse_pointers/mecha_mouse-disable.dmi diff --git a/icons/mecha/mecha_mouse.dmi b/icons/effects/mouse_pointers/mecha_mouse.dmi similarity index 100% rename from icons/mecha/mecha_mouse.dmi rename to icons/effects/mouse_pointers/mecha_mouse.dmi diff --git a/icons/effects/mindswap_target.dmi b/icons/effects/mouse_pointers/mindswap_target.dmi similarity index 100% rename from icons/effects/mindswap_target.dmi rename to icons/effects/mouse_pointers/mindswap_target.dmi diff --git a/icons/effects/overload_machine_target.dmi b/icons/effects/mouse_pointers/overload_machine_target.dmi similarity index 100% rename from icons/effects/overload_machine_target.dmi rename to icons/effects/mouse_pointers/overload_machine_target.dmi diff --git a/icons/effects/override_machine_target.dmi b/icons/effects/mouse_pointers/override_machine_target.dmi similarity index 100% rename from icons/effects/override_machine_target.dmi rename to icons/effects/mouse_pointers/override_machine_target.dmi diff --git a/icons/effects/supplypod_down_target.dmi b/icons/effects/mouse_pointers/supplypod_down_target.dmi similarity index 100% rename from icons/effects/supplypod_down_target.dmi rename to icons/effects/mouse_pointers/supplypod_down_target.dmi diff --git a/icons/effects/supplypod_target.dmi b/icons/effects/mouse_pointers/supplypod_target.dmi similarity index 100% rename from icons/effects/supplypod_target.dmi rename to icons/effects/mouse_pointers/supplypod_target.dmi diff --git a/icons/effects/throw_target.dmi b/icons/effects/mouse_pointers/throw_target.dmi similarity index 100% rename from icons/effects/throw_target.dmi rename to icons/effects/mouse_pointers/throw_target.dmi diff --git a/icons/effects/wrap_target.dmi b/icons/effects/mouse_pointers/wrap_target.dmi similarity index 100% rename from icons/effects/wrap_target.dmi rename to icons/effects/mouse_pointers/wrap_target.dmi diff --git a/icons/effects/vanguard_target.dmi b/icons/effects/vanguard_target.dmi deleted file mode 100644 index 5220c325e53882388d9df01c630bf2b1fb34e2b0..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 412 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