Text speed modifier.
- 7 different speeds. - `{` turns the speed down. - `}` turns the speed up!
This commit is contained in:
parent
a8205986a4
commit
3295e5a78e
@ -1214,6 +1214,16 @@ void Courtroom::append_ic_text(QString p_text, QString p_name)
|
||||
p_text.remove(trick_check_pos,1);
|
||||
}
|
||||
|
||||
// Text speed modifier.
|
||||
else if (f_character == "{" and !ic_next_is_not_special)
|
||||
{
|
||||
p_text.remove(trick_check_pos,1);
|
||||
}
|
||||
else if (f_character == "}" and !ic_next_is_not_special)
|
||||
{
|
||||
p_text.remove(trick_check_pos,1);
|
||||
}
|
||||
|
||||
// Orange inline colourisation.
|
||||
else if (f_character == "|" and !ic_next_is_not_special)
|
||||
{
|
||||
@ -1398,7 +1408,10 @@ void Courtroom::start_chat_ticking()
|
||||
|
||||
tick_pos = 0;
|
||||
blip_pos = 0;
|
||||
chat_tick_timer->start(chat_tick_interval);
|
||||
|
||||
// At the start of every new message, we set the text speed to the default.
|
||||
current_display_speed = 3;
|
||||
chat_tick_timer->start(message_display_speed[current_display_speed]);
|
||||
|
||||
QString f_gender = ao_app->get_gender(m_chatmessage[CHAR_NAME]);
|
||||
|
||||
@ -1415,10 +1428,12 @@ void Courtroom::chat_tick()
|
||||
|
||||
QString f_message = m_chatmessage[MESSAGE];
|
||||
|
||||
// Due to our new text speed system, we always need to stop the timer now.
|
||||
chat_tick_timer->stop();
|
||||
|
||||
if (tick_pos >= f_message.size())
|
||||
{
|
||||
text_state = 2;
|
||||
chat_tick_timer->stop();
|
||||
anim_state = 3;
|
||||
ui_vp_player_char->play_idle(m_chatmessage[CHAR_NAME], m_chatmessage[EMOTE]);
|
||||
}
|
||||
@ -1464,6 +1479,17 @@ void Courtroom::chat_tick()
|
||||
next_character_is_not_special = true;
|
||||
}
|
||||
|
||||
// Text speed modifier.
|
||||
else if (f_character == "{" and !next_character_is_not_special)
|
||||
{
|
||||
// ++, because it INCREASES delay!
|
||||
current_display_speed++;
|
||||
}
|
||||
else if (f_character == "}" and !next_character_is_not_special)
|
||||
{
|
||||
current_display_speed--;
|
||||
}
|
||||
|
||||
// Orange inline colourisation.
|
||||
else if (f_character == "|" and !next_character_is_not_special)
|
||||
{
|
||||
@ -1594,6 +1620,20 @@ void Courtroom::chat_tick()
|
||||
}
|
||||
|
||||
++tick_pos;
|
||||
|
||||
// Restart the timer, but according to the newly set speeds, if there were any.
|
||||
// Keep the speed at bay.
|
||||
if (current_display_speed < 0)
|
||||
{
|
||||
current_display_speed = 0;
|
||||
}
|
||||
|
||||
if (current_display_speed > 6)
|
||||
{
|
||||
current_display_speed = 6;
|
||||
}
|
||||
|
||||
chat_tick_timer->start(message_display_speed[current_display_speed]);
|
||||
}
|
||||
}
|
||||
|
||||
|
@ -170,6 +170,9 @@ private:
|
||||
|
||||
bool message_is_centered = false;
|
||||
|
||||
int current_display_speed = 3;
|
||||
int message_display_speed[7] = {30, 40, 50, 60, 75, 100, 120};
|
||||
|
||||
QVector<char_type> char_list;
|
||||
QVector<evi_type> evidence_list;
|
||||
QVector<QString> music_list;
|
||||
@ -181,7 +184,7 @@ private:
|
||||
|
||||
//determines how fast messages tick onto screen
|
||||
QTimer *chat_tick_timer;
|
||||
int chat_tick_interval = 60;
|
||||
//int chat_tick_interval = 60;
|
||||
//which tick position(character in chat message) we are at
|
||||
int tick_pos = 0;
|
||||
//used to determine how often blips sound
|
||||
|
Loading…
Reference in New Issue
Block a user