client: object composition directional access bitmask

This commit is contained in:
tomcylke
2021-09-09 14:08:10 -04:00
parent df0b7d9404
commit 0cb2dea4d9
10 changed files with 470 additions and 39 deletions

View File

@@ -73,4 +73,10 @@ public interface ObjectComposition extends ParamHolder
* @throws NullPointerException if {@link #getImpostorIds()} is null
*/
ObjectComposition getImpostor();
/**
* Get the bitmask that contains information on which directions you can interact
* with this object from.
*/
int getAccessBitMask();
}

View File

@@ -0,0 +1,197 @@
package net.runelite.mixins;
import net.runelite.api.IterableHashTable;
import net.runelite.api.Node;
import net.runelite.api.mixins.*;
import net.runelite.rs.api.RSBuffer;
import net.runelite.rs.api.RSClient;
import net.runelite.rs.api.RSObjectComposition;
@Mixin(RSObjectComposition.class)
public abstract class RSObjectCompositionMixin implements RSObjectComposition
{
@Shadow("client")
private static RSClient client;
@Inject
private int accessBitMask = 0;
@Inject
@Override
public int getAccessBitMask()
{
return accessBitMask;
}
@Copy("decodeNext")
@Replace("decodeNext")
public void decodeNext(RSBuffer buffer, int opcode)
{
int var3;
int var4;
if (opcode == 1)
{
var3 = buffer.readUnsignedByte();
if (var3 > 0)
{
if (getModelIds() != null && !getObjectDefinitionIsLowDetail())
{
buffer.setOffset(buffer.getOffset() + 3 * var3);
}
else
{
setModels(new int[var3]);
setModelIds(new int[var3]);
for (var4 = 0; var4 < var3; ++var4)
{
getModelIds()[var4] = buffer.readUnsignedShort();
getModels()[var4] = buffer.readUnsignedByte();
}
}
}
}
else if (opcode == 2) setName(buffer.readStringCp1252NullTerminated());
else if (opcode == 5)
{
var3 = buffer.readUnsignedByte();
if (var3 > 0)
{
if (getModelIds() != null && !getObjectDefinitionIsLowDetail())
{
buffer.setOffset(buffer.getOffset() + var3 * 2);
}
else
{
setModels(null);
setModelIds(new int[var3]);
for (var4 = 0; var4 < var3; ++var4)
{
getModelIds()[var4] = buffer.readUnsignedShort();
}
}
}
}
else if (opcode == 14) setSizeX(buffer.readUnsignedByte());
else if (opcode == 15) setSizeY(buffer.readUnsignedByte());
else if (opcode == 17)
{
setInteractType(0);
setBoolean1(false);
}
else if (opcode == 18) setBoolean1(false);
else if (opcode == 19) setInt1(buffer.readUnsignedByte());
else if (opcode == 21) setClipType(0);
else if (opcode == 22) setNonFlatShading(true);
else if (opcode == 23) setModelClipped(true);
else if (opcode == 24)
{
setAnimationId(buffer.readUnsignedShort());
if (getAnimationId() == 65535) setAnimationId(-1);
}
else if (opcode == 27) setInteractType(1);
else if (opcode == 28) setInt2(buffer.readUnsignedByte());
else if (opcode == 29) setAmbient(buffer.readByte());
else if (opcode == 39) setContrast(buffer.readByte() * 25);
else if (opcode >= 30 && opcode < 35)
{
getActions()[opcode - 30] = buffer.readStringCp1252NullTerminated();
if (getActions()[opcode - 30].equalsIgnoreCase("Hidden"))
{
getActions()[opcode - 30] = null;
}
}
else if (opcode == 40)
{
var3 = buffer.readUnsignedByte();
setRecolorFrom(new short[var3]);
setRecolorTo(new short[var3]);
for (var4 = 0; var4 < var3; ++var4)
{
getRecolorFrom()[var4] = (short) buffer.readUnsignedShort();
getRecolorTo()[var4] = (short) buffer.readUnsignedShort();
}
}
else if (opcode == 41)
{
var3 = buffer.readUnsignedByte();
setRetextureFrom(new short[var3]);
setRetextureTo(new short[var3]);
for (var4 = 0; var4 < var3; ++var4)
{
getRetextureFrom()[var4] = (short) buffer.readUnsignedShort();
getRetextureTo()[var4] = (short) buffer.readUnsignedShort();
}
}
else if (opcode == 61) buffer.readUnsignedShort();
else if (opcode == 62) setIsRotated(true);
else if (opcode == 64) setClipped(false);
else if (opcode == 65) setModelSizeX(buffer.readUnsignedShort());
else if (opcode == 66) setModelHeight(buffer.readUnsignedShort());
else if (opcode == 67) setModelSizeY(buffer.readUnsignedShort());
else if (opcode == 68) setMapSceneId(buffer.readUnsignedShort());
else if (opcode == 69) accessBitMask = buffer.readUnsignedByte();
else if (opcode == 70) setOffsetX(buffer.readShort());
else if (opcode == 71) setOffsetHeight(buffer.readShort());
else if (opcode == 72) setOffsetY(buffer.readShort());
else if (opcode == 73) setBoolean2(true) ;
else if (opcode == 74) setIsSolid(true);
else if (opcode == 75) setInt3(buffer.readUnsignedByte());
else if (opcode != 77 && opcode != 92)
{
if (opcode == 78)
{
setAmbientSoundId(buffer.readUnsignedShort());
setInt7(buffer.readUnsignedByte());
}
else if (opcode == 79)
{
setInt5(buffer.readUnsignedShort());
setInt6(buffer.readUnsignedShort());
setInt7(buffer.readUnsignedByte());
var3 = buffer.readUnsignedByte();
setSoundEffectIds(new int[var3]);
for (var4 = 0; var4 < var3; ++var4)
{
getSoundEffectIds()[var4] = buffer.readUnsignedShort();
}
}
else if (opcode == 81) setClipType(buffer.readUnsignedByte() * 256);
else if (opcode == 82) setMapIconId(buffer.readUnsignedShort());
else if (opcode == 89) setBoolean3(false);
else if (opcode == 249)
{
setParams((IterableHashTable<Node>) client.readStringIntParameters(buffer, getParams()));
}
}
else
{
setTransformVarbit(buffer.readUnsignedShort());
if (getTransformVarbit() == 65535) setTransformVarbit(-1);
setTransformVarp(buffer.readUnsignedShort());
if (getTransformVarp() == 65535) setTransformVarp(-1);
var3 = -1;
if (opcode == 92)
{
var3 = buffer.readUnsignedShort();
if (var3 == 65535) var3 = -1;
}
var4 = buffer.readUnsignedByte();
setTransforms(new int[var4 + 2]);
for (int var5 = 0; var5 <= var4; ++var5)
{
getTransforms()[var5] = buffer.readUnsignedShort();
if (getTransforms()[var5] == 65535) getTransforms()[var5] = -1;
}
getTransforms()[var4 + 1] = var3;
}
}
}

