X-Git-Url: https://harrygodden.com/git/?a=blobdiff_plain;f=model.h;h=6f99fb61d77044d489147a9fa9a9a32b97569a3a;hb=2e4531dfd7bd0d9a0776fda1a62653806d85eb3b;hp=95d6676e4d8589c512fd86a6a93436651250f28c;hpb=34a8df54eb962f3ad2e036355041f5bc5cabe5a0;p=carveJwlIkooP6JGAAIwe30JlM.git diff --git a/model.h b/model.h index 95d6676..6f99fb6 100644 --- a/model.h +++ b/model.h @@ -29,21 +29,21 @@ typedef struct mdl_context mdl_context; enum classtype { - k_classtype_none = 0, - k_classtype_gate = 1, - k_classtype_spawn = 3, - k_classtype_water = 4, - k_classtype_route_node = 8, - k_classtype_route = 9, - k_classtype_bone = 10, - k_classtype_skeleton = 11, - k_classtype_skin = 12, - k_classtype_audio = 14, - k_classtype_trigger = 100, - k_classtype_logic_achievement = 101, - k_classtype_logic_relay = 102, - k_classtype_point_light = 200, - k_classtype_nonlocal_gate = 300 + 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 @@ -59,7 +59,8 @@ enum mdl_surface_prop { k_surface_prop_concrete = 0, k_surface_prop_wood = 1, - k_surface_prop_grass = 2 + k_surface_prop_grass = 2, + k_surface_prop_tiles = 3 }; enum material_flag @@ -194,35 +195,7 @@ struct mdl_file_header * Entity data structures */ -struct classtype_gate -{ - u32 target; - v3f dims; -}; - -struct classtype_spawn -{ - u32 pstr_alias; -}; - -struct classtype_water -{ - u32 temp; -}; - -struct classtype_route_node -{ - u32 target, target1; -}; - -struct classtype_route -{ - u32 id_start; - u32 pstr_name; - v3f colour; -}; - -struct classtype_bone +struct classtype_bone /* 001 */ { u32 flags, ik_target, @@ -234,7 +207,7 @@ struct classtype_bone float conet; }; -struct classtype_skeleton +struct classtype_skeleton /* 002 */ { u32 channels, ik_count, @@ -243,27 +216,57 @@ struct classtype_skeleton anim_count; }; -struct classtype_skin +struct classtype_skin /* 003 */ { u32 skeleton; }; -struct classtype_trigger +struct classtype_world_light /* 004 */ +{ + enum light_type + { + k_light_type_point, + k_light_type_spot, + k_light_type_point_nighttime_only, + k_light_type_spot_nighttime_only + } + type; + + v4f colour; /* RGB, Energy */ + float angle, range; +}; + + +struct classtype_gate /* 100, 101 */ { u32 target; + v3f dims; }; -struct classtype_logic_relay +struct classtype_spawn /* 200 */ { - u32 targets[4]; + u32 pstr_alias; }; -struct classtype_logic_achievement +struct classtype_water /* 300 */ { + u32 temp; +}; + +struct classtype_route /* 400 */ +{ + u32 id_start; u32 pstr_name; + v3f colour; }; -struct classtype_audio +struct classtype_route_node /* 401 */ +{ + u32 target, target1; +}; + + +struct classtype_audio /* 500 */ { u32 pstr_file, flags; @@ -271,9 +274,22 @@ struct classtype_audio float volume; }; -struct classtype_point_light +struct classtype_audio_sprite /* 501 */ { - v4f colour; /* RGB, Energy */ + u32 audio, + category; + + float probability; +}; + +struct classtype_volume_audio /* 600 */ +{ + u32 category; +}; + +struct classtype_volume_event /* 601 */ +{ + u32 event; }; #pragma pack(pop)