diff --git a/Source/Menu/Defs.h b/Source/Menu/Defs.h old mode 100755 new mode 100644 index 3d7d0b67..51369199 --- a/Source/Menu/Defs.h +++ b/Source/Menu/Defs.h @@ -38,6 +38,9 @@ var float fMouseClick; var float fButtonAlpha[8]; var float fScrollWheel; +var vector vMenuButtonsSize; +var int iMenuButtonHeight; + enum { SCROLL_NONE, SCROLL_UP, diff --git a/Source/Menu/Init.c b/Source/Menu/Init.c old mode 100755 new mode 100644 index be5bd05f..563c7612 --- a/Source/Menu/Init.c +++ b/Source/Menu/Init.c @@ -27,6 +27,7 @@ Precaches and loading for the menu system */ void m_init( void ) { precache_pic( "gfx/shell/splash" ); + precache_pic( "gfx/shell/btns_main" ); // Index all the maps... TODO: Filter out /valve/ to avoid useless junk from being cached. searchhandle shMaps = search_begin( "maps/*.bsp", TRUE, TRUE ); @@ -39,6 +40,9 @@ void m_init( void ) { search_end( shMaps ); FONT_MENU = loadfont( "menu", "gfx/menuchars", "32", -1 ); + + vMenuButtonsSize = drawgetimagesize( "gfx/shell/btns_main" ); + iMenuButtonHeight = ( vMenuButtonsSize_y / MENU_BUTTONS ) / 3; } /* diff --git a/Source/Menu/Objects.c b/Source/Menu/Objects.c old mode 100755 new mode 100644 index 9b27b9c7..45ac0e2f --- a/Source/Menu/Objects.c +++ b/Source/Menu/Objects.c @@ -124,8 +124,8 @@ void Object_Button( vector vPosition, int iButtonID, void() vFunction, __inout f vector vSrcPos, vSrcSize; vSrcPos_x = 0; - vSrcPos_y = ( 78 * iButtonID ) / 5538; - vSrcSize = [ 1, 26 / 5538 ]; + vSrcPos_y = ( 78 * iButtonID ) / vMenuButtonsSize_y; + vSrcSize = [ 1, iMenuButtonHeight / vMenuButtonsSize_y ]; drawsubpic( vPosition, '156 26', "gfx/shell/btns_main", vSrcPos, vSrcSize, '1 1 1', 1.0f, 1 ); drawsubpic( vPosition, '156 26', "gfx/shell/btns_main", vSrcPos + [ 0, 52 / 5538 ], vSrcSize, '1 1 1', fAlpha, 1 ); } diff --git a/freecs/menu.dat b/freecs/menu.dat index 7c448289..c2a0aa45 100755 Binary files a/freecs/menu.dat and b/freecs/menu.dat differ