]> de.git.xonotic.org Git - xonotic/xonotic-data.pk3dir.git/commitdiff
Cvar hud_panel_itemstime_showspawned to show icons of already spawned items
authorterencehill <piuntn@gmail.com>
Sun, 18 Dec 2011 22:59:57 +0000 (23:59 +0100)
committerterencehill <piuntn@gmail.com>
Sun, 18 Dec 2011 23:08:37 +0000 (00:08 +0100)
12 files changed:
_hud_descriptions.cfg
hud_luminos.cfg
hud_luminos_minimal.cfg
hud_luminos_minimal_xhair.cfg
hud_luminos_old.cfg
hud_nexuiz.cfg
qcsrc/client/autocvars.qh
qcsrc/client/hud.qc
qcsrc/client/hud_config.qc
qcsrc/menu/xonotic/dialog_hudpanel_itemstime.c
qcsrc/server/g_world.qc
qcsrc/server/t_items.qc

index bfd08bd9f8b772f6c3f1815310dee24fe69d28d6..2f2ea597eeb994da7ec3ae8f6558f70d751da1eb 100644 (file)
@@ -301,5 +301,6 @@ seta hud_panel_itemstime_iconalign "" "0 = align icons to the left, 1 = align ic
 seta hud_panel_itemstime_progressbar "" "use progressbar behind icons"
 seta hud_panel_itemstime_progressbar_name "" "name of progressbar to use behind icons"
 seta hud_panel_itemstime_progressbar_xoffset "" "percentage of item width to offset progressbar with"
+seta hud_panel_itemstime_showspawned "0" "show icons of already spawned items"
 seta hud_panel_itemstime_text "" "show text/icons"
 
index 24bf065722bda984c2b3f9a492da4f13fbe2ea44..628b5334c766da24701baeea43f9f295d6b52c10 100644 (file)
@@ -295,6 +295,7 @@ seta hud_panel_itemstime_iconalign "0"
 seta hud_panel_itemstime_progressbar "0"
 seta hud_panel_itemstime_progressbar_name "progressbar"
 seta hud_panel_itemstime_progressbar_xoffset "0"
+seta hud_panel_itemstime_showspawned "0"
 seta hud_panel_itemstime_text "1"
 
 menu_sync
index 293b3d787b9403f956e182bceda291fbe2d5b4e6..a40f86d39ce3e51108969712f19dd10259e3f5cd 100644 (file)
@@ -295,6 +295,7 @@ seta hud_panel_itemstime_iconalign "0"
 seta hud_panel_itemstime_progressbar "0"
 seta hud_panel_itemstime_progressbar_name "progressbar"
 seta hud_panel_itemstime_progressbar_xoffset "0"
+seta hud_panel_itemstime_showspawned "0"
 seta hud_panel_itemstime_text "1"
 
 menu_sync
index 83f01517792cf7a636baadc942cf459e9d84e6db..5e93e80f420dc9a0e3329f93bcbc3b95bc5a3c8d 100644 (file)
@@ -295,6 +295,7 @@ seta hud_panel_itemstime_iconalign "0"
 seta hud_panel_itemstime_progressbar "0"
 seta hud_panel_itemstime_progressbar_name "progressbar"
 seta hud_panel_itemstime_progressbar_xoffset "0"
+seta hud_panel_itemstime_showspawned "0"
 seta hud_panel_itemstime_text "1"
 
 menu_sync
index 69e3adaa97be091a25a6943562f52cd010cbb281..2241e187d8c5828716e13c55e0b34ce4f476c728 100644 (file)
@@ -295,6 +295,7 @@ seta hud_panel_itemstime_iconalign "0"
 seta hud_panel_itemstime_progressbar "0"
 seta hud_panel_itemstime_progressbar_name "progressbar"
 seta hud_panel_itemstime_progressbar_xoffset "0"
+seta hud_panel_itemstime_showspawned "0"
 seta hud_panel_itemstime_text "1"
 
 menu_sync
index d349ceb99ca6eb06312fb35eef56516e9ae0abc4..1a5f9eabe72ff759035605b7df2e01cc11427a07 100644 (file)
@@ -295,6 +295,7 @@ seta hud_panel_itemstime_iconalign "0"
 seta hud_panel_itemstime_progressbar "0"
 seta hud_panel_itemstime_progressbar_name "progressbar"
 seta hud_panel_itemstime_progressbar_xoffset "0"
+seta hud_panel_itemstime_showspawned "0"
 seta hud_panel_itemstime_text "1"
 
 menu_sync
index af8f96d99f5efeb530a449f84b4fb62ee450e055..602fb863cdcfde3aa3b848cb3d981c34cf9fa385 100644 (file)
@@ -248,6 +248,7 @@ float autocvar_hud_panel_itemstime_maxitemstime;
 float autocvar_hud_panel_itemstime_progressbar;
 string autocvar_hud_panel_itemstime_progressbar_name;
 float autocvar_hud_panel_itemstime_progressbar_xoffset;
