]> de.git.xonotic.org Git - xonotic/xonotic-data.pk3dir.git/blobdiff - qcsrc/common/minigames/cl_minigames.qc
Reduce spam of "x minutes" and "x fps" strings of a few sliders
[xonotic/xonotic-data.pk3dir.git] / qcsrc / common / minigames / cl_minigames.qc
index e9a8a4b414a2ce93778765da2601870846bfc884..b88d219916edc4bd764e085467e1a9a0ec099701 100644 (file)
@@ -4,10 +4,10 @@
 void minigame_hud_simpleboard(vector pos, vector mySize, string board_texture)
 {
        if(panel.current_panel_bg != "0" && panel.current_panel_bg != "")
-               draw_BorderPicture(pos - '1 1 0' * panel_bg_border, 
-                                       panel.current_panel_bg, 
-                                       mySize + '1 1 0' * 2 * panel_bg_border, 
-                                       panel_bg_color, panel_bg_alpha, 
+               draw_BorderPicture(pos - '1 1 0' * panel_bg_border,
+                                       panel.current_panel_bg,
+                                       mySize + '1 1 0' * 2 * panel_bg_border,
+                                       panel_bg_color, panel_bg_alpha,
                                         '1 1 0' * (panel_bg_border/BORDER_MULTIPLIER));
        drawpic(pos, board_texture, mySize, '1 1 1', panel_bg_alpha, DRAWFLAG_NORMAL);
 }
@@ -51,15 +51,15 @@ void initialize_minigames()
                minig.classname = "minigame_descriptor"; \
                minig.netname = strzone(strtolower(#name)); \
                minig.message = nicename; \
-               minig.minigame_hud_board = minigame_hud_board_##name; \
-               minig.minigame_hud_status = minigame_hud_status_##name; \
-               minig.minigame_event = minigame_event_##name; \
+               minig.minigame_hud_board = name##_hud_board; \
+               minig.minigame_hud_status = name##_hud_status; \
+               minig.minigame_event = name##_client_event; \
                if ( !last_minig ) minigame_descriptors = minig; \
                else last_minig.list_next = minig; \
                last_minig = minig;
-               
+
        REGISTERED_MINIGAMES
-       
+
        #undef MINIGAME
 }
 
@@ -80,6 +80,7 @@ string minigame_texture(string name)
 #define MSLE_CLEAN_Byte(x)
 #define MSLE_CLEAN_Char(x)
 #define MSLE_CLEAN_Short(x)
+#define MSLE_CLEAN_Long(x)
 #define MSLE_CLEAN_Coord(x)
 #define MSLE_CLEAN_Angle(x)
 #define MSLE_CLEAN_Float(x)
@@ -87,14 +88,14 @@ string minigame_texture(string name)
 #define MSLE_CLEAN_Vector2D(x)
 
 #define MSLE(Name,Fields) \
-       void msle_entremove_##Name() { strunzone(self.netname); Fields }
+       void msle_entremove_##Name() { SELFPARAM(); strunzone(self.netname); Fields }
 MINIGAME_SIMPLELINKED_ENTITIES
 #undef MSLE
 #undef FIELD
 
 void minigame_autoclean_entity(entity e)
 {
-       dprint("CL Auto-cleaned: ",ftos(num_for_edict(e)), " (",e.classname,")\n");
+       LOG_TRACE("CL Auto-cleaned: ",ftos(num_for_edict(e)), " (",e.classname,")\n");
        remove(e);
 }
 
@@ -102,11 +103,12 @@ void HUD_MinigameMenu_CurrentButton();
 bool auto_close_minigamemenu;
 void deactivate_minigame()
 {
-       if ( !active_minigame || active_minigame != self )
+       if ( !active_minigame )
                return;
+
        active_minigame.minigame_event(active_minigame,"deactivate");
        entity e = world;
-       while( (e = findentity(e, owner, self)) )
+       while( (e = findentity(e, owner, active_minigame)) )
                if ( e.minigame_autoclean )
                {
                        minigame_autoclean_entity(e);
@@ -124,6 +126,12 @@ void deactivate_minigame()
                HUD_MinigameMenu_CurrentButton();
 }
 
+void minigame_entremove()
+{SELFPARAM();
+       if ( self == active_minigame )
+               deactivate_minigame();
+}
+
 void activate_minigame(entity minigame)
 {
        if ( !minigame )
@@ -131,28 +139,26 @@ void activate_minigame(entity minigame)
                deactivate_minigame();
                return;
        }
-       
+
        if ( !minigame.descriptor || minigame.classname != "minigame" )
        {
-               dprint("Trying to activate unregistered minigame ",minigame.netname," in client\n");
+               LOG_TRACE("Trying to activate unregistered minigame ",minigame.netname," in client\n");
                return;
        }
-       
+
        if ( minigame == active_minigame )
                return;
-       
+
        if ( active_minigame )
        {
-               entity olds = minigame_self;
                deactivate_minigame();
-               minigame_self = olds;
        }
-       
+
        if ( minigame_self.owner != minigame )
                minigame_self = world;
        active_minigame = minigame;
        active_minigame.minigame_event(active_minigame,"activate");
-       
+
        if ( HUD_MinigameMenu_IsOpened() )
                HUD_MinigameMenu_CurrentButton();
        else
@@ -163,7 +169,7 @@ void activate_minigame(entity minigame)
 }
 
 void minigame_player_entremove()
-{
+{SELFPARAM();
        if ( self.owner == active_minigame && self.minigame_playerslot == player_localentnum )
                deactivate_minigame();
 }
@@ -172,7 +178,6 @@ vector ReadVector2D() { vector v; v_x = ReadCoord(); v_y = ReadCoord(); v_z = 0;
 vector ReadVector() { vector v; v_x = ReadCoord(); v_y = ReadCoord(); v_z = ReadCoord(); return v; }
 string() ReadString_Raw = #366;
 string ReadString_Zoned() { return strzone(ReadString_Raw()); }
-#define ReadFloat ReadCoord
 #define ReadString ReadString_Zoned
 #define FIELD(Flags, Type,Name) if ( sf & (Flags) ) self.Name = Read##Type();
 #define MSLE(Name,Fields) \
@@ -185,36 +190,36 @@ string ReadString_Zoned() { return strzone(ReadString_Raw()); }
                Fields \
        }
 void minigame_read_owner()
-{
+{SELFPARAM();
        string owner_name = ReadString_Raw();
        self.owner = world;
        do
                self.owner = find(self.owner,netname,owner_name);
        while ( self.owner && self.owner.classname != "minigame" );
        if ( !self.owner )
-               dprint("Got a minigame entity without a minigame!\n");
+               LOG_TRACE("Got a minigame entity without a minigame!\n");
 }
 void ent_read_minigame()
-{
+{SELFPARAM();
        float sf = ReadByte();
        if ( sf & MINIG_SF_CREATE )
        {
                self.classname = msle_classname(ReadShort());
                self.netname = ReadString_Zoned();
        }
-       
+
        entity minigame_ent = world;
-       
+
        if ( self.classname == "minigame" )
        {
                minigame_ent = self;
-               
+
                if ( sf & MINIG_SF_CREATE )
                {
-                       self.entremove = deactivate_minigame;
+                       self.entremove = minigame_entremove;
                        self.descriptor = minigame_get_descriptor(ReadString_Raw());
                        if ( !self.descriptor )
-                               dprint("Got a minigame without a client-side descriptor!\n");
+                               LOG_TRACE("Got a minigame without a client-side descriptor!\n");
                        else
                                self.minigame_event = self.descriptor.minigame_event;
                }
@@ -230,16 +235,16 @@ void ent_read_minigame()
                        minigame_read_owner();
                        float ent = ReadLong();
                        self.minigame_playerslot = ent;
-                       dprint("Player: ",GetPlayerName(ent-1),"\n");
-                       
+                       LOG_TRACE("Player: ",GetPlayerName(ent-1),"\n");
+
                        activate = (ent == player_localnum+1 && self.owner && self.owner != active_minigame);
-                       
+
                }
                minigame_ent = self.owner;
-                       
+
                if ( sf & MINIG_SF_UPDATE )
                        self.team = ReadByte();
-               
+
                if ( activate )
                {
                        minigame_self = self;
@@ -247,15 +252,17 @@ void ent_read_minigame()
                }
        }
        MINIGAME_SIMPLELINKED_ENTITIES
-       
+
        if ( minigame_ent )
                minigame_ent.minigame_event(minigame_ent,"network_receive",self,sf);
-       
-       dprint("CL Reading entity: ",ftos(num_for_edict(self)),
-               " classname:",self.classname," enttype:",ftos(self.enttype) );
-       dprint(" sf:",ftos(sf)," netname:",self.netname,"\n\n");
+
+       if ( sf & MINIG_SF_CREATE )
+       {
+               LOG_TRACE("CL Reading entity: ",ftos(num_for_edict(self)),
+                       " classname:",self.classname," enttype:",ftos(self.enttype) );
+               LOG_TRACE(" sf:",ftos(sf)," netname:",self.netname,"\n\n");
+       }
 }
-#undef ReadFloat
 #undef ReadString
 #undef FIELD
 #undef MSLE
@@ -276,10 +283,10 @@ string minigame_getWrappedLine(float w, vector theFontSize, textLengthUpToWidth_
        }
 
        take_until = textLengthUpToWidth(s, w, theFontSize, tw);
-       
+
        if ( take_until > strlen(s) )
                take_until = strlen(s);
-       
+
        for ( int i = 0; i < take_until; i++ )
                if ( substring(s,i,1) == "\n" )
                {
@@ -287,7 +294,7 @@ string minigame_getWrappedLine(float w, vector theFontSize, textLengthUpToWidth_
                        skip = 1;
                        break;
                }
-       
+
        if ( take_until > 0 || skip > 0 )
        {
                if ( skip == 0 && take_until < strlen(s) )
@@ -302,7 +309,7 @@ string minigame_getWrappedLine(float w, vector theFontSize, textLengthUpToWidth_
                                skip = 1;
                        }
                }
-                       
+
                getWrappedLine_remaining = substring(s, take_until+skip, strlen(s) - (take_until+skip));
                if(getWrappedLine_remaining == "")
                        getWrappedLine_remaining = string_null;
@@ -317,9 +324,9 @@ string minigame_getWrappedLine(float w, vector theFontSize, textLengthUpToWidth_
        }
 }
 
-vector minigame_drawstring_wrapped( float maxwidth, vector pos, string text, 
+vector minigame_drawstring_wrapped( float maxwidth, vector pos, string text,
        vector fontsize, vector color, float theAlpha, int drawflags, float align )
-{      
+{
        getWrappedLine_remaining = text;
        vector mypos = pos;
        while ( getWrappedLine_remaining )
@@ -336,7 +343,7 @@ vector minigame_drawstring_wrapped( float maxwidth, vector pos, string text,
        return mypos;
 }
 
-vector minigame_drawcolorcodedstring_wrapped( float maxwidth, vector pos, 
+vector minigame_drawcolorcodedstring_wrapped( float maxwidth, vector pos,
        string text, vector fontsize, float theAlpha, int drawflags, float align )
 {
        getWrappedLine_remaining = text;
@@ -355,21 +362,21 @@ vector minigame_drawcolorcodedstring_wrapped( float maxwidth, vector pos,
        return mypos;
 }
 
-void minigame_drawstring_trunc(float maxwidth, vector pos, string text, 
+void minigame_drawstring_trunc(float maxwidth, vector pos, string text,
        vector fontsize, vector color, float theAlpha, int drawflags )
 {
        string line = textShortenToWidth(text,maxwidth,fontsize,stringwidth_nocolors);
        drawstring(pos, line, fontsize, color, theAlpha, drawflags);
 }
 
-void minigame_drawcolorcodedstring_trunc(float maxwidth, vector pos, string text, 
+void minigame_drawcolorcodedstring_trunc(float maxwidth, vector pos, string text,
        vector fontsize, float theAlpha, int drawflags )
 {
        string line = textShortenToWidth(text,maxwidth,fontsize,stringwidth_colors);
        drawcolorcodedstring(pos, line, fontsize, theAlpha, drawflags);
 }
 
-void minigame_drawpic_centered( vector pos, string texture, vector sz, 
+void minigame_drawpic_centered( vector pos, string texture, vector sz,
        vector color, float thealpha, int drawflags )
 {
        drawpic( pos-sz/2, texture, sz, color, thealpha, drawflags );
@@ -387,7 +394,7 @@ void minigame_cmd_workaround(float dummy, string...cmdargc)
        localcmd(strcat(cmd,"\n"));
 }
 
-// Prompt the player to play in the current minigame 
+// Prompt the player to play in the current minigame
 // (ie: it's their turn and they should get back to the minigame)
 void minigame_prompt()
 {
@@ -396,4 +403,4 @@ void minigame_prompt()
                HUD_Notify_Push(sprintf("minigames/%s/icon_notif",active_minigame.descriptor.netname),
                        _("It's your turn"), "");
        }
-}
\ No newline at end of file
+}