Created
August 20, 2017 17:32
-
-
Save Abion47/87870b66c467056adde2e1b1f21f1b5e 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 FullRecorder_OnUse(const tString &in asItem, const tString &in asEntity) | |
| { | |
| if (asEntity != "audiolock_interact") return; | |
| if (mbHasCorrectVoice) | |
| { | |
| Sound_PlayGui("sounds/recording_correct.ogg", 1.0); | |
| } | |
| else | |
| { | |
| Sound_PlayGui("sounds/recording_wrong.ogg", 1.0); | |
| } | |
| mbInteracted = true; | |
| } | |
| //------------------------------------------------------- | |
| void audiolock_interact_OnPlayerInteract(const tString &in asEntity) | |
| { | |
| if (mbIsPlaying || mfResponseTimer > 0.0f) | |
| { | |
| return; | |
| } | |
| if (Adventure_GetItemExists("FullRecorder")) | |
| { | |
| Adventure_ShowInventory(asEntity); | |
| } | |
| 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 | |
| { | |
| // Nothing 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