1 #using scripts\codescripts\struct;
3 #using scripts\shared\callbacks_shared;
4 #using scripts\shared\system_shared;
6 #insert scripts\shared\shared.gsh;
22 foreach( team
in level.teams )
24 level.spectateOverride[team] = spawnstruct();
30 level endon (
"game_ended" );
32 for ( index = 0; index < level.players.size; index++ )
39 for ( index = 0; index < level.players.size; index++ )
41 if ( !isdefined(level.players[index]) )
44 if ( level.players[index] ==
self )
47 if ( !(
self IsPlayerOnSameMachine( level.players[index] )) )
50 team = level.players[index].sessionteam;
53 if ( team !=
"spectator" )
57 return self.sessionteam;
62 for ( index = 0 ; index < level.players.size ; index++ )
64 if ( !isdefined( level.players[index] ) )
67 if ( level.players[index] ==
self )
70 if ( !(
self IsPlayerOnSameMachine( level.players[index] ) ) )
73 if ( IsAlive( level.players[index] ) )
82 foreach( team
in level.teams )
84 self allowSpectateTeam( team, allow );
90 foreach( team
in level.teams )
92 if ( team == skip_team )
94 self allowSpectateTeam( team, allow );
100 team =
self.sessionteam;
102 if ( team ==
"spectator" )
106 if (
self IsSplitScreen() && !level.splitscreen )
111 if ( team ==
"spectator" )
114 self allowSpectateTeam(
"freelook",
false );
115 self allowSpectateTeam(
"none",
true );
116 self allowSpectateTeam(
"localplayers",
true );
121 spectateType = level.spectateType;
123 switch( spectateType )
127 self allowSpectateTeam(
"freelook",
false );
128 self allowSpectateTeam(
"none",
true );
129 self allowSpectateTeam(
"localplayers",
false );
136 self allowSpectateTeam(
"none",
false );
137 self allowSpectateTeam(
"freelook",
false );
138 self allowSpectateTeam(
"localplayers",
true );
143 if ( !level.teamBased )
146 self allowSpectateTeam(
"none",
true );
147 self allowSpectateTeam(
"freelook",
false );
148 self allowSpectateTeam(
"localplayers",
true );
150 else if ( isdefined( team ) && isdefined( level.teams[team] ) )
152 self allowSpectateTeam( team,
true );
154 self allowSpectateTeam(
"freelook",
false );
155 self allowSpectateTeam(
"none",
false );
156 self allowSpectateTeam(
"localplayers",
true );
161 self allowSpectateTeam(
"freelook",
false );
162 self allowSpectateTeam(
"none",
false );
163 self allowSpectateTeam(
"localplayers",
true );
168 self allowSpectateTeam(
"freelook",
true );
169 self allowSpectateTeam(
"none",
true );
170 self allowSpectateTeam(
"localplayers",
true );
174 if ( isdefined( team ) && isdefined( level.teams[team] ) )
176 if ( isdefined(level.spectateOverride[team].allowFreeSpectate) )
177 self allowSpectateTeam(
"freelook",
true );
179 if (isdefined(level.spectateOverride[team].allowEnemySpectate))
190 if ( !
self IsSplitScreen() )
193 for ( index = 0; index < level.players.size; index++ )
195 if ( !isdefined(level.players[index]) )
198 if ( level.players[index] ==
self )
201 if ( !(
self IsPlayerOnSameMachine( level.players[index] )) )