{xVZerH>BBzNPNbSY9hqmz%+`#o(d4rk}~6jlsK^p$$_A3Fv;vKn+?ys~#(NgB{Z z@RC=RU?V#8-%Aazl<2B57aTrac_kD(cbMA5BPKT zOc@+VOd(CQlJ~~A%(<&%4^Z2I39Vln>O6OXzsjv&oaTTw(LV|U+!N(F?t6zA=8#{# znZeU=H%rM9&zm6;P|tuFs8SwK;$g@q #PxA%jKucgSKZkjuH=7neJiyZ$B@VD+{D9Z-m=?ZslPNcY zTGn<_tj1>Y4}?l7u-I`P?4Dj~I3R_O$ax$~&}f@g@%ERlEHA$QeULR{rXJpOQ}sok zlmwdsOI&e!(Mdp)vmqi*AHwAT+2agE^tD&72jY4&hEfFR_7afC9#Sr>?!4;JVmtt0 zCuLe5SySpn)+=9L?PSkNA^nKoWF%p3r}`d7P`^UICqIxk6#AYVc7}y-Jk)l*t^BIj zoUl72R+hy9%!g)f91nCL;KF>l-h;1ecPpMk0GO*WAG-4D07Vf98N{tmM@K07D9>_r l GfzW^N+O`QM$ literal 0 HcmV?d00001 diff --git a/Resources/Locale/en-US/deltav/taperecorder/taperecorder.ftl b/Resources/Locale/en-US/deltav/taperecorder/taperecorder.ftl new file mode 100644 index 00000000000..24315ed3703 --- /dev/null +++ b/Resources/Locale/en-US/deltav/taperecorder/taperecorder.ftl @@ -0,0 +1,27 @@ +cassette-repair-start = You start winding the tape back into {THE($item)}. +cassette-repair-finish = You manage to wind the tape back into {THE($item)}. +tape-cassette-position = The cassette is about [color=green]{$position}%[/color] the way through. +tape-cassette-damaged = The cassette is unspooled, use a pen or screwdriver to repair it. +tape-recorder-playing = The tape recorder is in [color=green]playback[/color] mode. +tape-recorder-stopped = The tape recorder is stopped. +tape-recorder-empty = The tape recorder is empty. +tape-recorder-recording = The tape recorder is in [color=red]recording[/color] mode. +tape-recorder-rewinding = The tape recorder is in [color=yellow]rewinding[/color] mode. +tape-recorder-locked = Cant eject while the tape recorder is running. +tape-recorder-voice-unknown = Unknown +tape-recorder-voice-unintelligible = Unintelligible +tape-recorder-message-corruption = # + +tape-recorder-menu-title = Tape Recorder +tape-recorder-menu-controls-label = Controls: +tape-recorder-menu-stopped-button = Pause +tape-recorder-menu-recording-button = Record +tape-recorder-menu-playing-button = Playback +tape-recorder-menu-rewinding-button = Rewind +tape-recorder-menu-print-button = Print record transcript +tape-recorder-menu-cassette-label = Cassette tape: {$cassetteName} +tape-recorder-menu-no-cassette-label = Cassette tape is not inserted + +tape-recorder-print-start-text = [bold]Start of recorded transcript[/bold] +tape-recorder-print-message-text = [bold][{$time}] {$source}: [/bold] {$message} +tape-recorder-print-end-text = [bold]End of recorded transcript[/bold] diff --git a/Resources/Prototypes/Catalog/Fills/Lockers/security.yml b/Resources/Prototypes/Catalog/Fills/Lockers/security.yml index fe3b1ebaba1..43a3c794252 100644 --- a/Resources/Prototypes/Catalog/Fills/Lockers/security.yml +++ b/Resources/Prototypes/Catalog/Fills/Lockers/security.yml @@ -203,6 +203,7 @@ - id: HoloprojectorSecurity - id: BoxEvidenceMarkers - id: HandLabeler + - id: BoxTapeRecorder # DeltaV - id: LunchboxSecurityFilledRandom # Delta-v Lunchboxes! prob: 0.3 diff --git a/Resources/Prototypes/DeltaV/Catalog/Fills/Boxes/security.yml b/Resources/Prototypes/DeltaV/Catalog/Fills/Boxes/security.yml new file mode 100644 index 00000000000..769abfd2a7d --- /dev/null +++ b/Resources/Prototypes/DeltaV/Catalog/Fills/Boxes/security.yml @@ -0,0 +1,16 @@ +- type: entity + parent: BoxCardboard + id: BoxTapeRecorder + name: tape recorder box + description: A box with colorful cassette tapes and a tape recorder. + components: + - type: Sprite + layers: + - state: box_security + - sprite: DeltaV/Objects/Storage/boxes.rsi + state: recorder + - type: StorageFill + contents: + - id: CassetteTape + amount: 4 + - id: TapeRecorder diff --git a/Resources/Prototypes/DeltaV/Entities/Objects/Devices/tape_recorder.yml b/Resources/Prototypes/DeltaV/Entities/Objects/Devices/tape_recorder.yml new file mode 100644 index 00000000000..dbebdd1b9d0 --- /dev/null +++ b/Resources/Prototypes/DeltaV/Entities/Objects/Devices/tape_recorder.yml @@ -0,0 +1,147 @@ +- type: entity + parent: BaseItem + id: TapeRecorder + name: tape recorder + description: Anything said into this device can and will be used against you in a court of space law. + components: + - type: Sprite + sprite: DeltaV/Objects/Devices/tape_recorder.rsi + layers: + - state: empty + - state: idle + map: ["tape"] + visible: false + - type: Item + size: Small + - type: TapeRecorder + - type: ActiveListener + range: 4 + - type: UseDelay + delay: 1 + - type: Speech + - type: ItemSlots + slots: + cassette_tape: + priority: 4 + whitelist: + components: + - FitsInTapeRecorder + - type: ContainerContainer + containers: + cassette_tape: !type:ContainerSlot + - type: Appearance + - type: GenericVisualizer + visuals: + enum.TapeRecorderVisuals.Mode: + tape: + Stopped: { state: "idle" } + Playing: { state: "playing" } + Recording: { state: "recording" } + Rewinding: { state: "rewinding" } + enum.TapeRecorderVisuals.TapeInserted: + tape: + True: { visible: true } + False: { visible: false } + - type: ActivatableUI + key: enum.TapeRecorderUIKey.Key + inHandsOnly: true + requireActiveHand: false + - type: UserInterface + interfaces: + enum.TapeRecorderUIKey.Key: + type: TapeRecorderBoundUserInterface + +- type: entity + parent: TapeRecorder + id: TapeRecorderFilled + suffix: Filled + components: + - type: ContainerFill + containers: + cassette_tape: + - CassetteTape + +- type: entity + parent: BaseItem + id: CassetteTape + name: cassette tape + description: A magnetic tape that can hold up to two minutes of content on either side. + components: + - type: Sprite + sprite: DeltaV/Objects/Devices/cassette_tapes.rsi + layers: + - state: tape_greyscale + map: [ "enum.DamageStateVisualLayers.Base" ] + - state: tape_ribbonoverlay + map: [ "enum.ToggleVisuals.Layer" ] + visible: false + - type: Item + size: Tiny + - type: Damageable + - type: TapeCassette + maxCapacity: 180 + repairWhitelist: + tags: + - Screwdriver + - Write + - type: FitsInTapeRecorder + - type: Appearance + - type: GenericVisualizer + visuals: + enum.ToggleVisuals.Toggled: + enum.ToggleVisuals.Layer: + True: { visible: true } + False: { visible: false } + - type: RandomSprite + available: + - enum.DamageStateVisualLayers.Base: + tape_greyscale: Rainbow + +- type: entity + suffix: Interview with Garry Smosh + parent: CassetteTape + id: CassetteTapeInterview + components: + - type: Label + currentLabel: Interview with Garry Smosh + - type: TapeCassette + recordedData: + - timestamp: 2 + name: Phil Dervin + message: "Its 11:43am, present in the room are Phil Dervin, Detective first class, Officer Belview and Grarry Smosh, Suspect of one count of secure tresspass, four counts of assault, two counts of theft and 85 counts of disturbing the peace." + - timestamp: 6 + name: Phil Dervin + message: "Mr Smosh, do you understand the charges you have been accused of?" + - timestamp: 14 + name: Grarry Smosh + message: "I don't care what you say, i ain't done anything." + - timestamp: 18 + name: Phil Dervin + message: "Sir, you were caught redhanded in the Captains bedroom. In the middle of an attempt at stealing his whiskey reserve no less." + - timestamp: 23 + name: Phil Dervin + message: "You are lucky he didn't shoot you for that." + - timestamp: 28 + name: Grarry Smosh + message: "I didn't see no signs saying i couldn't be there." + - timestamp: 34 + name: Phil Dervin + message: "The Captains bedroom? I don't think we need a sign telling people to stay out - it's common sense." + - timestamp: 38 + name: Phil Dervin + message: "Anyway that's besides the point, even if it were not off limits there is still the matter of the restricted items we found on your person and the subsequent attempt at evading arrest." + - timestamp: 42 + name: Grarry Smosh + message: "I ain't done nothing." + - timestamp: 46 + name: Officer Belview + message: "You slipped 3 officers, stole a stun baton and beat Ian with it. The HOP was very upset at that last part." + - timestamp: 50 + name: Grarry Smosh + message: "Which one of you gave the HOP a disabler?" + - timestamp: 54 + name: Phil Dervin + message: "The Warden did, turned out to be a good idea eh?" + - timestamp: 58 + name: Officer Belview + message: "I would say so." diff --git a/Resources/Prototypes/DeltaV/Entities/Objects/Misc/paper.yml b/Resources/Prototypes/DeltaV/Entities/Objects/Misc/paper.yml index 2682f83ab88..7f8a5b862b3 100644 --- a/Resources/Prototypes/DeltaV/Entities/Objects/Misc/paper.yml +++ b/Resources/Prototypes/DeltaV/Entities/Objects/Misc/paper.yml @@ -91,3 +91,9 @@ before consuming. Enjoy your drinks! + +- type: entity + parent: Paper + id: TapeRecorderTranscript + name: record transcript + # TODO: could have a unique sprite in the future diff --git a/Resources/Prototypes/DeltaV/Loadouts/Miscellaneous/trinkets.yml b/Resources/Prototypes/DeltaV/Loadouts/Miscellaneous/trinkets.yml index be1f4227763..ae213aaaa58 100644 --- a/Resources/Prototypes/DeltaV/Loadouts/Miscellaneous/trinkets.yml +++ b/Resources/Prototypes/DeltaV/Loadouts/Miscellaneous/trinkets.yml @@ -27,3 +27,9 @@ storage: back: - WhiteCane + +- type: loadout + id: TapeRecorder + storage: + back: + - TapeRecorderFilled diff --git a/Resources/Prototypes/DeltaV/Recipes/Lathes/misc.yml b/Resources/Prototypes/DeltaV/Recipes/Lathes/misc.yml new file mode 100644 index 00000000000..4c6af83db85 --- /dev/null +++ b/Resources/Prototypes/DeltaV/Recipes/Lathes/misc.yml @@ -0,0 +1,17 @@ +- type: latheRecipe + id: CassetteTape + result: CassetteTape + category: Tools + completetime: 2 + materials: + Steel: 50 + Plastic: 150 + +- type: latheRecipe + id: TapeRecorder + result: TapeRecorder + category: Tools + completetime: 3 + materials: + Steel: 250 + Plastic: 250 diff --git a/Resources/Prototypes/Entities/Structures/Machines/lathe.yml b/Resources/Prototypes/Entities/Structures/Machines/lathe.yml index 14a6981a49d..eb57f52542e 100644 --- a/Resources/Prototypes/Entities/Structures/Machines/lathe.yml +++ b/Resources/Prototypes/Entities/Structures/Machines/lathe.yml @@ -206,6 +206,8 @@ - SilverRing - GoldRingDiamond - SilverRingDiamond + - CassetteTape + - TapeRecorder # End Delta-V additions - type: EmagLatheRecipes emagStaticRecipes: diff --git a/Resources/Prototypes/Loadouts/loadout_groups.yml b/Resources/Prototypes/Loadouts/loadout_groups.yml index d801a9fce93..e22e6889946 100644 --- a/Resources/Prototypes/Loadouts/loadout_groups.yml +++ b/Resources/Prototypes/Loadouts/loadout_groups.yml @@ -45,12 +45,15 @@ - TowelColorSilver - TowelColorWhite - TowelColorYellow - - AACTablet # DeltaV - - GoldRing # DeltaV - - SilverRing # DeltaV - - Cane # DeltaV - - WhiteCane #DeltaV - - CDDogtags # _CD + # Begin DeltaV Additions + - AACTablet + - GoldRing + - SilverRing + - Cane + - WhiteCane + - CDDogtags # taken from Cosmatic Drift + - TapeRecorder + # End DeltaV Additions - type: loadoutGroup id: Glasses diff --git a/Resources/Prototypes/Roles/Jobs/Wildcards/reporter.yml b/Resources/Prototypes/Roles/Jobs/Wildcards/reporter.yml index 4fe57726c24..b3bc1559e78 100644 --- a/Resources/Prototypes/Roles/Jobs/Wildcards/reporter.yml +++ b/Resources/Prototypes/Roles/Jobs/Wildcards/reporter.yml @@ -21,6 +21,8 @@ shoes: ClothingShoesColorWhite id: ReporterPDA ears: ClothingHeadsetService - #storage: - #back: - #- Stuff + storage: # DeltaV: Give reporters tape recording equipment + back: + - TapeRecorder + - CassetteTape + - CassetteTape diff --git a/Resources/Textures/DeltaV/Objects/Devices/cassette_tapes.rsi/meta.json b/Resources/Textures/DeltaV/Objects/Devices/cassette_tapes.rsi/meta.json new file mode 100644 index 00000000000..db55b94ff4a --- /dev/null +++ b/Resources/Textures/DeltaV/Objects/Devices/cassette_tapes.rsi/meta.json @@ -0,0 +1,17 @@ +{ + "version": 1, + "license": "CC-BY-SA-3.0", + "copyright": "Taken from tgstation at https://github.com/tgstation/tgstation/commit/92dc954ab5317b370e98dd070ad60ba8c3e8a6e9", + "size": { + "x": 32, + "y": 32 + }, + "states": [ + { + "name": "tape_greyscale" + }, + { + "name": "tape_ribbonoverlay" + } + ] +} diff --git a/Resources/Textures/DeltaV/Objects/Devices/cassette_tapes.rsi/tape_greyscale.png b/Resources/Textures/DeltaV/Objects/Devices/cassette_tapes.rsi/tape_greyscale.png new file mode 100644 index 0000000000000000000000000000000000000000..9c0c99e09a220d886e1ef190ab8d7ddad213f58e GIT binary patch literal 423 zcmV;Y0a*TtP) oxU#PquA;_|NAvsjA9HA Iv$U7xm* X?lR!Y)1S2 zp4)kze;b2R;P5m}`Fy!tP6L3BMrQ+}EK6FgR^&L2QdJd0y uS4;N}@u*6&yftpG^<}N_m|q3E*U!8t;z>wR4mV+5v37 zpX!3?c%;$*>>ymz)>b+-0W(7gfTwgS{3op=xFq6|fVTc-08YdfoY3#~9@a_%*ywT~ z5#)i9b{CKZ9-~qMmjl`)5u`PZK45E>qCx 3YN--%KSF11eNi<+OL>c(yMVaEZ(FmBJ r!1V5C>-A&=IFVQInV)7~0(IgBju{f?B3xN300000NkvXXu0mjf#Z|S& literal 0 HcmV?d00001 diff --git a/Resources/Textures/DeltaV/Objects/Devices/tape_recorder.rsi/empty.png b/Resources/Textures/DeltaV/Objects/Devices/tape_recorder.rsi/empty.png new file mode 100644 index 0000000000000000000000000000000000000000..5e8e0ab3e064f4f45227f6d48ad082964be3418f GIT binary patch literal 581 zcmV-L0=oT)P) AAg zVr5|^{sAisvF(a~z=91Ts8r+qC{faf8l-7t+%q!LDdA3Y5lO$znK^TE?{ChWbI%mu zkCg++0ptL<0h|>crAUjFH%LS(b5n5X=(_K$~}T_ac0C`DNTeFo5dXDt6VN@Ir8B zV10E3QelzK7rBqA*5Pug)^4}s GKcO-f+j|1AU;0Hxk!GQ;Qd>HJeOvj}W& z;`Zj|9fCHWZ)?Kx;UmU4*5=ND+wI26+J??IJvo8C!Tt}i(Y+JE;^bP_a2G5r&fy_0 zV{~j>y{E!UCX>ik!rO4SSVB)Kh3NH`*dpZB3){S_Z;)z33HW!!6rmB7l$PT1EXW-% z9N<0{gTrb6eE>>5$z(R;Fn9!4x#M>MGR1QUWd$%iG@`qwvp-#05&9PAxz^(bI6pl` zXM3y8M@6)83%p*h&ace^^{8gwp59)o0igh-s+wAaLKm _v=5WNeF1xO?k@OUZ_k4Is%mFX;L!)ik|;s!`1pV_<*sZ)>Ue!3;y*4MG1 zw^n>MFdGbY0i~S2bEef4iA0bOW8wk`Ux%ot6`oisNa4R^X%NEofBuSd06(Qyf~&cR TJLsK+00000NkvXXu0mjfgu4YU literal 0 HcmV?d00001 diff --git a/Resources/Textures/DeltaV/Objects/Devices/tape_recorder.rsi/idle.png b/Resources/Textures/DeltaV/Objects/Devices/tape_recorder.rsi/idle.png new file mode 100644 index 0000000000000000000000000000000000000000..d495533369508a6a56e0ada03def7ed0437721b6 GIT binary patch literal 597 zcmV-b0;>IqP) WN44 zAR-U)Cn!(6Z0!>-%JqQ~a<|rH-K|UQ#ae0GH0DgLwl&rnW|G=(P3JfBJ)QHJneWUw zk@#bU073vE0BQhDY8o5IFhTn;obPtKaeizLlN5kVUQttzhuiC*{f^BhWM*e@RX$4# zLHz{QmY2Z9#tC{6iWt6CsZ=<#T%!2d4Mjl_YdYNf7J?cenw#8cGzxnCBcnJv*x_q3 z`FL3orcYkbMKLZlfKI2w(#pD^H`LpMmiE? G(Vvq0i>wYVY$6WO;sI#1WL9LUY=V}SzapWkw2loWDB8QuNS=T zTMPJFt_);kWy9&Tf9W^wZeXgQgs-()EodIUC;*qs1*I~HhX`zm))h+pMAQIY&nvgy z-$2dX9a;DNTcXF@9Ilg>uU|bL=>dqydQVaw*!pC%*$@tKq5^oZ-jMgn()1 2I!NE;LY>QeD>>#2J zPFkAA V}V*vdg zz<}Qa=9>xt;G$mxs7@x{AFj@LA`lS~5fKp)5fKp)5mA6Beh(NQpBRcoqc6{nGj>zG zdDrn-EI9hWB7hOUapjs p)u9Otj z^I#PZP^(>IduLa+c1BN5foUTpGno|>t$l<;Ay*1jtya#v_7U8gUXYe>P`7R5@&$Z` ze|Wfu(V@tXJ5TX*PkKT?c%JWV|D7pgUMimJHf&qX +P-mUWWrj*gm{h zQ_~HTvD%` vlb?>O?;)G5jN@A zH!BY{@r%dm|JDV!-Kjoj`}|&t2ZIt6ROMfrH+}QBJ%9SMgW2}()H$#~JmH11`BQ5q zh61}4tQkJO`(k6}ed={^K?3zte!MyG #7K^^aoXTI+yw0z85^bW$Ejm zK!JeO;ja6i%l|r+aM*)U+hJ)D3s9!R<;$y+8}IiYdDH6ZTNSr_wZ@4xPwplC{bGE; zC|9y1F}vE`%1`*{B}TW!7Xx+)AE_yceNw#IphrYzdFS7~u^->M1J(WfaOc>sW6OBN z; _hSyCmrG>P$|#}aMP(A+EM zS)5FA&v{;aT^4&jxcH~(l+*1y)?7cbU0gxK$v<$xm#T%izwb-@j#X-wnBCFwZ+1BE X*U6d9Hy`%^Bap$<)z4*}Q$iB}z31E$ literal 0 HcmV?d00001 diff --git a/Resources/Textures/DeltaV/Objects/Devices/tape_recorder.rsi/meta.json b/Resources/Textures/DeltaV/Objects/Devices/tape_recorder.rsi/meta.json new file mode 100644 index 00000000000..1eb82b58874 --- /dev/null +++ b/Resources/Textures/DeltaV/Objects/Devices/tape_recorder.rsi/meta.json @@ -0,0 +1,58 @@ +{ + "version": 1, + "license": "CC-BY-SA-3.0", + "copyright": "Taken from tgstation at https://github.com/tgstation/tgstation/commit/92dc954ab5317b370e98dd070ad60ba8c3e8a6e9", + "size": { + "x": 32, + "y": 32 + }, + "states": [ + { + "name": "idle" + }, + { + "name": "inhand-right", + "directions": 4 + }, + { + "name": "inhand-left", + "directions": 4 + }, + { + "name": "recording", + "delays": [ + [ + 0.1, + 0.1, + 0.1, + 0.1 + ] + ] + }, + { + "name": "playing", + "delays": [ + [ + 0.1, + 0.1, + 0.1, + 0.1 + ] + ] + }, + { + "name": "rewinding", + "delays": [ + [ + 0.1, + 0.1, + 0.1, + 0.1 + ] + ] + }, + { + "name": "empty" + } + ] +} diff --git a/Resources/Textures/DeltaV/Objects/Devices/tape_recorder.rsi/playing.png b/Resources/Textures/DeltaV/Objects/Devices/tape_recorder.rsi/playing.png new file mode 100644 index 0000000000000000000000000000000000000000..57d9ebf4270e79f33b1e34acacf0b4df4a4f7e49 GIT binary patch literal 955 zcmV;s14R6ZP) xNHX!@Rv1o?FvFR}mqaF^2G29>61;udb z3mHJ-*GleSYGQ2D AS$E&mZydK?T0GHKVby5sxaLU_1FaJ&MkrKJy%^ zsvmDzU)q4;GpF#ZwgzSQN-gW1`yIFyiC}i}yYf3hjM3nrc>z@D|JUz;mo>F``>w&V zwrYsqyjuoeLp?aSeBqM00umvsFKqxV`?l8Rg!KbiSs42f02j3EPkQnbo`bBuv;l=@ z&&PW}e{gt1ePM16u52f`@Or)f^nk7EEAIg*si|0+4}+7 nvlP}HR|u`P<|(fX%kkrKv{iZ14f2}xPJAbWsQD`t%air za_LL0fb#Nk%m2rIi<|q#cW@vu2=^fuRKuY!Y(QSV2lMl@3G1but$1H}&fIsq-B7*! zx%7n%SX^90X68ZjB-U? ~tNc7qQNeIWy;CdcXf6css^UR$YtCB~^QyaN87#E!wGuipy8 z=4b<8bF=}lIobf&9Blw>jy6E_K%EcJ`2d{{(D?wJ55S-KJVDc$-tP8o&j)ypy5nOp z75M~d186iwvq2h Z?tB0ZXX!&1!s-IB z=L2ZjuP!entaIlBXxZ;*K7i))M4|~TcRt`v-Rt=3Q;| pK7pW|fX)Xf(AW6@QE{CQ(D?wJ577Alkz;i}fC-%sU_u)J dn`3(eeghO%28JmZ$w>eJ002ovPDHLkV1mS+!L$GX literal 0 HcmV?d00001 diff --git a/Resources/Textures/DeltaV/Objects/Devices/tape_recorder.rsi/recording.png b/Resources/Textures/DeltaV/Objects/Devices/tape_recorder.rsi/recording.png new file mode 100644 index 0000000000000000000000000000000000000000..e5fda908c8c9b123236688cf39eb7c349d6065a8 GIT binary patch literal 934 zcmeAS@N?(olHy`uVBq!ia0vp^4j|0I1|(Ny7TyC=oCO|{#S9F5M?jcysy3fA0|Rq} zr;B4q#hkZM=e }Gbx+^!7yE92_qJ-{} zj&JW4nH~DWF1XW!L-^0s#~FUl`ZaaW$n)|vpZIcavt&-q`JLwPFCN`3f98&Pv0lye z_jAkd)xNK>epryf_yCSMxC3_nPuO+j>8*mk(;ezUoIU++ &n2dSTi?Hx+&<=gH_xZGw~2eoH}^kVw`EUwI$i9+kCVYSr3|E` z L(#nvHEds}ub(wPra=54kNLq@Vkg2_)Q=_aD0#RhwWlm8`(Pl;&L2yS6a+XT z{>{JHJ^Of%X+twG+-61Di;30UJQjbh#(nYfJ2u~b)&$J`7xU*3la8+L!ZkVbcXr&F zxMA1-I7V?`^sq+wsrEj9n_0nI`f_LWTaS!#af!)c;uCz9E|7}(6J**jZ~Mwq&-x_K zoISgcq2|E@aiN57w@qUGGbir+a?9(hwxM6$L!KYIJ93%D_t$Cjv^#S%pkW28z~9VU z>>Z%QhFkO11Ip8W1mB FkG3n=$^vX vMln7dWB5 z;4dTBkFE9&Q(_Q~Oj-Ah-N5lT^Na mdKI;Vst E0DqvmiU0rr literal 0 HcmV?d00001 diff --git a/Resources/Textures/DeltaV/Objects/Devices/tape_recorder.rsi/rewinding.png b/Resources/Textures/DeltaV/Objects/Devices/tape_recorder.rsi/rewinding.png new file mode 100644 index 0000000000000000000000000000000000000000..3e82112584a0771587d6c84efe963ee9ec87a709 GIT binary patch literal 887 zcmV--1Bm>IP) +b zC3;gxK?IS4WqwR)SrcI?%a09)oW{D^Aa>67zVm%KRL>8_*?8VP|7Q A7T~1)N&0!*4NUmTk$QT+F1qQWL#tu zWa=|5Dk-aoTdh_oxpv*S#byNn#54_?p%7f*2&Tf@LK`4UpXm$$fWx_VjE#-y#`*?_ zu)OdI0N@Ho@Zv%Ps$afkO>L?^a|23COY!F2v~KKS?|rD9H