From c61733de05a6d34cd8c5da3efe24e0f4baf225ba Mon Sep 17 00:00:00 2001 From: cidoku Date: Wed, 19 Feb 2025 12:46:05 -0300 Subject: [PATCH] separate area list from music list and show online users, area status, etc. --- AO2XPbase/ao2xp_themes/default/theme.py | 2 +- gameview.py | 72 ++++++++++++++++++------- mainmenu.py | 7 ++- 3 files changed, 60 insertions(+), 21 deletions(-) diff --git a/AO2XPbase/ao2xp_themes/default/theme.py b/AO2XPbase/ao2xp_themes/default/theme.py index 7e260be..477d5dc 100644 --- a/AO2XPbase/ao2xp_themes/default/theme.py +++ b/AO2XPbase/ao2xp_themes/default/theme.py @@ -36,7 +36,7 @@ self.oocinput.move(814 - 288 + self.oocnameinput.size().width(), 248) self.ooclogin.resize(48, 20) self.ooclogin.move(814 - (self.ooclogin.size().width()), self.oocinput.y() + self.ooclogin.size().height()) -self.musicitems.setGeometry(814 - 288, 468, 288, 256) +self.musicareatabs.setGeometry(814 - 288, 468, 288, 256) self.icLog.setGeometry(8, 8, 714 - 304 - 22, 212) diff --git a/gameview.py b/gameview.py index 2c83d66..a4105fe 100644 --- a/gameview.py +++ b/gameview.py @@ -813,8 +813,14 @@ class gui(QtGui.QWidget): self.ooclogin = QtGui.QPushButton("Login", self) self.ooclogin.clicked.connect(self.onOOCLoginBtn) - self.musicitems = QtGui.QListWidget(self) + self.musicareatabs = QtGui.QTabWidget(self) + self.musicitems = QtGui.QListWidget() self.musicitems.itemDoubleClicked.connect(self.onMusicClick) + self.areaitems = QtGui.QListWidget() + self.areaitems.itemDoubleClicked.connect(self.onAreaClick) + + self.musicareatabs.addTab(self.musicitems, "Music") + self.musicareatabs.addTab(self.areaitems, "Areas") self.gametabs = QtGui.QTabWidget(self) self.gametab_log = QtGui.QWidget() # the IC chat log @@ -1115,6 +1121,7 @@ class gui(QtGui.QWidget): self.chatbox.show() self.areas = [] + self.areas_len = 0 self.muteselected = -1 self.unmuteselected = -1 self.muted = [] @@ -1293,9 +1300,9 @@ class gui(QtGui.QWidget): def onMuteClick(self): if self.unmutedlist.count() == 0: - return QtGui.QMessageBox.warning(self, 'smh', 'you muted everyone\nhow does it feel?') + return QtGui.QMessageBox.information(self, 'No character selected', 'There are no characters to mute.') if self.muteselected == -1: - return QtGui.QMessageBox.warning(self, 'hey genius', 'who exactly are you muting?\nclick on their name then on the >> button') + return QtGui.QMessageBox.information(self, 'No character selected', 'To mute a character, select their name from the list to the left, then click the >> button.') for i in range(len(self.charlist)): if self.charlist[i][0] == self.unmutedlist.item(self.muteselected).text(): self.muted.append(i) @@ -1313,9 +1320,9 @@ class gui(QtGui.QWidget): def onUnmuteClick(self): if self.mutedlist.count() == 0: - return QtGui.QMessageBox.warning(self, 'smh', "you haven't muted anyone yet\nbet 5$ everyone there is talking endlessly like those kids at the classroom when the teacher hasn't arrived yet") + return QtGui.QMessageBox.information(self, 'No character selected', "There are no characters to unmute.") if self.unmuteselected == -1: - return QtGui.QMessageBox.warning(self, 'hey genius', 'who exactly are you unmuting?\nclick on their name then on the >> button') + return QtGui.QMessageBox.information(self, 'No character selected', 'To unmute a character, select their name from the list to the right, then click the << button.') for char in self.charlist: if char[0] == self.mutedlist.item(self.unmuteselected).text(): del self.muted[self.unmuteselected] @@ -1590,7 +1597,7 @@ class gui(QtGui.QWidget): target_str = "private" if evi in target: - return QtGui.QMessageBox.warning(self, "Can't transfer evidence", 'The evidence "%s" already exists in the %s inventory.' % (evi[0], target_str)) + return QtGui.QMessageBox.information(self, "Can't transfer evidence", 'The evidence "%s" already exists in the %s inventory.' % (evi[0], target_str)) else: if self.privateinv: self.tcp.send('PE#' + evi[0] + '#' + evi[1] + '#' + evi[2] + '#%') @@ -1623,7 +1630,7 @@ class gui(QtGui.QWidget): self.privatedropdown.addItem(evi[0]) if fail: - return QtGui.QMessageBox.warning(self, "Some evidence wasn't transferred", "The following evidence already exists in the %s inventory:\n\n%s." % (target_str, ", ".join(fail))) + return QtGui.QMessageBox.information(self, "Some evidence wasn't transferred", "The following evidence already exists in the %s inventory:\n\n%s." % (target_str, ", ".join(fail))) def onSwitchInventory(self, reset=False): self.privateinv = not self.privateinv @@ -1692,15 +1699,15 @@ class gui(QtGui.QWidget): self.selectedplayer = s[1:s.indexOf("]")] def onClicked_removeQueue(self): - if self.selectedmsg == -1: - return QtGui.QMessageBox.warning(self, 'Nothing selected', 'Select a message from the list to remove it.') if len(self.msgqueueList) == 0: - return QtGui.QMessageBox.warning(self, "Can't remove", 'There are no messages in the message queue.\nEnter a message on the Game chat to add one.') + return QtGui.QMessageBox.information(self, "No messages in queue", 'Enter a message on the game chat to add one.') + if self.selectedmsg == -1: + return QtGui.QMessageBox.information(self, 'No message selected', 'Select a message from the list to remove it.') self.msgqueueList.takeItem(self.selectedmsg) del self.msgqueue[self.selectedmsg] def onClicked_clearQueue(self): - print "Not implemented" + return QtGui.QMessageBox.information(self, "Clear queue", 'Not implemented.') def onClicked_playerPair(self): if not self.selectedplayer == -1: @@ -1708,11 +1715,11 @@ class gui(QtGui.QWidget): self.paircheckbox.setChecked(True) char = self.playerlist[str(self.selectedplayer)][1] if char == '': - return QtGui.QMessageBox.warning(self, "Unable to pair", 'That player has no character selected.') + return QtGui.QMessageBox.information(self, "Unable to pair", 'That player has no character selected.') else: self.pairdropdown.setCurrentIndex([c[0] for c in self.charlist].index(char)) else: - return QtGui.QMessageBox.warning(self, 'No player selected', 'Select a player from the list to attempt pairing.') + return QtGui.QMessageBox.information(self, 'No player selected', 'Select a player from the list to attempt pairing.') def onClicked_playerKick(self): if not self.selectedplayer == -1: @@ -1720,7 +1727,7 @@ class gui(QtGui.QWidget): if reason and ok: self.tcp.send("MA#%s#0#%s#%%" % (self.selectedplayer, reason)) else: - return QtGui.QMessageBox.warning(self, 'No player selected', 'Select a player from the list to kick.') + return QtGui.QMessageBox.information(self, 'No player selected', 'Select a player from the list to kick.') def onClicked_playerBan(self): if not self.selectedplayer == -1: @@ -1730,7 +1737,7 @@ class gui(QtGui.QWidget): if duration and ok: self.tcp.send("MA#%s#%s#%s#%%" % (self.selectedplayer, duration, reason)) else: - return QtGui.QMessageBox.warning(self, 'No player selected', 'Select a player from the list to ban.') + return QtGui.QMessageBox.information(self, 'No player selected', 'Select a player from the list to ban.') def changeEvidence(self, ind, kind): if ind < 0: @@ -1807,6 +1814,13 @@ class gui(QtGui.QWidget): self.tcp.send('MC#' + item.text() + '#' + str(self.mychar) + '#' + self.showname + '#%') else: self.tcp.send('MC#' + item.text() + '#' + str(self.mychar) + '#%') + + def onAreaClick(self, item): + area = item.text().split('\n')[0] + if "cccc_ic_support" in self.features and self.showname: + self.tcp.send('MC#' + area + '#' + str(self.mychar) + '#' + self.showname + '#%') + else: + self.tcp.send('MC#' + area + '#' + str(self.mychar) + '#%') def icLogChanged(self): if self.icLog.verticalScrollBar().value() == self.icLog.verticalScrollBar().maximum(): self.icLog.verticalScrollBar().setValue(self.icLog.verticalScrollBar().maximum()) @@ -2847,6 +2861,7 @@ class gui(QtGui.QWidget): self.musiclist = musiclist self.evidence = evidence self.areas = areas + self.areas_len = len(areas[0]) self.features = features if "base/" in webAO_bucket: @@ -2904,6 +2919,7 @@ class gui(QtGui.QWidget): self.unmutedlist.addItem(char[0]) self.musicitems.clear() + self.areaitems.clear() self.evidencedropdown.clear() for evi in evidence: self.evidencedropdown.addItem(evi[0]) @@ -2931,6 +2947,11 @@ class gui(QtGui.QWidget): #else: #songitem.setBackgroundColor(QtGui.QColor(255, 128, 128)) self.musicitems.addItem(songitem) + + for area in areas[0]: + areaitem = QtGui.QListWidgetItem() + areaitem.setText("Area\n aaa\n aaa") + self.areaitems.addItem(areaitem) for pid in playerlist: self.updatePlayerList(pid, 0, 0) @@ -3133,7 +3154,7 @@ class EditEvidenceDialog(QtGui.QDialog): path = str(QtGui.QFileDialog.getOpenFileName(self, "Select an image", AOpath + 'evidence', "Images (*.png)")) if path: if not "/evidence/" in path.lower(): - QtGui.QMessageBox.warning(self, 'Edit evidence', 'Please select a file from the evidence directory.') + QtGui.QMessageBox.warning(self, 'Wrong directory', 'Please select a file from the "evidence" directory.') self.onBrowse() return @@ -3142,7 +3163,7 @@ class EditEvidenceDialog(QtGui.QDialog): ind = os.listdir(AOpath + 'evidence').index(file) self.choosepic.setCurrentIndex(ind) else: - QtGui.QMessageBox.warning(self, 'Edit evidence', 'Please select a PNG file.') + QtGui.QMessageBox.warning(self, 'Not a valid file', 'Please select a PNG image.') self.onBrowse() def EditEvidence(self, ind): @@ -3391,7 +3412,7 @@ class TCP_Thread(QtCore.QThread): elif header == 'KK': reason = network[1] - self.parent.emit(QtCore.SIGNAL('showMessage(QString, QString, QString)'), 'critical', 'Connection lost', 'You were kicked off the server. (%s)' % reason) + self.parent.emit(QtCore.SIGNAL('showMessage(QString, QString, QString)'), 'critical', 'Connection lost', 'You were kicked from the server. (%s)' % reason) elif header == 'KB': reason = network[1] @@ -3399,7 +3420,7 @@ class TCP_Thread(QtCore.QThread): elif header == 'BB': # message popup (AO 2.9) message = network[1] - self.parent.emit(QtCore.SIGNAL('showMessage(QString, QString, QString)'), 'warning', 'Message from server', message) + self.parent.emit(QtCore.SIGNAL('showMessage(QString, QString, QString)'), 'information', 'Message from server', message) elif header == 'AUTH': # login status (AO 2.9) status = int(network[1]) @@ -3435,6 +3456,19 @@ class TCP_Thread(QtCore.QThread): del network[0] type = int(network[0]) self.parent.areas[type] = [network[i] for i in range(1, len(network))] + for i in range(self.parent.areas_len): + try: + if self.parent.areas[1][i] == "CASING": + self.parent.areaitems.item(i).setText("%s\n%s | %s\n%s users | %s" % (self.parent.areas[4][i], self.parent.areas[1][i].title(), self.parent.areas[2][i], self.parent.areas[0][i], self.parent.areas[3][i])) + else: + self.parent.areaitems.item(i).setText("%s\n%s\n%s users | %s" % (self.parent.areas[4][i], self.parent.areas[1][i].title(), self.parent.areas[0][i], self.parent.areas[3][i].title())) + + if self.parent.areas[3][i] == "LOCKED": + self.parent.areaitems.item(i).setIcon(QtGui.QIcon(AO2XPpath + "icons/" + "lock.png")) + else: + self.parent.areaitems.item(i).setIcon(QtGui.QIcon(AO2XPpath + "icons/" + "house.png")) + except: + pass class DownloadThread(QtCore.QThread): # Part of the evil HTTPS music download hack for XP systems diff --git a/mainmenu.py b/mainmenu.py index 86158d4..53e4b8b 100644 --- a/mainmenu.py +++ b/mainmenu.py @@ -481,7 +481,7 @@ class AOServerInfo(QtCore.QThread): gotChars = False hplist = [] joinooc = [] - areas = [[], [], [], []] + areas = [[], [], [], [], []] features = [] evidence = [] playerlist = {} @@ -625,6 +625,11 @@ class AOServerInfo(QtCore.QThread): del network[0] type = int(network[0]) areas[type] = [network[i] for i in range(1, len(network))] + areas_len = len(areas[type]) + print '[client]', 'received areas (%d)' % areas_len + for i in range(areas_len): + areas[4].append(musiclist[0]) + del musiclist[0] elif header == 'DONE': if self.disconnect: