Merge branch 'master' of https://github.com/open-osrs/runelite into fix-test-branch

This commit is contained in:
James
2019-11-29 00:56:16 -05:00
405 changed files with 43510 additions and 41872 deletions
+1 -1
View File
@@ -37,7 +37,7 @@ jobs:
- name: Assembling - name: Assembling
run: ./gradlew assemble --console=plain run: ./gradlew assemble --console=plain
- name: Building - name: Building
run: ./gradlew build --stacktrace -x test -x checkstyleMain --console=plain run: ./gradlew build --stacktrace -x test -x checkstyleMain -x checkstyleTest --console=plain
test: test:
runs-on: ubuntu-latest runs-on: ubuntu-latest
+3 -3
View File
@@ -27,11 +27,11 @@ const val kotlinVersion = "1.3.50"
object ProjectVersions { object ProjectVersions {
const val launcherVersion = "2.0.4" const val launcherVersion = "2.0.4"
const val rlVersion = "1.5.42-SNAPSHOT" const val rlVersion = "1.5.42"
const val openosrsVersion = "2.1.15.0-SNAPSHOT" const val openosrsVersion = "2.1.15.0"
const val rsversion = 185 const val rsversion = 186
const val cacheversion = 165 const val cacheversion = 165
} }
+21
View File
@@ -90,4 +90,25 @@ tasks {
filter(ReplaceTokens::class, "tokens" to tokens) filter(ReplaceTokens::class, "tokens" to tokens)
filteringCharset = "UTF-8" filteringCharset = "UTF-8"
} }
register<JavaExec>("Downloader.main()") {
group = "gamepack"
classpath = project.sourceSets.main.get().runtimeClasspath
main = "net.runelite.gamepack.Downloader"
}
register<JavaExec>("Deob.main()") {
group = "gamepack"
classpath = project.sourceSets.main.get().runtimeClasspath
main = "net.runelite.deob.Deob"
}
register<JavaExec>("UpdateMappings.main()") {
group = "gamepack"
classpath = project.sourceSets.main.get().runtimeClasspath
main = "net.runelite.deob.updater.UpdateMappings"
}
} }
@@ -57,4 +57,9 @@ public class Downloader
e.printStackTrace(); e.printStackTrace();
} }
} }
public static void main(String[] args)
{
gamepack();
}
} }
@@ -26,7 +26,7 @@
package net.runelite.http.api.worlds; package net.runelite.http.api.worlds;
import com.google.gson.JsonParseException; import com.google.gson.JsonParseException;
import io.reactivex.Observable; import java.io.IOException;
import java.io.InputStream; import java.io.InputStream;
import java.io.InputStreamReader; import java.io.InputStreamReader;
import javax.inject.Inject; import javax.inject.Inject;
@@ -50,7 +50,7 @@ public class WorldClient
this.client = client; this.client = client;
} }
public Observable<WorldResult> lookupWorlds() public WorldResult lookupWorlds() throws IOException
{ {
HttpUrl url = RuneLiteAPI.getApiBase().newBuilder() HttpUrl url = RuneLiteAPI.getApiBase().newBuilder()
.addPathSegment("worlds.js") .addPathSegment("worlds.js")
@@ -58,8 +58,6 @@ public class WorldClient
logger.debug("Built URI: {}", url); logger.debug("Built URI: {}", url);
return Observable.defer(() ->
{
Request request = new Request.Builder() Request request = new Request.Builder()
.url(url) .url(url)
.build(); .build();
@@ -69,16 +67,15 @@ public class WorldClient
if (!response.isSuccessful()) if (!response.isSuccessful())
{ {
logger.debug("Error looking up worlds: {}", response); logger.debug("Error looking up worlds: {}", response);
return Observable.just(null); throw new IOException("unsuccessful response looking up worlds");
} }
InputStream in = response.body().byteStream(); InputStream in = response.body().byteStream();
return Observable.just(RuneLiteAPI.GSON.fromJson(new InputStreamReader(in), WorldResult.class)); return RuneLiteAPI.GSON.fromJson(new InputStreamReader(in), WorldResult.class);
} }
catch (JsonParseException ex) catch (JsonParseException ex)
{ {
return Observable.error(ex); throw new IOException(ex);
} }
});
} }
} }
@@ -47,6 +47,7 @@ public class ChatController
{ {
private static final Pattern STRING_VALIDATION = Pattern.compile("[^a-zA-Z0-9' -]"); private static final Pattern STRING_VALIDATION = Pattern.compile("[^a-zA-Z0-9' -]");
private static final int STRING_MAX_LENGTH = 50; private static final int STRING_MAX_LENGTH = 50;
private static final int MAX_LAYOUT_ROOMS = 16;
private final Cache<KillCountKey, Integer> killCountCache = CacheBuilder.newBuilder() private final Cache<KillCountKey, Integer> killCountCache = CacheBuilder.newBuilder()
.expireAfterWrite(2, TimeUnit.MINUTES) .expireAfterWrite(2, TimeUnit.MINUTES)
@@ -214,6 +215,11 @@ public class ChatController
@PostMapping("/layout") @PostMapping("/layout")
public void submitLayout(@RequestParam String name, @RequestBody LayoutRoom[] rooms) public void submitLayout(@RequestParam String name, @RequestBody LayoutRoom[] rooms)
{ {
if (rooms.length > MAX_LAYOUT_ROOMS)
{
return;
}
chatService.setLayout(name, rooms); chatService.setLayout(name, rooms);
} }
@@ -148,6 +148,10 @@ public enum ChatMessageType
* A message that times out after 10 seconds. * A message that times out after 10 seconds.
*/ */
TENSECTIMEOUT(107), TENSECTIMEOUT(107),
/**
* The "Welcome to RuneScape" message
*/
WELCOME(108),
/** /**
* An unknown message type. * An unknown message type.
*/ */
@@ -11357,5 +11357,14 @@ public final class ItemID
public static final int TWISTED_BOOTS_T1 = 24411; public static final int TWISTED_BOOTS_T1 = 24411;
public static final int TWISTED_LEAGUE_BANNER = 24413; public static final int TWISTED_LEAGUE_BANNER = 24413;
public static final int RUNE_POUCH_L = 24416; public static final int RUNE_POUCH_L = 24416;
public static final int INQUISITORS_MACE = 24417;
public static final int SIRENS_TOME = 24418;
public static final int INQUISITORS_GREAT_HELM = 24419;
public static final int INQUISITORS_HAUBERK = 24420;
public static final int INQUISITORS_PLATESKIRT = 24421;
public static final int NIGHTMARE_STAFF = 24422;
public static final int HARMONISED_NIGHTMARE_STAFF = 24423;
public static final int VOLATILE_NIGHTMARE_STAFF = 24424;
public static final int ELDRITCH_NIGHTMARE_STAFF = 24425;
/* This file is automatically generated. Do not edit. */ /* This file is automatically generated. Do not edit. */
} }
@@ -0,0 +1,54 @@
/*
* Copyright (c) 2018 Magic fTail
* All rights reserved.
*
* Redistribution and use in source and binary forms, with or without
* modification, are permitted provided that the following conditions are met:
*
* 1. Redistributions of source code must retain the above copyright notice, this
* list of conditions and the following disclaimer.
* 2. Redistributions in binary form must reproduce the above copyright notice,
* this list of conditions and the following disclaimer in the documentation
* and/or other materials provided with the distribution.
*
* THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" AND
* ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED
* WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE
* DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT OWNER OR CONTRIBUTORS BE LIABLE FOR
* ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES
* (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES;
* LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND
* ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
* (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS
* SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
*/
package net.runelite.api;
public final class ModelID
{
public static final int ANVIL = 1251;
public static final int WILLOW_TREE = 1570;
public static final int SLAYER_SKILL_MODEL = 1733;
public static final int FIREMAKING_SKILL_MODEL = 2260;
public static final int STEEL_KITESHIELD = 2339;
public static final int PURE_ESSENCE = 2349;
public static final int RAW_TUNA = 2355;
public static final int CLEAN_HERB = 2364;
public static final int HAMMER = 2376;
public static final int BLUE_WIZARD_HAT = 2483;
public static final int CHISEL = 2489;
public static final int HIGHWAYMAN_MASK = 2500;
public static final int STEEL_PICKAXE = 2529;
public static final int SHORTBOW = 2562;
public static final int STEEL_LONGSWORD = 2602;
public static final int STEEL_SWORD = 2604;
public static final int STEEL_ARROW = 2711;
public static final int PRAYER_SKILL_MODEL = 3325;
public static final int STRENGTH_SKILL_MODEL = 3327;
public static final int AGILITY_SKILL_MODEL = 3328;
public static final int HEARTH = 3326;
public static final int WATERING_CAN = 7331;
public static final int SAW = 12309;
public static final int FOOTPRINT = 19980;
public static final int COOKING_SKILL_MODEL = 27611;
}
@@ -12850,5 +12850,6 @@ public final class NullItemID
public static final int NULL_24410 = 24410; public static final int NULL_24410 = 24410;
public static final int NULL_24412 = 24412; public static final int NULL_24412 = 24412;
public static final int NULL_24414 = 24414; public static final int NULL_24414 = 24414;
public static final int NULL_24415 = 24415;
/* This file is automatically generated. Do not edit. */ /* This file is automatically generated. Do not edit. */
} }
@@ -18070,5 +18070,6 @@ public final class NullObjectID
public static final int NULL_37480 = 37480; public static final int NULL_37480 = 37480;
public static final int NULL_37481 = 37481; public static final int NULL_37481 = 37481;
public static final int NULL_37490 = 37490; public static final int NULL_37490 = 37490;
public static final int NULL_37491 = 37491;
/* This file is automatically generated. Do not edit. */ /* This file is automatically generated. Do not edit. */
} }
@@ -33,6 +33,7 @@ import javax.annotation.Nullable;
import lombok.Value; import lombok.Value;
import net.runelite.api.Client; import net.runelite.api.Client;
import static net.runelite.api.Constants.CHUNK_SIZE; import static net.runelite.api.Constants.CHUNK_SIZE;
import static net.runelite.api.Constants.REGION_SIZE;
import net.runelite.api.Perspective; import net.runelite.api.Perspective;
/** /**
@@ -416,6 +417,6 @@ public class WorldPoint
private static int getRegionOffset(final int position) private static int getRegionOffset(final int position)
{ {
return position & 0x3f; return position & (REGION_SIZE - 1);
} }
} }
@@ -242,13 +242,6 @@ public interface Widget
*/ */
void setName(String name); void setName(String name);
/**
* Gets the model ID displayed in the widget.
*
* @return the model ID
*/
int getModelId();
/** /**
* Gets the sprite ID displayed in the widget. * Gets the sprite ID displayed in the widget.
* *
@@ -294,6 +287,76 @@ public interface Widget
*/ */
int getIndex(); int getIndex();
/**
* Gets the model ID displayed in the widget.
*
* @return the model ID
*/
int getModelId();
/**
* Sets the model ID displayed in the widget
*
* @param modelId the new model ID
*/
void setModelId(int modelId);
/**
* Gets the x rotation of the model displayed in the widget
*
* @return the x rotation
*/
int getRotationX();
/**
* Sets the x rotation of the model displayed in the widget
*
* @param rotationX 0 = no rotation, 2047 = full rotation, outside range = crash
*/
void setRotationX(int rotationX);
/**
* Gets the y rotation of the model displayed in the widget
*
* @return the y rotation
*/
int getRotationY();
/**
* Sets the y rotation of the model displayed in the widget
*
* @param rotationY 0 = no rotation, 2047 = full rotation, outside range = crash
*/
void setRotationY(int rotationY);
/**
* Gets the z rotation of the model displayed in the widget
*
* @return the z rotation
*/
int getRotationZ();
/**
* Sets the z rotation of the model displayed in the widget
*
* @param rotationZ 0 = no rotation, 2047 = full rotation, outside range = crash
*/
void setRotationZ(int rotationZ);
/**
* Gets the amount zoomed in on the model displayed in the widget
*
* @return the amount zoomed in
*/
int getModelZoom();
/**
* Sets the amount zoomed in on the model displayed in the widget
*
* @param modelZoom the new zoom amount
*/
void setModelZoom(int modelZoom);
/** /**
* Gets the location the widget is being drawn on the canvas. * Gets the location the widget is being drawn on the canvas.
* <p> * <p>
@@ -986,6 +986,7 @@ public class WidgetID
static class StandardSpellBook static class StandardSpellBook
{ {
static final int LUMBRIDGE_HOME_TELEPORT = 5; static final int LUMBRIDGE_HOME_TELEPORT = 5;
static final int KOUREND_HOME_TELEPORT = 4;
} }
static class AncientSpellBook static class AncientSpellBook
@@ -512,6 +512,7 @@ public enum WidgetInfo
PVP_FOG_OVERLAY(WidgetID.PVP_GROUP_ID, WidgetID.Pvp.FOG_OVERLAY), PVP_FOG_OVERLAY(WidgetID.PVP_GROUP_ID, WidgetID.Pvp.FOG_OVERLAY),
PVP_CONTAINER(WidgetID.PVP_GROUP_ID, WidgetID.Pvp.PVP_WIDGET_CONTAINER), PVP_CONTAINER(WidgetID.PVP_GROUP_ID, WidgetID.Pvp.PVP_WIDGET_CONTAINER),
PVP_SKULL_CONTAINER(WidgetID.PVP_GROUP_ID, WidgetID.Pvp.SKULL_CONTAINER), PVP_SKULL_CONTAINER(WidgetID.PVP_GROUP_ID, WidgetID.Pvp.SKULL_CONTAINER),
PVP_SKULL(WidgetID.PVP_GROUP_ID, WidgetID.Pvp.SKULL), PVP_SKULL(WidgetID.PVP_GROUP_ID, WidgetID.Pvp.SKULL),
PVP_ATTACK_RANGE(WidgetID.PVP_GROUP_ID, WidgetID.Pvp.ATTACK_RANGE), PVP_ATTACK_RANGE(WidgetID.PVP_GROUP_ID, WidgetID.Pvp.ATTACK_RANGE),
@@ -676,6 +677,7 @@ public enum WidgetInfo
/* END OF LUNAR SPELL BOOK WIDGETS*/ /* END OF LUNAR SPELL BOOK WIDGETS*/
SPELL_TOOLTIP(WidgetID.SPELLBOOK_GROUP_ID, WidgetID.SpellBook.TOOLTIP), SPELL_TOOLTIP(WidgetID.SPELLBOOK_GROUP_ID, WidgetID.SpellBook.TOOLTIP),
/* ARCEUUS SPELL BOOK WIDGETS*/ /* ARCEUUS SPELL BOOK WIDGETS*/
SPELL_KOUREND_HOME_TELEPORT(WidgetID.SPELLBOOK_GROUP_ID, WidgetID.StandardSpellBook.KOUREND_HOME_TELEPORT),
SPELL_ARCEUUS_HOME_TELEPORT(WidgetID.SPELLBOOK_GROUP_ID, WidgetID.SpellBook.ARCEUUS_HOME_TELEPORT), SPELL_ARCEUUS_HOME_TELEPORT(WidgetID.SPELLBOOK_GROUP_ID, WidgetID.SpellBook.ARCEUUS_HOME_TELEPORT),
SPELL_BATTLEFRONT_TELEPORT(WidgetID.SPELLBOOK_GROUP_ID, WidgetID.SpellBook.BATTLEFRONT_TELEPORT), SPELL_BATTLEFRONT_TELEPORT(WidgetID.SPELLBOOK_GROUP_ID, WidgetID.SpellBook.BATTLEFRONT_TELEPORT),
/* END OF ARCEUUS SPELL BOOK WIDGETS*/ /* END OF ARCEUUS SPELL BOOK WIDGETS*/
@@ -29,6 +29,7 @@ import java.util.Iterator;
import java.util.concurrent.ConcurrentLinkedQueue; import java.util.concurrent.ConcurrentLinkedQueue;
import java.util.concurrent.Executor; import java.util.concurrent.Executor;
import java.util.function.BooleanSupplier; import java.util.function.BooleanSupplier;
import javax.annotation.Nullable;
import javax.inject.Singleton; import javax.inject.Singleton;
import lombok.extern.slf4j.Slf4j; import lombok.extern.slf4j.Slf4j;
import net.runelite.api.Client; import net.runelite.api.Client;
@@ -41,6 +42,7 @@ public class ClientThread implements Executor
private final ConcurrentLinkedQueue<BooleanSupplier> invokes = new ConcurrentLinkedQueue<>(); private final ConcurrentLinkedQueue<BooleanSupplier> invokes = new ConcurrentLinkedQueue<>();
@Inject @Inject
@Nullable
private Client client; private Client client;
public void invoke(Runnable r) public void invoke(Runnable r)
@@ -26,12 +26,11 @@ package net.runelite.client.config;
import com.google.common.cache.Cache; import com.google.common.cache.Cache;
import com.google.common.cache.CacheBuilder; import com.google.common.cache.CacheBuilder;
import java.lang.invoke.MethodHandles;
import java.lang.reflect.Constructor;
import java.lang.reflect.InvocationHandler; import java.lang.reflect.InvocationHandler;
import java.lang.reflect.Method; import java.lang.reflect.Method;
import java.util.Objects; import java.util.Objects;
import lombok.extern.slf4j.Slf4j; import lombok.extern.slf4j.Slf4j;
import net.runelite.client.util.ReflectUtil;
@Slf4j @Slf4j
class ConfigInvocationHandler implements InvocationHandler class ConfigInvocationHandler implements InvocationHandler
@@ -169,12 +168,8 @@ class ConfigInvocationHandler implements InvocationHandler
static Object callDefaultMethod(Object proxy, Method method, Object[] args) throws Throwable static Object callDefaultMethod(Object proxy, Method method, Object[] args) throws Throwable
{ {
// Call the default method implementation - https://rmannibucau.wordpress.com/2014/03/27/java-8-default-interface-methods-and-jdk-dynamic-proxies/
Constructor<MethodHandles.Lookup> constructor = MethodHandles.Lookup.class.getDeclaredConstructor(Class.class, int.class);
constructor.setAccessible(true);
Class<?> declaringClass = method.getDeclaringClass(); Class<?> declaringClass = method.getDeclaringClass();
return constructor.newInstance(declaringClass, MethodHandles.Lookup.PUBLIC | MethodHandles.Lookup.PRIVATE) return ReflectUtil.privateLookupIn(declaringClass)
.unreflectSpecial(method, declaringClass) .unreflectSpecial(method, declaringClass)
.bindTo(proxy) .bindTo(proxy)
.invokeWithArguments(args); .invokeWithArguments(args);
@@ -0,0 +1,38 @@
/*
* Copyright (c) 2019, Adam <Adam@sigterm.info>
* All rights reserved.
*
* Redistribution and use in source and binary forms, with or without
* modification, are permitted provided that the following conditions are met:
*
* 1. Redistributions of source code must retain the above copyright notice, this
* list of conditions and the following disclaimer.
* 2. Redistributions in binary form must reproduce the above copyright notice,
* this list of conditions and the following disclaimer in the documentation
* and/or other materials provided with the distribution.
*
* THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" AND
* ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED
* WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE
* DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT OWNER OR CONTRIBUTORS BE LIABLE FOR
* ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES
* (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES;
* LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND
* ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
* (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS
* SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
*/
package net.runelite.client.events;
import lombok.Value;
import net.runelite.api.events.Event;
import net.runelite.http.api.worlds.WorldResult;
/**
* Fired when the @{link net.runelite.client.game.WorldService} refreshes the world list
*/
@Value
public class WorldsFetch implements Event
{
private final WorldResult worldResult;
}
@@ -59,7 +59,7 @@ public class Flexo extends Robot
public static final int fixedWidth = Constants.GAME_FIXED_WIDTH; public static final int fixedWidth = Constants.GAME_FIXED_WIDTH;
public static final int fixedHeight = Constants.GAME_FIXED_HEIGHT; public static final int fixedHeight = Constants.GAME_FIXED_HEIGHT;
public static boolean isStretched; public static boolean isStretched;
public static final int minDelay = 45; public static int minDelay = 45;
public static MouseMotionFactory currentMouseMotionFactory; public static MouseMotionFactory currentMouseMotionFactory;
public boolean pausedIndefinitely = false; public boolean pausedIndefinitely = false;
private Robot peer; private Robot peer;
@@ -0,0 +1,127 @@
/*
* Copyright (c) 2019, Adam <Adam@sigterm.info>
* All rights reserved.
*
* Redistribution and use in source and binary forms, with or without
* modification, are permitted provided that the following conditions are met:
*
* 1. Redistributions of source code must retain the above copyright notice, this
* list of conditions and the following disclaimer.
* 2. Redistributions in binary form must reproduce the above copyright notice,
* this list of conditions and the following disclaimer in the documentation
* and/or other materials provided with the distribution.
*
* THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" AND
* ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED
* WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE
* DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT OWNER OR CONTRIBUTORS BE LIABLE FOR
* ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES
* (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES;
* LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND
* ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
* (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS
* SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
*/
package net.runelite.client.game;
import java.io.IOException;
import java.util.Comparator;
import java.util.concurrent.CompletableFuture;
import java.util.concurrent.ExecutionException;
import java.util.concurrent.ScheduledExecutorService;
import java.util.concurrent.TimeUnit;
import java.util.concurrent.TimeoutException;
import javax.annotation.Nullable;
import javax.inject.Inject;
import javax.inject.Singleton;
import lombok.extern.slf4j.Slf4j;
import net.runelite.api.Client;
import net.runelite.api.GameState;
import net.runelite.client.eventbus.EventBus;
import net.runelite.client.events.WorldsFetch;
import net.runelite.client.util.RunnableExceptionLogger;
import net.runelite.http.api.worlds.World;
import net.runelite.http.api.worlds.WorldClient;
import net.runelite.http.api.worlds.WorldResult;
@Singleton
@Slf4j
public class WorldService
{
private static final int WORLD_FETCH_TIMER = 10; // minutes
private final Client client;
private final ScheduledExecutorService scheduledExecutorService;
private final WorldClient worldClient;
private final EventBus eventBus;
private final CompletableFuture<WorldResult> firstRunFuture = new CompletableFuture<>();
private WorldResult worlds;
@Inject
private WorldService(Client client, ScheduledExecutorService scheduledExecutorService, WorldClient worldClient,
EventBus eventBus)
{
this.client = client;
this.scheduledExecutorService = scheduledExecutorService;
this.worldClient = worldClient;
this.eventBus = eventBus;
scheduledExecutorService.scheduleWithFixedDelay(RunnableExceptionLogger.wrap(this::tick), 0, WORLD_FETCH_TIMER, TimeUnit.MINUTES);
}
private void tick()
{
try
{
if (worlds == null || client.getGameState() == GameState.LOGGED_IN)
{
fetch();
}
}
finally
{
firstRunFuture.complete(worlds);
}
}
private void fetch()
{
log.debug("Fetching worlds");
try
{
WorldResult worldResult = worldClient.lookupWorlds();
worldResult.getWorlds().sort(Comparator.comparingInt(World::getId));
worlds = worldResult;
eventBus.post(WorldsFetch.class, new WorldsFetch(worldResult));
}
catch (IOException ex)
{
log.warn("Error looking up worlds", ex);
}
}
public void refresh()
{
scheduledExecutorService.execute(this::fetch);
}
@Nullable
public WorldResult getWorlds()
{
if (!firstRunFuture.isDone())
{
try
{
return firstRunFuture.get(10, TimeUnit.SECONDS);
}
catch (InterruptedException | ExecutionException | TimeoutException e)
{
log.warn("Failed to retrieve worlds on first run", e);
}
}
return worlds;
}
}
@@ -52,6 +52,7 @@ import net.runelite.client.input.KeyListener;
import net.runelite.client.input.KeyManager; import net.runelite.client.input.KeyManager;
import net.runelite.client.plugins.Plugin; import net.runelite.client.plugins.Plugin;
import net.runelite.client.plugins.PluginDescriptor; import net.runelite.client.plugins.PluginDescriptor;
import org.apache.commons.lang3.StringUtils;
@PluginDescriptor( @PluginDescriptor(
name = "Chat History", name = "Chat History",
@@ -61,7 +62,7 @@ import net.runelite.client.plugins.PluginDescriptor;
@Singleton @Singleton
public class ChatHistoryPlugin extends Plugin implements KeyListener public class ChatHistoryPlugin extends Plugin implements KeyListener
{ {
private static final String WELCOME_MESSAGE = "Welcome to Old School RuneScape."; private static final String WELCOME_MESSAGE = "Welcome to Old School RuneScape";
private static final String CLEAR_HISTORY = "Clear history"; private static final String CLEAR_HISTORY = "Clear history";
private static final String CLEAR_PRIVATE = "<col=ffff00>Private:"; private static final String CLEAR_PRIVATE = "<col=ffff00>Private:";
private static final int CYCLE_HOTKEY = KeyEvent.VK_TAB; private static final int CYCLE_HOTKEY = KeyEvent.VK_TAB;
@@ -137,7 +138,8 @@ public class ChatHistoryPlugin extends Plugin implements KeyListener
{ {
// Start sending old messages right after the welcome message, as that is most reliable source // Start sending old messages right after the welcome message, as that is most reliable source
// of information that chat history was reset // of information that chat history was reset
if (chatMessage.getMessage().equals(WELCOME_MESSAGE)) ChatMessageType chatMessageType = chatMessage.getType();
if (chatMessageType == ChatMessageType.WELCOME && StringUtils.startsWithIgnoreCase(chatMessage.getMessage(), WELCOME_MESSAGE))
{ {
if (!this.retainChatHistory) if (!this.retainChatHistory)
{ {
@@ -154,7 +156,7 @@ public class ChatHistoryPlugin extends Plugin implements KeyListener
return; return;
} }
switch (chatMessage.getType()) switch (chatMessageType)
{ {
case PRIVATECHATOUT: case PRIVATECHATOUT:
case PRIVATECHAT: case PRIVATECHAT:
@@ -174,7 +176,7 @@ public class ChatHistoryPlugin extends Plugin implements KeyListener
case FRIENDSCHAT: case FRIENDSCHAT:
case CONSOLE: case CONSOLE:
final QueuedMessage queuedMessage = QueuedMessage.builder() final QueuedMessage queuedMessage = QueuedMessage.builder()
.type(chatMessage.getType()) .type(chatMessageType)
.name(chatMessage.getName()) .name(chatMessage.getName())
.sender(chatMessage.getSender()) .sender(chatMessage.getSender())
.value(tweakSpaces(chatMessage.getMessage())) .value(tweakSpaces(chatMessage.getMessage()))
@@ -25,22 +25,21 @@
package net.runelite.client.plugins.defaultworld; package net.runelite.client.plugins.defaultworld;
import com.google.inject.Provides; import com.google.inject.Provides;
import io.reactivex.schedulers.Schedulers;
import javax.inject.Inject; import javax.inject.Inject;
import javax.inject.Singleton; import javax.inject.Singleton;
import lombok.extern.slf4j.Slf4j; import lombok.extern.slf4j.Slf4j;
import net.runelite.api.Client; import net.runelite.api.Client;
import net.runelite.api.GameState; import net.runelite.api.GameState;
import net.runelite.api.events.GameStateChanged; import net.runelite.api.events.GameStateChanged;
import net.runelite.client.callback.ClientThread;
import net.runelite.client.config.ConfigManager; import net.runelite.client.config.ConfigManager;
import net.runelite.client.eventbus.Subscribe; import net.runelite.client.eventbus.Subscribe;
import net.runelite.client.events.SessionOpen; import net.runelite.client.events.SessionOpen;
import net.runelite.client.game.WorldService;
import net.runelite.client.plugins.Plugin; import net.runelite.client.plugins.Plugin;
import net.runelite.client.plugins.PluginDescriptor; import net.runelite.client.plugins.PluginDescriptor;
import net.runelite.client.util.WorldUtil; import net.runelite.client.util.WorldUtil;
import net.runelite.http.api.worlds.World; import net.runelite.http.api.worlds.World;
import net.runelite.http.api.worlds.WorldClient; import net.runelite.http.api.worlds.WorldResult;
@PluginDescriptor( @PluginDescriptor(
name = "Default World", name = "Default World",
@@ -58,10 +57,7 @@ public class DefaultWorldPlugin extends Plugin
private DefaultWorldConfig config; private DefaultWorldConfig config;
@Inject @Inject
private ClientThread clientThread; private WorldService worldService;
@Inject
private WorldClient worldClient;
private int worldCache; private int worldCache;
private boolean worldChangeRequired; private boolean worldChangeRequired;
@@ -122,14 +118,11 @@ public class DefaultWorldPlugin extends Plugin
return; return;
} }
worldClient.lookupWorlds() final WorldResult worldResult = worldService.getWorlds();
.subscribeOn(Schedulers.io())
.observeOn(Schedulers.from(clientThread))
.subscribe(
(worldResult) ->
{
if (worldResult == null) if (worldResult == null)
{ {
log.warn("Failed to lookup worlds.");
return; return;
} }
@@ -152,9 +145,6 @@ public class DefaultWorldPlugin extends Plugin
{ {
log.warn("World {} not found.", correctedWorld); log.warn("World {} not found.", correctedWorld);
} }
},
(e) -> log.warn("Error looking up world {}. Error: {}", correctedWorld, e)
);
} }
private void applyWorld() private void applyWorld()
@@ -175,6 +175,10 @@ class WidgetInfoTableModel extends AbstractTableModel
out.add(new WidgetField<>("RelativeY", Widget::getRelativeY, Widget::setRelativeY, Integer.class)); out.add(new WidgetField<>("RelativeY", Widget::getRelativeY, Widget::setRelativeY, Integer.class));
out.add(new WidgetField<>("Width", Widget::getWidth, Widget::setWidth, Integer.class)); out.add(new WidgetField<>("Width", Widget::getWidth, Widget::setWidth, Integer.class));
out.add(new WidgetField<>("Height", Widget::getHeight, Widget::setHeight, Integer.class)); out.add(new WidgetField<>("Height", Widget::getHeight, Widget::setHeight, Integer.class));
out.add(new WidgetField<>("RotationX", Widget::getRotationX, Widget::setRotationX, Integer.class));
out.add(new WidgetField<>("RotationY", Widget::getRotationY, Widget::setRotationY, Integer.class));
out.add(new WidgetField<>("RotationZ", Widget::getRotationZ, Widget::setRotationZ, Integer.class));
out.add(new WidgetField<>("ModelZoom", Widget::getModelZoom, Widget::setModelZoom, Integer.class));
out.add(new WidgetField<>("CanvasLocation", Widget::getCanvasLocation)); out.add(new WidgetField<>("CanvasLocation", Widget::getCanvasLocation));
out.add(new WidgetField<>("Bounds", Widget::getBounds)); out.add(new WidgetField<>("Bounds", Widget::getBounds));
out.add(new WidgetField<>("ScrollX", Widget::getScrollX, Widget::setScrollX, Integer.class)); out.add(new WidgetField<>("ScrollX", Widget::getScrollX, Widget::setScrollX, Integer.class));
@@ -84,7 +84,9 @@ enum Emoji
ALIEN("(@.@)"), ALIEN("(@.@)"),
EGGPLANT("8=D"), EGGPLANT("8=D"),
WAVE("(^_^)/"), WAVE("(^_^)/"),
HEART_EYES("(*.*)"); HEART_EYES("(*.*)"),
FACEPALM("M-)"),
;
private static final Map<String, Emoji> emojiMap; private static final Map<String, Emoji> emojiMap;
@@ -33,14 +33,15 @@ import net.runelite.client.config.Range;
public interface FpsConfig extends Config public interface FpsConfig extends Config
{ {
@ConfigItem( @ConfigItem(
keyName = "limitMode", keyName = "limitFps",
name = "Limit Mode", name = "Limit Global FPS",
description = "Stay at or under the target frames per second even when in this mode", description = "Global FPS limit in effect regardless of<br>" +
"whether window is in focus or not",
position = 1 position = 1
) )
default FpsLimitMode limitMode() default boolean limitFps()
{ {
return FpsLimitMode.NEVER; return false;
} }
@Range( @Range(
@@ -49,8 +50,8 @@ public interface FpsConfig extends Config
) )
@ConfigItem( @ConfigItem(
keyName = "maxFps", keyName = "maxFps",
name = "FPS target", name = "Global FPS target",
description = "Desired max frames per second", description = "Desired max global frames per second",
position = 2 position = 2
) )
default int maxFps() default int maxFps()
@@ -58,11 +59,33 @@ public interface FpsConfig extends Config
return 50; return 50;
} }
@ConfigItem(
keyName = "limitFpsUnfocused",
name = "Limit FPS unfocused",
description = "FPS limit while window is out of focus",
position = 3
)
default boolean limitFpsUnfocused()
{
return false;
}
@ConfigItem(
keyName = "maxFpsUnfocused",
name = "Unfocused FPS target",
description = "Desired max frames per second for unfocused",
position = 4
)
default int maxFpsUnfocused()
{
return 50;
}
@ConfigItem( @ConfigItem(
keyName = "drawFps", keyName = "drawFps",
name = "Draw FPS indicator", name = "Draw FPS indicator",
description = "Show a number in the corner for the current FPS", description = "Show a number in the corner for the current FPS",
position = 3 position = 5
) )
default boolean drawFps() default boolean drawFps()
{ {
@@ -69,7 +69,13 @@ public class FpsDrawListener implements Runnable
void reloadConfig() void reloadConfig()
{ {
lastMillis = System.currentTimeMillis(); lastMillis = System.currentTimeMillis();
targetDelay = 1000 / Math.max(1, config.maxFps());
int fps = config.limitFpsUnfocused() && !isFocused
? config.maxFpsUnfocused()
: config.maxFps();
targetDelay = 1000 / Math.max(1, fps);
sleepDelay = targetDelay; sleepDelay = targetDelay;
for (int i = 0; i < SAMPLE_SIZE; i++) for (int i = 0; i < SAMPLE_SIZE; i++)
@@ -81,18 +87,18 @@ public class FpsDrawListener implements Runnable
void onFocusChanged(FocusChanged event) void onFocusChanged(FocusChanged event)
{ {
this.isFocused = event.isFocused(); this.isFocused = event.isFocused();
reloadConfig(); // load new delay
} }
private boolean isEnforced() private boolean isEnforced()
{ {
return FpsLimitMode.ALWAYS == plugin.getLimitMode() return config.limitFps()
|| (FpsLimitMode.UNFOCUSED == plugin.getLimitMode() && !isFocused); || (config.limitFpsUnfocused() && !isFocused);
} }
@Override @Override
public void run() public void run()
{ {
if (!isEnforced()) if (!isEnforced())
{ {
return; return;
@@ -57,16 +57,16 @@ public class FpsOverlay extends Overlay
// Local dependencies // Local dependencies
private final Client client; private final Client client;
private final FpsPlugin plugin; private final FpsConfig config;
// Often changing values // Often changing values
private boolean isFocused = true; private boolean isFocused = true;
@Inject @Inject
private FpsOverlay(final FpsPlugin plugin, final Client client) private FpsOverlay(final FpsConfig config, final Client client)
{ {
this.client = client; this.client = client;
this.plugin = plugin; this.config = config;
setLayer(OverlayLayer.ABOVE_WIDGETS); setLayer(OverlayLayer.ABOVE_WIDGETS);
setPriority(OverlayPriority.HIGH); setPriority(OverlayPriority.HIGH);
setPosition(OverlayPosition.DYNAMIC); setPosition(OverlayPosition.DYNAMIC);
@@ -79,8 +79,8 @@ public class FpsOverlay extends Overlay
private boolean isEnforced() private boolean isEnforced()
{ {
return FpsLimitMode.ALWAYS == plugin.getLimitMode() return config.limitFps()
|| (FpsLimitMode.UNFOCUSED == plugin.getLimitMode() && !isFocused); || (config.limitFpsUnfocused() && !isFocused);
} }
private Color getFpsValueColor() private Color getFpsValueColor()
@@ -91,7 +91,7 @@ public class FpsOverlay extends Overlay
@Override @Override
public Dimension render(Graphics2D graphics) public Dimension render(Graphics2D graphics)
{ {
if (!plugin.isDrawFps()) if (!config.drawFps())
{ {
return null; return null;
} }
@@ -27,8 +27,6 @@ package net.runelite.client.plugins.fps;
import com.google.inject.Inject; import com.google.inject.Inject;
import com.google.inject.Provides; import com.google.inject.Provides;
import com.google.inject.Singleton; import com.google.inject.Singleton;
import lombok.AccessLevel;
import lombok.Getter;
import net.runelite.api.events.FocusChanged; import net.runelite.api.events.FocusChanged;
import net.runelite.client.config.ConfigManager; import net.runelite.client.config.ConfigManager;
import net.runelite.client.eventbus.Subscribe; import net.runelite.client.eventbus.Subscribe;
@@ -71,15 +69,6 @@ public class FpsPlugin extends Plugin
@Inject @Inject
private DrawManager drawManager; private DrawManager drawManager;
@Inject
private FpsConfig fpsConfig;
@Getter(AccessLevel.PACKAGE)
private FpsLimitMode limitMode;
@Getter(AccessLevel.PACKAGE)
private boolean drawFps;
@Provides @Provides
FpsConfig provideConfig(ConfigManager configManager) FpsConfig provideConfig(ConfigManager configManager)
{ {
@@ -92,9 +81,6 @@ public class FpsPlugin extends Plugin
if (event.getGroup().equals(CONFIG_GROUP_KEY)) if (event.getGroup().equals(CONFIG_GROUP_KEY))
{ {
drawListener.reloadConfig(); drawListener.reloadConfig();
limitMode = fpsConfig.limitMode();
drawFps = fpsConfig.drawFps();
} }
} }
@@ -108,9 +94,6 @@ public class FpsPlugin extends Plugin
@Override @Override
protected void startUp() protected void startUp()
{ {
limitMode = fpsConfig.limitMode();
drawFps = fpsConfig.drawFps();
overlayManager.add(overlay); overlayManager.add(overlay);
drawManager.registerEveryFrameListener(drawListener); drawManager.registerEveryFrameListener(drawListener);
drawListener.reloadConfig(); drawListener.reloadConfig();
@@ -84,7 +84,6 @@ class InventoryGridOverlay extends Overlay
final Point mousePoint = new Point(mouse.getX(), mouse.getY()); final Point mousePoint = new Point(mouse.getX(), mouse.getY());
final int if1DraggedItemIndex = client.getIf1DraggedItemIndex(); final int if1DraggedItemIndex = client.getIf1DraggedItemIndex();
final WidgetItem draggedItem = inventoryWidget.getWidgetItem(if1DraggedItemIndex); final WidgetItem draggedItem = inventoryWidget.getWidgetItem(if1DraggedItemIndex);
final int itemId = draggedItem.getId();
final Rectangle initialBounds = draggedItem.getCanvasBounds(); final Rectangle initialBounds = draggedItem.getCanvasBounds();
if (initialMousePoint == null) if (initialMousePoint == null)
@@ -92,7 +91,7 @@ class InventoryGridOverlay extends Overlay
initialMousePoint = mousePoint; initialMousePoint = mousePoint;
} }
if (itemId == -1 || !hoverActive && initialMousePoint.distance(mousePoint) < DISTANCE_TO_ACTIVATE_HOVER) if (draggedItem.getId() == -1 || !hoverActive && initialMousePoint.distance(mousePoint) < DISTANCE_TO_ACTIVATE_HOVER)
{ {
return null; return null;
} }
@@ -101,16 +100,15 @@ class InventoryGridOverlay extends Overlay
for (int i = 0; i < INVENTORY_SIZE; ++i) for (int i = 0; i < INVENTORY_SIZE; ++i)
{ {
WidgetItem widgetItem = inventoryWidget.getWidgetItem(i); WidgetItem targetWidgetItem = inventoryWidget.getWidgetItem(i);
final int targetItemId = widgetItem.getId();
final Rectangle bounds = widgetItem.getCanvasBounds(); final Rectangle bounds = targetWidgetItem.getCanvasBounds();
boolean inBounds = bounds.contains(mousePoint); boolean inBounds = bounds.contains(mousePoint);
if (plugin.isShowItem() && inBounds) if (plugin.isShowItem() && inBounds)
{ {
drawItem(graphics, bounds, itemId); drawItem(graphics, bounds, draggedItem);
drawItem(graphics, initialBounds, targetItemId); drawItem(graphics, initialBounds, targetWidgetItem);
} }
if (plugin.isShowHighlight() && inBounds) if (plugin.isShowHighlight() && inBounds)
@@ -128,14 +126,14 @@ class InventoryGridOverlay extends Overlay
return null; return null;
} }
private void drawItem(Graphics2D graphics, Rectangle bounds, int itemId) private void drawItem(Graphics2D graphics, Rectangle bounds, WidgetItem item)
{ {
if (itemId == -1) if (item.getId() == -1)
{ {
return; return;
} }
final BufferedImage draggedItemImage = itemManager.getImage(itemId); final BufferedImage draggedItemImage = itemManager.getImage(item.getId(), item.getQuantity(), false);
final int x = (int) bounds.getX(); final int x = (int) bounds.getX();
final int y = (int) bounds.getY(); final int y = (int) bounds.getY();
@@ -34,7 +34,6 @@ import lombok.Getter;
import lombok.Setter; import lombok.Setter;
import net.runelite.api.Client; import net.runelite.api.Client;
import net.runelite.api.GameState; import net.runelite.api.GameState;
import net.runelite.api.IconID;
import net.runelite.api.VarClientInt; import net.runelite.api.VarClientInt;
import net.runelite.api.VarClientStr; import net.runelite.api.VarClientStr;
import net.runelite.api.Varbits; import net.runelite.api.Varbits;
@@ -212,7 +211,7 @@ public class KeyRemappingPlugin extends Plugin
Widget chatboxInput = client.getWidget(WidgetInfo.CHATBOX_INPUT); Widget chatboxInput = client.getWidget(WidgetInfo.CHATBOX_INPUT);
if (chatboxInput != null && chatboxInput.getText().endsWith(PRESS_ENTER_TO_CHAT)) if (chatboxInput != null && chatboxInput.getText().endsWith(PRESS_ENTER_TO_CHAT))
{ {
chatboxInput.setText(getWaitingText()); setChatboxWidgetInput(chatboxInput, PRESS_ENTER_TO_CHAT);
} }
} }
); );
@@ -227,7 +226,7 @@ public class KeyRemappingPlugin extends Plugin
Widget chatboxInput = client.getWidget(WidgetInfo.CHATBOX_INPUT); Widget chatboxInput = client.getWidget(WidgetInfo.CHATBOX_INPUT);
if (chatboxInput != null && chatboxFocused() && !typing) if (chatboxInput != null && chatboxFocused() && !typing)
{ {
chatboxInput.setText(getWaitingText()); setChatboxWidgetInput(chatboxInput, PRESS_ENTER_TO_CHAT);
} }
break; break;
case SCRIPT_EVENT_BLOCK_CHAT_INPUT: case SCRIPT_EVENT_BLOCK_CHAT_INPUT:
@@ -246,7 +245,7 @@ public class KeyRemappingPlugin extends Plugin
Widget chatboxInput = client.getWidget(WidgetInfo.CHATBOX_INPUT); Widget chatboxInput = client.getWidget(WidgetInfo.CHATBOX_INPUT);
if (chatboxInput != null) if (chatboxInput != null)
{ {
chatboxInput.setText(getWaitingText()); setChatboxWidgetInput(chatboxInput, PRESS_ENTER_TO_CHAT);
} }
} }
@@ -257,39 +256,24 @@ public class KeyRemappingPlugin extends Plugin
{ {
final boolean isChatboxTransparent = client.isResized() && client.getVar(Varbits.TRANSPARENT_CHATBOX) == 1; final boolean isChatboxTransparent = client.isResized() && client.getVar(Varbits.TRANSPARENT_CHATBOX) == 1;
final Color textColor = isChatboxTransparent ? JagexColors.CHAT_TYPED_TEXT_TRANSPARENT_BACKGROUND : JagexColors.CHAT_TYPED_TEXT_OPAQUE_BACKGROUND; final Color textColor = isChatboxTransparent ? JagexColors.CHAT_TYPED_TEXT_TRANSPARENT_BACKGROUND : JagexColors.CHAT_TYPED_TEXT_OPAQUE_BACKGROUND;
chatboxInput.setText(getPlayerNameWithIcon() + ": " + ColorUtil.wrapWithColorTag(client.getVar(VarClientStr.CHATBOX_TYPED_TEXT) + "*", textColor)); setChatboxWidgetInput(chatboxInput, ColorUtil.wrapWithColorTag(client.getVar(VarClientStr.CHATBOX_TYPED_TEXT) + "*", textColor));
} }
} }
private String getPlayerNameWithIcon() private void setChatboxWidgetInput(Widget widget, String input)
{
IconID icon;
switch (client.getAccountType())
{
case IRONMAN:
icon = IconID.IRONMAN;
break;
case ULTIMATE_IRONMAN:
icon = IconID.ULTIMATE_IRONMAN;
break;
case HARDCORE_IRONMAN:
icon = IconID.HARDCORE_IRONMAN;
break;
default:
return client.getLocalPlayer().getName();
}
return icon + client.getLocalPlayer().getName();
}
private String getWaitingText()
{ {
if (this.hideDisplayName) if (this.hideDisplayName)
{ {
return PRESS_ENTER_TO_CHAT; widget.setText(input);
return;
} }
else
String text = widget.getText();
int idx = text.indexOf(':');
if (idx != -1)
{ {
return getPlayerNameWithIcon() + ": " + PRESS_ENTER_TO_CHAT; String newText = text.substring(0, idx) + ": " + input;
widget.setText(newText);
} }
} }
@@ -0,0 +1,349 @@
/*
* Copyright (c) 2019, hsamoht <https://github.com/hsamoht>
* Copyright (c) 2019, Adam <Adam@sigterm.info>
* All rights reserved.
*
* Redistribution and use in source and binary forms, with or without
* modification, are permitted provided that the following conditions are met:
*
* 1. Redistributions of source code must retain the above copyright notice, this
* list of conditions and the following disclaimer.
* 2. Redistributions in binary form must reproduce the above copyright notice,
* this list of conditions and the following disclaimer in the documentation
* and/or other materials provided with the distribution.
*
* THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" AND
* ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED
* WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE
* DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT OWNER OR CONTRIBUTORS BE LIABLE FOR
* ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES
* (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES;
* LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND
* ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
* (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS
* SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
*/
package net.runelite.client.plugins.leaguechaticons;
import java.awt.image.BufferedImage;
import java.util.Arrays;
import javax.inject.Inject;
import lombok.extern.slf4j.Slf4j;
import net.runelite.api.ChatPlayer;
import net.runelite.api.Client;
import net.runelite.api.GameState;
import net.runelite.api.IconID;
import net.runelite.api.IndexedSprite;
import net.runelite.api.MessageNode;
import net.runelite.api.Player;
import net.runelite.api.events.ChatMessage;
import net.runelite.api.events.GameStateChanged;
import net.runelite.api.events.ScriptCallbackEvent;
import net.runelite.api.util.Text;
import net.runelite.api.widgets.Widget;
import net.runelite.api.widgets.WidgetInfo;
import net.runelite.client.callback.ClientThread;
import net.runelite.client.chat.ChatMessageManager;
import net.runelite.client.eventbus.Subscribe;
import net.runelite.client.game.WorldService;
import net.runelite.client.plugins.Plugin;
import net.runelite.client.plugins.PluginDescriptor;
import net.runelite.client.util.ImageUtil;
import net.runelite.http.api.worlds.World;
import net.runelite.http.api.worlds.WorldResult;
import net.runelite.http.api.worlds.WorldType;
@PluginDescriptor(
name = "Chat League Icons",
description = "Changes the chat icon for players on league worlds",
enabledByDefault = false
)
@Slf4j
public class LeagueChatIconsPlugin extends Plugin
{
private static final String SCRIPT_EVENT_SET_CHATBOX_INPUT = "setChatboxInput";
private static final String IRONMAN_PREFIX = "<img=" + IconID.IRONMAN.getIndex() + ">";
@Inject
private Client client;
@Inject
private ChatMessageManager chatMessageManager;
@Inject
private WorldService worldService;
@Inject
private ClientThread clientThread;
private int leagueIconOffset = -1; // offset for league icon
private boolean onLeagueWorld;
@Override
protected void startUp()
{
onLeagueWorld = false;
clientThread.invoke(() ->
{
if (client.getGameState() == GameState.LOGGED_IN)
{
loadLeagueIcon();
onLeagueWorld = isLeagueWorld(client.getWorld());
if (onLeagueWorld)
{
setChatboxName(getNameChatbox());
}
}
});
}
@Override
protected void shutDown()
{
clientThread.invoke(() ->
{
if (client.getGameState() == GameState.LOGGED_IN && onLeagueWorld)
{
setChatboxName(getNameDefault());
}
});
}
@Subscribe
private void onGameStateChanged(GameStateChanged gameStateChanged)
{
if (gameStateChanged.getGameState() == GameState.LOGGED_IN)
{
loadLeagueIcon();
onLeagueWorld = isLeagueWorld(client.getWorld());
}
}
@Subscribe
private void onScriptCallbackEvent(ScriptCallbackEvent scriptCallbackEvent)
{
if (scriptCallbackEvent.getEventName().equals(SCRIPT_EVENT_SET_CHATBOX_INPUT) && onLeagueWorld)
{
setChatboxName(getNameChatbox());
}
}
@Subscribe
private void onChatMessage(ChatMessage chatMessage)
{
if (client.getGameState() != GameState.LOADING && client.getGameState() != GameState.LOGGED_IN)
{
return;
}
switch (chatMessage.getType())
{
case PRIVATECHAT:
case MODPRIVATECHAT:
// Note this is unable to change icon on PMs if they are not a friend or in clan chat
case FRIENDSCHAT:
String name = Text.removeTags(chatMessage.getName());
if (isChatPlayerOnLeague(name))
{
addLeagueIconToMessage(chatMessage);
}
break;
case PUBLICCHAT:
case MODCHAT:
if (onLeagueWorld)
{
addLeagueIconToMessage(chatMessage);
}
break;
}
}
/**
* Adds the League Icon in front of player names chatting from a league world.
*
* @param chatMessage chat message to edit sender name on
*/
private void addLeagueIconToMessage(ChatMessage chatMessage)
{
String name = chatMessage.getName();
if (!name.startsWith(IRONMAN_PREFIX))
{
// don't replace non-ironman icons, like mods
return;
}
name = Text.removeTags(name);
final MessageNode messageNode = chatMessage.getMessageNode();
messageNode.setName(getNameWithIcon(leagueIconOffset, name));
chatMessageManager.update(messageNode);
client.refreshChat();
}
/**
* Update the player name in the chatbox input
*/
private void setChatboxName(String name)
{
Widget chatboxInput = client.getWidget(WidgetInfo.CHATBOX_INPUT);
if (chatboxInput != null)
{
String text = chatboxInput.getText();
int idx = text.indexOf(':');
if (idx != -1)
{
String newText = name + text.substring(idx);
chatboxInput.setText(newText);
}
}
}
/**
* Gets the league name, including possible icon, of the local player.
*
* @return String of icon + name
*/
private String getNameChatbox()
{
Player player = client.getLocalPlayer();
if (player != null)
{
return getNameWithIcon(leagueIconOffset, player.getName());
}
return null;
}
/**
* Gets the default name, including possible icon, of the local player.
*
* @return String of icon + name
*/
private String getNameDefault()
{
Player player = client.getLocalPlayer();
if (player == null)
{
return null;
}
int iconIndex;
switch (client.getAccountType())
{
case IRONMAN:
iconIndex = IconID.IRONMAN.getIndex();
break;
case HARDCORE_IRONMAN:
iconIndex = IconID.HARDCORE_IRONMAN.getIndex();
break;
case ULTIMATE_IRONMAN:
iconIndex = IconID.ULTIMATE_IRONMAN.getIndex();
break;
default:
return player.getName();
}
return getNameWithIcon(iconIndex, player.getName());
}
/**
* Get a name formatted with icon
*
* @param iconIndex index of the icon
* @param name name of the player
* @return String of icon + name
*/
private static String getNameWithIcon(int iconIndex, String name)
{
String icon = "<img=" + iconIndex + ">";
return icon + name;
}
/**
* Checks if a player name is a friend or clan member on a league world.
*
* @param name name of player to check.
* @return boolean true/false.
*/
private boolean isChatPlayerOnLeague(String name)
{
ChatPlayer player = getChatPlayerFromName(name);
if (player == null)
{
return false;
}
int world = player.getWorld();
return isLeagueWorld(world);
}
/**
* Checks if the world is a League world.
*
* @param worldNumber number of the world to check.
* @return boolean true/false if it is a league world or not.
*/
private boolean isLeagueWorld(int worldNumber)
{
WorldResult worlds = worldService.getWorlds();
if (worlds == null)
{
return false;
}
World world = worlds.findWorld(worldNumber);
return world != null && world.getTypes().contains(WorldType.LEAGUE);
}
/**
* Loads the league icon into the client.
*/
private void loadLeagueIcon()
{
final IndexedSprite[] modIcons = client.getModIcons();
if (leagueIconOffset != -1 || modIcons == null)
{
return;
}
BufferedImage image = ImageUtil.getResourceStreamFromClass(getClass(), "league_icon.png");
IndexedSprite indexedSprite = ImageUtil.getImageIndexedSprite(image, client);
leagueIconOffset = modIcons.length;
final IndexedSprite[] newModIcons = Arrays.copyOf(modIcons, modIcons.length + 1);
newModIcons[newModIcons.length - 1] = indexedSprite;
client.setModIcons(newModIcons);
}
/**
* Gets a ChatPlayer object from a clean name by searching clan and friends list.
*
* @param name name of player to find.
* @return ChatPlayer if found, else null.
*/
private ChatPlayer getChatPlayerFromName(String name)
{
if (client.isClanMember(name))
{
return Arrays.stream(client.getClanMembers())
.filter(clanMember -> Text.removeTags(clanMember.getUsername()).equals(name))
.findFirst()
.orElse(null);
}
if (client.isFriended(name, true))
{
return Arrays.stream(client.getFriends())
.filter(friend -> Text.removeTags(friend.getName()).equals(name))
.findFirst()
.orElse(null);
}
return null;
}
}
@@ -122,10 +122,9 @@ public class LearnToClickPlugin extends Plugin
MenuEntry[] menuEntries = client.getMenuEntries(); MenuEntry[] menuEntries = client.getMenuEntries();
for (MenuEntry entry : menuEntries) for (MenuEntry entry : menuEntries)
{ {
if ((entry.getOption().equals("Floating") && this.shouldRightClickMap) || if ((entry.getOption().equals("Floating <col=ff9040>World Map</col>") && this.shouldRightClickMap) ||
(entry.getOption().equals("Hide") && this.shouldRightClickXp) || (entry.getOption().equals("Show") (entry.getTarget().equals("<col=ff9040>XP drops</col>") && this.shouldRightClickXp) ||
&& this.shouldRightClickXp) || (entry.getOption().equals("Auto retaliate") (entry.getOption().equals("Auto retaliate") && this.shouldRightClickRetaliate))
&& this.shouldRightClickRetaliate))
{ {
event.setForceRightClick(true); event.setForceRightClick(true);
return; return;
@@ -136,8 +135,8 @@ public class LearnToClickPlugin extends Plugin
@Subscribe @Subscribe
private void onMenuEntryAdded(MenuEntryAdded event) private void onMenuEntryAdded(MenuEntryAdded event)
{ {
if ((event.getOption().equals("Floating") && this.shouldRightClickMap) || (event.getOption().equals("Hide") if ((event.getOption().equals("Floating <col=ff9040>World Map</col>") && this.shouldRightClickMap) ||
&& this.shouldRightClickXp) || (event.getOption().equals("Show") && this.shouldRightClickXp) || (event.getTarget().equals("<col=ff9040>XP drops</col>") && this.shouldRightClickXp) ||
(event.getOption().equals("Auto retaliate") && this.shouldRightClickRetaliate)) (event.getOption().equals("Auto retaliate") && this.shouldRightClickRetaliate))
{ {
forceRightClickFlag = true; forceRightClickFlag = true;
@@ -105,7 +105,7 @@ public interface LootTrackerConfig extends Config
@ConfigItem( @ConfigItem(
keyName = "syncPanel", keyName = "syncPanel",
name = "Synchronize panel contents", name = "Synchronize panel contents",
description = "Synchronize you local loot tracker with your online (requires being logged in). This means" + description = "Synchronize your local loot tracker with your online (requires being logged in). This means" +
" that panel is filled with portion of your remote data on startup and deleting data in panel deletes them" + " that panel is filled with portion of your remote data on startup and deleting data in panel deletes them" +
" also on server." " also on server."
) )
@@ -25,10 +25,12 @@
*/ */
package net.runelite.client.plugins.music; package net.runelite.client.plugins.music;
import com.google.common.collect.ImmutableSet;
import com.google.inject.Provides; import com.google.inject.Provides;
import java.util.Arrays; import java.util.Arrays;
import java.util.Collection; import java.util.Collection;
import java.util.Comparator; import java.util.Comparator;
import java.util.Set;
import java.util.function.BiConsumer; import java.util.function.BiConsumer;
import java.util.function.ToIntFunction; import java.util.function.ToIntFunction;
import java.util.stream.Collectors; import java.util.stream.Collectors;
@@ -76,6 +78,10 @@ import net.runelite.client.plugins.PluginDescriptor;
) )
public class MusicPlugin extends Plugin public class MusicPlugin extends Plugin
{ {
private static final Set<Integer> SOURCELESS_PLAYER_SOUNDS = ImmutableSet.of(
SoundEffectID.TELEPORT_VWOOP
);
@Inject @Inject
private Client client; private Client client;
@@ -559,13 +565,14 @@ public class MusicPlugin extends Plugin
private void onAreaSoundEffectPlayed(AreaSoundEffectPlayed areaSoundEffectPlayed) private void onAreaSoundEffectPlayed(AreaSoundEffectPlayed areaSoundEffectPlayed)
{ {
Actor source = areaSoundEffectPlayed.getSource(); Actor source = areaSoundEffectPlayed.getSource();
int soundId = areaSoundEffectPlayed.getSoundId();
if (source == client.getLocalPlayer() if (source == client.getLocalPlayer()
&& musicConfig.muteOwnAreaSounds()) && musicConfig.muteOwnAreaSounds())
{ {
areaSoundEffectPlayed.consume(); areaSoundEffectPlayed.consume();
} }
else if (source != client.getLocalPlayer() else if (source != client.getLocalPlayer()
&& source instanceof Player && (source instanceof Player || (source == null && SOURCELESS_PLAYER_SOUNDS.contains(soundId)))
&& musicConfig.muteOtherAreaSounds()) && musicConfig.muteOtherAreaSounds())
{ {
areaSoundEffectPlayed.consume(); areaSoundEffectPlayed.consume();
@@ -576,6 +583,7 @@ public class MusicPlugin extends Plugin
areaSoundEffectPlayed.consume(); areaSoundEffectPlayed.consume();
} }
else if (source == null else if (source == null
&& !SOURCELESS_PLAYER_SOUNDS.contains(soundId)
&& musicConfig.muteEnvironmentAreaSounds()) && musicConfig.muteEnvironmentAreaSounds())
{ {
areaSoundEffectPlayed.consume(); areaSoundEffectPlayed.consume();
@@ -45,7 +45,6 @@ import lombok.AccessLevel;
import lombok.Getter; import lombok.Getter;
import lombok.extern.slf4j.Slf4j; import lombok.extern.slf4j.Slf4j;
import net.runelite.api.Client; import net.runelite.api.Client;
import static net.runelite.api.Constants.REGION_SIZE;
import net.runelite.api.DecorativeObject; import net.runelite.api.DecorativeObject;
import net.runelite.api.GameObject; import net.runelite.api.GameObject;
import net.runelite.api.GameState; import net.runelite.api.GameState;
@@ -350,8 +349,8 @@ public class ObjectIndicatorsPlugin extends Plugin implements KeyListener
for (ObjectPoint objectPoint : objectPoints) for (ObjectPoint objectPoint : objectPoints)
{ {
if ((worldPoint.getX() & (REGION_SIZE - 1)) == objectPoint.getRegionX() if (worldPoint.getRegionX() == objectPoint.getRegionX()
&& (worldPoint.getY() & (REGION_SIZE - 1)) == objectPoint.getRegionY()) && worldPoint.getRegionY() == objectPoint.getRegionY())
{ {
// Transform object to get the name which matches against what we've stored // Transform object to get the name which matches against what we've stored
if (objectPoint.getName().equals(getObjectDefinition(object.getId()).getName())) if (objectPoint.getName().equals(getObjectDefinition(object.getId()).getName()))
@@ -446,18 +445,27 @@ public class ObjectIndicatorsPlugin extends Plugin implements KeyListener
} }
final int regionId = worldPoint.getRegionID(); final int regionId = worldPoint.getRegionID();
final ObjectPoint point = new ObjectPoint( final ObjectPoint point = new ObjectPoint(
object.getId(),
name, name,
regionId, regionId,
worldPoint.getX() & (REGION_SIZE - 1), worldPoint.getRegionX(),
worldPoint.getY() & (REGION_SIZE - 1), worldPoint.getRegionY(),
client.getPlane()); client.getPlane());
Set<ObjectPoint> objectPoints = points.computeIfAbsent(regionId, k -> new HashSet<>()); Set<ObjectPoint> objectPoints = points.computeIfAbsent(regionId, k -> new HashSet<>());
if (objectPoints.contains(point)) if (objects.remove(object))
{ {
objectPoints.remove(point); // Use object id instead of name to match the object point with this object due to the object name being
objects.remove(object); // able to change because of multilocs.
if (!objectPoints.removeIf(op -> (op.getId() == -1 || op.getId() == object.getId())
&& op.getRegionX() == worldPoint.getRegionX()
&& op.getRegionY() == worldPoint.getRegionY()
&& op.getZ() == worldPoint.getPlane()))
{
log.warn("unable to find object point for unmarked object {}", object.getId());
}
log.debug("Unmarking object: {}", point); log.debug("Unmarking object: {}", point);
} }
else else
@@ -25,11 +25,16 @@
package net.runelite.client.plugins.objectindicators; package net.runelite.client.plugins.objectindicators;
import lombok.Value; import lombok.AllArgsConstructor;
import lombok.Data;
import lombok.NoArgsConstructor;
@Value @Data
@NoArgsConstructor
@AllArgsConstructor
class ObjectPoint class ObjectPoint
{ {
private int id = -1;
private String name; private String name;
private int regionId; private int regionId;
private int regionX; private int regionX;
@@ -33,7 +33,7 @@ import lombok.Getter;
import net.runelite.client.plugins.raids.solver.Layout; import net.runelite.client.plugins.raids.solver.Layout;
import net.runelite.client.plugins.raids.solver.Room; import net.runelite.client.plugins.raids.solver.Room;
public class Raid class Raid
{ {
@Getter(AccessLevel.PACKAGE) @Getter(AccessLevel.PACKAGE)
private final RaidRoom[] rooms = new RaidRoom[16]; private final RaidRoom[] rooms = new RaidRoom[16];
@@ -76,6 +76,7 @@ import net.runelite.api.util.Text;
import net.runelite.api.widgets.Widget; import net.runelite.api.widgets.Widget;
import static net.runelite.api.widgets.WidgetID.BARROWS_REWARD_GROUP_ID; import static net.runelite.api.widgets.WidgetID.BARROWS_REWARD_GROUP_ID;
import static net.runelite.api.widgets.WidgetID.CHAMBERS_OF_XERIC_REWARD_GROUP_ID; import static net.runelite.api.widgets.WidgetID.CHAMBERS_OF_XERIC_REWARD_GROUP_ID;
import static net.runelite.api.widgets.WidgetID.CHATBOX_GROUP_ID;
import static net.runelite.api.widgets.WidgetID.CLUE_SCROLL_REWARD_GROUP_ID; import static net.runelite.api.widgets.WidgetID.CLUE_SCROLL_REWARD_GROUP_ID;
import static net.runelite.api.widgets.WidgetID.DIALOG_SPRITE_GROUP_ID; import static net.runelite.api.widgets.WidgetID.DIALOG_SPRITE_GROUP_ID;
import static net.runelite.api.widgets.WidgetID.KINGDOM_GROUP_ID; import static net.runelite.api.widgets.WidgetID.KINGDOM_GROUP_ID;
@@ -303,11 +304,11 @@ public class ScreenshotPlugin extends Plugin
String fileName = null; String fileName = null;
if (client.getWidget(WidgetInfo.LEVEL_UP_LEVEL) != null) if (client.getWidget(WidgetInfo.LEVEL_UP_LEVEL) != null)
{ {
fileName = parseLevelUpWidget(WidgetInfo.LEVEL_UP_LEVEL); fileName = parseLevelUpWidget(client.getWidget(WidgetInfo.LEVEL_UP_LEVEL));
} }
else if (client.getWidget(WidgetInfo.DIALOG_SPRITE_TEXT) != null) else if (client.getWidget(WidgetInfo.DIALOG_SPRITE_TEXT) != null)
{ {
fileName = parseLevelUpWidget(WidgetInfo.DIALOG_SPRITE_TEXT); fileName = parseLevelUpWidget(client.getWidget(WidgetInfo.DIALOG_SPRITE_TEXT));
} }
else if (client.getWidget(WidgetInfo.QUEST_COMPLETED_NAME_TEXT) != null) else if (client.getWidget(WidgetInfo.QUEST_COMPLETED_NAME_TEXT) != null)
{ {
@@ -315,6 +316,10 @@ public class ScreenshotPlugin extends Plugin
String text = client.getWidget(WidgetInfo.QUEST_COMPLETED_NAME_TEXT).getText(); String text = client.getWidget(WidgetInfo.QUEST_COMPLETED_NAME_TEXT).getText();
fileName = "Quest(" + text.substring(19, text.length() - 1) + ")"; fileName = "Quest(" + text.substring(19, text.length() - 1) + ")";
} }
else if (client.getWidget(WidgetInfo.CHATBOX_CONTAINER).getChild(1) != null)
{
fileName = parseLevelUpWidget(client.getWidget(WidgetInfo.CHATBOX_CONTAINER).getChild(1));
}
if (fileName != null) if (fileName != null)
{ {
@@ -485,6 +490,7 @@ public class ScreenshotPlugin extends Plugin
break; break;
case LEVEL_UP_GROUP_ID: case LEVEL_UP_GROUP_ID:
case DIALOG_SPRITE_GROUP_ID: case DIALOG_SPRITE_GROUP_ID:
case CHATBOX_GROUP_ID:
if (!this.screenshotLevels) if (!this.screenshotLevels)
{ {
return; return;
@@ -549,6 +555,7 @@ public class ScreenshotPlugin extends Plugin
case LEVEL_UP_GROUP_ID: case LEVEL_UP_GROUP_ID:
case DIALOG_SPRITE_GROUP_ID: case DIALOG_SPRITE_GROUP_ID:
case QUEST_COMPLETED_GROUP_ID: case QUEST_COMPLETED_GROUP_ID:
case CHATBOX_GROUP_ID:
{ {
// level up widget gets loaded prior to the text being set, so wait until the next tick // level up widget gets loaded prior to the text being set, so wait until the next tick
shouldTakeScreenshot = true; shouldTakeScreenshot = true;
@@ -574,22 +581,21 @@ public class ScreenshotPlugin extends Plugin
} }
/** /**
* Receives a WidgetInfo pointing to the middle widget of the level-up dialog, * Receives a Widget containing the level-up dialog,
* and parses it into a shortened string for filename usage. * and parses it into a shortened string for filename usage.
* *
* @param levelUpLevel WidgetInfo pointing to the required text widget, * @param levelUpWidget Widget containing the level-up text,
* with the format "Your Skill (level is/are) now 99." * with the format "Your Skill (level is/are) now 99."
* @return Shortened string in the format "Skill(99)" * @return Shortened string in the format "Skill(99)"
*/ */
String parseLevelUpWidget(WidgetInfo levelUpLevel) String parseLevelUpWidget(Widget levelUpWidget)
{ {
Widget levelChild = client.getWidget(levelUpLevel); if (levelUpWidget == null)
if (levelChild == null)
{ {
return null; return null;
} }
Matcher m = LEVEL_UP_PATTERN.matcher(levelChild.getText()); Matcher m = LEVEL_UP_PATTERN.matcher(levelUpWidget.getText());
if (!m.matches()) if (!m.matches())
{ {
return null; return null;
@@ -38,7 +38,8 @@ enum TeleportWidget
WidgetInfo.SPELL_LUMBRIDGE_HOME_TELEPORT.getId(), WidgetInfo.SPELL_LUMBRIDGE_HOME_TELEPORT.getId(),
WidgetInfo.SPELL_EDGEVILLE_HOME_TELEPORT.getId(), WidgetInfo.SPELL_EDGEVILLE_HOME_TELEPORT.getId(),
WidgetInfo.SPELL_LUNAR_HOME_TELEPORT.getId(), WidgetInfo.SPELL_LUNAR_HOME_TELEPORT.getId(),
WidgetInfo.SPELL_ARCEUUS_HOME_TELEPORT.getId() WidgetInfo.SPELL_ARCEUUS_HOME_TELEPORT.getId(),
WidgetInfo.SPELL_KOUREND_HOME_TELEPORT.getId()
); );
private static final Collection MINIGAME_TELEPORT_IDS = ImmutableList.of( private static final Collection MINIGAME_TELEPORT_IDS = ImmutableList.of(
WidgetInfo.MINIGAME_TELEPORT_BUTTON.getId() WidgetInfo.MINIGAME_TELEPORT_BUTTON.getId()
@@ -0,0 +1,101 @@
/*
* Copyright (c) 2018, Magic fTail
* All rights reserved.
*
* Redistribution and use in source and binary forms, with or without
* modification, are permitted provided that the following conditions are met:
*
* 1. Redistributions of source code must retain the above copyright notice, this
* list of conditions and the following disclaimer.
* 2. Redistributions in binary form must reproduce the above copyright notice,
* this list of conditions and the following disclaimer in the documentation
* and/or other materials provided with the distribution.
*
* THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" AND
* ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED
* WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE
* DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT OWNER OR CONTRIBUTORS BE LIABLE FOR
* ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES
* (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES;
* LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND
* ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
* (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS
* SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
*/
package net.runelite.client.plugins.virtuallevels;
import com.google.common.collect.ArrayListMultimap;
import com.google.common.collect.ListMultimap;
import java.util.List;
import lombok.Getter;
import net.runelite.api.ModelID;
import net.runelite.api.Skill;
@Getter
public enum SkillModel
{
CONSTRUCTION1(Skill.CONSTRUCTION, ModelID.HAMMER, 10, 14, 669, 15, 0, 329),
CONSTRUCTION2(Skill.CONSTRUCTION, ModelID.SAW, 11, 14, 615, 111, 0, 451),
COOKING(Skill.COOKING, ModelID.COOKING_SKILL_MODEL, 31, 59, 169, 1593, 0, 963),
CRAFTING1(Skill.CRAFTING, ModelID.HAMMER, 30, 24, 418, 14, 0, 496),
CRAFTING2(Skill.CRAFTING, ModelID.CHISEL, 39, 45, 353, 18, 0, 400),
DEFENCE(Skill.DEFENCE, ModelID.STEEL_KITESHIELD, 34, 37, 337, 1074, 0, 598),
FARMING(Skill.FARMING, ModelID.WATERING_CAN, 31, 52, 118, 1278, 0, 451),
FIREMAKING(Skill.FIREMAKING, ModelID.FIREMAKING_SKILL_MODEL, 29, 55, 115, 1689, 0, 771),
FISHING(Skill.FISHING, ModelID.RAW_TUNA, 33, 30, 351, 1865, 0, 517),
FLETCHING1(Skill.FLETCHING, ModelID.STEEL_ARROW, 43, 19, 254, 1257, 0, 408),
FLETCHING2(Skill.FLETCHING, ModelID.STEEL_ARROW, 46, 44, 223, 177, 0, 444),
HERBLORE(Skill.HERBLORE, ModelID.CLEAN_HERB, 20, 35, 550, 2024, 0, 344),
HITPOINTS(Skill.HITPOINTS, ModelID.HEARTH, 35, 58, 538, 0, 0, 250),
MAGIC(Skill.MAGIC, ModelID.BLUE_WIZARD_HAT, 29, 50, 131, 1913, 0, 344),
MINING(Skill.MINING, ModelID.STEEL_PICKAXE, 38, 33, 292, 1166, 0, 413),
PRAYER(Skill.PRAYER, ModelID.PRAYER_SKILL_MODEL, 29, 27, 582, 504, 0, 505),
RANGED1(Skill.RANGED, ModelID.STEEL_ARROW, 28, 34, 206, 195, 0, 405),
RANGED2(Skill.RANGED, ModelID.SHORTBOW, 42, 17, 422, 1618, 0, 397),
RUNECRAFT(Skill.RUNECRAFT, ModelID.PURE_ESSENCE, 35, 38, 242, 1979, 0, 328),
SLAYER(Skill.SLAYER, ModelID.SLAYER_SKILL_MODEL, 34, 60, 221, 1944, 0, 649),
SMITHING(Skill.SMITHING, ModelID.ANVIL, 34, 53, 97, 1868, 0, 716),
STRENGTH(Skill.STRENGTH, ModelID.STRENGTH_SKILL_MODEL, 35, 23, 512, 14, 0, 631),
AGILITY(Skill.AGILITY, ModelID.AGILITY_SKILL_MODEL, 29, 29, 533, 2040, 0, 685),
THIEVING(Skill.THIEVING, ModelID.HIGHWAYMAN_MASK, 42, 31, 366, 55, 0, 155),
WOODCUTTING(Skill.WOODCUTTING, ModelID.WILLOW_TREE, 20, 69, 116, 1978, 0, 1800),
ATTACK1(Skill.ATTACK, ModelID.STEEL_SWORD, 65, 38, 234, 148, 0, 444),
ATTACK2(Skill.ATTACK, ModelID.STEEL_LONGSWORD, 27, 29, 198, 1419, 0, 330),
HUNTER(Skill.HUNTER, ModelID.FOOTPRINT, 45, 48, 512, 0, 0, 1000);
private static final ListMultimap<Skill, SkillModel> skillModels = ArrayListMultimap.create();
private final Skill skill;
private final int modelID;
private final int originalX;
private final int originalY;
private final int rotationX;
private final int rotationY;
private final int rotationZ;
private final int modelZoom;
SkillModel(Skill skill, int modelID, int originalX, int originalY, int rotationX, int rotationY, int rotationZ, int modelZoom)
{
this.skill = skill;
this.modelID = modelID;
this.originalX = originalX;
this.originalY = originalY;
this.rotationX = rotationX;
this.rotationY = rotationY;
this.rotationZ = rotationZ;
this.modelZoom = modelZoom;
}
static
{
for (SkillModel skillModel : values())
{
skillModels.put(skillModel.skill, skillModel);
}
}
public static List<SkillModel> getSkillModels(Skill skill)
{
return skillModels.get(skill);
}
}
@@ -31,11 +31,22 @@ import net.runelite.client.config.ConfigItem;
@ConfigGroup("virtuallevels") @ConfigGroup("virtuallevels")
public interface VirtualLevelsConfig extends Config public interface VirtualLevelsConfig extends Config
{ {
@ConfigItem(
keyName = "virtualMessage",
name = "Enable level up message for virtual levels",
description = "Configures whether or not to show level up messages for virtual levels",
position = 0
)
default boolean virtualMessage()
{
return true;
}
@ConfigItem( @ConfigItem(
keyName = "virtualTotalLevel", keyName = "virtualTotalLevel",
name = "Virtual Total Level", name = "Virtual Total Level",
description = "Count virtual levels towards total level", description = "Count virtual levels towards total level",
position = 0 position = 1
) )
default boolean virtualTotalLevel() default boolean virtualTotalLevel()
{ {
@@ -1,6 +1,7 @@
/* /*
* Copyright (c) 2018, Joshua Filby <joshua@filby.me> * Copyright (c) 2018, Joshua Filby <joshua@filby.me>
* Copyright (c) 2018, Jordan Atwood <jordan.atwood423@gmail.com> * Copyright (c) 2018, Jordan Atwood <jordan.atwood423@gmail.com>
* Copyright (c) 2018, Magic fTail
* All rights reserved. * All rights reserved.
* *
* Redistribution and use in source and binary forms, with or without * Redistribution and use in source and binary forms, with or without
@@ -26,17 +27,40 @@
package net.runelite.client.plugins.virtuallevels; package net.runelite.client.plugins.virtuallevels;
import com.google.inject.Provides; import com.google.inject.Provides;
import java.awt.event.KeyEvent;
import java.util.ArrayList;
import java.util.EnumMap;
import java.util.List;
import java.util.Map;
import javax.inject.Inject; import javax.inject.Inject;
import javax.inject.Singleton; import javax.inject.Singleton;
import net.runelite.api.Client; import net.runelite.api.Client;
import net.runelite.api.Experience; import net.runelite.api.Experience;
import net.runelite.api.FontID;
import net.runelite.api.GameState;
import net.runelite.api.ScriptID;
import net.runelite.api.Skill; import net.runelite.api.Skill;
import net.runelite.api.events.GameStateChanged;
import net.runelite.api.events.GameTick;
import net.runelite.api.events.ScriptCallbackEvent; import net.runelite.api.events.ScriptCallbackEvent;
import net.runelite.api.events.StatChanged;
import net.runelite.api.events.WidgetLoaded;
import net.runelite.api.widgets.JavaScriptCallback;
import net.runelite.api.widgets.Widget;
import net.runelite.api.widgets.WidgetID;
import net.runelite.api.widgets.WidgetInfo;
import net.runelite.api.widgets.WidgetPositionMode;
import net.runelite.api.widgets.WidgetSizeMode;
import net.runelite.api.widgets.WidgetTextAlignment;
import net.runelite.api.widgets.WidgetType;
import net.runelite.client.callback.ClientThread; import net.runelite.client.callback.ClientThread;
import net.runelite.client.config.ConfigManager; import net.runelite.client.config.ConfigManager;
import net.runelite.client.eventbus.EventBus;
import net.runelite.client.eventbus.Subscribe; import net.runelite.client.eventbus.Subscribe;
import net.runelite.client.events.ConfigChanged; import net.runelite.client.events.ConfigChanged;
import net.runelite.client.events.PluginChanged; import net.runelite.client.events.PluginChanged;
import net.runelite.client.input.KeyListener;
import net.runelite.client.input.KeyManager;
import net.runelite.client.plugins.Plugin; import net.runelite.client.plugins.Plugin;
import net.runelite.client.plugins.PluginDescriptor; import net.runelite.client.plugins.PluginDescriptor;
@@ -47,9 +71,14 @@ import net.runelite.client.plugins.PluginDescriptor;
enabledByDefault = false enabledByDefault = false
) )
@Singleton @Singleton
public class VirtualLevelsPlugin extends Plugin public class VirtualLevelsPlugin extends Plugin implements KeyListener
{ {
private static final String TOTAL_LEVEL_TEXT_PREFIX = "Total level:<br>"; private static final String TOTAL_LEVEL_TEXT_PREFIX = "Total level:<br>";
private static final int X_OFFSET = 13;
private static final int Y_OFFSET = 16;
private final Map<Skill, Integer> previousXpMap = new EnumMap<>(Skill.class);
private final List<Skill> skillsLeveledUp = new ArrayList<>();
@Inject @Inject
private VirtualLevelsConfig config; private VirtualLevelsConfig config;
@@ -60,6 +89,16 @@ public class VirtualLevelsPlugin extends Plugin
@Inject @Inject
private ClientThread clientThread; private ClientThread clientThread;
@Inject
private EventBus eventBus;
@Inject
private KeyManager keyManager;
private boolean loginTick = false;
private boolean closeMessage;
private boolean messageOpen;
@Provides @Provides
VirtualLevelsConfig provideConfig(ConfigManager configManager) VirtualLevelsConfig provideConfig(ConfigManager configManager)
{ {
@@ -71,6 +110,7 @@ public class VirtualLevelsPlugin extends Plugin
protected void shutDown() protected void shutDown()
{ {
clientThread.invoke(this::simulateSkillChange); clientThread.invoke(this::simulateSkillChange);
keyManager.unregisterKeyListener(this);
} }
@Subscribe @Subscribe
@@ -79,6 +119,7 @@ public class VirtualLevelsPlugin extends Plugin
// this is guaranteed to be called after the plugin has been registered by the eventbus. startUp is not. // this is guaranteed to be called after the plugin has been registered by the eventbus. startUp is not.
if (pluginChanged.getPlugin() == this) if (pluginChanged.getPlugin() == this)
{ {
keyManager.registerKeyListener(this);
clientThread.invoke(this::simulateSkillChange); clientThread.invoke(this::simulateSkillChange);
} }
} }
@@ -151,4 +192,226 @@ public class VirtualLevelsPlugin extends Plugin
} }
} }
} }
private void buildVirtualLevelUp(Skill skill)
{
Widget chatboxContainer = client.getWidget(WidgetInfo.CHATBOX_CONTAINER);
if (chatboxContainer == null)
{
return;
}
String skillName = skill.getName();
int skillLevel = Experience.getLevelForXp(client.getSkillExperience(skill));
List<SkillModel> skillModels = SkillModel.getSkillModels(skill);
String prefix = (skill == Skill.AGILITY || skill == Skill.ATTACK) ? "an " : "a ";
Widget levelUpLevel = chatboxContainer.createChild(-1, WidgetType.TEXT);
Widget levelUpText = chatboxContainer.createChild(-1, WidgetType.TEXT);
Widget levelUpContinue = chatboxContainer.createChild(-1, WidgetType.TEXT);
levelUpLevel.setText("Congratulations, you just advanced " + prefix + skillName + " level.");
levelUpLevel.setTextColor(0x000080);
levelUpLevel.setFontId(FontID.QUILL_8);
levelUpLevel.setXPositionMode(WidgetPositionMode.ABSOLUTE_TOP);
levelUpLevel.setOriginalX(73 + X_OFFSET);
levelUpLevel.setYPositionMode(WidgetPositionMode.ABSOLUTE_TOP);
levelUpLevel.setOriginalY(15 + Y_OFFSET);
levelUpLevel.setOriginalWidth(390);
levelUpLevel.setOriginalHeight(30);
levelUpLevel.setXTextAlignment(WidgetTextAlignment.CENTER);
levelUpLevel.setYTextAlignment(WidgetTextAlignment.LEFT);
levelUpLevel.setWidthMode(WidgetSizeMode.ABSOLUTE);
levelUpLevel.revalidate();
levelUpText.setText((skill == Skill.HITPOINTS ? "Your Hitpoints are now " + skillLevel :
"Your " + skillName + " level is now " + skillLevel) + ".");
levelUpText.setFontId(FontID.QUILL_8);
levelUpText.setXPositionMode(WidgetPositionMode.ABSOLUTE_TOP);
levelUpText.setOriginalX(73 + X_OFFSET);
levelUpText.setYPositionMode(WidgetPositionMode.ABSOLUTE_TOP);
levelUpText.setOriginalY(44 + Y_OFFSET);
levelUpText.setOriginalWidth(390);
levelUpText.setOriginalHeight(30);
levelUpText.setXTextAlignment(WidgetTextAlignment.CENTER);
levelUpText.setYTextAlignment(WidgetTextAlignment.LEFT);
levelUpText.setWidthMode(WidgetSizeMode.ABSOLUTE);
levelUpText.revalidate();
levelUpContinue.setText("Click here to continue");
levelUpContinue.setTextColor(0x0000ff);
levelUpContinue.setFontId(FontID.QUILL_8);
levelUpContinue.setXPositionMode(WidgetPositionMode.ABSOLUTE_TOP);
levelUpContinue.setOriginalX(73 + X_OFFSET);
levelUpContinue.setYPositionMode(WidgetPositionMode.ABSOLUTE_TOP);
levelUpContinue.setOriginalY(74 + Y_OFFSET);
levelUpContinue.setOriginalWidth(390);
levelUpContinue.setOriginalHeight(17);
levelUpContinue.setXTextAlignment(WidgetTextAlignment.CENTER);
levelUpContinue.setYTextAlignment(WidgetTextAlignment.LEFT);
levelUpContinue.setWidthMode(WidgetSizeMode.ABSOLUTE);
levelUpContinue.setAction(0, "Continue");
levelUpContinue.setOnOpListener((JavaScriptCallback) ev -> closeNextTick());
levelUpContinue.setOnMouseOverListener((JavaScriptCallback) ev -> levelUpContinue.setTextColor(0xFFFFFF));
levelUpContinue.setOnMouseLeaveListener((JavaScriptCallback) ev -> levelUpContinue.setTextColor(0x0000ff));
levelUpContinue.setHasListener(true);
levelUpContinue.revalidate();
for (SkillModel skillModel : skillModels)
{
buildWidgetModel(chatboxContainer, skillModel);
}
messageOpen = true;
}
private void buildWidgetModel(Widget chatboxContainer, SkillModel model)
{
int iconWidth = 32;
int iconHeight = 32;
if (model.getSkill() == Skill.CONSTRUCTION)
{
iconWidth = 49;
iconHeight = 61;
}
Widget levelUpModel = chatboxContainer.createChild(-1, WidgetType.MODEL);
levelUpModel.setModelId(model.getModelID());
levelUpModel.setXPositionMode(WidgetPositionMode.ABSOLUTE_TOP);
levelUpModel.setOriginalX(model.getOriginalX() + X_OFFSET);
levelUpModel.setYPositionMode(WidgetPositionMode.ABSOLUTE_TOP);
levelUpModel.setOriginalY(model.getOriginalY() + Y_OFFSET);
levelUpModel.setOriginalWidth(iconWidth);
levelUpModel.setOriginalHeight(iconHeight);
levelUpModel.setRotationX(model.getRotationX());
levelUpModel.setRotationY(model.getRotationY());
levelUpModel.setRotationZ(model.getRotationZ());
levelUpModel.setModelZoom(model.getModelZoom());
levelUpModel.revalidate();
}
private void closeNextTick()
{
if (!messageOpen)
{
return;
}
Widget levelUpContinue = client.getWidget(WidgetInfo.CHATBOX_CONTAINER).getChild(2);
levelUpContinue.setText("Please wait...");
messageOpen = false;
closeMessage = true;
}
@Subscribe
public void onGameStateChanged(GameStateChanged event)
{
if (event.getGameState() == GameState.LOGIN_SCREEN)
{
loginTick = true;
return;
}
if (event.getGameState() != GameState.LOGGED_IN)
{
return;
}
for (Skill skill : Skill.values())
{
previousXpMap.put(skill, client.getSkillExperience(skill));
}
}
@Subscribe
public void onStatChanged(StatChanged event)
{
Skill skill = event.getSkill();
int xpAfter = client.getSkillExperience(skill);
int levelAfter = Experience.getLevelForXp(xpAfter);
int xpBefore = previousXpMap.get(skill);
int levelBefore = Experience.getLevelForXp(xpBefore);
previousXpMap.put(skill, xpAfter);
if (!config.virtualMessage() || levelAfter < 100 || levelBefore >= levelAfter)
{
return;
}
if (!loginTick)
{
skillsLeveledUp.add(skill);
}
}
@Subscribe
public void onGameTick(GameTick event)
{
loginTick = false;
if (closeMessage)
{
clientThread.invoke(() -> client.runScript(
ScriptID.MESSAGE_LAYER_CLOSE,
1,
1
));
closeMessage = false;
}
if (skillsLeveledUp.isEmpty())
{
return;
}
Widget chatboxContainer = client.getWidget(WidgetInfo.CHATBOX_CONTAINER);
if (chatboxContainer != null && !chatboxContainer.isHidden())
{
return;
}
Skill skill = skillsLeveledUp.get(0);
skillsLeveledUp.remove(skill);
clientThread.invoke(() -> client.runScript(ScriptID.MESSAGE_LAYER_OPEN));
clientThread.invoke(() -> buildVirtualLevelUp(skill));
WidgetLoaded widgetLoaded = new WidgetLoaded();
widgetLoaded.setGroupId(WidgetID.CHATBOX_GROUP_ID);
eventBus.post(WidgetLoaded.class, widgetLoaded);
}
@Override
public void keyTyped(KeyEvent e)
{
if (e.getKeyChar() != ' ')
{
return;
}
if (messageOpen)
{
closeNextTick();
}
}
@Override
public void keyPressed(KeyEvent e)
{
}
@Override
public void keyReleased(KeyEvent e)
{
}
} }
@@ -25,23 +25,27 @@
package net.runelite.client.plugins.woodcutting; package net.runelite.client.plugins.woodcutting;
import com.google.common.collect.ImmutableMap; import com.google.common.collect.ImmutableMap;
import java.time.Duration;
import java.util.Map; import java.util.Map;
import lombok.AccessLevel; import javax.annotation.Nullable;
import lombok.Getter; import lombok.Getter;
import static net.runelite.api.ObjectID.REDWOOD; import static net.runelite.api.NullObjectID.NULL_10823;
import static net.runelite.api.ObjectID.REDWOOD_29670; import static net.runelite.api.NullObjectID.NULL_10835;
import net.runelite.api.ObjectID;
import static net.runelite.api.ObjectID.*;
@Getter(AccessLevel.PACKAGE) @Getter
enum Tree enum Tree
{ {
REDWOOD_TREE_SPAWN(REDWOOD, REDWOOD_29670); REGULAR_TREE(null, TREE, TREE_1277, TREE_1278, TREE_1279, TREE_1280),
OAK_TREE(Duration.ofMillis(8500), ObjectID.OAK_TREE, OAK_TREE_4540, OAK_10820),
private final int[] treeIds; WILLOW_TREE(Duration.ofMillis(8500), WILLOW, WILLOW_10833, WILLOW_10831),
MAPLE_TREE(Duration.ofSeconds(35), ObjectID.MAPLE_TREE, MAPLE_TREE_10832, MAPLE_TREE_36681),
Tree(final int... treeIds) TEAK_TREE(Duration.ofMillis(8500), TEAK, TEAK_36686),
{ MAHOGANY_TREE(Duration.ofMillis(8500), MAHOGANY, MAHOGANY_36688),
this.treeIds = treeIds; YEW_TREE(Duration.ofMinutes(1), YEW, NULL_10823, YEW_36683),
} MAGIC_TREE(Duration.ofMinutes(2), MAGIC_TREE_10834, NULL_10835),
REDWOOD(Duration.ofMinutes(2), ObjectID.REDWOOD, REDWOOD_29670);
private static final Map<Integer, Tree> TREES; private static final Map<Integer, Tree> TREES;
@@ -60,6 +64,16 @@ enum Tree
TREES = builder.build(); TREES = builder.build();
} }
@Nullable
private final Duration respawnTime;
private final int[] treeIds;
Tree(@org.jetbrains.annotations.Nullable Duration respawnTime, int... treeIds)
{
this.respawnTime = respawnTime;
this.treeIds = treeIds;
}
static Tree findTree(int objectId) static Tree findTree(int objectId)
{ {
return TREES.get(objectId); return TREES.get(objectId);
@@ -0,0 +1,46 @@
/*
* Copyright (c) 2019, Adam <Adam@sigterm.info>
* Copyright (c) 2019, David <Dava96@github.com>
* All rights reserved.
*
* Redistribution and use in source and binary forms, with or without
* modification, are permitted provided that the following conditions are met:
*
* 1. Redistributions of source code must retain the above copyright notice, this
* list of conditions and the following disclaimer.
* 2. Redistributions in binary form must reproduce the above copyright notice,
* this list of conditions and the following disclaimer in the documentation
* and/or other materials provided with the distribution.
*
* THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" AND
* ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED
* WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE
* DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT OWNER OR CONTRIBUTORS BE LIABLE FOR
* ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES
* (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES;
* LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND
* ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
* (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS
* SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
*/
package net.runelite.client.plugins.woodcutting;
import java.time.Instant;
import lombok.AllArgsConstructor;
import lombok.Getter;
import net.runelite.api.coords.LocalPoint;
@AllArgsConstructor
@Getter
class TreeRespawn
{
private final Tree tree;
private final LocalPoint location;
private final Instant startTime;
private final int respawnTime;
boolean isExpired()
{
return Instant.now().isAfter(startTime.plusMillis(respawnTime));
}
}
@@ -85,4 +85,15 @@ public interface WoodcuttingConfig extends Config
{ {
return false; return false;
} }
@ConfigItem(
position = 6,
keyName = "showRespawnTimers",
name = "Show respawn timers",
description = "Configures whether to display the respawn timer overlay"
)
default boolean showRespawnTimers()
{
return true;
}
} }
@@ -43,7 +43,6 @@ import net.runelite.client.ui.overlay.components.TitleComponent;
import net.runelite.client.ui.overlay.components.table.TableAlignment; import net.runelite.client.ui.overlay.components.table.TableAlignment;
import net.runelite.client.ui.overlay.components.table.TableComponent; import net.runelite.client.ui.overlay.components.table.TableComponent;
@Singleton @Singleton
class WoodcuttingOverlay extends Overlay class WoodcuttingOverlay extends Overlay
{ {
@@ -51,17 +50,18 @@ class WoodcuttingOverlay extends Overlay
private final Client client; private final Client client;
private final WoodcuttingPlugin plugin; private final WoodcuttingPlugin plugin;
private final WoodcuttingConfig config;
private final XpTrackerService xpTrackerService; private final XpTrackerService xpTrackerService;
private final PanelComponent panelComponent = new PanelComponent(); private final PanelComponent panelComponent = new PanelComponent();
@Inject @Inject
private WoodcuttingOverlay(final Client client, final WoodcuttingPlugin plugin, final XpTrackerService xpTrackerService) private WoodcuttingOverlay(Client client, WoodcuttingPlugin plugin, WoodcuttingConfig config, XpTrackerService xpTrackerService)
{ {
super(plugin); super(plugin);
setPosition(OverlayPosition.TOP_LEFT); setPosition(OverlayPosition.TOP_LEFT);
this.client = client; this.client = client;
this.plugin = plugin; this.plugin = plugin;
this.config = config;
this.xpTrackerService = xpTrackerService; this.xpTrackerService = xpTrackerService;
getMenuEntries().add(new OverlayMenuEntry(RUNELITE_OVERLAY_CONFIG, OPTION_CONFIGURE, "Woodcutting overlay")); getMenuEntries().add(new OverlayMenuEntry(RUNELITE_OVERLAY_CONFIG, OPTION_CONFIGURE, "Woodcutting overlay"));
getMenuEntries().add(new OverlayMenuEntry(RUNELITE_OVERLAY, WOODCUTTING_RESET, "Woodcutting overlay")); getMenuEntries().add(new OverlayMenuEntry(RUNELITE_OVERLAY, WOODCUTTING_RESET, "Woodcutting overlay"));
@@ -70,7 +70,7 @@ class WoodcuttingOverlay extends Overlay
@Override @Override
public Dimension render(Graphics2D graphics) public Dimension render(Graphics2D graphics)
{ {
if (!plugin.isShowWoodcuttingStats()) if (!config.showWoodcuttingStats())
{ {
return null; return null;
} }
@@ -107,7 +107,7 @@ class WoodcuttingOverlay extends Overlay
{ {
tableComponent.addRow("Logs cut:", Integer.toString(actions)); tableComponent.addRow("Logs cut:", Integer.toString(actions));
if (plugin.isShowGPEarned()) if (config.showGPEarned())
{ {
tableComponent.addRow("GP earned:", Integer.toString((plugin.getGpEarned()))); tableComponent.addRow("GP earned:", Integer.toString((plugin.getGpEarned())));
} }
@@ -123,5 +123,4 @@ class WoodcuttingOverlay extends Overlay
return panelComponent.render(graphics); return panelComponent.render(graphics);
} }
} }
@@ -27,17 +27,18 @@ package net.runelite.client.plugins.woodcutting;
import com.google.inject.Provides; import com.google.inject.Provides;
import java.time.Duration; import java.time.Duration;
import java.time.Instant; import java.time.Instant;
import java.util.ArrayList;
import java.util.HashSet; import java.util.HashSet;
import java.util.List;
import java.util.Set; import java.util.Set;
import java.util.regex.Pattern; import java.util.regex.Pattern;
import javax.inject.Inject; import javax.inject.Inject;
import javax.inject.Singleton;
import lombok.AccessLevel; import lombok.AccessLevel;
import lombok.Getter; import lombok.Getter;
import lombok.extern.slf4j.Slf4j;
import net.runelite.api.ChatMessageType; import net.runelite.api.ChatMessageType;
import net.runelite.api.Client; import net.runelite.api.Client;
import net.runelite.api.GameObject; import net.runelite.api.GameObject;
import net.runelite.api.GameState;
import net.runelite.api.ItemID; import net.runelite.api.ItemID;
import net.runelite.api.MenuOpcode; import net.runelite.api.MenuOpcode;
import net.runelite.api.Player; import net.runelite.api.Player;
@@ -51,7 +52,6 @@ import net.runelite.api.events.GameTick;
import net.runelite.client.Notifier; import net.runelite.client.Notifier;
import net.runelite.client.config.ConfigManager; import net.runelite.client.config.ConfigManager;
import net.runelite.client.eventbus.Subscribe; import net.runelite.client.eventbus.Subscribe;
import net.runelite.client.events.ConfigChanged;
import net.runelite.client.events.OverlayMenuClicked; import net.runelite.client.events.OverlayMenuClicked;
import net.runelite.client.game.ItemManager; import net.runelite.client.game.ItemManager;
import net.runelite.client.plugins.Plugin; import net.runelite.client.plugins.Plugin;
@@ -64,14 +64,21 @@ import net.runelite.client.ui.overlay.OverlayMenuEntry;
@PluginDescriptor( @PluginDescriptor(
name = "Woodcutting", name = "Woodcutting",
description = "Show woodcutting statistics and/or bird nest notifications", description = "Show woodcutting statistics and/or bird nest notifications",
tags = {"birds", "nest", "notifications", "overlay", "skilling", "wc"} tags = {"birds", "nest", "notifications", "overlay", "skilling", "wc"},
enabledByDefault = false
) )
@Singleton
@PluginDependency(XpTrackerPlugin.class) @PluginDependency(XpTrackerPlugin.class)
@Slf4j
public class WoodcuttingPlugin extends Plugin public class WoodcuttingPlugin extends Plugin
{ {
private static final Pattern WOOD_CUT_PATTERN = Pattern.compile("You get (?:some|an)[\\w ]+(?:logs?|mushrooms)\\."); private static final Pattern WOOD_CUT_PATTERN = Pattern.compile("You get (?:some|an)[\\w ]+(?:logs?|mushrooms)\\.");
@Getter
private final Set<GameObject> treeObjects = new HashSet<>();
@Getter(AccessLevel.PACKAGE)
private final List<TreeRespawn> respawns = new ArrayList<>();
@Inject @Inject
private Notifier notifier; private Notifier notifier;
@@ -93,24 +100,13 @@ public class WoodcuttingPlugin extends Plugin
@Inject @Inject
private ItemManager itemManager; private ItemManager itemManager;
@Getter(AccessLevel.PACKAGE) @Getter
private WoodcuttingSession session; private WoodcuttingSession session;
@Getter(AccessLevel.PACKAGE) @Getter
private Axe axe; private Axe axe;
@Getter(AccessLevel.PACKAGE) private boolean recentlyLoggedIn;
private final Set<GameObject> treeObjects = new HashSet<>();
private int statTimeout;
boolean showNestNotification;
@Getter(AccessLevel.PACKAGE)
private boolean showWoodcuttingStats;
@Getter(AccessLevel.PACKAGE)
private boolean showRedwoodTrees;
@Getter(AccessLevel.PACKAGE)
private boolean showGPEarned;
private int treeTypeID; private int treeTypeID;
@Getter(AccessLevel.PACKAGE) @Getter(AccessLevel.PACKAGE)
private int gpEarned; private int gpEarned;
@@ -122,19 +118,18 @@ public class WoodcuttingPlugin extends Plugin
} }
@Override @Override
protected void startUp() protected void startUp() throws Exception
{ {
updateConfig();
overlayManager.add(overlay); overlayManager.add(overlay);
overlayManager.add(treesOverlay); overlayManager.add(treesOverlay);
} }
@Override @Override
protected void shutDown() protected void shutDown() throws Exception
{ {
overlayManager.remove(overlay); overlayManager.remove(overlay);
overlayManager.remove(treesOverlay); overlayManager.remove(treesOverlay);
respawns.clear();
treeObjects.clear(); treeObjects.clear();
session = null; session = null;
axe = null; axe = null;
@@ -155,12 +150,16 @@ public class WoodcuttingPlugin extends Plugin
@Subscribe @Subscribe
private void onGameTick(GameTick gameTick) private void onGameTick(GameTick gameTick)
{ {
recentlyLoggedIn = false;
respawns.removeIf(TreeRespawn::isExpired);
if (session == null || session.getLastLogCut() == null) if (session == null || session.getLastLogCut() == null)
{ {
return; return;
} }
Duration statTimeout = Duration.ofMinutes(this.statTimeout); Duration statTimeout = Duration.ofMinutes(config.statTimeout());
Duration sinceCut = Duration.between(session.getLastLogCut(), Instant.now()); Duration sinceCut = Duration.between(session.getLastLogCut(), Instant.now());
if (sinceCut.compareTo(statTimeout) >= 0) if (sinceCut.compareTo(statTimeout) >= 0)
@@ -189,13 +188,90 @@ public class WoodcuttingPlugin extends Plugin
gpEarned += itemManager.getItemPrice(treeTypeID); gpEarned += itemManager.getItemPrice(treeTypeID);
} }
if (event.getMessage().contains("A bird's nest falls out of the tree") && this.showNestNotification) if (event.getMessage().contains("A bird's nest falls out of the tree") && config.showNestNotification())
{ {
notifier.notify("A bird nest has spawned!"); notifier.notify("A bird nest has spawned!");
} }
} }
} }
@Subscribe
private void onGameObjectSpawned(final GameObjectSpawned event)
{
GameObject gameObject = event.getGameObject();
Tree tree = Tree.findTree(gameObject.getId());
if (tree == Tree.REDWOOD)
{
treeObjects.add(gameObject);
}
}
@Subscribe
private void onGameObjectDespawned(final GameObjectDespawned event)
{
final GameObject object = event.getGameObject();
Tree tree = Tree.findTree(object.getId());
if (tree != null)
{
if (tree.getRespawnTime() != null && !recentlyLoggedIn)
{
log.debug("Adding respawn timer for {} tree at {}", tree, object.getLocalLocation());
TreeRespawn treeRespawn = new TreeRespawn(tree, object.getLocalLocation(), Instant.now(), (int) tree.getRespawnTime().toMillis());
respawns.add(treeRespawn);
}
if (tree == Tree.REDWOOD)
{
treeObjects.remove(event.getGameObject());
}
}
}
@Subscribe
private void onGameObjectChanged(final GameObjectChanged event)
{
treeObjects.remove(event.getGameObject());
}
@Subscribe
private void onGameStateChanged(final GameStateChanged event)
{
switch (event.getGameState())
{
case LOADING:
case HOPPING:
respawns.clear();
treeObjects.clear();
break;
case LOGGED_IN:
// After login trees that are depleted will be changed,
// wait for the next game tick before watching for
// trees to despawn
recentlyLoggedIn = true;
break;
}
}
@Subscribe
private void onAnimationChanged(final AnimationChanged event)
{
Player local = client.getLocalPlayer();
if (event.getActor() != local)
{
return;
}
int animId = local.getAnimation();
Axe axe = Axe.findAxeByAnimId(animId);
if (axe != null)
{
this.axe = axe;
}
}
private void typeOfLogCut(String message) private void typeOfLogCut(String message)
{ {
if (message.contains("mushrooms.")) if (message.contains("mushrooms."))
@@ -239,75 +315,4 @@ public class WoodcuttingPlugin extends Plugin
treeTypeID = ItemID.LOGS; treeTypeID = ItemID.LOGS;
} }
} }
@Subscribe
private void onGameObjectSpawned(final GameObjectSpawned event)
{
GameObject gameObject = event.getGameObject();
Tree tree = Tree.findTree(gameObject.getId());
if (tree != null)
{
treeObjects.add(gameObject);
}
}
@Subscribe
private void onGameObjectDespawned(final GameObjectDespawned event)
{
treeObjects.remove(event.getGameObject());
}
@Subscribe
private void onGameObjectChanged(final GameObjectChanged event)
{
treeObjects.remove(event.getGameObject());
}
@Subscribe
private void onGameStateChanged(final GameStateChanged event)
{
if (event.getGameState() != GameState.LOGGED_IN)
{
treeObjects.clear();
}
}
@Subscribe
private void onAnimationChanged(final AnimationChanged event)
{
Player local = client.getLocalPlayer();
if (event.getActor() != local)
{
return;
}
int animId = local.getAnimation();
Axe axe = Axe.findAxeByAnimId(animId);
if (axe != null)
{
this.axe = axe;
}
}
@Subscribe
private void onConfigChanged(ConfigChanged event)
{
if (!event.getGroup().equals("woodcutting"))
{
return;
}
updateConfig();
}
private void updateConfig()
{
this.statTimeout = config.statTimeout();
this.showNestNotification = config.showNestNotification();
this.showWoodcuttingStats = config.showWoodcuttingStats();
this.showRedwoodTrees = config.showRedwoodTrees();
this.showGPEarned = config.showGPEarned();
}
} }
@@ -1,6 +1,7 @@
/* /*
* Copyright (c) 2018, Tomas Slusny <slusnucky@gmail.com> * Copyright (c) 2018, Tomas Slusny <slusnucky@gmail.com>
* Copyright (c) 2018, Adam <Adam@sigterm.info> * Copyright (c) 2018, Adam <Adam@sigterm.info>
* Copyright (c) 2019, David <Dava96@github.com>
* All rights reserved. * All rights reserved.
* *
* Redistribution and use in source and binary forms, with or without * Redistribution and use in source and binary forms, with or without
@@ -25,29 +26,36 @@
*/ */
package net.runelite.client.plugins.woodcutting; package net.runelite.client.plugins.woodcutting;
import java.awt.Color;
import java.awt.Dimension; import java.awt.Dimension;
import java.awt.Graphics2D; import java.awt.Graphics2D;
import java.time.Instant;
import java.util.List;
import javax.inject.Inject; import javax.inject.Inject;
import javax.inject.Singleton;
import net.runelite.api.Client; import net.runelite.api.Client;
import net.runelite.api.GameObject; import net.runelite.api.GameObject;
import net.runelite.api.Perspective;
import net.runelite.api.Point;
import net.runelite.api.coords.LocalPoint;
import net.runelite.client.game.ItemManager; import net.runelite.client.game.ItemManager;
import net.runelite.client.ui.overlay.Overlay; import net.runelite.client.ui.overlay.Overlay;
import net.runelite.client.ui.overlay.OverlayLayer; import net.runelite.client.ui.overlay.OverlayLayer;
import net.runelite.client.ui.overlay.OverlayPosition; import net.runelite.client.ui.overlay.OverlayPosition;
import net.runelite.client.ui.overlay.OverlayUtil; import net.runelite.client.ui.overlay.OverlayUtil;
import net.runelite.client.ui.overlay.components.ProgressPieComponent;
@Singleton
class WoodcuttingTreesOverlay extends Overlay class WoodcuttingTreesOverlay extends Overlay
{ {
private final Client client; private final Client client;
private final WoodcuttingConfig config;
private final ItemManager itemManager; private final ItemManager itemManager;
private final WoodcuttingPlugin plugin; private final WoodcuttingPlugin plugin;
@Inject @Inject
private WoodcuttingTreesOverlay(final Client client, final ItemManager itemManager, final WoodcuttingPlugin plugin) private WoodcuttingTreesOverlay(final Client client, final WoodcuttingConfig config, final ItemManager itemManager, final WoodcuttingPlugin plugin)
{ {
this.client = client; this.client = client;
this.config = config;
this.itemManager = itemManager; this.itemManager = itemManager;
this.plugin = plugin; this.plugin = plugin;
setLayer(OverlayLayer.ABOVE_SCENE); setLayer(OverlayLayer.ABOVE_SCENE);
@@ -57,15 +65,22 @@ class WoodcuttingTreesOverlay extends Overlay
@Override @Override
public Dimension render(Graphics2D graphics) public Dimension render(Graphics2D graphics)
{ {
if (plugin.getSession() == null || !plugin.isShowRedwoodTrees()) renderAxes(graphics);
{ renderTimers(graphics);
return null; return null;
} }
private void renderAxes(Graphics2D graphics)
{
if (plugin.getSession() == null || !config.showRedwoodTrees())
{
return;
}
Axe axe = plugin.getAxe(); Axe axe = plugin.getAxe();
if (axe == null) if (axe == null)
{ {
return null; return;
} }
for (GameObject treeObject : plugin.getTreeObjects()) for (GameObject treeObject : plugin.getTreeObjects())
@@ -75,7 +90,34 @@ class WoodcuttingTreesOverlay extends Overlay
OverlayUtil.renderImageLocation(client, graphics, treeObject.getLocalLocation(), itemManager.getImage(axe.getItemId()), 120); OverlayUtil.renderImageLocation(client, graphics, treeObject.getLocalLocation(), itemManager.getImage(axe.getItemId()), 120);
} }
} }
}
return null; private void renderTimers(Graphics2D graphics)
{
List<TreeRespawn> respawns = plugin.getRespawns();
if (respawns.isEmpty() || !config.showRespawnTimers())
{
return;
}
Instant now = Instant.now();
for (TreeRespawn treeRespawn : respawns)
{
LocalPoint loc = treeRespawn.getLocation();
float percent = (now.toEpochMilli() - treeRespawn.getStartTime().toEpochMilli()) / (float) treeRespawn.getRespawnTime();
Point point = Perspective.localToCanvas(client, loc, client.getPlane());
if (point == null || percent > 1.0f)
{
continue;
}
ProgressPieComponent ppc = new ProgressPieComponent();
ppc.setBorderColor(Color.ORANGE);
ppc.setFill(Color.YELLOW);
ppc.setPosition(point);
ppc.setProgress(percent);
ppc.render(graphics);
}
} }
} }
@@ -30,11 +30,9 @@ import com.google.common.base.Stopwatch;
import com.google.common.collect.ImmutableList; import com.google.common.collect.ImmutableList;
import com.google.common.collect.ObjectArrays; import com.google.common.collect.ObjectArrays;
import com.google.inject.Provides; import com.google.inject.Provides;
import io.reactivex.schedulers.Schedulers;
import java.awt.image.BufferedImage; import java.awt.image.BufferedImage;
import java.time.Duration; import java.time.Duration;
import java.time.Instant; import java.time.Instant;
import java.util.Comparator;
import java.util.EnumSet; import java.util.EnumSet;
import java.util.HashMap; import java.util.HashMap;
import java.util.List; import java.util.List;
@@ -75,6 +73,8 @@ import net.runelite.client.config.ConfigManager;
import net.runelite.client.config.Keybind; import net.runelite.client.config.Keybind;
import net.runelite.client.eventbus.Subscribe; import net.runelite.client.eventbus.Subscribe;
import net.runelite.client.events.ConfigChanged; import net.runelite.client.events.ConfigChanged;
import net.runelite.client.events.WorldsFetch;
import net.runelite.client.game.WorldService;
import net.runelite.client.input.KeyManager; import net.runelite.client.input.KeyManager;
import net.runelite.client.plugins.Plugin; import net.runelite.client.plugins.Plugin;
import net.runelite.client.plugins.PluginDescriptor; import net.runelite.client.plugins.PluginDescriptor;
@@ -87,7 +87,6 @@ import net.runelite.client.util.ImageUtil;
import net.runelite.client.util.WorldUtil; import net.runelite.client.util.WorldUtil;
import net.runelite.client.util.ping.Ping; import net.runelite.client.util.ping.Ping;
import net.runelite.http.api.worlds.World; import net.runelite.http.api.worlds.World;
import net.runelite.http.api.worlds.WorldClient;
import net.runelite.http.api.worlds.WorldResult; import net.runelite.http.api.worlds.WorldResult;
import net.runelite.http.api.worlds.WorldType; import net.runelite.http.api.worlds.WorldType;
import org.apache.commons.lang3.ArrayUtils; import org.apache.commons.lang3.ArrayUtils;
@@ -126,9 +125,6 @@ public class WorldHopperPlugin extends Plugin
@Inject @Inject
private ChatMessageManager chatMessageManager; private ChatMessageManager chatMessageManager;
@Inject
private ScheduledExecutorService executorService;
@Inject @Inject
private WorldHopperConfig config; private WorldHopperConfig config;
@@ -139,7 +135,7 @@ public class WorldHopperPlugin extends Plugin
private WorldHopperPingOverlay worldHopperOverlay; private WorldHopperPingOverlay worldHopperOverlay;
@Inject @Inject
private WorldClient worldClient; private WorldService worldService;
private ScheduledExecutorService hopperExecutorService; private ScheduledExecutorService hopperExecutorService;
@@ -154,11 +150,9 @@ public class WorldHopperPlugin extends Plugin
private int favoriteWorld1, favoriteWorld2; private int favoriteWorld1, favoriteWorld2;
private ScheduledFuture<?> worldResultFuture, pingFuture, currPingFuture; private ScheduledFuture<?> pingFuture, currPingFuture;
private WorldResult worldResult;
private int currentWorld; private int currentWorld;
private Instant lastFetch; private Instant lastFetch;
private boolean firstRun;
private Keybind previousKey; private Keybind previousKey;
private Keybind nextKey; private Keybind nextKey;
@@ -203,7 +197,6 @@ public class WorldHopperPlugin extends Plugin
{ {
updateConfig(); updateConfig();
firstRun = true;
currentPing = -1; currentPing = -1;
keyManager.registerKeyListener(previousKeyListener); keyManager.registerKeyListener(previousKeyListener);
@@ -231,12 +224,15 @@ public class WorldHopperPlugin extends Plugin
// The plugin has its own executor for pings, as it blocks for a long time // The plugin has its own executor for pings, as it blocks for a long time
hopperExecutorService = new ExecutorServiceExceptionLogger(Executors.newSingleThreadScheduledExecutor()); hopperExecutorService = new ExecutorServiceExceptionLogger(Executors.newSingleThreadScheduledExecutor());
// On first run this schedules an initial ping on hopperExecutorService // Run the first-run ping
worldResultFuture = executorService.scheduleAtFixedRate(this::tick, 0, WORLD_FETCH_TIMER, TimeUnit.MINUTES); hopperExecutorService.execute(this::pingInitialWorlds);
// Give some initial delay - this won't run until after pingInitialWorlds finishes from tick() anyway // Give some initial delay - this won't run until after pingInitialWorlds finishes from tick() anyway
pingFuture = hopperExecutorService.scheduleWithFixedDelay(this::pingNextWorld, 15, 3, TimeUnit.SECONDS); pingFuture = hopperExecutorService.scheduleWithFixedDelay(this::pingNextWorld, 15, 3, TimeUnit.SECONDS);
currPingFuture = hopperExecutorService.scheduleWithFixedDelay(this::pingCurrentWorld, 15, 1, TimeUnit.SECONDS); currPingFuture = hopperExecutorService.scheduleWithFixedDelay(this::pingCurrentWorld, 15, 1, TimeUnit.SECONDS);
// populate initial world list
updateList();
} }
@Override @Override
@@ -253,11 +249,6 @@ public class WorldHopperPlugin extends Plugin
keyManager.unregisterKeyListener(previousKeyListener); keyManager.unregisterKeyListener(previousKeyListener);
keyManager.unregisterKeyListener(nextKeyListener); keyManager.unregisterKeyListener(nextKeyListener);
worldResultFuture.cancel(true);
worldResultFuture = null;
worldResult = null;
lastFetch = null;
clientToolbar.removeNavigation(navButton); clientToolbar.removeNavigation(navButton);
hopperExecutorService.shutdown(); hopperExecutorService.shutdown();
@@ -393,6 +384,7 @@ public class WorldHopperPlugin extends Plugin
// Don't add entry if user is offline // Don't add entry if user is offline
ChatPlayer player = getChatPlayerFromName(event.getTarget()); ChatPlayer player = getChatPlayerFromName(event.getTarget());
WorldResult worldResult = worldService.getWorlds();
if (player == null || player.getWorld() == 0 || player.getWorld() == client.getWorld() if (player == null || player.getWorld() == 0 || player.getWorld() == client.getWorld()
|| worldResult == null) || worldResult == null)
@@ -484,26 +476,6 @@ public class WorldHopperPlugin extends Plugin
this.lastFetch = Instant.now(); // This counts as a fetch as it updates populations this.lastFetch = Instant.now(); // This counts as a fetch as it updates populations
} }
private void tick()
{
Instant now = Instant.now();
if (lastFetch != null && now.toEpochMilli() - lastFetch.toEpochMilli() < TICK_THROTTLE)
{
log.debug("Throttling world refresh tick");
return;
}
fetchWorlds();
// Ping worlds once at startup
if (firstRun)
{
firstRun = false;
// On first run we ping all of the worlds at once to initialize the ping values
hopperExecutorService.execute(this::pingInitialWorlds);
}
}
void refresh() void refresh()
{ {
Instant now = Instant.now(); Instant now = Instant.now();
@@ -513,41 +485,31 @@ public class WorldHopperPlugin extends Plugin
return; return;
} }
fetchWorlds(); lastFetch = now;
worldService.refresh();
} }
private void fetchWorlds() @Subscribe
public void onWorldsFetch(WorldsFetch worldsFetch)
{ {
log.debug("Fetching worlds");
worldClient.lookupWorlds()
.subscribeOn(Schedulers.io())
.take(1)
.subscribe(
(worldResult) ->
{
if (worldResult != null)
{
worldResult.getWorlds().sort(Comparator.comparingInt(World::getId));
this.worldResult = worldResult;
this.lastFetch = Instant.now();
updateList(); updateList();
} }
},
(ex) -> log.warn("Error looking up worlds", ex)
);
}
/** /**
* This method ONLY updates the list's UI, not the actual world list and data it displays. * This method ONLY updates the list's UI, not the actual world list and data it displays.
*/ */
private void updateList() private void updateList()
{
WorldResult worldResult = worldService.getWorlds();
if (worldResult != null)
{ {
SwingUtilities.invokeLater(() -> panel.populate(worldResult.getWorlds())); SwingUtilities.invokeLater(() -> panel.populate(worldResult.getWorlds()));
} }
}
private void hop(boolean previous) private void hop(boolean previous)
{ {
WorldResult worldResult = worldService.getWorlds();
if (worldResult == null || client.getGameState() != GameState.LOGGED_IN) if (worldResult == null || client.getGameState() != GameState.LOGGED_IN)
{ {
return; return;
@@ -658,6 +620,7 @@ public class WorldHopperPlugin extends Plugin
private void hop(int worldId) private void hop(int worldId)
{ {
WorldResult worldResult = worldService.getWorlds();
// Don't try to hop if the world doesn't exist // Don't try to hop if the world doesn't exist
World world = worldResult.findWorld(worldId); World world = worldResult.findWorld(worldId);
if (world == null) if (world == null)
@@ -801,6 +764,7 @@ public class WorldHopperPlugin extends Plugin
*/ */
private void pingInitialWorlds() private void pingInitialWorlds()
{ {
WorldResult worldResult = worldService.getWorlds();
if (worldResult == null || !this.showSidebar || !this.ping) if (worldResult == null || !this.showSidebar || !this.ping)
{ {
return; return;
@@ -838,6 +802,7 @@ public class WorldHopperPlugin extends Plugin
*/ */
private void pingNextWorld() private void pingNextWorld()
{ {
WorldResult worldResult = worldService.getWorlds();
if (worldResult == null || !this.showSidebar || !this.ping) if (worldResult == null || !this.showSidebar || !this.ping)
{ {
return; return;
@@ -874,6 +839,7 @@ public class WorldHopperPlugin extends Plugin
*/ */
private void pingCurrentWorld() private void pingCurrentWorld()
{ {
WorldResult worldResult = worldService.getWorlds();
// There is no reason to ping the current world if not logged in, as the overlay doesn't draw // There is no reason to ping the current world if not logged in, as the overlay doesn't draw
if (worldResult == null || !this.displayPing || client.getGameState() != GameState.LOGGED_IN) if (worldResult == null || !this.displayPing || client.getGameState() != GameState.LOGGED_IN)
{ {
@@ -70,7 +70,8 @@ class ClientConfigLoader
supplier = new HostSupplier(); supplier = new HostSupplier();
} }
url = supplier.get(); String host = supplier.get();
url = url.newBuilder().host(host).build();
continue; continue;
} }
@@ -1,6 +1,5 @@
/* /*
* Copyright (c) 2019 Abex * Copyright (c) 2019 Abex
* Copyright (c) 2019, Lucas <https://github.com/lucwousin>
* All rights reserved. * All rights reserved.
* *
* Redistribution and use in source and binary forms, with or without * Redistribution and use in source and binary forms, with or without
@@ -25,8 +24,10 @@
*/ */
package net.runelite.client.rs; package net.runelite.client.rs;
import java.io.IOException;
import java.util.ArrayDeque; import java.util.ArrayDeque;
import java.util.Collections; import java.util.Collections;
import java.util.EnumSet;
import java.util.List; import java.util.List;
import java.util.Queue; import java.util.Queue;
import java.util.Random; import java.util.Random;
@@ -36,39 +37,44 @@ import lombok.extern.slf4j.Slf4j;
import net.runelite.http.api.RuneLiteAPI; import net.runelite.http.api.RuneLiteAPI;
import net.runelite.http.api.worlds.World; import net.runelite.http.api.worlds.World;
import net.runelite.http.api.worlds.WorldClient; import net.runelite.http.api.worlds.WorldClient;
import net.runelite.http.api.worlds.WorldResult; import net.runelite.http.api.worlds.WorldType;
import okhttp3.HttpUrl;
@Slf4j @Slf4j
class HostSupplier implements Supplier<HttpUrl> class HostSupplier implements Supplier<String>
{ {
private final Random random = new Random(); private final Random random = new Random(System.nanoTime());
private final Queue<HttpUrl> hosts = new ArrayDeque<>(); private Queue<String> hosts = new ArrayDeque<>();
@Override @Override
public HttpUrl get() public String get()
{ {
if (!hosts.isEmpty()) if (!hosts.isEmpty())
{ {
return hosts.poll(); return hosts.poll();
} }
List<HttpUrl> newHosts = new WorldClient(RuneLiteAPI.CLIENT) try
{
List<String> newHosts = new WorldClient(RuneLiteAPI.CLIENT)
.lookupWorlds() .lookupWorlds()
.map(WorldResult::getWorlds) .getWorlds()
.blockingSingle()
.stream() .stream()
.filter(w -> w.getTypes().isEmpty() || EnumSet.of(WorldType.MEMBERS).equals(w.getTypes()))
.map(World::getAddress) .map(World::getAddress)
.map(HttpUrl::parse)
.collect(Collectors.toList()); .collect(Collectors.toList());
Collections.shuffle(newHosts, random); Collections.shuffle(newHosts, random);
hosts.addAll(newHosts.subList(0, 16)); hosts.addAll(newHosts.subList(0, 16));
}
catch (IOException e)
{
log.warn("Unable to retrieve world list", e);
}
while (hosts.size() < 2) while (hosts.size() < 2)
{ {
hosts.add(HttpUrl.parse("oldschool" + (random.nextInt(50) + 1) + ".runescape.COM")); hosts.add("oldschool" + (random.nextInt(50) + 1) + ".runescape.COM");
} }
return hosts.poll(); return hosts.poll();
@@ -1024,9 +1024,9 @@ public class ClientUI
setOpacityMethod.invoke(peerField.get(frame), opacity); setOpacityMethod.invoke(peerField.get(frame), opacity);
} }
catch (NoSuchFieldException | NoSuchMethodException | ClassNotFoundException | IllegalAccessException | InvocationTargetException e) catch (NoSuchFieldException | NoSuchMethodException | ClassNotFoundException | IllegalAccessException | InvocationTargetException | NullPointerException e)
{ {
e.printStackTrace(); // e.printStackTrace();
} }
}); });
} }
@@ -0,0 +1,72 @@
/*
* Copyright (c) 2018, Tomas Slusny <slusnucky@gmail.com>
* Copyright (c) 2018, Abex
* All rights reserved.
*
* Redistribution and use in source and binary forms, with or without
* modification, are permitted provided that the following conditions are met:
*
* 1. Redistributions of source code must retain the above copyright notice, this
* list of conditions and the following disclaimer.
* 2. Redistributions in binary form must reproduce the above copyright notice,
* this list of conditions and the following disclaimer in the documentation
* and/or other materials provided with the distribution.
*
* THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" AND
* ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED
* WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE
* DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT OWNER OR CONTRIBUTORS BE LIABLE FOR
* ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES
* (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES;
* LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND
* ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
* (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS
* SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
*/
package net.runelite.client.util;
import java.lang.invoke.MethodHandles;
import java.lang.reflect.Field;
import java.lang.reflect.InvocationTargetException;
import java.lang.reflect.Method;
public class ReflectUtil
{
private ReflectUtil()
{
}
public static MethodHandles.Lookup privateLookupIn(Class clazz)
{
try
{
// Java 9+ has privateLookupIn method on MethodHandles, but since we are shipping and using Java 8
// we need to access it via reflection. This is preferred way because it's Java 9+ public api and is
// likely to not change
final Method privateLookupIn = MethodHandles.class.getMethod("privateLookupIn", Class.class, MethodHandles.Lookup.class);
return (MethodHandles.Lookup) privateLookupIn.invoke(null, clazz, MethodHandles.lookup());
}
catch (InvocationTargetException | IllegalAccessException e)
{
throw new RuntimeException(e);
}
catch (NoSuchMethodException e)
{
try
{
// In Java 8 we first do standard lookupIn class
final MethodHandles.Lookup lookupIn = MethodHandles.lookup().in(clazz);
// and then we mark it as trusted for private lookup via reflection on private field
final Field modes = MethodHandles.Lookup.class.getDeclaredField("allowedModes");
modes.setAccessible(true);
modes.setInt(lookupIn, -1); // -1 == TRUSTED
return lookupIn;
}
catch (ReflectiveOperationException ex)
{
throw new RuntimeException(ex);
}
}
}
}
@@ -8025,7 +8025,8 @@
], ],
"rune pouch": [ "rune pouch": [
12791, 12791,
23650 23650,
24416
], ],
"nest box": [ "nest box": [
12792, 12792,
Binary file not shown.

After

Width:  |  Height:  |  Size: 382 B

Binary file not shown.

After

Width:  |  Height:  |  Size: 356 B

@@ -48,6 +48,12 @@
"name": "Gold Ring", "name": "Gold Ring",
"xp": 15 "xp": 15
}, },
{
"level": 5,
"icon": 21512,
"name": "Bird House",
"xp": 15
},
{ {
"level": 6, "level": 6,
"icon": 1654, "icon": 1654,
@@ -120,6 +126,12 @@
"name": "Leather Body", "name": "Leather Body",
"xp": 25 "xp": 25
}, },
{
"level": 15,
"icon": 21515,
"name": "Oak Bird House",
"xp": 20
},
{ {
"level": 16, "level": 16,
"icon": 1613, "icon": 1613,
@@ -216,6 +228,12 @@
"name": "Jade Necklace", "name": "Jade Necklace",
"xp": 54 "xp": 54
}, },
{
"level": 25,
"icon": 21518,
"name": "Willow Bird House",
"xp": 25
},
{ {
"level": 26, "level": 26,
"icon": 6209, "icon": 6209,
@@ -318,6 +336,12 @@
"name": "Broodoo shield", "name": "Broodoo shield",
"xp": 100 "xp": 100
}, },
{
"level": 35,
"icon": 21521,
"name": "Teak Bird House",
"xp": 30
},
{ {
"level": 36, "level": 36,
"icon": 5376, "icon": 5376,
@@ -384,6 +408,12 @@
"name": "Snakeskin boots", "name": "Snakeskin boots",
"xp": 30 "xp": 30
}, },
{
"level": 45,
"icon": 22192,
"name": "Maple Bird House",
"xp": 35
},
{ {
"level": 46, "level": 46,
"icon": 567, "icon": 567,
@@ -414,6 +444,12 @@
"name": "Ruby Amulet (U)", "name": "Ruby Amulet (U)",
"xp": 85 "xp": 85
}, },
{
"level": 50,
"icon": 22195,
"name": "Mahogany Bird House",
"xp": 40
},
{ {
"level": 51, "level": 51,
"icon": 6324, "icon": 6324,
@@ -480,6 +516,12 @@
"name": "Green D'hide Chaps", "name": "Green D'hide Chaps",
"xp": 124 "xp": 124
}, },
{
"level": 60,
"icon": 22198,
"name": "Yew Bird House",
"xp": 45
},
{ {
"level": 62, "level": 62,
"icon": 1393, "icon": 1393,
@@ -570,6 +612,12 @@
"name": "Red D'hide Chaps", "name": "Red D'hide Chaps",
"xp": 156 "xp": 156
}, },
{
"level": 75,
"icon": 22201,
"name": "Magic Bird House",
"xp": 50
},
{ {
"level": 76, "level": 76,
"icon": 22281, "icon": 22281,
@@ -666,6 +714,12 @@
"name": "Onyx Amulet (U)", "name": "Onyx Amulet (U)",
"xp": 165 "xp": 165
}, },
{
"level": 90,
"icon": 22204,
"name": "Redwood Bird House",
"xp": 55
},
{ {
"level": 92, "level": 92,
"icon": 19535, "icon": 19535,
@@ -1 +1 @@
32FBC48F8C6D8E62E02BCF09F444BA036F76133B6596396F0AB9E474687D9F3F C85469C2529D794C523505679F14AA20E988513E8FBAF249E41F4760382B4BBB
@@ -25,7 +25,7 @@ LABEL9:
iload 1 iload 1
movecoord movecoord
set_varc_int 207 set_varc_int 207
jump LABEL216 jump LABEL227
LABEL16: LABEL16:
iconst 105 iconst 105
iconst 83 iconst 83
@@ -43,7 +43,7 @@ LABEL25:
iload 1 iload 1
movecoord movecoord
set_varc_int 208 set_varc_int 208
jump LABEL216 jump LABEL227
LABEL32: LABEL32:
iconst 105 iconst 105
iconst 83 iconst 83
@@ -61,7 +61,7 @@ LABEL41:
iload 1 iload 1
movecoord movecoord
set_varc_int 209 set_varc_int 209
jump LABEL216 jump LABEL227
LABEL48: LABEL48:
iconst 105 iconst 105
iconst 83 iconst 83
@@ -79,7 +79,7 @@ LABEL57:
iload 1 iload 1
movecoord movecoord
set_varc_int 210 set_varc_int 210
jump LABEL216 jump LABEL227
LABEL64: LABEL64:
iconst 105 iconst 105
iconst 83 iconst 83
@@ -97,7 +97,7 @@ LABEL73:
iload 1 iload 1
movecoord movecoord
set_varc_int 211 set_varc_int 211
jump LABEL216 jump LABEL227
LABEL80: LABEL80:
iconst 105 iconst 105
iconst 83 iconst 83
@@ -115,7 +115,7 @@ LABEL89:
iload 1 iload 1
movecoord movecoord
set_varc_int 212 set_varc_int 212
jump LABEL216 jump LABEL227
LABEL96: LABEL96:
iconst 105 iconst 105
iconst 83 iconst 83
@@ -133,13 +133,27 @@ LABEL105:
iload 1 iload 1
movecoord movecoord
set_varc_int 213 set_varc_int 213
jump LABEL216 jump LABEL227
LABEL112: LABEL112:
iload 0
iconst 3
if_icmpeq LABEL116
jump LABEL123
LABEL116:
iload 1
iconst 20000001
if_icmpeq LABEL120
jump LABEL123
LABEL120:
iconst 269500481
set_varc_int 207
jump LABEL227
LABEL123:
get_varc_int 207 get_varc_int 207
iconst -1 iconst -1
if_icmpeq LABEL116 if_icmpeq LABEL127
jump LABEL127 jump LABEL138
LABEL116: LABEL127:
iconst 0 iconst 0
iconst 83 iconst 83
iconst 105 iconst 105
@@ -150,13 +164,13 @@ LABEL116:
iload 1 iload 1
movecoord movecoord
set_varc_int 207 set_varc_int 207
jump LABEL216 jump LABEL227
LABEL127: LABEL138:
get_varc_int 208 get_varc_int 208
iconst -1 iconst -1
if_icmpeq LABEL131 if_icmpeq LABEL142
jump LABEL142 jump LABEL153
LABEL131: LABEL142:
iconst 0 iconst 0
iconst 83 iconst 83
iconst 105 iconst 105
@@ -167,13 +181,13 @@ LABEL131:
iload 1 iload 1
movecoord movecoord
set_varc_int 208 set_varc_int 208
jump LABEL216 jump LABEL227
LABEL142: LABEL153:
get_varc_int 209 get_varc_int 209
iconst -1 iconst -1
if_icmpeq LABEL146 if_icmpeq LABEL157
jump LABEL157 jump LABEL168
LABEL146: LABEL157:
iconst 0 iconst 0
iconst 83 iconst 83
iconst 105 iconst 105
@@ -184,13 +198,13 @@ LABEL146:
iload 1 iload 1
movecoord movecoord
set_varc_int 209 set_varc_int 209
jump LABEL216 jump LABEL227
LABEL157: LABEL168:
get_varc_int 210 get_varc_int 210
iconst -1 iconst -1
if_icmpeq LABEL161 if_icmpeq LABEL172
jump LABEL172 jump LABEL183
LABEL161: LABEL172:
iconst 0 iconst 0
iconst 83 iconst 83
iconst 105 iconst 105
@@ -201,13 +215,13 @@ LABEL161:
iload 1 iload 1
movecoord movecoord
set_varc_int 210 set_varc_int 210
jump LABEL216 jump LABEL227
LABEL172: LABEL183:
get_varc_int 211 get_varc_int 211
iconst -1 iconst -1
if_icmpeq LABEL176 if_icmpeq LABEL187
jump LABEL187 jump LABEL198
LABEL176: LABEL187:
iconst 0 iconst 0
iconst 83 iconst 83
iconst 105 iconst 105
@@ -218,13 +232,13 @@ LABEL176:
iload 1 iload 1
movecoord movecoord
set_varc_int 211 set_varc_int 211
jump LABEL216 jump LABEL227
LABEL187: LABEL198:
get_varc_int 212 get_varc_int 212
iconst -1 iconst -1
if_icmpeq LABEL191 if_icmpeq LABEL202
jump LABEL202 jump LABEL213
LABEL191: LABEL202:
iconst 0 iconst 0
iconst 83 iconst 83
iconst 105 iconst 105
@@ -235,13 +249,13 @@ LABEL191:
iload 1 iload 1
movecoord movecoord
set_varc_int 212 set_varc_int 212
jump LABEL216 jump LABEL227
LABEL202: LABEL213:
get_varc_int 213 get_varc_int 213
iconst -1 iconst -1
if_icmpeq LABEL206 if_icmpeq LABEL217
jump LABEL216 jump LABEL227
LABEL206: LABEL217:
iconst 0 iconst 0
iconst 83 iconst 83
iconst 105 iconst 105
@@ -252,5 +266,5 @@ LABEL206:
iload 1 iload 1
movecoord movecoord
set_varc_int 213 set_varc_int 213
LABEL216: LABEL227:
return return
@@ -1 +1 @@
AAA12D64549A1E4573B242AD9D53D8B1A436B947CF55BACBA660812411750E20 A4641387DC1A542BDEB6F3728D23944F968EF2FD3EA2868B5B6AAF6961D0C6E0
@@ -30,13 +30,25 @@ LABEL9:
iload 0 iload 0
iconst 1 iconst 1
if_icmpeq LABEL25 if_icmpeq LABEL25
jump LABEL71 jump LABEL81
LABEL25: LABEL25:
get_varc_int 207 get_varc_int 207
iconst -1 iconst -1
if_icmpne LABEL29 if_icmpne LABEL29
jump LABEL70 jump LABEL80
LABEL29: LABEL29:
get_varc_int 207
iconst 269500481
if_icmpeq LABEL33
jump LABEL39
LABEL33:
iload 1
iload 3
iload 8
iload 9
invoke 997
jump LABEL65
LABEL39:
iload 35 iload 35
iconst 105 iconst 105
iconst 83 iconst 83
@@ -52,20 +64,20 @@ LABEL29:
iload 35 iload 35
get_array_int get_array_int
iconst -1 iconst -1
if_icmpne LABEL46 if_icmpne LABEL56
jump LABEL55 jump LABEL65
LABEL46: LABEL56:
iload 35 iload 35
get_array_int 1 get_array_int 1
iconst 0 iconst 0
if_icmpgt LABEL51 if_icmpgt LABEL61
jump LABEL55 jump LABEL65
LABEL51: LABEL61:
iload 35 iload 35
iconst 1 iconst 1
add add
istore 35 istore 35
LABEL55: LABEL65:
get_varc_int 208 get_varc_int 208
get_varc_int 209 get_varc_int 209
get_varc_int 210 get_varc_int 210
@@ -81,9 +93,9 @@ LABEL55:
set_varc_int 208 set_varc_int 208
set_varc_int 207 set_varc_int 207
jump LABEL25 jump LABEL25
LABEL70: LABEL80:
jump LABEL508 jump LABEL518
LABEL71: LABEL81:
sconst "newXpDrop" sconst "newXpDrop"
runelite_callback runelite_callback
iconst 10 iconst 10
@@ -93,9 +105,9 @@ LABEL71:
istore 36 istore 36
iload 36 iload 36
iconst 0 iconst 0
if_icmpgt LABEL80 if_icmpgt LABEL90
jump LABEL90 jump LABEL100
LABEL80: LABEL90:
iload 35 iload 35
iconst 10 iconst 10
set_array_int set_array_int
@@ -106,7 +118,7 @@ LABEL80:
iconst 1 iconst 1
add add
istore 35 istore 35
LABEL90: LABEL100:
iconst 0 iconst 0
stat_xp stat_xp
iload 11 iload 11
@@ -114,9 +126,9 @@ LABEL90:
istore 36 istore 36
iload 36 iload 36
iconst 0 iconst 0
if_icmpgt LABEL99 if_icmpgt LABEL109
jump LABEL109 jump LABEL119
LABEL99: LABEL109:
iload 35 iload 35
iconst 0 iconst 0
set_array_int set_array_int
@@ -127,7 +139,7 @@ LABEL99:
iconst 1 iconst 1
add add
istore 35 istore 35
LABEL109: LABEL119:
iconst 2 iconst 2
stat_xp stat_xp
iload 12 iload 12
@@ -135,9 +147,9 @@ LABEL109:
istore 36 istore 36
iload 36 iload 36
iconst 0 iconst 0
if_icmpgt LABEL118 if_icmpgt LABEL128
jump LABEL128 jump LABEL138
LABEL118: LABEL128:
iload 35 iload 35
iconst 2 iconst 2
set_array_int set_array_int
@@ -148,7 +160,7 @@ LABEL118:
iconst 1 iconst 1
add add
istore 35 istore 35
LABEL128: LABEL138:
iconst 4 iconst 4
stat_xp stat_xp
iload 13 iload 13
@@ -156,9 +168,9 @@ LABEL128:
istore 36 istore 36
iload 36 iload 36
iconst 0 iconst 0
if_icmpgt LABEL137 if_icmpgt LABEL147
jump LABEL147 jump LABEL157
LABEL137: LABEL147:
iload 35 iload 35
iconst 4 iconst 4
set_array_int set_array_int
@@ -169,7 +181,7 @@ LABEL137:
iconst 1 iconst 1
add add
istore 35 istore 35
LABEL147: LABEL157:
iconst 6 iconst 6
stat_xp stat_xp
iload 14 iload 14
@@ -177,9 +189,9 @@ LABEL147:
istore 36 istore 36
iload 36 iload 36
iconst 0 iconst 0
if_icmpgt LABEL156 if_icmpgt LABEL166
jump LABEL166 jump LABEL176
LABEL156: LABEL166:
iload 35 iload 35
iconst 6 iconst 6
set_array_int set_array_int
@@ -190,7 +202,7 @@ LABEL156:
iconst 1 iconst 1
add add
istore 35 istore 35
LABEL166: LABEL176:
iconst 1 iconst 1
stat_xp stat_xp
iload 15 iload 15
@@ -198,9 +210,9 @@ LABEL166:
istore 36 istore 36
iload 36 iload 36
iconst 0 iconst 0
if_icmpgt LABEL175 if_icmpgt LABEL185
jump LABEL185 jump LABEL195
LABEL175: LABEL185:
iload 35 iload 35
iconst 1 iconst 1
set_array_int set_array_int
@@ -211,7 +223,7 @@ LABEL175:
iconst 1 iconst 1
add add
istore 35 istore 35
LABEL185: LABEL195:
iconst 3 iconst 3
stat_xp stat_xp
iload 16 iload 16
@@ -220,7 +232,7 @@ LABEL185:
iload 36 iload 36
iconst 0 iconst 0
if_icmpgt HP_XP_GAINED if_icmpgt HP_XP_GAINED
jump LABEL204 jump LABEL214
HP_XP_GAINED: HP_XP_GAINED:
iload 35 iload 35
iconst 3 iconst 3
@@ -234,7 +246,7 @@ HP_XP_GAINED:
iconst 1 iconst 1
add add
istore 35 istore 35
LABEL204: LABEL214:
iconst 5 iconst 5
stat_xp stat_xp
iload 17 iload 17
@@ -242,9 +254,9 @@ LABEL204:
istore 36 istore 36
iload 36 iload 36
iconst 0 iconst 0
if_icmpgt LABEL213 if_icmpgt LABEL223
jump LABEL223 jump LABEL233
LABEL213: LABEL223:
iload 35 iload 35
iconst 5 iconst 5
set_array_int set_array_int
@@ -255,7 +267,7 @@ LABEL213:
iconst 1 iconst 1
add add
istore 35 istore 35
LABEL223: LABEL233:
iconst 16 iconst 16
stat_xp stat_xp
iload 18 iload 18
@@ -263,9 +275,9 @@ LABEL223:
istore 36 istore 36
iload 36 iload 36
iconst 0 iconst 0
if_icmpgt LABEL232 if_icmpgt LABEL242
jump LABEL242 jump LABEL252
LABEL232: LABEL242:
iload 35 iload 35
iconst 16 iconst 16
set_array_int set_array_int
@@ -276,7 +288,7 @@ LABEL232:
iconst 1 iconst 1
add add
istore 35 istore 35
LABEL242: LABEL252:
iconst 15 iconst 15
stat_xp stat_xp
iload 19 iload 19
@@ -284,9 +296,9 @@ LABEL242:
istore 36 istore 36
iload 36 iload 36
iconst 0 iconst 0
if_icmpgt LABEL251 if_icmpgt LABEL261
jump LABEL261 jump LABEL271
LABEL251: LABEL261:
iload 35 iload 35
iconst 15 iconst 15
set_array_int set_array_int
@@ -297,7 +309,7 @@ LABEL251:
iconst 1 iconst 1
add add
istore 35 istore 35
LABEL261: LABEL271:
iconst 17 iconst 17
stat_xp stat_xp
iload 20 iload 20
@@ -305,9 +317,9 @@ LABEL261:
istore 36 istore 36
iload 36 iload 36
iconst 0 iconst 0
if_icmpgt LABEL270 if_icmpgt LABEL280
jump LABEL280 jump LABEL290
LABEL270: LABEL280:
iload 35 iload 35
iconst 17 iconst 17
set_array_int set_array_int
@@ -318,7 +330,7 @@ LABEL270:
iconst 1 iconst 1
add add
istore 35 istore 35
LABEL280: LABEL290:
iconst 12 iconst 12
stat_xp stat_xp
iload 21 iload 21
@@ -326,9 +338,9 @@ LABEL280:
istore 36 istore 36
iload 36 iload 36
iconst 0 iconst 0
if_icmpgt LABEL289 if_icmpgt LABEL299
jump LABEL299 jump LABEL309
LABEL289: LABEL299:
iload 35 iload 35
iconst 12 iconst 12
set_array_int set_array_int
@@ -339,7 +351,7 @@ LABEL289:
iconst 1 iconst 1
add add
istore 35 istore 35
LABEL299: LABEL309:
iconst 20 iconst 20
stat_xp stat_xp
iload 22 iload 22
@@ -347,9 +359,9 @@ LABEL299:
istore 36 istore 36
iload 36 iload 36
iconst 0 iconst 0
if_icmpgt LABEL308 if_icmpgt LABEL318
jump LABEL318 jump LABEL328
LABEL308: LABEL318:
iload 35 iload 35
iconst 20 iconst 20
set_array_int set_array_int
@@ -360,7 +372,7 @@ LABEL308:
iconst 1 iconst 1
add add
istore 35 istore 35
LABEL318: LABEL328:
iconst 14 iconst 14
stat_xp stat_xp
iload 23 iload 23
@@ -368,9 +380,9 @@ LABEL318:
istore 36 istore 36
iload 36 iload 36
iconst 0 iconst 0
if_icmpgt LABEL327 if_icmpgt LABEL337
jump LABEL337 jump LABEL347
LABEL327: LABEL337:
iload 35 iload 35
iconst 14 iconst 14
set_array_int set_array_int
@@ -381,7 +393,7 @@ LABEL327:
iconst 1 iconst 1
add add
istore 35 istore 35
LABEL337: LABEL347:
iconst 13 iconst 13
stat_xp stat_xp
iload 24 iload 24
@@ -389,9 +401,9 @@ LABEL337:
istore 36 istore 36
iload 36 iload 36
iconst 0 iconst 0
if_icmpgt LABEL346 if_icmpgt LABEL356
jump LABEL356 jump LABEL366
LABEL346: LABEL356:
iload 35 iload 35
iconst 13 iconst 13
set_array_int set_array_int
@@ -402,7 +414,7 @@ LABEL346:
iconst 1 iconst 1
add add
istore 35 istore 35
LABEL356: LABEL366:
iconst 7 iconst 7
stat_xp stat_xp
iload 26 iload 26
@@ -410,9 +422,9 @@ LABEL356:
istore 36 istore 36
iload 36 iload 36
iconst 0 iconst 0
if_icmpgt LABEL365 if_icmpgt LABEL375
jump LABEL375 jump LABEL385
LABEL365: LABEL375:
iload 35 iload 35
iconst 7 iconst 7
set_array_int set_array_int
@@ -423,7 +435,7 @@ LABEL365:
iconst 1 iconst 1
add add
istore 35 istore 35
LABEL375: LABEL385:
iconst 11 iconst 11
stat_xp stat_xp
iload 27 iload 27
@@ -431,9 +443,9 @@ LABEL375:
istore 36 istore 36
iload 36 iload 36
iconst 0 iconst 0
if_icmpgt LABEL384 if_icmpgt LABEL394
jump LABEL394 jump LABEL404
LABEL384: LABEL394:
iload 35 iload 35
iconst 11 iconst 11
set_array_int set_array_int
@@ -444,7 +456,7 @@ LABEL384:
iconst 1 iconst 1
add add
istore 35 istore 35
LABEL394: LABEL404:
iconst 8 iconst 8
stat_xp stat_xp
iload 28 iload 28
@@ -452,9 +464,9 @@ LABEL394:
istore 36 istore 36
iload 36 iload 36
iconst 0 iconst 0
if_icmpgt LABEL403 if_icmpgt LABEL413
jump LABEL413 jump LABEL423
LABEL403: LABEL413:
iload 35 iload 35
iconst 8 iconst 8
set_array_int set_array_int
@@ -465,7 +477,7 @@ LABEL403:
iconst 1 iconst 1
add add
istore 35 istore 35
LABEL413: LABEL423:
iconst 9 iconst 9
stat_xp stat_xp
iload 29 iload 29
@@ -473,9 +485,9 @@ LABEL413:
istore 36 istore 36
iload 36 iload 36
iconst 0 iconst 0
if_icmpgt LABEL422 if_icmpgt LABEL432
jump LABEL432 jump LABEL442
LABEL422: LABEL432:
iload 35 iload 35
iconst 9 iconst 9
set_array_int set_array_int
@@ -486,7 +498,7 @@ LABEL422:
iconst 1 iconst 1
add add
istore 35 istore 35
LABEL432: LABEL442:
iconst 18 iconst 18
stat_xp stat_xp
iload 30 iload 30
@@ -494,9 +506,9 @@ LABEL432:
istore 36 istore 36
iload 36 iload 36
iconst 0 iconst 0
if_icmpgt LABEL441 if_icmpgt LABEL451
jump LABEL451 jump LABEL461
LABEL441: LABEL451:
iload 35 iload 35
iconst 18 iconst 18
set_array_int set_array_int
@@ -507,7 +519,7 @@ LABEL441:
iconst 1 iconst 1
add add
istore 35 istore 35
LABEL451: LABEL461:
iconst 19 iconst 19
stat_xp stat_xp
iload 31 iload 31
@@ -515,9 +527,9 @@ LABEL451:
istore 36 istore 36
iload 36 iload 36
iconst 0 iconst 0
if_icmpgt LABEL460 if_icmpgt LABEL470
jump LABEL470 jump LABEL480
LABEL460: LABEL470:
iload 35 iload 35
iconst 19 iconst 19
set_array_int set_array_int
@@ -528,7 +540,7 @@ LABEL460:
iconst 1 iconst 1
add add
istore 35 istore 35
LABEL470: LABEL480:
iconst 22 iconst 22
stat_xp stat_xp
iload 32 iload 32
@@ -536,9 +548,9 @@ LABEL470:
istore 36 istore 36
iload 36 iload 36
iconst 0 iconst 0
if_icmpgt LABEL479 if_icmpgt LABEL489
jump LABEL489 jump LABEL499
LABEL479: LABEL489:
iload 35 iload 35
iconst 22 iconst 22
set_array_int set_array_int
@@ -549,7 +561,7 @@ LABEL479:
iconst 1 iconst 1
add add
istore 35 istore 35
LABEL489: LABEL499:
iconst 21 iconst 21
stat_xp stat_xp
iload 33 iload 33
@@ -557,9 +569,9 @@ LABEL489:
istore 36 istore 36
iload 36 iload 36
iconst 0 iconst 0
if_icmpgt LABEL498 if_icmpgt LABEL508
jump LABEL508 jump LABEL518
LABEL498: LABEL508:
iload 35 iload 35
iconst 21 iconst 21
set_array_int set_array_int
@@ -570,7 +582,7 @@ LABEL498:
iconst 1 iconst 1
add add
istore 35 istore 35
LABEL508: LABEL518:
iconst 0 iconst 0
istore 37 istore 37
iconst 0 iconst 0
@@ -597,67 +609,67 @@ LABEL508:
sstore 0 sstore 0
iload 35 iload 35
iconst 0 iconst 0
if_icmpgt LABEL536 if_icmpgt LABEL546
jump LABEL779 jump LABEL789
LABEL536: LABEL546:
iload 16 iload 16
iconst 0 iconst 0
if_icmpgt LABEL540 if_icmpgt LABEL550
jump LABEL779 jump LABEL789
LABEL540: LABEL550:
clientclock clientclock
get_varc_int 76 get_varc_int 76
sub sub
iconst 10 iconst 10
if_icmpgt LABEL546 if_icmpgt LABEL556
jump LABEL779 jump LABEL789
LABEL546: LABEL556:
get_varbit 4693 get_varbit 4693
iconst 1 iconst 1
if_icmpeq LABEL550 if_icmpeq LABEL560
jump LABEL561 jump LABEL571
LABEL550: LABEL560:
invoke 1972 invoke 1972
iconst 0 iconst 0
if_icmpeq LABEL554 if_icmpeq LABEL564
jump LABEL561 jump LABEL571
LABEL554: LABEL564:
iconst 495 iconst 495
iconst 495 iconst 495
iconst 25 iconst 25
istore 41 istore 41
istore 40 istore 40
istore 39 istore 39
jump LABEL575 jump LABEL585
LABEL561: LABEL571:
get_varbit 4693 get_varbit 4693
iconst 2 iconst 2
if_icmpeq LABEL565 if_icmpeq LABEL575
jump LABEL575 jump LABEL585
LABEL565: LABEL575:
invoke 1972 invoke 1972
iconst 0 iconst 0
if_icmpeq LABEL569 if_icmpeq LABEL579
jump LABEL575 jump LABEL585
LABEL569: LABEL579:
iconst 496 iconst 496
iconst 496 iconst 496
iconst 25 iconst 25
istore 41 istore 41
istore 40 istore 40
istore 39 istore 39
LABEL575: LABEL585:
iload 8 iload 8
if_getheight if_getheight
istore 42 istore 42
iload 42 iload 42
iconst 100 iconst 100
if_icmplt LABEL582 if_icmplt LABEL592
jump LABEL584 jump LABEL594
LABEL582: LABEL592:
iconst 100 iconst 100
istore 42 istore 42
LABEL584: LABEL594:
iload 41 iload 41
iconst 105 iconst 105
iconst 105 iconst 105
@@ -670,58 +682,58 @@ LABEL584:
iconst 1 iconst 1
add add
istore 43 istore 43
LABEL596: LABEL606:
iload 37 iload 37
iload 35 iload 35
if_icmplt LABEL600 if_icmplt LABEL610
jump LABEL774 jump LABEL784
LABEL600: LABEL610:
iload 38 iload 38
iconst 0 iconst 0
if_icmpeq LABEL604 if_icmpeq LABEL614
jump LABEL613 jump LABEL623
LABEL604: LABEL614:
iload 0 iload 0
iconst 0 iconst 0
if_icmpeq LABEL608 if_icmpeq LABEL618
jump LABEL613 jump LABEL623
LABEL608: LABEL618:
iload 37 iload 37
get_array_int get_array_int
set_varc_int 72 set_varc_int 72
iconst 1 iconst 1
istore 38 istore 38
LABEL613: LABEL623:
get_varc_int 71 get_varc_int 71
iconst 0 iconst 0
if_icmpgt LABEL617 if_icmpgt LABEL627
jump LABEL628 jump LABEL638
LABEL617: LABEL627:
get_varc_int 71 get_varc_int 71
clientclock clientclock
iload 43 iload 43
sub sub
if_icmpgt LABEL623 if_icmpgt LABEL633
jump LABEL628 jump LABEL638
LABEL623: LABEL633:
get_varc_int 71 get_varc_int 71
iload 43 iload 43
add add
istore 44 istore 44
jump LABEL630 jump LABEL640
LABEL628: LABEL638:
clientclock clientclock
istore 44 istore 44
LABEL630: LABEL640:
iload 44 iload 44
clientclock clientclock
iload 43 iload 43
iload 10 iload 10
multiply multiply
add add
if_icmplt LABEL638 if_icmplt LABEL648
jump LABEL771 jump LABEL781
LABEL638: LABEL648:
iconst 105 iconst 105
iconst 73 iconst 73
iconst 1163 iconst 1163
@@ -758,27 +770,27 @@ LABEL638:
iconst 1 iconst 1
add add
istore 37 istore 37
LABEL674: LABEL684:
get_varbit 4696 get_varbit 4696
iconst 1 iconst 1
if_icmpeq LABEL678 if_icmpeq LABEL688
jump LABEL722 jump LABEL732
LABEL678: LABEL688:
iload 37 iload 37
iload 35 iload 35
if_icmplt LABEL682 if_icmplt LABEL692
jump LABEL722 jump LABEL732
LABEL682: LABEL692:
iload 45 iload 45
iconst 5 iconst 5
if_icmplt LABEL686 if_icmplt LABEL696
jump LABEL722 jump LABEL732
LABEL686: LABEL696:
iload 46 iload 46
iconst 1000000 iconst 1000000
if_icmplt LABEL690 if_icmplt LABEL700
jump LABEL722 jump LABEL732
LABEL690: LABEL700:
iload 46 iload 46
iload 37 iload 37
get_array_int 1 get_array_int 1
@@ -810,8 +822,8 @@ LABEL690:
iconst 1 iconst 1
add add
istore 37 istore 37
jump LABEL674 jump LABEL684
LABEL722: LABEL732:
iload 46 iload 46
sconst "," sconst ","
invoke 46 invoke 46
@@ -820,22 +832,22 @@ LABEL722:
sstore 0 sstore 0
iload 0 iload 0
iconst 1 iconst 1
if_icmpeq LABEL730 if_icmpeq LABEL740
jump LABEL735 jump LABEL745
LABEL730: LABEL740:
sconst "<img=11>" sconst "<img=11>"
sconst " " sconst " "
sload 0 sload 0
join_string 3 join_string 3
sstore 0 sstore 0
LABEL735: LABEL745:
iload 47 iload 47
iconst 0 iconst 0
cc_find cc_find
iconst 1 iconst 1
if_icmpeq LABEL741 if_icmpeq LABEL751
jump LABEL756 jump LABEL766
LABEL741: LABEL751:
sload 0 sload 0
cc_settext cc_settext
iconst 0 iconst 0
@@ -851,7 +863,7 @@ LABEL741:
iload 40 iload 40
sload 0 sload 0
invoke 996 invoke 996
LABEL756: LABEL766:
iconst 1005 iconst 1005
iload 47 iload 47
iload 44 iload 44
@@ -866,24 +878,24 @@ LABEL756:
iload 10 iload 10
mod mod
set_varc_int 70 set_varc_int 70
jump LABEL773 jump LABEL783
LABEL771: LABEL781:
iload 35 iload 35
istore 37 istore 37
LABEL773: LABEL783:
jump LABEL596 jump LABEL606
LABEL774: LABEL784:
iload 1 iload 1
iload 3 iload 3
iload 8 iload 8
iload 9 iload 9
invoke 997 invoke 997
LABEL779: LABEL789:
iload 0 iload 0
iconst 0 iconst 0
if_icmpeq LABEL783 if_icmpeq LABEL793
jump LABEL802 jump LABEL812
LABEL783: LABEL793:
iload 3 iload 3
iload 4 iload 4
iload 5 iload 5
@@ -903,5 +915,5 @@ LABEL783:
iload 9 iload 9
iload 10 iload 10
invoke 1003 invoke 1003
LABEL802: LABEL812:
return return
@@ -31,6 +31,7 @@ import java.time.Instant;
import java.util.UUID; import java.util.UUID;
import java.util.concurrent.ScheduledExecutorService; import java.util.concurrent.ScheduledExecutorService;
import javax.inject.Inject; import javax.inject.Inject;
import net.runelite.api.Client;
import net.runelite.client.account.AccountSession; import net.runelite.client.account.AccountSession;
import net.runelite.client.eventbus.EventBus; import net.runelite.client.eventbus.EventBus;
import org.junit.Assert; import org.junit.Assert;
@@ -43,6 +44,10 @@ import org.mockito.junit.MockitoJUnitRunner;
@RunWith(MockitoJUnitRunner.class) @RunWith(MockitoJUnitRunner.class)
public class ConfigManagerTest public class ConfigManagerTest
{ {
@Mock
@Bind
Client client;
@Mock @Mock
@Bind @Bind
EventBus eventBus; EventBus eventBus;
@@ -178,7 +178,7 @@ public class ScreenshotPluginTest
when(levelChild.getText()).thenReturn("Your Hitpoints are now 99."); when(levelChild.getText()).thenReturn("Your Hitpoints are now 99.");
assertEquals("Hitpoints(99)", screenshotPlugin.parseLevelUpWidget(LEVEL_UP_LEVEL)); assertEquals("Hitpoints(99)", screenshotPlugin.parseLevelUpWidget(client.getWidget(LEVEL_UP_LEVEL)));
WidgetLoaded event = new WidgetLoaded(); WidgetLoaded event = new WidgetLoaded();
event.setGroupId(LEVEL_UP_GROUP_ID); event.setGroupId(LEVEL_UP_GROUP_ID);
@@ -199,7 +199,7 @@ public class ScreenshotPluginTest
when(levelChild.getText()).thenReturn("Your Firemaking level is now 9."); when(levelChild.getText()).thenReturn("Your Firemaking level is now 9.");
assertEquals("Firemaking(9)", screenshotPlugin.parseLevelUpWidget(LEVEL_UP_LEVEL)); assertEquals("Firemaking(9)", screenshotPlugin.parseLevelUpWidget(client.getWidget(LEVEL_UP_LEVEL)));
WidgetLoaded event = new WidgetLoaded(); WidgetLoaded event = new WidgetLoaded();
event.setGroupId(LEVEL_UP_GROUP_ID); event.setGroupId(LEVEL_UP_GROUP_ID);
@@ -220,7 +220,7 @@ public class ScreenshotPluginTest
when(levelChild.getText()).thenReturn("Your Attack level is now 70."); when(levelChild.getText()).thenReturn("Your Attack level is now 70.");
assertEquals("Attack(70)", screenshotPlugin.parseLevelUpWidget(LEVEL_UP_LEVEL)); assertEquals("Attack(70)", screenshotPlugin.parseLevelUpWidget(client.getWidget(LEVEL_UP_LEVEL)));
WidgetLoaded event = new WidgetLoaded(); WidgetLoaded event = new WidgetLoaded();
event.setGroupId(LEVEL_UP_GROUP_ID); event.setGroupId(LEVEL_UP_GROUP_ID);
@@ -241,7 +241,7 @@ public class ScreenshotPluginTest
when(levelChild.getText()).thenReturn("<col=000080>Congratulations, you've just advanced a Hunter level.<col=000000><br><br>Your Hunter level is now 2."); when(levelChild.getText()).thenReturn("<col=000080>Congratulations, you've just advanced a Hunter level.<col=000000><br><br>Your Hunter level is now 2.");
assertEquals("Hunter(2)", screenshotPlugin.parseLevelUpWidget(DIALOG_SPRITE_TEXT)); assertEquals("Hunter(2)", screenshotPlugin.parseLevelUpWidget(client.getWidget(DIALOG_SPRITE_TEXT)));
WidgetLoaded event = new WidgetLoaded(); WidgetLoaded event = new WidgetLoaded();
event.setGroupId(DIALOG_SPRITE_GROUP_ID); event.setGroupId(DIALOG_SPRITE_GROUP_ID);
@@ -44,6 +44,7 @@ import org.junit.runner.RunWith;
import org.mockito.Mock; import org.mockito.Mock;
import static org.mockito.Mockito.verify; import static org.mockito.Mockito.verify;
import static org.mockito.Mockito.verifyNoMoreInteractions; import static org.mockito.Mockito.verifyNoMoreInteractions;
import static org.mockito.Mockito.when;
import org.mockito.junit.MockitoJUnitRunner; import org.mockito.junit.MockitoJUnitRunner;
@RunWith(MockitoJUnitRunner.class) @RunWith(MockitoJUnitRunner.class)
@@ -133,11 +134,11 @@ public class WoodcuttingPluginTest
{ {
ChatMessage chatMessage = new ChatMessage(null, ChatMessageType.GAMEMESSAGE, "", BIRDS_NEST_MESSAGE, "", 0); ChatMessage chatMessage = new ChatMessage(null, ChatMessageType.GAMEMESSAGE, "", BIRDS_NEST_MESSAGE, "", 0);
woodcuttingPlugin.showNestNotification = true; when(woodcuttingConfig.showNestNotification()).thenReturn(true);
woodcuttingPlugin.onChatMessage(chatMessage); woodcuttingPlugin.onChatMessage(chatMessage);
verify(notifier).notify("A bird nest has spawned!"); verify(notifier).notify("A bird nest has spawned!");
woodcuttingPlugin.showNestNotification = false; when(woodcuttingConfig.showNestNotification()).thenReturn(false);
woodcuttingPlugin.onChatMessage(chatMessage); woodcuttingPlugin.onChatMessage(chatMessage);
verifyNoMoreInteractions(notifier); verifyNoMoreInteractions(notifier);
} }
@@ -73,6 +73,10 @@ public interface RSWidget extends Widget
@Override @Override
int getModelId(); int getModelId();
@Import("modelId")
@Override
void setModelId(int modelId);
@Import("itemIds") @Import("itemIds")
int[] getItemIds(); int[] getItemIds();
@@ -160,14 +164,37 @@ public interface RSWidget extends Widget
@Import("childIndex") @Import("childIndex")
void setIndex(int index); void setIndex(int index);
//@Import("rotationX") @Import("modelAngleX")
//int getRotationX(); @Override
int getRotationX();
//@Import("rotationY") --- All unused @Import("modelAngleX")
//int getRotationY(); @Override
void setRotationX(int rotationX);
//@Import("rotationZ") @Import("modelAngleY")
//int getRotationZ(); @Override
int getRotationY();
@Import("modelAngleY")
@Override
void setRotationY(int rotationY);
@Import("modelAngleZ")
@Override
int getRotationZ();
@Import("modelAngleZ")
@Override
void setRotationZ(int rotationZ);
@Import("modelZoom")
@Override
int getModelZoom();
@Import("modelZoom")
@Override
void setModelZoom(int modelZoom);
@Import("contentType") @Import("contentType")
@Override @Override
@@ -4,87 +4,81 @@ import net.runelite.mapping.ObfuscatedGetter;
import net.runelite.mapping.ObfuscatedName; import net.runelite.mapping.ObfuscatedName;
import net.runelite.mapping.ObfuscatedSignature; import net.runelite.mapping.ObfuscatedSignature;
@ObfuscatedName("hq") @ObfuscatedName("hf")
@Implements("AbstractArchive") @Implements("AbstractArchive")
public abstract class AbstractArchive { public abstract class AbstractArchive {
@ObfuscatedName("k") @ObfuscatedName("e")
@ObfuscatedSignature( @ObfuscatedSignature(
signature = "Llj;" signature = "Llk;"
) )
@Export("gzipDecompressor") @Export("gzipDecompressor")
static GZipDecompressor gzipDecompressor; static GZipDecompressor gzipDecompressor;
@ObfuscatedName("e") @ObfuscatedName("a")
@ObfuscatedGetter( @ObfuscatedGetter(
intValue = -1159865063 intValue = 1872832013
) )
static int field3128; static int field3152;
@ObfuscatedName("hs") @ObfuscatedName("f")
@ObfuscatedGetter( @ObfuscatedGetter(
intValue = 906312301 intValue = 2020242851
)
@Export("oculusOrbFocalPointY")
static int oculusOrbFocalPointY;
@ObfuscatedName("t")
@ObfuscatedGetter(
intValue = -869416099
) )
@Export("groupCount") @Export("groupCount")
int groupCount; int groupCount;
@ObfuscatedName("n") @ObfuscatedName("b")
@Export("groupIds") @Export("groupIds")
int[] groupIds; int[] groupIds;
@ObfuscatedName("q") @ObfuscatedName("g")
@Export("groupNameHashes") @Export("groupNameHashes")
int[] groupNameHashes; int[] groupNameHashes;
@ObfuscatedName("v") @ObfuscatedName("z")
@ObfuscatedSignature( @ObfuscatedSignature(
signature = "Lle;" signature = "Lla;"
) )
@Export("groupNameHashTable") @Export("groupNameHashTable")
IntHashTable groupNameHashTable; IntHashTable groupNameHashTable;
@ObfuscatedName("l") @ObfuscatedName("p")
@Export("groupCrcs") @Export("groupCrcs")
int[] groupCrcs; int[] groupCrcs;
@ObfuscatedName("c") @ObfuscatedName("h")
@Export("groupVersions") @Export("groupVersions")
int[] groupVersions; int[] groupVersions;
@ObfuscatedName("o") @ObfuscatedName("y")
@Export("fileCounts") @Export("fileCounts")
int[] fileCounts; int[] fileCounts;
@ObfuscatedName("i") @ObfuscatedName("w")
@Export("fileIds") @Export("fileIds")
int[][] fileIds; int[][] fileIds;
@ObfuscatedName("d") @ObfuscatedName("i")
@Export("fileNameHashes") @Export("fileNameHashes")
int[][] fileNameHashes; int[][] fileNameHashes;
@ObfuscatedName("m") @ObfuscatedName("k")
@ObfuscatedSignature( @ObfuscatedSignature(
signature = "[Lle;" signature = "[Lla;"
) )
@Export("fileNameHashTables") @Export("fileNameHashTables")
IntHashTable[] fileNameHashTables; IntHashTable[] fileNameHashTables;
@ObfuscatedName("p") @ObfuscatedName("x")
@Export("groups") @Export("groups")
Object[] groups; Object[] groups;
@ObfuscatedName("h") @ObfuscatedName("o")
@Export("files") @Export("files")
Object[][] files; Object[][] files;
@ObfuscatedName("x") @ObfuscatedName("n")
@ObfuscatedGetter( @ObfuscatedGetter(
intValue = -514507625 intValue = 765464633
) )
@Export("hash") @Export("hash")
public int hash; public int hash;
@ObfuscatedName("j") @ObfuscatedName("r")
@Export("releaseGroups") @Export("releaseGroups")
boolean releaseGroups; boolean releaseGroups;
@ObfuscatedName("r") @ObfuscatedName("c")
@Export("shallowFiles") @Export("shallowFiles")
boolean shallowFiles; boolean shallowFiles;
static { static {
gzipDecompressor = new GZipDecompressor(); gzipDecompressor = new GZipDecompressor();
field3128 = 0; field3152 = 0;
} }
AbstractArchive(boolean var1, boolean var2) { AbstractArchive(boolean var1, boolean var2) {
@@ -92,133 +86,131 @@ public abstract class AbstractArchive {
this.shallowFiles = var2; this.shallowFiles = var2;
} }
@ObfuscatedName("a") @ObfuscatedName("u")
@ObfuscatedSignature( @ObfuscatedSignature(
signature = "([BI)V", signature = "([BI)V",
garbageValue = "-702728253" garbageValue = "-764987026"
) )
@Export("decodeIndex") @Export("decodeIndex")
void decodeIndex(byte[] var1) { void decodeIndex(byte[] var1) {
int var3 = var1.length; this.hash = class222.method4196(var1, var1.length);
int var2 = class3.method50(var1, 0, var3); Buffer var2 = new Buffer(class226.decompressBytes(var1));
this.hash = var2; int var3 = var2.readUnsignedByte();
Buffer var4 = new Buffer(ArchiveLoader.decompressBytes(var1)); if (var3 >= 5 && var3 <= 7) {
int var5 = var4.readUnsignedByte(); if (var3 >= 6) {
if (var5 >= 5 && var5 <= 7) { var2.readInt();
if (var5 >= 6) {
var4.readInt();
} }
int var6 = var4.readUnsignedByte(); int var4 = var2.readUnsignedByte();
if (var5 >= 7) { if (var3 >= 7) {
this.groupCount = var4.method5624(); this.groupCount = var2.method5617();
} else { } else {
this.groupCount = var4.readUnsignedShort(); this.groupCount = var2.readUnsignedShort();
} }
int var7 = 0; int var5 = 0;
int var8 = -1; int var6 = -1;
this.groupIds = new int[this.groupCount]; this.groupIds = new int[this.groupCount];
int var9; int var7;
if (var5 >= 7) { if (var3 >= 7) {
for (var9 = 0; var9 < this.groupCount; ++var9) { for (var7 = 0; var7 < this.groupCount; ++var7) {
this.groupIds[var9] = var7 += var4.method5624(); this.groupIds[var7] = var5 += var2.method5617();
if (this.groupIds[var9] > var8) { if (this.groupIds[var7] > var6) {
var8 = this.groupIds[var9]; var6 = this.groupIds[var7];
} }
} }
} else { } else {
for (var9 = 0; var9 < this.groupCount; ++var9) { for (var7 = 0; var7 < this.groupCount; ++var7) {
this.groupIds[var9] = var7 += var4.readUnsignedShort(); this.groupIds[var7] = var5 += var2.readUnsignedShort();
if (this.groupIds[var9] > var8) { if (this.groupIds[var7] > var6) {
var8 = this.groupIds[var9]; var6 = this.groupIds[var7];
} }
} }
} }
this.groupCrcs = new int[var8 + 1]; this.groupCrcs = new int[var6 + 1];
this.groupVersions = new int[var8 + 1]; this.groupVersions = new int[var6 + 1];
this.fileCounts = new int[var8 + 1]; this.fileCounts = new int[var6 + 1];
this.fileIds = new int[var8 + 1][]; this.fileIds = new int[var6 + 1][];
this.groups = new Object[var8 + 1]; this.groups = new Object[var6 + 1];
this.files = new Object[var8 + 1][]; this.files = new Object[var6 + 1][];
if (var6 != 0) { if (var4 != 0) {
this.groupNameHashes = new int[var8 + 1]; this.groupNameHashes = new int[var6 + 1];
for (var9 = 0; var9 < this.groupCount; ++var9) { for (var7 = 0; var7 < this.groupCount; ++var7) {
this.groupNameHashes[this.groupIds[var9]] = var4.readInt(); this.groupNameHashes[this.groupIds[var7]] = var2.readInt();
} }
this.groupNameHashTable = new IntHashTable(this.groupNameHashes); this.groupNameHashTable = new IntHashTable(this.groupNameHashes);
} }
for (var9 = 0; var9 < this.groupCount; ++var9) { for (var7 = 0; var7 < this.groupCount; ++var7) {
this.groupCrcs[this.groupIds[var9]] = var4.readInt(); this.groupCrcs[this.groupIds[var7]] = var2.readInt();
} }
for (var9 = 0; var9 < this.groupCount; ++var9) { for (var7 = 0; var7 < this.groupCount; ++var7) {
this.groupVersions[this.groupIds[var9]] = var4.readInt(); this.groupVersions[this.groupIds[var7]] = var2.readInt();
} }
for (var9 = 0; var9 < this.groupCount; ++var9) { for (var7 = 0; var7 < this.groupCount; ++var7) {
this.fileCounts[this.groupIds[var9]] = var4.readUnsignedShort(); this.fileCounts[this.groupIds[var7]] = var2.readUnsignedShort();
} }
int var8;
int var9;
int var10; int var10;
int var11; int var11;
int var12; int var12;
int var13; if (var3 >= 7) {
int var14; for (var7 = 0; var7 < this.groupCount; ++var7) {
if (var5 >= 7) { var8 = this.groupIds[var7];
for (var9 = 0; var9 < this.groupCount; ++var9) { var9 = this.fileCounts[var8];
var10 = this.groupIds[var9]; var5 = 0;
var11 = this.fileCounts[var10]; var10 = -1;
var7 = 0; this.fileIds[var8] = new int[var9];
var12 = -1;
this.fileIds[var10] = new int[var11];
for (var13 = 0; var13 < var11; ++var13) { for (var11 = 0; var11 < var9; ++var11) {
var14 = this.fileIds[var10][var13] = var7 += var4.method5624(); var12 = this.fileIds[var8][var11] = var5 += var2.method5617();
if (var14 > var12) { if (var12 > var10) {
var12 = var14; var10 = var12;
} }
} }
this.files[var10] = new Object[var12 + 1]; this.files[var8] = new Object[var10 + 1];
} }
} else { } else {
for (var9 = 0; var9 < this.groupCount; ++var9) { for (var7 = 0; var7 < this.groupCount; ++var7) {
var10 = this.groupIds[var9]; var8 = this.groupIds[var7];
var11 = this.fileCounts[var10]; var9 = this.fileCounts[var8];
var7 = 0; var5 = 0;
var12 = -1; var10 = -1;
this.fileIds[var10] = new int[var11]; this.fileIds[var8] = new int[var9];
for (var13 = 0; var13 < var11; ++var13) { for (var11 = 0; var11 < var9; ++var11) {
var14 = this.fileIds[var10][var13] = var7 += var4.readUnsignedShort(); var12 = this.fileIds[var8][var11] = var5 += var2.readUnsignedShort();
if (var14 > var12) { if (var12 > var10) {
var12 = var14; var10 = var12;
} }
} }
this.files[var10] = new Object[var12 + 1]; this.files[var8] = new Object[var10 + 1];
} }
} }
if (var6 != 0) { if (var4 != 0) {
this.fileNameHashes = new int[var8 + 1][]; this.fileNameHashes = new int[var6 + 1][];
this.fileNameHashTables = new IntHashTable[var8 + 1]; this.fileNameHashTables = new IntHashTable[var6 + 1];
for (var9 = 0; var9 < this.groupCount; ++var9) { for (var7 = 0; var7 < this.groupCount; ++var7) {
var10 = this.groupIds[var9]; var8 = this.groupIds[var7];
var11 = this.fileCounts[var10]; var9 = this.fileCounts[var8];
this.fileNameHashes[var10] = new int[this.files[var10].length]; this.fileNameHashes[var8] = new int[this.files[var8].length];
for (var12 = 0; var12 < var11; ++var12) { for (var10 = 0; var10 < var9; ++var10) {
this.fileNameHashes[var10][this.fileIds[var10][var12]] = var4.readInt(); this.fileNameHashes[var8][this.fileIds[var8][var10]] = var2.readInt();
} }
this.fileNameHashTables[var10] = new IntHashTable(this.fileNameHashes[var10]); this.fileNameHashTables[var8] = new IntHashTable(this.fileNameHashes[var8]);
} }
} }
@@ -227,29 +219,29 @@ public abstract class AbstractArchive {
} }
} }
@ObfuscatedName("t") @ObfuscatedName("f")
@ObfuscatedSignature( @ObfuscatedSignature(
signature = "(IB)V", signature = "(II)V",
garbageValue = "117" garbageValue = "-64779180"
) )
@Export("loadRegionFromGroup") @Export("loadRegionFromGroup")
void loadRegionFromGroup(int var1) { void loadRegionFromGroup(int var1) {
} }
@ObfuscatedName("n") @ObfuscatedName("b")
@ObfuscatedSignature( @ObfuscatedSignature(
signature = "(III)[B", signature = "(IIB)[B",
garbageValue = "-1573138603" garbageValue = "40"
) )
@Export("takeFile") @Export("takeFile")
public byte[] takeFile(int var1, int var2) { public byte[] takeFile(int var1, int var2) {
return this.takeFileEncrypted(var1, var2, (int[])null); return this.takeFileEncrypted(var1, var2, (int[])null);
} }
@ObfuscatedName("q") @ObfuscatedName("g")
@ObfuscatedSignature( @ObfuscatedSignature(
signature = "(II[IB)[B", signature = "(II[II)[B",
garbageValue = "0" garbageValue = "1072052433"
) )
@Export("takeFileEncrypted") @Export("takeFileEncrypted")
public byte[] takeFileEncrypted(int var1, int var2, int[] var3) { public byte[] takeFileEncrypted(int var1, int var2, int[] var3) {
@@ -265,7 +257,7 @@ public abstract class AbstractArchive {
} }
} }
byte[] var5 = Decimator.serialize(this.files[var1][var2], false); byte[] var5 = FontName.serialize(this.files[var1][var2], false);
if (this.shallowFiles) { if (this.shallowFiles) {
this.files[var1][var2] = null; this.files[var1][var2] = null;
} }
@@ -276,10 +268,10 @@ public abstract class AbstractArchive {
} }
} }
@ObfuscatedName("v") @ObfuscatedName("z")
@ObfuscatedSignature( @ObfuscatedSignature(
signature = "(III)Z", signature = "(III)Z",
garbageValue = "2054202524" garbageValue = "398293520"
) )
@Export("tryLoadFile") @Export("tryLoadFile")
public boolean tryLoadFile(int var1, int var2) { public boolean tryLoadFile(int var1, int var2) {
@@ -297,12 +289,12 @@ public abstract class AbstractArchive {
} }
} }
@ObfuscatedName("l") @ObfuscatedName("p")
@ObfuscatedSignature( @ObfuscatedSignature(
signature = "(IS)Z", signature = "(II)Z",
garbageValue = "-31796" garbageValue = "1197413241"
) )
public boolean method4327(int var1) { public boolean method4237(int var1) {
if (this.files.length == 1) { if (this.files.length == 1) {
return this.tryLoadFile(0, var1); return this.tryLoadFile(0, var1);
} else if (this.files[var1].length == 1) { } else if (this.files[var1].length == 1) {
@@ -312,10 +304,10 @@ public abstract class AbstractArchive {
} }
} }
@ObfuscatedName("c") @ObfuscatedName("h")
@ObfuscatedSignature( @ObfuscatedSignature(
signature = "(II)Z", signature = "(IB)Z",
garbageValue = "-1781242235" garbageValue = "-18"
) )
@Export("tryLoadGroup") @Export("tryLoadGroup")
public boolean tryLoadGroup(int var1) { public boolean tryLoadGroup(int var1) {
@@ -327,10 +319,10 @@ public abstract class AbstractArchive {
} }
} }
@ObfuscatedName("o") @ObfuscatedName("y")
@ObfuscatedSignature( @ObfuscatedSignature(
signature = "(I)Z", signature = "(I)Z",
garbageValue = "-2109708107" garbageValue = "2065138049"
) )
@Export("isFullyLoaded") @Export("isFullyLoaded")
public boolean isFullyLoaded() { public boolean isFullyLoaded() {
@@ -349,20 +341,20 @@ public abstract class AbstractArchive {
return var1; return var1;
} }
@ObfuscatedName("i") @ObfuscatedName("w")
@ObfuscatedSignature( @ObfuscatedSignature(
signature = "(II)I", signature = "(II)I",
garbageValue = "-778670663" garbageValue = "-1387572162"
) )
@Export("groupLoadPercent") @Export("groupLoadPercent")
int groupLoadPercent(int var1) { int groupLoadPercent(int var1) {
return this.groups[var1] != null ? 100 : 0; return this.groups[var1] != null ? 100 : 0;
} }
@ObfuscatedName("d") @ObfuscatedName("i")
@ObfuscatedSignature( @ObfuscatedSignature(
signature = "(IB)[B", signature = "(II)[B",
garbageValue = "-112" garbageValue = "1651082224"
) )
@Export("takeFileFlat") @Export("takeFileFlat")
public byte[] takeFileFlat(int var1) { public byte[] takeFileFlat(int var1) {
@@ -375,10 +367,10 @@ public abstract class AbstractArchive {
} }
} }
@ObfuscatedName("m") @ObfuscatedName("k")
@ObfuscatedSignature( @ObfuscatedSignature(
signature = "(III)[B", signature = "(III)[B",
garbageValue = "-315309482" garbageValue = "574646503"
) )
@Export("getFile") @Export("getFile")
public byte[] getFile(int var1, int var2) { public byte[] getFile(int var1, int var2) {
@@ -394,17 +386,17 @@ public abstract class AbstractArchive {
} }
} }
byte[] var4 = Decimator.serialize(this.files[var1][var2], false); byte[] var4 = FontName.serialize(this.files[var1][var2], false);
return var4; return var4;
} else { } else {
return null; return null;
} }
} }
@ObfuscatedName("p") @ObfuscatedName("x")
@ObfuscatedSignature( @ObfuscatedSignature(
signature = "(II)[B", signature = "(IS)[B",
garbageValue = "-2080975442" garbageValue = "14651"
) )
@Export("getFileFlat") @Export("getFileFlat")
public byte[] getFileFlat(int var1) { public byte[] getFileFlat(int var1) {
@@ -417,49 +409,49 @@ public abstract class AbstractArchive {
} }
} }
@ObfuscatedName("h") @ObfuscatedName("o")
@ObfuscatedSignature( @ObfuscatedSignature(
signature = "(II)V", signature = "(II)V",
garbageValue = "664192835" garbageValue = "130067407"
) )
@Export("loadGroup") @Export("loadGroup")
void loadGroup(int var1) { void loadGroup(int var1) {
} }
@ObfuscatedName("k") @ObfuscatedName("e")
@ObfuscatedSignature( @ObfuscatedSignature(
signature = "(II)[I", signature = "(II)[I",
garbageValue = "1547416359" garbageValue = "1555449772"
) )
@Export("getGroupFileIds") @Export("getGroupFileIds")
public int[] getGroupFileIds(int var1) { public int[] getGroupFileIds(int var1) {
return var1 >= 0 && var1 < this.fileIds.length ? this.fileIds[var1] : null; return var1 >= 0 && var1 < this.fileIds.length ? this.fileIds[var1] : null;
} }
@ObfuscatedName("x") @ObfuscatedName("n")
@ObfuscatedSignature( @ObfuscatedSignature(
signature = "(II)I", signature = "(II)I",
garbageValue = "-829743673" garbageValue = "526743948"
) )
@Export("getGroupFileCount") @Export("getGroupFileCount")
public int getGroupFileCount(int var1) { public int getGroupFileCount(int var1) {
return this.files[var1].length; return this.files[var1].length;
} }
@ObfuscatedName("j") @ObfuscatedName("c")
@ObfuscatedSignature( @ObfuscatedSignature(
signature = "(B)I", signature = "(I)I",
garbageValue = "107" garbageValue = "-1631712923"
) )
@Export("getGroupCount") @Export("getGroupCount")
public int getGroupCount() { public int getGroupCount() {
return this.files.length; return this.files.length;
} }
@ObfuscatedName("r") @ObfuscatedName("s")
@ObfuscatedSignature( @ObfuscatedSignature(
signature = "(I)V", signature = "(I)V",
garbageValue = "77380292" garbageValue = "254893440"
) )
@Export("clearGroups") @Export("clearGroups")
public void clearGroups() { public void clearGroups() {
@@ -469,10 +461,10 @@ public abstract class AbstractArchive {
} }
@ObfuscatedName("e") @ObfuscatedName("t")
@ObfuscatedSignature( @ObfuscatedSignature(
signature = "(IB)V", signature = "(II)V",
garbageValue = "17" garbageValue = "-438088964"
) )
@Export("clearFilesGroup") @Export("clearFilesGroup")
public void clearFilesGroup(int var1) { public void clearFilesGroup(int var1) {
@@ -482,10 +474,10 @@ public abstract class AbstractArchive {
} }
@ObfuscatedName("s") @ObfuscatedName("m")
@ObfuscatedSignature( @ObfuscatedSignature(
signature = "(I)V", signature = "(I)V",
garbageValue = "1828023605" garbageValue = "944527898"
) )
@Export("clearFiles") @Export("clearFiles")
public void clearFiles() { public void clearFiles() {
@@ -499,10 +491,10 @@ public abstract class AbstractArchive {
} }
@ObfuscatedName("b") @ObfuscatedName("v")
@ObfuscatedSignature( @ObfuscatedSignature(
signature = "(I[II)Z", signature = "(I[II)Z",
garbageValue = "1853690533" garbageValue = "1913631817"
) )
@Export("buildFiles") @Export("buildFiles")
boolean buildFiles(int var1, int[] var2) { boolean buildFiles(int var1, int[] var2) {
@@ -524,26 +516,27 @@ public abstract class AbstractArchive {
if (var6) { if (var6) {
return true; return true;
} else { } else {
byte[] var18; byte[] var21;
if (var2 == null || var2[0] == 0 && var2[1] == 0 && var2[2] == 0 && var2[3] == 0) { if (var2 == null || var2[0] == 0 && var2[1] == 0 && var2[2] == 0 && var2[3] == 0) {
var18 = Decimator.serialize(this.groups[var1], false); var21 = FontName.serialize(this.groups[var1], false);
} else { } else {
var18 = Decimator.serialize(this.groups[var1], true); var21 = FontName.serialize(this.groups[var1], true);
Buffer var8 = new Buffer(var18); Buffer var8 = new Buffer(var21);
var8.xteaDecrypt(var2, 5, var8.array.length); var8.xteaDecrypt(var2, 5, var8.array.length);
} }
byte[] var20 = ArchiveLoader.decompressBytes(var18); byte[] var25 = class226.decompressBytes(var21);
if (this.releaseGroups) { if (this.releaseGroups) {
this.groups[var1] = null; this.groups[var1] = null;
} }
int var10;
if (var3 > 1) { if (var3 > 1) {
int var9 = var20.length; int var9 = var25.length;
--var9; --var9;
int var10 = var20[var9] & 255; var10 = var25[var9] & 255;
var9 -= var10 * var3 * 4; var9 -= var10 * var3 * 4;
Buffer var11 = new Buffer(var20); Buffer var11 = new Buffer(var25);
int[] var12 = new int[var3]; int[] var12 = new int[var3];
var11.offset = var9; var11.offset = var9;
@@ -558,22 +551,23 @@ public abstract class AbstractArchive {
} }
} }
byte[][] var19 = new byte[var3][]; byte[][] var22 = new byte[var3][];
for (var14 = 0; var14 < var3; ++var14) { for (var14 = 0; var14 < var3; ++var14) {
var19[var14] = new byte[var12[var14]]; var22[var14] = new byte[var12[var14]];
var12[var14] = 0; var12[var14] = 0;
} }
var11.offset = var9; var11.offset = var9;
var14 = 0; var14 = 0;
int var17;
for (var15 = 0; var15 < var10; ++var15) { for (var15 = 0; var15 < var10; ++var15) {
int var16 = 0; int var16 = 0;
for (int var17 = 0; var17 < var3; ++var17) { for (var17 = 0; var17 < var3; ++var17) {
var16 += var11.readInt(); var16 += var11.readInt();
System.arraycopy(var20, var14, var19[var17], var12[var17], var16); System.arraycopy(var25, var14, var22[var17], var12[var17], var16);
var12[var17] += var16; var12[var17] += var16;
var14 += var16; var14 += var16;
} }
@@ -581,15 +575,40 @@ public abstract class AbstractArchive {
for (var15 = 0; var15 < var3; ++var15) { for (var15 = 0; var15 < var3; ++var15) {
if (!this.shallowFiles) { if (!this.shallowFiles) {
var5[var4[var15]] = MusicPatchPcmStream.method4064(var19[var15], false); var17 = var4[var15];
byte[] var19 = var22[var15];
Object var18;
if (var19 == null) {
var18 = null;
} else if (var19.length > 136) {
DirectByteArrayCopier var20 = new DirectByteArrayCopier();
var20.set(var19);
var18 = var20;
} else { } else {
var5[var4[var15]] = var19[var15]; var18 = var19;
}
var5[var17] = var18;
} else {
var5[var4[var15]] = var22[var15];
} }
} }
} else if (!this.shallowFiles) { } else if (!this.shallowFiles) {
var5[var4[0]] = MusicPatchPcmStream.method4064(var20, false); var10 = var4[0];
Object var26;
if (var25 == null) {
var26 = null;
} else if (var25.length > 136) {
DirectByteArrayCopier var27 = new DirectByteArrayCopier();
var27.set(var25);
var26 = var27;
} else { } else {
var5[var4[0]] = var20; var26 = var25;
}
var5[var10] = var26;
} else {
var5[var4[0]] = var25;
} }
return true; return true;
@@ -597,215 +616,109 @@ public abstract class AbstractArchive {
} }
} }
@ObfuscatedName("w") @ObfuscatedName("q")
@ObfuscatedSignature( @ObfuscatedSignature(
signature = "(Ljava/lang/String;I)I", signature = "(Ljava/lang/String;I)I",
garbageValue = "-568803871" garbageValue = "282795041"
) )
@Export("getGroupId") @Export("getGroupId")
public int getGroupId(String var1) { public int getGroupId(String var1) {
var1 = var1.toLowerCase(); var1 = var1.toLowerCase();
return this.groupNameHashTable.get(WorldMapIcon_0.hashString(var1)); return this.groupNameHashTable.get(class42.hashString(var1));
} }
@ObfuscatedName("u") @ObfuscatedName("l")
@ObfuscatedSignature( @ObfuscatedSignature(
signature = "(ILjava/lang/String;B)I", signature = "(ILjava/lang/String;B)I",
garbageValue = "1" garbageValue = "20"
) )
@Export("getFileId") @Export("getFileId")
public int getFileId(int var1, String var2) { public int getFileId(int var1, String var2) {
var2 = var2.toLowerCase(); var2 = var2.toLowerCase();
return this.fileNameHashTables[var1].get(WorldMapIcon_0.hashString(var2)); return this.fileNameHashTables[var1].get(class42.hashString(var2));
} }
@ObfuscatedName("ad") @ObfuscatedName("j")
@ObfuscatedSignature( @ObfuscatedSignature(
signature = "(Ljava/lang/String;Ljava/lang/String;B)Z", signature = "(Ljava/lang/String;Ljava/lang/String;I)Z",
garbageValue = "-1" garbageValue = "1492371951"
) )
@Export("isValidFileName") @Export("isValidFileName")
public boolean isValidFileName(String var1, String var2) { public boolean isValidFileName(String var1, String var2) {
var1 = var1.toLowerCase(); var1 = var1.toLowerCase();
var2 = var2.toLowerCase(); var2 = var2.toLowerCase();
int var3 = this.groupNameHashTable.get(WorldMapIcon_0.hashString(var1)); int var3 = this.groupNameHashTable.get(class42.hashString(var1));
if (var3 < 0) { if (var3 < 0) {
return false; return false;
} else { } else {
int var4 = this.fileNameHashTables[var3].get(WorldMapIcon_0.hashString(var2)); int var4 = this.fileNameHashTables[var3].get(class42.hashString(var2));
return var4 >= 0; return var4 >= 0;
} }
} }
@ObfuscatedName("ag") @ObfuscatedName("ad")
@ObfuscatedSignature( @ObfuscatedSignature(
signature = "(Ljava/lang/String;Ljava/lang/String;I)[B", signature = "(Ljava/lang/String;Ljava/lang/String;I)[B",
garbageValue = "1996624784" garbageValue = "2111442561"
) )
@Export("takeFileByNames") @Export("takeFileByNames")
public byte[] takeFileByNames(String var1, String var2) { public byte[] takeFileByNames(String var1, String var2) {
var1 = var1.toLowerCase(); var1 = var1.toLowerCase();
var2 = var2.toLowerCase(); var2 = var2.toLowerCase();
int var3 = this.groupNameHashTable.get(WorldMapIcon_0.hashString(var1)); int var3 = this.groupNameHashTable.get(class42.hashString(var1));
int var4 = this.fileNameHashTables[var3].get(WorldMapIcon_0.hashString(var2)); int var4 = this.fileNameHashTables[var3].get(class42.hashString(var2));
return this.takeFile(var3, var4); return this.takeFile(var3, var4);
} }
@ObfuscatedName("ak") @ObfuscatedName("am")
@ObfuscatedSignature( @ObfuscatedSignature(
signature = "(Ljava/lang/String;Ljava/lang/String;I)Z", signature = "(Ljava/lang/String;Ljava/lang/String;B)Z",
garbageValue = "1453372171" garbageValue = "0"
) )
@Export("tryLoadFileByNames") @Export("tryLoadFileByNames")
public boolean tryLoadFileByNames(String var1, String var2) { public boolean tryLoadFileByNames(String var1, String var2) {
var1 = var1.toLowerCase(); var1 = var1.toLowerCase();
var2 = var2.toLowerCase(); var2 = var2.toLowerCase();
int var3 = this.groupNameHashTable.get(WorldMapIcon_0.hashString(var1)); int var3 = this.groupNameHashTable.get(class42.hashString(var1));
int var4 = this.fileNameHashTables[var3].get(WorldMapIcon_0.hashString(var2)); int var4 = this.fileNameHashTables[var3].get(class42.hashString(var2));
return this.tryLoadFile(var3, var4); return this.tryLoadFile(var3, var4);
} }
@ObfuscatedName("av") @ObfuscatedName("ai")
@ObfuscatedSignature( @ObfuscatedSignature(
signature = "(Ljava/lang/String;I)Z", signature = "(Ljava/lang/String;B)Z",
garbageValue = "1150520386" garbageValue = "-14"
) )
@Export("tryLoadGroupByName") @Export("tryLoadGroupByName")
public boolean tryLoadGroupByName(String var1) { public boolean tryLoadGroupByName(String var1) {
var1 = var1.toLowerCase(); var1 = var1.toLowerCase();
int var2 = this.groupNameHashTable.get(WorldMapIcon_0.hashString(var1)); int var2 = this.groupNameHashTable.get(class42.hashString(var1));
return this.tryLoadGroup(var2); return this.tryLoadGroup(var2);
} }
@ObfuscatedName("am") @ObfuscatedName("ag")
@ObfuscatedSignature( @ObfuscatedSignature(
signature = "(Ljava/lang/String;B)V", signature = "(Ljava/lang/String;I)V",
garbageValue = "-94" garbageValue = "793456202"
) )
@Export("loadRegionFromName") @Export("loadRegionFromName")
public void loadRegionFromName(String var1) { public void loadRegionFromName(String var1) {
var1 = var1.toLowerCase(); var1 = var1.toLowerCase();
int var2 = this.groupNameHashTable.get(WorldMapIcon_0.hashString(var1)); int var2 = this.groupNameHashTable.get(class42.hashString(var1));
if (var2 >= 0) { if (var2 >= 0) {
this.loadRegionFromGroup(var2); this.loadRegionFromGroup(var2);
} }
} }
@ObfuscatedName("ab") @ObfuscatedName("ao")
@ObfuscatedSignature( @ObfuscatedSignature(
signature = "(Ljava/lang/String;B)I", signature = "(Ljava/lang/String;I)I",
garbageValue = "125" garbageValue = "2116991634"
) )
@Export("groupLoadPercentByName") @Export("groupLoadPercentByName")
public int groupLoadPercentByName(String var1) { public int groupLoadPercentByName(String var1) {
var1 = var1.toLowerCase(); var1 = var1.toLowerCase();
int var2 = this.groupNameHashTable.get(WorldMapIcon_0.hashString(var1)); int var2 = this.groupNameHashTable.get(class42.hashString(var1));
return this.groupLoadPercent(var2); return this.groupLoadPercent(var2);
} }
@ObfuscatedName("t")
@ObfuscatedSignature(
signature = "(II)Ljava/lang/String;",
garbageValue = "-1378160996"
)
@Export("colorStartTag")
static String colorStartTag(int var0) {
return "<col=" + Integer.toHexString(var0) + ">";
}
@ObfuscatedName("fm")
@ObfuscatedSignature(
signature = "(II)V",
garbageValue = "-1166291616"
)
@Export("getLoginError")
static void getLoginError(int var0) {
if (var0 == -3) {
GrandExchangeOffer.setLoginResponseString("Connection timed out.", "Please try using a different world.", "");
} else if (var0 == -2) {
GrandExchangeOffer.setLoginResponseString("", "Error connecting to server.", "");
} else if (var0 == -1) {
GrandExchangeOffer.setLoginResponseString("No response from server.", "Please try using a different world.", "");
} else if (var0 == 3) {
Login.loginIndex = 3;
Login.field1166 = 1;
} else if (var0 == 4) {
Login.loginIndex = 12;
Login.field1156 = 0;
} else if (var0 == 5) {
Login.field1166 = 2;
GrandExchangeOffer.setLoginResponseString("Your account has not logged out from its last", "session or the server is too busy right now.", "Please try again in a few minutes.");
} else if (var0 == 68 || !Client.onMobile && var0 == 6) {
GrandExchangeOffer.setLoginResponseString("RuneScape has been updated!", "Please reload this page.", "");
} else if (var0 == 7) {
GrandExchangeOffer.setLoginResponseString("This world is full.", "Please use a different world.", "");
} else if (var0 == 8) {
GrandExchangeOffer.setLoginResponseString("Unable to connect.", "Login server offline.", "");
} else if (var0 == 9) {
GrandExchangeOffer.setLoginResponseString("Login limit exceeded.", "Too many connections from your address.", "");
} else if (var0 == 10) {
GrandExchangeOffer.setLoginResponseString("Unable to connect.", "Bad session id.", "");
} else if (var0 == 11) {
GrandExchangeOffer.setLoginResponseString("We suspect someone knows your password.", "Press 'change your password' on front page.", "");
} else if (var0 == 12) {
GrandExchangeOffer.setLoginResponseString("You need a members account to login to this world.", "Please subscribe, or use a different world.", "");
} else if (var0 == 13) {
GrandExchangeOffer.setLoginResponseString("Could not complete login.", "Please try using a different world.", "");
} else if (var0 == 14) {
GrandExchangeOffer.setLoginResponseString("The server is being updated.", "Please wait 1 minute and try again.", "");
} else if (var0 == 16) {
GrandExchangeOffer.setLoginResponseString("Too many login attempts.", "Please wait a few minutes before trying again.", "");
} else if (var0 == 17) {
GrandExchangeOffer.setLoginResponseString("You are standing in a members-only area.", "To play on this world move to a free area first", "");
} else if (var0 == 18) {
Login.loginIndex = 12;
Login.field1156 = 1;
} else if (var0 == 19) {
GrandExchangeOffer.setLoginResponseString("This world is running a closed Beta.", "Sorry invited players only.", "Please use a different world.");
} else if (var0 == 20) {
GrandExchangeOffer.setLoginResponseString("Invalid loginserver requested.", "Please try using a different world.", "");
} else if (var0 == 22) {
GrandExchangeOffer.setLoginResponseString("Malformed login packet.", "Please try again.", "");
} else if (var0 == 23) {
GrandExchangeOffer.setLoginResponseString("No reply from loginserver.", "Please wait 1 minute and try again.", "");
} else if (var0 == 24) {
GrandExchangeOffer.setLoginResponseString("Error loading your profile.", "Please contact customer support.", "");
} else if (var0 == 25) {
GrandExchangeOffer.setLoginResponseString("Unexpected loginserver response.", "Please try using a different world.", "");
} else if (var0 == 26) {
GrandExchangeOffer.setLoginResponseString("This computers address has been blocked", "as it was used to break our rules.", "");
} else if (var0 == 27) {
GrandExchangeOffer.setLoginResponseString("", "Service unavailable.", "");
} else if (var0 == 31) {
GrandExchangeOffer.setLoginResponseString("Your account must have a displayname set", "in order to play the game. Please set it", "via the website, or the main game.");
} else if (var0 == 32) {
GrandExchangeOffer.setLoginResponseString("Your attempt to log into your account was", "unsuccessful. Don't worry, you can sort", "this out by visiting the billing system.");
} else if (var0 == 37) {
GrandExchangeOffer.setLoginResponseString("Your account is currently inaccessible.", "Please try again in a few minutes.", "");
} else if (var0 == 38) {
GrandExchangeOffer.setLoginResponseString("You need to vote to play!", "Visit runescape.com and vote,", "and then come back here!");
} else if (var0 == 55) {
Login.loginIndex = 8;
} else {
if (var0 == 56) {
GrandExchangeOffer.setLoginResponseString("Enter the 6-digit code generated by your", "authenticator app.", "");
Tile.updateGameState(11);
return;
}
if (var0 == 57) {
GrandExchangeOffer.setLoginResponseString("The code you entered was incorrect.", "Please try again.", "");
Tile.updateGameState(11);
return;
}
if (var0 == 61) {
Login.loginIndex = 7;
} else {
GrandExchangeOffer.setLoginResponseString("Unexpected server response", "Please try using a different world.", "");
}
}
Tile.updateGameState(10);
}
} }
@@ -1,72 +1,44 @@
import net.runelite.mapping.Export; import net.runelite.mapping.Export;
import net.runelite.mapping.Implements; import net.runelite.mapping.Implements;
import net.runelite.mapping.ObfuscatedGetter;
import net.runelite.mapping.ObfuscatedName; import net.runelite.mapping.ObfuscatedName;
import net.runelite.mapping.ObfuscatedSignature; import net.runelite.mapping.ObfuscatedSignature;
import net.runelite.rs.ScriptOpcodes;
@ObfuscatedName("gc") @ObfuscatedName("gp")
@Implements("AbstractByteArrayCopier") @Implements("AbstractByteArrayCopier")
public abstract class AbstractByteArrayCopier { public abstract class AbstractByteArrayCopier {
@ObfuscatedName("n") @ObfuscatedName("h")
@ObfuscatedGetter( @ObfuscatedSignature(
intValue = 977117713 signature = "Lln;"
) )
@Export("WorldMapElement_count") @Export("leftTitleSprite")
public static int WorldMapElement_count; static Sprite leftTitleSprite;
AbstractByteArrayCopier() { AbstractByteArrayCopier() {
} }
@ObfuscatedName("q") @ObfuscatedName("b")
@ObfuscatedSignature( @ObfuscatedSignature(
signature = "(B)[B", signature = "(S)[B",
garbageValue = "19" garbageValue = "18982"
) )
@Export("get") @Export("get")
abstract byte[] get(); abstract byte[] get();
@ObfuscatedName("v") @ObfuscatedName("g")
@ObfuscatedSignature( @ObfuscatedSignature(
signature = "([BB)V", signature = "([BI)V",
garbageValue = "-93" garbageValue = "-1436271820"
) )
@Export("set") @Export("set")
abstract void set(byte[] var1); public abstract void set(byte[] var1);
@ObfuscatedName("x") @ObfuscatedName("kg")
@ObfuscatedSignature( @ObfuscatedSignature(
signature = "(ILcj;ZI)I", signature = "(Lhl;B)Z",
garbageValue = "2005076338" garbageValue = "-78"
) )
static int method4093(int var0, Script var1, boolean var2) { @Export("isComponentHidden")
Widget var3 = var2 ? class96.field1301 : ReflectionCheck.field1310; static boolean isComponentHidden(Widget var0) {
if (var0 == ScriptOpcodes.CC_GETINVOBJECT) { return var0.isHidden;
Interpreter.Interpreter_intStack[++Interpreter.Interpreter_intStackSize - 1] = var3.itemId;
return 1;
} else if (var0 == ScriptOpcodes.CC_GETINVCOUNT) {
if (var3.itemId != -1) {
Interpreter.Interpreter_intStack[++Interpreter.Interpreter_intStackSize - 1] = var3.itemQuantity;
} else {
Interpreter.Interpreter_intStack[++Interpreter.Interpreter_intStackSize - 1] = 0;
}
return 1;
} else if (var0 == ScriptOpcodes.CC_GETID) {
Interpreter.Interpreter_intStack[++Interpreter.Interpreter_intStackSize - 1] = var3.childIndex;
return 1;
} else {
return 2;
}
}
@ObfuscatedName("kb")
@ObfuscatedSignature(
signature = "(B)V",
garbageValue = "-66"
)
static final void method4092() {
Client.field825 = Client.cycleCntr;
Ignored.ClanChat_inClanChat = true;
} }
} }
@@ -4,76 +4,76 @@ import net.runelite.mapping.Implements;
import net.runelite.mapping.ObfuscatedName; import net.runelite.mapping.ObfuscatedName;
import net.runelite.mapping.ObfuscatedSignature; import net.runelite.mapping.ObfuscatedSignature;
@ObfuscatedName("kx") @ObfuscatedName("kr")
@Implements("AbstractFont") @Implements("AbstractFont")
public abstract class AbstractFont extends Rasterizer2D { public abstract class AbstractFont extends Rasterizer2D {
@ObfuscatedName("d") @ObfuscatedName("i")
@ObfuscatedSignature( @ObfuscatedSignature(
signature = "[Llw;" signature = "[Llm;"
) )
@Export("AbstractFont_modIconSprites") @Export("AbstractFont_modIconSprites")
public static IndexedSprite[] AbstractFont_modIconSprites; public static IndexedSprite[] AbstractFont_modIconSprites;
@ObfuscatedName("p") @ObfuscatedName("x")
@Export("AbstractFont_strike") @Export("AbstractFont_strike")
static int AbstractFont_strike; static int AbstractFont_strike;
@ObfuscatedName("h") @ObfuscatedName("o")
@Export("AbstractFont_underline") @Export("AbstractFont_underline")
static int AbstractFont_underline; static int AbstractFont_underline;
@ObfuscatedName("k") @ObfuscatedName("e")
@Export("AbstractFont_previousShadow") @Export("AbstractFont_previousShadow")
static int AbstractFont_previousShadow; static int AbstractFont_previousShadow;
@ObfuscatedName("x") @ObfuscatedName("n")
@Export("AbstractFont_shadow") @Export("AbstractFont_shadow")
static int AbstractFont_shadow; static int AbstractFont_shadow;
@ObfuscatedName("j") @ObfuscatedName("r")
@Export("AbstractFont_previousColor") @Export("AbstractFont_previousColor")
static int AbstractFont_previousColor; static int AbstractFont_previousColor;
@ObfuscatedName("r") @ObfuscatedName("c")
@Export("AbstractFont_color") @Export("AbstractFont_color")
static int AbstractFont_color; static int AbstractFont_color;
@ObfuscatedName("e") @ObfuscatedName("a")
@Export("AbstractFont_alpha") @Export("AbstractFont_alpha")
static int AbstractFont_alpha; static int AbstractFont_alpha;
@ObfuscatedName("s") @ObfuscatedName("d")
@Export("AbstractFont_justificationTotal") @Export("AbstractFont_justificationTotal")
static int AbstractFont_justificationTotal; static int AbstractFont_justificationTotal;
@ObfuscatedName("b") @ObfuscatedName("s")
@Export("AbstractFont_justificationCurrent") @Export("AbstractFont_justificationCurrent")
static int AbstractFont_justificationCurrent; static int AbstractFont_justificationCurrent;
@ObfuscatedName("z") @ObfuscatedName("t")
@Export("AbstractFont_random") @Export("AbstractFont_random")
static Random AbstractFont_random; static Random AbstractFont_random;
@ObfuscatedName("f") @ObfuscatedName("m")
@Export("AbstractFont_lines") @Export("AbstractFont_lines")
static String[] AbstractFont_lines; static String[] AbstractFont_lines;
@ObfuscatedName("a") @ObfuscatedName("u")
@Export("pixels") @Export("pixels")
byte[][] pixels; byte[][] pixels;
@ObfuscatedName("t") @ObfuscatedName("f")
@Export("advances") @Export("advances")
int[] advances; int[] advances;
@ObfuscatedName("n") @ObfuscatedName("b")
@Export("widths") @Export("widths")
int[] widths; int[] widths;
@ObfuscatedName("q") @ObfuscatedName("g")
@Export("heights") @Export("heights")
int[] heights; int[] heights;
@ObfuscatedName("v") @ObfuscatedName("z")
@Export("leftBearings") @Export("leftBearings")
int[] leftBearings; int[] leftBearings;
@ObfuscatedName("l") @ObfuscatedName("p")
@Export("topBearings") @Export("topBearings")
int[] topBearings; int[] topBearings;
@ObfuscatedName("c") @ObfuscatedName("h")
@Export("ascent") @Export("ascent")
public int ascent; public int ascent;
@ObfuscatedName("o") @ObfuscatedName("y")
@Export("maxAscent") @Export("maxAscent")
public int maxAscent; public int maxAscent;
@ObfuscatedName("i") @ObfuscatedName("w")
@Export("maxDescent") @Export("maxDescent")
public int maxDescent; public int maxDescent;
@ObfuscatedName("m") @ObfuscatedName("k")
@Export("kerning") @Export("kerning")
byte[] kerning; byte[] kerning;
@@ -123,15 +123,15 @@ public abstract class AbstractFont extends Rasterizer2D {
this.readMetrics(var1); this.readMetrics(var1);
} }
@ObfuscatedName("a") @ObfuscatedName("u")
@Export("drawGlyph") @Export("drawGlyph")
abstract void drawGlyph(byte[] var1, int var2, int var3, int var4, int var5, int var6); abstract void drawGlyph(byte[] var1, int var2, int var3, int var4, int var5, int var6);
@ObfuscatedName("t") @ObfuscatedName("f")
@Export("drawGlyphAlpha") @Export("drawGlyphAlpha")
abstract void drawGlyphAlpha(byte[] var1, int var2, int var3, int var4, int var5, int var6, int var7); abstract void drawGlyphAlpha(byte[] var1, int var2, int var3, int var4, int var5, int var6, int var7);
@ObfuscatedName("o") @ObfuscatedName("y")
@Export("readMetrics") @Export("readMetrics")
void readMetrics(byte[] var1) { void readMetrics(byte[] var1) {
this.advances = new int[256]; this.advances = new int[256];
@@ -193,7 +193,7 @@ public abstract class AbstractFont extends Rasterizer2D {
if (var13 != 32 && var13 != 160) { if (var13 != 32 && var13 != 160) {
for (var8 = 0; var8 < 256; ++var8) { for (var8 = 0; var8 < 256; ++var8) {
if (var8 != 32 && var8 != 160) { if (var8 != 32 && var8 != 160) {
this.kerning[var8 + (var13 << 8)] = (byte)method5506(var11, var12, var4, this.advances, var10, var13, var8); this.kerning[var8 + (var13 << 8)] = (byte)method5442(var11, var12, var4, this.advances, var10, var13, var8);
} }
} }
} }
@@ -204,17 +204,17 @@ public abstract class AbstractFont extends Rasterizer2D {
} }
@ObfuscatedName("d") @ObfuscatedName("i")
@Export("charWidth") @Export("charWidth")
int charWidth(char var1) { int charWidth(char var1) {
if (var1 == 160) { if (var1 == 160) {
var1 = ' '; var1 = ' ';
} }
return this.advances[WorldMapData_1.charToByteCp1252(var1) & 255]; return this.advances[Skills.charToByteCp1252(var1) & 255];
} }
@ObfuscatedName("m") @ObfuscatedName("k")
@Export("stringWidth") @Export("stringWidth")
public int stringWidth(String var1) { public int stringWidth(String var1) {
if (var1 == null) { if (var1 == null) {
@@ -238,7 +238,7 @@ public abstract class AbstractFont extends Rasterizer2D {
if (!var7.equals("gt")) { if (!var7.equals("gt")) {
if (var7.startsWith("img=")) { if (var7.startsWith("img=")) {
try { try {
int var8 = ClientPreferences.parseInt(var7.substring(4)); int var8 = SoundCache.parseInt(var7.substring(4));
var4 += AbstractFont_modIconSprites[var8].width; var4 += AbstractFont_modIconSprites[var8].width;
var3 = -1; var3 = -1;
} catch (Exception var10) { } catch (Exception var10) {
@@ -256,7 +256,7 @@ public abstract class AbstractFont extends Rasterizer2D {
} }
if (var2 == -1) { if (var2 == -1) {
var4 += this.advances[(char)(WorldMapData_1.charToByteCp1252(var6) & 255)]; var4 += this.advances[(char)(Skills.charToByteCp1252(var6) & 255)];
if (this.kerning != null && var3 != -1) { if (this.kerning != null && var3 != -1) {
var4 += this.kerning[var6 + (var3 << 8)]; var4 += this.kerning[var6 + (var3 << 8)];
} }
@@ -270,7 +270,7 @@ public abstract class AbstractFont extends Rasterizer2D {
} }
} }
@ObfuscatedName("p") @ObfuscatedName("x")
@Export("breakLines") @Export("breakLines")
public int breakLines(String var1, int[] var2, String[] var3) { public int breakLines(String var1, int[] var2, String[] var3) {
if (var1 == null) { if (var1 == null) {
@@ -321,7 +321,7 @@ public abstract class AbstractFont extends Rasterizer2D {
var11 = '>'; var11 = '>';
} else if (var16.startsWith("img=")) { } else if (var16.startsWith("img=")) {
try { try {
int var17 = ClientPreferences.parseInt(var16.substring(4)); int var17 = SoundCache.parseInt(var16.substring(4));
var4 += AbstractFont_modIconSprites[var17].width; var4 += AbstractFont_modIconSprites[var17].width;
var11 = 0; var11 = 0;
} catch (Exception var20) { } catch (Exception var20) {
@@ -375,7 +375,7 @@ public abstract class AbstractFont extends Rasterizer2D {
} }
} }
@ObfuscatedName("h") @ObfuscatedName("o")
@Export("lineWidth") @Export("lineWidth")
public int lineWidth(String var1, int var2) { public int lineWidth(String var1, int var2) {
int var3 = this.breakLines(var1, new int[]{var2}, AbstractFont_lines); int var3 = this.breakLines(var1, new int[]{var2}, AbstractFont_lines);
@@ -391,13 +391,13 @@ public abstract class AbstractFont extends Rasterizer2D {
return var4; return var4;
} }
@ObfuscatedName("k") @ObfuscatedName("e")
@Export("lineCount") @Export("lineCount")
public int lineCount(String var1, int var2) { public int lineCount(String var1, int var2) {
return this.breakLines(var1, new int[]{var2}, AbstractFont_lines); return this.breakLines(var1, new int[]{var2}, AbstractFont_lines);
} }
@ObfuscatedName("j") @ObfuscatedName("c")
@Export("draw") @Export("draw")
public void draw(String var1, int var2, int var3, int var4, int var5) { public void draw(String var1, int var2, int var3, int var4, int var5) {
if (var1 != null) { if (var1 != null) {
@@ -406,7 +406,7 @@ public abstract class AbstractFont extends Rasterizer2D {
} }
} }
@ObfuscatedName("r") @ObfuscatedName("s")
@Export("drawAlpha") @Export("drawAlpha")
public void drawAlpha(String var1, int var2, int var3, int var4, int var5, int var6) { public void drawAlpha(String var1, int var2, int var3, int var4, int var5, int var6) {
if (var1 != null) { if (var1 != null) {
@@ -416,7 +416,7 @@ public abstract class AbstractFont extends Rasterizer2D {
} }
} }
@ObfuscatedName("e") @ObfuscatedName("t")
@Export("drawRightAligned") @Export("drawRightAligned")
public void drawRightAligned(String var1, int var2, int var3, int var4, int var5) { public void drawRightAligned(String var1, int var2, int var3, int var4, int var5) {
if (var1 != null) { if (var1 != null) {
@@ -425,7 +425,7 @@ public abstract class AbstractFont extends Rasterizer2D {
} }
} }
@ObfuscatedName("s") @ObfuscatedName("m")
@Export("drawCentered") @Export("drawCentered")
public void drawCentered(String var1, int var2, int var3, int var4, int var5) { public void drawCentered(String var1, int var2, int var3, int var4, int var5) {
if (var1 != null) { if (var1 != null) {
@@ -434,7 +434,7 @@ public abstract class AbstractFont extends Rasterizer2D {
} }
} }
@ObfuscatedName("b") @ObfuscatedName("v")
@Export("drawLines") @Export("drawLines")
public int drawLines(String var1, int var2, int var3, int var4, int var5, int var6, int var7, int var8, int var9, int var10) { public int drawLines(String var1, int var2, int var3, int var4, int var5, int var6, int var7, int var8, int var9, int var10) {
if (var1 == null) { if (var1 == null) {
@@ -495,7 +495,7 @@ public abstract class AbstractFont extends Rasterizer2D {
} }
} }
@ObfuscatedName("w") @ObfuscatedName("q")
@Export("drawCenteredWave") @Export("drawCenteredWave")
public void drawCenteredWave(String var1, int var2, int var3, int var4, int var5, int var6) { public void drawCenteredWave(String var1, int var2, int var3, int var4, int var5, int var6) {
if (var1 != null) { if (var1 != null) {
@@ -510,7 +510,7 @@ public abstract class AbstractFont extends Rasterizer2D {
} }
} }
@ObfuscatedName("u") @ObfuscatedName("l")
@Export("drawCenteredWave2") @Export("drawCenteredWave2")
public void drawCenteredWave2(String var1, int var2, int var3, int var4, int var5, int var6) { public void drawCenteredWave2(String var1, int var2, int var3, int var4, int var5, int var6) {
if (var1 != null) { if (var1 != null) {
@@ -527,7 +527,7 @@ public abstract class AbstractFont extends Rasterizer2D {
} }
} }
@ObfuscatedName("ad") @ObfuscatedName("j")
@Export("drawCenteredShake") @Export("drawCenteredShake")
public void drawCenteredShake(String var1, int var2, int var3, int var4, int var5, int var6, int var7) { public void drawCenteredShake(String var1, int var2, int var3, int var4, int var5, int var6, int var7) {
if (var1 != null) { if (var1 != null) {
@@ -547,7 +547,7 @@ public abstract class AbstractFont extends Rasterizer2D {
} }
} }
@ObfuscatedName("ag") @ObfuscatedName("ad")
@Export("drawRandomAlphaAndSpacing") @Export("drawRandomAlphaAndSpacing")
public void drawRandomAlphaAndSpacing(String var1, int var2, int var3, int var4, int var5, int var6) { public void drawRandomAlphaAndSpacing(String var1, int var2, int var3, int var4, int var5, int var6) {
if (var1 != null) { if (var1 != null) {
@@ -568,7 +568,7 @@ public abstract class AbstractFont extends Rasterizer2D {
} }
} }
@ObfuscatedName("ak") @ObfuscatedName("am")
@Export("reset") @Export("reset")
void reset(int var1, int var2) { void reset(int var1, int var2) {
AbstractFont_strike = -1; AbstractFont_strike = -1;
@@ -582,7 +582,7 @@ public abstract class AbstractFont extends Rasterizer2D {
AbstractFont_justificationCurrent = 0; AbstractFont_justificationCurrent = 0;
} }
@ObfuscatedName("av") @ObfuscatedName("ai")
@Export("decodeTag") @Export("decodeTag")
void decodeTag(String var1) { void decodeTag(String var1) {
try { try {
@@ -590,13 +590,13 @@ public abstract class AbstractFont extends Rasterizer2D {
String var3; String var3;
if (var1.startsWith("col=")) { if (var1.startsWith("col=")) {
var3 = var1.substring(4); var3 = var1.substring(4);
var2 = class192.parseIntCustomRadix(var3, 16, true); var2 = UserComparator8.parseIntCustomRadix(var3, 16, true);
AbstractFont_color = var2; AbstractFont_color = var2;
} else if (var1.equals("/col")) { } else if (var1.equals("/col")) {
AbstractFont_color = AbstractFont_previousColor; AbstractFont_color = AbstractFont_previousColor;
} else if (var1.startsWith("str=")) { } else if (var1.startsWith("str=")) {
var3 = var1.substring(4); var3 = var1.substring(4);
var2 = class192.parseIntCustomRadix(var3, 16, true); var2 = UserComparator8.parseIntCustomRadix(var3, 16, true);
AbstractFont_strike = var2; AbstractFont_strike = var2;
} else if (var1.equals("str")) { } else if (var1.equals("str")) {
AbstractFont_strike = 8388608; AbstractFont_strike = 8388608;
@@ -604,7 +604,7 @@ public abstract class AbstractFont extends Rasterizer2D {
AbstractFont_strike = -1; AbstractFont_strike = -1;
} else if (var1.startsWith("u=")) { } else if (var1.startsWith("u=")) {
var3 = var1.substring(2); var3 = var1.substring(2);
var2 = class192.parseIntCustomRadix(var3, 16, true); var2 = UserComparator8.parseIntCustomRadix(var3, 16, true);
AbstractFont_underline = var2; AbstractFont_underline = var2;
} else if (var1.equals("u")) { } else if (var1.equals("u")) {
AbstractFont_underline = 0; AbstractFont_underline = 0;
@@ -612,7 +612,7 @@ public abstract class AbstractFont extends Rasterizer2D {
AbstractFont_underline = -1; AbstractFont_underline = -1;
} else if (var1.startsWith("shad=")) { } else if (var1.startsWith("shad=")) {
var3 = var1.substring(5); var3 = var1.substring(5);
var2 = class192.parseIntCustomRadix(var3, 16, true); var2 = UserComparator8.parseIntCustomRadix(var3, 16, true);
AbstractFont_shadow = var2; AbstractFont_shadow = var2;
} else if (var1.equals("shad")) { } else if (var1.equals("shad")) {
AbstractFont_shadow = 0; AbstractFont_shadow = 0;
@@ -626,7 +626,7 @@ public abstract class AbstractFont extends Rasterizer2D {
} }
@ObfuscatedName("am") @ObfuscatedName("ag")
@Export("calculateLineJustification") @Export("calculateLineJustification")
void calculateLineJustification(String var1, int var2) { void calculateLineJustification(String var1, int var2) {
int var3 = 0; int var3 = 0;
@@ -649,7 +649,7 @@ public abstract class AbstractFont extends Rasterizer2D {
} }
@ObfuscatedName("ab") @ObfuscatedName("ao")
@Export("draw0") @Export("draw0")
void draw0(String var1, int var2, int var3) { void draw0(String var1, int var2, int var3) {
var3 -= this.ascent; var3 -= this.ascent;
@@ -658,7 +658,7 @@ public abstract class AbstractFont extends Rasterizer2D {
for (int var6 = 0; var6 < var1.length(); ++var6) { for (int var6 = 0; var6 < var1.length(); ++var6) {
if (var1.charAt(var6) != 0) { if (var1.charAt(var6) != 0) {
char var7 = (char)(WorldMapData_1.charToByteCp1252(var1.charAt(var6)) & 255); char var7 = (char)(Skills.charToByteCp1252(var1.charAt(var6)) & 255);
if (var7 == '<') { if (var7 == '<') {
var4 = var6; var4 = var6;
} else { } else {
@@ -672,7 +672,7 @@ public abstract class AbstractFont extends Rasterizer2D {
if (!var8.equals("gt")) { if (!var8.equals("gt")) {
if (var8.startsWith("img=")) { if (var8.startsWith("img=")) {
try { try {
var9 = ClientPreferences.parseInt(var8.substring(4)); var9 = SoundCache.parseInt(var8.substring(4));
IndexedSprite var10 = AbstractFont_modIconSprites[var9]; IndexedSprite var10 = AbstractFont_modIconSprites[var9];
var10.drawAt(var2, var3 + this.ascent - var10.height); var10.drawAt(var2, var3 + this.ascent - var10.height);
var2 += var10.width; var2 += var10.width;
@@ -738,7 +738,7 @@ public abstract class AbstractFont extends Rasterizer2D {
} }
@ObfuscatedName("ax") @ObfuscatedName("aw")
@Export("drawWithOffsets0") @Export("drawWithOffsets0")
void drawWithOffsets0(String var1, int var2, int var3, int[] var4, int[] var5) { void drawWithOffsets0(String var1, int var2, int var3, int[] var4, int[] var5) {
var3 -= this.ascent; var3 -= this.ascent;
@@ -748,7 +748,7 @@ public abstract class AbstractFont extends Rasterizer2D {
for (int var9 = 0; var9 < var1.length(); ++var9) { for (int var9 = 0; var9 < var1.length(); ++var9) {
if (var1.charAt(var9) != 0) { if (var1.charAt(var9) != 0) {
char var10 = (char)(WorldMapData_1.charToByteCp1252(var1.charAt(var9)) & 255); char var10 = (char)(Skills.charToByteCp1252(var1.charAt(var9)) & 255);
if (var10 == '<') { if (var10 == '<') {
var6 = var9; var6 = var9;
} else { } else {
@@ -777,7 +777,7 @@ public abstract class AbstractFont extends Rasterizer2D {
} }
++var8; ++var8;
var14 = ClientPreferences.parseInt(var11.substring(4)); var14 = SoundCache.parseInt(var11.substring(4));
IndexedSprite var15 = AbstractFont_modIconSprites[var14]; IndexedSprite var15 = AbstractFont_modIconSprites[var14];
var15.drawAt(var12 + var2, var13 + (var3 + this.ascent - var15.height)); var15.drawAt(var12 + var2, var13 + (var3 + this.ascent - var15.height));
var2 += var15.width; var2 += var15.width;
@@ -856,8 +856,8 @@ public abstract class AbstractFont extends Rasterizer2D {
} }
@ObfuscatedName("i") @ObfuscatedName("w")
static int method5506(byte[][] var0, byte[][] var1, int[] var2, int[] var3, int[] var4, int var5, int var6) { static int method5442(byte[][] var0, byte[][] var1, int[] var2, int[] var3, int[] var4, int var5, int var6) {
int var7 = var2[var5]; int var7 = var2[var5];
int var8 = var7 + var4[var5]; int var8 = var7 + var4[var5];
int var9 = var2[var6]; int var9 = var2[var6];
@@ -892,7 +892,7 @@ public abstract class AbstractFont extends Rasterizer2D {
return -var13; return -var13;
} }
@ObfuscatedName("x") @ObfuscatedName("n")
@Export("escapeBrackets") @Export("escapeBrackets")
public static String escapeBrackets(String var0) { public static String escapeBrackets(String var0) {
int var1 = var0.length(); int var1 = var0.length();
@@ -921,7 +921,7 @@ public abstract class AbstractFont extends Rasterizer2D {
return var6.toString(); return var6.toString();
} }
@ObfuscatedName("al") @ObfuscatedName("ak")
@Export("AbstractFont_drawGlyph") @Export("AbstractFont_drawGlyph")
static void AbstractFont_drawGlyph(byte[] var0, int var1, int var2, int var3, int var4, int var5) { static void AbstractFont_drawGlyph(byte[] var0, int var1, int var2, int var3, int var4, int var5) {
int var6 = var1 + var2 * Rasterizer2D.Rasterizer2D_width; int var6 = var1 + var2 * Rasterizer2D.Rasterizer2D_width;
@@ -963,7 +963,7 @@ public abstract class AbstractFont extends Rasterizer2D {
} }
} }
@ObfuscatedName("ap") @ObfuscatedName("aa")
@Export("AbstractFont_placeGlyph") @Export("AbstractFont_placeGlyph")
static void AbstractFont_placeGlyph(int[] var0, byte[] var1, int var2, int var3, int var4, int var5, int var6, int var7, int var8) { static void AbstractFont_placeGlyph(int[] var0, byte[] var1, int var2, int var3, int var4, int var5, int var6, int var7, int var8) {
int var9 = -(var5 >> 2); int var9 = -(var5 >> 2);
@@ -1011,7 +1011,7 @@ public abstract class AbstractFont extends Rasterizer2D {
} }
@ObfuscatedName("aj") @ObfuscatedName("ab")
@Export("AbstractFont_drawGlyphAlpha") @Export("AbstractFont_drawGlyphAlpha")
static void AbstractFont_drawGlyphAlpha(byte[] var0, int var1, int var2, int var3, int var4, int var5, int var6) { static void AbstractFont_drawGlyphAlpha(byte[] var0, int var1, int var2, int var3, int var4, int var5, int var6) {
int var7 = var1 + var2 * Rasterizer2D.Rasterizer2D_width; int var7 = var1 + var2 * Rasterizer2D.Rasterizer2D_width;
@@ -1053,7 +1053,7 @@ public abstract class AbstractFont extends Rasterizer2D {
} }
} }
@ObfuscatedName("ae") @ObfuscatedName("ar")
@Export("AbstractFont_placeGlyphAlpha") @Export("AbstractFont_placeGlyphAlpha")
static void AbstractFont_placeGlyphAlpha(int[] var0, byte[] var1, int var2, int var3, int var4, int var5, int var6, int var7, int var8, int var9) { static void AbstractFont_placeGlyphAlpha(int[] var0, byte[] var1, int var2, int var3, int var4, int var5, int var6, int var7, int var8, int var9) {
var2 = ((var2 & 65280) * var9 & 16711680) + (var9 * (var2 & 16711935) & -16711936) >> 8; var2 = ((var2 & 65280) * var9 & 16711680) + (var9 * (var2 & 16711935) & -16711936) >> 8;
@@ -4,21 +4,21 @@ import net.runelite.mapping.ObfuscatedGetter;
import net.runelite.mapping.ObfuscatedName; import net.runelite.mapping.ObfuscatedName;
import net.runelite.mapping.ObfuscatedSignature; import net.runelite.mapping.ObfuscatedSignature;
@ObfuscatedName("lu") @ObfuscatedName("lp")
@Implements("AbstractRasterProvider") @Implements("AbstractRasterProvider")
public abstract class AbstractRasterProvider { public abstract class AbstractRasterProvider {
@ObfuscatedName("n") @ObfuscatedName("b")
@Export("pixels") @Export("pixels")
public int[] pixels; public int[] pixels;
@ObfuscatedName("q") @ObfuscatedName("g")
@ObfuscatedGetter( @ObfuscatedGetter(
intValue = -1627177537 intValue = 1041400109
) )
@Export("width") @Export("width")
public int width; public int width;
@ObfuscatedName("v") @ObfuscatedName("z")
@ObfuscatedGetter( @ObfuscatedGetter(
intValue = -594636233 intValue = -854439651
) )
@Export("height") @Export("height")
public int height; public int height;
@@ -26,26 +26,26 @@ public abstract class AbstractRasterProvider {
protected AbstractRasterProvider() { protected AbstractRasterProvider() {
} }
@ObfuscatedName("t") @ObfuscatedName("f")
@ObfuscatedSignature( @ObfuscatedSignature(
signature = "(IIB)V", signature = "(IIB)V",
garbageValue = "3" garbageValue = "0"
) )
@Export("drawFull") @Export("drawFull")
public abstract void drawFull(int var1, int var2); public abstract void drawFull(int var1, int var2);
@ObfuscatedName("n") @ObfuscatedName("b")
@ObfuscatedSignature( @ObfuscatedSignature(
signature = "(IIIII)V", signature = "(IIIII)V",
garbageValue = "-2086134046" garbageValue = "-787999204"
) )
@Export("draw") @Export("draw")
public abstract void draw(int var1, int var2, int var3, int var4); public abstract void draw(int var1, int var2, int var3, int var4);
@ObfuscatedName("s") @ObfuscatedName("t")
@ObfuscatedSignature( @ObfuscatedSignature(
signature = "(I)V", signature = "(S)V",
garbageValue = "-2129049965" garbageValue = "-30907"
) )
@Export("apply") @Export("apply")
public final void apply() { public final void apply() {
@@ -4,684 +4,57 @@ import net.runelite.mapping.Implements;
import net.runelite.mapping.ObfuscatedName; import net.runelite.mapping.ObfuscatedName;
import net.runelite.mapping.ObfuscatedSignature; import net.runelite.mapping.ObfuscatedSignature;
@ObfuscatedName("ku") @ObfuscatedName("kn")
@Implements("AbstractSocket") @Implements("AbstractSocket")
public abstract class AbstractSocket { public abstract class AbstractSocket {
protected AbstractSocket() { protected AbstractSocket() {
} }
@ObfuscatedName("a") @ObfuscatedName("u")
@ObfuscatedSignature( @ObfuscatedSignature(
signature = "(I)V", signature = "(B)V",
garbageValue = "1632517280" garbageValue = "-29"
) )
@Export("close") @Export("close")
public abstract void close(); public abstract void close();
@ObfuscatedName("t") @ObfuscatedName("f")
@ObfuscatedSignature( @ObfuscatedSignature(
signature = "(B)I", signature = "(B)I",
garbageValue = "0" garbageValue = "27"
) )
@Export("readUnsignedByte") @Export("readUnsignedByte")
public abstract int readUnsignedByte() throws IOException; public abstract int readUnsignedByte() throws IOException;
@ObfuscatedName("n") @ObfuscatedName("b")
@ObfuscatedSignature( @ObfuscatedSignature(
signature = "(B)I", signature = "(B)I",
garbageValue = "-1" garbageValue = "-53"
) )
@Export("available") @Export("available")
public abstract int available() throws IOException; public abstract int available() throws IOException;
@ObfuscatedName("q") @ObfuscatedName("g")
@ObfuscatedSignature( @ObfuscatedSignature(
signature = "(II)Z", signature = "(II)Z",
garbageValue = "1174929907" garbageValue = "-1591428004"
) )
@Export("isAvailable") @Export("isAvailable")
public abstract boolean isAvailable(int var1) throws IOException; public abstract boolean isAvailable(int var1) throws IOException;
@ObfuscatedName("v") @ObfuscatedName("z")
@ObfuscatedSignature( @ObfuscatedSignature(
signature = "([BIII)I", signature = "([BIIB)I",
garbageValue = "1681485484" garbageValue = "29"
) )
@Export("read") @Export("read")
public abstract int read(byte[] var1, int var2, int var3) throws IOException; public abstract int read(byte[] var1, int var2, int var3) throws IOException;
@ObfuscatedName("c") @ObfuscatedName("h")
@ObfuscatedSignature( @ObfuscatedSignature(
signature = "([BIII)V", signature = "([BIII)V",
garbageValue = "1989353375" garbageValue = "-543253817"
) )
@Export("write") @Export("write")
public abstract void write(byte[] var1, int var2, int var3) throws IOException; public abstract void write(byte[] var1, int var2, int var3) throws IOException;
@ObfuscatedName("hj")
@ObfuscatedSignature(
signature = "(Lbz;IIIIII)V",
garbageValue = "-453340900"
)
@Export("drawActor2d")
static final void drawActor2d(Actor var0, int var1, int var2, int var3, int var4, int var5) {
if (var0 != null && var0.isVisible()) {
if (var0 instanceof NPC) {
NPCDefinition var6 = ((NPC)var0).definition;
if (var6.transforms != null) {
var6 = var6.transform();
}
if (var6 == null) {
return;
}
}
int var75 = Players.Players_count;
int[] var7 = Players.Players_indices;
byte var8 = 0;
Player var10;
if (var1 < var75 && var0.playerCycle == Client.cycle) {
var10 = (Player)var0;
boolean var9;
if (Client.drawPlayerNames == 0) {
var9 = false;
} else {
boolean var77;
if (var10 != class215.localPlayer) {
var77 = (Client.drawPlayerNames & 4) != 0;
boolean var78 = var77;
boolean var13;
if (!var77) {
var13 = (Client.drawPlayerNames & 1) != 0;
var78 = var13 && var10.isFriend();
}
var13 = var78;
if (!var78) {
boolean var79 = (Client.drawPlayerNames & 2) != 0;
var13 = var79 && var10.isClanMember();
}
var9 = var13;
} else {
var77 = (Client.drawPlayerNames & 8) != 0;
var9 = var77;
}
}
if (var9) {
Player var11 = (Player)var0;
if (var1 < var75) {
Entity.getActorScreenLocation(var0, var0.defaultHeight + 15);
AbstractFont var12 = (AbstractFont)Client.fontsMap.get(FontName.FontName_plain12);
byte var92 = 9;
var12.drawCentered(var11.username.getName(), var2 + Client.viewportTempX, var3 + Client.viewportTempY - var92, 16777215, 0);
var8 = 18;
}
}
}
int var87 = -2;
int var15;
int var22;
int var23;
if (!var0.healthBars.method5004()) {
Entity.getActorScreenLocation(var0, var0.defaultHeight + 15);
for (HealthBar var88 = (HealthBar)var0.healthBars.last(); var88 != null; var88 = (HealthBar)var0.healthBars.previous()) {
HealthBarUpdate var89 = var88.get(Client.cycle);
if (var89 == null) {
if (var88.isEmpty()) {
var88.remove();
}
} else {
HealthBarDefinition var91 = var88.definition;
Sprite var76 = var91.getBackSprite();
Sprite var14 = var91.getFrontSprite();
int var16 = 0;
if (var76 != null && var14 != null) {
if (var91.widthPadding * 2 < var14.subWidth) {
var16 = var91.widthPadding;
}
var15 = var14.subWidth - var16 * 2;
} else {
var15 = var91.width;
}
int var17 = 255;
boolean var18 = true;
int var19 = Client.cycle - var89.cycle;
int var20 = var15 * var89.health2 / var91.width;
int var21;
int var93;
if (var89.cycleOffset > var19) {
var21 = var91.int4 == 0 ? 0 : var91.int4 * (var19 / var91.int4);
var22 = var15 * var89.health / var91.width;
var93 = var21 * (var20 - var22) / var89.cycleOffset + var22;
} else {
var93 = var20;
var21 = var89.cycleOffset + var91.int5 - var19;
if (var91.int3 >= 0) {
var17 = (var21 << 8) / (var91.int5 - var91.int3);
}
}
if (var89.health2 > 0 && var93 < 1) {
var93 = 1;
}
if (var76 != null && var14 != null) {
if (var93 == var15) {
var93 += var16 * 2;
} else {
var93 += var16;
}
var21 = var76.subHeight;
var87 += var21;
var22 = var2 + Client.viewportTempX - (var15 >> 1);
var23 = var3 + Client.viewportTempY - var87;
var22 -= var16;
if (var17 >= 0 && var17 < 255) {
var76.drawTransAt(var22, var23, var17);
Rasterizer2D.Rasterizer2D_expandClip(var22, var23, var93 + var22, var23 + var21);
var14.drawTransAt(var22, var23, var17);
} else {
var76.drawTransBgAt(var22, var23);
Rasterizer2D.Rasterizer2D_expandClip(var22, var23, var22 + var93, var21 + var23);
var14.drawTransBgAt(var22, var23);
}
Rasterizer2D.Rasterizer2D_setClip(var2, var3, var2 + var4, var3 + var5);
var87 += 2;
} else {
var87 += 5;
if (Client.viewportTempX > -1) {
var21 = var2 + Client.viewportTempX - (var15 >> 1);
var22 = var3 + Client.viewportTempY - var87;
Rasterizer2D.Rasterizer2D_fillRectangle(var21, var22, var93, 5, 65280);
Rasterizer2D.Rasterizer2D_fillRectangle(var93 + var21, var22, var15 - var93, 5, 16711680);
}
var87 += 2;
}
}
}
}
if (var87 == -2) {
var87 += 7;
}
var87 += var8;
if (var1 < var75) {
var10 = (Player)var0;
if (var10.isHidden) {
return;
}
if (var10.headIconPk != -1 || var10.headIconPrayer != -1) {
Entity.getActorScreenLocation(var0, var0.defaultHeight + 15);
if (Client.viewportTempX > -1) {
if (var10.headIconPk != -1) {
var87 += 25;
FriendLoginUpdate.headIconPkSprites[var10.headIconPk].drawTransBgAt(var2 + Client.viewportTempX - 12, var3 + Client.viewportTempY - var87);
}
if (var10.headIconPrayer != -1) {
var87 += 25;
Login.headIconPrayerSprites[var10.headIconPrayer].drawTransBgAt(var2 + Client.viewportTempX - 12, var3 + Client.viewportTempY - var87);
}
}
}
if (var1 >= 0 && Client.hintArrowType == 10 && var7[var1] == Client.hintArrowPlayerIndex) {
Entity.getActorScreenLocation(var0, var0.defaultHeight + 15);
if (Client.viewportTempX > -1) {
var87 += class14.headIconHintSprites[1].subHeight;
class14.headIconHintSprites[1].drawTransBgAt(var2 + Client.viewportTempX - 12, var3 + Client.viewportTempY - var87);
}
}
} else {
NPCDefinition var90 = ((NPC)var0).definition;
if (var90.transforms != null) {
var90 = var90.transform();
}
if (var90.headIconPrayer >= 0 && var90.headIconPrayer < Login.headIconPrayerSprites.length) {
Entity.getActorScreenLocation(var0, var0.defaultHeight + 15);
if (Client.viewportTempX > -1) {
Login.headIconPrayerSprites[var90.headIconPrayer].drawTransBgAt(var2 + Client.viewportTempX - 12, var3 + Client.viewportTempY - 30);
}
}
if (Client.hintArrowType == 1 && Client.npcIndices[var1 - var75] == Client.hintArrowNpcIndex && Client.cycle % 20 < 10) {
Entity.getActorScreenLocation(var0, var0.defaultHeight + 15);
if (Client.viewportTempX > -1) {
class14.headIconHintSprites[0].drawTransBgAt(var2 + Client.viewportTempX - 12, var3 + Client.viewportTempY - 28);
}
}
}
if (var0.overheadText != null && (var1 >= var75 || !var0.field939 && (Client.publicChatMode == 4 || !var0.isAutoChatting && (Client.publicChatMode == 0 || Client.publicChatMode == 3 || Client.publicChatMode == 1 && ((Player)var0).isFriend())))) {
Entity.getActorScreenLocation(var0, var0.defaultHeight);
if (Client.viewportTempX > -1 && Client.overheadTextCount < Client.overheadTextLimit) {
Client.overheadTextXOffsets[Client.overheadTextCount] = class43.fontBold12.stringWidth(var0.overheadText) / 2;
Client.overheadTextAscents[Client.overheadTextCount] = class43.fontBold12.ascent;
Client.overheadTextXs[Client.overheadTextCount] = Client.viewportTempX;
Client.overheadTextYs[Client.overheadTextCount] = Client.viewportTempY;
Client.overheadTextColors[Client.overheadTextCount] = var0.overheadTextColor;
Client.overheadTextEffects[Client.overheadTextCount] = var0.overheadTextEffect;
Client.overheadTextCyclesRemaining[Client.overheadTextCount] = var0.overheadTextCyclesRemaining;
Client.overheadText[Client.overheadTextCount] = var0.overheadText;
++Client.overheadTextCount;
}
}
for (int var80 = 0; var80 < 4; ++var80) {
int var96 = var0.hitSplatCycles[var80];
int var97 = var0.hitSplatTypes[var80];
HitSplatDefinition var95 = null;
int var98 = 0;
if (var97 >= 0) {
if (var96 <= Client.cycle) {
continue;
}
var95 = NetFileRequest.method4298(var0.hitSplatTypes[var80]);
var98 = var95.field3314;
if (var95 != null && var95.transforms != null) {
var95 = var95.transform();
if (var95 == null) {
var0.hitSplatCycles[var80] = -1;
continue;
}
}
} else if (var96 < 0) {
continue;
}
var15 = var0.hitSplatTypes2[var80];
HitSplatDefinition var81 = null;
if (var15 >= 0) {
var81 = NetFileRequest.method4298(var15);
if (var81 != null && var81.transforms != null) {
var81 = var81.transform();
}
}
if (var96 - var98 <= Client.cycle) {
if (var95 == null) {
var0.hitSplatCycles[var80] = -1;
} else {
Entity.getActorScreenLocation(var0, var0.defaultHeight / 2);
if (Client.viewportTempX > -1) {
if (var80 == 1) {
Client.viewportTempY -= 20;
}
if (var80 == 2) {
Client.viewportTempX -= 15;
Client.viewportTempY -= 10;
}
if (var80 == 3) {
Client.viewportTempX += 15;
Client.viewportTempY -= 10;
}
Sprite var82 = null;
Sprite var83 = null;
Sprite var84 = null;
Sprite var85 = null;
var22 = 0;
var23 = 0;
int var24 = 0;
int var25 = 0;
int var26 = 0;
int var27 = 0;
int var28 = 0;
int var29 = 0;
Sprite var30 = null;
Sprite var31 = null;
Sprite var32 = null;
Sprite var33 = null;
int var34 = 0;
int var35 = 0;
int var36 = 0;
int var37 = 0;
int var38 = 0;
int var39 = 0;
int var40 = 0;
int var41 = 0;
int var42 = 0;
var82 = var95.method4719();
int var43;
if (var82 != null) {
var22 = var82.subWidth;
var43 = var82.subHeight;
if (var43 > var42) {
var42 = var43;
}
var26 = var82.xOffset;
}
var83 = var95.method4709();
if (var83 != null) {
var23 = var83.subWidth;
var43 = var83.subHeight;
if (var43 > var42) {
var42 = var43;
}
var27 = var83.xOffset;
}
var84 = var95.method4710();
if (var84 != null) {
var24 = var84.subWidth;
var43 = var84.subHeight;
if (var43 > var42) {
var42 = var43;
}
var28 = var84.xOffset;
}
var85 = var95.method4731();
if (var85 != null) {
var25 = var85.subWidth;
var43 = var85.subHeight;
if (var43 > var42) {
var42 = var43;
}
var29 = var85.xOffset;
}
if (var81 != null) {
var30 = var81.method4719();
if (var30 != null) {
var34 = var30.subWidth;
var43 = var30.subHeight;
if (var43 > var42) {
var42 = var43;
}
var38 = var30.xOffset;
}
var31 = var81.method4709();
if (var31 != null) {
var35 = var31.subWidth;
var43 = var31.subHeight;
if (var43 > var42) {
var42 = var43;
}
var39 = var31.xOffset;
}
var32 = var81.method4710();
if (var32 != null) {
var36 = var32.subWidth;
var43 = var32.subHeight;
if (var43 > var42) {
var42 = var43;
}
var40 = var32.xOffset;
}
var33 = var81.method4731();
if (var33 != null) {
var37 = var33.subWidth;
var43 = var33.subHeight;
if (var43 > var42) {
var42 = var43;
}
var41 = var33.xOffset;
}
}
Font var86 = var95.getFont();
if (var86 == null) {
var86 = class51.fontPlain11;
}
Font var44;
if (var81 != null) {
var44 = var81.getFont();
if (var44 == null) {
var44 = class51.fontPlain11;
}
} else {
var44 = class51.fontPlain11;
}
String var45 = null;
String var46 = null;
boolean var47 = false;
int var48 = 0;
var45 = var95.getString(var0.hitSplatValues[var80]);
int var94 = var86.stringWidth(var45);
if (var81 != null) {
var46 = var81.getString(var0.hitSplatValues2[var80]);
var48 = var44.stringWidth(var46);
}
int var49 = 0;
int var50 = 0;
if (var23 > 0) {
if (var84 == null && var85 == null) {
var49 = 1;
} else {
var49 = var94 / var23 + 1;
}
}
if (var81 != null && var35 > 0) {
if (var32 == null && var33 == null) {
var50 = 1;
} else {
var50 = var48 / var35 + 1;
}
}
int var51 = 0;
int var52 = var51;
if (var22 > 0) {
var51 += var22;
}
var51 += 2;
int var53 = var51;
if (var24 > 0) {
var51 += var24;
}
int var54 = var51;
int var55 = var51;
int var56;
if (var23 > 0) {
var56 = var49 * var23;
var51 += var56;
var55 += (var56 - var94) / 2;
} else {
var51 += var94;
}
var56 = var51;
if (var25 > 0) {
var51 += var25;
}
int var57 = 0;
int var58 = 0;
int var59 = 0;
int var60 = 0;
int var61 = 0;
int var62;
if (var81 != null) {
var51 += 2;
var57 = var51;
if (var34 > 0) {
var51 += var34;
}
var51 += 2;
var58 = var51;
if (var36 > 0) {
var51 += var36;
}
var59 = var51;
var61 = var51;
if (var35 > 0) {
var62 = var35 * var50;
var51 += var62;
var61 += (var62 - var48) / 2;
} else {
var51 += var48;
}
var60 = var51;
if (var37 > 0) {
var51 += var37;
}
}
var62 = var0.hitSplatCycles[var80] - Client.cycle;
int var63 = var95.field3329 - var62 * var95.field3329 / var95.field3314;
int var64 = var62 * var95.field3315 / var95.field3314 + -var95.field3315;
int var65 = var63 + (var2 + Client.viewportTempX - (var51 >> 1));
int var66 = var3 + Client.viewportTempY - 12 + var64;
int var67 = var66;
int var68 = var42 + var66;
int var69 = var66 + var95.field3330 + 15;
int var70 = var69 - var86.maxAscent;
int var71 = var69 + var86.maxDescent;
if (var70 < var66) {
var67 = var70;
}
if (var71 > var68) {
var68 = var71;
}
int var72 = 0;
int var73;
int var74;
if (var81 != null) {
var72 = var66 + var81.field3330 + 15;
var73 = var72 - var44.maxAscent;
var74 = var72 + var44.maxDescent;
if (var73 < var67) {
;
}
if (var74 > var68) {
;
}
}
var73 = 255;
if (var95.field3327 >= 0) {
var73 = (var62 << 8) / (var95.field3314 - var95.field3327);
}
if (var73 >= 0 && var73 < 255) {
if (var82 != null) {
var82.drawTransAt(var52 + var65 - var26, var66, var73);
}
if (var84 != null) {
var84.drawTransAt(var65 + var53 - var28, var66, var73);
}
if (var83 != null) {
for (var74 = 0; var74 < var49; ++var74) {
var83.drawTransAt(var74 * var23 + (var65 + var54 - var27), var66, var73);
}
}
if (var85 != null) {
var85.drawTransAt(var65 + var56 - var29, var66, var73);
}
var86.drawAlpha(var45, var55 + var65, var69, var95.textColor, 0, var73);
if (var81 != null) {
if (var30 != null) {
var30.drawTransAt(var65 + var57 - var38, var66, var73);
}
if (var32 != null) {
var32.drawTransAt(var65 + var58 - var40, var66, var73);
}
if (var31 != null) {
for (var74 = 0; var74 < var50; ++var74) {
var31.drawTransAt(var35 * var74 + (var65 + var59 - var39), var66, var73);
}
}
if (var33 != null) {
var33.drawTransAt(var60 + var65 - var41, var66, var73);
}
var44.drawAlpha(var46, var65 + var61, var72, var81.textColor, 0, var73);
}
} else {
if (var82 != null) {
var82.drawTransBgAt(var65 + var52 - var26, var66);
}
if (var84 != null) {
var84.drawTransBgAt(var65 + var53 - var28, var66);
}
if (var83 != null) {
for (var74 = 0; var74 < var49; ++var74) {
var83.drawTransBgAt(var23 * var74 + (var65 + var54 - var27), var66);
}
}
if (var85 != null) {
var85.drawTransBgAt(var65 + var56 - var29, var66);
}
var86.draw(var45, var55 + var65, var69, var95.textColor | -16777216, 0);
if (var81 != null) {
if (var30 != null) {
var30.drawTransBgAt(var57 + var65 - var38, var66);
}
if (var32 != null) {
var32.drawTransBgAt(var58 + var65 - var40, var66);
}
if (var31 != null) {
for (var74 = 0; var74 < var50; ++var74) {
var31.drawTransBgAt(var74 * var35 + (var65 + var59 - var39), var66);
}
}
if (var33 != null) {
var33.drawTransBgAt(var60 + var65 - var41, var66);
}
var44.draw(var46, var65 + var61, var72, var81.textColor | -16777216, 0);
}
}
}
}
}
}
}
}
} }
@@ -2,10 +2,10 @@ import net.runelite.mapping.Export;
import net.runelite.mapping.Implements; import net.runelite.mapping.Implements;
import net.runelite.mapping.ObfuscatedName; import net.runelite.mapping.ObfuscatedName;
@ObfuscatedName("dg") @ObfuscatedName("dl")
@Implements("AbstractSound") @Implements("AbstractSound")
public abstract class AbstractSound extends Node { public abstract class AbstractSound extends Node {
@ObfuscatedName("l") @ObfuscatedName("p")
@Export("position") @Export("position")
int position; int position;
@@ -1,29 +1,23 @@
import java.util.Comparator; import java.util.Comparator;
import net.runelite.mapping.Export; import net.runelite.mapping.Export;
import net.runelite.mapping.Implements; import net.runelite.mapping.Implements;
import net.runelite.mapping.ObfuscatedGetter;
import net.runelite.mapping.ObfuscatedName; import net.runelite.mapping.ObfuscatedName;
import net.runelite.mapping.ObfuscatedSignature; import net.runelite.mapping.ObfuscatedSignature;
@ObfuscatedName("jr") @ObfuscatedName("jq")
@Implements("AbstractUserComparator") @Implements("AbstractUserComparator")
public abstract class AbstractUserComparator implements Comparator { public abstract class AbstractUserComparator implements Comparator {
@ObfuscatedName("rb") @ObfuscatedName("f")
@ObfuscatedGetter(
intValue = -1217958016
)
static int field3583;
@ObfuscatedName("t")
@Export("nextComparator") @Export("nextComparator")
Comparator nextComparator; Comparator nextComparator;
protected AbstractUserComparator() { protected AbstractUserComparator() {
} }
@ObfuscatedName("d") @ObfuscatedName("w")
@ObfuscatedSignature( @ObfuscatedSignature(
signature = "(Ljava/util/Comparator;B)V", signature = "(Ljava/util/Comparator;I)V",
garbageValue = "115" garbageValue = "314545919"
) )
@Export("addComparator") @Export("addComparator")
final void addComparator(Comparator var1) { final void addComparator(Comparator var1) {
@@ -35,10 +29,10 @@ public abstract class AbstractUserComparator implements Comparator {
} }
@ObfuscatedName("m") @ObfuscatedName("i")
@ObfuscatedSignature( @ObfuscatedSignature(
signature = "(Ljg;Ljg;B)I", signature = "(Ljr;Ljr;B)I",
garbageValue = "124" garbageValue = "14"
) )
@Export("compareUser") @Export("compareUser")
protected final int compareUser(User var1, User var2) { protected final int compareUser(User var1, User var2) {
@@ -5,114 +5,114 @@ import net.runelite.mapping.ObfuscatedGetter;
import net.runelite.mapping.ObfuscatedName; import net.runelite.mapping.ObfuscatedName;
import net.runelite.mapping.ObfuscatedSignature; import net.runelite.mapping.ObfuscatedSignature;
@ObfuscatedName("f") @ObfuscatedName("m")
@Implements("AbstractWorldMapData") @Implements("AbstractWorldMapData")
public abstract class AbstractWorldMapData { public abstract class AbstractWorldMapData {
@ObfuscatedName("ae") @ObfuscatedName("dl")
@ObfuscatedSignature( @ObfuscatedSignature(
signature = "Llu;" signature = "Lij;"
) )
@Export("rasterProvider") @Export("archive6")
public static AbstractRasterProvider rasterProvider; static Archive archive6;
@ObfuscatedName("a") @ObfuscatedName("u")
@ObfuscatedGetter( @ObfuscatedGetter(
intValue = 1032040448 intValue = 111975616
) )
@Export("regionXLow") @Export("regionXLow")
int regionXLow; int regionXLow;
@ObfuscatedName("t") @ObfuscatedName("f")
@ObfuscatedGetter( @ObfuscatedGetter(
intValue = 2012131328 intValue = 1782706176
) )
@Export("regionYLow") @Export("regionYLow")
int regionYLow; int regionYLow;
@ObfuscatedName("n") @ObfuscatedName("b")
@ObfuscatedGetter( @ObfuscatedGetter(
intValue = 1049638377 intValue = -577212613
) )
@Export("regionX") @Export("regionX")
int regionX; int regionX;
@ObfuscatedName("q") @ObfuscatedName("g")
@ObfuscatedGetter( @ObfuscatedGetter(
intValue = 548799015 intValue = -248705921
) )
@Export("regionY") @Export("regionY")
int regionY; int regionY;
@ObfuscatedName("v") @ObfuscatedName("z")
@ObfuscatedGetter( @ObfuscatedGetter(
intValue = 974666319 intValue = 1296595709
) )
@Export("minPlane") @Export("minPlane")
int minPlane; int minPlane;
@ObfuscatedName("l") @ObfuscatedName("p")
@ObfuscatedGetter( @ObfuscatedGetter(
intValue = 1744389767 intValue = 380384989
) )
@Export("planes") @Export("planes")
int planes; int planes;
@ObfuscatedName("c") @ObfuscatedName("h")
@ObfuscatedGetter( @ObfuscatedGetter(
intValue = -1592799997 intValue = -1445814981
) )
@Export("groupId") @Export("groupId")
int groupId; int groupId;
@ObfuscatedName("o") @ObfuscatedName("y")
@ObfuscatedGetter( @ObfuscatedGetter(
intValue = -1573333695 intValue = 1373242491
) )
@Export("fileId") @Export("fileId")
int fileId; int fileId;
@ObfuscatedName("i") @ObfuscatedName("w")
@Export("floorUnderlayIds") @Export("floorUnderlayIds")
short[][][] floorUnderlayIds; short[][][] floorUnderlayIds;
@ObfuscatedName("d") @ObfuscatedName("i")
@Export("floorOverlayIds") @Export("floorOverlayIds")
short[][][] floorOverlayIds; short[][][] floorOverlayIds;
@ObfuscatedName("m") @ObfuscatedName("k")
byte[][][] field161; byte[][][] field166;
@ObfuscatedName("p") @ObfuscatedName("x")
byte[][][] field157; byte[][][] field160;
@ObfuscatedName("h") @ObfuscatedName("o")
@ObfuscatedSignature( @ObfuscatedSignature(
signature = "[[[[Ly;" signature = "[[[[Lj;"
) )
@Export("decorations") @Export("decorations")
WorldMapDecoration[][][][] decorations; WorldMapDecoration[][][][] decorations;
@ObfuscatedName("k") @ObfuscatedName("e")
boolean field159; boolean field169;
@ObfuscatedName("x") @ObfuscatedName("n")
boolean field151; boolean field167;
AbstractWorldMapData() { AbstractWorldMapData() {
this.groupId = -1; this.groupId = -1;
this.fileId = -1; this.fileId = -1;
new LinkedList(); new LinkedList();
this.field159 = false; this.field169 = false;
this.field151 = false; this.field167 = false;
} }
@ObfuscatedName("t") @ObfuscatedName("f")
@ObfuscatedSignature( @ObfuscatedSignature(
signature = "(Lkc;I)V", signature = "(Lkg;B)V",
garbageValue = "1045041620" garbageValue = "35"
) )
@Export("readGeography") @Export("readGeography")
abstract void readGeography(Buffer var1); abstract void readGeography(Buffer var1);
@ObfuscatedName("i") @ObfuscatedName("p")
@ObfuscatedSignature( @ObfuscatedSignature(
signature = "(I)Z", signature = "(I)Z",
garbageValue = "-992891082" garbageValue = "-1722967008"
) )
@Export("isFullyLoaded") @Export("isFullyLoaded")
boolean isFullyLoaded() { boolean isFullyLoaded() {
return this.field159 && this.field151; return this.field169 && this.field167;
} }
@ObfuscatedName("d") @ObfuscatedName("h")
@ObfuscatedSignature( @ObfuscatedSignature(
signature = "(Lhq;I)V", signature = "(Lhf;I)V",
garbageValue = "126023316" garbageValue = "222528841"
) )
@Export("loadGeography") @Export("loadGeography")
void loadGeography(AbstractArchive var1) { void loadGeography(AbstractArchive var1) {
@@ -120,53 +120,53 @@ public abstract class AbstractWorldMapData {
byte[] var2 = var1.takeFile(this.groupId, this.fileId); byte[] var2 = var1.takeFile(this.groupId, this.fileId);
if (var2 != null) { if (var2 != null) {
this.readGeography(new Buffer(var2)); this.readGeography(new Buffer(var2));
this.field159 = true; this.field169 = true;
this.field151 = true; this.field167 = true;
} }
} }
} }
@ObfuscatedName("m") @ObfuscatedName("y")
@ObfuscatedSignature( @ObfuscatedSignature(
signature = "(B)V", signature = "(I)V",
garbageValue = "124" garbageValue = "1687680184"
) )
@Export("reset") @Export("reset")
void reset() { void reset() {
this.floorUnderlayIds = null; this.floorUnderlayIds = null;
this.floorOverlayIds = null; this.floorOverlayIds = null;
this.field161 = null; this.field166 = null;
this.field157 = null; this.field160 = null;
this.decorations = null; this.decorations = null;
this.field159 = false; this.field169 = false;
this.field151 = false; this.field167 = false;
} }
@ObfuscatedName("p") @ObfuscatedName("w")
@ObfuscatedSignature( @ObfuscatedSignature(
signature = "(IILkc;I)V", signature = "(IILkg;B)V",
garbageValue = "-2099963410" garbageValue = "3"
) )
@Export("readTile") @Export("readTile")
void readTile(int var1, int var2, Buffer var3) { void readTile(int var1, int var2, Buffer var3) {
int var4 = var3.readUnsignedByte(); int var4 = var3.readUnsignedByte();
if (var4 != 0) { if (var4 != 0) {
if ((var4 & 1) != 0) { if ((var4 & 1) != 0) {
this.method320(var1, var2, var3, var4); this.method278(var1, var2, var3, var4);
} else { } else {
this.method302(var1, var2, var3, var4); this.method279(var1, var2, var3, var4);
} }
} }
} }
@ObfuscatedName("h") @ObfuscatedName("i")
@ObfuscatedSignature( @ObfuscatedSignature(
signature = "(IILkc;IB)V", signature = "(IILkg;IB)V",
garbageValue = "-1" garbageValue = "92"
) )
void method320(int var1, int var2, Buffer var3, int var4) { void method278(int var1, int var2, Buffer var3, int var4) {
boolean var5 = (var4 & 2) != 0; boolean var5 = (var4 & 2) != 0;
if (var5) { if (var5) {
this.floorOverlayIds[0][var1][var2] = (short)var3.readUnsignedByte(); this.floorOverlayIds[0][var1][var2] = (short)var3.readUnsignedByte();
@@ -177,10 +177,10 @@ public abstract class AbstractWorldMapData {
@ObfuscatedName("k") @ObfuscatedName("k")
@ObfuscatedSignature( @ObfuscatedSignature(
signature = "(IILkc;IB)V", signature = "(IILkg;II)V",
garbageValue = "0" garbageValue = "1096070019"
) )
void method302(int var1, int var2, Buffer var3, int var4) { void method279(int var1, int var2, Buffer var3, int var4) {
int var5 = ((var4 & 24) >> 3) + 1; int var5 = ((var4 & 24) >> 3) + 1;
boolean var6 = (var4 & 2) != 0; boolean var6 = (var4 & 2) != 0;
boolean var7 = (var4 & 4) != 0; boolean var7 = (var4 & 4) != 0;
@@ -196,8 +196,8 @@ public abstract class AbstractWorldMapData {
if (var10 != 0) { if (var10 != 0) {
this.floorOverlayIds[var9][var1][var2] = (short)var10; this.floorOverlayIds[var9][var1][var2] = (short)var10;
var11 = var3.readUnsignedByte(); var11 = var3.readUnsignedByte();
this.field161[var9][var1][var2] = (byte)(var11 >> 2); this.field166[var9][var1][var2] = (byte)(var11 >> 2);
this.field157[var9][var1][var2] = (byte)(var11 & 3); this.field160[var9][var1][var2] = (byte)(var11 & 3);
} }
} }
} }
@@ -209,7 +209,7 @@ public abstract class AbstractWorldMapData {
WorldMapDecoration[] var14 = this.decorations[var8][var1][var2] = new WorldMapDecoration[var9]; WorldMapDecoration[] var14 = this.decorations[var8][var1][var2] = new WorldMapDecoration[var9];
for (var11 = 0; var11 < var9; ++var11) { for (var11 = 0; var11 < var9; ++var11) {
int var12 = var3.method5638(); int var12 = var3.method5618();
int var13 = var3.readUnsignedByte(); int var13 = var3.readUnsignedByte();
var14[var11] = new WorldMapDecoration(var12, var13 >> 2, var13 & 3); var14[var11] = new WorldMapDecoration(var12, var13 >> 2, var13 & 3);
} }
@@ -221,158 +221,54 @@ public abstract class AbstractWorldMapData {
@ObfuscatedName("x") @ObfuscatedName("x")
@ObfuscatedSignature( @ObfuscatedSignature(
signature = "(B)I", signature = "(I)I",
garbageValue = "80" garbageValue = "1505128614"
) )
@Export("getRegionX") @Export("getRegionX")
int getRegionX() { int getRegionX() {
return this.regionX; return this.regionX;
} }
@ObfuscatedName("j") @ObfuscatedName("o")
@ObfuscatedSignature( @ObfuscatedSignature(
signature = "(B)I", signature = "(B)I",
garbageValue = "84" garbageValue = "-8"
) )
@Export("getRegionY") @Export("getRegionY")
int getRegionY() { int getRegionY() {
return this.regionY; return this.regionY;
} }
@ObfuscatedName("t") @ObfuscatedName("u")
@ObfuscatedSignature( @ObfuscatedSignature(
signature = "(Ljava/lang/CharSequence;I)Z", signature = "(Ljava/lang/CharSequence;I)I",
garbageValue = "403966383" garbageValue = "493677830"
) )
@Export("isNumber") public static int method284(CharSequence var0) {
public static boolean isNumber(CharSequence var0) { int var1 = var0.length();
boolean var2 = false; int var2 = 0;
boolean var3 = false;
int var4 = 0;
int var5 = var0.length();
int var6 = 0;
boolean var1; for (int var3 = 0; var3 < var1; ++var3) {
while (true) { char var4 = var0.charAt(var3);
if (var6 >= var5) { if (var4 <= 127) {
var1 = var3; ++var2;
break; } else if (var4 <= 2047) {
} var2 += 2;
label81: {
char var7 = var0.charAt(var6);
if (var6 == 0) {
if (var7 == '-') {
var2 = true;
break label81;
}
if (var7 == '+') {
break label81;
}
}
int var9;
if (var7 >= '0' && var7 <= '9') {
var9 = var7 - '0';
} else if (var7 >= 'A' && var7 <= 'Z') {
var9 = var7 - '7';
} else { } else {
if (var7 < 'a' || var7 > 'z') { var2 += 3;
var1 = false; }
break;
} }
var9 = var7 - 'W'; return var2;
} }
if (var9 >= 10) { @ObfuscatedName("w")
var1 = false;
break;
}
if (var2) {
var9 = -var9;
}
int var8 = var4 * 10 + var9;
if (var4 != var8 / 10) {
var1 = false;
break;
}
var4 = var8;
var3 = true;
}
++var6;
}
return var1;
}
@ObfuscatedName("q")
@ObfuscatedSignature( @ObfuscatedSignature(
signature = "(II)Z", signature = "(CI)Z",
garbageValue = "693586906" garbageValue = "-858513722"
) )
public static boolean method327(int var0) { @Export("isDigit")
return (var0 >> 21 & 1) != 0; public static boolean isDigit(char var0) {
} return var0 >= '0' && var0 <= '9';
@ObfuscatedName("hp")
@ObfuscatedSignature(
signature = "(ZLkf;I)V",
garbageValue = "1158282077"
)
@Export("updateNpcs")
static final void updateNpcs(boolean var0, PacketBuffer var1) {
Client.field752 = 0;
Client.field676 = 0;
class30.method606();
WorldMapManager.method710(var0, var1);
class160.method3586(var1);
int var2;
for (var2 = 0; var2 < Client.field752; ++var2) {
int var3 = Client.field870[var2];
if (Client.npcs[var3].npcCycle != Client.cycle) {
Client.npcs[var3].definition = null;
Client.npcs[var3] = null;
}
}
if (var1.offset != Client.packetWriter.serverPacketLength) {
throw new RuntimeException(var1.offset + "," + Client.packetWriter.serverPacketLength);
} else {
for (var2 = 0; var2 < Client.npcCount; ++var2) {
if (Client.npcs[Client.npcIndices[var2]] == null) {
throw new RuntimeException(var2 + "," + Client.npcCount);
}
}
}
}
@ObfuscatedName("kw")
@ObfuscatedSignature(
signature = "(III)V",
garbageValue = "2048365157"
)
static void method325(int var0, int var1) {
MenuAction var2 = StudioGame.tempMenuAction;
GrandExchangeOfferOwnWorldComparator.menuAction(var2.param0, var2.param1, var2.opcode, var2.identifier, var2.action, var2.action, var0, var1);
StudioGame.tempMenuAction = null;
}
@ObfuscatedName("kx")
@ObfuscatedSignature(
signature = "(II)V",
garbageValue = "871169152"
)
static final void method326(int var0) {
if (TextureProvider.loadInterface(var0)) {
HealthBarDefinition.drawModelComponents(Widget.Widget_interfaceComponents[var0], -1);
}
} }
} }
@@ -3,91 +3,102 @@ import net.runelite.mapping.Implements;
import net.runelite.mapping.ObfuscatedGetter; import net.runelite.mapping.ObfuscatedGetter;
import net.runelite.mapping.ObfuscatedName; import net.runelite.mapping.ObfuscatedName;
import net.runelite.mapping.ObfuscatedSignature; import net.runelite.mapping.ObfuscatedSignature;
import net.runelite.rs.ScriptOpcodes;
@ObfuscatedName("am") @ObfuscatedName("aa")
@Implements("AbstractWorldMapIcon") @Implements("AbstractWorldMapIcon")
public abstract class AbstractWorldMapIcon { public abstract class AbstractWorldMapIcon {
@ObfuscatedName("qa") @ObfuscatedName("qk")
@ObfuscatedSignature( @ObfuscatedGetter(
signature = "Ldo;" intValue = 1263704437
) )
@Export("decimator") static int field299;
static Decimator decimator; @ObfuscatedName("as")
@ObfuscatedName("dz") @Export("client")
@ObfuscatedSignature(
signature = "Lclient;"
)
static Client client;
@ObfuscatedName("ey")
@ObfuscatedSignature( @ObfuscatedSignature(
signature = "Lij;" signature = "Lij;"
) )
@Export("archive2") @Export("archive17")
static Archive archive2; static Archive archive17;
@ObfuscatedName("c") @ObfuscatedName("ef")
@ObfuscatedGetter(
intValue = 821874025
)
static int field292;
@ObfuscatedName("h")
@ObfuscatedSignature( @ObfuscatedSignature(
signature = "Lhf;" signature = "Lhx;"
) )
@Export("coord2") @Export("coord2")
public final Coord coord2; public final Coord coord2;
@ObfuscatedName("o") @ObfuscatedName("y")
@ObfuscatedSignature( @ObfuscatedSignature(
signature = "Lhf;" signature = "Lhx;"
) )
@Export("coord1") @Export("coord1")
public final Coord coord1; public final Coord coord1;
@ObfuscatedName("i") @ObfuscatedName("w")
@ObfuscatedGetter( @ObfuscatedGetter(
intValue = 2101295301 intValue = 148025221
) )
@Export("screenX") @Export("screenX")
int screenX; int screenX;
@ObfuscatedName("d") @ObfuscatedName("i")
@ObfuscatedGetter( @ObfuscatedGetter(
intValue = 1809390745 intValue = 316665889
) )
@Export("screenY") @Export("screenY")
int screenY; int screenY;
@ObfuscatedSignature( @ObfuscatedSignature(
signature = "(Lhf;Lhf;)V" signature = "(Lhx;Lhx;)V"
) )
AbstractWorldMapIcon(Coord var1, Coord var2) { AbstractWorldMapIcon(Coord var1, Coord var2) {
this.coord1 = var1; this.coord1 = var1;
this.coord2 = var2; this.coord2 = var2;
} }
@ObfuscatedName("a") @ObfuscatedName("u")
@ObfuscatedSignature( @ObfuscatedSignature(
signature = "(I)I", signature = "(I)I",
garbageValue = "-1878632225" garbageValue = "-871583687"
) )
@Export("getElement") @Export("getElement")
public abstract int getElement(); public abstract int getElement();
@ObfuscatedName("t") @ObfuscatedName("f")
@ObfuscatedSignature( @ObfuscatedSignature(
signature = "(I)Lar;", signature = "(I)Lam;",
garbageValue = "-77909992" garbageValue = "969160497"
) )
@Export("getLabel") @Export("getLabel")
abstract WorldMapLabel getLabel(); abstract WorldMapLabel getLabel();
@ObfuscatedName("n") @ObfuscatedName("b")
@ObfuscatedSignature( @ObfuscatedSignature(
signature = "(I)I", signature = "(I)I",
garbageValue = "60677286" garbageValue = "-55298135"
) )
@Export("getSubWidth") @Export("getSubWidth")
abstract int getSubWidth(); abstract int getSubWidth();
@ObfuscatedName("q") @ObfuscatedName("g")
@ObfuscatedSignature( @ObfuscatedSignature(
signature = "(B)I", signature = "(B)I",
garbageValue = "-92" garbageValue = "-51"
) )
@Export("getSubHeight") @Export("getSubHeight")
abstract int getSubHeight(); abstract int getSubHeight();
@ObfuscatedName("e") @ObfuscatedName("c")
@ObfuscatedSignature( @ObfuscatedSignature(
signature = "(III)Z", signature = "(IIB)Z",
garbageValue = "1408503186" garbageValue = "34"
) )
@Export("fitsScreen") @Export("fitsScreen")
boolean fitsScreen(int var1, int var2) { boolean fitsScreen(int var1, int var2) {
@@ -101,47 +112,48 @@ public abstract class AbstractWorldMapIcon {
@ObfuscatedName("s") @ObfuscatedName("s")
@ObfuscatedSignature( @ObfuscatedSignature(
signature = "(I)Z", signature = "(I)Z",
garbageValue = "1618081006" garbageValue = "1140208309"
) )
@Export("hasValidElement") @Export("hasValidElement")
boolean hasValidElement() { boolean hasValidElement() {
return this.getElement() >= 0; return this.getElement() >= 0;
} }
@ObfuscatedName("b") @ObfuscatedName("t")
@ObfuscatedSignature( @ObfuscatedSignature(
signature = "(III)Z", signature = "(IIB)Z",
garbageValue = "471623513" garbageValue = "75"
) )
@Export("elementFitsScreen") @Export("elementFitsScreen")
boolean elementFitsScreen(int var1, int var2) { boolean elementFitsScreen(int var1, int var2) {
if (!this.hasValidElement()) { if (!this.hasValidElement()) {
return false; return false;
} else { } else {
WorldMapElement var3 = class65.WorldMapElement_get(this.getElement()); WorldMapElement var3 = Varcs.WorldMapElement_get(this.getElement());
int var4 = this.getSubWidth(); int var4 = this.getSubWidth();
int var5 = this.getSubHeight(); int var5 = this.getSubHeight();
switch(var3.horizontalAlignment.value) { switch(var3.horizontalAlignment.value) {
case 0: case 0:
if (var1 <= this.screenX - var4 || var1 > this.screenX) { if (var1 >= this.screenX && var1 < var4 + this.screenX) {
return false;
}
break; break;
}
return false;
case 1: case 1:
if (var1 >= this.screenX - var4 / 2 && var1 <= var4 / 2 + this.screenX) { if (var1 > this.screenX - var4 && var1 <= this.screenX) {
break; break;
} }
return false; return false;
case 2: case 2:
if (var1 < this.screenX || var1 >= var4 + this.screenX) { if (var1 < this.screenX - var4 / 2 || var1 > var4 / 2 + this.screenX) {
return false; return false;
} }
} }
switch(var3.verticalAlignment.value) { switch(var3.verticalAlignment.value) {
case 0: case 0:
if (var2 <= this.screenY - var5 || var2 > this.screenY) { if (var2 < this.screenY || var2 >= var5 + this.screenY) {
return false; return false;
} }
break; break;
@@ -151,7 +163,7 @@ public abstract class AbstractWorldMapIcon {
} }
break; break;
case 2: case 2:
if (var2 < this.screenY || var2 >= var5 + this.screenY) { if (var2 <= this.screenY - var5 || var2 > this.screenY) {
return false; return false;
} }
} }
@@ -160,10 +172,10 @@ public abstract class AbstractWorldMapIcon {
} }
} }
@ObfuscatedName("w") @ObfuscatedName("m")
@ObfuscatedSignature( @ObfuscatedSignature(
signature = "(III)Z", signature = "(III)Z",
garbageValue = "1082527847" garbageValue = "-1821247860"
) )
@Export("labelFitsScreen") @Export("labelFitsScreen")
boolean labelFitsScreen(int var1, int var2) { boolean labelFitsScreen(int var1, int var2) {
@@ -171,52 +183,89 @@ public abstract class AbstractWorldMapIcon {
if (var3 == null) { if (var3 == null) {
return false; return false;
} else if (var1 >= this.screenX - var3.width / 2 && var1 <= var3.width / 2 + this.screenX) { } else if (var1 >= this.screenX - var3.width / 2 && var1 <= var3.width / 2 + this.screenX) {
return var2 >= this.screenY && var2 <= var3.height + this.screenY; return var2 >= this.screenY && var2 <= this.screenY + var3.height;
} else { } else {
return false; return false;
} }
} }
@ObfuscatedName("o") @ObfuscatedName("u")
@ObfuscatedSignature( @ObfuscatedSignature(
signature = "(CI)Z", signature = "(Lhf;Lhf;ZB)V",
garbageValue = "93178768" garbageValue = "28"
) )
static boolean method679(char var0) { public static void method625(AbstractArchive var0, AbstractArchive var1, boolean var2) {
return "ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789!\"£$%^&*()-_=+[{]};:'@#~,<.>/?\\| ".indexOf(var0) != -1; ObjectDefinition.ObjectDefinition_archive = var0;
ObjectDefinition.ObjectDefinition_modelsArchive = var1;
ObjectDefinition.ObjectDefinition_isLowDetail = var2;
} }
@ObfuscatedName("fa") @ObfuscatedName("h")
@ObfuscatedSignature( @ObfuscatedSignature(
signature = "(I)V", signature = "(B)V",
garbageValue = "30161399" garbageValue = "1"
) )
static final void method652() { static void method623() {
if (Client.logoutTimer > 0) { Messages.Messages_channels.clear();
class1.logOut(); Messages.Messages_hashTable.clear();
Messages.Messages_queue.clear();
Messages.Messages_count = 0;
}
@ObfuscatedName("m")
@ObfuscatedSignature(
signature = "(ILci;ZI)I",
garbageValue = "1136599608"
)
static int method618(int var0, Script var1, boolean var2) {
Widget var3 = Language.getWidget(Interpreter.Interpreter_intStack[--GrandExchangeOfferTotalQuantityComparator.Interpreter_intStackSize]);
if (var0 == ScriptOpcodes.IF_GETSCROLLX) {
Interpreter.Interpreter_intStack[++GrandExchangeOfferTotalQuantityComparator.Interpreter_intStackSize - 1] = var3.scrollX;
return 1;
} else if (var0 == ScriptOpcodes.IF_GETSCROLLY) {
Interpreter.Interpreter_intStack[++GrandExchangeOfferTotalQuantityComparator.Interpreter_intStackSize - 1] = var3.scrollY;
return 1;
} else if (var0 == ScriptOpcodes.IF_GETTEXT) {
Interpreter.Interpreter_stringStack[++class43.Interpreter_stringStackSize - 1] = var3.text;
return 1;
} else if (var0 == ScriptOpcodes.IF_GETSCROLLWIDTH) {
Interpreter.Interpreter_intStack[++GrandExchangeOfferTotalQuantityComparator.Interpreter_intStackSize - 1] = var3.scrollWidth;
return 1;
} else if (var0 == ScriptOpcodes.IF_GETSCROLLHEIGHT) {
Interpreter.Interpreter_intStack[++GrandExchangeOfferTotalQuantityComparator.Interpreter_intStackSize - 1] = var3.scrollHeight;
return 1;
} else if (var0 == ScriptOpcodes.IF_GETMODELZOOM) {
Interpreter.Interpreter_intStack[++GrandExchangeOfferTotalQuantityComparator.Interpreter_intStackSize - 1] = var3.modelZoom;
return 1;
} else if (var0 == ScriptOpcodes.IF_GETMODELANGLE_X) {
Interpreter.Interpreter_intStack[++GrandExchangeOfferTotalQuantityComparator.Interpreter_intStackSize - 1] = var3.modelAngleX;
return 1;
} else if (var0 == ScriptOpcodes.IF_GETMODELANGLE_Z) {
Interpreter.Interpreter_intStack[++GrandExchangeOfferTotalQuantityComparator.Interpreter_intStackSize - 1] = var3.modelAngleZ;
return 1;
} else if (var0 == ScriptOpcodes.IF_GETMODELANGLE_Y) {
Interpreter.Interpreter_intStack[++GrandExchangeOfferTotalQuantityComparator.Interpreter_intStackSize - 1] = var3.modelAngleY;
return 1;
} else if (var0 == ScriptOpcodes.IF_GETTRANSTOP) {
Interpreter.Interpreter_intStack[++GrandExchangeOfferTotalQuantityComparator.Interpreter_intStackSize - 1] = var3.transparencyTop;
return 1;
} else if (var0 == ScriptOpcodes.IF_GETTRANSBOT) {
Interpreter.Interpreter_intStack[++GrandExchangeOfferTotalQuantityComparator.Interpreter_intStackSize - 1] = var3.transparencyBot;
return 1;
} else if (var0 == ScriptOpcodes.IF_GETCOLOUR) {
Interpreter.Interpreter_intStack[++GrandExchangeOfferTotalQuantityComparator.Interpreter_intStackSize - 1] = var3.color;
return 1;
} else if (var0 == ScriptOpcodes.IF_GETFILLCOLOUR) {
Interpreter.Interpreter_intStack[++GrandExchangeOfferTotalQuantityComparator.Interpreter_intStackSize - 1] = var3.color2;
return 1;
} else if (var0 == ScriptOpcodes.IF_GETFILLMODE) {
Interpreter.Interpreter_intStack[++GrandExchangeOfferTotalQuantityComparator.Interpreter_intStackSize - 1] = var3.fillMode.rsOrdinal();
return 1;
} else if (var0 == ScriptOpcodes.IF_GETMODELTRANSPARENT) {
Interpreter.Interpreter_intStack[++GrandExchangeOfferTotalQuantityComparator.Interpreter_intStackSize - 1] = var3.modelTransparency ? 1 : 0;
return 1;
} else { } else {
Client.timer.method5123(); return 2;
Tile.updateGameState(40);
Tiles.field499 = Client.packetWriter.getSocket();
Client.packetWriter.removeSocket();
} }
} }
@ObfuscatedName("fo")
@ObfuscatedSignature(
signature = "(II)V",
garbageValue = "542479713"
)
@Export("playSong")
static void playSong(int var0) {
if (var0 == -1 && !Client.field855) {
class197.midiPcmStream.clear();
class197.field2377 = 1;
class247.musicTrackArchive = null;
} else if (var0 != -1 && var0 != Client.currentTrackGroupId && Client.musicVolume != 0 && !Client.field855) {
WorldMapIcon_0.method253(2, class216.archive6, var0, 0, Client.musicVolume, false);
}
Client.currentTrackGroupId = var0;
}
} }
+20 -20
View File
@@ -9,21 +9,21 @@ import net.runelite.mapping.ObfuscatedGetter;
import net.runelite.mapping.ObfuscatedName; import net.runelite.mapping.ObfuscatedName;
import net.runelite.mapping.ObfuscatedSignature; import net.runelite.mapping.ObfuscatedSignature;
@ObfuscatedName("mh") @ObfuscatedName("md")
@Implements("AccessFile") @Implements("AccessFile")
public final class AccessFile { public final class AccessFile {
@ObfuscatedName("a") @ObfuscatedName("u")
@Export("file") @Export("file")
RandomAccessFile file; RandomAccessFile file;
@ObfuscatedName("t") @ObfuscatedName("f")
@ObfuscatedGetter( @ObfuscatedGetter(
longValue = 6718173947913803383L longValue = -1982697081356352199L
) )
@Export("maxSize") @Export("maxSize")
final long maxSize; final long maxSize;
@ObfuscatedName("n") @ObfuscatedName("b")
@ObfuscatedGetter( @ObfuscatedGetter(
longValue = -8033630762525345541L longValue = 797587694615508853L
) )
@Export("offset") @Export("offset")
long offset; long offset;
@@ -49,17 +49,17 @@ public final class AccessFile {
this.file.seek(0L); this.file.seek(0L);
} }
@ObfuscatedName("a") @ObfuscatedName("u")
@Export("seek") @Export("seek")
final void seek(long var1) throws IOException { final void seek(long var1) throws IOException {
this.file.seek(var1); this.file.seek(var1);
this.offset = var1; this.offset = var1;
} }
@ObfuscatedName("t") @ObfuscatedName("f")
@ObfuscatedSignature( @ObfuscatedSignature(
signature = "([BIII)V", signature = "([BIII)V",
garbageValue = "-1742010354" garbageValue = "2100291593"
) )
@Export("write") @Export("write")
public final void write(byte[] var1, int var2, int var3) throws IOException { public final void write(byte[] var1, int var2, int var3) throws IOException {
@@ -73,20 +73,20 @@ public final class AccessFile {
} }
} }
@ObfuscatedName("n") @ObfuscatedName("b")
@ObfuscatedSignature( @ObfuscatedSignature(
signature = "(B)V", signature = "(B)V",
garbageValue = "-87" garbageValue = "-108"
) )
@Export("close") @Export("close")
public final void close() throws IOException { public final void close() throws IOException {
this.closeSync(false); this.closeSync(false);
} }
@ObfuscatedName("q") @ObfuscatedName("g")
@ObfuscatedSignature( @ObfuscatedSignature(
signature = "(ZS)V", signature = "(ZI)V",
garbageValue = "26740" garbageValue = "-687857713"
) )
@Export("closeSync") @Export("closeSync")
public final void closeSync(boolean var1) throws IOException { public final void closeSync(boolean var1) throws IOException {
@@ -104,20 +104,20 @@ public final class AccessFile {
} }
@ObfuscatedName("v") @ObfuscatedName("z")
@ObfuscatedSignature( @ObfuscatedSignature(
signature = "(B)J", signature = "(I)J",
garbageValue = "-60" garbageValue = "-266154110"
) )
@Export("length") @Export("length")
public final long length() throws IOException { public final long length() throws IOException {
return this.file.length(); return this.file.length();
} }
@ObfuscatedName("l") @ObfuscatedName("p")
@ObfuscatedSignature( @ObfuscatedSignature(
signature = "([BIIB)I", signature = "([BIII)I",
garbageValue = "2" garbageValue = "-309112442"
) )
@Export("read") @Export("read")
public final int read(byte[] var1, int var2, int var3) throws IOException { public final int read(byte[] var1, int var2, int var3) throws IOException {
+344 -242
View File
@@ -3,327 +3,334 @@ import net.runelite.mapping.Implements;
import net.runelite.mapping.ObfuscatedGetter; import net.runelite.mapping.ObfuscatedGetter;
import net.runelite.mapping.ObfuscatedName; import net.runelite.mapping.ObfuscatedName;
import net.runelite.mapping.ObfuscatedSignature; import net.runelite.mapping.ObfuscatedSignature;
import net.runelite.rs.ScriptOpcodes;
@ObfuscatedName("bz") @ObfuscatedName("bt")
@Implements("Actor") @Implements("Actor")
public abstract class Actor extends Entity { public abstract class Actor extends Entity {
@ObfuscatedName("eu") @ObfuscatedName("el")
@ObfuscatedSignature( @ObfuscatedSignature(
signature = "Lij;" signature = "Lku;"
) )
@Export("archive20") @Export("spriteIds")
static Archive archive20; static GraphicsDefaults spriteIds;
@ObfuscatedName("aq") @ObfuscatedName("mh")
@ObfuscatedGetter( @ObfuscatedGetter(
intValue = 1673440105 intValue = 1998357535
)
@Export("selectedSpellFlags")
static int selectedSpellFlags;
@ObfuscatedName("ai")
@ObfuscatedGetter(
intValue = 1951571129
) )
@Export("x") @Export("x")
int x; int x;
@ObfuscatedName("ad") @ObfuscatedName("ag")
@ObfuscatedGetter( @ObfuscatedGetter(
intValue = -86496457 intValue = -1702454117
) )
@Export("y") @Export("y")
int y; int y;
@ObfuscatedName("ag") @ObfuscatedName("ao")
@ObfuscatedGetter( @ObfuscatedGetter(
intValue = -1022004991 intValue = -1278261801
) )
@Export("rotation") @Export("rotation")
int rotation; int rotation;
@ObfuscatedName("ak") @ObfuscatedName("aw")
@Export("isWalking") @Export("isWalking")
boolean isWalking; boolean isWalking;
@ObfuscatedName("av") @ObfuscatedName("ak")
@ObfuscatedGetter( @ObfuscatedGetter(
intValue = 1414687121 intValue = 401053777
) )
int field927; int field938;
@ObfuscatedName("am") @ObfuscatedName("aa")
@ObfuscatedGetter( @ObfuscatedGetter(
intValue = 222387089 intValue = 1537825747
) )
@Export("playerCycle") @Export("playerCycle")
int playerCycle; int playerCycle;
@ObfuscatedName("ab") @ObfuscatedName("ab")
@ObfuscatedGetter( @ObfuscatedGetter(
intValue = -1677804381 intValue = 1548693687
) )
@Export("readySequence") @Export("readySequence")
int readySequence; int readySequence;
@ObfuscatedName("ax") @ObfuscatedName("ar")
@ObfuscatedGetter( @ObfuscatedGetter(
intValue = 594336323 intValue = 2043182385
) )
@Export("turnLeftSequence") @Export("turnLeftSequence")
int turnLeftSequence; int turnLeftSequence;
@ObfuscatedName("al") @ObfuscatedName("av")
@ObfuscatedGetter( @ObfuscatedGetter(
intValue = 1154441065 intValue = -1529323687
) )
@Export("turnRightSequence") @Export("turnRightSequence")
int turnRightSequence; int turnRightSequence;
@ObfuscatedName("ap") @ObfuscatedName("aq")
@ObfuscatedGetter( @ObfuscatedGetter(
intValue = 83349541 intValue = -1702834689
) )
@Export("walkSequence") @Export("walkSequence")
int walkSequence; int walkSequence;
@ObfuscatedName("aj") @ObfuscatedName("ac")
@ObfuscatedGetter( @ObfuscatedGetter(
intValue = 1700088935 intValue = -1195328729
) )
@Export("walkBackSequence") @Export("walkBackSequence")
int walkBackSequence; int walkBackSequence;
@ObfuscatedName("ae") @ObfuscatedName("az")
@ObfuscatedGetter( @ObfuscatedGetter(
intValue = -781057529 intValue = -551716323
) )
@Export("walkLeftSequence") @Export("walkLeftSequence")
int walkLeftSequence; int walkLeftSequence;
@ObfuscatedName("au") @ObfuscatedName("at")
@ObfuscatedGetter( @ObfuscatedGetter(
intValue = -1829521957 intValue = -588172397
) )
@Export("walkRightSequence") @Export("walkRightSequence")
int walkRightSequence; int walkRightSequence;
@ObfuscatedName("ah") @ObfuscatedName("ae")
@ObfuscatedGetter( @ObfuscatedGetter(
intValue = -2016822393 intValue = 1934964713
) )
@Export("runSequence") @Export("runSequence")
int runSequence; int runSequence;
@ObfuscatedName("an") @ObfuscatedName("aj")
@Export("overheadText") @Export("overheadText")
String overheadText; String overheadText;
@ObfuscatedName("af") @ObfuscatedName("ap")
@Export("isAutoChatting") @Export("isAutoChatting")
boolean isAutoChatting; boolean isAutoChatting;
@ObfuscatedName("ay") @ObfuscatedName("an")
boolean field939; boolean field950;
@ObfuscatedName("az") @ObfuscatedName("al")
@ObfuscatedGetter( @ObfuscatedGetter(
intValue = 1235378121 intValue = -2071391287
) )
@Export("overheadTextCyclesRemaining") @Export("overheadTextCyclesRemaining")
int overheadTextCyclesRemaining; int overheadTextCyclesRemaining;
@ObfuscatedName("ao") @ObfuscatedName("ay")
@ObfuscatedGetter( @ObfuscatedGetter(
intValue = -696280171 intValue = -1854297981
) )
@Export("overheadTextColor") @Export("overheadTextColor")
int overheadTextColor; int overheadTextColor;
@ObfuscatedName("ai") @ObfuscatedName("ax")
@ObfuscatedGetter( @ObfuscatedGetter(
intValue = -1688504189 intValue = -2046431957
) )
@Export("overheadTextEffect") @Export("overheadTextEffect")
int overheadTextEffect; int overheadTextEffect;
@ObfuscatedName("at") @ObfuscatedName("as")
@Export("hitSplatCount") @Export("hitSplatCount")
byte hitSplatCount; byte hitSplatCount;
@ObfuscatedName("as") @ObfuscatedName("ah")
@Export("hitSplatTypes") @Export("hitSplatTypes")
int[] hitSplatTypes; int[] hitSplatTypes;
@ObfuscatedName("ba") @ObfuscatedName("bi")
@Export("hitSplatValues") @Export("hitSplatValues")
int[] hitSplatValues; int[] hitSplatValues;
@ObfuscatedName("bg") @ObfuscatedName("bo")
@Export("hitSplatCycles") @Export("hitSplatCycles")
int[] hitSplatCycles; int[] hitSplatCycles;
@ObfuscatedName("bc") @ObfuscatedName("bx")
@Export("hitSplatTypes2") @Export("hitSplatTypes2")
int[] hitSplatTypes2; int[] hitSplatTypes2;
@ObfuscatedName("bd") @ObfuscatedName("bu")
@Export("hitSplatValues2") @Export("hitSplatValues2")
int[] hitSplatValues2; int[] hitSplatValues2;
@ObfuscatedName("bx") @ObfuscatedName("bd")
@ObfuscatedSignature( @ObfuscatedSignature(
signature = "Ljm;" signature = "Ljm;"
) )
@Export("healthBars") @Export("healthBars")
IterableNodeDeque healthBars; IterableNodeDeque healthBars;
@ObfuscatedName("bl") @ObfuscatedName("bn")
@ObfuscatedGetter( @ObfuscatedGetter(
intValue = -2097579951 intValue = 2135432751
) )
@Export("targetIndex") @Export("targetIndex")
int targetIndex; int targetIndex;
@ObfuscatedName("bh") @ObfuscatedName("bj")
@Export("false0") @Export("false0")
boolean false0; boolean false0;
@ObfuscatedName("bu") @ObfuscatedName("bm")
@ObfuscatedGetter( @ObfuscatedGetter(
intValue = -1107390821 intValue = 1522685125
) )
int field934; int field965;
@ObfuscatedName("br") @ObfuscatedName("bq")
@ObfuscatedGetter( @ObfuscatedGetter(
intValue = -1581860297 intValue = -1971794141
) )
@Export("movementSequence") @Export("movementSequence")
int movementSequence; int movementSequence;
@ObfuscatedName("bq") @ObfuscatedName("bf")
@ObfuscatedGetter( @ObfuscatedGetter(
intValue = 1528888905 intValue = -1163192511
) )
@Export("movementFrame") @Export("movementFrame")
int movementFrame; int movementFrame;
@ObfuscatedName("bi") @ObfuscatedName("by")
@ObfuscatedGetter( @ObfuscatedGetter(
intValue = -687202097 intValue = -705488337
) )
@Export("movementFrameCycle") @Export("movementFrameCycle")
int movementFrameCycle; int movementFrameCycle;
@ObfuscatedName("be") @ObfuscatedName("br")
@ObfuscatedGetter( @ObfuscatedGetter(
intValue = 805247977 intValue = 980221
) )
@Export("sequence") @Export("sequence")
int sequence; int sequence;
@ObfuscatedName("bt") @ObfuscatedName("ba")
@ObfuscatedGetter( @ObfuscatedGetter(
intValue = 736502107 intValue = 1531052871
) )
@Export("sequenceFrame") @Export("sequenceFrame")
int sequenceFrame; int sequenceFrame;
@ObfuscatedName("bs") @ObfuscatedName("bb")
@ObfuscatedGetter( @ObfuscatedGetter(
intValue = -420296753 intValue = 2086339795
) )
@Export("sequenceFrameCycle") @Export("sequenceFrameCycle")
int sequenceFrameCycle; int sequenceFrameCycle;
@ObfuscatedName("bj") @ObfuscatedName("bg")
@ObfuscatedGetter( @ObfuscatedGetter(
intValue = 336768917 intValue = 863905413
) )
@Export("sequenceDelay") @Export("sequenceDelay")
int sequenceDelay; int sequenceDelay;
@ObfuscatedName("bm") @ObfuscatedName("bw")
@ObfuscatedGetter( @ObfuscatedGetter(
intValue = -1410322499 intValue = -217068217
) )
int field960; int field971;
@ObfuscatedName("bn") @ObfuscatedName("be")
@ObfuscatedGetter( @ObfuscatedGetter(
intValue = 1228903613 intValue = -1431332559
) )
@Export("spotAnimation") @Export("spotAnimation")
int spotAnimation; int spotAnimation;
@ObfuscatedName("bz") @ObfuscatedName("bt")
@ObfuscatedGetter( @ObfuscatedGetter(
intValue = 1265033073 intValue = -446541561
) )
@Export("spotAnimationFrame") @Export("spotAnimationFrame")
int spotAnimationFrame; int spotAnimationFrame;
@ObfuscatedName("bo") @ObfuscatedName("bl")
@ObfuscatedGetter( @ObfuscatedGetter(
intValue = -663316133 intValue = -1428986091
) )
@Export("spotAnimationFrameCycle") @Export("spotAnimationFrameCycle")
int spotAnimationFrameCycle; int spotAnimationFrameCycle;
@ObfuscatedName("bk")
@ObfuscatedGetter(
intValue = -1273295849
)
int field973;
@ObfuscatedName("bv")
@ObfuscatedGetter(
intValue = 528591249
)
int field965;
@ObfuscatedName("bw")
@ObfuscatedGetter(
intValue = 1608804509
)
int field966;
@ObfuscatedName("bb")
@ObfuscatedGetter(
intValue = -164988469
)
int field967;
@ObfuscatedName("bf")
@ObfuscatedGetter(
intValue = -1333983147
)
int field979;
@ObfuscatedName("by")
@ObfuscatedGetter(
intValue = 105474701
)
int field969;
@ObfuscatedName("bp") @ObfuscatedName("bp")
@ObfuscatedGetter( @ObfuscatedGetter(
intValue = 1769569101 intValue = 1351668501
) )
int field925; int field975;
@ObfuscatedName("cx") @ObfuscatedName("bv")
@ObfuscatedGetter( @ObfuscatedGetter(
intValue = 1506809691 intValue = 639610433
) )
int field971; int field996;
@ObfuscatedName("bs")
@ObfuscatedGetter(
intValue = 817107681
)
int field946;
@ObfuscatedName("bz")
@ObfuscatedGetter(
intValue = 810384445
)
int field978;
@ObfuscatedName("bc")
@ObfuscatedGetter(
intValue = 40503997
)
int field979;
@ObfuscatedName("bh")
@ObfuscatedGetter(
intValue = 1623463931
)
int field980;
@ObfuscatedName("bk")
@ObfuscatedGetter(
intValue = -950690973
)
int field934;
@ObfuscatedName("cm")
@ObfuscatedGetter(
intValue = 1712532071
)
int field982;
@ObfuscatedName("cd")
@ObfuscatedGetter(
intValue = 1620214811
)
int field983;
@ObfuscatedName("cv") @ObfuscatedName("cv")
@ObfuscatedGetter( @ObfuscatedGetter(
intValue = 1295543135 intValue = 1481734065
)
int field972;
@ObfuscatedName("ce")
@ObfuscatedGetter(
intValue = 1559943605
) )
@Export("npcCycle") @Export("npcCycle")
int npcCycle; int npcCycle;
@ObfuscatedName("cw") @ObfuscatedName("cl")
@ObfuscatedGetter( @ObfuscatedGetter(
intValue = 320863757 intValue = 1455392247
) )
@Export("defaultHeight") @Export("defaultHeight")
int defaultHeight; int defaultHeight;
@ObfuscatedName("cd") @ObfuscatedName("cg")
@ObfuscatedGetter( @ObfuscatedGetter(
intValue = -1451956301 intValue = -27617279
) )
@Export("orientation") @Export("orientation")
int orientation; int orientation;
@ObfuscatedName("cn") @ObfuscatedName("ch")
@ObfuscatedGetter( @ObfuscatedGetter(
intValue = 477550871 intValue = 1781093081
) )
int field948; int field987;
@ObfuscatedName("co")
@ObfuscatedGetter(
intValue = 860658493
)
int field988;
@ObfuscatedName("cr") @ObfuscatedName("cr")
@ObfuscatedGetter( @ObfuscatedGetter(
intValue = 1785171989 intValue = 469579589
)
int field977;
@ObfuscatedName("ci")
@ObfuscatedGetter(
intValue = 2075263543
) )
@Export("pathLength") @Export("pathLength")
int pathLength; int pathLength;
@ObfuscatedName("cy") @ObfuscatedName("ck")
@Export("pathX") @Export("pathX")
int[] pathX; int[] pathX;
@ObfuscatedName("cl") @ObfuscatedName("cb")
@Export("pathY") @Export("pathY")
int[] pathY; int[] pathY;
@ObfuscatedName("co") @ObfuscatedName("cy")
@Export("pathTraversed") @Export("pathTraversed")
byte[] pathTraversed; byte[] pathTraversed;
@ObfuscatedName("cu") @ObfuscatedName("cn")
@ObfuscatedGetter( @ObfuscatedGetter(
intValue = -2083065961 intValue = 1598784809
) )
int field982; int field976;
@ObfuscatedName("cz") @ObfuscatedName("cj")
@ObfuscatedGetter( @ObfuscatedGetter(
intValue = 1810694977 intValue = 559009223
) )
int field983; int field994;
Actor() { Actor() {
this.isWalking = false; this.isWalking = false;
this.field927 = 1; this.field938 = 1;
this.readySequence = -1; this.readySequence = -1;
this.turnLeftSequence = -1; this.turnLeftSequence = -1;
this.turnRightSequence = -1; this.turnRightSequence = -1;
@@ -333,7 +340,7 @@ public abstract class Actor extends Entity {
this.walkRightSequence = -1; this.walkRightSequence = -1;
this.runSequence = -1; this.runSequence = -1;
this.overheadText = null; this.overheadText = null;
this.field939 = false; this.field950 = false;
this.overheadTextCyclesRemaining = 100; this.overheadTextCyclesRemaining = 100;
this.overheadTextColor = 0; this.overheadTextColor = 0;
this.overheadTextEffect = 0; this.overheadTextEffect = 0;
@@ -346,7 +353,7 @@ public abstract class Actor extends Entity {
this.healthBars = new IterableNodeDeque(); this.healthBars = new IterableNodeDeque();
this.targetIndex = -1; this.targetIndex = -1;
this.false0 = false; this.false0 = false;
this.field934 = -1; this.field965 = -1;
this.movementSequence = -1; this.movementSequence = -1;
this.movementFrame = 0; this.movementFrame = 0;
this.movementFrameCycle = 0; this.movementFrameCycle = 0;
@@ -354,46 +361,46 @@ public abstract class Actor extends Entity {
this.sequenceFrame = 0; this.sequenceFrame = 0;
this.sequenceFrameCycle = 0; this.sequenceFrameCycle = 0;
this.sequenceDelay = 0; this.sequenceDelay = 0;
this.field960 = 0; this.field971 = 0;
this.spotAnimation = -1; this.spotAnimation = -1;
this.spotAnimationFrame = 0; this.spotAnimationFrame = 0;
this.spotAnimationFrameCycle = 0; this.spotAnimationFrameCycle = 0;
this.npcCycle = 0; this.npcCycle = 0;
this.defaultHeight = 200; this.defaultHeight = 200;
this.field948 = 0; this.field987 = 0;
this.field977 = 32; this.field988 = 32;
this.pathLength = 0; this.pathLength = 0;
this.pathX = new int[10]; this.pathX = new int[10];
this.pathY = new int[10]; this.pathY = new int[10];
this.pathTraversed = new byte[10]; this.pathTraversed = new byte[10];
this.field982 = 0; this.field976 = 0;
this.field983 = 0; this.field994 = 0;
} }
@ObfuscatedName("h") @ObfuscatedName("o")
@ObfuscatedSignature( @ObfuscatedSignature(
signature = "(B)Z", signature = "(I)Z",
garbageValue = "-25" garbageValue = "-968027489"
) )
@Export("isVisible") @Export("isVisible")
boolean isVisible() { boolean isVisible() {
return false; return false;
} }
@ObfuscatedName("bu") @ObfuscatedName("au")
@ObfuscatedSignature( @ObfuscatedSignature(
signature = "(B)V", signature = "(I)V",
garbageValue = "0" garbageValue = "-2082426618"
) )
final void method1862() { final void method1759() {
this.pathLength = 0; this.pathLength = 0;
this.field983 = 0; this.field994 = 0;
} }
@ObfuscatedName("br") @ObfuscatedName("as")
@ObfuscatedSignature( @ObfuscatedSignature(
signature = "(IIIIIII)V", signature = "(IIIIIII)V",
garbageValue = "-506913236" garbageValue = "-666824571"
) )
@Export("addHitSplat") @Export("addHitSplat")
final void addHitSplat(int var1, int var2, int var3, int var4, int var5, int var6) { final void addHitSplat(int var1, int var2, int var3, int var4, int var5, int var6) {
@@ -413,9 +420,9 @@ public abstract class Actor extends Entity {
int var10 = -1; int var10 = -1;
int var11 = 0; int var11 = 0;
if (var1 >= 0) { if (var1 >= 0) {
HitSplatDefinition var12 = NetFileRequest.method4298(var1); HitSplatDefinition var12 = class42.method811(var1);
var10 = var12.field3313; var10 = var12.field3347;
var11 = var12.field3314; var11 = var12.field3338;
} }
int var14; int var14;
@@ -471,10 +478,10 @@ public abstract class Actor extends Entity {
} }
} }
@ObfuscatedName("bq") @ObfuscatedName("ah")
@ObfuscatedSignature( @ObfuscatedSignature(
signature = "(IIIIIIB)V", signature = "(IIIIIII)V",
garbageValue = "-38" garbageValue = "1706369606"
) )
@Export("addHealthBar") @Export("addHealthBar")
final void addHealthBar(int var1, int var2, int var3, int var4, int var5, int var6) { final void addHealthBar(int var1, int var2, int var3, int var4, int var5, int var6) {
@@ -502,7 +509,7 @@ public abstract class Actor extends Entity {
HealthBar var13; HealthBar var13;
for (var13 = (HealthBar)this.healthBars.last(); var13 != null; var13 = (HealthBar)this.healthBars.previous()) { for (var13 = (HealthBar)this.healthBars.last(); var13 != null; var13 = (HealthBar)this.healthBars.previous()) {
++var12; ++var12;
if (var13.definition.field3265 == var8.field3265) { if (var13.definition.field3294 == var8.field3294) {
var13.put(var2 + var4, var5, var6, var3); var13.put(var2 + var4, var5, var6, var3);
return; return;
} }
@@ -536,114 +543,209 @@ public abstract class Actor extends Entity {
@ObfuscatedName("bi") @ObfuscatedName("bi")
@ObfuscatedSignature( @ObfuscatedSignature(
signature = "(II)V", signature = "(II)V",
garbageValue = "-1507831115" garbageValue = "-1031768324"
) )
@Export("removeHealthBar") @Export("removeHealthBar")
final void removeHealthBar(int var1) { final void removeHealthBar(int var1) {
HealthBarDefinition var3 = (HealthBarDefinition)HealthBarDefinition.HealthBarDefinition_cached.get((long)var1); HealthBarDefinition var2 = class42.method810(var1);
HealthBarDefinition var2;
if (var3 != null) {
var2 = var3;
} else {
byte[] var4 = HealthBarDefinition.HealthBarDefinition_archive.takeFile(33, var1);
var3 = new HealthBarDefinition();
if (var4 != null) {
var3.decode(new Buffer(var4));
}
HealthBarDefinition.HealthBarDefinition_cached.put(var3, (long)var1); for (HealthBar var3 = (HealthBar)this.healthBars.last(); var3 != null; var3 = (HealthBar)this.healthBars.previous()) {
var2 = var3; if (var2 == var3.definition) {
} var3.remove();
var3 = var2;
for (HealthBar var5 = (HealthBar)this.healthBars.last(); var5 != null; var5 = (HealthBar)this.healthBars.previous()) {
if (var3 == var5.definition) {
var5.remove();
return; return;
} }
} }
} }
@ObfuscatedName("gj") @ObfuscatedName("u")
@ObfuscatedSignature( @ObfuscatedSignature(
signature = "(Lbz;S)V", signature = "(Ljava/lang/CharSequence;I)J",
garbageValue = "16384" garbageValue = "1807317311"
) )
static final void method1873(Actor var0) { static long method1773(CharSequence var0) {
if (var0.field977 != 0) { long var1 = 0L;
if (var0.targetIndex != -1) { int var3 = var0.length();
Object var1 = null;
if (var0.targetIndex < 32768) { for (int var4 = 0; var4 < var3; ++var4) {
var1 = Client.npcs[var0.targetIndex]; var1 *= 37L;
} else if (var0.targetIndex >= 32768) { char var5 = var0.charAt(var4);
var1 = Client.players[var0.targetIndex - 32768]; if (var5 >= 'A' && var5 <= 'Z') {
var1 += (long)(var5 + 1 - 65);
} else if (var5 >= 'a' && var5 <= 'z') {
var1 += (long)(var5 + 1 - 97);
} else if (var5 >= '0' && var5 <= '9') {
var1 += (long)(var5 + 27 - 48);
} }
if (var1 != null) { if (var1 >= 177917621779460413L) {
int var2 = var0.x - ((Actor)var1).x; break;
int var3 = var0.y - ((Actor)var1).y;
if (var2 != 0 || var3 != 0) {
var0.orientation = (int)(Math.atan2((double)var2, (double)var3) * 325.949D) & 2047;
}
} else if (var0.false0) {
var0.targetIndex = -1;
var0.false0 = false;
} }
} }
if (var0.field934 != -1 && (var0.pathLength == 0 || var0.field982 > 0)) { while (0L == var1 % 37L && 0L != var1) {
var0.orientation = var0.field934; var1 /= 37L;
var0.field934 = -1;
} }
int var4 = var0.orientation - var0.rotation & 2047; return var1;
if (var4 == 0 && var0.false0) {
var0.targetIndex = -1;
var0.false0 = false;
} }
if (var4 != 0) { @ObfuscatedName("s")
++var0.field948; @ObfuscatedSignature(
boolean var6; signature = "(ILci;ZB)I",
if (var4 > 1024) { garbageValue = "-13"
var0.rotation -= var0.field977; )
var6 = true; static int method1774(int var0, Script var1, boolean var2) {
if (var4 < var0.field977 || var4 > 2048 - var0.field977) { Widget var3;
var0.rotation = var0.orientation; if (var0 >= 2000) {
var6 = false; var0 -= 1000;
} var3 = Language.getWidget(Interpreter.Interpreter_intStack[--GrandExchangeOfferTotalQuantityComparator.Interpreter_intStackSize]);
if (var0.readySequence == var0.movementSequence && (var0.field948 > 25 || var6)) {
if (var0.turnLeftSequence != -1) {
var0.movementSequence = var0.turnLeftSequence;
} else { } else {
var0.movementSequence = var0.walkSequence; var3 = var2 ? Interpreter.field1090 : class188.field2352;
} }
if (var0 == ScriptOpcodes.CC_CALLONRESIZE) {
if (Interpreter.field1095 >= 10) {
throw new RuntimeException();
} else if (var3.onResize == null) {
return 0;
} else {
ScriptEvent var4 = new ScriptEvent();
var4.widget = var3;
var4.args = var3.onResize;
var4.field577 = Interpreter.field1095 + 1;
Client.scriptEvents.addFirst(var4);
return 1;
} }
} else { } else {
var0.rotation += var0.field977; return 2;
var6 = true; }
if (var4 < var0.field977 || var4 > 2048 - var0.field977) {
var0.rotation = var0.orientation;
var6 = false;
} }
if (var0.readySequence == var0.movementSequence && (var0.field948 > 25 || var6)) { @ObfuscatedName("hs")
if (var0.turnRightSequence != -1) { @ObfuscatedSignature(
var0.movementSequence = var0.turnRightSequence; signature = "(IIIIIIIB)V",
} else { garbageValue = "-99"
var0.movementSequence = var0.walkSequence; )
@Export("addPendingSpawnToScene")
static final void addPendingSpawnToScene(int var0, int var1, int var2, int var3, int var4, int var5, int var6) {
if (var2 >= 1 && var3 >= 1 && var2 <= 102 && var3 <= 102) {
if (Client.isLowDetail && var0 != ClientPacket.Client_plane) {
return;
}
long var7 = 0L;
boolean var9 = true;
boolean var10 = false;
boolean var11 = false;
if (var1 == 0) {
var7 = class2.scene.getBoundaryObjectTag(var0, var2, var3);
}
if (var1 == 1) {
var7 = class2.scene.getWallDecorationTag(var0, var2, var3);
}
if (var1 == 2) {
var7 = class2.scene.getGameObjectTag(var0, var2, var3);
}
if (var1 == 3) {
var7 = class2.scene.getFloorDecorationTag(var0, var2, var3);
}
int var12;
if (var7 != 0L) {
var12 = class2.scene.getObjectFlags(var0, var2, var3, var7);
int var14 = ItemContainer.Entity_unpackID(var7);
int var15 = var12 & 31;
int var16 = var12 >> 6 & 3;
ObjectDefinition var13;
if (var1 == 0) {
class2.scene.removeBoundaryObject(var0, var2, var3);
var13 = Occluder.getObjectDefinition(var14);
if (var13.interactType != 0) {
Client.collisionMaps[var0].method3598(var2, var3, var15, var16, var13.boolean1);
}
}
if (var1 == 1) {
class2.scene.removeWallDecoration(var0, var2, var3);
}
if (var1 == 2) {
class2.scene.removeGameObject(var0, var2, var3);
var13 = Occluder.getObjectDefinition(var14);
if (var2 + var13.sizeX > 103 || var3 + var13.sizeX > 103 || var2 + var13.sizeY > 103 || var3 + var13.sizeY > 103) {
return;
}
if (var13.interactType != 0) {
Client.collisionMaps[var0].setFlagOffNonSquare(var2, var3, var13.sizeX, var13.sizeY, var16, var13.boolean1);
}
}
if (var1 == 3) {
class2.scene.removeFloorDecoration(var0, var2, var3);
var13 = Occluder.getObjectDefinition(var14);
if (var13.interactType == 1) {
Client.collisionMaps[var0].method3601(var2, var3);
} }
} }
} }
var0.rotation &= 2047; if (var4 >= 0) {
} else { var12 = var0;
var0.field948 = 0; if (var0 < 3 && (Tiles.Tiles_renderFlags[1][var2][var3] & 2) == 2) {
var12 = var0 + 1;
}
MenuAction.method2088(var0, var12, var2, var3, var4, var5, var6, class2.scene, Client.collisionMaps[var0]);
}
}
}
@ObfuscatedName("im")
@ObfuscatedSignature(
signature = "(B)V",
garbageValue = "0"
)
@Export("Widget_runOnTargetLeave")
static void Widget_runOnTargetLeave() {
if (Client.isSpellSelected) {
Widget var0 = UserComparator3.getWidgetChild(WorldMapAreaData.selectedSpellWidget, Client.selectedSpellChildIndex);
if (var0 != null && var0.onTargetLeave != null) {
ScriptEvent var1 = new ScriptEvent();
var1.widget = var0;
var1.args = var0.onTargetLeave;
WorldMapLabel.runScriptEvent(var1);
}
Client.isSpellSelected = false;
ScriptEvent.invalidateWidget(var0);
}
}
@ObfuscatedName("jg")
@ObfuscatedSignature(
signature = "(B)V",
garbageValue = "3"
)
static final void method1756() {
PacketBufferNode var0 = ModelData0.getPacketBufferNode(ClientPacket.field2311, Client.packetWriter.isaacCipher);
Client.packetWriter.addNode(var0);
for (InterfaceParent var1 = (InterfaceParent)Client.interfaceParents.first(); var1 != null; var1 = (InterfaceParent)Client.interfaceParents.next()) {
if (var1.type == 0 || var1.type == 3) {
class43.closeInterface(var1, true);
}
}
if (Client.meslayerContinueWidget != null) {
ScriptEvent.invalidateWidget(Client.meslayerContinueWidget);
Client.meslayerContinueWidget = null;
} }
} }
} }
}
+37 -37
View File
@@ -3,51 +3,51 @@ import net.runelite.mapping.Implements;
import net.runelite.mapping.ObfuscatedName; import net.runelite.mapping.ObfuscatedName;
import net.runelite.mapping.ObfuscatedSignature; import net.runelite.mapping.ObfuscatedSignature;
@ObfuscatedName("dw") @ObfuscatedName("dg")
@Implements("Animation") @Implements("Animation")
public class Animation { public class Animation {
@ObfuscatedName("a") @ObfuscatedName("u")
static int[] field1609; static int[] field1634;
@ObfuscatedName("t") @ObfuscatedName("f")
static int[] field1611; static int[] field1626;
@ObfuscatedName("n") @ObfuscatedName("b")
static int[] field1618; static int[] field1627;
@ObfuscatedName("q") @ObfuscatedName("g")
static int[] field1610; static int[] field1631;
@ObfuscatedName("v") @ObfuscatedName("z")
@ObfuscatedSignature( @ObfuscatedSignature(
signature = "Lee;" signature = "Lec;"
) )
@Export("skeleton") @Export("skeleton")
Skeleton skeleton; Skeleton skeleton;
@ObfuscatedName("l") @ObfuscatedName("p")
@Export("transformCount") @Export("transformCount")
int transformCount; int transformCount;
@ObfuscatedName("c") @ObfuscatedName("h")
@Export("transformSkeletonLabels") @Export("transformSkeletonLabels")
int[] transformSkeletonLabels; int[] transformSkeletonLabels;
@ObfuscatedName("o") @ObfuscatedName("y")
@Export("transformXs") @Export("transformXs")
int[] transformXs; int[] transformXs;
@ObfuscatedName("i") @ObfuscatedName("w")
@Export("transformYs") @Export("transformYs")
int[] transformYs; int[] transformYs;
@ObfuscatedName("d") @ObfuscatedName("i")
@Export("transformZs") @Export("transformZs")
int[] transformZs; int[] transformZs;
@ObfuscatedName("m") @ObfuscatedName("k")
@Export("hasAlphaTransform") @Export("hasAlphaTransform")
boolean hasAlphaTransform; boolean hasAlphaTransform;
static { static {
field1609 = new int[500]; field1634 = new int[500];
field1611 = new int[500]; field1626 = new int[500];
field1618 = new int[500]; field1627 = new int[500];
field1610 = new int[500]; field1631 = new int[500];
} }
@ObfuscatedSignature( @ObfuscatedSignature(
signature = "([BLee;)V" signature = "([BLec;)V"
) )
Animation(byte[] var1, Skeleton var2) { Animation(byte[] var1, Skeleton var2) {
this.skeleton = null; this.skeleton = null;
@@ -69,38 +69,38 @@ public class Animation {
if (this.skeleton.transformTypes[var8] != 0) { if (this.skeleton.transformTypes[var8] != 0) {
for (int var10 = var8 - 1; var10 > var6; --var10) { for (int var10 = var8 - 1; var10 > var6; --var10) {
if (this.skeleton.transformTypes[var10] == 0) { if (this.skeleton.transformTypes[var10] == 0) {
field1609[var7] = var10; field1634[var7] = var10;
field1611[var7] = 0; field1626[var7] = 0;
field1618[var7] = 0; field1627[var7] = 0;
field1610[var7] = 0; field1631[var7] = 0;
++var7; ++var7;
break; break;
} }
} }
} }
field1609[var7] = var8; field1634[var7] = var8;
short var11 = 0; short var11 = 0;
if (this.skeleton.transformTypes[var8] == 3) { if (this.skeleton.transformTypes[var8] == 3) {
var11 = 128; var11 = 128;
} }
if ((var9 & 1) != 0) { if ((var9 & 1) != 0) {
field1611[var7] = var4.readShortSmart(); field1626[var7] = var4.readShortSmart();
} else { } else {
field1611[var7] = var11; field1626[var7] = var11;
} }
if ((var9 & 2) != 0) { if ((var9 & 2) != 0) {
field1618[var7] = var4.readShortSmart(); field1627[var7] = var4.readShortSmart();
} else { } else {
field1618[var7] = var11; field1627[var7] = var11;
} }
if ((var9 & 4) != 0) { if ((var9 & 4) != 0) {
field1610[var7] = var4.readShortSmart(); field1631[var7] = var4.readShortSmart();
} else { } else {
field1610[var7] = var11; field1631[var7] = var11;
} }
var6 = var8; var6 = var8;
@@ -121,10 +121,10 @@ public class Animation {
this.transformZs = new int[var7]; this.transformZs = new int[var7];
for (var8 = 0; var8 < var7; ++var8) { for (var8 = 0; var8 < var7; ++var8) {
this.transformSkeletonLabels[var8] = field1609[var8]; this.transformSkeletonLabels[var8] = field1634[var8];
this.transformXs[var8] = field1611[var8]; this.transformXs[var8] = field1626[var8];
this.transformYs[var8] = field1618[var8]; this.transformYs[var8] = field1627[var8];
this.transformZs[var8] = field1610[var8]; this.transformZs[var8] = field1631[var8];
} }
} }
+147 -171
View File
@@ -8,51 +8,51 @@ import net.runelite.mapping.ObfuscatedSignature;
@ObfuscatedName("ij") @ObfuscatedName("ij")
@Implements("Archive") @Implements("Archive")
public class Archive extends AbstractArchive { public class Archive extends AbstractArchive {
@ObfuscatedName("ar") @ObfuscatedName("am")
@Export("Archive_crc") @Export("Archive_crc")
static CRC32 Archive_crc; static CRC32 Archive_crc;
@ObfuscatedName("g") @ObfuscatedName("v")
@ObfuscatedSignature( @ObfuscatedSignature(
signature = "Lke;" signature = "Lke;"
) )
@Export("archiveDisk") @Export("archiveDisk")
ArchiveDisk archiveDisk; ArchiveDisk archiveDisk;
@ObfuscatedName("w") @ObfuscatedName("q")
@ObfuscatedSignature( @ObfuscatedSignature(
signature = "Lke;" signature = "Lke;"
) )
@Export("masterDisk") @Export("masterDisk")
ArchiveDisk masterDisk; ArchiveDisk masterDisk;
@ObfuscatedName("u") @ObfuscatedName("l")
@ObfuscatedGetter( @ObfuscatedGetter(
intValue = -697196869 intValue = -485019115
) )
@Export("index") @Export("index")
int index; int index;
@ObfuscatedName("y") @ObfuscatedName("j")
volatile boolean field3145; volatile boolean field3158;
@ObfuscatedName("aa") @ObfuscatedName("af")
boolean field3139; boolean field3163;
@ObfuscatedName("aw") @ObfuscatedName("ad")
@Export("validGroups") @Export("validGroups")
volatile boolean[] validGroups; volatile boolean[] validGroups;
@ObfuscatedName("aq") @ObfuscatedName("ai")
@ObfuscatedGetter( @ObfuscatedGetter(
intValue = 1007467833 intValue = -811032565
) )
@Export("indexCrc") @Export("indexCrc")
int indexCrc; int indexCrc;
@ObfuscatedName("ad") @ObfuscatedName("ag")
@ObfuscatedGetter( @ObfuscatedGetter(
intValue = -722952975 intValue = -714735647
) )
@Export("indexVersion") @Export("indexVersion")
int indexVersion; int indexVersion;
@ObfuscatedName("ag") @ObfuscatedName("ao")
@ObfuscatedGetter( @ObfuscatedGetter(
intValue = 372476733 intValue = -1499508755
) )
int field3148; int field3168;
static { static {
Archive_crc = new CRC32(); Archive_crc = new CRC32();
@@ -63,170 +63,142 @@ public class Archive extends AbstractArchive {
) )
public Archive(ArchiveDisk var1, ArchiveDisk var2, int var3, boolean var4, boolean var5, boolean var6) { public Archive(ArchiveDisk var1, ArchiveDisk var2, int var3, boolean var4, boolean var5, boolean var6) {
super(var4, var5); super(var4, var5);
this.field3145 = false; this.field3158 = false;
this.field3139 = false; this.field3163 = false;
this.field3148 = -1; this.field3168 = -1;
this.archiveDisk = var1; this.archiveDisk = var1;
this.masterDisk = var2; this.masterDisk = var2;
this.index = var3; this.index = var3;
this.field3139 = var6; this.field3163 = var6;
int var8 = this.index; WorldMapIcon_0.method224(this, this.index);
if (Calendar.NetCache_reference != null) {
Calendar.NetCache_reference.offset = var8 * 8 + 5;
int var9 = Calendar.NetCache_reference.readInt();
int var10 = Calendar.NetCache_reference.readInt();
this.loadIndex(var9, var10);
} else {
BuddyRankComparator.requestNetFile((Archive)null, 255, 255, 0, (byte)0, true);
NetCache.NetCache_archives[var8] = this;
} }
} @ObfuscatedName("f")
@ObfuscatedName("t")
@ObfuscatedSignature( @ObfuscatedSignature(
signature = "(IB)V", signature = "(II)V",
garbageValue = "117" garbageValue = "-64779180"
) )
@Export("loadRegionFromGroup") @Export("loadRegionFromGroup")
void loadRegionFromGroup(int var1) { void loadRegionFromGroup(int var1) {
Tile.method3021(this.index, var1); int var2 = this.index;
long var3 = (long)((var2 << 16) + var1);
NetFileRequest var5 = (NetFileRequest)NetCache.NetCache_pendingWrites.get(var3);
if (var5 != null) {
NetCache.NetCache_pendingWritesQueue.addLast(var5);
} }
@ObfuscatedName("i") }
@ObfuscatedName("w")
@ObfuscatedSignature( @ObfuscatedSignature(
signature = "(II)I", signature = "(II)I",
garbageValue = "-778670663" garbageValue = "-1387572162"
) )
@Export("groupLoadPercent") @Export("groupLoadPercent")
int groupLoadPercent(int var1) { int groupLoadPercent(int var1) {
if (super.groups[var1] != null) { if (super.groups[var1] != null) {
return 100; return 100;
} else if (this.validGroups[var1]) {
return 100;
} else { } else {
return this.validGroups[var1] ? 100 : PcmPlayer.method2638(this.index, var1); int var3 = this.index;
long var4 = (long)((var3 << 16) + var1);
int var2;
if (NetCache.NetCache_currentResponse != null && NetCache.NetCache_currentResponse.key == var4) {
var2 = class32.NetCache_responseArchiveBuffer.offset * 99 / (class32.NetCache_responseArchiveBuffer.array.length - NetCache.NetCache_currentResponse.padding) + 1;
} else {
var2 = 0;
}
return var2;
} }
} }
@ObfuscatedName("h") @ObfuscatedName("o")
@ObfuscatedSignature( @ObfuscatedSignature(
signature = "(II)V", signature = "(II)V",
garbageValue = "664192835" garbageValue = "130067407"
) )
@Export("loadGroup") @Export("loadGroup")
void loadGroup(int var1) { void loadGroup(int var1) {
if (this.archiveDisk != null && this.validGroups != null && this.validGroups[var1]) { if (this.archiveDisk != null && this.validGroups != null && this.validGroups[var1]) {
ArchiveDisk var2 = this.archiveDisk; PlayerType.method4210(var1, this.archiveDisk, this);
byte[] var4 = null;
synchronized(ArchiveDiskActionHandler.ArchiveDiskActionHandler_requestQueue) {
for (ArchiveDiskAction var6 = (ArchiveDiskAction)ArchiveDiskActionHandler.ArchiveDiskActionHandler_requestQueue.last(); var6 != null; var6 = (ArchiveDiskAction)ArchiveDiskActionHandler.ArchiveDiskActionHandler_requestQueue.previous()) {
if (var6.key == (long)var1 && var2 == var6.archiveDisk && var6.type == 0) {
var4 = var6.data;
break;
}
}
}
if (var4 != null) {
this.load(var2, var1, var4, true);
} else { } else {
byte[] var5 = var2.read(var1); ClientPreferences.requestNetFile(this, this.index, var1, super.groupCrcs[var1], (byte)2, true);
this.load(var2, var1, var5, true);
}
} else {
BuddyRankComparator.requestNetFile(this, this.index, var1, super.groupCrcs[var1], (byte)2, true);
} }
} }
@ObfuscatedName("dm") @ObfuscatedName("dw")
@ObfuscatedSignature( @ObfuscatedSignature(
signature = "(I)Z", signature = "(B)Z",
garbageValue = "1944128769" garbageValue = "0"
) )
public boolean method4409() { public boolean method4345() {
return this.field3145; return this.field3158;
} }
@ObfuscatedName("di") @ObfuscatedName("de")
@ObfuscatedSignature( @ObfuscatedSignature(
signature = "(I)I", signature = "(B)I",
garbageValue = "1888934237" garbageValue = "-77"
) )
@Export("percentage") @Export("percentage")
public int percentage() { public int percentage() {
if (this.field3145) { if (this.field3158) {
return 100; return 100;
} else if (super.groups != null) { } else if (super.groups != null) {
return 99; return 99;
} else { } else {
int var1 = PcmPlayer.method2638(255, this.index); int var2 = this.index;
long var3 = (long)(var2 + 16711680);
int var1;
if (NetCache.NetCache_currentResponse != null && NetCache.NetCache_currentResponse.key == var3) {
var1 = class32.NetCache_responseArchiveBuffer.offset * 99 / (class32.NetCache_responseArchiveBuffer.array.length - NetCache.NetCache_currentResponse.padding) + 1;
} else {
var1 = 0;
}
int var5 = var1;
if (var1 >= 100) { if (var1 >= 100) {
var1 = 99; var5 = 99;
} }
return var1; return var5;
} }
} }
@ObfuscatedName("dn") @ObfuscatedName("dx")
@ObfuscatedSignature( @ObfuscatedSignature(
signature = "(III)V", signature = "(III)V",
garbageValue = "1627267757" garbageValue = "-1360359241"
) )
@Export("loadIndex") @Export("loadIndex")
public void loadIndex(int var1, int var2) { void loadIndex(int var1, int var2) {
this.indexCrc = var1; this.indexCrc = var1;
this.indexVersion = var2; this.indexVersion = var2;
if (this.masterDisk != null) { if (this.masterDisk != null) {
int var3 = this.index; PlayerType.method4210(this.index, this.masterDisk, this);
ArchiveDisk var4 = this.masterDisk;
byte[] var6 = null;
synchronized(ArchiveDiskActionHandler.ArchiveDiskActionHandler_requestQueue) {
for (ArchiveDiskAction var8 = (ArchiveDiskAction)ArchiveDiskActionHandler.ArchiveDiskActionHandler_requestQueue.last(); var8 != null; var8 = (ArchiveDiskAction)ArchiveDiskActionHandler.ArchiveDiskActionHandler_requestQueue.previous()) {
if (var8.key == (long)var3 && var4 == var8.archiveDisk && var8.type == 0) {
var6 = var8.data;
break;
}
}
}
if (var6 != null) {
this.load(var4, var3, var6, true);
} else { } else {
byte[] var7 = var4.read(var3); ClientPreferences.requestNetFile(this, 255, this.index, this.indexCrc, (byte)0, true);
this.load(var4, var3, var7, true);
}
} else {
BuddyRankComparator.requestNetFile(this, 255, this.index, this.indexCrc, (byte)0, true);
} }
} }
@ObfuscatedName("dr") @ObfuscatedName("dc")
@ObfuscatedSignature( @ObfuscatedSignature(
signature = "(I[BZZB)V", signature = "(I[BZZI)V",
garbageValue = "4" garbageValue = "1341522635"
) )
@Export("write") @Export("write")
public void write(int var1, byte[] var2, boolean var3, boolean var4) { void write(int var1, byte[] var2, boolean var3, boolean var4) {
if (var3) { if (var3) {
if (this.field3145) { if (this.field3158) {
throw new RuntimeException(); throw new RuntimeException();
} }
if (this.masterDisk != null) { if (this.masterDisk != null) {
int var5 = this.index; TileItem.method2144(this.index, var2, this.masterDisk);
ArchiveDisk var6 = this.masterDisk;
ArchiveDiskAction var7 = new ArchiveDiskAction();
var7.type = 0;
var7.key = (long)var5;
var7.data = var2;
var7.archiveDisk = var6;
synchronized(ArchiveDiskActionHandler.ArchiveDiskActionHandler_requestQueue) {
ArchiveDiskActionHandler.ArchiveDiskActionHandler_requestQueue.addFirst(var7);
}
ItemContainer.method1250();
} }
this.decodeIndex(var2); this.decodeIndex(var2);
@@ -235,42 +207,44 @@ public class Archive extends AbstractArchive {
var2[var2.length - 2] = (byte)(super.groupVersions[var1] >> 8); var2[var2.length - 2] = (byte)(super.groupVersions[var1] >> 8);
var2[var2.length - 1] = (byte)super.groupVersions[var1]; var2[var2.length - 1] = (byte)super.groupVersions[var1];
if (this.archiveDisk != null) { if (this.archiveDisk != null) {
ArchiveDisk var11 = this.archiveDisk; TileItem.method2144(var1, var2, this.archiveDisk);
ArchiveDiskAction var14 = new ArchiveDiskAction();
var14.type = 0;
var14.key = (long)var1;
var14.data = var2;
var14.archiveDisk = var11;
synchronized(ArchiveDiskActionHandler.ArchiveDiskActionHandler_requestQueue) {
ArchiveDiskActionHandler.ArchiveDiskActionHandler_requestQueue.addFirst(var14);
}
ItemContainer.method1250();
this.validGroups[var1] = true; this.validGroups[var1] = true;
} }
if (var4) { if (var4) {
super.groups[var1] = MusicPatchPcmStream.method4064(var2, false); Object[] var5 = super.groups;
Object var7;
if (var2 == null) {
var7 = null;
} else if (var2.length > 136) {
DirectByteArrayCopier var8 = new DirectByteArrayCopier();
var8.set(var2);
var7 = var8;
} else {
var7 = var2;
}
var5[var1] = var7;
} }
} }
} }
@ObfuscatedName("do") @ObfuscatedName("dk")
@ObfuscatedSignature( @ObfuscatedSignature(
signature = "(Lke;I[BZI)V", signature = "(Lke;I[BZB)V",
garbageValue = "-1897627904" garbageValue = "45"
) )
@Export("load") @Export("load")
public void load(ArchiveDisk var1, int var2, byte[] var3, boolean var4) { void load(ArchiveDisk var1, int var2, byte[] var3, boolean var4) {
int var5; int var5;
if (var1 == this.masterDisk) { if (var1 == this.masterDisk) {
if (this.field3145) { if (this.field3158) {
throw new RuntimeException(); throw new RuntimeException();
} }
if (var3 == null) { if (var3 == null) {
BuddyRankComparator.requestNetFile(this, 255, this.index, this.indexCrc, (byte)0, true); ClientPreferences.requestNetFile(this, 255, this.index, this.indexCrc, (byte)0, true);
return; return;
} }
@@ -278,37 +252,37 @@ public class Archive extends AbstractArchive {
Archive_crc.update(var3, 0, var3.length); Archive_crc.update(var3, 0, var3.length);
var5 = (int)Archive_crc.getValue(); var5 = (int)Archive_crc.getValue();
if (var5 != this.indexCrc) { if (var5 != this.indexCrc) {
BuddyRankComparator.requestNetFile(this, 255, this.index, this.indexCrc, (byte)0, true); ClientPreferences.requestNetFile(this, 255, this.index, this.indexCrc, (byte)0, true);
return; return;
} }
Buffer var9 = new Buffer(ArchiveLoader.decompressBytes(var3)); Buffer var11 = new Buffer(class226.decompressBytes(var3));
int var7 = var9.readUnsignedByte(); int var12 = var11.readUnsignedByte();
if (var7 != 5 && var7 != 6) { if (var12 != 5 && var12 != 6) {
throw new RuntimeException(var7 + "," + this.index + "," + var2); throw new RuntimeException(var12 + "," + this.index + "," + var2);
} }
int var8 = 0; int var8 = 0;
if (var7 >= 6) { if (var12 >= 6) {
var8 = var9.readInt(); var8 = var11.readInt();
} }
if (var8 != this.indexVersion) { if (var8 != this.indexVersion) {
BuddyRankComparator.requestNetFile(this, 255, this.index, this.indexCrc, (byte)0, true); ClientPreferences.requestNetFile(this, 255, this.index, this.indexCrc, (byte)0, true);
return; return;
} }
this.decodeIndex(var3); this.decodeIndex(var3);
this.loadAllLocal(); this.loadAllLocal();
} else { } else {
if (!var4 && var2 == this.field3148) { if (!var4 && var2 == this.field3168) {
this.field3145 = true; this.field3158 = true;
} }
if (var3 == null || var3.length <= 2) { if (var3 == null || var3.length <= 2) {
this.validGroups[var2] = false; this.validGroups[var2] = false;
if (this.field3139 || var4) { if (this.field3163 || var4) {
BuddyRankComparator.requestNetFile(this, this.index, var2, super.groupCrcs[var2], (byte)2, var4); ClientPreferences.requestNetFile(this, this.index, var2, super.groupCrcs[var2], (byte)2, var4);
} }
return; return;
@@ -320,8 +294,8 @@ public class Archive extends AbstractArchive {
int var6 = ((var3[var3.length - 2] & 255) << 8) + (var3[var3.length - 1] & 255); int var6 = ((var3[var3.length - 2] & 255) << 8) + (var3[var3.length - 1] & 255);
if (var5 != super.groupCrcs[var2] || var6 != super.groupVersions[var2]) { if (var5 != super.groupCrcs[var2] || var6 != super.groupVersions[var2]) {
this.validGroups[var2] = false; this.validGroups[var2] = false;
if (this.field3139 || var4) { if (this.field3163 || var4) {
BuddyRankComparator.requestNetFile(this, this.index, var2, super.groupCrcs[var2], (byte)2, var4); ClientPreferences.requestNetFile(this, this.index, var2, super.groupCrcs[var2], (byte)2, var4);
} }
return; return;
@@ -329,16 +303,28 @@ public class Archive extends AbstractArchive {
this.validGroups[var2] = true; this.validGroups[var2] = true;
if (var4) { if (var4) {
super.groups[var2] = MusicPatchPcmStream.method4064(var3, false); Object[] var7 = super.groups;
Object var9;
if (var3 == null) {
var9 = null;
} else if (var3.length > 136) {
DirectByteArrayCopier var10 = new DirectByteArrayCopier();
var10.set(var3);
var9 = var10;
} else {
var9 = var3;
}
var7[var2] = var9;
} }
} }
} }
@ObfuscatedName("ds") @ObfuscatedName("dj")
@ObfuscatedSignature( @ObfuscatedSignature(
signature = "(B)V", signature = "(I)V",
garbageValue = "0" garbageValue = "-1169710133"
) )
@Export("loadAllLocal") @Export("loadAllLocal")
void loadAllLocal() { void loadAllLocal() {
@@ -350,56 +336,46 @@ public class Archive extends AbstractArchive {
} }
if (this.archiveDisk == null) { if (this.archiveDisk == null) {
this.field3145 = true; this.field3158 = true;
} else { } else {
this.field3148 = -1; this.field3168 = -1;
for (var1 = 0; var1 < this.validGroups.length; ++var1) { for (var1 = 0; var1 < this.validGroups.length; ++var1) {
if (super.fileCounts[var1] > 0) { if (super.fileCounts[var1] > 0) {
ArchiveDisk var2 = this.archiveDisk; class40.method780(var1, this.archiveDisk, this);
ArchiveDiskAction var4 = new ArchiveDiskAction(); this.field3168 = var1;
var4.type = 1;
var4.key = (long)var1;
var4.archiveDisk = var2;
var4.archive = this;
synchronized(ArchiveDiskActionHandler.ArchiveDiskActionHandler_requestQueue) {
ArchiveDiskActionHandler.ArchiveDiskActionHandler_requestQueue.addFirst(var4);
}
ItemContainer.method1250();
this.field3148 = var1;
} }
} }
if (this.field3148 == -1) { if (this.field3168 == -1) {
this.field3145 = true; this.field3158 = true;
} }
} }
} }
@ObfuscatedName("dz") @ObfuscatedName("dp")
@ObfuscatedSignature( @ObfuscatedSignature(
signature = "(II)Z", signature = "(II)Z",
garbageValue = "139739095" garbageValue = "2065580050"
) )
public boolean method4417(int var1) { public boolean method4354(int var1) {
return this.validGroups[var1]; return this.validGroups[var1];
} }
@ObfuscatedName("dj") @ObfuscatedName("di")
@ObfuscatedSignature( @ObfuscatedSignature(
signature = "(II)Z", signature = "(II)Z",
garbageValue = "308980057" garbageValue = "581589057"
) )
public boolean method4436(int var1) { public boolean method4355(int var1) {
return this.getGroupFileIds(var1) != null; return this.getGroupFileIds(var1) != null;
} }
@ObfuscatedName("df") @ObfuscatedName("dn")
@ObfuscatedSignature( @ObfuscatedSignature(
signature = "(B)I", signature = "(I)I",
garbageValue = "52" garbageValue = "1792861334"
) )
@Export("loadPercent") @Export("loadPercent")
public int loadPercent() { public int loadPercent() {
+36 -39
View File
@@ -9,30 +9,30 @@ import net.runelite.mapping.ObfuscatedSignature;
@ObfuscatedName("ke") @ObfuscatedName("ke")
@Implements("ArchiveDisk") @Implements("ArchiveDisk")
public final class ArchiveDisk { public final class ArchiveDisk {
@ObfuscatedName("a") @ObfuscatedName("u")
@Export("ArchiveDisk_buffer") @Export("ArchiveDisk_buffer")
static byte[] ArchiveDisk_buffer; static byte[] ArchiveDisk_buffer;
@ObfuscatedName("t") @ObfuscatedName("f")
@ObfuscatedSignature( @ObfuscatedSignature(
signature = "Lmz;" signature = "Lmb;"
) )
@Export("datFile") @Export("datFile")
BufferedFile datFile; BufferedFile datFile;
@ObfuscatedName("n") @ObfuscatedName("b")
@ObfuscatedSignature( @ObfuscatedSignature(
signature = "Lmz;" signature = "Lmb;"
) )
@Export("idxFile") @Export("idxFile")
BufferedFile idxFile; BufferedFile idxFile;
@ObfuscatedName("q") @ObfuscatedName("g")
@ObfuscatedGetter( @ObfuscatedGetter(
intValue = 161703877 intValue = 417377451
) )
@Export("archive") @Export("archive")
int archive; int archive;
@ObfuscatedName("v") @ObfuscatedName("z")
@ObfuscatedGetter( @ObfuscatedGetter(
intValue = -1904076189 intValue = 1640009955
) )
@Export("maxEntrySize") @Export("maxEntrySize")
int maxEntrySize; int maxEntrySize;
@@ -42,7 +42,7 @@ public final class ArchiveDisk {
} }
@ObfuscatedSignature( @ObfuscatedSignature(
signature = "(ILmz;Lmz;I)V" signature = "(ILmb;Lmb;I)V"
) )
public ArchiveDisk(int var1, BufferedFile var2, BufferedFile var3, int var4) { public ArchiveDisk(int var1, BufferedFile var2, BufferedFile var3, int var4) {
this.datFile = null; this.datFile = null;
@@ -54,10 +54,10 @@ public final class ArchiveDisk {
this.maxEntrySize = var4; this.maxEntrySize = var4;
} }
@ObfuscatedName("a") @ObfuscatedName("u")
@ObfuscatedSignature( @ObfuscatedSignature(
signature = "(II)[B", signature = "(II)[B",
garbageValue = "909989456" garbageValue = "-2146892586"
) )
@Export("read") @Export("read")
public byte[] read(int var1) { public byte[] read(int var1) {
@@ -81,15 +81,14 @@ public final class ArchiveDisk {
} else { } else {
byte[] var5 = new byte[var3]; byte[] var5 = new byte[var3];
int var6 = 0; int var6 = 0;
int var7 = 0;
while (var6 < var3) { for (int var7 = 0; var6 < var3; ++var7) {
if (var4 == 0) { if (var4 == 0) {
var10000 = null; var10000 = null;
return (byte[])var10000; return (byte[])var10000;
} }
this.datFile.seek(520L * (long)var4); this.datFile.seek((long)var4 * 520L);
int var8 = var3 - var6; int var8 = var3 - var6;
int var9; int var9;
int var10; int var10;
@@ -102,7 +101,7 @@ public final class ArchiveDisk {
} }
var13 = 10; var13 = 10;
this.datFile.read(ArchiveDisk_buffer, 0, var13 + var8); this.datFile.read(ArchiveDisk_buffer, 0, var8 + var13);
var9 = ((ArchiveDisk_buffer[1] & 255) << 16) + ((ArchiveDisk_buffer[0] & 255) << 24) + (ArchiveDisk_buffer[3] & 255) + ((ArchiveDisk_buffer[2] & 255) << 8); var9 = ((ArchiveDisk_buffer[1] & 255) << 16) + ((ArchiveDisk_buffer[0] & 255) << 24) + (ArchiveDisk_buffer[3] & 255) + ((ArchiveDisk_buffer[2] & 255) << 8);
var10 = (ArchiveDisk_buffer[5] & 255) + ((ArchiveDisk_buffer[4] & 255) << 8); var10 = (ArchiveDisk_buffer[5] & 255) + ((ArchiveDisk_buffer[4] & 255) << 8);
var11 = (ArchiveDisk_buffer[8] & 255) + ((ArchiveDisk_buffer[7] & 255) << 8) + ((ArchiveDisk_buffer[6] & 255) << 16); var11 = (ArchiveDisk_buffer[8] & 255) + ((ArchiveDisk_buffer[7] & 255) << 8) + ((ArchiveDisk_buffer[6] & 255) << 16);
@@ -120,25 +119,23 @@ public final class ArchiveDisk {
var12 = ArchiveDisk_buffer[7] & 255; var12 = ArchiveDisk_buffer[7] & 255;
} }
if (var9 == var1 && var7 == var10 && var12 == this.archive) { if (var9 != var1 || var10 != var7 || var12 != this.archive) {
if (var11 >= 0 && (long)var11 <= this.datFile.length() / 520L) { var10000 = null;
int var14 = var13 + var8; return (byte[])var10000;
}
if (var11 < 0 || (long)var11 > this.datFile.length() / 520L) {
var10000 = null;
return (byte[])var10000;
}
int var14 = var8 + var13;
for (int var15 = var13; var15 < var14; ++var15) { for (int var15 = var13; var15 < var14; ++var15) {
var5[var6++] = ArchiveDisk_buffer[var15]; var5[var6++] = ArchiveDisk_buffer[var15];
} }
var4 = var11; var4 = var11;
++var7;
continue;
}
var10000 = null;
return (byte[])var10000;
}
var10000 = null;
return (byte[])var10000;
} }
byte[] var20 = var5; byte[] var20 = var5;
@@ -151,10 +148,10 @@ public final class ArchiveDisk {
} }
} }
@ObfuscatedName("t") @ObfuscatedName("f")
@ObfuscatedSignature( @ObfuscatedSignature(
signature = "(I[BII)Z", signature = "(I[BII)Z",
garbageValue = "434454104" garbageValue = "-847322953"
) )
@Export("write") @Export("write")
public boolean write(int var1, byte[] var2, int var3) { public boolean write(int var1, byte[] var2, int var3) {
@@ -172,10 +169,10 @@ public final class ArchiveDisk {
} }
} }
@ObfuscatedName("n") @ObfuscatedName("b")
@ObfuscatedSignature( @ObfuscatedSignature(
signature = "(I[BIZI)Z", signature = "(I[BIZB)Z",
garbageValue = "-498922457" garbageValue = "127"
) )
@Export("write0") @Export("write0")
boolean write0(int var1, byte[] var2, int var3, boolean var4) { boolean write0(int var1, byte[] var2, int var3, boolean var4) {
@@ -216,7 +213,7 @@ public final class ArchiveDisk {
while (true) { while (true) {
if (var7 < var3) { if (var7 < var3) {
label170: { label172: {
int var9 = 0; int var9 = 0;
int var10; int var10;
if (var4) { if (var4) {
@@ -227,7 +224,7 @@ public final class ArchiveDisk {
try { try {
this.datFile.read(ArchiveDisk_buffer, 0, 10); this.datFile.read(ArchiveDisk_buffer, 0, 10);
} catch (EOFException var17) { } catch (EOFException var17) {
break label170; break label172;
} }
var10 = ((ArchiveDisk_buffer[1] & 255) << 16) + ((ArchiveDisk_buffer[0] & 255) << 24) + (ArchiveDisk_buffer[3] & 255) + ((ArchiveDisk_buffer[2] & 255) << 8); var10 = ((ArchiveDisk_buffer[1] & 255) << 16) + ((ArchiveDisk_buffer[0] & 255) << 24) + (ArchiveDisk_buffer[3] & 255) + ((ArchiveDisk_buffer[2] & 255) << 8);
@@ -238,7 +235,7 @@ public final class ArchiveDisk {
try { try {
this.datFile.read(ArchiveDisk_buffer, 0, 8); this.datFile.read(ArchiveDisk_buffer, 0, 8);
} catch (EOFException var16) { } catch (EOFException var16) {
break label170; break label172;
} }
var10 = (ArchiveDisk_buffer[1] & 255) + ((ArchiveDisk_buffer[0] & 255) << 8); var10 = (ArchiveDisk_buffer[1] & 255) + ((ArchiveDisk_buffer[0] & 255) << 8);
@@ -285,7 +282,7 @@ public final class ArchiveDisk {
ArchiveDisk_buffer[7] = (byte)(var9 >> 8); ArchiveDisk_buffer[7] = (byte)(var9 >> 8);
ArchiveDisk_buffer[8] = (byte)var9; ArchiveDisk_buffer[8] = (byte)var9;
ArchiveDisk_buffer[9] = (byte)this.archive; ArchiveDisk_buffer[9] = (byte)this.archive;
this.datFile.seek((long)var6 * 520L); this.datFile.seek(520L * (long)var6);
this.datFile.write(ArchiveDisk_buffer, 0, 10); this.datFile.write(ArchiveDisk_buffer, 0, 10);
var10 = var3 - var7; var10 = var3 - var7;
if (var10 > 510) { if (var10 > 510) {
@@ -307,7 +304,7 @@ public final class ArchiveDisk {
ArchiveDisk_buffer[5] = (byte)(var9 >> 8); ArchiveDisk_buffer[5] = (byte)(var9 >> 8);
ArchiveDisk_buffer[6] = (byte)var9; ArchiveDisk_buffer[6] = (byte)var9;
ArchiveDisk_buffer[7] = (byte)this.archive; ArchiveDisk_buffer[7] = (byte)this.archive;
this.datFile.seek((long)var6 * 520L); this.datFile.seek(520L * (long)var6);
this.datFile.write(ArchiveDisk_buffer, 0, 8); this.datFile.write(ArchiveDisk_buffer, 0, 8);
var10 = var3 - var7; var10 = var3 - var7;
if (var10 > 512) { if (var10 > 512) {
@@ -3,391 +3,58 @@ import net.runelite.mapping.Implements;
import net.runelite.mapping.ObfuscatedGetter; import net.runelite.mapping.ObfuscatedGetter;
import net.runelite.mapping.ObfuscatedName; import net.runelite.mapping.ObfuscatedName;
import net.runelite.mapping.ObfuscatedSignature; import net.runelite.mapping.ObfuscatedSignature;
import net.runelite.rs.ScriptOpcodes;
@ObfuscatedName("hs") @ObfuscatedName("ho")
@Implements("ArchiveDiskAction") @Implements("ArchiveDiskAction")
public class ArchiveDiskAction extends Node { public class ArchiveDiskAction extends Node {
@ObfuscatedName("a") @ObfuscatedName("u")
@ObfuscatedGetter( @ObfuscatedGetter(
intValue = -114474261 intValue = 168002015
) )
@Export("type") @Export("type")
int type; int type;
@ObfuscatedName("t") @ObfuscatedName("f")
@Export("data") @Export("data")
public byte[] data; byte[] data;
@ObfuscatedName("n") @ObfuscatedName("b")
@ObfuscatedSignature( @ObfuscatedSignature(
signature = "Lke;" signature = "Lke;"
) )
@Export("archiveDisk") @Export("archiveDisk")
public ArchiveDisk archiveDisk; ArchiveDisk archiveDisk;
@ObfuscatedName("q") @ObfuscatedName("g")
@ObfuscatedSignature( @ObfuscatedSignature(
signature = "Lij;" signature = "Lij;"
) )
@Export("archive") @Export("archive")
public Archive archive; Archive archive;
ArchiveDiskAction() { ArchiveDiskAction() {
} }
@ObfuscatedName("a") @ObfuscatedName("f")
@ObfuscatedSignature( @ObfuscatedSignature(
signature = "(Ljava/lang/CharSequence;Ljava/lang/CharSequence;Lgw;B)I", signature = "([BILjava/lang/CharSequence;I)I",
garbageValue = "2" garbageValue = "-1806066306"
) )
@Export("compareStrings") public static int method4229(byte[] var0, int var1, CharSequence var2) {
public static int compareStrings(CharSequence var0, CharSequence var1, Language var2) { int var3 = var2.length();
int var3 = var0.length(); int var4 = var1;
int var4 = var1.length();
int var5 = 0;
int var6 = 0;
char var7 = 0;
char var8 = 0;
while (var5 - var7 < var3 || var6 - var8 < var4) { for (int var5 = 0; var5 < var3; ++var5) {
if (var5 - var7 >= var3) { char var6 = var2.charAt(var5);
return -1; if (var6 <= 127) {
} var0[var4++] = (byte)var6;
} else if (var6 <= 2047) {
if (var6 - var8 >= var4) { var0[var4++] = (byte)(192 | var6 >> 6);
return 1; var0[var4++] = (byte)(128 | var6 & '?');
}
char var9;
if (var7 != 0) {
var9 = var7;
boolean var14 = false;
} else { } else {
var9 = var0.charAt(var5++); var0[var4++] = (byte)(224 | var6 >> '\f');
} var0[var4++] = (byte)(128 | var6 >> 6 & 63);
var0[var4++] = (byte)(128 | var6 & '?');
char var10;
if (var8 != 0) {
var10 = var8;
boolean var15 = false;
} else {
var10 = var1.charAt(var6++);
}
var7 = WorldMapSectionType.method296(var9);
var8 = WorldMapSectionType.method296(var10);
var9 = class80.standardizeChar(var9, var2);
var10 = class80.standardizeChar(var10, var2);
if (var10 != var9 && Character.toUpperCase(var9) != Character.toUpperCase(var10)) {
var9 = Character.toLowerCase(var9);
var10 = Character.toLowerCase(var10);
if (var10 != var9) {
return ScriptEvent.lowercaseChar(var9, var2) - ScriptEvent.lowercaseChar(var10, var2);
}
}
}
int var16 = Math.min(var3, var4);
char var12;
int var17;
for (var17 = 0; var17 < var16; ++var17) {
if (var2 == Language.Language_FR) {
var5 = var3 - 1 - var17;
var6 = var4 - 1 - var17;
} else {
var6 = var17;
var5 = var17;
}
char var11 = var0.charAt(var5);
var12 = var1.charAt(var6);
if (var11 != var12 && Character.toUpperCase(var11) != Character.toUpperCase(var12)) {
var11 = Character.toLowerCase(var11);
var12 = Character.toLowerCase(var12);
if (var11 != var12) {
return ScriptEvent.lowercaseChar(var11, var2) - ScriptEvent.lowercaseChar(var12, var2);
}
}
}
var17 = var3 - var4;
if (var17 != 0) {
return var17;
} else {
for (int var18 = 0; var18 < var16; ++var18) {
var12 = var0.charAt(var18);
char var13 = var1.charAt(var18);
if (var12 != var13) {
return ScriptEvent.lowercaseChar(var12, var2) - ScriptEvent.lowercaseChar(var13, var2);
} }
} }
return 0; return var4 - var1;
}
}
@ObfuscatedName("ay")
@ObfuscatedSignature(
signature = "(ILcj;ZB)I",
garbageValue = "1"
)
static int method4296(int var0, Script var1, boolean var2) {
if (var0 == ScriptOpcodes.WORLDLIST_FETCH) {
Interpreter.Interpreter_intStack[++Interpreter.Interpreter_intStackSize - 1] = class43.loadWorlds() ? 1 : 0;
return 1;
} else {
World var3;
if (var0 == ScriptOpcodes.WORLDLIST_START) {
var3 = WorldMapData_0.worldListStart();
if (var3 != null) {
Interpreter.Interpreter_intStack[++Interpreter.Interpreter_intStackSize - 1] = var3.id;
Interpreter.Interpreter_intStack[++Interpreter.Interpreter_intStackSize - 1] = var3.properties;
Interpreter.Interpreter_stringStack[++WorldMapDecoration.Interpreter_stringStackSize - 1] = var3.activity;
Interpreter.Interpreter_intStack[++Interpreter.Interpreter_intStackSize - 1] = var3.location;
Interpreter.Interpreter_intStack[++Interpreter.Interpreter_intStackSize - 1] = var3.population;
Interpreter.Interpreter_stringStack[++WorldMapDecoration.Interpreter_stringStackSize - 1] = var3.host;
} else {
Interpreter.Interpreter_intStack[++Interpreter.Interpreter_intStackSize - 1] = -1;
Interpreter.Interpreter_intStack[++Interpreter.Interpreter_intStackSize - 1] = 0;
Interpreter.Interpreter_stringStack[++WorldMapDecoration.Interpreter_stringStackSize - 1] = "";
Interpreter.Interpreter_intStack[++Interpreter.Interpreter_intStackSize - 1] = 0;
Interpreter.Interpreter_intStack[++Interpreter.Interpreter_intStackSize - 1] = 0;
Interpreter.Interpreter_stringStack[++WorldMapDecoration.Interpreter_stringStackSize - 1] = "";
}
return 1;
} else if (var0 == ScriptOpcodes.WORLDLIST_NEXT) {
var3 = class1.getNextWorldListWorld();
if (var3 != null) {
Interpreter.Interpreter_intStack[++Interpreter.Interpreter_intStackSize - 1] = var3.id;
Interpreter.Interpreter_intStack[++Interpreter.Interpreter_intStackSize - 1] = var3.properties;
Interpreter.Interpreter_stringStack[++WorldMapDecoration.Interpreter_stringStackSize - 1] = var3.activity;
Interpreter.Interpreter_intStack[++Interpreter.Interpreter_intStackSize - 1] = var3.location;
Interpreter.Interpreter_intStack[++Interpreter.Interpreter_intStackSize - 1] = var3.population;
Interpreter.Interpreter_stringStack[++WorldMapDecoration.Interpreter_stringStackSize - 1] = var3.host;
} else {
Interpreter.Interpreter_intStack[++Interpreter.Interpreter_intStackSize - 1] = -1;
Interpreter.Interpreter_intStack[++Interpreter.Interpreter_intStackSize - 1] = 0;
Interpreter.Interpreter_stringStack[++WorldMapDecoration.Interpreter_stringStackSize - 1] = "";
Interpreter.Interpreter_intStack[++Interpreter.Interpreter_intStackSize - 1] = 0;
Interpreter.Interpreter_intStack[++Interpreter.Interpreter_intStackSize - 1] = 0;
Interpreter.Interpreter_stringStack[++WorldMapDecoration.Interpreter_stringStackSize - 1] = "";
}
return 1;
} else {
World var4;
int var5;
int var7;
if (var0 == ScriptOpcodes.WORLDLIST_SPECIFIC) {
var7 = Interpreter.Interpreter_intStack[--Interpreter.Interpreter_intStackSize];
var4 = null;
for (var5 = 0; var5 < World.World_count; ++var5) {
if (var7 == Username.World_worlds[var5].id) {
var4 = Username.World_worlds[var5];
break;
}
}
if (var4 != null) {
Interpreter.Interpreter_intStack[++Interpreter.Interpreter_intStackSize - 1] = var4.id;
Interpreter.Interpreter_intStack[++Interpreter.Interpreter_intStackSize - 1] = var4.properties;
Interpreter.Interpreter_stringStack[++WorldMapDecoration.Interpreter_stringStackSize - 1] = var4.activity;
Interpreter.Interpreter_intStack[++Interpreter.Interpreter_intStackSize - 1] = var4.location;
Interpreter.Interpreter_intStack[++Interpreter.Interpreter_intStackSize - 1] = var4.population;
Interpreter.Interpreter_stringStack[++WorldMapDecoration.Interpreter_stringStackSize - 1] = var4.host;
} else {
Interpreter.Interpreter_intStack[++Interpreter.Interpreter_intStackSize - 1] = -1;
Interpreter.Interpreter_intStack[++Interpreter.Interpreter_intStackSize - 1] = 0;
Interpreter.Interpreter_stringStack[++WorldMapDecoration.Interpreter_stringStackSize - 1] = "";
Interpreter.Interpreter_intStack[++Interpreter.Interpreter_intStackSize - 1] = 0;
Interpreter.Interpreter_intStack[++Interpreter.Interpreter_intStackSize - 1] = 0;
Interpreter.Interpreter_stringStack[++WorldMapDecoration.Interpreter_stringStackSize - 1] = "";
}
return 1;
} else if (var0 == ScriptOpcodes.WORLDLIST_SORT) {
Interpreter.Interpreter_intStackSize -= 4;
var7 = Interpreter.Interpreter_intStack[Interpreter.Interpreter_intStackSize];
boolean var10 = Interpreter.Interpreter_intStack[Interpreter.Interpreter_intStackSize + 1] == 1;
var5 = Interpreter.Interpreter_intStack[Interpreter.Interpreter_intStackSize + 2];
boolean var6 = Interpreter.Interpreter_intStack[Interpreter.Interpreter_intStackSize + 3] == 1;
class96.sortWorldList(var7, var10, var5, var6);
return 1;
} else if (var0 != ScriptOpcodes.GETWORLDINFO) {
if (var0 == ScriptOpcodes.SETFOLLOWEROPSLOWPRIORITY) {
Client.followerOpsLowPriority = Interpreter.Interpreter_intStack[--Interpreter.Interpreter_intStackSize] == 1;
return 1;
} else {
int var8;
ParamDefinition var9;
if (var0 == ScriptOpcodes.NC_PARAM) {
Interpreter.Interpreter_intStackSize -= 2;
var7 = Interpreter.Interpreter_intStack[Interpreter.Interpreter_intStackSize];
var8 = Interpreter.Interpreter_intStack[Interpreter.Interpreter_intStackSize + 1];
var9 = class162.getParamDefinition(var8);
if (var9.isString()) {
Interpreter.Interpreter_stringStack[++WorldMapDecoration.Interpreter_stringStackSize - 1] = SecureRandomCallable.getNpcDefinition(var7).getStringParam(var8, var9.defaultStr);
} else {
Interpreter.Interpreter_intStack[++Interpreter.Interpreter_intStackSize - 1] = SecureRandomCallable.getNpcDefinition(var7).getIntParam(var8, var9.defaultInt);
}
return 1;
} else if (var0 == ScriptOpcodes.LC_PARAM) {
Interpreter.Interpreter_intStackSize -= 2;
var7 = Interpreter.Interpreter_intStack[Interpreter.Interpreter_intStackSize];
var8 = Interpreter.Interpreter_intStack[Interpreter.Interpreter_intStackSize + 1];
var9 = class162.getParamDefinition(var8);
if (var9.isString()) {
Interpreter.Interpreter_stringStack[++WorldMapDecoration.Interpreter_stringStackSize - 1] = WorldMapDecorationType.getObjectDefinition(var7).getStringParam(var8, var9.defaultStr);
} else {
Interpreter.Interpreter_intStack[++Interpreter.Interpreter_intStackSize - 1] = WorldMapDecorationType.getObjectDefinition(var7).getIntParam(var8, var9.defaultInt);
}
return 1;
} else if (var0 == ScriptOpcodes.OC_PARAM) {
Interpreter.Interpreter_intStackSize -= 2;
var7 = Interpreter.Interpreter_intStack[Interpreter.Interpreter_intStackSize];
var8 = Interpreter.Interpreter_intStack[Interpreter.Interpreter_intStackSize + 1];
var9 = class162.getParamDefinition(var8);
if (var9.isString()) {
Interpreter.Interpreter_stringStack[++WorldMapDecoration.Interpreter_stringStackSize - 1] = class222.ItemDefinition_get(var7).getStringParam(var8, var9.defaultStr);
} else {
Interpreter.Interpreter_intStack[++Interpreter.Interpreter_intStackSize - 1] = class222.ItemDefinition_get(var7).getIntParam(var8, var9.defaultInt);
}
return 1;
} else if (var0 == ScriptOpcodes.STRUCT_PARAM) {
Interpreter.Interpreter_intStackSize -= 2;
var7 = Interpreter.Interpreter_intStack[Interpreter.Interpreter_intStackSize];
var8 = Interpreter.Interpreter_intStack[Interpreter.Interpreter_intStackSize + 1];
var9 = class162.getParamDefinition(var8);
if (var9.isString()) {
Interpreter.Interpreter_stringStack[++WorldMapDecoration.Interpreter_stringStackSize - 1] = GrandExchangeOfferOwnWorldComparator.StructDefinition_getStructDefinition(var7).getStringParam(var8, var9.defaultStr);
} else {
Interpreter.Interpreter_intStack[++Interpreter.Interpreter_intStackSize - 1] = GrandExchangeOfferOwnWorldComparator.StructDefinition_getStructDefinition(var7).getIntParam(var8, var9.defaultInt);
}
return 1;
} else if (var0 == ScriptOpcodes.ON_MOBILE) {
Interpreter.Interpreter_intStack[++Interpreter.Interpreter_intStackSize - 1] = Client.onMobile ? 1 : 0;
return 1;
} else if (var0 == ScriptOpcodes.CLIENTTYPE) {
Interpreter.Interpreter_intStack[++Interpreter.Interpreter_intStackSize - 1] = Client.clientType & 3;
return 1;
} else if (var0 == 6520) {
return 1;
} else if (var0 == ScriptOpcodes.MOBILE_KEYBOARDHIDE) {
return 1;
} else if (var0 == 6522) {
--WorldMapDecoration.Interpreter_stringStackSize;
--Interpreter.Interpreter_intStackSize;
return 1;
} else if (var0 == 6523) {
--WorldMapDecoration.Interpreter_stringStackSize;
--Interpreter.Interpreter_intStackSize;
return 1;
} else if (var0 == ScriptOpcodes.BATTERYLEVEL) {
Interpreter.Interpreter_intStack[++Interpreter.Interpreter_intStackSize - 1] = -1;
return 1;
} else if (var0 == ScriptOpcodes.BATTERYCHARGING) {
Interpreter.Interpreter_intStack[++Interpreter.Interpreter_intStackSize - 1] = 1;
return 1;
} else if (var0 == ScriptOpcodes.WIFIAVAILABLE) {
Interpreter.Interpreter_intStack[++Interpreter.Interpreter_intStackSize - 1] = 1;
return 1;
} else {
return 2;
}
}
} else {
var7 = Interpreter.Interpreter_intStack[--Interpreter.Interpreter_intStackSize];
if (var7 >= 0 && var7 < World.World_count) {
var4 = Username.World_worlds[var7];
Interpreter.Interpreter_intStack[++Interpreter.Interpreter_intStackSize - 1] = var4.id;
Interpreter.Interpreter_intStack[++Interpreter.Interpreter_intStackSize - 1] = var4.properties;
Interpreter.Interpreter_stringStack[++WorldMapDecoration.Interpreter_stringStackSize - 1] = var4.activity;
Interpreter.Interpreter_intStack[++Interpreter.Interpreter_intStackSize - 1] = var4.location;
Interpreter.Interpreter_intStack[++Interpreter.Interpreter_intStackSize - 1] = var4.population;
Interpreter.Interpreter_stringStack[++WorldMapDecoration.Interpreter_stringStackSize - 1] = var4.host;
} else {
Interpreter.Interpreter_intStack[++Interpreter.Interpreter_intStackSize - 1] = -1;
Interpreter.Interpreter_intStack[++Interpreter.Interpreter_intStackSize - 1] = 0;
Interpreter.Interpreter_stringStack[++WorldMapDecoration.Interpreter_stringStackSize - 1] = "";
Interpreter.Interpreter_intStack[++Interpreter.Interpreter_intStackSize - 1] = 0;
Interpreter.Interpreter_intStack[++Interpreter.Interpreter_intStackSize - 1] = 0;
Interpreter.Interpreter_stringStack[++WorldMapDecoration.Interpreter_stringStackSize - 1] = "";
}
return 1;
}
}
}
}
@ObfuscatedName("ix")
@ObfuscatedSignature(
signature = "(Ljava/lang/String;Ljava/lang/String;IIIIZI)V",
garbageValue = "-128903403"
)
@Export("insertMenuItem")
static final void insertMenuItem(String var0, String var1, int var2, int var3, int var4, int var5, boolean var6) {
if (!Client.isMenuOpen) {
if (Client.menuOptionsCount < 500) {
Client.menuActions[Client.menuOptionsCount] = var0;
Client.menuTargets[Client.menuOptionsCount] = var1;
Client.menuOpcodes[Client.menuOptionsCount] = var2;
Client.menuIdentifiers[Client.menuOptionsCount] = var3;
Client.menuArguments1[Client.menuOptionsCount] = var4;
Client.menuArguments2[Client.menuOptionsCount] = var5;
Client.menuShiftClick[Client.menuOptionsCount] = var6;
++Client.menuOptionsCount;
}
}
}
@ObfuscatedName("kf")
@ObfuscatedSignature(
signature = "(Lhi;I)V",
garbageValue = "774063316"
)
static final void method4297(Widget var0) {
int var1 = var0.contentType;
if (var1 == 324) {
if (Client.field818 == -1) {
Client.field818 = var0.spriteId2;
Client.field896 = var0.spriteId;
}
if (Client.playerAppearance.isFemale) {
var0.spriteId2 = Client.field818;
} else {
var0.spriteId2 = Client.field896;
}
} else if (var1 == 325) {
if (Client.field818 == -1) {
Client.field818 = var0.spriteId2;
Client.field896 = var0.spriteId;
}
if (Client.playerAppearance.isFemale) {
var0.spriteId2 = Client.field896;
} else {
var0.spriteId2 = Client.field818;
}
} else if (var1 == 327) {
var0.modelAngleX = 150;
var0.modelAngleY = (int)(Math.sin((double)Client.cycle / 40.0D) * 256.0D) & 2047;
var0.modelType = 5;
var0.modelId = 0;
} else if (var1 == 328) {
var0.modelAngleX = 150;
var0.modelAngleY = (int)(Math.sin((double)Client.cycle / 40.0D) * 256.0D) & 2047;
var0.modelType = 5;
var0.modelId = 1;
}
} }
} }
@@ -4,53 +4,37 @@ import net.runelite.mapping.ObfuscatedGetter;
import net.runelite.mapping.ObfuscatedName; import net.runelite.mapping.ObfuscatedName;
import net.runelite.mapping.ObfuscatedSignature; import net.runelite.mapping.ObfuscatedSignature;
@ObfuscatedName("ig") @ObfuscatedName("ic")
@Implements("ArchiveDiskActionHandler") @Implements("ArchiveDiskActionHandler")
public class ArchiveDiskActionHandler implements Runnable { public class ArchiveDiskActionHandler implements Runnable {
@ObfuscatedName("a") @ObfuscatedName("u")
@ObfuscatedSignature( @ObfuscatedSignature(
signature = "Ljb;" signature = "Ljd;"
) )
@Export("ArchiveDiskActionHandler_requestQueue") @Export("ArchiveDiskActionHandler_requestQueue")
public static NodeDeque ArchiveDiskActionHandler_requestQueue; static NodeDeque ArchiveDiskActionHandler_requestQueue;
@ObfuscatedName("n") @ObfuscatedName("f")
@ObfuscatedSignature( @ObfuscatedSignature(
signature = "Ljb;" signature = "Ljd;"
) )
@Export("ArchiveDiskActionHandler_responseQueue") @Export("ArchiveDiskActionHandler_responseQueue")
public static NodeDeque ArchiveDiskActionHandler_responseQueue; static NodeDeque ArchiveDiskActionHandler_responseQueue;
@ObfuscatedName("q") @ObfuscatedName("b")
@ObfuscatedGetter( @ObfuscatedGetter(
intValue = -2025054069 intValue = 1217750145
) )
static int field3132; public static int field3155;
@ObfuscatedName("v") @ObfuscatedName("g")
@Export("ArchiveDiskActionHandler_lock") @Export("ArchiveDiskActionHandler_lock")
static Object ArchiveDiskActionHandler_lock; public static Object ArchiveDiskActionHandler_lock;
@ObfuscatedName("l") @ObfuscatedName("z")
@Export("ArchiveDiskActionHandler_thread") @Export("ArchiveDiskActionHandler_thread")
static Thread ArchiveDiskActionHandler_thread; static Thread ArchiveDiskActionHandler_thread;
@ObfuscatedName("c")
@ObfuscatedGetter(
intValue = 1867272823
)
static int field3133;
@ObfuscatedName("dr")
@ObfuscatedGetter(
longValue = -4581696908763214333L
)
static long field3130;
@ObfuscatedName("fk")
@ObfuscatedSignature(
signature = "Lks;"
)
@Export("fontPlain12")
static Font fontPlain12;
static { static {
ArchiveDiskActionHandler_requestQueue = new NodeDeque(); ArchiveDiskActionHandler_requestQueue = new NodeDeque();
ArchiveDiskActionHandler_responseQueue = new NodeDeque(); ArchiveDiskActionHandler_responseQueue = new NodeDeque();
field3132 = 0; field3155 = 0;
ArchiveDiskActionHandler_lock = new Object(); ArchiveDiskActionHandler_lock = new Object();
} }
@@ -79,29 +63,162 @@ public class ArchiveDiskActionHandler implements Runnable {
} }
synchronized(ArchiveDiskActionHandler_lock) { synchronized(ArchiveDiskActionHandler_lock) {
if (field3132 <= 1) { if (field3155 <= 1) {
field3132 = 0; field3155 = 0;
ArchiveDiskActionHandler_lock.notifyAll(); ArchiveDiskActionHandler_lock.notifyAll();
return; return;
} }
field3132 = 600; field3155 = 600;
} }
} else { } else {
ClanChat.method5367(100L); long var8 = 99L;
try {
Thread.sleep(var8);
} catch (InterruptedException var15) {
}
try {
Thread.sleep(1L);
} catch (InterruptedException var14) {
}
synchronized(ArchiveDiskActionHandler_lock) { synchronized(ArchiveDiskActionHandler_lock) {
if (field3132 <= 1) { if (field3155 <= 1) {
field3132 = 0; field3155 = 0;
ArchiveDiskActionHandler_lock.notifyAll(); ArchiveDiskActionHandler_lock.notifyAll();
return; return;
} }
--field3132; --field3155;
} }
} }
} }
} catch (Exception var13) { } catch (Exception var17) {
User.RunException_sendStackTrace((String)null, var13); Calendar.RunException_sendStackTrace((String)null, var17);
}
}
@ObfuscatedName("u")
@ObfuscatedSignature(
signature = "(Ljava/lang/CharSequence;Ljava/lang/CharSequence;Lgc;I)I",
garbageValue = "-1277174237"
)
@Export("compareStrings")
public static int compareStrings(CharSequence var0, CharSequence var1, Language var2) {
int var3 = var0.length();
int var4 = var1.length();
int var5 = 0;
int var6 = 0;
byte var7 = 0;
byte var8 = 0;
while (var5 - var7 < var3 || var6 - var8 < var4) {
if (var5 - var7 >= var3) {
return -1;
}
if (var6 - var8 >= var4) {
return 1;
}
char var9;
if (var7 != 0) {
var9 = (char)var7;
boolean var14 = false;
} else {
var9 = var0.charAt(var5++);
}
char var10;
if (var8 != 0) {
var10 = (char)var8;
boolean var15 = false;
} else {
var10 = var1.charAt(var6++);
}
byte var11;
if (var9 == 198) {
var11 = 69;
} else if (var9 == 230) {
var11 = 101;
} else if (var9 == 223) {
var11 = 115;
} else if (var9 == 338) {
var11 = 69;
} else if (var9 == 339) {
var11 = 101;
} else {
var11 = 0;
}
var7 = var11;
byte var12;
if (var10 == 198) {
var12 = 69;
} else if (var10 == 230) {
var12 = 101;
} else if (var10 == 223) {
var12 = 115;
} else if (var10 == 338) {
var12 = 69;
} else if (var10 == 339) {
var12 = 101;
} else {
var12 = 0;
}
var8 = var12;
var9 = PacketWriter.standardizeChar(var9, var2);
var10 = PacketWriter.standardizeChar(var10, var2);
if (var10 != var9 && Character.toUpperCase(var9) != Character.toUpperCase(var10)) {
var9 = Character.toLowerCase(var9);
var10 = Character.toLowerCase(var10);
if (var9 != var10) {
return StudioGame.lowercaseChar(var9, var2) - StudioGame.lowercaseChar(var10, var2);
}
}
}
int var16 = Math.min(var3, var4);
int var17;
char var20;
for (var17 = 0; var17 < var16; ++var17) {
if (var2 == Language.Language_FR) {
var5 = var3 - 1 - var17;
var6 = var4 - 1 - var17;
} else {
var6 = var17;
var5 = var17;
}
char var18 = var0.charAt(var5);
var20 = var1.charAt(var6);
if (var18 != var20 && Character.toUpperCase(var18) != Character.toUpperCase(var20)) {
var18 = Character.toLowerCase(var18);
var20 = Character.toLowerCase(var20);
if (var20 != var18) {
return StudioGame.lowercaseChar(var18, var2) - StudioGame.lowercaseChar(var20, var2);
}
}
}
var17 = var3 - var4;
if (var17 != 0) {
return var17;
} else {
for (int var19 = 0; var19 < var16; ++var19) {
var20 = var0.charAt(var19);
char var13 = var1.charAt(var19);
if (var20 != var13) {
return StudioGame.lowercaseChar(var20, var2) - StudioGame.lowercaseChar(var13, var2);
}
}
return 0;
} }
} }
} }
+24 -833
View File
@@ -3,38 +3,30 @@ import net.runelite.mapping.Implements;
import net.runelite.mapping.ObfuscatedGetter; import net.runelite.mapping.ObfuscatedGetter;
import net.runelite.mapping.ObfuscatedName; import net.runelite.mapping.ObfuscatedName;
import net.runelite.mapping.ObfuscatedSignature; import net.runelite.mapping.ObfuscatedSignature;
import net.runelite.rs.ScriptOpcodes;
@ObfuscatedName("bh") @ObfuscatedName("bj")
@Implements("ArchiveLoader") @Implements("ArchiveLoader")
public class ArchiveLoader { public class ArchiveLoader {
@ObfuscatedName("c") @ObfuscatedName("y")
@ObfuscatedGetter( public static short[][] field533;
intValue = 1109035575 @ObfuscatedName("k")
) @Export("musicTrackBoolean")
@Export("gameCyclesToDo") public static boolean musicTrackBoolean;
static int gameCyclesToDo; @ObfuscatedName("f")
@ObfuscatedName("x")
@ObfuscatedSignature(
signature = "[Lmz;"
)
@Export("JagexCache_idxFiles")
public static BufferedFile[] JagexCache_idxFiles;
@ObfuscatedName("t")
@ObfuscatedSignature( @ObfuscatedSignature(
signature = "Lij;" signature = "Lij;"
) )
@Export("archive") @Export("archive")
final Archive archive; final Archive archive;
@ObfuscatedName("n") @ObfuscatedName("b")
@ObfuscatedGetter( @ObfuscatedGetter(
intValue = -1458094845 intValue = -1292831283
) )
@Export("groupCount") @Export("groupCount")
final int groupCount; final int groupCount;
@ObfuscatedName("q") @ObfuscatedName("g")
@ObfuscatedGetter( @ObfuscatedGetter(
intValue = 1936388269 intValue = -95708581
) )
@Export("loadedCount") @Export("loadedCount")
int loadedCount; int loadedCount;
@@ -48,17 +40,17 @@ public class ArchiveLoader {
this.groupCount = var1.getGroupCount(); this.groupCount = var1.getGroupCount();
} }
@ObfuscatedName("a") @ObfuscatedName("u")
@ObfuscatedSignature( @ObfuscatedSignature(
signature = "(I)Z", signature = "(I)Z",
garbageValue = "2053388584" garbageValue = "-1362696328"
) )
@Export("isLoaded") @Export("isLoaded")
boolean isLoaded() { boolean isLoaded() {
this.loadedCount = 0; this.loadedCount = 0;
for (int var1 = 0; var1 < this.groupCount; ++var1) { for (int var1 = 0; var1 < this.groupCount; ++var1) {
if (!this.archive.method4436(var1) || this.archive.method4417(var1)) { if (!this.archive.method4355(var1) || this.archive.method4354(var1)) {
++this.loadedCount; ++this.loadedCount;
} }
} }
@@ -66,822 +58,21 @@ public class ArchiveLoader {
return this.loadedCount >= this.groupCount; return this.loadedCount >= this.groupCount;
} }
@ObfuscatedName("a") @ObfuscatedName("u")
@ObfuscatedSignature( @ObfuscatedSignature(
signature = "(II)Z", signature = "(I)[Lik;",
garbageValue = "145350821" garbageValue = "141715201"
) )
public static boolean method1239(int var0) { static VerticalAlignment[] method1177() {
return var0 == WorldMapDecorationType.field2723.id; return new VerticalAlignment[]{VerticalAlignment.field3200, VerticalAlignment.VerticalAlignment_centered, VerticalAlignment.field3201};
} }
@ObfuscatedName("a") @ObfuscatedName("u")
@ObfuscatedSignature( @ObfuscatedSignature(
signature = "(III)I", signature = "(B)V",
garbageValue = "-1915313873" garbageValue = "-84"
) )
static int method1237(int var0, int var1) { public static void method1178() {
if (var0 == -2) { class96.reflectionChecks = new IterableNodeDeque();
return 12345678;
} else if (var0 == -1) {
if (var1 < 0) {
var1 = 0;
} else if (var1 > 127) {
var1 = 127;
}
var1 = 127 - var1;
return var1;
} else {
var1 = (var0 & 127) * var1 / 128;
if (var1 < 2) {
var1 = 2;
} else if (var1 > 126) {
var1 = 126;
}
return (var0 & 65408) + var1;
}
}
@ObfuscatedName("a")
@ObfuscatedSignature(
signature = "(Lhq;I)V",
garbageValue = "1291572583"
)
public static void method1235(AbstractArchive var0) {
FloorOverlayDefinition.FloorOverlayDefinition_archive = var0;
}
@ObfuscatedName("a")
@ObfuscatedSignature(
signature = "(Lkf;B)V",
garbageValue = "49"
)
@Export("updatePlayer")
static final void updatePlayer(PacketBuffer var0) {
var0.importIndex();
int var1 = Client.localPlayerIndex;
Player var2 = class215.localPlayer = Client.players[var1] = new Player();
var2.index = var1;
int var3 = var0.readBits(30);
byte var4 = (byte)(var3 >> 28);
int var5 = var3 >> 14 & 16383;
int var6 = var3 & 16383;
var2.pathX[0] = var5 - UserComparator8.baseX * 64;
var2.x = (var2.pathX[0] << 7) + (var2.transformedSize() << 6);
var2.pathY[0] = var6 - HealthBar.baseY * 64;
var2.y = (var2.pathY[0] << 7) + (var2.transformedSize() << 6);
Player.Client_plane = var2.plane = var4;
if (Players.field1229[var1] != null) {
var2.read(Players.field1229[var1]);
}
Players.Players_count = 0;
Players.Players_indices[++Players.Players_count - 1] = var1;
Players.field1227[var1] = 0;
Players.Players_emptyIdxCount = 0;
for (int var7 = 1; var7 < 2048; ++var7) {
if (var1 != var7) {
int var8 = var0.readBits(18);
int var9 = var8 >> 16;
int var10 = var8 >> 8 & 597;
int var11 = var8 & 597;
Players.Players_regions[var7] = (var10 << 14) + var11 + (var9 << 28);
Players.Players_orientations[var7] = 0;
Players.Players_targetIndices[var7] = -1;
Players.Players_emptyIndices[++Players.Players_emptyIdxCount - 1] = var7;
Players.field1227[var7] = 0;
}
}
var0.exportIndex();
}
@ObfuscatedName("t")
@ObfuscatedSignature(
signature = "(IIII)I",
garbageValue = "-561019342"
)
static int method1230(int var0, int var1, int var2) {
if (var2 > 179) {
var1 /= 2;
}
if (var2 > 192) {
var1 /= 2;
}
if (var2 > 217) {
var1 /= 2;
}
if (var2 > 243) {
var1 /= 2;
}
int var3 = (var1 / 32 << 7) + (var0 / 4 << 10) + var2 / 2;
return var3;
}
@ObfuscatedName("n")
@ObfuscatedSignature(
signature = "(IIB)Lhi;",
garbageValue = "-102"
)
@Export("getWidgetChild")
public static Widget getWidgetChild(int var0, int var1) {
Widget var2 = PacketBufferNode.getWidget(var0);
if (var1 == -1) {
return var2;
} else {
return var2 != null && var2.children != null && var1 < var2.children.length ? var2.children[var1] : null;
}
}
@ObfuscatedName("q")
@ObfuscatedSignature(
signature = "(Lkc;II)Ljava/lang/String;",
garbageValue = "1190041961"
)
static String method1234(Buffer var0, int var1) {
try {
int var2 = var0.readUShortSmart();
if (var2 > var1) {
var2 = var1;
}
byte[] var3 = new byte[var2];
var0.offset += class210.huffman.decompress(var0.array, var0.offset, var3, 0, var2);
String var4 = class160.decodeStringCp1252(var3, 0, var2);
return var4;
} catch (Exception var6) {
return "Cabbage";
}
}
@ObfuscatedName("w")
@ObfuscatedSignature(
signature = "(Ljava/lang/String;II)V",
garbageValue = "2071952148"
)
static final void method1242(String var0, int var1) {
PacketBufferNode var2 = SoundSystem.getPacketBufferNode(ClientPacket.field2246, Client.packetWriter.isaacCipher);
var2.packetBuffer.writeByte(UserComparator6.stringCp1252NullTerminatedByteSize(var0) + 1);
var2.packetBuffer.writeStringCp1252NullTerminated(var0);
var2.packetBuffer.method5634(var1);
Client.packetWriter.addNode(var2);
}
@ObfuscatedName("ax")
@ObfuscatedSignature(
signature = "([BI)[B",
garbageValue = "-79197837"
)
@Export("decompressBytes")
static final byte[] decompressBytes(byte[] var0) {
Buffer var1 = new Buffer(var0);
int var2 = var1.readUnsignedByte();
int var3 = var1.readInt();
if (var3 < 0 || AbstractArchive.field3128 != 0 && var3 > AbstractArchive.field3128) {
throw new RuntimeException();
} else if (var2 == 0) {
byte[] var4 = new byte[var3];
var1.readBytes(var4, 0, var3);
return var4;
} else {
int var6 = var1.readInt();
if (var6 < 0 || AbstractArchive.field3128 != 0 && var6 > AbstractArchive.field3128) {
throw new RuntimeException();
} else {
byte[] var5 = new byte[var6];
if (var2 == 1) {
BZip2Decompressor.BZip2Decompressor_decompress(var5, var6, var0, var3, 9);
} else {
AbstractArchive.gzipDecompressor.decompress(var1, var5);
}
return var5;
}
}
}
@ObfuscatedName("aj")
@ObfuscatedSignature(
signature = "(ILcj;ZI)I",
garbageValue = "1460957872"
)
static int method1245(int var0, Script var1, boolean var2) {
if (var0 == ScriptOpcodes.GETWINDOWMODE) {
Interpreter.Interpreter_intStack[++Interpreter.Interpreter_intStackSize - 1] = WallDecoration.getWindowedMode();
return 1;
} else {
int var3;
if (var0 == ScriptOpcodes.SETWINDOWMODE) {
var3 = Interpreter.Interpreter_intStack[--Interpreter.Interpreter_intStackSize];
if (var3 == 1 || var3 == 2) {
FontName.setWindowedMode(var3);
}
return 1;
} else if (var0 == ScriptOpcodes.GETDEFAULTWINDOWMODE) {
Interpreter.Interpreter_intStack[++Interpreter.Interpreter_intStackSize - 1] = ScriptEvent.clientPreferences.windowMode;
return 1;
} else if (var0 != ScriptOpcodes.SETDEFAULTWINDOWMODE) {
if (var0 == 5310) {
--Interpreter.Interpreter_intStackSize;
return 1;
} else {
return 2;
}
} else {
var3 = Interpreter.Interpreter_intStack[--Interpreter.Interpreter_intStackSize];
if (var3 == 1 || var3 == 2) {
ScriptEvent.clientPreferences.windowMode = var3;
HitSplatDefinition.savePreferences();
}
return 1;
}
}
}
@ObfuscatedName("jg")
@ObfuscatedSignature(
signature = "(IIIIIB)V",
garbageValue = "-34"
)
@Export("drawScrollBar")
static final void drawScrollBar(int var0, int var1, int var2, int var3, int var4) {
NetSocket.scrollBarSprites[0].drawAt(var0, var1);
NetSocket.scrollBarSprites[1].drawAt(var0, var3 + var1 - 16);
Rasterizer2D.Rasterizer2D_fillRectangle(var0, var1 + 16, 16, var3 - 32, Client.field895);
int var5 = var3 * (var3 - 32) / var4;
if (var5 < 8) {
var5 = 8;
}
int var6 = (var3 - 32 - var5) * var2 / (var4 - var3);
Rasterizer2D.Rasterizer2D_fillRectangle(var0, var6 + var1 + 16, 16, var5, Client.field661);
Rasterizer2D.Rasterizer2D_drawVerticalLine(var0, var6 + var1 + 16, var5, Client.field790);
Rasterizer2D.Rasterizer2D_drawVerticalLine(var0 + 1, var6 + var1 + 16, var5, Client.field790);
Rasterizer2D.Rasterizer2D_drawHorizontalLine(var0, var6 + var1 + 16, 16, Client.field790);
Rasterizer2D.Rasterizer2D_drawHorizontalLine(var0, var6 + var1 + 17, 16, Client.field790);
Rasterizer2D.Rasterizer2D_drawVerticalLine(var0 + 15, var6 + var1 + 16, var5, Client.field683);
Rasterizer2D.Rasterizer2D_drawVerticalLine(var0 + 14, var6 + var1 + 17, var5 - 1, Client.field683);
Rasterizer2D.Rasterizer2D_drawHorizontalLine(var0, var6 + var5 + var1 + 15, 16, Client.field683);
Rasterizer2D.Rasterizer2D_drawHorizontalLine(var0 + 1, var5 + var6 + var1 + 14, 15, Client.field683);
}
@ObfuscatedName("jf")
@ObfuscatedSignature(
signature = "([Lhi;IIIIIIII)V",
garbageValue = "-954572124"
)
@Export("updateInterface")
static final void updateInterface(Widget[] var0, int var1, int var2, int var3, int var4, int var5, int var6, int var7) {
for (int var8 = 0; var8 < var0.length; ++var8) {
Widget var9 = var0[var8];
if (var9 != null && var9.parentId == var1 && (!var9.isIf3 || var9.type == 0 || var9.hasListener || class195.getWidgetClickMask(var9) != 0 || var9 == Client.clickedWidgetParent || var9.contentType == 1338)) {
if (var9.isIf3) {
if (WorldMapManager.isComponentHidden(var9)) {
continue;
}
} else if (var9.type == 0 && var9 != ChatChannel.mousedOverWidgetIf1 && WorldMapManager.isComponentHidden(var9)) {
continue;
}
int var10 = var9.x + var6;
int var11 = var7 + var9.y;
int var12;
int var13;
int var14;
int var15;
int var17;
int var18;
if (var9.type == 2) {
var12 = var2;
var13 = var3;
var14 = var4;
var15 = var5;
} else {
int var16;
if (var9.type == 9) {
var16 = var10;
var17 = var11;
var18 = var10 + var9.width;
int var19 = var11 + var9.height;
if (var18 < var10) {
var16 = var18;
var18 = var10;
}
if (var19 < var11) {
var17 = var19;
var19 = var11;
}
++var18;
++var19;
var12 = var16 > var2 ? var16 : var2;
var13 = var17 > var3 ? var17 : var3;
var14 = var18 < var4 ? var18 : var4;
var15 = var19 < var5 ? var19 : var5;
} else {
var16 = var10 + var9.width;
var17 = var11 + var9.height;
var12 = var10 > var2 ? var10 : var2;
var13 = var11 > var3 ? var11 : var3;
var14 = var16 < var4 ? var16 : var4;
var15 = var17 < var5 ? var17 : var5;
}
}
if (var9 == Client.clickedWidget) {
Client.field695 = true;
Client.field846 = var10;
Client.field814 = var11;
}
boolean var32 = false;
if (var9.field2606) {
switch(Client.field828) {
case 0:
var32 = true;
case 1:
default:
break;
case 2:
if (Client.field794 == var9.id >>> 16) {
var32 = true;
}
break;
case 3:
if (var9.id == Client.field794) {
var32 = true;
}
}
}
if (var32 || !var9.isIf3 || var12 < var14 && var13 < var15) {
if (var9.isIf3) {
ScriptEvent var26;
if (var9.noClickThrough) {
if (MouseHandler.MouseHandler_x >= var12 && MouseHandler.MouseHandler_y >= var13 && MouseHandler.MouseHandler_x < var14 && MouseHandler.MouseHandler_y < var15) {
for (var26 = (ScriptEvent)Client.scriptEvents.last(); var26 != null; var26 = (ScriptEvent)Client.scriptEvents.previous()) {
if (var26.isMouseInputEvent) {
var26.remove();
var26.widget.containsMouse = false;
}
}
if (FloorDecoration.widgetDragDuration == 0) {
Client.clickedWidget = null;
Client.clickedWidgetParent = null;
}
if (!Client.isMenuOpen) {
ClientPacket.addCancelMenuEntry();
}
}
} else if (var9.noScrollThrough && MouseHandler.MouseHandler_x >= var12 && MouseHandler.MouseHandler_y >= var13 && MouseHandler.MouseHandler_x < var14 && MouseHandler.MouseHandler_y < var15) {
for (var26 = (ScriptEvent)Client.scriptEvents.last(); var26 != null; var26 = (ScriptEvent)Client.scriptEvents.previous()) {
if (var26.isMouseInputEvent && var26.widget.onScroll == var26.args) {
var26.remove();
}
}
}
}
var17 = MouseHandler.MouseHandler_x;
var18 = MouseHandler.MouseHandler_y;
if (MouseHandler.MouseHandler_lastButton != 0) {
var17 = MouseHandler.MouseHandler_lastPressedX;
var18 = MouseHandler.MouseHandler_lastPressedY;
}
boolean var33 = var17 >= var12 && var18 >= var13 && var17 < var14 && var18 < var15;
if (var9.contentType == 1337) {
if (!Client.isLoading && !Client.isMenuOpen && var33) {
GrandExchangeOfferNameComparator.addSceneMenuOptions(var17, var18, var12, var13);
}
} else if (var9.contentType == 1338) {
WorldMapIcon_1.checkIfMinimapClicked(var9, var10, var11);
} else {
if (var9.contentType == 1400) {
Login.worldMap.onCycle(MouseHandler.MouseHandler_x, MouseHandler.MouseHandler_y, var33, var10, var11, var9.width, var9.height);
}
if (!Client.isMenuOpen && var33) {
if (var9.contentType == 1400) {
Login.worldMap.addElementMenuOptions(var10, var11, var9.width, var9.height, var17, var18);
} else {
class80.method2197(var9, var17 - var10, var18 - var11);
}
}
boolean var21;
int var23;
if (var32) {
for (int var20 = 0; var20 < var9.field2623.length; ++var20) {
var21 = false;
boolean var22 = false;
if (!var21 && var9.field2623[var20] != null) {
for (var23 = 0; var23 < var9.field2623[var20].length; ++var23) {
boolean var24 = false;
if (var9.field2627 != null) {
var24 = KeyHandler.KeyHandler_pressedKeys[var9.field2623[var20][var23]];
}
if (Frames.method3400(var9.field2623[var20][var23]) || var24) {
var21 = true;
if (var9.field2627 != null && var9.field2627[var20] > Client.cycle) {
break;
}
byte var25 = var9.field2624[var20][var23];
if (var25 == 0 || ((var25 & 8) == 0 || !KeyHandler.KeyHandler_pressedKeys[86] && !KeyHandler.KeyHandler_pressedKeys[82] && !KeyHandler.KeyHandler_pressedKeys[81]) && ((var25 & 2) == 0 || KeyHandler.KeyHandler_pressedKeys[86]) && ((var25 & 1) == 0 || KeyHandler.KeyHandler_pressedKeys[82]) && ((var25 & 4) == 0 || KeyHandler.KeyHandler_pressedKeys[81])) {
var22 = true;
break;
}
}
}
}
if (var22) {
if (var20 < 10) {
class287.widgetDefaultMenuAction(var20 + 1, var9.id, var9.childIndex, var9.itemId, "");
} else if (var20 == 10) {
InterfaceParent.Widget_runOnTargetLeave();
class51.selectSpell(var9.id, var9.childIndex, UserComparator5.method3551(class195.getWidgetClickMask(var9)), var9.itemId);
Client.selectedSpellActionName = SoundCache.method2666(var9);
if (Client.selectedSpellActionName == null) {
Client.selectedSpellActionName = "null";
}
Client.selectedSpellName = var9.dataText + AbstractArchive.colorStartTag(16777215);
}
var23 = var9.field2628[var20];
if (var9.field2627 == null) {
var9.field2627 = new int[var9.field2623.length];
}
if (var9.field2626 == null) {
var9.field2626 = new int[var9.field2623.length];
}
if (var23 != 0) {
if (var9.field2627[var20] == 0) {
var9.field2627[var20] = var23 + Client.cycle + var9.field2626[var20];
} else {
var9.field2627[var20] = var23 + Client.cycle;
}
} else {
var9.field2627[var20] = Integer.MAX_VALUE;
}
}
if (!var21 && var9.field2627 != null) {
var9.field2627[var20] = 0;
}
}
}
if (var9.isIf3) {
if (MouseHandler.MouseHandler_x >= var12 && MouseHandler.MouseHandler_y >= var13 && MouseHandler.MouseHandler_x < var14 && MouseHandler.MouseHandler_y < var15) {
var33 = true;
} else {
var33 = false;
}
boolean var34 = false;
if ((MouseHandler.MouseHandler_currentButton == 1 || !WorldMapLabelSize.mouseCam && MouseHandler.MouseHandler_currentButton == 4) && var33) {
var34 = true;
}
var21 = false;
if ((MouseHandler.MouseHandler_lastButton == 1 || !WorldMapLabelSize.mouseCam && MouseHandler.MouseHandler_lastButton == 4) && MouseHandler.MouseHandler_lastPressedX >= var12 && MouseHandler.MouseHandler_lastPressedY >= var13 && MouseHandler.MouseHandler_lastPressedX < var14 && MouseHandler.MouseHandler_lastPressedY < var15) {
var21 = true;
}
if (var21) {
class4.clickWidget(var9, MouseHandler.MouseHandler_lastPressedX - var10, MouseHandler.MouseHandler_lastPressedY - var11);
}
if (var9.contentType == 1400) {
Login.worldMap.method6429(var17, var18, var33 & var34, var33 & var21);
}
if (Client.clickedWidget != null && var9 != Client.clickedWidget && var33 && TextureProvider.method2931(class195.getWidgetClickMask(var9))) {
Client.draggedOnWidget = var9;
}
if (var9 == Client.clickedWidgetParent) {
Client.field809 = true;
Client.field748 = var10;
Client.field751 = var11;
}
if (var9.hasListener) {
ScriptEvent var29;
if (var33 && Client.mouseWheelRotation != 0 && var9.onScroll != null) {
var29 = new ScriptEvent();
var29.isMouseInputEvent = true;
var29.widget = var9;
var29.mouseY = Client.mouseWheelRotation;
var29.args = var9.onScroll;
Client.scriptEvents.addFirst(var29);
}
if (Client.clickedWidget != null || GrandExchangeOffer.dragInventoryWidget != null || Client.isMenuOpen) {
var21 = false;
var34 = false;
var33 = false;
}
if (!var9.isClicked && var21) {
var9.isClicked = true;
if (var9.onClick != null) {
var29 = new ScriptEvent();
var29.isMouseInputEvent = true;
var29.widget = var9;
var29.mouseX = MouseHandler.MouseHandler_lastPressedX - var10;
var29.mouseY = MouseHandler.MouseHandler_lastPressedY - var11;
var29.args = var9.onClick;
Client.scriptEvents.addFirst(var29);
}
}
if (var9.isClicked && var34 && var9.onClickRepeat != null) {
var29 = new ScriptEvent();
var29.isMouseInputEvent = true;
var29.widget = var9;
var29.mouseX = MouseHandler.MouseHandler_x - var10;
var29.mouseY = MouseHandler.MouseHandler_y - var11;
var29.args = var9.onClickRepeat;
Client.scriptEvents.addFirst(var29);
}
if (var9.isClicked && !var34) {
var9.isClicked = false;
if (var9.onRelease != null) {
var29 = new ScriptEvent();
var29.isMouseInputEvent = true;
var29.widget = var9;
var29.mouseX = MouseHandler.MouseHandler_x - var10;
var29.mouseY = MouseHandler.MouseHandler_y - var11;
var29.args = var9.onRelease;
Client.field832.addFirst(var29);
}
}
if (var34 && var9.onHold != null) {
var29 = new ScriptEvent();
var29.isMouseInputEvent = true;
var29.widget = var9;
var29.mouseX = MouseHandler.MouseHandler_x - var10;
var29.mouseY = MouseHandler.MouseHandler_y - var11;
var29.args = var9.onHold;
Client.scriptEvents.addFirst(var29);
}
if (!var9.containsMouse && var33) {
var9.containsMouse = true;
if (var9.onMouseOver != null) {
var29 = new ScriptEvent();
var29.isMouseInputEvent = true;
var29.widget = var9;
var29.mouseX = MouseHandler.MouseHandler_x - var10;
var29.mouseY = MouseHandler.MouseHandler_y - var11;
var29.args = var9.onMouseOver;
Client.scriptEvents.addFirst(var29);
}
}
if (var9.containsMouse && var33 && var9.onMouseRepeat != null) {
var29 = new ScriptEvent();
var29.isMouseInputEvent = true;
var29.widget = var9;
var29.mouseX = MouseHandler.MouseHandler_x - var10;
var29.mouseY = MouseHandler.MouseHandler_y - var11;
var29.args = var9.onMouseRepeat;
Client.scriptEvents.addFirst(var29);
}
if (var9.containsMouse && !var33) {
var9.containsMouse = false;
if (var9.onMouseLeave != null) {
var29 = new ScriptEvent();
var29.isMouseInputEvent = true;
var29.widget = var9;
var29.mouseX = MouseHandler.MouseHandler_x - var10;
var29.mouseY = MouseHandler.MouseHandler_y - var11;
var29.args = var9.onMouseLeave;
Client.field832.addFirst(var29);
}
}
if (var9.onTimer != null) {
var29 = new ScriptEvent();
var29.widget = var9;
var29.args = var9.onTimer;
Client.field813.addFirst(var29);
}
ScriptEvent var30;
int var35;
int var36;
if (var9.onVarTransmit != null && Client.field679 > var9.field2644) {
if (var9.varTransmitTriggers != null && Client.field679 - var9.field2644 <= 32) {
label886:
for (var35 = var9.field2644; var35 < Client.field679; ++var35) {
var23 = Client.field817[var35 & 31];
for (var36 = 0; var36 < var9.varTransmitTriggers.length; ++var36) {
if (var23 == var9.varTransmitTriggers[var36]) {
var30 = new ScriptEvent();
var30.widget = var9;
var30.args = var9.onVarTransmit;
Client.scriptEvents.addFirst(var30);
break label886;
}
}
}
} else {
var29 = new ScriptEvent();
var29.widget = var9;
var29.args = var9.onVarTransmit;
Client.scriptEvents.addFirst(var29);
}
var9.field2644 = Client.field679;
}
if (var9.onInvTransmit != null && Client.field820 > var9.field2567) {
if (var9.invTransmitTriggers != null && Client.field820 - var9.field2567 <= 32) {
label862:
for (var35 = var9.field2567; var35 < Client.field820; ++var35) {
var23 = Client.changedItemContainers[var35 & 31];
for (var36 = 0; var36 < var9.invTransmitTriggers.length; ++var36) {
if (var23 == var9.invTransmitTriggers[var36]) {
var30 = new ScriptEvent();
var30.widget = var9;
var30.args = var9.onInvTransmit;
Client.scriptEvents.addFirst(var30);
break label862;
}
}
}
} else {
var29 = new ScriptEvent();
var29.widget = var9;
var29.args = var9.onInvTransmit;
Client.scriptEvents.addFirst(var29);
}
var9.field2567 = Client.field820;
}
if (var9.onStatTransmit != null && Client.changedSkillsCount > var9.field2684) {
if (var9.statTransmitTriggers != null && Client.changedSkillsCount - var9.field2684 <= 32) {
label838:
for (var35 = var9.field2684; var35 < Client.changedSkillsCount; ++var35) {
var23 = Client.changedSkills[var35 & 31];
for (var36 = 0; var36 < var9.statTransmitTriggers.length; ++var36) {
if (var23 == var9.statTransmitTriggers[var36]) {
var30 = new ScriptEvent();
var30.widget = var9;
var30.args = var9.onStatTransmit;
Client.scriptEvents.addFirst(var30);
break label838;
}
}
}
} else {
var29 = new ScriptEvent();
var29.widget = var9;
var29.args = var9.onStatTransmit;
Client.scriptEvents.addFirst(var29);
}
var9.field2684 = Client.changedSkillsCount;
}
if (Client.chatCycle > var9.field2681 && var9.onChatTransmit != null) {
var29 = new ScriptEvent();
var29.widget = var9;
var29.args = var9.onChatTransmit;
Client.scriptEvents.addFirst(var29);
}
if (Client.field824 > var9.field2681 && var9.onFriendTransmit != null) {
var29 = new ScriptEvent();
var29.widget = var9;
var29.args = var9.onFriendTransmit;
Client.scriptEvents.addFirst(var29);
}
if (Client.field825 > var9.field2681 && var9.onClanTransmit != null) {
var29 = new ScriptEvent();
var29.widget = var9;
var29.args = var9.onClanTransmit;
Client.scriptEvents.addFirst(var29);
}
if (Client.field826 > var9.field2681 && var9.onStockTransmit != null) {
var29 = new ScriptEvent();
var29.widget = var9;
var29.args = var9.onStockTransmit;
Client.scriptEvents.addFirst(var29);
}
if (Client.field652 > var9.field2681 && var9.field2665 != null) {
var29 = new ScriptEvent();
var29.widget = var9;
var29.args = var9.field2665;
Client.scriptEvents.addFirst(var29);
}
if (Client.field834 > var9.field2681 && var9.onMiscTransmit != null) {
var29 = new ScriptEvent();
var29.widget = var9;
var29.args = var9.onMiscTransmit;
Client.scriptEvents.addFirst(var29);
}
var9.field2681 = Client.cycleCntr;
if (var9.onKey != null) {
for (var35 = 0; var35 < Client.field866; ++var35) {
ScriptEvent var31 = new ScriptEvent();
var31.widget = var9;
var31.keyTyped = Client.field854[var35];
var31.keyPressed = Client.field853[var35];
var31.args = var9.onKey;
Client.scriptEvents.addFirst(var31);
}
}
}
}
if (!var9.isIf3) {
if (Client.clickedWidget != null || GrandExchangeOffer.dragInventoryWidget != null || Client.isMenuOpen) {
continue;
}
if ((var9.mouseOverRedirect >= 0 || var9.mouseOverColor != 0) && MouseHandler.MouseHandler_x >= var12 && MouseHandler.MouseHandler_y >= var13 && MouseHandler.MouseHandler_x < var14 && MouseHandler.MouseHandler_y < var15) {
if (var9.mouseOverRedirect >= 0) {
ChatChannel.mousedOverWidgetIf1 = var0[var9.mouseOverRedirect];
} else {
ChatChannel.mousedOverWidgetIf1 = var9;
}
}
if (var9.type == 8 && MouseHandler.MouseHandler_x >= var12 && MouseHandler.MouseHandler_y >= var13 && MouseHandler.MouseHandler_x < var14 && MouseHandler.MouseHandler_y < var15) {
GrandExchangeEvents.field39 = var9;
}
if (var9.scrollHeight > var9.height) {
GrandExchangeOfferOwnWorldComparator.method1389(var9, var10 + var9.width, var11, var9.height, var9.scrollHeight, MouseHandler.MouseHandler_x, MouseHandler.MouseHandler_y);
}
}
if (var9.type == 0) {
updateInterface(var0, var9.id, var12, var13, var14, var15, var10 - var9.scrollX, var11 - var9.scrollY);
if (var9.children != null) {
updateInterface(var9.children, var9.id, var12, var13, var14, var15, var10 - var9.scrollX, var11 - var9.scrollY);
}
InterfaceParent var27 = (InterfaceParent)Client.interfaceParents.get((long)var9.id);
if (var27 != null) {
if (var27.type == 0 && MouseHandler.MouseHandler_x >= var12 && MouseHandler.MouseHandler_y >= var13 && MouseHandler.MouseHandler_x < var14 && MouseHandler.MouseHandler_y < var15 && !Client.isMenuOpen) {
for (ScriptEvent var28 = (ScriptEvent)Client.scriptEvents.last(); var28 != null; var28 = (ScriptEvent)Client.scriptEvents.previous()) {
if (var28.isMouseInputEvent) {
var28.remove();
var28.widget.containsMouse = false;
}
}
if (FloorDecoration.widgetDragDuration == 0) {
Client.clickedWidget = null;
Client.clickedWidgetParent = null;
}
if (!Client.isMenuOpen) {
ClientPacket.addCancelMenuEntry();
}
}
ServerBuild.updateRootInterface(var27.group, var12, var13, var14, var15, var10, var11);
}
}
}
}
}
}
} }
} }
+48 -122
View File
@@ -4,48 +4,55 @@ import net.runelite.mapping.ObfuscatedGetter;
import net.runelite.mapping.ObfuscatedName; import net.runelite.mapping.ObfuscatedName;
import net.runelite.mapping.ObfuscatedSignature; import net.runelite.mapping.ObfuscatedSignature;
@ObfuscatedName("cr") @ObfuscatedName("co")
@Implements("AttackOption") @Implements("AttackOption")
public enum AttackOption implements Enumerated { public enum AttackOption implements Enumerated {
@ObfuscatedName("a") @ObfuscatedName("u")
@ObfuscatedSignature( @ObfuscatedSignature(
signature = "Lcr;" signature = "Lco;"
) )
@Export("AttackOption_dependsOnCombatLevels") @Export("AttackOption_dependsOnCombatLevels")
AttackOption_dependsOnCombatLevels(0), AttackOption_dependsOnCombatLevels(0),
@ObfuscatedName("t") @ObfuscatedName("f")
@ObfuscatedSignature( @ObfuscatedSignature(
signature = "Lcr;" signature = "Lco;"
) )
@Export("AttackOption_alwaysRightClick") @Export("AttackOption_alwaysRightClick")
AttackOption_alwaysRightClick(1), AttackOption_alwaysRightClick(1),
@ObfuscatedName("n") @ObfuscatedName("b")
@ObfuscatedSignature( @ObfuscatedSignature(
signature = "Lcr;" signature = "Lco;"
) )
@Export("AttackOption_leftClickWhereAvailable") @Export("AttackOption_leftClickWhereAvailable")
AttackOption_leftClickWhereAvailable(2), AttackOption_leftClickWhereAvailable(2),
@ObfuscatedName("q") @ObfuscatedName("g")
@ObfuscatedSignature( @ObfuscatedSignature(
signature = "Lcr;" signature = "Lco;"
) )
@Export("AttackOption_hidden") @Export("AttackOption_hidden")
AttackOption_hidden(3); AttackOption_hidden(3);
@ObfuscatedName("c") @ObfuscatedName("ox")
@Export("SpriteBuffer_spriteHeights")
public static int[] SpriteBuffer_spriteHeights;
@ObfuscatedName("h")
public static boolean field1151;
@ObfuscatedName("fp")
@ObfuscatedSignature( @ObfuscatedSignature(
signature = "Lfw;" signature = "Lcj;"
) )
@Export("socketTask") @Export("varcs")
static Task socketTask; static Varcs varcs;
@ObfuscatedName("v") @ObfuscatedName("fr")
@ObfuscatedSignature(
signature = "Lky;"
)
@Export("fontPlain11")
static Font fontPlain11;
@ObfuscatedName("gt")
@ObfuscatedSignature(
signature = "[Lln;"
)
@Export("mapMarkerSprites")
static Sprite[] mapMarkerSprites;
@ObfuscatedName("z")
@ObfuscatedGetter( @ObfuscatedGetter(
intValue = -871271379 intValue = 2079114159
) )
@Export("id") @Export("id")
final int id; final int id;
@@ -54,124 +61,43 @@ public enum AttackOption implements Enumerated {
this.id = var3; this.id = var3;
} }
@ObfuscatedName("q") @ObfuscatedName("g")
@ObfuscatedSignature( @ObfuscatedSignature(
signature = "(I)I", signature = "(B)I",
garbageValue = "-1993081102" garbageValue = "7"
) )
@Export("rsOrdinal") @Export("rsOrdinal")
public int rsOrdinal() { public int rsOrdinal() {
return this.id; return this.id;
} }
@ObfuscatedName("a") @ObfuscatedName("u")
@ObfuscatedSignature( @ObfuscatedSignature(
signature = "(Lhq;B)V", signature = "(III)I",
garbageValue = "17" garbageValue = "-573010380"
) )
public static void method2221(AbstractArchive var0) { static int method2098(int var0, int var1) {
VarbitDefinition.VarbitDefinition_archive = var0; ItemContainer var2 = (ItemContainer)ItemContainer.itemContainers.get((long)var0);
} if (var2 == null) {
return -1;
@ObfuscatedName("n")
@ObfuscatedSignature(
signature = "(Lhq;Lhq;ZIS)V",
garbageValue = "-32666"
)
static void method2218(AbstractArchive var0, AbstractArchive var1, boolean var2, int var3) {
if (Login.field1188) {
if (var3 == 4) {
Login.loginIndex = 4;
}
} else { } else {
Login.loginIndex = var3; return var1 >= 0 && var1 < var2.ids.length ? var2.ids[var1] : -1;
Rasterizer2D.Rasterizer2D_clear();
byte[] var4 = var0.takeFileByNames("title.jpg", "");
Login.leftTitleSprite = WorldMapSection1.convertJpgToSprite(var4);
FontName.rightTitleSprite = Login.leftTitleSprite.mirrorHorizontally();
if ((Client.worldProperties & 536870912) != 0) {
Tiles.logoSprite = ClientPacket.SpriteBuffer_getIndexedSpriteByName(var1, "logo_deadman_mode", "");
} else if ((Client.worldProperties & 1073741824) != 0) {
Tiles.logoSprite = ClientPacket.SpriteBuffer_getIndexedSpriteByName(var1, "logo_seasonal_mode", "");
} else {
Tiles.logoSprite = ClientPacket.SpriteBuffer_getIndexedSpriteByName(var1, "logo", "");
}
NPC.titleboxSprite = ClientPacket.SpriteBuffer_getIndexedSpriteByName(var1, "titlebox", "");
UserComparator9.titlebuttonSprite = ClientPacket.SpriteBuffer_getIndexedSpriteByName(var1, "titlebutton", "");
class208.runesSprite = PlayerAppearance.method4160(var1, "runes", "");
Decimator.title_muteSprite = PlayerAppearance.method4160(var1, "title_mute", "");
UserComparator8.options_buttons_0Sprite = ClientPacket.SpriteBuffer_getIndexedSpriteByName(var1, "options_radio_buttons,0", "");
class51.field412 = ClientPacket.SpriteBuffer_getIndexedSpriteByName(var1, "options_radio_buttons,4", "");
Login.options_buttons_2Sprite = ClientPacket.SpriteBuffer_getIndexedSpriteByName(var1, "options_radio_buttons,2", "");
class4.field23 = ClientPacket.SpriteBuffer_getIndexedSpriteByName(var1, "options_radio_buttons,6", "");
Login.field1174 = UserComparator8.options_buttons_0Sprite.subWidth;
Language.field2328 = UserComparator8.options_buttons_0Sprite.subHeight;
Login.loginScreenRunesAnimation = new LoginScreenAnimation(class208.runesSprite);
if (var2) {
Login.Login_username = "";
Login.Login_password = "";
}
Huffman.field2491 = 0;
class268.otp = "";
Login.field1177 = true;
Login.worldSelectOpen = false;
if (!ScriptEvent.clientPreferences.titleMusicDisabled) {
Archive var5 = class216.archive6;
int var6 = var5.getGroupId("scape main");
int var7 = var5.getFileId(var6, "");
WorldMapIcon_0.method253(2, var5, var6, var7, 255, false);
} else {
class80.method2194(2);
}
UrlRequester.method3428(false);
Login.field1188 = true;
Login.xPadding = (class286.canvasWidth - 765) / 2;
Login.loginBoxX = Login.xPadding + 202;
class192.loginBoxCenter = Login.loginBoxX + 180;
Login.leftTitleSprite.drawAt(Login.xPadding, 0);
FontName.rightTitleSprite.drawAt(Login.xPadding + 382, 0);
Tiles.logoSprite.drawAt(Login.xPadding + 382 - Tiles.logoSprite.subWidth / 2, 18);
} }
} }
@ObfuscatedName("v") @ObfuscatedName("fq")
@ObfuscatedSignature( @ObfuscatedSignature(
signature = "(II)I", signature = "(II)V",
garbageValue = "2026213000" garbageValue = "-940191492"
) )
@Export("Messages_getHistorySize") @Export("playSong")
static int Messages_getHistorySize(int var0) { static void playSong(int var0) {
ChatChannel var1 = (ChatChannel)Messages.Messages_channels.get(var0); if (var0 == -1 && !Client.field742) {
return var1 == null ? 0 : var1.size(); TileItemPile.method2811();
} else if (var0 != -1 && var0 != Client.currentTrackGroupId && Client.musicVolume != 0 && !Client.field742) {
World.method1819(2, AbstractWorldMapData.archive6, var0, 0, Client.musicVolume, false);
} }
@ObfuscatedName("x") Client.currentTrackGroupId = var0;
@ObfuscatedSignature(
signature = "(I)V",
garbageValue = "1182575987"
)
static void method2215() {
if (class43.loadWorlds()) {
Login.worldSelectOpen = true;
Login.worldSelectPage = 0;
Login.worldSelectPagesCount = 0;
}
}
@ObfuscatedName("jj")
@ObfuscatedSignature(
signature = "(III)V",
garbageValue = "2104552058"
)
@Export("runIntfCloseListeners")
static final void runIntfCloseListeners(int var0, int var1) {
if (TextureProvider.loadInterface(var0)) {
DirectByteArrayCopier.runComponentCloseListeners(Widget.Widget_interfaceComponents[var0], var1);
}
} }
} }
+58 -58
View File
@@ -3,154 +3,154 @@ import net.runelite.mapping.Implements;
import net.runelite.mapping.ObfuscatedName; import net.runelite.mapping.ObfuscatedName;
import net.runelite.mapping.ObfuscatedSignature; import net.runelite.mapping.ObfuscatedSignature;
@ObfuscatedName("dz") @ObfuscatedName("dh")
@Implements("AudioFilter") @Implements("AudioFilter")
public class AudioFilter { public class AudioFilter {
@ObfuscatedName("l") @ObfuscatedName("p")
static float[][] field1460; static float[][] field1474;
@ObfuscatedName("c") @ObfuscatedName("h")
@Export("coefficients") @Export("coefficients")
static int[][] coefficients; static int[][] coefficients;
@ObfuscatedName("o") @ObfuscatedName("y")
static float field1458; static float field1478;
@ObfuscatedName("i") @ObfuscatedName("w")
@Export("forwardMultiplier") @Export("forwardMultiplier")
static int forwardMultiplier; static int forwardMultiplier;
@ObfuscatedName("a") @ObfuscatedName("u")
@Export("pairs") @Export("pairs")
int[] pairs; int[] pairs;
@ObfuscatedName("n") @ObfuscatedName("b")
int[][][] field1457; int[][][] field1473;
@ObfuscatedName("q") @ObfuscatedName("g")
int[][][] field1459; int[][][] field1475;
@ObfuscatedName("v") @ObfuscatedName("z")
int[] field1455; int[] field1471;
static { static {
field1460 = new float[2][8]; field1474 = new float[2][8];
coefficients = new int[2][8]; coefficients = new int[2][8];
} }
AudioFilter() { AudioFilter() {
this.pairs = new int[2]; this.pairs = new int[2];
this.field1457 = new int[2][2][4]; this.field1473 = new int[2][2][4];
this.field1459 = new int[2][2][4]; this.field1475 = new int[2][2][4];
this.field1455 = new int[2]; this.field1471 = new int[2];
} }
@ObfuscatedName("a") @ObfuscatedName("u")
float method2857(int var1, int var2, float var3) { float method2728(int var1, int var2, float var3) {
float var4 = (float)this.field1459[var1][0][var2] + var3 * (float)(this.field1459[var1][1][var2] - this.field1459[var1][0][var2]); float var4 = (float)this.field1475[var1][0][var2] + var3 * (float)(this.field1475[var1][1][var2] - this.field1475[var1][0][var2]);
var4 *= 0.0015258789F; var4 *= 0.0015258789F;
return 1.0F - (float)Math.pow(10.0D, (double)(-var4 / 20.0F)); return 1.0F - (float)Math.pow(10.0D, (double)(-var4 / 20.0F));
} }
@ObfuscatedName("n") @ObfuscatedName("b")
float method2854(int var1, int var2, float var3) { float method2725(int var1, int var2, float var3) {
float var4 = (float)this.field1457[var1][0][var2] + var3 * (float)(this.field1457[var1][1][var2] - this.field1457[var1][0][var2]); float var4 = (float)this.field1473[var1][0][var2] + var3 * (float)(this.field1473[var1][1][var2] - this.field1473[var1][0][var2]);
var4 *= 1.2207031E-4F; var4 *= 1.2207031E-4F;
return normalize(var4); return normalize(var4);
} }
@ObfuscatedName("q") @ObfuscatedName("g")
@Export("compute") @Export("compute")
int compute(int var1, float var2) { int compute(int var1, float var2) {
float var3; float var3;
if (var1 == 0) { if (var1 == 0) {
var3 = (float)this.field1455[0] + (float)(this.field1455[1] - this.field1455[0]) * var2; var3 = (float)this.field1471[0] + (float)(this.field1471[1] - this.field1471[0]) * var2;
var3 *= 0.0030517578F; var3 *= 0.0030517578F;
field1458 = (float)Math.pow(0.1D, (double)(var3 / 20.0F)); field1478 = (float)Math.pow(0.1D, (double)(var3 / 20.0F));
forwardMultiplier = (int)(field1458 * 65536.0F); forwardMultiplier = (int)(field1478 * 65536.0F);
} }
if (this.pairs[var1] == 0) { if (this.pairs[var1] == 0) {
return 0; return 0;
} else { } else {
var3 = this.method2857(var1, 0, var2); var3 = this.method2728(var1, 0, var2);
field1460[var1][0] = -2.0F * var3 * (float)Math.cos((double)this.method2854(var1, 0, var2)); field1474[var1][0] = -2.0F * var3 * (float)Math.cos((double)this.method2725(var1, 0, var2));
field1460[var1][1] = var3 * var3; field1474[var1][1] = var3 * var3;
float[] var10000; float[] var10000;
int var4; int var4;
for (var4 = 1; var4 < this.pairs[var1]; ++var4) { for (var4 = 1; var4 < this.pairs[var1]; ++var4) {
var3 = this.method2857(var1, var4, var2); var3 = this.method2728(var1, var4, var2);
float var5 = -2.0F * var3 * (float)Math.cos((double)this.method2854(var1, var4, var2)); float var5 = -2.0F * var3 * (float)Math.cos((double)this.method2725(var1, var4, var2));
float var6 = var3 * var3; float var6 = var3 * var3;
field1460[var1][var4 * 2 + 1] = field1460[var1][var4 * 2 - 1] * var6; field1474[var1][var4 * 2 + 1] = field1474[var1][var4 * 2 - 1] * var6;
field1460[var1][var4 * 2] = field1460[var1][var4 * 2 - 1] * var5 + field1460[var1][var4 * 2 - 2] * var6; field1474[var1][var4 * 2] = field1474[var1][var4 * 2 - 1] * var5 + field1474[var1][var4 * 2 - 2] * var6;
for (int var7 = var4 * 2 - 1; var7 >= 2; --var7) { for (int var7 = var4 * 2 - 1; var7 >= 2; --var7) {
var10000 = field1460[var1]; var10000 = field1474[var1];
var10000[var7] += field1460[var1][var7 - 1] * var5 + field1460[var1][var7 - 2] * var6; var10000[var7] += field1474[var1][var7 - 1] * var5 + field1474[var1][var7 - 2] * var6;
} }
var10000 = field1460[var1]; var10000 = field1474[var1];
var10000[1] += field1460[var1][0] * var5 + var6; var10000[1] += field1474[var1][0] * var5 + var6;
var10000 = field1460[var1]; var10000 = field1474[var1];
var10000[0] += var5; var10000[0] += var5;
} }
if (var1 == 0) { if (var1 == 0) {
for (var4 = 0; var4 < this.pairs[0] * 2; ++var4) { for (var4 = 0; var4 < this.pairs[0] * 2; ++var4) {
var10000 = field1460[0]; var10000 = field1474[0];
var10000[var4] *= field1458; var10000[var4] *= field1478;
} }
} }
for (var4 = 0; var4 < this.pairs[var1] * 2; ++var4) { for (var4 = 0; var4 < this.pairs[var1] * 2; ++var4) {
coefficients[var1][var4] = (int)(field1460[var1][var4] * 65536.0F); coefficients[var1][var4] = (int)(field1474[var1][var4] * 65536.0F);
} }
return this.pairs[var1] * 2; return this.pairs[var1] * 2;
} }
} }
@ObfuscatedName("v") @ObfuscatedName("z")
@ObfuscatedSignature( @ObfuscatedSignature(
signature = "(Lkc;Ldd;)V" signature = "(Lkg;Ldx;)V"
) )
final void method2852(Buffer var1, SoundEnvelope var2) { final void method2729(Buffer var1, SoundEnvelope var2) {
int var3 = var1.readUnsignedByte(); int var3 = var1.readUnsignedByte();
this.pairs[0] = var3 >> 4; this.pairs[0] = var3 >> 4;
this.pairs[1] = var3 & 15; this.pairs[1] = var3 & 15;
if (var3 != 0) { if (var3 != 0) {
this.field1455[0] = var1.readUnsignedShort(); this.field1471[0] = var1.readUnsignedShort();
this.field1455[1] = var1.readUnsignedShort(); this.field1471[1] = var1.readUnsignedShort();
int var4 = var1.readUnsignedByte(); int var4 = var1.readUnsignedByte();
int var5; int var5;
int var6; int var6;
for (var5 = 0; var5 < 2; ++var5) { for (var5 = 0; var5 < 2; ++var5) {
for (var6 = 0; var6 < this.pairs[var5]; ++var6) { for (var6 = 0; var6 < this.pairs[var5]; ++var6) {
this.field1457[var5][0][var6] = var1.readUnsignedShort(); this.field1473[var5][0][var6] = var1.readUnsignedShort();
this.field1459[var5][0][var6] = var1.readUnsignedShort(); this.field1475[var5][0][var6] = var1.readUnsignedShort();
} }
} }
for (var5 = 0; var5 < 2; ++var5) { for (var5 = 0; var5 < 2; ++var5) {
for (var6 = 0; var6 < this.pairs[var5]; ++var6) { for (var6 = 0; var6 < this.pairs[var5]; ++var6) {
if ((var4 & 1 << var5 * 4 << var6) != 0) { if ((var4 & 1 << var5 * 4 << var6) != 0) {
this.field1457[var5][1][var6] = var1.readUnsignedShort(); this.field1473[var5][1][var6] = var1.readUnsignedShort();
this.field1459[var5][1][var6] = var1.readUnsignedShort(); this.field1475[var5][1][var6] = var1.readUnsignedShort();
} else { } else {
this.field1457[var5][1][var6] = this.field1457[var5][0][var6]; this.field1473[var5][1][var6] = this.field1473[var5][0][var6];
this.field1459[var5][1][var6] = this.field1459[var5][0][var6]; this.field1475[var5][1][var6] = this.field1475[var5][0][var6];
} }
} }
} }
if (var4 != 0 || this.field1455[1] != this.field1455[0]) { if (var4 != 0 || this.field1471[1] != this.field1471[0]) {
var2.decodeSegments(var1); var2.decodeSegments(var1);
} }
} else { } else {
int[] var7 = this.field1455; int[] var7 = this.field1471;
this.field1455[1] = 0; this.field1471[1] = 0;
var7[0] = 0; var7[0] = 0;
} }
} }
@ObfuscatedName("t") @ObfuscatedName("f")
@Export("normalize") @Export("normalize")
static float normalize(float var0) { static float normalize(float var0) {
float var1 = 32.703197F * (float)Math.pow(2.0D, (double)var0); float var1 = 32.703197F * (float)Math.pow(2.0D, (double)var0);
@@ -3,12 +3,12 @@ import net.runelite.mapping.Implements;
import net.runelite.mapping.ObfuscatedName; import net.runelite.mapping.ObfuscatedName;
import net.runelite.mapping.ObfuscatedSignature; import net.runelite.mapping.ObfuscatedSignature;
@ObfuscatedName("kd") @ObfuscatedName("kq")
@Implements("BZip2Decompressor") @Implements("BZip2Decompressor")
public final class BZip2Decompressor { public final class BZip2Decompressor {
@ObfuscatedName("o") @ObfuscatedName("y")
@ObfuscatedSignature( @ObfuscatedSignature(
signature = "Lky;" signature = "Lko;"
) )
@Export("BZip2Decompressor_state") @Export("BZip2Decompressor_state")
static BZip2State BZip2Decompressor_state; static BZip2State BZip2Decompressor_state;
@@ -17,7 +17,7 @@ public final class BZip2Decompressor {
BZip2Decompressor_state = new BZip2State(); BZip2Decompressor_state = new BZip2State();
} }
@ObfuscatedName("a") @ObfuscatedName("u")
@Export("BZip2Decompressor_decompress") @Export("BZip2Decompressor_decompress")
public static int BZip2Decompressor_decompress(byte[] var0, int var1, byte[] var2, int var3, int var4) { public static int BZip2Decompressor_decompress(byte[] var0, int var1, byte[] var2, int var3, int var4) {
synchronized(BZip2Decompressor_state) { synchronized(BZip2Decompressor_state) {
@@ -29,7 +29,7 @@ public final class BZip2Decompressor {
BZip2Decompressor_state.bsLive = 0; BZip2Decompressor_state.bsLive = 0;
BZip2Decompressor_state.bsBuff = 0; BZip2Decompressor_state.bsBuff = 0;
BZip2Decompressor_state.nextBit_unused = 0; BZip2Decompressor_state.nextBit_unused = 0;
BZip2Decompressor_state.field3718 = 0; BZip2Decompressor_state.field3742 = 0;
BZip2Decompressor_decompress(BZip2Decompressor_state); BZip2Decompressor_decompress(BZip2Decompressor_state);
var1 -= BZip2Decompressor_state.outputLength; var1 -= BZip2Decompressor_state.outputLength;
BZip2Decompressor_state.inputArray = null; BZip2Decompressor_state.inputArray = null;
@@ -38,21 +38,21 @@ public final class BZip2Decompressor {
} }
} }
@ObfuscatedName("t") @ObfuscatedName("f")
@ObfuscatedSignature( @ObfuscatedSignature(
signature = "(Lky;)V" signature = "(Lko;)V"
) )
static void method5897(BZip2State var0) { static void method5895(BZip2State var0) {
byte var2 = var0.out_char; byte var2 = var0.out_char;
int var3 = var0.su_rNToGo; int var3 = var0.su_rNToGo;
int var4 = var0.nblocks_used; int var4 = var0.nblocks_used;
int var5 = var0.su_ch2; int var5 = var0.su_ch2;
int[] var6 = class162.BZip2Decompressor_block; int[] var6 = FillMode.BZip2Decompressor_block;
int var7 = var0.field3720; int var7 = var0.field3738;
byte[] var8 = var0.outputArray; byte[] var8 = var0.outputArray;
int var9 = var0.next_out; int var9 = var0.next_out;
int var10 = var0.outputLength; int var10 = var0.outputLength;
int var12 = var0.field3745 + 1; int var12 = var0.field3756 + 1;
label61: label61:
while (true) { while (true) {
@@ -148,25 +148,25 @@ public final class BZip2Decompressor {
break; break;
} }
int var13 = var0.field3718; int var13 = var0.field3742;
var0.field3718 += var10 - var10; var0.field3742 += var10 - var10;
if (var0.field3718 < var13) { if (var0.field3742 < var13) {
} }
var0.out_char = var2; var0.out_char = var2;
var0.su_rNToGo = var3; var0.su_rNToGo = var3;
var0.nblocks_used = var4; var0.nblocks_used = var4;
var0.su_ch2 = var5; var0.su_ch2 = var5;
class162.BZip2Decompressor_block = var6; FillMode.BZip2Decompressor_block = var6;
var0.field3720 = var7; var0.field3738 = var7;
var0.outputArray = var8; var0.outputArray = var8;
var0.next_out = var9; var0.next_out = var9;
var0.outputLength = var10; var0.outputLength = var10;
} }
@ObfuscatedName("n") @ObfuscatedName("b")
@ObfuscatedSignature( @ObfuscatedSignature(
signature = "(Lky;)V" signature = "(Lko;)V"
) )
@Export("BZip2Decompressor_decompress") @Export("BZip2Decompressor_decompress")
static void BZip2Decompressor_decompress(BZip2State var0) { static void BZip2Decompressor_decompress(BZip2State var0) {
@@ -193,8 +193,8 @@ public final class BZip2Decompressor {
int[] var24 = null; int[] var24 = null;
int[] var25 = null; int[] var25 = null;
var0.blockSize100k = 1410065408; var0.blockSize100k = 1410065408;
if (class162.BZip2Decompressor_block == null) { if (FillMode.BZip2Decompressor_block == null) {
class162.BZip2Decompressor_block = new int[var0.blockSize100k * 100000]; FillMode.BZip2Decompressor_block = new int[var0.blockSize100k * 100000];
} }
boolean var26 = true; boolean var26 = true;
@@ -430,7 +430,7 @@ public final class BZip2Decompressor {
} }
var10002 = var0.unzftab[var0.seqToUnseq[var1 & 255] & 255]++; var10002 = var0.unzftab[var0.seqToUnseq[var1 & 255] & 255]++;
class162.BZip2Decompressor_block[var47] = var0.seqToUnseq[var1 & 255] & 255; FillMode.BZip2Decompressor_block[var47] = var0.seqToUnseq[var1 & 255] & 255;
++var47; ++var47;
if (var45 == 0) { if (var45 == 0) {
++var43; ++var43;
@@ -489,7 +489,7 @@ public final class BZip2Decompressor {
var10000 = var0.unzftab; var10000 = var0.unzftab;
for (var10000[var1 & 255] += var48; var48 > 0; --var48) { for (var10000[var1 & 255] += var48; var48 > 0; --var48) {
class162.BZip2Decompressor_block[var47] = var1 & 255; FillMode.BZip2Decompressor_block[var47] = var1 & 255;
++var47; ++var47;
} }
} }
@@ -509,22 +509,22 @@ public final class BZip2Decompressor {
} }
for (var36 = 0; var36 < var47; ++var36) { for (var36 = 0; var36 < var47; ++var36) {
var1 = (byte)(class162.BZip2Decompressor_block[var36] & 255); var1 = (byte)(FillMode.BZip2Decompressor_block[var36] & 255);
var10000 = class162.BZip2Decompressor_block; var10000 = FillMode.BZip2Decompressor_block;
int var10001 = var0.cftab[var1 & 255]; int var10001 = var0.cftab[var1 & 255];
var10000[var10001] |= var36 << 8; var10000[var10001] |= var36 << 8;
var10002 = var0.cftab[var1 & 255]++; var10002 = var0.cftab[var1 & 255]++;
} }
var0.field3720 = class162.BZip2Decompressor_block[var0.originalPointer] >> 8; var0.field3738 = FillMode.BZip2Decompressor_block[var0.originalPointer] >> 8;
var0.nblocks_used = 0; var0.nblocks_used = 0;
var0.field3720 = class162.BZip2Decompressor_block[var0.field3720]; var0.field3738 = FillMode.BZip2Decompressor_block[var0.field3738];
var0.su_ch2 = (byte)(var0.field3720 & 255); var0.su_ch2 = (byte)(var0.field3738 & 255);
var0.field3720 >>= 8; var0.field3738 >>= 8;
++var0.nblocks_used; ++var0.nblocks_used;
var0.field3745 = var47; var0.field3756 = var47;
method5897(var0); method5895(var0);
if (var0.field3745 + 1 == var0.nblocks_used && var0.su_rNToGo == 0) { if (var0.field3756 + 1 == var0.nblocks_used && var0.su_rNToGo == 0) {
var26 = true; var26 = true;
break; break;
} }
@@ -538,27 +538,27 @@ public final class BZip2Decompressor {
} }
} }
@ObfuscatedName("q") @ObfuscatedName("g")
@ObfuscatedSignature( @ObfuscatedSignature(
signature = "(Lky;)B" signature = "(Lko;)B"
) )
@Export("BZip2Decompressor_readNextByte") @Export("BZip2Decompressor_readNextByte")
static byte BZip2Decompressor_readNextByte(BZip2State var0) { static byte BZip2Decompressor_readNextByte(BZip2State var0) {
return (byte)BZip2Decompressor_readBits(8, var0); return (byte)BZip2Decompressor_readBits(8, var0);
} }
@ObfuscatedName("v") @ObfuscatedName("z")
@ObfuscatedSignature( @ObfuscatedSignature(
signature = "(Lky;)B" signature = "(Lko;)B"
) )
@Export("BZip2Decompressor_readNextBit") @Export("BZip2Decompressor_readNextBit")
static byte BZip2Decompressor_readNextBit(BZip2State var0) { static byte BZip2Decompressor_readNextBit(BZip2State var0) {
return (byte)BZip2Decompressor_readBits(1, var0); return (byte)BZip2Decompressor_readBits(1, var0);
} }
@ObfuscatedName("l") @ObfuscatedName("p")
@ObfuscatedSignature( @ObfuscatedSignature(
signature = "(ILky;)I" signature = "(ILko;)I"
) )
@Export("BZip2Decompressor_readBits") @Export("BZip2Decompressor_readBits")
static int BZip2Decompressor_readBits(int var0, BZip2State var1) { static int BZip2Decompressor_readBits(int var0, BZip2State var1) {
@@ -576,9 +576,9 @@ public final class BZip2Decompressor {
return var2; return var2;
} }
@ObfuscatedName("c") @ObfuscatedName("h")
@ObfuscatedSignature( @ObfuscatedSignature(
signature = "(Lky;)V" signature = "(Lko;)V"
) )
@Export("makeMaps") @Export("makeMaps")
static void makeMaps(BZip2State var0) { static void makeMaps(BZip2State var0) {
@@ -593,7 +593,7 @@ public final class BZip2Decompressor {
} }
@ObfuscatedName("o") @ObfuscatedName("y")
@Export("BZip2Decompressor_createHuffmanTables") @Export("BZip2Decompressor_createHuffmanTables")
static void BZip2Decompressor_createHuffmanTables(int[] var0, int[] var1, int[] var2, byte[] var3, int var4, int var5, int var6) { static void BZip2Decompressor_createHuffmanTables(int[] var0, int[] var1, int[] var2, byte[] var3, int var4, int var5, int var6) {
int var7 = 0; int var7 = 0;
+81 -68
View File
@@ -2,168 +2,169 @@ import net.runelite.mapping.Export;
import net.runelite.mapping.Implements; import net.runelite.mapping.Implements;
import net.runelite.mapping.ObfuscatedGetter; import net.runelite.mapping.ObfuscatedGetter;
import net.runelite.mapping.ObfuscatedName; import net.runelite.mapping.ObfuscatedName;
import net.runelite.mapping.ObfuscatedSignature;
@ObfuscatedName("ky") @ObfuscatedName("ko")
@Implements("BZip2State") @Implements("BZip2State")
public final class BZip2State { public final class BZip2State {
@ObfuscatedName("a") @ObfuscatedName("u")
final int field3709; final int field3731;
@ObfuscatedName("t") @ObfuscatedName("f")
final int field3732; final int field3720;
@ObfuscatedName("n") @ObfuscatedName("b")
final int field3734; final int field3733;
@ObfuscatedName("q") @ObfuscatedName("g")
final int field3711; final int field3722;
@ObfuscatedName("v") @ObfuscatedName("z")
final int field3712; final int field3723;
@ObfuscatedName("l") @ObfuscatedName("p")
final int field3713; final int field3724;
@ObfuscatedName("c") @ObfuscatedName("h")
@Export("inputArray") @Export("inputArray")
byte[] inputArray; byte[] inputArray;
@ObfuscatedName("o") @ObfuscatedName("y")
@ObfuscatedGetter( @ObfuscatedGetter(
intValue = -502427743 intValue = 2112153425
) )
@Export("nextByte") @Export("nextByte")
int nextByte; int nextByte;
@ObfuscatedName("i") @ObfuscatedName("w")
@ObfuscatedGetter( @ObfuscatedGetter(
intValue = -561445913 intValue = -604029507
) )
@Export("nextBit_unused") @Export("nextBit_unused")
int nextBit_unused; int nextBit_unused;
@ObfuscatedName("d") @ObfuscatedName("i")
@Export("outputArray") @Export("outputArray")
byte[] outputArray; byte[] outputArray;
@ObfuscatedName("m") @ObfuscatedName("k")
@ObfuscatedGetter( @ObfuscatedGetter(
intValue = -871682081 intValue = 101751211
) )
@Export("next_out") @Export("next_out")
int next_out; int next_out;
@ObfuscatedName("p") @ObfuscatedName("x")
@ObfuscatedGetter( @ObfuscatedGetter(
intValue = -661840641 intValue = 1229248277
) )
@Export("outputLength") @Export("outputLength")
int outputLength; int outputLength;
@ObfuscatedName("h") @ObfuscatedName("o")
@ObfuscatedGetter( @ObfuscatedGetter(
intValue = 77506983 intValue = 1913236213
) )
int field3718; int field3742;
@ObfuscatedName("k") @ObfuscatedName("e")
@Export("out_char") @Export("out_char")
byte out_char; byte out_char;
@ObfuscatedName("x") @ObfuscatedName("n")
@ObfuscatedGetter( @ObfuscatedGetter(
intValue = -250901683 intValue = -975314591
) )
@Export("su_rNToGo") @Export("su_rNToGo")
int su_rNToGo; int su_rNToGo;
@ObfuscatedName("j") @ObfuscatedName("r")
@ObfuscatedGetter( @ObfuscatedGetter(
intValue = 2016386947 intValue = 843438185
) )
@Export("bsBuff") @Export("bsBuff")
int bsBuff; int bsBuff;
@ObfuscatedName("r") @ObfuscatedName("c")
@ObfuscatedGetter( @ObfuscatedGetter(
intValue = 1150627855 intValue = 1790725095
) )
@Export("bsLive") @Export("bsLive")
int bsLive; int bsLive;
@ObfuscatedName("e") @ObfuscatedName("a")
@ObfuscatedGetter( @ObfuscatedGetter(
intValue = 1637628928 intValue = 2072280064
) )
@Export("blockSize100k") @Export("blockSize100k")
int blockSize100k; int blockSize100k;
@ObfuscatedName("s") @ObfuscatedName("d")
@ObfuscatedGetter( @ObfuscatedGetter(
intValue = 1744345569 intValue = -233574369
) )
@Export("originalPointer") @Export("originalPointer")
int originalPointer; int originalPointer;
@ObfuscatedName("b") @ObfuscatedName("s")
@ObfuscatedGetter( @ObfuscatedGetter(
intValue = 1139360211 intValue = 396288217
) )
int field3720; int field3738;
@ObfuscatedName("z") @ObfuscatedName("t")
@ObfuscatedGetter( @ObfuscatedGetter(
intValue = -2116705151 intValue = -1359010819
) )
@Export("su_ch2") @Export("su_ch2")
int su_ch2; int su_ch2;
@ObfuscatedName("f") @ObfuscatedName("m")
@Export("unzftab") @Export("unzftab")
int[] unzftab; int[] unzftab;
@ObfuscatedName("g") @ObfuscatedName("v")
@ObfuscatedGetter( @ObfuscatedGetter(
intValue = -271375789 intValue = -197163901
) )
@Export("nblocks_used") @Export("nblocks_used")
int nblocks_used; int nblocks_used;
@ObfuscatedName("w") @ObfuscatedName("q")
@Export("cftab") @Export("cftab")
int[] cftab; int[] cftab;
@ObfuscatedName("y") @ObfuscatedName("j")
@ObfuscatedGetter( @ObfuscatedGetter(
intValue = 1457092991 intValue = 1651646591
) )
@Export("nInUse") @Export("nInUse")
int nInUse; int nInUse;
@ObfuscatedName("aa") @ObfuscatedName("af")
@Export("inUse") @Export("inUse")
boolean[] inUse; boolean[] inUse;
@ObfuscatedName("aw") @ObfuscatedName("ad")
@Export("inUse16") @Export("inUse16")
boolean[] inUse16; boolean[] inUse16;
@ObfuscatedName("ar") @ObfuscatedName("am")
@Export("seqToUnseq") @Export("seqToUnseq")
byte[] seqToUnseq; byte[] seqToUnseq;
@ObfuscatedName("aq") @ObfuscatedName("ai")
@Export("ll8") @Export("ll8")
byte[] ll8; byte[] ll8;
@ObfuscatedName("ad") @ObfuscatedName("ag")
@Export("getAndMoveToFrontDecode_yy") @Export("getAndMoveToFrontDecode_yy")
int[] getAndMoveToFrontDecode_yy; int[] getAndMoveToFrontDecode_yy;
@ObfuscatedName("ag") @ObfuscatedName("ao")
@Export("selector") @Export("selector")
byte[] selector; byte[] selector;
@ObfuscatedName("ak") @ObfuscatedName("aw")
@Export("selectorMtf") @Export("selectorMtf")
byte[] selectorMtf; byte[] selectorMtf;
@ObfuscatedName("av") @ObfuscatedName("ak")
@Export("temp_charArray2d") @Export("temp_charArray2d")
byte[][] temp_charArray2d; byte[][] temp_charArray2d;
@ObfuscatedName("am") @ObfuscatedName("aa")
@Export("limit") @Export("limit")
int[][] limit; int[][] limit;
@ObfuscatedName("ab") @ObfuscatedName("ab")
@Export("base") @Export("base")
int[][] base; int[][] base;
@ObfuscatedName("ax") @ObfuscatedName("ar")
@Export("perm") @Export("perm")
int[][] perm; int[][] perm;
@ObfuscatedName("al") @ObfuscatedName("av")
@Export("minLens") @Export("minLens")
int[] minLens; int[] minLens;
@ObfuscatedName("ap") @ObfuscatedName("aq")
@ObfuscatedGetter( @ObfuscatedGetter(
intValue = 1163964567 intValue = -1771574853
) )
int field3745; int field3756;
BZip2State() { BZip2State() {
this.field3709 = 4096; this.field3731 = 4096;
this.field3732 = 16; this.field3720 = 16;
this.field3734 = 258; this.field3733 = 258;
this.field3711 = 6; this.field3722 = 6;
this.field3712 = 50; this.field3723 = 50;
this.field3713 = 18002; this.field3724 = 18002;
this.nextByte = 0; this.nextByte = 0;
this.next_out = 0; this.next_out = 0;
this.unzftab = new int[256]; this.unzftab = new int[256];
@@ -181,4 +182,16 @@ public final class BZip2State {
this.perm = new int[6][258]; this.perm = new int[6][258];
this.minLens = new int[6]; this.minLens = new int[6];
} }
@ObfuscatedName("z")
@ObfuscatedSignature(
signature = "(Lhf;Ljava/lang/String;Ljava/lang/String;I)Llm;",
garbageValue = "-972225948"
)
@Export("SpriteBuffer_getIndexedSpriteByName")
public static IndexedSprite SpriteBuffer_getIndexedSpriteByName(AbstractArchive var0, String var1, String var2) {
int var3 = var0.getGroupId(var1);
int var4 = var0.getFileId(var3, var2);
return UserComparator6.method3491(var0, var3, var4);
}
} }
+258 -109
View File
@@ -3,63 +3,68 @@ import net.runelite.mapping.Implements;
import net.runelite.mapping.ObfuscatedGetter; import net.runelite.mapping.ObfuscatedGetter;
import net.runelite.mapping.ObfuscatedName; import net.runelite.mapping.ObfuscatedName;
import net.runelite.mapping.ObfuscatedSignature; import net.runelite.mapping.ObfuscatedSignature;
import net.runelite.rs.ScriptOpcodes;
@ObfuscatedName("et") @ObfuscatedName("eu")
@Implements("BoundaryObject") @Implements("BoundaryObject")
public final class BoundaryObject { public final class BoundaryObject {
@ObfuscatedName("r") @ObfuscatedName("q")
static String[] field1859;
@ObfuscatedName("a")
@ObfuscatedGetter( @ObfuscatedGetter(
intValue = -14166733 intValue = -37914995
)
@Export("canvasWidth")
public static int canvasWidth;
@ObfuscatedName("u")
@ObfuscatedGetter(
intValue = 1092947403
) )
@Export("tileHeight") @Export("tileHeight")
int tileHeight; int tileHeight;
@ObfuscatedName("t") @ObfuscatedName("f")
@ObfuscatedGetter( @ObfuscatedGetter(
intValue = -591706183 intValue = -1863121231
) )
@Export("x") @Export("x")
int x; int x;
@ObfuscatedName("n") @ObfuscatedName("b")
@ObfuscatedGetter( @ObfuscatedGetter(
intValue = -1799577875 intValue = 523556867
) )
@Export("y") @Export("y")
int y; int y;
@ObfuscatedName("q") @ObfuscatedName("g")
@ObfuscatedGetter( @ObfuscatedGetter(
intValue = 1720763557 intValue = -470947197
) )
@Export("orientationA") @Export("orientationA")
int orientationA; int orientationA;
@ObfuscatedName("v") @ObfuscatedName("z")
@ObfuscatedGetter( @ObfuscatedGetter(
intValue = 1635831629 intValue = 113063737
) )
@Export("orientationB") @Export("orientationB")
int orientationB; int orientationB;
@ObfuscatedName("l") @ObfuscatedName("p")
@ObfuscatedSignature( @ObfuscatedSignature(
signature = "Lep;" signature = "Lee;"
) )
@Export("entity1") @Export("entity1")
public Entity entity1; public Entity entity1;
@ObfuscatedName("c") @ObfuscatedName("h")
@ObfuscatedSignature( @ObfuscatedSignature(
signature = "Lep;" signature = "Lee;"
) )
@Export("entity2") @Export("entity2")
public Entity entity2; public Entity entity2;
@ObfuscatedName("o") @ObfuscatedName("y")
@ObfuscatedGetter( @ObfuscatedGetter(
longValue = 7223116526443198487L longValue = 667705109801803207L
) )
@Export("tag") @Export("tag")
public long tag; public long tag;
@ObfuscatedName("i") @ObfuscatedName("w")
@ObfuscatedGetter( @ObfuscatedGetter(
intValue = 1447474805 intValue = 1624595735
) )
@Export("flags") @Export("flags")
int flags; int flags;
@@ -69,101 +74,245 @@ public final class BoundaryObject {
this.flags = 0; this.flags = 0;
} }
@ObfuscatedName("ko") @ObfuscatedName("u")
@ObfuscatedSignature( @ObfuscatedSignature(
signature = "(I)V", signature = "(IB)I",
garbageValue = "1336245402" garbageValue = "17"
) )
static void method3393() { public static int method3312(int var0) {
for (InterfaceParent var0 = (InterfaceParent)Client.interfaceParents.first(); var0 != null; var0 = (InterfaceParent)Client.interfaceParents.next()) { var0 = (var0 & 1431655765) + (var0 >>> 1 & 1431655765);
int var1 = var0.group; var0 = (var0 >>> 2 & 858993459) + (var0 & 858993459);
if (TextureProvider.loadInterface(var1)) { var0 = var0 + (var0 >>> 4) & 252645135;
boolean var2 = true; var0 += var0 >>> 8;
Widget[] var3 = Widget.Widget_interfaceComponents[var1]; var0 += var0 >>> 16;
return var0 & 255;
}
@ObfuscatedName("b")
@ObfuscatedSignature(
signature = "(Ljava/lang/CharSequence;II[BII)I",
garbageValue = "549909361"
)
@Export("encodeStringCp1252")
public static int encodeStringCp1252(CharSequence var0, int var1, int var2, byte[] var3, int var4) {
int var5 = var2 - var1;
for (int var6 = 0; var6 < var5; ++var6) {
char var7 = var0.charAt(var6 + var1);
if (var7 > 0 && var7 < 128 || var7 >= 160 && var7 <= 255) {
var3[var6 + var4] = (byte)var7;
} else if (var7 == 8364) {
var3[var6 + var4] = -128;
} else if (var7 == 8218) {
var3[var6 + var4] = -126;
} else if (var7 == 402) {
var3[var6 + var4] = -125;
} else if (var7 == 8222) {
var3[var6 + var4] = -124;
} else if (var7 == 8230) {
var3[var6 + var4] = -123;
} else if (var7 == 8224) {
var3[var6 + var4] = -122;
} else if (var7 == 8225) {
var3[var6 + var4] = -121;
} else if (var7 == 710) {
var3[var6 + var4] = -120;
} else if (var7 == 8240) {
var3[var6 + var4] = -119;
} else if (var7 == 352) {
var3[var6 + var4] = -118;
} else if (var7 == 8249) {
var3[var6 + var4] = -117;
} else if (var7 == 338) {
var3[var6 + var4] = -116;
} else if (var7 == 381) {
var3[var6 + var4] = -114;
} else if (var7 == 8216) {
var3[var6 + var4] = -111;
} else if (var7 == 8217) {
var3[var6 + var4] = -110;
} else if (var7 == 8220) {
var3[var6 + var4] = -109;
} else if (var7 == 8221) {
var3[var6 + var4] = -108;
} else if (var7 == 8226) {
var3[var6 + var4] = -107;
} else if (var7 == 8211) {
var3[var6 + var4] = -106;
} else if (var7 == 8212) {
var3[var6 + var4] = -105;
} else if (var7 == 732) {
var3[var6 + var4] = -104;
} else if (var7 == 8482) {
var3[var6 + var4] = -103;
} else if (var7 == 353) {
var3[var6 + var4] = -102;
} else if (var7 == 8250) {
var3[var6 + var4] = -101;
} else if (var7 == 339) {
var3[var6 + var4] = -100;
} else if (var7 == 382) {
var3[var6 + var4] = -98;
} else if (var7 == 376) {
var3[var6 + var4] = -97;
} else {
var3[var6 + var4] = 63;
}
}
return var5;
}
@ObfuscatedName("p")
@ObfuscatedSignature(
signature = "(B)V",
garbageValue = "-1"
)
public static void method3311() {
FloorUnderlayDefinition.FloorUnderlayDefinition_cached.clear();
}
@ObfuscatedName("ao")
@ObfuscatedSignature(
signature = "(ILci;ZB)I",
garbageValue = "0"
)
static int method3313(int var0, Script var1, boolean var2) {
int var3;
int var4; int var4;
for (var4 = 0; var4 < var3.length; ++var4) { if (var0 == ScriptOpcodes.ADD) {
if (var3[var4] != null) { GrandExchangeOfferTotalQuantityComparator.Interpreter_intStackSize -= 2;
var2 = var3[var4].isIf3; var3 = Interpreter.Interpreter_intStack[GrandExchangeOfferTotalQuantityComparator.Interpreter_intStackSize];
var4 = Interpreter.Interpreter_intStack[GrandExchangeOfferTotalQuantityComparator.Interpreter_intStackSize + 1];
Interpreter.Interpreter_intStack[++GrandExchangeOfferTotalQuantityComparator.Interpreter_intStackSize - 1] = var3 + var4;
return 1;
} else if (var0 == ScriptOpcodes.SUB) {
GrandExchangeOfferTotalQuantityComparator.Interpreter_intStackSize -= 2;
var3 = Interpreter.Interpreter_intStack[GrandExchangeOfferTotalQuantityComparator.Interpreter_intStackSize];
var4 = Interpreter.Interpreter_intStack[GrandExchangeOfferTotalQuantityComparator.Interpreter_intStackSize + 1];
Interpreter.Interpreter_intStack[++GrandExchangeOfferTotalQuantityComparator.Interpreter_intStackSize - 1] = var3 - var4;
return 1;
} else if (var0 == ScriptOpcodes.MULTIPLY) {
GrandExchangeOfferTotalQuantityComparator.Interpreter_intStackSize -= 2;
var3 = Interpreter.Interpreter_intStack[GrandExchangeOfferTotalQuantityComparator.Interpreter_intStackSize];
var4 = Interpreter.Interpreter_intStack[GrandExchangeOfferTotalQuantityComparator.Interpreter_intStackSize + 1];
Interpreter.Interpreter_intStack[++GrandExchangeOfferTotalQuantityComparator.Interpreter_intStackSize - 1] = var3 * var4;
return 1;
} else if (var0 == ScriptOpcodes.DIV) {
GrandExchangeOfferTotalQuantityComparator.Interpreter_intStackSize -= 2;
var3 = Interpreter.Interpreter_intStack[GrandExchangeOfferTotalQuantityComparator.Interpreter_intStackSize];
var4 = Interpreter.Interpreter_intStack[GrandExchangeOfferTotalQuantityComparator.Interpreter_intStackSize + 1];
Interpreter.Interpreter_intStack[++GrandExchangeOfferTotalQuantityComparator.Interpreter_intStackSize - 1] = var3 / var4;
return 1;
} else if (var0 == ScriptOpcodes.RANDOM) {
var3 = Interpreter.Interpreter_intStack[--GrandExchangeOfferTotalQuantityComparator.Interpreter_intStackSize];
Interpreter.Interpreter_intStack[++GrandExchangeOfferTotalQuantityComparator.Interpreter_intStackSize - 1] = (int)(Math.random() * (double)var3);
return 1;
} else if (var0 == ScriptOpcodes.RANDOMINC) {
var3 = Interpreter.Interpreter_intStack[--GrandExchangeOfferTotalQuantityComparator.Interpreter_intStackSize];
Interpreter.Interpreter_intStack[++GrandExchangeOfferTotalQuantityComparator.Interpreter_intStackSize - 1] = (int)(Math.random() * (double)(var3 + 1));
return 1;
} else if (var0 == ScriptOpcodes.INTERPOLATE) {
GrandExchangeOfferTotalQuantityComparator.Interpreter_intStackSize -= 5;
var3 = Interpreter.Interpreter_intStack[GrandExchangeOfferTotalQuantityComparator.Interpreter_intStackSize];
var4 = Interpreter.Interpreter_intStack[GrandExchangeOfferTotalQuantityComparator.Interpreter_intStackSize + 1];
int var5 = Interpreter.Interpreter_intStack[GrandExchangeOfferTotalQuantityComparator.Interpreter_intStackSize + 2];
int var6 = Interpreter.Interpreter_intStack[GrandExchangeOfferTotalQuantityComparator.Interpreter_intStackSize + 3];
int var7 = Interpreter.Interpreter_intStack[GrandExchangeOfferTotalQuantityComparator.Interpreter_intStackSize + 4];
Interpreter.Interpreter_intStack[++GrandExchangeOfferTotalQuantityComparator.Interpreter_intStackSize - 1] = var3 + (var7 - var5) * (var4 - var3) / (var6 - var5);
return 1;
} else if (var0 == ScriptOpcodes.ADDPERCENT) {
GrandExchangeOfferTotalQuantityComparator.Interpreter_intStackSize -= 2;
var3 = Interpreter.Interpreter_intStack[GrandExchangeOfferTotalQuantityComparator.Interpreter_intStackSize];
var4 = Interpreter.Interpreter_intStack[GrandExchangeOfferTotalQuantityComparator.Interpreter_intStackSize + 1];
Interpreter.Interpreter_intStack[++GrandExchangeOfferTotalQuantityComparator.Interpreter_intStackSize - 1] = var3 + var3 * var4 / 100;
return 1;
} else if (var0 == ScriptOpcodes.SETBIT) {
GrandExchangeOfferTotalQuantityComparator.Interpreter_intStackSize -= 2;
var3 = Interpreter.Interpreter_intStack[GrandExchangeOfferTotalQuantityComparator.Interpreter_intStackSize];
var4 = Interpreter.Interpreter_intStack[GrandExchangeOfferTotalQuantityComparator.Interpreter_intStackSize + 1];
Interpreter.Interpreter_intStack[++GrandExchangeOfferTotalQuantityComparator.Interpreter_intStackSize - 1] = var3 | 1 << var4;
return 1;
} else if (var0 == ScriptOpcodes.CLEARBIT) {
GrandExchangeOfferTotalQuantityComparator.Interpreter_intStackSize -= 2;
var3 = Interpreter.Interpreter_intStack[GrandExchangeOfferTotalQuantityComparator.Interpreter_intStackSize];
var4 = Interpreter.Interpreter_intStack[GrandExchangeOfferTotalQuantityComparator.Interpreter_intStackSize + 1];
Interpreter.Interpreter_intStack[++GrandExchangeOfferTotalQuantityComparator.Interpreter_intStackSize - 1] = var3 & -1 - (1 << var4);
return 1;
} else if (var0 == ScriptOpcodes.TESTBIT) {
GrandExchangeOfferTotalQuantityComparator.Interpreter_intStackSize -= 2;
var3 = Interpreter.Interpreter_intStack[GrandExchangeOfferTotalQuantityComparator.Interpreter_intStackSize];
var4 = Interpreter.Interpreter_intStack[GrandExchangeOfferTotalQuantityComparator.Interpreter_intStackSize + 1];
Interpreter.Interpreter_intStack[++GrandExchangeOfferTotalQuantityComparator.Interpreter_intStackSize - 1] = (var3 & 1 << var4) != 0 ? 1 : 0;
return 1;
} else if (var0 == ScriptOpcodes.MOD) {
GrandExchangeOfferTotalQuantityComparator.Interpreter_intStackSize -= 2;
var3 = Interpreter.Interpreter_intStack[GrandExchangeOfferTotalQuantityComparator.Interpreter_intStackSize];
var4 = Interpreter.Interpreter_intStack[GrandExchangeOfferTotalQuantityComparator.Interpreter_intStackSize + 1];
Interpreter.Interpreter_intStack[++GrandExchangeOfferTotalQuantityComparator.Interpreter_intStackSize - 1] = var3 % var4;
return 1;
} else if (var0 == ScriptOpcodes.POW) {
GrandExchangeOfferTotalQuantityComparator.Interpreter_intStackSize -= 2;
var3 = Interpreter.Interpreter_intStack[GrandExchangeOfferTotalQuantityComparator.Interpreter_intStackSize];
var4 = Interpreter.Interpreter_intStack[GrandExchangeOfferTotalQuantityComparator.Interpreter_intStackSize + 1];
if (var3 == 0) {
Interpreter.Interpreter_intStack[++GrandExchangeOfferTotalQuantityComparator.Interpreter_intStackSize - 1] = 0;
} else {
Interpreter.Interpreter_intStack[++GrandExchangeOfferTotalQuantityComparator.Interpreter_intStackSize - 1] = (int)Math.pow((double)var3, (double)var4);
}
return 1;
} else if (var0 == ScriptOpcodes.INVPOW) {
GrandExchangeOfferTotalQuantityComparator.Interpreter_intStackSize -= 2;
var3 = Interpreter.Interpreter_intStack[GrandExchangeOfferTotalQuantityComparator.Interpreter_intStackSize];
var4 = Interpreter.Interpreter_intStack[GrandExchangeOfferTotalQuantityComparator.Interpreter_intStackSize + 1];
if (var3 == 0) {
Interpreter.Interpreter_intStack[++GrandExchangeOfferTotalQuantityComparator.Interpreter_intStackSize - 1] = 0;
return 1;
} else {
switch(var4) {
case 0:
Interpreter.Interpreter_intStack[++GrandExchangeOfferTotalQuantityComparator.Interpreter_intStackSize - 1] = Integer.MAX_VALUE;
break; break;
} case 1:
Interpreter.Interpreter_intStack[++GrandExchangeOfferTotalQuantityComparator.Interpreter_intStackSize - 1] = var3;
break;
case 2:
Interpreter.Interpreter_intStack[++GrandExchangeOfferTotalQuantityComparator.Interpreter_intStackSize - 1] = (int)Math.sqrt((double)var3);
break;
case 3:
Interpreter.Interpreter_intStack[++GrandExchangeOfferTotalQuantityComparator.Interpreter_intStackSize - 1] = (int)Math.cbrt((double)var3);
break;
case 4:
Interpreter.Interpreter_intStack[++GrandExchangeOfferTotalQuantityComparator.Interpreter_intStackSize - 1] = (int)Math.sqrt(Math.sqrt((double)var3));
break;
default:
Interpreter.Interpreter_intStack[++GrandExchangeOfferTotalQuantityComparator.Interpreter_intStackSize - 1] = (int)Math.pow((double)var3, 1.0D / (double)var4);
} }
if (!var2) { return 1;
var4 = (int)var0.key; }
Widget var5 = PacketBufferNode.getWidget(var4); } else if (var0 == ScriptOpcodes.AND) {
if (var5 != null) { GrandExchangeOfferTotalQuantityComparator.Interpreter_intStackSize -= 2;
GrandExchangeOfferAgeComparator.invalidateWidget(var5); var3 = Interpreter.Interpreter_intStack[GrandExchangeOfferTotalQuantityComparator.Interpreter_intStackSize];
var4 = Interpreter.Interpreter_intStack[GrandExchangeOfferTotalQuantityComparator.Interpreter_intStackSize + 1];
Interpreter.Interpreter_intStack[++GrandExchangeOfferTotalQuantityComparator.Interpreter_intStackSize - 1] = var3 & var4;
return 1;
} else if (var0 == ScriptOpcodes.OR) {
GrandExchangeOfferTotalQuantityComparator.Interpreter_intStackSize -= 2;
var3 = Interpreter.Interpreter_intStack[GrandExchangeOfferTotalQuantityComparator.Interpreter_intStackSize];
var4 = Interpreter.Interpreter_intStack[GrandExchangeOfferTotalQuantityComparator.Interpreter_intStackSize + 1];
Interpreter.Interpreter_intStack[++GrandExchangeOfferTotalQuantityComparator.Interpreter_intStackSize - 1] = var3 | var4;
return 1;
} else if (var0 == ScriptOpcodes.SCALE) {
GrandExchangeOfferTotalQuantityComparator.Interpreter_intStackSize -= 3;
long var9 = (long)Interpreter.Interpreter_intStack[GrandExchangeOfferTotalQuantityComparator.Interpreter_intStackSize];
long var11 = (long)Interpreter.Interpreter_intStack[GrandExchangeOfferTotalQuantityComparator.Interpreter_intStackSize + 1];
long var13 = (long)Interpreter.Interpreter_intStack[GrandExchangeOfferTotalQuantityComparator.Interpreter_intStackSize + 2];
Interpreter.Interpreter_intStack[++GrandExchangeOfferTotalQuantityComparator.Interpreter_intStackSize - 1] = (int)(var9 * var13 / var11);
return 1;
} else {
return 2;
} }
} }
} }
}
}
@ObfuscatedName("lw")
@ObfuscatedSignature(
signature = "(Ljava/lang/String;ZI)V",
garbageValue = "-2087337765"
)
@Export("findItemDefinitions")
static void findItemDefinitions(String var0, boolean var1) {
var0 = var0.toLowerCase();
short[] var2 = new short[16];
int var3 = 0;
for (int var4 = 0; var4 < ItemDefinition.ItemDefinition_fileCount; ++var4) {
ItemDefinition var5 = class222.ItemDefinition_get(var4);
if ((!var1 || var5.isTradable) && var5.noteTemplate == -1 && var5.name.toLowerCase().indexOf(var0) != -1) {
if (var3 >= 250) {
MouseHandler.foundItemIdCount = -1;
UserComparator4.foundItemIds = null;
return;
}
if (var3 >= var2.length) {
short[] var6 = new short[var2.length * 2];
for (int var7 = 0; var7 < var3; ++var7) {
var6[var7] = var2[var7];
}
var2 = var6;
}
var2[var3++] = (short)var4;
}
}
UserComparator4.foundItemIds = var2;
WorldMapManager.foundItemIndex = 0;
MouseHandler.foundItemIdCount = var3;
String[] var8 = new String[MouseHandler.foundItemIdCount];
for (int var9 = 0; var9 < MouseHandler.foundItemIdCount; ++var9) {
var8[var9] = class222.ItemDefinition_get(var2[var9]).name;
}
short[] var10 = UserComparator4.foundItemIds;
RouteStrategy.sortItemsByName(var8, var10, 0, var8.length - 1);
}
@ObfuscatedName("lj")
@ObfuscatedSignature(
signature = "(I)V",
garbageValue = "124156386"
)
static void method3394() {
if (GrandExchangeOfferWorldComparator.field30 != null) {
Client.field900 = Client.cycle;
GrandExchangeOfferWorldComparator.field30.method4482();
for (int var0 = 0; var0 < Client.players.length; ++var0) {
if (Client.players[var0] != null) {
GrandExchangeOfferWorldComparator.field30.method4476(UserComparator8.baseX * 64 + (Client.players[var0].x >> 7), HealthBar.baseY * 64 + (Client.players[var0].y >> 7));
}
}
}
}
}
+39 -39
View File
@@ -4,30 +4,30 @@ import net.runelite.mapping.ObfuscatedGetter;
import net.runelite.mapping.ObfuscatedName; import net.runelite.mapping.ObfuscatedName;
import net.runelite.mapping.ObfuscatedSignature; import net.runelite.mapping.ObfuscatedSignature;
@ObfuscatedName("ls") @ObfuscatedName("lw")
@Implements("Bounds") @Implements("Bounds")
public class Bounds { public class Bounds {
@ObfuscatedName("a") @ObfuscatedName("u")
@ObfuscatedGetter( @ObfuscatedGetter(
intValue = -1735724601 intValue = -460052355
) )
@Export("lowX") @Export("lowX")
public int lowX; public int lowX;
@ObfuscatedName("t") @ObfuscatedName("f")
@ObfuscatedGetter( @ObfuscatedGetter(
intValue = -701395687 intValue = -2012134471
) )
@Export("lowY") @Export("lowY")
public int lowY; public int lowY;
@ObfuscatedName("n") @ObfuscatedName("b")
@ObfuscatedGetter( @ObfuscatedGetter(
intValue = -825003219 intValue = -295033527
) )
@Export("highX") @Export("highX")
public int highX; public int highX;
@ObfuscatedName("q") @ObfuscatedName("g")
@ObfuscatedGetter( @ObfuscatedGetter(
intValue = 1589322753 intValue = 168990255
) )
@Export("highY") @Export("highY")
public int highY; public int highY;
@@ -41,10 +41,10 @@ public class Bounds {
this(0, 0, var1, var2); this(0, 0, var1, var2);
} }
@ObfuscatedName("a") @ObfuscatedName("u")
@ObfuscatedSignature( @ObfuscatedSignature(
signature = "(IIB)V", signature = "(III)V",
garbageValue = "0" garbageValue = "2660177"
) )
@Export("setLow") @Export("setLow")
public void setLow(int var1, int var2) { public void setLow(int var1, int var2) {
@@ -52,10 +52,10 @@ public class Bounds {
this.lowY = var2; this.lowY = var2;
} }
@ObfuscatedName("t") @ObfuscatedName("f")
@ObfuscatedSignature( @ObfuscatedSignature(
signature = "(IIB)V", signature = "(III)V",
garbageValue = "-111" garbageValue = "-2094067134"
) )
@Export("setHigh") @Export("setHigh")
public void setHigh(int var1, int var2) { public void setHigh(int var1, int var2) {
@@ -63,22 +63,22 @@ public class Bounds {
this.highY = var2; this.highY = var2;
} }
@ObfuscatedName("n") @ObfuscatedName("b")
@ObfuscatedSignature( @ObfuscatedSignature(
signature = "(Lls;Lls;I)V", signature = "(Llw;Llw;I)V",
garbageValue = "478225673" garbageValue = "-1378813027"
) )
public void method6081(Bounds var1, Bounds var2) { public void method6069(Bounds var1, Bounds var2) {
this.method6097(var1, var2); this.method6070(var1, var2);
this.method6085(var1, var2); this.method6071(var1, var2);
} }
@ObfuscatedName("q") @ObfuscatedName("g")
@ObfuscatedSignature( @ObfuscatedSignature(
signature = "(Lls;Lls;I)V", signature = "(Llw;Llw;B)V",
garbageValue = "-1348909503" garbageValue = "6"
) )
void method6097(Bounds var1, Bounds var2) { void method6070(Bounds var1, Bounds var2) {
var2.lowX = this.lowX; var2.lowX = this.lowX;
var2.highX = this.highX; var2.highX = this.highX;
if (this.lowX < var1.lowX) { if (this.lowX < var1.lowX) {
@@ -96,12 +96,12 @@ public class Bounds {
} }
@ObfuscatedName("v") @ObfuscatedName("z")
@ObfuscatedSignature( @ObfuscatedSignature(
signature = "(Lls;Lls;B)V", signature = "(Llw;Llw;B)V",
garbageValue = "1" garbageValue = "72"
) )
void method6085(Bounds var1, Bounds var2) { void method6071(Bounds var1, Bounds var2) {
var2.lowY = this.lowY; var2.lowY = this.lowY;
var2.highY = this.highY; var2.highY = this.highY;
if (this.lowY < var1.lowY) { if (this.lowY < var1.lowY) {
@@ -109,8 +109,8 @@ public class Bounds {
var2.lowY = var1.lowY; var2.lowY = var1.lowY;
} }
if (var2.method6087() > var1.method6087()) { if (var2.method6085() > var1.method6085()) {
var2.highY -= var2.method6087() - var1.method6087(); var2.highY -= var2.method6085() - var1.method6085();
} }
if (var2.highY < 0) { if (var2.highY < 0) {
@@ -119,22 +119,22 @@ public class Bounds {
} }
@ObfuscatedName("l") @ObfuscatedName("p")
@ObfuscatedSignature( @ObfuscatedSignature(
signature = "(B)I", signature = "(S)I",
garbageValue = "-20" garbageValue = "-14495"
) )
int method6086() { int method6086() {
return this.highX + this.lowX; return this.highX + this.lowX;
} }
@ObfuscatedName("c") @ObfuscatedName("h")
@ObfuscatedSignature( @ObfuscatedSignature(
signature = "(B)I", signature = "(I)I",
garbageValue = "-30" garbageValue = "-1630571197"
) )
int method6087() { int method6085() {
return this.lowY + this.highY; return this.highY + this.lowY;
} }
public String toString() { public String toString() {
+23 -106
View File
@@ -4,24 +4,24 @@ import net.runelite.mapping.ObfuscatedGetter;
import net.runelite.mapping.ObfuscatedName; import net.runelite.mapping.ObfuscatedName;
import net.runelite.mapping.ObfuscatedSignature; import net.runelite.mapping.ObfuscatedSignature;
@ObfuscatedName("jx") @ObfuscatedName("jt")
@Implements("Buddy") @Implements("Buddy")
public class Buddy extends User { public class Buddy extends User {
@ObfuscatedName("v") @ObfuscatedName("z")
@ObfuscatedGetter( @ObfuscatedGetter(
intValue = 1646057305 intValue = -1985676249
) )
@Export("world") @Export("world")
public int world; public int world;
@ObfuscatedName("l") @ObfuscatedName("p")
@ObfuscatedGetter( @ObfuscatedGetter(
intValue = 1797004239 intValue = 1502929201
) )
@Export("int2") @Export("int2")
public int int2; public int int2;
@ObfuscatedName("c") @ObfuscatedName("h")
@ObfuscatedGetter( @ObfuscatedGetter(
intValue = 48717521 intValue = -588738279
) )
@Export("rank") @Export("rank")
public int rank; public int rank;
@@ -30,10 +30,10 @@ public class Buddy extends User {
this.world = -1; this.world = -1;
} }
@ObfuscatedName("bx") @ObfuscatedName("ar")
@ObfuscatedSignature( @ObfuscatedSignature(
signature = "(IIB)V", signature = "(IIS)V",
garbageValue = "-15" garbageValue = "13296"
) )
@Export("set") @Export("set")
void set(int var1, int var2) { void set(int var1, int var2) {
@@ -41,120 +41,37 @@ public class Buddy extends User {
this.int2 = var2; this.int2 = var2;
} }
@ObfuscatedName("bl") @ObfuscatedName("av")
@ObfuscatedSignature( @ObfuscatedSignature(
signature = "(I)I", signature = "(I)I",
garbageValue = "-319513783" garbageValue = "1862219925"
) )
@Export("getWorld") @Export("getWorld")
public int getWorld() { public int getWorld() {
return this.world; return this.world;
} }
@ObfuscatedName("bh") @ObfuscatedName("aq")
@ObfuscatedSignature( @ObfuscatedSignature(
signature = "(B)Z", signature = "(I)Z",
garbageValue = "0" garbageValue = "-127464442"
) )
@Export("hasWorld") @Export("hasWorld")
public boolean hasWorld() { public boolean hasWorld() {
return this.world > 0; return this.world > 0;
} }
@ObfuscatedName("q") @ObfuscatedName("g")
@ObfuscatedSignature( @ObfuscatedSignature(
signature = "(CI)C", signature = "(I)V",
garbageValue = "129853061" garbageValue = "595265698"
) )
public static char method5286(char var0) { static void method5251() {
switch(var0) { if (Client.Login_isUsernameRemembered && Login.Login_username != null && Login.Login_username.length() > 0) {
case ' ': Login.currentLoginField = 1;
case '-': } else {
case '_': Login.currentLoginField = 0;
case ' ':
return '_';
case '#':
case '[':
case ']':
return var0;
case 'À':
case 'Á':
case 'Â':
case 'Ã':
case 'Ä':
case 'à':
case 'á':
case 'â':
case 'ã':
case 'ä':
return 'a';
case 'Ç':
case 'ç':
return 'c';
case 'È':
case 'É':
case 'Ê':
case 'Ë':
case 'è':
case 'é':
case 'ê':
case 'ë':
return 'e';
case 'Í':
case 'Î':
case 'Ï':
case 'í':
case 'î':
case 'ï':
return 'i';
case 'Ñ':
case 'ñ':
return 'n';
case 'Ò':
case 'Ó':
case 'Ô':
case 'Õ':
case 'Ö':
case 'ò':
case 'ó':
case 'ô':
case 'õ':
case 'ö':
return 'o';
case 'Ù':
case 'Ú':
case 'Û':
case 'Ü':
case 'ù':
case 'ú':
case 'û':
case 'ü':
return 'u';
case 'ß':
return 'b';
case 'ÿ':
case 'Ÿ':
return 'y';
default:
return Character.toLowerCase(var0);
}
} }
@ObfuscatedName("ah")
@ObfuscatedSignature(
signature = "(IB)I",
garbageValue = "116"
)
static int method5298(int var0) {
return (int)Math.pow(2.0D, (double)((float)var0 / 256.0F + 7.0F));
}
@ObfuscatedName("bh")
@ObfuscatedSignature(
signature = "(Ljava/lang/String;I)I",
garbageValue = "-2095111578"
)
public static int method5297(String var0) {
return var0.length() + 2;
} }
} }
@@ -1,18 +1,27 @@
import net.runelite.mapping.Export; import net.runelite.mapping.Export;
import net.runelite.mapping.Implements; import net.runelite.mapping.Implements;
import net.runelite.mapping.ObfuscatedGetter;
import net.runelite.mapping.ObfuscatedName; import net.runelite.mapping.ObfuscatedName;
import net.runelite.mapping.ObfuscatedSignature; import net.runelite.mapping.ObfuscatedSignature;
@ObfuscatedName("fs") @ObfuscatedName("fj")
@Implements("BuddyRankComparator") @Implements("BuddyRankComparator")
public class BuddyRankComparator extends AbstractUserComparator { public class BuddyRankComparator extends AbstractUserComparator {
@ObfuscatedName("do") @ObfuscatedName("rm")
@ObfuscatedSignature( @ObfuscatedGetter(
signature = "Lij;" intValue = -773868241
) )
@Export("archive0") static int field1998;
static Archive archive0; @ObfuscatedName("e")
@ObfuscatedName("a") @ObfuscatedSignature(
signature = "Lfp;"
)
@Export("clock")
protected static Clock clock;
@ObfuscatedName("gd")
@Export("regionMapArchiveIds")
static int[] regionMapArchiveIds;
@ObfuscatedName("u")
@Export("reversed") @Export("reversed")
final boolean reversed; final boolean reversed;
@@ -20,10 +29,10 @@ public class BuddyRankComparator extends AbstractUserComparator {
this.reversed = var1; this.reversed = var1;
} }
@ObfuscatedName("a") @ObfuscatedName("u")
@ObfuscatedSignature( @ObfuscatedSignature(
signature = "(Ljx;Ljx;I)I", signature = "(Ljt;Ljt;I)I",
garbageValue = "63405397" garbageValue = "-525022889"
) )
@Export("compareBuddy") @Export("compareBuddy")
int compareBuddy(Buddy var1, Buddy var2) { int compareBuddy(Buddy var1, Buddy var2) {
@@ -38,60 +47,16 @@ public class BuddyRankComparator extends AbstractUserComparator {
return this.compareBuddy((Buddy)var1, (Buddy)var2); return this.compareBuddy((Buddy)var1, (Buddy)var2);
} }
@ObfuscatedName("n") @ObfuscatedName("u")
@ObfuscatedSignature( @ObfuscatedSignature(
signature = "(Lij;IIIBZI)V", signature = "(Lhf;Lhf;Lhf;Lgz;I)Z",
garbageValue = "-1505675157" garbageValue = "-2130405669"
) )
@Export("requestNetFile") public static boolean method3483(AbstractArchive var0, AbstractArchive var1, AbstractArchive var2, MidiPcmStream var3) {
static void requestNetFile(Archive var0, int var1, int var2, int var3, byte var4, boolean var5) { class197.musicPatchesArchive = var0;
long var6 = (long)((var1 << 16) + var2); class197.musicSamplesArchive = var1;
NetFileRequest var8 = (NetFileRequest)NetCache.NetCache_pendingPriorityWrites.get(var6); class197.soundEffectsArchive = var2;
if (var8 == null) { FaceNormal.midiPcmStream = var3;
var8 = (NetFileRequest)NetCache.NetCache_pendingPriorityResponses.get(var6); return true;
if (var8 == null) {
var8 = (NetFileRequest)NetCache.NetCache_pendingWrites.get(var6);
if (var8 != null) {
if (var5) {
var8.removeDual();
NetCache.NetCache_pendingPriorityWrites.put(var8, var6);
--NetCache.NetCache_pendingWritesCount;
++NetCache.NetCache_pendingPriorityWritesCount;
}
} else {
if (!var5) {
var8 = (NetFileRequest)NetCache.NetCache_pendingResponses.get(var6);
if (var8 != null) {
return;
}
}
var8 = new NetFileRequest();
var8.archive = var0;
var8.crc = var3;
var8.padding = var4;
if (var5) {
NetCache.NetCache_pendingPriorityWrites.put(var8, var6);
++NetCache.NetCache_pendingPriorityWritesCount;
} else {
NetCache.NetCache_pendingWritesQueue.addFirst(var8);
NetCache.NetCache_pendingWrites.put(var8, var6);
++NetCache.NetCache_pendingWritesCount;
}
}
}
}
}
@ObfuscatedName("p")
@ObfuscatedSignature(
signature = "(I)V",
garbageValue = "2092280519"
)
public static void method3568() {
SequenceDefinition.SequenceDefinition_cached.clear();
SequenceDefinition.SequenceDefinition_cachedFrames.clear();
} }
} }
File diff suppressed because it is too large Load Diff
@@ -6,72 +6,72 @@ import net.runelite.mapping.ObfuscatedGetter;
import net.runelite.mapping.ObfuscatedName; import net.runelite.mapping.ObfuscatedName;
import net.runelite.mapping.ObfuscatedSignature; import net.runelite.mapping.ObfuscatedSignature;
@ObfuscatedName("mz") @ObfuscatedName("mb")
@Implements("BufferedFile") @Implements("BufferedFile")
public class BufferedFile { public class BufferedFile {
@ObfuscatedName("t") @ObfuscatedName("f")
@ObfuscatedSignature( @ObfuscatedSignature(
signature = "Lmh;" signature = "Lmd;"
) )
@Export("accessFile") @Export("accessFile")
AccessFile accessFile; AccessFile accessFile;
@ObfuscatedName("n") @ObfuscatedName("b")
@Export("readBuffer") @Export("readBuffer")
byte[] readBuffer; byte[] readBuffer;
@ObfuscatedName("q") @ObfuscatedName("g")
@ObfuscatedGetter( @ObfuscatedGetter(
longValue = -3262164853072505693L longValue = 4441824273806734931L
) )
@Export("readBufferOffset") @Export("readBufferOffset")
long readBufferOffset; long readBufferOffset;
@ObfuscatedName("v") @ObfuscatedName("z")
@ObfuscatedGetter( @ObfuscatedGetter(
intValue = -773924091 intValue = 2129478493
) )
@Export("readBufferLength") @Export("readBufferLength")
int readBufferLength; int readBufferLength;
@ObfuscatedName("l") @ObfuscatedName("p")
@Export("writeBuffer") @Export("writeBuffer")
byte[] writeBuffer; byte[] writeBuffer;
@ObfuscatedName("c") @ObfuscatedName("h")
@ObfuscatedGetter( @ObfuscatedGetter(
longValue = 2584269110563809293L longValue = -8796048585263914235L
) )
@Export("writeBufferOffset") @Export("writeBufferOffset")
long writeBufferOffset; long writeBufferOffset;
@ObfuscatedName("o") @ObfuscatedName("y")
@ObfuscatedGetter( @ObfuscatedGetter(
intValue = 2068321047 intValue = -585871581
) )
@Export("writeBufferLength") @Export("writeBufferLength")
int writeBufferLength; int writeBufferLength;
@ObfuscatedName("i") @ObfuscatedName("w")
@ObfuscatedGetter( @ObfuscatedGetter(
longValue = 6372981625088766905L longValue = -2340341034582279311L
) )
@Export("offset") @Export("offset")
long offset; long offset;
@ObfuscatedName("d") @ObfuscatedName("i")
@ObfuscatedGetter( @ObfuscatedGetter(
longValue = 7685888135171302975L longValue = -5942828629537241469L
) )
@Export("fileLength") @Export("fileLength")
long fileLength; long fileLength;
@ObfuscatedName("m") @ObfuscatedName("k")
@ObfuscatedGetter( @ObfuscatedGetter(
longValue = -4038469138705030175L longValue = 2651922969862605519L
) )
@Export("length") @Export("length")
long length; long length;
@ObfuscatedName("p") @ObfuscatedName("x")
@ObfuscatedGetter( @ObfuscatedGetter(
longValue = 8140662089348975089L longValue = 9216989625367163093L
) )
@Export("fileOffset") @Export("fileOffset")
long fileOffset; long fileOffset;
@ObfuscatedSignature( @ObfuscatedSignature(
signature = "(Lmh;II)V" signature = "(Lmd;II)V"
) )
public BufferedFile(AccessFile var1, int var2, int var3) throws IOException { public BufferedFile(AccessFile var1, int var2, int var3) throws IOException {
this.readBufferOffset = -1L; this.readBufferOffset = -1L;
@@ -84,10 +84,10 @@ public class BufferedFile {
this.offset = 0L; this.offset = 0L;
} }
@ObfuscatedName("a") @ObfuscatedName("u")
@ObfuscatedSignature( @ObfuscatedSignature(
signature = "(B)V", signature = "(I)V",
garbageValue = "57" garbageValue = "-394540595"
) )
@Export("close") @Export("close")
public void close() throws IOException { public void close() throws IOException {
@@ -95,7 +95,7 @@ public class BufferedFile {
this.accessFile.close(); this.accessFile.close();
} }
@ObfuscatedName("t") @ObfuscatedName("f")
@Export("seek") @Export("seek")
public void seek(long var1) throws IOException { public void seek(long var1) throws IOException {
if (var1 < 0L) { if (var1 < 0L) {
@@ -105,30 +105,30 @@ public class BufferedFile {
} }
} }
@ObfuscatedName("n") @ObfuscatedName("b")
@ObfuscatedSignature( @ObfuscatedSignature(
signature = "(B)J", signature = "(B)J",
garbageValue = "87" garbageValue = "-30"
) )
@Export("length") @Export("length")
public long length() { public long length() {
return this.length; return this.length;
} }
@ObfuscatedName("q") @ObfuscatedName("g")
@ObfuscatedSignature( @ObfuscatedSignature(
signature = "([BS)V", signature = "([BI)V",
garbageValue = "1024" garbageValue = "-2037969367"
) )
@Export("readFully") @Export("readFully")
public void readFully(byte[] var1) throws IOException { public void readFully(byte[] var1) throws IOException {
this.read(var1, 0, var1.length); this.read(var1, 0, var1.length);
} }
@ObfuscatedName("v") @ObfuscatedName("z")
@ObfuscatedSignature( @ObfuscatedSignature(
signature = "([BIII)V", signature = "([BIII)V",
garbageValue = "2116217795" garbageValue = "2058467153"
) )
@Export("read") @Export("read")
public void read(byte[] var1, int var2, int var3) throws IOException { public void read(byte[] var1, int var2, int var3) throws IOException {
@@ -137,7 +137,7 @@ public class BufferedFile {
throw new ArrayIndexOutOfBoundsException(var3 + var2 - var1.length); throw new ArrayIndexOutOfBoundsException(var3 + var2 - var1.length);
} }
if (-1L != this.writeBufferOffset && this.offset >= this.writeBufferOffset && this.offset + (long)var3 <= (long)this.writeBufferLength + this.writeBufferOffset) { if (-1L != this.writeBufferOffset && this.offset >= this.writeBufferOffset && (long)var3 + this.offset <= (long)this.writeBufferLength + this.writeBufferOffset) {
System.arraycopy(this.writeBuffer, (int)(this.offset - this.writeBufferOffset), var1, var2, var3); System.arraycopy(this.writeBuffer, (int)(this.offset - this.writeBufferOffset), var1, var2, var3);
this.offset += (long)var3; this.offset += (long)var3;
return; return;
@@ -146,7 +146,7 @@ public class BufferedFile {
long var4 = this.offset; long var4 = this.offset;
int var7 = var3; int var7 = var3;
int var8; int var8;
if (this.offset >= this.readBufferOffset && this.offset < (long)this.readBufferLength + this.readBufferOffset) { if (this.offset >= this.readBufferOffset && this.offset < this.readBufferOffset + (long)this.readBufferLength) {
var8 = (int)((long)this.readBufferLength - (this.offset - this.readBufferOffset)); var8 = (int)((long)this.readBufferLength - (this.offset - this.readBufferOffset));
if (var8 > var3) { if (var8 > var3) {
var8 = var3; var8 = var3;
@@ -184,7 +184,7 @@ public class BufferedFile {
this.offset += (long)var8; this.offset += (long)var8;
} }
if (-1L != this.writeBufferOffset) { if (this.writeBufferOffset != -1L) {
if (this.writeBufferOffset > this.offset && var3 > 0) { if (this.writeBufferOffset > this.offset && var3 > 0) {
var8 = var2 + (int)(this.writeBufferOffset - this.offset); var8 = var2 + (int)(this.writeBufferOffset - this.offset);
if (var8 > var3 + var2) { if (var8 > var3 + var2) {
@@ -207,7 +207,7 @@ public class BufferedFile {
} }
if ((long)this.writeBufferLength + this.writeBufferOffset > var4 && this.writeBufferOffset + (long)this.writeBufferLength <= (long)var7 + var4) { if ((long)this.writeBufferLength + this.writeBufferOffset > var4 && this.writeBufferOffset + (long)this.writeBufferLength <= (long)var7 + var4) {
var10 = (long)this.writeBufferLength + this.writeBufferOffset; var10 = this.writeBufferOffset + (long)this.writeBufferLength;
} else if ((long)var7 + var4 > this.writeBufferOffset && (long)var7 + var4 <= (long)this.writeBufferLength + this.writeBufferOffset) { } else if ((long)var7 + var4 > this.writeBufferOffset && (long)var7 + var4 <= (long)this.writeBufferLength + this.writeBufferOffset) {
var10 = var4 + (long)var7; var10 = var4 + (long)var7;
} }
@@ -231,10 +231,10 @@ public class BufferedFile {
} }
} }
@ObfuscatedName("l") @ObfuscatedName("p")
@ObfuscatedSignature( @ObfuscatedSignature(
signature = "(B)V", signature = "(I)V",
garbageValue = "27" garbageValue = "-1188509289"
) )
@Export("load") @Export("load")
void load() throws IOException { void load() throws IOException {
@@ -261,15 +261,15 @@ public class BufferedFile {
} }
@ObfuscatedName("c") @ObfuscatedName("h")
@ObfuscatedSignature( @ObfuscatedSignature(
signature = "([BIII)V", signature = "([BIIS)V",
garbageValue = "2065277497" garbageValue = "13009"
) )
@Export("write") @Export("write")
public void write(byte[] var1, int var2, int var3) throws IOException { public void write(byte[] var1, int var2, int var3) throws IOException {
try { try {
if (this.offset + (long)var3 > this.length) { if ((long)var3 + this.offset > this.length) {
this.length = this.offset + (long)var3; this.length = this.offset + (long)var3;
} }
@@ -277,7 +277,7 @@ public class BufferedFile {
this.flush(); this.flush();
} }
if (this.writeBufferOffset != -1L && (long)var3 + this.offset > this.writeBufferOffset + (long)this.writeBuffer.length) { if (-1L != this.writeBufferOffset && (long)var3 + this.offset > (long)this.writeBuffer.length + this.writeBufferOffset) {
int var4 = (int)((long)this.writeBuffer.length - (this.offset - this.writeBufferOffset)); int var4 = (int)((long)this.writeBuffer.length - (this.offset - this.writeBufferOffset));
System.arraycopy(var1, var2, this.writeBuffer, (int)(this.offset - this.writeBufferOffset), var4); System.arraycopy(var1, var2, this.writeBuffer, (int)(this.offset - this.writeBufferOffset), var4);
this.offset += (long)var4; this.offset += (long)var4;
@@ -289,7 +289,7 @@ public class BufferedFile {
if (var3 <= this.writeBuffer.length) { if (var3 <= this.writeBuffer.length) {
if (var3 > 0) { if (var3 > 0) {
if (this.writeBufferOffset == -1L) { if (-1L == this.writeBufferOffset) {
this.writeBufferOffset = this.offset; this.writeBufferOffset = this.offset;
} }
@@ -301,7 +301,7 @@ public class BufferedFile {
} }
} else { } else {
if (this.fileOffset != this.offset) { if (this.offset != this.fileOffset) {
this.accessFile.seek(this.offset); this.accessFile.seek(this.offset);
this.fileOffset = this.offset; this.fileOffset = this.offset;
} }
@@ -314,16 +314,16 @@ public class BufferedFile {
long var9 = -1L; long var9 = -1L;
long var6 = -1L; long var6 = -1L;
if (this.offset >= this.readBufferOffset && this.offset < (long)this.readBufferLength + this.readBufferOffset) { if (this.offset >= this.readBufferOffset && this.offset < this.readBufferOffset + (long)this.readBufferLength) {
var9 = this.offset; var9 = this.offset;
} else if (this.readBufferOffset >= this.offset && this.readBufferOffset < (long)var3 + this.offset) { } else if (this.readBufferOffset >= this.offset && this.readBufferOffset < (long)var3 + this.offset) {
var9 = this.readBufferOffset; var9 = this.readBufferOffset;
} }
if (this.offset + (long)var3 > this.readBufferOffset && this.offset + (long)var3 <= (long)this.readBufferLength + this.readBufferOffset) { if ((long)var3 + this.offset > this.readBufferOffset && (long)var3 + this.offset <= this.readBufferOffset + (long)this.readBufferLength) {
var6 = (long)var3 + this.offset; var6 = this.offset + (long)var3;
} else if ((long)this.readBufferLength + this.readBufferOffset > this.offset && (long)this.readBufferLength + this.readBufferOffset <= this.offset + (long)var3) { } else if (this.readBufferOffset + (long)this.readBufferLength > this.offset && (long)this.readBufferLength + this.readBufferOffset <= (long)var3 + this.offset) {
var6 = this.readBufferOffset + (long)this.readBufferLength; var6 = (long)this.readBufferLength + this.readBufferOffset;
} }
if (var9 > -1L && var6 > var9) { if (var9 > -1L && var6 > var9) {
@@ -339,36 +339,36 @@ public class BufferedFile {
} }
} }
@ObfuscatedName("o") @ObfuscatedName("y")
@ObfuscatedSignature( @ObfuscatedSignature(
signature = "(B)V", signature = "(B)V",
garbageValue = "4" garbageValue = "0"
) )
@Export("flush") @Export("flush")
void flush() throws IOException { void flush() throws IOException {
if (this.writeBufferOffset != -1L) { if (-1L != this.writeBufferOffset) {
if (this.fileOffset != this.writeBufferOffset) { if (this.fileOffset != this.writeBufferOffset) {
this.accessFile.seek(this.writeBufferOffset); this.accessFile.seek(this.writeBufferOffset);
this.fileOffset = this.writeBufferOffset; this.fileOffset = this.writeBufferOffset;
} }
this.accessFile.write(this.writeBuffer, 0, this.writeBufferLength); this.accessFile.write(this.writeBuffer, 0, this.writeBufferLength);
this.fileOffset += 2068321047L * (long)(this.writeBufferLength * 1929925799); this.fileOffset += (long)(this.writeBufferLength * -520660853) * -585871581L;
if (this.fileOffset > this.fileLength) { if (this.fileOffset > this.fileLength) {
this.fileLength = this.fileOffset; this.fileLength = this.fileOffset;
} }
long var1 = -1L; long var1 = -1L;
long var3 = -1L; long var3 = -1L;
if (this.writeBufferOffset >= this.readBufferOffset && this.writeBufferOffset < this.readBufferOffset + (long)this.readBufferLength) { if (this.writeBufferOffset >= this.readBufferOffset && this.writeBufferOffset < (long)this.readBufferLength + this.readBufferOffset) {
var1 = this.writeBufferOffset; var1 = this.writeBufferOffset;
} else if (this.readBufferOffset >= this.writeBufferOffset && this.readBufferOffset < (long)this.writeBufferLength + this.writeBufferOffset) { } else if (this.readBufferOffset >= this.writeBufferOffset && this.readBufferOffset < (long)this.writeBufferLength + this.writeBufferOffset) {
var1 = this.readBufferOffset; var1 = this.readBufferOffset;
} }
if ((long)this.writeBufferLength + this.writeBufferOffset > this.readBufferOffset && (long)this.writeBufferLength + this.writeBufferOffset <= (long)this.readBufferLength + this.readBufferOffset) { if ((long)this.writeBufferLength + this.writeBufferOffset > this.readBufferOffset && (long)this.writeBufferLength + this.writeBufferOffset <= this.readBufferOffset + (long)this.readBufferLength) {
var3 = (long)this.writeBufferLength + this.writeBufferOffset; var3 = (long)this.writeBufferLength + this.writeBufferOffset;
} else if (this.readBufferOffset + (long)this.readBufferLength > this.writeBufferOffset && this.readBufferOffset + (long)this.readBufferLength <= this.writeBufferOffset + (long)this.writeBufferLength) { } else if (this.readBufferOffset + (long)this.readBufferLength > this.writeBufferOffset && this.readBufferOffset + (long)this.readBufferLength <= (long)this.writeBufferLength + this.writeBufferOffset) {
var3 = this.readBufferOffset + (long)this.readBufferLength; var3 = this.readBufferOffset + (long)this.readBufferLength;
} }
@@ -5,21 +5,21 @@ import net.runelite.mapping.Implements;
import net.runelite.mapping.ObfuscatedName; import net.runelite.mapping.ObfuscatedName;
import net.runelite.mapping.ObfuscatedSignature; import net.runelite.mapping.ObfuscatedSignature;
@ObfuscatedName("kg") @ObfuscatedName("ki")
@Implements("BufferedNetSocket") @Implements("BufferedNetSocket")
public class BufferedNetSocket extends AbstractSocket { public class BufferedNetSocket extends AbstractSocket {
@ObfuscatedName("a") @ObfuscatedName("u")
@Export("socket") @Export("socket")
Socket socket; Socket socket;
@ObfuscatedName("t") @ObfuscatedName("f")
@ObfuscatedSignature( @ObfuscatedSignature(
signature = "Lkl;" signature = "Lkt;"
) )
@Export("source") @Export("source")
BufferedSource source; BufferedSource source;
@ObfuscatedName("n") @ObfuscatedName("b")
@ObfuscatedSignature( @ObfuscatedSignature(
signature = "Lkn;" signature = "Lkb;"
) )
@Export("sink") @Export("sink")
BufferedSink sink; BufferedSink sink;
@@ -34,10 +34,10 @@ public class BufferedNetSocket extends AbstractSocket {
this.sink = new BufferedSink(this.socket.getOutputStream(), var3); this.sink = new BufferedSink(this.socket.getOutputStream(), var3);
} }
@ObfuscatedName("a") @ObfuscatedName("u")
@ObfuscatedSignature( @ObfuscatedSignature(
signature = "(I)V", signature = "(B)V",
garbageValue = "1632517280" garbageValue = "-29"
) )
@Export("close") @Export("close")
public void close() { public void close() {
@@ -51,50 +51,50 @@ public class BufferedNetSocket extends AbstractSocket {
this.source.close(); this.source.close();
} }
@ObfuscatedName("t") @ObfuscatedName("f")
@ObfuscatedSignature( @ObfuscatedSignature(
signature = "(B)I", signature = "(B)I",
garbageValue = "0" garbageValue = "27"
) )
@Export("readUnsignedByte") @Export("readUnsignedByte")
public int readUnsignedByte() throws IOException { public int readUnsignedByte() throws IOException {
return this.source.readUnsignedByte(); return this.source.readUnsignedByte();
} }
@ObfuscatedName("n") @ObfuscatedName("b")
@ObfuscatedSignature( @ObfuscatedSignature(
signature = "(B)I", signature = "(B)I",
garbageValue = "-1" garbageValue = "-53"
) )
@Export("available") @Export("available")
public int available() throws IOException { public int available() throws IOException {
return this.source.available(); return this.source.available();
} }
@ObfuscatedName("q") @ObfuscatedName("g")
@ObfuscatedSignature( @ObfuscatedSignature(
signature = "(II)Z", signature = "(II)Z",
garbageValue = "1174929907" garbageValue = "-1591428004"
) )
@Export("isAvailable") @Export("isAvailable")
public boolean isAvailable(int var1) throws IOException { public boolean isAvailable(int var1) throws IOException {
return this.source.isAvailable(var1); return this.source.isAvailable(var1);
} }
@ObfuscatedName("v") @ObfuscatedName("z")
@ObfuscatedSignature( @ObfuscatedSignature(
signature = "([BIII)I", signature = "([BIIB)I",
garbageValue = "1681485484" garbageValue = "29"
) )
@Export("read") @Export("read")
public int read(byte[] var1, int var2, int var3) throws IOException { public int read(byte[] var1, int var2, int var3) throws IOException {
return this.source.read(var1, var2, var3); return this.source.read(var1, var2, var3);
} }
@ObfuscatedName("c") @ObfuscatedName("h")
@ObfuscatedSignature( @ObfuscatedSignature(
signature = "([BIII)V", signature = "([BIII)V",
garbageValue = "1989353375" garbageValue = "-543253817"
) )
@Export("write") @Export("write")
public void write(byte[] var1, int var2, int var3) throws IOException { public void write(byte[] var1, int var2, int var3) throws IOException {
@@ -6,40 +6,40 @@ import net.runelite.mapping.ObfuscatedGetter;
import net.runelite.mapping.ObfuscatedName; import net.runelite.mapping.ObfuscatedName;
import net.runelite.mapping.ObfuscatedSignature; import net.runelite.mapping.ObfuscatedSignature;
@ObfuscatedName("kn") @ObfuscatedName("kb")
@Implements("BufferedSink") @Implements("BufferedSink")
public class BufferedSink implements Runnable { public class BufferedSink implements Runnable {
@ObfuscatedName("a") @ObfuscatedName("u")
@Export("thread") @Export("thread")
Thread thread; Thread thread;
@ObfuscatedName("t") @ObfuscatedName("f")
@Export("outputStream") @Export("outputStream")
OutputStream outputStream; OutputStream outputStream;
@ObfuscatedName("n") @ObfuscatedName("b")
@ObfuscatedGetter( @ObfuscatedGetter(
intValue = 1704761219 intValue = 904264235
) )
@Export("capacity") @Export("capacity")
int capacity; int capacity;
@ObfuscatedName("q") @ObfuscatedName("g")
@Export("buffer") @Export("buffer")
byte[] buffer; byte[] buffer;
@ObfuscatedName("v") @ObfuscatedName("z")
@ObfuscatedGetter( @ObfuscatedGetter(
intValue = -1398859285 intValue = -566617461
) )
@Export("position") @Export("position")
int position; int position;
@ObfuscatedName("l") @ObfuscatedName("p")
@ObfuscatedGetter( @ObfuscatedGetter(
intValue = 1220399631 intValue = -217387211
) )
@Export("limit") @Export("limit")
int limit; int limit;
@ObfuscatedName("c") @ObfuscatedName("h")
@Export("exception") @Export("exception")
IOException exception; IOException exception;
@ObfuscatedName("o") @ObfuscatedName("y")
@Export("closed") @Export("closed")
boolean closed; boolean closed;
@@ -54,10 +54,10 @@ public class BufferedSink implements Runnable {
this.thread.start(); this.thread.start();
} }
@ObfuscatedName("a") @ObfuscatedName("u")
@ObfuscatedSignature( @ObfuscatedSignature(
signature = "(I)Z", signature = "(I)Z",
garbageValue = "-1040331430" garbageValue = "1508887687"
) )
@Export("isClosed") @Export("isClosed")
boolean isClosed() { boolean isClosed() {
@@ -79,10 +79,10 @@ public class BufferedSink implements Runnable {
} }
} }
@ObfuscatedName("t") @ObfuscatedName("f")
@ObfuscatedSignature( @ObfuscatedSignature(
signature = "([BIII)V", signature = "([BIIB)V",
garbageValue = "-2046611751" garbageValue = "-22"
) )
@Export("write") @Export("write")
void write(byte[] var1, int var2, int var3) throws IOException { void write(byte[] var1, int var2, int var3) throws IOException {
@@ -119,10 +119,10 @@ public class BufferedSink implements Runnable {
} }
} }
@ObfuscatedName("n") @ObfuscatedName("b")
@ObfuscatedSignature( @ObfuscatedSignature(
signature = "(I)V", signature = "(I)V",
garbageValue = "96034687" garbageValue = "1435553079"
) )
@Export("close") @Export("close")
void close() { void close() {
@@ -7,37 +7,37 @@ import net.runelite.mapping.ObfuscatedGetter;
import net.runelite.mapping.ObfuscatedName; import net.runelite.mapping.ObfuscatedName;
import net.runelite.mapping.ObfuscatedSignature; import net.runelite.mapping.ObfuscatedSignature;
@ObfuscatedName("kl") @ObfuscatedName("kt")
@Implements("BufferedSource") @Implements("BufferedSource")
public class BufferedSource implements Runnable { public class BufferedSource implements Runnable {
@ObfuscatedName("a") @ObfuscatedName("u")
@Export("thread") @Export("thread")
Thread thread; Thread thread;
@ObfuscatedName("t") @ObfuscatedName("f")
@Export("inputStream") @Export("inputStream")
InputStream inputStream; InputStream inputStream;
@ObfuscatedName("n") @ObfuscatedName("b")
@ObfuscatedGetter( @ObfuscatedGetter(
intValue = -1673259479 intValue = -290674023
) )
@Export("capacity") @Export("capacity")
int capacity; int capacity;
@ObfuscatedName("q") @ObfuscatedName("g")
@Export("buffer") @Export("buffer")
byte[] buffer; byte[] buffer;
@ObfuscatedName("v") @ObfuscatedName("z")
@ObfuscatedGetter( @ObfuscatedGetter(
intValue = 571240185 intValue = 1886229969
) )
@Export("position") @Export("position")
int position; int position;
@ObfuscatedName("l") @ObfuscatedName("p")
@ObfuscatedGetter( @ObfuscatedGetter(
intValue = -143003191 intValue = 1533965281
) )
@Export("limit") @Export("limit")
int limit; int limit;
@ObfuscatedName("c") @ObfuscatedName("h")
@Export("exception") @Export("exception")
IOException exception; IOException exception;
@@ -52,10 +52,10 @@ public class BufferedSource implements Runnable {
this.thread.start(); this.thread.start();
} }
@ObfuscatedName("a") @ObfuscatedName("u")
@ObfuscatedSignature( @ObfuscatedSignature(
signature = "(II)Z", signature = "(IB)Z",
garbageValue = "1194815492" garbageValue = "-1"
) )
@Export("isAvailable") @Export("isAvailable")
boolean isAvailable(int var1) throws IOException { boolean isAvailable(int var1) throws IOException {
@@ -86,10 +86,10 @@ public class BufferedSource implements Runnable {
} }
} }
@ObfuscatedName("t") @ObfuscatedName("f")
@ObfuscatedSignature( @ObfuscatedSignature(
signature = "(S)I", signature = "(B)I",
garbageValue = "256" garbageValue = "71"
) )
@Export("available") @Export("available")
int available() throws IOException { int available() throws IOException {
@@ -110,15 +110,15 @@ public class BufferedSource implements Runnable {
} }
} }
@ObfuscatedName("n") @ObfuscatedName("b")
@ObfuscatedSignature( @ObfuscatedSignature(
signature = "(I)I", signature = "(I)I",
garbageValue = "418616079" garbageValue = "-245742191"
) )
@Export("readUnsignedByte") @Export("readUnsignedByte")
int readUnsignedByte() throws IOException { int readUnsignedByte() throws IOException {
synchronized(this) { synchronized(this) {
if (this.position == this.limit) { if (this.limit == this.position) {
if (this.exception != null) { if (this.exception != null) {
throw new IOException(this.exception.toString()); throw new IOException(this.exception.toString());
} else { } else {
@@ -133,10 +133,10 @@ public class BufferedSource implements Runnable {
} }
} }
@ObfuscatedName("q") @ObfuscatedName("g")
@ObfuscatedSignature( @ObfuscatedSignature(
signature = "([BIII)I", signature = "([BIII)I",
garbageValue = "153221716" garbageValue = "4492631"
) )
@Export("read") @Export("read")
int read(byte[] var1, int var2, int var3) throws IOException { int read(byte[] var1, int var2, int var3) throws IOException {
@@ -174,10 +174,10 @@ public class BufferedSource implements Runnable {
} }
} }
@ObfuscatedName("v") @ObfuscatedName("z")
@ObfuscatedSignature( @ObfuscatedSignature(
signature = "(I)V", signature = "(B)V",
garbageValue = "-206595375" garbageValue = "34"
) )
@Export("close") @Export("close")
void close() { void close() {
@@ -243,26 +243,4 @@ public class BufferedSource implements Runnable {
} }
} }
} }
@ObfuscatedName("a")
@ObfuscatedSignature(
signature = "(II)Lio;",
garbageValue = "-139133141"
)
@Export("KitDefinition_get")
public static KitDefinition KitDefinition_get(int var0) {
KitDefinition var1 = (KitDefinition)KitDefinition.KitDefinition_cached.get((long)var0);
if (var1 != null) {
return var1;
} else {
byte[] var2 = KitDefinition.KitDefinition_archive.takeFile(3, var0);
var1 = new KitDefinition();
if (var2 != null) {
var1.decode(new Buffer(var2));
}
KitDefinition.KitDefinition_cached.put(var1, (long)var0);
return var1;
}
}
} }
@@ -2,10 +2,10 @@ import net.runelite.mapping.Export;
import net.runelite.mapping.Implements; import net.runelite.mapping.Implements;
import net.runelite.mapping.ObfuscatedName; import net.runelite.mapping.ObfuscatedName;
@ObfuscatedName("fq") @ObfuscatedName("ff")
@Implements("ByteArrayNode") @Implements("ByteArrayNode")
public class ByteArrayNode extends Node { public class ByteArrayNode extends Node {
@ObfuscatedName("a") @ObfuscatedName("u")
@Export("byteArray") @Export("byteArray")
public byte[] byteArray; public byte[] byteArray;
@@ -1,49 +1,42 @@
import java.util.Iterator;
import net.runelite.mapping.Export; import net.runelite.mapping.Export;
import net.runelite.mapping.Implements; import net.runelite.mapping.Implements;
import net.runelite.mapping.ObfuscatedGetter; import net.runelite.mapping.ObfuscatedGetter;
import net.runelite.mapping.ObfuscatedName; import net.runelite.mapping.ObfuscatedName;
import net.runelite.mapping.ObfuscatedSignature; import net.runelite.mapping.ObfuscatedSignature;
@ObfuscatedName("kz") @ObfuscatedName("kv")
@Implements("ByteArrayPool") @Implements("ByteArrayPool")
public class ByteArrayPool { public class ByteArrayPool {
@ObfuscatedName("a") @ObfuscatedName("u")
@ObfuscatedGetter( @ObfuscatedGetter(
intValue = -261452537 intValue = 153239603
) )
@Export("ByteArrayPool_smallCount") @Export("ByteArrayPool_smallCount")
static int ByteArrayPool_smallCount; static int ByteArrayPool_smallCount;
@ObfuscatedName("t") @ObfuscatedName("f")
@ObfuscatedGetter( @ObfuscatedGetter(
intValue = -718717257 intValue = -433125971
) )
@Export("ByteArrayPool_mediumCount") @Export("ByteArrayPool_mediumCount")
static int ByteArrayPool_mediumCount; static int ByteArrayPool_mediumCount;
@ObfuscatedName("n") @ObfuscatedName("b")
@ObfuscatedGetter( @ObfuscatedGetter(
intValue = -1909793595 intValue = -1031778889
) )
@Export("ByteArrayPool_largeCount") @Export("ByteArrayPool_largeCount")
static int ByteArrayPool_largeCount; static int ByteArrayPool_largeCount;
@ObfuscatedName("q") @ObfuscatedName("g")
@Export("ByteArrayPool_small") @Export("ByteArrayPool_small")
static byte[][] ByteArrayPool_small; static byte[][] ByteArrayPool_small;
@ObfuscatedName("v") @ObfuscatedName("z")
@Export("ByteArrayPool_medium") @Export("ByteArrayPool_medium")
static byte[][] ByteArrayPool_medium; static byte[][] ByteArrayPool_medium;
@ObfuscatedName("l") @ObfuscatedName("p")
@Export("ByteArrayPool_large") @Export("ByteArrayPool_large")
static byte[][] ByteArrayPool_large; static byte[][] ByteArrayPool_large;
@ObfuscatedName("c") @ObfuscatedName("w")
@Export("ByteArrayPool_alternativeSizes") @Export("ByteArrayPool_arrays")
static int[] ByteArrayPool_alternativeSizes; static byte[][][] ByteArrayPool_arrays;
@ObfuscatedName("h")
@ObfuscatedSignature(
signature = "Ldm;"
)
@Export("soundCache")
public static SoundCache soundCache;
static { static {
ByteArrayPool_smallCount = 0; ByteArrayPool_smallCount = 0;
@@ -54,10 +47,10 @@ public class ByteArrayPool {
ByteArrayPool_large = new byte[50][]; ByteArrayPool_large = new byte[50][];
} }
@ObfuscatedName("t") @ObfuscatedName("f")
@ObfuscatedSignature( @ObfuscatedSignature(
signature = "(IZI)[B", signature = "(IZI)[B",
garbageValue = "77699142" garbageValue = "-2110348593"
) )
@Export("ByteArrayPool_getArrayBool") @Export("ByteArrayPool_getArrayBool")
static synchronized byte[] ByteArrayPool_getArrayBool(int var0, boolean var1) { static synchronized byte[] ByteArrayPool_getArrayBool(int var0, boolean var1) {
@@ -89,14 +82,14 @@ public class ByteArrayPool {
return var2; return var2;
} }
if (HorizontalAlignment.ByteArrayPool_arrays != null) { if (ByteArrayPool_arrays != null) {
for (int var4 = 0; var4 < ByteArrayPool_alternativeSizes.length; ++var4) { for (int var4 = 0; var4 < WorldMapSprite.ByteArrayPool_alternativeSizes.length; ++var4) {
if (ByteArrayPool_alternativeSizes[var4] != var0) { if (WorldMapSprite.ByteArrayPool_alternativeSizes[var4] != var0) {
if (var0 < ByteArrayPool_alternativeSizes[var4]) { if (var0 < WorldMapSprite.ByteArrayPool_alternativeSizes[var4]) {
} }
} else if (class222.ByteArrayPool_altSizeArrayCounts[var4] > 0) { } else if (class216.ByteArrayPool_altSizeArrayCounts[var4] > 0) {
byte[] var3 = HorizontalAlignment.ByteArrayPool_arrays[var4][--class222.ByteArrayPool_altSizeArrayCounts[var4]]; byte[] var3 = ByteArrayPool_arrays[var4][--class216.ByteArrayPool_altSizeArrayCounts[var4]];
HorizontalAlignment.ByteArrayPool_arrays[var4][class222.ByteArrayPool_altSizeArrayCounts[var4]] = null; ByteArrayPool_arrays[var4][class216.ByteArrayPool_altSizeArrayCounts[var4]] = null;
return var3; return var3;
} }
} }
@@ -104,46 +97,4 @@ public class ByteArrayPool {
return new byte[var0]; return new byte[var0];
} }
@ObfuscatedName("t")
@ObfuscatedSignature(
signature = "(Ljava/lang/Throwable;Ljava/lang/String;)Lmf;"
)
@Export("newRunException")
public static RunException newRunException(Throwable var0, String var1) {
RunException var2;
if (var0 instanceof RunException) {
var2 = (RunException)var0;
var2.message = var2.message + ' ' + var1;
} else {
var2 = new RunException(var0, var1);
}
return var2;
}
@ObfuscatedName("ke")
@ObfuscatedSignature(
signature = "(I)V",
garbageValue = "-1348959879"
)
@Export("FriendSystem_invalidateFriends")
static final void FriendSystem_invalidateFriends() {
for (int var0 = 0; var0 < Players.Players_count; ++var0) {
Player var1 = Client.players[Players.Players_indices[var0]];
var1.clearIsFriend();
}
Iterator var2 = Messages.Messages_hashTable.iterator();
while (var2.hasNext()) {
Message var3 = (Message)var2.next();
var3.clearIsFromFriend();
}
if (class4.clanChat != null) {
class4.clanChat.clearFriends();
}
}
} }
+37 -81
View File
@@ -1,27 +1,23 @@
import java.io.DataInputStream;
import java.net.URL;
import java.util.TimeZone; import java.util.TimeZone;
import net.runelite.mapping.Export; import net.runelite.mapping.Export;
import net.runelite.mapping.Implements; import net.runelite.mapping.Implements;
import net.runelite.mapping.ObfuscatedName; import net.runelite.mapping.ObfuscatedName;
import net.runelite.mapping.ObfuscatedSignature; import net.runelite.mapping.ObfuscatedSignature;
@ObfuscatedName("gi") @ObfuscatedName("gf")
@Implements("Calendar") @Implements("Calendar")
public class Calendar { public class Calendar {
@ObfuscatedName("a") @ObfuscatedName("u")
@Export("MONTH_NAMES_ENGLISH_GERMAN") @Export("MONTH_NAMES_ENGLISH_GERMAN")
public static final String[][] MONTH_NAMES_ENGLISH_GERMAN; static final String[][] MONTH_NAMES_ENGLISH_GERMAN;
@ObfuscatedName("t") @ObfuscatedName("f")
@Export("DAYS_OF_THE_WEEK") @Export("DAYS_OF_THE_WEEK")
public static final String[] DAYS_OF_THE_WEEK; static final String[] DAYS_OF_THE_WEEK;
@ObfuscatedName("n")
@Export("Calendar_calendar")
public static java.util.Calendar Calendar_calendar;
@ObfuscatedName("b") @ObfuscatedName("b")
@ObfuscatedSignature( @Export("Calendar_calendar")
signature = "Lkc;" static java.util.Calendar Calendar_calendar;
)
@Export("NetCache_reference")
public static Buffer NetCache_reference;
static { static {
MONTH_NAMES_ENGLISH_GERMAN = new String[][]{{"Jan", "Feb", "Mar", "Apr", "May", "Jun", "Jul", "Aug", "Sep", "Oct", "Nov", "Dec"}, {"Jan", "Feb", "Mär", "Apr", "Mai", "Jun", "Jul", "Aug", "Sep", "Okt", "Nov", "Dez"}, {"jan", "fév", "mars", "avr", "mai", "juin", "juil", "août", "sept", "oct", "nov", "déc"}, {"jan", "fev", "mar", "abr", "mai", "jun", "jul", "ago", "set", "out", "nov", "dez"}, {"jan", "feb", "mrt", "apr", "mei", "jun", "jul", "aug", "sep", "okt", "nov", "dec"}, {"Jan", "Feb", "Mar", "Apr", "May", "Jun", "Jul", "Aug", "Sep", "Oct", "Nov", "Dec"}, {"ene", "feb", "mar", "abr", "may", "jun", "jul", "ago", "sep", "oct", "nov", "dic"}}; MONTH_NAMES_ENGLISH_GERMAN = new String[][]{{"Jan", "Feb", "Mar", "Apr", "May", "Jun", "Jul", "Aug", "Sep", "Oct", "Nov", "Dec"}, {"Jan", "Feb", "Mär", "Apr", "Mai", "Jun", "Jul", "Aug", "Sep", "Okt", "Nov", "Dez"}, {"jan", "fév", "mars", "avr", "mai", "juin", "juil", "août", "sept", "oct", "nov", "déc"}, {"jan", "fev", "mar", "abr", "mai", "jun", "jul", "ago", "set", "out", "nov", "dez"}, {"jan", "feb", "mrt", "apr", "mei", "jun", "jul", "aug", "sep", "okt", "nov", "dec"}, {"Jan", "Feb", "Mar", "Apr", "May", "Jun", "Jul", "Aug", "Sep", "Oct", "Nov", "Dec"}, {"ene", "feb", "mar", "abr", "may", "jun", "jul", "ago", "sep", "oct", "nov", "dic"}};
@@ -30,86 +26,46 @@ public class Calendar {
Calendar_calendar = java.util.Calendar.getInstance(TimeZone.getTimeZone("GMT")); Calendar_calendar = java.util.Calendar.getInstance(TimeZone.getTimeZone("GMT"));
} }
@ObfuscatedName("d") @ObfuscatedName("u")
@ObfuscatedSignature( @ObfuscatedSignature(
signature = "(I)I", signature = "(Ljava/lang/String;Ljava/lang/Throwable;I)V",
garbageValue = "-2132557577" garbageValue = "1722882053"
) )
static final int method4102() { @Export("RunException_sendStackTrace")
return ViewportMouse.ViewportMouse_x; public static void RunException_sendStackTrace(String var0, Throwable var1) {
} if (var1 != null) {
var1.printStackTrace();
@ObfuscatedName("gd")
@ObfuscatedSignature(
signature = "(IIIIZI)V",
garbageValue = "399120527"
)
@Export("setViewportShape")
static final void setViewportShape(int var0, int var1, int var2, int var3, boolean var4) {
if (var2 < 1) {
var2 = 1;
}
if (var3 < 1) {
var3 = 1;
}
int var5 = var3 - 334;
int var6;
if (var5 < 0) {
var6 = Client.field881;
} else if (var5 >= 100) {
var6 = Client.field882;
} else { } else {
var6 = (Client.field882 - Client.field881) * var5 / 100 + Client.field881; try {
String var2 = "";
if (var1 != null) {
var2 = SpriteMask.method4035(var1);
} }
int var7 = var3 * var6 * 512 / (var2 * 334); if (var0 != null) {
int var8; if (var1 != null) {
int var9; var2 = var2 + " | ";
short var10;
if (var7 < Client.field844) {
var10 = Client.field844;
var6 = var10 * var2 * 334 / (var3 * 512);
if (var6 > Client.field886) {
var6 = Client.field886;
var8 = var3 * var6 * 512 / (var10 * 334);
var9 = (var2 - var8) / 2;
if (var4) {
Rasterizer2D.Rasterizer2D_resetClip();
Rasterizer2D.Rasterizer2D_fillRectangle(var0, var1, var9, var3, -16777216);
Rasterizer2D.Rasterizer2D_fillRectangle(var0 + var2 - var9, var1, var9, var3, -16777216);
} }
var0 += var9; var2 = var2 + var0;
var2 -= var9 * 2;
}
} else if (var7 > Client.field888) {
var10 = Client.field888;
var6 = var10 * var2 * 334 / (var3 * 512);
if (var6 < Client.field885) {
var6 = Client.field885;
var8 = var10 * var2 * 334 / (var6 * 512);
var9 = (var3 - var8) / 2;
if (var4) {
Rasterizer2D.Rasterizer2D_resetClip();
Rasterizer2D.Rasterizer2D_fillRectangle(var0, var1, var2, var9, -16777216);
Rasterizer2D.Rasterizer2D_fillRectangle(var0, var3 + var1 - var9, var2, var9, -16777216);
} }
var1 += var9; System.out.println("Error: " + var2);
var3 -= var9 * 2; var2 = var2.replace(':', '.');
} var2 = var2.replace('@', '_');
var2 = var2.replace('&', '_');
var2 = var2.replace('#', '_');
if (RunException.RunException_applet == null) {
return;
} }
Client.viewportZoom = var3 * var6 / 334; URL var3 = new URL(RunException.RunException_applet.getCodeBase(), "clienterror.ws?c=" + RunException.RunException_revision + "&u=" + RunException.localPlayerName + "&v1=" + TaskHandler.javaVendor + "&v2=" + TaskHandler.javaVersion + "&ct=" + RunException.clientType + "&e=" + var2);
if (var2 != Client.viewportWidth || var3 != Client.viewportHeight) { DataInputStream var4 = new DataInputStream(var3.openStream());
class192.method3813(var2, var3); var4.read();
var4.close();
} catch (Exception var5) {
} }
Client.viewportOffsetX = var0; }
Client.viewportOffsetY = var1;
Client.viewportWidth = var2;
Client.viewportHeight = var3;
} }
} }
+148 -59
View File
@@ -1,14 +1,20 @@
import java.awt.Component; import java.awt.Component;
import java.awt.Graphics; import java.awt.Graphics;
import java.net.URL;
import java.util.LinkedHashMap;
import net.runelite.mapping.Export; import net.runelite.mapping.Export;
import net.runelite.mapping.Implements; import net.runelite.mapping.Implements;
import net.runelite.mapping.ObfuscatedName; import net.runelite.mapping.ObfuscatedName;
import net.runelite.mapping.ObfuscatedSignature; import net.runelite.mapping.ObfuscatedSignature;
import net.runelite.rs.ScriptOpcodes;
@ObfuscatedName("ai") @ObfuscatedName("ax")
@Implements("Canvas") @Implements("Canvas")
public final class Canvas extends java.awt.Canvas { public final class Canvas extends java.awt.Canvas {
@ObfuscatedName("a") @ObfuscatedName("ek")
@Export("worldHost")
static String worldHost;
@ObfuscatedName("u")
@Export("component") @Export("component")
Component component; Component component;
@@ -16,82 +22,165 @@ public final class Canvas extends java.awt.Canvas {
this.component = var1; this.component = var1;
} }
public final void paint(Graphics var1) {
this.component.paint(var1);
}
public final void update(Graphics var1) { public final void update(Graphics var1) {
this.component.update(var1); this.component.update(var1);
} }
@ObfuscatedName("n") public final void paint(Graphics var1) {
this.component.paint(var1);
}
@ObfuscatedName("u")
@ObfuscatedSignature( @ObfuscatedSignature(
signature = "(IIB)I", signature = "(I)Z",
garbageValue = "-116" garbageValue = "-1452894334"
) )
static int method935(int var0, int var1) { @Export("loadWorlds")
ItemContainer var2 = (ItemContainer)ItemContainer.itemContainers.get((long)var0); static boolean loadWorlds() {
if (var2 == null) { try {
return 0; if (GrandExchangeOfferOwnWorldComparator.World_request == null) {
} else if (var1 == -1) { GrandExchangeOfferOwnWorldComparator.World_request = SpriteMask.urlRequester.request(new URL(WallDecoration.field1914));
return 0; } else if (GrandExchangeOfferOwnWorldComparator.World_request.isDone()) {
byte[] var0 = GrandExchangeOfferOwnWorldComparator.World_request.getResponse();
Buffer var1 = new Buffer(var0);
var1.readInt();
World.World_count = var1.readUnsignedShort();
Skills.World_worlds = new World[World.World_count];
World var3;
for (int var2 = 0; var2 < World.World_count; var3.index = var2++) {
var3 = Skills.World_worlds[var2] = new World();
var3.id = var1.readUnsignedShort();
var3.properties = var1.readInt();
var3.host = var1.readStringCp1252NullTerminated();
var3.activity = var1.readStringCp1252NullTerminated();
var3.location = var1.readUnsignedByte();
var3.population = var1.readShort();
}
Clock.sortWorlds(Skills.World_worlds, 0, Skills.World_worlds.length - 1, World.World_sortOption1, World.World_sortOption2);
GrandExchangeOfferOwnWorldComparator.World_request = null;
return true;
}
} catch (Exception var4) {
var4.printStackTrace();
GrandExchangeOfferOwnWorldComparator.World_request = null;
}
return false;
}
@ObfuscatedName("k")
@ObfuscatedSignature(
signature = "(II)Ler;",
garbageValue = "-1118777455"
)
@Export("getFrames")
static Frames getFrames(int var0) {
Frames var1 = (Frames)SequenceDefinition.SequenceDefinition_cachedFrames.get((long)var0);
if (var1 != null) {
return var1;
} else { } else {
int var3 = 0; AbstractArchive var3 = SequenceDefinition.SequenceDefinition_animationsArchive;
AbstractArchive var4 = SequenceDefinition.SequenceDefinition_skeletonsArchive;
boolean var5 = true;
int[] var6 = var3.getGroupFileIds(var0);
for (int var4 = 0; var4 < var2.quantities.length; ++var4) { for (int var7 = 0; var7 < var6.length; ++var7) {
if (var2.ids[var4] == var1) { byte[] var8 = var3.getFile(var0, var6[var7]);
var3 += var2.quantities[var4]; if (var8 == null) {
var5 = false;
} else {
int var9 = (var8[0] & 255) << 8 | var8[1] & 255;
byte[] var10 = var4.getFile(var9, 0);
if (var10 == null) {
var5 = false;
}
} }
} }
return var3; Frames var2;
if (!var5) {
var2 = null;
} else {
try {
var2 = new Frames(var3, var4, var0, false);
} catch (Exception var12) {
var2 = null;
} }
} }
@ObfuscatedName("il") if (var2 != null) {
SequenceDefinition.SequenceDefinition_cachedFrames.put(var2, (long)var0);
}
return var2;
}
}
@ObfuscatedName("o")
@ObfuscatedSignature( @ObfuscatedSignature(
signature = "(ILjava/lang/String;I)V", signature = "(ILci;ZB)I",
garbageValue = "-1452803850" garbageValue = "-7"
) )
static void method934(int var0, String var1) { static int method873(int var0, Script var1, boolean var2) {
int var2 = Players.Players_count; Widget var3 = var2 ? Interpreter.field1090 : class188.field2352;
int[] var3 = Players.Players_indices; if (var0 == ScriptOpcodes.CC_GETX) {
boolean var4 = false; Interpreter.Interpreter_intStack[++GrandExchangeOfferTotalQuantityComparator.Interpreter_intStackSize - 1] = var3.x;
Username var5 = new Username(var1, class60.loginType); return 1;
} else if (var0 == ScriptOpcodes.CC_GETY) {
for (int var6 = 0; var6 < var2; ++var6) { Interpreter.Interpreter_intStack[++GrandExchangeOfferTotalQuantityComparator.Interpreter_intStackSize - 1] = var3.y;
Player var7 = Client.players[var3[var6]]; return 1;
if (var7 != null && var7 != class215.localPlayer && var7.username != null && var7.username.equals(var5)) { } else if (var0 == ScriptOpcodes.CC_GETWIDTH) {
PacketBufferNode var8; Interpreter.Interpreter_intStack[++GrandExchangeOfferTotalQuantityComparator.Interpreter_intStackSize - 1] = var3.width;
if (var0 == 1) { return 1;
var8 = SoundSystem.getPacketBufferNode(ClientPacket.field2193, Client.packetWriter.isaacCipher); } else if (var0 == ScriptOpcodes.CC_GETHEIGHT) {
var8.packetBuffer.writeShort(var3[var6]); Interpreter.Interpreter_intStack[++GrandExchangeOfferTotalQuantityComparator.Interpreter_intStackSize - 1] = var3.height;
var8.packetBuffer.writeByte(0); return 1;
Client.packetWriter.addNode(var8); } else if (var0 == ScriptOpcodes.CC_GETHIDE) {
} else if (var0 == 4) { Interpreter.Interpreter_intStack[++GrandExchangeOfferTotalQuantityComparator.Interpreter_intStackSize - 1] = var3.isHidden ? 1 : 0;
var8 = SoundSystem.getPacketBufferNode(ClientPacket.field2229, Client.packetWriter.isaacCipher); return 1;
var8.packetBuffer.writeShortLE(var3[var6]); } else if (var0 == ScriptOpcodes.CC_GETLAYER) {
var8.packetBuffer.method5634(0); Interpreter.Interpreter_intStack[++GrandExchangeOfferTotalQuantityComparator.Interpreter_intStackSize - 1] = var3.parentId;
Client.packetWriter.addNode(var8); return 1;
} else if (var0 == 6) { } else {
var8 = SoundSystem.getPacketBufferNode(ClientPacket.field2236, Client.packetWriter.isaacCipher); return 2;
var8.packetBuffer.method5635(0);
var8.packetBuffer.writeShort(var3[var6]);
Client.packetWriter.addNode(var8);
} else if (var0 == 7) {
var8 = SoundSystem.getPacketBufferNode(ClientPacket.field2251, Client.packetWriter.isaacCipher);
var8.packetBuffer.method5643(var3[var6]);
var8.packetBuffer.writeByte(0);
Client.packetWriter.addNode(var8);
}
var4 = true;
break;
} }
} }
if (!var4) { @ObfuscatedName("ap")
class30.addGameMessage(4, "", "Unable to find " + var1); @ObfuscatedSignature(
signature = "(ILhx;ZB)V",
garbageValue = "0"
)
static void method871(int var0, Coord var1, boolean var2) {
WorldMapArea var3 = Clock.getWorldMap().getMapArea(var0);
int var4 = class215.localPlayer.plane;
int var5 = class51.baseX * 64 + (class215.localPlayer.x >> 7);
int var6 = VarcInt.baseY * 64 + (class215.localPlayer.y >> 7);
Coord var7 = new Coord(var4, var5, var6);
Clock.getWorldMap().method6453(var3, var7, var1, var2);
}
@ObfuscatedName("fo")
@ObfuscatedSignature(
signature = "(ZB)V",
garbageValue = "-90"
)
static final void method872(boolean var0) {
if (var0) {
Client.field680 = Login.field1196 ? class160.field2008 : class160.field2005;
} else {
LinkedHashMap var1 = UserComparator10.clientPreferences.parameters;
String var3 = Login.Login_username;
int var4 = var3.length();
int var5 = 0;
for (int var6 = 0; var6 < var4; ++var6) {
var5 = (var5 << 5) - var5 + var3.charAt(var6);
}
Client.field680 = var1.containsKey(var5) ? class160.field2009 : class160.field2006;
} }
} }
+24 -38
View File
@@ -4,24 +4,18 @@ import net.runelite.mapping.ObfuscatedGetter;
import net.runelite.mapping.ObfuscatedName; import net.runelite.mapping.ObfuscatedName;
import net.runelite.mapping.ObfuscatedSignature; import net.runelite.mapping.ObfuscatedSignature;
@ObfuscatedName("cb") @ObfuscatedName("cs")
@Implements("ChatChannel") @Implements("ChatChannel")
public class ChatChannel { public class ChatChannel {
@ObfuscatedName("lb") @ObfuscatedName("f")
@ObfuscatedSignature( @ObfuscatedSignature(
signature = "Lhi;" signature = "[Lba;"
)
@Export("mousedOverWidgetIf1")
static Widget mousedOverWidgetIf1;
@ObfuscatedName("t")
@ObfuscatedSignature(
signature = "[Lbt;"
) )
@Export("messages") @Export("messages")
Message[] messages; Message[] messages;
@ObfuscatedName("n") @ObfuscatedName("b")
@ObfuscatedGetter( @ObfuscatedGetter(
intValue = -1655773149 intValue = -2111791625
) )
@Export("count") @Export("count")
int count; int count;
@@ -30,10 +24,10 @@ public class ChatChannel {
this.messages = new Message[100]; this.messages = new Message[100];
} }
@ObfuscatedName("a") @ObfuscatedName("u")
@ObfuscatedSignature( @ObfuscatedSignature(
signature = "(ILjava/lang/String;Ljava/lang/String;Ljava/lang/String;I)Lbt;", signature = "(ILjava/lang/String;Ljava/lang/String;Ljava/lang/String;I)Lba;",
garbageValue = "-2124852367" garbageValue = "1583297440"
) )
@Export("addMessage") @Export("addMessage")
Message addMessage(int var1, String var2, String var3, String var4) { Message addMessage(int var1, String var2, String var3, String var4) {
@@ -61,49 +55,41 @@ public class ChatChannel {
return var5; return var5;
} }
@ObfuscatedName("t") @ObfuscatedName("f")
@ObfuscatedSignature( @ObfuscatedSignature(
signature = "(II)Lbt;", signature = "(IB)Lba;",
garbageValue = "1546938937" garbageValue = "-6"
) )
@Export("getMessage") @Export("getMessage")
Message getMessage(int var1) { Message getMessage(int var1) {
return var1 >= 0 && var1 < this.count ? this.messages[var1] : null; return var1 >= 0 && var1 < this.count ? this.messages[var1] : null;
} }
@ObfuscatedName("n") @ObfuscatedName("b")
@ObfuscatedSignature( @ObfuscatedSignature(
signature = "(B)I", signature = "(B)I",
garbageValue = "126" garbageValue = "0"
) )
@Export("size") @Export("size")
int size() { int size() {
return this.count; return this.count;
} }
@ObfuscatedName("o") @ObfuscatedName("ll")
@ObfuscatedSignature(
signature = "(CI)Z",
garbageValue = "1710830217"
)
@Export("isCharAlphabetic")
public static boolean isCharAlphabetic(char var0) {
return var0 >= 'A' && var0 <= 'Z' || var0 >= 'a' && var0 <= 'z';
}
@ObfuscatedName("fz")
@ObfuscatedSignature( @ObfuscatedSignature(
signature = "(I)V", signature = "(I)V",
garbageValue = "-1507769653" garbageValue = "-1059026202"
) )
@Export("playPcmPlayers") static void method2274() {
static final void playPcmPlayers() { if (InvDefinition.field3210 != null) {
if (MenuAction.pcmPlayer1 != null) { Client.field863 = Client.cycle;
MenuAction.pcmPlayer1.run(); InvDefinition.field3210.method4403();
}
if (class80.pcmPlayer0 != null) { for (int var0 = 0; var0 < Client.players.length; ++var0) {
class80.pcmPlayer0.run(); if (Client.players[var0] != null) {
InvDefinition.field3210.method4406(class51.baseX * 64 + (Client.players[var0].x >> 7), VarcInt.baseY * 64 + (Client.players[var0].y >> 7));
}
}
} }
} }

Some files were not shown because too many files have changed in this diff Show More