8bd5ac2e7a
$ python3 migration_scripts/convert_parties.py src/data/trainers.h src/data/trainer_parties.h src/data/npc_trainers.party Is available to convert Trainer Control-formatted trainers/parties into Competitive-formatted ones. Multiple '#include's can be placed in the trainer section of src/data.c to support spreading the trainers across multiple .party files. trainerproc does not interpret the values, leaving that job to the C compiler, so we use '#line' to associate those errors with the lines in the .party file(s). Because the columns don't make sense we use -fno-show-column and -fno-diagostics-show-caret. We might want to move gTrainers into its own file so that the rest of src/data.c isn't affected by those flags. Extensions (misfeatures, imo): - .party files are passed through cpp, so '#define's are supported, and so are '// ...' and '/* ... */' comments. - .party files also support writing, e.g. 'SPECIES_PIKACHU' instead of 'Pikachu'. This allows people to write constants explicitly if they like. Pragmas: - '#pragma trainerproc ivs explicit' requires an explicit 'IVs:' line rather than defaulting to 31s. - '#pragma trainerproc ivs <IVs>' changes the default IVs. - '#pragma trainerproc level explicit' requires an explicit 'Level:' line rather than defaulting to 100. - '#pragma trainerproc level <level>' changes the default level. Co-authored-by: Eduardo Quezada <eduardo602002@gmail.com> Co-authored-by: Alex <93446519+AlexOn1ine@users.noreply.github.com>
82 lines
3.2 KiB
C
82 lines
3.2 KiB
C
#ifndef GUARD_CONFIG_H
|
|
#define GUARD_CONFIG_H
|
|
|
|
// In the Generation 3 games, Asserts were used in various debug builds.
|
|
// Ruby/Sapphire and Emerald do not have these asserts while Fire Red
|
|
// still has them in the ROM. This is because the developers forgot
|
|
// to define NDEBUG before release, however this has been changed as
|
|
// Ruby's actual debug build does not use the AGBPrint features.
|
|
#define NDEBUG
|
|
|
|
// To enable printf debugging, comment out "#define NDEBUG". This allows
|
|
// the various AGBPrint functions to be used. (See include/gba/isagbprint.h).
|
|
// See below for enabling different pretty printing versions.
|
|
|
|
#ifndef NDEBUG
|
|
|
|
#define PRETTY_PRINT_MINI_PRINTF (0)
|
|
#define PRETTY_PRINT_LIBC (1)
|
|
|
|
#define LOG_HANDLER_AGB_PRINT (0)
|
|
#define LOG_HANDLER_NOCASH_PRINT (1)
|
|
#define LOG_HANDLER_MGBA_PRINT (2)
|
|
|
|
// Use this switch to choose a handler for pretty printing.
|
|
// NOTE: mini_printf supports a custom pretty printing formatter to display preproc encoded strings. (%S)
|
|
// some libc distributions (especially dkp arm-libc) will fail to link pretty printing.
|
|
#define PRETTY_PRINT_HANDLER (PRETTY_PRINT_MINI_PRINTF)
|
|
|
|
// Use this switch to choose a handler for printf output.
|
|
// NOTE: These will only work on the respective emulators and should not be used in a productive environment.
|
|
// Some emulators or real hardware might (and is allowed to) crash if they are used.
|
|
// AGB_PRINT is supported on respective debug units.
|
|
|
|
#define LOG_HANDLER (LOG_HANDLER_MGBA_PRINT)
|
|
#endif
|
|
|
|
// Uncomment to fix some identified minor bugs
|
|
#define BUGFIX
|
|
|
|
// Various undefined behavior bugs may or may not prevent compilation with
|
|
// newer compilers. So always fix them when using a modern compiler.
|
|
#if MODERN || defined(BUGFIX)
|
|
#ifndef UBFIX
|
|
#define UBFIX
|
|
#endif
|
|
#endif
|
|
|
|
// Compatibility definition for other projects to detect pokeemerald-expansion
|
|
#define RHH_EXPANSION
|
|
|
|
// Legacy branch-based defines included for backwards compatibility
|
|
#define BATTLE_ENGINE
|
|
#define POKEMON_EXPANSION
|
|
#define ITEM_EXPANSION
|
|
|
|
// Generation constants used in configs to define behavior
|
|
#define GEN_1 0
|
|
#define GEN_2 1
|
|
#define GEN_3 2
|
|
#define GEN_4 3
|
|
#define GEN_5 4
|
|
#define GEN_6 5
|
|
#define GEN_7 6
|
|
#define GEN_8 7
|
|
#define GEN_9 8
|
|
#define GEN_LATEST GEN_9
|
|
|
|
// General settings
|
|
#define EXPANSION_INTRO TRUE // If TRUE, a custom RHH intro will play after the vanilla copyright screen.
|
|
#define POKEDEX_PLUS_HGSS FALSE // If TRUE, enables the custom HGSS style Pokedex.
|
|
#define SUMMARY_SCREEN_NATURE_COLORS TRUE // If TRUE, nature-based stat boosts and reductions will be red and blue in the summary screen.
|
|
#define HQ_RANDOM TRUE // If TRUE, replaces the default RNG with an implementation of SFC32 RNG. May break code that relies on RNG.
|
|
#define COMPETITIVE_PARTY_SYNTAX TRUE // If TRUE, parties are defined in "competitive syntax".
|
|
|
|
// Measurement system constants to be used for UNITS
|
|
#define UNITS_IMPERIAL 0 // Inches, feet, pounds
|
|
#define UNITS_METRIC 1 // meters, kilograms
|
|
|
|
#define UNITS UNITS_IMPERIAL
|
|
#define CHAR_DEC_SEPARATOR CHAR_PERIOD // CHAR_PERIOD is used as a decimal separator only in the UK and the US. The rest of the world uses CHAR_COMMA.
|
|
|
|
#endif // GUARD_CONFIG_H
|