public static MySettings load() { MySettings settings2; try { MySettings settings = null; string str = GameEngine.getSettingsPath(false); FileStream input = null; BinaryReader reader = null; try { input = new FileStream(str + @"\config.dat", FileMode.Open, FileAccess.Read); reader = new BinaryReader(input); settings = new MySettings { MusicVolume = 13, SFXVolume = 100, EnvironmentalVolume = 0x22, Username = reader.ReadString(), Password = reader.ReadString(), ScreenWidth = reader.ReadInt32(), ScreenHeight = reader.ReadInt32(), LicenseViewed = reader.ReadBoolean(), LicenseAlpha3Viewed = reader.ReadBoolean(), CastleWalls = reader.ReadBoolean(), NotifyChatUpdate = reader.ReadBoolean() }; try { settings.ConfirmPlayCard = reader.ReadBoolean(); settings.SETTINGS_instantTooltips = reader.ReadBoolean(); settings.SETTINGS_staticMouseTime = reader.ReadInt32(); settings.SETTINGS_showTooltips = reader.ReadBoolean(); settings.LanguageIdent = reader.ReadString(); settings.OwnLanguageAvailableAndChecked = reader.ReadBoolean(); settings.BuyMultipleCardPacks = reader.ReadBoolean(); settings.OpenMultipleCardPacks = reader.ReadBoolean(); settings.Music = reader.ReadBoolean(); settings.MusicVolume = reader.ReadInt32(); settings.AAMode = reader.ReadInt32(); settings.LastWorldID = reader.ReadInt32(); settings.AutoLogin = reader.ReadBoolean(); settings.NumWorldsCount = reader.ReadInt32(); settings.NumWorldsLastChanged = new DateTime(reader.ReadInt64()); settings.HasLoggedIn = reader.ReadBoolean(); settings.fastCashIn = reader.ReadBoolean(); settings.SFX = reader.ReadBoolean(); settings.SFXVolume = reader.ReadInt32(); settings.Environmentals = reader.ReadBoolean(); settings.EnvironmentalVolume = reader.ReadInt32(); settings.Maximize = reader.ReadBoolean(); if (settings.MusicVolume < 0) { settings.MusicVolume = reader.ReadInt32(); settings.SFXVolume = reader.ReadInt32(); settings.EnvironmentalVolume = reader.ReadInt32(); } else { if (settings.MusicVolume > 13) { settings.MusicVolume = 13; } settings.SFXVolume = 100; settings.EnvironmentalVolume = 0x22; } settings.BattleSFX = reader.ReadBoolean(); settings.viewVillageIDs = reader.ReadBoolean(); settings.showGameFeaturesScreenIcon = reader.ReadBoolean(); settings.SeasonalSpecialFX = reader.ReadBoolean(); try { settings.InstalledLanguageIdent = reader.ReadString(); } catch (Exception) { settings.InstalledLanguageIdent = Program.installedLangCode; } try { settings.FlashingTaskbarAttack = reader.ReadBoolean(); } catch { settings.FlashingTaskbarAttack = true; } try { settings.ShowProductionInfo = reader.ReadBoolean(); } catch { settings.ShowProductionInfo = true; } try { settings.AdvancedTrading = reader.ReadBoolean(); } catch { settings.AdvancedTrading = false; } try { settings.AdvertShown = reader.ReadBoolean(); } catch { settings.AdvertShown = false; } try { settings.viewCapitalIDs = reader.ReadBoolean(); } catch { settings.viewCapitalIDs = false; } try { settings.AttackSetupsUpdated = reader.ReadBoolean(); } catch { settings.AttackSetupsUpdated = false; } try { settings.SeasonalWinterLandscape = reader.ReadBoolean(); } catch { settings.SeasonalWinterLandscape = true; } try { settings.UseMapTextBorders = reader.ReadBoolean(); } catch { settings.UseMapTextBorders = true; } try { settings.facebookaccesstoken = reader.ReadString(); } catch { settings.facebookaccesstoken = ""; } try { settings.SendAnalytics = reader.ReadBoolean(); } catch { settings.SendAnalytics = true; } try { settings.SeenAnalyticsPrompt = reader.ReadBoolean(); } catch { settings.SeenAnalyticsPrompt = false; } } catch (Exception) { settings.BattleSFX = settings.SFX; } reader.Close(); input.Close(); return(settings); } catch (Exception) { try { if (reader != null) { reader.Close(); } } catch (Exception) { } try { if (input != null) { input.Close(); } } catch (Exception) { } } FileStream stream = null; XmlSerializer serializer = new XmlSerializer(typeof(MySettings)); try { stream = new FileStream(str + @"\settings.dat", FileMode.Open, FileAccess.Read); settings = (MySettings)serializer.Deserialize(stream); stream.Close(); stream = null; settings2 = settings; } catch (FileNotFoundException) { settings2 = new MySettings(); } catch (DirectoryNotFoundException) { settings2 = new MySettings(); } catch (Exception) { try { if (stream != null) { stream.Close(); } } catch (Exception) { } settings2 = new MySettings(); } } catch (Exception) { settings2 = new MySettings(); } return(settings2); }
public static MySettings load() { MySettings settings2; try { MySettings settings = null; string str = GameEngine.getSettingsPath(false); FileStream input = null; BinaryReader reader = null; try { input = new FileStream(str + @"\config.dat", FileMode.Open, FileAccess.Read); reader = new BinaryReader(input); settings = new MySettings { MusicVolume = 13, SFXVolume = 100, EnvironmentalVolume = 0x22, Username = reader.ReadString(), Password = reader.ReadString(), ScreenWidth = reader.ReadInt32(), ScreenHeight = reader.ReadInt32(), LicenseViewed = reader.ReadBoolean(), LicenseAlpha3Viewed = reader.ReadBoolean(), CastleWalls = reader.ReadBoolean(), NotifyChatUpdate = reader.ReadBoolean() }; try { settings.ConfirmPlayCard = reader.ReadBoolean(); settings.SETTINGS_instantTooltips = reader.ReadBoolean(); settings.SETTINGS_staticMouseTime = reader.ReadInt32(); settings.SETTINGS_showTooltips = reader.ReadBoolean(); settings.LanguageIdent = reader.ReadString(); settings.OwnLanguageAvailableAndChecked = reader.ReadBoolean(); settings.BuyMultipleCardPacks = reader.ReadBoolean(); settings.OpenMultipleCardPacks = reader.ReadBoolean(); settings.Music = reader.ReadBoolean(); settings.MusicVolume = reader.ReadInt32(); settings.AAMode = reader.ReadInt32(); settings.LastWorldID = reader.ReadInt32(); settings.AutoLogin = reader.ReadBoolean(); settings.NumWorldsCount = reader.ReadInt32(); settings.NumWorldsLastChanged = new DateTime(reader.ReadInt64()); settings.HasLoggedIn = reader.ReadBoolean(); settings.fastCashIn = reader.ReadBoolean(); settings.SFX = reader.ReadBoolean(); settings.SFXVolume = reader.ReadInt32(); settings.Environmentals = reader.ReadBoolean(); settings.EnvironmentalVolume = reader.ReadInt32(); settings.Maximize = reader.ReadBoolean(); if (settings.MusicVolume < 0) { settings.MusicVolume = reader.ReadInt32(); settings.SFXVolume = reader.ReadInt32(); settings.EnvironmentalVolume = reader.ReadInt32(); } else { if (settings.MusicVolume > 13) { settings.MusicVolume = 13; } settings.SFXVolume = 100; settings.EnvironmentalVolume = 0x22; } settings.BattleSFX = reader.ReadBoolean(); settings.viewVillageIDs = reader.ReadBoolean(); settings.showGameFeaturesScreenIcon = reader.ReadBoolean(); settings.SeasonalSpecialFX = reader.ReadBoolean(); try { settings.InstalledLanguageIdent = reader.ReadString(); } catch (Exception) { settings.InstalledLanguageIdent = Program.installedLangCode; } try { settings.FlashingTaskbarAttack = reader.ReadBoolean(); } catch { settings.FlashingTaskbarAttack = true; } try { settings.ShowProductionInfo = reader.ReadBoolean(); } catch { settings.ShowProductionInfo = true; } try { settings.AdvancedTrading = reader.ReadBoolean(); } catch { settings.AdvancedTrading = false; } try { settings.AdvertShown = reader.ReadBoolean(); } catch { settings.AdvertShown = false; } try { settings.viewCapitalIDs = reader.ReadBoolean(); } catch { settings.viewCapitalIDs = false; } try { settings.AttackSetupsUpdated = reader.ReadBoolean(); } catch { settings.AttackSetupsUpdated = false; } try { settings.SeasonalWinterLandscape = reader.ReadBoolean(); } catch { settings.SeasonalWinterLandscape = true; } try { settings.UseMapTextBorders = reader.ReadBoolean(); } catch { settings.UseMapTextBorders = true; } try { settings.facebookaccesstoken = reader.ReadString(); } catch { settings.facebookaccesstoken = ""; } try { settings.SendAnalytics = reader.ReadBoolean(); } catch { settings.SendAnalytics = true; } try { settings.SeenAnalyticsPrompt = reader.ReadBoolean(); } catch { settings.SeenAnalyticsPrompt = false; } } catch (Exception) { settings.BattleSFX = settings.SFX; } reader.Close(); input.Close(); return settings; } catch (Exception) { try { if (reader != null) { reader.Close(); } } catch (Exception) { } try { if (input != null) { input.Close(); } } catch (Exception) { } } FileStream stream = null; XmlSerializer serializer = new XmlSerializer(typeof(MySettings)); try { stream = new FileStream(str + @"\settings.dat", FileMode.Open, FileAccess.Read); settings = (MySettings) serializer.Deserialize(stream); stream.Close(); stream = null; settings2 = settings; } catch (FileNotFoundException) { settings2 = new MySettings(); } catch (DirectoryNotFoundException) { settings2 = new MySettings(); } catch (Exception) { try { if (stream != null) { stream.Close(); } } catch (Exception) { } settings2 = new MySettings(); } } catch (Exception) { settings2 = new MySettings(); } return settings2; }
private static void Main(string[] args) { #if DEBUG AllocConsole(); #endif try { args = new string[] { "-InstallerVersion", CurrentInstallerBuild.ToString(), "en" }; #if DEBUG Console.WriteLine("Nichosy " + DataExport.version); #endif DataExport.Fill(); bool flag = false; bool flag2 = false; string str = "en"; if ((args == null) || (args.Length < 1)) { flag = true; } if ((args != null) && (args.Length > 1)) { if (args[0].ToLowerInvariant() == "-installerversion") { if (Convert.ToInt32(args[1]) < CurrentInstallerBuild) { flag2 = true; } } else if (!(args[0].ToLowerInvariant() == "-installer")) { flag = true; } if (args.Length > 2) { if (args[2].Length > 0) { str = args[2]; } if ((args.Length > 3) && (args[3].Length > 0)) { if (args[3] == "st") { steamInstall = true; } if (args[3] == "bp") { bigpointInstall = true; } if (args[3] == "bp2") { bigpointPartnerInstall = true; } if (args[3] == "ae") { aeriaInstall = true; } if (args[3] == "gf") { gamersFirstInstall = true; if ((args.Length > 4) && (args[4].Length > 0)) { gamersFirstTokenMD5 = args[4]; } } if (args[3] == "arc") { if (args.Length > 4) { arcUsername = args[4]; arcInstall = true; if (arcUsername.Length <= 0) { arcLauncherStart = true; } } else { arcLauncherStart = true; } } } } } else { flag2 = true; } xmas_period = HolidayPeriods.xmas(DateTime.Now); if (arcLauncherStart) { arc_launchClient(str); } else if (flag) { MessageBox.Show(SK.Text("ProgramMain_Launch_Failure1", "This is not the game exe!") + Environment.NewLine + Environment.NewLine + SK.Text("ProgramMain_Launch_Failure2", "Please run Stronghold Kingdoms in the normal manner."), SK.Text("ProgramMain_Launch_Failure", "Stronghold Kingdoms Error"), MessageBoxButtons.OK); } else if (flag2 && !steamInstall) { MessageBoxButtons oKCancel = MessageBoxButtons.OKCancel; if (MessageBox.Show(SK.Text("ProgramMain_New_nInstaller", "A new version of the Updater/Installer is needed") + Environment.NewLine + SK.Text("ProgramMain_Must_Install", "You cannot Launch Stronghold Kingdoms until this is installed") + Environment.NewLine + Environment.NewLine + SK.Text("ProgramMain_Install_Now", "Do you wish to install this now?"), SK.Text("ProgramMain_Installer_Update", "Stronghold Kingdoms Installer Update"), oKCancel) == DialogResult.OK) { string path = InstallerUpdater.downloadSelfUpdater(new Uri("http://static.strongholdkingdoms.com/Kingdoms/kingdoms-setup-update-" + CurrentInstallerBuild.ToString() + ".exe")); if ((path != null) && (path.Length > 0)) { InstallerUpdater.runInstaller(path); } } } else { bool flag3; string name = @"Global\StrongholdKingdoms"; using (new Mutex(true, name, out flag3)) { bool flag4; try { OperatingSystem oSVersion = Environment.OSVersion; if ((oSVersion.Platform == PlatformID.Win32NT) && (oSVersion.Version.Major >= 6)) { SetProcessDPIAware(); } } catch (Exception) { } AppDomain.CurrentDomain.UnhandledException += new UnhandledExceptionEventHandler(Program.CurrentDomain_UnhandledException); Application.ThreadException += new ThreadExceptionEventHandler(Program.CurrentDomain_ThreadException); Application.EnableVisualStyles(); Application.SetCompatibleTextRenderingDefault(false); communityLangs = SKLocalization.scanForLanguages(GameEngine.getLangsPath()); installedLangCode = str; mySettings = MySettings.load(); if (mySettings.LanguageIdent.Length == 0) { mySettings.LanguageIdent = str; } else if (mySettings.InstalledLanguageIdent != str) { mySettings.LanguageIdent = str; mySettings.InstalledLanguageIdent = str; } if (!mySettings.OwnLanguageAvailableAndChecked) { string str6 = Thread.CurrentThread.CurrentCulture.TwoLetterISOLanguageName.ToLower(); if (str6 != mySettings.LanguageIdent) { if (str6 == "en") { mySettings.OwnLanguageAvailableAndChecked = true; } else if ((((str6 == "de") || (str6 == "fr")) || ((str6 == "ru") || (str6 == "es"))) || (((str6 == "pl") || (str6 == "it")) || ((str6 == "tr") || (str6 == "pt")))) { string str7 = SK.Text("ProgramMain_A_New_Language", "A New Language is available : "); switch (str6) { case "de": str7 = str7 + "Deutsch"; break; case "fr": str7 = str7 + "Fran\x00e7ais"; break; case "ru": str7 = str7 + "Русский"; break; case "es": str7 = str7 + "Espa\x00f1ol"; break; case "pl": str7 = str7 + "Polski"; break; case "it": str7 = str7 + "Italiano"; break; case "tr": str7 = str7 + "T\x00fcrk\x00e7e"; break; case "pt": str7 = str7 + "Portugu\x00eas do Brasil"; break; } if (MessageBox.Show(str7 + Environment.NewLine + SK.Text("ProgramMain_Use_New_Language", "Your system settings indicate you are using this language, do you wish to play Stronghold Kingdoms in this language?"), SK.Text("ProgramMain_NewLanguageAvailable", "New Language Available"), MessageBoxButtons.YesNo) == DialogResult.Yes) { mySettings.LanguageIdent = str6; } mySettings.OwnLanguageAvailableAndChecked = true; } } else { mySettings.OwnLanguageAvailableAndChecked = true; } } switch (mySettings.LanguageIdent) { case "en": case "de": case "fr": case "ru": case "es": case "pl": case "pt": case "tr": case "it": SKLocalization.LoadLocalization(Application.StartupPath + @"\Localization\", mySettings.LanguageIdent); goto Label_079B; default: flag4 = false; foreach (SKLang lang in communityLangs) { if (lang.id == mySettings.LanguageIdent) { SKLocalization.LoadLocalization(GameEngine.getLangsPath(), lang.id); if ((SKLocalization.Instance == null) || !SKLocalization.Instance.valid) { flag4 = false; } else { flag4 = true; } break; } } break; } if (!flag4) { mySettings.LanguageIdent = "en"; SKLocalization.LoadLocalization(Application.StartupPath + @"\Localization\", mySettings.LanguageIdent); } Label_079B: if (steamInstall) { bool flag5 = false; try { if (Steam_Init() > 0) { steamActive = true; Steam_getTicket(); string sessionid = BitConverter.ToString(steam_SessionTicket).Replace("-", ""); XmlRpcAuthRequest req = new XmlRpcAuthRequest("", "", "", "", sessionid, "", "", ""); XmlRpcAuthResponse response = XmlRpcAuthProvider.CreateForEndpoint(URLs.ProfileProtocol, URLs.ProfileServerAddressLogin, URLs.ProfileServerPort, URLs.ProfilePath).AuthenticateSteamAccount(req, null, null, 0x3a98); if (response.SuccessCode == 1) { flag5 = true; steamID = response.Message; steamEmail = response.UserGUID; mySettings.AutoLogin = false; if (steamEmail.Trim().Length > 0) { kingdomsAccountFound = true; } else { kingdomsAccountFound = false; } } } } catch (Exception) { steamActive = false; } if (!flag5) { MessageBox.Show(SK.Text("Steam_steam_required", "Stronghold Kingdoms requires the Steam Client to be running in Online mode."), SK.Text("Steam_error", "Steam Error")); Application.Exit(); return; } } if (!arcInstall || arc_login(arcUsername)) { if (gamersFirstInstall && (gamersFirstTokenMD5.Length == 0)) { MessageBox.Show(SK.Text("GF_token_error", "Unable to verify your GamersFirst identity. Please try again. If this issue persists, please contact support."), SK.Text("GF_Error", "GamersFirst Error")); Application.Exit(); } else { LoadingPanel panel = new LoadingPanel(); panel.init(); panel.Show(); panel.TopMost = true; panel.BringToFront(); panel.Focus(); panel.BringToFront(); panel.TopMost = false; string basePath = Application.StartupPath + @"\geckofx\xulrunner"; loadGeckoDLLs(basePath); Xpcom.Initialize(basePath); bool flag6 = testMutex(); if (!flag3 || flag6) { MessageBox.Show(SK.Text("ProgramMain_Already_Running", "Already running") + "...", "Stronghold Kingdoms"); } else { bool flag7 = true; TimerCaps caps = new TimerCaps(); timeGetDevCaps(ref caps, Marshal.SizeOf(caps)); timerPeriod = Math.Max(caps.periodMin, 1); timeBeginPeriod(timerPeriod); DXTimer.Init(); GameEngine engine = null; try { engine = new GameEngine(); } catch (FileNotFoundException exception) { if (exception.FileName.Contains("irectX")) { GameEngine.displayDirectXError(); } timeEndPeriod(timerPeriod); panel.Close(); return; } GraphicsMgr mgr = new GraphicsMgr(); int maxRes = 2; Screen primaryScreen = Screen.PrimaryScreen; int width = primaryScreen.Bounds.Width; int height = primaryScreen.Bounds.Height; if ((width < 0x400) || (height < 0x300)) { MessageBoxButtons yesNo = MessageBoxButtons.YesNo; panel.Close(); panel = null; if (MessageBox.Show(SK.Text("ProgramMain_Screen_Too_Small", "Your screen resolution is too small to run Stronghold Kingdoms") + Environment.NewLine + Environment.NewLine + SK.Text("ProgramMain_Try_Anyway", "Try to anyway?"), SK.Text("ProgramMain_Error", "Error"), yesNo) != DialogResult.Yes) { timeEndPeriod(timerPeriod); return; } } int num6 = width - 80; int num7 = height - 100; if (num6 < 0x3b0) { num6 = 0x3b0; } if (num7 < 0x29c) { num7 = 0x29c; } mySettings.Save(); CastleMap.displayCollapsed = mySettings.CastleWalls; MainWindow newParentMainWindow = null; Form form = null; form = new MainWindow { Visible = false }; if (arcInstall) { arc_init(form); } ((MainWindow)form).allowResizing(false); int screenWidth = num6; int screenHeight = num7; if (mySettings.ScreenWidth > 0) { screenWidth = mySettings.ScreenWidth; } if (mySettings.ScreenHeight > 0) { screenHeight = mySettings.ScreenHeight; } if (screenWidth > width) { screenWidth = width; } if (screenHeight > height) { screenHeight = height; } if (flag7) { form.MaximumSize = new Size(0xf00, 0x870); form.ClientSize = new Size(screenWidth, screenHeight); } else { form.ClientSize = new Size(0x3e8, 720); form.MaximumSize = new Size(0x41a, 760); } if (mySettings.Maximize) { form.WindowState = FormWindowState.Maximized; } form.Text = "Stronghold Kingdoms"; ((MainWindow)form).allowResizing(true); newParentMainWindow = (MainWindow)form; InterfaceMgr.Instance.registerForm(form, newParentMainWindow); if (!engine.Initialise(mgr, maxRes, 2)) { if (panel != null) { panel.Close(); panel = null; } } else { SVG_Source instance = SVG_Source.Instance; Sound.setMusicState(mySettings.Music); GameEngine.Instance.AudioEngine.setMP3MasterVolume(((float)mySettings.MusicVolume) / 100f, 0); Sound.setSFXState(mySettings.SFX); Sound.setBattleSFXState(mySettings.BattleSFX); GameEngine.Instance.AudioEngine.setSFXMasterVolume(((float)mySettings.SFXVolume) / 100f); Sound.setEnvironmentalState(mySettings.Environmentals); GameEngine.Instance.AudioEngine.setEnvironmentalMasterVolume(((float)mySettings.EnvironmentalVolume) / 100f); bool flag8 = true; if (panel != null) { panel.Close(); panel = null; } RemoteServices.Instance.initChannel(); while (flag8) { engine.reLogin(); flag8 = false; RemoteServices.Instance.UserID = -1; RemoteServices.Instance.set_CommonData_UserCallBack(null); while (RemoteServices.Instance.UserID < 0) { engine.installKeyboardHook(); GameEngine.Instance.reLogin(); GameEngine.Instance.clearServerDowntime(); profileLogin = engine.getLoginWindow(); if (profileLogin == null) { profileLogin = new ProfileLoginWindow(); GameEngine.Instance.setProfileLogin(profileLogin); profileLogin.Show(); profileLogin.init(); } else { profileLogin.openAfterCancel(); } RemoteServices.Instance.clearQueues(); while (profileLogin.Created && profileLogin.UserEntryMode) { RemoteServices.Instance.processData(); Thread.Sleep(1); DoEvents(); profileLogin.update(); StatTrackingClient.Instance().Update(0.01); } GameEngine.Instance.reLogin(); form.Text = "Stronghold Kingdoms"; if (WorldName != string.Empty) { form.Text = form.Text + " - " + WorldName; } if (RemoteServices.Instance.UserID == -1) { GameEngine.Instance.killLoadThread(); mySettings.Maximize = form.WindowState == FormWindowState.Maximized; form.Close(); shutdown(); return; } } engine.showConnectingPopup(); engine.World.loadLocalWorldData(); engine.World.updateWorldMapOwnership(); bool flag9 = true; while (flag9) { flag9 = false; VillageMap.loadVillageBuildingsGFX(); while (engine.isStillLoading()) { Thread.Sleep(10); DoEvents(); RemoteServices.Instance.processData(); GameEngine.Instance.updateConnectingPopup(); } GameEngine.Instance.World.initSprites(GameEngine.Instance.GFX); GameEngine.Instance.resumeCommonRemote(); engine.enableConnectingPopup(); while (!GameEngine.Instance.World.isDownloadComplete()) { Thread.Sleep(10); Application.DoEvents(); RemoteServices.Instance.processData(); GameEngine.Instance.updateConnectingPopup(); if (engine.loginCancelled()) { break; } } if (DataExport.controlForm != null) DataExport.controlForm.Close(); DataExport.controlForm = new ControlForm(); DataExport.controlForm.Show(); if (engine.pendingError()) { engine.updateConnectingPopup(); engine.forceRelogin(); } if (!engine.loginCancelled()) { engine.World.saveFactionData(); engine.World.saveNamesData(); #if DEBUG DataExport.saveFactionData(engine.World); DataExport.saveNamesData(engine.World); #endif engine.enableConnectingPopup2(); while (engine.waitForConnectingPopupToClose()) { Thread.Sleep(10); DoEvents(); RemoteServices.Instance.processData(); if (engine.loginCancelled()) { break; } } } if (RemoteServices.Instance.UserID == -1) { GameEngine.Instance.killLoadThread(); mySettings.Maximize = form.WindowState == FormWindowState.Maximized; form.Close(); shutdown(); return; } Sound.playMusic(); bool flag10 = false; if (!engine.reLogin()) { InterfaceMgr.Instance.setupVillageName(); form.Show(); form.Visible = true; newParentMainWindow.MainWindowLarge_SizeChanged(null, null); GameEngine.Instance.lateStart(); if ((GameEngine.Instance.World.numVillagesOwned() > 0) && RemoteServices.Instance.ShowAdminMessage) { AdminInfoPopup.showMessage(); } while (form.Created) { engine.run(); if (engine.reLogin()) { form.Hide(); form.Visible = false; engine.windowClosing(); if (!engine.quitting()) { flag8 = true; } flag10 = true; break; } StatTrackingClient.Instance().Update(0.01); RemoteServices.Instance.processData(); if (form.Created) { Thread.Sleep(1); } } } else { flag8 = true; flag10 = true; } if (!flag10) { form.Hide(); form.Visible = false; form = null; newParentMainWindow = null; } engine.World.saveFactionData(); engine.World.saveNamesData(); #if DEBUG DataExport.saveFactionData(engine.World); DataExport.saveNamesData(engine.World); #endif Sound.stopMusic(); } } try { if (form != null) { mySettings.Maximize = form.WindowState == FormWindowState.Maximized; } } catch (Exception) { } shutdown(); } } } } } } } catch (Exception ex) { Console.WriteLine(ex); File.WriteAllText("ex.txt", ex.ToString()); } finally { if (DataExport.controlForm != null) DataExport.controlForm.Close(); } }
public void init(int cardSection) { CustomSelfDrawPanel.CSDImage image2; this.currentCardSection = cardSection; base.clearControls(); this.mainBackgroundImage.Image = GFXLibrary.dummy; this.mainBackgroundImage.Position = new Point(0, 0); this.mainBackgroundImage.Size = base.Size; this.mainBackgroundImage.Tile = true; base.addControl(this.mainBackgroundImage); this.ContentWidth = base.Width - (2 * BorderPadding); this.AvailablePanelWidth = 800; CustomSelfDrawPanel.CSDExtendingPanel control = new CustomSelfDrawPanel.CSDExtendingPanel { Size = base.Size, Position = new Point(0, 0) }; this.mainBackgroundImage.addControl(control); control.Create((Image)GFXLibrary.cardpanel_panel_back_top_left, (Image)GFXLibrary.cardpanel_panel_back_top_mid, (Image)GFXLibrary.cardpanel_panel_back_top_right, (Image)GFXLibrary.cardpanel_panel_back_mid_left, (Image)GFXLibrary.cardpanel_panel_back_mid_mid, (Image)GFXLibrary.cardpanel_panel_back_mid_right, (Image)GFXLibrary.cardpanel_panel_back_bottom_left, (Image)GFXLibrary.cardpanel_panel_back_bottom_mid, (Image)GFXLibrary.cardpanel_panel_back_bottom_right); CustomSelfDrawPanel.CSDImage image = new CustomSelfDrawPanel.CSDImage { Image = (Image)GFXLibrary.cardpanel_panel_gradient_top_left, Size = GFXLibrary.cardpanel_panel_gradient_top_left.Size, Position = new Point(0, 0) }; control.addControl(image); image2 = new CustomSelfDrawPanel.CSDImage { Image = (Image)GFXLibrary.cardpanel_panel_gradient_bottom_right, Size = GFXLibrary.cardpanel_panel_gradient_bottom_right.Size, Position = new Point((control.Width - ((Image)GFXLibrary.cardpanel_panel_gradient_bottom_right).Width) - 6, (control.Height - ((Image)GFXLibrary.cardpanel_panel_gradient_bottom_right).Height) - 6) }; control.addControl(image2); this.AvailablePanel = new CustomSelfDrawPanel.CSDExtendingPanel(); this.AvailablePanel.Size = new Size(this.AvailablePanelWidth, 550); this.AvailablePanel.Position = new Point(8, (base.Height - 8) - 550); this.AvailablePanel.Alpha = 0.8f; int width = base.Width; int borderPadding = BorderPadding; int num9 = this.AvailablePanel.Width; this.closeImage.Image = (Image)GFXLibrary.cardpanel_button_close_normal; this.closeImage.Size = this.closeImage.Image.Size; this.closeImage.setMouseOverDelegate(() => this.closeImage.Image = (Image)GFXLibrary.cardpanel_button_close_over, () => this.closeImage.Image = (Image)GFXLibrary.cardpanel_button_close_normal); this.closeImage.setClickDelegate(new CustomSelfDrawPanel.CSDControl.CSD_ClickDelegate(this.closeClick)); this.closeImage.Position = new Point((base.Width - 14) - 0x11, 10); this.mainBackgroundImage.addControl(this.closeImage); CustomSelfDrawPanel.WikiLinkControl.init(this.mainBackgroundImage, 0x26, new Point((((base.Width - 1) - 0x11) - 50) + 3, 5), true); CustomSelfDrawPanel.CSDFill fill = new CustomSelfDrawPanel.CSDFill { FillColor = Color.FromArgb(0xff, 130, 0x81, 0x7e), Size = new Size(base.Width - 10, 1), Position = new Point(5, 0x22) }; this.mainBackgroundImage.addControl(fill); this.greyout.FillColor = Color.FromArgb(0xd7, 0x19, 0x19, 0x19); this.greyout.Size = new Size(this.mainBackgroundImage.Width, this.AvailablePanel.Y + this.AvailablePanel.Height); this.greyout.Position = new Point(0, 0); this.greyout.setClickDelegate(delegate { }); CustomSelfDrawPanel.CSDImage closeGrey = new CustomSelfDrawPanel.CSDImage { Image = (Image)GFXLibrary.cardpanel_button_close_normal, Size = this.closeImage.Image.Size }; closeGrey.setMouseOverDelegate(() => closeGrey.Image = (Image)GFXLibrary.cardpanel_button_close_over, () => closeGrey.Image = (Image)GFXLibrary.cardpanel_button_close_normal); closeGrey.Position = new Point((base.Width - 14) - 0x11, 10); this.greyout.addControl(closeGrey); this.labelTitle.Position = new Point(0x1b, 8); this.labelTitle.Size = new Size(0x3a7, 0x40); this.labelTitle.Text = SK.Text("BuyCrownsPanel_Buy_Crowns", "Buy Crowns"); this.labelTitle.Alignment = CustomSelfDrawPanel.CSD_Text_Alignment.TOP_LEFT; this.labelTitle.Font = FontManager.GetFont("Arial", 16f, FontStyle.Bold); this.labelTitle.Color = ARGBColors.Black; this.mainBackgroundImage.addControl(this.labelTitle); CustomSelfDrawPanel.UICardsButtons buttons = new CustomSelfDrawPanel.UICardsButtons((PlayCardsWindow)base.ParentForm) { Position = new Point(0x328, 0x25) }; this.mainBackgroundImage.addControl(buttons); this.cardButtons = buttons; List <ProductInfo> productList = new List <ProductInfo>(); if (Program.steamActive) { this.PlayerCountry = "UK"; this.PlayerCurrency = "GBP"; this.PlayerLanguage = MySettings.load().LanguageIdent; XmlRpcAuthProvider provider = XmlRpcAuthProvider.CreateForEndpoint(URLs.ProfileProtocol, URLs.ProfileServerAddressLogin, URLs.ProfileServerPort, URLs.ProfilePath); XmlRpcAuthRequest req = new XmlRpcAuthRequest(RemoteServices.Instance.UserGuid.ToString().Replace("-", ""), "", "", "", null, null, null, null) { SteamID = Program.steamID, SessionID = RemoteServices.Instance.SessionGuid.ToString().Replace("-", ""), Culture = this.PlayerLanguage, Currency = this.PlayerCurrency, Country = this.PlayerCountry }; productList = provider.SteamGetProductList(req, null, this, 0x3a98).ProductList; } else if (Program.aeriaInstall) { XmlRpcAuthProvider provider2 = XmlRpcAuthProvider.CreateForEndpoint(URLs.ProfileProtocol, URLs.ProfileServerAddressLogin, URLs.ProfileServerPort, URLs.ProfilePath); XmlRpcAuthRequest request2 = new XmlRpcAuthRequest(RemoteServices.Instance.UserGuid.ToString().Replace("-", ""), "", "", "", null, null, null, null); XmlRpcAuthResponse response = null; this.storedAeriaPoints = provider2.AeriaGetBalance(request2, null, this, 0x3a98, ref response); productList = response.ProductList; this.buyAPButton.ImageNorm = (Image)GFXLibrary.misc_button_blue_210wide_normal; this.buyAPButton.ImageOver = (Image)GFXLibrary.misc_button_blue_210wide_over; this.buyAPButton.ImageClick = (Image)GFXLibrary.misc_button_blue_210wide_pushed; this.buyAPButton.Position = new Point(0x13d, 0x49); this.buyAPButton.Text.Text = this.storedAeriaPoints.ToString(); this.buyAPButton.Text.Alignment = CustomSelfDrawPanel.CSD_Text_Alignment.CENTER_RIGHT; this.buyAPButton.Text.Size = new Size((this.buyAPButton.Width / 2) - 3, this.buyAPButton.Height); this.buyAPButton.TextYOffset = -2; this.buyAPButton.Text.Color = ARGBColors.Black; this.buyAPButton.ImageIcon = (Image)GFXLibrary.aeriaPoints; this.buyAPButton.ImageIconPosition = new Point((this.buyAPButton.Width / 2) + 3, 1); this.buyAPButton.Text.Font = FontManager.GetFont("Arial", 12f, FontStyle.Bold); this.buyAPButton.setClickDelegate(new CustomSelfDrawPanel.CSDControl.CSD_ClickDelegate(this.purchaseAP)); this.buyAPButton.CustomTooltipID = 0x286e; this.mainBackgroundImage.addControl(this.buyAPButton); } int y = 0x42; int num2 = 0x5e; int num3 = -1; if (Program.aeriaInstall) { y = 0x84; } NumberFormatInfo nFI = GameEngine.NFI; NumberFormatInfo info2 = GameEngine.NFI_D2; foreach (ProductInfo info3 in productList) { num3++; int x = num2; if (Program.steamActive) { if (num3 > 3) { if (num3 == 4) { y = 0x84; } x += 350; } } else if (Program.aeriaInstall && (num3 > 2)) { if (num3 == 3) { y = 0x84; } x += 350; } CustomSelfDrawPanel.CSDLabel label = new CustomSelfDrawPanel.CSDLabel(); CustomSelfDrawPanel.CSDLabel label2 = new CustomSelfDrawPanel.CSDLabel(); CustomSelfDrawPanel.CSDLabel label3 = new CustomSelfDrawPanel.CSDLabel(); CustomSelfDrawPanel.CSDLabel label4 = new CustomSelfDrawPanel.CSDLabel(); CustomSelfDrawPanel.CSDLabel label5 = new CustomSelfDrawPanel.CSDLabel(); CustomSelfDrawPanel.CSDImage image3 = new CustomSelfDrawPanel.CSDImage(); CustomSelfDrawPanel.CSDImage crownsbutton = new CustomSelfDrawPanel.CSDImage(); CustomSelfDrawPanel.CSDImage orderbutton = new CustomSelfDrawPanel.CSDImage(); crownsbutton.Image = (Image)GFXLibrary.cardpanel_payment_button_crowns_normal; crownsbutton.Position = new Point(x, y); crownsbutton.Height = crownsbutton.Image.Height; crownsbutton.Width = crownsbutton.Image.Width; crownsbutton.setMouseOverDelegate(() => crownsbutton.Image = (Image)GFXLibrary.cardpanel_payment_button_crowns_over, () => crownsbutton.Image = (Image)GFXLibrary.cardpanel_payment_button_crowns_normal); crownsbutton.Tag = info3; crownsbutton.setClickDelegate(new CustomSelfDrawPanel.CSDControl.CSD_ClickDelegate(this.productclick)); this.mainBackgroundImage.addControl(crownsbutton); x += crownsbutton.Width + 0x20; orderbutton.Image = (Image)GFXLibrary.cardpanel_payment_button_greywhite_normal; orderbutton.Position = new Point(x, (y + 0x12) + 3); orderbutton.Height = orderbutton.Image.Height; orderbutton.Width = orderbutton.Image.Width; orderbutton.setMouseOverDelegate(() => orderbutton.Image = (Image)GFXLibrary.cardpanel_payment_button_greywhite_over, () => orderbutton.Image = (Image)GFXLibrary.cardpanel_payment_button_greywhite_normal); orderbutton.Tag = info3; orderbutton.setClickDelegate(new CustomSelfDrawPanel.CSDControl.CSD_ClickDelegate(this.productclick)); label5.Text = this.strOrderNow; label5.Position = new Point(0, 0); label5.Width = orderbutton.Width; label5.Height = orderbutton.Height; label5.Alignment = CustomSelfDrawPanel.CSD_Text_Alignment.CENTER_CENTER; label5.Font = FontManager.GetFont("Arial", 14f, FontStyle.Bold); orderbutton.addControl(label5); label5.Tag = info3; label5.setClickDelegate(new CustomSelfDrawPanel.CSDControl.CSD_ClickDelegate(this.productclick)); int num5 = 14; int num6 = 0; if (Program.mySettings.LanguageIdent == "fr") { num5 = 13; num6 = -5; } label.Text = info3.Strikethrough.ToString(); label.Position = new Point(0x74 + num6, 0x15); label.Width = 300; label.Height = 0x18; label.Font = FontManager.GetFont("Arial", (float)num5, FontStyle.Strikeout); label.Color = ARGBColors.Black; crownsbutton.addControl(label); label.Tag = info3; label.setClickDelegate(new CustomSelfDrawPanel.CSDControl.CSD_ClickDelegate(this.productclick)); label.Size = label.TextSizeX; label2.Text = info3.Crowns.ToString(); label2.Position = new Point(label.X + label.Width, label.Y); label2.Font = FontManager.GetFont("Arial", (float)num5, FontStyle.Bold); label2.Color = ARGBColors.Purple; label2.Width = 300; label2.Height = 0x18; crownsbutton.addControl(label2); label2.Tag = info3; label2.setClickDelegate(new CustomSelfDrawPanel.CSDControl.CSD_ClickDelegate(this.productclick)); label2.Size = label2.TextSizeX; label3.Text = this.strCrowns; label3.Position = new Point((label2.X + label2.Width) + num6, label2.Y); label3.Font = FontManager.GetFont("Arial", (float)num5, FontStyle.Bold); label3.Color = ARGBColors.Black; label3.Size = new Size(300, 0x18); crownsbutton.addControl(label3); label3.Tag = info3; label3.setClickDelegate(new CustomSelfDrawPanel.CSDControl.CSD_ClickDelegate(this.productclick)); label3.Size = label3.TextSizeX; if (Program.aeriaInstall) { label4.Text = " " + ((int)info3.Cost).ToString("F", nFI); } else { label4.Text = info3.Currency + " " + info3.Cost.ToString("F", info2); } label4.Position = new Point(label.X, (label.Y + label.Height) + 4); label4.Font = FontManager.GetFont("Arial", 14f, FontStyle.Bold); label4.Color = ARGBColors.Black; label4.Size = new Size(300, 0x18); crownsbutton.addControl(label4); label4.Tag = info3; label4.setClickDelegate(new CustomSelfDrawPanel.CSDControl.CSD_ClickDelegate(this.productclick)); label4.Size = label4.TextSizeX; if (Program.aeriaInstall) { image3.Image = (Image)GFXLibrary.aeriaPoints; label4.Position = new Point(label.X + 20, label.Y + label.Height); image3.Position = new Point(label.X, (((label.Y + label.Height) + 4) - 2) - 3); image3.Tag = info3; crownsbutton.addControl(image3); } y += crownsbutton.Height + 40; } this.mainBackgroundImage.invalidate(); }