Fix precedence of vars
This commit is contained in:
9
Gui.py
9
Gui.py
@@ -9,7 +9,7 @@ from CLI import get_settings
|
||||
from DungeonRandomizer import parse_arguments
|
||||
from gui.adjust.overview import adjust_page
|
||||
from gui.custom.overview import custom_page
|
||||
from gui.loadcliargs import loadcliargs
|
||||
from gui.loadcliargs import loadcliargs, loadadjustargs
|
||||
from gui.randomize.item import item_page
|
||||
from gui.randomize.entrando import entrando_page
|
||||
from gui.randomize.enemizer import enemizer_page
|
||||
@@ -29,6 +29,8 @@ def guiMain(args=None):
|
||||
settings_path = os.path.join(user_resources_path)
|
||||
if not os.path.exists(settings_path):
|
||||
os.makedirs(settings_path)
|
||||
for widget in self.pages["adjust"].content.widgets:
|
||||
args["adjust." + widget] = self.pages["adjust"].content.widgets[widget].storageVar.get()
|
||||
with open(os.path.join(settings_path, "settings.json"), "w+") as f:
|
||||
f.write(json.dumps(args, indent=2))
|
||||
os.chmod(os.path.join(settings_path, "settings.json"),0o755)
|
||||
@@ -141,8 +143,11 @@ def guiMain(args=None):
|
||||
return False
|
||||
vcmd=(self.pages["custom"].content.register(validation), '%P')
|
||||
|
||||
# load adjust settings into options
|
||||
loadadjustargs(self, self.settings)
|
||||
|
||||
# load args from CLI into options
|
||||
loadcliargs(self, args)
|
||||
loadcliargs(self, args, self.settings)
|
||||
|
||||
mainWindow.mainloop()
|
||||
|
||||
|
||||
@@ -180,14 +180,19 @@ def adjust_page(top, parent, settings):
|
||||
adjustRomFrame.pack(fill=X, expand=True)
|
||||
|
||||
def adjustRom():
|
||||
options = {
|
||||
"heartbeep": "heartbeep",
|
||||
"heartcolor": "heartcolor",
|
||||
"menuspeed": "fastmenu",
|
||||
"owpalettes": "ow_palettes",
|
||||
"uwpalettes": "uw_palettes",
|
||||
"quickswap": "quickswap",
|
||||
"nobgm": "disablemusic"
|
||||
}
|
||||
guiargs = Namespace()
|
||||
guiargs.heartbeep = self.widgets["heartbeep"].storageVar.get()
|
||||
guiargs.heartcolor = self.widgets["heartcolor"].storageVar.get()
|
||||
guiargs.fastmenu = self.widgets["menuspeed"].storageVar.get()
|
||||
guiargs.ow_palettes = self.widgets["owpalettes"].storageVar.get()
|
||||
guiargs.uw_palettes = self.widgets["uwpalettes"].storageVar.get()
|
||||
guiargs.quickswap = bool(self.widgets["quickswap"].storageVar.get())
|
||||
guiargs.disablemusic = bool(self.widgets["nobgm"].storageVar.get())
|
||||
for option in options:
|
||||
arg = options[option]
|
||||
setattr(guiargs, arg, self.widgets[option].storageVar.get())
|
||||
guiargs.rom = self.romVar2.get()
|
||||
guiargs.baserom = top.pages["randomizer"].pages["generation"].romVar.get()
|
||||
guiargs.sprite = self.sprite
|
||||
|
||||
@@ -3,7 +3,7 @@ from gui.randomize.gameoptions import set_sprite
|
||||
from Rom import Sprite
|
||||
|
||||
|
||||
def loadcliargs(gui, args):
|
||||
def loadcliargs(gui, args, settings=None):
|
||||
if args is not None:
|
||||
for k, v in vars(args).items():
|
||||
if type(v) is dict:
|
||||
@@ -13,57 +13,57 @@ def loadcliargs(gui, args):
|
||||
# set up options to get
|
||||
# Page::Subpage::GUI-id::param-id
|
||||
options = {
|
||||
"randomizer": {
|
||||
"item": {
|
||||
"retro": "retro",
|
||||
"worldstate": "mode",
|
||||
"logiclevel": "logic",
|
||||
"goal": "goal",
|
||||
"crystals_gt": "crystals_gt",
|
||||
"crystals_ganon": "crystals_ganon",
|
||||
"weapons": "swords",
|
||||
"itempool": "difficulty",
|
||||
"itemfunction": "item_functionality",
|
||||
"timer": "timer",
|
||||
"progressives": "progressive",
|
||||
"accessibility": "accessibility",
|
||||
"sortingalgo": "algorithm"
|
||||
},
|
||||
"entrance": {
|
||||
"openpyramid": "openpyramid",
|
||||
"shuffleganon": "shuffleganon",
|
||||
"entranceshuffle": "shuffle"
|
||||
},
|
||||
"enemizer": {
|
||||
"potshuffle": "shufflepots",
|
||||
"enemyshuffle": "shuffleenemies",
|
||||
"bossshuffle": "shufflebosses",
|
||||
"enemydamage": "enemy_damage",
|
||||
"enemyhealth": "enemy_health"
|
||||
},
|
||||
"dungeon": {
|
||||
"mapshuffle": "mapshuffle",
|
||||
"compassshuffle": "compassshuffle",
|
||||
"smallkeyshuffle": "keyshuffle",
|
||||
"bigkeyshuffle": "bigkeyshuffle",
|
||||
"dungeondoorshuffle": "door_shuffle",
|
||||
"experimental": "experimental"
|
||||
},
|
||||
"gameoptions": {
|
||||
"hints": "hints",
|
||||
"nobgm": "disablemusic",
|
||||
"quickswap": "quickswap",
|
||||
"heartcolor": "heartcolor",
|
||||
"heartbeep": "heartbeep",
|
||||
"menuspeed": "fastmenu",
|
||||
"owpalettes": "ow_palettes",
|
||||
"uwpalettes": "uw_palettes"
|
||||
},
|
||||
"generation": {
|
||||
"spoiler": "create_spoiler",
|
||||
"suppressrom": "suppress_rom"
|
||||
}
|
||||
}
|
||||
"randomizer": {
|
||||
"item": {
|
||||
"retro": "retro",
|
||||
"worldstate": "mode",
|
||||
"logiclevel": "logic",
|
||||
"goal": "goal",
|
||||
"crystals_gt": "crystals_gt",
|
||||
"crystals_ganon": "crystals_ganon",
|
||||
"weapons": "swords",
|
||||
"itempool": "difficulty",
|
||||
"itemfunction": "item_functionality",
|
||||
"timer": "timer",
|
||||
"progressives": "progressive",
|
||||
"accessibility": "accessibility",
|
||||
"sortingalgo": "algorithm"
|
||||
},
|
||||
"entrance": {
|
||||
"openpyramid": "openpyramid",
|
||||
"shuffleganon": "shuffleganon",
|
||||
"entranceshuffle": "shuffle"
|
||||
},
|
||||
"enemizer": {
|
||||
"potshuffle": "shufflepots",
|
||||
"enemyshuffle": "shuffleenemies",
|
||||
"bossshuffle": "shufflebosses",
|
||||
"enemydamage": "enemy_damage",
|
||||
"enemyhealth": "enemy_health"
|
||||
},
|
||||
"dungeon": {
|
||||
"mapshuffle": "mapshuffle",
|
||||
"compassshuffle": "compassshuffle",
|
||||
"smallkeyshuffle": "keyshuffle",
|
||||
"bigkeyshuffle": "bigkeyshuffle",
|
||||
"dungeondoorshuffle": "door_shuffle",
|
||||
"experimental": "experimental"
|
||||
},
|
||||
"gameoptions": {
|
||||
"hints": "hints",
|
||||
"nobgm": "disablemusic",
|
||||
"quickswap": "quickswap",
|
||||
"heartcolor": "heartcolor",
|
||||
"heartbeep": "heartbeep",
|
||||
"menuspeed": "fastmenu",
|
||||
"owpalettes": "ow_palettes",
|
||||
"uwpalettes": "uw_palettes"
|
||||
},
|
||||
"generation": {
|
||||
"spoiler": "create_spoiler",
|
||||
"suppressrom": "suppress_rom"
|
||||
}
|
||||
}
|
||||
}
|
||||
for mainpage in options:
|
||||
for subpage in options[mainpage]:
|
||||
@@ -71,7 +71,10 @@ def loadcliargs(gui, args):
|
||||
arg = options[mainpage][subpage][widget]
|
||||
gui.pages[mainpage].pages[subpage].widgets[widget].storageVar.set(getattr(args, arg))
|
||||
if subpage == "gameoptions" and not widget == "hints":
|
||||
gui.pages["adjust"].content.widgets[widget].storageVar.set(getattr(args, arg))
|
||||
hasSettings = settings is not None
|
||||
hasWidget = ("adjust." + widget) in settings if hasSettings else None
|
||||
if hasWidget is None:
|
||||
gui.pages["adjust"].content.widgets[widget].storageVar.set(getattr(args, arg))
|
||||
|
||||
gui.pages["randomizer"].pages["enemizer"].enemizerCLIpathVar.set(args.enemizercli)
|
||||
gui.pages["randomizer"].pages["generation"].romVar.set(args.rom)
|
||||
@@ -101,3 +104,23 @@ def loadcliargs(gui, args):
|
||||
set_sprite(sprite_obj, r_sprite_flag, spriteSetter=sprite_setter_adj,
|
||||
spriteNameVar=gui.pages["adjust"].content.spriteNameVar2,
|
||||
randomSpriteVar=gui.randomSprite)
|
||||
|
||||
def loadadjustargs(gui, settings):
|
||||
options = {
|
||||
"adjust": {
|
||||
"content": {
|
||||
"nobgm": "adjust.nobgm",
|
||||
"quickswap": "adjust.quickswap",
|
||||
"heartcolor": "adjust.heartcolor",
|
||||
"heartbeep": "adjust.heartbeep",
|
||||
"menuspeed": "adjust.menuspeed",
|
||||
"owpalettes": "adjust.owpalettes",
|
||||
"uwpalettes": "adjust.uwpalettes"
|
||||
}
|
||||
}
|
||||
}
|
||||
for mainpage in options:
|
||||
for subpage in options[mainpage]:
|
||||
for widget in options[mainpage][subpage]:
|
||||
key = options[mainpage][subpage][widget]
|
||||
gui.pages[mainpage].content.widgets[widget].storageVar.set(settings[key])
|
||||
|
||||
Reference in New Issue
Block a user