aboutsummaryrefslogtreecommitdiff
path: root/project/src/db-kcl.c
diff options
context:
space:
mode:
Diffstat (limited to 'project/src/db-kcl.c')
-rw-r--r--project/src/db-kcl.c881
1 files changed, 881 insertions, 0 deletions
diff --git a/project/src/db-kcl.c b/project/src/db-kcl.c
new file mode 100644
index 0000000..220a8b1
--- /dev/null
+++ b/project/src/db-kcl.c
@@ -0,0 +1,881 @@
+
+//
+///////////////////////////////////////////////////////////////////////////////
+////// This file is created by a script. Modifications will be lost! //////
+///////////////////////////////////////////////////////////////////////////////
+
+#include "db-kcl.h"
+
+
+//
+///////////////////////////////////////////////////////////////////////////////
+//////////////////////////// kcl_attrib_name[] ////////////////////////////
+///////////////////////////////////////////////////////////////////////////////
+
+const kcl_attrib_name_t kcl_attrib_name[N_KCL_ATTRIB+1] =
+{
+ { KCLT_C_ROAD, "C_ROAD" },
+ { KCLT_C_OFFROAD, "C_OFFROAD" },
+ { KCLT_C_FAST, "C_FAST" },
+ { KCLT_C_HALFPIPE, "C_HALFPIPE" },
+ { KCLT_C_MOVING, "C_MOVING" },
+ { KCLT_C_WATER, "C_WATER" },
+ { KCLT_C_CANNON, "C_CANNON" },
+ { KCLT_C_WALL, "C_WALL" },
+ { KCLT_C_FALL, "C_FALL" },
+ { KCLT_C_EFFECT, "C_EFFECT" },
+ { KCLT_C_ITEM, "C_ITEM" },
+ { KCLT_C_UNKNOWN, "C_UNKNOWN" },
+ { KCLT_BORDER, "BORDER" },
+ { KCLT_DRIVE, "DRIVE" },
+ { KCLT_BOOST, "BOOST" },
+ { KCLT_TRICK, "TRICK" },
+ { KCLT_SOUND, "SOUND" },
+ { KCLT_ITEM, "ITEM" },
+ { KCLT_UNKNOWN, "UNKNOWN" },
+ {0,0}
+};
+
+
+//
+///////////////////////////////////////////////////////////////////////////////
+/////////////////////////////// kcl_class[] ///////////////////////////////
+///////////////////////////////////////////////////////////////////////////////
+
+const kcl_class_t kcl_class[N_KCL_CLASS+1] =
+{
+ { 0, 16, 0x0a0, "road", "normal road",
+ KCLT_C_ROAD | KCLT_BORDER | KCLT_DRIVE },
+
+ { 1, 16, 0x0b0, "offroad", "offroad",
+ KCLT_C_OFFROAD | KCLT_BORDER | KCLT_DRIVE },
+
+ { 2, 6, 0x0c0, "fast", "boost and trick",
+ KCLT_C_FAST | KCLT_BORDER | KCLT_DRIVE },
+
+ { 3, 5, 0x0c6, "halfpipe", "halfpipe",
+ KCLT_C_HALFPIPE | KCLT_BORDER | KCLT_DRIVE },
+
+ { 4, 5, 0x0cb, "moving", "moving terrain",
+ KCLT_C_MOVING | KCLT_BORDER | KCLT_DRIVE },
+
+ { 5, 8, 0x0d0, "water", "shallow water",
+ KCLT_C_WATER | KCLT_BORDER | KCLT_DRIVE },
+
+ { 6, 5, 0x0d8, "cannon", "cannon activator",
+ KCLT_C_CANNON },
+
+ { 7, 16, 0x0dd, "wall", "wall",
+ KCLT_C_WALL | KCLT_BORDER },
+
+ { 8, 10, 0x0ed, "fall", "fall or out of bounds",
+ KCLT_C_FALL },
+
+ { 9, 10, 0x0f7, "effect", "sound trigger and other effects",
+ KCLT_C_EFFECT },
+
+ { 10, 5, 0x101, "item", "for items only",
+ KCLT_C_ITEM | KCLT_ITEM },
+
+ { 11, 10, 0x106, "unknown", "unknown type",
+ KCLT_C_UNKNOWN },
+
+ {0,0,0}
+};
+
+
+//
+///////////////////////////////////////////////////////////////////////////////
+/////////////////////////////// kcl_color[] ///////////////////////////////
+///////////////////////////////////////////////////////////////////////////////
+
+const u8 kcl_color[N_KCL_COLORS][4] =
+{
+ {0,0,0,0}, // 0x000 unknown
+ {0xc0,0x00,0x00,0xff}, // 0x001 kmp_ckpt_warning
+ {0xc0,0x00,0x00,0xb0}, // 0x002 kmp_ckpt_warning_t
+ {0xc0,0x00,0x00,0x70}, // 0x003 kmp_ckpt_warning_tt
+ {0x20,0x00,0x80,0xff}, // 0x004 kmp_ckpt_lap
+ {0x20,0x00,0x80,0xb0}, // 0x005 kmp_ckpt_lap_t
+ {0x20,0x00,0x80,0x70}, // 0x006 kmp_ckpt_lap_tt
+ {0x00,0x00,0xc0,0xff}, // 0x007 kmp_ckpt_mandatory
+ {0x00,0x00,0xc0,0xb0}, // 0x008 kmp_ckpt_mandatory_t
+ {0x00,0x00,0xc0,0x70}, // 0x009 kmp_ckpt_mandatory_tt
+ {0x00,0x00,0x40,0xff}, // 0x00a kmp_ckpt_mandatory5
+ {0x00,0x00,0x40,0xb0}, // 0x00b kmp_ckpt_mandatory5_t
+ {0x00,0x00,0x40,0x70}, // 0x00c kmp_ckpt_mandatory5_tt
+ {0x00,0xc0,0xc0,0xff}, // 0x00d kmp_ckpt_etc
+ {0x00,0xc0,0xc0,0xb0}, // 0x00e kmp_ckpt_etc_t
+ {0x00,0xc0,0xc0,0x70}, // 0x00f kmp_ckpt_etc_tt
+ {0x80,0x00,0x00,0xff}, // 0x010 kmp_ckpt_tie_lt
+ {0x00,0x80,0x00,0xff}, // 0x011 kmp_ckpt_tie_rt
+ {0x40,0x00,0x00,0xff}, // 0x012 kmp_ckpt_tie_group_lt
+ {0x00,0x40,0x00,0xff}, // 0x013 kmp_ckpt_tie_group_rt
+ {0x50,0x00,0x30,0xff}, // 0x014 kmp_ckpt_tie_next_lt
+ {0x00,0x50,0x50,0xff}, // 0x015 kmp_ckpt_tie_next_rt
+ {0x00,0x80,0x00,0xff}, // 0x016 kmp_ckpt_jgpt
+ {0x00,0x40,0x00,0xff}, // 0x017 kmp_jgpt
+ {0x20,0xa0,0x20,0x80}, // 0x018 kmp_jgpt_area
+ {0x00,0x00,0x00,0xff}, // 0x019 kmp_ktpt
+ {0x80,0x80,0x80,0x80}, // 0x01a kmp_ktpt_area
+ {0x00,0x00,0x80,0xc0}, // 0x01b kmp_enpt
+ {0x00,0x00,0x80,0xc0}, // 0x01c kmp_enpt_single
+ {0x00,0x40,0xa0,0xc0}, // 0x01d kmp_enpt_tie_bi
+ {0x00,0x60,0xb0,0xc0}, // 0x01e kmp_enpt_tie_next
+ {0x00,0xb0,0xb0,0xc0}, // 0x01f kmp_enpt_tie_prev
+ {0x00,0x80,0xc0,0xff}, // 0x020 kmp_enpt_dispatch
+ {0x40,0x00,0x00,0xc0}, // 0x021 kmp_itpt
+ {0x40,0x00,0x00,0xc0}, // 0x022 kmp_itpt_single
+ {0x60,0x00,0x40,0xc0}, // 0x023 kmp_itpt_tie_bi
+ {0x80,0x00,0x50,0xc0}, // 0x024 kmp_itpt_tie_next
+ {0xa0,0x00,0xa0,0xc0}, // 0x025 kmp_itpt_tie_prev
+ {0xe0,0x00,0x80,0xff}, // 0x026 kmp_itpt_dispatch
+ {0xff,0x80,0xff,0xff}, // 0x027 kmp_cnpt_landing
+ {0xff,0xa0,0xff,0xff}, // 0x028 kmp_cnpt_way
+ {0x80,0x80,0x00,0xff}, // 0x029 kmp_area_arrow
+ {0x80,0x80,0x00,0x40}, // 0x02a kmp_area_border
+ {0x00,0x80,0x00,0xc0}, // 0x02b kmp_poti0
+ {0x00,0x92,0x49,0xc0}, // 0x02c kmp_poti1
+ {0x24,0xa4,0x12,0xc0}, // 0x02d kmp_poti2
+ {0x24,0xa4,0x12,0xc0}, // 0x02e kmp_poti3
+ {0x70,0x70,0x70,0xff}, // 0x02f kmp_itembox
+ {0x40,0x40,0x40,0xff}, // 0x030 kmp_itembox_enemy
+ {0x40,0x10,0x10,0xff}, // 0x031 kmp_itembox_player
+ {0x60,0xa0,0x60,0xe0}, // 0x032 kmp_itemroute
+ {0x30,0x70,0x30,0xe0}, // 0x033 kmp_itemroute_enemy
+ {0x50,0x10,0x10,0xe0}, // 0x034 kmp_itemroute_player
+ {0x00,0x70,0x00,0xff}, // 0x035 kmp_kinoko_green
+ {0x90,0x18,0x00,0xff}, // 0x036 kmp_kinoko_red
+ {0x70,0x40,0x60,0xff}, // 0x037 kmp_bridge
+ {0x10,0x7b,0x18,0xff}, // 0x038 kmp_dokan
+ {0xde,0x82,0x31,0xff}, // 0x039 kmp_karehayama
+ {0x70,0x5e,0x36,0xff}, // 0x03a kmp_obakeblock
+ {0x00,0x80,0x00,0x40}, // 0x03b kmp_tree_crown
+ {0x58,0x32,0x10,0xff}, // 0x03c kmp_tree_trunk
+ {0x9c,0x69,0x21,0xff}, // 0x03d kmp_woodbox
+ {0xe0,0xb0,0x00,0xff}, // 0x03e kmp_coin_start
+ {0xff,0xd7,0x00,0xff}, // 0x03f kmp_coin_respawn
+ {0xff,0xb0,0x00,0xff}, // 0x040 kmp_coin_invalid
+ {0x40,0x40,0x80,0xff}, // 0x041 kmp_solid_object
+ {0x20,0x80,0x80,0xe0}, // 0x042 kmp_solid_route
+ {0x80,0x00,0xff,0xc0}, // 0x043 kmp_deco_object
+ {0x10,0x10,0x10,0xff}, // 0x044 kmp_zero_ground_black
+ {0xf0,0xf0,0xf0,0xff}, // 0x045 kmp_zero_ground_white
+ {0xff,0x20,0x20,0xff}, // 0x046 red
+ {0xff,0x20,0x20,0xb0}, // 0x047 red_t
+ {0xff,0x20,0x20,0x70}, // 0x048 red_tt
+ {0xff,0x60,0x10,0xff}, // 0x049 red_orange
+ {0xff,0x60,0x10,0xb0}, // 0x04a red_orange_t
+ {0xff,0x60,0x10,0x70}, // 0x04b red_orange_tt
+ {0xff,0xa0,0x00,0xff}, // 0x04c orange
+ {0xff,0xa0,0x00,0xb0}, // 0x04d orange_t
+ {0xff,0xa0,0x00,0x70}, // 0x04e orange_tt
+ {0xf8,0xc8,0x00,0xff}, // 0x04f orange_yellow
+ {0xf8,0xc8,0x00,0xb0}, // 0x050 orange_yellow_t
+ {0xf8,0xc8,0x00,0x70}, // 0x051 orange_yellow_tt
+ {0xf0,0xf0,0x00,0xff}, // 0x052 yellow
+ {0xf0,0xf0,0x00,0xb0}, // 0x053 yellow_t
+ {0xf0,0xf0,0x00,0x70}, // 0x054 yellow_tt
+ {0xa0,0xf0,0x00,0xff}, // 0x055 yellow_green
+ {0xa0,0xf0,0x00,0xb0}, // 0x056 yellow_green_t
+ {0xa0,0xf0,0x00,0x70}, // 0x057 yellow_green_tt
+ {0x00,0xff,0x00,0xff}, // 0x058 green
+ {0x00,0xff,0x00,0xb0}, // 0x059 green_t
+ {0x00,0xff,0x00,0x70}, // 0x05a green_tt
+ {0x00,0xff,0xa0,0xff}, // 0x05b green_cyan
+ {0x00,0xff,0xa0,0xb0}, // 0x05c green_cyan_t
+ {0x00,0xff,0xa0,0x70}, // 0x05d green_cyan_tt
+ {0x00,0xff,0xff,0xff}, // 0x05e cyan
+ {0x00,0xff,0xff,0xb0}, // 0x05f cyan_t
+ {0x00,0xff,0xff,0x70}, // 0x060 cyan_tt
+ {0x10,0x90,0xff,0xff}, // 0x061 cyan_blue
+ {0x10,0x90,0xff,0xb0}, // 0x062 cyan_blue_t
+ {0x10,0x90,0xff,0x70}, // 0x063 cyan_blue_tt
+ {0x20,0x20,0xff,0xff}, // 0x064 blue
+ {0x20,0x20,0xff,0xb0}, // 0x065 blue_t
+ {0x20,0x20,0xff,0x70}, // 0x066 blue_tt
+ {0x80,0x00,0xff,0xff}, // 0x067 blue_magenta
+ {0x80,0x00,0xff,0xb0}, // 0x068 blue_magenta_t
+ {0x80,0x00,0xff,0x70}, // 0x069 blue_magenta_tt
+ {0xff,0x00,0xff,0xff}, // 0x06a magenta
+ {0xff,0x00,0xff,0xb0}, // 0x06b magenta_t
+ {0xff,0x00,0xff,0x70}, // 0x06c magenta_tt
+ {0xff,0x00,0x80,0xff}, // 0x06d magenta_red
+ {0xff,0x00,0x80,0xb0}, // 0x06e magenta_red_t
+ {0xff,0x00,0x80,0x70}, // 0x06f magenta_red_tt
+ {0x80,0x50,0x10,0xff}, // 0x070 brown
+ {0x80,0x50,0x10,0xb0}, // 0x071 brown_t
+ {0x80,0x50,0x10,0x70}, // 0x072 brown_tt
+ {0xff,0xff,0xff,0xff}, // 0x073 white
+ {0xff,0xff,0xff,0xb0}, // 0x074 white_t
+ {0xff,0xff,0xff,0x70}, // 0x075 white_tt
+ {0xa0,0xa0,0xa0,0xff}, // 0x076 grey
+ {0xa0,0xa0,0xa0,0xb0}, // 0x077 grey_t
+ {0xa0,0xa0,0xa0,0x70}, // 0x078 grey_tt
+ {0x01,0x01,0x01,0xff}, // 0x079 black
+ {0x01,0x01,0x01,0xb0}, // 0x07a black_t
+ {0x01,0x01,0x01,0x70}, // 0x07b black_tt
+ {0xff,0xd7,0x00,0xff}, // 0x07c gold
+ {0xff,0xd7,0x00,0xb0}, // 0x07d gold_t
+ {0xff,0xd7,0x00,0x70}, // 0x07e gold_tt
+ {0xc0,0xc0,0xc0,0xff}, // 0x07f silver
+ {0xc0,0xc0,0xc0,0xb0}, // 0x080 silver_t
+ {0xc0,0xc0,0xc0,0x70}, // 0x081 silver_tt
+ {0xd8,0xb0,0x80,0xff}, // 0x082 bronze
+ {0xd8,0xb0,0x80,0xb0}, // 0x083 bronze_t
+ {0xd8,0xb0,0x80,0x70}, // 0x084 bronze_tt
+ {0x00,0xd0,0xff,0xff}, // 0x085 test0
+ {0x00,0xd0,0xff,0xb0}, // 0x086 test0_t
+ {0x00,0xd0,0xff,0x70}, // 0x087 test0_tt
+ {0x00,0xff,0xd0,0xff}, // 0x088 test1
+ {0x00,0xff,0xd0,0xb0}, // 0x089 test1_t
+ {0x00,0xff,0xd0,0x70}, // 0x08a test1_tt
+ {0x60,0xff,0x00,0xff}, // 0x08b test2
+ {0x60,0xff,0x00,0xb0}, // 0x08c test2_t
+ {0x60,0xff,0x00,0x70}, // 0x08d test2_tt
+ {0xf0,0xf0,0x00,0xff}, // 0x08e test3
+ {0xf0,0xf0,0x00,0xb0}, // 0x08f test3_t
+ {0xf0,0xf0,0x00,0x70}, // 0x090 test3_tt
+ {0xff,0xa0,0x00,0xff}, // 0x091 test4
+ {0xff,0xa0,0x00,0xb0}, // 0x092 test4_t
+ {0xff,0xa0,0x00,0x70}, // 0x093 test4_tt
+ {0xff,0x60,0x10,0xff}, // 0x094 test5
+ {0xff,0x60,0x10,0xb0}, // 0x095 test5_t
+ {0xff,0x60,0x10,0x70}, // 0x096 test5_tt
+ {0xff,0x20,0x20,0xff}, // 0x097 test6
+ {0xff,0x20,0x20,0xb0}, // 0x098 test6_t
+ {0xff,0x20,0x20,0x70}, // 0x099 test6_tt
+ {0xff,0x00,0x80,0xff}, // 0x09a test7
+ {0xff,0x00,0x80,0xb0}, // 0x09b test7_t
+ {0xff,0x00,0x80,0x70}, // 0x09c test7_tt
+ {0xff,0x00,0xff,0xff}, // 0x09d test8
+ {0xff,0x00,0xff,0xb0}, // 0x09e test8_t
+ {0xff,0x00,0xff,0x70}, // 0x09f test8_tt
+
+ {0xff,0x00,0x00,0xff}, // 0x0a0 road_1
+ {0xe8,0x00,0xe8,0xff}, // 0x0a1 road_2
+ {0xda,0x00,0x00,0xff}, // 0x0a2 road_3
+ {0xba,0x00,0xba,0xff}, // 0x0a3 road_4
+ {0xb6,0x00,0x00,0xff}, // 0x0a4 road_5
+ {0x8d,0x00,0x8d,0xff}, // 0x0a5 road_6
+ {0x92,0x00,0x00,0xff}, // 0x0a6 road_7
+ {0x60,0x00,0x60,0xff}, // 0x0a7 road_8
+ {0xff,0x00,0xff,0xff}, // 0x0a8 road_9
+ {0xec,0x00,0x00,0xff}, // 0x0a9 road_10
+ {0xd1,0x00,0xd1,0xff}, // 0x0aa road_11
+ {0xc8,0x00,0x00,0xff}, // 0x0ab road_12
+ {0xa4,0x00,0xa4,0xff}, // 0x0ac road_13
+ {0xa4,0x00,0x00,0xff}, // 0x0ad road_14
+ {0x76,0x00,0x76,0xff}, // 0x0ae road_15
+ {0x80,0x00,0x00,0xff}, // 0x0af road_16
+ {0xc0,0x60,0x60,0xff}, // 0x0b0 offroad_1
+ {0xf1,0x40,0x00,0xff}, // 0x0b1 offroad_2
+ {0xa4,0x4d,0x44,0xff}, // 0x0b2 offroad_3
+ {0xd6,0x40,0x00,0xff}, // 0x0b3 offroad_4
+ {0x89,0x3b,0x29,0xff}, // 0x0b4 offroad_5
+ {0xbb,0x40,0x00,0xff}, // 0x0b5 offroad_6
+ {0x6d,0x29,0x0d,0xff}, // 0x0b6 offroad_7
+ {0xa0,0x40,0x00,0xff}, // 0x0b7 offroad_8
+ {0xff,0x40,0x00,0xff}, // 0x0b8 offroad_9
+ {0xb2,0x56,0x52,0xff}, // 0x0b9 offroad_10
+ {0xe3,0x40,0x00,0xff}, // 0x0ba offroad_11
+ {0x96,0x44,0x36,0xff}, // 0x0bb offroad_12
+ {0xc8,0x40,0x00,0xff}, // 0x0bc offroad_13
+ {0x7b,0x32,0x1b,0xff}, // 0x0bd offroad_14
+ {0xad,0x40,0x00,0xff}, // 0x0be offroad_15
+ {0x60,0x20,0x00,0xff}, // 0x0bf offroad_16
+ {0xff,0xa0,0x30,0xff}, // 0x0c0 fast_1
+ {0xe6,0x79,0x23,0xff}, // 0x0c1 fast_2
+ {0xf2,0x8c,0x29,0xff}, // 0x0c2 fast_3
+ {0xf8,0x96,0x2c,0xff}, // 0x0c3 fast_4
+ {0xe0,0x70,0x20,0xff}, // 0x0c4 fast_5
+ {0xec,0x83,0x26,0xff}, // 0x0c5 fast_6
+ {0x00,0x80,0xff,0xff}, // 0x0c6 halfpipe_1
+ {0x00,0x68,0xcf,0xff}, // 0x0c7 halfpipe_2
+ {0x00,0x78,0xef,0xff}, // 0x0c8 halfpipe_3
+ {0x00,0x60,0xc0,0xff}, // 0x0c9 halfpipe_4
+ {0x00,0x70,0xdf,0xff}, // 0x0ca halfpipe_5
+ {0xff,0x00,0x60,0xff}, // 0x0cb moving_1
+ {0xcf,0x00,0x60,0xff}, // 0x0cc moving_2
+ {0xef,0x00,0x60,0xff}, // 0x0cd moving_3
+ {0xc0,0x00,0x60,0xff}, // 0x0ce moving_4
+ {0xdf,0x00,0x60,0xff}, // 0x0cf moving_5
+ {0x00,0x00,0xff,0xff}, // 0x0d0 water_1
+ {0x00,0x00,0xa4,0xff}, // 0x0d1 water_2
+ {0x00,0x00,0xda,0xff}, // 0x0d2 water_3
+ {0x00,0x00,0x80,0xff}, // 0x0d3 water_4
+ {0x00,0x00,0xb6,0xff}, // 0x0d4 water_5
+ {0x00,0x00,0xec,0xff}, // 0x0d5 water_6
+ {0x00,0x00,0x92,0xff}, // 0x0d6 water_7
+ {0x00,0x00,0xc8,0xff}, // 0x0d7 water_8
+ {0xff,0x80,0xff,0xff}, // 0x0d8 cannon_1
+ {0x9f,0x50,0x9f,0xff}, // 0x0d9 cannon_2
+ {0xdf,0x70,0xdf,0xff}, // 0x0da cannon_3
+ {0x80,0x40,0x80,0xff}, // 0x0db cannon_4
+ {0xbf,0x60,0xbf,0xff}, // 0x0dc cannon_5
+ {0x00,0x80,0x00,0xa0}, // 0x0dd wall_1
+ {0x00,0x92,0x49,0xa0}, // 0x0de wall_2
+ {0x24,0xa4,0x12,0xa0}, // 0x0df wall_3
+ {0x00,0xb6,0x5b,0xa0}, // 0x0e0 wall_4
+ {0x49,0xc8,0x24,0xa0}, // 0x0e1 wall_5
+ {0x00,0xda,0x6d,0xa0}, // 0x0e2 wall_6
+ {0x6d,0xec,0x36,0xa0}, // 0x0e3 wall_7
+ {0x00,0xff,0x80,0xa0}, // 0x0e4 wall_8
+ {0x00,0x80,0x40,0xa0}, // 0x0e5 wall_9
+ {0x12,0x92,0x09,0xa0}, // 0x0e6 wall_10
+ {0x00,0xa4,0x52,0xa0}, // 0x0e7 wall_11
+ {0x36,0xb6,0x1b,0xa0}, // 0x0e8 wall_12
+ {0x00,0xc8,0x64,0xa0}, // 0x0e9 wall_13
+ {0x5b,0xda,0x2d,0xa0}, // 0x0ea wall_14
+ {0x00,0xec,0x76,0xa0}, // 0x0eb wall_15
+ {0x80,0xff,0x40,0xa0}, // 0x0ec wall_16
+ {0x00,0x00,0x00,0xff}, // 0x0ed fall_1
+ {0x30,0x10,0x10,0xff}, // 0x0ee fall_2
+ {0x20,0x20,0x20,0xff}, // 0x0ef fall_3
+ {0x50,0x30,0x30,0xff}, // 0x0f0 fall_4
+ {0x40,0x40,0x40,0xff}, // 0x0f1 fall_5
+ {0x10,0x10,0x10,0xff}, // 0x0f2 fall_6
+ {0x40,0x20,0x20,0xff}, // 0x0f3 fall_7
+ {0x30,0x30,0x30,0xff}, // 0x0f4 fall_8
+ {0x60,0x40,0x40,0xff}, // 0x0f5 fall_9
+ {0x20,0x00,0x00,0xff}, // 0x0f6 fall_10
+ {0x00,0xff,0xff,0xa0}, // 0x0f7 effect_1
+ {0x15,0xaa,0xaa,0xa0}, // 0x0f8 effect_2
+ {0x07,0xe2,0xe2,0xa0}, // 0x0f9 effect_3
+ {0x1c,0x8e,0x8e,0xa0}, // 0x0fa effect_4
+ {0x0e,0xc6,0xc6,0xa0}, // 0x0fb effect_5
+ {0x03,0xf0,0xf0,0xa0}, // 0x0fc effect_6
+ {0x18,0x9c,0x9c,0xa0}, // 0x0fd effect_7
+ {0x0a,0xd4,0xd4,0xa0}, // 0x0fe effect_8
+ {0x20,0x80,0x80,0xa0}, // 0x0ff effect_9
+ {0x11,0xb8,0xb8,0xa0}, // 0x100 effect_10
+ {0x30,0xff,0x80,0xff}, // 0x101 item_1
+ {0x1e,0xcf,0x68,0xff}, // 0x102 item_2
+ {0x2a,0xef,0x78,0xff}, // 0x103 item_3
+ {0x18,0xc0,0x60,0xff}, // 0x104 item_4
+ {0x24,0xdf,0x70,0xff}, // 0x105 item_5
+ {0xff,0xff,0xff,0xa0}, // 0x106 unknown_1
+ {0xd0,0xd0,0xef,0xa0}, // 0x107 unknown_2
+ {0xdf,0xdf,0xdf,0xa0}, // 0x108 unknown_3
+ {0xb0,0xb0,0xcf,0xa0}, // 0x109 unknown_4
+ {0xbf,0xbf,0xbf,0xa0}, // 0x10a unknown_5
+ {0xef,0xef,0xef,0xa0}, // 0x10b unknown_6
+ {0xc0,0xc0,0xdf,0xa0}, // 0x10c unknown_7
+ {0xcf,0xcf,0xcf,0xa0}, // 0x10d unknown_8
+ {0xa0,0xa0,0xbf,0xa0}, // 0x10e unknown_9
+ {0xe0,0xe0,0xff,0xa0}, // 0x10f unknown_10
+};
+
+
+//
+///////////////////////////////////////////////////////////////////////////////
+/////////////////////////////// kcl_type[] ////////////////////////////////
+///////////////////////////////////////////////////////////////////////////////
+
+const kcl_type_t kcl_type[N_KCL_TYPE+1] =
+{
+ { 0x00, 0, "Road",
+ KCLT_C_ROAD | KCLT_BORDER | KCLT_DRIVE },
+
+ { 0x01, 1, "Slippery Road 1",
+ KCLT_C_OFFROAD | KCLT_BORDER | KCLT_DRIVE },
+
+ { 0x02, 1, "Weak Off-road",
+ KCLT_C_OFFROAD | KCLT_BORDER | KCLT_DRIVE },
+
+ { 0x03, 1, "Off-road",
+ KCLT_C_OFFROAD | KCLT_BORDER | KCLT_DRIVE },
+
+ { 0x04, 1, "Heavy Off-road",
+ KCLT_C_OFFROAD | KCLT_BORDER | KCLT_DRIVE },
+
+ { 0x05, 1, "Slippery Road 2",
+ KCLT_C_OFFROAD | KCLT_BORDER | KCLT_DRIVE },
+
+ { 0x06, 2, "Boost Pad",
+ KCLT_C_FAST | KCLT_BORDER | KCLT_DRIVE | KCLT_BOOST },
+
+ { 0x07, 2, "Boost Ramp",
+ KCLT_C_FAST | KCLT_BORDER | KCLT_DRIVE | KCLT_BOOST | KCLT_TRICK },
+
+ { 0x08, 2, "Jump Pad",
+ KCLT_C_FAST | KCLT_BORDER | KCLT_DRIVE | KCLT_TRICK },
+
+ { 0x09, 10, "Item Road",
+ KCLT_C_ITEM | KCLT_ITEM },
+
+ { 0x0a, 8, "Solid Fall",
+ KCLT_C_FALL },
+
+ { 0x0b, 5, "Moving Water",
+ KCLT_C_WATER | KCLT_BORDER | KCLT_DRIVE },
+
+ { 0x0c, 7, "Wall",
+ KCLT_C_WALL | KCLT_BORDER },
+
+ { 0x0d, 7, "Invisible Wall",
+ KCLT_C_WALL | KCLT_BORDER | KCLT_ITEM },
+
+ { 0x0e, 10, "Item Wall",
+ KCLT_C_ITEM | KCLT_ITEM },
+
+ { 0x0f, 7, "Wall",
+ KCLT_C_WALL | KCLT_BORDER },
+
+ { 0x10, 8, "Fall Boundary",
+ KCLT_C_FALL },
+
+ { 0x11, 6, "Cannon Activator",
+ KCLT_C_CANNON },
+
+ { 0x12, 9, "Recalculation",
+ KCLT_C_EFFECT },
+
+ { 0x13, 3, "Half-pipe Ramp",
+ KCLT_C_HALFPIPE | KCLT_BORDER | KCLT_DRIVE },
+
+ { 0x14, 7, "Wall",
+ KCLT_C_WALL | KCLT_BORDER },
+
+ { 0x15, 4, "Moving Road",
+ KCLT_C_MOVING | KCLT_BORDER | KCLT_DRIVE },
+
+ { 0x16, 0, "Gravity Road",
+ KCLT_C_ROAD | KCLT_BORDER | KCLT_DRIVE },
+
+ { 0x17, 0, "Road",
+ KCLT_C_ROAD | KCLT_BORDER | KCLT_DRIVE },
+
+ { 0x18, 9, "Sound Trigger",
+ KCLT_C_EFFECT | KCLT_SOUND },
+
+ { 0x19, 11, "Unknown",
+ KCLT_C_UNKNOWN | KCLT_UNKNOWN },
+
+ { 0x1a, 9, "Effect Trigger",
+ KCLT_C_EFFECT },
+
+ { 0x1b, 11, "Unknown",
+ KCLT_C_UNKNOWN | KCLT_UNKNOWN },
+
+ { 0x1c, 11, "Unknown",
+ KCLT_C_UNKNOWN | KCLT_UNKNOWN },
+
+ { 0x1d, 0, "Moving Road",
+ KCLT_C_ROAD | KCLT_BORDER | KCLT_DRIVE },
+
+ { 0x1e, 7, "Special Wall",
+ KCLT_C_WALL | KCLT_BORDER },
+
+ { 0x1f, 7, "Wall",
+ KCLT_C_WALL | KCLT_BORDER },
+
+ {0,0,0,0}
+};
+
+
+//
+///////////////////////////////////////////////////////////////////////////////
+////////////////////////////// GetFlagName() //////////////////////////////
+///////////////////////////////////////////////////////////////////////////////
+
+ccp GetFlagName ( uint kcl_flag )
+{
+ static ccp tab[] =
+ {
+ "UNKNOWN",
+ "CKPT_WARNING",
+ "CKPT_WARNING_T",
+ "CKPT_WARNING_TT",
+ "CKPT_LC",
+ "CKPT_LC_T",
+ "CKPT_LC_TT",
+ "CKPT_MD",
+ "CKPT_MD_T",
+ "CKPT_MD_TT",
+ "CKPT_MD5",
+ "CKPT_MD5_T",
+ "CKPT_MD5_TT",
+ "CKPT_ETC",
+ "CKPT_ETC_T",
+ "CKPT_ETC_TT",
+ "CKPT_TIE_LT",
+ "CKPT_TIE_RT",
+ "CKPT_TIE_GROUP_LT",
+ "CKPT_TIE_GROUP_RT",
+ "CKPT_TIE_NEXT_LT",
+ "CKPT_TIE_NEXT_RT",
+ "CKPT_JGPT",
+ "JGPT",
+ "JGPT_AREA",
+ "KTPT",
+ "KTPT_AREA",
+ "ENPT",
+ "ENPT_SINGLE",
+ "ENPT_TIE_BI",
+ "ENPT_TIE_NEXT",
+ "ENPT_TIE_PREV",
+ "ENPT_DISPATCH",
+ "ITPT",
+ "ITPT_SINGLE",
+ "ITPT_TIE_BI",
+ "ITPT_TIE_NEXT",
+ "ITPT_TIE_PREV",
+ "ITPT_DISPATCH",
+ "CNPT_LANDING",
+ "CNPT_WAY",
+ "AREA_ARROW",
+ "AREA_BORDER",
+ "POTI0",
+ "POTI1",
+ "POTI2",
+ "POTI3",
+ "ITEMBOX",
+ "ITEMBOX_ENEMY",
+ "ITEMBOX_PLAYER",
+ "ITEMROUTE",
+ "ITEMROUTE_ENEMY",
+ "ITEMROUTE_PLAYER",
+ "KINOKO_GREEN",
+ "KINOKO_RED",
+ "BRIDGE",
+ "DOKAN",
+ "KAREHAYAMA",
+ "OBAKEBLOCK",
+ "TREE_CROWN",
+ "TREE_TRUNK",
+ "WOODBOX",
+ "COIN_START",
+ "COIN_RESPAWN",
+ "COIN_INVALID",
+ "SOLIDOBJ",
+ "SOLID_ROUTE",
+ "DECORATION",
+ "ZERO_GROUND_BLACK",
+ "ZERO_GROUND_WHITE",
+ "RED",
+ "RED_T",
+ "RED_TT",
+ "RED_ORANGE",
+ "RED_ORANGE_T",
+ "RED_ORANGE_TT",
+ "ORANGE",
+ "ORANGE_T",
+ "ORANGE_TT",
+ "ORANGE_YELLOW",
+ "ORANGE_YELLOW_T",
+ "ORANGE_YELLOW_TT",
+ "YELLOW",
+ "YELLOW_T",
+ "YELLOW_TT",
+ "YELLOW_GREEN",
+ "YELLOW_GREEN_T",
+ "YELLOW_GREEN_TT",
+ "GREEN",
+ "GREEN_T",
+ "GREEN_TT",
+ "GREEN_CYAN",
+ "GREEN_CYAN_T",
+ "GREEN_CYAN_TT",
+ "CYAN",
+ "CYAN_T",
+ "CYAN_TT",
+ "CYAN_BLUE",
+ "CYAN_BLUE_T",
+ "CYAN_BLUE_TT",
+ "BLUE",
+ "BLUE_T",
+ "BLUE_TT",
+ "BLUE_MAGENTA",
+ "BLUE_MAGENTA_T",
+ "BLUE_MAGENTA_TT",
+ "MAGENTA",
+ "MAGENTA_T",
+ "MAGENTA_TT",
+ "MAGENTA_RED",
+ "MAGENTA_RED_T",
+ "MAGENTA_RED_TT",
+ "BROWN",
+ "BROWN_T",
+ "BROWN_TT",
+ "WHITE",
+ "WHITE_T",
+ "WHITE_TT",
+ "GREY",
+ "GREY_T",
+ "GREY_TT",
+ "BLACK",
+ "BLACK_T",
+ "BLACK_TT",
+ "GOLD",
+ "GOLD_T",
+ "GOLD_TT",
+ "SILVER",
+ "SILVER_T",
+ "SILVER_TT",
+ "BRONZE",
+ "BRONZE_T",
+ "BRONZE_TT",
+ "TEST0",
+ "TEST0_T",
+ "TEST0_TT",
+ "TEST1",
+ "TEST1_T",
+ "TEST1_TT",
+ "TEST2",
+ "TEST2_T",
+ "TEST2_TT",
+ "TEST3",
+ "TEST3_T",
+ "TEST3_TT",
+ "TEST4",
+ "TEST4_T",
+ "TEST4_TT",
+ "TEST5",
+ "TEST5_T",
+ "TEST5_TT",
+ "TEST6",
+ "TEST6_T",
+ "TEST6_TT",
+ "TEST7",
+ "TEST7_T",
+ "TEST7_TT",
+ "TEST8",
+ "TEST8_T",
+ "TEST8_TT",
+ };
+
+ return tab[ kcl_flag > N_KCL_FLAG && kcl_flag < NN_KCL_FLAG
+ ? kcl_flag - N_KCL_FLAG : 0 ];
+};
+
+
+//
+///////////////////////////////////////////////////////////////////////////////
+/////////////////////////// GetFlagGroupName() ////////////////////////////
+///////////////////////////////////////////////////////////////////////////////
+
+ccp GetFlagGroupName ( uint kcl_flag )
+{
+ static ccp tab[] =
+ {
+ "unknown",
+ "kmp_ckpt_warning",
+ "kmp_ckpt_warning_t",
+ "kmp_ckpt_warning_tt",
+ "kmp_ckpt_lap",
+ "kmp_ckpt_lap_t",
+ "kmp_ckpt_lap_tt",
+ "kmp_ckpt_mandatory",
+ "kmp_ckpt_mandatory_t",
+ "kmp_ckpt_mandatory_tt",
+ "kmp_ckpt_mandatory5",
+ "kmp_ckpt_mandatory5_t",
+ "kmp_ckpt_mandatory5_tt",
+ "kmp_ckpt_etc",
+ "kmp_ckpt_etc_t",
+ "kmp_ckpt_etc_tt",
+ "kmp_ckpt_tie_lt",
+ "kmp_ckpt_tie_rt",
+ "kmp_ckpt_tie_group_lt",
+ "kmp_ckpt_tie_group_rt",
+ "kmp_ckpt_tie_next_lt",
+ "kmp_ckpt_tie_next_rt",
+ "kmp_ckpt_jgpt",
+ "kmp_jgpt",
+ "kmp_jgpt_area",
+ "kmp_ktpt",
+ "kmp_ktpt_area",
+ "kmp_enpt",
+ "kmp_enpt_single",
+ "kmp_enpt_tie_bi",
+ "kmp_enpt_tie_next",
+ "kmp_enpt_tie_prev",
+ "kmp_enpt_dispatch",
+ "kmp_itpt",
+ "kmp_itpt_single",
+ "kmp_itpt_tie_bi",
+ "kmp_itpt_tie_next",
+ "kmp_itpt_tie_prev",
+ "kmp_itpt_dispatch",
+ "kmp_cnpt_landing",
+ "kmp_cnpt_way",
+ "kmp_area_arrow",
+ "kmp_area_border",
+ "kmp_poti0",
+ "kmp_poti1",
+ "kmp_poti2",
+ "kmp_poti3",
+ "kmp_itembox",
+ "kmp_itembox_enemy",
+ "kmp_itembox_player",
+ "kmp_itemroute",
+ "kmp_itemroute_enemy",
+ "kmp_itemroute_player",
+ "kmp_kinoko_green",
+ "kmp_kinoko_red",
+ "kmp_bridge",
+ "kmp_dokan",
+ "kmp_karehayama",
+ "kmp_obakeblock",
+ "kmp_tree_crown",
+ "kmp_tree_trunk",
+ "kmp_woodbox",
+ "kmp_coin_start",
+ "kmp_coin_respawn",
+ "kmp_coin_invalid",
+ "kmp_solid_object",
+ "kmp_solid_route",
+ "kmp_deco_object",
+ "kmp_zero_ground_black",
+ "kmp_zero_ground_white",
+ "red",
+ "red_t",
+ "red_tt",
+ "red_orange",
+ "red_orange_t",
+ "red_orange_tt",
+ "orange",
+ "orange_t",
+ "orange_tt",
+ "orange_yellow",
+ "orange_yellow_t",
+ "orange_yellow_tt",
+ "yellow",
+ "yellow_t",
+ "yellow_tt",
+ "yellow_green",
+ "yellow_green_t",
+ "yellow_green_tt",
+ "green",
+ "green_t",
+ "green_tt",
+ "green_cyan",
+ "green_cyan_t",
+ "green_cyan_tt",
+ "cyan",
+ "cyan_t",
+ "cyan_tt",
+ "cyan_blue",
+ "cyan_blue_t",
+ "cyan_blue_tt",
+ "blue",
+ "blue_t",
+ "blue_tt",
+ "blue_magenta",
+ "blue_magenta_t",
+ "blue_magenta_tt",
+ "magenta",
+ "magenta_t",
+ "magenta_tt",
+ "magenta_red",
+ "magenta_red_t",
+ "magenta_red_tt",
+ "brown",
+ "brown_t",
+ "brown_tt",
+ "white",
+ "white_t",
+ "white_tt",
+ "grey",
+ "grey_t",
+ "grey_tt",
+ "black",
+ "black_t",
+ "black_tt",
+ "gold",
+ "gold_t",
+ "gold_tt",
+ "silver",
+ "silver_t",
+ "silver_tt",
+ "bronze",
+ "bronze_t",
+ "bronze_tt",
+ "test0",
+ "test0_t",
+ "test0_tt",
+ "test1",
+ "test1_t",
+ "test1_tt",
+ "test2",
+ "test2_t",
+ "test2_tt",
+ "test3",
+ "test3_t",
+ "test3_tt",
+ "test4",
+ "test4_t",
+ "test4_tt",
+ "test5",
+ "test5_t",
+ "test5_tt",
+ "test6",
+ "test6_t",
+ "test6_tt",
+ "test7",
+ "test7_t",
+ "test7_tt",
+ "test8",
+ "test8_t",
+ "test8_tt",
+ };
+
+ return tab[ kcl_flag > N_KCL_FLAG && kcl_flag < NN_KCL_FLAG
+ ? kcl_flag - N_KCL_FLAG : 0 ];
+};
+
+
+//
+///////////////////////////////////////////////////////////////////////////////
+/////////////////////////// kcl_color_key_tab[] ///////////////////////////
+///////////////////////////////////////////////////////////////////////////////
+
+const KeywordTab_t kcl_color_key_tab[] =
+{
+ { KCL_FLAG_BLACK, "BLACK", 0, 1 },
+ { KCL_FLAG_BLUE, "BLUE", 0, 1 },
+ { KCL_FLAG_BLUE_MAGENTA, "BLUE-MAGENTA", "BLUEMAGENTA", 1 },
+ { KCL_FLAG_BLUE_MAGENTA, "MAGENTA-BLUE", "MAGENTABLUE", 1 },
+ { KCL_FLAG_BRONZE, "BRONZE", 0, 1 },
+ { KCL_FLAG_BROWN, "BROWN", 0, 1 },
+ { KCL_FLAG_CYAN, "CYAN", 0, 1 },
+ { KCL_FLAG_CYAN_BLUE, "CYAN-BLUE", "CYANBLUE", 1 },
+ { KCL_FLAG_CYAN_BLUE, "BLUE-CYAN", "BLUECYAN", 1 },
+ { KCL_FLAG_GOLD, "GOLD", 0, 1 },
+ { KCL_FLAG_GREEN, "GREEN", 0, 1 },
+ { KCL_FLAG_GREEN_CYAN, "GREEN-CYAN", "GREENCYAN", 1 },
+ { KCL_FLAG_GREEN_CYAN, "CYAN-GREEN", "CYANGREEN", 1 },
+ { KCL_FLAG_GREY, "GREY", 0, 1 },
+ { KCL_FLAG_MAGENTA, "MAGENTA", 0, 1 },
+ { KCL_FLAG_MAGENTA_RED, "MAGENTA-RED", "MAGENTARED", 1 },
+ { KCL_FLAG_MAGENTA_RED, "RED-MAGENTA", "REDMAGENTA", 1 },
+ { KCL_FLAG_ORANGE, "ORANGE", 0, 1 },
+ { KCL_FLAG_ORANGE_YELLOW, "ORANGE-YELLOW", "ORANGEYELLOW", 1 },
+ { KCL_FLAG_ORANGE_YELLOW, "YELLOW-ORANGE", "YELLOWORANGE", 1 },
+ { KCL_FLAG_RED, "RED", 0, 1 },
+ { KCL_FLAG_RED_ORANGE, "RED-ORANGE", "REDORANGE", 1 },
+ { KCL_FLAG_RED_ORANGE, "ORANGE-RED", "ORANGERED", 1 },
+ { KCL_FLAG_SILVER, "SILVER", 0, 1 },
+ { KCL_FLAG_TEST0, "TEST0", 0, 1 },
+ { KCL_FLAG_TEST1, "TEST1", 0, 1 },
+ { KCL_FLAG_TEST2, "TEST2", 0, 1 },
+ { KCL_FLAG_TEST3, "TEST3", 0, 1 },
+ { KCL_FLAG_TEST4, "TEST4", 0, 1 },
+ { KCL_FLAG_TEST5, "TEST5", 0, 1 },
+ { KCL_FLAG_TEST6, "TEST6", 0, 1 },
+ { KCL_FLAG_TEST7, "TEST7", 0, 1 },
+ { KCL_FLAG_TEST8, "TEST8", 0, 1 },
+ { KCL_FLAG_WHITE, "WHITE", 0, 1 },
+ { KCL_FLAG_YELLOW, "YELLOW", 0, 1 },
+ { KCL_FLAG_YELLOW_GREEN, "YELLOW-GREEN", "YELLOWGREEN", 1 },
+ { KCL_FLAG_YELLOW_GREEN, "GREEN-YELLOW", "GREENYELLOW", 1 },
+ {0,0,0,0}
+};
+
+
+//
+///////////////////////////////////////////////////////////////////////////////
+////////////////////////////////// E N D //////////////////////////////////
+///////////////////////////////////////////////////////////////////////////////
+