View File

@@ -11,6 +11,9 @@ public interface RSBuffer extends Buffer, RSNode
@Import("offset")
int getOffset();
@Import("offset")
void setOffset(int offset);
@Import("writeByte")
@Override
void writeByte(int var1);
@@ -34,4 +37,22 @@ public interface RSBuffer extends Buffer, RSNode
@Import("writeStringCp1252NullTerminated")
@Override
void writeStringCp1252NullTerminated(String string);
@Import("readUnsignedByte")
int readUnsignedByte();
@Import("readByte")
byte readByte();
@Import("readUnsignedShort")
int readUnsignedShort();
@Import("readShort")
int readShort();
@Import("readInt")
int readInt();
@Import("readStringCp1252NullTerminated")
String readStringCp1252NullTerminated();
}

View File

@@ -1433,4 +1433,7 @@ public interface RSClient extends RSGameEngine, Client
RSClanSettings getGuestClanSettings();
ClanRank getClanRankFromRs(int rank);
@Import("readStringIntParameters")
RSIterableNodeHashTable readStringIntParameters(RSBuffer buffer, RSIterableNodeHashTable table);
}

View File

@@ -13,6 +13,9 @@ public interface RSObjectComposition extends ObjectComposition
@Override
String getName();
@Import("name")
void setName(String name);
@Import("actions")
@Override
String[] getActions();
@@ -38,4 +41,205 @@ public interface RSObjectComposition extends ObjectComposition
@Import("params")
void setParams(RSIterableNodeHashTable params);
@Import("decodeNext")
void decodeNext(RSBuffer buffer, int opcode);
@Import("modelIds")
int[] getModelIds();
@Import("modelIds")
void setModelIds(int[] modelIds);
@Import("models")
int[] getModels();
@Import("models")
void setModels(int[] models);
@Import("ObjectDefinition_isLowDetail")
boolean getObjectDefinitionIsLowDetail();
@Import("sizeX")
int getSizeX();
@Import("sizeX")
void setSizeX(int sizeX);
@Import("sizeY")
int getSizeY();
@Import("sizeY")
void setSizeY(int sizeY);
@Import("interactType")
int getInteractType();
@Import("interactType")
void setInteractType(int interactType);
@Import("boolean1")
boolean getBoolean1();
@Import("boolean1")
void setBoolean1(boolean boolean1);
@Import("int1")
int getInt1();
@Import("int1")
void setInt1(int int1);
@Import("int2")
int getInt2();
@Import("int2")
void setInt2(int int2);
@Import("clipType")
int getClipType();
@Import("clipType")
void setClipType(int clipType);
@Import("nonFlatShading")
boolean getNonFlatShading();
@Import("nonFlatShading")
void setNonFlatShading(boolean nonFlatShading);
@Import("modelClipped")
void setModelClipped(boolean modelClipped);
@Import("modelClipped")
boolean getModelClipped();
@Import("animationId")
int getAnimationId();
@Import("animationId")
void setAnimationId(int animationId);
@Import("ambient")
int getAmbient();
@Import("ambient")
void setAmbient(int ambient);
@Import("contrast")
int getContrast();
@Import("contrast")
void setContrast(int contrast);
@Import("recolorFrom")
short[] getRecolorFrom();
@Import("recolorFrom")
void setRecolorFrom(short[] recolorFrom);
@Import("recolorTo")
short[] getRecolorTo();
@Import("recolorTo")
void setRecolorTo(short[] recolorTo);
@Import("retextureFrom")
short[] getRetextureFrom();
@Import("retextureFrom")
void setRetextureFrom(short[] retextureFrom);
@Import("retextureTo")
short[] getRetextureTo();
@Import("retextureTo")
void setRetextureTo(short[] retextureTo);
@Import("isRotated")
void setIsRotated(boolean rotated);
@Import("isRotated")
boolean getIsRotated();
@Import("clipped")
void setClipped(boolean clipped);
@Import("clipped")
boolean getClipped();
@Import("mapSceneId")
void setMapSceneId(int mapSceneId);
@Import("modelSizeX")
void setModelSizeX(int modelSizeX);
@Import("modelSizeX")
int getModelSizeX();
@Import("modelHeight")
void setModelHeight(int modelHeight);
@Import("modelSizeY")
void setModelSizeY(int modelSizeY);
@Import("offsetX")
void setOffsetX(int modelSizeY);
@Import("offsetHeight")
void setOffsetHeight(int offsetHeight);
@Import("offsetY")
void setOffsetY(int offsetY);
@Import("int3")
void setInt3(int int3);
@Import("int5")
void setInt5(int int5);
@Import("int6")
void setInt6(int int6);
@Import("int7")
void setInt7(int int7);
@Import("boolean2")
void setBoolean2(boolean boolean2);
@Import("isSolid")
void setIsSolid(boolean isSolid);
@Import("ambientSoundId")
void setAmbientSoundId(int ambientSoundId);
@Import("soundEffectIds")
void setSoundEffectIds(int[] soundEffectIds);
@Import("soundEffectIds")
int[] getSoundEffectIds();
@Import("mapIconId")
void setMapIconId(int mapIconId);
@Import("boolean3")
void setBoolean3(boolean boolean3);
@Import("transformVarbit")
void setTransformVarbit(int transformVarbit);
@Import("transformVarbit")
int getTransformVarbit();
@Import("transformVarp")
void setTransformVarp(int transformVarp);
@Import("transformVarp")
int getTransformVarp();
@Import("transforms")
void setTransforms(int[] transforms);
@Import("transforms")
int[] getTransforms();
}

