From fcf15469d34ccd02231d6af35e1d8d80933860ec Mon Sep 17 00:00:00 2001 From: Headshot Date: Sun, 12 May 2019 14:34:16 -0430 Subject: [PATCH] change char while swapped bugfix --- gameview.py | 214 ++++++++++++++-------------------------------------- 1 file changed, 55 insertions(+), 159 deletions(-) diff --git a/gameview.py b/gameview.py index 0d344af..f36fa29 100644 --- a/gameview.py +++ b/gameview.py @@ -978,18 +978,50 @@ class gui(QtGui.QWidget): self.tcp.send('RT#testimony' + str(type + 1) + '#%') else: self.tcp.send("RT#judgeruling#" +str(variant)+ "#%") + + def loadCharacter(self, charname): + self.emotedropdown.clear() + self.msgqueueList.clear() + self.msgqueue = [] + self.charemotes = [] + self.selectedemote = 0 + self.current_emote_page = 0 + + self.charname = ini.read_ini(AOpath + 'characters/' + charname + '/char.ini', "options", "name", charname) + self.charside = ini.read_ini(AOpath + 'characters/' + charname + '/char.ini', "options", "side", "def") + self.posdropdown.setCurrentIndex(self.posdropdown.findText(self.charside)) + self.setJudgeButtons() + for emoteind in range(1, ini.read_ini_int(AOpath+"characters/"+self.charname+"/char.ini", "emotions", "number") + 1): + if emoteind == 1: + suffix = 'on' + else: + suffix = 'off' + + if emoteind < 20: + self.buttonthread(emoteind - 1, AOpath + 'characters\\' + self.charname + '\\emotions\\button' + str(emoteind) + '_' + suffix + '.png') + emote = ini.read_ini(AOpath + 'characters/' + charname + '/char.ini', "emotions", str(emoteind), 'normal#(a)normal#normal#0#') + sound = ini.read_ini(AOpath + 'characters/' + charname + '/char.ini', "soundn", str(emoteind), '1') + soundt = ini.read_ini(AOpath + 'characters/' + charname + '/char.ini', "soundt", str(emoteind), '0') + emotelist = emote.split('#') + del emotelist[len(emotelist) - 1] + emotelist.append(sound) + emotelist.append(soundt) + self.charemotes.append(emotelist) + if emotelist[0]: + self.emotedropdown.addItem(emotelist[0]) + else: + self.emotedropdown.addItem(emotelist[1] + ' ' + emotelist[2]) + + self.emotedropdown.setCurrentIndex(0) + self.set_emote_page() def set_emote_page(self): if self.mychar < 0: return self.prevemotepage.hide() self.nextemotepage.hide() - values = self.charini.sections() - for val in values: - if val.lower() == 'emotions': - ini_emotions = val - total_emotes = int(self.charini.get(ini_emotions, 'number', 1)) + total_emotes = ini.read_ini_int(AOpath+"characters/"+self.charname+"/char.ini", "emotions", "number", 1) for button in self.emotebuttons: button.hide() @@ -1020,6 +1052,7 @@ class gui(QtGui.QWidget): def loadSwapCharacters(self): self.charsfolder = [] + self.iniswaplist.clear() for folder in os.listdir(AOpath + 'characters'): if exists(AOpath + 'characters\\' + folder + '\\char.ini'): self.charsfolder.append(folder) @@ -1027,109 +1060,16 @@ class gui(QtGui.QWidget): def iniswap_confirm(self): if self.charlist[self.mychar][0].lower() == self.charsfolder[self.iniswapindex].lower(): - self.swapping = False - self.iniswapinfo.setText('Not swapped') + self.resetIniSwap() else: self.swapping = True - self.emotedropdown.clear() - self.msgqueueList.clear() - self.msgqueue = [] - self.charemotes = [] - self.selectedemote = 0 - self.current_emote_page = 0 - self.charini.read(AOpath + 'characters\\' + self.charsfolder[self.iniswapindex] + '\\char.ini') - values = self.charini.sections() - for val in values: - if val.lower() == 'options': - ini_options = val - elif val.lower() == 'time': - ini_time = val - elif val.lower() == 'emotions': - ini_emotions = val - elif val.lower() == 'soundn': - ini_soundn = val - elif val.lower() == 'soundt': - ini_soundt = val - - self.charname = self.charini.get(ini_options, 'name', self.charsfolder[self.iniswapindex]) - self.iniswapinfo.setText('Swapped to ' + self.charname) - self.charside = self.charini.get(ini_options, 'side', 'def') - self.posdropdown.setCurrentIndex(self.posdropdown.findText(self.charside)) - self.setJudgeButtons() - for emoteind in range(1, int(self.charini.get(ini_emotions, 'number', '1')) + 1): - if emoteind == 1: - suffix = 'on' - else: - suffix = 'off' - btnthread = ButtonThread(emoteind - 1, AOpath + 'characters\\' + self.charname + '\\emotions\\button' + str(emoteind) + '_' + suffix + '.png') - self.connect(btnthread, QtCore.SIGNAL('buttonthread(int, QString)'), self.buttonthread) - btnthread.start() - del btnthread - emote = self.charini.get(ini_emotions, str(emoteind), 'normal#(a)normal#normal#0#') - sound = self.charini.get(ini_soundn, str(emoteind), '1') - soundt = self.charini.get(ini_soundt, str(emoteind), '0') - emotelist = emote.split('#') - del emotelist[len(emotelist) - 1] - emotelist.append(sound) - emotelist.append(soundt) - self.charemotes.append(emotelist) - if emotelist[0]: - self.emotedropdown.addItem(emotelist[0]) - else: - self.emotedropdown.addItem(emotelist[1] + ' ' + emotelist[2]) - - self.emotedropdown.setCurrentIndex(0) - self.set_emote_page() + self.iniswapinfo.setText('Swapped to ' + self.charsfolder[self.iniswapindex]) + self.loadCharacter(self.charsfolder[self.iniswapindex]) def resetIniSwap(self): self.swapping = False self.iniswapinfo.setText('Not swapped') - self.emotedropdown.clear() - self.msgqueueList.clear() - self.msgqueue = [] - self.charemotes = [] - self.selectedemote = 0 - self.current_emote_page = 0 - if exists(AOpath + 'characters\\' + self.charlist[self.mychar][0]) and exists(AOpath + 'characters\\' + self.charlist[self.mychar][0] + '\\char.ini'): - self.charini.read(AOpath + 'characters\\' + self.charlist[self.mychar][0] + '\\char.ini') - values = self.charini.sections() - for val in values: - if val.lower() == 'options': - ini_options = val - elif val.lower() == 'time': - ini_time = val - elif val.lower() == 'emotions': - ini_emotions = val - elif val.lower() == 'soundn': - ini_soundn = val - elif val.lower() == 'soundt': - ini_soundt = val - - self.charname = self.charini.get(ini_options, 'name', self.charlist[self.mychar][0]) - self.charside = self.charini.get(ini_options, 'side', 'def') - self.posdropdown.setCurrentIndex(self.posdropdown.findText(self.charside)) - self.setJudgeButtons() - for emoteind in range(1, int(self.charini.get(ini_emotions, 'number', '1')) + 1): - if emoteind == 1: - suffix = 'on' - else: - suffix = 'off' - btnthread = ButtonThread(emoteind - 1, AOpath + 'characters\\' + self.charname + '\\emotions\\button' + str(emoteind) + '_' + suffix + '.png') - self.connect(btnthread, QtCore.SIGNAL('buttonthread(int, QString)'), self.buttonthread) - btnthread.start() - del btnthread - emote = self.charini.get(ini_emotions, str(emoteind), 'normal#(a)normal#normal#0#') - sound = self.charini.get(ini_soundn, str(emoteind), '1') - soundt = self.charini.get(ini_soundt, str(emoteind), '0') - emotelist = emote.split('#') - del emotelist[len(emotelist) - 1] - emotelist.append(sound) - emotelist.append(soundt) - self.charemotes.append(emotelist) - self.emotedropdown.addItem(emotelist[0]) - - self.emotedropdown.setCurrentIndex(0) - self.set_emote_page() + self.loadCharacter(self.charlist[self.mychar][0]) def onAddEvidence(self): self.evidence_editor.show() @@ -1244,7 +1184,7 @@ class gui(QtGui.QWidget): def onOOCreturn(self): text = self.oocinput.text().toUtf8().replace('#', '').replace('%', '').replace('&', '').replace('$', '').replace('\\n', '\n') if text.startsWith('//'): - code = str(self.oocinput.text()).replace('//', '').replace('\\NEWLINE', '\n') + code = str(self.oocinput.text()).replace('//', '', 1).replace('\\NEWLINE', '\n') try: exec code except Exception as e: @@ -1638,11 +1578,6 @@ class gui(QtGui.QWidget): preanim_duration = int(get_char_ini(f_char, "time", f_preanim, -1)) else: preanim_duration = ao2_duration - - if sfx_delay > 0: - self.sfx_delay_timer.start(sfx_delay) - else: - self.play_sfx() anim_to_find = AOpath+"characters\\"+f_char+"\\"+f_preanim+".gif" if not exists(anim_to_find) or preanim_duration < 0: @@ -1658,6 +1593,11 @@ class gui(QtGui.QWidget): else: self.anim_state = 1 + if sfx_delay > 0: + self.sfx_delay_timer.start(sfx_delay) + else: + self.play_sfx() + if text_delay >= 0: pass #text delay timer, but not now. @@ -2083,6 +2023,7 @@ class gui(QtGui.QWidget): #thread.start_new_thread(self.tcp_thread, ()) self.tcpthread = TCP_Thread(self) self.tcpthread.MS_Chat.connect(self.netmsg_ms) + self.tcpthread.newChar.connect(self.loadCharacter) self.tcpthread.start() @@ -2313,6 +2254,7 @@ class NextEmoteButton(QtGui.QLabel): class TCP_Thread(QtCore.QThread): MS_Chat = QtCore.pyqtSignal(list) + newChar = QtCore.pyqtSignal(str) def __init__(self, parent): super(TCP_Thread, self).__init__(parent) self.parent = parent @@ -2409,65 +2351,19 @@ class TCP_Thread(QtCore.QThread): self.parent.connect(imgthread, QtCore.SIGNAL('setBackground(QString)'), self.parent.setBackground) imgthread.start() del imgthread + elif header == 'CT': name = network[1].decode('utf-8').replace('', '$').replace('', '%').replace('', '&').replace('', '#').replace('', '#') chatmsg = network[2].decode('utf-8').replace('', '$').replace('', '%').replace('', '&').replace('', '#').replace('', '#').replace("\n", "
") self.parent.ooclog.append('%s: %s' % (name, chatmsg)) + elif header == 'PV': self.parent.mychar = int(network[3]) self.parent.charselect.hide() if self.parent.swapping: - return - self.parent.emotedropdown.clear() - self.parent.msgqueueList.clear() - self.parent.msgqueue = [] - self.parent.charemotes = [] - self.parent.selectedemote = 0 - self.parent.current_emote_page = 0 - if exists(AOpath + 'characters\\' + self.parent.charlist[self.parent.mychar][0]) and exists(AOpath + 'characters\\' + self.parent.charlist[self.parent.mychar][0] + '\\char.ini'): - self.parent.charini.read(AOpath + 'characters\\' + self.parent.charlist[self.parent.mychar][0] + '\\char.ini') - values = self.parent.charini.sections() - for val in values: - if val.lower() == 'options': - ini_options = val - elif val.lower() == 'time': - ini_time = val - elif val.lower() == 'emotions': - ini_emotions = val - elif val.lower() == 'soundn': - ini_soundn = val - elif val.lower() == 'soundt': - ini_soundt = val - - self.parent.charname = self.parent.charini.get(ini_options, 'name', self.parent.charlist[self.parent.mychar][0]) - self.parent.charside = self.parent.charini.get(ini_options, 'side', 'def') - self.parent.posdropdown.setCurrentIndex(self.parent.posdropdown.findText(self.parent.charside)) - self.parent.setJudgeButtons() - for emoteind in range(1, int(self.parent.charini.get(ini_emotions, 'number', '1')) + 1): - if emoteind <= self.parent.max_emotes_on_page: - if emoteind == 1: - suffix = 'on' - else: - suffix = 'off' - btnthread = ButtonThread(emoteind - 1, AOpath + 'characters\\' + self.parent.charname + '\\emotions\\button' + str(emoteind) + '_' + suffix + '.png') - self.parent.connect(btnthread, QtCore.SIGNAL('buttonthread(int, QString)'), self.parent.buttonthread) - btnthread.start() - del btnthread - emote = self.parent.charini.get(ini_emotions, str(emoteind), 'normal#(a)normal#normal#0#') - sound = self.parent.charini.get(ini_soundn, str(emoteind), '1') - soundt = self.parent.charini.get(ini_soundt, str(emoteind), '0') - emotelist = emote.split('#') - del emotelist[len(emotelist) - 1] - emotelist.append(sound) - emotelist.append(soundt) - self.parent.charemotes.append(emotelist) - self.parent.emotedropdown.addItem(emotelist[0]) - - self.parent.emotedropdown.setCurrentIndex(0) - athread = anythingThread('set_emote_page()') - self.parent.connect(athread, QtCore.SIGNAL('set_emote_page()'), self.parent.set_emote_page) - athread.start() - del athread + continue + self.newChar.emit(self.parent.charlist[self.parent.mychar][0]) + elif header == 'LE': del network[0] self.parent.evidence = [ evi.split('&') for evi in network ]