#ifdef PRECOMPILEDHEADERS #include "JA2 All.h" #include "Intro.h" #else #include "Types.h" #include "GameInitOptionsScreen.h" #include "GameSettings.h" #include "Utilities.h" #include "wCheck.h" #include "Font Control.h" #include "WordWrap.h" #include "Render Dirty.h" #include "Input.h" #include "Options Screen.h" #include "English.h" #include "Sysutil.h" #include "Fade Screen.h" #include "Cursor Control.h" #include "Music Control.h" #include "cursors.h" #include "Intro.h" #endif //////////////////////////////////////////// // // Global Defines // /////////////////////////////////////////// #define GIO_TITLE_FONT FONT14ARIAL//FONT16ARIAL #define GIO_TITLE_COLOR FONT_MCOLOR_WHITE #define GIO_TOGGLE_TEXT_FONT FONT12ARIAL//FONT16ARIAL #define GIO_TOGGLE_TEXT_COLOR FONT_MCOLOR_WHITE //buttons #define GIO_BTN_OK_X iScreenWidthOffset + ((320 - 115) / 2) #define GIO_BTN_OK_Y iScreenHeightOffset + 435 #define GIO_CANCEL_X iScreenWidthOffset + 320 + 143 //main title #define GIO_MAIN_TITLE_X 0 #define GIO_MAIN_TITLE_Y iScreenHeightOffset + 10 #define GIO_MAIN_TITLE_WIDTH SCREEN_WIDTH //radio box locations #define GIO_GAP_BN_SETTINGS 35 #define GIO_OFFSET_TO_TEXT 30 #define GIO_OFFSET_TO_TOGGLE_BOX 250 #define GIO_OFFSET_TO_TOGGLE_BOX_Y 9 #define GIO_DIF_SETTINGS_X iScreenWidthOffset + 20 #define GIO_DIF_SETTINGS_Y iScreenHeightOffset + 75 #define GIO_DIF_SETTINGS_WIDTH GIO_OFFSET_TO_TOGGLE_BOX - GIO_OFFSET_TO_TEXT // Madd #define GIO_GAME_SETTINGS_X GIO_DIF_SETTINGS_X #define GIO_GAME_SETTINGS_Y GIO_GUN_SETTINGS_Y #define GIO_GAME_SETTINGS_WIDTH GIO_DIF_SETTINGS_WIDTH #define GIO_GUN_SETTINGS_X GIO_BR_SETTING_X #define GIO_GUN_SETTINGS_Y iScreenHeightOffset + 242 #define GIO_GUN_SETTINGS_WIDTH GIO_DIF_SETTINGS_WIDTH /* #define GIO_TIMED_TURN_SETTING_X GIO_DIF_SETTINGS_X #define GIO_TIMED_TURN_SETTING_Y GIO_GAME_SETTINGS_Y #define GIO_TIMED_TURN_SETTING_WIDTH GIO_DIF_SETTINGS_WIDTH */ // Madd #define GIO_BR_SETTING_X iScreenWidthOffset + 340 #define GIO_BR_SETTING_Y GIO_DIF_SETTINGS_Y #define GIO_BR_SETTING_WIDTH GIO_DIF_SETTINGS_WIDTH #define GIO_IRON_MAN_SETTING_X iScreenWidthOffset + 20 #define GIO_IRON_MAN_SETTING_Y iScreenHeightOffset + 355 #define GIO_IRON_MAN_SETTING_WIDTH GIO_DIF_SETTINGS_WIDTH //Difficulty settings enum { GIO_DIFF_EASY, GIO_DIFF_MED, GIO_DIFF_HARD, GIO_DIFF_INSANE, NUM_DIFF_SETTINGS, }; // Game Settings options enum { GIO_REALISTIC, GIO_SCI_FI, //GIO_PLATINUM, NUM_GAME_STYLES, }; // Gun options enum { GIO_REDUCED_GUNS, GIO_GUN_NUT, NUM_GUN_OPTIONS, }; // Madd // BR options enum { GIO_BR_GOOD, GIO_BR_GREAT, GIO_BR_EXCELLENT, GIO_BR_AWESOME, NUM_BR_OPTIONS, }; // JA2Gold: no more timed turns setting /* //enum for the timed turns setting enum { GIO_NO_TIMED_TURNS, GIO_TIMED_TURNS, GIO_NUM_TIMED_TURN_OPTIONS, }; */ // Iron man mode enum { GIO_CAN_SAVE, GIO_IRON_MAN, NUM_SAVE_OPTIONS, }; //enum for different states of game enum { GIO_NOTHING, GIO_CANCEL, GIO_EXIT, GIO_IRON_MAN_MODE }; //////////////////////////////////////////// // // Global Variables // /////////////////////////////////////////// BOOLEAN gfGIOScreenEntry = TRUE; BOOLEAN gfGIOScreenExit = FALSE; BOOLEAN gfReRenderGIOScreen=TRUE; BOOLEAN gfGIOButtonsAllocated = FALSE; UINT8 gubGameOptionScreenHandler=GIO_NOTHING; UINT32 gubGIOExitScreen = GAME_INIT_OPTIONS_SCREEN; UINT32 guiGIOMainBackGroundImage; INT32 giGioMessageBox = -1; //BOOLEAN gfExitGioDueToMessageBox=FALSE; //UINT8 gubDifficultySettings[ NUM_DIFF_SETTINGS ]; //UINT8 gubGameSettings[ NUM_GAME_STYLES ]; //UINT8 gubGunSettings[ NUM_GUN_OPTIONS ]; //extern INT32 gp16PointArial; // Done Button void BtnGIODoneCallback(GUI_BUTTON *btn,INT32 reason); UINT32 guiGIODoneButton; INT32 giGIODoneBtnImage; // Cancel Button void BtnGIOCancelCallback(GUI_BUTTON *btn,INT32 reason); UINT32 guiGIOCancelButton; INT32 giGIOCancelBtnImage; //checkbox to toggle the Diff level UINT32 guiDifficultySettingsToggles[ NUM_DIFF_SETTINGS ]; void BtnDifficultyTogglesCallback(GUI_BUTTON *btn,INT32 reason); //checkbox to toggle Game style UINT32 guiGameStyleToggles[ NUM_GAME_STYLES ]; void BtnGameStyleTogglesCallback(GUI_BUTTON *btn,INT32 reason); //checkbox to toggle Gun options UINT32 guiGunOptionToggles[ NUM_GUN_OPTIONS ]; void BtnGunOptionsTogglesCallback(GUI_BUTTON *btn,INT32 reason); // JA2Gold: no more timed turns setting /* //checkbox to toggle Timed turn option on or off UINT32 guiTimedTurnToggles[ GIO_NUM_TIMED_TURN_OPTIONS ]; void BtnTimedTurnsTogglesCallback(GUI_BUTTON *btn,INT32 reason); */ //checkbox to toggle Save style UINT32 guiGameSaveToggles[ NUM_SAVE_OPTIONS ]; void BtnGameSaveTogglesCallback(GUI_BUTTON *btn,INT32 reason); //checkbox to toggle BR selection UINT32 guiBROptionToggles[ NUM_BR_OPTIONS ]; void BtnBROptionTogglesCallback(GUI_BUTTON *btn,INT32 reason); //////////////////////////////////////////// // // Local Function Prototypes // /////////////////////////////////////////// extern void ClearMainMenu(); BOOLEAN EnterGIOScreen(); BOOLEAN ExitGIOScreen(); void HandleGIOScreen(); BOOLEAN RenderGIOScreen(); void GetGIOScreenUserInput(); UINT8 GetCurrentGunButtonSetting(); // JA2Gold: added save (iron man) button setting UINT8 GetCurrentGameSaveButtonSetting(); UINT8 GetCurrentGameStyleButtonSetting(); UINT8 GetCurrentDifficultyButtonSetting(); void RestoreGIOButtonBackGrounds(); void DoneFadeOutForExitGameInitOptionScreen( void ); void DoneFadeInForExitGameInitOptionScreen( void ); // JA2Gold: no more timed turns setting //UINT8 GetCurrentTimedTurnsButtonSetting(); BOOLEAN DoGioMessageBox( UINT8 ubStyle, INT16 *zString, UINT32 uiExitScreen, UINT16 usFlags, MSGBOX_CALLBACK ReturnCallback ); void DisplayMessageToUserAboutGameDifficulty(); void ConfirmGioDifSettingMessageBoxCallBack( UINT8 bExitValue ); BOOLEAN DisplayMessageToUserAboutIronManMode(); void ConfirmGioIronManMessageBoxCallBack( UINT8 bExitValue ); UINT32 GameInitOptionsScreenInit( void ) { return( 1 ); } UINT32 GameInitOptionsScreenHandle( void ) { StartFrameBufferRender(); if( gfGIOScreenEntry ) { // PauseGame(); EnterGIOScreen(); gfGIOScreenEntry = FALSE; gfGIOScreenExit = FALSE; InvalidateRegion( 0, 0, SCREEN_WIDTH, SCREEN_HEIGHT ); } GetGIOScreenUserInput(); HandleGIOScreen(); // render buttons marked dirty MarkButtonsDirty( ); RenderButtons( ); // render help // RenderFastHelp( ); // RenderButtonsFastHelp( ); ExecuteBaseDirtyRectQueue(); EndFrameBufferRender(); if ( HandleFadeOutCallback( ) ) { ClearMainMenu(); return( gubGIOExitScreen ); } if ( HandleBeginFadeOut( gubGIOExitScreen ) ) { return( gubGIOExitScreen ); } if( gfGIOScreenExit ) { ExitGIOScreen(); } if ( HandleFadeInCallback( ) ) { // Re-render the scene! RenderGIOScreen(); } if ( HandleBeginFadeIn( gubGIOExitScreen ) ) { } return( gubGIOExitScreen ); } UINT32 GameInitOptionsScreenShutdown( void ) { return( 1 ); } 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; if (iResolution == 0) { FilenameForBPP("INTERFACE\\OptionsScreenBackGround.sti", VObjectDesc.ImageFile); } else if (iResolution == 1) { FilenameForBPP("INTERFACE\\OptionsScreenBackGround_800x600.sti", VObjectDesc.ImageFile); } else if (iResolution == 2) { FilenameForBPP("INTERFACE\\OptionsScreenBackGround_1024x768.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; cntuiFlags |= 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 if( gGameOptions.ubDifficultyLevel == DIF_LEVEL_INSANE ) ButtonList[ guiDifficultySettingsToggles[ GIO_DIFF_INSANE ] ]->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; cntuiFlags |= BUTTON_CLICKED_ON; else // if(gGameOptions.ubGameStyle == STYLE_REALISTIC) ButtonList[ guiGameStyleToggles[ GIO_REALISTIC ] ]->uiFlags |= BUTTON_CLICKED_ON; // else // ButtonList[ guiGameStyleToggles[ GIO_PLATINUM ] ]->uiFlags |= BUTTON_CLICKED_ON; // Madd usPosY = GIO_BR_SETTING_Y - GIO_OFFSET_TO_TOGGLE_BOX_Y; for( cnt=0; cntuiFlags |= BUTTON_CLICKED_ON; break; case BR_GREAT: ButtonList[ guiBROptionToggles[ GIO_BR_GREAT ] ]->uiFlags |= BUTTON_CLICKED_ON; break; case BR_EXCELLENT: ButtonList[ guiBROptionToggles[ GIO_BR_EXCELLENT ] ]->uiFlags |= BUTTON_CLICKED_ON; break; case BR_AWESOME: ButtonList[ guiBROptionToggles[ GIO_BR_AWESOME ] ]->uiFlags |= BUTTON_CLICKED_ON; break; } // JA2Gold: iron man buttons usPosY = GIO_IRON_MAN_SETTING_Y - GIO_OFFSET_TO_TOGGLE_BOX_Y; for( cnt=0; cntuiFlags |= 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; cntuiFlags |= BUTTON_CLICKED_ON; else ButtonList[ guiGunOptionToggles[ GIO_REDUCED_GUNS ] ]->uiFlags |= BUTTON_CLICKED_ON; // 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; cntuiFlags |= 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, SCREEN_WIDTH, SCREEN_HEIGHT ); gfGIOButtonsAllocated = TRUE; return( TRUE ); } BOOLEAN ExitGIOScreen() { UINT16 cnt; if( !gfGIOButtonsAllocated ) return( TRUE ); //Delete the main options screen background DeleteVideoObjectFromIndex( guiGIOMainBackGroundImage ); RemoveButton( guiGIOCancelButton ); RemoveButton( guiGIODoneButton ); UnloadButtonImage( giGIOCancelBtnImage ); UnloadButtonImage( giGIODoneBtnImage ); //Check box to toggle Difficulty settings for( cnt=0; cntuiFlags & BUTTON_CLICKED_ON ) { UINT8 cnt; for( cnt=0; cntuiFlags &= ~BUTTON_CLICKED_ON; } //enable the current button btn->uiFlags |= BUTTON_CLICKED_ON; } else { UINT8 cnt; BOOLEAN fAnyChecked=FALSE; //if none of the other boxes are checked, do not uncheck this box for( cnt=0; cntuiFlags & BUTTON_CLICKED_ON ) { fAnyChecked = TRUE; } } //if none are checked, re check this one if( !fAnyChecked ) btn->uiFlags |= BUTTON_CLICKED_ON; } } } //Madd void BtnBROptionTogglesCallback( GUI_BUTTON *btn, INT32 reason ) { if( reason & MSYS_CALLBACK_REASON_LBUTTON_UP ) { UINT8 ubButton = (UINT8)MSYS_GetBtnUserData( btn, 0 ); if( btn->uiFlags & BUTTON_CLICKED_ON ) { UINT8 cnt; for( cnt=0; cntuiFlags &= ~BUTTON_CLICKED_ON; } //enable the current button btn->uiFlags |= BUTTON_CLICKED_ON; } else { UINT8 cnt; BOOLEAN fAnyChecked=FALSE; //if none of the other boxes are checked, do not uncheck this box for( cnt=0; cntuiFlags & BUTTON_CLICKED_ON ) { fAnyChecked = TRUE; } } //if none are checked, re check this one if( !fAnyChecked ) btn->uiFlags |= BUTTON_CLICKED_ON; } } } void BtnGameStyleTogglesCallback( GUI_BUTTON *btn, INT32 reason ) { if( reason & MSYS_CALLBACK_REASON_LBUTTON_UP ) { UINT8 ubButton = (UINT8)MSYS_GetBtnUserData( btn, 0 ); if( btn->uiFlags & BUTTON_CLICKED_ON ) { UINT8 cnt; for( cnt=0; cntuiFlags &= ~BUTTON_CLICKED_ON; } //enable the current button btn->uiFlags |= BUTTON_CLICKED_ON; } else { UINT8 cnt; BOOLEAN fAnyChecked=FALSE; //if none of the other boxes are checked, do not uncheck this box for( cnt=0; cntuiFlags & BUTTON_CLICKED_ON ) { fAnyChecked = TRUE; } } //if none are checked, re check this one if( !fAnyChecked ) btn->uiFlags |= BUTTON_CLICKED_ON; } } } void BtnGameSaveTogglesCallback( GUI_BUTTON *btn, INT32 reason ) { if( reason & MSYS_CALLBACK_REASON_LBUTTON_UP ) { // UINT8 ubButton = (UINT8)MSYS_GetBtnUserData( btn, 0 ); if( btn->uiFlags & BUTTON_CLICKED_ON ) { UINT8 cnt; for( cnt=0; cntuiFlags &= ~BUTTON_CLICKED_ON; } //enable the current button btn->uiFlags |= BUTTON_CLICKED_ON; } else { UINT8 cnt; BOOLEAN fAnyChecked=FALSE; //if none of the other boxes are checked, do not uncheck this box for( cnt=0; cntuiFlags & BUTTON_CLICKED_ON ) { fAnyChecked = TRUE; } } //if none are checked, re check this one if( !fAnyChecked ) btn->uiFlags |= BUTTON_CLICKED_ON; } } } void BtnGunOptionsTogglesCallback( GUI_BUTTON *btn, INT32 reason ) { if( reason & MSYS_CALLBACK_REASON_LBUTTON_UP ) { UINT8 ubButton = (UINT8)MSYS_GetBtnUserData( btn, 0 ); if( btn->uiFlags & BUTTON_CLICKED_ON ) { UINT8 cnt; for( cnt=0; cntuiFlags &= ~BUTTON_CLICKED_ON; } //enable the current button btn->uiFlags |= BUTTON_CLICKED_ON; } else { UINT8 cnt; BOOLEAN fAnyChecked=FALSE; //if none of the other boxes are checked, do not uncheck this box for( cnt=0; cntuiFlags & BUTTON_CLICKED_ON ) { fAnyChecked = TRUE; } } //if none are checked, re check this one if( !fAnyChecked ) btn->uiFlags |= BUTTON_CLICKED_ON; } } } // JA2Gold: no more timed turns setting /* void BtnTimedTurnsTogglesCallback( GUI_BUTTON *btn, INT32 reason ) { if( reason & MSYS_CALLBACK_REASON_LBUTTON_UP ) { UINT8 ubButton = (UINT8)MSYS_GetBtnUserData( btn, 0 ); if( btn->uiFlags & BUTTON_CLICKED_ON ) { UINT8 cnt; for( cnt=0; cntuiFlags &= ~BUTTON_CLICKED_ON; } //enable the current button btn->uiFlags |= BUTTON_CLICKED_ON; } else { UINT8 cnt; BOOLEAN fAnyChecked=FALSE; //if none of the other boxes are checked, do not uncheck this box for( cnt=0; cntuiFlags & BUTTON_CLICKED_ON ) { fAnyChecked = TRUE; } } //if none are checked, re check this one if( !fAnyChecked ) btn->uiFlags |= BUTTON_CLICKED_ON; } } } */ void BtnGIODoneCallback(GUI_BUTTON *btn,INT32 reason) { if(reason & MSYS_CALLBACK_REASON_LBUTTON_DWN ) { btn->uiFlags |= BUTTON_CLICKED_ON; InvalidateRegion(btn->Area.RegionTopLeftX, btn->Area.RegionTopLeftY, btn->Area.RegionBottomRightX, btn->Area.RegionBottomRightY); } if(reason & MSYS_CALLBACK_REASON_LBUTTON_UP ) { btn->uiFlags &= (~BUTTON_CLICKED_ON ); //if the user doesnt have IRON MAN mode selected if( !DisplayMessageToUserAboutIronManMode() ) { //Confirm the difficulty setting DisplayMessageToUserAboutGameDifficulty(); } InvalidateRegion(btn->Area.RegionTopLeftX, btn->Area.RegionTopLeftY, btn->Area.RegionBottomRightX, btn->Area.RegionBottomRightY); } } void BtnGIOCancelCallback(GUI_BUTTON *btn,INT32 reason) { if(reason & MSYS_CALLBACK_REASON_LBUTTON_DWN ) { btn->uiFlags |= BUTTON_CLICKED_ON; InvalidateRegion(btn->Area.RegionTopLeftX, btn->Area.RegionTopLeftY, btn->Area.RegionBottomRightX, btn->Area.RegionBottomRightY); } if(reason & MSYS_CALLBACK_REASON_LBUTTON_UP ) { btn->uiFlags &= (~BUTTON_CLICKED_ON ); gubGameOptionScreenHandler = GIO_CANCEL; InvalidateRegion(btn->Area.RegionTopLeftX, btn->Area.RegionTopLeftY, btn->Area.RegionBottomRightX, btn->Area.RegionBottomRightY); } } UINT8 GetCurrentDifficultyButtonSetting() { UINT8 cnt; for( cnt=0; cntuiFlags & BUTTON_CLICKED_ON ) { return( cnt ); } } return( 0 ); } //Madd UINT8 GetCurrentBROptionButtonSetting() { UINT8 cnt; for( cnt=0; cntuiFlags & BUTTON_CLICKED_ON ) { return( cnt ); } } return( 0 ); } UINT8 GetCurrentGameStyleButtonSetting() { UINT8 cnt; for( cnt=0; cntuiFlags & BUTTON_CLICKED_ON ) { return( cnt ); } } return( 0 ); } UINT8 GetCurrentGunButtonSetting() { UINT8 cnt; for( cnt=0; cntuiFlags & BUTTON_CLICKED_ON ) { return( cnt ); } } return( 0 ); } // JA2 Gold: no timed turns /* UINT8 GetCurrentTimedTurnsButtonSetting() { UINT8 cnt; for( cnt=0; cntuiFlags & BUTTON_CLICKED_ON ) { return( cnt ); } } return( 0 ); } */ UINT8 GetCurrentGameSaveButtonSetting() { UINT8 cnt; for( cnt=0; cntuiFlags & BUTTON_CLICKED_ON ) { return( cnt ); } } return( 0 ); } void RestoreGIOButtonBackGrounds() { UINT8 cnt; UINT16 usPosY; usPosY = GIO_DIF_SETTINGS_Y-GIO_OFFSET_TO_TOGGLE_BOX_Y; //Check box to toggle Difficulty settings for( cnt=0; cntuiFlags &= ~BUTTON_CLICKED_ON; ButtonList[ guiGameSaveToggles[ GIO_CAN_SAVE ] ]->uiFlags |= BUTTON_CLICKED_ON; } }