global static variables

 
использую в одной из библиотек, чтоб _все_ ф-ции, находящиеся там, использовали одни и те же значения.
пример:
static color standart_color, price_up_color, price_down_color, warning_color;
static string font;
static double font_size, head_font_size;
static string Text;

void init_ ( color Standart_Color, color Price_Up_Color, color Price_Down_Color, color Warning_Color, string Font, double Font_Size )
{
	standart_color = Standart_Color;
	price_up_color = Price_Up_Color;
	price_down_color = Price_Down_Color;
	warning_color = Warning_Color;
	font = Font;
	font_size = Font_Size;
	head_font_size = Font_Size+1;
}
void label_create ( string name, string text, color _color, int x, int y, int corner )
{
	ObjectCreate( name, OBJ_LABEL,0,0,0,0,0,0,0);
	ObjectSet( name, OBJPROP_CORNER, corner);
	ObjectSet( name, OBJPROP_XDISTANCE, x);
	ObjectSet( name, OBJPROP_YDISTANCE, y);
	ObjectSetText(  name, text, font_size, font, _color);
	if ( name == "Expert log" || name == "Symbol" )
	{ ObjectSetText(  name, text, head_font_size, font, _color); }

	Print( text );
}
void info_ ( string name, string text )
{
	if ( name == "Symbol" )
	{ ObjectSetText(  name, text, head_font_size, font, standart_color); }
	else
	{ ObjectSetText(  name, text, font_size, font, standart_color); }

	if ( text != "" ) { Text = text; info_file (); }

}



сначала вызывается ф-ция init и всем переменным присваеваются значения, потом вызывается label_create, создаются лейблы, цвета соблюдаются, а потом постоянно вызывается info_ но цвета уже "обнулены"...
Что я не так делаю?

 
обнуляются только цвета или все переменные, объявленные на глобальном уровне?
 
только цвета. Причём ейчас заметил ещё одну особенность: при вызове info_ из той же библиотеки, что и init , цвета остаются, а при вызове из других библиотек - нет.