# OpenMFOR # credits manually reinstated due to the comments being lost from the object code decompilation # Original release is Copyright (C) 2022 Kazuto88 # This program is free software: you can redistribute it and/or modify # it under the terms of the GNU General Public License as published by # the Free Software Foundation, either version 3 of the License, or # (at your option) any later version. # Source Generated with Decompyle++ # File: MFOR.pyc (Python 3.8) import argparse import os parser = argparse.ArgumentParser() parser.add_argument('-seed', help='Seed value, optional') parser.add_argument('-race', default=False, action='store_true', help='Generate race rom (no spoiler log)') parser.add_argument('-patch', default=False, action='store_true', help='Generate BPS patch with seed (for easy sharing)') parser.add_argument('-diff', help='Trick difficulty level (0-5, default 0)') parser.add_argument('-limit', default=False, action='store_true', help='Major/minor item pool') parser.add_argument('-missiles', default=False, action='store_true', help='Missile upgrades enable the missile launcher (default off)') parser.add_argument('-pbs', default=False, action='store_true', help='Enable Power Bombs without normal Bombs (default off)') parser.add_argument('-damage-runs', default=False, action='store_true', help='Allow logical damage runs (default off)') parser.add_argument('-split-security', default=False, action='store_true', help='Separated Security levels (default off)') parser.add_argument('-sector-shuffle', default=False, action='store_true', help='Randomly shuffle the arrangement of the Sectors') parser.add_argument('-rom', help='Base rom (Metroid Fusion (U).gba)') parser.add_argument('-nogui', default=False, action='store_true', help='Termnial based seed generation (this)') parser.add_argument('-num', help='Number of seeds to generate (default 1)') parser.add_argument('-hideitems', default=False, action='store_true', help='All items use ? tank graphics') parser.add_argument('-debug', default=False, action='store_true', help='Debugging, for my own use') args = parser.parse_args() if not os.path.exists(os.path.join('.', 'data')): os.mkdir('data') if not os.path.exists(os.path.join('.', 'seeds')): os.mkdir('seeds') if not os.path.exists(os.path.join('.', 'spoilers')): os.mkdir('spoilers') if not args.debug: args.debug = False if args.nogui: settings = dict() settings.update({ 'Seed': None }) if args.seed: settings.update({ 'Seed': args.seed }) settings.update({ 'Debug': args.debug }) settings.update({ 'Patch': args.patch }) if not args.diff: args.diff = 0 if int(args.diff) <= 0: args.diff = 0 elif int(args.diff) >= 5: args.diff = 5 settings.update({ 'Difficulty': args.diff }) settings.update({ 'MajorMinor': args.limit }) settings.update({ 'MissilesWithoutMainData': args.missiles }) settings.update({ 'PowerBombsWithoutBombs': args.pbs }) settings.update({ 'DamageRuns': args.damage_runs }) settings.update({ 'SplitSecurity': args.split_security }) settings.update({ 'SectorShuffle': args.sector_shuffle }) settings.update({ 'HideItems': args.hideitems }) settings.update({ 'RaceSeed': args.race }) settings.update({ 'Num': None }) if args.num: settings.update({ 'Num': int(args.num) }) from Randomizer import start_randomizer start_randomizer(args.rom, settings) else: import GUI as gui gui.main_window(args.debug)