+float autocvar_hud_panel_itemstime_showspawned;
 float autocvar_hud_panel_itemstime_text;
 float autocvar_hud_panel_modicons;
 float autocvar_hud_panel_modicons_dom_layout;
index 62123ef2348315eae3fbbbd489b6a9f968ad5f28..c4925f43d62d1f7bffa016ed041927a03ad80e8c 100644 (file)
@@ -4803,15 +4803,26 @@ string GetItemsTimePicture(float i)
 void DrawItemsTimeItem(vector myPos, vector mySize, float itemcode)
 {
        float t;
-       t = floor(ItemsTime_time[itemcode] - time + 0.999);
-
        vector color;
-       if(t < 5)
-               color = '0.7 0 0';
-       else if(t < 10)
-               color = '0.7 0.7 0';
+       float picalpha;
+       if(ItemsTime_time[itemcode] <= time)
+       {
+               float BLINK_FACTOR = 0.15;
+               float BLINK_BASE = 0.85;
+               float BLINK_FREQ = 5;
+               picalpha = BLINK_BASE + BLINK_FACTOR * cos(time * BLINK_FREQ);
+       }
        else
-               color = '1 1 1';
+       {
+               picalpha = 1;
+               t = floor(ItemsTime_time[itemcode] - time + 0.999);
+               if(t < 5)
+                       color = '0.7 0 0';
+               else if(t < 10)
+                       color = '0.7 0.7 0';
+               else
+                       color = '1 1 1';
+       }
 
        vector picpos, numpos;
        if(autocvar_hud_panel_itemstime_iconalign)
@@ -4825,12 +4836,12 @@ void DrawItemsTimeItem(vector myPos, vector mySize, float itemcode)
                picpos = myPos;
        }
 
-    if(autocvar_hud_panel_itemstime_progressbar)
+    if(t > 0 && autocvar_hud_panel_itemstime_progressbar)
         HUD_Panel_DrawProgressBar(myPos + eX * autocvar_hud_panel_itemstime_progressbar_xoffset * mySize_x, mySize - eX * autocvar_hud_panel_itemstime_progressbar_xoffset * mySize_x, autocvar_hud_panel_itemstime_progressbar_name, t/autocvar_hud_panel_itemstime_maxitemstime, 0, 0, color, autocvar_hud_progressbar_alpha * panel_fg_alpha, DRAWFLAG_NORMAL);
 
-    if(autocvar_hud_panel_itemstime_text)
+    if(t > 0 && autocvar_hud_panel_itemstime_text)
        drawstring_aspect(numpos, ftos(t), eX * (2/3) * mySize_x + eY * mySize_y, color, panel_fg_alpha, DRAWFLAG_NORMAL);
-       drawpic_aspect_skin(picpos, GetItemsTimePicture(itemcode), '1 1 0' * mySize_y, '1 1 1', panel_fg_alpha, DRAWFLAG_NORMAL);
+       drawpic_aspect_skin(picpos, GetItemsTimePicture(itemcode), '1 1 0' * mySize_y, '1 1 1', panel_fg_alpha * picalpha, DRAWFLAG_NORMAL);
 }
 
 void HUD_ItemsTime(void)
@@ -4857,10 +4868,10 @@ void HUD_ItemsTime(void)
                // do not show here mutators-dependent items
                ItemsTime_time[0] = time + 25;
                ItemsTime_time[1] = time + 8;
-               ItemsTime_time[2] = time + 0;
-               ItemsTime_time[3] = time + 0;
-               ItemsTime_time[4] = time + 0;
-               ItemsTime_time[5] = time + 34;
+               ItemsTime_time[2] = -1;
+               ItemsTime_time[3] = -1;
+               ItemsTime_time[4] = -1;
+               ItemsTime_time[5] = time + 0;
                ItemsTime_time[6] = time + 4;
                ItemsTime_time[7] = time + 19;
                ItemsTime_time[8] = time + 46;
@@ -4868,8 +4879,12 @@ void HUD_ItemsTime(void)
 
        float i;
        float count;
-       for (i = 0; i < ITEMSTIME_MAXITEMS; ++i)
-               count += (ItemsTime_time[i] > time);
+       if (autocvar_hud_panel_itemstime_showspawned)
+               for (i = 0; i < ITEMSTIME_MAXITEMS; ++i)
+                       count += (ItemsTime_time[i] > time || (ItemsTime_time[i] != -1 && ItemsTime_time[i] <= time));
+       else
+               for (i = 0; i < ITEMSTIME_MAXITEMS; ++i)
+                       count += (ItemsTime_time[i] > time);
        if (count == 0)
                return;
 
