Split adjuster into own program
This commit is contained in:
		
							parent
							
								
									fca64f1177
								
							
						
					
					
						commit
						12222d5a4c
					
				
							
								
								
									
										138
									
								
								Adjuster.py
								
								
								
								
							
							
						
						
									
										138
									
								
								Adjuster.py
								
								
								
								
							| 
						 | 
					@ -4,9 +4,11 @@ import os
 | 
				
			||||||
import logging
 | 
					import logging
 | 
				
			||||||
import textwrap
 | 
					import textwrap
 | 
				
			||||||
import sys
 | 
					import sys
 | 
				
			||||||
 | 
					import time
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					from Rom import Sprite, LocalRom, apply_rom_settings
 | 
				
			||||||
 | 
					from Utils import output_path
 | 
				
			||||||
 | 
					
 | 
				
			||||||
from AdjusterMain import adjust
 | 
					 | 
				
			||||||
from Rom import Sprite
 | 
					 | 
				
			||||||
 | 
					
 | 
				
			||||||
class ArgumentDefaultsHelpFormatter(argparse.RawTextHelpFormatter):
 | 
					class ArgumentDefaultsHelpFormatter(argparse.RawTextHelpFormatter):
 | 
				
			||||||
 | 
					
 | 
				
			||||||
| 
						 | 
					@ -51,25 +53,127 @@ def main():
 | 
				
			||||||
    parser.add_argument('--names', default='', type=str)
 | 
					    parser.add_argument('--names', default='', type=str)
 | 
				
			||||||
    args = parser.parse_args()
 | 
					    args = parser.parse_args()
 | 
				
			||||||
 | 
					
 | 
				
			||||||
    # ToDo: Validate files further than mere existance
 | 
					 | 
				
			||||||
    if not os.path.isfile(args.rom):
 | 
					 | 
				
			||||||
        input(
 | 
					 | 
				
			||||||
            'Could not find valid rom for patching at expected path %s. Please run with -h to see help for further information. \nPress Enter to exit.' % args.rom)
 | 
					 | 
				
			||||||
        sys.exit(1)
 | 
					 | 
				
			||||||
    if args.sprite is not None and not os.path.isfile(args.sprite) and not Sprite.get_sprite_from_name(args.sprite):
 | 
					 | 
				
			||||||
        input('Could not find link sprite sheet at given location. \nPress Enter to exit.')
 | 
					 | 
				
			||||||
        sys.exit(1)
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
    # set up logger
 | 
					    # set up logger
 | 
				
			||||||
    loglevel = {'error': logging.ERROR, 'info': logging.INFO, 'warning': logging.WARNING, 'debug': logging.DEBUG}[
 | 
					    loglevel = {'error': logging.ERROR, 'info': logging.INFO, 'warning': logging.WARNING, 'debug': logging.DEBUG}[
 | 
				
			||||||
        args.loglevel]
 | 
					        args.loglevel]
 | 
				
			||||||
    logging.basicConfig(format='%(message)s', level=loglevel)
 | 
					    logging.basicConfig(format='%(message)s', level=loglevel)
 | 
				
			||||||
    args, path = adjust(args=args)
 | 
					
 | 
				
			||||||
    from Utils import persistent_store
 | 
					    if not os.path.isfile(args.rom):
 | 
				
			||||||
    from Rom import Sprite
 | 
					        adjustGUI()
 | 
				
			||||||
    if isinstance(args.sprite, Sprite):
 | 
					    else:
 | 
				
			||||||
        args.sprite = args.sprite.name
 | 
					        if args.sprite is not None and not os.path.isfile(args.sprite) and not Sprite.get_sprite_from_name(args.sprite):
 | 
				
			||||||
    persistent_store("adjuster", "last_settings_3", args)
 | 
					            input('Could not find link sprite sheet at given location. \nPress Enter to exit.')
 | 
				
			||||||
 | 
					            sys.exit(1)
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					        args, path = adjust(args=args)
 | 
				
			||||||
 | 
					        from Utils import persistent_store
 | 
				
			||||||
 | 
					        if isinstance(args.sprite, Sprite):
 | 
				
			||||||
 | 
					            args.sprite = args.sprite.name
 | 
				
			||||||
 | 
					        persistent_store("adjuster", "last_settings_3", args)
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					def adjust(args):
 | 
				
			||||||
 | 
					    start = time.perf_counter()
 | 
				
			||||||
 | 
					    logger = logging.getLogger('Adjuster')
 | 
				
			||||||
 | 
					    logger.info('Patching ROM.')
 | 
				
			||||||
 | 
					    vanillaRom = args.baserom
 | 
				
			||||||
 | 
					    if os.path.splitext(args.rom)[-1].lower() == '.bmbp':
 | 
				
			||||||
 | 
					        import Patch
 | 
				
			||||||
 | 
					        meta, args.rom = Patch.create_rom_file(args.rom)
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					    if os.stat(args.rom).st_size in (0x200000, 0x400000) and os.path.splitext(args.rom)[-1].lower() == '.sfc':
 | 
				
			||||||
 | 
					        rom = LocalRom(args.rom, patch=False, vanillaRom=vanillaRom)
 | 
				
			||||||
 | 
					    else:
 | 
				
			||||||
 | 
					        raise RuntimeError(
 | 
				
			||||||
 | 
					            'Provided Rom is not a valid Link to the Past Randomizer Rom. Please provide one for adjusting.')
 | 
				
			||||||
 | 
					    palettes_options={}
 | 
				
			||||||
 | 
					    palettes_options['dungeon']=args.uw_palettes
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					    palettes_options['overworld']=args.ow_palettes
 | 
				
			||||||
 | 
					    palettes_options['hud']=args.hud_palettes
 | 
				
			||||||
 | 
					    palettes_options['sword']=args.sword_palettes
 | 
				
			||||||
 | 
					    palettes_options['shield']=args.shield_palettes
 | 
				
			||||||
 | 
					    # palettes_options['link']=args.link_palettesvera
 | 
				
			||||||
 | 
					    racerom = rom.read_byte(0x180213) > 0
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					    apply_rom_settings(rom, args.heartbeep, args.heartcolor, args.quickswap, args.fastmenu, args.disablemusic,
 | 
				
			||||||
 | 
					                       args.sprite, palettes_options, reduceflashing=args.reduceflashing or racerom)
 | 
				
			||||||
 | 
					    path = output_path(f'{os.path.basename(args.rom)[:-4]}_adjusted.sfc')
 | 
				
			||||||
 | 
					    rom.write_to_file(path)
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					    logger.info('Done. Enjoy.')
 | 
				
			||||||
 | 
					    logger.debug('Total Time: %s', time.perf_counter() - start)
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					    return args, path
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					def adjustGUI():
 | 
				
			||||||
 | 
					    from tkinter import Checkbutton, OptionMenu, Toplevel, LabelFrame, PhotoImage, Tk, LEFT, RIGHT, BOTTOM, TOP, \
 | 
				
			||||||
 | 
					        StringVar, IntVar, Frame, Label, W, E, X, BOTH, Entry, Spinbox, Button, filedialog, messagebox, ttk
 | 
				
			||||||
 | 
					    from Gui import get_rom_options_frame, get_rom_frame
 | 
				
			||||||
 | 
					    from GuiUtils import set_icon
 | 
				
			||||||
 | 
					    from argparse import Namespace
 | 
				
			||||||
 | 
					    from Main import __version__ as MWVersion
 | 
				
			||||||
 | 
					    adjustWindow = Tk()
 | 
				
			||||||
 | 
					    adjustWindow.wm_title("Berserker's Multiworld %s LttP Adjuster" % MWVersion)
 | 
				
			||||||
 | 
					    set_icon(adjustWindow)
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					    rom_options_frame, rom_vars, set_sprite = get_rom_options_frame(adjustWindow)
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					    bottomFrame2 = Frame(adjustWindow)
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					    romFrame, romVar = get_rom_frame(adjustWindow)
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					    romDialogFrame = Frame(adjustWindow)
 | 
				
			||||||
 | 
					    baseRomLabel2 = Label(romDialogFrame, text='Rom to adjust')
 | 
				
			||||||
 | 
					    romVar2 = StringVar()
 | 
				
			||||||
 | 
					    romEntry2 = Entry(romDialogFrame, textvariable=romVar2)
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					    def RomSelect2():
 | 
				
			||||||
 | 
					        rom = filedialog.askopenfilename(filetypes=[("Rom Files", (".sfc", ".smc", ".bmbp")), ("All Files", "*")])
 | 
				
			||||||
 | 
					        romVar2.set(rom)
 | 
				
			||||||
 | 
					    romSelectButton2 = Button(romDialogFrame, text='Select Rom', command=RomSelect2)
 | 
				
			||||||
 | 
					    romDialogFrame.pack(side=TOP, expand=True, fill=X)
 | 
				
			||||||
 | 
					    baseRomLabel2.pack(side=LEFT)
 | 
				
			||||||
 | 
					    romEntry2.pack(side=LEFT, expand=True, fill=X)
 | 
				
			||||||
 | 
					    romSelectButton2.pack(side=LEFT)
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					    def adjustRom():
 | 
				
			||||||
 | 
					        guiargs = Namespace()
 | 
				
			||||||
 | 
					        guiargs.heartbeep = rom_vars.heartbeepVar.get()
 | 
				
			||||||
 | 
					        guiargs.heartcolor = rom_vars.heartcolorVar.get()
 | 
				
			||||||
 | 
					        guiargs.fastmenu = rom_vars.fastMenuVar.get()
 | 
				
			||||||
 | 
					        guiargs.ow_palettes = rom_vars.owPalettesVar.get()
 | 
				
			||||||
 | 
					        guiargs.uw_palettes = rom_vars.uwPalettesVar.get()
 | 
				
			||||||
 | 
					        guiargs.hud_palettes = rom_vars.hudPalettesVar.get()
 | 
				
			||||||
 | 
					        guiargs.sword_palettes = rom_vars.swordPalettesVar.get()
 | 
				
			||||||
 | 
					        guiargs.shield_palettes = rom_vars.shieldPalettesVar.get()
 | 
				
			||||||
 | 
					        guiargs.quickswap = bool(rom_vars.quickSwapVar.get())
 | 
				
			||||||
 | 
					        guiargs.disablemusic = bool(rom_vars.disableMusicVar.get())
 | 
				
			||||||
 | 
					        guiargs.reduceflashing = bool(rom_vars.disableFlashingVar.get())
 | 
				
			||||||
 | 
					        guiargs.rom = romVar2.get()
 | 
				
			||||||
 | 
					        guiargs.baserom = romVar.get()
 | 
				
			||||||
 | 
					        guiargs.sprite = rom_vars.sprite
 | 
				
			||||||
 | 
					        try:
 | 
				
			||||||
 | 
					            guiargs, path = adjust(args=guiargs)
 | 
				
			||||||
 | 
					        except Exception as e:
 | 
				
			||||||
 | 
					            logging.exception(e)
 | 
				
			||||||
 | 
					            messagebox.showerror(title="Error while adjusting Rom", message=str(e))
 | 
				
			||||||
 | 
					        else:
 | 
				
			||||||
 | 
					            messagebox.showinfo(title="Success", message="Rom patched successfully")
 | 
				
			||||||
 | 
					            from Utils import persistent_store
 | 
				
			||||||
 | 
					            from Rom import Sprite
 | 
				
			||||||
 | 
					            if isinstance(guiargs.sprite, Sprite):
 | 
				
			||||||
 | 
					                guiargs.sprite = guiargs.sprite.name
 | 
				
			||||||
 | 
					            persistent_store("adjuster", "last_settings_3", guiargs)
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					    adjustButton = Button(bottomFrame2, text='Adjust Rom', command=adjustRom)
 | 
				
			||||||
 | 
					    rom_options_frame.pack(side=TOP)
 | 
				
			||||||
 | 
					    adjustButton.pack(side=BOTTOM, padx=(5, 5))
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					    bottomFrame2.pack(side=BOTTOM, pady=(5, 5))
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					    adjustWindow.mainloop()
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					
 | 
				
			||||||
