From 242554b1b0f01a04eb68b7d7f4ed1f3fffcff408 Mon Sep 17 00:00:00 2001 From: Pete Goodfellow Date: Thu, 30 May 2013 22:38:30 +0100 Subject: [PATCH] Adds checks for the wires being intact to tape recorders, and readds the print transcript function. --- code/datums/wires/taperecorder.dm | 9 +++- .../objects/items/devices/taperecorder.dm | 50 ++++++++++++++----- 2 files changed, 45 insertions(+), 14 deletions(-) diff --git a/code/datums/wires/taperecorder.dm b/code/datums/wires/taperecorder.dm index 691d21fba59..a5fa9bd3939 100644 --- a/code/datums/wires/taperecorder.dm +++ b/code/datums/wires/taperecorder.dm @@ -30,4 +30,11 @@ var/const/WIRE_RECORD = 2 if(T.recording) T.stop() else - T.record() \ No newline at end of file + T.record() + +//helpers +/datum/wires/taperecorder/proc/get_play() + return !(wires_status & WIRE_PLAY) + +/datum/wires/taperecorder/proc/get_record() + return !(wires_status & WIRE_RECORD) \ No newline at end of file diff --git a/code/game/objects/items/devices/taperecorder.dm b/code/game/objects/items/devices/taperecorder.dm index ff6e028831d..c2cd4f1348d 100644 --- a/code/game/objects/items/devices/taperecorder.dm +++ b/code/game/objects/items/devices/taperecorder.dm @@ -15,6 +15,7 @@ var/obj/item/device/tape/mytape var/open_panel = 0 var/datum/wires/taperecorder/wires = null + var/canprint = 1 /obj/item/device/taperecorder/New() @@ -119,6 +120,8 @@ return if(playing) return + if(!wires.get_record()) + return if(mytape.used_capacity < mytape.max_capacity) usr << "Recording started." @@ -131,6 +134,8 @@ for(used, used < max) if(recording == 0) break + if(!wires.get_record()) + break mytape.used_capacity++ used++ sleep(10) @@ -172,6 +177,8 @@ return if(playing) return + if(!wires.get_play()) + return playing = 1 update_icon() @@ -181,6 +188,8 @@ for(var/i = 1, used < max, sleep(10 * playsleepseconds)) if(!mytape) break + if(!wires.get_play()) + break if(playing == 0) break if(mytape.storedinfo.len < i) @@ -214,6 +223,33 @@ record() +/obj/item/device/taperecorder/verb/print_transcript() + set name = "Print Transcript" + set category = "Object" + + if(usr.stat) + return + if(!mytape) + return + if(!canprint) + usr << "The recorder can't print that fast!" + return + if(recording || playing) + return + + usr << "Transcript printed." + var/obj/item/weapon/paper/P = new /obj/item/weapon/paper(get_turf(src)) + var/t1 = "Transcript:

" + for(var/i = 1, mytape.storedinfo.len >= i, i++) + t1 += "[mytape.storedinfo[i]]
" + P.info = t1 + P.name = "paper- 'Transcript'" + usr.put_in_hands(P) + canprint = 0 + sleep(300) + canprint = 1 + + //empty tape recorders /obj/item/device/taperecorder/empty/New() wires = new(src) @@ -264,16 +300,4 @@ //Random colour tapes /obj/item/device/tape/random/New() - icon_state = "tape_[pick("white", "blue", "red", "yellow", "purple")]" - - - -/* -/obj/item/device/taperecorder/proc/print_transcript() - var/obj/item/weapon/paper/P = new /obj/item/weapon/paper(get_turf(src)) - var/t1 = "Transcript:

" - for(var/i=1,storedinfo.len >= i,i++) - t1 += "[storedinfo[i]]
" - P.info = t1 - P.name = "paper- 'Transcript'" -*/ \ No newline at end of file + icon_state = "tape_[pick("white", "blue", "red", "yellow", "purple")]" \ No newline at end of file