HackerN64 / HackerN64/HackerSM64

GUI Tool for Toggling Config Defines

Open
#346 0 comments 0 reactions 1 assignee Claimed by @thecozies View on GitHub
documentation enhancement
Dominant language
C
Stars
529
Forks
209
Avg merge
1d 12h
Merged PRs (30d)
1

Description

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`)
- `#ifdef`s 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 `#ifdef`s 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
```

Contributor guide

No contributing guide indexed for this repository

Assessment

This issue has not been assessed yet.

Get new issues in your inbox

A short digest of beginner-friendly GitHub issues.