]> git.xonotic.org Git - xonotic/xonotic-data.pk3dir.git/commitdiff
Make use of ClientConnect hook in Arena and CA
authorterencehill <piuntn@gmail.com>
Fri, 4 Jan 2013 18:53:47 +0000 (19:53 +0100)
committerterencehill <piuntn@gmail.com>
Fri, 4 Jan 2013 18:53:47 +0000 (19:53 +0100)
qcsrc/server/cl_client.qc
qcsrc/server/mutators/gamemode_arena.qc
qcsrc/server/mutators/gamemode_ca.qc
qcsrc/server/mutators/mutator_superspec.qc

index da4ed37a9b803858b779cec27d025d5e1522661e..b59d98164222aa79da03796a7dfeb3caa655372f 100644 (file)
@@ -1461,13 +1461,6 @@ void ClientConnect (void)
        else
                stuffcmd(self, "set _teams_available 0\n");
 
-       if(g_arena || g_ca)
-       {
-               self.classname = "observer";
-               if(g_arena)
-                       Spawnqueue_Insert(self);
-       }
-
        attach_entcs();
 
        bot_relinkplayerlist();
@@ -1543,13 +1536,11 @@ void ClientConnect (void)
        CSQCMODEL_AUTOINIT();
 
        self.model_randomizer = random();
-    
-    if(clienttype(self) != CLIENTTYPE_REAL)
-        return;
-        
-    sv_notice_join();
-    
-    MUTATOR_CALLHOOK(ClientConnect);
+
+       if(clienttype(self) == CLIENTTYPE_REAL)
+               sv_notice_join();
+
+       MUTATOR_CALLHOOK(ClientConnect);
 }
 /*
 =============
index 21576bdf6038bc5b08b969d7577c15810c6e88c0..132b116bb7d3f0a42f6ab436604da09711748836 100644 (file)
@@ -182,6 +182,13 @@ MUTATOR_HOOKFUNCTION(arena_PutClientInServer)
        return 1;
 }
 
+MUTATOR_HOOKFUNCTION(arena_ClientConnect)
+{
+       self.classname = "observer";
+       Spawnqueue_Insert(self);
+       return 1;
+}
+
 MUTATOR_HOOKFUNCTION(arena_PlayerSpawn)
 {
        Spawnqueue_Remove(self);
@@ -245,6 +252,7 @@ MUTATOR_DEFINITION(gamemode_arena)
        MUTATOR_HOOK(reset_map_players, arena_reset_map_players, CBC_ORDER_ANY);
        MUTATOR_HOOK(MakePlayerObserver, arena_MakePlayerObserver, CBC_ORDER_ANY);
        MUTATOR_HOOK(PutClientInServer, arena_PutClientInServer, CBC_ORDER_ANY);
+       MUTATOR_HOOK(ClientConnect, arena_ClientConnect, CBC_ORDER_ANY);
        MUTATOR_HOOK(PlayerSpawn, arena_PlayerSpawn, CBC_ORDER_ANY);
        MUTATOR_HOOK(PlayerPreThink, arena_PlayerPreThink, CBC_ORDER_ANY);
        MUTATOR_HOOK(ForbidPlayerScore_Clear, arena_ForbidPlayerScore_Clear, CBC_ORDER_ANY);
index d8ecf4c481a9220132d0f03d8f3bf873b2e54749..528a8812a56445e085ef8970b2ade2ec00fc50d1 100644 (file)
@@ -165,6 +165,12 @@ MUTATOR_HOOKFUNCTION(ca_reset_map_players)
        return 1;
 }
 
+MUTATOR_HOOKFUNCTION(ca_ClientConnect)
+{
+       self.classname = "observer";
+       return 1;
+}
+
 MUTATOR_HOOKFUNCTION(ca_reset_map_global)
 {
        allowed_to_spawn = TRUE;
@@ -222,6 +228,7 @@ MUTATOR_DEFINITION(gamemode_ca)
        MUTATOR_HOOK(PlayerSpawn, ca_PlayerSpawn, CBC_ORDER_ANY);
        MUTATOR_HOOK(PutClientInServer, ca_PutClientInServer, CBC_ORDER_ANY);
        MUTATOR_HOOK(MakePlayerObserver, ca_MakePlayerObserver, CBC_ORDER_ANY);
+       MUTATOR_HOOK(ClientConnect, ca_ClientConnect, CBC_ORDER_ANY);
        MUTATOR_HOOK(reset_map_global, ca_reset_map_global, CBC_ORDER_ANY);
        MUTATOR_HOOK(reset_map_players, ca_reset_map_players, CBC_ORDER_ANY);
        MUTATOR_HOOK(GetTeamCount, ca_GetTeamCount, CBC_ORDER_EXCLUSIVE);
index 8b6bf05a204a9f0ebe3f8ee682ffea5c9af1a782..fdf3e8a25b924c6675d36012b9535131466a6f83 100644 (file)
@@ -443,6 +443,9 @@ void superspec_hello()
 
 MUTATOR_HOOKFUNCTION(superspec_ClientConnect)
 {
+       if(clienttype(self) != CLIENTTYPE_REAL)
+               return FALSE;
+
        string fn = "superspec-local.options";
        float fh;