+
+typedef struct mdl_vert mdl_vert;
+typedef struct mdl_submesh mdl_submesh;
+typedef struct mdl_material mdl_material;
+typedef struct mdl_node mdl_node;
+typedef struct mdl_file_header mdl_file_header;
+typedef struct mdl_animation mdl_animation;
+typedef struct mdl_keyframe mdl_keyframe;
+typedef struct mdl_texture mdl_texture;
+typedef struct mdl_context mdl_context;
+
+#define MDL_SIZE_MAX 0x1000000
+#define MDL_VERT_MAX 1000000
+#define MDL_INDICE_MAX 1000000
+#define MDL_MATERIAL_MAX 32
+#define MDL_NODE_MAX 4000
+#define MDL_SUBMESH_MAX 8000
+#define MDL_STRING_LENGTH_MAX 64
+
+enum classtype
+{
+ k_classtype_none = 000,
+ k_classtype_bone = 001,
+ k_classtype_skeleton = 002,
+ k_classtype_skin = 003,
+ k_classtype_world_light = 004,
+
+ k_classtype_gate = 100,
+ k_classtype_nonlocal_gate = 101,
+ k_classtype_spawn = 200,
+ k_classtype_water = 300,
+ k_classtype_route = 400,
+ k_classtype_route_node = 401,
+ k_classtype_audio = 500,
+ k_classtype_audio_sprite = 502,
+ k_classtype_volume_audio = 600,
+};
+
+enum mdl_shader
+{
+ k_shader_standard = 0,
+ k_shader_standard_cutout = 1,
+ k_shader_terrain_blend = 2,
+ k_shader_standard_vertex_blend = 3,
+ k_shader_water = 4
+};
+
+enum mdl_surface_prop
+{
+ k_surface_prop_concrete = 0,
+ k_surface_prop_wood = 1,
+ k_surface_prop_grass = 2,
+ k_surface_prop_tiles = 3
+};
+
+enum material_flag
+{
+ k_material_flag_skate_surface = 0x1,
+ k_material_flag_collision = 0x2,
+ k_material_flag_grow_grass = 0x4,
+ k_material_flag_grind_surface = 0x8
+};
+
+enum bone_flag
+{
+ k_bone_flag_deform = 0x1,
+ k_bone_flag_ik = 0x2,
+ k_bone_flag_collider_box = 0x4,
+ k_bone_flag_collider_capsule = 0x8,
+ k_bone_flag_collider_reserved0 = 0x10,
+ k_bone_flag_collider_reserved1 = 0x20,
+ k_bone_flag_collider_reserved2 = 0x40,
+ k_bone_flag_collider_reserved3 = 0x80,
+ k_bone_flag_collider_any = k_bone_flag_collider_box |
+ k_bone_flag_collider_capsule |
+ k_bone_flag_collider_reserved0 |
+ k_bone_flag_collider_reserved1 |
+ k_bone_flag_collider_reserved2 |
+ k_bone_flag_collider_reserved3,
+ k_bone_flag_cone_constraint = 0x100,
+ k_bone_flag_force_u32 = 0xffffffff
+};