if __name__ == '__main__':
 | 
					if __name__ == '__main__':
 | 
				
			||||||
    main()
 | 
					    main()
 | 
				
			||||||
| 
						 | 
					@ -1,41 +0,0 @@
 | 
				
			||||||
import os
 | 
					 | 
				
			||||||
import time
 | 
					 | 
				
			||||||
import logging
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
from Utils import output_path
 | 
					 | 
				
			||||||
from Rom import LocalRom, apply_rom_settings
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
def adjust(args):
 | 
					 | 
				
			||||||
    start = time.perf_counter()
 | 
					 | 
				
			||||||
    logger = logging.getLogger('Adjuster')
 | 
					 | 
				
			||||||
    logger.info('Patching ROM.')
 | 
					 | 
				
			||||||
    vanillaRom = args.baserom
 | 
					 | 
				
			||||||
    if os.path.splitext(args.rom)[-1].lower() == '.bmbp':
 | 
					 | 
				
			||||||
        import Patch
 | 
					 | 
				
			||||||
        meta, args.rom = Patch.create_rom_file(args.rom)
 | 
					 | 
				
			||||||
        
 | 
					 | 
				
			||||||
    if os.stat(args.rom).st_size in (0x200000, 0x400000) and os.path.splitext(args.rom)[-1].lower() == '.sfc':
 | 
					 | 
				
			||||||
        rom = LocalRom(args.rom, patch=False, vanillaRom=vanillaRom)
 | 
					 | 
				
			||||||
    else:
 | 
					 | 
				
			||||||
        raise RuntimeError(
 | 
					 | 
				
			||||||
            'Provided Rom is not a valid Link to the Past Randomizer Rom. Please provide one for adjusting.')
 | 
					 | 
				
			||||||
    palettes_options={}
 | 
					 | 
				
			||||||
    palettes_options['dungeon']=args.uw_palettes
 | 
					 | 
				
			||||||
    
 | 
					 | 
				
			||||||
    palettes_options['overworld']=args.ow_palettes
 | 
					 | 
				
			||||||
    palettes_options['hud']=args.hud_palettes
 | 
					 | 
				
			||||||
    palettes_options['sword']=args.sword_palettes
 | 
					 | 
				
			||||||
    palettes_options['shield']=args.shield_palettes
 | 
					 | 
				
			||||||
    # palettes_options['link']=args.link_palettesvera
 | 
					 | 
				
			||||||
    racerom = rom.read_byte(0x180213) > 0
 | 
					 | 
				
			||||||
    
 | 
					 | 
				
			||||||
    apply_rom_settings(rom, args.heartbeep, args.heartcolor, args.quickswap, args.fastmenu, args.disablemusic,
 | 
					 | 
				
			||||||
                       args.sprite, palettes_options, reduceflashing=args.reduceflashing if not racerom else True)
 | 
					 | 
				
			||||||
    path = output_path(f'{os.path.basename(args.rom)[:-4]}_adjusted.sfc')
 | 
					 | 
				
			||||||
    rom.write_to_file(path)
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
    logger.info('Done. Enjoy.')
 | 
					 | 
				
			||||||
    logger.debug('Total Time: %s', time.perf_counter() - start)
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
    return args, path
 | 
					 | 
				
			||||||
							
								
								
									
										499
									
								
								Gui.py
								
								
								
								
							
							
						
						
									
										499
									
								
								Gui.py
								
								
								
								
							| 
						 | 
					@ -14,12 +14,11 @@ from concurrent.futures import ThreadPoolExecutor, as_completed
 | 
				
			||||||
import ModuleUpdate
 | 
					import ModuleUpdate
 | 
				
			||||||
ModuleUpdate.update()
 | 
					ModuleUpdate.update()
 | 
				
			||||||
 | 
					
 | 
				
			||||||
from AdjusterMain import adjust
 | 
					 | 
				
			||||||
from EntranceRandomizer import parse_arguments
 | 
					from EntranceRandomizer import parse_arguments
 | 
				
			||||||
from GuiUtils import ToolTips, set_icon, BackgroundTaskProgress
 | 
					from GuiUtils import ToolTips, set_icon, BackgroundTaskProgress
 | 
				
			||||||
from Main import main, get_seed, __version__ as MWVersion
 | 
					from Main import main, get_seed, __version__ as MWVersion
 | 
				
			||||||
from Rom import Sprite
 | 
					from Rom import Sprite
 | 
				
			||||||
from Utils import is_bundled, local_path, output_path, open_file
 | 
					from Utils import local_path, output_path, open_file
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					
 | 
				
			||||||
def guiMain(args=None):
 | 
					def guiMain(args=None):
 | 
				
			||||||
| 
						 | 
					@ -30,10 +29,8 @@ def guiMain(args=None):
 | 
				
			||||||
 | 
					
 | 
				
			||||||
    notebook = ttk.Notebook(mainWindow)
 | 
					    notebook = ttk.Notebook(mainWindow)
 | 
				
			||||||
    randomizerWindow = ttk.Frame(notebook)
 | 
					    randomizerWindow = ttk.Frame(notebook)
 | 
				
			||||||
    adjustWindow = ttk.Frame(notebook)
 | 
					 | 
				
			||||||
    customWindow = ttk.Frame(notebook)
 | 
					    customWindow = ttk.Frame(notebook)
 | 
				
			||||||
    notebook.add(randomizerWindow, text='Randomize')
 | 
					    notebook.add(randomizerWindow, text='Randomize')
 | 
				
			||||||
    notebook.add(adjustWindow, text='Adjust')
 | 
					 | 
				
			||||||
    notebook.add(customWindow, text='Custom Items')
 | 
					    notebook.add(customWindow, text='Custom Items')
 | 
				
			||||||
    notebook.pack()
 | 
					    notebook.pack()
 | 
				
			||||||
 | 
					
 | 
				
			||||||