View File

@@ -242,7 +242,7 @@ public class ObjectComposition extends DualNode {
@ObfuscatedGetter(
intValue = 883575663
)
public int field1864;
public int int7;
@ObfuscatedName("ar")
@ObfuscatedGetter(
intValue = -154554887
@@ -259,7 +259,7 @@ public class ObjectComposition extends DualNode {
@Export("soundEffectIds")
public int[] soundEffectIds;
@ObfuscatedName("af")
public boolean field1854;
public boolean boolean3;
@ObfuscatedName("ax")
@ObfuscatedSignature(
descriptor = "Lnz;"
@@ -307,10 +307,10 @@ public class ObjectComposition extends DualNode {
this.transformVarbit = -1;
this.transformVarp = -1;
this.ambientSoundId = -1;
this.field1864 = 0;
this.int7 = 0;
this.int5 = 0;
this.int6 = 0;
this.field1854 = true;
this.boolean3 = true;
}
@ObfuscatedName("c")
@@ -480,11 +480,11 @@ public class ObjectComposition extends DualNode {
} else if (var2 != 77 && var2 != 92) {
if (var2 == 78) {
this.ambientSoundId = var1.readUnsignedShort();
this.field1864 = var1.readUnsignedByte();
this.int7 = var1.readUnsignedByte();
} else if (var2 == 79) {
this.int5 = var1.readUnsignedShort();
this.int6 = var1.readUnsignedShort();
this.field1864 = var1.readUnsignedByte();
this.int7 = var1.readUnsignedByte();
var3 = var1.readUnsignedByte();
this.soundEffectIds = new int[var3];
@@ -496,7 +496,7 @@ public class ObjectComposition extends DualNode {
} else if (var2 == 82) {
this.mapIconId = var1.readUnsignedShort();
} else if (var2 == 89) {
this.field1854 = false;
this.boolean3 = false;
} else if (var2 == 249) {
this.params = class123.readStringIntParameters(var1, this.params);
}

View File

@@ -112,7 +112,7 @@ public final class ObjectSound extends Node {
ObjectComposition var2 = this.obj.transform();
if (var2 != null) {
this.soundEffectId = var2.ambientSoundId;
this.field804 = var2.field1864 * 128;
this.field804 = var2.int7 * 128;
this.field805 = var2.int5;
this.field800 = var2.int6;
this.soundEffectIds = var2.soundEffectIds;

View File

@@ -119,7 +119,7 @@ public class class140 extends class116 {
if (var8.animationId == -1 && var8.transforms == null) {
var29 = var8.getEntity(22, var4, var15, var17, var16, var18);
} else {
var29 = new DynamicObject(var3, 22, var4, var0, var1, var2, var8.animationId, var8.field1854, (Renderable)null);
var29 = new DynamicObject(var3, 22, var4, var0, var1, var2, var8.animationId, var8.boolean3, (Renderable)null);
}
var6.newFloorDecoration(var0, var1, var2, var16, (Renderable)var29, var19, var21);
@@ -136,7 +136,7 @@ public class class140 extends class116 {
if (var8.animationId == -1 && var8.transforms == null) {
var29 = var8.getEntity(var5, var4, var15, var17, var16, var18);
} else {
var29 = new DynamicObject(var3, var5, var4, var0, var1, var2, var8.animationId, var8.field1854, (Renderable)null);
var29 = new DynamicObject(var3, var5, var4, var0, var1, var2, var8.animationId, var8.boolean3, (Renderable)null);
}
var6.method4291(var0, var1, var2, var16, 1, 1, (Renderable)var29, 0, var19, var21);
@@ -153,7 +153,7 @@ public class class140 extends class116 {
if (var8.animationId == -1 && var8.transforms == null) {
var29 = var8.getEntity(0, var4, var15, var17, var16, var18);
} else {
var29 = new DynamicObject(var3, 0, var4, var0, var1, var2, var8.animationId, var8.field1854, (Renderable)null);
var29 = new DynamicObject(var3, 0, var4, var0, var1, var2, var8.animationId, var8.boolean3, (Renderable)null);
}
var6.newBoundaryObject(var0, var1, var2, var16, (Renderable)var29, (Renderable)null, Tiles.field980[var4], 0, var19, var21);
@@ -211,7 +211,7 @@ public class class140 extends class116 {
if (var8.animationId == -1 && var8.transforms == null) {
var29 = var8.getEntity(1, var4, var15, var17, var16, var18);
} else {
var29 = new DynamicObject(var3, 1, var4, var0, var1, var2, var8.animationId, var8.field1854, (Renderable)null);
var29 = new DynamicObject(var3, 1, var4, var0, var1, var2, var8.animationId, var8.boolean3, (Renderable)null);
}
var6.newBoundaryObject(var0, var1, var2, var16, (Renderable)var29, (Renderable)null, Tiles.field982[var4], 0, var19, var21);
@@ -241,8 +241,8 @@ public class class140 extends class116 {
var30 = var8.getEntity(2, var4 + 4, var15, var17, var16, var18);
var24 = var8.getEntity(2, var22, var15, var17, var16, var18);
} else {
var30 = new DynamicObject(var3, 2, var4 + 4, var0, var1, var2, var8.animationId, var8.field1854, (Renderable)null);
var24 = new DynamicObject(var3, 2, var22, var0, var1, var2, var8.animationId, var8.field1854, (Renderable)null);
var30 = new DynamicObject(var3, 2, var4 + 4, var0, var1, var2, var8.animationId, var8.boolean3, (Renderable)null);
var24 = new DynamicObject(var3, 2, var22, var0, var1, var2, var8.animationId, var8.boolean3, (Renderable)null);
}
var6.newBoundaryObject(var0, var1, var2, var16, (Renderable)var30, (Renderable)var24, Tiles.field980[var4], Tiles.field980[var22], var19, var21);
@@ -282,7 +282,7 @@ public class class140 extends class116 {
if (var8.animationId == -1 && var8.transforms == null) {
var29 = var8.getEntity(3, var4, var15, var17, var16, var18);
} else {
var29 = new DynamicObject(var3, 3, var4, var0, var1, var2, var8.animationId, var8.field1854, (Renderable)null);
var29 = new DynamicObject(var3, 3, var4, var0, var1, var2, var8.animationId, var8.boolean3, (Renderable)null);
}
var6.newBoundaryObject(var0, var1, var2, var16, (Renderable)var29, (Renderable)null, Tiles.field982[var4], 0, var19, var21);
@@ -306,7 +306,7 @@ public class class140 extends class116 {
if (var8.animationId == -1 && var8.transforms == null) {
var29 = var8.getEntity(var5, var4, var15, var17, var16, var18);
} else {
var29 = new DynamicObject(var3, var5, var4, var0, var1, var2, var8.animationId, var8.field1854, (Renderable)null);
var29 = new DynamicObject(var3, var5, var4, var0, var1, var2, var8.animationId, var8.boolean3, (Renderable)null);
}
var6.method4291(var0, var1, var2, var16, 1, 1, (Renderable)var29, 0, var19, var21);
@@ -322,7 +322,7 @@ public class class140 extends class116 {
if (var8.animationId == -1 && var8.transforms == null) {
var29 = var8.getEntity(4, var4, var15, var17, var16, var18);
} else {
var29 = new DynamicObject(var3, 4, var4, var0, var1, var2, var8.animationId, var8.field1854, (Renderable)null);
var29 = new DynamicObject(var3, 4, var4, var0, var1, var2, var8.animationId, var8.boolean3, (Renderable)null);
}
var6.newWallDecoration(var0, var1, var2, var16, (Renderable)var29, (Renderable)null, Tiles.field980[var4], 0, 0, 0, var19, var21);
@@ -339,7 +339,7 @@ public class class140 extends class116 {
if (var8.animationId == -1 && var8.transforms == null) {
var25 = var8.getEntity(4, var4, var15, var17, var16, var18);
} else {
var25 = new DynamicObject(var3, 4, var4, var0, var1, var2, var8.animationId, var8.field1854, (Renderable)null);
var25 = new DynamicObject(var3, 4, var4, var0, var1, var2, var8.animationId, var8.boolean3, (Renderable)null);
}
var6.newWallDecoration(var0, var1, var2, var16, (Renderable)var25, (Renderable)null, Tiles.field980[var4], 0, var22 * Tiles.field972[var4], var22 * Tiles.field984[var4], var19, var21);
@@ -353,7 +353,7 @@ public class class140 extends class116 {
if (var8.animationId == -1 && var8.transforms == null) {
var25 = var8.getEntity(4, var4 + 4, var15, var17, var16, var18);
} else {
var25 = new DynamicObject(var3, 4, var4 + 4, var0, var1, var2, var8.animationId, var8.field1854, (Renderable)null);
var25 = new DynamicObject(var3, 4, var4 + 4, var0, var1, var2, var8.animationId, var8.boolean3, (Renderable)null);
}
var6.newWallDecoration(var0, var1, var2, var16, (Renderable)var25, (Renderable)null, 256, var4, var22 * Tiles.field985[var4], var22 * Tiles.field973[var4], var19, var21);
@@ -362,7 +362,7 @@ public class class140 extends class116 {
if (var8.animationId == -1 && var8.transforms == null) {
var29 = var8.getEntity(4, var28 + 4, var15, var17, var16, var18);
} else {
var29 = new DynamicObject(var3, 4, var28 + 4, var0, var1, var2, var8.animationId, var8.field1854, (Renderable)null);
var29 = new DynamicObject(var3, 4, var28 + 4, var0, var1, var2, var8.animationId, var8.boolean3, (Renderable)null);
}
var6.newWallDecoration(var0, var1, var2, var16, (Renderable)var29, (Renderable)null, 256, var28, 0, 0, var19, var21);
@@ -379,8 +379,8 @@ public class class140 extends class116 {
var25 = var8.getEntity(4, var4 + 4, var15, var17, var16, var18);
var26 = var8.getEntity(4, var27 + 4, var15, var17, var16, var18);
} else {
var25 = new DynamicObject(var3, 4, var4 + 4, var0, var1, var2, var8.animationId, var8.field1854, (Renderable)null);
var26 = new DynamicObject(var3, 4, var27 + 4, var0, var1, var2, var8.animationId, var8.field1854, (Renderable)null);
var25 = new DynamicObject(var3, 4, var4 + 4, var0, var1, var2, var8.animationId, var8.boolean3, (Renderable)null);
var26 = new DynamicObject(var3, 4, var27 + 4, var0, var1, var2, var8.animationId, var8.boolean3, (Renderable)null);
}
var6.newWallDecoration(var0, var1, var2, var16, (Renderable)var25, (Renderable)var26, 256, var4, var22 * Tiles.field985[var4], var22 * Tiles.field973[var4], var19, var21);
@@ -391,7 +391,7 @@ public class class140 extends class116 {
if (var8.animationId == -1 && var8.transforms == null) {
var29 = var8.getEntity(10, var4, var15, var17, var16, var18);
} else {
var29 = new DynamicObject(var3, 10, var4, var0, var1, var2, var8.animationId, var8.field1854, (Renderable)null);
var29 = new DynamicObject(var3, 10, var4, var0, var1, var2, var8.animationId, var8.boolean3, (Renderable)null);
}
if (var29 != null && var6.method4291(var0, var1, var2, var16, var9, var10, (Renderable)var29, var5 == 11 ? 256 : 0, var19, var21) && var8.clipped) {

View File

@@ -94,7 +94,7 @@ class class18 implements Comparator {
if (var9.animationId == -1 && var9.transforms == null) {
var30 = var9.getModel(22, var5, var16, var18, var17, var19);
} else {
var30 = new DynamicObject(var4, 22, var5, var1, var2, var3, var9.animationId, var9.field1854, (Renderable)null);
var30 = new DynamicObject(var4, 22, var5, var1, var2, var3, var9.animationId, var9.boolean3, (Renderable)null);
}
var7.newFloorDecoration(var0, var2, var3, var17, (Renderable)var30, var20, var22);
@@ -107,7 +107,7 @@ class class18 implements Comparator {
if (var9.animationId == -1 && var9.transforms == null) {
var30 = var9.getModel(var6, var5, var16, var18, var17, var19);
} else {
var30 = new DynamicObject(var4, var6, var5, var1, var2, var3, var9.animationId, var9.field1854, (Renderable)null);
var30 = new DynamicObject(var4, var6, var5, var1, var2, var3, var9.animationId, var9.boolean3, (Renderable)null);
}
var7.method4291(var0, var2, var3, var17, 1, 1, (Renderable)var30, 0, var20, var22);
@@ -119,7 +119,7 @@ class class18 implements Comparator {
if (var9.animationId == -1 && var9.transforms == null) {
var30 = var9.getModel(0, var5, var16, var18, var17, var19);
} else {
var30 = new DynamicObject(var4, 0, var5, var1, var2, var3, var9.animationId, var9.field1854, (Renderable)null);
var30 = new DynamicObject(var4, 0, var5, var1, var2, var3, var9.animationId, var9.boolean3, (Renderable)null);
}
var7.newBoundaryObject(var0, var2, var3, var17, (Renderable)var30, (Renderable)null, Tiles.field980[var5], 0, var20, var22);
@@ -131,7 +131,7 @@ class class18 implements Comparator {
if (var9.animationId == -1 && var9.transforms == null) {
var30 = var9.getModel(1, var5, var16, var18, var17, var19);
} else {
var30 = new DynamicObject(var4, 1, var5, var1, var2, var3, var9.animationId, var9.field1854, (Renderable)null);
var30 = new DynamicObject(var4, 1, var5, var1, var2, var3, var9.animationId, var9.boolean3, (Renderable)null);
}
var7.newBoundaryObject(var0, var2, var3, var17, (Renderable)var30, (Renderable)null, Tiles.field982[var5], 0, var20, var22);
@@ -149,8 +149,8 @@ class class18 implements Comparator {
var31 = var9.getModel(2, var5 + 4, var16, var18, var17, var19);
var25 = var9.getModel(2, var23, var16, var18, var17, var19);
} else {
var31 = new DynamicObject(var4, 2, var5 + 4, var1, var2, var3, var9.animationId, var9.field1854, (Renderable)null);
var25 = new DynamicObject(var4, 2, var23, var1, var2, var3, var9.animationId, var9.field1854, (Renderable)null);
var31 = new DynamicObject(var4, 2, var5 + 4, var1, var2, var3, var9.animationId, var9.boolean3, (Renderable)null);
var25 = new DynamicObject(var4, 2, var23, var1, var2, var3, var9.animationId, var9.boolean3, (Renderable)null);
}
var7.newBoundaryObject(var0, var2, var3, var17, (Renderable)var31, (Renderable)var25, Tiles.field980[var5], Tiles.field980[var23], var20, var22);
@@ -162,7 +162,7 @@ class class18 implements Comparator {
if (var9.animationId == -1 && var9.transforms == null) {
var30 = var9.getModel(3, var5, var16, var18, var17, var19);
} else {
var30 = new DynamicObject(var4, 3, var5, var1, var2, var3, var9.animationId, var9.field1854, (Renderable)null);
var30 = new DynamicObject(var4, 3, var5, var1, var2, var3, var9.animationId, var9.boolean3, (Renderable)null);
}
var7.newBoundaryObject(var0, var2, var3, var17, (Renderable)var30, (Renderable)null, Tiles.field982[var5], 0, var20, var22);
@@ -174,7 +174,7 @@ class class18 implements Comparator {
if (var9.animationId == -1 && var9.transforms == null) {
var30 = var9.getModel(var6, var5, var16, var18, var17, var19);
} else {
var30 = new DynamicObject(var4, var6, var5, var1, var2, var3, var9.animationId, var9.field1854, (Renderable)null);
var30 = new DynamicObject(var4, var6, var5, var1, var2, var3, var9.animationId, var9.boolean3, (Renderable)null);
}
var7.method4291(var0, var2, var3, var17, 1, 1, (Renderable)var30, 0, var20, var22);
@@ -186,7 +186,7 @@ class class18 implements Comparator {
if (var9.animationId == -1 && var9.transforms == null) {
var30 = var9.getModel(4, var5, var16, var18, var17, var19);
} else {
var30 = new DynamicObject(var4, 4, var5, var1, var2, var3, var9.animationId, var9.field1854, (Renderable)null);
var30 = new DynamicObject(var4, 4, var5, var1, var2, var3, var9.animationId, var9.boolean3, (Renderable)null);
}
var7.newWallDecoration(var0, var2, var3, var17, (Renderable)var30, (Renderable)null, Tiles.field980[var5], 0, 0, 0, var20, var22);
@@ -203,7 +203,7 @@ class class18 implements Comparator {
if (var9.animationId == -1 && var9.transforms == null) {
var26 = var9.getModel(4, var5, var16, var18, var17, var19);
} else {
var26 = new DynamicObject(var4, 4, var5, var1, var2, var3, var9.animationId, var9.field1854, (Renderable)null);
var26 = new DynamicObject(var4, 4, var5, var1, var2, var3, var9.animationId, var9.boolean3, (Renderable)null);
}
var7.newWallDecoration(var0, var2, var3, var17, (Renderable)var26, (Renderable)null, Tiles.field980[var5], 0, var23 * Tiles.field972[var5], var23 * Tiles.field984[var5], var20, var22);
@@ -217,7 +217,7 @@ class class18 implements Comparator {
if (var9.animationId == -1 && var9.transforms == null) {
var26 = var9.getModel(4, var5 + 4, var16, var18, var17, var19);
} else {
var26 = new DynamicObject(var4, 4, var5 + 4, var1, var2, var3, var9.animationId, var9.field1854, (Renderable)null);
var26 = new DynamicObject(var4, 4, var5 + 4, var1, var2, var3, var9.animationId, var9.boolean3, (Renderable)null);
}
var7.newWallDecoration(var0, var2, var3, var17, (Renderable)var26, (Renderable)null, 256, var5, var23 * Tiles.field985[var5], var23 * Tiles.field973[var5], var20, var22);
@@ -226,7 +226,7 @@ class class18 implements Comparator {
if (var9.animationId == -1 && var9.transforms == null) {
var30 = var9.getModel(4, var29 + 4, var16, var18, var17, var19);
} else {
var30 = new DynamicObject(var4, 4, var29 + 4, var1, var2, var3, var9.animationId, var9.field1854, (Renderable)null);
var30 = new DynamicObject(var4, 4, var29 + 4, var1, var2, var3, var9.animationId, var9.boolean3, (Renderable)null);
}
var7.newWallDecoration(var0, var2, var3, var17, (Renderable)var30, (Renderable)null, 256, var29, 0, 0, var20, var22);
@@ -243,8 +243,8 @@ class class18 implements Comparator {
var26 = var9.getModel(4, var5 + 4, var16, var18, var17, var19);
var27 = var9.getModel(4, var28 + 4, var16, var18, var17, var19);
} else {
var26 = new DynamicObject(var4, 4, var5 + 4, var1, var2, var3, var9.animationId, var9.field1854, (Renderable)null);
var27 = new DynamicObject(var4, 4, var28 + 4, var1, var2, var3, var9.animationId, var9.field1854, (Renderable)null);
var26 = new DynamicObject(var4, 4, var5 + 4, var1, var2, var3, var9.animationId, var9.boolean3, (Renderable)null);
var27 = new DynamicObject(var4, 4, var28 + 4, var1, var2, var3, var9.animationId, var9.boolean3, (Renderable)null);
}
var7.newWallDecoration(var0, var2, var3, var17, (Renderable)var26, (Renderable)var27, 256, var5, var23 * Tiles.field985[var5], var23 * Tiles.field973[var5], var20, var22);
@@ -255,7 +255,7 @@ class class18 implements Comparator {
if (var9.animationId == -1 && var9.transforms == null) {
var30 = var9.getModel(10, var5, var16, var18, var17, var19);
} else {
var30 = new DynamicObject(var4, 10, var5, var1, var2, var3, var9.animationId, var9.field1854, (Renderable)null);
var30 = new DynamicObject(var4, 10, var5, var1, var2, var3, var9.animationId, var9.boolean3, (Renderable)null);
}
if (var30 != null) {

View File

@@ -124,7 +124,7 @@ public class class7 {
var5.field806 = (var6 + var1) * 128;
var5.field801 = (var7 + var2) * 128;
var5.soundEffectId = var3.ambientSoundId;
var5.field804 = var3.field1864 * 128;
var5.field804 = var3.int7 * 128;
var5.field805 = var3.int5;
var5.field800 = var3.int6;
var5.soundEffectIds = var3.soundEffectIds;