#pragma once void SUB_NullThink(entity this); void SUB_CalcMoveDone(entity this); void SUB_CalcAngleMoveDone(entity this); spawnfunc(info_null); /* ================== SUB_Friction Applies some friction to this ================== */ .float friction; void SUB_Friction (entity this); /* ================== SUB_VanishOrRemove Makes client invisible or removes non-client ================== */ void SUB_VanishOrRemove (entity ent); void SUB_SetFade_Think (entity this); /* ================== SUB_SetFade Fade 'ent' out when time >= 'when' ================== */ void SUB_SetFade (entity ent, float when, float fadetime); /* ============= SUB_CalcMove calculate this.velocity and this.nextthink to reach dest from this.origin traveling at speed =============== */ void SUB_CalcMoveDone(entity this); .float platmovetype_turn; void SUB_CalcMove_controller_think (entity this); void SUB_CalcMove_controller_setbezier (entity controller, vector org, vector control, vector dest); void SUB_CalcMove_controller_setlinear (entity controller, vector org, vector dest); void SUB_CalcMove_Bezier (entity this, vector tcontrol, vector tdest, float tspeedtype, float tspeed, void(entity this) func); void SUB_CalcMove (entity this, vector tdest, float tspeedtype, float tspeed, void(entity this) func); void SUB_CalcMoveEnt (entity ent, vector tdest, float tspeedtype, float tspeed, void(entity this) func); /* ============= SUB_CalcAngleMove calculate this.avelocity and this.nextthink to reach destangle from this.angles rotating The calling function should make sure this.think is valid =============== */ void SUB_CalcAngleMoveDone (entity this); // FIXME: I fixed this function only for rotation around the main axes void SUB_CalcAngleMove (entity this, vector destangle, float tspeedtype, float tspeed, void(entity this) func); void SUB_CalcAngleMoveEnt (entity ent, vector destangle, float tspeedtype, float tspeed, void(entity this) func); /* ================== main unused but required by the engine ================== */ void main (); // Misc /* ================== traceline_antilag A version of traceline that must be used by SOLID_SLIDEBOX things that want to hit SOLID_CORPSE things with a trace attack Additionally it moves players back into the past before the trace and restores them afterward. ================== */ void tracebox_antilag_force_wz (entity source, vector v1, vector mi, vector ma, vector v2, float nomonst, entity forent, float lag, float wz); void traceline_antilag_force (entity source, vector v1, vector v2, float nomonst, entity forent, float lag); void traceline_antilag (entity source, vector v1, vector v2, float nomonst, entity forent, float lag); void tracebox_antilag (entity source, vector v1, vector mi, vector ma, vector v2, float nomonst, entity forent, float lag); void WarpZone_traceline_antilag_force (entity source, vector v1, vector v2, float nomonst, entity forent, float lag); void WarpZone_traceline_antilag (entity source, vector v1, vector v2, float nomonst, entity forent, float lag); void WarpZone_tracebox_antilag (entity source, vector v1, vector mi, vector ma, vector v2, float nomonst, entity forent, float lag); float tracebox_inverted (vector v1, vector mi, vector ma, vector v2, float nomonsters, entity forent, float stopatentity, entity ignorestopatentity); // returns the number of traces done, for benchmarking void traceline_inverted (vector v1, vector v2, float nomonsters, entity forent, float stopatentity, entity ignorestopatentity); /* ================== findbetterlocation Returns a point at least 12 units away from walls (useful for explosion animations, although the blast is performed where it really happened) Ripped from DPMod ================== */ vector findbetterlocation (vector org, float mindist); /* ================== Angc used for animations ================== */ float angc (float a1, float a2); .string lodtarget1; .string lodtarget2; .string lodmodel1; .string lodmodel2; .float lodmodelindex0; .float lodmodelindex1; .float lodmodelindex2; .float loddistance1; .float loddistance2; bool LOD_customize(entity this, entity client); void LOD_uncustomize(entity this); void LODmodel_attach(entity this); void ApplyMinMaxScaleAngles(entity e); void SetBrushEntityModel(entity this); void SetBrushEntityModelNoLOD(entity this); /* ================ InitTrigger ================ */ void SetMovedir(entity this); void InitTrigger(entity this); void InitSolidBSPTrigger(entity this); bool InitMovingBrushTrigger(entity this);