From e2b99a027086e24da67206ae16f1d692bbeb5f1c Mon Sep 17 00:00:00 2001 From: Firepup Sixfifty Date: Sat, 27 Apr 2024 16:00:01 -0500 Subject: [PATCH] Lots of changes, almost exactly how I want it now --- .gitignore | 5 +- audio/beep.wav | Bin 0 -> 5920 bytes audio/correctpass.wav | Bin 0 -> 2814 bytes audio/keyenter.wav | Bin 0 -> 12960 bytes audio/poweroff.wav | Bin 0 -> 78232 bytes audio/poweron.wav | Bin 0 -> 52190 bytes audio/wrongpass.wav | Bin 0 -> 3352 bytes fallout.py | 81 ++++++++++++++++++++--- fallout_boot.py | 8 +-- fallout_data.py | 147 ++++++++++++++++++++++++++++++++++++++++++ fallout_functions.py | 97 +++++++++++++++++++++++++++- fallout_hack.py | 10 +-- fallout_login.py | 4 +- fallout_selection.py | 55 ++++++---------- fallout_things.py | 0 play-test.py | 33 ++++++++++ 16 files changed, 383 insertions(+), 57 deletions(-) create mode 100644 audio/beep.wav create mode 100644 audio/correctpass.wav create mode 100644 audio/keyenter.wav create mode 100644 audio/poweroff.wav create mode 100644 audio/poweron.wav create mode 100644 audio/wrongpass.wav create mode 100644 fallout_data.py create mode 100644 fallout_things.py create mode 100644 play-test.py diff --git a/.gitignore b/.gitignore index 7e99e36..60d0160 100644 --- a/.gitignore +++ b/.gitignore @@ -1 +1,4 @@ -*.pyc \ No newline at end of file +*.pyc +original** +test** +__pycache__** diff --git a/audio/beep.wav b/audio/beep.wav new file mode 100644 index 0000000000000000000000000000000000000000..4e57d7583e802671427c8f7da64f66b824231d27 GIT binary patch literal 5920 zcmeIx`A<}L5CHJ++kMME?rVkZaxIm!t)K-3>J}{u3SDW?zyhHWl(b+4QvGI@H0OUksfCbDzd|XPL%1Sr*HxQx`g-Bh6h^3q3Ko3{} zXW#`QKo-acRiFzrfod=eT0seT0SZAl$OaJoj3&_=Xb`TzbC3h=U?&|#7trZ+0{je? zz%&>MYoQs6L_H`PP~c5WjJ03{s}H-+>SB+u3-LZq4#$Jj$`RqEtS#0PfFnmRN7vIr z#HF=V32j4qYyQ}q+6ho4sf6lsmF><6&3SE$Hk*>th4eGp0m#^&b3(WhqcM{lW3_3l zh19gnEPNkrX>7^mhgpOe|7p6$?xsFM$;#EuVU=QScJ1s|+wz@x>EhCC&B);J{OGfR z{6U}Tsm0#)YnmDM18xz=M1RmM$XviHdE3OF@82xG8EGLdJhdnG^GkP6^;)%kVRFyj z2A@L3M(Rz^mCcQbp`54A-FCkX%3l6T)CD}0H>CCuoyMIh{SIS>6V>xyYGsCt=5o9J zhu-qcb$=?-p2|NK8+In~_Jzv$tgA}NmE#qG5jO2eVbZf&v-mM(^4doJ%eKdmqJ6ew zMJCGKC=eD!WtNrJHLP@$_xmr^Y|by=U!oQB=rZdFZ`98{_^$Y7yy8-;q%WHIbS^wF zwCv*b56_F*&zL)Z%ZqV%q$pcR*i`o&?veJTJua`#Y;2YVf7ejeEEC_&yXRVuH(Phl zPKmZ(Ys}z;L58KsxY+!}J2F4}_g_UUB+#*vi+^3Z5jNw0EYRL{KQGy-iRk5)TE&s4 z>0LBB7djF@P~WJm*?62*8&zG~ChSdl-Zoq`^K!al5}zwyy`mIol!R39l`U}m#shlF z-CW;oIqKpg^UF9H>yzX$aEL3orrTIWs`k2I@m9UcZKqByTI4TfO^gpljeapO(We+a z^7rl8ak;nRcXi~>qupDih^iuQVJ?Q1reE`L`yHX9z0^VM_)zfN+Sew-veHz_b26yY zFEUI7i68*ksmGN+Zu>5;$`e;43l58Js|Q!=mlbPhBV^;fEvZtt>!Z0t#bE+`jGe8w zZeVW|WV~&0)ymJxi+?~s>?<`NG7r`_&`af}gDUJY>l~~B9>|r<(mvR8R$W)dC@*Y} zY!9fi)zdpSG=?OP#K>aOi^`>vX&2DR65t2*DhP^*CSvrv^ec!af@{#hJ<2WT3h+Gk zY4#7u1^A-F^b@*~+S7)Tty+PmK+~^L?Kx>&v;o>l?GQ;)dGvAE1vAn2s1;>_GR&RD zXG?K{^9r}%sCAczvAx+tSQXZe)c`|m66~UMP>*~Of_0FlgP{N(fH81Fm%b<**@AWS p-~Th65nu!u0Y-okU<4QeMt~7u1Q-EEfDvE>7y(9r5%~WI`~xvO7xw@F literal 0 HcmV?d00001 diff --git a/audio/correctpass.wav b/audio/correctpass.wav new file mode 100644 index 0000000000000000000000000000000000000000..999f4402ae056529e19fff43fbbfa95bf1522920 GIT binary patch literal 2814 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 H4FLZGto$d% literal 0 HcmV?d00001 diff --git a/audio/keyenter.wav b/audio/keyenter.wav new file mode 100644 index 0000000000000000000000000000000000000000..3e11d7ab5d50c643833bfac91588b7ea65731dd3 GIT binary patch literal 12960 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 literal 0 HcmV?d00001 diff --git a/audio/poweroff.wav b/audio/poweroff.wav new file mode 100644 index 0000000000000000000000000000000000000000..3a005a05e4ee9248c27ea6a3f97b44f70be54df9 GIT binary patch literal 78232 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 ZY0M(r-}dwG64uM+{QrjkvN@NQ{udq+kk0@B literal 0 HcmV?d00001 diff --git a/audio/poweron.wav b/audio/poweron.wav new file mode 100644 index 0000000000000000000000000000000000000000..e9c2360fdd03ad54ee87e019aca47700653cf2ef GIT binary patch literal 52190 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 literal 0 HcmV?d00001 diff --git a/audio/wrongpass.wav b/audio/wrongpass.wav new file mode 100644 index 0000000000000000000000000000000000000000..3a85b47f0152e1db3a9f0fb12c343b134dd52c52 GIT binary patch literal 3352 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') curses.napms(INPUT_PAUSE) - slowWrite(scr, ENTRY_1 + '\n', TYPE_DELAY) + slowWrite(scr, ENTRY_1 + '\n', TYPE_DELAY, True) slowWrite(scr, '\n' + MESSAGE_2 + '\n\n') @@ -73,10 +73,10 @@ def runBoot(scr, hardMode): else: slowWrite(scr, '>') curses.napms(INPUT_PAUSE) - slowWrite(scr, ENTRY_2 + '\n', TYPE_DELAY) + slowWrite(scr, ENTRY_2 + '\n', TYPE_DELAY, True) slowWrite(scr, '>') curses.napms(INPUT_PAUSE) - slowWrite(scr, ENTRY_3 + '\n', TYPE_DELAY) + slowWrite(scr, ENTRY_3 + '\n', TYPE_DELAY, True) slowWrite(scr, '\n' + MESSAGE_3 + '\n\n') @@ -88,7 +88,7 @@ def runBoot(scr, hardMode): else: slowWrite(scr, '>') curses.napms(INPUT_PAUSE) - slowWrite(scr, ENTRY_4 + '\n', TYPE_DELAY) + slowWrite(scr, ENTRY_4 + '\n', TYPE_DELAY, True) curses.napms(INPUT_PAUSE) return True diff --git a/fallout_data.py b/fallout_data.py new file mode 100644 index 0000000..c2f1068 --- /dev/null +++ b/fallout_data.py @@ -0,0 +1,147 @@ +####################### text strings ######################## + +ROBCO_HEADERS = ( + 'ROBCO INDUSTRIES UNIFIED OPERATING SYSTEM', + 'COPYRIGHT 2075-2077 ROBCO INDUSTRIES', + '-SERVER 6-', + '' +) + +TURRET_HEADERS = ( + '-RobCo Trespasser Management System-', + '====================================', + '' +) + +TURRET_HEADERS2 = ( + 'RobcOS v.85', + '(C)2076 RobCo', + '========================', + '| User Log:', + '| >> Administrator (RobCoID 2398-H)', + '| >> New_Admin: FIRE PUP', + '| Welcome new user, FIRE PUP', + '| >> New_Targeting_Param:', + '| >>> FIRE PUP_userGroup', + '' +) + +SOFT_HEADERS = ( + '\tSoftLock Solutions, Inc', + '"Your Security is Our Security"', + '>\\ Welcome, USER', + '' +) + +MAIN_MENU = ( + 'Lock Control', + 'Turret Control', + 'Read Log', + 'Logoff Terminal' +) + +LOCK_MENU = { + 'LOCKED': ["Disengage Lock", "Engage Lock"], + 'RETURN': ["Return"] +} + + +TURRET_MENU = { + 'TARGETING': ["Re-configure Targeting Parameters", "WARNING: No Targeting Data"], + 'ENABLED': ["Deactivate Turret System", "Activate Turret System"], + 'RETURN': ["Return"] +} + +TURRET_MSGS = { + 'TARGETING': ['Target Data Cleared. Exercise Caution.', 'Please Exercise Caution'], + 'ENABLED': ['Powering Down...', 'Booting...'], + 'RETURN': [''] +} + +LOCK_MSGS = { + 'LOCKED': ['Clearance granted, Unlocking...', 'Clearance granted, Locking...'], + 'RETURN': [''] +} + +TURRET_CONDS = { + 'TARGETING': 0, + 'ENABLED': 0, + 'RETURN': 0 +} + +LOCK_CONDS = { + 'LOCKED': 0, + 'RETURN': 0 +} + +LOGS = { + 'Megaton - Afterword': """USER: MOIRA BROWN +PASS: *********** + +Date: 09.10.2297 + +Welcome, MOIRA. It is another lovely day for science! + +DAILY LOG: + +Experiment Reports: +Irradiated Agriculture—Good response from mutfruit, strangely aggressive response to baseline sample. Purified water very helpful. +Deathclaw Communication—No language that I can discern, unless "Mutilating assistants" counts. What would they have to say, anyway? +Jefferson Purifier - Guards still refuse to allow access to see how the Purifier works. They say it's to prevent sabotage, but I think they aren't entirely certain. + +Personal Note: +Just shipped out another crate of survival guides, and the caravans just can't seem to get enough of them. Sheriff Simms says they've really put Megaton on the map—pretty ironic, since I've had to redraw that map about a million times since the first edition came out 20 years ago. At least all the attention means there's no shortage of assistants, but I'm never getting another assistant like the Lone Wanderer who stumbled into my shop so long ago. + +Just about everyone in the Capital Wasteland has a story about the Lone Wanderer, even though precious few ever really knew him. But that doesn't stop them from telling crazy tall tales about how he saved their lives, or blew up a mountain, or ate a car or something. Heck, if you get Simms drunk, he'll tell you that his dad died because of the Wanderer, even though he saved the town. People can't even agree on whether the Wanderer was a man or a woman, much less a saint or a monster. But they all agree on one thing: the Lone Wanderer changed the Capital Wasteland. + +Of course, that's why I'm working on the new book, compiling the best and most useful tales of the Lone Wanderer for the next generation. It's not easy sorting out all the conflicting stories, but that'll be half of the fun for the readers. More importantly, between all of those crazy stories of bravery, barbarity, and everything in-between, we can all find a reason to keep on fighting our war for survival. + +I guess some things never change, huh?""", + 'ERR - Ikkm00:Mvkz6x1ml:Nqtm': "[ERROR HX40-399: invalid decry.key]", + 'Nuka Cola - Quantum Progress Report 0041': """Isotope CE770 has proven to be a disastrous failure. All of the test subjects suffered severe internal organ failures and died within three days of ingestion. We recommend the immediate destruction of container A32 in the production rooms and suggest switching to isotope CE772. Please send standard "Nuka Condolences" Fruit and Cheese Packages to test group member's families.""", + 'Nuka Cola - Quantum Progress Report 0055': "Isotope CE772 has proven too damaging to the initial test group which now needs to be disbanded due to their reluctance to continue in our program. This group has suffered 4 fatalities, 12 major internal organ failures and 32 internal radiation burns. This is an unacceptable number of issues in a given test group and recommend we switch to an alternate isotope (such as CE774 or UR993).", + 'Nuka Cola - Quantum Progress Report 0067': "Test subjects in the Nuka-Cola Quantum program are responding well to the reconfigured taste and the new isotope. The only listed side effects from the group are: 3 cases of dizziness, 1 case of nausea and 1 case of impaired vision. We find from a sampling of 50 that this is an acceptable number of cases and approve this product for production.", + 'Nuka Cola - Company Announcement': "The Nuka-Cola Corporation is pleased to announce to all it's employees that the first shipments of our Nuka-Cola Quantum® are on their way to retailers in the Washington D.C. area! This flagship test market program is the culmination of a three year research program to bring the refreshing taste of Quantum to market. Congratulations to all employees on a job well done!", + 'Nuka Cola - New Flavor Coming!': """Attention all Nuka-Cola Corporation Employees + +We are very proud to announce that R&D has been completed on Nuka-Cola Clear! With an only minimal loss of life, we've been able to modify the look of Nuka-Cola but give it the same great taste. We will be submitting the product to Marketing shortly for bottle design and advertising strategies. From all of us in the Research Department, thanks for the support!""", + 'Nuka Cola - From: Marketing': """The following locations have been accepted into the flagship Nuka-Cola Quantum test program. Please ensure that 1 (one) crate of Quantum is included with their regular deliveries along with the advertising package provided by our Marketing Department. + +1. Paradise Falls Shopping Mart +2. Super Duper Mart +3. Old Olney Grocery""", + 'Nuka Cola - Packing Line Instructions': """Welcome to the Nuka-Cola Packing Line Operator's Station! You are now instrumental in getting Nuka-Cola from our factory and to the public, so please read the simple instructions below. If you need assistance, please call x347 and ask for your Line Supervisor. + +1. Access the Packing Terminal and choose desired inventory to load into Sorting Units. +2. Select "Activate Packing Line." +3. Monitor the Packing Line by listening for things such as mechanical screeching, explosions and/or human cries for help. +4. If there is an emergency, DO NOT PANIC! Simply call x347 and ask for your Line Supervisor. The Packing Line will automatically shut down in the event of an issue. + +Remember, only you can prevent inventory loss by being attentive and vigilant!""", + 'Nuka Cola - Packing Line Notice': """Attention all Packing Line employees! + +Due to an oversight by the design department, the new Nuka-Cola Quantum bottles are slightly heavier than the standard Nuka-Cola bottles. As a result, the Packing Line is prone to jams and may cause damage to the equipment. Please DO NOT load Nuka-Cola Quantum bottles into the Sorting Units until further notice. All test samples of Quantum will be packaged by hand until a solution is reached.""", + 'Nuka Cola - Stage One': """Stage One of the Nuka-Cola Quantum marketing will include: 2 (two) 15 (fifteen)-second television commercials, 4 (four) 10 (ten)-second radio commercials and a highway billboard campaign. + +The spots on TV and radio will tease the consumer with the blue glow of the new drink, never showing the bottle in an illuminated environment. The billboard will show the bottle's blue silhouette on a black background. + +The tag line will be "Try something new... Go Blue!". The name will not be revealed until Stage Two.""", + 'Nuka Cola - Stage Two': """Stage Two of the Nuka-Cola Quantum marketing will include: 2 (two) 30 (thirty)-second television commercials, 4 (four) 15 (fifteen)-second radio commercials and a highway billboard campaign. + +In this stage, the name "Quantum" will be revealed and the bottle shown in full view. We will emphasize the drink's new energy content and flavor. + +The tag line will be "Take the leap... enjoy a Quantum!" """, + 'Nuka Cola - Stage Three': """Stage Three of the Nuka-Cola Quantum marketing will include: 4 (four) 30 (thirty)-second television commercials, 4 (four) 15 (fifteen)-second radio commercials and a highway billboard campaign. + +In this final stage we will aggressively compare the drink to other competitors and show their inferiority using hired actors at "taste tests". The actors will read pre-written scripts approved by our department. The text should give an authentic "on the spot" impression but still clearly point out Quantum's strengths. + +The tag line will remain: "Take the leap... enjoy a Quantum!" """, + + + + +} + +LOG_NAMES = list(LOGS.keys()) +LOG_NAMES.extend(["Return"]) +LOG_RET_ID = len(LOG_NAMES) - 1 diff --git a/fallout_functions.py b/fallout_functions.py index 0e86be2..e65856c 100644 --- a/fallout_functions.py +++ b/fallout_functions.py @@ -1,6 +1,11 @@ import curses import time import sys +from pathlib import Path as _Path +from playsound import playsound as _play +from threading import Thread +from time import sleep + LETTER_PAUSE = 5 @@ -12,16 +17,29 @@ HIDDEN_MASK = '*' NEWLINE = 10 -DELETE = 127 +DELETE = 330 -def slowWrite(window, text, pause = LETTER_PAUSE): +BACKSPACE = 263 + +_playing = False + +_soundQueue = [] + +global _queueRunning +_queueRunning = False + +def slowWrite(window, text, pause = LETTER_PAUSE, fake_user = False): """ wrapper for curses.addstr() which writes the text slowely """ + if not fake_user: + addSound("beep") for i in range(len(text)): window.addstr(text[i]) window.refresh() curses.napms(pause) + if fake_user: + _playSound("keyenter", True) def upperInput(window, hidden = False, can_newline = True): """ @@ -39,8 +57,9 @@ def upperInput(window, hidden = False, can_newline = True): if inchar > 96 and inchar < 123: inchar -= 32 # deal with backspace - if inchar == DELETE: + if inchar in [DELETE, BACKSPACE]: if len(instr) > 0: + #addSound("keyenter") instr = instr[:-1] cur = window.getyx() window.move(cur[0], cur[1] - 1) @@ -51,12 +70,14 @@ def upperInput(window, hidden = False, can_newline = True): continue # output the character elif inchar != NEWLINE: + #addSound("keyenter") instr += chr(inchar) if hidden: window.addch(HIDDEN_MASK) else: window.addch(inchar) elif can_newline: + #addSound("keyenter") window.addch(NEWLINE) return instr @@ -67,3 +88,73 @@ def centeredWrite(window, text, pause = LETTER_PAUSE): width = window.getmaxyx()[1] window.move(window.getyx()[0], int(width / 2 - len(text) / 2)) slowWrite(window, text, pause) + + +def _soundCheck(): + """ + Internal use - Checks if the user explicity disabled sound or not + """ + return '--no-sound' not in sys.argv + + +def _playSound(file, block = False): + """ + Internal use - plays a specific sound from the current directory + """ + if _soundCheck(): + _play(str(_Path.cwd() / f'audio/{file}.wav'), block) + + +def _playQueue(): + """ + Internal use - play sounds from a queue + """ + global _queueRunning + global _soundQueue + if _queueRunning: + return + _queueRunning = True + while 1: + if len(_soundQueue) > 0: + _playSound(_soundQueue[0], True) + _soundQueue.pop(0) + else: + sleep(0.02) + + +def isQueueEmpty(): + """ + Check if the sound queue is empty + """ + return len(_soundQueue) == 0 + + +def soundTest(): + addSound("beep") + addSound("beep") + addSound("keyenter") + addSound("keyenter") + addSound("wrongpass") + addSound("wrongpass") + addSound("correctpass") + addSound("correctpass") + addSound("poweron") + addSound("poweron") + addSound("poweroff") + addSound("poweroff") + global _soundQueue + while not isQueueEmpty(): + sleep(0.2) + + +def addSound(file): + """ + Add sounds to the queue + """ + global _soundQueue + _soundQueue.extend([file]) + + +_queueMgr = Thread(target=_playQueue) +_queueMgr.daemon = True +_queueMgr.start() diff --git a/fallout_hack.py b/fallout_hack.py index 0ad6e4e..0205ba9 100644 --- a/fallout_hack.py +++ b/fallout_hack.py @@ -2,8 +2,7 @@ import curses import random import time import os -from fallout_functions import slowWrite -from fallout_functions import upperInput +from fallout_functions import slowWrite, upperInput, addSound ################## text strings ###################### @@ -23,7 +22,7 @@ LOGIN_ATTEMPTS = 4 HEADER_LINES = 5 # amount of time to pause after correct password input -LOGIN_PAUSE = 3000 +LOGIN_PAUSE = 3 # starting number for hex generation START_HEX = 0xf650 @@ -212,6 +211,8 @@ def userInput(scr, passwords): # user got password right if guess.upper() == pwd.upper(): + + addSound("correctpass") inputPad.addstr('>Exact match!\n') inputPad.addstr('>Please wait\n') inputPad.addstr('>while system\n') @@ -219,7 +220,7 @@ def userInput(scr, passwords): moveInput(scr, inputPad) - curses.napms(LOGIN_PAUSE) + time.sleep(LOGIN_PAUSE) return pwd # wrong password @@ -233,6 +234,7 @@ def userInput(scr, passwords): except IndexError: pass # user did not enter enough letters + addSound("wrongpass") inputPad.addstr('>Entry denied\n') inputPad.addstr('>' + str(matched) + '/' + str(pwdLen) + ' correct.\n') diff --git a/fallout_login.py b/fallout_login.py index 363d807..721149b 100644 --- a/fallout_login.py +++ b/fallout_login.py @@ -47,7 +47,7 @@ def runLogin(scr, hardMode, username, password): # input is entered for them slowWrite(scr, '> ') curses.napms(INPUT_PAUSE) - slowWrite(scr, ENTRY + username.upper() + '\n', TYPE_DELAY) + slowWrite(scr, ENTRY + username.upper() + '\n', TYPE_DELAY, True) slowWrite(scr, '\n' + PASSWORD_PROMPT + '\n\n') @@ -65,7 +65,7 @@ def runLogin(scr, hardMode, username, password): slowWrite(scr, '> ') curses.napms(INPUT_PAUSE) password_stars = HIDDEN_MASK * len(password) - slowWrite(scr, password_stars + '\n', TYPE_DELAY) + slowWrite(scr, password_stars + '\n', TYPE_DELAY, True) curses.napms(500) diff --git a/fallout_selection.py b/fallout_selection.py index c9596a2..0e26609 100644 --- a/fallout_selection.py +++ b/fallout_selection.py @@ -1,33 +1,10 @@ import curses -from fallout_functions import slowWrite -from fallout_functions import centeredWrite -from fallout_functions import NEWLINE - -####################### text strings ######################## - -CENTERED_HEADERS = ( - 'ROBCO INDUSTRIES UNIFIED OPERATING SYSTEM', - 'COPYRIGHT 2075-2077 ROBCO INDUSTRIES', - '-SERVER 6-', - '' -) - -OTHER_HEADERS = ( - '\tSoftLock Solutions, Inc', - '"Your Security is Our Security"', - '>\\ Welcome, USER', - '' -) - -SELECTIONS = ( - 'Disengage Lock', - 'Deactivate Turrets', - 'Read Log' -) +from time import sleep +from fallout_functions import slowWrite, centeredWrite, NEWLINE, addSound ###################### Functions ############################ -def makeSelection(scr): +def makeSelection(scr, SELECTIONS, MSGS): """ ALlow the user to select an option Returns the line number of the users selection starting at 0 @@ -37,7 +14,7 @@ def makeSelection(scr): selection_count = len(SELECTIONS) selection_start_y = scr.getyx()[0] width = scr.getmaxyx()[1] - + while inchar != NEWLINE: # move to start of selections and hightlight current selection scr.move(selection_start_y, 0) @@ -46,7 +23,7 @@ def makeSelection(scr): whole_line = '> ' + SELECTIONS[line] space = width - len(whole_line) % width whole_line += ' ' * space - + if line == selection: scr.addstr(whole_line, curses.A_REVERSE) else: @@ -59,13 +36,23 @@ def makeSelection(scr): # move up and down if inchar == curses.KEY_UP and selection > 0: selection -= 1 + addSound("keyenter") elif inchar == curses.KEY_DOWN and selection < selection_count - 1: selection += 1 - + addSound("keyenter") + if MSGS and MSGS[selection]: + whole_line = '> ' + MSGS[selection] + space = width - len(whole_line) % width + whole_line += ' ' * space + scr.addstr(' ' * width) + scr.addstr(whole_line) + scr.refresh() + sleep(2) + addSound("keyenter") return selection - -def runSelection(scr): + +def runSelection(scr, CENTERED_HEADERS, OTHER_HEADERS, OPTIONS, MESSAGES): """ Print the selections and allow the user to select one """ @@ -87,11 +74,11 @@ def runSelection(scr): scr.addch(curses.ACS_BSBS) scr.refresh() - return makeSelection(scr) + return makeSelection(scr, OPTIONS, MESSAGES) -def beginSelection(): +def beginSelection(center, other, options, messages = []): """ Initialize curses and start the boot process """ - res = curses.wrapper(runSelection) + res = curses.wrapper(runSelection, center, other, options, messages) return res diff --git a/fallout_things.py b/fallout_things.py new file mode 100644 index 0000000..e69de29 diff --git a/play-test.py b/play-test.py new file mode 100644 index 0000000..34c5d69 --- /dev/null +++ b/play-test.py @@ -0,0 +1,33 @@ +"""PyAudio Example: Play a wave file.""" + +import wave +import sys + +import pyaudio + + +CHUNK = 1024 + +if len(sys.argv) < 2: + print(f'Plays a wave file. Usage: {sys.argv[0]} filename.wav') + sys.exit(-1) + +with wave.open(sys.argv[1], 'rb') as wf: + # Instantiate PyAudio and initialize PortAudio system resources (1) + p = pyaudio.PyAudio() + + # Open stream (2) + stream = p.open(format=p.get_format_from_width(wf.getsampwidth()), + channels=wf.getnchannels(), + rate=wf.getframerate(), + output=True) + + # Play samples from the wave file (3) + while len(data := wf.readframes(CHUNK)): # Requires Python 3.8+ for := + stream.write(data) + + # Close stream (4) + stream.close() + + # Release PortAudio system resources (5) + p.terminate()