project: set GameDrawingMode
This commit is contained in:
@@ -18,6 +18,7 @@ import com.openosrs.injector.injectors.RSApiInjector;
|
|||||||
import com.openosrs.injector.injectors.raw.AddPlayerToMenu;
|
import com.openosrs.injector.injectors.raw.AddPlayerToMenu;
|
||||||
import com.openosrs.injector.injectors.raw.ClearColorBuffer;
|
import com.openosrs.injector.injectors.raw.ClearColorBuffer;
|
||||||
import com.openosrs.injector.injectors.raw.DrawMenu;
|
import com.openosrs.injector.injectors.raw.DrawMenu;
|
||||||
|
import com.openosrs.injector.injectors.raw.GameDrawingMode;
|
||||||
import com.openosrs.injector.injectors.raw.GraphicsObject;
|
import com.openosrs.injector.injectors.raw.GraphicsObject;
|
||||||
import com.openosrs.injector.injectors.raw.Occluder;
|
import com.openosrs.injector.injectors.raw.Occluder;
|
||||||
import com.openosrs.injector.injectors.raw.RasterizerAlpha;
|
import com.openosrs.injector.injectors.raw.RasterizerAlpha;
|
||||||
@@ -149,6 +150,8 @@ public class Injector extends InjectData implements InjectTaskHandler
|
|||||||
|
|
||||||
inject(new DrawMenu(this));
|
inject(new DrawMenu(this));
|
||||||
|
|
||||||
|
inject(new GameDrawingMode(this));
|
||||||
|
|
||||||
inject(new AddPlayerToMenu(this));
|
inject(new AddPlayerToMenu(this));
|
||||||
|
|
||||||
inject(new RuneliteMenuEntry(this));
|
inject(new RuneliteMenuEntry(this));
|
||||||
|
|||||||
@@ -0,0 +1,50 @@
|
|||||||
|
package com.openosrs.injector.injectors.raw;
|
||||||
|
|
||||||
|
import com.openosrs.injector.InjectUtil;
|
||||||
|
import com.openosrs.injector.injection.InjectData;
|
||||||
|
import com.openosrs.injector.injectors.AbstractInjector;
|
||||||
|
import java.util.ListIterator;
|
||||||
|
import net.runelite.asm.ClassFile;
|
||||||
|
import net.runelite.asm.Method;
|
||||||
|
import net.runelite.asm.attributes.code.Instruction;
|
||||||
|
import net.runelite.asm.attributes.code.Instructions;
|
||||||
|
import net.runelite.asm.attributes.code.instructions.LDC;
|
||||||
|
import net.runelite.asm.attributes.code.instructions.PutStatic;
|
||||||
|
import net.runelite.asm.pool.Field;
|
||||||
|
|
||||||
|
public class GameDrawingMode extends AbstractInjector
|
||||||
|
{
|
||||||
|
public GameDrawingMode(InjectData inject)
|
||||||
|
{
|
||||||
|
super(inject);
|
||||||
|
}
|
||||||
|
|
||||||
|
public void inject()
|
||||||
|
{
|
||||||
|
final ClassFile clientVanilla = inject.toVanilla(
|
||||||
|
inject.getDeobfuscated()
|
||||||
|
.findClass("Client")
|
||||||
|
);
|
||||||
|
final Field gameDrawingMode = InjectUtil.findField(inject, "gameDrawingMode", "Client").getPoolField();
|
||||||
|
|
||||||
|
Method clinit = clientVanilla.findMethod("<clinit>");
|
||||||
|
|
||||||
|
Instructions ins = clinit.getCode().getInstructions();
|
||||||
|
ListIterator<Instruction> iterator = ins.getInstructions().listIterator();
|
||||||
|
while (iterator.hasNext())
|
||||||
|
{
|
||||||
|
Instruction i = iterator.next();
|
||||||
|
|
||||||
|
if (i instanceof PutStatic)
|
||||||
|
{
|
||||||
|
Field field = ((PutStatic) i).getField();
|
||||||
|
|
||||||
|
if (field.getName().equals(gameDrawingMode.getName()))
|
||||||
|
{
|
||||||
|
iterator.add(new LDC(ins, 2));
|
||||||
|
iterator.add(new PutStatic(ins, gameDrawingMode));
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
Reference in New Issue
Block a user