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"; }