void AddIMPMinorTraitButtons() { INT32 iCnt = 0; UINT16 usPosX, usPosY; usPosX = IMP_MINOR_TRAIT__LEFT_COLUMN_START_X; usPosY = IMP_MINOR_TRAIT__LEFT_COLUMN_START_Y; for(iCnt = 0; iCnt < IMP_SKILL_TRAITS_NEW_NUMBER_MINOR_SKILLS; iCnt++) { //reset giIMPMinorTraitAnswerButton[iCnt] = -1; //if we are not DONE and are just reviewing if( iCurrentProfileMode != IMP__FINISH ) { gfMinorTraitQuestions[ iCnt ] = FALSE; } if( iCnt == 0 ) giIMPMinorTraitAnswerButtonImage[ iCnt ] = LoadButtonImage( "LAPTOP\\button_6.sti", -1,0,-1,1,-1 ); else giIMPMinorTraitAnswerButtonImage[ iCnt ] = UseLoadedButtonImage( giIMPMinorTraitAnswerButtonImage[ 0 ], -1,0,-1,1,-1 ); giIMPMinorTraitAnswerButton[iCnt] = QuickCreateButton( giIMPMinorTraitAnswerButtonImage[ iCnt ], usPosX, usPosY, BUTTON_TOGGLE, MSYS_PRIORITY_HIGHEST - 3, MSYS_NO_CALLBACK, (GUI_CALLBACK)BtnIMPMinorTraitAnswerCallback); //Set the button data MSYS_SetBtnUserData( giIMPMinorTraitAnswerButton[iCnt], 0, iCnt ); SetButtonCursor( giIMPMinorTraitAnswerButton[iCnt], CURSOR_WWW); //Determine the next x location if( iCnt < IMP_MINOR_TRAIT__TRAITS_TO_START_RIGHT_COL ) usPosX = IMP_MINOR_TRAIT__LEFT_COLUMN_START_X; else usPosX = IMP_MINOR_TRAIT__RIGHT_COLUMN_START_X; //Determine the next Y location if( iCnt == IMP_MINOR_TRAIT__TRAITS_TO_START_RIGHT_COL ) usPosY = IMP_MINOR_TRAIT__RIGHT_COLUMN_START_Y; else usPosY += IMP_MINOR_TRAIT__SPACE_BTN_BUTTONS; //if its the none button if( iCnt == IMP_SKILL_TRAITS_NEW_MINOR_NONE-1 ) { usPosX = IMP_MINOR_TRAIT__NONE_BTN_LOC_X; usPosY = IMP_MINOR_TRAIT__NONE_BTN_LOC_Y; } } }
void AddImpDisabilityTraitButtons() { INT8 ubCnt = 0; UINT16 usPosX, usPosY; usPosX = IMP_DISABILITY_COLUMN_START_X; usPosY = IMP_DISABILITY_COLUMN_START_Y; for(ubCnt = 0; ubCnt < IMP_DISABILITIES_NUMBER; ubCnt++) { //reset giIMPDisabilityTraitAnswerButton[ubCnt] = -1; //if we are not DONE and are just reviewing if( iCurrentProfileMode != IMP__FINISH ) { gfDisabilityTraitQuestions[ ubCnt ] = FALSE; } if( ubCnt == 0 ) giIMPDisabilityTraitAnswerButtonImage[ ubCnt ] = LoadButtonImage( "LAPTOP\\button_6.sti", -1,0,-1,1,-1 ); else giIMPDisabilityTraitAnswerButtonImage[ ubCnt ] = UseLoadedButtonImage( giIMPDisabilityTraitAnswerButtonImage[ 0 ], -1,0,-1,1,-1 ); giIMPDisabilityTraitAnswerButton[ubCnt] = QuickCreateButton( giIMPDisabilityTraitAnswerButtonImage[ ubCnt ], usPosX, usPosY, BUTTON_TOGGLE, MSYS_PRIORITY_HIGHEST - 3, MSYS_NO_CALLBACK, (GUI_CALLBACK)BtnIMPDisabilityTraitAnswerCallback); //Set the button data MSYS_SetBtnUserData( giIMPDisabilityTraitAnswerButton[ubCnt], 0, ubCnt ); SetButtonCursor( giIMPDisabilityTraitAnswerButton[ubCnt], CURSOR_WWW); //Get rid of playing the button sound, it will be handled here //ButtonList[ giIMPDisabilityTraitAnswerButton[ ubCnt ] ]->ubSoundSchemeID = 0; //Determine the next x location if( ubCnt < IMP_DISABILITY_TRAIT_NUMBER_TO_START_2ND_COLUMN ) usPosX = IMP_DISABILITY_COLUMN_START_X; else usPosX = IMP_DISABILITY_2ND_COLUMN_START_X; //Determine the next Y location if( ubCnt == IMP_DISABILITY_TRAIT_NUMBER_TO_START_2ND_COLUMN ) usPosY = IMP_DISABILITY_2ND_COLUMN_START_Y; else usPosY += IMP_DISABILITY_TRAIT__SPACE_BTN_BUTTONS; } }
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 ); }
BOOLEAN EnterGIOScreen() { VOBJECT_DESC VObjectDesc; UINT16 cnt; UINT16 usPosY; if( gfGIOButtonsAllocated ) return( TRUE ); SetCurrentCursorFromDatabase( CURSOR_NORMAL ); // load the Main trade screen backgroiund image VObjectDesc.fCreateFlags=VOBJECT_CREATE_FROMFILE; FilenameForBPP("InterFace\\OptionsScreenBackGround.sti", VObjectDesc.ImageFile); CHECKF(AddVideoObject(&VObjectDesc, &guiGIOMainBackGroundImage )); //Ok button giGIODoneBtnImage = LoadButtonImage("INTERFACE\\PreferencesButtons.sti", -1,0,-1,2,-1 ); guiGIODoneButton = CreateIconAndTextButton( giGIODoneBtnImage, gzGIOScreenText[GIO_OK_TEXT], OPT_BUTTON_FONT, OPT_BUTTON_ON_COLOR, DEFAULT_SHADOW, OPT_BUTTON_OFF_COLOR, DEFAULT_SHADOW, TEXT_CJUSTIFIED, GIO_BTN_OK_X, GIO_BTN_OK_Y, BUTTON_TOGGLE, MSYS_PRIORITY_HIGH, DEFAULT_MOVE_CALLBACK, BtnGIODoneCallback); SpecifyButtonSoundScheme( guiGIODoneButton, BUTTON_SOUND_SCHEME_BIGSWITCH3 ); SpecifyDisabledButtonStyle( guiGIODoneButton, DISABLED_STYLE_NONE ); //Cancel button giGIOCancelBtnImage = UseLoadedButtonImage( giGIODoneBtnImage, -1,1,-1,3,-1 ); guiGIOCancelButton = CreateIconAndTextButton( giGIOCancelBtnImage, gzGIOScreenText[GIO_CANCEL_TEXT], OPT_BUTTON_FONT, OPT_BUTTON_ON_COLOR, DEFAULT_SHADOW, OPT_BUTTON_OFF_COLOR, DEFAULT_SHADOW, TEXT_CJUSTIFIED, GIO_CANCEL_X, GIO_BTN_OK_Y, BUTTON_TOGGLE, MSYS_PRIORITY_HIGH, DEFAULT_MOVE_CALLBACK, BtnGIOCancelCallback ); SpecifyButtonSoundScheme( guiGIOCancelButton, BUTTON_SOUND_SCHEME_BIGSWITCH3 ); // //Check box to toggle Difficulty settings // usPosY = GIO_DIF_SETTINGS_Y - GIO_OFFSET_TO_TOGGLE_BOX_Y; for( cnt=0; cnt<NUM_DIFF_SETTINGS; cnt++) { guiDifficultySettingsToggles[ cnt ] = CreateCheckBoxButton( GIO_DIF_SETTINGS_X+GIO_OFFSET_TO_TOGGLE_BOX, usPosY, "INTERFACE\\OptionsCheck.sti", MSYS_PRIORITY_HIGH+10, BtnDifficultyTogglesCallback ); MSYS_SetBtnUserData( guiDifficultySettingsToggles[ cnt ], 0, cnt ); usPosY += GIO_GAP_BN_SETTINGS; } if( gGameOptions.ubDifficultyLevel == DIF_LEVEL_EASY ) ButtonList[ guiDifficultySettingsToggles[ GIO_DIFF_EASY ] ]->uiFlags |= BUTTON_CLICKED_ON; else if( gGameOptions.ubDifficultyLevel == DIF_LEVEL_MEDIUM ) ButtonList[ guiDifficultySettingsToggles[ GIO_DIFF_MED ] ]->uiFlags |= BUTTON_CLICKED_ON; else if( gGameOptions.ubDifficultyLevel == DIF_LEVEL_HARD ) ButtonList[ guiDifficultySettingsToggles[ GIO_DIFF_HARD ] ]->uiFlags |= BUTTON_CLICKED_ON; else ButtonList[ guiDifficultySettingsToggles[ GIO_DIFF_MED ] ]->uiFlags |= BUTTON_CLICKED_ON; // //Check box to toggle Game settings ( realistic, sci fi ) // usPosY = GIO_GAME_SETTINGS_Y - GIO_OFFSET_TO_TOGGLE_BOX_Y; for( cnt=0; cnt<NUM_GAME_STYLES; cnt++) { guiGameStyleToggles[ cnt ] = CreateCheckBoxButton( GIO_GAME_SETTINGS_X+GIO_OFFSET_TO_TOGGLE_BOX, usPosY, "INTERFACE\\OptionsCheck.sti", MSYS_PRIORITY_HIGH+10, BtnGameStyleTogglesCallback ); MSYS_SetBtnUserData( guiGameStyleToggles[ cnt ], 0, cnt ); usPosY += GIO_GAP_BN_SETTINGS; } if( gGameOptions.fSciFi ) ButtonList[ guiGameStyleToggles[ GIO_SCI_FI ] ]->uiFlags |= BUTTON_CLICKED_ON; else ButtonList[ guiGameStyleToggles[ GIO_REALISTIC ] ]->uiFlags |= BUTTON_CLICKED_ON; // JA2Gold: iron man buttons usPosY = GIO_IRON_MAN_SETTING_Y - GIO_OFFSET_TO_TOGGLE_BOX_Y; for( cnt=0; cnt<NUM_SAVE_OPTIONS; cnt++) { guiGameSaveToggles[ cnt ] = CreateCheckBoxButton( GIO_IRON_MAN_SETTING_X+GIO_OFFSET_TO_TOGGLE_BOX, usPosY, "INTERFACE\\OptionsCheck.sti", MSYS_PRIORITY_HIGH+10, BtnGameSaveTogglesCallback ); MSYS_SetBtnUserData( guiGameSaveToggles[ cnt ], 0, cnt ); usPosY += GIO_GAP_BN_SETTINGS; } if( gGameOptions.fIronManMode ) ButtonList[ guiGameSaveToggles[ GIO_IRON_MAN ] ]->uiFlags |= BUTTON_CLICKED_ON; else ButtonList[ guiGameSaveToggles[ GIO_CAN_SAVE ] ]->uiFlags |= BUTTON_CLICKED_ON; // // Check box to toggle Gun options // usPosY = GIO_GUN_SETTINGS_Y - GIO_OFFSET_TO_TOGGLE_BOX_Y; for( cnt=0; cnt<NUM_GUN_OPTIONS; cnt++) { guiGunOptionToggles[ cnt ] = CreateCheckBoxButton( GIO_GUN_SETTINGS_X+GIO_OFFSET_TO_TOGGLE_BOX, usPosY, "INTERFACE\\OptionsCheck.sti", MSYS_PRIORITY_HIGH+10, BtnGunOptionsTogglesCallback); MSYS_SetBtnUserData( guiGunOptionToggles[ cnt ], 0, cnt ); usPosY += GIO_GAP_BN_SETTINGS; } //if its the demo, make sure the defuat is for additional guns #ifdef JA2DEMO gGameOptions.fGunNut = TRUE; #endif if( gGameOptions.fGunNut ) ButtonList[ guiGunOptionToggles[ GIO_GUN_NUT ] ]->uiFlags |= BUTTON_CLICKED_ON; else ButtonList[ guiGunOptionToggles[ GIO_REDUCED_GUNS ] ]->uiFlags |= BUTTON_CLICKED_ON; //if its the demo, make sure to disable the buttons #ifdef JA2DEMO SpecifyDisabledButtonStyle( guiGunOptionToggles[ GIO_GUN_NUT ], DISABLED_STYLE_SHADED ); SpecifyDisabledButtonStyle( guiGunOptionToggles[ GIO_REDUCED_GUNS ], DISABLED_STYLE_SHADED ); DisableButton( guiGunOptionToggles[ GIO_GUN_NUT ] ); DisableButton( guiGunOptionToggles[ GIO_REDUCED_GUNS ] ); #endif // JA2 Gold: no more timed turns // // Check box to toggle the timed turn option // /* usPosY = GIO_TIMED_TURN_SETTING_Y - GIO_OFFSET_TO_TOGGLE_BOX_Y; for( cnt=0; cnt<GIO_NUM_TIMED_TURN_OPTIONS; cnt++) { guiTimedTurnToggles[ cnt ] = CreateCheckBoxButton( GIO_TIMED_TURN_SETTING_X+GIO_OFFSET_TO_TOGGLE_BOX, usPosY, "INTERFACE\\OptionsCheck.sti", MSYS_PRIORITY_HIGH+10, BtnTimedTurnsTogglesCallback ); MSYS_SetBtnUserData( guiTimedTurnToggles[ cnt ], 0, cnt ); usPosY += GIO_GAP_BN_SETTINGS; } if( gGameOptions.fTurnTimeLimit ) ButtonList[ guiTimedTurnToggles[ GIO_TIMED_TURNS ] ]->uiFlags |= BUTTON_CLICKED_ON; else ButtonList[ guiTimedTurnToggles[ GIO_NO_TIMED_TURNS ] ]->uiFlags |= BUTTON_CLICKED_ON; */ //Reset the exit screen gubGIOExitScreen = GAME_INIT_OPTIONS_SCREEN; //REnder the screen once so we can blt ot to ths save buffer RenderGIOScreen(); BlitBufferToBuffer(guiRENDERBUFFER, guiSAVEBUFFER, 0, 0, 639, 439 ); gfGIOButtonsAllocated = TRUE; return( TRUE ); }