31class GravPathNode :
public Entity
42 CLASS_PROTOTYPE(GravPathNode);
44 void SetSpeed(
Event *ev);
45 void SetMaxSpeed(
Event *ev);
46 void SetRadius(
Event *ev);
47 void CreatePath(
Event *ev);
48 void Activate(
Event *ev);
49 void Deactivate(
Event *ev);
53 float Radius(
void) {
return radius; };
55 void Archive(
Archiver& arc)
override;
58inline void GravPathNode::Archive(
Archiver& arc)
62 arc.ArchiveFloat(&speed);
63 arc.ArchiveFloat(&radius);
64 arc.ArchiveBoolean(&headnode);
65 arc.ArchiveBoolean(&active);
66 arc.ArchiveFloat(&max_speed);
71class GravPath :
public Listener
82 CLASS_PROTOTYPE(GravPath);
91 Vector ClosestPointOnPath(
Vector pos,
Entity& ent,
float *bestdist,
float *speed,
float *radius);
92 float DistanceAlongPath(
Vector pos,
float *speed);
93 Vector PointAtDistance(
Vector pos,
float dist, qboolean is_player,
float *max_distance);
94 void DrawPath(
float r,
float g,
float b);
99 void Archive(
Archiver& arc)
override;
107inline void GravPath::Archive(
Archiver& arc)
109 GravPathNodePtr *tempPtr;
112 Listener::Archive(arc);
117 num = pathlist.NumObjects();
119 arc.ArchiveInteger(&num);
121 pathlist.Resize(num);
124 for (i = 1; i <= num; i++) {
125 tempPtr = pathlist.AddressOfObjectAt(i);
126 arc.ArchiveSafePointer(tempPtr);
129 arc.ArchiveFloat(&pathlength);
130 arc.ArchiveSafePointer(&from);
131 arc.ArchiveSafePointer(&to);
132 arc.ArchiveInteger(&nextnode);
133 arc.ArchiveVector(&mins);
134 arc.ArchiveVector(&maxs);
135 arc.ArchiveVector(&origin);
136 arc.ArchiveBoolean(&force);
150 Vector CalculateGravityPull(
Entity& ent,
Vector position, qboolean *force,
float *max_speed);
151 void DrawGravPaths(
void);
152 void Archive(
Archiver& arc)
override;
155inline void GravPathManager::Archive(
Archiver& arc)
163 num = pathList.NumObjects();
167 arc.ArchiveInteger(&num);
168 for (i = 1; i <= num; i++) {
170 ptr = pathList.ObjectAt(i);
174 arc.ArchiveObject(ptr);
176 pathList.AddObject(ptr);
Definition container.h:85
Definition listener.h:246
Definition gravpath.h:140