-Sprite selection fix

-Scrollbar added
-Experimental checkbox added
-Settings file created
-Random sprite work for settings file
This commit is contained in:
aerinon
2020-02-13 13:53:04 -07:00
parent d037bfc70e
commit 8d97eede65
9 changed files with 270 additions and 199 deletions

View File

@@ -5,32 +5,33 @@ from classes.SpriteSelector import SpriteSelector
import gui.widgets as widgets
import logging
def adjust_page(top,parent,working_dirs):
def adjust_page(top, parent, working_dirs):
# Adjust page
self = ttk.Frame(parent)
# Adjust options
self.adjustWidgets = {}
## Disable BGM
# Disable BGM
key = "nobgm"
self.adjustWidgets[key] = widgets.make_widget(
self,
"checkbox",
self,
"Disable Music & MSU-1",
None
top.gameOptionsWindow.gameOptionsWidgets["nobgm"].storageVar
)
self.adjustWidgets[key].pack(anchor=W)
## L/R Quickswap
# L/R Quickswap
key = "quickswap"
self.adjustWidgets[key] = widgets.make_widget(
self,
"checkbox",
self,
"L/R Quickswapping",
None
top.gameOptionsWindow.gameOptionsWidgets["quickswap"].storageVar
)
self.adjustWidgets[key].pack(anchor=W)
@@ -50,7 +51,7 @@ def adjust_page(top,parent,working_dirs):
"selectbox",
leftAdjustFrame,
"Heart Color",
None,
top.gameOptionsWindow.gameOptionsWidgets["heartcolor"].storageVar,
{"label": {"side": LEFT}, "selectbox": {"side": RIGHT}},
{
"Red": "red",
@@ -69,7 +70,7 @@ def adjust_page(top,parent,working_dirs):
"selectbox",
leftAdjustFrame,
"Heart Beep sound rate",
None,
top.gameOptionsWindow.gameOptionsWidgets["heartbeep"].storageVar,
{"label": {"side": LEFT}, "selectbox": {"side": RIGHT}, "default": "Normal"},
{
"Double": "double",
@@ -85,16 +86,17 @@ def adjust_page(top,parent,working_dirs):
self.spriteNameVar2 = StringVar()
spriteDialogFrame2 = Frame(leftAdjustFrame)
baseSpriteLabel2 = Label(spriteDialogFrame2, text='Sprite:')
self.spriteNameVar2.set('(unchanged)')
spriteEntry2 = Label(spriteDialogFrame2, textvariable=self.spriteNameVar2)
self.sprite = None
def set_sprite(sprite_param):
def set_sprite(sprite_param, random_sprite):
if sprite_param is None or not sprite_param.valid:
sprite = None
self.sprite = None
self.spriteNameVar2.set('(unchanged)')
else:
sprite = sprite_param
self.spriteNameVar2.set(sprite.name)
self.sprite = sprite_param
self.spriteNameVar2.set(self.sprite.name)
top.randomSprite.set(random_sprite)
def SpriteSelectAdjuster():
SpriteSelector(parent, set_sprite, adjuster=True)
@@ -106,14 +108,14 @@ def adjust_page(top,parent,working_dirs):
spriteSelectButton2.pack(side=LEFT)
spriteDialogFrame2.pack(anchor=E)
## Menu Speed
# Menu Speed
key = "menuspeed"
self.adjustWidgets[key] = widgets.make_widget(
self,
"selectbox",
rightAdjustFrame,
"Menu Speed",
None,
top.gameOptionsWindow.gameOptionsWidgets["menuspeed"].storageVar,
{"label": {"side": LEFT}, "selectbox": {"side": RIGHT}, "default": "Normal"},
{
"Instant": "instant",
@@ -126,14 +128,14 @@ def adjust_page(top,parent,working_dirs):
)
self.adjustWidgets[key].pack(anchor=E)
## Overworld Palettes (not Enemizer)
# Overworld Palettes (not Enemizer)
key = "owpalettes"
self.adjustWidgets[key] = widgets.make_widget(
self,
"selectbox",
rightAdjustFrame,
"Overworld Palettes",
None,
top.gameOptionsWindow.gameOptionsWidgets["owpalettes"].storageVar,
{"label": {"side": LEFT}, "selectbox": {"side": RIGHT}},
{
"Default": "default",
@@ -143,14 +145,14 @@ def adjust_page(top,parent,working_dirs):
)
self.adjustWidgets[key].pack(anchor=E)
## Underworld Palettes (not Enemizer)
# Underworld Palettes (not Enemizer)
key = "uwpalettes"
self.adjustWidgets[key] = widgets.make_widget(
self,
"selectbox",
rightAdjustFrame,
"Underworld Palettes",
None,
top.gameOptionsWindow.gameOptionsWidgets["uwpalettes"].storageVar,
{"label": {"side": LEFT}, "selectbox": {"side": RIGHT}},
{
"Default": "default",
@@ -179,16 +181,16 @@ def adjust_page(top,parent,working_dirs):
def adjustRom():
guiargs = Namespace()
guiargs.heartbeep = self.adjustWidgets["heartbeep"].get()
guiargs.heartcolor = self.adjustWidgets["heartcolor"].get()
guiargs.fastmenu = self.adjustWidgets["menuspeed"].get()
guiargs.ow_palettes = self.adjustWidgets["owpalettes"].get()
guiargs.uw_palettes = self.adjustWidgets["uwpalettes"].get()
guiargs.quickswap = bool(self.adjustWidgets["quickswap"].get())
guiargs.disablemusic = bool(self.adjustWidgets["nobgm"].get())
guiargs.heartbeep = self.adjustWidgets["heartbeep"].storageVar.get()
guiargs.heartcolor = self.adjustWidgets["heartcolor"].storageVar.get()
guiargs.fastmenu = self.adjustWidgets["menuspeed"].storageVar.get()
guiargs.ow_palettes = self.adjustWidgets["owpalettes"].storageVar.get()
guiargs.uw_palettes = self.adjustWidgets["uwpalettes"].storageVar.get()
guiargs.quickswap = bool(self.adjustWidgets["quickswap"].storageVar.get())
guiargs.disablemusic = bool(self.adjustWidgets["nobgm"].storageVar.get())
guiargs.rom = self.romVar2.get()
guiargs.baserom = top.generationSetupWindow.romVar.get()
# guiargs.sprite = sprite
guiargs.sprite = self.sprite
try:
adjust(args=guiargs)
except Exception as e:

View File

@@ -8,7 +8,8 @@ from Main import main
from Utils import local_path, output_path, open_file
import gui.widgets as widgets
def bottom_frame(self,parent,args=None):
def bottom_frame(self, parent, args=None):
# Bottom Frame
self = ttk.Frame(parent)
@@ -42,63 +43,7 @@ def bottom_frame(self,parent,args=None):
self.bottomWidgets[key].pack(side=LEFT)
def generateRom():
guiargs = Namespace()
guiargs.multi = int(parent.multiworldWindow.multiworldWidgets["worlds"].storageVar.get())
guiargs.names = parent.multiworldWindow.namesVar.get()
guiargs.seed = int(parent.farBottomFrame.seedVar.get()) if parent.farBottomFrame.seedVar.get() else None
guiargs.count = int(parent.farBottomFrame.bottomWidgets["generationcount"].storageVar.get()) if parent.farBottomFrame.bottomWidgets["generationcount"].storageVar.get() != '1' else None
guiargs.mode = parent.itemWindow.itemWidgets["worldstate"].storageVar.get()
guiargs.logic = parent.itemWindow.itemWidgets["logiclevel"].storageVar.get()
guiargs.goal = parent.itemWindow.itemWidgets["goal"].storageVar.get()
guiargs.crystals_gt = parent.itemWindow.itemWidgets["crystals_gt"].storageVar.get()
guiargs.crystals_ganon = parent.itemWindow.itemWidgets["crystals_ganon"].storageVar.get()
guiargs.swords = parent.itemWindow.itemWidgets["weapons"].storageVar.get()
guiargs.difficulty = parent.itemWindow.itemWidgets["itempool"].storageVar.get()
guiargs.item_functionality = parent.itemWindow.itemWidgets["itemfunction"].storageVar.get()
guiargs.timer = parent.itemWindow.itemWidgets["timer"].storageVar.get()
guiargs.progressive = parent.itemWindow.itemWidgets["progressives"].storageVar.get()
guiargs.accessibility = parent.itemWindow.itemWidgets["accessibility"].storageVar.get()
guiargs.algorithm = parent.itemWindow.itemWidgets["sortingalgo"].storageVar.get()
guiargs.shuffle = parent.entrandoWindow.entrandoWidgets["entranceshuffle"].storageVar.get()
guiargs.door_shuffle = parent.dungeonRandoWindow.dungeonWidgets["dungeondoorshuffle"].storageVar.get()
guiargs.heartbeep = parent.gameOptionsWindow.gameOptionsWidgets["heartbeep"].storageVar.get()
guiargs.heartcolor = parent.gameOptionsWindow.gameOptionsWidgets["heartcolor"].storageVar.get()
guiargs.fastmenu = parent.gameOptionsWindow.gameOptionsWidgets["menuspeed"].storageVar.get()
guiargs.create_spoiler = bool(parent.generationSetupWindow.generationWidgets["spoiler"].storageVar.get())
guiargs.skip_playthrough = not bool(parent.generationSetupWindow.generationWidgets["spoiler"].storageVar.get())
guiargs.suppress_rom = bool(parent.generationSetupWindow.generationWidgets["suppressrom"].storageVar.get())
guiargs.openpyramid = bool(parent.entrandoWindow.entrandoWidgets["openpyramid"].storageVar.get())
guiargs.mapshuffle = bool(parent.dungeonRandoWindow.dungeonWidgets["mapshuffle"].storageVar.get())
guiargs.compassshuffle = bool(parent.dungeonRandoWindow.dungeonWidgets["compassshuffle"].storageVar.get())
guiargs.keyshuffle = bool(parent.dungeonRandoWindow.dungeonWidgets["smallkeyshuffle"].storageVar.get())
guiargs.bigkeyshuffle = bool(parent.dungeonRandoWindow.dungeonWidgets["bigkeyshuffle"].storageVar.get())
guiargs.retro = bool(parent.itemWindow.itemWidgets["retro"].storageVar.get())
guiargs.quickswap = bool(parent.gameOptionsWindow.gameOptionsWidgets["quickswap"].storageVar.get())
guiargs.disablemusic = bool(parent.gameOptionsWindow.gameOptionsWidgets["nobgm"].storageVar.get())
guiargs.ow_palettes = parent.gameOptionsWindow.gameOptionsWidgets["owpalettes"].storageVar.get()
guiargs.uw_palettes = parent.gameOptionsWindow.gameOptionsWidgets["uwpalettes"].storageVar.get()
guiargs.shuffleganon = bool(parent.entrandoWindow.entrandoWidgets["shuffleganon"].storageVar.get())
guiargs.hints = bool(parent.gameOptionsWindow.gameOptionsWidgets["hints"].storageVar.get())
guiargs.enemizercli = parent.enemizerWindow.enemizerCLIpathVar.get()
guiargs.shufflebosses = parent.enemizerWindow.enemizerWidgets["bossshuffle"].storageVar.get()
guiargs.shuffleenemies = parent.enemizerWindow.enemizerWidgets["enemyshuffle"].storageVar.get()
guiargs.enemy_health = parent.enemizerWindow.enemizerWidgets["enemyhealth"].storageVar.get()
guiargs.enemy_damage = parent.enemizerWindow.enemizerWidgets["enemydamage"].storageVar.get()
guiargs.shufflepots = bool(parent.enemizerWindow.enemizerWidgets["potshuffle"].storageVar.get())
guiargs.custom = bool(parent.generationSetupWindow.generationWidgets["usecustompool"].storageVar.get())
guiargs.customitemarray = [int(parent.customContent.customWidgets["bow"].storageVar.get()), int(parent.customContent.customWidgets["silversupgrade"].storageVar.get()), int(parent.customContent.customWidgets["boomerang"].storageVar.get()), int(parent.customContent.customWidgets["redmerang"].storageVar.get()), int(parent.customContent.customWidgets["hookshot"].storageVar.get()), int(parent.customContent.customWidgets["mushroom"].storageVar.get()), int(parent.customContent.customWidgets["powder"].storageVar.get()), int(parent.customContent.customWidgets["firerod"].storageVar.get()),
int(parent.customContent.customWidgets["icerod"].storageVar.get()), int(parent.customContent.customWidgets["bombos"].storageVar.get()), int(parent.customContent.customWidgets["ether"].storageVar.get()), int(parent.customContent.customWidgets["quake"].storageVar.get()), int(parent.customContent.customWidgets["lamp"].storageVar.get()), int(parent.customContent.customWidgets["hammer"].storageVar.get()), int(parent.customContent.customWidgets["shovel"].storageVar.get()), int(parent.customContent.customWidgets["flute"].storageVar.get()), int(parent.customContent.customWidgets["bugnet"].storageVar.get()),
int(parent.customContent.customWidgets["book"].storageVar.get()), int(parent.customContent.customWidgets["bottle"].storageVar.get()), int(parent.customContent.customWidgets["somaria"].storageVar.get()), int(parent.customContent.customWidgets["byrna"].storageVar.get()), int(parent.customContent.customWidgets["cape"].storageVar.get()), int(parent.customContent.customWidgets["mirror"].storageVar.get()), int(parent.customContent.customWidgets["boots"].storageVar.get()), int(parent.customContent.customWidgets["powerglove"].storageVar.get()), int(parent.customContent.customWidgets["titansmitt"].storageVar.get()),
int(parent.customContent.customWidgets["progressiveglove"].storageVar.get()), int(parent.customContent.customWidgets["flippers"].storageVar.get()), int(parent.customContent.customWidgets["pearl"].storageVar.get()), int(parent.customContent.customWidgets["heartpiece"].storageVar.get()), int(parent.customContent.customWidgets["heartcontainer"].storageVar.get()), int(parent.customContent.customWidgets["sancheart"].storageVar.get()), int(parent.customContent.customWidgets["sword1"].storageVar.get()), int(parent.customContent.customWidgets["sword2"].storageVar.get()),
int(parent.customContent.customWidgets["sword3"].storageVar.get()), int(parent.customContent.customWidgets["sword4"].storageVar.get()), int(parent.customContent.customWidgets["progressivesword"].storageVar.get()), int(parent.customContent.customWidgets["shield1"].storageVar.get()), int(parent.customContent.customWidgets["shield2"].storageVar.get()), int(parent.customContent.customWidgets["shield3"].storageVar.get()), int(parent.customContent.customWidgets["progressiveshield"].storageVar.get()), int(parent.customContent.customWidgets["mail2"].storageVar.get()),
int(parent.customContent.customWidgets["mail3"].storageVar.get()), int(parent.customContent.customWidgets["progressivemail"].storageVar.get()), int(parent.customContent.customWidgets["halfmagic"].storageVar.get()), int(parent.customContent.customWidgets["quartermagic"].storageVar.get()), int(parent.customContent.customWidgets["bombsplus5"].storageVar.get()), int(parent.customContent.customWidgets["bombsplus10"].storageVar.get()), int(parent.customContent.customWidgets["arrowsplus5"].storageVar.get()), int(parent.customContent.customWidgets["arrowsplus10"].storageVar.get()),
int(parent.customContent.customWidgets["arrow1"].storageVar.get()), int(parent.customContent.customWidgets["arrow10"].storageVar.get()), int(parent.customContent.customWidgets["bomb1"].storageVar.get()), int(parent.customContent.customWidgets["bomb3"].storageVar.get()), int(parent.customContent.customWidgets["rupee1"].storageVar.get()), int(parent.customContent.customWidgets["rupee5"].storageVar.get()), int(parent.customContent.customWidgets["rupee20"].storageVar.get()), int(parent.customContent.customWidgets["rupee50"].storageVar.get()), int(parent.customContent.customWidgets["rupee100"].storageVar.get()),
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.gameOptionsWidgets["sprite"]["spriteObject"]
guiargs.outputpath = args.outputpath if args else None
guiargs = create_guiargs(parent)
# get default values for missing parameters
for k,v in vars(parse_arguments(['--multi', str(guiargs.multi)])).items():
if k not in vars(guiargs):
@@ -139,3 +84,66 @@ def bottom_frame(self,parent,args=None):
openReadmeButton.pack()
return self
def create_guiargs(parent):
guiargs = Namespace()
guiargs.multi = int(parent.multiworldWindow.multiworldWidgets["worlds"].storageVar.get())
guiargs.names = parent.multiworldWindow.namesVar.get()
guiargs.seed = int(parent.farBottomFrame.seedVar.get()) if parent.farBottomFrame.seedVar.get() else None
guiargs.count = int(parent.farBottomFrame.bottomWidgets["generationcount"].storageVar.get()) if parent.farBottomFrame.bottomWidgets["generationcount"].storageVar.get() != '1' else None
guiargs.mode = parent.itemWindow.itemWidgets["worldstate"].storageVar.get()
guiargs.logic = parent.itemWindow.itemWidgets["logiclevel"].storageVar.get()
guiargs.goal = parent.itemWindow.itemWidgets["goal"].storageVar.get()
guiargs.crystals_gt = parent.itemWindow.itemWidgets["crystals_gt"].storageVar.get()
guiargs.crystals_ganon = parent.itemWindow.itemWidgets["crystals_ganon"].storageVar.get()
guiargs.swords = parent.itemWindow.itemWidgets["weapons"].storageVar.get()
guiargs.difficulty = parent.itemWindow.itemWidgets["itempool"].storageVar.get()
guiargs.item_functionality = parent.itemWindow.itemWidgets["itemfunction"].storageVar.get()
guiargs.timer = parent.itemWindow.itemWidgets["timer"].storageVar.get()
guiargs.progressive = parent.itemWindow.itemWidgets["progressives"].storageVar.get()
guiargs.accessibility = parent.itemWindow.itemWidgets["accessibility"].storageVar.get()
guiargs.algorithm = parent.itemWindow.itemWidgets["sortingalgo"].storageVar.get()
guiargs.shuffle = parent.entrandoWindow.entrandoWidgets["entranceshuffle"].storageVar.get()
guiargs.door_shuffle = parent.dungeonRandoWindow.dungeonWidgets["dungeondoorshuffle"].storageVar.get()
guiargs.experimental = parent.dungeonRandoWindow.dungeonWidgets["experimental"].storageVar.get()
guiargs.heartbeep = parent.gameOptionsWindow.gameOptionsWidgets["heartbeep"].storageVar.get()
guiargs.heartcolor = parent.gameOptionsWindow.gameOptionsWidgets["heartcolor"].storageVar.get()
guiargs.fastmenu = parent.gameOptionsWindow.gameOptionsWidgets["menuspeed"].storageVar.get()
guiargs.create_spoiler = bool(parent.generationSetupWindow.generationWidgets["spoiler"].storageVar.get())
guiargs.skip_playthrough = not bool(parent.generationSetupWindow.generationWidgets["spoiler"].storageVar.get())
guiargs.suppress_rom = bool(parent.generationSetupWindow.generationWidgets["suppressrom"].storageVar.get())
guiargs.openpyramid = bool(parent.entrandoWindow.entrandoWidgets["openpyramid"].storageVar.get())
guiargs.mapshuffle = bool(parent.dungeonRandoWindow.dungeonWidgets["mapshuffle"].storageVar.get())
guiargs.compassshuffle = bool(parent.dungeonRandoWindow.dungeonWidgets["compassshuffle"].storageVar.get())
guiargs.keyshuffle = bool(parent.dungeonRandoWindow.dungeonWidgets["smallkeyshuffle"].storageVar.get())
guiargs.bigkeyshuffle = bool(parent.dungeonRandoWindow.dungeonWidgets["bigkeyshuffle"].storageVar.get())
guiargs.retro = bool(parent.itemWindow.itemWidgets["retro"].storageVar.get())
guiargs.quickswap = bool(parent.gameOptionsWindow.gameOptionsWidgets["quickswap"].storageVar.get())
guiargs.disablemusic = bool(parent.gameOptionsWindow.gameOptionsWidgets["nobgm"].storageVar.get())
guiargs.ow_palettes = parent.gameOptionsWindow.gameOptionsWidgets["owpalettes"].storageVar.get()
guiargs.uw_palettes = parent.gameOptionsWindow.gameOptionsWidgets["uwpalettes"].storageVar.get()
guiargs.shuffleganon = bool(parent.entrandoWindow.entrandoWidgets["shuffleganon"].storageVar.get())
guiargs.hints = bool(parent.gameOptionsWindow.gameOptionsWidgets["hints"].storageVar.get())
guiargs.enemizercli = parent.enemizerWindow.enemizerCLIpathVar.get()
guiargs.shufflebosses = parent.enemizerWindow.enemizerWidgets["bossshuffle"].storageVar.get()
guiargs.shuffleenemies = parent.enemizerWindow.enemizerWidgets["enemyshuffle"].storageVar.get()
guiargs.enemy_health = parent.enemizerWindow.enemizerWidgets["enemyhealth"].storageVar.get()
guiargs.enemy_damage = parent.enemizerWindow.enemizerWidgets["enemydamage"].storageVar.get()
guiargs.shufflepots = bool(parent.enemizerWindow.enemizerWidgets["potshuffle"].storageVar.get())
guiargs.custom = bool(parent.generationSetupWindow.generationWidgets["usecustompool"].storageVar.get())
guiargs.customitemarray = [int(parent.customContent.customWidgets["bow"].storageVar.get()), int(parent.customContent.customWidgets["silversupgrade"].storageVar.get()), int(parent.customContent.customWidgets["boomerang"].storageVar.get()), int(parent.customContent.customWidgets["redmerang"].storageVar.get()), int(parent.customContent.customWidgets["hookshot"].storageVar.get()), int(parent.customContent.customWidgets["mushroom"].storageVar.get()), int(parent.customContent.customWidgets["powder"].storageVar.get()), int(parent.customContent.customWidgets["firerod"].storageVar.get()),
int(parent.customContent.customWidgets["icerod"].storageVar.get()), int(parent.customContent.customWidgets["bombos"].storageVar.get()), int(parent.customContent.customWidgets["ether"].storageVar.get()), int(parent.customContent.customWidgets["quake"].storageVar.get()), int(parent.customContent.customWidgets["lamp"].storageVar.get()), int(parent.customContent.customWidgets["hammer"].storageVar.get()), int(parent.customContent.customWidgets["shovel"].storageVar.get()), int(parent.customContent.customWidgets["flute"].storageVar.get()), int(parent.customContent.customWidgets["bugnet"].storageVar.get()),
int(parent.customContent.customWidgets["book"].storageVar.get()), int(parent.customContent.customWidgets["bottle"].storageVar.get()), int(parent.customContent.customWidgets["somaria"].storageVar.get()), int(parent.customContent.customWidgets["byrna"].storageVar.get()), int(parent.customContent.customWidgets["cape"].storageVar.get()), int(parent.customContent.customWidgets["mirror"].storageVar.get()), int(parent.customContent.customWidgets["boots"].storageVar.get()), int(parent.customContent.customWidgets["powerglove"].storageVar.get()), int(parent.customContent.customWidgets["titansmitt"].storageVar.get()),
int(parent.customContent.customWidgets["progressiveglove"].storageVar.get()), int(parent.customContent.customWidgets["flippers"].storageVar.get()), int(parent.customContent.customWidgets["pearl"].storageVar.get()), int(parent.customContent.customWidgets["heartpiece"].storageVar.get()), int(parent.customContent.customWidgets["heartcontainer"].storageVar.get()), int(parent.customContent.customWidgets["sancheart"].storageVar.get()), int(parent.customContent.customWidgets["sword1"].storageVar.get()), int(parent.customContent.customWidgets["sword2"].storageVar.get()),
int(parent.customContent.customWidgets["sword3"].storageVar.get()), int(parent.customContent.customWidgets["sword4"].storageVar.get()), int(parent.customContent.customWidgets["progressivesword"].storageVar.get()), int(parent.customContent.customWidgets["shield1"].storageVar.get()), int(parent.customContent.customWidgets["shield2"].storageVar.get()), int(parent.customContent.customWidgets["shield3"].storageVar.get()), int(parent.customContent.customWidgets["progressiveshield"].storageVar.get()), int(parent.customContent.customWidgets["mail2"].storageVar.get()),
int(parent.customContent.customWidgets["mail3"].storageVar.get()), int(parent.customContent.customWidgets["progressivemail"].storageVar.get()), int(parent.customContent.customWidgets["halfmagic"].storageVar.get()), int(parent.customContent.customWidgets["quartermagic"].storageVar.get()), int(parent.customContent.customWidgets["bombsplus5"].storageVar.get()), int(parent.customContent.customWidgets["bombsplus10"].storageVar.get()), int(parent.customContent.customWidgets["arrowsplus5"].storageVar.get()), int(parent.customContent.customWidgets["arrowsplus10"].storageVar.get()),
int(parent.customContent.customWidgets["arrow1"].storageVar.get()), int(parent.customContent.customWidgets["arrow10"].storageVar.get()), int(parent.customContent.customWidgets["bomb1"].storageVar.get()), int(parent.customContent.customWidgets["bomb3"].storageVar.get()), int(parent.customContent.customWidgets["rupee1"].storageVar.get()), int(parent.customContent.customWidgets["rupee5"].storageVar.get()), int(parent.customContent.customWidgets["rupee20"].storageVar.get()), int(parent.customContent.customWidgets["rupee50"].storageVar.get()), int(parent.customContent.customWidgets["rupee100"].storageVar.get()),
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.gameOptionsWidgets["sprite"]["spriteObject"]
guiargs.randomSprite = parent.randomSprite.get()
guiargs.outputpath = parent.outputPath.get()
return guiargs

View File

@@ -2,55 +2,82 @@ 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():
if type(v) is dict:
setattr(args, k, v[1]) # only get values for player 1 for now
# load values from commandline args
gui.generationSetupWindow.generationWidgets["spoiler"].storageVar.set(int(args.create_spoiler))
gui.generationSetupWindow.generationWidgets["suppressrom"].storageVar.set(int(args.suppress_rom))
gui.dungeonRandoWindow.dungeonWidgets["mapshuffle"].storageVar.set(args.mapshuffle)
gui.dungeonRandoWindow.dungeonWidgets["compassshuffle"].storageVar.set(args.compassshuffle)
gui.dungeonRandoWindow.dungeonWidgets["smallkeyshuffle"].storageVar.set(args.keyshuffle)
gui.dungeonRandoWindow.dungeonWidgets["bigkeyshuffle"].storageVar.set(args.bigkeyshuffle)
gui.itemWindow.itemWidgets["retro"].storageVar.set(args.retro)
gui.entrandoWindow.entrandoWidgets["openpyramid"].storageVar.set(args.openpyramid)
gui.gameOptionsWindow.gameOptionsWidgets["quickswap"].storageVar.set(int(args.quickswap))
gui.gameOptionsWindow.gameOptionsWidgets["nobgm"].storageVar.set(int(args.disablemusic))
if args.multi:
gui.multiworldWindow.multiworldWidgets["worlds"].storageVar.set(str(args.multi))
if args.count:
gui.farBottomFrame.bottomWidgets["generationcount"].storageVar.set(str(args.count))
if args.seed:
gui.farBottomFrame.seedVar.set(str(args.seed))
gui.itemWindow.itemWidgets["worldstate"].storageVar.set(args.mode)
gui.itemWindow.itemWidgets["weapons"].storageVar.set(args.swords)
gui.itemWindow.itemWidgets["itempool"].storageVar.set(args.difficulty)
gui.itemWindow.itemWidgets["itemfunction"].storageVar.set(args.item_functionality)
gui.itemWindow.itemWidgets["timer"].storageVar.set(args.timer)
gui.itemWindow.itemWidgets["progressives"].storageVar.set(args.progressive)
gui.itemWindow.itemWidgets["accessibility"].storageVar.set(args.accessibility)
gui.itemWindow.itemWidgets["goal"].storageVar.set(args.goal)
gui.itemWindow.itemWidgets["crystals_gt"].storageVar.set(args.crystals_gt)
gui.itemWindow.itemWidgets["crystals_ganon"].storageVar.set(args.crystals_ganon)
gui.itemWindow.itemWidgets["sortingalgo"].storageVar.set(args.algorithm)
gui.entrandoWindow.entrandoWidgets["entranceshuffle"].storageVar.set(args.shuffle)
gui.dungeonRandoWindow.dungeonWidgets["dungeondoorshuffle"].storageVar.set(args.door_shuffle)
gui.gameOptionsWindow.gameOptionsWidgets["heartcolor"].storageVar.set(args.heartcolor)
gui.gameOptionsWindow.gameOptionsWidgets["heartbeep"].storageVar.set(args.heartbeep)
gui.gameOptionsWindow.gameOptionsWidgets["menuspeed"].storageVar.set(args.fastmenu)
gui.itemWindow.itemWidgets["logiclevel"].storageVar.set(args.logic)
gui.generationSetupWindow.romVar.set(args.rom)
gui.entrandoWindow.entrandoWidgets["shuffleganon"].storageVar.set(args.shuffleganon)
gui.gameOptionsWindow.gameOptionsWidgets["hints"].storageVar.set(args.hints)
gui.enemizerWindow.enemizerCLIpathVar.set(args.enemizercli)
gui.enemizerWindow.enemizerWidgets["potshuffle"].storageVar.set(args.shufflepots)
gui.enemizerWindow.enemizerWidgets["enemyshuffle"].storageVar.set(args.shuffleenemies)
gui.enemizerWindow.enemizerWidgets["bossshuffle"].storageVar.set(args.shufflebosses)
gui.enemizerWindow.enemizerWidgets["enemydamage"].storageVar.set(args.enemy_damage)
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:
set_sprite(Sprite(args.sprite),spriteObject=gui.gameOptionsWindow.gameOptionsWidgets["sprite"]["spriteObject"],spriteNameVar=gui.gameOptionsWindow.gameOptionsWidgets["sprite"]["spriteNameVar"])
def loadcliargs(gui, args):
if args is not None:
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
# load values from commandline args
gui.generationSetupWindow.generationWidgets["spoiler"].storageVar.set(int(args.create_spoiler))
gui.generationSetupWindow.generationWidgets["suppressrom"].storageVar.set(int(args.suppress_rom))
gui.dungeonRandoWindow.dungeonWidgets["mapshuffle"].storageVar.set(args.mapshuffle)
gui.dungeonRandoWindow.dungeonWidgets["compassshuffle"].storageVar.set(args.compassshuffle)
gui.dungeonRandoWindow.dungeonWidgets["smallkeyshuffle"].storageVar.set(args.keyshuffle)
gui.dungeonRandoWindow.dungeonWidgets["bigkeyshuffle"].storageVar.set(args.bigkeyshuffle)
gui.itemWindow.itemWidgets["retro"].storageVar.set(args.retro)
gui.entrandoWindow.entrandoWidgets["openpyramid"].storageVar.set(args.openpyramid)
gui.gameOptionsWindow.gameOptionsWidgets["quickswap"].storageVar.set(int(args.quickswap))
gui.gameOptionsWindow.gameOptionsWidgets["nobgm"].storageVar.set(int(args.disablemusic))
if args.multi:
gui.multiworldWindow.multiworldWidgets["worlds"].storageVar.set(str(args.multi))
if args.count:
gui.farBottomFrame.bottomWidgets["generationcount"].storageVar.set(str(args.count))
if args.seed:
gui.farBottomFrame.seedVar.set(str(args.seed))
gui.itemWindow.itemWidgets["worldstate"].storageVar.set(args.mode)
gui.itemWindow.itemWidgets["weapons"].storageVar.set(args.swords)
gui.itemWindow.itemWidgets["itempool"].storageVar.set(args.difficulty)
gui.itemWindow.itemWidgets["itemfunction"].storageVar.set(args.item_functionality)
gui.itemWindow.itemWidgets["timer"].storageVar.set(args.timer)
gui.itemWindow.itemWidgets["progressives"].storageVar.set(args.progressive)
gui.itemWindow.itemWidgets["accessibility"].storageVar.set(args.accessibility)
gui.itemWindow.itemWidgets["goal"].storageVar.set(args.goal)
gui.itemWindow.itemWidgets["crystals_gt"].storageVar.set(args.crystals_gt)
gui.itemWindow.itemWidgets["crystals_ganon"].storageVar.set(args.crystals_ganon)
gui.itemWindow.itemWidgets["sortingalgo"].storageVar.set(args.algorithm)
gui.entrandoWindow.entrandoWidgets["entranceshuffle"].storageVar.set(args.shuffle)
gui.dungeonRandoWindow.dungeonWidgets["dungeondoorshuffle"].storageVar.set(args.door_shuffle)
gui.dungeonRandoWindow.dungeonWidgets["experimental"].storageVar.set(args.experimental)
gui.gameOptionsWindow.gameOptionsWidgets["heartcolor"].storageVar.set(args.heartcolor)
gui.gameOptionsWindow.gameOptionsWidgets["heartbeep"].storageVar.set(args.heartbeep)
gui.gameOptionsWindow.gameOptionsWidgets["menuspeed"].storageVar.set(args.fastmenu)
gui.itemWindow.itemWidgets["logiclevel"].storageVar.set(args.logic)
gui.generationSetupWindow.romVar.set(args.rom)
gui.entrandoWindow.entrandoWidgets["shuffleganon"].storageVar.set(args.shuffleganon)
gui.gameOptionsWindow.gameOptionsWidgets["hints"].storageVar.set(args.hints)
gui.enemizerWindow.enemizerCLIpathVar.set(args.enemizercli)
gui.enemizerWindow.enemizerWidgets["potshuffle"].storageVar.set(args.shufflepots)
gui.enemizerWindow.enemizerWidgets["enemyshuffle"].storageVar.set(args.shuffleenemies)
gui.enemizerWindow.enemizerWidgets["bossshuffle"].storageVar.set(args.shufflebosses)
gui.enemizerWindow.enemizerWidgets["enemydamage"].storageVar.set(args.enemy_damage)
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)
gui.outputPath.set(args.outputpath)
def sprite_setter(spriteObject):
gui.gameOptionsWindow.gameOptionsWidgets["sprite"]["spriteObject"] = spriteObject
if args.sprite is not None:
sprite_obj = args.sprite if isinstance(args.sprite, Sprite) else Sprite(args.sprite)
r_sprite_flag = args.randomSprite if hasattr(args, 'randomSprite') else False
set_sprite(sprite_obj, r_sprite_flag, spriteSetter=sprite_setter,
spriteNameVar=gui.gameOptionsWindow.gameOptionsWidgets["sprite"]["spriteNameVar"],
randomSpriteVar=gui.randomSprite)
gui.adjustContent.adjustWidgets["nobgm"].storageVar.set(int(args.disablemusic))
gui.adjustContent.adjustWidgets['quickswap'].storageVar.set(args.quickswap)
gui.adjustContent.adjustWidgets["heartcolor"].storageVar.set(args.heartcolor)
gui.adjustContent.adjustWidgets["heartbeep"].storageVar.set(args.heartbeep)
gui.adjustContent.adjustWidgets["menuspeed"].storageVar.set(args.fastmenu)
gui.adjustContent.adjustWidgets["owpalettes"].storageVar.set(args.ow_palettes)
gui.adjustContent.adjustWidgets["uwpalettes"].storageVar.set(args.uw_palettes)
def sprite_setter_adj(spriteObject):
gui.adjustContent.sprite = spriteObject
if args.sprite is not None:
sprite_obj = args.sprite if isinstance(args.sprite, Sprite) else Sprite(args.sprite)
r_sprite_flag = args.randomSprite if hasattr(args, 'randomSprite') else False
set_sprite(sprite_obj, r_sprite_flag, spriteSetter=sprite_setter_adj,
spriteNameVar=gui.adjustContent.spriteNameVar2,
randomSpriteVar=gui.randomSprite)

View File

@@ -75,4 +75,15 @@ def dungeon_page(parent):
)
self.dungeonWidgets[key].pack(anchor=W)
# Experimental features
key = "experimental"
self.dungeonWidgets[key] = widgets.make_widget(
self,
"checkbox",
self,
"Enable Experimental Features",
None
)
self.dungeonWidgets[key].pack(anchor=W)
return self

View File

@@ -26,7 +26,7 @@ def entrando_page(parent):
"checkbox",
self,
"Include Ganon's Tower and Pyramid Hole in shuffle pool",
{"default": 1}
None
)
self.entrandoWidgets[key].pack(anchor=W)

View File

@@ -3,7 +3,8 @@ from functools import partial
import classes.SpriteSelector as spriteSelector
import gui.widgets as widgets
def gameoptions_page(parent):
def gameoptions_page(top, parent):
# Game Options
self = ttk.Frame(parent)
@@ -94,14 +95,18 @@ def gameoptions_page(parent):
self.gameOptionsWidgets["sprite"]["spriteObject"] = None
self.gameOptionsWidgets["sprite"]["spriteNameVar"] = StringVar()
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.SpriteSelector(parent, partial(set_sprite,spriteObject=self.gameOptionsWidgets["sprite"]["spriteObject"],spriteNameVar=self.gameOptionsWidgets["sprite"]["spriteNameVar"]))
def sprite_setter(spriteObject):
self.gameOptionsWidgets["sprite"]["spriteObject"] = spriteObject
spriteSelectButton = Button(spriteDialogFrame, text='...', command=SpriteSelect)
def sprite_select():
spriteSelector.SpriteSelector(parent, partial(set_sprite, spriteSetter=sprite_setter,
spriteNameVar=self.gameOptionsWidgets["sprite"]["spriteNameVar"],
randomSpriteVar=top.randomSprite))
spriteSelectButton = Button(spriteDialogFrame, text='...', command=sprite_select)
baseSpriteLabel.pack(side=LEFT)
spriteEntry.pack(side=LEFT)
@@ -164,12 +169,18 @@ def gameoptions_page(parent):
return self
def set_sprite(sprite_param,spriteObject=None,spriteNameVar=None):
def set_sprite(sprite_param, random_sprite, spriteSetter=None, spriteNameVar=None, randomSpriteVar=None):
if sprite_param is None or not sprite_param.valid:
spriteObject = None
if spriteSetter:
spriteSetter(None)
if spriteNameVar is not None:
spriteNameVar.set('(unchanged)')
else:
spriteObject = sprite_param
if spriteSetter:
spriteSetter(sprite_param)
if spriteNameVar is not None:
spriteNameVar.set(spriteObject.name)
spriteNameVar.set(sprite_param.name)
if randomSpriteVar:
randomSpriteVar.set(random_sprite)

View File

@@ -69,9 +69,10 @@ def make_textbox(self, parent, label, storageVar, packAttrs):
self.textbox.pack(packAttrs["textbox"])
return self
def make_widget(self, type, parent, label, storageVar=None, packAttrs=dict(), options=None):
widget = None
thisStorageVar = None
thisStorageVar = storageVar
if isinstance(storageVar,str):
if storageVar == "int" or storageVar == "integer":
thisStorageVar = IntVar()