@@ -4915,8 +4930,11 @@ void HUD_ItemsTime(void)
        }
 
        for (i = 0; i < ITEMSTIME_MAXITEMS; ++i) {
-               if (ItemsTime_time[i] <= time)
+               if (ItemsTime_time[i] == -1)
                        continue;
+               if (!autocvar_hud_panel_itemstime_showspawned)
+                       if (ItemsTime_time[i] <= time)
+                               continue;
                DrawItemsTimeItem(pos + eX * column * (itemstime_size_x + offset_x) + eY * row * (itemstime_size_y + offset_y), itemstime_size, i);
                ++row;
                if(row >= rows)
index f4a3f68a2d06e464a0f02f775fcde9f2a05410d2..c9c78d481c3d85f286ec7f70d1dee7abe18b5e15 100644 (file)
@@ -182,6 +182,7 @@ void HUD_Panel_ExportCfg(string cfgname)
                                        HUD_Write_PanelCvar_q("_progressbar");
                                        HUD_Write_PanelCvar_q("_progressbar_name");
                                        HUD_Write_PanelCvar_q("_progressbar_xoffset");
+                                       HUD_Write_PanelCvar_q("_showspawned");
                                        HUD_Write_PanelCvar_q("_text");
                                        break;
                        }
index fc9930dfa13f03f2157aa1bac8c47d79aad08ee3..7a0b32b26e5c4a5430355adab90881b6a517e19c 100644 (file)
@@ -25,5 +25,8 @@ void XonoticHUDItemsTimeDialog_fill(entity me)
                me.TD(me, 1, 1.4, e = makeXonoticTextLabel(0, _("Align icon:")));
                        me.TD(me, 1, 2.4/2, e = makeXonoticRadioButton(2, "hud_panel_itemstime_iconalign", "0", _("Left")));
                        me.TD(me, 1, 2.4/2, e = makeXonoticRadioButton(2, "hud_panel_itemstime_iconalign", "1", _("Right")));
+       me.TR(me);
+               me.TDempty(me, 0.2);
+               me.TD(me, 1, 3.8, e = makeXonoticCheckBox(0, "hud_panel_itemstime_showspawned", _("Show spawned items")));
 }
 #endif
index d65a74e4a1a4229aa7891741c4c48d343aa73928..36f1da955377e1b6e1b2b39ecb7deb9aa2de9a1d 100644 (file)
@@ -616,6 +616,7 @@ void Map_MarkAsRecent(string m);
 float world_already_spawned;
 void RegisterWeapons();
 void Nagger_Init();
+void Item_ItemsTime_Init();
 void ClientInit_Spawn();
 void WeaponStats_Init();
 void WeaponStats_Shutdown();
@@ -868,6 +869,7 @@ void spawnfunc_worldspawn (void)
        addstat(STAT_SHIELD_TIME, AS_FLOAT, item_shield_time);
        addstat(STAT_FUELREGEN_TIME, AS_FLOAT, item_fuelregen_time);
        addstat(STAT_JETPACK_TIME, AS_FLOAT, item_jetpack_time);
+       Item_ItemsTime_Init();
 
        if(g_ca || g_freezetag)
        {
index 3846af4bca478403d51bb226f2f0e3f8ab56b4a2..2bc5e2336e57758b666dea2833347b0674f26267 100644 (file)
@@ -189,17 +189,29 @@ float it_shield_time;
 float it_fuelregen_time;
 float it_jetpack_time;
 
+void Item_ItemsTime_Init()
+{
+       it_armor_large_time = -1;
+       it_health_mega_time = -1;
+       it_strength_time = -1;
+       it_invisible_time = -1;
+       it_extralife_time = -1;
+       it_speed_time = -1;
+       it_shield_time = -1;
+       it_fuelregen_time = -1;
+       it_jetpack_time = -1;
+}
 void Item_ClearItemsTime()
 {
-       self.item_armor_large_time = 0;
-       self.item_health_mega_time = 0;
-       self.item_strength_time = 0;
-       self.item_invisible_time = 0;
-       self.item_extralife_time = 0;
-       self.item_speed_time = 0;
-       self.item_shield_time = 0;
-       self.item_fuelregen_time = 0;
-       self.item_jetpack_time = 0;
+       self.item_armor_large_time = (it_armor_large_time == -1) ? -1 : 0;
+       self.item_health_mega_time = (it_health_mega_time == -1) ? -1 : 0;
+       self.item_strength_time    = (it_strength_time    == -1) ? -1 : 0;
+       self.item_invisible_time   = (it_invisible_time   == -1) ? -1 : 0;
+       self.item_extralife_time   = (it_extralife_time   == -1) ? -1 : 0;
+       self.item_speed_time       = (it_speed_time       == -1) ? -1 : 0;
+       self.item_shield_time      = (it_shield_time      == -1) ? -1 : 0;
+       self.item_fuelregen_time   = (it_fuelregen_time   == -1) ? -1 : 0;
+       self.item_jetpack_time     = (it_jetpack_time     == -1) ? -1 : 0;
 }
 void Item_GetItemsTime(entity e)
 {
@@ -942,6 +954,8 @@ void StartItem (string itemmodel, string pickupsound, float defaultrespawntime,
 
                if((itemflags & (FL_POWERUP | FL_WEAPON)) || (itemid & (IT_HEALTH | IT_ARMOR | IT_KEY1 | IT_KEY2)))
                        self.target = "###item###"; // for finding the nearest item using find()
+
+               Item_UpdateTime(self, 0);
        }
 
        self.bot_pickup = TRUE;