From 2c0ef99871677d6247e49cd65b027eb14a0ebe13 Mon Sep 17 00:00:00 2001 From: "sigonasr2, Sig, Sigo" Date: Thu, 9 Jun 2022 18:58:12 +0000 Subject: [PATCH] remove iterators for slight performance gains Co-authored-by: r3cp3ct <45179536+r3cp3ct@users.noreply.github.com> Co-authored-by: sigonasr2 --- bin/RabiClone.jar | Bin 261303 -> 261605 bytes src/sig/RabiClone.java | 28 +++++++++++++++++++++++++ src/sig/engine/KeyBind.java | 6 ++++-- src/sig/engine/String.java | 3 ++- src/sig/objects/ConfigureControls.java | 9 ++++---- 5 files changed, 39 insertions(+), 7 deletions(-) diff --git a/bin/RabiClone.jar b/bin/RabiClone.jar index bbbde1ae9464e54dff2e241dcc868bb9114ec2f4..c0dc4517e44d703b083ae5a3ff37cf428e064d85 100644 GIT binary patch delta 14405 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 delta 14185 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 QbX`L!(Hz^rogC8t1EGrs0ssI2 diff --git a/src/sig/RabiClone.java b/src/sig/RabiClone.java index 3d46bdc..68d47be 100644 --- a/src/sig/RabiClone.java +++ b/src/sig/RabiClone.java @@ -51,6 +51,10 @@ public class RabiClone{ public static long lastControllerScan = System.currentTimeMillis(); + static long lastUpdate=System.nanoTime(); + final static long TARGET_FRAMETIME = 8333333l; + static long lastReportedTime=System.currentTimeMillis(); + public static void main(String[] args) { Key.InitializeKeyConversionMap(); @@ -124,8 +128,11 @@ public class RabiClone{ OBJ.remove(i--); } } + + waitForNextFrame(); } } + private static void handleGameControllers() { for (int i=0;i1000) { + System.err.println("WARNING! Update loop is underperforming!"); + lastReportedTime=System.currentTimeMillis(); + } + } + lastUpdate=newTime; + } } diff --git a/src/sig/engine/KeyBind.java b/src/sig/engine/KeyBind.java index 4651029..8d46877 100644 --- a/src/sig/engine/KeyBind.java +++ b/src/sig/engine/KeyBind.java @@ -76,9 +76,11 @@ public class KeyBind { public static void poll() { //Polls all KeyBinds based on device. - for (Action a : Action.values()) { + for (int i=0;i()); StringBuilder renderedText=new StringBuilder(a.toString()).append(": "); List sectionList = actionHighlightSections.get(a.ordinal()); sectionList.clear(); - for (int i=0;i