diff --git a/code/game/atoms.dm b/code/game/atoms.dm
index 9607dc4dce..7fbfe48f4e 100644
--- a/code/game/atoms.dm
+++ b/code/game/atoms.dm
@@ -1143,21 +1143,3 @@
*/
/atom/proc/setClosed()
return
-
-///Passes Stat Browser Panel clicks to the game and calls client click on an atom
-/atom/Topic(href, list/href_list)
- . = ..()
- if(!usr?.client)
- return
- var/client/usr_client = usr.client
- var/list/paramslist = list()
- if(href_list["statpanel_item_shiftclick"])
- paramslist["shift"] = "1"
- if(href_list["statpanel_item_ctrlclick"])
- paramslist["ctrl"] = "1"
- if(href_list["statpanel_item_altclick"])
- paramslist["alt"] = "1"
- if(href_list["statpanel_item_click"])
- // first of all make sure we valid
- var/mouseparams = list2params(paramslist)
- usr_client.Click(src, loc, null, mouseparams)
diff --git a/code/modules/client/client_procs.dm b/code/modules/client/client_procs.dm
index 267ee3a5e1..4d706c4907 100644
--- a/code/modules/client/client_procs.dm
+++ b/code/modules/client/client_procs.dm
@@ -101,6 +101,10 @@ GLOBAL_LIST_INIT(blacklisted_builds, list(
keyUp(keycode)
return
+ if(href_list["statpanel_item_target"])
+ handle_statpanel_click(href_list)
+ return
+
// Tgui Topic middleware
if(tgui_Topic(href_list))
return
@@ -141,6 +145,17 @@ GLOBAL_LIST_INIT(blacklisted_builds, list(
..() //redirect to hsrc.Topic()
+/client/proc/handle_statpanel_click(list/href_list)
+ var/atom/target = locate(href_list["statpanel_item_target"])
+ var/list/paramslist = list()
+ if(href_list["statpanel_item_shiftclick"])
+ paramslist["shift"] = "1"
+ if(href_list["statpanel_item_ctrlclick"])
+ paramslist["ctrl"] = "1"
+ if(href_list["statpanel_item_altclick"])
+ paramslist["alt"] = "1"
+ Click(target, target.loc, null, paramslist, FALSE, "statpanel")
+
/client/proc/is_content_unlocked()
if(!prefs.unlock_content)
to_chat(src, "Become a BYOND member to access member-perks and features, as well as support the engine that makes this game possible. Only 10 bucks for 3 months! Click Here to find out more.")
@@ -798,7 +813,7 @@ GLOBAL_LIST_INIT(blacklisted_builds, list(
message_admins("Proxy Detection: [key_name_admin(src)] IP intel rated [res.intel*100]% likely to be a Proxy/VPN.")
ip_intel = res.intel
-/client/Click(atom/object, atom/location, control, params, ignore_spam = FALSE)
+/client/Click(atom/object, atom/location, control, params, ignore_spam = FALSE, extra_info)
if(last_click > world.time - world.tick_lag)
return
last_click = world.time
@@ -851,7 +866,7 @@ GLOBAL_LIST_INIT(blacklisted_builds, list(
return
if(prefs.log_clicks)
- log_click(object, location, control, params, src)
+ log_click(object, location, control, params, src, extra_info? "clicked ([extra_info])" : null)
if (prefs.hotkeys)
// If hotkey mode is enabled, then clicking the map will automatically
diff --git a/html/statbrowser.html b/html/statbrowser.html
index 346a198746..e7d49ceebc 100644
--- a/html/statbrowser.html
+++ b/html/statbrowser.html
@@ -875,7 +875,7 @@ function draw_listedturf() {
// rather than every onmousedown getting the "part" of the last entry.
return function(e) {
e.preventDefault();
- clickcatcher = "?src=" + part[1] + ";statpanel_item_click=1";
+ clickcatcher = "?src=_statpanel_;statpanel_item_target=" + part[1] + ";statpanel_item_click=1";
if(e.shiftKey){
clickcatcher += ";statpanel_item_shiftclick=1";
}