// // CPT operator / SondeerGame // This source file is (c) by Deltares. // - October 2014 // //============================================================================= // // ------------------------------------------------------------ // © 2006, Geodelft // // Date Id Modification // 2006-10-09 The Created this header // 2006-10-09 The Implemented Dutch translations //============================================================================= class dialogVideoChangeOK extends GeoGUIPage; var Int Count; var string OrigRes, OrigDetail, DesRes; var GeoPlayerController GeoPC; var automated GeoFrame VidOKBackground; var automated GeoButton AcceptButton; var automated GeoButton RestoreButton; var automated GeoLabel VidOKQuestion; var automated GeoLabel VidOKTimer; //============================================================================= // Date Id Modification // 2006-10-09 The Created this header //============================================================================= function InitComponent(GUIController MyController, GUIComponent MyOwner) { Super.Initcomponent(MyController, MyOwner); GeoPC = GeoPlayerController(PlayerOwner()); } //============================================================================= // Date Id Modification // 2006-10-09 The Created this header //============================================================================= event Timer() { Count--; if (Count > 1) VidOKTimer.Caption = IL8N("RestoreTextPre") @ Count @ IL8N("RestoreTextPost"); else VidOKTimer.Caption = IL8N("RestoreTextSingular"); if (Count <= 0) { SetTimer(0); // Reset resolution here PlayerOwner().ConsoleCommand("setres"@OrigRes); SetDetailSettings(OrigDetail); Controller.CloseMenu(false); } } //============================================================================= // Date Id Modification // 2006-10-09 The Created this header //============================================================================= function Execute(string DesiredRes,string DesiredDetail) { local string res,bit,x,y; local int i; DesRes = DesiredRes; if (DesiredRes=="") return; //Log("dj;lkfjasdkl;fjsma/dfmskl;adjflkasdj"@DesiredDetail); OrigDetail = GeoPC.DetailSetting; //Log("aaaadj;lkfjasdkl;fjsma/dfmskl;adjflkasdj"@OrigDetail); res = Controller.GetCurrentRes(); bit = PlayerOwner().ConsoleCommand("get ini:Engine.Engine.RenderDevice Use16bit"); if (bit=="true") OrigRes=res$"x16"; else OrigRes=res$"x32"; if(bool(PlayerOwner().ConsoleCommand("ISFULLSCREEN"))) OrigRes=OrigRes$"f"; else OrigRes=OrigRes$"w"; if(DesiredRes != OrigRes) { PlayerOwner().ConsoleCommand("set ini:Engine.Engine.RenderDevice Use16bit"@(InStr(DesiredRes,"x16") != -1)); PlayerOwner().ConsoleCommand("setres"@DesiredRes); i = Instr(DesiredRes,"x"); x = left(DesiredRes,i); y = mid(DesiredRes,i+1); if( (int(x)<640) || (int(y)<480) ) { PlayerOwner().ConsoleCommand("tempsetres 640x480"); SetTimer(0,false); Controller.ReplaceMenu("GeoInterface.DeferChangeRes"); Controller.GameResolution = Left(DesiredRes,Len(DesiredRes) - 4); } else Controller.GameResolution = ""; } if(OrigDetail != DesiredDetail) { SetDetailSettings(DesiredDetail); } } //============================================================================= // Date Id Modification // 2007-06-15 Zmr Created this header //============================================================================= function SetDetailSettings(String DesiredDetail) { log("SetDetailSettings1"); if(DesiredDetail == "Low") { log("SetDetailSettings2"); GeoPC.DetailSetting = "Low"; PlayerOwner().ConsoleCommand("set ini:Engine.Engine.GameEngine CacheSizeMegs 32"); PlayerOwner().ConsoleCommand("set ini:Engine.Engine.ViewportManager TextureDetailInterface Normal"); PlayerOwner().ConsoleCommand("set ini:Engine.Engine.ViewportManager TextureDetailTerrain Low"); PlayerOwner().ConsoleCommand("set ini:Engine.Engine.ViewportManager TextureDetailWeaponSkin Low"); PlayerOwner().ConsoleCommand("set ini:Engine.Engine.ViewportManager TextureDetailPlayerSkin Low"); PlayerOwner().ConsoleCommand("set ini:Engine.Engine.ViewportManager TextureDetailWorld Lower"); PlayerOwner().ConsoleCommand("set ini:Engine.Engine.ViewportManager TextureDetailRenderMap Low"); PlayerOwner().ConsoleCommand("set ini:Engine.Engine.ViewportManager TextureDetailLightmap High"); PlayerOwner().ConsoleCommand("set ini:Engine.Engine.RenderDevice DetailTextures False"); PlayerOwner().ConsoleCommand("set ini:Engine.Engine.RenderDevice HighDetailActors False"); PlayerOwner().ConsoleCommand("set ini:Engine.Engine.RenderDevice SuperHighDetailActors False"); PlayerOwner().ConsoleCommand("set ini:Engine.Engine.RenderDevice UseTrilinear False"); PlayerOwner().ConsoleCommand("set ini:Engine.Engine.RenderDevice UseTripleBuffering False"); PlayerOwner().ConsoleCommand("set ini:Engine.Engine.RenderDevice UseVSync False"); PlayerOwner().ConsoleCommand("set ini:Engine.Engine.RenderDevice LevelOfAnisotropy 1"); PlayerOwner().ConsoleCommand("flush"); PlayerOwner().Level.DetailChange(DM_Low); } else if(DesiredDetail == "Medium") { log("SetDetailSettings3"); GeoPC.DetailSetting = "Medium" ; PlayerOwner().ConsoleCommand("set ini:Engine.Engine.GameEngine CacheSizeMegs 32"); PlayerOwner().ConsoleCommand("set ini:Engine.Engine.ViewportManager TextureDetailInterface High"); PlayerOwner().ConsoleCommand("set ini:Engine.Engine.ViewportManager TextureDetailTerrain High"); PlayerOwner().ConsoleCommand("set ini:Engine.Engine.ViewportManager TextureDetailWeaponSkin High"); PlayerOwner().ConsoleCommand("set ini:Engine.Engine.ViewportManager TextureDetailPlayerSkin High"); PlayerOwner().ConsoleCommand("set ini:Engine.Engine.ViewportManager TextureDetailWorld Normal"); PlayerOwner().ConsoleCommand("set ini:Engine.Engine.ViewportManager TextureDetailRenderMap High"); PlayerOwner().ConsoleCommand("set ini:Engine.Engine.ViewportManager TextureDetailLightmap UltraHigh"); PlayerOwner().ConsoleCommand("set ini:Engine.Engine.RenderDevice DetailTextures True"); PlayerOwner().ConsoleCommand("set ini:Engine.Engine.RenderDevice HighDetailActors True"); PlayerOwner().ConsoleCommand("set ini:Engine.Engine.RenderDevice SuperHighDetailActors False"); PlayerOwner().ConsoleCommand("set ini:Engine.Engine.RenderDevice UseTrilinear False"); PlayerOwner().ConsoleCommand("set ini:Engine.Engine.RenderDevice UseTripleBuffering False"); PlayerOwner().ConsoleCommand("set ini:Engine.Engine.RenderDevice UseVSync False"); PlayerOwner().ConsoleCommand("set ini:Engine.Engine.RenderDevice LevelOfAnisotropy 1"); PlayerOwner().ConsoleCommand("flush"); PlayerOwner().Level.DetailChange(DM_High); } else if(DesiredDetail == "High") { log("SetDetailSettings4"); GeoPC.DetailSetting = "High"; PlayerOwner().ConsoleCommand("set ini:Engine.Engine.GameEngine CacheSizeMegs 64"); PlayerOwner().ConsoleCommand("set ini:Engine.Engine.ViewportManager TextureDetailInterface UltraHigh"); PlayerOwner().ConsoleCommand("set ini:Engine.Engine.ViewportManager TextureDetailTerrain UltraHigh"); PlayerOwner().ConsoleCommand("set ini:Engine.Engine.ViewportManager TextureDetailWeaponSkin UltraHigh"); PlayerOwner().ConsoleCommand("set ini:Engine.Engine.ViewportManager TextureDetailPlayerSkin UltraHigh"); PlayerOwner().ConsoleCommand("set ini:Engine.Engine.ViewportManager TextureDetailWorld UltraHigh"); PlayerOwner().ConsoleCommand("set ini:Engine.Engine.ViewportManager TextureDetailRenderMap UltraHigh"); PlayerOwner().ConsoleCommand("set ini:Engine.Engine.ViewportManager TextureDetailLightmap UltraHigh"); PlayerOwner().ConsoleCommand("set ini:Engine.Engine.RenderDevice DetailTextures True"); PlayerOwner().ConsoleCommand("set ini:Engine.Engine.RenderDevice HighDetailActors True"); PlayerOwner().ConsoleCommand("set ini:Engine.Engine.RenderDevice SuperHighDetailActors True"); PlayerOwner().ConsoleCommand("set ini:Engine.Engine.RenderDevice UseTrilinear True"); PlayerOwner().ConsoleCommand("set ini:Engine.Engine.RenderDevice UseTripleBuffering True"); PlayerOwner().ConsoleCommand("set ini:Engine.Engine.RenderDevice UseVSync True"); PlayerOwner().ConsoleCommand("set ini:Engine.Engine.RenderDevice LevelOfAnisotropy 2"); PlayerOwner().ConsoleCommand("flush"); PlayerOwner().Level.DetailChange(DM_SuperHigh); } GeoPC.SaveConfig(); } //============================================================================= // Date Id Modification // 2006-10-09 The Created this header //============================================================================= function StartTimer() { Count = 15; SetTimer(1.0, true); } //============================================================================= // Date Id Modification // 2006-10-09 The Created this header //============================================================================= function bool InternalOnClick(GUIComponent Sender) { local int origFull,desFull; SetTimer(0); if (Sender == RestoreButton) { PlayerOwner().ConsoleCommand("setres"@OrigRes); SetDetailSettings(OrigDetail); } else { // accept button log(OrigRes); origFull = Instr(OrigRes ,"f"); desFull = Instr(DesRes ,"f"); if(origFull != -1) { if(desFull != -1) { //both are in full screen mode, so do nothing }else { //desired res is in windowed screen so store in ini PlayerOwner().ConsoleCommand("set ini:Engine.Engine.ViewportManager StartupFullscreen False"); } }else { if(desFull != -1) { //desired is in full screen mode so store in ini PlayerOwner().ConsoleCommand("set ini:Engine.Engine.ViewportManager StartupFullscreen True"); }else { //desired res is in windowed screen so do nothing } } } Controller.CloseMenu(false); return true; } //============================================================================= // Date Id Modification // 2006-10-09 The Created this header //============================================================================= defaultproperties { Begin Object Class=GeoFrame name=TVidOKBackground WinWidth=1.0 WinHeight=0.33 WinTop=0.33 WinLeft=0 End Object Begin Object Class=GeoButton Name=TAcceptButton INIOption="TAcceptButton" StyleName="GeoMenuButton" WinWidth=0.27 WinLeft=0.19 WinTop=0.53 OnClick=InternalOnClick End Object Begin Object Class=GeoButton Name=TBackButton INIOption="TBackButton" StyleName="GeoMenuButton" WinWidth=0.27 WinLeft=0.54 WinTop=0.53 OnClick=InternalOnClick End Object Begin Object class=GeoLabel Name=TVideoOKQuestion INIOption="TVideoOKQuestion" TextALign=TXTA_Center TextColor=(R=230,G=200,B=0,A=255) TextFont="GeoLargeFont" WinWidth=1 WinLeft=0 WinTop=0.33 WinHeight=0.2 End Object Begin Object class=GeoLabel Name=TVideoOKTimer INIOption="TVideoOKTimer" TextALign=TXTA_Center TextFont="GeoNormalFont" WinWidth=1 WinLeft=0 WinTop=0.48 End Object VidOKBackground=TVidOKBackground AcceptButton=TAcceptButton RestoreButton=TBackButton VidOKQuestion=TVideoOKQuestion VidOKTimer=TVideoOKTimer OnActivate=StartTimer }