diff --git a/code/controllers/subsystem/jobs.dm b/code/controllers/subsystem/jobs.dm index e760433791e..eaf01d53019 100644 --- a/code/controllers/subsystem/jobs.dm +++ b/code/controllers/subsystem/jobs.dm @@ -595,7 +595,7 @@ SUBSYSTEM_DEF(jobs) var/datum/department_member/member = new member.name = H.real_name member.role = job.title - member.member_account = account + member.set_member_account(account) //we need to set this through a proc so we can register signals member.can_approve_crates = job?.department_account_access department.members += member diff --git a/code/game/jobs/departments.dm b/code/game/jobs/departments.dm index eaee4d43a76..391576ef58c 100644 --- a/code/game/jobs/departments.dm +++ b/code/game/jobs/departments.dm @@ -32,6 +32,15 @@ ///This department members money account var/datum/money_account/member_account + +/datum/department_member/proc/set_member_account(datum/money_account/account) + member_account = account + RegisterSignal(account, COMSIG_PARENT_QDELETING, PROC_REF(clear_member_account)) + +/datum/department_member/proc/clear_member_account(datum/money_account/account) + UnregisterSignal(account, COMSIG_PARENT_QDELETING) + member_account = null + /datum/station_department/can_vv_delete() message_admins("An admin attempted to VV delete a station_department datum, please stop doing this it will break cargo") return FALSE