diff --git a/code/modules/instruments/songs/_song.dm b/code/modules/instruments/songs/_song.dm index 8d40f68cd4..26ed5e5dd3 100644 --- a/code/modules/instruments/songs/_song.dm +++ b/code/modules/instruments/songs/_song.dm @@ -307,9 +307,15 @@ /datum/song/holoparasite var/mob/living/simple_animal/hostile/guardian/stand +/datum/song/holoparasite/New(atom/parent, list/instrument_ids) + . = ..() + stand = istype(parent, /mob/living/simple_animal/hostile/guardian) && parent + /datum/song/holoparasite/updateDialog() stand.ui_interact(src) /datum/song/holoparasite/should_stop_playing(mob/user) return FALSE +/datum/song/holoparasite/check_can_use(mob/user) + return user == stand) diff --git a/code/modules/instruments/songs/editor.dm b/code/modules/instruments/songs/editor.dm index d9595797d7..8c5171667a 100644 --- a/code/modules/instruments/songs/editor.dm +++ b/code/modules/instruments/songs/editor.dm @@ -109,8 +109,11 @@ linenum++ updateDialog(usr) // make sure updates when complete +/datum/song/proc/check_can_use(mob/user) + return user.canUseTopic(parent, TRUE, FALSE, FALSE, FALSE) + /datum/song/Topic(href, href_list) - if(!usr.canUseTopic(parent, TRUE, FALSE, FALSE, FALSE)) + if(!check_can_use(usr)) usr << browse(null, "window=instrument") usr.unset_machine() return