#include "hud.qh"
-#include <client/defs.qh>
-#include <client/miscfunctions.qh>
+#include <client/draw.qh>
+#include <client/hud/hud_config.qh>
+#include <client/hud/panel/chat.qh>
+#include <client/hud/panel/scoreboard.qh>
+#include <client/items/items.qh>
+#include <client/mapvoting.qh>
+#include <client/teamradar.qh>
#include <client/view.qh>
-#include "panel/scoreboard.qh"
-#include "hud_config.qh"
-#include "../mapvoting.qh"
-#include "../teamradar.qh"
-#include <common/minigames/cl_minigames.qh>
-#include <common/t_items.qh>
#include <common/deathtypes/all.qh>
#include <common/ent_cs.qh>
+#include <common/gamemodes/_mod.qh>
#include <common/items/_mod.qh>
#include <common/mapinfo.qh>
-#include <common/vehicles/all.qh>
-#include <common/vehicles/vehicle/bumblebee.qh>
+#include <common/minigames/cl_minigames.qh>
#include <common/mutators/mutator/waypoints/all.qh>
#include <common/stats.qh>
-#include <lib/csqcmodel/cl_player.qh>
+#include <common/vehicles/all.qh>
+#include <common/vehicles/vehicle/bumblebee.qh>
#include <lib/csqcmodel/cl_model.qh>
-#include <common/gamemodes/_mod.qh>
+#include <lib/csqcmodel/cl_player.qh>
/*
==================
*/
+void draw_cursor(vector pos, vector ofs, string img, vector col, float a)
+{
+ ofs = vec2(ofs.x * SIZE_CURSOR.x, ofs.y * SIZE_CURSOR.y);
+ drawpic(pos - ofs, strcat(draw_currentSkin, img), SIZE_CURSOR, col, a, DRAWFLAG_NORMAL);
+}
+
+void draw_cursor_normal(vector pos, vector col, float a)
+{
+ draw_cursor(pos, OFFSET_CURSOR, "/cursor", col, a);
+}
+
+void LoadMenuSkinValues()
+{
+ int fh = -1;
+ if(cvar_string("menu_skin") != "")
+ {
+ draw_currentSkin = strcat("gfx/menu/", cvar_string("menu_skin"));
+ fh = fopen(strcat(draw_currentSkin, "/skinvalues.txt"), FILE_READ);
+ }
+ if(fh < 0 && cvar_defstring("menu_skin") != "")
+ {
+ cvar_set("menu_skin", cvar_defstring("menu_skin"));
+ draw_currentSkin = strcat("gfx/menu/", cvar_string("menu_skin"));
+ fh = fopen(strcat(draw_currentSkin, "/skinvalues.txt"), FILE_READ);
+ }
+ if(fh < 0)
+ {
+ draw_currentSkin = "gfx/menu/default";
+ fh = fopen(strcat(draw_currentSkin, "/skinvalues.txt"), FILE_READ);
+ }
+
+ draw_currentSkin = strzone(draw_currentSkin);
+
+ if(fh >= 0)
+ {
+ string s;
+ while((s = fgets(fh)))
+ {
+ int n = tokenize_console(s);
+ if (n < 2)
+ continue;
+ if(substring(argv(0), 0, 2) == "//")
+ continue;
+ if(argv(0) == "SIZE_CURSOR")
+ SIZE_CURSOR = stov(substring(s, argv_start_index(1), argv_end_index(-1) - argv_start_index(1)));
+ else if(argv(0) == "OFFSET_CURSOR")
+ OFFSET_CURSOR = stov(substring(s, argv_start_index(1), argv_end_index(-1) - argv_start_index(1)));
+ }
+ fclose(fh);
+ }
+}
+
+void HUD_Scale_Disable()
+{
+ hud_scale = '1 1 0';
+ hud_shift = '0 0 0';
+ drawfontscale = hud_scale;
+}
+
+void HUD_Scale_Enable()
+{
+ hud_scale = hud_scale_current;
+ hud_shift = hud_shift_current;
+ drawfontscale = hud_scale;
+}
+
+vector HUD_Scale(vector v)
+{
+ v.x = HUD_ScaleX(v.x);
+ v.y = HUD_ScaleY(v.y);
+ return v;
+}
+
+vector HUD_Shift(vector v)
+{
+ v.x = HUD_ShiftX(v.x);
+ v.y = HUD_ShiftY(v.y);
+ return v;
+}
+
+vector HUD_GetFontsize(string cvarname)
+{
+ vector v;
+ v = stov(cvar_string(cvarname));
+ if(v.x == 0)
+ v = '8 8 0';
+ if(v.y == 0)
+ v.y = v.x;
+ v.z = 0;
+ return v;
+}
+
vector HUD_Get_Num_Color(float hp, float maxvalue, bool blink)
{
const vector COLOR100 = '0 1 0'; // green
pic = "gfx/hud/default/progressbar_vertical";
}
- if (baralign == 1) // bottom align
+ if (baralign == 1) // bottom align
theOrigin.y += (1 - length_ratio) * theSize.y;
- else if (baralign == 2) // center align
- theOrigin.y += 0.5 * (1 - length_ratio) * theSize.y;
- else if (baralign == 3) // center align, positive values down, negative up
+ else if (baralign == 2) // center align
+ theOrigin.y += 0.5 * (1 - length_ratio) * theSize.y;
+ else if (baralign == 3) // center align, positive values down, negative up
{
theSize.y *= 0.5;
if (length_ratio > 0)
if (baralign == 1) // right align
theOrigin.x += (1 - length_ratio) * theSize.x;
- else if (baralign == 2) // center align
- theOrigin.x += 0.5 * (1 - length_ratio) * theSize.x;
- else if (baralign == 3) // center align, positive values on the right, negative on the left
+ else if (baralign == 2) // center align
+ theOrigin.x += 0.5 * (1 - length_ratio) * theSize.x;
+ else if (baralign == 3) // center align, positive values on the right, negative on the left
{
theSize.x *= 0.5;
if (length_ratio > 0)