1 #using scripts\codescripts\struct;
3 #using scripts\shared\callbacks_shared;
4 #using scripts\shared\system_shared;
6 #insert scripts\shared\shared.gsh;
8 #precache( "material", "objpoint_default" );
16 level.objPointNames = [];
21 level.objPointSize = 15;
25 level.objPointSize = 8;
28 level.objpoint_alpha_default = 1.0;
29 level.objPointScale = 1.0;
34 assert( isdefined( level.teams[team] ) || team ==
"all" );
38 if ( isdefined( objPoint ) )
41 if ( !isdefined( shader ) )
42 shader =
"objpoint_default";
44 if ( !isdefined( scale ) )
48 objPoint = newTeamHudElem( team );
50 objPoint = newHudElem();
52 objPoint.name =
name;
53 objPoint.x = origin[0];
54 objPoint.y = origin[1];
55 objPoint.z = origin[2];
57 objPoint.isFlashing =
false;
58 objPoint.isShown =
true;
59 objPoint.fadeWhenTargeted =
true;
60 objPoint.archived =
false;
62 objPoint setShader( shader, level.objPointSize, level.objPointSize );
63 objPoint setWaypoint(
true );
65 if ( isdefined( alpha ) )
66 objPoint.alpha = alpha;
68 objPoint.alpha = level.objpoint_alpha_default;
69 objPoint.baseAlpha = objPoint.alpha;
71 objPoint.index = level.objPointNames.size;
72 level.objPoints[
name] = objPoint;
73 level.objPointNames[level.objPointNames.size] =
name;
79 function delete( oldObjPoint )
81 assert( level.objPoints.size == level.objPointNames.size );
83 if ( level.objPoints.size == 1 )
85 assert( level.objPointNames[0] == oldObjPoint.name );
86 assert( isdefined( level.objPoints[oldObjPoint.name] ) );
89 level.objPointNames = [];
94 newIndex = oldObjPoint.index;
95 oldIndex = (level.objPointNames.size - 1);
98 level.objPointNames[newIndex] = objPoint.name;
99 objPoint.index = newIndex;
101 level.objPointNames[oldIndex] = undefined;
102 level.objPoints[oldObjPoint.name] = undefined;
110 if (
self.x != origin[0] )
113 if (
self.y != origin[1] )
116 if (
self.z != origin[2] )
130 if ( isdefined( level.objPoints[
name] ) )
131 return level.objPoints[
name];
138 if ( isdefined( level.objPointNames[index] ) )
139 return level.objPoints[level.objPointNames[index]];
146 self endon(
"stop_flashing_thread");
148 if (
self.isFlashing )
151 self.isFlashing =
true;
153 while (
self.isFlashing )
155 self fadeOverTime( 0.75 );
156 self.alpha = 0.35 *
self.baseAlpha;
159 self fadeOverTime( 0.75 );
160 self.alpha =
self.baseAlpha;
164 self.alpha =
self.baseAlpha;
169 if ( !
self.isFlashing )
172 self.isFlashing =
false;