diff --git a/gui/bottom.py b/gui/bottom.py index 87dc6ead..cc426d16 100644 --- a/gui/bottom.py +++ b/gui/bottom.py @@ -49,7 +49,7 @@ def bottom_frame(self,parent,args=None): 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.doorShuffleVar.get() + guiargs.door_shuffle = parent.dungeonRandoWindow.dungeonWidgets["dungeondoorshuffle"].storageVar.get() guiargs.heartbeep = parent.gameOptionsWindow.heartbeepVar.get() guiargs.heartcolor = parent.gameOptionsWindow.heartcolorVar.get() guiargs.fastmenu = parent.gameOptionsWindow.fastMenuVar.get() @@ -57,10 +57,10 @@ def bottom_frame(self,parent,args=None): guiargs.skip_playthrough = not bool(parent.generationSetupWindow.createSpoilerVar.get()) guiargs.suppress_rom = bool(parent.generationSetupWindow.suppressRomVar.get()) guiargs.openpyramid = bool(parent.entrandoWindow.entrandoWidgets["openpyramid"].storageVar.get()) - guiargs.mapshuffle = bool(parent.dungeonRandoWindow.mapshuffleVar.get()) - guiargs.compassshuffle = bool(parent.dungeonRandoWindow.compassshuffleVar.get()) - guiargs.keyshuffle = bool(parent.dungeonRandoWindow.keyshuffleVar.get()) - guiargs.bigkeyshuffle = bool(parent.dungeonRandoWindow.bigkeyshuffleVar.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.quickSwapVar.get()) guiargs.disablemusic = bool(parent.gameOptionsWindow.disableMusicVar.get()) diff --git a/gui/loadcliargs.py b/gui/loadcliargs.py index a8c4b42b..4a5afa7a 100644 --- a/gui/loadcliargs.py +++ b/gui/loadcliargs.py @@ -6,10 +6,10 @@ def loadcliargs(gui,args): # load values from commandline args gui.generationSetupWindow.createSpoilerVar.set(int(args.create_spoiler)) gui.generationSetupWindow.suppressRomVar.set(int(args.suppress_rom)) - gui.dungeonRandoWindow.mapshuffleVar.set(args.mapshuffle) - gui.dungeonRandoWindow.compassshuffleVar.set(args.compassshuffle) - gui.dungeonRandoWindow.keyshuffleVar.set(args.keyshuffle) - gui.dungeonRandoWindow.bigkeyshuffleVar.set(args.bigkeyshuffle) + 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.quickSwapVar.set(int(args.quickswap)) @@ -32,7 +32,7 @@ def loadcliargs(gui,args): 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.doorShuffleVar.set(args.door_shuffle) + gui.dungeonRandoWindow.dungeonWidgets["dungeondoorshuffle"].storageVar.set(args.door_shuffle) gui.gameOptionsWindow.heartcolorVar.set(args.heartcolor) gui.gameOptionsWindow.heartbeepVar.set(args.heartbeep) gui.gameOptionsWindow.fastMenuVar.set(args.fastmenu) diff --git a/gui/randomize/dungeon.py b/gui/randomize/dungeon.py index c0fabfb7..b036389f 100644 --- a/gui/randomize/dungeon.py +++ b/gui/randomize/dungeon.py @@ -1,38 +1,79 @@ from tkinter import ttk, IntVar, StringVar, Checkbutton, Frame, Label, OptionMenu, E, W, LEFT, RIGHT +import gui.widgets as widgets def dungeon_page(parent): + # Dungeon Shuffle self = ttk.Frame(parent) # Dungeon Shuffle options + self.dungeonWidgets = {} + ## Dungeon Item Shuffle mcsbshuffleFrame = Frame(self) mcsbshuffleFrame.pack(anchor=W) - mcsbLabel = Label(mcsbshuffleFrame, text="Shuffle: ") - mcsbLabel.grid(row=0, column=0) + mscbLabel = Label(mcsbshuffleFrame, text="Shuffle: ") + mscbLabel.pack(side=LEFT) + ## Map Shuffle - self.mapshuffleVar = IntVar() - mapshuffleCheckbutton = Checkbutton(mcsbshuffleFrame, text="Maps", variable=self.mapshuffleVar) - mapshuffleCheckbutton.grid(row=0, column=1) + key = "mapshuffle" + self.dungeonWidgets[key] = widgets.make_widget( + self, + "checkbox", + mcsbshuffleFrame, + "Maps", + None + ) + self.dungeonWidgets[key].pack(side=LEFT) + ## Compass Shuffle - self.compassshuffleVar = IntVar() - compassshuffleCheckbutton = Checkbutton(mcsbshuffleFrame, text="Compasses", variable=self.compassshuffleVar) - compassshuffleCheckbutton.grid(row=0, column=2) + key = "compassshuffle" + self.dungeonWidgets[key] = widgets.make_widget( + self, + "checkbox", + mcsbshuffleFrame, + "Compasses", + None + ) + self.dungeonWidgets[key].pack(side=LEFT) + ## Small Key Shuffle - self.keyshuffleVar = IntVar() - keyshuffleCheckbutton = Checkbutton(mcsbshuffleFrame, text="Keys", variable=self.keyshuffleVar) - keyshuffleCheckbutton.grid(row=0, column=3) + key = "smallkeyshuffle" + self.dungeonWidgets[key] = widgets.make_widget( + self, + "checkbox", + mcsbshuffleFrame, + "Small Keys", + None + ) + self.dungeonWidgets[key].pack(side=LEFT) + ## Big Key Shuffle - self.bigkeyshuffleVar = IntVar() - bigkeyshuffleCheckbutton = Checkbutton(mcsbshuffleFrame, text="BigKeys", variable=self.bigkeyshuffleVar) - bigkeyshuffleCheckbutton.grid(row=0, column=4) + key = "bigkeyshuffle" + self.dungeonWidgets[key] = widgets.make_widget( + self, + "checkbox", + mcsbshuffleFrame, + "Big Keys", + None + ) + self.dungeonWidgets[key].pack(side=LEFT) + ## Dungeon Door Shuffle - doorShuffleFrame = Frame(self) - self.doorShuffleVar = StringVar() - self.doorShuffleVar.set('basic') - doorShuffleOptionMenu = OptionMenu(doorShuffleFrame, self.doorShuffleVar, 'vanilla', 'basic', 'crossed', 'experimental') - doorShuffleOptionMenu.pack(side=RIGHT) - doorShuffleLabel = Label(doorShuffleFrame, text='Door shuffle algorithm') - doorShuffleLabel.pack(side=LEFT) - doorShuffleFrame.pack(anchor=W) + key = "dungeondoorshuffle" + self.dungeonWidgets[key] = widgets.make_widget( + self, + "selectbox", + self, + "Dungeon Door Shuffle", + None, + {"label": {"side": LEFT}, "selectbox": {"side": RIGHT}, "default": "Basic"}, + { + "Vanilla": "vanilla", + "Basic": "basic", + "Crossed": "crossed", + "Experimental": "experimental" + } + ) + self.dungeonWidgets[key].pack(anchor=W) return self