aboutsummaryrefslogtreecommitdiff
path: root/project/src/lib-lecode.h
diff options
context:
space:
mode:
Diffstat (limited to 'project/src/lib-lecode.h')
-rw-r--r--project/src/lib-lecode.h72
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;
//
///////////////////////////////////////////////////////////////////////////////