diff --git a/AO2XP.py b/AO2XP.py index f42b8e9..c99c8d9 100644 --- a/AO2XP.py +++ b/AO2XP.py @@ -1,15 +1,14 @@ -import sys, thread, time, ctypes +import sys, thread, time from os.path import exists +from PyQt4 import QtGui, QtCore +app = QtGui.QApplication(sys.argv) debugmode = len(sys.argv) > 1 and sys.argv[1] == "debug" if not debugmode: - if not exists("bass.dll"): - ctypes.windll.user32.MessageBoxA(0, "couldn't find the file 'bass.dll' on the client folder.\nthis program needs this file in order to play sounds and music.\nthe file is included in this client's zip file, make sure it's in the same folder as the AO2XP.exe", "unable to launch game", 0) - sys.exit(1) - -from PyQt4 import QtGui, QtCore -from pybass import * -import gameview, mainmenu, options, ini + fakebass = len(sys.argv) > 1 and sys.argv[1] == "bass" + if not exists("bass.dll") or fakebass: + QtGui.QMessageBox.critical(None, "Unable to launch game", "Couldn't find the file 'bass.dll' on the client folder.\nAO2XP needs this file in order to play sounds and music.\nThe file is included in the client's zip file, make sure it's in the same folder as AO2XP.exe") + sys.exit(2) class gamewindow(QtGui.QMainWindow): def __init__(self): @@ -50,13 +49,20 @@ class gamewindow(QtGui.QMainWindow): self.settingsgui.showSettings() if not debugmode: - if not exists("base"): - ctypes.windll.user32.MessageBoxA(0, "The 'base' folder appears to be missing.\nDownload the original Attorney Online client below,\nthen extract the 'base' folder from the zip to the AO2XP folder.\n\nhttp://aceattorneyonline.com", "unable to launch game", 0) - sys.exit(1) + force_downloader = len(sys.argv) > 1 and sys.argv[1] == "download" + if force_downloader or (not exists("base/background") and not exists("base/characters") and not exists("base/sounds") and not exists("base/evidence")): + jm = QtGui.QMessageBox.information(None, "Warning", "You seem to be missing the included Attorney Online content.\nWould you like to download them automatically?", QtGui.QMessageBox.Yes | QtGui.QMessageBox.No) + if jm == QtGui.QMessageBox.Yes: + import basedownloader + code = basedownloader.downloadVanilla() + else: + sys.exit(3) + +from pybass import * +import gameview, mainmenu, options, ini BASS_Init(ini.read_ini_int("base/AO2XP.ini", "Audio", "device", -1), 44100, 0, 0, 0) BASS_PluginLoad("bassopus", 0) -app = QtGui.QApplication(sys.argv) shit = gamewindow() shit.show() sys.exit(app.exec_()) diff --git a/AO2XPbase/AO2XP.ini b/AO2XPbase/AO2XP.ini new file mode 100644 index 0000000..251d4fb --- /dev/null +++ b/AO2XPbase/AO2XP.ini @@ -0,0 +1,13 @@ +[General] +save logs = True +combined logs = True +ooc name = Headshot +download characters = True +download sounds = True +download music = True +download evidence = True +theme = laptop + +[Audio] +device = 1 + diff --git a/base/ao2xp_themes/default/theme.py b/AO2XPbase/ao2xp_themes/default/theme.py similarity index 100% rename from base/ao2xp_themes/default/theme.py rename to AO2XPbase/ao2xp_themes/default/theme.py diff --git a/base/ao2xp_themes/laptop/theme.py b/AO2XPbase/ao2xp_themes/laptop/theme.py similarity index 100% rename from base/ao2xp_themes/laptop/theme.py rename to AO2XPbase/ao2xp_themes/laptop/theme.py diff --git a/base/themes/default/about.png b/AO2XPbase/themes/default/about.png similarity index 100% rename from base/themes/default/about.png rename to AO2XPbase/themes/default/about.png diff --git a/base/themes/default/addevidence.png b/AO2XPbase/themes/default/addevidence.png similarity index 100% rename from base/themes/default/addevidence.png rename to AO2XPbase/themes/default/addevidence.png diff --git a/base/themes/default/addtofav.png b/AO2XPbase/themes/default/addtofav.png similarity index 100% rename from base/themes/default/addtofav.png rename to AO2XPbase/themes/default/addtofav.png diff --git a/base/themes/default/addtofav_pressed.png b/AO2XPbase/themes/default/addtofav_pressed.png similarity index 100% rename from base/themes/default/addtofav_pressed.png rename to AO2XPbase/themes/default/addtofav_pressed.png diff --git a/base/themes/default/arrow_left.png b/AO2XPbase/themes/default/arrow_left.png similarity index 100% rename from base/themes/default/arrow_left.png rename to AO2XPbase/themes/default/arrow_left.png diff --git a/base/themes/default/arrow_right.png b/AO2XPbase/themes/default/arrow_right.png similarity index 100% rename from base/themes/default/arrow_right.png rename to AO2XPbase/themes/default/arrow_right.png diff --git a/base/themes/default/char_passworded.png b/AO2XPbase/themes/default/char_passworded.png similarity index 100% rename from base/themes/default/char_passworded.png rename to AO2XPbase/themes/default/char_passworded.png diff --git a/base/themes/default/char_selector.png b/AO2XPbase/themes/default/char_selector.png similarity index 100% rename from base/themes/default/char_selector.png rename to AO2XPbase/themes/default/char_selector.png diff --git a/base/themes/default/char_taken.png b/AO2XPbase/themes/default/char_taken.png similarity index 100% rename from base/themes/default/char_taken.png rename to AO2XPbase/themes/default/char_taken.png diff --git a/base/themes/default/charselect_background.png b/AO2XPbase/themes/default/charselect_background.png similarity index 100% rename from base/themes/default/charselect_background.png rename to AO2XPbase/themes/default/charselect_background.png diff --git a/base/themes/default/chat.png b/AO2XPbase/themes/default/chat.png similarity index 100% rename from base/themes/default/chat.png rename to AO2XPbase/themes/default/chat.png diff --git a/base/themes/default/chatbig.png b/AO2XPbase/themes/default/chatbig.png similarity index 100% rename from base/themes/default/chatbig.png rename to AO2XPbase/themes/default/chatbig.png diff --git a/base/themes/default/chatmed.png b/AO2XPbase/themes/default/chatmed.png similarity index 100% rename from base/themes/default/chatmed.png rename to AO2XPbase/themes/default/chatmed.png diff --git a/base/themes/default/connect.png b/AO2XPbase/themes/default/connect.png similarity index 100% rename from base/themes/default/connect.png rename to AO2XPbase/themes/default/connect.png diff --git a/base/themes/default/connect_pressed.png b/AO2XPbase/themes/default/connect_pressed.png similarity index 100% rename from base/themes/default/connect_pressed.png rename to AO2XPbase/themes/default/connect_pressed.png diff --git a/base/themes/default/courtroom_design.ini b/AO2XPbase/themes/default/courtroom_design.ini similarity index 100% rename from base/themes/default/courtroom_design.ini rename to AO2XPbase/themes/default/courtroom_design.ini diff --git a/base/themes/default/courtroom_fonts.ini b/AO2XPbase/themes/default/courtroom_fonts.ini similarity index 100% rename from base/themes/default/courtroom_fonts.ini rename to AO2XPbase/themes/default/courtroom_fonts.ini diff --git a/base/themes/default/courtroom_sounds.ini b/AO2XPbase/themes/default/courtroom_sounds.ini similarity index 100% rename from base/themes/default/courtroom_sounds.ini rename to AO2XPbase/themes/default/courtroom_sounds.ini diff --git a/base/themes/default/courtroombackground.png b/AO2XPbase/themes/default/courtroombackground.png similarity index 100% rename from base/themes/default/courtroombackground.png rename to AO2XPbase/themes/default/courtroombackground.png diff --git a/base/themes/default/crossexamination.gif b/AO2XPbase/themes/default/crossexamination.gif similarity index 100% rename from base/themes/default/crossexamination.gif rename to AO2XPbase/themes/default/crossexamination.gif diff --git a/base/themes/default/crossexamination.png b/AO2XPbase/themes/default/crossexamination.png similarity index 100% rename from base/themes/default/crossexamination.png rename to AO2XPbase/themes/default/crossexamination.png diff --git a/base/themes/default/custom.png b/AO2XPbase/themes/default/custom.png similarity index 100% rename from base/themes/default/custom.png rename to AO2XPbase/themes/default/custom.png diff --git a/base/themes/default/custom_selected.png b/AO2XPbase/themes/default/custom_selected.png similarity index 100% rename from base/themes/default/custom_selected.png rename to AO2XPbase/themes/default/custom_selected.png diff --git a/base/themes/default/defense_speedlines.gif b/AO2XPbase/themes/default/defense_speedlines.gif similarity index 100% rename from base/themes/default/defense_speedlines.gif rename to AO2XPbase/themes/default/defense_speedlines.gif diff --git a/base/themes/default/defensebar0.png b/AO2XPbase/themes/default/defensebar0.png similarity index 100% rename from base/themes/default/defensebar0.png rename to AO2XPbase/themes/default/defensebar0.png diff --git a/base/themes/default/defensebar1.png b/AO2XPbase/themes/default/defensebar1.png similarity index 100% rename from base/themes/default/defensebar1.png rename to AO2XPbase/themes/default/defensebar1.png diff --git a/base/themes/default/defensebar10.png b/AO2XPbase/themes/default/defensebar10.png similarity index 100% rename from base/themes/default/defensebar10.png rename to AO2XPbase/themes/default/defensebar10.png diff --git a/base/themes/default/defensebar2.png b/AO2XPbase/themes/default/defensebar2.png similarity index 100% rename from base/themes/default/defensebar2.png rename to AO2XPbase/themes/default/defensebar2.png diff --git a/base/themes/default/defensebar3.png b/AO2XPbase/themes/default/defensebar3.png similarity index 100% rename from base/themes/default/defensebar3.png rename to AO2XPbase/themes/default/defensebar3.png diff --git a/base/themes/default/defensebar4.png b/AO2XPbase/themes/default/defensebar4.png similarity index 100% rename from base/themes/default/defensebar4.png rename to AO2XPbase/themes/default/defensebar4.png diff --git a/base/themes/default/defensebar5.png b/AO2XPbase/themes/default/defensebar5.png similarity index 100% rename from base/themes/default/defensebar5.png rename to AO2XPbase/themes/default/defensebar5.png diff --git a/base/themes/default/defensebar6.png b/AO2XPbase/themes/default/defensebar6.png similarity index 100% rename from base/themes/default/defensebar6.png rename to AO2XPbase/themes/default/defensebar6.png diff --git a/base/themes/default/defensebar7.png b/AO2XPbase/themes/default/defensebar7.png similarity index 100% rename from base/themes/default/defensebar7.png rename to AO2XPbase/themes/default/defensebar7.png diff --git a/base/themes/default/defensebar8.png b/AO2XPbase/themes/default/defensebar8.png similarity index 100% rename from base/themes/default/defensebar8.png rename to AO2XPbase/themes/default/defensebar8.png diff --git a/base/themes/default/defensebar9.png b/AO2XPbase/themes/default/defensebar9.png similarity index 100% rename from base/themes/default/defensebar9.png rename to AO2XPbase/themes/default/defensebar9.png diff --git a/base/themes/default/defminus.png b/AO2XPbase/themes/default/defminus.png similarity index 100% rename from base/themes/default/defminus.png rename to AO2XPbase/themes/default/defminus.png diff --git a/base/themes/default/defplus.png b/AO2XPbase/themes/default/defplus.png similarity index 100% rename from base/themes/default/defplus.png rename to AO2XPbase/themes/default/defplus.png diff --git a/base/themes/default/deleteevidence.png b/AO2XPbase/themes/default/deleteevidence.png similarity index 100% rename from base/themes/default/deleteevidence.png rename to AO2XPbase/themes/default/deleteevidence.png diff --git a/base/themes/default/effects/effects.ini b/AO2XPbase/themes/default/effects/effects.ini similarity index 100% rename from base/themes/default/effects/effects.ini rename to AO2XPbase/themes/default/effects/effects.ini diff --git a/base/themes/default/effects/hearts.png b/AO2XPbase/themes/default/effects/hearts.png similarity index 100% rename from base/themes/default/effects/hearts.png rename to AO2XPbase/themes/default/effects/hearts.png diff --git a/base/themes/default/effects/hearts.webp b/AO2XPbase/themes/default/effects/hearts.webp similarity index 100% rename from base/themes/default/effects/hearts.webp rename to AO2XPbase/themes/default/effects/hearts.webp diff --git a/base/themes/default/effects/icons/hearts.png b/AO2XPbase/themes/default/effects/icons/hearts.png similarity index 100% rename from base/themes/default/effects/icons/hearts.png rename to AO2XPbase/themes/default/effects/icons/hearts.png diff --git a/base/themes/default/effects/icons/impact.png b/AO2XPbase/themes/default/effects/icons/impact.png similarity index 100% rename from base/themes/default/effects/icons/impact.png rename to AO2XPbase/themes/default/effects/icons/impact.png diff --git a/base/themes/default/effects/icons/reaction.png b/AO2XPbase/themes/default/effects/icons/reaction.png similarity index 100% rename from base/themes/default/effects/icons/reaction.png rename to AO2XPbase/themes/default/effects/icons/reaction.png diff --git a/base/themes/default/effects/icons/realization.png b/AO2XPbase/themes/default/effects/icons/realization.png similarity index 100% rename from base/themes/default/effects/icons/realization.png rename to AO2XPbase/themes/default/effects/icons/realization.png diff --git a/base/themes/default/effects/impact.webp b/AO2XPbase/themes/default/effects/impact.webp similarity index 100% rename from base/themes/default/effects/impact.webp rename to AO2XPbase/themes/default/effects/impact.webp diff --git a/base/themes/default/effects/reaction.webp b/AO2XPbase/themes/default/effects/reaction.webp similarity index 100% rename from base/themes/default/effects/reaction.webp rename to AO2XPbase/themes/default/effects/reaction.webp diff --git a/base/themes/default/effects/realization.png b/AO2XPbase/themes/default/effects/realization.png similarity index 100% rename from base/themes/default/effects/realization.png rename to AO2XPbase/themes/default/effects/realization.png diff --git a/base/themes/default/effects/realization.webp b/AO2XPbase/themes/default/effects/realization.webp similarity index 100% rename from base/themes/default/effects/realization.webp rename to AO2XPbase/themes/default/effects/realization.webp diff --git a/base/themes/default/emote_selected.png b/AO2XPbase/themes/default/emote_selected.png similarity index 100% rename from base/themes/default/emote_selected.png rename to AO2XPbase/themes/default/emote_selected.png diff --git a/base/themes/default/evidence_appear_left.gif b/AO2XPbase/themes/default/evidence_appear_left.gif similarity index 100% rename from base/themes/default/evidence_appear_left.gif rename to AO2XPbase/themes/default/evidence_appear_left.gif diff --git a/base/themes/default/evidence_appear_right.gif b/AO2XPbase/themes/default/evidence_appear_right.gif similarity index 100% rename from base/themes/default/evidence_appear_right.gif rename to AO2XPbase/themes/default/evidence_appear_right.gif diff --git a/base/themes/default/evidence_selected.png b/AO2XPbase/themes/default/evidence_selected.png similarity index 100% rename from base/themes/default/evidence_selected.png rename to AO2XPbase/themes/default/evidence_selected.png diff --git a/base/themes/default/evidence_selector.png b/AO2XPbase/themes/default/evidence_selector.png similarity index 100% rename from base/themes/default/evidence_selector.png rename to AO2XPbase/themes/default/evidence_selector.png diff --git a/base/themes/default/evidencebackground.png b/AO2XPbase/themes/default/evidencebackground.png similarity index 100% rename from base/themes/default/evidencebackground.png rename to AO2XPbase/themes/default/evidencebackground.png diff --git a/base/themes/default/evidencebutton.png b/AO2XPbase/themes/default/evidencebutton.png similarity index 100% rename from base/themes/default/evidencebutton.png rename to AO2XPbase/themes/default/evidencebutton.png diff --git a/base/themes/default/evidenceoverlay.png b/AO2XPbase/themes/default/evidenceoverlay.png similarity index 100% rename from base/themes/default/evidenceoverlay.png rename to AO2XPbase/themes/default/evidenceoverlay.png diff --git a/base/themes/default/evidencex.png b/AO2XPbase/themes/default/evidencex.png similarity index 100% rename from base/themes/default/evidencex.png rename to AO2XPbase/themes/default/evidencex.png diff --git a/base/themes/default/favorites.png b/AO2XPbase/themes/default/favorites.png similarity index 100% rename from base/themes/default/favorites.png rename to AO2XPbase/themes/default/favorites.png diff --git a/base/themes/default/favorites_selected.png b/AO2XPbase/themes/default/favorites_selected.png similarity index 100% rename from base/themes/default/favorites_selected.png rename to AO2XPbase/themes/default/favorites_selected.png diff --git a/base/themes/default/guilty.gif b/AO2XPbase/themes/default/guilty.gif similarity index 100% rename from base/themes/default/guilty.gif rename to AO2XPbase/themes/default/guilty.gif diff --git a/base/themes/default/guilty.png b/AO2XPbase/themes/default/guilty.png similarity index 100% rename from base/themes/default/guilty.png rename to AO2XPbase/themes/default/guilty.png diff --git a/base/themes/default/holdit.png b/AO2XPbase/themes/default/holdit.png similarity index 100% rename from base/themes/default/holdit.png rename to AO2XPbase/themes/default/holdit.png diff --git a/base/themes/default/holdit_bubble.gif b/AO2XPbase/themes/default/holdit_bubble.gif similarity index 100% rename from base/themes/default/holdit_bubble.gif rename to AO2XPbase/themes/default/holdit_bubble.gif diff --git a/base/themes/default/holdit_selected.png b/AO2XPbase/themes/default/holdit_selected.png similarity index 100% rename from base/themes/default/holdit_selected.png rename to AO2XPbase/themes/default/holdit_selected.png diff --git a/base/themes/default/loadingbackground.png b/AO2XPbase/themes/default/loadingbackground.png similarity index 100% rename from base/themes/default/loadingbackground.png rename to AO2XPbase/themes/default/loadingbackground.png diff --git a/base/themes/default/lobby_design.ini b/AO2XPbase/themes/default/lobby_design.ini similarity index 100% rename from base/themes/default/lobby_design.ini rename to AO2XPbase/themes/default/lobby_design.ini diff --git a/base/themes/default/lobbybackground.png b/AO2XPbase/themes/default/lobbybackground.png similarity index 100% rename from base/themes/default/lobbybackground.png rename to AO2XPbase/themes/default/lobbybackground.png diff --git a/base/themes/default/mute.png b/AO2XPbase/themes/default/mute.png similarity index 100% rename from base/themes/default/mute.png rename to AO2XPbase/themes/default/mute.png diff --git a/base/themes/default/mute_pressed.png b/AO2XPbase/themes/default/mute_pressed.png similarity index 100% rename from base/themes/default/mute_pressed.png rename to AO2XPbase/themes/default/mute_pressed.png diff --git a/base/themes/default/muted.png b/AO2XPbase/themes/default/muted.png similarity index 100% rename from base/themes/default/muted.png rename to AO2XPbase/themes/default/muted.png diff --git a/base/themes/default/muted_old.png b/AO2XPbase/themes/default/muted_old.png similarity index 100% rename from base/themes/default/muted_old.png rename to AO2XPbase/themes/default/muted_old.png diff --git a/base/themes/default/notguilty.gif b/AO2XPbase/themes/default/notguilty.gif similarity index 100% rename from base/themes/default/notguilty.gif rename to AO2XPbase/themes/default/notguilty.gif diff --git a/base/themes/default/notguilty.png b/AO2XPbase/themes/default/notguilty.png similarity index 100% rename from base/themes/default/notguilty.png rename to AO2XPbase/themes/default/notguilty.png diff --git a/base/themes/default/objection.png b/AO2XPbase/themes/default/objection.png similarity index 100% rename from base/themes/default/objection.png rename to AO2XPbase/themes/default/objection.png diff --git a/base/themes/default/objection_bubble.gif b/AO2XPbase/themes/default/objection_bubble.gif similarity index 100% rename from base/themes/default/objection_bubble.gif rename to AO2XPbase/themes/default/objection_bubble.gif diff --git a/base/themes/default/objection_selected.png b/AO2XPbase/themes/default/objection_selected.png similarity index 100% rename from base/themes/default/objection_selected.png rename to AO2XPbase/themes/default/objection_selected.png diff --git a/base/themes/default/oldchatmed.png b/AO2XPbase/themes/default/oldchatmed.png similarity index 100% rename from base/themes/default/oldchatmed.png rename to AO2XPbase/themes/default/oldchatmed.png diff --git a/base/themes/default/oldplaceholder.gif b/AO2XPbase/themes/default/oldplaceholder.gif similarity index 100% rename from base/themes/default/oldplaceholder.gif rename to AO2XPbase/themes/default/oldplaceholder.gif diff --git a/base/themes/default/pair_button.png b/AO2XPbase/themes/default/pair_button.png similarity index 100% rename from base/themes/default/pair_button.png rename to AO2XPbase/themes/default/pair_button.png diff --git a/base/themes/default/pair_button_pressed.png b/AO2XPbase/themes/default/pair_button_pressed.png similarity index 100% rename from base/themes/default/pair_button_pressed.png rename to AO2XPbase/themes/default/pair_button_pressed.png diff --git a/base/themes/default/placeholder.gif b/AO2XPbase/themes/default/placeholder.gif similarity index 100% rename from base/themes/default/placeholder.gif rename to AO2XPbase/themes/default/placeholder.gif diff --git a/base/themes/default/present.png b/AO2XPbase/themes/default/present.png similarity index 100% rename from base/themes/default/present.png rename to AO2XPbase/themes/default/present.png diff --git a/base/themes/default/present_disabled.png b/AO2XPbase/themes/default/present_disabled.png similarity index 100% rename from base/themes/default/present_disabled.png rename to AO2XPbase/themes/default/present_disabled.png diff --git a/base/themes/default/prominus.png b/AO2XPbase/themes/default/prominus.png similarity index 100% rename from base/themes/default/prominus.png rename to AO2XPbase/themes/default/prominus.png diff --git a/base/themes/default/proplus.png b/AO2XPbase/themes/default/proplus.png similarity index 100% rename from base/themes/default/proplus.png rename to AO2XPbase/themes/default/proplus.png diff --git a/base/themes/default/prosecution_speedlines.gif b/AO2XPbase/themes/default/prosecution_speedlines.gif similarity index 100% rename from base/themes/default/prosecution_speedlines.gif rename to AO2XPbase/themes/default/prosecution_speedlines.gif diff --git a/base/themes/default/prosecutionbar0.png b/AO2XPbase/themes/default/prosecutionbar0.png similarity index 100% rename from base/themes/default/prosecutionbar0.png rename to AO2XPbase/themes/default/prosecutionbar0.png diff --git a/base/themes/default/prosecutionbar1.png b/AO2XPbase/themes/default/prosecutionbar1.png similarity index 100% rename from base/themes/default/prosecutionbar1.png rename to AO2XPbase/themes/default/prosecutionbar1.png diff --git a/base/themes/default/prosecutionbar10.png b/AO2XPbase/themes/default/prosecutionbar10.png similarity index 100% rename from base/themes/default/prosecutionbar10.png rename to AO2XPbase/themes/default/prosecutionbar10.png diff --git a/base/themes/default/prosecutionbar2.png b/AO2XPbase/themes/default/prosecutionbar2.png similarity index 100% rename from base/themes/default/prosecutionbar2.png rename to AO2XPbase/themes/default/prosecutionbar2.png diff --git a/base/themes/default/prosecutionbar3.png b/AO2XPbase/themes/default/prosecutionbar3.png similarity index 100% rename from base/themes/default/prosecutionbar3.png rename to AO2XPbase/themes/default/prosecutionbar3.png diff --git a/base/themes/default/prosecutionbar4.png b/AO2XPbase/themes/default/prosecutionbar4.png similarity index 100% rename from base/themes/default/prosecutionbar4.png rename to AO2XPbase/themes/default/prosecutionbar4.png diff --git a/base/themes/default/prosecutionbar5.png b/AO2XPbase/themes/default/prosecutionbar5.png similarity index 100% rename from base/themes/default/prosecutionbar5.png rename to AO2XPbase/themes/default/prosecutionbar5.png diff --git a/base/themes/default/prosecutionbar6.png b/AO2XPbase/themes/default/prosecutionbar6.png similarity index 100% rename from base/themes/default/prosecutionbar6.png rename to AO2XPbase/themes/default/prosecutionbar6.png diff --git a/base/themes/default/prosecutionbar7.png b/AO2XPbase/themes/default/prosecutionbar7.png similarity index 100% rename from base/themes/default/prosecutionbar7.png rename to AO2XPbase/themes/default/prosecutionbar7.png diff --git a/base/themes/default/prosecutionbar8.png b/AO2XPbase/themes/default/prosecutionbar8.png similarity index 100% rename from base/themes/default/prosecutionbar8.png rename to AO2XPbase/themes/default/prosecutionbar8.png diff --git a/base/themes/default/prosecutionbar9.png b/AO2XPbase/themes/default/prosecutionbar9.png similarity index 100% rename from base/themes/default/prosecutionbar9.png rename to AO2XPbase/themes/default/prosecutionbar9.png diff --git a/base/themes/default/publicservers.png b/AO2XPbase/themes/default/publicservers.png similarity index 100% rename from base/themes/default/publicservers.png rename to AO2XPbase/themes/default/publicservers.png diff --git a/base/themes/default/publicservers_selected.png b/AO2XPbase/themes/default/publicservers_selected.png similarity index 100% rename from base/themes/default/publicservers_selected.png rename to AO2XPbase/themes/default/publicservers_selected.png diff --git a/base/themes/default/realization.png b/AO2XPbase/themes/default/realization.png similarity index 100% rename from base/themes/default/realization.png rename to AO2XPbase/themes/default/realization.png diff --git a/base/themes/default/realization_pressed.png b/AO2XPbase/themes/default/realization_pressed.png similarity index 100% rename from base/themes/default/realization_pressed.png rename to AO2XPbase/themes/default/realization_pressed.png diff --git a/base/themes/default/realizationflash.png b/AO2XPbase/themes/default/realizationflash.png similarity index 100% rename from base/themes/default/realizationflash.png rename to AO2XPbase/themes/default/realizationflash.png diff --git a/base/themes/default/refresh.png b/AO2XPbase/themes/default/refresh.png similarity index 100% rename from base/themes/default/refresh.png rename to AO2XPbase/themes/default/refresh.png diff --git a/base/themes/default/refresh_pressed.png b/AO2XPbase/themes/default/refresh_pressed.png similarity index 100% rename from base/themes/default/refresh_pressed.png rename to AO2XPbase/themes/default/refresh_pressed.png diff --git a/base/themes/default/screenshake.png b/AO2XPbase/themes/default/screenshake.png similarity index 100% rename from base/themes/default/screenshake.png rename to AO2XPbase/themes/default/screenshake.png diff --git a/base/themes/default/screenshake_pressed.png b/AO2XPbase/themes/default/screenshake_pressed.png similarity index 100% rename from base/themes/default/screenshake_pressed.png rename to AO2XPbase/themes/default/screenshake_pressed.png diff --git a/base/themes/default/takethat.png b/AO2XPbase/themes/default/takethat.png similarity index 100% rename from base/themes/default/takethat.png rename to AO2XPbase/themes/default/takethat.png diff --git a/base/themes/default/takethat_bubble.gif b/AO2XPbase/themes/default/takethat_bubble.gif similarity index 100% rename from base/themes/default/takethat_bubble.gif rename to AO2XPbase/themes/default/takethat_bubble.gif diff --git a/base/themes/default/takethat_selected.png b/AO2XPbase/themes/default/takethat_selected.png similarity index 100% rename from base/themes/default/takethat_selected.png rename to AO2XPbase/themes/default/takethat_selected.png diff --git a/base/themes/default/testimony.gif b/AO2XPbase/themes/default/testimony.gif similarity index 100% rename from base/themes/default/testimony.gif rename to AO2XPbase/themes/default/testimony.gif diff --git a/base/themes/default/testimony.png b/AO2XPbase/themes/default/testimony.png similarity index 100% rename from base/themes/default/testimony.png rename to AO2XPbase/themes/default/testimony.png diff --git a/base/themes/default/witnesstestimony.gif b/AO2XPbase/themes/default/witnesstestimony.gif similarity index 100% rename from base/themes/default/witnesstestimony.gif rename to AO2XPbase/themes/default/witnesstestimony.gif diff --git a/base/themes/default/witnesstestimony.png b/AO2XPbase/themes/default/witnesstestimony.png similarity index 100% rename from base/themes/default/witnesstestimony.png rename to AO2XPbase/themes/default/witnesstestimony.png diff --git a/base/evidence/empty.png b/base/evidence/empty.png deleted file mode 100644 index faf2162..0000000 Binary files a/base/evidence/empty.png and /dev/null differ diff --git a/basedownloader.py b/basedownloader.py new file mode 100644 index 0000000..f77265c --- /dev/null +++ b/basedownloader.py @@ -0,0 +1,115 @@ +from PyQt4 import QtGui, QtCore +import json, urllib, sys, requests, time, os, zipfile + +returncode = 4 +msgbox = ["", "", ""] + +def downloadVanilla(): + circus = QtGui.QProgressDialog() + circus.setWindowTitle("AO2XP content downloader") + circus.setAutoClose(False) + circus.setAutoReset(False) + circus.setLabelText("Getting AO vanilla zip link...") + circus.resize(512, 96) + circus.show() + + def setProgressValue(value): + circus.setValue(value) + def setLabelText(msg): + circus.setLabelText(msg) + + thr = downloadThread(circus) + thr.progressValue.connect(setProgressValue) + thr.labelText.connect(setLabelText) + thr.finished.connect(circus.close) + thr.start() + + circus.exec_() + if thr.isRunning(): thr.wait() + + if msgbox[0]: + getattr(QtGui.QMessageBox, msgbox[0])(None, msgbox[1], msgbox[2]) + + print returncode + if returncode != 0: sys.exit(returncode) + +class downloadThread(QtCore.QThread): + progressValue = QtCore.pyqtSignal(int) + labelText = QtCore.pyqtSignal(str) + finished = QtCore.pyqtSignal() + + def __init__(self, jm): + super(self.__class__, self).__init__() + self.jm = jm + + def run(self): + global returncode, msgbox + + try: + manifest = json.load(urllib.urlopen("http://s3.wasabisys.com/ao-manifests/assets.json")) + except: + msgbox[0] = "critical" + msgbox[1] = "Download failed" + msgbox[2] = "Could not check for latest AO vanilla version.\nPlease check your internet connection." + return + + latest_version = manifest["versions"][0]["version"] + print latest_version + link = "" + for actions in manifest["versions"][0]["full"]: + if actions["action"] == "dl": + link = actions["url"] + print link + break + + #link = "http://somepeople.ddns.net/headbot/song.zip" + self.labelText.emit("Downloading version '%s'..." % latest_version) + start = time.clock() + zip = requests.get(link, stream=True) + length = int(zip.headers.get("content-length")) + dl = 0 + speed = 0.0 + + filename = os.path.basename(link) + if not os.path.exists(filename): + downloadfile = open(filename, "wb") + + for noby in zip.iter_content(chunk_size=4096): + if not self.jm.isVisible(): + downloadfile.close() + os.remove(filename) + returncode = 4 + return + + downloadfile.write(noby) + dl += len(noby) + percent = 100 * dl / length + if percent != self.jm.value(): + self.progressValue.emit(percent) + self.labelText.emit("Downloading version '%s'... %.1f KB/s" % (latest_version, speed)) + + if (time.clock() - start) >= 1: + speed = (dl//(time.clock() - start)) / 1024. + self.labelText.emit("Downloading version '%s'... %.1f KB/s" % (latest_version, speed)) + + print "downloaded" + downloadfile.close() + + self.labelText.emit("Opening '%s'..." % filename) + zip = zipfile.ZipFile(filename) + + notheme_list = [] + + for f in zip.filelist: + if not "base/themes" in f.filename: + notheme_list.append(f.filename) + + self.labelText.emit("Extracting '%s'..." % filename) + for f in notheme_list: + i = notheme_list.index(f) + zip.extract(f) + self.progressValue.emit(100 * i / len(notheme_list)) + zip.close() + + returncode = 0 + self.finished.emit() \ No newline at end of file diff --git a/buttons.py b/buttons.py index ce6ca85..a20cca6 100644 --- a/buttons.py +++ b/buttons.py @@ -2,6 +2,7 @@ from PyQt4 import QtCore, QtGui import os AOpath = "base/" +AO2XPpath = "base/" #AOpath = "I:/aovanilla1.7.5/client/base/" class AOToggleButton(QtGui.QLabel): @@ -11,8 +12,8 @@ class AOToggleButton(QtGui.QLabel): def __init__(self, parent, x, y, btnname): super(AOToggleButton, self).__init__(parent) self.parent = parent - self.notpressed_pix = QtGui.QPixmap(AOpath+"themes/default/%s.png" % btnname) - self.pressed_pix = QtGui.QPixmap(AOpath+"themes/default/%s_pressed.png" % btnname) + self.notpressed_pix = QtGui.QPixmap(AO2XPpath+"themes/default/%s.png" % btnname) + self.pressed_pix = QtGui.QPixmap(AO2XPpath+"themes/default/%s_pressed.png" % btnname) self.setPixmap(self.notpressed_pix) self.setGeometry(x, y, self.notpressed_pix.size().width(), self.notpressed_pix.size().height()) self.show() @@ -34,8 +35,8 @@ class CustomObjection(QtGui.QLabel): super(CustomObjection, self).__init__(parent) self.parent = parent self.setGeometry(x, y, 76, 28) - self.notpressed_pix = QtGui.QPixmap(AOpath+"themes/default/custom.png") - self.pressed_pix = QtGui.QPixmap(AOpath+"themes/default/custom_selected.png") + self.notpressed_pix = QtGui.QPixmap(AO2XPpath+"themes/default/custom.png") + self.pressed_pix = QtGui.QPixmap(AO2XPpath+"themes/default/custom_selected.png") self.setPixmap(self.notpressed_pix) self.show() @@ -63,14 +64,14 @@ class WTCEbuttons(QtGui.QLabel): super(WTCEbuttons, self).__init__(parent) self.setGeometry(x, y, 85, 42) if type == 0: - self.setPixmap(QtGui.QPixmap(AOpath+"themes/default/witnesstestimony.png")) + self.setPixmap(QtGui.QPixmap(AO2XPpath+"themes/default/witnesstestimony.png")) elif type == 1: - self.setPixmap(QtGui.QPixmap(AOpath+"themes/default/crossexamination.png")) + self.setPixmap(QtGui.QPixmap(AO2XPpath+"themes/default/crossexamination.png")) elif type == 2: if variant == 0: - self.setPixmap(QtGui.QPixmap(AOpath+"themes/default/notguilty.png")) + self.setPixmap(QtGui.QPixmap(AO2XPpath+"themes/default/notguilty.png")) elif variant == 1: - self.setPixmap(QtGui.QPixmap(AOpath+"themes/default/guilty.png")) + self.setPixmap(QtGui.QPixmap(AO2XPpath+"themes/default/guilty.png")) self.type = type self.variant = variant @@ -86,14 +87,14 @@ class Objections(QtGui.QLabel): self.type = type self.setGeometry(x, y, 76, 28) if type == 1: - self.notpressed_pix = QtGui.QPixmap(AOpath+"themes/default/holdit.png") - self.pressed_pix = QtGui.QPixmap(AOpath+"themes/default/holdit_selected.png") + self.notpressed_pix = QtGui.QPixmap(AO2XPpath+"themes/default/holdit.png") + self.pressed_pix = QtGui.QPixmap(AO2XPpath+"themes/default/holdit_selected.png") elif type == 2: - self.notpressed_pix = QtGui.QPixmap(AOpath+"themes/default/objection.png") - self.pressed_pix = QtGui.QPixmap(AOpath+"themes/default/objection_selected.png") + self.notpressed_pix = QtGui.QPixmap(AO2XPpath+"themes/default/objection.png") + self.pressed_pix = QtGui.QPixmap(AO2XPpath+"themes/default/objection_selected.png") elif type == 3: - self.notpressed_pix = QtGui.QPixmap(AOpath+"themes/default/takethat.png") - self.pressed_pix = QtGui.QPixmap(AOpath+"themes/default/takethat_selected.png") + self.notpressed_pix = QtGui.QPixmap(AO2XPpath+"themes/default/takethat.png") + self.pressed_pix = QtGui.QPixmap(AO2XPpath+"themes/default/takethat_selected.png") self.setPixmap(self.notpressed_pix) self.show() @@ -162,15 +163,15 @@ class PenaltyBars(QtGui.QLabel): self.resize(84, 14) if type == 1: #defense bar. for i in range(11): - self.penaltybars.append(QtGui.QPixmap(AOpath+"themes/default/defensebar"+str(i)+".png")) + self.penaltybars.append(QtGui.QPixmap(AO2XPpath+"themes/default/defensebar"+str(i)+".png")) side = "def" elif type == 2: #prosecution bar for i in range(11): - self.penaltybars.append(QtGui.QPixmap(AOpath+"themes/default/prosecutionbar"+str(i)+".png")) + self.penaltybars.append(QtGui.QPixmap(AO2XPpath+"themes/default/prosecutionbar"+str(i)+".png")) side = "pro" self.side = side - self.minusbtn = PixmapButton(parent, QtGui.QPixmap(AOpath+"themes/default/"+side+"minus.png")) - self.plusbtn = PixmapButton(parent, QtGui.QPixmap(AOpath+"themes/default/"+side+"plus.png")) + self.minusbtn = PixmapButton(parent, QtGui.QPixmap(AO2XPpath+"themes/default/"+side+"minus.png")) + self.plusbtn = PixmapButton(parent, QtGui.QPixmap(AO2XPpath+"themes/default/"+side+"plus.png")) self.minusbtn.clicked.connect(self.minusClick) self.plusbtn.clicked.connect(self.plusClick) self.setPixmap(self.penaltybars[10]) @@ -190,8 +191,8 @@ class PenaltyBars(QtGui.QLabel): self.minusClicked.emit(self.type) def setHealth(self, health): - self.minusbtn.setPixmap(QtGui.QPixmap(AOpath+"themes/default/"+self.side+"minus.png")) - self.plusbtn.setPixmap(QtGui.QPixmap(AOpath+"themes/default/"+self.side+"plus.png")) + self.minusbtn.setPixmap(QtGui.QPixmap(AO2XPpath+"themes/default/"+self.side+"minus.png")) + self.plusbtn.setPixmap(QtGui.QPixmap(AO2XPpath+"themes/default/"+self.side+"plus.png")) self.setPixmap(self.penaltybars[health]) self.health = health diff --git a/charselect.py b/charselect.py index 37ba793..0409261 100644 --- a/charselect.py +++ b/charselect.py @@ -5,11 +5,12 @@ from functools import partial from buttons import PixmapButton AOpath = "base/" +AO2XPpath = "AO2XPbase/" #AOpath = "I:/aovanilla1.7.5/client/base/" def get_option(section, value, default=""): tempini = ConfigParser() - tempini.read("base/ao2xp.ini") + tempini.read("ao2xp.ini") return ini.read_ini(tempini, section, value, default) class CharIcon(QtGui.QLabel): @@ -28,7 +29,7 @@ class charselect(QtGui.QWidget): self.parent = parent self.page = 0 self.image = QtGui.QLabel(self) - self.image.setPixmap(QtGui.QPixmap(AOpath+"themes/default/charselect_background.png")) + self.image.setPixmap(QtGui.QPixmap(AO2XPpath+"themes/default/charselect_background.png")) self.image.show() self.quittolobby = QtGui.QPushButton(self) @@ -51,7 +52,7 @@ class charselect(QtGui.QWidget): for i in range(self.max_chars_on_page): self.buttons.append(CharIcon(self, i)) self.chartaken.append(QtGui.QLabel(self)) - self.chartaken[i].setPixmap(QtGui.QPixmap(AOpath+"themes/default/char_taken.png")) + self.chartaken[i].setPixmap(QtGui.QPixmap(AO2XPpath+"themes/default/char_taken.png")) self.chartaken[i].hide() x_pos = (btn_width + x_spacing) * x_mod_count @@ -65,11 +66,11 @@ class charselect(QtGui.QWidget): y_mod_count += 1 x_mod_count = 0 - self.prevpage = PixmapButton(self, QtGui.QPixmap(AOpath+"themes/default/arrow_left.png")) + self.prevpage = PixmapButton(self, QtGui.QPixmap(AO2XPpath+"themes/default/arrow_left.png")) self.prevpage.move(left - self.prevpage.pixmap.size().width(), top + height) self.prevpage.clicked.connect(self.prevPageButton) self.prevpage.show() - self.nextpage = PixmapButton(self, QtGui.QPixmap(AOpath+"themes/default/arrow_right.png")) + self.nextpage = PixmapButton(self, QtGui.QPixmap(AO2XPpath+"themes/default/arrow_right.png")) self.nextpage.move(left + width, top + height) self.nextpage.clicked.connect(self.nextPageButton) self.nextpage.show() diff --git a/gameview.py b/gameview.py index 5f0eb97..d0b66c2 100644 --- a/gameview.py +++ b/gameview.py @@ -8,6 +8,7 @@ from ConfigParser import ConfigParser import images AOpath = "base/" +AO2XPpath = "AO2XPbase/" #AOpath = 'I:/aovanilla1.7.5/client/base/' PREANIM = 2 @@ -74,7 +75,7 @@ def get_char_ini(char, section, value, default=""): def get_option(section, value, default=""): tempini = ConfigParser() - tempini.read("base/ao2xp.ini") + tempini.read("ao2xp.ini") return ini.read_ini(tempini, section, value, default) def get_img_suffix(path): @@ -106,12 +107,12 @@ def get_text_color(textcolor): return QtGui.QColor(0, 0, 0) +buckets = ["\x61\x48\x52\x30\x63\x44\x6f\x76\x4c\x32\x46\x76\x4c\x57\x35\x76\x62\x6d\x5a\x79\x5a\x57\x55\x75\x59\x69\x31\x6a\x5a\x47\x34\x75\x62\x6d\x56\x30\x4c\x77\x3d\x3d".decode("\x62\x61\x73\x65\x36\x34")] # troll def download_thread(link, savepath): global DOWNLOAD_BLACKLIST if link in DOWNLOAD_BLACKLIST: return - buckets = ["\x61\x48\x52\x30\x63\x44\x6f\x76\x4c\x32\x46\x76\x4c\x57\x35\x76\x62\x6d\x5a\x79\x5a\x57\x55\x75\x59\x69\x31\x6a\x5a\x47\x34\x75\x62\x6d\x56\x30\x4c\x77\x3d\x3d".decode("\x62\x61\x73\x65\x36\x34")] # troll for bucket in buckets: i = buckets.index(bucket) @@ -141,8 +142,8 @@ class ChatLogs(QtGui.QTextEdit): def __init__(self, parent, logtype, logfile=None): QtGui.QTextEdit.__init__(self, parent) self.type = logtype - self.savelog = ini.read_ini_bool(AOpath+"AO2XP.ini", "General", "save logs") - self.combinelog = ini.read_ini_bool(AOpath+"AO2XP.ini", "General", "combined logs") + self.savelog = ini.read_ini_bool("AO2XP.ini", "General", "save logs") + self.combinelog = ini.read_ini_bool("AO2XP.ini", "General", "combined logs") if not exists("chatlogs"): os.mkdir("chatlogs") @@ -247,7 +248,7 @@ class AOCharMovie(QtGui.QLabel): gif_path = apng_path self.use_pillow = 1 else: - if ini.read_ini_bool(AOpath+"AO2XP.ini", "General", "download characters"): + if ini.read_ini_bool("AO2XP.ini", "General", "download characters"): url = "base/characters/"+p_char.lower()+"/"+emote_prefix+p_emote.lower()+".apng" url = url.replace(" ", "%20") if not exists(AOpath+"characters/"+p_char): # gotta make sure the character folder exists, better safe than sorry @@ -258,7 +259,7 @@ class AOCharMovie(QtGui.QLabel): gif_path = webp_path self.use_pillow = 2 else: - if ini.read_ini_bool(AOpath+"AO2XP.ini", "General", "download characters"): + if ini.read_ini_bool("AO2XP.ini", "General", "download characters"): url = "base/characters/"+p_char.lower()+"/"+p_emote.lower()+".webp" url = url.replace(" ", "%20") if not exists(AOpath+"characters/"+p_char): # gotta make sure the character folder exists, better safe than sorry @@ -269,7 +270,7 @@ class AOCharMovie(QtGui.QLabel): gif_path = original_path self.use_pillow = 0 else: - if ini.read_ini_bool(AOpath+"AO2XP.ini", "General", "download characters"): + if ini.read_ini_bool("AO2XP.ini", "General", "download characters"): url = "base/characters/"+p_char.lower()+"/"+emote_prefix+p_emote.lower()+".gif" url = url.replace(" ", "%20") if not exists(AOpath+"characters/"+p_char): # gotta make sure the character folder exists, better safe than sorry @@ -280,7 +281,7 @@ class AOCharMovie(QtGui.QLabel): gif_path = alt_path self.use_pillow = 0 else: - if ini.read_ini_bool(AOpath+"AO2XP.ini", "General", "download characters"): + if ini.read_ini_bool("AO2XP.ini", "General", "download characters"): url = "base/characters/"+p_char.lower()+"/"+emote_prefix+p_emote.lower()+".png" url = url.replace(" ", "%20") if not exists(AOpath+"characters/"+p_char): # gotta make sure the character folder exists, better safe than sorry @@ -463,11 +464,11 @@ class AOMovie(QtGui.QLabel): if not exists(gif_path): pathlist = [ - get_img_suffix("base/misc/default/"+p_image+"_bubble"), - get_img_suffix("base/characters/"+p_char+"/"+p_image), - get_img_suffix("base/misc/default/"+p_image), - get_img_suffix("base/themes/default/"+p_image), - "base/themes/default/placeholder.gif" + get_img_suffix(AO2XPpath+"themes/default/"+p_image+"_bubble"), + get_img_suffix(AOpath+"characters/"+p_char+"/"+p_image), + get_img_suffix(AOpath+"misc/default/"+p_image), + get_img_suffix(AO2XPpath+"themes/default/"+p_image), + AO2XPpath+"themes/default/placeholder.gif" ] for f in pathlist: @@ -553,9 +554,9 @@ class ZoomLines(QtGui.QLabel): return self.show() if dir == 0: - self.movie.setFileName(AOpath + 'themes/default/defense_speedlines.gif') + self.movie.setFileName(AO2XPpath + 'themes/default/defense_speedlines.gif') else: - self.movie.setFileName(AOpath + 'themes/default/prosecution_speedlines.gif') + self.movie.setFileName(AO2XPpath + 'themes/default/prosecution_speedlines.gif') self.movie.start() @@ -586,14 +587,14 @@ class WTCE_View(QtGui.QLabel): def showWTCE(self, wtce, variant=0): self.finished() if wtce == 'testimony1': - self.movie.setFileName(AOpath + 'themes/default/witnesstestimony.gif') + self.movie.setFileName(AO2XPpath + 'themes/default/witnesstestimony.gif') elif wtce == 'testimony2': - self.movie.setFileName(AOpath + 'themes/default/crossexamination.gif') + self.movie.setFileName(AO2XPpath + 'themes/default/crossexamination.gif') elif wtce == "judgeruling": if variant == 0: - self.movie.setFileName(AOpath + 'themes/default/notguilty.gif') + self.movie.setFileName(AO2XPpath + 'themes/default/notguilty.gif') elif variant == 1: - self.movie.setFileName(AOpath + 'themes/default/guilty.gif') + self.movie.setFileName(AO2XPpath + 'themes/default/guilty.gif') else: return self.show() @@ -661,10 +662,9 @@ class gui(QtGui.QWidget): wtcefile = AOpath+"sounds/general/sfx-testimony2" guiltyfile = AOpath+"sounds/general/sfx-guilty" - notguiltyfile = AOpath+"sounds/general/sfx-notguilty" self.wtcesfx = BASS_StreamCreateFile(False, wtcefile+".opus" if exists(wtcefile+".opus") else wtcefile+".wav", 0, 0, 0) self.guiltysfx = BASS_StreamCreateFile(False, guiltyfile+".opus" if exists(guiltyfile+".opus") else guiltyfile+".wav", 0, 0, 0) - self.notguiltysfx = BASS_StreamCreateFile(False, notguiltyfile+".opus" if exists(notguiltyfile+".opus") else notguiltyfile+".wav", 0, 0, 0) + self.notguiltysfx = BASS_StreamCreateFile(False, "sfx-notguilty.wav", 0, 0, 0) self.healthbars.connect(self.netmsg_hp) self.disconnectnow = False @@ -691,7 +691,7 @@ class gui(QtGui.QWidget): self.effectview = AOMovie(self.viewport) self.chatbox = QtGui.QLabel(self.viewport) - chatbox = QtGui.QPixmap(AOpath + 'themes/default/chatmed.png') + chatbox = QtGui.QPixmap(AO2XPpath + 'themes/default/chatmed.png') self.chatboxheight = chatbox.size().height() self.chatbox.setPixmap(chatbox) self.chatbox.move(0, 192 - self.chatboxheight) @@ -724,7 +724,7 @@ class gui(QtGui.QWidget): self.objectionview.done.connect(self.objection_done) self.whiteflashlab = QtGui.QLabel(self.viewport) - self.whiteflashlab.setPixmap(QtGui.QPixmap(AOpath + 'themes/default/realizationflash.png')) + self.whiteflashlab.setPixmap(QtGui.QPixmap(AO2XPpath + 'themes/default/realizationflash.png')) self.whiteflashlab.setGeometry(0, 0, 256, 192) self.whiteflashlab.hide() self.whiteflash = QtCore.QTimer() @@ -1126,8 +1126,8 @@ class gui(QtGui.QWidget): if exists(AOpath + 'evidence/' + image): guiobj.setPixmap(QtGui.QPixmap(AOpath + "evidence/%s" % image)) else: - guiobj.setPixmap(QtGui.QPixmap(AOpath + 'themes/default/evidence_selected.png')) - if ini.read_ini_bool(AOpath+"AO2XP.ini", "General", "download evidence"): + guiobj.setPixmap(QtGui.QPixmap(AO2XPpath + 'themes/default/evidence_selected.png')) + if ini.read_ini_bool("AO2XP.ini", "General", "download evidence"): url = "base/evidence/"+image.lower() url = url.replace("evidence/../", "") path = AOpath+"evidence/"+image @@ -1227,7 +1227,7 @@ class gui(QtGui.QWidget): self.tcp.send("RT#judgeruling#" +str(variant)+ "#%") def loadCharacter(self, charname): - exec open("base/ao2xp_themes/"+get_option("General", "theme", "default")+"/theme.py") + exec open(AO2XPpath+"ao2xp_themes/"+get_option("General", "theme", "default")+"/theme.py") self.effectdropdown.clear() self.emotedropdown.clear() @@ -1563,7 +1563,7 @@ class gui(QtGui.QWidget): packet = "" for f_emote in emotes_to_check: packet += f_emote - if ini.read_ini_bool(AOpath+"AO2XP.ini", "General", "network frame effects"): + if ini.read_ini_bool("AO2XP.ini", "General", "network frame effects"): sfx_frames = "|".join(ini.read_ini_tags(AOpath+"characters/"+self.charname+"/char.ini", f_emote + f_effect)) if sfx_frames: packet += "|" + sfx_frames @@ -2041,6 +2041,7 @@ class gui(QtGui.QWidget): self.effectview.set_play_once(False) self.effectview.play(effect) + print "effect", repr(effect) def start_chat_ticking(self): if self.text_state != 0: @@ -2287,12 +2288,16 @@ class gui(QtGui.QWidget): self.objectsnd = BASS_StreamCreateFile(False, AOpath + 'characters/' + charname + '/' + objecting + '.opus', 0, 0, 0) else: self.objectsnd = None - if ini.read_ini_bool(AOpath+"AO2XP.ini", "General", "download sounds"): + if ini.read_ini_bool("AO2XP.ini", "General", "download sounds"): if not exists(AOpath+"characters/"+charname.lower()): # gotta make sure the character folder exists, better safe than sorry os.mkdir(AOpath+"characters/"+charname.lower()) thread.start_new_thread(download_thread, ("base/characters/"+charname.lower()+"/"+objecting.lower()+".wav", AOpath+"characters/"+charname.lower()+"/"+objecting.lower()+".wav")) + thread.start_new_thread(download_thread, ("base/characters/"+charname.lower()+"/"+objecting.lower()+".opus", AOpath+"characters/"+charname.lower()+"/"+objecting.lower()+".wav")) - self.objectsnd = BASS_StreamCreateFile(False, AOpath + 'sounds/general/sfx-objection.wav', 0, 0, 0) + if exists(AOpath + 'sounds/general/sfx-objection.opus'): + self.objectsnd = BASS_StreamCreateFile(False, AOpath + 'sounds/general/sfx-objection.opus', 0, 0, 0) + else: + self.objectsnd = BASS_StreamCreateFile(False, AOpath + 'sounds/general/sfx-objection.wav', 0, 0, 0) BASS_ChannelSetAttribute(self.objectsnd, BASS_ATTRIB_VOL, self.soundslider.value() / 100.0) BASS_ChannelPlay(self.objectsnd, True) @@ -2333,15 +2338,11 @@ class gui(QtGui.QWidget): BASS_ChannelSetAttribute(self.music, BASS_ATTRIB_VOL, self.musicslider.value() / 100.0) BASS_ChannelPlay(self.music, True) - elif ini.read_ini_bool(AOpath+"AO2XP.ini", "General", "download music"): - self.music = BASS_StreamCreateURL('http://s3.wasabisys.com/webao/base/sounds/music/' + mus.lower() if not mus.lower().startswith("http") else mus, 0, BASS_STREAM_BLOCK, DOWNLOADPROC(), 0) + elif ini.read_ini_bool("AO2XP.ini", "General", "download music"): + self.music = BASS_StreamCreateURL(buckets[0]+'base/sounds/music/' + mus.lower() if not mus.lower().startswith("http") else mus, 0, BASS_STREAM_BLOCK, DOWNLOADPROC(), 0) if self.music: BASS_ChannelSetAttribute(self.music, BASS_ATTRIB_VOL, self.musicslider.value() / 100.0) BASS_ChannelPlay(self.music, True) - else: - self.music = BASS_StreamCreateURL('http://s3.wasabisys.com/aov-webao/base/sounds/music/' + mus.lower() if not mus.lower().startswith("http") else mus, 0, BASS_STREAM_BLOCK, DOWNLOADPROC(), 0) - BASS_ChannelSetAttribute(self.music, BASS_ATTRIB_VOL, self.musicslider.value() / 100.0) - BASS_ChannelPlay(self.music, True) def stopMusic(self): if self.music: @@ -2363,8 +2364,8 @@ class gui(QtGui.QWidget): self.charselect.setCharList(charlist) self.charselect.show() - self.oocnameinput.setText(ini.read_ini(AOpath+"AO2XP.ini", "General", "OOC name")) - self.shownameedit.setText(ini.read_ini(AOpath+"AO2XP.ini", "General", "Showname")) + self.oocnameinput.setText(ini.read_ini("AO2XP.ini", "General", "OOC name")) + self.shownameedit.setText(ini.read_ini("AO2XP.ini", "General", "Showname")) self.pairdropdown.clear() self.paircheckbox.setChecked(False) @@ -2522,8 +2523,8 @@ class PresentButton(QtGui.QLabel): def __init__(self, gamegui, parent): super(PresentButton, self).__init__(parent) self.gamegui = gamegui - self.button_off = QtGui.QPixmap(AOpath + 'themes/default/present_disabled.png') - self.button_on = QtGui.QPixmap(AOpath + 'themes/default/present.png') + self.button_off = QtGui.QPixmap(AO2XPpath + 'themes/default/present_disabled.png') + self.button_on = QtGui.QPixmap(AO2XPpath + 'themes/default/present.png') self.setPixmap(self.button_off) self.show() @@ -2590,7 +2591,7 @@ class EditEvidenceDialog(QtGui.QDialog): if exists(AOpath + 'evidence/' + self.filename): self.evipicture.setPixmap(QtGui.QPixmap(AOpath + 'evidence/' + self.filename)) else: - self.evipicture.setPixmap(QtGui.QPixmap(AOpath + 'themes/default/evidence_selected.png')) + self.evipicture.setPixmap(QtGui.QPixmap(AO2XPpath + 'themes/default/evidence_selected.png')) def onSave(self): name = self.eviname.text().toUtf8() @@ -2674,7 +2675,7 @@ class BackEmoteButton(QtGui.QLabel): super(BackEmoteButton, self).__init__(gamewindow) self.gamewindow = gamewindow self.move(x, y) - self.setPixmap(QtGui.QPixmap(AOpath + 'themes/default/arrow_left.png')) + self.setPixmap(QtGui.QPixmap(AO2XPpath + 'themes/default/arrow_left.png')) self.show() def mousePressEvent(self, event): @@ -2688,7 +2689,7 @@ class NextEmoteButton(QtGui.QLabel): super(NextEmoteButton, self).__init__(gamewindow) self.gamewindow = gamewindow self.move(x, y) - self.setPixmap(QtGui.QPixmap(AOpath + 'themes/default/arrow_right.png')) + self.setPixmap(QtGui.QPixmap(AO2XPpath + 'themes/default/arrow_right.png')) self.show() def mousePressEvent(self, event): diff --git a/ini.py b/ini.py index 7fc005a..52d86c9 100644 --- a/ini.py +++ b/ini.py @@ -98,7 +98,7 @@ def read_ini_tags(file, target_tag): def get_effect_sound(fx_name, char): p_effect = read_ini("base/characters/"+char+"/char.ini", "options", "effects") p_path = "base/misc/"+p_effect+"/effects.ini" - default_path = "base/themes/default/effects/effects.ini" + default_path = "AO2XPbase/themes/default/effects/effects.ini" if exists(p_path): return read_sectionless_ini(p_path, fx_name) @@ -123,7 +123,7 @@ def get_effect(effect, char, folder): p_effect = folder if not p_effect: p_effect = read_ini("base/characters/"+char+"/char.ini", "options", "effects") p_path = get_img_suffix("base/misc/"+p_effect+"/"+effect) - default_path = get_img_suffix("base/themes/default/effects/"+effect) + default_path = get_img_suffix("AO2XPbase/themes/default/effects/"+effect) if not exists(p_path): return default_path diff --git a/mainmenu.py b/mainmenu.py index 8d9ab65..962da65 100644 --- a/mainmenu.py +++ b/mainmenu.py @@ -4,6 +4,7 @@ import socket, thread, time, random, traceback, hardware from os.path import exists AOpath = "base/" +AO2XPpath = "AO2XPbase/" #AOpath = "I:/aovanilla1.7.5/client/base/" class PicButton(QtGui.QAbstractButton): @@ -30,19 +31,19 @@ class lobby(QtGui.QWidget): self.can_connect = False self.svclicked = None self.gamewindow = parent - self.pix_lobby = QtGui.QPixmap(AOpath+'themes/default/lobbybackground.png') - self.pix_btn_public = QtGui.QPixmap(AOpath+'themes/default/publicservers.png') - self.pix_btn_favs = QtGui.QPixmap(AOpath+'themes/default/favorites.png') - self.pix_btn_refresh = QtGui.QPixmap(AOpath+'themes/default/refresh.png') - self.pix_btn_addfav = QtGui.QPixmap(AOpath+'themes/default/addtofav.png') - self.pix_btn_connect = QtGui.QPixmap(AOpath+'themes/default/connect.png') - self.pix_connecting = QtGui.QPixmap(AOpath+'themes/default/loadingbackground.png') + self.pix_lobby = QtGui.QPixmap(AO2XPpath+'themes/default/lobbybackground.png') + self.pix_btn_public = QtGui.QPixmap(AO2XPpath+'themes/default/publicservers.png') + self.pix_btn_favs = QtGui.QPixmap(AO2XPpath+'themes/default/favorites.png') + self.pix_btn_refresh = QtGui.QPixmap(AO2XPpath+'themes/default/refresh.png') + self.pix_btn_addfav = QtGui.QPixmap(AO2XPpath+'themes/default/addtofav.png') + self.pix_btn_connect = QtGui.QPixmap(AO2XPpath+'themes/default/connect.png') + self.pix_connecting = QtGui.QPixmap(AO2XPpath+'themes/default/loadingbackground.png') if exists(AOpath+'serverlist.txt'): with open(AOpath+'serverlist.txt') as file: self.favoriteslist = [line.rstrip().split(':') for line in file] else: - self.favoriteslist = ['127.0.0.1:27017:your server (port 27017)'.split(':'), '0.0.0.0:27017:serverlist.txt not found on base folder'.split(':')] + self.favoriteslist = ['127.0.0.1:27017:your server (port 27017)'.split(':'), '127.0.0.1:27016:your server (port 27016)'.split(':'),] self.lobbyimg = QtGui.QLabel(self) self.lobbyimg.setPixmap(self.pix_lobby) diff --git a/options.py b/options.py index fa3a88b..354abbf 100644 --- a/options.py +++ b/options.py @@ -6,6 +6,7 @@ from os import listdir import ini AOpath = "base/" +AO2XPpath = "AO2XPbase/" #AOpath = "I:\\aovanilla1.7.5\\client\\base\\" class Settings(QtGui.QDialog): @@ -84,12 +85,12 @@ class Settings(QtGui.QDialog): currtheme_layout = QtGui.QHBoxLayout() currtheme_label = QtGui.QLabel("Current theme") self.currtheme = QtGui.QComboBox() - self.themes = listdir(AOpath+"ao2xp_themes") + self.themes = listdir(AO2XPpath+"ao2xp_themes") for theme in self.themes: - if exists(AOpath+"ao2xp_themes/"+theme+"/theme.py"): - self.currtheme.addItem(theme) - currtheme_layout.addWidget(currtheme_label) - currtheme_layout.addWidget(self.currtheme) + if exists(AO2XPpath+"ao2xp_themes/"+theme+"/theme.py"): + self.currtheme.addItem(theme) + currtheme_layout.addWidget(currtheme_label) + currtheme_layout.addWidget(self.currtheme) savechangeswarn = QtGui.QLabel() savechangeswarn.setText("* Change takes effect upon restarting the client") @@ -143,8 +144,8 @@ class Settings(QtGui.QDialog): main_layout.addLayout(save_layout) def showSettings(self): - if exists(AOpath+"AO2XP.ini"): - self.inifile.read(AOpath+"AO2XP.ini") + if exists("AO2XP.ini"): + self.inifile.read("AO2XP.ini") self.savetolog.setChecked(ini.read_ini_bool(self.inifile, "General", "save logs")) self.savetolog_combine.setChecked(ini.read_ini_bool(self.inifile, "General", "combined logs")) try: @@ -173,8 +174,8 @@ class Settings(QtGui.QDialog): self.device_list.setCurrentIndex(BASS_GetDevice()) self.callwords_edit.clear() - if exists(AOpath+"callwords.ini"): - with open(AOpath+"callwords.ini") as f: + if exists(AO2XPpath+"callwords.ini"): + with open(AO2XPpath+"callwords.ini") as f: for line in f: self.callwords_edit.append(line.rstrip().decode("utf-8")) @@ -200,7 +201,7 @@ class Settings(QtGui.QDialog): self.inifile.set("General", "download evidence", self.allowdownload_evidence.isChecked()) self.inifile.set("General", "theme", self.currtheme.currentText()) self.inifile.set("Audio", "device", self.device_list.currentIndex()) - self.inifile.write(open(AOpath+"AO2XP.ini", "w")) + self.inifile.write(open("AO2XP.ini", "w")) with open(AOpath+"callwords.ini", "w") as f: f.write(self.callwords_edit.toPlainText().toUtf8())