From 07d8e72125113d964b34b4fe3b3e33f4dd550fa1 Mon Sep 17 00:00:00 2001
From: silicons <2003111+silicons@users.noreply.github.com>
Date: Sat, 12 Dec 2020 11:19:45 -0700
Subject: [PATCH] fix
---
code/controllers/subsystem/ticker.dm | 2 +-
code/datums/world_topic.dm | 2 +-
code/modules/admin/admin.dm | 4 +-
.../modules/mob/dead/new_player/new_player.dm | 4 +-
code/modules/mob/dead/observer/respawn.dm | 43 +++----------------
code/modules/mob/living/death.dm | 4 ++
6 files changed, 17 insertions(+), 42 deletions(-)
diff --git a/code/controllers/subsystem/ticker.dm b/code/controllers/subsystem/ticker.dm
index 730ee3d6ab..e58d05f0d8 100755
--- a/code/controllers/subsystem/ticker.dm
+++ b/code/controllers/subsystem/ticker.dm
@@ -373,7 +373,7 @@ SUBSYSTEM_DEF(ticker)
player.create_character(FALSE)
if(player.new_character && player.client && player.client.prefs) // we cannot afford a runtime, ever
LAZYOR(player.client.prefs.slots_joined_as, player.client.prefs.slot)
- LAZYOR(player.client.prefs.characters_joined_as, player.new_character.real_name))
+ LAZYOR(player.client.prefs.characters_joined_as, player.new_character.real_name)
else
stack_trace("WARNING: Either a player did not have a new_character, did not have a client, or did not have preferences. This is VERY bad.")
else
diff --git a/code/datums/world_topic.dm b/code/datums/world_topic.dm
index 261e423640..7a1f0f6980 100644
--- a/code/datums/world_topic.dm
+++ b/code/datums/world_topic.dm
@@ -164,7 +164,7 @@
. = list()
.["version"] = GLOB.game_version
.["mode"] = "hidden" //CIT CHANGE - hides the gamemode in topic() calls to prevent meta'ing the gamemode
- .["respawn"] = config ? !CONFIG_GET(flag/norespawn) : FALSE
+ .["respawn"] = config ? CONFIG_GET(flag/respawns_enabled) : FALSE
.["enter"] = GLOB.enter_allowed
.["vote"] = CONFIG_GET(flag/allow_vote_mode)
.["ai"] = CONFIG_GET(flag/allow_ai)
diff --git a/code/modules/admin/admin.dm b/code/modules/admin/admin.dm
index d4b2d03428..d4afc3dbb4 100644
--- a/code/modules/admin/admin.dm
+++ b/code/modules/admin/admin.dm
@@ -679,8 +679,8 @@
set category = "Server"
set desc="Respawn basically"
set name="Toggle Respawn"
- var/new_nores = !CONFIG_GET(flag/norespawn)
- CONFIG_SET(flag/norespawn, new_nores)
+ var/new_nores = CONFIG_GET(flag/respawns_enabled)
+ CONFIG_SET(flag/respawns_enabled, !new_nores)
if (!new_nores)
to_chat(world, "You may now respawn.", confidential = TRUE)
else
diff --git a/code/modules/mob/dead/new_player/new_player.dm b/code/modules/mob/dead/new_player/new_player.dm
index 6d619c4fd1..09975ed7b9 100644
--- a/code/modules/mob/dead/new_player/new_player.dm
+++ b/code/modules/mob/dead/new_player/new_player.dm
@@ -449,8 +449,8 @@
GLOB.joined_player_list += character.ckey
GLOB.latejoiners += character
- LAZYOR(prefs.slots_joined_as, prefs.slot)
- LAZYOR(prefs.characters_joined_as, character.real_name))
+ LAZYOR(character.client.prefs.slots_joined_as, prefs.slot)
+ LAZYOR(character.client.prefs.characters_joined_as, character.real_name)
if(CONFIG_GET(flag/allow_latejoin_antagonists) && humanc) //Borgs aren't allowed to be antags. Will need to be tweaked if we get true latejoin ais.
if(SSshuttle.emergency)
diff --git a/code/modules/mob/dead/observer/respawn.dm b/code/modules/mob/dead/observer/respawn.dm
index fb1873adff..0ccdc460cf 100644
--- a/code/modules/mob/dead/observer/respawn.dm
+++ b/code/modules/mob/dead/observer/respawn.dm
@@ -15,7 +15,7 @@
continue
valid["[I.ckey] - Observing: [I]"] = I.ckey
for(var/mob/dead/new_player/I in GLOB.dead_mob_list)
- if(!I.client || !I.prefs.respawn_restrictions_active)
+ if(!I.client || !I.client.prefs.respawn_restrictions_active)
continue
valid["[I.ckey] - IN LOBBY"] = I.ckey
var/ckey = valid[input(src, "Choose a player (only showing logged in players who have restrictions)", "Unrestricted Respawn") as null|anything in valid]
@@ -39,7 +39,7 @@
if(confirm != "Yes")
return
message_admins("[key_name_admin(src)] removed [ckey]'s respawn restrictions.")
- log_admins("[key_name(src)] removed [ckey]'s respawn restrictions")
+ log_admin("[key_name(src)] removed [ckey]'s respawn restrictions")
NP.client.prefs.respawn_restrictions_active = FALSE
to_chat(NP, "Your respawn restrictions have been removed.")
else
@@ -54,7 +54,7 @@
set category = "Admin"
var/list/mob/dead/observer/valid = list()
- for(var/mob/dead/observer/i in GLOB.dead_mob_list)
+ for(var/mob/dead/observer/I in GLOB.dead_mob_list)
if(!I.client)
continue
valid["[I.ckey] - [I.name]"] = I
@@ -99,6 +99,10 @@
set name = "Respawn"
set category = "OOC"
+ if(!CONFIG_GET(flag/respawns_enabled))
+ to_chat(src, "Respawns are disabled in configuration.")
+ return
+
var/timeleft = time_left_to_respawn()
if(timeleft)
to_chat(src, "It's been too short of a time since you died/observed! Please wait [round(timeleft / 600, 0.1)] more minutes.")
@@ -145,36 +149,3 @@
var/mob/dead/new_player/M = new /mob/dead/new_player
M.ckey = ckey
-
-/mob/verb/abandon_mob()
- set name = "Respawn"
- set category = "OOC"
-
- if (CONFIG_GET(flag/norespawn))
- return
- if ((stat != DEAD || !( SSticker )))
- to_chat(usr, "You must be dead to use this!")
- return
-
- log_game("[key_name(usr)] used abandon mob.")
-
- to_chat(usr, "Please roleplay correctly!")
-
- if(!client)
- log_game("[key_name(usr)] AM failed due to disconnect.")
- return
- client.screen.Cut()
- client.screen += client.void
- if(!client)
- log_game("[key_name(usr)] AM failed due to disconnect.")
- return
-
- var/mob/dead/new_player/M = new /mob/dead/new_player()
- if(!client)
- log_game("[key_name(usr)] AM failed due to disconnect.")
- qdel(M)
- return
-
- M.key = key
-// M.Login() //wat
- return
diff --git a/code/modules/mob/living/death.dm b/code/modules/mob/living/death.dm
index c605f91528..f0caa63a1a 100644
--- a/code/modules/mob/living/death.dm
+++ b/code/modules/mob/living/death.dm
@@ -66,6 +66,10 @@
GLOB.alive_mob_list -= src
if(!gibbed)
GLOB.dead_mob_list += src
+ if(mind.key)
+ var/datum/preferences/P = GLOB.preferences_datums[ckey(mind.key)]
+ if(P)
+ P.respawn_time_of_death = world.time
set_drugginess(0)
set_disgust(0)
SetSleeping(0, 0)