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
This commit is contained in:
parent
1139bf5cd0
commit
4645d9dd08
@ -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);
|
||||
|
||||
|
@ -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.
|
||||
|
@ -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)
|
||||
|
@ -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)
|
||||
{
|
||||
|
Loading…
Reference in New Issue
Block a user