#pragma once #include "xash3d_types.h" #define ENT_PROP_LIST(X) \ X(0, vec3_t, origin, Vec3) \ X(1, vec3_t, angles, Vec3) \ X(2, float, pitch, Float) \ X(3, vec3_t, _light, Rgbav) \ X(4, class_name_e, classname, Classname) \ X(5, float, angle, Float) \ X(6, float, _cone, Float) \ X(7, float, _cone2, Float) \ X(8, int, _sky, Int) \ X(9, string, wad, WadList) \ X(10, string, targetname, String) \ X(11, string, target, String) \ X(12, int, style, Int) \ X(13, int_array_t, _xvk_surface_id, IntArray) \ X(14, string, _xvk_texture, String) \ X(15, int_array_t, _xvk_ent_id, IntArray) \ X(16, float, _xvk_radius, Float) \ typedef enum { Unknown = 0, Light, LightSpot, LightEnvironment, Worldspawn, Ignored, } class_name_e; #define MAX_INT_ARRAY_SIZE 64 typedef struct { int num; int values[MAX_INT_ARRAY_SIZE]; } int_array_t; typedef struct { #define DECLARE_FIELD(num, type, name, kind) type name; ENT_PROP_LIST(DECLARE_FIELD) #undef DECLARE_FIELD } entity_props_t; typedef enum { None = 0, #define DECLARE_FIELD(num, type, name, kind) Field_##name = (1<