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 =
50 lRelPos = getmousepos();
51 lRelPos = Gfx_ConToMen( lRelPos );
53 Cursor_Relative_x = lRelPos_x * Cursor_Speed_x;
54 Cursor_Relative_y = lRelPos_y * Cursor_Speed_y;
56 Cursor_Relative_x = bound( 0.0, Cursor_Position_x + Cursor_Relative_x, Gfx_Menu_Width ) - Cursor_Position_x;
57 Cursor_Relative_y = bound( 0.0, Cursor_Position_y + Cursor_Relative_y, Gfx_Menu_Height ) - Cursor_Position_y;
59 Cursor_Position_x = Cursor_Position_x + Cursor_Relative_x;
60 Cursor_Position_y = Cursor_Position_y + Cursor_Relative_y;
61 Cursor_Position_z = 0.0;
66 void() Cursor_DefaultAnimation =
70 void( vector pRelPos, string pText, vector pScale, vector pColor, float pAlpha, float pDrawFlag ) Cursor_PrintInfo =
72 local vector lPosition;
75 lSize = Gfx_GetImageSize( Cursor_Current ) * Cursor_Scale;
77 if( pRelPos_x != 0 ) {
78 if( pRelPos_x > 0 ) // align it on the left
79 lPosition_x = Cursor_Position_x + lSize_x * (Cursor_Offset_x + 0.5 + pRelPos_x / 2) ;
80 else if( pRelPos_x < 0 ) // align it on the right
81 lPosition_x = Cursor_Position_x + lSize_x * (Cursor_Offset_x + 0.5 + pRelPos_x / 2) -
82 pScale_x * strlen( pText );
83 lPosition_y = Cursor_Position_y + lSize_y * (Cursor_Offset_y + 0.5 + pRelPos_y / 2 ) - pScale_y / 2;
85 lPosition_x = Cursor_Position_x + lSize_x * (Cursor_Offset_x + 0.5) -
86 pScale_x * strlen( pText ) / 2;
88 if( pRelPos_y != 0 ) {
90 lPosition_y = Cursor_Position_y + lSize_y * (Cursor_Offset_y + 0.5 - pRelPos_y / 2) - pScale_y;
91 else if( pRelPos_y < 0 )
92 lPosition_y = Cursor_Position_y + lSize_y * (Cursor_Offset_y + 0.5 - pRelPos_y / 2);
95 Gfx_DrawString( lPosition, pText, pScale, pColor, pAlpha, pDrawFlag );