| 
						 | 
					@ -57,6 +54,8 @@ def guiMain(args=None):
 | 
				
			||||||
    # randomizer controls
 | 
					    # randomizer controls
 | 
				
			||||||
 | 
					
 | 
				
			||||||
    topFrame = Frame(randomizerWindow)
 | 
					    topFrame = Frame(randomizerWindow)
 | 
				
			||||||
 | 
					    romFrame, romVar = get_rom_frame(topFrame)
 | 
				
			||||||
 | 
					
 | 
				
			||||||
    rightHalfFrame = Frame(topFrame)
 | 
					    rightHalfFrame = Frame(topFrame)
 | 
				
			||||||
    checkBoxFrame = Frame(rightHalfFrame)
 | 
					    checkBoxFrame = Frame(rightHalfFrame)
 | 
				
			||||||
 | 
					
 | 
				
			||||||
| 
						 | 
					@ -119,158 +118,9 @@ def guiMain(args=None):
 | 
				
			||||||
    hintsCheckbutton.pack(expand=True, anchor=W)
 | 
					    hintsCheckbutton.pack(expand=True, anchor=W)
 | 
				
			||||||
    tileShuffleButton.pack(expand=True, anchor=W)
 | 
					    tileShuffleButton.pack(expand=True, anchor=W)
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					 | 
				
			||||||
    romOptionsFrame = LabelFrame(rightHalfFrame, text="Rom options")
 | 
					 | 
				
			||||||
    romOptionsFrame.columnconfigure(0, weight=1)
 | 
					 | 
				
			||||||
    romOptionsFrame.columnconfigure(1, weight=1)
 | 
					 | 
				
			||||||
    for i in range(5):
 | 
					 | 
				
			||||||
        romOptionsFrame.rowconfigure(i, weight=1)
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
    disableMusicVar = IntVar()
 | 
					 | 
				
			||||||
    disableMusicCheckbutton = Checkbutton(romOptionsFrame, text="Disable music", variable=disableMusicVar)
 | 
					 | 
				
			||||||
    disableMusicCheckbutton.grid(row=0, column=0, sticky=E)
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
    disableFlashingVar = IntVar(value=1)
 | 
					 | 
				
			||||||
    disableFlashingCheckbutton = Checkbutton(romOptionsFrame, text="Disable flashing (anti-epilepsy)", variable=disableFlashingVar)
 | 
					 | 
				
			||||||
    disableFlashingCheckbutton.grid(row=6, column=0, sticky=E)
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
    spriteDialogFrame = Frame(romOptionsFrame)
 | 
					 | 
				
			||||||
    spriteDialogFrame.grid(row=0, column=1)
 | 
					 | 
				
			||||||
    baseSpriteLabel = Label(spriteDialogFrame, text='Sprite:')
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
    spriteNameVar = StringVar()
 | 
					 | 
				
			||||||
    sprite = None
 | 
					 | 
				
			||||||
    def set_sprite(sprite_param):
 | 
					 | 
				
			||||||
        nonlocal sprite
 | 
					 | 
				
			||||||
        if isinstance(sprite_param, str):
 | 
					 | 
				
			||||||
            sprite = sprite_param
 | 
					 | 
				
			||||||
            spriteNameVar.set(sprite_param)
 | 
					 | 
				
			||||||
        elif sprite_param is None or not sprite_param.valid:
 | 
					 | 
				
			||||||
            sprite = None
 | 
					 | 
				
			||||||
            spriteNameVar.set('(unchanged)')
 | 
					 | 
				
			||||||
        else:
 | 
					 | 
				
			||||||
            sprite = sprite_param
 | 
					 | 
				
			||||||
            spriteNameVar.set(sprite.name)
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
    set_sprite(None)
 | 
					 | 
				
			||||||
    spriteNameVar.set('(unchanged)')
 | 
					 | 
				
			||||||
    spriteEntry = Label(spriteDialogFrame, textvariable=spriteNameVar)
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
    def SpriteSelect():
 | 
					 | 
				
			||||||
        SpriteSelector(mainWindow, set_sprite)
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
    spriteSelectButton = Button(spriteDialogFrame, text='...', command=SpriteSelect)
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
    baseSpriteLabel.pack(side=LEFT)
 | 
					 | 
				
			||||||
    spriteEntry.pack(side=LEFT)
 | 
					 | 
				
			||||||
    spriteSelectButton.pack(side=LEFT)
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
    quickSwapVar = IntVar(value=1)
 | 
					 | 
				
			||||||
    quickSwapCheckbutton = Checkbutton(romOptionsFrame, text="L/R Quickswapping", variable=quickSwapVar)
 | 
					 | 
				
			||||||
    quickSwapCheckbutton.grid(row=1, column=0, sticky=E)
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
    fastMenuFrame = Frame(romOptionsFrame)
 | 
					 | 
				
			||||||
    fastMenuFrame.grid(row=1, column=1, sticky=E)
 | 
					 | 
				
			||||||
    fastMenuLabel = Label(fastMenuFrame, text='Menu speed')
 | 
					 | 
				
			||||||
    fastMenuLabel.pack(side=LEFT)
 | 
					 | 
				
			||||||
    fastMenuVar = StringVar()
 | 
					 | 
				
			||||||
    fastMenuVar.set('normal')
 | 
					 | 
				
			||||||
    fastMenuOptionMenu = OptionMenu(fastMenuFrame, fastMenuVar, 'normal', 'instant', 'double', 'triple', 'quadruple', 'half')
 | 
					 | 
				
			||||||
    fastMenuOptionMenu.pack(side=LEFT)
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
    heartcolorFrame = Frame(romOptionsFrame)
 | 
					 | 
				
			||||||
    heartcolorFrame.grid(row=2, column=0, sticky=E)
 | 
					 | 
				
			||||||
    heartcolorLabel = Label(heartcolorFrame, text='Heart color')
 | 
					 | 
				
			||||||
    heartcolorLabel.pack(side=LEFT)
 | 
					 | 
				
			||||||
    heartcolorVar = StringVar()
 | 
					 | 
				
			||||||
    heartcolorVar.set('red')
 | 
					 | 
				
			||||||
    heartcolorOptionMenu = OptionMenu(heartcolorFrame, heartcolorVar, 'red', 'blue', 'green', 'yellow', 'random')
 | 
					 | 
				
			||||||
    heartcolorOptionMenu.pack(side=LEFT)
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
    heartbeepFrame = Frame(romOptionsFrame)
 | 
					 | 
				
			||||||
    heartbeepFrame.grid(row=2, column=1, sticky=E)
 | 
					 | 
				
			||||||
    heartbeepLabel = Label(heartbeepFrame, text='Heartbeep')
 | 
					 | 
				
			||||||
    heartbeepLabel.pack(side=LEFT)
 | 
					 | 
				
			||||||
    heartbeepVar = StringVar()
 | 
					 | 
				
			||||||
    heartbeepVar.set('normal')
 | 
					 | 
				
			||||||
    heartbeepOptionMenu = OptionMenu(heartbeepFrame, heartbeepVar, 'double', 'normal', 'half', 'quarter', 'off')
 | 
					 | 
				
			||||||
    heartbeepOptionMenu.pack(side=LEFT)
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
    owPalettesFrame = Frame(romOptionsFrame)
 | 
					 | 
				
			||||||
    owPalettesFrame.grid(row=3, column=0, sticky=E)
 | 
					 | 
				
			||||||
    owPalettesLabel = Label(owPalettesFrame, text='Overworld palettes')
 | 
					 | 
				
			||||||
    owPalettesLabel.pack(side=LEFT)
 | 
					 | 
				
			||||||
    owPalettesVar = StringVar()
 | 
					 | 
				
			||||||
    owPalettesVar.set('default')
 | 
					 | 
				
			||||||
    owPalettesOptionMenu = OptionMenu(owPalettesFrame, owPalettesVar, 'default', 'random', 'blackout', 'grayscale', 'negative', 'classic', 'dizzy', 'sick', 'puke')
 | 
					 | 
				
			||||||
    owPalettesOptionMenu.pack(side=LEFT)
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
    uwPalettesFrame = Frame(romOptionsFrame)
 | 
					 | 
				
			||||||
    uwPalettesFrame.grid(row=3, column=1, sticky=E)
 | 
					 | 
				
			||||||
    uwPalettesLabel = Label(uwPalettesFrame, text='Dungeon palettes')
 | 
					 | 
				
			||||||
    uwPalettesLabel.pack(side=LEFT)
 | 
					 | 
				
			||||||
    uwPalettesVar = StringVar()
 | 
					 | 
				
			||||||
    uwPalettesVar.set('default')
 | 
					 | 
				
			||||||
    uwPalettesOptionMenu = OptionMenu(uwPalettesFrame, uwPalettesVar, 'default', 'random', 'blackout', 'grayscale', 'negative', 'classic', 'dizzy', 'sick', 'puke')
 | 
					 | 
				
			||||||
    uwPalettesOptionMenu.pack(side=LEFT)
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
    hudPalettesFrame = Frame(romOptionsFrame)
 | 
					 | 
				
			||||||
    hudPalettesFrame.grid(row=4, column=0, sticky=E)
 | 
					 | 
				
			||||||
    hudPalettesLabel = Label(hudPalettesFrame, text='HUD palettes')
 | 
					 | 
				
			||||||
    hudPalettesLabel.pack(side=LEFT)
 | 
					 | 
				
			||||||
    hudPalettesVar = StringVar()
 | 
					 | 
				
			||||||
    hudPalettesVar.set('default')
 | 
					 | 
				
			||||||
    hudPalettesOptionMenu = OptionMenu(hudPalettesFrame, hudPalettesVar, 'default', 'random', 'blackout', 'grayscale', 'negative', 'classic', 'dizzy', 'sick', 'puke')
 | 
					 | 
				
			||||||
    hudPalettesOptionMenu.pack(side=LEFT)
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
    swordPalettesFrame = Frame(romOptionsFrame)
 | 
					 | 
				
			||||||
    swordPalettesFrame.grid(row=4, column=1, sticky=E)
 | 
					 | 
				
			||||||
    swordPalettesLabel = Label(swordPalettesFrame, text='Sword palettes')
 | 
					 | 
				
			||||||
    swordPalettesLabel.pack(side=LEFT)
 | 
					 | 
				
			||||||
    swordPalettesVar = StringVar()
 | 
					 | 
				
			||||||
    swordPalettesVar.set('default')
 | 
					 | 
				
			||||||
    swordPalettesOptionMenu = OptionMenu(swordPalettesFrame, swordPalettesVar, 'default', 'random', 'blackout', 'grayscale', 'negative', 'classic', 'dizzy', 'sick', 'puke')
 | 
					 | 
				
			||||||
    swordPalettesOptionMenu.pack(side=LEFT)
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
    shieldPalettesFrame = Frame(romOptionsFrame)
 | 
					 | 
				
			||||||
    shieldPalettesFrame.grid(row=5, column=0, sticky=E)
 | 
					 | 
				
			||||||
    shieldPalettesLabel = Label(shieldPalettesFrame, text='Shield palettes')
 | 
					 | 
				
			||||||
    shieldPalettesLabel.pack(side=LEFT)
 | 
					 | 
				
			||||||
    shieldPalettesVar = StringVar()
 | 
					 | 
				
			||||||
    shieldPalettesVar.set('default')
 | 
					 | 
				
			||||||
    shieldPalettesOptionMenu = OptionMenu(shieldPalettesFrame, shieldPalettesVar, 'default', 'random', 'blackout', 'grayscale', 'negative', 'classic', 'dizzy', 'sick', 'puke')
 | 
					 | 
				
			||||||
    shieldPalettesOptionMenu.pack(side=LEFT)
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
    romDialogFrame = Frame(romOptionsFrame)
 | 
					 | 
				
			||||||
    romDialogFrame.grid(row=7, column=0, columnspan=2, sticky=W+E)
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
    baseRomLabel = Label(romDialogFrame, text='Base Rom: ')
 | 
					 | 
				
			||||||
    romVar = StringVar(value="Zelda no Densetsu - Kamigami no Triforce (Japan).sfc")
 | 
					 | 
				
			||||||
    romEntry = Entry(romDialogFrame, textvariable=romVar)
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
    def RomSelect():
 | 
					 | 
				
			||||||
        rom = filedialog.askopenfilename(filetypes=[("Rom Files", (".sfc", ".smc")), ("All Files", "*")])
 | 
					 | 
				
			||||||
        import Patch
 | 
					 | 
				
			||||||
        try:
 | 
					 | 
				
			||||||
            Patch.get_base_rom_bytes(rom)  # throws error on checksum fail
 | 
					 | 
				
			||||||
        except Exception as e:
 | 
					 | 
				
			||||||
            logging.exception(e)
 | 
					 | 
				
			||||||
            messagebox.showerror(title="Error while reading ROM", message=str(e))
 | 
					 | 
				
			||||||
        else:
 | 
					 | 
				
			||||||
            romVar.set(rom)
 | 
					 | 
				
			||||||
            romSelectButton['state'] = "disabled"
 | 
					 | 
				
			||||||
            romSelectButton["text"] = "ROM verified"
 | 
					 | 
				
			||||||
    romSelectButton = Button(romDialogFrame, text='Select Rom', command=RomSelect)
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
    baseRomLabel.pack(side=LEFT)
 | 
					 | 
				
			||||||
    romEntry.pack(side=LEFT, expand=True, fill=X)
 | 
					 | 
				
			||||||
    romSelectButton.pack(side=LEFT)
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
    checkBoxFrame.pack(side=TOP, anchor=W, padx=5, pady=10)
 | 
					    checkBoxFrame.pack(side=TOP, anchor=W, padx=5, pady=10)
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					    romOptionsFrame, rom_vars, set_sprite = get_rom_options_frame(rightHalfFrame)
 | 
				
			||||||
    romOptionsFrame.pack(expand=True, fill=BOTH, padx=3)
 | 
					    romOptionsFrame.pack(expand=True, fill=BOTH, padx=3)
 | 
				
			||||||
 | 
					
 | 
				
			||||||
    drowDownFrame = Frame(topFrame)
 | 
					    drowDownFrame = Frame(topFrame)
 | 
				
			||||||
