From 0f3efb8103769cd3bf19ffefbca226f3d02151db Mon Sep 17 00:00:00 2001 From: chaoskagami Date: Sun, 24 Aug 2014 21:01:27 -0400 Subject: [PATCH] Implemented voice-stopping on quoted lines. --- .gitignore | 2 +- bin/vndc.x86_64 | Bin 114010 -> 114010 bytes vndc/src/op_sound.cpp | 47 +++++++++++++++++++++++++++--------------- 3 files changed, 31 insertions(+), 18 deletions(-) diff --git a/.gitignore b/.gitignore index 83b2d3b..de6a576 100644 --- a/.gitignore +++ b/.gitignore @@ -9,4 +9,4 @@ *.ttf # Prevent binary & lib dirs. -./bin/ +./bin/* diff --git a/bin/vndc.x86_64 b/bin/vndc.x86_64 index abae162e0ede4e70c795ccd6cbc9b9e4a7108b17..3523bfbc323b93fb6b961b7f5616c6e85221d493 100755 GIT binary patch delta 12281 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 R_ylC~=$ZUA6G&;y{{e!-EK>jg diff --git a/vndc/src/op_sound.cpp b/vndc/src/op_sound.cpp index f6bd313..e219cac 100644 --- a/vndc/src/op_sound.cpp +++ b/vndc/src/op_sound.cpp @@ -18,27 +18,40 @@ void op_sound(char* file, int* times) { GetData()->ctx->Audio()->FlushSfx(); return; } - // Play command - else { - int count = 1; - if (times != NULL) - count = *times; + // Extension - Voiced auto-stop. If the next line contains quotes, + // it is voiced. We set a flag in response. If the flag is already + // set - e.g. the sound was a voice as well, we stop the previous + // sound before playing this one. + + if(GetData()->vndc_enabled && + (GetData()->next_line[6] == '"' || + GetData()->next_line[strlen(GetData()->next_line) - 1] == '"')) { + if(GetData()->is_spoken_line == true) { + GetData()->ctx->Audio()->FlushSfx(); + } + GetData()->is_spoken_line = true; + } + else + GetData()->is_spoken_line = false; + - char path[400]; - memset(path, 0, 400); + // Play command + int count = 1; + if (times != NULL) + count = *times; - snprintf(path, 400, "sound/%s", file); + char path[400]; + memset(path, 0, 400); - //printf("[op_sound] path: '%s'\n", path); + snprintf(path, 400, "sound/%s", file); - // Load displayable. - int sfxi = GetData()->ctx->Audio()->LoadSfx(path); + // Load sfx. + int sfxi = GetData()->ctx->Audio()->LoadSfx(path); - if (count == -1) { - GetData()->ctx->Audio()->PlaySfx(sfxi, count); - } - else { - GetData()->ctx->Audio()->PlaySfx(sfxi, count-1); - } + if (count == -1) { + GetData()->ctx->Audio()->PlaySfx(sfxi, count); + } + else { + GetData()->ctx->Audio()->PlaySfx(sfxi, count-1); } } -- 2.39.5