6 // default cursor (embedded into DP): ui/mousepointer.tga
7 if( Gfx_Precache( CURSOR_PATH ) )
8 Cursor_Current = CURSOR_PATH;
10 Cursor_Current = "ui/mousepointer.tga";
11 Gfx_Precache( Cursor_Current );
14 Cursor_Position = Cursor_Relative = '0 0 0';
16 Cursor_Animation = Cursor_DefaultAnimation;
23 void() Cursor_Display =
25 setmousetarget( MT_MENU );
30 setmousetarget( MT_CLIENT );
38 lSize = Gfx_GetImageSize( Cursor_Current ) * Cursor_Scale;
39 lPos_x = Cursor_Position_x - lSize_x * Cursor_Offset_x;
40 lPos_y = Cursor_Position_y - lSize_y * Cursor_Offset_y;
43 Gfx_DrawPic( lPos, Cursor_Current, lSize, Cursor_Color, Cursor_Transparency, Cursor_Flag );
46 void() Cursor_Update =
49 local float lMenuMouseSpeed;
50 lMenuMouseSpeed = cvar("scmenu_mouse_speed");
51 if(lMenuMouseSpeed == 0)
54 lMenuMouseSpeed = bound(0.7, lMenuMouseSpeed, 3.0);
56 lRelPos = getmousepos();
57 lRelPos = Gfx_ConToMen( lRelPos );
59 Cursor_Relative_x = lRelPos_x * Cursor_Speed_x * lMenuMouseSpeed;
60 Cursor_Relative_y = lRelPos_y * Cursor_Speed_y * lMenuMouseSpeed;
62 Cursor_Relative_x = bound( 0.0, Cursor_Position_x + Cursor_Relative_x, Gfx_Menu_Width ) - Cursor_Position_x;
63 Cursor_Relative_y = bound( 0.0, Cursor_Position_y + Cursor_Relative_y, Gfx_Menu_Height ) - Cursor_Position_y;
65 Cursor_Position_x = Cursor_Position_x + Cursor_Relative_x;
66 Cursor_Position_y = Cursor_Position_y + Cursor_Relative_y;
67 Cursor_Position_z = 0.0;
72 void() Cursor_DefaultAnimation =
76 void( vector pRelPos, string pText, vector pScale, vector pColor, float pAlpha, float pDrawFlag ) Cursor_PrintInfo =
78 local vector lPosition;
81 lSize = Gfx_GetImageSize( Cursor_Current ) * Cursor_Scale;
83 if( pRelPos_x != 0 ) {
84 if( pRelPos_x > 0 ) // align it on the left
85 lPosition_x = Cursor_Position_x + lSize_x * (Cursor_Offset_x + 0.5 + pRelPos_x / 2) ;
86 else if( pRelPos_x < 0 ) // align it on the right
87 lPosition_x = Cursor_Position_x + lSize_x * (Cursor_Offset_x + 0.5 + pRelPos_x / 2) -
88 pScale_x * strlen( pText );
89 lPosition_y = Cursor_Position_y + lSize_y * (Cursor_Offset_y + 0.5 + pRelPos_y / 2 ) - pScale_y / 2;
91 lPosition_x = Cursor_Position_x + lSize_x * (Cursor_Offset_x + 0.5) -
92 pScale_x * strlen( pText ) / 2;
94 if( pRelPos_y != 0 ) {
96 lPosition_y = Cursor_Position_y + lSize_y * (Cursor_Offset_y + 0.5 - pRelPos_y / 2) - pScale_y;
97 else if( pRelPos_y < 0 )
98 lPosition_y = Cursor_Position_y + lSize_y * (Cursor_Offset_y + 0.5 - pRelPos_y / 2);
101 Gfx_DrawString( lPosition, pText, pScale, pColor, pAlpha, pDrawFlag );