r3889 - trunk/data/qcsrc/server

DONOTREPLY at icculus.org DONOTREPLY at icculus.org
Wed Jul 23 05:22:38 EDT 2008


Author: div0
Date: 2008-07-23 05:22:30 -0400 (Wed, 23 Jul 2008)
New Revision: 3889

Modified:
   trunk/data/qcsrc/server/miscfunctions.qc
Log:
avoid findflags (minor performance gain on servers)


Modified: trunk/data/qcsrc/server/miscfunctions.qc
===================================================================
--- trunk/data/qcsrc/server/miscfunctions.qc	2008-07-23 06:38:46 UTC (rev 3888)
+++ trunk/data/qcsrc/server/miscfunctions.qc	2008-07-23 09:22:30 UTC (rev 3889)
@@ -109,11 +109,20 @@
 	}
 }
 
+string STR_PLAYER = "player";
+
+#if 0
 #define FOR_EACH_CLIENT(v) for(v = world; (v = findflags(v, flags, FL_CLIENT)) != world; )
 #define FOR_EACH_REALCLIENT(v) FOR_EACH_CLIENT(v) if(clienttype(v) == CLIENTTYPE_REAL)
-string STR_PLAYER = "player";
 #define FOR_EACH_PLAYER(v) for(v = world; (v = find(v, classname, STR_PLAYER)) != world; )
 #define FOR_EACH_REALPLAYER(v) FOR_EACH_PLAYER(v) if(clienttype(v) == CLIENTTYPE_REAL)
+#else
+#define FOR_EACH_CLIENTSLOT(v) for(v = world; (v = nextent(v)) && (num_for_edict(v) <= maxclients); )
+#define FOR_EACH_CLIENT(v) FOR_EACH_CLIENTSLOT(v) if(v.flags & FL_CLIENT)
+#define FOR_EACH_REALCLIENT(v) FOR_EACH_CLIENT(v) if(clienttype(v) == CLIENTTYPE_REAL)
+#define FOR_EACH_PLAYER(v) FOR_EACH_CLIENT(v) if(v.classname == STR_PLAYER)
+#define FOR_EACH_REALPLAYER(v) FOR_EACH_REALCLIENT(v) if(v.classname == STR_PLAYER)
+#endif
 
 // change that to actually calling strcat when running on an engine without
 // unlimited tempstrings:




More information about the nexuiz-commits mailing list