aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorCrystalwarrior <varsash@gmail.com>2019-09-14 00:46:46 +0300
committerCrystalwarrior <varsash@gmail.com>2019-09-14 00:46:46 +0300
commit4645d9dd080964560477e48d99812bc494c1965b (patch)
tree7a0fb1318ada5b95ebac3fed37bba8e1d74c4a33
parent1139bf5cd0473817ba223ac8a9fe9d193575206a (diff)
Add a blip sound QElapsedTimer so blipsounds don't play more frequently than 60ms to preserve all of our ears.
Adjust the message display speeds to feel more accurate to AA, with }}} speed displaying text instantly for that section
-rw-r--r--include/aoblipplayer.h4
-rw-r--r--include/courtroom.h2
-rw-r--r--src/aoblipplayer.cpp4
-rw-r--r--src/courtroom.cpp28
4 files changed, 20 insertions, 18 deletions
diff --git a/include/aoblipplayer.h b/include/aoblipplayer.h
index 44ca48bb..9a428371 100644
--- a/include/aoblipplayer.h
+++ b/include/aoblipplayer.h
@@ -11,6 +11,7 @@
#include <QWidget>
#include <string.h>
+#include <QElapsedTimer>
#include <QDebug>
@@ -26,9 +27,12 @@ public:
int m_cycle = 0;
private:
+ const int max_blip_ms = 60;
+
QWidget *m_parent;
AOApplication *ao_app;
qreal m_volume;
+ QElapsedTimer delay;
void set_volume_internal(qreal p_volume);
diff --git a/include/courtroom.h b/include/courtroom.h
index 682e12a1..9c79a3e3 100644
--- a/include/courtroom.h
+++ b/include/courtroom.h
@@ -259,7 +259,7 @@ private:
bool message_is_centered = false;
int current_display_speed = 3;
- int message_display_speed[7] = {10, 20, 30, 40, 50, 60, 75};
+ int message_display_speed[7] = {0, 10, 25, 40, 50, 70, 90};
// This is for checking if the character should start talking again
// when an inline blue text ends.
diff --git a/src/aoblipplayer.cpp b/src/aoblipplayer.cpp
index 1c668ab4..5f4dc6cc 100644
--- a/src/aoblipplayer.cpp
+++ b/src/aoblipplayer.cpp
@@ -23,6 +23,10 @@ void AOBlipPlayer::set_blips(QString p_sfx)
void AOBlipPlayer::blip_tick()
{
+ if (delay.isValid() && delay.elapsed() < max_blip_ms)
+ return;
+
+ delay.start();
int f_cycle = m_cycle++;
if (m_cycle == 5)
diff --git a/src/courtroom.cpp b/src/courtroom.cpp
index 06f5aa06..1435b0d4 100644
--- a/src/courtroom.cpp
+++ b/src/courtroom.cpp
@@ -2386,23 +2386,6 @@ void Courtroom::chat_tick()
QScrollBar *scroll = ui_vp_message->verticalScrollBar();
scroll->setValue(scroll->maximum());
- if(blank_blip)
- qDebug() << "blank_blip found true";
-
- if (f_character != ' ' || blank_blip)
- {
-
- if (blip_pos % blip_rate == 0 && !formatting_char)
- {
- blip_pos = 0;
- blip_player->blip_tick();
- }
-
- ++blip_pos;
- }
-
- tick_pos += f_char_length;
-
// Restart the timer, but according to the newly set speeds, if there were any.
// Keep the speed at bay.
if (current_display_speed < 0)
@@ -2415,6 +2398,17 @@ void Courtroom::chat_tick()
current_display_speed = 6;
}
+ if (!formatting_char && (f_character != ' ' || blank_blip))
+ {
+ if (blip_pos % blip_rate == 0)
+ {
+ blip_player->blip_tick();
+ }
+ ++blip_pos;
+ }
+
+ tick_pos += f_char_length;
+
// If we had a formatting char, we shouldn't wait so long again, as it won't appear!
if (formatting_char)
{