Merge pull request #4667 from deathbeam/move-index-to-db

Move isOverlayOutdated to IndexDatabase
This commit is contained in:
Tomas Slusny
2018-08-06 09:31:38 +02:00
committed by GitHub
8 changed files with 28 additions and 31 deletions

View File

@@ -327,6 +327,13 @@ public interface Client extends GameEngine
*/ */
IndexDataBase getIndexSprites(); IndexDataBase getIndexSprites();
/**
* Gets the script index database.
*
* @return the script database
*/
IndexDataBase getIndexScripts();
/** /**
* Returns the x-axis base coordinate. * Returns the x-axis base coordinate.
* <p> * <p>

View File

@@ -29,4 +29,8 @@ package net.runelite.api;
*/ */
public interface IndexDataBase public interface IndexDataBase
{ {
/**
* Returns true if any cache overlay in this index is outdated due to hash mismatch
*/
boolean isOverlayOutdated();
} }

View File

@@ -28,7 +28,6 @@ import java.awt.Graphics;
import java.awt.event.KeyEvent; import java.awt.event.KeyEvent;
import java.awt.event.MouseEvent; import java.awt.event.MouseEvent;
import java.awt.event.MouseWheelEvent; import java.awt.event.MouseWheelEvent;
import net.runelite.api.IndexDataBase;
import net.runelite.api.MainBufferProvider; import net.runelite.api.MainBufferProvider;
/** /**
@@ -164,12 +163,4 @@ public interface Callbacks
* @param keyEvent the key event * @param keyEvent the key event
*/ */
void keyTyped(KeyEvent keyEvent); void keyTyped(KeyEvent keyEvent);
/**
* Called whenever a cache overlay fails to load due to a hash mismatch
* @param indexDataBase
* @param archiveId
* @param fileId
*/
void overlayLoadFailed(IndexDataBase indexDataBase, int archiveId, int fileId);
} }

View File

@@ -43,7 +43,6 @@ import joptsimple.OptionParser;
import joptsimple.OptionSet; import joptsimple.OptionSet;
import joptsimple.util.EnumConverter; import joptsimple.util.EnumConverter;
import lombok.Getter; import lombok.Getter;
import lombok.Setter;
import lombok.extern.slf4j.Slf4j; import lombok.extern.slf4j.Slf4j;
import net.runelite.api.Client; import net.runelite.api.Client;
import net.runelite.client.account.SessionManager; import net.runelite.client.account.SessionManager;
@@ -146,10 +145,6 @@ public class RuneLite
@Nullable @Nullable
private Client client; private Client client;
@Getter
@Setter
private boolean overlayOutdated;
public static void main(String[] args) throws Exception public static void main(String[] args) throws Exception
{ {
Locale.setDefault(Locale.ENGLISH); Locale.setDefault(Locale.ENGLISH);

View File

@@ -42,7 +42,6 @@ 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.IndexDataBase;
import net.runelite.api.MainBufferProvider; import net.runelite.api.MainBufferProvider;
import net.runelite.api.RenderOverview; import net.runelite.api.RenderOverview;
import net.runelite.api.WorldMapManager; import net.runelite.api.WorldMapManager;
@@ -275,13 +274,6 @@ public class Hooks implements Callbacks
keyManager.processKeyTyped(keyEvent); keyManager.processKeyTyped(keyEvent);
} }
@Override
public void overlayLoadFailed(IndexDataBase indexDataBase, int archiveId, int fileId)
{
RuneLite runeLite = injector.getInstance(RuneLite.class);
runeLite.setOverlayOutdated(true);
}
@Override @Override
public void draw(MainBufferProvider mainBufferProvider, Graphics graphics, int x, int y) public void draw(MainBufferProvider mainBufferProvider, Graphics graphics, int x, int y)
{ {

View File

@@ -31,7 +31,6 @@ import com.google.inject.Provides;
import net.runelite.api.Client; import net.runelite.api.Client;
import net.runelite.api.events.ConfigChanged; import net.runelite.api.events.ConfigChanged;
import net.runelite.api.events.ScriptCallbackEvent; import net.runelite.api.events.ScriptCallbackEvent;
import net.runelite.client.RuneLite;
import net.runelite.client.config.ConfigManager; import net.runelite.client.config.ConfigManager;
import net.runelite.client.plugins.Plugin; import net.runelite.client.plugins.Plugin;
import net.runelite.client.plugins.PluginDescriptor; import net.runelite.client.plugins.PluginDescriptor;
@@ -44,9 +43,6 @@ import net.runelite.client.plugins.PluginDescriptor;
) )
public class ZoomPlugin extends Plugin public class ZoomPlugin extends Plugin
{ {
@Inject
private RuneLite runeLite;
@Inject @Inject
private Client client; private Client client;
@@ -62,7 +58,7 @@ public class ZoomPlugin extends Plugin
@Subscribe @Subscribe
public void onScriptEvent(ScriptCallbackEvent event) public void onScriptEvent(ScriptCallbackEvent event)
{ {
if (runeLite.isOverlayOutdated()) if (client.getIndexScripts().isOverlayOutdated())
{ {
// if any cache overlay fails to load then assume at least one of the zoom scripts is outdated // if any cache overlay fails to load then assume at least one of the zoom scripts is outdated
// and prevent zoom extending entirely. // and prevent zoom extending entirely.

View File

@@ -32,8 +32,8 @@ import com.google.common.io.CharStreams;
import java.io.IOException; import java.io.IOException;
import java.io.InputStream; import java.io.InputStream;
import java.io.InputStreamReader; import java.io.InputStreamReader;
import net.runelite.api.hooks.Callbacks;
import net.runelite.api.mixins.Copy; import net.runelite.api.mixins.Copy;
import net.runelite.api.mixins.Inject;
import net.runelite.api.mixins.Mixin; import net.runelite.api.mixins.Mixin;
import net.runelite.api.mixins.Replace; import net.runelite.api.mixins.Replace;
import net.runelite.api.mixins.Shadow; import net.runelite.api.mixins.Shadow;
@@ -49,6 +49,16 @@ public abstract class RSIndexDataBaseMixin implements RSIndexDataBase
@Shadow("clientInstance") @Shadow("clientInstance")
private static RSClient client; private static RSClient client;
@Inject
private boolean overlayOutdated;
@Inject
@Override
public boolean isOverlayOutdated()
{
return overlayOutdated;
}
@Copy("getConfigData") @Copy("getConfigData")
abstract byte[] rs$getConfigData(int archiveId, int fileId); abstract byte[] rs$getConfigData(int archiveId, int fileId);
@@ -117,9 +127,7 @@ public abstract class RSIndexDataBaseMixin implements RSIndexDataBase
log.warn("Mismatch in overlaid cache archive hash for {}/{}: {} != {}", log.warn("Mismatch in overlaid cache archive hash for {}/{}: {} != {}",
indexData.getIndex(), archiveId, replaceHash, rsHash); indexData.getIndex(), archiveId, replaceHash, rsHash);
overlayOutdated = true;
Callbacks callbacks = client.getCallbacks();
callbacks.overlayLoadFailed(this, archiveId, fileId);
} }
catch (IOException ex) catch (IOException ex)
{ {

View File

@@ -326,6 +326,10 @@ public interface RSClient extends RSGameEngine, Client
@Override @Override
RSIndexDataBase getIndexSprites(); RSIndexDataBase getIndexSprites();
@Import("indexScripts")
@Override
RSIndexDataBase getIndexScripts();
@Import("widgetFlags") @Import("widgetFlags")
@Override @Override
RSHashTable getWidgetFlags(); RSHashTable getWidgetFlags();