| 
						 | 
					@ -567,9 +417,9 @@ def guiMain(args=None):
 | 
				
			||||||
        guiargs.accessibility = accessibilityVar.get()
 | 
					        guiargs.accessibility = accessibilityVar.get()
 | 
				
			||||||
        guiargs.algorithm = algorithmVar.get()
 | 
					        guiargs.algorithm = algorithmVar.get()
 | 
				
			||||||
        guiargs.shuffle = shuffleVar.get()
 | 
					        guiargs.shuffle = shuffleVar.get()
 | 
				
			||||||
        guiargs.heartbeep = heartbeepVar.get()
 | 
					        guiargs.heartbeep = rom_vars.heartbeepVar.get()
 | 
				
			||||||
        guiargs.heartcolor = heartcolorVar.get()
 | 
					        guiargs.heartcolor = rom_vars.heartcolorVar.get()
 | 
				
			||||||
        guiargs.fastmenu = fastMenuVar.get()
 | 
					        guiargs.fastmenu = rom_vars.fastMenuVar.get()
 | 
				
			||||||
        guiargs.create_spoiler = bool(createSpoilerVar.get())
 | 
					        guiargs.create_spoiler = bool(createSpoilerVar.get())
 | 
				
			||||||
        guiargs.skip_playthrough = not bool(createSpoilerVar.get())
 | 
					        guiargs.skip_playthrough = not bool(createSpoilerVar.get())
 | 
				
			||||||
        guiargs.suppress_rom = bool(suppressRomVar.get())
 | 
					        guiargs.suppress_rom = bool(suppressRomVar.get())
 | 
				
			||||||
| 
						 | 
					@ -579,14 +429,14 @@ def guiMain(args=None):
 | 
				
			||||||
        guiargs.keyshuffle = {"on": True, "universal": "universal", "off": False}[keyshuffleVar.get()]
 | 
					        guiargs.keyshuffle = {"on": True, "universal": "universal", "off": False}[keyshuffleVar.get()]
 | 
				
			||||||
        guiargs.bigkeyshuffle = bool(bigkeyshuffleVar.get())
 | 
					        guiargs.bigkeyshuffle = bool(bigkeyshuffleVar.get())
 | 
				
			||||||
        guiargs.retro = bool(retroVar.get())
 | 
					        guiargs.retro = bool(retroVar.get())
 | 
				
			||||||
        guiargs.quickswap = bool(quickSwapVar.get())
 | 
					        guiargs.quickswap = bool(rom_vars.quickSwapVar.get())
 | 
				
			||||||
        guiargs.disablemusic = bool(disableMusicVar.get())
 | 
					        guiargs.disablemusic = bool(rom_vars.disableMusicVar.get())
 | 
				
			||||||
        guiargs.reduceflashing = bool(disableFlashingVar.get())
 | 
					        guiargs.reduceflashing = bool(rom_vars.disableFlashingVar.get())
 | 
				
			||||||
        guiargs.ow_palettes = owPalettesVar.get()
 | 
					        guiargs.ow_palettes = rom_vars.owPalettesVar.get()
 | 
				
			||||||
        guiargs.uw_palettes = uwPalettesVar.get()
 | 
					        guiargs.uw_palettes = rom_vars.uwPalettesVar.get()
 | 
				
			||||||
        guiargs.hud_palettes = hudPalettesVar.get()
 | 
					        guiargs.hud_palettes = rom_vars.hudPalettesVar.get()
 | 
				
			||||||
        guiargs.sword_palettes = swordPalettesVar.get()
 | 
					        guiargs.sword_palettes = rom_vars.swordPalettesVar.get()
 | 
				
			||||||
        guiargs.shield_palettes = shieldPalettesVar.get()
 | 
					        guiargs.shield_palettes = rom_vars.shieldPalettesVar.get()
 | 
				
			||||||
        guiargs.shuffleganon = bool(shuffleGanonVar.get())
 | 
					        guiargs.shuffleganon = bool(shuffleGanonVar.get())
 | 
				
			||||||
        guiargs.hints = bool(hintsVar.get())
 | 
					        guiargs.hints = bool(hintsVar.get())
 | 
				
			||||||
        guiargs.enemizercli = enemizerCLIpathVar.get()
 | 
					        guiargs.enemizercli = enemizerCLIpathVar.get()
 | 
				
			||||||
