project: Mixins
This commit is contained in:
@@ -27,7 +27,7 @@ object ProjectVersions {
|
|||||||
const val launcherVersion = "2.2.0"
|
const val launcherVersion = "2.2.0"
|
||||||
const val rlVersion = "1.8.0"
|
const val rlVersion = "1.8.0"
|
||||||
|
|
||||||
const val openosrsVersion = "4.13.3"
|
const val openosrsVersion = "4.14.0"
|
||||||
|
|
||||||
const val rsversion = 200
|
const val rsversion = 200
|
||||||
const val cacheversion = 165
|
const val cacheversion = 165
|
||||||
|
|||||||
@@ -77,7 +77,7 @@ public class Deob
|
|||||||
|
|
||||||
Stopwatch stopwatch = Stopwatch.createStarted();
|
Stopwatch stopwatch = Stopwatch.createStarted();
|
||||||
|
|
||||||
ClassGroup group = JarUtil.load(new File(args[0]));
|
ClassGroup group = JarUtil.load(new File(args[0]), true);
|
||||||
|
|
||||||
// remove except RuntimeException
|
// remove except RuntimeException
|
||||||
run(group, new RuntimeExceptions());
|
run(group, new RuntimeExceptions());
|
||||||
|
|||||||
@@ -50,6 +50,11 @@ public class JarUtil
|
|||||||
private static final Logger logger = LoggerFactory.getLogger(JarUtil.class);
|
private static final Logger logger = LoggerFactory.getLogger(JarUtil.class);
|
||||||
|
|
||||||
public static ClassGroup load(File jarfile)
|
public static ClassGroup load(File jarfile)
|
||||||
|
{
|
||||||
|
return load(jarfile, false);
|
||||||
|
}
|
||||||
|
|
||||||
|
public static ClassGroup load(File jarfile, boolean skip)
|
||||||
{
|
{
|
||||||
ClassGroup group = new ClassGroup();
|
ClassGroup group = new ClassGroup();
|
||||||
|
|
||||||
@@ -59,7 +64,7 @@ public class JarUtil
|
|||||||
{
|
{
|
||||||
JarEntry entry = it.nextElement();
|
JarEntry entry = it.nextElement();
|
||||||
|
|
||||||
if (!entry.getName().endsWith(".class"))
|
if (!entry.getName().endsWith(".class") || (skip && entry.getName().contains("bouncycastle")))
|
||||||
{
|
{
|
||||||
continue;
|
continue;
|
||||||
}
|
}
|
||||||
@@ -93,12 +98,17 @@ public class JarUtil
|
|||||||
}
|
}
|
||||||
|
|
||||||
public static ClassGroup loadClasses(Collection<File> files) throws IOException
|
public static ClassGroup loadClasses(Collection<File> files) throws IOException
|
||||||
|
{
|
||||||
|
return loadClasses(files, false);
|
||||||
|
}
|
||||||
|
|
||||||
|
public static ClassGroup loadClasses(Collection<File> files, boolean skip) throws IOException
|
||||||
{
|
{
|
||||||
final ClassGroup group = new ClassGroup();
|
final ClassGroup group = new ClassGroup();
|
||||||
|
|
||||||
for (File file : files)
|
for (File file : files)
|
||||||
{
|
{
|
||||||
if (!file.getName().endsWith(".class"))
|
if (!file.getName().endsWith(".class") || (skip && file.getName().contains("bouncycastle")))
|
||||||
{
|
{
|
||||||
continue;
|
continue;
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -1548,9 +1548,9 @@ public abstract class RSClientMixin implements RSClient
|
|||||||
return WorldType.fromMask(flags);
|
return WorldType.fromMask(flags);
|
||||||
}
|
}
|
||||||
|
|
||||||
@Inject
|
@Copy("openMenu")
|
||||||
@MethodHook("openMenu")
|
@Replace("openMenu")
|
||||||
public void menuOpened(int x, int y)
|
public void copy$openMenu(int x, int y)
|
||||||
{
|
{
|
||||||
final MenuOpened event = new MenuOpened();
|
final MenuOpened event = new MenuOpened();
|
||||||
event.setMenuEntries(getMenuEntries());
|
event.setMenuEntries(getMenuEntries());
|
||||||
@@ -1560,6 +1560,10 @@ public abstract class RSClientMixin implements RSClient
|
|||||||
{
|
{
|
||||||
setMenuEntries(event.getMenuEntries());
|
setMenuEntries(event.getMenuEntries());
|
||||||
}
|
}
|
||||||
|
|
||||||
|
copy$openMenu(x, y);
|
||||||
|
|
||||||
|
client.getScene().menuOpen(client.getPlane(), x - client.getViewportXOffset(), y - client.getViewportYOffset(), false);
|
||||||
}
|
}
|
||||||
|
|
||||||
@Inject
|
@Inject
|
||||||
@@ -2435,8 +2439,7 @@ public abstract class RSClientMixin implements RSClient
|
|||||||
@Inject
|
@Inject
|
||||||
public void setUnlockedFps(boolean unlocked)
|
public void setUnlockedFps(boolean unlocked)
|
||||||
{
|
{
|
||||||
// unlockedFps = unlocked;
|
unlockedFps = unlocked;
|
||||||
unlockedFps = false;
|
|
||||||
|
|
||||||
if (unlocked)
|
if (unlocked)
|
||||||
{
|
{
|
||||||
|
|||||||
@@ -48,15 +48,18 @@ public abstract class RSNanoClockMixin implements RSNanoClock
|
|||||||
else
|
else
|
||||||
{
|
{
|
||||||
long nanoTime = System.nanoTime();
|
long nanoTime = System.nanoTime();
|
||||||
|
|
||||||
if (nanoTime < getLastTimeNano())
|
if (nanoTime < getLastTimeNano())
|
||||||
{
|
{
|
||||||
setLastTimeNano(nanoTime);
|
setLastTimeNano(nanoTime);
|
||||||
|
|
||||||
return 1;
|
return 1;
|
||||||
}
|
}
|
||||||
else
|
else
|
||||||
{
|
{
|
||||||
long cycleDuration = (long) cycleDurationMillis * 1000000L;
|
long cycleDuration = (long) cycleDurationMillis * 1000000L;
|
||||||
long diff = nanoTime - getLastTimeNano();
|
long diff = nanoTime - getLastTimeNano();
|
||||||
|
|
||||||
int cycles = (int) (diff / cycleDuration);
|
int cycles = (int) (diff / cycleDuration);
|
||||||
|
|
||||||
setLastTimeNano(getLastTimeNano() + (long) cycles * cycleDuration);
|
setLastTimeNano(getLastTimeNano() + (long) cycles * cycleDuration);
|
||||||
|
|||||||
@@ -122,28 +122,22 @@ public abstract class RSSceneMixin implements RSScene
|
|||||||
|
|
||||||
final boolean isGpu = client.isGpu();
|
final boolean isGpu = client.isGpu();
|
||||||
final boolean checkClick = client.isCheckClick();
|
final boolean checkClick = client.isCheckClick();
|
||||||
if (!client.isMenuOpen())
|
final boolean menuOpen = client.isMenuOpen();
|
||||||
|
|
||||||
|
if (!menuOpen && !checkClick)
|
||||||
{
|
{
|
||||||
// Force check click to update the selected tile
|
client.getScene().menuOpen(client.getPlane(), client.getMouseX() - client.getViewportXOffset(), client.getMouseY() - client.getViewportYOffset(), false);
|
||||||
client.setCheckClick(true);
|
|
||||||
final int mouseX = client.getMouseX();
|
|
||||||
final int mouseY = client.getMouseY();
|
|
||||||
client.setMouseCanvasHoverPositionX(mouseX - client.getViewportXOffset());
|
|
||||||
client.setMouseCanvasHoverPositionY(mouseY - client.getViewportYOffset());
|
|
||||||
}
|
}
|
||||||
|
|
||||||
if (!isGpu)
|
if (!isGpu && skyboxColor != 0)
|
||||||
{
|
{
|
||||||
if (skyboxColor != 0)
|
client.rasterizerFillRectangle(
|
||||||
{
|
client.getViewportXOffset(),
|
||||||
client.rasterizerFillRectangle(
|
client.getViewportYOffset(),
|
||||||
client.getViewportXOffset(),
|
client.getViewportWidth(),
|
||||||
client.getViewportYOffset(),
|
client.getViewportHeight(),
|
||||||
client.getViewportWidth(),
|
skyboxColor
|
||||||
client.getViewportHeight(),
|
);
|
||||||
skyboxColor
|
|
||||||
);
|
|
||||||
}
|
|
||||||
}
|
}
|
||||||
|
|
||||||
final int maxX = getMaxX();
|
final int maxX = getMaxX();
|
||||||
@@ -305,7 +299,7 @@ public abstract class RSSceneMixin implements RSScene
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
if (!client.isMenuOpen())
|
if (!menuOpen)
|
||||||
{
|
{
|
||||||
rl$hoverY = -1;
|
rl$hoverY = -1;
|
||||||
rl$hoverX = -1;
|
rl$hoverX = -1;
|
||||||
@@ -408,10 +402,6 @@ public abstract class RSSceneMixin implements RSScene
|
|||||||
client.setEntitiesAtMouseCount(0);
|
client.setEntitiesAtMouseCount(0);
|
||||||
}
|
}
|
||||||
client.setCheckClick(false);
|
client.setCheckClick(false);
|
||||||
if (!checkClick)
|
|
||||||
{
|
|
||||||
client.setViewportWalking(false);
|
|
||||||
}
|
|
||||||
client.getCallbacks().drawScene();
|
client.getCallbacks().drawScene();
|
||||||
|
|
||||||
if (client.getDrawCallbacks() != null)
|
if (client.getDrawCallbacks() != null)
|
||||||
@@ -497,12 +487,6 @@ public abstract class RSSceneMixin implements RSScene
|
|||||||
client.setEntitiesAtMouseCount(0);
|
client.setEntitiesAtMouseCount(0);
|
||||||
}
|
}
|
||||||
client.setCheckClick(false);
|
client.setCheckClick(false);
|
||||||
if (!checkClick)
|
|
||||||
{
|
|
||||||
// If checkClick was false, then the selected tile wouldn't have existed next tick,
|
|
||||||
// so clear viewport walking in order to prevent it triggering a walk
|
|
||||||
client.setViewportWalking(false);
|
|
||||||
}
|
|
||||||
client.getCallbacks().drawScene();
|
client.getCallbacks().drawScene();
|
||||||
if (client.getDrawCallbacks() != null)
|
if (client.getDrawCallbacks() != null)
|
||||||
{
|
{
|
||||||
|
|||||||
@@ -85,4 +85,7 @@ public interface RSScene extends Scene
|
|||||||
|
|
||||||
byte[][][] getTileShapes();
|
byte[][][] getTileShapes();
|
||||||
void setTileShapes(byte[][][] tileShapes);
|
void setTileShapes(byte[][][] tileShapes);
|
||||||
|
|
||||||
|
@Import("menuOpen")
|
||||||
|
void menuOpen(int selectedPlane, int screenX, int screenY, boolean viewportWalking);
|
||||||
}
|
}
|
||||||
|
|||||||
Reference in New Issue
Block a user