X-Git-Url: http://git.xonotic.org/?a=blobdiff_plain;f=qcsrc%2Fcommon%2Fmutators%2Fmutator%2Fitemstime%2Fitemstime.qc;h=5aa59bffc38eb6f29f2da638dfb25a9527d54e44;hb=2e30632598aee1914eddcabf35a7774be816b069;hp=8d2bb318f0f2443f1200545a675f23b1d31d433c;hpb=cbb0a16ac5554caedc4af3d81ff857c40eb9bdb9;p=xonotic%2Fxonotic-data.pk3dir.git diff --git a/qcsrc/common/mutators/mutator/itemstime/itemstime.qc b/qcsrc/common/mutators/mutator/itemstime/itemstime.qc index 8d2bb318f..5aa59bffc 100644 --- a/qcsrc/common/mutators/mutator/itemstime/itemstime.qc +++ b/qcsrc/common/mutators/mutator/itemstime/itemstime.qc @@ -2,7 +2,9 @@ REGISTER_MUTATOR(itemstime, true); +#ifdef GAMEQC REGISTER_NET_TEMP(itemstime) +#endif #ifdef SVQC void IT_Write(entity e, int i, float f) { @@ -16,8 +18,8 @@ void IT_Write(entity e, int i, float f) { #ifdef CSQC // reserve one more spot for superweapons time -float ItemsTime_time[Items_MAX + 1]; -float ItemsTime_availableTime[Items_MAX + 1]; +float ItemsTime_time[REGISTRY_MAX(Items) + 1]; +float ItemsTime_availableTime[REGISTRY_MAX(Items) + 1]; NET_HANDLE(itemstime, bool isNew) { int i = ReadByte(); @@ -33,12 +35,13 @@ STATIC_INIT(ItemsTime_Init) { FOREACH(Items, true, { ItemsTime_time[it.m_id] = -1; }); - ItemsTime_time[Items_MAX] = -1; + ItemsTime_time[REGISTRY_MAX(Items)] = -1; } int autocvar_hud_panel_itemstime = 2; float autocvar_hud_panel_itemstime_dynamicsize = 1; float autocvar_hud_panel_itemstime_ratio = 2; +//bool autocvar_hud_panel_itemstime_dynamichud = true; int autocvar_hud_panel_itemstime_iconalign; bool autocvar_hud_panel_itemstime_progressbar = 0; float autocvar_hud_panel_itemstime_progressbar_maxtime = 30; @@ -71,13 +74,13 @@ bool Item_ItemsTime_Allow(GameItem it) #ifdef SVQC // reserve one more spot for superweapons time -float it_times[Items_MAX + 1]; +float it_times[REGISTRY_MAX(Items) + 1]; STATIC_INIT(ItemsTime_Init) { FOREACH(Items, Item_ItemsTime_Allow(it), { it_times[it.m_id] = -1; }); - it_times[Items_MAX] = -1; + it_times[REGISTRY_MAX(Items)] = -1; } void Item_ItemsTime_ResetTimes() @@ -85,7 +88,7 @@ void Item_ItemsTime_ResetTimes() FOREACH(Items, Item_ItemsTime_Allow(it), { it_times[it.m_id] = (it_times[it.m_id] == -1) ? -1 : 0; }); - it_times[Items_MAX] = (it_times[Items_MAX] == -1) ? -1 : 0; + it_times[REGISTRY_MAX(Items)] = (it_times[REGISTRY_MAX(Items)] == -1) ? -1 : 0; } void Item_ItemsTime_ResetTimesForPlayer(entity e) @@ -93,7 +96,7 @@ void Item_ItemsTime_ResetTimesForPlayer(entity e) FOREACH(Items, Item_ItemsTime_Allow(it), { IT_Write(e, it.m_id, (it_times[it.m_id] == -1) ? -1 : 0); }); - IT_Write(e, Items_MAX, (it_times[Items_MAX] == -1) ? -1 : 0); + IT_Write(e, REGISTRY_MAX(Items), (it_times[REGISTRY_MAX(Items)] == -1) ? -1 : 0); } void Item_ItemsTime_SetTimesForPlayer(entity e) @@ -101,7 +104,7 @@ void Item_ItemsTime_SetTimesForPlayer(entity e) FOREACH(Items, Item_ItemsTime_Allow(it), { IT_Write(e, it.m_id, it_times[it.m_id]); }); - IT_Write(e, Items_MAX, it_times[Items_MAX]); + IT_Write(e, REGISTRY_MAX(Items), it_times[REGISTRY_MAX(Items)]); } void Item_ItemsTime_SetTime(entity e, float t) @@ -115,7 +118,7 @@ void Item_ItemsTime_SetTime(entity e, float t) if (!item.instanceOfWeaponPickup) it_times[item.m_id] = t; else if (STAT(WEAPONS, e) & WEPSET_SUPERWEAPONS) - it_times[Items_MAX] = t; + it_times[REGISTRY_MAX(Items)] = t; } } @@ -185,6 +188,20 @@ MUTATOR_HOOKFUNCTION(itemstime, PlayerSpawn) #ifdef CSQC +// ItemsTime (#22) + +void HUD_ItemsTime_Export(int fh) +{ + // allow saving cvars that aesthetically change the panel into hud skin files + HUD_Write_Cvar("hud_panel_itemstime_iconalign"); + HUD_Write_Cvar("hud_panel_itemstime_progressbar"); + HUD_Write_Cvar("hud_panel_itemstime_progressbar_name"); + HUD_Write_Cvar("hud_panel_itemstime_progressbar_reduced"); + HUD_Write_Cvar("hud_panel_itemstime_text"); + HUD_Write_Cvar("hud_panel_itemstime_ratio"); + HUD_Write_Cvar("hud_panel_itemstime_dynamicsize"); +} + void DrawItemsTimeItem(vector myPos, vector mySize, float ar, string item_icon, float item_time, bool item_available, float item_availableTime) { float t = 0; @@ -194,12 +211,7 @@ void DrawItemsTimeItem(vector myPos, vector mySize, float ar, string item_icon, if (autocvar_hud_panel_itemstime_hidespawned == 2) picalpha = 1; else if (item_available) - { - float BLINK_FACTOR = 0.15; - float BLINK_BASE = 0.85; - float BLINK_FREQ = 5; - picalpha = BLINK_BASE + BLINK_FACTOR * cos(time * BLINK_FREQ); - } + picalpha = blink(0.85, 0.15, 5); else picalpha = 0.5; t = floor(item_time - time + 0.999); @@ -286,21 +298,21 @@ void HUD_ItemsTime() FOREACH(Items, Item_ItemsTime_Allow(it), { count += (Item_ItemsTime_GetTime(it.m_id) > time || -Item_ItemsTime_GetTime(it.m_id) > time); }); - count += (Item_ItemsTime_GetTime(Items_MAX) > time || -Item_ItemsTime_GetTime(Items_MAX) > time); + count += (Item_ItemsTime_GetTime(REGISTRY_MAX(Items)) > time || -Item_ItemsTime_GetTime(REGISTRY_MAX(Items)) > time); } else if (autocvar_hud_panel_itemstime_hidespawned == 2) { FOREACH(Items, Item_ItemsTime_Allow(it), { count += (Item_ItemsTime_GetTime(it.m_id) > time); }); - count += (Item_ItemsTime_GetTime(Items_MAX) > time); + count += (Item_ItemsTime_GetTime(REGISTRY_MAX(Items)) > time); } else { FOREACH(Items, Item_ItemsTime_Allow(it), { count += (Item_ItemsTime_GetTime(it.m_id) != -1); }); - count += (Item_ItemsTime_GetTime(Items_MAX) != -1); + count += (Item_ItemsTime_GetTime(REGISTRY_MAX(Items)) != -1); } if (count == 0) return; @@ -417,13 +429,13 @@ LABEL(iteration) row = 0; column = column + 1; } - if(id == Items_MAX) // can happen only in the last fake iteration + if(id == REGISTRY_MAX(Items)) // can happen only in the last fake iteration break; }); // add another fake iteration for superweapons time - if(id < Items_MAX && Item_ItemsTime_GetTime(Items_MAX) != -1) + if(id < REGISTRY_MAX(Items) && Item_ItemsTime_GetTime(REGISTRY_MAX(Items)) != -1) { - id = Items_MAX; + id = REGISTRY_MAX(Items); icon = "superweapons"; goto iteration; }