diff options
Diffstat (limited to '')
| -rw-r--r-- | project/src/lib-lecode.h | 72 |
1 files changed, 65 insertions, 7 deletions
diff --git a/project/src/lib-lecode.h b/project/src/lib-lecode.h index 2f2acc2..e37b36e 100644 --- a/project/src/lib-lecode.h +++ b/project/src/lib-lecode.h @@ -116,16 +116,22 @@ typedef enum lecode_debug_t LEDEB_CHECK_POINT = 0x0030, // 2 bits! LEDEB_RESPAWN = 0x0040, LEDEB_LAP_POS = 0x0080, + LEDEB_XPF = 0x0300, // 2 bits! + LEDEB_SHORT_XPF = 0x0100, + LEDEB_LONG_XPF = 0x0200, //--- derived values LEDEB__STD = 0x00f9, // standard output - LEDEB__OUTPUT = 0x00f8, // flags that produce output - LEDEB__ALL = 0x00ff, // all flags + LEDEB__OUTPUT = 0x03f8, // flags that produce output + LEDEB__ALL = 0x03ff, // all flags - LEDEB_S_CHECK_POINT = 4, // shift for LEDEB_CHECKPOINT + LEDEB_S_CHECK_POINT = 4, // shift for LEDEB_CHECK_POINT LEDEB_M_CHECK_POINT = 3, // mask after shift + LEDEB_S_XPF = 8, // shift for LEDEB_XPF + LEDEB_M_XPF = 3, // mask after shift + //--- special values LEDEB__N_CONFIG = 4, // number of debug configurations @@ -158,7 +164,7 @@ bool GetNextDebugMode ( lecode_debug_info_t *ldi ); static inline bool isDebugModeOutput ( lecode_debug_t mode ) - { return mode & LEDEB__OUTPUT; } + { return ( mode & LEDEB__OUTPUT ) != 0; } static inline bool isDebugModeActive ( lecode_debug_t mode ) { return mode & LEDEB_ENABLED && mode & LEDEB__OUTPUT; } @@ -179,6 +185,7 @@ typedef struct lecode_debug_ex_t u8 check_point; u8 respawn; u8 lap_pos; + u8 xpf; // status bool have_output; // would produce output if ENABLED @@ -230,12 +237,15 @@ ccp GetPredefDebugName ( predef_debug_t pd_mode ); /////////////////////////////////////////////////////////////////////////////// /////////////// le_lpar_t /////////////// /////////////////////////////////////////////////////////////////////////////// -// [[le_lpar_t]] +// [[le_lpar_t]] [[new-lpar]] typedef struct le_lpar_t { lpar_mode_t limit_mode; // limit of other params + u16 thcloud_frames; // number of frames a player is small after thundercloud hit + + u8 cheat_mode; // 0:off, 1:debug only, 2:allow all u8 engine[3]; // 100cc, 150cc, mirror (sum always 100) u8 enable_200cc; // TRUE: 200C enabled => 150cc, 200cc, mirror u8 enable_perfmon; // >0: performance monitor enabled; >1: for dolphin too @@ -245,6 +255,7 @@ typedef struct le_lpar_t u8 block_track; // block used tracks for 0..20 races u8 no_speedo_if_debug; // 1 bit for each debug configuration u8 item_cheat; // 0:disabled, 1:enabled + u8 drag_blue_shell; // >0: allow dragging of blue shell u8 debug_mode; // debug mode u8 debug_predef[LEDEB__N_CONFIG]; @@ -573,9 +584,56 @@ __attribute__ ((packed)) le_binpar_v1_260_t; _Static_assert(sizeof(le_binpar_v1_260_t)==0x260,"le_binpar_v1_260_t"); //----------------------------------------------------------------------------- -// [[le_binpar_v1_t]] +// [[le_binpar_v1_264_t]] + +typedef struct le_binpar_v1_264_t +{ + /*000*/ char magic[8]; // LE_PARAM_MAGIC + /*008*/ u32 version; // always 1 for v1 + /*00c*/ u32 size; // size (and minor version) + /*010*/ u32 off_eod; // offset of end-of-data + + /*014*/ u32 off_cup_par; // offset to cup param + /*018*/ u32 off_cup_track; // offset of cup-track list + /*01c*/ u32 off_cup_arena; // offset of cup-arena list + /*020*/ u32 off_course_par; // offset of course param + /*024*/ u32 off_property; // offset of property list + /*028*/ u32 off_music; // offset of music list + /*02c*/ u32 off_flags; // offset of music list + + /*030*/ u8 engine[3]; // 100cc, 150cc, mirror (sum always 100) + /*033*/ u8 enable_200cc; // TRUE: 200C enabled => 150cc, 200cc, mirror + /*034*/ u8 enable_perfmon; // >0: performance monitor enabled; >1: for dolphin too + /*035*/ u8 enable_custom_tt; // TRUE: time trial for cusotm tracks enabled + /*036*/ u8 enable_xpflags; // TRUE: extended presence flags enabled + /*037*/ u8 block_track; // block used track for 0.. tracks + /*038*/ u16 chat_mode_1[BMG_N_CHAT]; // mode for each chat message + /*0f8*/ u16 chat_mode_2[BMG_N_CHAT]; // mode for each chat message + /*1b8*/ u8 enable_speedo; // speedometer selection (0..2), see SPEEDO_* + /*1b9*/ u8 no_speedo_if_debug; // if bit is set: suppress speedometer + /*1ba*/ u8 debug_mode; // debug mode (0..), see DEBUGMD_* + /*1bb*/ u8 item_cheat; // 0:disabled, 1:enabled + + /*1bc*/ u8 debug_predef[LEDEB__N_CONFIG]; + // information about used predefined mode + /*1c0*/ u32 debug[LEDEB__N_CONFIG][LEDEB__N_LINE]; + // debug line settings, see LEDEB_* + + /*260*/ u8 cheat_mode; // 0:off, 1:debug only, 2:allow all + /*261*/ u8 drag_blue_shell; // >0: allow dragging of blue shell + /*262*/ u16 thcloud_frames; // number of frames a player is small after thundercloud hit + + /*264*/ + +} +__attribute__ ((packed)) le_binpar_v1_264_t; + +_Static_assert(sizeof(le_binpar_v1_264_t)==0x264,"le_binpar_v1_264_t"); + +//----------------------------------------------------------------------------- +// [[le_binpar_v1_t]] [[new-lpar]] -typedef struct le_binpar_v1_260_t le_binpar_v1_t; +typedef struct le_binpar_v1_264_t le_binpar_v1_t; // /////////////////////////////////////////////////////////////////////////////// |