| 
						 | 
					@ -646,7 +496,7 @@ def guiMain(args=None):
 | 
				
			||||||
                                   int(rupoorcostVar.get()), int(triforceVar.get())]
 | 
					                                   int(rupoorcostVar.get()), int(triforceVar.get())]
 | 
				
			||||||
        guiargs.rom = romVar.get()
 | 
					        guiargs.rom = romVar.get()
 | 
				
			||||||
        guiargs.create_diff = patchesVar.get()
 | 
					        guiargs.create_diff = patchesVar.get()
 | 
				
			||||||
        guiargs.sprite = sprite
 | 
					        guiargs.sprite = rom_vars.sprite
 | 
				
			||||||
        # get default values for missing parameters
 | 
					        # get default values for missing parameters
 | 
				
			||||||
        for k,v in vars(parse_arguments(['--multi', str(guiargs.multi)])).items():
 | 
					        for k,v in vars(parse_arguments(['--multi', str(guiargs.multi)])).items():
 | 
				
			||||||
            if k not in vars(guiargs):
 | 
					            if k not in vars(guiargs):
 | 
				
			||||||
| 
						 | 
					@ -694,153 +544,6 @@ def guiMain(args=None):
 | 
				
			||||||
    enemizerFrame.pack(side=BOTTOM, fill=BOTH)
 | 
					    enemizerFrame.pack(side=BOTTOM, fill=BOTH)
 | 
				
			||||||
    shopframe.pack(side=BOTTOM, expand=True, fill=X)
 | 
					    shopframe.pack(side=BOTTOM, expand=True, fill=X)
 | 
				
			||||||
 | 
					
 | 
				
			||||||
    # Adjuster Controls
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
    topFrame2 = Frame(adjustWindow)
 | 
					 | 
				
			||||||
    rightHalfFrame2 = Frame(topFrame2)
 | 
					 | 
				
			||||||
    checkBoxFrame2 = Frame(rightHalfFrame2)
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
    quickSwapCheckbutton2 = Checkbutton(checkBoxFrame2, text="L/R Item quickswapping", variable=quickSwapVar)
 | 
					 | 
				
			||||||
    disableMusicCheckbutton2 = Checkbutton(checkBoxFrame2, text="Disable game music", variable=disableMusicVar)
 | 
					 | 
				
			||||||
    disableFlashingCheckbutton2 = Checkbutton(checkBoxFrame2, text="Disable flashing (anti-epilepsy)", variable=disableFlashingVar)
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
    quickSwapCheckbutton2.pack(expand=True, anchor=W)
 | 
					 | 
				
			||||||
    disableMusicCheckbutton2.pack(expand=True, anchor=W)
 | 
					 | 
				
			||||||
    disableFlashingCheckbutton2.pack(expand=True, anchor=W)
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
    fileDialogFrame2 = Frame(rightHalfFrame2)
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
    romDialogFrame2 = Frame(fileDialogFrame2)
 | 
					 | 
				
			||||||
    baseRomLabel2 = Label(romDialogFrame2, text='Rom to adjust')
 | 
					 | 
				
			||||||
    romVar2 = StringVar()
 | 
					 | 
				
			||||||
    romEntry2 = Entry(romDialogFrame2, textvariable=romVar2)
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
    def RomSelect2():
 | 
					 | 
				
			||||||
        rom = filedialog.askopenfilename(filetypes=[("Rom Files", (".sfc", ".smc", ".bmbp")), ("All Files", "*")])
 | 
					 | 
				
			||||||
        romVar2.set(rom)
 | 
					 | 
				
			||||||
    romSelectButton2 = Button(romDialogFrame2, text='Select Rom', command=RomSelect2)
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
    baseRomLabel2.pack(side=LEFT)
 | 
					 | 
				
			||||||
    romEntry2.pack(side=LEFT)
 | 
					 | 
				
			||||||
    romSelectButton2.pack(side=LEFT)
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
    spriteDialogFrame2 = Frame(fileDialogFrame2)
 | 
					 | 
				
			||||||
    baseSpriteLabel2 = Label(spriteDialogFrame2, text='Link Sprite')
 | 
					 | 
				
			||||||
    spriteEntry2 = Label(spriteDialogFrame2, textvariable=spriteNameVar)
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
    def SpriteSelectAdjuster():
 | 
					 | 
				
			||||||
        SpriteSelector(mainWindow, set_sprite, adjuster=True)
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
    spriteSelectButton2 = Button(spriteDialogFrame2, text='Select Sprite', command=SpriteSelectAdjuster)
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
    baseSpriteLabel2.pack(side=LEFT)
 | 
					 | 
				
			||||||
    spriteEntry2.pack(side=LEFT)
 | 
					 | 
				
			||||||
    spriteSelectButton2.pack(side=LEFT)
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
    romDialogFrame2.pack()
 | 
					 | 
				
			||||||
    spriteDialogFrame2.pack()
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
    checkBoxFrame2.pack()
 | 
					 | 
				
			||||||
    fileDialogFrame2.pack()
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
    drowDownFrame2 = Frame(topFrame2)
 | 
					 | 
				
			||||||
    heartbeepFrame2 = Frame(drowDownFrame2)
 | 
					 | 
				
			||||||
    heartbeepOptionMenu2 = OptionMenu(heartbeepFrame2, heartbeepVar, 'double', 'normal', 'half', 'quarter', 'off')
 | 
					 | 
				
			||||||
    heartbeepOptionMenu2.pack(side=RIGHT)
 | 
					 | 
				
			||||||
    heartbeepLabel2 = Label(heartbeepFrame2, text='Heartbeep sound rate')
 | 
					 | 
				
			||||||
    heartbeepLabel2.pack(side=LEFT)
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
    heartcolorFrame2 = Frame(drowDownFrame2)
 | 
					 | 
				
			||||||
    heartcolorOptionMenu2 = OptionMenu(heartcolorFrame2, heartcolorVar, 'red', 'blue', 'green', 'yellow', 'random')
 | 
					 | 
				
			||||||
    heartcolorOptionMenu2.pack(side=RIGHT)
 | 
					 | 
				
			||||||
    heartcolorLabel2 = Label(heartcolorFrame2, text='Heart color')
 | 
					 | 
				
			||||||
    heartcolorLabel2.pack(side=LEFT)
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
    fastMenuFrame2 = Frame(drowDownFrame2)
 | 
					 | 
				
			||||||
    fastMenuOptionMenu2 = OptionMenu(fastMenuFrame2, fastMenuVar, 'normal', 'instant', 'double', 'triple', 'quadruple', 'half')
 | 
					 | 
				
			||||||
    fastMenuOptionMenu2.pack(side=RIGHT)
 | 
					 | 
				
			||||||
    fastMenuLabel2 = Label(fastMenuFrame2, text='Menu speed')
 | 
					 | 
				
			||||||
    fastMenuLabel2.pack(side=LEFT)
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
    owPalettesFrame2 = Frame(drowDownFrame2)
 | 
					 | 
				
			||||||
    owPalettesOptionMenu2 = OptionMenu(owPalettesFrame2, owPalettesVar, 'default', 'random', 'blackout', 'grayscale', 'negative', 'classic', 'dizzy', 'sick', 'puke')
 | 
					 | 
				
			||||||
    owPalettesOptionMenu2.pack(side=RIGHT)
 | 
					 | 
				
			||||||
    owPalettesLabel2 = Label(owPalettesFrame2, text='Overworld palettes')
 | 
					 | 
				
			||||||
    owPalettesLabel2.pack(side=LEFT)
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
    uwPalettesFrame2 = Frame(drowDownFrame2)
 | 
					 | 
				
			||||||
    uwPalettesOptionMenu2 = OptionMenu(uwPalettesFrame2, uwPalettesVar, 'default', 'random', 'blackout', 'grayscale', 'negative', 'classic', 'dizzy', 'sick', 'puke')
 | 
					 | 
				
			||||||
    uwPalettesOptionMenu2.pack(side=RIGHT)
 | 
					 | 
				
			||||||
    uwPalettesLabel2 = Label(uwPalettesFrame2, text='Dungeon palettes')
 | 
					 | 
				
			||||||
    uwPalettesLabel2.pack(side=LEFT)
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
    hudPalettesFrame2 = Frame(drowDownFrame2)
 | 
					 | 
				
			||||||
    hudPalettesOptionMenu2 = OptionMenu(hudPalettesFrame2, hudPalettesVar, 'default', 'random', 'blackout', 'grayscale', 'negative', 'classic', 'dizzy', 'sick', 'puke')
 | 
					 | 
				
			||||||
    hudPalettesOptionMenu2.pack(side=RIGHT)
 | 
					 | 
				
			||||||
    hudPalettesLabel2 = Label(hudPalettesFrame2, text='HUD palettes')
 | 
					 | 
				
			||||||
    hudPalettesLabel2.pack(side=LEFT)
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
    swordPalettesFrame2 = Frame(drowDownFrame2)
 | 
					 | 
				
			||||||
    swordPalettesOptionMenu2 = OptionMenu(swordPalettesFrame2, swordPalettesVar, 'default', 'random', 'blackout', 'grayscale', 'negative', 'classic', 'dizzy', 'sick', 'puke')
 | 
					 | 
				
			||||||
    swordPalettesOptionMenu2.pack(side=RIGHT)
 | 
					 | 
				
			||||||
    swordPalettesLabel2 = Label(swordPalettesFrame2, text='Sword palettes')
 | 
					 | 
				
			||||||
    swordPalettesLabel2.pack(side=LEFT)
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
    shieldPalettesFrame2 = Frame(drowDownFrame2)
 | 
					 | 
				
			||||||
    shieldPalettesOptionMenu2 = OptionMenu(shieldPalettesFrame2, shieldPalettesVar, 'default', 'random', 'blackout', 'grayscale', 'negative', 'classic', 'dizzy', 'sick', 'puke')
 | 
					 | 
				
			||||||
    shieldPalettesOptionMenu2.pack(side=RIGHT)
 | 
					 | 
				
			||||||
    shieldPalettesLabel2 = Label(shieldPalettesFrame2, text='Shield palettes')
 | 
					 | 
				
			||||||
    shieldPalettesLabel2.pack(side=LEFT)
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
    heartbeepFrame2.pack(expand=True, anchor=E)
 | 
					 | 
				
			||||||
    heartcolorFrame2.pack(expand=True, anchor=E)
 | 
					 | 
				
			||||||
    fastMenuFrame2.pack(expand=True, anchor=E)
 | 
					 | 
				
			||||||
    owPalettesFrame2.pack(expand=True, anchor=E)
 | 
					 | 
				
			||||||
    uwPalettesFrame2.pack(expand=True, anchor=E)
 | 
					 | 
				
			||||||
    hudPalettesFrame2.pack(expand=True, anchor=E)
 | 
					 | 
				
			||||||
    swordPalettesFrame2.pack(expand=True, anchor=E)
 | 
					 | 
				
			||||||
    shieldPalettesFrame2.pack(expand=True, anchor=E)
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
    bottomFrame2 = Frame(topFrame2)
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
    def adjustRom():
 | 
					 | 
				
			||||||
        guiargs = Namespace()
 | 
					 | 
				
			||||||
        guiargs.heartbeep = heartbeepVar.get()
 | 
					 | 
				
			||||||
        guiargs.heartcolor = heartcolorVar.get()
 | 
					 | 
				
			||||||
        guiargs.fastmenu = fastMenuVar.get()
 | 
					 | 
				
			||||||
        guiargs.ow_palettes = owPalettesVar.get()
 | 
					 | 
				
			||||||
        guiargs.uw_palettes = uwPalettesVar.get()
 | 
					 | 
				
			||||||
        guiargs.hud_palettes = hudPalettesVar.get()
 | 
					 | 
				
			||||||
        guiargs.sword_palettes = swordPalettesVar.get()
 | 
					 | 
				
			||||||
        guiargs.shield_palettes = shieldPalettesVar.get()
 | 
					 | 
				
			||||||
        guiargs.quickswap = bool(quickSwapVar.get())
 | 
					 | 
				
			||||||
        guiargs.disablemusic = bool(disableMusicVar.get())
 | 
					 | 
				
			||||||
        guiargs.reduceflashing = bool(disableFlashingVar.get())
 | 
					 | 
				
			||||||
        guiargs.rom = romVar2.get()
 | 
					 | 
				
			||||||
        guiargs.baserom = romVar.get()
 | 
					 | 
				
			||||||
        guiargs.sprite = sprite
 | 
					 | 
				
			||||||
        try:
 | 
					 | 
				
			||||||
            guiargs, path = adjust(args=guiargs)
 | 
					 | 
				
			||||||
        except Exception as e:
 | 
					 | 
				
			||||||
            logging.exception(e)
 | 
					 | 
				
			||||||
            messagebox.showerror(title="Error while adjusting Rom", message=str(e))
 | 
					 | 
				
			||||||
        else:
 | 
					 | 
				
			||||||
            messagebox.showinfo(title="Success", message="Rom patched successfully")
 | 
					 | 
				
			||||||
            from Utils import persistent_store
 | 
					 | 
				
			||||||
            from Rom import Sprite
 | 
					 | 
				
			||||||
            if isinstance(guiargs.sprite, Sprite):
 | 
					 | 
				
			||||||
                guiargs.sprite = guiargs.sprite.name
 | 
					 | 
				
			||||||
            persistent_store("adjuster", "last_settings_3", guiargs)
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
    adjustButton = Button(bottomFrame2, text='Adjust Rom', command=adjustRom)
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
    adjustButton.pack(side=LEFT, padx=(5, 0))
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
    drowDownFrame2.pack(side=LEFT, pady=(0, 40))
 | 
					 | 
				
			||||||
    rightHalfFrame2.pack(side=RIGHT)
 | 
					 | 
				
			||||||
    topFrame2.pack(side=TOP, pady=70)
 | 
					 | 
				
			||||||
    bottomFrame2.pack(side=BOTTOM, pady=(180, 0))
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
    # Custom Controls
 | 
					    # Custom Controls
 | 
				
			||||||
 | 
					
 | 
				
			||||||
    topFrame3 = Frame(customWindow)
 | 
					    topFrame3 = Frame(customWindow)
 | 
				
			||||||
