diff --git a/gui/bottom.py b/gui/bottom.py index 09f1fc7d..f888b4b8 100644 --- a/gui/bottom.py +++ b/gui/bottom.py @@ -97,7 +97,7 @@ def bottom_frame(self,parent,args=None): int(parent.customContent.customWidgets["rupee300"].storageVar.get()), int(parent.customContent.customWidgets["rupoor"].storageVar.get()), int(parent.customContent.customWidgets["blueclock"].storageVar.get()), int(parent.customContent.customWidgets["greenclock"].storageVar.get()), int(parent.customContent.customWidgets["redclock"].storageVar.get()), int(parent.customContent.customWidgets["progressivebow"].storageVar.get()), int(parent.customContent.customWidgets["bomb10"].storageVar.get()), int(parent.customContent.customWidgets["triforcepieces"].storageVar.get()),int(parent.customContent.customWidgets["triforcepiecesgoal"].storageVar.get()), int(parent.customContent.customWidgets["triforce"].storageVar.get()),int(parent.customContent.customWidgets["rupoorcost"].storageVar.get()),int(parent.customContent.customWidgets["generickeys"].storageVar.get())] guiargs.rom = parent.generationSetupWindow.romVar.get() -# guiargs.sprite = parent.gameOptionsWindow.sprite + guiargs.sprite = parent.gameOptionsWindow.gameOptionsWidgets["sprite"]["spriteObject"] guiargs.outputpath = args.outputpath if args else None # get default values for missing parameters for k,v in vars(parse_arguments(['--multi', str(guiargs.multi)])).items(): diff --git a/gui/loadcliargs.py b/gui/loadcliargs.py index 2832b8a3..abad4ffd 100644 --- a/gui/loadcliargs.py +++ b/gui/loadcliargs.py @@ -1,3 +1,7 @@ +from classes.SpriteSelector import SpriteSelector as spriteSelector +from gui.randomize.gameoptions import set_sprite +from Rom import Sprite + def loadcliargs(gui,args): if args is not None: for k,v in vars(args).items(): @@ -48,5 +52,5 @@ def loadcliargs(gui,args): gui.enemizerWindow.enemizerWidgets["enemyhealth"].storageVar.set(args.enemy_health) gui.gameOptionsWindow.gameOptionsWidgets["owpalettes"].storageVar.set(args.ow_palettes) gui.gameOptionsWindow.gameOptionsWidgets["uwpalettes"].storageVar.set(args.uw_palettes) -# if args.sprite is not None: -# gui.gameOptionsWindow.set_sprite(Sprite(args.sprite)) \ No newline at end of file + if args.sprite is not None: + set_sprite(Sprite(args.sprite),spriteObject=gui.gameOptionsWindow.gameOptionsWidgets["sprite"]["spriteObject"],spriteNameVar=gui.gameOptionsWindow.gameOptionsWidgets["sprite"]["spriteNameVar"]) diff --git a/gui/randomize/gameoptions.py b/gui/randomize/gameoptions.py index 2cd1d863..d675ef0a 100644 --- a/gui/randomize/gameoptions.py +++ b/gui/randomize/gameoptions.py @@ -1,5 +1,6 @@ from tkinter import ttk, IntVar, StringVar, Button, Checkbutton, Entry, Frame, Label, OptionMenu, E, W, LEFT, RIGHT -from classes.SpriteSelector import SpriteSelector +from functools import partial +import classes.SpriteSelector as spriteSelector import gui.widgets as widgets def gameoptions_page(parent): @@ -89,23 +90,16 @@ def gameoptions_page(parent): spriteDialogFrame = Frame(leftRomOptionsFrame) baseSpriteLabel = Label(spriteDialogFrame, text='Sprite:') - self.spriteNameVar = StringVar() - sprite = None - def set_sprite(sprite_param): - nonlocal sprite - if sprite_param is None or not sprite_param.valid: - sprite = None - self.spriteNameVar.set('(unchanged)') - else: - sprite = sprite_param - self.spriteNameVar.set(sprite.name) + self.gameOptionsWidgets["sprite"] = {} + self.gameOptionsWidgets["sprite"]["spriteObject"] = None + self.gameOptionsWidgets["sprite"]["spriteNameVar"] = StringVar() - set_sprite(None) - self.spriteNameVar.set('(unchanged)') - spriteEntry = Label(spriteDialogFrame, textvariable=self.spriteNameVar) + set_sprite(None,self.gameOptionsWidgets["sprite"]["spriteObject"],self.gameOptionsWidgets["sprite"]["spriteNameVar"]) + self.gameOptionsWidgets["sprite"]["spriteNameVar"].set('(unchanged)') + spriteEntry = Label(spriteDialogFrame, textvariable=self.gameOptionsWidgets["sprite"]["spriteNameVar"]) def SpriteSelect(): - SpriteSelector(parent, set_sprite) + spriteSelector.SpriteSelector(parent, partial(set_sprite,spriteObject=self.gameOptionsWidgets["sprite"]["spriteObject"],spriteNameVar=self.gameOptionsWidgets["sprite"]["spriteNameVar"])) spriteSelectButton = Button(spriteDialogFrame, text='...', command=SpriteSelect) @@ -169,3 +163,14 @@ def gameoptions_page(parent): self.gameOptionsWidgets[key].pack(anchor=E) return self + +def set_sprite(sprite_param,spriteObject=None,spriteNameVar=None): + print(sprite_param,spriteObject,spriteNameVar) + if sprite_param is None or not sprite_param.valid: + spriteObject = None + if spriteNameVar is not None: + spriteNameVar.set('(unchanged)') + else: + spriteObject = sprite_param + if spriteNameVar is not None: + spriteNameVar.set(spriteObject.name)