mk64/include/defines.h

98 lines
2.6 KiB
C

#ifndef DEFINES_H
#define DEFINES_H
/**
* Racing terms:
* Staging means aligning a racecar to the starting line.
* Start sequence means waiting for the light to turn green.
*/
#define PLAYER_INACTIVE 0 // 0x0000
#define PLAYER_EXISTS (1 << 15) // 0x8000
#define PLAYER_CINEMATIC_MODE (1 << 11) // 0x0800
#define PLAYER_STAGING (1 << 9) // 0x0200
#define PLAYER_START_SEQUENCE (1 << 13) // 0x2000
#define PLAYER_CPU (1 << 12) // 0x1000
#define PLAYER_HUMAN (1 << 14) // 0x4000
#define PLAYER_INVISIBLE_OR_BOMB (1 << 8) // 0x0100
// unused?
#define PLAYER_UNKNOWN (1 << 10) // 0x0400
// Compiles to -0x1000 in diff.py
#define PLAYER_HUMAN_AND_CPU PLAYER_EXISTS | PLAYER_HUMAN | PLAYER_CPU | PLAYER_START_SEQUENCE
/**
* Options for gModeSelection
**/
#define GRAND_PRIX 0
#define TIME_TRIALS 1
#define VERSUS 2
#define BATTLE 3
/**
* Options for gCCSelection
* CC stands for cubic-centimetres.
* It measures engine displacement composed from
* cylinder volume.
* Generally, the main determiner of horsepower output.
*/
#define CC_50 0
#define CC_100 1
#define CC_150 2
#define CC_EXTRA 3
#define CC_BATTLE 4
/**
* Options for gCupSelection
* There is a "cup" for battle mode, probably so that
* the battle courses could be displayed in the same
* way race courses are.
**/
#define MUSHROOM_CUP 0
#define FLOWER_CUP 1
#define STAR_CUP 2
#define SPECIAL_CUP 3
#define BATTLE_CUP 4
/**
* Character IDs
* Note that these are not the same as the values
* found in gCharacterSelections as those are more
* akin to indexes than IDs
**/
#define MARIO 0
#define LUIGI 1
#define YOSHI 2
#define TOAD 3
#define DK 4
#define WARIO 5
#define PEACH 6
#define BOWSER 7
/**
* Indexes for accessing Time Trial records
**/
#define TIME_TRIAL_3LAP_RECORD_1 0
#define TIME_TRIAL_3LAP_RECORD_2 1
#define TIME_TRIAL_3LAP_RECORD_3 2
#define TIME_TRIAL_3LAP_RECORD_4 3
#define TIME_TRIAL_3LAP_RECORD_5 4
#define TIME_TRIAL_1LAP_RECORD 5
* Text color options
* The 2 cycling options cycle through Blue -> Green -> Red
* Cycle 2 appears to be one step ahead of Cycle 1
* Other values like 6 and 7 sort of work, they cause rapid
* flashing between 2 colors, but also cause individual characters
* to be cutoff on their right side
**/
#define TEXT_BLUE 0
#define TEXT_GREEN 1
#define TEXT_RED 2
#define TEXT_YELLOW 3
#define TEXT_BLUE_GREEN_RED_CYCLE_1 4
#define TEXT_BLUE_GREEN_RED_CYCLE_2 5
#endif // DEFINES_H