| 
						 | 
					@ -1498,9 +1201,9 @@ def guiMain(args=None):
 | 
				
			||||||
        keyshuffleVar.set(args.keyshuffle)
 | 
					        keyshuffleVar.set(args.keyshuffle)
 | 
				
			||||||
        bigkeyshuffleVar.set(args.bigkeyshuffle)
 | 
					        bigkeyshuffleVar.set(args.bigkeyshuffle)
 | 
				
			||||||
        retroVar.set(args.retro)
 | 
					        retroVar.set(args.retro)
 | 
				
			||||||
        quickSwapVar.set(int(args.quickswap))
 | 
					        rom_vars.quickSwapVar.set(int(args.quickswap))
 | 
				
			||||||
        disableMusicVar.set(int(args.disablemusic))
 | 
					        rom_vars.disableMusicVar.set(int(args.disablemusic))
 | 
				
			||||||
        disableFlashingVar.set(int(args.reduceflashing))
 | 
					        rom_vars.disableFlashingVar.set(int(args.reduceflashing))
 | 
				
			||||||
        if args.count:
 | 
					        if args.count:
 | 
				
			||||||
            countVar.set(str(args.count))
 | 
					            countVar.set(str(args.count))
 | 
				
			||||||
        if args.seed:
 | 
					        if args.seed:
 | 
				
			||||||
| 
						 | 
					@ -1521,10 +1224,10 @@ def guiMain(args=None):
 | 
				
			||||||
        crystalsGanonVar.set(args.crystals_ganon)
 | 
					        crystalsGanonVar.set(args.crystals_ganon)
 | 
				
			||||||
        algorithmVar.set(args.algorithm)
 | 
					        algorithmVar.set(args.algorithm)
 | 
				
			||||||
        shuffleVar.set(args.shuffle)
 | 
					        shuffleVar.set(args.shuffle)
 | 
				
			||||||
        heartbeepVar.set(args.heartbeep)
 | 
					        rom_vars.heartbeepVar.set(args.heartbeep)
 | 
				
			||||||
        fastMenuVar.set(args.fastmenu)
 | 
					        rom_vars.fastMenuVar.set(args.fastmenu)
 | 
				
			||||||
        logicVar.set(args.logic)
 | 
					        logicVar.set(args.logic)
 | 
				
			||||||
        romVar.set(args.rom)
 | 
					        rom_vars.romVar.set(args.rom)
 | 
				
			||||||
        shuffleGanonVar.set(args.shuffleganon)
 | 
					        shuffleGanonVar.set(args.shuffleganon)
 | 
				
			||||||
        hintsVar.set(args.hints)
 | 
					        hintsVar.set(args.hints)
 | 
				
			||||||
        if args.sprite is not None:
 | 
					        if args.sprite is not None:
 | 
				
			||||||
