//------------------------------------------------------------------------------------ // прорисовка основного меню //------------------------------------------------------------------------------------ void MainMenu() { int Prir = 100; int X = (Setup.iAspectRatioWidth - 384)/2; int Y = 165; if (DrawButton384(X,Y, vw_GetText("1_START_GAME"), MenuContentTransp, &Button1Transp, &LastButton1UpdateTime)) { // если текущего профиля нет - нужно перейти на выбор профилей, если есть - сразу идем на выбор миссий if (CurrentProfile < 0) ComBuffer = PROFILE; else ComBuffer = MISSION; } Y = Y+Prir; if (DrawButton384(X,Y, vw_GetText("1_TOP_SCORES"), MenuContentTransp, &Button2Transp, &LastButton2UpdateTime)) ComBuffer = TOP_SCORES; Y = Y+Prir; if (DrawButton384(X,Y, vw_GetText("1_OPTIONS"), MenuContentTransp, &Button3Transp, &LastButton3UpdateTime)) ComBuffer = OPTIONS; Y = Y+Prir; if (DrawButton384(X,Y, vw_GetText("1_INFORMATION"), MenuContentTransp, &Button4Transp, &LastButton4UpdateTime)) ComBuffer = INFORMATION; Y = Y+Prir; if (DrawButton384(X,Y, vw_GetText("1_CREDITS"), MenuContentTransp, &Button5Transp, &LastButton5UpdateTime)) ComBuffer = CREDITS; Y = Y+Prir; if (DrawButton384(X,Y, vw_GetText("1_QUIT"), MenuContentTransp, &Button6Transp, &LastButton6UpdateTime))SetCurrentDialogBox(0); }
void OptionsMenu(float ContentTransp, float *ButtonTransp1, float *LastButtonUpdateTime1, float *ButtonTransp2, float *LastButtonUpdateTime2) { RECT SrcRect, DstRect; SetRect(&SrcRect,0,0,2,2); SetRect(&DstRect,0,0,Setup.iAspectRatioWidth,768); vw_DrawTransparent(&DstRect, &SrcRect, vw_FindTextureByName("DATA/MENU/blackpoint.tga"), true, 0.5f*ContentTransp); int CurrentPos = 0; int X1 = Setup.iAspectRatioWidth/2 - 375; int Y1 = 65; int Prir1 = 55; vw_DrawFont(X1, Y1, -280, 0, 1.0f, 1.0f,1.0f,1.0f, ContentTransp, vw_GetText("3_Music_Volume")); if (DrawButton128_2(X1+300, Y1-6, vw_GetText("1_Decrease"), ContentTransp, !Setup.Music_check || Setup.MusicSw==0)) { Setup.MusicSw--; if (Setup.MusicSw<0) Setup.MusicSw = 0; vw_SetMusicMainVolume(Setup.MusicSw/10.0f); } if (DrawButton128_2(X1+616, Y1-6, vw_GetText("1_Increase"), ContentTransp, !Setup.Music_check || Setup.MusicSw==10)) { Setup.MusicSw++; if (Setup.MusicSw>10) Setup.MusicSw = 10; vw_SetMusicMainVolume(Setup.MusicSw/10.0f); } if (!Setup.Music_check) { int SizeI = (170-vw_FontSize(vw_GetText("3_Not_available")))/2; vw_DrawFont(X1+438+SizeI, Y1, 0, 0, 1.0f, 1.0f,0.5f,0.0f, ContentTransp, vw_GetText("3_Not_available")); } else { for (int i=0; i<10; i++) { SetRect(&SrcRect,0,0,16,32); SetRect(&DstRect,X1+443+16*i,Y1-4,X1+443+16+16*i,Y1+32-4); if (Setup.MusicSw>i) vw_DrawTransparent(&DstRect, &SrcRect, vw_FindTextureByName("DATA/MENU/perc.tga"), true, ContentTransp); else vw_DrawTransparent(&DstRect, &SrcRect, vw_FindTextureByName("DATA/MENU/perc_none.tga"), true, ContentTransp); } } Y1 += Prir1; vw_DrawFont(X1, Y1, -280, 0, 1.0f, 1.0f,1.0f,1.0f, ContentTransp, vw_GetText("3_Voice_Volume")); if (DrawButton128_2(X1+300, Y1-6, vw_GetText("1_Decrease"), ContentTransp, !Setup.Sound_check || Setup.VoiceSw==0, false)) { Setup.VoiceSw--; if (Setup.VoiceSw<0) Setup.VoiceSw = 0; Audio_SetVoiceMainVolume(Setup.VoiceSw/10.0f); Audio_PlayVoice(1, 1.0f); } if (DrawButton128_2(X1+616, Y1-6, vw_GetText("1_Increase"), ContentTransp, !Setup.Sound_check || Setup.VoiceSw==10, false)) { Setup.VoiceSw++; if (Setup.VoiceSw>10) Setup.VoiceSw = 10; Audio_SetVoiceMainVolume(Setup.VoiceSw/10.0f); Audio_PlayVoice(1, 1.0f); } if (!Setup.Sound_check) { int SizeI = (170-vw_FontSize(vw_GetText("3_Not_available")))/2; vw_DrawFont(X1+438+SizeI, Y1, 0, 0, 1.0f, 1.0f,0.5f,0.0f, ContentTransp, vw_GetText("3_Not_available")); } else { for (int i=0; i<10; i++) { SetRect(&SrcRect,0,0,16,32); SetRect(&DstRect,X1+443+16*i,Y1-4,X1+443+16+16*i,Y1+32-4); if (Setup.VoiceSw>i) vw_DrawTransparent(&DstRect, &SrcRect, vw_FindTextureByName("DATA/MENU/perc.tga"), true, ContentTransp); else vw_DrawTransparent(&DstRect, &SrcRect, vw_FindTextureByName("DATA/MENU/perc_none.tga"), true, ContentTransp); } } Y1 += Prir1; vw_DrawFont(X1, Y1, -280, 0, 1.0f, 1.0f,1.0f,1.0f, ContentTransp, vw_GetText("3_Sound_Effects_Volume")); if (DrawButton128_2(X1+300, Y1-6, vw_GetText("1_Decrease"), ContentTransp, !Setup.Sound_check || Setup.SoundSw==0)) { Setup.SoundSw--; if (Setup.SoundSw<0) Setup.SoundSw = 0; Audio_SetSound2DMainVolume(Setup.SoundSw/10.0f); } if (DrawButton128_2(X1+616, Y1-6, vw_GetText("1_Increase"), ContentTransp, !Setup.Sound_check || Setup.SoundSw==10)) { Setup.SoundSw++; if (Setup.SoundSw>10) Setup.SoundSw = 10; Audio_SetSound2DMainVolume(Setup.SoundSw/10.0f); } if (!Setup.Sound_check) { int SizeI = (170-vw_FontSize(vw_GetText("3_Not_available")))/2; vw_DrawFont(X1+438+SizeI, Y1, 0, 0, 1.0f, 1.0f,0.5f,0.0f, ContentTransp, vw_GetText("3_Not_available")); } else { for (int i=0; i<10; i++) { SetRect(&SrcRect,0,0,16,32); SetRect(&DstRect,X1+443+16*i,Y1-4,X1+443+16+16*i,Y1+32-4); if (Setup.SoundSw>i) vw_DrawTransparent(&DstRect, &SrcRect, vw_FindTextureByName("DATA/MENU/perc.tga"), true, ContentTransp); else vw_DrawTransparent(&DstRect, &SrcRect, vw_FindTextureByName("DATA/MENU/perc_none.tga"), true, ContentTransp); } } // проверяем, есть ли вообще полноэкранные разрешения bool CanSwitchToFullScreen = false; for(int i=0; i<VideoModesNum; i++) { if ((VideoModes[i].BPP == 16) | (VideoModes[i].BPP == 24)) { CanSwitchToFullScreen = true; break; } } Y1 += Prir1; if (Options_BPP != 0) CurrentPos = 0; else CurrentPos = 1; vw_DrawFont(X1, Y1, -280, 0, 1.0f, 1.0f,1.0f,1.0f, ContentTransp, vw_GetText("3_Full_Screen")); if (DrawButton128_2(X1+300, Y1-6, vw_GetText("1_Prev"), ContentTransp, !CanSwitchToFullScreen) || DrawButton128_2(X1+616, Y1-6, vw_GetText("1_Next"), ContentTransp, !CanSwitchToFullScreen)) { if (Options_BPP != 0) { Options_BPP = 0; } else { Options_BPP = CurrentVideoMode.BPP; // пробуем просто переключить BPP, проверяем есть ли такое разрешение bool NeedDetectResolution = true; for(int i=0; i<VideoModesNum; i++) { if ((VideoModes[i].W == Options_Width) & (VideoModes[i].H == Options_Height) & (VideoModes[i].BPP == Options_BPP)) { NeedDetectResolution = false; break; } } // находим первый полноэкранный режим в списке if (NeedDetectResolution) for(int i=0; i<VideoModesNum; i++) { if ((VideoModes[i].BPP == 16) | (VideoModes[i].BPP == 24)) { Options_Width = VideoModes[i].W; Options_Height = VideoModes[i].H; Options_BPP = VideoModes[i].BPP; break; } } } } int Size = vw_FontSize(Options_BPP ? vw_GetText("1_On") : vw_GetText("1_Off")); int SizeI = (170-Size)/2; vw_DrawFont(X1+438+SizeI, Y1, 0, 0, 1.0f, 1.0f,1.0f,1.0f, ContentTransp, Options_BPP ? vw_GetText("1_On") : vw_GetText("1_Off")); // находим текущий номер режима в списке int CurrentListNum = 0; for(int i=0; i<VideoModesNum; i++) { if (VideoModes[i].W == Options_Width && VideoModes[i].H == Options_Height && VideoModes[i].BPP == Options_BPP) { CurrentListNum = i; break; } } Y1 += Prir1; if (Options_BPP != 0) CurrentPos = 0; else CurrentPos = 1; vw_DrawFont(X1, Y1, -280, 0, 1.0f, 1.0f,1.0f,1.0f, ContentTransp, vw_GetText(ButtonScreenModeTitle[CurrentPos])); if (DrawButton128_2(X1+300, Y1-6, vw_GetText("1_Prev"), ContentTransp, false)) { CurrentListNum--; // ставим правильный bool check_next = true; while (check_next) { // вышли за предел if (CurrentListNum < 0) CurrentListNum = VideoModesNum-1; if ((VideoModes[CurrentListNum].BPP > 0 && Options_BPP > 0) || (VideoModes[CurrentListNum].BPP == 0 && Options_BPP == 0)) { check_next = false; } else { CurrentListNum--; } } Options_Width = VideoModes[CurrentListNum].W; Options_Height = VideoModes[CurrentListNum].H; Options_BPP = VideoModes[CurrentListNum].BPP; if ((Options_Width*1.0f)/(Options_Height*1.0f) < 1.4f) Options_iAspectRatioWidth = 1024; else Options_iAspectRatioWidth = 1228; } if (DrawButton128_2(X1+616, Y1-6, vw_GetText("1_Next"), ContentTransp, false)) { CurrentListNum++; // ставим правильный bool check_next = true; while (check_next) { // вышли за предел if (CurrentListNum >= VideoModesNum) CurrentListNum = 0; if ((VideoModes[CurrentListNum].BPP > 0 && Options_BPP > 0) || (VideoModes[CurrentListNum].BPP == 0 && Options_BPP == 0)) { check_next = false; } else { CurrentListNum++; } } Options_Width = VideoModes[CurrentListNum].W; Options_Height = VideoModes[CurrentListNum].H; Options_BPP = VideoModes[CurrentListNum].BPP; if ((Options_Width*1.0f)/(Options_Height*1.0f) < 1.4f) Options_iAspectRatioWidth = 1024; else Options_iAspectRatioWidth = 1228; } char VideoModeTitle[32]; if (VideoModes[CurrentListNum].BPP != 0) sprintf(VideoModeTitle, "%ix%i %ibit", VideoModes[CurrentListNum].W, VideoModes[CurrentListNum].H, VideoModes[CurrentListNum].BPP); else sprintf(VideoModeTitle, "%ix%i", VideoModes[CurrentListNum].W, VideoModes[CurrentListNum].H); Size = vw_FontSize(VideoModeTitle); SizeI = (170-Size)/2; vw_DrawFont(X1+438+SizeI, Y1, 0, 0, 1.0f, 1.0f,1.0f,1.0f, ContentTransp, VideoModeTitle); Y1 += Prir1; vw_DrawFont(X1, Y1, -280, 0, 1.0f, 1.0f,1.0f,1.0f, ContentTransp, vw_GetText("3_Aspect_Ration")); if (DrawButton128_2(X1+300, Y1-6, vw_GetText("1_Prev"), ContentTransp, false)) { if (Options_iAspectRatioWidth == 1228) Options_iAspectRatioWidth = 1024; else Options_iAspectRatioWidth = 1228; } if (DrawButton128_2(X1+616, Y1-6, vw_GetText("1_Next"), ContentTransp, false)) { if (Options_iAspectRatioWidth == 1024) Options_iAspectRatioWidth = 1228; else Options_iAspectRatioWidth = 1024; } if (Options_iAspectRatioWidth == 1024) { Size = vw_FontSize(vw_GetText("3_Standard")); SizeI = (170-Size)/2; vw_DrawFont(X1+438+SizeI, Y1, 0, 0, 1.0f, 1.0f,1.0f,1.0f, ContentTransp, vw_GetText("3_Standard")); } else { Size = vw_FontSize(vw_GetText("3_Widescreen")); SizeI = (170-Size)/2; vw_DrawFont(X1+438+SizeI, Y1, 0, 0, 1.0f, 1.0f,1.0f,1.0f, ContentTransp, vw_GetText("3_Widescreen")); } Y1 += Prir1; vw_DrawFont(X1, Y1, -280, 0, 1.0f, 1.0f,1.0f,1.0f, ContentTransp, "VSync (%s)", vw_GetText("3_VSync")); if (DrawButton128_2(X1+300, Y1-6, vw_GetText("1_Prev"), ContentTransp, false) || DrawButton128_2(X1+616, Y1-6, vw_GetText("1_Next"), ContentTransp, false)) if (NeedCheck == 0) { if (Options_VSync == 1) Options_VSync = 0; else Options_VSync = 1; } Size = vw_FontSize(Options_VSync ? vw_GetText("1_On") : vw_GetText("1_Off")); SizeI = (170-Size)/2; vw_DrawFont(X1+438+SizeI, Y1, 0, 0, 1.0f, 1.0f,1.0f,1.0f, ContentTransp, Options_VSync ? vw_GetText("1_On") : vw_GetText("1_Off")); Y1 += Prir1; vw_DrawFont(X1, Y1, -280, 0, 1.0f, 1.0f,1.0f,1.0f, ContentTransp, vw_GetText("3_Brightness")); if (DrawButton128_2(X1+300, Y1-6, vw_GetText("1_Decrease"), ContentTransp, Setup.Brightness<=1)) { Setup.Brightness -= 1; if (Setup.Brightness <= 1) Setup.Brightness = 1; } if (DrawButton128_2(X1+616, Y1-6, vw_GetText("1_Increase"), ContentTransp, Setup.Brightness>=10)) { Setup.Brightness += 1; if (Setup.Brightness >= 10) Setup.Brightness = 10; } for (int i=0; i<10; i++) { SetRect(&SrcRect,0,0,16,32); SetRect(&DstRect,X1+443+16*i,Y1-4,X1+443+16+16*i,Y1+32-4); if (Setup.Brightness>i) vw_DrawTransparent(&DstRect, &SrcRect, vw_FindTextureByName("DATA/MENU/perc.tga"), true, ContentTransp); else vw_DrawTransparent(&DstRect, &SrcRect, vw_FindTextureByName("DATA/MENU/perc_none.tga"), true, ContentTransp); } int Prir = 100; int X; int Y = 165+Prir*4; X = Setup.iAspectRatioWidth/2 - 366; if (DrawButton200_2(X,Y+28, vw_GetText("1_Advanced"), ContentTransp, false)) { if (GameStatus == GAME) { SetOptionsMenu(OPTIONS_ADVANCED); GameMenuStatus = 3; } else ComBuffer = OPTIONS_ADVANCED; } X = Setup.iAspectRatioWidth/2 - 100; if (DrawButton200_2(X,Y+28, vw_GetText("1_Interface"), ContentTransp, false)) { if (GameStatus == GAME) { SetOptionsMenu(INTERFACE); GameMenuStatus = 4; } else ComBuffer = INTERFACE; } X = Setup.iAspectRatioWidth/2 + 166; if (DrawButton200_2(X,Y+28, vw_GetText("1_Config_Controls"), ContentTransp, false)) { if (GameStatus == GAME) { SetOptionsMenu(CONFCONTROL); GameMenuStatus = 5; } else ComBuffer = CONFCONTROL; } if ((Options_Width == Setup.Width && Options_Height == Setup.Height && Options_BPP == Setup.BPP && Options_VSync == Setup.VSync && Options_iAspectRatioWidth == Setup.iAspectRatioWidth)) { X = (Setup.iAspectRatioWidth - 384)/2; Y = Y+Prir; if (GameStatus == GAME) { if (DrawButton384(X,Y, vw_GetText("1_GAME_MENU"), ContentTransp, ButtonTransp1, LastButtonUpdateTime1)) { GameMenuStatus = 1; } } else { if (DrawButton384(X,Y, vw_GetText("1_MAIN_MENU"), ContentTransp, ButtonTransp1, LastButtonUpdateTime1)) { ComBuffer = MAIN_MENU; } } } else { X = Setup.iAspectRatioWidth/2 - 256 - 38; Y = Y+Prir; if (GameStatus == GAME) { if (DrawButton256(X,Y, vw_GetText("1_GAME_MENU"), ContentTransp, ButtonTransp1, LastButtonUpdateTime1)) { GameMenuStatus = 1; } } else { if (DrawButton256(X,Y, vw_GetText("1_MAIN_MENU"), ContentTransp, ButtonTransp1, LastButtonUpdateTime1)) { ComBuffer = MAIN_MENU; } } X = Setup.iAspectRatioWidth/2 + 38; if (DrawButton256(X,Y, vw_GetText("1_APPLY"), ContentTransp, ButtonTransp2, LastButtonUpdateTime2)) { // проверяем, нужно перегружать или нет if (Options_Width != Setup.Width || Options_Height != Setup.Height || Options_BPP != Setup.BPP || Options_VSync != Setup.VSync || Options_iAspectRatioWidth != Setup.iAspectRatioWidth) { if (GameStatus == GAME) SetCurrentDialogBox(17); else { CanQuit = false; Quit = true; NeedReCreate = true; SaveOptionsMenuTmpData(); } } } } }
void DifficultyMenu() { RECT SrcRect, DstRect; SetRect(&SrcRect,2,2,863-2,484-2); SetRect(&DstRect,Setup.iAspectRatioWidth/2-427,175-15,Setup.iAspectRatioWidth/2-427+863-4,175-15+484-4); vw_DrawTransparent(&DstRect, &SrcRect, vw_FindTextureByName("DATA/MENU/panel800_444_back.tga"), true, 0.9f*MenuContentTransp); int X1 = Setup.iAspectRatioWidth/2 - 372; int Y1 = 217; int Prir1 = 50; int Size; int SizeI; vw_DrawFont(X1, Y1, -340, 0, 1.0f, 1.0f,1.0f,1.0f, MenuContentTransp, vw_GetText("3_Enemy_Weapon_Penalty")); bool ButOff = false; if (Setup.Profile[CurrentProfile].NPCWeaponPenalty == 1) ButOff = true; if (DrawButton128_2(X1+360, Y1-6, vw_GetText("1_Decrease"), MenuContentTransp, ButOff)) { Setup.Profile[CurrentProfile].NPCWeaponPenalty--; if (Setup.Profile[CurrentProfile].NPCWeaponPenalty < 1) Setup.Profile[CurrentProfile].NPCWeaponPenalty = 1; } ButOff = false; if (Setup.Profile[CurrentProfile].NPCWeaponPenalty == 3) ButOff = true; if (DrawButton128_2(X1+616, Y1-6, vw_GetText("1_Increase"), MenuContentTransp, ButOff)) { Setup.Profile[CurrentProfile].NPCWeaponPenalty++; if (Setup.Profile[CurrentProfile].NPCWeaponPenalty > 3) Setup.Profile[CurrentProfile].NPCWeaponPenalty = 3; } if (Setup.Profile[CurrentProfile].NPCWeaponPenalty == 1) { Size = vw_FontSize(vw_GetText("3_None")); SizeI = (110-Size)/2; vw_DrawFont(X1+498+SizeI, Y1, 0, 0, 1.0f, 1.0f,1.0f,1.0f, MenuContentTransp, vw_GetText("3_None")); } else { Size = vw_FontSize("x%i", Setup.Profile[CurrentProfile].NPCWeaponPenalty); SizeI = (110-Size)/2; vw_DrawFont(X1+498+SizeI, Y1, 0, 0, 1.0f, 1.0f,1.0f,1.0f, MenuContentTransp, "x%i", Setup.Profile[CurrentProfile].NPCWeaponPenalty); } Y1 += Prir1; vw_DrawFont(X1, Y1, -340, 0, 1.0f, 1.0f,1.0f,1.0f, MenuContentTransp, vw_GetText("3_Enemy_Armor_Penalty")); ButOff = false; if (Setup.Profile[CurrentProfile].NPCArmorPenalty == 1) ButOff = true; if (DrawButton128_2(X1+360, Y1-6, vw_GetText("1_Decrease"), MenuContentTransp, ButOff)) { Setup.Profile[CurrentProfile].NPCArmorPenalty--; if (Setup.Profile[CurrentProfile].NPCArmorPenalty < 1) Setup.Profile[CurrentProfile].NPCArmorPenalty = 1; } ButOff = false; if (Setup.Profile[CurrentProfile].NPCArmorPenalty == 4) ButOff = true; if (DrawButton128_2(X1+616, Y1-6, vw_GetText("1_Increase"), MenuContentTransp, ButOff)) { Setup.Profile[CurrentProfile].NPCArmorPenalty++; if (Setup.Profile[CurrentProfile].NPCArmorPenalty > 4) Setup.Profile[CurrentProfile].NPCArmorPenalty = 4; } if (Setup.Profile[CurrentProfile].NPCArmorPenalty == 1) { Size = vw_FontSize(vw_GetText("3_None")); SizeI = (110-Size)/2; vw_DrawFont(X1+498+SizeI, Y1, 0, 0, 1.0f, 1.0f,1.0f,1.0f, MenuContentTransp, vw_GetText("3_None")); } else { Size = vw_FontSize("x%i", Setup.Profile[CurrentProfile].NPCArmorPenalty); SizeI = (110-Size)/2; vw_DrawFont(X1+498+SizeI, Y1, 0, 0, 1.0f, 1.0f,1.0f,1.0f, MenuContentTransp, "x%i", Setup.Profile[CurrentProfile].NPCArmorPenalty); } Y1 += Prir1; vw_DrawFont(X1, Y1, -340, 0, 1.0f, 1.0f,1.0f,1.0f, MenuContentTransp, vw_GetText("3_Enemy_Targeting_Penalty")); ButOff = false; if (Setup.Profile[CurrentProfile].NPCTargetingSpeedPenalty == 1) ButOff = true; if (DrawButton128_2(X1+360, Y1-6, vw_GetText("1_Decrease"), MenuContentTransp, ButOff)) { Setup.Profile[CurrentProfile].NPCTargetingSpeedPenalty--; if (Setup.Profile[CurrentProfile].NPCTargetingSpeedPenalty < 1) Setup.Profile[CurrentProfile].NPCTargetingSpeedPenalty = 1; } ButOff = false; if (Setup.Profile[CurrentProfile].NPCTargetingSpeedPenalty == 4) ButOff = true; if (DrawButton128_2(X1+616, Y1-6, vw_GetText("1_Increase"), MenuContentTransp, ButOff)) { Setup.Profile[CurrentProfile].NPCTargetingSpeedPenalty++; if (Setup.Profile[CurrentProfile].NPCTargetingSpeedPenalty > 4) Setup.Profile[CurrentProfile].NPCTargetingSpeedPenalty = 4; } if (Setup.Profile[CurrentProfile].NPCTargetingSpeedPenalty == 1) { Size = vw_FontSize(vw_GetText("3_None")); SizeI = (110-Size)/2; vw_DrawFont(X1+498+SizeI, Y1, 0, 0, 1.0f, 1.0f,1.0f,1.0f, MenuContentTransp, vw_GetText("3_None")); } else { Size = vw_FontSize("x%i", Setup.Profile[CurrentProfile].NPCTargetingSpeedPenalty); SizeI = (110-Size)/2; vw_DrawFont(X1+498+SizeI, Y1, 0, 0, 1.0f, 1.0f,1.0f,1.0f, MenuContentTransp, "x%i", Setup.Profile[CurrentProfile].NPCTargetingSpeedPenalty); } Y1 += Prir1; vw_DrawFont(X1, Y1, -340, 0, 1.0f, 1.0f,1.0f,1.0f, MenuContentTransp, vw_GetText("3_Limited_Ammo")); if (DrawButton128_2(X1+360+128, Y1-6, vw_GetText(OnOff[Setup.Profile[CurrentProfile].LimitedAmmo]), MenuContentTransp, false)) { Setup.Profile[CurrentProfile].LimitedAmmo++; if (Setup.Profile[CurrentProfile].LimitedAmmo > 1) Setup.Profile[CurrentProfile].LimitedAmmo = 0; } Y1 += Prir1; vw_DrawFont(X1, Y1, -340, 0, 1.0f, 1.0f,1.0f,1.0f, MenuContentTransp, vw_GetText("3_Destroyable_Weapon")); if (DrawButton128_2(X1+360+128, Y1-6, vw_GetText(OnOff[Setup.Profile[CurrentProfile].DestroyableWeapon]), MenuContentTransp, false)) { Setup.Profile[CurrentProfile].DestroyableWeapon++; if (Setup.Profile[CurrentProfile].DestroyableWeapon > 1) Setup.Profile[CurrentProfile].DestroyableWeapon = 0; } Y1 += Prir1; vw_DrawFont(X1, Y1, -340, 0, 1.0f, 1.0f,1.0f,1.0f, MenuContentTransp, vw_GetText("3_Weapon_Targeting_Mode")); if (DrawButton128_2(X1+360+128, Y1-6, vw_GetText(ArcadeSim[Setup.Profile[CurrentProfile].WeaponTargetingMode]), MenuContentTransp, false)) { Setup.Profile[CurrentProfile].WeaponTargetingMode++; if (Setup.Profile[CurrentProfile].WeaponTargetingMode > 1) Setup.Profile[CurrentProfile].WeaponTargetingMode = 0; } Y1 += Prir1; vw_DrawFont(X1, Y1, -340, 0, 1.0f, 1.0f,1.0f,1.0f, MenuContentTransp, vw_GetText("3_SpaceShip_Control_Mode")); if (DrawButton128_2(X1+360+128, Y1-6, vw_GetText(ArcadeSim[Setup.Profile[CurrentProfile].SpaceShipControlMode]), MenuContentTransp, false)) { Setup.Profile[CurrentProfile].SpaceShipControlMode++; if (Setup.Profile[CurrentProfile].SpaceShipControlMode > 1) Setup.Profile[CurrentProfile].SpaceShipControlMode = 0; } // считаем общую сложность Setup.Profile[CurrentProfile].Difficulty = 100-( (Setup.Profile[CurrentProfile].NPCWeaponPenalty-1)*6+ (Setup.Profile[CurrentProfile].NPCArmorPenalty-1)*6+ (Setup.Profile[CurrentProfile].NPCTargetingSpeedPenalty-1)*6+ Setup.Profile[CurrentProfile].LimitedAmmo*14+ Setup.Profile[CurrentProfile].DestroyableWeapon*11+ Setup.Profile[CurrentProfile].WeaponTargetingMode*12+ Setup.Profile[CurrentProfile].SpaceShipControlMode*15); Y1 += Prir1; Size = vw_FontSize("%s: %i%%", vw_GetText("3_Current_Profile_Difficulty"), Setup.Profile[CurrentProfile].Difficulty); SizeI = (Setup.iAspectRatioWidth-Size)/2; vw_DrawFont(SizeI, Y1, 0, 0, 1.0f, 1.0f,1.0f,0.0f, MenuContentTransp, "%s: %i%%", vw_GetText("3_Current_Profile_Difficulty"), Setup.Profile[CurrentProfile].Difficulty); int X = Setup.iAspectRatioWidth/2 - 192; int Y = 175+95*5; if (DrawButton384(X,Y, vw_GetText("1_BACK"), MenuContentTransp, &Button1Transp, &LastButton1UpdateTime)) { ComBuffer = PROFILE; } }