From d891436427eda62f1047c7932350dc4366361bf9 Mon Sep 17 00:00:00 2001 From: CrushedPixel Date: Tue, 9 Jun 2015 23:16:45 +0200 Subject: [PATCH] Markers are now being saved upon exiting the Replay --- .../replaymod/events/KeyInputHandler.java | 2 +- .../replaymod/replay/ReplayHandler.java | 22 +++++++++++++------ 2 files changed, 16 insertions(+), 8 deletions(-) diff --git a/src/main/java/eu/crushedpixel/replaymod/events/KeyInputHandler.java b/src/main/java/eu/crushedpixel/replaymod/events/KeyInputHandler.java index 4363e2fd..d2d28687 100755 --- a/src/main/java/eu/crushedpixel/replaymod/events/KeyInputHandler.java +++ b/src/main/java/eu/crushedpixel/replaymod/events/KeyInputHandler.java @@ -164,7 +164,7 @@ public class KeyInputHandler { } if(kb.getKeyDescription().equals(KeybindRegistry.KEY_CLEAR_KEYFRAMES) && (kb.isPressed() || kb.getKeyCode() == keyCode)) { - ReplayHandler.resetKeyframes(); + ReplayHandler.resetKeyframes(false); } if(kb.getKeyDescription().equals(KeybindRegistry.KEY_SYNC_TIMELINE) && (kb.isPressed() || kb.getKeyCode() == keyCode)) { diff --git a/src/main/java/eu/crushedpixel/replaymod/replay/ReplayHandler.java b/src/main/java/eu/crushedpixel/replaymod/replay/ReplayHandler.java index 4903a455..477d7958 100755 --- a/src/main/java/eu/crushedpixel/replaymod/replay/ReplayHandler.java +++ b/src/main/java/eu/crushedpixel/replaymod/replay/ReplayHandler.java @@ -381,16 +381,20 @@ public class ReplayHandler { return new ArrayList(keyframes); } - public static void resetKeyframes() { + public static void resetKeyframes(boolean resetMarkers) { MarkerKeyframe[] markers = getMarkers(); keyframes = new ArrayList(); - for(MarkerKeyframe mk : markers) { - keyframes.add(mk); - } + if(!resetMarkers) { + for(MarkerKeyframe mk : markers) { + keyframes.add(mk); + } - if(!(selectedKeyframe instanceof MarkerKeyframe)) + if(!(selectedKeyframe instanceof MarkerKeyframe)) + selectKeyframe(null); + } else { selectKeyframe(null); + } } public static boolean isSelected(Keyframe kf) { @@ -414,7 +418,7 @@ public class ReplayHandler { ReplayMod.chatMessageHandler.initialize(); mc.ingameGUI.getChatGUI().clearChatMessages(); - resetKeyframes(); + resetKeyframes(true); if(ReplayMod.replaySender != null) { ReplayMod.replaySender.terminateReplay(); @@ -512,13 +516,17 @@ public class ReplayHandler { if (currentReplayFile != null) { try { currentReplayFile.close(); + + File markerFile = File.createTempFile(ReplayFile.ENTRY_MARKERS, "json"); + ReplayFileIO.writeMarkersToFile(getMarkers(), markerFile); + ReplayMod.replayFileAppender.registerModifiedFile(markerFile, ReplayFile.ENTRY_MARKERS, ReplayHandler.getReplayFile()); } catch (IOException e) { e.printStackTrace(); } currentReplayFile = null; } - resetKeyframes(); + resetKeyframes(true); inReplay = false; }