| 
						 | 
					@ -1532,11 +1235,165 @@ def guiMain(args=None):
 | 
				
			||||||
 | 
					
 | 
				
			||||||
    mainWindow.mainloop()
 | 
					    mainWindow.mainloop()
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					def get_rom_frame(parent=None):
 | 
				
			||||||
 | 
					    romFrame = Frame(parent)
 | 
				
			||||||
 | 
					    baseRomLabel = Label(romFrame, text='LttP Base Rom: ')
 | 
				
			||||||
 | 
					    romVar = StringVar(value="Zelda no Densetsu - Kamigami no Triforce (Japan).sfc")
 | 
				
			||||||
 | 
					    romEntry = Entry(romFrame, textvariable=romVar)
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					    def RomSelect():
 | 
				
			||||||
 | 
					        rom = filedialog.askopenfilename(filetypes=[("Rom Files", (".sfc", ".smc")), ("All Files", "*")])
 | 
				
			||||||
 | 
					        import Patch
 | 
				
			||||||
 | 
					        try:
 | 
				
			||||||
 | 
					            Patch.get_base_rom_bytes(rom)  # throws error on checksum fail
 | 
				
			||||||
 | 
					        except Exception as e:
 | 
				
			||||||
 | 
					            logging.exception(e)
 | 
				
			||||||
 | 
					            messagebox.showerror(title="Error while reading ROM", message=str(e))
 | 
				
			||||||
 | 
					        else:
 | 
				
			||||||
 | 
					            romVar.set(rom)
 | 
				
			||||||
 | 
					            romSelectButton['state'] = "disabled"
 | 
				
			||||||
 | 
					            romSelectButton["text"] = "ROM verified"
 | 
				
			||||||
 | 
					    romSelectButton = Button(romFrame, text='Select Rom', command=RomSelect)
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					    baseRomLabel.pack(side=LEFT)
 | 
				
			||||||
 | 
					    romEntry.pack(side=LEFT, expand=True, fill=X)
 | 
				
			||||||
 | 
					    romSelectButton.pack(side=LEFT)
 | 
				
			||||||
 | 
					    romFrame.pack(side=TOP, expand=True, fill=X)
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					    return romFrame, romVar
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					def get_rom_options_frame(parent=None):
 | 
				
			||||||
 | 
					    romOptionsFrame = LabelFrame(parent, text="Rom options")
 | 
				
			||||||
 | 
					    romOptionsFrame.columnconfigure(0, weight=1)
 | 
				
			||||||
 | 
					    romOptionsFrame.columnconfigure(1, weight=1)
 | 
				
			||||||
 | 
					    for i in range(5):
 | 
				
			||||||
 | 
					        romOptionsFrame.rowconfigure(i, weight=1)
 | 
				
			||||||
 | 
					    vars = Namespace()
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					    vars.disableMusicVar = IntVar()
 | 
				
			||||||
 | 
					    disableMusicCheckbutton = Checkbutton(romOptionsFrame, text="Disable music", variable=vars.disableMusicVar)
 | 
				
			||||||
 | 
					    disableMusicCheckbutton.grid(row=0, column=0, sticky=E)
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					    vars.disableFlashingVar = IntVar(value=1)
 | 
				
			||||||
 | 
					    disableFlashingCheckbutton = Checkbutton(romOptionsFrame, text="Disable flashing (anti-epilepsy)", variable=vars.disableFlashingVar)
 | 
				
			||||||
 | 
					    disableFlashingCheckbutton.grid(row=6, column=0, sticky=E)
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					    spriteDialogFrame = Frame(romOptionsFrame)
 | 
				
			||||||
 | 
					    spriteDialogFrame.grid(row=0, column=1)
 | 
				
			||||||
 | 
					    baseSpriteLabel = Label(spriteDialogFrame, text='Sprite:')
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					    vars.spriteNameVar = StringVar()
 | 
				
			||||||
 | 
					    vars.sprite = None
 | 
				
			||||||
 | 
					    def set_sprite(sprite_param):
 | 
				
			||||||
 | 
					        nonlocal vars
 | 
				
			||||||
 | 
					        if isinstance(sprite_param, str):
 | 
				
			||||||
 | 
					            vars.sprite = sprite_param
 | 
				
			||||||
 | 
					            vars.spriteNameVar.set(sprite_param)
 | 
				
			||||||
 | 
					        elif sprite_param is None or not sprite_param.valid:
 | 
				
			||||||
 | 
					            vars.sprite = None
 | 
				
			||||||
 | 
					            vars.spriteNameVar.set('(unchanged)')
 | 
				
			||||||
 | 
					        else:
 | 
				
			||||||
 | 
					            vars.sprite = sprite_param
 | 
				
			||||||
 | 
					            vars.spriteNameVar.set(vars.sprite.name)
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					    set_sprite(None)
 | 
				
			||||||
 | 
					    vars.spriteNameVar.set('(unchanged)')
 | 
				
			||||||
 | 
					    spriteEntry = Label(spriteDialogFrame, textvariable=vars.spriteNameVar)
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					    def SpriteSelect():
 | 
				
			||||||
 | 
					        SpriteSelector(parent, set_sprite)
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					    spriteSelectButton = Button(spriteDialogFrame, text='...', command=SpriteSelect)
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					    baseSpriteLabel.pack(side=LEFT)
 | 
				
			||||||
 | 
					    spriteEntry.pack(side=LEFT)
 | 
				
			||||||
 | 
					    spriteSelectButton.pack(side=LEFT)
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					    vars.quickSwapVar = IntVar(value=1)
 | 
				
			||||||
 | 
					    quickSwapCheckbutton = Checkbutton(romOptionsFrame, text="L/R Quickswapping", variable=vars.quickSwapVar)
 | 
				
			||||||
 | 
					    quickSwapCheckbutton.grid(row=1, column=0, sticky=E)
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					    fastMenuFrame = Frame(romOptionsFrame)
 | 
				
			||||||
 | 
					    fastMenuFrame.grid(row=1, column=1, sticky=E)
 | 
				
			||||||
 | 
					    fastMenuLabel = Label(fastMenuFrame, text='Menu speed')
 | 
				
			||||||
 | 
					    fastMenuLabel.pack(side=LEFT)
 | 
				
			||||||
 | 
					    vars.fastMenuVar = StringVar()
 | 
				
			||||||
 | 
					    vars.fastMenuVar.set('normal')
 | 
				
			||||||
 | 
					    fastMenuOptionMenu = OptionMenu(fastMenuFrame, vars.fastMenuVar, 'normal', 'instant', 'double', 'triple', 'quadruple', 'half')
 | 
				
			||||||
 | 
					    fastMenuOptionMenu.pack(side=LEFT)
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					    heartcolorFrame = Frame(romOptionsFrame)
 | 
				
			||||||
 | 
					    heartcolorFrame.grid(row=2, column=0, sticky=E)
 | 
				
			||||||
 | 
					    heartcolorLabel = Label(heartcolorFrame, text='Heart color')
 | 
				
			||||||
 | 
					    heartcolorLabel.pack(side=LEFT)
 | 
				
			||||||
 | 
					    vars.heartcolorVar = StringVar()
 | 
				
			||||||
 | 
					    vars.heartcolorVar.set('red')
 | 
				
			||||||
 | 
					    heartcolorOptionMenu = OptionMenu(heartcolorFrame, vars.heartcolorVar, 'red', 'blue', 'green', 'yellow', 'random')
 | 
				
			||||||
 | 
					    heartcolorOptionMenu.pack(side=LEFT)
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					    heartbeepFrame = Frame(romOptionsFrame)
 | 
				
			||||||
 | 
					    heartbeepFrame.grid(row=2, column=1, sticky=E)
 | 
				
			||||||
 | 
					    heartbeepLabel = Label(heartbeepFrame, text='Heartbeep')
 | 
				
			||||||
 | 
					    heartbeepLabel.pack(side=LEFT)
 | 
				
			||||||
 | 
					    vars.heartbeepVar = StringVar()
 | 
				
			||||||
 | 
					    vars.heartbeepVar.set('normal')
 | 
				
			||||||
 | 
					    heartbeepOptionMenu = OptionMenu(heartbeepFrame, vars.heartbeepVar, 'double', 'normal', 'half', 'quarter', 'off')
 | 
				
			||||||
 | 
					    heartbeepOptionMenu.pack(side=LEFT)
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					    owPalettesFrame = Frame(romOptionsFrame)
 | 
				
			||||||
 | 
					    owPalettesFrame.grid(row=3, column=0, sticky=E)
 | 
				
			||||||
 | 
					    owPalettesLabel = Label(owPalettesFrame, text='Overworld palettes')
 | 
				
			||||||
 | 
					    owPalettesLabel.pack(side=LEFT)
 | 
				
			||||||
 | 
					    vars.owPalettesVar = StringVar()
 | 
				
			||||||
 | 
					    vars.owPalettesVar.set('default')
 | 
				
			||||||
 | 
					    owPalettesOptionMenu = OptionMenu(owPalettesFrame, vars.owPalettesVar, 'default', 'random', 'blackout', 'grayscale', 'negative', 'classic', 'dizzy', 'sick', 'puke')
 | 
				
			||||||
 | 
					    owPalettesOptionMenu.pack(side=LEFT)
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					    uwPalettesFrame = Frame(romOptionsFrame)
 | 
				
			||||||
 | 
					    uwPalettesFrame.grid(row=3, column=1, sticky=E)
 | 
				
			||||||
 | 
					    uwPalettesLabel = Label(uwPalettesFrame, text='Dungeon palettes')
 | 
				
			||||||
 | 
					    uwPalettesLabel.pack(side=LEFT)
 | 
				
			||||||
 | 
					    vars.uwPalettesVar = StringVar()
 | 
				
			||||||
 | 
					    vars.uwPalettesVar.set('default')
 | 
				
			||||||
 | 
					    uwPalettesOptionMenu = OptionMenu(uwPalettesFrame, vars.uwPalettesVar, 'default', 'random', 'blackout', 'grayscale', 'negative', 'classic', 'dizzy', 'sick', 'puke')
 | 
				
			||||||
 | 
					    uwPalettesOptionMenu.pack(side=LEFT)
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					    hudPalettesFrame = Frame(romOptionsFrame)
 | 
				
			||||||
 | 
					    hudPalettesFrame.grid(row=4, column=0, sticky=E)
 | 
				
			||||||
 | 
					    hudPalettesLabel = Label(hudPalettesFrame, text='HUD palettes')
 | 
				
			||||||
 | 
					    hudPalettesLabel.pack(side=LEFT)
 | 
				
			||||||
 | 
					    vars.hudPalettesVar = StringVar()
 | 
				
			||||||
 | 
					    vars.hudPalettesVar.set('default')
 | 
				
			||||||
 | 
					    hudPalettesOptionMenu = OptionMenu(hudPalettesFrame, vars.hudPalettesVar, 'default', 'random', 'blackout', 'grayscale', 'negative', 'classic', 'dizzy', 'sick', 'puke')
 | 
				
			||||||
 | 
					    hudPalettesOptionMenu.pack(side=LEFT)
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					    swordPalettesFrame = Frame(romOptionsFrame)
 | 
				
			||||||
 | 
					    swordPalettesFrame.grid(row=4, column=1, sticky=E)
 | 
				
			||||||
 | 
					    swordPalettesLabel = Label(swordPalettesFrame, text='Sword palettes')
 | 
				
			||||||
 | 
					    swordPalettesLabel.pack(side=LEFT)
 | 
				
			||||||
 | 
					    vars.swordPalettesVar = StringVar()
 | 
				
			||||||
 | 
					    vars.swordPalettesVar.set('default')
 | 
				
			||||||
 | 
					    swordPalettesOptionMenu = OptionMenu(swordPalettesFrame, vars.swordPalettesVar, 'default', 'random', 'blackout', 'grayscale', 'negative', 'classic', 'dizzy', 'sick', 'puke')
 | 
				
			||||||
 | 
					    swordPalettesOptionMenu.pack(side=LEFT)
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					    shieldPalettesFrame = Frame(romOptionsFrame)
 | 
				
			||||||
 | 
					    shieldPalettesFrame.grid(row=5, column=0, sticky=E)
 | 
				
			||||||
 | 
					    shieldPalettesLabel = Label(shieldPalettesFrame, text='Shield palettes')
 | 
				
			||||||
 | 
					    shieldPalettesLabel.pack(side=LEFT)
 | 
				
			||||||
 | 
					    vars.shieldPalettesVar = StringVar()
 | 
				
			||||||
 | 
					    vars.shieldPalettesVar.set('default')
 | 
				
			||||||
 | 
					    shieldPalettesOptionMenu = OptionMenu(shieldPalettesFrame, vars.shieldPalettesVar, 'default', 'random', 'blackout', 'grayscale', 'negative', 'classic', 'dizzy', 'sick', 'puke')
 | 
				
			||||||
 | 
					    shieldPalettesOptionMenu.pack(side=LEFT)
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					    return romOptionsFrame, vars, set_sprite
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					
 | 
				
			||||||
