2018-01-01 13:11:11 -05:00 
										
									 
								 
							 
							
								
									
										 
								
							 
							
								 
							
							
								#!/usr/bin/env python3  
						 
					
						
							
								
									
										
										
										
											2017-07-14 14:34:33 +02:00 
										
									 
								 
							 
							
								
							 
							
								 
							
							
								from  argparse  import  Namespace  
						 
					
						
							
								
									
										
										
										
											2017-11-13 00:29:42 -05:00 
										
									 
								 
							 
							
								
									
										 
								
							 
							
								 
							
							
								from  glob  import  glob  
						 
					
						
							
								
									
										
										
										
											2017-11-18 12:22:06 -05:00 
										
									 
								 
							 
							
								
									
										 
								
							 
							
								 
							
							
								import  json  
						 
					
						
							
								
									
										
										
										
											2019-12-10 02:15:03 +01:00 
										
									 
								 
							 
							
								
									
										 
								
							 
							
								 
							
							
								import  logging  
						 
					
						
							
								
									
										
										
										
											2017-07-14 14:34:33 +02:00 
										
									 
								 
							 
							
								
							 
							
								 
							
							
								import  random  
						 
					
						
							
								
									
										
										
										
											2017-11-25 21:49:36 -05:00 
										
									 
								 
							 
							
								
									
										 
								
							 
							
								 
							
							
								import  os  
						 
					
						
							
								
									
										
										
										
											2017-11-13 00:29:42 -05:00 
										
									 
								 
							 
							
								
									
										 
								
							 
							
								 
							
							
								import  shutil  
						 
					
						
							
								
									
										
										
										
											2019-05-30 01:10:16 +02:00 
										
									 
								 
							 
							
								
									
										 
								
							 
							
								 
							
							
								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  
						 
					
						
							
								
									
										
										
										
											2017-11-18 12:22:06 -05:00 
										
									 
								 
							 
							
								
									
										 
								
							 
							
								 
							
							
								from  urllib . parse  import  urlparse  
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								from  urllib . request  import  urlopen  
						 
					
						
							
								
									
										
										
										
											2017-12-08 17:33:59 -05:00 
										
									 
								 
							 
							
								
									
										 
								
							 
							
								 
							
							
								
							 
						 
					
						
							
								
									
										
										
										
											2020-02-02 22:09:10 +01:00 
										
									 
								 
							 
							
								
									
										 
								
							 
							
								 
							
							
								import  ModuleUpdate  
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								ModuleUpdate . update ( )  
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								
							 
						 
					
						
							
								
									
										
										
										
											2017-12-16 19:13:21 -05:00 
										
									 
								 
							 
							
								
									
										 
								
							 
							
								 
							
							
								from  AdjusterMain  import  adjust  
						 
					
						
							
								
									
										
										
										
											2019-12-15 18:10:12 +01:00 
										
									 
								 
							 
							
								
									
										 
								
							 
							
								 
							
							
								from  EntranceRandomizer  import  parse_arguments  
						 
					
						
							
								
									
										
										
										
											2017-12-10 11:10:04 -05:00 
										
									 
								 
							 
							
								
									
										 
								
							 
							
								 
							
							
								from  GuiUtils  import  ToolTips ,  set_icon ,  BackgroundTaskProgress  
						 
					
						
							
								
									
										
										
										
											2017-12-08 17:33:59 -05:00 
										
									 
								 
							 
							
								
									
										 
								
							 
							
								 
							
							
								from  Main  import  main ,  __version__  as  ESVersion  
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								from  Rom  import  Sprite  
						 
					
						
							
								
									
										
										
										
											2020-01-14 10:42:27 +01:00 
										
									 
								 
							 
							
								
									
										 
								
							 
							
								 
							
							
								from  Utils  import  is_bundled ,  local_path ,  output_path ,  open_file  
						 
					
						
							
								
									
										
										
										
											2017-07-14 14:34:33 +02:00 
										
									 
								 
							 
							
								
							 
							
								 
							
							
								
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								def  guiMain ( args = None ) :  
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								    mainWindow  =  Tk ( ) 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								    mainWindow . wm_title ( " Entrance Shuffle  %s "  %  ESVersion ) 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								
							 
						 
					
						
							
								
									
										
										
										
											2017-11-25 21:49:36 -05:00 
										
									 
								 
							 
							
								
									
										 
								
							 
							
								 
							
							
								    set_icon ( mainWindow ) 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								
							 
						 
					
						
							
								
									
										
										
										
											2017-12-16 19:13:21 -05:00 
										
									 
								 
							 
							
								
									
										 
								
							 
							
								 
							
							
								    notebook  =  ttk . Notebook ( mainWindow ) 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								    randomizerWindow  =  ttk . Frame ( notebook ) 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								    adjustWindow  =  ttk . Frame ( notebook ) 
							 
						 
					
						
							
								
									
										
										
										
											2018-01-21 20:43:44 -06:00 
										
									 
								 
							 
							
								
									
										 
								
							 
							
								 
							
							
								    customWindow  =  ttk . Frame ( notebook ) 
							 
						 
					
						
							
								
									
										
										
										
											2017-12-16 19:13:21 -05:00 
										
									 
								 
							 
							
								
									
										 
								
							 
							
								 
							
							
								    notebook . add ( randomizerWindow ,  text = ' Randomize ' ) 
							 
						 
					
						
							
								
									
										
										
										
											2018-01-07 20:10:23 -05:00 
										
									 
								 
							 
							
								
									
										 
								
							 
							
								 
							
							
								    notebook . add ( adjustWindow ,  text = ' Adjust ' ) 
							 
						 
					
						
							
								
									
										
										
										
											2018-01-21 20:43:44 -06:00 
										
									 
								 
							 
							
								
									
										 
								
							 
							
								 
							
							
								    notebook . add ( customWindow ,  text = ' Custom ' ) 
							 
						 
					
						
							
								
									
										
										
										
											2017-12-12 08:17:52 -06:00 
										
									 
								 
							 
							
								
									
										 
								
							 
							
								 
							
							
								    notebook . pack ( ) 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								
							 
						 
					
						
							
								
									
										
										
										
											2017-12-16 15:41:24 -05:00 
										
									 
								 
							 
							
								
									
										 
								
							 
							
								 
							
							
								    # Shared Controls 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								    farBottomFrame  =  Frame ( mainWindow ) 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								    def  open_output ( ) : 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								        open_file ( output_path ( ' ' ) ) 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								    openOutputButton  =  Button ( farBottomFrame ,  text = ' Open Output Directory ' ,  command = open_output ) 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								    if  os . path . exists ( local_path ( ' README.html ' ) ) : 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								        def  open_readme ( ) : 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								            open_file ( local_path ( ' README.html ' ) ) 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								        openReadmeButton  =  Button ( farBottomFrame ,  text = ' Open Documentation ' ,  command = open_readme ) 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								        openReadmeButton . pack ( side = LEFT ) 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								    farBottomFrame . pack ( side = BOTTOM ,  fill = X ,  padx = 5 ,  pady = 5 ) 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								    # randomizer controls 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								
							 
						 
					
						
							
								
									
										
										
										
											2017-12-12 08:17:52 -06:00 
										
									 
								 
							 
							
								
									
										 
								
							 
							
								 
							
							
								    topFrame  =  Frame ( randomizerWindow ) 
							 
						 
					
						
							
								
									
										
										
										
											2017-07-14 14:34:33 +02:00 
										
									 
								 
							 
							
								
							 
							
								 
							
							
								    rightHalfFrame  =  Frame ( topFrame ) 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								    checkBoxFrame  =  Frame ( rightHalfFrame ) 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								    createSpoilerVar  =  IntVar ( ) 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								    createSpoilerCheckbutton  =  Checkbutton ( checkBoxFrame ,  text = " Create Spoiler Log " ,  variable = createSpoilerVar ) 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								    suppressRomVar  =  IntVar ( ) 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								    suppressRomCheckbutton  =  Checkbutton ( checkBoxFrame ,  text = " Do not create patched Rom " ,  variable = suppressRomVar ) 
							 
						 
					
						
							
								
									
										
										
										
											2019-12-12 09:20:32 +01:00 
										
									 
								 
							 
							
								
									
										 
								
							 
							
								 
							
							
								    openpyramidVar  =  IntVar ( ) 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								    openpyramidCheckbutton  =  Checkbutton ( checkBoxFrame ,  text = " Pre-open Pyramid Hole " ,  variable = openpyramidVar ) 
							 
						 
					
						
							
								
									
										
										
										
											2019-12-13 22:37:52 +01:00 
										
									 
								 
							 
							
								
									
										 
								
							 
							
								 
							
							
								    mcsbshuffleFrame  =  Frame ( checkBoxFrame ) 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								    mcsbLabel  =  Label ( mcsbshuffleFrame ,  text = " Shuffle:  " ) 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								    mapshuffleVar  =  IntVar ( ) 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								    mapshuffleCheckbutton  =  Checkbutton ( mcsbshuffleFrame ,  text = " Maps " ,  variable = mapshuffleVar ) 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								    compassshuffleVar  =  IntVar ( ) 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								    compassshuffleCheckbutton  =  Checkbutton ( mcsbshuffleFrame ,  text = " Compasses " ,  variable = compassshuffleVar ) 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								    keyshuffleVar  =  IntVar ( ) 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								    keyshuffleCheckbutton  =  Checkbutton ( mcsbshuffleFrame ,  text = " Keys " ,  variable = keyshuffleVar ) 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								    bigkeyshuffleVar  =  IntVar ( ) 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								    bigkeyshuffleCheckbutton  =  Checkbutton ( mcsbshuffleFrame ,  text = " BigKeys " ,  variable = bigkeyshuffleVar ) 
							 
						 
					
						
							
								
									
										
										
										
											2018-03-14 13:31:36 -05:00 
										
									 
								 
							 
							
								
									
										 
								
							 
							
								 
							
							
								    retroVar  =  IntVar ( ) 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								    retroCheckbutton  =  Checkbutton ( checkBoxFrame ,  text = " Retro mode (universal keys) " ,  variable = retroVar ) 
							 
						 
					
						
							
								
									
										
										
										
											2017-07-17 22:28:29 +02:00 
										
									 
								 
							 
							
								
									
										 
								
							 
							
								 
							
							
								    shuffleGanonVar  =  IntVar ( ) 
							 
						 
					
						
							
								
									
										
										
										
											2018-01-27 17:11:53 -05:00 
										
									 
								 
							 
							
								
									
										 
								
							 
							
								 
							
							
								    shuffleGanonVar . set ( 1 )  #set default 
							 
						 
					
						
							
								
									
										
										
										
											2017-07-17 22:28:29 +02:00 
										
									 
								 
							 
							
								
									
										 
								
							 
							
								 
							
							
								    shuffleGanonCheckbutton  =  Checkbutton ( checkBoxFrame ,  text = " Include Ganon ' s Tower and Pyramid Hole in shuffle pool " ,  variable = shuffleGanonVar ) 
							 
						 
					
						
							
								
									
										
										
										
											2019-01-23 03:04:42 -06:00 
										
									 
								 
							 
							
								
									
										 
								
							 
							
								 
							
							
								    hintsVar  =  IntVar ( ) 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								    hintsVar . set ( 1 )  #set default 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								    hintsCheckbutton  =  Checkbutton ( checkBoxFrame ,  text = " Include Helpful Hints " ,  variable = hintsVar ) 
							 
						 
					
						
							
								
									
										
										
										
											2018-01-21 20:43:44 -06:00 
										
									 
								 
							 
							
								
									
										 
								
							 
							
								 
							
							
								    customVar  =  IntVar ( ) 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								    customCheckbutton  =  Checkbutton ( checkBoxFrame ,  text = " Use custom item pool " ,  variable = customVar ) 
							 
						 
					
						
							
								
									
										
										
										
											2020-05-11 02:17:18 +02:00 
										
									 
								 
							 
							
								
									
										 
								
							 
							
								 
							
							
								    balancingVar  =  IntVar ( ) 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								    balancingVar . set ( 1 )  #set default 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								    balancingCheckbutton  =  Checkbutton ( checkBoxFrame ,  text = " Multiworld Progression Balancing " ,  variable = balancingVar ) 
							 
						 
					
						
							
								
									
										
										
										
											2017-07-14 14:34:33 +02:00 
										
									 
								 
							 
							
								
							 
							
								 
							
							
								    createSpoilerCheckbutton . pack ( expand = True ,  anchor = W ) 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								    suppressRomCheckbutton . pack ( expand = True ,  anchor = W ) 
							 
						 
					
						
							
								
									
										
										
										
											2019-12-12 09:20:32 +01:00 
										
									 
								 
							 
							
								
									
										 
								
							 
							
								 
							
							
								    openpyramidCheckbutton . pack ( expand = True ,  anchor = W ) 
							 
						 
					
						
							
								
									
										
										
										
											2019-12-13 22:37:52 +01:00 
										
									 
								 
							 
							
								
									
										 
								
							 
							
								 
							
							
								    mcsbshuffleFrame . pack ( expand = True ,  anchor = W ) 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								    mcsbLabel . grid ( row = 0 ,  column = 0 ) 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								    mapshuffleCheckbutton . grid ( row = 0 ,  column = 1 ) 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								    compassshuffleCheckbutton . grid ( row = 0 ,  column = 2 ) 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								    keyshuffleCheckbutton . grid ( row = 0 ,  column = 3 ) 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								    bigkeyshuffleCheckbutton . grid ( row = 0 ,  column = 4 ) 
							 
						 
					
						
							
								
									
										
										
										
											2018-03-14 13:31:36 -05:00 
										
									 
								 
							 
							
								
									
										 
								
							 
							
								 
							
							
								    retroCheckbutton . pack ( expand = True ,  anchor = W ) 
							 
						 
					
						
							
								
									
										
										
										
											2017-07-17 22:28:29 +02:00 
										
									 
								 
							 
							
								
									
										 
								
							 
							
								 
							
							
								    shuffleGanonCheckbutton . pack ( expand = True ,  anchor = W ) 
							 
						 
					
						
							
								
									
										
										
										
											2019-01-23 03:04:42 -06:00 
										
									 
								 
							 
							
								
									
										 
								
							 
							
								 
							
							
								    hintsCheckbutton . pack ( expand = True ,  anchor = W ) 
							 
						 
					
						
							
								
									
										
										
										
											2018-01-21 20:43:44 -06:00 
										
									 
								 
							 
							
								
									
										 
								
							 
							
								 
							
							
								    customCheckbutton . pack ( expand = True ,  anchor = W ) 
							 
						 
					
						
							
								
									
										
										
										
											2020-05-11 02:17:18 +02:00 
										
									 
								 
							 
							
								
									
										 
								
							 
							
								 
							
							
								    balancingCheckbutton . pack ( expand = True ,  anchor = W ) 
							 
						 
					
						
							
								
									
										
										
										
											2017-11-04 14:23:57 -04:00 
										
									 
								 
							 
							
								
									
										 
								
							 
							
								 
							
							
								
							 
						 
					
						
							
								
									
										
										
										
											2020-01-08 03:43:48 +01:00 
										
									 
								 
							 
							
								
									
										 
								
							 
							
								 
							
							
								    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 ) 
							 
						 
					
						
							
								
									
										
										
										
											2017-11-04 14:23:57 -04:00 
										
									 
								 
							 
							
								
									
										 
								
							 
							
								 
							
							
								
							 
						 
					
						
							
								
									
										
										
										
											2020-01-08 03:43:48 +01:00 
										
									 
								 
							 
							
								
									
										 
								
							 
							
								 
							
							
								    disableMusicVar  =  IntVar ( ) 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								    disableMusicCheckbutton  =  Checkbutton ( romOptionsFrame ,  text = " Disable music " ,  variable = disableMusicVar ) 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								    disableMusicCheckbutton . grid ( row = 0 ,  column = 0 ,  sticky = E ) 
							 
						 
					
						
							
								
									
										
										
										
											2017-07-14 14:34:33 +02:00 
										
									 
								 
							 
							
								
							 
							
								 
							
							
								
							 
						 
					
						
							
								
									
										
										
										
											2020-01-08 03:43:48 +01:00 
										
									 
								 
							 
							
								
									
										 
								
							 
							
								 
							
							
								    spriteDialogFrame  =  Frame ( romOptionsFrame ) 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								    spriteDialogFrame . grid ( row = 0 ,  column = 1 ) 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								    baseSpriteLabel  =  Label ( spriteDialogFrame ,  text = ' Sprite: ' ) 
							 
						 
					
						
							
								
									
										
										
										
											2017-12-08 19:28:22 -05:00 
										
									 
								 
							 
							
								
									
										 
								
							 
							
								 
							
							
								
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								    spriteNameVar  =  StringVar ( ) 
							 
						 
					
						
							
								
									
										
										
										
											2017-12-17 00:25:46 -05:00 
										
									 
								 
							 
							
								
									
										 
								
							 
							
								 
							
							
								    sprite  =  None 
							 
						 
					
						
							
								
									
										
										
										
											2017-12-08 19:28:22 -05:00 
										
									 
								 
							 
							
								
									
										 
								
							 
							
								 
							
							
								    def  set_sprite ( sprite_param ) : 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								        nonlocal  sprite 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								        if  sprite_param  is  None  or  not  sprite_param . valid : 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								            sprite  =  None 
							 
						 
					
						
							
								
									
										
										
										
											2018-01-05 00:42:35 -05:00 
										
									 
								 
							 
							
								
									
										 
								
							 
							
								 
							
							
								            spriteNameVar . set ( ' (unchanged) ' ) 
							 
						 
					
						
							
								
									
										
										
										
											2017-12-08 19:28:22 -05:00 
										
									 
								 
							 
							
								
									
										 
								
							 
							
								 
							
							
								        else : 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								            sprite  =  sprite_param 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								            spriteNameVar . set ( sprite . name ) 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								    set_sprite ( None ) 
							 
						 
					
						
							
								
									
										
										
										
											2018-01-05 00:42:35 -05:00 
										
									 
								 
							 
							
								
									
										 
								
							 
							
								 
							
							
								    spriteNameVar . set ( ' (unchanged) ' ) 
							 
						 
					
						
							
								
									
										
										
										
											2017-12-08 19:28:22 -05:00 
										
									 
								 
							 
							
								
									
										 
								
							 
							
								 
							
							
								    spriteEntry  =  Label ( spriteDialogFrame ,  textvariable = spriteNameVar ) 
							 
						 
					
						
							
								
									
										
										
										
											2017-07-14 14:34:33 +02:00 
										
									 
								 
							 
							
								
							 
							
								 
							
							
								
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								    def  SpriteSelect ( ) : 
							 
						 
					
						
							
								
									
										
										
										
											2017-12-08 19:28:22 -05:00 
										
									 
								 
							 
							
								
									
										 
								
							 
							
								 
							
							
								        SpriteSelector ( mainWindow ,  set_sprite ) 
							 
						 
					
						
							
								
									
										
										
										
											2017-07-14 14:34:33 +02:00 
										
									 
								 
							 
							
								
							 
							
								 
							
							
								
							 
						 
					
						
							
								
									
										
										
										
											2020-01-08 03:43:48 +01:00 
										
									 
								 
							 
							
								
									
										 
								
							 
							
								 
							
							
								    spriteSelectButton  =  Button ( spriteDialogFrame ,  text = ' ... ' ,  command = SpriteSelect ) 
							 
						 
					
						
							
								
									
										
										
										
											2017-07-14 14:34:33 +02:00 
										
									 
								 
							 
							
								
							 
							
								 
							
							
								
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								    baseSpriteLabel . pack ( side = LEFT ) 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								    spriteEntry . pack ( side = LEFT ) 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								    spriteSelectButton . pack ( side = LEFT ) 
							 
						 
					
						
							
								
									
										
										
										
											2017-11-04 14:23:57 -04:00 
										
									 
								 
							 
							
								
									
										 
								
							 
							
								 
							
							
								
							 
						 
					
						
							
								
									
										
										
										
											2020-01-08 03:43:48 +01:00 
										
									 
								 
							 
							
								
									
										 
								
							 
							
								 
							
							
								    quickSwapVar  =  IntVar ( ) 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								    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 ' ) 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								    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 ' ) 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								    uwPalettesOptionMenu . pack ( side = LEFT ) 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								    romDialogFrame  =  Frame ( romOptionsFrame ) 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								    romDialogFrame . grid ( row = 4 ,  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 " ,  " * " ) ] ) 
							 
						 
					
						
							
								
									
										
										
										
											2020-03-30 07:46:40 +02:00 
										
									 
								 
							 
							
								
									
										 
								
							 
							
								 
							
							
								        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 " 
							 
						 
					
						
							
								
									
										
										
										
											2020-01-08 03:43:48 +01:00 
										
									 
								 
							 
							
								
									
										 
								
							 
							
								 
							
							
								    romSelectButton  =  Button ( romDialogFrame ,  text = ' Select Rom ' ,  command = RomSelect ) 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								    baseRomLabel . pack ( side = LEFT ) 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								    romEntry . pack ( side = LEFT ,  expand = True ,  fill = X ) 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								    romSelectButton . pack ( side = LEFT ) 
							 
						 
					
						
							
								
									
										
										
										
											2017-07-14 14:34:33 +02:00 
										
									 
								 
							 
							
								
							 
							
								 
							
							
								
							 
						 
					
						
							
								
									
										
										
										
											2020-01-08 03:43:48 +01:00 
										
									 
								 
							 
							
								
									
										 
								
							 
							
								 
							
							
								    checkBoxFrame . pack ( side = TOP ,  anchor = W ,  padx = 5 ,  pady = 10 ) 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								    romOptionsFrame . pack ( expand = True ,  fill = BOTH ,  padx = 3 ) 
							 
						 
					
						
							
								
									
										
										
										
											2017-07-14 14:34:33 +02:00 
										
									 
								 
							 
							
								
							 
							
								 
							
							
								
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								    drowDownFrame  =  Frame ( topFrame ) 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								    modeFrame  =  Frame ( drowDownFrame ) 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								    modeVar  =  StringVar ( ) 
							 
						 
					
						
							
								
									
										
										
										
											2017-08-03 11:15:07 -07:00 
										
									 
								 
							 
							
								
									
										 
								
							 
							
								 
							
							
								    modeVar . set ( ' open ' ) 
							 
						 
					
						
							
								
									
										
										
										
											2019-08-04 12:32:35 -04:00 
										
									 
								 
							 
							
								
									
										 
								
							 
							
								 
							
							
								    modeOptionMenu  =  OptionMenu ( modeFrame ,  modeVar ,  ' standard ' ,  ' open ' ,  ' inverted ' ) 
							 
						 
					
						
							
								
									
										
										
										
											2017-07-14 14:34:33 +02:00 
										
									 
								 
							 
							
								
							 
							
								 
							
							
								    modeOptionMenu . pack ( side = RIGHT ) 
							 
						 
					
						
							
								
									
										
										
										
											2019-10-23 20:46:09 -05:00 
										
									 
								 
							 
							
								
									
										 
								
							 
							
								 
							
							
								    modeLabel  =  Label ( modeFrame ,  text = ' Game mode ' ) 
							 
						 
					
						
							
								
									
										
										
										
											2017-07-14 14:34:33 +02:00 
										
									 
								 
							 
							
								
							 
							
								 
							
							
								    modeLabel . pack ( side = LEFT ) 
							 
						 
					
						
							
								
									
										
										
										
											2017-11-04 14:23:57 -04:00 
										
									 
								 
							 
							
								
									
										 
								
							 
							
								 
							
							
								
							 
						 
					
						
							
								
									
										
										
										
											2017-07-14 14:34:33 +02:00 
										
									 
								 
							 
							
								
							 
							
								 
							
							
								    logicFrame  =  Frame ( drowDownFrame ) 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								    logicVar  =  StringVar ( ) 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								    logicVar . set ( ' noglitches ' ) 
							 
						 
					
						
							
								
									
										
										
										
											2020-01-02 23:59:28 -04:00 
										
									 
								 
							 
							
								
									
										 
								
							 
							
								 
							
							
								    logicOptionMenu  =  OptionMenu ( logicFrame ,  logicVar ,  ' noglitches ' ,  ' minorglitches ' ,  ' owglitches ' ,  ' nologic ' ) 
							 
						 
					
						
							
								
									
										
										
										
											2017-07-14 14:34:33 +02:00 
										
									 
								 
							 
							
								
							 
							
								 
							
							
								    logicOptionMenu . pack ( side = RIGHT ) 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								    logicLabel  =  Label ( logicFrame ,  text = ' Game logic ' ) 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								    logicLabel . pack ( side = LEFT ) 
							 
						 
					
						
							
								
									
										
										
										
											2017-11-04 14:23:57 -04:00 
										
									 
								 
							 
							
								
									
										 
								
							 
							
								 
							
							
								
							 
						 
					
						
							
								
									
										
										
										
											2017-07-14 14:34:33 +02:00 
										
									 
								 
							 
							
								
							 
							
								 
							
							
								    goalFrame  =  Frame ( drowDownFrame ) 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								    goalVar  =  StringVar ( ) 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								    goalVar . set ( ' ganon ' ) 
							 
						 
					
						
							
								
									
										
										
										
											2020-06-03 02:19:16 +02:00 
										
									 
								 
							 
							
								
									
										 
								
							 
							
								 
							
							
								    goalOptionMenu  =  OptionMenu ( goalFrame ,  goalVar ,  ' ganon ' ,  ' pedestal ' ,  ' dungeons ' ,  ' triforcehunt ' , 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								                                ' localtriforcehunt ' ,  ' crystals ' ) 
							 
						 
					
						
							
								
									
										
										
										
											2017-07-14 14:34:33 +02:00 
										
									 
								 
							 
							
								
							 
							
								 
							
							
								    goalOptionMenu . pack ( side = RIGHT ) 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								    goalLabel  =  Label ( goalFrame ,  text = ' Game goal ' ) 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								    goalLabel . pack ( side = LEFT ) 
							 
						 
					
						
							
								
									
										
										
										
											2017-11-04 14:23:57 -04:00 
										
									 
								 
							 
							
								
									
										 
								
							 
							
								 
							
							
								
							 
						 
					
						
							
								
									
										
										
										
											2019-10-23 20:46:09 -05:00 
										
									 
								 
							 
							
								
									
										 
								
							 
							
								 
							
							
								    crystalsGTFrame  =  Frame ( drowDownFrame ) 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								    crystalsGTVar  =  StringVar ( ) 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								    crystalsGTVar . set ( ' 7 ' ) 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								    crystalsGTOptionMenu  =  OptionMenu ( crystalsGTFrame ,  crystalsGTVar ,  ' 0 ' ,  ' 1 ' ,  ' 2 ' ,  ' 3 ' ,  ' 4 ' ,  ' 5 ' ,  ' 6 ' ,  ' 7 ' ,  ' random ' ) 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								    crystalsGTOptionMenu . pack ( side = RIGHT ) 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								    crystalsGTLabel  =  Label ( crystalsGTFrame ,  text = ' Crystals to open Ganon \' s Tower ' ) 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								    crystalsGTLabel . pack ( side = LEFT ) 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								    crystalsGanonFrame  =  Frame ( drowDownFrame ) 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								    crystalsGanonVar  =  StringVar ( ) 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								    crystalsGanonVar . set ( ' 7 ' ) 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								    crystalsGanonOptionMenu  =  OptionMenu ( crystalsGanonFrame ,  crystalsGanonVar ,  ' 0 ' ,  ' 1 ' ,  ' 2 ' ,  ' 3 ' ,  ' 4 ' ,  ' 5 ' ,  ' 6 ' ,  ' 7 ' ,  ' random ' ) 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								    crystalsGanonOptionMenu . pack ( side = RIGHT ) 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								    crystalsGanonLabel  =  Label ( crystalsGanonFrame ,  text = ' Crystals to fight Ganon ' ) 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								    crystalsGanonLabel . pack ( side = LEFT ) 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								    swordFrame  =  Frame ( drowDownFrame ) 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								    swordVar  =  StringVar ( ) 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								    swordVar . set ( ' random ' ) 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								    swordOptionMenu  =  OptionMenu ( swordFrame ,  swordVar ,  ' random ' ,  ' assured ' ,  ' swordless ' ,  ' vanilla ' ) 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								    swordOptionMenu . pack ( side = RIGHT ) 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								    swordLabel  =  Label ( swordFrame ,  text = ' Sword availability ' ) 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								    swordLabel . pack ( side = LEFT ) 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								
							 
						 
					
						
							
								
									
										
										
										
											2017-07-14 14:34:33 +02:00 
										
									 
								 
							 
							
								
							 
							
								 
							
							
								    difficultyFrame  =  Frame ( drowDownFrame ) 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								    difficultyVar  =  StringVar ( ) 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								    difficultyVar . set ( ' normal ' ) 
							 
						 
					
						
							
								
									
										
										
										
											2019-08-04 12:32:35 -04:00 
										
									 
								 
							 
							
								
									
										 
								
							 
							
								 
							
							
								    difficultyOptionMenu  =  OptionMenu ( difficultyFrame ,  difficultyVar ,  ' normal ' ,  ' hard ' ,  ' expert ' ) 
							 
						 
					
						
							
								
									
										
										
										
											2017-07-14 14:34:33 +02:00 
										
									 
								 
							 
							
								
							 
							
								 
							
							
								    difficultyOptionMenu . pack ( side = RIGHT ) 
							 
						 
					
						
							
								
									
										
										
										
											2019-10-23 20:46:09 -05:00 
										
									 
								 
							 
							
								
									
										 
								
							 
							
								 
							
							
								    difficultyLabel  =  Label ( difficultyFrame ,  text = ' Difficulty: item pool ' ) 
							 
						 
					
						
							
								
									
										
										
										
											2017-07-14 14:34:33 +02:00 
										
									 
								 
							 
							
								
							 
							
								 
							
							
								    difficultyLabel . pack ( side = LEFT ) 
							 
						 
					
						
							
								
									
										
										
										
											2017-11-04 14:23:57 -04:00 
										
									 
								 
							 
							
								
									
										 
								
							 
							
								 
							
							
								
							 
						 
					
						
							
								
									
										
										
										
											2019-10-23 20:46:09 -05:00 
										
									 
								 
							 
							
								
									
										 
								
							 
							
								 
							
							
								    itemfunctionFrame  =  Frame ( drowDownFrame ) 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								    itemfunctionVar  =  StringVar ( ) 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								    itemfunctionVar . set ( ' normal ' ) 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								    itemfunctionOptionMenu  =  OptionMenu ( itemfunctionFrame ,  itemfunctionVar ,  ' normal ' ,  ' hard ' ,  ' expert ' ) 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								    itemfunctionOptionMenu . pack ( side = RIGHT ) 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								    itemfunctionLabel  =  Label ( itemfunctionFrame ,  text = ' Difficulty: item functionality ' ) 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								    itemfunctionLabel . pack ( side = LEFT ) 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								
							 
						 
					
						
							
								
									
										
										
										
											2017-11-10 04:18:39 -06:00 
										
									 
								 
							 
							
								
									
										 
								
							 
							
								 
							
							
								    timerFrame  =  Frame ( drowDownFrame ) 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								    timerVar  =  StringVar ( ) 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								    timerVar . set ( ' none ' ) 
							 
						 
					
						
							
								
									
										
										
										
											2017-11-18 20:36:42 -05:00 
										
									 
								 
							 
							
								
									
										 
								
							 
							
								 
							
							
								    timerOptionMenu  =  OptionMenu ( timerFrame ,  timerVar ,  ' none ' ,  ' display ' ,  ' timed ' ,  ' timed-ohko ' ,  ' ohko ' ,  ' timed-countdown ' ) 
							 
						 
					
						
							
								
									
										
										
										
											2017-11-10 04:18:39 -06:00 
										
									 
								 
							 
							
								
									
										 
								
							 
							
								 
							
							
								    timerOptionMenu . pack ( side = RIGHT ) 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								    timerLabel  =  Label ( timerFrame ,  text = ' Timer setting ' ) 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								    timerLabel . pack ( side = LEFT ) 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								
							 
						 
					
						
							
								
									
										
										
										
											2020-04-12 15:46:32 -07:00 
										
									 
								 
							 
							
								
									
										 
								
							 
							
								 
							
							
								    dungeonCounterFrame  =  Frame ( drowDownFrame ) 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								    dungeonCounterVar  =  StringVar ( ) 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								    dungeonCounterVar . set ( ' auto ' ) 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								    dungeonCounterOptionMenu  =  OptionMenu ( dungeonCounterFrame ,  dungeonCounterVar ,  ' auto ' ,  ' off ' ,  ' on ' ,  ' on_compass_pickup ' ) 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								    dungeonCounterOptionMenu . pack ( side = RIGHT ) 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								    dungeonCounterLabel  =  Label ( dungeonCounterFrame ,  text = ' Dungeon Chest Counters ' ) 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								    dungeonCounterLabel . pack ( side = LEFT ) 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								
							 
						 
					
						
							
								
									
										
										
										
											2017-11-10 04:18:39 -06:00 
										
									 
								 
							 
							
								
									
										 
								
							 
							
								 
							
							
								    progressiveFrame  =  Frame ( drowDownFrame ) 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								    progressiveVar  =  StringVar ( ) 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								    progressiveVar . set ( ' on ' ) 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								    progressiveOptionMenu  =  OptionMenu ( progressiveFrame ,  progressiveVar ,  ' on ' ,  ' off ' ,  ' random ' ) 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								    progressiveOptionMenu . pack ( side = RIGHT ) 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								    progressiveLabel  =  Label ( progressiveFrame ,  text = ' Progressive equipment ' ) 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								    progressiveLabel . pack ( side = LEFT ) 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								
							 
						 
					
						
							
								
									
										
										
										
											2019-10-23 20:46:09 -05:00 
										
									 
								 
							 
							
								
									
										 
								
							 
							
								 
							
							
								    accessibilityFrame  =  Frame ( drowDownFrame ) 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								    accessibilityVar  =  StringVar ( ) 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								    accessibilityVar . set ( ' items ' ) 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								    accessibilityOptionMenu  =  OptionMenu ( accessibilityFrame ,  accessibilityVar ,  ' items ' ,  ' locations ' ,  ' none ' ) 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								    accessibilityOptionMenu . pack ( side = RIGHT ) 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								    accessibilityLabel  =  Label ( accessibilityFrame ,  text = ' Item accessibility ' ) 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								    accessibilityLabel . pack ( side = LEFT ) 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								
							 
						 
					
						
							
								
									
										
										
										
											2017-07-14 14:34:33 +02:00 
										
									 
								 
							 
							
								
							 
							
								 
							
							
								    algorithmFrame  =  Frame ( drowDownFrame ) 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								    algorithmVar  =  StringVar ( ) 
							 
						 
					
						
							
								
									
										
										
										
											2017-11-11 15:28:34 -06:00 
										
									 
								 
							 
							
								
									
										 
								
							 
							
								 
							
							
								    algorithmVar . set ( ' balanced ' ) 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								    algorithmOptionMenu  =  OptionMenu ( algorithmFrame ,  algorithmVar ,  ' freshness ' ,  ' flood ' ,  ' vt21 ' ,  ' vt22 ' ,  ' vt25 ' ,  ' vt26 ' ,  ' balanced ' ) 
							 
						 
					
						
							
								
									
										
										
										
											2017-07-14 14:34:33 +02:00 
										
									 
								 
							 
							
								
							 
							
								 
							
							
								    algorithmOptionMenu . pack ( side = RIGHT ) 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								    algorithmLabel  =  Label ( algorithmFrame ,  text = ' Item distribution algorithm ' ) 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								    algorithmLabel . pack ( side = LEFT ) 
							 
						 
					
						
							
								
									
										
										
										
											2017-11-04 14:23:57 -04:00 
										
									 
								 
							 
							
								
									
										 
								
							 
							
								 
							
							
								
							 
						 
					
						
							
								
									
										
										
										
											2017-07-14 14:34:33 +02:00 
										
									 
								 
							 
							
								
							 
							
								 
							
							
								    shuffleFrame  =  Frame ( drowDownFrame ) 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								    shuffleVar  =  StringVar ( ) 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								    shuffleVar . set ( ' full ' ) 
							 
						 
					
						
							
								
									
										
										
										
											2018-02-20 14:34:39 -06:00 
										
									 
								 
							 
							
								
									
										 
								
							 
							
								 
							
							
								    shuffleOptionMenu  =  OptionMenu ( shuffleFrame ,  shuffleVar ,  ' vanilla ' ,  ' simple ' ,  ' restricted ' ,  ' full ' ,  ' crossed ' ,  ' insanity ' ,  ' restricted_legacy ' ,  ' full_legacy ' ,  ' madness_legacy ' ,  ' insanity_legacy ' ,  ' dungeonsfull ' ,  ' dungeonssimple ' ) 
							 
						 
					
						
							
								
									
										
										
										
											2017-07-14 14:34:33 +02:00 
										
									 
								 
							 
							
								
							 
							
								 
							
							
								    shuffleOptionMenu . pack ( side = RIGHT ) 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								    shuffleLabel  =  Label ( shuffleFrame ,  text = ' Entrance shuffle algorithm ' ) 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								    shuffleLabel . pack ( side = LEFT ) 
							 
						 
					
						
							
								
									
										
										
										
											2017-11-04 14:23:57 -04:00 
										
									 
								 
							 
							
								
									
										 
								
							 
							
								 
							
							
								
							 
						 
					
						
							
								
									
										
										
										
											2017-07-14 14:34:33 +02:00 
										
									 
								 
							 
							
								
							 
							
								 
							
							
								    modeFrame . pack ( expand = True ,  anchor = E ) 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								    logicFrame . pack ( expand = True ,  anchor = E ) 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								    goalFrame . pack ( expand = True ,  anchor = E ) 
							 
						 
					
						
							
								
									
										
										
										
											2019-10-23 20:46:09 -05:00 
										
									 
								 
							 
							
								
									
										 
								
							 
							
								 
							
							
								    crystalsGTFrame . pack ( expand = True ,  anchor = E ) 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								    crystalsGanonFrame . pack ( expand = True ,  anchor = E ) 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								    swordFrame . pack ( expand = True ,  anchor = E ) 
							 
						 
					
						
							
								
									
										
										
										
											2017-07-14 14:34:33 +02:00 
										
									 
								 
							 
							
								
							 
							
								 
							
							
								    difficultyFrame . pack ( expand = True ,  anchor = E ) 
							 
						 
					
						
							
								
									
										
										
										
											2019-10-23 20:46:09 -05:00 
										
									 
								 
							 
							
								
									
										 
								
							 
							
								 
							
							
								    itemfunctionFrame . pack ( expand = True ,  anchor = E ) 
							 
						 
					
						
							
								
									
										
										
										
											2017-11-10 04:18:39 -06:00 
										
									 
								 
							 
							
								
									
										 
								
							 
							
								 
							
							
								    timerFrame . pack ( expand = True ,  anchor = E ) 
							 
						 
					
						
							
								
									
										
										
										
											2020-04-12 15:46:32 -07:00 
										
									 
								 
							 
							
								
									
										 
								
							 
							
								 
							
							
								    dungeonCounterFrame . pack ( expand = True ,  anchor = E ) 
							 
						 
					
						
							
								
									
										
										
										
											2017-11-10 04:18:39 -06:00 
										
									 
								 
							 
							
								
									
										 
								
							 
							
								 
							
							
								    progressiveFrame . pack ( expand = True ,  anchor = E ) 
							 
						 
					
						
							
								
									
										
										
										
											2019-10-23 20:46:09 -05:00 
										
									 
								 
							 
							
								
									
										 
								
							 
							
								 
							
							
								    accessibilityFrame . pack ( expand = True ,  anchor = E ) 
							 
						 
					
						
							
								
									
										
										
										
											2017-07-14 14:34:33 +02:00 
										
									 
								 
							 
							
								
							 
							
								 
							
							
								    algorithmFrame . pack ( expand = True ,  anchor = E ) 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								    shuffleFrame . pack ( expand = True ,  anchor = E ) 
							 
						 
					
						
							
								
									
										
										
										
											2017-11-04 14:23:57 -04:00 
										
									 
								 
							 
							
								
									
										 
								
							 
							
								 
							
							
								
							 
						 
					
						
							
								
									
										
										
										
											2020-01-08 03:43:48 +01:00 
										
									 
								 
							 
							
								
									
										 
								
							 
							
								 
							
							
								    enemizerFrame  =  LabelFrame ( randomizerWindow ,  text = " Enemizer " ,  padx = 5 ,  pady = 2 ) 
							 
						 
					
						
							
								
									
										
										
										
											2020-06-10 19:57:01 +02:00 
										
									 
								 
							 
							
								
									
										 
								
							 
							
								 
							
							
								
							 
						 
					
						
							
								
									
										
										
										
											2019-05-30 01:10:16 +02:00 
										
									 
								 
							 
							
								
									
										 
								
							 
							
								 
							
							
								
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								    enemizerPathFrame  =  Frame ( enemizerFrame ) 
							 
						 
					
						
							
								
									
										
										
										
											2020-01-08 03:43:48 +01:00 
										
									 
								 
							 
							
								
									
										 
								
							 
							
								 
							
							
								    enemizerPathFrame . grid ( row = 0 ,  column = 0 ,  columnspan = 3 ,  sticky = W + E ,  padx = 3 ) 
							 
						 
					
						
							
								
									
										
										
										
											2019-05-30 01:10:16 +02:00 
										
									 
								 
							 
							
								
									
										 
								
							 
							
								 
							
							
								    enemizerCLIlabel  =  Label ( enemizerPathFrame ,  text = " EnemizerCLI path:  " ) 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								    enemizerCLIlabel . pack ( side = LEFT ) 
							 
						 
					
						
							
								
									
										
										
										
											2020-01-06 18:39:18 +01:00 
										
									 
								 
							 
							
								
									
										 
								
							 
							
								 
							
							
								    enemizerCLIpathVar  =  StringVar ( value = " EnemizerCLI/EnemizerCLI.Core " ) 
							 
						 
					
						
							
								
									
										
										
										
											2020-01-08 03:43:48 +01:00 
										
									 
								 
							 
							
								
									
										 
								
							 
							
								 
							
							
								    enemizerCLIpathEntry  =  Entry ( enemizerPathFrame ,  textvariable = enemizerCLIpathVar ) 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								    enemizerCLIpathEntry . pack ( side = LEFT ,  expand = True ,  fill = X ) 
							 
						 
					
						
							
								
									
										
										
										
											2019-05-30 01:10:16 +02:00 
										
									 
								 
							 
							
								
									
										 
								
							 
							
								 
							
							
								    def  EnemizerSelectPath ( ) : 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								        path  =  filedialog . askopenfilename ( filetypes = [ ( " EnemizerCLI executable " ,  " *EnemizerCLI* " ) ] ) 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								        if  path : 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								            enemizerCLIpathVar . set ( path ) 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								    enemizerCLIbrowseButton  =  Button ( enemizerPathFrame ,  text = ' ... ' ,  command = EnemizerSelectPath ) 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								    enemizerCLIbrowseButton . pack ( side = LEFT ) 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								    potShuffleVar  =  IntVar ( ) 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								    potShuffleButton  =  Checkbutton ( enemizerFrame ,  text = " Pot shuffle " ,  variable = potShuffleVar ) 
							 
						 
					
						
							
								
									
										
										
										
											2020-01-08 03:43:48 +01:00 
										
									 
								 
							 
							
								
									
										 
								
							 
							
								 
							
							
								    potShuffleButton . grid ( row = 0 ,  column = 3 ) 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								    enemizerEnemyFrame  =  Frame ( enemizerFrame ) 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								    enemizerEnemyFrame . grid ( row = 1 ,  column = 0 ,  pady = 5 ) 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								    enemizerEnemyLabel  =  Label ( enemizerEnemyFrame ,  text = ' Enemy shuffle ' ) 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								    enemizerEnemyLabel . pack ( side = LEFT ) 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								    enemyShuffleVar  =  StringVar ( ) 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								    enemyShuffleVar . set ( ' none ' ) 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								    enemizerEnemyOption  =  OptionMenu ( enemizerEnemyFrame ,  enemyShuffleVar ,  ' none ' ,  ' shuffled ' ,  ' chaos ' ) 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								    enemizerEnemyOption . pack ( side = LEFT ) 
							 
						 
					
						
							
								
									
										
										
										
											2019-05-30 01:10:16 +02:00 
										
									 
								 
							 
							
								
									
										 
								
							 
							
								 
							
							
								
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								    enemizerBossFrame  =  Frame ( enemizerFrame ) 
							 
						 
					
						
							
								
									
										
										
										
											2020-01-08 03:43:48 +01:00 
										
									 
								 
							 
							
								
									
										 
								
							 
							
								 
							
							
								    enemizerBossFrame . grid ( row = 1 ,  column = 1 ) 
							 
						 
					
						
							
								
									
										
										
										
											2019-05-30 01:10:16 +02:00 
										
									 
								 
							 
							
								
									
										 
								
							 
							
								 
							
							
								    enemizerBossLabel  =  Label ( enemizerBossFrame ,  text = ' Boss shuffle ' ) 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								    enemizerBossLabel . pack ( side = LEFT ) 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								    enemizerBossVar  =  StringVar ( ) 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								    enemizerBossVar . set ( ' none ' ) 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								    enemizerBossOption  =  OptionMenu ( enemizerBossFrame ,  enemizerBossVar ,  ' none ' ,  ' basic ' ,  ' normal ' ,  ' chaos ' ) 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								    enemizerBossOption . pack ( side = LEFT ) 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								    enemizerDamageFrame  =  Frame ( enemizerFrame ) 
							 
						 
					
						
							
								
									
										
										
										
											2020-01-08 03:43:48 +01:00 
										
									 
								 
							 
							
								
									
										 
								
							 
							
								 
							
							
								    enemizerDamageFrame . grid ( row = 1 ,  column = 2 ) 
							 
						 
					
						
							
								
									
										
										
										
											2019-05-30 01:10:16 +02:00 
										
									 
								 
							 
							
								
									
										 
								
							 
							
								 
							
							
								    enemizerDamageLabel  =  Label ( enemizerDamageFrame ,  text = ' Enemy damage ' ) 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								    enemizerDamageLabel . pack ( side = LEFT ) 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								    enemizerDamageVar  =  StringVar ( ) 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								    enemizerDamageVar . set ( ' default ' ) 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								    enemizerDamageOption  =  OptionMenu ( enemizerDamageFrame ,  enemizerDamageVar ,  ' default ' ,  ' shuffled ' ,  ' chaos ' ) 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								    enemizerDamageOption . pack ( side = LEFT ) 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								    enemizerHealthFrame  =  Frame ( enemizerFrame ) 
							 
						 
					
						
							
								
									
										
										
										
											2020-01-08 03:43:48 +01:00 
										
									 
								 
							 
							
								
									
										 
								
							 
							
								 
							
							
								    enemizerHealthFrame . grid ( row = 1 ,  column = 3 ) 
							 
						 
					
						
							
								
									
										
										
										
											2019-05-30 01:10:16 +02:00 
										
									 
								 
							 
							
								
									
										 
								
							 
							
								 
							
							
								    enemizerHealthLabel  =  Label ( enemizerHealthFrame ,  text = ' Enemy health ' ) 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								    enemizerHealthLabel . pack ( side = LEFT ) 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								    enemizerHealthVar  =  StringVar ( ) 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								    enemizerHealthVar . set ( ' default ' ) 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								    enemizerHealthOption  =  OptionMenu ( enemizerHealthFrame ,  enemizerHealthVar ,  ' default ' ,  ' easy ' ,  ' normal ' ,  ' hard ' ,  ' expert ' ) 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								    enemizerHealthOption . pack ( side = LEFT ) 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								
							 
						 
					
						
							
								
									
										
										
										
											2020-06-10 19:57:01 +02:00 
										
									 
								 
							 
							
								
									
										 
								
							 
							
								 
							
							
								    multiworldframe  =  LabelFrame ( randomizerWindow ,  text = " Multiworld " ,  padx = 5 ,  pady = 2 ) 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								
							 
						 
					
						
							
								
									
										
										
										
											2017-07-14 14:34:33 +02:00 
										
									 
								 
							 
							
								
							 
							
								 
							
							
								
							 
						 
					
						
							
								
									
										
										
										
											2020-06-10 19:57:01 +02:00 
										
									 
								 
							 
							
								
									
										 
								
							 
							
								 
							
							
								    worldLabel  =  Label ( multiworldframe ,  text = ' Worlds ' ) 
							 
						 
					
						
							
								
									
										
										
										
											2019-04-18 11:23:24 +02:00 
										
									 
								 
							 
							
								
									
										 
								
							 
							
								 
							
							
								    worldVar  =  StringVar ( ) 
							 
						 
					
						
							
								
									
										
										
										
											2020-06-10 19:57:01 +02:00 
										
									 
								 
							 
							
								
									
										 
								
							 
							
								 
							
							
								    worldSpinbox  =  Spinbox ( multiworldframe ,  from_ = 1 ,  to = 255 ,  width = 5 ,  textvariable = worldVar ) 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								    namesLabel  =  Label ( multiworldframe ,  text = ' Player names ' ) 
							 
						 
					
						
							
								
									
										
										
										
											2019-12-09 19:27:56 +01:00 
										
									 
								 
							 
							
								
									
										 
								
							 
							
								 
							
							
								    namesVar  =  StringVar ( ) 
							 
						 
					
						
							
								
									
										
										
										
											2020-06-10 19:57:01 +02:00 
										
									 
								 
							 
							
								
									
										 
								
							 
							
								 
							
							
								    namesEntry  =  Entry ( multiworldframe ,  textvariable = namesVar ) 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								    seedLabel  =  Label ( multiworldframe ,  text = ' Seed # ' ) 
							 
						 
					
						
							
								
									
										
										
										
											2017-07-14 14:34:33 +02:00 
										
									 
								 
							 
							
								
							 
							
								 
							
							
								    seedVar  =  StringVar ( ) 
							 
						 
					
						
							
								
									
										
										
										
											2020-06-10 19:57:01 +02:00 
										
									 
								 
							 
							
								
									
										 
								
							 
							
								 
							
							
								    seedEntry  =  Entry ( multiworldframe ,  width = 15 ,  textvariable = seedVar ) 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								    countLabel  =  Label ( multiworldframe ,  text = ' Count ' ) 
							 
						 
					
						
							
								
									
										
										
										
											2017-07-14 14:34:33 +02:00 
										
									 
								 
							 
							
								
							 
							
								 
							
							
								    countVar  =  StringVar ( ) 
							 
						 
					
						
							
								
									
										
										
										
											2020-06-10 19:57:01 +02:00 
										
									 
								 
							 
							
								
									
										 
								
							 
							
								 
							
							
								    countSpinbox  =  Spinbox ( multiworldframe ,  from_ = 1 ,  to = 100 ,  width = 5 ,  textvariable = countVar ) 
							 
						 
					
						
							
								
									
										
										
										
											2017-07-14 14:34:33 +02:00 
										
									 
								 
							 
							
								
							 
							
								 
							
							
								
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								    def  generateRom ( ) : 
							 
						 
					
						
							
								
									
										
										
										
											2019-12-17 21:14:20 +01:00 
										
									 
								 
							 
							
								
									
										 
								
							 
							
								 
							
							
								        guiargs  =  Namespace ( ) 
							 
						 
					
						
							
								
									
										
										
										
											2019-04-18 11:23:24 +02:00 
										
									 
								 
							 
							
								
									
										 
								
							 
							
								 
							
							
								        guiargs . multi  =  int ( worldVar . get ( ) ) 
							 
						 
					
						
							
								
									
										
										
										
											2019-12-09 19:27:56 +01:00 
										
									 
								 
							 
							
								
									
										 
								
							 
							
								 
							
							
								        guiargs . names  =  namesVar . get ( ) 
							 
						 
					
						
							
								
									
										
										
										
											2017-07-14 14:34:33 +02:00 
										
									 
								 
							 
							
								
							 
							
								 
							
							
								        guiargs . seed  =  int ( seedVar . get ( ) )  if  seedVar . get ( )  else  None 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								        guiargs . count  =  int ( countVar . get ( ) )  if  countVar . get ( )  !=  ' 1 '  else  None 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								        guiargs . mode  =  modeVar . get ( ) 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								        guiargs . logic  =  logicVar . get ( ) 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								        guiargs . goal  =  goalVar . get ( ) 
							 
						 
					
						
							
								
									
										
										
										
											2019-10-23 20:46:09 -05:00 
										
									 
								 
							 
							
								
									
										 
								
							 
							
								 
							
							
								        guiargs . crystals_gt  =  crystalsGTVar . get ( ) 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								        guiargs . crystals_ganon  =  crystalsGanonVar . get ( ) 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								        guiargs . swords  =  swordVar . get ( ) 
							 
						 
					
						
							
								
									
										
										
										
											2017-07-14 14:34:33 +02:00 
										
									 
								 
							 
							
								
							 
							
								 
							
							
								        guiargs . difficulty  =  difficultyVar . get ( ) 
							 
						 
					
						
							
								
									
										
										
										
											2019-10-23 20:46:09 -05:00 
										
									 
								 
							 
							
								
									
										 
								
							 
							
								 
							
							
								        guiargs . item_functionality  =  itemfunctionVar . get ( ) 
							 
						 
					
						
							
								
									
										
										
										
											2017-11-10 04:18:39 -06:00 
										
									 
								 
							 
							
								
									
										 
								
							 
							
								 
							
							
								        guiargs . timer  =  timerVar . get ( ) 
							 
						 
					
						
							
								
									
										
										
										
											2020-05-11 02:17:18 +02:00 
										
									 
								 
							 
							
								
									
										 
								
							 
							
								 
							
							
								        guiargs . skip_progression_balancing  =  not  balancingVar . get ( ) 
							 
						 
					
						
							
								
									
										
										
										
											2020-03-04 13:55:03 +01:00 
										
									 
								 
							 
							
								
									
										 
								
							 
							
								 
							
							
								        if  guiargs . timer  ==  " none " : 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								            guiargs . timer  =  False 
							 
						 
					
						
							
								
									
										
										
										
											2020-04-12 15:46:32 -07:00 
										
									 
								 
							 
							
								
									
										 
								
							 
							
								 
							
							
								        guiargs . dungeon_counters  =  dungeonCounterVar . get ( ) 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								        if  guiargs . dungeon_counters  ==  " on_compass_pickup " : 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								            guiargs . dungeon_counters  =  " pickup " 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								        elif  guiargs . dungeon_counters  ==  " on " : 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								            guiargs . dungeon_counters  =  True 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								        elif  guiargs . dungeon_counters  ==  " off " : 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								            guiargs . dungeon_counters  =  False 
							 
						 
					
						
							
								
									
										
										
										
											2017-11-10 04:18:39 -06:00 
										
									 
								 
							 
							
								
									
										 
								
							 
							
								 
							
							
								        guiargs . progressive  =  progressiveVar . get ( ) 
							 
						 
					
						
							
								
									
										
										
										
											2019-10-23 20:46:09 -05:00 
										
									 
								 
							 
							
								
									
										 
								
							 
							
								 
							
							
								        guiargs . accessibility  =  accessibilityVar . get ( ) 
							 
						 
					
						
							
								
									
										
										
										
											2017-07-14 14:34:33 +02:00 
										
									 
								 
							 
							
								
							 
							
								 
							
							
								        guiargs . algorithm  =  algorithmVar . get ( ) 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								        guiargs . shuffle  =  shuffleVar . get ( ) 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								        guiargs . heartbeep  =  heartbeepVar . get ( ) 
							 
						 
					
						
							
								
									
										
										
										
											2018-02-27 20:26:33 -06:00 
										
									 
								 
							 
							
								
									
										 
								
							 
							
								 
							
							
								        guiargs . heartcolor  =  heartcolorVar . get ( ) 
							 
						 
					
						
							
								
									
										
										
										
											2018-01-05 16:53:29 -06:00 
										
									 
								 
							 
							
								
									
										 
								
							 
							
								 
							
							
								        guiargs . fastmenu  =  fastMenuVar . get ( ) 
							 
						 
					
						
							
								
									
										
										
										
											2017-07-14 14:34:33 +02:00 
										
									 
								 
							 
							
								
							 
							
								 
							
							
								        guiargs . create_spoiler  =  bool ( createSpoilerVar . get ( ) ) 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								        guiargs . suppress_rom  =  bool ( suppressRomVar . get ( ) ) 
							 
						 
					
						
							
								
									
										
										
										
											2019-12-12 09:20:32 +01:00 
										
									 
								 
							 
							
								
									
										 
								
							 
							
								 
							
							
								        guiargs . openpyramid  =  bool ( openpyramidVar . get ( ) ) 
							 
						 
					
						
							
								
									
										
										
										
											2019-12-13 22:37:52 +01:00 
										
									 
								 
							 
							
								
									
										 
								
							 
							
								 
							
							
								        guiargs . mapshuffle  =  bool ( mapshuffleVar . get ( ) ) 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								        guiargs . compassshuffle  =  bool ( compassshuffleVar . get ( ) ) 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								        guiargs . keyshuffle  =  bool ( keyshuffleVar . get ( ) ) 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								        guiargs . bigkeyshuffle  =  bool ( bigkeyshuffleVar . get ( ) ) 
							 
						 
					
						
							
								
									
										
										
										
											2018-03-14 13:31:36 -05:00 
										
									 
								 
							 
							
								
									
										 
								
							 
							
								 
							
							
								        guiargs . retro  =  bool ( retroVar . get ( ) ) 
							 
						 
					
						
							
								
									
										
										
										
											2017-07-14 14:34:33 +02:00 
										
									 
								 
							 
							
								
							 
							
								 
							
							
								        guiargs . quickswap  =  bool ( quickSwapVar . get ( ) ) 
							 
						 
					
						
							
								
									
										
										
										
											2017-11-28 04:54:14 -06:00 
										
									 
								 
							 
							
								
									
										 
								
							 
							
								 
							
							
								        guiargs . disablemusic  =  bool ( disableMusicVar . get ( ) ) 
							 
						 
					
						
							
								
									
										
										
										
											2020-01-08 03:43:48 +01:00 
										
									 
								 
							 
							
								
									
										 
								
							 
							
								 
							
							
								        guiargs . ow_palettes  =  owPalettesVar . get ( ) 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								        guiargs . uw_palettes  =  uwPalettesVar . get ( ) 
							 
						 
					
						
							
								
									
										
										
										
											2017-07-17 22:28:29 +02:00 
										
									 
								 
							 
							
								
									
										 
								
							 
							
								 
							
							
								        guiargs . shuffleganon  =  bool ( shuffleGanonVar . get ( ) ) 
							 
						 
					
						
							
								
									
										
										
										
											2019-01-23 03:04:42 -06:00 
										
									 
								 
							 
							
								
									
										 
								
							 
							
								 
							
							
								        guiargs . hints  =  bool ( hintsVar . get ( ) ) 
							 
						 
					
						
							
								
									
										
										
										
											2019-05-30 01:10:16 +02:00 
										
									 
								 
							 
							
								
									
										 
								
							 
							
								 
							
							
								        guiargs . enemizercli  =  enemizerCLIpathVar . get ( ) 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								        guiargs . shufflebosses  =  enemizerBossVar . get ( ) 
							 
						 
					
						
							
								
									
										
										
										
											2020-01-08 03:43:48 +01:00 
										
									 
								 
							 
							
								
									
										 
								
							 
							
								 
							
							
								        guiargs . shuffleenemies  =  enemyShuffleVar . get ( ) 
							 
						 
					
						
							
								
									
										
										
										
											2019-05-30 01:10:16 +02:00 
										
									 
								 
							 
							
								
									
										 
								
							 
							
								 
							
							
								        guiargs . enemy_health  =  enemizerHealthVar . get ( ) 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								        guiargs . enemy_damage  =  enemizerDamageVar . get ( ) 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								        guiargs . shufflepots  =  bool ( potShuffleVar . get ( ) ) 
							 
						 
					
						
							
								
									
										
										
										
											2018-01-21 20:43:44 -06:00 
										
									 
								 
							 
							
								
									
										 
								
							 
							
								 
							
							
								        guiargs . custom  =  bool ( customVar . get ( ) ) 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								        guiargs . customitemarray  =  [ int ( bowVar . get ( ) ) ,  int ( silverarrowVar . get ( ) ) ,  int ( boomerangVar . get ( ) ) ,  int ( magicboomerangVar . get ( ) ) ,  int ( hookshotVar . get ( ) ) ,  int ( mushroomVar . get ( ) ) ,  int ( magicpowderVar . get ( ) ) ,  int ( firerodVar . get ( ) ) , 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								                                   int ( icerodVar . get ( ) ) ,  int ( bombosVar . get ( ) ) ,  int ( etherVar . get ( ) ) ,  int ( quakeVar . get ( ) ) ,  int ( lampVar . get ( ) ) ,  int ( hammerVar . get ( ) ) ,  int ( shovelVar . get ( ) ) ,  int ( fluteVar . get ( ) ) ,  int ( bugnetVar . get ( ) ) , 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								                                   int ( bookVar . get ( ) ) ,  int ( bottleVar . get ( ) ) ,  int ( somariaVar . get ( ) ) ,  int ( byrnaVar . get ( ) ) ,  int ( capeVar . get ( ) ) ,  int ( mirrorVar . get ( ) ) ,  int ( bootsVar . get ( ) ) ,  int ( powergloveVar . get ( ) ) ,  int ( titansmittVar . get ( ) ) , 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								                                   int ( proggloveVar . get ( ) ) ,  int ( flippersVar . get ( ) ) ,  int ( pearlVar . get ( ) ) ,  int ( heartpieceVar . get ( ) ) ,  int ( fullheartVar . get ( ) ) ,  int ( sancheartVar . get ( ) ) ,  int ( sword1Var . get ( ) ) ,  int ( sword2Var . get ( ) ) , 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								                                   int ( sword3Var . get ( ) ) ,  int ( sword4Var . get ( ) ) ,  int ( progswordVar . get ( ) ) ,  int ( shield1Var . get ( ) ) ,  int ( shield2Var . get ( ) ) ,  int ( shield3Var . get ( ) ) ,  int ( progshieldVar . get ( ) ) ,  int ( bluemailVar . get ( ) ) , 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								                                   int ( redmailVar . get ( ) ) ,  int ( progmailVar . get ( ) ) ,  int ( halfmagicVar . get ( ) ) ,  int ( quartermagicVar . get ( ) ) ,  int ( bcap5Var . get ( ) ) ,  int ( bcap10Var . get ( ) ) ,  int ( acap5Var . get ( ) ) ,  int ( acap10Var . get ( ) ) , 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								                                   int ( arrow1Var . get ( ) ) ,  int ( arrow10Var . get ( ) ) ,  int ( bomb1Var . get ( ) ) ,  int ( bomb3Var . get ( ) ) ,  int ( rupee1Var . get ( ) ) ,  int ( rupee5Var . get ( ) ) ,  int ( rupee20Var . get ( ) ) ,  int ( rupee50Var . get ( ) ) ,  int ( rupee100Var . get ( ) ) , 
							 
						 
					
						
							
								
									
										
										
										
											2019-10-23 21:31:02 -05:00 
										
									 
								 
							 
							
								
									
										 
								
							 
							
								 
							
							
								                                   int ( rupee300Var . get ( ) ) ,  int ( rupoorVar . get ( ) ) ,  int ( blueclockVar . get ( ) ) ,  int ( greenclockVar . get ( ) ) ,  int ( redclockVar . get ( ) ) ,  int ( progbowVar . get ( ) ) ,  int ( bomb10Var . get ( ) ) ,  int ( triforcepieceVar . get ( ) ) , 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								                                   int ( triforcecountVar . get ( ) ) ,  int ( triforceVar . get ( ) ) ,   int ( rupoorcostVar . get ( ) ) ,  int ( universalkeyVar . get ( ) ) ] 
							 
						 
					
						
							
								
									
										
										
										
											2017-07-14 14:34:33 +02:00 
										
									 
								 
							 
							
								
							 
							
								 
							
							
								        guiargs . rom  =  romVar . get ( ) 
							 
						 
					
						
							
								
									
										
										
										
											2017-12-08 19:28:22 -05:00 
										
									 
								 
							 
							
								
									
										 
								
							 
							
								 
							
							
								        guiargs . sprite  =  sprite 
							 
						 
					
						
							
								
									
										
										
										
											2019-12-15 18:10:12 +01:00 
										
									 
								 
							 
							
								
									
										 
								
							 
							
								 
							
							
								        # get default values for missing parameters 
							 
						 
					
						
							
								
									
										
										
										
											2019-12-31 01:16:41 +01:00 
										
									 
								 
							 
							
								
									
										 
								
							 
							
								 
							
							
								        for  k , v  in  vars ( parse_arguments ( [ ' --multi ' ,  str ( guiargs . multi ) ] ) ) . items ( ) : 
							 
						 
					
						
							
								
									
										
										
										
											2019-12-15 18:10:12 +01:00 
										
									 
								 
							 
							
								
									
										 
								
							 
							
								 
							
							
								            if  k  not  in  vars ( guiargs ) : 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								                setattr ( guiargs ,  k ,  v ) 
							 
						 
					
						
							
								
									
										
										
										
											2019-12-17 21:14:20 +01:00 
										
									 
								 
							 
							
								
									
										 
								
							 
							
								 
							
							
								            elif  type ( v )  is  dict :  # use same settings for every player 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								                setattr ( guiargs ,  k ,  { player :  getattr ( guiargs ,  k )  for  player  in  range ( 1 ,  guiargs . multi  +  1 ) } ) 
							 
						 
					
						
							
								
									
										
										
										
											2017-07-14 14:34:33 +02:00 
										
									 
								 
							 
							
								
							 
							
								 
							
							
								        try : 
							 
						 
					
						
							
								
									
										
										
										
											2020-03-30 07:46:40 +02:00 
										
									 
								 
							 
							
								
									
										 
								
							 
							
								 
							
							
								            if  not  guiargs . suppress_rom  and  not  os . path . exists ( guiargs . rom ) : 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								                raise  FileNotFoundError ( f " Could not find specified rom file  { guiargs . rom } " ) 
							 
						 
					
						
							
								
									
										
										
										
											2017-07-14 14:34:33 +02:00 
										
									 
								 
							 
							
								
							 
							
								 
							
							
								            if  guiargs . count  is  not  None : 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								                seed  =  guiargs . seed 
							 
						 
					
						
							
								
									
										
										
										
											2017-12-17 00:25:46 -05:00 
										
									 
								 
							 
							
								
									
										 
								
							 
							
								 
							
							
								                for  _  in  range ( guiargs . count ) : 
							 
						 
					
						
							
								
									
										
										
										
											2017-07-14 14:34:33 +02:00 
										
									 
								 
							 
							
								
							 
							
								 
							
							
								                    main ( seed = seed ,  args = guiargs ) 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								                    seed  =  random . randint ( 0 ,  999999999 ) 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								            else : 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								                main ( seed = guiargs . seed ,  args = guiargs ) 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								        except  Exception  as  e : 
							 
						 
					
						
							
								
									
										
										
										
											2019-12-10 02:15:03 +01:00 
										
									 
								 
							 
							
								
									
										 
								
							 
							
								 
							
							
								            logging . exception ( e ) 
							 
						 
					
						
							
								
									
										
										
										
											2017-07-14 14:34:33 +02:00 
										
									 
								 
							 
							
								
							 
							
								 
							
							
								            messagebox . showerror ( title = " Error while creating seed " ,  message = str ( e ) ) 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								        else : 
							 
						 
					
						
							
								
									
										
										
										
											2020-01-14 10:42:27 +01:00 
										
									 
								 
							 
							
								
									
										 
								
							 
							
								 
							
							
								            messagebox . showinfo ( title = " Success " ,  message = " Rom patched successfully " ) 
							 
						 
					
						
							
								
									
										
										
										
											2017-07-14 14:34:33 +02:00 
										
									 
								 
							 
							
								
							 
							
								 
							
							
								
							 
						 
					
						
							
								
									
										
										
										
											2020-06-10 19:57:01 +02:00 
										
									 
								 
							 
							
								
									
										 
								
							 
							
								 
							
							
								    generateButton  =  Button ( farBottomFrame ,  text = ' Generate Patched Rom ' ,  command = generateRom ) 
							 
						 
					
						
							
								
									
										
										
										
											2017-07-14 14:34:33 +02:00 
										
									 
								 
							 
							
								
							 
							
								 
							
							
								
							 
						 
					
						
							
								
									
										
										
										
											2019-04-18 11:23:24 +02:00 
										
									 
								 
							 
							
								
									
										 
								
							 
							
								 
							
							
								    worldLabel . pack ( side = LEFT ) 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								    worldSpinbox . pack ( side = LEFT ) 
							 
						 
					
						
							
								
									
										
										
										
											2019-12-09 19:27:56 +01:00 
										
									 
								 
							 
							
								
									
										 
								
							 
							
								 
							
							
								    namesLabel . pack ( side = LEFT ) 
							 
						 
					
						
							
								
									
										
										
										
											2020-06-10 19:57:01 +02:00 
										
									 
								 
							 
							
								
									
										 
								
							 
							
								 
							
							
								    namesEntry . pack ( side = LEFT ,  expand = True ,  fill = X ) 
							 
						 
					
						
							
								
									
										
										
										
											2019-04-18 11:23:24 +02:00 
										
									 
								 
							 
							
								
									
										 
								
							 
							
								 
							
							
								    seedLabel . pack ( side = LEFT ,   padx = ( 5 ,  0 ) ) 
							 
						 
					
						
							
								
									
										
										
										
											2017-07-14 14:34:33 +02:00 
										
									 
								 
							 
							
								
							 
							
								 
							
							
								    seedEntry . pack ( side = LEFT ) 
							 
						 
					
						
							
								
									
										
										
										
											2017-12-17 00:25:46 -05:00 
										
									 
								 
							 
							
								
									
										 
								
							 
							
								 
							
							
								    countLabel . pack ( side = LEFT ,  padx = ( 5 ,  0 ) ) 
							 
						 
					
						
							
								
									
										
										
										
											2017-07-14 14:34:33 +02:00 
										
									 
								 
							 
							
								
							 
							
								 
							
							
								    countSpinbox . pack ( side = LEFT ) 
							 
						 
					
						
							
								
									
										
										
										
											2020-06-10 19:57:01 +02:00 
										
									 
								 
							 
							
								
									
										 
								
							 
							
								 
							
							
								    generateButton . pack ( side = RIGHT ,  padx = ( 5 ,  0 ) ) 
							 
						 
					
						
							
								
									
										
										
										
											2017-11-25 21:49:36 -05:00 
										
									 
								 
							 
							
								
									
										 
								
							 
							
								 
							
							
								
							 
						 
					
						
							
								
									
										
										
										
											2020-06-10 19:57:01 +02:00 
										
									 
								 
							 
							
								
									
										 
								
							 
							
								 
							
							
								    openOutputButton . pack ( side = LEFT ) 
							 
						 
					
						
							
								
									
										
										
										
											2017-07-14 14:34:33 +02:00 
										
									 
								 
							 
							
								
							 
							
								 
							
							
								
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								    drowDownFrame . pack ( side = LEFT ) 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								    rightHalfFrame . pack ( side = RIGHT ) 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								    topFrame . pack ( side = TOP ) 
							 
						 
					
						
							
								
									
										
										
										
											2020-06-10 19:57:01 +02:00 
										
									 
								 
							 
							
								
									
										 
								
							 
							
								 
							
							
								    multiworldframe . pack ( side = BOTTOM ,  expand = True ,  fill = X ) 
							 
						 
					
						
							
								
									
										
										
										
											2019-05-30 01:10:16 +02:00 
										
									 
								 
							 
							
								
									
										 
								
							 
							
								 
							
							
								    enemizerFrame . pack ( side = BOTTOM ,  fill = BOTH ) 
							 
						 
					
						
							
								
									
										
										
										
											2017-07-14 14:34:33 +02:00 
										
									 
								 
							 
							
								
							 
							
								 
							
							
								
							 
						 
					
						
							
								
									
										
										
										
											2017-12-16 15:41:24 -05:00 
										
									 
								 
							 
							
								
									
										 
								
							 
							
								 
							
							
								    # Adjuster Controls 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								
							 
						 
					
						
							
								
									
										
										
										
											2017-12-12 08:17:52 -06:00 
										
									 
								 
							 
							
								
									
										 
								
							 
							
								 
							
							
								    topFrame2  =  Frame ( adjustWindow ) 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								    rightHalfFrame2  =  Frame ( topFrame2 ) 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								    checkBoxFrame2  =  Frame ( rightHalfFrame2 ) 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								
							 
						 
					
						
							
								
									
										
										
										
											2017-12-16 15:41:24 -05:00 
										
									 
								 
							 
							
								
									
										 
								
							 
							
								 
							
							
								    quickSwapCheckbutton2  =  Checkbutton ( checkBoxFrame2 ,  text = " Enabled L/R Item quickswapping " ,  variable = quickSwapVar ) 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								    disableMusicCheckbutton2  =  Checkbutton ( checkBoxFrame2 ,  text = " Disable game music " ,  variable = disableMusicVar ) 
							 
						 
					
						
							
								
									
										
										
										
											2017-12-12 08:17:52 -06:00 
										
									 
								 
							 
							
								
									
										 
								
							 
							
								 
							
							
								
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								    quickSwapCheckbutton2 . pack ( expand = True ,  anchor = W ) 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								    disableMusicCheckbutton2 . 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 ( ) : 
							 
						 
					
						
							
								
									
										
										
										
											2018-01-07 01:31:56 -05:00 
										
									 
								 
							 
							
								
									
										 
								
							 
							
								 
							
							
								        rom  =  filedialog . askopenfilename ( filetypes = [ ( " Rom Files " ,  ( " .sfc " ,  " .smc " ) ) ,  ( " All Files " ,  " * " ) ] ) 
							 
						 
					
						
							
								
									
										
										
										
											2017-12-12 08:17:52 -06:00 
										
									 
								 
							 
							
								
									
										 
								
							 
							
								 
							
							
								        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 ' ) 
							 
						 
					
						
							
								
									
										
										
										
											2017-12-16 19:13:21 -05:00 
										
									 
								 
							 
							
								
									
										 
								
							 
							
								 
							
							
								    spriteEntry2  =  Label ( spriteDialogFrame2 ,  textvariable = spriteNameVar ) 
							 
						 
					
						
							
								
									
										
										
										
											2017-12-12 08:17:52 -06:00 
										
									 
								 
							 
							
								
									
										 
								
							 
							
								 
							
							
								
							 
						 
					
						
							
								
									
										
										
										
											2018-01-05 00:42:35 -05:00 
										
									 
								 
							 
							
								
									
										 
								
							 
							
								 
							
							
								    def  SpriteSelectAdjuster ( ) : 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								        SpriteSelector ( mainWindow ,  set_sprite ,  adjuster = True ) 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								    spriteSelectButton2  =  Button ( spriteDialogFrame2 ,  text = ' Select Sprite ' ,  command = SpriteSelectAdjuster ) 
							 
						 
					
						
							
								
									
										
										
										
											2017-12-12 08:17:52 -06:00 
										
									 
								 
							 
							
								
									
										 
								
							 
							
								 
							
							
								
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								    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 ) 
							 
						 
					
						
							
								
									
										
										
										
											2018-09-26 17:34:15 -04:00 
										
									 
								 
							 
							
								
									
										 
								
							 
							
								 
							
							
								    heartbeepOptionMenu2  =  OptionMenu ( heartbeepFrame2 ,  heartbeepVar ,  ' double ' ,  ' normal ' ,  ' half ' ,  ' quarter ' ,  ' off ' ) 
							 
						 
					
						
							
								
									
										
										
										
											2017-12-12 08:17:52 -06:00 
										
									 
								 
							 
							
								
									
										 
								
							 
							
								 
							
							
								    heartbeepOptionMenu2 . pack ( side = RIGHT ) 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								    heartbeepLabel2  =  Label ( heartbeepFrame2 ,  text = ' Heartbeep sound rate ' ) 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								    heartbeepLabel2 . pack ( side = LEFT ) 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								
							 
						 
					
						
							
								
									
										
										
										
											2018-02-27 20:26:33 -06:00 
										
									 
								 
							 
							
								
									
										 
								
							 
							
								 
							
							
								    heartcolorFrame2  =  Frame ( drowDownFrame2 ) 
							 
						 
					
						
							
								
									
										
										
										
											2019-04-15 14:28:14 -05:00 
										
									 
								 
							 
							
								
									
										 
								
							 
							
								 
							
							
								    heartcolorOptionMenu2  =  OptionMenu ( heartcolorFrame2 ,  heartcolorVar ,  ' red ' ,  ' blue ' ,  ' green ' ,  ' yellow ' ,  ' random ' ) 
							 
						 
					
						
							
								
									
										
										
										
											2018-02-27 20:26:33 -06:00 
										
									 
								 
							 
							
								
									
										 
								
							 
							
								 
							
							
								    heartcolorOptionMenu2 . pack ( side = RIGHT ) 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								    heartcolorLabel2  =  Label ( heartcolorFrame2 ,  text = ' Heart color ' ) 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								    heartcolorLabel2 . pack ( side = LEFT ) 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								
							 
						 
					
						
							
								
									
										
										
										
											2018-01-05 16:53:29 -06:00 
										
									 
								 
							 
							
								
									
										 
								
							 
							
								 
							
							
								    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 ) 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								
							 
						 
					
						
							
								
									
										
										
										
											2020-01-08 03:43:48 +01:00 
										
									 
								 
							 
							
								
									
										 
								
							 
							
								 
							
							
								    owPalettesFrame2  =  Frame ( drowDownFrame2 ) 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								    owPalettesOptionMenu2  =  OptionMenu ( owPalettesFrame2 ,  owPalettesVar ,  ' default ' ,  ' random ' ,  ' blackout ' ) 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								    owPalettesOptionMenu2 . pack ( side = RIGHT ) 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								    owPalettesLabel2  =  Label ( owPalettesFrame2 ,  text = ' Overworld palettes ' ) 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								    owPalettesLabel2 . pack ( side = LEFT ) 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								    uwPalettesFrame2  =  Frame ( drowDownFrame2 ) 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								    uwPalettesOptionMenu2  =  OptionMenu ( uwPalettesFrame2 ,  uwPalettesVar ,  ' default ' ,  ' random ' ,  ' blackout ' ) 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								    uwPalettesOptionMenu2 . pack ( side = RIGHT ) 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								    uwPalettesLabel2  =  Label ( uwPalettesFrame2 ,  text = ' Dungeon palettes ' ) 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								    uwPalettesLabel2 . pack ( side = LEFT ) 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								
							 
						 
					
						
							
								
									
										
										
										
											2017-12-12 08:17:52 -06:00 
										
									 
								 
							 
							
								
									
										 
								
							 
							
								 
							
							
								    heartbeepFrame2 . pack ( expand = True ,  anchor = E ) 
							 
						 
					
						
							
								
									
										
										
										
											2018-02-27 20:26:33 -06:00 
										
									 
								 
							 
							
								
									
										 
								
							 
							
								 
							
							
								    heartcolorFrame2 . pack ( expand = True ,  anchor = E ) 
							 
						 
					
						
							
								
									
										
										
										
											2018-01-05 16:53:29 -06:00 
										
									 
								 
							 
							
								
									
										 
								
							 
							
								 
							
							
								    fastMenuFrame2 . pack ( expand = True ,  anchor = E ) 
							 
						 
					
						
							
								
									
										
										
										
											2020-01-08 03:43:48 +01:00 
										
									 
								 
							 
							
								
									
										 
								
							 
							
								 
							
							
								    owPalettesFrame2 . pack ( expand = True ,  anchor = E ) 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								    uwPalettesFrame2 . pack ( expand = True ,  anchor = E ) 
							 
						 
					
						
							
								
									
										
										
										
											2017-12-12 08:17:52 -06:00 
										
									 
								 
							 
							
								
									
										 
								
							 
							
								 
							
							
								
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								    bottomFrame2  =  Frame ( topFrame2 ) 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								    def  adjustRom ( ) : 
							 
						 
					
						
							
								
									
										
										
										
											2019-12-17 21:14:20 +01:00 
										
									 
								 
							 
							
								
									
										 
								
							 
							
								 
							
							
								        guiargs  =  Namespace ( ) 
							 
						 
					
						
							
								
									
										
										
										
											2017-12-16 15:41:24 -05:00 
										
									 
								 
							 
							
								
									
										 
								
							 
							
								 
							
							
								        guiargs . heartbeep  =  heartbeepVar . get ( ) 
							 
						 
					
						
							
								
									
										
										
										
											2018-02-27 20:26:33 -06:00 
										
									 
								 
							 
							
								
									
										 
								
							 
							
								 
							
							
								        guiargs . heartcolor  =  heartcolorVar . get ( ) 
							 
						 
					
						
							
								
									
										
										
										
											2018-01-09 21:18:37 -06:00 
										
									 
								 
							 
							
								
									
										 
								
							 
							
								 
							
							
								        guiargs . fastmenu  =  fastMenuVar . get ( ) 
							 
						 
					
						
							
								
									
										
										
										
											2020-01-08 03:43:48 +01:00 
										
									 
								 
							 
							
								
									
										 
								
							 
							
								 
							
							
								        guiargs . ow_palettes  =  owPalettesVar . get ( ) 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								        guiargs . uw_palettes  =  uwPalettesVar . get ( ) 
							 
						 
					
						
							
								
									
										
										
										
											2017-12-16 15:41:24 -05:00 
										
									 
								 
							 
							
								
									
										 
								
							 
							
								 
							
							
								        guiargs . quickswap  =  bool ( quickSwapVar . get ( ) ) 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								        guiargs . disablemusic  =  bool ( disableMusicVar . get ( ) ) 
							 
						 
					
						
							
								
									
										
										
										
											2017-12-12 08:17:52 -06:00 
										
									 
								 
							 
							
								
									
										 
								
							 
							
								 
							
							
								        guiargs . rom  =  romVar2 . get ( ) 
							 
						 
					
						
							
								
									
										
										
										
											2020-01-08 03:43:48 +01:00 
										
									 
								 
							 
							
								
									
										 
								
							 
							
								 
							
							
								        guiargs . baserom  =  romVar . get ( ) 
							 
						 
					
						
							
								
									
										
										
										
											2017-12-16 19:13:21 -05:00 
										
									 
								 
							 
							
								
									
										 
								
							 
							
								 
							
							
								        guiargs . sprite  =  sprite 
							 
						 
					
						
							
								
									
										
										
										
											2017-12-12 08:17:52 -06:00 
										
									 
								 
							 
							
								
									
										 
								
							 
							
								 
							
							
								        try : 
							 
						 
					
						
							
								
									
										
										
										
											2020-04-26 15:14:30 +02:00 
										
									 
								 
							 
							
								
									
										 
								
							 
							
								 
							
							
								            guiargs ,  path  =  adjust ( args = guiargs ) 
							 
						 
					
						
							
								
									
										
										
										
											2017-12-12 08:17:52 -06:00 
										
									 
								 
							 
							
								
									
										 
								
							 
							
								 
							
							
								        except  Exception  as  e : 
							 
						 
					
						
							
								
									
										
										
										
											2019-12-10 02:15:03 +01:00 
										
									 
								 
							 
							
								
									
										 
								
							 
							
								 
							
							
								            logging . exception ( e ) 
							 
						 
					
						
							
								
									
										
										
										
											2020-04-26 15:14:30 +02:00 
										
									 
								 
							 
							
								
									
										 
								
							 
							
								 
							
							
								            messagebox . showerror ( title = " Error while adjusting Rom " ,  message = str ( e ) ) 
							 
						 
					
						
							
								
									
										
										
										
											2017-12-12 08:17:52 -06:00 
										
									 
								 
							 
							
								
									
										 
								
							 
							
								 
							
							
								        else : 
							 
						 
					
						
							
								
									
										
										
										
											2020-01-14 10:42:27 +01:00 
										
									 
								 
							 
							
								
									
										 
								
							 
							
								 
							
							
								            messagebox . showinfo ( title = " Success " ,  message = " Rom patched successfully " ) 
							 
						 
					
						
							
								
									
										
										
										
											2020-04-26 15:14:30 +02:00 
										
									 
								 
							 
							
								
									
										 
								
							 
							
								 
							
							
								            from  Utils  import  persistent_store 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								            persistent_store ( " adjuster " ,  " last_settings " ,  guiargs ) 
							 
						 
					
						
							
								
									
										
										
										
											2017-12-12 08:17:52 -06:00 
										
									 
								 
							 
							
								
									
										 
								
							 
							
								 
							
							
								
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								    adjustButton  =  Button ( bottomFrame2 ,  text = ' Adjust Rom ' ,  command = adjustRom ) 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								
							 
						 
					
						
							
								
									
										
										
										
											2017-12-17 00:25:46 -05:00 
										
									 
								 
							 
							
								
									
										 
								
							 
							
								 
							
							
								    adjustButton . pack ( side = LEFT ,  padx = ( 5 ,  0 ) ) 
							 
						 
					
						
							
								
									
										
										
										
											2017-12-12 08:17:52 -06:00 
										
									 
								 
							 
							
								
									
										 
								
							 
							
								 
							
							
								
							 
						 
					
						
							
								
									
										
										
										
											2017-12-17 00:25:46 -05:00 
										
									 
								 
							 
							
								
									
										 
								
							 
							
								 
							
							
								    drowDownFrame2 . pack ( side = LEFT ,  pady = ( 0 ,  40 ) ) 
							 
						 
					
						
							
								
									
										
										
										
											2017-12-12 08:17:52 -06:00 
										
									 
								 
							 
							
								
									
										 
								
							 
							
								 
							
							
								    rightHalfFrame2 . pack ( side = RIGHT ) 
							 
						 
					
						
							
								
									
										
										
										
											2018-02-27 20:26:33 -06:00 
										
									 
								 
							 
							
								
									
										 
								
							 
							
								 
							
							
								    topFrame2 . pack ( side = TOP ,  pady = 70 ) 
							 
						 
					
						
							
								
									
										
										
										
											2018-01-07 20:10:23 -05:00 
										
									 
								 
							 
							
								
									
										 
								
							 
							
								 
							
							
								    bottomFrame2 . pack ( side = BOTTOM ,  pady = ( 180 ,  0 ) ) 
							 
						 
					
						
							
								
									
										
										
										
											2017-12-12 08:17:52 -06:00 
										
									 
								 
							 
							
								
									
										 
								
							 
							
								 
							
							
								
							 
						 
					
						
							
								
									
										
										
										
											2018-01-21 20:43:44 -06:00 
										
									 
								 
							 
							
								
									
										 
								
							 
							
								 
							
							
								    # Custom Controls 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								    topFrame3  =  Frame ( customWindow ) 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								    def  validation ( P ) : 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								        if  str . isdigit ( P )  or  P  ==  " " : 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								            return  True 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								        else : 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								            return  False 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								    vcmd = ( topFrame3 . register ( validation ) ,  ' % P ' ) 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								    itemList1  =  Frame ( topFrame3 ) 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								    itemList2  =  Frame ( topFrame3 ) 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								    itemList3  =  Frame ( topFrame3 ) 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								    itemList4  =  Frame ( topFrame3 ) 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								    itemList5  =  Frame ( topFrame3 ) 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								    bowFrame  =  Frame ( itemList1 ) 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								    bowLabel  =  Label ( bowFrame ,  text = ' Bow ' ) 
							 
						 
					
						
							
								
									
										
										
										
											2019-10-23 21:31:02 -05:00 
										
									 
								 
							 
							
								
									
										 
								
							 
							
								 
							
							
								    bowVar  =  StringVar ( value = ' 0 ' ) 
							 
						 
					
						
							
								
									
										
										
										
											2018-01-21 20:43:44 -06:00 
										
									 
								 
							 
							
								
									
										 
								
							 
							
								 
							
							
								    bowEntry  =  Entry ( bowFrame ,  textvariable = bowVar ,  width = 3 ,  validate = ' all ' ,  vcmd = vcmd ) 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								    bowFrame . pack ( ) 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								    bowLabel . pack ( anchor = W ,  side = LEFT ,  padx = ( 0 , 53 ) ) 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								    bowEntry . pack ( anchor = E ) 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								
							 
						 
					
						
							
								
									
										
										
										
											2019-10-23 21:31:02 -05:00 
										
									 
								 
							 
							
								
									
										 
								
							 
							
								 
							
							
								    progbowFrame  =  Frame ( itemList1 ) 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								    progbowLabel  =  Label ( progbowFrame ,  text = ' Prog.Bow ' ) 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								    progbowVar  =  StringVar ( value = ' 2 ' ) 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								    progbowEntry  =  Entry ( progbowFrame ,  textvariable = progbowVar ,  width = 3 ,  validate = ' all ' ,  vcmd = vcmd ) 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								    progbowFrame . pack ( ) 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								    progbowLabel . pack ( anchor = W ,  side = LEFT ,  padx = ( 0 , 25 ) ) 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								    progbowEntry . pack ( anchor = E ) 
							 
						 
					
						
							
								
									
										
										
										
											2018-01-21 20:43:44 -06:00 
										
									 
								 
							 
							
								
									
										 
								
							 
							
								 
							
							
								
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								    boomerangFrame  =  Frame ( itemList1 ) 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								    boomerangLabel  =  Label ( boomerangFrame ,  text = ' Boomerang ' ) 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								    boomerangVar  =  StringVar ( value = ' 1 ' ) 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								    boomerangEntry  =  Entry ( boomerangFrame ,  textvariable = boomerangVar ,  width = 3 ,  validate = ' all ' ,  vcmd = vcmd ) 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								    boomerangFrame . pack ( ) 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								    boomerangLabel . pack ( anchor = W ,  side = LEFT ,  padx = ( 0 , 14 ) ) 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								    boomerangEntry . pack ( anchor = E ) 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								    magicboomerangFrame  =  Frame ( itemList1 ) 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								    magicboomerangLabel  =  Label ( magicboomerangFrame ,  text = ' M.Boomerang ' ) 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								    magicboomerangVar  =  StringVar ( value = ' 1 ' ) 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								    magicboomerangEntry  =  Entry ( magicboomerangFrame ,  textvariable = magicboomerangVar ,  width = 3 ,  validate = ' all ' ,  vcmd = vcmd ) 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								    magicboomerangFrame . pack ( ) 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								    magicboomerangLabel . pack ( anchor = W ,  side = LEFT ) 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								    magicboomerangEntry . pack ( anchor = E ) 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								    hookshotFrame  =  Frame ( itemList1 ) 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								    hookshotLabel  =  Label ( hookshotFrame ,  text = ' Hookshot ' ) 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								    hookshotVar  =  StringVar ( value = ' 1 ' ) 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								    hookshotEntry  =  Entry ( hookshotFrame ,  textvariable = hookshotVar ,  width = 3 ,  validate = ' all ' ,  vcmd = vcmd ) 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								    hookshotFrame . pack ( ) 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								    hookshotLabel . pack ( anchor = W ,  side = LEFT ,  padx = ( 0 , 24 ) ) 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								    hookshotEntry . pack ( anchor = E ) 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								    mushroomFrame  =  Frame ( itemList1 ) 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								    mushroomLabel  =  Label ( mushroomFrame ,  text = ' Mushroom ' ) 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								    mushroomVar  =  StringVar ( value = ' 1 ' ) 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								    mushroomEntry  =  Entry ( mushroomFrame ,  textvariable = mushroomVar ,  width = 3 ,  validate = ' all ' ,  vcmd = vcmd ) 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								    mushroomFrame . pack ( ) 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								    mushroomLabel . pack ( anchor = W ,  side = LEFT ,  padx = ( 0 , 17 ) ) 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								    mushroomEntry . pack ( anchor = E ) 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								    magicpowderFrame  =  Frame ( itemList1 ) 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								    magicpowderLabel  =  Label ( magicpowderFrame ,  text = ' Magic Powder ' ) 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								    magicpowderVar  =  StringVar ( value = ' 1 ' ) 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								    magicpowderEntry  =  Entry ( magicpowderFrame ,  textvariable = magicpowderVar ,  width = 3 ,  validate = ' all ' ,  vcmd = vcmd ) 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								    magicpowderFrame . pack ( ) 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								    magicpowderLabel . pack ( anchor = W ,  side = LEFT ) 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								    magicpowderEntry . pack ( anchor = E ) 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								    firerodFrame  =  Frame ( itemList1 ) 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								    firerodLabel  =  Label ( firerodFrame ,  text = ' Fire Rod ' ) 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								    firerodVar  =  StringVar ( value = ' 1 ' ) 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								    firerodEntry  =  Entry ( firerodFrame ,  textvariable = firerodVar ,  width = 3 ,  validate = ' all ' ,  vcmd = vcmd ) 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								    firerodFrame . pack ( ) 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								    firerodLabel . pack ( anchor = W ,  side = LEFT ,  padx = ( 0 , 33 ) ) 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								    firerodEntry . pack ( anchor = E ) 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								    icerodFrame  =  Frame ( itemList1 ) 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								    icerodLabel  =  Label ( icerodFrame ,  text = ' Ice Rod ' ) 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								    icerodVar  =  StringVar ( value = ' 1 ' ) 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								    icerodEntry  =  Entry ( icerodFrame ,  textvariable = icerodVar ,  width = 3 ,  validate = ' all ' ,  vcmd = vcmd ) 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								    icerodFrame . pack ( ) 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								    icerodLabel . pack ( anchor = W ,  side = LEFT ,  padx = ( 0 , 37 ) ) 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								    icerodEntry . pack ( anchor = E ) 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								    bombosFrame  =  Frame ( itemList1 ) 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								    bombosLabel  =  Label ( bombosFrame ,  text = ' Bombos ' ) 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								    bombosVar  =  StringVar ( value = ' 1 ' ) 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								    bombosEntry  =  Entry ( bombosFrame ,  textvariable = bombosVar ,  width = 3 ,  validate = ' all ' ,  vcmd = vcmd ) 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								    bombosFrame . pack ( ) 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								    bombosLabel . pack ( anchor = W ,  side = LEFT ,  padx = ( 0 , 32 ) ) 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								    bombosEntry . pack ( anchor = E ) 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								    etherFrame  =  Frame ( itemList1 ) 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								    etherLabel  =  Label ( etherFrame ,  text = ' Ether ' ) 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								    etherVar  =  StringVar ( value = ' 1 ' ) 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								    etherEntry  =  Entry ( etherFrame ,  textvariable = etherVar ,  width = 3 ,  validate = ' all ' ,  vcmd = vcmd ) 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								    etherFrame . pack ( ) 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								    etherLabel . pack ( anchor = W ,  side = LEFT ,  padx = ( 0 , 49 ) ) 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								    etherEntry . pack ( anchor = E ) 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								    quakeFrame  =  Frame ( itemList1 ) 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								    quakeLabel  =  Label ( quakeFrame ,  text = ' Quake ' ) 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								    quakeVar  =  StringVar ( value = ' 1 ' ) 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								    quakeEntry  =  Entry ( quakeFrame ,  textvariable = quakeVar ,  width = 3 ,  validate = ' all ' ,  vcmd = vcmd ) 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								    quakeFrame . pack ( ) 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								    quakeLabel . pack ( anchor = W ,  side = LEFT ,  padx = ( 0 , 42 ) ) 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								    quakeEntry . pack ( anchor = E ) 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								    lampFrame  =  Frame ( itemList1 ) 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								    lampLabel  =  Label ( lampFrame ,  text = ' Lamp ' ) 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								    lampVar  =  StringVar ( value = ' 1 ' ) 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								    lampEntry  =  Entry ( lampFrame ,  textvariable = lampVar ,  width = 3 ,  validate = ' all ' ,  vcmd = vcmd ) 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								    lampFrame . pack ( ) 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								    lampLabel . pack ( anchor = W ,  side = LEFT ,  padx = ( 0 , 46 ) ) 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								    lampEntry . pack ( anchor = E ) 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								    hammerFrame  =  Frame ( itemList1 ) 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								    hammerLabel  =  Label ( hammerFrame ,  text = ' Hammer ' ) 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								    hammerVar  =  StringVar ( value = ' 1 ' ) 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								    hammerEntry  =  Entry ( hammerFrame ,  textvariable = hammerVar ,  width = 3 ,  validate = ' all ' ,  vcmd = vcmd ) 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								    hammerFrame . pack ( ) 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								    hammerLabel . pack ( anchor = W ,  side = LEFT ,  padx = ( 0 , 29 ) ) 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								    hammerEntry . pack ( anchor = E ) 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								    shovelFrame  =  Frame ( itemList1 ) 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								    shovelLabel  =  Label ( shovelFrame ,  text = ' Shovel ' ) 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								    shovelVar  =  StringVar ( value = ' 1 ' ) 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								    shovelEntry  =  Entry ( shovelFrame ,  textvariable = shovelVar ,  width = 3 ,  validate = ' all ' ,  vcmd = vcmd ) 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								    shovelFrame . pack ( ) 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								    shovelLabel . pack ( anchor = W ,  side = LEFT ,  padx = ( 0 , 41 ) ) 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								    shovelEntry . pack ( anchor = E ) 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								    fluteFrame  =  Frame ( itemList1 ) 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								    fluteLabel  =  Label ( fluteFrame ,  text = ' Flute ' ) 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								    fluteVar  =  StringVar ( value = ' 1 ' ) 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								    fluteEntry  =  Entry ( fluteFrame ,  textvariable = fluteVar ,  width = 3 ,  validate = ' all ' ,  vcmd = vcmd ) 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								    fluteFrame . pack ( ) 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								    fluteLabel . pack ( anchor = W ,  side = LEFT ,  padx = ( 0 , 50 ) ) 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								    fluteEntry . pack ( anchor = E ) 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								    bugnetFrame  =  Frame ( itemList2 ) 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								    bugnetLabel  =  Label ( bugnetFrame ,  text = ' Bug Net ' ) 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								    bugnetVar  =  StringVar ( value = ' 1 ' ) 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								    bugnetEntry  =  Entry ( bugnetFrame ,  textvariable = bugnetVar ,  width = 3 ,  validate = ' all ' ,  vcmd = vcmd ) 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								    bugnetFrame . pack ( ) 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								    bugnetLabel . pack ( anchor = W ,  side = LEFT ,  padx = ( 0 , 41 ) ) 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								    bugnetEntry . pack ( anchor = E ) 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								    bookFrame  =  Frame ( itemList2 ) 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								    bookLabel  =  Label ( bookFrame ,  text = ' Book ' ) 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								    bookVar  =  StringVar ( value = ' 1 ' ) 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								    bookEntry  =  Entry ( bookFrame ,  textvariable = bookVar ,  width = 3 ,  validate = ' all ' ,  vcmd = vcmd ) 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								    bookFrame . pack ( ) 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								    bookLabel . pack ( anchor = W ,  side = LEFT ,  padx = ( 0 , 57 ) ) 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								    bookEntry . pack ( anchor = E ) 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								    bottleFrame  =  Frame ( itemList2 ) 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								    bottleLabel  =  Label ( bottleFrame ,  text = ' Bottle ' ) 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								    bottleVar  =  StringVar ( value = ' 4 ' ) 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								    bottleEntry  =  Entry ( bottleFrame ,  textvariable = bottleVar ,  width = 3 ,  validate = ' all ' ,  vcmd = vcmd ) 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								    bottleFrame . pack ( ) 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								    bottleLabel . pack ( anchor = W ,  side = LEFT ,  padx = ( 0 , 53 ) ) 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								    bottleEntry . pack ( anchor = E ) 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								    somariaFrame  =  Frame ( itemList2 ) 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								    somariaLabel  =  Label ( somariaFrame ,  text = ' C.Somaria ' ) 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								    somariaVar  =  StringVar ( value = ' 1 ' ) 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								    somariaEntry  =  Entry ( somariaFrame ,  textvariable = somariaVar ,  width = 3 ,  validate = ' all ' ,  vcmd = vcmd ) 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								    somariaFrame . pack ( ) 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								    somariaLabel . pack ( anchor = W ,  side = LEFT ,  padx = ( 0 , 30 ) ) 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								    somariaEntry . pack ( anchor = E ) 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								    byrnaFrame  =  Frame ( itemList2 ) 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								    byrnaLabel  =  Label ( byrnaFrame ,  text = ' C.Byrna ' ) 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								    byrnaVar  =  StringVar ( value = ' 1 ' ) 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								    byrnaEntry  =  Entry ( byrnaFrame ,  textvariable = byrnaVar ,  width = 3 ,  validate = ' all ' ,  vcmd = vcmd ) 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								    byrnaFrame . pack ( ) 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								    byrnaLabel . pack ( anchor = W ,  side = LEFT ,  padx = ( 0 , 43 ) ) 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								    byrnaEntry . pack ( anchor = E ) 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								    capeFrame  =  Frame ( itemList2 ) 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								    capeLabel  =  Label ( capeFrame ,  text = ' Magic Cape ' ) 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								    capeVar  =  StringVar ( value = ' 1 ' ) 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								    capeEntry  =  Entry ( capeFrame ,  textvariable = capeVar ,  width = 3 ,  validate = ' all ' ,  vcmd = vcmd ) 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								    capeFrame . pack ( ) 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								    capeLabel . pack ( anchor = W ,  side = LEFT ,  padx = ( 0 , 21 ) ) 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								    capeEntry . pack ( anchor = E ) 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								    mirrorFrame  =  Frame ( itemList2 ) 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								    mirrorLabel  =  Label ( mirrorFrame ,  text = ' Magic Mirror ' ) 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								    mirrorVar  =  StringVar ( value = ' 1 ' ) 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								    mirrorEntry  =  Entry ( mirrorFrame ,  textvariable = mirrorVar ,  width = 3 ,  validate = ' all ' ,  vcmd = vcmd ) 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								    mirrorFrame . pack ( ) 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								    mirrorLabel . pack ( anchor = W ,  side = LEFT ,  padx = ( 0 , 15 ) ) 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								    mirrorEntry . pack ( anchor = E ) 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								    bootsFrame  =  Frame ( itemList2 ) 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								    bootsLabel  =  Label ( bootsFrame ,  text = ' Pegasus Boots ' ) 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								    bootsVar  =  StringVar ( value = ' 1 ' ) 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								    bootsEntry  =  Entry ( bootsFrame ,  textvariable = bootsVar ,  width = 3 ,  validate = ' all ' ,  vcmd = vcmd ) 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								    bootsFrame . pack ( ) 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								    bootsLabel . pack ( anchor = W ,  side = LEFT ,  padx = ( 0 , 8 ) ) 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								    bootsEntry . pack ( anchor = E ) 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								    powergloveFrame  =  Frame ( itemList2 ) 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								    powergloveLabel  =  Label ( powergloveFrame ,  text = ' Power Glove ' ) 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								    powergloveVar  =  StringVar ( value = ' 0 ' ) 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								    powergloveEntry  =  Entry ( powergloveFrame ,  textvariable = powergloveVar ,  width = 3 ,  validate = ' all ' ,  vcmd = vcmd ) 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								    powergloveFrame . pack ( ) 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								    powergloveLabel . pack ( anchor = W ,  side = LEFT ,  padx = ( 0 , 18 ) ) 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								    powergloveEntry . pack ( anchor = E ) 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								    titansmittFrame  =  Frame ( itemList2 ) 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								    titansmittLabel  =  Label ( titansmittFrame ,  text = ' Titan \' s Mitt ' ) 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								    titansmittVar  =  StringVar ( value = ' 0 ' ) 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								    titansmittEntry  =  Entry ( titansmittFrame ,  textvariable = titansmittVar ,  width = 3 ,  validate = ' all ' ,  vcmd = vcmd ) 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								    titansmittFrame . pack ( ) 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								    titansmittLabel . pack ( anchor = W ,  side = LEFT ,  padx = ( 0 , 24 ) ) 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								    titansmittEntry . pack ( anchor = E ) 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								    proggloveFrame  =  Frame ( itemList2 ) 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								    proggloveLabel  =  Label ( proggloveFrame ,  text = ' Prog.Glove ' ) 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								    proggloveVar  =  StringVar ( value = ' 2 ' ) 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								    proggloveEntry  =  Entry ( proggloveFrame ,  textvariable = proggloveVar ,  width = 3 ,  validate = ' all ' ,  vcmd = vcmd ) 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								    proggloveFrame . pack ( ) 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								    proggloveLabel . pack ( anchor = W ,  side = LEFT ,  padx = ( 0 , 26 ) ) 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								    proggloveEntry . pack ( anchor = E ) 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								    flippersFrame  =  Frame ( itemList2 ) 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								    flippersLabel  =  Label ( flippersFrame ,  text = ' Flippers ' ) 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								    flippersVar  =  StringVar ( value = ' 1 ' ) 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								    flippersEntry  =  Entry ( flippersFrame ,  textvariable = flippersVar ,  width = 3 ,  validate = ' all ' ,  vcmd = vcmd ) 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								    flippersFrame . pack ( ) 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								    flippersLabel . pack ( anchor = W ,  side = LEFT ,  padx = ( 0 , 43 ) ) 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								    flippersEntry . pack ( anchor = E ) 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								    pearlFrame  =  Frame ( itemList2 ) 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								    pearlLabel  =  Label ( pearlFrame ,  text = ' Moon Pearl ' ) 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								    pearlVar  =  StringVar ( value = ' 1 ' ) 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								    pearlEntry  =  Entry ( pearlFrame ,  textvariable = pearlVar ,  width = 3 ,  validate = ' all ' ,  vcmd = vcmd ) 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								    pearlFrame . pack ( ) 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								    pearlLabel . pack ( anchor = W ,  side = LEFT ,  padx = ( 0 , 23 ) ) 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								    pearlEntry . pack ( anchor = E ) 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								    heartpieceFrame  =  Frame ( itemList2 ) 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								    heartpieceLabel  =  Label ( heartpieceFrame ,  text = ' Piece of Heart ' ) 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								    heartpieceVar  =  StringVar ( value = ' 24 ' ) 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								    heartpieceEntry  =  Entry ( heartpieceFrame ,  textvariable = heartpieceVar ,  width = 3 ,  validate = ' all ' ,  vcmd = vcmd ) 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								    heartpieceFrame . pack ( ) 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								    heartpieceLabel . pack ( anchor = W ,  side = LEFT ,  padx = ( 0 , 10 ) ) 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								    heartpieceEntry . pack ( anchor = E ) 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								    fullheartFrame  =  Frame ( itemList2 ) 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								    fullheartLabel  =  Label ( fullheartFrame ,  text = ' Heart Container ' ) 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								    fullheartVar  =  StringVar ( value = ' 10 ' ) 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								    fullheartEntry  =  Entry ( fullheartFrame ,  textvariable = fullheartVar ,  width = 3 ,  validate = ' all ' ,  vcmd = vcmd ) 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								    fullheartFrame . pack ( ) 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								    fullheartLabel . pack ( anchor = W ,  side = LEFT ) 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								    fullheartEntry . pack ( anchor = E ) 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								    sancheartFrame  =  Frame ( itemList2 ) 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								    sancheartLabel  =  Label ( sancheartFrame ,  text = ' Sanctuary Heart ' ) 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								    sancheartVar  =  StringVar ( value = ' 1 ' ) 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								    sancheartEntry  =  Entry ( sancheartFrame ,  textvariable = sancheartVar ,  width = 3 ,  validate = ' all ' ,  vcmd = vcmd ) 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								    sancheartFrame . pack ( ) 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								    sancheartLabel . pack ( anchor = W ,  side = LEFT ) 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								    sancheartEntry . pack ( anchor = E ) 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								    sword1Frame  =  Frame ( itemList3 ) 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								    sword1Label  =  Label ( sword1Frame ,  text = ' Sword 1 ' ) 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								    sword1Var  =  StringVar ( value = ' 0 ' ) 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								    sword1Entry  =  Entry ( sword1Frame ,  textvariable = sword1Var ,  width = 3 ,  validate = ' all ' ,  vcmd = vcmd ) 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								    sword1Frame . pack ( ) 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								    sword1Label . pack ( anchor = W ,  side = LEFT ,  padx = ( 0 , 34 ) ) 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								    sword1Entry . pack ( anchor = E ) 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								    sword2Frame  =  Frame ( itemList3 ) 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								    sword2Label  =  Label ( sword2Frame ,  text = ' Sword 2 ' ) 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								    sword2Var  =  StringVar ( value = ' 0 ' ) 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								    sword2Entry  =  Entry ( sword2Frame ,  textvariable = sword2Var ,  width = 3 ,  validate = ' all ' ,  vcmd = vcmd ) 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								    sword2Frame . pack ( ) 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								    sword2Label . pack ( anchor = W ,  side = LEFT ,  padx = ( 0 , 34 ) ) 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								    sword2Entry . pack ( anchor = E ) 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								    sword3Frame  =  Frame ( itemList3 ) 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								    sword3Label  =  Label ( sword3Frame ,  text = ' Sword 3 ' ) 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								    sword3Var  =  StringVar ( value = ' 0 ' ) 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								    sword3Entry  =  Entry ( sword3Frame ,  textvariable = sword3Var ,  width = 3 ,  validate = ' all ' ,  vcmd = vcmd ) 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								    sword3Frame . pack ( ) 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								    sword3Label . pack ( anchor = W ,  side = LEFT ,  padx = ( 0 , 34 ) ) 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								    sword3Entry . pack ( anchor = E ) 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								    sword4Frame  =  Frame ( itemList3 ) 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								    sword4Label  =  Label ( sword4Frame ,  text = ' Sword 4 ' ) 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								    sword4Var  =  StringVar ( value = ' 0 ' ) 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								    sword4Entry  =  Entry ( sword4Frame ,  textvariable = sword4Var ,  width = 3 ,  validate = ' all ' ,  vcmd = vcmd ) 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								    sword4Frame . pack ( ) 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								    sword4Label . pack ( anchor = W ,  side = LEFT ,  padx = ( 0 , 34 ) ) 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								    sword4Entry . pack ( anchor = E ) 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								    progswordFrame  =  Frame ( itemList3 ) 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								    progswordLabel  =  Label ( progswordFrame ,  text = ' Prog.Sword ' ) 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								    progswordVar  =  StringVar ( value = ' 4 ' ) 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								    progswordEntry  =  Entry ( progswordFrame ,  textvariable = progswordVar ,  width = 3 ,  validate = ' all ' ,  vcmd = vcmd ) 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								    progswordFrame . pack ( ) 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								    progswordLabel . pack ( anchor = W ,  side = LEFT ,  padx = ( 0 , 15 ) ) 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								    progswordEntry . pack ( anchor = E ) 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								    shield1Frame  =  Frame ( itemList3 ) 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								    shield1Label  =  Label ( shield1Frame ,  text = ' Shield 1 ' ) 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								    shield1Var  =  StringVar ( value = ' 0 ' ) 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								    shield1Entry  =  Entry ( shield1Frame ,  textvariable = shield1Var ,  width = 3 ,  validate = ' all ' ,  vcmd = vcmd ) 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								    shield1Frame . pack ( ) 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								    shield1Label . pack ( anchor = W ,  side = LEFT ,  padx = ( 0 , 35 ) ) 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								    shield1Entry . pack ( anchor = E ) 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								    shield2Frame  =  Frame ( itemList3 ) 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								    shield2Label  =  Label ( shield2Frame ,  text = ' Shield 2 ' ) 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								    shield2Var  =  StringVar ( value = ' 0 ' ) 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								    shield2Entry  =  Entry ( shield2Frame ,  textvariable = shield2Var ,  width = 3 ,  validate = ' all ' ,  vcmd = vcmd ) 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								    shield2Frame . pack ( ) 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								    shield2Label . pack ( anchor = W ,  side = LEFT ,  padx = ( 0 , 35 ) ) 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								    shield2Entry . pack ( anchor = E ) 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								    shield3Frame  =  Frame ( itemList3 ) 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								    shield3Label  =  Label ( shield3Frame ,  text = ' Shield 3 ' ) 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								    shield3Var  =  StringVar ( value = ' 0 ' ) 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								    shield3Entry  =  Entry ( shield3Frame ,  textvariable = shield3Var ,  width = 3 ,  validate = ' all ' ,  vcmd = vcmd ) 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								    shield3Frame . pack ( ) 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								    shield3Label . pack ( anchor = W ,  side = LEFT ,  padx = ( 0 , 35 ) ) 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								    shield3Entry . pack ( anchor = E ) 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								    progshieldFrame  =  Frame ( itemList3 ) 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								    progshieldLabel  =  Label ( progshieldFrame ,  text = ' Prog.Shield ' ) 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								    progshieldVar  =  StringVar ( value = ' 3 ' ) 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								    progshieldEntry  =  Entry ( progshieldFrame ,  textvariable = progshieldVar ,  width = 3 ,  validate = ' all ' ,  vcmd = vcmd ) 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								    progshieldFrame . pack ( ) 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								    progshieldLabel . pack ( anchor = W ,  side = LEFT ,  padx = ( 0 , 16 ) ) 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								    progshieldEntry . pack ( anchor = E ) 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								    bluemailFrame  =  Frame ( itemList3 ) 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								    bluemailLabel  =  Label ( bluemailFrame ,  text = ' Blue Mail ' ) 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								    bluemailVar  =  StringVar ( value = ' 0 ' ) 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								    bluemailEntry  =  Entry ( bluemailFrame ,  textvariable = bluemailVar ,  width = 3 ,  validate = ' all ' ,  vcmd = vcmd ) 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								    bluemailFrame . pack ( ) 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								    bluemailLabel . pack ( anchor = W ,  side = LEFT ,  padx = ( 0 , 27 ) ) 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								    bluemailEntry . pack ( anchor = E ) 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								    redmailFrame  =  Frame ( itemList3 ) 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								    redmailLabel  =  Label ( redmailFrame ,  text = ' Red Mail ' ) 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								    redmailVar  =  StringVar ( value = ' 0 ' ) 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								    redmailEntry  =  Entry ( redmailFrame ,  textvariable = redmailVar ,  width = 3 ,  validate = ' all ' ,  vcmd = vcmd ) 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								    redmailFrame . pack ( ) 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								    redmailLabel . pack ( anchor = W ,  side = LEFT ,  padx = ( 0 , 30 ) ) 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								    redmailEntry . pack ( anchor = E ) 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								    progmailFrame  =  Frame ( itemList3 ) 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								    progmailLabel  =  Label ( progmailFrame ,  text = ' Prog.Mail ' ) 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								    progmailVar  =  StringVar ( value = ' 2 ' ) 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								    progmailEntry  =  Entry ( progmailFrame ,  textvariable = progmailVar ,  width = 3 ,  validate = ' all ' ,  vcmd = vcmd ) 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								    progmailFrame . pack ( ) 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								    progmailLabel . pack ( anchor = W ,  side = LEFT ,  padx = ( 0 , 25 ) ) 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								    progmailEntry . pack ( anchor = E ) 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								    halfmagicFrame  =  Frame ( itemList3 ) 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								    halfmagicLabel  =  Label ( halfmagicFrame ,  text = ' Half Magic ' ) 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								    halfmagicVar  =  StringVar ( value = ' 1 ' ) 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								    halfmagicEntry  =  Entry ( halfmagicFrame ,  textvariable = halfmagicVar ,  width = 3 ,  validate = ' all ' ,  vcmd = vcmd ) 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								    halfmagicFrame . pack ( ) 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								    halfmagicLabel . pack ( anchor = W ,  side = LEFT ,  padx = ( 0 , 18 ) ) 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								    halfmagicEntry . pack ( anchor = E ) 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								    quartermagicFrame  =  Frame ( itemList3 ) 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								    quartermagicLabel  =  Label ( quartermagicFrame ,  text = ' Quarter Magic ' ) 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								    quartermagicVar  =  StringVar ( value = ' 0 ' ) 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								    quartermagicEntry  =  Entry ( quartermagicFrame ,  textvariable = quartermagicVar ,  width = 3 ,  validate = ' all ' ,  vcmd = vcmd ) 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								    quartermagicFrame . pack ( ) 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								    quartermagicLabel . pack ( anchor = W ,  side = LEFT ) 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								    quartermagicEntry . pack ( anchor = E ) 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								    bcap5Frame  =  Frame ( itemList3 ) 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								    bcap5Label  =  Label ( bcap5Frame ,  text = ' Bomb C.+5 ' ) 
							 
						 
					
						
							
								
									
										
										
										
											2019-10-23 21:31:02 -05:00 
										
									 
								 
							 
							
								
									
										 
								
							 
							
								 
							
							
								    bcap5Var  =  StringVar ( value = ' 0 ' ) 
							 
						 
					
						
							
								
									
										
										
										
											2018-01-21 20:43:44 -06:00 
										
									 
								 
							 
							
								
									
										 
								
							 
							
								 
							
							
								    bcap5Entry  =  Entry ( bcap5Frame ,  textvariable = bcap5Var ,  width = 3 ,  validate = ' all ' ,  vcmd = vcmd ) 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								    bcap5Frame . pack ( ) 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								    bcap5Label . pack ( anchor = W ,  side = LEFT ,  padx = ( 0 , 16 ) ) 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								    bcap5Entry . pack ( anchor = E ) 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								    bcap10Frame  =  Frame ( itemList3 ) 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								    bcap10Label  =  Label ( bcap10Frame ,  text = ' Bomb C.+10 ' ) 
							 
						 
					
						
							
								
									
										
										
										
											2019-10-23 21:31:02 -05:00 
										
									 
								 
							 
							
								
									
										 
								
							 
							
								 
							
							
								    bcap10Var  =  StringVar ( value = ' 0 ' ) 
							 
						 
					
						
							
								
									
										
										
										
											2018-01-21 20:43:44 -06:00 
										
									 
								 
							 
							
								
									
										 
								
							 
							
								 
							
							
								    bcap10Entry  =  Entry ( bcap10Frame ,  textvariable = bcap10Var ,  width = 3 ,  validate = ' all ' ,  vcmd = vcmd ) 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								    bcap10Frame . pack ( ) 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								    bcap10Label . pack ( anchor = W ,  side = LEFT ,  padx = ( 0 , 10 ) ) 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								    bcap10Entry . pack ( anchor = E ) 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								    acap5Frame  =  Frame ( itemList4 ) 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								    acap5Label  =  Label ( acap5Frame ,  text = ' Arrow C.+5 ' ) 
							 
						 
					
						
							
								
									
										
										
										
											2019-10-23 21:31:02 -05:00 
										
									 
								 
							 
							
								
									
										 
								
							 
							
								 
							
							
								    acap5Var  =  StringVar ( value = ' 0 ' ) 
							 
						 
					
						
							
								
									
										
										
										
											2018-01-21 20:43:44 -06:00 
										
									 
								 
							 
							
								
									
										 
								
							 
							
								 
							
							
								    acap5Entry  =  Entry ( acap5Frame ,  textvariable = acap5Var ,  width = 3 ,  validate = ' all ' ,  vcmd = vcmd ) 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								    acap5Frame . pack ( ) 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								    acap5Label . pack ( anchor = W ,  side = LEFT ,  padx = ( 0 , 7 ) ) 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								    acap5Entry . pack ( anchor = E ) 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								    acap10Frame  =  Frame ( itemList4 ) 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								    acap10Label  =  Label ( acap10Frame ,  text = ' Arrow C.+10 ' ) 
							 
						 
					
						
							
								
									
										
										
										
											2019-10-23 21:31:02 -05:00 
										
									 
								 
							 
							
								
									
										 
								
							 
							
								 
							
							
								    acap10Var  =  StringVar ( value = ' 0 ' ) 
							 
						 
					
						
							
								
									
										
										
										
											2018-01-21 20:43:44 -06:00 
										
									 
								 
							 
							
								
									
										 
								
							 
							
								 
							
							
								    acap10Entry  =  Entry ( acap10Frame ,  textvariable = acap10Var ,  width = 3 ,  validate = ' all ' ,  vcmd = vcmd ) 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								    acap10Frame . pack ( ) 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								    acap10Label . pack ( anchor = W ,  side = LEFT ,  padx = ( 0 , 1 ) ) 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								    acap10Entry . pack ( anchor = E ) 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								    arrow1Frame  =  Frame ( itemList4 ) 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								    arrow1Label  =  Label ( arrow1Frame ,  text = ' Arrow (1) ' ) 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								    arrow1Var  =  StringVar ( value = ' 1 ' ) 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								    arrow1Entry  =  Entry ( arrow1Frame ,  textvariable = arrow1Var ,  width = 3 ,  validate = ' all ' ,  vcmd = vcmd ) 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								    arrow1Frame . pack ( ) 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								    arrow1Label . pack ( anchor = W ,  side = LEFT ,  padx = ( 0 , 18 ) ) 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								    arrow1Entry . pack ( anchor = E ) 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								    arrow10Frame  =  Frame ( itemList4 ) 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								    arrow10Label  =  Label ( arrow10Frame ,  text = ' Arrows (10) ' ) 
							 
						 
					
						
							
								
									
										
										
										
											2019-10-23 21:31:02 -05:00 
										
									 
								 
							 
							
								
									
										 
								
							 
							
								 
							
							
								    arrow10Var  =  StringVar ( value = ' 12 ' ) 
							 
						 
					
						
							
								
									
										
										
										
											2018-01-21 20:43:44 -06:00 
										
									 
								 
							 
							
								
									
										 
								
							 
							
								 
							
							
								    arrow10Entry  =  Entry ( arrow10Frame ,  textvariable = arrow10Var ,  width = 3 ,  validate = ' all ' ,  vcmd = vcmd ) 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								    arrow10Frame . pack ( ) 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								    arrow10Label . pack ( anchor = W ,  side = LEFT ,  padx = ( 0 , 7 ) ) 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								    arrow10Entry . pack ( anchor = E ) 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								    bomb1Frame  =  Frame ( itemList4 ) 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								    bomb1Label  =  Label ( bomb1Frame ,  text = ' Bomb (1) ' ) 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								    bomb1Var  =  StringVar ( value = ' 0 ' ) 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								    bomb1Entry  =  Entry ( bomb1Frame ,  textvariable = bomb1Var ,  width = 3 ,  validate = ' all ' ,  vcmd = vcmd ) 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								    bomb1Frame . pack ( ) 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								    bomb1Label . pack ( anchor = W ,  side = LEFT ,  padx = ( 0 , 18 ) ) 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								    bomb1Entry . pack ( anchor = E ) 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								    bomb3Frame  =  Frame ( itemList4 ) 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								    bomb3Label  =  Label ( bomb3Frame ,  text = ' Bombs (3) ' ) 
							 
						 
					
						
							
								
									
										
										
										
											2019-10-23 21:31:02 -05:00 
										
									 
								 
							 
							
								
									
										 
								
							 
							
								 
							
							
								    bomb3Var  =  StringVar ( value = ' 16 ' ) 
							 
						 
					
						
							
								
									
										
										
										
											2018-01-21 20:43:44 -06:00 
										
									 
								 
							 
							
								
									
										 
								
							 
							
								 
							
							
								    bomb3Entry  =  Entry ( bomb3Frame ,  textvariable = bomb3Var ,  width = 3 ,  validate = ' all ' ,  vcmd = vcmd ) 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								    bomb3Frame . pack ( ) 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								    bomb3Label . pack ( anchor = W ,  side = LEFT ,  padx = ( 0 , 13 ) ) 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								    bomb3Entry . pack ( anchor = E ) 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								
							 
						 
					
						
							
								
									
										
										
										
											2019-10-23 21:31:02 -05:00 
										
									 
								 
							 
							
								
									
										 
								
							 
							
								 
							
							
								    bomb10Frame  =  Frame ( itemList4 ) 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								    bomb10Label  =  Label ( bomb10Frame ,  text = ' Bombs (10) ' ) 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								    bomb10Var  =  StringVar ( value = ' 1 ' ) 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								    bomb10Entry  =  Entry ( bomb10Frame ,  textvariable = bomb10Var ,  width = 3 ,  validate = ' all ' ,  vcmd = vcmd ) 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								    bomb10Frame . pack ( ) 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								    bomb10Label . pack ( anchor = W ,  side = LEFT ,  padx = ( 0 , 7 ) ) 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								    bomb10Entry . pack ( anchor = E ) 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								
							 
						 
					
						
							
								
									
										
										
										
											2018-01-21 20:43:44 -06:00 
										
									 
								 
							 
							
								
									
										 
								
							 
							
								 
							
							
								    rupee1Frame  =  Frame ( itemList4 ) 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								    rupee1Label  =  Label ( rupee1Frame ,  text = ' Rupee (1) ' ) 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								    rupee1Var  =  StringVar ( value = ' 2 ' ) 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								    rupee1Entry  =  Entry ( rupee1Frame ,  textvariable = rupee1Var ,  width = 3 ,  validate = ' all ' ,  vcmd = vcmd ) 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								    rupee1Frame . pack ( ) 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								    rupee1Label . pack ( anchor = W ,  side = LEFT ,  padx = ( 0 , 17 ) ) 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								    rupee1Entry . pack ( anchor = E ) 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								    rupee5Frame  =  Frame ( itemList4 ) 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								    rupee5Label  =  Label ( rupee5Frame ,  text = ' Rupees (5) ' ) 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								    rupee5Var  =  StringVar ( value = ' 4 ' ) 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								    rupee5Entry  =  Entry ( rupee5Frame ,  textvariable = rupee5Var ,  width = 3 ,  validate = ' all ' ,  vcmd = vcmd ) 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								    rupee5Frame . pack ( ) 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								    rupee5Label . pack ( anchor = W ,  side = LEFT ,  padx = ( 0 , 12 ) ) 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								    rupee5Entry . pack ( anchor = E ) 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								    rupee20Frame  =  Frame ( itemList4 ) 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								    rupee20Label  =  Label ( rupee20Frame ,  text = ' Rupees (20) ' ) 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								    rupee20Var  =  StringVar ( value = ' 28 ' ) 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								    rupee20Entry  =  Entry ( rupee20Frame ,  textvariable = rupee20Var ,  width = 3 ,  validate = ' all ' ,  vcmd = vcmd ) 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								    rupee20Frame . pack ( ) 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								    rupee20Label . pack ( anchor = W ,  side = LEFT ,  padx = ( 0 , 6 ) ) 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								    rupee20Entry . pack ( anchor = E ) 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								    rupee50Frame  =  Frame ( itemList4 ) 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								    rupee50Label  =  Label ( rupee50Frame ,  text = ' Rupees (50) ' ) 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								    rupee50Var  =  StringVar ( value = ' 7 ' ) 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								    rupee50Entry  =  Entry ( rupee50Frame ,  textvariable = rupee50Var ,  width = 3 ,  validate = ' all ' ,  vcmd = vcmd ) 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								    rupee50Frame . pack ( ) 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								    rupee50Label . pack ( anchor = W ,  side = LEFT ,  padx = ( 0 , 6 ) ) 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								    rupee50Entry . pack ( anchor = E ) 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								    rupee100Frame  =  Frame ( itemList4 ) 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								    rupee100Label  =  Label ( rupee100Frame ,  text = ' Rupees (100) ' ) 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								    rupee100Var  =  StringVar ( value = ' 1 ' ) 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								    rupee100Entry  =  Entry ( rupee100Frame ,  textvariable = rupee100Var ,  width = 3 ,  validate = ' all ' ,  vcmd = vcmd ) 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								    rupee100Frame . pack ( ) 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								    rupee100Label . pack ( anchor = W ,  side = LEFT ,  padx = ( 0 , 0 ) ) 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								    rupee100Entry . pack ( anchor = E ) 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								    rupee300Frame  =  Frame ( itemList4 ) 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								    rupee300Label  =  Label ( rupee300Frame ,  text = ' Rupees (300) ' ) 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								    rupee300Var  =  StringVar ( value = ' 5 ' ) 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								    rupee300Entry  =  Entry ( rupee300Frame ,  textvariable = rupee300Var ,  width = 3 ,  validate = ' all ' ,  vcmd = vcmd ) 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								    rupee300Frame . pack ( ) 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								    rupee300Label . pack ( anchor = W ,  side = LEFT ,  padx = ( 0 , 0 ) ) 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								    rupee300Entry . pack ( anchor = E ) 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								    blueclockFrame  =  Frame ( itemList4 ) 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								    blueclockLabel  =  Label ( blueclockFrame ,  text = ' Blue Clock ' ) 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								    blueclockVar  =  StringVar ( value = ' 0 ' ) 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								    blueclockEntry  =  Entry ( blueclockFrame ,  textvariable = blueclockVar ,  width = 3 ,  validate = ' all ' ,  vcmd = vcmd ) 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								    blueclockFrame . pack ( ) 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								    blueclockLabel . pack ( anchor = W ,  side = LEFT ,  padx = ( 0 , 11 ) ) 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								    blueclockEntry . pack ( anchor = E ) 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								    greenclockFrame  =  Frame ( itemList4 ) 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								    greenclockLabel  =  Label ( greenclockFrame ,  text = ' Green Clock ' ) 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								    greenclockVar  =  StringVar ( value = ' 0 ' ) 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								    greenclockEntry  =  Entry ( greenclockFrame ,  textvariable = greenclockVar ,  width = 3 ,  validate = ' all ' ,  vcmd = vcmd ) 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								    greenclockFrame . pack ( ) 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								    greenclockLabel . pack ( anchor = W ,  side = LEFT ,  padx = ( 0 , 3 ) ) 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								    greenclockEntry . pack ( anchor = E ) 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								    redclockFrame  =  Frame ( itemList4 ) 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								    redclockLabel  =  Label ( redclockFrame ,  text = ' Red Clock ' ) 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								    redclockVar  =  StringVar ( value = ' 0 ' ) 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								    redclockEntry  =  Entry ( redclockFrame ,  textvariable = redclockVar ,  width = 3 ,  validate = ' all ' ,  vcmd = vcmd ) 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								    redclockFrame . pack ( ) 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								    redclockLabel . pack ( anchor = W ,  side = LEFT ,  padx = ( 0 , 14 ) ) 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								    redclockEntry . pack ( anchor = E ) 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								
							 
						 
					
						
							
								
									
										
										
										
											2019-10-23 21:31:02 -05:00 
										
									 
								 
							 
							
								
									
										 
								
							 
							
								 
							
							
								    silverarrowFrame  =  Frame ( itemList5 ) 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								    silverarrowLabel  =  Label ( silverarrowFrame ,  text = ' Silver Arrow ' ) 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								    silverarrowVar  =  StringVar ( value = ' 0 ' ) 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								    silverarrowEntry  =  Entry ( silverarrowFrame ,  textvariable = silverarrowVar ,  width = 3 ,  validate = ' all ' ,  vcmd = vcmd ) 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								    silverarrowFrame . pack ( ) 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								    silverarrowLabel . pack ( anchor = W ,  side = LEFT ,  padx = ( 0 , 64 ) ) 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								    silverarrowEntry . pack ( anchor = E ) 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								
							 
						 
					
						
							
								
									
										
										
										
											2018-03-15 16:53:42 -05:00 
										
									 
								 
							 
							
								
									
										 
								
							 
							
								 
							
							
								    universalkeyFrame  =  Frame ( itemList5 ) 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								    universalkeyLabel  =  Label ( universalkeyFrame ,  text = ' Universal Key ' ) 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								    universalkeyVar  =  StringVar ( value = ' 0 ' ) 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								    universalkeyEntry  =  Entry ( universalkeyFrame ,  textvariable = universalkeyVar ,  width = 3 ,  validate = ' all ' ,  vcmd = vcmd ) 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								    universalkeyFrame . pack ( ) 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								    universalkeyLabel . pack ( anchor = W ,  side = LEFT ,  padx = ( 0 , 57 ) ) 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								    universalkeyEntry . pack ( anchor = E ) 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								
							 
						 
					
						
							
								
									
										
										
										
											2018-01-21 20:43:44 -06:00 
										
									 
								 
							 
							
								
									
										 
								
							 
							
								 
							
							
								    triforcepieceFrame  =  Frame ( itemList5 ) 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								    triforcepieceLabel  =  Label ( triforcepieceFrame ,  text = ' Triforce Piece ' ) 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								    triforcepieceVar  =  StringVar ( value = ' 0 ' ) 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								    triforcepieceEntry  =  Entry ( triforcepieceFrame ,  textvariable = triforcepieceVar ,  width = 3 ,  validate = ' all ' ,  vcmd = vcmd ) 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								    triforcepieceFrame . pack ( ) 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								    triforcepieceLabel . pack ( anchor = W ,  side = LEFT ,  padx = ( 0 , 55 ) ) 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								    triforcepieceEntry . pack ( anchor = E ) 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								    triforcecountFrame  =  Frame ( itemList5 ) 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								    triforcecountLabel  =  Label ( triforcecountFrame ,  text = ' Triforce Pieces Required ' ) 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								    triforcecountVar  =  StringVar ( value = ' 0 ' ) 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								    triforcecountEntry  =  Entry ( triforcecountFrame ,  textvariable = triforcecountVar ,  width = 3 ,  validate = ' all ' ,  vcmd = vcmd ) 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								    triforcecountFrame . pack ( ) 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								    triforcecountLabel . pack ( anchor = W ,  side = LEFT ,  padx = ( 0 , 0 ) ) 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								    triforcecountEntry . pack ( anchor = E ) 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								    triforceFrame  =  Frame ( itemList5 ) 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								    triforceLabel  =  Label ( triforceFrame ,  text = ' Triforce (win game) ' ) 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								    triforceVar  =  StringVar ( value = ' 0 ' ) 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								    triforceEntry  =  Entry ( triforceFrame ,  textvariable = triforceVar ,  width = 3 ,  validate = ' all ' ,  vcmd = vcmd ) 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								    triforceFrame . pack ( ) 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								    triforceLabel . pack ( anchor = W ,  side = LEFT ,  padx = ( 0 , 23 ) ) 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								    triforceEntry . pack ( anchor = E ) 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								
							 
						 
					
						
							
								
									
										
										
										
											2019-10-23 21:31:02 -05:00 
										
									 
								 
							 
							
								
									
										 
								
							 
							
								 
							
							
								    rupoorFrame  =  Frame ( itemList5 ) 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								    rupoorLabel  =  Label ( rupoorFrame ,  text = ' Rupoor ' ) 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								    rupoorVar  =  StringVar ( value = ' 0 ' ) 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								    rupoorEntry  =  Entry ( rupoorFrame ,  textvariable = rupoorVar ,  width = 3 ,  validate = ' all ' ,  vcmd = vcmd ) 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								    rupoorFrame . pack ( ) 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								    rupoorLabel . pack ( anchor = W ,  side = LEFT ,  padx = ( 0 , 87 ) ) 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								    rupoorEntry . pack ( anchor = E ) 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								
							 
						 
					
						
							
								
									
										
										
										
											2018-01-21 20:43:44 -06:00 
										
									 
								 
							 
							
								
									
										 
								
							 
							
								 
							
							
								    rupoorcostFrame  =  Frame ( itemList5 ) 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								    rupoorcostLabel  =  Label ( rupoorcostFrame ,  text = ' Rupoor Cost ' ) 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								    rupoorcostVar  =  StringVar ( value = ' 10 ' ) 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								    rupoorcostEntry  =  Entry ( rupoorcostFrame ,  textvariable = rupoorcostVar ,  width = 6 ,  validate = ' all ' ,  vcmd = vcmd ) 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								    rupoorcostFrame . pack ( ) 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								    rupoorcostLabel . pack ( anchor = W ,  side = LEFT ,  padx = ( 0 , 43 ) ) 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								    rupoorcostEntry . pack ( anchor = E ) 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								    itemList1 . pack ( side = LEFT ,  padx = ( 0 , 0 ) ) 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								    itemList2 . pack ( side = LEFT ,  padx = ( 0 , 0 ) ) 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								    itemList3 . pack ( side = LEFT ,  padx = ( 0 , 0 ) ) 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								    itemList4 . pack ( side = LEFT ,  padx = ( 0 , 0 ) ) 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								    itemList5 . pack ( side = LEFT ,  padx = ( 0 , 0 ) ) 
							 
						 
					
						
							
								
									
										
										
										
											2018-02-27 20:26:33 -06:00 
										
									 
								 
							 
							
								
									
										 
								
							 
							
								 
							
							
								    topFrame3 . pack ( side = TOP ,  pady = ( 17 , 0 ) ) 
							 
						 
					
						
							
								
									
										
										
										
											2018-01-21 20:43:44 -06:00 
										
									 
								 
							 
							
								
									
										 
								
							 
							
								 
							
							
								
							 
						 
					
						
							
								
									
										
										
										
											2017-07-14 14:34:33 +02:00 
										
									 
								 
							 
							
								
							 
							
								 
							
							
								    if  args  is  not  None : 
							 
						 
					
						
							
								
									
										
										
										
											2019-12-18 21:34:57 +01:00 
										
									 
								 
							 
							
								
									
										 
								
							 
							
								 
							
							
								        for  k , v  in  vars ( args ) . items ( ) : 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								            if  type ( v )  is  dict : 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								                setattr ( args ,  k ,  v [ 1 ] )  # only get values for player 1 for now 
							 
						 
					
						
							
								
									
										
										
										
											2017-07-14 14:34:33 +02:00 
										
									 
								 
							 
							
								
							 
							
								 
							
							
								        # load values from commandline args 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								        createSpoilerVar . set ( int ( args . create_spoiler ) ) 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								        suppressRomVar . set ( int ( args . suppress_rom ) ) 
							 
						 
					
						
							
								
									
										
										
										
											2019-12-13 22:37:52 +01:00 
										
									 
								 
							 
							
								
									
										 
								
							 
							
								 
							
							
								        mapshuffleVar . set ( args . mapshuffle ) 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								        compassshuffleVar . set ( args . compassshuffle ) 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								        keyshuffleVar . set ( args . keyshuffle ) 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								        bigkeyshuffleVar . set ( args . bigkeyshuffle ) 
							 
						 
					
						
							
								
									
										
										
										
											2018-03-14 13:31:36 -05:00 
										
									 
								 
							 
							
								
									
										 
								
							 
							
								 
							
							
								        retroVar . set ( args . retro ) 
							 
						 
					
						
							
								
									
										
										
										
											2017-07-14 14:34:33 +02:00 
										
									 
								 
							 
							
								
							 
							
								 
							
							
								        quickSwapVar . set ( int ( args . quickswap ) ) 
							 
						 
					
						
							
								
									
										
										
										
											2017-11-28 04:54:14 -06:00 
										
									 
								 
							 
							
								
									
										 
								
							 
							
								 
							
							
								        disableMusicVar . set ( int ( args . disablemusic ) ) 
							 
						 
					
						
							
								
									
										
										
										
											2017-07-14 14:34:33 +02:00 
										
									 
								 
							 
							
								
							 
							
								 
							
							
								        if  args . count : 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								            countVar . set ( str ( args . count ) ) 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								        if  args . seed : 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								            seedVar . set ( str ( args . seed ) ) 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								        modeVar . set ( args . mode ) 
							 
						 
					
						
							
								
									
										
										
										
											2019-10-23 20:46:09 -05:00 
										
									 
								 
							 
							
								
									
										 
								
							 
							
								 
							
							
								        swordVar . set ( args . swords ) 
							 
						 
					
						
							
								
									
										
										
										
											2017-07-14 14:34:33 +02:00 
										
									 
								 
							 
							
								
							 
							
								 
							
							
								        difficultyVar . set ( args . difficulty ) 
							 
						 
					
						
							
								
									
										
										
										
											2019-10-23 20:46:09 -05:00 
										
									 
								 
							 
							
								
									
										 
								
							 
							
								 
							
							
								        itemfunctionVar . set ( args . item_functionality ) 
							 
						 
					
						
							
								
									
										
										
										
											2017-11-10 04:18:39 -06:00 
										
									 
								 
							 
							
								
									
										 
								
							 
							
								 
							
							
								        timerVar . set ( args . timer ) 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								        progressiveVar . set ( args . progressive ) 
							 
						 
					
						
							
								
									
										
										
										
											2019-10-23 20:46:09 -05:00 
										
									 
								 
							 
							
								
									
										 
								
							 
							
								 
							
							
								        accessibilityVar . set ( args . accessibility ) 
							 
						 
					
						
							
								
									
										
										
										
											2017-07-14 14:34:33 +02:00 
										
									 
								 
							 
							
								
							 
							
								 
							
							
								        goalVar . set ( args . goal ) 
							 
						 
					
						
							
								
									
										
										
										
											2019-10-23 20:46:09 -05:00 
										
									 
								 
							 
							
								
									
										 
								
							 
							
								 
							
							
								        crystalsGTVar . set ( args . crystals_gt ) 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								        crystalsGanonVar . set ( args . crystals_ganon ) 
							 
						 
					
						
							
								
									
										
										
										
											2017-07-14 14:34:33 +02:00 
										
									 
								 
							 
							
								
							 
							
								 
							
							
								        algorithmVar . set ( args . algorithm ) 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								        shuffleVar . set ( args . shuffle ) 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								        heartbeepVar . set ( args . heartbeep ) 
							 
						 
					
						
							
								
									
										
										
										
											2018-01-05 16:53:29 -06:00 
										
									 
								 
							 
							
								
									
										 
								
							 
							
								 
							
							
								        fastMenuVar . set ( args . fastmenu ) 
							 
						 
					
						
							
								
									
										
										
										
											2017-07-14 14:34:33 +02:00 
										
									 
								 
							 
							
								
							 
							
								 
							
							
								        logicVar . set ( args . logic ) 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								        romVar . set ( args . rom ) 
							 
						 
					
						
							
								
									
										
										
										
											2017-07-17 22:28:29 +02:00 
										
									 
								 
							 
							
								
									
										 
								
							 
							
								 
							
							
								        shuffleGanonVar . set ( args . shuffleganon ) 
							 
						 
					
						
							
								
									
										
										
										
											2019-01-23 03:04:42 -06:00 
										
									 
								 
							 
							
								
									
										 
								
							 
							
								 
							
							
								        hintsVar . set ( args . hints ) 
							 
						 
					
						
							
								
									
										
										
										
											2017-07-14 14:34:33 +02:00 
										
									 
								 
							 
							
								
							 
							
								 
							
							
								        if  args . sprite  is  not  None : 
							 
						 
					
						
							
								
									
										
										
										
											2017-12-08 19:28:22 -05:00 
										
									 
								 
							 
							
								
									
										 
								
							 
							
								 
							
							
								            set_sprite ( Sprite ( args . sprite ) ) 
							 
						 
					
						
							
								
									
										
										
										
											2017-07-14 14:34:33 +02:00 
										
									 
								 
							 
							
								
							 
							
								 
							
							
								
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								    mainWindow . mainloop ( ) 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								
							 
						 
					
						
							
								
									
										
										
										
											2017-11-13 00:29:42 -05:00 
										
									 
								 
							 
							
								
									
										 
								
							 
							
								 
							
							
								class  SpriteSelector ( object ) :  
						 
					
						
							
								
									
										
										
										
											2018-01-05 00:42:35 -05:00 
										
									 
								 
							 
							
								
									
										 
								
							 
							
								 
							
							
								    def  __init__ ( self ,  parent ,  callback ,  adjuster = False ) : 
							 
						 
					
						
							
								
									
										
										
										
											2017-11-13 00:29:42 -05:00 
										
									 
								 
							 
							
								
									
										 
								
							 
							
								 
							
							
								        if  is_bundled ( ) : 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								            self . deploy_icons ( ) 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								        self . parent  =  parent 
							 
						 
					
						
							
								
									
										
										
										
											2017-11-18 12:22:06 -05:00 
										
									 
								 
							 
							
								
									
										 
								
							 
							
								 
							
							
								        self . window  =  Toplevel ( parent ) 
							 
						 
					
						
							
								
									
										
										
										
											2017-11-13 00:29:42 -05:00 
										
									 
								 
							 
							
								
									
										 
								
							 
							
								 
							
							
								        self . callback  =  callback 
							 
						 
					
						
							
								
									
										
										
										
											2018-01-05 00:42:35 -05:00 
										
									 
								 
							 
							
								
									
										 
								
							 
							
								 
							
							
								        self . adjuster  =  adjuster 
							 
						 
					
						
							
								
									
										
										
										
											2017-11-18 12:22:06 -05:00 
										
									 
								 
							 
							
								
									
										 
								
							 
							
								 
							
							
								
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								        self . window . wm_title ( " TAKE ANY ONE YOU WANT " ) 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								        self . window [ ' padx ' ]  =  5 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								        self . window [ ' pady ' ]  =  5 
							 
						 
					
						
							
								
									
										
										
										
											2018-01-07 20:10:23 -05:00 
										
									 
								 
							 
							
								
									
										 
								
							 
							
								 
							
							
								        self . all_sprites  =  [ ] 
							 
						 
					
						
							
								
									
										
										
										
											2017-11-13 00:29:42 -05:00 
										
									 
								 
							 
							
								
									
										 
								
							 
							
								 
							
							
								
							 
						 
					
						
							
								
									
										
										
										
											2018-01-01 12:59:20 -05:00 
										
									 
								 
							 
							
								
									
										 
								
							 
							
								 
							
							
								        def  open_unofficial_sprite_dir ( _evt ) : 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								            open_file ( self . unofficial_sprite_dir ) 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								        official_frametitle  =  Label ( self . window ,  text = ' Official Sprites ' ) 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								        unofficial_frametitle  =  Frame ( self . window ) 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								        title_text  =  Label ( unofficial_frametitle ,  text = " Unofficial Sprites " ) 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								        title_link  =  Label ( unofficial_frametitle ,  text = " (open) " ,  fg = " blue " ,  cursor = " hand2 " ) 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								        title_text . pack ( side = LEFT ) 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								        title_link . pack ( side = LEFT ) 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								        title_link . bind ( " <Button-1> " ,  open_unofficial_sprite_dir ) 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								
							 
						 
					
						
							
								
									
										
										
										
											2018-01-05 00:42:35 -05:00 
										
									 
								 
							 
							
								
									
										 
								
							 
							
								 
							
							
								        self . icon_section ( official_frametitle ,  self . official_sprite_dir + ' /* ' ,  ' Official sprites not found. Click  " Update official sprites "  to download them. ' ) 
							 
						 
					
						
							
								
									
										
										
										
											2018-01-01 12:59:20 -05:00 
										
									 
								 
							 
							
								
									
										 
								
							 
							
								 
							
							
								        self . icon_section ( unofficial_frametitle ,  self . unofficial_sprite_dir + ' /* ' ,  ' Put sprites in the unofficial sprites folder (see open link above) to have them appear here. ' ) 
							 
						 
					
						
							
								
									
										
										
										
											2017-11-13 00:29:42 -05:00 
										
									 
								 
							 
							
								
									
										 
								
							 
							
								 
							
							
								
							 
						 
					
						
							
								
									
										
										
										
											2017-11-18 12:22:06 -05:00 
										
									 
								 
							 
							
								
									
										 
								
							 
							
								 
							
							
								        frame  =  Frame ( self . window ) 
							 
						 
					
						
							
								
									
										
										
										
											2017-11-13 00:29:42 -05:00 
										
									 
								 
							 
							
								
									
										 
								
							 
							
								 
							
							
								        frame . pack ( side = BOTTOM ,  fill = X ,  pady = 5 ) 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								        button  =  Button ( frame ,  text = " Browse for file... " ,  command = self . browse_for_sprite ) 
							 
						 
					
						
							
								
									
										
										
										
											2017-11-18 12:22:06 -05:00 
										
									 
								 
							 
							
								
									
										 
								
							 
							
								 
							
							
								        button . pack ( side = RIGHT ,  padx = ( 5 ,  0 ) ) 
							 
						 
					
						
							
								
									
										
										
										
											2017-11-13 00:29:42 -05:00 
										
									 
								 
							 
							
								
									
										 
								
							 
							
								 
							
							
								
							 
						 
					
						
							
								
									
										
										
										
											2018-01-05 00:42:35 -05:00 
										
									 
								 
							 
							
								
									
										 
								
							 
							
								 
							
							
								        button  =  Button ( frame ,  text = " Update official sprites " ,  command = self . update_official_sprites ) 
							 
						 
					
						
							
								
									
										
										
										
											2017-11-18 12:22:06 -05:00 
										
									 
								 
							 
							
								
									
										 
								
							 
							
								 
							
							
								        button . pack ( side = RIGHT ,  padx = ( 5 ,  0 ) ) 
							 
						 
					
						
							
								
									
										
										
										
											2017-11-13 00:29:42 -05:00 
										
									 
								 
							 
							
								
									
										 
								
							 
							
								 
							
							
								
							 
						 
					
						
							
								
									
										
										
										
											2018-01-07 20:10:23 -05:00 
										
									 
								 
							 
							
								
									
										 
								
							 
							
								 
							
							
								        button  =  Button ( frame ,  text = " Default Link sprite " ,  command = self . use_default_link_sprite ) 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								        button . pack ( side = LEFT ,  padx = ( 0 ,  5 ) ) 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								        button  =  Button ( frame ,  text = " Random sprite " ,  command = self . use_random_sprite ) 
							 
						 
					
						
							
								
									
										
										
										
											2018-01-05 00:42:35 -05:00 
										
									 
								 
							 
							
								
									
										 
								
							 
							
								 
							
							
								        button . pack ( side = LEFT ,  padx = ( 0 ,  5 ) ) 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								        if  adjuster : 
							 
						 
					
						
							
								
									
										
										
										
											2018-01-07 20:10:23 -05:00 
										
									 
								 
							 
							
								
									
										 
								
							 
							
								 
							
							
								            button  =  Button ( frame ,  text = " Current sprite from rom " ,  command = self . use_default_sprite ) 
							 
						 
					
						
							
								
									
										
										
										
											2018-01-05 00:42:35 -05:00 
										
									 
								 
							 
							
								
									
										 
								
							 
							
								 
							
							
								            button . pack ( side = LEFT ,  padx = ( 0 ,  5 ) ) 
							 
						 
					
						
							
								
									
										
										
										
											2017-11-13 00:29:42 -05:00 
										
									 
								 
							 
							
								
									
										 
								
							 
							
								 
							
							
								
							 
						 
					
						
							
								
									
										
										
										
											2017-11-18 12:22:06 -05:00 
										
									 
								 
							 
							
								
									
										 
								
							 
							
								 
							
							
								        set_icon ( self . window ) 
							 
						 
					
						
							
								
									
										
										
										
											2017-12-10 11:10:04 -05:00 
										
									 
								 
							 
							
								
									
										 
								
							 
							
								 
							
							
								        self . window . focus ( ) 
							 
						 
					
						
							
								
									
										
										
										
											2017-11-13 00:29:42 -05:00 
										
									 
								 
							 
							
								
									
										 
								
							 
							
								 
							
							
								
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								    def  icon_section ( self ,  frame_label ,  path ,  no_results_label ) : 
							 
						 
					
						
							
								
									
										
										
										
											2018-01-01 12:59:20 -05:00 
										
									 
								 
							 
							
								
									
										 
								
							 
							
								 
							
							
								        frame  =  LabelFrame ( self . window ,  labelwidget = frame_label ,  padx = 5 ,  pady = 5 ) 
							 
						 
					
						
							
								
									
										
										
										
											2017-11-13 00:29:42 -05:00 
										
									 
								 
							 
							
								
									
										 
								
							 
							
								 
							
							
								        frame . pack ( side = TOP ,  fill = X ) 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								
							 
						 
					
						
							
								
									
										
										
										
											2018-01-07 01:31:56 -05:00 
										
									 
								 
							 
							
								
									
										 
								
							 
							
								 
							
							
								        sprites  =  [ ] 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								
							 
						 
					
						
							
								
									
										
										
										
											2017-11-13 00:29:42 -05:00 
										
									 
								 
							 
							
								
									
										 
								
							 
							
								 
							
							
								        for  file  in  glob ( output_path ( path ) ) : 
							 
						 
					
						
							
								
									
										
										
										
											2018-01-07 01:31:56 -05:00 
										
									 
								 
							 
							
								
									
										 
								
							 
							
								 
							
							
								            sprites . append ( Sprite ( file ) ) 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								
							 
						 
					
						
							
								
									
										
										
										
											2018-09-26 13:19:41 -04:00 
										
									 
								 
							 
							
								
									
										 
								
							 
							
								 
							
							
								        sprites . sort ( key = lambda  s :  str . lower ( s . name  or  " " ) . strip ( ) ) 
							 
						 
					
						
							
								
									
										
										
										
											2018-01-07 01:31:56 -05:00 
										
									 
								 
							 
							
								
									
										 
								
							 
							
								 
							
							
								
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								        i  =  0 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								        for  sprite  in  sprites : 
							 
						 
					
						
							
								
									
										
										
										
											2017-12-08 17:33:59 -05:00 
										
									 
								 
							 
							
								
									
										 
								
							 
							
								 
							
							
								            image  =  get_image_for_sprite ( sprite ) 
							 
						 
					
						
							
								
									
										
										
										
											2017-12-17 00:25:46 -05:00 
										
									 
								 
							 
							
								
									
										 
								
							 
							
								 
							
							
								            if  image  is  None : 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								                continue 
							 
						 
					
						
							
								
									
										
										
										
											2018-01-07 20:10:23 -05:00 
										
									 
								 
							 
							
								
									
										 
								
							 
							
								 
							
							
								            self . all_sprites . append ( sprite ) 
							 
						 
					
						
							
								
									
										
										
										
											2017-12-17 00:25:46 -05:00 
										
									 
								 
							 
							
								
									
										 
								
							 
							
								 
							
							
								            button  =  Button ( frame ,  image = image ,  command = lambda  spr = sprite :  self . select_sprite ( spr ) ) 
							 
						 
					
						
							
								
									
										
										
										
											2018-01-07 01:31:56 -05:00 
										
									 
								 
							 
							
								
									
										 
								
							 
							
								 
							
							
								            ToolTips . register ( button ,  sprite . name  +  ( " \n By:  %s "  %  sprite . author_name  if  sprite . author_name  else  " " ) ) 
							 
						 
					
						
							
								
									
										
										
										
											2017-11-18 12:22:06 -05:00 
										
									 
								 
							 
							
								
									
										 
								
							 
							
								 
							
							
								            button . image  =  image 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								            button . grid ( row = i  / /  16 ,  column = i  %  16 ) 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								            i  + =  1 
							 
						 
					
						
							
								
									
										
										
										
											2017-11-13 00:29:42 -05:00 
										
									 
								 
							 
							
								
									
										 
								
							 
							
								 
							
							
								
							 
						 
					
						
							
								
									
										
										
										
											2017-11-18 12:22:06 -05:00 
										
									 
								 
							 
							
								
									
										 
								
							 
							
								 
							
							
								        if  i  ==  0 : 
							 
						 
					
						
							
								
									
										
										
										
											2017-12-17 00:25:46 -05:00 
										
									 
								 
							 
							
								
									
										 
								
							 
							
								 
							
							
								            label  =  Label ( frame ,  text = no_results_label ) 
							 
						 
					
						
							
								
									
										
										
										
											2017-11-13 00:29:42 -05:00 
										
									 
								 
							 
							
								
									
										 
								
							 
							
								 
							
							
								            label . pack ( ) 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								
							 
						 
					
						
							
								
									
										
										
										
											2017-11-18 12:22:06 -05:00 
										
									 
								 
							 
							
								
									
										 
								
							 
							
								 
							
							
								
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								    def  update_official_sprites ( self ) : 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								        # need to wrap in try catch. We don't want errors getting the json or downloading the files to break us. 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								        self . window . destroy ( ) 
							 
						 
					
						
							
								
									
										
										
										
											2017-12-10 11:10:04 -05:00 
										
									 
								 
							 
							
								
									
										 
								
							 
							
								 
							
							
								        self . parent . update ( ) 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								        def  work ( task ) : 
							 
						 
					
						
							
								
									
										
										
										
											2017-12-17 00:25:46 -05:00 
										
									 
								 
							 
							
								
									
										 
								
							 
							
								 
							
							
								            resultmessage  =  " " 
							 
						 
					
						
							
								
									
										
										
										
											2017-12-10 11:10:04 -05:00 
										
									 
								 
							 
							
								
									
										 
								
							 
							
								 
							
							
								            successful  =  True 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								            def  finished ( ) : 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								                task . close_window ( ) 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								                if  successful : 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								                    messagebox . showinfo ( " Sprite Updater " ,  resultmessage ) 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								                else : 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								                    messagebox . showerror ( " Sprite Updater " ,  resultmessage ) 
							 
						 
					
						
							
								
									
										
										
										
											2018-01-05 00:42:35 -05:00 
										
									 
								 
							 
							
								
									
										 
								
							 
							
								 
							
							
								                SpriteSelector ( self . parent ,  self . callback ,  self . adjuster ) 
							 
						 
					
						
							
								
									
										
										
										
											2017-12-10 11:10:04 -05:00 
										
									 
								 
							 
							
								
									
										 
								
							 
							
								 
							
							
								
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								            try : 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								                task . update_status ( " Downloading official sprites list " ) 
							 
						 
					
						
							
								
									
										
										
										
											2018-09-22 22:51:54 -04:00 
										
									 
								 
							 
							
								
									
										 
								
							 
							
								 
							
							
								                with  urlopen ( ' https://alttpr.com/sprites ' )  as  response : 
							 
						 
					
						
							
								
									
										
										
										
											2018-01-01 12:13:39 -05:00 
										
									 
								 
							 
							
								
									
										 
								
							 
							
								 
							
							
								                    sprites_arr  =  json . loads ( response . read ( ) . decode ( " utf-8 " ) ) 
							 
						 
					
						
							
								
									
										
										
										
											2017-12-10 11:10:04 -05:00 
										
									 
								 
							 
							
								
									
										 
								
							 
							
								 
							
							
								            except  Exception  as  e : 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								                resultmessage  =  " Error getting list of official sprites. Sprites not updated. \n \n %s :  %s "  %  ( type ( e ) . __name__ ,  e ) 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								                successful  =  False 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								                task . queue_event ( finished ) 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								                return 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								            try : 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								                task . update_status ( " Determining needed sprites " ) 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								                current_sprites  =  [ os . path . basename ( file )  for  file  in  glob ( self . official_sprite_dir + ' /* ' ) ] 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								                official_sprites  =  [ ( sprite [ ' file ' ] ,  os . path . basename ( urlparse ( sprite [ ' file ' ] ) . path ) )  for  sprite  in  sprites_arr ] 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								                needed_sprites  =  [ ( sprite_url ,  filename )  for  ( sprite_url ,  filename )  in  official_sprites  if  filename  not  in  current_sprites ] 
							 
						 
					
						
							
								
									
										
										
										
											2017-12-17 17:30:50 -05:00 
										
									 
								 
							 
							
								
									
										 
								
							 
							
								 
							
							
								                bundled_sprites  =  [ os . path . basename ( file )  for  file  in  glob ( self . local_official_sprite_dir + ' /* ' ) ] 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								                # todo: eventually use the above list to avoid downloading any sprites that we already have cached in the bundle. 
							 
						 
					
						
							
								
									
										
										
										
											2017-12-10 11:10:04 -05:00 
										
									 
								 
							 
							
								
									
										 
								
							 
							
								 
							
							
								
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								                official_filenames  =  [ filename  for  ( _ ,  filename )  in  official_sprites ] 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								                obsolete_sprites  =  [ sprite  for  sprite  in  current_sprites  if  sprite  not  in  official_filenames ] 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								            except  Exception  as  e : 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								                resultmessage  =  " Error Determining which sprites to update. Sprites not updated. \n \n %s :  %s "  %  ( type ( e ) . __name__ ,  e ) 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								                successful  =  False 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								                task . queue_event ( finished ) 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								                return 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								            updated  =  0 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								            for  ( sprite_url ,  filename )  in  needed_sprites : 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								                try : 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								                    task . update_status ( " Downloading needed sprite  %g / %g "  %  ( updated  +  1 ,  len ( needed_sprites ) ) ) 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								                    target  =  os . path . join ( self . official_sprite_dir ,  filename ) 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								                    with  urlopen ( sprite_url )  as  response ,  open ( target ,  ' wb ' )  as  out : 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								                        shutil . copyfileobj ( response ,  out ) 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								                except  Exception  as  e : 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								                    resultmessage  =  " Error downloading sprite. Not all sprites updated. \n \n %s :  %s "  %  ( type ( e ) . __name__ ,  e ) 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								                    successful  =  False 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								                updated  + =  1 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								            deleted  =  0 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								            for  sprite  in  obsolete_sprites : 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								                try : 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								                    task . update_status ( " Removing obsolete sprite  %g / %g "  %  ( deleted  +  1 ,  len ( obsolete_sprites ) ) ) 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								                    os . remove ( os . path . join ( self . official_sprite_dir ,  sprite ) ) 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								                except  Exception  as  e : 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								                    resultmessage  =  " Error removing obsolete sprite. Not all sprites updated. \n \n %s :  %s "  %  ( type ( e ) . __name__ ,  e ) 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								                    successful  =  False 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								                deleted  + =  1 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								            if  successful : 
							 
						 
					
						
							
								
									
										
										
										
											2018-09-26 13:19:41 -04:00 
										
									 
								 
							 
							
								
									
										 
								
							 
							
								 
							
							
								                resultmessage  =  " official sprites updated successfully " 
							 
						 
					
						
							
								
									
										
										
										
											2017-12-10 11:10:04 -05:00 
										
									 
								 
							 
							
								
									
										 
								
							 
							
								 
							
							
								
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								            task . queue_event ( finished ) 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								        BackgroundTaskProgress ( self . parent ,  work ,  " Updating Sprites " ) 
							 
						 
					
						
							
								
									
										
										
										
											2017-11-18 12:22:06 -05:00 
										
									 
								 
							 
							
								
									
										 
								
							 
							
								 
							
							
								
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								
							 
						 
					
						
							
								
									
										
										
										
											2017-11-13 00:29:42 -05:00 
										
									 
								 
							 
							
								
									
										 
								
							 
							
								 
							
							
								    def  browse_for_sprite ( self ) : 
							 
						 
					
						
							
								
									
										
										
										
											2018-01-07 01:31:56 -05:00 
										
									 
								 
							 
							
								
									
										 
								
							 
							
								 
							
							
								        sprite  =  filedialog . askopenfilename ( 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								            filetypes = [ ( " All Sprite Sources " ,  ( " .zspr " ,  " .spr " ,  " .sfc " ,  " .smc " ) ) , 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								                       ( " ZSprite files " ,  " .zspr " ) , 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								                       ( " Sprite files " ,  " .spr " ) , 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								                       ( " Rom Files " ,  ( " .sfc " ,  " .smc " ) ) , 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								                       ( " All Files " ,  " * " ) ] ) 
							 
						 
					
						
							
								
									
										
										
										
											2017-12-08 19:28:22 -05:00 
										
									 
								 
							 
							
								
									
										 
								
							 
							
								 
							
							
								        try : 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								            self . callback ( Sprite ( sprite ) ) 
							 
						 
					
						
							
								
									
										
										
										
											2017-12-17 00:25:46 -05:00 
										
									 
								 
							 
							
								
									
										 
								
							 
							
								 
							
							
								        except  Exception : 
							 
						 
					
						
							
								
									
										
										
										
											2017-12-08 19:28:22 -05:00 
										
									 
								 
							 
							
								
									
										 
								
							 
							
								 
							
							
								            self . callback ( None ) 
							 
						 
					
						
							
								
									
										
										
										
											2017-11-18 12:22:06 -05:00 
										
									 
								 
							 
							
								
									
										 
								
							 
							
								 
							
							
								        self . window . destroy ( ) 
							 
						 
					
						
							
								
									
										
										
										
											2017-11-13 00:29:42 -05:00 
										
									 
								 
							 
							
								
									
										 
								
							 
							
								 
							
							
								
							 
						 
					
						
							
								
									
										
										
										
											2017-12-08 19:28:22 -05:00 
										
									 
								 
							 
							
								
									
										 
								
							 
							
								 
							
							
								
							 
						 
					
						
							
								
									
										
										
										
											2017-11-13 00:29:42 -05:00 
										
									 
								 
							 
							
								
									
										 
								
							 
							
								 
							
							
								    def  use_default_sprite ( self ) : 
							 
						 
					
						
							
								
									
										
										
										
											2017-12-08 19:28:22 -05:00 
										
									 
								 
							 
							
								
									
										 
								
							 
							
								 
							
							
								        self . callback ( None ) 
							 
						 
					
						
							
								
									
										
										
										
											2017-11-18 12:22:06 -05:00 
										
									 
								 
							 
							
								
									
										 
								
							 
							
								 
							
							
								        self . window . destroy ( ) 
							 
						 
					
						
							
								
									
										
										
										
											2017-11-13 00:29:42 -05:00 
										
									 
								 
							 
							
								
									
										 
								
							 
							
								 
							
							
								
							 
						 
					
						
							
								
									
										
										
										
											2018-01-05 00:42:35 -05:00 
										
									 
								 
							 
							
								
									
										 
								
							 
							
								 
							
							
								    def  use_default_link_sprite ( self ) : 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								        self . callback ( Sprite . default_link_sprite ( ) ) 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								        self . window . destroy ( ) 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								
							 
						 
					
						
							
								
									
										
										
										
											2018-01-07 20:10:23 -05:00 
										
									 
								 
							 
							
								
									
										 
								
							 
							
								 
							
							
								    def  use_random_sprite ( self ) : 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								        self . callback ( random . choice ( self . all_sprites )  if  self . all_sprites  else  None ) 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								        self . window . destroy ( ) 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								
							 
						 
					
						
							
								
									
										
										
										
											2017-11-13 00:29:42 -05:00 
										
									 
								 
							 
							
								
									
										 
								
							 
							
								 
							
							
								    def  select_sprite ( self ,  spritename ) : 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								        self . callback ( spritename ) 
							 
						 
					
						
							
								
									
										
										
										
											2017-11-18 12:22:06 -05:00 
										
									 
								 
							 
							
								
									
										 
								
							 
							
								 
							
							
								        self . window . destroy ( ) 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								
							 
						 
					
						
							
								
									
										
										
										
											2017-11-13 00:29:42 -05:00 
										
									 
								 
							 
							
								
									
										 
								
							 
							
								 
							
							
								
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								    def  deploy_icons ( self ) : 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								        if  not  os . path . exists ( self . unofficial_sprite_dir ) : 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								            os . makedirs ( self . unofficial_sprite_dir ) 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								        if  not  os . path . exists ( self . official_sprite_dir ) : 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								            shutil . copytree ( self . local_official_sprite_dir ,  self . official_sprite_dir ) 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								    @property 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								    def  official_sprite_dir ( self ) : 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								        if  is_bundled ( ) : 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								            return  output_path ( " sprites/official " ) 
							 
						 
					
						
							
								
									
										
										
										
											2017-12-17 00:25:46 -05:00 
										
									 
								 
							 
							
								
									
										 
								
							 
							
								 
							
							
								        return  self . local_official_sprite_dir 
							 
						 
					
						
							
								
									
										
										
										
											2017-11-13 00:29:42 -05:00 
										
									 
								 
							 
							
								
									
										 
								
							 
							
								 
							
							
								
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								    @property 
							 
						 
					
						
							
								
									
										
										
										
											2017-12-17 00:25:46 -05:00 
										
									 
								 
							 
							
								
									
										 
								
							 
							
								 
							
							
								    def  local_official_sprite_dir ( self ) : 
							 
						 
					
						
							
								
									
										
										
										
											2017-11-13 00:29:42 -05:00 
										
									 
								 
							 
							
								
									
										 
								
							 
							
								 
							
							
								        return  local_path ( " data/sprites/official " ) 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								    @property 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								    def  unofficial_sprite_dir ( self ) : 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								        if  is_bundled ( ) : 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								            return  output_path ( " sprites/unofficial " ) 
							 
						 
					
						
							
								
									
										
										
										
											2017-12-17 00:25:46 -05:00 
										
									 
								 
							 
							
								
									
										 
								
							 
							
								 
							
							
								        return  self . local_unofficial_sprite_dir 
							 
						 
					
						
							
								
									
										
										
										
											2017-11-13 00:29:42 -05:00 
										
									 
								 
							 
							
								
									
										 
								
							 
							
								 
							
							
								
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								    @property 
							 
						 
					
						
							
								
									
										
										
										
											2017-12-17 00:25:46 -05:00 
										
									 
								 
							 
							
								
									
										 
								
							 
							
								 
							
							
								    def  local_unofficial_sprite_dir ( self ) : 
							 
						 
					
						
							
								
									
										
										
										
											2017-11-13 00:29:42 -05:00 
										
									 
								 
							 
							
								
									
										 
								
							 
							
								 
							
							
								        return  local_path ( " data/sprites/unofficial " ) 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								
							 
						 
					
						
							
								
									
										
										
										
											2017-12-07 19:44:08 -05:00 
										
									 
								 
							 
							
								
									
										 
								
							 
							
								 
							
							
								
							 
						 
					
						
							
								
									
										
										
										
											2017-12-08 17:33:59 -05:00 
										
									 
								 
							 
							
								
									
										 
								
							 
							
								 
							
							
								def  get_image_for_sprite ( sprite ) :  
						 
					
						
							
								
									
										
										
										
											2017-12-07 19:44:08 -05:00 
										
									 
								 
							 
							
								
									
										 
								
							 
							
								 
							
							
								    if  not  sprite . valid : 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								        return  None 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								    height  =  24 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								    width  =  16 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								    def  draw_sprite_into_gif ( add_palette_color ,  set_pixel_color_index ) : 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								        def  drawsprite ( spr ,  pal_as_colors ,  offset ) : 
							 
						 
					
						
							
								
									
										
										
										
											2017-12-17 00:25:46 -05:00 
										
									 
								 
							 
							
								
									
										 
								
							 
							
								 
							
							
								            for  y ,  row  in  enumerate ( spr ) : 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								                for  x ,  pal_index  in  enumerate ( row ) : 
							 
						 
					
						
							
								
									
										
										
										
											2017-12-07 19:44:08 -05:00 
										
									 
								 
							 
							
								
									
										 
								
							 
							
								 
							
							
								                    if  pal_index : 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								                        color  =  pal_as_colors [ pal_index  -  1 ] 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								                        set_pixel_color_index ( x  +  offset [ 0 ] ,  y  +  offset [ 1 ] ,  color ) 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								        add_palette_color ( 16 ,  ( 40 ,  40 ,  40 ) ) 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								        shadow  =  [ 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								            [ 0 ,  0 ,  0 ,  1 ,  1 ,  1 ,  1 ,  1 ,  1 ,  0 ,  0 ,  0 ] , 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								            [ 0 ,  1 ,  1 ,  1 ,  1 ,  1 ,  1 ,  1 ,  1 ,  1 ,  1 ,  0 ] , 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								            [ 1 ,  1 ,  1 ,  1 ,  1 ,  1 ,  1 ,  1 ,  1 ,  1 ,  1 ,  1 ] , 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								            [ 1 ,  1 ,  1 ,  1 ,  1 ,  1 ,  1 ,  1 ,  1 ,  1 ,  1 ,  1 ] , 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								            [ 0 ,  1 ,  1 ,  1 ,  1 ,  1 ,  1 ,  1 ,  1 ,  1 ,  1 ,  0 ] , 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								            [ 0 ,  0 ,  0 ,  1 ,  1 ,  1 ,  1 ,  1 ,  1 ,  0 ,  0 ,  0 ] , 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								        ] 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								        drawsprite ( shadow ,  [ 16 ] ,  ( 2 ,  17 ) ) 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								        palettes  =  sprite . decode_palette ( ) 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								        for  i  in  range ( 15 ) : 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								            add_palette_color ( i  +  1 ,  palettes [ 0 ] [ i ] ) 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								        body  =  sprite . decode16 ( 0x4C0 ) 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								        drawsprite ( body ,  list ( range ( 1 ,  16 ) ) ,  ( 0 ,  8 ) ) 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								        head  =  sprite . decode16 ( 0x40 ) 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								        drawsprite ( head ,  list ( range ( 1 ,  16 ) ) ,  ( 0 ,  0 ) ) 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								    def  make_gif ( callback ) : 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								        gif_header  =  b ' GIF89a ' 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								        gif_lsd  =  bytearray ( 7 ) 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								        gif_lsd [ 0 ]  =  width 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								        gif_lsd [ 2 ]  =  height 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								        gif_lsd [ 4 ]  =  0xF4   # 32 color palette follows.  transparant + 15 for sprite + 1 for shadow=17 which rounds up to 32 as nearest power of 2 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								        gif_lsd [ 5 ]  =  0   # background color is zero 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								        gif_lsd [ 6 ]  =  0   # aspect raio not specified 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								        gif_gct  =  bytearray ( 3  *  32 ) 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								        gif_gce  =  bytearray ( 8 ) 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								        gif_gce [ 0 ]  =  0x21   # start of extention blocked 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								        gif_gce [ 1 ]  =  0xF9   # identifies this as the Graphics Control extension 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								        gif_gce [ 2 ]  =  4   # we are suppling only the 4 four bytes 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								        gif_gce [ 3 ]  =  0x01   # this gif includes transparency 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								        gif_gce [ 4 ]  =  gif_gce [ 5 ]  =  0   # animation frrame delay (unused) 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								        gif_gce [ 6 ]  =  0   # transparent color is index 0 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								        gif_gce [ 7 ]  =  0   # end of gif_gce 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								        gif_id  =  bytearray ( 10 ) 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								        gif_id [ 0 ]  =  0x2c 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								        # byte 1,2 are image left. 3,4 are image top both are left as zerosuitsamus 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								        gif_id [ 5 ]  =  width 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								        gif_id [ 7 ]  =  height 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								        gif_id [ 9 ]  =  0   # no local color table 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								        gif_img_minimum_code_size  =  bytes ( [ 7 ] )   # we choose 7 bits, so that each pixel is represented by a byte, for conviennce. 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								        clear  =  0x80 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								        stop  =  0x81 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								        unchunked_image_data  =  bytearray ( height  *  ( width  +  1 )  +  1 ) 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								        # we technically need a Clear code once every 125 bytes, but we do it at the start of every row for simplicity 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								        for  row  in  range ( height ) : 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								            unchunked_image_data [ row  *  ( width  +  1 ) ]  =  clear 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								        unchunked_image_data [ - 1 ]  =  stop 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								        def  add_palette_color ( index ,  color ) : 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								            gif_gct [ 3  *  index ]  =  color [ 0 ] 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								            gif_gct [ 3  *  index  +  1 ]  =  color [ 1 ] 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								            gif_gct [ 3  *  index  +  2 ]  =  color [ 2 ] 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								        def  set_pixel_color_index ( x ,  y ,  color ) : 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								            unchunked_image_data [ y  *  ( width  +  1 )  +  x  +  1 ]  =  color 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								        callback ( add_palette_color ,  set_pixel_color_index ) 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								        def  chunk_image ( img ) : 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								            for  i  in  range ( 0 ,  len ( img ) ,  255 ) : 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								                chunk  =  img [ i : i  +  255 ] 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								                yield  bytes ( [ len ( chunk ) ] ) 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								                yield  chunk 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								        gif_img  =  b ' ' . join ( [ gif_img_minimum_code_size ]  +  list ( chunk_image ( unchunked_image_data ) )  +  [ b ' \x00 ' ] ) 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								        gif  =  b ' ' . join ( [ gif_header ,  gif_lsd ,  gif_gct ,  gif_gce ,  gif_id ,  gif_img ,  b ' \x3b ' ] ) 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								        return  gif 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								    gif_data  =  make_gif ( draw_sprite_into_gif ) 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								    image  =  PhotoImage ( data = gif_data ) 
							 
						 
					
						
							
								
									
										
										
										
											2017-11-13 00:29:42 -05:00 
										
									 
								 
							 
							
								
									
										 
								
							 
							
								 
							
							
								
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								    return  image . zoom ( 2 ) 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								
							 
						 
					
						
							
								
									
										
										
										
											2017-07-14 14:34:33 +02:00 
										
									 
								 
							 
							
								
							 
							
								 
							
							
								if  __name__  ==  ' __main__ ' :  
						 
					
						
							
								
									
										
										
										
											2020-04-14 18:57:39 +02:00 
										
									 
								 
							 
							
								
									
										 
								
							 
							
								 
							
							
								    logging . basicConfig ( format = ' %(message)s ' ,  level = logging . INFO ) 
							 
						 
					
						
							
								
									
										
										
										
											2017-07-14 14:34:33 +02:00 
										
									 
								 
							 
							
								
							 
							
								 
							
							
								    guiMain ( )