Skip to content

Commit

Permalink
server: 516 compability (ss220-space#5753)
Browse files Browse the repository at this point in the history
* server: 516 compability

* contributing

* planes and game panel

* pixelated

* StatBrowser Settings

* wtf

* sdql

---------

Co-authored-by: Aziz Chynaliev <[email protected]>
  • Loading branch information
ROdenFL and Bizzonium authored Aug 25, 2024
1 parent e7a107b commit d0354ba
Show file tree
Hide file tree
Showing 183 changed files with 2,590 additions and 2,058 deletions.
510 changes: 296 additions & 214 deletions .github/CONTRIBUTING.md

Large diffs are not rendered by default.

26 changes: 13 additions & 13 deletions code/__DEFINES/admin.dm
Original file line number Diff line number Diff line change
Expand Up @@ -48,24 +48,24 @@

#define R_HOST (~0) // Sum of all permissions to allow easy setting

#define ADMIN_QUE(user,display) "<a href='?_src_=holder;adminmoreinfo=[user.UID()]'>[display]</a>"
#define ADMIN_FLW(user,display) "<a href='?_src_=holder;adminplayerobservefollow=[user.UID()]'>[display]</a>"
#define ADMIN_PP(user,display) "<a href='?_src_=holder;adminplayeropts=[user.UID()]'>[display]</a>"
#define ADMIN_VV(atom,display) "<a href='?_src_=vars;Vars=[atom.UID()]'>[display]</a>"
#define ADMIN_SM(user,display) "<a href='?_src_=holder;subtlemessage=[user.UID()]'>[display]</a>"
#define ADMIN_TP(user,display) "<a href='?_src_=holder;traitor=[user.UID()]'>[display]</a>"
#define ADMIN_ALERT(user, display) "<a href='?_src_=holder;adminalert=[user.UID()]'>[display]</a>"
#define ADMIN_BSA(user,display) "<a href='?_src_=holder;BlueSpaceArtillery=[user.UID()]'>[display]</a>"
#define ADMIN_CENTCOM_REPLY(user,display) "<a href='?_src_=holder;CentcommReply=[user.UID()]'>[display]</a>"
#define ADMIN_SYNDICATE_REPLY(user,display) "<a href='?_src_=holder;SyndicateReply=[user.UID()]'>[display]</a>"
#define ADMIN_SC(user,display) "<a href='?_src_=holder;adminspawncookie=[user.UID()]'>[display]</a>"
#define ADMIN_QUE(user,display) "<a href='byond://?_src_=holder;adminmoreinfo=[user.UID()]'>[display]</a>"
#define ADMIN_FLW(user,display) "<a href='byond://?_src_=holder;adminplayerobservefollow=[user.UID()]'>[display]</a>"
#define ADMIN_PP(user,display) "<a href='byond://?_src_=holder;adminplayeropts=[user.UID()]'>[display]</a>"
#define ADMIN_VV(atom,display) "<a href='byond://?_src_=vars;Vars=[atom.UID()]'>[display]</a>"
#define ADMIN_SM(user,display) "<a href='byond://?_src_=holder;subtlemessage=[user.UID()]'>[display]</a>"
#define ADMIN_TP(user,display) "<a href='byond://?_src_=holder;traitor=[user.UID()]'>[display]</a>"
#define ADMIN_ALERT(user, display) "<a href='byond://?_src_=holder;adminalert=[user.UID()]'>[display]</a>"
#define ADMIN_BSA(user,display) "<a href='byond://?_src_=holder;BlueSpaceArtillery=[user.UID()]'>[display]</a>"
#define ADMIN_CENTCOM_REPLY(user,display) "<a href='byond://?_src_=holder;CentcommReply=[user.UID()]'>[display]</a>"
#define ADMIN_SYNDICATE_REPLY(user,display) "<a href='byond://?_src_=holder;SyndicateReply=[user.UID()]'>[display]</a>"
#define ADMIN_SC(user,display) "<a href='byond://?_src_=holder;adminspawncookie=[user.UID()]'>[display]</a>"
#define ADMIN_LOOKUP(user) "[key_name_admin(user)]([ADMIN_QUE(user,"?")])"
#define ADMIN_LOOKUPFLW(user) "[key_name_admin(user)]([ADMIN_QUE(user,"?")]) ([ADMIN_FLW(user,"FLW")])"
#define ADMIN_FULLMONTY(user) "[key_name_admin(user)] ([ADMIN_QUE(user,"?")]) ([ADMIN_PP(user,"PP")]) ([ADMIN_VV(user,"VV")]) ([ADMIN_SM(user,"SM")]) ([ADMIN_FLW(user,"FLW")]) ([ADMIN_TP(user,"TP")])"
#define ADMIN_JMP(src) "(<a href='?_src_=holder;adminplayerobservecoodjump=1;X=[src.x];Y=[src.y];Z=[src.z]'>JMP</a>)"
#define ADMIN_JMP(src) "(<a href='byond://?_src_=holder;adminplayerobservecoodjump=1;X=[src.x];Y=[src.y];Z=[src.z]'>JMP</a>)"
#define COORD(src) "[src ? "([src.x],[src.y],[src.z])" : "nonexistent location"]"
#define AREACOORD(src) "[src ? "[get_area_name(src, TRUE)] [COORD(src)]" : "nonexistent location" ]"
#define ADMIN_COORDJMP(src) "[src ? "[COORD(src)] [ADMIN_JMP(src)]" : "nonexistent location"]"
#define ADMIN_VERBOSEJMP(src) "[src ? "[AREACOORD(src)] [ADMIN_JMP(src)]" : "nonexistent location"]"
#define ADMIN_SHOWDETAILS(mask, content) "<a href='?_src_=holder;showdetails=[html_encode(content)]'>[mask]</a>"
#define ADMIN_SHOWDETAILS(mask, content) "<a href='byond://?_src_=holder;showdetails=[html_encode(content)]'>[mask]</a>"

2 changes: 1 addition & 1 deletion code/__HELPERS/mobs.dm
Original file line number Diff line number Diff line change
Expand Up @@ -506,7 +506,7 @@
to_chat(user, "Name = <b>[M.name]</b>; Real_name = [M.real_name]; Mind_name = [M.mind?"[M.mind.name]":""]; Key = <b>[M.key]</b>;")
to_chat(user, "Location = [location_description];")
to_chat(user, "[special_role_description]")
to_chat(user, "(<a href='?src=[usr.UID()];priv_msg=[M.client?.ckey]'>PM</a>) ([ADMIN_PP(M,"PP")]) ([ADMIN_VV(M,"VV")]) ([ADMIN_TP(M,"TP")]) ([ADMIN_SM(M,"SM")]) ([ADMIN_FLW(M,"FLW")])")
to_chat(user, "(<a href='byond://?src=[usr.UID()];priv_msg=[M.client?.ckey]'>PM</a>) ([ADMIN_PP(M,"PP")]) ([ADMIN_VV(M,"VV")]) ([ADMIN_TP(M,"TP")]) ([ADMIN_SM(M,"SM")]) ([ADMIN_FLW(M,"FLW")])")

// Gets the first mob contained in an atom, and warns the user if there's not exactly one
/proc/get_mob_in_atom_with_warning(atom/A, mob/user = usr)
Expand Down
14 changes: 7 additions & 7 deletions code/__HELPERS/paths/jps.dm
Original file line number Diff line number Diff line change
Expand Up @@ -60,7 +60,7 @@

/datum/pathfind/jps
/// The movable we are pathing
var/atom/movable/caller
var/atom/movable/requester
/// The turf we're trying to path to (note that this won't track a moving target)
var/turf/end
/// The open list/stack we pop nodes out from (TODO: make this a normal list and macro-ize the heap operations to reduce proc overhead)
Expand All @@ -78,9 +78,9 @@
var/diagonal_handling = DIAGONAL_REMOVE_CLUNKY


/datum/pathfind/jps/proc/setup(atom/movable/caller, list/access, max_distance, simulated_only, avoid, list/datum/callback/on_finish, atom/goal, mintargetdist, skip_first, diagonal_handling)
src.caller = caller
src.pass_info = new(caller, access)
/datum/pathfind/jps/proc/setup(atom/movable/requester, list/access, max_distance, simulated_only, avoid, list/datum/callback/on_finish, atom/goal, mintargetdist, skip_first, diagonal_handling)
src.requester = requester
src.pass_info = new(requester, access)
src.max_distance = max_distance
src.simulated_only = simulated_only
src.avoid = avoid
Expand All @@ -95,13 +95,13 @@

/datum/pathfind/jps/Destroy(force)
. = ..()
caller = null
requester = null
end = null
open = null


/datum/pathfind/jps/start()
start = start || get_turf(caller)
start = start || get_turf(requester)
. = ..()
if(!.)
return .
Expand All @@ -124,7 +124,7 @@
. = ..()
if(!.)
return .
if(QDELETED(caller))
if(QDELETED(requester))
return FALSE

while(!open.IsEmpty() && !path)
Expand Down
2 changes: 1 addition & 1 deletion code/__HELPERS/unsorted.dm
Original file line number Diff line number Diff line change
Expand Up @@ -1144,7 +1144,7 @@ Standard way to write links -Sayu
/proc/topic_link(var/datum/D, var/arglist, var/content)
if(istype(arglist,/list))
arglist = list2params(arglist)
return "<a href='?src=[D.UID()];[arglist]'>[content]</a>"
return "<a href='byond://?src=[D.UID()];[arglist]'>[content]</a>"


// This proc is made to check if we can interact or use (directly or in the other way) the specific bodypart
Expand Down
8 changes: 8 additions & 0 deletions code/_onclick/hud/plane_master/plane_master_group.dm
Original file line number Diff line number Diff line change
Expand Up @@ -34,6 +34,14 @@
stack_trace("Hey brother, our key [key] is already in use by a plane master group on the passed in hud, belonging to [viewing_hud.mymob]. Ya fucked up, why are there dupes")
return

#if MIN_COMPILER_VERSION > 516
#warn Fully change default relay_loc to "1,1", rather than changing it based on client version
#endif

if(viewing_hud.mymob?.client?.byond_version > 515)
relay_loc = "1,1"
rebuild_plane_masters()

our_hud = viewing_hud
our_hud.master_groups[key] = src
show_hud()
Expand Down
7 changes: 4 additions & 3 deletions code/_onclick/hud/plane_master/render_plate.dm
Original file line number Diff line number Diff line change
Expand Up @@ -215,6 +215,9 @@
* Other vars such as alpha will automatically be applied with the render source
*/
/atom/movable/screen/plane_master/proc/generate_render_relays()
#if MIN_COMPILER_VERSION > 516
#warn Fully change default relay_loc to "1,1"
#endif
var/relay_loc = home?.relay_loc
if(!relay_loc)
log_runtime(EXCEPTION("Someone forgot to set relay_loc for plane_master_group."))
Expand Down Expand Up @@ -252,9 +255,7 @@
if(!length(relays) && !initial(render_target))
render_target = OFFSET_RENDER_TARGET(get_plane_master_render_base(name), offset)
if(!relay_loc)
relay_loc = home?.relay_loc
if(!relay_loc)
log_runtime(EXCEPTION("Someone forgot relay_loc while passing in generate_relay_to."))
relay_loc = (show_to?.byond_version > 515) ? "1,1" : "CENTER"
// If we're using a submap (say for a popup window) make sure we draw onto it
if(home?.map)
relay_loc = "[home.map]:[relay_loc]"
Expand Down
2 changes: 1 addition & 1 deletion code/controllers/subsystem/dbcore.dm
Original file line number Diff line number Diff line change
Expand Up @@ -464,7 +464,7 @@ SUBSYSTEM_DEF(dbcore)

// Just tells the admins if a query timed out, and asks if the server hung to help error reporting
/datum/db_query/proc/slow_query_check()
message_admins("HEY! A database query timed out. Did the server just hang? <a href='?_src_=holder;slowquery=yes'>\[YES\]</a>|<a href='?_src_=holder;slowquery=no'>\[NO\]</a>")
message_admins("HEY! A database query timed out. Did the server just hang? <a href='byond://?_src_=holder;slowquery=yes'>\[YES\]</a>|<a href='byond://?_src_=holder;slowquery=no'>\[NO\]</a>")


/**
Expand Down
44 changes: 22 additions & 22 deletions code/controllers/subsystem/events.dm
Original file line number Diff line number Diff line change
Expand Up @@ -92,11 +92,11 @@ SUBSYSTEM_DEF(events)
to_chat(world, message)

/datum/controller/subsystem/events/proc/GetInteractWindow()
var/html = "<A align='right' href='?src=[UID()];refresh=1'>Refresh</A>"
var/html = "<A align='right' href='byond://?src=[UID()];refresh=1'>Refresh</A>"

if(selected_event_container)
var/event_time = max(0, selected_event_container.next_event_time - world.time)
html += "<A align='right' href='?src=[UID()];back=1'>Back</A><br>"
html += "<A align='right' href='byond://?src=[UID()];back=1'>Back</A><br>"
html += "Time till start: [round(event_time / 600, 0.1)]<br>"
html += "<div class='block'>"
html += "<h2>Available [GLOB.severity_to_string[selected_event_container.severity]] Events (queued & running events will not be displayed)</h2>"
Expand All @@ -105,13 +105,13 @@ SUBSYSTEM_DEF(events)
for(var/datum/event_meta/EM in selected_event_container.available_events)
html += "<tr>"
html += "<td>[EM.name]</td>"
html += "<td><A align='right' href='?src=[UID()];set_weight=\ref[EM]'>[EM.weight]</A></td>"
html += "<td><A align='right' href='byond://?src=[UID()];set_weight=\ref[EM]'>[EM.weight]</A></td>"
html += "<td>[EM.min_weight]</td>"
html += "<td>[EM.max_weight == INFINITY ? "No max" : EM.max_weight]</td>"
html += "<td><A align='right' href='?src=[UID()];toggle_oneshot=\ref[EM]'>[EM.one_shot]</A></td>"
html += "<td><A align='right' href='?src=[UID()];toggle_enabled=\ref[EM]'>[EM.enabled]</A></td>"
html += "<td><A align='right' href='byond://?src=[UID()];toggle_oneshot=\ref[EM]'>[EM.one_shot]</A></td>"
html += "<td><A align='right' href='byond://?src=[UID()];toggle_enabled=\ref[EM]'>[EM.enabled]</A></td>"
html += "<td><span class='alert'>[EM.get_weight(number_active_with_role())]</span></td>"
html += "<td><A align='right' href='?src=[UID()];remove=\ref[EM];EC=\ref[selected_event_container]'>Remove</A></td>"
html += "<td><A align='right' href='byond://?src=[UID()];remove=\ref[EM];EC=\ref[selected_event_container]'>Remove</A></td>"
html += "</tr>"
html += "</table>"
html += "</div>"
Expand All @@ -121,16 +121,16 @@ SUBSYSTEM_DEF(events)
html += "<table[table_options]>"
html += "<tr [head_options]><td[row_options2]>Name</td><td[row_options2]>Type</td><td[row_options1]>Weight</td><td[row_options1]>OneShot</td></tr>"
html += "<tr>"
html += "<td><A align='right' href='?src=[UID()];set_name=\ref[new_event]'>[new_event.name ? new_event.name : "Enter Event"]</A></td>"
html += "<td><A align='right' href='?src=[UID()];set_type=\ref[new_event]'>[new_event.event_type ? new_event.event_type : "Select Type"]</A></td>"
html += "<td><A align='right' href='?src=[UID()];set_weight=\ref[new_event]'>[new_event.weight ? new_event.weight : 0]</A></td>"
html += "<td><A align='right' href='?src=[UID()];toggle_oneshot=\ref[new_event]'>[new_event.one_shot]</A></td>"
html += "<td><A align='right' href='byond://?src=[UID()];set_name=\ref[new_event]'>[new_event.name ? new_event.name : "Enter Event"]</A></td>"
html += "<td><A align='right' href='byond://?src=[UID()];set_type=\ref[new_event]'>[new_event.event_type ? new_event.event_type : "Select Type"]</A></td>"
html += "<td><A align='right' href='byond://?src=[UID()];set_weight=\ref[new_event]'>[new_event.weight ? new_event.weight : 0]</A></td>"
html += "<td><A align='right' href='byond://?src=[UID()];toggle_oneshot=\ref[new_event]'>[new_event.one_shot]</A></td>"
html += "</tr>"
html += "</table>"
html += "<A align='right' href='?src=[UID()];add=\ref[selected_event_container]'>Add</A><br>"
html += "<A align='right' href='byond://?src=[UID()];add=\ref[selected_event_container]'>Add</A><br>"
html += "</div>"
else
html += "<A align='right' href='?src=[UID()];toggle_report=1'>Round End Report: [report_at_round_end ? "On": "Off"]</A><br>"
html += "<A align='right' href='byond://?src=[UID()];toggle_report=1'>Round End Report: [report_at_round_end ? "On": "Off"]</A><br>"
html += "<div class='block'>"
html += "<h2>Event Start</h2>"

Expand All @@ -144,16 +144,16 @@ SUBSYSTEM_DEF(events)
html += "<td>[station_time_timestamp("hh:mm:ss", max(EC.next_event_time, world.time))]</td>"
html += "<td>[round(next_event_at / 600, 0.1)]</td>"
html += "<td>"
html += "<A align='right' href='?src=[UID()];dec_timer=2;event=\ref[EC]'>--</A>"
html += "<A align='right' href='?src=[UID()];dec_timer=1;event=\ref[EC]'>-</A>"
html += "<A align='right' href='?src=[UID()];inc_timer=1;event=\ref[EC]'>+</A>"
html += "<A align='right' href='?src=[UID()];inc_timer=2;event=\ref[EC]'>++</A>"
html += "<A align='right' href='byond://?src=[UID()];dec_timer=2;event=\ref[EC]'>--</A>"
html += "<A align='right' href='byond://?src=[UID()];dec_timer=1;event=\ref[EC]'>-</A>"
html += "<A align='right' href='byond://?src=[UID()];inc_timer=1;event=\ref[EC]'>+</A>"
html += "<A align='right' href='byond://?src=[UID()];inc_timer=2;event=\ref[EC]'>++</A>"
html += "</td>"
html += "<td>"
html += "<A align='right' href='?src=[UID()];pause=\ref[EC]'>[EC.delayed ? "Resume" : "Pause"]</A>"
html += "<A align='right' href='byond://?src=[UID()];pause=\ref[EC]'>[EC.delayed ? "Resume" : "Pause"]</A>"
html += "</td>"
html += "<td>"
html += "<A align='right' href='?src=[UID()];interval=\ref[EC]'>[EC.delay_modifier]</A>"
html += "<A align='right' href='byond://?src=[UID()];interval=\ref[EC]'>[EC.delay_modifier]</A>"
html += "</td>"
html += "</tr>"
html += "</table>"
Expand All @@ -168,9 +168,9 @@ SUBSYSTEM_DEF(events)
var/datum/event_meta/EM = EC.next_event
html += "<tr>"
html += "<td>[GLOB.severity_to_string[severity]]</td>"
html += "<td><A align='right' href='?src=[UID()];select_event=\ref[EC]'>[EM ? EM.name : "Random"]</A></td>"
html += "<td><A align='right' href='?src=[UID()];view_events=\ref[EC]'>View</A></td>"
html += "<td><A align='right' href='?src=[UID()];clear=\ref[EC]'>Clear</A></td>"
html += "<td><A align='right' href='byond://?src=[UID()];select_event=\ref[EC]'>[EM ? EM.name : "Random"]</A></td>"
html += "<td><A align='right' href='byond://?src=[UID()];view_events=\ref[EC]'>View</A></td>"
html += "<td><A align='right' href='byond://?src=[UID()];clear=\ref[EC]'>Clear</A></td>"
html += "</tr>"
html += "</table>"
html += "</div>"
Expand All @@ -192,7 +192,7 @@ SUBSYSTEM_DEF(events)
html += "<td>[EM.name]</td>"
html += "<td>[no_end ? "N/A" : station_time_timestamp("hh:mm:ss", ends_at)]</td>"
html += "<td>[no_end ? "N/A" : ends_in]</td>"
html += "<td><A align='right' href='?src=[UID()];stop=\ref[E]'>Stop</A></td>"
html += "<td><A align='right' href='byond://?src=[UID()];stop=\ref[E]'>Stop</A></td>"
html += "</tr>"
html += "</table>"
html += "</div>"
Expand Down
4 changes: 2 additions & 2 deletions code/controllers/subsystem/ghost_spawns.dm
Original file line number Diff line number Diff line change
Expand Up @@ -132,8 +132,8 @@ SUBSYSTEM_DEF(ghost_spawns)
// Chat message
var/act_jump = ""
if(isatom(source))
act_jump = "<a href='?src=[M.UID()];jump=\ref[source]'>\[Teleport]</a>"
var/act_signup = "<a href='?src=[A.UID()];signup=1'>\[Sign Up]</a>"
act_jump = "<a href='byond://?src=[M.UID()];jump=\ref[source]'>\[Teleport]</a>"
var/act_signup = "<a href='byond://?src=[A.UID()];signup=1'>\[Sign Up]</a>"
to_chat(M, "<big><span class='boldnotice'>Now looking for candidates [role ? "to play as \an [role_cleanname || role]" : "\"[question]\""]. [act_jump] [act_signup] [reason?"<i>\nReason: [reason]</i>":""]</span></big>")

// Start processing it so it updates visually the timer
Expand Down
2 changes: 1 addition & 1 deletion code/controllers/subsystem/ticker.dm
Original file line number Diff line number Diff line change
Expand Up @@ -716,7 +716,7 @@ SUBSYSTEM_DEF(ticker)

for(var/ckey in flagged_antag_rollers)
log_admin("[ckey] just got booted back to lobby with no jobs, but antags enabled.")
log_text += "<small>- <a href='?priv_msg=[ckey]'>[ckey]</a></small>"
log_text += "<small>- <a href='byond://?priv_msg=[ckey]'>[ckey]</a></small>"

log_text += "Investigation is advised."

Expand Down
Loading

0 comments on commit d0354ba

Please sign in to comment.