mirror of
https://github.com/Citadel-Station-13/Citadel-Station-13-RP.git
synced 2026-08-21 13:16:37 +01:00
35 lines
1.2 KiB
Plaintext
35 lines
1.2 KiB
Plaintext
//* This file is explicitly licensed under the MIT license. *//
|
|
//* Copyright (c) 2025 Citadel Station Developers *//
|
|
|
|
SUBSYSTEM_DEF(resleeving)
|
|
name = "Resleeving"
|
|
subsystem_flags = SS_NO_FIRE | SS_NO_INIT
|
|
|
|
/// keyed bodyscan store of /datum/mind_ref to /datum/resleeving_body_backup
|
|
///
|
|
/// ## why is this here
|
|
///
|
|
/// with transcore removed, there is nowhere to store the state of bodies
|
|
/// without mirrors
|
|
///
|
|
/// this is required so you can take an active (mind-containing) brain
|
|
/// to a sleevepod and grow that character's body back if it's in here
|
|
/// by looking up their mindref datum
|
|
///
|
|
/// this should be removed when in game genetics is good enough to allow
|
|
/// appearance edits, as at that point it's an IC issue
|
|
var/static/list/round_local_body_backups = list()
|
|
|
|
/**
|
|
* Imprints someone's body backup for the round.
|
|
*
|
|
* * ONLY CALL THIS WHEN THEY ARE BEING SPAWNED IN; THIS OVERWRITES THE OLD ENTRY.
|
|
*
|
|
* @return TRUE/FALSE success/failure
|
|
*/
|
|
/datum/controller/subsystem/resleeving/proc/store_round_local_body_backup(datum/mind/for_mind, mob/for_body)
|
|
var/datum/resleeving_body_backup/backup = new(for_body)
|
|
var/datum/mind_ref/mind_key = for_mind.get_mind_ref()
|
|
|
|
round_local_body_backups[mind_key] = backup
|