X-Git-Url: https://harrygodden.com/git/?a=blobdiff_plain;f=entity.h;h=7d6fabfbdeaf909e71a12d7abf53a205c4e2a7c8;hb=926a64f679a23d8b0f3594d73405d2486c398a59;hp=143ad0da8428d3e49d9525ef2a30bcf8db613ae7;hpb=d6171f1c56789b2ca79efa3313fbbf74a13bda7a;p=carveJwlIkooP6JGAAIwe30JlM.git diff --git a/entity.h b/entity.h index 143ad0d..7d6fabf 100644 --- a/entity.h +++ b/entity.h @@ -18,21 +18,36 @@ typedef struct ent_volume ent_volume; typedef struct ent_audio ent_audio; typedef struct ent_index ent_index; typedef struct ent_marker ent_marker; +typedef struct ent_traffic ent_traffic; typedef struct ent_font ent_font; typedef struct ent_font_variant ent_font_variant; typedef struct ent_glyph ent_glyph; enum entity_alias{ - k_ent_gate = 1, - k_ent_spawn = 2, - k_ent_route_node = 3, - k_ent_route = 4, - k_ent_water = 5, - k_ent_volume = 6, - k_ent_audio = 7, - k_ent_marker = 8 + k_ent_none = 0, + k_ent_gate = 1, + k_ent_spawn = 2, + k_ent_route_node = 3, + k_ent_route = 4, + k_ent_water = 5, + k_ent_volume = 6, + k_ent_audio = 7, + k_ent_marker = 8, + k_ent_font = 9, + k_ent_font_variant= 10, + k_ent_traffic = 11 }; +static u32 mdl_entity_id_type( u32 entity_id ) +{ + return (entity_id & 0xffff0000) >> 16; +} + +static u32 mdl_entity_id_id( u32 entity_id ) +{ + return entity_id & 0x0000ffff; +} + struct ent_index{ u32 type, index; @@ -69,15 +84,14 @@ struct ent_light{ enum gate_type{ k_gate_type_unlinked = 0, k_gate_type_teleport = 1, - k_gate_type_nonlocal = 2 + k_gate_type_nonlocal_unlinked = 2, + k_gate_type_nonlocel = 3 }; struct ent_gate{ u32 type, target; - /* TODO: World index */ - v3f dimensions, co[2]; @@ -195,6 +209,17 @@ struct ent_marker{ u32 pstr_alias; }; +struct ent_traffic{ + mdl_transform transform; + u32 submesh_start, + submesh_count, + start_node, + node_count; + float speed, + t; + u32 index; /* into the path */ +}; + VG_STATIC ent_marker *ent_find_marker( mdl_context *mdl, mdl_array_ptr *arr, const char *alias ) {