[Half-Life AMXX] / specinfo.sma Repository:
ViewVC logotype

Diff of /specinfo.sma

Parent Directory Parent Directory | Revision Log Revision Log | View Patch Patch

revision 30, Wed Nov 21 21:53:07 2007 UTC revision 36, Sun Jan 6 00:44:12 2008 UTC
# Line 1  Line 1 
1  /*  /*
2  SpecInfo v1.3  SpecInfo v1.3.1
3  Copyright (C) 2007 Ian (Juan) Cammarata  Copyright (C) 2007-2008 Ian (Juan) Cammarata
4    
5  This program is free software: you can redistribute it and/or modify  This program is free software: you can redistribute it and/or modify
6  it under the terms of the GNU Affero General Public License as  it under the terms of the GNU Affero General Public License as
# Line 16  Line 16 
16  along with this program.  If not, see <http://www.gnu.org/licenses/>.  along with this program.  If not, see <http://www.gnu.org/licenses/>.
17  --------------------------------------------------------------------------------  --------------------------------------------------------------------------------
18  http://ian.cammarata.us  http://ian.cammarata.us
19  Nov 21 11:13  Jan 05 17:39
20    
21    
22  Description:  Description:
# Line 61  Line 61 
61  Change Log:  Change Log:
62  Key (+ added | - removed | c changed | f fixed)  Key (+ added | - removed | c changed | f fixed)
63    
64    v1.3.1 (Jan 5, 2008)
65    f: Eliminated a bug introduced in 1.3 as well as the occasional index out of bounds error it caused.
66    
67  v1.3 (Nov 21, 2007)  v1.3 (Nov 21, 2007)
68  +: Command "/showkeys" to view your own keys.  +: Command "/showkeys" to view your own keys.
69  c: Minor code optimizations.  c: Minor code optimizations.
# Line 88  Line 91 
91  #include <engine>  #include <engine>
92  #include <fakemeta>  #include <fakemeta>
93    
94  new const VERSION[ ] = "1.3"  new const VERSION[ ] = "1.3.1"
95  new const TRKCVAR[ ] = "specinfo_version"  new const TRKCVAR[ ] = "specinfo_version"
96  #define IMMUNE_FLAG ADMIN_IMMUNITY  #define IMMUNE_FLAG ADMIN_IMMUNITY
97    
# Line 96  Line 99 
99  #define LIST_STR_LEN 610  #define LIST_STR_LEN 610
100  #define BOTH_STR_LEN KEYS_STR_LEN+LIST_STR_LEN  #define BOTH_STR_LEN KEYS_STR_LEN+LIST_STR_LEN
101    
 //cvar pointers  
 new p_enabled, p_list_enabled, p_keys_enabled, p_list_default, p_keys_default  
 new p_red, p_grn, p_blu, p_immunity  
   
 //data arrays  
 new cl_keys[33], cl_prefs[33]  
 new keys_string[33][KEYS_STR_LEN+1], list_string[33][LIST_STR_LEN+1]  
 new cl_names[33][21], spec_ids[33][32]  
   
102  //cl_prefs constants  //cl_prefs constants
103  #define FL_LIST    (1<<0)  #define FL_LIST    (1<<0)
104  #define FL_KEYS    (1<<1)  #define FL_KEYS    (1<<1)
105  #define FL_OWNKEYS (1<<2)  #define FL_OWNKEYS (1<<2)
106  #define FL_HIDE    (1<<3)  #define FL_HIDE    (1<<3)
107    
108    //cvar pointers
109    new p_enabled, p_list_enabled, p_keys_enabled, p_list_default, p_keys_default;
110    new p_red, p_grn, p_blu, p_immunity;
111    
112    //data arrays
113    new cl_keys[33], cl_prefs[33];
114    new keys_string[33][KEYS_STR_LEN + 1], list_string[33][LIST_STR_LEN + 1]
115    new cl_names[33][21], spec_ids[33][33];
116    
117  public plugin_init( )  public plugin_init( )
118  {  {
119          register_plugin( "SpecInfo", VERSION, "Ian Cammarata" )          register_plugin( "SpecInfo", VERSION, "Ian Cammarata" );
120          register_cvar( TRKCVAR, VERSION, FCVAR_SERVER )          register_cvar( TRKCVAR, VERSION, FCVAR_SERVER );
121          set_cvar_string( TRKCVAR, VERSION )          set_cvar_string( TRKCVAR, VERSION );
122    
123          p_enabled = register_cvar( "si_enabled", "1" )          p_enabled = register_cvar( "si_enabled", "1" );
124          p_list_enabled = register_cvar( "si_list_enabled", "1" )          p_list_enabled = register_cvar( "si_list_enabled", "1" );
125          p_keys_enabled = register_cvar( "si_keys_enabled", "1" )          p_keys_enabled = register_cvar( "si_keys_enabled", "1" );
126          p_list_default = register_cvar( "si_list_default", "1" )          p_list_default = register_cvar( "si_list_default", "1" );
127          p_keys_default = register_cvar( "si_keys_default", "1" )          p_keys_default = register_cvar( "si_keys_default", "1" );
128          p_immunity = register_cvar( "si_immunity", "1" )          p_immunity = register_cvar( "si_immunity", "1" );
129          p_red = register_cvar( "si_msg_r", "45" )          p_red = register_cvar( "si_msg_r", "45" );
130          p_grn = register_cvar( "si_msg_g", "89" )          p_grn = register_cvar( "si_msg_g", "89" );
131          p_blu = register_cvar( "si_msg_b", "116" )          p_blu = register_cvar( "si_msg_b", "116" );
132    
133          register_clcmd( "say /speclist", "toggle_list", _, "Toggle spectator list." )          register_clcmd( "say /speclist", "toggle_list", _, "Toggle spectator list." );
134          register_clcmd( "say /speckeys", "toggle_keys", _, "Toggle spectator keys." )          register_clcmd( "say /speckeys", "toggle_keys", _, "Toggle spectator keys." );
135          register_clcmd( "say /showkeys", "toggle_ownkeys", _, "Toggle viewing own keys." )          register_clcmd( "say /showkeys", "toggle_ownkeys", _, "Toggle viewing own keys." );
136          register_clcmd( "say /spechide", "toggle_hide", IMMUNE_FLAG, "Admins toggle being hidden from list." )          register_clcmd( "say /spechide", "toggle_hide", IMMUNE_FLAG, "Admins toggle being hidden from list." );
137    
138          set_task( 1.0, "list_update", _, _, _, "b" )          set_task( 1.0, "list_update", _, _, _, "b" );
139          set_task( 0.1, "keys_update", _, _, _, "b" )          set_task( 0.1, "keys_update", _, _, _, "b" );
140    
141          register_dictionary( "specinfo.txt" )          register_dictionary( "specinfo.txt" );
142  }  }
143    
144  public client_connect( id )  public client_connect( id )
145  {  {
146          cl_prefs[id] = 0          cl_prefs[id] = 0;
147          if( !is_user_bot( id ) )          if( !is_user_bot( id ) )
148          {          {
149                  if( get_pcvar_num( p_list_default ) ) cl_prefs[id] |= FL_LIST                  if( get_pcvar_num( p_list_default ) ) cl_prefs[id] |= FL_LIST;
150                  if( get_pcvar_num( p_keys_default ) ) cl_prefs[id] |= FL_KEYS                  if( get_pcvar_num( p_keys_default ) ) cl_prefs[id] |= FL_KEYS;
151          }          }
152          get_user_name( id, cl_names[id], 20 )          get_user_name( id, cl_names[id], 20 );
153          return PLUGIN_CONTINUE          return PLUGIN_CONTINUE;
154  }  }
155    
156  public client_infochanged( id )  public client_infochanged( id )
157  {  {
158          get_user_name( id, cl_names[id], 20 )          get_user_name( id, cl_names[id], 20 );
159          return PLUGIN_CONTINUE          return PLUGIN_CONTINUE;
160  }  }
161    
162  public list_update( )  public list_update( )
163  {  {
164          if( get_pcvar_num( p_enabled ) && get_pcvar_num ( p_list_enabled ) )          if( get_pcvar_num( p_enabled ) && get_pcvar_num ( p_list_enabled ) )
165    {    {
166                  new players[32], num, id, id2, i, j                  new players[32], num, id, id2, i, j;
167                  for( i=1; i<33; i++ ) spec_ids[i][0] = 0                  for( i = 1; i < 33; i++ ) spec_ids[i][0] = 0;
168                  get_players( players, num, "bch" )  
169                    get_players( players, num, "bch" );
170                  for( i=0; i<num; i++ )                  for( i=0; i<num; i++ )
171      {      {
172                          id = players[i]                          id = players[i];
173                          if( !( get_user_flags( id ) & IMMUNE_FLAG && get_pcvar_num( p_immunity ) && cl_prefs[id] & FL_HIDE ) )                          if( !( get_user_flags( id ) & IMMUNE_FLAG && get_pcvar_num( p_immunity ) && cl_prefs[id] & FL_HIDE ) )
174                          {                          {
175                                  id2 = pev( id, pev_iuser2 )                                  id2 = pev( id, pev_iuser2 );
176                                  if( id2 )                                  if( id2 )
177                                  {                                  {
178                                          spec_ids[ id2 - 1 ][ 0 ]++                                          spec_ids[ id2 ][ 0 ]++;
179                                          spec_ids[ id2 - 1 ][ spec_ids[ id2 - 1 ][ 0 ] ] = id                                          spec_ids[ id2 ][ spec_ids[ id2 ][ 0 ] ] = id;
180                                  }                                  }
181                          }                          }
182                  }                  }
183                  new tmplist[ LIST_STR_LEN + 1 ], tmpstr[41]                  new tmplist[ LIST_STR_LEN + 1 ], tmpstr[41];
184                  new count, namelen, tmpname[21]                  new count, namelen, tmpname[21];
185                  for( i=1; i<33; i++ )                  for( i=1; i<33; i++ )
186      {      {
187                          count = spec_ids[i][0]                          count = spec_ids[i][0];
188                          if( count )                          if( count )
189                          {                          {
190                                  namelen = ( LIST_STR_LEN - 10 ) / count                                  namelen = ( LIST_STR_LEN - 10 ) / count;
191                                  clamp( namelen, 10, 20 )                                  clamp( namelen, 10, 20 );
192                                  format( tmpname, namelen, cl_names[i] )                                  format( tmpname, namelen, cl_names[i] );
193                                  formatex( tmplist, LIST_STR_LEN - 1, "^t^t^t^t^t^t^t^t^t^t^t^t^t^t^t^t^t^t(%d) %s %s:^n", count, "%L", tmpname)                                  formatex( tmplist, LIST_STR_LEN - 1, "^t^t^t^t^t^t^t^t^t^t^t^t^t^t^t^t^t^t(%d) %s %s:^n", count, "%L", tmpname);
194                                  for( j=1; j<=count; j++ )                                  for( j=1; j<=count; j++ )
195          {          {
196                                          format( tmpname, namelen, cl_names[spec_ids[i][j]])                                          format( tmpname, namelen, cl_names[spec_ids[i][j]]);
197                                          formatex( tmpstr, 40, "^t^t^t^t^t^t^t^t^t^t^t^t^t^t^t^t^t^t^t^t^t^t^t^t^t%s", tmpname )                                          formatex( tmpstr, 40, "^t^t^t^t^t^t^t^t^t^t^t^t^t^t^t^t^t^t^t^t^t^t^t^t^t%s", tmpname );
198                                          if( strlen( tmplist ) + strlen( tmpstr ) + ( 11 - j ) < ( LIST_STR_LEN - 1 ) )                                          if( strlen( tmplist ) + strlen( tmpstr ) + ( 11 - j ) < ( LIST_STR_LEN - 1 ) )
199                                                  format( tmplist, LIST_STR_LEN-10, "%s%s^n", tmplist, tmpstr )                                                  format( tmplist, LIST_STR_LEN - 10, "%s%s^n", tmplist, tmpstr );
200                                          else                                          else
201            {            {
202                                                  format( tmplist, LIST_STR_LEN, "%s...^n", tmplist )                                                  format( tmplist, LIST_STR_LEN, "%s...^n", tmplist );
203                                                  break                                                  break;
204                                          }                                          }
205                                  }                                  }
206                                  if( count < 10 )                                  if( count < 10 )
207            format( tmplist, LIST_STR_LEN,            format( tmplist, LIST_STR_LEN,
208                                                  "%s^n^n^t^t^t^t^t^t^t^t^t^t^t^t^t^t^t^t^t^t^t^t^t^t^t^t^t^t^t^t^t^tSpecInfo v%s^n",                                                  "%s^n^n^t^t^t^t^t^t^t^t^t^t^t^t^t^t^t^t^t^t^t^t^t^t^t^t^t^t^t^t^t^tSpecInfo v%s^n",
209                                                  tmplist, VERSION                                                  tmplist, VERSION
210                                          )                                          );
211                                  for( j+=0; j<10; j++ )                                  for( j+=0; j<10; j++ )
212            format( tmplist, LIST_STR_LEN, "%s%s", tmplist, "^n" )            format( tmplist, LIST_STR_LEN, "%s%s", tmplist, "^n" );
213                                  list_string[i] = tmplist                                  list_string[i] = tmplist;
214                          }                          }
215                  }                  }
216                  get_players( players, num, "ch" )                  get_players( players, num, "ch" );
217                  for( i=0; i<num; i++ ) clmsg( players[i] )                  for( i=0; i<num; i++ ) clmsg( players[i] );
218          }          }
219          return PLUGIN_HANDLED          return PLUGIN_HANDLED;
220  }  }
221    
222  public keys_update( )  public keys_update( )
223  {  {
224          if( !get_pcvar_num( p_enabled ) && !get_pcvar_num( p_keys_enabled ) ) return          if( !get_pcvar_num( p_enabled ) && !get_pcvar_num( p_keys_enabled ) ) return;
225    
226          new players[32], num, id, i          new players[32], num, id, i;
227          get_players( players, num, "a" )          get_players( players, num, "a" );
228          for( i = 0; i < num; i++ )          for( i = 0; i < num; i++ )
229    {    {
230                  id = players[i]                  id = players[i];
231                  formatex( keys_string[id], KEYS_STR_LEN, " ^n^t^t%s^t^t^t%s^n^t%s %s %s^t^t%s",                  formatex( keys_string[id], KEYS_STR_LEN, " ^n^t^t%s^t^t^t%s^n^t%s %s %s^t^t%s",
232                          cl_keys[id] & IN_FORWARD ? "W" : " .",                          cl_keys[id] & IN_FORWARD ? "W" : " .",
233                          "%L",                          "%L",
# Line 231  Line 235 
235                          cl_keys[id] & IN_BACK ? "S" : ".",                          cl_keys[id] & IN_BACK ? "S" : ".",
236                          cl_keys[id] & IN_MOVERIGHT ? "D" : ".",                          cl_keys[id] & IN_MOVERIGHT ? "D" : ".",
237                          "%L"                          "%L"
238                  )                  );
239    
240                  //Flags stored in string to fill translation char in clmsg function                  //Flags stored in string to fill translation char in clmsg function
241                  keys_string[id][0] = 0                  keys_string[id][0] = 0;
242                  if( cl_keys[id] & IN_JUMP ) keys_string[id][0] |= IN_JUMP                  if( cl_keys[id] & IN_JUMP ) keys_string[id][0] |= IN_JUMP;
243                  if( cl_keys[id] & IN_DUCK ) keys_string[id][0] |= IN_DUCK                  if( cl_keys[id] & IN_DUCK ) keys_string[id][0] |= IN_DUCK;
244    
245                  cl_keys[id] = 0                  cl_keys[id] = 0;
246          }          }
247    
248          new id2          new id2;
249          get_players( players, num, "ch" )          get_players( players, num, "ch" );
250          for( i=0; i<num; i++ )          for( i=0; i<num; i++ )
251    {    {
252                  id = players[i]                  id = players[i];
253                  if( is_user_alive( id ) )                  if( is_user_alive( id ) )
254                  {                  {
255                          if( cl_prefs[id] & FL_OWNKEYS ) clmsg( id )                          if( cl_prefs[id] & FL_OWNKEYS ) clmsg( id );
256                  }                  }
257                  else                  else
258                  {                  {
259                          id2 = pev( id, pev_iuser2 )                          id2 = pev( id, pev_iuser2 );
260                          if( cl_prefs[id] & FL_KEYS && id2 && id2 != id ) clmsg( id )                          if( cl_prefs[id] & FL_KEYS && id2 && id2 != id ) clmsg( id );
261                  }                  }
262          }          }
263    
# Line 263  Line 267 
267  {  {
268          if( get_pcvar_num( p_enabled ) && get_pcvar_num( p_keys_enabled ) )          if( get_pcvar_num( p_enabled ) && get_pcvar_num( p_keys_enabled ) )
269    {    {
270                  new players[32], num, id                  new players[32], num, id;
271                  get_players( players, num, "a" )                  get_players( players, num, "a" );
272                  for( new i = 0; i < num; i++ )                  for( new i = 0; i < num; i++ )
273                  {                  {
274                          id = players[i]                          id = players[i];
275                          if( get_user_button( id ) & IN_FORWARD )                          if( get_user_button( id ) & IN_FORWARD )
276                                  cl_keys[id] |= IN_FORWARD                                  cl_keys[id] |= IN_FORWARD;
277                          if( get_user_button( id ) & IN_BACK )                          if( get_user_button( id ) & IN_BACK )
278                                  cl_keys[id] |= IN_BACK                                  cl_keys[id] |= IN_BACK;
279                          if( get_user_button( id ) & IN_MOVELEFT )                          if( get_user_button( id ) & IN_MOVELEFT )
280                                  cl_keys[id] |= IN_MOVELEFT                                  cl_keys[id] |= IN_MOVELEFT;
281                          if( get_user_button( id ) & IN_MOVERIGHT )                          if( get_user_button( id ) & IN_MOVERIGHT )
282                                  cl_keys[id] |= IN_MOVERIGHT                                  cl_keys[id] |= IN_MOVERIGHT;
283                          if( get_user_button( id ) & IN_DUCK )                          if( get_user_button( id ) & IN_DUCK )
284                                  cl_keys[id] |= IN_DUCK                                  cl_keys[id] |= IN_DUCK;
285                          if( get_user_button( id ) & IN_JUMP )                          if( get_user_button( id ) & IN_JUMP )
286                                  cl_keys[id] |= IN_JUMP                                  cl_keys[id] |= IN_JUMP;
287                  }                  }
288          }          }
289          return PLUGIN_CONTINUE          return PLUGIN_CONTINUE
# Line 287  Line 291 
291    
292  public clmsg( id )  public clmsg( id )
293  {  {
294          if( !id ) return          if( !id ) return;
295    
296          new prefs = cl_prefs[id]          new prefs = cl_prefs[id];
297    
298          new bool:show_own = false          new bool:show_own = false;
299          if( is_user_alive( id ) && prefs & FL_OWNKEYS ) show_own = true          if( is_user_alive( id ) && prefs & FL_OWNKEYS ) show_own = true;
300    
301          if( is_user_alive( id ) && !show_own )          if( is_user_alive( id ) && !show_own )
302    {    {
# Line 310  Line 314 
314          0.1, /*fade in*/          0.1, /*fade in*/
315          0.1, /*fade out*/          0.1, /*fade out*/
316          3 /*chan*/          3 /*chan*/
317                          )                          );
318                          show_hudmessage( id, list_string[id], id, "SPECTATING" )                          show_hudmessage( id, list_string[id], id, "SPECTATING" );
319                  }                  }
320          }          }
321          else          else
322    {    {
323                  new id2                  new id2;
324                  if( show_own ) id2 = id                  if( show_own ) id2 = id;
325                  else id2 = pev( id, pev_iuser2 )                  else id2 = pev( id, pev_iuser2 );
326                  if( !id2 ) return                  if( !id2 ) return;
327    
328                  if( prefs & FL_LIST || prefs & FL_KEYS || show_own )                  if( prefs & FL_LIST || prefs & FL_KEYS || show_own )
329      {      {
# Line 335  Line 339 
339          0.1, /*fade in*/          0.1, /*fade in*/
340          0.1, /*fade out*/          0.1, /*fade out*/
341          3 /*chan*/          3 /*chan*/
342                          )                          );
343                          new msg[BOTH_STR_LEN+1]                          new msg[BOTH_STR_LEN + 1];
344                          if( prefs & FL_LIST && get_pcvar_num( p_list_enabled ) && spec_ids[id2][0] )                          if( prefs & FL_LIST && get_pcvar_num( p_list_enabled ) && spec_ids[id2][0] )
345          formatex(msg,BOTH_STR_LEN,list_string[id2],id,"SPECTATING")          formatex(msg,BOTH_STR_LEN,list_string[id2],id,"SPECTATING");
346                          else msg ="^n^n^n^n^n^n^n^n^n^n^n^n"                          else msg ="^n^n^n^n^n^n^n^n^n^n^n^n";
347                          if( get_pcvar_num( p_keys_enabled ) && ( prefs & FL_KEYS || show_own ) )                          if( get_pcvar_num( p_keys_enabled ) && ( prefs & FL_KEYS || show_own ) )
348        {        {
349          format( msg, BOTH_STR_LEN, "%s%s", msg, keys_string[id2][1] )          format( msg, BOTH_STR_LEN, "%s%s", msg, keys_string[id2][1] );
350          format( msg, BOTH_STR_LEN, msg,          format( msg, BOTH_STR_LEN, msg,
351                                          id, keys_string[id2][0] & IN_JUMP ? "JUMP" : "LAME",                                          id, keys_string[id2][0] & IN_JUMP ? "JUMP" : "LAME",
352                                          id, keys_string[id2][0] & IN_DUCK ? "DUCK" : "LAME"                                          id, keys_string[id2][0] & IN_DUCK ? "DUCK" : "LAME"
353                                  )                                  );
354        }        }
355                          show_hudmessage( id, msg )                          show_hudmessage( id, msg );
356                  }                  }
357          }          }
358  }  }
# Line 367  Line 371 
371                  0.0, /*fade in*/                  0.0, /*fade in*/
372                  0.0, /*fade out*/                  0.0, /*fade out*/
373                  -1 /*chan*/                  -1 /*chan*/
374          )          );
375  }  }
376    
377  public toggle_list( id )  public toggle_list( id )
378  {  {
379          set_hudmsg_flg_notify( )          set_hudmsg_flg_notify( );
380          cl_prefs[id] ^= FL_LIST          cl_prefs[id] ^= FL_LIST;
381          show_hudmessage( id, "%L", id, cl_prefs[id] & FL_LIST ? "SPEC_LIST_ENABLED" : "SPEC_LIST_DISABLED" )          show_hudmessage( id, "%L", id, cl_prefs[id] & FL_LIST ? "SPEC_LIST_ENABLED" : "SPEC_LIST_DISABLED" );
382          return PLUGIN_HANDLED          return PLUGIN_HANDLED;
383  }  }
384    
385  public toggle_keys( id )  public toggle_keys( id )
386  {  {
387          set_hudmsg_flg_notify( )          set_hudmsg_flg_notify( );
388          cl_prefs[id] ^= FL_KEYS          cl_prefs[id] ^= FL_KEYS;
389          show_hudmessage( id, "%L", id, cl_prefs[id] & FL_KEYS ? "SPEC_KEYS_ENABLED" : "SPEC_KEYS_DISABLED" )          show_hudmessage( id, "%L", id, cl_prefs[id] & FL_KEYS ? "SPEC_KEYS_ENABLED" : "SPEC_KEYS_DISABLED" );
390          return PLUGIN_HANDLED          return PLUGIN_HANDLED;
391  }  }
392    
393  public toggle_ownkeys( id )  public toggle_ownkeys( id )
394  {  {
395          set_hudmsg_flg_notify( )          set_hudmsg_flg_notify( );
396          cl_prefs[id] ^= FL_OWNKEYS          cl_prefs[id] ^= FL_OWNKEYS;
397          show_hudmessage( id, "%L", id, cl_prefs[id] & FL_OWNKEYS ? "SPEC_OWNKEYS_ENABLED" : "SPEC_OWNKEYS_DISABLED" )          show_hudmessage( id, "%L", id, cl_prefs[id] & FL_OWNKEYS ? "SPEC_OWNKEYS_ENABLED" : "SPEC_OWNKEYS_DISABLED" );
398          return PLUGIN_HANDLED          return PLUGIN_HANDLED;
399  }  }
400    
401  public toggle_hide( id, level, cid )  public toggle_hide( id, level, cid )
402  {  {
403          if( cmd_access( id, level, cid, 0 ) )          if( cmd_access( id, level, cid, 0 ) )
404          {          {
405                  set_hudmsg_flg_notify( )                  set_hudmsg_flg_notify( );
406                  cl_prefs[id] ^= FL_HIDE                  cl_prefs[id] ^= FL_HIDE;
407                  show_hudmessage( id, "%L", id, cl_prefs[id] & FL_HIDE ? "SPEC_HIDE_ENABLED" : "SPEC_HIDE_DISABLED" )                  show_hudmessage( id, "%L", id, cl_prefs[id] & FL_HIDE ? "SPEC_HIDE_ENABLED" : "SPEC_HIDE_DISABLED" );
408          }          }
409          return PLUGIN_HANDLED          return PLUGIN_HANDLED;
410  }  }

Legend:
Removed from v.30  
changed lines
  Added in v.36

Contact
ViewVC Help
Powered by ViewVC 1.0.4