class SpriteSelector():
 | 
					class SpriteSelector():
 | 
				
			||||||
    def __init__(self, parent, callback, adjuster=False):
 | 
					    def __init__(self, parent, callback, adjuster=False):
 | 
				
			||||||
        if is_bundled():
 | 
					        self.deploy_icons()
 | 
				
			||||||
            self.deploy_icons()
 | 
					 | 
				
			||||||
        self.parent = parent
 | 
					        self.parent = parent
 | 
				
			||||||
        self.window = Toplevel(parent)
 | 
					        self.window = Toplevel(parent)
 | 
				
			||||||
        self.callback = callback
 | 
					        self.callback = callback
 | 
				
			||||||
| 
						 | 
					
 | 
				
			||||||
| 
						 | 
					@ -25,7 +25,7 @@ class BackgroundTask(object):
 | 
				
			||||||
    def stop(self):
 | 
					    def stop(self):
 | 
				
			||||||
        self.running = False
 | 
					        self.running = False
 | 
				
			||||||
 | 
					
 | 
				
			||||||
    #safe to call from worker
 | 
					    # safe to call from worker
 | 
				
			||||||
    def queue_event(self, event):
 | 
					    def queue_event(self, event):
 | 
				
			||||||
        self.queue.put(event)
 | 
					        self.queue.put(event)
 | 
				
			||||||
 | 
					
 | 
				
			||||||
| 
						 | 
					
 | 
				
			||||||
							
								
								
									
										4
									
								
								Utils.py
								
								
								
								
							
							
						
						
									
										4
									
								
								Utils.py
								
								
								
								
							| 
						 | 
					@ -343,8 +343,8 @@ def get_adjuster_settings(romfile: str) -> typing.Tuple[str, bool]:
 | 
				
			||||||
                                  f"Enter yes, no or never: ")
 | 
					                                  f"Enter yes, no or never: ")
 | 
				
			||||||
        if adjust_wanted and adjust_wanted.startswith("y"):
 | 
					        if adjust_wanted and adjust_wanted.startswith("y"):
 | 
				
			||||||
            adjusted = True
 | 
					            adjusted = True
 | 
				
			||||||
            import AdjusterMain
 | 
					            import Adjuster
 | 
				
			||||||
            _, romfile = AdjusterMain.adjust(adjuster_settings)
 | 
					            _, romfile = Adjuster.adjust(adjuster_settings)
 | 
				
			||||||
        elif adjust_wanted and "never" in adjust_wanted:
 | 
					        elif adjust_wanted and "never" in adjust_wanted:
 | 
				
			||||||
            persistent_store("adjuster", "never_adjust", True)
 | 
					            persistent_store("adjuster", "never_adjust", True)
 | 
				
			||||||
            return romfile, False
 | 
					            return romfile, False
 | 
				
			||||||
| 
						 | 
					
 | 
				
			||||||
							
								
								
									
										7
									
								
								setup.py
								
								
								
								
							
							
						
						
									
										7
									
								
								setup.py
								
								
								
								
							| 
						 | 
					@ -48,8 +48,8 @@ def manifest_creation():
 | 
				
			||||||
            path = os.path.join(dirpath, filename)
 | 
					            path = os.path.join(dirpath, filename)
 | 
				
			||||||
            hashes[os.path.relpath(path, start=buildfolder)] = pool.submit(_threaded_hash, path)
 | 
					            hashes[os.path.relpath(path, start=buildfolder)] = pool.submit(_threaded_hash, path)
 | 
				
			||||||
    import json
 | 
					    import json
 | 
				
			||||||
    manifest = {"buildtime": buildtime.isoformat(sep=" ", timespec="seconds")}
 | 
					    manifest = {"buildtime": buildtime.isoformat(sep=" ", timespec="seconds"),
 | 
				
			||||||
    manifest["hashes"] = {path: hash.result() for path, hash in hashes.items()}
 | 
					                "hashes": {path: hash.result() for path, hash in hashes.items()}}
 | 
				
			||||||
    json.dump(manifest, open(manifestpath, "wt"), indent=4)
 | 
					    json.dump(manifest, open(manifestpath, "wt"), indent=4)
 | 
				
			||||||
    print("Created Manifest")
 | 
					    print("Created Manifest")
 | 
				
			||||||
 | 
					
 | 
				
			||||||
| 
						 | 
					@ -58,7 +58,8 @@ scripts = {"MultiClient.py": "BerserkerMultiClient",
 | 
				
			||||||
           "MultiMystery.py": "BerserkerMultiMystery",
 | 
					           "MultiMystery.py": "BerserkerMultiMystery",
 | 
				
			||||||
           "MultiServer.py": "BerserkerMultiServer",
 | 
					           "MultiServer.py": "BerserkerMultiServer",
 | 
				
			||||||
           "gui.py": "BerserkerMultiCreator",
 | 
					           "gui.py": "BerserkerMultiCreator",
 | 
				
			||||||
           "Mystery.py": "BerserkerMystery"}
 | 
					           "Mystery.py": "BerserkerMystery",
 | 
				
			||||||
 | 
					           "Adjuster.py": "BerserkerLttPAdjuster"}
 | 
				
			||||||
 | 
					
 | 
				
			||||||
exes = []
 | 
					exes = []
 | 
				
			||||||
 | 
					
 | 
				
			||||||
| 
						 | 
					
 | 
				
			||||||
		Loading…
	
		Reference in New Issue