Skip to content

GUI Tool for Toggling Config Defines #346

@gheskett

Description

@gheskett

Because the config files are getting kinda cluttered and stuff

  • Should parse over config files with specific comment syntax for option name, description, value (if applicable), etc.
  • Config options should be categorized in tabs either by file name or by some section syntax in the config file
  • Extended descriptions referenced from the wiki (once applicable)
  • Can't use JSON for this since it doesn't support pound defines directly, which can cause issues with IDEs. Exporting json config over the config headers can also cause issues if the user makes edits outside of the tool.
  • Config safeguards should be moved elsewhere (probably the parent directory containing config.h).
  • Defines that contain values probably should never be commented out (looking at you PUPPYPRINT_DEBUG)
  • #ifdefs should in general be avoided for the non-safeguard file, especially when checking for defines in other files.
    • config_world.h might require some special treatment. The assertions that happen in this file should be moved to safeguards.
    • The check for ENABLE_VANILLA_LEVEL_SPECIFIC_CHECKS in config_camera.h is awful and I hate it. Checking against #ifdefs isn't worth implementing for a singular case like this that IMO doesn't need to exist.

Examples:

/** Disable BLJ
 * This is a multiline
 * description of what it does
 */
// #define DISABLE_BLJ
/** Max Number of Areas {{type: s32}}
 * Description
 */
#define AREA_COUNT 8
/** Internal ROM Name {{type: string, length: 20}}
 * Description
 */
#define INTERNAL_ROM_NAME "HackerSM64          "
/** Start Level {{type: any}}
 * Description
 */
#define START_LEVEL LEVEL_CASTLE_GROUNDS

Metadata

Metadata

Assignees

Labels

documentationImprovements or additions to documentationenhancementNew feature or request

Type

No type

Projects

Status

To do

Relationships

None yet

Development

No branches or pull requests

Issue actions