diff --git a/gameview.py b/gameview.py index 2326181..77e00ee 100644 --- a/gameview.py +++ b/gameview.py @@ -1043,6 +1043,7 @@ class GUI(QtGui.QWidget): m_chatmessage = [] blank_blip = False chatmessage_is_empty = False + anim_is_empty = False is_additive = False additive_char = -1 anim_state = 3 @@ -3019,11 +3020,14 @@ class GUI(QtGui.QWidget): self.text_state = 0 self.anim_state = 0 self.objectionview.stop() - self.char.stop() self.chat_tick_timer.stop() self.presentedevi.hide() - self.chatmessage_is_empty = self.m_chatmessage[CHATMSG] == " " or self.m_chatmessage[CHATMSG] == "" + self.chatmessage_is_empty = self.m_chatmessage[CHATMSG].strip() == "" + self.anim_is_empty = self.m_chatmessage[ANIM].strip() == "" + + if not self.anim_is_empty: + self.char.stop() if not self.m_chatmessage[SHOWNAME]: self.name.setText(self.m_chatmessage[CHARNAME]) @@ -3069,10 +3073,11 @@ class GUI(QtGui.QWidget): if hor_offset < 0 and vert_offset == 0: vert_offset = -1 * hor_offset / 10 - self.char.move(self.viewport_w * hor_offset / 100, self.viewport_h * vert_offset / 100) + if not self.anim_is_empty: + self.char.move(self.viewport_w * hor_offset / 100, self.viewport_h * vert_offset / 100) # check if paired - if not self.m_chatmessage[OTHER_CHARID]: + if not self.m_chatmessage[OTHER_CHARID] and not self.anim_is_empty: self.sidechar.hide() self.sidechar.move(0,0) else: @@ -3131,9 +3136,10 @@ class GUI(QtGui.QWidget): self.scaling[1] = get_scaling(ini.read_ini(AOpath + 'characters/' + self.m_chatmessage[OTHER_NAME] + '/char.ini', "options", "scaling").lower()) self.sidechar.set_flipped(self.m_chatmessage[OTHER_FLIP] == "1") - self.sidechar.play_idle(self.m_chatmessage[OTHER_NAME], self.m_chatmessage[OTHER_EMOTE], self.scaling[1]) + if not self.anim_is_empty: + self.sidechar.play_idle(self.m_chatmessage[OTHER_NAME], self.m_chatmessage[OTHER_EMOTE], self.scaling[1]) - else: + elif not self.anim_is_empty: self.sidechar.hide() self.sidechar.move(0, 0) @@ -3257,17 +3263,19 @@ class GUI(QtGui.QWidget): if f_anim_state <= self.anim_state: return - - self.char.stop() + f_char = self.m_chatmessage[CHARNAME] f_emote = self.m_chatmessage[ANIM] - if f_anim_state == 2: - self.char.play_talking(f_char, f_emote, self.scaling[0]) - self.anim_state = 2 - else: - self.char.play_idle(f_char, f_emote, self.scaling[0]) - self.anim_state = 3 + if not self.anim_is_empty: + self.char.stop() + + if f_anim_state == 2: + self.char.play_talking(f_char, f_emote, self.scaling[0]) + self.anim_state = 2 + else: + self.char.play_idle(f_char, f_emote, self.scaling[0]) + self.anim_state = 3 if exists(AO2XPpath+"callwords.ini"): with open(AO2XPpath+"callwords.ini") as f: @@ -3376,7 +3384,8 @@ class GUI(QtGui.QWidget): self.text_state = 2 if self.anim_state != 4: self.anim_state = 3 - self.char.play_idle(self.m_chatmessage[CHARNAME], self.m_chatmessage[ANIM], self.scaling[0]) + if not self.anim_is_empty: + self.char.play_idle(self.m_chatmessage[CHARNAME], self.m_chatmessage[ANIM], self.scaling[0]) self.inbox_timer.start(self.text_wait_time) else: @@ -3423,7 +3432,8 @@ class GUI(QtGui.QWidget): if not self.entire_message_is_blue and self.anim_state != 4: f_char = self.m_chatmessage[CHARNAME] f_emote = self.m_chatmessage[ANIM] - self.char.play_idle(f_char, f_emote, self.scaling[0]) + if not self.anim_is_empty: + self.char.play_idle(f_char, f_emote, self.scaling[0]) elif f_character == ")" and not self.next_character_is_not_special and self.inline_color_stack: if self.inline_color_stack[-1] == INLINE_BLUE: