5 void Read_Effect(bool is_new);
7 void Send_Effect(entity eff, vector eff_loc, vector eff_vel, int eff_cnt);
8 void Send_Effect_(string eff_name, vector eff_loc, vector eff_vel, int eff_cnt);
11 #define particleeffectnum(e) _particleeffectnum(e.eent_eff_name)
13 void RegisterEffects();
14 const int MAX_EFFECTS = 512;
15 entity effects_ent[MAX_EFFECTS], effects_ent_first, effects_ent_last;
18 #define EFFECT(istrail, name, realname) \
19 REGISTER(RegisterEffects, EFFECT, effects_ent, EFFECT_COUNT, name, m_id, Create_Effect_Entity(realname, istrail));
20 REGISTER_REGISTRY(RegisterEffects)
23 .string eent_eff_name;
26 .vector eent_net_location;
27 .vector eent_net_velocity;
30 entity Create_Effect_Entity(string eff_name, bool eff_trail)
32 entity this = new(effect_entity);
33 this.eent_eff_name = eff_name;
34 this.eent_eff_trail = eff_trail;
38 void RegisterEffects_First()
41 #define dedi (server_is_dedicated ? "a dedicated " : "")
46 LOG_TRACEF("Beginning effect initialization on %s%s program...\n", dedi, PROGNAME);
50 void RegisterEffects_Done()
52 LOG_TRACE("Effects initialization successful!\n");
55 // NOW we actually activate the declarations
56 ACCUMULATE_FUNCTION(RegisterEffects, RegisterEffects_First);
57 EFFECT(0, NULL, string_null)
58 #include "effects.inc"
59 ACCUMULATE_FUNCTION(RegisterEffects, RegisterEffects_Done);