diff --git a/code/__DEFINES/is_helpers.dm b/code/__DEFINES/is_helpers.dm
index d8d80a8b1c5..e9a3b21bbbc 100644
--- a/code/__DEFINES/is_helpers.dm
+++ b/code/__DEFINES/is_helpers.dm
@@ -107,7 +107,7 @@
//Misc mobs
#define isobserver(A) (istype(A, /mob/dead/observer))
-#define isnewplayer(A) (istype(A, /mob/new_player))
+#define isnewplayer(A) (istype(A, /mob/dead/new_player))
#define isovermind(A) (istype(A, /mob/camera/blob))
diff --git a/code/__HELPERS/unsorted.dm b/code/__HELPERS/unsorted.dm
index 71456830e34..f46c3f05c5c 100644
--- a/code/__HELPERS/unsorted.dm
+++ b/code/__HELPERS/unsorted.dm
@@ -331,7 +331,7 @@ Turf and target are seperate in case you want to teleport some distance from a t
moblist.Add(M)
for(var/mob/dead/observer/M in sortmob)
moblist.Add(M)
- for(var/mob/new_player/M in sortmob)
+ for(var/mob/dead/new_player/M in sortmob)
moblist.Add(M)
for(var/mob/living/carbon/monkey/M in sortmob)
moblist.Add(M)
diff --git a/code/_globalvars/lists/mobs.dm b/code/_globalvars/lists/mobs.dm
index 7c3da2f99c3..a2e0e1e0b5f 100644
--- a/code/_globalvars/lists/mobs.dm
+++ b/code/_globalvars/lists/mobs.dm
@@ -7,10 +7,10 @@ var/list/stealthminID = list() //reference list with IDs that store ckeys,
//Since it didn't really belong in any other category, I'm putting this here
//This is for procs to replace all the goddamn 'in world's that are chilling around the code
-var/global/list/player_list = list() //all mobs **with clients attached**. Excludes /mob/new_player
+var/global/list/player_list = list() //all mobs **with clients attached**. Excludes /mob/dead/new_player
var/global/list/mob_list = list() //all mobs, including clientless
-var/global/list/living_mob_list = list() //all alive mobs, including clientless. Excludes /mob/new_player
-var/global/list/dead_mob_list = list() //all dead mobs, including clientless. Excludes /mob/new_player
+var/global/list/living_mob_list = list() //all alive mobs, including clientless. Excludes /mob/dead/new_player
+var/global/list/dead_mob_list = list() //all dead mobs, including clientless. Excludes /mob/dead/new_player
var/global/list/joined_player_list = list() //all clients that have joined the game at round-start or as a latejoin.
var/global/list/silicon_mobs = list() //all silicon mobs
var/global/list/pai_list = list()
\ No newline at end of file
diff --git a/code/_onclick/other_mobs.dm b/code/_onclick/other_mobs.dm
index 73b50c3ca6c..e16286e3a31 100644
--- a/code/_onclick/other_mobs.dm
+++ b/code/_onclick/other_mobs.dm
@@ -200,5 +200,5 @@
New Players:
Have no reason to click on anything at all.
*/
-/mob/new_player/ClickOn()
+/mob/dead/new_player/ClickOn()
return
diff --git a/code/controllers/subsystem/jobs.dm b/code/controllers/subsystem/jobs.dm
index 6f8a86ce42d..454663bae13 100644
--- a/code/controllers/subsystem/jobs.dm
+++ b/code/controllers/subsystem/jobs.dm
@@ -68,8 +68,7 @@ var/datum/controller/subsystem/job/SSjob
SetupOccupations()
return type_occupations[jobtype]
-
-/datum/controller/subsystem/job/proc/AssignRole(mob/new_player/player, rank, latejoin=0)
+/datum/controller/subsystem/job/proc/AssignRole(mob/dead/new_player/player, rank, latejoin=0)
Debug("Running AR, Player: [player], Rank: [rank], LJ: [latejoin]")
if(player && player.mind && rank)
var/datum/job/job = GetJob(rank)
@@ -94,7 +93,7 @@ var/datum/controller/subsystem/job/SSjob
/datum/controller/subsystem/job/proc/FindOccupationCandidates(datum/job/job, level, flag)
Debug("Running FOC, Job: [job], Level: [level], Flag: [flag]")
var/list/candidates = list()
- for(var/mob/new_player/player in unassigned)
+ for(var/mob/dead/new_player/player in unassigned)
if(jobban_isbanned(player, job.title))
Debug("FOC isbanned failed, Player: [player]")
continue
@@ -115,7 +114,7 @@ var/datum/controller/subsystem/job/SSjob
candidates += player
return candidates
-/datum/controller/subsystem/job/proc/GiveRandomJob(mob/new_player/player)
+/datum/controller/subsystem/job/proc/GiveRandomJob(mob/dead/new_player/player)
Debug("GRJ Giving random job, Player: [player]")
for(var/datum/job/job in shuffle(occupations))
if(!job)
@@ -151,7 +150,7 @@ var/datum/controller/subsystem/job/SSjob
break
/datum/controller/subsystem/job/proc/ResetOccupations()
- for(var/mob/new_player/player in player_list)
+ for(var/mob/dead/new_player/player in player_list)
if((player) && (player.mind))
player.mind.assigned_role = null
player.mind.special_role = null
@@ -174,7 +173,7 @@ var/datum/controller/subsystem/job/SSjob
var/list/candidates = FindOccupationCandidates(job, level)
if(!candidates.len)
continue
- var/mob/new_player/candidate = pick(candidates)
+ var/mob/dead/new_player/candidate = pick(candidates)
if(AssignRole(candidate, command_position))
return 1
return 0
@@ -192,7 +191,7 @@ var/datum/controller/subsystem/job/SSjob
var/list/candidates = FindOccupationCandidates(job, level)
if(!candidates.len)
continue
- var/mob/new_player/candidate = pick(candidates)
+ var/mob/dead/new_player/candidate = pick(candidates)
AssignRole(candidate, command_position)
return
@@ -207,7 +206,7 @@ var/datum/controller/subsystem/job/SSjob
var/list/candidates = list()
candidates = FindOccupationCandidates(job, level)
if(candidates.len)
- var/mob/new_player/candidate = pick(candidates)
+ var/mob/dead/new_player/candidate = pick(candidates)
if(AssignRole(candidate, "AI"))
ai_selected++
break
@@ -231,7 +230,7 @@ var/datum/controller/subsystem/job/SSjob
A.spawn_positions = 3
//Get the players who are ready
- for(var/mob/new_player/player in player_list)
+ for(var/mob/dead/new_player/player in player_list)
if(player.ready && player.mind && !player.mind.assigned_role)
unassigned += player
@@ -261,7 +260,7 @@ var/datum/controller/subsystem/job/SSjob
var/datum/job/assist = new /datum/job/assistant()
var/list/assistant_candidates = FindOccupationCandidates(assist, 3)
Debug("AC1, Candidates: [assistant_candidates.len]")
- for(var/mob/new_player/player in assistant_candidates)
+ for(var/mob/dead/new_player/player in assistant_candidates)
Debug("AC1 pass, Player: [player]")
AssignRole(player, "Assistant")
assistant_candidates -= player
@@ -292,7 +291,7 @@ var/datum/controller/subsystem/job/SSjob
CheckHeadPositions(level)
// Loop through all unassigned players
- for(var/mob/new_player/player in unassigned)
+ for(var/mob/dead/new_player/player in unassigned)
if(PopcapReached())
RejectPlayer(player)
@@ -330,13 +329,13 @@ var/datum/controller/subsystem/job/SSjob
// Hand out random jobs to the people who didn't get any in the last check
// Also makes sure that they got their preference correct
- for(var/mob/new_player/player in unassigned)
+ for(var/mob/dead/new_player/player in unassigned)
if(PopcapReached())
RejectPlayer(player)
else if(jobban_isbanned(player, "Assistant"))
GiveRandomJob(player) //you get to roll for random before everyone else just to be sure you don't get assistant. you're so speshul
- for(var/mob/new_player/player in unassigned)
+ for(var/mob/dead/new_player/player in unassigned)
if(PopcapReached())
RejectPlayer(player)
else if(player.client.prefs.joblessrole == BERANDOMJOB)
@@ -347,7 +346,7 @@ var/datum/controller/subsystem/job/SSjob
Debug("DO, Running AC2")
// For those who wanted to be assistant if their preferences were filled, here you go.
- for(var/mob/new_player/player in unassigned)
+ for(var/mob/dead/new_player/player in unassigned)
if(PopcapReached())
RejectPlayer(player)
if(player.client.prefs.joblessrole == BEASSISTANT)
@@ -356,14 +355,14 @@ var/datum/controller/subsystem/job/SSjob
else // For those who don't want to play if their preference were filled, back you go.
RejectPlayer(player)
- for(var/mob/new_player/player in unassigned) //Players that wanted to back out but couldn't because they're antags (can you feel the edge case?)
+ for(var/mob/dead/new_player/player in unassigned) //Players that wanted to back out but couldn't because they're antags (can you feel the edge case?)
GiveRandomJob(player)
return 1
//Gives the player the stuff he should have with his rank
/datum/controller/subsystem/job/proc/EquipRank(mob/M, rank, joined_late=0)
- var/mob/new_player/N
+ var/mob/dead/new_player/N
var/mob/living/H
if(!joined_late)
N = M
@@ -473,7 +472,7 @@ var/datum/controller/subsystem/job/SSjob
var/level4 = 0 //never
var/level5 = 0 //banned
var/level6 = 0 //account too young
- for(var/mob/new_player/player in player_list)
+ for(var/mob/dead/new_player/player in player_list)
if(!(player.ready && player.mind && !player.mind.assigned_role))
continue //This player is not ready
if(jobban_isbanned(player, job.title))
@@ -500,7 +499,7 @@ var/datum/controller/subsystem/job/SSjob
return 1
return 0
-/datum/controller/subsystem/job/proc/RejectPlayer(mob/new_player/player)
+/datum/controller/subsystem/job/proc/RejectPlayer(mob/dead/new_player/player)
if(player.mind && player.mind.special_role)
return
if(PopcapReached())
diff --git a/code/controllers/subsystem/ticker.dm b/code/controllers/subsystem/ticker.dm
index d76700699ea..9a28099bff7 100644
--- a/code/controllers/subsystem/ticker.dm
+++ b/code/controllers/subsystem/ticker.dm
@@ -86,7 +86,7 @@ var/datum/controller/subsystem/ticker/ticker
timeLeft = max(0,start_at - world.time)
totalPlayers = 0
totalPlayersReady = 0
- for(var/mob/new_player/player in player_list)
+ for(var/mob/dead/new_player/player in player_list)
++totalPlayers
if(player.ready)
++totalPlayersReady
@@ -364,7 +364,7 @@ var/datum/controller/subsystem/ticker/ticker
M.gib()
/datum/controller/subsystem/ticker/proc/create_characters()
- for(var/mob/new_player/player in player_list)
+ for(var/mob/dead/new_player/player in player_list)
if(player.ready && player.mind)
joined_player_list += player.ckey
player.create_character(FALSE)
@@ -373,7 +373,7 @@ var/datum/controller/subsystem/ticker/ticker
CHECK_TICK
/datum/controller/subsystem/ticker/proc/collect_minds()
- for(var/mob/new_player/P in player_list)
+ for(var/mob/dead/new_player/P in player_list)
if(P.new_character && P.new_character.mind)
ticker.minds += P.new_character.mind
CHECK_TICK
@@ -381,7 +381,7 @@ var/datum/controller/subsystem/ticker/ticker
/datum/controller/subsystem/ticker/proc/equip_characters()
var/captainless=1
- for(var/mob/new_player/N in player_list)
+ for(var/mob/dead/new_player/N in player_list)
var/mob/living/carbon/human/player = N.new_character
if(istype(player) && player.mind && player.mind.assigned_role)
if(player.mind.assigned_role == "Captain")
@@ -390,14 +390,14 @@ var/datum/controller/subsystem/ticker/ticker
SSjob.EquipRank(N, player.mind.assigned_role, 0)
CHECK_TICK
if(captainless)
- for(var/mob/new_player/N in player_list)
+ for(var/mob/dead/new_player/N in player_list)
if(N.new_character)
to_chat(N, "Captainship not forced on anyone.")
CHECK_TICK
/datum/controller/subsystem/ticker/proc/transfer_characters()
var/list/livings = list()
- for(var/mob/new_player/player in player_list)
+ for(var/mob/dead/new_player/player in player_list)
var/mob/living = player.transfer_character()
if(living)
qdel(player)
@@ -624,7 +624,7 @@ var/datum/controller/subsystem/ticker/ticker
return
queue_delay++
- var/mob/new_player/next_in_line = queued_players[1]
+ var/mob/dead/new_player/next_in_line = queued_players[1]
switch(queue_delay)
if(5) //every 5 ticks check if there is a slot available
diff --git a/code/datums/datacore.dm b/code/datums/datacore.dm
index 290506687bf..1aa7f126f57 100644
--- a/code/datums/datacore.dm
+++ b/code/datums/datacore.dm
@@ -77,7 +77,7 @@
return
/datum/datacore/proc/manifest()
- for(var/mob/new_player/N in player_list)
+ for(var/mob/dead/new_player/N in player_list)
if(ishuman(N.new_character))
manifest_inject(N.new_character, N.client)
CHECK_TICK
diff --git a/code/datums/hud.dm b/code/datums/hud.dm
index 75adb165d3a..5e91f3af126 100644
--- a/code/datums/hud.dm
+++ b/code/datums/hud.dm
@@ -81,11 +81,11 @@ var/datum/atom_hud/huds = list( \
if(src in hud.hudusers)
hud.add_hud_to(src)
-/mob/new_player/reload_huds()
+/mob/dead/new_player/reload_huds()
return
/mob/proc/add_click_catcher()
client.screen += client.void
-/mob/new_player/add_click_catcher()
+/mob/dead/new_player/add_click_catcher()
return
diff --git a/code/datums/mind.dm b/code/datums/mind.dm
index 144b25494a4..a2041e4025c 100644
--- a/code/datums/mind.dm
+++ b/code/datums/mind.dm
@@ -1544,7 +1544,7 @@
mind_initialize() //updates the mind (or creates and initializes one if one doesn't exist)
mind.active = 1 //indicates that the mind is currently synced with a client
-/mob/new_player/sync_mind()
+/mob/dead/new_player/sync_mind()
return
/mob/dead/observer/sync_mind()
diff --git a/code/game/atoms.dm b/code/game/atoms.dm
index 47016e218ab..8f47ae1656f 100644
--- a/code/game/atoms.dm
+++ b/code/game/atoms.dm
@@ -53,6 +53,9 @@
//Note: the following functions don't call the base for optimization and must copypasta:
// /turf/Initialize
// /turf/open/space/Initialize
+// /mob/dead/new_player/Initialize
+
+//Do also note that this proc always runs in New for /mob/dead
/atom/proc/Initialize(mapload, ...)
if(initialized)
stack_trace("Warning: [src]([type]) initialized multiple times!")
diff --git a/code/game/gamemodes/blob/blobs/blob_mobs.dm b/code/game/gamemodes/blob/blobs/blob_mobs.dm
index 72922cc3958..2249642bfc7 100644
--- a/code/game/gamemodes/blob/blobs/blob_mobs.dm
+++ b/code/game/gamemodes/blob/blobs/blob_mobs.dm
@@ -102,7 +102,7 @@
var/is_zombie = 0
gold_core_spawnable = 1
-/mob/living/simple_animal/hostile/blob/blobspore/New(loc, var/obj/structure/blob/factory/linked_node)
+/mob/living/simple_animal/hostile/blob/blobspore/Initialize(mapload, var/obj/structure/blob/factory/linked_node)
if(istype(linked_node))
factory = linked_node
factory.spores += src
@@ -222,7 +222,7 @@
see_in_dark = 8
var/independent = FALSE
-/mob/living/simple_animal/hostile/blob/blobbernaut/New()
+/mob/living/simple_animal/hostile/blob/blobbernaut/Initialize()
..()
if(!independent) //no pulling people deep into the blob
verbs -= /mob/living/verb/pulled
diff --git a/code/game/gamemodes/blob/overmind.dm b/code/game/gamemodes/blob/overmind.dm
index 0ce82f07667..13f868472aa 100644
--- a/code/game/gamemodes/blob/overmind.dm
+++ b/code/game/gamemodes/blob/overmind.dm
@@ -29,7 +29,7 @@
var/manualplace_min_time = 600 //in deciseconds //a minute, to get bearings
var/autoplace_max_time = 3600 //six minutes, as long as should be needed
-/mob/camera/blob/New(loc, pre_placed = 0, mode_made = 0, starting_points = 60)
+/mob/camera/blob/Initialize(mapload, pre_placed = 0, mode_made = 0, starting_points = 60)
blob_points = starting_points
if(pre_placed) //we already have a core!
manualplace_min_time = 0
diff --git a/code/game/gamemodes/clock_cult/clock_mobs/anima_fragment.dm b/code/game/gamemodes/clock_cult/clock_mobs/anima_fragment.dm
index 6230c47af3c..a327211d012 100644
--- a/code/game/gamemodes/clock_cult/clock_mobs/anima_fragment.dm
+++ b/code/game/gamemodes/clock_cult/clock_mobs/anima_fragment.dm
@@ -19,7 +19,7 @@
opposable thumbs."
var/movement_delay_time //how long the fragment is slowed after being hit
-/mob/living/simple_animal/hostile/clockwork/fragment/New()
+/mob/living/simple_animal/hostile/clockwork/fragment/Initialize()
..()
set_light(2, 0.8)
if(prob(1))
diff --git a/code/game/gamemodes/clock_cult/clock_mobs/clockwork_marauder.dm b/code/game/gamemodes/clock_cult/clock_mobs/clockwork_marauder.dm
index 70edde4e500..bc57e139b3c 100644
--- a/code/game/gamemodes/clock_cult/clock_mobs/clockwork_marauder.dm
+++ b/code/game/gamemodes/clock_cult/clock_mobs/clockwork_marauder.dm
@@ -29,7 +29,7 @@
Stay near your host to protect and heal them; being too far from your host will rapidly cause you massive damage. Recall to your host if you are too weak and believe you cannot continue \
fighting safely. As a final note, you should probably avoid harming any fellow servants of Ratvar."
-/mob/living/simple_animal/hostile/clockwork/marauder/New()
+/mob/living/simple_animal/hostile/clockwork/marauder/Initialize()
..()
true_name = pick(possible_true_names)
set_light(2, 1.1)
diff --git a/code/game/gamemodes/devil/imp/imp.dm b/code/game/gamemodes/devil/imp/imp.dm
index 211a343b525..3698a391e14 100644
--- a/code/game/gamemodes/devil/imp/imp.dm
+++ b/code/game/gamemodes/devil/imp/imp.dm
@@ -38,7 +38,7 @@
Though you are not obligated to help, perhaps by aiding a higher ranking devil, you might just get a promotion. However, you are incapable \
of intentionally harming a fellow devil."
-/mob/living/simple_animal/imp/New()
+/mob/living/simple_animal/imp/Initialize()
..()
boost = world.time + 30
diff --git a/code/game/gamemodes/devil/true_devil/_true_devil.dm b/code/game/gamemodes/devil/true_devil/_true_devil.dm
index c8d2a178902..c7af40414b5 100644
--- a/code/game/gamemodes/devil/true_devil/_true_devil.dm
+++ b/code/game/gamemodes/devil/true_devil/_true_devil.dm
@@ -27,7 +27,7 @@
-/mob/living/carbon/true_devil/New()
+/mob/living/carbon/true_devil/Initialize()
create_bodyparts() //initialize bodyparts
create_internal_organs()
diff --git a/code/game/gamemodes/game_mode.dm b/code/game/gamemodes/game_mode.dm
index 8834d274a66..206a3761170 100644
--- a/code/game/gamemodes/game_mode.dm
+++ b/code/game/gamemodes/game_mode.dm
@@ -53,7 +53,7 @@
///Checks to see if the game can be setup and ran with the current number of players or whatnot.
/datum/game_mode/proc/can_start()
var/playerC = 0
- for(var/mob/new_player/player in player_list)
+ for(var/mob/dead/new_player/player in player_list)
if((player.client)&&(player.ready))
playerC++
if(!Debug2)
@@ -302,7 +302,7 @@
var/datum/mind/applicant = null
// Ultimate randomizing code right here
- for(var/mob/new_player/player in player_list)
+ for(var/mob/dead/new_player/player in player_list)
if(player.client && player.ready)
players += player
@@ -310,7 +310,7 @@
// Goodbye antag dante
players = shuffle(players)
- for(var/mob/new_player/player in players)
+ for(var/mob/dead/new_player/player in players)
if(player.client && player.ready)
if(role in player.client.prefs.be_special)
if(!jobban_isbanned(player, "Syndicate") && !jobban_isbanned(player, role)) //Nodrak/Carn: Antag Job-bans
@@ -324,7 +324,7 @@
candidates -= player
if(candidates.len < recommended_enemies)
- for(var/mob/new_player/player in players)
+ for(var/mob/dead/new_player/player in players)
if(player.client && player.ready)
if(!(role in player.client.prefs.be_special)) // We don't have enough people who want to be antagonist, make a seperate list of people who don't want to be one
if(!jobban_isbanned(player, "Syndicate") && !jobban_isbanned(player, role)) //Nodrak/Carn: Antag Job-bans
@@ -349,7 +349,7 @@
break
/*
if(candidates.len < recommended_enemies && override_jobbans) //If we still don't have enough people, we're going to start drafting banned people.
- for(var/mob/new_player/player in players)
+ for(var/mob/dead/new_player/player in players)
if (player.client && player.ready)
if(jobban_isbanned(player, "Syndicate") || jobban_isbanned(player, roletext)) //Nodrak/Carn: Antag Job-bans
drafted += player.mind
@@ -377,7 +377,7 @@
// Less if there are not enough valid players in the game entirely to make recommended_enemies.
/*
-/datum/game_mode/proc/check_player_role_pref(var/role, var/mob/new_player/player)
+/datum/game_mode/proc/check_player_role_pref(var/role, var/mob/dead/new_player/player)
if(player.preferences.be_special & role)
return 1
return 0
@@ -385,7 +385,7 @@
/datum/game_mode/proc/num_players()
. = 0
- for(var/mob/new_player/P in player_list)
+ for(var/mob/dead/new_player/P in player_list)
if(P.client && P.ready)
. ++
diff --git a/code/game/gamemodes/miniantags/borer/borer.dm b/code/game/gamemodes/miniantags/borer/borer.dm
index cc44e537897..a4dda8145f7 100644
--- a/code/game/gamemodes/miniantags/borer/borer.dm
+++ b/code/game/gamemodes/miniantags/borer/borer.dm
@@ -110,8 +110,8 @@ var/total_borer_hosts_needed = 10
var/datum/action/innate/borer/punish_victim/punish_victim_action = new
var/datum/action/innate/borer/jumpstart_host/jumpstart_host_action = new
-/mob/living/simple_animal/borer/New(atom/newloc, var/gen=1)
- ..(newloc)
+/mob/living/simple_animal/borer/Initialize(mapload, gen=1)
+ ..()
generation = gen
notify_ghosts("A cortical borer has been created in [get_area(src)]!", enter_link = "(Click to enter)", source = src, action = NOTIFY_ATTACK)
real_name = "Cortical Borer [rand(1000,9999)]"
@@ -300,8 +300,8 @@ var/total_borer_hosts_needed = 10
message = copytext(message,2)
for(var/borer in borers)
to_chat(borer, "Cortical Link: [truename] sings, \"[message]\"")
- for(var/mob/dead in dead_mob_list)
- to_chat(dead, "Cortical Link: [truename] sings, \"[message]\"")
+ for(var/mob/D in dead_mob_list)
+ to_chat(D, "Cortical Link: [truename] sings, \"[message]\"")
return
if(!victim)
to_chat(src, "You cannot speak without a host!")
diff --git a/code/game/gamemodes/miniantags/bot_swarm/swarmer.dm b/code/game/gamemodes/miniantags/bot_swarm/swarmer.dm
index d1939f458ae..cd769e1b18c 100644
--- a/code/game/gamemodes/miniantags/bot_swarm/swarmer.dm
+++ b/code/game/gamemodes/miniantags/bot_swarm/swarmer.dm
@@ -8,7 +8,7 @@
materials = list(MAT_METAL=10000, MAT_GLASS=4000)
-/obj/item/device/unactivated_swarmer/New()
+/obj/item/device/unactivated_swarmer/Initialize()
if(!crit_fail)
notify_ghosts("An unactivated swarmer has been created in [get_area(src)]!", enter_link = "(Click to enter)", source = src, action = NOTIFY_ATTACK)
..()
@@ -118,7 +118,7 @@
..()
to_chat(src, login_text_dump)
-/mob/living/simple_animal/hostile/swarmer/New()
+/mob/living/simple_animal/hostile/swarmer/Initialize()
..()
verbs -= /mob/living/verb/pulled
var/datum/atom_hud/data/diagnostic/diag_hud = huds[DATA_HUD_DIAGNOSTIC]
diff --git a/code/game/gamemodes/miniantags/revenant/revenant.dm b/code/game/gamemodes/miniantags/revenant/revenant.dm
index 0a2ab17697e..3c597e7f325 100644
--- a/code/game/gamemodes/miniantags/revenant/revenant.dm
+++ b/code/game/gamemodes/miniantags/revenant/revenant.dm
@@ -62,7 +62,7 @@
var/image/ghostimage = null //Visible to ghost with darkness off
var/generated_objectives_and_spells = FALSE
-/mob/living/simple_animal/revenant/New()
+/mob/living/simple_animal/revenant/Initialize()
..()
ghostimage = image(src.icon,src,src.icon_state)
diff --git a/code/game/gamemodes/miniantags/slaughter/slaughter.dm b/code/game/gamemodes/miniantags/slaughter/slaughter.dm
index dbe7725f533..355936d9223 100644
--- a/code/game/gamemodes/miniantags/slaughter/slaughter.dm
+++ b/code/game/gamemodes/miniantags/slaughter/slaughter.dm
@@ -46,7 +46,7 @@
del_on_death = 1
deathmessage = "screams in anger as it collapses into a puddle of viscera!"
-/mob/living/simple_animal/slaughter/New()
+/mob/living/simple_animal/slaughter/Initialize()
..()
var/obj/effect/proc_holder/spell/bloodcrawl/bloodspell = new
AddSpell(bloodspell)
diff --git a/code/game/gamemodes/objective.dm b/code/game/gamemodes/objective.dm
index 6e6066ed2a2..e4b44fa4aaf 100644
--- a/code/game/gamemodes/objective.dm
+++ b/code/game/gamemodes/objective.dm
@@ -656,7 +656,7 @@ var/global/list/possible_items_special = list()
if (ticker)
var/n_p = 1 //autowin
if (ticker.current_state == GAME_STATE_SETTING_UP)
- for(var/mob/new_player/P in player_list)
+ for(var/mob/dead/new_player/P in player_list)
if(P.client && P.ready && P.mind!=owner)
n_p ++
else if (ticker.current_state == GAME_STATE_PLAYING)
diff --git a/code/game/gamemodes/revolution/revolution.dm b/code/game/gamemodes/revolution/revolution.dm
index 67d8f34ee09..e85698196bc 100644
--- a/code/game/gamemodes/revolution/revolution.dm
+++ b/code/game/gamemodes/revolution/revolution.dm
@@ -70,7 +70,7 @@
for(var/datum/mind/rev_mind in head_revolutionaries) //People with return to lobby may still be in the lobby. Let's pick someone else in that case.
- if(istype(rev_mind.current,/mob/new_player))
+ if(istype(rev_mind.current,/mob/dead/new_player))
head_revolutionaries -= rev_mind
var/list/newcandidates = shuffle(antag_candidates)
if(newcandidates.len == 0)
@@ -79,7 +79,7 @@
var/datum/mind/lenin = M
antag_candidates -= lenin
newcandidates -= lenin
- if(istype(lenin.current,/mob/new_player)) //We don't want to make the same mistake again
+ if(istype(lenin.current,/mob/dead/new_player)) //We don't want to make the same mistake again
continue
else
var/mob/Nm = lenin.current
diff --git a/code/game/objects/items/weapons/cards_ids.dm b/code/game/objects/items/weapons/cards_ids.dm
index 0094275e889..c3e813f5a80 100644
--- a/code/game/objects/items/weapons/cards_ids.dm
+++ b/code/game/objects/items/weapons/cards_ids.dm
@@ -157,7 +157,7 @@ update_label("John Doe", "Clowny")
if(user.mind.special_role || anyone)
if(alert(user, "Action", "Agent ID", "Show", "Forge") == "Forge")
var t = copytext(sanitize(input(user, "What name would you like to put on this card?", "Agent card name", registered_name ? registered_name : (ishuman(user) ? user.real_name : user.name))as text | null),1,26)
- if(!t || t == "Unknown" || t == "floor" || t == "wall" || t == "r-wall") //Same as mob/new_player/prefrences.dm
+ if(!t || t == "Unknown" || t == "floor" || t == "wall" || t == "r-wall") //Same as mob/dead/new_player/prefrences.dm
if (t)
alert("Invalid name.")
return
diff --git a/code/game/objects/structures/mirror.dm b/code/game/objects/structures/mirror.dm
index d7b62cf0341..a25e13e68d1 100644
--- a/code/game/objects/structures/mirror.dm
+++ b/code/game/objects/structures/mirror.dm
@@ -20,7 +20,7 @@
var/userloc = H.loc
- //see code/modules/mob/new_player/preferences.dm at approx line 545 for comments!
+ //see code/modules/mob/dead/new_player/preferences.dm at approx line 545 for comments!
//this is largely copypasted from there.
//handle facial hair (if necessary)
diff --git a/code/modules/VR/vr_human.dm b/code/modules/VR/vr_human.dm
index f5d4fad7e5f..f8d59e060bb 100644
--- a/code/modules/VR/vr_human.dm
+++ b/code/modules/VR/vr_human.dm
@@ -6,7 +6,7 @@
var/datum/action/quit_vr/quit_action
-/mob/living/carbon/human/virtual_reality/New()
+/mob/living/carbon/human/virtual_reality/Initialize()
..()
quit_action = new()
quit_action.Grant(src)
diff --git a/code/modules/admin/topic.dm b/code/modules/admin/topic.dm
index 0bc2f90a697..78c6d725218 100644
--- a/code/modules/admin/topic.dm
+++ b/code/modules/admin/topic.dm
@@ -1339,7 +1339,7 @@
log_admin("[key_name(usr)] has sent [key_name(M)] back to the Lobby.")
message_admins("[key_name(usr)] has sent [key_name(M)] back to the Lobby.")
- var/mob/new_player/NP = new()
+ var/mob/dead/new_player/NP = new()
NP.ckey = M.ckey
qdel(M)
@@ -1525,7 +1525,7 @@
var/mob/M = locate(href_list["makeanimal"])
if(isnewplayer(M))
- to_chat(usr, "This cannot be used on instances of type /mob/new_player.")
+ to_chat(usr, "This cannot be used on instances of type /mob/dead/new_player.")
return
usr.client.cmd_admin_animalize(M)
diff --git a/code/modules/events/wizard/magicarp.dm b/code/modules/events/wizard/magicarp.dm
index 81fa857f3cb..fe89f02b914 100644
--- a/code/modules/events/wizard/magicarp.dm
+++ b/code/modules/events/wizard/magicarp.dm
@@ -41,7 +41,7 @@
/obj/item/projectile/magic/death, /obj/item/projectile/magic/teleport, /obj/item/projectile/magic/door, /obj/item/projectile/magic/aoe/fireball,
/obj/item/projectile/magic/spellblade, /obj/item/projectile/magic/arcane_barrage)
-/mob/living/simple_animal/hostile/carp/ranged/New()
+/mob/living/simple_animal/hostile/carp/ranged/Initialize()
projectiletype = pick(allowed_projectile_types)
..()
diff --git a/code/modules/holiday/halloween.dm b/code/modules/holiday/halloween.dm
index 2b8058665e4..9ffcce2071c 100644
--- a/code/modules/holiday/halloween.dm
+++ b/code/modules/holiday/halloween.dm
@@ -129,7 +129,7 @@
layer = 4
var/timer = 0
-/mob/living/simple_animal/shade/howling_ghost/New()
+/mob/living/simple_animal/shade/howling_ghost/Initialize()
..()
icon_state = pick("ghost","ghostian","ghostian2","ghostking","ghost1","ghost2")
icon_living = icon_state
@@ -193,7 +193,7 @@
unsuitable_atmos_damage = 0
var/timer
-/mob/living/simple_animal/hostile/retaliate/clown/insane/New()
+/mob/living/simple_animal/hostile/retaliate/clown/insane/Initialize()
..()
timer = rand(5,15)
status_flags = (status_flags | GODMODE)
diff --git a/code/modules/holiday/holidays.dm b/code/modules/holiday/holidays.dm
index aa71708240e..27c178e466f 100644
--- a/code/modules/holiday/holidays.dm
+++ b/code/modules/holiday/holidays.dm
@@ -144,7 +144,7 @@
/datum/holiday/april_fools/celebrate()
if(ticker)
ticker.login_music = 'sound/ambience/clown.ogg'
- for(var/mob/new_player/P in mob_list)
+ for(var/mob/dead/new_player/P in mob_list)
if(P.client)
P.stopLobbySound()
P.client.playtitlemusic()
diff --git a/code/modules/mining/aux_base_camera.dm b/code/modules/mining/aux_base_camera.dm
index c0b8239aa2b..18f4deb2736 100644
--- a/code/modules/mining/aux_base_camera.dm
+++ b/code/modules/mining/aux_base_camera.dm
@@ -6,9 +6,9 @@
icon_state = "construction_drone"
var/area/starting_area
-mob/camera/aiEye/remote/base_construction/New(loc)
- starting_area = get_area(loc)
+/mob/camera/aiEye/remote/base_construction/Initialize()
..()
+ starting_area = get_area(loc)
/mob/camera/aiEye/remote/base_construction/setLoc(var/t)
var/area/curr_area = get_area(t)
diff --git a/code/modules/mining/minebot.dm b/code/modules/mining/minebot.dm
index cc7318357e6..5527cb20f24 100644
--- a/code/modules/mining/minebot.dm
+++ b/code/modules/mining/minebot.dm
@@ -48,7 +48,7 @@
var/datum/action/innate/minedrone/toggle_mode/toggle_mode_action
var/datum/action/innate/minedrone/dump_ore/dump_ore_action
-/mob/living/simple_animal/hostile/mining_drone/New()
+/mob/living/simple_animal/hostile/mining_drone/Initialize()
..()
toggle_light_action = new()
toggle_light_action.Grant(src)
diff --git a/code/modules/mob/dead/dead.dm b/code/modules/mob/dead/dead.dm
new file mode 100644
index 00000000000..d218d32b055
--- /dev/null
+++ b/code/modules/mob/dead/dead.dm
@@ -0,0 +1,12 @@
+//Dead mobs can exist whenever. This is needful
+/mob/dead/New(loc)
+ ..()
+ if(!initialized)
+ args[1] = FALSE
+ Initialize(arglist(args)) //EXIST DAMN YOU!!!
+
+/mob/dead/dust() //ghosts can't be vaporised.
+ return
+
+/mob/dead/gib() //ghosts can't be gibbed.
+ return
diff --git a/code/modules/mob/dead/death.dm b/code/modules/mob/dead/death.dm
deleted file mode 100644
index 7c827e55ffe..00000000000
--- a/code/modules/mob/dead/death.dm
+++ /dev/null
@@ -1,5 +0,0 @@
-/mob/dead/dust() //ghosts can't be vaporised.
- return
-
-/mob/dead/gib() //ghosts can't be gibbed.
- return
diff --git a/code/modules/mob/new_player/login.dm b/code/modules/mob/dead/new_player/login.dm
similarity index 93%
rename from code/modules/mob/new_player/login.dm
rename to code/modules/mob/dead/new_player/login.dm
index 6361756367b..35ad9d33032 100644
--- a/code/modules/mob/new_player/login.dm
+++ b/code/modules/mob/dead/new_player/login.dm
@@ -1,4 +1,4 @@
-/mob/new_player/Login()
+/mob/dead/new_player/Login()
if(!mind)
mind = new /datum/mind(key)
mind.active = 1
diff --git a/code/modules/mob/new_player/logout.dm b/code/modules/mob/dead/new_player/logout.dm
similarity index 85%
rename from code/modules/mob/new_player/logout.dm
rename to code/modules/mob/dead/new_player/logout.dm
index ad1c9b3098d..fd15f5e3097 100644
--- a/code/modules/mob/new_player/logout.dm
+++ b/code/modules/mob/dead/new_player/logout.dm
@@ -1,4 +1,4 @@
-/mob/new_player/Logout()
+/mob/dead/new_player/Logout()
ready = 0
..()
if(!spawning)//Here so that if they are spawning and log out, the other procs can play out and they will have a mob to come back to.
diff --git a/code/modules/mob/new_player/new_player.dm b/code/modules/mob/dead/new_player/new_player.dm
similarity index 93%
rename from code/modules/mob/new_player/new_player.dm
rename to code/modules/mob/dead/new_player/new_player.dm
index 26fe4658bfe..3a028576079 100644
--- a/code/modules/mob/new_player/new_player.dm
+++ b/code/modules/mob/dead/new_player/new_player.dm
@@ -1,6 +1,6 @@
-/mob/new_player
+/mob/dead/new_player
var/ready = 0
var/spawning = 0//Referenced when you want to delete the new_player later on in the code.
@@ -15,7 +15,10 @@
anchored = 1 // don't get pushed around
var/mob/living/new_character //for instant transfer once the round is set up
-/mob/new_player/New()
+/mob/dead/new_player/Initialize()
+ if(initialized)
+ stack_trace("Warning: [src]([type]) initialized multiple times!")
+ initialized = TRUE
tag = "mob_[next_mob_id++]"
mob_list += src
@@ -28,7 +31,7 @@
else
loc = locate(1,1,1)
-/mob/new_player/proc/new_player_panel()
+/mob/dead/new_player/proc/new_player_panel()
var/output = "Setup Character
"
@@ -70,7 +73,7 @@
popup.open(0)
return
-/mob/new_player/Stat()
+/mob/dead/new_player/Stat()
..()
if(statpanel("Lobby"))
@@ -88,7 +91,7 @@
stat("Players Ready:", "[ticker.totalPlayersReady]")
-/mob/new_player/Topic(href, href_list[])
+/mob/dead/new_player/Topic(href, href_list[])
if(src != usr)
return 0
@@ -273,7 +276,7 @@
return
to_chat(src, "Vote successful.")
-/mob/new_player/proc/IsJobAvailable(rank)
+/mob/dead/new_player/proc/IsJobAvailable(rank)
var/datum/job/job = SSjob.GetJob(rank)
if(!job)
return 0
@@ -295,7 +298,7 @@
return 1
-/mob/new_player/proc/AttemptLateSpawn(rank)
+/mob/dead/new_player/proc/AttemptLateSpawn(rank)
if(!IsJobAvailable(rank))
to_chat(src, alert("[rank] is not available. Please try another."))
return 0
@@ -369,7 +372,7 @@
ticker.mode.make_antag_chance(humanc)
qdel(src)
-/mob/new_player/proc/AddEmploymentContract(mob/living/carbon/human/employee)
+/mob/dead/new_player/proc/AddEmploymentContract(mob/living/carbon/human/employee)
//TODO: figure out a way to exclude wizards/nukeops/demons from this.
sleep(30)
for(var/C in employmentCabinets)
@@ -378,7 +381,7 @@
employmentCabinet.addFile(employee)
-/mob/new_player/proc/LateChoices()
+/mob/dead/new_player/proc/LateChoices()
var/mills = world.time - round_start_time // 1/10 of a second, not real milliseconds but whatever
//var/secs = ((mills % 36000) % 600) / 10 //Not really needed, but I'll leave it here for refrence.. or something
var/mins = (mills % 36000) / 600
@@ -439,7 +442,7 @@
popup.open(0) // 0 is passed to open so that it doesn't use the onclose() proc
-/mob/new_player/proc/create_character(transfer_after)
+/mob/dead/new_player/proc/create_character(transfer_after)
spawning = 1
close_spawn_windows()
@@ -461,24 +464,24 @@
if(transfer_after)
transfer_character()
-/mob/new_player/proc/transfer_character()
+/mob/dead/new_player/proc/transfer_character()
. = new_character
if(.)
new_character.key = key //Manually transfer the key to log them in
new_character.stopLobbySound()
-/mob/new_player/proc/ViewManifest()
+/mob/dead/new_player/proc/ViewManifest()
var/dat = ""
dat += "Crew Manifest
"
dat += data_core.get_manifest(OOC = 1)
src << browse(dat, "window=manifest;size=387x420;can_close=1")
-/mob/new_player/Move()
+/mob/dead/new_player/Move()
return 0
-/mob/new_player/proc/close_spawn_windows()
+/mob/dead/new_player/proc/close_spawn_windows()
src << browse(null, "window=latechoices") //closes late choices window
src << browse(null, "window=playersetup") //closes the player setup window
diff --git a/code/modules/mob/new_player/poll.dm b/code/modules/mob/dead/new_player/poll.dm
similarity index 95%
rename from code/modules/mob/new_player/poll.dm
rename to code/modules/mob/dead/new_player/poll.dm
index 80a43d5be40..2f77767558f 100644
--- a/code/modules/mob/new_player/poll.dm
+++ b/code/modules/mob/dead/new_player/poll.dm
@@ -2,7 +2,7 @@
var/optionid
var/optiontext
-/mob/new_player/proc/handle_player_polling()
+/mob/dead/new_player/proc/handle_player_polling()
if(!dbcon.IsConnected())
to_chat(usr, "Failed to establish database connection.")
return
@@ -19,7 +19,7 @@
output += ""
src << browse(output,"window=playerpolllist;size=500x300")
-/mob/new_player/proc/poll_player(pollid)
+/mob/dead/new_player/proc/poll_player(pollid)
if(!pollid)
return
if (!dbcon.Connect())
@@ -323,7 +323,7 @@
src << browse(output,"window=playerpoll;size=500x500")
return
-/mob/new_player/proc/poll_check_voted(pollid, text = FALSE)
+/mob/dead/new_player/proc/poll_check_voted(pollid, text = FALSE)
var/table = "poll_vote"
if (text)
table = "poll_textreply"
@@ -342,7 +342,7 @@
return .
-/mob/new_player/proc/vote_rig_check()
+/mob/dead/new_player/proc/vote_rig_check()
if (usr != src)
if (!usr || !src)
return 0
@@ -354,7 +354,7 @@
return 0
return 1
-/mob/new_player/proc/vote_valid_check(pollid, holder, type)
+/mob/dead/new_player/proc/vote_valid_check(pollid, holder, type)
if (!dbcon.Connect())
to_chat(src, "Failed to establish database connection.")
return 0
@@ -369,7 +369,7 @@
return 0
return 1
-/mob/new_player/proc/vote_on_irv_poll(pollid, list/votelist)
+/mob/dead/new_player/proc/vote_on_irv_poll(pollid, list/votelist)
if (!dbcon.Connect())
to_chat(src, "Failed to establish database connection.")
return 0
@@ -438,7 +438,7 @@
return 1
-/mob/new_player/proc/vote_on_poll(pollid, optionid)
+/mob/dead/new_player/proc/vote_on_poll(pollid, optionid)
if (!dbcon.Connect())
to_chat(src, "Failed to establish database connection.")
return 0
@@ -458,7 +458,7 @@
usr << browse(null,"window=playerpoll")
return 1
-/mob/new_player/proc/log_text_poll_reply(pollid, replytext)
+/mob/dead/new_player/proc/log_text_poll_reply(pollid, replytext)
if (!dbcon.Connect())
to_chat(src, "Failed to establish database connection.")
return 0
@@ -485,7 +485,7 @@
usr << browse(null,"window=playerpoll")
return 1
-/mob/new_player/proc/vote_on_numval_poll(pollid, optionid, rating)
+/mob/dead/new_player/proc/vote_on_numval_poll(pollid, optionid, rating)
if (!dbcon.Connect())
to_chat(src, "Failed to establish database connection.")
return 0
@@ -512,7 +512,7 @@
usr << browse(null,"window=playerpoll")
return 1
-/mob/new_player/proc/vote_on_multi_poll(pollid, optionid)
+/mob/dead/new_player/proc/vote_on_multi_poll(pollid, optionid)
if (!dbcon.Connect())
to_chat(src, "Failed to establish database connection.")
return 0
diff --git a/code/modules/mob/new_player/preferences_setup.dm b/code/modules/mob/dead/new_player/preferences_setup.dm
similarity index 100%
rename from code/modules/mob/new_player/preferences_setup.dm
rename to code/modules/mob/dead/new_player/preferences_setup.dm
diff --git a/code/modules/mob/new_player/sprite_accessories.dm b/code/modules/mob/dead/new_player/sprite_accessories.dm
similarity index 100%
rename from code/modules/mob/new_player/sprite_accessories.dm
rename to code/modules/mob/dead/new_player/sprite_accessories.dm
diff --git a/code/modules/mob/dead/observer/observer.dm b/code/modules/mob/dead/observer/observer.dm
index 93710f783f5..a24809bbb20 100644
--- a/code/modules/mob/dead/observer/observer.dm
+++ b/code/modules/mob/dead/observer/observer.dm
@@ -59,7 +59,7 @@ var/global/static/observer_default_invisibility = INVISIBILITY_OBSERVER
// of the mob
var/deadchat_name
-/mob/dead/observer/New(mob/body)
+/mob/dead/observer/Initialize()
invisibility = observer_default_invisibility
verbs += /mob/dead/observer/proc/dead_tele
@@ -79,6 +79,7 @@ var/global/static/observer_default_invisibility = INVISIBILITY_OBSERVER
updateallghostimages()
var/turf/T
+ var/mob/body = loc
if(ismob(body))
T = get_turf(body) //Where is the body located?
logging = body.logging //preserve our logs by copying them to our ghost
diff --git a/code/modules/mob/interactive.dm b/code/modules/mob/interactive.dm
index e07c95b7f94..0363520f4c8 100644
--- a/code/modules/mob/interactive.dm
+++ b/code/modules/mob/interactive.dm
@@ -381,7 +381,7 @@
faction -= "neutral"
faction += "hostile"
-/mob/living/carbon/human/interactive/New()
+/mob/living/carbon/human/interactive/Initialize()
..()
set_species(/datum/species/synth)
@@ -1605,13 +1605,13 @@
nearby += M
//END OF MODULES
-/mob/living/carbon/human/interactive/angry/New()
+/mob/living/carbon/human/interactive/angry/Initialize()
TRAITS |= TRAIT_ROBUST
TRAITS |= TRAIT_MEAN
faction += "bot_angry"
..()
-/mob/living/carbon/human/interactive/friendly/New()
+/mob/living/carbon/human/interactive/friendly/Initialize()
TRAITS |= TRAIT_FRIENDLY
TRAITS |= TRAIT_UNROBUST
faction += "bot_friendly"
@@ -1619,7 +1619,7 @@
functions -= "combat"
..()
-/mob/living/carbon/human/interactive/greytide/New()
+/mob/living/carbon/human/interactive/greytide/Initialize()
TRAITS |= TRAIT_ROBUST
TRAITS |= TRAIT_MEAN
TRAITS |= TRAIT_THIEVING
@@ -1631,7 +1631,7 @@
..()
//Walk softly and carry a big stick
-/mob/living/carbon/human/interactive/robust/New()
+/mob/living/carbon/human/interactive/robust/Initialize()
TRAITS |= TRAIT_FRIENDLY
TRAITS |= TRAIT_ROBUST
TRAITS |= TRAIT_SMART
diff --git a/code/modules/mob/living/brain/brain.dm b/code/modules/mob/living/brain/brain.dm
index 0b0fa0ccc91..8a30c1e2c8e 100644
--- a/code/modules/mob/living/brain/brain.dm
+++ b/code/modules/mob/living/brain/brain.dm
@@ -10,13 +10,13 @@
stat = DEAD //we start dead by default
see_invisible = SEE_INVISIBLE_MINIMUM
-/mob/living/brain/New(loc)
+/mob/living/brain/Initialize()
..()
create_dna(src)
stored_dna.initialize_dna(random_blood_type())
if(isturf(loc)) //not spawned in an MMI or brain organ (most likely adminspawned)
var/obj/item/organ/brain/OB = new(loc) //we create a new brain organ for it.
- src.loc = OB
+ loc = OB
OB.brainmob = src
diff --git a/code/modules/mob/living/carbon/alien/alien.dm b/code/modules/mob/living/carbon/alien/alien.dm
index d0d36c18e9e..3dd354050f9 100644
--- a/code/modules/mob/living/carbon/alien/alien.dm
+++ b/code/modules/mob/living/carbon/alien/alien.dm
@@ -33,7 +33,7 @@
var/static/regex/alien_name_regex = new("alien (larva|sentinel|drone|hunter|praetorian|queen)( \\(\\d+\\))?")
-/mob/living/carbon/alien/New()
+/mob/living/carbon/alien/Initialize()
verbs += /mob/living/proc/mob_sleep
verbs += /mob/living/proc/lay_down
diff --git a/code/modules/mob/living/carbon/alien/humanoid/caste/drone.dm b/code/modules/mob/living/carbon/alien/humanoid/caste/drone.dm
index e68e80cc0c3..6069f5e444c 100644
--- a/code/modules/mob/living/carbon/alien/humanoid/caste/drone.dm
+++ b/code/modules/mob/living/carbon/alien/humanoid/caste/drone.dm
@@ -6,7 +6,7 @@
icon_state = "aliend"
-/mob/living/carbon/alien/humanoid/drone/New()
+/mob/living/carbon/alien/humanoid/drone/Initialize()
AddAbility(new/obj/effect/proc_holder/alien/evolve(null))
..()
diff --git a/code/modules/mob/living/carbon/alien/humanoid/caste/praetorian.dm b/code/modules/mob/living/carbon/alien/humanoid/caste/praetorian.dm
index c2a63144b11..90d4ced85fc 100644
--- a/code/modules/mob/living/carbon/alien/humanoid/caste/praetorian.dm
+++ b/code/modules/mob/living/carbon/alien/humanoid/caste/praetorian.dm
@@ -7,7 +7,7 @@
-/mob/living/carbon/alien/humanoid/royal/praetorian/New()
+/mob/living/carbon/alien/humanoid/royal/praetorian/Initialize()
real_name = name
diff --git a/code/modules/mob/living/carbon/alien/humanoid/caste/sentinel.dm b/code/modules/mob/living/carbon/alien/humanoid/caste/sentinel.dm
index 7183730c5e7..f3acaa9d529 100644
--- a/code/modules/mob/living/carbon/alien/humanoid/caste/sentinel.dm
+++ b/code/modules/mob/living/carbon/alien/humanoid/caste/sentinel.dm
@@ -6,7 +6,7 @@
icon_state = "aliens"
-/mob/living/carbon/alien/humanoid/sentinel/New()
+/mob/living/carbon/alien/humanoid/sentinel/Initialize()
AddAbility(new /obj/effect/proc_holder/alien/sneak)
..()
diff --git a/code/modules/mob/living/carbon/alien/humanoid/humanoid.dm b/code/modules/mob/living/carbon/alien/humanoid/humanoid.dm
index 5ebb00e0092..6393ad49695 100644
--- a/code/modules/mob/living/carbon/alien/humanoid/humanoid.dm
+++ b/code/modules/mob/living/carbon/alien/humanoid/humanoid.dm
@@ -21,7 +21,7 @@
//This is fine right now, if we're adding organ specific damage this needs to be updated
-/mob/living/carbon/alien/humanoid/New()
+/mob/living/carbon/alien/humanoid/Initialize()
AddAbility(new/obj/effect/proc_holder/alien/regurgitate(null))
..()
diff --git a/code/modules/mob/living/carbon/alien/humanoid/queen.dm b/code/modules/mob/living/carbon/alien/humanoid/queen.dm
index ef4c85a58b6..2ce6ea31926 100644
--- a/code/modules/mob/living/carbon/alien/humanoid/queen.dm
+++ b/code/modules/mob/living/carbon/alien/humanoid/queen.dm
@@ -44,7 +44,7 @@
owner.remove_alt_appearance("smallqueen")
small = 0
-/mob/living/carbon/alien/humanoid/royal/queen/New()
+/mob/living/carbon/alien/humanoid/royal/queen/Initialize()
//there should only be one queen
for(var/mob/living/carbon/alien/humanoid/royal/queen/Q in living_mob_list)
if(Q == src)
diff --git a/code/modules/mob/living/carbon/alien/larva/larva.dm b/code/modules/mob/living/carbon/alien/larva/larva.dm
index 52ffa8bdf7c..2bbc0308808 100644
--- a/code/modules/mob/living/carbon/alien/larva/larva.dm
+++ b/code/modules/mob/living/carbon/alien/larva/larva.dm
@@ -18,7 +18,7 @@
//This is fine right now, if we're adding organ specific damage this needs to be updated
-/mob/living/carbon/alien/larva/New()
+/mob/living/carbon/alien/larva/Initialize()
AddAbility(new/obj/effect/proc_holder/alien/hide(null))
AddAbility(new/obj/effect/proc_holder/alien/larva_evolve(null))
diff --git a/code/modules/mob/living/carbon/carbon.dm b/code/modules/mob/living/carbon/carbon.dm
index 3e276c31d2f..f21aff65d10 100644
--- a/code/modules/mob/living/carbon/carbon.dm
+++ b/code/modules/mob/living/carbon/carbon.dm
@@ -1,7 +1,7 @@
/mob/living/carbon
blood_volume = BLOOD_VOLUME_NORMAL
-/mob/living/carbon/New()
+/mob/living/carbon/Initialize()
create_reagents(1000)
update_body_parts() //to update the carbon's new bodyparts appearance
..()
diff --git a/code/modules/mob/living/carbon/human/human.dm b/code/modules/mob/living/carbon/human/human.dm
index cfa0a04136f..f401a62889b 100644
--- a/code/modules/mob/living/carbon/human/human.dm
+++ b/code/modules/mob/living/carbon/human/human.dm
@@ -13,7 +13,7 @@
-/mob/living/carbon/human/New()
+/mob/living/carbon/human/Initialize()
verbs += /mob/living/proc/mob_sleep
verbs += /mob/living/proc/lay_down
diff --git a/code/modules/mob/living/carbon/monkey/monkey.dm b/code/modules/mob/living/carbon/monkey/monkey.dm
index 548b5aab3ad..156ac27da66 100644
--- a/code/modules/mob/living/carbon/monkey/monkey.dm
+++ b/code/modules/mob/living/carbon/monkey/monkey.dm
@@ -18,7 +18,7 @@
-/mob/living/carbon/monkey/New()
+/mob/living/carbon/monkey/Initialize()
verbs += /mob/living/proc/mob_sleep
verbs += /mob/living/proc/lay_down
diff --git a/code/modules/mob/living/carbon/monkey/punpun.dm b/code/modules/mob/living/carbon/monkey/punpun.dm
index 995c30f6fed..073a0634518 100644
--- a/code/modules/mob/living/carbon/monkey/punpun.dm
+++ b/code/modules/mob/living/carbon/monkey/punpun.dm
@@ -9,7 +9,7 @@
var/list/pet_monkey_names = list("Pun Pun", "Bubbles", "Mojo", "George", "Darwin", "Aldo", "Caeser", "Kanzi", "Kong", "Terk", "Grodd", "Mala", "Bojangles", "Coco", "Able", "Baker", "Scatter", "Norbit", "Travis")
var/list/rare_pet_monkey_names = list("Professor Bobo", "Deempisi's Revenge", "Furious George", "King Louie", "Dr. Zaius", "Jimmy Rustles", "Dinner", "Lanky")
-/mob/living/carbon/monkey/punpun/New()
+/mob/living/carbon/monkey/punpun/Initialize()
Read_Memory()
if(ancestor_name)
name = ancestor_name
diff --git a/code/modules/mob/living/living.dm b/code/modules/mob/living/living.dm
index b59082133b3..51554f848f1 100644
--- a/code/modules/mob/living/living.dm
+++ b/code/modules/mob/living/living.dm
@@ -1,4 +1,4 @@
-/mob/living/New()
+/mob/living/Initialize()
. = ..()
generateStaticOverlay()
if(staticOverlays.len)
diff --git a/code/modules/mob/living/silicon/ai/ai.dm b/code/modules/mob/living/silicon/ai/ai.dm
index 6e681dd0f09..d1dcecca359 100644
--- a/code/modules/mob/living/silicon/ai/ai.dm
+++ b/code/modules/mob/living/silicon/ai/ai.dm
@@ -85,7 +85,7 @@ var/list/ai_list = list()
var/obj/structure/AIcore/deactivated/linked_core //For exosuit control
-/mob/living/silicon/ai/New(loc, datum/ai_laws/L, mob/target_ai)
+/mob/living/silicon/ai/Initialize(mapload, datum/ai_laws/L, mob/target_ai)
..()
if(!target_ai) //If there is no player/brain inside.
new/obj/structure/AIcore/deactivated(loc) //New empty terminal.
@@ -910,7 +910,7 @@ var/list/ai_list = list()
/mob/living/silicon/ai/resist()
return
-/mob/living/silicon/ai/spawned/New(loc, datum/ai_laws/L, mob/target_ai)
+/mob/living/silicon/ai/spawned/Initialize(mapload, datum/ai_laws/L, mob/target_ai)
if(!target_ai)
target_ai = src //cheat! just give... ourselves as the spawned AI, because that's technically correct
..()
diff --git a/code/modules/mob/living/silicon/pai/pai.dm b/code/modules/mob/living/silicon/pai/pai.dm
index e80506e418c..59d901cb88b 100644
--- a/code/modules/mob/living/silicon/pai/pai.dm
+++ b/code/modules/mob/living/silicon/pai/pai.dm
@@ -81,7 +81,8 @@
pai_list -= src
..()
-/mob/living/silicon/pai/New(var/obj/item/device/paicard/P)
+/mob/living/silicon/pai/Initialize()
+ var/obj/item/device/paicard/P = loc
START_PROCESSING(SSfastprocess, src)
pai_list += src
make_laws()
diff --git a/code/modules/mob/living/silicon/robot/robot.dm b/code/modules/mob/living/silicon/robot/robot.dm
index 4ec42454fea..97c4fb5c98b 100644
--- a/code/modules/mob/living/silicon/robot/robot.dm
+++ b/code/modules/mob/living/silicon/robot/robot.dm
@@ -93,7 +93,7 @@
buckle_lying = FALSE
can_ride_typecache = list(/mob/living/carbon/human)
-/mob/living/silicon/robot/New(loc)
+/mob/living/silicon/robot/Initialize(mapload)
spark_system = new /datum/effect_system/spark_spread()
spark_system.set_up(5, 0, src)
spark_system.attach(src)
@@ -816,7 +816,7 @@
Help the operatives secure the disk at all costs!"
var/set_module = /obj/item/weapon/robot_module/syndicate
-/mob/living/silicon/robot/syndicate/New(loc)
+/mob/living/silicon/robot/syndicate/Initialize()
..()
cell.maxcharge = 25000
cell.charge = 25000
diff --git a/code/modules/mob/living/silicon/silicon.dm b/code/modules/mob/living/silicon/silicon.dm
index eb188bb3662..ed001610136 100644
--- a/code/modules/mob/living/silicon/silicon.dm
+++ b/code/modules/mob/living/silicon/silicon.dm
@@ -39,7 +39,7 @@
var/law_change_counter = 0
-/mob/living/silicon/New()
+/mob/living/silicon/Initialize()
..()
silicon_mobs += src
var/datum/atom_hud/data/diagnostic/diag_hud = huds[DATA_HUD_DIAGNOSTIC]
diff --git a/code/modules/mob/living/simple_animal/bot/bot.dm b/code/modules/mob/living/simple_animal/bot/bot.dm
index 99f25ef33d6..9f746c0f5b5 100644
--- a/code/modules/mob/living/simple_animal/bot/bot.dm
+++ b/code/modules/mob/living/simple_animal/bot/bot.dm
@@ -114,7 +114,7 @@
bot_reset() //Resets an AI's call, should it exist.
update_icon()
-/mob/living/simple_animal/bot/New()
+/mob/living/simple_animal/bot/Initialize()
..()
access_card = new /obj/item/weapon/card/id(src)
//This access is so bots can be immediately set to patrol and leave Robotics, instead of having to be let out first.
@@ -800,7 +800,7 @@ Pass a positive integer as an argument to override a bot's default speed.
use_power = 0
var/mob/living/simple_animal/bot/owner = null
-/obj/machinery/bot_core/New(loc)
+/obj/machinery/bot_core/Initialize()
..()
owner = loc
if(!istype(owner))
diff --git a/code/modules/mob/living/simple_animal/bot/cleanbot.dm b/code/modules/mob/living/simple_animal/bot/cleanbot.dm
index 0a221d8fd82..15612fa82c2 100644
--- a/code/modules/mob/living/simple_animal/bot/cleanbot.dm
+++ b/code/modules/mob/living/simple_animal/bot/cleanbot.dm
@@ -31,7 +31,7 @@
var/next_dest
var/next_dest_loc
-/mob/living/simple_animal/bot/cleanbot/New()
+/mob/living/simple_animal/bot/cleanbot/Initialize()
..()
get_targets()
icon_state = "cleanbot[on]"
diff --git a/code/modules/mob/living/simple_animal/bot/ed209bot.dm b/code/modules/mob/living/simple_animal/bot/ed209bot.dm
index 136527098b1..fc67908f46d 100644
--- a/code/modules/mob/living/simple_animal/bot/ed209bot.dm
+++ b/code/modules/mob/living/simple_animal/bot/ed209bot.dm
@@ -42,7 +42,7 @@
var/shoot_sound = 'sound/weapons/Taser.ogg'
-/mob/living/simple_animal/bot/ed209/New(loc,created_name,created_lasercolor)
+/mob/living/simple_animal/bot/ed209/Initialize(mapload,created_name,created_lasercolor)
..()
if(created_name)
name = created_name
diff --git a/code/modules/mob/living/simple_animal/bot/floorbot.dm b/code/modules/mob/living/simple_animal/bot/floorbot.dm
index 75425e0981a..61fe93792b3 100644
--- a/code/modules/mob/living/simple_animal/bot/floorbot.dm
+++ b/code/modules/mob/living/simple_animal/bot/floorbot.dm
@@ -38,7 +38,7 @@
#define REPLACE_TILE 6
#define TILE_EMAG 7
-/mob/living/simple_animal/bot/floorbot/New()
+/mob/living/simple_animal/bot/floorbot/Initialize()
..()
update_icon()
var/datum/job/engineer/J = new/datum/job/engineer
diff --git a/code/modules/mob/living/simple_animal/bot/medbot.dm b/code/modules/mob/living/simple_animal/bot/medbot.dm
index d51d45b85b6..0f6c3a76d83 100644
--- a/code/modules/mob/living/simple_animal/bot/medbot.dm
+++ b/code/modules/mob/living/simple_animal/bot/medbot.dm
@@ -85,7 +85,7 @@
else
icon_state = "medibot1"
-/mob/living/simple_animal/bot/medbot/New()
+/mob/living/simple_animal/bot/medbot/Initialize()
..()
update_icon()
diff --git a/code/modules/mob/living/simple_animal/bot/mulebot.dm b/code/modules/mob/living/simple_animal/bot/mulebot.dm
index c1bd34f028f..50fe9bc4102 100644
--- a/code/modules/mob/living/simple_animal/bot/mulebot.dm
+++ b/code/modules/mob/living/simple_animal/bot/mulebot.dm
@@ -48,7 +48,7 @@ var/global/mulebot_count = 0
var/obj/item/weapon/stock_parts/cell/cell
var/bloodiness = 0
-/mob/living/simple_animal/bot/mulebot/New()
+/mob/living/simple_animal/bot/mulebot/Initialize()
..()
wires = new /datum/wires/mulebot(src)
var/datum/job/cargo_tech/J = new/datum/job/cargo_tech
diff --git a/code/modules/mob/living/simple_animal/bot/secbot.dm b/code/modules/mob/living/simple_animal/bot/secbot.dm
index 60854b5be06..3478458d40f 100644
--- a/code/modules/mob/living/simple_animal/bot/secbot.dm
+++ b/code/modules/mob/living/simple_animal/bot/secbot.dm
@@ -52,7 +52,7 @@
desc = "It's Officer Pingsky! Delegated to satellite guard duty for harbouring anti-human sentiment."
radio_channel = "AI Private"
-/mob/living/simple_animal/bot/secbot/New()
+/mob/living/simple_animal/bot/secbot/Initialize()
..()
icon_state = "secbot[on]"
spawn(3)
diff --git a/code/modules/mob/living/simple_animal/constructs.dm b/code/modules/mob/living/simple_animal/constructs.dm
index 390a875ea96..886c7db33e7 100644
--- a/code/modules/mob/living/simple_animal/constructs.dm
+++ b/code/modules/mob/living/simple_animal/constructs.dm
@@ -32,7 +32,7 @@
var/playstyle_string = "You are a generic construct! Your job is to not exist, and you should probably adminhelp this."
-/mob/living/simple_animal/hostile/construct/New()
+/mob/living/simple_animal/hostile/construct/Initialize()
..()
for(var/spell in construct_spells)
AddSpell(new spell(null))
diff --git a/code/modules/mob/living/simple_animal/friendly/butterfly.dm b/code/modules/mob/living/simple_animal/friendly/butterfly.dm
index 869d067cd79..36ad869b051 100644
--- a/code/modules/mob/living/simple_animal/friendly/butterfly.dm
+++ b/code/modules/mob/living/simple_animal/friendly/butterfly.dm
@@ -24,7 +24,7 @@
verb_exclaim = "flutters intensely"
verb_yell = "flutters intensely"
-/mob/living/simple_animal/butterfly/New()
+/mob/living/simple_animal/butterfly/Initialize()
..()
var/newcolor = rgb(rand(0, 255), rand(0, 255), rand(0, 255))
add_atom_colour(newcolor, FIXED_COLOUR_PRIORITY)
diff --git a/code/modules/mob/living/simple_animal/friendly/cat.dm b/code/modules/mob/living/simple_animal/friendly/cat.dm
index 46c53a0132b..29143ac6999 100644
--- a/code/modules/mob/living/simple_animal/friendly/cat.dm
+++ b/code/modules/mob/living/simple_animal/friendly/cat.dm
@@ -30,7 +30,7 @@
var/mob/living/simple_animal/mouse/movement_target
gold_core_spawnable = 2
-/mob/living/simple_animal/pet/cat/New()
+/mob/living/simple_animal/pet/cat/Initialize()
..()
verbs += /mob/living/proc/lay_down
@@ -85,7 +85,7 @@
var/cats_deployed = 0
var/memory_saved = 0
-/mob/living/simple_animal/pet/cat/Runtime/New()
+/mob/living/simple_animal/pet/cat/Runtime/Initialize()
if(prob(5))
icon_state = "original"
icon_living = "original"
diff --git a/code/modules/mob/living/simple_animal/friendly/dog.dm b/code/modules/mob/living/simple_animal/friendly/dog.dm
index 2a7338c5eaa..377acecd613 100644
--- a/code/modules/mob/living/simple_animal/friendly/dog.dm
+++ b/code/modules/mob/living/simple_animal/friendly/dog.dm
@@ -43,7 +43,7 @@
butcher_results = list(/obj/item/weapon/reagent_containers/food/snacks/meat/slab/pug = 3)
gold_core_spawnable = 2
-/mob/living/simple_animal/pet/dog/corgi/New()
+/mob/living/simple_animal/pet/dog/corgi/Initialize()
..()
regenerate_icons()
@@ -281,7 +281,7 @@
var/memory_saved = 0
var/saved_head //path
-/mob/living/simple_animal/pet/dog/corgi/Ian/New()
+/mob/living/simple_animal/pet/dog/corgi/Ian/Initialize()
..()
//parent call must happen first to ensure IAN
//is not in nullspace when child puppies spawn
diff --git a/code/modules/mob/living/simple_animal/friendly/drone/_drone.dm b/code/modules/mob/living/simple_animal/friendly/drone/_drone.dm
index 53d9f359391..6d23f54150a 100644
--- a/code/modules/mob/living/simple_animal/friendly/drone/_drone.dm
+++ b/code/modules/mob/living/simple_animal/friendly/drone/_drone.dm
@@ -68,7 +68,7 @@
var/hacked = 0 //If we have laws to destroy the station
var/can_be_held = TRUE //if assholes can pick us up
-/mob/living/simple_animal/drone/New()
+/mob/living/simple_animal/drone/Initialize()
. = ..()
access_card = new /obj/item/weapon/card/id(src)
diff --git a/code/modules/mob/living/simple_animal/friendly/drone/extra_drone_types.dm b/code/modules/mob/living/simple_animal/friendly/drone/extra_drone_types.dm
index e2a991ba265..c56d679a627 100644
--- a/code/modules/mob/living/simple_animal/friendly/drone/extra_drone_types.dm
+++ b/code/modules/mob/living/simple_animal/friendly/drone/extra_drone_types.dm
@@ -30,7 +30,7 @@
seeStatic = 0 //Our programming is superior.
hacked = TRUE
-/mob/living/simple_animal/drone/syndrone/New()
+/mob/living/simple_animal/drone/syndrone/Initialize()
..()
internal_storage.hidden_uplink.telecrystals = 10
@@ -43,7 +43,7 @@
default_hatmask = /obj/item/clothing/head/helmet/space/hardsuit/syndi/elite
default_storage = /obj/item/device/radio/uplink/nuclear
-/mob/living/simple_animal/drone/syndrone/badass/New()
+/mob/living/simple_animal/drone/syndrone/badass/Initialize()
..()
internal_storage.hidden_uplink.telecrystals = 30
var/obj/item/weapon/implant/weapons_auth/W = new/obj/item/weapon/implant/weapons_auth(src)
@@ -52,7 +52,7 @@
/mob/living/simple_animal/drone/snowflake
default_hatmask = /obj/item/clothing/head/chameleon/drone
-/mob/living/simple_animal/drone/snowflake/New()
+/mob/living/simple_animal/drone/snowflake/Initialize()
..()
desc += " This drone appears to have a complex holoprojector built on its 'head'."
@@ -76,7 +76,7 @@
default_hatmask = null
picked = TRUE
-/mob/living/simple_animal/drone/polymorphed/New()
+/mob/living/simple_animal/drone/polymorphed/Initialize()
. = ..()
liberate()
visualAppearence = pick(MAINTDRONE, REPAIRDRONE, SCOUTDRONE)
@@ -126,7 +126,7 @@
/mob/living/simple_animal/drone/cogscarab/admin //an admin-only subtype of cogscarab with a no-cost proselytizer and slab in its box
default_storage = /obj/item/weapon/storage/toolbox/brass/prefilled/ratvar/admin
-/mob/living/simple_animal/drone/cogscarab/New()
+/mob/living/simple_animal/drone/cogscarab/Initialize()
. = ..()
set_light(2, 0.5)
qdel(access_card) //we don't have free access
diff --git a/code/modules/mob/living/simple_animal/friendly/farm_animals.dm b/code/modules/mob/living/simple_animal/friendly/farm_animals.dm
index 4035b06a9be..6a132cf8d0e 100644
--- a/code/modules/mob/living/simple_animal/friendly/farm_animals.dm
+++ b/code/modules/mob/living/simple_animal/friendly/farm_animals.dm
@@ -29,7 +29,7 @@
blood_volume = BLOOD_VOLUME_NORMAL
var/obj/item/udder/udder = null
-/mob/living/simple_animal/hostile/retaliate/goat/New()
+/mob/living/simple_animal/hostile/retaliate/goat/Initialize()
udder = new()
..()
/mob/living/simple_animal/hostile/retaliate/goat/Destroy()
@@ -106,7 +106,7 @@
gold_core_spawnable = 2
blood_volume = BLOOD_VOLUME_NORMAL
-/mob/living/simple_animal/cow/New()
+/mob/living/simple_animal/cow/Initialize()
udder = new()
..()
@@ -181,7 +181,7 @@
mob_size = MOB_SIZE_TINY
gold_core_spawnable = 2
-/mob/living/simple_animal/chick/New()
+/mob/living/simple_animal/chick/Initialize()
..()
pixel_x = rand(-6, 6)
pixel_y = rand(0, 10)
@@ -238,7 +238,7 @@ var/global/chicken_count = 0
var/list/validColors = list("brown","black","white")
gold_core_spawnable = 2
-/mob/living/simple_animal/chicken/New()
+/mob/living/simple_animal/chicken/Initialize()
..()
if(!body_color)
body_color = pick(validColors)
@@ -297,7 +297,7 @@ var/global/chicken_count = 0
/obj/item/udder
name = "udder"
-/obj/item/udder/New()
+/obj/item/udder/Initialize()
reagents = new(50)
reagents.my_atom = src
reagents.add_reagent("milk", 20)
diff --git a/code/modules/mob/living/simple_animal/friendly/mouse.dm b/code/modules/mob/living/simple_animal/friendly/mouse.dm
index e22590b56b5..1189273adbe 100644
--- a/code/modules/mob/living/simple_animal/friendly/mouse.dm
+++ b/code/modules/mob/living/simple_animal/friendly/mouse.dm
@@ -25,7 +25,7 @@
gold_core_spawnable = 2
var/chew_probability = 1
-/mob/living/simple_animal/mouse/New()
+/mob/living/simple_animal/mouse/Initialize()
..()
if(!body_color)
body_color = pick( list("brown","gray","white") )
diff --git a/code/modules/mob/living/simple_animal/friendly/pet.dm b/code/modules/mob/living/simple_animal/friendly/pet.dm
index 229218ea7da..baad2da95cf 100644
--- a/code/modules/mob/living/simple_animal/friendly/pet.dm
+++ b/code/modules/mob/living/simple_animal/friendly/pet.dm
@@ -29,7 +29,7 @@
else
..()
-/mob/living/simple_animal/pet/New()
+/mob/living/simple_animal/pet/Initialize()
..()
if(pcollar)
pcollar = new(src)
diff --git a/code/modules/mob/living/simple_animal/guardian/guardian.dm b/code/modules/mob/living/simple_animal/guardian/guardian.dm
index 5a83efc67f6..665a227a4ee 100644
--- a/code/modules/mob/living/simple_animal/guardian/guardian.dm
+++ b/code/modules/mob/living/simple_animal/guardian/guardian.dm
@@ -50,7 +50,7 @@ var/global/list/parasites = list() //all currently existing/living guardians
var/tech_fluff_string = "BOOT SEQUENCE COMPLETE. ERROR MODULE LOADED. THIS SHOULDN'T HAPPEN. Submit a bug report!"
var/carp_fluff_string = "CARP CARP CARP SOME SORT OF HORRIFIC BUG BLAME THE CODERS CARP CARP CARP"
-/mob/living/simple_animal/hostile/guardian/New(loc, theme)
+/mob/living/simple_animal/hostile/guardian/Initialize(mapload, theme)
parasites |= src
setthemename(theme)
@@ -659,7 +659,7 @@ var/global/list/parasites = list() //all currently existing/living guardians
/obj/item/weapon/storage/box/syndie_kit/guardian
name = "holoparasite injector kit"
-/obj/item/weapon/storage/box/syndie_kit/guardian/New()
+/obj/item/weapon/storage/box/syndie_kit/guardian/Initialize()
..()
new /obj/item/weapon/guardiancreator/tech/choose/traitor(src)
new /obj/item/weapon/paper/guardian(src)
diff --git a/code/modules/mob/living/simple_animal/guardian/types/assassin.dm b/code/modules/mob/living/simple_animal/guardian/types/assassin.dm
index a794a9420a1..3baafb6c797 100644
--- a/code/modules/mob/living/simple_animal/guardian/types/assassin.dm
+++ b/code/modules/mob/living/simple_animal/guardian/types/assassin.dm
@@ -16,7 +16,7 @@
var/obj/screen/alert/canstealthalert
var/obj/screen/alert/instealthalert
-/mob/living/simple_animal/hostile/guardian/assassin/New()
+/mob/living/simple_animal/hostile/guardian/assassin/Initialize()
..()
stealthcooldown = 0
diff --git a/code/modules/mob/living/simple_animal/guardian/types/support.dm b/code/modules/mob/living/simple_animal/guardian/types/support.dm
index afffb626506..9313d1311a7 100644
--- a/code/modules/mob/living/simple_animal/guardian/types/support.dm
+++ b/code/modules/mob/living/simple_animal/guardian/types/support.dm
@@ -15,7 +15,7 @@
var/beacon_cooldown = 0
var/toggle = FALSE
-/mob/living/simple_animal/hostile/guardian/healer/New()
+/mob/living/simple_animal/hostile/guardian/healer/Initialize()
..()
var/datum/atom_hud/medsensor = huds[DATA_HUD_MEDICAL_ADVANCED]
medsensor.add_hud_to(src)
diff --git a/code/modules/mob/living/simple_animal/hostile/bees.dm b/code/modules/mob/living/simple_animal/hostile/bees.dm
index f01ff29a220..fba21e36637 100644
--- a/code/modules/mob/living/simple_animal/hostile/bees.dm
+++ b/code/modules/mob/living/simple_animal/hostile/bees.dm
@@ -56,7 +56,7 @@
return 1
-/mob/living/simple_animal/hostile/poison/bees/New()
+/mob/living/simple_animal/hostile/poison/bees/Initialize()
..()
generate_bee_visuals()
@@ -209,7 +209,7 @@
BB.bees |= src
beehome = BB
-/mob/living/simple_animal/hostile/poison/bees/toxin/New()
+/mob/living/simple_animal/hostile/poison/bees/toxin/Initialize()
. = ..()
var/datum/reagent/R = pick(typesof(/datum/reagent/toxin))
assign_reagent(chemical_reagents_list[initial(R.id)])
@@ -283,12 +283,12 @@
..()
-/obj/item/queen_bee/bought/New()
+/obj/item/queen_bee/bought/Initialize()
..()
queen = new(src)
/obj/item/queen_bee/Destroy()
- qdel(queen)
+ QDEL_NULL(queen)
return ..()
diff --git a/code/modules/mob/living/simple_animal/hostile/bosses/boss.dm b/code/modules/mob/living/simple_animal/hostile/bosses/boss.dm
index 77209751fb9..154afc47bc9 100644
--- a/code/modules/mob/living/simple_animal/hostile/bosses/boss.dm
+++ b/code/modules/mob/living/simple_animal/hostile/bosses/boss.dm
@@ -11,7 +11,7 @@
var/point_regen_delay = 1
-/mob/living/simple_animal/hostile/boss/New()
+/mob/living/simple_animal/hostile/boss/Initialize()
..()
atb = new()
@@ -90,7 +90,7 @@
/datum/boss_active_timed_battle/New()
..()
- SSobj.processing.Add(src)
+ START_PROCESSING(SSobj, src)
/datum/boss_active_timed_battle/proc/assign_abilities(list/L)
diff --git a/code/modules/mob/living/simple_animal/hostile/flan.dm b/code/modules/mob/living/simple_animal/hostile/flan.dm
index 1d0bfd9aac8..c77fff881e2 100644
--- a/code/modules/mob/living/simple_animal/hostile/flan.dm
+++ b/code/modules/mob/living/simple_animal/hostile/flan.dm
@@ -34,7 +34,7 @@
var/spelldamage = 15
var/spellcasttime = 15 //if you varedit this also varedit ranged_cooldown_time else the mob will attack again before the spell hits, looking weird but still working
-/mob/living/simple_animal/hostile/flan/New() //Required for the inheritance of casting animations.
+/mob/living/simple_animal/hostile/flan/Initialize() //Required for the inheritance of casting animations.
..()
casting = 0
icon_state = "[initial(icon_state)][casting]"
diff --git a/code/modules/mob/living/simple_animal/hostile/hivebot.dm b/code/modules/mob/living/simple_animal/hostile/hivebot.dm
index c4f00da7866..7c751f70f4d 100644
--- a/code/modules/mob/living/simple_animal/hostile/hivebot.dm
+++ b/code/modules/mob/living/simple_animal/hostile/hivebot.dm
@@ -28,7 +28,7 @@
del_on_death = 1
loot = list(/obj/effect/decal/cleanable/robot_debris)
-/mob/living/simple_animal/hostile/hivebot/New()
+/mob/living/simple_animal/hostile/hivebot/Initialize()
..()
deathmessage = "[src] blows apart!"
diff --git a/code/modules/mob/living/simple_animal/hostile/hostile.dm b/code/modules/mob/living/simple_animal/hostile/hostile.dm
index b653bdcb4cc..13fb015cdac 100644
--- a/code/modules/mob/living/simple_animal/hostile/hostile.dm
+++ b/code/modules/mob/living/simple_animal/hostile/hostile.dm
@@ -54,7 +54,7 @@
var/lose_patience_timeout = 300 //30 seconds by default, so there's no major changes to AI behaviour, beyond actually bailing if stuck forever
-/mob/living/simple_animal/hostile/New()
+/mob/living/simple_animal/hostile/Initialize()
..()
if(!targets_from)
diff --git a/code/modules/mob/living/simple_animal/hostile/mecha_pilot.dm b/code/modules/mob/living/simple_animal/hostile/mecha_pilot.dm
index 7f6419fc2fe..5335cd7e350 100644
--- a/code/modules/mob/living/simple_animal/hostile/mecha_pilot.dm
+++ b/code/modules/mob/living/simple_animal/hostile/mecha_pilot.dm
@@ -39,7 +39,7 @@
spawn_mecha_type = null
search_objects = 2
-/mob/living/simple_animal/hostile/syndicate/mecha_pilot/no_mech/New()
+/mob/living/simple_animal/hostile/syndicate/mecha_pilot/no_mech/Initialize()
..()
wanted_objects = typecacheof(/obj/mecha/combat, ignore_root_path=TRUE)
@@ -59,7 +59,7 @@
faction = list("nanotrasen")
-/mob/living/simple_animal/hostile/syndicate/mecha_pilot/New()
+/mob/living/simple_animal/hostile/syndicate/mecha_pilot/Initialize()
..()
if(spawn_mecha_type)
var/obj/mecha/M = new spawn_mecha_type (get_turf(src))
diff --git a/code/modules/mob/living/simple_animal/hostile/megafauna/bubblegum.dm b/code/modules/mob/living/simple_animal/hostile/megafauna/bubblegum.dm
index fff83e9ecdd..3516cb14927 100644
--- a/code/modules/mob/living/simple_animal/hostile/megafauna/bubblegum.dm
+++ b/code/modules/mob/living/simple_animal/hostile/megafauna/bubblegum.dm
@@ -103,7 +103,7 @@ Difficulty: Hard
INVOKE_ASYNC(src, .proc/warp_charge)
-/mob/living/simple_animal/hostile/megafauna/bubblegum/New()
+/mob/living/simple_animal/hostile/megafauna/bubblegum/Initialize()
..()
for(var/mob/living/simple_animal/hostile/megafauna/bubblegum/B in mob_list)
if(B != src)
diff --git a/code/modules/mob/living/simple_animal/hostile/megafauna/colossus.dm b/code/modules/mob/living/simple_animal/hostile/megafauna/colossus.dm
index 3adfb7f328c..20aa46db2e7 100644
--- a/code/modules/mob/living/simple_animal/hostile/megafauna/colossus.dm
+++ b/code/modules/mob/living/simple_animal/hostile/megafauna/colossus.dm
@@ -91,7 +91,7 @@ Difficulty: Very Hard
INVOKE_ASYNC(src, .proc/alternating_dir_shots)
-/mob/living/simple_animal/hostile/megafauna/colossus/New()
+/mob/living/simple_animal/hostile/megafauna/colossus/Initialize()
..()
internal = new/obj/item/device/gps/internal/colossus(src)
@@ -105,7 +105,7 @@ Difficulty: Very Hard
duration = 8
var/target
-/obj/effect/overlay/temp/at_shield/New(new_loc, new_target)
+/obj/effect/overlay/temp/at_shield/Initialize(mapload, new_target)
..()
target = new_target
INVOKE_ASYNC(src, /atom/movable/proc/orbit, target, 0, FALSE, 0, 0, FALSE, TRUE)
@@ -631,7 +631,7 @@ Difficulty: Very Hard
stop_automated_movement = 1
var/heal_power = 5
-/mob/living/simple_animal/hostile/lightgeist/New()
+/mob/living/simple_animal/hostile/lightgeist/Initialize()
..()
verbs -= /mob/living/verb/pulled
verbs -= /mob/verb/me_verb
diff --git a/code/modules/mob/living/simple_animal/hostile/megafauna/dragon.dm b/code/modules/mob/living/simple_animal/hostile/megafauna/dragon.dm
index 35cdf5102fd..b3fb02394a9 100644
--- a/code/modules/mob/living/simple_animal/hostile/megafauna/dragon.dm
+++ b/code/modules/mob/living/simple_animal/hostile/megafauna/dragon.dm
@@ -53,7 +53,7 @@ Difficulty: Medium
deathmessage = "collapses into a pile of bones, its flesh sloughing away."
death_sound = 'sound/magic/demon_dies.ogg'
-/mob/living/simple_animal/hostile/megafauna/dragon/New()
+/mob/living/simple_animal/hostile/megafauna/dragon/Initialize()
..()
internal = new/obj/item/device/gps/internal/dragon(src)
@@ -96,7 +96,7 @@ Difficulty: Medium
duration = 12
pixel_z = 500
-/obj/effect/overlay/temp/fireball/New(loc)
+/obj/effect/overlay/temp/fireball/Initialize(loc)
..()
animate(src, pixel_z = 0, time = 12)
@@ -121,7 +121,7 @@ Difficulty: Medium
/obj/effect/overlay/temp/target/ex_act()
return
-/obj/effect/overlay/temp/target/New(loc)
+/obj/effect/overlay/temp/target/Initialize(loc)
..()
INVOKE_ASYNC(src, .proc/fall)
diff --git a/code/modules/mob/living/simple_animal/hostile/megafauna/hierophant.dm b/code/modules/mob/living/simple_animal/hostile/megafauna/hierophant.dm
index b289fd2b934..8a7344e2625 100644
--- a/code/modules/mob/living/simple_animal/hostile/megafauna/hierophant.dm
+++ b/code/modules/mob/living/simple_animal/hostile/megafauna/hierophant.dm
@@ -73,7 +73,7 @@ Difficulty: Hard
del_on_death = TRUE
death_sound = 'sound/magic/Repulse.ogg'
-/mob/living/simple_animal/hostile/megafauna/hierophant/New()
+/mob/living/simple_animal/hostile/megafauna/hierophant/Initialize()
..()
internal = new/obj/item/device/gps/internal/hierophant(src)
spawned_beacon = new(loc)
diff --git a/code/modules/mob/living/simple_animal/hostile/megafauna/legion.dm b/code/modules/mob/living/simple_animal/hostile/megafauna/legion.dm
index 49d516a5ac8..061d11d2e58 100644
--- a/code/modules/mob/living/simple_animal/hostile/megafauna/legion.dm
+++ b/code/modules/mob/living/simple_animal/hostile/megafauna/legion.dm
@@ -50,7 +50,7 @@ Difficulty: Medium
appearance_flags = 0
mouse_opacity = 1
-/mob/living/simple_animal/hostile/megafauna/legion/New()
+/mob/living/simple_animal/hostile/megafauna/legion/Initialize()
..()
internal = new/obj/item/device/gps/internal/legion(src)
diff --git a/code/modules/mob/living/simple_animal/hostile/megafauna/swarmer.dm b/code/modules/mob/living/simple_animal/hostile/megafauna/swarmer.dm
index 940b673ea85..9ac4acd88ce 100644
--- a/code/modules/mob/living/simple_animal/hostile/megafauna/swarmer.dm
+++ b/code/modules/mob/living/simple_animal/hostile/megafauna/swarmer.dm
@@ -65,7 +65,7 @@ var/global/list/AISwarmerCapsByType = list(/mob/living/simple_animal/hostile/swa
var/static/list/swarmer_caps
-/mob/living/simple_animal/hostile/megafauna/swarmer_swarm_beacon/New()
+/mob/living/simple_animal/hostile/megafauna/swarmer_swarm_beacon/Initialize()
..()
swarmer_caps = AISwarmerCapsByType //for admin-edits
internal = new/obj/item/device/gps/internal/swarmer_beacon(src)
@@ -108,7 +108,7 @@ var/global/list/AISwarmerCapsByType = list(/mob/living/simple_animal/hostile/swa
AIStatus = AI_ON
-/mob/living/simple_animal/hostile/swarmer/ai/New()
+/mob/living/simple_animal/hostile/swarmer/ai/Initialize()
..()
ToggleLight() //so you can see them eating you out of house and home/shooting you/stunlocking you for eternity
LAZYINITLIST(AISwarmersByType[type])
@@ -178,7 +178,7 @@ var/global/list/AISwarmerCapsByType = list(/mob/living/simple_animal/hostile/swa
var/static/list/sharedIgnore = list()
-/mob/living/simple_animal/hostile/swarmer/ai/resource/New()
+/mob/living/simple_animal/hostile/swarmer/ai/resource/Initialize()
..()
sharedWanted = typecacheof(sharedWanted)
sharedIgnore = typecacheof(sharedIgnore)
diff --git a/code/modules/mob/living/simple_animal/hostile/mimic.dm b/code/modules/mob/living/simple_animal/hostile/mimic.dm
index 374e0d62c05..a2f49cc2cf8 100644
--- a/code/modules/mob/living/simple_animal/hostile/mimic.dm
+++ b/code/modules/mob/living/simple_animal/hostile/mimic.dm
@@ -110,8 +110,8 @@ var/global/list/protected_objects = list(/obj/structure/table, /obj/structure/ca
var/image/googly_eyes = null
gold_core_spawnable = 0
-/mob/living/simple_animal/hostile/mimic/copy/New(loc, obj/copy, mob/living/creator, destroy_original = 0)
- ..(loc)
+/mob/living/simple_animal/hostile/mimic/copy/Initialize(mapload, obj/copy, mob/living/creator, destroy_original = 0)
+ ..()
CopyObject(copy, creator, destroy_original)
/mob/living/simple_animal/hostile/mimic/copy/Life()
diff --git a/code/modules/mob/living/simple_animal/hostile/mining_mobs.dm b/code/modules/mob/living/simple_animal/hostile/mining_mobs.dm
index e7ed85ad01a..3cf5529c25a 100644
--- a/code/modules/mob/living/simple_animal/hostile/mining_mobs.dm
+++ b/code/modules/mob/living/simple_animal/hostile/mining_mobs.dm
@@ -141,7 +141,7 @@
var/chase_time = 100
var/will_burrow = TRUE
-/mob/living/simple_animal/hostile/asteroid/goldgrub/New()
+/mob/living/simple_animal/hostile/asteroid/goldgrub/Initialize()
..()
var/i = rand(1,3)
while(i)
@@ -249,7 +249,7 @@
var/inert = 0
var/preserved = 0
-/obj/item/organ/hivelord_core/New()
+/obj/item/organ/hivelord_core/Initialize()
..()
addtimer(CALLBACK(src, .proc/inert_check), 2400)
@@ -337,7 +337,7 @@
pass_flags = PASSTABLE
del_on_death = 1
-/mob/living/simple_animal/hostile/asteroid/hivelordbrood/New()
+/mob/living/simple_animal/hostile/asteroid/hivelordbrood/Initialize()
..()
addtimer(CALLBACK(src, .proc/death), 100)
@@ -355,7 +355,7 @@
reagents.reaction(get_turf(src))
..()
-/mob/living/simple_animal/hostile/asteroid/hivelordbrood/blood/New()
+/mob/living/simple_animal/hostile/asteroid/hivelordbrood/blood/Initialize()
create_reagents(30)
..()
@@ -896,7 +896,7 @@
wanted_objects = list(/obj/effect/decal/cleanable/xenoblood/xgibs, /obj/effect/decal/cleanable/blood/gibs/)
var/obj/item/udder/gutlunch/udder = null
-/mob/living/simple_animal/hostile/asteroid/gutlunch/New()
+/mob/living/simple_animal/hostile/asteroid/gutlunch/Initialize()
udder = new()
..()
@@ -946,7 +946,7 @@
name = "gubbuck"
gender = MALE
-/mob/living/simple_animal/hostile/asteroid/gutlunch/gubbuck/New()
+/mob/living/simple_animal/hostile/asteroid/gutlunch/gubbuck/Initialize()
..()
add_atom_colour(pick("#E39FBB", "#D97D64", "#CF8C4A"), FIXED_COLOUR_PRIORITY)
resize = 0.85
@@ -993,7 +993,7 @@
del_on_death = 1
var/gps = null
-/mob/living/simple_animal/hostile/spawner/lavaland/New()
+/mob/living/simple_animal/hostile/spawner/lavaland/Initialize()
..()
for(var/F in RANGE_TURFS(1, src))
if(ismineralturf(F))
diff --git a/code/modules/mob/living/simple_animal/hostile/mushroom.dm b/code/modules/mob/living/simple_animal/hostile/mushroom.dm
index e21a863e1db..94941a0508e 100644
--- a/code/modules/mob/living/simple_animal/hostile/mushroom.dm
+++ b/code/modules/mob/living/simple_animal/hostile/mushroom.dm
@@ -48,7 +48,7 @@
if(!stat)//Mushrooms slowly regenerate if conscious, for people who want to save them from being eaten
adjustBruteLoss(-2)
-/mob/living/simple_animal/hostile/mushroom/New()//Makes every shroom a little unique
+/mob/living/simple_animal/hostile/mushroom/Initialize()//Makes every shroom a little unique
melee_damage_lower += rand(3, 5)
melee_damage_upper += rand(10,20)
maxHealth += rand(40,60)
diff --git a/code/modules/mob/living/simple_animal/hostile/retaliate/frog.dm b/code/modules/mob/living/simple_animal/hostile/retaliate/frog.dm
index 0d93a7f2b46..7162e4ff0c0 100644
--- a/code/modules/mob/living/simple_animal/hostile/retaliate/frog.dm
+++ b/code/modules/mob/living/simple_animal/hostile/retaliate/frog.dm
@@ -25,7 +25,7 @@
mob_size = MOB_SIZE_TINY
gold_core_spawnable = 1
-/mob/living/simple_animal/hostile/retaliate/frog/New()
+/mob/living/simple_animal/hostile/retaliate/frog/Initialize()
..()
if(prob(1))
name = "rare frog"
diff --git a/code/modules/mob/living/simple_animal/hostile/retaliate/ghost.dm b/code/modules/mob/living/simple_animal/hostile/retaliate/ghost.dm
index 5321cce2af1..0353b6b3a04 100644
--- a/code/modules/mob/living/simple_animal/hostile/retaliate/ghost.dm
+++ b/code/modules/mob/living/simple_animal/hostile/retaliate/ghost.dm
@@ -38,7 +38,7 @@
var/image/ghost_facial_hair = null
var/random = TRUE //if you want random names for ghosts or not
-/mob/living/simple_animal/hostile/retaliate/ghost/New()
+/mob/living/simple_animal/hostile/retaliate/ghost/Initialize()
..()
if(!random)
give_hair()
diff --git a/code/modules/mob/living/simple_animal/hostile/statue.dm b/code/modules/mob/living/simple_animal/hostile/statue.dm
index 01dfa7f9f42..faa9b13ffd6 100644
--- a/code/modules/mob/living/simple_animal/hostile/statue.dm
+++ b/code/modules/mob/living/simple_animal/hostile/statue.dm
@@ -51,7 +51,7 @@
// No movement while seen code.
-/mob/living/simple_animal/hostile/statue/New(loc, var/mob/living/creator)
+/mob/living/simple_animal/hostile/statue/Initialize(mapload, var/mob/living/creator)
..()
// Give spells
mob_spell_list += new /obj/effect/proc_holder/spell/aoe_turf/flicker_lights(src)
diff --git a/code/modules/mob/living/simple_animal/hostile/stickman.dm b/code/modules/mob/living/simple_animal/hostile/stickman.dm
index 3fcdc3e37a7..3f4267e164b 100644
--- a/code/modules/mob/living/simple_animal/hostile/stickman.dm
+++ b/code/modules/mob/living/simple_animal/hostile/stickman.dm
@@ -50,7 +50,7 @@
icon_living = "stickdog"
icon_dead = "stickdog_dead"
-/mob/living/simple_animal/hostile/stickman/New(var/turf/loc, var/wizard_summoned)
+/mob/living/simple_animal/hostile/stickman/Initialize(mapload, var/wizard_summoned)
..()
new /obj/effect/overlay/temp/paper_scatter(src)
summoned_by_wizard = wizard_summoned
diff --git a/code/modules/mob/living/simple_animal/hostile/wizard.dm b/code/modules/mob/living/simple_animal/hostile/wizard.dm
index cae6f7c6f64..efd5ee47c4a 100644
--- a/code/modules/mob/living/simple_animal/hostile/wizard.dm
+++ b/code/modules/mob/living/simple_animal/hostile/wizard.dm
@@ -37,7 +37,7 @@
var/next_cast = 0
-/mob/living/simple_animal/hostile/wizard/New()
+/mob/living/simple_animal/hostile/wizard/Initialize()
..()
fireball = new /obj/effect/proc_holder/spell/aimed/fireball
fireball.clothes_req = 0
diff --git a/code/modules/mob/living/simple_animal/parrot.dm b/code/modules/mob/living/simple_animal/parrot.dm
index 3161901e593..b66dd111666 100644
--- a/code/modules/mob/living/simple_animal/parrot.dm
+++ b/code/modules/mob/living/simple_animal/parrot.dm
@@ -99,7 +99,7 @@
var/obj/item/held_item = null
-/mob/living/simple_animal/parrot/New()
+/mob/living/simple_animal/parrot/Initialize()
..()
if(!ears)
var/headset = pick(/obj/item/device/radio/headset/headset_sec, \
@@ -876,7 +876,7 @@
var/longest_survival = 0
var/longest_deathstreak = 0
-/mob/living/simple_animal/parrot/Poly/New()
+/mob/living/simple_animal/parrot/Poly/Initialize()
ears = new /obj/item/device/radio/headset/headset_eng(src)
available_channels = list(":e")
Read_Memory()
@@ -949,7 +949,7 @@
incorporeal_move = 1
butcher_results = list(/obj/item/weapon/ectoplasm = 1)
-/mob/living/simple_animal/parrot/Poly/ghost/New()
+/mob/living/simple_animal/parrot/Poly/ghost/Initialize()
memory_saved = 1 //At this point nothing is saved
..()
diff --git a/code/modules/mob/living/simple_animal/simple_animal.dm b/code/modules/mob/living/simple_animal/simple_animal.dm
index eb469fd4674..afaf7718e0d 100644
--- a/code/modules/mob/living/simple_animal/simple_animal.dm
+++ b/code/modules/mob/living/simple_animal/simple_animal.dm
@@ -85,7 +85,7 @@
//domestication
var/tame = 0
-/mob/living/simple_animal/New()
+/mob/living/simple_animal/Initialize()
..()
handcrafting = new()
if(gender == PLURAL)
diff --git a/code/modules/mob/living/simple_animal/slime/slime.dm b/code/modules/mob/living/simple_animal/slime/slime.dm
index 4c8c33f087e..023aea68da3 100644
--- a/code/modules/mob/living/simple_animal/slime/slime.dm
+++ b/code/modules/mob/living/simple_animal/slime/slime.dm
@@ -78,7 +78,7 @@ var/list/slime_colours = list("rainbow", "grey", "purple", "metal", "orange",
var/coretype = /obj/item/slime_extract/grey
var/list/slime_mutation[4]
-/mob/living/simple_animal/slime/New(loc, new_colour="grey", new_is_adult=FALSE)
+/mob/living/simple_animal/slime/Initialize(mapload, new_colour="grey", new_is_adult=FALSE)
var/datum/action/innate/slime/feed/F = new
F.Grant(src)
@@ -422,5 +422,5 @@ var/list/slime_colours = list("rainbow", "grey", "purple", "metal", "orange",
if(..())
return 3
-/mob/living/simple_animal/slime/random/New(loc, new_colour, new_is_adult)
- . = ..(loc, pick(slime_colours), prob(50))
+/mob/living/simple_animal/slime/random/Initialize(mapload, new_colour, new_is_adult)
+ . = ..(mapload, pick(slime_colours), prob(50))
\ No newline at end of file
diff --git a/code/modules/mob/mob.dm b/code/modules/mob/mob.dm
index a00ef03f93d..4a7ebfecf9a 100644
--- a/code/modules/mob/mob.dm
+++ b/code/modules/mob/mob.dm
@@ -20,7 +20,7 @@
return QDEL_HINT_HARDDEL
var/next_mob_id = 0
-/mob/New()
+/mob/Initialize()
tag = "mob_[next_mob_id++]"
mob_list += src
if(stat == DEAD)
@@ -448,7 +448,7 @@ var/next_mob_id = 0
log_game("[usr.key] AM failed due to disconnect.")
return
- var/mob/new_player/M = new /mob/new_player()
+ var/mob/dead/new_player/M = new /mob/dead/new_player()
if(!client)
log_game("[usr.key] AM failed due to disconnect.")
qdel(M)
diff --git a/code/modules/mob/mob_transformation_simple.dm b/code/modules/mob/mob_transformation_simple.dm
index fd07279e830..f53287ee6b5 100644
--- a/code/modules/mob/mob_transformation_simple.dm
+++ b/code/modules/mob/mob_transformation_simple.dm
@@ -18,7 +18,7 @@
to_chat(usr, "Invalid type path (new_type = [new_type]) in change_mob_type(). Contact a coder.")
return
- if(ispath(new_type, /mob/new_player))
+ if(ispath(new_type, /mob/dead/new_player))
to_chat(usr, "Cannot convert into a new_player mob type.")
return
diff --git a/code/modules/research/xenobiology/xenobio_camera.dm b/code/modules/research/xenobiology/xenobio_camera.dm
index 1938588222d..35895dfdac2 100644
--- a/code/modules/research/xenobiology/xenobio_camera.dm
+++ b/code/modules/research/xenobiology/xenobio_camera.dm
@@ -5,7 +5,7 @@
icon_state = "camera_target"
var/allowed_area = null
-/mob/camera/aiEye/remote/xenobio/New(loc)
+/mob/camera/aiEye/remote/xenobio/Initialize()
var/area/A = get_area(loc)
allowed_area = A.name
..()
diff --git a/code/modules/shuttle/special.dm b/code/modules/shuttle/special.dm
index 650de473283..d039929d2fc 100644
--- a/code/modules/shuttle/special.dm
+++ b/code/modules/shuttle/special.dm
@@ -150,7 +150,7 @@
status_flags = GODMODE // Please don't punch the barkeeper
unique_name = FALSE // disables the (123) number suffix
-/mob/living/simple_animal/drone/snowflake/bardrone/New()
+/mob/living/simple_animal/drone/snowflake/bardrone/Initialize()
. = ..()
access_card.access |= access_cent_bar
@@ -166,7 +166,7 @@
AIStatus = AI_OFF
stop_automated_movement = TRUE
-/mob/living/simple_animal/hostile/alien/maid/barmaid/New()
+/mob/living/simple_animal/hostile/alien/maid/barmaid/Initialize()
. = ..()
access_card = new /obj/item/weapon/card/id(src)
var/datum/job/captain/C = new /datum/job/captain
diff --git a/code/world.dm b/code/world.dm
index 2b7ef6c93e7..986049afeaf 100644
--- a/code/world.dm
+++ b/code/world.dm
@@ -1,5 +1,5 @@
/world
- mob = /mob/new_player
+ mob = /mob/dead/new_player
turf = /turf/basic
area = /area/space
view = "15x15"
diff --git a/tgstation.dme b/tgstation.dme
index 68c913e2106..5dda89d7cd2 100644
--- a/tgstation.dme
+++ b/tgstation.dme
@@ -1414,7 +1414,13 @@
#include "code\modules\mob\transform_procs.dm"
#include "code\modules\mob\update_icons.dm"
#include "code\modules\mob\camera\camera.dm"
-#include "code\modules\mob\dead\death.dm"
+#include "code\modules\mob\dead\dead.dm"
+#include "code\modules\mob\dead\new_player\login.dm"
+#include "code\modules\mob\dead\new_player\logout.dm"
+#include "code\modules\mob\dead\new_player\new_player.dm"
+#include "code\modules\mob\dead\new_player\poll.dm"
+#include "code\modules\mob\dead\new_player\preferences_setup.dm"
+#include "code\modules\mob\dead\new_player\sprite_accessories.dm"
#include "code\modules\mob\dead\observer\login.dm"
#include "code\modules\mob\dead\observer\logout.dm"
#include "code\modules\mob\dead\observer\observer.dm"
@@ -1669,12 +1675,6 @@
#include "code\modules\mob\living\simple_animal\slime\say.dm"
#include "code\modules\mob\living\simple_animal\slime\slime.dm"
#include "code\modules\mob\living\simple_animal\slime\subtypes.dm"
-#include "code\modules\mob\new_player\login.dm"
-#include "code\modules\mob\new_player\logout.dm"
-#include "code\modules\mob\new_player\new_player.dm"
-#include "code\modules\mob\new_player\poll.dm"
-#include "code\modules\mob\new_player\preferences_setup.dm"
-#include "code\modules\mob\new_player\sprite_accessories.dm"
#include "code\modules\modular_computers\laptop_vendor.dm"
#include "code\modules\modular_computers\computers\item\computer.dm"
#include "code\modules\modular_computers\computers\item\computer_components.dm"