X-Git-Url: https://harrygodden.com/git/?a=blobdiff_plain;f=entity.h;h=e8b9d411a91d04452e5e7b58216bfacb714b9297;hb=872ad3e040f22df357929d3778a955ae8c4ac52b;hp=7d6fabfbdeaf909e71a12d7abf53a205c4e2a7c8;hpb=926a64f679a23d8b0f3594d73405d2486c398a59;p=carveJwlIkooP6JGAAIwe30JlM.git diff --git a/entity.h b/entity.h index 7d6fabf..e8b9d41 100644 --- a/entity.h +++ b/entity.h @@ -16,12 +16,12 @@ typedef struct volume_particles volume_particles; typedef struct volume_trigger volume_trigger; 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; +typedef struct ent_skateshop ent_skateshop; enum entity_alias{ k_ent_none = 0, @@ -35,7 +35,8 @@ enum entity_alias{ k_ent_marker = 8, k_ent_font = 9, k_ent_font_variant= 10, - k_ent_traffic = 11 + k_ent_traffic = 11, + k_ent_skateshop = 12 }; static u32 mdl_entity_id_type( u32 entity_id ) @@ -48,10 +49,10 @@ static u32 mdl_entity_id_id( u32 entity_id ) return entity_id & 0x0000ffff; } -struct ent_index{ - u32 type, - index; -}; +static u32 mdl_entity_id( u32 type, u32 index ) +{ + return (type & 0xfffff)<<16 | (index & 0xfffff); +} enum entity_function{ k_ent_function_trigger, @@ -184,7 +185,7 @@ struct ent_volume{ m4x3f to_world, to_local; u32 type; - ent_index target; + u32 target; union{ volume_trigger trigger; @@ -209,6 +210,13 @@ struct ent_marker{ u32 pstr_alias; }; +struct ent_skateshop{ + mdl_transform transform; + u32 id_display, + id_info, + id_rack; +}; + struct ent_traffic{ mdl_transform transform; u32 submesh_start, @@ -266,4 +274,15 @@ struct ent_glyph{ indice_count; }; + +typedef struct ent_call ent_call; +struct ent_call{ + u32 id, function; + void *data; +}; + +#include "world.h" + +VG_STATIC void entity_call( world_instance *world, ent_call *call ); + #endif /* ENTITY_H */