‪Black Ops 3 Source Code Explorer  0.1
‪An script explorer for Black Ops 3 by ZeRoY
objpoints_shared.gsc
Go to the documentation of this file.
1 #using scripts\codescripts\struct;
2 
3 #using scripts\shared\callbacks_shared;
4 #using scripts\shared\system_shared;
5 
6 #insert scripts\shared\shared.gsh;
7 
8 #precache( "material", "objpoint_default" );
9 
10 #namespace objpoints;
11 
12 ‪REGISTER_SYSTEM( "objpoints", &‪__init__, undefined )
13 
14 function ‪__init__()
15 {
16  level.objPointNames = [];
17  level.objPoints = [];
18 
19  if ( ‪IS_TRUE(level.splitscreen) )
20  {
21  level.objPointSize = 15;
22  }
23  else
24  {
25  level.objPointSize = 8;
26  }
27 
28  level.objpoint_alpha_default = 1.0;
29  level.objPointScale = 1.0;
30 }
31 
32 function ‪create( ‪name, origin, team, shader, alpha, scale )
33 {
34  assert( isdefined( level.teams[team] ) || team == "all" );
35 
36  objPoint = ‪get_by_name( ‪name );
37 
38  if ( isdefined( objPoint ) )
39  ‪objpoints::delete( objPoint );
40 
41  if ( !isdefined( shader ) )
42  shader = "objpoint_default";
43 
44  if ( !isdefined( scale ) )
45  scale = 1.0;
46 
47  if ( team != "all" )
48  objPoint = newTeamHudElem( team );
49  else
50  objPoint = newHudElem();
51 
52  objPoint.name = ‪name;
53  objPoint.x = origin[0];
54  objPoint.y = origin[1];
55  objPoint.z = origin[2];
56  objPoint.team = team;
57  objPoint.isFlashing = false;
58  objPoint.isShown = true;
59  objPoint.fadeWhenTargeted = true;
60  objPoint.archived = false;
61 
62  objPoint setShader( shader, level.objPointSize, level.objPointSize );
63  objPoint setWaypoint( true );
64 
65  if ( isdefined( alpha ) )
66  objPoint.alpha = alpha;
67  else
68  objPoint.alpha = level.objpoint_alpha_default;
69  objPoint.baseAlpha = objPoint.alpha;
70 
71  objPoint.index = level.objPointNames.size;
72  level.objPoints[‪name] = objPoint;
73  level.objPointNames[level.objPointNames.size] = ‪name;
74 
75  return objPoint;
76 }
77 
78 
79 function delete( oldObjPoint )
80 {
81  assert( level.objPoints.size == level.objPointNames.size );
82 
83  if ( level.objPoints.size == 1 )
84  {
85  assert( level.objPointNames[0] == oldObjPoint.name );
86  assert( isdefined( level.objPoints[oldObjPoint.name] ) );
87 
88  level.objPoints = [];
89  level.objPointNames = [];
90  oldObjPoint ‪destroy();
91  return;
92  }
93 
94  newIndex = oldObjPoint.index;
95  oldIndex = (level.objPointNames.size - 1);
96 
97  objPoint = ‪get_by_index( oldIndex );
98  level.objPointNames[newIndex] = objPoint.name;
99  objPoint.index = newIndex;
100 
101  level.objPointNames[oldIndex] = undefined;
102  level.objPoints[oldObjPoint.name] = undefined;
103 
104  oldObjPoint ‪destroy();
105 }
106 
107 
108 function ‪update_origin( origin )
109 {
110  if ( self.x != origin[0] )
111  self.x = origin[0];
112 
113  if ( self.y != origin[1] )
114  self.y = origin[1];
115 
116  if ( self.z != origin[2] )
117  self.z = origin[2];
118 }
119 
120 
121 function ‪set_origin_by_name( ‪name, origin )
122 {
123  objPoint = ‪get_by_name( ‪name );
124  objPoint ‪update_origin( origin );
125 }
126 
127 
129 {
130  if ( isdefined( level.objPoints[‪name] ) )
131  return level.objPoints[‪name];
132  else
133  return undefined;
134 }
135 
136 function ‪get_by_index( index )
137 {
138  if ( isdefined( level.objPointNames[index] ) )
139  return level.objPoints[level.objPointNames[index]];
140  else
141  return undefined;
142 }
143 
145 {
146  self endon("stop_flashing_thread");
147 
148  if ( self.isFlashing )
149  return;
150 
151  self.isFlashing = true;
152 
153  while ( self.isFlashing )
154  {
155  self fadeOverTime( 0.75 );
156  self.alpha = 0.35 * self.baseAlpha;
157  wait ( 0.75 );
158 
159  self fadeOverTime( 0.75 );
160  self.alpha = self.baseAlpha;
161  wait ( 0.75 );
162  }
163 
164  self.alpha = self.baseAlpha;
165 }
166 
168 {
169  if ( !self.isFlashing )
170  return;
171 
172  self.isFlashing = false;
173 }
‪delete
‪function delete(oldObjPoint)
Definition: objpoints_shared.gsc:79
‪get_by_index
‪function get_by_index(index)
Definition: objpoints_shared.gsc:136
‪start_flashing
‪function start_flashing()
Definition: objpoints_shared.gsc:144
‪stop_flashing
‪function stop_flashing()
Definition: objpoints_shared.gsc:167
‪IS_TRUE
‪#define IS_TRUE(__a)
Definition: shared.gsh:251
‪get_by_name
‪function get_by_name(name)
Definition: objpoints_shared.gsc:128
‪create
‪function create(name, origin, team, shader, alpha, scale)
Definition: objpoints_shared.gsc:32
‪REGISTER_SYSTEM
‪#define REGISTER_SYSTEM(__sys, __func_init_preload, __reqs)
Definition: shared.gsh:204
‪__init__
‪function __init__()
Definition: objpoints_shared.gsc:14
‪destroy
‪function destroy(watcher, owner)
Definition: _decoy.gsc:108
‪update_origin
‪function update_origin(origin)
Definition: objpoints_shared.gsc:108
‪name
‪class GroundFx name
‪set_origin_by_name
‪function set_origin_by_name(name, origin)
Definition: objpoints_shared.gsc:121