aboutsummaryrefslogtreecommitdiff
path: root/project/src/db-kcl.h
diff options
context:
space:
mode:
authorroot <root@dc13.lemmi>2020-07-21 10:00:46 +0200
committerroot <root@dc13.lemmi>2020-07-21 10:00:46 +0200
commit1192c4575ea7afdf38e3fa0df4587a08620af11e (patch)
tree6910a62487c282d0840d2e668aa7eb40b7c8a3fd /project/src/db-kcl.h
parent76de8a89f7c1d1b4522eb66e8f89d248e8c1781f (diff)
SZS v2.18a
Diffstat (limited to '')
-rw-r--r--project/src/db-kcl.h310
1 files changed, 310 insertions, 0 deletions
diff --git a/project/src/db-kcl.h b/project/src/db-kcl.h
new file mode 100644
index 0000000..ff8f7ff
--- /dev/null
+++ b/project/src/db-kcl.h
@@ -0,0 +1,310 @@
+
+//
+///////////////////////////////////////////////////////////////////////////////
+////// This file is created by a script. Modifications will be lost! //////
+///////////////////////////////////////////////////////////////////////////////
+
+#ifndef SZS_DB_KCL_H
+#define SZS_DB_KCL_H 1
+
+#include "types.h"
+
+
+//
+///////////////////////////////////////////////////////////////////////////////
+//////////////////////////// enum kcl_attrib_t ////////////////////////////
+///////////////////////////////////////////////////////////////////////////////
+
+typedef enum kcl_attrib_t
+{
+
+ KCLT_C_ROAD = 0x00001, // normal road
+ KCLT_C_OFFROAD = 0x00002, // offroad
+ KCLT_C_FAST = 0x00004, // boost and trick
+ KCLT_C_HALFPIPE = 0x00008, // halfpipe
+ KCLT_C_MOVING = 0x00010, // moving terrain
+ KCLT_C_WATER = 0x00020, // shallow water
+ KCLT_C_CANNON = 0x00040, // cannon activator
+ KCLT_C_WALL = 0x00080, // wall
+ KCLT_C_FALL = 0x00100, // fall or out of bounds
+ KCLT_C_EFFECT = 0x00200, // sound trigger and other effects
+ KCLT_C_ITEM = 0x00400, // for items only
+ KCLT_C_UNKNOWN = 0x00800, // unknown type
+ KCLT_M_CLASS = 0x00fff, // mask of classes
+
+ KCLT_BORDER = 0x01000, // road or wall
+ KCLT_DRIVE = 0x02000, // is driveable
+ KCLT_BOOST = 0x04000, // boost
+ KCLT_TRICK = 0x08000, // trickable
+ KCLT_SOUND = 0x10000, // sound effect
+ KCLT_ITEM = 0x20000, // special for items
+ KCLT_UNKNOWN = 0x40000, // unknown
+ KCLT_M_FEATURES = 0x7f000, // mask of base features
+
+ KCLT_NONE = 0x00000, // none set
+ KCLT_M_ALL = 0x7ffff // all flags of above
+
+} kcl_attrib_t;
+
+///////////////////////////////////////////////////////////////////////////////
+
+#define N_KCL_CLASS 12
+#define N_KCL_TYPE 0x20
+#define N_KCL_ATTRIB 19
+#define N_KCL_FLAG 0x10000
+#define N_KCL_AUTO_FLAGS 200
+#define N_KCL_USER_FLAGS 200
+#define N_KCL_COLORS 272
+
+#define IS_KCL_TYPE(f,t) ( (f) < N_KCL_FLAG && ((f)&0x1f) == (t) )
+#define GET_KCL_TYPE(f) ( (f) < N_KCL_FLAG ? (f)&0x1f : -1 )
+
+enum
+{
+ KCL_FLAG_UNKNOWN = N_KCL_FLAG,
+
+ KCL_FLAG_CKPT_WARNING,
+ KCL_FLAG_CKPT_WARNING_T,
+ KCL_FLAG_CKPT_WARNING_TT,
+ KCL_FLAG_CKPT_LC,
+ KCL_FLAG_CKPT_LC_T,
+ KCL_FLAG_CKPT_LC_TT,
+ KCL_FLAG_CKPT_MD,
+ KCL_FLAG_CKPT_MD_T,
+ KCL_FLAG_CKPT_MD_TT,
+ KCL_FLAG_CKPT_MD5,
+ KCL_FLAG_CKPT_MD5_T,
+ KCL_FLAG_CKPT_MD5_TT,
+ KCL_FLAG_CKPT_ETC,
+ KCL_FLAG_CKPT_ETC_T,
+ KCL_FLAG_CKPT_ETC_TT,
+ KCL_FLAG_CKPT_TIE_LT,
+ KCL_FLAG_CKPT_TIE_RT,
+ KCL_FLAG_CKPT_TIE_GROUP_LT,
+ KCL_FLAG_CKPT_TIE_GROUP_RT,
+ KCL_FLAG_CKPT_TIE_NEXT_LT,
+ KCL_FLAG_CKPT_TIE_NEXT_RT,
+ KCL_FLAG_CKPT_JGPT,
+ KCL_FLAG_JGPT,
+ KCL_FLAG_JGPT_AREA,
+ KCL_FLAG_KTPT,
+ KCL_FLAG_KTPT_AREA,
+ KCL_FLAG_ENPT,
+ KCL_FLAG_ENPT_SINGLE,
+ KCL_FLAG_ENPT_TIE_BI,
+ KCL_FLAG_ENPT_TIE_NEXT,
+ KCL_FLAG_ENPT_TIE_PREV,
+ KCL_FLAG_ENPT_DISPATCH,
+ KCL_FLAG_ITPT,
+ KCL_FLAG_ITPT_SINGLE,
+ KCL_FLAG_ITPT_TIE_BI,
+ KCL_FLAG_ITPT_TIE_NEXT,
+ KCL_FLAG_ITPT_TIE_PREV,
+ KCL_FLAG_ITPT_DISPATCH,
+ KCL_FLAG_CNPT_LANDING,
+ KCL_FLAG_CNPT_WAY,
+ KCL_FLAG_AREA_ARROW,
+ KCL_FLAG_AREA_BORDER,
+ KCL_FLAG_POTI0,
+ KCL_FLAG_POTI1,
+ KCL_FLAG_POTI2,
+ KCL_FLAG_POTI3,
+ KCL_FLAG_ITEMBOX,
+ KCL_FLAG_ITEMBOX_ENEMY,
+ KCL_FLAG_ITEMBOX_PLAYER,
+ KCL_FLAG_ITEMROUTE,
+ KCL_FLAG_ITEMROUTE_ENEMY,
+ KCL_FLAG_ITEMROUTE_PLAYER,
+ KCL_FLAG_KINOKO_GREEN,
+ KCL_FLAG_KINOKO_RED,
+ KCL_FLAG_BRIDGE,
+ KCL_FLAG_DOKAN,
+ KCL_FLAG_KAREHAYAMA,
+ KCL_FLAG_OBAKEBLOCK,
+ KCL_FLAG_TREE_CROWN,
+ KCL_FLAG_TREE_TRUNK,
+ KCL_FLAG_WOODBOX,
+ KCL_FLAG_COIN_START,
+ KCL_FLAG_COIN_RESPAWN,
+ KCL_FLAG_COIN_INVALID,
+ KCL_FLAG_SOLIDOBJ,
+ KCL_FLAG_SOLID_ROUTE,
+ KCL_FLAG_DECORATION,
+ KCL_FLAG_ZERO_GROUND_BLACK,
+ KCL_FLAG_ZERO_GROUND_WHITE,
+ KCL_FLAG_RED,
+ KCL_FLAG_RED_T,
+ KCL_FLAG_RED_TT,
+ KCL_FLAG_RED_ORANGE,
+ KCL_FLAG_RED_ORANGE_T,
+ KCL_FLAG_RED_ORANGE_TT,
+ KCL_FLAG_ORANGE,
+ KCL_FLAG_ORANGE_T,
+ KCL_FLAG_ORANGE_TT,
+ KCL_FLAG_ORANGE_YELLOW,
+ KCL_FLAG_ORANGE_YELLOW_T,
+ KCL_FLAG_ORANGE_YELLOW_TT,
+ KCL_FLAG_YELLOW,
+ KCL_FLAG_YELLOW_T,
+ KCL_FLAG_YELLOW_TT,
+ KCL_FLAG_YELLOW_GREEN,
+ KCL_FLAG_YELLOW_GREEN_T,
+ KCL_FLAG_YELLOW_GREEN_TT,
+ KCL_FLAG_GREEN,
+ KCL_FLAG_GREEN_T,
+ KCL_FLAG_GREEN_TT,
+ KCL_FLAG_GREEN_CYAN,
+ KCL_FLAG_GREEN_CYAN_T,
+ KCL_FLAG_GREEN_CYAN_TT,
+ KCL_FLAG_CYAN,
+ KCL_FLAG_CYAN_T,
+ KCL_FLAG_CYAN_TT,
+ KCL_FLAG_CYAN_BLUE,
+ KCL_FLAG_CYAN_BLUE_T,
+ KCL_FLAG_CYAN_BLUE_TT,
+ KCL_FLAG_BLUE,
+ KCL_FLAG_BLUE_T,
+ KCL_FLAG_BLUE_TT,
+ KCL_FLAG_BLUE_MAGENTA,
+ KCL_FLAG_BLUE_MAGENTA_T,
+ KCL_FLAG_BLUE_MAGENTA_TT,
+ KCL_FLAG_MAGENTA,
+ KCL_FLAG_MAGENTA_T,
+ KCL_FLAG_MAGENTA_TT,
+ KCL_FLAG_MAGENTA_RED,
+ KCL_FLAG_MAGENTA_RED_T,
+ KCL_FLAG_MAGENTA_RED_TT,
+ KCL_FLAG_BROWN,
+ KCL_FLAG_BROWN_T,
+ KCL_FLAG_BROWN_TT,
+ KCL_FLAG_WHITE,
+ KCL_FLAG_WHITE_T,
+ KCL_FLAG_WHITE_TT,
+ KCL_FLAG_GREY,
+ KCL_FLAG_GREY_T,
+ KCL_FLAG_GREY_TT,
+ KCL_FLAG_BLACK,
+ KCL_FLAG_BLACK_T,
+ KCL_FLAG_BLACK_TT,
+ KCL_FLAG_GOLD,
+ KCL_FLAG_GOLD_T,
+ KCL_FLAG_GOLD_TT,
+ KCL_FLAG_SILVER,
+ KCL_FLAG_SILVER_T,
+ KCL_FLAG_SILVER_TT,
+ KCL_FLAG_BRONZE,
+ KCL_FLAG_BRONZE_T,
+ KCL_FLAG_BRONZE_TT,
+ KCL_FLAG_TEST0,
+ KCL_FLAG_TEST0_T,
+ KCL_FLAG_TEST0_TT,
+ KCL_FLAG_TEST1,
+ KCL_FLAG_TEST1_T,
+ KCL_FLAG_TEST1_TT,
+ KCL_FLAG_TEST2,
+ KCL_FLAG_TEST2_T,
+ KCL_FLAG_TEST2_TT,
+ KCL_FLAG_TEST3,
+ KCL_FLAG_TEST3_T,
+ KCL_FLAG_TEST3_TT,
+ KCL_FLAG_TEST4,
+ KCL_FLAG_TEST4_T,
+ KCL_FLAG_TEST4_TT,
+ KCL_FLAG_TEST5,
+ KCL_FLAG_TEST5_T,
+ KCL_FLAG_TEST5_TT,
+ KCL_FLAG_TEST6,
+ KCL_FLAG_TEST6_T,
+ KCL_FLAG_TEST6_TT,
+ KCL_FLAG_TEST7,
+ KCL_FLAG_TEST7_T,
+ KCL_FLAG_TEST7_TT,
+ KCL_FLAG_TEST8,
+ KCL_FLAG_TEST8_T,
+ KCL_FLAG_TEST8_TT,
+
+ NN_KCL_FLAG,
+
+ KCL_FLAG_AUTO_0 = NN_KCL_FLAG,
+ KCL_FLAG_AUTO_MAX = KCL_FLAG_AUTO_0 + N_KCL_AUTO_FLAGS - 1,
+ KCL_FLAG_USER_0 = KCL_FLAG_AUTO_MAX + 1,
+ KCL_FLAG_USER_MAX = KCL_FLAG_USER_0 + N_KCL_USER_FLAGS - 1,
+ NNN_KCL_FLAG
+};
+
+ccp GetFlagName ( uint kcl_flag );
+ccp GetFlagGroupName ( uint kcl_flag );
+
+static inline bool IsAutoFlagKCL ( uint flag )
+ { return flag >= KCL_FLAG_AUTO_0 && flag <= KCL_FLAG_AUTO_MAX; }
+
+static inline bool IsUserFlagKCL ( uint flag )
+ { return flag >= KCL_FLAG_USER_0 && flag <= KCL_FLAG_USER_MAX; }
+
+
+//
+///////////////////////////////////////////////////////////////////////////////
+//////////////////////// struct kcl_attrib_name_t /////////////////////////
+///////////////////////////////////////////////////////////////////////////////
+
+typedef struct kcl_attrib_name_t
+{
+ kcl_attrib_t attrib; // attribute
+ ccp name; // name of attribute
+
+} kcl_attrib_name_t;
+
+extern const kcl_attrib_name_t kcl_attrib_name[N_KCL_ATTRIB+1];
+
+
+//
+///////////////////////////////////////////////////////////////////////////////
+/////////////////////////// struct kcl_class_t ////////////////////////////
+///////////////////////////////////////////////////////////////////////////////
+
+typedef struct kcl_class_t
+{
+ u16 cls; // class id, index to self
+ u16 ncol; // number of colors in mtl
+ u16 color_index; // first index into kcl_colors[]
+ ccp name; // short name
+ ccp info; // description
+ kcl_attrib_t attrib; // attributes
+
+} kcl_class_t;
+
+extern const kcl_class_t kcl_class[N_KCL_CLASS+1];
+extern const u8 kcl_color[N_KCL_COLORS][4];
+
+
+//
+///////////////////////////////////////////////////////////////////////////////
+//////////////////////////// struct kcl_type_t ////////////////////////////
+///////////////////////////////////////////////////////////////////////////////
+
+typedef struct kcl_type_t
+{
+ u16 type; // type id, index to self
+ u16 cls; // class index
+ ccp info; // description
+ kcl_attrib_t attrib; // attributes
+
+} kcl_type_t;
+
+extern const kcl_type_t kcl_type[N_KCL_TYPE+1];
+
+
+//
+///////////////////////////////////////////////////////////////////////////////
+/////////////////////////// kcl_color_key_tab[] ///////////////////////////
+///////////////////////////////////////////////////////////////////////////////
+
+extern const KeywordTab_t kcl_color_key_tab[];
+
+
+//
+///////////////////////////////////////////////////////////////////////////////
+////////////////////////////////// E N D //////////////////////////////////
+///////////////////////////////////////////////////////////////////////////////
+
+#endif // SZS_DB_KCL_H