Created
August 20, 2017 03:34
-
-
Save Abion47/06a0fc6ad176ed94d33a8701a53441ee to your computer and use it in GitHub Desktop.
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
| ///////////////////////////////////////// | |
| // Terminal *Voice Lock Terminal* | |
| //{////////////////////////////////////// | |
| //------------------------------------------------------- | |
| bool mbHasCorrectVoice = false; | |
| bool mbInteracted = false; | |
| bool mbIsPlaying = false; | |
| float mfResponseTimer = 0.0f; | |
| cColor mWaveformColor; | |
| tString msCurrentTiming; | |
| //------------------------------------------------------- | |
| void audiolock_interact_OnPlayerInteract(const tString &in asEntity) | |
| { | |
| if (mbIsPlaying || mfResponseTimer > 0.0f) | |
| { | |
| return; | |
| } | |
| if (mbHasCorrectVoice) | |
| { | |
| Sound_PlayGui("sounds/recording_correct.ogg", 1.0); | |
| } | |
| else | |
| { | |
| Sound_PlayGui("sounds/recording_wrong.ogg", 1.0); | |
| } | |
| mbInteracted = true; | |
| } | |
| //------------------------------------------------------- | |
| void audiolock_OnGui(const tString&in asEntityName, float afTimeStep) | |
| { | |
| if (ImGui_IsFirstRun()) | |
| { | |
| mWaveformColor = cColor(1.0, 1.0, 0.0); | |
| /////////////////////////// | |
| // Create timing for the wrong voice | |
| Waveform_CreateTiming("wrong_voice"); | |
| Waveform_AddStep(0.000, 0.319, 0.0, 0.0); | |
| Waveform_AddStep(0.319, 0.025, 0.0, 0.75); | |
| Waveform_AddStep(0.340, 0.079, 0.75, 1.0); | |
| Waveform_AddStep(0.419, 0.216, 1.0, 0.75); | |
| Waveform_AddStep(0.635, 0.047, 0.75, 0.05); | |
| Waveform_AddStep(0.682, 0.136, 0.05, 0.0); | |
| Waveform_AddStep(0.818, 0.464, 0.0, 0.0); | |
| Waveform_AddStep(1.282, 0.063, 0.0, 0.6); | |
| Waveform_AddStep(1.345, 0.091, 0.6, 0.0); | |
| Waveform_AddStep(1.436, 0.085, 0.0, 0.0); | |
| Waveform_AddStep(1.521, 0.063, 0.0, 0.6); | |
| Waveform_AddStep(1.584, 0.068, 0.6, 0.1); | |
| Waveform_AddStep(1.652, 0.138, 0.1, 0.0); | |
| Waveform_AddStep(1.790, 0.790, 0.0, 0.0); | |
| /////////////////////////// | |
| // Create timing for the correct voice | |
| Waveform_CreateTiming("correct_voice"); | |
| Waveform_AddStep(0.000, 0.077, 0.0, 0.0); | |
| Waveform_AddStep(0.077, 0.029, 0.0, 0.5); | |
| Waveform_AddStep(0.106, 0.013, 0.5, 0.75); | |
| Waveform_AddStep(0.119, 0.055, 0.75, 0.75); | |
| Waveform_AddStep(0.174, 0.031, 0.75, 0.1); | |
| Waveform_AddStep(0.205, 0.069, 0.1, 0.1); | |
| Waveform_AddStep(0.274, 0.004, 0.1, 0.9); | |
| Waveform_AddStep(0.278, 0.055, 0.9, 0.2); | |
| Waveform_AddStep(0.333, 0.059, 0.2, 0.2); | |
| Waveform_AddStep(0.392, 0.059, 0.2, 0.2); | |
| Waveform_AddStep(0.392, 0.002, 0.2, 0.3); | |
| Waveform_AddStep(0.394, 0.002, 0.3, 0.2); | |
| Waveform_AddStep(0.396, 0.027, 0.2, 0.2); | |
| Waveform_AddStep(0.423, 0.027, 0.2, 0.2); | |
| Waveform_AddStep(0.423, 0.002, 0.2, 0.3); | |
| Waveform_AddStep(0.425, 0.002, 0.3, 0.2); | |
| Waveform_AddStep(0.427, 0.020, 0.2, 0.2); | |
| Waveform_AddStep(0.447, 0.011, 0.2, 1.0); | |
| Waveform_AddStep(0.458, 0.008, 1.0, 0.7); | |
| Waveform_AddStep(0.466, 0.200, 0.7, 0.7); | |
| Waveform_AddStep(0.466, 0.200, 0.7, 0.7); | |
| Waveform_AddStep(0.666, 0.101, 0.7, 0.2); | |
| Waveform_AddStep(0.767, 0.081, 0.2, 0.5); | |
| Waveform_AddStep(0.848, 0.055, 0.5, 0.1); | |
| Waveform_AddStep(0.903, 0.041, 0.1, 0.1); | |
| Waveform_AddStep(0.944, 0.001, 0.1, 0.9); | |
| Waveform_AddStep(0.945, 0.007, 0.9, 0.2); | |
| Waveform_AddStep(0.952, 0.007, 0.2, 0.9); | |
| Waveform_AddStep(0.959, 0.003, 0.9, 0.4); | |
| Waveform_AddStep(0.962, 0.038, 0.4, 0.6); | |
| Waveform_AddStep(1.000, 0.054, 0.6, 0.1); | |
| Waveform_AddStep(1.054, 0.097, 0.1, 0.1); | |
| Waveform_AddStep(1.151, 0.009, 0.1, 0.15); | |
| Waveform_AddStep(1.160, 0.250, 0.15, 0.15); | |
| Waveform_AddStep(1.410, 0.018, 0.15, 0.2); | |
| Waveform_AddStep(1.428, 0.012, 0.2, 0.15); | |
| Waveform_AddStep(1.440, 0.050, 0.15, 0.15); | |
| Waveform_AddStep(1.490, 0.008, 0.15, 0.2); | |
| Waveform_AddStep(1.498, 0.081, 0.2, 0.1); | |
| Waveform_AddStep(1.579, 0.079, 0.1, 0.1); | |
| Waveform_AddStep(1.658, 0.019, 0.1, 1.0); | |
| Waveform_AddStep(1.677, 0.259, 1.0, 1.0); | |
| Waveform_AddStep(1.936, 0.085, 1.0, 0.6); | |
| Waveform_AddStep(2.021, 0.019, 0.6, 0.1); | |
| Waveform_AddStep(2.040, 0.051, 0.1, 0.1); | |
| Waveform_AddStep(2.091, 0.032, 0.1, 0.6); | |
| Waveform_AddStep(2.123, 0.056, 0.6, 0.6); | |
| Waveform_AddStep(2.179, 0.058, 0.6, 0.1); | |
| Waveform_AddStep(2.237, 0.004, 0.1, 0.6); | |
| Waveform_AddStep(2.241, 0.092, 0.6, 0.6); | |
| Waveform_AddStep(2.333, 0.022, 0.6, 0.2); | |
| Waveform_AddStep(2.355, 0.017, 0.2, 0.6); | |
| Waveform_AddStep(2.372, 0.063, 0.6, 0.2); | |
| Waveform_AddStep(2.435, 0.021, 0.2, 0.6); | |
| Waveform_AddStep(2.456, 0.060, 0.6, 0.5); | |
| Waveform_AddStep(2.516, 0.149, 0.5, 0.5); | |
| Waveform_AddStep(2.665, 0.021, 0.5, 0.1); | |
| Waveform_AddStep(2.686, 0.021, 0.1, 0.2); | |
| Waveform_AddStep(2.707, 0.009, 0.2, 0.6); | |
| Waveform_AddStep(2.716, 0.051, 0.6, 0.4); | |
| Waveform_AddStep(2.767, 0.019, 0.4, 0.1); | |
| Waveform_AddStep(2.786, 0.019, 0.1, 0.6); | |
| Waveform_AddStep(2.805, 0.022, 0.6, 0.5); | |
| Waveform_AddStep(2.827, 0.020, 0.5, 0.1); | |
| Waveform_AddStep(2.847, 0.054, 0.1, 0.1); | |
| Waveform_AddStep(2.901, 0.006, 0.1, 0.8); | |
| Waveform_AddStep(2.907, 0.069, 0.8, 0.4); | |
| Waveform_AddStep(2.976, 0.070, 0.4, 0.4); | |
| Waveform_AddStep(3.046, 0.012, 0.4, 0.8); | |
| Waveform_AddStep(3.058, 0.015, 0.8, 0.6); | |
| Waveform_AddStep(3.073, 0.066, 0.6, 0.6); | |
| Waveform_AddStep(3.139, 0.011, 0.6, 0.1); | |
| Waveform_AddStep(3.150, 0.031, 0.1, 0.1); | |
| Waveform_AddStep(3.181, 0.004, 0.1, 0.4); | |
| Waveform_AddStep(3.185, 0.008, 0.4, 0.1); | |
| Waveform_AddStep(3.193, 0.009, 0.1, 0.4); | |
| Waveform_AddStep(3.202, 0.021, 0.4, 0.2); | |
| Waveform_AddStep(3.223, 0.010, 0.2, 0.5); | |
| Waveform_AddStep(3.233, 0.038, 0.5, 0.2); | |
| Waveform_AddStep(3.261, 0.027, 0.2, 0.3); | |
| Waveform_AddStep(3.288, 0.010, 0.3, 0.4); | |
| Waveform_AddStep(3.298, 0.035, 0.4, 0.8); | |
| Waveform_AddStep(3.333, 0.188, 0.8, 0.7); | |
| Waveform_AddStep(3.521, 0.049, 0.7, 0.2); | |
| Waveform_AddStep(3.570, 0.077, 0.2, 0.1); | |
| Waveform_AddStep(3.647, 0.003, 0.1, 0.5); | |
| Waveform_AddStep(3.650, 0.003, 0.5, 0.15); | |
| Waveform_AddStep(3.653, 0.026, 0.15, 0.2); | |
| Waveform_AddStep(3.679, 0.004, 0.2, 0.6); | |
| Waveform_AddStep(3.683, 0.029, 0.6, 0.6); | |
| Waveform_AddStep(3.711, 0.040, 0.6, 0.2); | |
| Waveform_AddStep(3.751, 0.012, 0.2, 0.3); | |
| Waveform_AddStep(3.763, 0.040, 0.3, 0.3); | |
| Waveform_AddStep(3.803, 0.007, 0.3, 0.4); | |
| Waveform_AddStep(3.810, 0.128, 0.4, 0.4); | |
| Waveform_AddStep(3.938, 0.073, 0.4, 0.1); | |
| Waveform_AddStep(4.014, 0.042, 0.1, 0.1); | |
| Waveform_AddStep(4.056, 0.007, 0.1, 0.2); | |
| Waveform_AddStep(4.063, 0.141, 0.2, 0.2); | |
| Waveform_AddStep(4.204, 0.019, 0.2, 0.1); | |
| Waveform_AddStep(4.223, 0.115, 0.1, 0.1); | |
| } | |
| /////////////////////////// | |
| // Trigger a timing reset | |
| if (mbInteracted) | |
| { | |
| mbIsPlaying = true; | |
| mbInteracted = false; | |
| mfResponseTimer = 0.0f; | |
| if (mbHasCorrectVoice) | |
| { | |
| msCurrentTiming = "correct_voice"; | |
| } | |
| else | |
| { | |
| msCurrentTiming = "wrong_voice"; | |
| } | |
| Waveform_ResetTiming(msCurrentTiming); | |
| } | |
| /////////////////////////// | |
| // Draw Wave | |
| if (mbIsPlaying) | |
| { | |
| // Draw the wave with timing | |
| if (Waveform_DoWaveform(afTimeStep, msCurrentTiming, ImGui_NrmPos(0.0, 0.0, 1.0), ImGui_NrmSize(1, 1), 240, 32, 15, 0.08, mWaveformColor)) | |
| { | |
| // Timing is complete | |
| mbIsPlaying = false; | |
| mfResponseTimer = 5.0f; | |
| if (mbHasCorrectVoice) | |
| { | |
| mWaveformColor = cColor_Green; | |
| Sound_CreateAtEntity("Depth_Audio_Terminal_Air_Confirm", "Entities_Station/tech/terminal_beeps/pathOS_comp/pathOS_comp_ confirm", asEntityName, 0, false); | |
| SlideDoor_SetClosed("slidedoor_tau_small_2", false); | |
| } | |
| else | |
| { | |
| mWaveformColor = cColor_Red; | |
| Sound_CreateAtEntity("Depth_Audio_Terminal_Air_Error", "Entities_Station/tech/terminal_beeps/pathOS_comp/pathOS_comp_error", asEntityName, 0, false); | |
| } | |
| } | |
| } | |
| else | |
| { | |
| // Notihng is playing, just display noise | |
| Waveform_DoNoise(afTimeStep, ImGui_NrmPos(0.0, 0.0, 1.0), ImGui_NrmSize(1, 1), 240, 32, 15, 0.08, mWaveformColor); | |
| } | |
| if (mfResponseTimer > 0) | |
| { | |
| mfResponseTimer -= afTimeStep; | |
| if (mbHasCorrectVoice) | |
| { | |
| ImGui_DoImage(cImGuiGfx("terminal/access_granted.tga"), ImGui_NrmPos(0.1, 0.35, 5), ImGui_NrmSize(0.8, 0.3)); | |
| } | |
| else | |
| { | |
| ImGui_DoImage(cImGuiGfx("terminal/access_denied.tga"), ImGui_NrmPos(0.1, 0.35, 5), ImGui_NrmSize(0.8, 0.3)); | |
| } | |
| if (mfResponseTimer <= 0.0f) | |
| { | |
| mfResponseTimer = 0.0f; | |
| mWaveformColor = cColor(1.0f, 1.0f, 0.0f); | |
| } | |
| } | |
| } | |
| //------------------------------------------------------- | |
| //} END Terminal *Voice Lock Terminal* |
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment