def savePlayers(): for pref in _playerDB.execute('SELECT * FROM `players` WHERE `changed` = 1').fetchall(): try: c = Config.load(VFS.resolveWrite(_makePlayerIniName(str(pref[0]))), type = 2) c.set("player","leftymode",int(pref[1])) c.set("player","drumflip",int(pref[2])) c.set("player","auto_kick",int(pref[3])) c.set("player","assist_mode",int(pref[4])) c.set("player","two_chord_max",int(pref[5])) c.set("player","necktype",int(pref[6])) c.set("player","neck",str(pref[7])) c.set("player","part",int(pref[8])) c.set("player","difficulty",int(pref[9])) c.set("player","name",str(pref[10])) c.set("player","controller",int(pref[11])) del c _playerDB.execute('UPDATE `players` SET `changed` = 0 WHERE `name` = ?', [pref[0]]) except: c = VFS.open(_makePlayerIniName(str(pref[0])), "w") c.close() c = Config.load(VFS.resolveWrite(_makePlayerIniName(str(pref[0]))), type = 2) c.set("player","leftymode",int(pref[1])) c.set("player","drumflip",int(pref[2])) c.set("player","auto_kick",int(pref[3])) c.set("player","assist_mode",int(pref[4])) c.set("player","two_chord_max",int(pref[5])) c.set("player","necktype",int(pref[6])) c.set("player","neck",str(pref[7])) c.set("player","part",int(pref[8])) c.set("player","difficulty",int(pref[9])) c.set("player","name",str(pref[10])) c.set("player","controller",int(pref[11])) del c _playerDB.execute('UPDATE `players` SET `changed` = 0 WHERE `name` = ?', [pref[0]]) _playerDB.execute('UPDATE `players` SET `loaded` = 0') _playerDB.commit()
Config.define("player", "name", str, "") Config.define("player", "difficulty", int, Song.MED_DIF) Config.define("player", "part", int, Song.GUITAR_PART) Config.define("player", "neck", str, "") Config.define("player", "necktype", str, 2, text = _("Neck Type"), options = {0: _("Default Neck"), 1: _("Theme Neck"), 2: _("Specific Neck")}) Config.define("player", "leftymode", int, 0, text = _("Lefty Mode"), options = {0: _("Off"), 1: _("On")}) Config.define("player", "drumflip", int, 0, text = _("Drum Flip"), options = {0: _("Off"), 1: _("On")}) Config.define("player", "two_chord_max", int, 0, text = _("Two-Chord Max"), options = {0: _("Off"), 1: _("On")}) Config.define("player", "assist_mode", int, 0, text = _("Assist Mode"), options = {0: _("Off"), 1: _("Easy Assist"), 2: _("Medium Assist")}) Config.define("player", "auto_kick", int, 0, text = _("Auto Kick"), options = {0: _("Off"), 1: _("On")}) Config.define("player", "controller", int, 0) # Overlay the users folder in /data with one in the user data folder. VFS.mount(VFS.resolveRead('/data/users'), 'users') VFS.mountWritable(VFS.resolveWrite('/userdata/users'), 'users') controlpath = '/users/controllers' playerpath = '/users/players' def _makeControllerIniName(name): '''Turn a controller name into a virtual path to the appropriate ini.''' return '%s/%s.ini' % (controlpath, name) def _makePlayerIniName(name): '''Turn a player name into a virtual path to the appropriate ini.''' return '%s/%s.ini' % (playerpath, name) control0 = None control1 = None control2 = None