Sprite Selection still not quite working

Closer, no compile errors, doesn't actually perform injection
This commit is contained in:
Mike A. Trethewey
2020-02-12 04:18:16 -08:00
parent 6dd67c0e0b
commit 7189d6a5ed
3 changed files with 27 additions and 18 deletions

View File

@@ -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():

View File

@@ -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))
if args.sprite is not None:
set_sprite(Sprite(args.sprite),spriteObject=gui.gameOptionsWindow.gameOptionsWidgets["sprite"]["spriteObject"],spriteNameVar=gui.gameOptionsWindow.gameOptionsWidgets["sprite"]["spriteNameVar"])

View File

@@ -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)