BOOLEAN CreateDestroyMainMenuButtons( BOOLEAN fCreate ) { static BOOLEAN fButtonsCreated = FALSE; INT32 cnt; SGPFILENAME filename; SGPFILENAME filenameMP; INT16 sSlot; MAINMENU_X = SCREEN_WIDTH * gMainMenulayout[0].MAINMENU_X / 640; MAINMENU_Y = SCREEN_HEIGHT * gMainMenulayout[0].MAINMENU_Y / 480; MAINMENU_Y_SPACE = gMainMenulayout[0].MAINMENU_Y_SPACE; //if (iResolution >= _640x480 && iResolution < _800x600) //{ // MAINMENU_X = gMainMenulayout[0].MAINMENU_X; // MAINMENU_Y = gMainMenulayout[0].MAINMENU_Y; // MAINMENU_Y_SPACE = gMainMenulayout[0].MAINMENU_Y_SPACE; //} //else if (iResolution < _1024x768) //{ // MAINMENU_X = gMainMenulayout[0].MAINMENU_800x600X + xResOffset; // MAINMENU_Y = gMainMenulayout[0].MAINMENU_800x600Y + yResOffset; // MAINMENU_Y_SPACE = gMainMenulayout[0].MAINMENU_Y_SPACE; //} //else //{ // MAINMENU_X = gMainMenulayout[0].MAINMENU_1024x768X + xResOffset; // MAINMENU_Y = gMainMenulayout[0].MAINMENU_1024x768Y + yResOffset; // MAINMENU_Y_SPACE = gMainMenulayout[0].MAINMENU_Y_SPACE; //} if( fCreate ) { if( fButtonsCreated ) return( TRUE ); //reset the variable that allows the user to ALT click on the continue save btn to load the save instantly gfLoadGameUponEntry = FALSE; // Load button images GetMLGFilename( filename, MLG_TITLETEXT ); GetMLGFilename( filenameMP, MLG_TITLETEXT_MP ); #ifdef JA113DEMO // Load the "Start Demo" image iMenuImages[ NEW_GAME ] = LoadButtonImage( filename ,17,17,18,19,-1 ); #else iMenuImages[ NEW_GAME ] = LoadButtonImage( filename, 0,0, 1, 2 ,-1 ); #endif iMenuImages[ NEW_MP_GAME ] = LoadButtonImage( filenameMP, 0, 0, 1, 2, -1 ); sSlot = 0; iMenuImages[ LOAD_GAME ] = UseLoadedButtonImage( iMenuImages[ NEW_GAME ] ,6,3,4,5,-1 ); iMenuImages[ PREFERENCES ] = UseLoadedButtonImage( iMenuImages[ NEW_GAME ] ,7,7,8,9,-1 ); iMenuImages[ CREDITS ] = UseLoadedButtonImage( iMenuImages[ NEW_GAME ] ,13,10,11,12,-1 ); iMenuImages[ QUIT ] = UseLoadedButtonImage( iMenuImages[ NEW_GAME ] ,14,14,15,16,-1 ); for ( cnt = 0; cnt < NUM_MENU_ITEMS; cnt++ ) { switch( cnt ) { case NEW_GAME: gusMainMenuButtonWidths[cnt] = GetWidthOfButtonPic( (UINT16)iMenuImages[cnt], sSlot ); break; case NEW_MP_GAME: gusMainMenuButtonWidths[cnt] = GetWidthOfButtonPic( (UINT16)iMenuImages[cnt], 0); break; case LOAD_GAME: gusMainMenuButtonWidths[cnt] = GetWidthOfButtonPic( (UINT16)iMenuImages[cnt], 3 ); break; case PREFERENCES: gusMainMenuButtonWidths[cnt] = GetWidthOfButtonPic( (UINT16)iMenuImages[cnt], 7 ); break; case CREDITS: gusMainMenuButtonWidths[cnt] = GetWidthOfButtonPic( (UINT16)iMenuImages[cnt], 10 ); break; case QUIT: gusMainMenuButtonWidths[cnt] = GetWidthOfButtonPic( (UINT16)iMenuImages[cnt], 15 ); break; } #ifdef TESTFOREIGNFONTS // iMenuButtons[ cnt ] = QuickCreateButton( iMenuImages[ cnt ], (INT16)((SCREEN_WIDTH / 2) - gusMainMenuButtonWidths[cnt]/2), (INT16)( 0 + ( cnt * 18 ) ), iMenuButtons[ cnt ] = QuickCreateButton( iMenuImages[ cnt ], (INT16)(MAINMENU_X - gusMainMenuButtonWidths[cnt]/2), (INT16)( 0 + ( cnt * 18 ) ), //(INT16)((SCREEN_WIDTH / 2) - gusMainMenuButtonWidths[cnt]/2) BUTTON_TOGGLE, MSYS_PRIORITY_HIGHEST, DEFAULT_MOVE_CALLBACK, MenuButtonCallback ); #else iMenuButtons[ cnt ] = QuickCreateButton( iMenuImages[ cnt ], (INT16)(MAINMENU_X - gusMainMenuButtonWidths[cnt]/2), (INT16)( MAINMENU_Y + ( cnt * MAINMENU_Y_SPACE ) ), BUTTON_TOGGLE, MSYS_PRIORITY_HIGHEST, DEFAULT_MOVE_CALLBACK, MenuButtonCallback ); #endif if ( iMenuButtons[ cnt ] == -1 ) { return( FALSE ); } ButtonList[ iMenuButtons[ cnt ] ]->UserData[0] = cnt; } fButtonsCreated = TRUE; } else { if( !fButtonsCreated ) return( TRUE ); // Delete images/buttons for ( cnt = 0; cnt < NUM_MENU_ITEMS; cnt++ ) { RemoveButton( iMenuButtons[ cnt ] ); UnloadButtonImage( iMenuImages[ cnt ] ); } fButtonsCreated = FALSE; } return( TRUE ); }
UINT16 GetChatBoxButtonWidth( INT32 iButtonImage ) { return( GetWidthOfButtonPic( (UINT16)iButtonImage, ButtonPictures[iButtonImage].OnNormal ) ); }