private void btnDone_Click(object sender, RoutedEventArgs e) { try { if (GameInfo == null) { GameInfo = new GameInfo() { Region = _region } } ; var trimmedData = data.Take(currentPic.Clamp(0, _secretLength)).ToArray(); switch (Mode) { case SecretType.Game: GameSecret gs = new GameSecret(); gs.Load(trimmedData, _region); gs.UpdateGameInfo(GameInfo); break; case SecretType.Ring: RingSecret rs = new RingSecret(); rs.Load(trimmedData, _region); rs.UpdateGameInfo(GameInfo, chkAppendRings.IsChecked == true); break; case SecretType.Memory: MemorySecret ms = new MemorySecret(); ms.Load(trimmedData, _region); // Now what? break; } this.Close(); } catch (SecretException ex) { MessageBox.Show(ex.Message, "Invalid Secret", MessageBoxButton.OK, MessageBoxImage.Error); } catch (Exception ex) { MessageBox.Show(ex.Message, "Error", MessageBoxButton.OK, MessageBoxImage.Error); } }
protected void OnButtonOkPressed(object sender, EventArgs e) { try { if (GameInfo == null) { GameInfo = new GameInfo(); } var trimmedData = data.Take(currentPic.Clamp(0, _secretLength)).ToArray(); switch (Mode) { case SecretType.Game: GameSecret gs = new GameSecret(_region); gs.Load(trimmedData); gs.UpdateGameInfo(GameInfo); break; case SecretType.Ring: RingSecret rs = new RingSecret(_region); rs.Load(trimmedData); rs.UpdateGameInfo(GameInfo, chkAppendRings.Active); break; case SecretType.Memory: MemorySecret ms = new MemorySecret(_region); ms.Load(trimmedData); // Now what? break; } this.Respond(ResponseType.Ok); } catch (InvalidSecretException ex) { MessageBox.Show(ex.Message, "Invalid Secret", ButtonsType.Ok, MessageType.Error); } catch (Exception ex) { MessageBox.Show(ex.Message, "Error", ButtonsType.Ok, MessageType.Error); } }
public void TestLoadSlot3() { string tempFile = Path.GetTempFileName(); var asm = Assembly.GetExecutingAssembly(); using (Stream s = asm.GetManifestResourceStream("Zyrenth.Zora.Tests.TestSaves.Ages_JP.srm")) using (FileStream fs = File.OpenWrite(tempFile)) { s.CopyTo(fs); } GameInfo info = BatteryFileLoader.Load(tempFile, GameRegion.JP, BatteryFileLoader.Slot3Offset); Assert.IsNotNull(info); var gs = new GameSecret(); var test = new GameInfo(); gs.Load("かね69わ 4さをれか さ7ちわも るこぴりお", GameRegion.JP); gs.UpdateGameInfo(test); Assert.AreEqual(test, info); }