]> de.git.xonotic.org Git - xonotic/xonotic-data.pk3dir.git/blobdiff - qcsrc/client/main.qc
Merge branch 'master' into TimePath/waypointsprites
[xonotic/xonotic-data.pk3dir.git] / qcsrc / client / main.qc
index 9e7b8bd6859d51680edd513216a03eddf6e677dc..da485708e8e2a6c753339cdbde1f950f537b6ab7 100644 (file)
@@ -22,7 +22,6 @@
 #include "tuba.qh"
 #include "t_items.qh"
 #include "wall.qh"
-#include "waypointsprites.qh"
 
 #include "../common/vehicles/all.qh"
 
@@ -88,7 +87,6 @@ void menu_sub_null()
 }
 
 string forcefog;
-void WaypointSprite_Load();
 void ConsoleCommand_macro_init();
 void CSQC_Init(void)
 {
@@ -155,7 +153,7 @@ void CSQC_Init(void)
        CALL_ACCUMULATED_FUNCTION(RegisterHUD_Panels);
        CALL_ACCUMULATED_FUNCTION(RegisterEffects);
 
-       WaypointSprite_Load();
+       initialize_minigames();
 
        // precaches
        precache_model("null");
@@ -229,6 +227,9 @@ void Shutdown(void)
                if (!(calledhooks & HOOK_END))
                        localcmd("\ncl_hook_gameend\n");
        }
+
+       deactivate_minigame();
+       HUD_MinigameMenu_Close();
 }
 
 .float has_team;
@@ -378,6 +379,9 @@ float CSQC_InputEvent(float bInputType, float nPrimary, float nSecondary)
        if (MapVote_InputEvent(bInputType, nPrimary, nSecondary))
                return true;
 
+       if (HUD_Minigame_InputEvent(bInputType, nPrimary, nSecondary))
+               return true;
+
        if(menu_visible && menu_action)
                if(menu_action(bInputType, nPrimary, nSecondary))
                        return true;
@@ -845,6 +849,12 @@ void CSQC_Ent_Update(float bIsNewEntity)
        self.enttype = t;
        switch(t)
        {
+               case ENT_CLIENT_MUTATOR: {
+                       int mutID = ReadMutator();
+                       if (!MUTATOR_CALLHOOK(CSQC_Ent_Update, mutID, bIsNewEntity))
+                       error(sprintf("Unknown mutator type in CSQC_Ent_Update (mutID: %d, edict: %d, classname: %s)\n", mutID, num_for_edict(self), self.classname));
+                       break;
+               }
                case ENT_CLIENT_ENTCS: Ent_ReadEntCS(); break;
                case ENT_CLIENT_SCORES: Ent_ReadPlayerScore(); break;
                case ENT_CLIENT_TEAMSCORES: Ent_ReadTeamScore(); break;
@@ -853,7 +863,6 @@ void CSQC_Ent_Update(float bIsNewEntity)
                case ENT_CLIENT_LASER: Ent_Laser(); break;
                case ENT_CLIENT_NAGGER: Ent_Nagger(); break;
                case ENT_CLIENT_ELIMINATEDPLAYERS: Ent_EliminatedPlayers(); break;
-               case ENT_CLIENT_WAYPOINT: Ent_WaypointSprite(); break;
                case ENT_CLIENT_RADARLINK: Ent_RadarLink(); break;
                case ENT_CLIENT_PROJECTILE: Ent_Projectile(); break;
                case ENT_CLIENT_GIBSPLASH: Ent_GibSplash(bIsNewEntity); break;
@@ -886,6 +895,7 @@ void CSQC_Ent_Update(float bIsNewEntity)
                case ENT_CLIENT_SPAWNEVENT: Ent_ReadSpawnEvent(bIsNewEntity); break;
                case ENT_CLIENT_NOTIFICATION: Read_Notification(bIsNewEntity); break;
                case ENT_CLIENT_HEALING_ORB: ent_healer(); break;
+               case ENT_CLIENT_MINIGAME: ent_read_minigame(); break;
                case ENT_CLIENT_VIEWLOC: ent_viewloc(); break;
                case ENT_CLIENT_VIEWLOC_TRIGGER: ent_viewloc_trigger(); break;
                case ENT_CLIENT_LADDER: ent_func_ladder(); break;