Skip to content
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
56 changes: 23 additions & 33 deletions src/courtroom.cpp
Original file line number Diff line number Diff line change
Expand Up @@ -1915,21 +1915,6 @@ void Courtroom::on_chat_return_pressed()
}
}

// TODO: deprecate this garbage. See https://github.com/AttorneyOnline/AO2-Client/issues/692
// If our objection is enabled
if (objection_state > 0) {
// Turn preanim zoom emote mod into non-pre
if (f_emote_mod == ZOOM) {
f_emote_mod = PREANIM_ZOOM;
}
// Turn it into preanim objection emote mod
else {
f_emote_mod = 2;
}
// Play the sfx
f_sfx = get_char_sfx();
}

// Custom sfx override via sound list dropdown.
if (!custom_sfx.isEmpty() || ui_sfx_dropdown->currentIndex() != 0) {
f_sfx = get_char_sfx();
Expand Down Expand Up @@ -2399,7 +2384,7 @@ bool Courtroom::handle_objection()
ao_app->get_chat(m_chatmessage[CHAR_NAME]));
}
break;
m_chatmessage[EMOTE_MOD] = 1;
m_chatmessage[EMOTE_MOD] = PREANIM;
}
ui_vp_objection->load_image(
filename, m_chatmessage[CHAR_NAME],
Expand Down Expand Up @@ -2523,36 +2508,42 @@ void Courtroom::display_pair_character(QString other_charid, QString other_offse
void Courtroom::handle_emote_mod(int emote_mod, bool p_immediate)
{
// Deal with invalid emote modifiers
if (emote_mod != 0 && emote_mod != 1 && emote_mod != 2 && emote_mod != 5 &&
emote_mod != 6) {
if (emote_mod != IDLE && emote_mod != PREANIM && emote_mod != ZOOM && emote_mod != PREANIM_ZOOM) {
// If emote mod is 4...
if (emote_mod == 4)
emote_mod = 6; // Addresses issue with an old bug that sent the wrong
if (emote_mod == 4) {
emote_mod = PREANIM_ZOOM; // Addresses issue with an old bug that sent the wrong
// emote modifier for zoompre
else
emote_mod = 0; // Reset emote mod to 0
}
else if (emote_mod == 2) {
// Addresses the deprecated "objection preanim"
emote_mod = PREANIM;
}
else {
emote_mod = IDLE; // Reset emote mod to 0
}
}

// Handle the emote mod
switch (emote_mod) {
case 1:
case 2:
case 6:
case PREANIM:
case PREANIM_ZOOM:
// Emotes 1, 2 and 6 all play preanim that makes the chatbox wait for it to finish.
play_preanim(false);
break;
case 0:
case 5:
case IDLE:
case ZOOM:
// If immediate is not ticked on...
if (!p_immediate)
{
// Play the sound effect if one was sent to us
play_sfx();
// Skip preanim.
handle_ic_speaking();
}
else
{
// Emotes 0, 5 all play preanim alongside the chatbox, not waiting for the animation to finish.
// IDLE, ZOOM both play preanim alongside the chatbox, not waiting for the animation to finish.
// This behavior is a bit jank (why is emote mod affected by immediate?) but eh it functions
play_preanim(true);
}
break;
Expand Down Expand Up @@ -2580,7 +2571,7 @@ void Courtroom::handle_ic_message()
ui_vp_sideplayer_char->move(0, 0);

// If the emote_mod is not zooming
if (emote_mod != 5 && emote_mod != 6) {
if (emote_mod != ZOOM && emote_mod != PREANIM_ZOOM) {
// Display the pair character
display_pair_character(m_chatmessage[OTHER_CHARID], m_chatmessage[OTHER_OFFSET]);
}
Expand All @@ -2590,9 +2581,8 @@ void Courtroom::handle_ic_message()
}
else
{
play_sfx();
start_chat_ticking();
if (emote_mod == 1 || emote_mod == 2 || emote_mod == 6 || immediate)
play_sfx();
}

// if we have instant objections disabled, and queue is not empty, check if next message after this is an objection.
Expand Down Expand Up @@ -2860,7 +2850,7 @@ void Courtroom::handle_ic_speaking()
QString side = m_chatmessage[SIDE];
int emote_mod = m_chatmessage[EMOTE_MOD].toInt();
// emote_mod 5 is zoom and emote_mod 6 is zoom w/ preanim.
if (emote_mod == 5 || emote_mod == 6) {
if (emote_mod == ZOOM || emote_mod == PREANIM_ZOOM) {
// Hide the desks
ui_vp_desk->hide();

Expand Down Expand Up @@ -3415,7 +3405,7 @@ void Courtroom::start_chat_ticking()
sfx_player->play(ao_app->get_custom_realization(m_chatmessage[CHAR_NAME]));
}
int emote_mod = m_chatmessage[EMOTE_MOD].toInt(); // text meme bonanza
if ((emote_mod == 0 || emote_mod == 5) && m_chatmessage[SCREENSHAKE] == "1") {
if ((emote_mod == IDLE || emote_mod == ZOOM) && m_chatmessage[SCREENSHAKE] == "1") {
this->do_screenshake();
}
if (m_chatmessage[MESSAGE].isEmpty()) {
Expand Down
6 changes: 4 additions & 2 deletions src/emotes.cpp
Original file line number Diff line number Diff line change
Expand Up @@ -174,10 +174,12 @@ void Courtroom::select_emote(int p_id)
ui_pre->setChecked(!ui_pre->isChecked());
}
else if (!ao_app->is_stickypres_enabled()) {
if (emote_mod == 1 || emote_mod == 4)
if (emote_mod == PREANIM || emote_mod == PREANIM_ZOOM) {
ui_pre->setChecked(true);
else
}
else {
ui_pre->setChecked(false);
}
}

ui_emote_dropdown->setCurrentIndex(current_emote);
Expand Down