From: BuddyFriendGuy <bfggeneral@gmail.com>
Date: Sat, 16 May 2015 04:19:54 +0000 (-0400)
Subject: fix previous commit's bug; now the loop logic is the same as the original version... 
X-Git-Tag: xonotic-v0.8.1~12^2
X-Git-Url: https://git.rm.cloudns.org/?a=commitdiff_plain;h=01e628f1e0d7a2e6bdbe976ea8dc859024008469;p=xonotic%2Fxonotic.git

fix previous commit's bug; now the loop logic is the same as the original version, except for injectAtStart is surely to run once
---

diff --git a/misc/tools/NexuizDemoRecorder/main/src/main/java/com/nexuiz/demorecorder/application/democutter/DemoCutter.java b/misc/tools/NexuizDemoRecorder/main/src/main/java/com/nexuiz/demorecorder/application/democutter/DemoCutter.java
index 397a03bb..105ae12b 100644
--- a/misc/tools/NexuizDemoRecorder/main/src/main/java/com/nexuiz/demorecorder/application/democutter/DemoCutter.java
+++ b/misc/tools/NexuizDemoRecorder/main/src/main/java/com/nexuiz/demorecorder/application/democutter/DemoCutter.java
@@ -95,34 +95,38 @@ public class DemoCutter {
 					}
 					lastSvcTime = svctime;
 					
+					if (demoStarted < 1 && svctime > (startTime - 50)) {
+						injectBuffer = "slowmo " + ffwSpeedSecondStage;
+						demoStarted = 1;
+					}
+					if (demoStarted < 2 && svctime > (startTime - 5)) {
+						injectBuffer = "slowmo 1;" + injectBeforeCap;
+						demoStarted = 2;
+					}
+					if (demoStarted < 3 && svctime > startTime) {
+						injectBuffer = "cl_capturevideo 1";
+						demoStarted = 3;
+					}
+					if (!endIsReached && svctime > endTime) {
+						injectBuffer = "cl_capturevideo 0";
+						endIsReached = true;
+					}
+					if (endIsReached && !finalInjectionDone && svctime > (endTime + 1)) {
+						injectBuffer = injectAfterCap;
+						finalInjectionDone = true;
+					}
+					if (finalInjectionDone && !disconnectIssued && svctime > (endTime + 2)) {
+						injectBuffer = "disconnect";
+						disconnectIssued = true;
+					}
+					// ensure injectAtStart runs exactly once, before everything else
 					if (firstLoop) {
-						injectBuffer = "\011\n" + injectAtStart + ";slowmo " + ffwSpeedFirstStage + "\n\000";
+						injectBuffer = injectAtStart + ";slowmo " + ffwSpeedFirstStage + ";" + injectBuffer;
 						firstLoop = false;
-					} else {
-						if (demoStarted < 1 && svctime > (startTime - 50)) {
-							injectBuffer = "\011\nslowmo " + ffwSpeedSecondStage + "\n\000";
-							demoStarted = 1;
-						}
-						if (demoStarted < 2 && svctime > (startTime - 5)) {
-							injectBuffer = "\011\nslowmo 1;" + injectBeforeCap +"\n\000";
-							demoStarted = 2;
-						}
-						if (demoStarted < 3 && svctime > startTime) {
-							injectBuffer = "\011\ncl_capturevideo 1\n\000";
-							demoStarted = 3;
-						}
-						if (!endIsReached && svctime > endTime) {
-							injectBuffer = "\011\ncl_capturevideo 0\n\000";
-							endIsReached = true;
-						}
-						if (endIsReached && !finalInjectionDone && svctime > (endTime + 1)) {
-							injectBuffer = "\011\n" + injectAfterCap + "\n\000";
-							finalInjectionDone = true;
-						}
-						if (finalInjectionDone && !disconnectIssued && svctime > (endTime + 2)) {
-							injectBuffer = "\011\ndisconnect\n\000";
-							disconnectIssued = true;
-						}
+					}
+					// add Buffer head and tail
+					if (injectAtStart.length() > 0) {
+						injectBuffer = "\011\n" + checkInjectString(injectBuffer) + "\n\000";
 					}
 				}